From d9c260bfce0246e18968da748d2d93601ade0557 Mon Sep 17 00:00:00 2001 From: KarimTamani Date: Fri, 16 May 2025 22:17:48 +0100 Subject: [PATCH] dark theme implemented --- package.json | 2 + src/App.tsx | 36 ++- .../cardinality-marker/cardinality-marker.tsx | 2 +- src/components/color-picker/color-picker.tsx | 6 +- src/components/menu/menu-dropdown.tsx | 20 +- src/components/menu/menu.tsx | 211 ++++++++++-------- src/components/navbar/navbar.tsx | 7 +- src/components/sidebar/sidebar-item.tsx | 4 +- src/components/sidebar/sidebar.tsx | 9 +- src/components/toggle/toggle.tsx | 4 +- src/components/tooltip/tooltip.tsx | 4 +- src/pages/database/database-page.tsx | 7 +- .../database/db-controller/db-controller.tsx | 2 +- .../relationship-accordion-body.tsx | 12 +- .../relationship-accordion-header.tsx | 14 +- .../relationship-controller.tsx | 2 +- .../table-accordion-item/field/field-item.tsx | 4 +- .../table-accordion-item/field/field-list.tsx | 2 +- .../table-accordion-body.tsx | 36 ++- .../table-accordion-header.tsx | 27 +-- .../tables-controller/tables-controller.tsx | 10 +- src/pages/database/table/field.tsx | 14 +- src/pages/database/table/relationship.tsx | 2 +- src/pages/database/table/table.tsx | 148 ++++++------ src/styles/globals.css | 14 +- tailwind.config.js | 12 +- 26 files changed, 319 insertions(+), 292 deletions(-) diff --git a/package.json b/package.json index 78afc02..bbd7217 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "@dnd-kit/core": "^6.3.1", "@dnd-kit/sortable": "^10.0.0", "@heroui/react": "^2.7.6", + "@nextui-org/react": "^2.6.11", "@powersync/drizzle-driver": "^0.4.0", "@powersync/react": "^1.5.3", "@powersync/web": "^1.20.0", @@ -25,6 +26,7 @@ "framer-motion": "11.15.0", "i18next-browser-languagedetector": "^8.0.5", "lucide-react": "^0.501.0", + "next-themes": "^0.4.6", "react": "18.3.1", "react-dom": "18.3.1", "react-i18next": "^15.5.1", diff --git a/src/App.tsx b/src/App.tsx index cf0ad0c..cf2a5de 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,4 +1,5 @@ -import { Route, Routes } from "react-router-dom"; + + import "@/styles/globals.css" import { TooltipProvider } from "./components/tooltip/tooltip"; import { ReactFlowProvider } from "@xyflow/react"; @@ -6,21 +7,32 @@ import useAppRoutes from "./routes/app-route"; import { SyncProvider } from "./providers/sync-provider/sync-provider"; import DatabaseProvider from "./providers/database-provider/database-provider"; import DiagramProvider from "./providers/diagram-provider/diagram-provider"; +import { NextUIProvider } from "@nextui-org/react"; +import { ThemeProvider as NextThemesProvider } from "next-themes"; + function App() { + const appRoutes = useAppRoutes(); return ( - - - - - - {appRoutes} - - - - - + + + + + + + + {appRoutes} + + + + + + + ); } diff --git a/src/components/cardinality-marker/cardinality-marker.tsx b/src/components/cardinality-marker/cardinality-marker.tsx index 57bff86..d607bb8 100644 --- a/src/components/cardinality-marker/cardinality-marker.tsx +++ b/src/components/cardinality-marker/cardinality-marker.tsx @@ -41,7 +41,7 @@ const CardinalityMarker: React.FC = ({ selected = false, > = ({ defaultColor, onChange }) => setIsOpen(open)}>
= ({ defaultColor, onChange }) =>
void } -const DropdownMenu: React.FC = ({ title, children, isOpen }) => { - +const DropdownMenu: React.FC = ({ title, children, isOpen , clickHandler }) => { + + const disabledChilds: string[] = useMemo(() => { return children ? children?.filter((child: MenuDropdownProps) => child.isDisabled && child.title).map((child: MenuDropdownProps) => child.title as string) : [] }, [children]); - + return { title && - + } @@ -77,7 +77,7 @@ const RelationshipAccordionHeader: React.FC = !editMode && <> @@ -89,7 +89,7 @@ const RelationshipAccordionHeader: React.FC = variant="light" onPressEnd={() => focusOnRelationship(relationship.id, true)} > - +
@@ -110,7 +110,7 @@ const RelationshipAccordionHeader: React.FC = isIconOnly variant="light" > - + diff --git a/src/pages/database/db-controller/relationship-controller/relationship-controller.tsx b/src/pages/database/db-controller/relationship-controller/relationship-controller.tsx index 0575514..25f5a20 100644 --- a/src/pages/database/db-controller/relationship-controller/relationship-controller.tsx +++ b/src/pages/database/db-controller/relationship-controller/relationship-controller.tsx @@ -120,7 +120,7 @@ const RelationshipController: React.FC = ({ }) => { aria-label={relationship.id} classNames={{ - trigger: "w-full hover:bg-default transition-all duration-200 h-12", + trigger: "w-full hover:bg-default transition-all duration-200 h-12 dark:bg-background dark:hover:bg-default-50", base: "rounded-md p-0 overflow-hidden", }} subtitle={ diff --git a/src/pages/database/db-controller/tables-controller/table-accordion-item/field/field-item.tsx b/src/pages/database/db-controller/tables-controller/table-accordion-item/field/field-item.tsx index 2826a1f..ab0c481 100644 --- a/src/pages/database/db-controller/tables-controller/table-accordion-item/field/field-item.tsx +++ b/src/pages/database/db-controller/tables-controller/table-accordion-item/field/field-item.tsx @@ -85,7 +85,7 @@ const FieldItem: React.FC = ({ field }) => {
- +
= ({ field }) => { isIconOnly variant="light" > - + diff --git a/src/pages/database/db-controller/tables-controller/table-accordion-item/field/field-list.tsx b/src/pages/database/db-controller/tables-controller/table-accordion-item/field/field-list.tsx index 20d2c4a..d8969c8 100644 --- a/src/pages/database/db-controller/tables-controller/table-accordion-item/field/field-list.tsx +++ b/src/pages/database/db-controller/tables-controller/table-accordion-item/field/field-list.tsx @@ -87,7 +87,7 @@ const FieldList: React.FC = ({ table }) => { radius="sm" startContent={ - + } className="h-8 p-2 text-xs bg-transparent hover:bg-default text-gray font-semibold" onPressEnd={addField} diff --git a/src/pages/database/db-controller/tables-controller/table-accordion-item/table-accordion-body.tsx b/src/pages/database/db-controller/tables-controller/table-accordion-item/table-accordion-body.tsx index c753d0a..ffd3497 100644 --- a/src/pages/database/db-controller/tables-controller/table-accordion-item/table-accordion-body.tsx +++ b/src/pages/database/db-controller/tables-controller/table-accordion-item/table-accordion-body.tsx @@ -25,7 +25,7 @@ const TableAccordionBody: React.FC = ({ table }) => { const { editTable, createField } = useDatabase(); const onColorChange = useCallback((color: string | undefined) => { - + editTable({ id: table.id, color: color ? color : null } as TableType); }, [table]); @@ -49,7 +49,7 @@ const TableAccordionBody: React.FC = ({ table }) => { } return ( -
+
@@ -59,17 +59,15 @@ const TableAccordionBody: React.FC = ({ table }) => { 'tarnsition-all duration-200 ', isOpen ? "rotate-[-90deg]" : "" )}> - - - +
)} classNames={{ - trigger: "hover:bg-default h-6 " + trigger: "hover:bg-default h-6 dark:hover:bg-background" }} subtitle={ -
- +
+ @@ -77,7 +75,7 @@ const TableAccordionBody: React.FC = ({ table }) => { className="size-4 p-0 text-xs opacity-0 group-hover:opacity-100 transition-all duration-200 hover:text-slate-700 text-icon" onClick={addField} > - +
} @@ -90,14 +88,14 @@ const TableAccordionBody: React.FC = ({ table }) => { 'tarnsition-all duration-200', isOpen ? "rotate-[-90deg]" : "" )}> - +
)} classNames={{ - trigger: "hover:bg-default h-6" + trigger: "hover:bg-default h-6 dark:hover:bg-background" }} subtitle={ -
+
)} classNames={{ - trigger: "hover:bg-default h-6" + trigger: "hover:bg-default h-6 dark:hover:bg-background" }} subtitle={ -
+