@bigbinary/neeto-atoms 1.0.100 → 1.0.102
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{Alert-CydF7eEs.js → Alert-BN00VOZx.js} +2 -2
- package/dist/{Alert-CydF7eEs.js.map → Alert-BN00VOZx.js.map} +1 -1
- package/dist/{Avatar-DxRDQDjh.js → Avatar-ChF94Ken.js} +3 -2
- package/dist/Avatar-ChF94Ken.js.map +1 -0
- package/dist/{Badge-DC6zxOwS.js → Badge-Bl5cyQ5Q.js} +4 -1
- package/dist/Badge-Bl5cyQ5Q.js.map +1 -0
- package/dist/{Button-DV9xCqlc.js → Button-C4c_dj-f.js} +2 -2
- package/dist/{Button-DV9xCqlc.js.map → Button-C4c_dj-f.js.map} +1 -1
- package/dist/{Callout-BgV-Lfuu.js → Callout-DJGi3MQR.js} +2 -1
- package/dist/{Callout-BgV-Lfuu.js.map → Callout-DJGi3MQR.js.map} +1 -1
- package/dist/{Checkbox-m4rEnxUz.js → Checkbox-DiAngQvO.js} +4 -2
- package/dist/Checkbox-DiAngQvO.js.map +1 -0
- package/dist/{DataTable-BNMYEa_7.js → DataTable-CwWARMEv.js} +197 -174
- package/dist/DataTable-CwWARMEv.js.map +1 -0
- package/dist/{Empty-Bfido_mq.js → Empty-DINS0Uu4.js} +19 -8
- package/dist/Empty-DINS0Uu4.js.map +1 -0
- package/dist/{HelpIcon-Cm3ZgoCx.js → HelpIcon-CbnRiSjn.js} +3 -3
- package/dist/{HelpIcon-Cm3ZgoCx.js.map → HelpIcon-CbnRiSjn.js.map} +1 -1
- package/dist/{Input-CYKHBpJn.js → Input-CuIurquS.js} +2 -2
- package/dist/{Input-CYKHBpJn.js.map → Input-CuIurquS.js.map} +1 -1
- package/dist/{Kbd-CAIAs4OO.js → Kbd-CKfR8HlC.js} +2 -2
- package/dist/{Kbd-CAIAs4OO.js.map → Kbd-CKfR8HlC.js.map} +1 -1
- package/dist/{Label-mrNM2drW.js → Label-DjOaTM4Q.js} +2 -2
- package/dist/{Label-mrNM2drW.js.map → Label-DjOaTM4Q.js.map} +1 -1
- package/dist/{MultiEmailInput-Du1964Ka.js → MultiEmailInput-BB334s4C.js} +93 -86
- package/dist/MultiEmailInput-BB334s4C.js.map +1 -0
- package/dist/{Pagination-BRd3WPJ_.js → Pagination-yjG8uCpV.js} +6 -4
- package/dist/{Pagination-BRd3WPJ_.js.map → Pagination-yjG8uCpV.js.map} +1 -1
- package/dist/{Popover-C1FNlRtU.js → Popover-BHGvcdV2.js} +2 -1
- package/dist/{Popover-C1FNlRtU.js.map → Popover-BHGvcdV2.js.map} +1 -1
- package/dist/{Progress-DURemsl_.js → Progress-DbtLbWf8.js} +10 -2
- package/dist/{Progress-DURemsl_.js.map → Progress-DbtLbWf8.js.map} +1 -1
- package/dist/{Select-SvphlEXA.js → Select-YWCfd2p1.js} +2 -5
- package/dist/Select-YWCfd2p1.js.map +1 -0
- package/dist/{Spinner-DgV3mILN.js → Spinner-vfggfvEp.js} +2 -1
- package/dist/{Spinner-DgV3mILN.js.map → Spinner-vfggfvEp.js.map} +1 -1
- package/dist/{Stepper-7OpfOfas.js → Stepper-DO7EBWYL.js} +2 -1
- package/dist/{Stepper-7OpfOfas.js.map → Stepper-DO7EBWYL.js.map} +1 -1
- package/dist/{Switch-D_Xt6QgL.js → Switch-Am2l2UdV.js} +3 -1
- package/dist/Switch-Am2l2UdV.js.map +1 -0
- package/dist/{Tabs-BCUdAnva.js → Tabs-ModAabFc.js} +7 -3
- package/dist/Tabs-ModAabFc.js.map +1 -0
- package/dist/{Textarea-B2Uhx-Yy.js → Textarea-CMGZZ4rL.js} +4 -3
- package/dist/{Textarea-B2Uhx-Yy.js.map → Textarea-CMGZZ4rL.js.map} +1 -1
- package/dist/{Tooltip-CA3irJ2q.js → Tooltip-DWDsgyx7.js} +2 -1
- package/dist/{Tooltip-CA3irJ2q.js.map → Tooltip-DWDsgyx7.js.map} +1 -1
- package/dist/{TreeSelect-Ct7qDBad.js → TreeSelect-wYDOZ5yD.js} +2 -1
- package/dist/TreeSelect-wYDOZ5yD.js.map +1 -0
- package/dist/cjs/{Alert-BdZVGiON.js → Alert-BTheamzj.js} +2 -2
- package/dist/cjs/{Alert-BdZVGiON.js.map → Alert-BTheamzj.js.map} +1 -1
- package/dist/cjs/{Avatar-DWuHnGh4.js → Avatar-DGuMcBnh.js} +3 -2
- package/dist/cjs/Avatar-DGuMcBnh.js.map +1 -0
- package/dist/cjs/{Badge-Dz_Kb49L.js → Badge-DPGWAq4H.js} +4 -1
- package/dist/cjs/Badge-DPGWAq4H.js.map +1 -0
- package/dist/cjs/{Button-8VH9p9RB.js → Button-DJSysuyG.js} +2 -2
- package/dist/cjs/{Button-8VH9p9RB.js.map → Button-DJSysuyG.js.map} +1 -1
- package/dist/cjs/{Callout-Cnsff-NS.js → Callout-Bci3POCo.js} +2 -1
- package/dist/cjs/{Callout-Cnsff-NS.js.map → Callout-Bci3POCo.js.map} +1 -1
- package/dist/cjs/{Checkbox-CymHP7QE.js → Checkbox-7lX2aMKA.js} +4 -2
- package/dist/cjs/Checkbox-7lX2aMKA.js.map +1 -0
- package/dist/cjs/{DataTable-CRDwhMUB.js → DataTable-ChgPVrRB.js} +197 -174
- package/dist/cjs/DataTable-ChgPVrRB.js.map +1 -0
- package/dist/cjs/{Empty-aQaWK0p4.js → Empty-Bqt-TucD.js} +19 -8
- package/dist/cjs/Empty-Bqt-TucD.js.map +1 -0
- package/dist/cjs/{HelpIcon-CIkKt2uy.js → HelpIcon-QpZY6Zmc.js} +3 -3
- package/dist/cjs/{HelpIcon-CIkKt2uy.js.map → HelpIcon-QpZY6Zmc.js.map} +1 -1
- package/dist/cjs/{Input-k6MkhSTc.js → Input-lWo0YoZ9.js} +2 -2
- package/dist/cjs/{Input-k6MkhSTc.js.map → Input-lWo0YoZ9.js.map} +1 -1
- package/dist/cjs/{Kbd-BvC3VSNb.js → Kbd--A8Gl8TV.js} +2 -2
- package/dist/cjs/Kbd--A8Gl8TV.js.map +1 -0
- package/dist/cjs/{Label-Dt7K54Ly.js → Label-D8RFE9hd.js} +2 -2
- package/dist/cjs/{Label-Dt7K54Ly.js.map → Label-D8RFE9hd.js.map} +1 -1
- package/dist/cjs/{MultiEmailInput-KmN2BSaX.js → MultiEmailInput-BlIqzq-o.js} +93 -86
- package/dist/cjs/MultiEmailInput-BlIqzq-o.js.map +1 -0
- package/dist/cjs/{Pagination-8yFg8xR2.js → Pagination-WyQlBpvK.js} +6 -4
- package/dist/cjs/{Pagination-8yFg8xR2.js.map → Pagination-WyQlBpvK.js.map} +1 -1
- package/dist/cjs/{Popover-DuRSsDHz.js → Popover-5BUgIW60.js} +2 -1
- package/dist/cjs/{Popover-DuRSsDHz.js.map → Popover-5BUgIW60.js.map} +1 -1
- package/dist/cjs/{Progress-yBpMAzIU.js → Progress-n_VwK9_E.js} +10 -2
- package/dist/cjs/{Progress-yBpMAzIU.js.map → Progress-n_VwK9_E.js.map} +1 -1
- package/dist/cjs/{Select-YtJKCZeT.js → Select-Bs5Fp3wj.js} +3 -6
- package/dist/cjs/Select-Bs5Fp3wj.js.map +1 -0
- package/dist/cjs/{Spinner-DzNBz8al.js → Spinner-DRoghJA8.js} +2 -1
- package/dist/cjs/{Spinner-DzNBz8al.js.map → Spinner-DRoghJA8.js.map} +1 -1
- package/dist/cjs/{Stepper-DZb25oBH.js → Stepper-BtZG_XmC.js} +2 -1
- package/dist/cjs/{Stepper-DZb25oBH.js.map → Stepper-BtZG_XmC.js.map} +1 -1
- package/dist/cjs/{Switch-DrSFyxis.js → Switch-DY7bdiEz.js} +3 -1
- package/dist/cjs/Switch-DY7bdiEz.js.map +1 -0
- package/dist/cjs/{Tabs-COMRjTVU.js → Tabs-CA0QAWp0.js} +7 -3
- package/dist/cjs/Tabs-CA0QAWp0.js.map +1 -0
- package/dist/cjs/{Textarea-yWv-66yX.js → Textarea-Cw7Uea82.js} +4 -3
- package/dist/cjs/{Textarea-yWv-66yX.js.map → Textarea-Cw7Uea82.js.map} +1 -1
- package/dist/cjs/{Tooltip-Dph_R3Ct.js → Tooltip-B6uv_2Jz.js} +2 -1
- package/dist/cjs/{Tooltip-Dph_R3Ct.js.map → Tooltip-B6uv_2Jz.js.map} +1 -1
- package/dist/cjs/{TreeSelect-Ck0takdS.js → TreeSelect-C9BSJt1d.js} +2 -1
- package/dist/cjs/TreeSelect-C9BSJt1d.js.map +1 -0
- package/dist/cjs/components/Alert.js +2 -2
- package/dist/cjs/components/Avatar.js +1 -1
- package/dist/cjs/components/Badge.js +1 -1
- package/dist/cjs/components/Button.js +1 -1
- package/dist/cjs/components/Callout.js +1 -1
- package/dist/cjs/components/Checkbox.js +4 -4
- package/dist/cjs/components/DataTable.js +3 -3
- package/dist/cjs/components/DatePicker.js +3 -3
- package/dist/cjs/components/DropdownMenu.js +2 -1
- package/dist/cjs/components/DropdownMenu.js.map +1 -1
- package/dist/cjs/components/Empty.js +2 -2
- package/dist/cjs/components/Input.js +4 -4
- package/dist/cjs/components/Kbd.js +1 -1
- package/dist/cjs/components/Label.js +4 -4
- package/dist/cjs/components/MultiEmailInput.js +4 -4
- package/dist/cjs/components/Pagination.js +1 -1
- package/dist/cjs/components/Popover.js +1 -1
- package/dist/cjs/components/Progress.js +1 -1
- package/dist/cjs/components/RadioGroup.js +3 -3
- package/dist/cjs/components/Select.js +5 -4
- package/dist/cjs/components/Select.js.map +1 -1
- package/dist/cjs/components/Slider.js +3 -3
- package/dist/cjs/components/Spinner.js +1 -1
- package/dist/cjs/components/Stepper.js +1 -1
- package/dist/cjs/components/Switch.js +4 -4
- package/dist/cjs/components/Tabs.js +2 -1
- package/dist/cjs/components/Tabs.js.map +1 -1
- package/dist/cjs/components/Textarea.js +4 -4
- package/dist/cjs/components/TimePicker.js +3 -3
- package/dist/cjs/components/Tooltip.js +1 -1
- package/dist/cjs/components/TreeSelect.js +4 -4
- package/dist/cjs/components/index.js +25 -24
- package/dist/cjs/components/index.js.map +1 -1
- package/dist/cjs/formik/ActionBlock.js +1 -1
- package/dist/cjs/formik/BlockNavigation.js +1 -1
- package/dist/cjs/formik/Button.js +1 -1
- package/dist/cjs/formik/Checkbox.js +4 -4
- package/dist/cjs/formik/Input.js +4 -4
- package/dist/cjs/formik/MultiEmailInput.js +4 -4
- package/dist/cjs/formik/RadioGroup.js +3 -3
- package/dist/cjs/formik/Select.js +5 -4
- package/dist/cjs/formik/Select.js.map +1 -1
- package/dist/cjs/formik/Slider.js +3 -3
- package/dist/cjs/formik/Switch.js +4 -4
- package/dist/cjs/formik/Textarea.js +4 -4
- package/dist/cjs/formik/TreeSelect.js +4 -4
- package/dist/cjs/formik/index.js +11 -10
- package/dist/cjs/formik/index.js.map +1 -1
- package/dist/cjs/hyphenize-B8IGPzjp.js +8 -0
- package/dist/cjs/hyphenize-B8IGPzjp.js.map +1 -0
- package/dist/cjs/index.js +25 -24
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/primitives/Dialog.js +1 -0
- package/dist/cjs/primitives/Dialog.js.map +1 -1
- package/dist/cjs/primitives/Field.js +3 -3
- package/dist/cjs/primitives/Sheet.js +1 -0
- package/dist/cjs/primitives/Sheet.js.map +1 -1
- package/dist/cjs/primitives/Sidebar.js +0 -11
- package/dist/cjs/primitives/Sidebar.js.map +1 -1
- package/dist/cjs/primitives/index.js +3 -3
- package/dist/components/Alert.js +2 -2
- package/dist/components/Avatar.js +1 -1
- package/dist/components/Badge.js +1 -1
- package/dist/components/Button.js +1 -1
- package/dist/components/Callout.js +1 -1
- package/dist/components/Checkbox.js +4 -4
- package/dist/components/DataTable.js +3 -3
- package/dist/components/DatePicker.js +3 -3
- package/dist/components/DropdownMenu.js +2 -1
- package/dist/components/DropdownMenu.js.map +1 -1
- package/dist/components/Empty/Empty.d.ts +2 -0
- package/dist/components/Empty.js +2 -2
- package/dist/components/Input.js +4 -4
- package/dist/components/Kbd.js +1 -1
- package/dist/components/Label.js +4 -4
- package/dist/components/MultiEmailInput.js +4 -4
- package/dist/components/Pagination.js +1 -1
- package/dist/components/Popover.js +1 -1
- package/dist/components/Progress.js +1 -1
- package/dist/components/RadioGroup.js +3 -3
- package/dist/components/Select.js +5 -4
- package/dist/components/Select.js.map +1 -1
- package/dist/components/Slider.js +3 -3
- package/dist/components/Spinner.js +1 -1
- package/dist/components/Stepper.js +1 -1
- package/dist/components/Switch.js +4 -4
- package/dist/components/Tabs/Tabs.d.ts +2 -0
- package/dist/components/Tabs.js +2 -1
- package/dist/components/Tabs.js.map +1 -1
- package/dist/components/Textarea.js +4 -4
- package/dist/components/TimePicker.js +3 -3
- package/dist/components/Tooltip.js +1 -1
- package/dist/components/TreeSelect/types.d.ts +2 -0
- package/dist/components/TreeSelect.js +4 -4
- package/dist/components/index.js +25 -24
- package/dist/components/index.js.map +1 -1
- package/dist/formik/ActionBlock.js +1 -1
- package/dist/formik/BlockNavigation.js +1 -1
- package/dist/formik/Button.js +1 -1
- package/dist/formik/Checkbox.js +4 -4
- package/dist/formik/Input.js +4 -4
- package/dist/formik/MultiEmailInput.js +4 -4
- package/dist/formik/RadioGroup.js +3 -3
- package/dist/formik/Select.js +5 -4
- package/dist/formik/Select.js.map +1 -1
- package/dist/formik/Slider.js +3 -3
- package/dist/formik/Switch.js +4 -4
- package/dist/formik/Textarea.js +4 -4
- package/dist/formik/TreeSelect.js +4 -4
- package/dist/formik/index.js +11 -10
- package/dist/formik/index.js.map +1 -1
- package/dist/hyphenize-BU4K8zjb.js +6 -0
- package/dist/hyphenize-BU4K8zjb.js.map +1 -0
- package/dist/index.js +25 -24
- package/dist/index.js.map +1 -1
- package/dist/primitives/Dialog.js +1 -0
- package/dist/primitives/Dialog.js.map +1 -1
- package/dist/primitives/Field.js +3 -3
- package/dist/primitives/Sheet.js +1 -0
- package/dist/primitives/Sheet.js.map +1 -1
- package/dist/primitives/Sidebar.js +0 -11
- package/dist/primitives/Sidebar.js.map +1 -1
- package/dist/primitives/index.js +3 -3
- package/package.json +1 -1
- package/dist/Avatar-DxRDQDjh.js.map +0 -1
- package/dist/Badge-DC6zxOwS.js.map +0 -1
- package/dist/Checkbox-m4rEnxUz.js.map +0 -1
- package/dist/DataTable-BNMYEa_7.js.map +0 -1
- package/dist/Empty-Bfido_mq.js.map +0 -1
- package/dist/MultiEmailInput-Du1964Ka.js.map +0 -1
- package/dist/Select-SvphlEXA.js.map +0 -1
- package/dist/Switch-D_Xt6QgL.js.map +0 -1
- package/dist/Tabs-BCUdAnva.js.map +0 -1
- package/dist/TreeSelect-Ct7qDBad.js.map +0 -1
- package/dist/cjs/Avatar-DWuHnGh4.js.map +0 -1
- package/dist/cjs/Badge-Dz_Kb49L.js.map +0 -1
- package/dist/cjs/Checkbox-CymHP7QE.js.map +0 -1
- package/dist/cjs/DataTable-CRDwhMUB.js.map +0 -1
- package/dist/cjs/Empty-aQaWK0p4.js.map +0 -1
- package/dist/cjs/Kbd-BvC3VSNb.js.map +0 -1
- package/dist/cjs/MultiEmailInput-KmN2BSaX.js.map +0 -1
- package/dist/cjs/Select-YtJKCZeT.js.map +0 -1
- package/dist/cjs/Switch-DrSFyxis.js.map +0 -1
- package/dist/cjs/Tabs-COMRjTVU.js.map +0 -1
- package/dist/cjs/TreeSelect-Ck0takdS.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sidebar.js","sources":["../../node_modules/lucide-react/dist/esm/icons/panel-left.js","../../src/shadcn/components/sidebar.tsx","../../src/primitives/Sidebar.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.577.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"3\", rx: \"2\", key: \"afitv7\" }],\n [\"path\", { d: \"M9 3v18\", key: \"fh3hqa\" }]\n];\nconst PanelLeft = createLucideIcon(\"panel-left\", __iconNode);\n\nexport { __iconNode, PanelLeft as default };\n//# sourceMappingURL=panel-left.js.map\n","\"use client\"\n\nimport * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { Slot } from \"radix-ui\"\n\nimport { useIsMobile } from \"src/shadcn/hooks/use-mobile\"\nimport { cn } from \"src/shadcn/lib/utils\"\nimport { Button } from \"src/shadcn/components/button\"\nimport { Input } from \"src/shadcn/components/input\"\nimport { Separator } from \"src/shadcn/components/separator\"\nimport {\n Sheet,\n SheetContent,\n SheetDescription,\n SheetHeader,\n SheetTitle,\n} from \"src/shadcn/components/sheet\"\nimport { Skeleton } from \"src/shadcn/components/skeleton\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"src/shadcn/components/tooltip\"\nimport { useTranslation } from \"react-i18next\"\nimport { PanelLeftIcon } from \"lucide-react\"\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 SidebarContextProps = {\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<SidebarContextProps | 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\nfunction SidebarProvider({\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & {\n defaultOpen?: boolean\n open?: boolean\n onOpenChange?: (open: boolean) => void\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 const openState = typeof value === \"function\" ? value(open) : value\n if (setOpenProp) {\n setOpenProp(openState)\n } else {\n _setOpen(openState)\n }\n\n // This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; 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 ? setOpenMobile((open) => !open) : 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<SidebarContextProps>(\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 data-slot=\"sidebar-wrapper\"\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH,\n \"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n className={cn(\n \"group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar\",\n className\n )}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n )\n}\n\nfunction Sidebar({\n side = \"left\",\n variant = \"sidebar\",\n collapsible = \"offcanvas\",\n className,\n children,\n dir,\n ...props\n}: React.ComponentProps<\"div\"> & {\n side?: \"left\" | \"right\"\n variant?: \"sidebar\" | \"floating\" | \"inset\"\n collapsible?: \"offcanvas\" | \"icon\" | \"none\"\n}) {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar()\n const { t } = useTranslation()\n\n if (collapsible === \"none\") {\n return (\n <div\n data-slot=\"sidebar\"\n className={cn(\n \"flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground\",\n className\n )}\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 dir={dir}\n data-sidebar=\"sidebar\"\n data-slot=\"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 <SheetHeader className=\"sr-only\">\n <SheetTitle>{t(\"neetoatoms.sidebar.title\", \"Sidebar\")}</SheetTitle>\n <SheetDescription>{t(\"neetoatoms.sidebar.description\", \"Displays the mobile sidebar.\")}</SheetDescription>\n </SheetHeader>\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n )\n }\n\n return (\n <div\n className=\"group peer hidden text-sidebar-foreground md:block\"\n data-state={state}\n data-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n data-variant={variant}\n data-side={side}\n data-slot=\"sidebar\"\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n data-slot=\"sidebar-gap\"\n className={cn(\n \"relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 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 data-slot=\"sidebar-container\"\n data-side={side}\n className={cn(\n \"fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear data-[side=left]:left-0 data-[side=left]:group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)] data-[side=right]:right-0 data-[side=right]:group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)] md:flex\",\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-e group-data-[side=right]:border-s\",\n className\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar-inner\"\n className=\"flex size-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-sm\"\n >\n {children}\n </div>\n </div>\n </div>\n )\n}\n\nfunction SidebarTrigger({\n className,\n onClick,\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { toggleSidebar } = useSidebar()\n const { t } = useTranslation()\n\n return (\n <Button\n data-sidebar=\"trigger\"\n data-slot=\"sidebar-trigger\"\n variant=\"ghost\"\n size=\"icon-sm\"\n className={cn(className)}\n onClick={(event) => {\n onClick?.(event)\n toggleSidebar()\n }}\n {...props}\n >\n <PanelLeftIcon className=\"rtl:rotate-180\" />\n <span className=\"sr-only\">{t(\"neetoatoms.sidebar.toggleSidebar\", \"Toggle Sidebar\")}</span>\n </Button>\n )\n}\n\nfunction SidebarRail({ className, ...props }: React.ComponentProps<\"button\">) {\n const { toggleSidebar } = useSidebar()\n const { t } = useTranslation()\n\n return (\n <button\n data-sidebar=\"rail\"\n data-slot=\"sidebar-rail\"\n aria-label={t(\"neetoatoms.sidebar.toggleSidebar\", \"Toggle Sidebar\")}\n tabIndex={-1}\n onClick={toggleSidebar}\n title={t(\"neetoatoms.sidebar.toggleSidebar\", \"Toggle Sidebar\")}\n className={cn(\n \"cn-sidebar-rail absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:start-1/2 after:w-[2px] hover:after:bg-sidebar-border sm:flex\",\n \"in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize\",\n \"rtl:in-data-[side=left]:cursor-e-resize rtl:in-data-[side=right]:cursor-w-resize\",\n \"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize\",\n \"rtl:[[data-side=left][data-state=collapsed]_&]:cursor-w-resize rtl:[[data-side=right][data-state=collapsed]_&]:cursor-e-resize\",\n \"group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:start-full hover:group-data-[collapsible=offcanvas]:bg-sidebar\",\n \"[[data-side=left][data-collapsible=offcanvas]_&]:-right-2\",\n \"[[data-side=right][data-collapsible=offcanvas]_&]:-left-2\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarInset({ className, ...props }: React.ComponentProps<\"main\">) {\n return (\n <main\n data-slot=\"sidebar-inset\"\n className={cn(\n \"relative flex w-full flex-1 flex-col bg-background md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ms-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ms-2\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarInput({\n className,\n ...props\n}: React.ComponentProps<typeof Input>) {\n return (\n <Input\n data-slot=\"sidebar-input\"\n data-sidebar=\"input\"\n className={cn(\"h-8 w-full bg-background shadow-none\", className)}\n {...props}\n />\n )\n}\n\nfunction SidebarHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-header\"\n data-sidebar=\"header\"\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n {...props}\n />\n )\n}\n\nfunction SidebarFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-footer\"\n data-sidebar=\"footer\"\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n {...props}\n />\n )\n}\n\nfunction SidebarSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"sidebar-separator\"\n data-sidebar=\"separator\"\n className={cn(\"mx-2 w-auto bg-sidebar-border\", className)}\n {...props}\n />\n )\n}\n\nfunction SidebarContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-content\"\n data-sidebar=\"content\"\n className={cn(\n \"no-scrollbar flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-group\"\n data-sidebar=\"group\"\n className={cn(\"relative flex w-full min-w-0 flex-col p-2\", className)}\n {...props}\n />\n )\n}\n\nfunction SidebarGroupLabel({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<\"div\"> & { asChild?: boolean }) {\n const Comp = asChild ? Slot.Root : \"div\"\n\n return (\n <Comp\n data-slot=\"sidebar-group-label\"\n data-sidebar=\"group-label\"\n className={cn(\n \"flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 ring-sidebar-ring outline-hidden transition-[margin,opacity] duration-200 ease-linear group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0 focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarGroupAction({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> & { asChild?: boolean }) {\n const Comp = asChild ? Slot.Root : \"button\"\n\n return (\n <Comp\n data-slot=\"sidebar-group-action\"\n data-sidebar=\"group-action\"\n className={cn(\n \"absolute top-3.5 end-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground ring-sidebar-ring outline-hidden transition-transform group-data-[collapsible=icon]:hidden after:absolute after:-inset-2 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 md:after:hidden [&>svg]:size-4 [&>svg]:shrink-0\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarGroupContent({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-group-content\"\n data-sidebar=\"group-content\"\n className={cn(\"w-full text-sm\", className)}\n {...props}\n />\n )\n}\n\nfunction SidebarMenu({ className, ...props }: React.ComponentProps<\"ul\">) {\n return (\n <ul\n data-slot=\"sidebar-menu\"\n data-sidebar=\"menu\"\n className={cn(\"flex w-full min-w-0 flex-col gap-1\", className)}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuItem({ className, ...props }: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"sidebar-menu-item\"\n data-sidebar=\"menu-item\"\n className={cn(\"group/menu-item relative\", className)}\n {...props}\n />\n )\n}\n\nconst sidebarMenuButtonVariants = cva(\n \"peer/menu-button group/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-start text-sm ring-sidebar-ring outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pe-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! 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 data-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:font-medium data-active:text-sidebar-accent-foreground [&_svg]:size-4 [&_svg]:shrink-0 [&>span:last-child]:truncate\",\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\nfunction SidebarMenuButton({\n asChild = false,\n isActive = false,\n variant = \"default\",\n size = \"default\",\n tooltip,\n className,\n ...props\n}: React.ComponentProps<\"button\"> & {\n asChild?: boolean\n isActive?: boolean\n tooltip?: string | React.ComponentProps<typeof TooltipContent>\n} & VariantProps<typeof sidebarMenuButtonVariants>) {\n const Comp = asChild ? Slot.Root : \"button\"\n const { isMobile, state } = useSidebar()\n\n const button = (\n <Comp\n data-slot=\"sidebar-menu-button\"\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\nfunction SidebarMenuAction({\n className,\n asChild = false,\n showOnHover = false,\n ...props\n}: React.ComponentProps<\"button\"> & {\n asChild?: boolean\n showOnHover?: boolean\n}) {\n const Comp = asChild ? Slot.Root : \"button\"\n\n return (\n <Comp\n data-slot=\"sidebar-menu-action\"\n data-sidebar=\"menu-action\"\n className={cn(\n \"absolute top-1.5 end-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground ring-sidebar-ring outline-hidden transition-transform group-data-[collapsible=icon]:hidden peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 after:absolute after:-inset-2 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 md:after:hidden [&>svg]:size-4 [&>svg]:shrink-0\",\n showOnHover &&\n \"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 peer-data-active/menu-button:text-sidebar-accent-foreground aria-expanded:opacity-100 md:opacity-0\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuBadge({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-menu-badge\"\n data-sidebar=\"menu-badge\"\n className={cn(\n \"pointer-events-none absolute end-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium text-sidebar-foreground tabular-nums select-none group-data-[collapsible=icon]:hidden peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 peer-data-active/menu-button:text-sidebar-accent-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuSkeleton({\n className,\n showIcon = false,\n ...props\n}: React.ComponentProps<\"div\"> & {\n showIcon?: boolean\n}) {\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 data-slot=\"sidebar-menu-skeleton\"\n data-sidebar=\"menu-skeleton\"\n className={cn(\"flex h-8 items-center gap-2 rounded-md px-2\", 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 max-w-(--skeleton-width) flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n \"--skeleton-width\": width,\n } as React.CSSProperties\n }\n />\n </div>\n )\n}\n\nfunction SidebarMenuSub({ className, ...props }: React.ComponentProps<\"ul\">) {\n return (\n <ul\n data-slot=\"sidebar-menu-sub\"\n data-sidebar=\"menu-sub\"\n className={cn(\n \"mx-3.5 flex min-w-0 translate-x-px rtl:-translate-x-px flex-col gap-1 border-s border-sidebar-border px-2.5 py-0.5 group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuSubItem({\n className,\n ...props\n}: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"sidebar-menu-sub-item\"\n data-sidebar=\"menu-sub-item\"\n className={cn(\"group/menu-sub-item relative\", className)}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuSubButton({\n asChild = false,\n size = \"md\",\n isActive = false,\n className,\n ...props\n}: React.ComponentProps<\"a\"> & {\n asChild?: boolean\n size?: \"sm\" | \"md\"\n isActive?: boolean\n}) {\n const Comp = asChild ? Slot.Root : \"a\"\n\n return (\n <Comp\n data-slot=\"sidebar-menu-sub-button\"\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 rtl:translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground ring-sidebar-ring outline-hidden group-data-[collapsible=icon]:hidden 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 data-[size=md]:text-sm data-[size=sm]:text-xs data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n}\n","import type React from \"react\";\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n Sidebar as ShadcnSidebar,\n SidebarContent as ShadcnSidebarContent,\n SidebarFooter as ShadcnSidebarFooter,\n SidebarGroup as ShadcnSidebarGroup,\n SidebarGroupAction as ShadcnSidebarGroupAction,\n SidebarGroupContent as ShadcnSidebarGroupContent,\n SidebarGroupLabel as ShadcnSidebarGroupLabel,\n SidebarHeader as ShadcnSidebarHeader,\n SidebarInput as ShadcnSidebarInput,\n SidebarInset as ShadcnSidebarInset,\n SidebarMenu as ShadcnSidebarMenu,\n SidebarMenuAction as ShadcnSidebarMenuAction,\n SidebarMenuBadge as ShadcnSidebarMenuBadge,\n SidebarMenuButton as ShadcnSidebarMenuButton,\n SidebarMenuItem as ShadcnSidebarMenuItem,\n SidebarMenuSkeleton as ShadcnSidebarMenuSkeleton,\n SidebarMenuSub as ShadcnSidebarMenuSub,\n SidebarMenuSubButton as ShadcnSidebarMenuSubButton,\n SidebarMenuSubItem as ShadcnSidebarMenuSubItem,\n SidebarProvider as ShadcnSidebarProvider,\n SidebarRail as ShadcnSidebarRail,\n SidebarSeparator as ShadcnSidebarSeparator,\n SidebarTrigger as ShadcnSidebarTrigger,\n useSidebar,\n} from \"src/shadcn/components/sidebar\";\n\nconst Sidebar = ({\n className,\n ...props\n}: React.ComponentProps<typeof ShadcnSidebar>) => (\n <ShadcnSidebar className={cn(\"border-border\", className)} {...props} />\n);\n\nconst SidebarContent = (\n props: React.ComponentProps<typeof ShadcnSidebarContent>\n) => <ShadcnSidebarContent {...props} />;\n\nconst SidebarFooter = (\n props: React.ComponentProps<typeof ShadcnSidebarFooter>\n) => <ShadcnSidebarFooter {...props} />;\n\nconst SidebarGroup = (\n props: React.ComponentProps<typeof ShadcnSidebarGroup>\n) => <ShadcnSidebarGroup {...props} />;\n\nconst SidebarGroupAction = ({\n className,\n ...props\n}: React.ComponentProps<typeof ShadcnSidebarGroupAction>) => (\n <ShadcnSidebarGroupAction\n className={cn(\n \"cursor-pointer disabled:cursor-not-allowed aria-disabled:cursor-not-allowed\",\n className\n )}\n {...props}\n />\n);\n\nconst SidebarGroupContent = (\n props: React.ComponentProps<typeof ShadcnSidebarGroupContent>\n) => <ShadcnSidebarGroupContent {...props} />;\n\nconst SidebarGroupLabel = (\n props: React.ComponentProps<typeof ShadcnSidebarGroupLabel>\n) => <ShadcnSidebarGroupLabel {...props} />;\n\nconst SidebarHeader = (\n props: React.ComponentProps<typeof ShadcnSidebarHeader>\n) => <ShadcnSidebarHeader {...props} />;\n\nconst SidebarInput = (\n props: React.ComponentProps<typeof ShadcnSidebarInput>\n) => <ShadcnSidebarInput {...props} />;\n\nconst SidebarInset = (\n props: React.ComponentProps<typeof ShadcnSidebarInset>\n) => <ShadcnSidebarInset {...props} />;\n\nconst SidebarMenu = (props: React.ComponentProps<typeof ShadcnSidebarMenu>) => (\n <ShadcnSidebarMenu {...props} />\n);\n\nconst SidebarMenuAction = ({\n className,\n ...props\n}: React.ComponentProps<typeof ShadcnSidebarMenuAction>) => (\n <ShadcnSidebarMenuAction\n className={cn(\n \"cursor-pointer disabled:cursor-not-allowed aria-disabled:cursor-not-allowed\",\n className\n )}\n {...props}\n />\n);\n\nconst SidebarMenuBadge = (\n props: React.ComponentProps<typeof ShadcnSidebarMenuBadge>\n) => <ShadcnSidebarMenuBadge {...props} />;\n\nconst SidebarMenuButton = ({\n className,\n ...props\n}: React.ComponentProps<typeof ShadcnSidebarMenuButton>) => (\n <ShadcnSidebarMenuButton\n className={cn(\n \"cursor-pointer disabled:cursor-not-allowed aria-disabled:cursor-not-allowed\",\n className\n )}\n {...props}\n />\n);\n\nconst SidebarMenuItem = (\n props: React.ComponentProps<typeof ShadcnSidebarMenuItem>\n) => <ShadcnSidebarMenuItem {...props} />;\n\nconst SidebarMenuSkeleton = (\n props: React.ComponentProps<typeof ShadcnSidebarMenuSkeleton>\n) => <ShadcnSidebarMenuSkeleton {...props} />;\n\nconst SidebarMenuSub = ({\n className,\n ...props\n}: React.ComponentProps<typeof ShadcnSidebarMenuSub>) => (\n // The shadcn base applies a symmetric `mx-3.5`; drop the inline-end margin so\n // sub-menu items get ~14px more width. `!me-0` (margin-inline-end: 0\n // !important) is logical, so RTL-safe, and its !important reliably beats the\n // physical `mx-*` (which twMerge can't dedupe against a logical class). Kept in\n // the primitive layer so it survives shadcn CLI regeneration.\n <ShadcnSidebarMenuSub className={cn(\"!me-0\", className)} {...props} />\n);\n\nconst SidebarMenuSubButton = ({\n className,\n ...props\n}: React.ComponentProps<typeof ShadcnSidebarMenuSubButton>) => (\n <ShadcnSidebarMenuSubButton\n className={cn(\n \"cursor-pointer disabled:cursor-not-allowed aria-disabled:cursor-not-allowed\",\n className\n )}\n {...props}\n />\n);\n\nconst SidebarMenuSubItem = (\n props: React.ComponentProps<typeof ShadcnSidebarMenuSubItem>\n) => <ShadcnSidebarMenuSubItem {...props} />;\n\nconst SidebarProvider = (\n props: React.ComponentProps<typeof ShadcnSidebarProvider>\n) => <ShadcnSidebarProvider {...props} />;\n\nconst SidebarRail = (props: React.ComponentProps<typeof ShadcnSidebarRail>) => (\n <ShadcnSidebarRail {...props} />\n);\n\nconst SidebarSeparator = (\n props: React.ComponentProps<typeof ShadcnSidebarSeparator>\n) => <ShadcnSidebarSeparator {...props} />;\n\nconst SidebarTrigger = ({\n className,\n ...props\n}: React.ComponentProps<typeof ShadcnSidebarTrigger>) => (\n <ShadcnSidebarTrigger\n className={cn(\"cursor-pointer disabled:cursor-not-allowed\", className)}\n {...props}\n />\n);\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":["SidebarProvider","open","Sidebar","SidebarTrigger","PanelLeftIcon","SidebarRail","SidebarInset","SidebarInput","SidebarHeader","SidebarFooter","SidebarSeparator","SidebarContent","SidebarGroup","SidebarGroupLabel","Slot.Root","SidebarGroupAction","SidebarGroupContent","SidebarMenu","SidebarMenuItem","SidebarMenuButton","SidebarMenuAction","SidebarMenuBadge","SidebarMenuSkeleton","SidebarMenuSub","SidebarMenuSubItem","SidebarMenuSubButton","ShadcnSidebar","ShadcnSidebarContent","ShadcnSidebarFooter","ShadcnSidebarGroup","ShadcnSidebarGroupAction","ShadcnSidebarGroupContent","ShadcnSidebarGroupLabel","ShadcnSidebarHeader","ShadcnSidebarInput","ShadcnSidebarInset","ShadcnSidebarMenu","ShadcnSidebarMenuAction","ShadcnSidebarMenuBadge","ShadcnSidebarMenuButton","ShadcnSidebarMenuItem","ShadcnSidebarMenuSkeleton","ShadcnSidebarMenuSub","ShadcnSidebarMenuSubButton","ShadcnSidebarMenuSubItem","ShadcnSidebarProvider","ShadcnSidebarRail","ShadcnSidebarSeparator","ShadcnSidebarTrigger"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"Sidebar.js","sources":["../../node_modules/lucide-react/dist/esm/icons/panel-left.js","../../src/shadcn/components/sidebar.tsx","../../src/primitives/Sidebar.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.577.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"3\", rx: \"2\", key: \"afitv7\" }],\n [\"path\", { d: \"M9 3v18\", key: \"fh3hqa\" }]\n];\nconst PanelLeft = createLucideIcon(\"panel-left\", __iconNode);\n\nexport { __iconNode, PanelLeft as default };\n//# sourceMappingURL=panel-left.js.map\n","\"use client\"\n\nimport * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { Slot } from \"radix-ui\"\n\nimport { useIsMobile } from \"src/shadcn/hooks/use-mobile\"\nimport { cn } from \"src/shadcn/lib/utils\"\nimport { Button } from \"src/shadcn/components/button\"\nimport { Input } from \"src/shadcn/components/input\"\nimport { Separator } from \"src/shadcn/components/separator\"\nimport {\n Sheet,\n SheetContent,\n SheetDescription,\n SheetHeader,\n SheetTitle,\n} from \"src/shadcn/components/sheet\"\nimport { Skeleton } from \"src/shadcn/components/skeleton\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"src/shadcn/components/tooltip\"\nimport { useTranslation } from \"react-i18next\"\nimport { PanelLeftIcon } from \"lucide-react\"\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\"\n\ntype SidebarContextProps = {\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<SidebarContextProps | 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\nfunction SidebarProvider({\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & {\n defaultOpen?: boolean\n open?: boolean\n onOpenChange?: (open: boolean) => void\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 const openState = typeof value === \"function\" ? value(open) : value\n if (setOpenProp) {\n setOpenProp(openState)\n } else {\n _setOpen(openState)\n }\n\n // This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; 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 ? setOpenMobile((open) => !open) : setOpen((open) => !open)\n }, [isMobile, setOpen, setOpenMobile])\n\n // The upstream cmd/ctrl+b shortcut to toggle the sidebar is intentionally\n // omitted: it conflicts with bold in rich text editors across products.\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<SidebarContextProps>(\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 data-slot=\"sidebar-wrapper\"\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH,\n \"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n className={cn(\n \"group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar\",\n className\n )}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n )\n}\n\nfunction Sidebar({\n side = \"left\",\n variant = \"sidebar\",\n collapsible = \"offcanvas\",\n className,\n children,\n dir,\n ...props\n}: React.ComponentProps<\"div\"> & {\n side?: \"left\" | \"right\"\n variant?: \"sidebar\" | \"floating\" | \"inset\"\n collapsible?: \"offcanvas\" | \"icon\" | \"none\"\n}) {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar()\n const { t } = useTranslation()\n\n if (collapsible === \"none\") {\n return (\n <div\n data-slot=\"sidebar\"\n className={cn(\n \"flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground\",\n className\n )}\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 dir={dir}\n data-sidebar=\"sidebar\"\n data-slot=\"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 <SheetHeader className=\"sr-only\">\n <SheetTitle>{t(\"neetoatoms.sidebar.title\", \"Sidebar\")}</SheetTitle>\n <SheetDescription>{t(\"neetoatoms.sidebar.description\", \"Displays the mobile sidebar.\")}</SheetDescription>\n </SheetHeader>\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n )\n }\n\n return (\n <div\n className=\"group peer hidden text-sidebar-foreground md:block\"\n data-state={state}\n data-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n data-variant={variant}\n data-side={side}\n data-slot=\"sidebar\"\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n data-slot=\"sidebar-gap\"\n className={cn(\n \"relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 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 data-slot=\"sidebar-container\"\n data-side={side}\n className={cn(\n \"fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear data-[side=left]:left-0 data-[side=left]:group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)] data-[side=right]:right-0 data-[side=right]:group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)] md:flex\",\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-e group-data-[side=right]:border-s\",\n className\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar-inner\"\n className=\"flex size-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-sm\"\n >\n {children}\n </div>\n </div>\n </div>\n )\n}\n\nfunction SidebarTrigger({\n className,\n onClick,\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { toggleSidebar } = useSidebar()\n const { t } = useTranslation()\n\n return (\n <Button\n data-sidebar=\"trigger\"\n data-slot=\"sidebar-trigger\"\n variant=\"ghost\"\n size=\"icon-sm\"\n className={cn(className)}\n onClick={(event) => {\n onClick?.(event)\n toggleSidebar()\n }}\n {...props}\n >\n <PanelLeftIcon className=\"rtl:rotate-180\" />\n <span className=\"sr-only\">{t(\"neetoatoms.sidebar.toggleSidebar\", \"Toggle Sidebar\")}</span>\n </Button>\n )\n}\n\nfunction SidebarRail({ className, ...props }: React.ComponentProps<\"button\">) {\n const { toggleSidebar } = useSidebar()\n const { t } = useTranslation()\n\n return (\n <button\n data-sidebar=\"rail\"\n data-slot=\"sidebar-rail\"\n aria-label={t(\"neetoatoms.sidebar.toggleSidebar\", \"Toggle Sidebar\")}\n tabIndex={-1}\n onClick={toggleSidebar}\n title={t(\"neetoatoms.sidebar.toggleSidebar\", \"Toggle Sidebar\")}\n className={cn(\n \"cn-sidebar-rail absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:start-1/2 after:w-[2px] hover:after:bg-sidebar-border sm:flex\",\n \"in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize\",\n \"rtl:in-data-[side=left]:cursor-e-resize rtl:in-data-[side=right]:cursor-w-resize\",\n \"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize\",\n \"rtl:[[data-side=left][data-state=collapsed]_&]:cursor-w-resize rtl:[[data-side=right][data-state=collapsed]_&]:cursor-e-resize\",\n \"group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:start-full hover:group-data-[collapsible=offcanvas]:bg-sidebar\",\n \"[[data-side=left][data-collapsible=offcanvas]_&]:-right-2\",\n \"[[data-side=right][data-collapsible=offcanvas]_&]:-left-2\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarInset({ className, ...props }: React.ComponentProps<\"main\">) {\n return (\n <main\n data-slot=\"sidebar-inset\"\n className={cn(\n \"relative flex w-full flex-1 flex-col bg-background md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ms-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ms-2\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarInput({\n className,\n ...props\n}: React.ComponentProps<typeof Input>) {\n return (\n <Input\n data-slot=\"sidebar-input\"\n data-sidebar=\"input\"\n className={cn(\"h-8 w-full bg-background shadow-none\", className)}\n {...props}\n />\n )\n}\n\nfunction SidebarHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-header\"\n data-sidebar=\"header\"\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n {...props}\n />\n )\n}\n\nfunction SidebarFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-footer\"\n data-sidebar=\"footer\"\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n {...props}\n />\n )\n}\n\nfunction SidebarSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"sidebar-separator\"\n data-sidebar=\"separator\"\n className={cn(\"mx-2 w-auto bg-sidebar-border\", className)}\n {...props}\n />\n )\n}\n\nfunction SidebarContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-content\"\n data-sidebar=\"content\"\n className={cn(\n \"no-scrollbar flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-group\"\n data-sidebar=\"group\"\n className={cn(\"relative flex w-full min-w-0 flex-col p-2\", className)}\n {...props}\n />\n )\n}\n\nfunction SidebarGroupLabel({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<\"div\"> & { asChild?: boolean }) {\n const Comp = asChild ? Slot.Root : \"div\"\n\n return (\n <Comp\n data-slot=\"sidebar-group-label\"\n data-sidebar=\"group-label\"\n className={cn(\n \"flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 ring-sidebar-ring outline-hidden transition-[margin,opacity] duration-200 ease-linear group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0 focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarGroupAction({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> & { asChild?: boolean }) {\n const Comp = asChild ? Slot.Root : \"button\"\n\n return (\n <Comp\n data-slot=\"sidebar-group-action\"\n data-sidebar=\"group-action\"\n className={cn(\n \"absolute top-3.5 end-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground ring-sidebar-ring outline-hidden transition-transform group-data-[collapsible=icon]:hidden after:absolute after:-inset-2 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 md:after:hidden [&>svg]:size-4 [&>svg]:shrink-0\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarGroupContent({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-group-content\"\n data-sidebar=\"group-content\"\n className={cn(\"w-full text-sm\", className)}\n {...props}\n />\n )\n}\n\nfunction SidebarMenu({ className, ...props }: React.ComponentProps<\"ul\">) {\n return (\n <ul\n data-slot=\"sidebar-menu\"\n data-sidebar=\"menu\"\n className={cn(\"flex w-full min-w-0 flex-col gap-1\", className)}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuItem({ className, ...props }: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"sidebar-menu-item\"\n data-sidebar=\"menu-item\"\n className={cn(\"group/menu-item relative\", className)}\n {...props}\n />\n )\n}\n\nconst sidebarMenuButtonVariants = cva(\n \"peer/menu-button group/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-start text-sm ring-sidebar-ring outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pe-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! 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 data-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:font-medium data-active:text-sidebar-accent-foreground [&_svg]:size-4 [&_svg]:shrink-0 [&>span:last-child]:truncate\",\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\nfunction SidebarMenuButton({\n asChild = false,\n isActive = false,\n variant = \"default\",\n size = \"default\",\n tooltip,\n className,\n ...props\n}: React.ComponentProps<\"button\"> & {\n asChild?: boolean\n isActive?: boolean\n tooltip?: string | React.ComponentProps<typeof TooltipContent>\n} & VariantProps<typeof sidebarMenuButtonVariants>) {\n const Comp = asChild ? Slot.Root : \"button\"\n const { isMobile, state } = useSidebar()\n\n const button = (\n <Comp\n data-slot=\"sidebar-menu-button\"\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\nfunction SidebarMenuAction({\n className,\n asChild = false,\n showOnHover = false,\n ...props\n}: React.ComponentProps<\"button\"> & {\n asChild?: boolean\n showOnHover?: boolean\n}) {\n const Comp = asChild ? Slot.Root : \"button\"\n\n return (\n <Comp\n data-slot=\"sidebar-menu-action\"\n data-sidebar=\"menu-action\"\n className={cn(\n \"absolute top-1.5 end-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground ring-sidebar-ring outline-hidden transition-transform group-data-[collapsible=icon]:hidden peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 after:absolute after:-inset-2 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 md:after:hidden [&>svg]:size-4 [&>svg]:shrink-0\",\n showOnHover &&\n \"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 peer-data-active/menu-button:text-sidebar-accent-foreground aria-expanded:opacity-100 md:opacity-0\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuBadge({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-menu-badge\"\n data-sidebar=\"menu-badge\"\n className={cn(\n \"pointer-events-none absolute end-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium text-sidebar-foreground tabular-nums select-none group-data-[collapsible=icon]:hidden peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 peer-data-active/menu-button:text-sidebar-accent-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuSkeleton({\n className,\n showIcon = false,\n ...props\n}: React.ComponentProps<\"div\"> & {\n showIcon?: boolean\n}) {\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 data-slot=\"sidebar-menu-skeleton\"\n data-sidebar=\"menu-skeleton\"\n className={cn(\"flex h-8 items-center gap-2 rounded-md px-2\", 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 max-w-(--skeleton-width) flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n \"--skeleton-width\": width,\n } as React.CSSProperties\n }\n />\n </div>\n )\n}\n\nfunction SidebarMenuSub({ className, ...props }: React.ComponentProps<\"ul\">) {\n return (\n <ul\n data-slot=\"sidebar-menu-sub\"\n data-sidebar=\"menu-sub\"\n className={cn(\n \"mx-3.5 flex min-w-0 translate-x-px rtl:-translate-x-px flex-col gap-1 border-s border-sidebar-border px-2.5 py-0.5 group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuSubItem({\n className,\n ...props\n}: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"sidebar-menu-sub-item\"\n data-sidebar=\"menu-sub-item\"\n className={cn(\"group/menu-sub-item relative\", className)}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuSubButton({\n asChild = false,\n size = \"md\",\n isActive = false,\n className,\n ...props\n}: React.ComponentProps<\"a\"> & {\n asChild?: boolean\n size?: \"sm\" | \"md\"\n isActive?: boolean\n}) {\n const Comp = asChild ? Slot.Root : \"a\"\n\n return (\n <Comp\n data-slot=\"sidebar-menu-sub-button\"\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 rtl:translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground ring-sidebar-ring outline-hidden group-data-[collapsible=icon]:hidden 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 data-[size=md]:text-sm data-[size=sm]:text-xs data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n}\n","import type React from \"react\";\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n Sidebar as ShadcnSidebar,\n SidebarContent as ShadcnSidebarContent,\n SidebarFooter as ShadcnSidebarFooter,\n SidebarGroup as ShadcnSidebarGroup,\n SidebarGroupAction as ShadcnSidebarGroupAction,\n SidebarGroupContent as ShadcnSidebarGroupContent,\n SidebarGroupLabel as ShadcnSidebarGroupLabel,\n SidebarHeader as ShadcnSidebarHeader,\n SidebarInput as ShadcnSidebarInput,\n SidebarInset as ShadcnSidebarInset,\n SidebarMenu as ShadcnSidebarMenu,\n SidebarMenuAction as ShadcnSidebarMenuAction,\n SidebarMenuBadge as ShadcnSidebarMenuBadge,\n SidebarMenuButton as ShadcnSidebarMenuButton,\n SidebarMenuItem as ShadcnSidebarMenuItem,\n SidebarMenuSkeleton as ShadcnSidebarMenuSkeleton,\n SidebarMenuSub as ShadcnSidebarMenuSub,\n SidebarMenuSubButton as ShadcnSidebarMenuSubButton,\n SidebarMenuSubItem as ShadcnSidebarMenuSubItem,\n SidebarProvider as ShadcnSidebarProvider,\n SidebarRail as ShadcnSidebarRail,\n SidebarSeparator as ShadcnSidebarSeparator,\n SidebarTrigger as ShadcnSidebarTrigger,\n useSidebar,\n} from \"src/shadcn/components/sidebar\";\n\nconst Sidebar = ({\n className,\n ...props\n}: React.ComponentProps<typeof ShadcnSidebar>) => (\n <ShadcnSidebar className={cn(\"border-border\", className)} {...props} />\n);\n\nconst SidebarContent = (\n props: React.ComponentProps<typeof ShadcnSidebarContent>\n) => <ShadcnSidebarContent {...props} />;\n\nconst SidebarFooter = (\n props: React.ComponentProps<typeof ShadcnSidebarFooter>\n) => <ShadcnSidebarFooter {...props} />;\n\nconst SidebarGroup = (\n props: React.ComponentProps<typeof ShadcnSidebarGroup>\n) => <ShadcnSidebarGroup {...props} />;\n\nconst SidebarGroupAction = ({\n className,\n ...props\n}: React.ComponentProps<typeof ShadcnSidebarGroupAction>) => (\n <ShadcnSidebarGroupAction\n className={cn(\n \"cursor-pointer disabled:cursor-not-allowed aria-disabled:cursor-not-allowed\",\n className\n )}\n {...props}\n />\n);\n\nconst SidebarGroupContent = (\n props: React.ComponentProps<typeof ShadcnSidebarGroupContent>\n) => <ShadcnSidebarGroupContent {...props} />;\n\nconst SidebarGroupLabel = (\n props: React.ComponentProps<typeof ShadcnSidebarGroupLabel>\n) => <ShadcnSidebarGroupLabel {...props} />;\n\nconst SidebarHeader = (\n props: React.ComponentProps<typeof ShadcnSidebarHeader>\n) => <ShadcnSidebarHeader {...props} />;\n\nconst SidebarInput = (\n props: React.ComponentProps<typeof ShadcnSidebarInput>\n) => <ShadcnSidebarInput {...props} />;\n\nconst SidebarInset = (\n props: React.ComponentProps<typeof ShadcnSidebarInset>\n) => <ShadcnSidebarInset {...props} />;\n\nconst SidebarMenu = (props: React.ComponentProps<typeof ShadcnSidebarMenu>) => (\n <ShadcnSidebarMenu {...props} />\n);\n\nconst SidebarMenuAction = ({\n className,\n ...props\n}: React.ComponentProps<typeof ShadcnSidebarMenuAction>) => (\n <ShadcnSidebarMenuAction\n className={cn(\n \"cursor-pointer disabled:cursor-not-allowed aria-disabled:cursor-not-allowed\",\n className\n )}\n {...props}\n />\n);\n\nconst SidebarMenuBadge = (\n props: React.ComponentProps<typeof ShadcnSidebarMenuBadge>\n) => <ShadcnSidebarMenuBadge {...props} />;\n\nconst SidebarMenuButton = ({\n className,\n ...props\n}: React.ComponentProps<typeof ShadcnSidebarMenuButton>) => (\n <ShadcnSidebarMenuButton\n className={cn(\n \"cursor-pointer disabled:cursor-not-allowed aria-disabled:cursor-not-allowed\",\n className\n )}\n {...props}\n />\n);\n\nconst SidebarMenuItem = (\n props: React.ComponentProps<typeof ShadcnSidebarMenuItem>\n) => <ShadcnSidebarMenuItem {...props} />;\n\nconst SidebarMenuSkeleton = (\n props: React.ComponentProps<typeof ShadcnSidebarMenuSkeleton>\n) => <ShadcnSidebarMenuSkeleton {...props} />;\n\nconst SidebarMenuSub = ({\n className,\n ...props\n}: React.ComponentProps<typeof ShadcnSidebarMenuSub>) => (\n // The shadcn base applies a symmetric `mx-3.5`; drop the inline-end margin so\n // sub-menu items get ~14px more width. `!me-0` (margin-inline-end: 0\n // !important) is logical, so RTL-safe, and its !important reliably beats the\n // physical `mx-*` (which twMerge can't dedupe against a logical class). Kept in\n // the primitive layer so it survives shadcn CLI regeneration.\n <ShadcnSidebarMenuSub className={cn(\"!me-0\", className)} {...props} />\n);\n\nconst SidebarMenuSubButton = ({\n className,\n ...props\n}: React.ComponentProps<typeof ShadcnSidebarMenuSubButton>) => (\n <ShadcnSidebarMenuSubButton\n className={cn(\n \"cursor-pointer disabled:cursor-not-allowed aria-disabled:cursor-not-allowed\",\n className\n )}\n {...props}\n />\n);\n\nconst SidebarMenuSubItem = (\n props: React.ComponentProps<typeof ShadcnSidebarMenuSubItem>\n) => <ShadcnSidebarMenuSubItem {...props} />;\n\nconst SidebarProvider = (\n props: React.ComponentProps<typeof ShadcnSidebarProvider>\n) => <ShadcnSidebarProvider {...props} />;\n\nconst SidebarRail = (props: React.ComponentProps<typeof ShadcnSidebarRail>) => (\n <ShadcnSidebarRail {...props} />\n);\n\nconst SidebarSeparator = (\n props: React.ComponentProps<typeof ShadcnSidebarSeparator>\n) => <ShadcnSidebarSeparator {...props} />;\n\nconst SidebarTrigger = ({\n className,\n ...props\n}: React.ComponentProps<typeof ShadcnSidebarTrigger>) => (\n <ShadcnSidebarTrigger\n className={cn(\"cursor-pointer disabled:cursor-not-allowed\", className)}\n {...props}\n />\n);\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":["SidebarProvider","open","Sidebar","SidebarTrigger","PanelLeftIcon","SidebarRail","SidebarInset","SidebarInput","SidebarHeader","SidebarFooter","SidebarSeparator","SidebarContent","SidebarGroup","SidebarGroupLabel","Slot.Root","SidebarGroupAction","SidebarGroupContent","SidebarMenu","SidebarMenuItem","SidebarMenuButton","SidebarMenuAction","SidebarMenuBadge","SidebarMenuSkeleton","SidebarMenuSub","SidebarMenuSubItem","SidebarMenuSubButton","ShadcnSidebar","ShadcnSidebarContent","ShadcnSidebarFooter","ShadcnSidebarGroup","ShadcnSidebarGroupAction","ShadcnSidebarGroupContent","ShadcnSidebarGroupLabel","ShadcnSidebarHeader","ShadcnSidebarInput","ShadcnSidebarInset","ShadcnSidebarMenu","ShadcnSidebarMenuAction","ShadcnSidebarMenuBadge","ShadcnSidebarMenuButton","ShadcnSidebarMenuItem","ShadcnSidebarMenuSkeleton","ShadcnSidebarMenuSub","ShadcnSidebarMenuSubButton","ShadcnSidebarMenuSubItem","ShadcnSidebarProvider","ShadcnSidebarRail","ShadcnSidebarSeparator","ShadcnSidebarTrigger"],"mappings":"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","x_google_ignoreList":[0]}
|
package/dist/primitives/index.js
CHANGED
|
@@ -103,11 +103,11 @@ import '../dialog-CqXuhXNS.js';
|
|
|
103
103
|
import '../index-BQtGUR27.js';
|
|
104
104
|
import '../index-XvwNqU74.js';
|
|
105
105
|
import '../index-DT56XkyA.js';
|
|
106
|
-
import '../HelpIcon-
|
|
106
|
+
import '../HelpIcon-CbnRiSjn.js';
|
|
107
107
|
import '../renderIcon-C6twJSqH.js';
|
|
108
|
-
import '../Popover-
|
|
108
|
+
import '../Popover-BHGvcdV2.js';
|
|
109
109
|
import '../Typography-CmILccNh.js';
|
|
110
|
-
import '../Button-
|
|
110
|
+
import '../Button-C4c_dj-f.js';
|
|
111
111
|
import 'react-router-dom';
|
|
112
112
|
import '../label-YEsizr2c.js';
|
|
113
113
|
import '../index-CSggBaQF.js';
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Avatar-DxRDQDjh.js","sources":["../src/components/Avatar/constants.ts","../src/components/Avatar/utils.ts","../src/components/Avatar/Avatar.tsx"],"sourcesContent":["export const STATUS_COLOR_MAP: Record<string, string> = {\n online: \"bg-emerald-500 dark:bg-emerald-400\",\n idle: \"bg-amber-500 dark:bg-amber-400\",\n offline: \"bg-gray-400 dark:bg-gray-500\",\n};\n\nexport const SIDE_MAP: Record<string, \"top\" | \"right\" | \"bottom\" | \"left\"> = {\n top: \"top\",\n bottom: \"bottom\",\n left: \"left\",\n right: \"right\",\n auto: \"bottom\",\n};\n\nexport const XL_CLASSES =\n \"data-[size=lg]:size-16 [&>[data-slot=avatar-badge]]:size-4 [&>[data-slot=avatar-fallback]]:text-lg\";\n","import type { CSSProperties } from \"react\";\n\nexport function getInitials(name?: string): string {\n if (!name) return \"\";\n\n return name\n .split(/\\s+/)\n .slice(0, 2)\n .map(word => word.charAt(0).toUpperCase())\n .join(\"\");\n}\n\nfunction cyrb53(str: string, seed = 0): number {\n let h1 = 0xdeadbeef ^ seed;\n let h2 = 0x41c6ce57 ^ seed;\n for (let i = 0; i < str.length; i++) {\n const ch = str.charCodeAt(i);\n h1 = Math.imul(h1 ^ ch, 2654435761);\n h2 = Math.imul(h2 ^ ch, 1597334677);\n }\n h1 =\n Math.imul(h1 ^ (h1 >>> 16), 2246822507) ^\n Math.imul(h2 ^ (h2 >>> 13), 3266489909);\n h2 =\n Math.imul(h2 ^ (h2 >>> 16), 2246822507) ^\n Math.imul(h1 ^ (h1 >>> 13), 3266489909);\n return 4294967296 * (2097151 & h2) + (h1 >>> 0);\n}\n\nexport function getAvatarColorStyle(seed?: string): CSSProperties | undefined {\n if (!seed) return undefined;\n\n const hue = cyrb53(seed) % 360;\n\n return {\n backgroundColor: `oklch(var(--avatar-l) var(--avatar-c) ${hue})`,\n color: \"var(--avatar-fg)\",\n };\n}\n","import React, { forwardRef } from \"react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n Avatar as PrimitiveAvatar,\n AvatarImage,\n AvatarFallback,\n AvatarBadge,\n AvatarGroup,\n AvatarGroupCount,\n} from \"src/primitives/Avatar\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"src/primitives/Tooltip\";\n\nimport { STATUS_COLOR_MAP, SIDE_MAP, XL_CLASSES } from \"./constants\";\nimport { getAvatarColorStyle, getInitials } from \"./utils\";\n\ntype AvatarSize = \"sm\" | \"default\" | \"lg\" | \"xl\";\n\ninterface AvatarTooltipProps {\n /** Tooltip content. Defaults to user.name if showTooltip is true. */\n content?: React.ReactNode;\n /** Tooltip position. */\n position?: string;\n}\n\nexport interface AvatarProps extends Omit<\n React.ComponentProps<typeof PrimitiveAvatar>,\n \"size\"\n> {\n /** User data for the avatar. */\n user?: {\n id?: string | number;\n name?: string;\n email?: string;\n imageUrl?: string;\n };\n /** Status indicator displayed as a colored badge. */\n status?: \"online\" | \"idle\" | \"offline\" | null;\n /** Show the user's name in a tooltip on hover. */\n showTooltip?: boolean;\n /** Tooltip configuration. Overrides showTooltip content. */\n tooltipProps?: AvatarTooltipProps;\n /** Size of the avatar. */\n size?: AvatarSize;\n /** Additional CSS class names. */\n className?: string;\n}\n\nconst Avatar = forwardRef<HTMLSpanElement, AvatarProps>(\n (\n {\n user,\n status,\n showTooltip = false,\n tooltipProps,\n size = \"default\",\n className,\n ...otherProps\n },\n ref\n ) => {\n const initials = getInitials(user?.name);\n const isXl = size === \"xl\";\n const primitiveSize = isXl ? \"lg\" : size;\n const seed =\n user?.id != null\n ? String(user.id)\n : user?.email?.trim().toLowerCase() || user?.name;\n\n const avatarElement = (\n <PrimitiveAvatar\n ref={ref}\n size={primitiveSize}\n className={cn(isXl && XL_CLASSES, className)}\n {...otherProps}\n >\n {user?.imageUrl && (\n <AvatarImage src={user.imageUrl} alt={user?.name ?? \"\"} />\n )}\n <AvatarFallback style={getAvatarColorStyle(seed)}>\n {initials}\n </AvatarFallback>\n {status && <AvatarBadge className={cn(STATUS_COLOR_MAP[status])} />}\n </PrimitiveAvatar>\n );\n\n const tooltipContent =\n tooltipProps?.content ?? (showTooltip ? user?.name : null);\n\n if (tooltipContent) {\n const side = SIDE_MAP[tooltipProps?.position ?? \"auto\"] ?? \"bottom\";\n\n return (\n <TooltipProvider delayDuration={0}>\n <Tooltip>\n <TooltipTrigger asChild>\n <span className=\"inline-flex\">{avatarElement}</span>\n </TooltipTrigger>\n <TooltipContent side={side}>{tooltipContent}</TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n }\n\n return avatarElement;\n }\n);\n\nAvatar.displayName = \"Avatar\";\n\nconst AvatarNamespace = Object.assign(Avatar, {\n Group: AvatarGroup,\n GroupCount: AvatarGroupCount,\n});\n\nexport { AvatarNamespace as Avatar };\n"],"names":["PrimitiveAvatar"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Badge-DC6zxOwS.js","sources":["../src/components/Badge/constants.ts","../src/components/Badge/Badge.tsx"],"sourcesContent":["import type { IndicatorVariant } from \"./Badge\";\n\nexport const SIZE_CONFIG = {\n sm: {\n iconPl: \"pl-1\",\n iconPr: \"pr-1\",\n dismissPr: \"pr-0.5\",\n btnSize: \"size-3\",\n iconSize: \"size-2\",\n },\n default: {\n iconPl: \"pl-1.5\",\n iconPr: \"pr-1.5\",\n dismissPr: \"pr-1\",\n btnSize: \"size-3.5\",\n iconSize: \"size-2.5\",\n },\n lg: {\n iconPl: \"pl-2\",\n iconPr: \"pr-2\",\n dismissPr: \"pr-1\",\n btnSize: \"size-4.5\",\n iconSize: \"size-3\",\n },\n};\n\nexport const INDICATOR_COLORS: Record<IndicatorVariant, string> = {\n default: \"bg-primary\",\n secondary: \"bg-muted-foreground\",\n destructive: \"bg-destructive\",\n blue: \"bg-blue-600\",\n green: \"bg-green-600\",\n amber: \"bg-amber-400\",\n red: \"bg-red-600\",\n purple: \"bg-purple-700\",\n pink: \"bg-pink-600\",\n teal: \"bg-teal-600\",\n gray: \"bg-gray-400\",\n};\n","import React, { forwardRef, type ReactNode } from \"react\";\n\nimport { X } from \"lucide-react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\nimport { renderIcon, type IconProp } from \"src/shared/renderIcon\";\nimport { Badge as PrimitiveBadge } from \"src/primitives/Badge\";\n\nimport { SIZE_CONFIG, INDICATOR_COLORS } from \"./constants\";\n\ntype BadgeVariant =\n | \"default\"\n | \"secondary\"\n | \"destructive\"\n | \"outline\"\n | \"ghost\"\n | \"link\"\n | \"gray\"\n | \"gray-subtle\"\n | \"blue\"\n | \"blue-subtle\"\n | \"purple\"\n | \"purple-subtle\"\n | \"amber\"\n | \"amber-subtle\"\n | \"red\"\n | \"red-subtle\"\n | \"pink\"\n | \"pink-subtle\"\n | \"green\"\n | \"green-subtle\"\n | \"teal\"\n | \"teal-subtle\";\n\ntype BadgeSize = \"sm\" | \"default\" | \"lg\";\n\ntype BadgeShape = \"pill\" | \"rounded\";\n\nexport type IndicatorVariant =\n | \"default\"\n | \"secondary\"\n | \"destructive\"\n | \"blue\"\n | \"green\"\n | \"amber\"\n | \"red\"\n | \"purple\"\n | \"pink\"\n | \"teal\"\n | \"gray\";\n\nexport interface BadgeProps extends Omit<\n React.ComponentProps<\"span\">,\n \"children\"\n> {\n /** Visual variant of the badge. */\n variant?: BadgeVariant;\n /** Size of the badge. */\n size?: BadgeSize;\n /** Corner shape: `pill` (fully rounded, default) or `rounded` (4px). */\n shape?: BadgeShape;\n /** Text label rendered inside the badge. */\n label?: string;\n /** Icon component, element, or class-name string. */\n icon?: IconProp;\n /** Placement of the icon relative to the label. */\n iconPosition?: \"left\" | \"right\";\n /** Colored status indicator dot. */\n indicator?: IndicatorVariant;\n /** Callback when the badge is dismissed. Renders a dismiss button when provided. */\n onDismiss?: () => void;\n /** Disables the badge and hides the dismiss button. */\n disabled?: boolean;\n /** Render as a custom element (polymorphic via Radix Slot). */\n asChild?: boolean;\n /** Children rendered inside the badge (fallback for `label`). */\n children?: ReactNode;\n}\n\nconst Badge = forwardRef<HTMLSpanElement, BadgeProps>(\n (\n {\n variant = \"default\",\n size = \"default\",\n shape = \"pill\",\n label,\n icon,\n iconPosition = \"left\",\n indicator,\n onDismiss,\n disabled = false,\n className,\n asChild = false,\n children,\n ...otherProps\n },\n ref\n ) => {\n const { t } = useTranslation();\n\n if (asChild) {\n return (\n <PrimitiveBadge\n ref={ref}\n asChild\n variant={variant}\n size={size}\n shape={shape}\n className={className}\n {...otherProps}\n >\n {children}\n </PrimitiveBadge>\n );\n }\n\n const renderLabel = label || children;\n const iconElement = icon ? renderIcon(icon) : null;\n\n const hasDismiss = !!onDismiss && !disabled;\n\n return (\n <PrimitiveBadge\n ref={ref}\n variant={variant}\n size={size}\n shape={shape}\n className={cn(\n disabled && \"opacity-50 pointer-events-none\",\n icon && iconPosition === \"left\" && SIZE_CONFIG[size].iconPl,\n icon && iconPosition === \"right\" && SIZE_CONFIG[size].iconPr,\n hasDismiss && SIZE_CONFIG[size].dismissPr,\n className\n )}\n {...otherProps}\n >\n {indicator && (\n <span\n aria-hidden=\"true\"\n className={cn(\n \"size-1.5 shrink-0 rounded-full\",\n INDICATOR_COLORS[indicator]\n )}\n />\n )}\n {iconPosition === \"left\" && iconElement}\n {renderLabel}\n {iconPosition === \"right\" && iconElement}\n {onDismiss && !disabled && (\n <button\n type=\"button\"\n aria-label={t(\"neetoatoms.badge.dismiss\", \"Dismiss\")}\n onClick={onDismiss}\n className={cn(\n \"inline-flex shrink-0 items-center justify-center rounded-full bg-current/15 transition-[background-color,opacity] hover:bg-current/25 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1\",\n SIZE_CONFIG[size].btnSize\n )}\n >\n <X className={SIZE_CONFIG[size].iconSize} />\n </button>\n )}\n </PrimitiveBadge>\n );\n }\n);\n\nBadge.displayName = \"Badge\";\n\nexport { Badge };\n"],"names":["PrimitiveBadge"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Checkbox-m4rEnxUz.js","sources":["../src/components/Checkbox/Checkbox.tsx"],"sourcesContent":["import React, { forwardRef, useId } from \"react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\nimport { Checkbox as PrimitiveCheckbox } from \"src/primitives/Checkbox\";\nimport {\n Field,\n FieldContent,\n FieldLabel,\n FieldDescription,\n FieldError,\n} from \"src/primitives/Field\";\n\nexport interface CheckboxProps extends React.ComponentProps<\n typeof PrimitiveCheckbox\n> {\n /** Text displayed next to the checkbox. */\n label?: string;\n /** Error message displayed below the checkbox. */\n error?: string;\n /** Helper text displayed below the label. Accepts string or ReactNode. */\n helpText?: React.ReactNode;\n /** Shows a required indicator next to the label. */\n required?: boolean;\n /** Additional class name for the outermost wrapper. */\n className?: string;\n /** Props forwarded to the Label element. */\n labelProps?: React.ComponentProps<typeof FieldLabel>;\n}\n\nconst Checkbox = forwardRef<\n React.ComponentRef<typeof PrimitiveCheckbox>,\n CheckboxProps\n>(\n (\n {\n label,\n error,\n helpText,\n required = false,\n disabled = false,\n className,\n labelProps,\n ...otherProps\n },\n ref\n ) => {\n const generatedId = useId();\n const id = otherProps.id ?? generatedId;\n const errorId = `error_${id}`;\n const helpTextId = `helpText_${id}`;\n\n const ariaDescribedBy =\n [error ? errorId : null, helpText ? helpTextId : null]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n const hasField = !!(label || error || helpText);\n\n if (!hasField) {\n return (\n <PrimitiveCheckbox\n ref={ref}\n id={id}\n disabled={disabled}\n aria-invalid={!!error || undefined}\n aria-required={required || undefined}\n aria-describedby={ariaDescribedBy}\n className={className}\n {...otherProps}\n />\n );\n }\n\n return (\n <div\n className={cn(\"flex flex-col gap-1\", className)}\n data-disabled={disabled || undefined}\n data-invalid={!!error || undefined}\n >\n <Field orientation=\"horizontal\">\n <PrimitiveCheckbox\n ref={ref}\n id={id}\n disabled={disabled}\n aria-invalid={!!error || undefined}\n aria-required={required || undefined}\n aria-describedby={ariaDescribedBy}\n {...otherProps}\n />\n <FieldContent>\n {label && (\n <FieldLabel htmlFor={id} {...labelProps}>\n {label}\n {required && (\n <span aria-hidden=\"true\" className=\"text-destructive\">\n *\n </span>\n )}\n </FieldLabel>\n )}\n {helpText && (\n <FieldDescription id={helpTextId}>{helpText}</FieldDescription>\n )}\n </FieldContent>\n </Field>\n {error && <FieldError id={errorId}>{error}</FieldError>}\n </div>\n );\n }\n);\n\nCheckbox.displayName = \"Checkbox\";\n\nexport { Checkbox };\n"],"names":["PrimitiveCheckbox"],"mappings":";;;;;;AA6BA,MAAM,QAAA,GAAW,UAAA;AAAA,EAIf,CACE;AAAA,IACE,KAAA;AAAA,IACA,KAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA,GAAW,KAAA;AAAA,IACX,QAAA,GAAW,KAAA;AAAA,IACX,SAAA;AAAA,IACA,UAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,MAAM,cAAc,KAAA,EAAM;AAC1B,IAAA,MAAM,EAAA,GAAK,WAAW,EAAA,IAAM,WAAA;AAC5B,IAAA,MAAM,OAAA,GAAU,SAAS,EAAE,CAAA,CAAA;AAC3B,IAAA,MAAM,UAAA,GAAa,YAAY,EAAE,CAAA,CAAA;AAEjC,IAAA,MAAM,eAAA,GACJ,CAAC,KAAA,GAAQ,OAAA,GAAU,MAAM,QAAA,GAAW,UAAA,GAAa,IAAI,CAAA,CAClD,MAAA,CAAO,OAAO,CAAA,CACd,IAAA,CAAK,GAAG,CAAA,IAAK,MAAA;AAElB,IAAA,MAAM,QAAA,GAAW,CAAC,EAAE,KAAA,IAAS,KAAA,IAAS,QAAA,CAAA;AAEtC,IAAA,IAAI,CAAC,QAAA,EAAU;AACb,MAAA,uBACE,GAAA;AAAA,QAACA,UAAA;AAAA,QAAA;AAAA,UACC,GAAA;AAAA,UACA,EAAA;AAAA,UACA,QAAA;AAAA,UACA,cAAA,EAAc,CAAC,CAAC,KAAA,IAAS,MAAA;AAAA,UACzB,iBAAe,QAAA,IAAY,MAAA;AAAA,UAC3B,kBAAA,EAAkB,eAAA;AAAA,UAClB,SAAA;AAAA,UACC,GAAG;AAAA;AAAA,OACN;AAAA,IAEJ;AAEA,IAAA,uBACE,IAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,EAAA,CAAG,qBAAA,EAAuB,SAAS,CAAA;AAAA,QAC9C,iBAAe,QAAA,IAAY,MAAA;AAAA,QAC3B,cAAA,EAAc,CAAC,CAAC,KAAA,IAAS,MAAA;AAAA,QAEzB,QAAA,EAAA;AAAA,0BAAA,IAAA,CAAC,KAAA,EAAA,EAAM,aAAY,YAAA,EACjB,QAAA,EAAA;AAAA,4BAAA,GAAA;AAAA,cAACA,UAAA;AAAA,cAAA;AAAA,gBACC,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,QAAA;AAAA,gBACA,cAAA,EAAc,CAAC,CAAC,KAAA,IAAS,MAAA;AAAA,gBACzB,iBAAe,QAAA,IAAY,MAAA;AAAA,gBAC3B,kBAAA,EAAkB,eAAA;AAAA,gBACjB,GAAG;AAAA;AAAA,aACN;AAAA,iCACC,YAAA,EAAA,EACE,QAAA,EAAA;AAAA,cAAA,KAAA,oBACC,IAAA,CAAC,UAAA,EAAA,EAAW,OAAA,EAAS,EAAA,EAAK,GAAG,UAAA,EAC1B,QAAA,EAAA;AAAA,gBAAA,KAAA;AAAA,gBACA,4BACC,GAAA,CAAC,MAAA,EAAA,EAAK,eAAY,MAAA,EAAO,SAAA,EAAU,oBAAmB,QAAA,EAAA,GAAA,EAEtD;AAAA,eAAA,EAEJ,CAAA;AAAA,cAED,QAAA,oBACC,GAAA,CAAC,gBAAA,EAAA,EAAiB,EAAA,EAAI,YAAa,QAAA,EAAA,QAAA,EAAS;AAAA,aAAA,EAEhD;AAAA,WAAA,EACF,CAAA;AAAA,UACC,KAAA,oBAAS,GAAA,CAAC,UAAA,EAAA,EAAW,EAAA,EAAI,SAAU,QAAA,EAAA,KAAA,EAAM;AAAA;AAAA;AAAA,KAC5C;AAAA,EAEJ;AACF;AAEA,QAAA,CAAS,WAAA,GAAc,UAAA;;;;"}
|