@structyl/styled 1.0.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.
- package/LICENSE +21 -0
- package/README.md +136 -0
- package/dist/index.cjs +8352 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +4301 -0
- package/dist/index.d.ts +4301 -0
- package/dist/index.mjs +8202 -0
- package/dist/index.mjs.map +1 -0
- package/dist/tailwind-preset.cjs +677 -0
- package/dist/tailwind-preset.cjs.map +1 -0
- package/dist/tailwind-preset.d.cts +843 -0
- package/dist/tailwind-preset.d.ts +843 -0
- package/dist/tailwind-preset.mjs +675 -0
- package/dist/tailwind-preset.mjs.map +1 -0
- package/package.json +80 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/button/index.tsx","../src/switch/index.tsx","../src/toggle/index.tsx","../src/checkbox/index.tsx","../src/label/index.tsx","../src/separator/index.tsx","../src/dialog/index.tsx","../src/aspect-ratio/index.tsx","../src/avatar/index.tsx","../src/progress/index.tsx","../src/skeleton/skeleton.tsx","../src/badge/index.tsx","../src/card/index.tsx","../src/spinner/index.tsx","../src/alert/index.tsx","../src/input/index.tsx","../src/textarea/index.tsx","../src/radio-group/index.tsx","../src/toggle-group/index.tsx","../src/slider/index.tsx","../src/form/index.tsx","../src/collapsible/index.tsx","../src/accordion/index.tsx","../src/tabs/index.tsx","../src/breadcrumb/index.tsx","../src/select/index.tsx","../src/pagination/index.tsx","../src/stepper/index.tsx","../src/alert-dialog/index.tsx","../src/sheet/index.tsx","../src/drawer/index.tsx","../src/popover/index.tsx","../src/tooltip/index.tsx","../src/hover-card/index.tsx","../src/toast/index.tsx","../src/toast/toast-root.tsx","../src/toast/use-toast.ts","../src/toast/toaster.tsx","../src/dropdown-menu/index.tsx","../src/context-menu/index.tsx","../src/menubar/index.tsx","../src/navigation-menu/index.tsx","../src/multi-select/index.tsx","../src/combobox/index.tsx","../src/command/index.tsx","../src/structyl/index.tsx","../src/one-time-password-field/index.tsx","../src/password-toggle-field/index.tsx","../src/number-field/index.tsx","../src/calendar/index.tsx","../src/typography/index.tsx","../src/date-picker/index.tsx","../src/time-picker/index.tsx","../src/date-range-picker/index.tsx","../src/date-time-picker/index.tsx","../src/color-picker/index.tsx","../src/file-upload/index.tsx","../src/circular-progress/index.tsx","../src/meter/index.tsx","../src/scroll-area/index.tsx","../src/toolbar/index.tsx","../src/resizable/index.tsx","../src/carousel/index.tsx","../src/tree/index.tsx","../src/editable/index.tsx","../src/tags-input/index.tsx","../src/mentions/index.tsx","../src/copy-button/index.tsx","../src/chart/index.tsx","../src/table/index.tsx","../src/callout/index.tsx","../src/empty-state/index.tsx","../src/kbd/index.tsx","../src/stat/index.tsx","../src/timeline/index.tsx","../src/rating/index.tsx","../src/popconfirm/index.tsx"],"names":["tv","React","cn","Slot","React2","SwitchPrimitive","React3","TogglePrimitive","React4","CheckboxPrimitive","CheckboxIndicator","Check","Minus","React5","LabelPrimitive","React6","SeparatorPrimitive","DialogPrimitive","React7","X","React8","AspectRatioPrimitive","Root","React9","AvatarPrimitive","React10","ProgressPrimitive","React11","Group","React12","Content","Description","Footer","Header","Title","React13","React14","React15","Close","React16","React17","colorMap","React18","RadioGroupPrimitive","Circle","Item","React19","ToggleGroupPrimitive","React20","SliderPrimitive","Label","React21","FormPrimitive","Trigger","CollapsiblePrimitive","React22","React23","AccordionPrimitive","ChevronDown","React24","TabsPrimitive","List","Separator","React25","ChevronRight","MoreHorizontal","SelectPrimitive","React26","Plus","React27","ChevronsLeft","ChevronLeft","ChevronsRight","React28","Overlay","Portal","AlertDialogPrimitive","React29","SheetPrimitive","React30","DrawerPrimitive","React31","PopoverPrimitive","React32","Arrow","TooltipPrimitive","React33","HoverCardPrimitive","React34","Action","Provider","ToastPrimitive","React35","useState","useRef","useEffect","useCallback","CheckCircle2","XCircle","AlertTriangle","Info","Loader2","remove","React36","Icon","RotateCcw","DropdownMenuPrimitive","React37","CheckboxItem","RadioGroup","RadioItem","Sub","SubContent","SubTrigger","ContextMenuPrimitive","React38","MenubarPrimitive","React39","Indicator","Link","Viewport","React40","NavigationMenuPrimitive","CreateItem","Options","SearchInput","Value","MultiSelectPrimitive","itemClassName","itemIndicatorClassName","React41","Input","ComboboxPrimitive","React42","Empty","Shortcut","React43","CommandPrimitive","Search","ButtonGroup","React44","StructylPrimitive","React45","OtpPrimitive","Toggle","React46","PtfPrimitive","EyeOff","Eye","React47","NumberFieldPrimitive","React48","CalendarPrimitive","Typography","React49","DatePickerPrimitive","Loading","Calendar","React50","CalendarIcon","React51","TimePickerPrimitive","nextView","Clock","DateRangePickerPrimitive","React52","DateTimePickerPrimitive","React53","Segment","CalendarClock","React54","ColorPickerPrimitive","FileUploadPrimitive","React55","Upload","React56","React57","React58","ScrollAreaPrimitive","Button","React59","ToolbarPrimitive","React60","ResizablePrimitive","GripVertical","React61","CarouselPrimitive","React62","TreePrimitive","EditablePrimitive","React63","React64","TagsInputPrimitive","Items","Textarea","React65","MentionsPrimitive","React66","Copy","Area","Grid","Tooltip","Primitives","React67","React68","Table","React69","React70","React71","React72","React73","dotColorMap","React74","Rating","React75"],"mappings":"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","file":"index.cjs","sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Slot } from '@structyl/core';\nimport { cn } from '@structyl/utils';\nimport { tv, type VariantProps } from 'tailwind-variants';\n\nexport const buttonVariants = tv({\n base: [\n 'relative inline-flex cursor-pointer items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium',\n 'select-none isolate',\n 'transition-[transform,background-color,border-color,color,box-shadow,opacity] duration-150 ease-spring',\n 'will-change-transform',\n 'active:scale-[0.97] active:duration-snappy',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/60 focus-visible:ring-offset-2 focus-visible:ring-offset-bg',\n 'disabled:pointer-events-none disabled:opacity-50 disabled:scale-100',\n '[&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 [&_svg]:transition-transform [&_svg]:duration-150',\n ],\n variants: {\n variant: {\n // ── Legacy / convenience variants (no color prop needed) ──────────────\n default: [\n 'bg-primary text-primary-foreground shadow-button',\n 'hover:bg-primary-hover hover:shadow-md',\n 'active:bg-primary-active active:shadow-button-active',\n ],\n destructive: [\n 'bg-destructive text-destructive-foreground shadow-button',\n 'hover:brightness-110 hover:shadow-md',\n 'active:brightness-95 active:shadow-button-active',\n ],\n outline: [\n 'border border-border bg-bg text-fg shadow-xs',\n 'hover:bg-accent hover:text-accent-foreground hover:border-border-strong',\n 'active:bg-accent/80',\n ],\n secondary: [\n 'bg-secondary text-secondary-foreground shadow-xs',\n 'hover:bg-secondary/80',\n 'active:bg-secondary/70',\n ],\n ghost: ['text-fg', 'hover:bg-accent hover:text-accent-foreground', 'active:bg-accent/80'],\n link: ['text-primary underline-offset-4', 'hover:underline active:scale-100'],\n success: [\n 'bg-success text-success-foreground shadow-button',\n 'hover:brightness-110 hover:shadow-md',\n 'active:brightness-95',\n ],\n warning: [\n 'bg-warning text-warning-foreground shadow-button',\n 'hover:brightness-110 hover:shadow-md',\n 'active:brightness-95',\n ],\n // ── MUI-style semantic variants (pair with color prop) ────────────────\n contained: [\n 'shadow-button',\n 'hover:shadow-md',\n 'active:shadow-button-active',\n ],\n outlined: [\n 'border bg-transparent',\n 'active:scale-[0.97]',\n ],\n text: [\n 'bg-transparent shadow-none',\n 'active:scale-[0.97]',\n ],\n },\n color: {\n primary: '',\n secondary: '',\n error: '',\n warning: '',\n info: '',\n success: '',\n default: '',\n inherit: 'text-inherit',\n },\n size: {\n default: 'h-9 px-4 py-2',\n sm: 'h-8 rounded-md px-3 text-xs',\n lg: 'h-11 rounded-lg px-6 text-base',\n xl: 'h-12 rounded-lg px-8 text-base',\n icon: 'size-9 rounded-md',\n 'icon-sm': 'size-8 rounded-md',\n 'icon-lg': 'size-11 rounded-lg',\n 'icon-xl': 'size-12 rounded-lg',\n },\n },\n compoundVariants: [\n // ── contained × color ─────────────────────────────────────────────────\n {\n variant: 'contained',\n color: 'primary',\n class: [\n 'bg-primary text-primary-foreground',\n 'hover:bg-primary-state-contained',\n ],\n },\n {\n variant: 'contained',\n color: 'secondary',\n class: [\n 'bg-secondary text-secondary-foreground',\n 'hover:bg-secondary-state-contained',\n ],\n },\n {\n variant: 'contained',\n color: 'error',\n class: [\n 'bg-destructive text-destructive-foreground',\n 'hover:bg-error-state-contained',\n ],\n },\n {\n variant: 'contained',\n color: 'warning',\n class: [\n 'bg-warning text-warning-foreground',\n 'hover:bg-warning-state-contained',\n ],\n },\n {\n variant: 'contained',\n color: 'info',\n class: [\n 'bg-info text-info-foreground',\n 'hover:bg-info-state-contained',\n ],\n },\n {\n variant: 'contained',\n color: 'success',\n class: [\n 'bg-success text-success-foreground',\n 'hover:bg-success-state-contained',\n ],\n },\n {\n variant: 'contained',\n color: 'default',\n class: [\n 'bg-muted text-fg',\n 'hover:bg-muted/80',\n ],\n },\n // ── outlined × color ──────────────────────────────────────────────────\n {\n variant: 'outlined',\n color: 'primary',\n class: [\n 'border-primary text-primary',\n 'hover:bg-primary-state-outlined',\n 'active:bg-primary-state-resting',\n ],\n },\n {\n variant: 'outlined',\n color: 'secondary',\n class: [\n 'border-secondary text-secondary-dark',\n 'hover:bg-secondary-state-outlined',\n 'active:bg-secondary-state-resting',\n ],\n },\n {\n variant: 'outlined',\n color: 'error',\n class: [\n 'border-destructive text-destructive',\n 'hover:bg-error-state-outlined',\n 'active:bg-error-state-resting',\n ],\n },\n {\n variant: 'outlined',\n color: 'warning',\n class: [\n 'border-warning text-warning',\n 'hover:bg-warning-state-outlined',\n 'active:bg-warning-state-resting',\n ],\n },\n {\n variant: 'outlined',\n color: 'info',\n class: [\n 'border-info text-info',\n 'hover:bg-info-state-outlined',\n 'active:bg-info-state-resting',\n ],\n },\n {\n variant: 'outlined',\n color: 'success',\n class: [\n 'border-success text-success',\n 'hover:bg-success-state-outlined',\n 'active:bg-success-state-resting',\n ],\n },\n {\n variant: 'outlined',\n color: 'default',\n class: [\n 'border-border text-fg',\n 'hover:bg-accent hover:text-accent-foreground',\n 'active:bg-accent/80',\n ],\n },\n // ── text × color ──────────────────────────────────────────────────────\n {\n variant: 'text',\n color: 'primary',\n class: [\n 'text-primary',\n 'hover:bg-primary-state-outlined',\n 'active:bg-primary-state-resting',\n ],\n },\n {\n variant: 'text',\n color: 'secondary',\n class: [\n 'text-secondary-dark',\n 'hover:bg-secondary-state-outlined',\n 'active:bg-secondary-state-resting',\n ],\n },\n {\n variant: 'text',\n color: 'error',\n class: [\n 'text-destructive',\n 'hover:bg-error-state-outlined',\n 'active:bg-error-state-resting',\n ],\n },\n {\n variant: 'text',\n color: 'warning',\n class: [\n 'text-warning',\n 'hover:bg-warning-state-outlined',\n 'active:bg-warning-state-resting',\n ],\n },\n {\n variant: 'text',\n color: 'info',\n class: [\n 'text-info',\n 'hover:bg-info-state-outlined',\n 'active:bg-info-state-resting',\n ],\n },\n {\n variant: 'text',\n color: 'success',\n class: [\n 'text-success',\n 'hover:bg-success-state-outlined',\n 'active:bg-success-state-resting',\n ],\n },\n {\n variant: 'text',\n color: 'default',\n class: [\n 'text-fg',\n 'hover:bg-accent hover:text-accent-foreground',\n 'active:bg-accent/80',\n ],\n },\n ],\n defaultVariants: { variant: 'default', size: 'default' },\n});\n\n// ── Spinner (inline) ─────────────────────────────────────────────────────────\n\nconst ButtonSpinner = ({ className }: { className?: string }) => (\n <svg\n className={cn('animate-spin', className)}\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n aria-hidden\n >\n <circle className=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" strokeWidth=\"4\" />\n <path\n className=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z\"\n />\n </svg>\n);\n\n// ── Button ───────────────────────────────────────────────────────────────────\n\nexport interface ButtonProps\n extends Omit<React.ComponentPropsWithoutRef<'button'>, 'color'>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n /** Shows a spinner and disables the button */\n loading?: boolean;\n /** Text shown next to spinner when loading. Defaults to children. */\n loadingText?: string;\n /** Icon rendered before children */\n leftIcon?: React.ReactNode;\n /** Icon rendered after children */\n rightIcon?: React.ReactNode;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (\n { className, variant, size, color, asChild = false, loading = false, loadingText, leftIcon, rightIcon, disabled, children, ...props },\n ref,\n ) => {\n const isDisabled = disabled || loading;\n\n if (asChild) {\n return (\n <Slot\n ref={ref}\n className={cn(buttonVariants({ variant, size, color }), className)}\n aria-disabled={isDisabled || undefined}\n data-loading={loading ? '' : undefined}\n {...props}\n >\n {children}\n </Slot>\n );\n }\n\n return (\n <button\n ref={ref}\n type=\"button\"\n className={cn(buttonVariants({ variant, size, color }), className)}\n disabled={isDisabled}\n data-loading={loading ? '' : undefined}\n {...props}\n >\n {loading ? (\n <>\n <ButtonSpinner className=\"size-4\" />\n {loadingText ?? children}\n </>\n ) : (\n <>\n {leftIcon && <span className=\"inline-flex shrink-0\">{leftIcon}</span>}\n {children}\n {rightIcon && <span className=\"inline-flex shrink-0\">{rightIcon}</span>}\n </>\n )}\n </button>\n );\n },\n);\nButton.displayName = 'Button';\n\n// ── ButtonGroup ──────────────────────────────────────────────────────────────\n\nexport interface ButtonGroupProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Collapses shared borders between buttons */\n attached?: boolean;\n orientation?: 'horizontal' | 'vertical';\n /** Propagated to child Button components */\n variant?: VariantProps<typeof buttonVariants>['variant'];\n /** Propagated to child Button components */\n color?: VariantProps<typeof buttonVariants>['color'];\n /** Propagated to child Button components */\n size?: VariantProps<typeof buttonVariants>['size'];\n /** Propagated to child Button components */\n disabled?: boolean;\n /** Propagated to child Button components — makes each button full-width */\n fullWidth?: boolean;\n}\n\nconst ButtonGroup = React.forwardRef<HTMLDivElement, ButtonGroupProps>(\n ({ className, attached = false, orientation = 'horizontal', variant, color, size, disabled, fullWidth, children, ...props }, ref) => {\n const hasOverrides = variant !== undefined || color !== undefined || size !== undefined || disabled !== undefined || fullWidth !== undefined;\n const clonedChildren = hasOverrides\n ? React.Children.map(children, (child) => {\n if (!React.isValidElement(child)) return child;\n return React.cloneElement(child as React.ReactElement<Record<string, unknown>>, {\n ...(variant !== undefined && { variant }),\n ...(color !== undefined && { color }),\n ...(size !== undefined && { size }),\n ...(disabled !== undefined && { disabled }),\n ...(fullWidth !== undefined && { fullWidth }),\n });\n })\n : children;\n\n return (\n <div\n ref={ref}\n role=\"group\"\n data-orientation={orientation}\n className={cn(\n 'inline-flex',\n orientation === 'vertical' ? 'flex-col' : 'flex-row',\n attached && [\n orientation === 'horizontal'\n ? '[&>*:not(:first-child)]:rounded-l-none [&>*:not(:last-child)]:rounded-r-none [&>*:not(:first-child)]:-ml-px'\n : '[&>*:not(:first-child)]:rounded-t-none [&>*:not(:last-child)]:rounded-b-none [&>*:not(:first-child)]:-mt-px',\n '[&>*:focus-visible]:z-10 [&>*:hover]:z-10 [&>*]:relative',\n ],\n !attached && (orientation === 'horizontal' ? 'gap-2' : 'gap-2 flex-col'),\n className,\n )}\n {...props}\n >\n {clonedChildren}\n </div>\n );\n },\n);\nButtonGroup.displayName = 'ButtonGroup';\n\nexport { Button, ButtonGroup, ButtonSpinner };\n","'use client';\n\nimport * as React from 'react';\nimport { Switch as SwitchPrimitive, type SwitchProps as SwitchPrimitiveProps } from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\nimport { tv, type VariantProps } from 'tailwind-variants';\n\ntype SwitchColor = 'primary' | 'secondary' | 'error' | 'warning' | 'info' | 'success';\n\nconst checkedBgMap: Record<SwitchColor, string> = {\n primary: 'data-[state=checked]:bg-primary',\n secondary: 'data-[state=checked]:bg-secondary',\n error: 'data-[state=checked]:bg-destructive',\n warning: 'data-[state=checked]:bg-warning',\n info: 'data-[state=checked]:bg-info',\n success: 'data-[state=checked]:bg-success',\n};\n\nexport const switchVariants = tv({\n base: [\n 'peer group/switch inline-flex shrink-0 cursor-pointer items-center rounded-full p-0.5',\n 'border border-transparent',\n 'transition-[background-color,box-shadow] duration-smooth ease-spring',\n 'shadow-inner',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/60 focus-visible:ring-offset-2 focus-visible:ring-offset-bg',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n 'data-[state=unchecked]:bg-muted',\n 'active:scale-[0.97] active:transition-transform active:duration-instant',\n ],\n variants: {\n size: {\n sm: 'h-4 w-7',\n md: 'h-6 w-11',\n lg: 'h-8 w-14',\n },\n },\n defaultVariants: { size: 'md' },\n});\n\nconst thumbVariants = tv({\n base: [\n 'pointer-events-none block rounded-full bg-bg',\n 'shadow-[0_1px_2px_rgba(0,0,0,0.12),0_2px_4px_rgba(0,0,0,0.08)]',\n 'transition-transform duration-smooth ease-spring',\n 'group-active/switch:scale-110',\n ],\n variants: {\n size: {\n sm: 'h-3 w-3 data-[state=checked]:translate-x-3',\n md: 'h-5 w-5 data-[state=checked]:translate-x-5',\n lg: 'h-7 w-7 data-[state=checked]:translate-x-6',\n },\n },\n defaultVariants: { size: 'md' },\n});\n\nexport interface SwitchProps extends SwitchPrimitiveProps, VariantProps<typeof switchVariants> {\n color?: SwitchColor;\n}\n\nconst Switch = React.forwardRef<HTMLButtonElement, SwitchProps>(\n ({ className, size, color = 'primary', ...props }, ref) => (\n <SwitchPrimitive\n ref={ref}\n className={cn(switchVariants({ size }), checkedBgMap[color], className)}\n {...props}\n >\n <span\n data-state={props.checked ?? props.defaultChecked ? 'checked' : 'unchecked'}\n className={thumbVariants({ size })}\n />\n </SwitchPrimitive>\n ),\n);\nSwitch.displayName = 'Switch';\n\nexport { Switch };\n","'use client';\n\nimport * as React from 'react';\nimport { Toggle as TogglePrimitive, type ToggleProps as TogglePrimitiveProps } from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\nimport { tv, type VariantProps } from 'tailwind-variants';\n\nexport const toggleVariants = tv({\n base: [\n 'inline-flex cursor-pointer items-center justify-center rounded-md text-sm font-medium',\n 'ring-offset-bg transition-colors',\n 'hover:bg-muted hover:text-muted-foreground',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n 'disabled:pointer-events-none disabled:opacity-50',\n ],\n variants: {\n variant: {\n default: 'bg-transparent',\n outline: 'border border-input bg-transparent hover:bg-accent hover:text-accent-foreground',\n },\n color: {\n default: 'data-[state=on]:bg-accent data-[state=on]:text-accent-foreground',\n primary: 'data-[state=on]:bg-primary data-[state=on]:text-primary-foreground',\n secondary: 'data-[state=on]:bg-secondary data-[state=on]:text-secondary-foreground',\n error: 'data-[state=on]:bg-destructive data-[state=on]:text-destructive-foreground',\n warning: 'data-[state=on]:bg-warning data-[state=on]:text-warning-foreground',\n info: 'data-[state=on]:bg-info data-[state=on]:text-info-foreground',\n success: 'data-[state=on]:bg-success data-[state=on]:text-success-foreground',\n },\n size: {\n default: 'h-10 px-3',\n sm: 'h-9 px-2.5',\n lg: 'h-11 px-5',\n },\n },\n defaultVariants: { variant: 'default', size: 'default', color: 'default' },\n});\n\nexport interface ToggleProps\n extends Omit<TogglePrimitiveProps, 'color'>,\n VariantProps<typeof toggleVariants> {}\n\nconst Toggle = React.forwardRef<HTMLButtonElement, ToggleProps>(\n ({ className, variant, size, color, ...props }, ref) => (\n <TogglePrimitive\n ref={ref}\n className={cn(toggleVariants({ variant, size, color }), className)}\n {...props}\n />\n ),\n);\nToggle.displayName = 'Toggle';\n\nexport { Toggle };\n","'use client';\n\nimport * as React from 'react';\nimport { Check, Minus } from '@structyl/icons';\nimport {\n Checkbox as CheckboxPrimitive,\n CheckboxIndicator,\n type CheckboxProps as CheckboxPrimitiveProps,\n} from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\n\ntype CheckboxColor = 'primary' | 'secondary' | 'error' | 'warning' | 'info' | 'success';\n\nconst checkedColorMap: Record<CheckboxColor, string> = {\n primary: [\n 'data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground data-[state=checked]:border-primary',\n 'data-[state=indeterminate]:bg-primary data-[state=indeterminate]:text-primary-foreground data-[state=indeterminate]:border-primary',\n ].join(' '),\n secondary: [\n 'data-[state=checked]:bg-secondary data-[state=checked]:text-secondary-foreground data-[state=checked]:border-secondary',\n 'data-[state=indeterminate]:bg-secondary data-[state=indeterminate]:text-secondary-foreground data-[state=indeterminate]:border-secondary',\n ].join(' '),\n error: [\n 'data-[state=checked]:bg-destructive data-[state=checked]:text-destructive-foreground data-[state=checked]:border-destructive',\n 'data-[state=indeterminate]:bg-destructive data-[state=indeterminate]:text-destructive-foreground data-[state=indeterminate]:border-destructive',\n ].join(' '),\n warning: [\n 'data-[state=checked]:bg-warning data-[state=checked]:text-warning-foreground data-[state=checked]:border-warning',\n 'data-[state=indeterminate]:bg-warning data-[state=indeterminate]:text-warning-foreground data-[state=indeterminate]:border-warning',\n ].join(' '),\n info: [\n 'data-[state=checked]:bg-info data-[state=checked]:text-info-foreground data-[state=checked]:border-info',\n 'data-[state=indeterminate]:bg-info data-[state=indeterminate]:text-info-foreground data-[state=indeterminate]:border-info',\n ].join(' '),\n success: [\n 'data-[state=checked]:bg-success data-[state=checked]:text-success-foreground data-[state=checked]:border-success',\n 'data-[state=indeterminate]:bg-success data-[state=indeterminate]:text-success-foreground data-[state=indeterminate]:border-success',\n ].join(' '),\n};\n\nconst hoverColorMap: Record<CheckboxColor, string> = {\n primary: 'hover:border-primary/60',\n secondary: 'hover:border-secondary/60',\n error: 'hover:border-destructive/60',\n warning: 'hover:border-warning/60',\n info: 'hover:border-info/60',\n success: 'hover:border-success/60',\n};\n\nexport interface CheckboxProps extends CheckboxPrimitiveProps {\n color?: CheckboxColor;\n}\n\nconst Checkbox = React.forwardRef<HTMLButtonElement, CheckboxProps>(\n ({ className, color = 'primary', ...props }, ref) => (\n <CheckboxPrimitive\n ref={ref}\n className={cn(\n 'peer size-4 shrink-0 cursor-pointer rounded-[5px] border border-border-strong bg-bg shadow-xs',\n 'transition-[background-color,border-color,box-shadow,transform] duration-snappy ease-spring',\n hoverColorMap[color],\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/60 focus-visible:ring-offset-2 focus-visible:ring-offset-bg',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n 'active:scale-[0.92]',\n checkedColorMap[color],\n className,\n )}\n {...props}\n >\n <CheckboxIndicator className={cn('group flex items-center justify-center text-current animate-in zoom-in-50 duration-snappy')}>\n <Check className=\"size-3 stroke-[3] group-data-[state=indeterminate]:hidden\" />\n <Minus className=\"size-3 stroke-[3] group-data-[state=checked]:hidden\" />\n </CheckboxIndicator>\n </CheckboxPrimitive>\n ),\n);\nCheckbox.displayName = 'Checkbox';\n\nexport { Checkbox };\n","'use client';\n\nimport * as React from 'react';\nimport { Label as LabelPrimitive, type LabelProps as LabelPrimitiveProps } from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\n\nexport interface LabelProps extends LabelPrimitiveProps {}\n\nconst Label = React.forwardRef<HTMLLabelElement, LabelProps>(\n ({ className, ...props }, ref) => (\n <LabelPrimitive\n ref={ref}\n className={cn(\n 'text-sm font-medium leading-none',\n 'peer-disabled:cursor-not-allowed peer-disabled:opacity-70',\n className,\n )}\n {...props}\n />\n ),\n);\nLabel.displayName = 'Label';\n\nexport { Label };\n","'use client';\n\nimport * as React from 'react';\nimport {\n Separator as SeparatorPrimitive,\n type SeparatorProps as SeparatorPrimitiveProps,\n} from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\n\nexport interface SeparatorProps extends SeparatorPrimitiveProps {}\n\nconst Separator = React.forwardRef<HTMLDivElement, SeparatorProps>(\n ({ className, orientation = 'horizontal', decorative = true, ...props }, ref) => (\n <SeparatorPrimitive\n ref={ref}\n decorative={decorative}\n orientation={orientation}\n className={cn(\n 'shrink-0 bg-border',\n orientation === 'horizontal' ? 'h-px w-full' : 'h-full w-px',\n className,\n )}\n {...props}\n />\n ),\n);\nSeparator.displayName = 'Separator';\n\nexport { Separator };\n","'use client';\n\nimport * as React from 'react';\nimport { X } from '@structyl/icons';\nimport { Dialog as DialogPrimitive } from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\n\nexport const Root = DialogPrimitive.Root;\nexport const Trigger = DialogPrimitive.Trigger;\nexport const Portal = DialogPrimitive.Portal;\n\nexport const Overlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n 'fixed inset-0 z-50 bg-overlay/60 backdrop-blur-xs',\n 'data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:duration-comfortable',\n 'data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:duration-smooth',\n className,\n )}\n {...props}\n />\n));\nOverlay.displayName = 'Dialog.Overlay';\n\nexport const Content = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n 'fixed left-1/2 top-1/2 z-50 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4',\n 'rounded-2xl border border-border bg-card p-6 text-card-foreground shadow-2xl',\n 'data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=open]:duration-comfortable',\n 'data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=closed]:duration-smooth',\n className,\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close\n className={cn(\n 'absolute right-4 top-4 inline-flex h-7 w-7 items-center justify-center rounded-md text-muted-foreground',\n 'transition-[background-color,color,transform] duration-snappy ease-spring',\n 'hover:bg-accent hover:text-fg active:scale-95',\n 'focus:outline-none focus-visible:ring-2 focus-visible:ring-ring/60 focus-visible:ring-offset-2 focus-visible:ring-offset-bg',\n 'disabled:pointer-events-none',\n )}\n >\n <X className=\"size-4\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n));\nContent.displayName = 'Dialog.Content';\n\nexport const Header: React.FC<React.HTMLAttributes<HTMLDivElement>> = ({ className, ...props }) => (\n <div className={cn('flex flex-col gap-1.5 text-center sm:text-left', className)} {...props} />\n);\nHeader.displayName = 'Dialog.Header';\n\nexport const Footer: React.FC<React.HTMLAttributes<HTMLDivElement>> = ({ className, ...props }) => (\n <div className={cn('flex flex-col-reverse gap-2 sm:flex-row sm:justify-end', className)} {...props} />\n);\nFooter.displayName = 'Dialog.Footer';\n\nexport const Title = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn('text-lg font-semibold leading-none tracking-tight', className)}\n {...props}\n />\n));\nTitle.displayName = 'Dialog.Title';\n\nexport const Description = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn('text-sm text-muted-foreground', className)}\n {...props}\n />\n));\nDescription.displayName = 'Dialog.Description';\n\nexport const Close = DialogPrimitive.Close;\n","'use client';\n\nimport * as React from 'react';\nimport { AspectRatio as AspectRatioPrimitive } from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\n\ninterface AspectRatioProps extends React.ComponentPropsWithoutRef<'div'> {\n ratio?: number;\n}\n\nconst AspectRatio = React.forwardRef<HTMLDivElement, AspectRatioProps>(\n ({ className, ...props }, ref) => (\n <AspectRatioPrimitive\n ref={ref}\n className={cn('overflow-hidden rounded-md', className)}\n {...props}\n />\n ),\n);\nAspectRatio.displayName = 'AspectRatio';\n\nexport { AspectRatio };\nexport type { AspectRatioProps };\n","'use client';\n\nimport * as React from 'react';\nimport { Avatar as AvatarPrimitive } from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\nimport { tv, type VariantProps } from 'tailwind-variants';\n\n// ── Size variants ─────────────────────────────────────────────────────────────\n\nexport const avatarVariants = tv({\n base: 'relative flex shrink-0 overflow-hidden rounded-full',\n variants: {\n size: {\n xs: 'size-6 text-[10px]',\n sm: 'size-8 text-xs',\n md: 'size-10 text-sm',\n lg: 'size-12 text-base',\n xl: 'size-16 text-lg',\n '2xl': 'size-20 text-xl',\n },\n },\n defaultVariants: { size: 'md' },\n});\n\n// ── Status dot variants ───────────────────────────────────────────────────────\n\nconst statusDotVariants = tv({\n base: 'ring-bg absolute block rounded-full ring-2',\n variants: {\n status: {\n online: 'bg-success',\n offline: 'bg-muted-foreground',\n busy: 'bg-destructive',\n away: 'bg-warning',\n },\n size: {\n xs: 'size-1.5 bottom-0 right-0',\n sm: 'size-2 bottom-0 right-0',\n md: 'size-2.5 bottom-0.5 right-0.5',\n lg: 'size-3 bottom-0.5 right-0.5',\n xl: 'size-3.5 bottom-1 right-1',\n '2xl': 'size-4 bottom-1 right-1',\n },\n },\n defaultVariants: { size: 'md' },\n});\n\n// ── Root ──────────────────────────────────────────────────────────────────────\n\nexport interface AvatarRootProps\n extends React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>,\n VariantProps<typeof avatarVariants> {\n status?: 'online' | 'offline' | 'busy' | 'away';\n}\n\nconst Root = React.forwardRef<React.ElementRef<typeof AvatarPrimitive.Root>, AvatarRootProps>(\n ({ className, size, status, ...props }, ref) => (\n <AvatarPrimitive.Root\n ref={ref}\n className={cn(avatarVariants({ size }), className)}\n {...props}\n >\n {props.children}\n {status && (\n <span\n className={statusDotVariants({ status, size: size ?? 'md' })}\n aria-label={status}\n />\n )}\n </AvatarPrimitive.Root>\n ),\n);\nRoot.displayName = 'Avatar.Root';\n\n// ── Image ─────────────────────────────────────────────────────────────────────\n\nconst Image = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Image>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Image\n ref={ref}\n className={cn('aspect-square h-full w-full object-cover', className)}\n {...props}\n />\n));\nImage.displayName = 'Avatar.Image';\n\n// ── Fallback ──────────────────────────────────────────────────────────────────\n\nconst Fallback = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Fallback>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Fallback\n ref={ref}\n className={cn(\n 'bg-muted text-muted-foreground flex h-full w-full items-center justify-center rounded-full font-medium uppercase',\n className,\n )}\n {...props}\n />\n));\nFallback.displayName = 'Avatar.Fallback';\n\n// ── AvatarGroup ───────────────────────────────────────────────────────────────\n\nexport interface AvatarGroupProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Max avatars to show before showing overflow count */\n max?: number;\n size?: VariantProps<typeof avatarVariants>['size'];\n}\n\nconst Group = React.forwardRef<HTMLDivElement, AvatarGroupProps>(\n ({ className, max, size = 'md', children, ...props }, ref) => {\n const childArray = React.Children.toArray(children);\n const overflow = max !== undefined ? Math.max(0, childArray.length - max) : 0;\n const visible = max !== undefined ? childArray.slice(0, max) : childArray;\n\n return (\n <div\n ref={ref}\n className={cn('flex items-center [&>*:not(:first-child)]:-ml-2', className)}\n {...props}\n >\n {visible.map((child, i) =>\n React.isValidElement(child)\n ? React.cloneElement(child as React.ReactElement<{ className?: string; size?: VariantProps<typeof avatarVariants>['size'] }>, {\n key: i,\n className: cn(\n (child as React.ReactElement<{ className?: string; size?: VariantProps<typeof avatarVariants>['size'] }>).props.className,\n 'ring-bg ring-2',\n ),\n size,\n })\n : child,\n )}\n {overflow > 0 && (\n <span\n className={cn(\n avatarVariants({ size }),\n 'ring-bg bg-muted text-muted-foreground items-center justify-center font-medium ring-2',\n )}\n aria-label={`${overflow} more`}\n >\n +{overflow}\n </span>\n )}\n </div>\n );\n },\n);\nGroup.displayName = 'Avatar.Group';\n\nexport { Root, Image, Fallback, Group };\nexport type { AvatarRootProps as AvatarRootStyledProps };\n","'use client';\n\nimport * as React from 'react';\nimport { Progress as ProgressPrimitive } from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\nimport { tv, type VariantProps } from 'tailwind-variants';\n\n// ── Variants ─────────────────────────────────────────────────────────────────\n\nexport const progressTrackVariants = tv({\n base: 'relative w-full overflow-hidden rounded-full bg-secondary',\n variants: {\n size: {\n xs: 'h-1',\n sm: 'h-1.5',\n md: 'h-2',\n lg: 'h-3',\n xl: 'h-4',\n },\n },\n defaultVariants: { size: 'md' },\n});\n\nconst colorMap: Record<string, string> = {\n primary: 'bg-primary',\n success: 'bg-success',\n warning: 'bg-warning',\n destructive: 'bg-destructive',\n error: 'bg-destructive',\n info: 'bg-info',\n secondary: 'bg-secondary-dark',\n};\n\n// ── Progress ──────────────────────────────────────────────────────────────────\n\nexport interface ProgressProps\n extends React.ComponentPropsWithoutRef<typeof ProgressPrimitive.Root>,\n VariantProps<typeof progressTrackVariants> {\n color?: 'primary' | 'success' | 'warning' | 'destructive' | 'error' | 'info' | 'secondary';\n /** Stripe pattern on the indicator */\n striped?: boolean;\n /** Animate the stripes (requires striped=true or stands alone) */\n animated?: boolean;\n /** Replace value with an indeterminate animation */\n indeterminate?: boolean;\n /** Show percentage label inside the bar (useful for lg/xl) */\n showLabel?: boolean;\n indicatorClassName?: string;\n}\n\nconst Progress = React.forwardRef<HTMLDivElement, ProgressProps>(\n (\n {\n className,\n value,\n max = 100,\n size,\n color = 'primary',\n striped = false,\n animated = false,\n indeterminate = false,\n showLabel = false,\n indicatorClassName,\n ...props\n },\n ref,\n ) => {\n const pct = indeterminate ? 0 : Math.min(100, Math.max(0, ((value ?? 0) / max) * 100));\n\n return (\n <ProgressPrimitive.Root\n ref={ref}\n value={indeterminate ? undefined : value}\n max={max}\n className={cn(progressTrackVariants({ size }), className)}\n {...props}\n >\n <ProgressPrimitive.Indicator\n className={cn(\n 'h-full w-full flex-1 transition-all duration-500 ease-out',\n colorMap[color],\n striped && !animated && [\n 'bg-[repeating-linear-gradient(45deg,transparent,transparent_10px,rgba(255,255,255,0.2)_10px,rgba(255,255,255,0.2)_20px)]',\n ],\n animated && !indeterminate && 'animate-progress-stripes bg-[repeating-linear-gradient(45deg,rgba(255,255,255,0.15)_0,rgba(255,255,255,0.15)_10px,transparent_10px,transparent_20px)]',\n indeterminate && 'absolute left-0 top-0 w-1/3 animate-progress-indeterminate',\n indicatorClassName,\n )}\n style={indeterminate ? undefined : { transform: `translateX(-${100 - pct}%)` }}\n />\n {showLabel && !indeterminate && (\n <span className=\"pointer-events-none absolute inset-0 flex items-center justify-center text-[10px] font-semibold text-primary-foreground\">\n {Math.round(pct)}%\n </span>\n )}\n </ProgressPrimitive.Root>\n );\n },\n);\nProgress.displayName = 'Progress';\n\nexport { Progress };\n","import * as React from 'react';\nimport { cn } from '@structyl/utils';\nimport { tv, type VariantProps } from 'tailwind-variants';\n\n// ── Variants ─────────────────────────────────────────────────────────────────\n\nexport const skeletonVariants = tv({\n base: 'bg-muted/50 relative overflow-hidden',\n variants: {\n variant: {\n /** Solid pulse — default subtle loading */\n pulse: 'animate-pulse',\n /** Shimmer sweep effect */\n shimmer: [\n 'after:absolute after:inset-0',\n 'after:bg-gradient-to-r after:from-transparent after:via-fg/10 after:to-transparent',\n 'after:translate-x-[-100%] after:animate-[shimmer_1.5s_infinite]',\n ],\n /** No animation (for reduced-motion users) */\n static: '',\n },\n shape: {\n rect: 'rounded-md',\n circle: 'rounded-full',\n text: 'h-4 rounded-md',\n },\n },\n defaultVariants: { variant: 'shimmer', shape: 'rect' },\n});\n\n// ── Skeleton ──────────────────────────────────────────────────────────────────\n\nexport interface SkeletonProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof skeletonVariants> {\n /** Width of the skeleton (e.g. \"100%\", \"120px\") */\n width?: string | number;\n /** Height of the skeleton (e.g. \"1rem\", 40) */\n height?: string | number;\n /** Number of text lines to repeat */\n lines?: number;\n}\n\nconst Skeleton = React.forwardRef<HTMLDivElement, SkeletonProps>(\n ({ className, variant, shape, width, height, lines, style, ...props }, ref) => {\n if (lines && lines > 1) {\n return (\n <div className=\"flex flex-col gap-2\">\n {Array.from({ length: lines }).map((_, i) => (\n <div\n key={i}\n aria-hidden\n className={cn(\n skeletonVariants({ variant, shape: 'text' }),\n i === lines - 1 && 'w-4/5',\n className,\n )}\n style={{ width: i === lines - 1 ? undefined : width, height, ...style }}\n />\n ))}\n </div>\n );\n }\n\n return (\n <div\n ref={ref}\n aria-hidden\n className={cn(skeletonVariants({ variant, shape }), className)}\n style={{ width, height, ...style }}\n {...props}\n />\n );\n },\n);\nSkeleton.displayName = 'Skeleton';\n\n// ── Skeleton.Group ────────────────────────────────────────────────────────────\n\nexport interface SkeletonGroupProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Gap between skeleton items */\n gap?: number | string;\n}\n\nconst Group = React.forwardRef<HTMLDivElement, SkeletonGroupProps>(\n ({ className, gap = '0.5rem', style, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex flex-col', className)}\n style={{ gap, ...style }}\n {...props}\n />\n ),\n);\nGroup.displayName = 'Skeleton.Group';\n\nexport { Skeleton, Group };\n","'use client';\n\nimport * as React from 'react';\nimport { tv, type VariantProps } from 'tailwind-variants';\nimport { Slot } from '@structyl/core';\nimport { cn } from '@structyl/utils';\n\n// ── Variants ─────────────────────────────────────────────────────────────────\n\nexport const badgeVariants = tv({\n base: [\n 'inline-flex items-center gap-1 rounded-full border font-semibold',\n 'focus:ring-ring transition-colors focus:outline-none focus:ring-2 focus:ring-offset-2',\n ],\n variants: {\n variant: {\n default: 'bg-primary text-primary-foreground hover:bg-primary/80 border-transparent',\n secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary/80 border-transparent',\n destructive: 'bg-destructive text-destructive-foreground hover:bg-destructive/80 border-transparent',\n outline: 'text-fg border-border',\n success: 'bg-success text-success-foreground hover:bg-success/80 border-transparent',\n warning: 'bg-warning text-warning-foreground hover:bg-warning/80 border-transparent',\n info: 'bg-info text-info-foreground hover:bg-info/80 border-transparent',\n error: 'bg-destructive text-destructive-foreground hover:bg-destructive/80 border-transparent',\n },\n color: {\n primary: '',\n secondary: '',\n error: '',\n warning: '',\n info: '',\n success: '',\n default: '',\n },\n size: {\n sm: 'px-2 py-0 text-[10px]',\n md: 'px-2.5 py-0.5 text-xs',\n lg: 'px-3 py-1 text-sm',\n },\n },\n compoundVariants: [\n // filled (default shape) × color\n { variant: 'default', color: 'primary', class: 'bg-primary text-primary-foreground border-transparent' },\n { variant: 'default', color: 'secondary', class: 'bg-secondary text-secondary-foreground border-transparent' },\n { variant: 'default', color: 'error', class: 'bg-destructive text-destructive-foreground border-transparent' },\n { variant: 'default', color: 'warning', class: 'bg-warning text-warning-foreground border-transparent' },\n { variant: 'default', color: 'info', class: 'bg-info text-info-foreground border-transparent' },\n { variant: 'default', color: 'success', class: 'bg-success text-success-foreground border-transparent' },\n // outline × color\n { variant: 'outline', color: 'primary', class: 'text-primary border-primary' },\n { variant: 'outline', color: 'secondary', class: 'text-secondary-dark border-secondary' },\n { variant: 'outline', color: 'error', class: 'text-destructive border-destructive' },\n { variant: 'outline', color: 'warning', class: 'text-warning border-warning' },\n { variant: 'outline', color: 'info', class: 'text-info border-info' },\n { variant: 'outline', color: 'success', class: 'text-success border-success' },\n ],\n defaultVariants: { variant: 'default', size: 'md' },\n});\n\n// ── Dot badge ─────────────────────────────────────────────────────────────────\n\nexport const dotBadgeVariants = tv({\n base: 'inline-flex items-center gap-1.5 rounded-full border font-medium',\n variants: {\n variant: {\n default: 'bg-primary/10 text-primary border-primary/20',\n secondary: 'bg-secondary/50 text-secondary-foreground border-secondary/30',\n destructive: 'bg-destructive/10 text-destructive border-destructive/20',\n outline: 'text-fg border-border',\n success: 'bg-success/10 text-success border-success/20',\n warning: 'bg-warning/10 text-warning border-warning/20',\n info: 'bg-info/10 text-info border-info/20',\n error: 'bg-destructive/10 text-destructive border-destructive/20',\n },\n color: {\n primary: '',\n secondary: '',\n error: '',\n warning: '',\n info: '',\n success: '',\n default: '',\n },\n size: {\n sm: 'px-2 py-0 text-[10px]',\n md: 'px-2.5 py-0.5 text-xs',\n lg: 'px-3 py-1 text-sm',\n },\n },\n compoundVariants: [\n { variant: 'default', color: 'primary', class: 'bg-primary/10 text-primary border-primary/20' },\n { variant: 'default', color: 'secondary', class: 'bg-secondary/10 text-secondary-dark border-secondary/20' },\n { variant: 'default', color: 'error', class: 'bg-destructive/10 text-destructive border-destructive/20' },\n { variant: 'default', color: 'warning', class: 'bg-warning/10 text-warning border-warning/20' },\n { variant: 'default', color: 'info', class: 'bg-info/10 text-info border-info/20' },\n { variant: 'default', color: 'success', class: 'bg-success/10 text-success border-success/20' },\n ],\n defaultVariants: { variant: 'default', size: 'md' },\n});\n\nconst dotColorMap: Record<string, string> = {\n default: 'bg-primary',\n primary: 'bg-primary',\n secondary: 'bg-secondary-dark',\n destructive: 'bg-destructive',\n error: 'bg-destructive',\n outline: 'bg-fg',\n success: 'bg-success',\n warning: 'bg-warning',\n info: 'bg-info',\n};\n\n// ── Badge ─────────────────────────────────────────────────────────────────────\n\ninterface BadgeProps\n extends Omit<React.HTMLAttributes<HTMLSpanElement>, 'color'>,\n VariantProps<typeof badgeVariants> {\n asChild?: boolean;\n /** Render a status dot before label text */\n dot?: boolean;\n /** Icon shown before label text */\n icon?: React.ReactNode;\n /** Show remove button — calls onRemove when clicked */\n removable?: boolean;\n onRemove?: (e: React.MouseEvent) => void;\n}\n\nconst Badge = React.forwardRef<HTMLSpanElement, BadgeProps>(\n ({ className, variant = 'default', color, size, asChild, dot, icon, removable, onRemove, children, ...props }, ref) => {\n const Comp = asChild ? Slot : 'span';\n const dotKey = (color ?? variant) as string;\n\n if (dot) {\n return (\n <Comp\n ref={ref}\n className={cn(dotBadgeVariants({ variant: variant ?? 'default', color, size }), className)}\n {...props}\n >\n <span className={cn('size-1.5 rounded-full', dotColorMap[dotKey] ?? 'bg-primary')} aria-hidden />\n {children}\n {removable && (\n <button\n type=\"button\"\n onClick={onRemove}\n aria-label=\"Remove\"\n className=\"hover:opacity-70 ml-0.5 inline-flex items-center transition-opacity\"\n >\n <svg className=\"size-3\" viewBox=\"0 0 12 12\" fill=\"none\" stroke=\"currentColor\" strokeWidth={1.5} aria-hidden>\n <path strokeLinecap=\"round\" d=\"M3 3l6 6M9 3l-6 6\" />\n </svg>\n </button>\n )}\n </Comp>\n );\n }\n\n return (\n <Comp\n ref={ref}\n className={cn(badgeVariants({ variant, color, size }), className)}\n {...props}\n >\n {icon && <span className=\"inline-flex [&_svg]:size-3\" aria-hidden>{icon}</span>}\n {children}\n {removable && (\n <button\n type=\"button\"\n onClick={onRemove}\n aria-label=\"Remove\"\n className=\"hover:opacity-70 -mr-0.5 ml-0.5 inline-flex items-center transition-opacity\"\n >\n <svg className=\"size-3\" viewBox=\"0 0 12 12\" fill=\"none\" stroke=\"currentColor\" strokeWidth={1.5} aria-hidden>\n <path strokeLinecap=\"round\" d=\"M3 3l6 6M9 3l-6 6\" />\n </svg>\n </button>\n )}\n </Comp>\n );\n },\n);\nBadge.displayName = 'Badge';\n\nexport { Badge };\nexport type { BadgeProps };\n","'use client';\n\nimport * as React from 'react';\nimport { cn } from '@structyl/utils';\n\nconst Root = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'rounded-xl border border-border bg-card text-card-foreground shadow-sm',\n 'transition-shadow duration-smooth',\n className,\n )}\n {...props}\n />\n ),\n);\nRoot.displayName = 'Card.Root';\n\nconst Header = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex flex-col gap-1.5 p-6', className)} {...props} />\n ),\n);\nHeader.displayName = 'Card.Header';\n\nconst Title = React.forwardRef<HTMLHeadingElement, React.HTMLAttributes<HTMLHeadingElement>>(\n ({ className, ...props }, ref) => (\n <h3\n ref={ref}\n className={cn('text-lg font-semibold leading-none tracking-tight', className)}\n {...props}\n />\n ),\n);\nTitle.displayName = 'Card.Title';\n\nconst Description = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p ref={ref} className={cn('text-sm text-muted-foreground', className)} {...props} />\n));\nDescription.displayName = 'Card.Description';\n\nconst Content = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('p-6 pt-0', className)} {...props} />\n ),\n);\nContent.displayName = 'Card.Content';\n\nconst Footer = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex items-center gap-2 border-t border-border/50 p-6 pt-4', className)}\n {...props}\n />\n ),\n);\nFooter.displayName = 'Card.Footer';\n\nexport { Root, Header, Title, Description, Content, Footer };\n","'use client';\n\nimport * as React from 'react';\nimport { tv } from 'tailwind-variants';\nimport { cn } from '@structyl/utils';\n\n// ── Shared size/color variants ────────────────────────────────────────────────\n\nexport const spinnerVariants = tv({\n variants: {\n size: {\n xs: 'size-3',\n sm: 'size-4',\n md: 'size-6',\n lg: 'size-8',\n xl: 'size-12',\n },\n color: {\n primary: 'text-primary',\n secondary: 'text-secondary-dark',\n success: 'text-success',\n warning: 'text-warning',\n destructive: 'text-destructive',\n error: 'text-destructive',\n info: 'text-info',\n muted: 'text-muted-foreground',\n inherit: 'text-current',\n },\n },\n defaultVariants: { size: 'md', color: 'primary' },\n});\n\n// ── Unified Spinner ───────────────────────────────────────────────────────────\n\nexport interface SpinnerProps extends React.HTMLAttributes<HTMLSpanElement> {\n variant?: 'border' | 'dots' | 'pulse' | 'bars';\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n color?: 'primary' | 'secondary' | 'success' | 'warning' | 'destructive' | 'error' | 'info' | 'muted' | 'inherit';\n label?: string;\n}\n\nconst Spinner = React.forwardRef<HTMLSpanElement, SpinnerProps>(\n ({ className, variant = 'border', size, color, label = 'Loading', ...props }, ref) => {\n if (variant === 'dots') {\n const dotSize = size === 'xs' ? 'size-1' : size === 'sm' ? 'size-1.5' : size === 'lg' ? 'size-3' : size === 'xl' ? 'size-4' : 'size-2';\n return (\n <span ref={ref} role=\"status\" aria-live=\"polite\" className={cn(spinnerVariants({ color }), 'inline-flex items-center gap-1', className)} {...props}>\n {[0, 1, 2].map((i) => (\n <span key={i} className={cn('animate-bounce rounded-full bg-current', dotSize)} style={{ animationDelay: `${i * 0.15}s` }} aria-hidden />\n ))}\n <span className=\"sr-only\">{label}</span>\n </span>\n );\n }\n\n if (variant === 'pulse') {\n return (\n <span ref={ref} role=\"status\" aria-live=\"polite\" className={cn(spinnerVariants({ size, color }), 'inline-block animate-ping rounded-full bg-current opacity-75', className)} {...props}>\n <span className=\"sr-only\">{label}</span>\n </span>\n );\n }\n\n if (variant === 'bars') {\n const barH = size === 'xs' ? 'h-2' : size === 'sm' ? 'h-3' : size === 'lg' ? 'h-5' : size === 'xl' ? 'h-7' : 'h-4';\n return (\n <span ref={ref} role=\"status\" aria-live=\"polite\" className={cn(spinnerVariants({ color }), 'inline-flex items-end gap-0.5', className)} {...props}>\n {[0, 1, 2, 3].map((i) => (\n <span\n key={i}\n className={cn('w-1 rounded-sm bg-current animate-bars', barH)}\n style={{ animationDelay: `${i * 0.1}s` }}\n aria-hidden\n />\n ))}\n <span className=\"sr-only\">{label}</span>\n </span>\n );\n }\n\n // border (default)\n const borderSize = size === 'xs' ? 'border' : size === 'lg' ? 'border-[3px]' : size === 'xl' ? 'border-4' : 'border-2';\n return (\n <span\n ref={ref}\n role=\"status\"\n aria-live=\"polite\"\n className={cn(spinnerVariants({ size, color }), 'inline-block animate-spin rounded-full border-current border-t-transparent', borderSize, className)}\n {...props}\n >\n <span className=\"sr-only\">{label}</span>\n </span>\n );\n },\n);\nSpinner.displayName = 'Spinner';\n\nexport { Spinner };\n","'use client';\n\nimport * as React from 'react';\nimport { tv, type VariantProps } from 'tailwind-variants';\nimport { cn } from '@structyl/utils';\n\n// ── Variants ─────────────────────────────────────────────────────────────────\n\nexport const alertVariants = tv({\n base: 'relative w-full rounded-lg border p-4',\n variants: {\n variant: {\n default: 'bg-bg text-fg border-border',\n destructive: 'border-destructive/50 bg-destructive/5 text-destructive',\n success: 'border-success/50 bg-success/5 text-success',\n warning: 'border-warning/50 bg-warning/5 text-warning',\n info: 'border-info/50 bg-info/5 text-info',\n error: 'border-destructive/50 bg-destructive/5 text-destructive',\n },\n color: {\n primary: '',\n secondary: '',\n error: '',\n warning: '',\n info: '',\n success: '',\n default: '',\n },\n filled: {\n true: '',\n },\n },\n compoundVariants: [\n // standard color variants\n { color: 'error', class: 'border-destructive/50 bg-error-alert-bg text-destructive' },\n { color: 'warning', class: 'border-warning/50 bg-warning-alert-bg text-warning' },\n { color: 'info', class: 'border-info/50 bg-info-alert-bg text-info' },\n { color: 'success', class: 'border-success/50 bg-success-alert-bg text-success' },\n { color: 'primary', class: 'border-primary/50 bg-primary/5 text-primary' },\n { color: 'secondary', class: 'border-secondary/50 bg-secondary/5 text-secondary-dark' },\n // filled variants\n { color: 'error', filled: true, class: 'border-transparent bg-destructive text-destructive-foreground' },\n { color: 'warning', filled: true, class: 'border-transparent bg-warning text-warning-foreground' },\n { color: 'info', filled: true, class: 'border-transparent bg-info text-info-foreground' },\n { color: 'success', filled: true, class: 'border-transparent bg-success text-success-foreground' },\n { color: 'primary', filled: true, class: 'border-transparent bg-primary text-primary-foreground' },\n { color: 'secondary', filled: true, class: 'border-transparent bg-secondary text-secondary-foreground' },\n ],\n defaultVariants: { variant: 'default' },\n});\n\n// ── Root (supports controlled closeable) ─────────────────────────────────────\n\nexport interface AlertRootProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'color'>,\n VariantProps<typeof alertVariants> {\n /** Consumed by the convenience <Alert> wrapper; destructured so it never reaches the DOM. */\n onClose?: () => void;\n}\n\nconst Root = React.forwardRef<HTMLDivElement, AlertRootProps>(\n ({ className, variant, color, filled, onClose: _onClose, ...props }, ref) => (\n <div ref={ref} role=\"alert\" className={cn(alertVariants({ variant, color, filled }), className)} {...props} />\n ),\n);\nRoot.displayName = 'Alert.Root';\n\n// ── Icon ──────────────────────────────────────────────────────────────────────\n\nconst Icon = React.forwardRef<HTMLSpanElement, React.HTMLAttributes<HTMLSpanElement>>(\n ({ className, children, ...props }, ref) => (\n <span\n ref={ref}\n className={cn('mr-3 mt-0.5 inline-flex shrink-0 self-start [&_svg]:size-4', className)}\n aria-hidden\n {...props}\n >\n {children}\n </span>\n ),\n);\nIcon.displayName = 'Alert.Icon';\n\n// ── Content wrapper ───────────────────────────────────────────────────────────\n\nconst Content = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex-1 min-w-0', className)} {...props} />\n ),\n);\nContent.displayName = 'Alert.Content';\n\n// ── Title ─────────────────────────────────────────────────────────────────────\n\nconst Title = React.forwardRef<HTMLHeadingElement, React.HTMLAttributes<HTMLHeadingElement>>(\n ({ className, ...props }, ref) => (\n <h5 ref={ref} className={cn('mb-1 font-medium leading-none tracking-tight', className)} {...props} />\n ),\n);\nTitle.displayName = 'Alert.Title';\n\n// ── Description ───────────────────────────────────────────────────────────────\n\nconst Description = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('text-sm [&_p]:leading-relaxed opacity-90', className)} {...props} />\n ),\n);\nDescription.displayName = 'Alert.Description';\n\n// ── Close button ──────────────────────────────────────────────────────────────\n\nexport interface AlertCloseProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {}\n\nconst Close = React.forwardRef<HTMLButtonElement, AlertCloseProps>(\n ({ className, ...props }, ref) => (\n <button\n ref={ref}\n type=\"button\"\n aria-label=\"Close alert\"\n className={cn(\n 'absolute right-3 top-3 inline-flex items-center justify-center rounded-sm p-0.5',\n 'opacity-70 hover:opacity-100 transition-opacity',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1',\n className,\n )}\n {...props}\n >\n <svg className=\"size-4\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth={2} aria-hidden>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M6 18L18 6M6 6l12 12\" />\n </svg>\n </button>\n ),\n);\nClose.displayName = 'Alert.Close';\n\n// ── Convenience compound: <Alert> with icon+close built in ───────────────────\n\nexport interface AlertProps extends Omit<AlertRootProps, 'title'> {\n icon?: React.ReactNode;\n title?: React.ReactNode;\n description?: React.ReactNode;\n closeable?: boolean;\n onClose?: () => void;\n}\n\nconst Alert = React.forwardRef<HTMLDivElement, AlertProps>(\n ({ icon, title, description, closeable, onClose, variant, color, filled, className, children, ...props }, ref) => (\n <Root ref={ref} variant={variant} color={color} filled={filled} className={cn('flex', className)} {...props}>\n {icon && <Icon>{icon}</Icon>}\n <Content>\n {title && <Title>{title}</Title>}\n {description && <Description>{description}</Description>}\n {children}\n </Content>\n {(closeable || onClose) && <Close onClick={onClose} />}\n </Root>\n ),\n);\nAlert.displayName = 'Alert';\n\n// Attach sub-components for compound usage: <Alert.Root>, <Alert.Title>, etc.\nconst AlertWithSubs = Alert as typeof Alert & {\n Root: typeof Root;\n Icon: typeof Icon;\n Content: typeof Content;\n Title: typeof Title;\n Description: typeof Description;\n Close: typeof Close;\n};\nAlertWithSubs.Root = Root;\nAlertWithSubs.Icon = Icon;\nAlertWithSubs.Content = Content;\nAlertWithSubs.Title = Title;\nAlertWithSubs.Description = Description;\nAlertWithSubs.Close = Close;\n\nexport { AlertWithSubs as Alert, Root, Icon, Content, Title, Description, Close };\n","'use client';\n\nimport * as React from 'react';\nimport { cn } from '@structyl/utils';\nimport { tv, type VariantProps } from 'tailwind-variants';\n\n// ── Variants ─────────────────────────────────────────────────────────────────\n\nexport const inputVariants = tv({\n base: [\n 'border-border bg-bg shadow-xs flex w-full rounded-md border',\n 'duration-snappy ease-smooth transition-[border-color,box-shadow,background-color]',\n 'file:text-fg file:border-0 file:bg-transparent file:font-medium',\n 'placeholder:text-muted-foreground/70',\n 'hover:border-border-strong',\n 'focus-visible:border-ring focus-visible:ring-ring/30 focus-visible:outline-none focus-visible:ring-2',\n 'disabled:bg-muted/30 disabled:cursor-not-allowed disabled:opacity-50',\n 'aria-invalid:border-destructive aria-invalid:ring-destructive/20',\n 'aria-invalid:focus-visible:ring-destructive/30',\n 'autofill:bg-bg',\n ],\n variants: {\n size: {\n sm: 'h-8 px-2.5 py-1 text-xs file:text-xs',\n md: 'h-9 px-3 py-1 text-sm file:text-sm',\n lg: 'h-11 px-4 py-2 text-base file:text-base',\n },\n },\n defaultVariants: { size: 'md' },\n});\n\n// ── Plain Input ───────────────────────────────────────────────────────────────\n\nexport interface InputProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'>,\n VariantProps<typeof inputVariants> {}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, type, size, ...props }, ref) => (\n <input\n ref={ref}\n type={type}\n className={cn(inputVariants({ size }), className)}\n {...props}\n />\n ),\n);\nInput.displayName = 'Input';\n\n// ── InputGroup ────────────────────────────────────────────────────────────────\n// Wraps an Input with optional prefix/suffix addons and leading/trailing elements.\n\nexport interface InputGroupProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Icon/element shown inside the input on the left */\n startElement?: React.ReactNode;\n /** Icon/element shown inside the input on the right */\n endElement?: React.ReactNode;\n /** Text/element attached outside the input on the left (e.g. \"https://\") */\n leftAddon?: React.ReactNode;\n /** Text/element attached outside the input on the right (e.g. \".com\") */\n rightAddon?: React.ReactNode;\n}\n\nconst InputGroup = React.forwardRef<HTMLDivElement, InputGroupProps>(\n ({ className, startElement, endElement, leftAddon, rightAddon, children, ...props }, ref) => {\n const hasStart = !!startElement;\n const hasEnd = !!endElement;\n const hasLeftAddon = !!leftAddon;\n const hasRightAddon = !!rightAddon;\n\n return (\n <div ref={ref} className={cn('flex w-full items-stretch', className)} {...props}>\n {hasLeftAddon && (\n <span className=\"border-border bg-muted/40 text-muted-foreground inline-flex items-center rounded-l-md border border-r-0 px-3 text-sm select-none\">\n {leftAddon}\n </span>\n )}\n <div className=\"relative flex flex-1 items-center\">\n {hasStart && (\n <span className=\"text-muted-foreground pointer-events-none absolute left-3 flex items-center [&_svg]:size-4\">\n {startElement}\n </span>\n )}\n {React.Children.map(children, (child) => {\n if (!React.isValidElement(child)) return child;\n return React.cloneElement(child as React.ReactElement<{ className?: string }>, {\n className: cn(\n (child as React.ReactElement<{ className?: string }>).props.className,\n hasStart && 'pl-9',\n hasEnd && 'pr-9',\n hasLeftAddon && 'rounded-l-none',\n hasRightAddon && 'rounded-r-none',\n ),\n });\n })}\n {hasEnd && (\n <span className=\"text-muted-foreground absolute right-3 flex items-center [&_svg]:size-4\">\n {endElement}\n </span>\n )}\n </div>\n {hasRightAddon && (\n <span className=\"border-border bg-muted/40 text-muted-foreground inline-flex items-center rounded-r-md border border-l-0 px-3 text-sm select-none\">\n {rightAddon}\n </span>\n )}\n </div>\n );\n },\n);\nInputGroup.displayName = 'InputGroup';\n\n// ── ClearableInput ────────────────────────────────────────────────────────────\n\nexport interface ClearableInputProps extends InputProps {\n onClear?: () => void;\n clearIcon?: React.ReactNode;\n}\n\nconst ClearableInput = React.forwardRef<HTMLInputElement, ClearableInputProps>(\n ({ value, onChange, onClear, clearIcon, className, size, ...props }, ref) => {\n const hasValue = !!value || (props.defaultValue !== undefined && props.defaultValue !== '');\n\n const handleClear = () => {\n onClear?.();\n if (onChange) {\n const synth = { target: { value: '' } } as React.ChangeEvent<HTMLInputElement>;\n onChange(synth);\n }\n };\n\n return (\n <div className=\"relative flex w-full items-center\">\n <input\n ref={ref}\n value={value}\n onChange={onChange}\n className={cn(inputVariants({ size }), 'pr-8', className)}\n {...props}\n />\n {hasValue && (\n <button\n type=\"button\"\n tabIndex={-1}\n aria-label=\"Clear input\"\n onClick={handleClear}\n className=\"text-muted-foreground hover:text-fg absolute right-2.5 flex items-center transition-colors\"\n >\n {clearIcon ?? (\n <svg className=\"size-4\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth={2} aria-hidden>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M6 18L18 6M6 6l12 12\" />\n </svg>\n )}\n </button>\n )}\n </div>\n );\n },\n);\nClearableInput.displayName = 'ClearableInput';\n\nexport { Input, InputGroup, ClearableInput };\nexport type { InputProps as InputStyleProps };\n","'use client';\n\nimport * as React from 'react';\nimport { cn } from '@structyl/utils';\n\ninterface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {}\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, ...props }, ref) => (\n <textarea\n ref={ref}\n className={cn(\n 'border-border bg-bg shadow-xs min-h-[6rem] w-full rounded-md border px-3 py-2 text-sm',\n 'duration-snappy ease-smooth transition-[border-color,box-shadow,background-color]',\n 'placeholder:text-muted-foreground/70',\n 'hover:border-border-strong',\n 'focus-visible:border-ring focus-visible:ring-ring/30 focus-visible:outline-none focus-visible:ring-2',\n 'disabled:bg-muted/30 disabled:cursor-not-allowed disabled:opacity-50',\n 'aria-invalid:border-destructive aria-invalid:ring-destructive/20',\n 'resize-y',\n className,\n )}\n {...props}\n />\n ),\n);\n\nTextarea.displayName = 'Textarea';\n\nexport { Textarea };\nexport type { TextareaProps };\n","'use client';\n\nimport * as React from 'react';\nimport { Circle } from '@structyl/icons';\nimport { RadioGroup as RadioGroupPrimitive } from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\n\ntype RadioColor = 'primary' | 'secondary' | 'error' | 'warning' | 'info' | 'success';\n\nconst colorMap: Record<RadioColor, { border: string; fill: string }> = {\n primary: { border: 'border-primary text-primary', fill: 'fill-primary' },\n secondary: { border: 'border-secondary text-secondary-dark', fill: 'fill-secondary' },\n error: { border: 'border-destructive text-destructive', fill: 'fill-destructive' },\n warning: { border: 'border-warning text-warning', fill: 'fill-warning' },\n info: { border: 'border-info text-info', fill: 'fill-info' },\n success: { border: 'border-success text-success', fill: 'fill-success' },\n};\n\nconst Root = React.forwardRef<\n React.ElementRef<typeof RadioGroupPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <RadioGroupPrimitive.Root ref={ref} className={cn('grid gap-2', className)} {...props} />\n));\nRoot.displayName = 'RadioGroup.Root';\n\ninterface RadioItemProps\n extends React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item> {\n color?: RadioColor;\n}\n\nconst Item = React.forwardRef<\n React.ElementRef<typeof RadioGroupPrimitive.Item>,\n RadioItemProps\n>(({ className, color = 'primary', ...props }, ref) => (\n <RadioGroupPrimitive.Item\n ref={ref}\n className={cn(\n 'aspect-square h-4 w-4 cursor-pointer rounded-full border shadow',\n 'focus:outline-none focus-visible:ring-1 focus-visible:ring-ring',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n colorMap[color].border,\n className,\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator className=\"flex items-center justify-center\">\n <Circle className={cn('h-2.5 w-2.5', colorMap[color].fill)} />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n));\nItem.displayName = 'RadioGroup.Item';\n\nexport { Root, Item };\n","'use client';\n\nimport * as React from 'react';\nimport { ToggleGroup as ToggleGroupPrimitive } from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\nimport { type VariantProps } from 'tailwind-variants';\nimport { toggleVariants } from '../toggle';\n\ninterface ToggleGroupContextValue extends VariantProps<typeof toggleVariants> {}\n\nconst ToggleGroupContext = React.createContext<ToggleGroupContextValue>({\n size: 'default',\n variant: 'default',\n});\n\nconst Root = React.forwardRef<\n React.ElementRef<typeof ToggleGroupPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Root> &\n VariantProps<typeof toggleVariants>\n>(({ className, variant, size, children, ...props }, ref) => (\n <ToggleGroupPrimitive.Root\n ref={ref}\n className={cn('flex items-center justify-center gap-1', className)}\n {...props}\n >\n <ToggleGroupContext.Provider value={{ variant, size }}>\n {children}\n </ToggleGroupContext.Provider>\n </ToggleGroupPrimitive.Root>\n));\nRoot.displayName = 'ToggleGroup.Root';\n\nconst Item = React.forwardRef<\n React.ElementRef<typeof ToggleGroupPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Item> &\n VariantProps<typeof toggleVariants>\n>(({ className, children, variant, size, ...props }, ref) => {\n const ctx = React.useContext(ToggleGroupContext);\n return (\n <ToggleGroupPrimitive.Item\n ref={ref}\n className={cn(\n toggleVariants({\n variant: ctx.variant ?? variant,\n size: ctx.size ?? size,\n }),\n className,\n )}\n {...props}\n >\n {children}\n </ToggleGroupPrimitive.Item>\n );\n});\nItem.displayName = 'ToggleGroup.Item';\n\nexport { Root, Item };\n","'use client';\n\nimport * as React from 'react';\nimport { Slider as SliderPrimitive } from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\n\ntype SliderColor = 'primary' | 'secondary' | 'error' | 'warning' | 'info' | 'success';\n\nconst rangeBgMap: Record<SliderColor, string> = {\n primary: 'bg-primary',\n secondary: 'bg-secondary',\n error: 'bg-destructive',\n warning: 'bg-warning',\n info: 'bg-info',\n success: 'bg-success',\n};\n\nconst thumbBorderMap: Record<SliderColor, string> = {\n primary: 'border-primary',\n secondary: 'border-secondary',\n error: 'border-destructive',\n warning: 'border-warning',\n info: 'border-info',\n success: 'border-success',\n};\n\ninterface SliderProps\n extends React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root> {\n /** Number of thumbs to render. Inferred from value/defaultValue length when omitted. */\n thumbCount?: number;\n color?: SliderColor;\n}\n\nconst Slider = React.forwardRef<HTMLSpanElement, SliderProps>(\n ({ className, thumbCount, defaultValue, value, color = 'primary', ...props }, ref) => {\n const count =\n thumbCount ??\n value?.length ??\n defaultValue?.length ??\n 1;\n return (\n <SliderPrimitive.Root\n ref={ref}\n defaultValue={defaultValue}\n value={value}\n className={cn(\n 'relative flex w-full touch-none select-none items-center',\n 'data-[orientation=vertical]:h-full data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col',\n className,\n )}\n {...props}\n >\n <SliderPrimitive.Track\n className={cn(\n 'relative h-2 w-full grow overflow-hidden rounded-full bg-secondary',\n 'data-[orientation=vertical]:h-full data-[orientation=vertical]:w-2',\n )}\n >\n <SliderPrimitive.Range\n className={cn(\n 'absolute h-full',\n 'data-[orientation=vertical]:w-full',\n rangeBgMap[color],\n )}\n />\n </SliderPrimitive.Track>\n {Array.from({ length: count }).map((_, i) => (\n <SliderPrimitive.Thumb\n key={i}\n className={cn(\n 'block h-4 w-4 cursor-pointer rounded-full border bg-bg shadow transition-colors',\n 'focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring',\n 'disabled:pointer-events-none disabled:opacity-50',\n thumbBorderMap[color],\n )}\n />\n ))}\n </SliderPrimitive.Root>\n );\n },\n);\nSlider.displayName = 'Slider';\n\nexport { Slider };\nexport type { SliderProps };\n","'use client';\n\nimport * as React from 'react';\nimport { Form as FormPrimitive } from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\n\nconst Root = React.forwardRef<\n React.ElementRef<typeof FormPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof FormPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <FormPrimitive.Root ref={ref} className={cn('flex flex-col gap-4', className)} {...props} />\n));\nRoot.displayName = 'Form.Root';\n\nconst Field = React.forwardRef<\n React.ElementRef<typeof FormPrimitive.Field>,\n React.ComponentPropsWithoutRef<typeof FormPrimitive.Field>\n>(({ className, ...props }, ref) => (\n <FormPrimitive.Field ref={ref} className={cn('flex flex-col gap-1.5', className)} {...props} />\n));\nField.displayName = 'Form.Field';\n\nconst Label = React.forwardRef<\n React.ElementRef<typeof FormPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof FormPrimitive.Label>\n>(({ className, ...props }, ref) => (\n <FormPrimitive.Label\n ref={ref}\n className={cn(\n 'text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70',\n className,\n )}\n {...props}\n />\n));\nLabel.displayName = 'Form.Label';\n\nconst Control = React.forwardRef<\n React.ElementRef<typeof FormPrimitive.Control>,\n React.ComponentPropsWithoutRef<typeof FormPrimitive.Control>\n>(({ className, ...props }, ref) => (\n <FormPrimitive.Control\n ref={ref}\n className={cn(\n 'border-input flex h-9 w-full rounded-md border bg-transparent px-3 py-1 text-sm shadow-sm',\n 'placeholder:text-muted-foreground',\n 'focus-visible:ring-ring focus-visible:outline-none focus-visible:ring-1',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n 'aria-invalid:border-destructive aria-invalid:ring-destructive/20',\n className,\n )}\n {...props}\n />\n));\nControl.displayName = 'Form.Control';\n\nconst Message = React.forwardRef<\n React.ElementRef<typeof FormPrimitive.Message>,\n React.ComponentPropsWithoutRef<typeof FormPrimitive.Message>\n>(({ className, ...props }, ref) => (\n <FormPrimitive.Message\n ref={ref}\n className={cn('text-destructive text-xs', className)}\n {...props}\n />\n));\nMessage.displayName = 'Form.Message';\n\nconst Submit = FormPrimitive.Submit;\nconst ValidityState = FormPrimitive.ValidityState;\n\nexport { Root, Field, Label, Control, Message, Submit, ValidityState };\n","'use client';\n\nimport * as React from 'react';\nimport { Collapsible as CollapsiblePrimitive } from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\n\nconst Root = CollapsiblePrimitive.Root;\n\nconst Trigger = React.forwardRef<\n React.ElementRef<typeof CollapsiblePrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof CollapsiblePrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <CollapsiblePrimitive.Trigger\n ref={ref}\n className={cn(\n 'flex cursor-pointer items-center justify-between font-medium transition-all',\n '[&[data-state=open]>svg]:rotate-180',\n className,\n )}\n {...props}\n />\n));\nTrigger.displayName = 'Collapsible.Trigger';\n\nconst Content = React.forwardRef<\n React.ElementRef<typeof CollapsiblePrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof CollapsiblePrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <CollapsiblePrimitive.Content\n ref={ref}\n className={cn(\n 'overflow-hidden text-sm',\n 'data-[state=closed]:animate-collapsible-up data-[state=open]:animate-collapsible-down',\n className,\n )}\n {...props}\n >\n {children}\n </CollapsiblePrimitive.Content>\n));\nContent.displayName = 'Collapsible.Content';\n\nexport { Root, Trigger, Content };\n","'use client';\n\nimport * as React from 'react';\nimport { ChevronDown } from '@structyl/icons';\nimport { Accordion as AccordionPrimitive } from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\n\nexport type AccordionVariant = 'default' | 'bordered' | 'separated' | 'flushed' | 'ghost';\n\nconst AccordionVariantContext = React.createContext<AccordionVariant>('default');\n\n// ── Root ──────────────────────────────────────────────────────────────────────\n\nexport type AccordionRootProps = React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Root> & {\n variant?: AccordionVariant;\n};\n\nconst Root = React.forwardRef<React.ElementRef<typeof AccordionPrimitive.Root>, AccordionRootProps>(\n ({ variant = 'default', className, ...props }, ref) => (\n <AccordionVariantContext.Provider value={variant}>\n <AccordionPrimitive.Root\n ref={ref}\n className={cn(\n variant === 'bordered' && 'rounded-lg border border-border overflow-hidden',\n variant === 'separated' && 'flex flex-col gap-2',\n className,\n )}\n {...props}\n />\n </AccordionVariantContext.Provider>\n ),\n);\nRoot.displayName = 'Accordion.Root';\n\n// ── Item ──────────────────────────────────────────────────────────────────────\n\nconst Item = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>\n>(({ className, ...props }, ref) => {\n const variant = React.useContext(AccordionVariantContext);\n return (\n <AccordionPrimitive.Item\n ref={ref}\n className={cn(\n variant === 'default' && 'border-b border-border',\n variant === 'bordered' && 'border-b border-border last:border-b-0',\n variant === 'separated' && 'rounded-lg border border-border',\n variant === 'flushed' && 'border-b border-border',\n variant === 'ghost' && '',\n className,\n )}\n {...props}\n />\n );\n});\nItem.displayName = 'Accordion.Item';\n\n// ── Trigger ───────────────────────────────────────────────────────────────────\n\nexport interface AccordionTriggerProps\n extends React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger> {\n /** Override the default chevron icon */\n icon?: React.ReactNode;\n /** Position of the icon */\n iconPosition?: 'left' | 'right';\n}\n\nconst Trigger = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Trigger>,\n AccordionTriggerProps\n>(({ className, children, icon, iconPosition = 'right', ...props }, ref) => {\n const variant = React.useContext(AccordionVariantContext);\n const chevron = icon ?? (\n <ChevronDown className=\"h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200\" />\n );\n\n return (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n ref={ref}\n className={cn(\n 'flex flex-1 cursor-pointer items-center justify-between py-4 text-sm font-medium transition-all',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n '[&[data-state=open]>svg]:rotate-180 [&[data-state=open]_.accordion-icon]:rotate-180',\n variant !== 'ghost' && 'hover:underline',\n variant === 'separated' && 'px-4',\n variant === 'bordered' && 'px-4',\n variant === 'ghost' && 'hover:bg-muted/50 rounded-md px-2',\n className,\n )}\n {...props}\n >\n {iconPosition === 'left' && (\n <span className=\"accordion-icon mr-3 transition-transform duration-200\">{chevron}</span>\n )}\n {children}\n {iconPosition === 'right' && (\n <span className=\"accordion-icon transition-transform duration-200\">{chevron}</span>\n )}\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n );\n});\nTrigger.displayName = 'Accordion.Trigger';\n\n// ── Content ───────────────────────────────────────────────────────────────────\n\nconst Content = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>\n>(({ className, children, ...props }, ref) => {\n const variant = React.useContext(AccordionVariantContext);\n return (\n <AccordionPrimitive.Content\n ref={ref}\n className={cn(\n 'overflow-hidden text-sm',\n 'data-[state=closed]:animate-collapsible-up data-[state=open]:animate-collapsible-down',\n className,\n )}\n {...props}\n >\n <div\n className={cn(\n 'pb-4 pt-0',\n (variant === 'separated' || variant === 'bordered') && 'px-4',\n variant === 'ghost' && 'px-2',\n )}\n >\n {children}\n </div>\n </AccordionPrimitive.Content>\n );\n});\nContent.displayName = 'Accordion.Content';\n\nexport { Root, Item, Trigger, Content };\n","'use client';\n\nimport * as React from 'react';\nimport { Tabs as TabsPrimitive } from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\n\nexport type TabsVariant = 'default' | 'underline' | 'pills' | 'enclosed';\nexport type TabsColor = 'primary' | 'secondary' | 'error' | 'warning' | 'info' | 'success';\n\n// Shared context so List/Trigger can read variant + color without prop-drilling\ninterface TabsCtx { variant: TabsVariant; color: TabsColor }\nconst TabsContext = React.createContext<TabsCtx>({ variant: 'default', color: 'primary' });\n\n// ── Active-color classes per color ────────────────────────────────────────────\n// Note: color prop only applies to 'underline' and 'pills' variants.\n// 'default' and 'enclosed' variants intentionally ignore it.\n\nconst activeColorMap: Record<TabsColor, {\n underlineBorder: string;\n pillsBg: string;\n pillsText: string;\n}> = {\n primary: { underlineBorder: 'data-[state=active]:border-primary', pillsBg: 'data-[state=active]:bg-primary', pillsText: 'data-[state=active]:text-primary-foreground' },\n secondary: { underlineBorder: 'data-[state=active]:border-secondary', pillsBg: 'data-[state=active]:bg-secondary', pillsText: 'data-[state=active]:text-secondary-foreground' },\n error: { underlineBorder: 'data-[state=active]:border-destructive', pillsBg: 'data-[state=active]:bg-destructive', pillsText: 'data-[state=active]:text-destructive-foreground' },\n warning: { underlineBorder: 'data-[state=active]:border-warning', pillsBg: 'data-[state=active]:bg-warning', pillsText: 'data-[state=active]:text-warning-foreground' },\n info: { underlineBorder: 'data-[state=active]:border-info', pillsBg: 'data-[state=active]:bg-info', pillsText: 'data-[state=active]:text-info-foreground' },\n success: { underlineBorder: 'data-[state=active]:border-success', pillsBg: 'data-[state=active]:bg-success', pillsText: 'data-[state=active]:text-success-foreground' },\n};\n\n// ── Root ──────────────────────────────────────────────────────────────────────\n\nexport interface TabsRootProps extends React.ComponentPropsWithoutRef<typeof TabsPrimitive.Root> {\n variant?: TabsVariant;\n color?: TabsColor;\n}\n\nconst Root = React.forwardRef<React.ElementRef<typeof TabsPrimitive.Root>, TabsRootProps>(\n ({ variant = 'default', color = 'primary', ...props }, ref) => (\n <TabsContext.Provider value={{ variant, color }}>\n <TabsPrimitive.Root ref={ref} {...props} />\n </TabsContext.Provider>\n ),\n);\nRoot.displayName = 'Tabs.Root';\n\n// ── List ──────────────────────────────────────────────────────────────────────\n\nconst listVariantClasses: Record<TabsVariant, string> = {\n default: 'inline-flex h-9 items-center justify-center rounded-lg bg-muted/70 p-1 text-muted-foreground gap-0.5 border border-border/50',\n underline:'inline-flex items-center gap-0 border-b border-border text-muted-foreground w-full',\n pills: 'inline-flex items-center gap-1 text-muted-foreground',\n enclosed: 'inline-flex items-center gap-0 rounded-t-lg border border-border bg-muted/30 text-muted-foreground',\n};\n\nconst List = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List> & { scrollable?: boolean }\n>(({ className, scrollable = false, ...props }, ref) => {\n const { variant } = React.useContext(TabsContext);\n return (\n <TabsPrimitive.List\n ref={ref}\n className={cn(listVariantClasses[variant], scrollable && 'overflow-x-auto scrollbar-none', className)}\n {...props}\n />\n );\n});\nList.displayName = 'Tabs.List';\n\n// ── Trigger ───────────────────────────────────────────────────────────────────\n\nconst Trigger = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => {\n const { variant, color } = React.useContext(TabsContext);\n const c = activeColorMap[color];\n\n const variantClass = {\n default: [\n 'inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium',\n 'transition-[background-color,color,box-shadow,transform] duration-smooth ease-spring',\n 'hover:text-fg/80',\n 'data-[state=active]:bg-bg data-[state=active]:text-fg data-[state=active]:shadow-sm',\n 'active:scale-[0.97]',\n ].join(' '),\n underline: [\n 'relative inline-flex items-center justify-center whitespace-nowrap px-4 py-2 text-sm font-medium',\n 'border-b-2 border-transparent -mb-px',\n 'transition-[color,border-color] duration-smooth',\n 'hover:text-fg',\n 'data-[state=active]:text-fg',\n c.underlineBorder,\n ].join(' '),\n pills: [\n 'inline-flex items-center justify-center whitespace-nowrap rounded-full px-4 py-1.5 text-sm font-medium',\n 'transition-[background-color,color] duration-smooth',\n 'hover:bg-muted hover:text-fg',\n c.pillsBg,\n c.pillsText,\n 'active:scale-[0.97]',\n ].join(' '),\n enclosed: [\n 'relative inline-flex items-center justify-center whitespace-nowrap px-4 py-2 text-sm font-medium',\n 'border-b border-transparent -mb-px',\n 'transition-[color,background-color] duration-smooth',\n 'hover:bg-muted/50 hover:text-fg',\n 'data-[state=active]:bg-bg data-[state=active]:text-fg data-[state=active]:border-l data-[state=active]:border-r data-[state=active]:border-t data-[state=active]:border-border data-[state=active]:border-b-bg',\n ].join(' '),\n }[variant];\n\n return (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n variantClass,\n 'cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/60 focus-visible:ring-offset-2 focus-visible:ring-offset-bg',\n 'disabled:pointer-events-none disabled:opacity-50',\n className,\n )}\n {...props}\n />\n );\n});\nTrigger.displayName = 'Tabs.Trigger';\n\n// ── Content ───────────────────────────────────────────────────────────────────\n\nconst Content = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n 'mt-3',\n 'data-[state=active]:animate-in data-[state=active]:fade-in-50 data-[state=active]:duration-comfortable',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/60 focus-visible:ring-offset-2 focus-visible:ring-offset-bg rounded-md',\n className,\n )}\n {...props}\n />\n));\nContent.displayName = 'Tabs.Content';\n\nexport { Root, List, Trigger, Content };\n","'use client';\n\nimport * as React from 'react';\nimport { ChevronRight, MoreHorizontal } from '@structyl/icons';\nimport { Slot } from '@structyl/core';\nimport { cn } from '@structyl/utils';\n\nconst Root = React.forwardRef<\n HTMLElement,\n React.ComponentPropsWithoutRef<'nav'> & { separator?: React.ReactNode }\n>(({ ...props }, ref) => <nav ref={ref} aria-label=\"breadcrumb\" {...props} />);\nRoot.displayName = 'Breadcrumb.Root';\n\nconst List = React.forwardRef<HTMLOListElement, React.ComponentPropsWithoutRef<'ol'>>(\n ({ className, ...props }, ref) => (\n <ol\n ref={ref}\n className={cn(\n 'text-muted-foreground flex flex-wrap items-center gap-1.5 break-words text-sm sm:gap-2.5',\n className,\n )}\n {...props}\n />\n ),\n);\nList.displayName = 'Breadcrumb.List';\n\nconst Item = React.forwardRef<HTMLLIElement, React.ComponentPropsWithoutRef<'li'>>(\n ({ className, ...props }, ref) => (\n <li ref={ref} className={cn('inline-flex items-center gap-1.5', className)} {...props} />\n ),\n);\nItem.displayName = 'Breadcrumb.Item';\n\ninterface BreadcrumbLinkProps extends React.ComponentPropsWithoutRef<'a'> {\n asChild?: boolean;\n}\n\nconst Link = React.forwardRef<HTMLAnchorElement, BreadcrumbLinkProps>(\n ({ asChild, className, ...props }, ref) => {\n const Comp = asChild ? Slot : 'a';\n return (\n <Comp ref={ref} className={cn('cursor-pointer hover:text-fg transition-colors', className)} {...props} />\n );\n },\n);\nLink.displayName = 'Breadcrumb.Link';\n\nconst Page = React.forwardRef<HTMLSpanElement, React.ComponentPropsWithoutRef<'span'>>(\n ({ className, ...props }, ref) => (\n <span\n ref={ref}\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn('text-fg font-normal', className)}\n {...props}\n />\n ),\n);\nPage.displayName = 'Breadcrumb.Page';\n\nconst Separator: React.FC<React.ComponentProps<'li'>> = ({ children, className, ...props }) => (\n <li\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn('[&>svg]:size-3.5', className)}\n {...props}\n >\n {children ?? <ChevronRight />}\n </li>\n);\nSeparator.displayName = 'Breadcrumb.Separator';\n\nconst Ellipsis: React.FC<React.ComponentProps<'span'>> = ({ className, ...props }) => (\n <span\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn('flex h-9 w-9 items-center justify-center', className)}\n {...props}\n >\n <MoreHorizontal className=\"h-4 w-4\" />\n <span className=\"sr-only\">More</span>\n </span>\n);\nEllipsis.displayName = 'Breadcrumb.Ellipsis';\n\nexport { Root, List, Item, Link, Page, Separator, Ellipsis };\n","'use client';\n\nimport * as React from 'react';\nimport { Check, ChevronDown, Plus } from '@structyl/icons';\nimport { Select as SelectPrimitive } from '@structyl/primitives';\nimport type { SelectOption } from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\n\nconst Root = SelectPrimitive.Root;\nconst Group = SelectPrimitive.Group;\nconst Value = SelectPrimitive.Value;\n\nconst itemClassName = cn(\n 'relative flex w-full cursor-pointer select-none items-center gap-2 rounded-md py-1.5 pl-2 pr-8 text-sm outline-none',\n 'duration-instant transition-colors',\n 'focus:bg-accent focus:text-accent-foreground',\n 'data-[state=checked]:font-medium',\n 'data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n);\n\nconst itemIndicatorClassName = 'absolute right-2 flex h-3.5 w-3.5 items-center justify-center';\n\nconst Trigger = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n 'border-border bg-bg shadow-xs group flex h-9 w-full items-center justify-between gap-2 rounded-md border px-3 py-1 text-sm',\n 'duration-snappy ease-smooth transition-[border-color,box-shadow,background-color,transform]',\n 'hover:border-border-strong hover:bg-accent/30',\n 'data-[placeholder]:text-muted-foreground/70',\n 'focus:border-ring focus:ring-ring/30 focus:outline-none focus:ring-2',\n 'data-[state=open]:border-ring data-[state=open]:ring-ring/30 data-[state=open]:ring-2',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n 'active:duration-instant active:scale-[0.98]',\n '[&>span]:line-clamp-1',\n className,\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDown className=\"text-muted-foreground duration-smooth ease-spring h-4 w-4 transition-transform group-data-[state=open]:rotate-180\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n));\nTrigger.displayName = 'Select.Trigger';\n\nconst SearchInput = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.SearchInput>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.SearchInput>\n>(({ className, placeholder = 'Search options...', ...props }, ref) => (\n <SelectPrimitive.SearchInput\n ref={ref}\n {...props}\n aria-label={props['aria-label'] ?? 'Search options'}\n placeholder={placeholder}\n className={cn(\n 'border-border placeholder:text-muted-foreground h-10 w-full border-b bg-transparent px-3 text-sm outline-none',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n />\n));\nSearchInput.displayName = 'Select.SearchInput';\n\ntype SelectContentProps = React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content> & {\n container?: Element | DocumentFragment | null;\n options?: SelectOption[];\n optionHeight?: number;\n optionOverscan?: number;\n optionEmptyMessage?: React.ReactNode;\n renderOption?: (option: SelectOption) => React.ReactNode;\n showCreateItem?: boolean;\n};\n\nconst Content = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Content>,\n SelectContentProps\n>(\n (\n {\n className,\n children,\n position = 'popper',\n options,\n optionHeight = 36,\n optionOverscan = 6,\n optionEmptyMessage,\n renderOption,\n showCreateItem = true,\n container,\n ...props\n },\n ref,\n ) => (\n <SelectPrimitive.Portal container={container ?? undefined}>\n <SelectPrimitive.Content\n ref={ref}\n position={position}\n className={cn(\n 'border-border bg-popover/95 backdrop-blur-glass text-popover-foreground shadow-overlay relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-lg border',\n 'origin-[var(--structyl-popper-transform-origin,center)]',\n 'data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95',\n 'data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95',\n 'data-[side=bottom]:slide-in-from-top-1 data-[side=left]:slide-in-from-right-1',\n 'data-[side=right]:slide-in-from-left-1 data-[side=top]:slide-in-from-bottom-1',\n position === 'popper' &&\n 'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1',\n className,\n )}\n {...props}\n >\n <SearchInput />\n <SelectPrimitive.Viewport\n className={cn(\n 'max-h-80 p-1',\n position === 'popper' && 'w-full min-w-[var(--structyl-popper-anchor-width)]',\n )}\n >\n {options ? (\n <Options\n options={options}\n itemHeight={optionHeight}\n overscan={optionOverscan}\n emptyMessage={optionEmptyMessage}\n renderOption={renderOption}\n />\n ) : (\n children\n )}\n {showCreateItem ? <CreateItem /> : null}\n </SelectPrimitive.Viewport>\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n ),\n);\nContent.displayName = 'Select.Content';\n\nconst Label = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Label\n ref={ref}\n className={cn(\n 'text-muted-foreground px-2 py-1.5 text-xs font-semibold uppercase tracking-wide',\n className,\n )}\n {...props}\n />\n));\nLabel.displayName = 'Select.Label';\n\nconst Item = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item ref={ref} className={cn(itemClassName, className)} {...props}>\n <span className={itemIndicatorClassName}>\n <SelectPrimitive.ItemIndicator>\n <Check className=\"text-primary animate-in zoom-in-50 h-4 w-4 duration-150\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n));\nItem.displayName = 'Select.Item';\n\nconst CreateItem = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.CreateItem>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.CreateItem>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.CreateItem ref={ref} className={cn(itemClassName, className)} {...props}>\n {(value) => (\n <>\n <span className=\"text-primary flex h-4 w-4 items-center justify-center\">\n <Plus className=\"h-4 w-4\" aria-hidden=\"true\" />\n </span>\n <span>\n {typeof children === 'function' ? children(value) : (children ?? `Create \"${value}\"`)}\n </span>\n </>\n )}\n </SelectPrimitive.CreateItem>\n));\nCreateItem.displayName = 'Select.CreateItem';\n\nconst Options = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Options>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Options>\n>(\n (\n {\n className,\n itemClassName: optionItemClassName,\n itemIndicatorClassName: optionIndicatorClassName,\n renderItemIndicator,\n ...props\n },\n ref,\n ) => (\n <SelectPrimitive.Options\n ref={ref}\n className={cn('min-h-0', className)}\n itemClassName={cn(itemClassName, optionItemClassName)}\n itemIndicatorClassName={cn(itemIndicatorClassName, optionIndicatorClassName)}\n renderItemIndicator={(option) =>\n renderItemIndicator ? (\n renderItemIndicator(option)\n ) : (\n <Check className=\"text-primary animate-in zoom-in-50 h-4 w-4 duration-150\" />\n )\n }\n {...props}\n />\n ),\n);\nOptions.displayName = 'Select.Options';\n\nconst Separator = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Separator\n ref={ref}\n className={cn('bg-border -mx-1 my-1 h-px', className)}\n {...props}\n />\n));\nSeparator.displayName = 'Select.Separator';\n\nexport {\n Root,\n Group,\n Value,\n Trigger,\n SearchInput,\n Content,\n Label,\n Item,\n CreateItem,\n Options,\n Separator,\n};\n","'use client';\n\nimport * as React from 'react';\nimport { ChevronLeft, ChevronRight, ChevronsLeft, ChevronsRight } from '@structyl/icons';\nimport { cn } from '@structyl/utils';\nimport { Button } from '../button';\nimport * as Select from '../select';\n\n// ── Pagination ─────────────────────────────────────────────────────────────────\n\nexport interface PaginationProps {\n /** Current page number (1-based) */\n page: number;\n /** Total number of pages */\n pageCount: number;\n /** Current page size */\n pageSize?: number;\n /** Total row count shown on the left */\n totalRows?: number;\n /** Called when the user navigates to a different page */\n onPageChange: (page: number) => void;\n /** Called when the user changes the page size; if omitted the rows-per-page selector is hidden */\n onPageSizeChange?: (pageSize: number) => void;\n /** Options for the rows-per-page selector */\n pageSizeOptions?: number[];\n /** Show the \"X total rows\" label (only visible when totalRows is provided) */\n showTotalRows?: boolean;\n className?: string;\n}\n\nconst Pagination = React.forwardRef<HTMLDivElement, PaginationProps>(\n (\n {\n page,\n pageCount,\n pageSize = 10,\n totalRows,\n onPageChange,\n onPageSizeChange,\n pageSizeOptions = [10, 25, 50, 100],\n showTotalRows = true,\n className,\n },\n ref,\n ) => {\n const totalPages = Math.max(pageCount, 1);\n const canPrev = page > 1;\n const canNext = page < totalPages;\n\n const pageOptions = Array.from({ length: totalPages }, (_, i) => ({\n value: String(i + 1),\n label: String(i + 1),\n }));\n\n const pageSizeSelectOptions = pageSizeOptions.map((s) => ({\n value: String(s),\n label: String(s),\n }));\n\n return (\n <div\n ref={ref}\n className={cn(\n 'flex flex-col gap-3 py-3 sm:flex-row sm:items-center sm:justify-between',\n className,\n )}\n >\n {/* Left: total rows + rows per page */}\n <div className=\"text-muted-foreground flex flex-wrap items-center gap-4 text-sm\">\n {showTotalRows && totalRows !== undefined && (\n <span className=\"tabular-nums\">{totalRows} total rows</span>\n )}\n {onPageSizeChange && (\n <label className=\"flex items-center gap-2\">\n <span className=\"whitespace-nowrap\">Rows per page</span>\n <Select.Root\n value={String(pageSize)}\n onValueChange={(v) => onPageSizeChange(Number(v))}\n >\n <Select.Trigger className=\"h-8 w-20\">\n <Select.Value />\n </Select.Trigger>\n <Select.Content options={pageSizeSelectOptions} />\n </Select.Root>\n </label>\n )}\n </div>\n\n {/* Right: page navigation */}\n <div className=\"flex flex-wrap items-center gap-1\">\n <span className=\"text-muted-foreground mr-1 text-sm tabular-nums\">\n Page {page} of {totalPages}\n </span>\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"icon-sm\"\n onClick={() => onPageChange(1)}\n disabled={!canPrev}\n aria-label=\"First page\"\n title=\"First page\"\n >\n <ChevronsLeft className=\"size-4\" />\n </Button>\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"icon-sm\"\n onClick={() => onPageChange(page - 1)}\n disabled={!canPrev}\n aria-label=\"Previous page\"\n title=\"Previous page\"\n >\n <ChevronLeft className=\"size-4\" />\n </Button>\n <Select.Root\n value={String(page)}\n onValueChange={(v) => onPageChange(Number(v))}\n >\n <Select.Trigger className=\"h-8 w-16\" aria-label=\"Go to page\">\n <Select.Value />\n </Select.Trigger>\n <Select.Content options={pageOptions} />\n </Select.Root>\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"icon-sm\"\n onClick={() => onPageChange(page + 1)}\n disabled={!canNext}\n aria-label=\"Next page\"\n title=\"Next page\"\n >\n <ChevronRight className=\"size-4\" />\n </Button>\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"icon-sm\"\n onClick={() => onPageChange(totalPages)}\n disabled={!canNext}\n aria-label=\"Last page\"\n title=\"Last page\"\n >\n <ChevronsRight className=\"size-4\" />\n </Button>\n </div>\n </div>\n );\n },\n);\nPagination.displayName = 'Pagination';\n\nexport { Pagination };\n","'use client';\n\nimport * as React from 'react';\nimport { Check } from '@structyl/icons';\nimport { cn } from '@structyl/utils';\n\ntype StepStatus = 'complete' | 'current' | 'upcoming';\nexport type StepperColor = 'primary' | 'secondary' | 'error' | 'warning' | 'info' | 'success';\n\ninterface StepperContextValue {\n activeStep: number;\n orientation: 'horizontal' | 'vertical';\n color: StepperColor;\n}\n\nconst StepperContext = React.createContext<StepperContextValue>({\n activeStep: 0,\n orientation: 'horizontal',\n color: 'primary',\n});\n\n// ── Per-color classes ─────────────────────────────────────────────────────────\n\nconst colorClasses: Record<StepperColor, {\n completeBg: string;\n completeBorder: string;\n completeText: string;\n currentBorder: string;\n currentText: string;\n}> = {\n primary: { completeBg: 'bg-primary', completeBorder: 'border-primary', completeText: 'text-primary-foreground', currentBorder: 'border-primary', currentText: 'text-primary' },\n secondary: { completeBg: 'bg-secondary', completeBorder: 'border-secondary', completeText: 'text-secondary-foreground', currentBorder: 'border-secondary', currentText: 'text-secondary-dark' },\n error: { completeBg: 'bg-destructive', completeBorder: 'border-destructive', completeText: 'text-destructive-foreground', currentBorder: 'border-destructive', currentText: 'text-destructive' },\n warning: { completeBg: 'bg-warning', completeBorder: 'border-warning', completeText: 'text-warning-foreground', currentBorder: 'border-warning', currentText: 'text-warning' },\n info: { completeBg: 'bg-info', completeBorder: 'border-info', completeText: 'text-info-foreground', currentBorder: 'border-info', currentText: 'text-info' },\n success: { completeBg: 'bg-success', completeBorder: 'border-success', completeText: 'text-success-foreground', currentBorder: 'border-success', currentText: 'text-success' },\n};\n\n// ── Root ──────────────────────────────────────────────────────────────────────\n\ninterface StepperRootProps extends React.HTMLAttributes<HTMLDivElement> {\n activeStep: number;\n orientation?: 'horizontal' | 'vertical';\n color?: StepperColor;\n}\n\nconst Root = React.forwardRef<HTMLDivElement, StepperRootProps>(\n ({ activeStep, orientation = 'horizontal', color = 'primary', className, children, ...props }, ref) => (\n <StepperContext.Provider value={{ activeStep, orientation, color }}>\n <div\n ref={ref}\n role=\"group\"\n aria-label=\"progress\"\n data-orientation={orientation}\n className={cn(\n 'flex',\n orientation === 'horizontal' ? 'flex-row items-center gap-2' : 'flex-col gap-2',\n className,\n )}\n {...props}\n >\n {children}\n </div>\n </StepperContext.Provider>\n ),\n);\nRoot.displayName = 'Stepper.Root';\n\n// ── Step ──────────────────────────────────────────────────────────────────────\n\ninterface StepProps extends React.HTMLAttributes<HTMLDivElement> {\n index: number;\n}\n\nconst Step = React.forwardRef<HTMLDivElement, StepProps>(\n ({ index, className, children, ...props }, ref) => {\n const ctx = React.useContext(StepperContext);\n const status: StepStatus =\n index < ctx.activeStep ? 'complete' : index === ctx.activeStep ? 'current' : 'upcoming';\n return (\n <div\n ref={ref}\n data-state={status}\n aria-current={status === 'current' ? 'step' : undefined}\n className={cn('flex items-center gap-2', className)}\n {...props}\n >\n {children ?? <Indicator index={index} status={status} />}\n </div>\n );\n },\n);\nStep.displayName = 'Stepper.Step';\n\n// ── Indicator ─────────────────────────────────────────────────────────────────\n\nconst Indicator: React.FC<{ index: number; status: StepStatus }> = ({ index, status }) => {\n const { color } = React.useContext(StepperContext);\n const c = colorClasses[color];\n return (\n <span\n data-state={status}\n className={cn(\n 'flex h-8 w-8 shrink-0 items-center justify-center rounded-full border text-xs font-medium',\n status === 'complete' && [c.completeBg, c.completeBorder, c.completeText],\n status === 'current' && [c.currentBorder, c.currentText],\n status === 'upcoming' && 'border-border text-muted-foreground',\n )}\n >\n {status === 'complete' ? <Check className=\"h-4 w-4\" /> : index + 1}\n </span>\n );\n};\n\n// ── Title / Description / Separator ──────────────────────────────────────────\n\nconst Title = React.forwardRef<HTMLSpanElement, React.HTMLAttributes<HTMLSpanElement>>(\n ({ className, ...props }, ref) => (\n <span ref={ref} className={cn('text-sm font-medium', className)} {...props} />\n ),\n);\nTitle.displayName = 'Stepper.Title';\n\nconst Description = React.forwardRef<HTMLSpanElement, React.HTMLAttributes<HTMLSpanElement>>(\n ({ className, ...props }, ref) => (\n <span ref={ref} className={cn('text-xs text-muted-foreground', className)} {...props} />\n ),\n);\nDescription.displayName = 'Stepper.Description';\n\nconst Separator: React.FC<React.HTMLAttributes<HTMLDivElement>> = ({ className, ...props }) => {\n const { orientation } = React.useContext(StepperContext);\n return (\n <div\n aria-hidden=\"true\"\n data-orientation={orientation}\n className={cn(\n 'bg-border',\n orientation === 'horizontal' ? 'h-px flex-1' : 'h-6 w-px',\n className,\n )}\n {...props}\n />\n );\n};\nSeparator.displayName = 'Stepper.Separator';\n\nexport { Root, Step, Title, Description, Separator };\n","'use client';\n\nimport * as React from 'react';\nimport { AlertDialog as AlertDialogPrimitive } from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\nimport { buttonVariants } from '../button';\n\nconst Root = AlertDialogPrimitive.Root;\nconst Trigger = AlertDialogPrimitive.Trigger;\nconst Portal = AlertDialogPrimitive.Portal;\n\nconst Overlay = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Overlay\n ref={ref}\n className={cn(\n 'fixed inset-0 z-50 bg-overlay/60 backdrop-blur-xs',\n 'data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:duration-comfortable',\n 'data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:duration-smooth',\n className,\n )}\n {...props}\n />\n));\nOverlay.displayName = 'AlertDialog.Overlay';\n\nconst Content = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Content\n ref={ref}\n className={cn(\n 'fixed left-1/2 top-1/2 z-50 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4',\n 'rounded-2xl border border-border bg-card p-6 text-card-foreground shadow-2xl',\n 'data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=open]:duration-comfortable',\n 'data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=closed]:duration-smooth',\n className,\n )}\n {...props}\n />\n));\nContent.displayName = 'AlertDialog.Content';\n\nconst Header: React.FC<React.HTMLAttributes<HTMLDivElement>> = ({ className, ...props }) => (\n <div className={cn('flex flex-col gap-2 text-center sm:text-left', className)} {...props} />\n);\nHeader.displayName = 'AlertDialog.Header';\n\nconst Footer: React.FC<React.HTMLAttributes<HTMLDivElement>> = ({ className, ...props }) => (\n <div\n className={cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:gap-2', className)}\n {...props}\n />\n);\nFooter.displayName = 'AlertDialog.Footer';\n\nconst Title = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Title\n ref={ref}\n className={cn('text-lg font-semibold', className)}\n {...props}\n />\n));\nTitle.displayName = 'AlertDialog.Title';\n\nconst Description = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Description\n ref={ref}\n className={cn('text-sm text-muted-foreground', className)}\n {...props}\n />\n));\nDescription.displayName = 'AlertDialog.Description';\n\nconst Action = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Action>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Action>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Action ref={ref} className={cn(buttonVariants(), className)} {...props} />\n));\nAction.displayName = 'AlertDialog.Action';\n\nconst Cancel = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Cancel>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Cancel>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Cancel\n ref={ref}\n className={cn(buttonVariants({ variant: 'outline' }), 'mt-2 sm:mt-0', className)}\n {...props}\n />\n));\nCancel.displayName = 'AlertDialog.Cancel';\n\nexport {\n Root,\n Trigger,\n Portal,\n Overlay,\n Content,\n Header,\n Footer,\n Title,\n Description,\n Action,\n Cancel,\n};\n","'use client';\n\nimport * as React from 'react';\nimport { X } from '@structyl/icons';\nimport { Dialog as SheetPrimitive } from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\nimport { tv, type VariantProps } from 'tailwind-variants';\n\nconst Root = SheetPrimitive.Root;\nconst Trigger = SheetPrimitive.Trigger;\nconst Portal = SheetPrimitive.Portal;\nconst Close = SheetPrimitive.Close;\n\nconst Overlay = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Overlay\n ref={ref}\n className={cn(\n 'fixed inset-0 z-50 bg-fg/80 backdrop-blur-sm',\n 'data-[state=open]:animate-in data-[state=open]:fade-in-0',\n 'data-[state=closed]:animate-out data-[state=closed]:fade-out-0',\n className,\n )}\n {...props}\n />\n));\nOverlay.displayName = 'Sheet.Overlay';\n\nconst sheetVariants = tv({\n base: [\n 'fixed z-50 gap-4 bg-bg p-6 shadow-lg transition ease-in-out',\n 'data-[state=closed]:duration-300 data-[state=closed]:animate-out',\n 'data-[state=open]:duration-500 data-[state=open]:animate-in',\n ],\n variants: {\n side: {\n top: 'inset-x-0 top-0 border-b border-border data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top',\n bottom:\n 'inset-x-0 bottom-0 border-t border-border data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom',\n left: 'inset-y-0 left-0 h-full w-3/4 border-r border-border data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm',\n right:\n 'inset-y-0 right-0 h-full w-3/4 border-l border-border data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm',\n },\n },\n defaultVariants: { side: 'right' },\n});\n\nexport interface SheetContentProps\n extends React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>,\n VariantProps<typeof sheetVariants> {}\n\nconst Content = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Content>,\n SheetContentProps\n>(({ side = 'right', className, children, ...props }, ref) => (\n <Portal>\n <Overlay />\n <SheetPrimitive.Content\n ref={ref}\n className={cn(sheetVariants({ side }), className)}\n {...props}\n >\n {children}\n <SheetPrimitive.Close\n className={cn(\n 'absolute right-4 top-4 rounded-sm opacity-70 ring-offset-bg transition-opacity',\n 'hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2',\n 'disabled:pointer-events-none',\n )}\n >\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n </SheetPrimitive.Content>\n </Portal>\n));\nContent.displayName = 'Sheet.Content';\n\nconst Header: React.FC<React.HTMLAttributes<HTMLDivElement>> = ({ className, ...props }) => (\n <div className={cn('flex flex-col gap-2 text-center sm:text-left', className)} {...props} />\n);\nHeader.displayName = 'Sheet.Header';\n\nconst Footer: React.FC<React.HTMLAttributes<HTMLDivElement>> = ({ className, ...props }) => (\n <div\n className={cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:gap-2', className)}\n {...props}\n />\n);\nFooter.displayName = 'Sheet.Footer';\n\nconst Title = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Title\n ref={ref}\n className={cn('text-lg font-semibold text-fg', className)}\n {...props}\n />\n));\nTitle.displayName = 'Sheet.Title';\n\nconst Description = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Description\n ref={ref}\n className={cn('text-sm text-muted-foreground', className)}\n {...props}\n />\n));\nDescription.displayName = 'Sheet.Description';\n\nexport {\n Root,\n Trigger,\n Close,\n Portal,\n Overlay,\n Content,\n Header,\n Footer,\n Title,\n Description,\n};\n","'use client';\n\nimport * as React from 'react';\nimport { Dialog as DrawerPrimitive } from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\n\nconst Root = DrawerPrimitive.Root;\nconst Trigger = DrawerPrimitive.Trigger;\nconst Portal = DrawerPrimitive.Portal;\nconst Close = DrawerPrimitive.Close;\n\nconst Overlay = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Overlay\n ref={ref}\n className={cn(\n 'fixed inset-0 z-50 bg-fg/80 backdrop-blur-sm',\n 'data-[state=open]:animate-in data-[state=open]:fade-in-0',\n 'data-[state=closed]:animate-out data-[state=closed]:fade-out-0',\n className,\n )}\n {...props}\n />\n));\nOverlay.displayName = 'Drawer.Overlay';\n\nconst Content = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <Portal>\n <Overlay />\n <DrawerPrimitive.Content\n ref={ref}\n className={cn(\n 'fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border border-border bg-bg',\n 'data-[state=open]:animate-in data-[state=open]:slide-in-from-bottom',\n 'data-[state=closed]:animate-out data-[state=closed]:slide-out-to-bottom',\n className,\n )}\n {...props}\n >\n <div className=\"mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted\" aria-hidden=\"true\" />\n {children}\n </DrawerPrimitive.Content>\n </Portal>\n));\nContent.displayName = 'Drawer.Content';\n\nconst Header: React.FC<React.HTMLAttributes<HTMLDivElement>> = ({ className, ...props }) => (\n <div className={cn('grid gap-1.5 p-4 text-center sm:text-left', className)} {...props} />\n);\nHeader.displayName = 'Drawer.Header';\n\nconst Footer: React.FC<React.HTMLAttributes<HTMLDivElement>> = ({ className, ...props }) => (\n <div className={cn('mt-auto flex flex-col gap-2 p-4', className)} {...props} />\n);\nFooter.displayName = 'Drawer.Footer';\n\nconst Title = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Title\n ref={ref}\n className={cn('text-lg font-semibold leading-none tracking-tight', className)}\n {...props}\n />\n));\nTitle.displayName = 'Drawer.Title';\n\nconst Description = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Description\n ref={ref}\n className={cn('text-sm text-muted-foreground', className)}\n {...props}\n />\n));\nDescription.displayName = 'Drawer.Description';\n\nexport {\n Root,\n Trigger,\n Close,\n Portal,\n Overlay,\n Content,\n Header,\n Footer,\n Title,\n Description,\n};\n","'use client';\n\nimport * as React from 'react';\nimport { Popover as PopoverPrimitive } from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\n\nconst Root = PopoverPrimitive.Root;\nconst Trigger = PopoverPrimitive.Trigger;\nconst Anchor = PopoverPrimitive.Anchor;\nconst Portal = PopoverPrimitive.Portal;\nconst Close = PopoverPrimitive.Close;\nconst Arrow = PopoverPrimitive.Arrow;\n\ntype PopoverContentProps = React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content> & {\n container?: Element | DocumentFragment | null;\n};\n\nconst Content = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Content>,\n PopoverContentProps\n>(({ className, align = 'center', sideOffset = 6, container, ...props }, ref) => (\n <PopoverPrimitive.Portal container={container ?? undefined}>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n 'border-border bg-popover/95 backdrop-blur-glass text-popover-foreground shadow-overlay z-50 w-72 rounded-xl border p-4 outline-none',\n 'origin-[var(--structyl-popper-transform-origin,center)]',\n 'data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95',\n 'data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95',\n 'data-[side=bottom]:slide-in-from-top-1 data-[side=left]:slide-in-from-right-1',\n 'data-[side=right]:slide-in-from-left-1 data-[side=top]:slide-in-from-bottom-1',\n className,\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n));\nContent.displayName = 'Popover.Content';\n\nexport { Root, Trigger, Anchor, Portal, Close, Arrow, Content };\n","'use client';\n\nimport * as React from 'react';\nimport { Tooltip as TooltipPrimitive } from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\nimport { tv, type VariantProps } from 'tailwind-variants';\n\n// ── Variants ─────────────────────────────────────────────────────────────────\n\nexport const tooltipContentVariants = tv({\n base: [\n 'z-50 overflow-hidden rounded-md px-2.5 py-1.5 text-xs font-medium shadow-md',\n 'origin-[var(--structyl-popper-transform-origin,center)]',\n 'animate-in fade-in-0 zoom-in-95 duration-snappy',\n 'data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95',\n 'data-[side=bottom]:slide-in-from-top-1 data-[side=left]:slide-in-from-right-1',\n 'data-[side=right]:slide-in-from-left-1 data-[side=top]:slide-in-from-bottom-1',\n ],\n variants: {\n variant: {\n default: 'bg-fg/90 text-bg backdrop-blur-sm',\n dark: 'bg-fg text-bg shadow-lg',\n light: 'bg-bg text-fg border border-border shadow-lg',\n primary: 'bg-primary text-primary-foreground',\n secondary: 'bg-secondary text-secondary-foreground',\n info: 'bg-info text-info-foreground',\n warning: 'bg-warning text-warning-foreground',\n error: 'bg-destructive text-destructive-foreground',\n success: 'bg-success text-success-foreground',\n },\n },\n defaultVariants: { variant: 'default' },\n});\n\n// ── Re-exports ────────────────────────────────────────────────────────────────\n\nconst Provider = TooltipPrimitive.Provider;\nconst Root = TooltipPrimitive.Root;\nconst Trigger = TooltipPrimitive.Trigger;\nconst Portal = TooltipPrimitive.Portal;\nconst Arrow = TooltipPrimitive.Arrow;\n\n// ── Content ───────────────────────────────────────────────────────────────────\n\nexport interface TooltipContentProps\n extends React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>,\n VariantProps<typeof tooltipContentVariants> {\n maxWidth?: string | number;\n arrow?: boolean;\n}\n\nconst Content = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Content>,\n TooltipContentProps\n>(({ className, variant, sideOffset = 6, maxWidth = 280, arrow = false, style, ...props }, ref) => (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(tooltipContentVariants({ variant }), className)}\n style={{ maxWidth, ...style }}\n {...props}\n >\n {props.children}\n {arrow && (\n <TooltipPrimitive.Arrow\n className={cn(\n 'fill-fg/90',\n variant === 'light' && 'fill-border',\n variant === 'dark' && 'fill-fg',\n variant === 'primary' && 'fill-primary',\n variant === 'secondary' && 'fill-secondary',\n variant === 'info' && 'fill-info',\n variant === 'warning' && 'fill-warning',\n variant === 'error' && 'fill-destructive',\n variant === 'success' && 'fill-success',\n )}\n width={8}\n height={4}\n />\n )}\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n));\nContent.displayName = 'Tooltip.Content';\n\n// ── Shorthand compound ────────────────────────────────────────────────────────\n\nexport interface TooltipProps {\n label: React.ReactNode;\n children: React.ReactNode;\n side?: React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>['side'];\n align?: React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>['align'];\n delayDuration?: number;\n skipDelayDuration?: number;\n variant?: VariantProps<typeof tooltipContentVariants>['variant'];\n maxWidth?: string | number;\n arrow?: boolean;\n disabled?: boolean;\n}\n\nconst Tooltip = ({\n children,\n label,\n side = 'top',\n align,\n delayDuration,\n skipDelayDuration,\n variant,\n maxWidth,\n arrow,\n disabled,\n}: TooltipProps) => {\n if (disabled) return <>{children}</>;\n return (\n <TooltipPrimitive.Provider delayDuration={delayDuration} skipDelayDuration={skipDelayDuration}>\n <Root>\n <Trigger asChild>{children}</Trigger>\n <Content side={side} align={align} variant={variant} maxWidth={maxWidth} arrow={arrow}>\n {label}\n </Content>\n </Root>\n </TooltipPrimitive.Provider>\n );\n};\nTooltip.displayName = 'Tooltip';\n\nexport { Provider, Root, Trigger, Portal, Arrow, Content, Tooltip };\n","'use client';\n\nimport * as React from 'react';\nimport { HoverCard as HoverCardPrimitive } from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\n\nconst Root = HoverCardPrimitive.Root;\nconst Trigger = HoverCardPrimitive.Trigger;\nconst Portal = HoverCardPrimitive.Portal;\nconst Arrow = HoverCardPrimitive.Arrow;\n\nconst Content = React.forwardRef<\n React.ElementRef<typeof HoverCardPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof HoverCardPrimitive.Content>\n>(({ className, align = 'center', sideOffset = 4, ...props }, ref) => (\n <HoverCardPrimitive.Portal>\n <HoverCardPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n 'z-50 w-64 rounded-md border border-border bg-popover p-4 text-popover-foreground shadow-md outline-none',\n 'data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95',\n 'data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95',\n 'data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2',\n 'data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n className,\n )}\n {...props}\n />\n </HoverCardPrimitive.Portal>\n));\nContent.displayName = 'HoverCard.Content';\n\nexport { Root, Trigger, Portal, Content, Arrow };\n","'use client';\n\nexport { Provider, Viewport, Root, Action, Close, Title, Description, toastVariants } from './toast-root';\nexport type { ToastRootProps } from './toast-root';\n\nexport { toast, useToast } from './use-toast';\nexport type { ToastOptions, ToastItem, ToastVariant, ToastHorizontal, ToastVertical } from './use-toast';\n\nexport { Toaster } from './toaster';\nexport type { ToasterProps } from './toaster';\n","'use client';\n\nimport * as React from 'react';\nimport { X } from '@structyl/icons';\nimport { Toast as ToastPrimitive } from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\nimport { tv, type VariantProps } from 'tailwind-variants';\n\nconst Provider = ToastPrimitive.Provider;\n\nconst Viewport = React.forwardRef<\n React.ElementRef<typeof ToastPrimitive.Viewport>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitive.Viewport>\n>(({ className, ...props }, ref) => (\n <ToastPrimitive.Viewport\n ref={ref}\n className={cn(\n 'fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4',\n 'sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]',\n className,\n )}\n {...props}\n />\n));\nViewport.displayName = 'Toast.Viewport';\n\nexport const toastVariants = tv({\n base: [\n 'group pointer-events-auto relative flex w-full items-center justify-between gap-2 overflow-hidden rounded-md border p-4 pr-6 shadow-lg transition-all',\n 'data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--structyl-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--structyl-toast-swipe-move-x)] data-[swipe=move]:transition-none',\n 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out',\n 'data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full',\n ],\n variants: {\n variant: {\n default: 'border-border bg-bg text-fg',\n destructive: 'destructive group border-destructive bg-destructive text-destructive-foreground',\n error: 'group border-destructive bg-destructive text-destructive-foreground',\n success: 'border-success bg-success text-success-foreground',\n warning: 'border-warning bg-warning text-warning-foreground',\n info: 'border-info bg-info text-info-foreground',\n },\n },\n defaultVariants: { variant: 'default' },\n});\n\nexport interface ToastRootProps\n extends React.ComponentPropsWithoutRef<typeof ToastPrimitive.Root>,\n VariantProps<typeof toastVariants> {}\n\nconst Root = React.forwardRef<\n React.ElementRef<typeof ToastPrimitive.Root>,\n ToastRootProps\n>(({ className, variant, ...props }, ref) => (\n <ToastPrimitive.Root\n ref={ref}\n className={cn(toastVariants({ variant }), className)}\n {...props}\n />\n));\nRoot.displayName = 'Toast.Root';\n\nconst Action = React.forwardRef<\n React.ElementRef<typeof ToastPrimitive.Action>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitive.Action>\n>(({ className, ...props }, ref) => (\n <ToastPrimitive.Action\n ref={ref}\n className={cn(\n 'inline-flex h-8 shrink-0 items-center justify-center rounded-md border border-border bg-transparent px-3 text-sm font-medium',\n 'transition-colors hover:bg-secondary focus:outline-none focus:ring-1 focus:ring-ring',\n 'disabled:pointer-events-none disabled:opacity-50',\n 'group-[.destructive]:border-destructive/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive',\n className,\n )}\n {...props}\n />\n));\nAction.displayName = 'Toast.Action';\n\nconst Close = React.forwardRef<\n React.ElementRef<typeof ToastPrimitive.Close>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitive.Close>\n>(({ className, ...props }, ref) => (\n <ToastPrimitive.Close\n ref={ref}\n className={cn(\n 'absolute right-1 top-1 rounded-md p-1 text-fg/50 opacity-0 transition-opacity',\n 'hover:text-fg focus:opacity-100 focus:outline-none focus:ring-1',\n 'group-hover:opacity-100',\n 'group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600',\n className,\n )}\n aria-label=\"Close\"\n {...props}\n >\n <X className=\"h-4 w-4\" />\n </ToastPrimitive.Close>\n));\nClose.displayName = 'Toast.Close';\n\nconst Title = React.forwardRef<\n React.ElementRef<typeof ToastPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <ToastPrimitive.Title ref={ref} className={cn('text-sm font-semibold', className)} {...props} />\n));\nTitle.displayName = 'Toast.Title';\n\nconst Description = React.forwardRef<\n React.ElementRef<typeof ToastPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <ToastPrimitive.Description ref={ref} className={cn('text-sm opacity-90', className)} {...props} />\n));\nDescription.displayName = 'Toast.Description';\n\nexport { Provider, Viewport, Root, Action, Close, Title, Description };\n","'use client';\n\nimport { useCallback, useEffect, useRef, useState } from 'react';\n\n// ── Types ─────────────────────────────────────────────────────────────────────\n\nexport type ToastVariant = 'default' | 'success' | 'error' | 'warning' | 'info' | 'loading';\n\nexport type ToastHorizontal = 'left' | 'center' | 'right';\nexport type ToastVertical = 'top' | 'bottom';\n\nexport interface ToastOptions {\n /** Reuse / update an existing toast when the same ID is fired again. */\n id?: string;\n title?: string;\n description?: string;\n variant?: ToastVariant;\n /** Auto-dismiss in ms. Pass `Infinity` to keep until manually dismissed. */\n duration?: number;\n /** Horizontal placement of the toast. */\n horizontal?: ToastHorizontal;\n /** Vertical placement of the toast. */\n vertical?: ToastVertical;\n /**\n * Adds a \"Retry\" button. When combined with `action`, `action` takes priority\n * for the button label — `retry` only supplies the click handler.\n */\n retry?: () => void;\n /** Custom action button. */\n action?: { label: string; onClick: () => void };\n /** Called right before the toast is dismissed. */\n onDismiss?: (id: string) => void;\n}\n\nexport interface ToastItem extends Required<Pick<ToastOptions, 'id' | 'variant' | 'duration'>> {\n title?: string;\n description?: string;\n horizontal?: ToastHorizontal;\n vertical?: ToastVertical;\n retry?: () => void;\n action?: ToastOptions['action'];\n onDismiss?: (id: string) => void;\n open: boolean;\n createdAt: number;\n}\n\n// ── Global singleton store ────────────────────────────────────────────────────\n\ntype Listener = (toasts: ToastItem[]) => void;\n\nlet store: ToastItem[] = [];\nconst listeners = new Set<Listener>();\nlet counter = 0;\n\nfunction genId() {\n return `t-${++counter}-${Math.random().toString(36).slice(2, 6)}`;\n}\n\nfunction emit() {\n const snapshot = [...store];\n listeners.forEach((l) => l(snapshot));\n}\n\nfunction add(opts: ToastOptions): string {\n const id = opts.id ?? genId();\n const exists = store.find((t) => t.id === id);\n\n if (exists) {\n store = store.map((t) =>\n t.id === id ? { ...t, ...opts, id, open: true, createdAt: Date.now() } : t,\n );\n } else {\n store = [\n ...store,\n {\n id,\n title: opts.title,\n description: opts.description,\n variant: opts.variant ?? 'default',\n duration: opts.duration ?? 4000,\n horizontal: opts.horizontal,\n vertical: opts.vertical,\n retry: opts.retry,\n action: opts.action,\n onDismiss: opts.onDismiss,\n open: true,\n createdAt: Date.now(),\n },\n ];\n }\n\n emit();\n return id;\n}\n\nfunction dismiss(id?: string) {\n if (id) {\n store.find((t) => t.id === id)?.onDismiss?.(id);\n store = store.map((t) => (t.id === id ? { ...t, open: false } : t));\n } else {\n store.forEach((t) => { if (t.open) t.onDismiss?.(t.id); });\n store = store.map((t) => ({ ...t, open: false }));\n }\n emit();\n}\n\nfunction remove(id: string) {\n store = store.filter((t) => t.id !== id);\n emit();\n}\n\n// ── Imperative API ────────────────────────────────────────────────────────────\n\n/**\n * Fire toasts imperatively from anywhere — event handlers, async functions,\n * outside React components. Drop `<Toaster />` once in your app root and\n * call these methods wherever you need them.\n *\n * @example\n * toast.success('Saved!');\n * toast.error('Failed to save', { retry: () => save(), horizontal: 'right', vertical: 'top' });\n * toast.promise(fetchData(), { loading: 'Loading…', success: 'Done!', error: 'Failed' });\n */\nexport const toast = {\n /** Full control — fire any variant with any options. */\n show: (opts: ToastOptions): string => add(opts),\n\n success: (title: string, opts?: Omit<ToastOptions, 'title' | 'variant'>): string =>\n add({ ...opts, title, variant: 'success' }),\n\n error: (title: string, opts?: Omit<ToastOptions, 'title' | 'variant'>): string =>\n add({ ...opts, title, variant: 'error' }),\n\n warning: (title: string, opts?: Omit<ToastOptions, 'title' | 'variant'>): string =>\n add({ ...opts, title, variant: 'warning' }),\n\n info: (title: string, opts?: Omit<ToastOptions, 'title' | 'variant'>): string =>\n add({ ...opts, title, variant: 'info' }),\n\n loading: (title: string, opts?: Omit<ToastOptions, 'title' | 'variant'>): string =>\n add({ ...opts, title, variant: 'loading', duration: opts?.duration ?? Infinity }),\n\n /**\n * Show a loading toast while a promise is pending, then update it to\n * success or error when it settles. Message strings can also be functions\n * that receive the resolved value / rejection reason.\n */\n promise: <T>(\n promise: Promise<T>,\n msgs: {\n loading: string;\n success: string | ((data: T) => string);\n error: string | ((err: unknown) => string);\n },\n opts?: Omit<ToastOptions, 'title' | 'variant'>,\n ): string => {\n const id = add({ ...opts, title: msgs.loading, variant: 'loading', duration: Infinity });\n promise\n .then((data) => {\n const title = typeof msgs.success === 'function' ? msgs.success(data) : msgs.success;\n add({ ...opts, id, title, variant: 'success', duration: opts?.duration ?? 4000 });\n })\n .catch((err: unknown) => {\n const title = typeof msgs.error === 'function' ? msgs.error(err) : msgs.error;\n add({ ...opts, id, title, variant: 'error', duration: opts?.duration ?? 4000 });\n });\n return id;\n },\n\n /** Close a toast (plays the exit animation). Omit `id` to dismiss all. */\n dismiss: (id?: string): void => dismiss(id),\n\n /** Instantly remove a toast without the exit animation. */\n remove: (id: string): void => remove(id),\n};\n\n// ── React hook ────────────────────────────────────────────────────────────────\n\n/**\n * Subscribe to the toast store inside a React component.\n * Returns the current list of toasts plus the imperative `toast` API.\n */\nexport function useToast() {\n const [toasts, setToasts] = useState<ToastItem[]>([...store]);\n const mounted = useRef(true);\n\n useEffect(() => {\n mounted.current = true;\n const listener: Listener = (items) => {\n if (mounted.current) setToasts(items);\n };\n listeners.add(listener);\n // Sync any toasts that fired before this component mounted\n setToasts([...store]);\n return () => {\n mounted.current = false;\n listeners.delete(listener);\n };\n }, []);\n\n return {\n toasts,\n toast,\n dismiss: useCallback((id?: string) => dismiss(id), []),\n remove: useCallback((id: string) => remove(id), []),\n };\n}\n","'use client';\n\nimport * as React from 'react';\nimport {\n CheckCircle2,\n XCircle,\n AlertTriangle,\n Info,\n Loader2,\n RotateCcw,\n} from '@structyl/icons';\nimport { Toast as ToastPrimitive } from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\nimport { Root, Action, Close, Title, Description } from './toast-root';\nimport { useToast } from './use-toast';\nimport type { ToastHorizontal, ToastVariant, ToastVertical } from './use-toast';\n\n// ── Position helpers ──────────────────────────────────────────────────────────\n\nfunction getViewportClasses(h: ToastHorizontal, v: ToastVertical): string {\n const hClass = h === 'left' ? 'left-4' : h === 'right' ? 'right-4' : 'left-1/2 -translate-x-1/2';\n const vClass = v === 'top' ? 'top-4' : 'bottom-4';\n const flex = v === 'top' ? 'flex-col' : 'flex-col-reverse';\n return `${vClass} ${hClass} ${flex}`;\n}\n\nfunction getSwipeDir(h: ToastHorizontal, v: ToastVertical): 'left' | 'right' | 'up' | 'down' {\n if (h === 'left') return 'left';\n if (h === 'right') return 'right';\n return v === 'top' ? 'up' : 'down';\n}\n\n// ── Variant → Icon ────────────────────────────────────────────────────────────\n\nconst ICONS: Partial<Record<ToastVariant, React.ElementType>> = {\n success: CheckCircle2,\n error: XCircle,\n warning: AlertTriangle,\n info: Info,\n loading: Loader2,\n};\n\n// Map the internal 'error' variant to the styled 'destructive' class\ntype StyledVariant = React.ComponentProps<typeof Root>['variant'];\n\nfunction toStyleVariant(v: ToastVariant): StyledVariant {\n if (v === 'error') return 'destructive';\n if (v === 'default' || v === 'loading') return 'default';\n return v as StyledVariant;\n}\n\n// ── ToasterProps ──────────────────────────────────────────────────────────────\n\nexport interface ToasterProps {\n /**\n * Horizontal alignment of toasts.\n * @default 'right'\n */\n horizontal?: ToastHorizontal;\n /**\n * Vertical alignment of toasts.\n * @default 'bottom'\n */\n vertical?: ToastVertical;\n /**\n * Maximum number of toasts visible at once.\n * @default 5\n */\n maxToasts?: number;\n /** Extra classes forwarded to the viewport wrapper. */\n className?: string;\n}\n\n// ── Toaster ───────────────────────────────────────────────────────────────────\n\n/**\n * Drop `<Toaster />` once in your app root (e.g. inside your root layout).\n * Then call `toast.success(...)`, `toast.error(...)` etc. from anywhere.\n *\n * Each toast can override the default placement via `horizontal` / `vertical` options.\n *\n * @example\n * // layout.tsx\n * import { Toaster } from '@structyl/styled';\n * export default function RootLayout({ children }) {\n * return <html><body>{children}<Toaster /></body></html>;\n * }\n *\n * // anywhere.ts\n * import { toast } from '@structyl/styled';\n * toast.success('Saved!');\n * toast.error('Failed', { retry: () => save(), horizontal: 'right', vertical: 'top' });\n */\nexport function Toaster({\n horizontal: defaultH = 'right',\n vertical: defaultV = 'bottom',\n maxToasts = 5,\n className,\n}: ToasterProps) {\n const { toasts, remove } = useToast();\n\n // Group toasts by their resolved (horizontal, vertical) combo\n const groups = React.useMemo(() => {\n const map = new Map<string, { h: ToastHorizontal; v: ToastVertical; items: typeof toasts }>();\n for (const t of toasts) {\n const h = t.horizontal ?? defaultH;\n const v = t.vertical ?? defaultV;\n const key = `${h}-${v}`;\n if (!map.has(key)) map.set(key, { h, v, items: [] });\n map.get(key)!.items.push(t);\n }\n return map;\n }, [toasts, defaultH, defaultV]);\n\n return (\n <>\n {Array.from(groups.values()).map(({ h, v, items }) => (\n <ToastPrimitive.Provider key={`${h}-${v}`} swipeDirection={getSwipeDir(h, v)}>\n {items.slice(0, maxToasts).map(({ id, title, description, variant, open, action, retry, duration }) => {\n const Icon = ICONS[variant];\n const effectiveAction = action ?? (retry ? { label: 'Retry', onClick: retry } : undefined);\n\n return (\n <Root\n key={id}\n open={open}\n onOpenChange={(isOpen) => { if (!isOpen) remove(id); }}\n variant={toStyleVariant(variant)}\n duration={duration}\n >\n <div className=\"flex flex-1 items-start gap-3\">\n {Icon && (\n <Icon\n className={cn(\n 'mt-0.5 h-4 w-4 shrink-0',\n variant === 'loading' && 'animate-spin',\n )}\n aria-hidden\n />\n )}\n <div className=\"grid gap-0.5 min-w-0\">\n {title && <Title>{title}</Title>}\n {description && <Description>{description}</Description>}\n </div>\n </div>\n\n {effectiveAction && (\n <Action altText={effectiveAction.label} onClick={effectiveAction.onClick}>\n {retry && !action && <RotateCcw className=\"mr-1.5 h-3 w-3\" aria-hidden />}\n {effectiveAction.label}\n </Action>\n )}\n\n <Close />\n </Root>\n );\n })}\n\n {/* Each position group gets its own Viewport */}\n <ToastPrimitive.Viewport\n className={cn(\n 'fixed z-[100] flex max-h-screen w-full p-4 md:max-w-[420px] gap-2',\n getViewportClasses(h, v),\n className,\n )}\n />\n </ToastPrimitive.Provider>\n ))}\n </>\n );\n}\n\nToaster.displayName = 'Toaster';\n","'use client';\n\nimport * as React from 'react';\nimport { Check, ChevronRight, Circle } from '@structyl/icons';\nimport { DropdownMenu as DropdownMenuPrimitive } from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\n\nconst Root = DropdownMenuPrimitive.Root;\nconst Trigger = DropdownMenuPrimitive.Trigger;\nconst Group = DropdownMenuPrimitive.Group;\nconst Portal = DropdownMenuPrimitive.Portal;\nconst Sub = DropdownMenuPrimitive.Sub;\nconst RadioGroup = DropdownMenuPrimitive.RadioGroup;\n\nconst menuPanelCls = [\n 'z-50 min-w-[10rem] overflow-hidden rounded-lg border border-border bg-popover/95 backdrop-blur-glass p-1 text-popover-foreground shadow-overlay',\n 'origin-[var(--structyl-popper-transform-origin,center)]',\n 'data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95',\n 'data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95',\n 'data-[side=bottom]:slide-in-from-top-1 data-[side=left]:slide-in-from-right-1',\n 'data-[side=right]:slide-in-from-left-1 data-[side=top]:slide-in-from-bottom-1',\n];\n\nconst menuItemCls = [\n 'relative flex cursor-pointer select-none items-center gap-2 rounded-md px-2 py-1.5 text-sm outline-none',\n 'transition-colors duration-instant',\n 'focus:bg-accent focus:text-accent-foreground',\n 'data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n '[&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-muted-foreground',\n];\n\nconst SubTrigger = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> & { inset?: boolean }\n>(({ className, inset, children, ...props }, ref) => (\n <DropdownMenuPrimitive.SubTrigger\n ref={ref}\n className={cn(...menuItemCls, 'data-[state=open]:bg-accent', inset && 'pl-8', className)}\n {...props}\n >\n {children}\n <ChevronRight className=\"ml-auto h-4 w-4\" />\n </DropdownMenuPrimitive.SubTrigger>\n));\nSubTrigger.displayName = 'DropdownMenu.SubTrigger';\n\nconst SubContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.SubContent\n ref={ref}\n className={cn(...menuPanelCls, className)}\n {...props}\n />\n));\nSubContent.displayName = 'DropdownMenu.SubContent';\n\ntype DropdownMenuContentProps = React.ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.Content\n> & {\n container?: Element | DocumentFragment | null;\n};\n\nconst Content = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Content>,\n DropdownMenuContentProps\n>(({ className, sideOffset = 6, container, ...props }, ref) => (\n <DropdownMenuPrimitive.Portal container={container ?? undefined}>\n <DropdownMenuPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(...menuPanelCls, className)}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n));\nContent.displayName = 'DropdownMenu.Content';\n\nconst Item = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & { inset?: boolean }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Item\n ref={ref}\n className={cn(...menuItemCls, inset && 'pl-8', className)}\n {...props}\n />\n));\nItem.displayName = 'DropdownMenu.Item';\n\nconst CheckboxItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <DropdownMenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(...menuItemCls, 'pl-8', className)}\n checked={checked}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Check className=\"animate-in zoom-in-50 h-4 w-4 duration-150\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n));\nCheckboxItem.displayName = 'DropdownMenu.CheckboxItem';\n\nconst RadioItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <DropdownMenuPrimitive.RadioItem\n ref={ref}\n className={cn(...menuItemCls, 'pl-8', className)}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Circle className=\"animate-in zoom-in-50 h-2 w-2 fill-current duration-150\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n));\nRadioItem.displayName = 'DropdownMenu.RadioItem';\n\nconst Label = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & { inset?: boolean }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Label\n ref={ref}\n className={cn(\n 'text-muted-foreground px-2 py-1.5 text-xs font-semibold uppercase tracking-wide',\n inset && 'pl-8',\n className,\n )}\n {...props}\n />\n));\nLabel.displayName = 'DropdownMenu.Label';\n\nconst Separator = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.Separator\n ref={ref}\n className={cn('bg-border -mx-1 my-1 h-px', className)}\n {...props}\n />\n));\nSeparator.displayName = 'DropdownMenu.Separator';\n\nconst Shortcut: React.FC<React.HTMLAttributes<HTMLSpanElement>> = ({ className, ...props }) => (\n <span\n className={cn('text-muted-foreground/70 ml-auto text-xs tracking-widest', className)}\n {...props}\n />\n);\nShortcut.displayName = 'DropdownMenu.Shortcut';\n\nexport {\n Root,\n Trigger,\n Group,\n Portal,\n Sub,\n SubTrigger,\n SubContent,\n Content,\n Item,\n CheckboxItem,\n RadioGroup,\n RadioItem,\n Label,\n Separator,\n Shortcut,\n};\n","'use client';\n\nimport * as React from 'react';\nimport { Check, ChevronRight, Circle } from '@structyl/icons';\nimport { ContextMenu as ContextMenuPrimitive } from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\n\nconst Root = ContextMenuPrimitive.Root;\nconst Trigger = ContextMenuPrimitive.Trigger;\nconst Group = ContextMenuPrimitive.Group;\nconst Portal = ContextMenuPrimitive.Portal;\nconst Sub = ContextMenuPrimitive.Sub;\nconst RadioGroup = ContextMenuPrimitive.RadioGroup;\n\nconst SubTrigger = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubTrigger> & { inset?: boolean }\n>(({ className, inset, children, ...props }, ref) => (\n <ContextMenuPrimitive.SubTrigger\n ref={ref}\n className={cn(\n 'flex cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none',\n 'focus:bg-accent data-[state=open]:bg-accent',\n inset && 'pl-8',\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ml-auto h-4 w-4\" />\n </ContextMenuPrimitive.SubTrigger>\n));\nSubTrigger.displayName = 'ContextMenu.SubTrigger';\n\nconst SubContent = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.SubContent\n ref={ref}\n className={cn(\n 'z-50 min-w-[8rem] overflow-hidden rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md',\n 'data-[state=open]:animate-in data-[state=closed]:animate-out',\n className,\n )}\n {...props}\n />\n));\nSubContent.displayName = 'ContextMenu.SubContent';\n\nconst Content = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.Portal>\n <ContextMenuPrimitive.Content\n ref={ref}\n className={cn(\n 'z-50 min-w-[8rem] overflow-hidden rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md',\n 'data-[state=open]:animate-in data-[state=closed]:animate-out',\n className,\n )}\n {...props}\n />\n </ContextMenuPrimitive.Portal>\n));\nContent.displayName = 'ContextMenu.Content';\n\nconst Item = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Item> & { inset?: boolean }\n>(({ className, inset, ...props }, ref) => (\n <ContextMenuPrimitive.Item\n ref={ref}\n className={cn(\n 'relative flex cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none',\n 'focus:bg-accent focus:text-accent-foreground',\n 'data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n inset && 'pl-8',\n className,\n )}\n {...props}\n />\n));\nItem.displayName = 'ContextMenu.Item';\n\nconst CheckboxItem = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <ContextMenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n 'relative flex cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none',\n 'focus:bg-accent',\n className,\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <ContextMenuPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.CheckboxItem>\n));\nCheckboxItem.displayName = 'ContextMenu.CheckboxItem';\n\nconst RadioItem = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <ContextMenuPrimitive.RadioItem\n ref={ref}\n className={cn(\n 'relative flex cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none',\n 'focus:bg-accent',\n className,\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <ContextMenuPrimitive.ItemIndicator>\n <Circle className=\"h-2 w-2 fill-current\" />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.RadioItem>\n));\nRadioItem.displayName = 'ContextMenu.RadioItem';\n\nconst Label = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Label> & { inset?: boolean }\n>(({ className, inset, ...props }, ref) => (\n <ContextMenuPrimitive.Label\n ref={ref}\n className={cn('px-2 py-1.5 text-sm font-semibold text-fg', inset && 'pl-8', className)}\n {...props}\n />\n));\nLabel.displayName = 'ContextMenu.Label';\n\nconst Separator = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.Separator ref={ref} className={cn('-mx-1 my-1 h-px bg-border', className)} {...props} />\n));\nSeparator.displayName = 'ContextMenu.Separator';\n\nexport {\n Root,\n Trigger,\n Group,\n Portal,\n Sub,\n SubTrigger,\n SubContent,\n Content,\n Item,\n CheckboxItem,\n RadioGroup,\n RadioItem,\n Label,\n Separator,\n};\n","'use client';\n\nimport * as React from 'react';\nimport { Check, ChevronRight, Circle } from '@structyl/icons';\nimport { Menubar as MenubarPrimitive } from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\n\nconst Menu = MenubarPrimitive.Menu;\nconst Group = MenubarPrimitive.Group;\nconst Portal = MenubarPrimitive.Portal;\nconst Sub = MenubarPrimitive.Sub;\nconst RadioGroup = MenubarPrimitive.RadioGroup;\n\nconst Root = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <MenubarPrimitive.Root\n ref={ref}\n className={cn(\n 'flex h-9 items-center gap-1 rounded-md border border-border bg-bg p-1 shadow-sm',\n className,\n )}\n {...props}\n />\n));\nRoot.displayName = 'Menubar.Root';\n\nconst Trigger = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <MenubarPrimitive.Trigger\n ref={ref}\n className={cn(\n 'flex cursor-pointer select-none items-center rounded-sm px-3 py-1 text-sm font-medium outline-none',\n 'focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground',\n className,\n )}\n {...props}\n />\n));\nTrigger.displayName = 'Menubar.Trigger';\n\nconst Content = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Content>\n>(({ className, sideOffset = 8, ...props }, ref) => (\n <MenubarPrimitive.Portal>\n <MenubarPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n 'z-50 min-w-[12rem] overflow-hidden rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md',\n 'data-[state=open]:animate-in data-[state=closed]:animate-out',\n className,\n )}\n {...props}\n />\n </MenubarPrimitive.Portal>\n));\nContent.displayName = 'Menubar.Content';\n\nconst Item = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Item> & { inset?: boolean }\n>(({ className, inset, ...props }, ref) => (\n <MenubarPrimitive.Item\n ref={ref}\n className={cn(\n 'relative flex cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none',\n 'focus:bg-accent focus:text-accent-foreground',\n 'data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n inset && 'pl-8',\n className,\n )}\n {...props}\n />\n));\nItem.displayName = 'Menubar.Item';\n\nconst CheckboxItem = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <MenubarPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n 'relative flex cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none',\n 'focus:bg-accent',\n className,\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <MenubarPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </MenubarPrimitive.ItemIndicator>\n </span>\n {children}\n </MenubarPrimitive.CheckboxItem>\n));\nCheckboxItem.displayName = 'Menubar.CheckboxItem';\n\nconst RadioItem = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <MenubarPrimitive.RadioItem\n ref={ref}\n className={cn(\n 'relative flex cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none',\n 'focus:bg-accent',\n className,\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <MenubarPrimitive.ItemIndicator>\n <Circle className=\"h-2 w-2 fill-current\" />\n </MenubarPrimitive.ItemIndicator>\n </span>\n {children}\n </MenubarPrimitive.RadioItem>\n));\nRadioItem.displayName = 'Menubar.RadioItem';\n\nconst SubTrigger = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.SubTrigger> & { inset?: boolean }\n>(({ className, inset, children, ...props }, ref) => (\n <MenubarPrimitive.SubTrigger\n ref={ref}\n className={cn(\n 'flex cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none',\n 'focus:bg-accent data-[state=open]:bg-accent',\n inset && 'pl-8',\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ml-auto h-4 w-4\" />\n </MenubarPrimitive.SubTrigger>\n));\nSubTrigger.displayName = 'Menubar.SubTrigger';\n\nconst SubContent = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n <MenubarPrimitive.SubContent\n ref={ref}\n className={cn(\n 'z-50 min-w-[8rem] overflow-hidden rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-lg',\n className,\n )}\n {...props}\n />\n));\nSubContent.displayName = 'Menubar.SubContent';\n\nconst Label = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Label> & { inset?: boolean }\n>(({ className, inset, ...props }, ref) => (\n <MenubarPrimitive.Label\n ref={ref}\n className={cn('px-2 py-1.5 text-sm font-semibold', inset && 'pl-8', className)}\n {...props}\n />\n));\nLabel.displayName = 'Menubar.Label';\n\nconst Separator = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <MenubarPrimitive.Separator ref={ref} className={cn('-mx-1 my-1 h-px bg-border', className)} {...props} />\n));\nSeparator.displayName = 'Menubar.Separator';\n\nexport {\n Root,\n Menu,\n Group,\n Portal,\n Sub,\n RadioGroup,\n Trigger,\n Content,\n Item,\n CheckboxItem,\n RadioItem,\n SubTrigger,\n SubContent,\n Label,\n Separator,\n};\n","'use client';\n\nimport * as React from 'react';\nimport { ChevronDown } from '@structyl/icons';\nimport { NavigationMenu as NavigationMenuPrimitive } from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\n\nconst Root = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Root>\n>(({ className, children, ...props }, ref) => (\n <NavigationMenuPrimitive.Root\n ref={ref}\n className={cn('relative z-10 flex max-w-max flex-1 items-center justify-center', className)}\n {...props}\n >\n {children}\n <Viewport />\n </NavigationMenuPrimitive.Root>\n));\nRoot.displayName = 'NavigationMenu.Root';\n\nconst List = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.List>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.List\n ref={ref}\n className={cn('group flex flex-1 list-none items-center justify-center gap-1', className)}\n {...props}\n />\n));\nList.displayName = 'NavigationMenu.List';\n\nconst Item = NavigationMenuPrimitive.Item;\n\nconst Trigger = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <NavigationMenuPrimitive.Trigger\n ref={ref}\n className={cn(\n 'group inline-flex h-9 w-max cursor-pointer items-center justify-center rounded-md bg-bg px-4 py-2 text-sm font-medium transition-colors',\n 'hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none',\n 'disabled:pointer-events-none disabled:opacity-50 data-[state=open]:bg-accent/50',\n className,\n )}\n {...props}\n >\n {children}{' '}\n <ChevronDown\n className=\"relative top-px ml-1 h-3 w-3 transition duration-200 group-data-[state=open]:rotate-180\"\n aria-hidden=\"true\"\n />\n </NavigationMenuPrimitive.Trigger>\n));\nTrigger.displayName = 'NavigationMenu.Trigger';\n\nconst Content = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.Content\n ref={ref}\n className={cn(\n 'left-0 top-0 w-full data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out',\n 'data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out',\n 'data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52',\n 'data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52',\n 'md:absolute md:w-auto',\n className,\n )}\n {...props}\n />\n));\nContent.displayName = 'NavigationMenu.Content';\n\nconst Link = NavigationMenuPrimitive.Link;\n\nconst Viewport = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Viewport>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Viewport>\n>(({ className, ...props }, ref) => (\n <div className=\"absolute left-0 top-full flex justify-center\">\n <NavigationMenuPrimitive.Viewport\n ref={ref}\n className={cn(\n 'origin-top-center relative mt-1.5 h-[var(--structyl-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border border-border bg-popover text-popover-foreground shadow',\n 'data-[state=open]:animate-in data-[state=closed]:animate-out',\n 'data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]',\n className,\n )}\n {...props}\n />\n </div>\n));\nViewport.displayName = 'NavigationMenu.Viewport';\n\nconst Indicator = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Indicator>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Indicator>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.Indicator\n ref={ref}\n className={cn(\n 'top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden',\n 'data-[state=visible]:animate-in data-[state=hidden]:animate-out',\n 'data-[state=hidden]:fade-out 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.Indicator>\n));\nIndicator.displayName = 'NavigationMenu.Indicator';\n\nexport { Root, List, Item, Trigger, Content, Link, Viewport, Indicator };\n","'use client';\n\nimport * as React from 'react';\nimport { Check, ChevronDown, Plus } from '@structyl/icons';\nimport { MultiSelect as MultiSelectPrimitive } from '@structyl/primitives';\nimport type { MultiSelectOption, MultiSelectSelectedOption } from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\n\nconst Root = MultiSelectPrimitive.Root;\nconst Group = MultiSelectPrimitive.Group;\n\nconst itemClassName = cn(\n 'relative flex w-full cursor-pointer select-none items-center gap-2 rounded-md py-1.5 pl-2 pr-8 text-sm outline-none',\n 'duration-instant transition-colors',\n 'focus:bg-accent focus:text-accent-foreground',\n 'data-[state=checked]:font-medium',\n 'data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n);\n\nconst itemIndicatorClassName = 'absolute right-2 flex h-3.5 w-3.5 items-center justify-center';\n\nconst Trigger = React.forwardRef<\n React.ElementRef<typeof MultiSelectPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof MultiSelectPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <MultiSelectPrimitive.Trigger\n ref={ref}\n className={cn(\n 'border-border bg-bg shadow-xs group flex min-h-9 w-full items-center justify-between gap-2 rounded-md border px-3 py-1.5 text-sm',\n 'duration-snappy ease-smooth transition-[border-color,box-shadow,background-color,transform]',\n 'hover:border-border-strong hover:bg-accent/30',\n 'data-[placeholder]:text-muted-foreground/70',\n 'focus:border-ring focus:ring-ring/30 focus:outline-none focus:ring-2',\n 'data-[state=open]:border-ring data-[state=open]:ring-ring/30 data-[state=open]:ring-2',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n 'active:duration-instant active:scale-[0.98]',\n className,\n )}\n {...props}\n >\n {children}\n <MultiSelectPrimitive.Icon asChild>\n <ChevronDown className=\"text-muted-foreground duration-smooth ease-spring h-4 w-4 shrink-0 transition-transform group-data-[state=open]:rotate-180\" />\n </MultiSelectPrimitive.Icon>\n </MultiSelectPrimitive.Trigger>\n));\nTrigger.displayName = 'MultiSelect.Trigger';\n\ntype MultiSelectValueProps = Omit<\n React.ComponentPropsWithoutRef<typeof MultiSelectPrimitive.Value>,\n 'children'\n> & {\n children?: React.ReactNode | ((selected: MultiSelectSelectedOption[]) => React.ReactNode);\n itemClassName?: string;\n overflowClassName?: string;\n maxVisible?: number;\n};\n\nconst Value = React.forwardRef<\n React.ElementRef<typeof MultiSelectPrimitive.Value>,\n MultiSelectValueProps\n>(\n (\n {\n className,\n children,\n itemClassName: selectedItemClassName,\n overflowClassName,\n maxVisible,\n ...props\n },\n ref,\n ) => (\n <MultiSelectPrimitive.Value\n ref={ref}\n className={cn('flex min-w-0 flex-1 flex-wrap items-center gap-1 text-left', className)}\n {...props}\n >\n {children ??\n ((selected: MultiSelectSelectedOption[]) => {\n const visibleItems =\n typeof maxVisible === 'number' ? selected.slice(0, maxVisible) : selected;\n const overflowCount =\n typeof maxVisible === 'number' ? selected.length - visibleItems.length : 0;\n\n return (\n <>\n {visibleItems.map((option: MultiSelectSelectedOption) => (\n <span\n key={option.value}\n className={cn(\n 'bg-secondary text-secondary-foreground inline-flex max-w-full items-center rounded px-1.5 py-0.5 text-xs font-medium',\n selectedItemClassName,\n )}\n >\n {option.label}\n </span>\n ))}\n {overflowCount > 0 ? (\n <span\n className={cn(\n 'bg-muted text-muted-foreground inline-flex items-center rounded px-1.5 py-0.5 text-xs font-medium',\n overflowClassName,\n )}\n >\n +{overflowCount}\n </span>\n ) : null}\n </>\n );\n })}\n </MultiSelectPrimitive.Value>\n ),\n);\nValue.displayName = 'MultiSelect.Value';\n\nconst SearchInput = React.forwardRef<\n React.ElementRef<typeof MultiSelectPrimitive.SearchInput>,\n React.ComponentPropsWithoutRef<typeof MultiSelectPrimitive.SearchInput>\n>(({ className, placeholder = 'Search options...', ...props }, ref) => (\n <MultiSelectPrimitive.SearchInput\n ref={ref}\n {...props}\n aria-label={props['aria-label'] ?? 'Search options'}\n placeholder={placeholder}\n className={cn(\n 'border-border placeholder:text-muted-foreground h-10 w-full border-b bg-transparent px-3 text-sm outline-none',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n />\n));\nSearchInput.displayName = 'MultiSelect.SearchInput';\n\ntype MultiSelectContentProps = React.ComponentPropsWithoutRef<\n typeof MultiSelectPrimitive.Content\n> & {\n options?: MultiSelectOption[];\n optionHeight?: number;\n optionOverscan?: number;\n optionEmptyMessage?: React.ReactNode;\n renderOption?: (option: MultiSelectOption) => React.ReactNode;\n showCreateItem?: boolean;\n};\n\nconst Content = React.forwardRef<\n React.ElementRef<typeof MultiSelectPrimitive.Content>,\n MultiSelectContentProps\n>(\n (\n {\n className,\n children,\n position = 'popper',\n options,\n optionHeight = 36,\n optionOverscan = 6,\n optionEmptyMessage,\n renderOption,\n showCreateItem = true,\n ...props\n },\n ref,\n ) => (\n <MultiSelectPrimitive.Portal>\n <MultiSelectPrimitive.Content\n ref={ref}\n position={position}\n className={cn(\n 'border-border bg-popover/95 backdrop-blur-glass text-popover-foreground shadow-overlay relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-lg border',\n 'origin-[var(--structyl-popper-transform-origin,center)]',\n 'data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95',\n 'data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95',\n 'data-[side=bottom]:slide-in-from-top-1 data-[side=left]:slide-in-from-right-1',\n 'data-[side=right]:slide-in-from-left-1 data-[side=top]:slide-in-from-bottom-1',\n position === 'popper' &&\n 'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1',\n className,\n )}\n {...props}\n >\n <SearchInput />\n <MultiSelectPrimitive.Viewport\n className={cn(\n 'max-h-80 p-1',\n position === 'popper' && 'w-full min-w-[var(--structyl-popper-anchor-width)]',\n )}\n >\n {options ? (\n <Options\n options={options}\n itemHeight={optionHeight}\n overscan={optionOverscan}\n emptyMessage={optionEmptyMessage}\n renderOption={renderOption}\n />\n ) : (\n children\n )}\n {showCreateItem ? <CreateItem /> : null}\n </MultiSelectPrimitive.Viewport>\n </MultiSelectPrimitive.Content>\n </MultiSelectPrimitive.Portal>\n ),\n);\nContent.displayName = 'MultiSelect.Content';\n\nconst Label = React.forwardRef<\n React.ElementRef<typeof MultiSelectPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof MultiSelectPrimitive.Label>\n>(({ className, ...props }, ref) => (\n <MultiSelectPrimitive.Label\n ref={ref}\n className={cn(\n 'text-muted-foreground px-2 py-1.5 text-xs font-semibold uppercase tracking-wide',\n className,\n )}\n {...props}\n />\n));\nLabel.displayName = 'MultiSelect.Label';\n\nconst Item = React.forwardRef<\n React.ElementRef<typeof MultiSelectPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof MultiSelectPrimitive.Item>\n>(({ className, children, ...props }, ref) => (\n <MultiSelectPrimitive.Item ref={ref} className={cn(itemClassName, className)} {...props}>\n <span className={itemIndicatorClassName}>\n <MultiSelectPrimitive.ItemIndicator>\n <Check className=\"text-primary animate-in zoom-in-50 h-4 w-4 duration-150\" />\n </MultiSelectPrimitive.ItemIndicator>\n </span>\n <MultiSelectPrimitive.ItemText>{children}</MultiSelectPrimitive.ItemText>\n </MultiSelectPrimitive.Item>\n));\nItem.displayName = 'MultiSelect.Item';\n\nconst CreateItem = React.forwardRef<\n React.ElementRef<typeof MultiSelectPrimitive.CreateItem>,\n React.ComponentPropsWithoutRef<typeof MultiSelectPrimitive.CreateItem>\n>(({ className, children, ...props }, ref) => (\n <MultiSelectPrimitive.CreateItem ref={ref} className={cn(itemClassName, className)} {...props}>\n {(value: string) => (\n <>\n <span className=\"text-primary flex h-4 w-4 items-center justify-center\">\n <Plus className=\"h-4 w-4\" aria-hidden=\"true\" />\n </span>\n <span>\n {typeof children === 'function' ? children(value) : (children ?? `Create \"${value}\"`)}\n </span>\n </>\n )}\n </MultiSelectPrimitive.CreateItem>\n));\nCreateItem.displayName = 'MultiSelect.CreateItem';\n\nconst Options = React.forwardRef<\n React.ElementRef<typeof MultiSelectPrimitive.Options>,\n React.ComponentPropsWithoutRef<typeof MultiSelectPrimitive.Options>\n>(\n (\n {\n className,\n itemClassName: optionItemClassName,\n itemIndicatorClassName: optionIndicatorClassName,\n renderItemIndicator,\n ...props\n },\n ref,\n ) => (\n <MultiSelectPrimitive.Options\n ref={ref}\n className={cn('min-h-0', className)}\n itemClassName={cn(itemClassName, optionItemClassName)}\n itemIndicatorClassName={cn(itemIndicatorClassName, optionIndicatorClassName)}\n renderItemIndicator={(option: MultiSelectOption) =>\n renderItemIndicator ? (\n renderItemIndicator(option)\n ) : (\n <Check className=\"text-primary animate-in zoom-in-50 h-4 w-4 duration-150\" />\n )\n }\n {...props}\n />\n ),\n);\nOptions.displayName = 'MultiSelect.Options';\n\nconst Separator = React.forwardRef<\n React.ElementRef<typeof MultiSelectPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof MultiSelectPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <MultiSelectPrimitive.Separator\n ref={ref}\n className={cn('bg-border -mx-1 my-1 h-px', className)}\n {...props}\n />\n));\nSeparator.displayName = 'MultiSelect.Separator';\n\nexport {\n Root,\n Group,\n Value,\n Trigger,\n SearchInput,\n Content,\n Label,\n Item,\n CreateItem,\n Options,\n Separator,\n};\n","'use client';\n\nimport * as React from 'react';\nimport { Check } from '@structyl/icons';\nimport { Combobox as ComboboxPrimitive } from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\n\nconst Root = ComboboxPrimitive.Root;\nconst Group = ComboboxPrimitive.Group;\n\nconst Input = React.forwardRef<\n React.ElementRef<typeof ComboboxPrimitive.Input>,\n React.ComponentPropsWithoutRef<typeof ComboboxPrimitive.Input>\n>(({ className, ...props }, ref) => (\n <ComboboxPrimitive.Input\n ref={ref}\n className={cn(\n 'flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm',\n 'placeholder:text-muted-foreground',\n 'focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n />\n));\nInput.displayName = 'Combobox.Input';\n\nconst Content = React.forwardRef<\n React.ElementRef<typeof ComboboxPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof ComboboxPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <ComboboxPrimitive.Portal>\n <ComboboxPrimitive.Content\n ref={ref}\n className={cn(\n 'z-50 max-h-96 min-w-[8rem] overflow-auto rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md',\n 'data-[state=open]:animate-in data-[state=closed]:animate-out',\n className,\n )}\n {...props}\n />\n </ComboboxPrimitive.Portal>\n));\nContent.displayName = 'Combobox.Content';\n\nconst Item = React.forwardRef<\n React.ElementRef<typeof ComboboxPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof ComboboxPrimitive.Item>\n>(({ className, children, ...props }, ref) => (\n <ComboboxPrimitive.Item\n ref={ref}\n className={cn(\n 'relative flex w-full cursor-pointer select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none',\n 'data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground',\n 'data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n className,\n )}\n {...props}\n >\n {children}\n <span className=\"absolute right-2 flex h-3.5 w-3.5 items-center justify-center\">\n <span className=\"hidden group-data-[state=checked]:block\">\n <Check className=\"h-4 w-4\" />\n </span>\n </span>\n </ComboboxPrimitive.Item>\n));\nItem.displayName = 'Combobox.Item';\n\nconst Empty = React.forwardRef<HTMLDivElement, React.ComponentPropsWithoutRef<'div'>>(\n ({ className, ...props }, ref) => (\n <ComboboxPrimitive.Empty\n ref={ref as never}\n className={cn('py-6 text-center text-sm text-muted-foreground', className)}\n {...props}\n />\n ),\n);\nEmpty.displayName = 'Combobox.Empty';\n\nexport { Root, Group, Input, Content, Item, Empty };\n","'use client';\n\nimport * as React from 'react';\nimport { Search } from '@structyl/icons';\nimport { Command as CommandPrimitive } from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\n\nconst Root = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Root\n ref={ref}\n className={cn(\n 'flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground',\n className,\n )}\n {...props}\n />\n));\nRoot.displayName = 'Command.Root';\n\nconst Input = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Input>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\n>(({ className, ...props }, ref) => (\n <div className=\"flex items-center border-b border-border px-3\" cmdk-input-wrapper=\"\">\n <Search className=\"mr-2 h-4 w-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n ref={ref}\n className={cn(\n 'flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n />\n </div>\n));\nInput.displayName = 'Command.Input';\n\nconst List = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.List\n ref={ref}\n className={cn('max-h-[300px] overflow-y-auto overflow-x-hidden', className)}\n {...props}\n />\n));\nList.displayName = 'Command.List';\n\nconst Empty = React.forwardRef<HTMLDivElement, React.ComponentPropsWithoutRef<'div'>>(\n ({ className, ...props }, ref) => (\n <CommandPrimitive.Empty\n ref={ref as never}\n className={cn('py-6 text-center text-sm', className)}\n {...props}\n />\n ),\n);\nEmpty.displayName = 'Command.Empty';\n\nconst Group = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Group>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Group\n ref={ref}\n className={cn(\n 'overflow-hidden p-1 text-fg [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground',\n className,\n )}\n {...props}\n />\n));\nGroup.displayName = 'Command.Group';\n\nconst Separator = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Separator ref={ref} className={cn('-mx-1 h-px bg-border', className)} {...props} />\n));\nSeparator.displayName = 'Command.Separator';\n\nconst Item = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Item\n ref={ref}\n className={cn(\n 'relative flex cursor-pointer select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none',\n 'data-[selected]:bg-accent data-[selected]:text-accent-foreground',\n 'data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n className,\n )}\n {...props}\n />\n));\nItem.displayName = 'Command.Item';\n\nconst Shortcut: React.FC<React.HTMLAttributes<HTMLSpanElement>> = ({ className, ...props }) => (\n <span className={cn('ml-auto text-xs tracking-widest text-muted-foreground', className)} {...props} />\n);\nShortcut.displayName = 'Command.Shortcut';\n\nconst Loading = CommandPrimitive.Loading;\n\nexport { Root, Input, List, Empty, Group, Item, Separator, Shortcut, Loading };\n","'use client';\n\nimport * as React from 'react';\nimport { Check, ChevronsRight, ChevronsLeft, Plus, X } from '@structyl/icons';\nimport { Structyl as StructylPrimitive } from '@structyl/primitives';\nimport type {\n StructylRatingProps as PrimitiveRatingProps,\n StructylSnackbarProps as PrimitiveSnackbarProps,\n StructylTransferListProps as PrimitiveTransferListProps,\n PopperProps,\n StructylTransitionProps as PrimitiveTransitionProps,\n} from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\nimport { buttonVariants, type ButtonProps } from '../button';\nimport * as Combobox from '../combobox';\n\ntype StructylColor =\n | 'default'\n | 'inherit'\n | 'primary'\n | 'secondary'\n | 'success'\n | 'warning'\n | 'destructive'\n | 'muted'\n | 'transparent';\ntype StructylSize = 'small' | 'medium' | 'large';\ntype StructylSpacing = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 8;\ntype ContainerMaxWidth = false | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full';\ntype GridSize = 'auto' | 'grow' | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\ntype StructylButtonVariant = 'contained' | 'outlined' | 'text';\ntype StructylUiButtonVariant = NonNullable<ButtonProps['variant']>;\ntype StructylButtonSize = NonNullable<ButtonProps['size']>;\n\nconst gapClasses: Record<StructylSpacing, string> = {\n 0: 'gap-0',\n 1: 'gap-1',\n 2: 'gap-2',\n 3: 'gap-3',\n 4: 'gap-4',\n 5: 'gap-5',\n 6: 'gap-6',\n 8: 'gap-8',\n};\n\nconst rowGapClasses: Record<StructylSpacing, string> = {\n 0: 'gap-y-0',\n 1: 'gap-y-1',\n 2: 'gap-y-2',\n 3: 'gap-y-3',\n 4: 'gap-y-4',\n 5: 'gap-y-5',\n 6: 'gap-y-6',\n 8: 'gap-y-8',\n};\n\nconst columnGapClasses: Record<StructylSpacing, string> = {\n 0: 'gap-x-0',\n 1: 'gap-x-1',\n 2: 'gap-x-2',\n 3: 'gap-x-3',\n 4: 'gap-x-4',\n 5: 'gap-x-5',\n 6: 'gap-x-6',\n 8: 'gap-x-8',\n};\n\nconst paddingClasses: Record<StructylSpacing, string> = {\n 0: 'p-0',\n 1: 'p-1',\n 2: 'p-2',\n 3: 'p-3',\n 4: 'p-4',\n 5: 'p-5',\n 6: 'p-6',\n 8: 'p-8',\n};\n\nconst marginClasses: Record<StructylSpacing, string> = {\n 0: 'm-0',\n 1: 'm-1',\n 2: 'm-2',\n 3: 'm-3',\n 4: 'm-4',\n 5: 'm-5',\n 6: 'm-6',\n 8: 'm-8',\n};\n\nconst maxWidthClasses: Record<Exclude<ContainerMaxWidth, false>, string> = {\n xs: 'max-w-screen-sm',\n sm: 'max-w-screen-sm',\n md: 'max-w-screen-md',\n lg: 'max-w-screen-lg',\n xl: 'max-w-screen-xl',\n full: 'max-w-none',\n};\n\nconst gridColumnsClasses: Record<1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12, string> = {\n 1: 'grid-cols-1',\n 2: 'grid-cols-2',\n 3: 'grid-cols-3',\n 4: 'grid-cols-4',\n 5: 'grid-cols-5',\n 6: 'grid-cols-6',\n 7: 'grid-cols-7',\n 8: 'grid-cols-8',\n 9: 'grid-cols-9',\n 10: 'grid-cols-10',\n 11: 'grid-cols-11',\n 12: 'grid-cols-12',\n};\n\nconst gridSpanClasses: Record<Exclude<GridSize, 'auto' | 'grow'>, string> = {\n 1: 'col-span-1',\n 2: 'col-span-2',\n 3: 'col-span-3',\n 4: 'col-span-4',\n 5: 'col-span-5',\n 6: 'col-span-6',\n 7: 'col-span-7',\n 8: 'col-span-8',\n 9: 'col-span-9',\n 10: 'col-span-10',\n 11: 'col-span-11',\n 12: 'col-span-12',\n};\n\nconst smGridSpanClasses: Record<Exclude<GridSize, 'auto' | 'grow'>, string> = {\n 1: 'sm:col-span-1',\n 2: 'sm:col-span-2',\n 3: 'sm:col-span-3',\n 4: 'sm:col-span-4',\n 5: 'sm:col-span-5',\n 6: 'sm:col-span-6',\n 7: 'sm:col-span-7',\n 8: 'sm:col-span-8',\n 9: 'sm:col-span-9',\n 10: 'sm:col-span-10',\n 11: 'sm:col-span-11',\n 12: 'sm:col-span-12',\n};\n\nconst mdGridSpanClasses: Record<Exclude<GridSize, 'auto' | 'grow'>, string> = {\n 1: 'md:col-span-1',\n 2: 'md:col-span-2',\n 3: 'md:col-span-3',\n 4: 'md:col-span-4',\n 5: 'md:col-span-5',\n 6: 'md:col-span-6',\n 7: 'md:col-span-7',\n 8: 'md:col-span-8',\n 9: 'md:col-span-9',\n 10: 'md:col-span-10',\n 11: 'md:col-span-11',\n 12: 'md:col-span-12',\n};\n\nconst lgGridSpanClasses: Record<Exclude<GridSize, 'auto' | 'grow'>, string> = {\n 1: 'lg:col-span-1',\n 2: 'lg:col-span-2',\n 3: 'lg:col-span-3',\n 4: 'lg:col-span-4',\n 5: 'lg:col-span-5',\n 6: 'lg:col-span-6',\n 7: 'lg:col-span-7',\n 8: 'lg:col-span-8',\n 9: 'lg:col-span-9',\n 10: 'lg:col-span-10',\n 11: 'lg:col-span-11',\n 12: 'lg:col-span-12',\n};\n\nconst xlGridSpanClasses: Record<Exclude<GridSize, 'auto' | 'grow'>, string> = {\n 1: 'xl:col-span-1',\n 2: 'xl:col-span-2',\n 3: 'xl:col-span-3',\n 4: 'xl:col-span-4',\n 5: 'xl:col-span-5',\n 6: 'xl:col-span-6',\n 7: 'xl:col-span-7',\n 8: 'xl:col-span-8',\n 9: 'xl:col-span-9',\n 10: 'xl:col-span-10',\n 11: 'xl:col-span-11',\n 12: 'xl:col-span-12',\n};\n\nconst gridResponsiveSpanClasses = {\n sm: smGridSpanClasses,\n md: mdGridSpanClasses,\n lg: lgGridSpanClasses,\n xl: xlGridSpanClasses,\n};\n\nfunction getResponsiveGridSpan(\n breakpoint: keyof typeof gridResponsiveSpanClasses,\n size?: GridSize,\n) {\n if (typeof size === 'number') return gridResponsiveSpanClasses[breakpoint][size];\n if (size === 'auto') {\n if (breakpoint === 'sm') return 'sm:col-auto';\n if (breakpoint === 'md') return 'md:col-auto';\n if (breakpoint === 'lg') return 'lg:col-auto';\n return 'xl:col-auto';\n }\n if (size === 'grow') {\n if (breakpoint === 'sm') return 'sm:col-span-full';\n if (breakpoint === 'md') return 'md:col-span-full';\n if (breakpoint === 'lg') return 'lg:col-span-full';\n return 'xl:col-span-full';\n }\n return undefined;\n}\n\nconst textColorClasses: Record<StructylColor, string> = {\n default: 'text-fg',\n inherit: 'text-inherit',\n primary: 'text-primary',\n secondary: 'text-secondary-foreground',\n success: 'text-success',\n warning: 'text-warning',\n destructive: 'text-destructive',\n muted: 'text-muted-foreground',\n transparent: 'text-transparent',\n};\n\nconst surfaceColorClasses: Record<StructylColor, string> = {\n default: 'bg-bg text-fg',\n inherit: 'bg-inherit text-inherit',\n primary: 'bg-primary text-primary-foreground',\n secondary: 'bg-secondary text-secondary-foreground',\n success: 'bg-success text-success-foreground',\n warning: 'bg-warning text-warning-foreground',\n destructive: 'bg-destructive text-destructive-foreground',\n muted: 'bg-muted text-muted-foreground',\n transparent: 'bg-transparent text-fg',\n};\n\nconst chipOutlineColorClasses: Record<Exclude<StructylColor, 'inherit' | 'transparent'>, string> = {\n default: 'border-border bg-bg text-fg',\n primary: 'border-primary text-primary',\n secondary: 'border-secondary text-secondary-foreground',\n success: 'border-success text-success',\n warning: 'border-warning text-warning',\n destructive: 'border-destructive text-destructive',\n muted: 'border-border text-muted-foreground',\n};\n\nconst elevationClasses: Record<0 | 1 | 2 | 3 | 4 | 5 | 6, string> = {\n 0: 'shadow-none',\n 1: 'shadow-sm',\n 2: 'shadow-md',\n 3: 'shadow-lg',\n 4: 'shadow-xl',\n 5: 'shadow-2xl',\n 6: 'shadow-overlay',\n};\n\nfunction getButtonVariant(\n variant: StructylButtonVariant = 'contained',\n color: StructylColor = 'primary',\n): StructylUiButtonVariant {\n if (variant === 'outlined') return 'outline';\n if (variant === 'text') return color === 'primary' ? 'link' : 'ghost';\n if (color === 'secondary' || color === 'muted') return 'secondary';\n if (color === 'destructive') return 'destructive';\n return 'default';\n}\n\nfunction getButtonSize(size: StructylSize = 'medium'): StructylButtonSize {\n if (size === 'small') return 'sm';\n if (size === 'large') return 'lg';\n return 'default';\n}\n\nconst Box = React.forwardRef<\n React.ElementRef<typeof StructylPrimitive.Box>,\n React.ComponentPropsWithoutRef<typeof StructylPrimitive.Box> & {\n display?: 'block' | 'inline' | 'inline-block' | 'flex' | 'inline-flex' | 'grid' | 'contents';\n padding?: StructylSpacing;\n margin?: StructylSpacing;\n }\n>(({ className, display, padding, margin, ...props }, ref) => (\n <StructylPrimitive.Box\n ref={ref}\n className={cn(\n display === 'block' && 'block',\n display === 'inline' && 'inline',\n display === 'inline-block' && 'inline-block',\n display === 'flex' && 'flex',\n display === 'inline-flex' && 'inline-flex',\n display === 'grid' && 'grid',\n display === 'contents' && 'contents',\n padding !== undefined && paddingClasses[padding],\n margin !== undefined && marginClasses[margin],\n className,\n )}\n {...props}\n />\n));\nBox.displayName = 'Box';\n\nconst Container = React.forwardRef<\n React.ElementRef<typeof StructylPrimitive.Container>,\n React.ComponentPropsWithoutRef<typeof StructylPrimitive.Container> & {\n size?: Exclude<ContainerMaxWidth, false>;\n maxWidth?: ContainerMaxWidth;\n disableGutters?: boolean;\n fixed?: boolean;\n }\n>(({ className, size, maxWidth, disableGutters = false, fixed = false, ...props }, ref) => {\n const resolvedMaxWidth = maxWidth ?? size ?? 'lg';\n return (\n <StructylPrimitive.Container\n ref={ref}\n className={cn(\n 'mx-auto w-full',\n !disableGutters && 'px-4 sm:px-6 lg:px-8',\n resolvedMaxWidth === false ? 'max-w-none' : maxWidthClasses[resolvedMaxWidth],\n fixed && 'sm:max-w-screen-sm md:max-w-screen-md lg:max-w-screen-lg xl:max-w-screen-xl',\n className,\n )}\n {...props}\n />\n );\n});\nContainer.displayName = 'Container';\n\nconst Stack = React.forwardRef<\n React.ElementRef<typeof StructylPrimitive.Stack>,\n React.ComponentPropsWithoutRef<typeof StructylPrimitive.Stack> & {\n direction?: 'row' | 'row-reverse' | 'column' | 'column-reverse';\n spacing?: 'none' | 'xs' | 'sm' | 'md' | 'lg' | StructylSpacing;\n divider?: React.ReactNode;\n alignItems?: 'start' | 'center' | 'end' | 'stretch' | 'baseline';\n justifyContent?: 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly';\n flexWrap?: 'nowrap' | 'wrap' | 'wrap-reverse';\n }\n>(\n (\n {\n className,\n direction = 'column',\n spacing = 'md',\n divider,\n alignItems,\n justifyContent,\n flexWrap,\n children,\n ...props\n },\n ref,\n ) => {\n const resolvedSpacing =\n typeof spacing === 'number'\n ? gapClasses[spacing]\n : spacing === 'xs'\n ? 'gap-1'\n : spacing === 'sm'\n ? 'gap-2'\n : spacing === 'lg'\n ? 'gap-6'\n : spacing === 'none'\n ? 'gap-0'\n : 'gap-4';\n const content = divider\n ? React.Children.toArray(children).flatMap((child, index, array) =>\n index < array.length - 1\n ? [\n child,\n React.cloneElement(divider as React.ReactElement, { key: `divider-${index}` }),\n ]\n : [child],\n )\n : children;\n\n return (\n <StructylPrimitive.Stack\n ref={ref}\n className={cn(\n 'flex',\n direction === 'row' && 'flex-row',\n direction === 'row-reverse' && 'flex-row-reverse',\n direction === 'column' && 'flex-col',\n direction === 'column-reverse' && 'flex-col-reverse',\n resolvedSpacing,\n alignItems === 'start' && 'items-start',\n alignItems === 'center' && 'items-center',\n alignItems === 'end' && 'items-end',\n alignItems === 'stretch' && 'items-stretch',\n alignItems === 'baseline' && 'items-baseline',\n justifyContent === 'start' && 'justify-start',\n justifyContent === 'center' && 'justify-center',\n justifyContent === 'end' && 'justify-end',\n justifyContent === 'between' && 'justify-between',\n justifyContent === 'around' && 'justify-around',\n justifyContent === 'evenly' && 'justify-evenly',\n flexWrap === 'nowrap' && 'flex-nowrap',\n flexWrap === 'wrap' && 'flex-wrap',\n flexWrap === 'wrap-reverse' && 'flex-wrap-reverse',\n className,\n )}\n {...props}\n >\n {content}\n </StructylPrimitive.Stack>\n );\n },\n);\nStack.displayName = 'Stack';\n\nconst Grid = React.forwardRef<\n React.ElementRef<typeof StructylPrimitive.Grid>,\n React.ComponentPropsWithoutRef<typeof StructylPrimitive.Grid> & {\n container?: boolean;\n item?: boolean;\n columns?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\n spacing?: StructylSpacing;\n rowSpacing?: StructylSpacing;\n columnSpacing?: StructylSpacing;\n gap?: 'none' | 'sm' | 'md' | 'lg' | StructylSpacing;\n size?: GridSize;\n xs?: GridSize;\n sm?: GridSize;\n md?: GridSize;\n lg?: GridSize;\n xl?: GridSize;\n }\n>(\n (\n {\n className,\n container = true,\n item,\n columns = 12,\n spacing,\n rowSpacing,\n columnSpacing,\n gap = spacing ?? 'md',\n size,\n xs,\n sm,\n md,\n lg,\n xl,\n ...props\n },\n ref,\n ) => {\n void item;\n const resolvedGap =\n typeof gap === 'number'\n ? gapClasses[gap]\n : gap === 'none'\n ? 'gap-0'\n : gap === 'sm'\n ? 'gap-2'\n : gap === 'lg'\n ? 'gap-6'\n : 'gap-4';\n const span = size ?? xs;\n return (\n <StructylPrimitive.Grid\n ref={ref}\n className={cn(\n container && 'grid',\n container && gridColumnsClasses[columns],\n resolvedGap,\n rowSpacing !== undefined && rowGapClasses[rowSpacing],\n columnSpacing !== undefined && columnGapClasses[columnSpacing],\n span === 'auto' && 'col-auto',\n span === 'grow' && 'col-span-full',\n typeof span === 'number' && gridSpanClasses[span],\n getResponsiveGridSpan('sm', sm),\n getResponsiveGridSpan('md', md),\n getResponsiveGridSpan('lg', lg),\n getResponsiveGridSpan('xl', xl),\n className,\n )}\n {...props}\n />\n );\n },\n);\nGrid.displayName = 'Grid';\n\nconst Paper = React.forwardRef<\n React.ElementRef<typeof StructylPrimitive.Paper>,\n React.ComponentPropsWithoutRef<typeof StructylPrimitive.Paper> & {\n elevation?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n variant?: 'elevation' | 'outlined';\n square?: boolean;\n }\n>(({ className, elevation = 1, variant = 'elevation', square = false, ...props }, ref) => (\n <StructylPrimitive.Paper\n ref={ref}\n className={cn(\n 'bg-card text-card-foreground border',\n square ? 'rounded-none' : 'rounded-lg',\n variant === 'outlined' ? 'border-border shadow-none' : 'border-transparent',\n variant === 'elevation' && elevationClasses[elevation],\n className,\n )}\n {...props}\n />\n));\nPaper.displayName = 'Paper';\n\nconst Typography = React.forwardRef<\n React.ElementRef<typeof StructylPrimitive.Typography>,\n React.ComponentPropsWithoutRef<typeof StructylPrimitive.Typography> & {\n variant?:\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'h6'\n | 'subtitle1'\n | 'subtitle2'\n | 'body1'\n | 'body2'\n | 'body'\n | 'small'\n | 'caption'\n | 'button'\n | 'overline'\n | 'muted'\n | 'code';\n align?: 'inherit' | 'left' | 'center' | 'right' | 'justify';\n color?: StructylColor;\n gutterBottom?: boolean;\n noWrap?: boolean;\n paragraph?: boolean;\n }\n>(\n (\n {\n className,\n variant = 'body',\n align,\n color = 'default',\n gutterBottom = false,\n noWrap = false,\n paragraph = false,\n ...props\n },\n ref,\n ) => (\n <StructylPrimitive.Typography\n ref={ref}\n className={cn(\n variant === 'h1' && 'text-4xl font-semibold tracking-tight',\n variant === 'h2' && 'text-3xl font-semibold tracking-tight',\n variant === 'h3' && 'text-2xl font-semibold tracking-tight',\n variant === 'h4' && 'text-xl font-semibold tracking-tight',\n variant === 'h5' && 'text-lg font-semibold tracking-tight',\n variant === 'h6' && 'text-base font-semibold tracking-tight',\n variant === 'subtitle1' && 'text-base font-medium',\n variant === 'subtitle2' && 'text-sm font-medium',\n (variant === 'body' || variant === 'body1') && 'text-sm',\n variant === 'body2' && 'text-xs',\n variant === 'small' && 'text-xs',\n variant === 'caption' && 'text-xs',\n variant === 'button' && 'text-sm font-medium uppercase',\n variant === 'overline' && 'text-xs font-semibold uppercase tracking-widest',\n variant === 'muted' && 'text-muted-foreground text-sm',\n variant === 'code' && 'bg-muted rounded px-1 py-0.5 font-mono text-xs',\n variant !== 'muted' && variant !== 'code' && textColorClasses[color],\n align === 'left' && 'text-left',\n align === 'center' && 'text-center',\n align === 'right' && 'text-right',\n align === 'justify' && 'text-justify',\n gutterBottom && 'mb-2',\n paragraph && 'mb-4 block',\n noWrap && 'block truncate',\n className,\n )}\n {...props}\n />\n ),\n);\nTypography.displayName = 'Typography';\n\nconst Link = React.forwardRef<\n React.ElementRef<typeof StructylPrimitive.Link>,\n React.ComponentPropsWithoutRef<typeof StructylPrimitive.Link> & {\n underline?: 'always' | 'hover' | 'none';\n color?: StructylColor;\n variant?: React.ComponentPropsWithoutRef<typeof Typography>['variant'];\n }\n>(({ className, underline = 'hover', color = 'primary', variant, ...props }, ref) => (\n <StructylPrimitive.Link\n ref={ref}\n className={cn(\n 'focus-visible:ring-ring/40 underline-offset-4 transition-colors focus-visible:outline-none focus-visible:ring-2',\n textColorClasses[color],\n underline === 'always' && 'underline',\n underline === 'hover' && 'hover:underline',\n underline === 'none' && 'no-underline',\n variant === 'body2' && 'text-xs',\n variant === 'button' && 'text-sm font-medium uppercase',\n variant === 'caption' && 'text-xs',\n className,\n )}\n {...props}\n />\n));\nLink.displayName = 'Link';\n\nconst SvgIcon = React.forwardRef<\n React.ElementRef<typeof StructylPrimitive.SvgIcon>,\n React.ComponentPropsWithoutRef<typeof StructylPrimitive.SvgIcon> & {\n color?: StructylColor;\n fontSize?: 'inherit' | StructylSize;\n titleAccess?: string;\n }\n>(({ className, color = 'inherit', fontSize = 'medium', titleAccess, title, ...props }, ref) => (\n <StructylPrimitive.SvgIcon\n ref={ref}\n title={title ?? titleAccess}\n className={cn(\n 'shrink-0 fill-current',\n fontSize === 'inherit' && 'size-[1em]',\n fontSize === 'small' && 'size-4',\n fontSize === 'medium' && 'size-5',\n fontSize === 'large' && 'size-7',\n textColorClasses[color],\n className,\n )}\n {...props}\n />\n));\nSvgIcon.displayName = 'SvgIcon';\n\nconst Chart = React.forwardRef<\n React.ElementRef<typeof StructylPrimitive.Chart>,\n React.ComponentPropsWithoutRef<typeof StructylPrimitive.Chart>\n>(({ className, ...props }, ref) => (\n <StructylPrimitive.Chart\n ref={ref}\n className={cn(\n 'text-primary border-border bg-card h-36 w-full rounded-md border p-3',\n className,\n )}\n {...props}\n />\n));\nChart.displayName = 'Chart';\n\ninterface ChipProps extends React.ComponentPropsWithoutRef<typeof StructylPrimitive.ChipRoot> {\n label?: React.ReactNode;\n onDelete?: () => void;\n deleteIcon?: React.ReactNode;\n icon?: React.ReactNode;\n avatar?: React.ReactNode;\n variant?: 'filled' | 'outlined' | 'default' | 'secondary' | 'outline';\n color?: Exclude<StructylColor, 'inherit' | 'transparent'>;\n size?: Exclude<StructylSize, 'large'>;\n clickable?: boolean;\n disabled?: boolean;\n}\n\nconst Chip = React.forwardRef<React.ElementRef<typeof StructylPrimitive.ChipRoot>, ChipProps>(\n (\n {\n className,\n label,\n children,\n onDelete,\n deleteIcon,\n icon,\n avatar,\n variant = 'filled',\n color = 'default',\n size = 'medium',\n clickable = false,\n disabled = false,\n tabIndex,\n ...props\n },\n ref,\n ) => (\n <StructylPrimitive.ChipRoot\n ref={ref}\n role={clickable ? 'button' : props.role}\n tabIndex={clickable && !disabled ? (tabIndex ?? 0) : tabIndex}\n data-clickable={clickable ? '' : undefined}\n data-disabled={disabled ? '' : undefined}\n className={cn(\n 'inline-flex max-w-full items-center gap-1 rounded-full border font-medium transition-colors',\n 'focus-visible:ring-ring/40 focus-visible:outline-none focus-visible:ring-2',\n clickable && 'cursor-pointer hover:brightness-95',\n disabled && 'pointer-events-none opacity-50',\n size === 'small' ? 'h-6 px-2 text-[11px]' : 'h-7 px-2.5 text-xs',\n (variant === 'outlined' || variant === 'outline') && chipOutlineColorClasses[color],\n (variant === 'filled' || variant === 'default' || variant === 'secondary') &&\n color === 'default' &&\n 'bg-muted text-fg border-transparent',\n (variant === 'filled' || variant === 'default') &&\n color !== 'default' &&\n `border-transparent ${surfaceColorClasses[color]}`,\n variant === 'secondary' && 'bg-secondary text-secondary-foreground border-transparent',\n className,\n )}\n {...props}\n >\n {avatar ? <span className=\"-ml-1 inline-flex shrink-0\">{avatar}</span> : null}\n {icon ? <span className=\"inline-flex shrink-0\">{icon}</span> : null}\n <StructylPrimitive.ChipLabel className=\"truncate\">\n {label ?? children}\n </StructylPrimitive.ChipLabel>\n {onDelete ? (\n <StructylPrimitive.ChipDelete\n aria-label=\"Remove\"\n disabled={disabled}\n className=\"focus-visible:ring-ring rounded-full opacity-70 transition-opacity hover:opacity-100 focus-visible:outline-none focus-visible:ring-2\"\n onClick={onDelete}\n >\n {deleteIcon ?? <X className=\"size-3\" />}\n </StructylPrimitive.ChipDelete>\n ) : null}\n </StructylPrimitive.ChipRoot>\n ),\n);\nChip.displayName = 'Chip';\n\nconst ButtonGroup = React.forwardRef<\n React.ElementRef<typeof StructylPrimitive.ButtonGroup>,\n React.ComponentPropsWithoutRef<typeof StructylPrimitive.ButtonGroup> & {\n orientation?: 'horizontal' | 'vertical';\n variant?: StructylButtonVariant;\n color?: StructylColor;\n size?: StructylSize;\n disabled?: boolean;\n fullWidth?: boolean;\n }\n>(\n (\n {\n className,\n orientation = 'horizontal',\n variant = 'outlined',\n color = 'default',\n size = 'medium',\n disabled,\n fullWidth,\n children,\n ...props\n },\n ref,\n ) => {\n const childVariant = getButtonVariant(variant, color);\n const childSize = getButtonSize(size);\n const content = React.Children.map(children, (child) => {\n if (!React.isValidElement<ButtonProps>(child)) return child;\n return React.cloneElement(child, {\n variant: child.props.variant ?? childVariant,\n size: child.props.size ?? childSize,\n disabled: disabled ?? child.props.disabled,\n className: cn(fullWidth && 'flex-1', child.props.className),\n });\n });\n\n return (\n <StructylPrimitive.ButtonGroup\n ref={ref}\n className={cn(\n 'border-border shadow-xs inline-flex overflow-hidden rounded-md border',\n fullWidth && 'w-full',\n orientation === 'vertical' && 'flex-col',\n '[&>*]:rounded-none [&>*]:border-0',\n orientation === 'horizontal' && '[&>*+*]:border-border [&>*+*]:border-l',\n orientation === 'vertical' && '[&>*+*]:border-border [&>*+*]:border-t',\n className,\n )}\n {...props}\n >\n {content}\n </StructylPrimitive.ButtonGroup>\n );\n },\n);\nButtonGroup.displayName = 'ButtonGroup';\n\ninterface FloatingActionButtonProps extends Omit<ButtonProps, 'size' | 'variant' | 'color'> {\n extended?: boolean;\n variant?: 'circular' | 'extended';\n color?: StructylColor;\n size?: StructylSize;\n}\n\nconst FloatingActionButton = React.forwardRef<HTMLButtonElement, FloatingActionButtonProps>(\n (\n { className, extended, variant = 'circular', color = 'primary', size = 'medium', ...props },\n ref,\n ) => {\n const isExtended = extended ?? variant === 'extended';\n const buttonSize: StructylButtonSize = isExtended\n ? getButtonSize(size)\n : size === 'small'\n ? 'icon-sm'\n : size === 'large'\n ? 'icon-lg'\n : 'icon';\n return (\n <StructylPrimitive.FloatingActionButton\n ref={ref}\n className={cn(\n buttonVariants({ variant: getButtonVariant('contained', color), size: buttonSize }),\n 'rounded-full shadow-lg',\n isExtended && 'px-5',\n className,\n )}\n {...props}\n />\n );\n },\n);\nFloatingActionButton.displayName = 'FloatingActionButton';\n\nconst Fab = FloatingActionButton;\n\nconst Rating = React.forwardRef<\n React.ElementRef<typeof StructylPrimitive.Rating>,\n PrimitiveRatingProps & {\n size?: StructylSize;\n color?: Exclude<StructylColor, 'inherit' | 'transparent'>;\n precision?: number;\n }\n>(({ className, itemClassName, size = 'medium', color = 'primary', precision, ...props }, ref) => (\n <StructylPrimitive.Rating\n ref={ref}\n className={cn('inline-flex items-center gap-0.5', className)}\n itemClassName={cn(\n 'text-muted-foreground inline-flex items-center justify-center rounded transition-colors',\n 'hover:text-primary data-[state=checked]:text-primary',\n size === 'small' && 'size-5 text-base',\n size === 'medium' && 'size-6 text-lg',\n size === 'large' && 'size-8 text-2xl',\n color === 'success' && 'hover:text-success data-[state=checked]:text-success',\n color === 'warning' && 'hover:text-warning data-[state=checked]:text-warning',\n color === 'destructive' && 'hover:text-destructive data-[state=checked]:text-destructive',\n 'focus-visible:ring-ring/40 focus-visible:outline-none focus-visible:ring-2',\n itemClassName,\n )}\n data-precision={precision}\n {...props}\n />\n));\nRating.displayName = 'Rating';\n\nconst Autocomplete = Combobox;\n\nconst TransferList = React.forwardRef<\n React.ElementRef<typeof StructylPrimitive.TransferList>,\n PrimitiveTransferListProps\n>(({ className, ...props }, ref) => (\n <StructylPrimitive.TransferList\n ref={ref}\n className={cn(\n 'grid max-w-xl grid-cols-[1fr_auto_1fr] items-center gap-3',\n '[&_[data-transfer-list-panel]]:border-border [&_[data-transfer-list-panel]]:overflow-hidden [&_[data-transfer-list-panel]]:rounded-md [&_[data-transfer-list-panel]]:border',\n '[&_[data-transfer-list-title]]:border-border [&_[data-transfer-list-title]]:bg-muted/40 [&_[data-transfer-list-title]]:border-b [&_[data-transfer-list-title]]:px-3 [&_[data-transfer-list-title]]:py-2 [&_[data-transfer-list-title]]:text-xs [&_[data-transfer-list-title]]:font-medium',\n '[&_[data-transfer-list-list]]:grid [&_[data-transfer-list-list]]:max-h-56 [&_[data-transfer-list-list]]:min-h-36 [&_[data-transfer-list-list]]:overflow-auto [&_[data-transfer-list-list]]:p-1',\n '[&_[data-transfer-list-label]]:hover:bg-accent [&_[data-transfer-list-label]]:flex [&_[data-transfer-list-label]]:items-center [&_[data-transfer-list-label]]:gap-2 [&_[data-transfer-list-label]]:rounded [&_[data-transfer-list-label]]:px-2 [&_[data-transfer-list-label]]:py-1.5 [&_[data-transfer-list-label]]:text-sm',\n '[&_[data-transfer-list-actions]]:grid [&_[data-transfer-list-actions]]:gap-2',\n '[&_[data-transfer-list-actions]>button]:border-border [&_[data-transfer-list-actions]>button]:rounded-md [&_[data-transfer-list-actions]>button]:border [&_[data-transfer-list-actions]>button]:px-2 [&_[data-transfer-list-actions]>button]:py-1',\n className,\n )}\n {...props}\n />\n));\nTransferList.displayName = 'TransferList';\n\nconst ListRoot = React.forwardRef<\n HTMLUListElement,\n React.ComponentPropsWithoutRef<typeof StructylPrimitive.List.Root> & {\n dense?: boolean;\n disablePadding?: boolean;\n }\n>(({ className, dense = false, disablePadding = false, ...props }, ref) => (\n <StructylPrimitive.List.Root\n ref={ref}\n data-dense={dense ? '' : undefined}\n className={cn('grid gap-1', !disablePadding && 'p-1', dense && 'text-sm', className)}\n {...props}\n />\n));\nListRoot.displayName = 'List.Root';\n\nconst ListItem = React.forwardRef<\n HTMLLIElement,\n React.ComponentPropsWithoutRef<typeof StructylPrimitive.List.Item> & {\n disablePadding?: boolean;\n divider?: boolean;\n }\n>(({ className, disablePadding = false, divider = false, ...props }, ref) => (\n <StructylPrimitive.List.Item\n ref={ref}\n className={cn(\n 'relative list-none',\n !disablePadding && 'px-0 py-0.5',\n divider && 'border-border border-b',\n className,\n )}\n {...props}\n />\n));\nListItem.displayName = 'List.Item';\n\nconst ListItemButton = React.forwardRef<\n HTMLButtonElement,\n React.ComponentPropsWithoutRef<typeof StructylPrimitive.List.ItemButton> & {\n selected?: boolean;\n dense?: boolean;\n alignItems?: 'center' | 'flex-start';\n }\n>(\n (\n { className, selected = false, dense = false, alignItems = 'center', disabled, ...props },\n ref,\n ) => (\n <StructylPrimitive.List.ItemButton\n ref={ref}\n disabled={disabled}\n data-state={selected ? 'selected' : undefined}\n className={cn(\n 'hover:bg-accent focus-visible:ring-ring/40 flex w-full gap-3 rounded-md px-3 text-left text-sm transition-colors focus-visible:outline-none focus-visible:ring-2',\n alignItems === 'center' && 'items-center',\n alignItems === 'flex-start' && 'items-start',\n dense ? 'py-1.5' : 'py-2',\n selected && 'bg-accent text-accent-foreground',\n disabled && 'pointer-events-none opacity-50',\n className,\n )}\n {...props}\n />\n ),\n);\nListItemButton.displayName = 'List.ItemButton';\n\nconst ListItemText = React.forwardRef<\n HTMLSpanElement,\n React.ComponentPropsWithoutRef<typeof StructylPrimitive.List.ItemText> & {\n primary?: React.ReactNode;\n secondary?: React.ReactNode;\n inset?: boolean;\n }\n>(({ className, primary, secondary, inset = false, children, ...props }, ref) => (\n <StructylPrimitive.List.ItemText\n ref={ref}\n className={cn('grid min-w-0 flex-1', inset && 'pl-9', className)}\n {...props}\n >\n {children ?? (\n <>\n {primary ? <span className=\"truncate\">{primary}</span> : null}\n {secondary ? (\n <span className=\"text-muted-foreground truncate text-xs\">{secondary}</span>\n ) : null}\n </>\n )}\n </StructylPrimitive.List.ItemText>\n));\nListItemText.displayName = 'List.ItemText';\n\nconst ListItemIcon = React.forwardRef<\n HTMLSpanElement,\n React.ComponentPropsWithoutRef<typeof StructylPrimitive.List.ItemIcon>\n>(({ className, ...props }, ref) => (\n <StructylPrimitive.List.ItemIcon\n ref={ref}\n className={cn(\n 'text-muted-foreground inline-flex min-w-6 shrink-0 items-center justify-center',\n className,\n )}\n {...props}\n />\n));\nListItemIcon.displayName = 'List.ItemIcon';\n\nconst ListItemAvatar = React.forwardRef<\n HTMLSpanElement,\n React.ComponentPropsWithoutRef<typeof StructylPrimitive.List.ItemAvatar>\n>(({ className, ...props }, ref) => (\n <StructylPrimitive.List.ItemAvatar\n ref={ref}\n className={cn('inline-flex min-w-10 shrink-0 items-center justify-center', className)}\n {...props}\n />\n));\nListItemAvatar.displayName = 'List.ItemAvatar';\n\nconst ListItemSecondaryAction = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof StructylPrimitive.List.ItemSecondaryAction>\n>(({ className, ...props }, ref) => (\n <StructylPrimitive.List.ItemSecondaryAction\n ref={ref}\n className={cn('absolute right-2 top-1/2 -translate-y-1/2', className)}\n {...props}\n />\n));\nListItemSecondaryAction.displayName = 'List.ItemSecondaryAction';\n\nconst ListSubheader = React.forwardRef<\n HTMLLIElement,\n React.ComponentPropsWithoutRef<typeof StructylPrimitive.List.Subheader> & {\n inset?: boolean;\n disableSticky?: boolean;\n }\n>(({ className, inset = false, disableSticky = false, ...props }, ref) => (\n <StructylPrimitive.List.Subheader\n ref={ref}\n className={cn(\n 'bg-bg text-muted-foreground px-3 py-1 text-xs font-semibold uppercase tracking-wide',\n inset && 'pl-12',\n !disableSticky && 'sticky top-0 z-10',\n className,\n )}\n {...props}\n />\n));\nListSubheader.displayName = 'List.Subheader';\n\nconst List = {\n Root: ListRoot,\n Item: ListItem,\n ItemButton: ListItemButton,\n ItemText: ListItemText,\n ItemIcon: ListItemIcon,\n ItemAvatar: ListItemAvatar,\n ItemSecondaryAction: ListItemSecondaryAction,\n Subheader: ListSubheader,\n};\n\nconst ImageListRoot = React.forwardRef<\n HTMLUListElement,\n React.ComponentPropsWithoutRef<typeof StructylPrimitive.ImageList.Root> & {\n cols?: 1 | 2 | 3 | 4 | 5 | 6;\n gap?: StructylSpacing;\n rowHeight?: number | 'auto';\n variant?: 'standard' | 'woven' | 'masonry' | 'quilted';\n }\n>(\n (\n { className, cols = 2, gap = 3, rowHeight = 'auto', variant = 'standard', style, ...props },\n ref,\n ) => {\n const rowHeightStyle =\n typeof rowHeight === 'number'\n ? ({ '--structyl-image-list-row-height': `${rowHeight}px` } as React.CSSProperties)\n : undefined;\n return (\n <StructylPrimitive.ImageList.Root\n ref={ref}\n style={{ ...rowHeightStyle, ...style }}\n className={cn(\n variant === 'masonry' ? 'gap-3 [column-fill:_balance]' : 'grid',\n variant !== 'masonry' && gridColumnsClasses[cols],\n variant === 'masonry' && cols === 2 && 'columns-2',\n variant === 'masonry' && cols === 3 && 'columns-3',\n variant === 'masonry' && cols === 4 && 'columns-4',\n variant === 'masonry' && cols === 5 && 'columns-5',\n variant === 'masonry' && cols === 6 && 'columns-6',\n gapClasses[gap],\n variant === 'woven' && '[&>*:nth-child(even)]:mt-6',\n variant === 'quilted' && '[&>*:first-child]:col-span-2 [&>*:first-child]:row-span-2',\n typeof rowHeight === 'number' &&\n '[&_[data-structyl-image-list-image]]:h-[var(--structyl-image-list-row-height)]',\n className,\n )}\n {...props}\n />\n );\n },\n);\nImageListRoot.displayName = 'ImageList.Root';\n\nconst ImageListItem = React.forwardRef<\n HTMLLIElement,\n React.ComponentPropsWithoutRef<typeof StructylPrimitive.ImageList.Item>\n>(({ className, ...props }, ref) => (\n <StructylPrimitive.ImageList.Item\n ref={ref}\n className={cn(\n 'border-border bg-muted relative list-none overflow-hidden rounded-md border',\n className,\n )}\n {...props}\n />\n));\nImageListItem.displayName = 'ImageList.Item';\n\nconst ImageListImage = React.forwardRef<\n HTMLImageElement,\n React.ComponentPropsWithoutRef<typeof StructylPrimitive.ImageList.Image>\n>(({ className, ...props }, ref) => (\n <StructylPrimitive.ImageList.Image\n ref={ref}\n className={cn('aspect-square w-full object-cover', className)}\n {...props}\n />\n));\nImageListImage.displayName = 'ImageList.Image';\n\nconst ImageListCaption = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof StructylPrimitive.ImageList.Caption>\n>(({ className, ...props }, ref) => (\n <StructylPrimitive.ImageList.Caption\n ref={ref}\n className={cn(\n 'bg-bg/85 absolute inset-x-0 bottom-0 px-2 py-1 text-xs backdrop-blur',\n className,\n )}\n {...props}\n />\n));\nImageListCaption.displayName = 'ImageList.Caption';\n\nconst ImageList = {\n Root: ImageListRoot,\n Item: ImageListItem,\n Image: ImageListImage,\n Caption: ImageListCaption,\n};\n\nconst TableRoot = React.forwardRef<\n HTMLTableElement,\n React.ComponentPropsWithoutRef<typeof StructylPrimitive.Table.Root> & {\n size?: Exclude<StructylSize, 'large'>;\n stickyHeader?: boolean;\n }\n>(({ className, size = 'medium', stickyHeader = false, ...props }, ref) => (\n <StructylPrimitive.Table.Root\n ref={ref}\n data-size={size}\n data-sticky-header={stickyHeader ? '' : undefined}\n className={cn(\n 'w-full caption-bottom text-sm',\n size === 'small' && '[&_td]:py-1 [&_th]:h-8',\n stickyHeader && '[&_thead]:bg-bg [&_thead]:sticky [&_thead]:top-0 [&_thead]:z-10',\n className,\n )}\n {...props}\n />\n));\nTableRoot.displayName = 'Table.Root';\n\nconst TableHeader = React.forwardRef<\n React.ElementRef<typeof StructylPrimitive.Table.Header>,\n React.ComponentPropsWithoutRef<typeof StructylPrimitive.Table.Header>\n>(({ className, ...props }, ref) => (\n <StructylPrimitive.Table.Header\n ref={ref}\n className={cn('[&_tr]:border-b', className)}\n {...props}\n />\n));\nTableHeader.displayName = 'Table.Header';\n\nconst TableBody = React.forwardRef<\n React.ElementRef<typeof StructylPrimitive.Table.Body>,\n React.ComponentPropsWithoutRef<typeof StructylPrimitive.Table.Body>\n>(({ className, ...props }, ref) => (\n <StructylPrimitive.Table.Body\n ref={ref}\n className={cn('[&_tr:last-child]:border-0', className)}\n {...props}\n />\n));\nTableBody.displayName = 'Table.Body';\n\nconst TableFooter = React.forwardRef<\n React.ElementRef<typeof StructylPrimitive.Table.Footer>,\n React.ComponentPropsWithoutRef<typeof StructylPrimitive.Table.Footer>\n>(({ className, ...props }, ref) => (\n <StructylPrimitive.Table.Footer\n ref={ref}\n className={cn('bg-muted/40 border-t font-medium', className)}\n {...props}\n />\n));\nTableFooter.displayName = 'Table.Footer';\n\nconst TableRow = React.forwardRef<\n React.ElementRef<typeof StructylPrimitive.Table.Row>,\n React.ComponentPropsWithoutRef<typeof StructylPrimitive.Table.Row>\n>(({ className, ...props }, ref) => (\n <StructylPrimitive.Table.Row\n ref={ref}\n className={cn('border-border hover:bg-muted/40 border-b transition-colors', className)}\n {...props}\n />\n));\nTableRow.displayName = 'Table.Row';\n\nconst TableHead = React.forwardRef<\n React.ElementRef<typeof StructylPrimitive.Table.Head>,\n React.ComponentPropsWithoutRef<typeof StructylPrimitive.Table.Head>\n>(({ className, ...props }, ref) => (\n <StructylPrimitive.Table.Head\n ref={ref}\n className={cn('text-muted-foreground h-10 px-3 text-left align-middle font-medium', className)}\n {...props}\n />\n));\nTableHead.displayName = 'Table.Head';\n\nconst TableCell = React.forwardRef<\n React.ElementRef<typeof StructylPrimitive.Table.Cell>,\n React.ComponentPropsWithoutRef<typeof StructylPrimitive.Table.Cell>\n>(({ className, ...props }, ref) => (\n <StructylPrimitive.Table.Cell\n ref={ref}\n className={cn('px-3 py-2 align-middle', className)}\n {...props}\n />\n));\nTableCell.displayName = 'Table.Cell';\n\nconst TableCaption = React.forwardRef<\n React.ElementRef<typeof StructylPrimitive.Table.Caption>,\n React.ComponentPropsWithoutRef<typeof StructylPrimitive.Table.Caption>\n>(({ className, ...props }, ref) => (\n <StructylPrimitive.Table.Caption\n ref={ref}\n className={cn('text-muted-foreground mt-4 text-sm', className)}\n {...props}\n />\n));\nTableCaption.displayName = 'Table.Caption';\n\nconst Table = {\n Root: TableRoot,\n Header: TableHeader,\n Body: TableBody,\n Footer: TableFooter,\n Row: TableRow,\n Head: TableHead,\n Cell: TableCell,\n Caption: TableCaption,\n};\n\nconst Backdrop = React.forwardRef<\n React.ElementRef<typeof StructylPrimitive.Backdrop>,\n React.ComponentPropsWithoutRef<typeof StructylPrimitive.Backdrop>\n>(({ className, ...props }, ref) => (\n <StructylPrimitive.Backdrop\n ref={ref}\n className={cn(\n 'bg-fg/45 fixed inset-0 z-40 backdrop-blur-sm',\n 'data-[invisible]:bg-transparent data-[invisible]:backdrop-blur-0',\n className,\n )}\n {...props}\n />\n));\nBackdrop.displayName = 'Backdrop';\n\nconst Snackbar = React.forwardRef<\n React.ElementRef<typeof StructylPrimitive.Snackbar>,\n PrimitiveSnackbarProps\n>(({ className, anchorOrigin = { vertical: 'bottom', horizontal: 'left' }, ...props }, ref) => (\n <StructylPrimitive.Snackbar\n ref={ref}\n anchorOrigin={anchorOrigin}\n className={cn(\n 'border-border bg-popover text-popover-foreground shadow-overlay fixed z-50 flex min-h-11 items-center gap-3 rounded-md border px-4 py-2 text-sm',\n '[&_[data-snackbar-action]]:ml-auto',\n anchorOrigin.vertical === 'top' ? 'top-4' : 'bottom-4',\n anchorOrigin.horizontal === 'left' && 'left-4',\n anchorOrigin.horizontal === 'right' && 'right-4',\n anchorOrigin.horizontal === 'center' && 'left-1/2 -translate-x-1/2',\n className,\n )}\n {...props}\n />\n));\nSnackbar.displayName = 'Snackbar';\n\nconst Modal = React.forwardRef<\n React.ElementRef<typeof StructylPrimitive.Modal>,\n React.ComponentPropsWithoutRef<typeof StructylPrimitive.Modal>\n>(({ className, ...props }, ref) => (\n <StructylPrimitive.Modal\n ref={ref}\n className={cn(\n 'bg-fg/45 fixed inset-0 z-50 grid place-items-center p-4 backdrop-blur-sm',\n className,\n )}\n {...props}\n />\n));\nModal.displayName = 'Modal';\n\nconst AppBar = React.forwardRef<\n React.ElementRef<typeof StructylPrimitive.AppBar>,\n React.ComponentPropsWithoutRef<typeof StructylPrimitive.AppBar> & {\n position?: 'static' | 'sticky' | 'fixed' | 'absolute' | 'relative';\n color?: StructylColor;\n elevation?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n square?: boolean;\n }\n>(\n (\n { className, position = 'static', color = 'default', elevation = 0, square = true, ...props },\n ref,\n ) => (\n <StructylPrimitive.AppBar\n ref={ref}\n className={cn(\n 'border-border z-30 flex h-14 items-center border-b px-4 backdrop-blur',\n surfaceColorClasses[color],\n color === 'default' && 'bg-bg/95',\n !square && 'rounded-md',\n elevationClasses[elevation],\n position === 'sticky' && 'sticky top-0',\n position === 'fixed' && 'fixed inset-x-0 top-0',\n position === 'absolute' && 'absolute inset-x-0 top-0',\n position === 'relative' && 'relative',\n className,\n )}\n {...props}\n />\n ),\n);\nAppBar.displayName = 'AppBar';\n\nconst BottomNavigationRoot = React.forwardRef<\n React.ElementRef<typeof StructylPrimitive.BottomNavigation.Root>,\n React.ComponentPropsWithoutRef<typeof StructylPrimitive.BottomNavigation.Root>\n>(({ className, ...props }, ref) => (\n <StructylPrimitive.BottomNavigation.Root\n ref={ref}\n className={cn('border-border bg-bg flex h-14 items-center justify-around border-t', className)}\n {...props}\n />\n));\nBottomNavigationRoot.displayName = 'BottomNavigation.Root';\n\nconst BottomNavigationItem = React.forwardRef<\n React.ElementRef<typeof StructylPrimitive.BottomNavigation.Item>,\n React.ComponentPropsWithoutRef<typeof StructylPrimitive.BottomNavigation.Item>\n>(({ className, ...props }, ref) => (\n <StructylPrimitive.BottomNavigation.Item\n ref={ref}\n className={cn(\n 'text-muted-foreground flex h-full min-w-16 flex-col items-center justify-center gap-0.5 px-3 text-xs transition-colors',\n 'data-[state=checked]:text-primary hover:text-fg focus-visible:ring-ring/40 focus-visible:outline-none focus-visible:ring-2',\n '[&_[data-bottom-navigation-icon]>svg]:size-4 [&_[data-bottom-navigation-label][data-hidden]]:hidden',\n className,\n )}\n {...props}\n />\n));\nBottomNavigationItem.displayName = 'BottomNavigation.Item';\n\nconst BottomNavigation = {\n Root: BottomNavigationRoot,\n Item: BottomNavigationItem,\n};\n\nconst SpeedDialRoot = React.forwardRef<\n React.ElementRef<typeof StructylPrimitive.SpeedDial.Root>,\n React.ComponentPropsWithoutRef<typeof StructylPrimitive.SpeedDial.Root>\n>(({ className, ...props }, ref) => (\n <StructylPrimitive.SpeedDial.Root\n ref={ref}\n className={cn(\n 'group fixed bottom-6 right-6 z-40 grid gap-2',\n 'data-[direction=down]:justify-items-end data-[direction=up]:justify-items-end',\n 'data-[direction=left]:grid-flow-col data-[direction=left]:items-center',\n 'data-[direction=right]:grid-flow-col data-[direction=right]:items-center',\n className,\n )}\n {...props}\n />\n));\nSpeedDialRoot.displayName = 'SpeedDial.Root';\n\nconst SpeedDialTrigger = React.forwardRef<\n React.ElementRef<typeof StructylPrimitive.SpeedDial.Trigger>,\n React.ComponentPropsWithoutRef<typeof StructylPrimitive.SpeedDial.Trigger>\n>(({ className, children, icon, 'aria-label': ariaLabel, ...props }, ref) => (\n <StructylPrimitive.SpeedDial.Trigger\n ref={ref}\n aria-label={ariaLabel ?? 'Toggle actions'}\n icon={icon ?? <Plus className=\"size-5\" />}\n className={cn(buttonVariants({ size: 'icon-lg' }), 'rounded-full shadow-lg', className)}\n {...props}\n >\n {children}\n </StructylPrimitive.SpeedDial.Trigger>\n));\nSpeedDialTrigger.displayName = 'SpeedDial.Trigger';\n\nconst SpeedDialContent = React.forwardRef<\n React.ElementRef<typeof StructylPrimitive.SpeedDial.Content>,\n React.ComponentPropsWithoutRef<typeof StructylPrimitive.SpeedDial.Content>\n>(({ className, ...props }, ref) => (\n <StructylPrimitive.SpeedDial.Content\n ref={ref}\n className={cn(\n 'grid gap-2',\n 'group-data-[direction=left]:grid-flow-col group-data-[direction=right]:grid-flow-col',\n className,\n )}\n {...props}\n />\n));\nSpeedDialContent.displayName = 'SpeedDial.Content';\n\nconst SpeedDialAction = React.forwardRef<\n React.ElementRef<typeof StructylPrimitive.SpeedDial.Action>,\n React.ComponentPropsWithoutRef<typeof StructylPrimitive.SpeedDial.Action> & {\n tooltipTitle?: React.ReactNode;\n tooltipOpen?: boolean;\n }\n>(({ className, children, tooltipTitle, tooltipOpen = false, ...props }, ref) => (\n <StructylPrimitive.SpeedDial.Action\n ref={ref}\n className={cn(\n buttonVariants({ variant: 'secondary', size: 'icon' }),\n 'group relative rounded-full shadow-md',\n className,\n )}\n {...props}\n >\n {children}\n {tooltipTitle ? (\n <span\n className={cn(\n 'border-border bg-popover text-popover-foreground pointer-events-none absolute right-full top-1/2 mr-2 -translate-y-1/2 whitespace-nowrap rounded-md border px-2 py-1 text-xs opacity-0 shadow-md',\n tooltipOpen && 'opacity-100',\n 'group-hover:opacity-100',\n )}\n >\n {tooltipTitle}\n </span>\n ) : null}\n </StructylPrimitive.SpeedDial.Action>\n));\nSpeedDialAction.displayName = 'SpeedDial.Action';\n\nconst SpeedDial = {\n Root: SpeedDialRoot,\n Trigger: SpeedDialTrigger,\n Content: SpeedDialContent,\n Action: SpeedDialAction,\n};\n\nconst Masonry = React.forwardRef<\n React.ElementRef<typeof StructylPrimitive.Masonry>,\n React.ComponentPropsWithoutRef<typeof StructylPrimitive.Masonry> & {\n columns?: 1 | 2 | 3 | 4 | 5 | 6;\n spacing?: StructylSpacing;\n }\n>(({ className, columns = 3, spacing = 4, ...props }, ref) => (\n <StructylPrimitive.Masonry\n ref={ref}\n className={cn(\n '[column-fill:_balance]',\n gapClasses[spacing],\n columns === 1 && 'columns-1',\n columns === 2 && 'columns-2',\n columns === 3 && 'columns-3',\n columns === 4 && 'columns-4',\n columns === 5 && 'columns-5',\n columns === 6 && 'columns-6',\n spacing === 0 && '[&>*]:mb-0',\n spacing === 1 && '[&>*]:mb-1',\n spacing === 2 && '[&>*]:mb-2',\n spacing === 3 && '[&>*]:mb-3',\n spacing === 4 && '[&>*]:mb-4',\n spacing === 5 && '[&>*]:mb-5',\n spacing === 6 && '[&>*]:mb-6',\n spacing === 8 && '[&>*]:mb-8',\n '[&>*]:break-inside-avoid',\n className,\n )}\n {...props}\n />\n));\nMasonry.displayName = 'Masonry';\n\nconst TimelineRoot = React.forwardRef<\n HTMLUListElement,\n React.ComponentPropsWithoutRef<typeof StructylPrimitive.Timeline.Root> & {\n position?: 'left' | 'right' | 'alternate';\n }\n>(({ className, position = 'right', ...props }, ref) => (\n <StructylPrimitive.Timeline.Root\n ref={ref}\n data-position={position}\n className={cn(\n 'grid gap-4',\n position === 'alternate' &&\n '[&>li:nth-child(even)>[data-structyl-timeline-content]]:row-start-1 [&>li:nth-child(even)]:grid-cols-[1fr_auto]',\n className,\n )}\n {...props}\n />\n));\nTimelineRoot.displayName = 'Timeline.Root';\n\nconst TimelineItem = React.forwardRef<\n HTMLLIElement,\n React.ComponentPropsWithoutRef<typeof StructylPrimitive.Timeline.Item>\n>(({ className, ...props }, ref) => (\n <StructylPrimitive.Timeline.Item\n ref={ref}\n className={cn('grid grid-cols-[auto_1fr] gap-3', className)}\n {...props}\n />\n));\nTimelineItem.displayName = 'Timeline.Item';\n\nconst TimelineSeparator = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof StructylPrimitive.Timeline.Separator>\n>(({ className, ...props }, ref) => (\n <StructylPrimitive.Timeline.Separator\n ref={ref}\n className={cn('grid justify-items-center gap-1', className)}\n {...props}\n />\n));\nTimelineSeparator.displayName = 'Timeline.Separator';\n\nconst TimelineDot = React.forwardRef<\n HTMLSpanElement,\n React.ComponentPropsWithoutRef<typeof StructylPrimitive.Timeline.Dot> & {\n color?: Exclude<StructylColor, 'inherit' | 'transparent'>;\n variant?: 'filled' | 'outlined';\n }\n>(({ className, color = 'primary', variant = 'filled', ...props }, ref) => (\n <StructylPrimitive.Timeline.Dot\n ref={ref}\n className={cn(\n 'size-2.5 rounded-full border',\n variant === 'filled' && color === 'default' && 'border-muted bg-muted',\n variant === 'filled' &&\n color !== 'default' &&\n `border-transparent ${surfaceColorClasses[color]}`,\n variant === 'outlined' && chipOutlineColorClasses[color],\n className,\n )}\n {...props}\n />\n));\nTimelineDot.displayName = 'Timeline.Dot';\n\nconst TimelineContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof StructylPrimitive.Timeline.Content>\n>(({ className, ...props }, ref) => (\n <StructylPrimitive.Timeline.Content\n ref={ref}\n className={cn('pb-4 text-sm', className)}\n {...props}\n />\n));\nTimelineContent.displayName = 'Timeline.Content';\n\nconst Timeline = {\n Root: TimelineRoot,\n Item: TimelineItem,\n Separator: TimelineSeparator,\n Dot: TimelineDot,\n Content: TimelineContent,\n};\n\nconst ClickAwayListener = StructylPrimitive.ClickAwayListener;\nconst NoSsr = StructylPrimitive.NoSsr;\nconst Portal = StructylPrimitive.Portal;\n\nconst Popper = React.forwardRef<HTMLDivElement, PopperProps>(\n (props, ref) => <StructylPrimitive.Popper ref={ref} {...props} />,\n);\nPopper.displayName = 'Popper';\n\nconst TextareaAutosize = React.forwardRef<\n React.ElementRef<typeof StructylPrimitive.TextareaAutosize>,\n React.ComponentPropsWithoutRef<typeof StructylPrimitive.TextareaAutosize>\n>(({ className, ...props }, ref) => (\n <StructylPrimitive.TextareaAutosize\n ref={ref}\n className={cn(\n 'border-border bg-bg shadow-xs flex min-h-9 w-full rounded-md border px-3 py-2 text-sm',\n 'placeholder:text-muted-foreground/70 focus-visible:border-ring focus-visible:ring-ring/30 focus-visible:outline-none focus-visible:ring-2',\n 'disabled:bg-muted/30 disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n />\n));\nTextareaAutosize.displayName = 'TextareaAutosize';\n\nexport type TransitionAnimation =\n | 'fade'\n | 'slide-up'\n | 'slide-down'\n | 'slide-left'\n | 'slide-right'\n | 'zoom'\n | 'grow'\n | 'collapse';\n\nconst TRANSITION_CLASSES: Record<TransitionAnimation, string> = {\n fade:\n 'data-[state=entering]:animate-in data-[state=entering]:fade-in-0 ' +\n 'data-[state=exiting]:animate-out data-[state=exiting]:fade-out-0',\n 'slide-up':\n 'data-[state=entering]:animate-in data-[state=entering]:fade-in-0 data-[state=entering]:slide-in-from-bottom-4 ' +\n 'data-[state=exiting]:animate-out data-[state=exiting]:fade-out-0 data-[state=exiting]:slide-out-to-bottom-4',\n 'slide-down':\n 'data-[state=entering]:animate-in data-[state=entering]:fade-in-0 data-[state=entering]:slide-in-from-top-4 ' +\n 'data-[state=exiting]:animate-out data-[state=exiting]:fade-out-0 data-[state=exiting]:slide-out-to-top-4',\n 'slide-left':\n 'data-[state=entering]:animate-in data-[state=entering]:fade-in-0 data-[state=entering]:slide-in-from-right-4 ' +\n 'data-[state=exiting]:animate-out data-[state=exiting]:fade-out-0 data-[state=exiting]:slide-out-to-right-4',\n 'slide-right':\n 'data-[state=entering]:animate-in data-[state=entering]:fade-in-0 data-[state=entering]:slide-in-from-left-4 ' +\n 'data-[state=exiting]:animate-out data-[state=exiting]:fade-out-0 data-[state=exiting]:slide-out-to-left-4',\n zoom:\n 'data-[state=entering]:animate-in data-[state=entering]:fade-in-0 data-[state=entering]:zoom-in-75 ' +\n 'data-[state=exiting]:animate-out data-[state=exiting]:fade-out-0 data-[state=exiting]:zoom-out-75',\n grow:\n 'data-[state=entering]:animate-in data-[state=entering]:fade-in-0 data-[state=entering]:zoom-in-90 ' +\n 'data-[state=exiting]:animate-out data-[state=exiting]:fade-out-0 data-[state=exiting]:zoom-out-90',\n collapse:\n 'data-[state=entering]:animate-in data-[state=entering]:fade-in-0 data-[state=entering]:slide-in-from-top-2 ' +\n 'data-[state=exiting]:animate-out data-[state=exiting]:fade-out-0 data-[state=exiting]:slide-out-to-top-2',\n};\n\nexport interface TransitionProps extends PrimitiveTransitionProps {\n animation?: TransitionAnimation;\n}\n\nconst Transition = React.forwardRef<HTMLDivElement, TransitionProps>(\n ({ className, animation = 'fade', ...props }, ref) => (\n <StructylPrimitive.Transition\n ref={ref}\n className={cn(\n TRANSITION_CLASSES[animation],\n 'data-[state=exited]:hidden',\n className,\n )}\n {...props}\n />\n ),\n);\nTransition.displayName = 'Transition';\n\nconst CssBaseline = StructylPrimitive.CssBaseline;\nconst InitColorSchemeScript = StructylPrimitive.InitColorSchemeScript;\n\nconst TransferRightIcon = ChevronsRight;\nconst TransferLeftIcon = ChevronsLeft;\nconst SelectedIcon = Check;\n\nexport {\n Box,\n Container,\n Stack,\n Grid,\n Paper,\n Typography,\n Link,\n SvgIcon,\n Chart,\n Chip,\n ButtonGroup,\n FloatingActionButton,\n Fab,\n Rating,\n Autocomplete,\n TransferList,\n TransferRightIcon,\n TransferLeftIcon,\n SelectedIcon,\n List,\n ImageList,\n Table,\n Backdrop,\n Snackbar,\n Modal,\n AppBar,\n BottomNavigation,\n SpeedDial,\n Masonry,\n Timeline,\n ClickAwayListener,\n NoSsr,\n Portal,\n Popper,\n TextareaAutosize,\n Transition,\n CssBaseline,\n InitColorSchemeScript,\n};\n","'use client';\n\nimport * as React from 'react';\nimport { OneTimePasswordField as OtpPrimitive } from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\n\nconst Root = React.forwardRef<\n React.ElementRef<typeof OtpPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof OtpPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <OtpPrimitive.Root ref={ref} className={cn('flex items-center gap-2', className)} {...props} />\n));\nRoot.displayName = 'OneTimePasswordField.Root';\n\nconst Input = React.forwardRef<\n React.ElementRef<typeof OtpPrimitive.Input>,\n React.ComponentPropsWithoutRef<typeof OtpPrimitive.Input>\n>(({ className, ...props }, ref) => (\n <OtpPrimitive.Input\n ref={ref}\n className={cn(\n 'h-10 w-10 rounded-md border border-input bg-transparent text-center text-base shadow-sm',\n 'focus:outline-none focus:ring-1 focus:ring-ring',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n />\n));\nInput.displayName = 'OneTimePasswordField.Input';\n\nconst HiddenInput = OtpPrimitive.HiddenInput;\n\nexport { Root, Input, HiddenInput };\n","'use client';\n\nimport * as React from 'react';\nimport { Eye, EyeOff } from '@structyl/icons';\nimport { PasswordToggleField as PtfPrimitive } from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\n\nconst Root = React.forwardRef<\n React.ElementRef<typeof PtfPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof PtfPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <PtfPrimitive.Root ref={ref} className={cn('relative', className)} {...props} />\n));\nRoot.displayName = 'PasswordToggleField.Root';\n\nconst Input = React.forwardRef<\n React.ElementRef<typeof PtfPrimitive.Input>,\n React.ComponentPropsWithoutRef<typeof PtfPrimitive.Input>\n>(({ className, ...props }, ref) => (\n <PtfPrimitive.Input\n ref={ref}\n className={cn(\n 'flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 pr-9 text-sm shadow-sm',\n 'placeholder:text-muted-foreground',\n 'focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n />\n));\nInput.displayName = 'PasswordToggleField.Input';\n\nconst Toggle = React.forwardRef<\n React.ElementRef<typeof PtfPrimitive.Toggle>,\n React.ComponentPropsWithoutRef<typeof PtfPrimitive.Toggle>\n>(({ className, ...props }, ref) => (\n <PtfPrimitive.Toggle\n ref={ref}\n className={cn(\n 'absolute right-1 top-1/2 -translate-y-1/2 rounded-sm p-1 text-muted-foreground',\n 'hover:text-fg focus:outline-none focus:ring-1 focus:ring-ring',\n className,\n )}\n {...props}\n >\n <PtfPrimitive.Icon\n visible={<EyeOff className=\"h-4 w-4\" />}\n hidden={<Eye className=\"h-4 w-4\" />}\n />\n </PtfPrimitive.Toggle>\n));\nToggle.displayName = 'PasswordToggleField.Toggle';\n\nexport { Root, Input, Toggle };\n","'use client';\n\nimport * as React from 'react';\nimport { Minus, Plus } from '@structyl/icons';\nimport { NumberField as NumberFieldPrimitive } from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\n\nconst Root = React.forwardRef<\n React.ElementRef<typeof NumberFieldPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof NumberFieldPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <NumberFieldPrimitive.Root\n ref={ref}\n className={cn('relative inline-flex h-9 w-32 rounded-md border border-input bg-transparent', className)}\n {...props}\n />\n));\nRoot.displayName = 'NumberField.Root';\n\nconst Input = React.forwardRef<\n React.ElementRef<typeof NumberFieldPrimitive.Input>,\n React.ComponentPropsWithoutRef<typeof NumberFieldPrimitive.Input>\n>(({ className, ...props }, ref) => (\n <NumberFieldPrimitive.Input\n ref={ref}\n className={cn(\n 'h-full w-full bg-transparent px-3 text-sm tabular-nums',\n 'focus:outline-none focus:ring-1 focus:ring-ring',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n />\n));\nInput.displayName = 'NumberField.Input';\n\nconst triggerCls = cn(\n 'inline-flex h-full w-8 items-center justify-center border-l border-input text-muted-foreground',\n 'hover:bg-accent hover:text-fg',\n 'disabled:pointer-events-none disabled:opacity-50',\n);\n\nconst IncrementTrigger = React.forwardRef<\n React.ElementRef<typeof NumberFieldPrimitive.IncrementTrigger>,\n React.ComponentPropsWithoutRef<typeof NumberFieldPrimitive.IncrementTrigger>\n>(({ className, ...props }, ref) => (\n <NumberFieldPrimitive.IncrementTrigger ref={ref} className={cn(triggerCls, className)} {...props}>\n <Plus className=\"h-3.5 w-3.5\" />\n </NumberFieldPrimitive.IncrementTrigger>\n));\nIncrementTrigger.displayName = 'NumberField.IncrementTrigger';\n\nconst DecrementTrigger = React.forwardRef<\n React.ElementRef<typeof NumberFieldPrimitive.DecrementTrigger>,\n React.ComponentPropsWithoutRef<typeof NumberFieldPrimitive.DecrementTrigger>\n>(({ className, ...props }, ref) => (\n <NumberFieldPrimitive.DecrementTrigger ref={ref} className={cn(triggerCls, className)} {...props}>\n <Minus className=\"h-3.5 w-3.5\" />\n </NumberFieldPrimitive.DecrementTrigger>\n));\nDecrementTrigger.displayName = 'NumberField.DecrementTrigger';\n\nexport { Root, Input, IncrementTrigger, DecrementTrigger };\n","'use client';\n\nimport * as React from 'react';\nimport { ChevronLeft, ChevronRight } from '@structyl/icons';\nimport { Calendar as CalendarPrimitive } from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\n\ninterface CalendarProps\n extends React.ComponentPropsWithoutRef<typeof CalendarPrimitive.Root> {\n showOutsideDays?: boolean;\n}\n\nconst Calendar = React.forwardRef<HTMLDivElement, CalendarProps>(\n ({ className, showOutsideDays = true, ...props }, ref) => (\n <CalendarPrimitive.Root\n ref={ref}\n className={cn('p-3 bg-popover text-popover-foreground rounded-md', className)}\n {...props}\n >\n <CalendarPrimitive.Header className=\"flex items-center justify-between mb-2\">\n <CalendarPrimitive.PreviousButton className=\"h-7 w-7 rounded-md p-1 hover:bg-accent\">\n <ChevronLeft className=\"h-4 w-4\" />\n </CalendarPrimitive.PreviousButton>\n <CalendarPrimitive.Heading />\n <CalendarPrimitive.NextButton className=\"h-7 w-7 rounded-md p-1 hover:bg-accent\">\n <ChevronRight className=\"h-4 w-4\" />\n </CalendarPrimitive.NextButton>\n </CalendarPrimitive.Header>\n <CalendarPrimitive.Grid className=\"w-full border-collapse\">\n <CalendarPrimitive.GridHead />\n <CalendarPrimitive.GridBody>\n {(date, { isOutsideMonth }) => {\n if (!showOutsideDays && isOutsideMonth) return null;\n return (\n <CalendarPrimitive.Day\n date={date}\n isOutsideMonth={isOutsideMonth}\n className={cn(\n 'h-8 w-8 cursor-pointer rounded-md text-sm font-normal',\n 'hover:bg-accent focus:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n 'data-[state=selected]:bg-primary data-[state=selected]:text-primary-foreground',\n 'data-[today]:font-semibold',\n 'data-[outside]:text-muted-foreground/40',\n 'data-[in-range]:bg-accent',\n 'data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n )}\n />\n );\n }}\n </CalendarPrimitive.GridBody>\n </CalendarPrimitive.Grid>\n </CalendarPrimitive.Root>\n ),\n);\nCalendar.displayName = 'Calendar';\n\nexport { Calendar };\nexport type { CalendarProps };\n","'use client';\n\nimport * as React from 'react';\nimport { Slot } from '@structyl/core';\nimport { cn } from '@structyl/utils';\nimport { tv, type VariantProps } from 'tailwind-variants';\n\n// ── Variants ──────────────────────────────────────────────────────────────────\n\nexport const typographyVariants = tv({\n base: 'text-fg',\n variants: {\n variant: {\n h1: 'text-variant-h1',\n h2: 'text-variant-h2',\n h3: 'text-variant-h3',\n h4: 'text-variant-h4',\n h5: 'text-variant-h5',\n h6: 'text-variant-h6',\n subtitle1: 'text-variant-subtitle1',\n subtitle2: 'text-variant-subtitle2',\n body1: 'text-variant-body1',\n body2: 'text-variant-body2',\n body3: 'text-variant-body3',\n caption: 'text-variant-caption',\n overline: 'text-variant-overline',\n 'badge-label': 'text-variant-badge-label',\n 'button-lg': 'text-variant-button-lg',\n 'button-md': 'text-variant-button-md',\n 'button-sm': 'text-variant-button-sm',\n 'input-label': 'text-variant-input-label',\n 'helper-text': 'text-variant-helper-text',\n 'table-header': 'text-variant-table-header',\n 'tab-label': 'text-variant-tab-label',\n tooltip: 'text-variant-tooltip',\n code: 'text-variant-code',\n lead: 'text-variant-lead',\n // ── Convenience aliases ──────────────────────────────────────────────\n body: 'text-variant-body1',\n small: 'text-variant-body2',\n muted: 'text-variant-body2 text-muted-foreground',\n },\n color: {\n inherit: 'text-inherit',\n primary: 'text-primary',\n secondary: 'text-fg-secondary',\n muted: 'text-muted-foreground',\n disabled: 'text-fg-disabled',\n error: 'text-destructive',\n warning: 'text-warning',\n info: 'text-info',\n success: 'text-success',\n },\n align: {\n left: 'text-left',\n center: 'text-center',\n right: 'text-right',\n justify: 'text-justify',\n },\n truncate: {\n true: 'truncate',\n },\n noWrap: {\n true: 'whitespace-nowrap',\n },\n gutterBottom: {\n true: 'mb-3',\n },\n paragraph: {\n true: 'mb-4',\n },\n },\n defaultVariants: { variant: 'body1' },\n});\n\n// ── Default element per variant ───────────────────────────────────────────────\n\nconst defaultElementMap: Record<string, React.ElementType> = {\n h1: 'h1',\n h2: 'h2',\n h3: 'h3',\n h4: 'h4',\n h5: 'h5',\n h6: 'h6',\n subtitle1: 'h6',\n subtitle2: 'h6',\n body1: 'p',\n body2: 'p',\n body3: 'p',\n body: 'p',\n small: 'p',\n muted: 'p',\n lead: 'p',\n caption: 'span',\n overline: 'span',\n 'badge-label': 'span',\n 'button-lg': 'span',\n 'button-md': 'span',\n 'button-sm': 'span',\n 'helper-text': 'span',\n 'table-header': 'span',\n 'tab-label': 'span',\n tooltip: 'span',\n 'input-label': 'label',\n code: 'code',\n};\n\n// ── Types ─────────────────────────────────────────────────────────────────────\n\nexport type TypographyVariant = NonNullable<VariantProps<typeof typographyVariants>['variant']>;\nexport type TypographyColor = NonNullable<VariantProps<typeof typographyVariants>['color']>;\n\nexport interface TypographyProps\n extends Omit<React.HTMLAttributes<HTMLElement>, 'color'>,\n VariantProps<typeof typographyVariants> {\n /** Override the rendered element */\n as?: React.ElementType;\n /** Render as child element instead (Slot pattern) */\n asChild?: boolean;\n /** Add a bottom margin (0.75rem) */\n gutterBottom?: boolean;\n /** Add paragraph bottom margin (1rem) */\n paragraph?: boolean;\n /** Text alignment */\n align?: 'left' | 'center' | 'right' | 'justify';\n /** Associates the label with a form control (for use with as=\"label\") */\n htmlFor?: string;\n}\n\n// ── Component ─────────────────────────────────────────────────────────────────\n\nconst Typography = React.forwardRef<HTMLElement, TypographyProps>(\n (\n {\n className,\n variant = 'body1',\n color,\n truncate,\n noWrap,\n gutterBottom,\n paragraph,\n align,\n as,\n asChild = false,\n ...props\n },\n ref,\n ) => {\n const Comp = asChild ? Slot : (as ?? defaultElementMap[variant as string] ?? 'span');\n\n return (\n <Comp\n ref={ref}\n className={cn(\n typographyVariants({ variant, color, truncate, noWrap, gutterBottom, paragraph, align }),\n className,\n )}\n {...props}\n />\n );\n },\n);\nTypography.displayName = 'Typography';\n\nexport { Typography };\n","'use client';\n\nimport * as React from 'react';\nimport { CalendarIcon, ChevronLeft, ChevronRight } from '@structyl/icons';\nimport { Calendar as CalendarPrimitive, DatePicker as DatePickerPrimitive } from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\nimport { buttonVariants } from '../button';\nimport { Calendar as StyledCalendar } from '../calendar';\nimport { Typography } from '../typography';\n\nconst Root = DatePickerPrimitive.Root;\n\nconst Value = DatePickerPrimitive.Value;\nconst Loading = DatePickerPrimitive.Loading;\n\ninterface CalendarProps\n extends React.ComponentPropsWithoutRef<typeof DatePickerPrimitive.Calendar> {\n showOutsideDays?: boolean;\n showDaysOutsideCurrentMonth?: boolean;\n}\n\nconst Calendar = React.forwardRef<HTMLDivElement, CalendarProps>(\n ({ className, showOutsideDays, showDaysOutsideCurrentMonth, ...props }, ref) => (\n <DatePickerPrimitive.Calendar\n ref={ref}\n className={cn('rounded-md bg-popover p-3 text-popover-foreground', className)}\n showDaysOutsideCurrentMonth={showDaysOutsideCurrentMonth ?? showOutsideDays}\n {...props}\n >\n <CalendarPrimitive.Header className=\"mb-2 flex items-center justify-between\">\n <CalendarPrimitive.PreviousButton className=\"inline-flex h-7 w-7 items-center justify-center rounded-md text-muted-foreground hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\">\n <ChevronLeft className=\"h-4 w-4\" />\n </CalendarPrimitive.PreviousButton>\n <CalendarPrimitive.Heading />\n <CalendarPrimitive.NextButton className=\"inline-flex h-7 w-7 items-center justify-center rounded-md text-muted-foreground hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\">\n <ChevronRight className=\"h-4 w-4\" />\n </CalendarPrimitive.NextButton>\n </CalendarPrimitive.Header>\n <CalendarPrimitive.Grid className=\"w-full border-collapse\">\n <CalendarPrimitive.GridHead />\n <CalendarPrimitive.GridBody>\n {(date, { isOutsideMonth }) => {\n if ((showDaysOutsideCurrentMonth ?? showOutsideDays ?? true) === false && isOutsideMonth) {\n return <span className=\"block h-8 w-8\" aria-hidden=\"true\" />;\n }\n\n return (\n <CalendarPrimitive.Day\n date={date}\n isOutsideMonth={isOutsideMonth}\n aria-label={new Intl.DateTimeFormat(props.locale, { dateStyle: 'full' }).format(date)}\n className={cn(\n 'inline-flex h-8 w-8 items-center justify-center rounded-md text-sm font-normal',\n 'hover:bg-accent hover:text-accent-foreground',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n 'data-[state=selected]:bg-primary data-[state=selected]:text-primary-foreground',\n 'data-[today]:font-semibold data-[today]:text-primary',\n 'data-[outside]:text-muted-foreground/40',\n 'data-[in-range]:bg-accent data-[in-range]:text-accent-foreground',\n 'data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n )}\n />\n );\n }}\n </CalendarPrimitive.GridBody>\n </CalendarPrimitive.Grid>\n </DatePickerPrimitive.Calendar>\n ),\n);\nCalendar.displayName = 'DatePicker.Calendar';\n\nconst Trigger = React.forwardRef<\n React.ElementRef<typeof DatePickerPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof DatePickerPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <DatePickerPrimitive.Trigger\n ref={ref}\n className={cn(\n buttonVariants({ variant: 'outline' }),\n 'w-[240px] justify-start text-left font-normal',\n 'disabled:pointer-events-none disabled:opacity-50',\n className,\n )}\n {...props}\n >\n <CalendarIcon className=\"mr-2 h-4 w-4\" />\n {children ?? <DatePickerPrimitive.Value />}\n </DatePickerPrimitive.Trigger>\n));\nTrigger.displayName = 'DatePicker.Trigger';\n\nconst Content = React.forwardRef<\n React.ElementRef<typeof DatePickerPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DatePickerPrimitive.Content> & {\n calendarClassName?: string;\n loading?: boolean;\n showOutsideDays?: boolean;\n showDaysOutsideCurrentMonth?: boolean;\n }\n>(({\n className,\n children,\n align = 'center',\n sideOffset = 6,\n calendarClassName,\n loading,\n showOutsideDays,\n showDaysOutsideCurrentMonth,\n ...props\n}, ref) => (\n <DatePickerPrimitive.Portal>\n <DatePickerPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n 'z-50 rounded-md border border-border bg-popover p-0 text-popover-foreground shadow-md outline-none',\n 'origin-[var(--structyl-popper-transform-origin,center)]',\n 'data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95',\n 'data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95',\n className,\n )}\n {...props}\n >\n {children ?? (\n loading ? (\n <div className=\"p-4 text-sm text-muted-foreground\">\n <DatePickerPrimitive.Loading />\n </div>\n ) : (\n <Calendar\n className={calendarClassName}\n showOutsideDays={showOutsideDays}\n showDaysOutsideCurrentMonth={showDaysOutsideCurrentMonth}\n />\n )\n )}\n </DatePickerPrimitive.Content>\n </DatePickerPrimitive.Portal>\n));\nContent.displayName = 'DatePicker.Content';\n\ninterface DatePickerProps\n extends Omit<React.ComponentPropsWithoutRef<typeof DatePickerPrimitive.Root>, 'children'> {\n className?: string;\n triggerClassName?: string;\n contentClassName?: string;\n calendarClassName?: string;\n label?: React.ReactNode;\n helperText?: React.ReactNode;\n placeholder?: React.ReactNode;\n format?: React.ComponentPropsWithoutRef<typeof DatePickerPrimitive.Root>['format'];\n formatDensity?: React.ComponentPropsWithoutRef<typeof DatePickerPrimitive.Root>['formatDensity'];\n id?: string;\n name?: string;\n required?: boolean;\n error?: boolean;\n showOutsideDays?: boolean;\n}\n\nconst DatePickerRoot = React.forwardRef<HTMLDivElement, DatePickerProps>(\n (\n {\n className,\n triggerClassName,\n contentClassName,\n calendarClassName,\n label,\n helperText,\n placeholder,\n format,\n formatDensity,\n locale,\n id,\n name,\n required,\n error,\n disabled,\n readOnly,\n autoFocus,\n disableOpenPicker,\n loading,\n showOutsideDays,\n showDaysOutsideCurrentMonth,\n ...props\n },\n ref,\n ) => {\n const generatedId = React.useId();\n const triggerId = id ?? generatedId;\n const helperId = helperText ? `${triggerId}-helper` : undefined;\n const labelText = typeof label === 'string' ? label : undefined;\n\n return (\n <Root\n {...props}\n disabled={disabled}\n readOnly={readOnly}\n locale={locale}\n loading={loading}\n >\n <div ref={ref} className={cn('grid w-fit gap-1.5', className)}>\n {label ? (\n <label className=\"text-sm font-medium text-foreground\" htmlFor={triggerId}>\n {label}\n {required ? <span aria-hidden=\"true\"> *</span> : null}\n </label>\n ) : null}\n <Trigger\n id={triggerId}\n name={name}\n disabled={disabled || disableOpenPicker}\n autoFocus={autoFocus}\n aria-invalid={error || undefined}\n aria-describedby={helperId}\n aria-label={labelText ?? 'Choose date'}\n className={triggerClassName}\n >\n <DatePickerPrimitive.Value\n locale={locale}\n format={format}\n formatDensity={formatDensity}\n placeholder={placeholder ?? 'MM/DD/YYYY'}\n />\n </Trigger>\n {helperText ? (\n <Typography\n id={helperId}\n variant=\"muted\"\n className={cn('text-xs', error && 'text-destructive')}\n >\n {helperText}\n </Typography>\n ) : null}\n </div>\n <Content className={contentClassName}>\n {loading ? (\n <div className=\"p-4 text-sm text-muted-foreground\">\n <Loading />\n </div>\n ) : (\n <Calendar\n className={calendarClassName}\n locale={locale}\n showOutsideDays={showOutsideDays}\n showDaysOutsideCurrentMonth={showDaysOutsideCurrentMonth}\n />\n )}\n </Content>\n </Root>\n );\n },\n);\nDatePickerRoot.displayName = 'DatePicker';\n\nconst DatePicker = Object.assign(DatePickerRoot, {\n Root,\n Trigger,\n Content,\n Value,\n Calendar,\n Loading,\n StyledCalendar,\n});\n\nexport { DatePicker, Root, Trigger, Content, Value, Calendar, Loading, StyledCalendar };\nexport type { DatePickerProps, CalendarProps };\n","'use client';\n\nimport * as React from 'react';\nimport { ChevronLeft, ChevronRight, Clock } from '@structyl/icons';\nimport { TimePicker as TimePickerPrimitive } from '@structyl/primitives';\nimport type { PickerChangeContext, TimePickerView, TimeValidationError } from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\nimport { Button } from '../button';\nimport * as Popover from '../popover';\nimport { Typography } from '../typography';\n\ntype PrimitiveRootProps = React.ComponentPropsWithoutRef<typeof TimePickerPrimitive.Root>;\ntype TimePickerValue = PrimitiveRootProps['value'];\ntype TimePickerFormat = PrimitiveRootProps['format'];\n\nconst Root = React.forwardRef<\n React.ElementRef<typeof TimePickerPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof TimePickerPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <TimePickerPrimitive.Root\n ref={ref}\n className={cn(\n 'inline-flex h-9 items-center gap-0.5 rounded-md border border-input bg-transparent px-3 text-sm tabular-nums',\n className,\n )}\n {...props}\n />\n));\nRoot.displayName = 'TimePicker.Root';\n\nconst Segment = React.forwardRef<\n React.ElementRef<typeof TimePickerPrimitive.Segment>,\n React.ComponentPropsWithoutRef<typeof TimePickerPrimitive.Segment>\n>(({ className, ...props }, ref) => (\n <TimePickerPrimitive.Segment\n ref={ref}\n className={cn(\n 'inline-flex h-6 min-w-[1.5ch] items-center justify-center rounded',\n 'hover:bg-accent focus:bg-accent focus:outline-none',\n className,\n )}\n {...props}\n />\n));\nSegment.displayName = 'TimePicker.Segment';\n\nconst Value = TimePickerPrimitive.Value;\n\nconst Separator: React.FC<{ children?: React.ReactNode }> = ({ children = ':' }) => (\n <span className=\"text-muted-foreground\">{children}</span>\n);\nSeparator.displayName = 'TimePicker.Separator';\n\ninterface TimePickerProps extends Omit<PrimitiveRootProps, 'children'> {\n className?: string;\n triggerClassName?: string;\n contentClassName?: string;\n columnClassName?: string;\n label?: React.ReactNode;\n helperText?: React.ReactNode;\n placeholder?: React.ReactNode;\n format?: TimePickerFormat;\n id?: string;\n name?: string;\n required?: boolean;\n error?: boolean;\n}\n\ninterface TimePickerPanelProps extends Omit<React.ComponentPropsWithoutRef<'div'>, 'onChange' | 'title'> {\n value?: Date | null;\n referenceDate?: Date;\n onChange?: (value: Date) => void;\n onAccept?: (value: Date) => void;\n onCancel?: () => void;\n ampm?: boolean;\n views?: TimePickerView[];\n withSeconds?: boolean;\n minutesStep?: number;\n timeSteps?: PrimitiveRootProps['timeSteps'];\n minTime?: Date;\n maxTime?: Date;\n shouldDisableTime?: (value: Date, view: TimePickerView) => boolean;\n skipDisabled?: boolean;\n columnClassName?: string;\n title?: React.ReactNode;\n showActions?: boolean;\n}\n\ntype ClockView = 'hours' | 'minutes' | 'seconds';\ntype Meridiem = 'am' | 'pm';\n\nconst TimePickerPanel = React.forwardRef<HTMLDivElement, TimePickerPanelProps>(\n (\n {\n className,\n columnClassName,\n value,\n referenceDate,\n onChange,\n onAccept,\n onCancel,\n ampm = true,\n views,\n withSeconds,\n minutesStep,\n timeSteps,\n minTime,\n maxTime,\n shouldDisableTime,\n skipDisabled,\n title = 'SELECT TIME',\n showActions = true,\n ...props\n },\n ref,\n ) => {\n const clockViews = React.useMemo(() => getClockViews(views, withSeconds), [views, withSeconds]);\n const [activeView, setActiveView] = React.useState<ClockView>(clockViews[0] ?? 'hours');\n const currentValue = value ?? referenceDate ?? new Date();\n const minuteStep = minutesStep ?? timeSteps?.minutes ?? 1;\n const hourStep = timeSteps?.hours ?? 1;\n const secondStep = timeSteps?.seconds ?? 1;\n\n React.useEffect(() => {\n if (!clockViews.includes(activeView)) {\n setActiveView(clockViews[0] ?? 'hours');\n }\n }, [activeView, clockViews]);\n\n const updatePart = (part: ClockView | 'period', amount: number | Meridiem, advance = true) => {\n const next = new Date(currentValue);\n if (part === 'hours' && typeof amount === 'number') {\n next.setHours(ampm ? to24Hour(amount, next.getHours() >= 12 ? 'pm' : 'am') : amount);\n } else if (part === 'minutes' && typeof amount === 'number') {\n next.setMinutes(amount);\n } else if (part === 'seconds' && typeof amount === 'number') {\n next.setSeconds(amount === 60 ? 0 : amount);\n } else if (part === 'period' && (amount === 'am' || amount === 'pm')) {\n next.setHours(to24Hour(toDisplayHour(next.getHours()), amount));\n }\n next.setMilliseconds(0);\n onChange?.(next);\n if (advance && part !== 'period') {\n const nextView = getAdjacentClockView(clockViews, part, 1);\n if (nextView) {\n setActiveView(nextView);\n } else {\n onAccept?.(next);\n }\n }\n };\n\n const selectedPart = getSelectedClockPart(currentValue, activeView, ampm);\n const values = getClockValues(activeView, {\n ampm,\n hourStep,\n minuteStep,\n secondStep,\n });\n const selectedAngle = getClockAngle(activeView, selectedPart);\n const selectedRadius = getClockRadius(activeView, selectedPart, ampm);\n const clockValues = values.includes(selectedPart)\n ? values\n : [...values, selectedPart].sort((first, second) => first - second);\n const period = currentValue.getHours() >= 12 ? 'pm' : 'am';\n const previousView = getAdjacentClockView(clockViews, activeView, -1);\n const nextView = getAdjacentClockView(clockViews, activeView, 1);\n const hasSeconds = clockViews.includes('seconds');\n const pointerIsDown = React.useRef(false);\n const getValueFromPointer = React.useCallback(\n (e: React.PointerEvent<HTMLDivElement>) => {\n const rect = e.currentTarget.getBoundingClientRect();\n const x = e.clientX - rect.left - rect.width / 2;\n const y = e.clientY - rect.top - rect.height / 2;\n let deg = Math.atan2(x, -y) * (180 / Math.PI);\n if (deg < 0) deg += 360;\n if (activeView === 'hours') {\n if (ampm) {\n const h = Math.round(deg / 30) % 12;\n return h === 0 ? 12 : h;\n }\n // 24h mode: inner ring (0, 13–23) vs outer ring (1–12)\n // threshold at ~77px, midpoint between r=62 (inner) and r=92 (outer)\n const dist = Math.hypot(x, y);\n const isInner = dist < rect.width * 0.344;\n const h12 = Math.round(deg / 30) % 12;\n return isInner ? (h12 === 0 ? 0 : h12 + 12) : (h12 === 0 ? 12 : h12);\n }\n const raw = Math.round(deg / 6) % 60;\n if (activeView === 'minutes') {\n if (minuteStep <= 1) return raw;\n return (Math.round(raw / minuteStep) * minuteStep) % 60;\n }\n // seconds: value 60 represents 0s at the 12-o'clock position\n if (raw === 0) return 60;\n if (secondStep <= 1) return raw;\n const snapped = Math.round(raw / secondStep) * secondStep;\n return snapped === 0 ? 60 : snapped;\n },\n [activeView, ampm, minuteStep, secondStep],\n );\n\n return (\n <div\n ref={ref}\n className={cn(\n 'w-[280px] rounded-md bg-popover p-4 text-popover-foreground shadow-sm',\n className,\n )}\n {...props}\n >\n <div className=\"text-xs font-medium uppercase tracking-[0.18em] text-muted-foreground\">\n {title}\n </div>\n <div className=\"mt-2 flex items-start justify-between gap-3\">\n <div className=\"flex items-baseline text-5xl font-light leading-none tabular-nums\">\n <button\n type=\"button\"\n aria-label=\"Select hours\"\n aria-pressed={activeView === 'hours'}\n className={cn(\n 'rounded-md px-0.5 text-left focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n activeView === 'hours' ? 'text-primary' : 'text-popover-foreground',\n )}\n onClick={() => setActiveView('hours')}\n >\n {pad(ampm ? toDisplayHour(currentValue.getHours()) : currentValue.getHours())}\n </button>\n <span className=\"text-muted-foreground\">:</span>\n <button\n type=\"button\"\n aria-label=\"Select minutes\"\n aria-pressed={activeView === 'minutes'}\n className={cn(\n 'rounded-md px-0.5 text-left focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n activeView === 'minutes' ? 'text-primary' : 'text-popover-foreground',\n )}\n onClick={() => setActiveView('minutes')}\n >\n {pad(currentValue.getMinutes())}\n </button>\n {hasSeconds ? (\n <>\n <span className=\"text-muted-foreground\">:</span>\n <button\n type=\"button\"\n aria-label=\"Select seconds\"\n aria-pressed={activeView === 'seconds'}\n className={cn(\n 'rounded-md px-0.5 text-left focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n activeView === 'seconds' ? 'text-primary' : 'text-popover-foreground',\n )}\n onClick={() => setActiveView('seconds')}\n >\n {pad(currentValue.getSeconds())}\n </button>\n </>\n ) : null}\n </div>\n {ampm ? (\n <div className=\"grid gap-1 pt-0.5 text-base font-semibold\">\n {(['am', 'pm'] as const).map((item) => (\n <button\n key={item}\n type=\"button\"\n aria-label={item === 'am' ? 'AM' : 'PM'}\n aria-pressed={period === item}\n className={cn(\n 'rounded px-2 py-0.5 text-left text-sm font-medium focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n period === item\n ? 'bg-primary text-primary-foreground'\n : 'text-muted-foreground hover:bg-accent hover:text-accent-foreground',\n )}\n onClick={() => updatePart('period', item)}\n >\n {item.toUpperCase()}\n </button>\n ))}\n </div>\n ) : null}\n </div>\n <div className=\"mt-4 flex items-center justify-between\">\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon\"\n aria-label=\"Previous time view\"\n disabled={!previousView}\n className=\"h-8 w-8 text-muted-foreground\"\n onClick={() => previousView && setActiveView(previousView)}\n >\n <ChevronLeft className=\"h-4 w-4\" />\n </Button>\n <span className=\"sr-only\">{getClockViewLabel(activeView)}</span>\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon\"\n aria-label=\"Next time view\"\n disabled={!nextView}\n className=\"h-8 w-8 text-muted-foreground\"\n onClick={() => nextView && setActiveView(nextView)}\n >\n <ChevronRight className=\"h-4 w-4\" />\n </Button>\n </div>\n <div\n role=\"group\"\n aria-label={`${getClockViewLabel(activeView)} clock`}\n className=\"relative mx-auto mt-1 h-56 w-56 cursor-pointer select-none rounded-full bg-muted/30\"\n onPointerDown={(e) => {\n e.preventDefault();\n pointerIsDown.current = true;\n e.currentTarget.setPointerCapture(e.pointerId);\n updatePart(activeView, getValueFromPointer(e), false);\n }}\n onPointerMove={(e) => {\n if (!pointerIsDown.current) return;\n updatePart(activeView, getValueFromPointer(e), false);\n }}\n onPointerUp={() => {\n if (!pointerIsDown.current) return;\n pointerIsDown.current = false;\n const next = getAdjacentClockView(clockViews, activeView, 1);\n if (next) setActiveView(next);\n }}\n onPointerCancel={() => {\n pointerIsDown.current = false;\n }}\n >\n <div\n aria-hidden=\"true\"\n className=\"pointer-events-none absolute left-1/2 top-1/2 z-0 w-0.5 origin-bottom bg-primary\"\n style={{\n height: selectedRadius,\n transform: `translate(-50%, -100%) rotate(${selectedAngle}deg)`,\n }}\n />\n <div\n aria-hidden=\"true\"\n className=\"pointer-events-none absolute left-1/2 top-1/2 z-0 h-2 w-2 -translate-x-1/2 -translate-y-1/2 rounded-full bg-primary\"\n />\n {clockValues.map((item) => {\n const isSelected = item === selectedPart;\n const disabled = !isSelected && isClockPartDisabled({\n current: currentValue,\n view: activeView,\n nextPart: item,\n ampm,\n shouldDisableTime,\n minTime,\n maxTime,\n minuteStep,\n secondStep,\n });\n if (disabled && skipDisabled) return null;\n return (\n <ClockNumber\n key={item}\n active={isSelected}\n ampm={ampm}\n className={columnClassName}\n disabled={disabled}\n value={item}\n view={activeView}\n onSelect={(nextPart) => updatePart(activeView, nextPart)}\n />\n );\n })}\n </div>\n {showActions ? (\n <div className=\"mt-4 flex justify-end gap-2\">\n <Button\n type=\"button\"\n variant=\"ghost\"\n className=\"h-8 px-3 text-xs font-semibold uppercase text-primary\"\n onClick={onCancel}\n >\n Cancel\n </Button>\n <Button\n type=\"button\"\n variant=\"ghost\"\n className=\"h-8 px-3 text-xs font-semibold uppercase text-primary\"\n onClick={() => onAccept?.(currentValue)}\n >\n OK\n </Button>\n </div>\n ) : null}\n </div>\n );\n },\n);\nTimePickerPanel.displayName = 'TimePicker.Panel';\n\nconst TimePickerRoot = React.forwardRef<HTMLDivElement, TimePickerProps>(\n (\n {\n className,\n triggerClassName,\n contentClassName,\n columnClassName,\n label,\n helperText,\n placeholder = 'HH:mm',\n format = { timeStyle: 'short' },\n id,\n name,\n required,\n error,\n value: valueProp,\n defaultValue,\n onChange,\n onValueChange,\n onAccept,\n onError,\n disabled,\n readOnly,\n ampm = true,\n closeOnSelect = false,\n disableOpenPicker,\n minTime,\n maxTime,\n minutesStep,\n shouldDisableTime,\n skipDisabled,\n timeSteps,\n locale,\n referenceDate,\n views,\n ...props\n },\n ref,\n ) => {\n const generatedId = React.useId();\n const triggerId = id ?? generatedId;\n const helperId = helperText ? `${triggerId}-helper` : undefined;\n const labelText = typeof label === 'string' ? label : undefined;\n const isControlled = valueProp !== undefined;\n const [open, setOpen] = React.useState(false);\n const [internalValue, setInternalValue] = React.useState<Date | null>(() =>\n normalizeValue(defaultValue, referenceDate, ampm) ?? null,\n );\n const value = isControlled ? normalizeValue(valueProp, referenceDate, ampm) ?? null : internalValue;\n const minuteStep = minutesStep ?? timeSteps?.minutes ?? 1;\n\n const commit = React.useCallback(\n (nextValue: Date | null) => {\n if (disabled || readOnly) return;\n const validationError = validateTime(nextValue, {\n minTime,\n maxTime,\n minutesStep: minuteStep,\n shouldDisableTime,\n });\n const context: PickerChangeContext<TimeValidationError> = {\n validationError,\n source: 'view',\n };\n if (!isControlled) setInternalValue(nextValue);\n if (nextValue) onValueChange?.(toTimeValue(nextValue, ampm));\n onChange?.(nextValue, context);\n onError?.(validationError, nextValue);\n if (closeOnSelect) {\n onAccept?.(nextValue, context);\n setOpen(false);\n }\n },\n [\n ampm,\n closeOnSelect,\n disabled,\n isControlled,\n maxTime,\n minTime,\n minuteStep,\n onAccept,\n onChange,\n onError,\n onValueChange,\n readOnly,\n shouldDisableTime,\n ],\n );\n\n return (\n <Popover.Root open={open} onOpenChange={setOpen}>\n <div ref={ref} className={cn('grid w-fit gap-1.5', className)}>\n {label ? (\n <label className=\"text-sm font-medium text-foreground\" htmlFor={triggerId} suppressHydrationWarning>\n {label}\n {required ? <span aria-hidden=\"true\"> *</span> : null}\n </label>\n ) : null}\n <Popover.Trigger asChild>\n <Button\n id={triggerId}\n name={name}\n type=\"button\"\n variant=\"outline\"\n disabled={disabled || disableOpenPicker}\n aria-invalid={error || undefined}\n aria-describedby={helperId}\n aria-label={labelText ?? 'Choose time'}\n suppressHydrationWarning\n className={cn(\n 'w-[220px] justify-start text-left font-normal',\n 'disabled:pointer-events-none disabled:opacity-50',\n triggerClassName,\n )}\n >\n <Clock className=\"mr-2 h-4 w-4\" />\n {value ? formatTime(value, format, locale, ampm) : placeholder}\n </Button>\n </Popover.Trigger>\n {helperText ? (\n <Typography\n id={helperId}\n variant=\"muted\"\n className={cn('text-xs', error && 'text-destructive')}\n suppressHydrationWarning\n >\n {helperText}\n </Typography>\n ) : null}\n </div>\n <Popover.Content\n className={cn('w-auto overflow-hidden p-0', contentClassName)}\n align=\"start\"\n >\n <TimePickerPanel\n ampm={ampm}\n columnClassName={columnClassName}\n maxTime={maxTime}\n minTime={minTime}\n minutesStep={minutesStep}\n onAccept={(nextValue) => {\n if (disabled || readOnly) return;\n const validationError = validateTime(nextValue, {\n minTime,\n maxTime,\n minutesStep: minuteStep,\n shouldDisableTime,\n });\n onAccept?.(nextValue, { validationError, source: 'view' });\n setOpen(false);\n }}\n onCancel={() => setOpen(false)}\n onChange={commit}\n referenceDate={referenceDate}\n shouldDisableTime={shouldDisableTime}\n skipDisabled={skipDisabled}\n timeSteps={timeSteps}\n value={value}\n views={views}\n withSeconds={props.withSeconds}\n />\n </Popover.Content>\n </Popover.Root>\n );\n },\n);\nTimePickerRoot.displayName = 'TimePicker';\n\ninterface ClockNumberProps {\n active: boolean;\n ampm: boolean;\n className?: string;\n disabled?: boolean;\n value: number;\n view: ClockView;\n onSelect: (value: number) => void;\n}\n\nfunction ClockNumber({\n active,\n ampm,\n className,\n disabled,\n value,\n view,\n onSelect,\n}: ClockNumberProps) {\n const angle = getClockAngle(view, value);\n const radius = getClockRadius(view, value, ampm);\n const position = getClockPosition(angle, radius);\n const showLabel = active || shouldShowClockLabel(view, value, ampm);\n\n return (\n <button\n type=\"button\"\n aria-label={`${formatClockValue(view, value, ampm)} ${getClockUnitLabel(view)}`}\n aria-pressed={active}\n disabled={disabled}\n className={cn(\n 'absolute z-10 flex -translate-x-1/2 -translate-y-1/2 items-center justify-center rounded-full text-sm tabular-nums transition-colors',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n active\n ? 'h-9 w-9 bg-primary text-primary-foreground'\n : showLabel\n ? 'h-8 w-8 text-popover-foreground hover:bg-accent hover:text-accent-foreground'\n : 'h-4 w-4 text-transparent hover:bg-accent/60',\n disabled && 'pointer-events-none opacity-40',\n className,\n )}\n style={{\n left: position.left,\n top: position.top,\n }}\n onClick={() => onSelect(value)}\n >\n {showLabel ? formatClockValue(view, value, ampm) : ''}\n </button>\n );\n}\n\nfunction getClockViews(views: TimePickerView[] | undefined, withSeconds: boolean | undefined): ClockView[] {\n const fallback: ClockView[] = withSeconds ? ['hours', 'minutes', 'seconds'] : ['hours', 'minutes'];\n if (!views) return fallback;\n const clockViews = views.filter((view): view is ClockView =>\n view === 'hours' || view === 'minutes' || view === 'seconds',\n );\n return clockViews.length ? clockViews : fallback;\n}\n\nfunction getAdjacentClockView(views: ClockView[], current: ClockView, delta: 1 | -1) {\n const index = views.indexOf(current);\n const nextIndex = index + delta;\n return nextIndex >= 0 && nextIndex < views.length ? views[nextIndex] : undefined;\n}\n\nfunction getSelectedClockPart(value: Date, view: ClockView, ampm: boolean) {\n if (view === 'hours') return ampm ? toDisplayHour(value.getHours()) : value.getHours();\n if (view === 'minutes') return value.getMinutes();\n return value.getSeconds() === 0 ? 60 : value.getSeconds();\n}\n\nfunction getClockValues(\n view: ClockView,\n options: {\n ampm: boolean;\n hourStep: number;\n minuteStep: number;\n secondStep: number;\n },\n) {\n if (view === 'hours') {\n return range(options.ampm ? 1 : 0, options.ampm ? 12 : 23, options.hourStep);\n }\n if (view === 'minutes') {\n // All 60 positions so the user can click any minute.\n // Non-step values are disabled via isClockPartDisabled.\n // Non-label values (not divisible by 5) render as tiny invisible dots.\n return range(0, 59, 1);\n }\n // Seconds: all 60 positions (1-60 where 60 maps to 0s at the 12-o'clock position).\n return range(1, 60, 1);\n}\n\nfunction getClockAngle(view: ClockView, value: number) {\n if (view === 'hours') return (value % 12) * 30;\n return (value % 60) * 6;\n}\n\nfunction getClockRadius(view: ClockView, value: number, ampm: boolean) {\n if (view !== 'hours' || ampm) return 92;\n return value === 0 || value > 12 ? 62 : 92;\n}\n\nfunction getClockPosition(angle: number, radius: number) {\n const radians = (angle * Math.PI) / 180;\n const center = 112;\n return {\n left: center + radius * Math.sin(radians),\n top: center - radius * Math.cos(radians),\n };\n}\n\nfunction shouldShowClockLabel(view: ClockView, value: number, _ampm: boolean) {\n if (view === 'hours') return true; // all hours always visible\n return value % 5 === 0; // label at every 5-min/sec mark\n}\n\nfunction formatClockValue(view: ClockView, value: number, ampm: boolean) {\n if (view === 'hours' && ampm) return String(value);\n return pad(value);\n}\n\nfunction getClockViewLabel(view: ClockView) {\n if (view === 'hours') return 'Hours';\n if (view === 'minutes') return 'Minutes';\n return 'Seconds';\n}\n\nfunction getClockUnitLabel(view: ClockView) {\n if (view === 'hours') return 'hours';\n if (view === 'minutes') return 'minutes';\n return 'seconds';\n}\n\nfunction normalizeValue(value: TimePickerValue, referenceDate: Date | undefined, ampm: boolean) {\n if (!value) return undefined;\n if (value instanceof Date) return value;\n const next = new Date(referenceDate ?? new Date());\n next.setHours(ampm ? to24Hour(value.hour, value.period ?? 'am') : value.hour);\n next.setMinutes(value.minute, value.second ?? 0, 0);\n return next;\n}\n\nfunction validateTime(\n value: Date | null,\n options: {\n minTime?: Date;\n maxTime?: Date;\n minutesStep?: number;\n shouldDisableTime?: (value: Date, view: TimePickerView) => boolean;\n },\n): TimeValidationError | null {\n if (!value) return null;\n const time = value.getHours() * 3600 + value.getMinutes() * 60 + value.getSeconds();\n const min = options.minTime\n ? options.minTime.getHours() * 3600 + options.minTime.getMinutes() * 60 + options.minTime.getSeconds()\n : undefined;\n const max = options.maxTime\n ? options.maxTime.getHours() * 3600 + options.maxTime.getMinutes() * 60 + options.maxTime.getSeconds()\n : undefined;\n if (min != null && time < min) return 'minTime';\n if (max != null && time > max) return 'maxTime';\n if (options.minutesStep && options.minutesStep > 1 && value.getMinutes() % options.minutesStep !== 0) {\n return 'minutesStep';\n }\n if (options.shouldDisableTime?.(value, 'hours')) return 'shouldDisableTime';\n if (options.shouldDisableTime?.(value, 'minutes')) return 'shouldDisableTime';\n if (options.shouldDisableTime?.(value, 'seconds')) return 'shouldDisableTime';\n return null;\n}\n\nfunction isClockPartDisabled({\n current,\n view,\n nextPart,\n ampm,\n shouldDisableTime,\n minTime,\n maxTime,\n minuteStep,\n secondStep,\n}: {\n current: Date;\n view: ClockView;\n nextPart: number;\n ampm: boolean;\n shouldDisableTime: ((value: Date, view: TimePickerView) => boolean) | undefined;\n minTime: Date | undefined;\n maxTime: Date | undefined;\n minuteStep: number;\n secondStep: number;\n}) {\n // Disable clock positions that don't align with the configured step.\n if (view === 'minutes' && minuteStep > 1 && nextPart % minuteStep !== 0) return true;\n if (view === 'seconds') {\n const sec = nextPart === 60 ? 0 : nextPart;\n if (secondStep > 1 && sec !== 0 && sec % secondStep !== 0) return true;\n }\n\n const next = new Date(current);\n if (view === 'hours') next.setHours(nextPart);\n if (view === 'hours' && ampm) {\n next.setHours(to24Hour(nextPart, current.getHours() >= 12 ? 'pm' : 'am'));\n }\n if (view === 'minutes') next.setMinutes(nextPart);\n if (view === 'seconds') next.setSeconds(nextPart === 60 ? 0 : nextPart);\n return validateTime(next, { minTime, maxTime, shouldDisableTime }) != null;\n}\n\nfunction toTimeValue(value: Date, ampm: boolean) {\n if (!ampm) {\n return { hour: value.getHours(), minute: value.getMinutes(), second: value.getSeconds() };\n }\n const hour = toDisplayHour(value.getHours());\n return {\n hour,\n minute: value.getMinutes(),\n second: value.getSeconds(),\n period: value.getHours() >= 12 ? ('pm' as const) : ('am' as const),\n };\n}\n\nfunction formatTime(value: Date, format: TimePickerFormat, locale: string | undefined, ampm: boolean) {\n if (typeof format !== 'string') {\n // When ampm=false, force 24h output regardless of locale default\n const intlOptions = ampm ? format : { ...format, hour12: false };\n return new Intl.DateTimeFormat(locale, intlOptions).format(value);\n }\n const timeValue = toTimeValue(value, ampm);\n return format.replace(/HH|H|hh|h|mm|m|ss|s|aa|a/g, (token) => {\n if (token === 'HH') return pad(value.getHours());\n if (token === 'H') return String(value.getHours());\n if (token === 'hh') return pad(timeValue.hour);\n if (token === 'h') return String(timeValue.hour);\n if (token === 'mm') return pad(value.getMinutes());\n if (token === 'm') return String(value.getMinutes());\n if (token === 'ss') return pad(value.getSeconds());\n if (token === 's') return String(value.getSeconds());\n if (token === 'aa') return timeValue.period === 'pm' ? 'pm' : 'am';\n return timeValue.period === 'pm' ? 'PM' : 'AM';\n });\n}\n\nfunction range(start: number, end: number, step: number) {\n const values: number[] = [];\n for (let value = start; value <= end; value += Math.max(step, 1)) {\n values.push(value);\n }\n return values;\n}\n\nfunction toDisplayHour(hour: number) {\n return hour % 12 === 0 ? 12 : hour % 12;\n}\n\nfunction to24Hour(hour: number, period: 'am' | 'pm') {\n return (hour % 12) + (period === 'pm' ? 12 : 0);\n}\n\nfunction pad(value: number) {\n return String(value).padStart(2, '0');\n}\n\nconst TimePicker = Object.assign(TimePickerRoot, {\n Root,\n Segment,\n Separator,\n Value,\n Panel: TimePickerPanel,\n});\n\nexport { TimePicker, Root, Segment, Separator, Value, TimePickerPanel };\nexport type { TimePickerPanelProps, TimePickerProps };\n","'use client';\n\nimport * as React from 'react';\nimport { CalendarIcon, ChevronLeft, ChevronRight } from '@structyl/icons';\nimport {\n Calendar as CalendarPrimitive,\n DateRangePicker as DateRangePickerPrimitive,\n} from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\nimport { buttonVariants } from '../button';\nimport { Calendar as StyledCalendar } from '../calendar';\nimport { Typography } from '../typography';\n\nconst Root = DateRangePickerPrimitive.Root;\n\nconst Value = DateRangePickerPrimitive.Value;\nconst Loading = DateRangePickerPrimitive.Loading;\n\nfunction addMonths(date: Date, amount: number) {\n const next = new Date(date);\n next.setMonth(next.getMonth() + amount);\n return next;\n}\n\nfunction startOfMonth(date: Date) {\n const next = new Date(date);\n next.setDate(1);\n next.setHours(0, 0, 0, 0);\n return next;\n}\n\nfunction formatDayLabel(date: Date, locale?: string) {\n return new Intl.DateTimeFormat(locale, { dateStyle: 'full' }).format(date);\n}\n\ninterface CalendarMonthProps\n extends React.ComponentPropsWithoutRef<typeof DateRangePickerPrimitive.Calendar> {\n showOutsideDays?: boolean;\n showDaysOutsideCurrentMonth?: boolean;\n}\n\nconst CalendarMonth = React.forwardRef<HTMLDivElement, CalendarMonthProps>(\n ({ className, showOutsideDays, showDaysOutsideCurrentMonth, ...props }, ref) => (\n <DateRangePickerPrimitive.Calendar\n ref={ref}\n className={cn('rounded-md bg-popover p-3 text-popover-foreground', className)}\n showDaysOutsideCurrentMonth={showDaysOutsideCurrentMonth ?? showOutsideDays}\n {...props}\n >\n <CalendarPrimitive.Header className=\"mb-2 flex items-center justify-between\">\n <CalendarPrimitive.PreviousButton className=\"inline-flex h-7 w-7 items-center justify-center rounded-md text-muted-foreground hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\">\n <ChevronLeft className=\"h-4 w-4\" />\n </CalendarPrimitive.PreviousButton>\n <CalendarPrimitive.Heading />\n <CalendarPrimitive.NextButton className=\"inline-flex h-7 w-7 items-center justify-center rounded-md text-muted-foreground hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\">\n <ChevronRight className=\"h-4 w-4\" />\n </CalendarPrimitive.NextButton>\n </CalendarPrimitive.Header>\n <CalendarPrimitive.Grid className=\"w-full border-collapse\">\n <CalendarPrimitive.GridHead />\n <CalendarPrimitive.GridBody>\n {(date, { isOutsideMonth }) => {\n if ((showDaysOutsideCurrentMonth ?? showOutsideDays ?? true) === false && isOutsideMonth) {\n return <span className=\"block h-8 w-8\" aria-hidden=\"true\" />;\n }\n\n return (\n <CalendarPrimitive.Day\n date={date}\n isOutsideMonth={isOutsideMonth}\n aria-label={formatDayLabel(date, props.locale)}\n className={cn(\n 'inline-flex h-8 w-8 items-center justify-center rounded-md text-sm font-normal',\n 'hover:bg-accent hover:text-accent-foreground',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n 'data-[state=selected]:bg-primary data-[state=selected]:text-primary-foreground',\n 'data-[today]:font-semibold data-[today]:text-primary',\n 'data-[outside]:text-muted-foreground/40',\n 'data-[in-range]:bg-accent data-[in-range]:text-accent-foreground',\n 'data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n )}\n />\n );\n }}\n </CalendarPrimitive.GridBody>\n </CalendarPrimitive.Grid>\n </DateRangePickerPrimitive.Calendar>\n ),\n);\nCalendarMonth.displayName = 'DateRangePicker.CalendarMonth';\n\ninterface CalendarProps extends Omit<CalendarMonthProps, 'month' | 'onMonthChange'> {\n calendars?: 1 | 2 | 3;\n month?: Date;\n defaultMonth?: Date;\n onMonthChange?: (month: Date) => void;\n}\n\nconst Calendar = React.forwardRef<HTMLDivElement, CalendarProps>(\n (\n {\n calendars = 2,\n className,\n month: monthProp,\n defaultMonth,\n onMonthChange,\n showOutsideDays,\n ...props\n },\n ref,\n ) => {\n const [uncontrolledMonth, setUncontrolledMonth] = React.useState(() =>\n startOfMonth(defaultMonth ?? new Date()),\n );\n const month = startOfMonth(monthProp ?? uncontrolledMonth);\n\n const setMonth = React.useCallback(\n (nextMonth: Date) => {\n const normalized = startOfMonth(nextMonth);\n if (!monthProp) setUncontrolledMonth(normalized);\n onMonthChange?.(normalized);\n },\n [monthProp, onMonthChange],\n );\n\n return (\n <div\n ref={ref}\n className={cn('flex flex-col gap-2 md:flex-row', calendars === 1 && 'md:block', className)}\n >\n <CalendarMonth\n month={month}\n onMonthChange={setMonth}\n showOutsideDays={showOutsideDays}\n showDaysOutsideCurrentMonth={props.showDaysOutsideCurrentMonth}\n {...props}\n />\n {calendars >= 2 ? (\n <CalendarMonth\n month={addMonths(month, 1)}\n onMonthChange={(nextMonth) => setMonth(addMonths(nextMonth, -1))}\n showOutsideDays={showOutsideDays}\n showDaysOutsideCurrentMonth={props.showDaysOutsideCurrentMonth}\n {...props}\n />\n ) : null}\n {calendars === 3 ? (\n <CalendarMonth\n month={addMonths(month, 2)}\n onMonthChange={(nextMonth) => setMonth(addMonths(nextMonth, -2))}\n showOutsideDays={showOutsideDays}\n showDaysOutsideCurrentMonth={props.showDaysOutsideCurrentMonth}\n {...props}\n />\n ) : null}\n </div>\n );\n },\n);\nCalendar.displayName = 'DateRangePicker.Calendar';\n\nconst Shortcuts = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof DateRangePickerPrimitive.Shortcuts>\n>(({ className, ...props }, ref) => (\n <DateRangePickerPrimitive.Shortcuts\n ref={ref}\n className={cn(\n 'grid min-w-36 gap-1 border-b border-border p-2 md:border-b-0 md:border-r',\n '[&>button]:rounded-md [&>button]:px-2 [&>button]:py-1.5 [&>button]:text-left [&>button]:text-sm',\n '[&>button]:text-muted-foreground [&>button]:transition-colors hover:[&>button]:bg-accent hover:[&>button]:text-accent-foreground',\n 'disabled:[&>button]:pointer-events-none disabled:[&>button]:opacity-50',\n className,\n )}\n {...props}\n />\n));\nShortcuts.displayName = 'DateRangePicker.Shortcuts';\n\nconst Trigger = React.forwardRef<\n React.ElementRef<typeof DateRangePickerPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof DateRangePickerPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <DateRangePickerPrimitive.Trigger\n ref={ref}\n className={cn(\n buttonVariants({ variant: 'outline' }),\n 'w-[280px] justify-start text-left font-normal',\n 'disabled:pointer-events-none disabled:opacity-50',\n className,\n )}\n {...props}\n >\n <CalendarIcon className=\"mr-2 h-4 w-4\" />\n {children ?? <DateRangePickerPrimitive.Value />}\n </DateRangePickerPrimitive.Trigger>\n));\nTrigger.displayName = 'DateRangePicker.Trigger';\n\nconst Content = React.forwardRef<\n React.ElementRef<typeof DateRangePickerPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DateRangePickerPrimitive.Content> & {\n calendars?: 1 | 2 | 3;\n calendarClassName?: string;\n loading?: boolean;\n shortcuts?: DateRangePickerPrimitive.DateRangePickerShortcut[] | false;\n shortcutsClassName?: string;\n showOutsideDays?: boolean;\n showDaysOutsideCurrentMonth?: boolean;\n }\n>(\n (\n {\n className,\n children,\n align = 'center',\n sideOffset = 6,\n calendars,\n calendarClassName,\n loading,\n shortcuts,\n shortcutsClassName,\n showOutsideDays,\n showDaysOutsideCurrentMonth,\n ...props\n },\n ref,\n ) => (\n <DateRangePickerPrimitive.Portal>\n <DateRangePickerPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n 'z-50 rounded-md border border-border bg-popover p-0 text-popover-foreground shadow-md outline-none',\n 'origin-[var(--structyl-popper-transform-origin,center)]',\n 'data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95',\n 'data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95',\n className,\n )}\n {...props}\n >\n {children ?? (\n loading ? (\n <div className=\"p-4 text-sm text-muted-foreground\">\n <Loading />\n </div>\n ) : (\n <div className=\"flex flex-col md:flex-row\">\n {shortcuts === false ? null : (\n <Shortcuts className={shortcutsClassName} shortcuts={shortcuts || undefined} />\n )}\n <Calendar\n calendars={calendars}\n className={calendarClassName}\n showOutsideDays={showOutsideDays}\n showDaysOutsideCurrentMonth={showDaysOutsideCurrentMonth}\n />\n </div>\n )\n )}\n </DateRangePickerPrimitive.Content>\n </DateRangePickerPrimitive.Portal>\n ),\n);\nContent.displayName = 'DateRangePicker.Content';\n\ninterface DateRangePickerProps\n extends Omit<React.ComponentPropsWithoutRef<typeof DateRangePickerPrimitive.Root>, 'children'> {\n className?: string;\n triggerClassName?: string;\n contentClassName?: string;\n calendarClassName?: string;\n label?: React.ReactNode;\n helperText?: React.ReactNode;\n placeholder?: React.ReactNode;\n format?: React.ComponentPropsWithoutRef<typeof DateRangePickerPrimitive.Root>['format'];\n formatDensity?: React.ComponentPropsWithoutRef<typeof DateRangePickerPrimitive.Root>['formatDensity'];\n separator?: string;\n id?: string;\n name?: string;\n required?: boolean;\n error?: boolean;\n calendars?: 1 | 2 | 3;\n shortcuts?: DateRangePickerPrimitive.DateRangePickerShortcut[] | false;\n shortcutsClassName?: string;\n showOutsideDays?: boolean;\n}\n\nconst DateRangePickerRoot = React.forwardRef<HTMLDivElement, DateRangePickerProps>(\n (\n {\n className,\n triggerClassName,\n contentClassName,\n calendarClassName,\n label,\n helperText,\n placeholder,\n format,\n formatDensity,\n separator,\n locale,\n id,\n name,\n required,\n error,\n disabled,\n readOnly,\n calendars,\n loading,\n shortcuts,\n shortcutsClassName,\n showOutsideDays,\n showDaysOutsideCurrentMonth,\n ...props\n },\n ref,\n ) => {\n const generatedId = React.useId();\n const triggerId = id ?? generatedId;\n const helperId = helperText ? `${triggerId}-helper` : undefined;\n const labelText = typeof label === 'string' ? label : undefined;\n\n return (\n <Root {...props} disabled={disabled} readOnly={readOnly} locale={locale} loading={loading}>\n <div ref={ref} className={cn('grid w-fit gap-1.5', className)}>\n {label ? (\n <label className=\"text-sm font-medium text-foreground\" htmlFor={triggerId}>\n {label}\n {required ? <span aria-hidden=\"true\"> *</span> : null}\n </label>\n ) : null}\n <Trigger\n id={triggerId}\n name={name}\n disabled={disabled}\n aria-invalid={error || undefined}\n aria-describedby={helperId}\n aria-label={labelText ?? 'Choose date range'}\n className={triggerClassName}\n >\n <DateRangePickerPrimitive.Value\n locale={locale}\n format={format}\n formatDensity={formatDensity}\n separator={separator}\n placeholder={placeholder ?? 'MM/DD/YYYY - MM/DD/YYYY'}\n />\n </Trigger>\n {helperText ? (\n <Typography\n id={helperId}\n variant=\"muted\"\n className={cn('text-xs', error && 'text-destructive')}\n >\n {helperText}\n </Typography>\n ) : null}\n </div>\n <Content\n calendars={calendars}\n calendarClassName={calendarClassName}\n className={contentClassName}\n loading={loading}\n shortcuts={shortcuts}\n shortcutsClassName={shortcutsClassName}\n showOutsideDays={showOutsideDays}\n showDaysOutsideCurrentMonth={showDaysOutsideCurrentMonth}\n />\n </Root>\n );\n },\n);\nDateRangePickerRoot.displayName = 'DateRangePicker';\n\nconst DateRangePicker = Object.assign(DateRangePickerRoot, {\n Root,\n Trigger,\n Content,\n Value,\n Calendar,\n CalendarMonth,\n Shortcuts,\n Loading,\n StyledCalendar,\n});\n\nexport {\n DateRangePicker,\n Root,\n Trigger,\n Content,\n Value,\n Calendar,\n CalendarMonth,\n Shortcuts,\n Loading,\n StyledCalendar,\n};\nexport type { DateRangePickerProps, CalendarProps, CalendarMonthProps };\n","'use client';\n\nimport * as React from 'react';\nimport { CalendarClock, ChevronLeft, ChevronRight } from '@structyl/icons';\nimport {\n Calendar as CalendarPrimitive,\n DateTimePicker as DateTimePickerPrimitive,\n} from '@structyl/primitives';\nimport type { TimePickerView } from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\nimport { buttonVariants } from '../button';\nimport { Calendar as StyledCalendar } from '../calendar';\nimport { TimePickerPanel } from '../time-picker';\nimport { Typography } from '../typography';\n\nconst Root = DateTimePickerPrimitive.Root;\nconst Value = DateTimePickerPrimitive.Value;\nconst Loading = DateTimePickerPrimitive.Loading;\nconst DatePanel = DateTimePickerPrimitive.DatePanel;\nconst TimePanel = DateTimePickerPrimitive.TimePanel;\nconst DateButton = DateTimePickerPrimitive.DateButton;\n\ninterface CalendarProps\n extends React.ComponentPropsWithoutRef<typeof DateTimePickerPrimitive.Calendar> {\n showOutsideDays?: boolean;\n showDaysOutsideCurrentMonth?: boolean;\n}\n\nconst Calendar = React.forwardRef<HTMLDivElement, CalendarProps>(\n ({ className, showOutsideDays, showDaysOutsideCurrentMonth, ...props }, ref) => (\n <DateTimePickerPrimitive.Calendar\n ref={ref}\n className={cn('rounded-md bg-popover p-3 text-popover-foreground', className)}\n showDaysOutsideCurrentMonth={showDaysOutsideCurrentMonth ?? showOutsideDays}\n {...props}\n >\n <CalendarPrimitive.Header className=\"mb-2 flex items-center justify-between\">\n <CalendarPrimitive.PreviousButton className=\"inline-flex h-7 w-7 items-center justify-center rounded-md text-muted-foreground hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\">\n <ChevronLeft className=\"h-4 w-4\" />\n </CalendarPrimitive.PreviousButton>\n <CalendarPrimitive.Heading />\n <CalendarPrimitive.NextButton className=\"inline-flex h-7 w-7 items-center justify-center rounded-md text-muted-foreground hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\">\n <ChevronRight className=\"h-4 w-4\" />\n </CalendarPrimitive.NextButton>\n </CalendarPrimitive.Header>\n <CalendarPrimitive.Grid className=\"w-full border-collapse\">\n <CalendarPrimitive.GridHead />\n <CalendarPrimitive.GridBody>\n {(date, { isOutsideMonth }) => {\n if ((showDaysOutsideCurrentMonth ?? showOutsideDays ?? true) === false && isOutsideMonth) {\n return <span className=\"block h-8 w-8\" aria-hidden=\"true\" />;\n }\n\n return (\n <CalendarPrimitive.Day\n date={date}\n isOutsideMonth={isOutsideMonth}\n aria-label={new Intl.DateTimeFormat(props.locale, { dateStyle: 'full' }).format(date)}\n className={cn(\n 'inline-flex h-8 w-8 items-center justify-center rounded-md text-sm font-normal',\n 'hover:bg-accent hover:text-accent-foreground',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n 'data-[state=selected]:bg-primary data-[state=selected]:text-primary-foreground',\n 'data-[today]:font-semibold data-[today]:text-primary',\n 'data-[outside]:text-muted-foreground/40',\n 'data-[in-range]:bg-accent data-[in-range]:text-accent-foreground',\n 'data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n )}\n />\n );\n }}\n </CalendarPrimitive.GridBody>\n </CalendarPrimitive.Grid>\n </DateTimePickerPrimitive.Calendar>\n ),\n);\nCalendar.displayName = 'DateTimePicker.Calendar';\n\nconst Segment = React.forwardRef<\n React.ElementRef<typeof DateTimePickerPrimitive.Segment>,\n React.ComponentPropsWithoutRef<typeof DateTimePickerPrimitive.Segment>\n>(({ className, ...props }, ref) => (\n <DateTimePickerPrimitive.Segment\n ref={ref}\n className={cn(\n 'inline-flex h-8 min-w-8 items-center justify-center rounded-md text-sm tabular-nums',\n 'hover:bg-accent focus:bg-accent focus:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n className,\n )}\n {...props}\n />\n));\nSegment.displayName = 'DateTimePicker.Segment';\n\nconst Separator: React.FC<{ children?: React.ReactNode }> = ({ children = ':' }) => (\n <span className=\"text-muted-foreground\">{children}</span>\n);\nSeparator.displayName = 'DateTimePicker.Separator';\n\nconst Trigger = React.forwardRef<\n React.ElementRef<typeof DateTimePickerPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof DateTimePickerPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <DateTimePickerPrimitive.Trigger\n ref={ref}\n className={cn(\n buttonVariants({ variant: 'outline' }),\n 'w-[280px] justify-start text-left font-normal',\n 'disabled:pointer-events-none disabled:opacity-50',\n className,\n )}\n {...props}\n >\n <CalendarClock className=\"mr-2 h-4 w-4\" />\n {children ?? <DateTimePickerPrimitive.Value />}\n </DateTimePickerPrimitive.Trigger>\n));\nTrigger.displayName = 'DateTimePicker.Trigger';\n\nconst Content = React.forwardRef<\n React.ElementRef<typeof DateTimePickerPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DateTimePickerPrimitive.Content> & {\n calendarClassName?: string;\n loading?: boolean;\n showOutsideDays?: boolean;\n showDaysOutsideCurrentMonth?: boolean;\n withSeconds?: boolean;\n ampm?: boolean;\n maxTime?: Date;\n minTime?: Date;\n minutesStep?: number;\n shouldDisableTime?: React.ComponentPropsWithoutRef<typeof DateTimePickerPrimitive.Root>['shouldDisableTime'];\n skipDisabled?: boolean;\n timeSteps?: React.ComponentPropsWithoutRef<typeof DateTimePickerPrimitive.Root>['timeSteps'];\n views?: React.ComponentPropsWithoutRef<typeof DateTimePickerPrimitive.Root>['views'];\n }\n>(\n (\n {\n className,\n children,\n align = 'center',\n sideOffset = 6,\n calendarClassName,\n loading,\n showOutsideDays,\n showDaysOutsideCurrentMonth,\n withSeconds,\n ampm = true,\n maxTime,\n minTime,\n minutesStep,\n shouldDisableTime,\n skipDisabled,\n timeSteps,\n views,\n ...props\n },\n ref,\n ) => (\n <DateTimePickerPrimitive.Portal>\n <DateTimePickerPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n 'z-50 rounded-md border border-border bg-popover p-0 text-popover-foreground shadow-md outline-none',\n 'origin-[var(--structyl-popper-transform-origin,center)]',\n 'data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95',\n 'data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95',\n className,\n )}\n {...props}\n >\n {children ?? (\n loading ? (\n <div className=\"p-4 text-sm text-muted-foreground\">\n <Loading />\n </div>\n ) : (\n <div>\n <DateTimePickerPrimitive.DatePanel>\n <Calendar\n className={calendarClassName}\n showOutsideDays={showOutsideDays}\n showDaysOutsideCurrentMonth={showDaysOutsideCurrentMonth}\n />\n </DateTimePickerPrimitive.DatePanel>\n <DateTimePickerPrimitive.TimePanel>\n {({ value, onAccept, onCancel, onChange }) => (\n <div className=\"grid gap-2 p-3\">\n <div className=\"flex items-center justify-between gap-3 border-b border-border pb-2\">\n <DateTimePickerPrimitive.DateButton className=\"rounded-md px-2 py-1 text-sm text-muted-foreground hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\">\n Change date\n </DateTimePickerPrimitive.DateButton>\n <div className=\"text-sm font-medium\">\n <DateTimePickerPrimitive.Value\n format={{ dateStyle: 'medium' }}\n placeholder=\"Select date\"\n />\n </div>\n </div>\n <TimePickerPanel\n ampm={ampm}\n maxTime={maxTime}\n minTime={minTime}\n minutesStep={minutesStep}\n onAccept={onAccept}\n onCancel={onCancel}\n onChange={onChange}\n referenceDate={value}\n shouldDisableTime={shouldDisableTime}\n skipDisabled={skipDisabled}\n timeSteps={timeSteps}\n value={value}\n views={getTimeViews(views)}\n withSeconds={withSeconds}\n />\n </div>\n )}\n </DateTimePickerPrimitive.TimePanel>\n </div>\n )\n )}\n </DateTimePickerPrimitive.Content>\n </DateTimePickerPrimitive.Portal>\n ),\n);\nContent.displayName = 'DateTimePicker.Content';\n\ninterface DateTimePickerProps\n extends Omit<React.ComponentPropsWithoutRef<typeof DateTimePickerPrimitive.Root>, 'children'> {\n className?: string;\n triggerClassName?: string;\n contentClassName?: string;\n calendarClassName?: string;\n label?: React.ReactNode;\n helperText?: React.ReactNode;\n placeholder?: React.ReactNode;\n id?: string;\n name?: string;\n required?: boolean;\n error?: boolean;\n showOutsideDays?: boolean;\n}\n\nconst DateTimePickerRoot = React.forwardRef<HTMLDivElement, DateTimePickerProps>(\n (\n {\n className,\n triggerClassName,\n contentClassName,\n calendarClassName,\n label,\n helperText,\n placeholder,\n format,\n locale,\n id,\n name,\n required,\n error,\n disabled,\n readOnly,\n autoFocus,\n disableOpenPicker,\n loading,\n showOutsideDays,\n showDaysOutsideCurrentMonth,\n ampm,\n maxTime,\n minTime,\n minutesStep,\n shouldDisableTime,\n skipDisabled,\n timeSteps,\n views,\n ...props\n },\n ref,\n ) => {\n const generatedId = React.useId();\n const triggerId = id ?? generatedId;\n const helperId = helperText ? `${triggerId}-helper` : undefined;\n const labelText = typeof label === 'string' ? label : undefined;\n const withSeconds = (timeSteps?.seconds ?? 0) > 0;\n\n return (\n <Root\n {...props}\n disabled={disabled}\n readOnly={readOnly}\n locale={locale}\n loading={loading}\n ampm={ampm}\n maxTime={maxTime}\n minTime={minTime}\n minutesStep={minutesStep}\n shouldDisableTime={shouldDisableTime}\n skipDisabled={skipDisabled}\n timeSteps={timeSteps}\n views={views}\n >\n <div ref={ref} className={cn('grid w-fit gap-1.5', className)}>\n {label ? (\n <label className=\"text-sm font-medium text-foreground\" htmlFor={triggerId} suppressHydrationWarning>\n {label}\n {required ? <span aria-hidden=\"true\"> *</span> : null}\n </label>\n ) : null}\n <Trigger\n id={triggerId}\n name={name}\n disabled={disabled || disableOpenPicker}\n autoFocus={autoFocus}\n aria-invalid={error || undefined}\n aria-describedby={helperId}\n aria-label={labelText ?? 'Choose date and time'}\n className={triggerClassName}\n suppressHydrationWarning\n >\n <DateTimePickerPrimitive.Value\n locale={locale}\n format={format}\n placeholder={placeholder ?? 'MM/DD/YYYY HH:mm'}\n />\n </Trigger>\n {helperText ? (\n <Typography\n id={helperId}\n variant=\"muted\"\n className={cn('text-xs', error && 'text-destructive')}\n suppressHydrationWarning\n >\n {helperText}\n </Typography>\n ) : null}\n </div>\n <Content\n calendarClassName={calendarClassName}\n className={contentClassName}\n loading={loading}\n showOutsideDays={showOutsideDays}\n showDaysOutsideCurrentMonth={showDaysOutsideCurrentMonth}\n withSeconds={withSeconds}\n ampm={ampm}\n maxTime={maxTime}\n minTime={minTime}\n minutesStep={minutesStep}\n shouldDisableTime={shouldDisableTime}\n skipDisabled={skipDisabled}\n timeSteps={timeSteps}\n views={views}\n />\n </Root>\n );\n },\n);\nDateTimePickerRoot.displayName = 'DateTimePicker';\n\nconst DateTimePicker = Object.assign(DateTimePickerRoot, {\n Root,\n Trigger,\n Content,\n Value,\n Calendar,\n DatePanel,\n TimePanel,\n DateButton,\n Segment,\n Separator,\n Loading,\n StyledCalendar,\n});\n\nexport {\n DateTimePicker,\n Root,\n Trigger,\n Content,\n Value,\n Calendar,\n DatePanel,\n TimePanel,\n DateButton,\n Segment,\n Separator,\n Loading,\n StyledCalendar,\n};\nexport type { DateTimePickerProps, CalendarProps };\n\nfunction getTimeViews(\n views: React.ComponentPropsWithoutRef<typeof DateTimePickerPrimitive.Root>['views'],\n) {\n if (!views) return undefined;\n const timeViews = views.filter((view): view is TimePickerView =>\n view === 'hours' || view === 'minutes' || view === 'seconds' || view === 'meridiem',\n );\n return timeViews.length ? timeViews : undefined;\n}\n","'use client';\n\nimport * as React from 'react';\nimport { ColorPicker as ColorPickerPrimitive } from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\n\nconst Root = React.forwardRef<\n React.ElementRef<typeof ColorPickerPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof ColorPickerPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <ColorPickerPrimitive.Root ref={ref} className={cn('flex w-64 flex-col gap-3 p-3', className)} {...props} />\n));\nRoot.displayName = 'ColorPicker.Root';\n\nconst Area = React.forwardRef<\n React.ElementRef<typeof ColorPickerPrimitive.Area>,\n React.ComponentPropsWithoutRef<typeof ColorPickerPrimitive.Area>\n>(({ className, ...props }, ref) => (\n <ColorPickerPrimitive.Area\n ref={ref}\n className={cn('relative h-40 w-full rounded-md border border-border', className)}\n {...props}\n >\n <ColorPickerPrimitive.AreaThumb\n className=\"h-3 w-3 rounded-full shadow-[0_0_0_2px_white,0_0_0_3px_rgba(0,0,0,0.4)]\"\n />\n </ColorPickerPrimitive.Area>\n));\nArea.displayName = 'ColorPicker.Area';\n\nconst HueSlider = React.forwardRef<HTMLDivElement, React.ComponentPropsWithoutRef<'div'>>(\n ({ className, ...props }, ref) => (\n <ColorPickerPrimitive.ChannelSlider\n ref={ref}\n channel=\"h\"\n className={cn('relative h-3 w-full rounded-full', className)}\n {...props}\n />\n ),\n);\nHueSlider.displayName = 'ColorPicker.HueSlider';\n\nconst AlphaSlider = React.forwardRef<HTMLDivElement, React.ComponentPropsWithoutRef<'div'>>(\n ({ className, ...props }, ref) => (\n <ColorPickerPrimitive.ChannelSlider\n ref={ref}\n channel=\"a\"\n className={cn('relative h-3 w-full rounded-full', className)}\n {...props}\n />\n ),\n);\nAlphaSlider.displayName = 'ColorPicker.AlphaSlider';\n\nconst Swatch = React.forwardRef<\n React.ElementRef<typeof ColorPickerPrimitive.Swatch>,\n React.ComponentPropsWithoutRef<typeof ColorPickerPrimitive.Swatch>\n>(({ className, ...props }, ref) => (\n <ColorPickerPrimitive.Swatch\n ref={ref}\n className={cn('h-8 w-8 rounded-md border border-border', className)}\n {...props}\n />\n));\nSwatch.displayName = 'ColorPicker.Swatch';\n\nexport { Root, Area, HueSlider, AlphaSlider, Swatch };\n","'use client';\n\nimport * as React from 'react';\nimport { Upload } from '@structyl/icons';\nimport { FileUpload as FileUploadPrimitive } from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\n\nconst Root = FileUploadPrimitive.Root;\n\nconst Dropzone = React.forwardRef<\n React.ElementRef<typeof FileUploadPrimitive.Dropzone>,\n React.ComponentPropsWithoutRef<typeof FileUploadPrimitive.Dropzone>\n>(({ className, children, ...props }, ref) => (\n <FileUploadPrimitive.Dropzone\n ref={ref}\n className={cn(\n 'flex cursor-pointer flex-col items-center justify-center gap-2 rounded-md border-2 border-dashed border-border p-6 text-sm transition-colors',\n 'hover:border-primary hover:bg-accent/50',\n 'data-[state=dragging]:border-primary data-[state=dragging]:bg-accent',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n className,\n )}\n {...props}\n >\n {children ?? (\n <>\n <Upload className=\"h-8 w-8 text-muted-foreground\" />\n <span className=\"text-muted-foreground\">\n Click to upload or drag and drop\n </span>\n </>\n )}\n </FileUploadPrimitive.Dropzone>\n));\nDropzone.displayName = 'FileUpload.Dropzone';\n\nconst Input = FileUploadPrimitive.Input;\nconst Trigger = FileUploadPrimitive.Trigger;\nconst Clear = FileUploadPrimitive.Clear;\n\nconst List = React.forwardRef<\n React.ElementRef<typeof FileUploadPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof FileUploadPrimitive.List>\n>(({ className, ...props }, ref) => (\n <FileUploadPrimitive.List ref={ref} className={cn('mt-2 space-y-1', className)} {...props} />\n));\nList.displayName = 'FileUpload.List';\n\nconst Item: React.FC<{ file: File }> = ({ file }) => (\n <FileUploadPrimitive.Item file={file}>\n <div className=\"flex items-center justify-between gap-2 rounded-md border border-border bg-bg px-3 py-2 text-sm\">\n <span className=\"truncate\">{file.name}</span>\n <span className=\"text-muted-foreground\">{Math.round(file.size / 1024)} KB</span>\n </div>\n </FileUploadPrimitive.Item>\n);\nItem.displayName = 'FileUpload.Item';\n\nexport { Root, Dropzone, Input, Trigger, Clear, List, Item };\n","'use client';\n\nimport * as React from 'react';\nimport { cn } from '@structyl/utils';\n\ntype CircularProgressColor = 'primary' | 'secondary' | 'error' | 'warning' | 'info' | 'success' | 'inherit';\n\nconst colorClassMap: Record<CircularProgressColor, string> = {\n primary: 'text-primary',\n secondary: 'text-secondary-dark',\n error: 'text-destructive',\n warning: 'text-warning',\n info: 'text-info',\n success: 'text-success',\n inherit: 'text-current',\n};\n\ninterface CircularProgressProps extends React.SVGAttributes<SVGSVGElement> {\n value?: number | null;\n max?: number;\n size?: number;\n strokeWidth?: number;\n label?: string;\n color?: CircularProgressColor;\n}\n\nconst CircularProgress = React.forwardRef<SVGSVGElement, CircularProgressProps>(\n ({ className, value, max = 100, size = 40, strokeWidth = 4, label = 'Loading', color = 'primary', ...props }, ref) => {\n const isIndeterminate = value == null;\n const radius = (size - strokeWidth) / 2;\n const circumference = 2 * Math.PI * radius;\n const progress = isIndeterminate ? 0.25 : (value as number) / max;\n const offset = circumference - progress * circumference;\n return (\n <svg\n ref={ref}\n role=\"progressbar\"\n aria-valuemin={0}\n aria-valuemax={max}\n aria-valuenow={isIndeterminate ? undefined : (value as number)}\n aria-label={label}\n width={size}\n height={size}\n viewBox={`0 0 ${size} ${size}`}\n className={cn(colorClassMap[color], isIndeterminate && 'animate-spin', className)}\n {...props}\n >\n <circle\n cx={size / 2}\n cy={size / 2}\n r={radius}\n fill=\"none\"\n stroke=\"currentColor\"\n strokeOpacity={0.2}\n strokeWidth={strokeWidth}\n />\n <circle\n cx={size / 2}\n cy={size / 2}\n r={radius}\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeDasharray={circumference}\n strokeDashoffset={offset}\n strokeLinecap=\"round\"\n transform={`rotate(-90 ${size / 2} ${size / 2})`}\n style={{ transition: 'stroke-dashoffset 200ms ease' }}\n />\n </svg>\n );\n },\n);\nCircularProgress.displayName = 'CircularProgress';\n\nexport { CircularProgress };\nexport type { CircularProgressProps };\n","'use client';\n\nimport * as React from 'react';\nimport { cn } from '@structyl/utils';\n\ninterface MeterProps extends React.HTMLAttributes<HTMLDivElement> {\n value: number;\n min?: number;\n max?: number;\n low?: number;\n high?: number;\n optimum?: number;\n label?: string;\n}\n\nfunction getStatus(value: number, low?: number, high?: number, optimum?: number) {\n if (low !== undefined && value < low) return optimum !== undefined && optimum < low ? 'optimal' : 'sub-optimal';\n if (high !== undefined && value > high)\n return optimum !== undefined && optimum > high ? 'optimal' : 'sub-optimal';\n return 'normal';\n}\n\nconst Meter = React.forwardRef<HTMLDivElement, MeterProps>(\n ({ className, value, min = 0, max = 100, low, high, optimum, label, ...props }, ref) => {\n const clamped = Math.max(min, Math.min(max, value));\n const percent = ((clamped - min) / (max - min)) * 100;\n const status = getStatus(clamped, low, high, optimum);\n return (\n <div\n ref={ref}\n role=\"meter\"\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={clamped}\n aria-label={label}\n data-status={status}\n className={cn('relative h-2 w-full overflow-hidden rounded-full bg-secondary', className)}\n {...props}\n >\n <div\n className={cn(\n 'h-full transition-all',\n status === 'normal' && 'bg-success',\n status === 'sub-optimal' && 'bg-warning',\n status === 'optimal' && 'bg-primary',\n )}\n style={{ width: `${percent}%` }}\n />\n </div>\n );\n },\n);\nMeter.displayName = 'Meter';\n\nexport { Meter };\nexport type { MeterProps };\n","'use client';\n\nimport * as React from 'react';\nimport { ScrollArea as ScrollAreaPrimitive } from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\n\nconst Root = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root>\n>(({ className, children, ...props }, ref) => (\n <ScrollAreaPrimitive.Root ref={ref} className={cn('relative overflow-hidden', className)} {...props}>\n <ScrollAreaPrimitive.Viewport className=\"h-full w-full rounded-[inherit]\">\n {children}\n </ScrollAreaPrimitive.Viewport>\n <Scrollbar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n));\nRoot.displayName = 'ScrollArea.Root';\n\nconst Scrollbar = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.Scrollbar>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Scrollbar>\n>(({ className, orientation = 'vertical', ...props }, ref) => (\n <ScrollAreaPrimitive.Scrollbar\n ref={ref}\n orientation={orientation}\n className={cn(\n 'flex touch-none select-none transition-colors',\n orientation === 'vertical' && 'h-full w-2.5 border-l border-l-transparent p-[1px]',\n orientation === 'horizontal' && 'h-2.5 w-full border-t border-t-transparent p-[1px]',\n className,\n )}\n {...props}\n >\n <ScrollAreaPrimitive.Thumb className=\"relative flex-1 rounded-full bg-border\" />\n </ScrollAreaPrimitive.Scrollbar>\n));\nScrollbar.displayName = 'ScrollArea.Scrollbar';\n\nexport { Root, Scrollbar };\n","'use client';\n\nimport * as React from 'react';\nimport { Toolbar as ToolbarPrimitive } from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\n\nconst Root = React.forwardRef<\n React.ElementRef<typeof ToolbarPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof ToolbarPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <ToolbarPrimitive.Root\n ref={ref}\n className={cn(\n 'flex w-full items-center gap-1 rounded-md border border-border bg-bg p-1 shadow-sm',\n 'data-[orientation=vertical]:flex-col',\n className,\n )}\n {...props}\n />\n));\nRoot.displayName = 'Toolbar.Root';\n\nconst Button = React.forwardRef<\n React.ElementRef<typeof ToolbarPrimitive.Button>,\n React.ComponentPropsWithoutRef<typeof ToolbarPrimitive.Button>\n>(({ className, ...props }, ref) => (\n <ToolbarPrimitive.Button\n ref={ref}\n className={cn(\n 'inline-flex items-center justify-center rounded-sm px-2 py-1 text-sm',\n 'hover:bg-accent hover:text-accent-foreground',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n 'disabled:pointer-events-none disabled:opacity-50',\n className,\n )}\n {...props}\n />\n));\nButton.displayName = 'Toolbar.Button';\n\nconst Separator = React.forwardRef<\n React.ElementRef<typeof ToolbarPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof ToolbarPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <ToolbarPrimitive.Separator\n ref={ref}\n className={cn(\n 'shrink-0 bg-border',\n 'data-[orientation=vertical]:h-px data-[orientation=vertical]:w-full',\n 'data-[orientation=horizontal]:h-4 data-[orientation=horizontal]:w-px',\n className,\n )}\n {...props}\n />\n));\nSeparator.displayName = 'Toolbar.Separator';\n\nconst Link = ToolbarPrimitive.Link;\n\nexport { Root, Button, Separator, Link };\n","'use client';\n\nimport * as React from 'react';\nimport { GripVertical } from '@structyl/icons';\nimport { Resizable as ResizablePrimitive } from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\n\nconst Group = React.forwardRef<\n React.ElementRef<typeof ResizablePrimitive.Group>,\n React.ComponentPropsWithoutRef<typeof ResizablePrimitive.Group>\n>(({ className, ...props }, ref) => (\n <ResizablePrimitive.Group\n ref={ref}\n className={cn('flex h-full w-full', className)}\n {...props}\n />\n));\nGroup.displayName = 'Resizable.Group';\n\nconst Panel = ResizablePrimitive.Panel;\n\nconst Handle = React.forwardRef<\n React.ElementRef<typeof ResizablePrimitive.Handle>,\n React.ComponentPropsWithoutRef<typeof ResizablePrimitive.Handle> & { withHandle?: boolean }\n>(({ className, withHandle, ...props }, ref) => (\n <ResizablePrimitive.Handle\n ref={ref}\n className={cn(\n 'relative flex w-px items-center justify-center bg-border',\n 'data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full',\n 'focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring',\n className,\n )}\n {...props}\n >\n {withHandle && (\n <div className=\"z-10 flex h-4 w-3 items-center justify-center rounded-sm border border-border bg-border\">\n <GripVertical className=\"h-2.5 w-2.5\" />\n </div>\n )}\n </ResizablePrimitive.Handle>\n));\nHandle.displayName = 'Resizable.Handle';\n\nexport { Group, Panel, Handle };\n","'use client';\n\nimport * as React from 'react';\nimport { ChevronLeft, ChevronRight } from '@structyl/icons';\nimport { Carousel as CarouselPrimitive } from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\n\n// ── Internal context to share index/count with Dots/Counter ──────────────────\n\ninterface CarouselState {\n index: number;\n count: number;\n goTo: (i: number) => void;\n}\n\nconst CarouselStateContext = React.createContext<CarouselState>({ index: 0, count: 0, goTo: () => {} });\n\n// ── Root ──────────────────────────────────────────────────────────────────────\n\nexport interface CarouselRootProps extends React.ComponentPropsWithoutRef<typeof CarouselPrimitive.Root> {\n loop?: boolean;\n /** Autoplay interval in ms. Pauses on hover. */\n autoPlay?: number;\n slideCount?: number;\n}\n\nconst Root = React.forwardRef<React.ElementRef<typeof CarouselPrimitive.Root>, CarouselRootProps>(\n ({ className, loop = false, autoPlay, slideCount = 0, index: indexProp, defaultIndex = 0, onIndexChange, ...props }, ref) => {\n const isControlled = indexProp !== undefined;\n const [uncontrolledIndex, setUncontrolledIndex] = React.useState(defaultIndex);\n const [paused, setPaused] = React.useState(false);\n\n const activeIndex = isControlled ? indexProp : uncontrolledIndex;\n\n const handleIndexChange = (i: number) => {\n if (!isControlled) setUncontrolledIndex(i);\n onIndexChange?.(i);\n };\n\n return (\n <CarouselStateContext.Provider value={{ index: activeIndex, count: slideCount, goTo: handleIndexChange }}>\n <CarouselPrimitive.Root\n ref={ref}\n loop={loop}\n index={activeIndex}\n onIndexChange={handleIndexChange}\n autoPlayInterval={paused ? 0 : autoPlay}\n className={cn('relative', className)}\n onMouseEnter={() => autoPlay && setPaused(true)}\n onMouseLeave={() => autoPlay && setPaused(false)}\n {...props}\n />\n </CarouselStateContext.Provider>\n );\n },\n);\nRoot.displayName = 'Carousel.Root';\n\n// ── Content ───────────────────────────────────────────────────────────────────\n\nconst Content = React.forwardRef<\n React.ElementRef<typeof CarouselPrimitive.Container>,\n React.ComponentPropsWithoutRef<typeof CarouselPrimitive.Container>\n>(({ className, ...props }, ref) => (\n <CarouselPrimitive.Viewport className=\"overflow-hidden\">\n <CarouselPrimitive.Container ref={ref} className={cn('flex -ml-4', className)} {...props} />\n </CarouselPrimitive.Viewport>\n));\nContent.displayName = 'Carousel.Content';\n\n// ── Item ──────────────────────────────────────────────────────────────────────\n\nconst Item = React.forwardRef<\n React.ElementRef<typeof CarouselPrimitive.Slide>,\n React.ComponentPropsWithoutRef<typeof CarouselPrimitive.Slide>\n>(({ className, ...props }, ref) => (\n <CarouselPrimitive.Slide\n ref={ref}\n className={cn('min-w-0 shrink-0 grow-0 basis-full pl-4', className)}\n {...props}\n />\n));\nItem.displayName = 'Carousel.Item';\n\n// ── Arrows ────────────────────────────────────────────────────────────────────\n\nconst arrowCls = [\n 'absolute h-9 w-9 inline-flex items-center justify-center rounded-full',\n 'border border-border bg-bg/90 shadow-sm backdrop-blur-sm',\n 'hover:bg-accent transition-colors duration-150',\n 'disabled:pointer-events-none disabled:opacity-40',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n].join(' ');\n\nconst Previous = React.forwardRef<\n React.ElementRef<typeof CarouselPrimitive.Previous>,\n React.ComponentPropsWithoutRef<typeof CarouselPrimitive.Previous>\n>(({ className, ...props }, ref) => (\n <CarouselPrimitive.Previous ref={ref} className={cn(arrowCls, '-left-5 top-1/2 -translate-y-1/2', className)} {...props}>\n <ChevronLeft className=\"h-4 w-4\" aria-hidden />\n <span className=\"sr-only\">Previous slide</span>\n </CarouselPrimitive.Previous>\n));\nPrevious.displayName = 'Carousel.Previous';\n\nconst Next = React.forwardRef<\n React.ElementRef<typeof CarouselPrimitive.Next>,\n React.ComponentPropsWithoutRef<typeof CarouselPrimitive.Next>\n>(({ className, ...props }, ref) => (\n <CarouselPrimitive.Next ref={ref} className={cn(arrowCls, '-right-5 top-1/2 -translate-y-1/2', className)} {...props}>\n <ChevronRight className=\"h-4 w-4\" aria-hidden />\n <span className=\"sr-only\">Next slide</span>\n </CarouselPrimitive.Next>\n));\nNext.displayName = 'Carousel.Next';\n\n// ── Dot indicators ────────────────────────────────────────────────────────────\n\nexport interface DotsProps extends React.HTMLAttributes<HTMLDivElement> {\n count: number;\n}\n\nconst Dots = React.forwardRef<HTMLDivElement, DotsProps>(({ className, count, ...props }, ref) => {\n const ctx = React.useContext(CarouselStateContext);\n const resolvedCount = count ?? ctx.count;\n\n return (\n <div\n ref={ref}\n role=\"tablist\"\n aria-label=\"Slide indicators\"\n className={cn('mt-4 flex justify-center gap-1.5', className)}\n {...props}\n >\n {Array.from({ length: resolvedCount }).map((_, i) => (\n <button\n key={i}\n role=\"tab\"\n aria-selected={ctx.index === i}\n aria-label={`Go to slide ${i + 1}`}\n onClick={() => ctx.goTo(i)}\n className={cn(\n 'h-2 rounded-full transition-all duration-200',\n ctx.index === i ? 'w-4 bg-primary' : 'w-2 bg-muted-foreground/40 hover:bg-muted-foreground/70',\n )}\n />\n ))}\n </div>\n );\n});\nDots.displayName = 'Carousel.Dots';\n\n// ── Slide counter ─────────────────────────────────────────────────────────────\n\nexport interface CounterProps extends React.HTMLAttributes<HTMLSpanElement> {\n count: number;\n}\n\nconst Counter = React.forwardRef<HTMLSpanElement, CounterProps>(\n ({ className, count, ...props }, ref) => {\n const ctx = React.useContext(CarouselStateContext);\n const resolvedCount = count ?? ctx.count;\n return (\n <span\n ref={ref}\n aria-live=\"polite\"\n aria-atomic\n className={cn(\n 'absolute bottom-3 right-3 rounded-full bg-overlay/60 px-2.5 py-0.5 text-xs font-medium text-white',\n className,\n )}\n {...props}\n >\n {ctx.index + 1} / {resolvedCount}\n </span>\n );\n },\n);\nCounter.displayName = 'Carousel.Counter';\n\nexport { Root, Content, Item, Previous, Next, Dots, Counter };\n","'use client';\n\nimport * as React from 'react';\nimport { ChevronRight } from '@structyl/icons';\nimport { Tree as TreePrimitive } from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\n\nconst Root = React.forwardRef<\n React.ElementRef<typeof TreePrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof TreePrimitive.Root>\n>(({ className, ...props }, ref) => (\n <TreePrimitive.Root ref={ref} className={cn('text-sm', className)} {...props} />\n));\nRoot.displayName = 'Tree.Root';\n\nconst Item = TreePrimitive.Item;\n\nconst Trigger = React.forwardRef<\n React.ElementRef<typeof TreePrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TreePrimitive.Trigger> & { hasChildren?: boolean }\n>(({ className, hasChildren, children, ...props }, ref) => (\n <TreePrimitive.Trigger\n ref={ref}\n className={cn(\n 'flex items-center gap-1 rounded px-2 py-1 hover:bg-accent',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n 'data-[selected]:bg-accent',\n className,\n )}\n {...props}\n >\n {hasChildren !== false && (\n <ChevronRight className=\"h-3.5 w-3.5 transition-transform group-data-[state=open]:rotate-90\" />\n )}\n {children}\n </TreePrimitive.Trigger>\n));\nTrigger.displayName = 'Tree.Trigger';\n\nconst Group = React.forwardRef<\n React.ElementRef<typeof TreePrimitive.Group>,\n React.ComponentPropsWithoutRef<typeof TreePrimitive.Group>\n>(({ className, ...props }, ref) => (\n <TreePrimitive.Group ref={ref} className={cn('ml-4 border-l border-border pl-2', className)} {...props} />\n));\nGroup.displayName = 'Tree.Group';\n\nexport { Root, Item, Trigger, Group };\n","'use client';\n\nimport * as React from 'react';\nimport { Editable as EditablePrimitive } from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\n\nconst Root = EditablePrimitive.Root;\n\nconst Preview = React.forwardRef<\n React.ElementRef<typeof EditablePrimitive.Preview>,\n React.ComponentPropsWithoutRef<typeof EditablePrimitive.Preview>\n>(({ className, ...props }, ref) => (\n <EditablePrimitive.Preview\n ref={ref}\n className={cn(\n 'inline-block cursor-text rounded px-1 hover:bg-accent',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n className,\n )}\n {...props}\n />\n));\nPreview.displayName = 'Editable.Preview';\n\nconst Input = React.forwardRef<\n React.ElementRef<typeof EditablePrimitive.Input>,\n React.ComponentPropsWithoutRef<typeof EditablePrimitive.Input>\n>(({ className, ...props }, ref) => (\n <EditablePrimitive.Input\n ref={ref}\n className={cn(\n 'inline-block rounded border border-input bg-transparent px-1 text-sm',\n 'focus:outline-none focus:ring-1 focus:ring-ring',\n className,\n )}\n {...props}\n />\n));\nInput.displayName = 'Editable.Input';\n\nexport { Root, Preview, Input };\n","'use client';\n\nimport * as React from 'react';\nimport { X } from '@structyl/icons';\nimport { TagsInput as TagsInputPrimitive } from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\n\nconst Root = React.forwardRef<\n React.ElementRef<typeof TagsInputPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof TagsInputPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <TagsInputPrimitive.Root\n ref={ref}\n className={cn(\n 'flex flex-wrap items-center gap-1.5 rounded-md border border-input bg-transparent p-1.5',\n 'focus-within:ring-1 focus-within:ring-ring',\n className,\n )}\n {...props}\n />\n));\nRoot.displayName = 'TagsInput.Root';\n\nconst Input = React.forwardRef<\n React.ElementRef<typeof TagsInputPrimitive.Input>,\n React.ComponentPropsWithoutRef<typeof TagsInputPrimitive.Input>\n>(({ className, ...props }, ref) => (\n <TagsInputPrimitive.Input\n ref={ref}\n className={cn(\n 'flex-1 bg-transparent text-sm outline-none placeholder:text-muted-foreground',\n className,\n )}\n {...props}\n />\n));\nInput.displayName = 'TagsInput.Input';\n\nconst Tag: React.FC<{ index: number; tag: string }> = ({ index, tag }) => (\n <TagsInputPrimitive.Tag index={index}>\n <span className=\"inline-flex items-center gap-1 rounded-md bg-secondary px-2 py-1 text-xs\">\n {tag}\n <button\n type=\"button\"\n className=\"inline-flex h-3.5 w-3.5 cursor-pointer items-center justify-center rounded-sm hover:bg-fg/10\"\n aria-label={`Remove ${tag}`}\n >\n <X className=\"h-3 w-3\" />\n </button>\n </span>\n </TagsInputPrimitive.Tag>\n);\nTag.displayName = 'TagsInput.Tag';\n\nconst Items = TagsInputPrimitive.Items;\n\nexport { Root, Input, Tag, Items };\n","'use client';\n\nimport * as React from 'react';\nimport { Mentions as MentionsPrimitive } from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\n\nconst Root = React.forwardRef<\n React.ElementRef<typeof MentionsPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof MentionsPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <MentionsPrimitive.Root ref={ref} className={cn('relative', className)} {...props} />\n));\nRoot.displayName = 'Mentions.Root';\n\nconst Textarea = React.forwardRef<\n React.ElementRef<typeof MentionsPrimitive.Textarea>,\n React.ComponentPropsWithoutRef<typeof MentionsPrimitive.Textarea>\n>(({ className, ...props }, ref) => (\n <MentionsPrimitive.Textarea\n ref={ref}\n className={cn(\n 'flex min-h-[80px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm',\n 'placeholder:text-muted-foreground',\n 'focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring',\n className,\n )}\n {...props}\n />\n));\nTextarea.displayName = 'Mentions.Textarea';\n\nconst Suggestions = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof MentionsPrimitive.Suggestions> & { className?: string }\n>(({ className, children, ...props }, ref) => (\n <MentionsPrimitive.Suggestions disablePortal {...props}>\n <div\n ref={ref}\n className={cn('absolute left-0 top-full z-50 mt-1 min-w-[8rem]', className)}\n >\n {children}\n </div>\n </MentionsPrimitive.Suggestions>\n));\nSuggestions.displayName = 'Mentions.Suggestions';\n\nconst Items = MentionsPrimitive.Items;\nconst Item = MentionsPrimitive.Item;\n\nexport { Root, Textarea, Suggestions, Items, Item };\n","'use client';\n\nimport * as React from 'react';\nimport { Check, Copy } from '@structyl/icons';\nimport { cn } from '@structyl/utils';\nimport { buttonVariants, type ButtonProps } from '../button';\n\ninterface CopyButtonProps extends Omit<ButtonProps, 'value'> {\n value: string;\n /** Reset duration in ms. */\n resetAfter?: number;\n onCopied?: (value: string) => void;\n}\n\nconst CopyButton = React.forwardRef<HTMLButtonElement, CopyButtonProps>(\n ({ className, value, resetAfter = 2000, onCopied, children, ...props }, ref) => {\n const [copied, setCopied] = React.useState(false);\n React.useEffect(() => {\n if (!copied) return undefined;\n const t = window.setTimeout(() => setCopied(false), resetAfter);\n return () => window.clearTimeout(t);\n }, [copied, resetAfter]);\n const handleCopy = async () => {\n try {\n await navigator.clipboard.writeText(value);\n setCopied(true);\n onCopied?.(value);\n } catch (err) {\n void err;\n }\n };\n return (\n <button\n type=\"button\"\n ref={ref}\n aria-label={copied ? 'Copied' : 'Copy to clipboard'}\n data-state={copied ? 'copied' : 'idle'}\n className={cn(buttonVariants({ variant: 'ghost', size: 'icon' }), className)}\n onClick={handleCopy}\n {...props}\n >\n {children ?? (copied ? <Check className=\"h-4 w-4\" /> : <Copy className=\"h-4 w-4\" />)}\n </button>\n );\n },\n);\nCopyButton.displayName = 'CopyButton';\n\nexport { CopyButton };\nexport type { CopyButtonProps };\n","'use client';\n\n/**\n * @structyl/styled — Chart\n *\n * Tailwind-styled wrappers around the headless chart primitives.\n * Applies CSS variable–based color tokens and Tailwind classes.\n *\n * Chart colors rely on CSS variables --chart-1 through --chart-5 which\n * should be defined in your global stylesheet.\n *\n * NOTE: Requires `pnpm build` in packages/primitives before typechecking.\n *\n * @example\n * ```tsx\n * import * as Chart from '@structyl/styled';\n *\n * function MyChart() {\n * return (\n * <Chart.Chart.Root data={data} height={300}>\n * <Chart.Chart.Grid />\n * <Chart.Chart.XAxis dataKey=\"month\" />\n * <Chart.Chart.YAxis />\n * <Chart.Chart.Bar dataKey=\"revenue\" name=\"Revenue\" />\n * <Chart.Chart.Tooltip />\n * </Chart.Chart.Root>\n * );\n * }\n * ```\n */\n\nimport * as React from 'react';\nimport { cn } from '@structyl/utils';\n// Chart components are imported from the primitives package.\n// Run `pnpm build` in packages/primitives to generate the dist before typechecking this file.\nimport * as Primitives from '@structyl/primitives';\n\n// The Chart namespace is re-exported from primitives as `export * as Chart from './chart'`\ntype ChartNS = typeof Primitives.Chart;\n\n/* ─── Pass-through components (SVG children; no styling needed) ──────── */\n// These are SVG group elements that use context from Root — styling is minimal\nexport const Grid: ChartNS['Grid'] = Primitives.Chart.Grid;\nexport const XAxis: ChartNS['XAxis'] = Primitives.Chart.XAxis;\nexport const YAxis: ChartNS['YAxis'] = Primitives.Chart.YAxis;\nexport const Bar: ChartNS['Bar'] = Primitives.Chart.Bar;\nexport const Line: ChartNS['Line'] = Primitives.Chart.Line;\nexport const Area: ChartNS['Area'] = Primitives.Chart.Area;\nexport const Scatter: ChartNS['Scatter'] = Primitives.Chart.Scatter;\nexport const Bubble: ChartNS['Bubble'] = Primitives.Chart.Bubble;\nexport const Pie: ChartNS['Pie'] = Primitives.Chart.Pie;\nexport const PieCenterLabel: ChartNS['PieCenterLabel'] = Primitives.Chart.PieCenterLabel;\nexport const PolarGrid: ChartNS['PolarGrid'] = Primitives.Chart.PolarGrid;\nexport const PolarAngleAxis: ChartNS['PolarAngleAxis'] = Primitives.Chart.PolarAngleAxis;\nexport const Radar: ChartNS['Radar'] = Primitives.Chart.Radar;\nexport const RangeBar: ChartNS['RangeBar'] = Primitives.Chart.RangeBar;\nexport const RangeArea: ChartNS['RangeArea'] = Primitives.Chart.RangeArea;\nexport const ReferenceLine: ChartNS['ReferenceLine'] = Primitives.Chart.ReferenceLine;\nexport const ReferenceArea: ChartNS['ReferenceArea'] = Primitives.Chart.ReferenceArea;\nexport const RadialBar: ChartNS['RadialBar'] = Primitives.Chart.RadialBar;\nexport const RadialLine: ChartNS['RadialLine'] = Primitives.Chart.RadialLine;\n// Gauge composition components\nexport const GaugeValueArc: ChartNS['GaugeValueArc'] = Primitives.Chart.GaugeValueArc;\nexport const GaugeReferenceArc: ChartNS['GaugeReferenceArc'] = Primitives.Chart.GaugeReferenceArc;\nexport const GaugePointer: ChartNS['GaugePointer'] = Primitives.Chart.GaugePointer;\n\n/* ─── Root (cartesian) ──────────────────────────────────────────────── */\n\nexport interface StyledChartRootProps extends Primitives.ChartRootProps {\n /** Additional class name on the outer wrapper div */\n wrapperClassName?: string;\n}\n\nconst Root = React.forwardRef<HTMLDivElement, StyledChartRootProps>(\n ({ className, wrapperClassName, ...props }, ref) => (\n <Primitives.Chart.Root\n ref={ref}\n className={cn('text-foreground', wrapperClassName, className)}\n {...props}\n />\n ),\n);\nRoot.displayName = 'Chart.Root';\n\n/* ─── PieRoot ───────────────────────────────────────────────────────── */\n\nconst PieRoot = React.forwardRef<HTMLDivElement, Primitives.ChartPieRootProps>(\n ({ className, ...props }, ref) => (\n <Primitives.Chart.PieRoot\n ref={ref}\n className={cn('text-foreground', className)}\n {...props}\n />\n ),\n);\nPieRoot.displayName = 'Chart.PieRoot';\n\n/* ─── RadarRoot ─────────────────────────────────────────────────────── */\n\nconst RadarRoot = React.forwardRef<HTMLDivElement, Primitives.ChartRadarRootProps>(\n ({ className, ...props }, ref) => (\n <Primitives.Chart.RadarRoot\n ref={ref}\n className={cn('text-foreground', className)}\n {...props}\n />\n ),\n);\nRadarRoot.displayName = 'Chart.RadarRoot';\n\n/* ─── Tooltip — styled with Tailwind ───────────────────────────────── */\n\nexport interface StyledTooltipProps extends Primitives.ChartTooltipProps {\n /** Additional class on the tooltip card */\n boxClassName?: string;\n}\n\nconst Tooltip = React.forwardRef<HTMLDivElement, StyledTooltipProps>(\n ({ className, boxClassName, content, ...props }, ref) => {\n const defaultContent = (state: Primitives.TooltipState) => (\n <div\n className={cn(\n 'border-border bg-popover text-popover-foreground shadow-overlay',\n 'z-50 min-w-[120px] rounded-xl border p-3 text-xs',\n boxClassName,\n )}\n >\n {state.label && (\n <p className=\"mb-1.5 font-semibold text-foreground/80\">{state.label}</p>\n )}\n {state.payload.map((entry, i) => (\n <div key={i} className=\"flex items-center gap-1.5\">\n <span\n className=\"size-2 shrink-0 rounded-full\"\n style={{ background: entry.color }}\n />\n <span className=\"text-muted-foreground\">{entry.name}:</span>\n <span className=\"font-medium\">\n {typeof entry.value === 'number'\n ? entry.value.toLocaleString()\n : entry.value}\n </span>\n </div>\n ))}\n </div>\n );\n\n return (\n <Primitives.Chart.Tooltip\n ref={ref}\n content={content ?? defaultContent}\n className={cn('pointer-events-none', className)}\n {...props}\n />\n );\n },\n);\nTooltip.displayName = 'Chart.Tooltip';\n\n/* ─── Legend ────────────────────────────────────────────────────────── */\n\nconst Legend = React.forwardRef<HTMLDivElement, Primitives.ChartLegendProps>(\n ({ className, ...props }, ref) => (\n <Primitives.Chart.Legend\n ref={ref}\n className={cn(\n 'flex flex-wrap items-center justify-center gap-3 py-2 text-xs text-muted-foreground',\n className,\n )}\n {...props}\n />\n ),\n);\nLegend.displayName = 'Chart.Legend';\n\n/* ─── Heatmap ───────────────────────────────────────────────────────── */\n\nconst Heatmap = React.forwardRef<HTMLDivElement, Primitives.ChartHeatmapProps>(\n ({ className, ...props }, ref) => (\n <Primitives.Chart.Heatmap\n ref={ref}\n className={cn('text-foreground', className)}\n {...props}\n />\n ),\n);\nHeatmap.displayName = 'Chart.Heatmap';\n\n/* ─── Treemap ───────────────────────────────────────────────────────── */\n\nconst Treemap = React.forwardRef<HTMLDivElement, Primitives.ChartTreemapProps>(\n ({ className, ...props }, ref) => (\n <Primitives.Chart.Treemap\n ref={ref}\n className={cn('text-foreground', className)}\n {...props}\n />\n ),\n);\nTreemap.displayName = 'Chart.Treemap';\n\n/* ─── Funnel ────────────────────────────────────────────────────────── */\n\nconst Funnel = React.forwardRef<HTMLDivElement, Primitives.ChartFunnelProps>(\n ({ className, ...props }, ref) => (\n <Primitives.Chart.Funnel\n ref={ref}\n className={cn('text-foreground', className)}\n {...props}\n />\n ),\n);\nFunnel.displayName = 'Chart.Funnel';\n\n/* ─── Gauge ─────────────────────────────────────────────────────────── */\n\nconst Gauge = React.forwardRef<HTMLDivElement, Primitives.ChartGaugeProps>(\n ({ className, ...props }, ref) => (\n <Primitives.Chart.Gauge\n ref={ref}\n className={cn('text-foreground', className)}\n {...props}\n />\n ),\n);\nGauge.displayName = 'Chart.Gauge';\n\n/* ─── GaugeContainer ────────────────────────────────────────────────── */\n\nconst GaugeContainer = React.forwardRef<HTMLDivElement, Primitives.ChartGaugeContainerProps>(\n ({ className, ...props }, ref) => (\n <Primitives.Chart.GaugeContainer\n ref={ref}\n className={cn('text-foreground', className)}\n {...props}\n />\n ),\n);\nGaugeContainer.displayName = 'Chart.GaugeContainer';\n\n/* ─── Candlestick ───────────────────────────────────────────────────── */\n\nconst Candlestick = React.forwardRef<HTMLDivElement, Primitives.ChartCandlestickProps>(\n ({ className, ...props }, ref) => (\n <Primitives.Chart.Candlestick\n ref={ref}\n className={cn('text-foreground', className)}\n {...props}\n />\n ),\n);\nCandlestick.displayName = 'Chart.Candlestick';\n\n/* ─── SparkLine ─────────────────────────────────────────────────────── */\n\nconst SparkLine = React.forwardRef<SVGSVGElement, Primitives.ChartSparkLineProps>(\n ({ className, ...props }, ref) => (\n <Primitives.Chart.SparkLine ref={ref} className={cn('text-foreground', className)} {...props} />\n ),\n);\nSparkLine.displayName = 'Chart.SparkLine';\n\n/* ─── RadialBarRoot ─────────────────────────────────────────────────── */\n\nconst RadialBarRoot = React.forwardRef<HTMLDivElement, Primitives.ChartRadialBarRootProps>(\n ({ className, ...props }, ref) => (\n <Primitives.Chart.RadialBarRoot\n ref={ref}\n className={cn('text-foreground', className)}\n {...props}\n />\n ),\n);\nRadialBarRoot.displayName = 'Chart.RadialBarRoot';\n\n/* ─── Waterfall ─────────────────────────────────────────────────────── */\n\nconst Waterfall = React.forwardRef<HTMLDivElement, Primitives.ChartWaterfallProps>(\n ({ className, ...props }, ref) => (\n <Primitives.Chart.Waterfall\n ref={ref}\n className={cn('text-foreground', className)}\n {...props}\n />\n ),\n);\nWaterfall.displayName = 'Chart.Waterfall';\n\n/* ─── Sankey ────────────────────────────────────────────────────────── */\n\nconst Sankey = React.forwardRef<HTMLDivElement, Primitives.ChartSankeyProps>(\n ({ className, ...props }, ref) => (\n <Primitives.Chart.Sankey\n ref={ref}\n className={cn('text-foreground', className)}\n {...props}\n />\n ),\n);\nSankey.displayName = 'Chart.Sankey';\n\n/* ─── Pyramid ───────────────────────────────────────────────────────── */\n\nconst Pyramid = React.forwardRef<HTMLDivElement, Primitives.ChartPyramidProps>(\n ({ className, ...props }, ref) => (\n <Primitives.Chart.Pyramid\n ref={ref}\n className={cn('text-foreground', className)}\n {...props}\n />\n ),\n);\nPyramid.displayName = 'Chart.Pyramid';\n\n/* ─── Gantt ─────────────────────────────────────────────────────────── */\n\nconst Gantt = React.forwardRef<HTMLDivElement, Primitives.ChartGanttProps>(\n ({ className, ...props }, ref) => (\n <Primitives.Chart.Gantt\n ref={ref}\n className={cn('text-foreground', className)}\n {...props}\n />\n ),\n);\nGantt.displayName = 'Chart.Gantt';\n\n/* ─── RadialLineRoot ─────────────────────────────────────────────────── */\n\nconst RadialLineRoot = React.forwardRef<HTMLDivElement, Primitives.ChartRadialLineRootProps>(\n ({ className, ...props }, ref) => (\n <Primitives.Chart.RadialLineRoot\n ref={ref}\n className={cn('text-foreground', className)}\n {...props}\n />\n ),\n);\nRadialLineRoot.displayName = 'Chart.RadialLineRoot';\n\n/* ─── Histogram ─────────────────────────────────────────────────────── */\n\nconst Histogram = React.forwardRef<HTMLDivElement, Primitives.ChartHistogramProps>(\n ({ className, ...props }, ref) => (\n <Primitives.Chart.Histogram\n ref={ref}\n className={cn('text-foreground', className)}\n {...props}\n />\n ),\n);\nHistogram.displayName = 'Chart.Histogram';\n\n/* ─── Boxplot ───────────────────────────────────────────────────────── */\n\nconst Boxplot = React.forwardRef<HTMLDivElement, Primitives.ChartBoxplotProps>(\n ({ className, ...props }, ref) => (\n <Primitives.Chart.Boxplot\n ref={ref}\n className={cn('text-foreground', className)}\n {...props}\n />\n ),\n);\nBoxplot.displayName = 'Chart.Boxplot';\n\n/* ─── Sunburst ──────────────────────────────────────────────────────── */\n\nconst Sunburst = React.forwardRef<HTMLDivElement, Primitives.ChartSunburstProps>(\n ({ className, ...props }, ref) => (\n <Primitives.Chart.Sunburst\n ref={ref}\n className={cn('text-foreground', className)}\n {...props}\n />\n ),\n);\nSunburst.displayName = 'Chart.Sunburst';\n\n/* ─── Chord ─────────────────────────────────────────────────────────── */\n\nconst Chord = React.forwardRef<HTMLDivElement, Primitives.ChartChordProps>(\n ({ className, ...props }, ref) => (\n <Primitives.Chart.Chord\n ref={ref}\n className={cn('text-foreground', className)}\n {...props}\n />\n ),\n);\nChord.displayName = 'Chart.Chord';\n\n/* ─── LinearGauge ───────────────────────────────────────────────────── */\n\nconst LinearGauge = React.forwardRef<HTMLDivElement, Primitives.ChartLinearGaugeProps>(\n ({ className, ...props }, ref) => (\n <Primitives.Chart.LinearGauge\n ref={ref}\n className={cn('text-foreground', className)}\n {...props}\n />\n ),\n);\nLinearGauge.displayName = 'Chart.LinearGauge';\n\n/* ─── Named component exports ───────────────────────────────────────── */\nexport {\n Root,\n PieRoot,\n RadarRoot,\n Tooltip,\n Legend,\n Heatmap,\n Treemap,\n Funnel,\n Gauge,\n GaugeContainer,\n Candlestick,\n SparkLine,\n RadialBarRoot,\n RadialLineRoot,\n Waterfall,\n Sankey,\n Pyramid,\n Gantt,\n Histogram,\n Boxplot,\n Sunburst,\n Chord,\n LinearGauge,\n};\n\n/* ─── Type re-exports ───────────────────────────────────────────────── */\nexport type {\n ChartRootProps,\n ChartPieRootProps,\n ChartRadarRootProps,\n ChartXAxisProps,\n ChartYAxisProps,\n ChartGridProps,\n ChartBarProps,\n ChartLineProps,\n ChartAreaProps,\n ChartScatterProps,\n ChartBubbleProps,\n ChartPieProps,\n ChartPieCenterLabelProps,\n ChartPolarGridProps,\n ChartPolarAngleAxisProps,\n ChartRadarProps,\n ChartHeatmapProps,\n ChartTreemapProps,\n ChartFunnelProps,\n ChartGaugeProps,\n ChartGaugeContainerProps,\n ChartGaugeValueArcProps,\n ChartGaugeReferenceArcProps,\n ChartGaugePointerProps,\n GaugeContextValue,\n ChartCandlestickProps,\n ChartTooltipProps,\n ChartLegendProps,\n HighlightScope,\n MarkShape,\n ScatterMarkerShape,\n TooltipState,\n ChartSparkLineProps,\n ChartRangeBarProps,\n ChartRangeAreaProps,\n ChartReferenceLineProps,\n ChartReferenceAreaProps,\n ChartRadialBarRootProps,\n ChartRadialBarProps,\n ChartRadialLineRootProps,\n ChartRadialLineProps,\n ChartWaterfallProps,\n ChartSankeyProps,\n ChartPyramidProps,\n ChartGanttProps,\n ChartHistogramProps,\n ChartBoxplotProps,\n BoxplotEntry,\n ChartSunburstProps,\n SunburstNode,\n ChartChordProps,\n ChartLinearGaugeProps,\n WaterfallEntry,\n SankeyNode,\n SankeyLink,\n GanttTask,\n} from '@structyl/primitives';\n","'use client';\n\nimport * as React from 'react';\nimport { cn } from '@structyl/utils';\n\n// ── Root ──────────────────────────────────────────────────────────────────────\n\nexport interface TableProps extends React.HTMLAttributes<HTMLTableElement> {\n /** Shrinks to content width instead of full-width */\n compact?: boolean;\n /** Fixes the header row so it stays visible when scrolling */\n stickyHeader?: boolean;\n /** Controls cell padding size */\n size?: 'small' | 'medium' | 'large';\n}\n\nconst Root = React.forwardRef<HTMLTableElement, TableProps>(\n ({ className, compact = false, stickyHeader = false, size = 'medium', ...props }, ref) => (\n <div className={cn('relative w-full overflow-x-auto', stickyHeader && 'overflow-y-auto max-h-96')}>\n <table\n ref={ref}\n className={cn(\n 'caption-bottom',\n size === 'small' && 'text-xs',\n size === 'medium' && 'text-sm',\n size === 'large' && 'text-base',\n compact ? 'w-auto' : 'w-full',\n stickyHeader && '[&_thead_tr]:sticky [&_thead_tr]:top-0 [&_thead_tr]:z-10 [&_thead_tr]:bg-bg',\n className,\n )}\n {...props}\n />\n </div>\n ),\n);\nRoot.displayName = 'Table';\n\n// ── Caption ───────────────────────────────────────────────────────────────────\n\nconst Caption = React.forwardRef<HTMLTableCaptionElement, React.HTMLAttributes<HTMLTableCaptionElement>>(\n ({ className, ...props }, ref) => (\n <caption ref={ref} className={cn('mt-4 text-sm text-muted-foreground', className)} {...props} />\n ),\n);\nCaption.displayName = 'Table.Caption';\n\n// ── Header ────────────────────────────────────────────────────────────────────\n\nconst Header = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(\n ({ className, ...props }, ref) => (\n <thead ref={ref} className={cn('[&_tr]:border-b [&_tr]:border-border', className)} {...props} />\n ),\n);\nHeader.displayName = 'Table.Header';\n\n// ── Body ──────────────────────────────────────────────────────────────────────\n\nconst Body = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(\n ({ className, ...props }, ref) => (\n <tbody ref={ref} className={cn('[&_tr:last-child]:border-0', className)} {...props} />\n ),\n);\nBody.displayName = 'Table.Body';\n\n// ── Footer ────────────────────────────────────────────────────────────────────\n\nconst Footer = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(\n ({ className, ...props }, ref) => (\n <tfoot ref={ref} className={cn('border-t border-border bg-muted/50 font-medium [&>tr]:last:border-b-0', className)} {...props} />\n ),\n);\nFooter.displayName = 'Table.Footer';\n\n// ── Row ───────────────────────────────────────────────────────────────────────\n\nexport interface TableRowProps extends React.HTMLAttributes<HTMLTableRowElement> {\n /** Highlight this row */\n selected?: boolean;\n}\n\nconst Row = React.forwardRef<HTMLTableRowElement, TableRowProps>(\n ({ className, selected, ...props }, ref) => (\n <tr\n ref={ref}\n data-selected={selected || undefined}\n className={cn(\n 'border-b border-border transition-colors',\n 'hover:bg-muted/50',\n 'data-[selected]:bg-muted',\n className,\n )}\n {...props}\n />\n ),\n);\nRow.displayName = 'Table.Row';\n\n// ── Head cell ─────────────────────────────────────────────────────────────────\n\nexport interface TableHeadProps extends React.ThHTMLAttributes<HTMLTableCellElement> {\n /** Make this column sortable — shows sort icon */\n sortable?: boolean;\n sortDirection?: 'asc' | 'desc' | false;\n}\n\nconst Head = React.forwardRef<HTMLTableCellElement, TableHeadProps>(\n ({ className, sortable, sortDirection, children, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n 'h-10 px-4 text-left align-middle text-xs font-medium text-muted-foreground',\n '[&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]',\n sortable && 'cursor-pointer select-none hover:text-fg',\n className,\n )}\n aria-sort={sortDirection === 'asc' ? 'ascending' : sortDirection === 'desc' ? 'descending' : undefined}\n {...props}\n >\n {sortable ? (\n <span className=\"inline-flex items-center gap-1\">\n {children}\n <span className=\"text-muted-foreground/50\" aria-hidden>\n {sortDirection === 'asc' ? '↑' : sortDirection === 'desc' ? '↓' : '↕'}\n </span>\n </span>\n ) : children}\n </th>\n ),\n);\nHead.displayName = 'Table.Head';\n\n// ── Cell ──────────────────────────────────────────────────────────────────────\n\nconst Cell = React.forwardRef<HTMLTableCellElement, React.TdHTMLAttributes<HTMLTableCellElement>>(\n ({ className, ...props }, ref) => (\n <td\n ref={ref}\n className={cn(\n 'p-4 align-middle',\n '[&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]',\n className,\n )}\n {...props}\n />\n ),\n);\nCell.displayName = 'Table.Cell';\n\n// Named exports for compound API: <Table.Root>, <Table.Header>, etc.\nexport { Root, Caption, Header, Body, Footer, Row, Head, Cell };\n\n// Also export as default namespace for convenience\nconst Table = { Root, Caption, Header, Body, Footer, Row, Head, Cell };\nexport default Table;\n","'use client';\n\nimport * as React from 'react';\nimport { tv, type VariantProps } from 'tailwind-variants';\nimport { cn } from '@structyl/utils';\n\n// ── Variants ─────────────────────────────────────────────────────────────────\n\nexport const calloutVariants = tv({\n base: 'flex gap-3 rounded-lg border p-4 text-sm',\n variants: {\n variant: {\n default: 'bg-muted/50 border-border text-fg',\n info: 'bg-info/10 border-info/30 text-info-foreground [&_.callout-icon]:text-info',\n success: 'bg-success/10 border-success/30 text-success-foreground [&_.callout-icon]:text-success',\n warning: 'bg-warning/10 border-warning/30 text-warning-foreground [&_.callout-icon]:text-warning',\n error: 'bg-destructive/10 border-destructive/30 text-destructive-foreground [&_.callout-icon]:text-destructive',\n neutral: 'bg-secondary border-border text-secondary-foreground',\n },\n },\n defaultVariants: { variant: 'info' },\n});\n\n// ── Root ──────────────────────────────────────────────────────────────────────\n\nexport interface CalloutProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'>,\n VariantProps<typeof calloutVariants> {\n icon?: React.ReactNode;\n title?: React.ReactNode;\n}\n\nconst Callout = React.forwardRef<HTMLDivElement, CalloutProps>(\n ({ className, variant, icon, title, children, ...props }, ref) => (\n <div ref={ref} className={cn(calloutVariants({ variant }), className)} {...props}>\n {icon && (\n <span className=\"callout-icon mt-0.5 flex shrink-0 [&_svg]:size-4\" aria-hidden>\n {icon}\n </span>\n )}\n <div className=\"flex-1 min-w-0\">\n {title && (\n <p className=\"mb-1 font-semibold leading-none\">{title}</p>\n )}\n <div className=\"leading-relaxed opacity-90\">{children}</div>\n </div>\n </div>\n ),\n);\nCallout.displayName = 'Callout';\n\nexport { Callout };\n","'use client';\n\nimport * as React from 'react';\nimport { cn } from '@structyl/utils';\n\n// ── EmptyState ────────────────────────────────────────────────────────────────\n\nexport interface EmptyStateProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {\n /** Icon or illustration to display */\n icon?: React.ReactNode;\n title: React.ReactNode;\n description?: React.ReactNode;\n /** Action button(s) */\n action?: React.ReactNode;\n /** 'page' = full viewport height, 'section' = fit content */\n size?: 'page' | 'section';\n}\n\nconst EmptyState = React.forwardRef<HTMLDivElement, EmptyStateProps>(\n ({ className, icon, title, description, action, size = 'section', ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'flex flex-col items-center justify-center gap-4 text-center',\n size === 'page' ? 'min-h-[60vh] py-16' : 'py-10',\n className,\n )}\n {...props}\n >\n {icon && (\n <div className=\"text-muted-foreground/50 flex size-16 items-center justify-center rounded-full bg-muted [&_svg]:size-8\">\n {icon}\n </div>\n )}\n <div className=\"flex flex-col gap-1.5\">\n <h3 className=\"text-lg font-semibold text-fg\">{title}</h3>\n {description && (\n <p className=\"max-w-sm text-sm text-muted-foreground leading-relaxed\">{description}</p>\n )}\n </div>\n {action && <div className=\"mt-2\">{action}</div>}\n </div>\n ),\n);\nEmptyState.displayName = 'EmptyState';\n\nexport { EmptyState };\n","'use client';\n\nimport * as React from 'react';\nimport { cn } from '@structyl/utils';\nimport { tv, type VariantProps } from 'tailwind-variants';\n\nexport const kbdVariants = tv({\n base: [\n 'inline-flex items-center justify-center rounded border font-mono font-medium leading-none',\n 'border-border bg-muted text-muted-foreground shadow-[0_2px_0_0_hsl(var(--border))]',\n 'select-none',\n ],\n variants: {\n size: {\n sm: 'min-w-[1.25rem] px-1 py-px text-[10px]',\n md: 'min-w-[1.5rem] px-1.5 py-0.5 text-xs',\n lg: 'min-w-[1.75rem] px-2 py-1 text-sm',\n },\n },\n defaultVariants: { size: 'md' },\n});\n\nexport interface KbdProps\n extends React.HTMLAttributes<HTMLElement>,\n VariantProps<typeof kbdVariants> {}\n\nconst Kbd = React.forwardRef<HTMLElement, KbdProps>(\n ({ className, size, ...props }, ref) => (\n <kbd ref={ref} className={cn(kbdVariants({ size }), className)} {...props} />\n ),\n);\nKbd.displayName = 'Kbd';\n\n// ── KeyCombo — renders \"⌘ K\" or \"Ctrl + K\" as a row of Kbd elements ──────────\n\nexport interface KeyComboProps extends React.HTMLAttributes<HTMLSpanElement> {\n keys: string[];\n size?: VariantProps<typeof kbdVariants>['size'];\n}\n\nconst KeyCombo: React.FC<KeyComboProps> = ({ keys, size, className, ...props }) => (\n <span className={cn('inline-flex items-center gap-1', className)} {...props}>\n {keys.map((key, i) => (\n <React.Fragment key={i}>\n {i > 0 && <span className=\"text-muted-foreground/50 text-xs\" aria-hidden>+</span>}\n <Kbd size={size}>{key}</Kbd>\n </React.Fragment>\n ))}\n </span>\n);\nKeyCombo.displayName = 'KeyCombo';\n\nexport { Kbd, KeyCombo };\n","'use client';\n\nimport * as React from 'react';\nimport { cn } from '@structyl/utils';\nimport { tv } from 'tailwind-variants';\n\n// ── Trend indicator ───────────────────────────────────────────────────────────\n\nexport type TrendDirection = 'up' | 'down' | 'neutral';\n\nconst trendVariants = tv({\n base: 'inline-flex items-center gap-0.5 rounded-full px-1.5 py-0.5 text-xs font-medium',\n variants: {\n direction: {\n up: 'bg-success/10 text-success',\n down: 'bg-destructive/10 text-destructive',\n neutral: 'bg-muted text-muted-foreground',\n },\n },\n});\n\ninterface TrendBadgeProps {\n value: string | number;\n direction?: TrendDirection;\n className?: string;\n}\n\nconst TrendBadge: React.FC<TrendBadgeProps> = ({ value, direction = 'neutral', className }) => (\n <span className={cn(trendVariants({ direction }), className)}>\n {direction === 'up' && <span aria-hidden>↑</span>}\n {direction === 'down' && <span aria-hidden>↓</span>}\n {direction === 'neutral' && <span aria-hidden>→</span>}\n {value}\n </span>\n);\n\n// ── Color map for highlight tint ──────────────────────────────────────────────\n\ntype StatColor = 'primary' | 'secondary' | 'error' | 'warning' | 'info' | 'success';\n\nconst highlightClasses: Record<StatColor, string> = {\n primary: 'border-primary/30 bg-primary/5',\n secondary: 'border-secondary/30 bg-secondary/5',\n error: 'border-destructive/30 bg-destructive/5',\n warning: 'border-warning/30 bg-warning/5',\n info: 'border-info/30 bg-info/5',\n success: 'border-success/30 bg-success/5',\n};\n\nconst iconColorClasses: Record<StatColor, string> = {\n primary: 'text-primary',\n secondary: 'text-secondary-dark',\n error: 'text-destructive',\n warning: 'text-warning',\n info: 'text-info',\n success: 'text-success',\n};\n\n// ── Stat ──────────────────────────────────────────────────────────────────────\n\nexport interface StatProps extends React.HTMLAttributes<HTMLDivElement> {\n label: React.ReactNode;\n value: React.ReactNode;\n description?: React.ReactNode;\n trend?: string | number;\n trendDirection?: TrendDirection;\n trendLabel?: string;\n icon?: React.ReactNode;\n /** Semantic color for the card tint and icon */\n color?: StatColor;\n /** @deprecated Use color instead */\n highlight?: boolean;\n}\n\nconst Stat = React.forwardRef<HTMLDivElement, StatProps>(\n ({ className, label, value, description, trend, trendDirection, trendLabel, icon, color, highlight, ...props }, ref) => {\n const resolvedColor: StatColor | undefined = color ?? (highlight ? 'primary' : undefined);\n return (\n <div\n ref={ref}\n className={cn(\n 'flex flex-col gap-1 rounded-xl border border-border bg-card p-5',\n resolvedColor && highlightClasses[resolvedColor],\n className,\n )}\n {...props}\n >\n <div className=\"flex items-center justify-between\">\n <p className=\"text-sm font-medium text-muted-foreground\">{label}</p>\n {icon && (\n <span\n className={cn(\n '[&_svg]:size-4',\n resolvedColor ? iconColorClasses[resolvedColor] : 'text-muted-foreground',\n )}\n aria-hidden\n >\n {icon}\n </span>\n )}\n </div>\n <p className=\"text-2xl font-bold tracking-tight text-fg\">{value}</p>\n <div className=\"flex items-center gap-2\">\n {trend !== undefined && (\n <TrendBadge value={trend} direction={trendDirection} />\n )}\n {description && (\n <p className=\"text-xs text-muted-foreground\">{description}</p>\n )}\n {trendLabel && (\n <p className=\"text-xs text-muted-foreground\">{trendLabel}</p>\n )}\n </div>\n </div>\n );\n },\n);\nStat.displayName = 'Stat';\n\n// ── StatGroup ─────────────────────────────────────────────────────────────────\n\nexport interface StatGroupProps extends React.HTMLAttributes<HTMLDivElement> {\n columns?: 1 | 2 | 3 | 4;\n}\n\nconst StatGroup = React.forwardRef<HTMLDivElement, StatGroupProps>(\n ({ className, columns = 3, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'grid gap-4',\n columns === 1 && 'grid-cols-1',\n columns === 2 && 'grid-cols-1 sm:grid-cols-2',\n columns === 3 && 'grid-cols-1 sm:grid-cols-2 lg:grid-cols-3',\n columns === 4 && 'grid-cols-2 lg:grid-cols-4',\n className,\n )}\n {...props}\n />\n ),\n);\nStatGroup.displayName = 'StatGroup';\n\nexport { Stat, StatGroup, TrendBadge };\n","'use client';\n\nimport * as React from 'react';\nimport { cn } from '@structyl/utils';\n\n// ── Context ───────────────────────────────────────────────────────────────────\n\ninterface TimelineCtx {\n side: 'left' | 'right' | 'alternate';\n}\n\nconst TimelineContext = React.createContext<TimelineCtx>({ side: 'left' });\n\ninterface TimelineItemCtx {\n last: boolean;\n}\n\nconst TimelineItemContext = React.createContext<TimelineItemCtx>({ last: false });\n\n// ── Root ──────────────────────────────────────────────────────────────────────\n\nexport interface TimelineProps extends React.HTMLAttributes<HTMLOListElement> {\n side?: 'left' | 'right' | 'alternate';\n /** Alias for side */\n position?: 'left' | 'right' | 'alternate';\n}\n\nconst Root = React.forwardRef<HTMLOListElement, TimelineProps>(\n ({ className, side, position, ...props }, ref) => {\n const resolvedSide = side ?? position ?? 'left';\n return (\n <TimelineContext.Provider value={{ side: resolvedSide }}>\n <ol\n ref={ref}\n className={cn(\n 'flex flex-col',\n resolvedSide === 'alternate' && '[&>li:nth-child(even)]:flex-row-reverse [&>li:nth-child(even)>div:last-child]:text-right',\n className,\n )}\n {...props}\n />\n </TimelineContext.Provider>\n );\n },\n);\nRoot.displayName = 'Timeline.Root';\n\n// ── Item ──────────────────────────────────────────────────────────────────────\n\nexport interface TimelineItemProps extends React.HTMLAttributes<HTMLLIElement> {\n /** Whether this is the last item (hides the connector line) */\n last?: boolean;\n}\n\nconst Item = React.forwardRef<HTMLLIElement, TimelineItemProps>(\n ({ className, last = false, children, ...props }, ref) => {\n const { side } = React.useContext(TimelineContext);\n const isRight = side === 'right';\n\n return (\n <TimelineItemContext.Provider value={{ last }}>\n <li\n ref={ref}\n className={cn('relative flex gap-4', isRight && 'flex-row-reverse', className)}\n {...props}\n >\n {children}\n </li>\n </TimelineItemContext.Provider>\n );\n },\n);\nItem.displayName = 'Timeline.Item';\n\n// ── Separator ─────────────────────────────────────────────────────────────────\n\nconst Separator = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, children, ...props }, ref) => {\n const { last } = React.useContext(TimelineItemContext);\n return (\n <div ref={ref} className={cn('flex flex-col items-center', className)} {...props}>\n {children}\n {!last && <div className=\"bg-border mt-1 flex-1 w-px\" />}\n </div>\n );\n },\n);\nSeparator.displayName = 'Timeline.Separator';\n\n// ── Dot ───────────────────────────────────────────────────────────────────────\n\nconst dotColorMap: Record<string, string> = {\n success: 'border-success text-success',\n warning: 'border-warning text-warning',\n error: 'border-destructive text-destructive',\n info: 'border-info text-info',\n primary: 'border-primary text-primary',\n};\n\nconst dotFilledColorMap: Record<string, string> = {\n success: 'bg-success text-success-foreground border-success',\n warning: 'bg-warning text-warning-foreground border-warning',\n error: 'bg-destructive text-destructive-foreground border-destructive',\n info: 'bg-info text-info-foreground border-info',\n primary: 'bg-primary text-primary-foreground border-primary',\n};\n\nexport interface TimelineDotProps extends React.HTMLAttributes<HTMLDivElement> {\n color?: 'success' | 'warning' | 'error' | 'info' | 'primary';\n variant?: 'filled' | 'outlined';\n}\n\nconst Dot = React.forwardRef<HTMLDivElement, TimelineDotProps>(\n ({ className, children, color, variant = 'filled', ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'z-10 flex size-8 shrink-0 items-center justify-center rounded-full border shadow-sm [&_svg]:size-4',\n !color && 'border-border bg-bg text-muted-foreground',\n color && variant === 'outlined' && dotColorMap[color],\n color && variant === 'outlined' && 'bg-bg',\n color && variant === 'filled' && dotFilledColorMap[color],\n className,\n )}\n {...props}\n >\n {children ?? <span className=\"size-2 rounded-full bg-current\" />}\n </div>\n ),\n);\nDot.displayName = 'Timeline.Dot';\n\n// ── Content ───────────────────────────────────────────────────────────────────\n\nconst Content = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex-1 pb-8', className)} {...props} />\n ),\n);\nContent.displayName = 'Timeline.Content';\n\n// ── Convenience sub-parts ─────────────────────────────────────────────────────\n\nconst ItemTitle = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLParagraphElement>>(\n ({ className, ...props }, ref) => (\n <p ref={ref} className={cn('text-sm font-semibold text-fg leading-none', className)} {...props} />\n ),\n);\nItemTitle.displayName = 'Timeline.ItemTitle';\n\nconst ItemDescription = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLParagraphElement>>(\n ({ className, ...props }, ref) => (\n <p ref={ref} className={cn('mt-1 text-sm text-muted-foreground', className)} {...props} />\n ),\n);\nItemDescription.displayName = 'Timeline.ItemDescription';\n\nconst ItemTime = React.forwardRef<HTMLTimeElement, React.HTMLAttributes<HTMLTimeElement>>(\n ({ className, ...props }, ref) => (\n <time ref={ref} className={cn('text-xs text-muted-foreground/70', className)} {...props} />\n ),\n);\nItemTime.displayName = 'Timeline.ItemTime';\n\nexport { Root, Item, Separator, Dot, Content, ItemTitle, ItemDescription, ItemTime };\n","'use client';\n\nimport * as React from 'react';\nimport { cn } from '@structyl/utils';\nimport { tv } from 'tailwind-variants';\n\n// ── Icons ─────────────────────────────────────────────────────────────────────\n\nconst StarIcon = ({ filled, className }: { filled?: boolean; className?: string }) => (\n <svg\n viewBox=\"0 0 24 24\"\n fill={filled ? 'currentColor' : 'none'}\n stroke=\"currentColor\"\n strokeWidth={1.5}\n className={className}\n aria-hidden\n >\n <path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\" />\n </svg>\n);\n\nconst HeartIcon = ({ filled, className }: { filled?: boolean; className?: string }) => (\n <svg viewBox=\"0 0 24 24\" fill={filled ? 'currentColor' : 'none'} stroke=\"currentColor\" strokeWidth={1.5} className={className} aria-hidden>\n <path d=\"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78L12 21.23l8.84-8.84a5.5 5.5 0 0 0 0-7.78z\" />\n </svg>\n);\n\n// ── Variants ─────────────────────────────────────────────────────────────────\n\nexport const ratingVariants = tv({\n base: 'flex items-center outline-none',\n variants: {\n size: {\n sm: '[&_svg]:size-4',\n md: '[&_svg]:size-6',\n lg: '[&_svg]:size-8',\n xl: '[&_svg]:size-10',\n },\n color: {\n yellow: 'text-yellow-400 [&_svg]:stroke-yellow-400',\n orange: 'text-orange-400 [&_svg]:stroke-orange-400',\n red: 'text-red-400 [&_svg]:stroke-red-400',\n primary: 'text-primary [&_svg]:stroke-primary',\n },\n },\n defaultVariants: { size: 'md', color: 'yellow' },\n});\n\n// ── Rating ────────────────────────────────────────────────────────────────────\n\nexport interface RatingProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {\n value?: number;\n defaultValue?: number;\n onChange?: (value: number) => void;\n max?: number;\n step?: number;\n disabled?: boolean;\n readOnly?: boolean;\n required?: boolean;\n name?: string;\n icon?: 'star' | 'heart';\n gap?: string;\n size?: 'sm' | 'md' | 'lg' | 'xl';\n color?: 'yellow' | 'orange' | 'red' | 'primary';\n /** Returns an accessible label string for a given value, e.g. (v) => `${v} stars` */\n getLabelText?: (value: number) => string;\n}\n\nconst Rating = React.forwardRef<HTMLDivElement, RatingProps>(\n (\n {\n className,\n size,\n color,\n icon = 'star',\n max = 5,\n step = 1,\n gap = '0.25rem',\n value: valueProp,\n defaultValue = 0,\n onChange,\n disabled = false,\n readOnly = false,\n required,\n name,\n style,\n getLabelText,\n ...props\n },\n ref,\n ) => {\n const isControlled = valueProp !== undefined;\n const [uncontrolledValue, setUncontrolledValue] = React.useState(defaultValue);\n const [hovered, setHovered] = React.useState<number | null>(null);\n\n const value = isControlled ? valueProp : uncontrolledValue;\n const displayValue = hovered ?? value;\n const items = Array.from({ length: Math.ceil(max / step) }, (_, i) => (i + 1) * step);\n\n const setValue = (next: number) => {\n if (!isControlled) setUncontrolledValue(next);\n onChange?.(next);\n };\n\n return (\n <div\n ref={ref}\n role=\"slider\"\n aria-valuemin={0}\n aria-valuemax={max}\n aria-valuenow={value}\n aria-valuetext={getLabelText ? getLabelText(value) : `${value} out of ${max}`}\n aria-disabled={disabled || undefined}\n aria-readonly={readOnly || undefined}\n aria-required={required || undefined}\n tabIndex={disabled ? -1 : 0}\n data-disabled={disabled ? '' : undefined}\n data-readonly={readOnly ? '' : undefined}\n className={cn(ratingVariants({ size, color }), className)}\n style={{ gap, ...style }}\n onMouseLeave={() => !readOnly && setHovered(null)}\n onKeyDown={(e) => {\n if (disabled || readOnly) return;\n if (e.key === 'ArrowRight' || e.key === 'ArrowUp') {\n e.preventDefault();\n setValue(Math.min(value + step, max));\n } else if (e.key === 'ArrowLeft' || e.key === 'ArrowDown') {\n e.preventDefault();\n setValue(Math.max(value - step, 0));\n } else if (e.key === 'Home') {\n e.preventDefault();\n setValue(0);\n } else if (e.key === 'End') {\n e.preventDefault();\n setValue(max);\n }\n }}\n {...props}\n >\n {items.map((itemValue) => {\n const filled = displayValue >= itemValue;\n return (\n <span\n key={itemValue}\n onMouseEnter={() => !disabled && !readOnly && setHovered(itemValue)}\n onClick={() => {\n if (disabled || readOnly) return;\n setValue(itemValue === value ? 0 : itemValue);\n }}\n className={cn(\n 'transition-transform duration-100',\n !disabled && !readOnly && 'cursor-pointer hover:scale-110',\n !filled && 'opacity-30',\n )}\n >\n {icon === 'heart' ? <HeartIcon filled={filled} /> : <StarIcon filled={filled} />}\n </span>\n );\n })}\n {name && <input type=\"hidden\" name={name} value={value} />}\n </div>\n );\n },\n);\nRating.displayName = 'Rating';\n\nexport { Rating };\n","'use client';\n\nimport * as React from 'react';\nimport { Popover as PopoverPrimitive } from '@structyl/primitives';\nimport { cn } from '@structyl/utils';\nimport { Button, type ButtonProps } from '../button';\nimport { Typography } from '../typography';\n\n// ── Popconfirm ────────────────────────────────────────────────────────────────\n\nexport interface PopconfirmProps {\n children: React.ReactNode;\n title: React.ReactNode;\n description?: React.ReactNode;\n confirmLabel?: string;\n cancelLabel?: string;\n /**\n * Variant of the confirm button. Uses MUI-style naming:\n * use `\"outlined\"` (not `\"outline\"`) for the bordered style.\n */\n confirmVariant?: ButtonProps['variant'];\n /** Color of the confirm button when using contained/outlined/text variants */\n confirmColor?: ButtonProps['color'];\n onConfirm?: () => void;\n onCancel?: () => void;\n /** Controlled open state */\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n disabled?: boolean;\n side?: 'top' | 'right' | 'bottom' | 'left';\n align?: 'start' | 'center' | 'end';\n /** Show loading spinner on confirm button while async confirm runs */\n loading?: boolean;\n}\n\nconst Popconfirm: React.FC<PopconfirmProps> = ({\n children,\n title,\n description,\n confirmLabel = 'Confirm',\n cancelLabel = 'Cancel',\n confirmVariant = 'default',\n confirmColor,\n onConfirm,\n onCancel,\n open: openProp,\n onOpenChange,\n disabled = false,\n side = 'top',\n align = 'center',\n loading = false,\n}) => {\n const titleId = React.useId();\n const [internalOpen, setInternalOpen] = React.useState(false);\n const isControlled = openProp !== undefined;\n const open = isControlled ? openProp : internalOpen;\n\n const setOpen = (v: boolean) => {\n if (!isControlled) setInternalOpen(v);\n onOpenChange?.(v);\n };\n\n const handleConfirm = () => {\n onConfirm?.();\n if (!loading) setOpen(false);\n };\n\n const handleCancel = () => {\n onCancel?.();\n setOpen(false);\n };\n\n if (disabled) return <>{children}</>;\n\n return (\n <PopoverPrimitive.Root open={open} onOpenChange={setOpen}>\n <PopoverPrimitive.Trigger asChild>\n {children}\n </PopoverPrimitive.Trigger>\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n side={side}\n align={align}\n sideOffset={8}\n className={cn(\n 'z-50 w-72 rounded-lg border border-border bg-bg p-4 shadow-lg',\n 'animate-in fade-in-0 zoom-in-95 duration-100',\n 'data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95',\n 'data-[side=bottom]:slide-in-from-top-1 data-[side=left]:slide-in-from-right-1',\n 'data-[side=right]:slide-in-from-left-1 data-[side=top]:slide-in-from-bottom-1',\n )}\n aria-labelledby={titleId}\n onOpenAutoFocus={(e) => e.preventDefault()}\n >\n {/* Warning icon + title */}\n <div className=\"flex items-start gap-2.5\">\n <span className=\"mt-0.5 flex size-5 shrink-0 items-center justify-center text-warning\" aria-hidden>\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth={2} className=\"size-4\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M12 9v4m0 4h.01M10.29 3.86L1.82 18a2 2 0 001.71 3h16.94a2 2 0 001.71-3L13.71 3.86a2 2 0 00-3.42 0z\" />\n </svg>\n </span>\n <div className=\"flex-1\">\n <Typography id={titleId} variant=\"body2\" className=\"font-semibold text-fg\">{title}</Typography>\n {description && (\n <Typography variant=\"muted\" className=\"mt-1 text-xs leading-relaxed\">{description}</Typography>\n )}\n </div>\n </div>\n\n {/* Actions */}\n <div className=\"mt-4 flex justify-end gap-2\">\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n onClick={handleCancel}\n >\n {cancelLabel}\n </Button>\n <Button\n type=\"button\"\n variant={confirmVariant}\n color={confirmColor}\n size=\"sm\"\n onClick={handleConfirm}\n disabled={loading}\n >\n {loading ? (\n <span className=\"inline-flex items-center gap-1.5\">\n <svg className=\"size-3 animate-spin\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden>\n <circle className=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" strokeWidth=\"4\" />\n <path className=\"opacity-75\" fill=\"currentColor\" d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z\" />\n </svg>\n {confirmLabel}\n </span>\n ) : confirmLabel}\n </Button>\n </div>\n <PopoverPrimitive.Arrow className=\"fill-border\" width={10} height={5} />\n </PopoverPrimitive.Content>\n </PopoverPrimitive.Portal>\n </PopoverPrimitive.Root>\n );\n};\nPopconfirm.displayName = 'Popconfirm';\n\nexport { Popconfirm };\n"]}
|