@egose/shadcn-theme 0.0.35 → 0.0.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/chunk-5YN74UBH.js +34 -0
  2. package/chunk-5YN74UBH.js.map +1 -0
  3. package/chunk-C7I5QYIS.mjs +12 -0
  4. package/chunk-C7I5QYIS.mjs.map +1 -0
  5. package/chunk-DEXWDH66.mjs +45 -0
  6. package/chunk-DEXWDH66.mjs.map +1 -0
  7. package/chunk-FFPUEART.js +75 -0
  8. package/chunk-FFPUEART.js.map +1 -0
  9. package/chunk-IAJ2ZBSJ.mjs +153 -0
  10. package/chunk-IAJ2ZBSJ.mjs.map +1 -0
  11. package/chunk-ISXL2Q6C.js +55 -0
  12. package/chunk-ISXL2Q6C.js.map +1 -0
  13. package/chunk-KC4RCNJW.js +58 -0
  14. package/chunk-KC4RCNJW.js.map +1 -0
  15. package/chunk-KKPUOZ6X.mjs +74 -0
  16. package/chunk-KKPUOZ6X.mjs.map +1 -0
  17. package/chunk-KKRJRQYZ.js +46 -0
  18. package/chunk-KKRJRQYZ.js.map +1 -0
  19. package/chunk-KRYKKQ2X.mjs +54 -0
  20. package/chunk-KRYKKQ2X.mjs.map +1 -0
  21. package/chunk-N2AJY4KM.js +13 -0
  22. package/chunk-N2AJY4KM.js.map +1 -0
  23. package/chunk-NI2SIUXO.js +154 -0
  24. package/chunk-NI2SIUXO.js.map +1 -0
  25. package/chunk-NQEDHUHQ.js +567 -0
  26. package/chunk-NQEDHUHQ.js.map +1 -0
  27. package/chunk-P6BFWU3X.mjs +57 -0
  28. package/chunk-P6BFWU3X.mjs.map +1 -0
  29. package/chunk-RSQ25E6Y.js +93 -0
  30. package/chunk-RSQ25E6Y.js.map +1 -0
  31. package/chunk-W6BYKQSI.mjs +33 -0
  32. package/chunk-W6BYKQSI.mjs.map +1 -0
  33. package/chunk-ZVBMRCE7.mjs +92 -0
  34. package/chunk-ZVBMRCE7.mjs.map +1 -0
  35. package/chunk-ZZSEDLQG.mjs +566 -0
  36. package/chunk-ZZSEDLQG.mjs.map +1 -0
  37. package/components/ui/avatar.js +13 -44
  38. package/components/ui/avatar.js.map +1 -1
  39. package/components/ui/avatar.mjs +6 -37
  40. package/components/ui/avatar.mjs.map +1 -1
  41. package/components/ui/breadcrumb.js +21 -91
  42. package/components/ui/breadcrumb.js.map +1 -1
  43. package/components/ui/breadcrumb.mjs +10 -80
  44. package/components/ui/breadcrumb.mjs.map +1 -1
  45. package/components/ui/collapsible.js +7 -8
  46. package/components/ui/collapsible.js.map +1 -1
  47. package/components/ui/collapsible.mjs +7 -8
  48. package/components/ui/collapsible.mjs.map +1 -1
  49. package/components/ui/dropdown-menu.js +37 -152
  50. package/components/ui/dropdown-menu.js.map +1 -1
  51. package/components/ui/dropdown-menu.mjs +18 -133
  52. package/components/ui/dropdown-menu.mjs.map +1 -1
  53. package/components/ui/sidebar.js +39 -542
  54. package/components/ui/sidebar.js.map +1 -1
  55. package/components/ui/sidebar.mjs +34 -537
  56. package/components/ui/sidebar.mjs.map +1 -1
  57. package/layouts/sidebar1/LinkWrapper.d.mts +11 -0
  58. package/layouts/sidebar1/LinkWrapper.d.ts +11 -0
  59. package/layouts/sidebar1/LinkWrapper.js +23 -0
  60. package/layouts/sidebar1/LinkWrapper.js.map +1 -0
  61. package/layouts/sidebar1/LinkWrapper.mjs +22 -0
  62. package/layouts/sidebar1/LinkWrapper.mjs.map +1 -0
  63. package/layouts/sidebar1/app-sidebar.d.mts +26 -0
  64. package/layouts/sidebar1/app-sidebar.d.ts +26 -0
  65. package/layouts/sidebar1/app-sidebar.js +26 -0
  66. package/layouts/sidebar1/app-sidebar.js.map +1 -0
  67. package/layouts/sidebar1/app-sidebar.mjs +25 -0
  68. package/layouts/sidebar1/app-sidebar.mjs.map +1 -0
  69. package/layouts/sidebar1/context-switcher.d.mts +14 -0
  70. package/layouts/sidebar1/context-switcher.d.ts +14 -0
  71. package/layouts/sidebar1/context-switcher.js +21 -0
  72. package/layouts/sidebar1/context-switcher.js.map +1 -0
  73. package/layouts/sidebar1/context-switcher.mjs +20 -0
  74. package/layouts/sidebar1/context-switcher.mjs.map +1 -0
  75. package/layouts/sidebar1/index.d.mts +22 -0
  76. package/layouts/sidebar1/index.d.ts +22 -0
  77. package/layouts/sidebar1/index.js +66 -0
  78. package/layouts/sidebar1/index.js.map +1 -0
  79. package/layouts/sidebar1/index.mjs +65 -0
  80. package/layouts/sidebar1/index.mjs.map +1 -0
  81. package/layouts/sidebar1/nav-menus.d.mts +22 -0
  82. package/layouts/sidebar1/nav-menus.d.ts +22 -0
  83. package/layouts/sidebar1/nav-menus.js +21 -0
  84. package/layouts/sidebar1/nav-menus.js.map +1 -0
  85. package/layouts/sidebar1/nav-menus.mjs +20 -0
  86. package/layouts/sidebar1/nav-menus.mjs.map +1 -0
  87. package/layouts/sidebar1/nav-user.d.mts +22 -0
  88. package/layouts/sidebar1/nav-user.d.ts +22 -0
  89. package/layouts/sidebar1/nav-user.js +22 -0
  90. package/layouts/sidebar1/nav-user.js.map +1 -0
  91. package/layouts/sidebar1/nav-user.mjs +21 -0
  92. package/layouts/sidebar1/nav-user.mjs.map +1 -0
  93. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/ahnjun/projects/egose-shadcn/packages/react/dist/components/ui/sidebar.js","../../../components/ui/sidebar.tsx"],"names":[],"mappings":"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","file":"/home/ahnjun/projects/egose-shadcn/packages/react/dist/components/ui/sidebar.js","sourcesContent":[null,"\"use client\";\nimport * as React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport { VariantProps, cva } from 'class-variance-authority';\nimport { PanelLeft } from 'lucide-react';\n\nimport { useIsMobile } from '../../hooks/use-mobile';\nimport { cn } from '../../lib/utils';\nimport { Button } from './button';\nimport { Input } from './input';\nimport { Separator } from './separator';\nimport { Sheet, SheetTitle, SheetContent } from './sheet';\nimport { Skeleton } from './skeleton';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from './tooltip';\n\nconst SIDEBAR_COOKIE_NAME = 'sidebar_state';\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nconst SIDEBAR_WIDTH = '16rem';\nconst SIDEBAR_WIDTH_MOBILE = '18rem';\nconst SIDEBAR_WIDTH_ICON = '3rem';\nconst SIDEBAR_KEYBOARD_SHORTCUT = 'b';\n\ntype SidebarContext = {\n state: 'expanded' | 'collapsed';\n open: boolean;\n setOpen: (open: boolean) => void;\n openMobile: boolean;\n setOpenMobile: (open: boolean) => void;\n isMobile: boolean;\n toggleSidebar: () => void;\n};\n\nconst SidebarContext = React.createContext<SidebarContext | null>(null);\n\nfunction useSidebar() {\n const context = React.useContext(SidebarContext);\n if (!context) {\n throw new Error('useSidebar must be used within a SidebarProvider.');\n }\n\n return context;\n}\n\nconst SidebarProvider = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n }\n>(({ defaultOpen = true, open: openProp, onOpenChange: setOpenProp, className, style, children, ...props }, ref) => {\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 (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {\n event.preventDefault();\n toggleSidebar();\n }\n };\n\n window.addEventListener('keydown', handleKeyDown);\n return () => window.removeEventListener('keydown', handleKeyDown);\n }, [toggleSidebar]);\n\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n // This makes it easier to style the sidebar with Tailwind classes.\n const state = open ? 'expanded' : 'collapsed';\n\n const contextValue = React.useMemo<SidebarContext>(\n () => ({\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n }),\n [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar],\n );\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH,\n '--sidebar-width-icon': SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n className={cn(\n 'group/sidebar-wrapper flex min-h-svh w-screen has-[[data-variant=inset]]:bg-sidebar',\n className,\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n );\n});\nSidebarProvider.displayName = 'SidebarProvider';\n\nconst Sidebar = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n side?: 'left' | 'right';\n variant?: 'sidebar' | 'floating' | 'inset';\n collapsible?: 'offcanvas' | 'icon' | 'none';\n }\n>(({ side = 'left', variant = 'sidebar', collapsible = 'offcanvas', className, children, ...props }, ref) => {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\n if (collapsible === 'none') {\n return (\n <div\n className={cn('flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground', className)}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetTitle className=\"hidden\"></SheetTitle>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-mobile=\"true\"\n aria-describedby=\"\"\n className=\"w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n );\n }\n\n return (\n <div\n ref={ref}\n className=\"group peer hidden text-sidebar-foreground md:block\"\n data-state={state}\n data-collapsible={state === 'collapsed' ? collapsible : ''}\n data-variant={variant}\n data-side={side}\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n className={cn(\n 'relative h-svh 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)_+_theme(spacing.4))]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon)',\n )}\n />\n <div\n className={cn(\n 'fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex',\n side === 'left'\n ? 'left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]'\n : 'right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]',\n // Adjust the padding for floating and inset variants.\n variant === 'floating' || variant === 'inset'\n ? 'p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l',\n className,\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n className=\"flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow\"\n >\n {children}\n </div>\n </div>\n </div>\n );\n});\nSidebar.displayName = 'Sidebar';\n\nconst SidebarTrigger = React.forwardRef<React.ElementRef<typeof Button>, React.ComponentProps<typeof Button>>(\n ({ className, onClick, ...props }, ref) => {\n const { toggleSidebar } = useSidebar();\n\n return (\n <Button\n ref={ref}\n data-sidebar=\"trigger\"\n variant=\"light\"\n size=\"icon\"\n className={cn('h-7 w-7', className)}\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n {...props}\n >\n <PanelLeft />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n );\n },\n);\nSidebarTrigger.displayName = 'SidebarTrigger';\n\nconst SidebarRail = React.forwardRef<HTMLButtonElement, React.ComponentProps<'button'>>(\n ({ className, ...props }, ref) => {\n const { toggleSidebar } = useSidebar();\n\n return (\n <button\n ref={ref}\n data-sidebar=\"rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n 'absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex',\n '[[data-side=left]_&]:cursor-w-resize [[data-side=right]_&]:cursor-e-resize',\n '[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize',\n 'group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar',\n '[[data-side=left][data-collapsible=offcanvas]_&]:-right-2',\n '[[data-side=right][data-collapsible=offcanvas]_&]:-left-2',\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarRail.displayName = 'SidebarRail';\n\nconst SidebarInset = React.forwardRef<HTMLDivElement, React.ComponentProps<'main'>>(({ className, ...props }, ref) => {\n return (\n <main\n ref={ref}\n className={cn(\n 'relative flex min-h-svh flex-1 flex-col bg-background',\n 'peer-data-[variant=inset]:min-h-[calc(100svh-theme(spacing.4))] md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow',\n className,\n )}\n {...props}\n />\n );\n});\nSidebarInset.displayName = 'SidebarInset';\n\nconst SidebarInput = React.forwardRef<React.ElementRef<typeof Input>, React.ComponentProps<typeof Input>>(\n ({ className, ...props }, ref) => {\n return (\n <Input\n ref={ref}\n data-sidebar=\"input\"\n className={cn(\n 'h-8 w-full bg-background shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring',\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarInput.displayName = 'SidebarInput';\n\nconst SidebarHeader = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => {\n return <div ref={ref} data-sidebar=\"header\" className={cn('flex flex-col gap-2 p-2', className)} {...props} />;\n});\nSidebarHeader.displayName = 'SidebarHeader';\n\nconst SidebarFooter = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => {\n return <div ref={ref} data-sidebar=\"footer\" className={cn('flex flex-col gap-2 p-2', className)} {...props} />;\n});\nSidebarFooter.displayName = 'SidebarFooter';\n\nconst SidebarSeparator = React.forwardRef<React.ElementRef<typeof Separator>, React.ComponentProps<typeof Separator>>(\n ({ className, ...props }, ref) => {\n return (\n <Separator\n ref={ref}\n data-sidebar=\"separator\"\n className={cn('mx-2 w-auto bg-sidebar-border', className)}\n {...props}\n />\n );\n },\n);\nSidebarSeparator.displayName = 'SidebarSeparator';\n\nconst SidebarContent = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"content\"\n className={cn(\n 'flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden',\n className,\n )}\n {...props}\n />\n );\n});\nSidebarContent.displayName = 'SidebarContent';\n\nconst SidebarGroup = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"group\"\n className={cn('relative flex w-full min-w-0 flex-col p-2', className)}\n {...props}\n />\n );\n});\nSidebarGroup.displayName = 'SidebarGroup';\n\nconst SidebarGroupLabel = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'> & { asChild?: boolean }>(\n ({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'div';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-label\"\n className={cn(\n 'flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-none ring-sidebar-ring transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n 'group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0',\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarGroupLabel.displayName = 'SidebarGroupLabel';\n\nconst SidebarGroupAction = React.forwardRef<HTMLButtonElement, React.ComponentProps<'button'> & { asChild?: boolean }>(\n ({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-action\"\n className={cn(\n 'absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute after:-inset-2 after:md:hidden',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarGroupAction.displayName = 'SidebarGroupAction';\n\nconst SidebarGroupContent = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} data-sidebar=\"group-content\" className={cn('w-full text-sm', className)} {...props} />\n ),\n);\nSidebarGroupContent.displayName = 'SidebarGroupContent';\n\nconst SidebarMenu = React.forwardRef<HTMLUListElement, React.ComponentProps<'ul'>>(({ className, ...props }, ref) => (\n <ul ref={ref} data-sidebar=\"menu\" className={cn('flex w-full min-w-0 flex-col gap-1', className)} {...props} />\n));\nSidebarMenu.displayName = 'SidebarMenu';\n\nconst SidebarMenuItem = React.forwardRef<HTMLLIElement, React.ComponentProps<'li'>>(({ className, ...props }, ref) => (\n <li ref={ref} data-sidebar=\"menu-item\" className={cn('group/menu-item relative', className)} {...props} />\n));\nSidebarMenuItem.displayName = 'SidebarMenuItem';\n\nconst sidebarMenuButtonVariants = cva(\n 'peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0',\n {\n variants: {\n variant: {\n default: 'hover:bg-sidebar-accent hover:text-sidebar-accent-foreground',\n outline:\n 'bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]',\n },\n size: {\n default: 'h-8 text-sm',\n sm: 'h-7 text-xs',\n lg: 'h-12 text-sm group-data-[collapsible=icon]:!p-0',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nconst SidebarMenuButton = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<'button'> & {\n asChild?: boolean;\n isActive?: boolean;\n tooltip?: string | React.ComponentProps<typeof TooltipContent>;\n } & VariantProps<typeof sidebarMenuButtonVariants>\n>(({ asChild = false, isActive = false, variant = 'default', size = 'default', tooltip, className, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n const { isMobile, state } = useSidebar();\n\n const button = (\n <Comp\n ref={ref}\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n );\n\n if (!tooltip) {\n return button;\n }\n\n if (typeof tooltip === 'string') {\n tooltip = {\n children: tooltip,\n };\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent side=\"right\" align=\"center\" hidden={state !== 'collapsed' || isMobile} {...tooltip} />\n </Tooltip>\n );\n});\nSidebarMenuButton.displayName = 'SidebarMenuButton';\n\nconst SidebarMenuAction = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<'button'> & {\n asChild?: boolean;\n showOnHover?: boolean;\n }\n>(({ className, asChild = false, showOnHover = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-action\"\n className={cn(\n 'absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute after:-inset-2 after:md:hidden',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n showOnHover &&\n 'group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0',\n className,\n )}\n {...props}\n />\n );\n});\nSidebarMenuAction.displayName = 'SidebarMenuAction';\n\nconst SidebarMenuBadge = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"menu-badge\"\n className={cn(\n 'pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-sidebar-foreground',\n 'peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n ),\n);\nSidebarMenuBadge.displayName = 'SidebarMenuBadge';\n\nconst SidebarMenuSkeleton = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n showIcon?: boolean;\n }\n>(({ className, showIcon = false, ...props }, ref) => {\n // Random width between 50 to 90%.\n const width = React.useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`;\n }, []);\n\n return (\n <div\n ref={ref}\n data-sidebar=\"menu-skeleton\"\n className={cn('flex h-8 items-center gap-2 rounded-md px-2', className)}\n {...props}\n >\n {showIcon && <Skeleton className=\"size-4 rounded-md\" data-sidebar=\"menu-skeleton-icon\" />}\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});\nSidebarMenuSkeleton.displayName = 'SidebarMenuSkeleton';\n\nconst SidebarMenuSub = React.forwardRef<HTMLUListElement, React.ComponentProps<'ul'>>(\n ({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu-sub\"\n className={cn(\n 'mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n ),\n);\nSidebarMenuSub.displayName = 'SidebarMenuSub';\n\nconst SidebarMenuSubItem = React.forwardRef<HTMLLIElement, React.ComponentProps<'li'>>(({ ...props }, ref) => (\n <li ref={ref} {...props} />\n));\nSidebarMenuSubItem.displayName = 'SidebarMenuSubItem';\n\nconst SidebarMenuSubButton = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentProps<'a'> & {\n asChild?: boolean;\n size?: 'sm' | 'md';\n isActive?: boolean;\n }\n>(({ asChild = false, size = 'md', isActive, className, ...props }, ref) => {\n const Comp = asChild ? Slot : 'a';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n 'flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-none ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground',\n 'data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground',\n size === 'sm' && 'text-xs',\n size === 'md' && 'text-sm',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n );\n});\nSidebarMenuSubButton.displayName = 'SidebarMenuSubButton';\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n};\n"]}
1
+ {"version":3,"sources":["/home/ahnjun/projects/egose-shadcn/packages/react/dist/components/ui/sidebar.js"],"names":[],"mappings":"AAAA,qFAAY;AACZ;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,0DAAgC;AAChC,mCAAgC;AAChC,mCAAgC;AAChC,mCAAgC;AAChC,mCAAgC;AAChC,mCAAgC;AAChC,mCAAgC;AAChC,mCAAgC;AAChC,mCAAgC;AAChC,mCAAgC;AAChC,mCAAgC;AAChC;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,24CAAC","file":"/home/ahnjun/projects/egose-shadcn/packages/react/dist/components/ui/sidebar.js"}
@@ -1,543 +1,40 @@
1
1
  "use client";
2
2
  import {
3
- Separator
4
- } from "../../chunk-V4BQYO2M.mjs";
5
- import {
6
- Sheet,
7
- SheetContent,
8
- SheetTitle
9
- } from "../../chunk-FACB3AR5.mjs";
10
- import {
11
- Skeleton
12
- } from "../../chunk-M42ABX7U.mjs";
13
- import {
14
- Tooltip,
15
- TooltipContent,
16
- TooltipProvider,
17
- TooltipTrigger
18
- } from "../../chunk-AEILNM5Z.mjs";
19
- import {
20
- Input
21
- } from "../../chunk-REZO5TYB.mjs";
22
- import {
23
- useIsMobile
24
- } from "../../chunk-77MASFCZ.mjs";
25
- import {
26
- Button
27
- } from "../../chunk-UI6WCDJT.mjs";
3
+ Sidebar,
4
+ SidebarContent,
5
+ SidebarFooter,
6
+ SidebarGroup,
7
+ SidebarGroupAction,
8
+ SidebarGroupContent,
9
+ SidebarGroupLabel,
10
+ SidebarHeader,
11
+ SidebarInput,
12
+ SidebarInset,
13
+ SidebarMenu,
14
+ SidebarMenuAction,
15
+ SidebarMenuBadge,
16
+ SidebarMenuButton,
17
+ SidebarMenuItem,
18
+ SidebarMenuSkeleton,
19
+ SidebarMenuSub,
20
+ SidebarMenuSubButton,
21
+ SidebarMenuSubItem,
22
+ SidebarProvider,
23
+ SidebarRail,
24
+ SidebarSeparator,
25
+ SidebarTrigger,
26
+ useSidebar
27
+ } from "../../chunk-ZZSEDLQG.mjs";
28
+ import "../../chunk-V4BQYO2M.mjs";
29
+ import "../../chunk-FACB3AR5.mjs";
30
+ import "../../chunk-M42ABX7U.mjs";
31
+ import "../../chunk-AEILNM5Z.mjs";
32
+ import "../../chunk-REZO5TYB.mjs";
33
+ import "../../chunk-77MASFCZ.mjs";
34
+ import "../../chunk-UI6WCDJT.mjs";
28
35
  import "../../chunk-D4IKUOX7.mjs";
29
- import {
30
- cn
31
- } from "../../chunk-F5XCCSBC.mjs";
32
- import {
33
- __objRest,
34
- __spreadValues
35
- } from "../../chunk-YOSPWY5K.mjs";
36
-
37
- // components/ui/sidebar.tsx
38
- import * as React from "react";
39
- import { Slot } from "@radix-ui/react-slot";
40
- import { cva } from "class-variance-authority";
41
- import { PanelLeft } from "lucide-react";
42
- var SIDEBAR_COOKIE_NAME = "sidebar_state";
43
- var SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
44
- var SIDEBAR_WIDTH = "16rem";
45
- var SIDEBAR_WIDTH_MOBILE = "18rem";
46
- var SIDEBAR_WIDTH_ICON = "3rem";
47
- var SIDEBAR_KEYBOARD_SHORTCUT = "b";
48
- var SidebarContext = React.createContext(null);
49
- function useSidebar() {
50
- const context = React.useContext(SidebarContext);
51
- if (!context) {
52
- throw new Error("useSidebar must be used within a SidebarProvider.");
53
- }
54
- return context;
55
- }
56
- var SidebarProvider = React.forwardRef((_a, ref) => {
57
- var _b = _a, { defaultOpen = true, open: openProp, onOpenChange: setOpenProp, className, style, children } = _b, props = __objRest(_b, ["defaultOpen", "open", "onOpenChange", "className", "style", "children"]);
58
- const isMobile = useIsMobile();
59
- const [openMobile, setOpenMobile] = React.useState(false);
60
- const [_open, _setOpen] = React.useState(defaultOpen);
61
- const open = openProp != null ? openProp : _open;
62
- const setOpen = React.useCallback(
63
- (value) => {
64
- const openState = typeof value === "function" ? value(open) : value;
65
- if (setOpenProp) {
66
- setOpenProp(openState);
67
- } else {
68
- _setOpen(openState);
69
- }
70
- document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;
71
- },
72
- [setOpenProp, open]
73
- );
74
- const toggleSidebar = React.useCallback(() => {
75
- return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
76
- }, [isMobile, setOpen, setOpenMobile]);
77
- React.useEffect(() => {
78
- const handleKeyDown = (event) => {
79
- if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
80
- event.preventDefault();
81
- toggleSidebar();
82
- }
83
- };
84
- window.addEventListener("keydown", handleKeyDown);
85
- return () => window.removeEventListener("keydown", handleKeyDown);
86
- }, [toggleSidebar]);
87
- const state = open ? "expanded" : "collapsed";
88
- const contextValue = React.useMemo(
89
- () => ({
90
- state,
91
- open,
92
- setOpen,
93
- isMobile,
94
- openMobile,
95
- setOpenMobile,
96
- toggleSidebar
97
- }),
98
- [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]
99
- );
100
- return /* @__PURE__ */ React.createElement(SidebarContext.Provider, { value: contextValue }, /* @__PURE__ */ React.createElement(TooltipProvider, { delayDuration: 0 }, /* @__PURE__ */ React.createElement(
101
- "div",
102
- __spreadValues({
103
- style: __spreadValues({
104
- "--sidebar-width": SIDEBAR_WIDTH,
105
- "--sidebar-width-icon": SIDEBAR_WIDTH_ICON
106
- }, style),
107
- className: cn(
108
- "group/sidebar-wrapper flex min-h-svh w-screen has-[[data-variant=inset]]:bg-sidebar",
109
- className
110
- ),
111
- ref
112
- }, props),
113
- children
114
- )));
115
- });
116
- SidebarProvider.displayName = "SidebarProvider";
117
- var Sidebar = React.forwardRef((_a, ref) => {
118
- var _b = _a, { side = "left", variant = "sidebar", collapsible = "offcanvas", className, children } = _b, props = __objRest(_b, ["side", "variant", "collapsible", "className", "children"]);
119
- const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
120
- if (collapsible === "none") {
121
- return /* @__PURE__ */ React.createElement(
122
- "div",
123
- __spreadValues({
124
- className: cn("flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground", className),
125
- ref
126
- }, props),
127
- children
128
- );
129
- }
130
- if (isMobile) {
131
- return /* @__PURE__ */ React.createElement(Sheet, __spreadValues({ open: openMobile, onOpenChange: setOpenMobile }, props), /* @__PURE__ */ React.createElement(SheetTitle, { className: "hidden" }), /* @__PURE__ */ React.createElement(
132
- SheetContent,
133
- {
134
- "data-sidebar": "sidebar",
135
- "data-mobile": "true",
136
- "aria-describedby": "",
137
- className: "w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden",
138
- style: {
139
- "--sidebar-width": SIDEBAR_WIDTH_MOBILE
140
- },
141
- side
142
- },
143
- /* @__PURE__ */ React.createElement("div", { className: "flex h-full w-full flex-col" }, children)
144
- ));
145
- }
146
- return /* @__PURE__ */ React.createElement(
147
- "div",
148
- {
149
- ref,
150
- className: "group peer hidden text-sidebar-foreground md:block",
151
- "data-state": state,
152
- "data-collapsible": state === "collapsed" ? collapsible : "",
153
- "data-variant": variant,
154
- "data-side": side
155
- },
156
- /* @__PURE__ */ React.createElement(
157
- "div",
158
- {
159
- className: cn(
160
- "relative h-svh w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear",
161
- "group-data-[collapsible=offcanvas]:w-0",
162
- "group-data-[side=right]:rotate-180",
163
- variant === "floating" || variant === "inset" ? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon)"
164
- )
165
- }
166
- ),
167
- /* @__PURE__ */ React.createElement(
168
- "div",
169
- __spreadValues({
170
- className: cn(
171
- "fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex",
172
- side === "left" ? "left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]" : "right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]",
173
- // Adjust the padding for floating and inset variants.
174
- variant === "floating" || variant === "inset" ? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l",
175
- className
176
- )
177
- }, props),
178
- /* @__PURE__ */ React.createElement(
179
- "div",
180
- {
181
- "data-sidebar": "sidebar",
182
- className: "flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow"
183
- },
184
- children
185
- )
186
- )
187
- );
188
- });
189
- Sidebar.displayName = "Sidebar";
190
- var SidebarTrigger = React.forwardRef(
191
- (_a, ref) => {
192
- var _b = _a, { className, onClick } = _b, props = __objRest(_b, ["className", "onClick"]);
193
- const { toggleSidebar } = useSidebar();
194
- return /* @__PURE__ */ React.createElement(
195
- Button,
196
- __spreadValues({
197
- ref,
198
- "data-sidebar": "trigger",
199
- variant: "light",
200
- size: "icon",
201
- className: cn("h-7 w-7", className),
202
- onClick: (event) => {
203
- onClick == null ? void 0 : onClick(event);
204
- toggleSidebar();
205
- }
206
- }, props),
207
- /* @__PURE__ */ React.createElement(PanelLeft, null),
208
- /* @__PURE__ */ React.createElement("span", { className: "sr-only" }, "Toggle Sidebar")
209
- );
210
- }
211
- );
212
- SidebarTrigger.displayName = "SidebarTrigger";
213
- var SidebarRail = React.forwardRef(
214
- (_a, ref) => {
215
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
216
- const { toggleSidebar } = useSidebar();
217
- return /* @__PURE__ */ React.createElement(
218
- "button",
219
- __spreadValues({
220
- ref,
221
- "data-sidebar": "rail",
222
- "aria-label": "Toggle Sidebar",
223
- tabIndex: -1,
224
- onClick: toggleSidebar,
225
- title: "Toggle Sidebar",
226
- className: cn(
227
- "absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex",
228
- "[[data-side=left]_&]:cursor-w-resize [[data-side=right]_&]:cursor-e-resize",
229
- "[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize",
230
- "group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar",
231
- "[[data-side=left][data-collapsible=offcanvas]_&]:-right-2",
232
- "[[data-side=right][data-collapsible=offcanvas]_&]:-left-2",
233
- className
234
- )
235
- }, props)
236
- );
237
- }
238
- );
239
- SidebarRail.displayName = "SidebarRail";
240
- var SidebarInset = React.forwardRef((_a, ref) => {
241
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
242
- return /* @__PURE__ */ React.createElement(
243
- "main",
244
- __spreadValues({
245
- ref,
246
- className: cn(
247
- "relative flex min-h-svh flex-1 flex-col bg-background",
248
- "peer-data-[variant=inset]:min-h-[calc(100svh-theme(spacing.4))] md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow",
249
- className
250
- )
251
- }, props)
252
- );
253
- });
254
- SidebarInset.displayName = "SidebarInset";
255
- var SidebarInput = React.forwardRef(
256
- (_a, ref) => {
257
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
258
- return /* @__PURE__ */ React.createElement(
259
- Input,
260
- __spreadValues({
261
- ref,
262
- "data-sidebar": "input",
263
- className: cn(
264
- "h-8 w-full bg-background shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring",
265
- className
266
- )
267
- }, props)
268
- );
269
- }
270
- );
271
- SidebarInput.displayName = "SidebarInput";
272
- var SidebarHeader = React.forwardRef((_a, ref) => {
273
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
274
- return /* @__PURE__ */ React.createElement("div", __spreadValues({ ref, "data-sidebar": "header", className: cn("flex flex-col gap-2 p-2", className) }, props));
275
- });
276
- SidebarHeader.displayName = "SidebarHeader";
277
- var SidebarFooter = React.forwardRef((_a, ref) => {
278
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
279
- return /* @__PURE__ */ React.createElement("div", __spreadValues({ ref, "data-sidebar": "footer", className: cn("flex flex-col gap-2 p-2", className) }, props));
280
- });
281
- SidebarFooter.displayName = "SidebarFooter";
282
- var SidebarSeparator = React.forwardRef(
283
- (_a, ref) => {
284
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
285
- return /* @__PURE__ */ React.createElement(
286
- Separator,
287
- __spreadValues({
288
- ref,
289
- "data-sidebar": "separator",
290
- className: cn("mx-2 w-auto bg-sidebar-border", className)
291
- }, props)
292
- );
293
- }
294
- );
295
- SidebarSeparator.displayName = "SidebarSeparator";
296
- var SidebarContent = React.forwardRef((_a, ref) => {
297
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
298
- return /* @__PURE__ */ React.createElement(
299
- "div",
300
- __spreadValues({
301
- ref,
302
- "data-sidebar": "content",
303
- className: cn(
304
- "flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",
305
- className
306
- )
307
- }, props)
308
- );
309
- });
310
- SidebarContent.displayName = "SidebarContent";
311
- var SidebarGroup = React.forwardRef((_a, ref) => {
312
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
313
- return /* @__PURE__ */ React.createElement(
314
- "div",
315
- __spreadValues({
316
- ref,
317
- "data-sidebar": "group",
318
- className: cn("relative flex w-full min-w-0 flex-col p-2", className)
319
- }, props)
320
- );
321
- });
322
- SidebarGroup.displayName = "SidebarGroup";
323
- var SidebarGroupLabel = React.forwardRef(
324
- (_a, ref) => {
325
- var _b = _a, { className, asChild = false } = _b, props = __objRest(_b, ["className", "asChild"]);
326
- const Comp = asChild ? Slot : "div";
327
- return /* @__PURE__ */ React.createElement(
328
- Comp,
329
- __spreadValues({
330
- ref,
331
- "data-sidebar": "group-label",
332
- className: cn(
333
- "flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-none ring-sidebar-ring transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",
334
- "group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0",
335
- className
336
- )
337
- }, props)
338
- );
339
- }
340
- );
341
- SidebarGroupLabel.displayName = "SidebarGroupLabel";
342
- var SidebarGroupAction = React.forwardRef(
343
- (_a, ref) => {
344
- var _b = _a, { className, asChild = false } = _b, props = __objRest(_b, ["className", "asChild"]);
345
- const Comp = asChild ? Slot : "button";
346
- return /* @__PURE__ */ React.createElement(
347
- Comp,
348
- __spreadValues({
349
- ref,
350
- "data-sidebar": "group-action",
351
- className: cn(
352
- "absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",
353
- // Increases the hit area of the button on mobile.
354
- "after:absolute after:-inset-2 after:md:hidden",
355
- "group-data-[collapsible=icon]:hidden",
356
- className
357
- )
358
- }, props)
359
- );
360
- }
361
- );
362
- SidebarGroupAction.displayName = "SidebarGroupAction";
363
- var SidebarGroupContent = React.forwardRef(
364
- (_a, ref) => {
365
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
366
- return /* @__PURE__ */ React.createElement("div", __spreadValues({ ref, "data-sidebar": "group-content", className: cn("w-full text-sm", className) }, props));
367
- }
368
- );
369
- SidebarGroupContent.displayName = "SidebarGroupContent";
370
- var SidebarMenu = React.forwardRef((_a, ref) => {
371
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
372
- return /* @__PURE__ */ React.createElement("ul", __spreadValues({ ref, "data-sidebar": "menu", className: cn("flex w-full min-w-0 flex-col gap-1", className) }, props));
373
- });
374
- SidebarMenu.displayName = "SidebarMenu";
375
- var SidebarMenuItem = React.forwardRef((_a, ref) => {
376
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
377
- return /* @__PURE__ */ React.createElement("li", __spreadValues({ ref, "data-sidebar": "menu-item", className: cn("group/menu-item relative", className) }, props));
378
- });
379
- SidebarMenuItem.displayName = "SidebarMenuItem";
380
- var sidebarMenuButtonVariants = cva(
381
- "peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",
382
- {
383
- variants: {
384
- variant: {
385
- default: "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
386
- outline: "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))]"
387
- },
388
- size: {
389
- default: "h-8 text-sm",
390
- sm: "h-7 text-xs",
391
- lg: "h-12 text-sm group-data-[collapsible=icon]:!p-0"
392
- }
393
- },
394
- defaultVariants: {
395
- variant: "default",
396
- size: "default"
397
- }
398
- }
399
- );
400
- var SidebarMenuButton = React.forwardRef((_a, ref) => {
401
- var _b = _a, { asChild = false, isActive = false, variant = "default", size = "default", tooltip, className } = _b, props = __objRest(_b, ["asChild", "isActive", "variant", "size", "tooltip", "className"]);
402
- const Comp = asChild ? Slot : "button";
403
- const { isMobile, state } = useSidebar();
404
- const button = /* @__PURE__ */ React.createElement(
405
- Comp,
406
- __spreadValues({
407
- ref,
408
- "data-sidebar": "menu-button",
409
- "data-size": size,
410
- "data-active": isActive,
411
- className: cn(sidebarMenuButtonVariants({ variant, size }), className)
412
- }, props)
413
- );
414
- if (!tooltip) {
415
- return button;
416
- }
417
- if (typeof tooltip === "string") {
418
- tooltip = {
419
- children: tooltip
420
- };
421
- }
422
- return /* @__PURE__ */ React.createElement(Tooltip, null, /* @__PURE__ */ React.createElement(TooltipTrigger, { asChild: true }, button), /* @__PURE__ */ React.createElement(TooltipContent, __spreadValues({ side: "right", align: "center", hidden: state !== "collapsed" || isMobile }, tooltip)));
423
- });
424
- SidebarMenuButton.displayName = "SidebarMenuButton";
425
- var SidebarMenuAction = React.forwardRef((_a, ref) => {
426
- var _b = _a, { className, asChild = false, showOnHover = false } = _b, props = __objRest(_b, ["className", "asChild", "showOnHover"]);
427
- const Comp = asChild ? Slot : "button";
428
- return /* @__PURE__ */ React.createElement(
429
- Comp,
430
- __spreadValues({
431
- ref,
432
- "data-sidebar": "menu-action",
433
- className: cn(
434
- "absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0",
435
- // Increases the hit area of the button on mobile.
436
- "after:absolute after:-inset-2 after:md:hidden",
437
- "peer-data-[size=sm]/menu-button:top-1",
438
- "peer-data-[size=default]/menu-button:top-1.5",
439
- "peer-data-[size=lg]/menu-button:top-2.5",
440
- "group-data-[collapsible=icon]:hidden",
441
- showOnHover && "group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0",
442
- className
443
- )
444
- }, props)
445
- );
446
- });
447
- SidebarMenuAction.displayName = "SidebarMenuAction";
448
- var SidebarMenuBadge = React.forwardRef(
449
- (_a, ref) => {
450
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
451
- return /* @__PURE__ */ React.createElement(
452
- "div",
453
- __spreadValues({
454
- ref,
455
- "data-sidebar": "menu-badge",
456
- className: cn(
457
- "pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-sidebar-foreground",
458
- "peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground",
459
- "peer-data-[size=sm]/menu-button:top-1",
460
- "peer-data-[size=default]/menu-button:top-1.5",
461
- "peer-data-[size=lg]/menu-button:top-2.5",
462
- "group-data-[collapsible=icon]:hidden",
463
- className
464
- )
465
- }, props)
466
- );
467
- }
468
- );
469
- SidebarMenuBadge.displayName = "SidebarMenuBadge";
470
- var SidebarMenuSkeleton = React.forwardRef((_a, ref) => {
471
- var _b = _a, { className, showIcon = false } = _b, props = __objRest(_b, ["className", "showIcon"]);
472
- const width = React.useMemo(() => {
473
- return `${Math.floor(Math.random() * 40) + 50}%`;
474
- }, []);
475
- return /* @__PURE__ */ React.createElement(
476
- "div",
477
- __spreadValues({
478
- ref,
479
- "data-sidebar": "menu-skeleton",
480
- className: cn("flex h-8 items-center gap-2 rounded-md px-2", className)
481
- }, props),
482
- showIcon && /* @__PURE__ */ React.createElement(Skeleton, { className: "size-4 rounded-md", "data-sidebar": "menu-skeleton-icon" }),
483
- /* @__PURE__ */ React.createElement(
484
- Skeleton,
485
- {
486
- className: "h-4 max-w-[--skeleton-width] flex-1",
487
- "data-sidebar": "menu-skeleton-text",
488
- style: {
489
- "--skeleton-width": width
490
- }
491
- }
492
- )
493
- );
494
- });
495
- SidebarMenuSkeleton.displayName = "SidebarMenuSkeleton";
496
- var SidebarMenuSub = React.forwardRef(
497
- (_a, ref) => {
498
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
499
- return /* @__PURE__ */ React.createElement(
500
- "ul",
501
- __spreadValues({
502
- ref,
503
- "data-sidebar": "menu-sub",
504
- className: cn(
505
- "mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5",
506
- "group-data-[collapsible=icon]:hidden",
507
- className
508
- )
509
- }, props)
510
- );
511
- }
512
- );
513
- SidebarMenuSub.displayName = "SidebarMenuSub";
514
- var SidebarMenuSubItem = React.forwardRef((_a, ref) => {
515
- var props = __objRest(_a, []);
516
- return /* @__PURE__ */ React.createElement("li", __spreadValues({ ref }, props));
517
- });
518
- SidebarMenuSubItem.displayName = "SidebarMenuSubItem";
519
- var SidebarMenuSubButton = React.forwardRef((_a, ref) => {
520
- var _b = _a, { asChild = false, size = "md", isActive, className } = _b, props = __objRest(_b, ["asChild", "size", "isActive", "className"]);
521
- const Comp = asChild ? Slot : "a";
522
- return /* @__PURE__ */ React.createElement(
523
- Comp,
524
- __spreadValues({
525
- ref,
526
- "data-sidebar": "menu-sub-button",
527
- "data-size": size,
528
- "data-active": isActive,
529
- className: cn(
530
- "flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-none ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground",
531
- "data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground",
532
- size === "sm" && "text-xs",
533
- size === "md" && "text-sm",
534
- "group-data-[collapsible=icon]:hidden",
535
- className
536
- )
537
- }, props)
538
- );
539
- });
540
- SidebarMenuSubButton.displayName = "SidebarMenuSubButton";
36
+ import "../../chunk-F5XCCSBC.mjs";
37
+ import "../../chunk-YOSPWY5K.mjs";
541
38
  export {
542
39
  Sidebar,
543
40
  SidebarContent,