@loykin/designkit 0.0.1-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +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/definitions.ts","../src/components/templates/table/DataGridView.tsx","../src/components/templates/datapage/DataPage.tsx","../src/components/templates/databody/DataBodyTemplate.tsx","../src/components/ui/breadcrumb.tsx","../src/components/templates/datapage/PageTopBar.tsx","../src/components/templates/databody/DataBodyTemplateDemo.tsx","../src/components/templates/form/FormWizardBodyTemplate.tsx","../src/components/templates/form/FormWizardBodyTemplateDemo.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/templates/table/DataGridTemplateDemo.tsx","../src/components/templates/databody/DetailBodyTemplateDemo.tsx","../src/components/templates/databody/SplitBodyTemplateDemo.tsx","../src/components/templates/tabbed/TabbedBodyTemplateDemo.tsx","../src/components/templates/form/FormBodyTemplateDemo.tsx","../src/components/templates/form/FormStackedBodyTemplateDemo.tsx","../src/components/templates/form/FormInlineBodyTemplateDemo.tsx","../src/components/templates/sectioned/SectionedBodyTemplateDemo.tsx","../src/components/templates/auth/LoginBodyTemplateDemo.tsx","../src/components/templates/auth/LoginForgotDemo.tsx","../src/components/templates/auth/LoginResetDemo.tsx","../src/components/templates/auth/LoginOtpDemo.tsx","../src/components/templates/index.ts","../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","headerLeft","headerRight","useState","useEffect","useMemo","DragHandleCell","DataGridInfinity","DataGridDrag","DataGridCard","DataGrid","Tabs","Fragment","Children","Root","GlobalSearch","Plus","DataGridPaginationCompact","Users","Search","RefreshCw","steps","Check","create","statusVariant","Download","users","AlertCircle","Clock","CheckCircle2","XCircle","ArrowLeft","createElement","Table2","Layers","LayoutDashboard","FileText","Type","Palette","KeyRound"],"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 type { TemplateOverride, TemplateId } from '@/store/types'\nimport type { DataGridViewVariant } from './table/DataGridView'\n\nexport type TemplateGroup = 'Table' | 'Pages' | 'Design' | 'Auth'\nexport type TemplateNavigationGroupId =\n | 'DataBodyTemplate'\n | 'FormWizardBodyTemplate'\n | 'LoginBodyTemplate'\n | 'Common'\nexport type TemplateExportKind =\n | 'data-grid'\n | 'data-grid-card'\n | 'body-template'\n | 'typography'\n | 'databody'\n | 'login'\n\nexport interface TemplateOptionChoice {\n value: string\n label: string\n}\n\nexport interface TemplateOptionSpec {\n key: string\n label: string\n type: 'select'\n choices: TemplateOptionChoice[]\n defaultValue: string\n}\n\nexport interface TemplateDefinition {\n id: TemplateId\n label: string\n /** Short label used only in nav sub-menu (omit to fall back to label) */\n navigationLabel?: string\n /** Section-header label for the nav group this item anchors (omit to fall back to label) */\n navigationSubgroupLabel?: string\n group: TemplateGroup\n navigationGroup: TemplateNavigationGroupId\n navigationParent?: TemplateId\n layoutClassName: string\n exportComponent: string\n exportKind: TemplateExportKind\n preset: TemplateOverride\n options?: TemplateOptionSpec[]\n preview?: {\n variant?: DataGridViewVariant\n breadcrumb?: React.ReactNode\n title?: React.ReactNode\n description?: React.ReactNode\n }\n}\n\nconst topBarOptions: TemplateOptionSpec[] = [\n {\n key: 'topBarShow',\n label: 'Top Bar',\n type: 'select',\n choices: [\n { value: 'show', label: 'Show' },\n { value: 'hide', label: 'Hide' },\n ],\n defaultValue: 'show',\n },\n {\n key: 'topBarVariant',\n label: 'Border',\n type: 'select',\n choices: [\n { value: 'ghost', label: 'None' },\n { value: 'default', label: 'Line' },\n ],\n defaultValue: 'ghost',\n },\n {\n key: 'topBarBg',\n label: 'Background',\n type: 'select',\n choices: [\n { value: 'transparent', label: 'Default' },\n { value: 'muted', label: 'Muted' },\n { value: 'card', label: 'Card' },\n ],\n defaultValue: 'transparent',\n },\n]\n\nconst loginOptions: TemplateOptionSpec[] = [\n {\n key: 'loginLayout',\n label: 'Layout',\n type: 'select',\n choices: [\n { value: 'centered', label: 'Centered' },\n { value: 'split', label: 'Split' },\n ],\n defaultValue: 'centered',\n },\n {\n key: 'loginSide',\n label: 'Brand Side',\n type: 'select',\n choices: [\n { value: 'left', label: 'Left' },\n { value: 'right', label: 'Right' },\n ],\n defaultValue: 'left',\n },\n {\n key: 'loginCard',\n label: 'Card',\n type: 'select',\n choices: [\n { value: 'card', label: 'Card' },\n { value: 'plain', label: 'None' },\n ],\n defaultValue: 'card',\n },\n {\n key: 'loginBg',\n label: 'Background',\n type: 'select',\n choices: [\n { value: 'default', label: 'Muted' },\n { value: 'subtle', label: 'Gradient' },\n { value: 'none', label: 'None' },\n ],\n defaultValue: 'default',\n },\n {\n key: 'loginCardWidth',\n label: 'Width',\n type: 'select',\n choices: [\n { value: 'sm', label: 'Narrow' },\n { value: 'md', label: 'Medium' },\n { value: 'lg', label: 'Wide' },\n ],\n defaultValue: 'sm',\n },\n]\n\nexport const TEMPLATE_DEFINITIONS: TemplateDefinition[] = [\n // ── DataGridView (nested under DataBodyTemplate) ─────────────────────────────\n {\n id: 'table',\n label: 'Standard',\n navigationSubgroupLabel: 'Table',\n group: 'Table',\n navigationGroup: 'DataBodyTemplate',\n layoutClassName: 'layout-table',\n exportComponent: 'DataGridView',\n exportKind: 'data-grid',\n preset: { radius: 0.125 },\n options: topBarOptions,\n preview: {\n variant: 'standard',\n breadcrumb: 'Data / Table',\n title: 'Users',\n },\n },\n {\n id: 'table-infinity',\n label: 'Infinite Scroll',\n group: 'Table',\n navigationGroup: 'DataBodyTemplate',\n navigationParent: 'table',\n layoutClassName: 'layout-table-infinity',\n exportComponent: 'DataGridView',\n exportKind: 'data-grid',\n preset: { radius: 0.125 },\n preview: {\n variant: 'infinity',\n breadcrumb: 'Data / Table / Infinite Scroll',\n title: 'Users',\n description: 'gridkit DataGridInfinity',\n },\n options: topBarOptions,\n },\n {\n id: 'table-drag',\n label: 'Row Drag',\n group: 'Table',\n navigationGroup: 'DataBodyTemplate',\n navigationParent: 'table',\n layoutClassName: 'layout-table-drag',\n exportComponent: 'DataGridView',\n exportKind: 'data-grid',\n preset: { radius: 0.125 },\n preview: {\n variant: 'drag',\n breadcrumb: 'Data / Table / Row Drag',\n title: 'Services',\n description: 'gridkit DataGridDrag',\n },\n options: topBarOptions,\n },\n {\n id: 'table-card',\n label: 'Card Grid',\n navigationSubgroupLabel: 'Card',\n group: 'Table',\n navigationGroup: 'DataBodyTemplate',\n layoutClassName: 'layout-table-card',\n exportComponent: 'DataGridView',\n exportKind: 'data-grid-card',\n preset: { radius: 0.375 },\n preview: {\n variant: 'card',\n breadcrumb: 'Data / Table / Card Grid',\n title: 'User Cards',\n description: 'gridkit DataGridCard',\n },\n options: topBarOptions,\n },\n {\n id: 'table-card-list',\n label: 'Card List',\n group: 'Table',\n navigationGroup: 'DataBodyTemplate',\n navigationParent: 'table-card',\n layoutClassName: 'layout-table-card-list',\n exportComponent: 'DataGridView',\n exportKind: 'data-grid-card',\n preset: { radius: 0.375 },\n preview: {\n variant: 'card-list',\n breadcrumb: 'Data / Table / Card List',\n title: 'User Cards',\n description: 'gridkit DataGridCard list mode',\n },\n options: topBarOptions,\n },\n // ── DataBodyTemplate ─────────────────────────────────────────────────────────\n {\n id: 'databody',\n label: 'Standard',\n navigationSubgroupLabel: 'Data View',\n group: 'Pages',\n navigationGroup: 'DataBodyTemplate',\n layoutClassName: 'layout-databody',\n exportComponent: 'DataBodyTemplate',\n exportKind: 'databody',\n preset: { radius: 0.375 },\n options: topBarOptions,\n },\n {\n id: 'databody-detail',\n label: 'Detail',\n group: 'Pages',\n navigationGroup: 'DataBodyTemplate',\n navigationParent: 'databody',\n layoutClassName: 'layout-databody-detail',\n exportComponent: 'DataBodyTemplate',\n exportKind: 'databody',\n preset: { radius: 0.375 },\n options: topBarOptions,\n },\n {\n id: 'databody-split',\n label: 'Split',\n group: 'Pages',\n navigationGroup: 'DataBodyTemplate',\n navigationParent: 'databody',\n layoutClassName: 'layout-databody-split',\n exportComponent: 'DataBodyTemplate',\n exportKind: 'databody',\n preset: { radius: 0.375 },\n options: topBarOptions,\n },\n {\n id: 'tabbed',\n label: 'Tabbed',\n group: 'Pages',\n navigationGroup: 'DataBodyTemplate',\n navigationParent: 'databody',\n layoutClassName: 'layout-tabbed',\n exportComponent: 'DataBodyTemplate',\n exportKind: 'databody',\n preset: { radius: 0.375 },\n options: topBarOptions,\n },\n {\n id: 'form',\n label: 'Form Horizontal',\n navigationLabel: 'Horizontal',\n navigationSubgroupLabel: 'Form',\n group: 'Pages',\n navigationGroup: 'DataBodyTemplate',\n layoutClassName: 'layout-form',\n exportComponent: 'DataBodyTemplate',\n exportKind: 'databody',\n preset: { radius: 0.5 },\n options: topBarOptions,\n },\n {\n id: 'form-stacked',\n label: 'Form Stacked',\n navigationLabel: 'Stacked',\n group: 'Pages',\n navigationGroup: 'DataBodyTemplate',\n navigationParent: 'form',\n layoutClassName: 'layout-form-stacked',\n exportComponent: 'DataBodyTemplate',\n exportKind: 'databody',\n preset: { radius: 0.5 },\n options: topBarOptions,\n },\n {\n id: 'form-inline',\n label: 'Form Inline',\n navigationLabel: 'Inline',\n group: 'Pages',\n navigationGroup: 'DataBodyTemplate',\n navigationParent: 'form',\n layoutClassName: 'layout-form-inline',\n exportComponent: 'DataBodyTemplate',\n exportKind: 'databody',\n preset: { radius: 0.25 },\n options: topBarOptions,\n },\n {\n id: 'sectioned',\n label: 'Sectioned',\n group: 'Pages',\n navigationGroup: 'DataBodyTemplate',\n layoutClassName: 'layout-sectioned',\n exportComponent: 'DataBodyTemplate',\n exportKind: 'body-template',\n preset: { radius: 0.5 },\n options: topBarOptions,\n },\n // ── Common ───────────────────────────────────────────────────────────────────\n {\n id: 'typography',\n label: 'Typography',\n navigationSubgroupLabel: 'Typography',\n group: 'Design',\n navigationGroup: 'Common',\n layoutClassName: 'layout-typography',\n exportComponent: 'TypographyBodyTemplate',\n exportKind: 'body-template',\n preset: { radius: 0.375 },\n },\n {\n id: 'colors',\n label: 'Colors',\n navigationSubgroupLabel: 'Colors',\n group: 'Design',\n navigationGroup: 'Common',\n layoutClassName: 'layout-colors',\n exportComponent: 'ColorsBodyTemplate',\n exportKind: 'body-template',\n preset: { radius: 0.375 },\n },\n // ── FormWizardBodyTemplate ────────────────────────────────────────────────────\n {\n id: 'form-wizard',\n label: 'Wizard',\n group: 'Pages',\n navigationGroup: 'FormWizardBodyTemplate',\n layoutClassName: 'layout-form-wizard',\n exportComponent: 'FormWizardBodyTemplate',\n exportKind: 'body-template',\n preset: { radius: 0.5 },\n options: topBarOptions,\n },\n // ── LoginBodyTemplate ─────────────────────────────────────────────────────────\n {\n id: 'login',\n label: 'Sign In',\n navigationSubgroupLabel: 'Auth',\n group: 'Auth',\n navigationGroup: 'LoginBodyTemplate',\n layoutClassName: 'layout-login',\n exportComponent: 'LoginBodyTemplate',\n exportKind: 'login',\n preset: { radius: 0.5 },\n options: loginOptions,\n },\n {\n id: 'login-forgot',\n label: 'Forgot Password',\n navigationLabel: 'Forgot',\n group: 'Auth',\n navigationGroup: 'LoginBodyTemplate',\n navigationParent: 'login',\n layoutClassName: 'layout-login',\n exportComponent: 'LoginBodyTemplate',\n exportKind: 'login',\n preset: { radius: 0.5 },\n options: loginOptions,\n },\n {\n id: 'login-reset',\n label: 'Reset Password',\n navigationLabel: 'Reset',\n group: 'Auth',\n navigationGroup: 'LoginBodyTemplate',\n navigationParent: 'login',\n layoutClassName: 'layout-login',\n exportComponent: 'LoginBodyTemplate',\n exportKind: 'login',\n preset: { radius: 0.5 },\n options: loginOptions,\n },\n {\n id: 'login-otp',\n label: 'OTP Verification',\n navigationLabel: 'OTP',\n group: 'Auth',\n navigationGroup: 'LoginBodyTemplate',\n navigationParent: 'login',\n layoutClassName: 'layout-login',\n exportComponent: 'LoginBodyTemplate',\n exportKind: 'login',\n preset: { radius: 0.5 },\n options: loginOptions,\n },\n]\n\nexport function getTemplateDefinition(id: TemplateId) {\n return TEMPLATE_DEFINITIONS.find((definition) => definition.id === id)\n}\n\nexport function createTemplateOverrides(): Record<TemplateId, TemplateOverride> {\n return TEMPLATE_DEFINITIONS.reduce(\n (acc, definition) => {\n acc[definition.id] = { ...definition.preset }\n return acc\n },\n {} as Record<TemplateId, TemplateOverride>,\n )\n}\n","import { useEffect, useMemo, useState } from 'react'\nimport {\n DataGrid,\n DataGridCard,\n DataGridDrag,\n DataGridInfinity,\n DragHandleCell,\n type DataGridColumnDef,\n} from '@loykin/gridkit'\nimport type { Row, Table as TanStackTable } from '@tanstack/react-table'\n\nexport type DataGridViewVariant = 'standard' | 'infinity' | 'drag' | 'card' | 'card-list'\nexport type DataGridViewFilter<T> = (table: TanStackTable<T>) => React.ReactNode\n\nexport interface DataGridViewInfinityProps<T> {\n data?: T[]\n hasNextPage: boolean\n isFetchingNextPage: boolean\n fetchNextPage: () => void\n tableKey?: string\n}\n\nexport interface DataGridViewDragProps<T> {\n onRowReorder?: (rows: T[]) => void\n dragColumnSize?: number\n}\n\nexport interface DataGridViewCardProps<T> {\n renderCard?: (row: Row<T>) => React.ReactNode\n cardColumns?: number\n minCardWidth?: number\n minColumns?: number\n}\n\nexport interface DataGridViewProps<T extends Record<string, unknown>> {\n data: T[]\n columns: DataGridColumnDef<T>[]\n getRowId?: (row: T, index: number) => string\n variant?: DataGridViewVariant\n tableHeight?: string | number\n rowHeight?: number\n tableWidthMode?: 'spacer' | 'fill-last' | 'independent'\n enableSorting?: boolean\n enableColumnFilters?: boolean\n emptyMessage?: string\n headerLeft?: DataGridViewFilter<T>\n headerRight?: DataGridViewFilter<T>\n pagination?: { pageSize?: number } | false\n footer?: (table: TanStackTable<T>) => React.ReactNode\n infinity?: DataGridViewInfinityProps<T>\n drag?: DataGridViewDragProps<T>\n card?: DataGridViewCardProps<T>\n}\n\nexport type { DataGridColumnDef }\n\nexport function DataGridView<T extends Record<string, unknown>>({\n data,\n columns,\n getRowId = (_row, index) => String(index),\n variant = 'standard',\n tableHeight = '100%',\n rowHeight = 36,\n tableWidthMode = 'fill-last',\n enableSorting = true,\n enableColumnFilters,\n emptyMessage = 'No rows found',\n headerLeft,\n headerRight,\n pagination,\n footer,\n infinity,\n drag,\n card,\n}: DataGridViewProps<T>) {\n const [orderedData, setOrderedData] = useState<T[]>(data)\n\n useEffect(() => {\n setOrderedData(data)\n }, [data])\n\n const dragColumnSize = drag?.dragColumnSize ?? 28\n const dragColumns = useMemo<DataGridColumnDef<T>[]>(\n () => [\n {\n id: 'drag',\n size: dragColumnSize,\n minSize: dragColumnSize,\n maxSize: dragColumnSize,\n enableResizing: false,\n enableSorting: false,\n header: () => null,\n cell: () => <DragHandleCell />,\n meta: { align: 'center' },\n },\n ...columns,\n ],\n [columns, dragColumnSize],\n )\n\n const handleRowReorder = (rows: T[]) => {\n setOrderedData(rows)\n drag?.onRowReorder?.(rows)\n }\n\n if (variant === 'infinity') {\n return (\n <DataGridInfinity\n data={infinity?.data ?? data}\n columns={columns}\n getRowId={getRowId}\n tableHeight={tableHeight}\n rowHeight={rowHeight}\n enableSorting={enableSorting}\n enableColumnFilters={enableColumnFilters}\n tableWidthMode={tableWidthMode}\n headerLeft={headerLeft}\n headerRight={headerRight}\n hasNextPage={infinity?.hasNextPage ?? false}\n isFetchingNextPage={infinity?.isFetchingNextPage ?? false}\n fetchNextPage={infinity?.fetchNextPage ?? (() => undefined)}\n emptyMessage={emptyMessage}\n tableKey={infinity?.tableKey}\n />\n )\n }\n\n if (variant === 'drag') {\n return (\n <DataGridDrag\n data={orderedData}\n columns={dragColumns}\n getRowId={getRowId}\n onRowReorder={handleRowReorder}\n tableHeight={tableHeight}\n rowHeight={rowHeight}\n columnSizing={{ drag: dragColumnSize }}\n tableWidthMode={tableWidthMode}\n headerLeft={headerLeft}\n headerRight={headerRight}\n emptyMessage={emptyMessage}\n classNames={{\n cell: '[&[data-col-id=drag]]:px-1',\n headerCell: '[&[data-col-id=drag]]:px-1',\n }}\n />\n )\n }\n\n if (variant === 'card' || variant === 'card-list') {\n if (!card?.renderCard) {\n throw new Error('DataGridView card variants require card.renderCard.')\n }\n\n return (\n <DataGridCard\n data={data}\n columns={columns}\n getRowId={getRowId}\n tableHeight={tableHeight}\n rowHeight={rowHeight}\n enableSorting={enableSorting}\n enableColumnFilters={enableColumnFilters}\n tableWidthMode={tableWidthMode}\n headerLeft={headerLeft}\n headerRight={headerRight}\n cardColumns={card?.cardColumns ?? (variant === 'card-list' ? 1 : undefined)}\n minCardWidth={card?.minCardWidth ?? 220}\n minColumns={card?.minColumns ?? (variant === 'card-list' ? 1 : 2)}\n renderCard={card.renderCard}\n />\n )\n }\n\n return (\n <DataGrid\n data={data}\n columns={columns}\n getRowId={getRowId}\n tableHeight={tableHeight}\n rowHeight={rowHeight}\n enableSorting={enableSorting}\n enableColumnFilters={enableColumnFilters}\n tableWidthMode={tableWidthMode}\n headerLeft={headerLeft}\n headerRight={headerRight}\n pagination={pagination === false ? undefined : pagination}\n footer={footer}\n emptyMessage={emptyMessage}\n />\n )\n}\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 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 * 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 {\n DataGrid,\n DataGridCard,\n DataGridPaginationCompact,\n GlobalSearch,\n type DataGridColumnDef,\n} from '@loykin/gridkit'\nimport type { Table as TanStackTable } from '@tanstack/react-table'\nimport { DataBodyTemplate } from './DataBodyTemplate'\nimport { buildTopBar } from '@/components/templates/datapage/PageTopBar'\nimport { Badge } from '@/components/ui/badge'\nimport { Button } from '@/components/ui/button'\nimport { Card, CardContent } from '@/components/ui/card'\nimport { Switch } from '@/components/ui/switch'\nimport { Plus, Users, Search, RefreshCw } from 'lucide-react'\nimport { EmptyState } from '@/components/ui/empty-state'\nimport type { TemplateCodeContext } from '../code'\nimport React from 'react'\n\nexport interface DataBodyTemplateDemoProps {\n theme?: React.CSSProperties\n topBarShow?: string\n topBarVariant?: string\n topBarBg?: string\n}\n\ntype User = {\n id: string\n name: string\n email: string\n role: string\n status: 'active' | 'inactive' | 'pending'\n joined: string\n}\n\nconst users: User[] = [\n {\n id: '1',\n name: 'Sarah Kim',\n email: 'sarah@acme.com',\n role: 'Admin',\n status: 'active',\n joined: 'Jan 12, 2024',\n },\n {\n id: '2',\n name: 'Marcus Lee',\n email: 'marcus@acme.com',\n role: 'Editor',\n status: 'active',\n joined: 'Feb 3, 2024',\n },\n {\n id: '3',\n name: 'Ji-Yeon Park',\n email: 'jiyeon@acme.com',\n role: 'Viewer',\n status: 'inactive',\n joined: 'Mar 18, 2024',\n },\n {\n id: '4',\n name: 'Alex Chen',\n email: 'alex@acme.com',\n role: 'Editor',\n status: 'pending',\n joined: 'Apr 7, 2024',\n },\n]\n\nconst statusVariant = { active: 'default', pending: 'secondary', inactive: 'outline' } as const\n\nconst userColumns: DataGridColumnDef<User>[] = [\n {\n id: 'name',\n accessorKey: 'name',\n header: 'Name',\n cell: ({ row }) => <span className=\"font-medium\">{row.original.name}</span>,\n },\n {\n id: 'email',\n accessorKey: 'email',\n header: 'Email',\n cell: ({ row }) => <span className=\"text-muted-foreground\">{row.original.email}</span>,\n },\n {\n id: 'role',\n accessorKey: 'role',\n header: 'Role',\n cell: ({ row }) => (\n <Badge variant=\"outline\" className=\"text-xs font-normal\">\n {row.original.role}\n </Badge>\n ),\n },\n {\n id: 'status',\n accessorKey: 'status',\n header: 'Status',\n cell: ({ row }) => (\n <Badge variant={statusVariant[row.original.status]} className=\"text-xs capitalize\">\n {row.original.status}\n </Badge>\n ),\n },\n {\n id: 'joined',\n accessorKey: 'joined',\n header: 'Joined',\n cell: ({ row }) => <span className=\"text-xs text-muted-foreground\">{row.original.joined}</span>,\n },\n]\n\nconst headerLeft = (table: TanStackTable<User>) => (\n <GlobalSearch table={table} placeholder=\"Search...\" />\n)\n\nconst headerRight = () => (\n <Button size=\"sm\" className=\"h-8 gap-1.5 text-xs\">\n <Plus className=\"h-3.5 w-3.5\" />\n Add User\n </Button>\n)\n\nfunction UserTable() {\n return (\n <DataGrid\n data={users}\n columns={userColumns}\n getRowId={(row) => row.id}\n tableHeight={420}\n rowHeight={36}\n enableSorting\n tableWidthMode=\"fill-last\"\n headerLeft={headerLeft}\n headerRight={headerRight}\n pagination={{ pageSize: 10 }}\n footer={(table) => (\n <div className=\"flex h-9 items-center justify-between px-1 text-xs text-muted-foreground\">\n <span>{users.length} results</span>\n <DataGridPaginationCompact table={table} />\n </div>\n )}\n />\n )\n}\n\nfunction UserCards() {\n return (\n <DataGridCard\n data={users}\n columns={userColumns}\n getRowId={(row) => row.id}\n tableHeight={420}\n rowHeight={36}\n enableSorting\n tableWidthMode=\"fill-last\"\n headerLeft={headerLeft}\n headerRight={headerRight}\n minCardWidth={220}\n minColumns={2}\n renderCard={(row) => (\n <Card size=\"sm\" className=\"h-full rounded-lg border border-border shadow-sm ring-0\">\n <CardContent className=\"py-3\">\n <div className=\"flex items-start justify-between gap-3\">\n <div className=\"min-w-0\">\n <p className=\"truncate text-sm font-medium\">{row.original.name}</p>\n <p className=\"truncate text-xs text-muted-foreground\">{row.original.email}</p>\n </div>\n <Badge variant={statusVariant[row.original.status]} className=\"text-xs capitalize\">\n {row.original.status}\n </Badge>\n </div>\n <div className=\"mt-4 grid grid-cols-2 gap-3 text-xs\">\n <div>\n <p className=\"text-muted-foreground\">Role</p>\n <p className=\"mt-0.5 font-medium\">{row.original.role}</p>\n </div>\n <div>\n <p className=\"text-muted-foreground\">Joined</p>\n <p className=\"mt-0.5 font-medium\">{row.original.joined}</p>\n </div>\n </div>\n </CardContent>\n </Card>\n )}\n />\n )\n}\n\nconst recentColumns: DataGridColumnDef<User>[] = [\n {\n id: 'name',\n accessorKey: 'name',\n header: 'Name',\n cell: ({ row }) => <span className=\"font-medium\">{row.original.name}</span>,\n },\n {\n id: 'role',\n accessorKey: 'role',\n header: 'Role',\n cell: ({ row }) => (\n <Badge variant=\"outline\" className=\"text-xs font-normal\">\n {row.original.role}\n </Badge>\n ),\n },\n {\n id: 'status',\n accessorKey: 'status',\n header: 'Status',\n cell: ({ row }) => (\n <Badge variant={statusVariant[row.original.status]} className=\"text-xs capitalize\">\n {row.original.status}\n </Badge>\n ),\n },\n {\n id: 'joined',\n accessorKey: 'joined',\n header: 'Joined',\n cell: ({ row }) => <span className=\"text-xs text-muted-foreground\">{row.original.joined}</span>,\n },\n]\n\nfunction OverviewContent() {\n return (\n <>\n <DataBodyTemplate.Group\n layout=\"horizontal\"\n title=\"Workspace\"\n description=\"Basic workspace information and plan details.\"\n >\n <div className=\"space-y-3\">\n <DataBodyTemplate.Row label=\"Workspace name\">\n <span className=\"text-sm\">Acme Corp</span>\n </DataBodyTemplate.Row>\n <DataBodyTemplate.Row label=\"Plan\">\n <Badge variant=\"secondary\" className=\"text-xs\">\n Pro\n </Badge>\n </DataBodyTemplate.Row>\n <DataBodyTemplate.Row label=\"Region\">\n <span className=\"text-sm text-muted-foreground\">us-east-1</span>\n </DataBodyTemplate.Row>\n <DataBodyTemplate.Row label=\"SSO\">\n <Switch defaultChecked />\n </DataBodyTemplate.Row>\n </div>\n </DataBodyTemplate.Group>\n\n <DataBodyTemplate.Group layout=\"stacked\" title=\"Members\" description=\"Recently added members.\">\n <DataGrid\n data={users}\n columns={recentColumns}\n getRowId={(row) => row.id}\n tableHeight={220}\n rowHeight={36}\n tableWidthMode=\"fill-last\"\n headerRight={() => (\n <Button size=\"sm\" className=\"h-8 gap-1.5 text-xs\">\n <Plus className=\"h-3.5 w-3.5\" />\n Invite\n </Button>\n )}\n />\n </DataBodyTemplate.Group>\n </>\n )\n}\n\nfunction CustomContent() {\n return (\n <Card className=\"rounded-lg border border-border ring-0\">\n <CardContent className=\"grid gap-3 p-4 md:grid-cols-3\">\n {['Header', 'Tabs', 'Content'].map((label) => (\n <div key={label} className=\"rounded-lg border bg-muted/30 p-3\">\n <p className=\"text-sm font-medium\">{label}</p>\n <p className=\"mt-1 text-xs text-muted-foreground\">ReactNode slot</p>\n </div>\n ))}\n </CardContent>\n </Card>\n )\n}\n\nexport function DataBodyTemplateDemo({ theme, topBarShow, topBarVariant, topBarBg }: DataBodyTemplateDemoProps) {\n return (\n <DataBodyTemplate\n theme={theme}\n topBar={buildTopBar({ topBarShow, topBarVariant, topBarBg, left: 'Design / Body Template' })}\n title=\"Body Template\"\n description=\"Compound body shell with optional tabs and arbitrary content\"\n >\n <DataBodyTemplate.Tab id=\"overview\" label=\"Overview\">\n <OverviewContent />\n </DataBodyTemplate.Tab>\n <DataBodyTemplate.Tab id=\"table\" label=\"Table\" count={users.length}>\n <UserTable />\n </DataBodyTemplate.Tab>\n <DataBodyTemplate.Tab id=\"cards\" label=\"Cards\" count={users.length}>\n <UserCards />\n </DataBodyTemplate.Tab>\n <DataBodyTemplate.Tab id=\"custom\" label=\"Custom\">\n <CustomContent />\n </DataBodyTemplate.Tab>\n <DataBodyTemplate.Tab id=\"empty\" label=\"Empty\">\n <div className=\"space-y-6 py-4\">\n <EmptyState\n icon={Users}\n title=\"No users yet\"\n description=\"Add your first user to get started.\"\n action={{ label: 'Add User', onClick: () => {} }}\n />\n <div className=\"border-t\" />\n <EmptyState\n icon={Search}\n title=\"No results found\"\n description=\"Try adjusting your search or filters.\"\n action={{ label: 'Clear filters', variant: 'ghost', onClick: () => {} }}\n />\n <div className=\"border-t\" />\n <EmptyState\n icon={RefreshCw}\n title=\"Something went wrong\"\n description=\"Failed to load data. Please try again.\"\n action={{ label: 'Retry', onClick: () => {} }}\n />\n </div>\n </DataBodyTemplate.Tab>\n </DataBodyTemplate>\n )\n}\n\nexport function buildDataBodyTemplateCode({ themeProp, layoutClassName }: TemplateCodeContext) {\n return [\n `import { DataBodyTemplate } from '@loykin/designkit'`,\n `import '@loykin/designkit/styles'`,\n '',\n `export function MyPage() {`,\n ` return (`,\n ` <DataBodyTemplate${themeProp}`,\n ` className=\"${layoutClassName}\"`,\n ` title=\"Page Title\"`,\n ` >`,\n ` <DataBodyTemplate.Tab id=\"table\" label=\"Table\">`,\n ` {/* table content */}`,\n ` </DataBodyTemplate.Tab>`,\n ``,\n ` <DataBodyTemplate.Tab id=\"split\" label=\"Split\">`,\n ` <DataBodyTemplate.Group layout=\"split\">`,\n ` <aside>{/* list content */}</aside>`,\n ` <section>{/* detail content */}</section>`,\n ` </DataBodyTemplate.Group>`,\n ` </DataBodyTemplate.Tab>`,\n ` </DataBodyTemplate>`,\n ` )`,\n `}`,\n ].join('\\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 { useState } from 'react'\nimport {\n FormWizardBodyTemplate,\n type FormWizardStep,\n type FormWizardVariant,\n} from '@/components/templates'\nimport { buildTopBar } from '@/components/templates/datapage/PageTopBar'\nimport { Input } from '@/components/ui/input'\nimport { Label } from '@/components/ui/label'\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from '@/components/ui/select'\nimport { Switch } from '@/components/ui/switch'\nimport { Checkbox } from '@/components/ui/checkbox'\nimport { Badge } from '@/components/ui/badge'\nimport type { TemplateCodeContext } from '../code'\n\nconst steps: FormWizardStep[] = [\n {\n key: 'account',\n title: 'Your Details',\n description: 'Create your account credentials.',\n content: (\n <div className=\"space-y-3\">\n <div className=\"grid grid-cols-2 gap-3\">\n <div className=\"space-y-1.5\">\n <Label htmlFor=\"wiz-first-name\" className=\"text-xs\">First Name</Label>\n <Input id=\"wiz-first-name\" defaultValue=\"Sarah\" className=\"h-8 text-sm\" />\n </div>\n <div className=\"space-y-1.5\">\n <Label htmlFor=\"wiz-last-name\" className=\"text-xs\">Last Name</Label>\n <Input id=\"wiz-last-name\" defaultValue=\"Kim\" className=\"h-8 text-sm\" />\n </div>\n </div>\n <div className=\"space-y-1.5\">\n <Label htmlFor=\"wiz-email\" className=\"text-xs\">Work Email</Label>\n <Input id=\"wiz-email\" type=\"email\" defaultValue=\"sarah@acme.com\" className=\"h-8 text-sm\" />\n </div>\n <div className=\"space-y-1.5\">\n <Label htmlFor=\"wiz-password\" className=\"text-xs\">Password</Label>\n <Input id=\"wiz-password\" type=\"password\" placeholder=\"••••••••\" className=\"h-8 text-sm\" />\n <p className=\"text-xs text-muted-foreground\">At least 8 characters.</p>\n </div>\n <div className=\"space-y-1.5\">\n <Label htmlFor=\"wiz-confirm-password\" className=\"text-xs\">Confirm Password</Label>\n <Input id=\"wiz-confirm-password\" type=\"password\" placeholder=\"••••••••\" className=\"h-8 text-sm\" />\n </div>\n </div>\n ),\n },\n {\n key: 'role',\n title: 'Your Role',\n description: 'Tell us about yourself so we can tailor your experience.',\n content: (\n <div className=\"space-y-3\">\n <div className=\"space-y-1.5\">\n <Label htmlFor=\"wiz-job-title\" className=\"text-xs\">Job Title</Label>\n <Input id=\"wiz-job-title\" defaultValue=\"Senior Frontend Engineer\" className=\"h-8 text-sm\" />\n </div>\n <div className=\"space-y-1.5\">\n <Label htmlFor=\"wiz-department\" className=\"text-xs\">Department</Label>\n <Select defaultValue=\"engineering\">\n <SelectTrigger className=\"h-8 text-sm\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"engineering\">Engineering</SelectItem>\n <SelectItem value=\"design\">Design</SelectItem>\n <SelectItem value=\"product\">Product</SelectItem>\n <SelectItem value=\"marketing\">Marketing</SelectItem>\n <SelectItem value=\"ops\">Operations</SelectItem>\n </SelectContent>\n </Select>\n </div>\n <div className=\"space-y-1.5\">\n <Label htmlFor=\"wiz-team-size\" className=\"text-xs\">Team Size</Label>\n <Select defaultValue=\"11-50\">\n <SelectTrigger id=\"wiz-team-size\" className=\"h-8 text-sm\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"1-10\">1–10</SelectItem>\n <SelectItem value=\"11-50\">11–50</SelectItem>\n <SelectItem value=\"51-200\">51–200</SelectItem>\n <SelectItem value=\"200+\">200+</SelectItem>\n </SelectContent>\n </Select>\n </div>\n </div>\n ),\n },\n {\n key: 'preferences',\n title: 'Preferences',\n description: 'Configure your defaults. You can change these anytime.',\n content: (\n <div className=\"space-y-4\">\n <div className=\"grid grid-cols-2 gap-3\">\n <div className=\"space-y-1.5\">\n <Label className=\"text-xs\">Timezone</Label>\n <Select defaultValue=\"asia-seoul\">\n <SelectTrigger className=\"h-8 text-sm\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"asia-seoul\">Asia / Seoul</SelectItem>\n <SelectItem value=\"us-eastern\">US / Eastern</SelectItem>\n <SelectItem value=\"us-pacific\">US / Pacific</SelectItem>\n <SelectItem value=\"europe-london\">Europe / London</SelectItem>\n </SelectContent>\n </Select>\n </div>\n <div className=\"space-y-1.5\">\n <Label className=\"text-xs\">Date Format</Label>\n <Select defaultValue=\"ymd\">\n <SelectTrigger className=\"h-8 text-sm\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"ymd\">YYYY-MM-DD</SelectItem>\n <SelectItem value=\"mdy\">MM/DD/YYYY</SelectItem>\n <SelectItem value=\"dmy\">DD/MM/YYYY</SelectItem>\n </SelectContent>\n </Select>\n </div>\n </div>\n <div className=\"space-y-3 pt-1\">\n {[\n { label: 'Email notifications', desc: 'Get notified of important activity.', on: true },\n { label: 'Weekly digest', desc: 'A weekly summary email every Monday.', on: false },\n { label: 'Browser push', desc: 'Real-time desktop notifications.', on: true },\n ].map((item) => (\n <div key={item.label} className=\"flex items-center justify-between\">\n <div>\n <p className=\"text-sm font-medium\">{item.label}</p>\n <p className=\"text-xs text-muted-foreground\">{item.desc}</p>\n </div>\n <Switch defaultChecked={item.on} />\n </div>\n ))}\n </div>\n </div>\n ),\n },\n {\n key: 'review',\n title: 'Review & Confirm',\n description: 'Check your details before creating the account.',\n content: (\n <div className=\"space-y-4\">\n <div className=\"rounded-lg border divide-y\">\n {[\n { label: 'Name', value: 'Sarah Kim' },\n { label: 'Email', value: 'sarah@acme.com' },\n { label: 'Department', value: 'Engineering' },\n { label: 'Timezone', value: 'Asia / Seoul' },\n ].map((row) => (\n <div key={row.label} className=\"flex items-center justify-between px-4 py-2.5\">\n <span className=\"text-xs text-muted-foreground w-28 shrink-0\">{row.label}</span>\n <span className=\"text-sm font-medium flex-1\">{row.value}</span>\n <Badge variant=\"outline\" className=\"text-[10px] h-5\">\n Edit\n </Badge>\n </div>\n ))}\n </div>\n <div className=\"flex items-start gap-2.5 pt-1\">\n <Checkbox id=\"terms\" className=\"mt-0.5\" />\n <Label\n htmlFor=\"terms\"\n className=\"text-xs text-muted-foreground leading-relaxed cursor-pointer\"\n >\n I agree to the{' '}\n <span className=\"text-foreground underline underline-offset-2\">Terms of Service</span>{' '}\n and <span className=\"text-foreground underline underline-offset-2\">Privacy Policy</span>\n .\n </Label>\n </div>\n </div>\n ),\n },\n]\n\nexport function FormWizardBodyTemplateDemo({\n theme,\n variant,\n topBarShow,\n topBarVariant,\n topBarBg,\n}: {\n theme?: React.CSSProperties\n variant?: FormWizardVariant\n topBarShow?: string\n topBarVariant?: string\n topBarBg?: string\n}) {\n const [activeStep, setActiveStep] = useState(0)\n\n return (\n <FormWizardBodyTemplate\n theme={theme}\n variant={variant}\n topBar={buildTopBar({ topBarShow, topBarVariant, topBarBg, left: 'Pages / Form / Wizard' })}\n title=\"Create Account\"\n steps={steps}\n activeStep={activeStep}\n onNext={() => setActiveStep((s) => Math.min(s + 1, steps.length - 1))}\n onBack={() => setActiveStep((s) => Math.max(s - 1, 0))}\n onFinish={() => setActiveStep(0)}\n />\n )\n}\n\nexport function buildFormWizardBodyTemplateCode({ themeProp }: TemplateCodeContext) {\n return [\n `import { useState } from 'react'`,\n `import { FormWizardBodyTemplate, type FormWizardStep } from '@loykin/designkit'`,\n `import '@loykin/designkit/styles'`,\n '',\n `const steps: FormWizardStep[] = [`,\n ` { key: 'info', title: 'Basic Info', content: <div>{/* step 1 */}</div> },`,\n ` { key: 'config', title: 'Configuration', content: <div>{/* step 2 */}</div> },`,\n ` { key: 'review', title: 'Review', content: <div>{/* step 3 */}</div> },`,\n `]`,\n '',\n `export function MyPage() {`,\n ` const [step, setStep] = useState(0)`,\n ` return (`,\n ` <FormWizardBodyTemplate${themeProp}`,\n ` title=\"Setup Wizard\"`,\n ` steps={steps}`,\n ` activeStep={step}`,\n ` onNext={() => setStep((s) => Math.min(s + 1, steps.length - 1))}`,\n ` onBack={() => setStep((s) => Math.max(s - 1, 0))}`,\n ` onFinish={() => { /* handle finish */ }}`,\n ` />`,\n ` )`,\n `}`,\n ].join('\\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 { createTemplateOverrides } from '@/components/templates/definitions'\nimport type { ThemeState } 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: createTemplateOverrides(),\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 React, { useEffect, useState } from 'react'\nimport { DataGridPaginationCompact, GlobalSearch, type DataGridColumnDef } from '@loykin/gridkit'\nimport type { Row, Table as TanStackTable } from '@tanstack/react-table'\nimport { DataBodyTemplate } from '@/components/templates/databody/DataBodyTemplate'\nimport { PageTopBar, buildTopBar } from '@/components/templates/datapage/PageTopBar'\nimport { Badge } from '@/components/ui/badge'\nimport { Button } from '@/components/ui/button'\nimport { Card, CardContent } from '@/components/ui/card'\nimport { Download, Plus } from 'lucide-react'\nimport { DataGridView, type DataGridViewVariant } from './DataGridView'\nimport type { TemplateCodeContext } from '../code'\n\nexport interface DataGridTemplateDemoProps {\n theme?: React.CSSProperties\n variant?: DataGridViewVariant\n layoutClassName?: string\n topBar?: React.ReactNode\n title?: React.ReactNode\n description?: React.ReactNode\n topBarShow?: string\n topBarVariant?: string\n topBarBg?: string\n}\n\ntype DemoRow = {\n id: string\n name: string\n email: string\n role: string\n status: 'active' | 'inactive' | 'pending'\n joined: string\n}\n\nconst demoData: DemoRow[] = [\n {\n id: '1',\n name: 'Sarah Kim',\n email: 'sarah@acme.com',\n role: 'Admin',\n status: 'active',\n joined: 'Jan 12, 2024',\n },\n {\n id: '2',\n name: 'Marcus Lee',\n email: 'marcus@acme.com',\n role: 'Editor',\n status: 'active',\n joined: 'Feb 3, 2024',\n },\n {\n id: '3',\n name: 'Ji-Yeon Park',\n email: 'jiyeon@acme.com',\n role: 'Viewer',\n status: 'inactive',\n joined: 'Mar 18, 2024',\n },\n {\n id: '4',\n name: 'Alex Chen',\n email: 'alex@acme.com',\n role: 'Editor',\n status: 'active',\n joined: 'Apr 7, 2024',\n },\n {\n id: '5',\n name: 'Dana White',\n email: 'dana@acme.com',\n role: 'Viewer',\n status: 'pending',\n joined: 'Apr 29, 2024',\n },\n {\n id: '6',\n name: 'Leo Torres',\n email: 'leo@acme.com',\n role: 'Admin',\n status: 'inactive',\n joined: 'May 1, 2024',\n },\n {\n id: '7',\n name: 'Mina Seo',\n email: 'mina@acme.com',\n role: 'Editor',\n status: 'active',\n joined: 'May 2, 2024',\n },\n {\n id: '8',\n name: 'Ryan Patel',\n email: 'ryan@acme.com',\n role: 'Viewer',\n status: 'active',\n joined: 'May 15, 2024',\n },\n {\n id: '9',\n name: 'Yuna Choi',\n email: 'yuna@acme.com',\n role: 'Editor',\n status: 'pending',\n joined: 'Jun 3, 2024',\n },\n {\n id: '10',\n name: 'Tom Fischer',\n email: 'tom@acme.com',\n role: 'Viewer',\n status: 'active',\n joined: 'Jun 20, 2024',\n },\n]\n\nconst demoInfiniteData: DemoRow[] = Array.from({ length: 120 }, (_, index) => {\n const source = demoData[index % demoData.length]\n const id = String(index + 1)\n return {\n ...source,\n id,\n name: `${source.name} ${id}`,\n email: source.email.replace('@', `+${id}@`),\n }\n})\n\nconst statusVariant = { active: 'default', pending: 'secondary', inactive: 'outline' } as const\n\nconst demoColumns: DataGridColumnDef<DemoRow>[] = [\n {\n id: 'name',\n accessorKey: 'name',\n header: 'Name',\n cell: ({ row }) => <span className=\"font-medium\">{row.original.name}</span>,\n },\n {\n id: 'email',\n accessorKey: 'email',\n header: 'Email',\n cell: ({ row }) => <span className=\"text-muted-foreground\">{row.original.email}</span>,\n },\n {\n id: 'role',\n accessorKey: 'role',\n header: 'Role',\n cell: ({ row }) => (\n <Badge variant=\"outline\" className=\"text-xs font-normal\">\n {row.original.role}\n </Badge>\n ),\n },\n {\n id: 'status',\n accessorKey: 'status',\n header: 'Status',\n cell: ({ row }) => (\n <Badge variant={statusVariant[row.original.status]} className=\"text-xs capitalize\">\n {row.original.status}\n </Badge>\n ),\n },\n {\n id: 'joined',\n accessorKey: 'joined',\n header: 'Joined',\n cell: ({ row }) => <span className=\"text-xs text-muted-foreground\">{row.original.joined}</span>,\n },\n]\n\nconst headerLeft = (table: TanStackTable<DemoRow>) => (\n <GlobalSearch table={table} placeholder=\"Search...\" />\n)\n\nconst headerRight = () => (\n <div className=\"flex items-center gap-2\">\n <Button variant=\"outline\" size=\"sm\" className=\"h-8 gap-1.5 text-xs\">\n <Download className=\"h-3.5 w-3.5\" />\n Export\n </Button>\n <Button size=\"sm\" className=\"h-8 gap-1.5 text-xs\">\n <Plus className=\"h-3.5 w-3.5\" />\n Add User\n </Button>\n </div>\n)\n\nfunction renderDemoCard(variant: DataGridViewVariant) {\n return (row: Row<DemoRow>) => {\n const user = row.original\n\n if (variant === 'card-list') {\n return (\n <Card size=\"sm\" className=\"rounded-lg border border-border shadow-sm ring-0\">\n <CardContent className=\"flex items-center justify-between gap-4 py-2.5\">\n <div className=\"min-w-0\">\n <p className=\"truncate text-sm font-medium\">{user.name}</p>\n <p className=\"truncate text-xs text-muted-foreground\">{user.email}</p>\n </div>\n <div className=\"flex shrink-0 items-center gap-4 text-xs\">\n <span className=\"text-muted-foreground\">{user.role}</span>\n <Badge variant={statusVariant[user.status]} className=\"text-xs capitalize\">\n {user.status}\n </Badge>\n <span className=\"w-20 text-right text-muted-foreground\">{user.joined}</span>\n </div>\n </CardContent>\n </Card>\n )\n }\n\n return (\n <Card size=\"sm\" className=\"h-full rounded-lg border border-border shadow-sm ring-0\">\n <CardContent className=\"py-3\">\n <div className=\"flex items-start justify-between gap-3\">\n <div className=\"min-w-0\">\n <p className=\"truncate text-sm font-medium\">{user.name}</p>\n <p className=\"truncate text-xs text-muted-foreground\">{user.email}</p>\n </div>\n <Badge variant={statusVariant[user.status]} className=\"text-xs capitalize\">\n {user.status}\n </Badge>\n </div>\n <div className=\"mt-4 grid grid-cols-2 gap-3 text-xs\">\n <div>\n <p className=\"text-muted-foreground\">Role</p>\n <p className=\"mt-0.5 font-medium\">{user.role}</p>\n </div>\n <div>\n <p className=\"text-muted-foreground\">Joined</p>\n <p className=\"mt-0.5 font-medium\">{user.joined}</p>\n </div>\n </div>\n </CardContent>\n </Card>\n )\n }\n}\n\nfunction getDefaultLayoutClassName(variant: DataGridViewVariant) {\n return variant === 'standard' ? 'layout-table' : `layout-table-${variant}`\n}\n\nexport function DataGridTemplateDemo({\n theme,\n variant = 'standard',\n layoutClassName = getDefaultLayoutClassName(variant),\n topBar,\n title = 'Users',\n description,\n topBarShow,\n topBarVariant,\n topBarBg,\n}: DataGridTemplateDemoProps) {\n const resolvedTopBar =\n topBarShow !== undefined || topBarVariant !== undefined || topBarBg !== undefined\n ? buildTopBar({ topBarShow, topBarVariant, topBarBg, left: 'Data / Table' })\n : topBar ?? <PageTopBar left=\"Data / Table\" />\n const [visibleCount, setVisibleCount] = useState(40)\n const [isFetching, setIsFetching] = useState(false)\n const visibleData = demoInfiniteData.slice(0, visibleCount)\n const hasNextPage = visibleCount < demoInfiniteData.length\n\n useEffect(() => {\n setVisibleCount(40)\n }, [variant])\n\n const fetchNextPage = () => {\n if (isFetching || !hasNextPage) return\n setIsFetching(true)\n window.setTimeout(() => {\n setVisibleCount((count) => Math.min(count + 30, demoInfiniteData.length))\n setIsFetching(false)\n }, 250)\n }\n\n return (\n <DataBodyTemplate\n theme={{ '--dg-card-padding': '0px', ...theme } as React.CSSProperties}\n className={layoutClassName}\n topBar={resolvedTopBar}\n title={title}\n description={description}\n contentClassName={variant === 'infinity' ? 'pb-0' : undefined}\n >\n <DataBodyTemplate.Body className=\"[&_.dg-shell]:h-full [&_.dg-table-wrapper]:min-h-0 [&_.dg-table-wrapper]:flex-1\">\n <DataGridView\n data={variant === 'infinity' ? visibleData : demoData}\n columns={demoColumns}\n getRowId={(row) => row.id}\n variant={variant}\n enableColumnFilters={\n variant === 'infinity' || variant === 'card' || variant === 'card-list'\n }\n headerLeft={headerLeft}\n headerRight={headerRight}\n pagination={{ pageSize: 10 }}\n footer={(table) => (\n <div className=\"flex h-9 items-center justify-between px-1 text-xs text-muted-foreground\">\n <span>{demoData.length} results</span>\n <DataGridPaginationCompact table={table} />\n </div>\n )}\n infinity={{\n data: visibleData,\n hasNextPage,\n isFetchingNextPage: isFetching,\n fetchNextPage,\n tableKey: 'table-infinity-template',\n }}\n card={{ renderCard: renderDemoCard(variant) }}\n />\n </DataBodyTemplate.Body>\n </DataBodyTemplate>\n )\n}\n\nexport function buildDataGridTemplateCode({\n definition,\n themeProp,\n layoutClassName,\n}: TemplateCodeContext) {\n const variant = definition.preview?.variant\n const variantProp = variant && variant !== 'standard' ? `\\n variant=\"${variant}\"` : ''\n const cN = 'className'\n const cardRenderCode =\n definition.exportKind === 'data-grid-card'\n ? [\n '',\n `function renderCard(row: { original: User }) {`,\n ` const user = row.original`,\n ` return (`,\n ` <div ${cN}=\"rounded-lg border bg-card p-3 text-card-foreground\">`,\n ` <p ${cN}=\"text-sm font-medium\">{user.name}</p>`,\n ` <p ${cN}=\"text-xs text-muted-foreground\">{user.email}</p>`,\n ` </div>`,\n ` )`,\n `}`,\n ].join('\\n')\n : ''\n const cardProp =\n definition.exportKind === 'data-grid-card' ? `\\n card={{ renderCard }}` : ''\n\n return [\n `import { DataBodyTemplate, DataGridView, PageTopBar, type DataGridColumnDef } from '@loykin/designkit'`,\n `import '@loykin/designkit/styles'`,\n '',\n `type User = Record<string, unknown> & { id: string; name: string; email: string }`,\n ``,\n `const data: User[] = []`,\n `const columns: DataGridColumnDef<User>[] = [`,\n ` { id: 'name', accessorKey: 'name', header: 'Name' },`,\n ` { id: 'email', accessorKey: 'email', header: 'Email' },`,\n `]`,\n cardRenderCode,\n '',\n `export function MyPage() {`,\n ` return (`,\n ` <DataBodyTemplate${themeProp}`,\n ` className=\"${layoutClassName}\"`,\n ` topBar={<PageTopBar left=\"Data / Users\" />}`,\n ` title=\"Users\"`,\n ` >`,\n ` <DataBodyTemplate.Body>`,\n ` <DataGridView${variantProp}`,\n ` data={data}`,\n ` columns={columns}`,\n ` getRowId={(row) => row.id}${cardProp}`,\n ` tableHeight={420}`,\n ` />`,\n ` </DataBodyTemplate.Body>`,\n ` </DataBodyTemplate>`,\n ` )`,\n `}`,\n ]\n .filter(Boolean)\n .join('\\n')\n}\n","import { DataBodyTemplate } from './DataBodyTemplate'\nimport { buildTopBar } from '@/components/templates/datapage/PageTopBar'\nimport { Badge } from '@/components/ui/badge'\nimport { Button } from '@/components/ui/button'\nimport type { TemplateCodeContext } from '../code'\n\nexport function DetailBodyTemplateDemo({ theme, topBarShow, topBarVariant, topBarBg }: { theme?: React.CSSProperties; topBarShow?: string; topBarVariant?: string; topBarBg?: string }) {\n return (\n <DataBodyTemplate\n theme={theme}\n topBar={buildTopBar({ topBarShow, topBarVariant, topBarBg, left: 'Users / Sarah Kim' })}\n title=\"Sarah Kim\"\n description=\"sarah@acme.com\"\n actions={\n <div className=\"flex gap-2\">\n <Button variant=\"outline\" size=\"sm\" className=\"h-8 text-xs\">\n Delete\n </Button>\n <Button size=\"sm\" className=\"h-8 text-xs\">\n Edit\n </Button>\n </div>\n }\n >\n <DataBodyTemplate.Group layout=\"inline\" title=\"Identity\">\n <DataBodyTemplate.Field label=\"Full name\">Sarah Kim</DataBodyTemplate.Field>\n <DataBodyTemplate.Field label=\"Email\">sarah@acme.com</DataBodyTemplate.Field>\n <DataBodyTemplate.Field label=\"Role\">\n <Badge variant=\"outline\" className=\"text-xs font-normal\">\n Admin\n </Badge>\n </DataBodyTemplate.Field>\n <DataBodyTemplate.Field label=\"Status\">\n <Badge className=\"text-xs capitalize\">Active</Badge>\n </DataBodyTemplate.Field>\n <DataBodyTemplate.Field label=\"Joined\">Jan 12, 2024</DataBodyTemplate.Field>\n </DataBodyTemplate.Group>\n\n <DataBodyTemplate.Group layout=\"inline\" title=\"Account\">\n <DataBodyTemplate.Field label=\"Plan\">Business</DataBodyTemplate.Field>\n <DataBodyTemplate.Field label=\"Seats used\">12 / 20</DataBodyTemplate.Field>\n <DataBodyTemplate.Field label=\"Billing cycle\">Monthly</DataBodyTemplate.Field>\n <DataBodyTemplate.Field label=\"Next renewal\">Jun 1, 2025</DataBodyTemplate.Field>\n </DataBodyTemplate.Group>\n\n <DataBodyTemplate.Group layout=\"inline\" title=\"Danger zone\" danger>\n <DataBodyTemplate.Field label=\"Deactivate account\">\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-7 text-xs text-destructive hover:text-destructive\"\n >\n Deactivate\n </Button>\n </DataBodyTemplate.Field>\n </DataBodyTemplate.Group>\n </DataBodyTemplate>\n )\n}\n\nexport function buildDetailBodyTemplateCode({ themeProp, layoutClassName }: TemplateCodeContext) {\n return [\n `import { DataBodyTemplate } from '@loykin/designkit'`,\n `import '@loykin/designkit/styles'`,\n '',\n `export function MyPage() {`,\n ` return (`,\n ` <DataBodyTemplate${themeProp}`,\n ` className=\"${layoutClassName}\"`,\n ` breadcrumb=\"Users / Detail\"`,\n ` title=\"Sarah Kim\"`,\n ` actions={<button>Edit</button>}`,\n ` >`,\n ` <DataBodyTemplate.Group layout=\"inline\" title=\"Identity\">`,\n ` <DataBodyTemplate.Field label=\"Name\">Sarah Kim</DataBodyTemplate.Field>`,\n ` <DataBodyTemplate.Field label=\"Email\">sarah@acme.com</DataBodyTemplate.Field>`,\n ` </DataBodyTemplate.Group>`,\n ` </DataBodyTemplate>`,\n ` )`,\n `}`,\n ].join('\\n')\n}\n","import { useState } from 'react'\nimport { DataBodyTemplate } from './DataBodyTemplate'\nimport { buildTopBar } from '@/components/templates/datapage/PageTopBar'\nimport { Badge } from '@/components/ui/badge'\nimport { Button } from '@/components/ui/button'\nimport type { TemplateCodeContext } from '../code'\n\ntype User = {\n id: string\n name: string\n email: string\n role: string\n status: 'active' | 'inactive' | 'pending'\n}\n\nconst users: User[] = [\n { id: '1', name: 'Sarah Kim', email: 'sarah@acme.com', role: 'Admin', status: 'active' },\n { id: '2', name: 'Marcus Lee', email: 'marcus@acme.com', role: 'Editor', status: 'active' },\n { id: '3', name: 'Ji-Yeon Park', email: 'jiyeon@acme.com', role: 'Viewer', status: 'inactive' },\n { id: '4', name: 'Alex Chen', email: 'alex@acme.com', role: 'Editor', status: 'pending' },\n]\n\nconst statusVariant = { active: 'default', pending: 'secondary', inactive: 'outline' } as const\n\nexport function SplitBodyTemplateDemo({ theme, topBarShow, topBarVariant, topBarBg }: { theme?: React.CSSProperties; topBarShow?: string; topBarVariant?: string; topBarBg?: string }) {\n const [active, setActive] = useState(users[0])\n\n return (\n <DataBodyTemplate\n theme={theme}\n topBar={buildTopBar({ topBarShow, topBarVariant, topBarBg, left: 'Users' })}\n title=\"Users\"\n actions={\n <Button size=\"sm\" className=\"h-8 text-xs\">\n Add User\n </Button>\n }\n >\n <DataBodyTemplate.Group layout=\"split\">\n <div className=\"space-y-0.5 p-2\">\n {users.map((u) => (\n <button\n key={u.id}\n type=\"button\"\n onClick={() => setActive(u)}\n className={[\n 'block w-full rounded-lg px-3 py-2 text-left transition-colors',\n u.id === active.id ? 'bg-accent text-accent-foreground' : 'hover:bg-muted',\n ].join(' ')}\n >\n <span className=\"block truncate text-sm font-medium\">{u.name}</span>\n <span className=\"block truncate text-xs text-muted-foreground\">{u.email}</span>\n </button>\n ))}\n </div>\n <div className=\"space-y-4 p-(--dk-panel-gap)\">\n <div className=\"flex items-start justify-between gap-3\">\n <div>\n <h2 className=\"text-base font-semibold\">{active.name}</h2>\n <p className=\"text-sm text-muted-foreground\">{active.email}</p>\n </div>\n <Badge variant={statusVariant[active.status]} className=\"text-xs capitalize\">\n {active.status}\n </Badge>\n </div>\n <div className=\"grid gap-3 sm:grid-cols-2\">\n <div className=\"rounded-lg border p-3\">\n <p className=\"text-xs text-muted-foreground\">Role</p>\n <p className=\"mt-1 text-sm font-medium\">{active.role}</p>\n </div>\n <div className=\"rounded-lg border p-3\">\n <p className=\"text-xs text-muted-foreground\">Status</p>\n <p className=\"mt-1 text-sm font-medium capitalize\">{active.status}</p>\n </div>\n </div>\n </div>\n </DataBodyTemplate.Group>\n </DataBodyTemplate>\n )\n}\n\nexport function buildSplitBodyTemplateCode({ themeProp, layoutClassName }: TemplateCodeContext) {\n return [\n `import { DataBodyTemplate } from '@loykin/designkit'`,\n `import '@loykin/designkit/styles'`,\n '',\n `export function MyPage() {`,\n ` return (`,\n ` <DataBodyTemplate${themeProp}`,\n ` className=\"${layoutClassName}\"`,\n ` title=\"Users\"`,\n ` >`,\n ` <DataBodyTemplate.Group layout=\"split\">`,\n ` <aside>{/* list */}</aside>`,\n ` <section>{/* detail */}</section>`,\n ` </DataBodyTemplate.Group>`,\n ` </DataBodyTemplate>`,\n ` )`,\n `}`,\n ].join('\\n')\n}\n","import { DataBodyTemplate } from '@/components/templates/databody/DataBodyTemplate'\nimport { buildTopBar } from '@/components/templates/datapage/PageTopBar'\nimport { Badge } from '@/components/ui/badge'\nimport { Button } from '@/components/ui/button'\nimport { Card, CardContent } from '@/components/ui/card'\nimport { Input } from '@/components/ui/input'\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from '@/components/ui/table'\nimport { CheckCircle2, Clock, AlertCircle, XCircle, Plus, Search } from 'lucide-react'\nimport type { TemplateCodeContext } from '../code'\n\ntype Status = 'open' | 'in-progress' | 'resolved' | 'closed'\ntype Priority = 'critical' | 'high' | 'medium' | 'low'\n\ninterface Issue {\n id: string\n title: string\n status: Status\n priority: Priority\n assignee: string\n created: string\n}\n\nconst issues: Issue[] = [\n {\n id: 'INC-001',\n title: 'API gateway returning 502 on /auth endpoints',\n status: 'open',\n priority: 'critical',\n assignee: 'Sarah K.',\n created: '2h ago',\n },\n {\n id: 'INC-002',\n title: 'Memory leak in data-processor worker threads',\n status: 'in-progress',\n priority: 'high',\n assignee: 'Marcus L.',\n created: '5h ago',\n },\n {\n id: 'INC-003',\n title: 'Dashboard charts not rendering in Safari 17',\n status: 'open',\n priority: 'medium',\n assignee: 'Ji-Yeon P.',\n created: '1d ago',\n },\n {\n id: 'INC-004',\n title: 'Slow query on users table (>3s)',\n status: 'resolved',\n priority: 'high',\n assignee: 'Alex C.',\n created: '2d ago',\n },\n {\n id: 'INC-005',\n title: 'Email notifications not sent for new signups',\n status: 'in-progress',\n priority: 'medium',\n assignee: 'Dana W.',\n created: '3d ago',\n },\n {\n id: 'INC-006',\n title: 'CORS error on POST /api/v2/upload from mobile',\n status: 'open',\n priority: 'high',\n assignee: 'Leo T.',\n created: '4d ago',\n },\n {\n id: 'INC-007',\n title: 'Cron expression parsing failure on scheduler',\n status: 'closed',\n priority: 'low',\n assignee: 'Mina S.',\n created: '1w ago',\n },\n]\n\nconst statusIcon: Record<Status, React.ReactNode> = {\n open: <AlertCircle className=\"h-3.5 w-3.5 text-destructive\" />,\n 'in-progress': <Clock className=\"h-3.5 w-3.5 text-yellow-500\" />,\n resolved: <CheckCircle2 className=\"h-3.5 w-3.5 text-primary\" />,\n closed: <XCircle className=\"h-3.5 w-3.5 text-muted-foreground\" />,\n}\n\nconst priorityVariant: Record<Priority, 'destructive' | 'default' | 'secondary' | 'outline'> = {\n critical: 'destructive',\n high: 'default',\n medium: 'secondary',\n low: 'outline',\n}\n\nfunction IssueTable({ rows }: { rows: Issue[] }) {\n return (\n <Table>\n <TableHeader>\n <TableRow>\n <TableHead className=\"w-24\">ID</TableHead>\n <TableHead>Title</TableHead>\n <TableHead className=\"w-24\">Priority</TableHead>\n <TableHead className=\"w-28\">Assignee</TableHead>\n <TableHead className=\"w-24\">Created</TableHead>\n <TableHead className=\"w-16\" />\n </TableRow>\n </TableHeader>\n <TableBody>\n {rows.map((issue) => (\n <TableRow key={issue.id} className=\"cursor-pointer\">\n <TableCell className=\"font-mono text-xs text-muted-foreground\">{issue.id}</TableCell>\n <TableCell>\n <div className=\"flex items-center gap-2\">\n {statusIcon[issue.status]}\n <span className=\"text-sm\">{issue.title}</span>\n </div>\n </TableCell>\n <TableCell>\n <Badge variant={priorityVariant[issue.priority]} className=\"text-xs capitalize\">\n {issue.priority}\n </Badge>\n </TableCell>\n <TableCell className=\"text-xs text-muted-foreground\">{issue.assignee}</TableCell>\n <TableCell className=\"text-xs text-muted-foreground\">{issue.created}</TableCell>\n <TableCell>\n <Button variant=\"ghost\" size=\"sm\" className=\"h-7 text-xs\">\n View\n </Button>\n </TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n )\n}\n\nconst counts = {\n open: issues.filter((i) => i.status === 'open').length,\n 'in-progress': issues.filter((i) => i.status === 'in-progress').length,\n resolved: issues.filter((i) => i.status === 'resolved').length,\n closed: issues.filter((i) => i.status === 'closed').length,\n}\n\nexport function TabbedBodyTemplateDemo({ theme, topBarShow, topBarVariant, topBarBg }: { theme?: React.CSSProperties; topBarShow?: string; topBarVariant?: string; topBarBg?: string }) {\n return (\n <DataBodyTemplate\n theme={theme}\n topBar={buildTopBar({ topBarShow, topBarVariant, topBarBg, left: 'Pages / Tabbed' })}\n title=\"Incidents\"\n description=\"Incident queue grouped by status\"\n toolbarLeft={\n <div className=\"relative\">\n <Search className=\"absolute left-2.5 top-1/2 -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground\" />\n <Input placeholder=\"Search…\" className=\"pl-8 h-8 w-52 text-xs\" />\n </div>\n }\n toolbarRight={\n <Button size=\"sm\" className=\"h-8 gap-1.5 text-xs\">\n <Plus className=\"h-3.5 w-3.5\" />\n New Incident\n </Button>\n }\n >\n <DataBodyTemplate.Summary>\n <div className=\"grid grid-cols-4 gap-(--dk-panel-gap)\">\n {(\n [\n { label: 'Open', count: counts.open, Icon: AlertCircle, cls: 'text-destructive' },\n {\n label: 'In Progress',\n count: counts['in-progress'],\n Icon: Clock,\n cls: 'text-yellow-500',\n },\n {\n label: 'Resolved',\n count: counts.resolved,\n Icon: CheckCircle2,\n cls: 'text-primary',\n },\n {\n label: 'Closed',\n count: counts.closed,\n Icon: XCircle,\n cls: 'text-muted-foreground',\n },\n ] as const\n ).map(({ label, count, Icon, cls }) => (\n <Card key={label}>\n <CardContent className=\"flex items-center gap-[calc(var(--dk-panel-gap)*0.75)] p-[calc(var(--dk-panel-gap)*0.75)]\">\n <Icon className={`h-5 w-5 ${cls}`} />\n <div>\n <p className=\"text-xl font-bold tabular-nums\">{count}</p>\n <p className=\"text-xs text-muted-foreground\">{label}</p>\n </div>\n </CardContent>\n </Card>\n ))}\n </div>\n </DataBodyTemplate.Summary>\n\n <DataBodyTemplate.Tab id=\"all\" label=\"All\" count={issues.length}>\n <IssueTable rows={issues} />\n </DataBodyTemplate.Tab>\n <DataBodyTemplate.Tab id=\"open\" label=\"Open\" count={counts.open}>\n <IssueTable rows={issues.filter((i) => i.status === 'open')} />\n </DataBodyTemplate.Tab>\n <DataBodyTemplate.Tab id=\"in-progress\" label=\"In Progress\" count={counts['in-progress']}>\n <IssueTable rows={issues.filter((i) => i.status === 'in-progress')} />\n </DataBodyTemplate.Tab>\n <DataBodyTemplate.Tab id=\"resolved\" label=\"Resolved\" count={counts.resolved}>\n <IssueTable rows={issues.filter((i) => i.status === 'resolved')} />\n </DataBodyTemplate.Tab>\n </DataBodyTemplate>\n )\n}\n\nexport function buildTabbedBodyTemplateCode({ themeProp, layoutClassName }: TemplateCodeContext) {\n return [\n `import { DataBodyTemplate } from '@loykin/designkit'`,\n `import '@loykin/designkit/styles'`,\n '',\n `export function MyPage() {`,\n ` return (`,\n ` <DataBodyTemplate${themeProp}`,\n ` className=\"${layoutClassName}\"`,\n ` title=\"Incidents\"`,\n ` >`,\n ` <DataBodyTemplate.Summary>`,\n ` {/* summary content */}`,\n ` </DataBodyTemplate.Summary>`,\n ``,\n ` <DataBodyTemplate.Tab id=\"all\" label=\"All\">`,\n ` {/* tab content */}`,\n ` </DataBodyTemplate.Tab>`,\n ` </DataBodyTemplate>`,\n ` )`,\n `}`,\n ].join('\\n')\n}\n","import { DataBodyTemplate } from '@/components/templates/databody/DataBodyTemplate'\nimport { buildTopBar } from '@/components/templates/datapage/PageTopBar'\nimport { Button } from '@/components/ui/button'\nimport { Input } from '@/components/ui/input'\nimport { Label } from '@/components/ui/label'\nimport { Badge } from '@/components/ui/badge'\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from '@/components/ui/select'\nimport { Switch } from '@/components/ui/switch'\nimport type { TemplateCodeContext } from '../code'\n\nexport function FormBodyTemplateDemo({ theme, topBarShow, topBarVariant, topBarBg }: { theme?: React.CSSProperties; topBarShow?: string; topBarVariant?: string; topBarBg?: string }) {\n return (\n <DataBodyTemplate\n theme={theme}\n topBar={buildTopBar({ topBarShow, topBarVariant, topBarBg, left: 'Pages / Form' })}\n title=\"Account Settings\"\n description=\"Manage your account preferences and security.\"\n >\n <DataBodyTemplate.Group\n layout=\"horizontal\"\n title=\"Profile\"\n description=\"Your public-facing name and contact info.\"\n >\n <form onSubmit={(e) => e.preventDefault()} className=\"space-y-4\">\n <div className=\"grid grid-cols-2 gap-4\">\n <div className=\"space-y-1.5\">\n <Label htmlFor=\"first-name\" className=\"text-xs\">First Name</Label>\n <Input id=\"first-name\" defaultValue=\"Sarah\" className=\"h-8 text-sm\" />\n </div>\n <div className=\"space-y-1.5\">\n <Label htmlFor=\"last-name\" className=\"text-xs\">Last Name</Label>\n <Input id=\"last-name\" defaultValue=\"Kim\" className=\"h-8 text-sm\" />\n </div>\n </div>\n <div className=\"space-y-1.5\">\n <Label htmlFor=\"profile-email\" className=\"text-xs\">Email</Label>\n <Input id=\"profile-email\" type=\"email\" defaultValue=\"sarah@acme.com\" className=\"h-8 text-sm\" />\n </div>\n <div className=\"space-y-1.5\">\n <Label htmlFor=\"profile-role\" className=\"text-xs\">Role</Label>\n <Select defaultValue=\"admin\">\n <SelectTrigger id=\"profile-role\" className=\"h-8 text-sm\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"admin\">Admin</SelectItem>\n <SelectItem value=\"editor\">Editor</SelectItem>\n <SelectItem value=\"viewer\">Viewer</SelectItem>\n </SelectContent>\n </Select>\n </div>\n <div className=\"space-y-1.5\">\n <Label htmlFor=\"profile-bio\" className=\"text-xs\">Bio</Label>\n <textarea\n id=\"profile-bio\"\n className=\"w-full h-20 rounded-(--radius) border border-input bg-background px-3 py-2 text-sm resize-none focus:outline-none focus:ring-2 focus:ring-ring\"\n defaultValue=\"Frontend engineer focused on design systems.\"\n />\n </div>\n <div className=\"flex justify-end\">\n <Button type=\"submit\" size=\"sm\" className=\"h-8 text-xs\">Save Profile</Button>\n </div>\n </form>\n </DataBodyTemplate.Group>\n\n <DataBodyTemplate.Group\n layout=\"horizontal\"\n title=\"Notifications\"\n description=\"Choose when and how you get notified.\"\n >\n <div className=\"divide-y\">\n {[\n { label: 'Comments on your posts', sub: 'When someone replies to a thread', on: true },\n { label: 'Mentions', sub: 'When someone @mentions you', on: true },\n { label: 'Weekly digest', sub: 'A weekly summary of activity', on: false },\n { label: 'Security alerts', sub: 'Login from new device', on: true },\n { label: 'Product updates', sub: 'New features and improvements', on: false },\n ].map((item) => (\n <div key={item.label} className=\"flex items-center justify-between py-3\">\n <div>\n <p className=\"text-sm font-medium\">{item.label}</p>\n <p className=\"text-xs text-muted-foreground\">{item.sub}</p>\n </div>\n <Switch defaultChecked={item.on} />\n </div>\n ))}\n </div>\n </DataBodyTemplate.Group>\n\n <DataBodyTemplate.Group\n layout=\"horizontal\"\n title=\"Security\"\n description=\"Password and authentication settings.\"\n >\n <div className=\"space-y-4\">\n <form onSubmit={(e) => e.preventDefault()} className=\"space-y-4\">\n <div className=\"space-y-1.5\">\n <Label htmlFor=\"current-password\" className=\"text-xs\">Current Password</Label>\n <Input id=\"current-password\" type=\"password\" placeholder=\"••••••••\" className=\"h-8 text-sm\" />\n </div>\n <div className=\"grid grid-cols-2 gap-4\">\n <div className=\"space-y-1.5\">\n <Label htmlFor=\"new-password\" className=\"text-xs\">New Password</Label>\n <Input id=\"new-password\" type=\"password\" placeholder=\"••••••••\" className=\"h-8 text-sm\" />\n </div>\n <div className=\"space-y-1.5\">\n <Label htmlFor=\"confirm-password\" className=\"text-xs\">Confirm</Label>\n <Input id=\"confirm-password\" type=\"password\" placeholder=\"••••••••\" className=\"h-8 text-sm\" />\n </div>\n </div>\n <div className=\"flex justify-end\">\n <Button type=\"submit\" size=\"sm\" className=\"h-8 text-xs\">Update Password</Button>\n </div>\n </form>\n <div className=\"flex items-center justify-between p-3 rounded-(--radius) border\">\n <div>\n <p className=\"text-sm font-medium\">Two-Factor Authentication</p>\n <p className=\"text-xs text-muted-foreground\">Require OTP on every login</p>\n </div>\n <div className=\"flex items-center gap-2\">\n <Badge variant=\"outline\" className=\"text-xs\">Disabled</Badge>\n <Button type=\"button\" size=\"sm\" className=\"h-8 text-xs\">Enable</Button>\n </div>\n </div>\n </div>\n </DataBodyTemplate.Group>\n\n <DataBodyTemplate.Group\n layout=\"horizontal\"\n title=\"Danger Zone\"\n description=\"Irreversible actions. Proceed with caution.\"\n danger\n >\n <div className=\"flex items-center justify-between p-3 rounded-(--radius) border border-destructive/40 bg-destructive/5\">\n <div>\n <p className=\"text-sm font-medium\">Delete Account</p>\n <p className=\"text-xs text-muted-foreground\">\n Permanently delete your account and all data.\n </p>\n </div>\n <Button type=\"button\" variant=\"destructive\" size=\"sm\" className=\"h-8 text-xs\">\n Delete Account\n </Button>\n </div>\n </DataBodyTemplate.Group>\n </DataBodyTemplate>\n )\n}\n\nexport function buildFormBodyTemplateCode({ themeProp, layoutClassName }: TemplateCodeContext) {\n return [\n `import { DataBodyTemplate } from '@loykin/designkit'`,\n `import '@loykin/designkit/styles'`,\n '',\n `export function MyPage() {`,\n ` return (`,\n ` <DataBodyTemplate${themeProp}`,\n ` className=\"${layoutClassName}\"`,\n ` title=\"Account Settings\"`,\n ` >`,\n ` <DataBodyTemplate.Group layout=\"horizontal\" title=\"Profile\">`,\n ` <form onSubmit={handleSubmit}>`,\n ` {/* form fields */}`,\n ` <button type=\"submit\">Save Profile</button>`,\n ` </form>`,\n ` </DataBodyTemplate.Group>`,\n ` </DataBodyTemplate>`,\n ` )`,\n `}`,\n ].join('\\n')\n}\n","import { DataBodyTemplate } from '@/components/templates/databody/DataBodyTemplate'\nimport { buildTopBar } from '@/components/templates/datapage/PageTopBar'\nimport { Button } from '@/components/ui/button'\nimport { Input } from '@/components/ui/input'\nimport { Label } from '@/components/ui/label'\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from '@/components/ui/select'\nimport { Switch } from '@/components/ui/switch'\nimport type { TemplateCodeContext } from '../code'\n\nexport function FormStackedBodyTemplateDemo({ theme, topBarShow, topBarVariant, topBarBg }: { theme?: React.CSSProperties; topBarShow?: string; topBarVariant?: string; topBarBg?: string }) {\n return (\n <DataBodyTemplate\n theme={theme}\n topBar={buildTopBar({ topBarShow, topBarVariant, topBarBg, left: 'Pages / Form / Stacked' })}\n title=\"Settings\"\n description=\"Manage your account and preferences.\"\n >\n <DataBodyTemplate.Group\n layout=\"stacked\"\n title=\"Profile\"\n description=\"How you appear to others on the platform.\"\n >\n <form onSubmit={(e) => e.preventDefault()} className=\"space-y-3\">\n <div className=\"space-y-1.5\">\n <Label htmlFor=\"display-name\" className=\"text-xs\">Display Name</Label>\n <Input id=\"display-name\" defaultValue=\"Sarah Kim\" className=\"h-8 text-sm\" />\n </div>\n <div className=\"space-y-1.5\">\n <Label htmlFor=\"stacked-email\" className=\"text-xs\">Email</Label>\n <Input id=\"stacked-email\" type=\"email\" defaultValue=\"sarah@acme.com\" className=\"h-8 text-sm\" disabled />\n <p className=\"text-xs text-muted-foreground\">\n Contact support to change your email address.\n </p>\n </div>\n <div className=\"space-y-1.5\">\n <Label htmlFor=\"stacked-bio\" className=\"text-xs\">Bio</Label>\n <textarea\n id=\"stacked-bio\"\n className=\"w-full h-20 resize-none rounded-[var(--radius)] border border-input bg-background px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-ring\"\n defaultValue=\"Frontend engineer focused on design systems.\"\n />\n </div>\n <div className=\"flex justify-end\">\n <Button type=\"submit\" size=\"sm\" className=\"h-8 text-xs\">Save Profile</Button>\n </div>\n </form>\n </DataBodyTemplate.Group>\n\n <DataBodyTemplate.Group\n layout=\"stacked\"\n title=\"Appearance\"\n description=\"Customize how the interface looks for you.\"\n >\n <form onSubmit={(e) => e.preventDefault()} className=\"space-y-3\">\n <div className=\"space-y-1.5\">\n <Label htmlFor=\"theme-select\" className=\"text-xs\">Theme</Label>\n <Select defaultValue=\"system\">\n <SelectTrigger id=\"theme-select\" className=\"h-8 text-sm w-44\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"system\">System</SelectItem>\n <SelectItem value=\"light\">Light</SelectItem>\n <SelectItem value=\"dark\">Dark</SelectItem>\n </SelectContent>\n </Select>\n </div>\n <div className=\"space-y-1.5\">\n <Label htmlFor=\"language-select\" className=\"text-xs\">Language</Label>\n <Select defaultValue=\"en\">\n <SelectTrigger id=\"language-select\" className=\"h-8 text-sm w-44\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"en\">English</SelectItem>\n <SelectItem value=\"ko\">한국어</SelectItem>\n <SelectItem value=\"ja\">日本語</SelectItem>\n </SelectContent>\n </Select>\n </div>\n <div className=\"flex items-center justify-between\">\n <div>\n <p className=\"text-sm font-medium\">Compact mode</p>\n <p className=\"text-xs text-muted-foreground\">Reduce spacing across the interface.</p>\n </div>\n <Switch />\n </div>\n <div className=\"flex justify-end\">\n <Button type=\"submit\" size=\"sm\" className=\"h-8 text-xs\">Save Appearance</Button>\n </div>\n </form>\n </DataBodyTemplate.Group>\n\n <DataBodyTemplate.Group\n layout=\"stacked\"\n title=\"Privacy & Data\"\n description=\"Manage how your data is collected and used.\"\n >\n <div className=\"space-y-4\">\n {[\n { label: 'Usage analytics', desc: 'Share anonymous usage data to improve the product.', on: true },\n { label: 'Crash reports', desc: 'Automatically send crash logs to our team.', on: true },\n { label: 'Marketing emails', desc: 'Receive updates on new features and promotions.', on: false },\n ].map((item) => (\n <div key={item.label} className=\"flex items-center justify-between\">\n <div>\n <p className=\"text-sm font-medium\">{item.label}</p>\n <p className=\"text-xs text-muted-foreground\">{item.desc}</p>\n </div>\n <Switch defaultChecked={item.on} />\n </div>\n ))}\n </div>\n </DataBodyTemplate.Group>\n\n <DataBodyTemplate.Group\n layout=\"stacked\"\n title=\"Danger Zone\"\n description=\"Irreversible actions. Proceed with caution.\"\n danger\n >\n <div className=\"flex items-center justify-between rounded-[var(--radius)] border border-destructive/40 bg-destructive/5 px-4 py-3\">\n <div>\n <p className=\"text-sm font-medium\">Delete Account</p>\n <p className=\"text-xs text-muted-foreground\">Permanently remove all your data.</p>\n </div>\n <Button type=\"button\" variant=\"destructive\" size=\"sm\" className=\"ml-4 h-8 shrink-0 text-xs\">\n Delete\n </Button>\n </div>\n </DataBodyTemplate.Group>\n </DataBodyTemplate>\n )\n}\n\nexport function buildFormStackedBodyTemplateCode({\n themeProp,\n layoutClassName,\n}: TemplateCodeContext) {\n return [\n `import { DataBodyTemplate } from '@loykin/designkit'`,\n `import '@loykin/designkit/styles'`,\n '',\n `export function MyPage() {`,\n ` return (`,\n ` <DataBodyTemplate${themeProp}`,\n ` className=\"${layoutClassName}\"`,\n ` title=\"Settings\"`,\n ` >`,\n ` <DataBodyTemplate.Group layout=\"stacked\" title=\"Profile\">`,\n ` <form onSubmit={handleSubmit}>`,\n ` {/* form fields */}`,\n ` <button type=\"submit\">Save Profile</button>`,\n ` </form>`,\n ` </DataBodyTemplate.Group>`,\n ` </DataBodyTemplate>`,\n ` )`,\n `}`,\n ].join('\\n')\n}\n","import { DataBodyTemplate } from '@/components/templates/databody/DataBodyTemplate'\nimport { buildTopBar } from '@/components/templates/datapage/PageTopBar'\nimport { Button } from '@/components/ui/button'\nimport { Input } from '@/components/ui/input'\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from '@/components/ui/select'\nimport { Switch } from '@/components/ui/switch'\nimport { Badge } from '@/components/ui/badge'\nimport type { TemplateCodeContext } from '../code'\n\nexport function FormInlineBodyTemplateDemo({ theme, topBarShow, topBarVariant, topBarBg }: { theme?: React.CSSProperties; topBarShow?: string; topBarVariant?: string; topBarBg?: string }) {\n return (\n <DataBodyTemplate\n theme={theme}\n topBar={buildTopBar({ topBarShow, topBarVariant, topBarBg, left: 'Pages / Form / Inline' })}\n title=\"Edit User\"\n description=\"Update user profile and access settings.\"\n >\n <form onSubmit={(e) => e.preventDefault()} className=\"contents\">\n <DataBodyTemplate.Group layout=\"inline\" title=\"Identity\">\n <DataBodyTemplate.Row label=\"Full Name\" required>\n <div className=\"grid grid-cols-2 gap-2\">\n <Input defaultValue=\"Sarah\" className=\"h-8 text-sm\" placeholder=\"First\" />\n <Input defaultValue=\"Kim\" className=\"h-8 text-sm\" placeholder=\"Last\" />\n </div>\n </DataBodyTemplate.Row>\n <DataBodyTemplate.Row\n label=\"Email\"\n description=\"Used for login and notifications.\"\n required\n >\n <Input type=\"email\" defaultValue=\"sarah@acme.com\" className=\"h-8 text-sm\" />\n </DataBodyTemplate.Row>\n <DataBodyTemplate.Row label=\"Username\">\n <div className=\"flex items-center gap-2\">\n <Input defaultValue=\"sarah.kim\" className=\"h-8 text-sm\" />\n <Badge variant=\"outline\" className=\"text-[10px] h-6 shrink-0\">\n Available\n </Badge>\n </div>\n </DataBodyTemplate.Row>\n <DataBodyTemplate.Row label=\"Phone\">\n <Input type=\"tel\" defaultValue=\"+82 10-1234-5678\" className=\"h-8 text-sm\" />\n </DataBodyTemplate.Row>\n </DataBodyTemplate.Group>\n\n <DataBodyTemplate.Group layout=\"inline\" title=\"Role & Access\">\n <DataBodyTemplate.Row label=\"Role\" required>\n <Select defaultValue=\"admin\">\n <SelectTrigger className=\"h-8 text-sm\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"admin\">Admin</SelectItem>\n <SelectItem value=\"editor\">Editor</SelectItem>\n <SelectItem value=\"viewer\">Viewer</SelectItem>\n <SelectItem value=\"guest\">Guest</SelectItem>\n </SelectContent>\n </Select>\n </DataBodyTemplate.Row>\n <DataBodyTemplate.Row label=\"Department\">\n <Select defaultValue=\"engineering\">\n <SelectTrigger className=\"h-8 text-sm\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"engineering\">Engineering</SelectItem>\n <SelectItem value=\"design\">Design</SelectItem>\n <SelectItem value=\"product\">Product</SelectItem>\n <SelectItem value=\"marketing\">Marketing</SelectItem>\n </SelectContent>\n </Select>\n </DataBodyTemplate.Row>\n <DataBodyTemplate.Row label=\"Active\" description=\"Inactive users cannot sign in.\">\n <Switch defaultChecked />\n </DataBodyTemplate.Row>\n <DataBodyTemplate.Row label=\"Require 2FA\" description=\"Enforce two-factor authentication.\">\n <Switch />\n </DataBodyTemplate.Row>\n </DataBodyTemplate.Group>\n\n <DataBodyTemplate.Group layout=\"inline\" title=\"Address\">\n <DataBodyTemplate.Row label=\"Country\">\n <Select defaultValue=\"kr\">\n <SelectTrigger className=\"h-8 text-sm\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"kr\">South Korea</SelectItem>\n <SelectItem value=\"us\">United States</SelectItem>\n <SelectItem value=\"jp\">Japan</SelectItem>\n <SelectItem value=\"gb\">United Kingdom</SelectItem>\n </SelectContent>\n </Select>\n </DataBodyTemplate.Row>\n <DataBodyTemplate.Row label=\"City\">\n <Input defaultValue=\"Seoul\" className=\"h-8 text-sm\" />\n </DataBodyTemplate.Row>\n <DataBodyTemplate.Row label=\"Postal Code\">\n <Input defaultValue=\"04524\" className=\"h-8 text-sm w-36\" />\n </DataBodyTemplate.Row>\n </DataBodyTemplate.Group>\n\n <div className=\"flex justify-end gap-2 px-(--dk-page-padding-x) pb-(--dk-page-padding-y)\">\n <Button type=\"reset\" variant=\"outline\" size=\"sm\" className=\"h-8 text-xs\">Cancel</Button>\n <Button type=\"submit\" size=\"sm\" className=\"h-8 text-xs\">Save</Button>\n </div>\n </form>\n </DataBodyTemplate>\n )\n}\n\nexport function buildFormInlineBodyTemplateCode({\n themeProp,\n layoutClassName,\n}: TemplateCodeContext) {\n return [\n `import { DataBodyTemplate } from '@loykin/designkit'`,\n `import '@loykin/designkit/styles'`,\n '',\n `export function MyPage() {`,\n ` return (`,\n ` <DataBodyTemplate${themeProp}`,\n ` className=\"${layoutClassName}\"`,\n ` title=\"Edit User\"`,\n ` >`,\n ` <form onSubmit={handleSubmit} className=\"contents\">`,\n ` <DataBodyTemplate.Group layout=\"inline\" title=\"Identity\">`,\n ` <DataBodyTemplate.Row label=\"Field\" required>`,\n ` {/* input */}`,\n ` </DataBodyTemplate.Row>`,\n ` </DataBodyTemplate.Group>`,\n ` <div className=\"flex justify-end gap-2 px-(--dk-page-padding-x) pb-(--dk-page-padding-y)\">`,\n ` <button type=\"reset\">Cancel</button>`,\n ` <button type=\"submit\">Save</button>`,\n ` </div>`,\n ` </form>`,\n ` </DataBodyTemplate>`,\n ` )`,\n `}`,\n ].join('\\n')\n}\n","import { DataBodyTemplate } from '@/components/templates/databody/DataBodyTemplate'\nimport { buildTopBar } from '@/components/templates/datapage/PageTopBar'\nimport { Button } from '@/components/ui/button'\nimport { Input } from '@/components/ui/input'\nimport { Label } from '@/components/ui/label'\nimport { Switch } from '@/components/ui/switch'\nimport type { TemplateCodeContext } from '../code'\n\nexport function SectionedBodyTemplateDemo({ theme, topBarShow, topBarVariant, topBarBg }: { theme?: React.CSSProperties; topBarShow?: string; topBarVariant?: string; topBarBg?: string }) {\n return (\n <DataBodyTemplate\n theme={theme}\n topBar={buildTopBar({ topBarShow, topBarVariant, topBarBg, left: 'Pages / Sectioned' })}\n title=\"Workspace Settings\"\n description=\"Section navigation connected to body panels.\"\n >\n <DataBodyTemplate.Section id=\"profile\" label=\"Profile\" description=\"Identity and contact\">\n <DataBodyTemplate.Group\n layout=\"stacked\"\n title=\"Profile\"\n description=\"Public workspace details.\"\n >\n <form onSubmit={(e) => e.preventDefault()} className=\"space-y-3\">\n <div className=\"space-y-1.5\">\n <Label htmlFor=\"workspace-name\" className=\"text-xs\">Workspace Name</Label>\n <Input id=\"workspace-name\" defaultValue=\"Acme Corp\" className=\"h-8 text-sm\" />\n </div>\n <div className=\"flex items-center justify-between\">\n <div>\n <p className=\"text-sm font-medium\">Public profile</p>\n <p className=\"text-xs text-muted-foreground\">\n Allow discovery in organization search.\n </p>\n </div>\n <Switch defaultChecked />\n </div>\n <div className=\"flex justify-end\">\n <Button type=\"submit\" size=\"sm\" className=\"h-8 text-xs\">Save</Button>\n </div>\n </form>\n </DataBodyTemplate.Group>\n </DataBodyTemplate.Section>\n\n <DataBodyTemplate.Section id=\"security\" label=\"Security\" description=\"Password and access\">\n <DataBodyTemplate.Group\n layout=\"stacked\"\n title=\"Security\"\n description=\"Password and authentication.\"\n >\n <div className=\"flex items-center justify-between\">\n <p className=\"text-sm font-medium\">Require two-factor authentication</p>\n <Switch />\n </div>\n </DataBodyTemplate.Group>\n </DataBodyTemplate.Section>\n\n <DataBodyTemplate.Section id=\"billing\" label=\"Billing\" description=\"Plan and invoices\">\n <DataBodyTemplate.Group\n layout=\"stacked\"\n title=\"Billing\"\n description=\"Plan and invoice settings.\"\n >\n <Button variant=\"outline\" size=\"sm\" className=\"h-8 text-xs\">\n Manage Plan\n </Button>\n </DataBodyTemplate.Group>\n </DataBodyTemplate.Section>\n </DataBodyTemplate>\n )\n}\n\nexport function buildSectionedBodyTemplateCode({\n themeProp,\n layoutClassName,\n}: TemplateCodeContext) {\n return [\n `import { DataBodyTemplate } from '@loykin/designkit'`,\n `import '@loykin/designkit/styles'`,\n '',\n `export function MyPage() {`,\n ` return (`,\n ` <DataBodyTemplate${themeProp}`,\n ` className=\"${layoutClassName}\"`,\n ` title=\"Workspace Settings\"`,\n ` actions={<button type=\"button\">Save</button>}`,\n ` >`,\n ` <DataBodyTemplate.Section id=\"profile\" label=\"Profile\" description=\"Identity and contact\">`,\n ` <DataBodyTemplate.Group layout=\"stacked\" title=\"Profile\">`,\n ` {/* form fields */}`,\n ` </DataBodyTemplate.Group>`,\n ` </DataBodyTemplate.Section>`,\n ``,\n ` <DataBodyTemplate.Section id=\"security\" label=\"Security\" description=\"Password and access\">`,\n ` <DataBodyTemplate.Group layout=\"stacked\" title=\"Security\">`,\n ` {/* security fields */}`,\n ` </DataBodyTemplate.Group>`,\n ` </DataBodyTemplate.Section>`,\n ` </DataBodyTemplate>`,\n ` )`,\n `}`,\n ].join('\\n')\n}\n","import { Button } from '@/components/ui/button'\nimport { Checkbox } from '@/components/ui/checkbox'\nimport { Input } from '@/components/ui/input'\nimport { Label } from '@/components/ui/label'\nimport type { TemplateCodeContext } from '../code'\nimport { LoginBodyTemplate, type LoginLayout, type LoginSide, type LoginCard, type LoginBg, type LoginCardWidth } from './LoginBodyTemplate'\n\nexport function LoginBodyTemplateDemo({\n theme,\n loginLayout,\n loginSide,\n loginCard,\n loginBg,\n loginCardWidth,\n}: {\n theme?: React.CSSProperties\n loginLayout?: string\n loginSide?: string\n loginCard?: string\n loginBg?: string\n loginCardWidth?: string\n}) {\n return (\n <LoginBodyTemplate\n theme={theme}\n layout={(loginLayout as LoginLayout) ?? 'centered'}\n side={(loginSide as LoginSide) ?? 'left'}\n card={(loginCard as LoginCard) ?? 'card'}\n bg={(loginBg as LoginBg) ?? 'default'}\n cardWidth={(loginCardWidth as LoginCardWidth) ?? 'sm'}\n >\n <form className=\"space-y-6\" onSubmit={(e) => e.preventDefault()}>\n <div className=\"space-y-1.5\">\n <h1 className=\"text-2xl font-semibold tracking-tight\">Sign in</h1>\n <p className=\"text-sm text-muted-foreground\">Enter your email and password to continue.</p>\n </div>\n\n <div className=\"space-y-3\">\n <div className=\"space-y-1.5\">\n <Label htmlFor=\"email\" className=\"text-xs\">Email</Label>\n <Input id=\"email\" type=\"email\" placeholder=\"you@example.com\" className=\"h-9\" />\n </div>\n <div className=\"space-y-1.5\">\n <div className=\"flex items-center justify-between\">\n <Label htmlFor=\"password\" className=\"text-xs\">Password</Label>\n <a href=\"#\" className=\"text-xs text-muted-foreground hover:text-foreground transition-colors\">\n Forgot password?\n </a>\n </div>\n <Input id=\"password\" type=\"password\" placeholder=\"••••••••\" className=\"h-9\" />\n </div>\n <div className=\"flex items-center gap-2\">\n <Checkbox id=\"remember\" />\n <Label htmlFor=\"remember\" className=\"text-xs font-normal text-muted-foreground cursor-pointer\">\n Remember me for 30 days\n </Label>\n </div>\n </div>\n\n <Button type=\"submit\" className=\"w-full h-9\">Sign in</Button>\n\n <p className=\"text-center text-xs text-muted-foreground\">\n Don't have an account?{' '}\n <a href=\"#\" className=\"text-foreground hover:underline\">\n Sign up\n </a>\n </p>\n </form>\n </LoginBodyTemplate>\n )\n}\n\nexport function buildLoginBodyTemplateCode({ themeProp }: TemplateCodeContext) {\n return [\n `import { LoginBodyTemplate } from '@loykin/designkit'`,\n `import '@loykin/designkit/styles'`,\n '',\n `export function LoginPage() {`,\n ` return (`,\n ` <LoginBodyTemplate${themeProp} layout=\"split\">`,\n ` <div className=\"space-y-6\">`,\n ` <div className=\"space-y-1.5\">`,\n ` <h1 className=\"text-2xl font-semibold\">Sign in</h1>`,\n ` <p className=\"text-sm text-muted-foreground\">Enter your credentials.</p>`,\n ` </div>`,\n ` {/* form fields */}`,\n ` <button type=\"submit\" className=\"w-full\">Sign in</button>`,\n ` </div>`,\n ` </LoginBodyTemplate>`,\n ` )`,\n `}`,\n ].join('\\n')\n}\n","import { Button } from '@/components/ui/button'\nimport { Input } from '@/components/ui/input'\nimport { Label } from '@/components/ui/label'\nimport { ArrowLeft } from 'lucide-react'\nimport type { TemplateCodeContext } from '../code'\nimport { LoginBodyTemplate, type LoginLayout, type LoginSide, type LoginCard, type LoginBg, type LoginCardWidth } from './LoginBodyTemplate'\n\nexport function LoginForgotDemo({\n theme,\n loginLayout,\n loginSide,\n loginCard,\n loginBg,\n loginCardWidth,\n}: {\n theme?: React.CSSProperties\n loginLayout?: string\n loginSide?: string\n loginCard?: string\n loginBg?: string\n loginCardWidth?: string\n}) {\n return (\n <LoginBodyTemplate\n theme={theme}\n layout={(loginLayout as LoginLayout) ?? 'centered'}\n side={(loginSide as LoginSide) ?? 'left'}\n card={(loginCard as LoginCard) ?? 'card'}\n bg={(loginBg as LoginBg) ?? 'default'}\n cardWidth={(loginCardWidth as LoginCardWidth) ?? 'sm'}\n >\n <form className=\"space-y-6\" onSubmit={(e) => e.preventDefault()}>\n <div className=\"space-y-1.5\">\n <h1 className=\"text-2xl font-semibold tracking-tight\">Forgot password?</h1>\n <p className=\"text-sm text-muted-foreground\">\n Enter your email and we'll send you a reset link.\n </p>\n </div>\n\n <div className=\"space-y-3\">\n <div className=\"space-y-1.5\">\n <Label htmlFor=\"email\" className=\"text-xs\">Email</Label>\n <Input id=\"email\" type=\"email\" placeholder=\"you@example.com\" className=\"h-9\" />\n </div>\n </div>\n\n <Button type=\"submit\" className=\"w-full h-9\">Send reset link</Button>\n\n <a\n href=\"#\"\n className=\"flex items-center justify-center gap-1.5 text-xs text-muted-foreground hover:text-foreground transition-colors\"\n >\n <ArrowLeft className=\"h-3.5 w-3.5\" />\n Back to sign in\n </a>\n </form>\n </LoginBodyTemplate>\n )\n}\n\nexport function buildLoginForgotCode({ themeProp }: TemplateCodeContext) {\n return [\n `import { LoginBodyTemplate } from '@loykin/designkit'`,\n `import '@loykin/designkit/styles'`,\n '',\n `export function ForgotPasswordPage() {`,\n ` return (`,\n ` <LoginBodyTemplate${themeProp} layout=\"split\">`,\n ` <div className=\"space-y-6\">`,\n ` <div className=\"space-y-1.5\">`,\n ` <h1 className=\"text-2xl font-semibold\">Forgot password?</h1>`,\n ` <p className=\"text-sm text-muted-foreground\">We'll send you a reset link.</p>`,\n ` </div>`,\n ` {/* email input */}`,\n ` <button type=\"submit\" className=\"w-full\">Send reset link</button>`,\n ` </div>`,\n ` </LoginBodyTemplate>`,\n ` )`,\n `}`,\n ].join('\\n')\n}\n","import { Button } from '@/components/ui/button'\nimport { Input } from '@/components/ui/input'\nimport { Label } from '@/components/ui/label'\nimport { CheckCircle2 } from 'lucide-react'\nimport type { TemplateCodeContext } from '../code'\nimport { LoginBodyTemplate, type LoginLayout, type LoginSide, type LoginCard, type LoginBg, type LoginCardWidth } from './LoginBodyTemplate'\n\nexport function LoginResetDemo({\n theme,\n loginLayout,\n loginSide,\n loginCard,\n loginBg,\n loginCardWidth,\n}: {\n theme?: React.CSSProperties\n loginLayout?: string\n loginSide?: string\n loginCard?: string\n loginBg?: string\n loginCardWidth?: string\n}) {\n return (\n <LoginBodyTemplate\n theme={theme}\n layout={(loginLayout as LoginLayout) ?? 'centered'}\n side={(loginSide as LoginSide) ?? 'left'}\n card={(loginCard as LoginCard) ?? 'card'}\n bg={(loginBg as LoginBg) ?? 'default'}\n cardWidth={(loginCardWidth as LoginCardWidth) ?? 'sm'}\n >\n <form className=\"space-y-6\" onSubmit={(e) => e.preventDefault()}>\n <div className=\"space-y-1.5\">\n <h1 className=\"text-2xl font-semibold tracking-tight\">Set new password</h1>\n <p className=\"text-sm text-muted-foreground\">\n Must be at least 8 characters.\n </p>\n </div>\n\n <div className=\"space-y-3\">\n <div className=\"space-y-1.5\">\n <Label htmlFor=\"new-password\" className=\"text-xs\">New Password</Label>\n <Input id=\"new-password\" type=\"password\" placeholder=\"••••••••\" className=\"h-9\" />\n </div>\n <div className=\"space-y-1.5\">\n <Label htmlFor=\"confirm-password\" className=\"text-xs\">Confirm Password</Label>\n <Input id=\"confirm-password\" type=\"password\" placeholder=\"••••••••\" className=\"h-9\" />\n </div>\n <div className=\"space-y-1.5 pt-1\">\n {['At least 8 characters', 'One uppercase letter', 'One number'].map((rule) => (\n <div key={rule} className=\"flex items-center gap-2 text-xs text-muted-foreground\">\n <CheckCircle2 className=\"h-3.5 w-3.5 shrink-0\" />\n {rule}\n </div>\n ))}\n </div>\n </div>\n\n <Button type=\"submit\" className=\"w-full h-9\">Update password</Button>\n </form>\n </LoginBodyTemplate>\n )\n}\n\nexport function buildLoginResetCode({ themeProp }: TemplateCodeContext) {\n return [\n `import { LoginBodyTemplate } from '@loykin/designkit'`,\n `import '@loykin/designkit/styles'`,\n '',\n `export function ResetPasswordPage() {`,\n ` return (`,\n ` <LoginBodyTemplate${themeProp} layout=\"split\">`,\n ` <div className=\"space-y-6\">`,\n ` <h1 className=\"text-2xl font-semibold\">Set new password</h1>`,\n ` {/* password inputs */}`,\n ` <button type=\"submit\" className=\"w-full\">Update password</button>`,\n ` </div>`,\n ` </LoginBodyTemplate>`,\n ` )`,\n `}`,\n ].join('\\n')\n}\n","import { Button } from '@/components/ui/button'\nimport { Input } from '@/components/ui/input'\nimport { ArrowLeft } from 'lucide-react'\nimport type { TemplateCodeContext } from '../code'\nimport { LoginBodyTemplate, type LoginLayout, type LoginSide, type LoginCard, type LoginBg, type LoginCardWidth } from './LoginBodyTemplate'\n\nexport function LoginOtpDemo({\n theme,\n loginLayout,\n loginSide,\n loginCard,\n loginBg,\n loginCardWidth,\n}: {\n theme?: React.CSSProperties\n loginLayout?: string\n loginSide?: string\n loginCard?: string\n loginBg?: string\n loginCardWidth?: string\n}) {\n return (\n <LoginBodyTemplate\n theme={theme}\n layout={(loginLayout as LoginLayout) ?? 'centered'}\n side={(loginSide as LoginSide) ?? 'left'}\n card={(loginCard as LoginCard) ?? 'card'}\n bg={(loginBg as LoginBg) ?? 'default'}\n cardWidth={(loginCardWidth as LoginCardWidth) ?? 'sm'}\n >\n <form className=\"space-y-6\" onSubmit={(e) => e.preventDefault()}>\n <div className=\"space-y-1.5\">\n <h1 className=\"text-2xl font-semibold tracking-tight\">Check your email</h1>\n <p className=\"text-sm text-muted-foreground\">\n We sent a 6-digit code to{' '}\n <span className=\"font-medium text-foreground\">sarah@acme.com</span>\n </p>\n </div>\n\n <div className=\"space-y-3\">\n <div className=\"flex gap-2\">\n {Array.from({ length: 6 }).map((_, i) => (\n <Input\n key={i}\n maxLength={1}\n className=\"h-11 w-full text-center text-lg font-semibold tabular-nums p-0\"\n defaultValue={i < 3 ? ['4', '8', '2'][i] : ''}\n />\n ))}\n </div>\n <p className=\"text-xs text-muted-foreground text-center\">\n Didn't receive it?{' '}\n <a href=\"#\" className=\"text-foreground hover:underline\">\n Resend code\n </a>{' '}\n <span className=\"text-muted-foreground/60\">(59s)</span>\n </p>\n </div>\n\n <Button type=\"submit\" className=\"w-full h-9\">Verify</Button>\n\n <a\n href=\"#\"\n className=\"flex items-center justify-center gap-1.5 text-xs text-muted-foreground hover:text-foreground transition-colors\"\n >\n <ArrowLeft className=\"h-3.5 w-3.5\" />\n Back to sign in\n </a>\n </form>\n </LoginBodyTemplate>\n )\n}\n\nexport function buildLoginOtpCode({ themeProp }: TemplateCodeContext) {\n return [\n `import { LoginBodyTemplate } from '@loykin/designkit'`,\n `import '@loykin/designkit/styles'`,\n '',\n `export function OtpVerificationPage() {`,\n ` return (`,\n ` <LoginBodyTemplate${themeProp} layout=\"split\">`,\n ` <div className=\"space-y-6\">`,\n ` <h1 className=\"text-2xl font-semibold\">Check your email</h1>`,\n ` {/* otp inputs */}`,\n ` <button type=\"submit\" className=\"w-full\">Verify</button>`,\n ` </div>`,\n ` </LoginBodyTemplate>`,\n ` )`,\n `}`,\n ].join('\\n')\n}\n","import { createElement, type ComponentType } from 'react'\nimport type { TemplateId } from '@/store/types'\nimport { FileText, LayoutDashboard, Table2, Layers, Type, Palette, KeyRound } from 'lucide-react'\nimport { TEMPLATE_DEFINITIONS } from './definitions'\nimport type { TemplateCodeBuilder } from './code'\nexport { TEMPLATE_DEFINITIONS, createTemplateOverrides, getTemplateDefinition } from './definitions'\nexport type {\n TemplateDefinition,\n TemplateExportKind,\n TemplateGroup,\n TemplateNavigationGroupId,\n TemplateOptionSpec,\n TemplateOptionChoice,\n} from './definitions'\n\nexport interface TemplateConfig {\n id: TemplateId\n label: string\n component: ComponentType<{ theme?: React.CSSProperties }>\n buildCode?: TemplateCodeBuilder\n group?: string\n description?: string\n}\n\nexport interface TemplateNavigationItem {\n id: TemplateId\n label: string\n icon?: ComponentType<{ className?: string }>\n children?: TemplateNavigationItem[]\n}\n\nexport interface TemplateNavigationGroup {\n label: string\n items: TemplateNavigationItem[]\n}\n\nexport {\n DataGridView,\n type DataGridViewProps,\n type DataGridColumnDef,\n type DataGridViewVariant,\n} from './table/DataGridView'\nexport { DataBodyTemplate } from './databody/DataBodyTemplate'\nexport { DataBodyTemplateDemo } from './databody/DataBodyTemplateDemo'\nexport { FormWizardBodyTemplate } from './form/FormWizardBodyTemplate'\nexport type {\n FormWizardBodyTemplateProps,\n FormWizardStep,\n FormWizardVariant,\n} from './form/FormWizardBodyTemplate'\nexport { FormWizardBodyTemplateDemo } from './form/FormWizardBodyTemplateDemo'\nexport { TypographyBodyTemplate } from './typography/TypographyBodyTemplate'\nexport type { TypographyBodyTemplateProps } from './typography/TypographyBodyTemplate'\nexport { ColorsBodyTemplate } from './typography/ColorsBodyTemplate'\nexport type { ColorsBodyTemplateProps } from './typography/ColorsBodyTemplate'\nexport { DataPage } from './datapage/DataPage'\nexport { LoginBodyTemplate } from './auth/LoginBodyTemplate'\nexport type { LoginBodyTemplateProps, LoginLayout, LoginSide } from './auth/LoginBodyTemplate'\nexport { PageTopBar, buildTopBar, PageBreadcrumb } from './datapage/PageTopBar'\nexport type { PageTopBarProps, PageTopBarVariant, PageBreadcrumbItem } from './datapage/PageTopBar'\nexport type {\n DataPageActionsProps,\n DataPageContentProps,\n DataPageFooterProps,\n DataPageGroupBodyProps,\n DataPageGroupHeaderProps,\n DataPageGroupProps,\n DataPageGroupToolbarProps,\n DataPageHeaderProps,\n DataPageProps,\n DataPageTabProps,\n DataPageTabsProps,\n DataPageTitleBlockProps,\n} from './datapage/DataPage'\nexport type { TemplateCodeBuilder, TemplateCodeContext } from './code'\nexport type {\n DataBodyBodyProps,\n DataBodyTabProps,\n DataBodySectionProps,\n DataBodySummaryProps,\n DataBodyGroupProps,\n DataBodyRowProps,\n DataBodyFieldProps,\n DataBodyTemplateProps,\n GroupLayout,\n GroupVariant,\n} from './databody/DataBodyTemplate'\n\nimport { DataGridTemplateDemo, buildDataGridTemplateCode } from './table/DataGridTemplateDemo'\nimport type { DataGridViewVariant } from './table/DataGridView'\nimport { DataBodyTemplateDemo, buildDataBodyTemplateCode } from './databody/DataBodyTemplateDemo'\nimport {\n DetailBodyTemplateDemo,\n buildDetailBodyTemplateCode,\n} from './databody/DetailBodyTemplateDemo'\nimport { SplitBodyTemplateDemo, buildSplitBodyTemplateCode } from './databody/SplitBodyTemplateDemo'\nimport {\n TabbedBodyTemplateDemo,\n buildTabbedBodyTemplateCode,\n} from './tabbed/TabbedBodyTemplateDemo'\nimport { FormBodyTemplateDemo, buildFormBodyTemplateCode } from './form/FormBodyTemplateDemo'\nimport {\n FormStackedBodyTemplateDemo,\n buildFormStackedBodyTemplateCode,\n} from './form/FormStackedBodyTemplateDemo'\nimport {\n FormWizardBodyTemplateDemo,\n buildFormWizardBodyTemplateCode,\n} from './form/FormWizardBodyTemplateDemo'\nimport {\n FormInlineBodyTemplateDemo,\n buildFormInlineBodyTemplateCode,\n} from './form/FormInlineBodyTemplateDemo'\nimport {\n SectionedBodyTemplateDemo,\n buildSectionedBodyTemplateCode,\n} from './sectioned/SectionedBodyTemplateDemo'\nimport { TypographyBodyTemplate } from './typography/TypographyBodyTemplate'\nimport { ColorsBodyTemplate } from './typography/ColorsBodyTemplate'\nimport { LoginBodyTemplateDemo, buildLoginBodyTemplateCode } from './auth/LoginBodyTemplateDemo'\nimport { LoginForgotDemo, buildLoginForgotCode } from './auth/LoginForgotDemo'\nimport { LoginResetDemo, buildLoginResetCode } from './auth/LoginResetDemo'\nimport { LoginOtpDemo, buildLoginOtpCode } from './auth/LoginOtpDemo'\n\nfunction DataGridTemplatePreview(props: {\n theme?: React.CSSProperties\n variant: DataGridViewVariant\n layoutClassName: string\n title: React.ReactNode\n description?: React.ReactNode\n topBarShow?: string\n topBarVariant?: string\n topBarBg?: string\n}) {\n return createElement(DataGridTemplateDemo, props)\n}\n\nfunction createDataGridPreview(id: TemplateId) {\n const definition = TEMPLATE_DEFINITIONS.find((item) => item.id === id)\n return function DataGridPreview({\n theme,\n topBarShow,\n topBarVariant,\n topBarBg,\n }: {\n theme?: React.CSSProperties\n topBarShow?: string\n topBarVariant?: string\n topBarBg?: string\n }) {\n return createElement(DataGridTemplatePreview, {\n theme,\n variant: definition?.preview?.variant ?? 'standard',\n layoutClassName: definition?.layoutClassName ?? `layout-${id}`,\n title: definition?.preview?.title ?? 'Users',\n description: definition?.preview?.description,\n topBarShow,\n topBarVariant,\n topBarBg,\n })\n }\n}\n\nconst previewComponents: Record<TemplateId, ComponentType<{ theme?: React.CSSProperties }>> = {\n table: createDataGridPreview('table'),\n 'table-infinity': createDataGridPreview('table-infinity'),\n 'table-drag': createDataGridPreview('table-drag'),\n 'table-card': createDataGridPreview('table-card'),\n 'table-card-list': createDataGridPreview('table-card-list'),\n databody: DataBodyTemplateDemo,\n 'databody-detail': DetailBodyTemplateDemo,\n 'databody-split': SplitBodyTemplateDemo,\n tabbed: TabbedBodyTemplateDemo,\n form: FormBodyTemplateDemo,\n 'form-stacked': FormStackedBodyTemplateDemo,\n 'form-wizard': FormWizardBodyTemplateDemo,\n 'form-inline': FormInlineBodyTemplateDemo,\n sectioned: SectionedBodyTemplateDemo,\n typography: TypographyBodyTemplate,\n colors: ColorsBodyTemplate,\n login: LoginBodyTemplateDemo,\n 'login-forgot': LoginForgotDemo,\n 'login-reset': LoginResetDemo,\n 'login-otp': LoginOtpDemo,\n}\n\nconst codeBuilders: Partial<Record<TemplateId, TemplateCodeBuilder>> = {\n table: buildDataGridTemplateCode,\n 'table-infinity': buildDataGridTemplateCode,\n 'table-drag': buildDataGridTemplateCode,\n 'table-card': buildDataGridTemplateCode,\n 'table-card-list': buildDataGridTemplateCode,\n databody: buildDataBodyTemplateCode,\n 'databody-detail': buildDetailBodyTemplateCode,\n 'databody-split': buildSplitBodyTemplateCode,\n tabbed: buildTabbedBodyTemplateCode,\n form: buildFormBodyTemplateCode,\n 'form-stacked': buildFormStackedBodyTemplateCode,\n 'form-wizard': buildFormWizardBodyTemplateCode,\n login: buildLoginBodyTemplateCode,\n 'login-forgot': buildLoginForgotCode,\n 'login-reset': buildLoginResetCode,\n 'login-otp': buildLoginOtpCode,\n 'form-inline': buildFormInlineBodyTemplateCode,\n sectioned: buildSectionedBodyTemplateCode,\n}\n\nexport const TEMPLATES: TemplateConfig[] = TEMPLATE_DEFINITIONS.map((definition) => ({\n id: definition.id,\n label: definition.label,\n group: definition.group,\n component: previewComponents[definition.id],\n buildCode: codeBuilders[definition.id],\n}))\n\nconst iconById: Partial<Record<TemplateId, ComponentType<{ className?: string }>>> = {\n table: Table2,\n 'table-card': Layers,\n databody: LayoutDashboard,\n sectioned: FileText,\n form: FileText,\n 'form-wizard': FileText,\n typography: Type,\n colors: Palette,\n login: KeyRound,\n}\n\nconst navigationGroupIcon: Partial<Record<string, ComponentType<{ className?: string }>>> = {\n DataBodyTemplate: LayoutDashboard,\n FormWizardBodyTemplate: Layers,\n LoginBodyTemplate: KeyRound,\n}\n\nconst navigationLabelOrder = ['Common', 'DataBodyTemplate', 'FormWizardBodyTemplate', 'LoginBodyTemplate']\n\nexport const TEMPLATE_NAVIGATION: TemplateNavigationGroup[] = navigationLabelOrder\n .map((groupId) => {\n const definitions = TEMPLATE_DEFINITIONS.filter((d) => d.navigationGroup === groupId)\n const parentDefinitions = definitions.filter((d) => !d.navigationParent)\n const label = groupId\n\n return {\n label,\n items: parentDefinitions.map((definition) => {\n const childDefs = definitions.filter((d) => d.navigationParent === definition.id)\n const hasChildren = childDefs.length > 0\n\n return {\n id: definition.id,\n label:\n definition.navigationSubgroupLabel ?? definition.navigationLabel ?? definition.label,\n icon: iconById[definition.id] ?? navigationGroupIcon[label],\n children: hasChildren\n ? [\n { id: definition.id, label: definition.navigationLabel ?? definition.label },\n ...childDefs.map((child) => ({\n id: child.id,\n label: child.navigationLabel ?? child.label,\n })),\n ]\n : [],\n }\n }),\n }\n })\n .filter((group) => group.items.length > 0)\n","import { useEffect } from 'react'\nimport { getTemplateDefinition } from '@/components/templates/definitions'\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 = getTemplateDefinition(id)?.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"]}