UNPKG

ivt

Version:

Ivt Components Library

1 lines 39.5 kB
{"version":3,"file":"index.mjs","sources":["../../node_modules/lucide-react/dist/esm/icons/panel-left.js","../../src/hooks/use-mobile.ts","../../src/components/ui/sidebar/sidebar.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.479.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(\"PanelLeft\", __iconNode);\n\nexport { __iconNode, PanelLeft as default };\n//# sourceMappingURL=panel-left.js.map\n","import * as React from \"react\";\n\nconst MOBILE_BREAKPOINT = 768;\n\nexport function useIsMobile() {\n\tconst [isMobile, setIsMobile] = React.useState<boolean | undefined>(undefined);\n\n\tReact.useEffect(() => {\n\t\tconst mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);\n\t\tconst onChange = () => {\n\t\t\tsetIsMobile(window.innerWidth < MOBILE_BREAKPOINT);\n\t\t};\n\t\tmql.addEventListener(\"change\", onChange);\n\t\tsetIsMobile(window.innerWidth < MOBILE_BREAKPOINT);\n\t\treturn () => mql.removeEventListener(\"change\", onChange);\n\t}, []);\n\n\treturn !!isMobile;\n}\n","\"use client\";\n\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, VariantProps } from \"class-variance-authority\";\nimport { PanelLeftIcon } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { Button } from \"@/components/ui/button\";\nimport { Input } from \"@/components/ui/input\";\nimport { Separator } from \"@/components/ui/separator\";\nimport {\n\tSheet,\n\tSheetContent,\n\tSheetDescription,\n\tSheetHeader,\n\tSheetTitle,\n} from \"@/components/ui/sheet\";\nimport { Skeleton } from \"@/components/ui/skeleton\";\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from \"@/components/ui/tooltip\";\nimport { useIsMobile } from \"@/hooks/use-mobile\";\nimport { cn } from \"@/lib/utils\";\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\tstate: \"expanded\" | \"collapsed\";\n\topen: boolean;\n\tsetOpen: (open: boolean) => void;\n\topenMobile: boolean;\n\tsetOpenMobile: (open: boolean) => void;\n\tisMobile: boolean;\n\ttoggleSidebar: () => void;\n};\n\nconst SidebarContext = React.createContext<SidebarContextProps | null>(null);\n\nfunction useSidebar() {\n\tconst context = React.useContext(SidebarContext);\n\tif (!context) {\n\t\tthrow new Error(\"useSidebar must be used within a SidebarProvider.\");\n\t}\n\n\treturn context;\n}\n\nfunction SidebarProvider({\n\tdefaultOpen = true,\n\topen: openProp,\n\tonOpenChange: setOpenProp,\n\tclassName,\n\tstyle,\n\tchildren,\n\t...props\n}: React.ComponentProps<\"div\"> & {\n\tdefaultOpen?: boolean;\n\topen?: boolean;\n\tonOpenChange?: (open: boolean) => void;\n}) {\n\tconst isMobile = useIsMobile();\n\tconst [openMobile, setOpenMobile] = React.useState(false);\n\n\t// This is the internal state of the sidebar.\n\t// We use openProp and setOpenProp for control from outside the component.\n\tconst [_open, _setOpen] = React.useState(defaultOpen);\n\tconst open = openProp ?? _open;\n\tconst setOpen = React.useCallback(\n\t\t(value: boolean | ((value: boolean) => boolean)) => {\n\t\t\tconst openState = typeof value === \"function\" ? value(open) : value;\n\t\t\tif (setOpenProp) {\n\t\t\t\tsetOpenProp(openState);\n\t\t\t} else {\n\t\t\t\t_setOpen(openState);\n\t\t\t}\n\n\t\t\t// biome-ignore lint/suspicious/noDocumentCookie: <noDocumentCookie>\n\t\t\tdocument.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n\t\t},\n\t\t[setOpenProp, open],\n\t);\n\n\t// Helper to toggle the sidebar.\n\t// biome-ignore lint/correctness/useExhaustiveDependencies: <useCallback>\n\tconst toggleSidebar = React.useCallback(() => {\n\t\treturn isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open);\n\t}, [isMobile, setOpen, setOpenMobile]);\n\n\t// Adds a keyboard shortcut to toggle the sidebar.\n\tReact.useEffect(() => {\n\t\tconst handleKeyDown = (event: KeyboardEvent) => {\n\t\t\tif (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\ttoggleSidebar();\n\t\t\t}\n\t\t};\n\n\t\twindow.addEventListener(\"keydown\", handleKeyDown);\n\t\treturn () => window.removeEventListener(\"keydown\", handleKeyDown);\n\t}, [toggleSidebar]);\n\n\t// We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n\t// This makes it easier to style the sidebar with Tailwind classes.\n\tconst state = open ? \"expanded\" : \"collapsed\";\n\n\t// biome-ignore lint/correctness/useExhaustiveDependencies: <useMemo>\n\tconst contextValue = React.useMemo<SidebarContextProps>(\n\t\t() => ({\n\t\t\tstate,\n\t\t\topen,\n\t\t\tsetOpen,\n\t\t\tisMobile,\n\t\t\topenMobile,\n\t\t\tsetOpenMobile,\n\t\t\ttoggleSidebar,\n\t\t}),\n\t\t[state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar],\n\t);\n\n\treturn (\n\t\t<SidebarContext.Provider value={contextValue}>\n\t\t\t<TooltipProvider delayDuration={0}>\n\t\t\t\t<div\n\t\t\t\t\tdata-slot=\"sidebar-wrapper\"\n\t\t\t\t\tstyle={\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"--sidebar-width\": SIDEBAR_WIDTH,\n\t\t\t\t\t\t\t\"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON,\n\t\t\t\t\t\t\t...style,\n\t\t\t\t\t\t} as React.CSSProperties\n\t\t\t\t\t}\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\"group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full\",\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t)}\n\t\t\t\t\t{...props}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t</TooltipProvider>\n\t\t</SidebarContext.Provider>\n\t);\n}\n\nfunction Sidebar({\n\tside = \"left\",\n\tvariant = \"sidebar\",\n\tcollapsible = \"offcanvas\",\n\tclassName,\n\tchildren,\n\t...props\n}: React.ComponentProps<\"div\"> & {\n\tside?: \"left\" | \"right\";\n\tvariant?: \"sidebar\" | \"floating\" | \"inset\";\n\tcollapsible?: \"offcanvas\" | \"icon\" | \"none\";\n}) {\n\tconst { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\n\tif (collapsible === \"none\") {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tdata-slot=\"sidebar\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif (isMobile) {\n\t\treturn (\n\t\t\t<Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n\t\t\t\t<SheetContent\n\t\t\t\t\tdata-sidebar=\"sidebar\"\n\t\t\t\t\tdata-slot=\"sidebar\"\n\t\t\t\t\tdata-mobile=\"true\"\n\t\t\t\t\tclassName=\"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden\"\n\t\t\t\t\tstyle={\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"--sidebar-width\": SIDEBAR_WIDTH_MOBILE,\n\t\t\t\t\t\t} as React.CSSProperties\n\t\t\t\t\t}\n\t\t\t\t\tside={side}\n\t\t\t\t>\n\t\t\t\t\t<SheetHeader className=\"sr-only\">\n\t\t\t\t\t\t<SheetTitle>Sidebar</SheetTitle>\n\t\t\t\t\t\t<SheetDescription>Displays the mobile sidebar.</SheetDescription>\n\t\t\t\t\t</SheetHeader>\n\t\t\t\t\t<div className=\"flex h-full w-full flex-col\">{children}</div>\n\t\t\t\t</SheetContent>\n\t\t\t</Sheet>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName=\"group peer text-sidebar-foreground hidden md:block\"\n\t\t\tdata-state={state}\n\t\t\tdata-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n\t\t\tdata-variant={variant}\n\t\t\tdata-side={side}\n\t\t\tdata-slot=\"sidebar\"\n\t\t>\n\t\t\t{/* This is what handles the sidebar gap on desktop */}\n\t\t\t<div\n\t\t\t\tdata-slot=\"sidebar-gap\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear\",\n\t\t\t\t\t\"group-data-[collapsible=offcanvas]:w-0\",\n\t\t\t\t\t\"group-data-[side=right]:rotate-180\",\n\t\t\t\t\tvariant === \"floating\" || variant === \"inset\"\n\t\t\t\t\t\t? \"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]\"\n\t\t\t\t\t\t: \"group-data-[collapsible=icon]:w-(--sidebar-width-icon)\",\n\t\t\t\t)}\n\t\t\t/>\n\t\t\t<div\n\t\t\t\tdata-slot=\"sidebar-container\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex\",\n\t\t\t\t\tside === \"left\"\n\t\t\t\t\t\t? \"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]\"\n\t\t\t\t\t\t: \"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]\",\n\t\t\t\t\t// Adjust the padding for floating and inset variants.\n\t\t\t\t\tvariant === \"floating\" || variant === \"inset\"\n\t\t\t\t\t\t? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]\"\n\t\t\t\t\t\t: \"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tdata-sidebar=\"sidebar\"\n\t\t\t\t\tdata-slot=\"sidebar-inner\"\n\t\t\t\t\tclassName=\"bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm\"\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nfunction SidebarTrigger({ className, onClick, ...props }: React.ComponentProps<typeof Button>) {\n\tconst { toggleSidebar } = useSidebar();\n\n\treturn (\n\t\t<Button\n\t\t\tdata-sidebar=\"trigger\"\n\t\t\tdata-slot=\"sidebar-trigger\"\n\t\t\tvariant=\"ghost\"\n\t\t\tsize=\"icon\"\n\t\t\tclassName={cn(\"size-7\", className)}\n\t\t\tonClick={(event) => {\n\t\t\t\tonClick?.(event);\n\t\t\t\ttoggleSidebar();\n\t\t\t}}\n\t\t\t{...props}\n\t\t>\n\t\t\t<PanelLeftIcon />\n\t\t\t<span className=\"sr-only\">Toggle Sidebar</span>\n\t\t</Button>\n\t);\n}\n\nfunction SidebarRail({ className, ...props }: React.ComponentProps<\"button\">) {\n\tconst { toggleSidebar } = useSidebar();\n\n\treturn (\n\t\t<button\n\t\t\tdata-sidebar=\"rail\"\n\t\t\tdata-slot=\"sidebar-rail\"\n\t\t\taria-label=\"Toggle Sidebar\"\n\t\t\ttabIndex={-1}\n\t\t\tonClick={toggleSidebar}\n\t\t\ttitle=\"Toggle Sidebar\"\n\t\t\tclassName={cn(\n\t\t\t\t\"hover:after:bg-sidebar-border 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:left-1/2 after:w-[2px] sm:flex\",\n\t\t\t\t\"in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize\",\n\t\t\t\t\"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize\",\n\t\t\t\t\"hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full\",\n\t\t\t\t\"[[data-side=left][data-collapsible=offcanvas]_&]:-right-2\",\n\t\t\t\t\"[[data-side=right][data-collapsible=offcanvas]_&]:-left-2\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarInset({ className, ...props }: React.ComponentProps<\"main\">) {\n\treturn (\n\t\t<main\n\t\t\tdata-slot=\"sidebar-inset\"\n\t\t\tclassName={cn(\n\t\t\t\t\"bg-background relative flex w-full flex-1 flex-col\",\n\t\t\t\t\"md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarInput({ className, ...props }: React.ComponentProps<typeof Input>) {\n\treturn (\n\t\t<Input\n\t\t\tdata-slot=\"sidebar-input\"\n\t\t\tdata-sidebar=\"input\"\n\t\t\tclassName={cn(\"bg-background h-8 w-full shadow-none\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-header\"\n\t\t\tdata-sidebar=\"header\"\n\t\t\tclassName={cn(\"flex flex-col gap-2 p-2\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-footer\"\n\t\t\tdata-sidebar=\"footer\"\n\t\t\tclassName={cn(\"flex flex-col gap-2 p-2\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarSeparator({ className, ...props }: React.ComponentProps<typeof Separator>) {\n\treturn (\n\t\t<Separator\n\t\t\tdata-slot=\"sidebar-separator\"\n\t\t\tdata-sidebar=\"separator\"\n\t\t\tclassName={cn(\"bg-sidebar-border mx-2 w-auto\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarContent({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-content\"\n\t\t\tdata-sidebar=\"content\"\n\t\t\tclassName={cn(\n\t\t\t\t\"flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-group\"\n\t\t\tdata-sidebar=\"group\"\n\t\t\tclassName={cn(\"relative flex w-full min-w-0 flex-col p-2\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarGroupLabel({\n\tclassName,\n\tasChild = false,\n\t...props\n}: React.ComponentProps<\"div\"> & { asChild?: boolean }) {\n\tconst Comp = asChild ? Slot : \"div\";\n\n\treturn (\n\t\t<Comp\n\t\t\tdata-slot=\"sidebar-group-label\"\n\t\t\tdata-sidebar=\"group-label\"\n\t\t\tclassName={cn(\n\t\t\t\t\"text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n\t\t\t\t\"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarGroupAction({\n\tclassName,\n\tasChild = false,\n\t...props\n}: React.ComponentProps<\"button\"> & { asChild?: boolean }) {\n\tconst Comp = asChild ? Slot : \"button\";\n\n\treturn (\n\t\t<Comp\n\t\t\tdata-slot=\"sidebar-group-action\"\n\t\t\tdata-sidebar=\"group-action\"\n\t\t\tclassName={cn(\n\t\t\t\t\"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n\t\t\t\t// Increases the hit area of the button on mobile.\n\t\t\t\t\"after:absolute after:-inset-2 md:after:hidden\",\n\t\t\t\t\"group-data-[collapsible=icon]:hidden\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarGroupContent({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-group-content\"\n\t\t\tdata-sidebar=\"group-content\"\n\t\t\tclassName={cn(\"w-full text-sm\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarMenu({ className, ...props }: React.ComponentProps<\"ul\">) {\n\treturn (\n\t\t<ul\n\t\t\tdata-slot=\"sidebar-menu\"\n\t\t\tdata-sidebar=\"menu\"\n\t\t\tclassName={cn(\"flex w-full min-w-0 flex-col gap-1\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarMenuItem({ className, ...props }: React.ComponentProps<\"li\">) {\n\treturn (\n\t\t<li\n\t\t\tdata-slot=\"sidebar-menu-item\"\n\t\t\tdata-sidebar=\"menu-item\"\n\t\t\tclassName={cn(\"group/menu-item relative\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nconst sidebarMenuButtonVariants = cva(\n\t\"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden 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\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\tdefault: \"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground\",\n\t\t\t\toutline:\n\t\t\t\t\t\"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\t\t\t},\n\t\t\tsize: {\n\t\t\t\tdefault: \"h-8 text-sm\",\n\t\t\t\tsm: \"h-7 text-xs\",\n\t\t\t\tlg: \"h-12 text-sm group-data-[collapsible=icon]:p-0!\",\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tvariant: \"default\",\n\t\t\tsize: \"default\",\n\t\t},\n\t},\n);\n\nfunction SidebarMenuButton({\n\tasChild = false,\n\tisActive = false,\n\tvariant = \"default\",\n\tsize = \"default\",\n\ttooltip,\n\tclassName,\n\t...props\n}: React.ComponentProps<\"button\"> & {\n\tasChild?: boolean;\n\tisActive?: boolean;\n\ttooltip?: string | React.ComponentProps<typeof TooltipContent>;\n} & VariantProps<typeof sidebarMenuButtonVariants>) {\n\tconst Comp = asChild ? Slot : \"button\";\n\tconst { isMobile, state } = useSidebar();\n\n\tconst button = (\n\t\t<Comp\n\t\t\tdata-slot=\"sidebar-menu-button\"\n\t\t\tdata-sidebar=\"menu-button\"\n\t\t\tdata-size={size}\n\t\t\tdata-active={isActive}\n\t\t\tclassName={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n\n\tif (!tooltip) {\n\t\treturn button;\n\t}\n\n\tif (typeof tooltip === \"string\") {\n\t\ttooltip = {\n\t\t\tchildren: tooltip,\n\t\t};\n\t}\n\n\treturn (\n\t\t<Tooltip>\n\t\t\t<TooltipTrigger asChild>{button}</TooltipTrigger>\n\t\t\t<TooltipContent\n\t\t\t\tside=\"right\"\n\t\t\t\talign=\"center\"\n\t\t\t\thidden={state !== \"collapsed\" || isMobile}\n\t\t\t\t{...tooltip}\n\t\t\t/>\n\t\t</Tooltip>\n\t);\n}\n\nfunction SidebarMenuAction({\n\tclassName,\n\tasChild = false,\n\tshowOnHover = false,\n\t...props\n}: React.ComponentProps<\"button\"> & {\n\tasChild?: boolean;\n\tshowOnHover?: boolean;\n}) {\n\tconst Comp = asChild ? Slot : \"button\";\n\n\treturn (\n\t\t<Comp\n\t\t\tdata-slot=\"sidebar-menu-action\"\n\t\t\tdata-sidebar=\"menu-action\"\n\t\t\tclassName={cn(\n\t\t\t\t\"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n\t\t\t\t// Increases the hit area of the button on mobile.\n\t\t\t\t\"after:absolute after:-inset-2 md:after:hidden\",\n\t\t\t\t\"peer-data-[size=sm]/menu-button:top-1\",\n\t\t\t\t\"peer-data-[size=default]/menu-button:top-1.5\",\n\t\t\t\t\"peer-data-[size=lg]/menu-button:top-2.5\",\n\t\t\t\t\"group-data-[collapsible=icon]:hidden\",\n\t\t\t\tshowOnHover &&\n\t\t\t\t\t\"peer-data-[active=true]/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarMenuBadge({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-menu-badge\"\n\t\t\tdata-sidebar=\"menu-badge\"\n\t\t\tclassName={cn(\n\t\t\t\t\"text-sidebar-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums select-none\",\n\t\t\t\t\"peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground\",\n\t\t\t\t\"peer-data-[size=sm]/menu-button:top-1\",\n\t\t\t\t\"peer-data-[size=default]/menu-button:top-1.5\",\n\t\t\t\t\"peer-data-[size=lg]/menu-button:top-2.5\",\n\t\t\t\t\"group-data-[collapsible=icon]:hidden\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarMenuSkeleton({\n\tclassName,\n\tshowIcon = false,\n\t...props\n}: React.ComponentProps<\"div\"> & {\n\tshowIcon?: boolean;\n}) {\n\t// Random width between 50 to 90%.\n\tconst width = React.useMemo(() => {\n\t\treturn `${Math.floor(Math.random() * 40) + 50}%`;\n\t}, []);\n\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-menu-skeleton\"\n\t\t\tdata-sidebar=\"menu-skeleton\"\n\t\t\tclassName={cn(\"flex h-8 items-center gap-2 rounded-md px-2\", className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{showIcon && <Skeleton className=\"size-4 rounded-md\" data-sidebar=\"menu-skeleton-icon\" />}\n\t\t\t<Skeleton\n\t\t\t\tclassName=\"h-4 max-w-(--skeleton-width) flex-1\"\n\t\t\t\tdata-sidebar=\"menu-skeleton-text\"\n\t\t\t\tstyle={\n\t\t\t\t\t{\n\t\t\t\t\t\t\"--skeleton-width\": width,\n\t\t\t\t\t} as React.CSSProperties\n\t\t\t\t}\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nfunction SidebarMenuSub({ className, ...props }: React.ComponentProps<\"ul\">) {\n\treturn (\n\t\t<ul\n\t\t\tdata-slot=\"sidebar-menu-sub\"\n\t\t\tdata-sidebar=\"menu-sub\"\n\t\t\tclassName={cn(\n\t\t\t\t\"border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5\",\n\t\t\t\t\"group-data-[collapsible=icon]:hidden\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarMenuSubItem({ className, ...props }: React.ComponentProps<\"li\">) {\n\treturn (\n\t\t<li\n\t\t\tdata-slot=\"sidebar-menu-sub-item\"\n\t\t\tdata-sidebar=\"menu-sub-item\"\n\t\t\tclassName={cn(\"group/menu-sub-item relative\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarMenuSubButton({\n\tasChild = false,\n\tsize = \"md\",\n\tisActive = false,\n\tclassName,\n\t...props\n}: React.ComponentProps<\"a\"> & {\n\tasChild?: boolean;\n\tsize?: \"sm\" | \"md\";\n\tisActive?: boolean;\n}) {\n\tconst Comp = asChild ? Slot : \"a\";\n\n\treturn (\n\t\t<Comp\n\t\t\tdata-slot=\"sidebar-menu-sub-button\"\n\t\t\tdata-sidebar=\"menu-sub-button\"\n\t\t\tdata-size={size}\n\t\t\tdata-active={isActive}\n\t\t\tclassName={cn(\n\t\t\t\t\"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden focus-visible:ring-2 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\",\n\t\t\t\t\"data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground\",\n\t\t\t\tsize === \"sm\" && \"text-xs\",\n\t\t\t\tsize === \"md\" && \"text-sm\",\n\t\t\t\t\"group-data-[collapsible=icon]:hidden\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport {\n\tSidebar,\n\tSidebarContent,\n\tSidebarFooter,\n\tSidebarGroup,\n\tSidebarGroupAction,\n\tSidebarGroupContent,\n\tSidebarGroupLabel,\n\tSidebarHeader,\n\tSidebarInput,\n\tSidebarInset,\n\tSidebarMenu,\n\tSidebarMenuAction,\n\tSidebarMenuBadge,\n\tSidebarMenuButton,\n\tSidebarMenuItem,\n\tSidebarMenuSkeleton,\n\tSidebarMenuSub,\n\tSidebarMenuSubButton,\n\tSidebarMenuSubItem,\n\tSidebarProvider,\n\tSidebarRail,\n\tSidebarSeparator,\n\tSidebarTrigger,\n\tuseSidebar,\n};\n"],"names":["MOBILE_BREAKPOINT","useIsMobile","isMobile","setIsMobile","React","useState","undefined","useEffect","mql","window","matchMedia","onChange","innerWidth","addEventListener","removeEventListener","SIDEBAR_COOKIE_NAME","SIDEBAR_COOKIE_MAX_AGE","SIDEBAR_WIDTH","SIDEBAR_WIDTH_MOBILE","SIDEBAR_WIDTH_ICON","SIDEBAR_KEYBOARD_SHORTCUT","SidebarContext","createContext","useSidebar","context","useContext","Error","SidebarProvider","defaultOpen","open","openProp","onOpenChange","setOpenProp","className","style","children","props","openMobile","setOpenMobile","_open","_setOpen","setOpen","useCallback","value","openState","document","cookie","toggleSidebar","handleKeyDown","event","key","metaKey","ctrlKey","preventDefault","state","contextValue","useMemo","Provider","TooltipProvider","delayDuration","div","data-slot","cn","Sidebar","side","variant","collapsible","Sheet","SheetContent","data-sidebar","data-mobile","SheetHeader","SheetTitle","SheetDescription","data-state","data-collapsible","data-variant","data-side","SidebarTrigger","onClick","Button","size","PanelLeftIcon","span","SidebarRail","button","aria-label","tabIndex","title","SidebarInset","main","SidebarInput","Input","SidebarHeader","SidebarFooter","SidebarSeparator","Separator","SidebarContent","SidebarGroup","SidebarGroupLabel","asChild","Comp","Slot","SidebarGroupAction","SidebarGroupContent","SidebarMenu","ul","SidebarMenuItem","li","sidebarMenuButtonVariants","cva","variants","default","outline","sm","lg","defaultVariants","SidebarMenuButton","isActive","tooltip","data-size","data-active","Tooltip","TooltipTrigger","TooltipContent","align","hidden","SidebarMenuAction","showOnHover","SidebarMenuBadge","SidebarMenuSkeleton","showIcon","width","Math","floor","random","Skeleton","SidebarMenuSub","SidebarMenuSubItem","SidebarMenuSubButton"],"mappings":"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","x_google_ignoreList":[0]}