react-shadcn-kit 0.0.6 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/global.css +1 -1
- package/dist/atoms/accordion.js +1 -0
- package/dist/atoms/accordion.js.map +1 -0
- package/dist/atoms/alert-dialog.js +1 -0
- package/dist/atoms/alert-dialog.js.map +1 -0
- package/dist/atoms/alert.js +1 -0
- package/dist/atoms/alert.js.map +1 -0
- package/dist/atoms/aspect-ratio.js +1 -0
- package/dist/atoms/aspect-ratio.js.map +1 -0
- package/dist/atoms/avatar.js +1 -0
- package/dist/atoms/avatar.js.map +1 -0
- package/dist/atoms/badge.js +1 -0
- package/dist/atoms/badge.js.map +1 -0
- package/dist/atoms/breadcrumb.js +1 -0
- package/dist/atoms/breadcrumb.js.map +1 -0
- package/dist/atoms/button-group.js +1 -0
- package/dist/atoms/button-group.js.map +1 -0
- package/dist/atoms/button.js +1 -0
- package/dist/atoms/button.js.map +1 -0
- package/dist/atoms/calendar.js +1 -0
- package/dist/atoms/calendar.js.map +1 -0
- package/dist/atoms/card.js +1 -0
- package/dist/atoms/card.js.map +1 -0
- package/dist/atoms/carousel.js +1 -0
- package/dist/atoms/carousel.js.map +1 -0
- package/dist/atoms/chart.js +1 -0
- package/dist/atoms/chart.js.map +1 -0
- package/dist/atoms/checkbox.js +1 -0
- package/dist/atoms/checkbox.js.map +1 -0
- package/dist/atoms/collapsible.js +1 -0
- package/dist/atoms/collapsible.js.map +1 -0
- package/dist/atoms/command.js +1 -0
- package/dist/atoms/command.js.map +1 -0
- package/dist/atoms/context-menu.js +1 -0
- package/dist/atoms/context-menu.js.map +1 -0
- package/dist/atoms/dialog.js +1 -0
- package/dist/atoms/dialog.js.map +1 -0
- package/dist/atoms/drawer.js +1 -0
- package/dist/atoms/drawer.js.map +1 -0
- package/dist/atoms/dropdown-menu.js +1 -0
- package/dist/atoms/dropdown-menu.js.map +1 -0
- package/dist/atoms/empty.js +1 -0
- package/dist/atoms/empty.js.map +1 -0
- package/dist/atoms/field.js +1 -0
- package/dist/atoms/field.js.map +1 -0
- package/dist/atoms/form.js +1 -0
- package/dist/atoms/form.js.map +1 -0
- package/dist/atoms/hover-card.js +1 -0
- package/dist/atoms/hover-card.js.map +1 -0
- package/dist/atoms/index.d.ts +54 -0
- package/dist/atoms/index.js +342 -0
- package/dist/atoms/index.js.map +1 -0
- package/dist/atoms/input-group.js +1 -0
- package/dist/atoms/input-group.js.map +1 -0
- package/dist/atoms/input-otp.js +1 -0
- package/dist/atoms/input-otp.js.map +1 -0
- package/dist/atoms/input.js +1 -0
- package/dist/atoms/input.js.map +1 -0
- package/dist/atoms/item.js +1 -0
- package/dist/atoms/item.js.map +1 -0
- package/dist/atoms/kbd.js +1 -0
- package/dist/atoms/kbd.js.map +1 -0
- package/dist/atoms/label.js +1 -0
- package/dist/atoms/label.js.map +1 -0
- package/dist/atoms/menubar.js +1 -0
- package/dist/atoms/menubar.js.map +1 -0
- package/dist/atoms/navigation-menu.js +1 -0
- package/dist/atoms/navigation-menu.js.map +1 -0
- package/dist/atoms/pagination.js +1 -0
- package/dist/atoms/pagination.js.map +1 -0
- package/dist/atoms/popover.js +1 -0
- package/dist/atoms/popover.js.map +1 -0
- package/dist/atoms/progress.js +1 -0
- package/dist/atoms/progress.js.map +1 -0
- package/dist/atoms/radio-group.js +1 -0
- package/dist/atoms/radio-group.js.map +1 -0
- package/dist/atoms/resizable.js +1 -0
- package/dist/atoms/resizable.js.map +1 -0
- package/dist/atoms/scroll-area.js +1 -0
- package/dist/atoms/scroll-area.js.map +1 -0
- package/dist/atoms/select.js +1 -0
- package/dist/atoms/select.js.map +1 -0
- package/dist/atoms/separator.js +1 -0
- package/dist/atoms/separator.js.map +1 -0
- package/dist/atoms/sheet.js +1 -0
- package/dist/atoms/sheet.js.map +1 -0
- package/dist/atoms/sidebar.js +6 -5
- package/dist/atoms/sidebar.js.map +1 -0
- package/dist/atoms/skeleton.js +1 -0
- package/dist/atoms/skeleton.js.map +1 -0
- package/dist/atoms/slider.js +1 -0
- package/dist/atoms/slider.js.map +1 -0
- package/dist/atoms/sonner.js +1 -0
- package/dist/atoms/sonner.js.map +1 -0
- package/dist/atoms/spinner.js +1 -0
- package/dist/atoms/spinner.js.map +1 -0
- package/dist/atoms/switch.js +1 -0
- package/dist/atoms/switch.js.map +1 -0
- package/dist/atoms/table.js +1 -0
- package/dist/atoms/table.js.map +1 -0
- package/dist/atoms/tabs.js +1 -0
- package/dist/atoms/tabs.js.map +1 -0
- package/dist/atoms/textarea.js +1 -0
- package/dist/atoms/textarea.js.map +1 -0
- package/dist/atoms/theme-provider.d.ts +3 -0
- package/dist/atoms/theme-provider.js +12 -0
- package/dist/atoms/theme-provider.js.map +1 -0
- package/dist/atoms/toggle-group.js +1 -0
- package/dist/atoms/toggle-group.js.map +1 -0
- package/dist/atoms/toggle.js +1 -0
- package/dist/atoms/toggle.js.map +1 -0
- package/dist/atoms/tooltip.js +1 -0
- package/dist/atoms/tooltip.js.map +1 -0
- package/dist/default-layout.js +72 -0
- package/dist/default-layout.js.map +1 -0
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.js +5 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/use-mobile.js +1 -0
- package/dist/hooks/use-mobile.js.map +1 -0
- package/dist/index.d.ts +3 -6
- package/dist/index.js +342 -347
- package/dist/index.js.map +1 -0
- package/dist/lib/index.d.ts +1 -0
- package/dist/lib/index.js +5 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/utils.js +1 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/molecules/index.d.ts +3 -0
- package/dist/molecules/index.js +9 -0
- package/dist/molecules/index.js.map +1 -0
- package/dist/{organisms/app-sidebar-client.js → molecules/sidebar-theme-toggle.js} +1 -0
- package/dist/molecules/sidebar-theme-toggle.js.map +1 -0
- package/dist/molecules/theme-toggle.js +1 -0
- package/dist/molecules/theme-toggle.js.map +1 -0
- package/dist/molecules/user-menu.js +1 -0
- package/dist/molecules/user-menu.js.map +1 -0
- package/dist/organisms/app-navbar.d.ts +26 -3
- package/dist/organisms/app-navbar.js +77 -64
- package/dist/organisms/app-navbar.js.map +1 -0
- package/dist/organisms/app-sidebar.d.ts +30 -7
- package/dist/organisms/app-sidebar.js +110 -106
- package/dist/organisms/app-sidebar.js.map +1 -0
- package/dist/organisms/index.d.ts +2 -0
- package/dist/organisms/index.js +7 -0
- package/dist/organisms/index.js.map +1 -0
- package/package.json +28 -24
- package/dist/config/blog-layout.config.js +0 -19
- package/dist/config/default-Sidebar.js +0 -83
- package/dist/config/default-layout.js +0 -21
- package/dist/config/default-navigation.js +0 -57
- package/dist/config/sidebar.config.js +0 -11
- package/dist/layouts/blog-layout.d.ts +0 -7
- package/dist/layouts/blog-layout.js +0 -29
- package/dist/layouts/default-layout.d.ts +0 -7
- package/dist/layouts/default-layout.js +0 -54
- package/dist/layouts/sidebar-scroll-layout.d.ts +0 -8
- package/dist/layouts/sidebar-scroll-layout.js +0 -49
- /package/dist/{organisms/app-sidebar-client.d.ts → molecules/sidebar-theme-toggle.d.ts} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './utils';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
package/dist/lib/utils.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../src/lib/utils.ts"],"sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n"],"names":["clsx","twMerge","cn","inputs"],"mappings":"AAGO,SAAA,QAAAA,SAAA;AAAA,SAAA,WAAAC,SAAA;AAAA,SAASC,KAAMC,GAAsB;AAC1C,SAAOF,EAAQD,EAAKG,CAAM,CAAC;AAC7B;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { SidebarThemeToggle as r } from "./sidebar-theme-toggle.js";
|
|
2
|
+
import { ThemeToggle as g } from "./theme-toggle.js";
|
|
3
|
+
import { UserMenu as f } from "./user-menu.js";
|
|
4
|
+
export {
|
|
5
|
+
r as SidebarThemeToggle,
|
|
6
|
+
g as ThemeToggle,
|
|
7
|
+
f as UserMenu
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sidebar-theme-toggle.js","sources":["../../src/molecules/sidebar-theme-toggle.tsx"],"sourcesContent":["\"use client\";\n\nimport { ChevronDown, Moon, Sun } from \"lucide-react\";\nimport { useTheme } from \"next-themes\";\nimport { SidebarMenu, SidebarMenuButton, SidebarMenuItem } from \"@/atoms/sidebar\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"@/atoms/dropdown-menu\";\n\n/**\n * Client-only theme toggle component for sidebar footer.\n * This component uses next-themes hooks and must remain client-side.\n */\nexport function SidebarThemeToggle() {\n const { setTheme } = useTheme();\n\n return (\n <SidebarMenu>\n <SidebarMenuItem>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <SidebarMenuButton size=\"lg\">\n <div className=\"flex aspect-square size-8 items-center justify-center rounded-lg bg-sidebar-primary text-sidebar-primary-foreground\">\n <Sun className=\"size-4 rotate-0 scale-100 transition-all dark:-rotate-90 dark:scale-0\" />\n <Moon className=\"absolute size-4 rotate-90 scale-0 transition-all dark:rotate-0 dark:scale-100\" />\n </div>\n <div className=\"grid flex-1 text-left text-sm leading-tight\">\n <span className=\"truncate font-semibold\">Theme</span>\n <span className=\"truncate text-xs\">Toggle theme</span>\n </div>\n <ChevronDown className=\"ml-auto size-4\" />\n </SidebarMenuButton>\n </DropdownMenuTrigger>\n <DropdownMenuContent\n className=\"w-(--radix-dropdown-menu-trigger-width) min-w-56 rounded-lg\"\n side=\"bottom\"\n align=\"end\"\n sideOffset={4}\n >\n <DropdownMenuItem onClick={() => setTheme(\"light\")}>Light</DropdownMenuItem>\n <DropdownMenuItem onClick={() => setTheme(\"dark\")}>Dark</DropdownMenuItem>\n <DropdownMenuItem onClick={() => setTheme(\"system\")}>System</DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n </SidebarMenuItem>\n </SidebarMenu>\n );\n}\n"],"names":["jsx","jsxs","Sun","Moon","ChevronDown","useTheme","SidebarMenu","SidebarMenuItem","SidebarMenuButton","DropdownMenu","DropdownMenuTrigger","DropdownMenuContent","DropdownMenuItem","SidebarThemeToggle","setTheme"],"mappings":"AAgBO,SAAA,OAAAA,GAAA,QAAAC,SAAA;AAAA,SAAA,OAAAC,GAAA,QAAAC,GAAA,eAAAC,SAAA;AAAA,SAAA,YAAAC,SAAA;AAAA,SAAA,eAAAC,GAAA,mBAAAC,GAAA,qBAAAC,SAAA;AAAA,SAAA,gBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,oBAAAC,SAAA;AAAA,SAASC,IAAqB;AACnC,QAAM,EAAE,UAAAC,EAAA,IAAaT,EAAA;AAErB,SACE,gBAAAL,EAACM,GAAA,EACC,UAAA,gBAAAN,EAACO,GAAA,EACC,4BAACE,GAAA,EACC,UAAA;AAAA,IAAA,gBAAAT,EAACU,KAAoB,SAAO,IAC1B,UAAA,gBAAAT,EAACO,GAAA,EAAkB,MAAK,MACtB,UAAA;AAAA,MAAA,gBAAAP,EAAC,OAAA,EAAI,WAAU,uHACb,UAAA;AAAA,QAAA,gBAAAD,EAACE,GAAA,EAAI,WAAU,wEAAA,CAAwE;AAAA,QACvF,gBAAAF,EAACG,GAAA,EAAK,WAAU,gFAAA,CAAgF;AAAA,MAAA,GAClG;AAAA,MACA,gBAAAF,EAAC,OAAA,EAAI,WAAU,+CACb,UAAA;AAAA,QAAA,gBAAAD,EAAC,QAAA,EAAK,WAAU,0BAAyB,UAAA,SAAK;AAAA,QAC9C,gBAAAA,EAAC,QAAA,EAAK,WAAU,oBAAmB,UAAA,eAAA,CAAY;AAAA,MAAA,GACjD;AAAA,MACA,gBAAAA,EAACI,GAAA,EAAY,WAAU,iBAAA,CAAiB;AAAA,IAAA,EAAA,CAC1C,EAAA,CACF;AAAA,IACA,gBAAAH;AAAA,MAACU;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,MAAK;AAAA,QACL,OAAM;AAAA,QACN,YAAY;AAAA,QAEZ,UAAA;AAAA,UAAA,gBAAAX,EAACY,KAAiB,SAAS,MAAME,EAAS,OAAO,GAAG,UAAA,SAAK;AAAA,4BACxDF,GAAA,EAAiB,SAAS,MAAME,EAAS,MAAM,GAAG,UAAA,QAAI;AAAA,4BACtDF,GAAA,EAAiB,SAAS,MAAME,EAAS,QAAQ,GAAG,UAAA,SAAA,CAAM;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAC7D,EAAA,CACF,GACF,GACF;AAEJ;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-toggle.js","sources":["../../src/molecules/theme-toggle.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { Moon, Sun } from \"lucide-react\";\nimport { useTheme } from \"next-themes\";\n\nimport { Button } from \"@/atoms/button\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"@/atoms/dropdown-menu\";\nimport { cn } from \"@/lib/utils\";\n\nexport interface ThemeToggleProps {\n align?: \"center\" | \"start\" | \"end\";\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n sideOffset?: number;\n className?: string;\n trigger?: React.ReactNode;\n}\n\nexport function ThemeToggle({\n align = \"end\",\n side = \"bottom\",\n sideOffset = 4,\n className,\n trigger,\n}: ThemeToggleProps) {\n const { setTheme } = useTheme();\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n {trigger ? (\n trigger\n ) : (\n <Button variant=\"ghost\" size=\"icon\" className={cn(\"h-9 w-9\", className)}>\n <Sun className=\"h-[1.2rem] w-[1.2rem] rotate-0 scale-100 transition-all dark:-rotate-90 dark:scale-0\" />\n <Moon className=\"absolute h-[1.2rem] w-[1.2rem] rotate-90 scale-0 transition-all dark:rotate-0 dark:scale-100\" />\n <span className=\"sr-only\">Toggle theme</span>\n </Button>\n )}\n </DropdownMenuTrigger>\n <DropdownMenuContent align={align} side={side} sideOffset={sideOffset}>\n <DropdownMenuItem onClick={() => setTheme(\"light\")}>Light</DropdownMenuItem>\n <DropdownMenuItem onClick={() => setTheme(\"dark\")}>Dark</DropdownMenuItem>\n <DropdownMenuItem onClick={() => setTheme(\"system\")}>System</DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n"],"names":["jsxs","jsx","Sun","Moon","useTheme","Button","DropdownMenu","DropdownMenuTrigger","DropdownMenuContent","DropdownMenuItem","cn","ThemeToggle","align","side","sideOffset","className","trigger","setTheme"],"mappings":"AAuBO,SAAA,QAAAA,GAAA,OAAAC,SAAA;AAAA,SAAA,OAAAC,GAAA,QAAAC,SAAA;AAAA,SAAA,YAAAC,SAAA;AAAA,SAAA,UAAAC,SAAA;AAAA,SAAA,gBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,oBAAAC,SAAA;AAAA,SAAA,MAAAC,SAAA;AAAA,SAASC,EAAY;AAAA,EAC1B,OAAAC,IAAQ;AAAA,EACR,MAAAC,IAAO;AAAA,EACP,YAAAC,IAAa;AAAA,EACb,WAAAC;AAAA,EACA,SAAAC;AACF,GAAqB;AACnB,QAAM,EAAE,UAAAC,EAAA,IAAab,EAAA;AAErB,2BACGE,GAAA,EACC,UAAA;AAAA,IAAA,gBAAAL,EAACM,GAAA,EAAoB,SAAO,IACzB,UAAAS,KAGC,gBAAAhB,EAACK,GAAA,EAAO,SAAQ,SAAQ,MAAK,QAAO,WAAWK,EAAG,WAAWK,CAAS,GACpE,UAAA;AAAA,MAAA,gBAAAd,EAACC,GAAA,EAAI,WAAU,uFAAA,CAAuF;AAAA,MACtG,gBAAAD,EAACE,GAAA,EAAK,WAAU,+FAAA,CAA+F;AAAA,MAC/G,gBAAAF,EAAC,QAAA,EAAK,WAAU,WAAU,UAAA,eAAA,CAAY;AAAA,IAAA,EAAA,CACxC,EAAA,CAEJ;AAAA,IACA,gBAAAD,EAACQ,GAAA,EAAoB,OAAAI,GAAc,MAAAC,GAAY,YAAAC,GAC7C,UAAA;AAAA,MAAA,gBAAAb,EAACQ,KAAiB,SAAS,MAAMQ,EAAS,OAAO,GAAG,UAAA,SAAK;AAAA,wBACxDR,GAAA,EAAiB,SAAS,MAAMQ,EAAS,MAAM,GAAG,UAAA,QAAI;AAAA,wBACtDR,GAAA,EAAiB,SAAS,MAAMQ,EAAS,QAAQ,GAAG,UAAA,SAAA,CAAM;AAAA,IAAA,EAAA,CAC7D;AAAA,EAAA,GACF;AAEJ;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-menu.js","sources":["../../src/molecules/user-menu.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { Avatar, AvatarFallback, AvatarImage } from \"@/atoms/avatar\";\nimport { Button } from \"@/atoms/button\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/atoms/dropdown-menu\";\nimport { cn } from \"@/lib/utils\";\n\nexport interface UserMenuProps {\n user: {\n name: string;\n email: string;\n avatar?: string;\n };\n items?: Array<{\n label: string;\n href?: string;\n onClick?: () => void;\n icon?: React.ComponentType<{ className?: string }>;\n }>;\n className?: string;\n}\n\nexport function UserMenu({ user, items, className }: UserMenuProps) {\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant=\"ghost\" size=\"icon\" className={cn(\"rounded-full\", className)}>\n <Avatar className=\"h-8 w-8\">\n <AvatarImage src={user.avatar} alt={user.name} />\n <AvatarFallback>{user.name?.[0] ?? \"U\"}</AvatarFallback>\n </Avatar>\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\">\n <DropdownMenuLabel className=\"p-0 font-normal\">\n <div className=\"flex flex-col space-y-1\">\n <p className=\"text-sm font-medium leading-none\">{user.name}</p>\n <p className=\"text-xs leading-none text-muted-foreground\">{user.email}</p>\n </div>\n </DropdownMenuLabel>\n <DropdownMenuSeparator />\n {items?.map((item, i) => (\n <DropdownMenuItem key={i} asChild>\n <a href={item.href ?? \"#\"} onClick={item.onClick}>\n {item.icon && React.createElement(item.icon, { className: \"mr-2 h-4 w-4\" })}\n <span>{item.label}</span>\n </a>\n </DropdownMenuItem>\n ))}\n {!items?.length && (\n <DropdownMenuItem asChild>\n <a href=\"#profile\">Profile</a>\n </DropdownMenuItem>\n )}\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n"],"names":["UserMenu","user","items","className","DropdownMenu","jsx","DropdownMenuTrigger","Button","cn","jsxs","Avatar","AvatarImage","AvatarFallback","DropdownMenuContent","DropdownMenuLabel","DropdownMenuSeparator","item","i","DropdownMenuItem","React"],"mappings":";;;;;;AA8BO,SAASA,EAAS,EAAE,MAAAC,GAAM,OAAAC,GAAO,WAAAC,KAA4B;AAClE,2BACGC,GAAA,EACC,UAAA;AAAA,IAAA,gBAAAC,EAACC,KAAoB,SAAO,IAC1B,UAAA,gBAAAD,EAACE,GAAA,EAAO,SAAQ,SAAQ,MAAK,QAAO,WAAWC,EAAG,gBAAgBL,CAAS,GACzE,UAAA,gBAAAM,EAACC,GAAA,EAAO,WAAU,WAChB,UAAA;AAAA,MAAA,gBAAAL,EAACM,KAAY,KAAKV,EAAK,QAAQ,KAAKA,EAAK,MAAM;AAAA,wBAC9CW,GAAA,EAAgB,UAAAX,EAAK,OAAO,CAAC,KAAK,IAAA,CAAI;AAAA,IAAA,EAAA,CACzC,GACF,GACF;AAAA,IACA,gBAAAQ,EAACI,GAAA,EAAoB,OAAM,OACzB,UAAA;AAAA,MAAA,gBAAAR,EAACS,KAAkB,WAAU,mBAC3B,UAAA,gBAAAL,EAAC,OAAA,EAAI,WAAU,2BACb,UAAA;AAAA,QAAA,gBAAAJ,EAAC,KAAA,EAAE,WAAU,oCAAoC,UAAAJ,EAAK,MAAK;AAAA,QAC3D,gBAAAI,EAAC,KAAA,EAAE,WAAU,8CAA8C,YAAK,MAAA,CAAM;AAAA,MAAA,EAAA,CACxE,EAAA,CACF;AAAA,wBACCU,GAAA,EAAsB;AAAA,MACtBb,GAAO,IAAI,CAACc,GAAMC,wBAChBC,GAAA,EAAyB,SAAO,IAC/B,UAAA,gBAAAT,EAAC,OAAE,MAAMO,EAAK,QAAQ,KAAK,SAASA,EAAK,SACtC,UAAA;AAAA,QAAAA,EAAK,QAAQG,EAAM,cAAcH,EAAK,MAAM,EAAE,WAAW,gBAAgB;AAAA,QAC1E,gBAAAX,EAAC,QAAA,EAAM,UAAAW,EAAK,MAAA,CAAM;AAAA,MAAA,GACpB,EAAA,GAJqBC,CAKvB,CACD;AAAA,MACA,CAACf,GAAO,UACP,gBAAAG,EAACa,GAAA,EAAiB,SAAO,IACvB,UAAA,gBAAAb,EAAC,KAAA,EAAE,MAAK,YAAW,UAAA,UAAA,CAAO,EAAA,CAC5B;AAAA,IAAA,EAAA,CAEJ;AAAA,EAAA,GACF;AAEJ;"}
|
|
@@ -1,6 +1,29 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UserConfig, BrandingConfig, MenuItem, NotificationsList } from '../default-layout';
|
|
2
|
+
interface NavbarLabels {
|
|
3
|
+
profile?: string;
|
|
4
|
+
notifications?: string;
|
|
5
|
+
noNotifications?: string;
|
|
6
|
+
}
|
|
7
|
+
interface UserMenuItem {
|
|
8
|
+
label: string;
|
|
9
|
+
href?: string;
|
|
10
|
+
icon?: React.ComponentType<{
|
|
11
|
+
className?: string;
|
|
12
|
+
}>;
|
|
13
|
+
onClick?: () => void;
|
|
14
|
+
}
|
|
2
15
|
interface AppNavbarProps {
|
|
3
|
-
|
|
16
|
+
items?: (MenuItem & {
|
|
17
|
+
icon?: React.ComponentType<{
|
|
18
|
+
className?: string;
|
|
19
|
+
}>;
|
|
20
|
+
})[];
|
|
21
|
+
searchPlaceholder?: string;
|
|
22
|
+
user?: UserConfig;
|
|
23
|
+
userMenuItems?: UserMenuItem[];
|
|
24
|
+
notifications?: NotificationsList[];
|
|
25
|
+
branding?: BrandingConfig;
|
|
26
|
+
labels?: NavbarLabels;
|
|
4
27
|
showSearch?: boolean;
|
|
5
28
|
showSidebarTrigger?: boolean;
|
|
6
29
|
showUserMenu?: boolean;
|
|
@@ -9,5 +32,5 @@ interface AppNavbarProps {
|
|
|
9
32
|
className?: string;
|
|
10
33
|
style?: React.CSSProperties;
|
|
11
34
|
}
|
|
12
|
-
export declare function AppNavbar({
|
|
35
|
+
export declare function AppNavbar({ items, searchPlaceholder, user, userMenuItems, notifications, branding, labels, showSearch, showSidebarTrigger, showUserMenu, showThemeToggle, showNotifications, className, style, }: AppNavbarProps): import("react/jsx-runtime").JSX.Element;
|
|
13
36
|
export {};
|
|
@@ -1,82 +1,94 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import { Search as
|
|
3
|
-
import { Input as
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import { DropdownMenu as M, DropdownMenuTrigger as v, DropdownMenuContent as D, DropdownMenuLabel as I, DropdownMenuSeparator as C, DropdownMenuItem as P } from "../atoms/dropdown-menu.js";
|
|
9
|
-
import { ThemeToggle as S } from "../molecules/theme-toggle.js";
|
|
1
|
+
import { jsxs as r, jsx as e, Fragment as w } from "react/jsx-runtime";
|
|
2
|
+
import { Search as v, Bell as b } from "lucide-react";
|
|
3
|
+
import { Input as M } from "../atoms/input.js";
|
|
4
|
+
import { Button as D } from "../atoms/button.js";
|
|
5
|
+
import { SidebarTrigger as S } from "../atoms/sidebar.js";
|
|
6
|
+
import { Separator as k } from "../atoms/separator.js";
|
|
7
|
+
import { ThemeToggle as y } from "../molecules/theme-toggle.js";
|
|
10
8
|
import { UserMenu as T } from "../molecules/user-menu.js";
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
9
|
+
import { DropdownMenu as j, DropdownMenuTrigger as I, DropdownMenuContent as U, DropdownMenuLabel as z, DropdownMenuSeparator as A, DropdownMenuItem as B } from "../atoms/dropdown-menu.js";
|
|
10
|
+
function K({
|
|
11
|
+
items: c = [],
|
|
12
|
+
searchPlaceholder: d = "Search...",
|
|
13
|
+
user: a,
|
|
14
|
+
userMenuItems: p,
|
|
15
|
+
notifications: o = [],
|
|
16
|
+
branding: l,
|
|
17
|
+
labels: n,
|
|
18
|
+
showSearch: h = !0,
|
|
19
|
+
showSidebarTrigger: u = !0,
|
|
20
|
+
showUserMenu: f = !0,
|
|
21
|
+
showThemeToggle: g = !0,
|
|
22
|
+
showNotifications: N = !0,
|
|
23
|
+
className: m,
|
|
24
|
+
style: x
|
|
20
25
|
}) {
|
|
21
|
-
|
|
22
|
-
items: a?.items || n.items,
|
|
23
|
-
searchPlaceholder: a?.searchPlaceholder || n.searchPlaceholder,
|
|
24
|
-
user: a?.user || n.user,
|
|
25
|
-
userMenuItems: a?.userMenuItems || n.userMenuItems,
|
|
26
|
-
notifications: a?.notifications || n.notifications,
|
|
27
|
-
branding: a?.branding || n.branding
|
|
28
|
-
};
|
|
29
|
-
return /* @__PURE__ */ t(
|
|
26
|
+
return /* @__PURE__ */ r(
|
|
30
27
|
"header",
|
|
31
28
|
{
|
|
32
|
-
className: "flex h-16 shrink-0 items-center gap-2 border-b px-4 bg-background sticky top-0 z-50" + (
|
|
33
|
-
style:
|
|
29
|
+
className: "flex h-16 shrink-0 items-center gap-2 border-b px-4 bg-background sticky top-0 z-50" + (m ? ` ${m}` : ""),
|
|
30
|
+
style: x,
|
|
34
31
|
children: [
|
|
35
|
-
|
|
36
|
-
/* @__PURE__ */ e(
|
|
37
|
-
/* @__PURE__ */ e(
|
|
32
|
+
u && /* @__PURE__ */ r(w, { children: [
|
|
33
|
+
/* @__PURE__ */ e(S, { className: "-ml-1" }),
|
|
34
|
+
/* @__PURE__ */ e(k, { orientation: "vertical", className: "mr-2 h-4" })
|
|
38
35
|
] }),
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
/* @__PURE__ */ e("span", { className: "font-semibold", children:
|
|
36
|
+
l && /* @__PURE__ */ r("a", { href: "#", className: "flex items-center gap-2 mr-4", children: [
|
|
37
|
+
l.logoUrl && /* @__PURE__ */ e("img", { src: l.logoUrl, alt: l.logoAlt || "Logo", className: "h-6 w-6" }),
|
|
38
|
+
l.title && /* @__PURE__ */ e("span", { className: "font-semibold", children: l.title })
|
|
42
39
|
] }),
|
|
43
|
-
/* @__PURE__ */
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
40
|
+
/* @__PURE__ */ e("nav", { className: "flex items-center gap-6 text-sm font-medium", children: c?.map((t, s) => {
|
|
41
|
+
const i = t.icon;
|
|
42
|
+
return /* @__PURE__ */ r(
|
|
43
|
+
"a",
|
|
44
|
+
{
|
|
45
|
+
href: t.href,
|
|
46
|
+
className: `transition-colors hover:text-foreground/80 ${t.disabled ? "pointer-events-none opacity-50" : "text-foreground/60"}`,
|
|
47
|
+
children: [
|
|
48
|
+
i && /* @__PURE__ */ e(i, { className: "inline-block mr-1 h-4 w-4" }),
|
|
49
|
+
t.label
|
|
50
|
+
]
|
|
51
|
+
},
|
|
52
|
+
s
|
|
53
|
+
);
|
|
54
|
+
}) }),
|
|
55
|
+
/* @__PURE__ */ r("div", { className: "ml-auto flex items-center gap-2", children: [
|
|
56
|
+
h && /* @__PURE__ */ r("div", { className: "relative", children: [
|
|
57
|
+
/* @__PURE__ */ e(v, { className: "absolute left-2 top-2.5 h-4 w-4 text-muted-foreground" }),
|
|
58
|
+
/* @__PURE__ */ e(M, { placeholder: d, className: "pl-8 w-[200px] lg:w-[300px]" })
|
|
53
59
|
] }),
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
60
|
+
g && /* @__PURE__ */ e(y, {}),
|
|
61
|
+
f && a && a.name && a.email && /* @__PURE__ */ e(
|
|
62
|
+
T,
|
|
63
|
+
{
|
|
64
|
+
user: { name: a.name, email: a.email, avatar: a.image },
|
|
65
|
+
items: p
|
|
66
|
+
}
|
|
67
|
+
),
|
|
68
|
+
N && o && o.length > 0 && /* @__PURE__ */ r(j, { children: [
|
|
69
|
+
/* @__PURE__ */ e(I, { asChild: !0, children: /* @__PURE__ */ r(D, { variant: "ghost", size: "icon", className: "relative", children: [
|
|
70
|
+
/* @__PURE__ */ e(b, { className: "h-5 w-5" }),
|
|
71
|
+
o.some((t) => !t.read) && /* @__PURE__ */ e("span", { className: "absolute right-2 top-2 h-2 w-2 rounded-full bg-red-600" }),
|
|
72
|
+
/* @__PURE__ */ e("span", { className: "sr-only", children: n?.notifications || "Notifications" })
|
|
61
73
|
] }) }),
|
|
62
|
-
/* @__PURE__ */
|
|
63
|
-
/* @__PURE__ */ e(
|
|
64
|
-
/* @__PURE__ */ e(
|
|
65
|
-
|
|
66
|
-
|
|
74
|
+
/* @__PURE__ */ r(U, { align: "end", className: "w-80", children: [
|
|
75
|
+
/* @__PURE__ */ e(z, { children: n?.notifications || "Notifications" }),
|
|
76
|
+
/* @__PURE__ */ e(A, {}),
|
|
77
|
+
o.map((t, s) => /* @__PURE__ */ r(
|
|
78
|
+
B,
|
|
67
79
|
{
|
|
68
80
|
className: "flex flex-col items-start gap-1 p-3 cursor-pointer",
|
|
69
81
|
children: [
|
|
70
|
-
/* @__PURE__ */
|
|
71
|
-
/* @__PURE__ */ e("span", { className: "font-medium", children:
|
|
72
|
-
/* @__PURE__ */ e("span", { className: "text-xs text-muted-foreground", children:
|
|
82
|
+
/* @__PURE__ */ r("div", { className: "flex w-full items-center justify-between", children: [
|
|
83
|
+
/* @__PURE__ */ e("span", { className: "font-medium", children: t.title }),
|
|
84
|
+
/* @__PURE__ */ e("span", { className: "text-xs text-muted-foreground", children: t.date })
|
|
73
85
|
] }),
|
|
74
|
-
/* @__PURE__ */ e("p", { className: "text-sm text-muted-foreground line-clamp-2", children:
|
|
86
|
+
/* @__PURE__ */ e("p", { className: "text-sm text-muted-foreground line-clamp-2", children: t.description })
|
|
75
87
|
]
|
|
76
88
|
},
|
|
77
|
-
|
|
89
|
+
s
|
|
78
90
|
)),
|
|
79
|
-
|
|
91
|
+
o.length === 0 && /* @__PURE__ */ e("div", { className: "p-4 text-center text-sm text-muted-foreground", children: n?.noNotifications || "No new notifications" })
|
|
80
92
|
] })
|
|
81
93
|
] })
|
|
82
94
|
] })
|
|
@@ -85,5 +97,6 @@ function q({
|
|
|
85
97
|
);
|
|
86
98
|
}
|
|
87
99
|
export {
|
|
88
|
-
|
|
100
|
+
K as AppNavbar
|
|
89
101
|
};
|
|
102
|
+
//# sourceMappingURL=app-navbar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-navbar.js","sources":["../../src/organisms/app-navbar.tsx"],"sourcesContent":["\"use client\";\n\nimport { Search, Bell } from \"lucide-react\";\nimport { Input } from \"@/atoms/input\";\nimport { Button } from \"@/atoms/button\";\nimport { SidebarTrigger } from \"@/atoms/sidebar\";\nimport { Separator } from \"@/atoms/separator\";\nimport { ThemeToggle } from \"@/molecules/theme-toggle\";\nimport { UserMenu } from \"@/molecules/user-menu\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/atoms/dropdown-menu\";\nimport type { UserConfig, BrandingConfig, MenuItem, NotificationsList } from \"@/default-layout\";\n\ninterface NavbarLabels {\n profile?: string;\n notifications?: string;\n noNotifications?: string;\n}\n\ninterface UserMenuItem {\n label: string;\n href?: string;\n icon?: React.ComponentType<{ className?: string }>;\n onClick?: () => void;\n}\n\ninterface AppNavbarProps {\n items?: (MenuItem & { icon?: React.ComponentType<{ className?: string }> })[];\n searchPlaceholder?: string;\n user?: UserConfig;\n userMenuItems?: UserMenuItem[];\n notifications?: NotificationsList[];\n branding?: BrandingConfig;\n labels?: NavbarLabels;\n showSearch?: boolean;\n showSidebarTrigger?: boolean;\n showUserMenu?: boolean;\n showThemeToggle?: boolean;\n showNotifications?: boolean;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport function AppNavbar({\n items = [],\n searchPlaceholder = \"Search...\",\n user,\n userMenuItems,\n notifications = [],\n branding,\n labels,\n showSearch = true,\n showSidebarTrigger = true,\n showUserMenu = true,\n showThemeToggle = true,\n showNotifications = true,\n className,\n style,\n}: AppNavbarProps) {\n return (\n <header\n className={\n \"flex h-16 shrink-0 items-center gap-2 border-b px-4 bg-background sticky top-0 z-50\" +\n (className ? ` ${className}` : \"\")\n }\n style={style}\n >\n {showSidebarTrigger && (\n <>\n <SidebarTrigger className=\"-ml-1\" />\n <Separator orientation=\"vertical\" className=\"mr-2 h-4\" />\n </>\n )}\n\n {branding && (\n <a href=\"#\" className=\"flex items-center gap-2 mr-4\">\n {branding.logoUrl && (\n <img src={branding.logoUrl} alt={branding.logoAlt || \"Logo\"} className=\"h-6 w-6\" />\n )}\n {branding.title && <span className=\"font-semibold\">{branding.title}</span>}\n </a>\n )}\n\n <nav className=\"flex items-center gap-6 text-sm font-medium\">\n {items?.map((item, index) => {\n const Icon = item.icon;\n return (\n <a\n key={index}\n href={item.href}\n className={`transition-colors hover:text-foreground/80 ${\n item.disabled ? \"pointer-events-none opacity-50\" : \"text-foreground/60\"\n }`}\n >\n {Icon && <Icon className=\"inline-block mr-1 h-4 w-4\" />}\n {item.label}\n </a>\n );\n })}\n </nav>\n\n <div className=\"ml-auto flex items-center gap-2\">\n {showSearch && (\n <div className=\"relative\">\n <Search className=\"absolute left-2 top-2.5 h-4 w-4 text-muted-foreground\" />\n <Input placeholder={searchPlaceholder} className=\"pl-8 w-[200px] lg:w-[300px]\" />\n </div>\n )}\n\n {showThemeToggle && <ThemeToggle />}\n {showUserMenu && user && user.name && user.email && (\n <UserMenu\n user={{ name: user.name, email: user.email, avatar: user.image }}\n items={userMenuItems}\n />\n )}\n\n {showNotifications && notifications && notifications.length > 0 && (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant=\"ghost\" size=\"icon\" className=\"relative\">\n <Bell className=\"h-5 w-5\" />\n {notifications.some((n) => !n.read) && (\n <span className=\"absolute right-2 top-2 h-2 w-2 rounded-full bg-red-600\" />\n )}\n <span className=\"sr-only\">{labels?.notifications || \"Notifications\"}</span>\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\" className=\"w-80\">\n <DropdownMenuLabel>{labels?.notifications || \"Notifications\"}</DropdownMenuLabel>\n <DropdownMenuSeparator />\n {notifications.map((notification, index) => (\n <DropdownMenuItem\n key={index}\n className=\"flex flex-col items-start gap-1 p-3 cursor-pointer\"\n >\n <div className=\"flex w-full items-center justify-between\">\n <span className=\"font-medium\">{notification.title}</span>\n <span className=\"text-xs text-muted-foreground\">{notification.date}</span>\n </div>\n <p className=\"text-sm text-muted-foreground line-clamp-2\">\n {notification.description}\n </p>\n </DropdownMenuItem>\n ))}\n {notifications.length === 0 && (\n <div className=\"p-4 text-center text-sm text-muted-foreground\">\n {labels?.noNotifications || \"No new notifications\"}\n </div>\n )}\n </DropdownMenuContent>\n </DropdownMenu>\n )}\n </div>\n </header>\n );\n}\n"],"names":["jsxs","jsx","Fragment","Search","Bell","Input","Button","SidebarTrigger","Separator","ThemeToggle","UserMenu","DropdownMenu","DropdownMenuTrigger","DropdownMenuContent","DropdownMenuLabel","DropdownMenuSeparator","DropdownMenuItem","AppNavbar","items","searchPlaceholder","user","userMenuItems","notifications","branding","labels","showSearch","showSidebarTrigger","showUserMenu","showThemeToggle","showNotifications","className","style","item","index","Icon","n","notification"],"mappings":"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"}
|
|
@@ -1,12 +1,35 @@
|
|
|
1
1
|
import { Sidebar } from '../atoms/sidebar';
|
|
2
|
-
import {
|
|
3
|
-
interface
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
import { UserConfig, BrandingConfig, SidebarGroup as SidebarGroupType, MenuItem } from '../default-layout';
|
|
3
|
+
interface SidebarLabels {
|
|
4
|
+
logout?: string;
|
|
5
|
+
}
|
|
6
|
+
interface UserMenuItem {
|
|
7
|
+
label: string;
|
|
8
|
+
href?: string;
|
|
9
|
+
icon?: React.ComponentType<{
|
|
10
|
+
className?: string;
|
|
11
|
+
}>;
|
|
12
|
+
onClick?: () => void;
|
|
13
|
+
}
|
|
14
|
+
interface AppSidebarProps extends React.ComponentProps<typeof Sidebar> {
|
|
15
|
+
groups?: (SidebarGroupType & {
|
|
16
|
+
items: (MenuItem & {
|
|
17
|
+
icon?: React.ComponentType<{
|
|
18
|
+
className?: string;
|
|
19
|
+
}>;
|
|
20
|
+
items?: MenuItem[];
|
|
21
|
+
})[];
|
|
22
|
+
})[];
|
|
23
|
+
header?: React.ReactNode;
|
|
24
|
+
footer?: React.ReactNode;
|
|
25
|
+
user?: UserConfig;
|
|
26
|
+
userMenuItems?: UserMenuItem[];
|
|
27
|
+
branding?: BrandingConfig;
|
|
28
|
+
labels?: SidebarLabels;
|
|
29
|
+
fixed?: boolean;
|
|
8
30
|
hideBranding?: boolean;
|
|
9
31
|
showThemeToggle?: boolean;
|
|
32
|
+
scrollable?: boolean;
|
|
10
33
|
}
|
|
11
|
-
export declare function AppSidebar({
|
|
34
|
+
export declare function AppSidebar({ groups, header, footer, user, userMenuItems, branding, labels, fixed, hideBranding, showThemeToggle, className, style, side, variant, collapsible, scrollable, ...props }: AppSidebarProps): import("react/jsx-runtime").JSX.Element;
|
|
12
35
|
export {};
|