@cryptlex/web-components 1.3.4 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/README.md +6 -3
  2. package/dist/components/data-table/column-picker.es.js +12 -11
  3. package/dist/components/data-table/column-picker.es.js.map +1 -1
  4. package/dist/components/data-table/data-table.es.js +112 -95
  5. package/dist/components/data-table/data-table.es.js.map +1 -1
  6. package/dist/components/data-table/table-actions.es.js +8 -8
  7. package/dist/components/data-table/table-actions.es.js.map +1 -1
  8. package/dist/components/data-table/table-content.es.js +20 -15
  9. package/dist/components/data-table/table-content.es.js.map +1 -1
  10. package/dist/components/data-table/table-filter.es.js +264 -0
  11. package/dist/components/data-table/table-filter.es.js.map +1 -0
  12. package/dist/components/data-table/table-utils/constants.es.js +20 -6
  13. package/dist/components/data-table/table-utils/constants.es.js.map +1 -1
  14. package/dist/components/data-table/table-utils/link-display.es.js +4 -4
  15. package/dist/components/data-table/table-utils/link-display.es.js.map +1 -1
  16. package/dist/components/key-value-card/key-value-card.es.js +87 -0
  17. package/dist/components/key-value-card/key-value-card.es.js.map +1 -0
  18. package/dist/components/sidebar/app-layout.es.js +41 -47
  19. package/dist/components/sidebar/app-layout.es.js.map +1 -1
  20. package/dist/components/sidebar/breadcrumb.es.js +58 -0
  21. package/dist/components/sidebar/breadcrumb.es.js.map +1 -0
  22. package/dist/components/sidebar/nav-main.es.js +65 -51
  23. package/dist/components/sidebar/nav-main.es.js.map +1 -1
  24. package/dist/components/static-data-table/data-table.es.js +8 -8
  25. package/dist/components/static-data-table/data-table.es.js.map +1 -1
  26. package/dist/components/ui/avatar.es.js +1 -1
  27. package/dist/components/ui/avatar.es.js.map +1 -1
  28. package/dist/components/ui/badge.es.js +1 -1
  29. package/dist/components/ui/badge.es.js.map +1 -1
  30. package/dist/components/ui/button.es.js +15 -14
  31. package/dist/components/ui/button.es.js.map +1 -1
  32. package/dist/components/ui/calendar.es.js +3 -3
  33. package/dist/components/ui/chart.es.js +16 -16
  34. package/dist/components/ui/chart.es.js.map +1 -1
  35. package/dist/components/ui/checkbox.es.js +1 -1
  36. package/dist/components/ui/checkbox.es.js.map +1 -1
  37. package/dist/components/ui/command.es.js +28 -28
  38. package/dist/components/ui/command.es.js.map +1 -1
  39. package/dist/components/ui/copy-button.es.js +76 -0
  40. package/dist/components/ui/copy-button.es.js.map +1 -0
  41. package/dist/components/ui/dialog.es.js +8 -8
  42. package/dist/components/ui/dialog.es.js.map +1 -1
  43. package/dist/components/ui/drawer.es.js +18 -21
  44. package/dist/components/ui/drawer.es.js.map +1 -1
  45. package/dist/components/ui/dropdown-menu.es.js +38 -38
  46. package/dist/components/ui/dropdown-menu.es.js.map +1 -1
  47. package/dist/components/ui/form.es.js +4 -4
  48. package/dist/components/ui/input-otp.es.js +2 -2
  49. package/dist/components/ui/input-otp.es.js.map +1 -1
  50. package/dist/components/ui/input.es.js +7 -7
  51. package/dist/components/ui/input.es.js.map +1 -1
  52. package/dist/components/ui/link-button.es.js +22 -0
  53. package/dist/components/ui/link-button.es.js.map +1 -0
  54. package/dist/components/ui/mutli-select.es.js +17 -15
  55. package/dist/components/ui/mutli-select.es.js.map +1 -1
  56. package/dist/components/ui/navigation-menu.es.js +3 -3
  57. package/dist/components/ui/navigation-menu.es.js.map +1 -1
  58. package/dist/components/ui/password-input.es.js +10 -10
  59. package/dist/components/ui/password-input.es.js.map +1 -1
  60. package/dist/components/ui/popover.es.js +1 -1
  61. package/dist/components/ui/popover.es.js.map +1 -1
  62. package/dist/components/ui/radio-group.es.js +7 -7
  63. package/dist/components/ui/radio-group.es.js.map +1 -1
  64. package/dist/components/ui/select.es.js +20 -20
  65. package/dist/components/ui/select.es.js.map +1 -1
  66. package/dist/components/ui/sheet.es.js +8 -8
  67. package/dist/components/ui/sheet.es.js.map +1 -1
  68. package/dist/components/ui/sidebar.es.js +76 -76
  69. package/dist/components/ui/sidebar.es.js.map +1 -1
  70. package/dist/components/ui/table-page-layout.es.js +8 -8
  71. package/dist/components/ui/table-page-layout.es.js.map +1 -1
  72. package/dist/components/ui/table.es.js +19 -19
  73. package/dist/components/ui/table.es.js.map +1 -1
  74. package/dist/components/ui/tabs.es.js +11 -11
  75. package/dist/components/ui/tabs.es.js.map +1 -1
  76. package/dist/index.es.d.ts +54 -21
  77. package/dist/index.es.js +231 -226
  78. package/dist/index.es.js.map +1 -1
  79. package/dist/utils/index.es.js +19 -14
  80. package/dist/utils/index.es.js.map +1 -1
  81. package/lib/index.css +15 -87
  82. package/lib/tailwind.preset.css +220 -0
  83. package/lib/tokens.css +54 -54
  84. package/package.json +9 -8
  85. package/dist/components/info-card/info-card.es.js +0 -71
  86. package/dist/components/info-card/info-card.es.js.map +0 -1
  87. package/tailwind.preset.ts +0 -183
@@ -1 +1 @@
1
- {"version":3,"file":"sidebar.es.js","sources":["../../../lib/components/ui/sidebar.tsx"],"sourcesContent":["import { Slot } from '@radix-ui/react-slot';\nimport { VariantProps, cva } from 'class-variance-authority';\nimport { ChevronLeft, ChevronRight, Menu } 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 Sheet,\n SheetContent,\n SheetDescription,\n SheetHeader,\n SheetTitle,\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 '@/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 SidebarContext = {\n state: 'expanded' | 'collapsed';\n open: boolean;\n setOpen: (open: boolean) => void;\n openMobile: boolean;\n setOpenMobile: (open: boolean) => void;\n isMobile: boolean;\n toggleSidebar: () => void;\n};\n\nconst SidebarContext = React.createContext<SidebarContext | null>(null);\n\nfunction useSidebar() {\n const context = React.useContext(SidebarContext);\n if (!context) {\n throw new Error('useSidebar must be used within a SidebarProvider.');\n }\n\n return context;\n}\n\nconst SidebarProvider = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n }\n>(\n (\n {\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n },\n ref,\n ) => {\n const isMobile = useIsMobile();\n const [openMobile, setOpenMobile] = React.useState(false);\n\n // This is the internal state of the sidebar.\n // We use openProp and setOpenProp for control from outside the component.\n const [_open, _setOpen] = React.useState(defaultOpen);\n const open = openProp ?? _open;\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n if (setOpenProp) {\n return setOpenProp?.(typeof value === 'function' ? value(open) : value);\n }\n\n _setOpen(value);\n\n // This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${open}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n },\n [setOpenProp, open],\n );\n\n // Helper to toggle the sidebar.\n const toggleSidebar = React.useCallback(() => {\n return isMobile ? 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-full has-[[data-variant=inset]]:bg-sidebar',\n className,\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n );\n },\n);\nSidebarProvider.displayName = 'SidebarProvider';\n\nconst Sidebar = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n side?: 'left' | 'right';\n variant?: 'sidebar' | 'floating' | 'inset';\n collapsible?: 'offcanvas' | 'icon' | 'none';\n }\n>(\n (\n {\n side = 'left',\n variant = 'sidebar',\n collapsible = 'offcanvas',\n className,\n children,\n ...props\n },\n ref,\n ) => {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\n if (collapsible === 'none') {\n return (\n <div\n className={cn(\n 'flex h-full w-[--sidebar-width] flex-col bg-sidebar text-sidebar-foreground',\n className,\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-mobile=\"true\"\n className=\"w-[--sidebar-width] bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <SheetHeader>\n <SheetTitle />\n <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 ref={ref}\n className=\"group peer hidden md:block text-sidebar-foreground\"\n data-state={state}\n data-collapsible={state === 'collapsed' ? collapsible : ''}\n data-variant={variant}\n data-side={side}\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n className={cn(\n 'duration-200 relative h-svh w-[--sidebar-width] bg-transparent transition-[width] ease-linear',\n 'group-data-[collapsible=offcanvas]:w-0',\n 'group-data-[side=right]:rotate-180',\n variant === 'floating' || variant === 'inset'\n ? 'group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]'\n : 'group-data-[collapsible=icon]:w-[--sidebar-width-icon]',\n )}\n />\n <div\n className={cn(\n 'duration-200 fixed inset-y-0 z-10 hidden h-svh w-[--sidebar-width] transition-[left,right,width] ease-linear md:flex',\n side === 'left'\n ? 'left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]'\n : 'right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]',\n // 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 },\n);\nSidebar.displayName = 'Sidebar';\n\nconst SidebarTrigger = React.forwardRef<\n React.ElementRef<typeof Button>,\n React.ComponentProps<typeof Button>\n>(({ className, onClick, ...props }, ref) => {\n const { toggleSidebar, open, isMobile } = useSidebar();\n\n return (\n <Button\n ref={ref}\n data-sidebar=\"trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn('h-7 w-7', className)}\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n {...props}\n >\n {isMobile ? <Menu /> : open ? <ChevronLeft /> : <ChevronRight />}\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n );\n});\nSidebarTrigger.displayName = 'SidebarTrigger';\n\nconst SidebarRail = React.forwardRef<HTMLButtonElement, React.ComponentProps<'button'>>(\n ({ className, ...props }, ref) => {\n const { toggleSidebar } = useSidebar();\n\n return (\n <button\n ref={ref}\n data-sidebar=\"rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n 'absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex',\n '[[data-side=left]_&]:cursor-w-resize [[data-side=right]_&]:cursor-e-resize',\n '[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize',\n 'group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar',\n '[[data-side=left][data-collapsible=offcanvas]_&]:-right-2',\n '[[data-side=right][data-collapsible=offcanvas]_&]:-left-2',\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarRail.displayName = 'SidebarRail';\n\nconst SidebarInset = React.forwardRef<HTMLDivElement, React.ComponentProps<'main'>>(\n ({ className, ...props }, ref) => {\n return (\n <main\n ref={ref}\n className={cn(\n 'relative flex min-h-svh flex-1 flex-col bg-background',\n 'peer-data-[variant=inset]:min-h-[calc(100svh-theme(spacing.4))] md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow',\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarInset.displayName = 'SidebarInset';\n\nconst SidebarInput = React.forwardRef<\n React.ElementRef<typeof Input>,\n React.ComponentProps<typeof Input>\n>(({ className, ...props }, ref) => {\n return (\n <Input\n ref={ref}\n data-sidebar=\"input\"\n className={cn(\n 'h-8 w-full bg-background shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring',\n className,\n )}\n {...props}\n />\n );\n});\nSidebarInput.displayName = 'SidebarInput';\n\nconst SidebarHeader = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"header\"\n className={cn('flex flex-col gap-2 p-2', className)}\n {...props}\n />\n );\n },\n);\nSidebarHeader.displayName = 'SidebarHeader';\n\nconst SidebarFooter = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"footer\"\n className={cn('flex flex-col gap-2 p-2', className)}\n {...props}\n />\n );\n },\n);\nSidebarFooter.displayName = 'SidebarFooter';\n\nconst SidebarSeparator = React.forwardRef<\n React.ElementRef<typeof Separator>,\n React.ComponentProps<typeof Separator>\n>(({ className, ...props }, ref) => {\n return (\n <Separator\n ref={ref}\n data-sidebar=\"separator\"\n className={cn('mx-2 w-auto bg-sidebar-border', className)}\n {...props}\n />\n );\n});\nSidebarSeparator.displayName = 'SidebarSeparator';\n\nconst SidebarContent = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"content\"\n className={cn(\n 'flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden',\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarContent.displayName = 'SidebarContent';\n\nconst SidebarGroup = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"group\"\n className={cn('relative flex w-full min-w-0 flex-col p-2', className)}\n {...props}\n />\n );\n },\n);\nSidebarGroup.displayName = 'SidebarGroup';\n\nconst SidebarGroupLabel = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & { asChild?: boolean }\n>(({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'div';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-label\"\n className={cn(\n 'duration-200 flex h-8 shrink-0 items-center rounded-md px-2 text-caption font-medium text-sidebar-foreground/70 outline-none ring-sidebar-ring transition-[margin,opa] ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n 'group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0',\n className,\n )}\n {...props}\n />\n );\n});\nSidebarGroupLabel.displayName = 'SidebarGroupLabel';\n\nconst SidebarGroupAction = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<'button'> & { asChild?: boolean }\n>(({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-action\"\n className={cn(\n 'absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute after:-inset-2 after:md:hidden',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n );\n});\nSidebarGroupAction.displayName = 'SidebarGroupAction';\n\nconst SidebarGroupContent = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"group-content\"\n className={cn('w-full text-body', className)}\n {...props}\n />\n ),\n);\nSidebarGroupContent.displayName = 'SidebarGroupContent';\n\nconst SidebarMenu = React.forwardRef<HTMLUListElement, React.ComponentProps<'ul'>>(\n ({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu\"\n className={cn('flex w-full min-w-0 flex-col', className)}\n {...props}\n />\n ),\n);\nSidebarMenu.displayName = 'SidebarMenu';\n\nconst SidebarMenuItem = React.forwardRef<HTMLLIElement, React.ComponentProps<'li'>>(\n ({ className, ...props }, ref) => (\n <li\n ref={ref}\n data-sidebar=\"menu-item\"\n className={cn('group/menu-item relative', className)}\n {...props}\n />\n ),\n);\nSidebarMenuItem.displayName = 'SidebarMenuItem';\n\nconst sidebarMenuButtonVariants = cva(\n 'peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-body 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-body',\n sm: 'h-7 text-caption',\n lg: 'h-12 text-body group-data-[collapsible=icon]:!p-0',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nconst SidebarMenuButton = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<'button'> & {\n asChild?: boolean;\n isActive?: boolean;\n tooltip?: string | React.ComponentProps<typeof TooltipContent>;\n } & VariantProps<typeof sidebarMenuButtonVariants>\n>(\n (\n {\n asChild = false,\n isActive = false,\n variant = 'default',\n size = 'lg',\n tooltip,\n className,\n ...props\n },\n ref,\n ) => {\n const Comp = asChild ? Slot : 'button';\n const { isMobile, state } = useSidebar();\n\n const button = (\n <Comp\n ref={ref}\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n );\n\n if (!tooltip) {\n return button;\n }\n\n if (typeof tooltip === 'string') {\n tooltip = {\n children: tooltip,\n };\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent\n side=\"right\"\n align=\"center\"\n hidden={state !== 'collapsed' || isMobile}\n {...tooltip}\n />\n </Tooltip>\n );\n },\n);\nSidebarMenuButton.displayName = 'SidebarMenuButton';\n\nconst SidebarMenuAction = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<'button'> & {\n asChild?: boolean;\n showOnHover?: boolean;\n }\n>(({ className, asChild = false, showOnHover = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-action\"\n className={cn(\n 'absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute after:-inset-2 after:md:hidden',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n showOnHover &&\n 'group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0',\n className,\n )}\n {...props}\n />\n );\n});\nSidebarMenuAction.displayName = 'SidebarMenuAction';\n\nconst SidebarMenuBadge = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"menu-badge\"\n className={cn(\n 'absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-caption font-medium tabular-nums text-sidebar-foreground select-none pointer-events-none',\n 'peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n ),\n);\nSidebarMenuBadge.displayName = 'SidebarMenuBadge';\n\nconst SidebarMenuSkeleton = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n showIcon?: boolean;\n }\n>(({ className, showIcon = false, ...props }, ref) => {\n // Random width between 50 to 90%.\n const width = React.useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`;\n }, []);\n\n return (\n <div\n ref={ref}\n data-sidebar=\"menu-skeleton\"\n className={cn('rounded-md h-8 flex gap-2 px-2 items-center', className)}\n {...props}\n >\n {showIcon && <Skeleton className=\"size-4 rounded-md\" data-sidebar=\"menu-skeleton-icon\" />}\n <Skeleton\n className=\"h-4 flex-1 max-w-[--skeleton-width]\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n '--skeleton-width': width,\n } as React.CSSProperties\n }\n />\n </div>\n );\n});\nSidebarMenuSkeleton.displayName = 'SidebarMenuSkeleton';\n\nconst SidebarMenuSub = React.forwardRef<HTMLUListElement, React.ComponentProps<'ul'>>(\n ({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu-sub\"\n className={cn(\n 'mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 px-2.5 py-0.5',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n ),\n);\nSidebarMenuSub.displayName = 'SidebarMenuSub';\n\nconst SidebarMenuSubItem = React.forwardRef<HTMLLIElement, React.ComponentProps<'li'>>(\n ({ ...props }, ref) => <li ref={ref} {...props} />,\n);\nSidebarMenuSubItem.displayName = 'SidebarMenuSubItem';\n\nconst SidebarMenuSubButton = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentProps<'a'> & {\n asChild?: boolean;\n size?: 'sm' | 'md';\n isActive?: boolean;\n }\n>(({ asChild = false, size = 'md', isActive, className, ...props }, ref) => {\n const Comp = asChild ? Slot : 'a';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n 'flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-none ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground',\n 'data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground',\n size === 'sm' && 'text-caption',\n size === 'md' && 'text-body',\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\n"],"names":["SIDEBAR_COOKIE_NAME","SIDEBAR_COOKIE_MAX_AGE","SIDEBAR_WIDTH","SIDEBAR_WIDTH_MOBILE","SIDEBAR_WIDTH_ICON","SIDEBAR_KEYBOARD_SHORTCUT","SidebarContext","React","useSidebar","context","SidebarProvider","defaultOpen","openProp","setOpenProp","className","style","children","props","ref","isMobile","useIsMobile","openMobile","setOpenMobile","_open","_setOpen","open","setOpen","value","toggleSidebar","handleKeyDown","event","state","contextValue","jsx","TooltipProvider","cn","Sidebar","side","variant","collapsible","Sheet","jsxs","SheetContent","SheetHeader","SheetTitle","SheetDescription","SidebarTrigger","onClick","Button","Menu","ChevronLeft","ChevronRight","SidebarRail","SidebarInset","SidebarInput","Input","SidebarHeader","SidebarFooter","SidebarSeparator","Separator","SidebarContent","SidebarGroup","SidebarGroupLabel","asChild","Slot","SidebarGroupAction","SidebarGroupContent","SidebarMenu","SidebarMenuItem","sidebarMenuButtonVariants","cva","SidebarMenuButton","isActive","size","tooltip","Comp","button","Tooltip","TooltipTrigger","TooltipContent","SidebarMenuAction","showOnHover","SidebarMenuBadge","SidebarMenuSkeleton","showIcon","width","Skeleton","SidebarMenuSub","SidebarMenuSubItem","SidebarMenuSubButton"],"mappings":"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"}
1
+ {"version":3,"file":"sidebar.es.js","sources":["../../../lib/components/ui/sidebar.tsx"],"sourcesContent":["import { Slot } from '@radix-ui/react-slot';\nimport { VariantProps, cva } from 'class-variance-authority';\nimport { ChevronLeft, ChevronRight, Menu } 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 Sheet,\n SheetContent,\n SheetDescription,\n SheetHeader,\n SheetTitle,\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 '@/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 SidebarContext = {\n state: 'expanded' | 'collapsed';\n open: boolean;\n setOpen: (open: boolean) => void;\n openMobile: boolean;\n setOpenMobile: (open: boolean) => void;\n isMobile: boolean;\n toggleSidebar: () => void;\n};\n\nconst SidebarContext = React.createContext<SidebarContext | null>(null);\n\nfunction useSidebar() {\n const context = React.useContext(SidebarContext);\n if (!context) {\n throw new Error('useSidebar must be used within a SidebarProvider.');\n }\n\n return context;\n}\n\nconst SidebarProvider = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n }\n>(\n (\n {\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n },\n ref,\n ) => {\n const isMobile = useIsMobile();\n const [openMobile, setOpenMobile] = React.useState(false);\n\n // This is the internal state of the sidebar.\n // We use openProp and setOpenProp for control from outside the component.\n const [_open, _setOpen] = React.useState(defaultOpen);\n const open = openProp ?? _open;\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n if (setOpenProp) {\n return setOpenProp?.(typeof value === 'function' ? value(open) : value);\n }\n\n _setOpen(value);\n\n // This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${open}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n },\n [setOpenProp, open],\n );\n\n // Helper to toggle the sidebar.\n const toggleSidebar = React.useCallback(() => {\n return isMobile ? 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-full has-data-[variant=inset]:bg-sidebar',\n className,\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n );\n },\n);\nSidebarProvider.displayName = 'SidebarProvider';\n\nconst Sidebar = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n side?: 'left' | 'right';\n variant?: 'sidebar' | 'floating' | 'inset';\n collapsible?: 'offcanvas' | 'icon' | 'none';\n }\n>(\n (\n {\n side = 'left',\n variant = 'sidebar',\n collapsible = 'offcanvas',\n className,\n children,\n ...props\n },\n ref,\n ) => {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\n if (collapsible === 'none') {\n return (\n <div\n className={cn(\n 'flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground',\n className,\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-mobile=\"true\"\n className=\"w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <SheetHeader>\n <SheetTitle />\n <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 ref={ref}\n className=\"group peer hidden md:block text-sidebar-foreground\"\n data-state={state}\n data-collapsible={state === 'collapsed' ? collapsible : ''}\n data-variant={variant}\n data-side={side}\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n className={cn(\n 'duration-200 relative h-svh w-(--sidebar-width) bg-transparent transition-[width] ease-linear',\n 'group-data-[collapsible=offcanvas]:w-0',\n 'group-data-[side=right]:rotate-180',\n variant === 'floating' || variant === 'inset'\n ? 'group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon)',\n )}\n />\n <div\n className={cn(\n 'duration-200 fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] ease-linear md:flex',\n side === 'left'\n ? 'left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]'\n : 'right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]',\n // Adjust the padding for floating and inset variants.\n variant === 'floating' || variant === 'inset'\n ? 'p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l',\n className,\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n className=\"flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow-sm\"\n >\n {children}\n </div>\n </div>\n </div>\n );\n },\n);\nSidebar.displayName = 'Sidebar';\n\nconst SidebarTrigger = React.forwardRef<\n React.ElementRef<typeof Button>,\n React.ComponentProps<typeof Button>\n>(({ className, onClick, ...props }, ref) => {\n const { toggleSidebar, open, isMobile } = useSidebar();\n\n return (\n <Button\n ref={ref}\n data-sidebar=\"trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn('h-7 w-7', className)}\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n {...props}\n >\n {isMobile ? <Menu /> : open ? <ChevronLeft /> : <ChevronRight />}\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n );\n});\nSidebarTrigger.displayName = 'SidebarTrigger';\n\nconst SidebarRail = React.forwardRef<HTMLButtonElement, React.ComponentProps<'button'>>(\n ({ className, ...props }, ref) => {\n const { toggleSidebar } = useSidebar();\n\n return (\n <button\n ref={ref}\n data-sidebar=\"rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n 'absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex',\n 'in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize',\n '[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize',\n 'group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full 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);\nSidebarRail.displayName = 'SidebarRail';\n\nconst SidebarInset = React.forwardRef<HTMLDivElement, React.ComponentProps<'main'>>(\n ({ className, ...props }, ref) => {\n return (\n <main\n ref={ref}\n className={cn(\n 'relative flex min-h-svh flex-1 flex-col bg-background',\n 'peer-data-[variant=inset]:min-h-[calc(100svh-(--spacing(4)))] md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm',\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarInset.displayName = 'SidebarInset';\n\nconst SidebarInput = React.forwardRef<\n React.ElementRef<typeof Input>,\n React.ComponentProps<typeof Input>\n>(({ className, ...props }, ref) => {\n return (\n <Input\n ref={ref}\n data-sidebar=\"input\"\n className={cn(\n 'h-8 w-full bg-background shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring',\n className,\n )}\n {...props}\n />\n );\n});\nSidebarInput.displayName = 'SidebarInput';\n\nconst SidebarHeader = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"header\"\n className={cn('flex flex-col gap-2 p-2', className)}\n {...props}\n />\n );\n },\n);\nSidebarHeader.displayName = 'SidebarHeader';\n\nconst SidebarFooter = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"footer\"\n className={cn('flex flex-col gap-2 p-2', className)}\n {...props}\n />\n );\n },\n);\nSidebarFooter.displayName = 'SidebarFooter';\n\nconst SidebarSeparator = React.forwardRef<\n React.ElementRef<typeof Separator>,\n React.ComponentProps<typeof Separator>\n>(({ className, ...props }, ref) => {\n return (\n <Separator\n ref={ref}\n data-sidebar=\"separator\"\n className={cn('mx-2 w-auto bg-sidebar-border', className)}\n {...props}\n />\n );\n});\nSidebarSeparator.displayName = 'SidebarSeparator';\n\nconst SidebarContent = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"content\"\n className={cn(\n 'flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden',\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarContent.displayName = 'SidebarContent';\n\nconst SidebarGroup = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"group\"\n className={cn('relative flex w-full min-w-0 flex-col p-2', className)}\n {...props}\n />\n );\n },\n);\nSidebarGroup.displayName = 'SidebarGroup';\n\nconst SidebarGroupLabel = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & { asChild?: boolean }\n>(({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'div';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-label\"\n className={cn(\n 'duration-200 flex h-8 shrink-0 items-center rounded-md px-2 text-caption font-medium text-sidebar-foreground/70 outline-hidden ring-sidebar-ring transition-[margin,opa] ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n 'group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0',\n className,\n )}\n {...props}\n />\n );\n});\nSidebarGroupLabel.displayName = 'SidebarGroupLabel';\n\nconst SidebarGroupAction = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<'button'> & { asChild?: boolean }\n>(({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-action\"\n className={cn(\n 'absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-hidden 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 md:after:hidden',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n );\n});\nSidebarGroupAction.displayName = 'SidebarGroupAction';\n\nconst SidebarGroupContent = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"group-content\"\n className={cn('w-full text-body', className)}\n {...props}\n />\n ),\n);\nSidebarGroupContent.displayName = 'SidebarGroupContent';\n\nconst SidebarMenu = React.forwardRef<HTMLUListElement, React.ComponentProps<'ul'>>(\n ({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu\"\n className={cn('flex w-full min-w-0 flex-col', className)}\n {...props}\n />\n ),\n);\nSidebarMenu.displayName = 'SidebarMenu';\n\nconst SidebarMenuItem = React.forwardRef<HTMLLIElement, React.ComponentProps<'li'>>(\n ({ className, ...props }, ref) => (\n <li\n ref={ref}\n data-sidebar=\"menu-item\"\n className={cn('group/menu-item relative', className)}\n {...props}\n />\n ),\n);\nSidebarMenuItem.displayName = 'SidebarMenuItem';\n\nconst sidebarMenuButtonVariants = cva(\n 'peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-body 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 {\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-body',\n sm: 'h-7 text-caption',\n lg: 'h-12 text-body group-data-[collapsible=icon]:p-0!',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nconst SidebarMenuButton = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<'button'> & {\n asChild?: boolean;\n isActive?: boolean;\n tooltip?: string | React.ComponentProps<typeof TooltipContent>;\n } & VariantProps<typeof sidebarMenuButtonVariants>\n>(\n (\n {\n asChild = false,\n isActive = false,\n variant = 'default',\n size = 'lg',\n tooltip,\n className,\n ...props\n },\n ref,\n ) => {\n const Comp = asChild ? Slot : 'button';\n const { isMobile, state } = useSidebar();\n\n const button = (\n <Comp\n ref={ref}\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n );\n\n if (!tooltip) {\n return button;\n }\n\n if (typeof tooltip === 'string') {\n tooltip = {\n children: tooltip,\n };\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent\n side=\"right\"\n align=\"center\"\n hidden={state !== 'collapsed' || isMobile}\n {...tooltip}\n />\n </Tooltip>\n );\n },\n);\nSidebarMenuButton.displayName = 'SidebarMenuButton';\n\nconst SidebarMenuAction = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<'button'> & {\n asChild?: boolean;\n showOnHover?: boolean;\n }\n>(({ className, asChild = false, showOnHover = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-action\"\n className={cn(\n 'absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-hidden 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 md:after:hidden',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n showOnHover &&\n 'group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0',\n className,\n )}\n {...props}\n />\n );\n});\nSidebarMenuAction.displayName = 'SidebarMenuAction';\n\nconst SidebarMenuBadge = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"menu-badge\"\n className={cn(\n 'absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-caption font-medium tabular-nums text-sidebar-foreground select-none pointer-events-none',\n 'peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n ),\n);\nSidebarMenuBadge.displayName = 'SidebarMenuBadge';\n\nconst SidebarMenuSkeleton = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n showIcon?: boolean;\n }\n>(({ className, showIcon = false, ...props }, ref) => {\n // Random width between 50 to 90%.\n const width = React.useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`;\n }, []);\n\n return (\n <div\n ref={ref}\n data-sidebar=\"menu-skeleton\"\n className={cn('rounded-md h-8 flex gap-2 px-2 items-center', className)}\n {...props}\n >\n {showIcon && <Skeleton className=\"size-4 rounded-md\" data-sidebar=\"menu-skeleton-icon\" />}\n <Skeleton\n className=\"h-4 flex-1 max-w-(--skeleton-width)\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n '--skeleton-width': width,\n } as React.CSSProperties\n }\n />\n </div>\n );\n});\nSidebarMenuSkeleton.displayName = 'SidebarMenuSkeleton';\n\nconst SidebarMenuSub = React.forwardRef<HTMLUListElement, React.ComponentProps<'ul'>>(\n ({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu-sub\"\n className={cn(\n 'mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 px-2.5 py-0.5',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n ),\n);\nSidebarMenuSub.displayName = 'SidebarMenuSub';\n\nconst SidebarMenuSubItem = React.forwardRef<HTMLLIElement, React.ComponentProps<'li'>>(\n ({ ...props }, ref) => <li ref={ref} {...props} />,\n);\nSidebarMenuSubItem.displayName = 'SidebarMenuSubItem';\n\nconst SidebarMenuSubButton = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentProps<'a'> & {\n asChild?: boolean;\n size?: 'sm' | 'md';\n isActive?: boolean;\n }\n>(({ asChild = false, size = 'md', isActive, className, ...props }, ref) => {\n const Comp = asChild ? Slot : 'a';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n 'flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-hidden 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-caption',\n size === 'md' && 'text-body',\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\n"],"names":["SIDEBAR_COOKIE_NAME","SIDEBAR_COOKIE_MAX_AGE","SIDEBAR_WIDTH","SIDEBAR_WIDTH_MOBILE","SIDEBAR_WIDTH_ICON","SIDEBAR_KEYBOARD_SHORTCUT","SidebarContext","React","useSidebar","context","SidebarProvider","defaultOpen","openProp","setOpenProp","className","style","children","props","ref","isMobile","useIsMobile","openMobile","setOpenMobile","_open","_setOpen","open","setOpen","value","toggleSidebar","handleKeyDown","event","state","contextValue","jsx","TooltipProvider","cn","Sidebar","side","variant","collapsible","Sheet","jsxs","SheetContent","SheetHeader","SheetTitle","SheetDescription","SidebarTrigger","onClick","Button","Menu","ChevronLeft","ChevronRight","SidebarRail","SidebarInset","SidebarInput","Input","SidebarHeader","SidebarFooter","SidebarSeparator","Separator","SidebarContent","SidebarGroup","SidebarGroupLabel","asChild","Slot","SidebarGroupAction","SidebarGroupContent","SidebarMenu","SidebarMenuItem","sidebarMenuButtonVariants","cva","SidebarMenuButton","isActive","size","tooltip","Comp","button","Tooltip","TooltipTrigger","TooltipContent","SidebarMenuAction","showOnHover","SidebarMenuBadge","SidebarMenuSkeleton","showIcon","width","Skeleton","SidebarMenuSub","SidebarMenuSubItem","SidebarMenuSubButton"],"mappings":";;;;;;;;;;;;;AAoBA,MAAMA,IAAsB,iBACtBC,IAAyB,KAAK,KAAK,KAAK,GACxCC,IAAgB,SAChBC,IAAuB,SACvBC,IAAqB,QACrBC,IAA4B,KAY5BC,IAAiBC,EAAM,cAAqC,IAAI;AAEtE,SAASC,IAAa;AACd,QAAAC,IAAUF,EAAM,WAAWD,CAAc;AAC/C,MAAI,CAACG;AACG,UAAA,IAAI,MAAM,mDAAmD;AAG9D,SAAAA;AACT;AAEA,MAAMC,IAAkBH,EAAM;AAAA,EAQ5B,CACE;AAAA,IACE,aAAAI,IAAc;AAAA,IACd,MAAMC;AAAA,IACN,cAAcC;AAAA,IACd,WAAAC;AAAA,IACA,OAAAC;AAAA,IACA,UAAAC;AAAA,IACA,GAAGC;AAAA,KAELC,MACG;AACH,UAAMC,IAAWC,EAAY,GACvB,CAACC,GAAYC,CAAa,IAAIf,EAAM,SAAS,EAAK,GAIlD,CAACgB,GAAOC,CAAQ,IAAIjB,EAAM,SAASI,CAAW,GAC9Cc,IAAOb,KAAYW,GACnBG,IAAUnB,EAAM;AAAA,MACpB,CAACoB,MAAmD;AAClD,YAAId;AACF,iBAAOA,KAAA,gBAAAA,EAAc,OAAOc,KAAU,aAAaA,EAAMF,CAAI,IAAIE;AAGnE,QAAAH,EAASG,CAAK,GAGd,SAAS,SAAS,GAAG3B,CAAmB,IAAIyB,CAAI,qBAAqBxB,CAAsB;AAAA,MAC7F;AAAA,MACA,CAACY,GAAaY,CAAI;AAAA,IACpB,GAGMG,IAAgBrB,EAAM,YAAY,MAC/BY,IAAWG,EAAc,CAACG,MAAS,CAACA,CAAI,IAAIC,EAAQ,CAACD,MAAS,CAACA,CAAI,GACzE,CAACN,GAAUO,GAASJ,CAAa,CAAC;AAGrC,IAAAf,EAAM,UAAU,MAAM;AACd,YAAAsB,IAAgB,CAACC,MAAyB;AAC9C,QAAIA,EAAM,QAAQzB,MAA8ByB,EAAM,WAAWA,EAAM,aACrEA,EAAM,eAAe,GACPF,EAAA;AAAA,MAElB;AAEO,oBAAA,iBAAiB,WAAWC,CAAa,GACzC,MAAM,OAAO,oBAAoB,WAAWA,CAAa;AAAA,IAAA,GAC/D,CAACD,CAAa,CAAC;AAIZ,UAAAG,IAAQN,IAAO,aAAa,aAE5BO,IAAezB,EAAM;AAAA,MACzB,OAAO;AAAA,QACL,OAAAwB;AAAA,QACA,MAAAN;AAAA,QACA,SAAAC;AAAA,QACA,UAAAP;AAAA,QACA,YAAAE;AAAA,QACA,eAAAC;AAAA,QACA,eAAAM;AAAA,MAAA;AAAA,MAEF,CAACG,GAAON,GAAMC,GAASP,GAAUE,GAAYC,GAAeM,CAAa;AAAA,IAC3E;AAGE,WAAA,gBAAAK,EAAC3B,EAAe,UAAf,EAAwB,OAAO0B,GAC9B,UAAA,gBAAAC,EAACC,GAAgB,EAAA,eAAe,GAC9B,UAAA,gBAAAD;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OACE;AAAA,UACE,mBAAmB/B;AAAA,UACnB,wBAAwBE;AAAA,UACxB,GAAGW;AAAA,QACL;AAAA,QAEF,WAAWoB;AAAA,UACT;AAAA,UACArB;AAAA,QACF;AAAA,QACA,KAAAI;AAAA,QACC,GAAGD;AAAA,QAEH,UAAAD;AAAA,MAAA;AAAA,OAEL,EACF,CAAA;AAAA,EAAA;AAGN;AACAN,EAAgB,cAAc;AAE9B,MAAM0B,IAAU7B,EAAM;AAAA,EAQpB,CACE;AAAA,IACE,MAAA8B,IAAO;AAAA,IACP,SAAAC,IAAU;AAAA,IACV,aAAAC,IAAc;AAAA,IACd,WAAAzB;AAAA,IACA,UAAAE;AAAA,IACA,GAAGC;AAAA,KAELC,MACG;AACH,UAAM,EAAE,UAAAC,GAAU,OAAAY,GAAO,YAAAV,GAAY,eAAAC,EAAA,IAAkBd,EAAW;AAElE,WAAI+B,MAAgB,SAEhB,gBAAAN;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWE;AAAA,UACT;AAAA,UACArB;AAAA,QACF;AAAA,QACA,KAAAI;AAAA,QACC,GAAGD;AAAA,QAEH,UAAAD;AAAA,MAAA;AAAA,IACH,IAIAG,sBAECqB,GAAM,EAAA,MAAMnB,GAAY,cAAcC,GAAgB,GAAGL,GACxD,UAAA,gBAAAwB;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,gBAAa;AAAA,QACb,eAAY;AAAA,QACZ,WAAU;AAAA,QACV,OACE;AAAA,UACE,mBAAmBvC;AAAA,QACrB;AAAA,QAEF,MAAAkC;AAAA,QAEA,UAAA;AAAA,UAAA,gBAAAI,EAACE,GACC,EAAA,UAAA;AAAA,YAAA,gBAAAV,EAACW,GAAW,EAAA;AAAA,8BACXC,GAAiB,CAAA,CAAA;AAAA,UAAA,GACpB;AAAA,UACC,gBAAAZ,EAAA,OAAA,EAAI,WAAU,+BAA+B,UAAAjB,EAAS,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA,GAE3D,IAKF,gBAAAyB;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAAvB;AAAA,QACA,WAAU;AAAA,QACV,cAAYa;AAAA,QACZ,oBAAkBA,MAAU,cAAcQ,IAAc;AAAA,QACxD,gBAAcD;AAAA,QACd,aAAWD;AAAA,QAGX,UAAA;AAAA,UAAA,gBAAAJ;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAWE;AAAA,gBACT;AAAA,gBACA;AAAA,gBACA;AAAA,gBACAG,MAAY,cAAcA,MAAY,UAClC,qFACA;AAAA,cAAA;AAAA,YACN;AAAA,UACF;AAAA,UACA,gBAAAL;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAWE;AAAA,gBACT;AAAA,gBACAE,MAAS,SACL,mFACA;AAAA;AAAA,gBAEJC,MAAY,cAAcA,MAAY,UAClC,6FACA;AAAA,gBACJxB;AAAA,cACF;AAAA,cACC,GAAGG;AAAA,cAEJ,UAAA,gBAAAgB;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,gBAAa;AAAA,kBACb,WAAU;AAAA,kBAET,UAAAjB;AAAA,gBAAA;AAAA,cAAA;AAAA,YACH;AAAA,UAAA;AAAA,QACF;AAAA,MAAA;AAAA,IACF;AAAA,EAAA;AAGN;AACAoB,EAAQ,cAAc;AAEhB,MAAAU,IAAiBvC,EAAM,WAG3B,CAAC,EAAE,WAAAO,GAAW,SAAAiC,GAAS,GAAG9B,EAAM,GAAGC,MAAQ;AAC3C,QAAM,EAAE,eAAAU,GAAe,MAAAH,GAAM,UAAAN,EAAA,IAAaX,EAAW;AAGnD,SAAA,gBAAAiC;AAAA,IAACO;AAAA,IAAA;AAAA,MACC,KAAA9B;AAAA,MACA,gBAAa;AAAA,MACb,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,WAAWiB,EAAG,WAAWrB,CAAS;AAAA,MAClC,SAAS,CAACgB,MAAU;AAClB,QAAAiB,KAAA,QAAAA,EAAUjB,IACIF,EAAA;AAAA,MAChB;AAAA,MACC,GAAGX;AAAA,MAEH,UAAA;AAAA,QAAWE,IAAA,gBAAAc,EAACgB,KAAK,IAAKxB,sBAAQyB,GAAY,CAAA,CAAA,sBAAMC,GAAa,CAAA,CAAA;AAAA,QAC7D,gBAAAlB,EAAA,QAAA,EAAK,WAAU,WAAU,UAAc,iBAAA,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAC1C;AAEJ,CAAC;AACDa,EAAe,cAAc;AAE7B,MAAMM,KAAc7C,EAAM;AAAA,EACxB,CAAC,EAAE,WAAAO,GAAW,GAAGG,EAAA,GAASC,MAAQ;AAC1B,UAAA,EAAE,eAAAU,EAAc,IAAIpB,EAAW;AAGnC,WAAA,gBAAAyB;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAAf;AAAA,QACA,gBAAa;AAAA,QACb,cAAW;AAAA,QACX,UAAU;AAAA,QACV,SAASU;AAAA,QACT,OAAM;AAAA,QACN,WAAWO;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACArB;AAAA,QACF;AAAA,QACC,GAAGG;AAAA,MAAA;AAAA,IACN;AAAA,EAAA;AAGN;AACAmC,GAAY,cAAc;AAE1B,MAAMC,KAAe9C,EAAM;AAAA,EACzB,CAAC,EAAE,WAAAO,GAAW,GAAGG,EAAA,GAASC,MAEtB,gBAAAe;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAf;AAAA,MACA,WAAWiB;AAAA,QACT;AAAA,QACA;AAAA,QACArB;AAAA,MACF;AAAA,MACC,GAAGG;AAAA,IAAA;AAAA,EACN;AAGN;AACAoC,GAAa,cAAc;AAErB,MAAAC,KAAe/C,EAAM,WAGzB,CAAC,EAAE,WAAAO,GAAW,GAAGG,EAAM,GAAGC,MAExB,gBAAAe;AAAA,EAACsB;AAAA,EAAA;AAAA,IACC,KAAArC;AAAA,IACA,gBAAa;AAAA,IACb,WAAWiB;AAAA,MACT;AAAA,MACArB;AAAA,IACF;AAAA,IACC,GAAGG;AAAA,EAAA;AACN,CAEH;AACDqC,GAAa,cAAc;AAE3B,MAAME,KAAgBjD,EAAM;AAAA,EAC1B,CAAC,EAAE,WAAAO,GAAW,GAAGG,EAAA,GAASC,MAEtB,gBAAAe;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAf;AAAA,MACA,gBAAa;AAAA,MACb,WAAWiB,EAAG,2BAA2BrB,CAAS;AAAA,MACjD,GAAGG;AAAA,IAAA;AAAA,EACN;AAGN;AACAuC,GAAc,cAAc;AAE5B,MAAMC,KAAgBlD,EAAM;AAAA,EAC1B,CAAC,EAAE,WAAAO,GAAW,GAAGG,EAAA,GAASC,MAEtB,gBAAAe;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAf;AAAA,MACA,gBAAa;AAAA,MACb,WAAWiB,EAAG,2BAA2BrB,CAAS;AAAA,MACjD,GAAGG;AAAA,IAAA;AAAA,EACN;AAGN;AACAwC,GAAc,cAAc;AAEtB,MAAAC,KAAmBnD,EAAM,WAG7B,CAAC,EAAE,WAAAO,GAAW,GAAGG,EAAM,GAAGC,MAExB,gBAAAe;AAAA,EAAC0B;AAAA,EAAA;AAAA,IACC,KAAAzC;AAAA,IACA,gBAAa;AAAA,IACb,WAAWiB,EAAG,iCAAiCrB,CAAS;AAAA,IACvD,GAAGG;AAAA,EAAA;AACN,CAEH;AACDyC,GAAiB,cAAc;AAE/B,MAAME,KAAiBrD,EAAM;AAAA,EAC3B,CAAC,EAAE,WAAAO,GAAW,GAAGG,EAAA,GAASC,MAEtB,gBAAAe;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAf;AAAA,MACA,gBAAa;AAAA,MACb,WAAWiB;AAAA,QACT;AAAA,QACArB;AAAA,MACF;AAAA,MACC,GAAGG;AAAA,IAAA;AAAA,EACN;AAGN;AACA2C,GAAe,cAAc;AAE7B,MAAMC,KAAetD,EAAM;AAAA,EACzB,CAAC,EAAE,WAAAO,GAAW,GAAGG,EAAA,GAASC,MAEtB,gBAAAe;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAf;AAAA,MACA,gBAAa;AAAA,MACb,WAAWiB,EAAG,6CAA6CrB,CAAS;AAAA,MACnE,GAAGG;AAAA,IAAA;AAAA,EACN;AAGN;AACA4C,GAAa,cAAc;AAErB,MAAAC,KAAoBvD,EAAM,WAG9B,CAAC,EAAE,WAAAO,GAAW,SAAAiD,IAAU,IAAO,GAAG9C,EAAM,GAAGC,MAIzC,gBAAAe;AAAA,EAHW8B,IAAUC,IAAO;AAAA,EAG3B;AAAA,IACC,KAAA9C;AAAA,IACA,gBAAa;AAAA,IACb,WAAWiB;AAAA,MACT;AAAA,MACA;AAAA,MACArB;AAAA,IACF;AAAA,IACC,GAAGG;AAAA,EAAA;AACN,CAEH;AACD6C,GAAkB,cAAc;AAE1B,MAAAG,KAAqB1D,EAAM,WAG/B,CAAC,EAAE,WAAAO,GAAW,SAAAiD,IAAU,IAAO,GAAG9C,EAAM,GAAGC,MAIzC,gBAAAe;AAAA,EAHW8B,IAAUC,IAAO;AAAA,EAG3B;AAAA,IACC,KAAA9C;AAAA,IACA,gBAAa;AAAA,IACb,WAAWiB;AAAA,MACT;AAAA;AAAA,MAEA;AAAA,MACA;AAAA,MACArB;AAAA,IACF;AAAA,IACC,GAAGG;AAAA,EAAA;AACN,CAEH;AACDgD,GAAmB,cAAc;AAEjC,MAAMC,KAAsB3D,EAAM;AAAA,EAChC,CAAC,EAAE,WAAAO,GAAW,GAAGG,KAASC,MACxB,gBAAAe;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAf;AAAA,MACA,gBAAa;AAAA,MACb,WAAWiB,EAAG,oBAAoBrB,CAAS;AAAA,MAC1C,GAAGG;AAAA,IAAA;AAAA,EAAA;AAGV;AACAiD,GAAoB,cAAc;AAElC,MAAMC,KAAc5D,EAAM;AAAA,EACxB,CAAC,EAAE,WAAAO,GAAW,GAAGG,KAASC,MACxB,gBAAAe;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAf;AAAA,MACA,gBAAa;AAAA,MACb,WAAWiB,EAAG,gCAAgCrB,CAAS;AAAA,MACtD,GAAGG;AAAA,IAAA;AAAA,EAAA;AAGV;AACAkD,GAAY,cAAc;AAE1B,MAAMC,KAAkB7D,EAAM;AAAA,EAC5B,CAAC,EAAE,WAAAO,GAAW,GAAGG,KAASC,MACxB,gBAAAe;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAf;AAAA,MACA,gBAAa;AAAA,MACb,WAAWiB,EAAG,4BAA4BrB,CAAS;AAAA,MAClD,GAAGG;AAAA,IAAA;AAAA,EAAA;AAGV;AACAmD,GAAgB,cAAc;AAE9B,MAAMC,KAA4BC;AAAA,EAChC;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,SACE;AAAA,MACJ;AAAA,MACA,MAAM;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,MAAA;AAAA,IAER;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,IAAA;AAAA,EACR;AAEJ,GAEMC,KAAoBhE,EAAM;AAAA,EAQ9B,CACE;AAAA,IACE,SAAAwD,IAAU;AAAA,IACV,UAAAS,IAAW;AAAA,IACX,SAAAlC,IAAU;AAAA,IACV,MAAAmC,IAAO;AAAA,IACP,SAAAC;AAAA,IACA,WAAA5D;AAAA,IACA,GAAGG;AAAA,KAELC,MACG;AACG,UAAAyD,IAAOZ,IAAUC,IAAO,UACxB,EAAE,UAAA7C,GAAU,OAAAY,EAAM,IAAIvB,EAAW,GAEjCoE,IACJ,gBAAA3C;AAAA,MAAC0C;AAAA,MAAA;AAAA,QACC,KAAAzD;AAAA,QACA,gBAAa;AAAA,QACb,aAAWuD;AAAA,QACX,eAAaD;AAAA,QACb,WAAWrC,EAAGkC,GAA0B,EAAE,SAAA/B,GAAS,MAAAmC,EAAK,CAAC,GAAG3D,CAAS;AAAA,QACpE,GAAGG;AAAA,MAAA;AAAA,IACN;AAGF,WAAKyD,KAID,OAAOA,KAAY,aACXA,IAAA;AAAA,MACR,UAAUA;AAAA,IACZ,sBAICG,GACC,EAAA,UAAA;AAAA,MAAC,gBAAA5C,EAAA6C,GAAA,EAAe,SAAO,IAAE,UAAOF,GAAA;AAAA,MAChC,gBAAA3C;AAAA,QAAC8C;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,OAAM;AAAA,UACN,QAAQhD,MAAU,eAAeZ;AAAA,UAChC,GAAGuD;AAAA,QAAA;AAAA,MAAA;AAAA,IACN,GACF,KAlBOE;AAAA,EAkBP;AAGN;AACAL,GAAkB,cAAc;AAEhC,MAAMS,KAAoBzE,EAAM,WAM9B,CAAC,EAAE,WAAAO,GAAW,SAAAiD,IAAU,IAAO,aAAAkB,IAAc,IAAO,GAAGhE,EAAA,GAASC,MAI9D,gBAAAe;AAAA,EAHW8B,IAAUC,IAAO;AAAA,EAG3B;AAAA,IACC,KAAA9C;AAAA,IACA,gBAAa;AAAA,IACb,WAAWiB;AAAA,MACT;AAAA;AAAA,MAEA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA8C,KACE;AAAA,MACFnE;AAAA,IACF;AAAA,IACC,GAAGG;AAAA,EAAA;AACN,CAEH;AACD+D,GAAkB,cAAc;AAEhC,MAAME,KAAmB3E,EAAM;AAAA,EAC7B,CAAC,EAAE,WAAAO,GAAW,GAAGG,KAASC,MACxB,gBAAAe;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAf;AAAA,MACA,gBAAa;AAAA,MACb,WAAWiB;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACArB;AAAA,MACF;AAAA,MACC,GAAGG;AAAA,IAAA;AAAA,EAAA;AAGV;AACAiE,GAAiB,cAAc;AAEzB,MAAAC,KAAsB5E,EAAM,WAKhC,CAAC,EAAE,WAAAO,GAAW,UAAAsE,IAAW,IAAO,GAAGnE,EAAM,GAAGC,MAAQ;AAE9C,QAAAmE,IAAQ9E,EAAM,QAAQ,MACnB,GAAG,KAAK,MAAM,KAAK,WAAW,EAAE,IAAI,EAAE,KAC5C,EAAE;AAGH,SAAA,gBAAAkC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAvB;AAAA,MACA,gBAAa;AAAA,MACb,WAAWiB,EAAG,+CAA+CrB,CAAS;AAAA,MACrE,GAAGG;AAAA,MAEH,UAAA;AAAA,QAAAmE,KAAa,gBAAAnD,EAAAqD,GAAA,EAAS,WAAU,qBAAoB,gBAAa,sBAAqB;AAAA,QACvF,gBAAArD;AAAA,UAACqD;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,gBAAa;AAAA,YACb,OACE;AAAA,cACE,oBAAoBD;AAAA,YAAA;AAAA,UACtB;AAAA,QAAA;AAAA,MAEJ;AAAA,IAAA;AAAA,EACF;AAEJ,CAAC;AACDF,GAAoB,cAAc;AAElC,MAAMI,KAAiBhF,EAAM;AAAA,EAC3B,CAAC,EAAE,WAAAO,GAAW,GAAGG,KAASC,MACxB,gBAAAe;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAf;AAAA,MACA,gBAAa;AAAA,MACb,WAAWiB;AAAA,QACT;AAAA,QACA;AAAA,QACArB;AAAA,MACF;AAAA,MACC,GAAGG;AAAA,IAAA;AAAA,EAAA;AAGV;AACAsE,GAAe,cAAc;AAE7B,MAAMC,KAAqBjF,EAAM;AAAA,EAC/B,CAAC,EAAE,GAAGU,EAAM,GAAGC,MAAS,gBAAAe,EAAA,MAAA,EAAG,KAAAf,GAAW,GAAGD,EAAO,CAAA;AAClD;AACAuE,GAAmB,cAAc;AAEjC,MAAMC,KAAuBlF,EAAM,WAOjC,CAAC,EAAE,SAAAwD,IAAU,IAAO,MAAAU,IAAO,MAAM,UAAAD,GAAU,WAAA1D,GAAW,GAAGG,EAAA,GAASC,MAIhE,gBAAAe;AAAA,EAHW8B,IAAUC,IAAO;AAAA,EAG3B;AAAA,IACC,KAAA9C;AAAA,IACA,gBAAa;AAAA,IACb,aAAWuD;AAAA,IACX,eAAaD;AAAA,IACb,WAAWrC;AAAA,MACT;AAAA,MACA;AAAA,MACAsC,MAAS,QAAQ;AAAA,MACjBA,MAAS,QAAQ;AAAA,MACjB;AAAA,MACA3D;AAAA,IACF;AAAA,IACC,GAAGG;AAAA,EAAA;AACN,CAEH;AACDwE,GAAqB,cAAc;"}
@@ -1,14 +1,14 @@
1
- import { jsxs as i, jsx as e } from "react/jsx-runtime";
2
- function o({
3
- resourceName: l,
4
- children: t
1
+ import { jsxs as n, jsx as e } from "react/jsx-runtime";
2
+ function s({
3
+ resourceName: t,
4
+ children: i
5
5
  }) {
6
- return /* @__PURE__ */ i("section", { className: "h-full flex flex-col justify-between gap-10", children: [
7
- /* @__PURE__ */ e("h4", { children: l }),
8
- /* @__PURE__ */ e("div", { children: t })
6
+ return /* @__PURE__ */ n("section", { className: "flex-1 justify-between gap-10", children: [
7
+ /* @__PURE__ */ e("h4", { children: t }),
8
+ /* @__PURE__ */ e("div", { children: i })
9
9
  ] });
10
10
  }
11
11
  export {
12
- o as TablePageLayout
12
+ s as TablePageLayout
13
13
  };
14
14
  //# sourceMappingURL=table-page-layout.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"table-page-layout.es.js","sources":["../../../lib/components/ui/table-page-layout.tsx"],"sourcesContent":["export function TablePageLayout({\n resourceName,\n children,\n}: {\n resourceName: string;\n children?: React.ReactNode;\n}) {\n return (\n <section className=\"h-full flex flex-col justify-between gap-10\">\n <h4>{resourceName}</h4>\n <div>{children}</div>\n </section>\n );\n}\n"],"names":["TablePageLayout","resourceName","children","jsxs","jsx"],"mappings":";AAAO,SAASA,EAAgB;AAAA,EAC9B,cAAAC;AAAA,EACA,UAAAC;AACF,GAGG;AAEC,SAAA,gBAAAC,EAAC,WAAQ,EAAA,WAAU,+CACjB,UAAA;AAAA,IAAA,gBAAAC,EAAC,QAAI,UAAaH,EAAA,CAAA;AAAA,IAClB,gBAAAG,EAAC,SAAK,UAAAF,EAAS,CAAA;AAAA,EAAA,GACjB;AAEJ;"}
1
+ {"version":3,"file":"table-page-layout.es.js","sources":["../../../lib/components/ui/table-page-layout.tsx"],"sourcesContent":["export function TablePageLayout({\n resourceName,\n children,\n}: {\n resourceName: string;\n children?: React.ReactNode;\n}) {\n return (\n <section className=\"flex-1 justify-between gap-10\">\n <h4>{resourceName}</h4>\n <div>{children}</div>\n </section>\n );\n}\n"],"names":["TablePageLayout","resourceName","children","jsxs","jsx"],"mappings":";AAAO,SAASA,EAAgB;AAAA,EAC9B,cAAAC;AAAA,EACA,UAAAC;AACF,GAGG;AAEC,SAAA,gBAAAC,EAAC,WAAQ,EAAA,WAAU,kCACjB,UAAA;AAAA,IAAA,gBAAAC,EAAC,QAAI,UAAaH,EAAA,CAAA;AAAA,IAClB,gBAAAG,EAAC,SAAK,UAAAF,EAAS,CAAA;AAAA,EAAA,GACjB;AAEJ;"}
@@ -1,12 +1,12 @@
1
1
  import { jsx as o } from "react/jsx-runtime";
2
2
  import * as t from "react";
3
- import { cn as l } from "../../utils/index.es.js";
4
- const d = t.forwardRef(
3
+ import { cn as d } from "../../utils/index.es.js";
4
+ const l = t.forwardRef(
5
5
  ({ className: e, ...a }, r) => /* @__PURE__ */ o("div", { className: "w-full", children: /* @__PURE__ */ o(
6
6
  "table",
7
7
  {
8
8
  ref: r,
9
- className: l(
9
+ className: d(
10
10
  "w-full caption-bottom text-sm [&_tr:last-child]:border-0 my-0 overflow-x-auto whitespace-nowrap",
11
11
  e
12
12
  ),
@@ -14,12 +14,12 @@ const d = t.forwardRef(
14
14
  }
15
15
  ) })
16
16
  );
17
- d.displayName = "Table";
17
+ l.displayName = "Table";
18
18
  const s = t.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ o(
19
19
  "thead",
20
20
  {
21
21
  ref: r,
22
- className: l("[&_tr]:border-b border-b", e),
22
+ className: d("[&_tr]:border-b border-b", e),
23
23
  ...a
24
24
  }
25
25
  ));
@@ -28,7 +28,7 @@ const b = t.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ o(
28
28
  "tbody",
29
29
  {
30
30
  ref: r,
31
- className: l(
31
+ className: d(
32
32
  "[&_tr:last-child]:border-b-2 [&_tr:last-child]:border-dotted",
33
33
  // Updated to 2px dotted border for the last row
34
34
  e
@@ -37,34 +37,34 @@ const b = t.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ o(
37
37
  }
38
38
  ));
39
39
  b.displayName = "TableBody";
40
- const c = t.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ o(
40
+ const m = t.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ o(
41
41
  "tfoot",
42
42
  {
43
43
  ref: r,
44
- className: l("border-t bg-card/50 font-medium [&>tr]:last:border-b-0", e),
44
+ className: d("border-t bg-card/50 font-medium last:[&>tr]:border-b-0", e),
45
45
  ...a
46
46
  }
47
47
  ));
48
- c.displayName = "TableFooter";
49
- const m = t.forwardRef(
48
+ m.displayName = "TableFooter";
49
+ const c = t.forwardRef(
50
50
  ({ className: e, ...a }, r) => /* @__PURE__ */ o(
51
51
  "tr",
52
52
  {
53
53
  ref: r,
54
- className: l(
55
- "border-b transition-colors hover:bg-card/50 data-[state=selected]:bg-card",
54
+ className: d(
55
+ "border-b border-card cursor-pointer transition-colors data-[state=selected]:bg-muted-foreground/20 hover:bg-muted-foreground/30",
56
56
  e
57
57
  ),
58
58
  ...a
59
59
  }
60
60
  )
61
61
  );
62
- m.displayName = "TableRow";
62
+ c.displayName = "TableRow";
63
63
  const i = t.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ o(
64
64
  "th",
65
65
  {
66
66
  ref: r,
67
- className: l(
67
+ className: d(
68
68
  "h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0",
69
69
  e
70
70
  ),
@@ -76,7 +76,7 @@ const f = t.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ o(
76
76
  "td",
77
77
  {
78
78
  ref: r,
79
- className: l(
79
+ className: d(
80
80
  "p-4 align-middle [&:has([role=checkbox])]:pr-0 border-b [&_tr:last-child]:border-dotted",
81
81
  e
82
82
  ),
@@ -84,16 +84,16 @@ const f = t.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ o(
84
84
  }
85
85
  ));
86
86
  f.displayName = "TableCell";
87
- const n = t.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ o("caption", { ref: r, className: l("mt-4 text-sm text-muted-foreground", e), ...a }));
87
+ const n = t.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ o("caption", { ref: r, className: d("mt-4 text-sm text-muted-foreground", e), ...a }));
88
88
  n.displayName = "TableCaption";
89
89
  export {
90
- d as Table,
90
+ l as Table,
91
91
  b as TableBody,
92
92
  n as TableCaption,
93
93
  f as TableCell,
94
- c as TableFooter,
94
+ m as TableFooter,
95
95
  i as TableHead,
96
96
  s as TableHeader,
97
- m as TableRow
97
+ c as TableRow
98
98
  };
99
99
  //# sourceMappingURL=table.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"table.es.js","sources":["../../../lib/components/ui/table.tsx"],"sourcesContent":["import * as React from \"react\"\n\nimport { cn } from \"@/utils\"\n\nconst Table = React.forwardRef<HTMLTableElement, React.HTMLAttributes<HTMLTableElement>>(\n ({ className, ...props }, ref) => (\n <div className=\"w-full\">\n <table\n ref={ref}\n className={cn(\n 'w-full caption-bottom text-sm [&_tr:last-child]:border-0 my-0 overflow-x-auto whitespace-nowrap',\n className,\n )}\n {...props}\n />\n </div>\n ),\n);\nTable.displayName = 'Table';\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead\n ref={ref}\n className={cn('[&_tr]:border-b border-b', className)} // Added border-b to apply a bottom border\n {...props}\n />\n));\nTableHeader.displayName = 'TableHeader';\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody\n ref={ref}\n className={cn(\n '[&_tr:last-child]:border-b-2 [&_tr:last-child]:border-dotted', // Updated to 2px dotted border for the last row\n className,\n )}\n {...props}\n />\n));\nTableBody.displayName = \"TableBody\";\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n className={cn(\"border-t bg-card/50 font-medium [&>tr]:last:border-b-0\", className)}\n {...props}\n />\n));\nTableFooter.displayName = \"TableFooter\";\n\nconst TableRow = React.forwardRef<HTMLTableRowElement, React.HTMLAttributes<HTMLTableRowElement>>(\n ({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n \"border-b transition-colors hover:bg-card/50 data-[state=selected]:bg-card\",\n className,\n )}\n {...props}\n />\n ),\n);\nTableRow.displayName = \"TableRow\";\n\nconst TableHead = React.forwardRef<\n HTMLTableCellElement,\n React.ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n \"h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0\",\n className,\n )}\n {...props}\n />\n));\nTableHead.displayName = \"TableHead\";\n\nconst TableCell = React.forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <td\n ref={ref}\n className={cn(\n 'p-4 align-middle [&:has([role=checkbox])]:pr-0 border-b [&_tr:last-child]:border-dotted',\n className,\n )}\n {...props}\n />\n));\nTableCell.displayName = \"TableCell\";\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <caption ref={ref} className={cn(\"mt-4 text-sm text-muted-foreground\", className)} {...props} />\n));\nTableCaption.displayName = \"TableCaption\";\n\nexport { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption };\n"],"names":["Table","React","className","props","ref","jsx","cn","TableHeader","TableBody","TableFooter","TableRow","TableHead","TableCell","TableCaption"],"mappings":";;;AAIA,MAAMA,IAAQC,EAAM;AAAA,EAClB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MACxB,gBAAAC,EAAC,OAAI,EAAA,WAAU,UACb,UAAA,gBAAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAD;AAAA,MACA,WAAWE;AAAA,QACT;AAAA,QACAJ;AAAA,MACF;AAAA,MACC,GAAGC;AAAA,IAAA;AAAA,EAAA,EAER,CAAA;AAEJ;AACAH,EAAM,cAAc;AAEd,MAAAO,IAAcN,EAAM,WAGxB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAC1B,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE,EAAG,4BAA4BJ,CAAS;AAAA,IAClD,GAAGC;AAAA,EAAA;AACN,CACD;AACDI,EAAY,cAAc;AAEpB,MAAAC,IAAYP,EAAM,WAGtB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAC1B,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE;AAAA,MACT;AAAA;AAAA,MACAJ;AAAA,IACF;AAAA,IACC,GAAGC;AAAA,EAAA;AACN,CACD;AACDK,EAAU,cAAc;AAElB,MAAAC,IAAcR,EAAM,WAGxB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAC1B,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE,EAAG,0DAA0DJ,CAAS;AAAA,IAChF,GAAGC;AAAA,EAAA;AACN,CACD;AACDM,EAAY,cAAc;AAE1B,MAAMC,IAAWT,EAAM;AAAA,EACrB,CAAC,EAAE,WAAAC,GAAW,GAAGC,KAASC,MACxB,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAD;AAAA,MACA,WAAWE;AAAA,QACT;AAAA,QACAJ;AAAA,MACF;AAAA,MACC,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AACAO,EAAS,cAAc;AAEjB,MAAAC,IAAYV,EAAM,WAGtB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAC1B,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IACF;AAAA,IACC,GAAGC;AAAA,EAAA;AACN,CACD;AACDQ,EAAU,cAAc;AAElB,MAAAC,IAAYX,EAAM,WAGtB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAC1B,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IACF;AAAA,IACC,GAAGC;AAAA,EAAA;AACN,CACD;AACDS,EAAU,cAAc;AAElB,MAAAC,IAAeZ,EAAM,WAGzB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAS,GAAAC,wBACzB,WAAQ,EAAA,KAAAA,GAAU,WAAWE,EAAG,sCAAsCJ,CAAS,GAAI,GAAGC,GAAO,CAC/F;AACDU,EAAa,cAAc;"}
1
+ {"version":3,"file":"table.es.js","sources":["../../../lib/components/ui/table.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { cn } from '@/utils';\n\nconst Table = React.forwardRef<HTMLTableElement, React.HTMLAttributes<HTMLTableElement>>(\n ({ className, ...props }, ref) => (\n <div className=\"w-full\">\n <table\n ref={ref}\n className={cn(\n 'w-full caption-bottom text-sm [&_tr:last-child]:border-0 my-0 overflow-x-auto whitespace-nowrap',\n className,\n )}\n {...props}\n />\n </div>\n ),\n);\nTable.displayName = 'Table';\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead\n ref={ref}\n className={cn('[&_tr]:border-b border-b', className)} // Added border-b to apply a bottom border\n {...props}\n />\n));\nTableHeader.displayName = 'TableHeader';\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody\n ref={ref}\n className={cn(\n '[&_tr:last-child]:border-b-2 [&_tr:last-child]:border-dotted', // Updated to 2px dotted border for the last row\n className,\n )}\n {...props}\n />\n));\nTableBody.displayName = 'TableBody';\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n className={cn('border-t bg-card/50 font-medium last:[&>tr]:border-b-0', className)}\n {...props}\n />\n));\nTableFooter.displayName = 'TableFooter';\n\nconst TableRow = React.forwardRef<HTMLTableRowElement, React.HTMLAttributes<HTMLTableRowElement>>(\n ({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n 'border-b border-card cursor-pointer transition-colors data-[state=selected]:bg-muted-foreground/20 hover:bg-muted-foreground/30',\n className,\n )}\n {...props}\n />\n ),\n);\nTableRow.displayName = 'TableRow';\n\nconst TableHead = React.forwardRef<\n HTMLTableCellElement,\n React.ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n 'h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0',\n className,\n )}\n {...props}\n />\n));\nTableHead.displayName = 'TableHead';\n\nconst TableCell = React.forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <td\n ref={ref}\n className={cn(\n 'p-4 align-middle [&:has([role=checkbox])]:pr-0 border-b [&_tr:last-child]:border-dotted',\n className,\n )}\n {...props}\n />\n));\nTableCell.displayName = 'TableCell';\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <caption ref={ref} className={cn('mt-4 text-sm text-muted-foreground', className)} {...props} />\n));\nTableCaption.displayName = 'TableCaption';\n\nexport { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow };\n"],"names":["Table","React","className","props","ref","jsx","cn","TableHeader","TableBody","TableFooter","TableRow","TableHead","TableCell","TableCaption"],"mappings":";;;AAIA,MAAMA,IAAQC,EAAM;AAAA,EAClB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MACxB,gBAAAC,EAAC,OAAI,EAAA,WAAU,UACb,UAAA,gBAAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAD;AAAA,MACA,WAAWE;AAAA,QACT;AAAA,QACAJ;AAAA,MACF;AAAA,MACC,GAAGC;AAAA,IAAA;AAAA,EAAA,EAER,CAAA;AAEJ;AACAH,EAAM,cAAc;AAEd,MAAAO,IAAcN,EAAM,WAGxB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAC1B,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE,EAAG,4BAA4BJ,CAAS;AAAA,IAClD,GAAGC;AAAA,EAAA;AACN,CACD;AACDI,EAAY,cAAc;AAEpB,MAAAC,IAAYP,EAAM,WAGtB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAC1B,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE;AAAA,MACT;AAAA;AAAA,MACAJ;AAAA,IACF;AAAA,IACC,GAAGC;AAAA,EAAA;AACN,CACD;AACDK,EAAU,cAAc;AAElB,MAAAC,IAAcR,EAAM,WAGxB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAC1B,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE,EAAG,0DAA0DJ,CAAS;AAAA,IAChF,GAAGC;AAAA,EAAA;AACN,CACD;AACDM,EAAY,cAAc;AAE1B,MAAMC,IAAWT,EAAM;AAAA,EACrB,CAAC,EAAE,WAAAC,GAAW,GAAGC,KAASC,MACxB,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAD;AAAA,MACA,WAAWE;AAAA,QACT;AAAA,QACAJ;AAAA,MACF;AAAA,MACC,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AACAO,EAAS,cAAc;AAEjB,MAAAC,IAAYV,EAAM,WAGtB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAC1B,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IACF;AAAA,IACC,GAAGC;AAAA,EAAA;AACN,CACD;AACDQ,EAAU,cAAc;AAElB,MAAAC,IAAYX,EAAM,WAGtB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAC1B,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IACF;AAAA,IACC,GAAGC;AAAA,EAAA;AACN,CACD;AACDS,EAAU,cAAc;AAElB,MAAAC,IAAeZ,EAAM,WAGzB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAS,GAAAC,wBACzB,WAAQ,EAAA,KAAAA,GAAU,WAAWE,EAAG,sCAAsCJ,CAAS,GAAI,GAAGC,GAAO,CAC/F;AACDU,EAAa,cAAc;"}
@@ -1,8 +1,8 @@
1
- import { jsx as o } from "react/jsx-runtime";
2
- import * as a from "react";
1
+ import { jsx as a } from "react/jsx-runtime";
2
+ import * as o from "react";
3
3
  import * as e from "@radix-ui/react-tabs";
4
4
  import { cn as n } from "../../utils/index.es.js";
5
- const m = e.Root, r = a.forwardRef(({ className: i, ...t }, s) => /* @__PURE__ */ o(
5
+ const m = e.Root, r = o.forwardRef(({ className: i, ...t }, s) => /* @__PURE__ */ a(
6
6
  e.List,
7
7
  {
8
8
  ref: s,
@@ -14,34 +14,34 @@ const m = e.Root, r = a.forwardRef(({ className: i, ...t }, s) => /* @__PURE__ *
14
14
  }
15
15
  ));
16
16
  r.displayName = e.List.displayName;
17
- const f = a.forwardRef(({ className: i, ...t }, s) => /* @__PURE__ */ o(
17
+ const d = o.forwardRef(({ className: i, ...t }, s) => /* @__PURE__ */ a(
18
18
  e.Trigger,
19
19
  {
20
20
  ref: s,
21
21
  className: n(
22
- "inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-body font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow",
22
+ "inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-body font-medium ring-offset-background transition-all focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm",
23
23
  i
24
24
  ),
25
25
  ...t
26
26
  }
27
27
  ));
28
- f.displayName = e.Trigger.displayName;
29
- const d = a.forwardRef(({ className: i, ...t }, s) => /* @__PURE__ */ o(
28
+ d.displayName = e.Trigger.displayName;
29
+ const f = o.forwardRef(({ className: i, ...t }, s) => /* @__PURE__ */ a(
30
30
  e.Content,
31
31
  {
32
32
  ref: s,
33
33
  className: n(
34
- "mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
34
+ "mt-2 ring-offset-background focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
35
35
  i
36
36
  ),
37
37
  ...t
38
38
  }
39
39
  ));
40
- d.displayName = e.Content.displayName;
40
+ f.displayName = e.Content.displayName;
41
41
  export {
42
42
  m as Tabs,
43
- d as TabsContent,
43
+ f as TabsContent,
44
44
  r as TabsList,
45
- f as TabsTrigger
45
+ d as TabsTrigger
46
46
  };
47
47
  //# sourceMappingURL=tabs.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.es.js","sources":["../../../lib/components/ui/tabs.tsx"],"sourcesContent":["import * as React from \"react\"\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\"\n\nimport { cn } from \"@/utils\"\n\nconst Tabs = TabsPrimitive.Root\n\nconst TabsList = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.List\n ref={ref}\n className={cn(\n \"inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground\",\n className\n )}\n {...props}\n />\n))\nTabsList.displayName = TabsPrimitive.List.displayName\n\nconst TabsTrigger = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-body font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow\",\n className\n )}\n {...props}\n />\n))\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName\n\nconst TabsContent = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n \"mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n className\n )}\n {...props}\n />\n))\nTabsContent.displayName = TabsPrimitive.Content.displayName\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent }\n"],"names":["Tabs","TabsPrimitive","TabsList","React","className","props","ref","jsx","cn","TabsTrigger","TabsContent"],"mappings":";;;;AAKA,MAAMA,IAAOC,EAAc,MAErBC,IAAWC,EAAM,WAGrB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAC1B,gBAAAC;AAAA,EAACN,EAAc;AAAA,EAAd;AAAA,IACC,KAAAK;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IACF;AAAA,IACC,GAAGC;AAAA,EAAA;AACN,CACD;AACDH,EAAS,cAAcD,EAAc,KAAK;AAEpC,MAAAQ,IAAcN,EAAM,WAGxB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAC1B,gBAAAC;AAAA,EAACN,EAAc;AAAA,EAAd;AAAA,IACC,KAAAK;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IACF;AAAA,IACC,GAAGC;AAAA,EAAA;AACN,CACD;AACDI,EAAY,cAAcR,EAAc,QAAQ;AAE1C,MAAAS,IAAcP,EAAM,WAGxB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAC1B,gBAAAC;AAAA,EAACN,EAAc;AAAA,EAAd;AAAA,IACC,KAAAK;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IACF;AAAA,IACC,GAAGC;AAAA,EAAA;AACN,CACD;AACDK,EAAY,cAAcT,EAAc,QAAQ;"}
1
+ {"version":3,"file":"tabs.es.js","sources":["../../../lib/components/ui/tabs.tsx"],"sourcesContent":["import * as React from \"react\"\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\"\n\nimport { cn } from \"@/utils\"\n\nconst Tabs = TabsPrimitive.Root\n\nconst TabsList = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.List\n ref={ref}\n className={cn(\n \"inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground\",\n className\n )}\n {...props}\n />\n))\nTabsList.displayName = TabsPrimitive.List.displayName\n\nconst TabsTrigger = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-body font-medium ring-offset-background transition-all focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm\",\n className\n )}\n {...props}\n />\n))\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName\n\nconst TabsContent = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n \"mt-2 ring-offset-background focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n className\n )}\n {...props}\n />\n))\nTabsContent.displayName = TabsPrimitive.Content.displayName\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent }\n"],"names":["Tabs","TabsPrimitive","TabsList","React","className","props","ref","jsx","cn","TabsTrigger","TabsContent"],"mappings":";;;;AAKA,MAAMA,IAAOC,EAAc,MAErBC,IAAWC,EAAM,WAGrB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAC1B,gBAAAC;AAAA,EAACN,EAAc;AAAA,EAAd;AAAA,IACC,KAAAK;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IACF;AAAA,IACC,GAAGC;AAAA,EAAA;AACN,CACD;AACDH,EAAS,cAAcD,EAAc,KAAK;AAEpC,MAAAQ,IAAcN,EAAM,WAGxB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAC1B,gBAAAC;AAAA,EAACN,EAAc;AAAA,EAAd;AAAA,IACC,KAAAK;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IACF;AAAA,IACC,GAAGC;AAAA,EAAA;AACN,CACD;AACDI,EAAY,cAAcR,EAAc,QAAQ;AAE1C,MAAAS,IAAcP,EAAM,WAGxB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAC1B,gBAAAC;AAAA,EAACN,EAAc;AAAA,EAAd;AAAA,IACC,KAAAK;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IACF;AAAA,IACC,GAAGC;AAAA,EAAA;AACN,CACD;AACDK,EAAY,cAAcT,EAAc,QAAQ;"}
@@ -4,6 +4,7 @@ import { AllowInDimension } from 'recharts/types/util/types';
4
4
  import { AnimationDuration } from 'recharts/types/util/types';
5
5
  import { AnimationTiming } from 'recharts/types/util/types';
6
6
  import * as AvatarPrimitive from '@radix-ui/react-avatar';
7
+ import { ButtonProps as ButtonProps_2 } from './button';
7
8
  import { CartesianViewBox } from 'recharts/types/util/types';
8
9
  import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
9
10
  import { ClassProp } from 'class-variance-authority/types';
@@ -32,6 +33,7 @@ import { FieldPath } from 'react-hook-form';
32
33
  import { FieldValues } from 'react-hook-form';
33
34
  import { FormProviderProps } from 'react-hook-form';
34
35
  import { ForwardRefExoticComponent } from 'react';
36
+ import { InputProps as InputProps_2 } from './input';
35
37
  import { JSX as JSX_2 } from 'react/jsx-runtime';
36
38
  import * as LabelPrimitive from '@radix-ui/react-label';
37
39
  import { LucideIcon } from 'lucide-react';
@@ -68,6 +70,10 @@ export declare const AccordionItem: React_2.ForwardRefExoticComponent<Omit<Accor
68
70
 
69
71
  export declare const AccordionTrigger: React_2.ForwardRefExoticComponent<Omit<AccordionPrimitive.AccordionTriggerProps & React_2.RefAttributes<HTMLButtonElement>, "ref"> & React_2.RefAttributes<HTMLButtonElement>>;
70
72
 
73
+ export declare const ALL_OS: {
74
+ [key: string]: string;
75
+ };
76
+
71
77
  export declare function AppLayout({ data, user }: AppLayoutProps): JSX_2.Element;
72
78
 
73
79
  export declare interface AppLayoutProps {
@@ -327,6 +333,18 @@ export declare function convertCamelCaseToTitleCase(string: string): string;
327
333
  */
328
334
  export declare function convertToTitleCase(input: string): string;
329
335
 
336
+ export declare function CopyButton({ value, display, tooltipMessage, onCopy, position, }: CopyProps): JSX_2.Element | undefined;
337
+
338
+ declare interface CopyProps {
339
+ value: string;
340
+ display?: string;
341
+ tooltipMessage?: string;
342
+ className?: string;
343
+ size?: number;
344
+ onCopy?: () => void;
345
+ position?: 'leading' | 'trailing';
346
+ }
347
+
330
348
  export declare function createTableFetchFn<_any, Return>(ctxclient: Client, path: GetPaths, params?: ParamsOption<any>): TableFetchFn<Return>;
331
349
 
332
350
  export declare type CtxPortals = 'customer-portal' | 'system-portal' | 'reseller-portal' | 'admin-portal';
@@ -334,20 +352,20 @@ export declare type CtxPortals = 'customer-portal' | 'system-portal' | 'reseller
334
352
  /** Application Names */
335
353
  export declare type CtxProjectName = 'admin-portal' | 'customer-portal' | 'internal-portal' | 'reseller-portal';
336
354
 
337
- export declare function DataTable<TData extends Record<string, any>, TValue = any>({ columns, fetchFn, tableName, tableActions, columnsToHideByDefault, }: DataTableProps<TData, TValue>): JSX_2.Element;
355
+ export declare function DataTable<TData extends Record<string, any>, TValue = any>({ columns, fetchFn, tableName, tableActions, columnsToHideByDefault, filterableFields, }: DataTableProps<TData, TValue>): JSX_2.Element;
338
356
 
339
357
  export declare interface DataTableProps<TData, TValue = any> {
340
358
  columns: ColumnDef<TData, TValue>[];
341
359
  tableName: string;
342
360
  fetchFn: TableFetchFn<TData>;
343
361
  tableActions: TableActions;
344
- filterableFields: FilterableProperties;
362
+ filterableFields: FilterableProperties<TData>;
345
363
  columnsToHideByDefault: VisibilityState_2;
346
364
  }
347
365
 
348
366
  export declare const DEFAULT_DATE_COLUMNS: AccessorKeyColumnDef<any, any>[];
349
367
 
350
- export declare const DEFAULT_FILTERABLE_FIELDS: FilterableProperties;
368
+ export declare const DEFAULT_FILTERABLE_FIELDS: FilterableProperties<any>;
351
369
 
352
370
  /*** Type for hide some of the columns based on the dto of the particular page
353
371
  ** `id`, `updatedAt` are by default hidden
@@ -382,10 +400,10 @@ export declare const DialogTitle: React_2.ForwardRefExoticComponent<Omit<DialogP
382
400
 
383
401
  export declare const DialogTrigger: React_2.ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & React_2.RefAttributes<HTMLButtonElement>>;
384
402
 
385
- export declare type DisplayField = {
403
+ export declare type DisplayField<T> = {
386
404
  display: string;
387
- accessor: string;
388
- type?: 'text' | 'badge' | 'boolean';
405
+ accessor: NestedKeyOf<T>;
406
+ type?: 'text' | 'badge' | 'boolean' | 'date' | 'yesno' | 'copyButton' | 'link';
389
407
  transform?: (value: any) => React.ReactNode;
390
408
  };
391
409
 
@@ -470,10 +488,10 @@ export declare type fieldsToDisplay = {
470
488
 
471
489
  export declare const FILTER_COMPARISON_OPERATORS: readonly ["eq", "ne", "cn", "nc", "sw", "ew", "in", "nin", "gt", "gte", "lt", "lte"];
472
490
 
473
- export declare const FILTERABLE_PROPERTY_TYPES: readonly ["objectString", "string", "number", "objectNumber", "boolean", "objectDate", "licenseType", "product", "product-version", "user", "webhook", "automated-email", "organization", "country", "tag", "resource", "resourceId", "reseller", "role"];
491
+ export declare const FILTERABLE_PROPERTY_TYPES: readonly ["objectString", "string", "number", "objectNumber", "boolean", "objectDate", "licenseType", "product", "product-version", "user", "webhook", "automated-email", "organization", "country", "tag", "resource", "resourceId", "reseller", "role", "note", "os", "action"];
474
492
 
475
- export declare type FilterableProperties = {
476
- [filterProperty: string]: FilterablePropertyType;
493
+ export declare type FilterableProperties<T> = {
494
+ [K in keyof T]?: FilterablePropertyType;
477
495
  };
478
496
 
479
497
  export declare type FilterablePropertyType = (typeof FILTERABLE_PROPERTY_TYPES)[number];
@@ -530,15 +548,6 @@ export declare function getValueFromData(data: any, accessor: string | number |
530
548
 
531
549
  export declare const ID_COLUMN: AccessorKeyColumnDef<any, any>[];
532
550
 
533
- export declare const InfoCard: React.FC<InfoCardProps>;
534
-
535
- export declare interface InfoCardProps {
536
- data: Record<string, any>;
537
- label: string;
538
- fields: DisplayField[];
539
- className?: string;
540
- }
541
-
542
551
  export declare const Input: React_2.ForwardRefExoticComponent<InputProps & React_2.RefAttributes<HTMLInputElement>>;
543
552
 
544
553
  export declare const InputOTP: React_2.ForwardRefExoticComponent<(Omit<Omit<React_2.InputHTMLAttributes<HTMLInputElement>, "onChange" | "value" | "maxLength" | "textAlign" | "onComplete" | "pushPasswordManagerStrategy" | "pasteTransformer" | "containerClassName" | "noScriptCSSFallback"> & {
@@ -597,8 +606,28 @@ export declare type JwtDecode = {
597
606
  sadmin?: string;
598
607
  };
599
608
 
609
+ export declare const KeyValueCard: <T extends {}>({ data, label, fields }: KeyValueCardProps<T>) => JSX_2.Element;
610
+
611
+ export declare interface KeyValueCardProps<T> {
612
+ data: T;
613
+ label: string;
614
+ fields: DisplayField<T>[];
615
+ className?: string;
616
+ }
617
+
600
618
  export declare const Label: React_2.ForwardRefExoticComponent<Omit<LabelPrimitive.LabelProps & React_2.RefAttributes<HTMLLabelElement>, "ref"> & VariantProps<(props?: ClassProp | undefined) => string> & React_2.RefAttributes<HTMLLabelElement>>;
601
619
 
620
+ /**
621
+ *
622
+ * @param props buttonVariants
623
+ * @returns Button as Tanstack Link
624
+ */
625
+ export declare function LinkButton(props: VariantProps<typeof buttonVariants> & {
626
+ icon?: LucideIcon;
627
+ to: string;
628
+ children: React.ReactNode;
629
+ }): JSX_2.Element;
630
+
602
631
  export declare function Loader({ className }: LoaderProps): JSX_2.Element;
603
632
 
604
633
  declare interface LoaderProps {
@@ -634,7 +663,7 @@ export declare type NavItem = {
634
663
  label: string;
635
664
  display: boolean;
636
665
  icon: LucideIcon;
637
- chidren?: {
666
+ children?: {
638
667
  path: string;
639
668
  label: string;
640
669
  icon: LucideIcon;
@@ -646,6 +675,10 @@ export declare function NavMain({ items }: {
646
675
  items: NavItem[];
647
676
  }): JSX_2.Element;
648
677
 
678
+ declare type NestedKeyOf<T> = T extends object ? {
679
+ [K in keyof T]: K extends string | number ? `${K & string}` | `${K & string}.${NestedKeyOf<T[K]>}` : never;
680
+ }[keyof T] : never;
681
+
649
682
  export declare const OPERATORS_FOR_FILTER_TYPE: OperatorsForFilterType;
650
683
 
651
684
  export declare type OperatorsForFilterType = Record<FilterablePropertyType, FilterComparisonOperator[]>;
@@ -812,7 +845,7 @@ export declare const SidebarGroupLabel: React_2.ForwardRefExoticComponent<Omit<R
812
845
 
813
846
  export declare const SidebarHeader: React_2.ForwardRefExoticComponent<Omit<React_2.DetailedHTMLProps<React_2.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
814
847
 
815
- export declare const SidebarInput: React_2.ForwardRefExoticComponent<Omit<InputProps & React_2.RefAttributes<HTMLInputElement>, "ref"> & React_2.RefAttributes<HTMLInputElement>>;
848
+ export declare const SidebarInput: React_2.ForwardRefExoticComponent<Omit<InputProps_2 & React_2.RefAttributes<HTMLInputElement>, "ref"> & React_2.RefAttributes<HTMLInputElement>>;
816
849
 
817
850
  export declare const SidebarInset: React_2.ForwardRefExoticComponent<Omit<React_2.DetailedHTMLProps<React_2.HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
818
851
 
@@ -864,7 +897,7 @@ export declare const SidebarRail: React_2.ForwardRefExoticComponent<Omit<React_2
864
897
 
865
898
  export declare const SidebarSeparator: React_2.ForwardRefExoticComponent<Omit<Omit<SeparatorProps & React_2.RefAttributes<HTMLDivElement>, "ref"> & React_2.RefAttributes<HTMLDivElement>, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
866
899
 
867
- export declare const SidebarTrigger: React_2.ForwardRefExoticComponent<Omit<ButtonProps & React_2.RefAttributes<HTMLButtonElement>, "ref"> & React_2.RefAttributes<HTMLButtonElement>>;
900
+ export declare const SidebarTrigger: React_2.ForwardRefExoticComponent<Omit<ButtonProps_2 & React_2.RefAttributes<HTMLButtonElement>, "ref"> & React_2.RefAttributes<HTMLButtonElement>>;
868
901
 
869
902
  export declare function Skeleton({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): JSX_2.Element;
870
903