@nextop-os/ui-system 0.0.27 → 0.0.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/badge/badge.tsx","../src/components/bare-icon-button/bare-icon-button.tsx","../src/components/button/button.tsx","../src/components/card/card.tsx","../src/components/checkbox/checkbox.tsx","../src/components/dialog/dialog.tsx","../src/components/confirmation-dialog/confirmation-dialog.tsx","../src/components/date-picker/date-picker.tsx","../src/components/drawer/drawer.tsx","../src/components/dropdown-menu/dropdown-menu.tsx","../src/components/menu-surface/menu-surface.tsx","../src/components/input/input.tsx","../src/components/mention-pill/mention-pill.tsx","../src/components/popover/popover.tsx","../src/components/resizable/resizable.tsx","../src/components/scroll-area/scroll-area.tsx","../src/components/select/select.tsx","../src/components/separator/separator.tsx","../src/components/section-tabs/section-tabs.tsx","../src/components/shortcut-badge/shortcut-badge.tsx","../src/components/sonner/sonner.tsx","../src/components/spinner/spinner.tsx","../src/components/status-dot/status-dot.tsx","../src/components/switch/switch.tsx","../src/components/textarea/textarea.tsx","../src/components/toast/toast.tsx","../src/components/tooltip/tooltip.tsx","../src/components/underline-tabs/underline-tabs.tsx","../src/components/viewport-menu-surface/viewport-menu-surface.tsx"],"sourcesContent":["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-[4px] border border-transparent px-1 py-0.5 text-[0.72rem] font-normal whitespace-nowrap transition-[background-color,border-color,color,box-shadow] focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/35 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:\n \"bg-[var(--transparency-block)] text-[var(--text-secondary)] [a]:hover:bg-[var(--transparency-hover)]\",\n accent:\n \"bg-[var(--accent-bg)] text-[var(--accent)] [a]:hover:bg-[var(--accent-bg)]\",\n secondary:\n \"bg-[var(--transparency-block)] text-[var(--text-secondary)] [a]:hover:bg-[var(--transparency-hover)]\",\n destructive:\n \"bg-destructive/10 text-destructive focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/18\",\n outline:\n \"border-border bg-card/90 text-foreground [a]:hover:bg-muted [a]:hover:text-foreground\",\n ghost:\n \"hover:bg-accent/80 hover:text-accent-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 bareIconButtonVariants = cva(\n \"inline-flex shrink-0 cursor-pointer items-center justify-center border border-transparent bg-transparent p-0 text-[var(--text-tertiary)] transition-[color,opacity,box-shadow] duration-150 outline-none select-none hover:border-transparent hover:bg-transparent hover:text-[var(--text-primary)] active:bg-transparent active:text-[var(--text-primary)] aria-expanded:bg-transparent aria-expanded:text-[var(--text-primary)] focus-visible:border-transparent focus-visible:bg-transparent focus-visible:text-[var(--text-primary)] focus-visible:ring-2 focus-visible:ring-[var(--border-focus)] disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-transparent disabled:text-[var(--text-disabled)] disabled:opacity-100 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n size: {\n md: \"size-6 rounded-[4px] [&_svg:not([class*='size-'])]:size-4\",\n sm: \"size-5 rounded-[3px] [&_svg:not([class*='size-'])]:size-3.5\"\n }\n },\n defaultVariants: {\n size: \"md\"\n }\n }\n);\n\ntype BareIconButtonSize = NonNullable<\n VariantProps<typeof bareIconButtonVariants>[\"size\"]\n>;\n\ntype BareIconButtonProps = Omit<\n React.ComponentProps<\"button\">,\n \"aria-label\" | \"children\"\n> & {\n \"aria-label\": string;\n asChild?: boolean;\n children: React.ReactNode;\n size?: BareIconButtonSize;\n};\n\nfunction BareIconButton({\n className,\n size = \"md\",\n asChild = false,\n type = \"button\",\n ...props\n}: BareIconButtonProps) {\n const Comp = asChild ? Slot.Root : \"button\";\n\n return (\n <Comp\n data-slot=\"bare-icon-button\"\n data-size={size}\n type={type}\n className={cn(bareIconButtonVariants({ size, className }))}\n {...props}\n />\n );\n}\n\nexport { BareIconButton };\nexport type { BareIconButtonProps };\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 cursor-pointer items-center justify-center rounded-md border border-transparent bg-clip-padding text-sm font-normal whitespace-nowrap transition-[background-color,border-color,color,box-shadow,transform] outline-none select-none focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/35 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-2 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n default:\n \"bg-[var(--text-primary)] text-[var(--text-inverted)] shadow-none hover:bg-[var(--text-primary-hover)]\",\n outline:\n \"border-border bg-card text-foreground hover:bg-muted/80 hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50\",\n secondary:\n \"bg-transparency-block text-[var(--text-primary)] hover:bg-transparency-hover aria-expanded:bg-transparency-hover aria-expanded:text-[var(--text-primary)]\",\n ghost:\n \"bg-transparent text-[var(--text-primary)] hover:bg-transparency-hover aria-expanded:bg-transparency-hover aria-expanded:text-[var(--text-primary)]\",\n chrome:\n \"border border-transparent bg-transparent text-[var(--text-tertiary)] shadow-none hover:border-transparent hover:bg-[var(--transparency-hover)] hover:text-[var(--text-primary)] active:bg-[var(--transparency-active)] active:text-[var(--text-primary)] aria-expanded:border-transparent aria-expanded:bg-[var(--transparency-block)] aria-expanded:text-[var(--text-primary)] disabled:pointer-events-auto disabled:cursor-not-allowed disabled:opacity-45\",\n destructive:\n \"bg-[var(--state-danger)] text-[var(--white-stationary)] hover:bg-[var(--state-danger-hover)] focus-visible:border-[var(--state-danger)] focus-visible:ring-[color-mix(in_srgb,var(--state-danger)_25%,transparent)]\",\n link: \"text-primary underline-offset-4 hover:underline\"\n },\n size: {\n default:\n \"h-8 gap-[6px] px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2\",\n dialog:\n \"h-8 gap-[6px] rounded-md px-3 text-sm font-normal leading-5 has-data-[icon=inline-end]:pr-2.5 has-data-[icon=inline-start]:pl-2.5\",\n xs: \"h-6 gap-1 rounded-sm px-2 text-xs in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3\",\n sm: \"h-7 gap-1 rounded-sm px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5\",\n lg: \"h-9 gap-2 px-3 has-data-[icon=inline-end]:pr-2.5 has-data-[icon=inline-start]:pl-2.5\",\n icon: \"size-8\",\n \"icon-xs\":\n \"size-6 rounded-sm in-data-[slot=button-group]:rounded-md [&_svg:not([class*='size-'])]:size-3\",\n \"icon-sm\": \"size-7 rounded-sm in-data-[slot=button-group]:rounded-md\",\n \"icon-lg\": \"size-9\"\n }\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\"\n },\n compoundVariants: [\n {\n variant: \"chrome\",\n size: \"icon-sm\",\n class: \"rounded-[4px]\"\n }\n ]\n }\n);\n\nfunction Button({\n className,\n variant = \"default\",\n size = \"default\",\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean;\n }) {\n const Comp = asChild ? Slot.Root : \"button\";\n\n return (\n <Comp\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-4 overflow-hidden rounded-lg border border-border/70 bg-card py-4 text-sm text-card-foreground shadow-none has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:gap-3 data-[size=sm]:py-3 data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-lg *:[img:last-child]:rounded-b-lg\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction CardHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-header\"\n className={cn(\n \"group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-lg px-4 group-data-[size=sm]/card:px-3 has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:border-border/70 [.border-b]:pb-4 group-data-[size=sm]/card:[.border-b]:pb-3\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction CardTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-title\"\n className={cn(\n \"text-base leading-snug font-medium group-data-[size=sm]/card:text-sm\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction CardDescription({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-description\"\n className={cn(\"text-sm leading-[1.3] 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-4 group-data-[size=sm]/card:px-3\", className)}\n {...props}\n />\n );\n}\n\nfunction CardFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-footer\"\n className={cn(\n \"flex items-center rounded-b-lg border-t border-border/70 bg-muted/50 p-4 group-data-[size=sm]/card:p-3\",\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","import * as React from \"react\";\nimport { Checkbox as CheckboxPrimitive } from \"radix-ui\";\n\nimport { CheckIcon } from \"#icons/system-icons\";\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 inline-flex size-4 shrink-0 items-center justify-center rounded-[4px] border border-[var(--border-1)] bg-[var(--transparency-block)] text-[var(--text-inverted)] transition-[background-color,border-color,color,box-shadow] outline-none focus-visible:border-[var(--border-focus)] focus-visible:ring-2 focus-visible:ring-[color-mix(in_srgb,var(--border-focus)_30%,transparent)] disabled:cursor-not-allowed disabled:border-[var(--border-1)] disabled:bg-[var(--transparency-block)] disabled:text-[var(--text-inverted)] disabled:opacity-100 data-disabled:border-[var(--border-1)] aria-invalid:border-[var(--state-danger)] aria-invalid:ring-2 aria-invalid:ring-[color-mix(in_srgb,var(--state-danger)_20%,transparent)] data-[state=checked]:border-[var(--text-primary)] data-[state=checked]:bg-[var(--text-primary)] data-[state=unchecked]:hover:border-[color-mix(in_srgb,var(--text-primary)_40%,transparent)] disabled:data-[state=checked]:border-[var(--border-1)] disabled:data-[state=checked]:bg-[var(--text-disabled)] data-disabled:data-[state=checked]:border-[var(--border-1)]\",\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n data-slot=\"checkbox-indicator\"\n className=\"grid place-content-center text-current transition-none [&>svg]:size-3\"\n >\n <CheckIcon size={14} />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n );\n}\n\nexport { Checkbox };\n","import * as React from \"react\";\nimport { Dialog as DialogPrimitive } from \"radix-ui\";\n\nimport { Button } from \"#components/button\";\nimport { CloseIcon } from \"#icons/system-icons\";\nimport { cn } from \"#lib/utils\";\n\nconst dialogCloseDurationMs = 150;\n\nconst DialogMotionContext = React.createContext<{ open: boolean }>({\n open: false\n});\n\nfunction Dialog({\n defaultOpen,\n onOpenChange,\n open,\n ...props\n}: Omit<React.ComponentProps<typeof DialogPrimitive.Root>, \"onOpenChange\"> & {\n onOpenChange?: (open: boolean) => void;\n}) {\n const [uncontrolledOpen, setUncontrolledOpen] = React.useState(\n defaultOpen ?? false\n );\n const currentOpen = open ?? uncontrolledOpen;\n\n const handleOpenChange = React.useCallback(\n (nextOpen: boolean) => {\n if (open === undefined) {\n setUncontrolledOpen(nextOpen);\n }\n onOpenChange?.(nextOpen);\n },\n [onOpenChange, open]\n );\n\n return (\n <DialogMotionContext.Provider value={{ open: currentOpen }}>\n <DialogPrimitive.Root\n data-slot=\"dialog\"\n open={currentOpen}\n onOpenChange={handleOpenChange}\n {...props}\n />\n </DialogMotionContext.Provider>\n );\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 style,\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 bg-[var(--backdrop)] duration-150 supports-backdrop-filter:backdrop-blur-sm data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0\",\n className\n )}\n style={{ zIndex: \"var(--z-dialog-overlay)\", ...style }}\n {...props}\n />\n );\n}\n\nfunction DialogContent({\n className,\n children,\n overlayClassName,\n portaled = true,\n showCloseButton = true,\n style,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content> & {\n overlayClassName?: string;\n portaled?: boolean;\n showCloseButton?: boolean;\n}) {\n const { open } = React.useContext(DialogMotionContext);\n const [mounted, setMounted] = React.useState(open);\n\n React.useEffect(() => {\n if (open) {\n setMounted(true);\n return undefined;\n }\n\n const timeout = window.setTimeout(() => {\n setMounted(false);\n }, dialogCloseDurationMs);\n\n return () => {\n window.clearTimeout(timeout);\n };\n }, [open]);\n\n if (!mounted) {\n return null;\n }\n\n const content = (\n <>\n <DialogOverlay className={overlayClassName} forceMount />\n <DialogPrimitive.Content\n data-slot=\"dialog-content\"\n forceMount\n className={cn(\n portaled ? \"fixed\" : \"absolute\",\n \"pointer-events-none top-1/2 left-1/2 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 origin-center gap-3 rounded-[16px] border border-border-1 bg-[var(--background-panel)] p-[18px] text-sm text-foreground shadow-panel outline-none ease-[cubic-bezier(0.22,1,0.36,1)] will-change-[transform,opacity] sm:max-w-[360px] data-[state=closed]:!pointer-events-none data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-[0.96] data-[state=closed]:duration-[150ms] data-[state=open]:pointer-events-auto data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-[0.96] data-[state=open]:duration-[250ms] motion-reduce:animate-none\",\n className\n )}\n style={{ zIndex: \"var(--z-dialog)\", ...style }}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close data-slot=\"dialog-close\" asChild>\n <Button\n variant=\"ghost\"\n className=\"absolute top-3 right-3\"\n size=\"icon-sm\"\n >\n <CloseIcon />\n <span className=\"sr-only\">Close</span>\n </Button>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </>\n );\n\n if (!portaled) {\n return content;\n }\n\n return <DialogPortal forceMount>{content}</DialogPortal>;\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 pt-1 sm:flex-row sm:justify-end sm:gap-2.5\",\n className\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close asChild>\n <Button variant=\"ghost\" size=\"dialog\">\n Close\n </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(\n \"text-base leading-[1.35] font-semibold tracking-normal text-foreground\",\n className\n )}\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 font-[400] leading-[1.3] text-text-secondary *:[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","import * as React from \"react\";\n\nimport { Button } from \"#components/button\";\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle\n} from \"#components/dialog\";\nimport { cn } from \"#lib/utils\";\n\ntype ConfirmationDialogTone = \"default\" | \"destructive\";\n\nfunction confirmToneClassName(tone: ConfirmationDialogTone) {\n if (tone === \"destructive\") {\n return \"shadow-none\";\n }\n\n return undefined;\n}\n\nfunction ConfirmationDialog({\n cancelLabel,\n children,\n className,\n confirmBusy = false,\n confirmDisabled = false,\n confirmLabel,\n description,\n disableCloseWhileBusy = true,\n footer,\n hideConfirmButton = false,\n onCancel,\n onConfirm,\n onOpenChange,\n open,\n overlayClassName,\n portaled = true,\n tone = \"default\",\n title\n}: {\n cancelLabel: React.ReactNode;\n children?: React.ReactNode;\n className?: string;\n confirmBusy?: boolean;\n confirmDisabled?: boolean;\n confirmLabel: React.ReactNode;\n description?: React.ReactNode;\n disableCloseWhileBusy?: boolean;\n footer?: React.ReactNode;\n hideConfirmButton?: boolean;\n onCancel?: () => void;\n onConfirm?: () => void;\n onOpenChange: (open: boolean) => void;\n open: boolean;\n overlayClassName?: string;\n portaled?: boolean;\n tone?: ConfirmationDialogTone;\n title: React.ReactNode;\n}) {\n const isCloseDisabled = disableCloseWhileBusy && confirmBusy;\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogContent\n className={cn(\n \"max-w-[calc(100%-2rem)] text-left sm:max-w-[360px]\",\n className\n )}\n overlayClassName={cn(overlayClassName)}\n portaled={portaled}\n showCloseButton={false}\n onEscapeKeyDown={(event) => {\n if (isCloseDisabled) {\n event.preventDefault();\n }\n }}\n onInteractOutside={(event) => {\n if (isCloseDisabled) {\n event.preventDefault();\n }\n }}\n >\n <DialogHeader>\n <DialogTitle>{title}</DialogTitle>\n {description ? (\n <DialogDescription>{description}</DialogDescription>\n ) : null}\n </DialogHeader>\n {children ? (\n <div className=\"text-sm leading-[1.3] text-text-secondary\">\n {children}\n </div>\n ) : null}\n {footer ?? (\n <DialogFooter>\n <Button\n disabled={confirmBusy}\n size=\"dialog\"\n type=\"button\"\n variant=\"ghost\"\n onClick={() => {\n onCancel?.();\n onOpenChange(false);\n }}\n >\n {cancelLabel}\n </Button>\n {hideConfirmButton ? null : (\n <Button\n disabled={confirmBusy || confirmDisabled}\n size=\"dialog\"\n type=\"button\"\n variant={tone === \"default\" ? \"default\" : \"destructive\"}\n className={cn(\"shadow-none\", confirmToneClassName(tone))}\n onClick={() => {\n onConfirm?.();\n }}\n >\n {confirmLabel}\n </Button>\n )}\n </DialogFooter>\n )}\n </DialogContent>\n </Dialog>\n );\n}\n\nexport { ConfirmationDialog };\nexport type { ConfirmationDialogTone };\n","import * as React from \"react\";\nimport { createPortal } from \"react-dom\";\n\nimport { ArrowLeftIcon, ArrowRightIcon } from \"#icons/system-icons\";\nimport { cn } from \"#lib/utils\";\n\nexport interface DatePickerLabels {\n placeholder: string;\n previousMonth: string;\n nextMonth: string;\n clear: string;\n today: string;\n weekdayLabels: readonly [\n string,\n string,\n string,\n string,\n string,\n string,\n string\n ];\n}\n\nexport interface DatePickerProps extends Omit<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n \"onChange\" | \"value\" | \"type\"\n> {\n value?: string;\n onValueChange?: (value: string) => void;\n labels?: Partial<DatePickerLabels>;\n formatDisplayValue?: (date: Date) => string;\n formatMonthLabel?: (date: Date) => string;\n}\n\nconst defaultLabels: DatePickerLabels = {\n placeholder: \"Year / Month / Day\",\n previousMonth: \"Previous month\",\n nextMonth: \"Next month\",\n clear: \"Clear\",\n today: \"Today\",\n weekdayLabels: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"]\n};\n\nconst DATE_PICKER_POPOVER_WIDTH_PX = 264;\nconst DATE_PICKER_POPOVER_HEIGHT_PX = 336;\nconst DATE_PICKER_POPOVER_GAP_PX = 6;\nconst DATE_PICKER_VIEWPORT_MARGIN_PX = 8;\n\nfunction parseDateValue(value: string | undefined): Date | null {\n if (!value) {\n return null;\n }\n\n const [year, month, day] = value.split(\"-\").map(Number);\n if (!year || !month || !day) {\n return null;\n }\n\n return new Date(year, month - 1, day);\n}\n\nfunction formatDateValue(date: Date): string {\n const year = date.getFullYear();\n const month = `${date.getMonth() + 1}`.padStart(2, \"0\");\n const day = `${date.getDate()}`.padStart(2, \"0\");\n return `${year}-${month}-${day}`;\n}\n\nfunction defaultDisplayValueFormatter(date: Date): string {\n return new Intl.DateTimeFormat(undefined, {\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\"\n }).format(date);\n}\n\nfunction defaultMonthLabelFormatter(date: Date): string {\n return new Intl.DateTimeFormat(undefined, {\n year: \"numeric\",\n month: \"long\"\n }).format(date);\n}\n\nfunction isSameDate(left: Date | null, right: Date | null): boolean {\n return Boolean(\n left &&\n right &&\n left.getFullYear() === right.getFullYear() &&\n left.getMonth() === right.getMonth() &&\n left.getDate() === right.getDate()\n );\n}\n\nfunction buildMonthGrid(monthDate: Date): Date[] {\n const firstOfMonth = new Date(\n monthDate.getFullYear(),\n monthDate.getMonth(),\n 1\n );\n const gridStart = new Date(firstOfMonth);\n gridStart.setDate(firstOfMonth.getDate() - firstOfMonth.getDay());\n\n return Array.from({ length: 42 }, (_, index) => {\n const date = new Date(gridStart);\n date.setDate(gridStart.getDate() + index);\n return date;\n });\n}\n\nfunction resolvePopoverPosition(rect: DOMRect): {\n top: number;\n left: number;\n width: number;\n} {\n const width = Math.max(rect.width, DATE_PICKER_POPOVER_WIDTH_PX);\n const maxLeft = window.innerWidth - width - DATE_PICKER_VIEWPORT_MARGIN_PX;\n const left = Math.max(\n DATE_PICKER_VIEWPORT_MARGIN_PX,\n Math.min(rect.left, Math.max(DATE_PICKER_VIEWPORT_MARGIN_PX, maxLeft))\n );\n const belowTop = rect.bottom + DATE_PICKER_POPOVER_GAP_PX;\n const aboveTop =\n rect.top - DATE_PICKER_POPOVER_GAP_PX - DATE_PICKER_POPOVER_HEIGHT_PX;\n const canOpenBelow =\n belowTop + DATE_PICKER_POPOVER_HEIGHT_PX <=\n window.innerHeight - DATE_PICKER_VIEWPORT_MARGIN_PX;\n const top = canOpenBelow\n ? belowTop\n : Math.max(DATE_PICKER_VIEWPORT_MARGIN_PX, aboveTop);\n\n return { top, left, width };\n}\n\nfunction subscribeScrollableAncestors(\n trigger: HTMLElement,\n onScrollLike: () => void\n): () => void {\n const cleanups: Array<() => void> = [];\n let element: HTMLElement | null = trigger.parentElement;\n\n while (element && element !== document.documentElement) {\n const { overflowX, overflowY } = window.getComputedStyle(element);\n if (\n overflowY === \"auto\" ||\n overflowY === \"scroll\" ||\n overflowY === \"overlay\" ||\n overflowX === \"auto\" ||\n overflowX === \"scroll\" ||\n overflowX === \"overlay\"\n ) {\n element.addEventListener(\"scroll\", onScrollLike, { passive: true });\n const current = element;\n cleanups.push(() => current.removeEventListener(\"scroll\", onScrollLike));\n }\n element = element.parentElement;\n }\n\n return () => cleanups.forEach((dispose) => dispose());\n}\n\nconst DatePicker = React.forwardRef<HTMLButtonElement, DatePickerProps>(\n (\n {\n className,\n value,\n onValueChange,\n onClick,\n disabled,\n labels,\n formatDisplayValue = defaultDisplayValueFormatter,\n formatMonthLabel = defaultMonthLabelFormatter,\n ...props\n },\n ref\n ) => {\n const resolvedLabels: DatePickerLabels = {\n ...defaultLabels,\n ...labels,\n weekdayLabels: labels?.weekdayLabels ?? defaultLabels.weekdayLabels\n };\n const triggerRef = React.useRef<HTMLButtonElement | null>(null);\n const popoverRef = React.useRef<HTMLDivElement | null>(null);\n const selectedDate = React.useMemo(() => parseDateValue(value), [value]);\n const [isOpen, setIsOpen] = React.useState(false);\n const [visibleMonth, setVisibleMonth] = React.useState(\n () => selectedDate ?? new Date()\n );\n const [popoverPosition, setPopoverPosition] = React.useState<{\n top: number;\n left: number;\n width: number;\n } | null>(null);\n\n React.useEffect(() => {\n if (selectedDate) {\n setVisibleMonth(selectedDate);\n }\n }, [selectedDate]);\n\n const openPopover = React.useCallback(() => {\n const trigger = triggerRef.current;\n if (!trigger) {\n return;\n }\n setPopoverPosition(\n resolvePopoverPosition(trigger.getBoundingClientRect())\n );\n setIsOpen(true);\n }, []);\n\n React.useLayoutEffect(() => {\n if (!isOpen) {\n return;\n }\n\n const sync = () => {\n const element = triggerRef.current;\n if (!element) {\n return;\n }\n setPopoverPosition(\n resolvePopoverPosition(element.getBoundingClientRect())\n );\n };\n\n sync();\n const rafId = window.requestAnimationFrame(sync);\n return () => window.cancelAnimationFrame(rafId);\n }, [isOpen]);\n\n React.useEffect(() => {\n if (!isOpen) {\n return undefined;\n }\n\n const ac = new AbortController();\n const { signal } = ac;\n\n const handlePointerDown = (event: PointerEvent) => {\n const target = event.target as Node | null;\n if (\n target &&\n (triggerRef.current?.contains(target) ||\n popoverRef.current?.contains(target))\n ) {\n return;\n }\n setIsOpen(false);\n };\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n setIsOpen(false);\n triggerRef.current?.focus();\n }\n };\n\n const updatePosition = () => {\n const element = triggerRef.current;\n if (!element) {\n return;\n }\n setPopoverPosition(\n resolvePopoverPosition(element.getBoundingClientRect())\n );\n };\n\n document.addEventListener(\"pointerdown\", handlePointerDown, { signal });\n document.addEventListener(\"keydown\", handleKeyDown, { signal });\n window.addEventListener(\"resize\", updatePosition, { signal });\n document.addEventListener(\n \"wheel\",\n () => window.requestAnimationFrame(updatePosition),\n {\n capture: true,\n passive: true,\n signal\n }\n );\n\n const unsubAncestors = triggerRef.current\n ? subscribeScrollableAncestors(triggerRef.current, updatePosition)\n : () => {};\n\n return () => {\n ac.abort();\n unsubAncestors();\n };\n }, [isOpen]);\n\n const today = React.useMemo(() => new Date(), []);\n const monthGrid = React.useMemo(\n () => buildMonthGrid(visibleMonth),\n [visibleMonth]\n );\n\n const displayValue = selectedDate\n ? formatDisplayValue(selectedDate)\n : resolvedLabels.placeholder;\n\n const selectDate = (date: Date) => {\n onValueChange?.(formatDateValue(date));\n setIsOpen(false);\n triggerRef.current?.focus();\n };\n\n return (\n <>\n <button\n ref={(node) => {\n triggerRef.current = node;\n if (typeof ref === \"function\") {\n ref(node);\n } else if (ref) {\n ref.current = node;\n }\n }}\n data-slot=\"date-picker\"\n disabled={disabled}\n type=\"button\"\n className={cn(\n \"inline-flex h-8 min-h-8 w-full items-center justify-start rounded-md border border-transparent bg-[var(--workbench-field-bg)] px-3 text-left text-sm text-foreground transition-[background-color,border-color,box-shadow,color] outline-none hover:bg-muted/60 focus-visible:border-border focus-visible:ring-2 focus-visible:ring-ring/30 disabled:cursor-not-allowed disabled:bg-muted disabled:text-muted-foreground disabled:opacity-100\",\n !selectedDate && \"text-muted-foreground\",\n className\n )}\n onClick={(event) => {\n onClick?.(event);\n if (disabled) {\n return;\n }\n if (isOpen) {\n setIsOpen(false);\n } else {\n openPopover();\n }\n }}\n {...props}\n >\n <span className=\"min-w-0 truncate\">{displayValue}</span>\n </button>\n\n {isOpen && popoverPosition\n ? createPortal(\n <div\n ref={popoverRef}\n data-slot=\"date-picker-content\"\n className=\"fixed z-50 flex min-w-[264px] max-w-[min(100vw-16px,320px)] flex-col overflow-hidden rounded-xl border border-border/70 bg-popover p-3 text-popover-foreground shadow-soft\"\n style={{\n top: popoverPosition.top,\n left: popoverPosition.left,\n width: popoverPosition.width,\n zIndex: \"var(--z-popover)\"\n }}\n >\n <div className=\"mb-3 flex items-center justify-between gap-2\">\n <div className=\"text-sm font-semibold text-foreground\">\n {formatMonthLabel(visibleMonth)}\n </div>\n <div className=\"flex items-center gap-1\">\n <button\n aria-label={resolvedLabels.previousMonth}\n className=\"inline-flex h-7 w-7 items-center justify-center rounded-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground\"\n type=\"button\"\n onClick={() =>\n setVisibleMonth(\n (current) =>\n new Date(\n current.getFullYear(),\n current.getMonth() - 1,\n 1\n )\n )\n }\n >\n <ArrowLeftIcon size={16} />\n </button>\n <button\n aria-label={resolvedLabels.nextMonth}\n className=\"inline-flex h-7 w-7 items-center justify-center rounded-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground\"\n type=\"button\"\n onClick={() =>\n setVisibleMonth(\n (current) =>\n new Date(\n current.getFullYear(),\n current.getMonth() + 1,\n 1\n )\n )\n }\n >\n <ArrowRightIcon size={16} />\n </button>\n </div>\n </div>\n <div className=\"grid grid-cols-7 gap-1 text-center text-xs font-semibold text-muted-foreground\">\n {resolvedLabels.weekdayLabels.map((day) => (\n <div key={day} className=\"py-1\">\n {day}\n </div>\n ))}\n </div>\n <div\n className=\"mt-1 grid grid-cols-7 justify-items-center gap-1\"\n role=\"grid\"\n >\n {monthGrid.map((date) => {\n const isSelected = isSameDate(date, selectedDate);\n const isToday = isSameDate(date, today);\n const inCurrentMonth =\n date.getMonth() === visibleMonth.getMonth();\n\n return (\n <button\n key={formatDateValue(date)}\n aria-pressed={isSelected}\n className={cn(\n \"inline-flex h-8 w-8 items-center justify-center rounded-sm text-sm transition-[background-color,color,box-shadow] hover:bg-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/30\",\n inCurrentMonth\n ? \"text-foreground\"\n : \"text-muted-foreground\",\n isToday &&\n \"bg-primary/10 text-primary shadow-[inset_0_0_0_1px_color-mix(in_srgb,var(--color-primary)_20%,transparent)]\",\n isSelected &&\n \"bg-primary text-primary-foreground hover:bg-primary\"\n )}\n role=\"gridcell\"\n type=\"button\"\n onClick={() => selectDate(date)}\n >\n {date.getDate()}\n </button>\n );\n })}\n </div>\n <div className=\"mt-3 flex items-center justify-between gap-2 border-t border-border/70 pt-3\">\n <button\n className=\"inline-flex min-h-8 items-center justify-center rounded-sm px-3 text-sm font-medium text-muted-foreground transition-colors hover:bg-muted hover:text-foreground\"\n type=\"button\"\n onClick={() => {\n onValueChange?.(\"\");\n setIsOpen(false);\n triggerRef.current?.focus();\n }}\n >\n {resolvedLabels.clear}\n </button>\n <button\n className=\"inline-flex min-h-8 items-center justify-center rounded-sm bg-primary px-3 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90\"\n type=\"button\"\n onClick={() => selectDate(today)}\n >\n {resolvedLabels.today}\n </button>\n </div>\n </div>,\n document.body\n )\n : null}\n </>\n );\n }\n);\n\nDatePicker.displayName = \"DatePicker\";\n\nexport { DatePicker };\n","import * as React from \"react\";\nimport { Drawer as DrawerPrimitive } from \"vaul\";\n\nimport { cn } from \"#lib/utils\";\n\nfunction Drawer({\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Root>) {\n return <DrawerPrimitive.Root data-slot=\"drawer\" {...props} />;\n}\n\nfunction DrawerTrigger({\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Trigger>) {\n return <DrawerPrimitive.Trigger data-slot=\"drawer-trigger\" {...props} />;\n}\n\nfunction DrawerPortal({\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Portal>) {\n return <DrawerPrimitive.Portal data-slot=\"drawer-portal\" {...props} />;\n}\n\nfunction DrawerClose({\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Close>) {\n return <DrawerPrimitive.Close data-slot=\"drawer-close\" {...props} />;\n}\n\nfunction DrawerOverlay({\n className,\n style,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Overlay>) {\n return (\n <DrawerPrimitive.Overlay\n data-slot=\"drawer-overlay\"\n className={cn(\n \"fixed inset-0 isolate bg-[var(--backdrop)] duration-150 supports-backdrop-filter:backdrop-blur-sm data-closed:animate-out data-closed:fade-out-0 data-open:animate-in data-open:fade-in-0\",\n className\n )}\n style={{ zIndex: \"var(--z-dialog-overlay)\", ...style }}\n {...props}\n />\n );\n}\n\nfunction DrawerContent({\n className,\n children,\n portalContainer,\n showOverlay = true,\n style,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Content> & {\n portalContainer?: React.ComponentProps<\n typeof DrawerPrimitive.Portal\n >[\"container\"];\n showOverlay?: boolean;\n}) {\n return (\n <DrawerPortal data-slot=\"drawer-portal\" container={portalContainer}>\n {showOverlay ? <DrawerOverlay /> : null}\n <DrawerPrimitive.Content\n data-slot=\"drawer-content\"\n className={cn(\n \"group/drawer-content fixed flex h-auto flex-col border-[var(--border-1)] bg-background-fronted text-sm text-foreground shadow-panel outline-none\",\n \"data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:rounded-t-xl data-[vaul-drawer-direction=bottom]:border-t\",\n \"data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:left-0 data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=left]:rounded-r-xl data-[vaul-drawer-direction=left]:border-r data-[vaul-drawer-direction=left]:sm:max-w-sm\",\n \"data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=right]:rounded-l-xl data-[vaul-drawer-direction=right]:border-l data-[vaul-drawer-direction=right]:sm:max-w-sm\",\n \"data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=top]:rounded-b-xl data-[vaul-drawer-direction=top]:border-b\",\n className\n )}\n style={{ zIndex: \"var(--z-dialog)\", ...style }}\n {...props}\n >\n <div className=\"mx-auto mt-4 hidden h-1 w-[100px] shrink-0 rounded-full bg-muted group-data-[vaul-drawer-direction=bottom]/drawer-content:block\" />\n {children}\n </DrawerPrimitive.Content>\n </DrawerPortal>\n );\n}\n\nfunction DrawerHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"drawer-header\"\n className={cn(\n \"flex flex-col gap-0.5 p-4 group-data-[vaul-drawer-direction=bottom]/drawer-content:text-center group-data-[vaul-drawer-direction=top]/drawer-content:text-center md:gap-0.5 md:text-left\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DrawerFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"drawer-footer\"\n className={cn(\"mt-auto flex flex-col gap-2 p-4\", className)}\n {...props}\n />\n );\n}\n\nfunction DrawerTitle({\n className,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Title>) {\n return (\n <DrawerPrimitive.Title\n data-slot=\"drawer-title\"\n className={cn(\n \"text-base font-medium leading-[1.35] text-foreground\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DrawerDescription({\n className,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Description>) {\n return (\n <DrawerPrimitive.Description\n data-slot=\"drawer-description\"\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Drawer,\n DrawerClose,\n DrawerContent,\n DrawerDescription,\n DrawerFooter,\n DrawerHeader,\n DrawerOverlay,\n DrawerPortal,\n DrawerTitle,\n DrawerTrigger\n};\n","import * as React from \"react\";\nimport { DropdownMenu as DropdownMenuPrimitive } from \"radix-ui\";\n\nimport { ArrowRightIcon, CheckIcon } from \"#icons/system-icons\";\nimport { cn } from \"#lib/utils\";\nimport {\n MenuSurface,\n menuItemClassName,\n menuItemIndicatorClassName,\n menuItemWithIndicatorClassName\n} from \"../menu-surface\";\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 children,\n align = \"start\",\n sideOffset = 4,\n style,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Content>) {\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n asChild\n data-slot=\"dropdown-menu-content\"\n align={align}\n sideOffset={sideOffset}\n {...props}\n >\n <MenuSurface\n data-slot=\"dropdown-menu-content\"\n className={cn(\n \"z-50 max-h-(--radix-dropdown-menu-content-available-height) w-(--radix-dropdown-menu-trigger-width) min-w-32 origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto\",\n className\n )}\n style={{ zIndex: \"var(--z-popover)\", ...style }}\n >\n {children}\n </MenuSurface>\n </DropdownMenuPrimitive.Content>\n </DropdownMenuPrimitive.Portal>\n );\n}\n\nfunction DropdownMenuGroup({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Group>) {\n return (\n <DropdownMenuPrimitive.Group\n data-slot=\"dropdown-menu-group\"\n className={cn(\"flex flex-col gap-0.5\", className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean;\n variant?: \"default\" | \"destructive\";\n}) {\n return (\n <DropdownMenuPrimitive.Item\n data-inset={inset}\n data-slot=\"dropdown-menu-item\"\n data-variant={variant}\n className={cn(\n \"group/dropdown-menu-item\",\n menuItemClassName,\n \"data-inset:pl-7 data-[variant=destructive]:text-[var(--state-danger)] data-[variant=destructive]:focus:bg-[color-mix(in_srgb,var(--state-danger)_10%,transparent)] data-[variant=destructive]:focus:text-[var(--state-danger)] data-[variant=destructive]:hover:bg-[color-mix(in_srgb,var(--state-danger)_10%,transparent)] data-[variant=destructive]:hover:text-[var(--state-danger)] data-[variant=destructive]:*:[svg]:text-[var(--state-danger)]\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.CheckboxItem\n checked={checked}\n data-inset={inset}\n data-slot=\"dropdown-menu-checkbox-item\"\n className={cn(\n menuItemWithIndicatorClassName,\n \"data-inset:pl-7\",\n className\n )}\n {...props}\n >\n <span\n className={menuItemIndicatorClassName}\n data-slot=\"dropdown-menu-checkbox-item-indicator\"\n >\n <DropdownMenuPrimitive.ItemIndicator>\n <CheckIcon />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n );\n}\n\nfunction DropdownMenuRadioGroup({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>) {\n return (\n <DropdownMenuPrimitive.RadioGroup\n data-slot=\"dropdown-menu-radio-group\"\n className={cn(\"flex flex-col gap-0.5\", className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.RadioItem\n data-inset={inset}\n data-slot=\"dropdown-menu-radio-item\"\n className={cn(\n menuItemWithIndicatorClassName,\n \"data-inset:pl-7\",\n className\n )}\n {...props}\n >\n <span\n className={menuItemIndicatorClassName}\n data-slot=\"dropdown-menu-radio-item-indicator\"\n >\n <DropdownMenuPrimitive.ItemIndicator>\n <CheckIcon />\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-inset={inset}\n data-slot=\"dropdown-menu-label\"\n className={cn(\n \"px-1.5 py-1 text-xs font-medium text-[var(--text-secondary)] data-inset:pl-7\",\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-2 my-0.5 h-px bg-[var(--border-1)]\", 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 tracking-widest text-[var(--text-secondary)] group-focus/dropdown-menu-item:text-[var(--text-primary)]\",\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 ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.SubTrigger\n data-inset={inset}\n data-slot=\"dropdown-menu-sub-trigger\"\n className={cn(\n menuItemClassName,\n \"data-inset:pl-7 data-open:bg-[var(--transparency-block)] data-open:text-[var(--text-primary)]\",\n className\n )}\n {...props}\n >\n {children}\n <ArrowRightIcon className=\"ml-auto\" />\n </DropdownMenuPrimitive.SubTrigger>\n );\n}\n\nfunction DropdownMenuSubContent({\n className,\n children,\n style,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>) {\n return (\n <DropdownMenuPrimitive.SubContent\n asChild\n data-slot=\"dropdown-menu-sub-content\"\n {...props}\n >\n <MenuSurface\n data-slot=\"dropdown-menu-sub-content\"\n className={cn(\n \"z-50 min-w-[96px] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden\",\n className\n )}\n style={{ zIndex: \"var(--z-popover)\", ...style }}\n >\n {children}\n </MenuSurface>\n </DropdownMenuPrimitive.SubContent>\n );\n}\n\nexport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuPortal,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger\n};\n","import * as React from \"react\";\nimport { Slot } from \"radix-ui\";\n\nimport { cn } from \"#lib/utils\";\n\nconst menuSurfaceClassName =\n \"t-dropdown flex flex-col gap-0.5 rounded-[8px] border border-[var(--border-1)] bg-[var(--background-fronted)] p-1 text-sm text-[var(--text-primary)] shadow-panel outline-none\";\nconst menuItemClassName =\n \"relative flex cursor-pointer items-center gap-1.5 rounded-sm px-2 py-1 text-sm text-[var(--text-primary)] outline-hidden transition-colors duration-200 select-none hover:bg-[var(--transparency-hover)] hover:text-[var(--text-primary)] focus:bg-[var(--transparency-hover)] focus:text-[var(--text-primary)] data-[highlighted]:bg-[var(--transparency-hover)] data-[highlighted]:text-[var(--text-primary)] data-disabled:pointer-events-none data-disabled:text-[var(--text-disabled)] [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2\";\nconst menuItemWithIndicatorClassName = `${menuItemClassName} pr-8`;\nconst menuItemIndicatorClassName =\n \"pointer-events-none absolute right-2 flex size-4 items-center justify-center text-[var(--accent)]\";\n\ntype MenuSurfaceProps = React.HTMLAttributes<HTMLDivElement> & {\n \"data-state\"?: \"open\" | \"closed\";\n asChild?: boolean;\n state?: \"open\" | \"closed\";\n};\n\nconst MenuSurface = React.forwardRef<HTMLDivElement, MenuSurfaceProps>(\n (\n {\n asChild = false,\n className,\n \"data-state\": dataState,\n state = \"open\",\n ...props\n },\n ref\n ) => {\n const Comp = asChild ? Slot.Root : \"div\";\n\n return (\n <Comp\n {...props}\n ref={ref}\n className={cn(menuSurfaceClassName, className)}\n data-state={dataState ?? state}\n />\n );\n }\n);\nMenuSurface.displayName = \"MenuSurface\";\n\nexport {\n MenuSurface,\n menuItemClassName,\n menuItemIndicatorClassName,\n menuItemWithIndicatorClassName,\n menuSurfaceClassName\n};\n","import * as React from \"react\";\n\nimport { cn } from \"#lib/utils\";\n\ntype InputVariant = \"lg\" | \"md\" | \"sm\" | \"otp\";\n\ntype InputProps = Omit<React.ComponentProps<\"input\">, \"size\"> & {\n variant?: InputVariant;\n size?: \"default\" | \"sm\";\n};\n\nconst inputVariantClassNames: Record<InputVariant | \"default\", string> = {\n default: \"h-8 rounded-[6px] px-3 py-0 text-sm leading-[1.3]\",\n lg: \"h-12 rounded-[8px] px-4 py-3 text-base leading-[1.3]\",\n md: \"h-8 rounded-[6px] px-3 py-0 text-sm leading-[1.3]\",\n sm: \"h-8 rounded-[6px] px-3 py-0 text-sm leading-[1.3]\",\n otp: \"h-12 w-12 rounded-[4px] px-0 text-center text-xl font-medium sm:h-14 sm:w-14 sm:text-2xl\"\n};\n\nfunction Input({\n className,\n size = \"default\",\n type,\n variant,\n ...props\n}: InputProps) {\n const resolvedVariant = variant ?? (size === \"sm\" ? \"sm\" : \"default\");\n\n return (\n <input\n type={type}\n data-slot=\"input\"\n data-size={size}\n data-variant={resolvedVariant}\n className={cn(\n \"w-full min-w-0 border border-transparent bg-[var(--transparency-block)] font-normal text-[var(--text-primary)] shadow-none transition-colors duration-200 outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-[var(--text-primary)] placeholder:text-[var(--text-placeholder)] hover:bg-[var(--transparency-hover)] focus:bg-[var(--transparency-hover)] focus-visible:border-transparent focus-visible:bg-[var(--transparency-hover)] focus-visible:ring-0 disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-[var(--transparency-block)] disabled:text-[var(--text-disabled)] disabled:opacity-100 aria-invalid:border-[var(--state-danger)] aria-invalid:bg-[var(--transparency-block)] aria-invalid:hover:bg-[var(--transparency-hover)] aria-invalid:focus:bg-[var(--transparency-hover)] aria-invalid:focus-visible:bg-[var(--transparency-hover)] aria-invalid:ring-0 aria-invalid:shadow-none\",\n inputVariantClassNames[resolvedVariant],\n !variant && size === \"sm\" && \"h-7 rounded-[4px] px-2 text-xs\",\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n","import * as React from \"react\";\n\nimport {\n AgentSessionsIcon,\n CloseIcon,\n FileIcon,\n FolderFilledIcon,\n IssueIcon\n} from \"#icons/system-icons\";\nimport { cn } from \"#lib/utils\";\n\ntype MentionPillKind = \"issue\" | \"session\" | \"file\";\ntype MentionPillFileKind = \"file\" | \"folder\";\n\nconst mentionPillTokenByKind: Record<MentionPillKind, string> = {\n issue: \"var(--rich-text-mention-issue)\",\n session: \"var(--rich-text-mention-session)\",\n file: \"var(--rich-text-mention-file)\"\n};\n\nconst mentionPillDataKindByKind: Record<MentionPillKind, string> = {\n issue: \"task\",\n session: \"session\",\n file: \"file\"\n};\n\nexport interface MentionPillProps extends Omit<\n React.ComponentProps<\"span\">,\n \"children\"\n> {\n fileKind?: MentionPillFileKind;\n kind: MentionPillKind;\n label: React.ReactNode;\n removable?: boolean;\n removeButtonProps?: React.ComponentProps<\"button\">;\n summary?: React.ReactNode;\n}\n\nfunction MentionPill({\n className,\n fileKind = \"file\",\n kind,\n label,\n removable = kind === \"file\",\n removeButtonProps,\n style,\n summary,\n ...props\n}: MentionPillProps): React.JSX.Element {\n const isFile = kind === \"file\";\n const Icon = isFile\n ? fileKind === \"folder\"\n ? FolderFilledIcon\n : FileIcon\n : kind === \"issue\"\n ? IssueIcon\n : AgentSessionsIcon;\n const color =\n isFile && fileKind === \"folder\"\n ? \"var(--rich-text-folder)\"\n : mentionPillTokenByKind[kind];\n const dataKind = mentionPillDataKindByKind[kind];\n const iconSizeClassName = isFile ? \"size-3.5\" : \"size-4\";\n const iconShellClassName = isFile ? \"size-3.5\" : \"size-[18px]\";\n\n return (\n <span\n className={cn(\n \"group relative top-[3px] inline-flex max-w-full cursor-default items-center overflow-hidden rounded-[4px] border border-transparent bg-transparent py-0.5 align-baseline text-sm font-medium leading-5 no-underline transition-colors hover:border-transparent hover:bg-[color-mix(in_srgb,currentColor_12%,transparent)]\",\n isFile ? \"gap-1.5 px-1.5\" : \"gap-1 px-1\",\n className\n )}\n data-agent-file-mention=\"true\"\n data-agent-mention-kind={dataKind}\n data-slot=\"mention-pill\"\n style={{\n color,\n ...style\n }}\n {...props}\n >\n <span\n aria-hidden={removable ? undefined : true}\n className={cn(\n \"relative grid shrink-0 place-items-center\",\n iconShellClassName\n )}\n >\n <Icon\n className={cn(\n \"text-current transition-opacity\",\n removable && \"group-hover:opacity-0 group-focus-within:opacity-0\",\n iconSizeClassName\n )}\n />\n {removable ? (\n <button\n aria-label={removeButtonProps?.[\"aria-label\"]}\n type=\"button\"\n {...removeButtonProps}\n className={cn(\n \"absolute top-1/2 left-1/2 inline-flex size-5 -translate-x-1/2 -translate-y-1/2 items-center justify-center rounded-sm text-[var(--text-secondary)] opacity-0 transition-opacity group-hover:opacity-100 hover:bg-transparency-block hover:text-[var(--text-primary)] focus-visible:opacity-100\",\n removeButtonProps?.className\n )}\n >\n <CloseIcon className=\"size-3.5\" />\n </button>\n ) : null}\n </span>\n <span className=\"min-w-0 overflow-hidden text-ellipsis whitespace-nowrap\">\n <span>{label}</span>\n {summary ? <span className=\"text-current\"> {summary}</span> : null}\n </span>\n </span>\n );\n}\n\nexport { MentionPill };\nexport type { MentionPillFileKind, MentionPillKind };\n","import * 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 PopoverPortal({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Portal>) {\n return <PopoverPrimitive.Portal data-slot=\"popover-portal\" {...props} />;\n}\n\nfunction PopoverClose({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Close>) {\n return <PopoverPrimitive.Close data-slot=\"popover-close\" {...props} />;\n}\n\nfunction PopoverContent({\n className,\n align = \"center\",\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Content>) {\n return (\n <PopoverPortal>\n <PopoverPrimitive.Content\n data-slot=\"popover-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"t-dropdown z-50 flex w-72 origin-(--radix-popover-content-transform-origin) flex-col gap-2.5 rounded-lg border border-[var(--border-1)] bg-[var(--background-fronted)] p-3 text-sm text-popover-foreground shadow-soft outline-hidden\",\n className\n )}\n style={{ zIndex: \"var(--z-popover)\" }}\n {...props}\n />\n </PopoverPortal>\n );\n}\n\nfunction PopoverAnchor({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\n return <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />;\n}\n\nexport {\n Popover,\n PopoverAnchor,\n PopoverClose,\n PopoverContent,\n PopoverPortal,\n PopoverTrigger\n};\n","import * as ResizablePrimitive from \"react-resizable-panels\";\n\nimport { cn } from \"#lib/utils\";\n\nfunction ResizablePanelGroup({\n className,\n orientation = \"horizontal\",\n ...props\n}: React.ComponentProps<typeof ResizablePrimitive.Group>) {\n return (\n <ResizablePrimitive.Group\n data-orientation={orientation}\n data-slot=\"resizable-panel-group\"\n className={cn(\n \"flex h-full w-full data-[orientation=vertical]:flex-col\",\n className\n )}\n {...props}\n orientation={orientation}\n />\n );\n}\n\nfunction ResizablePanel(\n props: React.ComponentProps<typeof ResizablePrimitive.Panel>\n) {\n return <ResizablePrimitive.Panel data-slot=\"resizable-panel\" {...props} />;\n}\n\nfunction ResizableHandle({\n className,\n withHandle,\n ...props\n}: React.ComponentProps<typeof ResizablePrimitive.Separator> & {\n withHandle?: boolean;\n}) {\n return (\n <ResizablePrimitive.Separator\n data-slot=\"resizable-handle\"\n className={cn(\n \"group relative flex items-center justify-center bg-transparent outline-none after:absolute after:bg-border/70 after:transition-colors hover:after:bg-border focus-visible:after:bg-ring aria-[orientation=horizontal]:h-px aria-[orientation=horizontal]:w-full aria-[orientation=horizontal]:cursor-row-resize aria-[orientation=horizontal]:after:inset-x-0 aria-[orientation=horizontal]:after:top-1/2 aria-[orientation=horizontal]:after:h-px aria-[orientation=horizontal]:after:-translate-y-1/2 aria-[orientation=vertical]:h-full aria-[orientation=vertical]:w-px aria-[orientation=vertical]:cursor-col-resize aria-[orientation=vertical]:after:inset-y-0 aria-[orientation=vertical]:after:left-1/2 aria-[orientation=vertical]:after:w-px aria-[orientation=vertical]:after:-translate-x-1/2\",\n className\n )}\n {...props}\n >\n {withHandle ? (\n <div className=\"z-10 flex items-center justify-center rounded-full bg-border/85 opacity-0 transition-[background-color,opacity] group-hover:bg-border group-hover:opacity-100 group-focus-visible:bg-border group-focus-visible:opacity-100 group-aria-[orientation=horizontal]:h-[3px] group-aria-[orientation=horizontal]:w-10 group-aria-[orientation=vertical]:h-10 group-aria-[orientation=vertical]:w-[3px]\" />\n ) : null}\n </ResizablePrimitive.Separator>\n );\n}\n\nexport { ResizableHandle, ResizablePanel, ResizablePanelGroup };\n","import * as React from \"react\";\nimport { ScrollArea as ScrollAreaPrimitive } from \"radix-ui\";\n\nimport { cn } from \"#lib/utils\";\n\ntype ScrollAreaProps = React.ComponentProps<typeof ScrollAreaPrimitive.Root> & {\n viewportClassName?: string;\n viewportContentStyle?: React.CSSProperties;\n viewportProps?: Omit<\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Viewport>,\n \"children\" | \"className\" | \"ref\"\n >;\n viewportRef?: React.Ref<HTMLDivElement>;\n viewportTestId?: string;\n};\n\nfunction ScrollArea({\n className,\n children,\n viewportClassName,\n viewportContentStyle,\n viewportProps,\n viewportRef,\n viewportTestId,\n ...props\n}: ScrollAreaProps) {\n return (\n <ScrollAreaPrimitive.Root\n data-slot=\"scroll-area\"\n className={cn(\"group/scroll-area relative\", className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport\n {...viewportProps}\n data-slot=\"scroll-area-viewport\"\n data-testid={viewportTestId}\n ref={viewportRef}\n className={cn(\n \"size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1\",\n viewportClassName\n )}\n >\n {viewportContentStyle ? (\n <ScrollAreaViewportContentStyleBridge style={viewportContentStyle} />\n ) : null}\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n );\n}\n\nfunction ScrollAreaViewportContentStyleBridge({\n style\n}: {\n style: React.CSSProperties;\n}) {\n const markerRef = React.useRef<HTMLSpanElement | null>(null);\n\n React.useLayoutEffect(() => {\n const contentElement = markerRef.current?.parentElement;\n if (!contentElement) {\n return;\n }\n\n const previousValues = new Map<\n string,\n { value: string; priority: string }\n >();\n\n for (const [property, value] of Object.entries(style) as Array<\n [string, React.CSSProperties[keyof React.CSSProperties]]\n >) {\n const cssProperty = toCssPropertyName(property);\n previousValues.set(cssProperty, {\n value: contentElement.style.getPropertyValue(cssProperty),\n priority: contentElement.style.getPropertyPriority(cssProperty)\n });\n\n if (value === undefined || value === null) {\n contentElement.style.removeProperty(cssProperty);\n } else {\n contentElement.style.setProperty(cssProperty, String(value));\n }\n }\n\n return () => {\n for (const [cssProperty, previous] of previousValues) {\n if (previous.value) {\n contentElement.style.setProperty(\n cssProperty,\n previous.value,\n previous.priority\n );\n } else {\n contentElement.style.removeProperty(cssProperty);\n }\n }\n };\n }, [style]);\n\n return (\n <span ref={markerRef} data-slot=\"scroll-area-content-style-bridge\" hidden />\n );\n}\n\nfunction toCssPropertyName(property: string): string {\n return property.startsWith(\"--\")\n ? property\n : property.replace(/[A-Z]/g, (letter) => `-${letter.toLowerCase()}`);\n}\n\nfunction ScrollBar({\n className,\n orientation = \"vertical\",\n ...props\n}: React.ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>) {\n return (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n data-slot=\"scroll-area-scrollbar\"\n data-orientation={orientation}\n orientation={orientation}\n className={cn(\n \"group/scrollbar absolute z-10 flex touch-none p-[2px] opacity-0 transition-opacity duration-150 select-none group-hover/scroll-area:opacity-100 group-focus-within/scroll-area:opacity-100 data-[orientation=horizontal]:right-0 data-[orientation=horizontal]:bottom-0 data-[orientation=horizontal]:left-0 data-[orientation=horizontal]:h-2 data-[orientation=horizontal]:flex-col data-[orientation=vertical]:top-0 data-[orientation=vertical]:right-0 data-[orientation=vertical]:bottom-0 data-[orientation=vertical]:w-2\",\n className\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb\n data-slot=\"scroll-area-thumb\"\n className=\"relative flex-1 rounded-full bg-[var(--transparency-block)] transition-colors duration-150 group-hover/scrollbar:bg-[var(--transparency-hover)]\"\n />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n );\n}\n\nexport { ScrollArea, ScrollBar };\n","import * as React from \"react\";\nimport { Select as SelectPrimitive } from \"radix-ui\";\n\nimport { CheckIcon, ChevronDownIcon, ChevronUpIcon } from \"#icons/system-icons\";\nimport { cn } from \"#lib/utils\";\nimport { buttonVariants } from \"../button\";\nimport {\n MenuSurface,\n menuItemIndicatorClassName,\n menuItemWithIndicatorClassName\n} from \"../menu-surface\";\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(\"flex flex-col gap-0.5 scroll-my-1 p-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 variant = \"default\",\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Trigger> & {\n size?: \"sm\" | \"default\" | \"dialog\";\n variant?: \"button\" | \"default\";\n}) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n data-size={size}\n data-variant={variant}\n className={cn(\n variant === \"button\"\n ? buttonVariants({ variant: \"default\", size })\n : \"flex w-fit cursor-pointer items-center justify-between gap-1.5 rounded-lg border border-transparent bg-[var(--transparency-block)] py-2 pr-2 pl-2.5 text-sm text-[var(--text-primary)] whitespace-nowrap transition-colors outline-none select-none hover:bg-[var(--transparency-hover)] focus:bg-[var(--transparency-hover)] focus-visible:border-transparent focus-visible:bg-[var(--transparency-hover)] focus-visible:ring-0 disabled:cursor-not-allowed disabled:bg-[var(--transparency-block)] disabled:text-[var(--text-disabled)] disabled:opacity-100 aria-invalid:border-[var(--state-danger)] aria-invalid:bg-[var(--transparency-block)] aria-invalid:hover:bg-[var(--transparency-hover)] aria-invalid:focus:bg-[var(--transparency-hover)] aria-invalid:focus-visible:bg-[var(--transparency-hover)] aria-invalid:ring-0 aria-invalid:shadow-none data-placeholder:text-[var(--text-placeholder)] data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n \"[&[data-state=open]>svg]:rotate-180 [&>svg]:transition-transform [&>svg]:duration-200\",\n className\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDownIcon\n className={cn(\n \"pointer-events-none size-4\",\n variant === \"button\"\n ? \"text-current\"\n : \"text-[var(--text-secondary)]\"\n )}\n />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n );\n}\n\nfunction SelectContent({\n className,\n children,\n position = \"popper\",\n align = \"center\",\n style,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Content>) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n asChild\n data-slot=\"select-content\"\n data-align-trigger={position === \"item-aligned\"}\n position={position}\n align={align}\n {...props}\n >\n <MenuSurface\n data-slot=\"select-content\"\n className={cn(\n \"relative z-50 max-h-(--radix-select-content-available-height) min-w-36 origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto\",\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 style={{ zIndex: \"var(--z-popover)\", ...style }}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n data-position={position}\n className={cn(\n \"flex flex-col gap-0.5 data-[position=popper]:w-full data-[position=popper]:[min-width:var(--nextop-select-content-min-width,var(--radix-select-trigger-width))]\"\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </MenuSurface>\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(\n \"px-1.5 py-1 text-xs font-normal text-[var(--text-secondary)]\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SelectSplitLayout({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"select-split-layout\"\n className={cn(\n \"grid h-full min-h-0 grid-cols-[minmax(0,1fr)_1px_minmax(104px,132px)] gap-1 overflow-hidden\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SelectSplitColumn({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"select-split-column\"\n className={cn(\"flex h-full min-h-0 min-w-0 flex-col\", className)}\n {...props}\n />\n );\n}\n\nfunction SelectSplitColumnLabel({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"select-split-column-label\"\n className={cn(\n \"shrink-0 px-2 pt-1 pb-2 text-xs font-normal leading-[18px] text-[var(--text-secondary)]\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SelectSplitColumnItems({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"select-split-column-items\"\n className={cn(\n \"flex min-h-0 flex-1 flex-col gap-0.5 overflow-y-auto overscroll-contain\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SelectSplitDivider({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n aria-hidden=\"true\"\n data-slot=\"select-split-divider\"\n className={cn(\n \"self-stretch bg-[var(--border-2,var(--border-1))]\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SelectItem({\n className,\n children,\n forceSelectedIndicator = false,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Item> & {\n forceSelectedIndicator?: boolean;\n}) {\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(\"w-full\", menuItemWithIndicatorClassName, className)}\n {...props}\n >\n <span className={menuItemIndicatorClassName}>\n {forceSelectedIndicator ? (\n <CheckIcon\n className=\"pointer-events-none\"\n data-slot=\"select-item-forced-indicator\"\n />\n ) : (\n <SelectPrimitive.ItemIndicator>\n <CheckIcon className=\"pointer-events-none\" />\n </SelectPrimitive.ItemIndicator>\n )}\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(\n \"pointer-events-none mx-2 my-0.5 h-px bg-[var(--border-1)]\",\n className\n )}\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-pointer items-center justify-center bg-[var(--background-fronted)] py-1 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n <ChevronUpIcon />\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-pointer items-center justify-center bg-[var(--background-fronted)] py-1 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n <ChevronDownIcon />\n </SelectPrimitive.ScrollDownButton>\n );\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectSplitColumn,\n SelectSplitColumnItems,\n SelectSplitColumnLabel,\n SelectSplitDivider,\n SelectSplitLayout,\n SelectTrigger,\n SelectValue\n};\n","import * 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 type { JSX, ReactNode } from \"react\";\n\nimport { cn } from \"#lib/utils\";\n\nexport interface SectionTabItem<TValue extends string> {\n value: TValue;\n label: ReactNode;\n count?: ReactNode;\n testId?: string;\n}\n\ninterface SectionTabsProps<TValue extends string> {\n tabs: ReadonlyArray<SectionTabItem<TValue>>;\n value: TValue;\n onValueChange: (value: TValue) => void;\n ariaLabel?: string;\n className?: string;\n testId?: string;\n}\n\nfunction SectionTabs<TValue extends string>({\n tabs,\n value,\n onValueChange,\n ariaLabel,\n className,\n testId\n}: SectionTabsProps<TValue>): JSX.Element {\n return (\n <div\n aria-label={ariaLabel}\n className={cn(\"flex min-w-0 items-center gap-5\", className)}\n data-slot=\"section-tabs\"\n data-testid={testId}\n role=\"tablist\"\n >\n {tabs.map((tab) => {\n const isActive = value === tab.value;\n return (\n <button\n key={tab.value}\n aria-selected={isActive}\n className={cn(\n \"relative inline-flex h-5 shrink-0 items-center gap-1.5 whitespace-nowrap border-0 bg-transparent p-0 text-[15px] font-semibold leading-5 tracking-[0] text-[var(--text-secondary)] transition-colors duration-150 hover:text-[var(--text-primary)] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--border-focus)]\",\n isActive && \"text-[var(--text-primary)]\"\n )}\n data-active={isActive ? \"true\" : \"false\"}\n data-slot=\"section-tabs-tab\"\n data-testid={tab.testId}\n role=\"tab\"\n type=\"button\"\n onClick={() => onValueChange(tab.value)}\n >\n <span className=\"min-w-0 truncate\">{tab.label}</span>\n {tab.count !== undefined ? (\n <span className=\"text-[15px] font-semibold leading-5 text-[inherit]\">\n {tab.count}\n </span>\n ) : null}\n </button>\n );\n })}\n </div>\n );\n}\n\nexport { SectionTabs };\n","import * as React from \"react\";\n\nimport { cn } from \"#lib/utils\";\n\nfunction ShortcutBadge({ className, ...props }: React.ComponentProps<\"kbd\">) {\n return (\n <kbd\n data-slot=\"shortcut-badge\"\n className={cn(\n \"inline-flex h-5 min-w-0 max-w-full shrink-0 items-center justify-center overflow-hidden rounded-[4px] bg-[color-mix(in_srgb,var(--transparency-block)_72%,transparent)] px-1.5 py-1 font-[inherit] text-[11px] leading-none font-semibold whitespace-nowrap text-[var(--text-tertiary)] not-italic [font-variant:normal] [text-overflow:ellipsis]\",\n className\n )}\n {...props}\n />\n );\n}\n\nexport { ShortcutBadge };\n","import type * as React from \"react\";\nimport {\n Toaster as SonnerToaster,\n toast,\n type ExternalToast,\n type ToasterProps\n} from \"sonner\";\n\nimport {\n FailedFilledIcon,\n LoadingIcon,\n SuccessFilledIcon,\n WarningFilledIcon,\n WarningLinedIcon\n} from \"#icons/system-icons\";\n\nfunction Toaster({ toastOptions, style, ...props }: ToasterProps) {\n return (\n <SonnerToaster\n closeButton\n expand={false}\n gap={8}\n position=\"top-right\"\n visibleToasts={4}\n icons={{\n error: <FailedFilledIcon className=\"size-4\" />,\n info: <WarningLinedIcon className=\"size-4\" />,\n loading: <LoadingIcon className=\"size-4 animate-spin\" />,\n success: <SuccessFilledIcon className=\"size-4\" />,\n warning: <WarningFilledIcon className=\"size-4\" />\n }}\n style={\n {\n \"--normal-bg\": \"var(--background-fronted)\",\n \"--normal-border\": \"var(--line-2)\",\n \"--normal-text\": \"var(--text-primary)\",\n \"--border-radius\": \"8px\",\n zIndex: \"var(--z-toast)\",\n ...style\n } as React.CSSProperties\n }\n toastOptions={{\n ...toastOptions,\n classNames: {\n toast:\n \"group pointer-events-auto min-h-14 rounded-[8px] border border-[var(--line-2)] bg-[var(--background-fronted)] px-3.5 py-3 text-[var(--text-primary)] shadow-[0_14px_40px_var(--shadow-elevated)]\",\n title: \"text-sm font-semibold leading-5 text-[var(--text-primary)]\",\n description: \"mt-0.5 text-xs leading-5 text-[var(--text-secondary)]\",\n actionButton:\n \"h-7 rounded-[6px] bg-[var(--text-primary)] px-2.5 text-xs font-normal text-[var(--text-inverted)] transition-colors hover:bg-[var(--text-primary-hover)]\",\n cancelButton:\n \"h-7 rounded-[6px] bg-[var(--transparency-block)] px-2.5 text-xs font-normal text-[var(--text-primary)] transition-colors hover:bg-[var(--transparency-hover)]\",\n closeButton:\n \"border-[var(--line-2)] bg-[var(--background-fronted)] text-[var(--text-secondary)] hover:bg-[var(--transparency-hover)] hover:text-[var(--text-primary)]\",\n icon: \"text-[var(--accent)]\",\n ...toastOptions?.classNames\n }\n }}\n {...props}\n />\n );\n}\n\nexport { Toaster, toast };\nexport type { ExternalToast, ToasterProps };\n","import type { CSSProperties, JSX } from \"react\";\n\nimport { LoadingIcon } from \"#icons/system-icons\";\nimport { cn } from \"#lib/utils\";\n\nexport interface SpinnerProps {\n className?: string;\n size?: number;\n strokeWidth?: number;\n style?: CSSProperties;\n testId?: string;\n trackColor?: string;\n}\n\nfunction Spinner({\n className,\n size = 16,\n strokeWidth = 2,\n style,\n testId,\n trackColor\n}: SpinnerProps): JSX.Element {\n return (\n <LoadingIcon\n data-slot=\"spinner\"\n data-testid={testId}\n aria-hidden=\"true\"\n className={cn(\n \"inline-block shrink-0 animate-spin text-primary\",\n className\n )}\n size={size}\n style={style}\n strokeWidth={strokeWidth}\n trackColor={trackColor}\n />\n );\n}\n\nexport { Spinner };\n","import { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"#lib/utils\";\n\nconst statusDotVariants = cva(\"inline-flex shrink-0 rounded-full\", {\n variants: {\n tone: {\n neutral: \"bg-muted-foreground/70\",\n green: \"bg-emerald-500\",\n blue: \"bg-sky-500\",\n amber: \"bg-amber-500\",\n red: \"bg-destructive\"\n },\n size: {\n xs: \"size-1.5\",\n sm: \"size-2\",\n md: \"size-2.5\"\n },\n pulse: {\n true: \"animate-pulse\",\n false: \"\"\n }\n },\n defaultVariants: {\n tone: \"neutral\",\n size: \"sm\",\n pulse: false\n }\n});\n\ntype StatusDotProps = VariantProps<typeof statusDotVariants> & {\n ariaLabel?: string;\n title?: string;\n className?: string;\n};\n\nfunction StatusDot({\n tone = \"neutral\",\n size = \"sm\",\n pulse = false,\n ariaLabel,\n title,\n className\n}: StatusDotProps): React.JSX.Element {\n return (\n <span\n aria-hidden={ariaLabel ? undefined : true}\n aria-label={ariaLabel}\n className={cn(statusDotVariants({ tone, size, pulse }), className)}\n data-pulse={pulse ? \"true\" : undefined}\n data-size={size}\n data-slot=\"status-dot\"\n data-tone={tone}\n role={ariaLabel ? \"img\" : undefined}\n title={title}\n />\n );\n}\n\nexport { StatusDot, statusDotVariants };\n","import * 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-[background-color,border-color,box-shadow] outline-none focus-visible:border-[var(--border-focus)] focus-visible:ring-2 focus-visible:ring-[color-mix(in_srgb,var(--border-focus)_30%,transparent)] aria-invalid:border-[var(--state-danger)] aria-invalid:ring-2 aria-invalid:ring-[color-mix(in_srgb,var(--state-danger)_20%,transparent)] data-[size=default]:h-[18px] data-[size=default]:w-[32px] data-[size=sm]:h-[14px] data-[size=sm]:w-[24px] data-[state=checked]:bg-[var(--accent)] data-[state=unchecked]:bg-[var(--text-disabled)] data-disabled:cursor-not-allowed data-disabled:opacity-100\",\n className\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className=\"pointer-events-none block rounded-full bg-[var(--white-stationary)] ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 group-data-[size=default]/switch:data-[state=checked]:translate-x-[14px] group-data-[size=sm]/switch:data-[state=checked]:translate-x-[10px] group-data-[size=default]/switch:data-[state=unchecked]:translate-x-0 group-data-[size=sm]/switch:data-[state=unchecked]:translate-x-0\"\n />\n </SwitchPrimitive.Root>\n );\n}\n\nexport { Switch };\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-20 w-full rounded-[6px] border border-transparent bg-[var(--transparency-block)] px-3 py-3 text-sm font-normal leading-[1.3] text-[var(--text-primary)] transition-[background-color,border-color,color] outline-none shadow-none placeholder:text-[var(--text-placeholder)] hover:bg-[var(--transparency-hover)] focus:bg-[var(--transparency-hover)] focus-visible:border-transparent focus-visible:bg-[var(--transparency-hover)] focus-visible:ring-0 disabled:cursor-not-allowed disabled:bg-[var(--transparency-block)] disabled:text-[var(--text-disabled)] disabled:opacity-100 aria-invalid:border-[var(--state-danger)] aria-invalid:bg-[var(--transparency-block)] aria-invalid:hover:bg-[var(--transparency-hover)] aria-invalid:focus:bg-[var(--transparency-hover)] aria-invalid:focus-visible:bg-[var(--transparency-hover)] aria-invalid:ring-0 aria-invalid:shadow-none\",\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Textarea };\n","import * as React from \"react\";\nimport { Toast as ToastPrimitive } from \"radix-ui\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport {\n CloseIcon,\n FailedFilledIcon,\n SuccessFilledIcon\n} from \"#icons/system-icons\";\nimport { Spinner } from \"../spinner\";\nimport { cn } from \"#lib/utils\";\n\nconst toastDefaultDurationMs = 3000;\n\nfunction ToastProvider({\n duration = toastDefaultDurationMs,\n ...props\n}: React.ComponentProps<typeof ToastPrimitive.Provider>) {\n return <ToastPrimitive.Provider duration={duration} {...props} />;\n}\n\nconst ToastVisualContext = React.createContext<{\n busy: boolean;\n variant: VariantProps<typeof toastVariants>[\"variant\"];\n} | null>(null);\n\ntype ToastStatusIconVariant = \"destructive\" | \"success\";\n\nconst toastStatusIconByVariant = {\n destructive: FailedFilledIcon,\n success: SuccessFilledIcon\n} satisfies Record<\n ToastStatusIconVariant,\n React.ComponentType<{ className?: string }>\n>;\n\nfunction hasToastStatusIcon(\n variant: VariantProps<typeof toastVariants>[\"variant\"]\n): variant is ToastStatusIconVariant {\n return variant === \"destructive\" || variant === \"success\";\n}\n\nfunction stripToastTrailingSentencePunctuation(value: string): string {\n let nextValue = value.replace(/\\s+$/u, \"\");\n while (nextValue.length > 0) {\n const last = nextValue.at(-1);\n if (last === \".\" || last === \"。\" || last === \".\") {\n nextValue = nextValue.slice(0, -1).replace(/\\s+$/u, \"\");\n } else {\n break;\n }\n }\n return nextValue;\n}\n\nfunction formatToastText(children: React.ReactNode): React.ReactNode {\n if (typeof children === \"string\") {\n return stripToastTrailingSentencePunctuation(children);\n }\n const flatChildren = React.Children.toArray(children);\n if (flatChildren.length === 1 && typeof flatChildren[0] === \"string\") {\n return stripToastTrailingSentencePunctuation(flatChildren[0]);\n }\n return children;\n}\n\nconst toastVariants = cva(\n \"group pointer-events-auto relative flex min-h-8 min-w-0 max-w-[min(92vw,420px)] items-center justify-center rounded-[8px] px-3 py-1.5 text-center text-sm font-normal leading-normal shadow-none transition-all data-closed:fade-out-80 data-closed:slide-out-to-top-full data-open:slide-in-from-top-full data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none\",\n {\n variants: {\n variant: {\n default:\n \"border border-[var(--toast-neutral-border)] bg-[var(--toast-neutral-bg)] text-[var(--toast-neutral-fg)]\",\n destructive:\n \"border-0 bg-[var(--state-danger)] text-[var(--white-stationary)]\",\n success:\n \"border-0 bg-[var(--state-success)] text-[var(--text-inverted)]\"\n }\n },\n defaultVariants: {\n variant: \"default\"\n }\n }\n);\n\nfunction ToastRoot({\n className,\n variant,\n busy = false,\n anchor = \"viewport\",\n nodeInsetTopPx = 16,\n children,\n style,\n ...props\n}: React.ComponentProps<typeof ToastPrimitive.Root> &\n VariantProps<typeof toastVariants> & {\n busy?: boolean;\n anchor?: \"viewport\" | \"node\";\n nodeInsetTopPx?: number;\n }) {\n const isDestructive = variant === \"destructive\";\n return (\n <ToastPrimitive.Root\n aria-busy={busy}\n aria-live={isDestructive ? \"assertive\" : \"polite\"}\n data-slot=\"toast\"\n className={cn(\n toastVariants({ variant }),\n anchor === \"node\" && \"absolute left-1/2 -translate-x-1/2\",\n className\n )}\n role={isDestructive ? \"alert\" : \"status\"}\n style={{\n ...(anchor === \"node\" ? { top: `${nodeInsetTopPx}px` } : {}),\n ...style\n }}\n {...props}\n >\n <ToastVisualContext.Provider value={{ busy, variant }}>\n <span className=\"flex min-w-0 max-w-full flex-col items-center justify-center whitespace-normal break-words text-center\">\n {children}\n </span>\n </ToastVisualContext.Provider>\n </ToastPrimitive.Root>\n );\n}\n\nfunction ToastTitle({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof ToastPrimitive.Title>) {\n const toastVisual = React.useContext(ToastVisualContext);\n const StatusIcon =\n toastVisual?.variant && hasToastStatusIcon(toastVisual.variant)\n ? toastStatusIconByVariant[toastVisual.variant]\n : null;\n\n return (\n <ToastPrimitive.Title\n data-slot=\"toast-title\"\n className={cn(\n \"inline-flex max-w-full items-center justify-center gap-[6px] text-center text-sm font-normal leading-normal\",\n className\n )}\n {...props}\n >\n {toastVisual?.busy ? (\n <Spinner\n className=\"shrink-0 text-current\"\n size={16}\n strokeWidth={2}\n trackColor=\"color-mix(in srgb, currentColor 28%, transparent)\"\n />\n ) : StatusIcon ? (\n <StatusIcon className=\"size-4 shrink-0 text-current\" />\n ) : null}\n <span className=\"min-w-0 break-words\">{formatToastText(children)}</span>\n </ToastPrimitive.Title>\n );\n}\n\nfunction ToastDescription({\n className,\n ...props\n}: React.ComponentProps<typeof ToastPrimitive.Description>) {\n return (\n <ToastPrimitive.Description\n data-slot=\"toast-description\"\n className={cn(\n \"text-xs font-normal leading-[1.3] text-current opacity-75\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction ToastClose({\n className,\n ...props\n}: React.ComponentProps<typeof ToastPrimitive.Close>) {\n return (\n <ToastPrimitive.Close\n data-slot=\"toast-close\"\n className={cn(\n \"absolute right-1.5 top-1.5 inline-flex size-5 items-center justify-center rounded-[4px] text-current opacity-65 transition-[background-color,opacity] hover:bg-[color-mix(in_srgb,currentColor_10%,transparent)] hover:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[color-mix(in_srgb,currentColor_28%,transparent)]\",\n className\n )}\n {...props}\n >\n <CloseIcon className=\"size-4\" />\n </ToastPrimitive.Close>\n );\n}\n\nfunction ToastViewport({\n className,\n style,\n ...props\n}: React.ComponentProps<typeof ToastPrimitive.Viewport>) {\n return (\n <ToastPrimitive.Viewport\n data-slot=\"toast-viewport\"\n className={cn(\n \"fixed left-1/2 top-3 flex max-h-screen w-auto -translate-x-1/2 flex-col items-center gap-2 p-0\",\n className\n )}\n style={{ zIndex: \"var(--z-toast)\", ...style }}\n {...props}\n />\n );\n}\n\nexport {\n ToastProvider,\n ToastRoot,\n ToastTitle,\n ToastDescription,\n ToastClose,\n ToastViewport,\n toastVariants\n};\n","import * as React from \"react\";\nimport { Tooltip as TooltipPrimitive } from \"radix-ui\";\n\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 TooltipPortal({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Portal>) {\n return <TooltipPrimitive.Portal data-slot=\"tooltip-portal\" {...props} />;\n}\n\nfunction TooltipContent({\n className,\n sideOffset = 8,\n children,\n style,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Content>) {\n return (\n <TooltipPortal>\n <TooltipPrimitive.Content\n data-slot=\"tooltip-content\"\n sideOffset={sideOffset}\n className={cn(\n \"z-50 inline-flex w-fit max-w-xs origin-(--radix-tooltip-content-transform-origin) items-center gap-2 rounded-md border border-[var(--border-1)] bg-[var(--background-fronted)] px-2 py-1 text-sm leading-[1.3] text-popover-foreground shadow-soft outline-none 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=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\",\n className\n )}\n style={{ zIndex: \"var(--z-tooltip)\", ...style }}\n {...props}\n >\n {children}\n </TooltipPrimitive.Content>\n </TooltipPortal>\n );\n}\n\nexport {\n Tooltip,\n TooltipContent,\n TooltipPortal,\n TooltipProvider,\n TooltipTrigger\n};\n","import type { JSX, ReactNode } from \"react\";\nimport { useEffect, useLayoutEffect, useRef, useState } from \"react\";\n\nimport { ArrowLeftIcon, ArrowRightIcon } from \"#icons/system-icons\";\nimport { cn } from \"#lib/utils\";\n\nexport interface UnderlineTabItem<TValue extends string> {\n value: TValue;\n label: ReactNode;\n count?: ReactNode;\n testId?: string;\n}\n\ninterface UnderlineTabsProps<TValue extends string> {\n tabs: ReadonlyArray<UnderlineTabItem<TValue>>;\n value: TValue;\n onValueChange: (value: TValue) => void;\n ariaLabel?: string;\n className?: string;\n testId?: string;\n viewportTestId?: string;\n scrollLeftLabel?: string;\n scrollRightLabel?: string;\n scrollLeftTestId?: string;\n scrollRightTestId?: string;\n preventMouseDownDefault?: boolean;\n}\n\nfunction UnderlineTabs<TValue extends string>({\n tabs,\n value,\n onValueChange,\n ariaLabel,\n className,\n testId,\n viewportTestId,\n scrollLeftLabel = \"Scroll left\",\n scrollRightLabel = \"Scroll right\",\n scrollLeftTestId,\n scrollRightTestId,\n preventMouseDownDefault = false\n}: UnderlineTabsProps<TValue>): JSX.Element {\n const viewportRef = useRef<HTMLDivElement>(null);\n const rowRef = useRef<HTMLDivElement>(null);\n const buttonRefs = useRef<Partial<Record<TValue, HTMLButtonElement>>>({});\n const [indicatorStyle, setIndicatorStyle] = useState({ left: 0, width: 0 });\n const [overflow, setOverflow] = useState({\n canScrollLeft: false,\n canScrollRight: false\n });\n\n useLayoutEffect(() => {\n const row = rowRef.current;\n const button = buttonRefs.current[value];\n if (!row || !button) {\n setIndicatorStyle((current) =>\n current.left === 0 && current.width === 0\n ? current\n : { left: 0, width: 0 }\n );\n return;\n }\n\n const nextStyle = {\n left: button.offsetLeft,\n width: button.offsetWidth\n };\n\n setIndicatorStyle((current) =>\n current.left === nextStyle.left && current.width === nextStyle.width\n ? current\n : nextStyle\n );\n }, [tabs, value]);\n\n useEffect(() => {\n const viewport = viewportRef.current;\n if (!viewport) {\n return;\n }\n\n const syncOverflow = () => {\n const maxScrollLeft = viewport.scrollWidth - viewport.clientWidth;\n setOverflow((current) => {\n const next = {\n canScrollLeft: viewport.scrollLeft > 1,\n canScrollRight: viewport.scrollLeft < maxScrollLeft - 1\n };\n\n return current.canScrollLeft === next.canScrollLeft &&\n current.canScrollRight === next.canScrollRight\n ? current\n : next;\n });\n };\n\n syncOverflow();\n viewport.addEventListener(\"scroll\", syncOverflow, { passive: true });\n\n let resizeObserver: ResizeObserver | null = null;\n if (typeof ResizeObserver !== \"undefined\") {\n resizeObserver = new ResizeObserver(syncOverflow);\n resizeObserver.observe(viewport);\n if (rowRef.current) {\n resizeObserver.observe(rowRef.current);\n }\n }\n\n window.addEventListener(\"resize\", syncOverflow);\n\n return () => {\n viewport.removeEventListener(\"scroll\", syncOverflow);\n window.removeEventListener(\"resize\", syncOverflow);\n resizeObserver?.disconnect();\n };\n }, [tabs]);\n\n const scrollTabs = (direction: \"left\" | \"right\") => {\n const viewport = viewportRef.current;\n if (!viewport) {\n return;\n }\n\n const delta = Math.max(120, viewport.clientWidth * 0.72);\n viewport.scrollBy({\n left: direction === \"left\" ? -delta : delta,\n behavior: \"smooth\"\n });\n };\n\n return (\n <div\n aria-label={ariaLabel}\n className={cn(\n \"group relative box-border h-[33px] min-w-0 border-b border-[var(--border-1)] px-4\",\n className\n )}\n data-slot=\"underline-tabs\"\n data-testid={testId}\n role=\"tablist\"\n >\n <div\n ref={viewportRef}\n className={cn(\n \"h-8 overflow-x-auto overflow-y-hidden [scrollbar-gutter:stable] [scrollbar-width:none] [&::-webkit-scrollbar]:hidden\",\n overflow.canScrollLeft &&\n !overflow.canScrollRight &&\n \"[mask-image:linear-gradient(90deg,transparent_0,black_28px,black_100%)] [-webkit-mask-image:linear-gradient(90deg,transparent_0,black_28px,black_100%)]\",\n !overflow.canScrollLeft &&\n overflow.canScrollRight &&\n \"[mask-image:linear-gradient(90deg,black_0,black_calc(100%_-_28px),transparent_100%)] [-webkit-mask-image:linear-gradient(90deg,black_0,black_calc(100%_-_28px),transparent_100%)]\",\n overflow.canScrollLeft &&\n overflow.canScrollRight &&\n \"[mask-image:linear-gradient(90deg,transparent_0,black_28px,black_calc(100%_-_28px),transparent_100%)] [-webkit-mask-image:linear-gradient(90deg,transparent_0,black_28px,black_calc(100%_-_28px),transparent_100%)]\"\n )}\n data-can-scroll-left={overflow.canScrollLeft ? \"true\" : \"false\"}\n data-can-scroll-right={overflow.canScrollRight ? \"true\" : \"false\"}\n data-slot=\"underline-tabs-viewport\"\n data-testid={viewportTestId}\n >\n <div\n ref={rowRef}\n className=\"relative flex h-8 w-max min-w-full items-center gap-[14px] pb-2\"\n >\n {tabs.map((tab) => {\n const isActive = value === tab.value;\n return (\n <button\n key={tab.value}\n ref={(element) => {\n if (element) {\n buttonRefs.current[tab.value] = element;\n } else {\n delete buttonRefs.current[tab.value];\n }\n }}\n aria-selected={isActive}\n className={cn(\n \"relative inline-flex h-6 shrink-0 items-center gap-1.5 whitespace-nowrap border-0 bg-transparent p-0 text-[13px] font-semibold leading-6 text-[var(--text-secondary)] transition-colors hover:text-[var(--text-primary)] focus-visible:outline-none\",\n isActive && \"text-[var(--accent)]\"\n )}\n data-active={isActive ? \"true\" : \"false\"}\n data-slot=\"underline-tabs-tab\"\n data-testid={tab.testId}\n role=\"tab\"\n type=\"button\"\n onClick={() => onValueChange(tab.value)}\n onMouseDown={\n preventMouseDownDefault\n ? (event) => event.preventDefault()\n : undefined\n }\n >\n <span>{tab.label}</span>\n {tab.count !== undefined ? (\n <span className=\"text-xs font-semibold leading-6 text-[inherit]\">\n {tab.count}\n </span>\n ) : null}\n </button>\n );\n })}\n <div\n aria-hidden\n className=\"absolute bottom-0 left-0 z-[1] h-0.5 rounded-[1px] bg-[var(--accent)] transition-[transform,width] duration-[220ms] ease-[cubic-bezier(0.4,0,0.2,1)] motion-reduce:transition-none\"\n data-slot=\"underline-tabs-indicator\"\n style={{\n transform: `translateX(${indicatorStyle.left}px)`,\n width: indicatorStyle.width\n }}\n />\n </div>\n </div>\n <button\n aria-label={scrollLeftLabel}\n className=\"pointer-events-none absolute left-4 top-3 z-[3] inline-flex size-6 translate-y-[-50%] scale-[0.94] items-center justify-center rounded-full border-0 bg-[var(--background-fronted)] p-0 text-[var(--text-secondary)] opacity-0 shadow-[0_4px_16px_rgba(15,23,42,0.12)] transition-[opacity,transform,background-color,color] duration-[160ms] ease-in-out hover:bg-[var(--background-fronted)] hover:text-[var(--text-primary)] focus-visible:bg-[var(--background-fronted)] focus-visible:text-[var(--text-primary)] group-hover:data-[visible=true]:pointer-events-auto group-hover:data-[visible=true]:scale-100 group-hover:data-[visible=true]:opacity-100 group-focus-within:data-[visible=true]:pointer-events-auto group-focus-within:data-[visible=true]:scale-100 group-focus-within:data-[visible=true]:opacity-100 disabled:pointer-events-none\"\n data-slot=\"underline-tabs-scroll-left\"\n data-testid={scrollLeftTestId}\n data-visible={overflow.canScrollLeft ? \"true\" : \"false\"}\n disabled={!overflow.canScrollLeft}\n type=\"button\"\n onClick={() => scrollTabs(\"left\")}\n >\n <ArrowLeftIcon size={16} />\n </button>\n <button\n aria-label={scrollRightLabel}\n className=\"pointer-events-none absolute right-4 top-3 z-[3] inline-flex size-6 translate-y-[-50%] scale-[0.94] items-center justify-center rounded-full border-0 bg-[var(--background-fronted)] p-0 text-[var(--text-secondary)] opacity-0 shadow-[0_4px_16px_rgba(15,23,42,0.12)] transition-[opacity,transform,background-color,color] duration-[160ms] ease-in-out hover:bg-[var(--background-fronted)] hover:text-[var(--text-primary)] focus-visible:bg-[var(--background-fronted)] focus-visible:text-[var(--text-primary)] group-hover:data-[visible=true]:pointer-events-auto group-hover:data-[visible=true]:scale-100 group-hover:data-[visible=true]:opacity-100 group-focus-within:data-[visible=true]:pointer-events-auto group-focus-within:data-[visible=true]:scale-100 group-focus-within:data-[visible=true]:opacity-100 disabled:pointer-events-none\"\n data-slot=\"underline-tabs-scroll-right\"\n data-testid={scrollRightTestId}\n data-visible={overflow.canScrollRight ? \"true\" : \"false\"}\n disabled={!overflow.canScrollRight}\n type=\"button\"\n onClick={() => scrollTabs(\"right\")}\n >\n <ArrowRightIcon size={16} />\n </button>\n </div>\n );\n}\n\nexport { UnderlineTabs };\n","import * as React from \"react\";\nimport { createPortal } from \"react-dom\";\n\nimport { MenuSurface } from \"../menu-surface\";\n\nexport interface MenuSize {\n width: number;\n height: number;\n}\n\nexport interface MenuPoint {\n x: number;\n y: number;\n}\n\nexport type MenuPointAlignment = \"start\" | \"end\" | \"auto\";\n\ninterface AbsoluteViewportMenuPlacement {\n type: \"absolute\";\n left: number;\n top: number;\n}\n\ninterface PointViewportMenuPlacement {\n type: \"point\";\n point: MenuPoint;\n alignX?: MenuPointAlignment;\n alignY?: MenuPointAlignment;\n padding?: number;\n estimatedSize?: MenuSize;\n}\n\nexport type ViewportMenuPlacement =\n | AbsoluteViewportMenuPlacement\n | PointViewportMenuPlacement;\n\nexport interface ViewportMenuSurfaceProps extends Omit<\n React.HTMLAttributes<HTMLDivElement>,\n \"children\"\n> {\n open: boolean;\n placement: ViewportMenuPlacement;\n children: React.ReactNode;\n onDismiss?: () => void;\n dismissOnPointerDownOutside?: boolean;\n dismissOnEscape?: boolean;\n dismissOnScroll?: boolean;\n dismissIgnoreRefs?: Array<React.RefObject<HTMLElement | null>>;\n stopEventPropagation?: boolean;\n}\n\nconst VIEWPORT_MENU_PADDING = 12;\nconst MENU_BOUNDARY_PADDING = 8;\n\ninterface MenuBoundaryRect {\n left: number;\n top: number;\n width: number;\n height: number;\n}\n\nfunction clampMenuCoordinate(\n origin: number,\n size: number,\n viewportExtent: number,\n padding: number\n): number {\n return Math.max(\n padding,\n Math.min(origin, Math.max(padding, viewportExtent - padding - size))\n );\n}\n\nfunction resolveAlignedCoordinate(options: {\n origin: number;\n size: number;\n viewportExtent: number;\n padding: number;\n alignment: MenuPointAlignment;\n}): number {\n const { origin, size, viewportExtent, padding, alignment } = options;\n const startCoordinate = origin;\n const endCoordinate = origin - size;\n\n if (alignment === \"start\") {\n return clampMenuCoordinate(startCoordinate, size, viewportExtent, padding);\n }\n\n if (alignment === \"end\") {\n return clampMenuCoordinate(endCoordinate, size, viewportExtent, padding);\n }\n\n const startFits = startCoordinate + size <= viewportExtent - padding;\n const endFits = endCoordinate >= padding;\n\n if (startFits || !endFits) {\n return clampMenuCoordinate(startCoordinate, size, viewportExtent, padding);\n }\n\n return clampMenuCoordinate(endCoordinate, size, viewportExtent, padding);\n}\n\nfunction placeViewportMenuAtPoint(options: {\n point: MenuPoint;\n menuSize: MenuSize;\n viewport: { width: number; height: number };\n padding?: number;\n alignX?: MenuPointAlignment;\n alignY?: MenuPointAlignment;\n}): { left: number; top: number } {\n const padding = options.padding ?? VIEWPORT_MENU_PADDING;\n\n return {\n left: resolveAlignedCoordinate({\n origin: options.point.x,\n size: options.menuSize.width,\n viewportExtent: options.viewport.width,\n padding,\n alignment: options.alignX ?? \"start\"\n }),\n top: resolveAlignedCoordinate({\n origin: options.point.y,\n size: options.menuSize.height,\n viewportExtent: options.viewport.height,\n padding,\n alignment: options.alignY ?? \"start\"\n })\n };\n}\n\nfunction viewportBoundary(): MenuBoundaryRect {\n return {\n left: 0,\n top: 0,\n width: typeof window === \"undefined\" ? 1280 : window.innerWidth,\n height: typeof window === \"undefined\" ? 720 : window.innerHeight\n };\n}\n\nfunction rectToBoundary(rect: DOMRect): MenuBoundaryRect {\n return {\n left: rect.left,\n top: rect.top,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction resolveMenuBoundaryFromPoint(point: {\n x: number;\n y: number;\n}): MenuBoundaryRect {\n if (typeof document === \"undefined\" || !document.elementsFromPoint) {\n return viewportBoundary();\n }\n\n const selector = '[data-slot=\"viewport-menu-boundary\"]';\n for (const element of document.elementsFromPoint(point.x, point.y)) {\n const boundaryElement = element.closest(selector);\n if (boundaryElement) {\n return rectToBoundary(boundaryElement.getBoundingClientRect());\n }\n }\n\n return viewportBoundary();\n}\n\nfunction clampMenuPositionToBoundary(options: {\n left: number;\n top: number;\n width: number;\n height: number;\n boundary: MenuBoundaryRect;\n padding?: number;\n}): { left: number; top: number } {\n const padding = options.padding ?? MENU_BOUNDARY_PADDING;\n const minLeft = options.boundary.left + padding;\n const minTop = options.boundary.top + padding;\n const maxLeft = Math.max(\n minLeft,\n options.boundary.left + options.boundary.width - padding - options.width\n );\n const maxTop = Math.max(\n minTop,\n options.boundary.top + options.boundary.height - padding - options.height\n );\n\n return {\n left: Math.max(minLeft, Math.min(options.left, maxLeft)),\n top: Math.max(minTop, Math.min(options.top, maxTop))\n };\n}\n\nfunction assignRef<T>(ref: React.ForwardedRef<T>, value: T): void {\n if (typeof ref === \"function\") {\n ref(value);\n return;\n }\n\n if (ref) {\n ref.current = value;\n }\n}\n\nfunction callHandler<E extends React.SyntheticEvent>(\n handler: ((event: E) => void) | undefined,\n event: E\n): void {\n handler?.(event);\n}\n\nconst ViewportMenuSurface = React.forwardRef<\n HTMLDivElement,\n ViewportMenuSurfaceProps\n>(function ViewportMenuSurface(\n {\n open,\n placement,\n children,\n onDismiss,\n dismissOnPointerDownOutside = false,\n dismissOnEscape = false,\n dismissOnScroll = false,\n dismissIgnoreRefs = [],\n stopEventPropagation = true,\n style,\n onMouseDown,\n onClick,\n className,\n ...rest\n },\n forwardedRef\n): React.JSX.Element | null {\n const surfaceRef = React.useRef<HTMLDivElement | null>(null);\n const [measuredSize, setMeasuredSize] = React.useState<MenuSize | null>(null);\n\n const setRefs = React.useCallback(\n (node: HTMLDivElement | null) => {\n surfaceRef.current = node;\n assignRef(forwardedRef, node);\n },\n [forwardedRef]\n );\n\n React.useLayoutEffect(() => {\n if (!open) {\n setMeasuredSize(null);\n return;\n }\n\n const element = surfaceRef.current;\n if (!element) {\n setMeasuredSize(null);\n return;\n }\n\n const updateMeasuredSize = () => {\n const rect = element.getBoundingClientRect();\n setMeasuredSize((previous) =>\n previous &&\n Math.abs(previous.width - rect.width) < 0.5 &&\n Math.abs(previous.height - rect.height) < 0.5\n ? previous\n : { width: rect.width, height: rect.height }\n );\n };\n\n updateMeasuredSize();\n\n if (typeof ResizeObserver === \"undefined\") {\n return;\n }\n\n const observer = new ResizeObserver(updateMeasuredSize);\n observer.observe(element);\n return () => observer.disconnect();\n }, [open, placement]);\n\n React.useEffect(() => {\n if (!open) {\n return;\n }\n\n if (\n !onDismiss ||\n (!dismissOnPointerDownOutside && !dismissOnEscape && !dismissOnScroll)\n ) {\n return;\n }\n\n const shouldIgnoreTarget = (target: EventTarget | null): boolean => {\n if (!(target instanceof Node)) {\n return false;\n }\n\n if (surfaceRef.current?.contains(target)) {\n return true;\n }\n\n return dismissIgnoreRefs.some(\n (ref) => ref.current?.contains(target) ?? false\n );\n };\n\n const handlePointerDown = (event: PointerEvent) => {\n if (!dismissOnPointerDownOutside) {\n return;\n }\n if (shouldIgnoreTarget(event.target)) {\n return;\n }\n onDismiss();\n };\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (!dismissOnEscape || event.key !== \"Escape\") {\n return;\n }\n onDismiss();\n };\n\n const handleScroll = () => {\n if (dismissOnScroll) {\n onDismiss();\n }\n };\n\n document.addEventListener(\"pointerdown\", handlePointerDown, true);\n window.addEventListener(\"keydown\", handleKeyDown, true);\n window.addEventListener(\"scroll\", handleScroll, {\n capture: true,\n passive: true\n });\n\n return () => {\n document.removeEventListener(\"pointerdown\", handlePointerDown, true);\n window.removeEventListener(\"keydown\", handleKeyDown, true);\n window.removeEventListener(\"scroll\", handleScroll, true);\n };\n }, [\n dismissIgnoreRefs,\n dismissOnEscape,\n dismissOnPointerDownOutside,\n dismissOnScroll,\n onDismiss,\n open\n ]);\n\n const resolvedPosition = React.useMemo(() => {\n if (placement.type === \"absolute\") {\n const boundary = resolveMenuBoundaryFromPoint({\n x: placement.left,\n y: placement.top\n });\n const menuSize = measuredSize ?? { width: 0, height: 0 };\n return clampMenuPositionToBoundary({\n left: placement.left,\n top: placement.top,\n width: menuSize.width,\n height: menuSize.height,\n boundary\n });\n }\n\n const boundary = resolveMenuBoundaryFromPoint(placement.point);\n const menuSize = measuredSize ??\n placement.estimatedSize ?? { width: 0, height: 0 };\n const relativePoint = {\n x: placement.point.x - boundary.left,\n y: placement.point.y - boundary.top\n };\n const relativePosition = placeViewportMenuAtPoint({\n point: relativePoint,\n menuSize,\n viewport: { width: boundary.width, height: boundary.height },\n padding: placement.padding,\n alignX: placement.alignX,\n alignY: placement.alignY\n });\n\n return {\n left: boundary.left + relativePosition.left,\n top: boundary.top + relativePosition.top\n };\n }, [measuredSize, placement]);\n\n if (!open || typeof document === \"undefined\" || !document.body) {\n return null;\n }\n\n return createPortal(\n <MenuSurface\n {...rest}\n ref={setRefs}\n className={className}\n data-slot=\"viewport-menu-surface\"\n style={{\n ...style,\n position: \"fixed\",\n top: resolvedPosition.top,\n left: resolvedPosition.left,\n zIndex: \"var(--z-popover)\"\n }}\n onClick={(event) => {\n if (stopEventPropagation) {\n event.stopPropagation();\n }\n callHandler(onClick, event);\n }}\n onMouseDown={(event) => {\n if (stopEventPropagation) {\n event.stopPropagation();\n }\n callHandler(onMouseDown, event);\n }}\n >\n {children}\n </MenuSurface>,\n document.body\n );\n});\n\nexport { ViewportMenuSurface };\n"],"mappings":"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","names":["cva","Slot","jsx","cva","Slot","cva","Slot","jsx","cva","Slot","jsx","jsx","jsx","jsx","jsxs","React","Fragment","jsx","jsxs","jsx","jsxs","React","Slot","jsx","Slot","jsx","jsxs","jsx","jsx","jsxs","jsx","jsx","React","jsx","jsxs","jsx","jsxs","jsx","Separator","jsx","jsxs","jsx","jsx","jsx","cva","jsx","cva","jsx","jsx","React","cva","jsx","jsxs","cva","jsx","useEffect","useLayoutEffect","useRef","useState","jsx","jsxs","useRef","useState","useLayoutEffect","useEffect","React","createPortal","jsx","ViewportMenuSurface","boundary","menuSize","createPortal"]}
@@ -1,21 +1,36 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as class_variance_authority_types from 'class-variance-authority/types';
3
3
  import * as React$1 from 'react';
4
- import { CSSProperties, JSX, ReactNode } from 'react';
4
+ import { ReactNode, JSX, CSSProperties } from 'react';
5
5
  import { VariantProps } from 'class-variance-authority';
6
6
  import { Checkbox as Checkbox$1, Dialog as Dialog$1, DropdownMenu as DropdownMenu$1, Popover as Popover$1, ScrollArea as ScrollArea$1, Select as Select$1, Separator as Separator$1, Switch as Switch$1, Toast, Tooltip as Tooltip$1 } from 'radix-ui';
7
+ import { Drawer as Drawer$1 } from 'vaul';
7
8
  import * as ResizablePrimitive from 'react-resizable-panels';
9
+ import { ToasterProps } from 'sonner';
10
+ export { ExternalToast, ToasterProps, toast } from 'sonner';
8
11
 
9
12
  declare const badgeVariants: (props?: ({
10
- variant?: "default" | "secondary" | "destructive" | "outline" | "ghost" | "link" | null | undefined;
13
+ variant?: "default" | "accent" | "secondary" | "destructive" | "outline" | "ghost" | "link" | null | undefined;
11
14
  } & class_variance_authority_types.ClassProp) | undefined) => string;
12
15
  declare function Badge({ className, variant, asChild, ...props }: React$1.ComponentProps<"span"> & VariantProps<typeof badgeVariants> & {
13
16
  asChild?: boolean;
14
17
  }): react_jsx_runtime.JSX.Element;
15
18
 
19
+ declare const bareIconButtonVariants: (props?: ({
20
+ size?: "md" | "sm" | null | undefined;
21
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
22
+ type BareIconButtonSize = NonNullable<VariantProps<typeof bareIconButtonVariants>["size"]>;
23
+ type BareIconButtonProps = Omit<React$1.ComponentProps<"button">, "aria-label" | "children"> & {
24
+ "aria-label": string;
25
+ asChild?: boolean;
26
+ children: React$1.ReactNode;
27
+ size?: BareIconButtonSize;
28
+ };
29
+ declare function BareIconButton({ className, size, asChild, type, ...props }: BareIconButtonProps): react_jsx_runtime.JSX.Element;
30
+
16
31
  declare const buttonVariants: (props?: ({
17
32
  variant?: "default" | "secondary" | "destructive" | "outline" | "ghost" | "link" | "chrome" | null | undefined;
18
- size?: "default" | "dialog" | "xs" | "sm" | "lg" | "icon" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
33
+ size?: "default" | "dialog" | "sm" | "xs" | "lg" | "icon" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
19
34
  } & class_variance_authority_types.ClassProp) | undefined) => string;
20
35
  declare function Button({ className, variant, size, asChild, ...props }: React$1.ComponentProps<"button"> & VariantProps<typeof buttonVariants> & {
21
36
  asChild?: boolean;
@@ -99,6 +114,20 @@ declare function DialogFooter({ className, showCloseButton, children, ...props }
99
114
  declare function DialogTitle({ className, ...props }: React$1.ComponentProps<typeof Dialog$1.Title>): react_jsx_runtime.JSX.Element;
100
115
  declare function DialogDescription({ className, ...props }: React$1.ComponentProps<typeof Dialog$1.Description>): react_jsx_runtime.JSX.Element;
101
116
 
117
+ declare function Drawer({ ...props }: React$1.ComponentProps<typeof Drawer$1.Root>): react_jsx_runtime.JSX.Element;
118
+ declare function DrawerTrigger({ ...props }: React$1.ComponentProps<typeof Drawer$1.Trigger>): react_jsx_runtime.JSX.Element;
119
+ declare function DrawerPortal({ ...props }: React$1.ComponentProps<typeof Drawer$1.Portal>): react_jsx_runtime.JSX.Element;
120
+ declare function DrawerClose({ ...props }: React$1.ComponentProps<typeof Drawer$1.Close>): react_jsx_runtime.JSX.Element;
121
+ declare function DrawerOverlay({ className, style, ...props }: React$1.ComponentProps<typeof Drawer$1.Overlay>): react_jsx_runtime.JSX.Element;
122
+ declare function DrawerContent({ className, children, portalContainer, showOverlay, style, ...props }: React$1.ComponentProps<typeof Drawer$1.Content> & {
123
+ portalContainer?: React$1.ComponentProps<typeof Drawer$1.Portal>["container"];
124
+ showOverlay?: boolean;
125
+ }): react_jsx_runtime.JSX.Element;
126
+ declare function DrawerHeader({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
127
+ declare function DrawerFooter({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
128
+ declare function DrawerTitle({ className, ...props }: React$1.ComponentProps<typeof Drawer$1.Title>): react_jsx_runtime.JSX.Element;
129
+ declare function DrawerDescription({ className, ...props }: React$1.ComponentProps<typeof Drawer$1.Description>): react_jsx_runtime.JSX.Element;
130
+
102
131
  declare function DropdownMenu({ ...props }: React$1.ComponentProps<typeof DropdownMenu$1.Root>): react_jsx_runtime.JSX.Element;
103
132
  declare function DropdownMenuPortal({ ...props }: React$1.ComponentProps<typeof DropdownMenu$1.Portal>): react_jsx_runtime.JSX.Element;
104
133
  declare function DropdownMenuTrigger({ ...props }: React$1.ComponentProps<typeof DropdownMenu$1.Trigger>): react_jsx_runtime.JSX.Element;
@@ -148,7 +177,7 @@ declare function MentionPill({ className, fileKind, kind, label, removable, remo
148
177
  declare const menuSurfaceClassName = "t-dropdown flex flex-col gap-0.5 rounded-[8px] border border-[var(--border-1)] bg-[var(--background-fronted)] p-1 text-sm text-[var(--text-primary)] shadow-panel outline-none";
149
178
  declare const menuItemClassName = "relative flex cursor-pointer items-center gap-1.5 rounded-sm px-2 py-1 text-sm text-[var(--text-primary)] outline-hidden transition-colors duration-200 select-none hover:bg-[var(--transparency-hover)] hover:text-[var(--text-primary)] focus:bg-[var(--transparency-hover)] focus:text-[var(--text-primary)] data-[highlighted]:bg-[var(--transparency-hover)] data-[highlighted]:text-[var(--text-primary)] data-disabled:pointer-events-none data-disabled:text-[var(--text-disabled)] [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2";
150
179
  declare const menuItemWithIndicatorClassName = "relative flex cursor-pointer items-center gap-1.5 rounded-sm px-2 py-1 text-sm text-[var(--text-primary)] outline-hidden transition-colors duration-200 select-none hover:bg-[var(--transparency-hover)] hover:text-[var(--text-primary)] focus:bg-[var(--transparency-hover)] focus:text-[var(--text-primary)] data-[highlighted]:bg-[var(--transparency-hover)] data-[highlighted]:text-[var(--text-primary)] data-disabled:pointer-events-none data-disabled:text-[var(--text-disabled)] [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2 pr-8";
151
- declare const menuItemIndicatorClassName = "pointer-events-none absolute right-2 flex size-4 items-center justify-center";
180
+ declare const menuItemIndicatorClassName = "pointer-events-none absolute right-2 flex size-4 items-center justify-center text-[var(--accent)]";
152
181
  declare const MenuSurface: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & {
153
182
  "data-state"?: "open" | "closed";
154
183
  asChild?: boolean;
@@ -168,14 +197,22 @@ declare function ResizableHandle({ className, withHandle, ...props }: React.Comp
168
197
  withHandle?: boolean;
169
198
  }): react_jsx_runtime.JSX.Element;
170
199
 
171
- declare function ScrollArea({ className, children, ...props }: React$1.ComponentProps<typeof ScrollArea$1.Root>): react_jsx_runtime.JSX.Element;
200
+ type ScrollAreaProps = React$1.ComponentProps<typeof ScrollArea$1.Root> & {
201
+ viewportClassName?: string;
202
+ viewportContentStyle?: React$1.CSSProperties;
203
+ viewportProps?: Omit<React$1.ComponentPropsWithoutRef<typeof ScrollArea$1.Viewport>, "children" | "className" | "ref">;
204
+ viewportRef?: React$1.Ref<HTMLDivElement>;
205
+ viewportTestId?: string;
206
+ };
207
+ declare function ScrollArea({ className, children, viewportClassName, viewportContentStyle, viewportProps, viewportRef, viewportTestId, ...props }: ScrollAreaProps): react_jsx_runtime.JSX.Element;
172
208
  declare function ScrollBar({ className, orientation, ...props }: React$1.ComponentProps<typeof ScrollArea$1.ScrollAreaScrollbar>): react_jsx_runtime.JSX.Element;
173
209
 
174
210
  declare function Select({ ...props }: React$1.ComponentProps<typeof Select$1.Root>): react_jsx_runtime.JSX.Element;
175
211
  declare function SelectGroup({ className, ...props }: React$1.ComponentProps<typeof Select$1.Group>): react_jsx_runtime.JSX.Element;
176
212
  declare function SelectValue({ ...props }: React$1.ComponentProps<typeof Select$1.Value>): react_jsx_runtime.JSX.Element;
177
- declare function SelectTrigger({ className, size, children, ...props }: React$1.ComponentProps<typeof Select$1.Trigger> & {
178
- size?: "sm" | "default";
213
+ declare function SelectTrigger({ className, size, variant, children, ...props }: React$1.ComponentProps<typeof Select$1.Trigger> & {
214
+ size?: "sm" | "default" | "dialog";
215
+ variant?: "button" | "default";
179
216
  }): react_jsx_runtime.JSX.Element;
180
217
  declare function SelectContent({ className, children, position, align, style, ...props }: React$1.ComponentProps<typeof Select$1.Content>): react_jsx_runtime.JSX.Element;
181
218
  declare function SelectLabel({ className, ...props }: React$1.ComponentProps<typeof Select$1.Label>): react_jsx_runtime.JSX.Element;
@@ -184,13 +221,35 @@ declare function SelectSplitColumn({ className, ...props }: React$1.ComponentPro
184
221
  declare function SelectSplitColumnLabel({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
185
222
  declare function SelectSplitColumnItems({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
186
223
  declare function SelectSplitDivider({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
187
- declare function SelectItem({ className, children, ...props }: React$1.ComponentProps<typeof Select$1.Item>): react_jsx_runtime.JSX.Element;
224
+ declare function SelectItem({ className, children, forceSelectedIndicator, ...props }: React$1.ComponentProps<typeof Select$1.Item> & {
225
+ forceSelectedIndicator?: boolean;
226
+ }): react_jsx_runtime.JSX.Element;
188
227
  declare function SelectSeparator({ className, ...props }: React$1.ComponentProps<typeof Select$1.Separator>): react_jsx_runtime.JSX.Element;
189
228
  declare function SelectScrollUpButton({ className, ...props }: React$1.ComponentProps<typeof Select$1.ScrollUpButton>): react_jsx_runtime.JSX.Element;
190
229
  declare function SelectScrollDownButton({ className, ...props }: React$1.ComponentProps<typeof Select$1.ScrollDownButton>): react_jsx_runtime.JSX.Element;
191
230
 
192
231
  declare function Separator({ className, orientation, decorative, ...props }: React$1.ComponentProps<typeof Separator$1.Root>): react_jsx_runtime.JSX.Element;
193
232
 
233
+ interface SectionTabItem<TValue extends string> {
234
+ value: TValue;
235
+ label: ReactNode;
236
+ count?: ReactNode;
237
+ testId?: string;
238
+ }
239
+ interface SectionTabsProps<TValue extends string> {
240
+ tabs: ReadonlyArray<SectionTabItem<TValue>>;
241
+ value: TValue;
242
+ onValueChange: (value: TValue) => void;
243
+ ariaLabel?: string;
244
+ className?: string;
245
+ testId?: string;
246
+ }
247
+ declare function SectionTabs<TValue extends string>({ tabs, value, onValueChange, ariaLabel, className, testId }: SectionTabsProps<TValue>): JSX.Element;
248
+
249
+ declare function ShortcutBadge({ className, ...props }: React$1.ComponentProps<"kbd">): react_jsx_runtime.JSX.Element;
250
+
251
+ declare function Toaster({ toastOptions, style, ...props }: ToasterProps): react_jsx_runtime.JSX.Element;
252
+
194
253
  interface SpinnerProps {
195
254
  className?: string;
196
255
  size?: number;
@@ -203,7 +262,7 @@ declare function Spinner({ className, size, strokeWidth, style, testId, trackCol
203
262
 
204
263
  declare const statusDotVariants: (props?: ({
205
264
  tone?: "blue" | "green" | "red" | "neutral" | "amber" | null | undefined;
206
- size?: "xs" | "sm" | "md" | null | undefined;
265
+ size?: "md" | "sm" | "xs" | null | undefined;
207
266
  pulse?: boolean | null | undefined;
208
267
  } & class_variance_authority_types.ClassProp) | undefined) => string;
209
268
  type StatusDotProps = VariantProps<typeof statusDotVariants> & {
@@ -219,7 +278,7 @@ declare function Switch({ className, size, ...props }: React$1.ComponentProps<ty
219
278
 
220
279
  declare function Textarea({ className, ...props }: React$1.ComponentProps<"textarea">): react_jsx_runtime.JSX.Element;
221
280
 
222
- declare const ToastProvider: React$1.FC<Toast.ToastProviderProps>;
281
+ declare function ToastProvider({ duration, ...props }: React$1.ComponentProps<typeof Toast.Provider>): react_jsx_runtime.JSX.Element;
223
282
  declare const toastVariants: (props?: ({
224
283
  variant?: "default" | "destructive" | "success" | null | undefined;
225
284
  } & class_variance_authority_types.ClassProp) | undefined) => string;
@@ -237,7 +296,7 @@ declare function TooltipProvider({ delayDuration, ...props }: React$1.ComponentP
237
296
  declare function Tooltip({ ...props }: React$1.ComponentProps<typeof Tooltip$1.Root>): react_jsx_runtime.JSX.Element;
238
297
  declare function TooltipTrigger({ ...props }: React$1.ComponentProps<typeof Tooltip$1.Trigger>): react_jsx_runtime.JSX.Element;
239
298
  declare function TooltipPortal({ ...props }: React$1.ComponentProps<typeof Tooltip$1.Portal>): react_jsx_runtime.JSX.Element;
240
- declare function TooltipContent({ className, sideOffset, children, ...props }: React$1.ComponentProps<typeof Tooltip$1.Content>): react_jsx_runtime.JSX.Element;
299
+ declare function TooltipContent({ className, sideOffset, children, style, ...props }: React$1.ComponentProps<typeof Tooltip$1.Content>): react_jsx_runtime.JSX.Element;
241
300
 
242
301
  interface UnderlineTabItem<TValue extends string> {
243
302
  value: TValue;
@@ -297,4 +356,4 @@ interface ViewportMenuSurfaceProps extends Omit<React$1.HTMLAttributes<HTMLDivEl
297
356
  }
298
357
  declare const ViewportMenuSurface: React$1.ForwardRefExoticComponent<ViewportMenuSurfaceProps & React$1.RefAttributes<HTMLDivElement>>;
299
358
 
300
- export { Badge, Button, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, ConfirmationDialog, type ConfirmationDialogTone, DatePicker, type DatePickerLabels, type DatePickerProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Input, MentionPill, type MentionPillFileKind, type MentionPillKind, type MentionPillProps, type MenuPoint, type MenuPointAlignment, type MenuSize, MenuSurface, Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverPortal, PopoverTrigger, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectSplitColumn, SelectSplitColumnItems, SelectSplitColumnLabel, SelectSplitDivider, SelectSplitLayout, SelectTrigger, SelectValue, Separator, Spinner, type SpinnerProps, StatusDot, Switch, Textarea, ToastClose, ToastDescription, ToastProvider, ToastRoot, ToastTitle, ToastViewport, Tooltip, TooltipContent, TooltipPortal, TooltipProvider, TooltipTrigger, type UnderlineTabItem, UnderlineTabs, type ViewportMenuPlacement, ViewportMenuSurface, type ViewportMenuSurfaceProps, badgeVariants, buttonVariants, menuItemClassName, menuItemIndicatorClassName, menuItemWithIndicatorClassName, menuSurfaceClassName, statusDotVariants, toastVariants };
359
+ export { Badge, BareIconButton, type BareIconButtonProps, Button, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, ConfirmationDialog, type ConfirmationDialogTone, DatePicker, type DatePickerLabels, type DatePickerProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Input, MentionPill, type MentionPillFileKind, type MentionPillKind, type MentionPillProps, type MenuPoint, type MenuPointAlignment, type MenuSize, MenuSurface, Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverPortal, PopoverTrigger, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScrollArea, ScrollBar, type SectionTabItem, SectionTabs, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectSplitColumn, SelectSplitColumnItems, SelectSplitColumnLabel, SelectSplitDivider, SelectSplitLayout, SelectTrigger, SelectValue, Separator, ShortcutBadge, Spinner, type SpinnerProps, StatusDot, Switch, Textarea, ToastClose, ToastDescription, ToastProvider, ToastRoot, ToastTitle, ToastViewport, Toaster, Tooltip, TooltipContent, TooltipPortal, TooltipProvider, TooltipTrigger, type UnderlineTabItem, UnderlineTabs, type ViewportMenuPlacement, ViewportMenuSurface, type ViewportMenuSurfaceProps, badgeVariants, buttonVariants, menuItemClassName, menuItemIndicatorClassName, menuItemWithIndicatorClassName, menuSurfaceClassName, statusDotVariants, toastVariants };