From 72c40f43e6cc5be28c86bf1306bad1db832997e1 Mon Sep 17 00:00:00 2001 From: Matthew Warman Date: Thu, 6 Feb 2025 13:38:19 -0500 Subject: [PATCH 1/6] #15 use clsx and tailwind-merge --- package-lock.json | 19 ++++++++++++------- package.json | 3 ++- src/common/components/Alert/Alert.tsx | 4 ++-- src/common/components/Backdrop/Backdrop.tsx | 7 ++----- src/common/components/Badge/Badge.tsx | 4 ++-- src/common/components/Button/Button.tsx | 4 ++-- src/common/components/Button/ThemeToggle.tsx | 7 +++---- src/common/components/Card/Card.tsx | 4 ++-- src/common/components/Card/MessageCard.tsx | 5 ++--- src/common/components/Dialog/Dialog.tsx | 4 ++-- src/common/components/Dialog/DialogButton.tsx | 5 ++--- .../components/Dialog/DialogButtons.tsx | 7 ++----- .../components/Dialog/DialogContent.tsx | 4 ++-- .../components/Dialog/DialogHeading.tsx | 4 ++-- src/common/components/Divider/Divider.tsx | 5 ++--- src/common/components/Dropdown/Dropdown.tsx | 6 +++--- .../components/Dropdown/DropdownContent.tsx | 4 ++-- .../components/Dropdown/DropdownItem.tsx | 4 ++-- src/common/components/Footer/Footer.tsx | 4 ++-- src/common/components/Form/Input.tsx | 6 +++--- src/common/components/Form/SearchInput.tsx | 18 +++++------------- src/common/components/Form/SearchResult.tsx | 4 ++-- src/common/components/Form/Select.tsx | 4 ++-- src/common/components/Icon/Avatar.tsx | 7 +++---- src/common/components/Icon/FAIcon.tsx | 4 ++-- src/common/components/Link/Link.tsx | 7 ++----- .../components/Loader/LoaderSkeleton.tsx | 8 ++------ .../components/Loader/LoaderSpinner.tsx | 7 +++---- src/common/components/Menu/MenuButton.tsx | 4 ++-- .../components/Menu/MenuCloseButton.tsx | 5 ++--- src/common/components/Menu/MenuNavLink.tsx | 8 ++++---- src/common/components/Menu/MenuSeparator.tsx | 10 ++-------- .../components/Menu/SideMenu/SideMenu.tsx | 6 +++--- .../Menu/SideMenu/SideMenuHeader.tsx | 4 ++-- src/common/components/Page/Page.tsx | 4 ++-- src/common/components/Table/Table.tsx | 4 ++-- src/common/components/Tabs/Tab.tsx | 5 ++--- src/common/components/Tabs/Tabs.tsx | 4 ++-- src/common/components/Text/Text.tsx | 4 ++-- src/common/components/Theme/Theme.tsx | 4 ++-- src/common/components/Toast/Toast.tsx | 4 ++-- src/common/utils/css.ts | 12 ++++++++++++ .../Auth/Signin/components/SigninForm.tsx | 4 ++-- .../components/AppearanceSettings.tsx | 7 +++---- .../components/Chart/TaskStatusDonutChart.tsx | 4 ++-- .../components/Edit/TaskCompleteToggle.tsx | 6 +++--- .../Tasks/components/List/TaskListItem.tsx | 7 +++---- src/pages/Tasks/components/View/TaskView.tsx | 4 ++-- 48 files changed, 130 insertions(+), 149 deletions(-) create mode 100644 src/common/utils/css.ts diff --git a/package-lock.json b/package-lock.json index 4c521b4..2751951 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,7 +20,7 @@ "@tanstack/react-query-devtools": "5.66.0", "@tanstack/react-table": "8.20.6", "axios": "1.7.9", - "classnames": "2.5.1", + "clsx": "2.1.1", "dayjs": "1.11.13", "i18next": "24.2.2", "i18next-browser-languagedetector": "8.0.2", @@ -32,6 +32,7 @@ "react-i18next": "15.4.0", "react-router-dom": "7.1.5", "recharts": "2.15.1", + "tailwind-merge": "3.0.1", "tailwindcss": "3.4.17", "uuid": "11.0.5", "yup": "1.6.1" @@ -4484,12 +4485,6 @@ } } }, - "node_modules/classnames": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", - "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", - "license": "MIT" - }, "node_modules/clean-set": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/clean-set/-/clean-set-1.1.2.tgz", @@ -8710,6 +8705,16 @@ "dev": true, "license": "MIT" }, + "node_modules/tailwind-merge": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.0.1.tgz", + "integrity": "sha512-AvzE8FmSoXC7nC+oU5GlQJbip2UO7tmOhOfQyOmPhrStOGXHU08j8mZEHZ4BmCqY5dWTCo4ClWkNyRNx1wpT0g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, "node_modules/tailwindcss": { "version": "3.4.17", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz", diff --git a/package.json b/package.json index 65b0795..d3596c9 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "@tanstack/react-query-devtools": "5.66.0", "@tanstack/react-table": "8.20.6", "axios": "1.7.9", - "classnames": "2.5.1", + "clsx": "2.1.1", "dayjs": "1.11.13", "i18next": "24.2.2", "i18next-browser-languagedetector": "8.0.2", @@ -48,6 +48,7 @@ "react-i18next": "15.4.0", "react-router-dom": "7.1.5", "recharts": "2.15.1", + "tailwind-merge": "3.0.1", "tailwindcss": "3.4.17", "uuid": "11.0.5", "yup": "1.6.1" diff --git a/src/common/components/Alert/Alert.tsx b/src/common/components/Alert/Alert.tsx index cca58d9..723d93e 100644 --- a/src/common/components/Alert/Alert.tsx +++ b/src/common/components/Alert/Alert.tsx @@ -1,7 +1,7 @@ import { PropsWithChildren } from 'react'; -import classNames from 'classnames'; import { BaseComponentProps } from 'common/utils/types'; +import { cn } from 'common/utils/css'; /** * The variations of `Alert` components. @@ -32,7 +32,7 @@ const Alert = ({ }: AlertProps): JSX.Element => { return (
diff --git a/src/common/components/Badge/Badge.tsx b/src/common/components/Badge/Badge.tsx index 4265e04..c133977 100644 --- a/src/common/components/Badge/Badge.tsx +++ b/src/common/components/Badge/Badge.tsx @@ -1,7 +1,7 @@ import { PropsWithChildren } from 'react'; -import classNames from 'classnames'; import { BaseComponentProps } from 'common/utils/types'; +import { cn } from 'common/utils/css'; /** * Properties for the `Badge` React component. @@ -19,7 +19,7 @@ export interface BadgeProps extends BaseComponentProps, PropsWithChildren {} const Badge = ({ children, className, testId = 'badge' }: BadgeProps): JSX.Element => { return (
{ return (