@nextop-os/ui-system 0.0.25 → 0.0.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/badge/badge.tsx","../src/components/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/mention-pill/mention-pill.tsx","../src/components/popover/popover.tsx","../src/components/resizable/resizable.tsx","../src/components/scroll-area/scroll-area.tsx","../src/components/select/select.tsx","../src/components/separator/separator.tsx","../src/components/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-[var(--transparency-block)] text-[var(--text-secondary)] [a]:hover:bg-[var(--transparency-hover)]\",\n secondary:\n \"bg-[var(--transparency-block)] text-[var(--text-secondary)] [a]:hover:bg-[var(--transparency-hover)]\",\n destructive:\n \"bg-destructive/10 text-destructive focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/18\",\n outline:\n \"border-border bg-card/90 text-foreground [a]:hover:bg-muted [a]:hover:text-foreground\",\n ghost:\n \"hover:bg-accent/80 hover:text-accent-foreground dark:hover:bg-muted/50\",\n link: \"text-primary underline-offset-4 hover:underline\"\n }\n },\n defaultVariants: {\n variant: \"default\"\n }\n }\n);\n\nfunction Badge({\n className,\n variant = \"default\",\n asChild = false,\n ...props\n}: React.ComponentProps<\"span\"> &\n VariantProps<typeof badgeVariants> & { asChild?: boolean }) {\n const Comp = asChild ? Slot.Root : \"span\";\n\n return (\n <Comp\n data-slot=\"badge\"\n data-variant={variant}\n className={cn(badgeVariants({ variant }), className)}\n {...props}\n />\n );\n}\n\nexport { Badge, badgeVariants };\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { Slot } from \"radix-ui\";\n\nimport { cn } from \"#lib/utils\";\n\nconst buttonVariants = cva(\n \"group/button inline-flex shrink-0 cursor-pointer items-center justify-center rounded-md border border-transparent bg-clip-padding text-sm font-normal whitespace-nowrap transition-[background-color,border-color,color,box-shadow,transform] outline-none select-none focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/35 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-2 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n default:\n \"bg-[var(--text-primary)] text-[var(--text-inverted)] shadow-none hover:bg-[var(--text-primary-hover)]\",\n outline:\n \"border-border bg-card text-foreground hover:bg-muted/80 hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50\",\n secondary:\n \"bg-transparency-block text-[var(--text-primary)] hover:bg-transparency-hover aria-expanded:bg-transparency-hover aria-expanded:text-[var(--text-primary)]\",\n ghost:\n \"bg-transparent text-[var(--text-primary)] hover:bg-transparency-hover aria-expanded:bg-transparency-hover aria-expanded:text-[var(--text-primary)]\",\n chrome:\n \"border border-transparent bg-transparent text-[var(--text-tertiary)] shadow-none hover:border-transparent hover:bg-[var(--transparency-hover)] hover:text-[var(--text-primary)] active:bg-[var(--transparency-active)] active:text-[var(--text-primary)] aria-expanded:border-transparent aria-expanded:bg-[var(--transparency-block)] aria-expanded:text-[var(--text-primary)] disabled:pointer-events-auto disabled:cursor-not-allowed disabled:opacity-45\",\n destructive:\n \"bg-[var(--state-danger)] text-[var(--white-stationary)] hover:bg-[var(--state-danger-hover)] focus-visible:border-[var(--state-danger)] focus-visible:ring-[color-mix(in_srgb,var(--state-danger)_25%,transparent)]\",\n link: \"text-primary underline-offset-4 hover:underline\"\n },\n size: {\n default:\n \"h-8 gap-[6px] px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2\",\n dialog:\n \"h-8 gap-[6px] rounded-md px-3 text-sm font-normal leading-5 has-data-[icon=inline-end]:pr-2.5 has-data-[icon=inline-start]:pl-2.5\",\n xs: \"h-6 gap-1 rounded-sm px-2 text-xs in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3\",\n sm: \"h-7 gap-1 rounded-sm px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5\",\n lg: \"h-9 gap-2 px-3 has-data-[icon=inline-end]:pr-2.5 has-data-[icon=inline-start]:pl-2.5\",\n icon: \"size-8\",\n \"icon-xs\":\n \"size-6 rounded-sm in-data-[slot=button-group]:rounded-md [&_svg:not([class*='size-'])]:size-3\",\n \"icon-sm\": \"size-7 rounded-sm in-data-[slot=button-group]:rounded-md\",\n \"icon-lg\": \"size-9\"\n }\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\"\n },\n compoundVariants: [\n {\n variant: \"chrome\",\n size: \"icon-sm\",\n class: \"rounded-[4px]\"\n }\n ]\n }\n);\n\nfunction Button({\n className,\n variant = \"default\",\n size = \"default\",\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean;\n }) {\n const Comp = asChild ? Slot.Root : \"button\";\n\n return (\n <Comp\n data-slot=\"button\"\n data-variant={variant}\n data-size={size}\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n );\n}\n\nexport { Button, buttonVariants };\n","import * as React from \"react\";\n\nimport { cn } from \"#lib/utils\";\n\nfunction Card({\n className,\n size = \"default\",\n ...props\n}: React.ComponentProps<\"div\"> & { size?: \"default\" | \"sm\" }) {\n return (\n <div\n data-slot=\"card\"\n data-size={size}\n className={cn(\n \"group/card flex flex-col gap-4 overflow-hidden rounded-lg border border-border/70 bg-card py-4 text-sm text-card-foreground shadow-none has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:gap-3 data-[size=sm]:py-3 data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-lg *:[img:last-child]:rounded-b-lg\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction CardHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-header\"\n className={cn(\n \"group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-lg px-4 group-data-[size=sm]/card:px-3 has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:border-border/70 [.border-b]:pb-4 group-data-[size=sm]/card:[.border-b]:pb-3\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction CardTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-title\"\n className={cn(\n \"text-base leading-snug font-medium group-data-[size=sm]/card:text-sm\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction CardDescription({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-description\"\n className={cn(\"text-sm leading-[1.3] text-muted-foreground\", className)}\n {...props}\n />\n );\n}\n\nfunction CardAction({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-action\"\n className={cn(\n \"col-start-2 row-span-2 row-start-1 self-start justify-self-end\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction CardContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-content\"\n className={cn(\"px-4 group-data-[size=sm]/card:px-3\", className)}\n {...props}\n />\n );\n}\n\nfunction CardFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-footer\"\n className={cn(\n \"flex items-center rounded-b-lg border-t border-border/70 bg-muted/50 p-4 group-data-[size=sm]/card:p-3\",\n className\n )}\n {...props}\n />\n );\n}\n\nexport {\n Card,\n CardHeader,\n CardFooter,\n CardTitle,\n CardAction,\n CardDescription,\n CardContent\n};\n","import * as React from \"react\";\nimport { Checkbox as CheckboxPrimitive } from \"radix-ui\";\n\nimport { CheckIcon } from \"#icons/system-icons\";\nimport { cn } from \"#lib/utils\";\n\nfunction Checkbox({\n className,\n ...props\n}: React.ComponentProps<typeof CheckboxPrimitive.Root>) {\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n className={cn(\n \"peer inline-flex size-4 shrink-0 items-center justify-center rounded-[4px] border border-[var(--border-1)] bg-[var(--transparency-block)] text-[var(--text-inverted)] transition-[background-color,border-color,color,box-shadow] outline-none focus-visible:border-[var(--border-focus)] focus-visible:ring-2 focus-visible:ring-[color-mix(in_srgb,var(--border-focus)_30%,transparent)] disabled:cursor-not-allowed disabled:border-[var(--border-1)] disabled:bg-[var(--transparency-block)] disabled:text-[var(--text-inverted)] disabled:opacity-100 data-disabled:border-[var(--border-1)] aria-invalid:border-[var(--state-danger)] aria-invalid:ring-2 aria-invalid:ring-[color-mix(in_srgb,var(--state-danger)_20%,transparent)] data-[state=checked]:border-[var(--text-primary)] data-[state=checked]:bg-[var(--text-primary)] data-[state=unchecked]:hover:border-[color-mix(in_srgb,var(--text-primary)_40%,transparent)] disabled:data-[state=checked]:border-[var(--border-1)] disabled:data-[state=checked]:bg-[var(--text-disabled)] data-disabled:data-[state=checked]:border-[var(--border-1)]\",\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n data-slot=\"checkbox-indicator\"\n className=\"grid place-content-center text-current transition-none [&>svg]:size-3\"\n >\n <CheckIcon size={14} />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n );\n}\n\nexport { Checkbox };\n","import * as React from \"react\";\nimport { Dialog as DialogPrimitive } from \"radix-ui\";\n\nimport { Button } from \"#components/button\";\nimport { CloseIcon } from \"#icons/system-icons\";\nimport { cn } from \"#lib/utils\";\n\nconst dialogCloseDurationMs = 150;\n\nconst DialogMotionContext = React.createContext<{ open: boolean }>({\n open: false\n});\n\nfunction Dialog({\n defaultOpen,\n onOpenChange,\n open,\n ...props\n}: Omit<React.ComponentProps<typeof DialogPrimitive.Root>, \"onOpenChange\"> & {\n onOpenChange?: (open: boolean) => void;\n}) {\n const [uncontrolledOpen, setUncontrolledOpen] = React.useState(\n defaultOpen ?? false\n );\n const currentOpen = open ?? uncontrolledOpen;\n\n const handleOpenChange = React.useCallback(\n (nextOpen: boolean) => {\n if (open === undefined) {\n setUncontrolledOpen(nextOpen);\n }\n onOpenChange?.(nextOpen);\n },\n [onOpenChange, open]\n );\n\n return (\n <DialogMotionContext.Provider value={{ open: currentOpen }}>\n <DialogPrimitive.Root\n data-slot=\"dialog\"\n open={currentOpen}\n onOpenChange={handleOpenChange}\n {...props}\n />\n </DialogMotionContext.Provider>\n );\n}\n\nfunction DialogTrigger({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />;\n}\n\nfunction DialogPortal({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />;\n}\n\nfunction DialogClose({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />;\n}\n\nfunction DialogOverlay({\n className,\n style,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n data-slot=\"dialog-overlay\"\n className={cn(\n \"fixed inset-0 isolate bg-[var(--backdrop)] duration-150 supports-backdrop-filter:backdrop-blur-sm data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0\",\n className\n )}\n style={{ zIndex: \"var(--z-dialog-overlay)\", ...style }}\n {...props}\n />\n );\n}\n\nfunction DialogContent({\n className,\n children,\n overlayClassName,\n portaled = true,\n showCloseButton = true,\n style,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content> & {\n overlayClassName?: string;\n portaled?: boolean;\n showCloseButton?: boolean;\n}) {\n const { open } = React.useContext(DialogMotionContext);\n const [mounted, setMounted] = React.useState(open);\n\n React.useEffect(() => {\n if (open) {\n setMounted(true);\n return undefined;\n }\n\n const timeout = window.setTimeout(() => {\n setMounted(false);\n }, dialogCloseDurationMs);\n\n return () => {\n window.clearTimeout(timeout);\n };\n }, [open]);\n\n if (!mounted) {\n return null;\n }\n\n const content = (\n <>\n <DialogOverlay className={overlayClassName} forceMount />\n <DialogPrimitive.Content\n data-slot=\"dialog-content\"\n forceMount\n className={cn(\n portaled ? \"fixed\" : \"absolute\",\n \"pointer-events-none top-1/2 left-1/2 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 origin-center gap-3 rounded-[16px] border border-border-1 bg-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 font-[400] leading-[1.3] text-text-secondary *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground\",\n className\n )}\n {...props}\n />\n );\n}\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger\n};\n","import * as React from \"react\";\n\nimport { Button } from \"#components/button\";\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle\n} from \"#components/dialog\";\nimport { cn } from \"#lib/utils\";\n\ntype ConfirmationDialogTone = \"default\" | \"destructive\";\n\nfunction confirmToneClassName(tone: ConfirmationDialogTone) {\n if (tone === \"destructive\") {\n return \"shadow-none\";\n }\n\n return undefined;\n}\n\nfunction ConfirmationDialog({\n cancelLabel,\n children,\n className,\n confirmBusy = false,\n confirmDisabled = false,\n confirmLabel,\n description,\n disableCloseWhileBusy = true,\n footer,\n hideConfirmButton = false,\n onCancel,\n onConfirm,\n onOpenChange,\n open,\n overlayClassName,\n portaled = true,\n tone = \"default\",\n title\n}: {\n cancelLabel: React.ReactNode;\n children?: React.ReactNode;\n className?: string;\n confirmBusy?: boolean;\n confirmDisabled?: boolean;\n confirmLabel: React.ReactNode;\n description?: React.ReactNode;\n disableCloseWhileBusy?: boolean;\n footer?: React.ReactNode;\n hideConfirmButton?: boolean;\n onCancel?: () => void;\n onConfirm?: () => void;\n onOpenChange: (open: boolean) => void;\n open: boolean;\n overlayClassName?: string;\n portaled?: boolean;\n tone?: ConfirmationDialogTone;\n title: React.ReactNode;\n}) {\n const isCloseDisabled = disableCloseWhileBusy && confirmBusy;\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogContent\n className={cn(\n \"max-w-[calc(100%-2rem)] text-left sm:max-w-[360px]\",\n className\n )}\n overlayClassName={cn(overlayClassName)}\n portaled={portaled}\n showCloseButton={false}\n onEscapeKeyDown={(event) => {\n if (isCloseDisabled) {\n event.preventDefault();\n }\n }}\n onInteractOutside={(event) => {\n if (isCloseDisabled) {\n event.preventDefault();\n }\n }}\n >\n <DialogHeader>\n <DialogTitle>{title}</DialogTitle>\n {description ? (\n <DialogDescription>{description}</DialogDescription>\n ) : null}\n </DialogHeader>\n {children ? (\n <div className=\"text-sm leading-[1.3] text-text-secondary\">\n {children}\n </div>\n ) : null}\n {footer ?? (\n <DialogFooter>\n <Button\n disabled={confirmBusy}\n size=\"dialog\"\n type=\"button\"\n variant=\"ghost\"\n onClick={() => {\n onCancel?.();\n onOpenChange(false);\n }}\n >\n {cancelLabel}\n </Button>\n {hideConfirmButton ? null : (\n <Button\n disabled={confirmBusy || confirmDisabled}\n size=\"dialog\"\n type=\"button\"\n variant={tone === \"default\" ? \"default\" : \"destructive\"}\n className={cn(\"shadow-none\", confirmToneClassName(tone))}\n onClick={() => {\n onConfirm?.();\n }}\n >\n {confirmLabel}\n </Button>\n )}\n </DialogFooter>\n )}\n </DialogContent>\n </Dialog>\n );\n}\n\nexport { ConfirmationDialog };\nexport type { ConfirmationDialogTone };\n","import * as React from \"react\";\nimport { createPortal } from \"react-dom\";\n\nimport { ArrowLeftIcon, ArrowRightIcon } from \"#icons/system-icons\";\nimport { cn } from \"#lib/utils\";\n\nexport interface DatePickerLabels {\n placeholder: string;\n previousMonth: string;\n nextMonth: string;\n clear: string;\n today: string;\n weekdayLabels: readonly [\n string,\n string,\n string,\n string,\n string,\n string,\n string\n ];\n}\n\nexport interface DatePickerProps extends Omit<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n \"onChange\" | \"value\" | \"type\"\n> {\n value?: string;\n onValueChange?: (value: string) => void;\n labels?: Partial<DatePickerLabels>;\n formatDisplayValue?: (date: Date) => string;\n formatMonthLabel?: (date: Date) => string;\n}\n\nconst defaultLabels: DatePickerLabels = {\n placeholder: \"Year / Month / Day\",\n previousMonth: \"Previous month\",\n nextMonth: \"Next month\",\n clear: \"Clear\",\n today: \"Today\",\n weekdayLabels: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"]\n};\n\nconst DATE_PICKER_POPOVER_WIDTH_PX = 264;\nconst DATE_PICKER_POPOVER_HEIGHT_PX = 336;\nconst DATE_PICKER_POPOVER_GAP_PX = 6;\nconst DATE_PICKER_VIEWPORT_MARGIN_PX = 8;\n\nfunction parseDateValue(value: string | undefined): Date | null {\n if (!value) {\n return null;\n }\n\n const [year, month, day] = value.split(\"-\").map(Number);\n if (!year || !month || !day) {\n return null;\n }\n\n return new Date(year, month - 1, day);\n}\n\nfunction formatDateValue(date: Date): string {\n const year = date.getFullYear();\n const month = `${date.getMonth() + 1}`.padStart(2, \"0\");\n const day = `${date.getDate()}`.padStart(2, \"0\");\n return `${year}-${month}-${day}`;\n}\n\nfunction defaultDisplayValueFormatter(date: Date): string {\n return new Intl.DateTimeFormat(undefined, {\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\"\n }).format(date);\n}\n\nfunction defaultMonthLabelFormatter(date: Date): string {\n return new Intl.DateTimeFormat(undefined, {\n year: \"numeric\",\n month: \"long\"\n }).format(date);\n}\n\nfunction isSameDate(left: Date | null, right: Date | null): boolean {\n return Boolean(\n left &&\n right &&\n left.getFullYear() === right.getFullYear() &&\n left.getMonth() === right.getMonth() &&\n left.getDate() === right.getDate()\n );\n}\n\nfunction buildMonthGrid(monthDate: Date): Date[] {\n const firstOfMonth = new Date(\n monthDate.getFullYear(),\n monthDate.getMonth(),\n 1\n );\n const gridStart = new Date(firstOfMonth);\n gridStart.setDate(firstOfMonth.getDate() - firstOfMonth.getDay());\n\n return Array.from({ length: 42 }, (_, index) => {\n const date = new Date(gridStart);\n date.setDate(gridStart.getDate() + index);\n return date;\n });\n}\n\nfunction resolvePopoverPosition(rect: DOMRect): {\n top: number;\n left: number;\n width: number;\n} {\n const width = Math.max(rect.width, DATE_PICKER_POPOVER_WIDTH_PX);\n const maxLeft = window.innerWidth - width - DATE_PICKER_VIEWPORT_MARGIN_PX;\n const left = Math.max(\n DATE_PICKER_VIEWPORT_MARGIN_PX,\n Math.min(rect.left, Math.max(DATE_PICKER_VIEWPORT_MARGIN_PX, maxLeft))\n );\n const belowTop = rect.bottom + DATE_PICKER_POPOVER_GAP_PX;\n const aboveTop =\n rect.top - DATE_PICKER_POPOVER_GAP_PX - DATE_PICKER_POPOVER_HEIGHT_PX;\n const canOpenBelow =\n belowTop + DATE_PICKER_POPOVER_HEIGHT_PX <=\n window.innerHeight - DATE_PICKER_VIEWPORT_MARGIN_PX;\n const top = canOpenBelow\n ? belowTop\n : Math.max(DATE_PICKER_VIEWPORT_MARGIN_PX, aboveTop);\n\n return { top, left, width };\n}\n\nfunction subscribeScrollableAncestors(\n trigger: HTMLElement,\n onScrollLike: () => void\n): () => void {\n const cleanups: Array<() => void> = [];\n let element: HTMLElement | null = trigger.parentElement;\n\n while (element && element !== document.documentElement) {\n const { overflowX, overflowY } = window.getComputedStyle(element);\n if (\n overflowY === \"auto\" ||\n overflowY === \"scroll\" ||\n overflowY === \"overlay\" ||\n overflowX === \"auto\" ||\n overflowX === \"scroll\" ||\n overflowX === \"overlay\"\n ) {\n element.addEventListener(\"scroll\", onScrollLike, { passive: true });\n const current = element;\n cleanups.push(() => current.removeEventListener(\"scroll\", onScrollLike));\n }\n element = element.parentElement;\n }\n\n return () => cleanups.forEach((dispose) => dispose());\n}\n\nconst DatePicker = React.forwardRef<HTMLButtonElement, DatePickerProps>(\n (\n {\n className,\n value,\n onValueChange,\n onClick,\n disabled,\n labels,\n formatDisplayValue = defaultDisplayValueFormatter,\n formatMonthLabel = defaultMonthLabelFormatter,\n ...props\n },\n ref\n ) => {\n const resolvedLabels: DatePickerLabels = {\n ...defaultLabels,\n ...labels,\n weekdayLabels: labels?.weekdayLabels ?? defaultLabels.weekdayLabels\n };\n const triggerRef = React.useRef<HTMLButtonElement | null>(null);\n const popoverRef = React.useRef<HTMLDivElement | null>(null);\n const selectedDate = React.useMemo(() => parseDateValue(value), [value]);\n const [isOpen, setIsOpen] = React.useState(false);\n const [visibleMonth, setVisibleMonth] = React.useState(\n () => selectedDate ?? new Date()\n );\n const [popoverPosition, setPopoverPosition] = React.useState<{\n top: number;\n left: number;\n width: number;\n } | null>(null);\n\n React.useEffect(() => {\n if (selectedDate) {\n setVisibleMonth(selectedDate);\n }\n }, [selectedDate]);\n\n const openPopover = React.useCallback(() => {\n const trigger = triggerRef.current;\n if (!trigger) {\n return;\n }\n setPopoverPosition(\n resolvePopoverPosition(trigger.getBoundingClientRect())\n );\n setIsOpen(true);\n }, []);\n\n React.useLayoutEffect(() => {\n if (!isOpen) {\n return;\n }\n\n const sync = () => {\n const element = triggerRef.current;\n if (!element) {\n return;\n }\n setPopoverPosition(\n resolvePopoverPosition(element.getBoundingClientRect())\n );\n };\n\n sync();\n const rafId = window.requestAnimationFrame(sync);\n return () => window.cancelAnimationFrame(rafId);\n }, [isOpen]);\n\n React.useEffect(() => {\n if (!isOpen) {\n return undefined;\n }\n\n const ac = new AbortController();\n const { signal } = ac;\n\n const handlePointerDown = (event: PointerEvent) => {\n const target = event.target as Node | null;\n if (\n target &&\n (triggerRef.current?.contains(target) ||\n popoverRef.current?.contains(target))\n ) {\n return;\n }\n setIsOpen(false);\n };\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n setIsOpen(false);\n triggerRef.current?.focus();\n }\n };\n\n const updatePosition = () => {\n const element = triggerRef.current;\n if (!element) {\n return;\n }\n setPopoverPosition(\n resolvePopoverPosition(element.getBoundingClientRect())\n );\n };\n\n document.addEventListener(\"pointerdown\", handlePointerDown, { signal });\n document.addEventListener(\"keydown\", handleKeyDown, { signal });\n window.addEventListener(\"resize\", updatePosition, { signal });\n document.addEventListener(\n \"wheel\",\n () => window.requestAnimationFrame(updatePosition),\n {\n capture: true,\n passive: true,\n signal\n }\n );\n\n const unsubAncestors = triggerRef.current\n ? subscribeScrollableAncestors(triggerRef.current, updatePosition)\n : () => {};\n\n return () => {\n ac.abort();\n unsubAncestors();\n };\n }, [isOpen]);\n\n const today = React.useMemo(() => new Date(), []);\n const monthGrid = React.useMemo(\n () => buildMonthGrid(visibleMonth),\n [visibleMonth]\n );\n\n const displayValue = selectedDate\n ? formatDisplayValue(selectedDate)\n : resolvedLabels.placeholder;\n\n const selectDate = (date: Date) => {\n onValueChange?.(formatDateValue(date));\n setIsOpen(false);\n triggerRef.current?.focus();\n };\n\n return (\n <>\n <button\n ref={(node) => {\n triggerRef.current = node;\n if (typeof ref === \"function\") {\n ref(node);\n } else if (ref) {\n ref.current = node;\n }\n }}\n data-slot=\"date-picker\"\n disabled={disabled}\n type=\"button\"\n className={cn(\n \"inline-flex h-8 min-h-8 w-full items-center justify-start rounded-md border border-transparent bg-[var(--workbench-field-bg)] px-3 text-left text-sm text-foreground transition-[background-color,border-color,box-shadow,color] outline-none hover:bg-muted/60 focus-visible:border-border focus-visible:ring-2 focus-visible:ring-ring/30 disabled:cursor-not-allowed disabled:bg-muted disabled:text-muted-foreground disabled:opacity-100\",\n !selectedDate && \"text-muted-foreground\",\n className\n )}\n onClick={(event) => {\n onClick?.(event);\n if (disabled) {\n return;\n }\n if (isOpen) {\n setIsOpen(false);\n } else {\n openPopover();\n }\n }}\n {...props}\n >\n <span className=\"min-w-0 truncate\">{displayValue}</span>\n </button>\n\n {isOpen && popoverPosition\n ? createPortal(\n <div\n ref={popoverRef}\n data-slot=\"date-picker-content\"\n className=\"fixed z-50 flex min-w-[264px] max-w-[min(100vw-16px,320px)] flex-col overflow-hidden rounded-xl border border-border/70 bg-popover p-3 text-popover-foreground shadow-soft\"\n style={{\n top: popoverPosition.top,\n left: popoverPosition.left,\n width: popoverPosition.width,\n zIndex: \"var(--z-popover)\"\n }}\n >\n <div className=\"mb-3 flex items-center justify-between gap-2\">\n <div className=\"text-sm font-semibold text-foreground\">\n {formatMonthLabel(visibleMonth)}\n </div>\n <div className=\"flex items-center gap-1\">\n <button\n aria-label={resolvedLabels.previousMonth}\n className=\"inline-flex h-7 w-7 items-center justify-center rounded-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground\"\n type=\"button\"\n onClick={() =>\n setVisibleMonth(\n (current) =>\n new Date(\n current.getFullYear(),\n current.getMonth() - 1,\n 1\n )\n )\n }\n >\n <ArrowLeftIcon size={16} />\n </button>\n <button\n aria-label={resolvedLabels.nextMonth}\n className=\"inline-flex h-7 w-7 items-center justify-center rounded-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground\"\n type=\"button\"\n onClick={() =>\n setVisibleMonth(\n (current) =>\n new Date(\n current.getFullYear(),\n current.getMonth() + 1,\n 1\n )\n )\n }\n >\n <ArrowRightIcon size={16} />\n </button>\n </div>\n </div>\n <div className=\"grid grid-cols-7 gap-1 text-center text-xs font-semibold text-muted-foreground\">\n {resolvedLabels.weekdayLabels.map((day) => (\n <div key={day} className=\"py-1\">\n {day}\n </div>\n ))}\n </div>\n <div\n className=\"mt-1 grid grid-cols-7 justify-items-center gap-1\"\n role=\"grid\"\n >\n {monthGrid.map((date) => {\n const isSelected = isSameDate(date, selectedDate);\n const isToday = isSameDate(date, today);\n const inCurrentMonth =\n date.getMonth() === visibleMonth.getMonth();\n\n return (\n <button\n key={formatDateValue(date)}\n aria-pressed={isSelected}\n className={cn(\n \"inline-flex h-8 w-8 items-center justify-center rounded-sm text-sm transition-[background-color,color,box-shadow] hover:bg-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/30\",\n inCurrentMonth\n ? \"text-foreground\"\n : \"text-muted-foreground\",\n isToday &&\n \"bg-primary/10 text-primary shadow-[inset_0_0_0_1px_color-mix(in_srgb,var(--color-primary)_20%,transparent)]\",\n isSelected &&\n \"bg-primary text-primary-foreground hover:bg-primary\"\n )}\n role=\"gridcell\"\n type=\"button\"\n onClick={() => selectDate(date)}\n >\n {date.getDate()}\n </button>\n );\n })}\n </div>\n <div className=\"mt-3 flex items-center justify-between gap-2 border-t border-border/70 pt-3\">\n <button\n className=\"inline-flex min-h-8 items-center justify-center rounded-sm px-3 text-sm font-medium text-muted-foreground transition-colors hover:bg-muted hover:text-foreground\"\n type=\"button\"\n onClick={() => {\n onValueChange?.(\"\");\n setIsOpen(false);\n triggerRef.current?.focus();\n }}\n >\n {resolvedLabels.clear}\n </button>\n <button\n className=\"inline-flex min-h-8 items-center justify-center rounded-sm bg-primary px-3 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90\"\n type=\"button\"\n onClick={() => selectDate(today)}\n >\n {resolvedLabels.today}\n </button>\n </div>\n </div>,\n document.body\n )\n : null}\n </>\n );\n }\n);\n\nDatePicker.displayName = \"DatePicker\";\n\nexport { DatePicker };\n","import * as React from \"react\";\nimport { DropdownMenu as DropdownMenuPrimitive } from \"radix-ui\";\n\nimport { ArrowRightIcon, CheckIcon } from \"#icons/system-icons\";\nimport { cn } from \"#lib/utils\";\nimport {\n MenuSurface,\n menuItemClassName,\n menuItemIndicatorClassName,\n menuItemWithIndicatorClassName\n} from \"../menu-surface\";\n\nfunction DropdownMenu({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Root>) {\n return <DropdownMenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />;\n}\n\nfunction DropdownMenuPortal({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>) {\n return (\n <DropdownMenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" {...props} />\n );\n}\n\nfunction DropdownMenuTrigger({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>) {\n return (\n <DropdownMenuPrimitive.Trigger\n data-slot=\"dropdown-menu-trigger\"\n {...props}\n />\n );\n}\n\nfunction DropdownMenuContent({\n className,\n children,\n align = \"start\",\n sideOffset = 4,\n style,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Content>) {\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n asChild\n data-slot=\"dropdown-menu-content\"\n align={align}\n sideOffset={sideOffset}\n {...props}\n >\n <MenuSurface\n data-slot=\"dropdown-menu-content\"\n className={cn(\n \"z-50 max-h-(--radix-dropdown-menu-content-available-height) w-(--radix-dropdown-menu-trigger-width) min-w-32 origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto\",\n className\n )}\n style={{ zIndex: \"var(--z-popover)\", ...style }}\n >\n {children}\n </MenuSurface>\n </DropdownMenuPrimitive.Content>\n </DropdownMenuPrimitive.Portal>\n );\n}\n\nfunction DropdownMenuGroup({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Group>) {\n return (\n <DropdownMenuPrimitive.Group\n data-slot=\"dropdown-menu-group\"\n className={cn(\"flex flex-col gap-0.5\", className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean;\n variant?: \"default\" | \"destructive\";\n}) {\n return (\n <DropdownMenuPrimitive.Item\n data-inset={inset}\n data-slot=\"dropdown-menu-item\"\n data-variant={variant}\n className={cn(\n \"group/dropdown-menu-item\",\n menuItemClassName,\n \"data-inset:pl-7 data-[variant=destructive]:text-[var(--state-danger)] data-[variant=destructive]:focus:bg-[color-mix(in_srgb,var(--state-danger)_10%,transparent)] data-[variant=destructive]:focus:text-[var(--state-danger)] data-[variant=destructive]:hover:bg-[color-mix(in_srgb,var(--state-danger)_10%,transparent)] data-[variant=destructive]:hover:text-[var(--state-danger)] data-[variant=destructive]:*:[svg]:text-[var(--state-danger)]\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.CheckboxItem\n checked={checked}\n data-inset={inset}\n data-slot=\"dropdown-menu-checkbox-item\"\n className={cn(\n menuItemWithIndicatorClassName,\n \"data-inset:pl-7\",\n className\n )}\n {...props}\n >\n <span\n className={menuItemIndicatorClassName}\n data-slot=\"dropdown-menu-checkbox-item-indicator\"\n >\n <DropdownMenuPrimitive.ItemIndicator>\n <CheckIcon />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n );\n}\n\nfunction DropdownMenuRadioGroup({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>) {\n return (\n <DropdownMenuPrimitive.RadioGroup\n data-slot=\"dropdown-menu-radio-group\"\n className={cn(\"flex flex-col gap-0.5\", className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.RadioItem\n data-inset={inset}\n data-slot=\"dropdown-menu-radio-item\"\n className={cn(\n menuItemWithIndicatorClassName,\n \"data-inset:pl-7\",\n className\n )}\n {...props}\n >\n <span\n className={menuItemIndicatorClassName}\n data-slot=\"dropdown-menu-radio-item-indicator\"\n >\n <DropdownMenuPrimitive.ItemIndicator>\n <CheckIcon />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n );\n}\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.Label\n data-inset={inset}\n data-slot=\"dropdown-menu-label\"\n className={cn(\n \"px-1.5 py-1 text-xs font-medium text-[var(--text-secondary)] data-inset:pl-7\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>) {\n return (\n <DropdownMenuPrimitive.Separator\n data-slot=\"dropdown-menu-separator\"\n className={cn(\"mx-2 my-0.5 h-px bg-[var(--border-1)]\", className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuShortcut({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"dropdown-menu-shortcut\"\n className={cn(\n \"ml-auto text-xs tracking-widest text-[var(--text-secondary)] group-focus/dropdown-menu-item:text-[var(--text-primary)]\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSub({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>) {\n return <DropdownMenuPrimitive.Sub data-slot=\"dropdown-menu-sub\" {...props} />;\n}\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.SubTrigger\n data-inset={inset}\n data-slot=\"dropdown-menu-sub-trigger\"\n className={cn(\n menuItemClassName,\n \"data-inset:pl-7 data-open:bg-[var(--transparency-block)] data-open:text-[var(--text-primary)]\",\n className\n )}\n {...props}\n >\n {children}\n <ArrowRightIcon className=\"ml-auto\" />\n </DropdownMenuPrimitive.SubTrigger>\n );\n}\n\nfunction DropdownMenuSubContent({\n className,\n children,\n style,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>) {\n return (\n <DropdownMenuPrimitive.SubContent\n asChild\n data-slot=\"dropdown-menu-sub-content\"\n {...props}\n >\n <MenuSurface\n data-slot=\"dropdown-menu-sub-content\"\n className={cn(\n \"z-50 min-w-[96px] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden\",\n className\n )}\n style={{ zIndex: \"var(--z-popover)\", ...style }}\n >\n {children}\n </MenuSurface>\n </DropdownMenuPrimitive.SubContent>\n );\n}\n\nexport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuPortal,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger\n};\n","import * as React from \"react\";\nimport { Slot } from \"radix-ui\";\n\nimport { cn } from \"#lib/utils\";\n\nconst menuSurfaceClassName =\n \"t-dropdown flex flex-col gap-0.5 rounded-[8px] border border-[var(--border-1)] bg-[var(--background-fronted)] p-1 text-sm text-[var(--text-primary)] shadow-panel outline-none\";\nconst menuItemClassName =\n \"relative flex cursor-pointer items-center gap-1.5 rounded-sm px-2 py-1 text-sm text-[var(--text-primary)] outline-hidden transition-colors duration-200 select-none hover:bg-[var(--transparency-hover)] hover:text-[var(--text-primary)] focus:bg-[var(--transparency-hover)] focus:text-[var(--text-primary)] data-[highlighted]:bg-[var(--transparency-hover)] data-[highlighted]:text-[var(--text-primary)] data-disabled:pointer-events-none data-disabled:text-[var(--text-disabled)] [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2\";\nconst menuItemWithIndicatorClassName = `${menuItemClassName} pr-8`;\nconst menuItemIndicatorClassName =\n \"pointer-events-none absolute right-2 flex size-4 items-center justify-center\";\n\ntype MenuSurfaceProps = React.HTMLAttributes<HTMLDivElement> & {\n \"data-state\"?: \"open\" | \"closed\";\n asChild?: boolean;\n state?: \"open\" | \"closed\";\n};\n\nconst MenuSurface = React.forwardRef<HTMLDivElement, MenuSurfaceProps>(\n (\n {\n asChild = false,\n className,\n \"data-state\": dataState,\n state = \"open\",\n ...props\n },\n ref\n ) => {\n const Comp = asChild ? Slot.Root : \"div\";\n\n return (\n <Comp\n {...props}\n ref={ref}\n className={cn(menuSurfaceClassName, className)}\n data-state={dataState ?? state}\n />\n );\n }\n);\nMenuSurface.displayName = \"MenuSurface\";\n\nexport {\n MenuSurface,\n menuItemClassName,\n menuItemIndicatorClassName,\n menuItemWithIndicatorClassName,\n menuSurfaceClassName\n};\n","import * as React from \"react\";\n\nimport { cn } from \"#lib/utils\";\n\ntype InputVariant = \"lg\" | \"md\" | \"sm\" | \"otp\";\n\ntype InputProps = Omit<React.ComponentProps<\"input\">, \"size\"> & {\n variant?: InputVariant;\n size?: \"default\" | \"sm\";\n};\n\nconst inputVariantClassNames: Record<InputVariant | \"default\", string> = {\n default: \"h-8 rounded-[6px] px-3 py-0 text-sm leading-[1.3]\",\n lg: \"h-12 rounded-[8px] px-4 py-3 text-base leading-[1.3]\",\n md: \"h-8 rounded-[6px] px-3 py-0 text-sm leading-[1.3]\",\n sm: \"h-8 rounded-[6px] px-3 py-0 text-sm leading-[1.3]\",\n otp: \"h-12 w-12 rounded-[4px] px-0 text-center text-xl font-medium sm:h-14 sm:w-14 sm:text-2xl\"\n};\n\nfunction Input({\n className,\n size = \"default\",\n type,\n variant,\n ...props\n}: InputProps) {\n const resolvedVariant = variant ?? (size === \"sm\" ? \"sm\" : \"default\");\n\n return (\n <input\n type={type}\n data-slot=\"input\"\n data-size={size}\n data-variant={resolvedVariant}\n className={cn(\n \"w-full min-w-0 border border-transparent bg-[var(--transparency-block)] font-normal text-[var(--text-primary)] shadow-none transition-colors duration-200 outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-[var(--text-primary)] placeholder:text-[var(--text-placeholder)] hover:bg-[var(--transparency-hover)] focus:bg-[var(--transparency-hover)] focus-visible:border-transparent focus-visible:bg-[var(--transparency-hover)] focus-visible:ring-0 disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-[var(--transparency-block)] disabled:text-[var(--text-disabled)] disabled:opacity-100 aria-invalid:border-[var(--state-danger)] aria-invalid:bg-[var(--transparency-block)] aria-invalid:hover:bg-[var(--transparency-hover)] aria-invalid:focus:bg-[var(--transparency-hover)] aria-invalid:focus-visible:bg-[var(--transparency-hover)] aria-invalid:ring-0 aria-invalid:shadow-none\",\n inputVariantClassNames[resolvedVariant],\n !variant && size === \"sm\" && \"h-7 rounded-[4px] px-2 text-xs\",\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n","import * as React from \"react\";\n\nimport {\n AgentSessionsIcon,\n CloseIcon,\n FileIcon,\n FolderFilledIcon,\n IssueIcon\n} from \"#icons/system-icons\";\nimport { cn } from \"#lib/utils\";\n\ntype MentionPillKind = \"issue\" | \"session\" | \"file\";\ntype MentionPillFileKind = \"file\" | \"folder\";\n\nconst mentionPillTokenByKind: Record<MentionPillKind, string> = {\n issue: \"var(--rich-text-mention-issue)\",\n session: \"var(--rich-text-mention-session)\",\n file: \"var(--rich-text-mention-file)\"\n};\n\nconst mentionPillDataKindByKind: Record<MentionPillKind, string> = {\n issue: \"task\",\n session: \"session\",\n file: \"file\"\n};\n\nexport interface MentionPillProps extends Omit<\n React.ComponentProps<\"span\">,\n \"children\"\n> {\n fileKind?: MentionPillFileKind;\n kind: MentionPillKind;\n label: React.ReactNode;\n removable?: boolean;\n removeButtonProps?: React.ComponentProps<\"button\">;\n summary?: React.ReactNode;\n}\n\nfunction MentionPill({\n className,\n fileKind = \"file\",\n kind,\n label,\n removable = kind === \"file\",\n removeButtonProps,\n style,\n summary,\n ...props\n}: MentionPillProps): React.JSX.Element {\n const isFile = kind === \"file\";\n const Icon = isFile\n ? fileKind === \"folder\"\n ? FolderFilledIcon\n : FileIcon\n : kind === \"issue\"\n ? IssueIcon\n : AgentSessionsIcon;\n const color =\n isFile && fileKind === \"folder\"\n ? \"var(--rich-text-folder)\"\n : mentionPillTokenByKind[kind];\n const dataKind = mentionPillDataKindByKind[kind];\n const iconSizeClassName = isFile ? \"size-3.5\" : \"size-4\";\n const iconShellClassName = isFile ? \"size-3.5\" : \"size-[18px]\";\n\n return (\n <span\n className={cn(\n \"group relative top-[3px] inline-flex max-w-full cursor-default items-center overflow-hidden rounded-[4px] border border-transparent bg-transparent py-0.5 align-baseline text-sm font-medium leading-5 no-underline transition-colors hover:border-transparent hover:bg-[color-mix(in_srgb,currentColor_12%,transparent)]\",\n isFile ? \"gap-1.5 px-1.5\" : \"gap-1 px-1\",\n className\n )}\n data-agent-file-mention=\"true\"\n data-agent-mention-kind={dataKind}\n data-slot=\"mention-pill\"\n style={{\n color,\n ...style\n }}\n {...props}\n >\n <span\n aria-hidden={removable ? undefined : true}\n className={cn(\n \"relative grid shrink-0 place-items-center\",\n iconShellClassName\n )}\n >\n <Icon\n className={cn(\n \"text-current transition-opacity\",\n removable && \"group-hover:opacity-0 group-focus-within:opacity-0\",\n iconSizeClassName\n )}\n />\n {removable ? (\n <button\n aria-label={removeButtonProps?.[\"aria-label\"]}\n type=\"button\"\n {...removeButtonProps}\n className={cn(\n \"absolute top-1/2 left-1/2 inline-flex size-5 -translate-x-1/2 -translate-y-1/2 items-center justify-center rounded-sm text-[var(--text-secondary)] opacity-0 transition-opacity group-hover:opacity-100 hover:bg-transparency-block hover:text-[var(--text-primary)] focus-visible:opacity-100\",\n removeButtonProps?.className\n )}\n >\n <CloseIcon className=\"size-3.5\" />\n </button>\n ) : null}\n </span>\n <span className=\"min-w-0 overflow-hidden text-ellipsis whitespace-nowrap\">\n <span>{label}</span>\n {summary ? <span className=\"text-current\"> {summary}</span> : null}\n </span>\n </span>\n );\n}\n\nexport { MentionPill };\nexport type { MentionPillFileKind, MentionPillKind };\n","import * as React from \"react\";\nimport { Popover as PopoverPrimitive } from \"radix-ui\";\n\nimport { cn } from \"#lib/utils\";\n\nfunction Popover({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />;\n}\n\nfunction PopoverTrigger({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />;\n}\n\nfunction PopoverPortal({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Portal>) {\n return <PopoverPrimitive.Portal data-slot=\"popover-portal\" {...props} />;\n}\n\nfunction PopoverClose({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Close>) {\n return <PopoverPrimitive.Close data-slot=\"popover-close\" {...props} />;\n}\n\nfunction PopoverContent({\n className,\n align = \"center\",\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Content>) {\n return (\n <PopoverPortal>\n <PopoverPrimitive.Content\n data-slot=\"popover-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"t-dropdown z-50 flex w-72 origin-(--radix-popover-content-transform-origin) flex-col gap-2.5 rounded-lg border border-[var(--border-1)] bg-[var(--background-fronted)] p-3 text-sm text-popover-foreground shadow-soft outline-hidden\",\n className\n )}\n style={{ zIndex: \"var(--z-popover)\" }}\n {...props}\n />\n </PopoverPortal>\n );\n}\n\nfunction PopoverAnchor({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\n return <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />;\n}\n\nexport {\n Popover,\n PopoverAnchor,\n PopoverClose,\n PopoverContent,\n PopoverPortal,\n PopoverTrigger\n};\n","import * as ResizablePrimitive from \"react-resizable-panels\";\n\nimport { cn } from \"#lib/utils\";\n\nfunction ResizablePanelGroup({\n className,\n orientation = \"horizontal\",\n ...props\n}: React.ComponentProps<typeof ResizablePrimitive.Group>) {\n return (\n <ResizablePrimitive.Group\n data-orientation={orientation}\n data-slot=\"resizable-panel-group\"\n className={cn(\n \"flex h-full w-full data-[orientation=vertical]:flex-col\",\n className\n )}\n {...props}\n orientation={orientation}\n />\n );\n}\n\nfunction ResizablePanel(\n props: React.ComponentProps<typeof ResizablePrimitive.Panel>\n) {\n return <ResizablePrimitive.Panel data-slot=\"resizable-panel\" {...props} />;\n}\n\nfunction ResizableHandle({\n className,\n withHandle,\n ...props\n}: React.ComponentProps<typeof ResizablePrimitive.Separator> & {\n withHandle?: boolean;\n}) {\n return (\n <ResizablePrimitive.Separator\n data-slot=\"resizable-handle\"\n className={cn(\n \"group relative flex items-center justify-center bg-transparent outline-none after:absolute after:bg-border/70 after:transition-colors hover:after:bg-border focus-visible:after:bg-ring aria-[orientation=horizontal]:h-px aria-[orientation=horizontal]:w-full aria-[orientation=horizontal]:cursor-row-resize aria-[orientation=horizontal]:after:inset-x-0 aria-[orientation=horizontal]:after:top-1/2 aria-[orientation=horizontal]:after:h-px aria-[orientation=horizontal]:after:-translate-y-1/2 aria-[orientation=vertical]:h-full aria-[orientation=vertical]:w-px aria-[orientation=vertical]:cursor-col-resize aria-[orientation=vertical]:after:inset-y-0 aria-[orientation=vertical]:after:left-1/2 aria-[orientation=vertical]:after:w-px aria-[orientation=vertical]:after:-translate-x-1/2\",\n className\n )}\n {...props}\n >\n {withHandle ? (\n <div className=\"z-10 flex items-center justify-center rounded-full bg-border/85 opacity-0 transition-[background-color,opacity] group-hover:bg-border group-hover:opacity-100 group-focus-visible:bg-border group-focus-visible:opacity-100 group-aria-[orientation=horizontal]:h-[3px] group-aria-[orientation=horizontal]:w-10 group-aria-[orientation=vertical]:h-10 group-aria-[orientation=vertical]:w-[3px]\" />\n ) : null}\n </ResizablePrimitive.Separator>\n );\n}\n\nexport { ResizableHandle, ResizablePanel, ResizablePanelGroup };\n","import * as React from \"react\";\nimport { ScrollArea as ScrollAreaPrimitive } from \"radix-ui\";\n\nimport { cn } from \"#lib/utils\";\n\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-[var(--border-focus)] focus-visible:ring-2 focus-visible:ring-[color-mix(in_srgb,var(--border-focus)_30%,transparent)] aria-invalid:border-[var(--state-danger)] aria-invalid:ring-2 aria-invalid:ring-[color-mix(in_srgb,var(--state-danger)_20%,transparent)] data-[size=default]:h-[18px] data-[size=default]:w-[32px] data-[size=sm]:h-[14px] data-[size=sm]:w-[24px] data-[state=checked]:bg-[var(--accent)] data-[state=unchecked]:bg-[var(--text-disabled)] data-disabled:cursor-not-allowed data-disabled:opacity-100\",\n className\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className=\"pointer-events-none block rounded-full bg-[var(--white-stationary)] ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 group-data-[size=default]/switch:data-[state=checked]:translate-x-[14px] group-data-[size=sm]/switch:data-[state=checked]:translate-x-[10px] group-data-[size=default]/switch:data-[state=unchecked]:translate-x-0 group-data-[size=sm]/switch:data-[state=unchecked]:translate-x-0\"\n />\n </SwitchPrimitive.Root>\n );\n}\n\nexport { Switch };\n","import * as React from \"react\";\n\nimport { cn } from \"#lib/utils\";\n\nfunction Textarea({ className, ...props }: React.ComponentProps<\"textarea\">) {\n return (\n <textarea\n data-slot=\"textarea\"\n className={cn(\n \"flex field-sizing-content min-h-20 w-full rounded-[6px] border border-transparent bg-[var(--transparency-block)] px-3 py-3 text-sm font-normal leading-[1.3] text-[var(--text-primary)] transition-[background-color,border-color,color] outline-none shadow-none placeholder:text-[var(--text-placeholder)] hover:bg-[var(--transparency-hover)] focus:bg-[var(--transparency-hover)] focus-visible:border-transparent focus-visible:bg-[var(--transparency-hover)] focus-visible:ring-0 disabled:cursor-not-allowed disabled:bg-[var(--transparency-block)] disabled:text-[var(--text-disabled)] disabled:opacity-100 aria-invalid:border-[var(--state-danger)] aria-invalid:bg-[var(--transparency-block)] aria-invalid:hover:bg-[var(--transparency-hover)] aria-invalid:focus:bg-[var(--transparency-hover)] aria-invalid:focus-visible:bg-[var(--transparency-hover)] aria-invalid:ring-0 aria-invalid:shadow-none\",\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Textarea };\n","import * as React from \"react\";\nimport { Toast as ToastPrimitive } from \"radix-ui\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport {\n CloseIcon,\n FailedFilledIcon,\n SuccessFilledIcon\n} from \"#icons/system-icons\";\nimport { Spinner } from \"../spinner\";\nimport { cn } from \"#lib/utils\";\n\nconst 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(--white-stationary)]\",\n success:\n \"border-0 bg-[var(--state-success)] text-[var(--text-inverted)]\"\n }\n },\n defaultVariants: {\n variant: \"default\"\n }\n }\n);\n\nfunction ToastRoot({\n className,\n variant,\n busy = false,\n anchor = \"viewport\",\n nodeInsetTopPx = 16,\n children,\n style,\n ...props\n}: React.ComponentProps<typeof ToastPrimitive.Root> &\n VariantProps<typeof toastVariants> & {\n busy?: boolean;\n anchor?: \"viewport\" | \"node\";\n nodeInsetTopPx?: number;\n }) {\n const isDestructive = variant === \"destructive\";\n return (\n <ToastPrimitive.Root\n aria-busy={busy}\n aria-live={isDestructive ? \"assertive\" : \"polite\"}\n data-slot=\"toast\"\n className={cn(\n toastVariants({ variant }),\n anchor === \"node\" && \"absolute left-1/2 -translate-x-1/2\",\n className\n )}\n role={isDestructive ? \"alert\" : \"status\"}\n style={{\n ...(anchor === \"node\" ? { top: `${nodeInsetTopPx}px` } : {}),\n ...style\n }}\n {...props}\n >\n <ToastVisualContext.Provider value={{ busy, variant }}>\n <span className=\"flex min-w-0 max-w-full flex-col items-center justify-center whitespace-normal break-words text-center\">\n {children}\n </span>\n </ToastVisualContext.Provider>\n </ToastPrimitive.Root>\n );\n}\n\nfunction ToastTitle({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof ToastPrimitive.Title>) {\n const toastVisual = React.useContext(ToastVisualContext);\n const StatusIcon =\n toastVisual?.variant && hasToastStatusIcon(toastVisual.variant)\n ? toastStatusIconByVariant[toastVisual.variant]\n : null;\n\n return (\n <ToastPrimitive.Title\n data-slot=\"toast-title\"\n className={cn(\n \"inline-flex max-w-full items-center justify-center gap-[6px] text-center text-sm font-normal leading-normal\",\n className\n )}\n {...props}\n >\n {toastVisual?.busy ? (\n <Spinner\n className=\"shrink-0 text-current\"\n size={16}\n strokeWidth={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":";;;;;;;;;;;;;;;;;;;;AACA,SAAS,WAA8B;AACvC,SAAS,YAAY;AAsCjB;AAlCJ,IAAM,gBAAgB;AAAA,EACpB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SACE;AAAA,QACF,WACE;AAAA,QACF,aACE;AAAA,QACF,SACE;AAAA,QACF,OACE;AAAA,QACF,MAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,IACX;AAAA,EACF;AACF;AAEA,SAAS,MAAM;AAAA,EACb;AAAA,EACA,UAAU;AAAA,EACV,UAAU;AAAA,EACV,GAAG;AACL,GAC8D;AAC5D,QAAM,OAAO,UAAU,KAAK,OAAO;AAEnC,SACE;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,gBAAc;AAAA,MACd,WAAW,GAAG,cAAc,EAAE,QAAQ,CAAC,GAAG,SAAS;AAAA,MAClD,GAAG;AAAA;AAAA,EACN;AAEJ;;;AC9CA,SAAS,OAAAA,YAA8B;AACvC,SAAS,QAAAC,aAAY;AAiEjB,gBAAAC,YAAA;AA7DJ,IAAM,iBAAiBC;AAAA,EACrB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SACE;AAAA,QACF,SACE;AAAA,QACF,WACE;AAAA,QACF,OACE;AAAA,QACF,QACE;AAAA,QACF,aACE;AAAA,QACF,MAAM;AAAA,MACR;AAAA,MACA,MAAM;AAAA,QACJ,SACE;AAAA,QACF,QACE;AAAA,QACF,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,WACE;AAAA,QACF,WAAW;AAAA,QACX,WAAW;AAAA,MACb;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,IACR;AAAA,IACA,kBAAkB;AAAA,MAChB;AAAA,QACE,SAAS;AAAA,QACT,MAAM;AAAA,QACN,OAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AACF;AAEA,SAAS,OAAO;AAAA,EACd;AAAA,EACA,UAAU;AAAA,EACV,OAAO;AAAA,EACP,UAAU;AAAA,EACV,GAAG;AACL,GAGK;AACH,QAAM,OAAO,UAAUC,MAAK,OAAO;AAEnC,SACE,gBAAAF;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,gBAAc;AAAA,MACd,aAAW;AAAA,MACX,WAAW,GAAG,eAAe,EAAE,SAAS,MAAM,UAAU,CAAC,CAAC;AAAA,MACzD,GAAG;AAAA;AAAA,EACN;AAEJ;;;ACjEI,gBAAAG,YAAA;AANJ,SAAS,KAAK;AAAA,EACZ;AAAA,EACA,OAAO;AAAA,EACP,GAAG;AACL,GAA8D;AAC5D,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,aAAW;AAAA,MACX,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,WAAW,EAAE,WAAW,GAAG,MAAM,GAAgC;AACxE,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,UAAU,EAAE,WAAW,GAAG,MAAM,GAAgC;AACvE,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,gBAAgB,EAAE,WAAW,GAAG,MAAM,GAAgC;AAC7E,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,+CAA+C,SAAS;AAAA,MACrE,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,WAAW,EAAE,WAAW,GAAG,MAAM,GAAgC;AACxE,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,YAAY,EAAE,WAAW,GAAG,MAAM,GAAgC;AACzE,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,uCAAuC,SAAS;AAAA,MAC7D,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,WAAW,EAAE,WAAW,GAAG,MAAM,GAAgC;AACxE,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;;;AC3FA,SAAS,YAAY,yBAAyB;AAsBtC,gBAAAC,YAAA;AAjBR,SAAS,SAAS;AAAA,EAChB;AAAA,EACA,GAAG;AACL,GAAwD;AACtD,SACE,gBAAAA;AAAA,IAAC,kBAAkB;AAAA,IAAlB;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEJ,0BAAAA;AAAA,QAAC,kBAAkB;AAAA,QAAlB;AAAA,UACC,aAAU;AAAA,UACV,WAAU;AAAA,UAEV,0BAAAA,KAAC,aAAU,MAAM,IAAI;AAAA;AAAA,MACvB;AAAA;AAAA,EACF;AAEJ;;;AC3BA,YAAY,WAAW;AACvB,SAAS,UAAU,uBAAuB;AAqCpC,SAkFF,UAlFE,OAAAC,MAkGM,YAlGN;AA/BN,IAAM,wBAAwB;AAE9B,IAAM,sBAA4B,oBAAiC;AAAA,EACjE,MAAM;AACR,CAAC;AAED,SAAS,OAAO;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAEG;AACD,QAAM,CAAC,kBAAkB,mBAAmB,IAAU;AAAA,IACpD,eAAe;AAAA,EACjB;AACA,QAAM,cAAc,QAAQ;AAE5B,QAAM,mBAAyB;AAAA,IAC7B,CAAC,aAAsB;AACrB,UAAI,SAAS,QAAW;AACtB,4BAAoB,QAAQ;AAAA,MAC9B;AACA,qBAAe,QAAQ;AAAA,IACzB;AAAA,IACA,CAAC,cAAc,IAAI;AAAA,EACrB;AAEA,SACE,gBAAAA,KAAC,oBAAoB,UAApB,EAA6B,OAAO,EAAE,MAAM,YAAY,GACvD,0BAAAA;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,MAAM;AAAA,MACN,cAAc;AAAA,MACb,GAAG;AAAA;AAAA,EACN,GACF;AAEJ;AAEA,SAAS,cAAc;AAAA,EACrB,GAAG;AACL,GAAyD;AACvD,SAAO,gBAAAA,KAAC,gBAAgB,SAAhB,EAAwB,aAAU,kBAAkB,GAAG,OAAO;AACxE;AAEA,SAAS,aAAa;AAAA,EACpB,GAAG;AACL,GAAwD;AACtD,SAAO,gBAAAA,KAAC,gBAAgB,QAAhB,EAAuB,aAAU,iBAAiB,GAAG,OAAO;AACtE;AAEA,SAAS,YAAY;AAAA,EACnB,GAAG;AACL,GAAuD;AACrD,SAAO,gBAAAA,KAAC,gBAAgB,OAAhB,EAAsB,aAAU,gBAAgB,GAAG,OAAO;AACpE;AAEA,SAAS,cAAc;AAAA,EACrB;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAyD;AACvD,SACE,gBAAAA;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACA,OAAO,EAAE,QAAQ,2BAA2B,GAAG,MAAM;AAAA,MACpD,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,cAAc;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,kBAAkB;AAAA,EAClB;AAAA,EACA,GAAG;AACL,GAIG;AACD,QAAM,EAAE,KAAK,IAAU,iBAAW,mBAAmB;AACrD,QAAM,CAAC,SAAS,UAAU,IAAU,eAAS,IAAI;AAEjD,EAAM,gBAAU,MAAM;AACpB,QAAI,MAAM;AACR,iBAAW,IAAI;AACf,aAAO;AAAA,IACT;AAEA,UAAM,UAAU,OAAO,WAAW,MAAM;AACtC,iBAAW,KAAK;AAAA,IAClB,GAAG,qBAAqB;AAExB,WAAO,MAAM;AACX,aAAO,aAAa,OAAO;AAAA,IAC7B;AAAA,EACF,GAAG,CAAC,IAAI,CAAC;AAET,MAAI,CAAC,SAAS;AACZ,WAAO;AAAA,EACT;AAEA,QAAM,UACJ,iCACE;AAAA,oBAAAA,KAAC,iBAAc,WAAW,kBAAkB,YAAU,MAAC;AAAA,IACvD;AAAA,MAAC,gBAAgB;AAAA,MAAhB;AAAA,QACC,aAAU;AAAA,QACV,YAAU;AAAA,QACV,WAAW;AAAA,UACT,WAAW,UAAU;AAAA,UACrB;AAAA,UACA;AAAA,QACF;AAAA,QACA,OAAO,EAAE,QAAQ,mBAAmB,GAAG,MAAM;AAAA,QAC5C,GAAG;AAAA,QAEH;AAAA;AAAA,UACA,mBACC,gBAAAA,KAAC,gBAAgB,OAAhB,EAAsB,aAAU,gBAAe,SAAO,MACrD;AAAA,YAAC;AAAA;AAAA,cACC,SAAQ;AAAA,cACR,WAAU;AAAA,cACV,MAAK;AAAA,cAEL;AAAA,gCAAAA,KAAC,aAAU;AAAA,gBACX,gBAAAA,KAAC,UAAK,WAAU,WAAU,mBAAK;AAAA;AAAA;AAAA,UACjC,GACF;AAAA;AAAA;AAAA,IAEJ;AAAA,KACF;AAGF,MAAI,CAAC,UAAU;AACb,WAAO;AAAA,EACT;AAEA,SAAO,gBAAAA,KAAC,gBAAa,YAAU,MAAE,mBAAQ;AAC3C;AAEA,SAAS,aAAa,EAAE,WAAW,GAAG,MAAM,GAAgC;AAC1E,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,4BAA4B,SAAS;AAAA,MAClD,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,aAAa;AAAA,EACpB;AAAA,EACA,kBAAkB;AAAA,EAClB;AAAA,EACA,GAAG;AACL,GAEG;AACD,SACE;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEH;AAAA;AAAA,QACA,mBACC,gBAAAA,KAAC,gBAAgB,OAAhB,EAAsB,SAAO,MAC5B,0BAAAA,KAAC,UAAO,SAAQ,SAAQ,MAAK,UAAS,mBAEtC,GACF;AAAA;AAAA;AAAA,EAEJ;AAEJ;AAEA,SAAS,YAAY;AAAA,EACnB;AAAA,EACA,GAAG;AACL,GAAuD;AACrD,SACE,gBAAAA;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,kBAAkB;AAAA,EACzB;AAAA,EACA,GAAG;AACL,GAA6D;AAC3D,SACE,gBAAAA;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;;;AC7IQ,SACE,OAAAC,MADF,QAAAC,aAAA;AAtER,SAAS,qBAAqB,MAA8B;AAC1D,MAAI,SAAS,eAAe;AAC1B,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAEA,SAAS,mBAAmB;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA,cAAc;AAAA,EACd,kBAAkB;AAAA,EAClB;AAAA,EACA;AAAA,EACA,wBAAwB;AAAA,EACxB;AAAA,EACA,oBAAoB;AAAA,EACpB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,OAAO;AAAA,EACP;AACF,GAmBG;AACD,QAAM,kBAAkB,yBAAyB;AAEjD,SACE,gBAAAD,KAAC,UAAO,MAAY,cAClB,0BAAAC;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACA,kBAAkB,GAAG,gBAAgB;AAAA,MACrC;AAAA,MACA,iBAAiB;AAAA,MACjB,iBAAiB,CAAC,UAAU;AAC1B,YAAI,iBAAiB;AACnB,gBAAM,eAAe;AAAA,QACvB;AAAA,MACF;AAAA,MACA,mBAAmB,CAAC,UAAU;AAC5B,YAAI,iBAAiB;AACnB,gBAAM,eAAe;AAAA,QACvB;AAAA,MACF;AAAA,MAEA;AAAA,wBAAAA,MAAC,gBACC;AAAA,0BAAAD,KAAC,eAAa,iBAAM;AAAA,UACnB,cACC,gBAAAA,KAAC,qBAAmB,uBAAY,IAC9B;AAAA,WACN;AAAA,QACC,WACC,gBAAAA,KAAC,SAAI,WAAU,6CACZ,UACH,IACE;AAAA,QACH,UACC,gBAAAC,MAAC,gBACC;AAAA,0BAAAD;AAAA,YAAC;AAAA;AAAA,cACC,UAAU;AAAA,cACV,MAAK;AAAA,cACL,MAAK;AAAA,cACL,SAAQ;AAAA,cACR,SAAS,MAAM;AACb,2BAAW;AACX,6BAAa,KAAK;AAAA,cACpB;AAAA,cAEC;AAAA;AAAA,UACH;AAAA,UACC,oBAAoB,OACnB,gBAAAA;AAAA,YAAC;AAAA;AAAA,cACC,UAAU,eAAe;AAAA,cACzB,MAAK;AAAA,cACL,MAAK;AAAA,cACL,SAAS,SAAS,YAAY,YAAY;AAAA,cAC1C,WAAW,GAAG,eAAe,qBAAqB,IAAI,CAAC;AAAA,cACvD,SAAS,MAAM;AACb,4BAAY;AAAA,cACd;AAAA,cAEC;AAAA;AAAA,UACH;AAAA,WAEJ;AAAA;AAAA;AAAA,EAEJ,GACF;AAEJ;;;ACjIA,YAAYE,YAAW;AACvB,SAAS,oBAAoB;AAkTvB,qBAAAC,WA+BI,OAAAC,MAoBQ,QAAAC,aAnDZ;AAjRN,IAAM,gBAAkC;AAAA,EACtC,aAAa;AAAA,EACb,eAAe;AAAA,EACf,WAAW;AAAA,EACX,OAAO;AAAA,EACP,OAAO;AAAA,EACP,eAAe,CAAC,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,KAAK;AACjE;AAEA,IAAM,+BAA+B;AACrC,IAAM,gCAAgC;AACtC,IAAM,6BAA6B;AACnC,IAAM,iCAAiC;AAEvC,SAAS,eAAe,OAAwC;AAC9D,MAAI,CAAC,OAAO;AACV,WAAO;AAAA,EACT;AAEA,QAAM,CAAC,MAAM,OAAO,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,IAAI,MAAM;AACtD,MAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK;AAC3B,WAAO;AAAA,EACT;AAEA,SAAO,IAAI,KAAK,MAAM,QAAQ,GAAG,GAAG;AACtC;AAEA,SAAS,gBAAgB,MAAoB;AAC3C,QAAM,OAAO,KAAK,YAAY;AAC9B,QAAM,QAAQ,GAAG,KAAK,SAAS,IAAI,CAAC,GAAG,SAAS,GAAG,GAAG;AACtD,QAAM,MAAM,GAAG,KAAK,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG;AAC/C,SAAO,GAAG,IAAI,IAAI,KAAK,IAAI,GAAG;AAChC;AAEA,SAAS,6BAA6B,MAAoB;AACxD,SAAO,IAAI,KAAK,eAAe,QAAW;AAAA,IACxC,MAAM;AAAA,IACN,OAAO;AAAA,IACP,KAAK;AAAA,EACP,CAAC,EAAE,OAAO,IAAI;AAChB;AAEA,SAAS,2BAA2B,MAAoB;AACtD,SAAO,IAAI,KAAK,eAAe,QAAW;AAAA,IACxC,MAAM;AAAA,IACN,OAAO;AAAA,EACT,CAAC,EAAE,OAAO,IAAI;AAChB;AAEA,SAAS,WAAW,MAAmB,OAA6B;AAClE,SAAO;AAAA,IACL,QACA,SACA,KAAK,YAAY,MAAM,MAAM,YAAY,KACzC,KAAK,SAAS,MAAM,MAAM,SAAS,KACnC,KAAK,QAAQ,MAAM,MAAM,QAAQ;AAAA,EACnC;AACF;AAEA,SAAS,eAAe,WAAyB;AAC/C,QAAM,eAAe,IAAI;AAAA,IACvB,UAAU,YAAY;AAAA,IACtB,UAAU,SAAS;AAAA,IACnB;AAAA,EACF;AACA,QAAM,YAAY,IAAI,KAAK,YAAY;AACvC,YAAU,QAAQ,aAAa,QAAQ,IAAI,aAAa,OAAO,CAAC;AAEhE,SAAO,MAAM,KAAK,EAAE,QAAQ,GAAG,GAAG,CAAC,GAAG,UAAU;AAC9C,UAAM,OAAO,IAAI,KAAK,SAAS;AAC/B,SAAK,QAAQ,UAAU,QAAQ,IAAI,KAAK;AACxC,WAAO;AAAA,EACT,CAAC;AACH;AAEA,SAAS,uBAAuB,MAI9B;AACA,QAAM,QAAQ,KAAK,IAAI,KAAK,OAAO,4BAA4B;AAC/D,QAAM,UAAU,OAAO,aAAa,QAAQ;AAC5C,QAAM,OAAO,KAAK;AAAA,IAChB;AAAA,IACA,KAAK,IAAI,KAAK,MAAM,KAAK,IAAI,gCAAgC,OAAO,CAAC;AAAA,EACvE;AACA,QAAM,WAAW,KAAK,SAAS;AAC/B,QAAM,WACJ,KAAK,MAAM,6BAA6B;AAC1C,QAAM,eACJ,WAAW,iCACX,OAAO,cAAc;AACvB,QAAM,MAAM,eACR,WACA,KAAK,IAAI,gCAAgC,QAAQ;AAErD,SAAO,EAAE,KAAK,MAAM,MAAM;AAC5B;AAEA,SAAS,6BACP,SACA,cACY;AACZ,QAAM,WAA8B,CAAC;AACrC,MAAI,UAA8B,QAAQ;AAE1C,SAAO,WAAW,YAAY,SAAS,iBAAiB;AACtD,UAAM,EAAE,WAAW,UAAU,IAAI,OAAO,iBAAiB,OAAO;AAChE,QACE,cAAc,UACd,cAAc,YACd,cAAc,aACd,cAAc,UACd,cAAc,YACd,cAAc,WACd;AACA,cAAQ,iBAAiB,UAAU,cAAc,EAAE,SAAS,KAAK,CAAC;AAClE,YAAM,UAAU;AAChB,eAAS,KAAK,MAAM,QAAQ,oBAAoB,UAAU,YAAY,CAAC;AAAA,IACzE;AACA,cAAU,QAAQ;AAAA,EACpB;AAEA,SAAO,MAAM,SAAS,QAAQ,CAAC,YAAY,QAAQ,CAAC;AACtD;AAEA,IAAM,aAAmB;AAAA,EACvB,CACE;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,qBAAqB;AAAA,IACrB,mBAAmB;AAAA,IACnB,GAAG;AAAA,EACL,GACA,QACG;AACH,UAAM,iBAAmC;AAAA,MACvC,GAAG;AAAA,MACH,GAAG;AAAA,MACH,eAAe,QAAQ,iBAAiB,cAAc;AAAA,IACxD;AACA,UAAM,aAAmB,cAAiC,IAAI;AAC9D,UAAM,aAAmB,cAA8B,IAAI;AAC3D,UAAM,eAAqB,eAAQ,MAAM,eAAe,KAAK,GAAG,CAAC,KAAK,CAAC;AACvE,UAAM,CAAC,QAAQ,SAAS,IAAU,gBAAS,KAAK;AAChD,UAAM,CAAC,cAAc,eAAe,IAAU;AAAA,MAC5C,MAAM,gBAAgB,oBAAI,KAAK;AAAA,IACjC;AACA,UAAM,CAAC,iBAAiB,kBAAkB,IAAU,gBAI1C,IAAI;AAEd,IAAM,iBAAU,MAAM;AACpB,UAAI,cAAc;AAChB,wBAAgB,YAAY;AAAA,MAC9B;AAAA,IACF,GAAG,CAAC,YAAY,CAAC;AAEjB,UAAM,cAAoB,mBAAY,MAAM;AAC1C,YAAM,UAAU,WAAW;AAC3B,UAAI,CAAC,SAAS;AACZ;AAAA,MACF;AACA;AAAA,QACE,uBAAuB,QAAQ,sBAAsB,CAAC;AAAA,MACxD;AACA,gBAAU,IAAI;AAAA,IAChB,GAAG,CAAC,CAAC;AAEL,IAAM,uBAAgB,MAAM;AAC1B,UAAI,CAAC,QAAQ;AACX;AAAA,MACF;AAEA,YAAM,OAAO,MAAM;AACjB,cAAM,UAAU,WAAW;AAC3B,YAAI,CAAC,SAAS;AACZ;AAAA,QACF;AACA;AAAA,UACE,uBAAuB,QAAQ,sBAAsB,CAAC;AAAA,QACxD;AAAA,MACF;AAEA,WAAK;AACL,YAAM,QAAQ,OAAO,sBAAsB,IAAI;AAC/C,aAAO,MAAM,OAAO,qBAAqB,KAAK;AAAA,IAChD,GAAG,CAAC,MAAM,CAAC;AAEX,IAAM,iBAAU,MAAM;AACpB,UAAI,CAAC,QAAQ;AACX,eAAO;AAAA,MACT;AAEA,YAAM,KAAK,IAAI,gBAAgB;AAC/B,YAAM,EAAE,OAAO,IAAI;AAEnB,YAAM,oBAAoB,CAAC,UAAwB;AACjD,cAAM,SAAS,MAAM;AACrB,YACE,WACC,WAAW,SAAS,SAAS,MAAM,KAClC,WAAW,SAAS,SAAS,MAAM,IACrC;AACA;AAAA,QACF;AACA,kBAAU,KAAK;AAAA,MACjB;AAEA,YAAM,gBAAgB,CAAC,UAAyB;AAC9C,YAAI,MAAM,QAAQ,UAAU;AAC1B,oBAAU,KAAK;AACf,qBAAW,SAAS,MAAM;AAAA,QAC5B;AAAA,MACF;AAEA,YAAM,iBAAiB,MAAM;AAC3B,cAAM,UAAU,WAAW;AAC3B,YAAI,CAAC,SAAS;AACZ;AAAA,QACF;AACA;AAAA,UACE,uBAAuB,QAAQ,sBAAsB,CAAC;AAAA,QACxD;AAAA,MACF;AAEA,eAAS,iBAAiB,eAAe,mBAAmB,EAAE,OAAO,CAAC;AACtE,eAAS,iBAAiB,WAAW,eAAe,EAAE,OAAO,CAAC;AAC9D,aAAO,iBAAiB,UAAU,gBAAgB,EAAE,OAAO,CAAC;AAC5D,eAAS;AAAA,QACP;AAAA,QACA,MAAM,OAAO,sBAAsB,cAAc;AAAA,QACjD;AAAA,UACE,SAAS;AAAA,UACT,SAAS;AAAA,UACT;AAAA,QACF;AAAA,MACF;AAEA,YAAM,iBAAiB,WAAW,UAC9B,6BAA6B,WAAW,SAAS,cAAc,IAC/D,MAAM;AAAA,MAAC;AAEX,aAAO,MAAM;AACX,WAAG,MAAM;AACT,uBAAe;AAAA,MACjB;AAAA,IACF,GAAG,CAAC,MAAM,CAAC;AAEX,UAAM,QAAc,eAAQ,MAAM,oBAAI,KAAK,GAAG,CAAC,CAAC;AAChD,UAAM,YAAkB;AAAA,MACtB,MAAM,eAAe,YAAY;AAAA,MACjC,CAAC,YAAY;AAAA,IACf;AAEA,UAAM,eAAe,eACjB,mBAAmB,YAAY,IAC/B,eAAe;AAEnB,UAAM,aAAa,CAAC,SAAe;AACjC,sBAAgB,gBAAgB,IAAI,CAAC;AACrC,gBAAU,KAAK;AACf,iBAAW,SAAS,MAAM;AAAA,IAC5B;AAEA,WACE,gBAAAA,MAAAF,WAAA,EACE;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,KAAK,CAAC,SAAS;AACb,uBAAW,UAAU;AACrB,gBAAI,OAAO,QAAQ,YAAY;AAC7B,kBAAI,IAAI;AAAA,YACV,WAAW,KAAK;AACd,kBAAI,UAAU;AAAA,YAChB;AAAA,UACF;AAAA,UACA,aAAU;AAAA,UACV;AAAA,UACA,MAAK;AAAA,UACL,WAAW;AAAA,YACT;AAAA,YACA,CAAC,gBAAgB;AAAA,YACjB;AAAA,UACF;AAAA,UACA,SAAS,CAAC,UAAU;AAClB,sBAAU,KAAK;AACf,gBAAI,UAAU;AACZ;AAAA,YACF;AACA,gBAAI,QAAQ;AACV,wBAAU,KAAK;AAAA,YACjB,OAAO;AACL,0BAAY;AAAA,YACd;AAAA,UACF;AAAA,UACC,GAAG;AAAA,UAEJ,0BAAAA,KAAC,UAAK,WAAU,oBAAoB,wBAAa;AAAA;AAAA,MACnD;AAAA,MAEC,UAAU,kBACP;AAAA,QACE,gBAAAC;AAAA,UAAC;AAAA;AAAA,YACC,KAAK;AAAA,YACL,aAAU;AAAA,YACV,WAAU;AAAA,YACV,OAAO;AAAA,cACL,KAAK,gBAAgB;AAAA,cACrB,MAAM,gBAAgB;AAAA,cACtB,OAAO,gBAAgB;AAAA,cACvB,QAAQ;AAAA,YACV;AAAA,YAEA;AAAA,8BAAAA,MAAC,SAAI,WAAU,gDACb;AAAA,gCAAAD,KAAC,SAAI,WAAU,yCACZ,2BAAiB,YAAY,GAChC;AAAA,gBACA,gBAAAC,MAAC,SAAI,WAAU,2BACb;AAAA,kCAAAD;AAAA,oBAAC;AAAA;AAAA,sBACC,cAAY,eAAe;AAAA,sBAC3B,WAAU;AAAA,sBACV,MAAK;AAAA,sBACL,SAAS,MACP;AAAA,wBACE,CAAC,YACC,IAAI;AAAA,0BACF,QAAQ,YAAY;AAAA,0BACpB,QAAQ,SAAS,IAAI;AAAA,0BACrB;AAAA,wBACF;AAAA,sBACJ;AAAA,sBAGF,0BAAAA,KAAC,iBAAc,MAAM,IAAI;AAAA;AAAA,kBAC3B;AAAA,kBACA,gBAAAA;AAAA,oBAAC;AAAA;AAAA,sBACC,cAAY,eAAe;AAAA,sBAC3B,WAAU;AAAA,sBACV,MAAK;AAAA,sBACL,SAAS,MACP;AAAA,wBACE,CAAC,YACC,IAAI;AAAA,0BACF,QAAQ,YAAY;AAAA,0BACpB,QAAQ,SAAS,IAAI;AAAA,0BACrB;AAAA,wBACF;AAAA,sBACJ;AAAA,sBAGF,0BAAAA,KAAC,kBAAe,MAAM,IAAI;AAAA;AAAA,kBAC5B;AAAA,mBACF;AAAA,iBACF;AAAA,cACA,gBAAAA,KAAC,SAAI,WAAU,kFACZ,yBAAe,cAAc,IAAI,CAAC,QACjC,gBAAAA,KAAC,SAAc,WAAU,QACtB,iBADO,GAEV,CACD,GACH;AAAA,cACA,gBAAAA;AAAA,gBAAC;AAAA;AAAA,kBACC,WAAU;AAAA,kBACV,MAAK;AAAA,kBAEJ,oBAAU,IAAI,CAAC,SAAS;AACvB,0BAAM,aAAa,WAAW,MAAM,YAAY;AAChD,0BAAM,UAAU,WAAW,MAAM,KAAK;AACtC,0BAAM,iBACJ,KAAK,SAAS,MAAM,aAAa,SAAS;AAE5C,2BACE,gBAAAA;AAAA,sBAAC;AAAA;AAAA,wBAEC,gBAAc;AAAA,wBACd,WAAW;AAAA,0BACT;AAAA,0BACA,iBACI,oBACA;AAAA,0BACJ,WACE;AAAA,0BACF,cACE;AAAA,wBACJ;AAAA,wBACA,MAAK;AAAA,wBACL,MAAK;AAAA,wBACL,SAAS,MAAM,WAAW,IAAI;AAAA,wBAE7B,eAAK,QAAQ;AAAA;AAAA,sBAhBT,gBAAgB,IAAI;AAAA,oBAiB3B;AAAA,kBAEJ,CAAC;AAAA;AAAA,cACH;AAAA,cACA,gBAAAC,MAAC,SAAI,WAAU,+EACb;AAAA,gCAAAD;AAAA,kBAAC;AAAA;AAAA,oBACC,WAAU;AAAA,oBACV,MAAK;AAAA,oBACL,SAAS,MAAM;AACb,sCAAgB,EAAE;AAClB,gCAAU,KAAK;AACf,iCAAW,SAAS,MAAM;AAAA,oBAC5B;AAAA,oBAEC,yBAAe;AAAA;AAAA,gBAClB;AAAA,gBACA,gBAAAA;AAAA,kBAAC;AAAA;AAAA,oBACC,WAAU;AAAA,oBACV,MAAK;AAAA,oBACL,SAAS,MAAM,WAAW,KAAK;AAAA,oBAE9B,yBAAe;AAAA;AAAA,gBAClB;AAAA,iBACF;AAAA;AAAA;AAAA,QACF;AAAA,QACA,SAAS;AAAA,MACX,IACA;AAAA,OACN;AAAA,EAEJ;AACF;AAEA,WAAW,cAAc;;;AC/czB,SAAS,gBAAgB,6BAA6B;;;ACDtD,YAAYE,YAAW;AACvB,SAAS,QAAAC,aAAY;AAgCf,gBAAAC,YAAA;AA5BN,IAAM,uBACJ;AACF,IAAM,oBACJ;AACF,IAAM,iCAAiC,GAAG,iBAAiB;AAC3D,IAAM,6BACJ;AAQF,IAAM,cAAoB;AAAA,EACxB,CACE;AAAA,IACE,UAAU;AAAA,IACV;AAAA,IACA,cAAc;AAAA,IACd,QAAQ;AAAA,IACR,GAAG;AAAA,EACL,GACA,QACG;AACH,UAAM,OAAO,UAAUC,MAAK,OAAO;AAEnC,WACE,gBAAAD;AAAA,MAAC;AAAA;AAAA,QACE,GAAG;AAAA,QACJ;AAAA,QACA,WAAW,GAAG,sBAAsB,SAAS;AAAA,QAC7C,cAAY,aAAa;AAAA;AAAA,IAC3B;AAAA,EAEJ;AACF;AACA,YAAY,cAAc;;;AD3BjB,gBAAAE,MAsGL,QAAAC,aAtGK;AAHT,SAAS,aAAa;AAAA,EACpB,GAAG;AACL,GAA4D;AAC1D,SAAO,gBAAAD,KAAC,sBAAsB,MAAtB,EAA2B,aAAU,iBAAiB,GAAG,OAAO;AAC1E;AAEA,SAAS,mBAAmB;AAAA,EAC1B,GAAG;AACL,GAA8D;AAC5D,SACE,gBAAAA,KAAC,sBAAsB,QAAtB,EAA6B,aAAU,wBAAwB,GAAG,OAAO;AAE9E;AAEA,SAAS,oBAAoB;AAAA,EAC3B,GAAG;AACL,GAA+D;AAC7D,SACE,gBAAAA;AAAA,IAAC,sBAAsB;AAAA,IAAtB;AAAA,MACC,aAAU;AAAA,MACT,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,oBAAoB;AAAA,EAC3B;AAAA,EACA;AAAA,EACA,QAAQ;AAAA,EACR,aAAa;AAAA,EACb;AAAA,EACA,GAAG;AACL,GAA+D;AAC7D,SACE,gBAAAA,KAAC,sBAAsB,QAAtB,EACC,0BAAAA;AAAA,IAAC,sBAAsB;AAAA,IAAtB;AAAA,MACC,SAAO;AAAA,MACP,aAAU;AAAA,MACV;AAAA,MACA;AAAA,MACC,GAAG;AAAA,MAEJ,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,aAAU;AAAA,UACV,WAAW;AAAA,YACT;AAAA,YACA;AAAA,UACF;AAAA,UACA,OAAO,EAAE,QAAQ,oBAAoB,GAAG,MAAM;AAAA,UAE7C;AAAA;AAAA,MACH;AAAA;AAAA,EACF,GACF;AAEJ;AAEA,SAAS,kBAAkB;AAAA,EACzB;AAAA,EACA,GAAG;AACL,GAA6D;AAC3D,SACE,gBAAAA;AAAA,IAAC,sBAAsB;AAAA,IAAtB;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,yBAAyB,SAAS;AAAA,MAC/C,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,iBAAiB;AAAA,EACxB;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV,GAAG;AACL,GAGG;AACD,SACE,gBAAAA;AAAA,IAAC,sBAAsB;AAAA,IAAtB;AAAA,MACC,cAAY;AAAA,MACZ,aAAU;AAAA,MACV,gBAAc;AAAA,MACd,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,yBAAyB;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAEG;AACD,SACE,gBAAAC;AAAA,IAAC,sBAAsB;AAAA,IAAtB;AAAA,MACC;AAAA,MACA,cAAY;AAAA,MACZ,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEJ;AAAA,wBAAAD;AAAA,UAAC;AAAA;AAAA,YACC,WAAW;AAAA,YACX,aAAU;AAAA,YAEV,0BAAAA,KAAC,sBAAsB,eAAtB,EACC,0BAAAA,KAAC,aAAU,GACb;AAAA;AAAA,QACF;AAAA,QACC;AAAA;AAAA;AAAA,EACH;AAEJ;AAEA,SAAS,uBAAuB;AAAA,EAC9B;AAAA,EACA,GAAG;AACL,GAAkE;AAChE,SACE,gBAAAA;AAAA,IAAC,sBAAsB;AAAA,IAAtB;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,yBAAyB,SAAS;AAAA,MAC/C,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,sBAAsB;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAEG;AACD,SACE,gBAAAC;AAAA,IAAC,sBAAsB;AAAA,IAAtB;AAAA,MACC,cAAY;AAAA,MACZ,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEJ;AAAA,wBAAAD;AAAA,UAAC;AAAA;AAAA,YACC,WAAW;AAAA,YACX,aAAU;AAAA,YAEV,0BAAAA,KAAC,sBAAsB,eAAtB,EACC,0BAAAA,KAAC,aAAU,GACb;AAAA;AAAA,QACF;AAAA,QACC;AAAA;AAAA;AAAA,EACH;AAEJ;AAEA,SAAS,kBAAkB;AAAA,EACzB;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAEG;AACD,SACE,gBAAAA;AAAA,IAAC,sBAAsB;AAAA,IAAtB;AAAA,MACC,cAAY;AAAA,MACZ,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,sBAAsB;AAAA,EAC7B;AAAA,EACA,GAAG;AACL,GAAiE;AAC/D,SACE,gBAAAA;AAAA,IAAC,sBAAsB;AAAA,IAAtB;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,yCAAyC,SAAS;AAAA,MAC/D,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,qBAAqB;AAAA,EAC5B;AAAA,EACA,GAAG;AACL,GAAiC;AAC/B,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,gBAAgB;AAAA,EACvB,GAAG;AACL,GAA2D;AACzD,SAAO,gBAAAA,KAAC,sBAAsB,KAAtB,EAA0B,aAAU,qBAAqB,GAAG,OAAO;AAC7E;AAEA,SAAS,uBAAuB;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAEG;AACD,SACE,gBAAAC;AAAA,IAAC,sBAAsB;AAAA,IAAtB;AAAA,MACC,cAAY;AAAA,MACZ,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEH;AAAA;AAAA,QACD,gBAAAD,KAAC,kBAAe,WAAU,WAAU;AAAA;AAAA;AAAA,EACtC;AAEJ;AAEA,SAAS,uBAAuB;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAkE;AAChE,SACE,gBAAAA;AAAA,IAAC,sBAAsB;AAAA,IAAtB;AAAA,MACC,SAAO;AAAA,MACP,aAAU;AAAA,MACT,GAAG;AAAA,MAEJ,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,aAAU;AAAA,UACV,WAAW;AAAA,YACT;AAAA,YACA;AAAA,UACF;AAAA,UACA,OAAO,EAAE,QAAQ,oBAAoB,GAAG,MAAM;AAAA,UAE7C;AAAA;AAAA,MACH;AAAA;AAAA,EACF;AAEJ;;;AErQI,gBAAAE,aAAA;AAlBJ,IAAM,yBAAmE;AAAA,EACvE,SAAS;AAAA,EACT,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,KAAK;AACP;AAEA,SAAS,MAAM;AAAA,EACb;AAAA,EACA,OAAO;AAAA,EACP;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAe;AACb,QAAM,kBAAkB,YAAY,SAAS,OAAO,OAAO;AAE3D,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,aAAU;AAAA,MACV,aAAW;AAAA,MACX,gBAAc;AAAA,MACd,WAAW;AAAA,QACT;AAAA,QACA,uBAAuB,eAAe;AAAA,QACtC,CAAC,WAAW,SAAS,QAAQ;AAAA,QAC7B;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;;;ACsCM,SAOE,OAAAC,OAPF,QAAAC,aAAA;AAnEN,IAAM,yBAA0D;AAAA,EAC9D,OAAO;AAAA,EACP,SAAS;AAAA,EACT,MAAM;AACR;AAEA,IAAM,4BAA6D;AAAA,EACjE,OAAO;AAAA,EACP,SAAS;AAAA,EACT,MAAM;AACR;AAcA,SAAS,YAAY;AAAA,EACnB;AAAA,EACA,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA,YAAY,SAAS;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAwC;AACtC,QAAM,SAAS,SAAS;AACxB,QAAM,OAAO,SACT,aAAa,WACX,mBACA,WACF,SAAS,UACP,YACA;AACN,QAAM,QACJ,UAAU,aAAa,WACnB,4BACA,uBAAuB,IAAI;AACjC,QAAM,WAAW,0BAA0B,IAAI;AAC/C,QAAM,oBAAoB,SAAS,aAAa;AAChD,QAAM,qBAAqB,SAAS,aAAa;AAEjD,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA,SAAS,mBAAmB;AAAA,QAC5B;AAAA,MACF;AAAA,MACA,2BAAwB;AAAA,MACxB,2BAAyB;AAAA,MACzB,aAAU;AAAA,MACV,OAAO;AAAA,QACL;AAAA,QACA,GAAG;AAAA,MACL;AAAA,MACC,GAAG;AAAA,MAEJ;AAAA,wBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,eAAa,YAAY,SAAY;AAAA,YACrC,WAAW;AAAA,cACT;AAAA,cACA;AAAA,YACF;AAAA,YAEA;AAAA,8BAAAD;AAAA,gBAAC;AAAA;AAAA,kBACC,WAAW;AAAA,oBACT;AAAA,oBACA,aAAa;AAAA,oBACb;AAAA,kBACF;AAAA;AAAA,cACF;AAAA,cACC,YACC,gBAAAA;AAAA,gBAAC;AAAA;AAAA,kBACC,cAAY,oBAAoB,YAAY;AAAA,kBAC5C,MAAK;AAAA,kBACJ,GAAG;AAAA,kBACJ,WAAW;AAAA,oBACT;AAAA,oBACA,mBAAmB;AAAA,kBACrB;AAAA,kBAEA,0BAAAA,MAAC,aAAU,WAAU,YAAW;AAAA;AAAA,cAClC,IACE;AAAA;AAAA;AAAA,QACN;AAAA,QACA,gBAAAC,MAAC,UAAK,WAAU,2DACd;AAAA,0BAAAD,MAAC,UAAM,iBAAM;AAAA,UACZ,UAAU,gBAAAC,MAAC,UAAK,WAAU,gBAAe;AAAA;AAAA,YAAE;AAAA,aAAQ,IAAU;AAAA,WAChE;AAAA;AAAA;AAAA,EACF;AAEJ;;;AClHA,SAAS,WAAW,wBAAwB;AAOnC,gBAAAC,aAAA;AAHT,SAAS,QAAQ;AAAA,EACf,GAAG;AACL,GAAuD;AACrD,SAAO,gBAAAA,MAAC,iBAAiB,MAAjB,EAAsB,aAAU,WAAW,GAAG,OAAO;AAC/D;AAEA,SAAS,eAAe;AAAA,EACtB,GAAG;AACL,GAA0D;AACxD,SAAO,gBAAAA,MAAC,iBAAiB,SAAjB,EAAyB,aAAU,mBAAmB,GAAG,OAAO;AAC1E;AAEA,SAAS,cAAc;AAAA,EACrB,GAAG;AACL,GAAyD;AACvD,SAAO,gBAAAA,MAAC,iBAAiB,QAAjB,EAAwB,aAAU,kBAAkB,GAAG,OAAO;AACxE;AAEA,SAAS,aAAa;AAAA,EACpB,GAAG;AACL,GAAwD;AACtD,SAAO,gBAAAA,MAAC,iBAAiB,OAAjB,EAAuB,aAAU,iBAAiB,GAAG,OAAO;AACtE;AAEA,SAAS,eAAe;AAAA,EACtB;AAAA,EACA,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,GAAG;AACL,GAA0D;AACxD,SACE,gBAAAA,MAAC,iBACC,0BAAAA;AAAA,IAAC,iBAAiB;AAAA,IAAjB;AAAA,MACC,aAAU;AAAA,MACV;AAAA,MACA;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACA,OAAO,EAAE,QAAQ,mBAAmB;AAAA,MACnC,GAAG;AAAA;AAAA,EACN,GACF;AAEJ;AAEA,SAAS,cAAc;AAAA,EACrB,GAAG;AACL,GAAyD;AACvD,SAAO,gBAAAA,MAAC,iBAAiB,QAAjB,EAAwB,aAAU,kBAAkB,GAAG,OAAO;AACxE;;;ACxDA,YAAY,wBAAwB;AAUhC,gBAAAC,aAAA;AANJ,SAAS,oBAAoB;AAAA,EAC3B;AAAA,EACA,cAAc;AAAA,EACd,GAAG;AACL,GAA0D;AACxD,SACE,gBAAAA;AAAA,IAAoB;AAAA,IAAnB;AAAA,MACC,oBAAkB;AAAA,MAClB,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MACJ;AAAA;AAAA,EACF;AAEJ;AAEA,SAAS,eACP,OACA;AACA,SAAO,gBAAAA,MAAoB,0BAAnB,EAAyB,aAAU,mBAAmB,GAAG,OAAO;AAC1E;AAEA,SAAS,gBAAgB;AAAA,EACvB;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAEG;AACD,SACE,gBAAAA;AAAA,IAAoB;AAAA,IAAnB;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEH,uBACC,gBAAAA,MAAC,SAAI,WAAU,qYAAoY,IACjZ;AAAA;AAAA,EACN;AAEJ;;;ACjDA,SAAS,cAAc,2BAA2B;AAU9C,SAKE,OAAAC,OALF,QAAAC,aAAA;AANJ,SAAS,WAAW;AAAA,EAClB;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAA0D;AACxD,SACE,gBAAAA;AAAA,IAAC,oBAAoB;AAAA,IAApB;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,8BAA8B,SAAS;AAAA,MACpD,GAAG;AAAA,MAEJ;AAAA,wBAAAD;AAAA,UAAC,oBAAoB;AAAA,UAApB;AAAA,YACC,aAAU;AAAA,YACV,WAAU;AAAA,YAET;AAAA;AAAA,QACH;AAAA,QACA,gBAAAA,MAAC,aAAU;AAAA,QACX,gBAAAA,MAAC,oBAAoB,QAApB,EAA2B;AAAA;AAAA;AAAA,EAC9B;AAEJ;AAEA,SAAS,UAAU;AAAA,EACjB;AAAA,EACA,cAAc;AAAA,EACd,GAAG;AACL,GAAyE;AACvE,SACE,gBAAAA;AAAA,IAAC,oBAAoB;AAAA,IAApB;AAAA,MACC,aAAU;AAAA,MACV,oBAAkB;AAAA,MAClB;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEJ,0BAAAA;AAAA,QAAC,oBAAoB;AAAA,QAApB;AAAA,UACC,aAAU;AAAA,UACV,WAAU;AAAA;AAAA,MACZ;AAAA;AAAA,EACF;AAEJ;;;ACjDA,SAAS,UAAU,uBAAuB;AAajC,gBAAAE,OA+BL,QAAAC,aA/BK;AAHT,SAAS,OAAO;AAAA,EACd,GAAG;AACL,GAAsD;AACpD,SAAO,gBAAAD,MAAC,gBAAgB,MAAhB,EAAqB,aAAU,UAAU,GAAG,OAAO;AAC7D;AAEA,SAAS,YAAY;AAAA,EACnB;AAAA,EACA,GAAG;AACL,GAAuD;AACrD,SACE,gBAAAA;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,yCAAyC,SAAS;AAAA,MAC/D,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,YAAY;AAAA,EACnB,GAAG;AACL,GAAuD;AACrD,SAAO,gBAAAA,MAAC,gBAAgB,OAAhB,EAAsB,aAAU,gBAAgB,GAAG,OAAO;AACpE;AAEA,SAAS,cAAc;AAAA,EACrB;AAAA,EACA,OAAO;AAAA,EACP;AAAA,EACA,GAAG;AACL,GAEG;AACD,SACE,gBAAAC;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,aAAW;AAAA,MACX,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEH;AAAA;AAAA,QACD,gBAAAD,MAAC,gBAAgB,MAAhB,EAAqB,SAAO,MAC3B,0BAAAA,MAAC,mBAAgB,WAAU,2DAA0D,GACvF;AAAA;AAAA;AAAA,EACF;AAEJ;AAEA,SAAS,cAAc;AAAA,EACrB;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,QAAQ;AAAA,EACR;AAAA,EACA,GAAG;AACL,GAAyD;AACvD,SACE,gBAAAA,MAAC,gBAAgB,QAAhB,EACC,0BAAAA;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACC,SAAO;AAAA,MACP,aAAU;AAAA,MACV,sBAAoB,aAAa;AAAA,MACjC;AAAA,MACA;AAAA,MACC,GAAG;AAAA,MAEJ,0BAAAC;AAAA,QAAC;AAAA;AAAA,UACC,aAAU;AAAA,UACV,WAAW;AAAA,YACT;AAAA,YACA,aAAa,YACX;AAAA,YACF;AAAA,UACF;AAAA,UACA,OAAO,EAAE,QAAQ,oBAAoB,GAAG,MAAM;AAAA,UAE9C;AAAA,4BAAAD,MAAC,wBAAqB;AAAA,YACtB,gBAAAA;AAAA,cAAC,gBAAgB;AAAA,cAAhB;AAAA,gBACC,iBAAe;AAAA,gBACf,WAAW;AAAA,kBACT;AAAA,gBACF;AAAA,gBAEC;AAAA;AAAA,YACH;AAAA,YACA,gBAAAA,MAAC,0BAAuB;AAAA;AAAA;AAAA,MAC1B;AAAA;AAAA,EACF,GACF;AAEJ;AAEA,SAAS,YAAY;AAAA,EACnB;AAAA,EACA,GAAG;AACL,GAAuD;AACrD,SACE,gBAAAA;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,kBAAkB;AAAA,EACzB;AAAA,EACA,GAAG;AACL,GAAgC;AAC9B,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,kBAAkB;AAAA,EACzB;AAAA,EACA,GAAG;AACL,GAAgC;AAC9B,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,wCAAwC,SAAS;AAAA,MAC9D,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,uBAAuB;AAAA,EAC9B;AAAA,EACA,GAAG;AACL,GAAgC;AAC9B,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,uBAAuB;AAAA,EAC9B;AAAA,EACA,GAAG;AACL,GAAgC;AAC9B,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,mBAAmB;AAAA,EAC1B;AAAA,EACA,GAAG;AACL,GAAgC;AAC9B,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,eAAY;AAAA,MACZ,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,WAAW;AAAA,EAClB;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAsD;AACpD,SACE,gBAAAC;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,UAAU,gCAAgC,SAAS;AAAA,MAChE,GAAG;AAAA,MAEJ;AAAA,wBAAAD,MAAC,UAAK,WAAW,4BACf,0BAAAA,MAAC,gBAAgB,eAAhB,EACC,0BAAAA,MAAC,aAAU,WAAU,uBAAsB,GAC7C,GACF;AAAA,QACA,gBAAAA,MAAC,gBAAgB,UAAhB,EAA0B,UAAS;AAAA;AAAA;AAAA,EACtC;AAEJ;AAEA,SAAS,gBAAgB;AAAA,EACvB;AAAA,EACA,GAAG;AACL,GAA2D;AACzD,SACE,gBAAAA;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,qBAAqB;AAAA,EAC5B;AAAA,EACA,GAAG;AACL,GAAgE;AAC9D,SACE,gBAAAA;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEJ,0BAAAA,MAAC,iBAAc;AAAA;AAAA,EACjB;AAEJ;AAEA,SAAS,uBAAuB;AAAA,EAC9B;AAAA,EACA,GAAG;AACL,GAAkE;AAChE,SACE,gBAAAA;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEJ,0BAAAA,MAAC,mBAAgB;AAAA;AAAA,EACnB;AAEJ;;;AC9QA,SAAS,aAAa,0BAA0B;AAW5C,gBAAAE,aAAA;AAPJ,SAASC,WAAU;AAAA,EACjB;AAAA,EACA,cAAc;AAAA,EACd,aAAa;AAAA,EACb,GAAG;AACL,GAAyD;AACvD,SACE,gBAAAD;AAAA,IAAC,mBAAmB;AAAA,IAAnB;AAAA,MACC,aAAU;AAAA,MACV;AAAA,MACA;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;;;ACAI,gBAAAE,aAAA;AATJ,SAAS,QAAQ;AAAA,EACf;AAAA,EACA,OAAO;AAAA,EACP,cAAc;AAAA,EACd;AAAA,EACA;AAAA,EACA;AACF,GAA8B;AAC5B,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,eAAa;AAAA,MACb,eAAY;AAAA,MACZ,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,EACF;AAEJ;;;ACrCA,SAAS,OAAAC,YAA8B;AA6CnC,gBAAAC,aAAA;AAzCJ,IAAM,oBAAoBC,KAAI,qCAAqC;AAAA,EACjE,UAAU;AAAA,IACR,MAAM;AAAA,MACJ,SAAS;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,MACN,OAAO;AAAA,MACP,KAAK;AAAA,IACP;AAAA,IACA,MAAM;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,OAAO;AAAA,MACL,MAAM;AAAA,MACN,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IACf,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AACF,CAAC;AAQD,SAAS,UAAU;AAAA,EACjB,OAAO;AAAA,EACP,OAAO;AAAA,EACP,QAAQ;AAAA,EACR;AAAA,EACA;AAAA,EACA;AACF,GAAsC;AACpC,SACE,gBAAAD;AAAA,IAAC;AAAA;AAAA,MACC,eAAa,YAAY,SAAY;AAAA,MACrC,cAAY;AAAA,MACZ,WAAW,GAAG,kBAAkB,EAAE,MAAM,MAAM,MAAM,CAAC,GAAG,SAAS;AAAA,MACjE,cAAY,QAAQ,SAAS;AAAA,MAC7B,aAAW;AAAA,MACX,aAAU;AAAA,MACV,aAAW;AAAA,MACX,MAAM,YAAY,QAAQ;AAAA,MAC1B;AAAA;AAAA,EACF;AAEJ;;;ACxDA,SAAS,UAAU,uBAAuB;AAqBpC,gBAAAE,aAAA;AAjBN,SAAS,OAAO;AAAA,EACd;AAAA,EACA,OAAO;AAAA,EACP,GAAG;AACL,GAEG;AACD,SACE,gBAAAA;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,aAAW;AAAA,MACX,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEJ,0BAAAA;AAAA,QAAC,gBAAgB;AAAA,QAAhB;AAAA,UACC,aAAU;AAAA,UACV,WAAU;AAAA;AAAA,MACZ;AAAA;AAAA,EACF;AAEJ;;;ACtBI,gBAAAC,aAAA;AAFJ,SAAS,SAAS,EAAE,WAAW,GAAG,MAAM,GAAqC;AAC3E,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;;;ACfA,YAAYC,YAAW;AACvB,SAAS,SAAS,sBAAsB;AACxC,SAAS,OAAAC,YAA8B;AA8G/B,gBAAAC,OAoBJ,QAAAC,aApBI;AApGR,IAAM,gBAAgB,eAAe;AAErC,IAAM,qBAA2B,qBAGvB,IAAI;AAId,IAAM,2BAA2B;AAAA,EAC/B,aAAa;AAAA,EACb,SAAS;AACX;AAKA,SAAS,mBACP,SACmC;AACnC,SAAO,YAAY,iBAAiB,YAAY;AAClD;AAEA,SAAS,sCAAsC,OAAuB;AACpE,MAAI,YAAY,MAAM,QAAQ,SAAS,EAAE;AACzC,SAAO,UAAU,SAAS,GAAG;AAC3B,UAAM,OAAO,UAAU,GAAG,EAAE;AAC5B,QAAI,SAAS,OAAO,SAAS,YAAO,SAAS,UAAK;AAChD,kBAAY,UAAU,MAAM,GAAG,EAAE,EAAE,QAAQ,SAAS,EAAE;AAAA,IACxD,OAAO;AACL;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;AAEA,SAAS,gBAAgB,UAA4C;AACnE,MAAI,OAAO,aAAa,UAAU;AAChC,WAAO,sCAAsC,QAAQ;AAAA,EACvD;AACA,QAAM,eAAqB,gBAAS,QAAQ,QAAQ;AACpD,MAAI,aAAa,WAAW,KAAK,OAAO,aAAa,CAAC,MAAM,UAAU;AACpE,WAAO,sCAAsC,aAAa,CAAC,CAAC;AAAA,EAC9D;AACA,SAAO;AACT;AAEA,IAAM,gBAAgBC;AAAA,EACpB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SACE;AAAA,QACF,aACE;AAAA,QACF,SACE;AAAA,MACJ;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,IACX;AAAA,EACF;AACF;AAEA,SAAS,UAAU;AAAA,EACjB;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP,SAAS;AAAA,EACT,iBAAiB;AAAA,EACjB;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAKK;AACH,QAAM,gBAAgB,YAAY;AAClC,SACE,gBAAAF;AAAA,IAAC,eAAe;AAAA,IAAf;AAAA,MACC,aAAW;AAAA,MACX,aAAW,gBAAgB,cAAc;AAAA,MACzC,aAAU;AAAA,MACV,WAAW;AAAA,QACT,cAAc,EAAE,QAAQ,CAAC;AAAA,QACzB,WAAW,UAAU;AAAA,QACrB;AAAA,MACF;AAAA,MACA,MAAM,gBAAgB,UAAU;AAAA,MAChC,OAAO;AAAA,QACL,GAAI,WAAW,SAAS,EAAE,KAAK,GAAG,cAAc,KAAK,IAAI,CAAC;AAAA,QAC1D,GAAG;AAAA,MACL;AAAA,MACC,GAAG;AAAA,MAEJ,0BAAAA,MAAC,mBAAmB,UAAnB,EAA4B,OAAO,EAAE,MAAM,QAAQ,GAClD,0BAAAA,MAAC,UAAK,WAAU,0GACb,UACH,GACF;AAAA;AAAA,EACF;AAEJ;AAEA,SAAS,WAAW;AAAA,EAClB;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAsD;AACpD,QAAM,cAAoB,kBAAW,kBAAkB;AACvD,QAAM,aACJ,aAAa,WAAW,mBAAmB,YAAY,OAAO,IAC1D,yBAAyB,YAAY,OAAO,IAC5C;AAEN,SACE,gBAAAC;AAAA,IAAC,eAAe;AAAA,IAAf;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEH;AAAA,qBAAa,OACZ,gBAAAD;AAAA,UAAC;AAAA;AAAA,YACC,WAAU;AAAA,YACV,MAAM;AAAA,YACN,aAAa;AAAA,YACb,YAAW;AAAA;AAAA,QACb,IACE,aACF,gBAAAA,MAAC,cAAW,WAAU,gCAA+B,IACnD;AAAA,QACJ,gBAAAA,MAAC,UAAK,WAAU,uBAAuB,0BAAgB,QAAQ,GAAE;AAAA;AAAA;AAAA,EACnE;AAEJ;AAEA,SAAS,iBAAiB;AAAA,EACxB;AAAA,EACA,GAAG;AACL,GAA4D;AAC1D,SACE,gBAAAA;AAAA,IAAC,eAAe;AAAA,IAAf;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,WAAW;AAAA,EAClB;AAAA,EACA,GAAG;AACL,GAAsD;AACpD,SACE,gBAAAA;AAAA,IAAC,eAAe;AAAA,IAAf;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEJ,0BAAAA,MAAC,aAAU,WAAU,UAAS;AAAA;AAAA,EAChC;AAEJ;AAEA,SAAS,cAAc;AAAA,EACrB;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAyD;AACvD,SACE,gBAAAA;AAAA,IAAC,eAAe;AAAA,IAAf;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACA,OAAO,EAAE,QAAQ,kBAAkB,GAAG,MAAM;AAAA,MAC3C,GAAG;AAAA;AAAA,EACN;AAEJ;;;AC5MA,SAAS,WAAW,wBAAwB;AASxC,gBAAAG,aAAA;AALJ,SAAS,gBAAgB;AAAA,EACvB,gBAAgB;AAAA,EAChB,GAAG;AACL,GAA2D;AACzD,SACE,gBAAAA;AAAA,IAAC,iBAAiB;AAAA,IAAjB;AAAA,MACC,aAAU;AAAA,MACV;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,QAAQ;AAAA,EACf,GAAG;AACL,GAAuD;AACrD,SAAO,gBAAAA,MAAC,iBAAiB,MAAjB,EAAsB,aAAU,WAAW,GAAG,OAAO;AAC/D;AAEA,SAAS,eAAe;AAAA,EACtB,GAAG;AACL,GAA0D;AACxD,SAAO,gBAAAA,MAAC,iBAAiB,SAAjB,EAAyB,aAAU,mBAAmB,GAAG,OAAO;AAC1E;AAEA,SAAS,cAAc;AAAA,EACrB,GAAG;AACL,GAAyD;AACvD,SAAO,gBAAAA,MAAC,iBAAiB,QAAjB,EAAwB,aAAU,kBAAkB,GAAG,OAAO;AACxE;AAEA,SAAS,eAAe;AAAA,EACtB;AAAA,EACA,aAAa;AAAA,EACb;AAAA,EACA,GAAG;AACL,GAA0D;AACxD,SACE,gBAAAA,MAAC,iBACC,0BAAAA;AAAA,IAAC,iBAAiB;AAAA,IAAjB;AAAA,MACC,aAAU;AAAA,MACV;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACA,OAAO,EAAE,QAAQ,mBAAmB;AAAA,MACnC,GAAG;AAAA,MAEH;AAAA;AAAA,EACH,GACF;AAEJ;;;ACzDA,SAAS,aAAAC,YAAW,mBAAAC,kBAAiB,UAAAC,SAAQ,YAAAC,iBAAgB;AAsK/C,SA0BE,OAAAC,OA1BF,QAAAC,aAAA;AA3Id,SAAS,cAAqC;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,kBAAkB;AAAA,EAClB,mBAAmB;AAAA,EACnB;AAAA,EACA;AAAA,EACA,0BAA0B;AAC5B,GAA4C;AAC1C,QAAM,cAAcC,QAAuB,IAAI;AAC/C,QAAM,SAASA,QAAuB,IAAI;AAC1C,QAAM,aAAaA,QAAmD,CAAC,CAAC;AACxE,QAAM,CAAC,gBAAgB,iBAAiB,IAAIC,UAAS,EAAE,MAAM,GAAG,OAAO,EAAE,CAAC;AAC1E,QAAM,CAAC,UAAU,WAAW,IAAIA,UAAS;AAAA,IACvC,eAAe;AAAA,IACf,gBAAgB;AAAA,EAClB,CAAC;AAED,EAAAC,iBAAgB,MAAM;AACpB,UAAM,MAAM,OAAO;AACnB,UAAM,SAAS,WAAW,QAAQ,KAAK;AACvC,QAAI,CAAC,OAAO,CAAC,QAAQ;AACnB;AAAA,QAAkB,CAAC,YACjB,QAAQ,SAAS,KAAK,QAAQ,UAAU,IACpC,UACA,EAAE,MAAM,GAAG,OAAO,EAAE;AAAA,MAC1B;AACA;AAAA,IACF;AAEA,UAAM,YAAY;AAAA,MAChB,MAAM,OAAO;AAAA,MACb,OAAO,OAAO;AAAA,IAChB;AAEA;AAAA,MAAkB,CAAC,YACjB,QAAQ,SAAS,UAAU,QAAQ,QAAQ,UAAU,UAAU,QAC3D,UACA;AAAA,IACN;AAAA,EACF,GAAG,CAAC,MAAM,KAAK,CAAC;AAEhB,EAAAC,WAAU,MAAM;AACd,UAAM,WAAW,YAAY;AAC7B,QAAI,CAAC,UAAU;AACb;AAAA,IACF;AAEA,UAAM,eAAe,MAAM;AACzB,YAAM,gBAAgB,SAAS,cAAc,SAAS;AACtD,kBAAY,CAAC,YAAY;AACvB,cAAM,OAAO;AAAA,UACX,eAAe,SAAS,aAAa;AAAA,UACrC,gBAAgB,SAAS,aAAa,gBAAgB;AAAA,QACxD;AAEA,eAAO,QAAQ,kBAAkB,KAAK,iBACpC,QAAQ,mBAAmB,KAAK,iBAC9B,UACA;AAAA,MACN,CAAC;AAAA,IACH;AAEA,iBAAa;AACb,aAAS,iBAAiB,UAAU,cAAc,EAAE,SAAS,KAAK,CAAC;AAEnE,QAAI,iBAAwC;AAC5C,QAAI,OAAO,mBAAmB,aAAa;AACzC,uBAAiB,IAAI,eAAe,YAAY;AAChD,qBAAe,QAAQ,QAAQ;AAC/B,UAAI,OAAO,SAAS;AAClB,uBAAe,QAAQ,OAAO,OAAO;AAAA,MACvC;AAAA,IACF;AAEA,WAAO,iBAAiB,UAAU,YAAY;AAE9C,WAAO,MAAM;AACX,eAAS,oBAAoB,UAAU,YAAY;AACnD,aAAO,oBAAoB,UAAU,YAAY;AACjD,sBAAgB,WAAW;AAAA,IAC7B;AAAA,EACF,GAAG,CAAC,IAAI,CAAC;AAET,QAAM,aAAa,CAAC,cAAgC;AAClD,UAAM,WAAW,YAAY;AAC7B,QAAI,CAAC,UAAU;AACb;AAAA,IACF;AAEA,UAAM,QAAQ,KAAK,IAAI,KAAK,SAAS,cAAc,IAAI;AACvD,aAAS,SAAS;AAAA,MAChB,MAAM,cAAc,SAAS,CAAC,QAAQ;AAAA,MACtC,UAAU;AAAA,IACZ,CAAC;AAAA,EACH;AAEA,SACE,gBAAAJ;AAAA,IAAC;AAAA;AAAA,MACC,cAAY;AAAA,MACZ,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACA,aAAU;AAAA,MACV,eAAa;AAAA,MACb,MAAK;AAAA,MAEL;AAAA,wBAAAD;AAAA,UAAC;AAAA;AAAA,YACC,KAAK;AAAA,YACL,WAAW;AAAA,cACT;AAAA,cACA,SAAS,iBACP,CAAC,SAAS,kBACV;AAAA,cACF,CAAC,SAAS,iBACR,SAAS,kBACT;AAAA,cACF,SAAS,iBACP,SAAS,kBACT;AAAA,YACJ;AAAA,YACA,wBAAsB,SAAS,gBAAgB,SAAS;AAAA,YACxD,yBAAuB,SAAS,iBAAiB,SAAS;AAAA,YAC1D,aAAU;AAAA,YACV,eAAa;AAAA,YAEb,0BAAAC;AAAA,cAAC;AAAA;AAAA,gBACC,KAAK;AAAA,gBACL,WAAU;AAAA,gBAET;AAAA,uBAAK,IAAI,CAAC,QAAQ;AACjB,0BAAM,WAAW,UAAU,IAAI;AAC/B,2BACE,gBAAAA;AAAA,sBAAC;AAAA;AAAA,wBAEC,KAAK,CAAC,YAAY;AAChB,8BAAI,SAAS;AACX,uCAAW,QAAQ,IAAI,KAAK,IAAI;AAAA,0BAClC,OAAO;AACL,mCAAO,WAAW,QAAQ,IAAI,KAAK;AAAA,0BACrC;AAAA,wBACF;AAAA,wBACA,iBAAe;AAAA,wBACf,WAAW;AAAA,0BACT;AAAA,0BACA,YAAY;AAAA,wBACd;AAAA,wBACA,eAAa,WAAW,SAAS;AAAA,wBACjC,aAAU;AAAA,wBACV,eAAa,IAAI;AAAA,wBACjB,MAAK;AAAA,wBACL,MAAK;AAAA,wBACL,SAAS,MAAM,cAAc,IAAI,KAAK;AAAA,wBACtC,aACE,0BACI,CAAC,UAAU,MAAM,eAAe,IAChC;AAAA,wBAGN;AAAA,0CAAAD,MAAC,UAAM,cAAI,OAAM;AAAA,0BAChB,IAAI,UAAU,SACb,gBAAAA,MAAC,UAAK,WAAU,iEACb,cAAI,OACP,IACE;AAAA;AAAA;AAAA,sBA9BC,IAAI;AAAA,oBA+BX;AAAA,kBAEJ,CAAC;AAAA,kBACD,gBAAAA;AAAA,oBAAC;AAAA;AAAA,sBACC,eAAW;AAAA,sBACX,WAAU;AAAA,sBACV,aAAU;AAAA,sBACV,OAAO;AAAA,wBACL,WAAW,cAAc,eAAe,IAAI;AAAA,wBAC5C,OAAO,eAAe;AAAA,sBACxB;AAAA;AAAA,kBACF;AAAA;AAAA;AAAA,YACF;AAAA;AAAA,QACF;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,cAAY;AAAA,YACZ,WAAU;AAAA,YACV,aAAU;AAAA,YACV,eAAa;AAAA,YACb,gBAAc,SAAS,gBAAgB,SAAS;AAAA,YAChD,UAAU,CAAC,SAAS;AAAA,YACpB,MAAK;AAAA,YACL,SAAS,MAAM,WAAW,MAAM;AAAA,YAEhC,0BAAAA,MAAC,iBAAc,MAAM,IAAI;AAAA;AAAA,QAC3B;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,cAAY;AAAA,YACZ,WAAU;AAAA,YACV,aAAU;AAAA,YACV,eAAa;AAAA,YACb,gBAAc,SAAS,iBAAiB,SAAS;AAAA,YACjD,UAAU,CAAC,SAAS;AAAA,YACpB,MAAK;AAAA,YACL,SAAS,MAAM,WAAW,OAAO;AAAA,YAEjC,0BAAAA,MAAC,kBAAe,MAAM,IAAI;AAAA;AAAA,QAC5B;AAAA;AAAA;AAAA,EACF;AAEJ;;;AC/OA,YAAYM,YAAW;AACvB,SAAS,gBAAAC,qBAAoB;AAsYzB,gBAAAC,aAAA;AApVJ,IAAM,wBAAwB;AAC9B,IAAM,wBAAwB;AAS9B,SAAS,oBACP,QACA,MACA,gBACA,SACQ;AACR,SAAO,KAAK;AAAA,IACV;AAAA,IACA,KAAK,IAAI,QAAQ,KAAK,IAAI,SAAS,iBAAiB,UAAU,IAAI,CAAC;AAAA,EACrE;AACF;AAEA,SAAS,yBAAyB,SAMvB;AACT,QAAM,EAAE,QAAQ,MAAM,gBAAgB,SAAS,UAAU,IAAI;AAC7D,QAAM,kBAAkB;AACxB,QAAM,gBAAgB,SAAS;AAE/B,MAAI,cAAc,SAAS;AACzB,WAAO,oBAAoB,iBAAiB,MAAM,gBAAgB,OAAO;AAAA,EAC3E;AAEA,MAAI,cAAc,OAAO;AACvB,WAAO,oBAAoB,eAAe,MAAM,gBAAgB,OAAO;AAAA,EACzE;AAEA,QAAM,YAAY,kBAAkB,QAAQ,iBAAiB;AAC7D,QAAM,UAAU,iBAAiB;AAEjC,MAAI,aAAa,CAAC,SAAS;AACzB,WAAO,oBAAoB,iBAAiB,MAAM,gBAAgB,OAAO;AAAA,EAC3E;AAEA,SAAO,oBAAoB,eAAe,MAAM,gBAAgB,OAAO;AACzE;AAEA,SAAS,yBAAyB,SAOA;AAChC,QAAM,UAAU,QAAQ,WAAW;AAEnC,SAAO;AAAA,IACL,MAAM,yBAAyB;AAAA,MAC7B,QAAQ,QAAQ,MAAM;AAAA,MACtB,MAAM,QAAQ,SAAS;AAAA,MACvB,gBAAgB,QAAQ,SAAS;AAAA,MACjC;AAAA,MACA,WAAW,QAAQ,UAAU;AAAA,IAC/B,CAAC;AAAA,IACD,KAAK,yBAAyB;AAAA,MAC5B,QAAQ,QAAQ,MAAM;AAAA,MACtB,MAAM,QAAQ,SAAS;AAAA,MACvB,gBAAgB,QAAQ,SAAS;AAAA,MACjC;AAAA,MACA,WAAW,QAAQ,UAAU;AAAA,IAC/B,CAAC;AAAA,EACH;AACF;AAEA,SAAS,mBAAqC;AAC5C,SAAO;AAAA,IACL,MAAM;AAAA,IACN,KAAK;AAAA,IACL,OAAO,OAAO,WAAW,cAAc,OAAO,OAAO;AAAA,IACrD,QAAQ,OAAO,WAAW,cAAc,MAAM,OAAO;AAAA,EACvD;AACF;AAEA,SAAS,eAAe,MAAiC;AACvD,SAAO;AAAA,IACL,MAAM,KAAK;AAAA,IACX,KAAK,KAAK;AAAA,IACV,OAAO,KAAK;AAAA,IACZ,QAAQ,KAAK;AAAA,EACf;AACF;AAEA,SAAS,6BAA6B,OAGjB;AACnB,MAAI,OAAO,aAAa,eAAe,CAAC,SAAS,mBAAmB;AAClE,WAAO,iBAAiB;AAAA,EAC1B;AAEA,QAAM,WAAW;AACjB,aAAW,WAAW,SAAS,kBAAkB,MAAM,GAAG,MAAM,CAAC,GAAG;AAClE,UAAM,kBAAkB,QAAQ,QAAQ,QAAQ;AAChD,QAAI,iBAAiB;AACnB,aAAO,eAAe,gBAAgB,sBAAsB,CAAC;AAAA,IAC/D;AAAA,EACF;AAEA,SAAO,iBAAiB;AAC1B;AAEA,SAAS,4BAA4B,SAOH;AAChC,QAAM,UAAU,QAAQ,WAAW;AACnC,QAAM,UAAU,QAAQ,SAAS,OAAO;AACxC,QAAM,SAAS,QAAQ,SAAS,MAAM;AACtC,QAAM,UAAU,KAAK;AAAA,IACnB;AAAA,IACA,QAAQ,SAAS,OAAO,QAAQ,SAAS,QAAQ,UAAU,QAAQ;AAAA,EACrE;AACA,QAAM,SAAS,KAAK;AAAA,IAClB;AAAA,IACA,QAAQ,SAAS,MAAM,QAAQ,SAAS,SAAS,UAAU,QAAQ;AAAA,EACrE;AAEA,SAAO;AAAA,IACL,MAAM,KAAK,IAAI,SAAS,KAAK,IAAI,QAAQ,MAAM,OAAO,CAAC;AAAA,IACvD,KAAK,KAAK,IAAI,QAAQ,KAAK,IAAI,QAAQ,KAAK,MAAM,CAAC;AAAA,EACrD;AACF;AAEA,SAAS,UAAa,KAA4B,OAAgB;AAChE,MAAI,OAAO,QAAQ,YAAY;AAC7B,QAAI,KAAK;AACT;AAAA,EACF;AAEA,MAAI,KAAK;AACP,QAAI,UAAU;AAAA,EAChB;AACF;AAEA,SAAS,YACP,SACA,OACM;AACN,YAAU,KAAK;AACjB;AAEA,IAAM,sBAA4B,kBAGhC,SAASC,qBACT;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,8BAA8B;AAAA,EAC9B,kBAAkB;AAAA,EAClB,kBAAkB;AAAA,EAClB,oBAAoB,CAAC;AAAA,EACrB,uBAAuB;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GACA,cAC0B;AAC1B,QAAM,aAAmB,cAA8B,IAAI;AAC3D,QAAM,CAAC,cAAc,eAAe,IAAU,gBAA0B,IAAI;AAE5E,QAAM,UAAgB;AAAA,IACpB,CAAC,SAAgC;AAC/B,iBAAW,UAAU;AACrB,gBAAU,cAAc,IAAI;AAAA,IAC9B;AAAA,IACA,CAAC,YAAY;AAAA,EACf;AAEA,EAAM,uBAAgB,MAAM;AAC1B,QAAI,CAAC,MAAM;AACT,sBAAgB,IAAI;AACpB;AAAA,IACF;AAEA,UAAM,UAAU,WAAW;AAC3B,QAAI,CAAC,SAAS;AACZ,sBAAgB,IAAI;AACpB;AAAA,IACF;AAEA,UAAM,qBAAqB,MAAM;AAC/B,YAAM,OAAO,QAAQ,sBAAsB;AAC3C;AAAA,QAAgB,CAAC,aACf,YACA,KAAK,IAAI,SAAS,QAAQ,KAAK,KAAK,IAAI,OACxC,KAAK,IAAI,SAAS,SAAS,KAAK,MAAM,IAAI,MACtC,WACA,EAAE,OAAO,KAAK,OAAO,QAAQ,KAAK,OAAO;AAAA,MAC/C;AAAA,IACF;AAEA,uBAAmB;AAEnB,QAAI,OAAO,mBAAmB,aAAa;AACzC;AAAA,IACF;AAEA,UAAM,WAAW,IAAI,eAAe,kBAAkB;AACtD,aAAS,QAAQ,OAAO;AACxB,WAAO,MAAM,SAAS,WAAW;AAAA,EACnC,GAAG,CAAC,MAAM,SAAS,CAAC;AAEpB,EAAM,iBAAU,MAAM;AACpB,QAAI,CAAC,MAAM;AACT;AAAA,IACF;AAEA,QACE,CAAC,aACA,CAAC,+BAA+B,CAAC,mBAAmB,CAAC,iBACtD;AACA;AAAA,IACF;AAEA,UAAM,qBAAqB,CAAC,WAAwC;AAClE,UAAI,EAAE,kBAAkB,OAAO;AAC7B,eAAO;AAAA,MACT;AAEA,UAAI,WAAW,SAAS,SAAS,MAAM,GAAG;AACxC,eAAO;AAAA,MACT;AAEA,aAAO,kBAAkB;AAAA,QACvB,CAAC,QAAQ,IAAI,SAAS,SAAS,MAAM,KAAK;AAAA,MAC5C;AAAA,IACF;AAEA,UAAM,oBAAoB,CAAC,UAAwB;AACjD,UAAI,CAAC,6BAA6B;AAChC;AAAA,MACF;AACA,UAAI,mBAAmB,MAAM,MAAM,GAAG;AACpC;AAAA,MACF;AACA,gBAAU;AAAA,IACZ;AAEA,UAAM,gBAAgB,CAAC,UAAyB;AAC9C,UAAI,CAAC,mBAAmB,MAAM,QAAQ,UAAU;AAC9C;AAAA,MACF;AACA,gBAAU;AAAA,IACZ;AAEA,UAAM,eAAe,MAAM;AACzB,UAAI,iBAAiB;AACnB,kBAAU;AAAA,MACZ;AAAA,IACF;AAEA,aAAS,iBAAiB,eAAe,mBAAmB,IAAI;AAChE,WAAO,iBAAiB,WAAW,eAAe,IAAI;AACtD,WAAO,iBAAiB,UAAU,cAAc;AAAA,MAC9C,SAAS;AAAA,MACT,SAAS;AAAA,IACX,CAAC;AAED,WAAO,MAAM;AACX,eAAS,oBAAoB,eAAe,mBAAmB,IAAI;AACnE,aAAO,oBAAoB,WAAW,eAAe,IAAI;AACzD,aAAO,oBAAoB,UAAU,cAAc,IAAI;AAAA,IACzD;AAAA,EACF,GAAG;AAAA,IACD;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,QAAM,mBAAyB,eAAQ,MAAM;AAC3C,QAAI,UAAU,SAAS,YAAY;AACjC,YAAMC,YAAW,6BAA6B;AAAA,QAC5C,GAAG,UAAU;AAAA,QACb,GAAG,UAAU;AAAA,MACf,CAAC;AACD,YAAMC,YAAW,gBAAgB,EAAE,OAAO,GAAG,QAAQ,EAAE;AACvD,aAAO,4BAA4B;AAAA,QACjC,MAAM,UAAU;AAAA,QAChB,KAAK,UAAU;AAAA,QACf,OAAOA,UAAS;AAAA,QAChB,QAAQA,UAAS;AAAA,QACjB,UAAAD;AAAA,MACF,CAAC;AAAA,IACH;AAEA,UAAM,WAAW,6BAA6B,UAAU,KAAK;AAC7D,UAAM,WAAW,gBACf,UAAU,iBAAiB,EAAE,OAAO,GAAG,QAAQ,EAAE;AACnD,UAAM,gBAAgB;AAAA,MACpB,GAAG,UAAU,MAAM,IAAI,SAAS;AAAA,MAChC,GAAG,UAAU,MAAM,IAAI,SAAS;AAAA,IAClC;AACA,UAAM,mBAAmB,yBAAyB;AAAA,MAChD,OAAO;AAAA,MACP;AAAA,MACA,UAAU,EAAE,OAAO,SAAS,OAAO,QAAQ,SAAS,OAAO;AAAA,MAC3D,SAAS,UAAU;AAAA,MACnB,QAAQ,UAAU;AAAA,MAClB,QAAQ,UAAU;AAAA,IACpB,CAAC;AAED,WAAO;AAAA,MACL,MAAM,SAAS,OAAO,iBAAiB;AAAA,MACvC,KAAK,SAAS,MAAM,iBAAiB;AAAA,IACvC;AAAA,EACF,GAAG,CAAC,cAAc,SAAS,CAAC;AAE5B,MAAI,CAAC,QAAQ,OAAO,aAAa,eAAe,CAAC,SAAS,MAAM;AAC9D,WAAO;AAAA,EACT;AAEA,SAAOE;AAAA,IACL,gBAAAJ;AAAA,MAAC;AAAA;AAAA,QACE,GAAG;AAAA,QACJ,KAAK;AAAA,QACL;AAAA,QACA,aAAU;AAAA,QACV,OAAO;AAAA,UACL,GAAG;AAAA,UACH,UAAU;AAAA,UACV,KAAK,iBAAiB;AAAA,UACtB,MAAM,iBAAiB;AAAA,UACvB,QAAQ;AAAA,QACV;AAAA,QACA,SAAS,CAAC,UAAU;AAClB,cAAI,sBAAsB;AACxB,kBAAM,gBAAgB;AAAA,UACxB;AACA,sBAAY,SAAS,KAAK;AAAA,QAC5B;AAAA,QACA,aAAa,CAAC,UAAU;AACtB,cAAI,sBAAsB;AACxB,kBAAM,gBAAgB;AAAA,UACxB;AACA,sBAAY,aAAa,KAAK;AAAA,QAChC;AAAA,QAEC;AAAA;AAAA,IACH;AAAA,IACA,SAAS;AAAA,EACX;AACF,CAAC;","names":["cva","Slot","jsx","cva","Slot","jsx","jsx","jsx","jsx","jsxs","React","Fragment","jsx","jsxs","React","Slot","jsx","Slot","jsx","jsxs","jsx","jsx","jsxs","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"]}
@@ -43,16 +43,7 @@ function LaunchIcon(props) {
43
43
  ) });
44
44
  }
45
45
  function FolderIcon(props) {
46
- return /* @__PURE__ */ jsx(SvgIcon, { ...props, children: /* @__PURE__ */ jsx(
47
- "path",
48
- {
49
- d: "M3.5 7.5V17.5C3.5 18.6046 4.39543 19.5 5.5 19.5H18.5C19.6046 19.5 20.5 18.6046 20.5 17.5V9.5C20.5 8.39543 19.6046 7.5 18.5 7.5H12.25L10.65 5.9C10.275 5.525 9.7663 5.31434 9.23579 5.31434H5.5C4.39543 5.31434 3.5 6.20977 3.5 7.31434V7.5Z",
50
- stroke: "currentColor",
51
- strokeLinecap: "round",
52
- strokeLinejoin: "round",
53
- strokeWidth: "1.8"
54
- }
55
- ) });
46
+ return /* @__PURE__ */ jsx(FilledPathIcon, { ...props, children: /* @__PURE__ */ jsx("path", { d: "M7.92969 2C8.42628 2.00008 8.91537 2.12381 9.35254 2.35938C9.78972 2.59498 10.1624 2.93486 10.4355 3.34961H10.4346L11.2393 4.54004L11.2451 4.5498C11.3371 4.68949 11.4627 4.8042 11.6104 4.88281C11.7579 4.96136 11.9227 5.00158 12.0898 5H20C20.7957 5 21.5585 5.3163 22.1211 5.87891C22.6837 6.44152 23 7.20435 23 8V18C23 18.7957 22.6837 19.5585 22.1211 20.1211C21.5585 20.6837 20.7957 21 20 21H4C3.20435 21 2.44152 20.6837 1.87891 20.1211C1.3163 19.5585 1 18.7956 1 18V5C1 4.20435 1.3163 3.44152 1.87891 2.87891C2.44152 2.3163 3.20435 2 4 2H7.92969ZM4 4C3.73478 4 3.4805 4.10543 3.29297 4.29297C3.10543 4.4805 3 4.73478 3 5V18C3 18.2652 3.10543 18.5195 3.29297 18.707C3.48051 18.8946 3.73478 19 4 19H20C20.2652 19 20.5195 18.8946 20.707 18.707C20.8946 18.5195 21 18.2652 21 18V8C21 7.73478 20.8946 7.48051 20.707 7.29297C20.5195 7.10543 20.2652 7 20 7H12.0996V6.99902C11.6014 7.00222 11.1098 6.88269 10.6699 6.64844C10.2304 6.41434 9.85641 6.07399 9.58105 5.65918L8.77148 4.45996L8.76465 4.4502C8.67366 4.31204 8.54989 4.19865 8.4043 4.12012C8.25856 4.04158 8.09524 4.00003 7.92969 4H4Z" }) });
56
47
  }
57
48
  function FolderFilledIcon(props) {
58
49
  return /* @__PURE__ */ jsx(FilledPathIcon, { ...props, children: /* @__PURE__ */ jsx("path", { d: "M8.92969 2C9.42628 2.00008 9.91537 2.12381 10.3525 2.35938C10.7897 2.59498 11.1624 2.93486 11.4355 3.34961H11.4346L12.2393 4.54004L12.2451 4.5498C12.3371 4.68949 12.4627 4.8042 12.6104 4.88281C12.7579 4.96136 12.9227 5.00158 13.0898 5H20C20.7957 5 21.5585 5.3163 22.1211 5.87891C22.6837 6.44152 23 7.20435 23 8V19C23 19.7957 22.6837 20.5585 22.1211 21.1211C21.5585 21.6837 20.7957 22 20 22H4C3.20435 22 2.44152 21.6837 1.87891 21.1211C1.3163 20.5585 1 19.7957 1 19V5C1 4.20435 1.3163 3.44152 1.87891 2.87891C2.44152 2.3163 3.20435 2 4 2H8.92969Z" }) });
@@ -63,32 +54,12 @@ function DashboardIcon(props) {
63
54
  function NewWorkspaceIcon(props) {
64
55
  return /* @__PURE__ */ jsx(FilledPathIcon, { ...props, children: /* @__PURE__ */ jsx("path", { d: "M7.92969 2C8.42628 2.00008 8.91537 2.12381 9.35254 2.35938C9.78972 2.59498 10.1624 2.93486 10.4355 3.34961L11.2393 4.54004L11.2451 4.5498C11.3371 4.68949 11.4627 4.8042 11.6104 4.88281C11.7579 4.96136 11.9227 5.00158 12.0898 5H20C20.7957 5 21.5585 5.3163 22.1211 5.87891C22.6837 6.44152 23 7.20435 23 8V18C23 18.7957 22.6837 19.5585 22.1211 20.1211C21.5585 20.6837 20.7957 21 20 21H4C3.20435 21 2.44152 20.6837 1.87891 20.1211C1.3163 19.5585 1 18.7956 1 18V5C1 4.20435 1.3163 3.44152 1.87891 2.87891C2.44152 2.3163 3.20435 2 4 2H7.92969ZM12 9C11.4477 9 11 9.44772 11 10V12H9C8.44772 12 8 12.4477 8 13C8 13.5523 8.44772 14 9 14H11V16C11 16.5523 11.4477 17 12 17C12.5523 17 13 16.5523 13 16V14H15C15.5523 14 16 13.5523 16 13C16 12.4477 15.5523 12 15 12H13V10C13 9.44772 12.5523 9 12 9Z" }) });
65
56
  }
57
+ function NewWorkspaceLinedIcon(props) {
58
+ return /* @__PURE__ */ jsx(FilledPathIcon, { ...props, children: /* @__PURE__ */ jsx("path", { d: "M7.92969 2C8.42628 2.00008 8.91537 2.12381 9.35254 2.35938C9.78972 2.59498 10.1624 2.93486 10.4355 3.34961H10.4346L11.2393 4.54004L11.2451 4.5498C11.3371 4.68949 11.4627 4.8042 11.6104 4.88281C11.7579 4.96136 11.9227 5.00158 12.0898 5H20C20.7957 5 21.5585 5.3163 22.1211 5.87891C22.6837 6.44152 23 7.20435 23 8V18C23 18.7957 22.6837 19.5585 22.1211 20.1211C21.5585 20.6837 20.7957 21 20 21H4C3.20435 21 2.44152 20.6837 1.87891 20.1211C1.3163 19.5585 1 18.7956 1 18V5C1 4.20435 1.3163 3.44152 1.87891 2.87891C2.44152 2.3163 3.20435 2 4 2H7.92969ZM4 4C3.73478 4 3.4805 4.10543 3.29297 4.29297C3.10543 4.4805 3 4.73478 3 5V18C3 18.2652 3.10543 18.5195 3.29297 18.707C3.48051 18.8946 3.73478 19 4 19H20C20.2652 19 20.5195 18.8946 20.707 18.707C20.8946 18.5195 21 18.2652 21 18V8C21 7.73478 20.8946 7.48051 20.707 7.29297C20.5195 7.10543 20.2652 7 20 7H12.0996V6.99902C11.6014 7.00222 11.1098 6.88269 10.6699 6.64844C10.2304 6.41434 9.85641 6.07399 9.58105 5.65918L8.77148 4.45996L8.76465 4.4502C8.67366 4.31204 8.54989 4.19865 8.4043 4.12012C8.25856 4.04158 8.09524 4.00003 7.92969 4H4ZM12 9C12.5523 9 13 9.44772 13 10V12H15C15.5523 12 16 12.4477 16 13C16 13.5523 15.5523 14 15 14H13V16C13 16.5523 12.5523 17 12 17C11.4477 17 11 16.5523 11 16V14H9C8.44772 14 8 13.5523 8 13C8 12.4477 8.44772 12 9 12H11V10C11 9.44772 11.4477 9 12 9Z" }) });
59
+ }
66
60
  function HealthIcon(props) {
67
61
  return /* @__PURE__ */ jsx(FilledPathIcon, { ...props, children: /* @__PURE__ */ jsx("path", { d: "M5 4C3.34315 4 2 5.34315 2 7V17C2 18.6569 3.34315 20 5 20H19C20.6569 20 22 18.6569 22 17V7C22 5.34315 20.6569 4 19 4H5ZM5 6H19C19.5523 6 20 6.44772 20 7V12H4V7C4 6.44772 4.44772 6 5 6ZM4 17V14H20V17C20 17.5523 19.5523 18 19 18H5C4.44772 18 4 17.5523 4 17ZM7 15C6.44772 15 6 15.4477 6 16C6 16.5523 6.44772 17 7 17H7.01C7.56228 17 8.01 16.5523 8.01 16C8.01 15.4477 7.56228 15 7.01 15H7Z" }) });
68
62
  }
69
- function AlertIcon(props) {
70
- return /* @__PURE__ */ jsxs(SvgIcon, { ...props, children: [
71
- /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "8.5", stroke: "currentColor", strokeWidth: "1.8" }),
72
- /* @__PURE__ */ jsx(
73
- "path",
74
- {
75
- d: "M12 7.75V12.5",
76
- stroke: "currentColor",
77
- strokeLinecap: "round",
78
- strokeWidth: "1.8"
79
- }
80
- ),
81
- /* @__PURE__ */ jsx(
82
- "path",
83
- {
84
- d: "M12 16.25H12.01",
85
- stroke: "currentColor",
86
- strokeLinecap: "round",
87
- strokeWidth: "2.2"
88
- }
89
- )
90
- ] });
91
- }
92
63
  function LoadingIcon({
93
64
  size = 18,
94
65
  title,
@@ -126,9 +97,6 @@ function LoadingIcon({
126
97
  function PlatformIcon(props) {
127
98
  return /* @__PURE__ */ jsx(FilledPathIcon, { ...props, children: /* @__PURE__ */ jsx("path", { d: "M12 3a1 1 0 0 1 1 1v3h5a3 3 0 0 1 3 3v3h1a1 1 0 1 1 0 2h-1v3a3 3 0 0 1-3 3H6a3 3 0 0 1-3-3v-3H2a1 1 0 1 1 0-2h1v-3a3 3 0 0 1 3-3h5V5H8a1 1 0 0 1 0-2zM6 9a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-8a1 1 0 0 0-1-1zm3 3a1 1 0 0 1 1 1v2a1 1 0 1 1-2 0v-2a1 1 0 0 1 1-1m6 0a1 1 0 0 1 1 1v2a1 1 0 1 1-2 0v-2a1 1 0 0 1 1-1" }) });
128
99
  }
129
- function SparkIcon(props) {
130
- return /* @__PURE__ */ jsx(FilledPathIcon, { ...props, children: /* @__PURE__ */ jsx("path", { d: "M12 2C12.4142 2 12.7858 2.25542 12.9343 2.64223L15.0649 8.1905L20.3578 10.0657C20.7554 10.2065 21 10.5933 21 11C21 11.4067 20.7554 11.7935 20.3578 11.9343L15.0649 13.8095L12.9343 19.3578C12.7858 19.7446 12.4142 20 12 20C11.5858 20 11.2142 19.7446 11.0657 19.3578L8.93514 13.8095L3.64223 11.9343C3.24458 11.7935 3 11.4067 3 11C3 10.5933 3.24458 10.2065 3.64223 10.0657L8.93514 8.1905L11.0657 2.64223C11.2142 2.25542 11.5858 2 12 2ZM18 16C18.3688 16 18.7084 16.2029 18.8828 16.5279L19.5 17.6788L20.6508 18.296C20.9758 18.4704 21.1788 18.81 21.1788 19.1788C21.1788 19.5475 20.9758 19.8871 20.6508 20.0615L19.5 20.6787L18.8828 21.8296C18.7084 22.1546 18.3688 22.3575 18 22.3575C17.6312 22.3575 17.2916 22.1546 17.1172 21.8296L16.5 20.6787L15.3492 20.0615C15.0242 19.8871 14.8212 19.5475 14.8212 19.1788C14.8212 18.81 15.0242 18.4704 15.3492 18.296L16.5 17.6788L17.1172 16.5279C17.2916 16.2029 17.6312 16 18 16Z" }) });
131
- }
132
100
  function SettingsIcon(props) {
133
101
  return /* @__PURE__ */ jsxs(FilledPathIcon, { ...props, children: [
134
102
  /* @__PURE__ */ jsx(
@@ -241,9 +209,6 @@ function ChevronDownIcon(props) {
241
209
  }
242
210
  ) });
243
211
  }
244
- function ChevronRightIcon(props) {
245
- return /* @__PURE__ */ jsx(ArrowRightIcon, { ...props });
246
- }
247
212
  function ChevronUpIcon(props) {
248
213
  return /* @__PURE__ */ jsx(SvgIcon, { ...props, children: /* @__PURE__ */ jsx(
249
214
  "path",
@@ -327,6 +292,9 @@ function EyeIcon(props) {
327
292
  function FileIcon(props) {
328
293
  return /* @__PURE__ */ jsx(FilledPathIcon, { ...props, children: /* @__PURE__ */ jsx("path", { d: "M14 1.00098C14.4479 1.00046 14.8919 1.08734 15.3057 1.25879C15.7193 1.43022 16.0949 1.68198 16.4111 1.99902L19.9971 5.58496L20.1133 5.70605C20.3773 5.99585 20.5896 6.32951 20.7402 6.69238C20.9122 7.1067 21.0005 7.55143 21 8V20C21 20.7956 20.6837 21.5585 20.1211 22.1211C19.5585 22.6837 18.7957 23 18 23H6C5.20435 23 4.44152 22.6837 3.87891 22.1211C3.3163 21.5585 3 20.7956 3 20V4C3 3.20435 3.3163 2.44151 3.87891 1.87891C4.44152 1.3163 5.20435 1 6 1H14V1.00098ZM14.5 6.5C14.5 7.05228 14.9477 7.5 15.5 7.5H19.5L14.5 2.5V6.5Z" }) });
329
294
  }
295
+ function FileLinedIcon(props) {
296
+ return /* @__PURE__ */ jsx(FilledPathIcon, { ...props, children: /* @__PURE__ */ jsx("path", { d: "M14.04 1.00098C14.4743 1.00553 14.9042 1.09245 15.3057 1.25879C15.7193 1.43022 16.0949 1.68198 16.4111 1.99902L19.9971 5.58496L20.1133 5.70605C20.3773 5.99585 20.5896 6.32951 20.7402 6.69238C20.9122 7.1067 21.0005 7.55143 21 8V20C21 20.7956 20.6837 21.5585 20.1211 22.1211C19.5585 22.6837 18.7957 23 18 23H6C5.20435 23 4.44152 22.6837 3.87891 22.1211C3.3163 21.5585 3 20.7956 3 20V4C3 3.20435 3.3163 2.44151 3.87891 1.87891C4.44152 1.3163 5.20435 1 6 1H14C14.0134 1 14.0268 1.00045 14.04 1.00098ZM6 3C5.73478 3 5.4805 3.10543 5.29297 3.29297C5.10543 3.4805 5 3.73478 5 4V20C5 20.2652 5.10543 20.5195 5.29297 20.707C5.48051 20.8946 5.73478 21 6 21H18C18.2652 21 18.5195 20.8946 18.707 20.707C18.8946 20.5195 19 20.2652 19 20V9H15C14.4696 9 13.961 8.78913 13.5859 8.41406C13.2109 8.03899 13 7.53043 13 7V3H6ZM12 10C12.5523 10 13 10.4477 13 11V13H15C15.5523 13 16 13.4477 16 14C16 14.5523 15.5523 15 15 15H13V17C13 17.5523 12.5523 18 12 18C11.4477 18 11 17.5523 11 17V15H9C8.44772 15 8 14.5523 8 14C8 13.4477 8.44772 13 9 13H11V11C11 10.4477 11.4477 10 12 10ZM15 7H18.584L15 3.41602V7Z" }) });
297
+ }
330
298
  function FileTextIcon(props) {
331
299
  return /* @__PURE__ */ jsx(FilledPathIcon, { ...props, children: /* @__PURE__ */ jsx("path", { d: "M14 1.00098C14.4479 1.00046 14.8919 1.08734 15.3057 1.25879C15.7193 1.43022 16.0949 1.68198 16.4111 1.99902L19.9971 5.58496L20.1133 5.70605C20.3773 5.99585 20.5896 6.32951 20.7402 6.69238C20.9122 7.1067 21.0005 7.55143 21 8V20C21 20.7956 20.6837 21.5585 20.1211 22.1211C19.5585 22.6837 18.7957 23 18 23H6C5.20435 23 4.44152 22.6837 3.87891 22.1211C3.3163 21.5585 3 20.7956 3 20V4C3 3.20435 3.3163 2.44151 3.87891 1.87891C4.44152 1.3163 5.20435 1 6 1H14V1.00098ZM8 12H16V14H8V12ZM8 16H13V18H8V16ZM14.5 6.5C14.5 7.05228 14.9477 7.5 15.5 7.5H19.5L14.5 2.5V6.5Z" }) });
332
300
  }
@@ -348,15 +316,6 @@ function FileCreateIcon(props) {
348
316
  }
349
317
  ) });
350
318
  }
351
- function FileSearchIcon(props) {
352
- return /* @__PURE__ */ jsxs(FilledPathIcon, { ...props, children: [
353
- /* @__PURE__ */ jsx("path", { d: "M14 1.001a3.4 3.4 0 0 1 2.411.998l3.586 3.586.116.121A3.4 3.4 0 0 1 21 8v4.8a6.5 6.5 0 0 0-2-1.21V9h-4a2 2 0 0 1-2-2V3H6a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h5.59a6.5 6.5 0 0 0 1.21 2H6a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3h8ZM15 7h3.584L15 3.416z" }),
354
- /* @__PURE__ */ jsx("path", { d: "M17 13.5A3.5 3.5 0 0 1 19.746 19.17L22.207 21.631A1 1 0 0 1 20.793 23.045L18.332 20.584A3.5 3.5 0 1 1 17 13.5ZM17 15.5A1.5 1.5 0 1 0 17 18.5A1.5 1.5 0 0 0 17 15.5Z" })
355
- ] });
356
- }
357
- function FileSpreadsheetIcon(props) {
358
- return /* @__PURE__ */ jsx(FilledPathIcon, { ...props, children: /* @__PURE__ */ jsx("path", { d: "M14 1.001a3.4 3.4 0 0 1 2.411.998l3.586 3.586.116.121A3.4 3.4 0 0 1 21 8v12a3 3 0 0 1-3 3H6a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3h8ZM6 11v2h4v-2H6Zm6 0v2h6v-2h-6ZM6 15v2h4v-2H6Zm6 0v2h6v-2h-6ZM6 19v1h4v-1H6Zm6 0v1h6v-1h-6ZM14.5 6.5a1 1 0 0 0 1 1h4l-5-5z" }) });
359
- }
360
319
  function ImageFileIcon(props) {
361
320
  return /* @__PURE__ */ jsx(FilledPathIcon, { ...props, children: /* @__PURE__ */ jsx(
362
321
  "path",
@@ -375,7 +334,7 @@ function EditIcon(props) {
375
334
  }
376
335
  ) });
377
336
  }
378
- function LayoutGridIcon(props) {
337
+ function NavApplicationsLinedIcon(props) {
379
338
  return /* @__PURE__ */ jsx(FilledPathIcon, { ...props, children: /* @__PURE__ */ jsx(
380
339
  "path",
381
340
  {
@@ -499,15 +458,6 @@ function AgentSessionsIcon(props) {
499
458
  }
500
459
  ) });
501
460
  }
502
- function CodexFilledIcon(props) {
503
- return /* @__PURE__ */ jsx(SvgIcon, { viewBox: "0 0 40 40", ...props, children: /* @__PURE__ */ jsx(
504
- "path",
505
- {
506
- fill: "#d9f0f5",
507
- d: "M17.504 4.071c2.234-.377 4.72.788 6.199 2.426a7.35 7.35 0 0 1 3.73-.127 7.74 7.74 0 0 1 4.779 3.42c1.316 2.127 1.55 3.893.981 6.292 3.114 2.959 2.988 7.98.001 10.962-1.071 1.07-2.02 1.606-3.454 2.1-.716 3.243-3.598 5.559-6.86 5.844a7 7 0 0 1-1.214-.03c-1.688-.173-3.634-1.137-4.7-2.454a7.7 7.7 0 0 1-5.102-.275A7.84 7.84 0 0 1 7.6 27.967c-.598-1.436-.861-3.495-.263-4.957-2.45-2.336-3.043-6.196-1.448-9.17a8.07 8.07 0 0 1 4.843-3.904c.913-3.22 3.466-5.4 6.772-5.865M13.03 14.18c-1.082.63-.926 1.208-.322 2.176.673 1.078 1.293 2.238 2.016 3.282-.511.87-2.255 3.623-2.53 4.325.33.726.678 1.238 1.576 1.017.555-.478 3.062-4.507 3.254-5.357.04-.19-2.678-4.7-3.032-5.197-.16-.225-.654-.245-.962-.246m14.96 8.709c-.76-.274-5.69-.121-6.919-.125-.329.125-.585.293-.74.62a1 1 0 0 0-.038.812c.109.282.345.538.625.658.534.225 5.893.141 6.812.091.337-.14.662-.311.81-.666a1.12 1.12 0 0 0 0-.88 1 1 0 0 0-.55-.51"
508
- }
509
- ) });
510
- }
511
461
  function CreateChatIcon(props) {
512
462
  return /* @__PURE__ */ jsx(FilledPathIcon, { ...props, children: /* @__PURE__ */ jsx(
513
463
  "path",
@@ -598,7 +548,7 @@ function NavLaunchIcon(props) {
598
548
  }
599
549
  ) });
600
550
  }
601
- function NavTemplatesIcon(props) {
551
+ function NavApplicationsFilledIcon(props) {
602
552
  return /* @__PURE__ */ jsx(FilledPathIcon, { ...props, children: /* @__PURE__ */ jsx(
603
553
  "path",
604
554
  {
@@ -783,11 +733,10 @@ export {
783
733
  FolderFilledIcon,
784
734
  DashboardIcon,
785
735
  NewWorkspaceIcon,
736
+ NewWorkspaceLinedIcon,
786
737
  HealthIcon,
787
- AlertIcon,
788
738
  LoadingIcon,
789
739
  PlatformIcon,
790
- SparkIcon,
791
740
  SettingsIcon,
792
741
  CloseIcon,
793
742
  MinimizeIcon,
@@ -805,21 +754,19 @@ export {
805
754
  ArrowRightIcon,
806
755
  CheckIcon,
807
756
  ChevronDownIcon,
808
- ChevronRightIcon,
809
757
  ChevronUpIcon,
810
758
  AddIcon,
811
759
  CopyIcon,
812
760
  DirectoryIcon,
813
761
  EyeIcon,
814
762
  FileIcon,
763
+ FileLinedIcon,
815
764
  FileTextIcon,
816
765
  FileCodeIcon,
817
766
  FileCreateIcon,
818
- FileSearchIcon,
819
- FileSpreadsheetIcon,
820
767
  ImageFileIcon,
821
768
  EditIcon,
822
- LayoutGridIcon,
769
+ NavApplicationsLinedIcon,
823
770
  OverviewLayoutIcon,
824
771
  MoreHorizontalIcon,
825
772
  RefreshIcon,
@@ -831,7 +778,6 @@ export {
831
778
  UploadIcon,
832
779
  VideoFileIcon,
833
780
  AgentSessionsIcon,
834
- CodexFilledIcon,
835
781
  CreateChatIcon,
836
782
  FolderFailedIcon,
837
783
  GuideIcon,
@@ -842,7 +788,7 @@ export {
842
788
  LocateFolderIcon,
843
789
  NavAgentsIcon,
844
790
  NavLaunchIcon,
845
- NavTemplatesIcon,
791
+ NavApplicationsFilledIcon,
846
792
  OpenSessionsIcon,
847
793
  PanelIcon,
848
794
  ProductIcon,
@@ -866,4 +812,4 @@ export {
866
812
  GoogleBrandIcon,
867
813
  GitHubBrandIcon
868
814
  };
869
- //# sourceMappingURL=chunk-TYJPBTBR.js.map
815
+ //# sourceMappingURL=chunk-UELLN5VR.js.map