@colineapp/ui 0.4.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +12 -0
- package/README.md +37 -0
- package/dist/index.d.ts +20 -6
- package/dist/index.js +105 -126
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +5 -2
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/utils.ts","../src/provider.tsx","../src/components/badge.tsx","../src/components/button.tsx","../src/components/card.tsx","../src/components/checkbox.tsx","../src/components/dialog.tsx","../src/components/dropdown-menu.tsx","../src/components/liquid-menu-surface.ts","../src/components/menu-highlight.tsx","../src/components/field.tsx","../src/components/label.tsx","../src/components/separator.tsx","../src/components/input.tsx","../src/components/popover.tsx","../src/components/progress.tsx","../src/components/select.tsx","../src/components/skeleton.tsx","../src/components/slider.tsx","../src/components/switch.tsx","../src/components/table.tsx","../src/components/tabs.tsx","../src/components/textarea.tsx","../src/components/toggle.tsx","../src/components/tooltip.tsx","../src/live-collection.ts","../src/patterns/workspace.tsx"],"sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport {\n connectGuestBridge,\n type GuestBridge,\n type SandboxContext,\n type ThemeTokens,\n} from \"@colineapp/app-runtime\";\nimport type { ColineCapabilities } from \"@colineapp/sdk/v2\";\n\n/**\n * The app-side runtime context (plan §7.2.4, §7.2.6): connects the guest\n * bridge, applies host theme tokens to the frame's root element (dark\n * mode flips live), and exposes `coline`, the surface context, and\n * data-fetching hooks to app components.\n */\n\ninterface ColineRuntime {\n bridge: GuestBridge;\n coline: ColineCapabilities;\n context: SandboxContext;\n colorScheme: \"light\" | \"dark\";\n}\n\nconst ColineRuntimeContext = React.createContext<ColineRuntime | null>(null);\n\nfunction applyTheme(theme: ThemeTokens, colorScheme: \"light\" | \"dark\"): void {\n const root = document.documentElement;\n for (const [token, value] of Object.entries(theme)) {\n if (token.startsWith(\"--\")) {\n root.style.setProperty(token, value);\n }\n }\n root.classList.toggle(\"dark\", colorScheme === \"dark\");\n}\n\nexport function ColineAppProvider({ children }: { children: React.ReactNode }) {\n const [connectionError, setConnectionError] = React.useState<string | null>(null);\n const [runtime, setRuntime] = React.useState<ColineRuntime | null>(null);\n\n React.useEffect(() => {\n let disposed = false;\n let activeBridge: GuestBridge | null = null;\n let removeThemeListener: (() => void) | null = null;\n\n void connectGuestBridge()\n .then((bridge) => {\n if (disposed) {\n bridge.dispose();\n return;\n }\n activeBridge = bridge;\n applyTheme(bridge.theme, bridge.colorScheme);\n removeThemeListener = bridge.onThemeChange((theme, colorScheme) => {\n applyTheme(theme, colorScheme);\n setRuntime((current) => (current ? { ...current, colorScheme } : current));\n });\n setRuntime({\n bridge,\n coline: bridge.coline,\n context: bridge.context,\n colorScheme: bridge.colorScheme,\n });\n })\n .catch((error: unknown) => {\n if (!disposed) setConnectionError(error instanceof Error ? error.message : String(error));\n });\n\n return () => {\n disposed = true;\n activeBridge?.dispose();\n removeThemeListener?.();\n };\n }, []);\n\n React.useEffect(() => {\n if (!runtime) return;\n // Keep the host informed of content height for inline embeds.\n const observer = new ResizeObserver(() => {\n runtime.bridge.reportHeight(document.documentElement.scrollHeight);\n });\n observer.observe(document.documentElement);\n return () => observer.disconnect();\n }, [runtime]);\n\n if (!runtime) {\n return (\n <p role={connectionError ? \"alert\" : \"status\"}>\n {connectionError ?? \"Connecting to Coline…\"}\n </p>\n );\n }\n\n return <ColineRuntimeContext.Provider value={runtime}>{children}</ColineRuntimeContext.Provider>;\n}\n\nexport function useColine(): ColineCapabilities {\n const runtime = React.useContext(ColineRuntimeContext);\n if (!runtime) {\n throw new Error(\"useColine must be used inside <ColineAppProvider>.\");\n }\n return runtime.coline;\n}\n\nexport function useColineContext(): SandboxContext {\n const runtime = React.useContext(ColineRuntimeContext);\n if (!runtime) {\n throw new Error(\"useColineContext must be used inside <ColineAppProvider>.\");\n }\n return runtime.context;\n}\n\nexport function useColorScheme(): \"light\" | \"dark\" {\n const runtime = React.useContext(ColineRuntimeContext);\n if (!runtime) {\n throw new Error(\"useColorScheme must be used inside <ColineAppProvider>.\");\n }\n return runtime.colorScheme;\n}\n\nexport interface ColineQueryState<T> {\n data: T | null;\n error: string | null;\n isLoading: boolean;\n refetch: () => void;\n}\n\n/**\n * Minimal async-state hook over a capability call (plan §7.2.6). Not a\n * cache — apps needing one can bring their own; this covers the common\n * load-render-refresh loop without dependencies.\n */\nexport function useColineQuery<T>(\n loader: (coline: ColineCapabilities) => Promise<T>,\n deps: React.DependencyList = [],\n): ColineQueryState<T> {\n const coline = useColine();\n const [state, setState] = React.useState<{\n data: T | null;\n error: string | null;\n isLoading: boolean;\n }>({ data: null, error: null, isLoading: true });\n const [nonce, setNonce] = React.useState(0);\n const loaderRef = React.useRef(loader);\n loaderRef.current = loader;\n\n React.useEffect(() => {\n let cancelled = false;\n setState((current) => ({ ...current, isLoading: true, error: null }));\n void loaderRef\n .current(coline)\n .then((data) => {\n if (!cancelled) setState({ data, error: null, isLoading: false });\n })\n .catch((error: unknown) => {\n if (!cancelled) {\n setState({\n data: null,\n error: error instanceof Error ? error.message : String(error),\n isLoading: false,\n });\n }\n });\n return () => {\n cancelled = true;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [coline, nonce, ...deps]);\n\n const refetch = React.useCallback(() => setNonce((value) => value + 1), []);\n\n return { ...state, refetch };\n}\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { Slot } from \"radix-ui\"\n\nimport { cn } from \"../lib/utils\"\n\nconst badgeVariants = cva(\n \"group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3!\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground [a]:hover:bg-primary/80\",\n secondary:\n \"bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80\",\n destructive:\n \"bg-destructive/10 text-destructive dark:bg-destructive/20 [a]:hover:bg-destructive/20\",\n outline:\n \"border-border bg-input/30 text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground\",\n ghost:\n \"hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nfunction Badge({\n className,\n variant = \"default\",\n asChild = false,\n ...props\n}: React.ComponentProps<\"span\"> &\n VariantProps<typeof badgeVariants> & { asChild?: boolean }) {\n const Comp = asChild ? Slot.Root : \"span\"\n\n return (\n <Comp\n data-slot=\"badge\"\n data-variant={variant}\n className={cn(badgeVariants({ variant }), className)}\n {...props}\n />\n )\n}\n\nexport { Badge, badgeVariants }\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { Slot } from \"radix-ui\";\n\nimport { cn } from \"../lib/utils\";\n\nconst buttonVariants = cva(\n \"group/button inline-flex shrink-0 items-center justify-center rounded-4xl border border-white/20 text-sm font-medium whitespace-nowrap transition-[color,background-color,border-color] duration-200 ease-out outline-none select-none focus-visible:border-ring disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-[3px] aria-invalid:ring-destructive/20 dark:border-white/[0.06] dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n default:\n \"bg-gradient-to-b from-blue-50 to-blue-100 text-blue-700 border-blue-200/50 hover:from-blue-100 hover:to-blue-150 shadow-[inset_0_1px_0_0_rgba(255,255,255,0.1),0_1px_3px_0_rgba(0,0,0,0.1)] dark:from-blue-950/50 dark:to-blue-900/50 dark:text-blue-300 dark:border-blue-800/30 dark:hover:from-blue-900/60 dark:hover:to-blue-800/60 dark:shadow-[inset_0_1px_0_0_rgba(255,255,255,0.05),0_1px_3px_0_rgba(0,0,0,0.3)]\",\n outline:\n \"border-border/40 bg-background/60 shadow-[inset_0_1px_0_rgba(255,255,255,0.5),inset_0_-1px_2px_rgba(0,0,0,0.03)] hover:bg-background/80 hover:shadow-[inset_0_1px_0_rgba(255,255,255,0.6),inset_0_-1px_3px_rgba(0,0,0,0.04)] hover:text-foreground active:shadow-[inset_0_2px_6px_rgba(0,0,0,0.06)] dark:bg-white/[0.04] dark:shadow-[inset_0_1px_0_rgba(255,255,255,0.04),inset_0_-1px_2px_rgba(0,0,0,0.2)] dark:hover:bg-white/[0.07] dark:hover:shadow-[inset_0_1px_0_rgba(255,255,255,0.06),inset_0_-1px_3px_rgba(0,0,0,0.25)] dark:active:shadow-[inset_0_2px_6px_rgba(0,0,0,0.35)] aria-expanded:bg-muted aria-expanded:text-foreground aria-expanded:shadow-[inset_0_2px_4px_rgba(0,0,0,0.06)]\",\n secondary:\n \"bg-secondary/70 text-secondary-foreground shadow-[inset_0_1px_0_rgba(255,255,255,0.6),inset_0_-1px_2px_rgba(0,0,0,0.04)] hover:bg-secondary/85 hover:shadow-[inset_0_1px_0_rgba(255,255,255,0.7),inset_0_-1px_3px_rgba(0,0,0,0.05)] active:shadow-[inset_0_2px_6px_rgba(0,0,0,0.07)] dark:bg-secondary/50 dark:shadow-[inset_0_1px_0_rgba(255,255,255,0.04),inset_0_-1px_2px_rgba(0,0,0,0.2)] dark:hover:bg-secondary/60 dark:hover:shadow-[inset_0_1px_0_rgba(255,255,255,0.06),inset_0_-1px_3px_rgba(0,0,0,0.25)] dark:active:shadow-[inset_0_2px_6px_rgba(0,0,0,0.35)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground aria-expanded:shadow-[inset_0_2px_4px_rgba(0,0,0,0.05)]\",\n ghost:\n \"hover:bg-muted/50 hover:text-foreground hover:shadow-[inset_0_1px_0_rgba(255,255,255,0.4),inset_0_-1px_2px_rgba(0,0,0,0.03)] active:shadow-[inset_0_2px_5px_rgba(0,0,0,0.06)] dark:hover:bg-white/[0.04] dark:hover:shadow-[inset_0_1px_0_rgba(255,255,255,0.03),inset_0_-1px_2px_rgba(0,0,0,0.15)] dark:active:shadow-[inset_0_2px_5px_rgba(0,0,0,0.3)] aria-expanded:bg-muted aria-expanded:text-foreground\",\n destructive:\n \"bg-destructive/8 text-destructive shadow-[inset_0_1px_0_rgba(255,255,255,0.4),inset_0_-1px_2px_rgba(220,38,38,0.06)] hover:bg-destructive/12 hover:shadow-[inset_0_1px_0_rgba(255,255,255,0.5),inset_0_-1px_3px_rgba(220,38,38,0.08)] active:shadow-[inset_0_2px_6px_rgba(220,38,38,0.12)] focus-visible:border-destructive/40 dark:bg-destructive/15 dark:shadow-[inset_0_1px_0_rgba(255,255,255,0.03),inset_0_-1px_2px_rgba(0,0,0,0.2)] dark:hover:bg-destructive/22 dark:hover:shadow-[inset_0_1px_0_rgba(255,255,255,0.05),inset_0_-1px_3px_rgba(0,0,0,0.25)] dark:active:shadow-[inset_0_2px_6px_rgba(0,0,0,0.35)]\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default:\n \"h-9 gap-1.5 px-3 has-data-[icon=inline-end]:pr-2.5 has-data-[icon=inline-start]:pl-2.5\",\n xs: \"h-6 gap-1 px-2.5 text-xs has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 [&_svg:not([class*='size-'])]:size-3\",\n sm: \"h-8 gap-1 px-3 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2\",\n lg: \"h-10 gap-1.5 px-4 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3\",\n icon: \"size-9\",\n \"icon-xs\": \"size-6 [&_svg:not([class*='size-'])]:size-3\",\n \"icon-sm\": \"size-8\",\n \"icon-lg\": \"size-10\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n);\n\nconst Button = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean;\n }\n>(function Button(\n {\n className,\n variant = \"default\",\n size = \"default\",\n asChild = false,\n ...props\n },\n ref,\n) {\n const Comp = asChild ? Slot.Root : \"button\";\n\n return (\n <Comp\n ref={ref}\n data-slot=\"button\"\n data-variant={variant}\n data-size={size}\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n );\n});\n\nexport { Button, buttonVariants };\n","import * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction Card({\n className,\n size = \"default\",\n ...props\n}: React.ComponentProps<\"div\"> & { size?: \"default\" | \"sm\" }) {\n return (\n <div\n data-slot=\"card\"\n data-size={size}\n className={cn(\n \"group/card flex flex-col gap-6 overflow-hidden rounded-2xl bg-card py-6 text-sm text-card-foreground ring-1 ring-foreground/10 has-[>img:first-child]:pt-0 data-[size=sm]:gap-4 data-[size=sm]:py-4 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CardHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-header\"\n className={cn(\n \"group/card-header @container/card-header grid auto-rows-min items-start gap-2 rounded-t-xl px-6 group-data-[size=sm]/card:px-4 has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-6 group-data-[size=sm]/card:[.border-b]:pb-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CardTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-title\"\n className={cn(\"text-base font-medium\", className)}\n {...props}\n />\n )\n}\n\nfunction CardDescription({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-description\"\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nfunction CardAction({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-action\"\n className={cn(\n \"col-start-2 row-span-2 row-start-1 self-start justify-self-end\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CardContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-content\"\n className={cn(\"px-6 group-data-[size=sm]/card:px-4\", className)}\n {...props}\n />\n )\n}\n\nfunction CardFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-footer\"\n className={cn(\n \"flex items-center rounded-b-xl px-6 group-data-[size=sm]/card:px-4 [.border-t]:pt-6 group-data-[size=sm]/card:[.border-t]:pt-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n Card,\n CardHeader,\n CardFooter,\n CardTitle,\n CardAction,\n CardDescription,\n CardContent,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { IconCheck } from \"@tabler/icons-react\"\nimport { Checkbox as CheckboxPrimitive } from \"radix-ui\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction Checkbox({\n className,\n ...props\n}: React.ComponentProps<typeof CheckboxPrimitive.Root>) {\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n className={cn(\n \"peer relative flex size-4 shrink-0 items-center justify-center rounded-[6px] border border-input outline-none transition-[transform,background-color,border-color,box-shadow] duration-150 ease-out after:absolute after:-inset-x-3 after:-inset-y-2 hover:border-foreground/30 active:scale-[0.88] group-has-disabled/field:opacity-50 focus-visible:border-ring disabled:cursor-not-allowed disabled:opacity-50 disabled:active:scale-100 aria-invalid:border-destructive aria-invalid:ring-[3px] aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground data-checked:shadow-[0_0_0_2px_color-mix(in_oklab,var(--primary)_18%,transparent)] dark:data-checked:bg-primary motion-reduce:transition-none\",\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n data-slot=\"checkbox-indicator\"\n className=\"grid place-content-center text-current data-[state=checked]:animate-in data-[state=checked]:zoom-in-75 data-[state=checked]:fade-in data-[state=checked]:duration-150 data-[state=checked]:ease-out motion-reduce:animate-none [&>svg]:size-3.5\"\n >\n <IconCheck />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n )\n}\n\nexport { Checkbox }\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Dialog as DialogPrimitive } from \"radix-ui\";\n\nimport { cn } from \"../lib/utils\";\nimport { Button } from \"./button\";\nimport { IconX } from \"@tabler/icons-react\";\n\nfunction Dialog({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />;\n}\n\nfunction DialogTrigger({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />;\n}\n\nfunction DialogPortal({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />;\n}\n\nfunction DialogClose({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />;\n}\n\nfunction DialogOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n data-slot=\"dialog-overlay\"\n className={cn(\n \"fixed inset-0 isolate z-50 bg-black/30 supports-backdrop-filter:backdrop-blur-sm\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DialogContent({\n className,\n children,\n showCloseButton = true,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content> & {\n showCloseButton?: boolean;\n}) {\n return (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n data-slot=\"dialog-content\"\n className={cn(\n // Mobile: bottom-sheet style, pinned to bottom with slide-up\n \"fixed z-50 grid w-full gap-4 bg-background/75 dark:bg-zinc-900/75 backdrop-blur-sm p-4 text-sm shadow-xl shadow-black/10 dark:shadow-black/30 ring-1 ring-white/15 dark:ring-white/10 inset-ring inset-ring-white/10 dark:inset-ring-white/5 outline-none\",\n \"inset-x-0 bottom-0 max-h-[85dvh] overflow-y-auto rounded-t-3xl pb-[max(1rem,env(safe-area-inset-bottom))]\",\n // Desktop: centered modal\n \"sm:inset-x-auto sm:bottom-auto sm:top-1/2 sm:left-1/2 sm:max-w-md sm:max-h-[calc(100dvh-4rem)] sm:-translate-x-1/2 sm:-translate-y-1/2 sm:rounded-4xl sm:p-6 sm:gap-6 sm:pb-6\",\n className,\n )}\n {...props}\n >\n {/* Mobile drag indicator */}\n <div className=\"mx-auto h-1 w-10 shrink-0 rounded-full bg-muted-foreground/30 sm:hidden\" />\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close data-slot=\"dialog-close\" asChild>\n <Button\n variant=\"ghost\"\n className=\"absolute top-4 right-4\"\n size=\"icon-sm\"\n >\n <IconX />\n <span className=\"sr-only\">Close</span>\n </Button>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </DialogPortal>\n );\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"dialog-header\"\n className={cn(\"flex flex-col gap-2\", className)}\n {...props}\n />\n );\n}\n\nfunction DialogFooter({\n className,\n showCloseButton = false,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & {\n showCloseButton?: boolean;\n}) {\n return (\n <div\n data-slot=\"dialog-footer\"\n className={cn(\n \"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end\",\n className,\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close asChild>\n <Button variant=\"outline\">Close</Button>\n </DialogPrimitive.Close>\n )}\n </div>\n );\n}\n\nfunction DialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Title>) {\n return (\n <DialogPrimitive.Title\n data-slot=\"dialog-title\"\n className={cn(\"text-base leading-none font-medium\", className)}\n {...props}\n />\n );\n}\n\nfunction DialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return (\n <DialogPrimitive.Description\n data-slot=\"dialog-description\"\n className={cn(\n \"text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport { DropdownMenu as DropdownMenuPrimitive } from \"radix-ui\";\nimport { IconCheck, IconChevronRight } from \"@tabler/icons-react\";\n\nimport { liquidMenuSurfaceClasses } from \"./liquid-menu-surface\";\nimport {\n MenuHighlightContext,\n SUPER_HOVER_ATTR,\n useMenuHighlight,\n} from \"./menu-highlight\";\nimport { cn } from \"../lib/utils\";\n\nconst contentClasses = cn(\n \"relative z-50 overflow-x-hidden overflow-y-auto p-1\",\n liquidMenuSurfaceClasses,\n);\n\nconst subContentClasses = cn(\n \"relative z-50 isolate overflow-x-hidden overflow-y-auto p-1\",\n liquidMenuSurfaceClasses,\n \"after:pointer-events-none after:absolute after:inset-y-1 after:left-0 after:w-px after:bg-neutral-500/20\",\n);\n\n// ── Primitives ──────────────────────────────────────────────────────────────\n\nfunction DropdownMenu({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Root>) {\n return <DropdownMenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />;\n}\n\nfunction DropdownMenuPortal({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>) {\n return (\n <DropdownMenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" {...props} />\n );\n}\n\nfunction DropdownMenuTrigger({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>) {\n return (\n <DropdownMenuPrimitive.Trigger\n data-slot=\"dropdown-menu-trigger\"\n {...props}\n />\n );\n}\n\nfunction DropdownMenuContent({\n className,\n align = \"start\",\n sideOffset = 4,\n children,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Content>) {\n const contentRef = React.useRef<HTMLDivElement>(null);\n const glass = useMenuHighlight(contentRef);\n\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n ref={contentRef}\n data-slot=\"dropdown-menu-content\"\n sideOffset={sideOffset}\n align={align}\n onPointerLeave={glass.clear}\n className={cn(\n contentClasses,\n \"max-h-(--radix-dropdown-menu-content-available-height) w-(--radix-dropdown-menu-trigger-width) min-w-48 origin-(--radix-dropdown-menu-content-transform-origin) duration-150 ease-[cubic-bezier(0.23,1,0.32,1)] data-[state=closed]:overflow-hidden data-[side=bottom]:slide-in-from-top-1 data-[side=left]:slide-in-from-right-1 data-[side=right]:slide-in-from-left-1 data-[side=top]:slide-in-from-bottom-1 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95\",\n className,\n )}\n {...props}\n >\n {glass.element}\n <div className=\"relative z-10\">\n <MenuHighlightContext.Provider value={glass.ctx}>\n {children}\n </MenuHighlightContext.Provider>\n </div>\n </DropdownMenuPrimitive.Content>\n </DropdownMenuPrimitive.Portal>\n );\n}\n\nfunction DropdownMenuGroup({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Group>) {\n return (\n <DropdownMenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />\n );\n}\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = \"default\",\n onPointerEnter,\n onFocus,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean;\n variant?: \"default\" | \"destructive\";\n}) {\n const { reportHover } = React.useContext(MenuHighlightContext);\n\n return (\n <DropdownMenuPrimitive.Item\n data-slot=\"dropdown-menu-item\"\n {...SUPER_HOVER_ATTR}\n data-inset={inset}\n data-variant={variant}\n onFocus={(e) => {\n reportHover(e.currentTarget);\n onFocus?.(e);\n }}\n onPointerEnter={(e) => {\n reportHover(e.currentTarget);\n onPointerEnter?.(e);\n }}\n className={cn(\n \"group/dropdown-menu-item relative flex cursor-default items-center gap-2 rounded-lg px-2.5 py-1.5 text-sm font-medium leading-5 outline-hidden select-none focus-visible:text-accent-foreground not-data-[variant=destructive]:focus-visible:**:text-accent-foreground data-inset:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus-visible:text-destructive data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg]:text-muted-foreground/75 data-[variant=destructive]:*:[svg]:text-destructive\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n inset,\n onPointerEnter,\n onFocus,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem> & {\n inset?: boolean;\n}) {\n const { reportHover } = React.useContext(MenuHighlightContext);\n\n return (\n <DropdownMenuPrimitive.CheckboxItem\n data-slot=\"dropdown-menu-checkbox-item\"\n {...SUPER_HOVER_ATTR}\n data-inset={inset}\n onFocus={(e) => {\n reportHover(e.currentTarget);\n onFocus?.(e);\n }}\n onPointerEnter={(e) => {\n reportHover(e.currentTarget);\n onPointerEnter?.(e);\n }}\n className={cn(\n \"relative flex cursor-default items-center gap-2 rounded-lg py-1.5 pr-8 pl-2.5 text-sm font-medium leading-5 outline-hidden select-none focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-8 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg]:text-muted-foreground/75\",\n className,\n )}\n {...(checked !== undefined ? { checked } : {})}\n {...props}\n >\n <span\n className=\"pointer-events-none absolute right-2 flex items-center justify-center\"\n data-slot=\"dropdown-menu-checkbox-item-indicator\"\n >\n <DropdownMenuPrimitive.ItemIndicator>\n <IconCheck />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n );\n}\n\nfunction DropdownMenuRadioGroup({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>) {\n return (\n <DropdownMenuPrimitive.RadioGroup\n data-slot=\"dropdown-menu-radio-group\"\n {...props}\n />\n );\n}\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n inset,\n onPointerEnter,\n onFocus,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem> & {\n inset?: boolean;\n}) {\n const { reportHover } = React.useContext(MenuHighlightContext);\n\n return (\n <DropdownMenuPrimitive.RadioItem\n data-slot=\"dropdown-menu-radio-item\"\n {...SUPER_HOVER_ATTR}\n data-inset={inset}\n onFocus={(e) => {\n reportHover(e.currentTarget);\n onFocus?.(e);\n }}\n onPointerEnter={(e) => {\n reportHover(e.currentTarget);\n onPointerEnter?.(e);\n }}\n className={cn(\n \"relative flex cursor-default items-center gap-2 rounded-lg py-1.5 pr-8 pl-2.5 text-sm font-medium leading-5 outline-hidden select-none focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-8 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg]:text-muted-foreground/75\",\n className,\n )}\n {...props}\n >\n <span\n className=\"pointer-events-none absolute right-2 flex items-center justify-center\"\n data-slot=\"dropdown-menu-radio-item-indicator\"\n >\n <DropdownMenuPrimitive.ItemIndicator>\n <IconCheck />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n );\n}\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.Label\n data-slot=\"dropdown-menu-label\"\n data-inset={inset}\n className={cn(\n \"px-2.5 pt-2 pb-1 text-xs font-medium text-muted-foreground/60 data-inset:pl-8\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>) {\n return (\n <DropdownMenuPrimitive.Separator\n data-slot=\"dropdown-menu-separator\"\n className={cn(\"mx-1.5 my-1 h-px bg-black/[0.06] dark:bg-white/[0.07]\", className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuShortcut({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"dropdown-menu-shortcut\"\n className={cn(\n \"ml-auto text-xs text-muted-foreground/60 group-focus-visible/dropdown-menu-item:text-accent-foreground\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSub({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>) {\n return <DropdownMenuPrimitive.Sub data-slot=\"dropdown-menu-sub\" {...props} />;\n}\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n onPointerEnter,\n onFocus,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n}) {\n const { reportHover } = React.useContext(MenuHighlightContext);\n\n return (\n <DropdownMenuPrimitive.SubTrigger\n data-slot=\"dropdown-menu-sub-trigger\"\n {...SUPER_HOVER_ATTR}\n data-inset={inset}\n onFocus={(e) => {\n reportHover(e.currentTarget);\n onFocus?.(e);\n }}\n onPointerEnter={(e) => {\n reportHover(e.currentTarget);\n onPointerEnter?.(e);\n }}\n className={cn(\n \"flex cursor-default items-center gap-2 rounded-lg px-2.5 py-1.5 text-sm font-medium leading-5 outline-hidden select-none focus-visible:text-accent-foreground not-data-[variant=destructive]:focus-visible:**:text-accent-foreground data-inset:pl-8 data-[state=open]:bg-black/[0.045] dark:data-[state=open]:bg-white/[0.08] [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg]:text-muted-foreground/75\",\n className,\n )}\n {...props}\n >\n {children}\n <IconChevronRight className=\"ml-auto\" />\n </DropdownMenuPrimitive.SubTrigger>\n );\n}\n\nfunction DropdownMenuSubContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>) {\n const contentRef = React.useRef<HTMLDivElement>(null);\n const glass = useMenuHighlight(contentRef);\n\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.SubContent\n ref={contentRef}\n data-slot=\"dropdown-menu-sub-content\"\n onPointerLeave={glass.clear}\n className={cn(\n subContentClasses,\n \"min-w-36 origin-(--radix-dropdown-menu-content-transform-origin) transform-gpu will-change-[opacity,transform] duration-160 ease-[cubic-bezier(0.23,1,0.32,1)] data-[state=closed]:overflow-hidden data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95\",\n className,\n )}\n {...props}\n >\n {glass.element}\n <div className=\"relative z-10\">\n <MenuHighlightContext.Provider value={glass.ctx}>\n {children}\n </MenuHighlightContext.Provider>\n </div>\n </DropdownMenuPrimitive.SubContent>\n </DropdownMenuPrimitive.Portal>\n );\n}\n\nexport {\n DropdownMenu,\n DropdownMenuPortal,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n};\n","/**\n * Solid surface shared by {@link DropdownMenuContent},\n * {@link ContextMenuContent}, {@link SelectContent} and {@link TooltipContent}.\n *\n * Light menus ride the --popover token; dark menus go deeper than the theme\n * overlay (#141417) so they sit below the interface, not at card level.\n * Crisp hairline edge and deep, diffuse shadows. No translucency, no blur,\n * no inset lighting. Hover state lives in the flat sliding pill\n * (see menu-highlight).\n */\nexport const liquidMenuSurfaceClasses =\n \"rounded-2xl bg-popover/75 dark:bg-zinc-900/75 backdrop-blur-[3px] border border-black/[0.08] text-popover-foreground\" +\n \" shadow-[0_4px_16px_-4px_rgba(0,0,0,0.08),0_16px_48px_-12px_rgba(0,0,0,0.28)]\" +\n \" dark:border-white/[0.09] dark:bg-[#141417]\" +\n \" dark:shadow-[0_4px_16px_-4px_rgba(0,0,0,0.4),0_16px_48px_-12px_rgba(0,0,0,0.7)]\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { motion } from \"framer-motion\";\nimport { createSuperHover, type SuperHoverEventDetail } from \"super-hover\";\n\n/**\n * Sliding hover pill shared by DropdownMenu and ContextMenu. Items report\n * hover/focus through {@link MenuHighlightContext}; the pill glides between\n * them. Flat neutral fill — no border, no shadow, no lighting.\n *\n * Pointer events alone are not enough: browsers deliberately stop updating\n * `:hover` while a list scrolls, so in a scrollable menu the pill would stay\n * pinned to whichever row the pointer last physically crossed. `super-hover`\n * hit-tests under the pointer every frame, so the pill follows the row that is\n * actually beneath the cursor as the list moves under it.\n */\n\n/** Marks a menu row as a hit-test target for the per-frame hover tracker. */\nexport const SUPER_HOVER_ATTR = { \"data-super-hover\": \"\" } as const;\n\nexport const MenuHighlightContext = React.createContext<{\n reportHover: (element: HTMLElement) => void;\n}>({ reportHover: () => {} });\n\nexport function useMenuHighlight(\n contentRef: React.RefObject<HTMLDivElement | null>,\n) {\n const [rect, setRect] = React.useState<{\n top: number;\n height: number;\n } | null>(null);\n const [visible, setVisible] = React.useState(false);\n /**\n * The pill snaps into place the first time it appears and glides thereafter.\n * That decision is made when hover is reported — never read during render,\n * since a ref read at render time can leave the transition stale.\n */\n const [instant, setInstant] = React.useState(true);\n const visibleRef = React.useRef(false);\n const nextAppearIsInstantRef = React.useRef(true);\n const resetTimerRef = React.useRef<number | null>(null);\n\n const reportHover = React.useCallback(\n (element: HTMLElement) => {\n const content = contentRef.current;\n if (!content) return;\n const contentRect = content.getBoundingClientRect();\n const itemRect = element.getBoundingClientRect();\n setRect({\n top: itemRect.top - contentRect.top + content.scrollTop,\n height: itemRect.height,\n });\n\n if (resetTimerRef.current !== null) {\n window.clearTimeout(resetTimerRef.current);\n resetTimerRef.current = null;\n }\n\n // Appearing from hidden snaps; moving between rows glides.\n setInstant(visibleRef.current ? false : nextAppearIsInstantRef.current);\n nextAppearIsInstantRef.current = false;\n visibleRef.current = true;\n setVisible(true);\n },\n [contentRef],\n );\n\n const clear = React.useCallback(() => {\n visibleRef.current = false;\n setVisible(false);\n // Leaving and returning quickly keeps the glide, so a brief overshoot off\n // the menu doesn't make the pill jump when the pointer comes back.\n if (resetTimerRef.current !== null) {\n window.clearTimeout(resetTimerRef.current);\n }\n resetTimerRef.current = window.setTimeout(() => {\n nextAppearIsInstantRef.current = true;\n resetTimerRef.current = null;\n }, 50);\n }, []);\n\n React.useEffect(\n () => () => {\n if (resetTimerRef.current !== null) {\n window.clearTimeout(resetTimerRef.current);\n }\n },\n [],\n );\n\n // Per-frame hit-testing, scoped to this menu so it never fights another open\n // surface. Torn down with the menu, which is why it is created on mount\n // rather than kept alive globally.\n React.useEffect(() => {\n const content = contentRef.current;\n if (!content) return undefined;\n\n const handleEnter = (event: Event) => {\n const detail = (event as CustomEvent<SuperHoverEventDetail>).detail;\n if (detail.current instanceof HTMLElement) {\n reportHover(detail.current);\n }\n };\n\n const handleLeave = (event: Event) => {\n const detail = (event as CustomEvent<SuperHoverEventDetail>).detail;\n // Only clear when the pointer left the menu entirely; moving between two\n // rows fires leave-then-enter and would otherwise flicker the pill.\n if (!detail.current) {\n clear();\n }\n };\n\n content.addEventListener(\"superhoverenter\", handleEnter);\n content.addEventListener(\"superhoverleave\", handleLeave);\n\n const controller = createSuperHover({\n root: content,\n events: [\"enter\", \"leave\"],\n });\n\n return () => {\n content.removeEventListener(\"superhoverenter\", handleEnter);\n content.removeEventListener(\"superhoverleave\", handleLeave);\n controller.destroy();\n };\n }, [clear, contentRef, reportHover]);\n\n const ctx = React.useMemo(() => ({ reportHover }), [reportHover]);\n\n const element = (\n <motion.div\n className=\"pointer-events-none absolute inset-x-1 top-0 z-0 rounded-2xl bg-black/[0.045] transform-gpu will-change-[transform,opacity] dark:bg-white/[0.08]\"\n initial={false}\n animate={{\n y: rect?.top ?? 0,\n height: rect?.height ?? 0,\n opacity: visible ? 1 : 0,\n }}\n transition={{\n y: instant\n ? { duration: 0 }\n : { type: \"spring\", bounce: 0, duration: 0.15 },\n height: instant\n ? { duration: 0 }\n : { type: \"spring\", bounce: 0, duration: 0.15 },\n opacity: {\n duration: instant ? 0.05 : 0.1,\n ease: \"linear\",\n },\n }}\n />\n );\n\n return { ctx, clear, element };\n}\n","\"use client\"\n\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../lib/utils\"\nimport { Label } from \"./label\"\nimport { Separator } from \"./separator\"\n\nfunction FieldSet({ className, ...props }: React.ComponentProps<\"fieldset\">) {\n return (\n <fieldset\n data-slot=\"field-set\"\n className={cn(\n \"flex flex-col gap-6 has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldLegend({\n className,\n variant = \"legend\",\n ...props\n}: React.ComponentProps<\"legend\"> & { variant?: \"legend\" | \"label\" }) {\n return (\n <legend\n data-slot=\"field-legend\"\n data-variant={variant}\n className={cn(\n \"mb-3 font-medium data-[variant=label]:text-sm data-[variant=legend]:text-base\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field-group\"\n className={cn(\n \"group/field-group @container/field-group flex w-full flex-col gap-7 data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nconst fieldVariants = cva(\n \"group/field flex w-full gap-3 data-[invalid=true]:text-destructive\",\n {\n variants: {\n orientation: {\n vertical: \"flex-col *:w-full [&>.sr-only]:w-auto\",\n horizontal:\n \"flex-row items-center has-[>[data-slot=field-content]]:items-start *:data-[slot=field-label]:flex-auto has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px\",\n responsive:\n \"flex-col *:w-full @md/field-group:flex-row @md/field-group:items-center @md/field-group:*:w-auto @md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:*:data-[slot=field-label]:flex-auto [&>.sr-only]:w-auto @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px\",\n },\n },\n defaultVariants: {\n orientation: \"vertical\",\n },\n }\n)\n\nfunction Field({\n className,\n orientation = \"vertical\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof fieldVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"field\"\n data-orientation={orientation}\n className={cn(fieldVariants({ orientation }), className)}\n {...props}\n />\n )\n}\n\nfunction FieldContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field-content\"\n className={cn(\n \"group/field-content flex flex-1 flex-col gap-1 leading-snug\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldLabel({\n className,\n ...props\n}: React.ComponentProps<typeof Label>) {\n return (\n <Label\n data-slot=\"field-label\"\n className={cn(\n \"group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50 has-data-checked:border-primary/30 has-data-checked:bg-primary/5 has-[>[data-slot=field]]:rounded-xl has-[>[data-slot=field]]:border *:data-[slot=field]:p-4 dark:has-data-checked:border-primary/20 dark:has-data-checked:bg-primary/10\",\n \"has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field-label\"\n className={cn(\n \"flex w-fit items-center gap-2 text-sm leading-snug font-medium group-data-[disabled=true]/field:opacity-50\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"field-description\"\n className={cn(\n \"text-left text-sm leading-normal font-normal text-muted-foreground group-has-data-horizontal/field:text-balance [[data-variant=legend]+&]:-mt-1.5\",\n \"last:mt-0 nth-last-2:-mt-1\",\n \"[&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldSeparator({\n children,\n className,\n ...props\n}: React.ComponentProps<\"div\"> & {\n children?: React.ReactNode\n}) {\n return (\n <div\n data-slot=\"field-separator\"\n data-content={!!children}\n className={cn(\n \"relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2\",\n className\n )}\n {...props}\n >\n <Separator className=\"absolute inset-0 top-1/2\" />\n {children && (\n <span\n className=\"relative mx-auto block w-fit bg-background px-2 text-muted-foreground\"\n data-slot=\"field-separator-content\"\n >\n {children}\n </span>\n )}\n </div>\n )\n}\n\nfunction FieldError({\n className,\n children,\n errors,\n ...props\n}: React.ComponentProps<\"div\"> & {\n errors?: Array<{ message?: string } | undefined>\n}) {\n const uniqueErrors = errors?.length\n ? [...new Map(errors.map((error) => [error?.message, error])).values()]\n : []\n\n const content = children\n ?? (uniqueErrors.length === 1\n ? uniqueErrors[0]?.message\n : uniqueErrors.length > 1\n ? (\n <ul className=\"ml-4 flex list-disc flex-col gap-1\">\n {uniqueErrors.map(\n (error, index) =>\n error?.message && <li key={index}>{error.message}</li>\n )}\n </ul>\n )\n : null)\n\n if (!content) {\n return null\n }\n\n return (\n <div\n role=\"alert\"\n data-slot=\"field-error\"\n className={cn(\"text-sm font-normal text-destructive\", className)}\n {...props}\n >\n {content}\n </div>\n )\n}\n\nexport {\n Field,\n FieldLabel,\n FieldDescription,\n FieldError,\n FieldGroup,\n FieldLegend,\n FieldSeparator,\n FieldSet,\n FieldContent,\n FieldTitle,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Label as LabelPrimitive } from \"radix-ui\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction Label({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n \"flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Label }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Separator as SeparatorPrimitive } from \"radix-ui\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction Separator({\n className,\n orientation = \"horizontal\",\n decorative = true,\n ...props\n}: React.ComponentProps<typeof SeparatorPrimitive.Root>) {\n return (\n <SeparatorPrimitive.Root\n data-slot=\"separator\"\n decorative={decorative}\n orientation={orientation}\n className={cn(\n \"shrink-0 bg-border data-horizontal:h-px data-horizontal:w-full data-vertical:w-px data-vertical:self-stretch\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Separator }\n","import * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction Input({ className, type, ...props }: React.ComponentProps<\"input\">) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n \"h-9 w-full min-w-0 rounded-4xl border border-input bg-input/30 px-3 py-1 text-base transition-colors outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:border-foreground/25 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-[3px] aria-invalid:ring-destructive/20 md:text-sm dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Input }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Popover as PopoverPrimitive } from \"radix-ui\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction Popover({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />\n}\n\nfunction PopoverTrigger({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />\n}\n\nfunction PopoverContent({\n className,\n align = \"center\",\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Content>) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n data-slot=\"popover-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 flex w-72 origin-(--radix-popover-content-transform-origin) flex-col gap-4 rounded-2xl bg-popover/75 dark:bg-zinc-900/75 backdrop-blur-[3px] p-4 text-sm text-popover-foreground shadow-xl shadow-black/10 dark:shadow-black/30 ring-1 ring-white/15 dark:ring-white/10 inset-ring inset-ring-white/10 dark:inset-ring-white/5 outline-hidden duration-200 ease-out data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:overflow-hidden data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95\",\n className\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n )\n}\n\nfunction PopoverAnchor({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\n return <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />\n}\n\nfunction PopoverHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"popover-header\"\n className={cn(\"flex flex-col gap-1 text-sm\", className)}\n {...props}\n />\n )\n}\n\nfunction PopoverTitle({ className, ...props }: React.ComponentProps<\"h2\">) {\n return (\n <div\n data-slot=\"popover-title\"\n className={cn(\"text-base font-medium\", className)}\n {...props}\n />\n )\n}\n\nfunction PopoverDescription({\n className,\n ...props\n}: React.ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"popover-description\"\n className={cn(\"text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Popover,\n PopoverAnchor,\n PopoverContent,\n PopoverDescription,\n PopoverHeader,\n PopoverTitle,\n PopoverTrigger,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Progress as ProgressPrimitive } from \"radix-ui\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction Progress({\n className,\n value,\n ...props\n}: React.ComponentProps<typeof ProgressPrimitive.Root>) {\n return (\n <ProgressPrimitive.Root\n data-slot=\"progress\"\n className={cn(\n \"relative flex h-3 w-full items-center overflow-x-hidden rounded-4xl bg-muted\",\n className\n )}\n {...props}\n >\n <ProgressPrimitive.Indicator\n data-slot=\"progress-indicator\"\n className=\"size-full flex-1 bg-primary transition-all\"\n style={{ transform: `translateX(-${100 - (value || 0)}%)` }}\n />\n </ProgressPrimitive.Root>\n )\n}\n\nexport { Progress }\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Select as SelectPrimitive } from \"radix-ui\";\nimport { IconCheck, IconChevronDown, IconChevronUp, IconSelector } from \"@tabler/icons-react\";\n\nimport { liquidMenuSurfaceClasses } from \"./liquid-menu-surface\";\nimport { cn } from \"../lib/utils\";\n\nconst contentClasses = cn(\n \"relative z-50 overflow-x-hidden overflow-y-auto p-1\",\n liquidMenuSurfaceClasses,\n);\n\n// ── Primitives ──────────────────────────────────────────────────────────────\n\nfunction Select({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Root>) {\n return <SelectPrimitive.Root data-slot=\"select\" {...props} />;\n}\n\nfunction SelectGroup({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Group>) {\n return (\n <SelectPrimitive.Group\n data-slot=\"select-group\"\n className={cn(\"scroll-my-1\", className)}\n {...props}\n />\n );\n}\n\nfunction SelectValue({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Value>) {\n return <SelectPrimitive.Value data-slot=\"select-value\" {...props} />;\n}\n\nfunction SelectTrigger({\n className,\n size = \"default\",\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Trigger> & {\n size?: \"sm\" | \"default\";\n}) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n data-size={size}\n className={cn(\n \"flex w-fit items-center justify-between gap-1.5 rounded-4xl border border-input bg-input/30 px-3 py-2 text-sm whitespace-nowrap outline-none transition-[color,background-color,border-color,box-shadow,transform] duration-150 ease-out motion-safe:active:scale-[0.98] focus-visible:border-ring disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-[3px] aria-invalid:ring-destructive/20 data-placeholder:text-muted-foreground data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <IconSelector className=\"pointer-events-none size-4 text-muted-foreground\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n );\n}\n\nfunction SelectContent({\n className,\n children,\n position = \"item-aligned\",\n align = \"center\",\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Content>) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n data-slot=\"select-content\"\n data-align-trigger={position === \"item-aligned\"}\n className={cn(\n contentClasses,\n \"max-h-(--radix-select-content-available-height) min-w-36 origin-(--radix-select-content-transform-origin) transform-gpu will-change-[opacity,transform] duration-150 ease-[cubic-bezier(0.23,1,0.32,1)] data-[state=closed]:overflow-hidden data-[side=bottom]:slide-in-from-top-1 data-[side=left]:slide-in-from-right-1 data-[side=right]:slide-in-from-left-1 data-[side=top]:slide-in-from-bottom-1 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95\",\n position === \"popper\" &&\n \"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\n className,\n )}\n position={position}\n align={align}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n data-position={position}\n className={cn(\n \"data-[position=popper]:h-(--radix-select-trigger-height) data-[position=popper]:w-full data-[position=popper]:min-w-(--radix-select-trigger-width)\",\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n );\n}\n\nfunction SelectLabel({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Label>) {\n return (\n <SelectPrimitive.Label\n data-slot=\"select-label\"\n className={cn(\"px-2.5 pt-2 pb-1 text-xs font-medium text-muted-foreground/60\", className)}\n {...props}\n />\n );\n}\n\nfunction SelectItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Item>) {\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(\n \"relative flex w-full cursor-default items-center gap-2 rounded-lg py-1.5 pr-8 pl-2.5 text-sm font-medium leading-5 outline-hidden select-none transition-colors duration-100 ease-out focus:bg-black/[0.045] focus:text-accent-foreground dark:focus:bg-white/[0.08] not-data-[variant=destructive]:focus:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg]:text-muted-foreground/75 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2\",\n className,\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute right-2 flex size-4 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <IconCheck className=\"pointer-events-none\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n );\n}\n\nfunction SelectSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Separator>) {\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border/50\", className)}\n {...props}\n />\n );\n}\n\nfunction SelectScrollUpButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>) {\n return (\n <SelectPrimitive.ScrollUpButton\n data-slot=\"select-scroll-up-button\"\n className={cn(\n \"z-10 flex cursor-default items-center justify-center py-1 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <IconChevronUp />\n </SelectPrimitive.ScrollUpButton>\n );\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>) {\n return (\n <SelectPrimitive.ScrollDownButton\n data-slot=\"select-scroll-down-button\"\n className={cn(\n \"z-10 flex cursor-default items-center justify-center py-1 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <IconChevronDown />\n </SelectPrimitive.ScrollDownButton>\n );\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n};\n","import { cn } from \"../lib/utils\"\n\nfunction Skeleton({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"skeleton\"\n className={cn(\"animate-pulse rounded-xl bg-muted\", className)}\n {...props}\n />\n )\n}\n\nexport { Skeleton }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Slider as SliderPrimitive } from \"radix-ui\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction Slider({\n className,\n defaultValue,\n value,\n min = 0,\n max = 100,\n ...props\n}: React.ComponentProps<typeof SliderPrimitive.Root>) {\n const _values = React.useMemo(\n () =>\n Array.isArray(value)\n ? value\n : Array.isArray(defaultValue)\n ? defaultValue\n : [min, max],\n [value, defaultValue, min, max]\n )\n\n // Build optional props to satisfy exactOptionalPropertyTypes\n const optionalProps: Record<string, unknown> = {}\n if (defaultValue !== undefined) optionalProps.defaultValue = defaultValue\n if (value !== undefined) optionalProps.value = value\n if (min !== undefined) optionalProps.min = min\n if (max !== undefined) optionalProps.max = max\n\n return (\n <SliderPrimitive.Root\n data-slot=\"slider\"\n {...optionalProps}\n className={cn(\n \"relative flex w-full touch-none items-center select-none data-disabled:opacity-50 data-vertical:h-full data-vertical:min-h-40 data-vertical:w-auto data-vertical:flex-col\",\n className\n )}\n {...props}\n >\n <SliderPrimitive.Track\n data-slot=\"slider-track\"\n className=\"relative grow overflow-hidden rounded-4xl bg-muted data-horizontal:h-3 data-horizontal:w-full data-vertical:h-full data-vertical:w-3\"\n >\n <SliderPrimitive.Range\n data-slot=\"slider-range\"\n className=\"absolute bg-primary select-none data-horizontal:h-full data-vertical:w-full\"\n />\n </SliderPrimitive.Track>\n {Array.from({ length: _values.length }, (_, index) => (\n <SliderPrimitive.Thumb\n data-slot=\"slider-thumb\"\n key={index}\n className=\"block size-4 shrink-0 rounded-4xl border border-primary bg-white shadow-sm ring-ring/50 transition-colors select-none hover:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50 dark:bg-foreground\"\n />\n ))}\n </SliderPrimitive.Root>\n )\n}\n\nexport { Slider }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Switch as SwitchPrimitive } from \"radix-ui\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction Switch({\n className,\n size = \"default\",\n ...props\n}: React.ComponentProps<typeof SwitchPrimitive.Root> & {\n size?: \"sm\" | \"default\"\n}) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n data-size={size}\n className={cn(\n \"peer group/switch relative inline-flex shrink-0 items-center rounded-full border border-transparent transition-all outline-none after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring aria-invalid:border-destructive aria-invalid:ring-[3px] aria-invalid:ring-destructive/20 data-[size=default]:h-[18.4px] data-[size=default]:w-[32px] data-[size=sm]:h-[14px] data-[size=sm]:w-[24px] dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:bg-primary data-unchecked:bg-muted-foreground/30 data-disabled:cursor-not-allowed data-disabled:opacity-50\",\n className\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className=\"pointer-events-none block rounded-full bg-background ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 group-data-[size=default]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=sm]/switch:data-checked:translate-x-[calc(100%-2px)] dark:data-checked:bg-primary-foreground group-data-[size=default]/switch:data-unchecked:translate-x-0 group-data-[size=sm]/switch:data-unchecked:translate-x-0 dark:data-unchecked:bg-foreground\"\n />\n </SwitchPrimitive.Root>\n )\n}\n\nexport { Switch }\n","\"use client\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction Table({ className, ...props }: React.ComponentProps<\"table\">) {\n return (\n <div\n data-slot=\"table-container\"\n className=\"relative w-full overflow-x-auto\"\n >\n <table\n data-slot=\"table\"\n className={cn(\"w-full caption-bottom text-sm\", className)}\n {...props}\n />\n </div>\n )\n}\n\nfunction TableHeader({ className, ...props }: React.ComponentProps<\"thead\">) {\n return (\n <thead\n data-slot=\"table-header\"\n className={cn(\"[&_tr]:border-b [&_tr]:border-border/60\", className)}\n {...props}\n />\n )\n}\n\nfunction TableBody({ className, ...props }: React.ComponentProps<\"tbody\">) {\n return (\n <tbody\n data-slot=\"table-body\"\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n />\n )\n}\n\nfunction TableFooter({ className, ...props }: React.ComponentProps<\"tfoot\">) {\n return (\n <tfoot\n data-slot=\"table-footer\"\n className={cn(\n \"border-t border-border/60 bg-muted/40 font-medium [&>tr]:last:border-b-0\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction TableRow({ className, ...props }: React.ComponentProps<\"tr\">) {\n return (\n <tr\n data-slot=\"table-row\"\n className={cn(\n \"border-b border-border/60 transition-colors hover:bg-muted/40 data-[state=selected]:bg-muted\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction TableHead({ className, ...props }: React.ComponentProps<\"th\">) {\n return (\n <th\n data-slot=\"table-head\"\n className={cn(\n \"h-9 px-4 text-left align-middle text-xs font-medium whitespace-nowrap text-muted-foreground [&:has([role=checkbox])]:pr-0\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction TableCell({ className, ...props }: React.ComponentProps<\"td\">) {\n return (\n <td\n data-slot=\"table-cell\"\n className={cn(\n \"px-4 py-3 align-middle whitespace-nowrap tabular-nums [&:has([role=checkbox])]:pr-0\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction TableCaption({\n className,\n ...props\n}: React.ComponentProps<\"caption\">) {\n return (\n <caption\n data-slot=\"table-caption\"\n className={cn(\"mt-3 text-sm text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { Tabs as TabsPrimitive } from \"radix-ui\"\nimport { motion } from \"framer-motion\"\n\nimport { cn } from \"../lib/utils\"\n\n/** Shared spring for tab pill + trigger layout — keep in sync wherever `layout` runs alongside `TabsIndicator`. */\nexport const TABS_LAYOUT_SPRING = {\n type: \"spring\" as const,\n stiffness: 720,\n damping: 46,\n mass: 0.48,\n}\n\nfunction Tabs({\n className,\n orientation = \"horizontal\",\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Root>) {\n return (\n <TabsPrimitive.Root\n data-slot=\"tabs\"\n data-orientation={orientation}\n className={cn(\n \"group/tabs flex gap-2 data-horizontal:flex-col\",\n className\n )}\n {...props}\n />\n )\n}\n\nconst tabsListVariants = cva(\n \"group/tabs-list relative inline-flex w-fit items-center justify-center rounded-4xl p-[3px] text-muted-foreground group-data-horizontal/tabs:h-9 group-data-vertical/tabs:h-fit group-data-vertical/tabs:flex-col group-data-vertical/tabs:rounded-2xl data-[variant=line]:rounded-none\",\n {\n variants: {\n variant: {\n default:\n \"bg-muted/70 border border-black/4 shadow-[inset_0_1px_2px_rgba(0,0,0,0.06)] dark:bg-white/4 dark:border-white/4 dark:shadow-[inset_0_1px_3px_rgba(0,0,0,0.3)]\",\n line: \"gap-1 bg-transparent\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nfunction TabsList({\n className,\n variant = \"default\",\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.List> &\n VariantProps<typeof tabsListVariants>) {\n return (\n <TabsPrimitive.List\n data-slot=\"tabs-list\"\n data-variant={variant}\n className={cn(tabsListVariants({ variant }), className)}\n {...props}\n />\n )\n}\n\nfunction TabsTrigger({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Trigger>) {\n return (\n <TabsPrimitive.Trigger\n data-slot=\"tabs-trigger\"\n className={cn(\n \"relative z-1 inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-xl border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap text-foreground/50 transition-[color,background-color,border-color] duration-150 ease-[cubic-bezier(0.23,1,0.32,1)] group-data-vertical/tabs:w-full group-data-vertical/tabs:justify-start group-data-vertical/tabs:px-2.5 group-data-vertical/tabs:py-1.5 hover:text-foreground/80 focus-visible:border-ring disabled:pointer-events-none disabled:opacity-50 dark:text-muted-foreground/70 dark:hover:text-muted-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n \"group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-active:bg-transparent group-data-[variant=line]/tabs-list:data-active:shadow-none dark:group-data-[variant=line]/tabs-list:data-active:border-transparent dark:group-data-[variant=line]/tabs-list:data-active:bg-transparent\",\n \"data-active:text-foreground data-active:hover:text-foreground dark:data-active:text-foreground dark:data-active:hover:text-foreground\",\n \"after:absolute after:bg-foreground after:opacity-0 after:transition-opacity group-data-horizontal/tabs:after:inset-x-0 group-data-horizontal/tabs:after:-bottom-1.25 group-data-horizontal/tabs:after:h-0.5 group-data-vertical/tabs:after:inset-y-0 group-data-vertical/tabs:after:-right-1 group-data-vertical/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-active:after:opacity-100\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Animated sliding pill indicator for TabsList (Apple-style). */\nfunction TabsIndicator({\n className,\n layoutId = \"tabs-indicator\",\n}: {\n className?: string\n layoutId?: string\n}) {\n return (\n <motion.div\n layout=\"position\"\n layoutId={layoutId}\n className={cn(\n \"absolute inset-0 z-[-1] rounded-xl bg-background border border-black/6 shadow-[0_1px_3px_0_rgba(0,0,0,0.08)] dark:bg-white/7 dark:border-white/6 dark:shadow-[0_1px_3px_0_rgba(0,0,0,0.3),inset_0_1px_0_0_rgba(255,255,255,0.04)]\",\n className\n )}\n transition={TABS_LAYOUT_SPRING}\n />\n )\n}\n\nfunction TabsContent({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Content>) {\n return (\n <TabsPrimitive.Content\n data-slot=\"tabs-content\"\n className={cn(\n \"flex-1 text-sm outline-none animate-in fade-in-0 slide-in-from-bottom-0.5 duration-100 ease-out\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Tabs, TabsList, TabsTrigger, TabsIndicator, TabsContent, tabsListVariants }\n","import * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction Textarea({ className, ...props }: React.ComponentProps<\"textarea\">) {\n return (\n <textarea\n data-slot=\"textarea\"\n className={cn(\n \"flex field-sizing-content min-h-16 w-full resize-none rounded-xl border border-input bg-input/30 px-3 py-3 text-base transition-colors outline-none placeholder:text-muted-foreground focus-visible:border-foreground/25 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-[3px] aria-invalid:ring-destructive/20 md:text-sm dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Textarea }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { Toggle as TogglePrimitive } from \"radix-ui\"\n\nimport { cn } from \"../lib/utils\"\n\nconst toggleVariants = cva(\n \"group/toggle inline-flex items-center justify-center gap-1 rounded-[min(var(--radius-2xl),12px)] text-sm font-medium whitespace-nowrap transition-colors outline-none hover:bg-muted hover:text-foreground focus-visible:border-ring disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 aria-pressed:bg-muted dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n outline: \"border border-input bg-transparent hover:bg-muted\",\n },\n size: {\n default: \"h-9 min-w-9 px-2.5\",\n sm: \"h-8 min-w-8 px-2\",\n lg: \"h-10 min-w-10 px-2.5\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nfunction Toggle({\n className,\n variant = \"default\",\n size = \"default\",\n ...props\n}: React.ComponentProps<typeof TogglePrimitive.Root> &\n VariantProps<typeof toggleVariants>) {\n return (\n <TogglePrimitive.Root\n data-slot=\"toggle\"\n className={cn(toggleVariants({ variant, size, className }))}\n {...props}\n />\n )\n}\n\nexport { Toggle, toggleVariants }\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Tooltip as TooltipPrimitive } from \"radix-ui\";\n\nimport { liquidMenuSurfaceClasses } from \"./liquid-menu-surface\";\nimport { cn } from \"../lib/utils\";\n\nfunction TooltipProvider({\n delayDuration = 0,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delayDuration={delayDuration}\n {...props}\n />\n );\n}\n\nfunction Tooltip({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Root>) {\n return <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />;\n}\n\nfunction TooltipTrigger({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />;\n}\n\nfunction TooltipContent({\n className,\n sideOffset = 0,\n children,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Content>) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n data-slot=\"tooltip-content\"\n sideOffset={sideOffset}\n className={cn(\n \"relative z-50 w-fit max-w-xs origin-(--radix-tooltip-content-transform-origin) overflow-hidden px-3 py-1.5 text-xs duration-150 ease-[cubic-bezier(0.23,1,0.32,1)]\",\n liquidMenuSurfaceClasses,\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 **:data-[slot=kbd]:rounded-4xl data-[state$=-open]:animate-in data-[state$=-open]:fade-in-0 data-[state$=-open]:zoom-in-95\",\n className,\n )}\n {...props}\n >\n {children}\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n );\n}\n\nexport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };\n","\"use client\";\nimport * as React from \"react\";\nimport {\n createLiveCollection,\n type ColineRecordQuery,\n type LiveCollectionOptions,\n} from \"@colineapp/sdk/v2\";\nimport { useColine, useColineContext } from \"./provider\";\n\n/** Inline query objects are safe: equivalent inputs retain the same live view. */\nexport function useLiveCollection<T extends Record<string, unknown>>(\n name: string,\n query?: ColineRecordQuery<T>,\n options?: LiveCollectionOptions,\n) {\n const coline = useColine();\n const context = useColineContext();\n const key = JSON.stringify({\n query,\n options: { actorUserId: context.actor?.userId, installId: context.app.installId, ...options },\n });\n const live = React.useMemo(() => {\n const input = JSON.parse(key) as {\n query?: ColineRecordQuery<T>;\n options?: LiveCollectionOptions;\n };\n return createLiveCollection<T>(coline, name, input.query, input.options);\n }, [coline, name, key]);\n React.useEffect(() => {\n void live.start();\n return () => live.stop();\n }, [live]);\n const snapshot = React.useSyncExternalStore(live.subscribe, live.getSnapshot, live.getSnapshot);\n return {\n ...snapshot,\n insert: live.insert,\n update: live.update,\n delete: live.delete,\n setAccess: live.setAccess,\n refresh: live.refresh,\n };\n}\n","\"use client\";\nimport * as React from \"react\";\nimport { cn } from \"../lib/utils\";\nimport { Button } from \"../components/button\";\n\nexport function AppPage({\n title,\n description,\n eyebrow,\n actions,\n children,\n width = \"wide\",\n className,\n}: {\n title: string;\n description?: React.ReactNode;\n eyebrow?: React.ReactNode;\n actions?: React.ReactNode;\n children: React.ReactNode;\n width?: \"wide\" | \"reading\";\n className?: string;\n}) {\n return (\n <main className={cn(\"coline-page\", className)} data-width={width}>\n <header className=\"coline-page-header\">\n <div className=\"coline-page-heading\">\n {eyebrow && <div className=\"coline-eyebrow\">{eyebrow}</div>}\n <h1>{title}</h1>\n {description && <p className=\"coline-page-description\">{description}</p>}\n </div>\n {actions && <div className=\"coline-page-actions\">{actions}</div>}\n </header>\n {children}\n </main>\n );\n}\nexport function PageToolbar({\n children,\n label = \"View controls\",\n className,\n}: {\n children: React.ReactNode;\n label?: string;\n className?: string;\n}) {\n return (\n <div className={cn(\"coline-toolbar\", className)} role=\"group\" aria-label={label}>\n {children}\n </div>\n );\n}\nexport function EmptyState({\n title,\n description,\n action,\n icon,\n}: {\n title: string;\n description?: React.ReactNode;\n action?: React.ReactNode;\n icon?: React.ReactNode;\n}) {\n return (\n <section className=\"coline-empty\">\n {icon && (\n <div className=\"coline-empty-icon\" aria-hidden=\"true\">\n {icon}\n </div>\n )}\n <h2>{title}</h2>\n {description && <p>{description}</p>}\n {action && <div>{action}</div>}\n </section>\n );\n}\nexport function AppErrorState({ message, onRetry }: { message: string; onRetry?: () => void }) {\n return (\n <section className=\"coline-error\" role=\"alert\">\n <div>\n <h2>Something went wrong</h2>\n <p>{message}</p>\n </div>\n {onRetry && (\n <Button variant=\"outline\" onClick={onRetry}>\n Try again\n </Button>\n )}\n </section>\n );\n}\nexport function AppLoadingState({\n label = \"Loading\",\n rows = 5,\n}: {\n label?: string;\n rows?: number;\n}) {\n return (\n <div className=\"coline-loading\" role=\"status\" aria-label={label}>\n {Array.from({ length: Math.max(1, Math.min(rows, 12)) }, (_, i) => (\n <div key={i} style={{ width: `${92 - (i % 3) * 14}%` }} />\n ))}\n <span className=\"coline-sr-only\">{label}</span>\n </div>\n );\n}\nexport function StatusBadge({\n children,\n tone = \"neutral\",\n}: {\n children: React.ReactNode;\n tone?: \"neutral\" | \"info\" | \"success\" | \"warning\" | \"danger\";\n}) {\n return (\n <span className=\"coline-status\" data-tone={tone}>\n <span aria-hidden=\"true\" />\n {children}\n </span>\n );\n}\nexport function SplitView({\n list,\n detail,\n label = \"Details\",\n}: {\n list: React.ReactNode;\n detail?: React.ReactNode;\n label?: string;\n}) {\n return (\n <div className=\"coline-split\" data-open={Boolean(detail)}>\n <section className=\"coline-split-list\">{list}</section>\n {detail && (\n <aside className=\"coline-split-detail\" aria-label={label}>\n {detail}\n </aside>\n )}\n </div>\n );\n}\nexport function DetailPanel({\n title,\n subtitle,\n onClose,\n children,\n actions,\n}: {\n title: string;\n subtitle?: React.ReactNode;\n onClose?: () => void;\n children: React.ReactNode;\n actions?: React.ReactNode;\n}) {\n return (\n <section className=\"coline-detail\">\n <header>\n <div>\n {subtitle && <div className=\"coline-eyebrow\">{subtitle}</div>}\n <h2>{title}</h2>\n </div>\n {onClose && (\n <Button variant=\"ghost\" size=\"sm\" onClick={onClose} aria-label=\"Close details\">\n Close\n </Button>\n )}\n </header>\n <div className=\"coline-detail-body\">{children}</div>\n {actions && <footer>{actions}</footer>}\n </section>\n );\n}\nexport interface RecordColumn<T> {\n key: string;\n label: string;\n render: (record: T) => React.ReactNode;\n secondary?: boolean;\n align?: \"start\" | \"end\";\n}\nexport function RecordTable<T>({\n records,\n columns,\n rowKey,\n onOpen,\n label = \"Records\",\n empty,\n}: {\n records: readonly T[];\n columns: readonly RecordColumn<T>[];\n rowKey: (record: T) => string;\n onOpen?: (record: T) => void;\n label?: string;\n empty?: React.ReactNode;\n}) {\n if (!records.length)\n return (\n <>{empty ?? <EmptyState title=\"No results\" description=\"Try changing your filters.\" />}</>\n );\n return (\n <div className=\"coline-table-scroll\">\n <table className=\"coline-record-table\" aria-label={label}>\n <thead>\n <tr>\n {columns.map((column) => (\n <th\n key={column.key}\n scope=\"col\"\n data-secondary={column.secondary || undefined}\n data-align={column.align}\n >\n {column.label}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {records.map((record) => (\n <tr key={rowKey(record)}>\n {columns.map((column, i) => (\n <td\n key={column.key}\n data-secondary={column.secondary || undefined}\n data-align={column.align}\n >\n {i === 0 && onOpen ? (\n <button\n type=\"button\"\n className=\"coline-row-open\"\n onClick={() => onOpen(record)}\n >\n {column.render(record)}\n </button>\n ) : (\n column.render(record)\n )}\n </td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n );\n}\nexport function Board({\n children,\n label = \"Board\",\n}: {\n children: React.ReactNode;\n label?: string;\n}) {\n return (\n <div className=\"coline-board\" role=\"region\" aria-label={label} tabIndex={0}>\n {children}\n </div>\n );\n}\nexport function BoardColumn({\n title,\n count,\n children,\n action,\n}: {\n title: string;\n count?: number;\n children: React.ReactNode;\n action?: React.ReactNode;\n}) {\n return (\n <section className=\"coline-board-column\">\n <header>\n <h2>{title}</h2>\n {count !== undefined && <span className=\"coline-count\">{count}</span>}\n {action}\n </header>\n <div className=\"coline-board-items\">{children}</div>\n </section>\n );\n}\nexport function BoardCard({\n title,\n children,\n footer,\n onOpen,\n}: {\n title: string;\n children?: React.ReactNode;\n footer?: React.ReactNode;\n onOpen?: () => void;\n}) {\n return (\n <article className=\"coline-board-card\">\n <h3>\n {onOpen ? (\n <button type=\"button\" className=\"coline-row-open\" onClick={onOpen}>\n {title}\n </button>\n ) : (\n title\n )}\n </h3>\n {children && <div className=\"coline-board-card-body\">{children}</div>}\n {footer && <footer>{footer}</footer>}\n </article>\n );\n}\nexport function SettingsSection({\n title,\n description,\n children,\n}: {\n title: string;\n description?: string;\n children: React.ReactNode;\n}) {\n const id = React.useId();\n return (\n <section className=\"coline-settings-section\" aria-labelledby={id}>\n <div>\n <h2 id={id}>{title}</h2>\n {description && <p>{description}</p>}\n </div>\n <div className=\"coline-settings-fields\">{children}</div>\n </section>\n );\n}\n"],"mappings":"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","names":["jsx","React","cva","Slot","jsx","cva","Button","Slot","jsx","jsx","jsx","React","IconCheck","React","jsx","element","jsx","jsxs","IconCheck","cva","jsx","jsx","jsx","jsxs","cva","jsx","jsx","jsx","IconCheck","jsx","jsxs","contentClasses","IconCheck","jsx","React","jsx","jsxs","jsx","jsx","cva","motion","jsx","cva","motion","jsx","cva","jsx","cva","jsx","React","React","jsx","jsxs"]}
|
|
1
|
+
{"version":3,"sources":["../src/lib/utils.ts","../src/provider.tsx","../src/components/badge.tsx","../src/components/button.tsx","../src/components/card.tsx","../src/components/checkbox.tsx","../src/components/dialog.tsx","../src/components/liquid-menu-surface.ts","../src/components/dropdown-menu.tsx","../src/components/menu-highlight.tsx","../src/components/field.tsx","../src/components/label.tsx","../src/components/separator.tsx","../src/components/input.tsx","../src/components/popover.tsx","../src/components/progress.tsx","../src/components/select.tsx","../src/components/skeleton.tsx","../src/components/slider.tsx","../src/components/switch.tsx","../src/components/table.tsx","../src/components/tabs.tsx","../src/components/textarea.tsx","../src/components/toggle.tsx","../src/components/tooltip.tsx","../src/live-collection.ts","../src/patterns/workspace.tsx","../src/patterns/filter-menu.tsx"],"sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","\"use client\";\nimport { MotionConfig } from \"framer-motion\";\n\nimport * as React from \"react\";\nimport {\n connectGuestBridge,\n type GuestBridge,\n type SandboxContext,\n type ThemeTokens,\n} from \"@colineapp/app-runtime\";\nimport type { ColineCapabilities } from \"@colineapp/sdk/v2\";\n\n/**\n * The app-side runtime context (plan §7.2.4, §7.2.6): connects the guest\n * bridge, applies host theme tokens to the frame's root element (dark\n * mode flips live), and exposes `coline`, the surface context, and\n * data-fetching hooks to app components.\n */\n\ninterface ColineRuntime {\n bridge: GuestBridge;\n coline: ColineCapabilities;\n context: SandboxContext;\n colorScheme: \"light\" | \"dark\";\n}\n\nconst ColineRuntimeContext = React.createContext<ColineRuntime | null>(null);\n\nfunction applyTheme(theme: ThemeTokens, colorScheme: \"light\" | \"dark\"): void {\n const root = document.documentElement;\n for (const [token, value] of Object.entries(theme)) {\n if (token.startsWith(\"--\")) {\n root.style.setProperty(token, value);\n }\n }\n root.classList.toggle(\"dark\", colorScheme === \"dark\");\n}\n\nexport function ColineAppProvider({ children }: { children: React.ReactNode }) {\n const [connectionError, setConnectionError] = React.useState<string | null>(null);\n const [runtime, setRuntime] = React.useState<ColineRuntime | null>(null);\n\n React.useEffect(() => {\n let disposed = false;\n let activeBridge: GuestBridge | null = null;\n let removeThemeListener: (() => void) | null = null;\n\n void connectGuestBridge()\n .then((bridge) => {\n if (disposed) {\n bridge.dispose();\n return;\n }\n activeBridge = bridge;\n applyTheme(bridge.theme, bridge.colorScheme);\n removeThemeListener = bridge.onThemeChange((theme, colorScheme) => {\n applyTheme(theme, colorScheme);\n setRuntime((current) => (current ? { ...current, colorScheme } : current));\n });\n setRuntime({\n bridge,\n coline: bridge.coline,\n context: bridge.context,\n colorScheme: bridge.colorScheme,\n });\n })\n .catch((error: unknown) => {\n if (!disposed) setConnectionError(error instanceof Error ? error.message : String(error));\n });\n\n return () => {\n disposed = true;\n activeBridge?.dispose();\n removeThemeListener?.();\n };\n }, []);\n\n React.useEffect(() => {\n if (!runtime) return;\n // Keep the host informed of content height for inline embeds.\n const observer = new ResizeObserver(() => {\n runtime.bridge.reportHeight(document.documentElement.scrollHeight);\n });\n observer.observe(document.documentElement);\n return () => observer.disconnect();\n }, [runtime]);\n\n if (!runtime) {\n return (\n <p role={connectionError ? \"alert\" : \"status\"}>\n {connectionError ?? \"Connecting to Coline…\"}\n </p>\n );\n }\n\n return <ColineRuntimeContext.Provider value={runtime}><MotionConfig reducedMotion=\"user\">{children}</MotionConfig></ColineRuntimeContext.Provider>;\n}\n\nexport function useColine(): ColineCapabilities {\n const runtime = React.useContext(ColineRuntimeContext);\n if (!runtime) {\n throw new Error(\"useColine must be used inside <ColineAppProvider>.\");\n }\n return runtime.coline;\n}\n\nexport function useColineContext(): SandboxContext {\n const runtime = React.useContext(ColineRuntimeContext);\n if (!runtime) {\n throw new Error(\"useColineContext must be used inside <ColineAppProvider>.\");\n }\n return runtime.context;\n}\n\nexport function useColorScheme(): \"light\" | \"dark\" {\n const runtime = React.useContext(ColineRuntimeContext);\n if (!runtime) {\n throw new Error(\"useColorScheme must be used inside <ColineAppProvider>.\");\n }\n return runtime.colorScheme;\n}\n\nexport interface ColineQueryState<T> {\n data: T | null;\n error: string | null;\n isLoading: boolean;\n refetch: () => void;\n}\n\n/**\n * Minimal async-state hook over a capability call (plan §7.2.6). Not a\n * cache — apps needing one can bring their own; this covers the common\n * load-render-refresh loop without dependencies.\n */\nexport function useColineQuery<T>(\n loader: (coline: ColineCapabilities) => Promise<T>,\n deps: React.DependencyList = [],\n): ColineQueryState<T> {\n const coline = useColine();\n const [state, setState] = React.useState<{\n data: T | null;\n error: string | null;\n isLoading: boolean;\n }>({ data: null, error: null, isLoading: true });\n const [nonce, setNonce] = React.useState(0);\n const loaderRef = React.useRef(loader);\n loaderRef.current = loader;\n\n React.useEffect(() => {\n let cancelled = false;\n setState((current) => ({ ...current, isLoading: true, error: null }));\n void loaderRef\n .current(coline)\n .then((data) => {\n if (!cancelled) setState({ data, error: null, isLoading: false });\n })\n .catch((error: unknown) => {\n if (!cancelled) {\n setState({\n data: null,\n error: error instanceof Error ? error.message : String(error),\n isLoading: false,\n });\n }\n });\n return () => {\n cancelled = true;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [coline, nonce, ...deps]);\n\n const refetch = React.useCallback(() => setNonce((value) => value + 1), []);\n\n return { ...state, refetch };\n}\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { Slot } from \"radix-ui\"\n\nimport { cn } from \"../lib/utils\"\n\nconst badgeVariants = cva(\n \"group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3!\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground [a]:hover:bg-primary/80\",\n secondary:\n \"bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80\",\n destructive:\n \"bg-destructive/10 text-destructive dark:bg-destructive/20 [a]:hover:bg-destructive/20\",\n outline:\n \"border-border bg-input/30 text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground\",\n ghost:\n \"hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nfunction Badge({\n className,\n variant = \"default\",\n asChild = false,\n ...props\n}: React.ComponentProps<\"span\"> &\n VariantProps<typeof badgeVariants> & { asChild?: boolean }) {\n const Comp = asChild ? Slot.Root : \"span\"\n\n return (\n <Comp\n data-slot=\"badge\"\n data-variant={variant}\n className={cn(badgeVariants({ variant }), className)}\n {...props}\n />\n )\n}\n\nexport { Badge, badgeVariants }\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { Slot } from \"radix-ui\";\n\nimport { cn } from \"../lib/utils\";\n\nconst buttonVariants = cva(\n \"coline-button group/button inline-flex shrink-0 items-center justify-center rounded-4xl border border-white/20 text-sm font-medium whitespace-nowrap transition-[color,background-color,border-color,transform,box-shadow] duration-150 ease-[cubic-bezier(0.23,1,0.32,1)] outline-none select-none focus-visible:border-ring disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-[3px] aria-invalid:ring-destructive/20 dark:border-white/[0.06] dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n default:\n \"bg-gradient-to-b from-blue-50 to-blue-100 text-blue-700 border-blue-200/50 hover:from-blue-100 hover:to-blue-150 shadow-[inset_0_1px_0_0_rgba(255,255,255,0.1),0_1px_3px_0_rgba(0,0,0,0.1)] dark:from-blue-950/50 dark:to-blue-900/50 dark:text-blue-300 dark:border-blue-800/30 dark:hover:from-blue-900/60 dark:hover:to-blue-800/60 dark:shadow-[inset_0_1px_0_0_rgba(255,255,255,0.05),0_1px_3px_0_rgba(0,0,0,0.3)]\",\n outline:\n \"border-border/40 bg-background/60 shadow-[inset_0_1px_0_rgba(255,255,255,0.5),inset_0_-1px_2px_rgba(0,0,0,0.03)] hover:bg-background/80 hover:shadow-[inset_0_1px_0_rgba(255,255,255,0.6),inset_0_-1px_3px_rgba(0,0,0,0.04)] hover:text-foreground active:shadow-[inset_0_2px_6px_rgba(0,0,0,0.06)] dark:bg-white/[0.04] dark:shadow-[inset_0_1px_0_rgba(255,255,255,0.04),inset_0_-1px_2px_rgba(0,0,0,0.2)] dark:hover:bg-white/[0.07] dark:hover:shadow-[inset_0_1px_0_rgba(255,255,255,0.06),inset_0_-1px_3px_rgba(0,0,0,0.25)] dark:active:shadow-[inset_0_2px_6px_rgba(0,0,0,0.35)] aria-expanded:bg-muted aria-expanded:text-foreground aria-expanded:shadow-[inset_0_2px_4px_rgba(0,0,0,0.06)]\",\n secondary:\n \"bg-secondary/70 text-secondary-foreground shadow-[inset_0_1px_0_rgba(255,255,255,0.6),inset_0_-1px_2px_rgba(0,0,0,0.04)] hover:bg-secondary/85 hover:shadow-[inset_0_1px_0_rgba(255,255,255,0.7),inset_0_-1px_3px_rgba(0,0,0,0.05)] active:shadow-[inset_0_2px_6px_rgba(0,0,0,0.07)] dark:bg-secondary/50 dark:shadow-[inset_0_1px_0_rgba(255,255,255,0.04),inset_0_-1px_2px_rgba(0,0,0,0.2)] dark:hover:bg-secondary/60 dark:hover:shadow-[inset_0_1px_0_rgba(255,255,255,0.06),inset_0_-1px_3px_rgba(0,0,0,0.25)] dark:active:shadow-[inset_0_2px_6px_rgba(0,0,0,0.35)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground aria-expanded:shadow-[inset_0_2px_4px_rgba(0,0,0,0.05)]\",\n ghost:\n \"hover:bg-muted/50 hover:text-foreground hover:shadow-[inset_0_1px_0_rgba(255,255,255,0.4),inset_0_-1px_2px_rgba(0,0,0,0.03)] active:shadow-[inset_0_2px_5px_rgba(0,0,0,0.06)] dark:hover:bg-white/[0.04] dark:hover:shadow-[inset_0_1px_0_rgba(255,255,255,0.03),inset_0_-1px_2px_rgba(0,0,0,0.15)] dark:active:shadow-[inset_0_2px_5px_rgba(0,0,0,0.3)] aria-expanded:bg-muted aria-expanded:text-foreground\",\n destructive:\n \"bg-destructive/8 text-destructive shadow-[inset_0_1px_0_rgba(255,255,255,0.4),inset_0_-1px_2px_rgba(220,38,38,0.06)] hover:bg-destructive/12 hover:shadow-[inset_0_1px_0_rgba(255,255,255,0.5),inset_0_-1px_3px_rgba(220,38,38,0.08)] active:shadow-[inset_0_2px_6px_rgba(220,38,38,0.12)] focus-visible:border-destructive/40 dark:bg-destructive/15 dark:shadow-[inset_0_1px_0_rgba(255,255,255,0.03),inset_0_-1px_2px_rgba(0,0,0,0.2)] dark:hover:bg-destructive/22 dark:hover:shadow-[inset_0_1px_0_rgba(255,255,255,0.05),inset_0_-1px_3px_rgba(0,0,0,0.25)] dark:active:shadow-[inset_0_2px_6px_rgba(0,0,0,0.35)]\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default:\n \"h-9 gap-1.5 px-3 has-data-[icon=inline-end]:pr-2.5 has-data-[icon=inline-start]:pl-2.5\",\n xs: \"h-6 gap-1 px-2.5 text-xs has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 [&_svg:not([class*='size-'])]:size-3\",\n sm: \"h-8 gap-1 px-3 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2\",\n lg: \"h-10 gap-1.5 px-4 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3\",\n icon: \"size-9\",\n \"icon-xs\": \"size-6 [&_svg:not([class*='size-'])]:size-3\",\n \"icon-sm\": \"size-8\",\n \"icon-lg\": \"size-10\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n);\n\nconst Button = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean;\n }\n>(function Button(\n {\n className,\n variant = \"default\",\n size = \"default\",\n asChild = false,\n type,\n ...props\n },\n ref,\n) {\n const Comp = asChild ? Slot.Root : \"button\";\n\n return (\n <Comp\n ref={ref}\n {...(!asChild ? { type: type ?? \"button\" } : type ? { type } : {})}\n data-slot=\"button\"\n data-variant={variant}\n data-size={size}\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n );\n});\n\nexport { Button, buttonVariants };\n","import * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction Card({\n className,\n size = \"default\",\n ...props\n}: React.ComponentProps<\"div\"> & { size?: \"default\" | \"sm\" }) {\n return (\n <div\n data-slot=\"card\"\n data-size={size}\n className={cn(\n \"group/card flex flex-col gap-6 overflow-hidden rounded-2xl bg-card py-6 text-sm text-card-foreground ring-1 ring-foreground/10 has-[>img:first-child]:pt-0 data-[size=sm]:gap-4 data-[size=sm]:py-4 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CardHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-header\"\n className={cn(\n \"group/card-header @container/card-header grid auto-rows-min items-start gap-2 rounded-t-xl px-6 group-data-[size=sm]/card:px-4 has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-6 group-data-[size=sm]/card:[.border-b]:pb-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CardTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-title\"\n className={cn(\"text-base font-medium\", className)}\n {...props}\n />\n )\n}\n\nfunction CardDescription({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-description\"\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nfunction CardAction({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-action\"\n className={cn(\n \"col-start-2 row-span-2 row-start-1 self-start justify-self-end\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CardContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-content\"\n className={cn(\"px-6 group-data-[size=sm]/card:px-4\", className)}\n {...props}\n />\n )\n}\n\nfunction CardFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-footer\"\n className={cn(\n \"flex items-center rounded-b-xl px-6 group-data-[size=sm]/card:px-4 [.border-t]:pt-6 group-data-[size=sm]/card:[.border-t]:pt-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n Card,\n CardHeader,\n CardFooter,\n CardTitle,\n CardAction,\n CardDescription,\n CardContent,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { IconCheck } from \"@tabler/icons-react\"\nimport { Checkbox as CheckboxPrimitive } from \"radix-ui\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction Checkbox({\n className,\n ...props\n}: React.ComponentProps<typeof CheckboxPrimitive.Root>) {\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n className={cn(\n \"peer relative flex size-4 shrink-0 items-center justify-center rounded-[6px] border border-input outline-none transition-[transform,background-color,border-color,box-shadow] duration-150 ease-out after:absolute after:-inset-x-3 after:-inset-y-2 hover:border-foreground/30 active:scale-[0.88] group-has-disabled/field:opacity-50 focus-visible:border-ring disabled:cursor-not-allowed disabled:opacity-50 disabled:active:scale-100 aria-invalid:border-destructive aria-invalid:ring-[3px] aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground data-checked:shadow-[0_0_0_2px_color-mix(in_oklab,var(--primary)_18%,transparent)] dark:data-checked:bg-primary motion-reduce:transition-none\",\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n data-slot=\"checkbox-indicator\"\n className=\"grid place-content-center text-current data-[state=checked]:animate-in data-[state=checked]:zoom-in-75 data-[state=checked]:fade-in data-[state=checked]:duration-150 data-[state=checked]:ease-out motion-reduce:animate-none [&>svg]:size-3.5\"\n >\n <IconCheck />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n )\n}\n\nexport { Checkbox }\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Dialog as DialogPrimitive } from \"radix-ui\";\n\nimport { cn } from \"../lib/utils\";\nimport { Button } from \"./button\";\nimport { IconX } from \"@tabler/icons-react\";\nimport { liquidMenuSurfaceClasses } from \"./liquid-menu-surface\";\n\nfunction Dialog({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />;\n}\n\nfunction DialogTrigger({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />;\n}\n\nfunction DialogPortal({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />;\n}\n\nfunction DialogClose({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />;\n}\n\nfunction DialogOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n data-slot=\"dialog-overlay\"\n className={cn(\n \"coline-dialog-overlay fixed inset-0 isolate z-50 bg-black/30 supports-backdrop-filter:backdrop-blur-sm\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DialogContent({\n className,\n children,\n showCloseButton = true,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content> & {\n showCloseButton?: boolean;\n}) {\n return (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n data-slot=\"dialog-content\"\n className={cn(\n // Mobile: bottom-sheet style, pinned to bottom with slide-up\n \"coline-dialog-content fixed z-50 grid w-full gap-4 p-4 text-sm outline-none\",\n liquidMenuSurfaceClasses,\n \"inset-x-0 bottom-0 max-h-[85dvh] overflow-y-auto rounded-b-none pb-[max(1rem,env(safe-area-inset-bottom))]\",\n // Desktop: centered modal\n \"sm:inset-x-auto sm:bottom-auto sm:top-1/2 sm:left-1/2 sm:max-w-md sm:max-h-[calc(100dvh-4rem)] sm:-translate-x-1/2 sm:-translate-y-1/2 sm:rounded-2xl sm:p-6 sm:gap-6 sm:pb-6\",\n className,\n )}\n {...props}\n >\n {/* Mobile drag indicator */}\n <div className=\"mx-auto h-1 w-10 shrink-0 rounded-full bg-muted-foreground/30 sm:hidden\" aria-hidden=\"true\" />\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close data-slot=\"dialog-close\" asChild>\n <Button\n variant=\"ghost\"\n className=\"absolute top-4 right-4\"\n size=\"icon-sm\"\n >\n <IconX />\n <span className=\"sr-only\">Close</span>\n </Button>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </DialogPortal>\n );\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"dialog-header\"\n className={cn(\"flex flex-col gap-2 pr-8\", className)}\n {...props}\n />\n );\n}\n\nfunction DialogFooter({\n className,\n showCloseButton = false,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & {\n showCloseButton?: boolean;\n}) {\n return (\n <div\n data-slot=\"dialog-footer\"\n className={cn(\n \"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end\",\n className,\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close asChild>\n <Button variant=\"outline\">Close</Button>\n </DialogPrimitive.Close>\n )}\n </div>\n );\n}\n\nfunction DialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Title>) {\n return (\n <DialogPrimitive.Title\n data-slot=\"dialog-title\"\n className={cn(\"text-base leading-none font-medium\", className)}\n {...props}\n />\n );\n}\n\nfunction DialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return (\n <DialogPrimitive.Description\n data-slot=\"dialog-description\"\n className={cn(\n \"text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n};\n","/**\n * Solid surface shared by {@link DropdownMenuContent},\n * {@link ContextMenuContent}, {@link SelectContent} and {@link TooltipContent}.\n *\n * Light menus ride the --popover token; dark menus go deeper than the theme\n * overlay (#141417) so they sit below the interface, not at card level.\n * Crisp hairline edge and deep, diffuse shadows. No translucency, no blur,\n * no inset lighting. Hover state lives in the flat sliding pill\n * (see menu-highlight).\n */\nexport const liquidMenuSurfaceClasses =\n \"rounded-2xl bg-popover/75 dark:bg-zinc-900/75 backdrop-blur-[3px] border border-black/[0.08] text-popover-foreground\" +\n \" shadow-[0_4px_16px_-4px_rgba(0,0,0,0.08),0_16px_48px_-12px_rgba(0,0,0,0.28)]\" +\n \" dark:border-white/[0.09] dark:bg-[#141417]\" +\n \" dark:shadow-[0_4px_16px_-4px_rgba(0,0,0,0.4),0_16px_48px_-12px_rgba(0,0,0,0.7)]\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { DropdownMenu as DropdownMenuPrimitive } from \"radix-ui\";\nimport { IconCheck, IconChevronRight } from \"@tabler/icons-react\";\n\nimport { liquidMenuSurfaceClasses } from \"./liquid-menu-surface\";\nimport {\n MenuHighlightContext,\n SUPER_HOVER_ATTR,\n useMenuHighlight,\n} from \"./menu-highlight\";\nimport { cn } from \"../lib/utils\";\n\nconst contentClasses = cn(\n \"relative z-50 overflow-x-hidden overflow-y-auto p-1\",\n liquidMenuSurfaceClasses,\n);\n\nconst subContentClasses = cn(\n \"relative z-50 isolate overflow-x-hidden overflow-y-auto p-1\",\n liquidMenuSurfaceClasses,\n \"after:pointer-events-none after:absolute after:inset-y-1 after:left-0 after:w-px after:bg-neutral-500/20\",\n);\n\n// ── Primitives ──────────────────────────────────────────────────────────────\n\nfunction DropdownMenu({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Root>) {\n return <DropdownMenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />;\n}\n\nfunction DropdownMenuPortal({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>) {\n return (\n <DropdownMenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" {...props} />\n );\n}\n\nfunction DropdownMenuTrigger({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>) {\n return (\n <DropdownMenuPrimitive.Trigger\n data-slot=\"dropdown-menu-trigger\"\n {...props}\n />\n );\n}\n\nfunction DropdownMenuContent({\n className,\n align = \"start\",\n sideOffset = 4,\n children,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Content>) {\n const contentRef = React.useRef<HTMLDivElement>(null);\n const glass = useMenuHighlight(contentRef);\n\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n ref={contentRef}\n data-slot=\"dropdown-menu-content\"\n sideOffset={sideOffset}\n align={align}\n onPointerLeave={glass.clear}\n className={cn(\n contentClasses,\n \"max-h-(--radix-dropdown-menu-content-available-height) w-(--radix-dropdown-menu-trigger-width) min-w-48 origin-(--radix-dropdown-menu-content-transform-origin) duration-150 ease-[cubic-bezier(0.23,1,0.32,1)] data-[state=closed]:overflow-hidden data-[side=bottom]:slide-in-from-top-1 data-[side=left]:slide-in-from-right-1 data-[side=right]:slide-in-from-left-1 data-[side=top]:slide-in-from-bottom-1 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95\",\n className,\n )}\n {...props}\n >\n {glass.element}\n <div className=\"relative z-10\">\n <MenuHighlightContext.Provider value={glass.ctx}>\n {children}\n </MenuHighlightContext.Provider>\n </div>\n </DropdownMenuPrimitive.Content>\n </DropdownMenuPrimitive.Portal>\n );\n}\n\nfunction DropdownMenuGroup({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Group>) {\n return (\n <DropdownMenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />\n );\n}\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = \"default\",\n onPointerEnter,\n onFocus,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean;\n variant?: \"default\" | \"destructive\";\n}) {\n const { reportHover } = React.useContext(MenuHighlightContext);\n\n return (\n <DropdownMenuPrimitive.Item\n data-slot=\"dropdown-menu-item\"\n {...SUPER_HOVER_ATTR}\n data-inset={inset}\n data-variant={variant}\n onFocus={(e) => {\n reportHover(e.currentTarget);\n onFocus?.(e);\n }}\n onPointerEnter={(e) => {\n reportHover(e.currentTarget);\n onPointerEnter?.(e);\n }}\n className={cn(\n \"group/dropdown-menu-item relative flex cursor-default items-center gap-2 rounded-lg px-2.5 py-1.5 text-sm font-medium leading-5 outline-hidden select-none focus-visible:text-accent-foreground not-data-[variant=destructive]:focus-visible:**:text-accent-foreground data-inset:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus-visible:text-destructive data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg]:text-muted-foreground/75 data-[variant=destructive]:*:[svg]:text-destructive\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n inset,\n onPointerEnter,\n onFocus,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem> & {\n inset?: boolean;\n}) {\n const { reportHover } = React.useContext(MenuHighlightContext);\n\n return (\n <DropdownMenuPrimitive.CheckboxItem\n data-slot=\"dropdown-menu-checkbox-item\"\n {...SUPER_HOVER_ATTR}\n data-inset={inset}\n onFocus={(e) => {\n reportHover(e.currentTarget);\n onFocus?.(e);\n }}\n onPointerEnter={(e) => {\n reportHover(e.currentTarget);\n onPointerEnter?.(e);\n }}\n className={cn(\n \"relative flex cursor-default items-center gap-2 rounded-lg py-1.5 pr-8 pl-2.5 text-sm font-medium leading-5 outline-hidden select-none focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-8 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg]:text-muted-foreground/75\",\n className,\n )}\n {...(checked !== undefined ? { checked } : {})}\n {...props}\n >\n <span\n className=\"pointer-events-none absolute right-2 flex items-center justify-center\"\n data-slot=\"dropdown-menu-checkbox-item-indicator\"\n >\n <DropdownMenuPrimitive.ItemIndicator>\n <IconCheck />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n );\n}\n\nfunction DropdownMenuRadioGroup({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>) {\n return (\n <DropdownMenuPrimitive.RadioGroup\n data-slot=\"dropdown-menu-radio-group\"\n {...props}\n />\n );\n}\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n inset,\n onPointerEnter,\n onFocus,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem> & {\n inset?: boolean;\n}) {\n const { reportHover } = React.useContext(MenuHighlightContext);\n\n return (\n <DropdownMenuPrimitive.RadioItem\n data-slot=\"dropdown-menu-radio-item\"\n {...SUPER_HOVER_ATTR}\n data-inset={inset}\n onFocus={(e) => {\n reportHover(e.currentTarget);\n onFocus?.(e);\n }}\n onPointerEnter={(e) => {\n reportHover(e.currentTarget);\n onPointerEnter?.(e);\n }}\n className={cn(\n \"relative flex cursor-default items-center gap-2 rounded-lg py-1.5 pr-8 pl-2.5 text-sm font-medium leading-5 outline-hidden select-none focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-8 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg]:text-muted-foreground/75\",\n className,\n )}\n {...props}\n >\n <span\n className=\"pointer-events-none absolute right-2 flex items-center justify-center\"\n data-slot=\"dropdown-menu-radio-item-indicator\"\n >\n <DropdownMenuPrimitive.ItemIndicator>\n <IconCheck />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n );\n}\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.Label\n data-slot=\"dropdown-menu-label\"\n data-inset={inset}\n className={cn(\n \"px-2.5 pt-2 pb-1 text-xs font-medium text-muted-foreground/60 data-inset:pl-8\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>) {\n return (\n <DropdownMenuPrimitive.Separator\n data-slot=\"dropdown-menu-separator\"\n className={cn(\"mx-1.5 my-1 h-px bg-black/[0.06] dark:bg-white/[0.07]\", className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuShortcut({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"dropdown-menu-shortcut\"\n className={cn(\n \"ml-auto text-xs text-muted-foreground/60 group-focus-visible/dropdown-menu-item:text-accent-foreground\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSub({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>) {\n return <DropdownMenuPrimitive.Sub data-slot=\"dropdown-menu-sub\" {...props} />;\n}\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n onPointerEnter,\n onFocus,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n}) {\n const { reportHover } = React.useContext(MenuHighlightContext);\n\n return (\n <DropdownMenuPrimitive.SubTrigger\n data-slot=\"dropdown-menu-sub-trigger\"\n {...SUPER_HOVER_ATTR}\n data-inset={inset}\n onFocus={(e) => {\n reportHover(e.currentTarget);\n onFocus?.(e);\n }}\n onPointerEnter={(e) => {\n reportHover(e.currentTarget);\n onPointerEnter?.(e);\n }}\n className={cn(\n \"flex cursor-default items-center gap-2 rounded-lg px-2.5 py-1.5 text-sm font-medium leading-5 outline-hidden select-none focus-visible:text-accent-foreground not-data-[variant=destructive]:focus-visible:**:text-accent-foreground data-inset:pl-8 data-[state=open]:bg-black/[0.045] dark:data-[state=open]:bg-white/[0.08] [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg]:text-muted-foreground/75\",\n className,\n )}\n {...props}\n >\n {children}\n <IconChevronRight className=\"ml-auto\" />\n </DropdownMenuPrimitive.SubTrigger>\n );\n}\n\nfunction DropdownMenuSubContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>) {\n const contentRef = React.useRef<HTMLDivElement>(null);\n const glass = useMenuHighlight(contentRef);\n\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.SubContent\n ref={contentRef}\n data-slot=\"dropdown-menu-sub-content\"\n onPointerLeave={glass.clear}\n className={cn(\n subContentClasses,\n \"min-w-36 origin-(--radix-dropdown-menu-content-transform-origin) transform-gpu will-change-[opacity,transform] duration-160 ease-[cubic-bezier(0.23,1,0.32,1)] data-[state=closed]:overflow-hidden data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95\",\n className,\n )}\n {...props}\n >\n {glass.element}\n <div className=\"relative z-10\">\n <MenuHighlightContext.Provider value={glass.ctx}>\n {children}\n </MenuHighlightContext.Provider>\n </div>\n </DropdownMenuPrimitive.SubContent>\n </DropdownMenuPrimitive.Portal>\n );\n}\n\nexport {\n DropdownMenu,\n DropdownMenuPortal,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport { motion } from \"framer-motion\";\nimport { createSuperHover, type SuperHoverEventDetail } from \"super-hover\";\n\n/**\n * Sliding hover pill shared by DropdownMenu and ContextMenu. Items report\n * hover/focus through {@link MenuHighlightContext}; the pill glides between\n * them. Flat neutral fill — no border, no shadow, no lighting.\n *\n * Pointer events alone are not enough: browsers deliberately stop updating\n * `:hover` while a list scrolls, so in a scrollable menu the pill would stay\n * pinned to whichever row the pointer last physically crossed. `super-hover`\n * hit-tests under the pointer every frame, so the pill follows the row that is\n * actually beneath the cursor as the list moves under it.\n */\n\n/** Marks a menu row as a hit-test target for the per-frame hover tracker. */\nexport const SUPER_HOVER_ATTR = { \"data-super-hover\": \"\" } as const;\n\nexport const MenuHighlightContext = React.createContext<{\n reportHover: (element: HTMLElement) => void;\n}>({ reportHover: () => {} });\n\nexport function useMenuHighlight(\n contentRef: React.RefObject<HTMLDivElement | null>,\n) {\n const [rect, setRect] = React.useState<{\n top: number;\n height: number;\n } | null>(null);\n const [visible, setVisible] = React.useState(false);\n /**\n * The pill snaps into place the first time it appears and glides thereafter.\n * That decision is made when hover is reported — never read during render,\n * since a ref read at render time can leave the transition stale.\n */\n const [instant, setInstant] = React.useState(true);\n const visibleRef = React.useRef(false);\n const nextAppearIsInstantRef = React.useRef(true);\n const resetTimerRef = React.useRef<number | null>(null);\n\n const reportHover = React.useCallback(\n (element: HTMLElement) => {\n const content = contentRef.current;\n if (!content) return;\n const contentRect = content.getBoundingClientRect();\n const itemRect = element.getBoundingClientRect();\n setRect({\n top: itemRect.top - contentRect.top + content.scrollTop,\n height: itemRect.height,\n });\n\n if (resetTimerRef.current !== null) {\n window.clearTimeout(resetTimerRef.current);\n resetTimerRef.current = null;\n }\n\n // Appearing from hidden snaps; moving between rows glides.\n setInstant(visibleRef.current ? false : nextAppearIsInstantRef.current);\n nextAppearIsInstantRef.current = false;\n visibleRef.current = true;\n setVisible(true);\n },\n [contentRef],\n );\n\n const clear = React.useCallback(() => {\n visibleRef.current = false;\n setVisible(false);\n // Leaving and returning quickly keeps the glide, so a brief overshoot off\n // the menu doesn't make the pill jump when the pointer comes back.\n if (resetTimerRef.current !== null) {\n window.clearTimeout(resetTimerRef.current);\n }\n resetTimerRef.current = window.setTimeout(() => {\n nextAppearIsInstantRef.current = true;\n resetTimerRef.current = null;\n }, 50);\n }, []);\n\n React.useEffect(\n () => () => {\n if (resetTimerRef.current !== null) {\n window.clearTimeout(resetTimerRef.current);\n }\n },\n [],\n );\n\n // Per-frame hit-testing, scoped to this menu so it never fights another open\n // surface. Torn down with the menu, which is why it is created on mount\n // rather than kept alive globally.\n React.useEffect(() => {\n const content = contentRef.current;\n if (!content) return undefined;\n\n const handleEnter = (event: Event) => {\n const detail = (event as CustomEvent<SuperHoverEventDetail>).detail;\n if (detail.current instanceof HTMLElement) {\n reportHover(detail.current);\n }\n };\n\n const handleLeave = (event: Event) => {\n const detail = (event as CustomEvent<SuperHoverEventDetail>).detail;\n // Only clear when the pointer left the menu entirely; moving between two\n // rows fires leave-then-enter and would otherwise flicker the pill.\n if (!detail.current) {\n clear();\n }\n };\n\n content.addEventListener(\"superhoverenter\", handleEnter);\n content.addEventListener(\"superhoverleave\", handleLeave);\n\n const controller = createSuperHover({\n root: content,\n events: [\"enter\", \"leave\"],\n });\n\n return () => {\n content.removeEventListener(\"superhoverenter\", handleEnter);\n content.removeEventListener(\"superhoverleave\", handleLeave);\n controller.destroy();\n };\n }, [clear, contentRef, reportHover]);\n\n const ctx = React.useMemo(() => ({ reportHover }), [reportHover]);\n\n const element = (\n <motion.div\n className=\"pointer-events-none absolute inset-x-1 top-0 z-0 rounded-2xl bg-black/[0.045] transform-gpu will-change-[transform,opacity] dark:bg-white/[0.08]\"\n initial={false}\n animate={{\n y: rect?.top ?? 0,\n height: rect?.height ?? 0,\n opacity: visible ? 1 : 0,\n }}\n transition={{\n y: instant\n ? { duration: 0 }\n : { type: \"spring\", bounce: 0, duration: 0.15 },\n height: instant\n ? { duration: 0 }\n : { type: \"spring\", bounce: 0, duration: 0.15 },\n opacity: {\n duration: instant ? 0.05 : 0.1,\n ease: \"linear\",\n },\n }}\n />\n );\n\n return { ctx, clear, element };\n}\n","\"use client\"\n\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../lib/utils\"\nimport { Label } from \"./label\"\nimport { Separator } from \"./separator\"\n\nfunction FieldSet({ className, ...props }: React.ComponentProps<\"fieldset\">) {\n return (\n <fieldset\n data-slot=\"field-set\"\n className={cn(\n \"flex flex-col gap-6 has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldLegend({\n className,\n variant = \"legend\",\n ...props\n}: React.ComponentProps<\"legend\"> & { variant?: \"legend\" | \"label\" }) {\n return (\n <legend\n data-slot=\"field-legend\"\n data-variant={variant}\n className={cn(\n \"mb-3 font-medium data-[variant=label]:text-sm data-[variant=legend]:text-base\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field-group\"\n className={cn(\n \"group/field-group @container/field-group flex w-full flex-col gap-7 data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nconst fieldVariants = cva(\n \"group/field flex w-full gap-3 data-[invalid=true]:text-destructive\",\n {\n variants: {\n orientation: {\n vertical: \"flex-col *:w-full [&>.sr-only]:w-auto\",\n horizontal:\n \"flex-row items-center has-[>[data-slot=field-content]]:items-start *:data-[slot=field-label]:flex-auto has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px\",\n responsive:\n \"flex-col *:w-full @md/field-group:flex-row @md/field-group:items-center @md/field-group:*:w-auto @md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:*:data-[slot=field-label]:flex-auto [&>.sr-only]:w-auto @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px\",\n },\n },\n defaultVariants: {\n orientation: \"vertical\",\n },\n }\n)\n\nfunction Field({\n className,\n orientation = \"vertical\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof fieldVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"field\"\n data-orientation={orientation}\n className={cn(fieldVariants({ orientation }), className)}\n {...props}\n />\n )\n}\n\nfunction FieldContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field-content\"\n className={cn(\n \"group/field-content flex flex-1 flex-col gap-1 leading-snug\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldLabel({\n className,\n ...props\n}: React.ComponentProps<typeof Label>) {\n return (\n <Label\n data-slot=\"field-label\"\n className={cn(\n \"group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50 has-data-checked:border-primary/30 has-data-checked:bg-primary/5 has-[>[data-slot=field]]:rounded-xl has-[>[data-slot=field]]:border *:data-[slot=field]:p-4 dark:has-data-checked:border-primary/20 dark:has-data-checked:bg-primary/10\",\n \"has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field-label\"\n className={cn(\n \"flex w-fit items-center gap-2 text-sm leading-snug font-medium group-data-[disabled=true]/field:opacity-50\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"field-description\"\n className={cn(\n \"text-left text-sm leading-normal font-normal text-muted-foreground group-has-data-horizontal/field:text-balance [[data-variant=legend]+&]:-mt-1.5\",\n \"last:mt-0 nth-last-2:-mt-1\",\n \"[&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldSeparator({\n children,\n className,\n ...props\n}: React.ComponentProps<\"div\"> & {\n children?: React.ReactNode\n}) {\n return (\n <div\n data-slot=\"field-separator\"\n data-content={!!children}\n className={cn(\n \"relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2\",\n className\n )}\n {...props}\n >\n <Separator className=\"absolute inset-0 top-1/2\" />\n {children && (\n <span\n className=\"relative mx-auto block w-fit bg-background px-2 text-muted-foreground\"\n data-slot=\"field-separator-content\"\n >\n {children}\n </span>\n )}\n </div>\n )\n}\n\nfunction FieldError({\n className,\n children,\n errors,\n ...props\n}: React.ComponentProps<\"div\"> & {\n errors?: Array<{ message?: string } | undefined>\n}) {\n const uniqueErrors = errors?.length\n ? [...new Map(errors.map((error) => [error?.message, error])).values()]\n : []\n\n const content = children\n ?? (uniqueErrors.length === 1\n ? uniqueErrors[0]?.message\n : uniqueErrors.length > 1\n ? (\n <ul className=\"ml-4 flex list-disc flex-col gap-1\">\n {uniqueErrors.map(\n (error, index) =>\n error?.message && <li key={index}>{error.message}</li>\n )}\n </ul>\n )\n : null)\n\n if (!content) {\n return null\n }\n\n return (\n <div\n role=\"alert\"\n data-slot=\"field-error\"\n className={cn(\"text-sm font-normal text-destructive\", className)}\n {...props}\n >\n {content}\n </div>\n )\n}\n\nexport {\n Field,\n FieldLabel,\n FieldDescription,\n FieldError,\n FieldGroup,\n FieldLegend,\n FieldSeparator,\n FieldSet,\n FieldContent,\n FieldTitle,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Label as LabelPrimitive } from \"radix-ui\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction Label({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n \"flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Label }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Separator as SeparatorPrimitive } from \"radix-ui\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction Separator({\n className,\n orientation = \"horizontal\",\n decorative = true,\n ...props\n}: React.ComponentProps<typeof SeparatorPrimitive.Root>) {\n return (\n <SeparatorPrimitive.Root\n data-slot=\"separator\"\n decorative={decorative}\n orientation={orientation}\n className={cn(\n \"shrink-0 bg-border data-horizontal:h-px data-horizontal:w-full data-vertical:w-px data-vertical:self-stretch\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Separator }\n","import * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction Input({ className, type, ...props }: React.ComponentProps<\"input\">) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n \"h-9 w-full min-w-0 rounded-4xl border border-input bg-input/30 px-3 py-1 text-base transition-colors outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:border-foreground/25 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-[3px] aria-invalid:ring-destructive/20 md:text-sm dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Input }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Popover as PopoverPrimitive } from \"radix-ui\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction Popover({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />\n}\n\nfunction PopoverTrigger({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />\n}\n\nfunction PopoverContent({\n className,\n align = \"center\",\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Content>) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n data-slot=\"popover-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 flex w-72 origin-(--radix-popover-content-transform-origin) flex-col gap-4 rounded-2xl bg-popover/75 dark:bg-zinc-900/75 backdrop-blur-[3px] p-4 text-sm text-popover-foreground shadow-xl shadow-black/10 dark:shadow-black/30 ring-1 ring-white/15 dark:ring-white/10 inset-ring inset-ring-white/10 dark:inset-ring-white/5 outline-hidden duration-200 ease-out data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:overflow-hidden data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95\",\n className\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n )\n}\n\nfunction PopoverAnchor({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\n return <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />\n}\n\nfunction PopoverHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"popover-header\"\n className={cn(\"flex flex-col gap-1 text-sm\", className)}\n {...props}\n />\n )\n}\n\nfunction PopoverTitle({ className, ...props }: React.ComponentProps<\"h2\">) {\n return (\n <div\n data-slot=\"popover-title\"\n className={cn(\"text-base font-medium\", className)}\n {...props}\n />\n )\n}\n\nfunction PopoverDescription({\n className,\n ...props\n}: React.ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"popover-description\"\n className={cn(\"text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Popover,\n PopoverAnchor,\n PopoverContent,\n PopoverDescription,\n PopoverHeader,\n PopoverTitle,\n PopoverTrigger,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Progress as ProgressPrimitive } from \"radix-ui\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction Progress({\n className,\n value,\n ...props\n}: React.ComponentProps<typeof ProgressPrimitive.Root>) {\n return (\n <ProgressPrimitive.Root\n data-slot=\"progress\"\n className={cn(\n \"relative flex h-3 w-full items-center overflow-x-hidden rounded-4xl bg-muted\",\n className\n )}\n {...props}\n >\n <ProgressPrimitive.Indicator\n data-slot=\"progress-indicator\"\n className=\"size-full flex-1 bg-primary transition-all\"\n style={{ transform: `translateX(-${100 - (value || 0)}%)` }}\n />\n </ProgressPrimitive.Root>\n )\n}\n\nexport { Progress }\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Select as SelectPrimitive } from \"radix-ui\";\nimport { IconCheck, IconChevronDown, IconChevronUp, IconSelector } from \"@tabler/icons-react\";\n\nimport { liquidMenuSurfaceClasses } from \"./liquid-menu-surface\";\nimport { cn } from \"../lib/utils\";\n\nconst contentClasses = cn(\n \"relative z-50 overflow-x-hidden overflow-y-auto p-1\",\n liquidMenuSurfaceClasses,\n);\n\n// ── Primitives ──────────────────────────────────────────────────────────────\n\nfunction Select({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Root>) {\n return <SelectPrimitive.Root data-slot=\"select\" {...props} />;\n}\n\nfunction SelectGroup({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Group>) {\n return (\n <SelectPrimitive.Group\n data-slot=\"select-group\"\n className={cn(\"scroll-my-1\", className)}\n {...props}\n />\n );\n}\n\nfunction SelectValue({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Value>) {\n return <SelectPrimitive.Value data-slot=\"select-value\" {...props} />;\n}\n\nfunction SelectTrigger({\n className,\n size = \"default\",\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Trigger> & {\n size?: \"sm\" | \"default\";\n}) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n data-size={size}\n className={cn(\n \"flex w-fit items-center justify-between gap-1.5 rounded-4xl border border-input bg-input/30 px-3 py-2 text-sm whitespace-nowrap outline-none transition-[color,background-color,border-color,box-shadow,transform] duration-150 ease-out motion-safe:active:scale-[0.98] focus-visible:border-ring disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-[3px] aria-invalid:ring-destructive/20 data-placeholder:text-muted-foreground data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <IconSelector className=\"pointer-events-none size-4 text-muted-foreground\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n );\n}\n\nfunction SelectContent({\n className,\n children,\n position = \"item-aligned\",\n align = \"center\",\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Content>) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n data-slot=\"select-content\"\n data-align-trigger={position === \"item-aligned\"}\n className={cn(\n contentClasses,\n \"max-h-(--radix-select-content-available-height) min-w-36 origin-(--radix-select-content-transform-origin) transform-gpu will-change-[opacity,transform] duration-150 ease-[cubic-bezier(0.23,1,0.32,1)] data-[state=closed]:overflow-hidden data-[side=bottom]:slide-in-from-top-1 data-[side=left]:slide-in-from-right-1 data-[side=right]:slide-in-from-left-1 data-[side=top]:slide-in-from-bottom-1 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95\",\n position === \"popper\" &&\n \"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\n className,\n )}\n position={position}\n align={align}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n data-position={position}\n className={cn(\n \"data-[position=popper]:h-(--radix-select-trigger-height) data-[position=popper]:w-full data-[position=popper]:min-w-(--radix-select-trigger-width)\",\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n );\n}\n\nfunction SelectLabel({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Label>) {\n return (\n <SelectPrimitive.Label\n data-slot=\"select-label\"\n className={cn(\"px-2.5 pt-2 pb-1 text-xs font-medium text-muted-foreground/60\", className)}\n {...props}\n />\n );\n}\n\nfunction SelectItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Item>) {\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(\n \"relative flex w-full cursor-default items-center gap-2 rounded-lg py-1.5 pr-8 pl-2.5 text-sm font-medium leading-5 outline-hidden select-none transition-colors duration-100 ease-out focus:bg-black/[0.045] focus:text-accent-foreground dark:focus:bg-white/[0.08] not-data-[variant=destructive]:focus:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg]:text-muted-foreground/75 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2\",\n className,\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute right-2 flex size-4 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <IconCheck className=\"pointer-events-none\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n );\n}\n\nfunction SelectSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Separator>) {\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border/50\", className)}\n {...props}\n />\n );\n}\n\nfunction SelectScrollUpButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>) {\n return (\n <SelectPrimitive.ScrollUpButton\n data-slot=\"select-scroll-up-button\"\n className={cn(\n \"z-10 flex cursor-default items-center justify-center py-1 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <IconChevronUp />\n </SelectPrimitive.ScrollUpButton>\n );\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>) {\n return (\n <SelectPrimitive.ScrollDownButton\n data-slot=\"select-scroll-down-button\"\n className={cn(\n \"z-10 flex cursor-default items-center justify-center py-1 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <IconChevronDown />\n </SelectPrimitive.ScrollDownButton>\n );\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n};\n","import { cn } from \"../lib/utils\"\n\nfunction Skeleton({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"skeleton\"\n className={cn(\"animate-pulse rounded-xl bg-muted\", className)}\n {...props}\n />\n )\n}\n\nexport { Skeleton }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Slider as SliderPrimitive } from \"radix-ui\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction Slider({\n className,\n defaultValue,\n value,\n min = 0,\n max = 100,\n ...props\n}: React.ComponentProps<typeof SliderPrimitive.Root>) {\n const _values = React.useMemo(\n () =>\n Array.isArray(value)\n ? value\n : Array.isArray(defaultValue)\n ? defaultValue\n : [min, max],\n [value, defaultValue, min, max]\n )\n\n // Build optional props to satisfy exactOptionalPropertyTypes\n const optionalProps: Record<string, unknown> = {}\n if (defaultValue !== undefined) optionalProps.defaultValue = defaultValue\n if (value !== undefined) optionalProps.value = value\n if (min !== undefined) optionalProps.min = min\n if (max !== undefined) optionalProps.max = max\n\n return (\n <SliderPrimitive.Root\n data-slot=\"slider\"\n {...optionalProps}\n className={cn(\n \"relative flex w-full touch-none items-center select-none data-disabled:opacity-50 data-vertical:h-full data-vertical:min-h-40 data-vertical:w-auto data-vertical:flex-col\",\n className\n )}\n {...props}\n >\n <SliderPrimitive.Track\n data-slot=\"slider-track\"\n className=\"relative grow overflow-hidden rounded-4xl bg-muted data-horizontal:h-3 data-horizontal:w-full data-vertical:h-full data-vertical:w-3\"\n >\n <SliderPrimitive.Range\n data-slot=\"slider-range\"\n className=\"absolute bg-primary select-none data-horizontal:h-full data-vertical:w-full\"\n />\n </SliderPrimitive.Track>\n {Array.from({ length: _values.length }, (_, index) => (\n <SliderPrimitive.Thumb\n data-slot=\"slider-thumb\"\n key={index}\n className=\"block size-4 shrink-0 rounded-4xl border border-primary bg-white shadow-sm ring-ring/50 transition-colors select-none hover:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50 dark:bg-foreground\"\n />\n ))}\n </SliderPrimitive.Root>\n )\n}\n\nexport { Slider }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Switch as SwitchPrimitive } from \"radix-ui\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction Switch({\n className,\n size = \"default\",\n ...props\n}: React.ComponentProps<typeof SwitchPrimitive.Root> & {\n size?: \"sm\" | \"default\"\n}) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n data-size={size}\n className={cn(\n \"peer group/switch relative inline-flex shrink-0 items-center rounded-full border border-transparent transition-all outline-none after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring aria-invalid:border-destructive aria-invalid:ring-[3px] aria-invalid:ring-destructive/20 data-[size=default]:h-[18.4px] data-[size=default]:w-[32px] data-[size=sm]:h-[14px] data-[size=sm]:w-[24px] dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:bg-primary data-unchecked:bg-muted-foreground/30 data-disabled:cursor-not-allowed data-disabled:opacity-50\",\n className\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className=\"pointer-events-none block rounded-full bg-background ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 group-data-[size=default]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=sm]/switch:data-checked:translate-x-[calc(100%-2px)] dark:data-checked:bg-primary-foreground group-data-[size=default]/switch:data-unchecked:translate-x-0 group-data-[size=sm]/switch:data-unchecked:translate-x-0 dark:data-unchecked:bg-foreground\"\n />\n </SwitchPrimitive.Root>\n )\n}\n\nexport { Switch }\n","\"use client\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction Table({ className, ...props }: React.ComponentProps<\"table\">) {\n return (\n <div\n data-slot=\"table-container\"\n className=\"relative w-full overflow-x-auto\"\n >\n <table\n data-slot=\"table\"\n className={cn(\"w-full caption-bottom text-sm\", className)}\n {...props}\n />\n </div>\n )\n}\n\nfunction TableHeader({ className, ...props }: React.ComponentProps<\"thead\">) {\n return (\n <thead\n data-slot=\"table-header\"\n className={cn(\"[&_tr]:border-b [&_tr]:border-border/60\", className)}\n {...props}\n />\n )\n}\n\nfunction TableBody({ className, ...props }: React.ComponentProps<\"tbody\">) {\n return (\n <tbody\n data-slot=\"table-body\"\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n />\n )\n}\n\nfunction TableFooter({ className, ...props }: React.ComponentProps<\"tfoot\">) {\n return (\n <tfoot\n data-slot=\"table-footer\"\n className={cn(\n \"border-t border-border/60 bg-muted/40 font-medium [&>tr]:last:border-b-0\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction TableRow({ className, ...props }: React.ComponentProps<\"tr\">) {\n return (\n <tr\n data-slot=\"table-row\"\n className={cn(\n \"border-b border-border/60 transition-colors hover:bg-muted/40 data-[state=selected]:bg-muted\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction TableHead({ className, ...props }: React.ComponentProps<\"th\">) {\n return (\n <th\n data-slot=\"table-head\"\n className={cn(\n \"h-9 px-4 text-left align-middle text-xs font-medium whitespace-nowrap text-muted-foreground [&:has([role=checkbox])]:pr-0\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction TableCell({ className, ...props }: React.ComponentProps<\"td\">) {\n return (\n <td\n data-slot=\"table-cell\"\n className={cn(\n \"px-4 py-3 align-middle whitespace-nowrap tabular-nums [&:has([role=checkbox])]:pr-0\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction TableCaption({\n className,\n ...props\n}: React.ComponentProps<\"caption\">) {\n return (\n <caption\n data-slot=\"table-caption\"\n className={cn(\"mt-3 text-sm text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { Tabs as TabsPrimitive } from \"radix-ui\";\nimport { motion, useReducedMotion } from \"framer-motion\";\nimport { cn } from \"../lib/utils\";\n\n/** Same raised selection and spring as Coline and Upstream navigation. */\nexport const TABS_LAYOUT_SPRING = { type: \"spring\" as const, stiffness: 300, damping: 26, mass: 1 };\nconst TabsContext = React.createContext<{ value: string | undefined; id: string } | null>(null);\nconst ListVariantContext = React.createContext<\"default\" | \"line\">(\"default\");\n\nfunction Tabs({ className, orientation = \"horizontal\", value, defaultValue, onValueChange, ...props }: React.ComponentProps<typeof TabsPrimitive.Root>) {\n const [localValue, setLocalValue] = React.useState(defaultValue);\n const id = React.useId();\n const activeValue = value ?? localValue;\n const context = React.useMemo(() => ({ value: activeValue, id }), [activeValue, id]);\n return (\n <TabsContext.Provider value={context}>\n <TabsPrimitive.Root\n {...props}\n {...(activeValue === undefined ? {} : { value: activeValue })}\n orientation={orientation}\n onValueChange={(next) => { if (value === undefined) setLocalValue(next); onValueChange?.(next); }}\n data-slot=\"tabs\"\n className={cn(\"coline-tabs\", className)}\n />\n </TabsContext.Provider>\n );\n}\n\nconst tabsListVariants = cva(\"coline-tabs-list\", {\n variants: { variant: { default: \"coline-tabs-raised\", line: \"coline-tabs-line\" } },\n defaultVariants: { variant: \"default\" },\n});\n\nfunction TabsList({ className, variant = \"default\", ...props }: React.ComponentProps<typeof TabsPrimitive.List> & VariantProps<typeof tabsListVariants>) {\n return (\n <ListVariantContext.Provider value={variant ?? \"default\"}>\n <TabsPrimitive.List {...props} data-slot=\"tabs-list\" data-variant={variant} className={cn(tabsListVariants({ variant }), className)} />\n </ListVariantContext.Provider>\n );\n}\n\n// Keep the existing explicit indicator API working without adding a second pill.\nfunction hasIndicator(children: React.ReactNode): boolean {\n return React.Children.toArray(children).some((child) => React.isValidElement<{ children?: React.ReactNode }>(child)\n && (child.type === TabsIndicator || hasIndicator(child.props.children)));\n}\n\nfunction TabsTrigger({ className, children, value, asChild = false, ...props }: React.ComponentProps<typeof TabsPrimitive.Trigger>) {\n const tabs = React.useContext(TabsContext);\n const variant = React.useContext(ListVariantContext);\n const indicator = tabs?.value === value && variant === \"default\" && !hasIndicator(children) ? <TabsIndicator /> : null;\n const content = asChild && React.isValidElement<{ children?: React.ReactNode }>(children)\n ? React.cloneElement(children, undefined, indicator, children.props.children)\n : <>{indicator}{children}</>;\n return (\n <TabsPrimitive.Trigger {...props} value={value} asChild={asChild} data-slot=\"tabs-trigger\" className={cn(\"coline-tabs-trigger\", className)}>\n {content}\n </TabsPrimitive.Trigger>\n );\n}\n\n/** Optional customization; the raised indicator is included automatically. */\nfunction TabsIndicator({ className, layoutId = \"selection\" }: { className?: string; layoutId?: string }) {\n const tabs = React.useContext(TabsContext);\n const fallbackId = React.useId();\n const reducedMotion = useReducedMotion();\n return (\n <motion.div\n aria-hidden=\"true\"\n data-slot=\"tabs-indicator\"\n layout\n layoutId={`${tabs?.id ?? fallbackId}-${layoutId}`}\n initial={false}\n className={cn(\"coline-tabs-indicator\", className)}\n transition={reducedMotion ? { duration: 0 } : TABS_LAYOUT_SPRING}\n />\n );\n}\n\nfunction TabsContent({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Content>) {\n return <TabsPrimitive.Content {...props} data-slot=\"tabs-content\" className={cn(\"coline-tabs-content\", className)} />;\n}\n\nexport { Tabs, TabsList, TabsTrigger, TabsIndicator, TabsContent, tabsListVariants };\n","import * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction Textarea({ className, ...props }: React.ComponentProps<\"textarea\">) {\n return (\n <textarea\n data-slot=\"textarea\"\n className={cn(\n \"flex field-sizing-content min-h-16 w-full resize-none rounded-xl border border-input bg-input/30 px-3 py-3 text-base transition-colors outline-none placeholder:text-muted-foreground focus-visible:border-foreground/25 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-[3px] aria-invalid:ring-destructive/20 md:text-sm dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Textarea }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { Toggle as TogglePrimitive } from \"radix-ui\"\n\nimport { cn } from \"../lib/utils\"\n\nconst toggleVariants = cva(\n \"group/toggle inline-flex items-center justify-center gap-1 rounded-[min(var(--radius-2xl),12px)] text-sm font-medium whitespace-nowrap transition-colors outline-none hover:bg-muted hover:text-foreground focus-visible:border-ring disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 aria-pressed:bg-muted dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n outline: \"border border-input bg-transparent hover:bg-muted\",\n },\n size: {\n default: \"h-9 min-w-9 px-2.5\",\n sm: \"h-8 min-w-8 px-2\",\n lg: \"h-10 min-w-10 px-2.5\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nfunction Toggle({\n className,\n variant = \"default\",\n size = \"default\",\n ...props\n}: React.ComponentProps<typeof TogglePrimitive.Root> &\n VariantProps<typeof toggleVariants>) {\n return (\n <TogglePrimitive.Root\n data-slot=\"toggle\"\n className={cn(toggleVariants({ variant, size, className }))}\n {...props}\n />\n )\n}\n\nexport { Toggle, toggleVariants }\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Tooltip as TooltipPrimitive } from \"radix-ui\";\n\nimport { liquidMenuSurfaceClasses } from \"./liquid-menu-surface\";\nimport { cn } from \"../lib/utils\";\n\nfunction TooltipProvider({\n delayDuration = 0,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delayDuration={delayDuration}\n {...props}\n />\n );\n}\n\nfunction Tooltip({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Root>) {\n return <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />;\n}\n\nfunction TooltipTrigger({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />;\n}\n\nfunction TooltipContent({\n className,\n sideOffset = 0,\n children,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Content>) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n data-slot=\"tooltip-content\"\n sideOffset={sideOffset}\n className={cn(\n \"relative z-50 w-fit max-w-xs origin-(--radix-tooltip-content-transform-origin) overflow-hidden px-3 py-1.5 text-xs duration-150 ease-[cubic-bezier(0.23,1,0.32,1)]\",\n liquidMenuSurfaceClasses,\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 **:data-[slot=kbd]:rounded-4xl data-[state$=-open]:animate-in data-[state$=-open]:fade-in-0 data-[state$=-open]:zoom-in-95\",\n className,\n )}\n {...props}\n >\n {children}\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n );\n}\n\nexport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };\n","\"use client\";\nimport * as React from \"react\";\nimport {\n createLiveCollection,\n type ColineRecordQuery,\n type LiveCollectionOptions,\n} from \"@colineapp/sdk/v2\";\nimport { useColine, useColineContext } from \"./provider\";\n\n/** Inline query objects are safe: equivalent inputs retain the same live view. */\nexport function useLiveCollection<T extends Record<string, unknown>>(\n name: string,\n query?: ColineRecordQuery<T>,\n options?: LiveCollectionOptions,\n) {\n const coline = useColine();\n const context = useColineContext();\n const key = JSON.stringify({\n query,\n options: { actorUserId: context.actor?.userId, installId: context.app.installId, ...options },\n });\n const live = React.useMemo(() => {\n const input = JSON.parse(key) as {\n query?: ColineRecordQuery<T>;\n options?: LiveCollectionOptions;\n };\n return createLiveCollection<T>(coline, name, input.query, input.options);\n }, [coline, name, key]);\n React.useEffect(() => {\n void live.start();\n return () => live.stop();\n }, [live]);\n const snapshot = React.useSyncExternalStore(live.subscribe, live.getSnapshot, live.getSnapshot);\n return {\n ...snapshot,\n insert: live.insert,\n update: live.update,\n delete: live.delete,\n setAccess: live.setAccess,\n refresh: live.refresh,\n };\n}\n","\"use client\";\nimport * as React from \"react\";\nimport { cn } from \"../lib/utils\";\nimport { Button } from \"../components/button\";\n\nexport function AppPage({\n title,\n description,\n eyebrow,\n actions,\n children,\n width = \"wide\",\n className,\n}: {\n title: string;\n description?: React.ReactNode;\n eyebrow?: React.ReactNode;\n actions?: React.ReactNode;\n children: React.ReactNode;\n width?: \"wide\" | \"reading\";\n className?: string;\n}) {\n return (\n <main className={cn(\"coline-page\", className)} data-width={width}>\n <header className=\"coline-page-header\">\n <div className=\"coline-page-heading\">\n {eyebrow && <div className=\"coline-eyebrow\">{eyebrow}</div>}\n <h1>{title}</h1>\n {description && <p className=\"coline-page-description\">{description}</p>}\n </div>\n {actions && <div className=\"coline-page-actions\">{actions}</div>}\n </header>\n {children}\n </main>\n );\n}\nexport function PageToolbar({\n children,\n label = \"View controls\",\n className,\n}: {\n children: React.ReactNode;\n label?: string;\n className?: string;\n}) {\n return (\n <div className={cn(\"coline-toolbar\", className)} role=\"group\" aria-label={label}>\n {children}\n </div>\n );\n}\nexport function EmptyState({\n title,\n description,\n action,\n icon,\n}: {\n title: string;\n description?: React.ReactNode;\n action?: React.ReactNode;\n icon?: React.ReactNode;\n}) {\n return (\n <section className=\"coline-empty\">\n {icon && (\n <div className=\"coline-empty-icon\" aria-hidden=\"true\">\n {icon}\n </div>\n )}\n <h2>{title}</h2>\n {description && <p>{description}</p>}\n {action && <div>{action}</div>}\n </section>\n );\n}\nexport function AppErrorState({ message, onRetry }: { message: string; onRetry?: () => void }) {\n return (\n <section className=\"coline-error\" role=\"alert\">\n <div>\n <h2>Something went wrong</h2>\n <p>{message}</p>\n </div>\n {onRetry && (\n <Button variant=\"outline\" onClick={onRetry}>\n Try again\n </Button>\n )}\n </section>\n );\n}\nexport function AppLoadingState({\n label = \"Loading\",\n rows = 5,\n}: {\n label?: string;\n rows?: number;\n}) {\n return (\n <div className=\"coline-loading\" role=\"status\" aria-label={label}>\n {Array.from({ length: Math.max(1, Math.min(rows, 12)) }, (_, i) => (\n <div key={i} style={{ width: `${92 - (i % 3) * 14}%` }} />\n ))}\n <span className=\"coline-sr-only\">{label}</span>\n </div>\n );\n}\nexport function StatusBadge({\n children,\n tone = \"neutral\",\n}: {\n children: React.ReactNode;\n tone?: \"neutral\" | \"info\" | \"success\" | \"warning\" | \"danger\";\n}) {\n return (\n <span className=\"coline-status\" data-tone={tone}>\n <span aria-hidden=\"true\" />\n {children}\n </span>\n );\n}\nexport function SplitView({\n list,\n detail,\n label = \"Details\",\n}: {\n list: React.ReactNode;\n detail?: React.ReactNode;\n label?: string;\n}) {\n return (\n <div className=\"coline-split\" data-open={Boolean(detail)}>\n <section className=\"coline-split-list\">{list}</section>\n {detail && (\n <aside className=\"coline-split-detail\" aria-label={label}>\n {detail}\n </aside>\n )}\n </div>\n );\n}\nexport function DetailPanel({\n title,\n subtitle,\n onClose,\n children,\n actions,\n}: {\n title: string;\n subtitle?: React.ReactNode;\n onClose?: () => void;\n children: React.ReactNode;\n actions?: React.ReactNode;\n}) {\n return (\n <section className=\"coline-detail\">\n <header>\n <div>\n {subtitle && <div className=\"coline-eyebrow\">{subtitle}</div>}\n <h2>{title}</h2>\n </div>\n {onClose && (\n <Button variant=\"ghost\" size=\"sm\" onClick={onClose} aria-label=\"Close details\">\n Close\n </Button>\n )}\n </header>\n <div className=\"coline-detail-body\">{children}</div>\n {actions && <footer>{actions}</footer>}\n </section>\n );\n}\nexport interface RecordColumn<T> {\n key: string;\n label: string;\n render: (record: T) => React.ReactNode;\n secondary?: boolean;\n align?: \"start\" | \"end\";\n}\nexport function RecordTable<T>({\n records,\n columns,\n rowKey,\n onOpen,\n label = \"Records\",\n empty,\n}: {\n records: readonly T[];\n columns: readonly RecordColumn<T>[];\n rowKey: (record: T) => string;\n onOpen?: (record: T) => void;\n label?: string;\n empty?: React.ReactNode;\n}) {\n if (!records.length)\n return (\n <>{empty ?? <EmptyState title=\"No results\" description=\"Try changing your filters.\" />}</>\n );\n return (\n <div className=\"coline-table-scroll\">\n <table className=\"coline-record-table\" aria-label={label}>\n <thead>\n <tr>\n {columns.map((column) => (\n <th\n key={column.key}\n scope=\"col\"\n data-secondary={column.secondary || undefined}\n data-align={column.align}\n >\n {column.label}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {records.map((record) => (\n <tr key={rowKey(record)}>\n {columns.map((column, i) => (\n <td\n key={column.key}\n data-secondary={column.secondary || undefined}\n data-align={column.align}\n >\n {i === 0 && onOpen ? (\n <button\n type=\"button\"\n className=\"coline-row-open\"\n onClick={() => onOpen(record)}\n >\n {column.render(record)}\n </button>\n ) : (\n column.render(record)\n )}\n </td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n );\n}\nexport function Board({\n children,\n label = \"Board\",\n}: {\n children: React.ReactNode;\n label?: string;\n}) {\n return (\n <div className=\"coline-board\" role=\"region\" aria-label={label} tabIndex={0}>\n {children}\n </div>\n );\n}\nexport function BoardColumn({\n title,\n count,\n children,\n action,\n}: {\n title: string;\n count?: number;\n children: React.ReactNode;\n action?: React.ReactNode;\n}) {\n return (\n <section className=\"coline-board-column\">\n <header>\n <h2>{title}</h2>\n {count !== undefined && <span className=\"coline-count\">{count}</span>}\n {action}\n </header>\n <div className=\"coline-board-items\">{children}</div>\n </section>\n );\n}\nexport function BoardCard({\n title,\n children,\n footer,\n onOpen,\n}: {\n title: string;\n children?: React.ReactNode;\n footer?: React.ReactNode;\n onOpen?: () => void;\n}) {\n return (\n <article className=\"coline-board-card\">\n <h3>\n {onOpen ? (\n <button type=\"button\" className=\"coline-row-open\" onClick={onOpen}>\n {title}\n </button>\n ) : (\n title\n )}\n </h3>\n {children && <div className=\"coline-board-card-body\">{children}</div>}\n {footer && <footer>{footer}</footer>}\n </article>\n );\n}\nexport function SettingsSection({\n title,\n description,\n children,\n}: {\n title: string;\n description?: string;\n children: React.ReactNode;\n}) {\n const id = React.useId();\n return (\n <section className=\"coline-settings-section\" aria-labelledby={id}>\n <div>\n <h2 id={id}>{title}</h2>\n {description && <p>{description}</p>}\n </div>\n <div className=\"coline-settings-fields\">{children}</div>\n </section>\n );\n}\n","\"use client\";\nimport * as React from \"react\";\nimport { IconChevronDown } from \"@tabler/icons-react\";\nimport { Button } from \"../components/button\";\nimport { DropdownMenu, DropdownMenuContent, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuTrigger } from \"../components/dropdown-menu\";\nimport { cn } from \"../lib/utils\";\n\n/** A value picker using the same dropdown and sliding highlight as Coline. */\nexport const FilterMenu = React.forwardRef<HTMLButtonElement, {\n value: string;\n options: readonly { value: string; label: string; disabled?: boolean }[];\n onValueChange: (value: string) => void;\n \"aria-label\": string;\n disabled?: boolean;\n className?: string;\n}>(function FilterMenu({ value, options, onValueChange, className, disabled, \"aria-label\": label }, ref) {\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button ref={ref} variant=\"outline\" disabled={disabled} aria-label={label} className={cn(\"coline-filter-menu\", className)}>\n <span>{options.find((option) => option.value === value)?.label ?? label}</span>\n <IconChevronDown aria-hidden=\"true\" />\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent>\n <DropdownMenuRadioGroup aria-label={label} value={value} onValueChange={onValueChange}>\n {options.map((option) => <DropdownMenuRadioItem key={option.value} value={option.value} disabled={option.disabled ?? false}>{option.label}</DropdownMenuRadioItem>)}\n </DropdownMenuRadioGroup>\n </DropdownMenuContent>\n </DropdownMenu>\n );\n});\n"],"mappings":"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","names":["jsx","React","cva","Slot","jsx","cva","Button","Slot","jsx","jsx","jsx","React","IconCheck","React","jsx","element","jsx","jsxs","IconCheck","cva","jsx","jsx","jsx","jsxs","cva","jsx","jsx","jsx","IconCheck","jsx","jsxs","contentClasses","IconCheck","jsx","React","jsx","jsxs","jsx","jsx","React","cva","motion","jsx","jsxs","cva","motion","jsx","cva","jsx","cva","jsx","React","React","Fragment","jsx","jsxs","React","IconChevronDown","jsx","jsxs","FilterMenu","IconChevronDown"]}
|