@oneplatformdev/ui 0.1.99-beta.19 → 0.1.99-beta.197

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 (265) hide show
  1. package/.storybook/Wrappers.js.map +1 -1
  2. package/Accordion/Accordion.d.ts +1 -1
  3. package/Accordion/Accordion.d.ts.map +1 -1
  4. package/Accordion/Accordion.js +48 -26
  5. package/Accordion/Accordion.js.map +1 -1
  6. package/Alert/Alert.js.map +1 -1
  7. package/Alert/alertVariants.js.map +1 -1
  8. package/AlertDialog/AlertDialog.js.map +1 -1
  9. package/AlertDialog/AlertDialog.stories.js +2 -3
  10. package/AlertDialog/AlertDialog.stories.js.map +1 -1
  11. package/AlertDialog/AlertDialogRoot.d.ts.map +1 -1
  12. package/AlertDialog/AlertDialogRoot.js +23 -23
  13. package/AlertDialog/AlertDialogRoot.js.map +1 -1
  14. package/AreaChart/AreaChart.js.map +1 -1
  15. package/Aside/Aside.js.map +1 -1
  16. package/Aside/AsideSidebar.js.map +1 -1
  17. package/AspectRatio/AspectRatio.js.map +1 -1
  18. package/Avatar/Avatar.js.map +1 -1
  19. package/Badge/Badge.js.map +1 -1
  20. package/Badge/badgeVariants.js.map +1 -1
  21. package/Breadcrumb/Breadcrumb.js.map +1 -1
  22. package/Button/Button.d.ts.map +1 -1
  23. package/Button/Button.js +40 -41
  24. package/Button/Button.js.map +1 -1
  25. package/Button/Button.stories.js.map +1 -1
  26. package/Button/Button.utils.d.ts +3 -0
  27. package/Button/Button.utils.d.ts.map +1 -0
  28. package/Button/Button.utils.js +14 -0
  29. package/Button/Button.utils.js.map +1 -0
  30. package/Button/ButtonCounterBadge.js.map +1 -1
  31. package/Button/buttonVariants.d.ts.map +1 -1
  32. package/Button/buttonVariants.js +2 -1
  33. package/Button/buttonVariants.js.map +1 -1
  34. package/Button/index.d.ts +1 -0
  35. package/Button/index.d.ts.map +1 -1
  36. package/Button/index.js +8 -6
  37. package/Button/index.js.map +1 -1
  38. package/ButtonIcon/ButtonIcon.d.ts.map +1 -1
  39. package/ButtonIcon/ButtonIcon.js +49 -50
  40. package/ButtonIcon/ButtonIcon.js.map +1 -1
  41. package/ButtonIcon/ButtonIcon.stories.js +35 -33
  42. package/ButtonIcon/ButtonIcon.stories.js.map +1 -1
  43. package/ButtonIcon/buttonIconVariants.d.ts.map +1 -1
  44. package/ButtonIcon/buttonIconVariants.js +3 -2
  45. package/ButtonIcon/buttonIconVariants.js.map +1 -1
  46. package/CHANGELOG.md +2649 -1786
  47. package/Calendar/Calendar.js +0 -1
  48. package/Calendar/Calendar.js.map +1 -1
  49. package/Card/Card.js.map +1 -1
  50. package/Carousel/Carousel.js +6 -7
  51. package/Carousel/Carousel.js.map +1 -1
  52. package/Chart/Chart.js.map +1 -1
  53. package/Checkbox/Checkbox.d.ts.map +1 -1
  54. package/Checkbox/Checkbox.js +34 -33
  55. package/Checkbox/Checkbox.js.map +1 -1
  56. package/Checkbox/Checkbox.stories.js +108 -0
  57. package/Checkbox/Checkbox.stories.js.map +1 -0
  58. package/Collapsible/Collapsible.js.map +1 -1
  59. package/Combobox/Combobox.d.ts +1 -1
  60. package/Combobox/Combobox.d.ts.map +1 -1
  61. package/Combobox/Combobox.js +204 -191
  62. package/Combobox/Combobox.js.map +1 -1
  63. package/Combobox/Combobox.stories.js +212 -0
  64. package/Combobox/Combobox.stories.js.map +1 -0
  65. package/Combobox/Combobox.types.d.ts +34 -19
  66. package/Combobox/Combobox.types.d.ts.map +1 -1
  67. package/Combobox/ComboboxOptionItem.d.ts +4 -3
  68. package/Combobox/ComboboxOptionItem.d.ts.map +1 -1
  69. package/Combobox/ComboboxOptionItem.js +49 -22
  70. package/Combobox/ComboboxOptionItem.js.map +1 -1
  71. package/Combobox/ComboboxOptions.d.ts +2 -2
  72. package/Combobox/ComboboxOptions.d.ts.map +1 -1
  73. package/Combobox/ComboboxOptions.js +48 -49
  74. package/Combobox/ComboboxOptions.js.map +1 -1
  75. package/Command/Command.d.ts +6 -1
  76. package/Command/Command.d.ts.map +1 -1
  77. package/Command/Command.js +61 -47
  78. package/Command/Command.js.map +1 -1
  79. package/DataTable/DataTable.js +12 -13
  80. package/DataTable/DataTable.js.map +1 -1
  81. package/DataTable/DataTableColumnFilter.js +6 -7
  82. package/DataTable/DataTableColumnFilter.js.map +1 -1
  83. package/DataTable/useDataTable.js.map +1 -1
  84. package/DatePicker/DatePicker.js +12 -13
  85. package/DatePicker/DatePicker.js.map +1 -1
  86. package/Dialog/Dialog.d.ts +4 -1
  87. package/Dialog/Dialog.d.ts.map +1 -1
  88. package/Dialog/Dialog.js +67 -35
  89. package/Dialog/Dialog.js.map +1 -1
  90. package/Dialog/Dialog.stories.js +101 -0
  91. package/Dialog/Dialog.stories.js.map +1 -0
  92. package/Dialog/Dialog.types.d.ts +4 -0
  93. package/Dialog/Dialog.types.d.ts.map +1 -0
  94. package/Dialog/Dialog.types.js +2 -0
  95. package/Dialog/Dialog.types.js.map +1 -0
  96. package/Dialog/DialogOverlayScope.js.map +1 -1
  97. package/Dialog/index.d.ts +1 -0
  98. package/Dialog/index.d.ts.map +1 -1
  99. package/Drawer/Drawer.js.map +1 -1
  100. package/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  101. package/DropdownMenu/DropdownMenu.js +33 -20
  102. package/DropdownMenu/DropdownMenu.js.map +1 -1
  103. package/Dropzone/Dropzone.js.map +1 -1
  104. package/Dropzone/Dropzone.types.js.map +1 -1
  105. package/Dropzone/DropzoneFilePreview.js.map +1 -1
  106. package/Dropzone/DropzoneSinglePickPreview.js.map +1 -1
  107. package/Dropzone/DropzoneUtils.js.map +1 -1
  108. package/Form/Form.d.ts.map +1 -1
  109. package/Form/Form.js +14 -15
  110. package/Form/Form.js.map +1 -1
  111. package/Form/FormRenderControl.d.ts +1 -1
  112. package/Form/FormRenderControl.d.ts.map +1 -1
  113. package/Form/FormRenderControl.js +53 -14
  114. package/Form/FormRenderControl.js.map +1 -1
  115. package/Form/FormRenderControl.types.d.ts +4 -1
  116. package/Form/FormRenderControl.types.d.ts.map +1 -1
  117. package/Form/Form_old.js +4 -5
  118. package/Form/Form_old.js.map +1 -1
  119. package/FormCheckbox/FormCheckbox.js +4 -4
  120. package/FormCheckbox/FormCheckbox.js.map +1 -1
  121. package/FormCombobox/FormCombobox.d.ts.map +1 -1
  122. package/FormCombobox/FormCombobox.js +15 -13
  123. package/FormCombobox/FormCombobox.js.map +1 -1
  124. package/FormDatePicker/FormDatePicker.d.ts.map +1 -1
  125. package/FormDatePicker/FormDatePicker.js +18 -16
  126. package/FormDatePicker/FormDatePicker.js.map +1 -1
  127. package/FormDropzone/FormDropzone.d.ts.map +1 -1
  128. package/FormDropzone/FormDropzone.js +13 -11
  129. package/FormDropzone/FormDropzone.js.map +1 -1
  130. package/FormInput/FormInput.d.ts.map +1 -1
  131. package/FormInput/FormInput.js +47 -27
  132. package/FormInput/FormInput.js.map +1 -1
  133. package/FormInput/FormInput.stories.js +61 -0
  134. package/FormInput/FormInput.stories.js.map +1 -0
  135. package/FormInput/FormInput.types.d.ts +1 -0
  136. package/FormInput/FormInput.types.d.ts.map +1 -1
  137. package/FormRadio/FormRadio.js.map +1 -1
  138. package/FormSelect/FormSelect.d.ts.map +1 -1
  139. package/FormSelect/FormSelect.js +19 -18
  140. package/FormSelect/FormSelect.js.map +1 -1
  141. package/FormTextarea/FormTextarea.d.ts.map +1 -1
  142. package/FormTextarea/FormTextarea.js +13 -11
  143. package/FormTextarea/FormTextarea.js.map +1 -1
  144. package/Header/Header.js.map +1 -1
  145. package/HoverCard/HoverCard.js.map +1 -1
  146. package/InfoBlock/InfoBlock.d.ts +7 -0
  147. package/InfoBlock/InfoBlock.d.ts.map +1 -0
  148. package/InfoBlock/InfoBlock.js +28 -0
  149. package/InfoBlock/InfoBlock.js.map +1 -0
  150. package/InfoBlock/InfoBlock.stories.js +50 -0
  151. package/InfoBlock/InfoBlock.stories.js.map +1 -0
  152. package/InfoBlock/InfoBlock.types.d.ts +9 -0
  153. package/InfoBlock/InfoBlock.types.d.ts.map +1 -0
  154. package/InfoBlock/InfoBlock.types.js +2 -0
  155. package/InfoBlock/InfoBlock.types.js.map +1 -0
  156. package/InfoBlock/index.d.ts +3 -0
  157. package/InfoBlock/index.d.ts.map +1 -0
  158. package/InfoBlock/index.js +5 -0
  159. package/InfoBlock/index.js.map +1 -0
  160. package/InfoBlock/infoBlockVariants.d.ts +6 -0
  161. package/InfoBlock/infoBlockVariants.d.ts.map +1 -0
  162. package/InfoBlock/infoBlockVariants.js +27 -0
  163. package/InfoBlock/infoBlockVariants.js.map +1 -0
  164. package/Input/Input.d.ts.map +1 -1
  165. package/Input/Input.js +65 -51
  166. package/Input/Input.js.map +1 -1
  167. package/Input/Input.types.d.ts +1 -0
  168. package/Input/Input.types.d.ts.map +1 -1
  169. package/Input/inputVariants.d.ts.map +1 -1
  170. package/Input/inputVariants.js +5 -4
  171. package/Input/inputVariants.js.map +1 -1
  172. package/InputOTP/InputOTP.d.ts.map +1 -1
  173. package/InputOTP/InputOTP.js.map +1 -1
  174. package/LICENSE +21 -21
  175. package/Label/Label.js.map +1 -1
  176. package/Label/labelVariants.js.map +1 -1
  177. package/LazyLoader/LazyLoader.js +4 -5
  178. package/LazyLoader/LazyLoader.js.map +1 -1
  179. package/LoadedIcon/LoadedIcon.js.map +1 -1
  180. package/LoadingMask/LoadingMask.d.ts +1 -2
  181. package/LoadingMask/LoadingMask.d.ts.map +1 -1
  182. package/LoadingMask/LoadingMask.js +8 -8
  183. package/LoadingMask/LoadingMask.js.map +1 -1
  184. package/LoadingMask/LoadingMask.types.d.ts +1 -0
  185. package/LoadingMask/LoadingMask.types.d.ts.map +1 -1
  186. package/LoadingMask/RenderLoadingMask.js.map +1 -1
  187. package/LoadingProgress/LoadingProgress.js.map +1 -1
  188. package/LoadingProgress/loadingProgressVariants.js.map +1 -1
  189. package/Menubar/Menubar.js.map +1 -1
  190. package/NavigationMenu/NavigationMenu.js.map +1 -1
  191. package/NavigationMenu/navigationMenuVariants.js.map +1 -1
  192. package/Pagination/Pagination.js +0 -1
  193. package/Pagination/Pagination.js.map +1 -1
  194. package/Popover/Popover.js.map +1 -1
  195. package/Progress/Progress.js.map +1 -1
  196. package/README.md +7 -7
  197. package/Radio/Radio.js.map +1 -1
  198. package/RadioGroup/RadioGroup.js.map +1 -1
  199. package/Resizable/Resizable.d.ts +1 -1
  200. package/Resizable/Resizable.d.ts.map +1 -1
  201. package/Resizable/Resizable.js +21 -16
  202. package/Resizable/Resizable.js.map +1 -1
  203. package/Resizable/Resizable.stories.js.map +1 -1
  204. package/ScrollArea/ScrollArea.js.map +1 -1
  205. package/Search/Search.d.ts.map +1 -1
  206. package/Search/Search.js +40 -31
  207. package/Search/Search.js.map +1 -1
  208. package/Search/Search.stories.js +17 -0
  209. package/Search/Search.stories.js.map +1 -0
  210. package/Select/Select.d.ts.map +1 -1
  211. package/Select/Select.js +53 -49
  212. package/Select/Select.js.map +1 -1
  213. package/Select/Select.stories.js.map +1 -1
  214. package/Select/Select.types.d.ts +4 -0
  215. package/Select/Select.types.d.ts.map +1 -1
  216. package/Select/SelectRoot.js +1 -1
  217. package/Select/SelectRoot.js.map +1 -1
  218. package/Separator/Separator.js.map +1 -1
  219. package/Sheet/Sheet.js.map +1 -1
  220. package/Sidebar/Sidebar.js +20 -21
  221. package/Sidebar/Sidebar.js.map +1 -1
  222. package/Skeleton/Skeleton.js.map +1 -1
  223. package/Slider/Slider.js.map +1 -1
  224. package/Sonner/Sonner.js.map +1 -1
  225. package/Switch/Switch.js.map +1 -1
  226. package/Table/Table.js.map +1 -1
  227. package/TablePagination/TablePagination.js +17 -21
  228. package/TablePagination/TablePagination.js.map +1 -1
  229. package/Tabs/Tabs.js.map +1 -1
  230. package/Tabs/TabsRoot.js.map +1 -1
  231. package/Textarea/Textarea.d.ts.map +1 -1
  232. package/Textarea/Textarea.js +48 -43
  233. package/Textarea/Textarea.js.map +1 -1
  234. package/Textarea/Textarea.stories.js +1 -1
  235. package/Textarea/Textarea.stories.js.map +1 -1
  236. package/Textarea/Textarea.types.d.ts +3 -1
  237. package/Textarea/Textarea.types.d.ts.map +1 -1
  238. package/Textarea/useAutosizeTextArea.js.map +1 -1
  239. package/Theme/ThemeModeToggle.js +3 -4
  240. package/Theme/ThemeModeToggle.js.map +1 -1
  241. package/Theme/ThemeProvider.js.map +1 -1
  242. package/Toast/Toast.d.ts +1 -1
  243. package/Toast/Toast.js.map +1 -1
  244. package/Toast/toast.constants.js.map +1 -1
  245. package/Toast/toastVariants.d.ts +1 -1
  246. package/Toast/toastVariants.js.map +1 -1
  247. package/Toast/useToast.js.map +1 -1
  248. package/Toaster/Toaster.js.map +1 -1
  249. package/Toggle/Toggle.js.map +1 -1
  250. package/ToggleGroup/ToggleGroup.js.map +1 -1
  251. package/Tooltip/Tooltip.d.ts.map +1 -1
  252. package/Tooltip/Tooltip.js +41 -29
  253. package/Tooltip/Tooltip.js.map +1 -1
  254. package/Tooltip/Tooltip.types.d.ts +1 -0
  255. package/Tooltip/Tooltip.types.d.ts.map +1 -1
  256. package/Tooltip/TooltipRoot.js.map +1 -1
  257. package/Tooltip/tooltipVariants.d.ts +4 -0
  258. package/Tooltip/tooltipVariants.d.ts.map +1 -0
  259. package/Tooltip/tooltipVariants.js +23 -0
  260. package/Tooltip/tooltipVariants.js.map +1 -0
  261. package/index.d.ts +1 -0
  262. package/index.d.ts.map +1 -1
  263. package/index.js +332 -328
  264. package/index.js.map +1 -1
  265. package/package.json +6 -5
@@ -1 +1 @@
1
- {"version":3,"file":"Sidebar.js","sources":["../../src/Sidebar/Sidebar.tsx"],"sourcesContent":["import { Input } from \"../Input\";\nimport { Separator } from \"../Separator\";\nimport { Sheet, SheetContent } from \"..//Sheet\";\nimport { Skeleton } from \"../Skeleton\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, VariantProps } from \"class-variance-authority\";\nimport { PanelLeft } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { cn } from \"@oneplatformdev/utils\";\nimport { useIsMobile } from \"@oneplatformdev/hooks/useIsMobile\";\n\nimport { Button } from \"../Button\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"../Tooltip\";\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\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\n // This is the internal state of the sidebar.\n // We use openProp and setOpenProp for control from outside the component.\n const [_open, _setOpen] = React.useState(defaultOpen);\n const open = openProp ?? _open;\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n if (setOpenProp) {\n return setOpenProp?.(\n typeof value === \"function\" ? value(open) : value\n );\n }\n\n _setOpen(value);\n\n // This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${open}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n },\n [setOpenProp, open]\n );\n\n // Helper to toggle the sidebar.\n const toggleSidebar = React.useCallback(() => {\n return isMobile\n ? setOpenMobile((open) => !open)\n : setOpen((open) => !open);\n }, [isMobile, setOpen, setOpenMobile]);\n\n // Adds a keyboard shortcut to toggle the sidebar.\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (\n event.key === SIDEBAR_KEYBOARD_SHORTCUT &&\n (event.metaKey || event.ctrlKey)\n ) {\n event.preventDefault();\n toggleSidebar();\n }\n };\n\n window.addEventListener(\"keydown\", handleKeyDown);\n return () => window.removeEventListener(\"keydown\", handleKeyDown);\n }, [toggleSidebar]);\n\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n // This makes it easier to style the sidebar with Tailwind classes.\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 max-h-svh w-full h-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 {/* This is what handles the sidebar gap on desktop */}\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)+(--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 // Adjust the padding for floating and inset variants.\n variant === \"floating\" || variant === \"inset\"\n ? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--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=\"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 {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, children, ...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 {children ? children : <PanelLeft />}\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n );\n});\nSidebarTrigger.displayName = \"SidebarTrigger\";\n\nconst SidebarRail = React.forwardRef<\n HTMLButtonElement,\n 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 \"in-data-[side=left]:cursor-w-resize in-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});\nSidebarRail.displayName = \"SidebarRail\";\n\nconst SidebarInset = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"main\">\n>(({ className, ...props }, ref) => {\n return (\n <main\n ref={ref}\n className={cn(\n \"relative flex flex-1 flex-col grow w-full min-h-full max-h-full bg-background overflow-hidden\",\n \"peer-data-[variant=inset]:min-h-[calc(100svh-(--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});\nSidebarInset.displayName = \"SidebarInset\";\n\nconst SidebarInput = React.forwardRef<\n React.ElementRef<typeof Input>,\n React.ComponentProps<typeof 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<\n HTMLDivElement,\n 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});\nSidebarHeader.displayName = \"SidebarHeader\";\n\nconst SidebarFooter = React.forwardRef<\n HTMLDivElement,\n 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});\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<\n HTMLDivElement,\n 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});\nSidebarContent.displayName = \"SidebarContent\";\n\nconst SidebarGroup = React.forwardRef<\n HTMLDivElement,\n 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});\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 // Increases the hit area of the button on mobile.\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<\n HTMLDivElement,\n 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));\nSidebarGroupContent.displayName = \"SidebarGroupContent\";\n\nconst SidebarMenu = React.forwardRef<\n HTMLUListElement,\n 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));\nSidebarMenu.displayName = \"SidebarMenu\";\n\nconst SidebarMenuItem = React.forwardRef<\n HTMLLIElement,\n 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));\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 // Increases the hit area of the button on mobile.\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<\n HTMLDivElement,\n 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));\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 // Random width between 50 to 90%.\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 && (\n <Skeleton\n className=\"size-4 rounded-md\"\n data-sidebar=\"menu-skeleton-icon\"\n />\n )}\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<\n HTMLUListElement,\n React.ComponentProps<\"ul\">\n>(({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu-sub\"\n className={cn(\n \"ml-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border pl-2.5 pr-0.5 py-0.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n));\nSidebarMenuSub.displayName = \"SidebarMenuSub\";\n\nconst SidebarMenuSubItem = React.forwardRef<\n HTMLLIElement,\n React.ComponentProps<\"li\">\n>(({ ...props }, ref) => <li ref={ref} {...props} />);\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"],"names":["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","toggleSidebar","handleKeyDown","event","state","contextValue","jsx","TooltipProvider","cn","Sidebar","side","variant","collapsible","Sheet","SheetContent","jsxs","SidebarTrigger","onClick","Button","PanelLeft","SidebarRail","SidebarInset","SidebarInput","Input","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"],"mappings":"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"}
1
+ {"version":3,"file":"Sidebar.js","sources":["../../src/Sidebar/Sidebar.tsx"],"sourcesContent":["import { Input } from \"../Input\";\r\nimport { Separator } from \"../Separator\";\r\nimport { Sheet, SheetContent } from \"..//Sheet\";\r\nimport { Skeleton } from \"../Skeleton\";\r\nimport { Slot } from \"@radix-ui/react-slot\";\r\nimport { cva, VariantProps } from \"class-variance-authority\";\r\nimport { PanelLeft } from \"lucide-react\";\r\nimport * as React from \"react\";\r\n\r\nimport { cn } from \"@oneplatformdev/utils\";\r\nimport { useIsMobile } from \"@oneplatformdev/hooks/useIsMobile\";\r\n\r\nimport { Button } from \"../Button\";\r\nimport {\r\n Tooltip,\r\n TooltipContent,\r\n TooltipProvider,\r\n TooltipTrigger,\r\n} from \"../Tooltip\";\r\n\r\nconst SIDEBAR_COOKIE_NAME = \"sidebar:state\";\r\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\r\nconst SIDEBAR_WIDTH = \"16rem\";\r\nconst SIDEBAR_WIDTH_MOBILE = \"18rem\";\r\nconst SIDEBAR_WIDTH_ICON = \"3rem\";\r\nconst SIDEBAR_KEYBOARD_SHORTCUT = \"b\";\r\n\r\ntype SidebarContext = {\r\n state: \"expanded\" | \"collapsed\"\r\n open: boolean\r\n setOpen: (open: boolean) => void\r\n openMobile: boolean\r\n setOpenMobile: (open: boolean) => void\r\n isMobile: boolean\r\n toggleSidebar: () => void\r\n}\r\n\r\nconst SidebarContext = React.createContext<SidebarContext | null>(null);\r\n\r\nfunction useSidebar() {\r\n const context = React.useContext(SidebarContext);\r\n if (!context) {\r\n throw new Error(\"useSidebar must be used within a SidebarProvider.\");\r\n }\r\n\r\n return context;\r\n}\r\n\r\nconst SidebarProvider = React.forwardRef<\r\n HTMLDivElement,\r\n React.ComponentProps<\"div\"> & {\r\n defaultOpen?: boolean\r\n open?: boolean\r\n onOpenChange?: (open: boolean) => void\r\n}\r\n>(\r\n (\r\n {\r\n defaultOpen = true,\r\n open: openProp,\r\n onOpenChange: setOpenProp,\r\n className,\r\n style,\r\n children,\r\n ...props\r\n },\r\n ref\r\n ) => {\r\n const isMobile = useIsMobile();\r\n const [openMobile, setOpenMobile] = React.useState(false);\r\n\r\n // This is the internal state of the sidebar.\r\n // We use openProp and setOpenProp for control from outside the component.\r\n const [_open, _setOpen] = React.useState(defaultOpen);\r\n const open = openProp ?? _open;\r\n const setOpen = React.useCallback(\r\n (value: boolean | ((value: boolean) => boolean)) => {\r\n if (setOpenProp) {\r\n return setOpenProp?.(\r\n typeof value === \"function\" ? value(open) : value\r\n );\r\n }\r\n\r\n _setOpen(value);\r\n\r\n // This sets the cookie to keep the sidebar state.\r\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${open}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\r\n },\r\n [setOpenProp, open]\r\n );\r\n\r\n // Helper to toggle the sidebar.\r\n const toggleSidebar = React.useCallback(() => {\r\n return isMobile\r\n ? setOpenMobile((open) => !open)\r\n : setOpen((open) => !open);\r\n }, [isMobile, setOpen, setOpenMobile]);\r\n\r\n // Adds a keyboard shortcut to toggle the sidebar.\r\n React.useEffect(() => {\r\n const handleKeyDown = (event: KeyboardEvent) => {\r\n if (\r\n event.key === SIDEBAR_KEYBOARD_SHORTCUT &&\r\n (event.metaKey || event.ctrlKey)\r\n ) {\r\n event.preventDefault();\r\n toggleSidebar();\r\n }\r\n };\r\n\r\n window.addEventListener(\"keydown\", handleKeyDown);\r\n return () => window.removeEventListener(\"keydown\", handleKeyDown);\r\n }, [toggleSidebar]);\r\n\r\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\r\n // This makes it easier to style the sidebar with Tailwind classes.\r\n const state = open ? \"expanded\" : \"collapsed\";\r\n\r\n const contextValue = React.useMemo<SidebarContext>(\r\n () => ({\r\n state,\r\n open,\r\n setOpen,\r\n isMobile,\r\n openMobile,\r\n setOpenMobile,\r\n toggleSidebar,\r\n }),\r\n [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]\r\n );\r\n\r\n return (\r\n <SidebarContext.Provider value={contextValue}>\r\n <TooltipProvider delayDuration={0}>\r\n <div\r\n style={\r\n {\r\n \"--sidebar-width\": SIDEBAR_WIDTH,\r\n \"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON,\r\n ...style,\r\n } as React.CSSProperties\r\n }\r\n className={cn(\r\n \"group/sidebar-wrapper flex max-h-svh w-full h-full has-data-[variant=inset]:bg-sidebar\",\r\n className\r\n )}\r\n ref={ref}\r\n {...props}\r\n >\r\n {children}\r\n </div>\r\n </TooltipProvider>\r\n </SidebarContext.Provider>\r\n );\r\n }\r\n);\r\nSidebarProvider.displayName = \"SidebarProvider\";\r\n\r\nconst Sidebar = React.forwardRef<\r\n HTMLDivElement,\r\n React.ComponentProps<\"div\"> & {\r\n side?: \"left\" | \"right\"\r\n variant?: \"sidebar\" | \"floating\" | \"inset\"\r\n collapsible?: \"offcanvas\" | \"icon\" | \"none\"\r\n}\r\n>(\r\n (\r\n {\r\n side = \"left\",\r\n variant = \"sidebar\",\r\n collapsible = \"offcanvas\",\r\n className,\r\n children,\r\n ...props\r\n },\r\n ref\r\n ) => {\r\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar();\r\n\r\n if (collapsible === \"none\") {\r\n return (\r\n <div\r\n className={cn(\r\n \"flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground\",\r\n className\r\n )}\r\n ref={ref}\r\n {...props}\r\n >\r\n {children}\r\n </div>\r\n );\r\n }\r\n\r\n if (isMobile) {\r\n return (\r\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\r\n <SheetContent\r\n data-sidebar=\"sidebar\"\r\n data-mobile=\"true\"\r\n className=\"w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden\"\r\n style={\r\n {\r\n \"--sidebar-width\": SIDEBAR_WIDTH_MOBILE,\r\n } as React.CSSProperties\r\n }\r\n side={side}\r\n >\r\n <div className=\"flex h-full w-full flex-col\">{children}</div>\r\n </SheetContent>\r\n </Sheet>\r\n );\r\n }\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n className=\"group peer hidden md:block text-sidebar-foreground\"\r\n data-state={state}\r\n data-collapsible={state === \"collapsed\" ? collapsible : \"\"}\r\n data-variant={variant}\r\n data-side={side}\r\n >\r\n {/* This is what handles the sidebar gap on desktop */}\r\n <div\r\n className={cn(\r\n \"duration-200 relative h-svh w-(--sidebar-width) bg-transparent transition-[width] ease-linear\",\r\n \"group-data-[collapsible=offcanvas]:w-0\",\r\n \"group-data-[side=right]:rotate-180\",\r\n variant === \"floating\" || variant === \"inset\"\r\n ? \"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]\"\r\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon)\"\r\n )}\r\n />\r\n <div\r\n className={cn(\r\n \"duration-200 fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] ease-linear md:flex\",\r\n side === \"left\"\r\n ? \"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]\"\r\n : \"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]\",\r\n // Adjust the padding for floating and inset variants.\r\n variant === \"floating\" || variant === \"inset\"\r\n ? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]\"\r\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n <div\r\n data-sidebar=\"sidebar\"\r\n className=\"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\"\r\n >\r\n {children}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n }\r\n);\r\nSidebar.displayName = \"Sidebar\";\r\n\r\nconst SidebarTrigger = React.forwardRef<\r\n React.ElementRef<typeof Button>,\r\n React.ComponentProps<typeof Button>\r\n>(({ className, onClick, children, ...props }, ref) => {\r\n const { toggleSidebar } = useSidebar();\r\n\r\n return (\r\n <Button\r\n ref={ref}\r\n data-sidebar=\"trigger\"\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n className={cn(\"h-7 w-7\", className)}\r\n onClick={(event) => {\r\n onClick?.(event);\r\n toggleSidebar();\r\n }}\r\n {...props}\r\n >\r\n {children ? children : <PanelLeft />}\r\n <span className=\"sr-only\">Toggle Sidebar</span>\r\n </Button>\r\n );\r\n});\r\nSidebarTrigger.displayName = \"SidebarTrigger\";\r\n\r\nconst SidebarRail = React.forwardRef<\r\n HTMLButtonElement,\r\n React.ComponentProps<\"button\">\r\n>(({ className, ...props }, ref) => {\r\n const { toggleSidebar } = useSidebar();\r\n\r\n return (\r\n <button\r\n ref={ref}\r\n data-sidebar=\"rail\"\r\n aria-label=\"Toggle Sidebar\"\r\n tabIndex={-1}\r\n onClick={toggleSidebar}\r\n title=\"Toggle Sidebar\"\r\n className={cn(\r\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\",\r\n \"in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize\",\r\n \"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize\",\r\n \"group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar\",\r\n \"[[data-side=left][data-collapsible=offcanvas]_&]:-right-2\",\r\n \"[[data-side=right][data-collapsible=offcanvas]_&]:-left-2\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n});\r\nSidebarRail.displayName = \"SidebarRail\";\r\n\r\nconst SidebarInset = React.forwardRef<\r\n HTMLDivElement,\r\n React.ComponentProps<\"main\">\r\n>(({ className, ...props }, ref) => {\r\n return (\r\n <main\r\n ref={ref}\r\n className={cn(\r\n \"relative flex flex-1 flex-col grow w-full min-h-full max-h-full bg-background overflow-hidden\",\r\n \"peer-data-[variant=inset]:min-h-[calc(100svh-(--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\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n});\r\nSidebarInset.displayName = \"SidebarInset\";\r\n\r\nconst SidebarInput = React.forwardRef<\r\n React.ElementRef<typeof Input>,\r\n React.ComponentProps<typeof Input>\r\n>(({ className, ...props }, ref) => {\r\n return (\r\n <Input\r\n ref={ref}\r\n data-sidebar=\"input\"\r\n className={cn(\r\n \"h-8 w-full bg-background shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n});\r\nSidebarInput.displayName = \"SidebarInput\";\r\n\r\nconst SidebarHeader = React.forwardRef<\r\n HTMLDivElement,\r\n React.ComponentProps<\"div\">\r\n>(({ className, ...props }, ref) => {\r\n return (\r\n <div\r\n ref={ref}\r\n data-sidebar=\"header\"\r\n className={cn(\"flex flex-col gap-2 p-2\", className)}\r\n {...props}\r\n />\r\n );\r\n});\r\nSidebarHeader.displayName = \"SidebarHeader\";\r\n\r\nconst SidebarFooter = React.forwardRef<\r\n HTMLDivElement,\r\n React.ComponentProps<\"div\">\r\n>(({ className, ...props }, ref) => {\r\n return (\r\n <div\r\n ref={ref}\r\n data-sidebar=\"footer\"\r\n className={cn(\"flex flex-col gap-2 p-2\", className)}\r\n {...props}\r\n />\r\n );\r\n});\r\nSidebarFooter.displayName = \"SidebarFooter\";\r\n\r\nconst SidebarSeparator = React.forwardRef<\r\n React.ElementRef<typeof Separator>,\r\n React.ComponentProps<typeof Separator>\r\n>(({ className, ...props }, ref) => {\r\n return (\r\n <Separator\r\n ref={ref}\r\n data-sidebar=\"separator\"\r\n className={cn(\"mx-2 w-auto bg-sidebar-border\", className)}\r\n {...props}\r\n />\r\n );\r\n});\r\nSidebarSeparator.displayName = \"SidebarSeparator\";\r\n\r\nconst SidebarContent = React.forwardRef<\r\n HTMLDivElement,\r\n React.ComponentProps<\"div\">\r\n>(({ className, ...props }, ref) => {\r\n return (\r\n <div\r\n ref={ref}\r\n data-sidebar=\"content\"\r\n className={cn(\r\n \"flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n});\r\nSidebarContent.displayName = \"SidebarContent\";\r\n\r\nconst SidebarGroup = React.forwardRef<\r\n HTMLDivElement,\r\n React.ComponentProps<\"div\">\r\n>(({ className, ...props }, ref) => {\r\n return (\r\n <div\r\n ref={ref}\r\n data-sidebar=\"group\"\r\n className={cn(\"relative flex w-full min-w-0 flex-col p-2\", className)}\r\n {...props}\r\n />\r\n );\r\n});\r\nSidebarGroup.displayName = \"SidebarGroup\";\r\n\r\nconst SidebarGroupLabel = React.forwardRef<\r\n HTMLDivElement,\r\n React.ComponentProps<\"div\"> & { asChild?: boolean }\r\n>(({ className, asChild = false, ...props }, ref) => {\r\n const Comp = asChild ? Slot : \"div\";\r\n\r\n return (\r\n <Comp\r\n ref={ref}\r\n data-sidebar=\"group-label\"\r\n className={cn(\r\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\",\r\n \"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n});\r\nSidebarGroupLabel.displayName = \"SidebarGroupLabel\";\r\n\r\nconst SidebarGroupAction = React.forwardRef<\r\n HTMLButtonElement,\r\n React.ComponentProps<\"button\"> & { asChild?: boolean }\r\n>(({ className, asChild = false, ...props }, ref) => {\r\n const Comp = asChild ? Slot : \"button\";\r\n\r\n return (\r\n <Comp\r\n ref={ref}\r\n data-sidebar=\"group-action\"\r\n className={cn(\r\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\",\r\n // Increases the hit area of the button on mobile.\r\n \"after:absolute after:-inset-2 after:md:hidden\",\r\n \"group-data-[collapsible=icon]:hidden\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n});\r\nSidebarGroupAction.displayName = \"SidebarGroupAction\";\r\n\r\nconst SidebarGroupContent = React.forwardRef<\r\n HTMLDivElement,\r\n React.ComponentProps<\"div\">\r\n>(({ className, ...props }, ref) => (\r\n <div\r\n ref={ref}\r\n data-sidebar=\"group-content\"\r\n className={cn(\"w-full text-sm\", className)}\r\n {...props}\r\n />\r\n));\r\nSidebarGroupContent.displayName = \"SidebarGroupContent\";\r\n\r\nconst SidebarMenu = React.forwardRef<\r\n HTMLUListElement,\r\n React.ComponentProps<\"ul\">\r\n>(({ className, ...props }, ref) => (\r\n <ul\r\n ref={ref}\r\n data-sidebar=\"menu\"\r\n className={cn(\"flex w-full min-w-0 flex-col gap-1\", className)}\r\n {...props}\r\n />\r\n));\r\nSidebarMenu.displayName = \"SidebarMenu\";\r\n\r\nconst SidebarMenuItem = React.forwardRef<\r\n HTMLLIElement,\r\n React.ComponentProps<\"li\">\r\n>(({ className, ...props }, ref) => (\r\n <li\r\n ref={ref}\r\n data-sidebar=\"menu-item\"\r\n className={cn(\"group/menu-item relative\", className)}\r\n {...props}\r\n />\r\n));\r\nSidebarMenuItem.displayName = \"SidebarMenuItem\";\r\n\r\nconst sidebarMenuButtonVariants = cva(\r\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\",\r\n {\r\n variants: {\r\n variant: {\r\n default: \"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground\",\r\n outline:\r\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))]\",\r\n },\r\n size: {\r\n default: \"h-8 text-sm\",\r\n sm: \"h-7 text-xs\",\r\n lg: \"h-12 text-sm group-data-[collapsible=icon]:p-0!\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"default\",\r\n size: \"default\",\r\n },\r\n }\r\n);\r\n\r\nconst SidebarMenuButton = React.forwardRef<\r\n HTMLButtonElement,\r\n React.ComponentProps<\"button\"> & {\r\n asChild?: boolean\r\n isActive?: boolean\r\n tooltip?: string | React.ComponentProps<typeof TooltipContent>\r\n} & VariantProps<typeof sidebarMenuButtonVariants>\r\n>(\r\n (\r\n {\r\n asChild = false,\r\n isActive = false,\r\n variant = \"default\",\r\n size = \"default\",\r\n tooltip,\r\n className,\r\n ...props\r\n },\r\n ref\r\n ) => {\r\n const Comp = asChild ? Slot : \"button\";\r\n const { isMobile, state } = useSidebar();\r\n\r\n const button = (\r\n <Comp\r\n ref={ref}\r\n data-sidebar=\"menu-button\"\r\n data-size={size}\r\n data-active={isActive}\r\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\r\n {...props}\r\n />\r\n );\r\n\r\n if (!tooltip) {\r\n return button;\r\n }\r\n\r\n if (typeof tooltip === \"string\") {\r\n tooltip = {\r\n children: tooltip,\r\n };\r\n }\r\n\r\n return (\r\n <Tooltip>\r\n <TooltipTrigger asChild>{button}</TooltipTrigger>\r\n <TooltipContent\r\n side=\"right\"\r\n align=\"center\"\r\n hidden={state !== \"collapsed\" || isMobile}\r\n {...tooltip}\r\n />\r\n </Tooltip>\r\n );\r\n }\r\n);\r\nSidebarMenuButton.displayName = \"SidebarMenuButton\";\r\n\r\nconst SidebarMenuAction = React.forwardRef<\r\n HTMLButtonElement,\r\n React.ComponentProps<\"button\"> & {\r\n asChild?: boolean\r\n showOnHover?: boolean\r\n}\r\n>(({ className, asChild = false, showOnHover = false, ...props }, ref) => {\r\n const Comp = asChild ? Slot : \"button\";\r\n\r\n return (\r\n <Comp\r\n ref={ref}\r\n data-sidebar=\"menu-action\"\r\n className={cn(\r\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\",\r\n // Increases the hit area of the button on mobile.\r\n \"after:absolute after:-inset-2 after:md:hidden\",\r\n \"peer-data-[size=sm]/menu-button:top-1\",\r\n \"peer-data-[size=default]/menu-button:top-1.5\",\r\n \"peer-data-[size=lg]/menu-button:top-2.5\",\r\n \"group-data-[collapsible=icon]:hidden\",\r\n showOnHover &&\r\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\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n});\r\nSidebarMenuAction.displayName = \"SidebarMenuAction\";\r\n\r\nconst SidebarMenuBadge = React.forwardRef<\r\n HTMLDivElement,\r\n React.ComponentProps<\"div\">\r\n>(({ className, ...props }, ref) => (\r\n <div\r\n ref={ref}\r\n data-sidebar=\"menu-badge\"\r\n className={cn(\r\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\",\r\n \"peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground\",\r\n \"peer-data-[size=sm]/menu-button:top-1\",\r\n \"peer-data-[size=default]/menu-button:top-1.5\",\r\n \"peer-data-[size=lg]/menu-button:top-2.5\",\r\n \"group-data-[collapsible=icon]:hidden\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n));\r\nSidebarMenuBadge.displayName = \"SidebarMenuBadge\";\r\n\r\nconst SidebarMenuSkeleton = React.forwardRef<\r\n HTMLDivElement,\r\n React.ComponentProps<\"div\"> & {\r\n showIcon?: boolean\r\n}\r\n>(({ className, showIcon = false, ...props }, ref) => {\r\n // Random width between 50 to 90%.\r\n const width = React.useMemo(() => {\r\n return `${Math.floor(Math.random() * 40) + 50}%`;\r\n }, []);\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n data-sidebar=\"menu-skeleton\"\r\n className={cn(\"rounded-md h-8 flex gap-2 px-2 items-center\", className)}\r\n {...props}\r\n >\r\n {showIcon && (\r\n <Skeleton\r\n className=\"size-4 rounded-md\"\r\n data-sidebar=\"menu-skeleton-icon\"\r\n />\r\n )}\r\n <Skeleton\r\n className=\"h-4 flex-1 max-w-(--skeleton-width)\"\r\n data-sidebar=\"menu-skeleton-text\"\r\n style={\r\n {\r\n \"--skeleton-width\": width,\r\n } as React.CSSProperties\r\n }\r\n />\r\n </div>\r\n );\r\n});\r\nSidebarMenuSkeleton.displayName = \"SidebarMenuSkeleton\";\r\n\r\nconst SidebarMenuSub = React.forwardRef<\r\n HTMLUListElement,\r\n React.ComponentProps<\"ul\">\r\n>(({ className, ...props }, ref) => (\r\n <ul\r\n ref={ref}\r\n data-sidebar=\"menu-sub\"\r\n className={cn(\r\n \"ml-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border pl-2.5 pr-0.5 py-0.5\",\r\n \"group-data-[collapsible=icon]:hidden\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n));\r\nSidebarMenuSub.displayName = \"SidebarMenuSub\";\r\n\r\nconst SidebarMenuSubItem = React.forwardRef<\r\n HTMLLIElement,\r\n React.ComponentProps<\"li\">\r\n>(({ ...props }, ref) => <li ref={ref} {...props} />);\r\nSidebarMenuSubItem.displayName = \"SidebarMenuSubItem\";\r\n\r\nconst SidebarMenuSubButton = React.forwardRef<\r\n HTMLAnchorElement,\r\n React.ComponentProps<\"a\"> & {\r\n asChild?: boolean\r\n size?: \"sm\" | \"md\"\r\n isActive?: boolean\r\n}\r\n>(({ asChild = false, size = \"md\", isActive, className, ...props }, ref) => {\r\n const Comp = asChild ? Slot : \"a\";\r\n\r\n return (\r\n <Comp\r\n ref={ref}\r\n data-sidebar=\"menu-sub-button\"\r\n data-size={size}\r\n data-active={isActive}\r\n className={cn(\r\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\",\r\n \"data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground\",\r\n size === \"sm\" && \"text-xs\",\r\n size === \"md\" && \"text-sm\",\r\n \"group-data-[collapsible=icon]:hidden\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n});\r\nSidebarMenuSubButton.displayName = \"SidebarMenuSubButton\";\r\n\r\nexport {\r\n Sidebar,\r\n SidebarContent,\r\n SidebarFooter,\r\n SidebarGroup,\r\n SidebarGroupAction,\r\n SidebarGroupContent,\r\n SidebarGroupLabel,\r\n SidebarHeader,\r\n SidebarInput,\r\n SidebarInset,\r\n SidebarMenu,\r\n SidebarMenuAction,\r\n SidebarMenuBadge,\r\n SidebarMenuButton,\r\n SidebarMenuItem,\r\n SidebarMenuSkeleton,\r\n SidebarMenuSub,\r\n SidebarMenuSubButton,\r\n SidebarMenuSubItem,\r\n SidebarProvider,\r\n SidebarRail,\r\n SidebarSeparator,\r\n SidebarTrigger,\r\n useSidebar,\r\n};\r\n"],"names":["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","toggleSidebar","handleKeyDown","event","state","contextValue","jsx","TooltipProvider","cn","Sidebar","side","variant","collapsible","Sheet","SheetContent","jsxs","SidebarTrigger","onClick","Button","PanelLeft","SidebarRail","SidebarInset","SidebarInput","Input","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"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Skeleton.js","sources":["../../src/Skeleton/Skeleton.tsx"],"sourcesContent":["import { cn } from '@oneplatformdev/utils';\nimport React from 'react';\n\n// TODO: ??\nfunction Skeleton({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn(\"animate-pulse rounded-md bg-primary/10\", className)}\n {...props}\n />\n )\n}\n\nexport { Skeleton }\n"],"names":["Skeleton","className","props","jsx","cn"],"mappings":";;AAIA,SAASA,EAAS;AAAA,EAChB,WAAAC;AAAA,EACA,GAAGC;AACL,GAAyC;AACvC,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC,EAAG,0CAA0CH,CAAS;AAAA,MAChE,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;"}
1
+ {"version":3,"file":"Skeleton.js","sources":["../../src/Skeleton/Skeleton.tsx"],"sourcesContent":["import { cn } from '@oneplatformdev/utils';\r\nimport React from 'react';\r\n\r\n// TODO: ??\r\nfunction Skeleton({\r\n className,\r\n ...props\r\n}: React.HTMLAttributes<HTMLDivElement>) {\r\n return (\r\n <div\r\n className={cn(\"animate-pulse rounded-md bg-primary/10\", className)}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nexport { Skeleton }\r\n"],"names":["Skeleton","className","props","jsx","cn"],"mappings":";;AAIA,SAASA,EAAS;AAAA,EAChB,WAAAC;AAAA,EACA,GAAGC;AACL,GAAyC;AACvC,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC,EAAG,0CAA0CH,CAAS;AAAA,MAChE,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Slider.js","sources":["../../src/Slider/Slider.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport * as SliderPrimitive from \"@radix-ui/react-slider\"\n\nimport { cn } from \"@oneplatformdev/utils\";\n\nconst Slider = React.forwardRef<\n React.ElementRef<typeof SliderPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <SliderPrimitive.Root\n ref={ref}\n className={cn(\n \"relative flex w-full touch-none select-none items-center\",\n className\n )}\n {...props}\n >\n <SliderPrimitive.Track className=\"relative h-1.5 w-full grow overflow-hidden rounded-full bg-primary/20\">\n <SliderPrimitive.Range className=\"absolute h-full bg-primary\" />\n </SliderPrimitive.Track>\n <SliderPrimitive.Thumb className=\"block h-4 w-4 rounded-full border border-primary/50 bg-background shadow-sm transition-colors focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50\" />\n </SliderPrimitive.Root>\n))\nSlider.displayName = SliderPrimitive.Root.displayName\n\nexport { Slider }\n"],"names":["Slider","React","className","props","ref","jsxs","SliderPrimitive","cn","jsx"],"mappings":";;;;AAOA,MAAMA,IAASC,EAAM,WAGnB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1B,gBAAAC;AAAA,EAACC,EAAgB;AAAA,EAAhB;AAAA,IACC,KAAAF;AAAA,IACA,WAAWG;AAAA,MACT;AAAA,MACAL;AAAA,IAAA;AAAA,IAED,GAAGC;AAAA,IAEJ,UAAA;AAAA,MAAA,gBAAAK,EAACF,EAAgB,OAAhB,EAAsB,WAAU,yEAC/B,UAAA,gBAAAE,EAACF,EAAgB,OAAhB,EAAsB,WAAU,6BAAA,CAA6B,EAAA,CAChE;AAAA,MACA,gBAAAE,EAACF,EAAgB,OAAhB,EAAsB,WAAU,2NAAA,CAA2N;AAAA,IAAA;AAAA,EAAA;AAC9P,CACD;AACDN,EAAO,cAAcM,EAAgB,KAAK;"}
1
+ {"version":3,"file":"Slider.js","sources":["../../src/Slider/Slider.tsx"],"sourcesContent":["\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport * as SliderPrimitive from \"@radix-ui/react-slider\"\r\n\r\nimport { cn } from \"@oneplatformdev/utils\";\r\n\r\nconst Slider = React.forwardRef<\r\n React.ElementRef<typeof SliderPrimitive.Root>,\r\n React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root>\r\n>(({ className, ...props }, ref) => (\r\n <SliderPrimitive.Root\r\n ref={ref}\r\n className={cn(\r\n \"relative flex w-full touch-none select-none items-center\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n <SliderPrimitive.Track className=\"relative h-1.5 w-full grow overflow-hidden rounded-full bg-primary/20\">\r\n <SliderPrimitive.Range className=\"absolute h-full bg-primary\" />\r\n </SliderPrimitive.Track>\r\n <SliderPrimitive.Thumb className=\"block h-4 w-4 rounded-full border border-primary/50 bg-background shadow-sm transition-colors focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50\" />\r\n </SliderPrimitive.Root>\r\n))\r\nSlider.displayName = SliderPrimitive.Root.displayName\r\n\r\nexport { Slider }\r\n"],"names":["Slider","React","className","props","ref","jsxs","SliderPrimitive","cn","jsx"],"mappings":";;;;AAOA,MAAMA,IAASC,EAAM,WAGnB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1B,gBAAAC;AAAA,EAACC,EAAgB;AAAA,EAAhB;AAAA,IACC,KAAAF;AAAA,IACA,WAAWG;AAAA,MACT;AAAA,MACAL;AAAA,IAAA;AAAA,IAED,GAAGC;AAAA,IAEJ,UAAA;AAAA,MAAA,gBAAAK,EAACF,EAAgB,OAAhB,EAAsB,WAAU,yEAC/B,UAAA,gBAAAE,EAACF,EAAgB,OAAhB,EAAsB,WAAU,6BAAA,CAA6B,EAAA,CAChE;AAAA,MACA,gBAAAE,EAACF,EAAgB,OAAhB,EAAsB,WAAU,2NAAA,CAA2N;AAAA,IAAA;AAAA,EAAA;AAC9P,CACD;AACDN,EAAO,cAAcM,EAAgB,KAAK;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Sonner.js","sources":["../../src/Sonner/Sonner.tsx"],"sourcesContent":["\"use client\"\n\nimport { useTheme } from \"next-themes\"\nimport { Toaster as SonnerToaster } from \"sonner\"\n\ntype SonnerProps = React.ComponentProps<typeof SonnerToaster>\n\nconst Sonner = ({ ...props }: SonnerProps) => {\n const { theme = \"system\" } = useTheme()\n\n return (\n <SonnerToaster\n theme={theme as SonnerProps[\"theme\"]}\n className=\"toaster group\"\n toastOptions={{\n classNames: {\n toast:\n \"group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg\",\n description: \"group-[.toast]:text-muted-foreground\",\n actionButton:\n \"group-[.toast]:bg-primary group-[.toast]:text-primary-foreground\",\n cancelButton:\n \"group-[.toast]:bg-muted group-[.toast]:text-muted-foreground\",\n },\n }}\n {...props}\n />\n )\n}\n\nexport { Sonner }\n"],"names":["Sonner","props","theme","useTheme","jsx","SonnerToaster"],"mappings":";;;AAOA,MAAMA,IAAS,CAAC,EAAE,GAAGC,QAAyB;AAC5C,QAAM,EAAE,OAAAC,IAAQ,SAAA,IAAaC,EAAA;AAE7B,SACE,gBAAAC;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,OAAAH;AAAA,MACA,WAAU;AAAA,MACV,cAAc;AAAA,QACZ,YAAY;AAAA,UACV,OACE;AAAA,UACF,aAAa;AAAA,UACb,cACE;AAAA,UACF,cACE;AAAA,QAAA;AAAA,MACJ;AAAA,MAED,GAAGD;AAAA,IAAA;AAAA,EAAA;AAGV;"}
1
+ {"version":3,"file":"Sonner.js","sources":["../../src/Sonner/Sonner.tsx"],"sourcesContent":["\"use client\"\r\n\r\nimport { useTheme } from \"next-themes\"\r\nimport { Toaster as SonnerToaster } from \"sonner\"\r\n\r\ntype SonnerProps = React.ComponentProps<typeof SonnerToaster>\r\n\r\nconst Sonner = ({ ...props }: SonnerProps) => {\r\n const { theme = \"system\" } = useTheme()\r\n\r\n return (\r\n <SonnerToaster\r\n theme={theme as SonnerProps[\"theme\"]}\r\n className=\"toaster group\"\r\n toastOptions={{\r\n classNames: {\r\n toast:\r\n \"group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg\",\r\n description: \"group-[.toast]:text-muted-foreground\",\r\n actionButton:\r\n \"group-[.toast]:bg-primary group-[.toast]:text-primary-foreground\",\r\n cancelButton:\r\n \"group-[.toast]:bg-muted group-[.toast]:text-muted-foreground\",\r\n },\r\n }}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nexport { Sonner }\r\n"],"names":["Sonner","props","theme","useTheme","jsx","SonnerToaster"],"mappings":";;;AAOA,MAAMA,IAAS,CAAC,EAAE,GAAGC,QAAyB;AAC5C,QAAM,EAAE,OAAAC,IAAQ,SAAA,IAAaC,EAAA;AAE7B,SACE,gBAAAC;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,OAAAH;AAAA,MACA,WAAU;AAAA,MACV,cAAc;AAAA,QACZ,YAAY;AAAA,UACV,OACE;AAAA,UACF,aAAa;AAAA,UACb,cACE;AAAA,UACF,cACE;AAAA,QAAA;AAAA,MACJ;AAAA,MAED,GAAGD;AAAA,IAAA;AAAA,EAAA;AAGV;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Switch.js","sources":["../../src/Switch/Switch.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport * as SwitchPrimitive from \"@radix-ui/react-switch\"\n\nimport { cn } from \"@oneplatformdev/utils\"\n\nfunction Switch({\n className,\n ...props\n }: React.ComponentProps<typeof SwitchPrimitive.Root>) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n className={cn(\n \"peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className={cn(\n \"bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0\"\n )}\n />\n </SwitchPrimitive.Root>\n )\n}\n\nexport { Switch }\n"],"names":["Switch","className","props","jsx","SwitchPrimitive","cn"],"mappings":";;;AAOA,SAASA,EAAO;AAAA,EACE,WAAAC;AAAA,EACA,GAAGC;AACL,GAAsD;AACpE,SACE,gBAAAC;AAAA,IAACC,EAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,WAAWC;AAAA,QACT;AAAA,QACAJ;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,MAEJ,UAAA,gBAAAC;AAAA,QAACC,EAAgB;AAAA,QAAhB;AAAA,UACC,aAAU;AAAA,UACV,WAAWC;AAAA,YACT;AAAA,UAAA;AAAA,QACF;AAAA,MAAA;AAAA,IACF;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"Switch.js","sources":["../../src/Switch/Switch.tsx"],"sourcesContent":["\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport * as SwitchPrimitive from \"@radix-ui/react-switch\"\r\n\r\nimport { cn } from \"@oneplatformdev/utils\"\r\n\r\nfunction Switch({\r\n className,\r\n ...props\r\n }: React.ComponentProps<typeof SwitchPrimitive.Root>) {\r\n return (\r\n <SwitchPrimitive.Root\r\n data-slot=\"switch\"\r\n className={cn(\r\n \"peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n <SwitchPrimitive.Thumb\r\n data-slot=\"switch-thumb\"\r\n className={cn(\r\n \"bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0\"\r\n )}\r\n />\r\n </SwitchPrimitive.Root>\r\n )\r\n}\r\n\r\nexport { Switch }\r\n"],"names":["Switch","className","props","jsx","SwitchPrimitive","cn"],"mappings":";;;AAOA,SAASA,EAAO;AAAA,EACE,WAAAC;AAAA,EACA,GAAGC;AACL,GAAsD;AACpE,SACE,gBAAAC;AAAA,IAACC,EAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,WAAWC;AAAA,QACT;AAAA,QACAJ;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,MAEJ,UAAA,gBAAAC;AAAA,QAACC,EAAgB;AAAA,QAAhB;AAAA,UACC,aAAU;AAAA,UACV,WAAWC;AAAA,YACT;AAAA,UAAA;AAAA,QACF;AAAA,MAAA;AAAA,IACF;AAAA,EAAA;AAGN;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Table.js","sources":["../../src/Table/Table.tsx"],"sourcesContent":["import * as React from \"react\"\n\nimport { cn } from \"@oneplatformdev/utils\";\n\nconst Table = React.forwardRef<\n HTMLTableElement,\n React.HTMLAttributes<HTMLTableElement>\n>(({ className, ...props }, ref) => (\n <div className=\"relative w-full overflow-auto\">\n <table\n ref={ref}\n className={cn(\"w-full caption-bottom text-sm\", className)}\n {...props}\n />\n </div>\n))\nTable.displayName = \"Table\"\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead ref={ref} className={cn(\"[&_tr]:border-b\", className)} {...props} />\n))\nTableHeader.displayName = \"TableHeader\"\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody\n ref={ref}\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n />\n))\nTableBody.displayName = \"TableBody\"\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n className={cn(\n \"border-t bg-muted/50 font-medium last:[&>tr]:border-b-0\",\n className\n )}\n {...props}\n />\n))\nTableFooter.displayName = \"TableFooter\"\n\nconst TableRow = React.forwardRef<\n HTMLTableRowElement,\n React.HTMLAttributes<HTMLTableRowElement>\n>(({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n \"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\n className\n )}\n {...props}\n />\n))\nTableRow.displayName = \"TableRow\"\n\nconst TableHead = React.forwardRef<\n HTMLTableCellElement,\n React.ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n \"h-10 px-2 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\n className\n )}\n {...props}\n />\n))\nTableHead.displayName = \"TableHead\"\n\nconst TableCell = React.forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <td\n ref={ref}\n className={cn(\n \"p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\n className\n )}\n {...props}\n />\n))\nTableCell.displayName = \"TableCell\"\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <caption\n ref={ref}\n className={cn(\"mt-4 text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nTableCaption.displayName = \"TableCaption\"\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n}\n"],"names":["Table","React","className","props","ref","jsx","cn","TableHeader","TableBody","TableFooter","TableRow","TableHead","TableCell","TableCaption"],"mappings":";;;AAIA,MAAMA,IAAQC,EAAM,WAGlB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1B,gBAAAC,EAAC,OAAA,EAAI,WAAU,iCACb,UAAA,gBAAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE,EAAG,iCAAiCJ,CAAS;AAAA,IACvD,GAAGC;AAAA,EAAA;AACN,GACF,CACD;AACDH,EAAM,cAAc;AAEpB,MAAMO,IAAcN,EAAM,WAGxB,CAAC,EAAE,WAAAC,GAAW,GAAGC,KAASC,wBACzB,SAAA,EAAM,KAAAA,GAAU,WAAWE,EAAG,mBAAmBJ,CAAS,GAAI,GAAGC,GAAO,CAC1E;AACDI,EAAY,cAAc;AAE1B,MAAMC,IAAYP,EAAM,WAGtB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1B,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE,EAAG,8BAA8BJ,CAAS;AAAA,IACpD,GAAGC;AAAA,EAAA;AACN,CACD;AACDK,EAAU,cAAc;AAExB,MAAMC,IAAcR,EAAM,WAGxB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1B,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IAAA;AAAA,IAED,GAAGC;AAAA,EAAA;AACN,CACD;AACDM,EAAY,cAAc;AAE1B,MAAMC,IAAWT,EAAM,WAGrB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1B,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IAAA;AAAA,IAED,GAAGC;AAAA,EAAA;AACN,CACD;AACDO,EAAS,cAAc;AAEvB,MAAMC,IAAYV,EAAM,WAGtB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1B,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IAAA;AAAA,IAED,GAAGC;AAAA,EAAA;AACN,CACD;AACDQ,EAAU,cAAc;AAExB,MAAMC,IAAYX,EAAM,WAGtB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1B,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IAAA;AAAA,IAED,GAAGC;AAAA,EAAA;AACN,CACD;AACDS,EAAU,cAAc;AAExB,MAAMC,IAAeZ,EAAM,WAGzB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1B,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE,EAAG,sCAAsCJ,CAAS;AAAA,IAC5D,GAAGC;AAAA,EAAA;AACN,CACD;AACDU,EAAa,cAAc;"}
1
+ {"version":3,"file":"Table.js","sources":["../../src/Table/Table.tsx"],"sourcesContent":["import * as React from \"react\"\r\n\r\nimport { cn } from \"@oneplatformdev/utils\";\r\n\r\nconst Table = React.forwardRef<\r\n HTMLTableElement,\r\n React.HTMLAttributes<HTMLTableElement>\r\n>(({ className, ...props }, ref) => (\r\n <div className=\"relative w-full overflow-auto\">\r\n <table\r\n ref={ref}\r\n className={cn(\"w-full caption-bottom text-sm\", className)}\r\n {...props}\r\n />\r\n </div>\r\n))\r\nTable.displayName = \"Table\"\r\n\r\nconst TableHeader = React.forwardRef<\r\n HTMLTableSectionElement,\r\n React.HTMLAttributes<HTMLTableSectionElement>\r\n>(({ className, ...props }, ref) => (\r\n <thead ref={ref} className={cn(\"[&_tr]:border-b\", className)} {...props} />\r\n))\r\nTableHeader.displayName = \"TableHeader\"\r\n\r\nconst TableBody = React.forwardRef<\r\n HTMLTableSectionElement,\r\n React.HTMLAttributes<HTMLTableSectionElement>\r\n>(({ className, ...props }, ref) => (\r\n <tbody\r\n ref={ref}\r\n className={cn(\"[&_tr:last-child]:border-0\", className)}\r\n {...props}\r\n />\r\n))\r\nTableBody.displayName = \"TableBody\"\r\n\r\nconst TableFooter = React.forwardRef<\r\n HTMLTableSectionElement,\r\n React.HTMLAttributes<HTMLTableSectionElement>\r\n>(({ className, ...props }, ref) => (\r\n <tfoot\r\n ref={ref}\r\n className={cn(\r\n \"border-t bg-muted/50 font-medium last:[&>tr]:border-b-0\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nTableFooter.displayName = \"TableFooter\"\r\n\r\nconst TableRow = React.forwardRef<\r\n HTMLTableRowElement,\r\n React.HTMLAttributes<HTMLTableRowElement>\r\n>(({ className, ...props }, ref) => (\r\n <tr\r\n ref={ref}\r\n className={cn(\r\n \"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nTableRow.displayName = \"TableRow\"\r\n\r\nconst TableHead = React.forwardRef<\r\n HTMLTableCellElement,\r\n React.ThHTMLAttributes<HTMLTableCellElement>\r\n>(({ className, ...props }, ref) => (\r\n <th\r\n ref={ref}\r\n className={cn(\r\n \"h-10 px-2 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nTableHead.displayName = \"TableHead\"\r\n\r\nconst TableCell = React.forwardRef<\r\n HTMLTableCellElement,\r\n React.TdHTMLAttributes<HTMLTableCellElement>\r\n>(({ className, ...props }, ref) => (\r\n <td\r\n ref={ref}\r\n className={cn(\r\n \"p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nTableCell.displayName = \"TableCell\"\r\n\r\nconst TableCaption = React.forwardRef<\r\n HTMLTableCaptionElement,\r\n React.HTMLAttributes<HTMLTableCaptionElement>\r\n>(({ className, ...props }, ref) => (\r\n <caption\r\n ref={ref}\r\n className={cn(\"mt-4 text-sm text-muted-foreground\", className)}\r\n {...props}\r\n />\r\n))\r\nTableCaption.displayName = \"TableCaption\"\r\n\r\nexport {\r\n Table,\r\n TableHeader,\r\n TableBody,\r\n TableFooter,\r\n TableHead,\r\n TableRow,\r\n TableCell,\r\n TableCaption,\r\n}\r\n"],"names":["Table","React","className","props","ref","jsx","cn","TableHeader","TableBody","TableFooter","TableRow","TableHead","TableCell","TableCaption"],"mappings":";;;AAIA,MAAMA,IAAQC,EAAM,WAGlB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1B,gBAAAC,EAAC,OAAA,EAAI,WAAU,iCACb,UAAA,gBAAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE,EAAG,iCAAiCJ,CAAS;AAAA,IACvD,GAAGC;AAAA,EAAA;AACN,GACF,CACD;AACDH,EAAM,cAAc;AAEpB,MAAMO,IAAcN,EAAM,WAGxB,CAAC,EAAE,WAAAC,GAAW,GAAGC,KAASC,wBACzB,SAAA,EAAM,KAAAA,GAAU,WAAWE,EAAG,mBAAmBJ,CAAS,GAAI,GAAGC,GAAO,CAC1E;AACDI,EAAY,cAAc;AAE1B,MAAMC,IAAYP,EAAM,WAGtB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1B,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE,EAAG,8BAA8BJ,CAAS;AAAA,IACpD,GAAGC;AAAA,EAAA;AACN,CACD;AACDK,EAAU,cAAc;AAExB,MAAMC,IAAcR,EAAM,WAGxB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1B,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IAAA;AAAA,IAED,GAAGC;AAAA,EAAA;AACN,CACD;AACDM,EAAY,cAAc;AAE1B,MAAMC,IAAWT,EAAM,WAGrB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1B,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IAAA;AAAA,IAED,GAAGC;AAAA,EAAA;AACN,CACD;AACDO,EAAS,cAAc;AAEvB,MAAMC,IAAYV,EAAM,WAGtB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1B,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IAAA;AAAA,IAED,GAAGC;AAAA,EAAA;AACN,CACD;AACDQ,EAAU,cAAc;AAExB,MAAMC,IAAYX,EAAM,WAGtB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1B,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IAAA;AAAA,IAED,GAAGC;AAAA,EAAA;AACN,CACD;AACDS,EAAU,cAAc;AAExB,MAAMC,IAAeZ,EAAM,WAGzB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1B,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE,EAAG,sCAAsCJ,CAAS;AAAA,IAC5D,GAAGC;AAAA,EAAA;AACN,CACD;AACDU,EAAa,cAAc;"}
@@ -1,24 +1,20 @@
1
- import { jsxs as i, jsx as n } from "react/jsx-runtime";
1
+ import { jsxs as c, jsx as n } from "react/jsx-runtime";
2
2
  import { Button as o } from "../Button/Button.js";
3
- import "../Button/buttonVariants.js";
4
- import "@radix-ui/react-select";
5
- import "lucide-react";
6
- import "@oneplatformdev/utils";
7
3
  import { Select as P } from "../Select/Select.js";
8
- const L = ({
4
+ const j = ({
9
5
  offset: l,
10
6
  limit: a,
11
7
  totalRows: s,
12
- setLimit: p,
8
+ setLimit: d,
13
9
  setOffset: t,
14
- tRowsPerPage: m = "Rows per page",
15
- tPrevious: d = "Previous",
16
- tPage: u = "Page",
17
- tNext: x = "Next",
10
+ tRowsPerPage: p = "Rows per page",
11
+ tPrevious: u = "Previous",
12
+ tPage: x = "Page",
13
+ tNext: m = "Next",
18
14
  tOf: v = "Of"
19
15
  }) => {
20
- const r = Math.ceil(l / a) + 1, c = Math.ceil(s / a), h = r === c, b = (e) => {
21
- t(0), p(parseInt(e));
16
+ const i = Math.ceil(l / a) + 1, r = Math.ceil(s / a), h = i === r, b = (e) => {
17
+ t(0), d(parseInt(e));
22
18
  }, g = () => {
23
19
  let e = l - a;
24
20
  e < 0 && (e = 0), t(e);
@@ -26,9 +22,9 @@ const L = ({
26
22
  let e = l + a;
27
23
  e > s && (e = s - a), t(e);
28
24
  };
29
- return /* @__PURE__ */ i("div", { className: "flex items-center justify-end space-x-2 py-4", children: [
30
- /* @__PURE__ */ i("div", { className: "flex items-center space-x-2", children: [
31
- /* @__PURE__ */ n("span", { className: "text-sm text-nowrap", children: m }),
25
+ return /* @__PURE__ */ c("div", { className: "flex items-center justify-end space-x-2 py-4", children: [
26
+ /* @__PURE__ */ c("div", { className: "flex items-center space-x-2", children: [
27
+ /* @__PURE__ */ n("span", { className: "text-sm text-nowrap", children: p }),
32
28
  /* @__PURE__ */ n(
33
29
  P,
34
30
  {
@@ -46,7 +42,7 @@ const L = ({
46
42
  }
47
43
  )
48
44
  ] }),
49
- /* @__PURE__ */ i("div", { className: "space-x-2", children: [
45
+ /* @__PURE__ */ c("div", { className: "space-x-2", children: [
50
46
  /* @__PURE__ */ n(
51
47
  o,
52
48
  {
@@ -54,10 +50,10 @@ const L = ({
54
50
  size: "sm",
55
51
  disabled: !l,
56
52
  onClick: g,
57
- children: d
53
+ children: u
58
54
  }
59
55
  ),
60
- /* @__PURE__ */ n("span", { className: "text-sm", children: `${u} ${r} ${v} ${c}` }),
56
+ /* @__PURE__ */ n("span", { className: "text-sm", children: `${x} ${i} ${v} ${r}` }),
61
57
  /* @__PURE__ */ n(
62
58
  o,
63
59
  {
@@ -65,13 +61,13 @@ const L = ({
65
61
  size: "sm",
66
62
  disabled: h,
67
63
  onClick: N,
68
- children: x
64
+ children: m
69
65
  }
70
66
  )
71
67
  ] })
72
68
  ] });
73
69
  };
74
70
  export {
75
- L as TablePagination
71
+ j as TablePagination
76
72
  };
77
73
  //# sourceMappingURL=TablePagination.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TablePagination.js","sources":["../../src/TablePagination/TablePagination.tsx"],"sourcesContent":["'use client';\n\nimport { Button } from '../Button';\nimport { Select } from '../Select';\nimport { FC } from 'react';\n\ninterface IProps {\n limit: number;\n offset: number;\n totalRows: number;\n setLimit: (limit: number) => void;\n setOffset: (offset: number) => void;\n tRowsPerPage?: string;\n tPrevious?: string;\n tPage?:string;\n tNext?:string;\n tOf?:string\n}\n\nexport const TablePagination: FC<IProps> = ({\n offset,\n limit,\n totalRows,\n setLimit,\n setOffset,\n tRowsPerPage= \"Rows per page\",\n tPrevious= \"Previous\",\n tPage= \"Page\",\n tNext= \"Next\",\n tOf= \"Of\",\n}) => {\n const currentPage = Math.ceil(offset / limit) + 1;\n const totalPages = Math.ceil(totalRows / limit);\n const isLastPage = currentPage === totalPages;\n\n const onChangeLimit = (value: string) => {\n setOffset(0);\n setLimit(parseInt(value));\n };\n\n const onPrevious = () => {\n let nextOffset = offset - limit;\n if (nextOffset < 0) {\n nextOffset = 0;\n }\n setOffset(nextOffset);\n };\n\n const onNext = () => {\n let nextOffset = offset + limit;\n if (nextOffset > totalRows) {\n nextOffset = totalRows - limit;\n }\n setOffset(nextOffset);\n };\n\n return (\n <div className=\"flex items-center justify-end space-x-2 py-4\">\n <div className=\"flex items-center space-x-2\">\n <span className=\"text-sm text-nowrap\">{tRowsPerPage}</span>\n <Select\n value={limit?.toString()}\n options={[\n { value: '5', label: '5' },\n { value: '10', label: '10' },\n { value: '20', label: '20' },\n { value: '30', label: '30' },\n { value: '50', label: '50' },\n ]}\n onChange={onChangeLimit}\n placeholder=\"6\"\n nullable={false}\n />\n </div>\n <div className=\"space-x-2\">\n <Button\n variant=\"outline\"\n size=\"sm\"\n disabled={!offset}\n onClick={onPrevious}\n >\n {tPrevious}\n </Button>\n <span className=\"text-sm\">{`${tPage} ${currentPage} ${tOf} ${totalPages}`}</span>\n <Button\n variant=\"outline\"\n size=\"sm\"\n disabled={isLastPage}\n onClick={onNext}\n >\n {tNext}\n </Button>\n </div>\n </div>\n );\n};\n"],"names":["TablePagination","offset","limit","totalRows","setLimit","setOffset","tRowsPerPage","tPrevious","tPage","tNext","tOf","currentPage","totalPages","isLastPage","onChangeLimit","value","onPrevious","nextOffset","onNext","jsxs","jsx","Select","Button"],"mappings":";;;;;;;AAmBO,MAAMA,IAA8B,CAAC;AAAA,EAC1C,QAAAC;AAAA,EACA,OAAAC;AAAA,EACA,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,cAAAC,IAAc;AAAA,EACd,WAAAC,IAAW;AAAA,EACX,OAAAC,IAAO;AAAA,EACP,OAAAC,IAAO;AAAA,EACP,KAAAC,IAAK;AACP,MAAM;AACJ,QAAMC,IAAc,KAAK,KAAKV,IAASC,CAAK,IAAI,GAC1CU,IAAa,KAAK,KAAKT,IAAYD,CAAK,GACxCW,IAAaF,MAAgBC,GAE7BE,IAAgB,CAACC,MAAkB;AACvC,IAAAV,EAAU,CAAC,GACXD,EAAS,SAASW,CAAK,CAAC;AAAA,EAC1B,GAEMC,IAAa,MAAM;AACvB,QAAIC,IAAahB,IAASC;AAC1B,IAAIe,IAAa,MACfA,IAAa,IAEfZ,EAAUY,CAAU;AAAA,EACtB,GAEMC,IAAS,MAAM;AACnB,QAAID,IAAahB,IAASC;AAC1B,IAAIe,IAAad,MACfc,IAAad,IAAYD,IAE3BG,EAAUY,CAAU;AAAA,EACtB;AAEA,SACE,gBAAAE,EAAC,OAAA,EAAI,WAAU,gDACb,UAAA;AAAA,IAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,+BACb,UAAA;AAAA,MAAA,gBAAAC,EAAC,QAAA,EAAK,WAAU,uBAAuB,UAAAd,GAAa;AAAA,MACpD,gBAAAc;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,OAAOnB,GAAO,SAAA;AAAA,UACd,SAAS;AAAA,YACP,EAAE,OAAO,KAAK,OAAO,IAAA;AAAA,YACrB,EAAE,OAAO,MAAM,OAAO,KAAA;AAAA,YACtB,EAAE,OAAO,MAAM,OAAO,KAAA;AAAA,YACtB,EAAE,OAAO,MAAM,OAAO,KAAA;AAAA,YACtB,EAAE,OAAO,MAAM,OAAO,KAAA;AAAA,UAAK;AAAA,UAE7B,UAAUY;AAAA,UACV,aAAY;AAAA,UACZ,UAAU;AAAA,QAAA;AAAA,MAAA;AAAA,IACZ,GACF;AAAA,IACA,gBAAAK,EAAC,OAAA,EAAI,WAAU,aACb,UAAA;AAAA,MAAA,gBAAAC;AAAA,QAACE;AAAA,QAAA;AAAA,UACC,SAAQ;AAAA,UACR,MAAK;AAAA,UACL,UAAU,CAACrB;AAAA,UACX,SAASe;AAAA,UAER,UAAAT;AAAA,QAAA;AAAA,MAAA;AAAA,MAEH,gBAAAa,EAAC,QAAA,EAAK,WAAU,WAAW,UAAA,GAAGZ,CAAK,IAAIG,CAAW,IAAID,CAAG,IAAIE,CAAU,IAAG;AAAA,MAC1E,gBAAAQ;AAAA,QAACE;AAAA,QAAA;AAAA,UACC,SAAQ;AAAA,UACR,MAAK;AAAA,UACL,UAAUT;AAAA,UACV,SAASK;AAAA,UAER,UAAAT;AAAA,QAAA;AAAA,MAAA;AAAA,IACH,EAAA,CACF;AAAA,EAAA,GACF;AAEJ;"}
1
+ {"version":3,"file":"TablePagination.js","sources":["../../src/TablePagination/TablePagination.tsx"],"sourcesContent":["'use client';\r\n\r\nimport { Button } from '../Button';\r\nimport { Select } from '../Select';\r\nimport { FC } from 'react';\r\n\r\ninterface IProps {\r\n limit: number;\r\n offset: number;\r\n totalRows: number;\r\n setLimit: (limit: number) => void;\r\n setOffset: (offset: number) => void;\r\n tRowsPerPage?: string;\r\n tPrevious?: string;\r\n tPage?:string;\r\n tNext?:string;\r\n tOf?:string\r\n}\r\n\r\nexport const TablePagination: FC<IProps> = ({\r\n offset,\r\n limit,\r\n totalRows,\r\n setLimit,\r\n setOffset,\r\n tRowsPerPage= \"Rows per page\",\r\n tPrevious= \"Previous\",\r\n tPage= \"Page\",\r\n tNext= \"Next\",\r\n tOf= \"Of\",\r\n}) => {\r\n const currentPage = Math.ceil(offset / limit) + 1;\r\n const totalPages = Math.ceil(totalRows / limit);\r\n const isLastPage = currentPage === totalPages;\r\n\r\n const onChangeLimit = (value: string) => {\r\n setOffset(0);\r\n setLimit(parseInt(value));\r\n };\r\n\r\n const onPrevious = () => {\r\n let nextOffset = offset - limit;\r\n if (nextOffset < 0) {\r\n nextOffset = 0;\r\n }\r\n setOffset(nextOffset);\r\n };\r\n\r\n const onNext = () => {\r\n let nextOffset = offset + limit;\r\n if (nextOffset > totalRows) {\r\n nextOffset = totalRows - limit;\r\n }\r\n setOffset(nextOffset);\r\n };\r\n\r\n return (\r\n <div className=\"flex items-center justify-end space-x-2 py-4\">\r\n <div className=\"flex items-center space-x-2\">\r\n <span className=\"text-sm text-nowrap\">{tRowsPerPage}</span>\r\n <Select\r\n value={limit?.toString()}\r\n options={[\r\n { value: '5', label: '5' },\r\n { value: '10', label: '10' },\r\n { value: '20', label: '20' },\r\n { value: '30', label: '30' },\r\n { value: '50', label: '50' },\r\n ]}\r\n onChange={onChangeLimit}\r\n placeholder=\"6\"\r\n nullable={false}\r\n />\r\n </div>\r\n <div className=\"space-x-2\">\r\n <Button\r\n variant=\"outline\"\r\n size=\"sm\"\r\n disabled={!offset}\r\n onClick={onPrevious}\r\n >\r\n {tPrevious}\r\n </Button>\r\n <span className=\"text-sm\">{`${tPage} ${currentPage} ${tOf} ${totalPages}`}</span>\r\n <Button\r\n variant=\"outline\"\r\n size=\"sm\"\r\n disabled={isLastPage}\r\n onClick={onNext}\r\n >\r\n {tNext}\r\n </Button>\r\n </div>\r\n </div>\r\n );\r\n};\r\n"],"names":["TablePagination","offset","limit","totalRows","setLimit","setOffset","tRowsPerPage","tPrevious","tPage","tNext","tOf","currentPage","totalPages","isLastPage","onChangeLimit","value","onPrevious","nextOffset","onNext","jsxs","jsx","Select","Button"],"mappings":";;;AAmBO,MAAMA,IAA8B,CAAC;AAAA,EAC1C,QAAAC;AAAA,EACA,OAAAC;AAAA,EACA,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,cAAAC,IAAc;AAAA,EACd,WAAAC,IAAW;AAAA,EACX,OAAAC,IAAO;AAAA,EACP,OAAAC,IAAO;AAAA,EACP,KAAAC,IAAK;AACP,MAAM;AACJ,QAAMC,IAAc,KAAK,KAAKV,IAASC,CAAK,IAAI,GAC1CU,IAAa,KAAK,KAAKT,IAAYD,CAAK,GACxCW,IAAaF,MAAgBC,GAE7BE,IAAgB,CAACC,MAAkB;AACvC,IAAAV,EAAU,CAAC,GACXD,EAAS,SAASW,CAAK,CAAC;AAAA,EAC1B,GAEMC,IAAa,MAAM;AACvB,QAAIC,IAAahB,IAASC;AAC1B,IAAIe,IAAa,MACfA,IAAa,IAEfZ,EAAUY,CAAU;AAAA,EACtB,GAEMC,IAAS,MAAM;AACnB,QAAID,IAAahB,IAASC;AAC1B,IAAIe,IAAad,MACfc,IAAad,IAAYD,IAE3BG,EAAUY,CAAU;AAAA,EACtB;AAEA,SACE,gBAAAE,EAAC,OAAA,EAAI,WAAU,gDACb,UAAA;AAAA,IAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,+BACb,UAAA;AAAA,MAAA,gBAAAC,EAAC,QAAA,EAAK,WAAU,uBAAuB,UAAAd,GAAa;AAAA,MACpD,gBAAAc;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,OAAOnB,GAAO,SAAA;AAAA,UACd,SAAS;AAAA,YACP,EAAE,OAAO,KAAK,OAAO,IAAA;AAAA,YACrB,EAAE,OAAO,MAAM,OAAO,KAAA;AAAA,YACtB,EAAE,OAAO,MAAM,OAAO,KAAA;AAAA,YACtB,EAAE,OAAO,MAAM,OAAO,KAAA;AAAA,YACtB,EAAE,OAAO,MAAM,OAAO,KAAA;AAAA,UAAK;AAAA,UAE7B,UAAUY;AAAA,UACV,aAAY;AAAA,UACZ,UAAU;AAAA,QAAA;AAAA,MAAA;AAAA,IACZ,GACF;AAAA,IACA,gBAAAK,EAAC,OAAA,EAAI,WAAU,aACb,UAAA;AAAA,MAAA,gBAAAC;AAAA,QAACE;AAAA,QAAA;AAAA,UACC,SAAQ;AAAA,UACR,MAAK;AAAA,UACL,UAAU,CAACrB;AAAA,UACX,SAASe;AAAA,UAER,UAAAT;AAAA,QAAA;AAAA,MAAA;AAAA,MAEH,gBAAAa,EAAC,QAAA,EAAK,WAAU,WAAW,UAAA,GAAGZ,CAAK,IAAIG,CAAW,IAAID,CAAG,IAAIE,CAAU,IAAG;AAAA,MAC1E,gBAAAQ;AAAA,QAACE;AAAA,QAAA;AAAA,UACC,SAAQ;AAAA,UACR,MAAK;AAAA,UACL,UAAUT;AAAA,UACV,SAASK;AAAA,UAER,UAAAT;AAAA,QAAA;AAAA,MAAA;AAAA,IACH,EAAA,CACF;AAAA,EAAA,GACF;AAEJ;"}
package/Tabs/Tabs.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs.js","sources":["../../src/Tabs/Tabs.tsx"],"sourcesContent":["import { Children, FC, PropsWithChildren } from 'react';\n\nimport { TabsContent, TabsList, TabsRoot, TabsTrigger } from './TabsRoot';\nimport { TabsProps } from './Tabs.types';\n\nexport const TabRender: FC<TabsProps> = (props) => {\n const { tabs = [], contents } = props;\n return Children.map(contents, (child, index) => {\n if (!child || !tabs[index]) return null;\n const value = tabs[index]?.value;\n const props = child.props || {};\n return (\n <TabsContent key={value} value={value} {...props}>\n {child}\n </TabsContent>\n );\n });\n};\n\nexport const Tabs: FC<PropsWithChildren<TabsProps>> = (props) => {\n const { tab, tabs = [], onChange, children } = props;\n return (\n <TabsRoot value={tab} onValueChange={onChange}>\n <TabsList className=\"px-2 py-6 bg-[#E0E7FF] rounded-[6px]\">\n {tabs.map((tab) => (\n <TabsTrigger key={tab.value} value={tab.value} className=\"h-8\">\n {tab.label}\n </TabsTrigger>\n ))}\n </TabsList>\n {children}\n {!children && <TabRender {...props}/>}\n </TabsRoot>\n );\n};\n"],"names":["TabRender","props","tabs","contents","Children","child","index","value","TabsContent","Tabs","tab","onChange","children","jsxs","TabsRoot","jsx","TabsList","TabsTrigger"],"mappings":";;;AAKO,MAAMA,IAA2B,CAACC,MAAU;AACjD,QAAM,EAAE,MAAAC,IAAO,IAAI,UAAAC,MAAaF;AAChC,SAAOG,EAAS,IAAID,GAAU,CAACE,GAAOC,MAAU;AAC9C,QAAI,CAACD,KAAS,CAACH,EAAKI,CAAK,EAAG,QAAO;AACnC,UAAMC,IAAQL,EAAKI,CAAK,GAAG,OACrBL,IAAQI,EAAM,SAAS,CAAA;AAC7B,6BACGG,GAAA,EAAwB,OAAAD,GAAe,GAAGN,GACxC,eADeM,CAElB;AAAA,EAEJ,CAAC;AACH,GAEaE,IAAyC,CAACR,MAAU;AAC/D,QAAM,EAAE,KAAAS,GAAK,MAAAR,IAAO,CAAA,GAAI,UAAAS,GAAU,UAAAC,MAAaX;AAC/C,SACE,gBAAAY,EAACC,GAAA,EAAS,OAAOJ,GAAK,eAAeC,GACnC,UAAA;AAAA,IAAA,gBAAAI,EAACC,GAAA,EAAS,WAAU,wCACjB,UAAAd,EAAK,IAAI,CAACQ,wBACRO,GAAA,EAA4B,OAAOP,EAAI,OAAO,WAAU,OACtD,UAAAA,EAAI,SADWA,EAAI,KAEtB,CACD,EAAA,CACH;AAAA,IACCE;AAAA,IACA,CAACA,KAAY,gBAAAG,EAACf,GAAA,EAAW,GAAGC,EAAA,CAAM;AAAA,EAAA,GACrC;AAEJ;"}
1
+ {"version":3,"file":"Tabs.js","sources":["../../src/Tabs/Tabs.tsx"],"sourcesContent":["import { Children, FC, PropsWithChildren } from 'react';\r\n\r\nimport { TabsContent, TabsList, TabsRoot, TabsTrigger } from './TabsRoot';\r\nimport { TabsProps } from './Tabs.types';\r\n\r\nexport const TabRender: FC<TabsProps> = (props) => {\r\n const { tabs = [], contents } = props;\r\n return Children.map(contents, (child, index) => {\r\n if (!child || !tabs[index]) return null;\r\n const value = tabs[index]?.value;\r\n const props = child.props || {};\r\n return (\r\n <TabsContent key={value} value={value} {...props}>\r\n {child}\r\n </TabsContent>\r\n );\r\n });\r\n};\r\n\r\nexport const Tabs: FC<PropsWithChildren<TabsProps>> = (props) => {\r\n const { tab, tabs = [], onChange, children } = props;\r\n return (\r\n <TabsRoot value={tab} onValueChange={onChange}>\r\n <TabsList className=\"px-2 py-6 bg-[#E0E7FF] rounded-[6px]\">\r\n {tabs.map((tab) => (\r\n <TabsTrigger key={tab.value} value={tab.value} className=\"h-8\">\r\n {tab.label}\r\n </TabsTrigger>\r\n ))}\r\n </TabsList>\r\n {children}\r\n {!children && <TabRender {...props}/>}\r\n </TabsRoot>\r\n );\r\n};\r\n"],"names":["TabRender","props","tabs","contents","Children","child","index","value","TabsContent","Tabs","tab","onChange","children","jsxs","TabsRoot","jsx","TabsList","TabsTrigger"],"mappings":";;;AAKO,MAAMA,IAA2B,CAACC,MAAU;AACjD,QAAM,EAAE,MAAAC,IAAO,IAAI,UAAAC,MAAaF;AAChC,SAAOG,EAAS,IAAID,GAAU,CAACE,GAAOC,MAAU;AAC9C,QAAI,CAACD,KAAS,CAACH,EAAKI,CAAK,EAAG,QAAO;AACnC,UAAMC,IAAQL,EAAKI,CAAK,GAAG,OACrBL,IAAQI,EAAM,SAAS,CAAA;AAC7B,6BACGG,GAAA,EAAwB,OAAAD,GAAe,GAAGN,GACxC,eADeM,CAElB;AAAA,EAEJ,CAAC;AACH,GAEaE,IAAyC,CAACR,MAAU;AAC/D,QAAM,EAAE,KAAAS,GAAK,MAAAR,IAAO,CAAA,GAAI,UAAAS,GAAU,UAAAC,MAAaX;AAC/C,SACE,gBAAAY,EAACC,GAAA,EAAS,OAAOJ,GAAK,eAAeC,GACnC,UAAA;AAAA,IAAA,gBAAAI,EAACC,GAAA,EAAS,WAAU,wCACjB,UAAAd,EAAK,IAAI,CAACQ,wBACRO,GAAA,EAA4B,OAAOP,EAAI,OAAO,WAAU,OACtD,UAAAA,EAAI,SADWA,EAAI,KAEtB,CACD,EAAA,CACH;AAAA,IACCE;AAAA,IACA,CAACA,KAAY,gBAAAG,EAACf,GAAA,EAAW,GAAGC,EAAA,CAAM;AAAA,EAAA,GACrC;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"TabsRoot.js","sources":["../../src/Tabs/TabsRoot.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\"\n\nimport { cn } from \"@oneplatformdev/utils\";\n\nconst TabsRoot = TabsPrimitive.Root\n\nconst TabsList = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.List\n ref={ref}\n className={cn(\n \"inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground\",\n className\n )}\n {...props}\n />\n))\nTabsList.displayName = TabsPrimitive.List.displayName\n\nconst TabsTrigger = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm\",\n className\n )}\n {...props}\n />\n))\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName\n\nconst TabsContent = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n \"mt-2 ring-offset-background focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n className\n )}\n {...props}\n />\n))\nTabsContent.displayName = TabsPrimitive.Content.displayName\n\nexport { TabsRoot, TabsList, TabsTrigger, TabsContent }\n"],"names":["TabsRoot","TabsPrimitive","TabsList","React","className","props","ref","jsx","cn","TabsTrigger","TabsContent"],"mappings":";;;;AAOA,MAAMA,IAAWC,EAAc,MAEzBC,IAAWC,EAAM,WAGrB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1B,gBAAAC;AAAA,EAACN,EAAc;AAAA,EAAd;AAAA,IACC,KAAAK;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IAAA;AAAA,IAED,GAAGC;AAAA,EAAA;AACN,CACD;AACDH,EAAS,cAAcD,EAAc,KAAK;AAE1C,MAAMQ,IAAcN,EAAM,WAGxB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1B,gBAAAC;AAAA,EAACN,EAAc;AAAA,EAAd;AAAA,IACC,KAAAK;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IAAA;AAAA,IAED,GAAGC;AAAA,EAAA;AACN,CACD;AACDI,EAAY,cAAcR,EAAc,QAAQ;AAEhD,MAAMS,IAAcP,EAAM,WAGxB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1B,gBAAAC;AAAA,EAACN,EAAc;AAAA,EAAd;AAAA,IACC,KAAAK;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IAAA;AAAA,IAED,GAAGC;AAAA,EAAA;AACN,CACD;AACDK,EAAY,cAAcT,EAAc,QAAQ;"}
1
+ {"version":3,"file":"TabsRoot.js","sources":["../../src/Tabs/TabsRoot.tsx"],"sourcesContent":["\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\"\r\n\r\nimport { cn } from \"@oneplatformdev/utils\";\r\n\r\nconst TabsRoot = TabsPrimitive.Root\r\n\r\nconst TabsList = React.forwardRef<\r\n React.ElementRef<typeof TabsPrimitive.List>,\r\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\r\n>(({ className, ...props }, ref) => (\r\n <TabsPrimitive.List\r\n ref={ref}\r\n className={cn(\r\n \"inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nTabsList.displayName = TabsPrimitive.List.displayName\r\n\r\nconst TabsTrigger = React.forwardRef<\r\n React.ElementRef<typeof TabsPrimitive.Trigger>,\r\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\r\n>(({ className, ...props }, ref) => (\r\n <TabsPrimitive.Trigger\r\n ref={ref}\r\n className={cn(\r\n \"inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName\r\n\r\nconst TabsContent = React.forwardRef<\r\n React.ElementRef<typeof TabsPrimitive.Content>,\r\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\r\n>(({ className, ...props }, ref) => (\r\n <TabsPrimitive.Content\r\n ref={ref}\r\n className={cn(\r\n \"mt-2 ring-offset-background focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nTabsContent.displayName = TabsPrimitive.Content.displayName\r\n\r\nexport { TabsRoot, TabsList, TabsTrigger, TabsContent }\r\n"],"names":["TabsRoot","TabsPrimitive","TabsList","React","className","props","ref","jsx","cn","TabsTrigger","TabsContent"],"mappings":";;;;AAOA,MAAMA,IAAWC,EAAc,MAEzBC,IAAWC,EAAM,WAGrB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1B,gBAAAC;AAAA,EAACN,EAAc;AAAA,EAAd;AAAA,IACC,KAAAK;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IAAA;AAAA,IAED,GAAGC;AAAA,EAAA;AACN,CACD;AACDH,EAAS,cAAcD,EAAc,KAAK;AAE1C,MAAMQ,IAAcN,EAAM,WAGxB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1B,gBAAAC;AAAA,EAACN,EAAc;AAAA,EAAd;AAAA,IACC,KAAAK;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IAAA;AAAA,IAED,GAAGC;AAAA,EAAA;AACN,CACD;AACDI,EAAY,cAAcR,EAAc,QAAQ;AAEhD,MAAMS,IAAcP,EAAM,WAGxB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1B,gBAAAC;AAAA,EAACN,EAAc;AAAA,EAAd;AAAA,IACC,KAAAK;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IAAA;AAAA,IAED,GAAGC;AAAA,EAAA;AACN,CACD;AACDK,EAAY,cAAcT,EAAc,QAAQ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Textarea.d.ts","sourceRoot":"","sources":["../../src/Textarea/Textarea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,QAAA,MAAM,QAAQ,wGAmEb,CAAC;AAGF,OAAO,EAAE,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"Textarea.d.ts","sourceRoot":"","sources":["../../src/Textarea/Textarea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,QAAA,MAAM,QAAQ,wGA2Eb,CAAC;AAGF,OAAO,EAAE,QAAQ,EAAE,CAAC"}
@@ -1,73 +1,78 @@
1
- import { jsxs as l, Fragment as p, jsx as b } from "react/jsx-runtime";
2
- import * as h from "react";
3
- import { useId as A, useRef as v, useState as w, useImperativeHandle as z, useEffect as F } from "react";
4
- import { cn as d } from "@oneplatformdev/utils";
5
- import { useAutosizeTextArea as N } from "./useAutosizeTextArea.js";
6
- const y = h.forwardRef(
7
- (u, m) => {
1
+ import { jsxs as d, Fragment as v, jsx as A } from "react/jsx-runtime";
2
+ import * as w from "react";
3
+ import { useId as y, useRef as z, useState as F, useImperativeHandle as N, useEffect as T } from "react";
4
+ import { cn as f } from "@oneplatformdev/utils";
5
+ import { useAutosizeTextArea as C } from "./useAutosizeTextArea.js";
6
+ const R = w.forwardRef(
7
+ (m, c) => {
8
8
  const {
9
- className: c,
10
- value: t = "",
11
- maxHeight: o = Number.MAX_SAFE_INTEGER,
9
+ className: g,
10
+ value: r = "",
11
+ maxHeight: a = Number.MAX_SAFE_INTEGER,
12
12
  minHeight: i = 40,
13
- resizeble: f = !0,
13
+ resizeble: x = !1,
14
14
  counter: s = !1,
15
15
  id: n = "",
16
- ...r
17
- } = u, a = A(), e = v(null), [x, g] = w("");
18
- return N({
19
- textAreaRef: e,
20
- triggerAutoSize: x,
21
- maxHeight: o,
16
+ onChange: p,
17
+ onTransform: l,
18
+ ...o
19
+ } = m, u = y(), t = z(null), [b, h] = F("");
20
+ return C({
21
+ textAreaRef: t,
22
+ triggerAutoSize: b,
23
+ maxHeight: a,
22
24
  minHeight: i
23
- }), z(m, () => ({
24
- ...e.current ?? {},
25
- textArea: e.current,
26
- focus: () => e?.current?.focus(),
27
- maxHeight: o,
25
+ }), N(c, () => ({
26
+ ...t.current ?? {},
27
+ textArea: t.current,
28
+ focus: () => t?.current?.focus(),
29
+ maxHeight: a,
28
30
  minHeight: i
29
- })), F(() => {
30
- g(t);
31
- }, [r?.defaultValue, t]), /* @__PURE__ */ l(p, { children: [
32
- /* @__PURE__ */ b(
31
+ })), T(() => {
32
+ h(r);
33
+ }, [o?.defaultValue, r]), /* @__PURE__ */ d(v, { children: [
34
+ /* @__PURE__ */ A(
33
35
  "textarea",
34
36
  {
35
- id: n || a,
36
- ...r,
37
- ref: e,
38
- value: t,
39
- className: d(
37
+ id: n || u,
38
+ ...o,
39
+ ref: t,
40
+ value: r,
41
+ onChange: (e) => {
42
+ typeof l?.(e.target.value, e) == "string" && (e.target.value = l(e.target.value, e)), p?.(e);
43
+ },
44
+ className: f(
40
45
  "flex min-h-10 w-full px-3 py-2 text-base relative md:text-sm",
41
46
  "rounded-lg border border-input bg-[#FCFCFC] shadow-none",
42
47
  "placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",
43
48
  "focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring",
44
- f ? "resize" : "resize-none overflow-hidden!",
45
- s && "pb-2",
46
- c
49
+ x ? "resize" : "resize-none overflow-hidden!",
50
+ s && "pb-1",
51
+ g
47
52
  )
48
53
  }
49
54
  ),
50
- s && /* @__PURE__ */ l(
55
+ s && /* @__PURE__ */ d(
51
56
  "label",
52
57
  {
53
- htmlFor: n || a,
54
- className: d(
58
+ htmlFor: n || u,
59
+ className: f(
55
60
  "w-full text-right inline-flex items-center justify-end",
56
- "text-sm font-normal text-muted-foreground",
57
- "leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
61
+ "text-xs font-medium leading-[1.2] text-muted-foreground",
62
+ "peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
58
63
  ),
59
64
  children: [
60
- String(t || "").length,
65
+ String(r || "").length,
61
66
  " / ",
62
- r?.maxLength
67
+ o?.maxLength
63
68
  ]
64
69
  }
65
70
  )
66
71
  ] });
67
72
  }
68
73
  );
69
- y.displayName = "Textarea";
74
+ R.displayName = "Textarea";
70
75
  export {
71
- y as Textarea
76
+ R as Textarea
72
77
  };
73
78
  //# sourceMappingURL=Textarea.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Textarea.js","sources":["../../src/Textarea/Textarea.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useEffect, useId, useImperativeHandle, useRef, useState } from 'react';\nimport { cn } from '@oneplatformdev/utils';\n\nimport { TextareaProps } from './Textarea.types';\nimport { useAutosizeTextArea } from './useAutosizeTextArea';\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n (textareaProps, ref) => {\n const {\n className,\n value = '',\n maxHeight = Number.MAX_SAFE_INTEGER,\n minHeight = 40,\n resizeble = true,\n counter = false,\n id: customId = '',\n ...props\n } = textareaProps;\n const id = useId();\n const textAreaRef = useRef<HTMLTextAreaElement | null>(null);\n const [triggerAutoSize, setTriggerAutoSize] = useState('');\n\n useAutosizeTextArea({\n textAreaRef,\n triggerAutoSize: triggerAutoSize,\n maxHeight,\n minHeight,\n });\n\n useImperativeHandle(ref, () => ({\n ...((textAreaRef.current ?? {}) as HTMLTextAreaElement),\n textArea: textAreaRef.current as HTMLTextAreaElement,\n focus: () => textAreaRef?.current?.focus(),\n maxHeight,\n minHeight,\n }));\n\n useEffect(() => {\n setTriggerAutoSize(value as string);\n }, [props?.defaultValue, value]);\n\n return (\n <>\n <textarea\n id={customId || id}\n {...props}\n ref={textAreaRef}\n value={value}\n className={cn(\n 'flex min-h-10 w-full px-3 py-2 text-base relative md:text-sm',\n 'rounded-lg border border-input bg-[#FCFCFC] shadow-none',\n 'placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50',\n 'focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring',\n resizeble ? 'resize' : 'resize-none overflow-hidden!',\n counter && 'pb-2',\n className\n )}\n />\n {counter && (\n <label\n htmlFor={customId || id}\n className={cn(\n 'w-full text-right inline-flex items-center justify-end',\n 'text-sm font-normal text-muted-foreground',\n 'leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70'\n )}\n >\n {String(value || '').length} / {props?.maxLength}\n </label>\n )}\n </>\n );\n }\n);\nTextarea.displayName = 'Textarea';\n\nexport { Textarea };\n"],"names":["Textarea","React","textareaProps","ref","className","value","maxHeight","minHeight","resizeble","counter","customId","props","id","useId","textAreaRef","useRef","triggerAutoSize","setTriggerAutoSize","useState","useAutosizeTextArea","useImperativeHandle","useEffect","jsxs","Fragment","jsx","cn"],"mappings":";;;;;AAOA,MAAMA,IAAWC,EAAM;AAAA,EACrB,CAACC,GAAeC,MAAQ;AACtB,UAAM;AAAA,MACJ,WAAAC;AAAA,MACA,OAAAC,IAAQ;AAAA,MACR,WAAAC,IAAY,OAAO;AAAA,MACnB,WAAAC,IAAY;AAAA,MACZ,WAAAC,IAAY;AAAA,MACZ,SAAAC,IAAU;AAAA,MACV,IAAIC,IAAW;AAAA,MACf,GAAGC;AAAA,IAAA,IACDT,GACEU,IAAKC,EAAA,GACLC,IAAcC,EAAmC,IAAI,GACrD,CAACC,GAAiBC,CAAkB,IAAIC,EAAS,EAAE;AAEzD,WAAAC,EAAoB;AAAA,MAClB,aAAAL;AAAA,MACA,iBAAAE;AAAA,MACA,WAAAV;AAAA,MACA,WAAAC;AAAA,IAAA,CACD,GAEDa,EAAoBjB,GAAK,OAAO;AAAA,MAC9B,GAAKW,EAAY,WAAW,CAAA;AAAA,MAC5B,UAAUA,EAAY;AAAA,MACtB,OAAO,MAAMA,GAAa,SAAS,MAAA;AAAA,MACnC,WAAAR;AAAA,MACA,WAAAC;AAAA,IAAA,EACA,GAEFc,EAAU,MAAM;AACd,MAAAJ,EAAmBZ,CAAe;AAAA,IACpC,GAAG,CAACM,GAAO,cAAcN,CAAK,CAAC,GAG7B,gBAAAiB,EAAAC,GAAA,EACE,UAAA;AAAA,MAAA,gBAAAC;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,IAAId,KAAYE;AAAA,UACf,GAAGD;AAAA,UACJ,KAAKG;AAAA,UACL,OAAAT;AAAA,UACA,WAAWoB;AAAA,YACT;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACAjB,IAAY,WAAW;AAAA,YACvBC,KAAW;AAAA,YACXL;AAAA,UAAA;AAAA,QACF;AAAA,MAAA;AAAA,MAEDK,KACC,gBAAAa;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,SAASZ,KAAYE;AAAA,UACrB,WAAWa;AAAA,YACT;AAAA,YACA;AAAA,YACA;AAAA,UAAA;AAAA,UAGD,UAAA;AAAA,YAAA,OAAOpB,KAAS,EAAE,EAAE;AAAA,YAAO;AAAA,YAAIM,GAAO;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IACzC,GAEJ;AAAA,EAEJ;AACF;AACAX,EAAS,cAAc;"}
1
+ {"version":3,"file":"Textarea.js","sources":["../../src/Textarea/Textarea.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport { useEffect, useId, useImperativeHandle, useRef, useState } from 'react';\r\nimport { cn } from '@oneplatformdev/utils';\r\n\r\nimport { TextareaProps } from './Textarea.types';\r\nimport { useAutosizeTextArea } from './useAutosizeTextArea';\r\n\r\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\r\n (textareaProps, ref) => {\r\n const {\r\n className,\r\n value = '',\r\n maxHeight = Number.MAX_SAFE_INTEGER,\r\n minHeight = 40,\r\n resizeble = false,\r\n counter = false,\r\n id: customId = '',\r\n onChange,\r\n onTransform,\r\n ...props\r\n } = textareaProps;\r\n const id = useId();\r\n const textAreaRef = useRef<HTMLTextAreaElement | null>(null);\r\n const [triggerAutoSize, setTriggerAutoSize] = useState('');\r\n\r\n useAutosizeTextArea({\r\n textAreaRef,\r\n triggerAutoSize: triggerAutoSize,\r\n maxHeight,\r\n minHeight,\r\n });\r\n\r\n useImperativeHandle(ref, () => ({\r\n ...((textAreaRef.current ?? {}) as HTMLTextAreaElement),\r\n textArea: textAreaRef.current as HTMLTextAreaElement,\r\n focus: () => textAreaRef?.current?.focus(),\r\n maxHeight,\r\n minHeight,\r\n }));\r\n\r\n useEffect(() => {\r\n setTriggerAutoSize(value as string);\r\n }, [props?.defaultValue, value]);\r\n\r\n return (\r\n <>\r\n <textarea\r\n id={customId || id}\r\n {...props}\r\n ref={textAreaRef}\r\n value={value}\r\n onChange={(e) => {\r\n if (typeof onTransform?.(e.target.value, e) === 'string') {\r\n e.target.value = onTransform(e.target.value, e);\r\n }\r\n onChange?.(e);\r\n }}\r\n className={cn(\r\n 'flex min-h-10 w-full px-3 py-2 text-base relative md:text-sm',\r\n 'rounded-lg border border-input bg-[#FCFCFC] shadow-none',\r\n 'placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50',\r\n 'focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring',\r\n resizeble ? 'resize' : 'resize-none overflow-hidden!',\r\n counter && 'pb-1',\r\n className\r\n )}\r\n />\r\n {counter && (\r\n <label\r\n htmlFor={customId || id}\r\n className={cn(\r\n 'w-full text-right inline-flex items-center justify-end',\r\n 'text-xs font-medium leading-[1.2] text-muted-foreground',\r\n 'peer-disabled:cursor-not-allowed peer-disabled:opacity-70'\r\n )}\r\n >\r\n {String(value || '').length} / {props?.maxLength}\r\n </label>\r\n )}\r\n </>\r\n );\r\n }\r\n);\r\nTextarea.displayName = 'Textarea';\r\n\r\nexport { Textarea };\r\n"],"names":["Textarea","React","textareaProps","ref","className","value","maxHeight","minHeight","resizeble","counter","customId","onChange","onTransform","props","id","useId","textAreaRef","useRef","triggerAutoSize","setTriggerAutoSize","useState","useAutosizeTextArea","useImperativeHandle","useEffect","jsxs","Fragment","jsx","cn"],"mappings":";;;;;AAOA,MAAMA,IAAWC,EAAM;AAAA,EACrB,CAACC,GAAeC,MAAQ;AACtB,UAAM;AAAA,MACJ,WAAAC;AAAA,MACA,OAAAC,IAAQ;AAAA,MACR,WAAAC,IAAY,OAAO;AAAA,MACnB,WAAAC,IAAY;AAAA,MACZ,WAAAC,IAAY;AAAA,MACZ,SAAAC,IAAU;AAAA,MACV,IAAIC,IAAW;AAAA,MACf,UAAAC;AAAA,MACA,aAAAC;AAAA,MACA,GAAGC;AAAA,IAAA,IACDX,GACEY,IAAKC,EAAA,GACLC,IAAcC,EAAmC,IAAI,GACrD,CAACC,GAAiBC,CAAkB,IAAIC,EAAS,EAAE;AAEzD,WAAAC,EAAoB;AAAA,MAClB,aAAAL;AAAA,MACA,iBAAAE;AAAA,MACA,WAAAZ;AAAA,MACA,WAAAC;AAAA,IAAA,CACD,GAEDe,EAAoBnB,GAAK,OAAO;AAAA,MAC9B,GAAKa,EAAY,WAAW,CAAA;AAAA,MAC5B,UAAUA,EAAY;AAAA,MACtB,OAAO,MAAMA,GAAa,SAAS,MAAA;AAAA,MACnC,WAAAV;AAAA,MACA,WAAAC;AAAA,IAAA,EACA,GAEFgB,EAAU,MAAM;AACd,MAAAJ,EAAmBd,CAAe;AAAA,IACpC,GAAG,CAACQ,GAAO,cAAcR,CAAK,CAAC,GAG7B,gBAAAmB,EAAAC,GAAA,EACE,UAAA;AAAA,MAAA,gBAAAC;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,IAAIhB,KAAYI;AAAA,UACf,GAAGD;AAAA,UACJ,KAAKG;AAAA,UACL,OAAAX;AAAA,UACA,UAAU,CAAC,MAAM;AACf,YAAI,OAAOO,IAAc,EAAE,OAAO,OAAO,CAAC,KAAM,aAC9C,EAAE,OAAO,QAAQA,EAAY,EAAE,OAAO,OAAO,CAAC,IAEhDD,IAAW,CAAC;AAAA,UACd;AAAA,UACA,WAAWgB;AAAA,YACT;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACAnB,IAAY,WAAW;AAAA,YACvBC,KAAW;AAAA,YACXL;AAAA,UAAA;AAAA,QACF;AAAA,MAAA;AAAA,MAEDK,KACC,gBAAAe;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,SAASd,KAAYI;AAAA,UACrB,WAAWa;AAAA,YACT;AAAA,YACA;AAAA,YACA;AAAA,UAAA;AAAA,UAGD,UAAA;AAAA,YAAA,OAAOtB,KAAS,EAAE,EAAE;AAAA,YAAO;AAAA,YAAIQ,GAAO;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IACzC,GAEJ;AAAA,EAEJ;AACF;AACAb,EAAS,cAAc;"}
@@ -1,6 +1,6 @@
1
1
  import { Textarea as t } from "./Textarea.js";
2
2
  const a = {
3
- title: "Textarea",
3
+ title: "Input/Textarea",
4
4
  component: t
5
5
  }, o = {
6
6
  args: {}
@@ -1 +1 @@
1
- {"version":3,"file":"Textarea.stories.js","sources":["../../src/Textarea/Textarea.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from '@storybook/react-vite';\n\nimport { Textarea } from './Textarea';\n\nconst meta = {\n title: 'Textarea',\n component: Textarea,\n} satisfies Meta<typeof Textarea>;\n\nexport default meta;\n\ntype Story = StoryObj<typeof meta>;\n\nexport const Default: Story = {\n args: {}\n};\n"],"names":["meta","Textarea","Default"],"mappings":";AAIA,MAAMA,IAAO;AAAA,EACX,OAAO;AAAA,EACP,WAAWC;AACb,GAMaC,IAAiB;AAAA,EAC5B,MAAM,CAAA;AACR;"}
1
+ {"version":3,"file":"Textarea.stories.js","sources":["../../src/Textarea/Textarea.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from '@storybook/react-vite';\r\n\r\nimport { Textarea } from './Textarea';\r\n\r\nconst meta = {\r\n title: 'Input/Textarea',\r\n component: Textarea,\r\n} satisfies Meta<typeof Textarea>;\r\n\r\nexport default meta;\r\n\r\ntype Story = StoryObj<typeof meta>;\r\n\r\nexport const Default: Story = {\r\n args: {}\r\n};\r\n"],"names":["meta","Textarea","Default"],"mappings":";AAIA,MAAMA,IAAO;AAAA,EACX,OAAO;AAAA,EACP,WAAWC;AACb,GAMaC,IAAiB;AAAA,EAC5B,MAAM,CAAA;AACR;"}