@nextop-os/ui-system 0.0.24 → 0.0.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-TYJPBTBR.js → chunk-AEKKSXBL.js} +10 -50
- package/dist/chunk-AEKKSXBL.js.map +1 -0
- package/dist/{chunk-AJCTWBHN.js → chunk-DKR4UYO3.js} +34 -18
- package/dist/chunk-DKR4UYO3.js.map +1 -0
- package/dist/components/index.d.ts +5 -3
- package/dist/components/index.js +2 -2
- package/dist/icons/index.d.ts +3 -5
- package/dist/icons/index.js +5 -9
- package/dist/index.d.ts +1 -1
- package/dist/index.js +6 -10
- package/dist/metadata/components.json +27 -55
- package/dist/metadata/index.js +27 -55
- package/dist/metadata/index.js.map +1 -1
- package/dist/styles/base.css +4 -0
- package/dist/styles/theme.css +10 -4
- package/package.json +1 -1
- package/dist/chunk-AJCTWBHN.js.map +0 -1
- package/dist/chunk-TYJPBTBR.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/badge/badge.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/dropdown-menu/dropdown-menu.tsx","../src/components/menu-surface/menu-surface.tsx","../src/components/input/input.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/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-2 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-transparency-block text-[var(--text-secondary)] [a]:hover:bg-transparency-hover\",\n secondary:\n \"bg-transparency-block text-[var(--text-secondary)] [a]:hover:bg-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 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-border/70 bg-[var(--workbench-field-bg)] text-[var(--text-inverted)] transition-[background-color,border-color,color,box-shadow] outline-none focus-visible:border-border focus-visible:ring-2 focus-visible:ring-ring/30 disabled:cursor-not-allowed disabled:border-[var(--border-1)] disabled:bg-muted disabled:text-[var(--text-inverted)] disabled:opacity-100 data-disabled:border-[var(--border-1)] 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 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-background-fronted 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 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 { DropdownMenu as DropdownMenuPrimitive } from \"radix-ui\";\n\nimport { CheckIcon, ChevronRightIcon } 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 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 </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 <ChevronRightIcon className=\"ml-auto\" />\n </DropdownMenuPrimitive.SubTrigger>\n );\n}\n\nfunction DropdownMenuSubContent({\n className,\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 </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-block)] hover:text-[var(--text-primary)] focus:bg-[var(--transparency-block)] focus:text-[var(--text-primary)] data-[highlighted]:bg-[var(--transparency-block)] 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\";\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\";\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\nfunction ScrollArea({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof ScrollAreaPrimitive.Root>) {\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 data-slot=\"scroll-area-viewport\"\n className=\"size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1\"\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n );\n}\n\nfunction ScrollBar({\n className,\n orientation = \"vertical\",\n ...props\n}: 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 flex touch-none p-0 opacity-0 transition-opacity duration-150 select-none group-hover/scroll-area:opacity-100 group-focus-within/scroll-area:opacity-100 data-horizontal:right-2 data-horizontal:bottom-2 data-horizontal:left-2 data-horizontal:h-1 data-horizontal:flex-col data-vertical:top-2 data-vertical:right-2 data-vertical:bottom-2 data-vertical:w-1\",\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 {\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 children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Trigger> & {\n size?: \"sm\" | \"default\";\n}) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n data-size={size}\n className={cn(\n \"flex w-fit 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 [&[data-state=open]>svg]:rotate-180 [&>svg]:transition-transform [&>svg]:duration-200 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDownIcon className=\"pointer-events-none size-4 text-[var(--text-secondary)]\" />\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 ...props\n}: React.ComponentProps<typeof SelectPrimitive.Item>) {\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 <SelectPrimitive.ItemIndicator>\n <CheckIcon className=\"pointer-events-none\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n );\n}\n\nfunction SelectSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Separator>) {\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n className={cn(\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 { 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 = 3,\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-border focus-visible:ring-2 focus-visible:ring-ring/30 aria-invalid:border-destructive aria-invalid:ring-2 aria-invalid:ring-destructive/20 data-[size=default]:h-[18px] data-[size=default]:w-[32px] data-[size=sm]:h-[14px] data-[size=sm]:w-[24px] dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input dark:data-[state=unchecked]:bg-input/80 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-[1px] group-data-[size=sm]/switch:data-[state=unchecked]:translate-x-[1px]\"\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 ToastProvider = ToastPrimitive.Provider;\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(--text-inverted)]\",\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={3}\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 ...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-popover)\" }}\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-primary\"\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] opacity-[0.58]\">\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-primary 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","jsx","jsx","jsx","jsx","jsxs","React","Fragment","jsx","jsxs","React","Slot","jsx","Slot","jsx","jsxs","jsx","jsx","jsx","jsx","jsxs","jsx","jsxs","jsx","Separator","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"]}
|
|
@@ -126,14 +126,16 @@ declare function DropdownMenuSubTrigger({ className, inset, children, ...props }
|
|
|
126
126
|
}): react_jsx_runtime.JSX.Element;
|
|
127
127
|
declare function DropdownMenuSubContent({ className, style, ...props }: React$1.ComponentProps<typeof DropdownMenu$1.SubContent>): react_jsx_runtime.JSX.Element;
|
|
128
128
|
|
|
129
|
+
type InputVariant = "lg" | "md" | "sm" | "otp";
|
|
129
130
|
type InputProps = Omit<React$1.ComponentProps<"input">, "size"> & {
|
|
131
|
+
variant?: InputVariant;
|
|
130
132
|
size?: "default" | "sm";
|
|
131
133
|
};
|
|
132
|
-
declare function Input({ className, size, type, ...props }: InputProps): react_jsx_runtime.JSX.Element;
|
|
134
|
+
declare function Input({ className, size, type, variant, ...props }: InputProps): react_jsx_runtime.JSX.Element;
|
|
133
135
|
|
|
134
136
|
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";
|
|
135
|
-
declare const menuItemClassName = "relative flex cursor-
|
|
136
|
-
declare const menuItemWithIndicatorClassName = "relative flex cursor-
|
|
137
|
+
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-block)] hover:text-[var(--text-primary)] focus:bg-[var(--transparency-block)] focus:text-[var(--text-primary)] data-[highlighted]:bg-[var(--transparency-block)] 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";
|
|
138
|
+
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-block)] hover:text-[var(--text-primary)] focus:bg-[var(--transparency-block)] focus:text-[var(--text-primary)] data-[highlighted]:bg-[var(--transparency-block)] 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";
|
|
137
139
|
declare const menuItemIndicatorClassName = "pointer-events-none absolute right-2 flex size-4 items-center justify-center";
|
|
138
140
|
declare const MenuSurface: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & {
|
|
139
141
|
"data-state"?: "open" | "closed";
|
package/dist/components/index.js
CHANGED
|
@@ -90,8 +90,8 @@ import {
|
|
|
90
90
|
menuSurfaceClassName,
|
|
91
91
|
statusDotVariants,
|
|
92
92
|
toastVariants
|
|
93
|
-
} from "../chunk-
|
|
94
|
-
import "../chunk-
|
|
93
|
+
} from "../chunk-DKR4UYO3.js";
|
|
94
|
+
import "../chunk-AEKKSXBL.js";
|
|
95
95
|
import "../chunk-DGPY4WP3.js";
|
|
96
96
|
export {
|
|
97
97
|
Badge,
|
package/dist/icons/index.d.ts
CHANGED
|
@@ -20,14 +20,13 @@ declare function FolderIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
|
20
20
|
declare function FolderFilledIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
21
21
|
declare function DashboardIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
22
22
|
declare function NewWorkspaceIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
23
|
+
declare function NewWorkspaceLinedIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
23
24
|
declare function HealthIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
24
|
-
declare function AlertIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
25
25
|
interface LoadingIconProps extends IconProps {
|
|
26
26
|
trackColor?: string;
|
|
27
27
|
}
|
|
28
28
|
declare function LoadingIcon({ size, title, strokeWidth, trackColor, ...props }: LoadingIconProps): react_jsx_runtime.JSX.Element;
|
|
29
29
|
declare function PlatformIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
30
|
-
declare function SparkIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
31
30
|
declare function SettingsIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
32
31
|
declare function CloseIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
33
32
|
declare function MinimizeIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
@@ -52,11 +51,10 @@ declare function CopyIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
|
52
51
|
declare function DirectoryIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
53
52
|
declare function EyeIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
54
53
|
declare function FileIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
54
|
+
declare function FileLinedIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
55
55
|
declare function FileTextIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
56
56
|
declare function FileCodeIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
57
57
|
declare function FileCreateIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
58
|
-
declare function FileSearchIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
59
|
-
declare function FileSpreadsheetIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
60
58
|
declare function ImageFileIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
61
59
|
declare function EditIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
62
60
|
declare function LayoutGridIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
@@ -106,4 +104,4 @@ declare function WarningLinedIcon(props: IconProps): react_jsx_runtime.JSX.Eleme
|
|
|
106
104
|
declare function GoogleBrandIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
107
105
|
declare function GitHubBrandIcon(props: IconProps): react_jsx_runtime.JSX.Element;
|
|
108
106
|
|
|
109
|
-
export { AddIcon, AgentSessionsIcon,
|
|
107
|
+
export { AddIcon, AgentSessionsIcon, AppWindowIcon, ArrowLeftIcon, ArrowRightIcon, CapabilityIcon, ChatIcon, CheckIcon, ChevronDownIcon, ChevronRightIcon, ChevronUpIcon, CloseIcon, CodexFilledIcon, CopyIcon, CreateChatIcon, DarkModeIcon, DashboardIcon, DeleteIcon, DirectoryIcon, DownloadIcon, EditIcon, EyeIcon, FailedFilledIcon, FailedLinedIcon, FileCodeIcon, FileCreateIcon, FileIcon, FileLinedIcon, FileTextIcon, FolderFailedIcon, FolderFilledIcon, FolderIcon, GitHubBrandIcon, GoogleBrandIcon, GridBottomLinedIcon, GridHorizontalLinedIcon, GridLeftLinedIcon, GridRightLinedIcon, GridTopLinedIcon, GridVerticalLinedIcon, GuideIcon, HealthIcon, type IconProps, ImageFileIcon, ImageGenerateIcon, IssueIcon, KeyboardIcon, LaunchIcon, LayoutGridIcon, LayoutMenuIcon, LayoutPresetIcon, type LayoutPresetIconProps, LightModeIcon, LinkIcon, LoadingIcon, type LoadingIconProps, LocateFolderIcon, MaximizeIcon, MinimizeIcon, MoreHorizontalIcon, NavAgentsIcon, NavLaunchIcon, NavTemplatesIcon, NewWorkspaceIcon, NewWorkspaceLinedIcon, NextopMark, OpenSessionsIcon, OverviewLayoutIcon, PanelIcon, PlatformIcon, ProductDocIcon, ProductIcon, RefreshIcon, RestoreIcon, RoomsHintIcon, SearchIcon, SettingsIcon, SuccessFilledIcon, SuccessLinedIcon, TaskIcon, ThinkingIcon, ToolsIcon, UnavailableChatIcon, UploadFolderIcon, UploadIcon, VideoFileIcon, WarningFilledIcon, WarningLinedIcon, WebIcon, WebScrapeIcon };
|
package/dist/icons/index.js
CHANGED
|
@@ -5,7 +5,6 @@ import {
|
|
|
5
5
|
import {
|
|
6
6
|
AddIcon,
|
|
7
7
|
AgentSessionsIcon,
|
|
8
|
-
AlertIcon,
|
|
9
8
|
AppWindowIcon,
|
|
10
9
|
ArrowLeftIcon,
|
|
11
10
|
ArrowRightIcon,
|
|
@@ -31,8 +30,7 @@ import {
|
|
|
31
30
|
FileCodeIcon,
|
|
32
31
|
FileCreateIcon,
|
|
33
32
|
FileIcon,
|
|
34
|
-
|
|
35
|
-
FileSpreadsheetIcon,
|
|
33
|
+
FileLinedIcon,
|
|
36
34
|
FileTextIcon,
|
|
37
35
|
FolderFailedIcon,
|
|
38
36
|
FolderFilledIcon,
|
|
@@ -65,6 +63,7 @@ import {
|
|
|
65
63
|
NavLaunchIcon,
|
|
66
64
|
NavTemplatesIcon,
|
|
67
65
|
NewWorkspaceIcon,
|
|
66
|
+
NewWorkspaceLinedIcon,
|
|
68
67
|
OpenSessionsIcon,
|
|
69
68
|
OverviewLayoutIcon,
|
|
70
69
|
PanelIcon,
|
|
@@ -76,7 +75,6 @@ import {
|
|
|
76
75
|
RoomsHintIcon,
|
|
77
76
|
SearchIcon,
|
|
78
77
|
SettingsIcon,
|
|
79
|
-
SparkIcon,
|
|
80
78
|
SuccessFilledIcon,
|
|
81
79
|
SuccessLinedIcon,
|
|
82
80
|
TaskIcon,
|
|
@@ -90,11 +88,10 @@ import {
|
|
|
90
88
|
WarningLinedIcon,
|
|
91
89
|
WebIcon,
|
|
92
90
|
WebScrapeIcon
|
|
93
|
-
} from "../chunk-
|
|
91
|
+
} from "../chunk-AEKKSXBL.js";
|
|
94
92
|
export {
|
|
95
93
|
AddIcon,
|
|
96
94
|
AgentSessionsIcon,
|
|
97
|
-
AlertIcon,
|
|
98
95
|
AppWindowIcon,
|
|
99
96
|
ArrowLeftIcon,
|
|
100
97
|
ArrowRightIcon,
|
|
@@ -120,8 +117,7 @@ export {
|
|
|
120
117
|
FileCodeIcon,
|
|
121
118
|
FileCreateIcon,
|
|
122
119
|
FileIcon,
|
|
123
|
-
|
|
124
|
-
FileSpreadsheetIcon,
|
|
120
|
+
FileLinedIcon,
|
|
125
121
|
FileTextIcon,
|
|
126
122
|
FolderFailedIcon,
|
|
127
123
|
FolderFilledIcon,
|
|
@@ -155,6 +151,7 @@ export {
|
|
|
155
151
|
NavLaunchIcon,
|
|
156
152
|
NavTemplatesIcon,
|
|
157
153
|
NewWorkspaceIcon,
|
|
154
|
+
NewWorkspaceLinedIcon,
|
|
158
155
|
NextopMark,
|
|
159
156
|
OpenSessionsIcon,
|
|
160
157
|
OverviewLayoutIcon,
|
|
@@ -167,7 +164,6 @@ export {
|
|
|
167
164
|
RoomsHintIcon,
|
|
168
165
|
SearchIcon,
|
|
169
166
|
SettingsIcon,
|
|
170
|
-
SparkIcon,
|
|
171
167
|
SuccessFilledIcon,
|
|
172
168
|
SuccessLinedIcon,
|
|
173
169
|
TaskIcon,
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { Badge, Button, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, ConfirmationDialog, ConfirmationDialogTone, DatePicker, DatePickerLabels, 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, MenuPoint, MenuPointAlignment, 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, SpinnerProps, StatusDot, Switch, Textarea, ToastClose, ToastDescription, ToastProvider, ToastRoot, ToastTitle, ToastViewport, Tooltip, TooltipContent, TooltipPortal, TooltipProvider, TooltipTrigger, UnderlineTabItem, UnderlineTabs, ViewportMenuPlacement, ViewportMenuSurface, ViewportMenuSurfaceProps, badgeVariants, buttonVariants, menuItemClassName, menuItemIndicatorClassName, menuItemWithIndicatorClassName, menuSurfaceClassName, statusDotVariants, toastVariants } from './components/index.js';
|
|
2
|
-
export { AddIcon, AgentSessionsIcon,
|
|
2
|
+
export { AddIcon, AgentSessionsIcon, AppWindowIcon, ArrowLeftIcon, ArrowRightIcon, CapabilityIcon, ChatIcon, CheckIcon, ChevronDownIcon, ChevronRightIcon, ChevronUpIcon, CloseIcon, CodexFilledIcon, CopyIcon, CreateChatIcon, DarkModeIcon, DashboardIcon, DeleteIcon, DirectoryIcon, DownloadIcon, EditIcon, EyeIcon, FailedFilledIcon, FailedLinedIcon, FileCodeIcon, FileCreateIcon, FileIcon, FileLinedIcon, FileTextIcon, FolderFailedIcon, FolderFilledIcon, FolderIcon, GitHubBrandIcon, GoogleBrandIcon, GridBottomLinedIcon, GridHorizontalLinedIcon, GridLeftLinedIcon, GridRightLinedIcon, GridTopLinedIcon, GridVerticalLinedIcon, GuideIcon, HealthIcon, IconProps, ImageFileIcon, ImageGenerateIcon, IssueIcon, KeyboardIcon, LaunchIcon, LayoutGridIcon, LayoutMenuIcon, LayoutPresetIcon, LayoutPresetIconProps, LightModeIcon, LinkIcon, LoadingIcon, LoadingIconProps, LocateFolderIcon, MaximizeIcon, MinimizeIcon, MoreHorizontalIcon, NavAgentsIcon, NavLaunchIcon, NavTemplatesIcon, NewWorkspaceIcon, NewWorkspaceLinedIcon, NextopMark, OpenSessionsIcon, OverviewLayoutIcon, PanelIcon, PlatformIcon, ProductDocIcon, ProductIcon, RefreshIcon, RestoreIcon, RoomsHintIcon, SearchIcon, SettingsIcon, SuccessFilledIcon, SuccessLinedIcon, TaskIcon, ThinkingIcon, ToolsIcon, UnavailableChatIcon, UploadFolderIcon, UploadIcon, VideoFileIcon, WarningFilledIcon, WarningLinedIcon, WebIcon, WebScrapeIcon } from './icons/index.js';
|
|
3
3
|
export { formatNextopDateTime, formatNextopShortDateTime, getCurrentNextopDateLocale } from './date-format.js';
|
|
4
4
|
export { cn } from './utils.js';
|
|
5
5
|
import 'react/jsx-runtime';
|
package/dist/index.js
CHANGED
|
@@ -90,7 +90,7 @@ import {
|
|
|
90
90
|
menuSurfaceClassName,
|
|
91
91
|
statusDotVariants,
|
|
92
92
|
toastVariants
|
|
93
|
-
} from "./chunk-
|
|
93
|
+
} from "./chunk-DKR4UYO3.js";
|
|
94
94
|
import {
|
|
95
95
|
formatNextopDateTime,
|
|
96
96
|
formatNextopShortDateTime,
|
|
@@ -103,7 +103,6 @@ import {
|
|
|
103
103
|
import {
|
|
104
104
|
AddIcon,
|
|
105
105
|
AgentSessionsIcon,
|
|
106
|
-
AlertIcon,
|
|
107
106
|
AppWindowIcon,
|
|
108
107
|
ArrowLeftIcon,
|
|
109
108
|
ArrowRightIcon,
|
|
@@ -129,8 +128,7 @@ import {
|
|
|
129
128
|
FileCodeIcon,
|
|
130
129
|
FileCreateIcon,
|
|
131
130
|
FileIcon,
|
|
132
|
-
|
|
133
|
-
FileSpreadsheetIcon,
|
|
131
|
+
FileLinedIcon,
|
|
134
132
|
FileTextIcon,
|
|
135
133
|
FolderFailedIcon,
|
|
136
134
|
FolderFilledIcon,
|
|
@@ -163,6 +161,7 @@ import {
|
|
|
163
161
|
NavLaunchIcon,
|
|
164
162
|
NavTemplatesIcon,
|
|
165
163
|
NewWorkspaceIcon,
|
|
164
|
+
NewWorkspaceLinedIcon,
|
|
166
165
|
OpenSessionsIcon,
|
|
167
166
|
OverviewLayoutIcon,
|
|
168
167
|
PanelIcon,
|
|
@@ -174,7 +173,6 @@ import {
|
|
|
174
173
|
RoomsHintIcon,
|
|
175
174
|
SearchIcon,
|
|
176
175
|
SettingsIcon,
|
|
177
|
-
SparkIcon,
|
|
178
176
|
SuccessFilledIcon,
|
|
179
177
|
SuccessLinedIcon,
|
|
180
178
|
TaskIcon,
|
|
@@ -188,14 +186,13 @@ import {
|
|
|
188
186
|
WarningLinedIcon,
|
|
189
187
|
WebIcon,
|
|
190
188
|
WebScrapeIcon
|
|
191
|
-
} from "./chunk-
|
|
189
|
+
} from "./chunk-AEKKSXBL.js";
|
|
192
190
|
import {
|
|
193
191
|
cn
|
|
194
192
|
} from "./chunk-DGPY4WP3.js";
|
|
195
193
|
export {
|
|
196
194
|
AddIcon,
|
|
197
195
|
AgentSessionsIcon,
|
|
198
|
-
AlertIcon,
|
|
199
196
|
AppWindowIcon,
|
|
200
197
|
ArrowLeftIcon,
|
|
201
198
|
ArrowRightIcon,
|
|
@@ -258,8 +255,7 @@ export {
|
|
|
258
255
|
FileCodeIcon,
|
|
259
256
|
FileCreateIcon,
|
|
260
257
|
FileIcon,
|
|
261
|
-
|
|
262
|
-
FileSpreadsheetIcon,
|
|
258
|
+
FileLinedIcon,
|
|
263
259
|
FileTextIcon,
|
|
264
260
|
FolderFailedIcon,
|
|
265
261
|
FolderFilledIcon,
|
|
@@ -295,6 +291,7 @@ export {
|
|
|
295
291
|
NavLaunchIcon,
|
|
296
292
|
NavTemplatesIcon,
|
|
297
293
|
NewWorkspaceIcon,
|
|
294
|
+
NewWorkspaceLinedIcon,
|
|
298
295
|
NextopMark,
|
|
299
296
|
OpenSessionsIcon,
|
|
300
297
|
OverviewLayoutIcon,
|
|
@@ -334,7 +331,6 @@ export {
|
|
|
334
331
|
SelectValue,
|
|
335
332
|
Separator,
|
|
336
333
|
SettingsIcon,
|
|
337
|
-
SparkIcon,
|
|
338
334
|
Spinner,
|
|
339
335
|
StatusDot,
|
|
340
336
|
SuccessFilledIcon,
|