@neuronection/assistant-ui 0.14.0 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/README.md +2 -0
  3. package/dist/about.d.ts +4 -0
  4. package/dist/about.js +1 -1
  5. package/dist/chip-input.d.ts +2 -0
  6. package/dist/chip-input.js +1 -1
  7. package/dist/chunk-3IXMZ6KG.js +439 -0
  8. package/dist/chunk-3IXMZ6KG.js.map +1 -0
  9. package/dist/chunk-535TM7SK.js +119 -0
  10. package/dist/chunk-535TM7SK.js.map +1 -0
  11. package/dist/{chunk-TPLQL62V.js → chunk-HIRR2F4R.js} +42 -5
  12. package/dist/chunk-HIRR2F4R.js.map +1 -0
  13. package/dist/{chunk-7RTSSBBR.js → chunk-INMAUGBK.js} +39 -63
  14. package/dist/chunk-INMAUGBK.js.map +1 -0
  15. package/dist/{chunk-UIUALJNR.js → chunk-PSFJN7WH.js} +12 -7
  16. package/dist/chunk-PSFJN7WH.js.map +1 -0
  17. package/dist/{chunk-JWAX2AOO.js → chunk-XSJ3TWWZ.js} +43 -3
  18. package/dist/chunk-XSJ3TWWZ.js.map +1 -0
  19. package/dist/{chunk-WA7Q4TTA.js → chunk-YIGLULRG.js} +3 -3
  20. package/dist/{chunk-WA7Q4TTA.js.map → chunk-YIGLULRG.js.map} +1 -1
  21. package/dist/context-menu.js +1 -1
  22. package/dist/index.d.ts +3 -1
  23. package/dist/index.js +9 -7
  24. package/dist/index.js.map +1 -1
  25. package/dist/menu.d.ts +7 -1
  26. package/dist/menu.js +1 -1
  27. package/dist/scale-slider.js +1 -1
  28. package/dist/sidebar-nav.d.ts +66 -0
  29. package/dist/sidebar-nav.js +3 -0
  30. package/dist/sidebar-nav.js.map +1 -0
  31. package/dist/styles.css +1 -1
  32. package/dist/user-menu.d.ts +30 -0
  33. package/dist/user-menu.js +3 -0
  34. package/dist/user-menu.js.map +1 -0
  35. package/package.json +9 -1
  36. package/dist/chunk-7RTSSBBR.js.map +0 -1
  37. package/dist/chunk-JWAX2AOO.js.map +0 -1
  38. package/dist/chunk-TPLQL62V.js.map +0 -1
  39. package/dist/chunk-UIUALJNR.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/scale-slider/ScaleSlider.tsx"],"names":["ScaleSlider"],"mappings":"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","file":"chunk-PSFJN7WH.js","sourcesContent":["import * as React from 'react'\nimport { cn } from '../../lib/utils'\n\nexport interface ScaleSliderProps\n extends Omit<React.ComponentProps<'div'>, 'onChange'> {\n value: number | '' | null | undefined\n onChange: (value: number | '') => void\n min: number\n max: number\n step?: number\n lowLabel?: string\n highLabel?: string\n showInput?: boolean\n disabled?: boolean\n ariaLabel?: string\n}\n\nexport function scaleColorForValue(\n min: number,\n max: number,\n value: number | '' | null | undefined,\n): string {\n if (value === '' || value === null || value === undefined) {\n return 'var(--as-muted-fg)'\n }\n const numeric = Number(value)\n if (Number.isNaN(numeric)) return 'var(--as-muted-fg)'\n return positionColor((numeric - min) / (max - min))\n}\n\nfunction positionColor(position: number): string {\n const clamped = Math.max(0, Math.min(1, position))\n const hue = 142 * (1 - clamped)\n return `hsl(${hue.toFixed(0)}, 72%, 48%)`\n}\n\nexport const ScaleSlider = React.forwardRef<HTMLDivElement, ScaleSliderProps>(\n function ScaleSlider(\n {\n value,\n onChange,\n min,\n max,\n step = 1,\n lowLabel,\n highLabel,\n showInput = true,\n disabled = false,\n ariaLabel = 'Scale',\n className,\n ...props\n },\n ref,\n ) {\n const numericValue =\n value === '' ||\n value === null ||\n value === undefined ||\n Number.isNaN(value as number)\n ? null\n : Number(value)\n const thumbColor = scaleColorForValue(min, max, value)\n const sliderValue = numericValue === null ? min : numericValue\n\n const handleSlider = (event: React.ChangeEvent<HTMLInputElement>) => {\n const numeric = Number(event.target.value)\n onChange(Number.isNaN(numeric) ? '' : numeric)\n }\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const raw = event.target.value\n if (raw === '') {\n onChange('')\n return\n }\n const numeric = Number(raw)\n onChange(Number.isNaN(numeric) ? '' : numeric)\n }\n\n const handleInputBlur = () => {\n if (numericValue === null) return\n const clamped = Math.max(min, Math.min(max, numericValue))\n if (clamped !== numericValue) onChange(clamped)\n }\n\n const showLabels = Boolean(lowLabel || highLabel)\n const progress =\n numericValue === null\n ? 0\n : Math.max(0, Math.min(100, ((numericValue - min) / (max - min)) * 100))\n\n return (\n <div\n ref={ref}\n data-as=\"scale-slider\"\n className={cn('flex flex-col gap-1.5', className)}\n {...props}\n >\n <div className=\"flex items-center gap-3\">\n <input\n type=\"range\"\n aria-label={ariaLabel}\n className={cn(\n 'flex-1 cursor-pointer',\n disabled && 'cursor-not-allowed opacity-50',\n )}\n min={min}\n max={max}\n step={step}\n value={sliderValue}\n disabled={disabled}\n onChange={handleSlider}\n style={\n {\n '--as-slider-color': thumbColor,\n '--as-slider-progress': `${progress}%`,\n } as React.CSSProperties\n }\n />\n {showInput ? (\n <input\n type=\"number\"\n aria-label={`${ariaLabel} value`}\n min={min}\n max={max}\n step={step}\n value={value ?? ''}\n disabled={disabled}\n onChange={handleInputChange}\n onBlur={handleInputBlur}\n style={{ borderColor: thumbColor }}\n className=\"w-16 rounded-[var(--as-radius-sm)] border-2 bg-[var(--as-surface-raised)] px-2 py-1.5 text-center text-sm font-bold text-[var(--as-fg)] focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-[var(--as-focus-ring)] disabled:opacity-50\"\n />\n ) : null}\n </div>\n {showLabels ? (\n <div className=\"flex justify-between text-xs font-medium\">\n <span className=\"text-[var(--as-muted-fg)]\">{lowLabel}</span>\n <span className=\"text-[var(--as-muted-fg)]\">{highLabel}</span>\n </div>\n ) : null}\n </div>\n )\n },\n)\n"]}
@@ -55,6 +55,46 @@ var MenuSeparator = React.forwardRef(function MenuSeparator2({ className, ...pro
55
55
  }
56
56
  );
57
57
  });
58
+ var menuItemBaseClass = "flex w-full cursor-pointer select-none items-center gap-2 rounded-[calc(var(--as-radius-sm)-2px)] px-2 py-1.5 text-left text-sm outline-none transition-colors focus:bg-[var(--as-secondary)] data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:size-4 [&_svg]:shrink-0";
59
+ var MenuCheckboxItem = React.forwardRef(function MenuCheckboxItem2({ className, icon: Icon, danger, disabled, pending, children, ...props }, ref) {
60
+ return /* @__PURE__ */ jsxs(
61
+ DropdownMenuPrimitive.CheckboxItem,
62
+ {
63
+ ref,
64
+ disabled: disabled || pending,
65
+ "aria-busy": pending || void 0,
66
+ className: cn(
67
+ menuItemBaseClass,
68
+ danger && "text-[var(--as-danger)] focus:bg-[var(--as-danger)]/10",
69
+ className
70
+ ),
71
+ ...props,
72
+ children: [
73
+ Icon ? /* @__PURE__ */ jsx(Icon, { "aria-hidden": true }) : null,
74
+ children,
75
+ /* @__PURE__ */ jsx(
76
+ DropdownMenuPrimitive.ItemIndicator,
77
+ {
78
+ className: "ml-auto inline-flex items-center justify-center",
79
+ children: /* @__PURE__ */ jsx(
80
+ "svg",
81
+ {
82
+ viewBox: "0 0 24 24",
83
+ fill: "none",
84
+ stroke: "currentColor",
85
+ strokeWidth: "2",
86
+ strokeLinecap: "round",
87
+ strokeLinejoin: "round",
88
+ "aria-hidden": true,
89
+ children: /* @__PURE__ */ jsx("path", { d: "M20 6 9 17l-5-5" })
90
+ }
91
+ )
92
+ }
93
+ )
94
+ ]
95
+ }
96
+ );
97
+ });
58
98
  var MenuLabel = React.forwardRef(function MenuLabel2({ className, ...props }, ref) {
59
99
  return /* @__PURE__ */ jsx(
60
100
  DropdownMenuPrimitive.Label,
@@ -104,6 +144,6 @@ function ActionMenu({
104
144
  ] });
105
145
  }
106
146
 
107
- export { ActionMenu, Menu, MenuContent, MenuGroup, MenuItem, MenuLabel, MenuSeparator, MenuTrigger };
108
- //# sourceMappingURL=chunk-JWAX2AOO.js.map
109
- //# sourceMappingURL=chunk-JWAX2AOO.js.map
147
+ export { ActionMenu, Menu, MenuCheckboxItem, MenuContent, MenuGroup, MenuItem, MenuLabel, MenuSeparator, MenuTrigger };
148
+ //# sourceMappingURL=chunk-XSJ3TWWZ.js.map
149
+ //# sourceMappingURL=chunk-XSJ3TWWZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/menu/Menu.tsx"],"names":["MenuContent","MenuItem","MenuSeparator","MenuCheckboxItem","MenuLabel"],"mappings":"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","file":"chunk-XSJ3TWWZ.js","sourcesContent":["import * as React from 'react'\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu'\nimport { Loader2, type LucideIcon } from 'lucide-react'\nimport { cn } from '../../lib/utils'\n\nexport const Menu = DropdownMenuPrimitive.Root\nexport const MenuTrigger = DropdownMenuPrimitive.Trigger\nexport const MenuGroup = DropdownMenuPrimitive.Group\n\nexport const MenuContent = React.forwardRef<\n React.ComponentRef<typeof DropdownMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>\n>(function MenuContent({ className, sideOffset = 6, children, ...props }, ref) {\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n ref={ref}\n data-as=\"menu\"\n sideOffset={sideOffset}\n collisionPadding={8}\n className={cn(\n 'as-anim-pop z-[var(--as-z-popover)] min-w-40 overflow-hidden rounded-[var(--as-radius-lg)] border border-[var(--as-border)] bg-[var(--as-surface-raised)] p-1 text-[var(--as-fg)] shadow-[var(--as-shadow-3)]',\n className,\n )}\n {...props}\n >\n {children}\n </DropdownMenuPrimitive.Content>\n </DropdownMenuPrimitive.Portal>\n )\n})\n\nexport interface MenuItemProps\n extends React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> {\n icon?: LucideIcon\n danger?: boolean\n pending?: boolean\n}\n\nexport const MenuItem = React.forwardRef<\n React.ComponentRef<typeof DropdownMenuPrimitive.Item>,\n MenuItemProps\n>(function MenuItem({ className, icon: Icon, danger, pending, disabled, children, ...props }, ref) {\n const SpinnerIcon = pending ? Loader2 : null\n return (\n <DropdownMenuPrimitive.Item\n ref={ref}\n disabled={disabled || pending}\n aria-busy={pending || undefined}\n className={cn(\n 'flex w-full cursor-pointer select-none items-center gap-2 rounded-[calc(var(--as-radius-sm)-2px)] px-2 py-1.5 text-left text-sm outline-none transition-colors focus:bg-[var(--as-secondary)] data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:size-4 [&_svg]:shrink-0',\n danger && 'text-[var(--as-danger)] focus:bg-[var(--as-danger)]/10',\n className,\n )}\n {...props}\n >\n {SpinnerIcon ? (\n <SpinnerIcon className=\"animate-spin\" aria-hidden />\n ) : Icon ? (\n <Icon aria-hidden />\n ) : null}\n {children}\n </DropdownMenuPrimitive.Item>\n )\n})\n\nexport const MenuSeparator = React.forwardRef<\n React.ComponentRef<typeof DropdownMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>\n>(function MenuSeparator({ className, ...props }, ref) {\n return (\n <DropdownMenuPrimitive.Separator\n ref={ref}\n className={cn('-mx-1 my-1 h-px bg-[var(--as-border)]', className)}\n {...props}\n />\n )\n})\n\nconst menuItemBaseClass =\n 'flex w-full cursor-pointer select-none items-center gap-2 rounded-[calc(var(--as-radius-sm)-2px)] px-2 py-1.5 text-left text-sm outline-none transition-colors focus:bg-[var(--as-secondary)] data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:size-4 [&_svg]:shrink-0'\n\nexport interface MenuCheckboxItemProps\n extends React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem> {\n icon?: LucideIcon\n danger?: boolean\n pending?: boolean\n}\n\nexport const MenuCheckboxItem = React.forwardRef<\n React.ComponentRef<typeof DropdownMenuPrimitive.CheckboxItem>,\n MenuCheckboxItemProps\n>(function MenuCheckboxItem(\n { className, icon: Icon, danger, disabled, pending, children, ...props },\n ref,\n) {\n return (\n <DropdownMenuPrimitive.CheckboxItem\n ref={ref}\n disabled={disabled || pending}\n aria-busy={pending || undefined}\n className={cn(\n menuItemBaseClass,\n danger && 'text-[var(--as-danger)] focus:bg-[var(--as-danger)]/10',\n className,\n )}\n {...props}\n >\n {Icon ? <Icon aria-hidden /> : null}\n {children}\n <DropdownMenuPrimitive.ItemIndicator\n className=\"ml-auto inline-flex items-center justify-center\"\n >\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden\n >\n <path d=\"M20 6 9 17l-5-5\" />\n </svg>\n </DropdownMenuPrimitive.ItemIndicator>\n </DropdownMenuPrimitive.CheckboxItem>\n )\n})\n\nexport const MenuLabel = React.forwardRef<\n React.ComponentRef<typeof DropdownMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label>\n>(function MenuLabel({ className, ...props }, ref) {\n return (\n <DropdownMenuPrimitive.Label\n ref={ref}\n className={cn('px-2 py-1.5 text-xs font-medium text-[var(--as-muted-fg)]', className)}\n {...props}\n />\n )\n})\n\nexport interface ActionMenuItem {\n key: string\n label: string\n icon?: LucideIcon\n danger?: boolean\n disabled?: boolean\n pending?: boolean\n onSelect: () => void\n}\n\nexport interface ActionMenuProps {\n label: string\n trigger: React.ReactNode\n items: ActionMenuItem[]\n align?: 'start' | 'center' | 'end'\n side?: 'top' | 'right' | 'bottom' | 'left'\n triggerClassName?: string\n panelClassName?: string\n disabled?: boolean\n}\n\nexport function ActionMenu({\n label,\n trigger,\n items,\n align = 'end',\n side = 'bottom',\n triggerClassName,\n panelClassName,\n disabled = false,\n}: ActionMenuProps) {\n return (\n <Menu modal={false}>\n <MenuTrigger\n type=\"button\"\n aria-label={label}\n disabled={disabled}\n className={cn(\n 'inline-flex cursor-pointer items-center justify-center gap-1 rounded-full transition-colors hover:bg-[var(--as-secondary)] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--as-focus-ring)] disabled:pointer-events-none disabled:opacity-50',\n triggerClassName ?? 'size-9',\n )}\n >\n {trigger}\n </MenuTrigger>\n <MenuContent align={align} side={side} className={cn('w-52 p-1', panelClassName)}>\n <div className=\"flex flex-col\">\n {items.map((item) => (\n <MenuItem\n key={item.key}\n icon={item.icon}\n danger={item.danger}\n disabled={item.disabled}\n pending={item.pending}\n onSelect={() => item.onSelect()}\n >\n {item.label}\n </MenuItem>\n ))}\n </div>\n </MenuContent>\n </Menu>\n )\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { MenuContent, MenuItem } from './chunk-JWAX2AOO.js';
1
+ import { MenuContent, MenuItem } from './chunk-XSJ3TWWZ.js';
2
2
  import { cn } from './chunk-BLJWR4ZV.js';
3
3
  import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
4
4
  import { jsxs, jsx } from 'react/jsx-runtime';
@@ -54,5 +54,5 @@ function ContextMenu({ x, y, items, onClose, className }) {
54
54
  }
55
55
 
56
56
  export { ContextMenu };
57
- //# sourceMappingURL=chunk-WA7Q4TTA.js.map
58
- //# sourceMappingURL=chunk-WA7Q4TTA.js.map
57
+ //# sourceMappingURL=chunk-YIGLULRG.js.map
58
+ //# sourceMappingURL=chunk-YIGLULRG.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/context-menu/ContextMenu.tsx"],"names":[],"mappings":";;;;;AAwBO,SAAS,YAAY,EAAE,CAAA,EAAG,GAAG,KAAA,EAAO,OAAA,EAAS,WAAU,EAAqB;AACjF,EAAA,MAAM,IAAA,GAAO,MAAM,MAAA,GAAS,CAAA;AAC5B,EAAA,uBACE,IAAA,CAAuB,qBAAA,CAAA,IAAA,EAAtB,EAA2B,IAAA,EAAY,YAAA,EAAc,CAAC,IAAA,KAAS,CAAC,IAAA,IAAQ,OAAA,EAAQ,EAAG,KAAA,EAAO,KAAA,EACzF,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAuB,+BAAtB,EAA8B,OAAA,EAAO,MAAC,aAAA,EAAW,IAAA,EAAC,UAAU,EAAA,EAC3D,QAAA,kBAAA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAQ,qBAAA;AAAA,QACR,KAAA,EAAO,EAAE,QAAA,EAAU,OAAA,EAAS,IAAA,EAAM,CAAA,EAAG,GAAA,EAAK,CAAA,EAAG,KAAA,EAAO,CAAA,EAAG,MAAA,EAAQ,CAAA;AAAE;AAAA,KACnE,EACF,CAAA;AAAA,oBACA,GAAA;AAAA,MAAC,WAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAM,OAAA;AAAA,QACN,UAAA,EAAY,CAAA;AAAA,QACZ,gBAAA,EAAkB,CAAA;AAAA,QAClB,SAAA,EAAQ,cAAA;AAAA,QACR,gBAAA,EAAkB,CAAC,KAAA,KAAU,KAAA,CAAM,cAAA,EAAe;AAAA,QAClD,SAAA,EAAW,EAAA,CAAG,UAAA,EAAY,SAAS,CAAA;AAAA,QAElC,QAAA,EAAA,KAAA,CAAM,GAAA;AAAA,UAAI,CAAC,IAAA,KACV,IAAA,CAAK,QAAA,KAAa,IAAA,mBAChB,IAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cAEC,IAAA,EAAK,UAAA;AAAA,cACL,eAAA,EAAc,MAAA;AAAA,cACd,OAAO,IAAA,CAAK,IAAA;AAAA,cACZ,SAAA,EAAU,0NAAA;AAAA,cAET,QAAA,EAAA;AAAA,gBAAA,IAAA,CAAK,uBAAO,GAAA,CAAC,IAAA,CAAK,MAAL,EAAU,aAAA,EAAW,MAAC,CAAA,GAAK,IAAA;AAAA,gBACxC,IAAA,CAAK;AAAA;AAAA,aAAA;AAAA,YAPD,IAAA,CAAK;AAAA,WAQZ,mBAEA,GAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cAEC,MAAM,IAAA,CAAK,IAAA;AAAA,cACX,QAAQ,IAAA,CAAK,MAAA;AAAA,cACb,OAAO,IAAA,CAAK,IAAA;AAAA,cACZ,QAAA,EAAU,MAAM,IAAA,CAAK,QAAA,IAAW;AAAA,cAE/B,QAAA,EAAA,IAAA,CAAK;AAAA,aAAA;AAAA,YAND,IAAA,CAAK;AAAA;AAOZ;AAEJ;AAAA;AACF,GAAA,EACF,CAAA;AAEJ","file":"chunk-WA7Q4TTA.js","sourcesContent":["import * as React from 'react'\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu'\nimport type { LucideIcon } from 'lucide-react'\nimport { cn } from '../../lib/utils'\nimport { MenuContent, MenuItem } from '../menu/Menu'\n\nexport interface ContextMenuItem {\n key: string\n label: string\n icon?: LucideIcon\n onSelect?: () => void\n danger?: boolean\n disabled?: boolean\n hint?: string\n}\n\nexport interface ContextMenuProps {\n x: number\n y: number\n items: ContextMenuItem[]\n onClose: () => void\n className?: string\n}\n\nexport function ContextMenu({ x, y, items, onClose, className }: ContextMenuProps) {\n const open = items.length > 0\n return (\n <DropdownMenuPrimitive.Root open={open} onOpenChange={(next) => !next && onClose()} modal={false}>\n <DropdownMenuPrimitive.Trigger asChild aria-hidden tabIndex={-1}>\n <span\n data-as=\"context-menu-anchor\"\n style={{ position: 'fixed', left: x, top: y, width: 0, height: 0 }}\n />\n </DropdownMenuPrimitive.Trigger>\n <MenuContent\n align=\"start\"\n sideOffset={2}\n collisionPadding={8}\n data-as=\"context-menu\"\n onCloseAutoFocus={(event) => event.preventDefault()}\n className={cn('min-w-40', className)}\n >\n {items.map((item) =>\n item.disabled === true ? (\n <span\n key={item.key}\n role=\"menuitem\"\n aria-disabled=\"true\"\n title={item.hint}\n className=\"pointer-events-none flex w-full cursor-default select-none items-center gap-2 rounded-[calc(var(--as-radius-sm)-2px)] px-2 py-1.5 text-left text-sm text-[var(--as-muted-fg)] opacity-50 [&_svg]:size-4 [&_svg]:shrink-0\"\n >\n {item.icon ? <item.icon aria-hidden /> : null}\n {item.label}\n </span>\n ) : (\n <MenuItem\n key={item.key}\n icon={item.icon}\n danger={item.danger}\n title={item.hint}\n onSelect={() => item.onSelect?.()}\n >\n {item.label}\n </MenuItem>\n ),\n )}\n </MenuContent>\n </DropdownMenuPrimitive.Root>\n )\n}\n"]}
1
+ {"version":3,"sources":["../src/components/context-menu/ContextMenu.tsx"],"names":[],"mappings":";;;;;AAwBO,SAAS,YAAY,EAAE,CAAA,EAAG,GAAG,KAAA,EAAO,OAAA,EAAS,WAAU,EAAqB;AACjF,EAAA,MAAM,IAAA,GAAO,MAAM,MAAA,GAAS,CAAA;AAC5B,EAAA,uBACE,IAAA,CAAuB,qBAAA,CAAA,IAAA,EAAtB,EAA2B,IAAA,EAAY,YAAA,EAAc,CAAC,IAAA,KAAS,CAAC,IAAA,IAAQ,OAAA,EAAQ,EAAG,KAAA,EAAO,KAAA,EACzF,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAuB,+BAAtB,EAA8B,OAAA,EAAO,MAAC,aAAA,EAAW,IAAA,EAAC,UAAU,EAAA,EAC3D,QAAA,kBAAA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAQ,qBAAA;AAAA,QACR,KAAA,EAAO,EAAE,QAAA,EAAU,OAAA,EAAS,IAAA,EAAM,CAAA,EAAG,GAAA,EAAK,CAAA,EAAG,KAAA,EAAO,CAAA,EAAG,MAAA,EAAQ,CAAA;AAAE;AAAA,KACnE,EACF,CAAA;AAAA,oBACA,GAAA;AAAA,MAAC,WAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAM,OAAA;AAAA,QACN,UAAA,EAAY,CAAA;AAAA,QACZ,gBAAA,EAAkB,CAAA;AAAA,QAClB,SAAA,EAAQ,cAAA;AAAA,QACR,gBAAA,EAAkB,CAAC,KAAA,KAAU,KAAA,CAAM,cAAA,EAAe;AAAA,QAClD,SAAA,EAAW,EAAA,CAAG,UAAA,EAAY,SAAS,CAAA;AAAA,QAElC,QAAA,EAAA,KAAA,CAAM,GAAA;AAAA,UAAI,CAAC,IAAA,KACV,IAAA,CAAK,QAAA,KAAa,IAAA,mBAChB,IAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cAEC,IAAA,EAAK,UAAA;AAAA,cACL,eAAA,EAAc,MAAA;AAAA,cACd,OAAO,IAAA,CAAK,IAAA;AAAA,cACZ,SAAA,EAAU,0NAAA;AAAA,cAET,QAAA,EAAA;AAAA,gBAAA,IAAA,CAAK,uBAAO,GAAA,CAAC,IAAA,CAAK,MAAL,EAAU,aAAA,EAAW,MAAC,CAAA,GAAK,IAAA;AAAA,gBACxC,IAAA,CAAK;AAAA;AAAA,aAAA;AAAA,YAPD,IAAA,CAAK;AAAA,WAQZ,mBAEA,GAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cAEC,MAAM,IAAA,CAAK,IAAA;AAAA,cACX,QAAQ,IAAA,CAAK,MAAA;AAAA,cACb,OAAO,IAAA,CAAK,IAAA;AAAA,cACZ,QAAA,EAAU,MAAM,IAAA,CAAK,QAAA,IAAW;AAAA,cAE/B,QAAA,EAAA,IAAA,CAAK;AAAA,aAAA;AAAA,YAND,IAAA,CAAK;AAAA;AAOZ;AAEJ;AAAA;AACF,GAAA,EACF,CAAA;AAEJ","file":"chunk-YIGLULRG.js","sourcesContent":["import * as React from 'react'\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu'\nimport type { LucideIcon } from 'lucide-react'\nimport { cn } from '../../lib/utils'\nimport { MenuContent, MenuItem } from '../menu/Menu'\n\nexport interface ContextMenuItem {\n key: string\n label: string\n icon?: LucideIcon\n onSelect?: () => void\n danger?: boolean\n disabled?: boolean\n hint?: string\n}\n\nexport interface ContextMenuProps {\n x: number\n y: number\n items: ContextMenuItem[]\n onClose: () => void\n className?: string\n}\n\nexport function ContextMenu({ x, y, items, onClose, className }: ContextMenuProps) {\n const open = items.length > 0\n return (\n <DropdownMenuPrimitive.Root open={open} onOpenChange={(next) => !next && onClose()} modal={false}>\n <DropdownMenuPrimitive.Trigger asChild aria-hidden tabIndex={-1}>\n <span\n data-as=\"context-menu-anchor\"\n style={{ position: 'fixed', left: x, top: y, width: 0, height: 0 }}\n />\n </DropdownMenuPrimitive.Trigger>\n <MenuContent\n align=\"start\"\n sideOffset={2}\n collisionPadding={8}\n data-as=\"context-menu\"\n onCloseAutoFocus={(event) => event.preventDefault()}\n className={cn('min-w-40', className)}\n >\n {items.map((item) =>\n item.disabled === true ? (\n <span\n key={item.key}\n role=\"menuitem\"\n aria-disabled=\"true\"\n title={item.hint}\n className=\"pointer-events-none flex w-full cursor-default select-none items-center gap-2 rounded-[calc(var(--as-radius-sm)-2px)] px-2 py-1.5 text-left text-sm text-[var(--as-muted-fg)] opacity-50 [&_svg]:size-4 [&_svg]:shrink-0\"\n >\n {item.icon ? <item.icon aria-hidden /> : null}\n {item.label}\n </span>\n ) : (\n <MenuItem\n key={item.key}\n icon={item.icon}\n danger={item.danger}\n title={item.hint}\n onSelect={() => item.onSelect?.()}\n >\n {item.label}\n </MenuItem>\n ),\n )}\n </MenuContent>\n </DropdownMenuPrimitive.Root>\n )\n}\n"]}
@@ -1,3 +1,3 @@
1
- export { ContextMenu } from './chunk-WA7Q4TTA.js';
1
+ export { ContextMenu } from './chunk-YIGLULRG.js';
2
2
  //# sourceMappingURL=context-menu.js.map
3
3
  //# sourceMappingURL=context-menu.js.map
package/dist/index.d.ts CHANGED
@@ -35,7 +35,8 @@ export { FormModal, FormModalProps } from './form-modal.js';
35
35
  export { InfoButton, InfoButtonProps } from './info-button.js';
36
36
  export { Input, InputProps } from './input.js';
37
37
  export { MarqueeBand, MarqueePhase, MarqueeSelection, MarqueeSurface, MarqueeSurfaceProps, Rect, UseMarqueeOptions, hitTestIds, marqueeRect, rectsIntersect, useMarquee } from './marquee.js';
38
- export { ActionMenu, ActionMenuItem, ActionMenuProps, Menu, MenuContent, MenuGroup, MenuItem, MenuItemProps, MenuLabel, MenuSeparator, MenuTrigger } from './menu.js';
38
+ export { ActionMenu, ActionMenuItem, ActionMenuProps, Menu, MenuCheckboxItem, MenuCheckboxItemProps, MenuContent, MenuGroup, MenuItem, MenuItemProps, MenuLabel, MenuSeparator, MenuTrigger } from './menu.js';
39
+ export { UserMenu, UserMenuItem, UserMenuProps } from './user-menu.js';
39
40
  export { Modal, ModalClose, ModalContent, ModalContentProps, ModalDescription, ModalFooter, ModalHeader, ModalTitle, ModalTrigger, PanelModal, PanelModalProps, modalContentVariants } from './modal.js';
40
41
  export { Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverTrigger } from './popover.js';
41
42
  export { PopoverButton, PopoverButtonProps } from './popover-button.js';
@@ -46,6 +47,7 @@ export { ModelPicker, ModelPickerModel, ModelPickerProps, ModelPickerProvider }
46
47
  export { CapabilityChips, CapabilityChipsProps, CapabilityDescriptor } from './capability-chips.js';
47
48
  export { ModelRegistry, ModelRegistryDraft, ModelRegistryModel, ModelRegistryPatch, ModelRegistryProps, ModelRegistryProvider, ModelRegistryRemoteModel, ModelRegistryRemoteState } from './model-registry.js';
48
49
  export { SelectionBar, SelectionBarProps } from './selection-bar.js';
50
+ export { NavChild, NavItem, SidebarNav, SidebarNavLabels, SidebarNavProps } from './sidebar-nav.js';
49
51
  export { Spinner, SpinnerProps } from './spinner.js';
50
52
  export { TaskAssignmentPicker, TaskAssignmentPickerProps, TaskAssignmentSection, TaskAssignmentTask } from './task-assignment-picker.js';
51
53
  export { Table, TableProps } from './table.js';
package/dist/index.js CHANGED
@@ -1,11 +1,13 @@
1
+ export { ViewToggle } from './chunk-MXOBOS4Y.js';
2
+ export { Stepper, Wizard } from './chunk-YMCMUAIF.js';
1
3
  export { SettingsShell } from './chunk-AHLNXCP2.js';
4
+ export { SidebarNav } from './chunk-3IXMZ6KG.js';
5
+ export { UserMenu } from './chunk-535TM7SK.js';
2
6
  export { ThemeScope } from './chunk-TGU3PKNM.js';
3
7
  export { TimeList } from './chunk-GVOC3ARM.js';
4
8
  export { TimePicker, TimePickerContent } from './chunk-CR42EAF4.js';
5
9
  export { InfoTooltip, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from './chunk-34NO2UOB.js';
6
10
  export { UndoNotice } from './chunk-OUHUVACM.js';
7
- export { ViewToggle } from './chunk-MXOBOS4Y.js';
8
- export { Stepper, Wizard } from './chunk-YMCMUAIF.js';
9
11
  export { SearchInput } from './chunk-H5U4KNXF.js';
10
12
  export { ModelRegistry } from './chunk-RBEPQY2A.js';
11
13
  export { CapabilityChips } from './chunk-G3DWN2DJ.js';
@@ -17,15 +19,15 @@ export { PanelModal } from './chunk-G6557MEN.js';
17
19
  export { Portal } from './chunk-7YLR4AGA.js';
18
20
  export { ProviderForm } from './chunk-4WDXLXHL.js';
19
21
  export { RangeBar } from './chunk-PFAH25VU.js';
20
- export { ScaleSlider, scaleColorForValue } from './chunk-UIUALJNR.js';
22
+ export { ScaleSlider, scaleColorForValue } from './chunk-PSFJN7WH.js';
21
23
  export { FieldLabel } from './chunk-I5J6SDLK.js';
22
24
  export { InfoButton } from './chunk-OT6EQFMP.js';
23
25
  export { PopoverButton } from './chunk-BE3XFZWU.js';
24
26
  export { Input } from './chunk-M4V7XHL7.js';
25
27
  export { MarqueeBand, MarqueeSurface, hitTestIds, marqueeRect, rectsIntersect, useMarquee } from './chunk-RU3DEF2O.js';
26
28
  export { CopyButton } from './chunk-CZ2BL2ZL.js';
27
- export { ContextMenu } from './chunk-WA7Q4TTA.js';
28
- export { ActionMenu, Menu, MenuContent, MenuGroup, MenuItem, MenuLabel, MenuSeparator, MenuTrigger } from './chunk-JWAX2AOO.js';
29
+ export { ContextMenu } from './chunk-YIGLULRG.js';
30
+ export { ActionMenu, Menu, MenuCheckboxItem, MenuContent, MenuGroup, MenuItem, MenuLabel, MenuSeparator, MenuTrigger } from './chunk-XSJ3TWWZ.js';
29
31
  export { DatePicker } from './chunk-6VCJX4CP.js';
30
32
  export { EmptyState } from './chunk-KDJLYKR6.js';
31
33
  export { ErrorBanner } from './chunk-BJOY3XL7.js';
@@ -34,12 +36,12 @@ export { FileQueue } from './chunk-IQKP2BWE.js';
34
36
  export { FileCard, formatBytes } from './chunk-J4OELYDR.js';
35
37
  export { ConnectionTestRow } from './chunk-OGQF4XJB.js';
36
38
  export { CheckIndicator } from './chunk-XE4TFW63.js';
37
- export { ChipInput } from './chunk-TPLQL62V.js';
39
+ export { ChipInput } from './chunk-HIRR2F4R.js';
38
40
  export { Combobox, ComboboxMulti } from './chunk-AATZUVW4.js';
39
41
  export { ConfirmationModal } from './chunk-2YQSA5AE.js';
40
42
  export { rawTokens, semanticTokens } from './chunk-GDGKARRB.js';
41
43
  export { AiActionsDropdown } from './chunk-I37SYHM7.js';
42
- export { AboutCard, AboutFooterLine, AboutLinkList, AboutNote, AboutPanel, FamilyBadge, SponsorCard, TechChips } from './chunk-7RTSSBBR.js';
44
+ export { AboutCard, AboutFooterLine, AboutLinkList, AboutNote, AboutPanel, FamilyBadge, SponsorCard, TechChips } from './chunk-INMAUGBK.js';
43
45
  export { CareerMark, HealthMark, NeuronectionMark, NeuronectionWordmark, StudyMark, useLogoId } from './chunk-Q2JMEAKN.js';
44
46
  export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from './chunk-RYE5YCFF.js';
45
47
  export { ChipList } from './chunk-QUPGIPTT.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/upload-dropzone/UploadDropzone.tsx"],"names":["UploadDropzone"],"mappings":"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","file":"index.js","sourcesContent":["import * as React from 'react'\nimport { FolderUp, Loader2, Upload } from 'lucide-react'\nimport { cn } from '../../lib/utils'\n\nexport interface UploadDropzoneProps {\n onFiles: (files: File[]) => void\n uploading?: boolean\n variant?: 'block' | 'row'\n label?: string\n hint?: string\n browseLabel?: string\n folderLabel?: string\n accept?: string\n multiple?: boolean\n allowFolders?: boolean\n disabled?: boolean\n className?: string\n}\n\n/**\n * Presentational dropzone: drag events and file-picker results go out via\n * `onFiles` — uploading, storage and progress stay app-side. Pass\n * `uploading` to render a busy state and suppress input.\n */\nexport const UploadDropzone = React.forwardRef<HTMLDivElement, UploadDropzoneProps>(\n function UploadDropzone(\n {\n onFiles,\n uploading = false,\n variant = 'block',\n label = 'Drop files here or click to browse',\n hint,\n browseLabel = 'Choose files',\n folderLabel = 'Choose folder',\n accept,\n multiple = true,\n allowFolders = false,\n disabled = false,\n className,\n },\n ref,\n ) {\n const [dragging, setDragging] = React.useState(false)\n const fileInput = React.useRef<HTMLInputElement>(null)\n const folderInput = React.useRef<HTMLInputElement>(null)\n\n const active = !disabled && !uploading\n\n const emit = (list: FileList | null) => {\n if (!active || !list || list.length === 0) return\n onFiles(Array.from(list))\n }\n\n const input = allowFolders ? (\n <>\n <input\n ref={fileInput}\n type=\"file\"\n accept={accept}\n multiple={multiple}\n className=\"hidden\"\n aria-hidden\n tabIndex={-1}\n onChange={(event) => {\n emit(event.target.files)\n event.target.value = ''\n }}\n />\n <input\n ref={folderInput}\n type=\"file\"\n multiple\n className=\"hidden\"\n // @ts-expect-error non-standard but universally supported directory picker\n webkitdirectory=\"\"\n aria-hidden\n tabIndex={-1}\n onChange={(event) => {\n emit(event.target.files)\n event.target.value = ''\n }}\n />\n </>\n ) : (\n <input\n ref={fileInput}\n type=\"file\"\n accept={accept}\n multiple={multiple}\n className=\"hidden\"\n aria-hidden\n tabIndex={-1}\n onChange={(event) => {\n emit(event.target.files)\n event.target.value = ''\n }}\n />\n )\n\n return (\n <>\n {input}\n <div\n ref={ref}\n data-as=\"upload-dropzone\"\n data-variant={variant}\n data-dragging={dragging || undefined}\n role=\"button\"\n tabIndex={active ? 0 : -1}\n aria-label={label}\n aria-disabled={disabled || uploading || undefined}\n onClick={() => active && fileInput.current?.click()}\n onKeyDown={(event) => {\n if (active && (event.key === 'Enter' || event.key === ' ')) {\n event.preventDefault()\n fileInput.current?.click()\n }\n }}\n onDragOver={(event) => {\n event.preventDefault()\n if (active) setDragging(true)\n }}\n onDragLeave={() => setDragging(false)}\n onDrop={(event) => {\n event.preventDefault()\n setDragging(false)\n emit(event.dataTransfer.files)\n }}\n className={cn(\n 'flex cursor-pointer items-center justify-center gap-3 border border-dashed border-[var(--as-border)] bg-[var(--as-surface)] text-[var(--as-muted-fg)] transition-colors',\n 'hover:border-[var(--as-primary)] hover:text-[var(--as-fg)]',\n 'focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--as-focus-ring)]',\n variant === 'block' ? 'rounded-[var(--as-radius-lg)] p-8' : 'rounded-[var(--as-radius)] px-4 py-3',\n dragging && 'border-[var(--as-primary)] bg-[color-mix(in_srgb,var(--as-primary)_8%,transparent)] text-[var(--as-fg)]',\n uploading && 'cursor-progress opacity-70',\n disabled && 'pointer-events-none opacity-50',\n className,\n )}\n >\n {uploading ? (\n <Loader2 className=\"size-5 shrink-0 animate-spin\" aria-hidden />\n ) : allowFolders ? (\n <FolderUp className=\"size-5 shrink-0\" aria-hidden />\n ) : (\n <Upload className=\"size-5 shrink-0\" aria-hidden />\n )}\n <span className=\"flex min-w-0 flex-col\">\n <span className=\"truncate text-sm font-medium\" role={uploading ? 'status' : undefined}>\n {uploading ? `${browseLabel}…` : dragging ? folderLabel : label}\n </span>\n {hint ? <span className=\"truncate text-xs\">{hint}</span> : null}\n </span>\n </div>\n </>\n )\n },\n)\n"]}
1
+ {"version":3,"sources":["../src/components/upload-dropzone/UploadDropzone.tsx"],"names":["UploadDropzone"],"mappings":"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","file":"index.js","sourcesContent":["import * as React from 'react'\nimport { FolderUp, Loader2, Upload } from 'lucide-react'\nimport { cn } from '../../lib/utils'\n\nexport interface UploadDropzoneProps {\n onFiles: (files: File[]) => void\n uploading?: boolean\n variant?: 'block' | 'row'\n label?: string\n hint?: string\n browseLabel?: string\n folderLabel?: string\n accept?: string\n multiple?: boolean\n allowFolders?: boolean\n disabled?: boolean\n className?: string\n}\n\n/**\n * Presentational dropzone: drag events and file-picker results go out via\n * `onFiles` — uploading, storage and progress stay app-side. Pass\n * `uploading` to render a busy state and suppress input.\n */\nexport const UploadDropzone = React.forwardRef<HTMLDivElement, UploadDropzoneProps>(\n function UploadDropzone(\n {\n onFiles,\n uploading = false,\n variant = 'block',\n label = 'Drop files here or click to browse',\n hint,\n browseLabel = 'Choose files',\n folderLabel = 'Choose folder',\n accept,\n multiple = true,\n allowFolders = false,\n disabled = false,\n className,\n },\n ref,\n ) {\n const [dragging, setDragging] = React.useState(false)\n const fileInput = React.useRef<HTMLInputElement>(null)\n const folderInput = React.useRef<HTMLInputElement>(null)\n\n const active = !disabled && !uploading\n\n const emit = (list: FileList | null) => {\n if (!active || !list || list.length === 0) return\n onFiles(Array.from(list))\n }\n\n const input = allowFolders ? (\n <>\n <input\n ref={fileInput}\n type=\"file\"\n accept={accept}\n multiple={multiple}\n className=\"hidden\"\n aria-hidden\n tabIndex={-1}\n onChange={(event) => {\n emit(event.target.files)\n event.target.value = ''\n }}\n />\n <input\n ref={folderInput}\n type=\"file\"\n multiple\n className=\"hidden\"\n // @ts-expect-error non-standard but universally supported directory picker\n webkitdirectory=\"\"\n aria-hidden\n tabIndex={-1}\n onChange={(event) => {\n emit(event.target.files)\n event.target.value = ''\n }}\n />\n </>\n ) : (\n <input\n ref={fileInput}\n type=\"file\"\n accept={accept}\n multiple={multiple}\n className=\"hidden\"\n aria-hidden\n tabIndex={-1}\n onChange={(event) => {\n emit(event.target.files)\n event.target.value = ''\n }}\n />\n )\n\n return (\n <>\n {input}\n <div\n ref={ref}\n data-as=\"upload-dropzone\"\n data-variant={variant}\n data-dragging={dragging || undefined}\n role=\"button\"\n tabIndex={active ? 0 : -1}\n aria-label={label}\n aria-disabled={disabled || uploading || undefined}\n onClick={() => active && fileInput.current?.click()}\n onKeyDown={(event) => {\n if (active && (event.key === 'Enter' || event.key === ' ')) {\n event.preventDefault()\n fileInput.current?.click()\n }\n }}\n onDragOver={(event) => {\n event.preventDefault()\n if (active) setDragging(true)\n }}\n onDragLeave={() => setDragging(false)}\n onDrop={(event) => {\n event.preventDefault()\n setDragging(false)\n emit(event.dataTransfer.files)\n }}\n className={cn(\n 'flex cursor-pointer items-center justify-center gap-3 border border-dashed border-[var(--as-border)] bg-[var(--as-surface)] text-[var(--as-muted-fg)] transition-colors',\n 'hover:border-[var(--as-primary)] hover:text-[var(--as-fg)]',\n 'focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--as-focus-ring)]',\n variant === 'block' ? 'rounded-[var(--as-radius-lg)] p-8' : 'rounded-[var(--as-radius)] px-4 py-3',\n dragging && 'border-[var(--as-primary)] bg-[color-mix(in_srgb,var(--as-primary)_8%,transparent)] text-[var(--as-fg)]',\n uploading && 'cursor-progress opacity-70',\n disabled && 'pointer-events-none opacity-50',\n className,\n )}\n >\n {uploading ? (\n <Loader2 className=\"size-5 shrink-0 animate-spin\" aria-hidden />\n ) : allowFolders ? (\n <FolderUp className=\"size-5 shrink-0\" aria-hidden />\n ) : (\n <Upload className=\"size-5 shrink-0\" aria-hidden />\n )}\n <span className=\"flex min-w-0 flex-col\">\n <span className=\"truncate text-sm font-medium\" role={uploading ? 'status' : undefined}>\n {uploading ? `${browseLabel}…` : dragging ? folderLabel : label}\n </span>\n {hint ? <span className=\"truncate text-xs\">{hint}</span> : null}\n </span>\n </div>\n </>\n )\n },\n)\n"]}
package/dist/menu.d.ts CHANGED
@@ -13,6 +13,12 @@ interface MenuItemProps extends React.ComponentPropsWithoutRef<typeof DropdownMe
13
13
  }
14
14
  declare const MenuItem: React.ForwardRefExoticComponent<MenuItemProps & React.RefAttributes<HTMLDivElement>>;
15
15
  declare const MenuSeparator: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSeparatorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
16
+ interface MenuCheckboxItemProps extends React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem> {
17
+ icon?: LucideIcon;
18
+ danger?: boolean;
19
+ pending?: boolean;
20
+ }
21
+ declare const MenuCheckboxItem: React.ForwardRefExoticComponent<MenuCheckboxItemProps & React.RefAttributes<HTMLDivElement>>;
16
22
  declare const MenuLabel: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuLabelProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
17
23
  interface ActionMenuItem {
18
24
  key: string;
@@ -35,4 +41,4 @@ interface ActionMenuProps {
35
41
  }
36
42
  declare function ActionMenu({ label, trigger, items, align, side, triggerClassName, panelClassName, disabled, }: ActionMenuProps): React.JSX.Element;
37
43
 
38
- export { ActionMenu, type ActionMenuItem, type ActionMenuProps, Menu, MenuContent, MenuGroup, MenuItem, type MenuItemProps, MenuLabel, MenuSeparator, MenuTrigger };
44
+ export { ActionMenu, type ActionMenuItem, type ActionMenuProps, Menu, MenuCheckboxItem, type MenuCheckboxItemProps, MenuContent, MenuGroup, MenuItem, type MenuItemProps, MenuLabel, MenuSeparator, MenuTrigger };
package/dist/menu.js CHANGED
@@ -1,3 +1,3 @@
1
- export { ActionMenu, Menu, MenuContent, MenuGroup, MenuItem, MenuLabel, MenuSeparator, MenuTrigger } from './chunk-JWAX2AOO.js';
1
+ export { ActionMenu, Menu, MenuCheckboxItem, MenuContent, MenuGroup, MenuItem, MenuLabel, MenuSeparator, MenuTrigger } from './chunk-XSJ3TWWZ.js';
2
2
  //# sourceMappingURL=menu.js.map
3
3
  //# sourceMappingURL=menu.js.map
@@ -1,3 +1,3 @@
1
- export { ScaleSlider, scaleColorForValue } from './chunk-UIUALJNR.js';
1
+ export { ScaleSlider, scaleColorForValue } from './chunk-PSFJN7WH.js';
2
2
  //# sourceMappingURL=scale-slider.js.map
3
3
  //# sourceMappingURL=scale-slider.js.map
@@ -0,0 +1,66 @@
1
+ import * as React from 'react';
2
+ import { LucideIcon } from 'lucide-react';
3
+
4
+ interface NavChild {
5
+ id: string;
6
+ label: string;
7
+ icon?: LucideIcon;
8
+ badge?: string | number;
9
+ /** Divider label rendered above this child (first occurrence only). */
10
+ section?: string;
11
+ disabled?: boolean;
12
+ }
13
+ interface NavItem {
14
+ id: string;
15
+ label: string;
16
+ icon?: LucideIcon;
17
+ badge?: string | number;
18
+ /** One nesting level; deeper trees stay app-side. */
19
+ children?: NavChild[];
20
+ disabled?: boolean;
21
+ /** Divider label rendered above this item (first occurrence only) —
22
+ * for flat sidebars with visual groups. Ignored in the collapsed rail. */
23
+ section?: string;
24
+ }
25
+ interface SidebarNavLabels {
26
+ /** aria-label on the <nav> element. */
27
+ navAria?: string;
28
+ /** Collapsed-rail toggle title when collapsed. */
29
+ expand?: string;
30
+ /** Collapsed-rail toggle title when expanded. */
31
+ collapse?: string;
32
+ /** aria-label for a collapsed group's flyout trigger. */
33
+ openGroup?: string;
34
+ }
35
+ interface SidebarNavProps {
36
+ /** Pre-filtered by the app (roles, feature flags); order = render order. */
37
+ items: NavItem[];
38
+ /** Flat items pinned below the scroll area, above `footer` (the
39
+ * Settings/About pattern). Same rendering, active state, rail behavior
40
+ * and keyboard traversal order as `items`. */
41
+ secondaryItems?: NavItem[];
42
+ /** The app resolves route → id; matching logic stays app-side. */
43
+ activeId?: string | null;
44
+ /** Fires for leaves only; group triggers toggle expansion instead. */
45
+ onNavigate?: (id: string) => void;
46
+ /** Controlled icon rail. */
47
+ collapsed?: boolean;
48
+ onCollapsedChange?: (collapsed: boolean) => void;
49
+ /** Renders the rail collapse/expand toggle handle (desktop only). */
50
+ collapsible?: boolean;
51
+ /** Controlled group expansion; uncontrolled defaults to internal
52
+ * state + auto-expand when activeId enters a group. */
53
+ expandedIds?: string[];
54
+ onExpandedIdsChange?: (ids: string[]) => void;
55
+ /** Slot above the list (brand, logo). */
56
+ header?: React.ReactNode;
57
+ /** Slot below the list and pinned items (version, legal links). */
58
+ footer?: React.ReactNode;
59
+ labels?: SidebarNavLabels;
60
+ className?: string;
61
+ /** Targets the scrollable list region. */
62
+ navClassName?: string;
63
+ }
64
+ declare const SidebarNav: React.ForwardRefExoticComponent<SidebarNavProps & React.RefAttributes<HTMLElement>>;
65
+
66
+ export { type NavChild, type NavItem, SidebarNav, type SidebarNavLabels, type SidebarNavProps };
@@ -0,0 +1,3 @@
1
+ export { SidebarNav } from './chunk-3IXMZ6KG.js';
2
+ //# sourceMappingURL=sidebar-nav.js.map
3
+ //# sourceMappingURL=sidebar-nav.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"sidebar-nav.js"}
package/dist/styles.css CHANGED
@@ -1,2 +1,2 @@
1
1
  /*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
2
- @supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0}}:root,:host{--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-500:oklch(63.7% .237 25.331);--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-4xl:56rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--font-weight-black:900;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--blur-2xl:40px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1)}:root{--as-tone-0:oklch(100% 0 0);--as-tone-50:oklch(98.5% .003 90);--as-tone-100:oklch(94.8% .005 90);--as-tone-200:oklch(90.2% .005 90);--as-tone-300:oklch(83% .008 90);--as-tone-500:oklch(50% .012 90);--as-tone-700:oklch(37% .014 90);--as-tone-900:oklch(23.5% .012 90);--as-accent:oklch(55% .16 258);--as-accent-strong:oklch(48% .18 258);--as-success:oklch(62% .15 152);--as-warning:oklch(72% .15 78);--as-danger:oklch(58% .19 27);--as-ai:oklch(54.1% .247 293.009);--as-primary:var(--as-accent);--as-primary-fg:var(--as-tone-50);--as-secondary:var(--as-tone-100);--as-secondary-fg:var(--as-tone-900);--as-surface:var(--as-tone-50);--as-surface-raised:var(--as-tone-0);--as-border:var(--as-tone-200);--as-fg:var(--as-tone-900);--as-muted:var(--as-tone-100);--as-muted-fg:var(--as-tone-500);--as-success-fg:var(--as-tone-0);--as-warning-fg:var(--as-tone-900);--as-danger-fg:var(--as-tone-0);--as-ai-fg:var(--as-tone-0);--as-focus-ring:var(--as-accent);--as-overlay:oklch(0% 0 0/.6);--as-z-modal:50;--as-z-popover:50;--as-radius-sm:calc(var(--as-radius) - .25rem);--as-radius:.625rem;--as-radius-lg:calc(var(--as-radius) + .25rem);--as-font-sans:"Inter Variable", ui-sans-serif, system-ui, sans-serif;--as-font-mono:"JetBrains Mono", ui-monospace, "Cascadia Mono", monospace;--as-shadow-1:0 1px 2px 0 oklch(0% 0 0/.05);--as-shadow-2:0 4px 6px -1px oklch(0% 0 0/.07), 0 2px 4px -2px oklch(0% 0 0/.05);--as-shadow-3:0 10px 15px -3px oklch(0% 0 0/.08), 0 4px 6px -4px oklch(0% 0 0/.05)}.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-y-0{inset-block:0}.-top-12{top:calc(var(--spacing) * -12)}.top-1{top:var(--spacing)}.top-1\/2{top:50%}.top-3{top:calc(var(--spacing) * 3)}.top-4{top:calc(var(--spacing) * 4)}.-right-12{right:calc(var(--spacing) * -12)}.right-0{right:0}.right-1{right:var(--spacing)}.right-1\.5{right:calc(var(--spacing) * 1.5)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.right-7{right:calc(var(--spacing) * 7)}.bottom-4{bottom:calc(var(--spacing) * 4)}.left-1{left:var(--spacing)}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.z-\[var\(--as-z-modal\)\]{z-index:var(--as-z-modal)}.z-\[var\(--as-z-popover\)\]{z-index:var(--as-z-popover)}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-auto{margin:auto}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.mx-auto{margin-inline:auto}.my-1{margin-block:var(--spacing)}.my-auto{margin-block:auto}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mr-1{margin-right:var(--spacing)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mr-3{margin-right:calc(var(--spacing) * 3)}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.ml-1{margin-left:var(--spacing)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-12{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12)}.size-36{width:calc(var(--spacing) * 36);height:calc(var(--spacing) * 36)}.size-\[18px\]{width:18px;height:18px}.size-full{width:100%;height:100%}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-14{height:calc(var(--spacing) * 14)}.h-20{height:calc(var(--spacing) * 20)}.h-fit{height:fit-content}.h-full{height:100%}.h-px{height:1px}.max-h-60{max-height:calc(var(--spacing) * 60)}.max-h-\[85vh\]{max-height:85vh}.max-h-\[92vh\]{max-height:92vh}.min-h-0{min-height:0}.min-h-9{min-height:calc(var(--spacing) * 9)}.min-h-16{min-height:calc(var(--spacing) * 16)}.w-4\/5{width:80%}.w-9{width:calc(var(--spacing) * 9)}.w-12{width:calc(var(--spacing) * 12)}.w-16{width:calc(var(--spacing) * 16)}.w-28{width:calc(var(--spacing) * 28)}.w-32{width:calc(var(--spacing) * 32)}.w-40{width:calc(var(--spacing) * 40)}.w-52{width:calc(var(--spacing) * 52)}.w-56{width:calc(var(--spacing) * 56)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-80{width:calc(var(--spacing) * 80)}.w-\[280px\]{width:280px}.w-\[300px\]{width:300px}.w-\[calc\(100\%-2rem\)\]{width:calc(100% - 2rem)}.w-\[var\(--radix-popover-trigger-width\)\]{width:var(--radix-popover-trigger-width)}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-64{max-width:calc(var(--spacing) * 64)}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:0}.min-w-24{min-width:calc(var(--spacing) * 24)}.min-w-40{min-width:calc(var(--spacing) * 40)}.min-w-48{min-width:calc(var(--spacing) * 48)}.min-w-full{min-width:100%}.flex-1{flex:1}.shrink-0{flex-shrink:0}.\[translate\:-50\%_-50\%\]{translate:-50% -50%}.\[translate\:0_-50\%\]{translate:0 -50%}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-progress{cursor:progress}.cursor-text{cursor:text}.resize-none{resize:none}.list-none{list-style-type:none}.\[appearance\:textfield\]{appearance:textfield}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-3\.5{gap:calc(var(--spacing) * 3.5)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-1\.5{column-gap:calc(var(--spacing) * 1.5)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-y-0\.5{row-gap:calc(var(--spacing) * .5)}.gap-y-1{row-gap:var(--spacing)}.gap-y-4{row-gap:calc(var(--spacing) * 4)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-\[color-mix\(in_srgb\,var\(--as-border\)_55\%\,transparent\)\]>:not(:last-child)){border-color:var(--as-border)}@supports (color:color-mix(in lab, red, red)){:where(.divide-\[color-mix\(in_srgb\,var\(--as-border\)_55\%\,transparent\)\]>:not(:last-child)){border-color:color-mix(in srgb,var(--as-border) 55%,transparent)}}:where(.divide-\[var\(--as-border\)\]>:not(:last-child)){border-color:var(--as-border)}.self-center{align-self:center}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\[calc\(var\(--as-radius\)-2px\)\]{border-radius:calc(var(--as-radius) - 2px)}.rounded-\[calc\(var\(--as-radius-sm\)-2px\)\]{border-radius:calc(var(--as-radius-sm) - 2px)}.rounded-\[var\(--as-radius\)\]{border-radius:var(--as-radius)}.rounded-\[var\(--as-radius-lg\)\]{border-radius:var(--as-radius-lg)}.rounded-\[var\(--as-radius-sm\)\]{border-radius:var(--as-radius-sm)}.rounded-full{border-radius:3.40282e38px}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-\[color-mix\(in_srgb\,var\(--as-ai\)_25\%\,transparent\)\]{border-color:var(--as-ai)}@supports (color:color-mix(in lab, red, red)){.border-\[color-mix\(in_srgb\,var\(--as-ai\)_25\%\,transparent\)\]{border-color:color-mix(in srgb,var(--as-ai) 25%,transparent)}}.border-\[color-mix\(in_srgb\,var\(--as-primary\)_25\%\,transparent\)\]{border-color:var(--as-primary)}@supports (color:color-mix(in lab, red, red)){.border-\[color-mix\(in_srgb\,var\(--as-primary\)_25\%\,transparent\)\]{border-color:color-mix(in srgb,var(--as-primary) 25%,transparent)}}.border-\[color-mix\(in_srgb\,var\(--as-warning\)_35\%\,transparent\)\]{border-color:var(--as-warning)}@supports (color:color-mix(in lab, red, red)){.border-\[color-mix\(in_srgb\,var\(--as-warning\)_35\%\,transparent\)\]{border-color:color-mix(in srgb,var(--as-warning) 35%,transparent)}}.border-\[var\(--as-border\)\]{border-color:var(--as-border)}.border-\[var\(--as-danger\)\],.border-\[var\(--as-danger\)\]\/40{border-color:var(--as-danger)}@supports (color:color-mix(in lab, red, red)){.border-\[var\(--as-danger\)\]\/40{border-color:color-mix(in oklab, var(--as-danger) 40%, transparent)}}.border-\[var\(--as-primary\)\],.border-\[var\(--as-primary\)\]\/30{border-color:var(--as-primary)}@supports (color:color-mix(in lab, red, red)){.border-\[var\(--as-primary\)\]\/30{border-color:color-mix(in oklab, var(--as-primary) 30%, transparent)}}.border-\[var\(--as-surface-raised\)\]{border-color:var(--as-surface-raised)}.border-transparent{border-color:#0000}.bg-\[color-mix\(in_srgb\,var\(--as-ai\)_8\%\,transparent\)\]{background-color:var(--as-ai)}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_srgb\,var\(--as-ai\)_8\%\,transparent\)\]{background-color:color-mix(in srgb,var(--as-ai) 8%,transparent)}}.bg-\[color-mix\(in_srgb\,var\(--as-ai\)_12\%\,transparent\)\]{background-color:var(--as-ai)}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_srgb\,var\(--as-ai\)_12\%\,transparent\)\]{background-color:color-mix(in srgb,var(--as-ai) 12%,transparent)}}.bg-\[color-mix\(in_srgb\,var\(--as-danger\)_12\%\,transparent\)\]{background-color:var(--as-danger)}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_srgb\,var\(--as-danger\)_12\%\,transparent\)\]{background-color:color-mix(in srgb,var(--as-danger) 12%,transparent)}}.bg-\[color-mix\(in_srgb\,var\(--as-primary\)_7\%\,transparent\)\]{background-color:var(--as-primary)}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_srgb\,var\(--as-primary\)_7\%\,transparent\)\]{background-color:color-mix(in srgb,var(--as-primary) 7%,transparent)}}.bg-\[color-mix\(in_srgb\,var\(--as-primary\)_8\%\,transparent\)\]{background-color:var(--as-primary)}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_srgb\,var\(--as-primary\)_8\%\,transparent\)\]{background-color:color-mix(in srgb,var(--as-primary) 8%,transparent)}}.bg-\[color-mix\(in_srgb\,var\(--as-primary\)_12\%\,transparent\)\]{background-color:var(--as-primary)}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_srgb\,var\(--as-primary\)_12\%\,transparent\)\]{background-color:color-mix(in srgb,var(--as-primary) 12%,transparent)}}.bg-\[color-mix\(in_srgb\,var\(--as-primary\)_30\%\,transparent\)\]{background-color:var(--as-primary)}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_srgb\,var\(--as-primary\)_30\%\,transparent\)\]{background-color:color-mix(in srgb,var(--as-primary) 30%,transparent)}}.bg-\[color-mix\(in_srgb\,var\(--as-primary-fg\)_18\%\,transparent\)\]{background-color:var(--as-primary-fg)}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_srgb\,var\(--as-primary-fg\)_18\%\,transparent\)\]{background-color:color-mix(in srgb,var(--as-primary-fg) 18%,transparent)}}.bg-\[color-mix\(in_srgb\,var\(--as-primary-fg\)_20\%\,transparent\)\]{background-color:var(--as-primary-fg)}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_srgb\,var\(--as-primary-fg\)_20\%\,transparent\)\]{background-color:color-mix(in srgb,var(--as-primary-fg) 20%,transparent)}}.bg-\[color-mix\(in_srgb\,var\(--as-success\)_14\%\,transparent\)\]{background-color:var(--as-success)}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_srgb\,var\(--as-success\)_14\%\,transparent\)\]{background-color:color-mix(in srgb,var(--as-success) 14%,transparent)}}.bg-\[color-mix\(in_srgb\,var\(--as-warning\)_12\%\,transparent\)\]{background-color:var(--as-warning)}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_srgb\,var\(--as-warning\)_12\%\,transparent\)\]{background-color:color-mix(in srgb,var(--as-warning) 12%,transparent)}}.bg-\[color-mix\(in_srgb\,var\(--as-warning\)_18\%\,transparent\)\]{background-color:var(--as-warning)}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_srgb\,var\(--as-warning\)_18\%\,transparent\)\]{background-color:color-mix(in srgb,var(--as-warning) 18%,transparent)}}.bg-\[var\(--as-ai\)\]{background-color:var(--as-ai)}.bg-\[var\(--as-border\)\]{background-color:var(--as-border)}.bg-\[var\(--as-danger\)\],.bg-\[var\(--as-danger\)\]\/10{background-color:var(--as-danger)}@supports (color:color-mix(in lab, red, red)){.bg-\[var\(--as-danger\)\]\/10{background-color:color-mix(in oklab, var(--as-danger) 10%, transparent)}}.bg-\[var\(--as-fg\)\]{background-color:var(--as-fg)}.bg-\[var\(--as-muted\)\]{background-color:var(--as-muted)}.bg-\[var\(--as-overlay\)\]{background-color:var(--as-overlay)}.bg-\[var\(--as-primary\)\],.bg-\[var\(--as-primary\)\]\/10{background-color:var(--as-primary)}@supports (color:color-mix(in lab, red, red)){.bg-\[var\(--as-primary\)\]\/10{background-color:color-mix(in oklab, var(--as-primary) 10%, transparent)}}.bg-\[var\(--as-primary\)\]\/50{background-color:var(--as-primary)}@supports (color:color-mix(in lab, red, red)){.bg-\[var\(--as-primary\)\]\/50{background-color:color-mix(in oklab, var(--as-primary) 50%, transparent)}}.bg-\[var\(--as-secondary\)\]{background-color:var(--as-secondary)}.bg-\[var\(--as-success\)\]{background-color:var(--as-success)}.bg-\[var\(--as-surface\)\]{background-color:var(--as-surface)}.bg-\[var\(--as-surface-raised\)\]{background-color:var(--as-surface-raised)}.bg-\[var\(--as-warning\)\]{background-color:var(--as-warning)}.bg-red-500{background-color:var(--color-red-500)}.bg-transparent{background-color:#0000}.fill-\[var\(--as-danger\)\]{fill:var(--as-danger)}.fill-\[var\(--as-fg\)\]{fill:var(--as-fg)}.fill-\[var\(--as-muted\)\]{fill:var(--as-muted)}.fill-\[var\(--as-primary\)\]{fill:var(--as-primary)}.fill-\[var\(--as-primary-fg\)\]{fill:var(--as-primary-fg)}.fill-\[var\(--as-surface-raised\)\]{fill:var(--as-surface-raised)}.stroke-\[var\(--as-border\)\]{stroke:var(--as-border)}.stroke-\[var\(--as-primary\)\]{stroke:var(--as-primary)}.object-cover{object-fit:cover}.p-0{padding:0}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-3\.5{padding:calc(var(--spacing) * 3.5)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-0{padding-inline:0}.px-0\.5{padding-inline:calc(var(--spacing) * .5)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0{padding-block:0}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-12{padding-block:calc(var(--spacing) * 12)}.pt-0{padding-top:0}.pt-0\.5{padding-top:calc(var(--spacing) * .5)}.pt-1{padding-top:var(--spacing)}.pt-1\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pt-8{padding-top:calc(var(--spacing) * 8)}.pt-10{padding-top:calc(var(--spacing) * 10)}.pr-1\.5{padding-right:calc(var(--spacing) * 1.5)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-7{padding-right:calc(var(--spacing) * 7)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pr-14{padding-right:calc(var(--spacing) * 14)}.pr-16{padding-right:calc(var(--spacing) * 16)}.pb-0\.5{padding-bottom:calc(var(--spacing) * .5)}.pb-1{padding-bottom:var(--spacing)}.pb-1\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pl-2\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-5{padding-left:calc(var(--spacing) * 5)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.18em\]{--tw-tracking:.18em;letter-spacing:.18em}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-words{overflow-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[color-mix\(in_srgb\,var\(--as-primary-fg\)_78\%\,transparent\)\]{color:var(--as-primary-fg)}@supports (color:color-mix(in lab, red, red)){.text-\[color-mix\(in_srgb\,var\(--as-primary-fg\)_78\%\,transparent\)\]{color:color-mix(in srgb,var(--as-primary-fg) 78%,transparent)}}.text-\[color-mix\(in_srgb\,var\(--as-warning\)_72\%\,var\(--as-fg\)\)\]{color:var(--as-warning)}@supports (color:color-mix(in lab, red, red)){.text-\[color-mix\(in_srgb\,var\(--as-warning\)_72\%\,var\(--as-fg\)\)\]{color:color-mix(in srgb,var(--as-warning) 72%,var(--as-fg))}}.text-\[var\(--as-ai\)\]{color:var(--as-ai)}.text-\[var\(--as-ai-fg\)\]{color:var(--as-ai-fg)}.text-\[var\(--as-danger\)\]{color:var(--as-danger)}.text-\[var\(--as-danger-fg\)\]{color:var(--as-danger-fg)}.text-\[var\(--as-fg\)\]{color:var(--as-fg)}.text-\[var\(--as-muted-fg\)\]{color:var(--as-muted-fg)}.text-\[var\(--as-primary\)\]{color:var(--as-primary)}.text-\[var\(--as-primary-fg\)\]{color:var(--as-primary-fg)}.text-\[var\(--as-secondary-fg\)\]{color:var(--as-secondary-fg)}.text-\[var\(--as-success\)\]{color:var(--as-success)}.text-\[var\(--as-success-fg\)\]{color:var(--as-success-fg)}.text-\[var\(--as-surface\)\]{color:var(--as-surface)}.text-\[var\(--as-warning\)\]{color:var(--as-warning)}.text-\[var\(--as-warning-fg\)\]{color:var(--as-warning-fg)}.text-inherit{color:inherit}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.decoration-transparent{text-decoration-color:#0000}.underline-offset-2{text-underline-offset:2px}.underline-offset-4{text-underline-offset:4px}.accent-\[var\(--as-primary\)\]{accent-color:var(--as-primary)}.opacity-0{opacity:0}.opacity-10{opacity:.1}.opacity-30{opacity:.3}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[var\(--as-shadow-1\)\]{--tw-shadow:var(--as-shadow-1);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[var\(--as-shadow-2\)\]{--tw-shadow:var(--as-shadow-2);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[var\(--as-shadow-3\)\]{--tw-shadow:var(--as-shadow-3);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-\[var\(--as-focus-ring\)\]{--tw-ring-color:var(--as-focus-ring)}.ring-\[var\(--as-primary\)\]{--tw-ring-color:var(--as-primary)}.ring-offset-2{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.blur-2xl{--tw-blur:blur(var(--blur-2xl));filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition-\[border-color\,box-shadow\,translate\]{transition-property:border-color,box-shadow,translate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[color\,box-shadow\,border-color\]{transition-property:color,box-shadow,border-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[filter\]{transition-property:filter;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.group-hover\:scale-105:is(:where(.group):hover *){--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}.group-hover\:scale-110:is(:where(.group):hover *){--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.group-hover\:bg-\[color-mix\(in_srgb\,var\(--as-primary-fg\)_32\%\,transparent\)\]:is(:where(.group):hover *){background-color:var(--as-primary-fg)}@supports (color:color-mix(in lab, red, red)){.group-hover\:bg-\[color-mix\(in_srgb\,var\(--as-primary-fg\)_32\%\,transparent\)\]:is(:where(.group):hover *){background-color:color-mix(in srgb,var(--as-primary-fg) 32%,transparent)}}.group-hover\:bg-\[color-mix\(in_srgb\,var\(--as-secondary-fg\)_14\%\,transparent\)\]:is(:where(.group):hover *){background-color:var(--as-secondary-fg)}@supports (color:color-mix(in lab, red, red)){.group-hover\:bg-\[color-mix\(in_srgb\,var\(--as-secondary-fg\)_14\%\,transparent\)\]:is(:where(.group):hover *){background-color:color-mix(in srgb,var(--as-secondary-fg) 14%,transparent)}}.group-hover\:bg-\[var\(--as-primary\)\]\/10:is(:where(.group):hover *){background-color:var(--as-primary)}@supports (color:color-mix(in lab, red, red)){.group-hover\:bg-\[var\(--as-primary\)\]\/10:is(:where(.group):hover *){background-color:color-mix(in oklab, var(--as-primary) 10%, transparent)}}.group-hover\:text-\[var\(--as-primary\)\]:is(:where(.group):hover *){color:var(--as-primary)}.group-hover\:decoration-current:is(:where(.group):hover *){text-decoration-color:currentColor}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.placeholder\:text-\[var\(--as-muted-fg\)\]::placeholder{color:var(--as-muted-fg)}.focus-within\:border-\[var\(--as-focus-ring\)\]:focus-within{border-color:var(--as-focus-ring)}.focus-within\:opacity-100:focus-within{opacity:1}.focus-within\:ring-2:focus-within{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-within\:ring-\[var\(--as-focus-ring\)\]:focus-within{--tw-ring-color:var(--as-focus-ring)}@media (hover:hover){.hover\:-translate-y-0\.5:hover{--tw-translate-y:calc(var(--spacing) * -.5);translate:var(--tw-translate-x) var(--tw-translate-y)}.hover\:border-\[var\(--as-fg\)\]\/30:hover{border-color:var(--as-fg)}@supports (color:color-mix(in lab, red, red)){.hover\:border-\[var\(--as-fg\)\]\/30:hover{border-color:color-mix(in oklab, var(--as-fg) 30%, transparent)}}.hover\:border-\[var\(--as-fg\)\]\/40:hover{border-color:var(--as-fg)}@supports (color:color-mix(in lab, red, red)){.hover\:border-\[var\(--as-fg\)\]\/40:hover{border-color:color-mix(in oklab, var(--as-fg) 40%, transparent)}}.hover\:border-\[var\(--as-muted-fg\)\]\/40:hover{border-color:var(--as-muted-fg)}@supports (color:color-mix(in lab, red, red)){.hover\:border-\[var\(--as-muted-fg\)\]\/40:hover{border-color:color-mix(in oklab, var(--as-muted-fg) 40%, transparent)}}.hover\:border-\[var\(--as-primary\)\]:hover{border-color:var(--as-primary)}.hover\:bg-\[color-mix\(in_srgb\,var\(--as-ai\)_14\%\,var\(--as-secondary\)\)\]:hover{background-color:var(--as-ai)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-\[color-mix\(in_srgb\,var\(--as-ai\)_14\%\,var\(--as-secondary\)\)\]:hover{background-color:color-mix(in srgb,var(--as-ai) 14%,var(--as-secondary))}}.hover\:bg-\[color-mix\(in_srgb\,var\(--as-muted\)_60\%\,transparent\)\]:hover{background-color:var(--as-muted)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-\[color-mix\(in_srgb\,var\(--as-muted\)_60\%\,transparent\)\]:hover{background-color:color-mix(in srgb,var(--as-muted) 60%,transparent)}}.hover\:bg-\[color-mix\(in_srgb\,var\(--as-primary\)_6\%\,transparent\)\]:hover{background-color:var(--as-primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-\[color-mix\(in_srgb\,var\(--as-primary\)_6\%\,transparent\)\]:hover{background-color:color-mix(in srgb,var(--as-primary) 6%,transparent)}}.hover\:bg-\[var\(--as-accent-strong\)\]:hover{background-color:var(--as-accent-strong)}.hover\:bg-\[var\(--as-danger\)\]:hover{background-color:var(--as-danger)}.hover\:bg-\[var\(--as-muted\)\]:hover{background-color:var(--as-muted)}.hover\:bg-\[var\(--as-secondary\)\]:hover{background-color:var(--as-secondary)}.hover\:bg-transparent:hover{background-color:#0000}.hover\:text-\[var\(--as-danger\)\]:hover{color:var(--as-danger)}.hover\:text-\[var\(--as-danger-fg\)\]:hover{color:var(--as-danger-fg)}.hover\:text-\[var\(--as-fg\)\]:hover{color:var(--as-fg)}.hover\:text-\[var\(--as-primary\)\]:hover{color:var(--as-primary)}.hover\:text-\[var\(--as-success\)\]:hover{color:var(--as-success)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-85:hover{opacity:.85}.hover\:opacity-90:hover{opacity:.9}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-\[var\(--as-shadow-2\)\]:hover{--tw-shadow:var(--as-shadow-2);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\:shadow-\[var\(--as-shadow-3\)\]:hover{--tw-shadow:var(--as-shadow-3);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\:brightness-95:hover{--tw-brightness:brightness(95%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.hover\:brightness-110:hover{--tw-brightness:brightness(110%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}.focus\:bg-\[var\(--as-danger\)\]\/10:focus{background-color:var(--as-danger)}@supports (color:color-mix(in lab, red, red)){.focus\:bg-\[var\(--as-danger\)\]\/10:focus{background-color:color-mix(in oklab, var(--as-danger) 10%, transparent)}}.focus\:bg-\[var\(--as-secondary\)\]:focus{background-color:var(--as-secondary)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:border-\[var\(--as-danger\)\]:focus-visible{border-color:var(--as-danger)}.focus-visible\:border-\[var\(--as-focus-ring\)\]:focus-visible{border-color:var(--as-focus-ring)}.focus-visible\:border-\[var\(--as-primary\)\]:focus-visible{border-color:var(--as-primary)}.focus-visible\:opacity-100:focus-visible{opacity:1}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-\[var\(--as-danger\)\]:focus-visible{--tw-ring-color:var(--as-danger)}.focus-visible\:ring-\[var\(--as-focus-ring\)\]:focus-visible{--tw-ring-color:var(--as-focus-ring)}.focus-visible\:ring-offset-0:focus-visible{--tw-ring-offset-width:0px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:outline-offset-1:focus-visible{outline-offset:1px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-offset-\[-2px\]:focus-visible{outline-offset:-2px}.focus-visible\:outline-\[var\(--as-focus-ring\)\]:focus-visible{outline-color:var(--as-focus-ring)}.focus-visible\:outline-\[var\(--as-primary\)\]:focus-visible{outline-color:var(--as-primary)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-default:disabled{cursor:default}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}@media (min-width:40rem){.sm\:inset-0{inset:0}.sm\:mx-auto{margin-inline:auto}.sm\:my-auto{margin-block:auto}.sm\:mr-auto{margin-right:auto}.sm\:h-fit{height:fit-content}.sm\:max-h-\[90vh\]{max-height:90vh}.sm\:w-40{width:calc(var(--spacing) * 40)}.sm\:w-fit{width:fit-content}.sm\:max-w-2xl{max-width:var(--container-2xl)}.sm\:max-w-4xl{max-width:var(--container-4xl)}.sm\:max-w-6xl{max-width:var(--container-6xl)}.sm\:max-w-md{max-width:var(--container-md)}.sm\:flex-1{flex:1}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}.sm\:justify-end{justify-content:flex-end}.sm\:rounded-\[var\(--as-radius-lg\)\]{border-radius:var(--as-radius-lg)}.sm\:border{border-style:var(--tw-border-style);border-width:1px}.sm\:border-\[var\(--as-border\)\]{border-color:var(--as-border)}.sm\:p-6{padding:calc(var(--spacing) * 6)}.sm\:p-8{padding:calc(var(--spacing) * 8)}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}}@media (min-width:48rem){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:64rem){.lg\:relative{position:relative}.lg\:sticky{position:sticky}.lg\:top-24{top:calc(var(--spacing) * 24)}.lg\:col-span-1{grid-column:span 1/span 1}.lg\:col-span-3{grid-column:span 3/span 3}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-3 svg{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&_svg\]\:size-4 svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_svg\]\:size-5 svg{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.\[\&_svg\]\:size-\[18px\] svg{width:18px;height:18px}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&\:\:-webkit-inner-spin-button\]\:appearance-none::-webkit-inner-spin-button{appearance:none}.\[\&\:\:-webkit-outer-spin-button\]\:appearance-none::-webkit-outer-spin-button{appearance:none}@keyframes as-fade-in{0%{opacity:0}to{opacity:1}}@keyframes as-zoom-in{0%{opacity:0;scale:.97}to{opacity:1;scale:1}}@keyframes as-pop-in{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}@keyframes as-drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}.as-anim-fade{animation:.15s ease-out as-fade-in}.as-anim-modal{animation:.15s ease-out as-zoom-in}.as-anim-pop{animation:.12s ease-out as-pop-in}.as-anim-drawer{animation:.2s ease-out as-drawer-in}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@keyframes spin{to{transform:rotate(360deg)}}
2
+ @supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0}}:root,:host{--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-500:oklch(63.7% .237 25.331);--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-4xl:56rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--font-weight-black:900;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-lg:.5rem;--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1)}:root{--as-tone-0:oklch(100% 0 0);--as-tone-50:oklch(98.5% .003 90);--as-tone-100:oklch(94.8% .005 90);--as-tone-200:oklch(90.2% .005 90);--as-tone-300:oklch(83% .008 90);--as-tone-500:oklch(50% .012 90);--as-tone-700:oklch(37% .014 90);--as-tone-900:oklch(23.5% .012 90);--as-accent:oklch(55% .16 258);--as-accent-strong:oklch(48% .18 258);--as-success:oklch(62% .15 152);--as-warning:oklch(72% .15 78);--as-danger:oklch(58% .19 27);--as-ai:oklch(54.1% .247 293.009);--as-primary:var(--as-accent);--as-primary-fg:var(--as-tone-50);--as-secondary:var(--as-tone-100);--as-secondary-fg:var(--as-tone-900);--as-surface:var(--as-tone-50);--as-surface-raised:var(--as-tone-0);--as-border:var(--as-tone-200);--as-fg:var(--as-tone-900);--as-muted:var(--as-tone-100);--as-muted-fg:var(--as-tone-500);--as-success-fg:var(--as-tone-0);--as-warning-fg:var(--as-tone-900);--as-danger-fg:var(--as-tone-0);--as-ai-fg:var(--as-tone-0);--as-focus-ring:var(--as-accent);--as-overlay:oklch(0% 0 0/.6);--as-z-modal:50;--as-z-popover:50;--as-radius-sm:calc(var(--as-radius) - .25rem);--as-radius:.625rem;--as-radius-lg:calc(var(--as-radius) + .25rem);--as-font-sans:"Inter Variable", ui-sans-serif, system-ui, sans-serif;--as-font-mono:"JetBrains Mono", ui-monospace, "Cascadia Mono", monospace;--as-shadow-1:0 1px 2px 0 oklch(0% 0 0/.05);--as-shadow-2:0 4px 6px -1px oklch(0% 0 0/.07), 0 2px 4px -2px oklch(0% 0 0/.05);--as-shadow-3:0 10px 15px -3px oklch(0% 0 0/.08), 0 4px 6px -4px oklch(0% 0 0/.05)}.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-y-0{inset-block:0}.top-1{top:var(--spacing)}.top-1\/2{top:50%}.top-3{top:calc(var(--spacing) * 3)}.top-4{top:calc(var(--spacing) * 4)}.-right-3{right:calc(var(--spacing) * -3)}.right-0{right:0}.right-1{right:var(--spacing)}.right-1\.5{right:calc(var(--spacing) * 1.5)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.right-7{right:calc(var(--spacing) * 7)}.bottom-4{bottom:calc(var(--spacing) * 4)}.left-1{left:var(--spacing)}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.z-\[var\(--as-z-modal\)\]{z-index:var(--as-z-modal)}.z-\[var\(--as-z-popover\)\]{z-index:var(--as-z-popover)}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-auto{margin:auto}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.mx-auto{margin-inline:auto}.my-1{margin-block:var(--spacing)}.my-auto{margin-block:auto}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mr-1{margin-right:var(--spacing)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mr-3{margin-right:calc(var(--spacing) * 3)}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.ml-1{margin-left:var(--spacing)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-12{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12)}.size-\[18px\]{width:18px;height:18px}.size-full{width:100%;height:100%}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-14{height:calc(var(--spacing) * 14)}.h-20{height:calc(var(--spacing) * 20)}.h-fit{height:fit-content}.h-full{height:100%}.h-px{height:1px}.max-h-60{max-height:calc(var(--spacing) * 60)}.max-h-\[85vh\]{max-height:85vh}.max-h-\[92vh\]{max-height:92vh}.min-h-0{min-height:0}.min-h-9{min-height:calc(var(--spacing) * 9)}.min-h-16{min-height:calc(var(--spacing) * 16)}.w-4\/5{width:80%}.w-9{width:calc(var(--spacing) * 9)}.w-12{width:calc(var(--spacing) * 12)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-28{width:calc(var(--spacing) * 28)}.w-32{width:calc(var(--spacing) * 32)}.w-40{width:calc(var(--spacing) * 40)}.w-52{width:calc(var(--spacing) * 52)}.w-56{width:calc(var(--spacing) * 56)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-80{width:calc(var(--spacing) * 80)}.w-\[280px\]{width:280px}.w-\[300px\]{width:300px}.w-\[calc\(100\%-2rem\)\]{width:calc(100% - 2rem)}.w-\[var\(--radix-popover-trigger-width\)\]{width:var(--radix-popover-trigger-width)}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-40{max-width:calc(var(--spacing) * 40)}.max-w-64{max-width:calc(var(--spacing) * 64)}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:0}.min-w-5{min-width:calc(var(--spacing) * 5)}.min-w-24{min-width:calc(var(--spacing) * 24)}.min-w-40{min-width:calc(var(--spacing) * 40)}.min-w-44{min-width:calc(var(--spacing) * 44)}.min-w-48{min-width:calc(var(--spacing) * 48)}.min-w-full{min-width:100%}.flex-1{flex:1}.shrink-0{flex-shrink:0}.\[translate\:-50\%_-50\%\]{translate:-50% -50%}.\[translate\:0_-50\%\]{translate:0 -50%}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-progress{cursor:progress}.cursor-text{cursor:text}.resize-none{resize:none}.list-none{list-style-type:none}.\[appearance\:textfield\]{appearance:textfield}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-1\.5{column-gap:calc(var(--spacing) * 1.5)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-y-0\.5{row-gap:calc(var(--spacing) * .5)}.gap-y-1{row-gap:var(--spacing)}.gap-y-4{row-gap:calc(var(--spacing) * 4)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-\[color-mix\(in_srgb\,var\(--as-border\)_55\%\,transparent\)\]>:not(:last-child)){border-color:var(--as-border)}@supports (color:color-mix(in lab, red, red)){:where(.divide-\[color-mix\(in_srgb\,var\(--as-border\)_55\%\,transparent\)\]>:not(:last-child)){border-color:color-mix(in srgb,var(--as-border) 55%,transparent)}}:where(.divide-\[var\(--as-border\)\]>:not(:last-child)){border-color:var(--as-border)}.self-center{align-self:center}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\[calc\(var\(--as-radius\)-2px\)\]{border-radius:calc(var(--as-radius) - 2px)}.rounded-\[calc\(var\(--as-radius-sm\)-2px\)\]{border-radius:calc(var(--as-radius-sm) - 2px)}.rounded-\[var\(--as-radius\)\]{border-radius:var(--as-radius)}.rounded-\[var\(--as-radius-lg\)\]{border-radius:var(--as-radius-lg)}.rounded-\[var\(--as-radius-sm\)\]{border-radius:var(--as-radius-sm)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-\[color-mix\(in_srgb\,var\(--as-ai\)_25\%\,transparent\)\]{border-color:var(--as-ai)}@supports (color:color-mix(in lab, red, red)){.border-\[color-mix\(in_srgb\,var\(--as-ai\)_25\%\,transparent\)\]{border-color:color-mix(in srgb,var(--as-ai) 25%,transparent)}}.border-\[color-mix\(in_srgb\,var\(--as-primary\)_25\%\,transparent\)\]{border-color:var(--as-primary)}@supports (color:color-mix(in lab, red, red)){.border-\[color-mix\(in_srgb\,var\(--as-primary\)_25\%\,transparent\)\]{border-color:color-mix(in srgb,var(--as-primary) 25%,transparent)}}.border-\[color-mix\(in_srgb\,var\(--as-primary\)_40\%\,transparent\)\]{border-color:var(--as-primary)}@supports (color:color-mix(in lab, red, red)){.border-\[color-mix\(in_srgb\,var\(--as-primary\)_40\%\,transparent\)\]{border-color:color-mix(in srgb,var(--as-primary) 40%,transparent)}}.border-\[color-mix\(in_srgb\,var\(--as-warning\)_35\%\,transparent\)\]{border-color:var(--as-warning)}@supports (color:color-mix(in lab, red, red)){.border-\[color-mix\(in_srgb\,var\(--as-warning\)_35\%\,transparent\)\]{border-color:color-mix(in srgb,var(--as-warning) 35%,transparent)}}.border-\[var\(--as-border\)\]{border-color:var(--as-border)}.border-\[var\(--as-danger\)\],.border-\[var\(--as-danger\)\]\/40{border-color:var(--as-danger)}@supports (color:color-mix(in lab, red, red)){.border-\[var\(--as-danger\)\]\/40{border-color:color-mix(in oklab, var(--as-danger) 40%, transparent)}}.border-\[var\(--as-primary\)\],.border-\[var\(--as-primary\)\]\/30{border-color:var(--as-primary)}@supports (color:color-mix(in lab, red, red)){.border-\[var\(--as-primary\)\]\/30{border-color:color-mix(in oklab, var(--as-primary) 30%, transparent)}}.border-\[var\(--as-surface-raised\)\]{border-color:var(--as-surface-raised)}.border-transparent{border-color:#0000}.bg-\[color-mix\(in_srgb\,var\(--as-ai\)_8\%\,transparent\)\]{background-color:var(--as-ai)}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_srgb\,var\(--as-ai\)_8\%\,transparent\)\]{background-color:color-mix(in srgb,var(--as-ai) 8%,transparent)}}.bg-\[color-mix\(in_srgb\,var\(--as-ai\)_12\%\,transparent\)\]{background-color:var(--as-ai)}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_srgb\,var\(--as-ai\)_12\%\,transparent\)\]{background-color:color-mix(in srgb,var(--as-ai) 12%,transparent)}}.bg-\[color-mix\(in_srgb\,var\(--as-danger\)_12\%\,transparent\)\]{background-color:var(--as-danger)}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_srgb\,var\(--as-danger\)_12\%\,transparent\)\]{background-color:color-mix(in srgb,var(--as-danger) 12%,transparent)}}.bg-\[color-mix\(in_srgb\,var\(--as-primary\)_7\%\,transparent\)\]{background-color:var(--as-primary)}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_srgb\,var\(--as-primary\)_7\%\,transparent\)\]{background-color:color-mix(in srgb,var(--as-primary) 7%,transparent)}}.bg-\[color-mix\(in_srgb\,var\(--as-primary\)_8\%\,transparent\)\]{background-color:var(--as-primary)}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_srgb\,var\(--as-primary\)_8\%\,transparent\)\]{background-color:color-mix(in srgb,var(--as-primary) 8%,transparent)}}.bg-\[color-mix\(in_srgb\,var\(--as-primary\)_12\%\,transparent\)\]{background-color:var(--as-primary)}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_srgb\,var\(--as-primary\)_12\%\,transparent\)\]{background-color:color-mix(in srgb,var(--as-primary) 12%,transparent)}}.bg-\[color-mix\(in_srgb\,var\(--as-primary\)_30\%\,transparent\)\]{background-color:var(--as-primary)}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_srgb\,var\(--as-primary\)_30\%\,transparent\)\]{background-color:color-mix(in srgb,var(--as-primary) 30%,transparent)}}.bg-\[color-mix\(in_srgb\,var\(--as-primary-fg\)_20\%\,transparent\)\]{background-color:var(--as-primary-fg)}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_srgb\,var\(--as-primary-fg\)_20\%\,transparent\)\]{background-color:color-mix(in srgb,var(--as-primary-fg) 20%,transparent)}}.bg-\[color-mix\(in_srgb\,var\(--as-success\)_14\%\,transparent\)\]{background-color:var(--as-success)}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_srgb\,var\(--as-success\)_14\%\,transparent\)\]{background-color:color-mix(in srgb,var(--as-success) 14%,transparent)}}.bg-\[color-mix\(in_srgb\,var\(--as-warning\)_12\%\,transparent\)\]{background-color:var(--as-warning)}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_srgb\,var\(--as-warning\)_12\%\,transparent\)\]{background-color:color-mix(in srgb,var(--as-warning) 12%,transparent)}}.bg-\[color-mix\(in_srgb\,var\(--as-warning\)_18\%\,transparent\)\]{background-color:var(--as-warning)}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_srgb\,var\(--as-warning\)_18\%\,transparent\)\]{background-color:color-mix(in srgb,var(--as-warning) 18%,transparent)}}.bg-\[var\(--as-ai\)\]{background-color:var(--as-ai)}.bg-\[var\(--as-border\)\]{background-color:var(--as-border)}.bg-\[var\(--as-danger\)\],.bg-\[var\(--as-danger\)\]\/10{background-color:var(--as-danger)}@supports (color:color-mix(in lab, red, red)){.bg-\[var\(--as-danger\)\]\/10{background-color:color-mix(in oklab, var(--as-danger) 10%, transparent)}}.bg-\[var\(--as-fg\)\]{background-color:var(--as-fg)}.bg-\[var\(--as-muted\)\]{background-color:var(--as-muted)}.bg-\[var\(--as-overlay\)\]{background-color:var(--as-overlay)}.bg-\[var\(--as-primary\)\],.bg-\[var\(--as-primary\)\]\/10{background-color:var(--as-primary)}@supports (color:color-mix(in lab, red, red)){.bg-\[var\(--as-primary\)\]\/10{background-color:color-mix(in oklab, var(--as-primary) 10%, transparent)}}.bg-\[var\(--as-primary\)\]\/50{background-color:var(--as-primary)}@supports (color:color-mix(in lab, red, red)){.bg-\[var\(--as-primary\)\]\/50{background-color:color-mix(in oklab, var(--as-primary) 50%, transparent)}}.bg-\[var\(--as-secondary\)\]{background-color:var(--as-secondary)}.bg-\[var\(--as-success\)\]{background-color:var(--as-success)}.bg-\[var\(--as-surface\)\]{background-color:var(--as-surface)}.bg-\[var\(--as-surface-raised\)\]{background-color:var(--as-surface-raised)}.bg-\[var\(--as-warning\)\]{background-color:var(--as-warning)}.bg-red-500{background-color:var(--color-red-500)}.bg-transparent{background-color:#0000}.fill-\[var\(--as-danger\)\]{fill:var(--as-danger)}.fill-\[var\(--as-fg\)\]{fill:var(--as-fg)}.fill-\[var\(--as-muted\)\]{fill:var(--as-muted)}.fill-\[var\(--as-primary\)\]{fill:var(--as-primary)}.fill-\[var\(--as-primary-fg\)\]{fill:var(--as-primary-fg)}.fill-\[var\(--as-surface-raised\)\]{fill:var(--as-surface-raised)}.stroke-\[var\(--as-border\)\]{stroke:var(--as-border)}.stroke-\[var\(--as-primary\)\]{stroke:var(--as-primary)}.object-cover{object-fit:cover}.p-0{padding:0}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-0{padding-inline:0}.px-0\.5{padding-inline:calc(var(--spacing) * .5)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0{padding-block:0}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-12{padding-block:calc(var(--spacing) * 12)}.pt-0{padding-top:0}.pt-1{padding-top:var(--spacing)}.pt-1\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pt-8{padding-top:calc(var(--spacing) * 8)}.pt-10{padding-top:calc(var(--spacing) * 10)}.pr-1\.5{padding-right:calc(var(--spacing) * 1.5)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-7{padding-right:calc(var(--spacing) * 7)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pr-14{padding-right:calc(var(--spacing) * 14)}.pr-16{padding-right:calc(var(--spacing) * 16)}.pb-0\.5{padding-bottom:calc(var(--spacing) * .5)}.pb-1{padding-bottom:var(--spacing)}.pb-1\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pl-2\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-6{padding-left:calc(var(--spacing) * 6)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.18em\]{--tw-tracking:.18em;letter-spacing:.18em}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-words{overflow-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[color-mix\(in_srgb\,var\(--as-warning\)_72\%\,var\(--as-fg\)\)\]{color:var(--as-warning)}@supports (color:color-mix(in lab, red, red)){.text-\[color-mix\(in_srgb\,var\(--as-warning\)_72\%\,var\(--as-fg\)\)\]{color:color-mix(in srgb,var(--as-warning) 72%,var(--as-fg))}}.text-\[var\(--as-ai\)\]{color:var(--as-ai)}.text-\[var\(--as-ai-fg\)\]{color:var(--as-ai-fg)}.text-\[var\(--as-danger\)\]{color:var(--as-danger)}.text-\[var\(--as-danger-fg\)\]{color:var(--as-danger-fg)}.text-\[var\(--as-fg\)\]{color:var(--as-fg)}.text-\[var\(--as-muted-fg\)\]{color:var(--as-muted-fg)}.text-\[var\(--as-primary\)\]{color:var(--as-primary)}.text-\[var\(--as-primary-fg\)\]{color:var(--as-primary-fg)}.text-\[var\(--as-secondary-fg\)\]{color:var(--as-secondary-fg)}.text-\[var\(--as-success\)\]{color:var(--as-success)}.text-\[var\(--as-success-fg\)\]{color:var(--as-success-fg)}.text-\[var\(--as-surface\)\]{color:var(--as-surface)}.text-\[var\(--as-warning\)\]{color:var(--as-warning)}.text-\[var\(--as-warning-fg\)\]{color:var(--as-warning-fg)}.text-inherit{color:inherit}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.decoration-transparent{text-decoration-color:#0000}.underline-offset-2{text-underline-offset:2px}.underline-offset-4{text-underline-offset:4px}.accent-\[var\(--as-primary\)\]{accent-color:var(--as-primary)}.opacity-0{opacity:0}.opacity-30{opacity:.3}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[var\(--as-shadow-1\)\]{--tw-shadow:var(--as-shadow-1);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[var\(--as-shadow-2\)\]{--tw-shadow:var(--as-shadow-2);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[var\(--as-shadow-3\)\]{--tw-shadow:var(--as-shadow-3);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-\[var\(--as-focus-ring\)\]{--tw-ring-color:var(--as-focus-ring)}.ring-\[var\(--as-primary\)\]{--tw-ring-color:var(--as-primary)}.ring-offset-2{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition-\[border-color\,box-shadow\,translate\]{transition-property:border-color,box-shadow,translate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[filter\]{transition-property:filter;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.group-hover\:bg-\[color-mix\(in_srgb\,var\(--as-primary-fg\)_32\%\,transparent\)\]:is(:where(.group):hover *){background-color:var(--as-primary-fg)}@supports (color:color-mix(in lab, red, red)){.group-hover\:bg-\[color-mix\(in_srgb\,var\(--as-primary-fg\)_32\%\,transparent\)\]:is(:where(.group):hover *){background-color:color-mix(in srgb,var(--as-primary-fg) 32%,transparent)}}.group-hover\:bg-\[color-mix\(in_srgb\,var\(--as-secondary-fg\)_14\%\,transparent\)\]:is(:where(.group):hover *){background-color:var(--as-secondary-fg)}@supports (color:color-mix(in lab, red, red)){.group-hover\:bg-\[color-mix\(in_srgb\,var\(--as-secondary-fg\)_14\%\,transparent\)\]:is(:where(.group):hover *){background-color:color-mix(in srgb,var(--as-secondary-fg) 14%,transparent)}}.group-hover\:bg-\[var\(--as-primary\)\]\/10:is(:where(.group):hover *){background-color:var(--as-primary)}@supports (color:color-mix(in lab, red, red)){.group-hover\:bg-\[var\(--as-primary\)\]\/10:is(:where(.group):hover *){background-color:color-mix(in oklab, var(--as-primary) 10%, transparent)}}.group-hover\:text-\[var\(--as-primary\)\]:is(:where(.group):hover *){color:var(--as-primary)}.group-hover\:decoration-current:is(:where(.group):hover *){text-decoration-color:currentColor}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.placeholder\:text-\[var\(--as-muted-fg\)\]::placeholder{color:var(--as-muted-fg)}.focus-within\:border-\[var\(--as-focus-ring\)\]:focus-within{border-color:var(--as-focus-ring)}.focus-within\:opacity-100:focus-within{opacity:1}.focus-within\:ring-2:focus-within{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-within\:ring-\[var\(--as-focus-ring\)\]:focus-within{--tw-ring-color:var(--as-focus-ring)}@media (hover:hover){.hover\:-translate-y-0\.5:hover{--tw-translate-y:calc(var(--spacing) * -.5);translate:var(--tw-translate-x) var(--tw-translate-y)}.hover\:border-\[var\(--as-fg\)\]\/30:hover{border-color:var(--as-fg)}@supports (color:color-mix(in lab, red, red)){.hover\:border-\[var\(--as-fg\)\]\/30:hover{border-color:color-mix(in oklab, var(--as-fg) 30%, transparent)}}.hover\:border-\[var\(--as-fg\)\]\/40:hover{border-color:var(--as-fg)}@supports (color:color-mix(in lab, red, red)){.hover\:border-\[var\(--as-fg\)\]\/40:hover{border-color:color-mix(in oklab, var(--as-fg) 40%, transparent)}}.hover\:border-\[var\(--as-muted-fg\)\]\/40:hover{border-color:var(--as-muted-fg)}@supports (color:color-mix(in lab, red, red)){.hover\:border-\[var\(--as-muted-fg\)\]\/40:hover{border-color:color-mix(in oklab, var(--as-muted-fg) 40%, transparent)}}.hover\:border-\[var\(--as-primary\)\]:hover{border-color:var(--as-primary)}.hover\:bg-\[color-mix\(in_srgb\,var\(--as-ai\)_14\%\,var\(--as-secondary\)\)\]:hover{background-color:var(--as-ai)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-\[color-mix\(in_srgb\,var\(--as-ai\)_14\%\,var\(--as-secondary\)\)\]:hover{background-color:color-mix(in srgb,var(--as-ai) 14%,var(--as-secondary))}}.hover\:bg-\[color-mix\(in_srgb\,var\(--as-muted\)_60\%\,transparent\)\]:hover{background-color:var(--as-muted)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-\[color-mix\(in_srgb\,var\(--as-muted\)_60\%\,transparent\)\]:hover{background-color:color-mix(in srgb,var(--as-muted) 60%,transparent)}}.hover\:bg-\[color-mix\(in_srgb\,var\(--as-primary\)_6\%\,transparent\)\]:hover{background-color:var(--as-primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-\[color-mix\(in_srgb\,var\(--as-primary\)_6\%\,transparent\)\]:hover{background-color:color-mix(in srgb,var(--as-primary) 6%,transparent)}}.hover\:bg-\[var\(--as-danger\)\]:hover{background-color:var(--as-danger)}.hover\:bg-\[var\(--as-muted\)\]:hover{background-color:var(--as-muted)}.hover\:bg-\[var\(--as-secondary\)\]:hover{background-color:var(--as-secondary)}.hover\:bg-transparent:hover{background-color:#0000}.hover\:text-\[var\(--as-danger\)\]:hover{color:var(--as-danger)}.hover\:text-\[var\(--as-danger-fg\)\]:hover{color:var(--as-danger-fg)}.hover\:text-\[var\(--as-fg\)\]:hover{color:var(--as-fg)}.hover\:text-\[var\(--as-primary\)\]:hover{color:var(--as-primary)}.hover\:text-\[var\(--as-success\)\]:hover{color:var(--as-success)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-85:hover{opacity:.85}.hover\:opacity-90:hover{opacity:.9}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-\[var\(--as-shadow-2\)\]:hover{--tw-shadow:var(--as-shadow-2);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\:shadow-\[var\(--as-shadow-3\)\]:hover{--tw-shadow:var(--as-shadow-3);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\:brightness-95:hover{--tw-brightness:brightness(95%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.hover\:brightness-110:hover{--tw-brightness:brightness(110%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}.focus\:bg-\[var\(--as-danger\)\]\/10:focus{background-color:var(--as-danger)}@supports (color:color-mix(in lab, red, red)){.focus\:bg-\[var\(--as-danger\)\]\/10:focus{background-color:color-mix(in oklab, var(--as-danger) 10%, transparent)}}.focus\:bg-\[var\(--as-secondary\)\]:focus{background-color:var(--as-secondary)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:border-\[var\(--as-danger\)\]:focus-visible{border-color:var(--as-danger)}.focus-visible\:border-\[var\(--as-focus-ring\)\]:focus-visible{border-color:var(--as-focus-ring)}.focus-visible\:border-\[var\(--as-primary\)\]:focus-visible{border-color:var(--as-primary)}.focus-visible\:opacity-100:focus-visible{opacity:1}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-\[var\(--as-danger\)\]:focus-visible{--tw-ring-color:var(--as-danger)}.focus-visible\:ring-\[var\(--as-focus-ring\)\]:focus-visible{--tw-ring-color:var(--as-focus-ring)}.focus-visible\:ring-offset-0:focus-visible{--tw-ring-offset-width:0px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:outline-offset-1:focus-visible{outline-offset:1px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-offset-\[-2px\]:focus-visible{outline-offset:-2px}.focus-visible\:outline-\[var\(--as-focus-ring\)\]:focus-visible{outline-color:var(--as-focus-ring)}.focus-visible\:outline-\[var\(--as-primary\)\]:focus-visible{outline-color:var(--as-primary)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-default:disabled{cursor:default}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}@media (min-width:40rem){.sm\:inset-0{inset:0}.sm\:mx-auto{margin-inline:auto}.sm\:my-auto{margin-block:auto}.sm\:mr-auto{margin-right:auto}.sm\:h-fit{height:fit-content}.sm\:max-h-\[90vh\]{max-height:90vh}.sm\:w-40{width:calc(var(--spacing) * 40)}.sm\:w-fit{width:fit-content}.sm\:max-w-2xl{max-width:var(--container-2xl)}.sm\:max-w-4xl{max-width:var(--container-4xl)}.sm\:max-w-6xl{max-width:var(--container-6xl)}.sm\:max-w-md{max-width:var(--container-md)}.sm\:flex-1{flex:1}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}.sm\:justify-end{justify-content:flex-end}.sm\:rounded-\[var\(--as-radius-lg\)\]{border-radius:var(--as-radius-lg)}.sm\:border{border-style:var(--tw-border-style);border-width:1px}.sm\:border-\[var\(--as-border\)\]{border-color:var(--as-border)}.sm\:p-6{padding:calc(var(--spacing) * 6)}.sm\:p-8{padding:calc(var(--spacing) * 8)}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}}@media (min-width:48rem){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:64rem){.lg\:relative{position:relative}.lg\:sticky{position:sticky}.lg\:top-24{top:calc(var(--spacing) * 24)}.lg\:col-span-1{grid-column:span 1/span 1}.lg\:col-span-3{grid-column:span 3/span 3}.lg\:flex{display:flex}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-3 svg{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&_svg\]\:size-4 svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_svg\]\:size-5 svg{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&\:\:-webkit-inner-spin-button\]\:appearance-none::-webkit-inner-spin-button{appearance:none}.\[\&\:\:-webkit-outer-spin-button\]\:appearance-none::-webkit-outer-spin-button{appearance:none}@keyframes as-fade-in{0%{opacity:0}to{opacity:1}}@keyframes as-zoom-in{0%{opacity:0;scale:.97}to{opacity:1;scale:1}}@keyframes as-pop-in{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}@keyframes as-drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}.as-anim-fade{animation:.15s ease-out as-fade-in}.as-anim-modal{animation:.15s ease-out as-zoom-in}.as-anim-pop{animation:.12s ease-out as-pop-in}.as-anim-drawer{animation:.2s ease-out as-drawer-in}[data-as=scale-slider] input[type=range]{appearance:none;background:0 0;height:1.125rem}[data-as=scale-slider] input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--as-slider-color,var(--as-primary)) var(--as-slider-progress,0%), var(--as-muted) var(--as-slider-progress,0%));border-radius:999px;height:.375rem}[data-as=scale-slider] input[type=range]::-webkit-slider-thumb{appearance:none;border:3px solid var(--as-slider-color,var(--as-primary));background:var(--as-surface-raised);width:1.125rem;height:1.125rem;box-shadow:var(--as-shadow-2);border-radius:999px;margin-top:-.375rem}[data-as=scale-slider] input[type=range]::-moz-range-track{background:var(--as-muted);border-radius:999px;height:.375rem}[data-as=scale-slider] input[type=range]::-moz-range-progress{background:var(--as-slider-color,var(--as-primary));border-radius:999px;height:.375rem}[data-as=scale-slider] input[type=range]::-moz-range-thumb{border:3px solid var(--as-slider-color,var(--as-primary));background:var(--as-surface-raised);width:1.125rem;height:1.125rem;box-shadow:var(--as-shadow-2);border-radius:999px}[data-as=scale-slider] input[type=range]:focus-visible{outline:2px solid var(--as-focus-ring);outline-offset:2px}[data-as=scale-slider] input[type=range]:disabled{opacity:.5;cursor:not-allowed}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@keyframes spin{to{transform:rotate(360deg)}}