@senitix/ui 0.4.0

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.
Files changed (206) hide show
  1. package/dist/avatar-C0aVNCG9.cjs +2 -0
  2. package/dist/avatar-C0aVNCG9.cjs.map +1 -0
  3. package/dist/avatar-CN6wcrqY.js +288 -0
  4. package/dist/avatar-CN6wcrqY.js.map +1 -0
  5. package/dist/calendar-BFWc4IB7.js +1182 -0
  6. package/dist/calendar-BFWc4IB7.js.map +1 -0
  7. package/dist/calendar-BUm7YrNf.cjs +2 -0
  8. package/dist/calendar-BUm7YrNf.cjs.map +1 -0
  9. package/dist/calendar-ChJkFXXr.js +11 -0
  10. package/dist/calendar-ChJkFXXr.js.map +1 -0
  11. package/dist/calendar-SwL5isYC.cjs +2 -0
  12. package/dist/calendar-SwL5isYC.cjs.map +1 -0
  13. package/dist/card-K4fxyYwE.js +51 -0
  14. package/dist/card-K4fxyYwE.js.map +1 -0
  15. package/dist/card-tMkUxpmW.cjs +2 -0
  16. package/dist/card-tMkUxpmW.cjs.map +1 -0
  17. package/dist/checkbox-CpOq5hkT.js +289 -0
  18. package/dist/checkbox-CpOq5hkT.js.map +1 -0
  19. package/dist/checkbox-D7-LQyCl.cjs +2 -0
  20. package/dist/checkbox-D7-LQyCl.cjs.map +1 -0
  21. package/dist/chevron-down-DHdXqOqK.cjs +2 -0
  22. package/dist/chevron-down-DHdXqOqK.cjs.map +1 -0
  23. package/dist/chevron-down-DJ1_YIFu.js +8 -0
  24. package/dist/chevron-down-DJ1_YIFu.js.map +1 -0
  25. package/dist/chevron-right-B3bovvh0.js +8 -0
  26. package/dist/chevron-right-B3bovvh0.js.map +1 -0
  27. package/dist/chevron-right-Dvyd11q0.cjs +2 -0
  28. package/dist/chevron-right-Dvyd11q0.cjs.map +1 -0
  29. package/dist/chevron-up-B9fuiZhc.cjs +2 -0
  30. package/dist/chevron-up-B9fuiZhc.cjs.map +1 -0
  31. package/dist/chevron-up-CGtXOr51.js +6 -0
  32. package/dist/chevron-up-CGtXOr51.js.map +1 -0
  33. package/dist/components/charts/index.cjs.js +2 -0
  34. package/dist/components/charts/index.cjs.js.map +1 -0
  35. package/dist/components/charts/index.es.js +12 -0
  36. package/dist/components/charts/index.es.js.map +1 -0
  37. package/dist/components/data-display/index.cjs.js +2 -0
  38. package/dist/components/data-display/index.cjs.js.map +1 -0
  39. package/dist/components/data-display/index.es.js +25 -0
  40. package/dist/components/data-display/index.es.js.map +1 -0
  41. package/dist/components/dnd/index.cjs.js +2 -0
  42. package/dist/components/dnd/index.cjs.js.map +1 -0
  43. package/dist/components/dnd/index.es.js +9 -0
  44. package/dist/components/dnd/index.es.js.map +1 -0
  45. package/dist/components/feedback/index.cjs.js +2 -0
  46. package/dist/components/feedback/index.cjs.js.map +1 -0
  47. package/dist/components/feedback/index.es.js +16 -0
  48. package/dist/components/feedback/index.es.js.map +1 -0
  49. package/dist/components/forms/index.cjs.js +2 -0
  50. package/dist/components/forms/index.cjs.js.map +1 -0
  51. package/dist/components/forms/index.es.js +27 -0
  52. package/dist/components/forms/index.es.js.map +1 -0
  53. package/dist/components/layouts/index.cjs.js +2 -0
  54. package/dist/components/layouts/index.cjs.js.map +1 -0
  55. package/dist/components/layouts/index.es.js +25 -0
  56. package/dist/components/layouts/index.es.js.map +1 -0
  57. package/dist/components/navigation/index.cjs.js +2 -0
  58. package/dist/components/navigation/index.cjs.js.map +1 -0
  59. package/dist/components/navigation/index.es.js +42 -0
  60. package/dist/components/navigation/index.es.js.map +1 -0
  61. package/dist/components/ui/index.cjs.js +2 -0
  62. package/dist/components/ui/index.cjs.js.map +1 -0
  63. package/dist/components/ui/index.es.js +165 -0
  64. package/dist/components/ui/index.es.js.map +1 -0
  65. package/dist/createLucideIcon-BbeNo6vq.js +56 -0
  66. package/dist/createLucideIcon-BbeNo6vq.js.map +1 -0
  67. package/dist/createLucideIcon-i5GEhNMV.cjs +2 -0
  68. package/dist/createLucideIcon-i5GEhNMV.cjs.map +1 -0
  69. package/dist/ellipsis-BW2gWki8.cjs +2 -0
  70. package/dist/ellipsis-BW2gWki8.cjs.map +1 -0
  71. package/dist/ellipsis-CiKEaUNP.js +10 -0
  72. package/dist/ellipsis-CiKEaUNP.js.map +1 -0
  73. package/dist/file-V_hhCUhr.cjs +2 -0
  74. package/dist/file-V_hhCUhr.cjs.map +1 -0
  75. package/dist/file-wzTXnWqz.js +9 -0
  76. package/dist/file-wzTXnWqz.js.map +1 -0
  77. package/dist/filter-tags-DjUaNXHR.cjs +5 -0
  78. package/dist/filter-tags-DjUaNXHR.cjs.map +1 -0
  79. package/dist/filter-tags-i_I8qV1N.js +2658 -0
  80. package/dist/filter-tags-i_I8qV1N.js.map +1 -0
  81. package/dist/full-calendar-7ac2FFU6.js +3518 -0
  82. package/dist/full-calendar-7ac2FFU6.js.map +1 -0
  83. package/dist/full-calendar-Cpeh5xMP.cjs +8 -0
  84. package/dist/full-calendar-Cpeh5xMP.cjs.map +1 -0
  85. package/dist/global-search-UNXjoFlI.cjs +2 -0
  86. package/dist/global-search-UNXjoFlI.cjs.map +1 -0
  87. package/dist/global-search-h1rVbP2q.js +1188 -0
  88. package/dist/global-search-h1rVbP2q.js.map +1 -0
  89. package/dist/hooks/index.cjs.js +2 -0
  90. package/dist/hooks/index.cjs.js.map +1 -0
  91. package/dist/hooks/index.es.js +13 -0
  92. package/dist/hooks/index.es.js.map +1 -0
  93. package/dist/index-Co9o9StL.js +33 -0
  94. package/dist/index-Co9o9StL.js.map +1 -0
  95. package/dist/index-CwJPJKOE.js +2278 -0
  96. package/dist/index-CwJPJKOE.js.map +1 -0
  97. package/dist/index-CzVK9Zyb.cjs +6 -0
  98. package/dist/index-CzVK9Zyb.cjs.map +1 -0
  99. package/dist/index-l828OqQN.js +288 -0
  100. package/dist/index-l828OqQN.js.map +1 -0
  101. package/dist/index-lGzB9daF.cjs +2 -0
  102. package/dist/index-lGzB9daF.cjs.map +1 -0
  103. package/dist/index-lT9bLt9X.cjs +2 -0
  104. package/dist/index-lT9bLt9X.cjs.map +1 -0
  105. package/dist/index.cjs.js +2 -0
  106. package/dist/index.cjs.js.map +1 -0
  107. package/dist/index.es.js +332 -0
  108. package/dist/index.es.js.map +1 -0
  109. package/dist/input-CZrckPLk.cjs +42 -0
  110. package/dist/input-CZrckPLk.cjs.map +1 -0
  111. package/dist/input-D4AoiWxo.js +3629 -0
  112. package/dist/input-D4AoiWxo.js.map +1 -0
  113. package/dist/locale-provider-DHMwuneF.cjs +2 -0
  114. package/dist/locale-provider-DHMwuneF.cjs.map +1 -0
  115. package/dist/locale-provider-DanG6RRG.js +1012 -0
  116. package/dist/locale-provider-DanG6RRG.js.map +1 -0
  117. package/dist/locale-selector-Ppe0KTi-.cjs +2 -0
  118. package/dist/locale-selector-Ppe0KTi-.cjs.map +1 -0
  119. package/dist/locale-selector-xn2GpdP9.js +1745 -0
  120. package/dist/locale-selector-xn2GpdP9.js.map +1 -0
  121. package/dist/minus-BXBFZSZs.cjs +2 -0
  122. package/dist/minus-BXBFZSZs.cjs.map +1 -0
  123. package/dist/minus-DvlYtl96.js +6 -0
  124. package/dist/minus-DvlYtl96.js.map +1 -0
  125. package/dist/multi-container-C2UpSw5f.js +731 -0
  126. package/dist/multi-container-C2UpSw5f.js.map +1 -0
  127. package/dist/multi-container-DMKL8c9B.cjs +2 -0
  128. package/dist/multi-container-DMKL8c9B.cjs.map +1 -0
  129. package/dist/pipeline-By5_8AFg.cjs +2 -0
  130. package/dist/pipeline-By5_8AFg.cjs.map +1 -0
  131. package/dist/pipeline-D-QNSU0U.js +1036 -0
  132. package/dist/pipeline-D-QNSU0U.js.map +1 -0
  133. package/dist/plus-8wKRkVu-.cjs +2 -0
  134. package/dist/plus-8wKRkVu-.cjs.map +1 -0
  135. package/dist/plus-CJD68KQD.js +9 -0
  136. package/dist/plus-CJD68KQD.js.map +1 -0
  137. package/dist/popover-4V4sGe1U.js +765 -0
  138. package/dist/popover-4V4sGe1U.js.map +1 -0
  139. package/dist/popover-ivh-plLc.cjs +2 -0
  140. package/dist/popover-ivh-plLc.cjs.map +1 -0
  141. package/dist/progress-CFnuLqnS.cjs +7 -0
  142. package/dist/progress-CFnuLqnS.cjs.map +1 -0
  143. package/dist/progress-D5AsrWa6.js +222 -0
  144. package/dist/progress-D5AsrWa6.js.map +1 -0
  145. package/dist/providers/index.cjs.js +2 -0
  146. package/dist/providers/index.cjs.js.map +1 -0
  147. package/dist/providers/index.es.js +9 -0
  148. package/dist/providers/index.es.js.map +1 -0
  149. package/dist/scroll-area-DQeqDp3Y.js +952 -0
  150. package/dist/scroll-area-DQeqDp3Y.js.map +1 -0
  151. package/dist/scroll-area-DYOiJMXh.cjs +2 -0
  152. package/dist/scroll-area-DYOiJMXh.cjs.map +1 -0
  153. package/dist/select-C1rNBi6c.js +974 -0
  154. package/dist/select-C1rNBi6c.js.map +1 -0
  155. package/dist/select-m-Mqwxu3.cjs +2 -0
  156. package/dist/select-m-Mqwxu3.cjs.map +1 -0
  157. package/dist/separator-DBUivkHq.cjs +2 -0
  158. package/dist/separator-DBUivkHq.cjs.map +1 -0
  159. package/dist/separator-DsfoJx-2.js +395 -0
  160. package/dist/separator-DsfoJx-2.js.map +1 -0
  161. package/dist/sheet-BVWCpq7E.js +84 -0
  162. package/dist/sheet-BVWCpq7E.js.map +1 -0
  163. package/dist/sheet-mKiFLVnK.cjs +2 -0
  164. package/dist/sheet-mKiFLVnK.cjs.map +1 -0
  165. package/dist/skeleton-BSwwYaQU.cjs +2 -0
  166. package/dist/skeleton-BSwwYaQU.cjs.map +1 -0
  167. package/dist/skeleton-BmGbfJw3.js +9 -0
  168. package/dist/skeleton-BmGbfJw3.js.map +1 -0
  169. package/dist/sortable.esm-Blhf_jh1.js +3391 -0
  170. package/dist/sortable.esm-Blhf_jh1.js.map +1 -0
  171. package/dist/sortable.esm-DcQYlXi3.cjs +6 -0
  172. package/dist/sortable.esm-DcQYlXi3.cjs.map +1 -0
  173. package/dist/sparkline-chart-Da-ehDGv.js +21082 -0
  174. package/dist/sparkline-chart-Da-ehDGv.js.map +1 -0
  175. package/dist/sparkline-chart-ca3uTzVK.cjs +68 -0
  176. package/dist/sparkline-chart-ca3uTzVK.cjs.map +1 -0
  177. package/dist/trending-up-D3Nfrhi3.cjs +2 -0
  178. package/dist/trending-up-D3Nfrhi3.cjs.map +1 -0
  179. package/dist/trending-up-DPwlYzQb.js +9 -0
  180. package/dist/trending-up-DPwlYzQb.js.map +1 -0
  181. package/dist/ui.css +1 -0
  182. package/dist/use-formatters-d97RVcmg.cjs +2 -0
  183. package/dist/use-formatters-d97RVcmg.cjs.map +1 -0
  184. package/dist/use-formatters-l1_2c8z0.js +6682 -0
  185. package/dist/use-formatters-l1_2c8z0.js.map +1 -0
  186. package/dist/use-local-storage-BjlrKzE-.js +42 -0
  187. package/dist/use-local-storage-BjlrKzE-.js.map +1 -0
  188. package/dist/use-local-storage-q-1odzIu.cjs +2 -0
  189. package/dist/use-local-storage-q-1odzIu.cjs.map +1 -0
  190. package/dist/use-mobile-C-LMK4T8.js +15 -0
  191. package/dist/use-mobile-C-LMK4T8.js.map +1 -0
  192. package/dist/use-mobile-DY7TJ5lx.cjs +2 -0
  193. package/dist/use-mobile-DY7TJ5lx.cjs.map +1 -0
  194. package/dist/use-toast-DG2qdYhl.js +97 -0
  195. package/dist/use-toast-DG2qdYhl.js.map +1 -0
  196. package/dist/use-toast-DxZJ8uUm.cjs +2 -0
  197. package/dist/use-toast-DxZJ8uUm.cjs.map +1 -0
  198. package/dist/utils/index.cjs.js +2 -0
  199. package/dist/utils/index.cjs.js.map +1 -0
  200. package/dist/utils/index.es.js +5 -0
  201. package/dist/utils/index.es.js.map +1 -0
  202. package/dist/welcome-card-CPolYl1D.cjs +2 -0
  203. package/dist/welcome-card-CPolYl1D.cjs.map +1 -0
  204. package/dist/welcome-card-CxMJZ8bv.js +963 -0
  205. package/dist/welcome-card-CxMJZ8bv.js.map +1 -0
  206. package/package.json +179 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global-search-h1rVbP2q.js","sources":["../node_modules/lucide-react/dist/esm/icons/bell.js","../node_modules/lucide-react/dist/esm/icons/history.js","../node_modules/lucide-react/dist/esm/icons/menu.js","../node_modules/lucide-react/dist/esm/icons/panel-left.js","../src/components/navigation/sidebar.tsx","../src/components/navigation/breadcrumb.tsx","../src/components/navigation/top-nav.tsx","../src/components/navigation/mega-menu.tsx","../src/components/navigation/multi-level-dropdown.tsx","../src/components/navigation/tab-navigation.tsx","../src/components/navigation/quick-create-menu.tsx","../src/components/navigation/command-palette.tsx","../src/components/navigation/global-search.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.441.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Bell = createLucideIcon(\"Bell\", [\n [\"path\", { d: \"M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9\", key: \"1qo2s2\" }],\n [\"path\", { d: \"M10.3 21a1.94 1.94 0 0 0 3.4 0\", key: \"qgo35s\" }]\n]);\n\nexport { Bell as default };\n//# sourceMappingURL=bell.js.map\n","/**\n * @license lucide-react v0.441.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst History = createLucideIcon(\"History\", [\n [\"path\", { d: \"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8\", key: \"1357e3\" }],\n [\"path\", { d: \"M3 3v5h5\", key: \"1xhq8a\" }],\n [\"path\", { d: \"M12 7v5l4 2\", key: \"1fdv2h\" }]\n]);\n\nexport { History as default };\n//# sourceMappingURL=history.js.map\n","/**\n * @license lucide-react v0.441.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Menu = createLucideIcon(\"Menu\", [\n [\"line\", { x1: \"4\", x2: \"20\", y1: \"12\", y2: \"12\", key: \"1e0a9i\" }],\n [\"line\", { x1: \"4\", x2: \"20\", y1: \"6\", y2: \"6\", key: \"1owob3\" }],\n [\"line\", { x1: \"4\", x2: \"20\", y1: \"18\", y2: \"18\", key: \"yk5zj1\" }]\n]);\n\nexport { Menu as default };\n//# sourceMappingURL=menu.js.map\n","/**\n * @license lucide-react v0.441.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst PanelLeft = createLucideIcon(\"PanelLeft\", [\n [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"3\", rx: \"2\", key: \"afitv7\" }],\n [\"path\", { d: \"M9 3v18\", key: \"fh3hqa\" }]\n]);\n\nexport { PanelLeft as default };\n//# sourceMappingURL=panel-left.js.map\n","import * as React from 'react'\nimport { Slot } from '@radix-ui/react-slot'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { PanelLeft } from 'lucide-react'\nimport { cn } from '@/utils/cn'\nimport { Button } from '@/components/ui/button'\nimport { Separator } from '@/components/ui/separator'\nimport { Sheet, SheetContent } from '@/components/ui/sheet'\nimport { Skeleton } from '@/components/ui/skeleton'\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip'\nimport { useIsMobile } from '@/hooks/use-mobile'\n\nconst SIDEBAR_COOKIE_NAME = 'sidebar:state'\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7\nconst SIDEBAR_WIDTH = '16rem'\nconst SIDEBAR_WIDTH_MOBILE = '18rem'\nconst SIDEBAR_WIDTH_ICON = '3rem'\nconst SIDEBAR_KEYBOARD_SHORTCUT = 'b'\n\ntype SidebarContext = {\n state: 'expanded' | 'collapsed'\n open: boolean\n setOpen: (open: boolean) => void\n openMobile: boolean\n setOpenMobile: (open: boolean) => void\n isMobile: boolean\n toggleSidebar: () => void\n}\n\nconst SidebarContext = React.createContext<SidebarContext | null>(null)\n\nfunction useSidebar() {\n const context = React.useContext(SidebarContext)\n if (!context) {\n throw new Error('useSidebar must be used within a SidebarProvider.')\n }\n return context\n}\n\nconst SidebarProvider = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n defaultOpen?: boolean\n open?: boolean\n onOpenChange?: (open: boolean) => void\n }\n>(\n (\n {\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n },\n ref\n ) => {\n const isMobile = useIsMobile()\n const [openMobile, setOpenMobile] = React.useState(false)\n const [_open, _setOpen] = React.useState(defaultOpen)\n const open = openProp ?? _open\n\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === 'function' ? value(open) : value\n if (setOpenProp) {\n setOpenProp(openState)\n } else {\n _setOpen(openState)\n }\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`\n },\n [setOpenProp, open]\n )\n\n const toggleSidebar = React.useCallback(() => {\n return isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open)\n }, [isMobile, setOpen, setOpenMobile])\n\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {\n event.preventDefault()\n toggleSidebar()\n }\n }\n\n window.addEventListener('keydown', handleKeyDown)\n return () => window.removeEventListener('keydown', handleKeyDown)\n }, [toggleSidebar])\n\n const state = open ? 'expanded' : 'collapsed'\n\n const contextValue = React.useMemo<SidebarContext>(\n () => ({\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n }),\n [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]\n )\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH,\n '--sidebar-width-icon': SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n className={cn(\n 'group/sidebar-wrapper flex min-h-svh w-full has-[[data-variant=inset]]:bg-sidebar',\n className\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n )\n }\n)\nSidebarProvider.displayName = 'SidebarProvider'\n\nconst Sidebar = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n side?: 'left' | 'right'\n variant?: 'sidebar' | 'floating' | 'inset'\n collapsible?: 'offcanvas' | 'icon' | 'none'\n }\n>(\n (\n {\n side = 'left',\n variant = 'sidebar',\n collapsible = 'offcanvas',\n className,\n children,\n ...props\n },\n ref\n ) => {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar()\n\n if (collapsible === 'none') {\n return (\n <div\n className={cn(\n 'flex h-full w-[--sidebar-width] flex-col bg-sidebar text-sidebar-foreground',\n className\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n )\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-mobile=\"true\"\n className=\"w-[--sidebar-width] bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n )\n }\n\n return (\n <div\n ref={ref}\n className=\"group peer hidden md:block text-sidebar-foreground\"\n data-state={state}\n data-collapsible={state === 'collapsed' ? collapsible : ''}\n data-variant={variant}\n data-side={side}\n >\n <div\n className={cn(\n 'duration-200 relative h-svh w-[--sidebar-width] bg-transparent transition-[width] ease-linear',\n 'group-data-[collapsible=offcanvas]:w-0',\n 'group-data-[side=right]:rotate-180',\n variant === 'floating' || variant === 'inset'\n ? 'group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]'\n : 'group-data-[collapsible=icon]:w-[--sidebar-width-icon]'\n )}\n />\n <div\n className={cn(\n 'duration-200 fixed inset-y-0 z-10 hidden h-svh w-[--sidebar-width] transition-[left,right,width] ease-linear md:flex',\n side === 'left'\n ? 'left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]'\n : 'right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]',\n variant === 'floating' || variant === 'inset'\n ? 'p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]'\n : 'group-data-[collapsible=icon]:w-[--sidebar-width-icon] group-data-[side=left]:border-r group-data-[side=right]:border-l',\n className\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n className={cn(\n 'flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow'\n )}\n >\n {children}\n </div>\n </div>\n </div>\n )\n }\n)\nSidebar.displayName = 'Sidebar'\n\nconst SidebarTrigger = React.forwardRef<\n React.ElementRef<typeof Button>,\n React.ComponentProps<typeof Button>\n>(({ className, onClick, ...props }, ref) => {\n const { toggleSidebar } = useSidebar()\n\n return (\n <Button\n ref={ref}\n data-sidebar=\"trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn('h-7 w-7', className)}\n onClick={(event) => {\n onClick?.(event)\n toggleSidebar()\n }}\n {...props}\n >\n <PanelLeft />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n )\n})\nSidebarTrigger.displayName = 'SidebarTrigger'\n\nconst SidebarRail = React.forwardRef<HTMLButtonElement, React.ComponentProps<'button'>>(\n ({ className, ...props }, ref) => {\n const { toggleSidebar } = useSidebar()\n\n return (\n <button\n ref={ref}\n data-sidebar=\"rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n 'absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex',\n '[[data-side=left]_&]:cursor-w-resize [[data-side=right]_&]:cursor-e-resize',\n '[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize',\n 'group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar',\n '[[data-side=left][data-collapsible=offcanvas]_&]:-right-2',\n '[[data-side=right][data-collapsible=offcanvas]_&]:-left-2',\n className\n )}\n {...props}\n />\n )\n }\n)\nSidebarRail.displayName = 'SidebarRail'\n\nconst SidebarInset = React.forwardRef<HTMLDivElement, React.ComponentProps<'main'>>(\n ({ className, ...props }, ref) => {\n return (\n <main\n ref={ref}\n className={cn(\n 'relative flex min-h-svh flex-1 flex-col bg-background',\n 'peer-data-[variant=inset]:min-h-[calc(100svh-theme(spacing.4))] md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow',\n className\n )}\n {...props}\n />\n )\n }\n)\nSidebarInset.displayName = 'SidebarInset'\n\nconst SidebarInput = React.forwardRef<\n React.ElementRef<'input'>,\n React.ComponentProps<'input'>\n>(({ className, ...props }, ref) => {\n return (\n <input\n ref={ref}\n data-sidebar=\"input\"\n className={cn(\n 'h-8 w-full bg-background shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring',\n className\n )}\n {...props}\n />\n )\n})\nSidebarInput.displayName = 'SidebarInput'\n\nconst SidebarHeader = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"header\"\n className={cn('flex flex-col gap-2 p-2', className)}\n {...props}\n />\n )\n }\n)\nSidebarHeader.displayName = 'SidebarHeader'\n\nconst SidebarFooter = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"footer\"\n className={cn('flex flex-col gap-2 p-2', className)}\n {...props}\n />\n )\n }\n)\nSidebarFooter.displayName = 'SidebarFooter'\n\nconst SidebarSeparator = React.forwardRef<\n React.ElementRef<typeof Separator>,\n React.ComponentProps<typeof Separator>\n>(({ className, ...props }, ref) => {\n return (\n <Separator\n ref={ref}\n data-sidebar=\"separator\"\n className={cn('mx-2 w-auto bg-sidebar-border', className)}\n {...props}\n />\n )\n})\nSidebarSeparator.displayName = 'SidebarSeparator'\n\nconst SidebarContent = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"content\"\n className={cn(\n 'flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden',\n className\n )}\n {...props}\n />\n )\n }\n)\nSidebarContent.displayName = 'SidebarContent'\n\nconst SidebarGroup = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"group\"\n className={cn('relative flex w-full min-w-0 flex-col p-2', className)}\n {...props}\n />\n )\n }\n)\nSidebarGroup.displayName = 'SidebarGroup'\n\nconst SidebarGroupLabel = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & { asChild?: boolean }\n>(({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'div'\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-label\"\n className={cn(\n 'duration-200 flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-none ring-sidebar-ring transition-[margin,opa] ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n 'group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0',\n className\n )}\n {...props}\n />\n )\n})\nSidebarGroupLabel.displayName = 'SidebarGroupLabel'\n\nconst SidebarGroupAction = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<'button'> & { asChild?: boolean }\n>(({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button'\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-action\"\n className={cn(\n 'absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n 'after:absolute after:-inset-2 after:md:hidden',\n 'group-data-[collapsible=icon]:hidden',\n className\n )}\n {...props}\n />\n )\n})\nSidebarGroupAction.displayName = 'SidebarGroupAction'\n\nconst SidebarGroupContent = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"group-content\"\n className={cn('w-full text-sm', className)}\n {...props}\n />\n )\n)\nSidebarGroupContent.displayName = 'SidebarGroupContent'\n\nconst SidebarMenu = React.forwardRef<HTMLUListElement, React.ComponentProps<'ul'>>(\n ({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu\"\n className={cn('flex w-full min-w-0 flex-col gap-1', className)}\n {...props}\n />\n )\n)\nSidebarMenu.displayName = 'SidebarMenu'\n\nconst SidebarMenuItem = React.forwardRef<HTMLLIElement, React.ComponentProps<'li'>>(\n ({ className, ...props }, ref) => (\n <li\n ref={ref}\n data-sidebar=\"menu-item\"\n className={cn('group/menu-item relative', className)}\n {...props}\n />\n )\n)\nSidebarMenuItem.displayName = 'SidebarMenuItem'\n\nconst sidebarMenuButtonVariants = cva(\n 'peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0',\n {\n variants: {\n variant: {\n default: 'hover:bg-sidebar-accent hover:text-sidebar-accent-foreground',\n outline:\n 'bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]',\n },\n size: {\n default: 'h-8 text-sm',\n sm: 'h-7 text-xs',\n lg: 'h-12 text-sm group-data-[collapsible=icon]:!p-0',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n }\n)\n\nconst SidebarMenuButton = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<'button'> & {\n asChild?: boolean\n isActive?: boolean\n tooltip?: string | React.ComponentProps<typeof TooltipContent>\n } & VariantProps<typeof sidebarMenuButtonVariants>\n>(\n (\n {\n asChild = false,\n isActive = false,\n variant = 'default',\n size = 'default',\n tooltip,\n className,\n ...props\n },\n ref\n ) => {\n const Comp = asChild ? Slot : 'button'\n const { isMobile, state } = useSidebar()\n\n const button = (\n <Comp\n ref={ref}\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n )\n\n if (!tooltip) {\n return button\n }\n\n if (typeof tooltip === 'string') {\n tooltip = {\n children: tooltip,\n }\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent\n side=\"right\"\n align=\"center\"\n hidden={state !== 'collapsed' || isMobile}\n {...tooltip}\n />\n </Tooltip>\n )\n }\n)\nSidebarMenuButton.displayName = 'SidebarMenuButton'\n\nconst SidebarMenuAction = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<'button'> & {\n asChild?: boolean\n showOnHover?: boolean\n }\n>(({ className, asChild = false, showOnHover = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button'\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-action\"\n className={cn(\n 'absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0',\n 'after:absolute after:-inset-2 after:md:hidden',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n showOnHover &&\n 'group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0',\n className\n )}\n {...props}\n />\n )\n})\nSidebarMenuAction.displayName = 'SidebarMenuAction'\n\nconst SidebarMenuBadge = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"menu-badge\"\n className={cn(\n 'absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-sidebar-foreground select-none pointer-events-none',\n 'peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n className\n )}\n {...props}\n />\n )\n)\nSidebarMenuBadge.displayName = 'SidebarMenuBadge'\n\nconst SidebarMenuSkeleton = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n showIcon?: boolean\n }\n>(({ className, showIcon = false, ...props }, ref) => {\n const width = React.useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`\n }, [])\n\n return (\n <div\n ref={ref}\n data-sidebar=\"menu-skeleton\"\n className={cn('rounded-md h-8 flex gap-2 px-2 items-center', className)}\n {...props}\n >\n {showIcon && <Skeleton className=\"size-4 rounded-md\" data-sidebar=\"menu-skeleton-icon\" />}\n <Skeleton\n className=\"h-4 flex-1 max-w-[--skeleton-width]\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n '--skeleton-width': width,\n } as React.CSSProperties\n }\n />\n </div>\n )\n})\nSidebarMenuSkeleton.displayName = 'SidebarMenuSkeleton'\n\nconst SidebarMenuSub = React.forwardRef<HTMLUListElement, React.ComponentProps<'ul'>>(\n ({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu-sub\"\n className={cn(\n 'mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5',\n 'group-data-[collapsible=icon]:hidden',\n className\n )}\n {...props}\n />\n )\n)\nSidebarMenuSub.displayName = 'SidebarMenuSub'\n\nconst SidebarMenuSubItem = React.forwardRef<HTMLLIElement, React.ComponentProps<'li'>>(\n ({ ...props }, ref) => <li ref={ref} {...props} />\n)\nSidebarMenuSubItem.displayName = 'SidebarMenuSubItem'\n\nconst SidebarMenuSubButton = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentProps<'a'> & {\n asChild?: boolean\n size?: 'sm' | 'md'\n isActive?: boolean\n }\n>(({ asChild = false, size = 'md', isActive, className, ...props }, ref) => {\n const Comp = asChild ? Slot : 'a'\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n 'flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-none ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground',\n 'data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground',\n size === 'sm' && 'text-xs',\n size === 'md' && 'text-sm',\n 'group-data-[collapsible=icon]:hidden',\n className\n )}\n {...props}\n />\n )\n})\nSidebarMenuSubButton.displayName = 'SidebarMenuSubButton'\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n}\n","import * as React from 'react'\nimport { Slot } from '@radix-ui/react-slot'\nimport { ChevronRight, MoreHorizontal } from 'lucide-react'\nimport { cn } from '@/utils/cn'\n\nconst Breadcrumb = React.forwardRef<\n HTMLElement,\n React.ComponentPropsWithoutRef<'nav'> & {\n separator?: React.ReactNode\n }\n>(({ ...props }, ref) => <nav ref={ref} aria-label=\"breadcrumb\" {...props} />)\nBreadcrumb.displayName = 'Breadcrumb'\n\nconst BreadcrumbList = React.forwardRef<HTMLOListElement, React.ComponentPropsWithoutRef<'ol'>>(\n ({ className, ...props }, ref) => (\n <ol\n ref={ref}\n className={cn(\n 'flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5',\n className\n )}\n {...props}\n />\n )\n)\nBreadcrumbList.displayName = 'BreadcrumbList'\n\nconst BreadcrumbItem = React.forwardRef<HTMLLIElement, React.ComponentPropsWithoutRef<'li'>>(\n ({ className, ...props }, ref) => (\n <li ref={ref} className={cn('inline-flex items-center gap-1.5', className)} {...props} />\n )\n)\nBreadcrumbItem.displayName = 'BreadcrumbItem'\n\nconst BreadcrumbLink = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentPropsWithoutRef<'a'> & {\n asChild?: boolean\n }\n>(({ asChild, className, ...props }, ref) => {\n const Comp = asChild ? Slot : 'a'\n\n return (\n <Comp\n ref={ref}\n className={cn('transition-colors hover:text-foreground', className)}\n {...props}\n />\n )\n})\nBreadcrumbLink.displayName = 'BreadcrumbLink'\n\nconst BreadcrumbPage = React.forwardRef<HTMLSpanElement, React.ComponentPropsWithoutRef<'span'>>(\n ({ className, ...props }, ref) => (\n <span\n ref={ref}\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn('font-normal text-foreground', className)}\n {...props}\n />\n )\n)\nBreadcrumbPage.displayName = 'BreadcrumbPage'\n\nconst BreadcrumbSeparator = ({ children, className, ...props }: React.ComponentProps<'li'>) => (\n <li role=\"presentation\" aria-hidden=\"true\" className={cn('[&>svg]:size-3.5', className)} {...props}>\n {children ?? <ChevronRight />}\n </li>\n)\nBreadcrumbSeparator.displayName = 'BreadcrumbSeparator'\n\nconst BreadcrumbEllipsis = ({ className, ...props }: React.ComponentProps<'span'>) => (\n <span\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn('flex h-9 w-9 items-center justify-center', className)}\n {...props}\n >\n <MoreHorizontal className=\"h-4 w-4\" />\n <span className=\"sr-only\">More</span>\n </span>\n)\nBreadcrumbEllipsis.displayName = 'BreadcrumbEllipsis'\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n}\n","import * as React from 'react'\nimport { Menu, Bell, Search } from 'lucide-react'\nimport { cn } from '@/utils/cn'\nimport { Button } from '@/components/ui/button'\nimport { Input } from '@/components/ui/input'\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from '@/components/ui/dropdown-menu'\nimport { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'\n\nexport interface TopNavProps extends React.HTMLAttributes<HTMLElement> {\n logo?: React.ReactNode\n onMenuClick?: () => void\n showSearch?: boolean\n searchPlaceholder?: string\n onSearch?: (value: string) => void\n user?: {\n name: string\n email: string\n avatar?: string\n initials?: string\n }\n userMenuItems?: {\n label: string\n onClick: () => void\n icon?: React.ReactNode\n }[]\n notificationCount?: number\n onNotificationClick?: () => void\n rightContent?: React.ReactNode\n}\n\nconst TopNav = React.forwardRef<HTMLElement, TopNavProps>(\n (\n {\n className,\n logo,\n onMenuClick,\n showSearch = true,\n searchPlaceholder = 'Search...',\n onSearch,\n user,\n userMenuItems = [],\n notificationCount,\n onNotificationClick,\n rightContent,\n ...props\n },\n ref\n ) => {\n const [searchValue, setSearchValue] = React.useState('')\n\n const handleSearchSubmit = (e: React.FormEvent) => {\n e.preventDefault()\n onSearch?.(searchValue)\n }\n\n return (\n <header\n ref={ref}\n className={cn(\n 'sticky top-0 z-50 flex h-16 items-center gap-4 border-b bg-background px-4 md:px-6',\n className\n )}\n {...props}\n >\n {onMenuClick && (\n <Button variant=\"ghost\" size=\"icon\" className=\"shrink-0 md:hidden\" onClick={onMenuClick}>\n <Menu className=\"h-5 w-5\" />\n <span className=\"sr-only\">Toggle navigation menu</span>\n </Button>\n )}\n\n {logo && <div className=\"flex items-center gap-2\">{logo}</div>}\n\n {showSearch && (\n <form onSubmit={handleSearchSubmit} className=\"flex-1 md:flex-initial\">\n <div className=\"relative\">\n <Search className=\"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground\" />\n <Input\n type=\"search\"\n placeholder={searchPlaceholder}\n className=\"w-full pl-8 md:w-[200px] lg:w-[300px]\"\n value={searchValue}\n onChange={(e) => setSearchValue(e.target.value)}\n />\n </div>\n </form>\n )}\n\n <div className=\"ml-auto flex items-center gap-2\">\n {rightContent}\n\n {onNotificationClick && (\n <Button variant=\"ghost\" size=\"icon\" className=\"relative\" onClick={onNotificationClick}>\n <Bell className=\"h-5 w-5\" />\n {notificationCount !== undefined && notificationCount > 0 && (\n <span className=\"absolute -right-1 -top-1 flex h-5 w-5 items-center justify-center rounded-full bg-destructive text-xs text-destructive-foreground\">\n {notificationCount > 99 ? '99+' : notificationCount}\n </span>\n )}\n <span className=\"sr-only\">Notifications</span>\n </Button>\n )}\n\n {user && (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant=\"ghost\" className=\"relative h-8 w-8 rounded-full\">\n <Avatar className=\"h-8 w-8\">\n {user.avatar && <AvatarImage src={user.avatar} alt={user.name} />}\n <AvatarFallback>{user.initials || user.name.charAt(0).toUpperCase()}</AvatarFallback>\n </Avatar>\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent className=\"w-56\" align=\"end\" forceMount>\n <DropdownMenuLabel className=\"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 {userMenuItems.length > 0 && (\n <>\n <DropdownMenuSeparator />\n {userMenuItems.map((item, index) => (\n <DropdownMenuItem key={index} onClick={item.onClick}>\n {item.icon && <span className=\"mr-2\">{item.icon}</span>}\n {item.label}\n </DropdownMenuItem>\n ))}\n </>\n )}\n </DropdownMenuContent>\n </DropdownMenu>\n )}\n </div>\n </header>\n )\n }\n)\nTopNav.displayName = 'TopNav'\n\nexport { TopNav }\n","import * as React from 'react'\nimport { ChevronDown } from 'lucide-react'\nimport { cn } from '@/utils/cn'\nimport { Button } from '@/components/ui/button'\n\nexport interface MegaMenuLink {\n label: string\n href: string\n description?: string\n icon?: React.ReactNode\n}\n\nexport interface MegaMenuSection {\n title?: string\n links: MegaMenuLink[]\n}\n\nexport interface MegaMenuColumn {\n title?: string\n sections: MegaMenuSection[]\n featured?: React.ReactNode\n}\n\nexport interface MegaMenuItem {\n label: string\n href?: string\n columns?: MegaMenuColumn[]\n}\n\nexport interface MegaMenuProps extends React.HTMLAttributes<HTMLElement> {\n items: MegaMenuItem[]\n logo?: React.ReactNode\n rightContent?: React.ReactNode\n}\n\nconst MegaMenu = React.forwardRef<HTMLElement, MegaMenuProps>(\n ({ className, items, logo, rightContent, ...props }, ref) => {\n const [activeItem, setActiveItem] = React.useState<string | null>(null)\n const timeoutRef = React.useRef<NodeJS.Timeout | null>(null)\n\n const handleMouseEnter = (label: string) => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n setActiveItem(label)\n }\n\n const handleMouseLeave = () => {\n timeoutRef.current = setTimeout(() => {\n setActiveItem(null)\n }, 150)\n }\n\n return (\n <nav\n ref={ref}\n className={cn('relative z-50 w-full border-b bg-background', className)}\n {...props}\n >\n <div className=\"mx-auto flex h-16 max-w-7xl items-center justify-between px-4\">\n {logo && <div className=\"flex-shrink-0\">{logo}</div>}\n\n <ul className=\"hidden items-center gap-1 md:flex\">\n {items.map((item) => (\n <li\n key={item.label}\n onMouseEnter={() => item.columns && handleMouseEnter(item.label)}\n onMouseLeave={handleMouseLeave}\n >\n {item.href && !item.columns ? (\n <a\n href={item.href}\n className=\"flex items-center gap-1 rounded-md px-3 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground\"\n >\n {item.label}\n </a>\n ) : (\n <Button\n variant=\"ghost\"\n className={cn(\n 'flex items-center gap-1',\n activeItem === item.label && 'bg-accent text-accent-foreground'\n )}\n >\n {item.label}\n {item.columns && (\n <ChevronDown\n className={cn(\n 'h-4 w-4 transition-transform',\n activeItem === item.label && 'rotate-180'\n )}\n />\n )}\n </Button>\n )}\n\n {item.columns && activeItem === item.label && (\n <div\n className=\"absolute left-0 right-0 top-full border-b bg-background shadow-lg\"\n onMouseEnter={() => handleMouseEnter(item.label)}\n onMouseLeave={handleMouseLeave}\n >\n <div className=\"mx-auto max-w-7xl p-6\">\n <div\n className=\"grid gap-8\"\n style={{\n gridTemplateColumns: `repeat(${item.columns.length}, minmax(0, 1fr))`,\n }}\n >\n {item.columns.map((column, colIndex) => (\n <div key={colIndex}>\n {column.title && (\n <h3 className=\"mb-4 text-sm font-semibold text-foreground\">\n {column.title}\n </h3>\n )}\n {column.sections.map((section, secIndex) => (\n <div key={secIndex} className=\"mb-4\">\n {section.title && (\n <h4 className=\"mb-2 text-xs font-medium uppercase tracking-wider text-muted-foreground\">\n {section.title}\n </h4>\n )}\n <ul className=\"space-y-1\">\n {section.links.map((link, linkIndex) => (\n <li key={linkIndex}>\n <a\n href={link.href}\n className=\"group flex items-start gap-3 rounded-md p-2 transition-colors hover:bg-accent\"\n >\n {link.icon && (\n <span className=\"mt-0.5 text-muted-foreground group-hover:text-foreground\">\n {link.icon}\n </span>\n )}\n <div>\n <span className=\"block text-sm font-medium\">\n {link.label}\n </span>\n {link.description && (\n <span className=\"block text-xs text-muted-foreground\">\n {link.description}\n </span>\n )}\n </div>\n </a>\n </li>\n ))}\n </ul>\n </div>\n ))}\n {column.featured && (\n <div className=\"mt-4 rounded-lg bg-muted p-4\">\n {column.featured}\n </div>\n )}\n </div>\n ))}\n </div>\n </div>\n </div>\n )}\n </li>\n ))}\n </ul>\n\n {rightContent && <div className=\"flex items-center gap-2\">{rightContent}</div>}\n </div>\n </nav>\n )\n }\n)\nMegaMenu.displayName = 'MegaMenu'\n\nexport { MegaMenu }\n","import * as React from 'react'\nimport { cn } from '@/utils/cn'\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n} from '@/components/ui/dropdown-menu'\n\nexport interface MultiLevelDropdownItem {\n label: string\n icon?: React.ReactNode\n href?: string\n onClick?: () => void\n disabled?: boolean\n children?: MultiLevelDropdownItem[]\n separator?: boolean\n}\n\nexport interface MultiLevelDropdownProps {\n trigger: React.ReactNode\n items: MultiLevelDropdownItem[]\n align?: 'start' | 'center' | 'end'\n side?: 'top' | 'right' | 'bottom' | 'left'\n className?: string\n}\n\nfunction renderDropdownItems(items: MultiLevelDropdownItem[]) {\n return items.map((item, index) => {\n if (item.separator) {\n return <DropdownMenuSeparator key={`separator-${index}`} />\n }\n\n if (item.children && item.children.length > 0) {\n return (\n <DropdownMenuSub key={item.label}>\n <DropdownMenuSubTrigger disabled={item.disabled} className=\"flex items-center gap-2\">\n {item.icon && <span className=\"h-4 w-4\">{item.icon}</span>}\n {item.label}\n </DropdownMenuSubTrigger>\n <DropdownMenuSubContent>\n {renderDropdownItems(item.children)}\n </DropdownMenuSubContent>\n </DropdownMenuSub>\n )\n }\n\n const handleClick = () => {\n if (item.onClick) {\n item.onClick()\n }\n }\n\n if (item.href) {\n return (\n <DropdownMenuItem key={item.label} disabled={item.disabled} asChild>\n <a href={item.href} className=\"flex items-center gap-2\">\n {item.icon && <span className=\"h-4 w-4\">{item.icon}</span>}\n {item.label}\n </a>\n </DropdownMenuItem>\n )\n }\n\n return (\n <DropdownMenuItem\n key={item.label}\n disabled={item.disabled}\n onClick={handleClick}\n className=\"flex items-center gap-2\"\n >\n {item.icon && <span className=\"h-4 w-4\">{item.icon}</span>}\n {item.label}\n </DropdownMenuItem>\n )\n })\n}\n\nconst MultiLevelDropdown = React.forwardRef<HTMLDivElement, MultiLevelDropdownProps>(\n ({ trigger, items, align = 'start', side = 'bottom', className }, ref) => {\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>{trigger}</DropdownMenuTrigger>\n <DropdownMenuContent ref={ref} align={align} side={side} className={cn('w-56', className)}>\n {renderDropdownItems(items)}\n </DropdownMenuContent>\n </DropdownMenu>\n )\n }\n)\nMultiLevelDropdown.displayName = 'MultiLevelDropdown'\n\nexport { MultiLevelDropdown }\n","import * as React from 'react'\nimport { cn } from '@/utils/cn'\nimport { Badge } from '@/components/ui/badge'\n\nexport interface TabItem {\n id: string\n label: string\n icon?: React.ReactNode\n badge?: string | number\n disabled?: boolean\n}\n\nexport interface TabNavigationProps extends React.HTMLAttributes<HTMLDivElement> {\n tabs: TabItem[]\n activeTab?: string\n onTabChange?: (tabId: string) => void\n variant?: 'default' | 'pills' | 'underline' | 'boxed'\n size?: 'sm' | 'md' | 'lg'\n fullWidth?: boolean\n}\n\nconst TabNavigation = React.forwardRef<HTMLDivElement, TabNavigationProps>(\n (\n {\n className,\n tabs,\n activeTab,\n onTabChange,\n variant = 'default',\n size = 'md',\n fullWidth = false,\n ...props\n },\n ref\n ) => {\n const [internalActiveTab, setInternalActiveTab] = React.useState(tabs[0]?.id)\n const currentTab = activeTab ?? internalActiveTab\n\n const handleTabClick = (tabId: string) => {\n if (onTabChange) {\n onTabChange(tabId)\n } else {\n setInternalActiveTab(tabId)\n }\n }\n\n const sizeClasses = {\n sm: 'text-xs py-1 px-2',\n md: 'text-sm py-2 px-3',\n lg: 'text-base py-3 px-4',\n }\n\n const getVariantClasses = (isActive: boolean) => {\n const baseClasses = 'flex items-center gap-2 font-medium transition-colors'\n\n switch (variant) {\n case 'pills':\n return cn(\n baseClasses,\n 'rounded-full',\n isActive\n ? 'bg-primary text-primary-foreground'\n : 'text-muted-foreground hover:bg-muted hover:text-foreground'\n )\n case 'underline':\n return cn(\n baseClasses,\n 'border-b-2 rounded-none',\n isActive\n ? 'border-primary text-primary'\n : 'border-transparent text-muted-foreground hover:border-border hover:text-foreground'\n )\n case 'boxed':\n return cn(\n baseClasses,\n 'rounded-lg border',\n isActive\n ? 'border-primary bg-primary/10 text-primary'\n : 'border-transparent text-muted-foreground hover:bg-muted hover:text-foreground'\n )\n default:\n return cn(\n baseClasses,\n 'rounded-md',\n isActive\n ? 'bg-muted text-foreground'\n : 'text-muted-foreground hover:bg-muted/50 hover:text-foreground'\n )\n }\n }\n\n const containerClasses = cn(\n 'flex items-center gap-1',\n variant === 'underline' && 'border-b',\n fullWidth && 'w-full',\n className\n )\n\n return (\n <div ref={ref} className={containerClasses} role=\"tablist\" {...props}>\n {tabs.map((tab) => {\n const isActive = currentTab === tab.id\n\n return (\n <button\n key={tab.id}\n role=\"tab\"\n aria-selected={isActive}\n aria-disabled={tab.disabled}\n disabled={tab.disabled}\n onClick={() => handleTabClick(tab.id)}\n className={cn(\n getVariantClasses(isActive),\n sizeClasses[size],\n fullWidth && 'flex-1 justify-center',\n tab.disabled && 'cursor-not-allowed opacity-50'\n )}\n >\n {tab.icon && <span className=\"h-4 w-4\">{tab.icon}</span>}\n <span>{tab.label}</span>\n {tab.badge !== undefined && (\n <Badge\n variant={isActive ? 'default' : 'secondary'}\n className=\"ml-1 h-5 min-w-5 rounded-full px-1.5 text-xs\"\n >\n {tab.badge}\n </Badge>\n )}\n </button>\n )\n })}\n </div>\n )\n }\n)\nTabNavigation.displayName = 'TabNavigation'\n\nexport { TabNavigation }\n","import * as React from 'react'\nimport { Plus, ChevronDown } from 'lucide-react'\nimport { cn } from '@/utils/cn'\nimport { Button } from '@/components/ui/button'\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n DropdownMenuGroup,\n} from '@/components/ui/dropdown-menu'\n\nexport interface QuickCreateItem {\n id: string\n label: string\n icon?: React.ReactNode\n description?: string\n onClick: () => void\n shortcut?: string\n}\n\nexport interface QuickCreateGroup {\n label?: string\n items: QuickCreateItem[]\n}\n\nexport interface QuickCreateMenuProps {\n groups: QuickCreateGroup[]\n label?: string\n variant?: 'default' | 'outline' | 'ghost'\n size?: 'default' | 'sm' | 'lg' | 'icon'\n className?: string\n align?: 'start' | 'center' | 'end'\n}\n\nconst QuickCreateMenu = React.forwardRef<HTMLButtonElement, QuickCreateMenuProps>(\n (\n {\n groups,\n label = 'Create',\n variant = 'default',\n size = 'default',\n className,\n align = 'end',\n },\n ref\n ) => {\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button ref={ref} variant={variant} size={size} className={cn('gap-1', className)}>\n <Plus className=\"h-4 w-4\" />\n {size !== 'icon' && (\n <>\n <span>{label}</span>\n <ChevronDown className=\"h-3 w-3 opacity-50\" />\n </>\n )}\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align={align} className=\"w-64\">\n {groups.map((group, groupIndex) => (\n <React.Fragment key={groupIndex}>\n {groupIndex > 0 && <DropdownMenuSeparator />}\n {group.label && <DropdownMenuLabel>{group.label}</DropdownMenuLabel>}\n <DropdownMenuGroup>\n {group.items.map((item) => (\n <DropdownMenuItem\n key={item.id}\n onClick={item.onClick}\n className=\"flex items-start gap-3 py-2\"\n >\n {item.icon && (\n <span className=\"mt-0.5 flex h-5 w-5 items-center justify-center text-muted-foreground\">\n {item.icon}\n </span>\n )}\n <div className=\"flex flex-1 flex-col gap-0.5\">\n <span className=\"font-medium\">{item.label}</span>\n {item.description && (\n <span className=\"text-xs text-muted-foreground\">{item.description}</span>\n )}\n </div>\n {item.shortcut && (\n <kbd className=\"pointer-events-none inline-flex h-5 select-none items-center gap-1 rounded border bg-muted px-1.5 font-mono text-[10px] font-medium text-muted-foreground opacity-100\">\n {item.shortcut}\n </kbd>\n )}\n </DropdownMenuItem>\n ))}\n </DropdownMenuGroup>\n </React.Fragment>\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n )\n }\n)\nQuickCreateMenu.displayName = 'QuickCreateMenu'\n\nexport { QuickCreateMenu }\n","import * as React from 'react'\nimport { Search, Loader2 } from 'lucide-react'\nimport {\n Command,\n CommandDialog,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandSeparator,\n CommandShortcut,\n} from '@/components/ui/command'\n\nexport interface CommandAction {\n id: string\n label: string\n icon?: React.ReactNode\n shortcut?: string\n keywords?: string[]\n onSelect: () => void\n disabled?: boolean\n}\n\nexport interface CommandPaletteGroup {\n heading: string\n actions: CommandAction[]\n}\n\nexport interface CommandPaletteProps {\n open: boolean\n onOpenChange: (open: boolean) => void\n groups: CommandPaletteGroup[]\n placeholder?: string\n emptyMessage?: string\n loading?: boolean\n onSearch?: (query: string) => void\n}\n\nconst CommandPalette = React.forwardRef<HTMLDivElement, CommandPaletteProps>(\n (\n {\n open,\n onOpenChange,\n groups,\n placeholder = 'Type a command or search...',\n emptyMessage = 'No results found.',\n loading = false,\n onSearch,\n },\n ref\n ) => {\n const [search, setSearch] = React.useState('')\n\n React.useEffect(() => {\n const down = (e: KeyboardEvent) => {\n if (e.key === 'k' && (e.metaKey || e.ctrlKey)) {\n e.preventDefault()\n onOpenChange(!open)\n }\n }\n\n document.addEventListener('keydown', down)\n return () => document.removeEventListener('keydown', down)\n }, [open, onOpenChange])\n\n const handleValueChange = (value: string) => {\n setSearch(value)\n onSearch?.(value)\n }\n\n return (\n <CommandDialog open={open} onOpenChange={onOpenChange}>\n <Command ref={ref} className=\"rounded-lg border shadow-md\">\n <div className=\"flex items-center border-b px-3\">\n {loading ? (\n <Loader2 className=\"mr-2 h-4 w-4 shrink-0 animate-spin opacity-50\" />\n ) : (\n <Search className=\"mr-2 h-4 w-4 shrink-0 opacity-50\" />\n )}\n <CommandInput\n placeholder={placeholder}\n value={search}\n onValueChange={handleValueChange}\n className=\"flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50\"\n />\n </div>\n <CommandList>\n <CommandEmpty>{emptyMessage}</CommandEmpty>\n {groups.map((group, groupIndex) => (\n <React.Fragment key={group.heading}>\n {groupIndex > 0 && <CommandSeparator />}\n <CommandGroup heading={group.heading}>\n {group.actions.map((action) => (\n <CommandItem\n key={action.id}\n value={action.id}\n keywords={action.keywords}\n onSelect={() => {\n action.onSelect()\n onOpenChange(false)\n }}\n disabled={action.disabled}\n className=\"flex items-center gap-2\"\n >\n {action.icon && (\n <span className=\"flex h-5 w-5 items-center justify-center\">\n {action.icon}\n </span>\n )}\n <span>{action.label}</span>\n {action.shortcut && (\n <CommandShortcut>{action.shortcut}</CommandShortcut>\n )}\n </CommandItem>\n ))}\n </CommandGroup>\n </React.Fragment>\n ))}\n </CommandList>\n </Command>\n </CommandDialog>\n )\n }\n)\nCommandPalette.displayName = 'CommandPalette'\n\nexport { CommandPalette }\n","import * as React from 'react'\nimport { Search, Loader2, History, TrendingUp } from 'lucide-react'\nimport { cn } from '@/utils/cn'\nimport { Input } from '@/components/ui/input'\nimport { Button } from '@/components/ui/button'\nimport { ScrollArea } from '@/components/ui/scroll-area'\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from '@/components/ui/popover'\n\nexport interface SearchResult {\n id: string\n title: string\n description?: string\n type?: string\n icon?: React.ReactNode\n href?: string\n onClick?: () => void\n}\n\nexport interface GlobalSearchProps extends React.HTMLAttributes<HTMLDivElement> {\n onSearch: (query: string) => Promise<SearchResult[]> | SearchResult[]\n recentSearches?: string[]\n onRecentSearchClick?: (query: string) => void\n onClearRecent?: () => void\n trendingSearches?: string[]\n placeholder?: string\n shortcut?: string\n debounceMs?: number\n}\n\nconst GlobalSearch = React.forwardRef<HTMLDivElement, GlobalSearchProps>(\n (\n {\n className,\n onSearch,\n recentSearches = [],\n onRecentSearchClick,\n onClearRecent,\n trendingSearches = [],\n placeholder = 'Search...',\n shortcut = '⌘K',\n debounceMs = 300,\n ...props\n },\n ref\n ) => {\n const [open, setOpen] = React.useState(false)\n const [query, setQuery] = React.useState('')\n const [results, setResults] = React.useState<SearchResult[]>([])\n const [loading, setLoading] = React.useState(false)\n const inputRef = React.useRef<HTMLInputElement>(null)\n const debounceRef = React.useRef<NodeJS.Timeout | null>(null)\n\n React.useEffect(() => {\n const down = (e: KeyboardEvent) => {\n if (e.key === 'k' && (e.metaKey || e.ctrlKey)) {\n e.preventDefault()\n setOpen(true)\n setTimeout(() => inputRef.current?.focus(), 0)\n }\n }\n\n document.addEventListener('keydown', down)\n return () => document.removeEventListener('keydown', down)\n }, [])\n\n const handleSearch = React.useCallback(\n async (searchQuery: string) => {\n setQuery(searchQuery)\n\n if (debounceRef.current) {\n clearTimeout(debounceRef.current)\n }\n\n if (!searchQuery.trim()) {\n setResults([])\n return\n }\n\n debounceRef.current = setTimeout(async () => {\n setLoading(true)\n try {\n const searchResults = await onSearch(searchQuery)\n setResults(searchResults)\n } catch {\n setResults([])\n } finally {\n setLoading(false)\n }\n }, debounceMs)\n },\n [onSearch, debounceMs]\n )\n\n const handleResultClick = (result: SearchResult) => {\n if (result.onClick) {\n result.onClick()\n }\n setOpen(false)\n setQuery('')\n setResults([])\n }\n\n const handleRecentClick = (recentQuery: string) => {\n onRecentSearchClick?.(recentQuery)\n setQuery(recentQuery)\n handleSearch(recentQuery)\n }\n\n const showRecent = !query && recentSearches.length > 0\n const showTrending = !query && trendingSearches.length > 0\n\n return (\n <div ref={ref} className={cn('relative', className)} {...props}>\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <div className=\"relative cursor-pointer\" onClick={() => setOpen(true)}>\n <Search className=\"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground\" />\n <Input\n ref={inputRef}\n type=\"text\"\n placeholder={placeholder}\n value={query}\n onChange={(e) => handleSearch(e.target.value)}\n className=\"w-full pl-10 pr-16\"\n />\n <kbd className=\"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 rounded border bg-muted px-1.5 py-0.5 text-xs text-muted-foreground\">\n {shortcut}\n </kbd>\n </div>\n </PopoverTrigger>\n <PopoverContent\n className=\"w-[var(--radix-popover-trigger-width)] p-0\"\n align=\"start\"\n onOpenAutoFocus={(e) => e.preventDefault()}\n >\n <ScrollArea className=\"max-h-80\">\n {loading && (\n <div className=\"flex items-center justify-center p-4\">\n <Loader2 className=\"h-5 w-5 animate-spin text-muted-foreground\" />\n </div>\n )}\n\n {!loading && results.length > 0 && (\n <div className=\"p-2\">\n <p className=\"px-2 py-1.5 text-xs font-medium text-muted-foreground\">\n Results\n </p>\n {results.map((result) => (\n <button\n key={result.id}\n onClick={() => handleResultClick(result)}\n className=\"flex w-full items-center gap-3 rounded-md p-2 text-left transition-colors hover:bg-accent\"\n >\n {result.icon && (\n <span className=\"flex h-8 w-8 items-center justify-center rounded-md bg-muted\">\n {result.icon}\n </span>\n )}\n <div className=\"flex-1 overflow-hidden\">\n <p className=\"truncate font-medium\">{result.title}</p>\n {result.description && (\n <p className=\"truncate text-xs text-muted-foreground\">\n {result.description}\n </p>\n )}\n </div>\n {result.type && (\n <span className=\"text-xs text-muted-foreground\">{result.type}</span>\n )}\n </button>\n ))}\n </div>\n )}\n\n {!loading && query && results.length === 0 && (\n <div className=\"p-4 text-center text-sm text-muted-foreground\">\n No results found for &quot;{query}&quot;\n </div>\n )}\n\n {showRecent && (\n <div className=\"p-2\">\n <div className=\"flex items-center justify-between px-2 py-1.5\">\n <p className=\"text-xs font-medium text-muted-foreground\">Recent</p>\n {onClearRecent && (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-auto p-0 text-xs\"\n onClick={onClearRecent}\n >\n Clear\n </Button>\n )}\n </div>\n {recentSearches.map((recent, index) => (\n <button\n key={index}\n onClick={() => handleRecentClick(recent)}\n className=\"flex w-full items-center gap-2 rounded-md p-2 text-left text-sm transition-colors hover:bg-accent\"\n >\n <History className=\"h-4 w-4 text-muted-foreground\" />\n {recent}\n </button>\n ))}\n </div>\n )}\n\n {showTrending && (\n <div className=\"border-t p-2\">\n <p className=\"px-2 py-1.5 text-xs font-medium text-muted-foreground\">\n Trending\n </p>\n {trendingSearches.map((trending, index) => (\n <button\n key={index}\n onClick={() => handleRecentClick(trending)}\n className=\"flex w-full items-center gap-2 rounded-md p-2 text-left text-sm transition-colors hover:bg-accent\"\n >\n <TrendingUp className=\"h-4 w-4 text-muted-foreground\" />\n {trending}\n </button>\n ))}\n </div>\n )}\n </ScrollArea>\n </PopoverContent>\n </Popover>\n </div>\n )\n }\n)\nGlobalSearch.displayName = 'GlobalSearch'\n\nexport { GlobalSearch }\n"],"names":["Bell","createLucideIcon","History","Menu","PanelLeft","SIDEBAR_COOKIE_NAME","SIDEBAR_COOKIE_MAX_AGE","SIDEBAR_WIDTH","SIDEBAR_WIDTH_MOBILE","SIDEBAR_WIDTH_ICON","SIDEBAR_KEYBOARD_SHORTCUT","SidebarContext","React","useSidebar","context","SidebarProvider","defaultOpen","openProp","setOpenProp","className","style","children","props","ref","isMobile","useIsMobile","openMobile","setOpenMobile","_open","_setOpen","open","setOpen","value","openState","toggleSidebar","handleKeyDown","event","state","contextValue","jsx","TooltipProvider","cn","Sidebar","side","variant","collapsible","Sheet","SheetContent","jsxs","SidebarTrigger","onClick","Button","SidebarRail","SidebarInset","SidebarInput","SidebarHeader","SidebarFooter","SidebarSeparator","Separator","SidebarContent","SidebarGroup","SidebarGroupLabel","asChild","Slot","SidebarGroupAction","SidebarGroupContent","SidebarMenu","SidebarMenuItem","sidebarMenuButtonVariants","cva","SidebarMenuButton","isActive","size","tooltip","Comp","button","Tooltip","TooltipTrigger","TooltipContent","SidebarMenuAction","showOnHover","SidebarMenuBadge","SidebarMenuSkeleton","showIcon","width","Skeleton","SidebarMenuSub","SidebarMenuSubItem","SidebarMenuSubButton","Breadcrumb","BreadcrumbList","BreadcrumbItem","BreadcrumbLink","BreadcrumbPage","BreadcrumbSeparator","ChevronRight","BreadcrumbEllipsis","MoreHorizontal","TopNav","logo","onMenuClick","showSearch","searchPlaceholder","onSearch","user","userMenuItems","notificationCount","onNotificationClick","rightContent","searchValue","setSearchValue","handleSearchSubmit","e","Search","Input","DropdownMenu","DropdownMenuTrigger","Avatar","AvatarImage","AvatarFallback","DropdownMenuContent","DropdownMenuLabel","Fragment","DropdownMenuSeparator","item","index","DropdownMenuItem","MegaMenu","items","activeItem","setActiveItem","timeoutRef","handleMouseEnter","label","handleMouseLeave","ChevronDown","column","colIndex","section","secIndex","link","linkIndex","renderDropdownItems","DropdownMenuSub","DropdownMenuSubTrigger","DropdownMenuSubContent","handleClick","MultiLevelDropdown","trigger","align","TabNavigation","tabs","activeTab","onTabChange","fullWidth","internalActiveTab","setInternalActiveTab","currentTab","handleTabClick","tabId","sizeClasses","getVariantClasses","baseClasses","containerClasses","tab","Badge","QuickCreateMenu","groups","Plus","group","groupIndex","DropdownMenuGroup","CommandPalette","onOpenChange","placeholder","emptyMessage","loading","search","setSearch","down","CommandDialog","Command","Loader2","CommandInput","CommandList","CommandEmpty","CommandSeparator","CommandGroup","action","CommandItem","CommandShortcut","GlobalSearch","recentSearches","onRecentSearchClick","onClearRecent","trendingSearches","shortcut","debounceMs","query","setQuery","results","setResults","setLoading","inputRef","debounceRef","handleSearch","searchQuery","searchResults","handleResultClick","result","handleRecentClick","recentQuery","showRecent","showTrending","Popover","PopoverTrigger","PopoverContent","ScrollArea","recent","trending","TrendingUp"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("../use-mobile-DY7TJ5lx.cjs"),e=require("../use-local-storage-q-1odzIu.cjs"),s=require("../use-toast-DxZJ8uUm.cjs"),t=require("../use-formatters-d97RVcmg.cjs");exports.useIsMobile=o.useIsMobile;exports.useDebounce=e.useDebounce;exports.useLocalStorage=e.useLocalStorage;exports.toast=s.toast;exports.useToast=s.useToast;exports.useFormatters=t.useFormatters;
2
+ //# sourceMappingURL=index.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ import { u as e } from "../use-mobile-C-LMK4T8.js";
2
+ import { u as r, a as t } from "../use-local-storage-BjlrKzE-.js";
3
+ import { t as m, u as f } from "../use-toast-DG2qdYhl.js";
4
+ import { u as x } from "../use-formatters-l1_2c8z0.js";
5
+ export {
6
+ m as toast,
7
+ r as useDebounce,
8
+ x as useFormatters,
9
+ e as useIsMobile,
10
+ t as useLocalStorage,
11
+ f as useToast
12
+ };
13
+ //# sourceMappingURL=index.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,33 @@
1
+ import * as i from "react";
2
+ import { P as o } from "./scroll-area-DQeqDp3Y.js";
3
+ import { jsx as t } from "react/jsx-runtime";
4
+ var d = Object.freeze({
5
+ // See: https://github.com/twbs/bootstrap/blob/main/scss/mixins/_visually-hidden.scss
6
+ position: "absolute",
7
+ border: 0,
8
+ width: 1,
9
+ height: 1,
10
+ padding: 0,
11
+ margin: -1,
12
+ overflow: "hidden",
13
+ clip: "rect(0, 0, 0, 0)",
14
+ whiteSpace: "nowrap",
15
+ wordWrap: "normal"
16
+ }), s = "VisuallyHidden", a = i.forwardRef(
17
+ (r, e) => /* @__PURE__ */ t(
18
+ o.span,
19
+ {
20
+ ...r,
21
+ ref: e,
22
+ style: { ...d, ...r.style }
23
+ }
24
+ )
25
+ );
26
+ a.displayName = s;
27
+ var n = a;
28
+ export {
29
+ n as R,
30
+ d as V,
31
+ a
32
+ };
33
+ //# sourceMappingURL=index-Co9o9StL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-Co9o9StL.js","sources":["../node_modules/@radix-ui/react-visually-hidden/dist/index.mjs"],"sourcesContent":["// src/visually-hidden.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar VISUALLY_HIDDEN_STYLES = Object.freeze({\n // See: https://github.com/twbs/bootstrap/blob/main/scss/mixins/_visually-hidden.scss\n position: \"absolute\",\n border: 0,\n width: 1,\n height: 1,\n padding: 0,\n margin: -1,\n overflow: \"hidden\",\n clip: \"rect(0, 0, 0, 0)\",\n whiteSpace: \"nowrap\",\n wordWrap: \"normal\"\n});\nvar NAME = \"VisuallyHidden\";\nvar VisuallyHidden = React.forwardRef(\n (props, forwardedRef) => {\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n ...props,\n ref: forwardedRef,\n style: { ...VISUALLY_HIDDEN_STYLES, ...props.style }\n }\n );\n }\n);\nVisuallyHidden.displayName = NAME;\nvar Root = VisuallyHidden;\nexport {\n Root,\n VISUALLY_HIDDEN_STYLES,\n VisuallyHidden\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":["VISUALLY_HIDDEN_STYLES","NAME","VisuallyHidden","React","props","forwardedRef","jsx","Primitive","Root"],"mappings":";;;AAIG,IAACA,IAAyB,OAAO,OAAO;AAAA;AAAA,EAEzC,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,UAAU;AACZ,CAAC,GACGC,IAAO,kBACPC,IAAiBC,EAAM;AAAA,EACzB,CAACC,GAAOC,MACiB,gBAAAC;AAAA,IACrBC,EAAU;AAAA,IACV;AAAA,MACE,GAAGH;AAAA,MACH,KAAKC;AAAA,MACL,OAAO,EAAE,GAAGL,GAAwB,GAAGI,EAAM,MAAK;AAAA,IAC1D;AAAA,EACA;AAEA;AACAF,EAAe,cAAcD;AAC1B,IAACO,IAAON;","x_google_ignoreList":[0]}