diff --git a/frontend/app/signin/forgot-password-modal.tsx b/frontend/app/auth/forgot-password-modal.tsx similarity index 100% rename from frontend/app/signin/forgot-password-modal.tsx rename to frontend/app/auth/forgot-password-modal.tsx diff --git a/frontend/app/signin/page.tsx b/frontend/app/auth/page.tsx similarity index 93% rename from frontend/app/signin/page.tsx rename to frontend/app/auth/page.tsx index d6c3f1f..f77f08d 100644 --- a/frontend/app/signin/page.tsx +++ b/frontend/app/auth/page.tsx @@ -48,13 +48,7 @@ export default function Signin() {
{/* Google */}
- Google Logo + Google Logo
diff --git a/frontend/app/signin/waterdrop.tsx b/frontend/app/auth/waterdrop.tsx similarity index 100% rename from frontend/app/signin/waterdrop.tsx rename to frontend/app/auth/waterdrop.tsx diff --git a/frontend/app/layout.tsx b/frontend/app/layout.tsx index 5135dc0..c6c68e6 100644 --- a/frontend/app/layout.tsx +++ b/frontend/app/layout.tsx @@ -1,8 +1,7 @@ import type { Metadata } from "next"; import { Geist, Geist_Mono } from "next/font/google"; import "./globals.css"; -import { SidebarProvider, SidebarTrigger } from "@/components/ui/sidebar"; -import { AppSidebar } from "@/components/app-sidebar"; +import { ThemeProvider } from "@/components/theme-provider"; const geistSans = Geist({ variable: "--font-geist-sans", @@ -25,27 +24,14 @@ export default function RootLayout({ children: React.ReactNode; }>) { return ( - - - {/* Sidebar Provider wraps the entire app */} - -
- {/* Sidebar Component */} - - -
- {/* Sidebar Toggle Button (Place in Navbar or Sidebar) */} - - Open Sidebar - - - {/* Main Content */} -
{children}
-
+ + + + +
+
{children}
- +
); diff --git a/frontend/app/setup/layout.tsx b/frontend/app/setup/layout.tsx new file mode 100644 index 0000000..393f507 --- /dev/null +++ b/frontend/app/setup/layout.tsx @@ -0,0 +1,43 @@ +import { AppSidebar } from "@/components/app-sidebar"; +import { + Breadcrumb, + BreadcrumbItem, + BreadcrumbLink, + BreadcrumbList, + BreadcrumbPage, + BreadcrumbSeparator, +} from "@/components/ui/breadcrumb"; +import { Separator } from "@/components/ui/separator"; +import { SidebarInset, SidebarProvider, SidebarTrigger } from "@/components/ui/sidebar"; + +export default function AppLayout({ + children, +}: Readonly<{ + children: React.ReactNode; +}>) { + return ( + + + +
+
+ + + + + + Building Your Application + + + + Data Fetching + + + +
+
+ {children} +
+
+ ); +} diff --git a/frontend/app/setup/page.tsx b/frontend/app/setup/page.tsx new file mode 100644 index 0000000..5630df5 --- /dev/null +++ b/frontend/app/setup/page.tsx @@ -0,0 +1,7 @@ +export default function SetupPage() { + return ( +
+

Setup Page

+
+ ); +} diff --git a/frontend/components/theme-provider.tsx b/frontend/components/theme-provider.tsx new file mode 100644 index 0000000..2e0ad9b --- /dev/null +++ b/frontend/components/theme-provider.tsx @@ -0,0 +1,10 @@ +"use client"; + +import * as React from "react"; +import { ThemeProvider as NextThemesProvider } from "next-themes"; + +type ThemeProviderProps = React.ComponentProps; + +export function ThemeProvider({ children, ...props }: ThemeProviderProps) { + return {children}; +} diff --git a/frontend/components/theme-toggle.tsx b/frontend/components/theme-toggle.tsx new file mode 100644 index 0000000..3daf624 --- /dev/null +++ b/frontend/components/theme-toggle.tsx @@ -0,0 +1,19 @@ +"use client"; + +import * as React from "react"; +import { Moon, Sun } from "lucide-react"; +import { useTheme } from "next-themes"; + +import { Button } from "@/components/ui/button"; + +export function ThemeToggle() { + const { setTheme, theme } = useTheme(); + + return ( + + ); +} diff --git a/frontend/components/ui/breadcrumb.tsx b/frontend/components/ui/breadcrumb.tsx new file mode 100644 index 0000000..60e6c96 --- /dev/null +++ b/frontend/components/ui/breadcrumb.tsx @@ -0,0 +1,115 @@ +import * as React from "react" +import { Slot } from "@radix-ui/react-slot" +import { ChevronRight, MoreHorizontal } from "lucide-react" + +import { cn } from "@/lib/utils" + +const Breadcrumb = React.forwardRef< + HTMLElement, + React.ComponentPropsWithoutRef<"nav"> & { + separator?: React.ReactNode + } +>(({ ...props }, ref) =>