@loykin/designkit 0.0.1-dev.2 → 0.0.1-dev.3

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/lib/utils.ts","../src/components/ui/avatar.tsx","../src/components/ui/badge.tsx","../src/components/ui/button.tsx","../src/components/ui/card.tsx","../src/components/ui/checkbox.tsx","../src/components/ui/dropdown-menu.tsx","../src/components/ui/input.tsx","../src/components/ui/label.tsx","../src/components/ui/popover.tsx","../src/components/ui/scroll-area.tsx","../src/components/ui/navigation-menu.tsx","../src/components/ui/select.tsx","../src/components/ui/separator.tsx","../src/components/ui/sheet.tsx","../src/hooks/use-mobile.ts","../src/components/ui/skeleton.tsx","../src/components/ui/tooltip.tsx","../src/components/ui/sidebar.tsx","../src/components/ui/empty-state.tsx","../src/components/ui/slider.tsx","../src/components/ui/switch.tsx","../src/components/ui/table.tsx","../src/components/ui/tabs.tsx","../src/components/templates/datapage/DataPage.tsx","../src/components/templates/dashboard/DashboardBodyTemplate.tsx","../src/components/templates/databody/DataBodyTemplate.tsx","../src/components/templates/browse/BrowseBodyTemplate.tsx","../src/components/templates/detail/DetailBodyTemplate.tsx","../src/components/templates/form/FormWizardBodyTemplate.tsx","../src/components/templates/typography/TypographyBodyTemplate.tsx","../src/store/themeStore.ts","../src/components/templates/typography/ColorsBodyTemplate.tsx","../src/components/templates/auth/LoginBodyTemplate.tsx","../src/components/ui/breadcrumb.tsx","../src/components/templates/datapage/PageTopBar.tsx","../src/lib/styleInjector.ts"],"names":["twMerge","clsx","jsx","AvatarPrimitive","cva","useRender","mergeProps","ButtonPrimitive","CheckboxPrimitive","CheckIcon","MenuPrimitive","jsxs","ChevronRightIcon","InputPrimitive","PopoverPrimitive","ScrollAreaPrimitive","NavigationMenuPrimitive","ChevronDownIcon","SelectPrimitive","ChevronUpIcon","SeparatorPrimitive","SheetPrimitive","XIcon","React","TooltipPrimitive","React2","open","PanelLeftIcon","SliderPrimitive","SwitchPrimitive","TabsPrimitive","Tabs","forwardRef","DashboardPanel","GripHorizontal","Fragment","Children","Root","useMemo","useState","useEffect","SlidersHorizontal","Check","create"],"mappings":"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","file":"index.cjs","sourcesContent":["import { clsx, type ClassValue } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","'use client'\n\nimport * as React from 'react'\nimport { Avatar as AvatarPrimitive } from '@base-ui/react/avatar'\n\nimport { cn } from '@/lib/utils'\n\nfunction Avatar({\n className,\n size = 'default',\n ...props\n}: AvatarPrimitive.Root.Props & {\n size?: 'default' | 'sm' | 'lg'\n}) {\n return (\n <AvatarPrimitive.Root\n data-slot=\"avatar\"\n data-size={size}\n className={cn(\n 'group/avatar relative flex size-8 shrink-0 rounded-full select-none after:absolute after:inset-0 after:rounded-full after:border after:border-border after:mix-blend-darken data-[size=lg]:size-10 data-[size=sm]:size-6 dark:after:mix-blend-lighten',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction AvatarImage({ className, ...props }: AvatarPrimitive.Image.Props) {\n return (\n <AvatarPrimitive.Image\n data-slot=\"avatar-image\"\n className={cn('aspect-square size-full rounded-full object-cover', className)}\n {...props}\n />\n )\n}\n\nfunction AvatarFallback({ className, ...props }: AvatarPrimitive.Fallback.Props) {\n return (\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n className={cn(\n 'flex size-full items-center justify-center rounded-full bg-muted text-sm text-muted-foreground group-data-[size=sm]/avatar:text-xs',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction AvatarBadge({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"avatar-badge\"\n className={cn(\n 'absolute right-0 bottom-0 z-10 inline-flex items-center justify-center rounded-full bg-primary text-primary-foreground bg-blend-color ring-2 ring-background select-none',\n 'group-data-[size=sm]/avatar:size-2 group-data-[size=sm]/avatar:[&>svg]:hidden',\n 'group-data-[size=default]/avatar:size-2.5 group-data-[size=default]/avatar:[&>svg]:size-2',\n 'group-data-[size=lg]/avatar:size-3 group-data-[size=lg]/avatar:[&>svg]:size-2',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction AvatarGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"avatar-group\"\n className={cn(\n 'group/avatar-group flex -space-x-2 *:data-[slot=avatar]:ring-2 *:data-[slot=avatar]:ring-background',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction AvatarGroupCount({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"avatar-group-count\"\n className={cn(\n 'relative flex size-8 shrink-0 items-center justify-center rounded-full bg-muted text-sm text-muted-foreground ring-2 ring-background group-has-data-[size=lg]/avatar-group:size-10 group-has-data-[size=sm]/avatar-group:size-6 [&>svg]:size-4 group-has-data-[size=lg]/avatar-group:[&>svg]:size-5 group-has-data-[size=sm]/avatar-group:[&>svg]:size-3',\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { Avatar, AvatarImage, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarBadge }\n","import { mergeProps } from '@base-ui/react/merge-props'\nimport { useRender } from '@base-ui/react/use-render'\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { cn } from '@/lib/utils'\n\nconst badgeVariants = cva(\n 'group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3!',\n {\n variants: {\n variant: {\n default: 'bg-primary text-primary-foreground [a]:hover:bg-primary/80',\n secondary: 'bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80',\n destructive:\n 'bg-destructive/10 text-destructive focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/20',\n outline: 'border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground',\n ghost: 'hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n)\n\nfunction Badge({\n className,\n variant = 'default',\n render,\n ...props\n}: useRender.ComponentProps<'span'> & VariantProps<typeof badgeVariants>) {\n return useRender({\n defaultTagName: 'span',\n props: mergeProps<'span'>(\n {\n className: cn(badgeVariants({ variant }), className),\n },\n props,\n ),\n render,\n state: {\n slot: 'badge',\n variant,\n },\n })\n}\n\nexport { Badge, badgeVariants }\n","import { Button as ButtonPrimitive } from '@base-ui/react/button'\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { cn } from '@/lib/utils'\n\nconst buttonVariants = cva(\n \"group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n default: 'bg-primary text-primary-foreground [a]:hover:bg-primary/80',\n outline:\n 'border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50',\n secondary:\n 'bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground',\n ghost:\n 'hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50',\n destructive:\n 'bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n size: {\n default:\n 'h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2',\n xs: \"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3\",\n sm: \"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5\",\n lg: 'h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2',\n icon: 'size-8',\n 'icon-xs':\n \"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3\",\n 'icon-sm':\n 'size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg',\n 'icon-lg': 'size-9',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n)\n\nfunction Button({\n className,\n variant = 'default',\n size = 'default',\n ...props\n}: ButtonPrimitive.Props & VariantProps<typeof buttonVariants>) {\n return (\n <ButtonPrimitive\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n )\n}\n\nexport { Button, buttonVariants }\n","import * as React from 'react'\n\nimport { cn } from '@/lib/utils'\n\nfunction Card({\n className,\n size = 'default',\n ...props\n}: React.ComponentProps<'div'> & { size?: 'default' | 'sm' }) {\n return (\n <div\n data-slot=\"card\"\n data-size={size}\n className={cn(\n 'group/card flex flex-col gap-4 overflow-hidden rounded-xl bg-card py-4 text-sm text-card-foreground ring-1 ring-foreground/10 has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:gap-3 data-[size=sm]:py-3 data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction CardHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card-header\"\n className={cn(\n 'group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-4 group-data-[size=sm]/card:px-3 has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-4 group-data-[size=sm]/card:[.border-b]:pb-3',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction CardTitle({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card-title\"\n className={cn(\n 'font-heading text-base leading-snug font-medium group-data-[size=sm]/card:text-sm',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction CardDescription({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card-description\"\n className={cn('text-sm text-muted-foreground', className)}\n {...props}\n />\n )\n}\n\nfunction CardAction({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card-action\"\n className={cn('col-start-2 row-span-2 row-start-1 self-start justify-self-end', className)}\n {...props}\n />\n )\n}\n\nfunction CardContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card-content\"\n className={cn('px-4 group-data-[size=sm]/card:px-3', className)}\n {...props}\n />\n )\n}\n\nfunction CardFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card-footer\"\n className={cn(\n 'flex items-center rounded-b-xl border-t bg-muted/50 p-4 group-data-[size=sm]/card:p-3',\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { Card, CardHeader, CardFooter, CardTitle, CardAction, CardDescription, CardContent }\n","import { Checkbox as CheckboxPrimitive } from '@base-ui/react/checkbox'\n\nimport { cn } from '@/lib/utils'\nimport { CheckIcon } from 'lucide-react'\n\nfunction Checkbox({ className, ...props }: CheckboxPrimitive.Root.Props) {\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n className={cn(\n 'peer relative flex size-4 shrink-0 items-center justify-center rounded-[4px] border border-input transition-colors outline-none group-has-disabled/field:opacity-50 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary',\n className,\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n data-slot=\"checkbox-indicator\"\n className=\"grid place-content-center text-current transition-none [&>svg]:size-3.5\"\n >\n <CheckIcon />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n )\n}\n\nexport { Checkbox }\n","import * as React from 'react'\nimport { Menu as MenuPrimitive } from '@base-ui/react/menu'\n\nimport { cn } from '@/lib/utils'\nimport { ChevronRightIcon, CheckIcon } from 'lucide-react'\n\nfunction DropdownMenu({ ...props }: MenuPrimitive.Root.Props) {\n return <MenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />\n}\n\nfunction DropdownMenuPortal({ ...props }: MenuPrimitive.Portal.Props) {\n return <MenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" {...props} />\n}\n\nfunction DropdownMenuTrigger({\n asChild: _asChild,\n ...props\n}: MenuPrimitive.Trigger.Props & { asChild?: boolean }) {\n return <MenuPrimitive.Trigger data-slot=\"dropdown-menu-trigger\" {...props} />\n}\n\nfunction DropdownMenuContent({\n align = 'start',\n alignOffset = 0,\n side = 'bottom',\n sideOffset = 4,\n className,\n ...props\n}: MenuPrimitive.Popup.Props &\n Pick<MenuPrimitive.Positioner.Props, 'align' | 'alignOffset' | 'side' | 'sideOffset'>) {\n return (\n <MenuPrimitive.Portal>\n <MenuPrimitive.Positioner\n className=\"isolate z-50 outline-none\"\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n >\n <MenuPrimitive.Popup\n data-slot=\"dropdown-menu-content\"\n className={cn(\n 'z-50 max-h-(--available-height) w-(--anchor-width) min-w-32 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 outline-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:overflow-hidden data-closed:fade-out-0 data-closed:zoom-out-95',\n className,\n )}\n {...props}\n />\n </MenuPrimitive.Positioner>\n </MenuPrimitive.Portal>\n )\n}\n\nfunction DropdownMenuGroup({ ...props }: MenuPrimitive.Group.Props) {\n return <MenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />\n}\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: MenuPrimitive.GroupLabel.Props & {\n inset?: boolean\n}) {\n return (\n <MenuPrimitive.GroupLabel\n data-slot=\"dropdown-menu-label\"\n data-inset={inset}\n className={cn(\n 'px-1.5 py-1 text-xs font-medium text-muted-foreground data-inset:pl-7',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = 'default',\n ...props\n}: MenuPrimitive.Item.Props & {\n inset?: boolean\n variant?: 'default' | 'destructive'\n}) {\n return (\n <MenuPrimitive.Item\n data-slot=\"dropdown-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"group/dropdown-menu-item relative flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-7 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction DropdownMenuSub({ ...props }: MenuPrimitive.SubmenuRoot.Props) {\n return <MenuPrimitive.SubmenuRoot data-slot=\"dropdown-menu-sub\" {...props} />\n}\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: MenuPrimitive.SubmenuTrigger.Props & {\n inset?: boolean\n}) {\n return (\n <MenuPrimitive.SubmenuTrigger\n data-slot=\"dropdown-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-7 data-popup-open:bg-accent data-popup-open:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto\" />\n </MenuPrimitive.SubmenuTrigger>\n )\n}\n\nfunction DropdownMenuSubContent({\n align = 'start',\n alignOffset = -3,\n side = 'right',\n sideOffset = 0,\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuContent>) {\n return (\n <DropdownMenuContent\n data-slot=\"dropdown-menu-sub-content\"\n className={cn(\n 'w-auto min-w-[96px] rounded-lg bg-popover p-1 text-popover-foreground shadow-lg ring-1 ring-foreground/10 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95',\n className,\n )}\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n {...props}\n />\n )\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n inset,\n ...props\n}: MenuPrimitive.CheckboxItem.Props & {\n inset?: boolean\n}) {\n return (\n <MenuPrimitive.CheckboxItem\n data-slot=\"dropdown-menu-checkbox-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span\n className=\"pointer-events-none absolute right-2 flex items-center justify-center\"\n data-slot=\"dropdown-menu-checkbox-item-indicator\"\n >\n <MenuPrimitive.CheckboxItemIndicator>\n <CheckIcon />\n </MenuPrimitive.CheckboxItemIndicator>\n </span>\n {children}\n </MenuPrimitive.CheckboxItem>\n )\n}\n\nfunction DropdownMenuRadioGroup({ ...props }: MenuPrimitive.RadioGroup.Props) {\n return <MenuPrimitive.RadioGroup data-slot=\"dropdown-menu-radio-group\" {...props} />\n}\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n inset,\n ...props\n}: MenuPrimitive.RadioItem.Props & {\n inset?: boolean\n}) {\n return (\n <MenuPrimitive.RadioItem\n data-slot=\"dropdown-menu-radio-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <span\n className=\"pointer-events-none absolute right-2 flex items-center justify-center\"\n data-slot=\"dropdown-menu-radio-item-indicator\"\n >\n <MenuPrimitive.RadioItemIndicator>\n <CheckIcon />\n </MenuPrimitive.RadioItemIndicator>\n </span>\n {children}\n </MenuPrimitive.RadioItem>\n )\n}\n\nfunction DropdownMenuSeparator({ className, ...props }: MenuPrimitive.Separator.Props) {\n return (\n <MenuPrimitive.Separator\n data-slot=\"dropdown-menu-separator\"\n className={cn('-mx-1 my-1 h-px bg-border', className)}\n {...props}\n />\n )\n}\n\nfunction DropdownMenuShortcut({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"dropdown-menu-shortcut\"\n className={cn(\n 'ml-auto text-xs tracking-widest text-muted-foreground group-focus/dropdown-menu-item:text-accent-foreground',\n className,\n )}\n {...props}\n />\n )\n}\n\nexport {\n DropdownMenu,\n DropdownMenuPortal,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n}\n","import * as React from 'react'\nimport { Input as InputPrimitive } from '@base-ui/react/input'\n\nimport { cn } from '@/lib/utils'\n\nfunction Input({ className, type, ...props }: React.ComponentProps<'input'>) {\n return (\n <InputPrimitive\n type={type}\n data-slot=\"input\"\n className={cn(\n 'h-8 w-full min-w-0 rounded-lg border border-input bg-transparent px-2.5 py-1 text-base transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:disabled:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40',\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { Input }\n","import * as React from 'react'\n\nimport { cn } from '@/lib/utils'\n\nfunction Label({ className, ...props }: React.ComponentProps<'label'>) {\n return (\n <label\n data-slot=\"label\"\n className={cn(\n 'flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50',\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { Label }\n","import * as React from 'react'\nimport { Popover as PopoverPrimitive } from '@base-ui/react/popover'\n\nimport { cn } from '@/lib/utils'\n\nfunction Popover({ ...props }: PopoverPrimitive.Root.Props) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />\n}\n\nfunction PopoverTrigger({ ...props }: PopoverPrimitive.Trigger.Props) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />\n}\n\nfunction PopoverContent({\n className,\n align = 'center',\n alignOffset = 0,\n side = 'bottom',\n sideOffset = 4,\n ...props\n}: PopoverPrimitive.Popup.Props &\n Pick<PopoverPrimitive.Positioner.Props, 'align' | 'alignOffset' | 'side' | 'sideOffset'>) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Positioner\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n className=\"isolate z-50\"\n >\n <PopoverPrimitive.Popup\n data-slot=\"popover-content\"\n className={cn(\n 'z-50 flex w-72 origin-(--transform-origin) flex-col gap-2.5 rounded-lg bg-popover p-2.5 text-sm text-popover-foreground shadow-md ring-1 ring-foreground/10 outline-hidden duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95',\n className,\n )}\n {...props}\n />\n </PopoverPrimitive.Positioner>\n </PopoverPrimitive.Portal>\n )\n}\n\nfunction PopoverHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"popover-header\"\n className={cn('flex flex-col gap-0.5 text-sm', className)}\n {...props}\n />\n )\n}\n\nfunction PopoverTitle({ className, ...props }: PopoverPrimitive.Title.Props) {\n return (\n <PopoverPrimitive.Title\n data-slot=\"popover-title\"\n className={cn('font-medium', className)}\n {...props}\n />\n )\n}\n\nfunction PopoverDescription({ className, ...props }: PopoverPrimitive.Description.Props) {\n return (\n <PopoverPrimitive.Description\n data-slot=\"popover-description\"\n className={cn('text-muted-foreground', className)}\n {...props}\n />\n )\n}\n\nexport { Popover, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger }\n","import * as React from 'react'\nimport { ScrollArea as ScrollAreaPrimitive } from '@base-ui/react/scroll-area'\n\nimport { cn } from '@/lib/utils'\n\nfunction ScrollArea({ className, children, ...props }: ScrollAreaPrimitive.Root.Props) {\n return (\n <ScrollAreaPrimitive.Root\n data-slot=\"scroll-area\"\n className={cn('relative', className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport\n data-slot=\"scroll-area-viewport\"\n className=\"size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1\"\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n )\n}\n\nfunction ScrollBar({\n className,\n orientation = 'vertical',\n ...props\n}: ScrollAreaPrimitive.Scrollbar.Props) {\n return (\n <ScrollAreaPrimitive.Scrollbar\n data-slot=\"scroll-area-scrollbar\"\n data-orientation={orientation}\n orientation={orientation}\n className={cn(\n 'flex touch-none p-px transition-colors select-none data-horizontal:h-2.5 data-horizontal:flex-col data-horizontal:border-t data-horizontal:border-t-transparent data-vertical:h-full data-vertical:w-2.5 data-vertical:border-l data-vertical:border-l-transparent',\n className,\n )}\n {...props}\n >\n <ScrollAreaPrimitive.Thumb\n data-slot=\"scroll-area-thumb\"\n className=\"relative flex-1 rounded-full bg-border\"\n />\n </ScrollAreaPrimitive.Scrollbar>\n )\n}\n\nexport { ScrollArea, ScrollBar }\n","import { NavigationMenu as NavigationMenuPrimitive } from '@base-ui/react/navigation-menu'\nimport { cva } from 'class-variance-authority'\n\nimport { cn } from '@/lib/utils'\nimport { ChevronDownIcon } from 'lucide-react'\n\nfunction NavigationMenu({\n align = 'start',\n className,\n children,\n ...props\n}: NavigationMenuPrimitive.Root.Props & Pick<NavigationMenuPrimitive.Positioner.Props, 'align'>) {\n return (\n <NavigationMenuPrimitive.Root\n data-slot=\"navigation-menu\"\n className={cn(\n 'group/navigation-menu relative flex max-w-max flex-1 items-center justify-center',\n className,\n )}\n {...props}\n >\n {children}\n <NavigationMenuPositioner align={align} />\n </NavigationMenuPrimitive.Root>\n )\n}\n\nfunction NavigationMenuList({\n className,\n ...props\n}: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.List>) {\n return (\n <NavigationMenuPrimitive.List\n data-slot=\"navigation-menu-list\"\n className={cn('group flex flex-1 list-none items-center justify-center gap-0', className)}\n {...props}\n />\n )\n}\n\nfunction NavigationMenuItem({\n className,\n ...props\n}: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.Item>) {\n return (\n <NavigationMenuPrimitive.Item\n data-slot=\"navigation-menu-item\"\n className={cn('relative', className)}\n {...props}\n />\n )\n}\n\nconst navigationMenuTriggerStyle = cva(\n 'group/navigation-menu-trigger inline-flex h-9 w-max items-center justify-center rounded-lg px-2.5 py-1.5 text-sm font-medium transition-all outline-none hover:bg-muted focus:bg-muted focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-popup-open:bg-muted/50 data-popup-open:hover:bg-muted data-open:bg-muted/50 data-open:hover:bg-muted data-open:focus:bg-muted',\n)\n\nfunction NavigationMenuTrigger({\n className,\n children,\n ...props\n}: NavigationMenuPrimitive.Trigger.Props) {\n return (\n <NavigationMenuPrimitive.Trigger\n data-slot=\"navigation-menu-trigger\"\n className={cn(navigationMenuTriggerStyle(), 'group', className)}\n {...props}\n >\n {children}{' '}\n <ChevronDownIcon\n className=\"relative top-px ml-1 size-3 transition duration-300 group-data-popup-open/navigation-menu-trigger:rotate-180 group-data-open/navigation-menu-trigger:rotate-180\"\n aria-hidden=\"true\"\n />\n </NavigationMenuPrimitive.Trigger>\n )\n}\n\nfunction NavigationMenuContent({ className, ...props }: NavigationMenuPrimitive.Content.Props) {\n return (\n <NavigationMenuPrimitive.Content\n data-slot=\"navigation-menu-content\"\n className={cn(\n 'data-ending-style:data-activation-direction=left:translate-x-[50%] data-ending-style:data-activation-direction=right:translate-x-[-50%] data-starting-style:data-activation-direction=left:translate-x-[-50%] data-starting-style:data-activation-direction=right:translate-x-[50%] h-full w-auto p-1 transition-[opacity,transform,translate] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] group-data-[viewport=false]/navigation-menu:rounded-lg group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:shadow group-data-[viewport=false]/navigation-menu:ring-1 group-data-[viewport=false]/navigation-menu:ring-foreground/10 group-data-[viewport=false]/navigation-menu:duration-300 data-ending-style:opacity-0 data-starting-style:opacity-0 data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 data-[motion^=from-]:animate-in data-[motion^=from-]:fade-in data-[motion^=to-]:animate-out data-[motion^=to-]:fade-out **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none group-data-[viewport=false]/navigation-menu:data-open:animate-in group-data-[viewport=false]/navigation-menu:data-open:fade-in-0 group-data-[viewport=false]/navigation-menu:data-open:zoom-in-95 group-data-[viewport=false]/navigation-menu:data-closed:animate-out group-data-[viewport=false]/navigation-menu:data-closed:fade-out-0 group-data-[viewport=false]/navigation-menu:data-closed:zoom-out-95',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction NavigationMenuPositioner({\n className,\n side = 'bottom',\n sideOffset = 8,\n align = 'start',\n alignOffset = 0,\n ...props\n}: NavigationMenuPrimitive.Positioner.Props) {\n return (\n <NavigationMenuPrimitive.Portal>\n <NavigationMenuPrimitive.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n className={cn(\n 'isolate z-50 h-(--positioner-height) w-(--positioner-width) max-w-(--available-width) transition-[top,left,right,bottom] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] data-instant:transition-none data-[side=bottom]:before:top-[-10px] data-[side=bottom]:before:right-0 data-[side=bottom]:before:left-0',\n className,\n )}\n {...props}\n >\n <NavigationMenuPrimitive.Popup className=\"data-[ending-style]:easing-[ease] xs:w-(--popup-width) relative h-(--popup-height) w-(--popup-width) origin-(--transform-origin) rounded-lg bg-popover text-popover-foreground shadow ring-1 ring-foreground/10 transition-[opacity,transform,width,height,scale,translate] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] outline-none data-ending-style:scale-90 data-ending-style:opacity-0 data-ending-style:duration-150 data-starting-style:scale-90 data-starting-style:opacity-0\">\n <NavigationMenuPrimitive.Viewport className=\"relative size-full overflow-hidden\" />\n </NavigationMenuPrimitive.Popup>\n </NavigationMenuPrimitive.Positioner>\n </NavigationMenuPrimitive.Portal>\n )\n}\n\nfunction NavigationMenuLink({ className, ...props }: NavigationMenuPrimitive.Link.Props) {\n return (\n <NavigationMenuPrimitive.Link\n data-slot=\"navigation-menu-link\"\n className={cn(\n \"flex items-center gap-2 rounded-lg p-2 text-sm transition-all outline-none hover:bg-muted focus:bg-muted focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:outline-1 in-data-[slot=navigation-menu-content]:rounded-md data-active:bg-muted/50 data-active:hover:bg-muted data-active:focus:bg-muted [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction NavigationMenuIndicator({\n className,\n ...props\n}: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.Icon>) {\n return (\n <NavigationMenuPrimitive.Icon\n data-slot=\"navigation-menu-indicator\"\n className={cn(\n 'top-full z-1 flex h-1.5 items-end justify-center overflow-hidden data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:animate-in data-[state=visible]:fade-in',\n className,\n )}\n {...props}\n >\n <div className=\"relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border shadow-md\" />\n </NavigationMenuPrimitive.Icon>\n )\n}\n\nexport {\n NavigationMenu,\n NavigationMenuContent,\n NavigationMenuIndicator,\n NavigationMenuItem,\n NavigationMenuLink,\n NavigationMenuList,\n NavigationMenuTrigger,\n navigationMenuTriggerStyle,\n NavigationMenuPositioner,\n}\n","'use client'\n\nimport * as React from 'react'\nimport { Select as SelectPrimitive } from '@base-ui/react/select'\n\nimport { cn } from '@/lib/utils'\nimport { ChevronDownIcon, CheckIcon, ChevronUpIcon } from 'lucide-react'\n\nconst Select = SelectPrimitive.Root\n\nfunction SelectGroup({ className, ...props }: SelectPrimitive.Group.Props) {\n return (\n <SelectPrimitive.Group\n data-slot=\"select-group\"\n className={cn('scroll-my-1 p-1', className)}\n {...props}\n />\n )\n}\n\nfunction SelectValue({ className, ...props }: SelectPrimitive.Value.Props) {\n return (\n <SelectPrimitive.Value\n data-slot=\"select-value\"\n className={cn('flex flex-1 text-left', className)}\n {...props}\n />\n )\n}\n\nfunction SelectTrigger({\n className,\n size = 'default',\n children,\n ...props\n}: SelectPrimitive.Trigger.Props & {\n size?: 'sm' | 'default'\n}) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n data-size={size}\n className={cn(\n \"flex w-fit items-center justify-between gap-1.5 rounded-lg border border-input bg-background py-2 pr-2 pl-2.5 text-sm whitespace-nowrap transition-colors outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-placeholder:text-muted-foreground data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon\n render={<ChevronDownIcon className=\"pointer-events-none size-4 text-muted-foreground\" />}\n />\n </SelectPrimitive.Trigger>\n )\n}\n\nfunction SelectContent({\n className,\n children,\n side = 'bottom',\n sideOffset = 4,\n align = 'center',\n alignOffset = 0,\n alignItemWithTrigger = true,\n ...props\n}: SelectPrimitive.Popup.Props &\n Pick<\n SelectPrimitive.Positioner.Props,\n 'align' | 'alignOffset' | 'side' | 'sideOffset' | 'alignItemWithTrigger'\n >) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n alignItemWithTrigger={alignItemWithTrigger}\n className=\"isolate z-50\"\n >\n <SelectPrimitive.Popup\n data-slot=\"select-content\"\n data-align-trigger={alignItemWithTrigger}\n className={cn(\n 'relative isolate z-50 max-h-(--available-height) w-(--anchor-width) min-w-36 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[align-trigger=true]:animate-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95',\n className,\n )}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.List>{children}</SelectPrimitive.List>\n <SelectScrollDownButton />\n </SelectPrimitive.Popup>\n </SelectPrimitive.Positioner>\n </SelectPrimitive.Portal>\n )\n}\n\nfunction SelectLabel({ className, ...props }: SelectPrimitive.GroupLabel.Props) {\n return (\n <SelectPrimitive.GroupLabel\n data-slot=\"select-label\"\n className={cn('px-1.5 py-1 text-xs text-muted-foreground', className)}\n {...props}\n />\n )\n}\n\nfunction SelectItem({ className, children, ...props }: SelectPrimitive.Item.Props) {\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(\n \"relative flex w-full cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2\",\n className,\n )}\n {...props}\n >\n <SelectPrimitive.ItemText className=\"flex flex-1 shrink-0 gap-2 whitespace-nowrap\">\n {children}\n </SelectPrimitive.ItemText>\n <SelectPrimitive.ItemIndicator\n render={\n <span className=\"pointer-events-none absolute right-2 flex size-4 items-center justify-center\" />\n }\n >\n <CheckIcon className=\"pointer-events-none\" />\n </SelectPrimitive.ItemIndicator>\n </SelectPrimitive.Item>\n )\n}\n\nfunction SelectSeparator({ className, ...props }: SelectPrimitive.Separator.Props) {\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n className={cn('pointer-events-none -mx-1 my-1 h-px bg-border', className)}\n {...props}\n />\n )\n}\n\nfunction SelectScrollUpButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollUpArrow>) {\n return (\n <SelectPrimitive.ScrollUpArrow\n data-slot=\"select-scroll-up-button\"\n className={cn(\n \"top-0 z-10 flex w-full cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <ChevronUpIcon />\n </SelectPrimitive.ScrollUpArrow>\n )\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownArrow>) {\n return (\n <SelectPrimitive.ScrollDownArrow\n data-slot=\"select-scroll-down-button\"\n className={cn(\n \"bottom-0 z-10 flex w-full cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <ChevronDownIcon />\n </SelectPrimitive.ScrollDownArrow>\n )\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n}\n","'use client'\n\nimport { Separator as SeparatorPrimitive } from '@base-ui/react/separator'\n\nimport { cn } from '@/lib/utils'\n\nfunction Separator({ className, orientation = 'horizontal', ...props }: SeparatorPrimitive.Props) {\n return (\n <SeparatorPrimitive\n data-slot=\"separator\"\n orientation={orientation}\n className={cn(\n 'shrink-0 bg-border data-horizontal:h-px data-horizontal:w-full data-vertical:w-px data-vertical:self-stretch',\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { Separator }\n","import * as React from 'react'\nimport { Dialog as SheetPrimitive } from '@base-ui/react/dialog'\n\nimport { cn } from '@/lib/utils'\nimport { Button } from '@/components/ui/button'\nimport { XIcon } from 'lucide-react'\n\nfunction Sheet({ ...props }: SheetPrimitive.Root.Props) {\n return <SheetPrimitive.Root data-slot=\"sheet\" {...props} />\n}\n\nfunction SheetTrigger({ ...props }: SheetPrimitive.Trigger.Props) {\n return <SheetPrimitive.Trigger data-slot=\"sheet-trigger\" {...props} />\n}\n\nfunction SheetClose({ ...props }: SheetPrimitive.Close.Props) {\n return <SheetPrimitive.Close data-slot=\"sheet-close\" {...props} />\n}\n\nfunction SheetPortal({ ...props }: SheetPrimitive.Portal.Props) {\n return <SheetPrimitive.Portal data-slot=\"sheet-portal\" {...props} />\n}\n\nfunction SheetOverlay({ className, ...props }: SheetPrimitive.Backdrop.Props) {\n return (\n <SheetPrimitive.Backdrop\n data-slot=\"sheet-overlay\"\n className={cn(\n 'fixed inset-0 z-50 bg-black/10 transition-opacity duration-150 data-ending-style:opacity-0 data-starting-style:opacity-0 supports-backdrop-filter:backdrop-blur-xs',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction SheetContent({\n className,\n children,\n side = 'right',\n showCloseButton = true,\n ...props\n}: SheetPrimitive.Popup.Props & {\n side?: 'top' | 'right' | 'bottom' | 'left'\n showCloseButton?: boolean\n}) {\n return (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Popup\n data-slot=\"sheet-content\"\n data-side={side}\n className={cn(\n 'fixed z-50 flex flex-col gap-4 bg-popover bg-clip-padding text-sm text-popover-foreground shadow-lg transition duration-200 ease-in-out data-ending-style:opacity-0 data-starting-style:opacity-0 data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=bottom]:data-ending-style:translate-y-[2.5rem] data-[side=bottom]:data-starting-style:translate-y-[2.5rem] data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=left]:data-ending-style:translate-x-[-2.5rem] data-[side=left]:data-starting-style:translate-x-[-2.5rem] data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=right]:data-ending-style:translate-x-[2.5rem] data-[side=right]:data-starting-style:translate-x-[2.5rem] data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=top]:data-ending-style:translate-y-[-2.5rem] data-[side=top]:data-starting-style:translate-y-[-2.5rem] data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm',\n className,\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <SheetPrimitive.Close\n data-slot=\"sheet-close\"\n render={<Button variant=\"ghost\" className=\"absolute top-3 right-3\" size=\"icon-sm\" />}\n >\n <XIcon />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n )}\n </SheetPrimitive.Popup>\n </SheetPortal>\n )\n}\n\nfunction SheetHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sheet-header\"\n className={cn('flex flex-col gap-0.5 p-4', className)}\n {...props}\n />\n )\n}\n\nfunction SheetFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sheet-footer\"\n className={cn('mt-auto flex flex-col gap-2 p-4', className)}\n {...props}\n />\n )\n}\n\nfunction SheetTitle({ className, ...props }: SheetPrimitive.Title.Props) {\n return (\n <SheetPrimitive.Title\n data-slot=\"sheet-title\"\n className={cn('font-heading text-base font-medium text-foreground', className)}\n {...props}\n />\n )\n}\n\nfunction SheetDescription({ className, ...props }: SheetPrimitive.Description.Props) {\n return (\n <SheetPrimitive.Description\n data-slot=\"sheet-description\"\n className={cn('text-sm text-muted-foreground', className)}\n {...props}\n />\n )\n}\n\nexport {\n Sheet,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n}\n","import * as React from 'react'\n\nconst MOBILE_BREAKPOINT = 768\n\nexport function useIsMobile() {\n const [isMobile, setIsMobile] = React.useState<boolean | undefined>(undefined)\n\n React.useEffect(() => {\n const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`)\n const onChange = () => {\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)\n }\n mql.addEventListener('change', onChange)\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)\n return () => mql.removeEventListener('change', onChange)\n }, [])\n\n return !!isMobile\n}\n","import { cn } from '@/lib/utils'\n\nfunction Skeleton({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"skeleton\"\n className={cn('animate-pulse rounded-md bg-muted', className)}\n {...props}\n />\n )\n}\n\nexport { Skeleton }\n","'use client'\n\nimport { Tooltip as TooltipPrimitive } from '@base-ui/react/tooltip'\n\nimport { cn } from '@/lib/utils'\n\nfunction TooltipProvider({ delay = 0, ...props }: TooltipPrimitive.Provider.Props) {\n return <TooltipPrimitive.Provider data-slot=\"tooltip-provider\" delay={delay} {...props} />\n}\n\nfunction Tooltip({ ...props }: TooltipPrimitive.Root.Props) {\n return <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\n}\n\nfunction TooltipTrigger({ ...props }: TooltipPrimitive.Trigger.Props) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />\n}\n\nfunction TooltipContent({\n className,\n side = 'top',\n sideOffset = 4,\n align = 'center',\n alignOffset = 0,\n children,\n ...props\n}: TooltipPrimitive.Popup.Props &\n Pick<TooltipPrimitive.Positioner.Props, 'align' | 'alignOffset' | 'side' | 'sideOffset'>) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Positioner\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n className=\"isolate z-50\"\n >\n <TooltipPrimitive.Popup\n data-slot=\"tooltip-content\"\n className={cn(\n 'z-50 inline-flex w-fit max-w-xs origin-(--transform-origin) items-center gap-1.5 rounded-md bg-foreground px-3 py-1.5 text-xs text-background has-data-[slot=kbd]:pr-1.5 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 **:data-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-50 **:data-[slot=kbd]:rounded-sm data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95',\n className,\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"z-50 size-2.5 translate-y-[calc(-50%-2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground data-[side=bottom]:top-1 data-[side=inline-end]:top-1/2! data-[side=inline-end]:-left-1 data-[side=inline-end]:-translate-y-1/2 data-[side=inline-start]:top-1/2! data-[side=inline-start]:-right-1 data-[side=inline-start]:-translate-y-1/2 data-[side=left]:top-1/2! data-[side=left]:-right-1 data-[side=left]:-translate-y-1/2 data-[side=right]:top-1/2! data-[side=right]:-left-1 data-[side=right]:-translate-y-1/2 data-[side=top]:-bottom-2.5\" />\n </TooltipPrimitive.Popup>\n </TooltipPrimitive.Positioner>\n </TooltipPrimitive.Portal>\n )\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\n","'use client'\n\nimport * as React from 'react'\nimport { mergeProps } from '@base-ui/react/merge-props'\nimport { useRender } from '@base-ui/react/use-render'\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { useIsMobile } from '@/hooks/use-mobile'\nimport { cn } from '@/lib/utils'\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, TooltipTrigger } from '@/components/ui/tooltip'\nimport { PanelLeftIcon } from 'lucide-react'\n\nconst SIDEBAR_COOKIE_NAME = 'sidebar_state'\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7\nconst SIDEBAR_WIDTH = '16rem'\nconst SIDEBAR_WIDTH_MOBILE = '18rem'\nconst SIDEBAR_WIDTH_ICON = '3rem'\nconst SIDEBAR_KEYBOARD_SHORTCUT = 'b'\n\ntype SidebarContextProps = {\n state: 'expanded' | 'collapsed'\n open: boolean\n setOpen: (open: boolean) => void\n openMobile: boolean\n setOpenMobile: (open: boolean) => void\n isMobile: boolean\n toggleSidebar: () => void\n}\n\nconst SidebarContext = React.createContext<SidebarContextProps | null>(null)\n\nfunction useSidebar() {\n const context = React.useContext(SidebarContext)\n if (!context) {\n throw new Error('useSidebar must be used within a SidebarProvider.')\n }\n\n return context\n}\n\nfunction SidebarProvider({\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n}: React.ComponentProps<'div'> & {\n defaultOpen?: boolean\n open?: boolean\n onOpenChange?: (open: boolean) => void\n}) {\n const isMobile = useIsMobile()\n const [openMobile, setOpenMobile] = React.useState(false)\n\n // This is the internal state of the sidebar.\n // We use openProp and setOpenProp for control from outside the component.\n const [_open, _setOpen] = React.useState(defaultOpen)\n const open = openProp ?? _open\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === 'function' ? value(open) : value\n if (setOpenProp) {\n setOpenProp(openState)\n } else {\n _setOpen(openState)\n }\n\n // This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`\n },\n [setOpenProp, open],\n )\n\n // Helper to toggle the sidebar.\n const toggleSidebar = React.useCallback(() => {\n return isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open)\n }, [isMobile, setOpen, setOpenMobile])\n\n // Adds a keyboard shortcut to toggle the sidebar.\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (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<SidebarContextProps>(\n () => ({\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n }),\n [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar],\n )\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <div\n data-slot=\"sidebar-wrapper\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH,\n '--sidebar-width-icon': SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n className={cn(\n 'group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar',\n className,\n )}\n {...props}\n >\n {children}\n </div>\n </SidebarContext.Provider>\n )\n}\n\nfunction Sidebar({\n side = 'left',\n variant = 'sidebar',\n collapsible = 'offcanvas',\n className,\n children,\n dir,\n ...props\n}: React.ComponentProps<'div'> & {\n side?: 'left' | 'right'\n variant?: 'sidebar' | 'floating' | 'inset'\n collapsible?: 'offcanvas' | 'icon' | 'none'\n}) {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar()\n\n if (collapsible === 'none') {\n return (\n <div\n data-slot=\"sidebar\"\n className={cn(\n 'flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground',\n className,\n )}\n {...props}\n >\n {children}\n </div>\n )\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n dir={dir}\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar\"\n data-mobile=\"true\"\n className=\"w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <SheetHeader className=\"sr-only\">\n <SheetTitle>Sidebar</SheetTitle>\n <SheetDescription>Displays the mobile sidebar.</SheetDescription>\n </SheetHeader>\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n )\n }\n\n return (\n <div\n className=\"group peer hidden text-sidebar-foreground md:block\"\n data-state={state}\n data-collapsible={state === 'collapsed' ? collapsible : ''}\n data-variant={variant}\n data-side={side}\n data-slot=\"sidebar\"\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n data-slot=\"sidebar-gap\"\n className={cn(\n 'relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear',\n 'group-data-[collapsible=offcanvas]:w-0',\n 'group-data-[side=right]:rotate-180',\n variant === 'floating' || variant === 'inset'\n ? 'group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon)',\n )}\n />\n <div\n data-slot=\"sidebar-container\"\n data-side={side}\n className={cn(\n 'fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear data-[side=left]:left-0 data-[side=left]:group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)] data-[side=right]:right-0 data-[side=right]:group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)] md:flex',\n // Adjust the padding for floating and inset variants.\n variant === 'floating' || variant === 'inset'\n ? 'p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l',\n className,\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar-inner\"\n className=\"flex size-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:shadow-sm group-data-[variant=floating]:ring-1 group-data-[variant=floating]:ring-sidebar-border\"\n >\n {children}\n </div>\n </div>\n </div>\n )\n}\n\nfunction SidebarTrigger({ className, onClick, ...props }: React.ComponentProps<typeof Button>) {\n const { toggleSidebar } = useSidebar()\n\n return (\n <Button\n data-sidebar=\"trigger\"\n data-slot=\"sidebar-trigger\"\n variant=\"ghost\"\n size=\"icon-sm\"\n className={cn(className)}\n onClick={(event) => {\n onClick?.(event)\n toggleSidebar()\n }}\n {...props}\n >\n <PanelLeftIcon />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n )\n}\n\nfunction SidebarRail({ className, ...props }: React.ComponentProps<'button'>) {\n const { toggleSidebar } = useSidebar()\n\n return (\n <button\n data-sidebar=\"rail\"\n data-slot=\"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 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:start-1/2 after:w-[2px] hover:after:bg-sidebar-border sm:flex ltr:-translate-x-1/2 rtl:-translate-x-1/2',\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\nfunction SidebarInset({ className, ...props }: React.ComponentProps<'main'>) {\n return (\n <main\n data-slot=\"sidebar-inset\"\n className={cn(\n 'relative flex w-full flex-1 flex-col bg-background md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarInput({ className, ...props }: React.ComponentProps<typeof Input>) {\n return (\n <Input\n data-slot=\"sidebar-input\"\n data-sidebar=\"input\"\n className={cn('h-8 w-full bg-background shadow-none', className)}\n {...props}\n />\n )\n}\n\nfunction SidebarHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-header\"\n data-sidebar=\"header\"\n className={cn('flex flex-col gap-2 p-2', className)}\n {...props}\n />\n )\n}\n\nfunction SidebarFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-footer\"\n data-sidebar=\"footer\"\n className={cn('flex flex-col gap-2 p-2', className)}\n {...props}\n />\n )\n}\n\nfunction SidebarSeparator({ className, ...props }: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"sidebar-separator\"\n data-sidebar=\"separator\"\n className={cn('mx-2 w-auto bg-sidebar-border', className)}\n {...props}\n />\n )\n}\n\nfunction SidebarContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-content\"\n data-sidebar=\"content\"\n className={cn(\n 'no-scrollbar flex min-h-0 flex-1 flex-col gap-0 overflow-auto group-data-[collapsible=icon]:overflow-hidden',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-group\"\n data-sidebar=\"group\"\n className={cn('relative flex w-full min-w-0 flex-col p-2', className)}\n {...props}\n />\n )\n}\n\nfunction SidebarGroupLabel({\n className,\n render,\n ...props\n}: useRender.ComponentProps<'div'> & React.ComponentProps<'div'>) {\n return useRender({\n defaultTagName: 'div',\n props: mergeProps<'div'>(\n {\n className: cn(\n 'flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 ring-sidebar-ring outline-hidden transition-[margin,opacity] duration-200 ease-linear group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0 focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n className,\n ),\n },\n props,\n ),\n render,\n state: {\n slot: 'sidebar-group-label',\n sidebar: 'group-label',\n },\n })\n}\n\nfunction SidebarGroupAction({\n className,\n render,\n ...props\n}: useRender.ComponentProps<'button'> & React.ComponentProps<'button'>) {\n return useRender({\n defaultTagName: 'button',\n props: mergeProps<'button'>(\n {\n className: cn(\n 'absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground ring-sidebar-ring outline-hidden transition-transform group-data-[collapsible=icon]:hidden after:absolute after:-inset-2 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 md:after:hidden [&>svg]:size-4 [&>svg]:shrink-0',\n className,\n ),\n },\n props,\n ),\n render,\n state: {\n slot: 'sidebar-group-action',\n sidebar: 'group-action',\n },\n })\n}\n\nfunction SidebarGroupContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-group-content\"\n data-sidebar=\"group-content\"\n className={cn('w-full text-sm', className)}\n {...props}\n />\n )\n}\n\nfunction SidebarMenu({ className, ...props }: React.ComponentProps<'ul'>) {\n return (\n <ul\n data-slot=\"sidebar-menu\"\n data-sidebar=\"menu\"\n className={cn('flex w-full min-w-0 flex-col gap-0', className)}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuItem({ className, ...props }: React.ComponentProps<'li'>) {\n return (\n <li\n data-slot=\"sidebar-menu-item\"\n data-sidebar=\"menu-item\"\n className={cn('group/menu-item relative', className)}\n {...props}\n />\n )\n}\n\nconst sidebarMenuButtonVariants = cva(\n 'peer/menu-button group/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm ring-sidebar-ring outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:font-medium data-active:text-sidebar-accent-foreground [&_svg]:size-4 [&_svg]:shrink-0 [&>span:last-child]:truncate',\n {\n variants: {\n variant: {\n default: 'hover:bg-sidebar-accent hover:text-sidebar-accent-foreground',\n outline:\n 'bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]',\n },\n size: {\n default: 'h-8 text-sm',\n sm: 'h-7 text-xs',\n lg: 'h-12 text-sm group-data-[collapsible=icon]:p-0!',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n)\n\nfunction SidebarMenuButton({\n render,\n isActive = false,\n variant = 'default',\n size = 'default',\n tooltip,\n className,\n ...props\n}: useRender.ComponentProps<'button'> &\n React.ComponentProps<'button'> & {\n isActive?: boolean\n tooltip?: string | React.ComponentProps<typeof TooltipContent>\n } & VariantProps<typeof sidebarMenuButtonVariants>) {\n const { isMobile, state } = useSidebar()\n const comp = useRender({\n defaultTagName: 'button',\n props: mergeProps<'button'>(\n {\n className: cn(sidebarMenuButtonVariants({ variant, size }), className),\n },\n props,\n ),\n render: !tooltip ? render : <TooltipTrigger render={render} />,\n state: {\n slot: 'sidebar-menu-button',\n sidebar: 'menu-button',\n size,\n active: isActive,\n },\n })\n\n if (!tooltip) {\n return comp\n }\n\n if (typeof tooltip === 'string') {\n tooltip = {\n children: tooltip,\n }\n }\n\n return (\n <Tooltip>\n {comp}\n <TooltipContent\n side=\"right\"\n align=\"center\"\n hidden={state !== 'collapsed' || isMobile}\n {...tooltip}\n />\n </Tooltip>\n )\n}\n\nfunction SidebarMenuAction({\n className,\n render,\n showOnHover = false,\n ...props\n}: useRender.ComponentProps<'button'> &\n React.ComponentProps<'button'> & {\n showOnHover?: boolean\n }) {\n return useRender({\n defaultTagName: 'button',\n props: mergeProps<'button'>(\n {\n className: cn(\n 'absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground ring-sidebar-ring outline-hidden transition-transform group-data-[collapsible=icon]:hidden peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 after:absolute after:-inset-2 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 md:after:hidden [&>svg]:size-4 [&>svg]:shrink-0',\n showOnHover &&\n 'group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 peer-data-active/menu-button:text-sidebar-accent-foreground aria-expanded:opacity-100 md:opacity-0',\n className,\n ),\n },\n props,\n ),\n render,\n state: {\n slot: 'sidebar-menu-action',\n sidebar: 'menu-action',\n },\n })\n}\n\nfunction SidebarMenuBadge({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-menu-badge\"\n data-sidebar=\"menu-badge\"\n className={cn(\n 'pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium text-sidebar-foreground tabular-nums select-none group-data-[collapsible=icon]:hidden peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 peer-data-active/menu-button:text-sidebar-accent-foreground',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuSkeleton({\n className,\n showIcon = false,\n ...props\n}: React.ComponentProps<'div'> & {\n showIcon?: boolean\n}) {\n // Random width between 50 to 90%.\n const [width] = React.useState(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`\n })\n\n return (\n <div\n data-slot=\"sidebar-menu-skeleton\"\n data-sidebar=\"menu-skeleton\"\n className={cn('flex h-8 items-center gap-2 rounded-md px-2', className)}\n {...props}\n >\n {showIcon && <Skeleton className=\"size-4 rounded-md\" data-sidebar=\"menu-skeleton-icon\" />}\n <Skeleton\n className=\"h-4 max-w-(--skeleton-width) flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n '--skeleton-width': width,\n } as React.CSSProperties\n }\n />\n </div>\n )\n}\n\nfunction SidebarMenuSub({ className, ...props }: React.ComponentProps<'ul'>) {\n return (\n <ul\n data-slot=\"sidebar-menu-sub\"\n data-sidebar=\"menu-sub\"\n className={cn(\n 'mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5 group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuSubItem({ className, ...props }: React.ComponentProps<'li'>) {\n return (\n <li\n data-slot=\"sidebar-menu-sub-item\"\n data-sidebar=\"menu-sub-item\"\n className={cn('group/menu-sub-item relative', className)}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuSubButton({\n render,\n size = 'md',\n isActive = false,\n className,\n ...props\n}: useRender.ComponentProps<'a'> &\n React.ComponentProps<'a'> & {\n size?: 'sm' | 'md'\n isActive?: boolean\n }) {\n return useRender({\n defaultTagName: 'a',\n props: mergeProps<'a'>(\n {\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 ring-sidebar-ring outline-hidden group-data-[collapsible=icon]:hidden hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[size=md]:text-sm data-[size=sm]:text-xs data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground',\n className,\n ),\n },\n props,\n ),\n render,\n state: {\n slot: 'sidebar-menu-sub-button',\n sidebar: 'menu-sub-button',\n size,\n active: isActive,\n },\n })\n}\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n}\n","import type { ComponentType } from 'react'\nimport { cn } from '@/lib/utils'\nimport { Button } from '@/components/ui/button'\n\nexport interface EmptyStateAction {\n label: string\n onClick?: () => void\n variant?: 'default' | 'outline' | 'ghost'\n}\n\nexport interface EmptyStateProps {\n icon?: ComponentType<{ className?: string }>\n title: string\n description?: string\n action?: EmptyStateAction\n className?: string\n}\n\nfunction EmptyState({ icon: Icon, title, description, action, className }: EmptyStateProps) {\n return (\n <div\n data-slot=\"empty-state\"\n className={cn('flex flex-col items-center justify-center gap-3 py-16 text-center', className)}\n >\n {Icon && (\n <div className=\"flex h-10 w-10 items-center justify-center rounded-full bg-muted text-muted-foreground\">\n <Icon className=\"size-5\" />\n </div>\n )}\n <div className=\"space-y-1\">\n <p className=\"text-sm font-medium\">{title}</p>\n {description && (\n <p className=\"text-xs text-muted-foreground max-w-[280px]\">{description}</p>\n )}\n </div>\n {action && (\n <Button variant={action.variant ?? 'outline'} size=\"sm\" onClick={action.onClick}>\n {action.label}\n </Button>\n )}\n </div>\n )\n}\n\nexport { EmptyState }\n","import { Slider as SliderPrimitive } from '@base-ui/react/slider'\n\nimport { cn } from '@/lib/utils'\n\nfunction Slider({\n className,\n defaultValue,\n value,\n min = 0,\n max = 100,\n ...props\n}: SliderPrimitive.Root.Props) {\n const _values = Array.isArray(value)\n ? value\n : Array.isArray(defaultValue)\n ? defaultValue\n : [min, max]\n\n return (\n <SliderPrimitive.Root\n className={cn('data-horizontal:w-full data-vertical:h-full', className)}\n data-slot=\"slider\"\n defaultValue={defaultValue}\n value={value}\n min={min}\n max={max}\n thumbAlignment=\"edge\"\n {...props}\n >\n <SliderPrimitive.Control className=\"relative flex w-full touch-none items-center select-none data-disabled:opacity-50 data-vertical:h-full data-vertical:min-h-40 data-vertical:w-auto data-vertical:flex-col\">\n <SliderPrimitive.Track\n data-slot=\"slider-track\"\n className=\"relative grow overflow-hidden rounded-full bg-muted select-none data-horizontal:h-1 data-horizontal:w-full data-vertical:h-full data-vertical:w-1\"\n >\n <SliderPrimitive.Indicator\n data-slot=\"slider-range\"\n className=\"bg-primary select-none data-horizontal:h-full data-vertical:w-full\"\n />\n </SliderPrimitive.Track>\n {Array.from({ length: _values.length }, (_, index) => (\n <SliderPrimitive.Thumb\n data-slot=\"slider-thumb\"\n key={index}\n className=\"relative block size-3 shrink-0 rounded-full border border-ring bg-white ring-ring/50 transition-[color,box-shadow] select-none after:absolute after:-inset-2 hover:ring-3 focus-visible:ring-3 focus-visible:outline-hidden active:ring-3 disabled:pointer-events-none disabled:opacity-50\"\n />\n ))}\n </SliderPrimitive.Control>\n </SliderPrimitive.Root>\n )\n}\n\nexport { Slider }\n","'use client'\n\nimport { Switch as SwitchPrimitive } from '@base-ui/react/switch'\n\nimport { cn } from '@/lib/utils'\n\nfunction Switch({\n className,\n size = 'default',\n ...props\n}: SwitchPrimitive.Root.Props & {\n size?: 'sm' | 'default'\n}) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n data-size={size}\n className={cn(\n 'peer group/switch relative inline-flex shrink-0 items-center rounded-full border border-transparent transition-all outline-none after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-[size=default]:h-[18.4px] data-[size=default]:w-[32px] data-[size=sm]:h-[14px] data-[size=sm]:w-[24px] dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:bg-primary data-unchecked:bg-input dark:data-unchecked:bg-input/80 data-disabled:cursor-not-allowed data-disabled:opacity-50',\n className,\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className=\"pointer-events-none block rounded-full bg-background ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 group-data-[size=default]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=sm]/switch:data-checked:translate-x-[calc(100%-2px)] dark:data-checked:bg-primary-foreground group-data-[size=default]/switch:data-unchecked:translate-x-0 group-data-[size=sm]/switch:data-unchecked:translate-x-0 dark:data-unchecked:bg-foreground\"\n />\n </SwitchPrimitive.Root>\n )\n}\n\nexport { Switch }\n","import * as React from 'react'\n\nimport { cn } from '@/lib/utils'\n\nfunction Table({ className, ...props }: React.ComponentProps<'table'>) {\n return (\n <div data-slot=\"table-container\" className=\"relative w-full overflow-x-auto\">\n <table\n data-slot=\"table\"\n className={cn('w-full caption-bottom text-sm', className)}\n {...props}\n />\n </div>\n )\n}\n\nfunction TableHeader({ className, ...props }: React.ComponentProps<'thead'>) {\n return <thead data-slot=\"table-header\" className={cn('[&_tr]:border-b', className)} {...props} />\n}\n\nfunction TableBody({ className, ...props }: React.ComponentProps<'tbody'>) {\n return (\n <tbody\n data-slot=\"table-body\"\n className={cn('[&_tr:last-child]:border-0', className)}\n {...props}\n />\n )\n}\n\nfunction TableFooter({ className, ...props }: React.ComponentProps<'tfoot'>) {\n return (\n <tfoot\n data-slot=\"table-footer\"\n className={cn('border-t bg-muted/50 font-medium [&>tr]:last:border-b-0', className)}\n {...props}\n />\n )\n}\n\nfunction TableRow({ className, ...props }: React.ComponentProps<'tr'>) {\n return (\n <tr\n data-slot=\"table-row\"\n className={cn(\n 'border-b transition-colors hover:bg-muted/50 has-aria-expanded:bg-muted/50 data-[state=selected]:bg-muted',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction TableHead({ className, ...props }: React.ComponentProps<'th'>) {\n return (\n <th\n data-slot=\"table-head\"\n className={cn(\n 'h-10 px-2 text-left align-middle font-medium whitespace-nowrap text-foreground [&:has([role=checkbox])]:pr-0',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction TableCell({ className, ...props }: React.ComponentProps<'td'>) {\n return (\n <td\n data-slot=\"table-cell\"\n className={cn('p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0', className)}\n {...props}\n />\n )\n}\n\nfunction TableCaption({ className, ...props }: React.ComponentProps<'caption'>) {\n return (\n <caption\n data-slot=\"table-caption\"\n className={cn('mt-4 text-sm text-muted-foreground', className)}\n {...props}\n />\n )\n}\n\nexport { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption }\n","import { Tabs as TabsPrimitive } from '@base-ui/react/tabs'\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { cn } from '@/lib/utils'\n\nfunction Tabs({ className, orientation = 'horizontal', ...props }: TabsPrimitive.Root.Props) {\n return (\n <TabsPrimitive.Root\n data-slot=\"tabs\"\n data-orientation={orientation}\n className={cn('group/tabs flex gap-2 data-horizontal:flex-col', className)}\n {...props}\n />\n )\n}\n\nconst tabsListVariants = cva(\n 'group/tabs-list inline-flex w-fit items-center justify-center rounded-lg p-[3px] text-muted-foreground group-data-horizontal/tabs:h-8 group-data-vertical/tabs:h-fit group-data-vertical/tabs:flex-col data-[variant=line]:rounded-none',\n {\n variants: {\n variant: {\n default: 'bg-muted',\n line: 'gap-1 bg-transparent',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n)\n\nfunction TabsList({\n className,\n variant = 'default',\n ...props\n}: TabsPrimitive.List.Props & VariantProps<typeof tabsListVariants>) {\n return (\n <TabsPrimitive.List\n data-slot=\"tabs-list\"\n data-variant={variant}\n className={cn(tabsListVariants({ variant }), className)}\n {...props}\n />\n )\n}\n\nfunction TabsTrigger({ className, ...props }: TabsPrimitive.Tab.Props) {\n return (\n <TabsPrimitive.Tab\n data-slot=\"tabs-trigger\"\n className={cn(\n \"relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-1.5 py-0.5 text-sm font-medium whitespace-nowrap text-foreground/60 transition-all group-data-vertical/tabs:w-full group-data-vertical/tabs:justify-start hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 has-data-[icon=inline-end]:pr-1 has-data-[icon=inline-start]:pl-1 aria-disabled:pointer-events-none aria-disabled:opacity-50 dark:text-muted-foreground dark:hover:text-foreground group-data-[variant=default]/tabs-list:data-active:shadow-sm group-data-[variant=line]/tabs-list:data-active:shadow-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n 'group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-active:bg-transparent dark:group-data-[variant=line]/tabs-list:data-active:border-transparent dark:group-data-[variant=line]/tabs-list:data-active:bg-transparent',\n 'data-active:bg-background data-active:text-foreground dark:data-active:border-input dark:data-active:bg-input/30 dark:data-active:text-foreground',\n 'after:absolute after:bg-foreground after:opacity-0 after:transition-opacity group-data-horizontal/tabs:after:inset-x-0 group-data-horizontal/tabs:after:bottom-[-5px] group-data-horizontal/tabs:after:h-0.5 group-data-vertical/tabs:after:inset-y-0 group-data-vertical/tabs:after:-right-1 group-data-vertical/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-active:after:opacity-100',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction TabsContent({ className, ...props }: TabsPrimitive.Panel.Props) {\n return (\n <TabsPrimitive.Panel\n data-slot=\"tabs-content\"\n className={cn('flex-1 text-sm outline-none', className)}\n {...props}\n />\n )\n}\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent, tabsListVariants }\n","import { Badge } from '@/components/ui/badge'\nimport { cn } from '@/lib/utils'\n\nexport interface DataPageProps {\n children: React.ReactNode\n className?: string\n style?: React.CSSProperties\n}\n\nexport interface DataPageHeaderProps {\n children?: React.ReactNode\n className?: string\n}\n\nexport interface DataPageTitleBlockProps {\n title?: React.ReactNode\n description?: React.ReactNode\n breadcrumb?: React.ReactNode\n className?: string\n}\n\nexport interface DataPageActionsProps {\n children?: React.ReactNode\n className?: string\n}\n\nexport interface DataPageTabsProps {\n children?: React.ReactNode\n className?: string\n}\n\nexport interface DataPageTabProps {\n active?: boolean\n count?: number\n children: React.ReactNode\n onClick?: () => void\n disabled?: boolean\n className?: string\n}\n\nexport interface DataPageContentProps {\n children?: React.ReactNode\n className?: string\n padding?: 'none' | 'compact' | 'default'\n}\n\nexport interface DataPageGroupProps {\n children?: React.ReactNode\n className?: string\n surface?: 'none' | 'bordered' | 'card'\n}\n\nexport interface DataPageGroupHeaderProps {\n title?: React.ReactNode\n description?: React.ReactNode\n actions?: React.ReactNode\n children?: React.ReactNode\n className?: string\n}\n\nexport interface DataPageGroupToolbarProps {\n children?: React.ReactNode\n className?: string\n}\n\nexport interface DataPageGroupBodyProps {\n children?: React.ReactNode\n className?: string\n}\n\nexport interface DataPageFooterProps {\n children?: React.ReactNode\n className?: string\n}\n\nfunction Root({ children, className, style }: DataPageProps) {\n return (\n <div\n data-slot=\"data-page\"\n className={cn(\n 'designkit-theme h-full min-h-0 flex flex-col bg-background text-foreground',\n className,\n )}\n style={style}\n >\n {children}\n </div>\n )\n}\n\nfunction Header({ children, className }: DataPageHeaderProps) {\n return (\n <header\n data-slot=\"data-page-header\"\n className={cn(\n 'shrink-0 px-[var(--dk-page-padding-x)] pt-[var(--dk-page-padding-y)]',\n className,\n )}\n >\n <div className=\"flex items-center justify-between gap-[var(--dk-panel-gap)]\">\n {children}\n </div>\n </header>\n )\n}\n\nfunction TitleBlock({ title, description, breadcrumb, className }: DataPageTitleBlockProps) {\n if (!title && !description && !breadcrumb) return null\n\n return (\n <div data-slot=\"data-page-title-block\" className={cn('min-w-0 flex-1', className)}>\n {breadcrumb && <div className=\"mb-2 text-xs text-muted-foreground\">{breadcrumb}</div>}\n {title && <h1 className=\"truncate text-xl font-semibold\">{title}</h1>}\n {description && <p className=\"mt-1.5 text-sm text-muted-foreground\">{description}</p>}\n </div>\n )\n}\n\nfunction Actions({ children, className }: DataPageActionsProps) {\n if (!children) return null\n\n return (\n <div\n data-slot=\"data-page-actions\"\n className={cn('flex shrink-0 items-center gap-[calc(var(--dk-panel-gap)*0.5)]', className)}\n >\n {children}\n </div>\n )\n}\n\nfunction Tabs({ children, className }: DataPageTabsProps) {\n if (!children) return null\n\n return (\n <div data-slot=\"data-page-tabs\" className={cn('shrink-0 border-b px-6', className)}>\n <div className=\"flex items-center gap-0 overflow-x-auto\">{children}</div>\n </div>\n )\n}\n\nfunction Tab({ active, count, children, onClick, disabled, className }: DataPageTabProps) {\n return (\n <button\n type=\"button\"\n data-slot=\"data-page-tab\"\n data-active={active ? 'true' : 'false'}\n disabled={disabled}\n onClick={onClick}\n className={cn(\n 'flex h-10 shrink-0 items-center gap-1.5 border-b-2 px-3 text-xs font-medium transition-colors',\n active\n ? 'border-primary text-foreground'\n : 'border-transparent text-muted-foreground hover:border-border hover:text-foreground',\n disabled && 'pointer-events-none opacity-50',\n className,\n )}\n >\n <span>{children}</span>\n {count !== undefined && (\n <Badge variant=\"secondary\" className=\"h-4 px-1.5 py-0 text-[10px]\">\n {count}\n </Badge>\n )}\n </button>\n )\n}\n\nfunction Content({ children, className, padding = 'default' }: DataPageContentProps) {\n return (\n <div\n data-slot=\"data-page-content\"\n className={cn(\n 'min-h-0 flex-1 overflow-auto',\n padding === 'default' &&\n 'px-[var(--dk-page-padding-x)] pb-[var(--dk-page-padding-y)] pt-[var(--dk-page-padding-y)]',\n padding === 'compact' && 'p-[calc(var(--dk-page-padding-y)*0.875)]',\n padding === 'none' && 'p-0',\n className,\n )}\n >\n {children}\n </div>\n )\n}\n\nfunction Group({ children, className, surface = 'none' }: DataPageGroupProps) {\n return (\n <section\n data-slot=\"data-page-group\"\n data-surface={surface}\n className={cn(\n 'min-h-0',\n surface === 'bordered' && 'overflow-hidden rounded-[var(--radius)] border bg-background',\n surface === 'card' &&\n 'overflow-hidden rounded-[var(--radius)] border bg-card text-card-foreground shadow-sm',\n className,\n )}\n >\n {children}\n </section>\n )\n}\n\nfunction GroupHeader({\n title,\n description,\n actions,\n children,\n className,\n}: DataPageGroupHeaderProps) {\n if (!title && !description && !actions && !children) return null\n\n return (\n <div\n data-slot=\"data-page-group-header\"\n className={cn(\n 'flex items-start justify-between gap-4 px-0 pb-[calc(var(--dk-panel-gap)*0.75)]',\n className,\n )}\n >\n <div className=\"min-w-0\">\n {title && <h2 className=\"text-sm font-medium\">{title}</h2>}\n {description && <p className=\"mt-0.5 text-xs text-muted-foreground\">{description}</p>}\n {children}\n </div>\n {actions && <div className=\"flex shrink-0 items-center gap-2\">{actions}</div>}\n </div>\n )\n}\n\nfunction GroupToolbar({ children, className }: DataPageGroupToolbarProps) {\n if (!children) return null\n\n return (\n <div\n data-slot=\"data-page-group-toolbar\"\n className={cn(\n 'flex min-h-[var(--dk-toolbar-height)] items-center justify-between gap-[calc(var(--dk-panel-gap)*0.75)] pb-[calc(var(--dk-panel-gap)*0.75)]',\n className,\n )}\n >\n {children}\n </div>\n )\n}\n\nfunction GroupBody({ children, className }: DataPageGroupBodyProps) {\n return (\n <div data-slot=\"data-page-group-body\" className={cn('min-h-0', className)}>\n {children}\n </div>\n )\n}\n\nfunction Footer({ children, className }: DataPageFooterProps) {\n if (!children) return null\n\n return (\n <footer data-slot=\"data-page-footer\" className={cn('shrink-0 border-t px-6 py-3', className)}>\n {children}\n </footer>\n )\n}\n\nexport const DataPage = Object.assign(Root, {\n Header,\n TitleBlock,\n Actions,\n Tabs,\n Tab,\n Content,\n Group,\n GroupHeader,\n GroupToolbar,\n GroupBody,\n Footer,\n})\n","import { type ReactNode, type CSSProperties, forwardRef } from 'react'\nimport { GripHorizontal } from 'lucide-react'\nimport { cn } from '@/lib/utils'\nimport { DataPage } from '../datapage/DataPage'\n\n// ─── Panel ────────────────────────────────────────────────────────────────────\n\nexport interface DashboardPanelProps {\n title?: string\n description?: string\n loading?: boolean\n error?: string | null\n transparent?: boolean\n /** Edit mode — shows drag handle and grab cursor on the header */\n editable?: boolean\n className?: string\n style?: CSSProperties\n children?: ReactNode\n headerRight?: ReactNode\n}\n\nexport const DashboardPanel = forwardRef<HTMLDivElement, DashboardPanelProps>(function DashboardPanel({\n title,\n description,\n loading,\n error,\n transparent,\n editable,\n className,\n style,\n children,\n headerRight,\n}, ref) {\n return (\n <div\n ref={ref}\n className={cn(\n 'group flex h-full flex-col overflow-hidden',\n transparent ? '' : 'rounded-(--radius) border bg-card text-card-foreground',\n editable && 'ring-1 ring-border/60 ring-inset',\n className,\n )}\n style={style}\n >\n {(title || headerRight || editable) && (\n <div className=\"flex shrink-0 items-center gap-2 pl-3 pr-1.5 py-2\">\n {editable && (\n <div className=\"shrink-0 cursor-grab active:cursor-grabbing select-none text-muted-foreground/40 hover:text-muted-foreground/70 transition-colors -ml-1 px-0.5\">\n <GripHorizontal className=\"h-3.5 w-3.5\" />\n </div>\n )}\n <div className=\"min-w-0 flex-1\">\n {title && (\n <p className=\"truncate text-xs font-medium text-card-foreground\">{title}</p>\n )}\n {description && (\n <p className=\"truncate text-[11px] text-muted-foreground\">{description}</p>\n )}\n </div>\n {headerRight && (\n <div className=\"shrink-0 flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity duration-150\">\n {headerRight}\n </div>\n )}\n </div>\n )}\n\n <div className=\"relative flex-1 min-h-0 p-3\">\n {loading && (\n <div className=\"absolute inset-0 flex items-center justify-center bg-card/70 z-10\">\n <div className=\"h-4 w-4 animate-spin rounded-full border-2 border-primary border-t-transparent\" />\n </div>\n )}\n {error && (\n <div className=\"flex h-full items-center justify-center\">\n <p className=\"text-xs text-destructive\">{error}</p>\n </div>\n )}\n {!error && children}\n </div>\n </div>\n )\n})\n\n// ─── Root ─────────────────────────────────────────────────────────────────────\n\nexport interface DashboardBodyTemplateProps {\n theme?: CSSProperties\n className?: string\n title?: ReactNode\n description?: ReactNode\n topBar?: ReactNode\n toolbar?: ReactNode\n /** Variable bar — rendered as a separate strip between the header and content */\n variableBar?: ReactNode\n children?: ReactNode\n contentClassName?: string\n}\n\nexport function DashboardBodyTemplate({\n theme,\n className,\n title,\n description,\n topBar,\n toolbar,\n variableBar,\n children,\n contentClassName,\n}: DashboardBodyTemplateProps) {\n return (\n <DataPage className={cn('layout-dashboard', className)} style={theme}>\n {topBar && <div className=\"shrink-0\">{topBar}</div>}\n {(title || toolbar) && (\n <header className=\"shrink-0 border-b px-(--dk-page-padding-x) py-(--dk-page-padding-y)\">\n <div className=\"flex flex-wrap items-center justify-between gap-3\">\n <div className=\"min-w-0\">\n {title && (\n <h1 className=\"text-sm font-semibold truncate\">{title}</h1>\n )}\n {description && (\n <p className=\"mt-0.5 text-xs text-muted-foreground\">{description}</p>\n )}\n </div>\n {toolbar && (\n <div className=\"flex items-center gap-2 shrink-0\">{toolbar}</div>\n )}\n </div>\n </header>\n )}\n {variableBar && (\n <div className=\"shrink-0 flex flex-wrap items-center gap-2 px-(--dk-page-padding-x) py-1.5\">\n {variableBar}\n </div>\n )}\n <div className={cn('flex-1 min-h-0 overflow-auto px-[calc(var(--dk-page-padding-x)-0.5rem)] pt-0 pb-(--dk-page-padding-y)', contentClassName)}>\n {children}\n </div>\n </DataPage>\n )\n}\n","import React, { Children, Fragment, useMemo, useState } from 'react'\nimport { DataPage } from '@/components/templates/datapage/DataPage'\nimport { Card, CardContent } from '@/components/ui/card'\nimport { cn } from '@/lib/utils'\n\n// ─── Tab ──────────────────────────────────────────────────────────────────────\n\nexport interface DataBodyTabProps {\n id: string\n label: React.ReactNode\n count?: number\n disabled?: boolean\n children: React.ReactNode\n}\n\nfunction DataBodyTab(_props: DataBodyTabProps) {\n return null\n}\n\nfunction isDataBodyTab(node: React.ReactNode): node is React.ReactElement<DataBodyTabProps> {\n return Boolean(node && typeof node === 'object' && 'type' in node && node.type === DataBodyTab)\n}\n\n// ─── Body (single pane) ───────────────────────────────────────────────────────\n\nexport interface DataBodyBodyProps {\n children?: React.ReactNode\n className?: string\n}\n\nfunction DataBodyBody(_props: DataBodyBodyProps) {\n return null\n}\n\nfunction isDataBodyBody(node: React.ReactNode): node is React.ReactElement<DataBodyBodyProps> {\n return Boolean(node && typeof node === 'object' && 'type' in node && node.type === DataBodyBody)\n}\n\n// ─── Section ──────────────────────────────────────────────────────────────────\n\nexport interface DataBodySectionProps {\n id: string\n label: React.ReactNode\n description?: React.ReactNode\n disabled?: boolean\n children?: React.ReactNode\n}\n\nfunction DataBodySection(_props: DataBodySectionProps) {\n return null\n}\n\nfunction isDataBodySection(\n node: React.ReactNode,\n): node is React.ReactElement<DataBodySectionProps> {\n return Boolean(\n node && typeof node === 'object' && 'type' in node && node.type === DataBodySection,\n )\n}\n\n// ─── Summary ──────────────────────────────────────────────────────────────────\n\nexport interface DataBodySummaryProps {\n children?: React.ReactNode\n}\n\nfunction DataBodySummary(_props: DataBodySummaryProps) {\n return null\n}\n\nfunction isDataBodySummary(\n node: React.ReactNode,\n): node is React.ReactElement<DataBodySummaryProps> {\n return Boolean(\n node && typeof node === 'object' && 'type' in node && node.type === DataBodySummary,\n )\n}\n\n// ─── Group ────────────────────────────────────────────────────────────────────\n\nexport type GroupLayout = 'stacked' | 'horizontal' | 'inline' | 'split'\nexport type GroupVariant = 'card' | 'plain' | 'bordered'\n\nconst layoutDefaultVariant: Record<GroupLayout, GroupVariant> = {\n stacked: 'plain',\n horizontal: 'card',\n inline: 'bordered',\n split: 'bordered',\n}\n\nexport interface DataBodyGroupProps {\n layout?: GroupLayout\n variant?: GroupVariant\n title?: React.ReactNode\n description?: React.ReactNode\n actions?: React.ReactNode\n danger?: boolean\n children?: React.ReactNode\n}\n\nfunction DataBodyGroup(props: DataBodyGroupProps) {\n return renderGroupProps(props)\n}\n\nfunction isDataBodyGroup(node: React.ReactNode): node is React.ReactElement<DataBodyGroupProps> {\n return Boolean(node && typeof node === 'object' && 'type' in node && node.type === DataBodyGroup)\n}\n\nfunction GroupWrapper({\n layout,\n variant,\n children,\n}: {\n layout: GroupLayout\n variant: GroupVariant\n children: React.ReactNode\n}) {\n if (variant === 'card') {\n return (\n <Card>\n <CardContent className=\"p-(--dk-panel-gap)\">{children}</CardContent>\n </Card>\n )\n }\n if (variant === 'bordered') {\n if (layout === 'inline') {\n return (\n <div className=\"overflow-hidden rounded-(--radius) border divide-y\">{children}</div>\n )\n }\n return <div className=\"rounded-(--radius) border p-(--dk-panel-gap)\">{children}</div>\n }\n return <>{children}</>\n}\n\nfunction renderGroups(nodes: React.ReactNode): React.ReactNode {\n const childArray = Children.toArray(nodes)\n if (!childArray.some(isDataBodyGroup)) return nodes\n return (\n <>\n {childArray.map((child, i) => (\n <Fragment key={i}>{isDataBodyGroup(child) ? renderGroup(child) : child}</Fragment>\n ))}\n </>\n )\n}\n\nfunction renderGroup(group: React.ReactElement<DataBodyGroupProps>) {\n return renderGroupProps(group.props)\n}\n\nfunction renderGroupProps(props: DataBodyGroupProps) {\n const {\n layout = 'stacked',\n variant: variantProp,\n title,\n description,\n actions,\n danger,\n children,\n } = props\n const variant = variantProp ?? layoutDefaultVariant[layout]\n\n if (layout === 'split') {\n const panes = Children.toArray(children)\n return (\n <div className=\"py-(--dk-panel-gap)\">\n {(title || description || actions) && (\n <div className=\"mb-3 flex items-start justify-between\">\n <div>\n {title && (\n <h2 className={cn('text-sm font-semibold', danger && 'text-destructive')}>\n {title}\n </h2>\n )}\n {description && <p className=\"mt-0.5 text-xs text-muted-foreground\">{description}</p>}\n </div>\n {actions && <div>{actions}</div>}\n </div>\n )}\n <div className=\"grid min-h-104 gap-(--dk-panel-gap) lg:grid-cols-[20rem_minmax(0,1fr)]\">\n {panes.map((pane, i) => (\n <GroupWrapper key={i} layout={layout} variant={variant}>\n {pane}\n </GroupWrapper>\n ))}\n </div>\n </div>\n )\n }\n\n if (layout === 'horizontal') {\n return (\n <div className=\"grid grid-cols-3 gap-[calc(var(--dk-panel-gap)*2)] py-(--dk-panel-gap)\">\n <div>\n <p className={cn('text-sm font-medium', danger && 'text-destructive')}>{title}</p>\n {description && <p className=\"mt-1 text-xs text-muted-foreground\">{description}</p>}\n {actions && <div className=\"mt-2\">{actions}</div>}\n </div>\n <div className=\"col-span-2\">\n <GroupWrapper layout={layout} variant={variant}>\n {children}\n </GroupWrapper>\n </div>\n </div>\n )\n }\n\n if (layout === 'inline') {\n return (\n <div className=\"py-(--dk-panel-gap)\">\n {(title || description) && (\n <div className=\"mb-2 flex items-start justify-between\">\n <div>\n {title && (\n <h2 className={cn('text-sm font-semibold', danger && 'text-destructive')}>\n {title}\n </h2>\n )}\n {description && <p className=\"mt-0.5 text-xs text-muted-foreground\">{description}</p>}\n </div>\n {actions && <div>{actions}</div>}\n </div>\n )}\n <GroupWrapper layout={layout} variant={variant}>\n {children}\n </GroupWrapper>\n </div>\n )\n }\n\n // stacked (default)\n return (\n <div className=\"py-(--dk-panel-gap)\">\n <div className=\"flex items-start justify-between\">\n <div>\n <h2 className={cn('text-sm font-semibold', danger && 'text-destructive')}>{title}</h2>\n {description && <p className=\"mt-1 text-xs text-muted-foreground\">{description}</p>}\n </div>\n {actions && <div>{actions}</div>}\n </div>\n <div className=\"mt-4\">\n <GroupWrapper layout={layout} variant={variant}>\n {children}\n </GroupWrapper>\n </div>\n </div>\n )\n}\n\n// ─── Field (read-only display) ────────────────────────────────────────────────\n\nexport interface DataBodyFieldProps {\n label: string\n description?: string\n children?: React.ReactNode\n}\n\nfunction DataBodyField({ label, description, children }: DataBodyFieldProps) {\n return (\n <div\n className=\"grid items-start gap-x-4 px-4 py-3\"\n style={{ gridTemplateColumns: 'var(--dk-form-label-w, 11rem) 1fr' }}\n >\n <div className=\"pt-0.5\">\n <span className=\"text-xs text-muted-foreground\">{label}</span>\n {description && <p className=\"mt-0.5 text-xs text-muted-foreground/60\">{description}</p>}\n </div>\n <div className=\"min-w-0 text-sm\">{children}</div>\n </div>\n )\n}\n\n// ─── Row ──────────────────────────────────────────────────────────────────────\n\nexport interface DataBodyRowProps {\n label: string\n description?: string\n required?: boolean\n children?: React.ReactNode\n}\n\nfunction DataBodyRow({ label, description, required, children }: DataBodyRowProps) {\n return (\n <div\n className=\"grid items-start gap-x-4 px-4 py-3\"\n style={{ gridTemplateColumns: 'var(--dk-form-label-w, 11rem) 1fr' }}\n >\n <div className=\"pt-1\">\n <div className=\"flex items-center gap-1\">\n <span className=\"text-sm font-medium\">{label}</span>\n {required && <span className=\"text-destructive text-xs leading-none\">*</span>}\n </div>\n {description && <p className=\"mt-0.5 text-xs text-muted-foreground\">{description}</p>}\n </div>\n <div className={cn('min-w-0', !description && 'flex items-center')}>{children}</div>\n </div>\n )\n}\n\n// ─── Root ─────────────────────────────────────────────────────────────────────\n\nexport interface DataBodyTemplateProps {\n theme?: React.CSSProperties\n className?: string\n topBar?: React.ReactNode\n title?: React.ReactNode\n description?: React.ReactNode\n actions?: React.ReactNode\n toolbarLeft?: React.ReactNode\n toolbarRight?: React.ReactNode\n activeTab?: string\n defaultTab?: string\n onTabChange?: (id: string) => void\n children?: React.ReactNode\n contentClassName?: string\n}\n\nfunction TopBarSlot({ topBar }: { topBar?: React.ReactNode }) {\n if (!topBar) return null\n return <div className=\"shrink-0\">{topBar}</div>\n}\n\nfunction Root({\n theme,\n className,\n topBar,\n title,\n description,\n actions,\n toolbarLeft,\n toolbarRight,\n activeTab: controlledActive,\n defaultTab,\n onTabChange,\n children,\n contentClassName,\n}: DataBodyTemplateProps) {\n const childArray = useMemo(() => Children.toArray(children), [children])\n const tabs = childArray.filter(isDataBodyTab)\n const sections = childArray.filter(isDataBodySection)\n const bodySlots = childArray.filter(isDataBodyBody)\n const summaryEl = childArray.find(isDataBodySummary)\n const bodyChildren = childArray.filter(\n (c) =>\n !isDataBodyTab(c) &&\n !isDataBodySummary(c) &&\n !isDataBodySection(c) &&\n !isDataBodyBody(c),\n )\n\n const hasTabs = tabs.length > 0\n const hasSections = sections.length > 0\n const hasBody = bodySlots.length > 0\n bodyChildren.some(isDataBodyGroup)\n const navItems = hasSections ? sections : tabs\n const [internalActive, setInternalActive] = useState(defaultTab ?? navItems[0]?.props.id ?? '')\n const activeId = controlledActive ?? internalActive\n const handleChange = (id: string) => {\n if (controlledActive === undefined) setInternalActive(id)\n onTabChange?.(id)\n }\n\n // ── Single-pane body layout ───────────────────────────────────────────────\n if (hasBody) {\n const bodyEl = bodySlots[0]\n return (\n <DataPage className={cn('layout-databody', className)} style={theme}>\n <TopBarSlot topBar={topBar} />\n <DataPage.Header>\n <DataPage.TitleBlock title={title} description={description} />\n <DataPage.Actions>{actions}</DataPage.Actions>\n </DataPage.Header>\n\n {summaryEl && (\n <div className=\"shrink-0 border-b px-(--dk-page-padding-x) py-(--dk-panel-gap)\">\n {summaryEl.props.children}\n </div>\n )}\n\n <DataPage.Content className={contentClassName}>\n <DataPage.Group className=\"h-full\">\n <DataPage.GroupBody className={cn('h-full', bodyEl.props.className)}>\n {bodyEl.props.children}\n </DataPage.GroupBody>\n </DataPage.Group>\n </DataPage.Content>\n </DataPage>\n )\n }\n\n // ── Sectioned layout (left nav) ───────────────────────────────────────────\n if (hasSections) {\n const activeSection = sections.find((s) => s.props.id === activeId) ?? sections[0]\n return (\n <DataPage className={cn('layout-sectioned', className)} style={theme}>\n <TopBarSlot topBar={topBar} />\n <DataPage.Header>\n <DataPage.TitleBlock title={title} description={description} />\n <DataPage.Actions>{actions}</DataPage.Actions>\n </DataPage.Header>\n\n {summaryEl && (\n <div className=\"shrink-0 border-b px-(--dk-page-padding-x) py-(--dk-panel-gap)\">\n {summaryEl.props.children}\n </div>\n )}\n\n <DataPage.Content className={contentClassName}>\n <div className=\"grid gap-(--dk-panel-gap) lg:grid-cols-[16rem_minmax(0,1fr)]\">\n <nav className=\"space-y-1\">\n {sections.map((section) => {\n const active = section.props.id === activeSection?.props.id\n return (\n <button\n key={section.props.id}\n type=\"button\"\n disabled={section.props.disabled}\n className={cn(\n 'block w-full rounded-(--radius) px-3 py-2 text-left transition-colors',\n active ? 'bg-accent text-accent-foreground' : 'hover:bg-muted',\n section.props.disabled && 'pointer-events-none opacity-50',\n )}\n onClick={() => handleChange(section.props.id)}\n >\n <span className=\"block text-sm font-medium\">{section.props.label}</span>\n {section.props.description && (\n <span className=\"mt-0.5 block text-xs text-muted-foreground\">\n {section.props.description}\n </span>\n )}\n </button>\n )\n })}\n </nav>\n <div className=\"min-w-0 space-y-(--dk-panel-gap)\">\n {renderGroups(activeSection?.props.children)}\n </div>\n </div>\n </DataPage.Content>\n </DataPage>\n )\n }\n\n // ── Tabbed / plain layout ─────────────────────────────────────────────────\n const activeTabNode = tabs.find((tab) => tab.props.id === activeId) ?? tabs[0]\n\n return (\n <DataPage className={cn('layout-databody', className)} style={theme}>\n <TopBarSlot topBar={topBar} />\n <DataPage.Header>\n <DataPage.TitleBlock title={title} description={description} />\n <DataPage.Actions>{actions}</DataPage.Actions>\n </DataPage.Header>\n\n {summaryEl && (\n <div className=\"shrink-0 border-b px-(--dk-page-padding-x) py-(--dk-panel-gap)\">\n {summaryEl.props.children}\n </div>\n )}\n\n {hasTabs && (\n <DataPage.Tabs>\n {tabs.map((tab) => (\n <DataPage.Tab\n key={tab.props.id}\n active={tab.props.id === activeTabNode?.props.id}\n count={tab.props.count}\n disabled={tab.props.disabled}\n onClick={() => handleChange(tab.props.id)}\n >\n {tab.props.label}\n </DataPage.Tab>\n ))}\n </DataPage.Tabs>\n )}\n\n <DataPage.Content className={contentClassName}>\n {(toolbarLeft || toolbarRight) && (\n <DataPage.GroupToolbar>\n <div className=\"flex min-w-0 items-center gap-2\">{toolbarLeft}</div>\n <DataPage.Actions>{toolbarRight}</DataPage.Actions>\n </DataPage.GroupToolbar>\n )}\n {hasTabs ? (\n <DataPage.GroupBody className=\"min-h-full\">\n {renderGroups(activeTabNode?.props.children)}\n </DataPage.GroupBody>\n ) : (\n <DataPage.GroupBody>\n {bodyChildren.map((child, i) => (\n <Fragment key={i}>{isDataBodyGroup(child) ? renderGroup(child) : child}</Fragment>\n ))}\n </DataPage.GroupBody>\n )}\n </DataPage.Content>\n </DataPage>\n )\n}\n\nexport const DataBodyTemplate = Object.assign(Root, {\n Body: DataBodyBody,\n Tab: DataBodyTab,\n Section: DataBodySection,\n Summary: DataBodySummary,\n Group: DataBodyGroup,\n Row: DataBodyRow,\n Field: DataBodyField,\n})\n","import React, { useEffect, useState } from 'react'\nimport { DataPage } from '@/components/templates/datapage/DataPage'\nimport {\n Sheet,\n SheetContent,\n SheetHeader,\n SheetTitle,\n SheetTrigger,\n} from '@/components/ui/sheet'\nimport { ScrollArea } from '@/components/ui/scroll-area'\nimport { Button } from '@/components/ui/button'\nimport { SlidersHorizontal } from 'lucide-react'\nimport { cn } from '@/lib/utils'\n\n// Matches Tailwind's lg breakpoint (1024px) used for layout switching\nfunction useIsNarrow() {\n const [narrow, setNarrow] = useState(false)\n useEffect(() => {\n const mql = window.matchMedia('(max-width: 1023px)')\n setNarrow(mql.matches)\n const handler = (e: MediaQueryListEvent) => setNarrow(e.matches)\n mql.addEventListener('change', handler)\n return () => mql.removeEventListener('change', handler)\n }, [])\n return narrow\n}\n\nexport interface BrowseBodyTemplateProps {\n theme?: React.CSSProperties\n className?: string\n topBar?: React.ReactNode\n title?: React.ReactNode\n description?: React.ReactNode\n actions?: React.ReactNode\n sidebar: React.ReactNode\n sidebarTitle?: string\n sidebarWidth?: string\n toolbar?: React.ReactNode\n footer?: React.ReactNode\n contentClassName?: string\n children?: React.ReactNode\n}\n\nexport function BrowseBodyTemplate({\n theme,\n className,\n topBar,\n title,\n description,\n actions,\n sidebar,\n sidebarTitle = 'Filters',\n sidebarWidth = '18rem',\n toolbar,\n footer,\n contentClassName,\n children,\n}: BrowseBodyTemplateProps) {\n const isNarrow = useIsNarrow()\n const hasHeader = title || description || actions\n\n return (\n <DataPage className={cn('layout-browse', className)} style={theme}>\n {topBar && <div className=\"shrink-0\">{topBar}</div>}\n\n {hasHeader && (\n <DataPage.Header>\n <DataPage.TitleBlock title={title} description={description} />\n <DataPage.Actions>{actions}</DataPage.Actions>\n </DataPage.Header>\n )}\n\n <DataPage.Content padding=\"none\" className=\"flex flex-col overflow-hidden\">\n {/* Toolbar row */}\n {(toolbar || isNarrow) && (\n <div className=\"flex shrink-0 items-center gap-2 border-b px-(--dk-page-padding-x) py-2\">\n {isNarrow && (\n <Sheet>\n <SheetTrigger\n render={<Button variant=\"outline\" size=\"sm\" className=\"shrink-0 gap-1.5\" />}\n >\n <SlidersHorizontal className=\"h-3.5 w-3.5\" />\n {sidebarTitle}\n </SheetTrigger>\n <SheetContent side=\"left\" className=\"flex flex-col gap-0 p-0\">\n <SheetHeader className=\"shrink-0 border-b px-4 py-3\">\n <SheetTitle>{sidebarTitle}</SheetTitle>\n </SheetHeader>\n <ScrollArea className=\"flex-1\">\n <div className=\"p-4\">{sidebar}</div>\n </ScrollArea>\n </SheetContent>\n </Sheet>\n )}\n {toolbar && (\n <div className=\"flex min-w-0 flex-1 items-center gap-2\">{toolbar}</div>\n )}\n </div>\n )}\n\n {/* Content: sidebar (desktop) + main */}\n <div className=\"flex min-h-0 flex-1 overflow-hidden\">\n {!isNarrow && (\n <aside\n className=\"shrink-0 overflow-hidden border-r\"\n style={{ width: sidebarWidth }}\n >\n <ScrollArea className=\"h-full\">\n <div className=\"px-(--dk-page-padding-x) py-(--dk-page-padding-y)\">\n {sidebar}\n </div>\n </ScrollArea>\n </aside>\n )}\n <div\n className={cn(\n 'min-w-0 flex-1 overflow-hidden px-(--dk-page-padding-x) py-(--dk-page-padding-y)',\n '[&_.dg-shell]:h-full [&_.dg-table-stack]:flex-1 [&_.dg-table-stack]:min-h-0',\n '[&_.dg-card-container]:flex-1 [&_.dg-card-container]:min-h-0 [&_.dg-card-container]:overflow-auto',\n contentClassName,\n )}\n >\n {children}\n </div>\n </div>\n </DataPage.Content>\n\n {footer && <DataPage.Footer>{footer}</DataPage.Footer>}\n </DataPage>\n )\n}\n","import React, { Children, Fragment, useMemo, useState } from 'react'\nimport { DataPage } from '@/components/templates/datapage/DataPage'\nimport { cn } from '@/lib/utils'\n\nexport type DetailBodyVariant = 'media' | 'record' | 'full'\n\nexport interface DetailBodyTemplateProps {\n variant?: DetailBodyVariant\n theme?: React.CSSProperties\n className?: string\n topBar?: React.ReactNode\n header?: React.ReactNode\n lead?: React.ReactNode\n eyebrow?: React.ReactNode\n title?: React.ReactNode\n description?: React.ReactNode\n status?: React.ReactNode\n actions?: React.ReactNode\n media?: React.ReactNode\n aside?: React.ReactNode\n summary?: React.ReactNode\n stickyAside?: boolean\n contentClassName?: string\n mediaClassName?: string\n asideClassName?: string\n children?: React.ReactNode\n}\n\nexport interface DetailBodyHeaderProps {\n eyebrow?: React.ReactNode\n title?: React.ReactNode\n description?: React.ReactNode\n status?: React.ReactNode\n actions?: React.ReactNode\n compact?: boolean\n className?: string\n}\n\nfunction DetailBodyHeader({\n eyebrow,\n title,\n description,\n status,\n actions,\n compact,\n className,\n}: DetailBodyHeaderProps) {\n return (\n <DataPage.Header className={className}>\n <div className=\"min-w-0\">\n {eyebrow && (\n <div className=\"mb-1 text-[11px] font-medium uppercase tracking-wider text-muted-foreground\">\n {eyebrow}\n </div>\n )}\n <div className=\"flex min-w-0 flex-wrap items-center gap-2\">\n {title && (\n <h1 className={cn('min-w-0 truncate font-semibold', compact ? 'text-base' : 'text-lg')}>\n {title}\n </h1>\n )}\n {status && <div className=\"shrink-0\">{status}</div>}\n </div>\n {description && <p className=\"mt-1 text-sm text-muted-foreground\">{description}</p>}\n </div>\n <DataPage.Actions>{actions}</DataPage.Actions>\n </DataPage.Header>\n )\n}\n\nexport interface DetailBodyTabProps {\n id: string\n label: React.ReactNode\n count?: number\n disabled?: boolean\n children?: React.ReactNode\n}\n\nfunction DetailBodyTab(_props: DetailBodyTabProps) {\n return null\n}\n\nfunction isDetailBodyTab(node: React.ReactNode): node is React.ReactElement<DetailBodyTabProps> {\n return Boolean(node && typeof node === 'object' && 'type' in node && node.type === DetailBodyTab)\n}\n\nexport interface DetailBodySectionProps {\n title?: React.ReactNode\n description?: React.ReactNode\n actions?: React.ReactNode\n surface?: 'plain' | 'card' | 'bordered'\n className?: string\n children?: React.ReactNode\n}\n\nfunction DetailBodySection({\n title,\n description,\n actions,\n surface = 'plain',\n className,\n children,\n}: DetailBodySectionProps) {\n return (\n <section\n className={cn(\n 'min-h-0',\n surface === 'card' && 'rounded-(--radius) border bg-card p-(--dk-panel-gap) text-card-foreground shadow-sm',\n surface === 'bordered' && 'rounded-(--radius) border p-(--dk-panel-gap)',\n className,\n )}\n >\n {(title || description || actions) && (\n <div className=\"mb-3 flex items-start justify-between gap-3\">\n <div className=\"min-w-0\">\n {title && <h2 className=\"text-sm font-semibold\">{title}</h2>}\n {description && <p className=\"mt-0.5 text-xs text-muted-foreground\">{description}</p>}\n </div>\n {actions && <div className=\"shrink-0\">{actions}</div>}\n </div>\n )}\n {children}\n </section>\n )\n}\n\nfunction renderChildren(nodes: React.ReactNode) {\n return Children.toArray(nodes).map((child, i) => (\n <Fragment key={i}>{child}</Fragment>\n ))\n}\n\nfunction DetailBodyTemplateRoot({\n variant = 'record',\n theme,\n className,\n topBar,\n header,\n lead,\n eyebrow,\n title,\n description,\n status,\n actions,\n media,\n aside,\n summary,\n stickyAside = true,\n contentClassName,\n mediaClassName,\n asideClassName,\n children,\n}: DetailBodyTemplateProps) {\n const childArray = useMemo(() => Children.toArray(children), [children])\n const tabs = childArray.filter(isDetailBodyTab)\n const hasTabs = tabs.length > 0\n const [activeTab, setActiveTab] = useState(() => tabs[0]?.props.id ?? '')\n const selectedTab = tabs.find((tab) => tab.props.id === activeTab) ?? tabs[0]\n const summarySlot = summary ? (\n <div className=\"min-h-0 rounded-(--radius) border bg-card p-(--dk-panel-gap) text-card-foreground\">\n {summary}\n </div>\n ) : null\n const mediaSlot = media ? (\n <div className={cn('min-h-0 overflow-hidden rounded-(--radius) border bg-card', mediaClassName)}>\n {media}\n </div>\n ) : null\n const leadGridClass = variant === 'media'\n ? 'xl:grid-cols-[minmax(0,1.35fr)_minmax(18rem,0.65fr)]'\n : 'xl:grid-cols-2'\n const defaultHeader = (eyebrow || title || description || status || actions)\n ? (\n <DetailBodyHeader\n eyebrow={eyebrow}\n title={title}\n description={description}\n status={status}\n actions={actions}\n />\n )\n : null\n const defaultLead = (media || summary)\n ? (\n <div className={cn('grid gap-(--dk-panel-gap)', leadGridClass)}>\n {mediaSlot}\n {summarySlot}\n </div>\n )\n : null\n const body = hasTabs ? (\n <div className=\"min-h-0\">\n <DataPage.Tabs>\n {tabs.map((tab) => (\n <DataPage.Tab\n key={tab.props.id}\n active={(selectedTab?.props.id ?? '') === tab.props.id}\n count={tab.props.count}\n disabled={tab.props.disabled}\n onClick={() => setActiveTab(tab.props.id)}\n >\n {tab.props.label}\n </DataPage.Tab>\n ))}\n </DataPage.Tabs>\n <div className=\"pt-(--dk-panel-gap)\">\n {selectedTab?.props.children}\n </div>\n </div>\n ) : (\n <div className=\"space-y-(--dk-panel-gap)\">\n {renderChildren(children)}\n </div>\n )\n const leadSlot = lead ?? defaultLead\n const outsideAsideSlot = variant === 'full' ? null : aside\n const insideAsideSlot = variant === 'full' ? aside : null\n const hasRecordInspector = Boolean(leadSlot)\n const hasFullLeadArea = Boolean(leadSlot || insideAsideSlot)\n\n const layout = {\n media: (\n <>\n {leadSlot && <div className=\"mb-(--dk-panel-gap)\">{leadSlot}</div>}\n {body}\n </>\n ),\n record: (\n <div\n className={cn(\n 'grid gap-(--dk-panel-gap)',\n hasRecordInspector && 'xl:grid-cols-[minmax(28rem,1fr)_minmax(14rem,18rem)]',\n )}\n >\n <div className=\"min-w-0\">{body}</div>\n {hasRecordInspector && (\n <div className=\"space-y-(--dk-panel-gap)\">\n {leadSlot}\n </div>\n )}\n </div>\n ),\n full: (\n <>\n {hasFullLeadArea && (\n <div\n className={cn(\n 'mb-(--dk-panel-gap) grid gap-(--dk-panel-gap)',\n insideAsideSlot && 'xl:grid-cols-[minmax(0,1fr)_minmax(18rem,24rem)]',\n )}\n >\n {leadSlot && <div className=\"space-y-(--dk-panel-gap)\">{leadSlot}</div>}\n {insideAsideSlot && (\n <div className={cn('min-h-0 rounded-(--radius) border bg-card p-(--dk-panel-gap)', asideClassName)}>\n {insideAsideSlot}\n </div>\n )}\n </div>\n )}\n {body}\n </>\n ),\n } satisfies Record<DetailBodyVariant, React.ReactNode>\n\n return (\n <DataPage className={cn('layout-detail', className)} style={theme} data-detail-variant={variant}>\n {topBar && <div className=\"shrink-0\">{topBar}</div>}\n {header ?? defaultHeader}\n\n <DataPage.Content padding=\"none\" className=\"overflow-hidden\">\n <div\n className={cn(\n 'grid h-full min-h-0 grid-cols-1 overflow-hidden',\n outsideAsideSlot && 'lg:grid-cols-[minmax(0,1fr)_minmax(18rem,24rem)]',\n )}\n >\n <main\n className={cn(\n 'min-h-0 overflow-auto px-(--dk-page-padding-x) py-(--dk-page-padding-y)',\n contentClassName,\n )}\n >\n {layout[variant]}\n </main>\n\n {outsideAsideSlot && (\n <aside className={cn('min-h-0 border-t bg-background lg:border-l lg:border-t-0', asideClassName)}>\n <div\n className={cn(\n 'px-(--dk-page-padding-x) py-(--dk-page-padding-y)',\n stickyAside && 'lg:sticky lg:top-0',\n )}\n >\n {outsideAsideSlot}\n </div>\n </aside>\n )}\n </div>\n </DataPage.Content>\n </DataPage>\n )\n}\n\nexport const DetailBodyTemplate = Object.assign(DetailBodyTemplateRoot, {\n Header: DetailBodyHeader,\n Tab: DetailBodyTab,\n Section: DetailBodySection,\n})\n","import { Fragment } from 'react'\nimport { Check } from 'lucide-react'\nimport { cn } from '@/lib/utils'\nimport { DataPage } from '@/components/templates/datapage/DataPage'\nimport { Button } from '@/components/ui/button'\nimport { Card, CardContent } from '@/components/ui/card'\n\nexport type FormWizardVariant = 'card' | 'plain'\n\nexport interface FormWizardStep {\n key: string\n title: string\n description?: string\n content: React.ReactNode\n}\n\nexport interface FormWizardBodyTemplateProps {\n theme?: React.CSSProperties\n title?: string\n topBar?: React.ReactNode\n variant?: FormWizardVariant\n steps: FormWizardStep[]\n activeStep: number\n onNext?: () => void\n onBack?: () => void\n onFinish?: () => void\n}\n\nexport function FormWizardBodyTemplate({\n theme,\n title,\n topBar,\n variant = 'plain',\n steps,\n activeStep,\n onNext,\n onBack,\n onFinish,\n}: FormWizardBodyTemplateProps) {\n const current = steps[activeStep]\n const isLast = activeStep === steps.length - 1\n\n function handleStepSubmit(e: React.FormEvent<HTMLFormElement>) {\n e.preventDefault()\n if (isLast) onFinish?.()\n else onNext?.()\n }\n\n return (\n <DataPage className=\"layout-form-wizard\" style={theme}>\n {topBar && <div className=\"shrink-0\">{topBar}</div>}\n <DataPage.Header>\n <DataPage.TitleBlock title={title} />\n </DataPage.Header>\n\n {/* Step indicator */}\n <div className=\"shrink-0 px-(--dk-page-padding-x) pb-4\">\n <div className=\"flex items-center\">\n {steps.map((step, i) => (\n <Fragment key={step.key}>\n {i > 0 && (\n <div\n className={cn(\n 'mx-3 h-px flex-1',\n i <= activeStep ? 'bg-primary/50' : 'bg-border',\n )}\n />\n )}\n <div className=\"flex items-center gap-2\">\n <div\n className={cn(\n 'flex h-6 w-6 shrink-0 items-center justify-center rounded-full text-xs font-medium transition-colors',\n i < activeStep\n ? 'bg-primary text-primary-foreground'\n : i === activeStep\n ? 'bg-primary text-primary-foreground ring-2 ring-primary/30 ring-offset-1'\n : 'bg-muted text-muted-foreground',\n )}\n >\n {i < activeStep ? <Check className=\"h-3 w-3\" /> : i + 1}\n </div>\n <span\n className={cn(\n 'hidden text-xs font-medium sm:block',\n i === activeStep ? 'text-foreground' : 'text-muted-foreground',\n )}\n >\n {step.title}\n </span>\n </div>\n </Fragment>\n ))}\n </div>\n </div>\n\n <DataPage.Content>\n {current && (\n variant === 'card' ? (\n <Card>\n <CardContent className=\"p-(--dk-panel-gap)\">\n <form id={current.key} onSubmit={handleStepSubmit}>\n <div className=\"mb-5\">\n <h2 className=\"text-sm font-semibold\">{current.title}</h2>\n {current.description && (\n <p className=\"mt-1 text-xs text-muted-foreground\">{current.description}</p>\n )}\n </div>\n {current.content}\n </form>\n </CardContent>\n </Card>\n ) : (\n <form id={current.key} onSubmit={handleStepSubmit}>\n <div className=\"mb-5\">\n <h2 className=\"text-sm font-semibold\">{current.title}</h2>\n {current.description && (\n <p className=\"mt-1 text-xs text-muted-foreground\">{current.description}</p>\n )}\n </div>\n {current.content}\n </form>\n )\n )}\n </DataPage.Content>\n\n <DataPage.Footer>\n <div className=\"flex items-center justify-between\">\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"h-8 text-xs\"\n onClick={onBack}\n disabled={activeStep === 0}\n >\n Back\n </Button>\n <div className=\"flex items-center gap-3\">\n <span className=\"text-xs text-muted-foreground\">\n Step {activeStep + 1} of {steps.length}\n </span>\n <Button type=\"submit\" form={current?.key} size=\"sm\" className=\"h-8 text-xs\">\n {isLast ? 'Finish' : 'Continue'}\n </Button>\n </div>\n </div>\n </DataPage.Footer>\n </DataPage>\n )\n}\n","import { DataPage } from '@/components/templates/datapage/DataPage'\nimport { Badge } from '@/components/ui/badge'\nimport { Button } from '@/components/ui/button'\nimport { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'\nimport { Input } from '@/components/ui/input'\nimport { Separator } from '@/components/ui/separator'\n\nexport interface TypographyBodyTemplateProps {\n theme?: React.CSSProperties\n breadcrumb?: React.ReactNode\n}\n\nconst scaleRows = [\n { label: 'Page title', className: 'text-xl font-semibold', sample: 'Customer Operations' },\n { label: 'Section title', className: 'text-base font-medium', sample: 'Service Health' },\n {\n label: 'Body',\n className: 'text-sm',\n sample: 'Review active incidents, service status, and recent deployments.',\n },\n { label: 'Caption', className: 'text-xs text-muted-foreground', sample: 'Updated 4 minutes ago' },\n]\n\nexport function TypographyBodyTemplate({ theme, breadcrumb }: TypographyBodyTemplateProps) {\n return (\n <DataPage className=\"layout-typography\" style={theme}>\n <DataPage.Header>\n <DataPage.TitleBlock\n breadcrumb={breadcrumb}\n title=\"Typography\"\n description=\"Global type scale preview for shell, template, and grid content\"\n />\n </DataPage.Header>\n\n <DataPage.Content className=\"grid gap-[var(--dk-panel-gap)] lg:grid-cols-[1fr_22rem]\">\n <div className=\"space-y-[var(--dk-panel-gap)]\">\n <Card className=\"rounded-lg border border-border ring-0\">\n <CardHeader>\n <CardTitle>Type Scale</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n {scaleRows.map((row) => (\n <div key={row.label} className=\"grid grid-cols-[8rem_1fr] items-baseline gap-4\">\n <span className=\"text-xs text-muted-foreground\">{row.label}</span>\n <p className={row.className}>{row.sample}</p>\n </div>\n ))}\n </CardContent>\n </Card>\n\n <Card className=\"rounded-lg border border-border ring-0\">\n <CardHeader>\n <CardTitle>Dense Interface</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n <div className=\"flex items-center gap-2\">\n <Input className=\"h-8 max-w-64 text-sm\" value=\"Search deployments\" readOnly />\n <Button size=\"sm\" className=\"h-8 text-xs\">\n Apply\n </Button>\n <Button variant=\"outline\" size=\"sm\" className=\"h-8 text-xs\">\n Reset\n </Button>\n </div>\n <Separator />\n <div className=\"grid gap-2\">\n {['API Gateway', 'Billing Worker', 'Notification Queue'].map((item, index) => (\n <div\n key={item}\n className=\"flex items-center justify-between rounded-lg border px-3 py-2\"\n >\n <div>\n <p className=\"text-sm font-medium\">{item}</p>\n <p className=\"text-xs text-muted-foreground\">\n p95 latency {42 + index * 18}ms\n </p>\n </div>\n <Badge variant={index === 1 ? 'secondary' : 'outline'} className=\"text-xs\">\n {index === 1 ? 'Watching' : 'Healthy'}\n </Badge>\n </div>\n ))}\n </div>\n </CardContent>\n </Card>\n </div>\n\n <Card className=\"rounded-lg border border-border ring-0\">\n <CardHeader>\n <CardTitle>Sidebar Sample</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-1\">\n {['Dashboard', 'Table', 'Infinite Scroll', 'Card List', 'Typography'].map(\n (item, index) => (\n <div\n key={item}\n className={[\n 'flex h-8 items-center rounded-[var(--radius)] px-2 text-sm',\n index === 4 ? 'bg-accent font-medium text-foreground' : 'text-muted-foreground',\n ].join(' ')}\n >\n {item}\n </div>\n ),\n )}\n </CardContent>\n </Card>\n </DataPage.Content>\n </DataPage>\n )\n}\n","import { create } from 'zustand'\nimport type { ThemeState, TemplateOverride, TemplateId } from './types'\n\nexport const useThemeStore = create<ThemeState>((set) => ({\n global: {\n radius: 0.5,\n primaryHue: 220,\n primaryChroma: 0.15,\n fontScale: 1,\n lineHeight: 1,\n density: 'default',\n darkMode: false,\n },\n overrides: {} as Record<TemplateId, TemplateOverride>,\n activeShell: 'sidebar',\n activeTemplate: 'table',\n setGlobal: (patch) => set((s) => ({ global: { ...s.global, ...patch } })),\n setOverride: (id, patch) =>\n set((s) => ({\n overrides: { ...s.overrides, [id]: { ...s.overrides[id], ...patch } },\n })),\n setShell: (shell) => set({ activeShell: shell }),\n setTemplate: (template) => set({ activeTemplate: template }),\n}))\n","import { useThemeStore } from '@/store/themeStore'\nimport { DataPage } from '@/components/templates/datapage/DataPage'\nimport { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'\n\nexport interface ColorsBodyTemplateProps {\n theme?: React.CSSProperties\n breadcrumb?: React.ReactNode\n}\n\nconst tonalTokenDefs = [\n {\n name: 'border',\n bg: 'bg-border',\n fg: 'text-foreground',\n variable: '--border',\n lightL: 0.922,\n darkL: 0.32,\n lightF: 0.04,\n darkF: 0.06,\n },\n {\n name: 'input',\n bg: 'bg-input',\n fg: 'text-foreground',\n variable: '--input',\n lightL: 0.922,\n darkL: 0.35,\n lightF: 0.04,\n darkF: 0.06,\n },\n {\n name: 'muted',\n bg: 'bg-muted',\n fg: 'text-muted-foreground',\n variable: '--muted',\n lightL: 0.97,\n darkL: 0.269,\n lightF: 0.02,\n darkF: 0.03,\n },\n {\n name: 'secondary',\n bg: 'bg-secondary',\n fg: 'text-secondary-foreground',\n variable: '--secondary',\n lightL: 0.97,\n darkL: 0.269,\n lightF: 0.02,\n darkF: 0.02,\n },\n {\n name: 'accent',\n bg: 'bg-accent',\n fg: 'text-accent-foreground',\n variable: '--accent',\n lightL: 0.97,\n darkL: 0.32,\n lightF: 0.04,\n darkF: 0.04,\n },\n]\n\nconst fixedNeutralTokens = [\n { name: 'background', bg: 'bg-background', fg: 'text-foreground', variable: '--background' },\n { name: 'foreground', bg: 'bg-foreground', fg: 'text-background', variable: '--foreground' },\n { name: 'card', bg: 'bg-card', fg: 'text-card-foreground', variable: '--card' },\n]\n\nfunction ColorSwatch({\n bg,\n fg,\n name,\n variable,\n formula,\n}: {\n bg: string\n fg: string\n name: string\n variable: string\n formula?: string\n}) {\n return (\n <div className=\"overflow-hidden rounded-[var(--radius)] border\">\n <div className={`${bg} flex h-14 items-center justify-center`}>\n <span className={`${fg} text-sm font-semibold`}>Aa</span>\n </div>\n <div className=\"bg-card px-3 py-2 space-y-0.5\">\n <p className=\"text-xs font-medium\">{name}</p>\n <p className=\"text-xs text-muted-foreground font-mono\">{variable}</p>\n {formula && <p className=\"text-xs text-muted-foreground/70 font-mono\">{formula}</p>}\n </div>\n </div>\n )\n}\n\nexport function ColorsBodyTemplate({ theme, breadcrumb }: ColorsBodyTemplateProps) {\n const { primaryHue, primaryChroma } = useThemeStore((s) => s.global)\n\n const primaryDerived = [\n {\n name: 'primary',\n bg: 'bg-primary',\n fg: 'text-primary-foreground',\n variable: '--primary',\n formula: `oklch(0.52 ${primaryChroma.toFixed(3)} ${primaryHue})`,\n },\n {\n name: 'ring',\n bg: 'bg-ring',\n fg: 'text-background',\n variable: '--ring',\n formula: `oklch(0.50 ${primaryChroma.toFixed(3)} ${primaryHue})`,\n },\n {\n name: 'sidebar-primary',\n bg: 'bg-[--sidebar-primary]',\n fg: 'text-primary-foreground',\n variable: '--sidebar-primary',\n formula: `oklch(0.488 ${primaryChroma.toFixed(3)} ${primaryHue})`,\n },\n {\n name: 'primary-foreground',\n bg: 'bg-primary-foreground',\n fg: 'text-foreground',\n variable: '--primary-foreground',\n formula: 'oklch(0.985 0 0) — fixed',\n },\n ]\n\n return (\n <DataPage className=\"layout-colors\" style={theme}>\n <DataPage.Header>\n <DataPage.TitleBlock\n breadcrumb={breadcrumb}\n title=\"Colors\"\n description=\"Design token color palette and derivation rules for the active theme\"\n />\n </DataPage.Header>\n\n <DataPage.Content className=\"space-y-[var(--dk-panel-gap)]\">\n {/* Primary derived chain */}\n <Card className=\"rounded-lg border border-border ring-0\">\n <CardHeader>\n <CardTitle>Primary — controlled by hue &amp; chroma</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n <div className=\"rounded-[var(--radius)] bg-muted px-3 py-2 text-xs font-mono text-muted-foreground\">\n hue: <span className=\"text-foreground\">{primaryHue}</span>\n {' '}chroma: <span className=\"text-foreground\">{primaryChroma.toFixed(3)}</span>\n {' '}→{' '}\n <span className=\"text-foreground\">oklch(L, chroma, hue)</span>\n </div>\n <div className=\"grid grid-cols-2 gap-3 sm:grid-cols-4\">\n {primaryDerived.map((t) => (\n <ColorSwatch key={t.name} {...t} />\n ))}\n </div>\n <p className=\"text-xs text-muted-foreground\">\n Same hue &amp; chroma — only lightness differs. Adjust via StyleEditor.\n </p>\n </CardContent>\n </Card>\n\n {/* Destructive — fixed */}\n <Card className=\"rounded-lg border border-border ring-0\">\n <CardHeader>\n <CardTitle>Destructive — fixed red</CardTitle>\n </CardHeader>\n <CardContent>\n <div className=\"grid grid-cols-2 gap-3 sm:grid-cols-4\">\n <ColorSwatch\n bg=\"bg-destructive\"\n fg=\"text-destructive-foreground\"\n name=\"destructive\"\n variable=\"--destructive\"\n formula=\"oklch(0.577 0.245 27.3)\"\n />\n </div>\n <p className=\"mt-3 text-xs text-muted-foreground\">\n Fixed at hue 27 (red). Not affected by theme controls.\n </p>\n </CardContent>\n </Card>\n\n {/* Tonal surface — derived */}\n <Card className=\"rounded-lg border border-border ring-0\">\n <CardHeader>\n <CardTitle>Tonal surface — derived from primary hue</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n <div className=\"rounded-[var(--radius)] bg-muted px-3 py-2 text-xs font-mono text-muted-foreground\">\n oklch(L, <span className=\"text-foreground\">chroma × factor</span>, {primaryHue})\n {' · '}factor = 2–6% of primary chroma\n </div>\n <div className=\"overflow-hidden rounded-[var(--radius)] border divide-y text-xs font-mono\">\n <div className=\"grid grid-cols-[7rem_1fr_1fr] bg-muted/50 px-3 py-1.5 text-muted-foreground\">\n <span>token</span>\n <span>light</span>\n <span>dark</span>\n </div>\n {tonalTokenDefs.map((t) => (\n <div\n key={t.name}\n className=\"grid grid-cols-[7rem_1fr_1fr] items-center gap-x-3 px-3 py-2\"\n >\n <div className=\"flex items-center gap-2\">\n <div className={`${t.bg} h-5 w-5 shrink-0 rounded border`} />\n <span className=\"font-medium text-foreground\">{t.name}</span>\n </div>\n <span className=\"text-muted-foreground\">\n oklch({t.lightL}{' '}\n <span className=\"text-foreground\">{(primaryChroma * t.lightF).toFixed(4)}</span>{' '}\n {primaryHue})\n </span>\n <span className=\"text-muted-foreground\">\n oklch({t.darkL}{' '}\n <span className=\"text-foreground\">{(primaryChroma * t.darkF).toFixed(4)}</span>{' '}\n {primaryHue})\n </span>\n </div>\n ))}\n </div>\n </CardContent>\n </Card>\n\n {/* Fixed neutrals */}\n <Card className=\"rounded-lg border border-border ring-0\">\n <CardHeader>\n <CardTitle>Fixed neutral — dark mode only</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n <div className=\"grid grid-cols-2 gap-3 sm:grid-cols-3\">\n {fixedNeutralTokens.map((t) => (\n <ColorSwatch key={t.name} bg={t.bg} fg={t.fg} name={t.name} variable={t.variable} />\n ))}\n </div>\n <p className=\"text-xs text-muted-foreground\">\n chroma = 0. Unaffected by hue &amp; chroma controls.\n </p>\n </CardContent>\n </Card>\n </DataPage.Content>\n </DataPage>\n )\n}\n","import React from 'react'\nimport { cn } from '@/lib/utils'\n\nexport type LoginLayout = 'centered' | 'split'\nexport type LoginSide = 'left' | 'right'\nexport type LoginCard = 'card' | 'plain'\nexport type LoginBg = 'default' | 'none' | 'subtle'\nexport type LoginCardWidth = 'sm' | 'md' | 'lg'\n\nexport interface LoginBodyTemplateProps {\n theme?: React.CSSProperties\n layout?: LoginLayout\n side?: LoginSide\n card?: LoginCard\n bg?: LoginBg\n cardWidth?: LoginCardWidth\n brand?: React.ReactNode\n children?: React.ReactNode\n className?: string\n}\n\nconst bgClass: Record<LoginBg, string> = {\n default: 'bg-muted/40',\n none: 'bg-background',\n subtle: 'bg-gradient-to-br from-muted/60 via-background to-muted/30',\n}\n\nconst cardWidthClass: Record<LoginCardWidth, string> = {\n sm: 'max-w-sm',\n md: 'max-w-md',\n lg: 'max-w-lg',\n}\n\nfunction DefaultBrand() {\n return (\n <div className=\"flex h-full flex-col justify-between p-10\">\n <div className=\"flex items-center gap-2\">\n <div className=\"flex h-7 w-7 items-center justify-center rounded-md bg-primary-foreground/20\">\n <div className=\"h-3.5 w-3.5 rounded-sm bg-primary-foreground\" />\n </div>\n <span className=\"text-sm font-semibold text-primary-foreground\">Acme</span>\n </div>\n <div>\n <blockquote className=\"space-y-2\">\n <p className=\"text-lg font-medium leading-snug text-primary-foreground\">\n \"This platform has completely changed how our team collaborates on design.\"\n </p>\n <footer className=\"text-sm text-primary-foreground/70\">— Sarah Kim, Design Lead</footer>\n </blockquote>\n </div>\n </div>\n )\n}\n\nfunction FormCard({\n card,\n cardWidth = 'sm',\n children,\n}: {\n card: LoginCard\n cardWidth?: LoginCardWidth\n children: React.ReactNode\n}) {\n const widthCls = cardWidthClass[cardWidth]\n if (card === 'card') {\n return (\n <div className={cn('w-full rounded-2xl border bg-card px-8 py-10 shadow-lg', widthCls)}>\n {children}\n </div>\n )\n }\n return <div className={cn('w-full', widthCls)}>{children}</div>\n}\n\nexport function LoginBodyTemplate({\n theme,\n layout = 'centered',\n side = 'left',\n card = 'plain',\n bg = 'default',\n cardWidth = 'sm',\n brand,\n children,\n className,\n}: LoginBodyTemplateProps) {\n const brandPanel = (\n <div className=\"hidden lg:flex lg:w-1/2 bg-primary flex-col\">\n {brand ?? <DefaultBrand />}\n </div>\n )\n\n if (layout === 'split') {\n return (\n <div\n className={cn('designkit-theme h-full flex bg-background text-foreground', className)}\n style={theme}\n >\n {side === 'left' && brandPanel}\n <div className=\"flex flex-1 items-center justify-center p-8\">\n <FormCard card={card} cardWidth={cardWidth}>{children}</FormCard>\n </div>\n {side === 'right' && brandPanel}\n </div>\n )\n }\n\n return (\n <div\n className={cn(\n 'designkit-theme h-full flex items-center justify-center text-foreground p-4',\n bgClass[bg],\n className,\n )}\n style={theme}\n >\n <FormCard card={card} cardWidth={cardWidth}>{children}</FormCard>\n </div>\n )\n}\n","import * as React from \"react\"\nimport { mergeProps } from \"@base-ui/react/merge-props\"\nimport { useRender } from \"@base-ui/react/use-render\"\n\nimport { cn } from \"@/lib/utils\"\nimport { ChevronRightIcon, MoreHorizontalIcon } from \"lucide-react\"\n\nfunction Breadcrumb({ className, ...props }: React.ComponentProps<\"nav\">) {\n return (\n <nav\n aria-label=\"breadcrumb\"\n data-slot=\"breadcrumb\"\n className={cn(className)}\n {...props}\n />\n )\n}\n\nfunction BreadcrumbList({ className, ...props }: React.ComponentProps<\"ol\">) {\n return (\n <ol\n data-slot=\"breadcrumb-list\"\n className={cn(\n \"flex flex-wrap items-center gap-1.5 text-sm wrap-break-word text-muted-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction BreadcrumbItem({ className, ...props }: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"breadcrumb-item\"\n className={cn(\"inline-flex items-center gap-1\", className)}\n {...props}\n />\n )\n}\n\nfunction BreadcrumbLink({\n className,\n render,\n ...props\n}: useRender.ComponentProps<\"a\">) {\n return useRender({\n defaultTagName: \"a\",\n props: mergeProps<\"a\">(\n {\n className: cn(\"transition-colors hover:text-foreground\", className),\n },\n props\n ),\n render,\n state: {\n slot: \"breadcrumb-link\",\n },\n })\n}\n\nfunction BreadcrumbPage({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"breadcrumb-page\"\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn(\"font-normal text-foreground\", className)}\n {...props}\n />\n )\n}\n\nfunction BreadcrumbSeparator({\n children,\n className,\n ...props\n}: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"breadcrumb-separator\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"[&>svg]:size-3.5\", className)}\n {...props}\n >\n {children ?? (\n <ChevronRightIcon />\n )}\n </li>\n )\n}\n\nfunction BreadcrumbEllipsis({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"breadcrumb-ellipsis\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\n \"flex size-5 items-center justify-center [&>svg]:size-4\",\n className\n )}\n {...props}\n >\n <MoreHorizontalIcon\n />\n <span className=\"sr-only\">More</span>\n </span>\n )\n}\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n}\n","import React from 'react'\nimport { cn } from '@/lib/utils'\nimport {\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n} from '@/components/ui/breadcrumb'\n\nexport type PageTopBarVariant = 'ghost' | 'default'\n\nexport interface PageTopBarProps {\n left?: React.ReactNode\n right?: React.ReactNode\n variant?: PageTopBarVariant\n height?: string\n className?: string\n style?: React.CSSProperties\n children?: React.ReactNode\n}\n\nexport type PageBreadcrumbItem = string | { label: string; href?: string }\n\nexport function PageBreadcrumb({ items }: { items: PageBreadcrumbItem[] }) {\n return (\n <Breadcrumb>\n <BreadcrumbList className=\"text-xs gap-1\">\n {items.map((item, i) => {\n const isLast = i === items.length - 1\n const label = typeof item === 'string' ? item : item.label\n const href = typeof item === 'string' ? undefined : item.href\n return (\n <React.Fragment key={i}>\n {i > 0 && <BreadcrumbSeparator />}\n <BreadcrumbItem>\n {isLast ? (\n <BreadcrumbPage className=\"text-xs\">{label}</BreadcrumbPage>\n ) : href ? (\n <BreadcrumbLink href={href} className=\"text-xs\">\n {label}\n </BreadcrumbLink>\n ) : (\n <span className=\"text-xs text-muted-foreground\">{label}</span>\n )}\n </BreadcrumbItem>\n </React.Fragment>\n )\n })}\n </BreadcrumbList>\n </Breadcrumb>\n )\n}\n\nfunction normalizeBreadcrumb(left: React.ReactNode): React.ReactNode {\n if (typeof left === 'string') {\n const items = left.split('/').map((s) => s.trim()).filter(Boolean)\n return <PageBreadcrumb items={items} />\n }\n return left\n}\n\nconst bgClassMap: Record<string, string> = {\n muted: 'bg-muted',\n card: 'bg-card',\n transparent: '',\n}\n\n/** Builds a PageTopBar ReactNode from playground option strings. */\nexport function buildTopBar(opts: {\n topBarShow?: string\n topBarVariant?: string\n topBarBg?: string\n left: React.ReactNode\n right?: React.ReactNode\n}): React.ReactNode {\n if (opts.topBarShow === 'hide') return undefined\n return (\n <PageTopBar\n left={normalizeBreadcrumb(opts.left)}\n right={opts.right}\n variant={(opts.topBarVariant as PageTopBarVariant) ?? 'ghost'}\n className={bgClassMap[opts.topBarBg ?? 'transparent'] ?? ''}\n />\n )\n}\n\nexport function PageTopBar({\n left,\n right,\n variant = 'ghost',\n height = 'var(--dk-toolbar-height)',\n className,\n style,\n children,\n}: PageTopBarProps) {\n return (\n <div\n className={cn(\n 'flex shrink-0 items-center justify-between gap-4 px-(--dk-page-padding-x)',\n variant === 'default' && 'border-b',\n className,\n )}\n style={{ height, ...style }}\n >\n <div className=\"flex min-w-0 items-center text-xs text-muted-foreground\">\n {normalizeBreadcrumb(left ?? children)}\n </div>\n {right && <div className=\"flex shrink-0 items-center gap-2\">{right}</div>}\n </div>\n )\n}\n","import { useEffect } from 'react'\nimport { useThemeStore } from '@/store/themeStore'\nimport type { DensityId, TemplateId } from '@/store/types'\n\nconst STYLE_ID = 'designkit-vars'\n\ninterface DesignTokenInput {\n radius: number\n primaryHue: number\n primaryChroma: number\n fontScale: number\n lineHeight: number\n density?: DensityId\n pagePaddingY?: string\n panelGap?: string\n toolbarHeight?: string\n}\n\ntype TokenMap = Record<`--${string}`, string | number>\n\nfunction buildTokenMap({\n radius,\n primaryHue,\n primaryChroma,\n fontScale,\n lineHeight,\n density = 'default',\n pagePaddingY,\n panelGap,\n toolbarHeight,\n}: DesignTokenInput): TokenMap {\n const densityValues = {\n compact: {\n density: 0.85,\n pagePaddingY: '0.75rem',\n panelGap: '0.75rem',\n toolbarHeight: '2.5rem',\n },\n default: {\n density: 1,\n pagePaddingY: '1rem',\n panelGap: '1rem',\n toolbarHeight: '2.75rem',\n },\n comfortable: {\n density: 1.15,\n pagePaddingY: '1.25rem',\n panelGap: '1.25rem',\n toolbarHeight: '3rem',\n },\n }[density]\n\n const c = (factor: number) => (primaryChroma * factor).toFixed(4)\n\n return {\n '--dk-radius': `${radius}rem`,\n '--dg-radius': `${radius}rem`,\n '--radius': `${radius}rem`,\n '--radius-sm': `${(radius * 0.6).toFixed(4)}rem`,\n '--radius-md': `${(radius * 0.8).toFixed(4)}rem`,\n '--radius-lg': `${radius}rem`,\n '--radius-xl': `${(radius * 1.4).toFixed(4)}rem`,\n '--radius-2xl': `${(radius * 1.8).toFixed(4)}rem`,\n\n // primary — fully controlled\n '--dk-primary': `oklch(0.52 ${primaryChroma} ${primaryHue})`,\n '--dk-primary-foreground': 'oklch(0.985 0 0)',\n '--dk-ring': `oklch(0.50 ${primaryChroma} ${primaryHue})`,\n '--dg-primary': `oklch(0.52 ${primaryChroma} ${primaryHue})`,\n '--dg-primary-foreground': 'oklch(0.985 0 0)',\n '--dg-ring': `oklch(0.50 ${primaryChroma} ${primaryHue})`,\n '--primary': `oklch(0.52 ${primaryChroma} ${primaryHue})`,\n '--primary-foreground': 'oklch(0.985 0 0)',\n '--color-primary': `oklch(0.52 ${primaryChroma} ${primaryHue})`,\n '--color-primary-foreground': 'oklch(0.985 0 0)',\n '--ring': `oklch(0.50 ${primaryChroma} ${primaryHue})`,\n '--color-ring': `oklch(0.50 ${primaryChroma} ${primaryHue})`,\n '--sidebar-primary': `oklch(0.488 ${primaryChroma} ${primaryHue})`,\n '--color-sidebar-primary': `oklch(0.488 ${primaryChroma} ${primaryHue})`,\n\n // tonal surface — same hue, heavily reduced chroma\n '--border': `oklch(0.922 ${c(0.04)} ${primaryHue})`,\n '--input': `oklch(0.922 ${c(0.04)} ${primaryHue})`,\n '--muted': `oklch(0.970 ${c(0.02)} ${primaryHue})`,\n '--secondary': `oklch(0.970 ${c(0.02)} ${primaryHue})`,\n '--accent': `oklch(0.970 ${c(0.04)} ${primaryHue})`,\n '--color-border': `oklch(0.922 ${c(0.04)} ${primaryHue})`,\n '--color-input': `oklch(0.922 ${c(0.04)} ${primaryHue})`,\n '--color-muted': `oklch(0.970 ${c(0.02)} ${primaryHue})`,\n '--color-secondary': `oklch(0.970 ${c(0.02)} ${primaryHue})`,\n '--color-accent': `oklch(0.970 ${c(0.04)} ${primaryHue})`,\n '--dk-border': `oklch(0.922 ${c(0.04)} ${primaryHue})`,\n '--dk-input': `oklch(0.922 ${c(0.04)} ${primaryHue})`,\n '--dk-muted': `oklch(0.970 ${c(0.02)} ${primaryHue})`,\n '--dg-border': `oklch(0.922 ${c(0.04)} ${primaryHue})`,\n '--dg-muted': `oklch(0.970 ${c(0.02)} ${primaryHue})`,\n\n '--dk-font-scale': fontScale,\n '--dk-line-height': lineHeight,\n '--dk-density': densityValues.density,\n '--dk-page-padding-y': pagePaddingY ?? densityValues.pagePaddingY,\n '--dk-panel-gap': panelGap ?? densityValues.panelGap,\n '--dk-toolbar-height': toolbarHeight ?? densityValues.toolbarHeight,\n '--dk-text-xs': `calc(0.75rem * ${fontScale})`,\n '--dk-text-sm': `calc(0.875rem * ${fontScale})`,\n '--dk-text-base': `calc(1rem * ${fontScale})`,\n '--dk-text-lg': `calc(1.125rem * ${fontScale})`,\n '--dk-text-xl': `calc(1.25rem * ${fontScale})`,\n '--dk-leading-xs': `calc(1rem * ${lineHeight})`,\n '--dk-leading-sm': `calc(1.25rem * ${lineHeight})`,\n '--dk-leading-base': `calc(1.5rem * ${lineHeight})`,\n '--dk-leading-lg': `calc(1.75rem * ${lineHeight})`,\n '--dk-leading-xl': `calc(1.75rem * ${lineHeight})`,\n '--text-xs': 'var(--dk-text-xs)',\n '--text-sm': 'var(--dk-text-sm)',\n '--text-base': 'var(--dk-text-base)',\n '--text-lg': 'var(--dk-text-lg)',\n '--text-xl': 'var(--dk-text-xl)',\n '--text-xs--line-height': 'var(--dk-leading-xs)',\n '--text-sm--line-height': 'var(--dk-leading-sm)',\n '--text-base--line-height': 'var(--dk-leading-base)',\n '--text-lg--line-height': 'var(--dk-leading-lg)',\n '--text-xl--line-height': 'var(--dk-leading-xl)',\n }\n}\n\nfunction buildDarkTonalTokens(primaryHue: number, primaryChroma: number): TokenMap {\n const c = (factor: number) => (primaryChroma * factor).toFixed(4)\n return {\n '--border': `oklch(0.32 ${c(0.06)} ${primaryHue})`,\n '--input': `oklch(0.35 ${c(0.06)} ${primaryHue})`,\n '--muted': `oklch(0.269 ${c(0.03)} ${primaryHue})`,\n '--secondary': `oklch(0.269 ${c(0.02)} ${primaryHue})`,\n '--accent': `oklch(0.320 ${c(0.04)} ${primaryHue})`,\n '--color-border': `oklch(0.32 ${c(0.06)} ${primaryHue})`,\n '--color-input': `oklch(0.35 ${c(0.06)} ${primaryHue})`,\n '--color-muted': `oklch(0.269 ${c(0.03)} ${primaryHue})`,\n '--color-secondary': `oklch(0.269 ${c(0.02)} ${primaryHue})`,\n '--color-accent': `oklch(0.320 ${c(0.04)} ${primaryHue})`,\n '--dk-border': `oklch(0.32 ${c(0.06)} ${primaryHue})`,\n '--dk-input': `oklch(0.35 ${c(0.06)} ${primaryHue})`,\n '--dk-muted': `oklch(0.269 ${c(0.03)} ${primaryHue})`,\n '--dg-border': `oklch(0.32 ${c(0.06)} ${primaryHue})`,\n '--dg-muted': `oklch(0.269 ${c(0.03)} ${primaryHue})`,\n }\n}\n\nfunction tokenMapToCss(tokens: TokenMap) {\n return Object.entries(tokens)\n .map(([key, value]) => ` ${key}: ${value};`)\n .join('\\n')\n}\n\nexport function useStyleInjector() {\n const g = useThemeStore((s) => s.global)\n const ov = useThemeStore((s) => s.overrides)\n\n useEffect(() => {\n let el = document.getElementById(STYLE_ID) as HTMLStyleElement | null\n if (!el) {\n el = document.createElement('style')\n el.id = STYLE_ID\n document.head.appendChild(el)\n }\n\n const rootBlock = `:root {\\n${tokenMapToCss(buildTokenMap(g))}\\n}`\n const darkTonalBlock = `.dark {\\n${tokenMapToCss(buildDarkTonalTokens(g.primaryHue, g.primaryChroma))}\\n}`\n\n const tmplBlocks = (Object.entries(ov) as [TemplateId, (typeof ov)[TemplateId]][])\n .map(([id, o]) => {\n if (\n o.radius === undefined &&\n o.primaryChroma === undefined &&\n o.density === undefined &&\n o.pagePaddingY === undefined &&\n o.panelGap === undefined &&\n o.toolbarHeight === undefined\n )\n return ''\n const tokens = buildTokenMap({\n ...g,\n radius: o.radius ?? g.radius,\n primaryChroma: o.primaryChroma ?? g.primaryChroma,\n density: o.density ?? g.density,\n pagePaddingY: o.pagePaddingY,\n panelGap: o.panelGap,\n toolbarHeight: o.toolbarHeight,\n })\n const layoutClassName = `layout-${id}`\n return `.${layoutClassName} {\\n${tokenMapToCss(tokens)}\\n}`\n })\n .filter(Boolean)\n\n el.textContent = [rootBlock, darkTonalBlock, ...tmplBlocks].join('\\n\\n')\n }, [g, ov])\n\n useEffect(() => {\n document.documentElement.classList.toggle('dark', g.darkMode)\n }, [g.darkMode])\n\n useEffect(() => {\n if (g.density === 'default') {\n document.documentElement.removeAttribute('data-dk-density')\n return\n }\n document.documentElement.dataset.dkDensity = g.density\n }, [g.density])\n}\n\n/** Returns CSS custom properties for a template — used as inline style for external usage */\nexport function buildTemplateTheme(\n g: {\n radius: number\n primaryHue: number\n primaryChroma: number\n density?: DensityId\n fontScale?: number\n lineHeight?: number\n },\n ov: {\n radius?: number\n primaryChroma?: number\n density?: DensityId\n pagePaddingY?: string\n panelGap?: string\n toolbarHeight?: string\n } = {},\n): React.CSSProperties {\n return buildTokenMap({\n radius: ov.radius ?? g.radius,\n primaryHue: g.primaryHue,\n primaryChroma: ov.primaryChroma ?? g.primaryChroma,\n density: ov.density ?? g.density,\n pagePaddingY: ov.pagePaddingY,\n panelGap: ov.panelGap,\n toolbarHeight: ov.toolbarHeight,\n fontScale: g.fontScale ?? 1,\n lineHeight: g.lineHeight ?? 1,\n }) as React.CSSProperties\n}\n"]}
1
+ {"version":3,"sources":["../src/lib/utils.ts","../src/components/ui/avatar.tsx","../src/components/ui/badge.tsx","../src/components/ui/button.tsx","../src/components/ui/card.tsx","../src/components/ui/checkbox.tsx","../src/components/ui/dropdown-menu.tsx","../src/components/ui/input.tsx","../src/components/ui/label.tsx","../src/components/ui/popover.tsx","../src/components/ui/scroll-area.tsx","../src/components/ui/navigation-menu.tsx","../src/components/ui/select.tsx","../src/components/ui/separator.tsx","../src/components/ui/sheet.tsx","../src/hooks/use-mobile.ts","../src/components/ui/skeleton.tsx","../src/components/ui/tooltip.tsx","../src/components/ui/sidebar.tsx","../src/components/ui/empty-state.tsx","../src/components/ui/slider.tsx","../src/components/ui/switch.tsx","../src/components/ui/table.tsx","../src/components/ui/tabs.tsx","../src/components/templates/datapage/DataPage.tsx","../src/components/templates/dashboard/DashboardBodyTemplate.tsx","../src/components/templates/workbench/WorkbenchBodyTemplate.tsx","../src/components/templates/databody/DataBodyTemplate.tsx","../src/components/templates/browse/BrowseBodyTemplate.tsx","../src/components/templates/detail/DetailBodyTemplate.tsx","../src/components/templates/listdetail/ListDetailBodyTemplate.tsx","../src/components/templates/form/FormWizardBodyTemplate.tsx","../src/components/templates/typography/TypographyBodyTemplate.tsx","../src/store/themeStore.ts","../src/components/templates/typography/ColorsBodyTemplate.tsx","../src/components/templates/auth/LoginBodyTemplate.tsx","../src/components/ui/breadcrumb.tsx","../src/components/templates/datapage/PageTopBar.tsx","../src/lib/styleInjector.ts"],"names":["twMerge","clsx","jsx","AvatarPrimitive","cva","useRender","mergeProps","ButtonPrimitive","CheckboxPrimitive","CheckIcon","MenuPrimitive","jsxs","ChevronRightIcon","InputPrimitive","PopoverPrimitive","ScrollAreaPrimitive","NavigationMenuPrimitive","ChevronDownIcon","SelectPrimitive","ChevronUpIcon","SeparatorPrimitive","SheetPrimitive","XIcon","React","TooltipPrimitive","React2","open","PanelLeftIcon","SliderPrimitive","SwitchPrimitive","TabsPrimitive","Tabs","forwardRef","DashboardPanel","GripHorizontal","useState","useCallback","Fragment","Children","Root","useMemo","useEffect","SlidersHorizontal","Check","create"],"mappings":"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","file":"index.cjs","sourcesContent":["import { clsx, type ClassValue } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","'use client'\n\nimport * as React from 'react'\nimport { Avatar as AvatarPrimitive } from '@base-ui/react/avatar'\n\nimport { cn } from '@/lib/utils'\n\nfunction Avatar({\n className,\n size = 'default',\n ...props\n}: AvatarPrimitive.Root.Props & {\n size?: 'default' | 'sm' | 'lg'\n}) {\n return (\n <AvatarPrimitive.Root\n data-slot=\"avatar\"\n data-size={size}\n className={cn(\n 'group/avatar relative flex size-8 shrink-0 rounded-full select-none after:absolute after:inset-0 after:rounded-full after:border after:border-border after:mix-blend-darken data-[size=lg]:size-10 data-[size=sm]:size-6 dark:after:mix-blend-lighten',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction AvatarImage({ className, ...props }: AvatarPrimitive.Image.Props) {\n return (\n <AvatarPrimitive.Image\n data-slot=\"avatar-image\"\n className={cn('aspect-square size-full rounded-full object-cover', className)}\n {...props}\n />\n )\n}\n\nfunction AvatarFallback({ className, ...props }: AvatarPrimitive.Fallback.Props) {\n return (\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n className={cn(\n 'flex size-full items-center justify-center rounded-full bg-muted text-sm text-muted-foreground group-data-[size=sm]/avatar:text-xs',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction AvatarBadge({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"avatar-badge\"\n className={cn(\n 'absolute right-0 bottom-0 z-10 inline-flex items-center justify-center rounded-full bg-primary text-primary-foreground bg-blend-color ring-2 ring-background select-none',\n 'group-data-[size=sm]/avatar:size-2 group-data-[size=sm]/avatar:[&>svg]:hidden',\n 'group-data-[size=default]/avatar:size-2.5 group-data-[size=default]/avatar:[&>svg]:size-2',\n 'group-data-[size=lg]/avatar:size-3 group-data-[size=lg]/avatar:[&>svg]:size-2',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction AvatarGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"avatar-group\"\n className={cn(\n 'group/avatar-group flex -space-x-2 *:data-[slot=avatar]:ring-2 *:data-[slot=avatar]:ring-background',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction AvatarGroupCount({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"avatar-group-count\"\n className={cn(\n 'relative flex size-8 shrink-0 items-center justify-center rounded-full bg-muted text-sm text-muted-foreground ring-2 ring-background group-has-data-[size=lg]/avatar-group:size-10 group-has-data-[size=sm]/avatar-group:size-6 [&>svg]:size-4 group-has-data-[size=lg]/avatar-group:[&>svg]:size-5 group-has-data-[size=sm]/avatar-group:[&>svg]:size-3',\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { Avatar, AvatarImage, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarBadge }\n","import { mergeProps } from '@base-ui/react/merge-props'\nimport { useRender } from '@base-ui/react/use-render'\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { cn } from '@/lib/utils'\n\nconst badgeVariants = cva(\n // transition-all is replaced with an explicit list to prevent width animation\n// on font swap (e.g. font-display:swap triggering a layout recalc). Inside\n// overflow:clip containers like DataGrid cells, an animated width change makes\n// the pill appear to grow from a clipped state. Color transitions are preserved.\n'group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-[color,background-color,border-color,box-shadow,opacity] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3!',\n {\n variants: {\n variant: {\n default: 'bg-primary text-primary-foreground [a]:hover:bg-primary/80',\n secondary: 'bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80',\n destructive:\n 'bg-destructive/10 text-destructive focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/20',\n outline: 'border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground',\n ghost: 'hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n)\n\nfunction Badge({\n className,\n variant = 'default',\n render,\n ...props\n}: useRender.ComponentProps<'span'> & VariantProps<typeof badgeVariants>) {\n return useRender({\n defaultTagName: 'span',\n props: mergeProps<'span'>(\n {\n className: cn(badgeVariants({ variant }), className),\n },\n props,\n ),\n render,\n state: {\n slot: 'badge',\n variant,\n },\n })\n}\n\nexport { Badge, badgeVariants }\n","import { Button as ButtonPrimitive } from '@base-ui/react/button'\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { cn } from '@/lib/utils'\n\nconst buttonVariants = cva(\n \"group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n default: 'bg-primary text-primary-foreground [a]:hover:bg-primary/80',\n outline:\n 'border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50',\n secondary:\n 'bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground',\n ghost:\n 'hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50',\n destructive:\n 'bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n size: {\n default:\n 'h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2',\n xs: \"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3\",\n sm: \"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5\",\n lg: 'h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2',\n icon: 'size-8',\n 'icon-xs':\n \"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3\",\n 'icon-sm':\n 'size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg',\n 'icon-lg': 'size-9',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n)\n\nfunction Button({\n className,\n variant = 'default',\n size = 'default',\n ...props\n}: ButtonPrimitive.Props & VariantProps<typeof buttonVariants>) {\n return (\n <ButtonPrimitive\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n )\n}\n\nexport { Button, buttonVariants }\n","import * as React from 'react'\n\nimport { cn } from '@/lib/utils'\n\nfunction Card({\n className,\n size = 'default',\n ...props\n}: React.ComponentProps<'div'> & { size?: 'default' | 'sm' }) {\n return (\n <div\n data-slot=\"card\"\n data-size={size}\n className={cn(\n 'group/card flex flex-col gap-4 overflow-hidden rounded-xl bg-card py-4 text-sm text-card-foreground ring-1 ring-foreground/10 has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:gap-3 data-[size=sm]:py-3 data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction CardHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card-header\"\n className={cn(\n 'group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-4 group-data-[size=sm]/card:px-3 has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-4 group-data-[size=sm]/card:[.border-b]:pb-3',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction CardTitle({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card-title\"\n className={cn(\n 'font-heading text-base leading-snug font-medium group-data-[size=sm]/card:text-sm',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction CardDescription({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card-description\"\n className={cn('text-sm text-muted-foreground', className)}\n {...props}\n />\n )\n}\n\nfunction CardAction({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card-action\"\n className={cn('col-start-2 row-span-2 row-start-1 self-start justify-self-end', className)}\n {...props}\n />\n )\n}\n\nfunction CardContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card-content\"\n className={cn('px-4 group-data-[size=sm]/card:px-3', className)}\n {...props}\n />\n )\n}\n\nfunction CardFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card-footer\"\n className={cn(\n 'flex items-center rounded-b-xl border-t bg-muted/50 p-4 group-data-[size=sm]/card:p-3',\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { Card, CardHeader, CardFooter, CardTitle, CardAction, CardDescription, CardContent }\n","import { Checkbox as CheckboxPrimitive } from '@base-ui/react/checkbox'\n\nimport { cn } from '@/lib/utils'\nimport { CheckIcon } from 'lucide-react'\n\nfunction Checkbox({ className, ...props }: CheckboxPrimitive.Root.Props) {\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n className={cn(\n 'peer relative flex size-4 shrink-0 items-center justify-center rounded-[4px] border border-input transition-colors outline-none group-has-disabled/field:opacity-50 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary',\n className,\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n data-slot=\"checkbox-indicator\"\n className=\"grid place-content-center text-current transition-none [&>svg]:size-3.5\"\n >\n <CheckIcon />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n )\n}\n\nexport { Checkbox }\n","import * as React from 'react'\nimport { Menu as MenuPrimitive } from '@base-ui/react/menu'\n\nimport { cn } from '@/lib/utils'\nimport { ChevronRightIcon, CheckIcon } from 'lucide-react'\n\nfunction DropdownMenu({ ...props }: MenuPrimitive.Root.Props) {\n return <MenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />\n}\n\nfunction DropdownMenuPortal({ ...props }: MenuPrimitive.Portal.Props) {\n return <MenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" {...props} />\n}\n\nfunction DropdownMenuTrigger({\n asChild: _asChild,\n ...props\n}: MenuPrimitive.Trigger.Props & { asChild?: boolean }) {\n return <MenuPrimitive.Trigger data-slot=\"dropdown-menu-trigger\" {...props} />\n}\n\nfunction DropdownMenuContent({\n align = 'start',\n alignOffset = 0,\n side = 'bottom',\n sideOffset = 4,\n className,\n ...props\n}: MenuPrimitive.Popup.Props &\n Pick<MenuPrimitive.Positioner.Props, 'align' | 'alignOffset' | 'side' | 'sideOffset'>) {\n return (\n <MenuPrimitive.Portal>\n <MenuPrimitive.Positioner\n className=\"isolate z-50 outline-none\"\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n >\n <MenuPrimitive.Popup\n data-slot=\"dropdown-menu-content\"\n className={cn(\n 'z-50 max-h-(--available-height) w-(--anchor-width) min-w-32 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 outline-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:overflow-hidden data-closed:fade-out-0 data-closed:zoom-out-95',\n className,\n )}\n {...props}\n />\n </MenuPrimitive.Positioner>\n </MenuPrimitive.Portal>\n )\n}\n\nfunction DropdownMenuGroup({ ...props }: MenuPrimitive.Group.Props) {\n return <MenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />\n}\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: MenuPrimitive.GroupLabel.Props & {\n inset?: boolean\n}) {\n return (\n <MenuPrimitive.GroupLabel\n data-slot=\"dropdown-menu-label\"\n data-inset={inset}\n className={cn(\n 'px-1.5 py-1 text-xs font-medium text-muted-foreground data-inset:pl-7',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = 'default',\n ...props\n}: MenuPrimitive.Item.Props & {\n inset?: boolean\n variant?: 'default' | 'destructive'\n}) {\n return (\n <MenuPrimitive.Item\n data-slot=\"dropdown-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"group/dropdown-menu-item relative flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-7 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction DropdownMenuSub({ ...props }: MenuPrimitive.SubmenuRoot.Props) {\n return <MenuPrimitive.SubmenuRoot data-slot=\"dropdown-menu-sub\" {...props} />\n}\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: MenuPrimitive.SubmenuTrigger.Props & {\n inset?: boolean\n}) {\n return (\n <MenuPrimitive.SubmenuTrigger\n data-slot=\"dropdown-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-7 data-popup-open:bg-accent data-popup-open:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto\" />\n </MenuPrimitive.SubmenuTrigger>\n )\n}\n\nfunction DropdownMenuSubContent({\n align = 'start',\n alignOffset = -3,\n side = 'right',\n sideOffset = 0,\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuContent>) {\n return (\n <DropdownMenuContent\n data-slot=\"dropdown-menu-sub-content\"\n className={cn(\n 'w-auto min-w-[96px] rounded-lg bg-popover p-1 text-popover-foreground shadow-lg ring-1 ring-foreground/10 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95',\n className,\n )}\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n {...props}\n />\n )\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n inset,\n ...props\n}: MenuPrimitive.CheckboxItem.Props & {\n inset?: boolean\n}) {\n return (\n <MenuPrimitive.CheckboxItem\n data-slot=\"dropdown-menu-checkbox-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span\n className=\"pointer-events-none absolute right-2 flex items-center justify-center\"\n data-slot=\"dropdown-menu-checkbox-item-indicator\"\n >\n <MenuPrimitive.CheckboxItemIndicator>\n <CheckIcon />\n </MenuPrimitive.CheckboxItemIndicator>\n </span>\n {children}\n </MenuPrimitive.CheckboxItem>\n )\n}\n\nfunction DropdownMenuRadioGroup({ ...props }: MenuPrimitive.RadioGroup.Props) {\n return <MenuPrimitive.RadioGroup data-slot=\"dropdown-menu-radio-group\" {...props} />\n}\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n inset,\n ...props\n}: MenuPrimitive.RadioItem.Props & {\n inset?: boolean\n}) {\n return (\n <MenuPrimitive.RadioItem\n data-slot=\"dropdown-menu-radio-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <span\n className=\"pointer-events-none absolute right-2 flex items-center justify-center\"\n data-slot=\"dropdown-menu-radio-item-indicator\"\n >\n <MenuPrimitive.RadioItemIndicator>\n <CheckIcon />\n </MenuPrimitive.RadioItemIndicator>\n </span>\n {children}\n </MenuPrimitive.RadioItem>\n )\n}\n\nfunction DropdownMenuSeparator({ className, ...props }: MenuPrimitive.Separator.Props) {\n return (\n <MenuPrimitive.Separator\n data-slot=\"dropdown-menu-separator\"\n className={cn('-mx-1 my-1 h-px bg-border', className)}\n {...props}\n />\n )\n}\n\nfunction DropdownMenuShortcut({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"dropdown-menu-shortcut\"\n className={cn(\n 'ml-auto text-xs tracking-widest text-muted-foreground group-focus/dropdown-menu-item:text-accent-foreground',\n className,\n )}\n {...props}\n />\n )\n}\n\nexport {\n DropdownMenu,\n DropdownMenuPortal,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n}\n","import * as React from 'react'\nimport { Input as InputPrimitive } from '@base-ui/react/input'\n\nimport { cn } from '@/lib/utils'\n\nfunction Input({ className, type, ...props }: React.ComponentProps<'input'>) {\n return (\n <InputPrimitive\n type={type}\n data-slot=\"input\"\n className={cn(\n 'h-8 w-full min-w-0 rounded-lg border border-input bg-transparent px-2.5 py-1 text-base transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:disabled:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40',\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { Input }\n","import * as React from 'react'\n\nimport { cn } from '@/lib/utils'\n\nfunction Label({ className, ...props }: React.ComponentProps<'label'>) {\n return (\n <label\n data-slot=\"label\"\n className={cn(\n 'flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50',\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { Label }\n","import * as React from 'react'\nimport { Popover as PopoverPrimitive } from '@base-ui/react/popover'\n\nimport { cn } from '@/lib/utils'\n\nfunction Popover({ ...props }: PopoverPrimitive.Root.Props) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />\n}\n\nfunction PopoverTrigger({ ...props }: PopoverPrimitive.Trigger.Props) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />\n}\n\nfunction PopoverContent({\n className,\n align = 'center',\n alignOffset = 0,\n side = 'bottom',\n sideOffset = 4,\n ...props\n}: PopoverPrimitive.Popup.Props &\n Pick<PopoverPrimitive.Positioner.Props, 'align' | 'alignOffset' | 'side' | 'sideOffset'>) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Positioner\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n className=\"isolate z-50\"\n >\n <PopoverPrimitive.Popup\n data-slot=\"popover-content\"\n className={cn(\n 'z-50 flex w-72 origin-(--transform-origin) flex-col gap-2.5 rounded-lg bg-popover p-2.5 text-sm text-popover-foreground shadow-md ring-1 ring-foreground/10 outline-hidden duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95',\n className,\n )}\n {...props}\n />\n </PopoverPrimitive.Positioner>\n </PopoverPrimitive.Portal>\n )\n}\n\nfunction PopoverHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"popover-header\"\n className={cn('flex flex-col gap-0.5 text-sm', className)}\n {...props}\n />\n )\n}\n\nfunction PopoverTitle({ className, ...props }: PopoverPrimitive.Title.Props) {\n return (\n <PopoverPrimitive.Title\n data-slot=\"popover-title\"\n className={cn('font-medium', className)}\n {...props}\n />\n )\n}\n\nfunction PopoverDescription({ className, ...props }: PopoverPrimitive.Description.Props) {\n return (\n <PopoverPrimitive.Description\n data-slot=\"popover-description\"\n className={cn('text-muted-foreground', className)}\n {...props}\n />\n )\n}\n\nexport { Popover, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger }\n","import * as React from 'react'\nimport { ScrollArea as ScrollAreaPrimitive } from '@base-ui/react/scroll-area'\n\nimport { cn } from '@/lib/utils'\n\nfunction ScrollArea({ className, children, ...props }: ScrollAreaPrimitive.Root.Props) {\n return (\n <ScrollAreaPrimitive.Root\n data-slot=\"scroll-area\"\n className={cn('relative', className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport\n data-slot=\"scroll-area-viewport\"\n className=\"size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1\"\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n )\n}\n\nfunction ScrollBar({\n className,\n orientation = 'vertical',\n ...props\n}: ScrollAreaPrimitive.Scrollbar.Props) {\n return (\n <ScrollAreaPrimitive.Scrollbar\n data-slot=\"scroll-area-scrollbar\"\n data-orientation={orientation}\n orientation={orientation}\n className={cn(\n 'flex touch-none p-px transition-colors select-none data-horizontal:h-2.5 data-horizontal:flex-col data-horizontal:border-t data-horizontal:border-t-transparent data-vertical:h-full data-vertical:w-2.5 data-vertical:border-l data-vertical:border-l-transparent',\n className,\n )}\n {...props}\n >\n <ScrollAreaPrimitive.Thumb\n data-slot=\"scroll-area-thumb\"\n className=\"relative flex-1 rounded-full bg-border\"\n />\n </ScrollAreaPrimitive.Scrollbar>\n )\n}\n\nexport { ScrollArea, ScrollBar }\n","import { NavigationMenu as NavigationMenuPrimitive } from '@base-ui/react/navigation-menu'\nimport { cva } from 'class-variance-authority'\n\nimport { cn } from '@/lib/utils'\nimport { ChevronDownIcon } from 'lucide-react'\n\nfunction NavigationMenu({\n align = 'start',\n className,\n children,\n ...props\n}: NavigationMenuPrimitive.Root.Props & Pick<NavigationMenuPrimitive.Positioner.Props, 'align'>) {\n return (\n <NavigationMenuPrimitive.Root\n data-slot=\"navigation-menu\"\n className={cn(\n 'group/navigation-menu relative flex max-w-max flex-1 items-center justify-center',\n className,\n )}\n {...props}\n >\n {children}\n <NavigationMenuPositioner align={align} />\n </NavigationMenuPrimitive.Root>\n )\n}\n\nfunction NavigationMenuList({\n className,\n ...props\n}: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.List>) {\n return (\n <NavigationMenuPrimitive.List\n data-slot=\"navigation-menu-list\"\n className={cn('group flex flex-1 list-none items-center justify-center gap-0', className)}\n {...props}\n />\n )\n}\n\nfunction NavigationMenuItem({\n className,\n ...props\n}: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.Item>) {\n return (\n <NavigationMenuPrimitive.Item\n data-slot=\"navigation-menu-item\"\n className={cn('relative', className)}\n {...props}\n />\n )\n}\n\nconst navigationMenuTriggerStyle = cva(\n 'group/navigation-menu-trigger inline-flex h-9 w-max items-center justify-center rounded-lg px-2.5 py-1.5 text-sm font-medium transition-all outline-none hover:bg-muted focus:bg-muted focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-popup-open:bg-muted/50 data-popup-open:hover:bg-muted data-open:bg-muted/50 data-open:hover:bg-muted data-open:focus:bg-muted',\n)\n\nfunction NavigationMenuTrigger({\n className,\n children,\n ...props\n}: NavigationMenuPrimitive.Trigger.Props) {\n return (\n <NavigationMenuPrimitive.Trigger\n data-slot=\"navigation-menu-trigger\"\n className={cn(navigationMenuTriggerStyle(), 'group', className)}\n {...props}\n >\n {children}{' '}\n <ChevronDownIcon\n className=\"relative top-px ml-1 size-3 transition duration-300 group-data-popup-open/navigation-menu-trigger:rotate-180 group-data-open/navigation-menu-trigger:rotate-180\"\n aria-hidden=\"true\"\n />\n </NavigationMenuPrimitive.Trigger>\n )\n}\n\nfunction NavigationMenuContent({ className, ...props }: NavigationMenuPrimitive.Content.Props) {\n return (\n <NavigationMenuPrimitive.Content\n data-slot=\"navigation-menu-content\"\n className={cn(\n 'data-ending-style:data-activation-direction=left:translate-x-[50%] data-ending-style:data-activation-direction=right:translate-x-[-50%] data-starting-style:data-activation-direction=left:translate-x-[-50%] data-starting-style:data-activation-direction=right:translate-x-[50%] h-full w-auto p-1 transition-[opacity,transform,translate] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] group-data-[viewport=false]/navigation-menu:rounded-lg group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:shadow group-data-[viewport=false]/navigation-menu:ring-1 group-data-[viewport=false]/navigation-menu:ring-foreground/10 group-data-[viewport=false]/navigation-menu:duration-300 data-ending-style:opacity-0 data-starting-style:opacity-0 data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 data-[motion^=from-]:animate-in data-[motion^=from-]:fade-in data-[motion^=to-]:animate-out data-[motion^=to-]:fade-out **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none group-data-[viewport=false]/navigation-menu:data-open:animate-in group-data-[viewport=false]/navigation-menu:data-open:fade-in-0 group-data-[viewport=false]/navigation-menu:data-open:zoom-in-95 group-data-[viewport=false]/navigation-menu:data-closed:animate-out group-data-[viewport=false]/navigation-menu:data-closed:fade-out-0 group-data-[viewport=false]/navigation-menu:data-closed:zoom-out-95',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction NavigationMenuPositioner({\n className,\n side = 'bottom',\n sideOffset = 8,\n align = 'start',\n alignOffset = 0,\n ...props\n}: NavigationMenuPrimitive.Positioner.Props) {\n return (\n <NavigationMenuPrimitive.Portal>\n <NavigationMenuPrimitive.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n className={cn(\n 'isolate z-50 h-(--positioner-height) w-(--positioner-width) max-w-(--available-width) transition-[top,left,right,bottom] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] data-instant:transition-none data-[side=bottom]:before:top-[-10px] data-[side=bottom]:before:right-0 data-[side=bottom]:before:left-0',\n className,\n )}\n {...props}\n >\n <NavigationMenuPrimitive.Popup className=\"data-[ending-style]:easing-[ease] xs:w-(--popup-width) relative h-(--popup-height) w-(--popup-width) origin-(--transform-origin) rounded-lg bg-popover text-popover-foreground shadow ring-1 ring-foreground/10 transition-[opacity,transform,width,height,scale,translate] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] outline-none data-ending-style:scale-90 data-ending-style:opacity-0 data-ending-style:duration-150 data-starting-style:scale-90 data-starting-style:opacity-0\">\n <NavigationMenuPrimitive.Viewport className=\"relative size-full overflow-hidden\" />\n </NavigationMenuPrimitive.Popup>\n </NavigationMenuPrimitive.Positioner>\n </NavigationMenuPrimitive.Portal>\n )\n}\n\nfunction NavigationMenuLink({ className, ...props }: NavigationMenuPrimitive.Link.Props) {\n return (\n <NavigationMenuPrimitive.Link\n data-slot=\"navigation-menu-link\"\n className={cn(\n \"flex items-center gap-2 rounded-lg p-2 text-sm transition-all outline-none hover:bg-muted focus:bg-muted focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:outline-1 in-data-[slot=navigation-menu-content]:rounded-md data-active:bg-muted/50 data-active:hover:bg-muted data-active:focus:bg-muted [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction NavigationMenuIndicator({\n className,\n ...props\n}: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.Icon>) {\n return (\n <NavigationMenuPrimitive.Icon\n data-slot=\"navigation-menu-indicator\"\n className={cn(\n 'top-full z-1 flex h-1.5 items-end justify-center overflow-hidden data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:animate-in data-[state=visible]:fade-in',\n className,\n )}\n {...props}\n >\n <div className=\"relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border shadow-md\" />\n </NavigationMenuPrimitive.Icon>\n )\n}\n\nexport {\n NavigationMenu,\n NavigationMenuContent,\n NavigationMenuIndicator,\n NavigationMenuItem,\n NavigationMenuLink,\n NavigationMenuList,\n NavigationMenuTrigger,\n navigationMenuTriggerStyle,\n NavigationMenuPositioner,\n}\n","'use client'\n\nimport * as React from 'react'\nimport { Select as SelectPrimitive } from '@base-ui/react/select'\n\nimport { cn } from '@/lib/utils'\nimport { ChevronDownIcon, CheckIcon, ChevronUpIcon } from 'lucide-react'\n\nconst Select = SelectPrimitive.Root\n\nfunction SelectGroup({ className, ...props }: SelectPrimitive.Group.Props) {\n return (\n <SelectPrimitive.Group\n data-slot=\"select-group\"\n className={cn('scroll-my-1 p-1', className)}\n {...props}\n />\n )\n}\n\nfunction SelectValue({ className, ...props }: SelectPrimitive.Value.Props) {\n return (\n <SelectPrimitive.Value\n data-slot=\"select-value\"\n className={cn('flex flex-1 text-left', className)}\n {...props}\n />\n )\n}\n\nfunction SelectTrigger({\n className,\n size = 'default',\n children,\n ...props\n}: SelectPrimitive.Trigger.Props & {\n size?: 'sm' | 'default'\n}) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n data-size={size}\n className={cn(\n \"flex w-fit items-center justify-between gap-1.5 rounded-lg border border-input bg-background py-2 pr-2 pl-2.5 text-sm whitespace-nowrap transition-colors outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-placeholder:text-muted-foreground data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon\n render={<ChevronDownIcon className=\"pointer-events-none size-4 text-muted-foreground\" />}\n />\n </SelectPrimitive.Trigger>\n )\n}\n\nfunction SelectContent({\n className,\n children,\n side = 'bottom',\n sideOffset = 4,\n align = 'center',\n alignOffset = 0,\n alignItemWithTrigger = true,\n ...props\n}: SelectPrimitive.Popup.Props &\n Pick<\n SelectPrimitive.Positioner.Props,\n 'align' | 'alignOffset' | 'side' | 'sideOffset' | 'alignItemWithTrigger'\n >) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n alignItemWithTrigger={alignItemWithTrigger}\n className=\"isolate z-50\"\n >\n <SelectPrimitive.Popup\n data-slot=\"select-content\"\n data-align-trigger={alignItemWithTrigger}\n className={cn(\n 'relative isolate z-50 max-h-(--available-height) w-(--anchor-width) min-w-36 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[align-trigger=true]:animate-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95',\n className,\n )}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.List>{children}</SelectPrimitive.List>\n <SelectScrollDownButton />\n </SelectPrimitive.Popup>\n </SelectPrimitive.Positioner>\n </SelectPrimitive.Portal>\n )\n}\n\nfunction SelectLabel({ className, ...props }: SelectPrimitive.GroupLabel.Props) {\n return (\n <SelectPrimitive.GroupLabel\n data-slot=\"select-label\"\n className={cn('px-1.5 py-1 text-xs text-muted-foreground', className)}\n {...props}\n />\n )\n}\n\nfunction SelectItem({ className, children, ...props }: SelectPrimitive.Item.Props) {\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(\n \"relative flex w-full cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2\",\n className,\n )}\n {...props}\n >\n <SelectPrimitive.ItemText className=\"flex flex-1 shrink-0 gap-2 whitespace-nowrap\">\n {children}\n </SelectPrimitive.ItemText>\n <SelectPrimitive.ItemIndicator\n render={\n <span className=\"pointer-events-none absolute right-2 flex size-4 items-center justify-center\" />\n }\n >\n <CheckIcon className=\"pointer-events-none\" />\n </SelectPrimitive.ItemIndicator>\n </SelectPrimitive.Item>\n )\n}\n\nfunction SelectSeparator({ className, ...props }: SelectPrimitive.Separator.Props) {\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n className={cn('pointer-events-none -mx-1 my-1 h-px bg-border', className)}\n {...props}\n />\n )\n}\n\nfunction SelectScrollUpButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollUpArrow>) {\n return (\n <SelectPrimitive.ScrollUpArrow\n data-slot=\"select-scroll-up-button\"\n className={cn(\n \"top-0 z-10 flex w-full cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <ChevronUpIcon />\n </SelectPrimitive.ScrollUpArrow>\n )\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownArrow>) {\n return (\n <SelectPrimitive.ScrollDownArrow\n data-slot=\"select-scroll-down-button\"\n className={cn(\n \"bottom-0 z-10 flex w-full cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <ChevronDownIcon />\n </SelectPrimitive.ScrollDownArrow>\n )\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n}\n","'use client'\n\nimport { Separator as SeparatorPrimitive } from '@base-ui/react/separator'\n\nimport { cn } from '@/lib/utils'\n\nfunction Separator({ className, orientation = 'horizontal', ...props }: SeparatorPrimitive.Props) {\n return (\n <SeparatorPrimitive\n data-slot=\"separator\"\n orientation={orientation}\n className={cn(\n 'shrink-0 bg-border data-horizontal:h-px data-horizontal:w-full data-vertical:w-px data-vertical:self-stretch',\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { Separator }\n","import * as React from 'react'\nimport { Dialog as SheetPrimitive } from '@base-ui/react/dialog'\n\nimport { cn } from '@/lib/utils'\nimport { Button } from '@/components/ui/button'\nimport { XIcon } from 'lucide-react'\n\nfunction Sheet({ ...props }: SheetPrimitive.Root.Props) {\n return <SheetPrimitive.Root data-slot=\"sheet\" {...props} />\n}\n\nfunction SheetTrigger({ ...props }: SheetPrimitive.Trigger.Props) {\n return <SheetPrimitive.Trigger data-slot=\"sheet-trigger\" {...props} />\n}\n\nfunction SheetClose({ ...props }: SheetPrimitive.Close.Props) {\n return <SheetPrimitive.Close data-slot=\"sheet-close\" {...props} />\n}\n\nfunction SheetPortal({ ...props }: SheetPrimitive.Portal.Props) {\n return <SheetPrimitive.Portal data-slot=\"sheet-portal\" {...props} />\n}\n\nfunction SheetOverlay({ className, ...props }: SheetPrimitive.Backdrop.Props) {\n return (\n <SheetPrimitive.Backdrop\n data-slot=\"sheet-overlay\"\n className={cn(\n 'fixed inset-0 z-50 bg-black/10 transition-opacity duration-150 data-ending-style:opacity-0 data-starting-style:opacity-0 supports-backdrop-filter:backdrop-blur-xs',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction SheetContent({\n className,\n children,\n side = 'right',\n showCloseButton = true,\n ...props\n}: SheetPrimitive.Popup.Props & {\n side?: 'top' | 'right' | 'bottom' | 'left'\n showCloseButton?: boolean\n}) {\n return (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Popup\n data-slot=\"sheet-content\"\n data-side={side}\n className={cn(\n 'fixed z-50 flex flex-col gap-4 bg-popover bg-clip-padding text-sm text-popover-foreground shadow-lg transition duration-200 ease-in-out data-ending-style:opacity-0 data-starting-style:opacity-0 data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=bottom]:data-ending-style:translate-y-[2.5rem] data-[side=bottom]:data-starting-style:translate-y-[2.5rem] data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=left]:data-ending-style:translate-x-[-2.5rem] data-[side=left]:data-starting-style:translate-x-[-2.5rem] data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=right]:data-ending-style:translate-x-[2.5rem] data-[side=right]:data-starting-style:translate-x-[2.5rem] data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=top]:data-ending-style:translate-y-[-2.5rem] data-[side=top]:data-starting-style:translate-y-[-2.5rem] data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm',\n className,\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <SheetPrimitive.Close\n data-slot=\"sheet-close\"\n render={<Button variant=\"ghost\" className=\"absolute top-3 right-3\" size=\"icon-sm\" />}\n >\n <XIcon />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n )}\n </SheetPrimitive.Popup>\n </SheetPortal>\n )\n}\n\nfunction SheetHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sheet-header\"\n className={cn('flex flex-col gap-0.5 p-4', className)}\n {...props}\n />\n )\n}\n\nfunction SheetFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sheet-footer\"\n className={cn('mt-auto flex flex-col gap-2 p-4', className)}\n {...props}\n />\n )\n}\n\nfunction SheetTitle({ className, ...props }: SheetPrimitive.Title.Props) {\n return (\n <SheetPrimitive.Title\n data-slot=\"sheet-title\"\n className={cn('font-heading text-base font-medium text-foreground', className)}\n {...props}\n />\n )\n}\n\nfunction SheetDescription({ className, ...props }: SheetPrimitive.Description.Props) {\n return (\n <SheetPrimitive.Description\n data-slot=\"sheet-description\"\n className={cn('text-sm text-muted-foreground', className)}\n {...props}\n />\n )\n}\n\nexport {\n Sheet,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n}\n","import * as React from 'react'\n\nconst MOBILE_BREAKPOINT = 768\n\nexport function useIsMobile() {\n const [isMobile, setIsMobile] = React.useState<boolean | undefined>(undefined)\n\n React.useEffect(() => {\n const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`)\n const onChange = () => {\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)\n }\n mql.addEventListener('change', onChange)\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)\n return () => mql.removeEventListener('change', onChange)\n }, [])\n\n return !!isMobile\n}\n","import { cn } from '@/lib/utils'\n\nfunction Skeleton({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"skeleton\"\n className={cn('animate-pulse rounded-md bg-muted', className)}\n {...props}\n />\n )\n}\n\nexport { Skeleton }\n","'use client'\n\nimport { Tooltip as TooltipPrimitive } from '@base-ui/react/tooltip'\n\nimport { cn } from '@/lib/utils'\n\nfunction TooltipProvider({ delay = 0, ...props }: TooltipPrimitive.Provider.Props) {\n return <TooltipPrimitive.Provider data-slot=\"tooltip-provider\" delay={delay} {...props} />\n}\n\nfunction Tooltip({ ...props }: TooltipPrimitive.Root.Props) {\n return <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\n}\n\nfunction TooltipTrigger({ ...props }: TooltipPrimitive.Trigger.Props) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />\n}\n\nfunction TooltipContent({\n className,\n side = 'top',\n sideOffset = 4,\n align = 'center',\n alignOffset = 0,\n children,\n ...props\n}: TooltipPrimitive.Popup.Props &\n Pick<TooltipPrimitive.Positioner.Props, 'align' | 'alignOffset' | 'side' | 'sideOffset'>) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Positioner\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n className=\"isolate z-50\"\n >\n <TooltipPrimitive.Popup\n data-slot=\"tooltip-content\"\n className={cn(\n 'z-50 inline-flex w-fit max-w-xs origin-(--transform-origin) items-center gap-1.5 rounded-md bg-foreground px-3 py-1.5 text-xs text-background has-data-[slot=kbd]:pr-1.5 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 **:data-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-50 **:data-[slot=kbd]:rounded-sm data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95',\n className,\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"z-50 size-2.5 translate-y-[calc(-50%-2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground data-[side=bottom]:top-1 data-[side=inline-end]:top-1/2! data-[side=inline-end]:-left-1 data-[side=inline-end]:-translate-y-1/2 data-[side=inline-start]:top-1/2! data-[side=inline-start]:-right-1 data-[side=inline-start]:-translate-y-1/2 data-[side=left]:top-1/2! data-[side=left]:-right-1 data-[side=left]:-translate-y-1/2 data-[side=right]:top-1/2! data-[side=right]:-left-1 data-[side=right]:-translate-y-1/2 data-[side=top]:-bottom-2.5\" />\n </TooltipPrimitive.Popup>\n </TooltipPrimitive.Positioner>\n </TooltipPrimitive.Portal>\n )\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\n","'use client'\n\nimport * as React from 'react'\nimport { mergeProps } from '@base-ui/react/merge-props'\nimport { useRender } from '@base-ui/react/use-render'\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { useIsMobile } from '@/hooks/use-mobile'\nimport { cn } from '@/lib/utils'\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, TooltipTrigger } from '@/components/ui/tooltip'\nimport { PanelLeftIcon } from 'lucide-react'\n\nconst SIDEBAR_COOKIE_NAME = 'sidebar_state'\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7\nconst SIDEBAR_WIDTH = '16rem'\nconst SIDEBAR_WIDTH_MOBILE = '18rem'\nconst SIDEBAR_WIDTH_ICON = '3rem'\nconst SIDEBAR_KEYBOARD_SHORTCUT = 'b'\n\ntype SidebarContextProps = {\n state: 'expanded' | 'collapsed'\n open: boolean\n setOpen: (open: boolean) => void\n openMobile: boolean\n setOpenMobile: (open: boolean) => void\n isMobile: boolean\n toggleSidebar: () => void\n}\n\nconst SidebarContext = React.createContext<SidebarContextProps | null>(null)\n\nfunction useSidebar() {\n const context = React.useContext(SidebarContext)\n if (!context) {\n throw new Error('useSidebar must be used within a SidebarProvider.')\n }\n\n return context\n}\n\nfunction SidebarProvider({\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n}: React.ComponentProps<'div'> & {\n defaultOpen?: boolean\n open?: boolean\n onOpenChange?: (open: boolean) => void\n}) {\n const isMobile = useIsMobile()\n const [openMobile, setOpenMobile] = React.useState(false)\n\n // This is the internal state of the sidebar.\n // We use openProp and setOpenProp for control from outside the component.\n const [_open, _setOpen] = React.useState(defaultOpen)\n const open = openProp ?? _open\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === 'function' ? value(open) : value\n if (setOpenProp) {\n setOpenProp(openState)\n } else {\n _setOpen(openState)\n }\n\n // This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`\n },\n [setOpenProp, open],\n )\n\n // Helper to toggle the sidebar.\n const toggleSidebar = React.useCallback(() => {\n return isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open)\n }, [isMobile, setOpen, setOpenMobile])\n\n // Adds a keyboard shortcut to toggle the sidebar.\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (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<SidebarContextProps>(\n () => ({\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n }),\n [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar],\n )\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <div\n data-slot=\"sidebar-wrapper\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH,\n '--sidebar-width-icon': SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n className={cn(\n 'group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar',\n className,\n )}\n {...props}\n >\n {children}\n </div>\n </SidebarContext.Provider>\n )\n}\n\nfunction Sidebar({\n side = 'left',\n variant = 'sidebar',\n collapsible = 'offcanvas',\n className,\n children,\n dir,\n ...props\n}: React.ComponentProps<'div'> & {\n side?: 'left' | 'right'\n variant?: 'sidebar' | 'floating' | 'inset'\n collapsible?: 'offcanvas' | 'icon' | 'none'\n}) {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar()\n\n if (collapsible === 'none') {\n return (\n <div\n data-slot=\"sidebar\"\n className={cn(\n 'flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground',\n className,\n )}\n {...props}\n >\n {children}\n </div>\n )\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n dir={dir}\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar\"\n data-mobile=\"true\"\n className=\"w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <SheetHeader className=\"sr-only\">\n <SheetTitle>Sidebar</SheetTitle>\n <SheetDescription>Displays the mobile sidebar.</SheetDescription>\n </SheetHeader>\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n )\n }\n\n return (\n <div\n className=\"group peer hidden text-sidebar-foreground md:block\"\n data-state={state}\n data-collapsible={state === 'collapsed' ? collapsible : ''}\n data-variant={variant}\n data-side={side}\n data-slot=\"sidebar\"\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n data-slot=\"sidebar-gap\"\n className={cn(\n 'relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear',\n 'group-data-[collapsible=offcanvas]:w-0',\n 'group-data-[side=right]:rotate-180',\n variant === 'floating' || variant === 'inset'\n ? 'group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon)',\n )}\n />\n <div\n data-slot=\"sidebar-container\"\n data-side={side}\n className={cn(\n 'fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear data-[side=left]:left-0 data-[side=left]:group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)] data-[side=right]:right-0 data-[side=right]:group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)] md:flex',\n // Adjust the padding for floating and inset variants.\n variant === 'floating' || variant === 'inset'\n ? 'p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l',\n className,\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar-inner\"\n className=\"flex size-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:shadow-sm group-data-[variant=floating]:ring-1 group-data-[variant=floating]:ring-sidebar-border\"\n >\n {children}\n </div>\n </div>\n </div>\n )\n}\n\nfunction SidebarTrigger({ className, onClick, ...props }: React.ComponentProps<typeof Button>) {\n const { toggleSidebar } = useSidebar()\n\n return (\n <Button\n data-sidebar=\"trigger\"\n data-slot=\"sidebar-trigger\"\n variant=\"ghost\"\n size=\"icon-sm\"\n className={cn(className)}\n onClick={(event) => {\n onClick?.(event)\n toggleSidebar()\n }}\n {...props}\n >\n <PanelLeftIcon />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n )\n}\n\nfunction SidebarRail({ className, ...props }: React.ComponentProps<'button'>) {\n const { toggleSidebar } = useSidebar()\n\n return (\n <button\n data-sidebar=\"rail\"\n data-slot=\"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 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:start-1/2 after:w-[2px] hover:after:bg-sidebar-border sm:flex ltr:-translate-x-1/2 rtl:-translate-x-1/2',\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\nfunction SidebarInset({ className, ...props }: React.ComponentProps<'main'>) {\n return (\n <main\n data-slot=\"sidebar-inset\"\n className={cn(\n 'relative flex w-full flex-1 flex-col bg-background md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarInput({ className, ...props }: React.ComponentProps<typeof Input>) {\n return (\n <Input\n data-slot=\"sidebar-input\"\n data-sidebar=\"input\"\n className={cn('h-8 w-full bg-background shadow-none', className)}\n {...props}\n />\n )\n}\n\nfunction SidebarHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-header\"\n data-sidebar=\"header\"\n className={cn('flex flex-col gap-2 p-2', className)}\n {...props}\n />\n )\n}\n\nfunction SidebarFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-footer\"\n data-sidebar=\"footer\"\n className={cn('flex flex-col gap-2 p-2', className)}\n {...props}\n />\n )\n}\n\nfunction SidebarSeparator({ className, ...props }: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"sidebar-separator\"\n data-sidebar=\"separator\"\n className={cn('mx-2 w-auto bg-sidebar-border', className)}\n {...props}\n />\n )\n}\n\nfunction SidebarContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-content\"\n data-sidebar=\"content\"\n className={cn(\n 'no-scrollbar flex min-h-0 flex-1 flex-col gap-0 overflow-auto group-data-[collapsible=icon]:overflow-hidden',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-group\"\n data-sidebar=\"group\"\n className={cn('relative flex w-full min-w-0 flex-col p-2', className)}\n {...props}\n />\n )\n}\n\nfunction SidebarGroupLabel({\n className,\n render,\n ...props\n}: useRender.ComponentProps<'div'> & React.ComponentProps<'div'>) {\n return useRender({\n defaultTagName: 'div',\n props: mergeProps<'div'>(\n {\n className: cn(\n 'flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 ring-sidebar-ring outline-hidden transition-[margin,opacity] duration-200 ease-linear group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0 focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n className,\n ),\n },\n props,\n ),\n render,\n state: {\n slot: 'sidebar-group-label',\n sidebar: 'group-label',\n },\n })\n}\n\nfunction SidebarGroupAction({\n className,\n render,\n ...props\n}: useRender.ComponentProps<'button'> & React.ComponentProps<'button'>) {\n return useRender({\n defaultTagName: 'button',\n props: mergeProps<'button'>(\n {\n className: cn(\n 'absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground ring-sidebar-ring outline-hidden transition-transform group-data-[collapsible=icon]:hidden after:absolute after:-inset-2 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 md:after:hidden [&>svg]:size-4 [&>svg]:shrink-0',\n className,\n ),\n },\n props,\n ),\n render,\n state: {\n slot: 'sidebar-group-action',\n sidebar: 'group-action',\n },\n })\n}\n\nfunction SidebarGroupContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-group-content\"\n data-sidebar=\"group-content\"\n className={cn('w-full text-sm', className)}\n {...props}\n />\n )\n}\n\nfunction SidebarMenu({ className, ...props }: React.ComponentProps<'ul'>) {\n return (\n <ul\n data-slot=\"sidebar-menu\"\n data-sidebar=\"menu\"\n className={cn('flex w-full min-w-0 flex-col gap-0', className)}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuItem({ className, ...props }: React.ComponentProps<'li'>) {\n return (\n <li\n data-slot=\"sidebar-menu-item\"\n data-sidebar=\"menu-item\"\n className={cn('group/menu-item relative', className)}\n {...props}\n />\n )\n}\n\nconst sidebarMenuButtonVariants = cva(\n 'peer/menu-button group/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm ring-sidebar-ring outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:font-medium data-active:text-sidebar-accent-foreground [&_svg]:size-4 [&_svg]:shrink-0 [&>span:last-child]:truncate',\n {\n variants: {\n variant: {\n default: 'hover:bg-sidebar-accent hover:text-sidebar-accent-foreground',\n outline:\n 'bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]',\n },\n size: {\n default: 'h-8 text-sm',\n sm: 'h-7 text-xs',\n lg: 'h-12 text-sm group-data-[collapsible=icon]:p-0!',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n)\n\nfunction SidebarMenuButton({\n render,\n isActive = false,\n variant = 'default',\n size = 'default',\n tooltip,\n className,\n ...props\n}: useRender.ComponentProps<'button'> &\n React.ComponentProps<'button'> & {\n isActive?: boolean\n tooltip?: string | React.ComponentProps<typeof TooltipContent>\n } & VariantProps<typeof sidebarMenuButtonVariants>) {\n const { isMobile, state } = useSidebar()\n const comp = useRender({\n defaultTagName: 'button',\n props: mergeProps<'button'>(\n {\n className: cn(sidebarMenuButtonVariants({ variant, size }), className),\n },\n props,\n ),\n render: !tooltip ? render : <TooltipTrigger render={render} />,\n state: {\n slot: 'sidebar-menu-button',\n sidebar: 'menu-button',\n size,\n active: isActive,\n },\n })\n\n if (!tooltip) {\n return comp\n }\n\n if (typeof tooltip === 'string') {\n tooltip = {\n children: tooltip,\n }\n }\n\n return (\n <Tooltip>\n {comp}\n <TooltipContent\n side=\"right\"\n align=\"center\"\n hidden={state !== 'collapsed' || isMobile}\n {...tooltip}\n />\n </Tooltip>\n )\n}\n\nfunction SidebarMenuAction({\n className,\n render,\n showOnHover = false,\n ...props\n}: useRender.ComponentProps<'button'> &\n React.ComponentProps<'button'> & {\n showOnHover?: boolean\n }) {\n return useRender({\n defaultTagName: 'button',\n props: mergeProps<'button'>(\n {\n className: cn(\n 'absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground ring-sidebar-ring outline-hidden transition-transform group-data-[collapsible=icon]:hidden peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 after:absolute after:-inset-2 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 md:after:hidden [&>svg]:size-4 [&>svg]:shrink-0',\n showOnHover &&\n 'group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 peer-data-active/menu-button:text-sidebar-accent-foreground aria-expanded:opacity-100 md:opacity-0',\n className,\n ),\n },\n props,\n ),\n render,\n state: {\n slot: 'sidebar-menu-action',\n sidebar: 'menu-action',\n },\n })\n}\n\nfunction SidebarMenuBadge({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-menu-badge\"\n data-sidebar=\"menu-badge\"\n className={cn(\n 'pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium text-sidebar-foreground tabular-nums select-none group-data-[collapsible=icon]:hidden peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 peer-data-active/menu-button:text-sidebar-accent-foreground',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuSkeleton({\n className,\n showIcon = false,\n ...props\n}: React.ComponentProps<'div'> & {\n showIcon?: boolean\n}) {\n // Random width between 50 to 90%.\n const [width] = React.useState(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`\n })\n\n return (\n <div\n data-slot=\"sidebar-menu-skeleton\"\n data-sidebar=\"menu-skeleton\"\n className={cn('flex h-8 items-center gap-2 rounded-md px-2', className)}\n {...props}\n >\n {showIcon && <Skeleton className=\"size-4 rounded-md\" data-sidebar=\"menu-skeleton-icon\" />}\n <Skeleton\n className=\"h-4 max-w-(--skeleton-width) flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n '--skeleton-width': width,\n } as React.CSSProperties\n }\n />\n </div>\n )\n}\n\nfunction SidebarMenuSub({ className, ...props }: React.ComponentProps<'ul'>) {\n return (\n <ul\n data-slot=\"sidebar-menu-sub\"\n data-sidebar=\"menu-sub\"\n className={cn(\n 'mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5 group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuSubItem({ className, ...props }: React.ComponentProps<'li'>) {\n return (\n <li\n data-slot=\"sidebar-menu-sub-item\"\n data-sidebar=\"menu-sub-item\"\n className={cn('group/menu-sub-item relative', className)}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuSubButton({\n render,\n size = 'md',\n isActive = false,\n className,\n ...props\n}: useRender.ComponentProps<'a'> &\n React.ComponentProps<'a'> & {\n size?: 'sm' | 'md'\n isActive?: boolean\n }) {\n return useRender({\n defaultTagName: 'a',\n props: mergeProps<'a'>(\n {\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 ring-sidebar-ring outline-hidden group-data-[collapsible=icon]:hidden hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[size=md]:text-sm data-[size=sm]:text-xs data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground',\n className,\n ),\n },\n props,\n ),\n render,\n state: {\n slot: 'sidebar-menu-sub-button',\n sidebar: 'menu-sub-button',\n size,\n active: isActive,\n },\n })\n}\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n}\n","import type { ComponentType } from 'react'\nimport { cn } from '@/lib/utils'\nimport { Button } from '@/components/ui/button'\n\nexport interface EmptyStateAction {\n label: string\n onClick?: () => void\n variant?: 'default' | 'outline' | 'ghost'\n}\n\nexport interface EmptyStateProps {\n icon?: ComponentType<{ className?: string }>\n title: string\n description?: string\n action?: EmptyStateAction\n className?: string\n}\n\nfunction EmptyState({ icon: Icon, title, description, action, className }: EmptyStateProps) {\n return (\n <div\n data-slot=\"empty-state\"\n className={cn('flex flex-col items-center justify-center gap-3 py-16 text-center', className)}\n >\n {Icon && (\n <div className=\"flex h-10 w-10 items-center justify-center rounded-full bg-muted text-muted-foreground\">\n <Icon className=\"size-5\" />\n </div>\n )}\n <div className=\"space-y-1\">\n <p className=\"text-sm font-medium\">{title}</p>\n {description && (\n <p className=\"text-xs text-muted-foreground max-w-[280px]\">{description}</p>\n )}\n </div>\n {action && (\n <Button variant={action.variant ?? 'outline'} size=\"sm\" onClick={action.onClick}>\n {action.label}\n </Button>\n )}\n </div>\n )\n}\n\nexport { EmptyState }\n","import { Slider as SliderPrimitive } from '@base-ui/react/slider'\n\nimport { cn } from '@/lib/utils'\n\nfunction Slider({\n className,\n defaultValue,\n value,\n min = 0,\n max = 100,\n ...props\n}: SliderPrimitive.Root.Props) {\n const _values = Array.isArray(value)\n ? value\n : Array.isArray(defaultValue)\n ? defaultValue\n : [min, max]\n\n return (\n <SliderPrimitive.Root\n className={cn('data-horizontal:w-full data-vertical:h-full', className)}\n data-slot=\"slider\"\n defaultValue={defaultValue}\n value={value}\n min={min}\n max={max}\n thumbAlignment=\"edge\"\n {...props}\n >\n <SliderPrimitive.Control className=\"relative flex w-full touch-none items-center select-none data-disabled:opacity-50 data-vertical:h-full data-vertical:min-h-40 data-vertical:w-auto data-vertical:flex-col\">\n <SliderPrimitive.Track\n data-slot=\"slider-track\"\n className=\"relative grow overflow-hidden rounded-full bg-muted select-none data-horizontal:h-1 data-horizontal:w-full data-vertical:h-full data-vertical:w-1\"\n >\n <SliderPrimitive.Indicator\n data-slot=\"slider-range\"\n className=\"bg-primary select-none data-horizontal:h-full data-vertical:w-full\"\n />\n </SliderPrimitive.Track>\n {Array.from({ length: _values.length }, (_, index) => (\n <SliderPrimitive.Thumb\n data-slot=\"slider-thumb\"\n key={index}\n className=\"relative block size-3 shrink-0 rounded-full border border-ring bg-white ring-ring/50 transition-[color,box-shadow] select-none after:absolute after:-inset-2 hover:ring-3 focus-visible:ring-3 focus-visible:outline-hidden active:ring-3 disabled:pointer-events-none disabled:opacity-50\"\n />\n ))}\n </SliderPrimitive.Control>\n </SliderPrimitive.Root>\n )\n}\n\nexport { Slider }\n","'use client'\n\nimport { Switch as SwitchPrimitive } from '@base-ui/react/switch'\n\nimport { cn } from '@/lib/utils'\n\nfunction Switch({\n className,\n size = 'default',\n ...props\n}: SwitchPrimitive.Root.Props & {\n size?: 'sm' | 'default'\n}) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n data-size={size}\n className={cn(\n 'peer group/switch relative inline-flex shrink-0 items-center rounded-full border border-transparent transition-all outline-none after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-[size=default]:h-[18.4px] data-[size=default]:w-[32px] data-[size=sm]:h-[14px] data-[size=sm]:w-[24px] dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:bg-primary data-unchecked:bg-input dark:data-unchecked:bg-input/80 data-disabled:cursor-not-allowed data-disabled:opacity-50',\n className,\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className=\"pointer-events-none block rounded-full bg-background ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 group-data-[size=default]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=sm]/switch:data-checked:translate-x-[calc(100%-2px)] dark:data-checked:bg-primary-foreground group-data-[size=default]/switch:data-unchecked:translate-x-0 group-data-[size=sm]/switch:data-unchecked:translate-x-0 dark:data-unchecked:bg-foreground\"\n />\n </SwitchPrimitive.Root>\n )\n}\n\nexport { Switch }\n","import * as React from 'react'\n\nimport { cn } from '@/lib/utils'\n\nfunction Table({ className, ...props }: React.ComponentProps<'table'>) {\n return (\n <div data-slot=\"table-container\" className=\"relative w-full overflow-x-auto\">\n <table\n data-slot=\"table\"\n className={cn('w-full caption-bottom text-sm', className)}\n {...props}\n />\n </div>\n )\n}\n\nfunction TableHeader({ className, ...props }: React.ComponentProps<'thead'>) {\n return <thead data-slot=\"table-header\" className={cn('[&_tr]:border-b', className)} {...props} />\n}\n\nfunction TableBody({ className, ...props }: React.ComponentProps<'tbody'>) {\n return (\n <tbody\n data-slot=\"table-body\"\n className={cn('[&_tr:last-child]:border-0', className)}\n {...props}\n />\n )\n}\n\nfunction TableFooter({ className, ...props }: React.ComponentProps<'tfoot'>) {\n return (\n <tfoot\n data-slot=\"table-footer\"\n className={cn('border-t bg-muted/50 font-medium [&>tr]:last:border-b-0', className)}\n {...props}\n />\n )\n}\n\nfunction TableRow({ className, ...props }: React.ComponentProps<'tr'>) {\n return (\n <tr\n data-slot=\"table-row\"\n className={cn(\n 'border-b transition-colors hover:bg-muted/50 has-aria-expanded:bg-muted/50 data-[state=selected]:bg-muted',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction TableHead({ className, ...props }: React.ComponentProps<'th'>) {\n return (\n <th\n data-slot=\"table-head\"\n className={cn(\n 'h-10 px-2 text-left align-middle font-medium whitespace-nowrap text-foreground [&:has([role=checkbox])]:pr-0',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction TableCell({ className, ...props }: React.ComponentProps<'td'>) {\n return (\n <td\n data-slot=\"table-cell\"\n className={cn('p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0', className)}\n {...props}\n />\n )\n}\n\nfunction TableCaption({ className, ...props }: React.ComponentProps<'caption'>) {\n return (\n <caption\n data-slot=\"table-caption\"\n className={cn('mt-4 text-sm text-muted-foreground', className)}\n {...props}\n />\n )\n}\n\nexport { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption }\n","import { Tabs as TabsPrimitive } from '@base-ui/react/tabs'\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { cn } from '@/lib/utils'\n\nfunction Tabs({ className, orientation = 'horizontal', ...props }: TabsPrimitive.Root.Props) {\n return (\n <TabsPrimitive.Root\n data-slot=\"tabs\"\n data-orientation={orientation}\n className={cn('group/tabs flex gap-2 data-horizontal:flex-col', className)}\n {...props}\n />\n )\n}\n\nconst tabsListVariants = cva(\n 'group/tabs-list inline-flex w-fit items-center justify-center rounded-lg p-[3px] text-muted-foreground group-data-horizontal/tabs:h-8 group-data-vertical/tabs:h-fit group-data-vertical/tabs:flex-col data-[variant=line]:rounded-none',\n {\n variants: {\n variant: {\n default: 'bg-muted',\n line: 'gap-1 bg-transparent',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n)\n\nfunction TabsList({\n className,\n variant = 'default',\n ...props\n}: TabsPrimitive.List.Props & VariantProps<typeof tabsListVariants>) {\n return (\n <TabsPrimitive.List\n data-slot=\"tabs-list\"\n data-variant={variant}\n className={cn(tabsListVariants({ variant }), className)}\n {...props}\n />\n )\n}\n\nfunction TabsTrigger({ className, ...props }: TabsPrimitive.Tab.Props) {\n return (\n <TabsPrimitive.Tab\n data-slot=\"tabs-trigger\"\n className={cn(\n \"relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-1.5 py-0.5 text-sm font-medium whitespace-nowrap text-foreground/60 transition-all group-data-vertical/tabs:w-full group-data-vertical/tabs:justify-start hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 has-data-[icon=inline-end]:pr-1 has-data-[icon=inline-start]:pl-1 aria-disabled:pointer-events-none aria-disabled:opacity-50 dark:text-muted-foreground dark:hover:text-foreground group-data-[variant=default]/tabs-list:data-active:shadow-sm group-data-[variant=line]/tabs-list:data-active:shadow-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n 'group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-active:bg-transparent dark:group-data-[variant=line]/tabs-list:data-active:border-transparent dark:group-data-[variant=line]/tabs-list:data-active:bg-transparent',\n 'data-active:bg-background data-active:text-foreground dark:data-active:border-input dark:data-active:bg-input/30 dark:data-active:text-foreground',\n 'after:absolute after:bg-foreground after:opacity-0 after:transition-opacity group-data-horizontal/tabs:after:inset-x-0 group-data-horizontal/tabs:after:bottom-[-5px] group-data-horizontal/tabs:after:h-0.5 group-data-vertical/tabs:after:inset-y-0 group-data-vertical/tabs:after:-right-1 group-data-vertical/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-active:after:opacity-100',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction TabsContent({ className, ...props }: TabsPrimitive.Panel.Props) {\n return (\n <TabsPrimitive.Panel\n data-slot=\"tabs-content\"\n className={cn('flex-1 text-sm outline-none', className)}\n {...props}\n />\n )\n}\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent, tabsListVariants }\n","import { Badge } from '@/components/ui/badge'\nimport { cn } from '@/lib/utils'\n\nexport interface DataPageProps {\n children: React.ReactNode\n className?: string\n style?: React.CSSProperties\n}\n\nexport interface DataPageHeaderProps {\n children?: React.ReactNode\n className?: string\n}\n\nexport interface DataPageTitleBlockProps {\n title?: React.ReactNode\n description?: React.ReactNode\n breadcrumb?: React.ReactNode\n className?: string\n}\n\nexport interface DataPageActionsProps {\n children?: React.ReactNode\n className?: string\n}\n\nexport interface DataPageTabsProps {\n children?: React.ReactNode\n className?: string\n}\n\nexport interface DataPageTabProps {\n active?: boolean\n count?: number\n children: React.ReactNode\n onClick?: () => void\n disabled?: boolean\n className?: string\n}\n\nexport interface DataPageContentProps {\n children?: React.ReactNode\n className?: string\n padding?: 'none' | 'compact' | 'default'\n}\n\nexport interface DataPageGroupProps {\n children?: React.ReactNode\n className?: string\n surface?: 'none' | 'bordered' | 'card'\n}\n\nexport interface DataPageGroupHeaderProps {\n title?: React.ReactNode\n description?: React.ReactNode\n actions?: React.ReactNode\n children?: React.ReactNode\n className?: string\n}\n\nexport interface DataPageGroupToolbarProps {\n children?: React.ReactNode\n className?: string\n}\n\nexport interface DataPageGroupBodyProps {\n children?: React.ReactNode\n className?: string\n}\n\nexport interface DataPageFooterProps {\n children?: React.ReactNode\n className?: string\n}\n\nfunction Root({ children, className, style }: DataPageProps) {\n return (\n <div\n data-slot=\"data-page\"\n className={cn(\n 'designkit-theme h-full min-h-0 flex flex-col bg-background text-foreground',\n className,\n )}\n style={style}\n >\n {children}\n </div>\n )\n}\n\nfunction Header({ children, className }: DataPageHeaderProps) {\n return (\n <header\n data-slot=\"data-page-header\"\n className={cn(\n 'shrink-0 px-[var(--dk-page-padding-x)] pt-[var(--dk-page-padding-y)]',\n className,\n )}\n >\n <div className=\"flex items-center justify-between gap-[var(--dk-panel-gap)]\">\n {children}\n </div>\n </header>\n )\n}\n\nfunction TitleBlock({ title, description, breadcrumb, className }: DataPageTitleBlockProps) {\n if (!title && !description && !breadcrumb) return null\n\n return (\n <div data-slot=\"data-page-title-block\" className={cn('min-w-0 flex-1', className)}>\n {breadcrumb && <div className=\"mb-2 text-xs text-muted-foreground\">{breadcrumb}</div>}\n {title && <h1 className=\"truncate text-xl font-semibold\">{title}</h1>}\n {description && <p className=\"mt-1.5 text-sm text-muted-foreground\">{description}</p>}\n </div>\n )\n}\n\nfunction Actions({ children, className }: DataPageActionsProps) {\n if (!children) return null\n\n return (\n <div\n data-slot=\"data-page-actions\"\n className={cn('flex shrink-0 items-center gap-[calc(var(--dk-panel-gap)*0.5)]', className)}\n >\n {children}\n </div>\n )\n}\n\nfunction Tabs({ children, className }: DataPageTabsProps) {\n if (!children) return null\n\n return (\n <div data-slot=\"data-page-tabs\" className={cn('shrink-0 border-b px-6', className)}>\n <div className=\"flex items-center gap-0 overflow-x-auto\">{children}</div>\n </div>\n )\n}\n\nfunction Tab({ active, count, children, onClick, disabled, className }: DataPageTabProps) {\n return (\n <button\n type=\"button\"\n data-slot=\"data-page-tab\"\n data-active={active ? 'true' : 'false'}\n disabled={disabled}\n onClick={onClick}\n className={cn(\n 'flex h-10 shrink-0 items-center gap-1.5 border-b-2 px-3 text-xs font-medium transition-colors',\n active\n ? 'border-primary text-foreground'\n : 'border-transparent text-muted-foreground hover:border-border hover:text-foreground',\n disabled && 'pointer-events-none opacity-50',\n className,\n )}\n >\n <span>{children}</span>\n {count !== undefined && (\n <Badge variant=\"secondary\" className=\"h-4 px-1.5 py-0 text-[10px]\">\n {count}\n </Badge>\n )}\n </button>\n )\n}\n\nfunction Content({ children, className, padding = 'default' }: DataPageContentProps) {\n return (\n <div\n data-slot=\"data-page-content\"\n className={cn(\n 'min-h-0 flex-1 overflow-auto',\n padding === 'default' &&\n 'px-[var(--dk-page-padding-x)] pb-[var(--dk-page-padding-y)] pt-[var(--dk-page-padding-y)]',\n padding === 'compact' && 'p-[calc(var(--dk-page-padding-y)*0.875)]',\n padding === 'none' && 'p-0',\n className,\n )}\n >\n {children}\n </div>\n )\n}\n\nfunction Group({ children, className, surface = 'none' }: DataPageGroupProps) {\n return (\n <section\n data-slot=\"data-page-group\"\n data-surface={surface}\n className={cn(\n 'min-h-0',\n surface === 'bordered' && 'overflow-hidden rounded-[var(--radius)] border bg-background',\n surface === 'card' &&\n 'overflow-hidden rounded-[var(--radius)] border bg-card text-card-foreground shadow-sm',\n className,\n )}\n >\n {children}\n </section>\n )\n}\n\nfunction GroupHeader({\n title,\n description,\n actions,\n children,\n className,\n}: DataPageGroupHeaderProps) {\n if (!title && !description && !actions && !children) return null\n\n return (\n <div\n data-slot=\"data-page-group-header\"\n className={cn(\n 'flex items-start justify-between gap-4 px-0 pb-[calc(var(--dk-panel-gap)*0.75)]',\n className,\n )}\n >\n <div className=\"min-w-0\">\n {title && <h2 className=\"text-sm font-medium\">{title}</h2>}\n {description && <p className=\"mt-0.5 text-xs text-muted-foreground\">{description}</p>}\n {children}\n </div>\n {actions && <div className=\"flex shrink-0 items-center gap-2\">{actions}</div>}\n </div>\n )\n}\n\nfunction GroupToolbar({ children, className }: DataPageGroupToolbarProps) {\n if (!children) return null\n\n return (\n <div\n data-slot=\"data-page-group-toolbar\"\n className={cn(\n 'flex min-h-[var(--dk-toolbar-height)] items-center justify-between gap-[calc(var(--dk-panel-gap)*0.75)] pb-[calc(var(--dk-panel-gap)*0.75)]',\n className,\n )}\n >\n {children}\n </div>\n )\n}\n\nfunction GroupBody({ children, className }: DataPageGroupBodyProps) {\n return (\n <div data-slot=\"data-page-group-body\" className={cn('min-h-0', className)}>\n {children}\n </div>\n )\n}\n\nfunction Footer({ children, className }: DataPageFooterProps) {\n if (!children) return null\n\n return (\n <footer data-slot=\"data-page-footer\" className={cn('shrink-0 border-t px-6 py-3', className)}>\n {children}\n </footer>\n )\n}\n\nexport const DataPage = Object.assign(Root, {\n Header,\n TitleBlock,\n Actions,\n Tabs,\n Tab,\n Content,\n Group,\n GroupHeader,\n GroupToolbar,\n GroupBody,\n Footer,\n})\n","import { type ReactNode, type CSSProperties, forwardRef } from 'react'\nimport { GripHorizontal } from 'lucide-react'\nimport { cn } from '@/lib/utils'\nimport { DataPage } from '../datapage/DataPage'\n\n// ─── Panel ────────────────────────────────────────────────────────────────────\n\nexport interface DashboardPanelProps {\n title?: string\n description?: string\n loading?: boolean\n error?: string | null\n transparent?: boolean\n /** Edit mode — shows drag handle and grab cursor on the header */\n editable?: boolean\n className?: string\n style?: CSSProperties\n children?: ReactNode\n headerRight?: ReactNode\n}\n\nexport const DashboardPanel = forwardRef<HTMLDivElement, DashboardPanelProps>(function DashboardPanel({\n title,\n description,\n loading,\n error,\n transparent,\n editable,\n className,\n style,\n children,\n headerRight,\n}, ref) {\n return (\n <div\n ref={ref}\n className={cn(\n 'group flex h-full flex-col overflow-hidden',\n transparent ? '' : 'rounded-(--radius) border bg-card text-card-foreground',\n editable && 'ring-1 ring-border/60 ring-inset',\n className,\n )}\n style={style}\n >\n {(title || headerRight || editable) && (\n <div className=\"flex shrink-0 items-center gap-2 pl-3 pr-1.5 py-2\">\n {editable && (\n <div className=\"shrink-0 cursor-grab active:cursor-grabbing select-none text-muted-foreground/40 hover:text-muted-foreground/70 transition-colors -ml-1 px-0.5\">\n <GripHorizontal className=\"h-3.5 w-3.5\" />\n </div>\n )}\n <div className=\"min-w-0 flex-1\">\n {title && (\n <p className=\"truncate text-xs font-medium text-card-foreground\">{title}</p>\n )}\n {description && (\n <p className=\"truncate text-[11px] text-muted-foreground\">{description}</p>\n )}\n </div>\n {headerRight && (\n <div className=\"shrink-0 flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity duration-150\">\n {headerRight}\n </div>\n )}\n </div>\n )}\n\n <div className=\"relative flex-1 min-h-0 p-3\">\n {loading && (\n <div className=\"absolute inset-0 flex items-center justify-center bg-card/70 z-10\">\n <div className=\"h-4 w-4 animate-spin rounded-full border-2 border-primary border-t-transparent\" />\n </div>\n )}\n {error && (\n <div className=\"flex h-full items-center justify-center\">\n <p className=\"text-xs text-destructive\">{error}</p>\n </div>\n )}\n {!error && children}\n </div>\n </div>\n )\n})\n\n// ─── Root ─────────────────────────────────────────────────────────────────────\n\nexport interface DashboardBodyTemplateProps {\n theme?: CSSProperties\n className?: string\n title?: ReactNode\n description?: ReactNode\n topBar?: ReactNode\n toolbar?: ReactNode\n /** Variable bar — rendered as a separate strip between the header and content */\n variableBar?: ReactNode\n children?: ReactNode\n contentClassName?: string\n}\n\nexport function DashboardBodyTemplate({\n theme,\n className,\n title,\n description,\n topBar,\n toolbar,\n variableBar,\n children,\n contentClassName,\n}: DashboardBodyTemplateProps) {\n return (\n <DataPage className={cn('layout-dashboard', className)} style={theme}>\n {topBar && <div className=\"shrink-0\">{topBar}</div>}\n {(title || toolbar) && (\n <header className=\"shrink-0 border-b px-(--dk-page-padding-x) py-(--dk-page-padding-y)\">\n <div className=\"flex flex-wrap items-center justify-between gap-3\">\n <div className=\"min-w-0\">\n {title && (\n <h1 className=\"text-sm font-semibold truncate\">{title}</h1>\n )}\n {description && (\n <p className=\"mt-0.5 text-xs text-muted-foreground\">{description}</p>\n )}\n </div>\n {toolbar && (\n <div className=\"flex items-center gap-2 shrink-0\">{toolbar}</div>\n )}\n </div>\n </header>\n )}\n {variableBar && (\n <div className=\"shrink-0 flex flex-wrap items-center gap-2 px-(--dk-page-padding-x) py-1.5\">\n {variableBar}\n </div>\n )}\n <div className={cn('flex-1 min-h-0 overflow-auto px-[calc(var(--dk-page-padding-x)-0.5rem)] pt-0 pb-(--dk-page-padding-y)', contentClassName)}>\n {children}\n </div>\n </DataPage>\n )\n}\n","import React, { type CSSProperties, type ReactNode, useCallback, useState } from 'react'\nimport { cn } from '@/lib/utils'\nimport { DataPage } from '../datapage/DataPage'\n\ntype ResizeAxis = 'x' | 'y'\n\nexport interface WorkbenchBodyTemplateProps {\n theme?: CSSProperties\n className?: string\n contentClassName?: string\n title?: ReactNode\n description?: ReactNode\n topBar?: ReactNode\n /** Right side of the built-in workbench header. Prefer this over toolbar for new code. */\n headerRight?: ReactNode\n /** @deprecated Use headerRight. */\n toolbar?: ReactNode\n actions?: ReactNode\n leftPane?: ReactNode\n mainPane?: ReactNode\n rightPane?: ReactNode\n bottomPane?: ReactNode\n children?: ReactNode\n resizable?: boolean\n leftPaneCollapsed?: boolean\n rightPaneCollapsed?: boolean\n bottomPaneCollapsed?: boolean\n leftPaneWidth?: number\n rightPaneWidth?: number\n bottomPaneHeight?: number\n minLeftPaneWidth?: number\n maxLeftPaneWidth?: number\n minRightPaneWidth?: number\n maxRightPaneWidth?: number\n minBottomPaneHeight?: number\n maxBottomPaneHeight?: number\n leftPaneClassName?: string\n mainPaneClassName?: string\n rightPaneClassName?: string\n bottomPaneClassName?: string\n}\n\nfunction clamp(value: number, min: number, max: number) {\n return Math.min(Math.max(value, min), max)\n}\n\nfunction ResizeHandle({\n axis,\n onPointerDown,\n className,\n}: {\n axis: ResizeAxis\n onPointerDown: React.PointerEventHandler<HTMLDivElement>\n className?: string\n}) {\n return (\n <div\n role=\"separator\"\n aria-orientation={axis === 'x' ? 'vertical' : 'horizontal'}\n className={cn(\n 'group/resize relative z-10 shrink-0 touch-none bg-transparent',\n axis === 'x' ? '-mx-1 w-2 cursor-col-resize' : '-my-1 h-2 cursor-row-resize',\n className,\n )}\n onPointerDown={onPointerDown}\n >\n <div\n className={cn(\n 'absolute bg-border transition-colors group-hover/resize:bg-muted-foreground/40',\n axis === 'x'\n ? 'left-1/2 top-0 h-full w-px -translate-x-1/2'\n : 'left-0 top-1/2 h-px w-full -translate-y-1/2',\n )}\n />\n <div\n className={cn(\n 'absolute rounded-full bg-muted-foreground/35 opacity-0 transition-opacity group-hover/resize:opacity-100',\n axis === 'x'\n ? 'left-1/2 top-1/2 h-10 w-1 -translate-x-1/2 -translate-y-1/2'\n : 'left-1/2 top-1/2 h-1 w-10 -translate-x-1/2 -translate-y-1/2',\n )}\n />\n </div>\n )\n}\n\nexport function WorkbenchBodyTemplate({\n theme,\n className,\n contentClassName,\n title,\n description,\n topBar,\n headerRight,\n toolbar,\n actions,\n leftPane,\n mainPane,\n rightPane,\n bottomPane,\n children,\n resizable = true,\n leftPaneCollapsed,\n rightPaneCollapsed,\n bottomPaneCollapsed,\n leftPaneWidth = 260,\n rightPaneWidth = 320,\n bottomPaneHeight = 240,\n minLeftPaneWidth = 180,\n maxLeftPaneWidth = 440,\n minRightPaneWidth = 240,\n maxRightPaneWidth = 520,\n minBottomPaneHeight = 120,\n maxBottomPaneHeight = 420,\n leftPaneClassName,\n mainPaneClassName,\n rightPaneClassName,\n bottomPaneClassName,\n}: WorkbenchBodyTemplateProps) {\n const [leftWidth, setLeftWidth] = useState(leftPaneWidth)\n const [rightWidth, setRightWidth] = useState(rightPaneWidth)\n const [bottomHeight, setBottomHeight] = useState(bottomPaneHeight)\n\n const startResize = useCallback((\n event: React.PointerEvent,\n axis: ResizeAxis,\n applyDelta: (delta: number) => void,\n ) => {\n if (!resizable) return\n\n const start = axis === 'x' ? event.clientX : event.clientY\n event.currentTarget.setPointerCapture(event.pointerId)\n\n const previousCursor = document.body.style.cursor\n const previousUserSelect = document.body.style.userSelect\n document.body.style.cursor = axis === 'x' ? 'col-resize' : 'row-resize'\n document.body.style.userSelect = 'none'\n\n const onPointerMove = (moveEvent: PointerEvent) => {\n applyDelta((axis === 'x' ? moveEvent.clientX : moveEvent.clientY) - start)\n }\n\n const onPointerUp = () => {\n document.body.style.cursor = previousCursor\n document.body.style.userSelect = previousUserSelect\n window.removeEventListener('pointermove', onPointerMove)\n window.removeEventListener('pointerup', onPointerUp)\n }\n\n window.addEventListener('pointermove', onPointerMove)\n window.addEventListener('pointerup', onPointerUp, { once: true })\n }, [resizable])\n\n const headerRightContent = headerRight ?? toolbar\n const showHeader = title || description || headerRightContent || actions\n const showLeftPane = leftPane && !leftPaneCollapsed\n const showRightPane = rightPane && !rightPaneCollapsed\n const showBottomPane = bottomPane && !bottomPaneCollapsed\n\n return (\n <DataPage className={cn('layout-workbench', className)} style={theme}>\n {topBar && <div className=\"shrink-0\">{topBar}</div>}\n {showHeader && (\n <header className=\"shrink-0 border-b px-(--dk-page-padding-x) py-[calc(var(--dk-page-padding-y)*0.75)]\">\n <div className=\"flex min-h-[var(--dk-toolbar-height)] items-center justify-between gap-3\">\n <div className=\"min-w-0\">\n {title && <h1 className=\"truncate text-sm font-semibold\">{title}</h1>}\n {description && <p className=\"mt-0.5 truncate text-xs text-muted-foreground\">{description}</p>}\n </div>\n {(headerRightContent || actions) && (\n <div className=\"flex shrink-0 items-center gap-2\">\n {headerRightContent}\n {actions}\n </div>\n )}\n </div>\n </header>\n )}\n <div className={cn('flex min-h-0 flex-1 overflow-hidden', contentClassName)}>\n {showLeftPane && (\n <>\n <aside\n className={cn('min-h-0 shrink-0 overflow-hidden border-r bg-card/45', leftPaneClassName)}\n style={{ width: leftWidth }}\n >\n {leftPane}\n </aside>\n {resizable && (\n <ResizeHandle\n axis=\"x\"\n onPointerDown={(event) => {\n const start = leftWidth\n startResize(event, 'x', (delta) => {\n setLeftWidth(clamp(start + delta, minLeftPaneWidth, maxLeftPaneWidth))\n })\n }}\n />\n )}\n </>\n )}\n <main className={cn('flex min-w-0 flex-1 flex-col overflow-hidden', mainPaneClassName)}>\n <div className=\"min-h-0 flex-1 overflow-hidden\">\n {mainPane ?? children}\n </div>\n {showBottomPane && (\n <>\n {resizable && (\n <ResizeHandle\n axis=\"y\"\n onPointerDown={(event) => {\n const start = bottomHeight\n startResize(event, 'y', (delta) => {\n setBottomHeight(clamp(start - delta, minBottomPaneHeight, maxBottomPaneHeight))\n })\n }}\n />\n )}\n <section\n className={cn('min-h-0 shrink-0 overflow-hidden border-t bg-card/40', bottomPaneClassName)}\n style={{ height: bottomHeight }}\n >\n {bottomPane}\n </section>\n </>\n )}\n </main>\n {showRightPane && (\n <>\n {resizable && (\n <ResizeHandle\n axis=\"x\"\n onPointerDown={(event) => {\n const start = rightWidth\n startResize(event, 'x', (delta) => {\n setRightWidth(clamp(start - delta, minRightPaneWidth, maxRightPaneWidth))\n })\n }}\n />\n )}\n <aside\n className={cn('min-h-0 shrink-0 overflow-hidden border-l bg-card/45', rightPaneClassName)}\n style={{ width: rightWidth }}\n >\n {rightPane}\n </aside>\n </>\n )}\n </div>\n </DataPage>\n )\n}\n","import React, { Children, Fragment, useMemo, useState } from 'react'\nimport { DataPage } from '@/components/templates/datapage/DataPage'\nimport { Card, CardContent } from '@/components/ui/card'\nimport { cn } from '@/lib/utils'\n\n// ─── Tab ──────────────────────────────────────────────────────────────────────\n\nexport interface DataBodyTabProps {\n id: string\n label: React.ReactNode\n count?: number\n disabled?: boolean\n children: React.ReactNode\n}\n\nfunction DataBodyTab(_props: DataBodyTabProps) {\n return null\n}\n\nfunction isDataBodyTab(node: React.ReactNode): node is React.ReactElement<DataBodyTabProps> {\n return Boolean(node && typeof node === 'object' && 'type' in node && node.type === DataBodyTab)\n}\n\n// ─── Body (single pane) ───────────────────────────────────────────────────────\n\nexport interface DataBodyBodyProps {\n children?: React.ReactNode\n className?: string\n}\n\nfunction DataBodyBody(_props: DataBodyBodyProps) {\n return null\n}\n\nfunction isDataBodyBody(node: React.ReactNode): node is React.ReactElement<DataBodyBodyProps> {\n return Boolean(node && typeof node === 'object' && 'type' in node && node.type === DataBodyBody)\n}\n\n// ─── Section ──────────────────────────────────────────────────────────────────\n\nexport interface DataBodySectionProps {\n id: string\n label: React.ReactNode\n description?: React.ReactNode\n disabled?: boolean\n children?: React.ReactNode\n}\n\nfunction DataBodySection(_props: DataBodySectionProps) {\n return null\n}\n\nfunction isDataBodySection(\n node: React.ReactNode,\n): node is React.ReactElement<DataBodySectionProps> {\n return Boolean(\n node && typeof node === 'object' && 'type' in node && node.type === DataBodySection,\n )\n}\n\n// ─── Summary ──────────────────────────────────────────────────────────────────\n\nexport interface DataBodySummaryProps {\n children?: React.ReactNode\n}\n\nfunction DataBodySummary(_props: DataBodySummaryProps) {\n return null\n}\n\nfunction isDataBodySummary(\n node: React.ReactNode,\n): node is React.ReactElement<DataBodySummaryProps> {\n return Boolean(\n node && typeof node === 'object' && 'type' in node && node.type === DataBodySummary,\n )\n}\n\n// ─── Group ────────────────────────────────────────────────────────────────────\n\nexport type GroupLayout = 'stacked' | 'horizontal' | 'inline' | 'split'\nexport type GroupVariant = 'card' | 'plain' | 'bordered'\n\nconst layoutDefaultVariant: Record<GroupLayout, GroupVariant> = {\n stacked: 'plain',\n horizontal: 'card',\n inline: 'bordered',\n split: 'bordered',\n}\n\nexport interface DataBodyGroupProps {\n layout?: GroupLayout\n variant?: GroupVariant\n title?: React.ReactNode\n description?: React.ReactNode\n actions?: React.ReactNode\n danger?: boolean\n className?: string\n children?: React.ReactNode\n}\n\nfunction DataBodyGroup(props: DataBodyGroupProps) {\n return renderGroupProps(props)\n}\n\nfunction isDataBodyGroup(node: React.ReactNode): node is React.ReactElement<DataBodyGroupProps> {\n return Boolean(node && typeof node === 'object' && 'type' in node && node.type === DataBodyGroup)\n}\n\nfunction GroupWrapper({\n layout,\n variant,\n children,\n}: {\n layout: GroupLayout\n variant: GroupVariant\n children: React.ReactNode\n}) {\n if (variant === 'card') {\n return (\n <Card>\n <CardContent className=\"p-(--dk-panel-gap)\">{children}</CardContent>\n </Card>\n )\n }\n if (variant === 'bordered') {\n if (layout === 'inline') {\n return (\n <div className=\"overflow-hidden rounded-(--radius) border divide-y\">{children}</div>\n )\n }\n return <div className=\"rounded-(--radius) border p-(--dk-panel-gap)\">{children}</div>\n }\n return <>{children}</>\n}\n\nfunction renderGroups(nodes: React.ReactNode): React.ReactNode {\n const childArray = Children.toArray(nodes)\n if (!childArray.some(isDataBodyGroup)) return nodes\n return (\n <>\n {childArray.map((child, i) => (\n <Fragment key={i}>{isDataBodyGroup(child) ? renderGroup(child) : child}</Fragment>\n ))}\n </>\n )\n}\n\nfunction renderGroup(group: React.ReactElement<DataBodyGroupProps>) {\n return renderGroupProps(group.props)\n}\n\nfunction renderGroupProps(props: DataBodyGroupProps) {\n const {\n layout = 'stacked',\n variant: variantProp,\n title,\n description,\n actions,\n danger,\n className,\n children,\n } = props\n const variant = variantProp ?? layoutDefaultVariant[layout]\n\n if (layout === 'split') {\n const panes = Children.toArray(children)\n return (\n <div className={cn('py-(--dk-panel-gap)', className)}>\n {(title || description || actions) && (\n <div className=\"mb-3 flex items-start justify-between\">\n <div>\n {title && (\n <h2 className={cn('text-sm font-semibold', danger && 'text-destructive')}>\n {title}\n </h2>\n )}\n {description && <p className=\"mt-0.5 text-xs text-muted-foreground\">{description}</p>}\n </div>\n {actions && <div>{actions}</div>}\n </div>\n )}\n <div className=\"grid min-h-104 gap-(--dk-panel-gap) lg:grid-cols-[20rem_minmax(0,1fr)]\">\n {panes.map((pane, i) => (\n <GroupWrapper key={i} layout={layout} variant={variant}>\n {pane}\n </GroupWrapper>\n ))}\n </div>\n </div>\n )\n }\n\n if (layout === 'horizontal') {\n return (\n <div className={cn('grid grid-cols-3 gap-[calc(var(--dk-panel-gap)*2)] py-(--dk-panel-gap)', className)}>\n <div>\n <p className={cn('text-sm font-medium', danger && 'text-destructive')}>{title}</p>\n {description && <p className=\"mt-1 text-xs text-muted-foreground\">{description}</p>}\n {actions && <div className=\"mt-2\">{actions}</div>}\n </div>\n <div className=\"col-span-2\">\n <GroupWrapper layout={layout} variant={variant}>\n {children}\n </GroupWrapper>\n </div>\n </div>\n )\n }\n\n if (layout === 'inline') {\n return (\n <div className={cn('py-(--dk-panel-gap)', className)}>\n {(title || description) && (\n <div className=\"mb-2 flex items-start justify-between\">\n <div>\n {title && (\n <h2 className={cn('text-sm font-semibold', danger && 'text-destructive')}>\n {title}\n </h2>\n )}\n {description && <p className=\"mt-0.5 text-xs text-muted-foreground\">{description}</p>}\n </div>\n {actions && <div>{actions}</div>}\n </div>\n )}\n <GroupWrapper layout={layout} variant={variant}>\n {children}\n </GroupWrapper>\n </div>\n )\n }\n\n // stacked (default)\n return (\n <div className={cn('py-(--dk-panel-gap)', className)}>\n <div className=\"flex items-start justify-between\">\n <div>\n <h2 className={cn('text-sm font-semibold', danger && 'text-destructive')}>{title}</h2>\n {description && <p className=\"mt-1 text-xs text-muted-foreground\">{description}</p>}\n </div>\n {actions && <div>{actions}</div>}\n </div>\n <div className=\"mt-4\">\n <GroupWrapper layout={layout} variant={variant}>\n {children}\n </GroupWrapper>\n </div>\n </div>\n )\n}\n\n// ─── Field (read-only display) ────────────────────────────────────────────────\n\nexport interface DataBodyFieldProps {\n label: string\n description?: string\n children?: React.ReactNode\n}\n\nfunction DataBodyField({ label, description, children }: DataBodyFieldProps) {\n return (\n <div\n className=\"grid items-start gap-x-4 px-4 py-3\"\n style={{ gridTemplateColumns: 'var(--dk-form-label-w, 11rem) 1fr' }}\n >\n <div className=\"pt-0.5\">\n <span className=\"text-xs text-muted-foreground\">{label}</span>\n {description && <p className=\"mt-0.5 text-xs text-muted-foreground/60\">{description}</p>}\n </div>\n <div className=\"min-w-0 text-sm\">{children}</div>\n </div>\n )\n}\n\n// ─── Row ──────────────────────────────────────────────────────────────────────\n\nexport interface DataBodyRowProps {\n label: string\n description?: string\n required?: boolean\n children?: React.ReactNode\n}\n\nfunction DataBodyRow({ label, description, required, children }: DataBodyRowProps) {\n return (\n <div\n className=\"grid items-start gap-x-4 px-4 py-3\"\n style={{ gridTemplateColumns: 'var(--dk-form-label-w, 11rem) 1fr' }}\n >\n <div className=\"pt-1\">\n <div className=\"flex items-center gap-1\">\n <span className=\"text-sm font-medium\">{label}</span>\n {required && <span className=\"text-destructive text-xs leading-none\">*</span>}\n </div>\n {description && <p className=\"mt-0.5 text-xs text-muted-foreground\">{description}</p>}\n </div>\n <div className={cn('min-w-0', !description && 'flex items-center')}>{children}</div>\n </div>\n )\n}\n\n// ─── Root ─────────────────────────────────────────────────────────────────────\n\nexport interface DataBodyTemplateProps {\n theme?: React.CSSProperties\n className?: string\n topBar?: React.ReactNode\n title?: React.ReactNode\n description?: React.ReactNode\n actions?: React.ReactNode\n toolbarLeft?: React.ReactNode\n toolbarRight?: React.ReactNode\n activeTab?: string\n defaultTab?: string\n onTabChange?: (id: string) => void\n children?: React.ReactNode\n contentClassName?: string\n}\n\nfunction TopBarSlot({ topBar }: { topBar?: React.ReactNode }) {\n if (!topBar) return null\n return <div className=\"shrink-0\">{topBar}</div>\n}\n\nfunction Root({\n theme,\n className,\n topBar,\n title,\n description,\n actions,\n toolbarLeft,\n toolbarRight,\n activeTab: controlledActive,\n defaultTab,\n onTabChange,\n children,\n contentClassName,\n}: DataBodyTemplateProps) {\n const childArray = useMemo(() => Children.toArray(children), [children])\n const tabs = childArray.filter(isDataBodyTab)\n const sections = childArray.filter(isDataBodySection)\n const bodySlots = childArray.filter(isDataBodyBody)\n const summaryEl = childArray.find(isDataBodySummary)\n const bodyChildren = childArray.filter(\n (c) =>\n !isDataBodyTab(c) &&\n !isDataBodySummary(c) &&\n !isDataBodySection(c) &&\n !isDataBodyBody(c),\n )\n\n const hasTabs = tabs.length > 0\n const hasSections = sections.length > 0\n const hasBody = bodySlots.length > 0\n bodyChildren.some(isDataBodyGroup)\n const navItems = hasSections ? sections : tabs\n const [internalActive, setInternalActive] = useState(defaultTab ?? navItems[0]?.props.id ?? '')\n const activeId = controlledActive ?? internalActive\n const handleChange = (id: string) => {\n if (controlledActive === undefined) setInternalActive(id)\n onTabChange?.(id)\n }\n\n // ── Single-pane body layout ───────────────────────────────────────────────\n if (hasBody) {\n const bodyEl = bodySlots[0]\n return (\n <DataPage className={cn('layout-databody', className)} style={theme}>\n <TopBarSlot topBar={topBar} />\n <DataPage.Header>\n <DataPage.TitleBlock title={title} description={description} />\n <DataPage.Actions>{actions}</DataPage.Actions>\n </DataPage.Header>\n\n {summaryEl && (\n <div className=\"shrink-0 border-b px-(--dk-page-padding-x) py-(--dk-panel-gap)\">\n {summaryEl.props.children}\n </div>\n )}\n\n <DataPage.Content className={contentClassName}>\n <DataPage.Group className=\"h-full\">\n <DataPage.GroupBody className={cn('h-full', bodyEl.props.className)}>\n {bodyEl.props.children}\n </DataPage.GroupBody>\n </DataPage.Group>\n </DataPage.Content>\n </DataPage>\n )\n }\n\n // ── Sectioned layout (left nav) ───────────────────────────────────────────\n if (hasSections) {\n const activeSection = sections.find((s) => s.props.id === activeId) ?? sections[0]\n return (\n <DataPage className={cn('layout-sectioned', className)} style={theme}>\n <TopBarSlot topBar={topBar} />\n <DataPage.Header>\n <DataPage.TitleBlock title={title} description={description} />\n <DataPage.Actions>{actions}</DataPage.Actions>\n </DataPage.Header>\n\n {summaryEl && (\n <div className=\"shrink-0 border-b px-(--dk-page-padding-x) py-(--dk-panel-gap)\">\n {summaryEl.props.children}\n </div>\n )}\n\n <DataPage.Content className={contentClassName}>\n <div className=\"grid gap-(--dk-panel-gap) lg:grid-cols-[16rem_minmax(0,1fr)]\">\n <nav className=\"space-y-1\">\n {sections.map((section) => {\n const active = section.props.id === activeSection?.props.id\n return (\n <button\n key={section.props.id}\n type=\"button\"\n disabled={section.props.disabled}\n className={cn(\n 'block w-full rounded-(--radius) px-3 py-2 text-left transition-colors',\n active ? 'bg-accent text-accent-foreground' : 'hover:bg-muted',\n section.props.disabled && 'pointer-events-none opacity-50',\n )}\n onClick={() => handleChange(section.props.id)}\n >\n <span className=\"block text-sm font-medium\">{section.props.label}</span>\n {section.props.description && (\n <span className=\"mt-0.5 block text-xs text-muted-foreground\">\n {section.props.description}\n </span>\n )}\n </button>\n )\n })}\n </nav>\n <div className=\"min-w-0 space-y-(--dk-panel-gap)\">\n {renderGroups(activeSection?.props.children)}\n </div>\n </div>\n </DataPage.Content>\n </DataPage>\n )\n }\n\n // ── Tabbed / plain layout ─────────────────────────────────────────────────\n const activeTabNode = tabs.find((tab) => tab.props.id === activeId) ?? tabs[0]\n\n return (\n <DataPage className={cn('layout-databody', className)} style={theme}>\n <TopBarSlot topBar={topBar} />\n <DataPage.Header>\n <DataPage.TitleBlock title={title} description={description} />\n <DataPage.Actions>{actions}</DataPage.Actions>\n </DataPage.Header>\n\n {summaryEl && (\n <div className=\"shrink-0 border-b px-(--dk-page-padding-x) py-(--dk-panel-gap)\">\n {summaryEl.props.children}\n </div>\n )}\n\n {hasTabs && (\n <DataPage.Tabs>\n {tabs.map((tab) => (\n <DataPage.Tab\n key={tab.props.id}\n active={tab.props.id === activeTabNode?.props.id}\n count={tab.props.count}\n disabled={tab.props.disabled}\n onClick={() => handleChange(tab.props.id)}\n >\n {tab.props.label}\n </DataPage.Tab>\n ))}\n </DataPage.Tabs>\n )}\n\n <DataPage.Content className={contentClassName}>\n {(toolbarLeft || toolbarRight) && (\n <DataPage.GroupToolbar>\n <div className=\"flex min-w-0 items-center gap-2\">{toolbarLeft}</div>\n <DataPage.Actions>{toolbarRight}</DataPage.Actions>\n </DataPage.GroupToolbar>\n )}\n {hasTabs ? (\n <DataPage.GroupBody className=\"min-h-full\">\n {renderGroups(activeTabNode?.props.children)}\n </DataPage.GroupBody>\n ) : (\n <DataPage.GroupBody>\n {bodyChildren.map((child, i) => (\n <Fragment key={i}>{isDataBodyGroup(child) ? renderGroup(child) : child}</Fragment>\n ))}\n </DataPage.GroupBody>\n )}\n </DataPage.Content>\n </DataPage>\n )\n}\n\nexport const DataBodyTemplate = Object.assign(Root, {\n Body: DataBodyBody,\n Tab: DataBodyTab,\n Section: DataBodySection,\n Summary: DataBodySummary,\n Group: DataBodyGroup,\n Row: DataBodyRow,\n Field: DataBodyField,\n})\n","import React, { useEffect, useState } from 'react'\nimport { DataPage } from '@/components/templates/datapage/DataPage'\nimport {\n Sheet,\n SheetContent,\n SheetHeader,\n SheetTitle,\n SheetTrigger,\n} from '@/components/ui/sheet'\nimport { ScrollArea } from '@/components/ui/scroll-area'\nimport { Button } from '@/components/ui/button'\nimport { SlidersHorizontal } from 'lucide-react'\nimport { cn } from '@/lib/utils'\n\n// Matches Tailwind's lg breakpoint (1024px) used for layout switching\nfunction useIsNarrow() {\n const [narrow, setNarrow] = useState(false)\n useEffect(() => {\n const mql = window.matchMedia('(max-width: 1023px)')\n setNarrow(mql.matches)\n const handler = (e: MediaQueryListEvent) => setNarrow(e.matches)\n mql.addEventListener('change', handler)\n return () => mql.removeEventListener('change', handler)\n }, [])\n return narrow\n}\n\nexport interface BrowseBodyTemplateProps {\n theme?: React.CSSProperties\n className?: string\n topBar?: React.ReactNode\n title?: React.ReactNode\n description?: React.ReactNode\n actions?: React.ReactNode\n sidebar: React.ReactNode\n sidebarTitle?: string\n sidebarWidth?: string\n toolbar?: React.ReactNode\n footer?: React.ReactNode\n contentClassName?: string\n children?: React.ReactNode\n}\n\nexport function BrowseBodyTemplate({\n theme,\n className,\n topBar,\n title,\n description,\n actions,\n sidebar,\n sidebarTitle = 'Filters',\n sidebarWidth = '18rem',\n toolbar,\n footer,\n contentClassName,\n children,\n}: BrowseBodyTemplateProps) {\n const isNarrow = useIsNarrow()\n const hasHeader = title || description || actions\n\n return (\n <DataPage className={cn('layout-browse', className)} style={theme}>\n {topBar && <div className=\"shrink-0\">{topBar}</div>}\n\n {hasHeader && (\n <DataPage.Header>\n <DataPage.TitleBlock title={title} description={description} />\n <DataPage.Actions>{actions}</DataPage.Actions>\n </DataPage.Header>\n )}\n\n <DataPage.Content padding=\"none\" className=\"flex flex-col overflow-hidden\">\n {/* Toolbar row */}\n {(toolbar || isNarrow) && (\n <div className=\"flex shrink-0 items-center gap-2 border-b px-(--dk-page-padding-x) py-2\">\n {isNarrow && (\n <Sheet>\n <SheetTrigger\n render={<Button variant=\"outline\" size=\"sm\" className=\"shrink-0 gap-1.5\" />}\n >\n <SlidersHorizontal className=\"h-3.5 w-3.5\" />\n {sidebarTitle}\n </SheetTrigger>\n <SheetContent side=\"left\" className=\"flex flex-col gap-0 p-0\">\n <SheetHeader className=\"shrink-0 border-b px-4 py-3\">\n <SheetTitle>{sidebarTitle}</SheetTitle>\n </SheetHeader>\n <ScrollArea className=\"flex-1\">\n <div className=\"p-4\">{sidebar}</div>\n </ScrollArea>\n </SheetContent>\n </Sheet>\n )}\n {toolbar && (\n <div className=\"flex min-w-0 flex-1 items-center gap-2\">{toolbar}</div>\n )}\n </div>\n )}\n\n {/* Content: sidebar (desktop) + main */}\n <div className=\"flex min-h-0 flex-1 overflow-hidden\">\n {!isNarrow && (\n <aside\n className=\"shrink-0 overflow-hidden border-r\"\n style={{ width: sidebarWidth }}\n >\n <ScrollArea className=\"h-full\">\n <div className=\"px-(--dk-page-padding-x) py-(--dk-page-padding-y)\">\n {sidebar}\n </div>\n </ScrollArea>\n </aside>\n )}\n <div\n className={cn(\n 'min-w-0 flex-1 overflow-hidden px-(--dk-page-padding-x) py-(--dk-page-padding-y)',\n '[&_.gridkit-shell]:h-full [&_.gridkit-table-stack]:flex-1 [&_.gridkit-table-stack]:min-h-0',\n '[&_.gridkit-frame]:flex-1 [&_.gridkit-frame]:min-h-0 [&_.gridkit-frame]:overflow-auto',\n contentClassName,\n )}\n >\n {children}\n </div>\n </div>\n </DataPage.Content>\n\n {footer && <DataPage.Footer>{footer}</DataPage.Footer>}\n </DataPage>\n )\n}\n","import React, { Children, Fragment, useMemo, useState } from 'react'\nimport { DataPage } from '@/components/templates/datapage/DataPage'\nimport { cn } from '@/lib/utils'\n\nexport type DetailBodyVariant = 'media' | 'record' | 'full'\n\nexport interface DetailBodyTemplateProps {\n variant?: DetailBodyVariant\n theme?: React.CSSProperties\n className?: string\n topBar?: React.ReactNode\n header?: React.ReactNode\n lead?: React.ReactNode\n eyebrow?: React.ReactNode\n title?: React.ReactNode\n description?: React.ReactNode\n status?: React.ReactNode\n actions?: React.ReactNode\n media?: React.ReactNode\n aside?: React.ReactNode\n summary?: React.ReactNode\n stickyAside?: boolean\n contentClassName?: string\n mediaClassName?: string\n asideClassName?: string\n children?: React.ReactNode\n}\n\nexport interface DetailBodyHeaderProps {\n eyebrow?: React.ReactNode\n title?: React.ReactNode\n description?: React.ReactNode\n status?: React.ReactNode\n actions?: React.ReactNode\n compact?: boolean\n className?: string\n}\n\nfunction DetailBodyHeader({\n eyebrow,\n title,\n description,\n status,\n actions,\n compact,\n className,\n}: DetailBodyHeaderProps) {\n return (\n <DataPage.Header className={className}>\n <div className=\"min-w-0\">\n {eyebrow && (\n <div className=\"mb-1 text-[11px] font-medium uppercase tracking-wider text-muted-foreground\">\n {eyebrow}\n </div>\n )}\n <div className=\"flex min-w-0 flex-wrap items-center gap-2\">\n {title && (\n <h1 className={cn('min-w-0 truncate font-semibold', compact ? 'text-base' : 'text-lg')}>\n {title}\n </h1>\n )}\n {status && <div className=\"shrink-0\">{status}</div>}\n </div>\n {description && <p className=\"mt-1 text-sm text-muted-foreground\">{description}</p>}\n </div>\n <DataPage.Actions>{actions}</DataPage.Actions>\n </DataPage.Header>\n )\n}\n\nexport interface DetailBodyTabProps {\n id: string\n label: React.ReactNode\n count?: number\n disabled?: boolean\n children?: React.ReactNode\n}\n\nfunction DetailBodyTab(_props: DetailBodyTabProps) {\n return null\n}\n\nfunction isDetailBodyTab(node: React.ReactNode): node is React.ReactElement<DetailBodyTabProps> {\n return Boolean(node && typeof node === 'object' && 'type' in node && node.type === DetailBodyTab)\n}\n\nexport interface DetailBodySectionProps {\n title?: React.ReactNode\n description?: React.ReactNode\n actions?: React.ReactNode\n surface?: 'plain' | 'card' | 'bordered'\n className?: string\n children?: React.ReactNode\n}\n\nfunction DetailBodySection({\n title,\n description,\n actions,\n surface = 'plain',\n className,\n children,\n}: DetailBodySectionProps) {\n return (\n <section\n className={cn(\n 'min-h-0',\n surface === 'card' && 'rounded-(--radius) border bg-card p-(--dk-panel-gap) text-card-foreground shadow-sm',\n surface === 'bordered' && 'rounded-(--radius) border p-(--dk-panel-gap)',\n className,\n )}\n >\n {(title || description || actions) && (\n <div className=\"mb-3 flex items-start justify-between gap-3\">\n <div className=\"min-w-0\">\n {title && <h2 className=\"text-sm font-semibold\">{title}</h2>}\n {description && <p className=\"mt-0.5 text-xs text-muted-foreground\">{description}</p>}\n </div>\n {actions && <div className=\"shrink-0\">{actions}</div>}\n </div>\n )}\n {children}\n </section>\n )\n}\n\nfunction renderChildren(nodes: React.ReactNode) {\n return Children.toArray(nodes).map((child, i) => (\n <Fragment key={i}>{child}</Fragment>\n ))\n}\n\nfunction DetailBodyTemplateRoot({\n variant = 'record',\n theme,\n className,\n topBar,\n header,\n lead,\n eyebrow,\n title,\n description,\n status,\n actions,\n media,\n aside,\n summary,\n stickyAside = true,\n contentClassName,\n mediaClassName,\n asideClassName,\n children,\n}: DetailBodyTemplateProps) {\n const childArray = useMemo(() => Children.toArray(children), [children])\n const tabs = childArray.filter(isDetailBodyTab)\n const hasTabs = tabs.length > 0\n const [activeTab, setActiveTab] = useState(() => tabs[0]?.props.id ?? '')\n const selectedTab = tabs.find((tab) => tab.props.id === activeTab) ?? tabs[0]\n const summarySlot = summary ? (\n <div className=\"min-h-0 rounded-(--radius) border bg-card p-(--dk-panel-gap) text-card-foreground\">\n {summary}\n </div>\n ) : null\n const mediaSlot = media ? (\n <div className={cn('min-h-0 overflow-hidden rounded-(--radius) border bg-card', mediaClassName)}>\n {media}\n </div>\n ) : null\n const leadGridClass = variant === 'media'\n ? 'xl:grid-cols-[minmax(0,1.35fr)_minmax(18rem,0.65fr)]'\n : 'xl:grid-cols-2'\n const defaultHeader = (eyebrow || title || description || status || actions)\n ? (\n <DetailBodyHeader\n eyebrow={eyebrow}\n title={title}\n description={description}\n status={status}\n actions={actions}\n />\n )\n : null\n const defaultLead = (media || summary)\n ? (\n <div className={cn('grid gap-(--dk-panel-gap)', leadGridClass)}>\n {mediaSlot}\n {summarySlot}\n </div>\n )\n : null\n const body = hasTabs ? (\n <div className=\"min-h-0\">\n <DataPage.Tabs>\n {tabs.map((tab) => (\n <DataPage.Tab\n key={tab.props.id}\n active={(selectedTab?.props.id ?? '') === tab.props.id}\n count={tab.props.count}\n disabled={tab.props.disabled}\n onClick={() => setActiveTab(tab.props.id)}\n >\n {tab.props.label}\n </DataPage.Tab>\n ))}\n </DataPage.Tabs>\n <div className=\"pt-(--dk-panel-gap)\">\n {selectedTab?.props.children}\n </div>\n </div>\n ) : (\n <div className=\"space-y-(--dk-panel-gap)\">\n {renderChildren(children)}\n </div>\n )\n const leadSlot = lead ?? defaultLead\n const outsideAsideSlot = variant === 'full' ? null : aside\n const insideAsideSlot = variant === 'full' ? aside : null\n const hasRecordInspector = Boolean(leadSlot)\n const hasFullLeadArea = Boolean(leadSlot || insideAsideSlot)\n\n const layout = {\n media: (\n <>\n {leadSlot && <div className=\"mb-(--dk-panel-gap)\">{leadSlot}</div>}\n {body}\n </>\n ),\n record: (\n <div\n className={cn(\n 'grid gap-(--dk-panel-gap)',\n hasRecordInspector && 'xl:grid-cols-[minmax(28rem,1fr)_minmax(14rem,18rem)]',\n )}\n >\n <div className=\"min-w-0\">{body}</div>\n {hasRecordInspector && (\n <div className=\"space-y-(--dk-panel-gap)\">\n {leadSlot}\n </div>\n )}\n </div>\n ),\n full: (\n <>\n {hasFullLeadArea && (\n <div\n className={cn(\n 'mb-(--dk-panel-gap) grid gap-(--dk-panel-gap)',\n insideAsideSlot && 'xl:grid-cols-[minmax(0,1fr)_minmax(18rem,24rem)]',\n )}\n >\n {leadSlot && <div className=\"space-y-(--dk-panel-gap)\">{leadSlot}</div>}\n {insideAsideSlot && (\n <div className={cn('min-h-0 rounded-(--radius) border bg-card p-(--dk-panel-gap)', asideClassName)}>\n {insideAsideSlot}\n </div>\n )}\n </div>\n )}\n {body}\n </>\n ),\n } satisfies Record<DetailBodyVariant, React.ReactNode>\n\n return (\n <DataPage className={cn('layout-detail', className)} style={theme} data-detail-variant={variant}>\n {topBar && <div className=\"shrink-0\">{topBar}</div>}\n {header ?? defaultHeader}\n\n <DataPage.Content padding=\"none\" className=\"overflow-hidden\">\n <div\n className={cn(\n 'grid h-full min-h-0 grid-cols-1 overflow-hidden',\n outsideAsideSlot && 'lg:grid-cols-[minmax(0,1fr)_minmax(18rem,24rem)]',\n )}\n >\n <main\n className={cn(\n 'min-h-0 overflow-auto px-(--dk-page-padding-x) py-(--dk-page-padding-y)',\n contentClassName,\n )}\n >\n {layout[variant]}\n </main>\n\n {outsideAsideSlot && (\n <aside className={cn('min-h-0 border-t bg-background lg:border-l lg:border-t-0', asideClassName)}>\n <div\n className={cn(\n 'px-(--dk-page-padding-x) py-(--dk-page-padding-y)',\n stickyAside && 'lg:sticky lg:top-0',\n )}\n >\n {outsideAsideSlot}\n </div>\n </aside>\n )}\n </div>\n </DataPage.Content>\n </DataPage>\n )\n}\n\nexport const DetailBodyTemplate = Object.assign(DetailBodyTemplateRoot, {\n Header: DetailBodyHeader,\n Tab: DetailBodyTab,\n Section: DetailBodySection,\n})\n","import type { CSSProperties, ReactNode } from 'react'\nimport { cn } from '@/lib/utils'\nimport { DataPage } from '../datapage/DataPage'\n\nexport interface ListDetailBodyTemplateProps {\n theme?: CSSProperties\n className?: string\n topBar?: ReactNode\n /** List pane content — typically a DataGrid, DataGridList, or navigation list */\n list: ReactNode\n /**\n * Detail pane content. When undefined, `emptyDetail` is shown on desktop\n * and the list pane fills the screen on mobile.\n */\n detail?: ReactNode\n /** Placeholder rendered in the detail pane when nothing is selected */\n emptyDetail?: ReactNode\n /** Width of the list pane in px. Default: 320 */\n listWidth?: number\n listClassName?: string\n detailClassName?: string\n}\n\nexport function ListDetailBodyTemplate({\n theme,\n className,\n topBar,\n list,\n detail,\n emptyDetail,\n listWidth = 320,\n listClassName,\n detailClassName,\n}: ListDetailBodyTemplateProps) {\n return (\n <DataPage\n className={cn('layout-list-detail', className)}\n style={{ '--ld-list-width': `${listWidth}px`, ...theme } as CSSProperties}\n >\n {topBar && <div className=\"shrink-0\">{topBar}</div>}\n <div className=\"flex min-h-0 flex-1 overflow-hidden\">\n <aside\n className={cn(\n 'min-h-0 shrink-0 overflow-hidden border-r',\n detail\n ? 'hidden lg:flex lg:w-[var(--ld-list-width)] lg:flex-col'\n : 'flex w-full flex-col lg:w-[var(--ld-list-width)]',\n listClassName,\n )}\n >\n {list}\n </aside>\n <main\n className={cn(\n 'min-h-0 min-w-0 flex-1 overflow-auto',\n !detail && 'hidden lg:block',\n detailClassName,\n )}\n >\n {detail ?? emptyDetail}\n </main>\n </div>\n </DataPage>\n )\n}\n","import { Fragment } from 'react'\nimport { Check } from 'lucide-react'\nimport { cn } from '@/lib/utils'\nimport { DataPage } from '@/components/templates/datapage/DataPage'\nimport { Button } from '@/components/ui/button'\nimport { Card, CardContent } from '@/components/ui/card'\n\nexport type FormWizardVariant = 'card' | 'plain'\n\nexport interface FormWizardStep {\n key: string\n title: string\n description?: string\n content: React.ReactNode\n}\n\nexport interface FormWizardBodyTemplateProps {\n theme?: React.CSSProperties\n title?: string\n topBar?: React.ReactNode\n variant?: FormWizardVariant\n steps: FormWizardStep[]\n activeStep: number\n onNext?: () => void\n onBack?: () => void\n onFinish?: () => void\n}\n\nexport function FormWizardBodyTemplate({\n theme,\n title,\n topBar,\n variant = 'plain',\n steps,\n activeStep,\n onNext,\n onBack,\n onFinish,\n}: FormWizardBodyTemplateProps) {\n const current = steps[activeStep]\n const isLast = activeStep === steps.length - 1\n\n function handleStepSubmit(e: React.FormEvent<HTMLFormElement>) {\n e.preventDefault()\n if (isLast) onFinish?.()\n else onNext?.()\n }\n\n return (\n <DataPage className=\"layout-form-wizard\" style={theme}>\n {topBar && <div className=\"shrink-0\">{topBar}</div>}\n <DataPage.Header>\n <DataPage.TitleBlock title={title} />\n </DataPage.Header>\n\n {/* Step indicator */}\n <div className=\"shrink-0 px-(--dk-page-padding-x) pb-4\">\n <div className=\"flex items-center\">\n {steps.map((step, i) => (\n <Fragment key={step.key}>\n {i > 0 && (\n <div\n className={cn(\n 'mx-3 h-px flex-1',\n i <= activeStep ? 'bg-primary/50' : 'bg-border',\n )}\n />\n )}\n <div className=\"flex items-center gap-2\">\n <div\n className={cn(\n 'flex h-6 w-6 shrink-0 items-center justify-center rounded-full text-xs font-medium transition-colors',\n i < activeStep\n ? 'bg-primary text-primary-foreground'\n : i === activeStep\n ? 'bg-primary text-primary-foreground ring-2 ring-primary/30 ring-offset-1'\n : 'bg-muted text-muted-foreground',\n )}\n >\n {i < activeStep ? <Check className=\"h-3 w-3\" /> : i + 1}\n </div>\n <span\n className={cn(\n 'hidden text-xs font-medium sm:block',\n i === activeStep ? 'text-foreground' : 'text-muted-foreground',\n )}\n >\n {step.title}\n </span>\n </div>\n </Fragment>\n ))}\n </div>\n </div>\n\n <DataPage.Content>\n {current && (\n variant === 'card' ? (\n <Card>\n <CardContent className=\"p-(--dk-panel-gap)\">\n <form id={current.key} onSubmit={handleStepSubmit}>\n <div className=\"mb-5\">\n <h2 className=\"text-sm font-semibold\">{current.title}</h2>\n {current.description && (\n <p className=\"mt-1 text-xs text-muted-foreground\">{current.description}</p>\n )}\n </div>\n {current.content}\n </form>\n </CardContent>\n </Card>\n ) : (\n <form id={current.key} onSubmit={handleStepSubmit}>\n <div className=\"mb-5\">\n <h2 className=\"text-sm font-semibold\">{current.title}</h2>\n {current.description && (\n <p className=\"mt-1 text-xs text-muted-foreground\">{current.description}</p>\n )}\n </div>\n {current.content}\n </form>\n )\n )}\n </DataPage.Content>\n\n <DataPage.Footer>\n <div className=\"flex items-center justify-between\">\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"h-8 text-xs\"\n onClick={onBack}\n disabled={activeStep === 0}\n >\n Back\n </Button>\n <div className=\"flex items-center gap-3\">\n <span className=\"text-xs text-muted-foreground\">\n Step {activeStep + 1} of {steps.length}\n </span>\n <Button type=\"submit\" form={current?.key} size=\"sm\" className=\"h-8 text-xs\">\n {isLast ? 'Finish' : 'Continue'}\n </Button>\n </div>\n </div>\n </DataPage.Footer>\n </DataPage>\n )\n}\n","import { DataPage } from '@/components/templates/datapage/DataPage'\nimport { Badge } from '@/components/ui/badge'\nimport { Button } from '@/components/ui/button'\nimport { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'\nimport { Input } from '@/components/ui/input'\nimport { Separator } from '@/components/ui/separator'\n\nexport interface TypographyBodyTemplateProps {\n theme?: React.CSSProperties\n breadcrumb?: React.ReactNode\n}\n\nconst scaleRows = [\n { label: 'Page title', className: 'text-xl font-semibold', sample: 'Customer Operations' },\n { label: 'Section title', className: 'text-base font-medium', sample: 'Service Health' },\n {\n label: 'Body',\n className: 'text-sm',\n sample: 'Review active incidents, service status, and recent deployments.',\n },\n { label: 'Caption', className: 'text-xs text-muted-foreground', sample: 'Updated 4 minutes ago' },\n]\n\nexport function TypographyBodyTemplate({ theme, breadcrumb }: TypographyBodyTemplateProps) {\n return (\n <DataPage className=\"layout-typography\" style={theme}>\n <DataPage.Header>\n <DataPage.TitleBlock\n breadcrumb={breadcrumb}\n title=\"Typography\"\n description=\"Global type scale preview for shell, template, and grid content\"\n />\n </DataPage.Header>\n\n <DataPage.Content className=\"grid gap-[var(--dk-panel-gap)] lg:grid-cols-[1fr_22rem]\">\n <div className=\"space-y-[var(--dk-panel-gap)]\">\n <Card className=\"rounded-lg border border-border ring-0\">\n <CardHeader>\n <CardTitle>Type Scale</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n {scaleRows.map((row) => (\n <div key={row.label} className=\"grid grid-cols-[8rem_1fr] items-baseline gap-4\">\n <span className=\"text-xs text-muted-foreground\">{row.label}</span>\n <p className={row.className}>{row.sample}</p>\n </div>\n ))}\n </CardContent>\n </Card>\n\n <Card className=\"rounded-lg border border-border ring-0\">\n <CardHeader>\n <CardTitle>Dense Interface</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n <div className=\"flex items-center gap-2\">\n <Input className=\"h-8 max-w-64 text-sm\" value=\"Search deployments\" readOnly />\n <Button size=\"sm\" className=\"h-8 text-xs\">\n Apply\n </Button>\n <Button variant=\"outline\" size=\"sm\" className=\"h-8 text-xs\">\n Reset\n </Button>\n </div>\n <Separator />\n <div className=\"grid gap-2\">\n {['API Gateway', 'Billing Worker', 'Notification Queue'].map((item, index) => (\n <div\n key={item}\n className=\"flex items-center justify-between rounded-lg border px-3 py-2\"\n >\n <div>\n <p className=\"text-sm font-medium\">{item}</p>\n <p className=\"text-xs text-muted-foreground\">\n p95 latency {42 + index * 18}ms\n </p>\n </div>\n <Badge variant={index === 1 ? 'secondary' : 'outline'} className=\"text-xs\">\n {index === 1 ? 'Watching' : 'Healthy'}\n </Badge>\n </div>\n ))}\n </div>\n </CardContent>\n </Card>\n </div>\n\n <Card className=\"rounded-lg border border-border ring-0\">\n <CardHeader>\n <CardTitle>Sidebar Sample</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-1\">\n {['Dashboard', 'Table', 'Infinite Scroll', 'Card List', 'Typography'].map(\n (item, index) => (\n <div\n key={item}\n className={[\n 'flex h-8 items-center rounded-[var(--radius)] px-2 text-sm',\n index === 4 ? 'bg-accent font-medium text-foreground' : 'text-muted-foreground',\n ].join(' ')}\n >\n {item}\n </div>\n ),\n )}\n </CardContent>\n </Card>\n </DataPage.Content>\n </DataPage>\n )\n}\n","import { create } from 'zustand'\nimport type { ThemeState, TemplateOverride, TemplateId } from './types'\n\nexport const useThemeStore = create<ThemeState>((set) => ({\n global: {\n radius: 0.5,\n primaryHue: 220,\n primaryChroma: 0.15,\n fontScale: 1,\n lineHeight: 1,\n density: 'default',\n darkMode: false,\n },\n overrides: {} as Record<TemplateId, TemplateOverride>,\n activeShell: 'sidebar',\n activeTemplate: 'table',\n setGlobal: (patch) => set((s) => ({ global: { ...s.global, ...patch } })),\n setOverride: (id, patch) =>\n set((s) => ({\n overrides: { ...s.overrides, [id]: { ...s.overrides[id], ...patch } },\n })),\n setShell: (shell) => set({ activeShell: shell }),\n setTemplate: (template) => set({ activeTemplate: template }),\n}))\n","import { useThemeStore } from '@/store/themeStore'\nimport { DataPage } from '@/components/templates/datapage/DataPage'\nimport { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'\n\nexport interface ColorsBodyTemplateProps {\n theme?: React.CSSProperties\n breadcrumb?: React.ReactNode\n}\n\nconst tonalTokenDefs = [\n {\n name: 'border',\n bg: 'bg-border',\n fg: 'text-foreground',\n variable: '--border',\n lightL: 0.922,\n darkL: 0.32,\n lightF: 0.04,\n darkF: 0.06,\n },\n {\n name: 'input',\n bg: 'bg-input',\n fg: 'text-foreground',\n variable: '--input',\n lightL: 0.922,\n darkL: 0.35,\n lightF: 0.04,\n darkF: 0.06,\n },\n {\n name: 'muted',\n bg: 'bg-muted',\n fg: 'text-muted-foreground',\n variable: '--muted',\n lightL: 0.97,\n darkL: 0.269,\n lightF: 0.02,\n darkF: 0.03,\n },\n {\n name: 'secondary',\n bg: 'bg-secondary',\n fg: 'text-secondary-foreground',\n variable: '--secondary',\n lightL: 0.97,\n darkL: 0.269,\n lightF: 0.02,\n darkF: 0.02,\n },\n {\n name: 'accent',\n bg: 'bg-accent',\n fg: 'text-accent-foreground',\n variable: '--accent',\n lightL: 0.97,\n darkL: 0.32,\n lightF: 0.04,\n darkF: 0.04,\n },\n]\n\nconst fixedNeutralTokens = [\n { name: 'background', bg: 'bg-background', fg: 'text-foreground', variable: '--background' },\n { name: 'foreground', bg: 'bg-foreground', fg: 'text-background', variable: '--foreground' },\n { name: 'card', bg: 'bg-card', fg: 'text-card-foreground', variable: '--card' },\n]\n\nfunction ColorSwatch({\n bg,\n fg,\n name,\n variable,\n formula,\n}: {\n bg: string\n fg: string\n name: string\n variable: string\n formula?: string\n}) {\n return (\n <div className=\"overflow-hidden rounded-[var(--radius)] border\">\n <div className={`${bg} flex h-14 items-center justify-center`}>\n <span className={`${fg} text-sm font-semibold`}>Aa</span>\n </div>\n <div className=\"bg-card px-3 py-2 space-y-0.5\">\n <p className=\"text-xs font-medium\">{name}</p>\n <p className=\"text-xs text-muted-foreground font-mono\">{variable}</p>\n {formula && <p className=\"text-xs text-muted-foreground/70 font-mono\">{formula}</p>}\n </div>\n </div>\n )\n}\n\nexport function ColorsBodyTemplate({ theme, breadcrumb }: ColorsBodyTemplateProps) {\n const { primaryHue, primaryChroma } = useThemeStore((s) => s.global)\n\n const primaryDerived = [\n {\n name: 'primary',\n bg: 'bg-primary',\n fg: 'text-primary-foreground',\n variable: '--primary',\n formula: `oklch(0.52 ${primaryChroma.toFixed(3)} ${primaryHue})`,\n },\n {\n name: 'ring',\n bg: 'bg-ring',\n fg: 'text-background',\n variable: '--ring',\n formula: `oklch(0.50 ${primaryChroma.toFixed(3)} ${primaryHue})`,\n },\n {\n name: 'sidebar-primary',\n bg: 'bg-[--sidebar-primary]',\n fg: 'text-primary-foreground',\n variable: '--sidebar-primary',\n formula: `oklch(0.488 ${primaryChroma.toFixed(3)} ${primaryHue})`,\n },\n {\n name: 'primary-foreground',\n bg: 'bg-primary-foreground',\n fg: 'text-foreground',\n variable: '--primary-foreground',\n formula: 'oklch(0.985 0 0) — fixed',\n },\n ]\n\n return (\n <DataPage className=\"layout-colors\" style={theme}>\n <DataPage.Header>\n <DataPage.TitleBlock\n breadcrumb={breadcrumb}\n title=\"Colors\"\n description=\"Design token color palette and derivation rules for the active theme\"\n />\n </DataPage.Header>\n\n <DataPage.Content className=\"space-y-[var(--dk-panel-gap)]\">\n {/* Primary derived chain */}\n <Card className=\"rounded-lg border border-border ring-0\">\n <CardHeader>\n <CardTitle>Primary — controlled by hue &amp; chroma</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n <div className=\"rounded-[var(--radius)] bg-muted px-3 py-2 text-xs font-mono text-muted-foreground\">\n hue: <span className=\"text-foreground\">{primaryHue}</span>\n {' '}chroma: <span className=\"text-foreground\">{primaryChroma.toFixed(3)}</span>\n {' '}→{' '}\n <span className=\"text-foreground\">oklch(L, chroma, hue)</span>\n </div>\n <div className=\"grid grid-cols-2 gap-3 sm:grid-cols-4\">\n {primaryDerived.map((t) => (\n <ColorSwatch key={t.name} {...t} />\n ))}\n </div>\n <p className=\"text-xs text-muted-foreground\">\n Same hue &amp; chroma — only lightness differs. Adjust via StyleEditor.\n </p>\n </CardContent>\n </Card>\n\n {/* Destructive — fixed */}\n <Card className=\"rounded-lg border border-border ring-0\">\n <CardHeader>\n <CardTitle>Destructive — fixed red</CardTitle>\n </CardHeader>\n <CardContent>\n <div className=\"grid grid-cols-2 gap-3 sm:grid-cols-4\">\n <ColorSwatch\n bg=\"bg-destructive\"\n fg=\"text-destructive-foreground\"\n name=\"destructive\"\n variable=\"--destructive\"\n formula=\"oklch(0.577 0.245 27.3)\"\n />\n </div>\n <p className=\"mt-3 text-xs text-muted-foreground\">\n Fixed at hue 27 (red). Not affected by theme controls.\n </p>\n </CardContent>\n </Card>\n\n {/* Tonal surface — derived */}\n <Card className=\"rounded-lg border border-border ring-0\">\n <CardHeader>\n <CardTitle>Tonal surface — derived from primary hue</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n <div className=\"rounded-[var(--radius)] bg-muted px-3 py-2 text-xs font-mono text-muted-foreground\">\n oklch(L, <span className=\"text-foreground\">chroma × factor</span>, {primaryHue})\n {' · '}factor = 2–6% of primary chroma\n </div>\n <div className=\"overflow-hidden rounded-[var(--radius)] border divide-y text-xs font-mono\">\n <div className=\"grid grid-cols-[7rem_1fr_1fr] bg-muted/50 px-3 py-1.5 text-muted-foreground\">\n <span>token</span>\n <span>light</span>\n <span>dark</span>\n </div>\n {tonalTokenDefs.map((t) => (\n <div\n key={t.name}\n className=\"grid grid-cols-[7rem_1fr_1fr] items-center gap-x-3 px-3 py-2\"\n >\n <div className=\"flex items-center gap-2\">\n <div className={`${t.bg} h-5 w-5 shrink-0 rounded border`} />\n <span className=\"font-medium text-foreground\">{t.name}</span>\n </div>\n <span className=\"text-muted-foreground\">\n oklch({t.lightL}{' '}\n <span className=\"text-foreground\">{(primaryChroma * t.lightF).toFixed(4)}</span>{' '}\n {primaryHue})\n </span>\n <span className=\"text-muted-foreground\">\n oklch({t.darkL}{' '}\n <span className=\"text-foreground\">{(primaryChroma * t.darkF).toFixed(4)}</span>{' '}\n {primaryHue})\n </span>\n </div>\n ))}\n </div>\n </CardContent>\n </Card>\n\n {/* Fixed neutrals */}\n <Card className=\"rounded-lg border border-border ring-0\">\n <CardHeader>\n <CardTitle>Fixed neutral — dark mode only</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n <div className=\"grid grid-cols-2 gap-3 sm:grid-cols-3\">\n {fixedNeutralTokens.map((t) => (\n <ColorSwatch key={t.name} bg={t.bg} fg={t.fg} name={t.name} variable={t.variable} />\n ))}\n </div>\n <p className=\"text-xs text-muted-foreground\">\n chroma = 0. Unaffected by hue &amp; chroma controls.\n </p>\n </CardContent>\n </Card>\n </DataPage.Content>\n </DataPage>\n )\n}\n","import React from 'react'\nimport { cn } from '@/lib/utils'\n\nexport type LoginLayout = 'centered' | 'split'\nexport type LoginSide = 'left' | 'right'\nexport type LoginCard = 'card' | 'plain'\nexport type LoginBg = 'default' | 'none' | 'subtle'\nexport type LoginCardWidth = 'sm' | 'md' | 'lg'\n\nexport interface LoginBodyTemplateProps {\n theme?: React.CSSProperties\n layout?: LoginLayout\n side?: LoginSide\n card?: LoginCard\n bg?: LoginBg\n cardWidth?: LoginCardWidth\n brand?: React.ReactNode\n children?: React.ReactNode\n className?: string\n}\n\nconst bgClass: Record<LoginBg, string> = {\n default: 'bg-muted/40',\n none: 'bg-background',\n subtle: 'bg-gradient-to-br from-muted/60 via-background to-muted/30',\n}\n\nconst cardWidthClass: Record<LoginCardWidth, string> = {\n sm: 'max-w-sm',\n md: 'max-w-md',\n lg: 'max-w-lg',\n}\n\nfunction DefaultBrand() {\n return (\n <div className=\"flex h-full flex-col justify-between p-10\">\n <div className=\"flex items-center gap-2\">\n <div className=\"flex h-7 w-7 items-center justify-center rounded-md bg-primary-foreground/20\">\n <div className=\"h-3.5 w-3.5 rounded-sm bg-primary-foreground\" />\n </div>\n <span className=\"text-sm font-semibold text-primary-foreground\">Acme</span>\n </div>\n <div>\n <blockquote className=\"space-y-2\">\n <p className=\"text-lg font-medium leading-snug text-primary-foreground\">\n \"This platform has completely changed how our team collaborates on design.\"\n </p>\n <footer className=\"text-sm text-primary-foreground/70\">— Sarah Kim, Design Lead</footer>\n </blockquote>\n </div>\n </div>\n )\n}\n\nfunction FormCard({\n card,\n cardWidth = 'sm',\n children,\n}: {\n card: LoginCard\n cardWidth?: LoginCardWidth\n children: React.ReactNode\n}) {\n const widthCls = cardWidthClass[cardWidth]\n if (card === 'card') {\n return (\n <div className={cn('w-full rounded-2xl border bg-card px-8 py-10 shadow-lg', widthCls)}>\n {children}\n </div>\n )\n }\n return <div className={cn('w-full', widthCls)}>{children}</div>\n}\n\nexport function LoginBodyTemplate({\n theme,\n layout = 'centered',\n side = 'left',\n card = 'plain',\n bg = 'default',\n cardWidth = 'sm',\n brand,\n children,\n className,\n}: LoginBodyTemplateProps) {\n const brandPanel = (\n <div className=\"hidden lg:flex lg:w-1/2 bg-primary flex-col\">\n {brand ?? <DefaultBrand />}\n </div>\n )\n\n if (layout === 'split') {\n return (\n <div\n className={cn('designkit-theme h-full flex bg-background text-foreground', className)}\n style={theme}\n >\n {side === 'left' && brandPanel}\n <div className=\"flex flex-1 items-center justify-center p-8\">\n <FormCard card={card} cardWidth={cardWidth}>{children}</FormCard>\n </div>\n {side === 'right' && brandPanel}\n </div>\n )\n }\n\n return (\n <div\n className={cn(\n 'designkit-theme h-full flex items-center justify-center text-foreground p-4',\n bgClass[bg],\n className,\n )}\n style={theme}\n >\n <FormCard card={card} cardWidth={cardWidth}>{children}</FormCard>\n </div>\n )\n}\n","import * as React from \"react\"\nimport { mergeProps } from \"@base-ui/react/merge-props\"\nimport { useRender } from \"@base-ui/react/use-render\"\n\nimport { cn } from \"@/lib/utils\"\nimport { ChevronRightIcon, MoreHorizontalIcon } from \"lucide-react\"\n\nfunction Breadcrumb({ className, ...props }: React.ComponentProps<\"nav\">) {\n return (\n <nav\n aria-label=\"breadcrumb\"\n data-slot=\"breadcrumb\"\n className={cn(className)}\n {...props}\n />\n )\n}\n\nfunction BreadcrumbList({ className, ...props }: React.ComponentProps<\"ol\">) {\n return (\n <ol\n data-slot=\"breadcrumb-list\"\n className={cn(\n \"flex flex-wrap items-center gap-1.5 text-sm wrap-break-word text-muted-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction BreadcrumbItem({ className, ...props }: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"breadcrumb-item\"\n className={cn(\"inline-flex items-center gap-1\", className)}\n {...props}\n />\n )\n}\n\nfunction BreadcrumbLink({\n className,\n render,\n ...props\n}: useRender.ComponentProps<\"a\">) {\n return useRender({\n defaultTagName: \"a\",\n props: mergeProps<\"a\">(\n {\n className: cn(\"transition-colors hover:text-foreground\", className),\n },\n props\n ),\n render,\n state: {\n slot: \"breadcrumb-link\",\n },\n })\n}\n\nfunction BreadcrumbPage({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"breadcrumb-page\"\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn(\"font-normal text-foreground\", className)}\n {...props}\n />\n )\n}\n\nfunction BreadcrumbSeparator({\n children,\n className,\n ...props\n}: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"breadcrumb-separator\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"[&>svg]:size-3.5\", className)}\n {...props}\n >\n {children ?? (\n <ChevronRightIcon />\n )}\n </li>\n )\n}\n\nfunction BreadcrumbEllipsis({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"breadcrumb-ellipsis\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\n \"flex size-5 items-center justify-center [&>svg]:size-4\",\n className\n )}\n {...props}\n >\n <MoreHorizontalIcon\n />\n <span className=\"sr-only\">More</span>\n </span>\n )\n}\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n}\n","import React from 'react'\nimport { cn } from '@/lib/utils'\nimport {\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n} from '@/components/ui/breadcrumb'\n\nexport type PageTopBarVariant = 'ghost' | 'default'\n\nexport interface PageTopBarProps {\n left?: React.ReactNode\n right?: React.ReactNode\n variant?: PageTopBarVariant\n height?: string\n className?: string\n style?: React.CSSProperties\n children?: React.ReactNode\n}\n\nexport type PageBreadcrumbItem = string | { label: string; href?: string }\n\nexport function PageBreadcrumb({ items }: { items: PageBreadcrumbItem[] }) {\n return (\n <Breadcrumb>\n <BreadcrumbList className=\"text-xs gap-1\">\n {items.map((item, i) => {\n const isLast = i === items.length - 1\n const label = typeof item === 'string' ? item : item.label\n const href = typeof item === 'string' ? undefined : item.href\n return (\n <React.Fragment key={i}>\n {i > 0 && <BreadcrumbSeparator />}\n <BreadcrumbItem>\n {isLast ? (\n <BreadcrumbPage className=\"text-xs\">{label}</BreadcrumbPage>\n ) : href ? (\n <BreadcrumbLink href={href} className=\"text-xs\">\n {label}\n </BreadcrumbLink>\n ) : (\n <span className=\"text-xs text-muted-foreground\">{label}</span>\n )}\n </BreadcrumbItem>\n </React.Fragment>\n )\n })}\n </BreadcrumbList>\n </Breadcrumb>\n )\n}\n\nfunction normalizeBreadcrumb(left: React.ReactNode): React.ReactNode {\n if (typeof left === 'string') {\n const items = left.split('/').map((s) => s.trim()).filter(Boolean)\n return <PageBreadcrumb items={items} />\n }\n return left\n}\n\nconst bgClassMap: Record<string, string> = {\n muted: 'bg-muted',\n card: 'bg-card',\n transparent: '',\n}\n\n/** Builds a PageTopBar ReactNode from playground option strings. */\nexport function buildTopBar(opts: {\n topBarShow?: string\n topBarVariant?: string\n topBarBg?: string\n left: React.ReactNode\n right?: React.ReactNode\n}): React.ReactNode {\n if (opts.topBarShow === 'hide') return undefined\n return (\n <PageTopBar\n left={normalizeBreadcrumb(opts.left)}\n right={opts.right}\n variant={(opts.topBarVariant as PageTopBarVariant) ?? 'ghost'}\n className={bgClassMap[opts.topBarBg ?? 'transparent'] ?? ''}\n />\n )\n}\n\nexport function PageTopBar({\n left,\n right,\n variant = 'ghost',\n height = 'var(--dk-toolbar-height)',\n className,\n style,\n children,\n}: PageTopBarProps) {\n return (\n <div\n className={cn(\n 'flex shrink-0 items-center justify-between gap-4 px-(--dk-page-padding-x)',\n variant === 'default' && 'border-b',\n className,\n )}\n style={{ height, ...style }}\n >\n <div className=\"flex min-w-0 items-center text-xs text-muted-foreground\">\n {normalizeBreadcrumb(left ?? children)}\n </div>\n {right && <div className=\"flex shrink-0 items-center gap-2\">{right}</div>}\n </div>\n )\n}\n","import { useEffect } from 'react'\nimport { useThemeStore } from '@/store/themeStore'\nimport type { DensityId, TemplateId } from '@/store/types'\n\nconst STYLE_ID = 'designkit-vars'\n\ninterface DesignTokenInput {\n radius: number\n primaryHue: number\n primaryChroma: number\n fontScale: number\n lineHeight: number\n density?: DensityId\n pagePaddingY?: string\n panelGap?: string\n toolbarHeight?: string\n}\n\ntype TokenMap = Record<`--${string}`, string | number>\n\nfunction buildTokenMap({\n radius,\n primaryHue,\n primaryChroma,\n fontScale,\n lineHeight,\n density = 'default',\n pagePaddingY,\n panelGap,\n toolbarHeight,\n}: DesignTokenInput): TokenMap {\n const densityValues = {\n compact: {\n density: 0.85,\n pagePaddingY: '0.75rem',\n panelGap: '0.75rem',\n toolbarHeight: '2.5rem',\n },\n default: {\n density: 1,\n pagePaddingY: '1rem',\n panelGap: '1rem',\n toolbarHeight: '2.75rem',\n },\n comfortable: {\n density: 1.15,\n pagePaddingY: '1.25rem',\n panelGap: '1.25rem',\n toolbarHeight: '3rem',\n },\n }[density]\n\n const c = (factor: number) => (primaryChroma * factor).toFixed(4)\n\n return {\n '--dk-radius': `${radius}rem`,\n '--gridkit-radius': `${radius}rem`,\n '--radius': `${radius}rem`,\n '--radius-sm': `${(radius * 0.6).toFixed(4)}rem`,\n '--radius-md': `${(radius * 0.8).toFixed(4)}rem`,\n '--radius-lg': `${radius}rem`,\n '--radius-xl': `${(radius * 1.4).toFixed(4)}rem`,\n '--radius-2xl': `${(radius * 1.8).toFixed(4)}rem`,\n\n // primary — fully controlled\n '--dk-primary': `oklch(0.52 ${primaryChroma} ${primaryHue})`,\n '--dk-primary-foreground': 'oklch(0.985 0 0)',\n '--dk-ring': `oklch(0.50 ${primaryChroma} ${primaryHue})`,\n '--gridkit-primary': `oklch(0.52 ${primaryChroma} ${primaryHue})`,\n '--gridkit-primary-foreground': 'oklch(0.985 0 0)',\n '--gridkit-ring': `oklch(0.50 ${primaryChroma} ${primaryHue})`,\n '--primary': `oklch(0.52 ${primaryChroma} ${primaryHue})`,\n '--primary-foreground': 'oklch(0.985 0 0)',\n '--color-primary': `oklch(0.52 ${primaryChroma} ${primaryHue})`,\n '--color-primary-foreground': 'oklch(0.985 0 0)',\n '--ring': `oklch(0.50 ${primaryChroma} ${primaryHue})`,\n '--color-ring': `oklch(0.50 ${primaryChroma} ${primaryHue})`,\n '--sidebar-primary': `oklch(0.488 ${primaryChroma} ${primaryHue})`,\n '--color-sidebar-primary': `oklch(0.488 ${primaryChroma} ${primaryHue})`,\n\n // tonal surface — same hue, heavily reduced chroma\n '--border': `oklch(0.922 ${c(0.04)} ${primaryHue})`,\n '--input': `oklch(0.922 ${c(0.04)} ${primaryHue})`,\n '--muted': `oklch(0.970 ${c(0.02)} ${primaryHue})`,\n '--secondary': `oklch(0.970 ${c(0.02)} ${primaryHue})`,\n '--accent': `oklch(0.970 ${c(0.04)} ${primaryHue})`,\n '--color-border': `oklch(0.922 ${c(0.04)} ${primaryHue})`,\n '--color-input': `oklch(0.922 ${c(0.04)} ${primaryHue})`,\n '--color-muted': `oklch(0.970 ${c(0.02)} ${primaryHue})`,\n '--color-secondary': `oklch(0.970 ${c(0.02)} ${primaryHue})`,\n '--color-accent': `oklch(0.970 ${c(0.04)} ${primaryHue})`,\n '--dk-border': `oklch(0.922 ${c(0.04)} ${primaryHue})`,\n '--dk-input': `oklch(0.922 ${c(0.04)} ${primaryHue})`,\n '--dk-muted': `oklch(0.970 ${c(0.02)} ${primaryHue})`,\n '--gridkit-border': `oklch(0.922 ${c(0.04)} ${primaryHue})`,\n '--gridkit-muted': `oklch(0.970 ${c(0.02)} ${primaryHue})`,\n\n '--dk-font-scale': fontScale,\n '--dk-line-height': lineHeight,\n '--dk-density': densityValues.density,\n '--dk-page-padding-y': pagePaddingY ?? densityValues.pagePaddingY,\n '--dk-panel-gap': panelGap ?? densityValues.panelGap,\n '--dk-toolbar-height': toolbarHeight ?? densityValues.toolbarHeight,\n '--dk-text-xs': `calc(0.75rem * ${fontScale})`,\n '--dk-text-sm': `calc(0.875rem * ${fontScale})`,\n '--dk-text-base': `calc(1rem * ${fontScale})`,\n '--dk-text-lg': `calc(1.125rem * ${fontScale})`,\n '--dk-text-xl': `calc(1.25rem * ${fontScale})`,\n '--dk-leading-xs': `calc(1rem * ${lineHeight})`,\n '--dk-leading-sm': `calc(1.25rem * ${lineHeight})`,\n '--dk-leading-base': `calc(1.5rem * ${lineHeight})`,\n '--dk-leading-lg': `calc(1.75rem * ${lineHeight})`,\n '--dk-leading-xl': `calc(1.75rem * ${lineHeight})`,\n '--text-xs': 'var(--dk-text-xs)',\n '--text-sm': 'var(--dk-text-sm)',\n '--text-base': 'var(--dk-text-base)',\n '--text-lg': 'var(--dk-text-lg)',\n '--text-xl': 'var(--dk-text-xl)',\n '--text-xs--line-height': 'var(--dk-leading-xs)',\n '--text-sm--line-height': 'var(--dk-leading-sm)',\n '--text-base--line-height': 'var(--dk-leading-base)',\n '--text-lg--line-height': 'var(--dk-leading-lg)',\n '--text-xl--line-height': 'var(--dk-leading-xl)',\n }\n}\n\nfunction buildDarkTonalTokens(primaryHue: number, primaryChroma: number): TokenMap {\n const c = (factor: number) => (primaryChroma * factor).toFixed(4)\n return {\n '--border': `oklch(0.32 ${c(0.06)} ${primaryHue})`,\n '--input': `oklch(0.35 ${c(0.06)} ${primaryHue})`,\n '--muted': `oklch(0.269 ${c(0.03)} ${primaryHue})`,\n '--secondary': `oklch(0.269 ${c(0.02)} ${primaryHue})`,\n '--accent': `oklch(0.320 ${c(0.04)} ${primaryHue})`,\n '--color-border': `oklch(0.32 ${c(0.06)} ${primaryHue})`,\n '--color-input': `oklch(0.35 ${c(0.06)} ${primaryHue})`,\n '--color-muted': `oklch(0.269 ${c(0.03)} ${primaryHue})`,\n '--color-secondary': `oklch(0.269 ${c(0.02)} ${primaryHue})`,\n '--color-accent': `oklch(0.320 ${c(0.04)} ${primaryHue})`,\n '--dk-border': `oklch(0.32 ${c(0.06)} ${primaryHue})`,\n '--dk-input': `oklch(0.35 ${c(0.06)} ${primaryHue})`,\n '--dk-muted': `oklch(0.269 ${c(0.03)} ${primaryHue})`,\n '--gridkit-border': `oklch(0.32 ${c(0.06)} ${primaryHue})`,\n '--gridkit-muted': `oklch(0.269 ${c(0.03)} ${primaryHue})`,\n }\n}\n\nfunction tokenMapToCss(tokens: TokenMap) {\n return Object.entries(tokens)\n .map(([key, value]) => ` ${key}: ${value};`)\n .join('\\n')\n}\n\nexport function useStyleInjector() {\n const g = useThemeStore((s) => s.global)\n const ov = useThemeStore((s) => s.overrides)\n\n useEffect(() => {\n let el = document.getElementById(STYLE_ID) as HTMLStyleElement | null\n if (!el) {\n el = document.createElement('style')\n el.id = STYLE_ID\n document.head.appendChild(el)\n }\n\n const rootBlock = `:root {\\n${tokenMapToCss(buildTokenMap(g))}\\n}`\n const darkTonalBlock = `.dark {\\n${tokenMapToCss(buildDarkTonalTokens(g.primaryHue, g.primaryChroma))}\\n}`\n\n const tmplBlocks = (Object.entries(ov) as [TemplateId, (typeof ov)[TemplateId]][])\n .map(([id, o]) => {\n if (\n o.radius === undefined &&\n o.primaryChroma === undefined &&\n o.density === undefined &&\n o.pagePaddingY === undefined &&\n o.panelGap === undefined &&\n o.toolbarHeight === undefined\n )\n return ''\n const tokens = buildTokenMap({\n ...g,\n radius: o.radius ?? g.radius,\n primaryChroma: o.primaryChroma ?? g.primaryChroma,\n density: o.density ?? g.density,\n pagePaddingY: o.pagePaddingY,\n panelGap: o.panelGap,\n toolbarHeight: o.toolbarHeight,\n })\n const layoutClassName = `layout-${id}`\n return `.${layoutClassName} {\\n${tokenMapToCss(tokens)}\\n}`\n })\n .filter(Boolean)\n\n el.textContent = [rootBlock, darkTonalBlock, ...tmplBlocks].join('\\n\\n')\n }, [g, ov])\n\n useEffect(() => {\n document.documentElement.classList.toggle('dark', g.darkMode)\n }, [g.darkMode])\n\n useEffect(() => {\n if (g.density === 'default') {\n document.documentElement.removeAttribute('data-dk-density')\n return\n }\n document.documentElement.dataset.dkDensity = g.density\n }, [g.density])\n}\n\n/** Returns CSS custom properties for a template — used as inline style for external usage */\nexport function buildTemplateTheme(\n g: {\n radius: number\n primaryHue: number\n primaryChroma: number\n darkMode?: boolean\n density?: DensityId\n fontScale?: number\n lineHeight?: number\n },\n ov: {\n radius?: number\n primaryChroma?: number\n density?: DensityId\n pagePaddingY?: string\n panelGap?: string\n toolbarHeight?: string\n } = {},\n): React.CSSProperties {\n const tokens = buildTokenMap({\n radius: ov.radius ?? g.radius,\n primaryHue: g.primaryHue,\n primaryChroma: ov.primaryChroma ?? g.primaryChroma,\n density: ov.density ?? g.density,\n pagePaddingY: ov.pagePaddingY,\n panelGap: ov.panelGap,\n toolbarHeight: ov.toolbarHeight,\n fontScale: g.fontScale ?? 1,\n lineHeight: g.lineHeight ?? 1,\n })\n\n if (g.darkMode) {\n Object.assign(tokens, buildDarkTonalTokens(g.primaryHue, ov.primaryChroma ?? g.primaryChroma))\n }\n\n return tokens as React.CSSProperties\n}\n"]}