@inf-monkeys-tech/monkeys-design 0.4.49 → 0.4.51
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/base/index.d.mts +2 -2
- package/dist/components/base/index.d.ts +2 -2
- package/dist/components/base/index.js +79 -13
- package/dist/components/base/index.js.map +1 -1
- package/dist/components/base/index.mjs +80 -14
- package/dist/components/base/index.mjs.map +1 -1
- package/dist/components/layout/index.d.mts +1 -1
- package/dist/components/layout/index.d.ts +1 -1
- package/dist/components/layout/index.js +86 -17
- package/dist/components/layout/index.js.map +1 -1
- package/dist/components/layout/index.mjs +87 -18
- package/dist/components/layout/index.mjs.map +1 -1
- package/dist/components/workbench/index.d.mts +1 -1
- package/dist/components/workbench/index.d.ts +1 -1
- package/dist/components/workbench/index.js +1 -0
- package/dist/components/workbench/index.js.map +1 -1
- package/dist/components/workbench/index.mjs +1 -0
- package/dist/components/workbench/index.mjs.map +1 -1
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +86 -18
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +86 -18
- package/dist/index.mjs.map +1 -1
- package/dist/{theme-Clm5dVb0.d.mts → theme-CSDlBl7e.d.ts} +2 -2
- package/dist/{theme-sIoU5-YC.d.ts → theme-K9M_pIiz.d.mts} +2 -2
- package/dist/theme-system/index.d.mts +1 -1
- package/dist/theme-system/index.d.ts +1 -1
- package/dist/theme-system/index.js +1 -1
- package/dist/theme-system/index.mjs +1 -1
- package/dist/{types-Bn6PEDsX.d.mts → types-5cYLLXs8.d.mts} +1 -0
- package/dist/{types-Bn6PEDsX.d.ts → types-5cYLLXs8.d.ts} +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/base/utils.ts","../../../src/components/base/theme.ts","../../../src/components/base/BaseAvatar.tsx","../../../src/components/base/BaseButton.tsx","../../../src/components/base/BaseCheckbox.tsx","../../../src/components/base/BaseInput.tsx","../../../src/components/base/BaseMultiSelect.tsx","../../../src/components/base/BaseSelect.tsx","../../../src/components/base/BaseSwitch.tsx","../../../src/components/base/BaseTable.tsx","../../../src/components/base/BaseTextarea.tsx","../../../src/components/base/BaseTooltip.tsx","../../../src/components/layout/UserAccountMenu.tsx","../../../src/components/layout/index.tsx"],"names":["jsxs","jsx","forwardRef","BaseButton","BaseCheckbox","useRef","useState","useEffect","BaseInput","BaseMultiSelect","useId","useMemo","getNextEnabledIndex","BaseSelect","BaseSwitch","createContext","useContext","BaseTableHead","BaseTextarea","getInitials","DropdownMenu","cn","Fragment","DropdownMenu2"],"mappings":"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","file":"index.js","sourcesContent":["import type { ReactNode } from 'react';\n\nexport function cn(...parts: Array<string | false | null | undefined>) {\n return parts.filter(Boolean).join(' ');\n}\n\nexport function hasRenderableNode(node: ReactNode) {\n return node !== undefined && node !== null && typeof node !== 'boolean';\n}\n","import type {\n BaseAppearance,\n BaseBackground,\n BaseBorder,\n BaseControlTone,\n BaseDensity,\n BaseRadius,\n BaseResolvedTheme,\n BaseThemePresetId,\n BaseThemeSlots,\n BaseThemeStyles,\n} from './types';\nimport { cn } from './utils';\n\ntype ResolvedSlots = Required<BaseThemeSlots>;\n\nconst emptyStyles: BaseThemeStyles = {};\n\nconst motionBase =\n 'motion-safe:transition motion-safe:duration-300 motion-safe:ease-out';\n\nconst motionInteractive =\n 'motion-safe:transition-all motion-safe:duration-300 motion-safe:ease-out';\n\nconst motionTransform =\n 'motion-safe:transition-transform motion-safe:duration-300 motion-safe:ease-out';\n\nconst baseSlots: ResolvedSlots = {\n buttonBase:\n cn(\n 'group/button inline-flex min-w-0 items-center justify-center gap-2 rounded-md border px-3 text-sm font-medium focus-visible:outline-none',\n 'cursor-pointer disabled:!cursor-not-allowed',\n motionInteractive,\n ),\n buttonDefault:\n 'border-border bg-background text-foreground hover:bg-accent/60',\n buttonPrimary:\n 'border-primary/20 bg-primary/10 text-primary hover:bg-primary/15',\n buttonSuccess:\n 'border-emerald-500/30 bg-emerald-500/10 text-emerald-700 hover:bg-emerald-500/15',\n buttonWarning:\n 'border-amber-500/30 bg-amber-500/10 text-amber-700 hover:bg-amber-500/15',\n buttonDanger:\n 'border-destructive/20 bg-destructive/10 text-destructive hover:bg-destructive/15',\n buttonMuted:\n 'border-border/60 bg-muted/45 text-muted-foreground hover:bg-muted/70 hover:text-foreground',\n buttonActive: 'border-primary/35 bg-primary/10 text-primary',\n buttonDisabled: '!cursor-not-allowed opacity-60',\n buttonIconOnly: 'w-9 px-0',\n buttonIcon:\n 'inline-flex h-4 w-4 shrink-0 items-center justify-center',\n buttonLabel: 'min-w-0 truncate',\n badgeBase:\n cn(\n 'inline-flex max-w-full items-center gap-1.5 rounded-full border px-2 py-0.5 text-xs font-medium',\n motionBase,\n ),\n badgeDefault: 'border-border/60 bg-background text-foreground',\n badgePrimary: 'border-primary/30 bg-primary/10 text-primary',\n badgeSuccess: 'border-emerald-500/30 bg-emerald-500/10 text-emerald-700',\n badgeWarning: 'border-amber-500/30 bg-amber-500/10 text-amber-700',\n badgeDanger: 'border-destructive/30 bg-destructive/10 text-destructive',\n badgeMuted: 'border-border/60 bg-muted text-muted-foreground',\n badgeIcon: 'inline-flex h-3.5 w-3.5 shrink-0 items-center justify-center',\n badgeLabel: 'min-w-0 truncate',\n panelRoot:\n cn(\n 'group relative flex min-w-0 flex-col overflow-hidden rounded-lg border border-border/70 bg-background',\n motionInteractive,\n ),\n panelInteractive:\n 'cursor-pointer hover:shadow-md',\n panelSelected: 'border-primary/45 bg-primary/5',\n panelDisabled: '!cursor-not-allowed opacity-60',\n panelMedia:\n 'shrink-0 overflow-hidden',\n panelHeader: 'min-w-0 p-4',\n panelTitle: 'min-w-0 truncate text-sm font-semibold leading-none text-foreground',\n panelDescription: 'mt-1 text-sm leading-5 text-muted-foreground',\n panelBody: 'min-w-0 px-4 pb-4 text-sm text-foreground',\n panelBodyStandalone: 'pt-4',\n panelFooter: 'shrink-0 border-t border-border/60 px-4 py-3',\n stateRoot:\n cn(\n 'flex min-h-48 flex-col items-center justify-center rounded-lg border border-border/70 bg-background px-6 py-10 text-center',\n motionBase,\n ),\n stateIcon:\n 'mb-4 flex h-12 w-12 items-center justify-center rounded-full bg-muted text-muted-foreground motion-safe:animate-in motion-safe:fade-in',\n stateTitle: 'text-sm font-semibold text-foreground',\n stateDescription: 'mt-2 max-w-md text-sm leading-6 text-muted-foreground',\n stateActions: 'mt-5 flex flex-wrap items-center justify-center gap-2',\n loadingSpinner: 'h-5 w-5 animate-spin',\n fieldRoot: 'grid min-w-0 gap-2',\n fieldLabelRow: 'flex min-w-0 items-center justify-between gap-3',\n fieldLabel: 'min-w-0 text-sm font-medium leading-none text-foreground',\n fieldRequired: 'text-destructive',\n fieldDescription: 'text-sm leading-5 text-muted-foreground',\n fieldMessage: 'text-sm leading-5 text-muted-foreground',\n fieldControl: 'min-w-0',\n controlWrapper:\n cn(\n 'relative flex min-w-0 items-center rounded-md border border-border bg-background text-foreground focus-within:border-primary/35',\n motionBase,\n ),\n controlBase:\n 'min-w-0 flex-1 bg-transparent px-3 text-sm text-foreground outline-none placeholder:text-muted-foreground disabled:!cursor-not-allowed',\n controlInput: 'h-9',\n controlTextarea: 'min-h-24 resize-y py-2 leading-6',\n controlSelect: 'h-9 cursor-pointer appearance-none pr-9 disabled:!cursor-not-allowed',\n controlIcon:\n 'pointer-events-none ml-3 inline-flex h-4 w-4 shrink-0 items-center justify-center text-muted-foreground',\n controlTrailing:\n 'mr-3 inline-flex shrink-0 items-center justify-center text-muted-foreground',\n controlInvalid:\n 'border-destructive/45 focus-within:border-destructive/60',\n controlDisabled: '!cursor-not-allowed opacity-60',\n controlReadOnly: 'bg-muted/35',\n selectChevron:\n cn(\n 'pointer-events-none absolute right-3 top-1/2 h-2 w-2 -translate-y-1/2 rotate-45 border-b border-r border-current text-muted-foreground',\n motionTransform,\n ),\n selectMenu:\n 'absolute left-0 right-0 top-[calc(100%+0.375rem)] z-50 max-h-60 origin-top overflow-auto rounded-md border border-border bg-background p-1 text-sm text-foreground shadow-lg outline-none motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out',\n selectOption:\n cn(\n 'flex min-h-8 w-full min-w-0 cursor-pointer items-center rounded-sm px-2.5 py-1.5 text-left text-sm text-foreground',\n motionInteractive,\n ),\n selectOptionActive: 'bg-accent text-accent-foreground',\n selectOptionSelected: 'bg-primary/10 text-primary',\n selectOptionDisabled: '!cursor-not-allowed opacity-50',\n selectPlaceholder: 'text-muted-foreground',\n selectNative: 'sr-only',\n switchRoot: 'inline-flex min-w-0 cursor-pointer items-start gap-3',\n switchInput: 'sr-only',\n switchTrack:\n cn(\n 'relative mt-0.5 inline-flex h-6 w-10 shrink-0 items-center rounded-full border border-border bg-muted focus-within:border-primary/35',\n motionBase,\n ),\n switchThumb:\n cn(\n 'h-4 w-4 translate-x-1 rounded-full bg-background shadow-sm',\n motionTransform,\n ),\n switchChecked: 'border-primary/40 bg-primary/80 text-primary-foreground',\n switchDisabled: '!cursor-not-allowed opacity-60',\n switchContent: 'grid min-w-0 gap-1',\n switchLabel: 'text-sm font-medium leading-none text-foreground',\n switchDescription: 'text-sm leading-5 text-muted-foreground',\n checkboxRoot: 'inline-flex min-w-0 cursor-pointer items-start gap-3',\n checkboxInput: 'sr-only',\n checkboxBox:\n cn(\n 'mt-0.5 inline-flex h-4 w-4 shrink-0 items-center justify-center rounded border border-border bg-background text-primary focus-within:border-primary/40',\n motionBase,\n ),\n checkboxBoxChecked: 'border-primary/45 bg-primary text-primary-foreground',\n checkboxBoxInvalid: 'border-destructive/50',\n checkboxIndicator: 'text-[11px] font-bold leading-none',\n checkboxDisabled: '!cursor-not-allowed opacity-60',\n checkboxContent: 'grid min-w-0 gap-1',\n checkboxLabel: 'text-sm font-medium leading-none text-foreground',\n checkboxDescription: 'text-sm leading-5 text-muted-foreground',\n radioGroupRoot: 'grid min-w-0 gap-2',\n radioOption:\n cn(\n 'inline-flex min-w-0 cursor-pointer items-start gap-3 rounded-md border border-border/60 bg-background px-3 py-2 text-sm',\n motionInteractive,\n 'hover:bg-muted/35',\n ),\n radioInput: 'sr-only',\n radioMarker:\n cn(\n 'mt-0.5 inline-flex h-4 w-4 shrink-0 items-center justify-center rounded-full border border-border bg-background text-primary focus-within:border-primary/40',\n motionBase,\n ),\n radioMarkerChecked: 'border-primary/50 bg-primary/10',\n radioIndicator: 'h-2 w-2 rounded-full bg-primary',\n radioOptionDisabled: '!cursor-not-allowed opacity-60 hover:bg-background',\n radioContent: 'grid min-w-0 gap-1',\n radioLabel: 'text-sm font-medium leading-none text-foreground',\n radioDescription: 'text-sm leading-5 text-muted-foreground',\n dialogRoot: 'relative',\n dialogTrigger: '',\n dialogTriggerDisabled: '!cursor-not-allowed opacity-60',\n dialogOverlay:\n 'fixed inset-0 z-50 bg-background/70 backdrop-blur-sm motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out',\n dialogContent:\n 'fixed inset-0 z-50 flex min-h-0 items-center justify-center p-4',\n dialogPanel:\n cn(\n 'relative flex max-h-[min(85vh,720px)] w-full max-w-lg min-w-0 flex-col overflow-hidden rounded-lg border border-border/70 bg-background text-foreground shadow-xl',\n 'motion-safe:animate-in motion-safe:fade-in motion-safe:zoom-in-95 motion-safe:duration-300 motion-safe:ease-out',\n ),\n dialogHeader: 'grid min-w-0 gap-1 border-b border-border/60 px-5 py-4',\n dialogTitle: 'min-w-0 pr-8 text-base font-semibold leading-6 text-foreground',\n dialogDescription: 'text-sm leading-6 text-muted-foreground',\n dialogBody: 'min-h-0 min-w-0 overflow-auto px-5 py-4 text-sm text-foreground',\n dialogFooter:\n 'flex shrink-0 flex-wrap items-center justify-end gap-2 border-t border-border/60 px-5 py-4',\n dialogClose:\n cn(\n 'absolute right-3 top-3 inline-flex h-8 w-8 cursor-pointer items-center justify-center rounded-md text-muted-foreground hover:bg-muted/60 hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30',\n motionInteractive,\n ),\n dropdownRoot: 'relative inline-flex min-w-0',\n dropdownTrigger: '',\n dropdownTriggerDisabled: '!cursor-not-allowed opacity-60',\n dropdownMenu:\n 'absolute left-0 top-[calc(100%+0.375rem)] z-50 min-w-48 overflow-hidden rounded-md border border-border bg-background p-1 text-sm text-foreground shadow-lg motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out',\n dropdownMenuTop: 'bottom-[calc(100%+0.375rem)] top-auto',\n dropdownMenuEnd: 'left-auto right-0',\n dropdownLabel:\n 'px-2.5 py-1.5 text-xs font-semibold uppercase tracking-[0.12em] text-muted-foreground',\n dropdownSeparator: 'my-1 h-px bg-border/70',\n dropdownItem:\n cn(\n 'flex min-w-0 cursor-pointer items-center gap-2 rounded-sm px-2.5 py-2 text-left text-sm text-foreground hover:bg-accent/60 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30',\n motionInteractive,\n ),\n dropdownItemDanger: 'text-destructive hover:bg-destructive/10',\n dropdownItemDisabled: '!cursor-not-allowed opacity-50 hover:bg-transparent',\n dropdownItemIcon: 'inline-flex h-4 w-4 shrink-0 items-center justify-center',\n dropdownItemContent: 'grid min-w-0 flex-1 gap-0.5',\n dropdownItemLabel: 'min-w-0 truncate',\n dropdownItemDescription:\n 'min-w-0 truncate text-xs leading-4 text-muted-foreground',\n dropdownItemShortcut:\n 'ml-3 shrink-0 text-xs font-medium text-muted-foreground',\n tooltipRoot: 'relative inline-flex min-w-0',\n tooltipTrigger: 'inline-flex min-w-0',\n tooltipContent:\n 'pointer-events-none absolute z-50 max-w-xs rounded-md border border-border bg-popover px-2.5 py-1.5 text-xs leading-5 text-popover-foreground shadow-lg motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out',\n noticeBase:\n cn(\n 'flex min-w-0 gap-3 rounded-lg border px-4 py-3 text-sm',\n motionBase,\n 'motion-safe:animate-in motion-safe:fade-in',\n ),\n noticeDefault: 'border-border bg-background text-foreground',\n noticePrimary: 'border-primary/25 bg-primary/10 text-primary',\n noticeSuccess:\n 'border-emerald-500/30 bg-emerald-500/10 text-emerald-700',\n noticeWarning: 'border-amber-500/30 bg-amber-500/10 text-amber-700',\n noticeDanger: 'border-destructive/30 bg-destructive/10 text-destructive',\n noticeMuted: 'border-border/60 bg-muted/35 text-muted-foreground',\n noticeIcon:\n 'mt-0.5 inline-flex h-4 w-4 shrink-0 items-center justify-center motion-safe:animate-in motion-safe:fade-in',\n noticeTitle: 'font-semibold leading-5',\n noticeDescription: 'leading-6',\n noticeActions: 'mt-3 flex flex-wrap items-center gap-2',\n dividerRoot: cn('shrink-0 border-border/70', motionBase),\n dividerLabel:\n 'mx-3 shrink-0 text-xs font-medium uppercase tracking-[0.12em] text-muted-foreground motion-safe:animate-in motion-safe:fade-in',\n sectionHeaderRoot:\n 'flex min-w-0 flex-wrap items-start justify-between gap-3 motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out',\n sectionHeaderContent: 'grid min-w-0 gap-1',\n sectionHeaderEyebrow:\n 'text-xs font-semibold uppercase tracking-[0.14em] text-muted-foreground',\n sectionHeaderTitle: 'text-base font-semibold leading-6 text-foreground',\n sectionHeaderDescription: 'max-w-2xl text-sm leading-6 text-muted-foreground',\n sectionHeaderActions: 'flex shrink-0 flex-wrap items-center gap-2',\n tabsRoot: 'grid min-w-0 gap-3',\n tabsList:\n cn(\n 'inline-flex min-w-0 flex-wrap items-center gap-1 rounded-lg border border-border/70 bg-muted/30 p-1',\n motionBase,\n ),\n tabsTrigger:\n cn(\n 'inline-flex min-w-0 cursor-pointer items-center justify-center rounded-md px-3 py-1.5 text-sm font-medium text-muted-foreground hover:bg-background/70 hover:text-foreground focus-visible:outline-none',\n motionInteractive,\n ),\n tabsTriggerActive:\n 'bg-background text-foreground shadow-sm',\n tabsTriggerDisabled: '!cursor-not-allowed opacity-50 hover:bg-transparent',\n tabsPanel:\n 'min-w-0 rounded-lg border border-border/70 bg-background p-4 text-sm text-foreground motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out',\n segmentedRoot:\n cn(\n 'inline-flex min-w-0 items-center gap-1 rounded-lg border border-border/70 bg-muted/30 p-1',\n motionBase,\n ),\n segmentedItem:\n cn(\n 'inline-flex min-w-0 cursor-pointer items-center justify-center gap-1.5 rounded-md px-3 py-1.5 text-sm font-medium text-muted-foreground hover:bg-background/70 hover:text-foreground focus-visible:outline-none',\n motionInteractive,\n ),\n segmentedItemActive:\n 'bg-background text-foreground shadow-sm',\n segmentedItemDisabled: '!cursor-not-allowed opacity-50 hover:bg-transparent',\n progressRoot: 'grid min-w-0 gap-2',\n progressTrack:\n 'h-2 w-full overflow-hidden rounded-full bg-muted',\n progressIndicator:\n 'h-full rounded-full bg-primary motion-safe:transition-[width] motion-safe:duration-500 motion-safe:ease-out',\n progressLabelRow: 'flex min-w-0 items-center justify-between gap-3',\n progressLabel: 'min-w-0 truncate text-sm font-medium text-foreground',\n progressValue: 'shrink-0 text-xs font-medium text-muted-foreground',\n skeletonRoot:\n 'relative overflow-hidden rounded-md bg-muted/70',\n avatarRoot:\n 'relative inline-flex shrink-0 items-center justify-center overflow-hidden rounded-full border border-border bg-muted text-sm font-semibold text-muted-foreground motion-safe:transition motion-safe:duration-300 motion-safe:ease-out',\n avatarImage:\n 'h-full w-full object-cover',\n avatarFallback:\n 'flex h-full w-full items-center justify-center bg-muted text-muted-foreground',\n avatarStatus:\n 'absolute bottom-0 right-0 h-2.5 w-2.5 rounded-full border-2 border-background bg-muted-foreground motion-safe:animate-pulse',\n avatarText: 'min-w-0 truncate text-sm font-medium text-foreground',\n toolbarRoot:\n cn(\n 'flex min-w-0 flex-wrap items-center justify-between gap-3 rounded-lg border border-border/70 bg-background px-4 py-3',\n motionBase,\n ),\n toolbarLeading: 'flex min-w-0 items-center gap-3',\n toolbarTitle: 'min-w-0 truncate text-sm font-semibold text-foreground',\n toolbarDescription: 'mt-0.5 text-sm leading-5 text-muted-foreground',\n toolbarContent: 'min-w-0 flex-1',\n toolbarActions: 'flex shrink-0 flex-wrap items-center gap-2',\n breadcrumbRoot: 'min-w-0 text-sm text-muted-foreground',\n breadcrumbList: 'flex min-w-0 flex-wrap items-center gap-1.5',\n breadcrumbItem: 'inline-flex min-w-0 items-center gap-1.5',\n breadcrumbLink:\n 'min-w-0 cursor-pointer truncate text-muted-foreground hover:text-foreground disabled:!cursor-not-allowed disabled:opacity-50 aria-disabled:!cursor-not-allowed aria-disabled:opacity-50 aria-disabled:hover:text-muted-foreground motion-safe:transition motion-safe:duration-300 motion-safe:ease-out',\n breadcrumbCurrent: 'min-w-0 truncate font-medium text-foreground',\n breadcrumbSeparator: 'shrink-0 text-muted-foreground/70',\n paginationRoot:\n 'flex min-w-0 flex-wrap items-center justify-between gap-3 text-sm',\n paginationInfo: 'min-w-0 text-muted-foreground',\n paginationControls: 'flex shrink-0 items-center gap-1.5',\n paginationButton:\n 'inline-flex h-8 min-w-8 cursor-pointer items-center justify-center rounded-md border border-border bg-background px-2.5 text-sm font-medium text-foreground hover:bg-accent/60 disabled:!cursor-not-allowed disabled:opacity-50 motion-safe:transition motion-safe:duration-300 motion-safe:ease-out',\n paginationButtonDisabled: '!cursor-not-allowed opacity-50',\n paginationPage:\n 'inline-flex h-8 min-w-8 items-center justify-center rounded-md bg-muted/50 px-2.5 text-sm font-medium text-foreground',\n descriptionListRoot:\n 'grid min-w-0 gap-3 text-sm',\n descriptionListItem:\n 'grid min-w-0 gap-1 rounded-md border border-border/60 bg-background px-3 py-2 motion-safe:transition motion-safe:duration-300 motion-safe:ease-out hover:shadow-sm',\n descriptionListTerm:\n 'min-w-0 truncate text-xs font-medium uppercase tracking-[0.08em] text-muted-foreground',\n descriptionListValue: 'min-w-0 text-sm leading-6 text-foreground',\n accordionRoot: 'grid min-w-0 gap-2',\n accordionItem:\n 'overflow-hidden rounded-lg border border-border/70 bg-background motion-safe:transition motion-safe:duration-300 motion-safe:ease-out',\n accordionTrigger:\n 'flex w-full min-w-0 cursor-pointer items-center justify-between gap-3 px-4 py-3 text-left text-sm font-medium text-foreground hover:bg-muted/40 disabled:!cursor-not-allowed disabled:opacity-50 motion-safe:transition motion-safe:duration-300 motion-safe:ease-out',\n accordionTriggerIcon:\n cn(\n 'h-2 w-2 shrink-0 rotate-45 border-b border-r border-current text-muted-foreground',\n motionTransform,\n ),\n accordionPanel:\n 'border-t border-border/60 px-4 py-3 text-sm leading-6 text-muted-foreground motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out',\n menuTrigger: 'inline-flex min-w-0',\n menuContent:\n 'z-50 min-w-44 overflow-hidden rounded-md border border-border bg-background p-1 text-sm text-foreground shadow-lg outline-none motion-safe:animate-in motion-safe:fade-in motion-safe:zoom-in-95 motion-safe:duration-300 motion-safe:ease-out',\n menuLabel: 'px-2 py-1.5 text-xs font-medium text-muted-foreground',\n menuSeparator: '-mx-1 my-1 h-px bg-border',\n menuItem:\n cn(\n 'relative flex min-h-8 min-w-0 cursor-pointer select-none items-center gap-2 rounded-sm px-2.5 py-1.5 text-sm text-foreground outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:!cursor-not-allowed data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground',\n motionInteractive,\n ),\n menuItemDefault: 'text-foreground',\n menuItemPrimary: 'text-primary focus:text-primary data-[highlighted]:text-primary',\n menuItemSuccess:\n 'text-emerald-700 focus:text-emerald-700 data-[highlighted]:text-emerald-700',\n menuItemWarning:\n 'text-amber-700 focus:text-amber-700 data-[highlighted]:text-amber-700',\n menuItemDanger:\n 'text-destructive focus:text-destructive data-[highlighted]:text-destructive',\n menuItemMuted:\n 'text-muted-foreground focus:text-foreground data-[highlighted]:text-foreground',\n menuItemDisabled:\n '!cursor-not-allowed opacity-50 data-[disabled]:pointer-events-none',\n menuItemIcon: 'inline-flex h-4 w-4 shrink-0 items-center justify-center',\n menuItemLabel: 'min-w-0 flex-1 truncate',\n menuItemShortcut:\n 'ml-4 shrink-0 text-xs font-medium text-muted-foreground',\n menuCheckboxIndicator:\n 'absolute left-2 inline-flex h-4 w-4 items-center justify-center text-current',\n menuRadioIndicator:\n 'absolute left-2 inline-flex h-4 w-4 items-center justify-center text-current',\n menuSubTrigger:\n cn(\n 'relative flex min-h-8 min-w-0 cursor-pointer select-none items-center gap-2 rounded-sm px-2.5 py-1.5 text-sm text-foreground outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:!cursor-not-allowed data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground',\n motionInteractive,\n ),\n menuSubTriggerIcon:\n 'ml-auto inline-flex h-4 w-4 shrink-0 items-center justify-center text-muted-foreground',\n menuSubContent:\n 'z-50 min-w-40 overflow-hidden rounded-md border border-border bg-background p-1 text-sm text-foreground shadow-lg outline-none motion-safe:animate-in motion-safe:fade-in motion-safe:zoom-in-95 motion-safe:duration-300 motion-safe:ease-out',\n tableContainer:\n cn(\n 'relative min-w-0 overflow-auto rounded-lg border border-border/70 bg-background',\n motionBase,\n ),\n tableContainerFooterAttached: '!rounded-b-none !shadow-none',\n tableRoot: 'w-full caption-bottom border-collapse text-sm text-foreground',\n tableCaption: 'mt-3 text-sm text-muted-foreground',\n tableHeader: 'border-b border-border/70 bg-muted/35',\n tableBody: '[&_tr:last-child]:border-0',\n tableFooter: 'border-t border-border/70 bg-muted/30 font-medium',\n tableFooterBar:\n cn(\n 'flex min-w-0 flex-wrap items-center justify-between gap-3 rounded-lg border border-border/70 bg-muted/20 px-4 py-3 text-sm text-muted-foreground shadow-none',\n motionBase,\n ),\n tableFooterBarAttached:\n '-mt-px rounded-t-none border-t border-border/70 shadow-none',\n tableFooterBarLeading: 'flex min-w-0 items-center gap-2',\n tableFooterBarContent: 'min-w-0 flex-1',\n tableFooterBarActions: 'ml-auto flex shrink-0 flex-wrap items-center gap-2',\n tableRow:\n cn(\n 'border-b border-border/60 data-[state=selected]:bg-primary/5',\n motionBase,\n ),\n tableRowInteractive: 'cursor-pointer hover:bg-muted/35',\n tableRowSelected: 'bg-primary/5',\n tableRowDisabled: '!cursor-not-allowed opacity-60',\n tableHead:\n 'relative h-11 whitespace-nowrap px-3 py-2 text-left align-middle text-xs font-semibold text-muted-foreground',\n tableHeadContent: 'flex min-w-0 items-center justify-between gap-2',\n tableHeadMain: 'flex min-w-0 items-center gap-2',\n tableHeadIcon: 'inline-flex h-4 w-4 shrink-0 items-center justify-center text-muted-foreground',\n tableHeadText: 'grid min-w-0 gap-0.5',\n tableHeadLabel: 'min-w-0 truncate text-xs font-semibold leading-4 text-foreground',\n tableHeadDescription: 'min-w-0 truncate text-[11px] font-normal leading-4 text-muted-foreground',\n tableHeadMeta: 'shrink-0 text-[11px] font-medium text-muted-foreground',\n tableHeadActions: 'flex shrink-0 items-center gap-1',\n tableHeadSortButton:\n cn(\n 'inline-flex min-w-0 cursor-pointer items-center gap-1 rounded-sm text-left focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30 disabled:!cursor-not-allowed disabled:opacity-60',\n motionBase,\n ),\n tableHeadSortIcon:\n cn(\n 'inline-flex h-3 w-3 shrink-0 items-center justify-center text-muted-foreground',\n motionTransform,\n ),\n tableHeadDragHandle:\n cn(\n 'inline-flex h-5 w-4 shrink-0 cursor-grab items-center justify-center rounded-sm text-muted-foreground hover:bg-muted active:cursor-grabbing focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30 disabled:!cursor-not-allowed disabled:opacity-50',\n motionBase,\n ),\n tableHeadResizeHandle:\n 'absolute right-0 top-1/2 h-7 w-2 -translate-y-1/2 cursor-col-resize rounded-sm after:absolute after:left-1/2 after:top-1/2 after:h-5 after:w-px after:-translate-x-1/2 after:-translate-y-1/2 after:bg-border hover:after:bg-primary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30 disabled:!cursor-not-allowed disabled:opacity-50',\n tableCell: 'px-3 py-2 align-middle text-sm text-foreground',\n tableCellAlignCenter: 'text-center',\n tableCellAlignRight: 'text-right',\n tableEmptyRow: 'border-b border-border/60',\n tableEmptyCell: 'px-4 py-10 text-center',\n tableEmptyContent: 'mx-auto flex max-w-md flex-col items-center justify-center text-center',\n tableEmptyIcon:\n 'mb-3 flex h-10 w-10 items-center justify-center rounded-full bg-muted text-muted-foreground',\n tableEmptyTitle: 'text-sm font-semibold text-foreground',\n tableEmptyDescription: 'mt-1 text-sm leading-6 text-muted-foreground',\n tableEmptyActions: 'mt-4 flex flex-wrap items-center justify-center gap-2',\n tableLoadingRow: 'border-b border-border/60',\n tableLoadingCell: 'px-3 py-2',\n tableLoadingSkeleton: 'h-4 w-full rounded-md bg-muted/70',\n layoutRoot:\n cn(\n 'grid min-w-0 overflow-hidden grid-rows-[auto_minmax(0,1fr)_auto] gap-3 rounded-lg border border-border/70 bg-background p-3 text-foreground',\n motionBase,\n ),\n layoutRootFull: 'h-full min-h-0',\n layoutHeader: 'min-w-0',\n layoutBody: 'grid min-h-0 min-w-0 overflow-hidden gap-3',\n layoutSidebar: 'min-h-0 min-w-0 overflow-hidden',\n layoutMain: 'min-h-0 min-w-0 overflow-hidden',\n layoutAside: 'min-h-0 min-w-0 overflow-hidden',\n layoutFooter: 'min-w-0',\n layoutPane:\n cn(\n 'h-full max-h-full min-h-0 min-w-0 overflow-hidden rounded-lg bg-background text-foreground',\n motionBase,\n ),\n layoutPaneScrollable: 'overflow-auto',\n layoutPaneBordered: 'border border-border/70',\n layoutPaneMuted: 'bg-muted/25',\n layoutPaneSoft: 'bg-background/95 shadow-sm',\n layoutPaneTransparent: 'bg-transparent shadow-none',\n layoutSplitRoot: 'grid min-h-0 min-w-0 overflow-hidden',\n layoutSplitHorizontal: 'grid-flow-col',\n layoutSplitVertical: 'grid-flow-row',\n layoutSplitPane: 'min-h-0 min-w-0 overflow-hidden',\n layoutSplitPrimary: '',\n layoutSplitSecondary: '',\n layoutResizeHandle:\n cn(\n 'group/resize relative z-10 flex shrink-0 items-center justify-center bg-transparent text-muted-foreground hover:bg-border/60 active:bg-border/70 focus-visible:bg-border/60 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30',\n motionInteractive,\n ),\n layoutResizeHandleHorizontal: 'w-2 cursor-col-resize',\n layoutResizeHandleVertical: 'h-2 cursor-row-resize',\n layoutResizeHandleDisabled: 'cursor-default opacity-60',\n layoutResizeHandleIndicator:\n 'rounded-full bg-muted-foreground/45 group-hover/resize:bg-primary/70',\n};\n\nconst densitySlots: Record<BaseDensity, Partial<BaseThemeSlots>> = {\n compact: {\n buttonBase: 'h-8 px-2.5 text-xs',\n buttonIconOnly: 'h-8 w-8 px-0',\n badgeBase: 'px-1.5 py-0 text-[11px]',\n panelHeader: 'p-3',\n panelBody: 'px-3 pb-3 text-xs',\n panelBodyStandalone: 'pt-3',\n panelFooter: 'px-3 py-2',\n stateRoot: 'min-h-36 px-4 py-7',\n stateIcon: 'mb-3 h-10 w-10',\n fieldRoot: 'gap-1.5',\n fieldLabel: 'text-xs',\n fieldDescription: 'text-xs leading-5',\n fieldMessage: 'text-xs leading-5',\n controlInput: 'h-8 text-xs',\n controlTextarea: 'min-h-20 text-xs',\n controlSelect: 'h-8 text-xs',\n selectMenu: 'text-xs',\n selectOption: 'min-h-7 px-2 py-1 text-xs',\n switchTrack: 'h-5 w-9',\n switchThumb: 'h-3.5 w-3.5',\n checkboxBox: 'h-3.5 w-3.5',\n checkboxLabel: 'text-xs',\n checkboxDescription: 'text-xs leading-5',\n radioOption: 'px-2 py-1.5 text-xs',\n radioMarker: 'h-3.5 w-3.5',\n radioIndicator: 'h-1.5 w-1.5',\n radioLabel: 'text-xs',\n radioDescription: 'text-xs leading-5',\n dialogPanel: 'max-w-md',\n dialogHeader: 'px-4 py-3',\n dialogTitle: 'text-sm leading-5',\n dialogDescription: 'text-xs leading-5',\n dialogBody: 'px-4 py-3 text-xs',\n dialogFooter: 'px-4 py-3',\n dropdownMenu: 'min-w-44 text-xs',\n dropdownItem: 'px-2 py-1.5 text-xs',\n tooltipContent: 'text-[11px] leading-4',\n noticeBase: 'px-3 py-2 text-xs',\n dividerLabel: 'text-[11px]',\n sectionHeaderRoot: 'gap-2',\n sectionHeaderTitle: 'text-sm leading-5',\n sectionHeaderDescription: 'text-xs leading-5',\n tabsList: 'gap-0.5 p-0.5',\n tabsTrigger: 'px-2 py-1 text-xs',\n tabsPanel: 'p-3 text-xs',\n segmentedRoot: 'gap-0.5 p-0.5',\n segmentedItem: 'px-2 py-1 text-xs',\n progressTrack: 'h-1.5',\n avatarRoot: 'text-xs',\n toolbarRoot: 'gap-2 px-3 py-2',\n toolbarTitle: 'text-xs',\n toolbarDescription: 'text-xs leading-5',\n paginationButton: 'h-7 min-w-7 px-2 text-xs',\n paginationPage: 'h-7 min-w-7 px-2 text-xs',\n descriptionListRoot: 'gap-2 text-xs',\n descriptionListItem: 'px-2 py-1.5',\n descriptionListTerm: 'text-[11px]',\n descriptionListValue: 'text-xs leading-5',\n accordionTrigger: 'px-3 py-2 text-xs',\n accordionPanel: 'px-3 py-2 text-xs leading-5',\n menuContent: 'min-w-40 p-0.5 text-xs',\n menuSubContent: 'min-w-36 p-0.5 text-xs',\n menuLabel: 'px-2 py-1 text-[11px]',\n menuItem: 'min-h-7 px-2 py-1 text-xs',\n menuSubTrigger: 'min-h-7 px-2 py-1 text-xs',\n menuItemShortcut: 'text-[11px]',\n tableHead: 'h-9 px-2 py-1.5 text-[11px]',\n tableCell: 'px-2 py-1.5 text-xs',\n tableHeadLabel: 'text-[11px]',\n tableHeadDescription: 'text-[10px] leading-3',\n tableLoadingCell: 'px-2 py-1.5',\n layoutRoot: 'gap-2 p-2',\n layoutBody: 'gap-2',\n layoutPane: 'rounded-md text-xs',\n layoutResizeHandleHorizontal: 'w-1.5',\n layoutResizeHandleVertical: 'h-1.5',\n },\n default: {\n buttonBase: 'h-9',\n },\n comfortable: {\n buttonBase: 'h-10 px-3.5',\n buttonIconOnly: 'h-10 w-10 px-0',\n badgeBase: 'px-2.5 py-1',\n panelHeader: 'p-5',\n panelBody: 'px-5 pb-5',\n panelBodyStandalone: 'pt-5',\n panelFooter: 'px-5 py-3.5',\n stateRoot: 'min-h-56 px-8 py-12',\n stateIcon: 'mb-5 h-14 w-14',\n fieldRoot: 'gap-2.5',\n controlInput: 'h-10',\n controlTextarea: 'min-h-28',\n controlSelect: 'h-10',\n selectMenu: 'p-1.5',\n selectOption: 'min-h-9 px-3 py-2',\n switchTrack: 'h-7 w-12',\n switchThumb: 'h-5 w-5',\n checkboxBox: 'h-5 w-5',\n radioOption: 'px-4 py-3',\n radioMarker: 'h-5 w-5',\n radioIndicator: 'h-2.5 w-2.5',\n dialogPanel: 'max-w-xl',\n dialogHeader: 'px-6 py-5',\n dialogBody: 'px-6 py-5',\n dialogFooter: 'px-6 py-5',\n dropdownMenu: 'min-w-56',\n dropdownItem: 'px-3 py-2.5',\n noticeBase: 'px-5 py-4',\n sectionHeaderTitle: 'text-lg leading-7',\n tabsTrigger: 'px-3.5 py-2',\n tabsPanel: 'p-5',\n segmentedItem: 'px-3.5 py-2',\n progressTrack: 'h-2.5',\n toolbarRoot: 'px-5 py-4',\n paginationButton: 'h-9 min-w-9 px-3',\n paginationPage: 'h-9 min-w-9 px-3',\n descriptionListItem: 'px-4 py-3',\n accordionTrigger: 'px-5 py-4',\n accordionPanel: 'px-5 py-4',\n menuContent: 'min-w-48 p-1.5',\n menuSubContent: 'min-w-44 p-1.5',\n menuItem: 'min-h-9 px-3 py-2',\n menuSubTrigger: 'min-h-9 px-3 py-2',\n tableHead: 'h-12 px-4 py-3',\n tableCell: 'px-4 py-3',\n tableLoadingCell: 'px-4 py-3',\n layoutRoot: 'gap-4 p-4',\n layoutBody: 'gap-4',\n layoutPane: 'rounded-xl',\n layoutResizeHandleHorizontal: 'w-2.5',\n layoutResizeHandleVertical: 'h-2.5',\n },\n};\n\nconst radiusSlots: Record<BaseRadius, Partial<BaseThemeSlots>> = {\n none: {\n buttonBase: 'rounded-none',\n badgeBase: 'rounded-none',\n panelRoot: 'rounded-none',\n stateRoot: 'rounded-none',\n stateIcon: 'rounded-none',\n controlWrapper: 'rounded-none',\n selectMenu: 'rounded-none',\n selectOption: 'rounded-none',\n switchTrack: 'rounded-none',\n switchThumb: 'rounded-none',\n checkboxBox: 'rounded-none',\n radioOption: 'rounded-none',\n dialogPanel: 'rounded-none',\n dialogClose: 'rounded-none',\n dropdownMenu: 'rounded-none',\n dropdownItem: 'rounded-none',\n tooltipContent: 'rounded-none',\n noticeBase: 'rounded-none',\n tabsList: 'rounded-none',\n tabsTrigger: 'rounded-none',\n tabsPanel: 'rounded-none',\n segmentedRoot: 'rounded-none',\n segmentedItem: 'rounded-none',\n progressTrack: 'rounded-none',\n progressIndicator: 'rounded-none',\n skeletonRoot: 'rounded-none',\n avatarRoot: 'rounded-none',\n avatarStatus: 'rounded-none',\n toolbarRoot: 'rounded-none',\n paginationButton: 'rounded-none',\n paginationPage: 'rounded-none',\n descriptionListItem: 'rounded-none',\n accordionItem: 'rounded-none',\n menuContent: 'rounded-none',\n menuItem: 'rounded-none',\n menuSubTrigger: 'rounded-none',\n menuSubContent: 'rounded-none',\n tableContainer: 'rounded-none',\n tableEmptyIcon: 'rounded-none',\n tableLoadingSkeleton: 'rounded-none',\n layoutRoot: 'rounded-none',\n layoutPane: 'rounded-none',\n },\n sm: {\n buttonBase: 'rounded-sm',\n badgeBase: 'rounded-sm',\n panelRoot: 'rounded-sm',\n stateRoot: 'rounded-sm',\n stateIcon: 'rounded-sm',\n controlWrapper: 'rounded-sm',\n selectMenu: 'rounded-sm',\n selectOption: 'rounded-sm',\n switchTrack: 'rounded-sm',\n switchThumb: 'rounded-sm',\n checkboxBox: 'rounded-sm',\n radioOption: 'rounded-sm',\n dialogPanel: 'rounded-sm',\n dialogClose: 'rounded-sm',\n dropdownMenu: 'rounded-sm',\n dropdownItem: 'rounded-sm',\n tooltipContent: 'rounded-sm',\n noticeBase: 'rounded-sm',\n tabsList: 'rounded-sm',\n tabsTrigger: 'rounded-sm',\n tabsPanel: 'rounded-sm',\n segmentedRoot: 'rounded-sm',\n segmentedItem: 'rounded-sm',\n progressTrack: 'rounded-sm',\n progressIndicator: 'rounded-sm',\n skeletonRoot: 'rounded-sm',\n avatarRoot: 'rounded-sm',\n avatarStatus: 'rounded-sm',\n toolbarRoot: 'rounded-sm',\n paginationButton: 'rounded-sm',\n paginationPage: 'rounded-sm',\n descriptionListItem: 'rounded-sm',\n accordionItem: 'rounded-sm',\n menuContent: 'rounded-sm',\n menuItem: 'rounded-sm',\n menuSubTrigger: 'rounded-sm',\n menuSubContent: 'rounded-sm',\n tableContainer: 'rounded-sm',\n tableEmptyIcon: 'rounded-sm',\n tableLoadingSkeleton: 'rounded-sm',\n layoutRoot: 'rounded-sm',\n layoutPane: 'rounded-sm',\n },\n md: {},\n lg: {\n buttonBase: 'rounded-lg',\n badgeBase: 'rounded-lg',\n panelRoot: 'rounded-xl',\n stateRoot: 'rounded-xl',\n stateIcon: 'rounded-xl',\n controlWrapper: 'rounded-lg',\n selectMenu: 'rounded-lg',\n selectOption: 'rounded-md',\n switchTrack: 'rounded-full',\n switchThumb: 'rounded-full',\n checkboxBox: 'rounded-md',\n radioOption: 'rounded-xl',\n dialogPanel: 'rounded-xl',\n dialogClose: 'rounded-lg',\n dropdownMenu: 'rounded-lg',\n dropdownItem: 'rounded-md',\n tooltipContent: 'rounded-md',\n noticeBase: 'rounded-xl',\n tabsList: 'rounded-xl',\n tabsTrigger: 'rounded-lg',\n tabsPanel: 'rounded-xl',\n segmentedRoot: 'rounded-xl',\n segmentedItem: 'rounded-lg',\n skeletonRoot: 'rounded-lg',\n toolbarRoot: 'rounded-xl',\n descriptionListItem: 'rounded-lg',\n accordionItem: 'rounded-xl',\n menuContent: 'rounded-lg',\n menuItem: 'rounded-md',\n menuSubTrigger: 'rounded-md',\n menuSubContent: 'rounded-lg',\n tableContainer: 'rounded-xl',\n tableEmptyIcon: 'rounded-xl',\n tableLoadingSkeleton: 'rounded-lg',\n layoutRoot: 'rounded-xl',\n layoutPane: 'rounded-xl',\n },\n xl: {\n buttonBase: 'rounded-xl',\n badgeBase: 'rounded-xl',\n panelRoot: 'rounded-2xl',\n stateRoot: 'rounded-2xl',\n stateIcon: 'rounded-2xl',\n controlWrapper: 'rounded-xl',\n selectMenu: 'rounded-xl',\n selectOption: 'rounded-lg',\n switchTrack: 'rounded-full',\n switchThumb: 'rounded-full',\n checkboxBox: 'rounded-lg',\n radioOption: 'rounded-2xl',\n dialogPanel: 'rounded-2xl',\n dialogClose: 'rounded-xl',\n dropdownMenu: 'rounded-xl',\n dropdownItem: 'rounded-lg',\n tooltipContent: 'rounded-lg',\n noticeBase: 'rounded-2xl',\n tabsList: 'rounded-2xl',\n tabsTrigger: 'rounded-xl',\n tabsPanel: 'rounded-2xl',\n segmentedRoot: 'rounded-2xl',\n segmentedItem: 'rounded-xl',\n skeletonRoot: 'rounded-xl',\n toolbarRoot: 'rounded-2xl',\n paginationButton: 'rounded-xl',\n paginationPage: 'rounded-xl',\n descriptionListItem: 'rounded-xl',\n accordionItem: 'rounded-2xl',\n menuContent: 'rounded-xl',\n menuItem: 'rounded-lg',\n menuSubTrigger: 'rounded-lg',\n menuSubContent: 'rounded-xl',\n tableContainer: 'rounded-2xl',\n tableEmptyIcon: 'rounded-2xl',\n tableLoadingSkeleton: 'rounded-xl',\n layoutRoot: 'rounded-2xl',\n layoutPane: 'rounded-2xl',\n },\n full: {\n buttonBase: 'rounded-full',\n badgeBase: 'rounded-full',\n panelRoot: 'rounded-2xl',\n stateRoot: 'rounded-2xl',\n stateIcon: 'rounded-full',\n controlWrapper: 'rounded-full',\n selectMenu: 'rounded-2xl',\n selectOption: 'rounded-full',\n switchTrack: 'rounded-full',\n switchThumb: 'rounded-full',\n checkboxBox: 'rounded-full',\n radioOption: 'rounded-2xl',\n dialogPanel: 'rounded-2xl',\n dialogClose: 'rounded-full',\n dropdownMenu: 'rounded-2xl',\n dropdownItem: 'rounded-full',\n tooltipContent: 'rounded-full',\n noticeBase: 'rounded-2xl',\n tabsList: 'rounded-full',\n tabsTrigger: 'rounded-full',\n tabsPanel: 'rounded-2xl',\n segmentedRoot: 'rounded-full',\n segmentedItem: 'rounded-full',\n progressTrack: 'rounded-full',\n progressIndicator: 'rounded-full',\n skeletonRoot: 'rounded-full',\n avatarRoot: 'rounded-full',\n avatarStatus: 'rounded-full',\n toolbarRoot: 'rounded-2xl',\n paginationButton: 'rounded-full',\n paginationPage: 'rounded-full',\n descriptionListItem: 'rounded-2xl',\n accordionItem: 'rounded-2xl',\n menuContent: 'rounded-2xl',\n menuItem: 'rounded-full',\n menuSubTrigger: 'rounded-full',\n menuSubContent: 'rounded-2xl',\n tableContainer: 'rounded-2xl',\n tableEmptyIcon: 'rounded-full',\n tableLoadingSkeleton: 'rounded-full',\n layoutRoot: 'rounded-2xl',\n layoutPane: 'rounded-2xl',\n },\n};\n\nconst borderSlots: Record<BaseBorder, Partial<BaseThemeSlots>> = {\n none: {\n buttonBase: 'border-transparent',\n badgeBase: 'border-transparent',\n panelRoot: 'border-transparent',\n panelFooter: 'border-transparent',\n stateRoot: 'border-transparent',\n controlWrapper: 'border-transparent',\n selectMenu: 'border-transparent',\n switchTrack: 'border-transparent',\n checkboxBox: 'border-transparent',\n radioOption: 'border-transparent',\n radioMarker: 'border-transparent',\n dialogPanel: 'border-transparent',\n dialogHeader: 'border-transparent',\n dialogFooter: 'border-transparent',\n dropdownMenu: 'border-transparent',\n tooltipContent: 'border-transparent',\n noticeBase: 'border-transparent',\n dividerRoot: 'border-transparent',\n tabsList: 'border-transparent',\n tabsPanel: 'border-transparent',\n segmentedRoot: 'border-transparent',\n avatarRoot: 'border-transparent',\n toolbarRoot: 'border-transparent',\n paginationButton: 'border-transparent',\n descriptionListItem: 'border-transparent',\n accordionItem: 'border-transparent',\n accordionPanel: 'border-transparent',\n menuContent: 'border-transparent',\n menuSeparator: 'bg-transparent',\n menuSubContent: 'border-transparent',\n tableContainer: 'border-transparent',\n tableHeader: 'border-transparent',\n tableFooter: 'border-transparent',\n tableFooterBar: 'border-transparent',\n tableFooterBarAttached: 'border-t border-transparent',\n tableRow: 'border-transparent',\n tableEmptyRow: 'border-transparent',\n tableLoadingRow: 'border-transparent',\n layoutRoot: 'border-transparent',\n layoutPaneBordered: 'border-transparent',\n layoutResizeHandle: 'bg-transparent hover:bg-transparent active:bg-transparent focus-visible:bg-transparent',\n },\n subtle: {\n buttonDefault: 'border-border/60',\n badgeDefault: 'border-border/60',\n panelRoot: 'border-border/60',\n panelFooter: 'border-border/60',\n stateRoot: 'border-border/60',\n controlWrapper: 'border-border/60',\n selectMenu: 'border-border/60',\n switchTrack: 'border-border/60',\n checkboxBox: 'border-border/60',\n radioOption: 'border-border/60',\n radioMarker: 'border-border/60',\n dialogPanel: 'border-border/60',\n dialogHeader: 'border-border/60',\n dialogFooter: 'border-border/60',\n dropdownMenu: 'border-border/60',\n tooltipContent: 'border-border/60',\n noticeDefault: 'border-border/60',\n dividerRoot: 'border-border/60',\n tabsList: 'border-border/60',\n tabsPanel: 'border-border/60',\n segmentedRoot: 'border-border/60',\n avatarRoot: 'border-border/60',\n toolbarRoot: 'border-border/60',\n paginationButton: 'border-border/60',\n descriptionListItem: 'border-border/60',\n accordionItem: 'border-border/60',\n accordionPanel: 'border-border/60',\n menuContent: 'border-border/60',\n menuSeparator: 'bg-border/60',\n menuSubContent: 'border-border/60',\n tableContainer: 'border-border/60',\n tableHeader: 'border-border/60',\n tableFooter: 'border-border/60',\n tableFooterBar: 'border-border/60',\n tableFooterBarAttached: 'border-t border-border/60',\n tableRow: 'border-border/50',\n tableEmptyRow: 'border-border/50',\n tableLoadingRow: 'border-border/50',\n layoutRoot: 'border-border/60',\n layoutPaneBordered: 'border-border/60',\n },\n solid: {},\n strong: {\n buttonDefault: 'border-foreground/20',\n badgeDefault: 'border-foreground/20',\n panelRoot: 'border-foreground/20',\n panelFooter: 'border-foreground/20',\n stateRoot: 'border-foreground/20',\n controlWrapper: 'border-foreground/20',\n selectMenu: 'border-foreground/20',\n switchTrack: 'border-foreground/20',\n checkboxBox: 'border-foreground/20',\n radioOption: 'border-foreground/20',\n radioMarker: 'border-foreground/20',\n dialogPanel: 'border-foreground/20',\n dialogHeader: 'border-foreground/15',\n dialogFooter: 'border-foreground/15',\n dropdownMenu: 'border-foreground/20',\n tooltipContent: 'border-foreground/20',\n noticeDefault: 'border-foreground/20',\n dividerRoot: 'border-foreground/20',\n tabsList: 'border-foreground/20',\n tabsPanel: 'border-foreground/20',\n segmentedRoot: 'border-foreground/20',\n avatarRoot: 'border-foreground/20',\n toolbarRoot: 'border-foreground/20',\n paginationButton: 'border-foreground/20',\n descriptionListItem: 'border-foreground/20',\n accordionItem: 'border-foreground/20',\n accordionPanel: 'border-foreground/20',\n menuContent: 'border-foreground/20',\n menuSeparator: 'bg-foreground/15',\n menuSubContent: 'border-foreground/20',\n tableContainer: 'border-foreground/20',\n tableHeader: 'border-foreground/20',\n tableFooter: 'border-foreground/20',\n tableFooterBar: 'border-foreground/20',\n tableFooterBarAttached: 'border-t border-foreground/20',\n tableRow: 'border-foreground/15',\n tableEmptyRow: 'border-foreground/15',\n tableLoadingRow: 'border-foreground/15',\n layoutRoot: 'border-foreground/20',\n layoutPaneBordered: 'border-foreground/20',\n layoutResizeHandle: 'hover:bg-foreground/15 active:bg-foreground/20 focus-visible:bg-foreground/15',\n },\n};\n\nconst backgroundSlots: Record<BaseBackground, Partial<BaseThemeSlots>> = {\n plain: {},\n muted: {\n buttonDefault: 'bg-muted/20 hover:bg-muted/45',\n panelRoot: 'bg-card',\n panelFooter: 'bg-muted/20',\n stateRoot: 'bg-muted/20',\n controlWrapper: 'bg-background',\n selectMenu: 'bg-background',\n selectOptionActive: 'bg-muted/70 text-foreground',\n checkboxBox: 'bg-background',\n radioOption: 'bg-card hover:bg-muted/45',\n radioMarker: 'bg-background',\n dialogPanel: 'bg-card',\n dropdownMenu: 'bg-background',\n dropdownItem: 'hover:bg-muted/60',\n tooltipContent: 'bg-popover',\n noticeDefault: 'bg-muted/20',\n tabsList: 'bg-muted/35',\n tabsTriggerActive: 'bg-background',\n tabsPanel: 'bg-card',\n segmentedRoot: 'bg-muted/35',\n segmentedItemActive: 'bg-background',\n progressTrack: 'bg-muted/60',\n skeletonRoot: 'bg-muted',\n toolbarRoot: 'bg-card',\n paginationButton: 'bg-background hover:bg-muted/60',\n paginationPage: 'bg-muted/60',\n descriptionListItem: 'bg-card',\n accordionItem: 'bg-card',\n menuContent: 'bg-background',\n menuItem: 'focus:bg-muted/70 data-[highlighted]:bg-muted/70',\n menuSubTrigger:\n 'focus:bg-muted/70 data-[highlighted]:bg-muted/70 data-[state=open]:bg-muted/70',\n menuSubContent: 'bg-background',\n tableContainer: 'bg-card',\n tableHeader: 'bg-muted/45',\n tableFooter: 'bg-muted/35',\n tableFooterBar: 'bg-muted/30 shadow-none',\n tableRowInteractive: 'cursor-pointer hover:bg-muted/45',\n tableLoadingSkeleton: 'bg-muted',\n layoutRoot: 'bg-card',\n layoutPane: 'bg-card',\n layoutPaneMuted: 'bg-muted/35',\n layoutResizeHandle: 'hover:bg-border/70 active:bg-border/80 focus-visible:bg-border/70',\n },\n soft: {\n buttonDefault: 'bg-muted/30 hover:bg-muted/55',\n panelRoot: 'bg-background/95 shadow-sm',\n stateRoot: 'bg-background/95 shadow-sm',\n controlWrapper: 'bg-background/95',\n selectMenu: 'bg-background/95 shadow-xl',\n selectOptionActive: 'bg-muted/60 text-foreground',\n checkboxBox: 'bg-background/95',\n radioOption: 'bg-background/95 shadow-sm hover:bg-muted/35',\n radioMarker: 'bg-background/95',\n dialogPanel: 'bg-background/95 shadow-xl',\n dropdownMenu: 'bg-background/95 shadow-xl',\n dropdownItem: 'hover:bg-muted/55',\n tooltipContent: 'bg-popover shadow-xl',\n noticeDefault: 'bg-background/95 shadow-sm',\n tabsList: 'bg-background/60 shadow-sm',\n tabsTriggerActive: 'bg-background',\n tabsPanel: 'bg-background/95 shadow-sm',\n segmentedRoot: 'bg-background/60 shadow-sm',\n segmentedItemActive: 'bg-background',\n skeletonRoot: 'bg-background/80',\n toolbarRoot: 'bg-background/95 shadow-sm',\n paginationButton: 'bg-background/95 hover:bg-muted/55',\n descriptionListItem: 'bg-background/95 shadow-sm',\n accordionItem: 'bg-background/95 shadow-sm',\n menuContent: 'bg-background/95 shadow-xl',\n menuItem: 'focus:bg-muted/60 data-[highlighted]:bg-muted/60',\n menuSubTrigger:\n 'focus:bg-muted/60 data-[highlighted]:bg-muted/60 data-[state=open]:bg-muted/60',\n menuSubContent: 'bg-background/95 shadow-xl',\n tableContainer: 'bg-background/95 shadow-sm',\n tableHeader: 'bg-muted/35',\n tableFooter: 'bg-muted/25',\n tableFooterBar: 'bg-muted/25 shadow-none',\n tableRowInteractive: 'cursor-pointer hover:bg-muted/35',\n tableLoadingSkeleton: 'bg-muted/65',\n layoutRoot: 'bg-background/95 shadow-sm',\n layoutPane: 'bg-background/95 shadow-sm',\n layoutPaneSoft: 'bg-background/95 shadow-md',\n },\n glass: {\n buttonBase: 'backdrop-blur-md',\n buttonDefault:\n 'border-white/10 bg-white/[0.08] text-foreground hover:bg-white/[0.14]',\n badgeDefault: 'border-white/10 bg-white/[0.08] text-foreground',\n panelRoot: 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n panelFooter: 'border-white/10 bg-white/[0.05]',\n stateRoot: 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n stateIcon: 'bg-white/10 text-foreground',\n controlWrapper:\n 'border-white/10 bg-white/[0.08] text-foreground backdrop-blur-md',\n selectMenu:\n 'border-white/10 bg-white/[0.10] text-foreground shadow-[0_18px_60px_rgba(15,23,42,0.18)] backdrop-blur-md',\n selectOption: 'text-foreground',\n selectOptionActive: 'bg-white/[0.14] text-foreground',\n selectOptionSelected: 'bg-white/[0.18] text-foreground',\n switchTrack: 'border-white/10 bg-white/[0.12] backdrop-blur-md',\n checkboxBox: 'border-white/10 bg-white/[0.08] backdrop-blur-md',\n checkboxBoxChecked: 'border-white/20 bg-white/[0.22] text-foreground',\n radioOption: 'border-white/10 bg-white/[0.06] backdrop-blur-md hover:bg-white/[0.10]',\n radioMarker: 'border-white/10 bg-white/[0.08] backdrop-blur-md',\n radioMarkerChecked: 'border-white/25 bg-white/[0.16]',\n dialogOverlay: 'bg-background/45 backdrop-blur-md',\n dialogPanel: 'border-white/10 bg-white/[0.08] shadow-2xl backdrop-blur-md',\n dialogHeader: 'border-white/10',\n dialogFooter: 'border-white/10',\n dropdownMenu:\n 'border-white/10 bg-white/[0.10] text-foreground shadow-[0_18px_60px_rgba(15,23,42,0.18)] backdrop-blur-md',\n dropdownItem: 'text-foreground hover:bg-white/[0.14]',\n tooltipContent:\n 'border-white/10 bg-white/[0.14] text-foreground shadow-[0_18px_60px_rgba(15,23,42,0.18)] backdrop-blur-md',\n noticeDefault:\n 'border-white/10 bg-white/[0.08] text-foreground backdrop-blur-md',\n dividerRoot: 'border-white/15',\n tabsList: 'border-white/10 bg-white/[0.08] backdrop-blur-md',\n tabsTrigger: 'text-muted-foreground hover:bg-white/[0.12] hover:text-foreground',\n tabsTriggerActive: 'bg-white/[0.16] text-foreground shadow-none',\n tabsPanel:\n 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n segmentedRoot: 'border-white/10 bg-white/[0.08] backdrop-blur-md',\n segmentedItem: 'text-muted-foreground hover:bg-white/[0.12] hover:text-foreground',\n segmentedItemActive: 'bg-white/[0.16] text-foreground shadow-none',\n progressTrack: 'bg-white/[0.12]',\n skeletonRoot: 'bg-white/[0.16]',\n avatarRoot: 'border-white/10 bg-white/[0.12] text-foreground',\n avatarFallback: 'bg-white/[0.12] text-foreground',\n avatarStatus: 'border-background',\n toolbarRoot:\n 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n paginationButton:\n 'border-white/10 bg-white/[0.08] text-foreground hover:bg-white/[0.14]',\n paginationPage: 'bg-white/[0.12] text-foreground',\n descriptionListItem:\n 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n accordionItem:\n 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n accordionPanel: 'border-white/10',\n menuContent:\n 'border-white/10 bg-white/[0.10] text-foreground shadow-[0_18px_60px_rgba(15,23,42,0.18)] backdrop-blur-md',\n menuSeparator: 'bg-white/10',\n menuItem:\n 'text-foreground focus:bg-white/[0.14] focus:text-foreground data-[highlighted]:bg-white/[0.14] data-[highlighted]:text-foreground',\n menuSubTrigger:\n 'text-foreground focus:bg-white/[0.14] focus:text-foreground data-[highlighted]:bg-white/[0.14] data-[highlighted]:text-foreground data-[state=open]:bg-white/[0.16]',\n menuSubContent:\n 'border-white/10 bg-white/[0.10] text-foreground shadow-[0_18px_60px_rgba(15,23,42,0.18)] backdrop-blur-md',\n tableContainer:\n 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n tableHeader: 'border-white/10 bg-white/[0.08]',\n tableFooter: 'border-white/10 bg-white/[0.05]',\n tableFooterBar:\n 'border-white/10 bg-white/[0.05] shadow-none backdrop-blur-md',\n tableFooterBarAttached: 'border-t border-white/10',\n tableRow: 'border-white/10',\n tableRowInteractive: 'cursor-pointer hover:bg-white/[0.08]',\n tableHeadLabel: 'text-foreground',\n tableLoadingSkeleton: 'bg-white/[0.16]',\n layoutRoot:\n 'border-white/10 bg-white/[0.05] shadow-none backdrop-blur-md',\n layoutPane:\n 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n layoutPaneMuted: 'bg-white/[0.08]',\n layoutPaneSoft: 'bg-white/[0.10] shadow-none backdrop-blur-md',\n layoutResizeHandle: 'text-foreground/65 hover:bg-white/10 active:bg-white/15 focus-visible:bg-white/10',\n layoutResizeHandleIndicator: 'bg-white/45 group-hover/resize:bg-white/75',\n },\n dark: {\n buttonBase:\n 'border-white/15 text-white shadow-lg backdrop-blur',\n buttonDefault: 'bg-black/30 hover:bg-black/[0.45]',\n buttonPrimary: 'border-white/25 bg-white/20 text-white hover:bg-white/25',\n buttonMuted:\n 'border-white/10 bg-black/20 text-white/70 hover:bg-black/[0.35] hover:text-white',\n badgeDefault: 'border-white/10 bg-white/[0.08] text-white',\n badgeMuted: 'border-white/10 bg-black/20 text-white/70',\n panelRoot: 'border-white/10 bg-slate-950 text-white shadow-none',\n panelTitle: 'text-white',\n panelDescription: 'text-white/65',\n panelBody: 'text-white/85',\n panelFooter: 'border-white/10 bg-white/[0.04]',\n stateRoot: 'border-white/10 bg-slate-950 text-white shadow-none',\n stateIcon: 'bg-white/10 text-white/75',\n stateTitle: 'text-white',\n stateDescription: 'text-white/65',\n fieldLabel: 'text-white',\n fieldDescription: 'text-white/65',\n fieldMessage: 'text-white/65',\n controlWrapper:\n 'border-white/15 bg-black/30 text-white shadow-lg backdrop-blur focus-within:border-white/35',\n controlBase: 'text-white placeholder:text-white/45',\n selectChevron: 'text-white/65',\n selectMenu: 'border-white/15 bg-slate-950 text-white shadow-2xl',\n selectOption: 'text-white',\n selectOptionActive: 'bg-white/[0.12] text-white',\n selectOptionSelected: 'bg-white/[0.16] text-white',\n selectPlaceholder: 'text-white/45',\n switchTrack: 'border-white/15 bg-black/30 shadow-lg backdrop-blur',\n switchChecked: 'border-white/25 bg-white/25 text-white',\n switchLabel: 'text-white',\n switchDescription: 'text-white/65',\n checkboxBox: 'border-white/15 bg-black/30 text-white shadow-lg backdrop-blur',\n checkboxBoxChecked: 'border-white/25 bg-white/25 text-white',\n checkboxLabel: 'text-white',\n checkboxDescription: 'text-white/65',\n radioOption: 'border-white/10 bg-white/[0.06] text-white hover:bg-white/[0.08]',\n radioMarker: 'border-white/15 bg-black/30 text-white shadow-lg backdrop-blur',\n radioMarkerChecked: 'border-white/25 bg-white/25',\n radioIndicator: 'bg-white',\n radioLabel: 'text-white',\n radioDescription: 'text-white/65',\n dialogOverlay: 'bg-slate-950/75',\n dialogPanel: 'border-white/10 bg-slate-950 text-white shadow-2xl',\n dialogHeader: 'border-white/10',\n dialogTitle: 'text-white',\n dialogDescription: 'text-white/65',\n dialogBody: 'text-white/85',\n dialogFooter: 'border-white/10',\n dialogClose: 'text-white/65 hover:bg-white/[0.08] hover:text-white',\n dropdownMenu: 'border-white/15 bg-slate-950 text-white shadow-2xl',\n dropdownLabel: 'text-white/55',\n dropdownSeparator: 'bg-white/15',\n dropdownItem: 'text-white hover:bg-white/[0.10]',\n dropdownItemDescription: 'text-white/55',\n dropdownItemShortcut: 'text-white/55',\n tooltipContent: 'border-white/15 bg-slate-950 text-white shadow-2xl',\n noticeDefault: 'border-white/10 bg-white/[0.08] text-white',\n noticeMuted: 'border-white/10 bg-black/20 text-white/70',\n dividerRoot: 'border-white/15',\n dividerLabel: 'text-white/55',\n sectionHeaderEyebrow: 'text-white/55',\n sectionHeaderTitle: 'text-white',\n sectionHeaderDescription: 'text-white/65',\n tabsList: 'border-white/10 bg-white/[0.08]',\n tabsTrigger: 'text-white/65 hover:bg-white/[0.12] hover:text-white',\n tabsTriggerActive: 'bg-white/[0.16] text-white shadow-none',\n tabsPanel: 'border-white/10 bg-white/[0.06] text-white',\n segmentedRoot: 'border-white/10 bg-white/[0.08]',\n segmentedItem: 'text-white/65 hover:bg-white/[0.12] hover:text-white',\n segmentedItemActive: 'bg-white/[0.16] text-white shadow-none',\n progressTrack: 'bg-white/[0.12]',\n progressLabel: 'text-white',\n progressValue: 'text-white/65',\n skeletonRoot: 'bg-white/[0.14]',\n avatarRoot: 'border-white/15 bg-white/[0.10] text-white',\n avatarFallback: 'bg-white/[0.10] text-white/75',\n avatarText: 'text-white',\n avatarStatus: 'border-slate-950',\n toolbarRoot: 'border-white/10 bg-white/[0.06] text-white',\n toolbarTitle: 'text-white',\n toolbarDescription: 'text-white/65',\n breadcrumbLink: 'text-white/65 hover:text-white',\n breadcrumbCurrent: 'text-white',\n breadcrumbSeparator: 'text-white/45',\n paginationInfo: 'text-white/65',\n paginationButton: 'border-white/10 bg-white/[0.08] text-white hover:bg-white/[0.14]',\n paginationPage: 'bg-white/[0.14] text-white',\n descriptionListItem: 'border-white/10 bg-white/[0.06]',\n descriptionListTerm: 'text-white/55',\n descriptionListValue: 'text-white',\n accordionItem: 'border-white/10 bg-white/[0.06]',\n accordionTrigger: 'text-white hover:bg-white/[0.08]',\n accordionPanel: 'border-white/10 text-white/70',\n tableContainer: 'border-white/10 bg-slate-950 text-white shadow-none',\n tableRoot: 'text-white',\n tableHeader: 'border-white/10 bg-white/[0.06]',\n tableFooter: 'border-white/10 bg-white/[0.05]',\n tableFooterBar: 'border-white/10 bg-white/[0.05] text-white/65',\n tableFooterBarAttached: 'border-t border-white/10',\n tableRow: 'border-white/10',\n tableRowInteractive: 'cursor-pointer hover:bg-white/[0.06]',\n tableHead: 'text-white/65',\n tableHeadLabel: 'text-white',\n tableHeadDescription: 'text-white/55',\n tableHeadMeta: 'text-white/55',\n tableHeadIcon: 'text-white/55',\n tableHeadSortIcon: 'text-white/55',\n tableHeadDragHandle: 'text-white/55 hover:bg-white/[0.08]',\n tableHeadResizeHandle: 'after:bg-white/20 hover:after:bg-white/60',\n tableCell: 'text-white/85',\n tableEmptyIcon: 'bg-white/10 text-white/65',\n tableEmptyTitle: 'text-white',\n tableEmptyDescription: 'text-white/60',\n menuContent: 'border-white/10 bg-slate-950 text-white shadow-2xl',\n menuLabel: 'text-white/55',\n menuSeparator: 'bg-white/10',\n menuItem:\n 'text-white focus:bg-white/[0.10] focus:text-white data-[highlighted]:bg-white/[0.10] data-[highlighted]:text-white',\n menuItemDefault: 'text-white',\n menuItemPrimary: 'text-sky-200 focus:text-sky-200 data-[highlighted]:text-sky-200',\n menuItemSuccess:\n 'text-emerald-200 focus:text-emerald-200 data-[highlighted]:text-emerald-200',\n menuItemWarning:\n 'text-amber-200 focus:text-amber-200 data-[highlighted]:text-amber-200',\n menuItemDanger:\n 'text-red-200 focus:text-red-200 data-[highlighted]:text-red-200',\n menuItemMuted:\n 'text-white/65 focus:text-white data-[highlighted]:text-white',\n menuItemShortcut: 'text-white/45',\n menuSubTrigger:\n 'text-white focus:bg-white/[0.10] focus:text-white data-[highlighted]:bg-white/[0.10] data-[highlighted]:text-white data-[state=open]:bg-white/[0.12]',\n menuSubTriggerIcon: 'text-white/55',\n menuSubContent: 'border-white/10 bg-slate-950 text-white shadow-2xl',\n tableLoadingSkeleton: 'bg-white/[0.14]',\n layoutRoot: 'border-white/10 bg-slate-950 text-white shadow-none',\n layoutPane: 'border-white/10 bg-slate-950 text-white shadow-none',\n layoutPaneMuted: 'bg-white/[0.06]',\n layoutPaneSoft: 'bg-white/[0.08] shadow-none',\n layoutResizeHandle: 'text-white/65 hover:bg-white/10 active:bg-white/15 focus-visible:bg-white/10',\n layoutResizeHandleIndicator: 'bg-white/45 group-hover/resize:bg-white/75',\n },\n};\n\nconst presetDefaults: Record<\n 'default' | 'admin' | 'monkey' | 'bsd' | 'glass' | 'hard-edge',\n Pick<BaseAppearance, 'density' | 'radius' | 'border' | 'background'>\n> = {\n default: {\n density: 'default',\n radius: 'md',\n border: 'solid',\n background: 'plain',\n },\n admin: {\n density: 'default',\n radius: 'lg',\n border: 'subtle',\n background: 'soft',\n },\n monkey: {\n density: 'compact',\n radius: 'md',\n border: 'subtle',\n background: 'muted',\n },\n bsd: {\n density: 'default',\n radius: 'lg',\n border: 'subtle',\n background: 'glass',\n },\n glass: {\n density: 'default',\n radius: 'xl',\n border: 'subtle',\n background: 'glass',\n },\n 'hard-edge': {\n density: 'compact',\n radius: 'none',\n border: 'strong',\n background: 'plain',\n },\n};\n\nconst presetSlots: Record<string, Partial<BaseThemeSlots>> = {\n admin: {\n buttonBase: 'font-medium',\n panelRoot: 'border-border/70',\n controlWrapper: 'font-medium',\n tabsTrigger: 'font-medium',\n segmentedItem: 'font-medium',\n toolbarRoot: 'border-border/70',\n tableContainer: 'border-border/70',\n tableFooterBar: 'border-border/70',\n tableHeadLabel: 'font-semibold',\n menuItemLabel: 'font-medium',\n },\n monkey: {\n buttonBase: 'text-xs',\n badgeBase: 'text-[11px]',\n fieldLabel: 'text-xs',\n controlBase: 'text-xs',\n selectOption: 'text-xs',\n menuItem: 'text-xs',\n menuSubTrigger: 'text-xs',\n noticeBase: 'text-xs',\n sectionHeaderTitle: 'text-sm',\n tabsTrigger: 'text-xs',\n segmentedItem: 'text-xs',\n toolbarTitle: 'text-xs',\n paginationRoot: 'text-xs',\n },\n bsd: {\n buttonPrimary: 'border-sky-300/25 bg-sky-300/15 text-sky-50 hover:bg-sky-300/20',\n badgePrimary: 'border-sky-300/25 bg-sky-300/15 text-sky-50',\n noticePrimary: 'border-sky-300/25 bg-sky-300/15 text-sky-50',\n progressIndicator: 'bg-sky-300',\n avatarStatus: 'border-slate-950',\n },\n glass: {\n panelRoot: 'shadow-[0_24px_80px_rgba(15,23,42,0.12)]',\n stateRoot: 'shadow-[0_24px_80px_rgba(15,23,42,0.12)]',\n noticeBase: 'shadow-[0_18px_60px_rgba(15,23,42,0.10)]',\n tabsPanel: 'shadow-[0_18px_60px_rgba(15,23,42,0.10)]',\n toolbarRoot: 'shadow-[0_18px_60px_rgba(15,23,42,0.10)]',\n descriptionListItem: 'shadow-[0_12px_40px_rgba(15,23,42,0.08)]',\n accordionItem: 'shadow-[0_12px_40px_rgba(15,23,42,0.08)]',\n },\n 'hard-edge': {\n buttonBase: 'shadow-none',\n panelRoot: 'shadow-none',\n stateRoot: 'shadow-none',\n controlWrapper: 'shadow-none',\n selectMenu: 'shadow-none',\n menuContent: 'shadow-none',\n menuSubContent: 'shadow-none',\n noticeBase: 'shadow-none',\n tabsList: 'shadow-none',\n tabsTriggerActive: 'shadow-none',\n tabsPanel: 'shadow-none',\n segmentedRoot: 'shadow-none',\n segmentedItemActive: 'shadow-none',\n toolbarRoot: 'shadow-none',\n descriptionListItem: 'shadow-none',\n accordionItem: 'shadow-none',\n },\n};\n\nfunction getPresetDefaults(preset: BaseThemePresetId) {\n return (\n presetDefaults[preset as keyof typeof presetDefaults] ?? presetDefaults.default\n );\n}\n\nconst slotKeys = Object.keys(baseSlots) as Array<keyof BaseThemeSlots>;\n\nfunction mergeSlots(\n ...sources: Array<Partial<BaseThemeSlots> | undefined>\n): ResolvedSlots {\n return slotKeys.reduce((resolved, key) => {\n resolved[key] = cn(...sources.map((source) => source?.[key]));\n return resolved;\n }, {} as ResolvedSlots);\n}\n\nfunction mergeStyles(...styleSets: Array<BaseThemeStyles | undefined>) {\n return Object.assign({}, ...styleSets.filter(Boolean));\n}\n\nexport function resolveBaseAppearance(\n appearance?: BaseAppearance,\n): BaseResolvedTheme {\n const preset = appearance?.preset ?? 'default';\n const defaults = getPresetDefaults(preset);\n const density = appearance?.density ?? defaults.density ?? 'default';\n const radius = appearance?.radius ?? defaults.radius ?? 'md';\n const border = appearance?.border ?? defaults.border ?? 'solid';\n const background = appearance?.background ?? defaults.background ?? 'plain';\n\n return {\n preset,\n density,\n radius,\n border,\n background,\n styles: mergeStyles(emptyStyles, appearance?.styles),\n slots: mergeSlots(\n baseSlots,\n presetSlots[preset],\n densitySlots[density],\n radiusSlots[radius],\n borderSlots[border],\n backgroundSlots[background],\n appearance?.slots,\n ),\n };\n}\n\nexport function getBaseButtonToneClassName(\n theme: BaseResolvedTheme,\n tone: BaseControlTone = 'default',\n active = false,\n) {\n return cn(\n tone === 'default' && theme.slots.buttonDefault,\n tone === 'primary' && theme.slots.buttonPrimary,\n tone === 'success' && theme.slots.buttonSuccess,\n tone === 'warning' && theme.slots.buttonWarning,\n tone === 'danger' && theme.slots.buttonDanger,\n tone === 'muted' && theme.slots.buttonMuted,\n active && theme.slots.buttonActive,\n );\n}\n\nexport function getBaseBadgeToneClassName(\n theme: BaseResolvedTheme,\n tone: BaseControlTone = 'default',\n) {\n return cn(\n tone === 'default' && theme.slots.badgeDefault,\n tone === 'primary' && theme.slots.badgePrimary,\n tone === 'success' && theme.slots.badgeSuccess,\n tone === 'warning' && theme.slots.badgeWarning,\n tone === 'danger' && theme.slots.badgeDanger,\n tone === 'muted' && theme.slots.badgeMuted,\n );\n}\n\nexport function getBaseNoticeToneClassName(\n theme: BaseResolvedTheme,\n tone: BaseControlTone = 'default',\n) {\n return cn(\n tone === 'default' && theme.slots.noticeDefault,\n tone === 'primary' && theme.slots.noticePrimary,\n tone === 'success' && theme.slots.noticeSuccess,\n tone === 'warning' && theme.slots.noticeWarning,\n tone === 'danger' && theme.slots.noticeDanger,\n tone === 'muted' && theme.slots.noticeMuted,\n );\n}\n\nexport function getBaseMenuItemToneClassName(\n theme: BaseResolvedTheme,\n tone: BaseControlTone = 'default',\n) {\n return cn(\n tone === 'default' && theme.slots.menuItemDefault,\n tone === 'primary' && theme.slots.menuItemPrimary,\n tone === 'success' && theme.slots.menuItemSuccess,\n tone === 'warning' && theme.slots.menuItemWarning,\n tone === 'danger' && theme.slots.menuItemDanger,\n tone === 'muted' && theme.slots.menuItemMuted,\n );\n}\n","import type { BaseAvatarProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nconst sizeClassNames = {\n sm: 'h-7 w-7 text-xs',\n md: 'h-9 w-9 text-sm',\n lg: 'h-12 w-12 text-base',\n};\n\nconst statusClassNames = {\n online: 'bg-emerald-500',\n busy: 'bg-amber-500',\n offline: 'bg-muted-foreground',\n neutral: 'bg-muted-foreground',\n};\n\nfunction isStatusPreset(status: unknown): status is keyof typeof statusClassNames {\n return typeof status === 'string' && status in statusClassNames;\n}\n\nfunction getInitials(name?: string) {\n if (!name) return undefined;\n const words = name.trim().split(/\\s+/).filter(Boolean);\n if (!words.length) return undefined;\n return words\n .slice(0, 2)\n .map((word) => word[0]?.toUpperCase())\n .join('');\n}\n\nexport function BaseAvatar({\n src,\n alt,\n name,\n initials,\n icon,\n status,\n size = 'md',\n appearance,\n className,\n classNames,\n style,\n children,\n ...avatarProps\n}: BaseAvatarProps) {\n const theme = resolveBaseAppearance(appearance);\n const fallback = children ?? initials ?? getInitials(name) ?? icon;\n\n return (\n <div\n {...avatarProps}\n className={cn(\n theme.slots.avatarRoot,\n sizeClassNames[size],\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.avatar,\n ...style,\n }}\n title={name}\n >\n {src ? (\n <img\n src={src}\n alt={alt ?? name ?? ''}\n className={cn(theme.slots.avatarImage, classNames?.image)}\n />\n ) : (\n <span className={cn(theme.slots.avatarFallback, classNames?.fallback)}>\n {hasRenderableNode(fallback) ? fallback : '?'}\n </span>\n )}\n\n {isStatusPreset(status) ? (\n <span\n aria-hidden=\"true\"\n className={cn(\n theme.slots.avatarStatus,\n statusClassNames[status],\n classNames?.status,\n )}\n />\n ) : hasRenderableNode(status) ? (\n <span className={cn(theme.slots.avatarStatus, classNames?.status)}>\n {status}\n </span>\n ) : null}\n </div>\n );\n}\n","import { forwardRef } from 'react';\nimport type { MouseEvent } from 'react';\n\nimport type { BaseButtonProps } from './types';\nimport {\n getBaseButtonToneClassName,\n resolveBaseAppearance,\n} from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nfunction LoadingIcon() {\n return (\n <svg\n aria-hidden=\"true\"\n viewBox=\"0 0 24 24\"\n className=\"h-4 w-4 animate-spin\"\n fill=\"none\"\n >\n <circle\n cx=\"12\"\n cy=\"12\"\n r=\"9\"\n className=\"opacity-25\"\n stroke=\"currentColor\"\n strokeWidth=\"3\"\n />\n <path\n className=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M12 3a9 9 0 0 1 9 9h-3a6 6 0 0 0-6-6V3Z\"\n />\n </svg>\n );\n}\n\nexport const BaseButton = forwardRef<HTMLButtonElement, BaseButtonProps>(\n function BaseButton(\n {\n children,\n label,\n icon,\n endIcon,\n type = 'button',\n title,\n ariaLabel,\n tone,\n active = false,\n iconOnly = false,\n disabled = false,\n loading = false,\n stopPropagation = false,\n appearance,\n className,\n classNames,\n style,\n onClick,\n 'aria-label': nativeAriaLabel,\n ...buttonProps\n },\n ref,\n ) {\n const theme = resolveBaseAppearance(appearance);\n const resolvedLabel = children ?? label;\n const labelText = typeof resolvedLabel === 'string' ? resolvedLabel : undefined;\n const resolvedAriaLabel =\n ariaLabel ??\n nativeAriaLabel ??\n labelText ??\n title ??\n (iconOnly ? 'Action' : undefined);\n const resolvedDisabled = disabled || loading;\n\n const handleClick = (event: MouseEvent<HTMLButtonElement>) => {\n if (stopPropagation) {\n event.stopPropagation();\n }\n if (resolvedDisabled) return;\n onClick?.(event);\n };\n\n return (\n <button\n {...buttonProps}\n ref={ref}\n type={type}\n title={title}\n aria-label={resolvedAriaLabel}\n aria-pressed={active || undefined}\n aria-busy={loading || undefined}\n disabled={resolvedDisabled}\n className={cn(\n theme.slots.buttonBase,\n iconOnly && theme.slots.buttonIconOnly,\n getBaseButtonToneClassName(theme, tone, active),\n resolvedDisabled && theme.slots.buttonDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.button,\n ...(active ? theme.styles.buttonActive : undefined),\n ...(resolvedDisabled ? theme.styles.buttonDisabled : undefined),\n ...style,\n }}\n onClick={handleClick}\n >\n {loading ? (\n <span className={cn(theme.slots.buttonIcon, classNames?.icon)}>\n <LoadingIcon />\n </span>\n ) : icon ? (\n <span className={cn(theme.slots.buttonIcon, classNames?.icon)}>\n {icon}\n </span>\n ) : null}\n {iconOnly ? (\n hasRenderableNode(resolvedLabel) ? (\n <span className=\"sr-only\">{resolvedLabel}</span>\n ) : null\n ) : hasRenderableNode(resolvedLabel) ? (\n <span className={cn(theme.slots.buttonLabel, classNames?.label)}>\n {resolvedLabel}\n </span>\n ) : null}\n {!loading && endIcon ? (\n <span className={cn(theme.slots.buttonIcon, classNames?.icon)}>\n {endIcon}\n </span>\n ) : null}\n </button>\n );\n },\n);\n","import {\n forwardRef,\n useEffect,\n useRef,\n useState,\n type ChangeEvent,\n type Ref,\n} from 'react';\n\nimport type { BaseCheckboxProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nfunction setRefs<TElement>(\n element: TElement | null,\n ...refs: Array<Ref<TElement> | undefined>\n) {\n refs.forEach((ref) => {\n if (!ref) return;\n if (typeof ref === 'function') {\n ref(element);\n return;\n }\n (ref as { current: TElement | null }).current = element;\n });\n}\n\nexport const BaseCheckbox = forwardRef<HTMLInputElement, BaseCheckboxProps>(\n function BaseCheckbox(\n {\n label,\n description,\n indeterminate = false,\n invalid = false,\n disabled = false,\n appearance,\n className,\n classNames,\n style,\n checked,\n defaultChecked,\n onChange,\n 'aria-invalid': nativeAriaInvalid,\n ...checkboxProps\n },\n forwardedRef,\n ) {\n const theme = resolveBaseAppearance(appearance);\n const inputRef = useRef<HTMLInputElement | null>(null);\n const [uncontrolledChecked, setUncontrolledChecked] = useState(\n defaultChecked ?? false,\n );\n const isControlled = checked !== undefined;\n const resolvedChecked = Boolean(isControlled ? checked : uncontrolledChecked);\n const active = indeterminate || resolvedChecked;\n\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.indeterminate = indeterminate;\n }\n }, [indeterminate]);\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n if (disabled) return;\n if (!isControlled) {\n setUncontrolledChecked(event.currentTarget.checked);\n }\n onChange?.(event);\n };\n\n return (\n <label\n className={cn(\n theme.slots.checkboxRoot,\n disabled && theme.slots.checkboxDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.checkboxRoot,\n ...style,\n }}\n >\n <span\n className={cn(\n theme.slots.checkboxBox,\n active && theme.slots.checkboxBoxChecked,\n invalid && theme.slots.checkboxBoxInvalid,\n classNames?.box,\n )}\n style={{\n ...theme.styles.checkboxBox,\n }}\n >\n <input\n {...checkboxProps}\n ref={(element) => setRefs(element, inputRef, forwardedRef)}\n type=\"checkbox\"\n disabled={disabled}\n checked={checked}\n defaultChecked={defaultChecked}\n aria-invalid={nativeAriaInvalid ?? (invalid || undefined)}\n aria-checked={indeterminate ? 'mixed' : resolvedChecked}\n className={cn(theme.slots.checkboxInput, classNames?.input)}\n onChange={handleChange}\n />\n {active ? (\n <span\n aria-hidden=\"true\"\n className={cn(theme.slots.checkboxIndicator, classNames?.indicator)}\n >\n {indeterminate ? '–' : '✓'}\n </span>\n ) : null}\n </span>\n {hasRenderableNode(label) || hasRenderableNode(description) ? (\n <span className={cn(theme.slots.checkboxContent, classNames?.content)}>\n {hasRenderableNode(label) ? (\n <span className={cn(theme.slots.checkboxLabel, classNames?.label)}>\n {label}\n </span>\n ) : null}\n {hasRenderableNode(description) ? (\n <span\n className={cn(\n theme.slots.checkboxDescription,\n classNames?.description,\n )}\n >\n {description}\n </span>\n ) : null}\n </span>\n ) : null}\n </label>\n );\n },\n);\n","import { forwardRef } from 'react';\n\nimport type { BaseInputProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nexport const BaseInput = forwardRef<HTMLInputElement, BaseInputProps>(\n function BaseInput(\n {\n icon,\n trailing,\n invalid = false,\n disabled = false,\n readOnly = false,\n appearance,\n className,\n classNames,\n style,\n 'aria-invalid': nativeAriaInvalid,\n ...inputProps\n },\n ref,\n ) {\n const theme = resolveBaseAppearance(appearance);\n\n return (\n <div\n className={cn(\n theme.slots.controlWrapper,\n invalid && theme.slots.controlInvalid,\n disabled && theme.slots.controlDisabled,\n readOnly && theme.slots.controlReadOnly,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.control,\n ...(invalid ? theme.styles.controlInvalid : undefined),\n ...(disabled ? theme.styles.controlDisabled : undefined),\n ...style,\n }}\n >\n {hasRenderableNode(icon) ? (\n <span className={cn(theme.slots.controlIcon, classNames?.icon)}>\n {icon}\n </span>\n ) : null}\n <input\n {...inputProps}\n ref={ref}\n disabled={disabled}\n readOnly={readOnly}\n aria-invalid={nativeAriaInvalid ?? (invalid || undefined)}\n className={cn(\n theme.slots.controlBase,\n theme.slots.controlInput,\n classNames?.control,\n )}\n />\n {hasRenderableNode(trailing) ? (\n <span className={cn(theme.slots.controlTrailing, classNames?.trailing)}>\n {trailing}\n </span>\n ) : null}\n </div>\n );\n },\n);\n","import {\n forwardRef,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport type { KeyboardEvent } from 'react';\n\nimport type { BaseMultiSelectOption, BaseMultiSelectProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nfunction normalizeValues(values: readonly string[] | undefined) {\n const nextValues: string[] = [];\n const seen = new Set<string>();\n\n values?.forEach((value) => {\n if (seen.has(value)) return;\n seen.add(value);\n nextValues.push(value);\n });\n\n return nextValues;\n}\n\nfunction getNextEnabledIndex(\n options: BaseMultiSelectOption[],\n currentIndex: number,\n direction: 1 | -1,\n) {\n if (!options.length) return -1;\n\n const startIndex = currentIndex >= 0 ? currentIndex : 0;\n for (let offset = 1; offset <= options.length; offset += 1) {\n const nextIndex =\n (startIndex + offset * direction + options.length) % options.length;\n if (!options[nextIndex]?.disabled) {\n return nextIndex;\n }\n }\n\n return -1;\n}\n\nfunction getFirstEnabledIndex(options: BaseMultiSelectOption[]) {\n return options.findIndex((option) => !option.disabled);\n}\n\nfunction getSafeTagCount(maxTagCount: number | undefined, total: number) {\n if (maxTagCount === undefined) return total;\n if (!Number.isFinite(maxTagCount)) return total;\n return Math.max(0, Math.min(total, Math.floor(maxTagCount)));\n}\n\nfunction getDefaultRemoveLabel(option: BaseMultiSelectOption) {\n return `Remove ${option.value}`;\n}\n\nexport const BaseMultiSelect = forwardRef<HTMLDivElement, BaseMultiSelectProps>(\n function BaseMultiSelect(\n {\n options,\n value,\n defaultValue,\n name,\n placeholder = 'Select options',\n icon,\n invalid = false,\n disabled = false,\n required = false,\n openForPreview = false,\n maxTagCount,\n removeLabel = getDefaultRemoveLabel,\n emptyLabel = 'No options',\n appearance,\n className,\n classNames,\n style,\n id,\n 'aria-invalid': nativeAriaInvalid,\n 'aria-label': nativeAriaLabel,\n 'aria-labelledby': nativeAriaLabelledBy,\n onValueChange,\n ...rootProps\n },\n ref,\n ) {\n const theme = resolveBaseAppearance(appearance);\n const generatedId = useId();\n const multiSelectId = id ?? generatedId;\n const controlId = `${multiSelectId}-control`;\n const listboxId = `${multiSelectId}-listbox`;\n const rootRef = useRef<HTMLDivElement | null>(null);\n const optionList = options ?? [];\n const forceOpen = openForPreview;\n const [uncontrolledOpen, setUncontrolledOpen] = useState(false);\n const open = forceOpen || uncontrolledOpen;\n const [uncontrolledValue, setUncontrolledValue] = useState(() =>\n normalizeValues(defaultValue),\n );\n const [activeIndex, setActiveIndex] = useState(() =>\n getFirstEnabledIndex(optionList),\n );\n const isControlled = value !== undefined;\n const selectedValues = useMemo(\n () => normalizeValues(isControlled ? value : uncontrolledValue),\n [isControlled, uncontrolledValue, value],\n );\n const selectedValueSet = useMemo(\n () => new Set(selectedValues),\n [selectedValues],\n );\n const optionByValue = useMemo(() => {\n const map = new Map<string, BaseMultiSelectOption>();\n optionList.forEach((option) => {\n if (!map.has(option.value)) {\n map.set(option.value, option);\n }\n });\n return map;\n }, [optionList]);\n const selectedOptions = useMemo(\n () =>\n selectedValues\n .map((selectedValue) => optionByValue.get(selectedValue))\n .filter(\n (option): option is BaseMultiSelectOption => option !== undefined,\n ),\n [optionByValue, selectedValues],\n );\n const firstEnabledIndex = useMemo(\n () => getFirstEnabledIndex(optionList),\n [optionList],\n );\n const resolvedActiveIndex =\n activeIndex >= 0 && !optionList[activeIndex]?.disabled\n ? activeIndex\n : firstEnabledIndex;\n const visibleTagCount = getSafeTagCount(\n maxTagCount,\n selectedOptions.length,\n );\n const visibleOptions = selectedOptions.slice(0, visibleTagCount);\n const overflowCount = selectedOptions.length - visibleOptions.length;\n const isPlaceholder = selectedOptions.length === 0;\n\n const setRootRef = (node: HTMLDivElement | null) => {\n rootRef.current = node;\n if (typeof ref === 'function') {\n ref(node);\n } else if (ref) {\n ref.current = node;\n }\n };\n\n const setOpen = (nextOpen: boolean) => {\n if (disabled || forceOpen) return;\n setUncontrolledOpen(nextOpen);\n if (nextOpen) {\n setActiveIndex(resolvedActiveIndex);\n }\n };\n\n useEffect(() => {\n if (!open || forceOpen) return undefined;\n\n const handlePointerDown = (event: PointerEvent) => {\n if (!rootRef.current?.contains(event.target as Node)) {\n setUncontrolledOpen(false);\n }\n };\n\n document.addEventListener('pointerdown', handlePointerDown);\n return () => {\n document.removeEventListener('pointerdown', handlePointerDown);\n };\n }, [forceOpen, open]);\n\n useEffect(() => {\n if (resolvedActiveIndex >= 0 && resolvedActiveIndex !== activeIndex) {\n setActiveIndex(resolvedActiveIndex);\n }\n }, [activeIndex, resolvedActiveIndex]);\n\n const commitValues = (nextValues: string[]) => {\n const normalizedValues = normalizeValues(nextValues);\n if (!isControlled) {\n setUncontrolledValue(normalizedValues);\n }\n onValueChange?.(normalizedValues);\n };\n\n const toggleOption = (option: BaseMultiSelectOption | undefined) => {\n if (!option || option.disabled || disabled) return;\n const nextValues = selectedValueSet.has(option.value)\n ? selectedValues.filter((selectedValue) => selectedValue !== option.value)\n : [...selectedValues, option.value];\n commitValues(nextValues);\n };\n\n const removeOption = (option: BaseMultiSelectOption) => {\n if (disabled) return;\n commitValues(\n selectedValues.filter((selectedValue) => selectedValue !== option.value),\n );\n };\n\n const focusOption = (direction: 1 | -1) => {\n const nextIndex = getNextEnabledIndex(\n optionList,\n resolvedActiveIndex,\n direction,\n );\n if (nextIndex >= 0) {\n setActiveIndex(nextIndex);\n }\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n if (disabled) return;\n\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n event.preventDefault();\n if (!open) {\n setOpen(true);\n setActiveIndex(firstEnabledIndex);\n return;\n }\n focusOption(event.key === 'ArrowDown' ? 1 : -1);\n return;\n }\n\n if (event.key === 'Home') {\n event.preventDefault();\n setOpen(true);\n setActiveIndex(firstEnabledIndex);\n return;\n }\n\n if (event.key === 'End') {\n event.preventDefault();\n setOpen(true);\n for (let index = optionList.length - 1; index >= 0; index -= 1) {\n if (!optionList[index]?.disabled) {\n setActiveIndex(index);\n break;\n }\n }\n return;\n }\n\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n if (!open) {\n setOpen(true);\n return;\n }\n toggleOption(optionList[resolvedActiveIndex]);\n return;\n }\n\n if (event.key === 'Escape') {\n setOpen(false);\n }\n };\n\n return (\n <div\n {...rootProps}\n id={id}\n ref={setRootRef}\n className={cn(\n theme.slots.controlWrapper,\n 'overflow-visible',\n open && 'z-50',\n invalid && theme.slots.controlInvalid,\n disabled && theme.slots.controlDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.control,\n ...(invalid ? theme.styles.controlInvalid : undefined),\n ...(disabled ? theme.styles.controlDisabled : undefined),\n ...style,\n }}\n >\n {hasRenderableNode(icon) ? (\n <span className={cn(theme.slots.controlIcon, classNames?.icon)}>\n {icon}\n </span>\n ) : null}\n <div\n id={controlId}\n role=\"combobox\"\n tabIndex={disabled ? -1 : 0}\n aria-haspopup=\"listbox\"\n aria-expanded={open}\n aria-controls={listboxId}\n aria-disabled={disabled || undefined}\n aria-required={required || undefined}\n aria-invalid={nativeAriaInvalid ?? (invalid || undefined)}\n aria-label={nativeAriaLabel}\n aria-labelledby={nativeAriaLabelledBy}\n className={cn(\n theme.slots.controlBase,\n 'flex min-h-9 cursor-pointer flex-wrap items-center gap-1.5 py-1.5 pr-9 text-left',\n disabled && '!cursor-not-allowed',\n classNames?.control,\n )}\n onClick={() => setOpen(!open)}\n onKeyDown={handleKeyDown}\n >\n <span\n className={cn(\n 'flex min-w-0 flex-1 flex-wrap items-center gap-1.5',\n classNames?.tagList,\n )}\n >\n {visibleOptions.map((option) => (\n <span\n key={option.value}\n className={cn(\n 'inline-flex max-w-full items-center gap-1 rounded-full border border-border/70 bg-muted/65 px-2 py-0.5 text-xs font-medium text-foreground',\n classNames?.tag,\n )}\n >\n <span\n className={cn(\n 'max-w-40 truncate',\n classNames?.tagLabel,\n )}\n >\n {option.label}\n </span>\n <button\n type=\"button\"\n aria-label={removeLabel(option)}\n disabled={disabled}\n className={cn(\n 'inline-flex h-4 w-4 shrink-0 items-center justify-center rounded-full text-muted-foreground hover:bg-background/80 hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30 disabled:!cursor-not-allowed',\n classNames?.tagRemove,\n )}\n onClick={(event) => {\n event.preventDefault();\n event.stopPropagation();\n removeOption(option);\n }}\n onMouseDown={(event) => {\n event.preventDefault();\n event.stopPropagation();\n }}\n onKeyDown={(event) => event.stopPropagation()}\n >\n <span aria-hidden=\"true\">x</span>\n </button>\n </span>\n ))}\n {overflowCount > 0 ? (\n <span\n className={cn(\n 'inline-flex max-w-full items-center rounded-full border border-border/70 bg-muted/45 px-2 py-0.5 text-xs font-medium text-muted-foreground',\n classNames?.tag,\n )}\n >\n +{overflowCount}\n </span>\n ) : null}\n {isPlaceholder ? (\n <span\n className={cn(\n 'min-w-0 truncate',\n theme.slots.selectPlaceholder,\n classNames?.placeholder,\n )}\n >\n {placeholder}\n </span>\n ) : null}\n </span>\n </div>\n <span\n className={cn(\n theme.slots.selectChevron,\n open && 'rotate-[225deg]',\n classNames?.chevron,\n )}\n />\n {name\n ? selectedValues.map((selectedValue) => (\n <input\n key={selectedValue}\n type=\"hidden\"\n name={name}\n value={selectedValue}\n className={classNames?.hiddenInput}\n />\n ))\n : null}\n {open ? (\n <div\n id={listboxId}\n role=\"listbox\"\n aria-multiselectable=\"true\"\n aria-labelledby={controlId}\n className={cn(theme.slots.selectMenu, classNames?.menu)}\n style={theme.styles.selectMenu}\n >\n {optionList.length > 0 ? (\n optionList.map((option, index) => {\n const selected = selectedValueSet.has(option.value);\n const active = index === resolvedActiveIndex;\n return (\n <button\n key={option.value}\n type=\"button\"\n role=\"option\"\n aria-selected={selected}\n disabled={option.disabled}\n className={cn(\n theme.slots.selectOption,\n 'gap-2',\n active && theme.slots.selectOptionActive,\n selected && theme.slots.selectOptionSelected,\n option.disabled && theme.slots.selectOptionDisabled,\n classNames?.option,\n )}\n style={{\n ...theme.styles.selectOption,\n ...(active ? theme.styles.selectOptionActive : undefined),\n ...(selected\n ? theme.styles.selectOptionSelected\n : undefined),\n }}\n onMouseEnter={() => {\n if (!option.disabled) {\n setActiveIndex(index);\n }\n }}\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => toggleOption(option)}\n >\n <span\n aria-hidden=\"true\"\n className={cn(\n 'inline-flex h-4 w-4 shrink-0 items-center justify-center rounded-sm border border-border/70 text-[10px]',\n selected && 'border-primary/40 bg-primary text-primary-foreground',\n classNames?.optionIndicator,\n )}\n >\n {selected ? '✓' : null}\n </span>\n <span\n className={cn(\n 'min-w-0 flex-1 truncate',\n classNames?.optionLabel,\n )}\n >\n {option.label}\n </span>\n </button>\n );\n })\n ) : (\n <div\n className={cn(\n 'px-2.5 py-2 text-sm text-muted-foreground',\n classNames?.empty,\n )}\n >\n {emptyLabel}\n </div>\n )}\n </div>\n ) : null}\n </div>\n );\n },\n);\n","import {\n forwardRef,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport type { KeyboardEvent } from 'react';\n\nimport type { BaseSelectOption, BaseSelectProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nfunction findOption(options: BaseSelectOption[], value: string | undefined) {\n if (value === undefined) return undefined;\n return options.find((option) => option.value === value);\n}\n\nfunction getInitialValue(\n options: BaseSelectOption[],\n defaultValue: string | number | readonly string[] | undefined,\n) {\n if (typeof defaultValue === 'string') {\n return defaultValue;\n }\n return '';\n}\n\nfunction getNextEnabledIndex(\n options: BaseSelectOption[],\n currentIndex: number,\n direction: 1 | -1,\n) {\n if (!options.length) return -1;\n\n for (let offset = 1; offset <= options.length; offset += 1) {\n const nextIndex =\n (currentIndex + offset * direction + options.length) % options.length;\n if (!options[nextIndex]?.disabled) {\n return nextIndex;\n }\n }\n\n return -1;\n}\n\nexport const BaseSelect = forwardRef<HTMLSelectElement, BaseSelectProps>(\n function BaseSelect(\n {\n options,\n placeholder,\n icon,\n invalid = false,\n disabled = false,\n openForPreview = false,\n appearance,\n className,\n classNames,\n style,\n children,\n value,\n defaultValue,\n onChange,\n name,\n id,\n required,\n 'aria-invalid': nativeAriaInvalid,\n 'aria-label': nativeAriaLabel,\n 'aria-labelledby': nativeAriaLabelledBy,\n ...selectProps\n },\n ref,\n ) {\n const theme = resolveBaseAppearance(appearance);\n const generatedId = useId();\n const selectId = id ?? generatedId;\n const listboxId = `${selectId}-listbox`;\n const rootRef = useRef<HTMLDivElement | null>(null);\n const selectRef = useRef<HTMLSelectElement | null>(null);\n const optionList = options ?? [];\n const isCustomSelect = optionList.length > 0;\n const forceOpen = openForPreview;\n const [uncontrolledOpen, setUncontrolledOpen] = useState(false);\n const open = forceOpen || uncontrolledOpen;\n const [uncontrolledValue, setUncontrolledValue] = useState(() =>\n getInitialValue(optionList, defaultValue),\n );\n const isControlled = value !== undefined;\n const selectedValue = String(isControlled ? value : uncontrolledValue);\n const selectedOption = findOption(optionList, selectedValue);\n const activeIndex = useMemo(() => {\n const selectedIndex = optionList.findIndex(\n (option) => option.value === selectedValue && !option.disabled,\n );\n if (selectedIndex >= 0) return selectedIndex;\n return optionList.findIndex((option) => !option.disabled);\n }, [optionList, selectedValue]);\n const visibleLabel = selectedOption?.label ?? placeholder;\n const isPlaceholder = !selectedOption;\n\n const setSelectRef = (node: HTMLSelectElement | null) => {\n selectRef.current = node;\n if (typeof ref === 'function') {\n ref(node);\n } else if (ref) {\n ref.current = node;\n }\n };\n\n useEffect(() => {\n if (!open || forceOpen) return undefined;\n\n const handlePointerDown = (event: PointerEvent) => {\n if (!rootRef.current?.contains(event.target as Node)) {\n setUncontrolledOpen(false);\n }\n };\n\n document.addEventListener('pointerdown', handlePointerDown);\n return () => {\n document.removeEventListener('pointerdown', handlePointerDown);\n };\n }, [forceOpen, open]);\n\n const notifyChange = (nextValue: string) => {\n const selectElement = selectRef.current;\n if (!selectElement) return;\n const valueSetter = Object.getOwnPropertyDescriptor(\n HTMLSelectElement.prototype,\n 'value',\n )?.set;\n valueSetter?.call(selectElement, nextValue);\n selectElement.dispatchEvent(new Event('change', { bubbles: true }));\n };\n\n const commitValue = (nextValue: string, optionDisabled?: boolean) => {\n if (optionDisabled || disabled) return;\n if (!isControlled) {\n setUncontrolledValue(nextValue);\n }\n notifyChange(nextValue);\n if (!forceOpen) {\n setUncontrolledOpen(false);\n }\n };\n\n const focusOption = (direction: 1 | -1) => {\n const currentIndex = activeIndex >= 0 ? activeIndex : 0;\n const nextIndex = getNextEnabledIndex(optionList, currentIndex, direction);\n if (nextIndex >= 0) {\n commitValue(optionList[nextIndex].value, optionList[nextIndex].disabled);\n }\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLButtonElement>) => {\n if (disabled) return;\n\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n event.preventDefault();\n if (!open) {\n setUncontrolledOpen(true);\n return;\n }\n focusOption(event.key === 'ArrowDown' ? 1 : -1);\n return;\n }\n\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n if (!forceOpen) {\n setUncontrolledOpen((current) => !current);\n }\n return;\n }\n\n if (event.key === 'Escape') {\n setUncontrolledOpen(false);\n }\n };\n\n if (!isCustomSelect) {\n return (\n <div\n className={cn(\n theme.slots.controlWrapper,\n invalid && theme.slots.controlInvalid,\n disabled && theme.slots.controlDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.control,\n ...(invalid ? theme.styles.controlInvalid : undefined),\n ...(disabled ? theme.styles.controlDisabled : undefined),\n ...style,\n }}\n >\n {hasRenderableNode(icon) ? (\n <span className={cn(theme.slots.controlIcon, classNames?.icon)}>\n {icon}\n </span>\n ) : null}\n <select\n {...selectProps}\n id={id}\n ref={ref}\n name={name}\n value={value}\n defaultValue={defaultValue}\n required={required}\n disabled={disabled}\n aria-invalid={nativeAriaInvalid ?? (invalid || undefined)}\n aria-label={nativeAriaLabel}\n aria-labelledby={nativeAriaLabelledBy}\n onChange={onChange}\n className={cn(\n theme.slots.controlBase,\n theme.slots.controlSelect,\n classNames?.control,\n )}\n >\n {hasRenderableNode(placeholder) ? (\n <option value=\"\" disabled>\n {placeholder}\n </option>\n ) : null}\n {children}\n </select>\n <span className={theme.slots.selectChevron} />\n </div>\n );\n }\n\n return (\n <div\n ref={rootRef}\n className={cn(\n theme.slots.controlWrapper,\n 'overflow-visible',\n open && 'z-50',\n invalid && theme.slots.controlInvalid,\n disabled && theme.slots.controlDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.control,\n ...(invalid ? theme.styles.controlInvalid : undefined),\n ...(disabled ? theme.styles.controlDisabled : undefined),\n ...style,\n }}\n >\n {hasRenderableNode(icon) ? (\n <span className={cn(theme.slots.controlIcon, classNames?.icon)}>\n {icon}\n </span>\n ) : null}\n <button\n type=\"button\"\n id={`${selectId}-button`}\n disabled={disabled}\n aria-haspopup=\"listbox\"\n aria-expanded={open}\n aria-controls={listboxId}\n aria-invalid={nativeAriaInvalid ?? (invalid || undefined)}\n aria-label={nativeAriaLabel}\n aria-labelledby={nativeAriaLabelledBy}\n className={cn(\n theme.slots.controlBase,\n theme.slots.controlSelect,\n 'flex items-center text-left',\n classNames?.control,\n )}\n onClick={() => {\n if (!forceOpen) {\n setUncontrolledOpen((current) => !current);\n }\n }}\n onKeyDown={handleKeyDown}\n >\n <span\n className={cn(\n 'min-w-0 flex-1 truncate',\n isPlaceholder && theme.slots.selectPlaceholder,\n isPlaceholder && classNames?.placeholder,\n )}\n >\n {visibleLabel}\n </span>\n </button>\n <span\n className={cn(\n theme.slots.selectChevron,\n open && 'rotate-[225deg]',\n )}\n />\n <select\n {...selectProps}\n ref={setSelectRef}\n id={id}\n name={name}\n value={selectedValue}\n required={required}\n disabled={disabled}\n aria-hidden=\"true\"\n tabIndex={-1}\n className={theme.slots.selectNative}\n onChange={onChange}\n >\n {hasRenderableNode(placeholder) ? (\n <option value=\"\" disabled>\n {placeholder}\n </option>\n ) : null}\n {optionList.map((option) => (\n <option\n key={option.value}\n value={option.value}\n disabled={option.disabled}\n >\n {typeof option.label === 'string' ? option.label : option.value}\n </option>\n ))}\n </select>\n {open ? (\n <div\n id={listboxId}\n role=\"listbox\"\n aria-labelledby={`${selectId}-button`}\n className={cn(theme.slots.selectMenu, classNames?.menu)}\n style={theme.styles.selectMenu}\n >\n {optionList.map((option, index) => {\n const selected = option.value === selectedValue;\n const active = index === activeIndex;\n return (\n <button\n key={option.value}\n type=\"button\"\n role=\"option\"\n aria-selected={selected}\n disabled={option.disabled}\n className={cn(\n theme.slots.selectOption,\n active && theme.slots.selectOptionActive,\n selected && theme.slots.selectOptionSelected,\n option.disabled && theme.slots.selectOptionDisabled,\n classNames?.option,\n )}\n style={{\n ...theme.styles.selectOption,\n ...(active ? theme.styles.selectOptionActive : undefined),\n ...(selected ? theme.styles.selectOptionSelected : undefined),\n }}\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => commitValue(option.value, option.disabled)}\n >\n <span className=\"min-w-0 flex-1 truncate\">{option.label}</span>\n </button>\n );\n })}\n </div>\n ) : null}\n </div>\n );\n },\n);\n","import { forwardRef, useState } from 'react';\nimport type { ChangeEvent } from 'react';\n\nimport type { BaseSwitchProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nexport const BaseSwitch = forwardRef<HTMLInputElement, BaseSwitchProps>(\n function BaseSwitch(\n {\n label,\n description,\n disabled = false,\n appearance,\n className,\n classNames,\n style,\n checked,\n defaultChecked,\n onChange,\n ...switchProps\n },\n ref,\n ) {\n const theme = resolveBaseAppearance(appearance);\n const [uncontrolledChecked, setUncontrolledChecked] = useState(\n defaultChecked ?? false,\n );\n const isControlled = checked !== undefined;\n const resolvedChecked = isControlled ? checked : uncontrolledChecked;\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n if (!isControlled) {\n setUncontrolledChecked(event.currentTarget.checked);\n }\n onChange?.(event);\n };\n\n return (\n <label\n className={cn(\n theme.slots.switchRoot,\n disabled && theme.slots.switchDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.switchRoot,\n ...style,\n }}\n >\n <span\n className={cn(\n theme.slots.switchTrack,\n resolvedChecked && theme.slots.switchChecked,\n classNames?.track,\n )}\n style={theme.styles.switchTrack}\n >\n <input\n {...switchProps}\n ref={ref}\n type=\"checkbox\"\n disabled={disabled}\n checked={checked}\n defaultChecked={defaultChecked}\n onChange={handleChange}\n className={cn(theme.slots.switchInput, classNames?.input)}\n />\n <span\n className={cn(\n theme.slots.switchThumb,\n resolvedChecked && 'translate-x-5',\n classNames?.thumb,\n )}\n style={theme.styles.switchThumb}\n />\n </span>\n\n {hasRenderableNode(label) || hasRenderableNode(description) ? (\n <span className={cn(theme.slots.switchContent, classNames?.content)}>\n {hasRenderableNode(label) ? (\n <span className={cn(theme.slots.switchLabel, classNames?.label)}>\n {label}\n </span>\n ) : null}\n {hasRenderableNode(description) ? (\n <span\n className={cn(\n theme.slots.switchDescription,\n classNames?.description,\n )}\n >\n {description}\n </span>\n ) : null}\n </span>\n ) : null}\n </label>\n );\n },\n);\n","import {\n createContext,\n forwardRef,\n useContext,\n useRef,\n useState,\n type CSSProperties,\n type DragEvent,\n type PointerEvent as ReactPointerEvent,\n} from 'react';\n\nimport { resolveBaseAppearance } from './theme';\nimport type {\n BaseAppearance,\n BaseResolvedTheme,\n BaseTableBodyProps,\n BaseTableCaptionProps,\n BaseTableCellProps,\n BaseTableColumnInteractionOptions,\n BaseTableContainerProps,\n BaseTableEmptyProps,\n BaseTableFooterProps,\n BaseTableHeaderProps,\n BaseTableHeadProps,\n BaseTableLoadingProps,\n BaseTableProps,\n BaseTableRowProps,\n BaseTableSortDirection,\n} from './types';\nimport { cn, hasRenderableNode } from './utils';\n\nconst DATA_TRANSFER_COLUMN_TYPE = 'application/x-monkeys-base-table-column';\n\ntype BaseTableContextValue = BaseTableColumnInteractionOptions & {\n appearance?: BaseAppearance;\n theme: BaseResolvedTheme;\n draggingColumnId?: string;\n setDraggingColumnId: (columnId?: string) => void;\n};\n\nconst BaseTableContext = createContext<BaseTableContextValue | null>(null);\n\nfunction useBaseTableContext(appearance?: BaseAppearance) {\n const context = useContext(BaseTableContext);\n if (context) {\n return {\n ...context,\n theme: appearance ? resolveBaseAppearance(appearance) : context.theme,\n appearance: appearance ?? context.appearance,\n };\n }\n\n const theme = resolveBaseAppearance(appearance);\n return {\n appearance,\n theme,\n setDraggingColumnId: () => {},\n } satisfies BaseTableContextValue;\n}\n\nfunction toCssSize(value?: number | string) {\n if (value === undefined) return undefined;\n return typeof value === 'number' ? `${value}px` : value;\n}\n\nfunction clampWidth(value: number, minWidth?: number, maxWidth?: number) {\n const min = minWidth ?? 48;\n const max = maxWidth ?? Number.POSITIVE_INFINITY;\n return Math.min(Math.max(value, min), max);\n}\n\nfunction getNextColumnOrder(\n order: string[] | undefined,\n columnId: string,\n targetColumnId: string,\n) {\n if (!order || columnId === targetColumnId) return undefined;\n const fromIndex = order.indexOf(columnId);\n const toIndex = order.indexOf(targetColumnId);\n if (fromIndex < 0 || toIndex < 0) return undefined;\n\n const next = [...order];\n const [moved] = next.splice(fromIndex, 1);\n next.splice(toIndex, 0, moved);\n return next;\n}\n\nfunction sortAriaValue(direction?: BaseTableSortDirection) {\n switch (direction) {\n case 'asc':\n return 'ascending';\n case 'desc':\n return 'descending';\n default:\n return undefined;\n }\n}\n\nfunction SortIndicator({\n direction,\n className,\n}: {\n direction?: BaseTableSortDirection;\n className?: string;\n}) {\n return (\n <span\n aria-hidden=\"true\"\n className={cn(\n className,\n direction === 'desc' && 'rotate-180',\n (!direction || direction === 'none') && 'opacity-45',\n )}\n >\n ▲\n </span>\n );\n}\n\nfunction DragHandleIcon() {\n return (\n <span aria-hidden=\"true\" className=\"grid gap-0.5\">\n <span className=\"h-0.5 w-0.5 rounded-full bg-current\" />\n <span className=\"h-0.5 w-0.5 rounded-full bg-current\" />\n <span className=\"h-0.5 w-0.5 rounded-full bg-current\" />\n </span>\n );\n}\n\nexport function BaseTableContainer({\n appearance,\n attachedFooter = false,\n className,\n classNames,\n style,\n ...containerProps\n}: BaseTableContainerProps) {\n const theme = resolveBaseAppearance(appearance);\n\n return (\n <div\n {...containerProps}\n data-base-table-container=\"\"\n data-attached-footer={attachedFooter ? '' : undefined}\n className={cn(\n theme.slots.tableContainer,\n attachedFooter && theme.slots.tableContainerFooterAttached,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.tableContainer,\n ...(attachedFooter ? theme.styles.tableContainerFooterAttached : undefined),\n ...style,\n }}\n />\n );\n}\n\nexport function BaseTable({\n appearance,\n className,\n classNames,\n style,\n columnOrder,\n columnSizes,\n columnDragEnabled = false,\n columnResizeEnabled = false,\n onColumnOrderChange,\n onColumnSizeChange,\n ...tableProps\n}: BaseTableProps) {\n const theme = resolveBaseAppearance(appearance);\n const [draggingColumnId, setDraggingColumnId] = useState<string | undefined>();\n const contextValue: BaseTableContextValue = {\n appearance,\n theme,\n columnOrder,\n columnSizes,\n columnDragEnabled,\n columnResizeEnabled,\n onColumnOrderChange,\n onColumnSizeChange,\n draggingColumnId,\n setDraggingColumnId,\n };\n\n return (\n <BaseTableContext.Provider value={contextValue}>\n <table\n {...tableProps}\n className={cn(theme.slots.tableRoot, classNames?.root, className)}\n style={{\n ...theme.styles.table,\n ...style,\n }}\n />\n </BaseTableContext.Provider>\n );\n}\n\nexport function BaseTableHeader({\n appearance,\n className,\n classNames,\n style,\n ...headerProps\n}: BaseTableHeaderProps) {\n const { theme } = useBaseTableContext(appearance);\n\n return (\n <thead\n {...headerProps}\n className={cn(theme.slots.tableHeader, classNames?.root, className)}\n style={{\n ...theme.styles.tableHeader,\n ...style,\n }}\n />\n );\n}\n\nexport function BaseTableBody({\n appearance,\n className,\n classNames,\n style,\n ...bodyProps\n}: BaseTableBodyProps) {\n const { theme } = useBaseTableContext(appearance);\n\n return (\n <tbody\n {...bodyProps}\n className={cn(theme.slots.tableBody, classNames?.root, className)}\n style={{\n ...theme.styles.tableBody,\n ...style,\n }}\n />\n );\n}\n\nexport function BaseTableFooter({\n appearance,\n className,\n classNames,\n style,\n ...footerProps\n}: BaseTableFooterProps) {\n const { theme } = useBaseTableContext(appearance);\n\n return (\n <tfoot\n {...footerProps}\n className={cn(theme.slots.tableFooter, classNames?.root, className)}\n style={{\n ...theme.styles.tableFooter,\n ...style,\n }}\n />\n );\n}\n\nexport function BaseTableRow({\n interactive,\n selected,\n disabled,\n appearance,\n className,\n classNames,\n style,\n ...rowProps\n}: BaseTableRowProps) {\n const { theme } = useBaseTableContext(appearance);\n\n return (\n <tr\n {...rowProps}\n aria-disabled={disabled || undefined}\n data-state={selected ? 'selected' : undefined}\n className={cn(\n theme.slots.tableRow,\n interactive && !disabled && theme.slots.tableRowInteractive,\n selected && theme.slots.tableRowSelected,\n disabled && theme.slots.tableRowDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.tableRow,\n ...style,\n }}\n />\n );\n}\n\nexport const BaseTableHead = forwardRef<HTMLTableCellElement, BaseTableHeadProps>(function BaseTableHead({\n columnId,\n align = 'left',\n icon,\n label,\n description,\n meta,\n actions,\n trailing,\n sortable,\n sortDirection = 'none',\n sortLabel,\n onSort,\n draggable,\n dragLabel,\n resizable,\n resizeLabel,\n width,\n minWidth,\n maxWidth,\n appearance,\n className,\n classNames,\n style,\n children,\n onDragOver,\n onDrop,\n ...headProps\n}, forwardedRef) {\n const tableContext = useBaseTableContext(appearance);\n const { theme } = tableContext;\n const headRef = useRef<HTMLTableCellElement | null>(null);\n const setHeadRef = (node: HTMLTableCellElement | null) => {\n headRef.current = node;\n if (typeof forwardedRef === 'function') {\n forwardedRef(node);\n } else if (forwardedRef) {\n forwardedRef.current = node;\n }\n };\n const controlledWidth =\n columnId && tableContext.columnSizes?.[columnId] !== undefined\n ? tableContext.columnSizes[columnId]\n : width;\n const canDrag = Boolean(\n columnId &&\n draggable !== false &&\n (draggable || tableContext.columnDragEnabled) &&\n tableContext.columnOrder &&\n tableContext.onColumnOrderChange,\n );\n const canResize = Boolean(\n columnId &&\n resizable !== false &&\n (resizable || tableContext.columnResizeEnabled) &&\n tableContext.onColumnSizeChange,\n );\n const interactiveSort = Boolean(sortable || onSort);\n const ariaSort = sortAriaValue(sortDirection);\n\n const content = hasRenderableNode(label) ? label : children;\n const usesRichHeader =\n canDrag ||\n hasRenderableNode(icon) ||\n hasRenderableNode(label) ||\n hasRenderableNode(description) ||\n hasRenderableNode(meta) ||\n hasRenderableNode(actions) ||\n hasRenderableNode(trailing) ||\n interactiveSort;\n const renderedContent =\n usesRichHeader ? (\n <div className={cn(theme.slots.tableHeadContent, classNames?.content)}>\n <div className={cn(theme.slots.tableHeadMain, classNames?.main)}>\n {canDrag ? (\n <button\n type=\"button\"\n draggable\n title={dragLabel}\n aria-label={dragLabel ?? `Drag column ${columnId}`}\n className={cn(theme.slots.tableHeadDragHandle, classNames?.dragHandle)}\n onClick={(event) => event.stopPropagation()}\n onDragStart={(event) => {\n event.stopPropagation();\n tableContext.setDraggingColumnId(columnId);\n event.dataTransfer.effectAllowed = 'move';\n event.dataTransfer.setData(DATA_TRANSFER_COLUMN_TYPE, columnId as string);\n }}\n onDragEnd={(event) => {\n event.stopPropagation();\n tableContext.setDraggingColumnId(undefined);\n }}\n >\n <DragHandleIcon />\n </button>\n ) : null}\n {icon ? (\n <span className={cn(theme.slots.tableHeadIcon, classNames?.icon)}>\n {icon}\n </span>\n ) : null}\n {interactiveSort ? (\n <button\n type=\"button\"\n disabled={!onSort}\n title={sortLabel}\n className={cn(theme.slots.tableHeadSortButton, classNames?.sortButton)}\n onClick={(event) => {\n event.stopPropagation();\n onSort?.(columnId);\n }}\n >\n <span className={cn(theme.slots.tableHeadText, classNames?.text)}>\n {hasRenderableNode(content) ? (\n <span className={cn(theme.slots.tableHeadLabel, classNames?.label)}>\n {content}\n </span>\n ) : null}\n {hasRenderableNode(description) ? (\n <span\n className={cn(\n theme.slots.tableHeadDescription,\n classNames?.description,\n )}\n >\n {description}\n </span>\n ) : null}\n </span>\n <SortIndicator\n direction={sortDirection}\n className={cn(theme.slots.tableHeadSortIcon, classNames?.sortIcon)}\n />\n </button>\n ) : (\n <span className={cn(theme.slots.tableHeadText, classNames?.text)}>\n {hasRenderableNode(content) ? (\n <span className={cn(theme.slots.tableHeadLabel, classNames?.label)}>\n {content}\n </span>\n ) : null}\n {hasRenderableNode(description) ? (\n <span\n className={cn(\n theme.slots.tableHeadDescription,\n classNames?.description,\n )}\n >\n {description}\n </span>\n ) : null}\n </span>\n )}\n </div>\n {hasRenderableNode(meta) || hasRenderableNode(actions) || hasRenderableNode(trailing) ? (\n <div className={cn(theme.slots.tableHeadActions, classNames?.actions)}>\n {hasRenderableNode(meta) ? (\n <span className={cn(theme.slots.tableHeadMeta, classNames?.meta)}>\n {meta}\n </span>\n ) : null}\n {actions}\n {trailing}\n </div>\n ) : null}\n </div>\n ) : (\n children\n );\n\n const handleDragOver = (event: DragEvent<HTMLTableCellElement>) => {\n onDragOver?.(event);\n if (!canDrag || !tableContext.draggingColumnId || tableContext.draggingColumnId === columnId) {\n return;\n }\n event.preventDefault();\n event.dataTransfer.dropEffect = 'move';\n };\n\n const handleDrop = (event: DragEvent<HTMLTableCellElement>) => {\n onDrop?.(event);\n if (!canDrag || !columnId) return;\n const sourceColumnId =\n tableContext.draggingColumnId ||\n event.dataTransfer.getData(DATA_TRANSFER_COLUMN_TYPE);\n if (!sourceColumnId || sourceColumnId === columnId) return;\n\n const nextOrder = getNextColumnOrder(\n tableContext.columnOrder,\n sourceColumnId,\n columnId,\n );\n if (nextOrder) {\n event.preventDefault();\n tableContext.onColumnOrderChange?.(nextOrder, {\n columnId: sourceColumnId,\n targetColumnId: columnId,\n });\n }\n tableContext.setDraggingColumnId(undefined);\n };\n\n const handleResizePointerDown = (event: ReactPointerEvent<HTMLButtonElement>) => {\n if (!canResize || !columnId || !tableContext.onColumnSizeChange) return;\n event.preventDefault();\n event.stopPropagation();\n\n const startX = event.clientX;\n const currentWidth =\n typeof controlledWidth === 'number'\n ? controlledWidth\n : headRef.current?.offsetWidth ?? minWidth ?? 96;\n const previousWidth = clampWidth(currentWidth, minWidth, maxWidth);\n const pointerId = event.pointerId;\n const target = event.currentTarget;\n target.setPointerCapture?.(pointerId);\n\n const handlePointerMove = (moveEvent: PointerEvent) => {\n const nextWidth = clampWidth(\n previousWidth + moveEvent.clientX - startX,\n minWidth,\n maxWidth,\n );\n tableContext.onColumnSizeChange?.(columnId, nextWidth, {\n columnId,\n previousWidth,\n minWidth,\n maxWidth,\n });\n };\n\n const cleanup = () => {\n target.releasePointerCapture?.(pointerId);\n window.removeEventListener('pointermove', handlePointerMove);\n window.removeEventListener('pointerup', cleanup);\n window.removeEventListener('pointercancel', cleanup);\n };\n\n window.addEventListener('pointermove', handlePointerMove);\n window.addEventListener('pointerup', cleanup);\n window.addEventListener('pointercancel', cleanup);\n };\n\n return (\n <th\n {...headProps}\n ref={setHeadRef}\n scope={headProps.scope ?? 'col'}\n aria-sort={ariaSort}\n className={cn(\n theme.slots.tableHead,\n align === 'center' && theme.slots.tableCellAlignCenter,\n align === 'right' && theme.slots.tableCellAlignRight,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.tableHead,\n width: toCssSize(controlledWidth),\n minWidth: toCssSize(minWidth),\n maxWidth: toCssSize(maxWidth),\n ...style,\n }}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n >\n {renderedContent}\n {canResize ? (\n <button\n type=\"button\"\n title={resizeLabel}\n aria-label={resizeLabel ?? `Resize column ${columnId}`}\n className={cn(theme.slots.tableHeadResizeHandle, classNames?.resizeHandle)}\n onClick={(event) => event.stopPropagation()}\n onPointerDown={handleResizePointerDown}\n />\n ) : null}\n </th>\n );\n});\n\nexport function BaseTableCell({\n align = 'left',\n appearance,\n className,\n classNames,\n style,\n ...cellProps\n}: BaseTableCellProps) {\n const { theme } = useBaseTableContext(appearance);\n\n return (\n <td\n {...cellProps}\n className={cn(\n theme.slots.tableCell,\n align === 'center' && theme.slots.tableCellAlignCenter,\n align === 'right' && theme.slots.tableCellAlignRight,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.tableCell,\n ...style,\n }}\n />\n );\n}\n\nexport function BaseTableCaption({\n appearance,\n className,\n classNames,\n style,\n ...captionProps\n}: BaseTableCaptionProps) {\n const { theme } = useBaseTableContext(appearance);\n\n return (\n <caption\n {...captionProps}\n className={cn(theme.slots.tableCaption, classNames?.root, className)}\n style={{\n ...theme.styles.tableCaption,\n ...style,\n }}\n />\n );\n}\n\nexport function BaseTableEmpty({\n colSpan,\n icon,\n title,\n description,\n actions,\n children,\n appearance,\n className,\n classNames,\n style,\n ...emptyProps\n}: BaseTableEmptyProps) {\n const { theme } = useBaseTableContext(appearance);\n const hasStructuredContent =\n hasRenderableNode(icon) ||\n hasRenderableNode(title) ||\n hasRenderableNode(description) ||\n hasRenderableNode(actions);\n\n return (\n <tr\n {...emptyProps}\n className={cn(theme.slots.tableEmptyRow, classNames?.row, className)}\n style={{\n ...theme.styles.tableEmpty,\n ...style,\n }}\n >\n <td colSpan={Math.max(colSpan, 1)} className={cn(theme.slots.tableEmptyCell, classNames?.cell)}>\n {hasStructuredContent ? (\n <div className={cn(theme.slots.tableEmptyContent, classNames?.content)}>\n {hasRenderableNode(icon) ? (\n <div className={cn(theme.slots.tableEmptyIcon, classNames?.icon)}>\n {icon}\n </div>\n ) : null}\n {hasRenderableNode(title) ? (\n <div className={cn(theme.slots.tableEmptyTitle, classNames?.title)}>\n {title}\n </div>\n ) : null}\n {hasRenderableNode(description) ? (\n <div\n className={cn(\n theme.slots.tableEmptyDescription,\n classNames?.description,\n )}\n >\n {description}\n </div>\n ) : null}\n {hasRenderableNode(actions) ? (\n <div className={cn(theme.slots.tableEmptyActions, classNames?.actions)}>\n {actions}\n </div>\n ) : null}\n </div>\n ) : (\n children\n )}\n </td>\n </tr>\n );\n}\n\nexport function BaseTableLoading({\n rows = 3,\n columns,\n columnWidths = [],\n animated = true,\n rowLabel = 'Loading table row',\n appearance,\n className,\n classNames,\n style,\n}: BaseTableLoadingProps) {\n const { theme } = useBaseTableContext(appearance);\n const safeRows = Math.max(rows, 0);\n const safeColumns = Math.max(columns, 1);\n\n return (\n <>\n {Array.from({ length: safeRows }).map((_, rowIndex) => (\n <tr\n key={rowIndex}\n aria-label={`${rowLabel} ${rowIndex + 1}`}\n aria-busy=\"true\"\n className={cn(theme.slots.tableLoadingRow, classNames?.row, className)}\n style={{\n ...theme.styles.tableLoading,\n ...style,\n }}\n >\n {Array.from({ length: safeColumns }).map((__, columnIndex) => (\n <td\n key={columnIndex}\n className={cn(theme.slots.tableLoadingCell, classNames?.cell)}\n >\n <div\n aria-hidden=\"true\"\n className={cn(\n theme.slots.tableLoadingSkeleton,\n animated && 'animate-pulse',\n classNames?.skeleton,\n )}\n style={{\n width: toCssSize(columnWidths[columnIndex]),\n }}\n />\n </td>\n ))}\n </tr>\n ))}\n </>\n );\n}\n","import { forwardRef } from 'react';\n\nimport type { BaseTextareaProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn } from './utils';\n\nexport const BaseTextarea = forwardRef<HTMLTextAreaElement, BaseTextareaProps>(\n function BaseTextarea(\n {\n invalid = false,\n disabled = false,\n readOnly = false,\n appearance,\n className,\n classNames,\n style,\n 'aria-invalid': nativeAriaInvalid,\n ...textareaProps\n },\n ref,\n ) {\n const theme = resolveBaseAppearance(appearance);\n\n return (\n <textarea\n {...textareaProps}\n ref={ref}\n disabled={disabled}\n readOnly={readOnly}\n aria-invalid={nativeAriaInvalid ?? (invalid || undefined)}\n className={cn(\n theme.slots.controlWrapper,\n theme.slots.controlBase,\n theme.slots.controlTextarea,\n invalid && theme.slots.controlInvalid,\n disabled && theme.slots.controlDisabled,\n readOnly && theme.slots.controlReadOnly,\n classNames?.control,\n className,\n )}\n style={{\n ...theme.styles.control,\n ...(invalid ? theme.styles.controlInvalid : undefined),\n ...(disabled ? theme.styles.controlDisabled : undefined),\n ...style,\n }}\n />\n );\n },\n);\n","import { useState } from 'react';\n\nimport type { BaseTooltipPlacement, BaseTooltipProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nfunction getTooltipPlacementClassName(placement: BaseTooltipPlacement) {\n switch (placement) {\n case 'bottom':\n return 'left-1/2 top-[calc(100%+0.5rem)] -translate-x-1/2';\n case 'left':\n return 'right-[calc(100%+0.5rem)] top-1/2 -translate-y-1/2';\n case 'right':\n return 'left-[calc(100%+0.5rem)] top-1/2 -translate-y-1/2';\n case 'top':\n default:\n return 'bottom-[calc(100%+0.5rem)] left-1/2 -translate-x-1/2';\n }\n}\n\nexport function BaseTooltip({\n content,\n children,\n open,\n defaultOpen = false,\n placement = 'top',\n disabled = false,\n appearance,\n className,\n classNames,\n style,\n onOpenChange,\n ...tooltipProps\n}: BaseTooltipProps) {\n const theme = resolveBaseAppearance(appearance);\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n const isControlled = open !== undefined;\n const isOpen = isControlled ? open : uncontrolledOpen;\n const canShow = !disabled && hasRenderableNode(content);\n\n const setOpen = (nextOpen: boolean) => {\n if (!canShow && nextOpen) return;\n if (!isControlled) {\n setUncontrolledOpen(nextOpen);\n }\n onOpenChange?.(nextOpen);\n };\n\n return (\n <span\n {...tooltipProps}\n className={cn(theme.slots.tooltipRoot, classNames?.root, className)}\n style={style}\n onMouseEnter={() => setOpen(true)}\n onMouseLeave={() => setOpen(false)}\n onFocus={() => setOpen(true)}\n onBlur={() => setOpen(false)}\n >\n <span className={cn(theme.slots.tooltipTrigger, classNames?.trigger)}>\n {children}\n </span>\n {canShow && isOpen ? (\n <span\n role=\"tooltip\"\n className={cn(\n theme.slots.tooltipContent,\n getTooltipPlacementClassName(placement),\n classNames?.content,\n )}\n style={theme.styles.tooltip}\n >\n {content}\n </span>\n ) : null}\n </span>\n );\n}\n","import type { ReactNode } from 'react';\nimport * as DropdownMenu from '@radix-ui/react-dropdown-menu';\n\nimport {\n BaseAvatar,\n BaseButton,\n cn,\n type BaseAppearance,\n} from '../base';\n\nexport type UserAccountMenuRadius =\n | 'default'\n | 'none'\n | 'sm'\n | 'md'\n | 'lg'\n | 'xl'\n | 'full';\n\nexport type UserAccountMenuSide = 'top' | 'right' | 'bottom' | 'left';\nexport type UserAccountMenuTriggerVariant = 'avatar' | 'profile';\n\nexport interface UserAccountMenuUser {\n avatarAlt?: string;\n avatarUrl?: string;\n initials?: string;\n name?: string;\n secondaryText?: ReactNode;\n}\n\nexport interface UserAccountMenuSelectorOption {\n disabled?: boolean;\n icon?: ReactNode;\n label: ReactNode;\n value: string;\n}\n\nexport interface UserAccountMenuSelectorConfig {\n contentWidthClassName?: string;\n disabled?: boolean;\n id?: string;\n icon?: ReactNode;\n label: ReactNode;\n onChange?: (value: string) => void;\n options: UserAccountMenuSelectorOption[];\n value: string;\n visible?: boolean;\n}\n\nexport interface UserAccountMenuItem {\n disabled?: boolean;\n icon?: ReactNode;\n id: string;\n label: ReactNode;\n onSelect?: () => void;\n separatorBefore?: boolean;\n shortcut?: ReactNode;\n tone?: 'default' | 'danger';\n visible?: boolean;\n}\n\nexport interface UserAccountMenuClassNames {\n avatar?: string;\n content?: string;\n dangerItem?: string;\n item?: string;\n itemIcon?: string;\n label?: string;\n root?: string;\n secondaryText?: string;\n separator?: string;\n subContent?: string;\n subTrigger?: string;\n trigger?: string;\n userName?: string;\n}\n\nexport interface UserAccountMenuProps {\n align?: 'start' | 'center' | 'end';\n appearance?: BaseAppearance;\n ariaLabel?: string;\n className?: string;\n classNames?: UserAccountMenuClassNames;\n contentWidthClassName?: string;\n fallbackName?: string;\n items?: UserAccountMenuItem[];\n menuRadius?: UserAccountMenuRadius;\n selectors?: UserAccountMenuSelectorConfig[];\n side?: UserAccountMenuSide;\n sideOffset?: number;\n triggerEndIcon?: ReactNode;\n triggerTitle?: string;\n triggerVariant?: UserAccountMenuTriggerVariant;\n user: UserAccountMenuUser;\n}\n\nconst defaultAppearance: BaseAppearance = {\n preset: 'admin',\n density: 'compact',\n radius: 'lg',\n border: 'subtle',\n background: 'soft',\n};\n\nconst radiusClassNames: Record<UserAccountMenuRadius, string> = {\n default: 'rounded-md',\n none: 'rounded-none',\n sm: 'rounded-sm',\n md: 'rounded-md',\n lg: 'rounded-lg',\n xl: 'rounded-xl',\n full: 'rounded-full',\n};\n\nfunction CheckIcon() {\n return (\n <svg\n aria-hidden=\"true\"\n className=\"h-3 w-3\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2.25\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M20 6 9 17l-5-5\" />\n </svg>\n );\n}\n\nfunction MoreIcon() {\n return (\n <svg\n aria-hidden=\"true\"\n className=\"h-4 w-4\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"1\" />\n <circle cx=\"19\" cy=\"12\" r=\"1\" />\n <circle cx=\"5\" cy=\"12\" r=\"1\" />\n </svg>\n );\n}\n\nfunction getInitials(name?: string) {\n if (!name) return 'U';\n const words = name.trim().split(/\\s+/).filter(Boolean);\n if (!words.length) return 'U';\n if (words.length === 1) return words[0].slice(0, 2).toUpperCase();\n return words\n .slice(0, 2)\n .map((word) => word[0])\n .join('')\n .toUpperCase();\n}\n\nfunction renderIcon(icon: ReactNode, className?: string) {\n if (!icon) return null;\n return (\n <span className={cn('inline-flex h-4 w-4 shrink-0 items-center justify-center', className)}>\n {icon}\n </span>\n );\n}\n\nfunction getCurrentOptionLabel(selector: UserAccountMenuSelectorConfig) {\n return selector.options.find((option) => option.value === selector.value)?.label ?? selector.value;\n}\n\nfunction UserAccountMenuSelector({\n classNames,\n menuRadius,\n selector,\n}: {\n classNames?: UserAccountMenuClassNames;\n menuRadius: UserAccountMenuRadius;\n selector: UserAccountMenuSelectorConfig;\n}) {\n if (selector.visible === false || selector.options.length === 0) return null;\n\n const radiusClass = radiusClassNames[menuRadius];\n const currentLabel = getCurrentOptionLabel(selector);\n\n return (\n <DropdownMenu.Sub>\n <DropdownMenu.SubTrigger\n disabled={selector.disabled}\n className={cn(\n 'relative flex cursor-pointer select-none items-center gap-2 px-2 py-2 text-sm outline-none transition-colors hover:bg-[hsl(var(--accent))] hover:text-[hsl(var(--accent-foreground))] data-[state=open]:bg-[hsl(var(--accent))] data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n radiusClass,\n classNames?.subTrigger,\n )}\n >\n {renderIcon(selector.icon)}\n <span className=\"min-w-0 truncate\">{selector.label}</span>\n <span className=\"ml-auto min-w-0 max-w-[7rem] truncate text-xs text-[hsl(var(--muted-foreground))]\">\n {currentLabel}\n </span>\n </DropdownMenu.SubTrigger>\n <DropdownMenu.Portal>\n <DropdownMenu.SubContent\n sideOffset={8}\n className={cn(\n 'z-50 min-w-40 border border-[hsl(var(--border))] bg-[hsl(var(--popover))] p-1.5 text-[hsl(var(--popover-foreground))] shadow-md animate-in fade-in-0 zoom-in-95',\n radiusClass,\n selector.contentWidthClassName,\n classNames?.subContent,\n )}\n >\n <DropdownMenu.RadioGroup value={selector.value} onValueChange={selector.onChange}>\n {selector.options.map((option) => (\n <DropdownMenu.RadioItem\n key={option.value}\n value={option.value}\n disabled={option.disabled}\n className={cn(\n 'relative flex cursor-pointer select-none items-center gap-2 px-2 py-2 pl-8 text-sm outline-none transition-colors hover:bg-[hsl(var(--accent))] hover:text-[hsl(var(--accent-foreground))] data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n radiusClass,\n classNames?.item,\n )}\n >\n <DropdownMenu.ItemIndicator className=\"absolute left-2 inline-flex h-4 w-4 items-center justify-center\">\n <CheckIcon />\n </DropdownMenu.ItemIndicator>\n {renderIcon(option.icon, classNames?.itemIcon)}\n <span className=\"min-w-0 truncate\">{option.label}</span>\n </DropdownMenu.RadioItem>\n ))}\n </DropdownMenu.RadioGroup>\n </DropdownMenu.SubContent>\n </DropdownMenu.Portal>\n </DropdownMenu.Sub>\n );\n}\n\nexport function UserAccountMenu({\n align = 'end',\n appearance = defaultAppearance,\n ariaLabel,\n className,\n classNames,\n contentWidthClassName = 'w-56',\n fallbackName = 'User',\n items = [],\n menuRadius = 'default',\n selectors = [],\n side = 'bottom',\n sideOffset = 8,\n triggerEndIcon,\n triggerTitle,\n triggerVariant = 'avatar',\n user,\n}: UserAccountMenuProps) {\n const displayName = user.name?.trim() || fallbackName;\n const initials = user.initials ?? getInitials(displayName);\n const radiusClass = radiusClassNames[menuRadius];\n const visibleSelectors = selectors.filter(\n (selector) => selector.visible !== false && selector.options.length > 0,\n );\n const visibleItems = items.filter((item) => item.visible !== false);\n const hasMenuBody = visibleSelectors.length > 0 || visibleItems.length > 0;\n\n const avatar = (\n <BaseAvatar\n appearance={appearance}\n alt={user.avatarAlt ?? displayName}\n className={cn('h-8 w-8', classNames?.avatar)}\n initials={initials}\n name={displayName}\n size=\"sm\"\n src={user.avatarUrl}\n />\n );\n const isProfileTrigger = triggerVariant === 'profile';\n\n return (\n <DropdownMenu.Root>\n <DropdownMenu.Trigger asChild>\n <BaseButton\n appearance={appearance}\n ariaLabel={ariaLabel ?? displayName}\n className={cn(\n isProfileTrigger\n ? 'h-auto w-full justify-start rounded-lg border-transparent bg-transparent px-2 py-2 text-left shadow-none transition-all hover:bg-[hsl(var(--muted))]/60'\n : 'h-9 w-9 overflow-visible rounded-full border-transparent bg-transparent p-0 shadow-none transition-all hover:ring-2 hover:ring-[hsl(var(--ring))]/20',\n className,\n classNames?.root,\n classNames?.trigger,\n )}\n classNames={{\n icon: 'h-8 w-8',\n label: isProfileTrigger ? 'min-w-0 flex-1 text-left' : undefined,\n }}\n endIcon={isProfileTrigger ? (triggerEndIcon ?? <MoreIcon />) : undefined}\n icon={avatar}\n iconOnly={!isProfileTrigger}\n label={\n isProfileTrigger ? (\n <span className=\"flex min-w-0 flex-col items-start\">\n <span className=\"max-w-full truncate text-sm font-medium leading-none text-[hsl(var(--foreground))]\">\n {displayName}\n </span>\n {user.secondaryText ? (\n <span className=\"mt-1 max-w-full truncate text-xs leading-none text-[hsl(var(--muted-foreground))]\">\n {user.secondaryText}\n </span>\n ) : null}\n </span>\n ) : undefined\n }\n title={triggerTitle ?? displayName}\n tone=\"muted\"\n />\n </DropdownMenu.Trigger>\n <DropdownMenu.Portal>\n <DropdownMenu.Content\n align={align}\n side={side}\n sideOffset={sideOffset}\n className={cn(\n 'z-50 border border-[hsl(var(--border))] bg-[hsl(var(--popover))] p-1.5 text-[hsl(var(--popover-foreground))] shadow-md animate-in fade-in-0 zoom-in-95',\n contentWidthClassName,\n radiusClass,\n classNames?.content,\n )}\n >\n <DropdownMenu.Label className={cn('px-2 py-1.5 font-normal', classNames?.label)}>\n <div className=\"flex min-w-0 items-center gap-2\">\n {avatar}\n <div className=\"flex min-w-0 flex-col\">\n <span className={cn('truncate text-sm font-medium leading-none', classNames?.userName)}>\n {displayName}\n </span>\n {user.secondaryText ? (\n <span\n className={cn(\n 'truncate pt-1 text-xs leading-none text-[hsl(var(--muted-foreground))]',\n classNames?.secondaryText,\n )}\n >\n {user.secondaryText}\n </span>\n ) : null}\n </div>\n </div>\n </DropdownMenu.Label>\n\n {hasMenuBody ? (\n <DropdownMenu.Separator\n className={cn('my-1 h-px bg-[hsl(var(--border))]', classNames?.separator)}\n />\n ) : null}\n\n {visibleSelectors.map((selector, index) => (\n <UserAccountMenuSelector\n key={selector.id ?? `selector-${index}`}\n classNames={classNames}\n menuRadius={menuRadius}\n selector={selector}\n />\n ))}\n\n {visibleSelectors.length > 0 && visibleItems.length > 0 ? (\n <DropdownMenu.Separator\n className={cn('my-1 h-px bg-[hsl(var(--border))]', classNames?.separator)}\n />\n ) : null}\n\n {visibleItems.map((item) => (\n <div key={item.id}>\n {item.separatorBefore ? (\n <DropdownMenu.Separator\n className={cn('my-1 h-px bg-[hsl(var(--border))]', classNames?.separator)}\n />\n ) : null}\n <DropdownMenu.Item\n disabled={item.disabled}\n onSelect={item.onSelect}\n className={cn(\n 'relative flex cursor-pointer select-none items-center gap-2 px-2 py-2 text-sm outline-none transition-colors hover:bg-[hsl(var(--accent))] hover:text-[hsl(var(--accent-foreground))] data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n radiusClass,\n item.tone === 'danger' &&\n 'text-[hsl(var(--destructive))] hover:bg-[hsl(var(--accent))] hover:text-[hsl(var(--destructive))] focus:text-[hsl(var(--destructive))]',\n classNames?.item,\n item.tone === 'danger' && classNames?.dangerItem,\n )}\n >\n {renderIcon(item.icon, classNames?.itemIcon)}\n <span className=\"min-w-0 flex-1 truncate\">{item.label}</span>\n {item.shortcut ? (\n <span className=\"ml-3 shrink-0 text-xs text-[hsl(var(--muted-foreground))]\">\n {item.shortcut}\n </span>\n ) : null}\n </DropdownMenu.Item>\n </div>\n ))}\n </DropdownMenu.Content>\n </DropdownMenu.Portal>\n </DropdownMenu.Root>\n );\n}\n","import { useEffect, useRef, useState, type CSSProperties, type ReactNode } from 'react';\nimport * as DropdownMenu from '@radix-ui/react-dropdown-menu';\nimport { BaseButton, BaseTooltip, type BaseAppearance } from '../base';\nexport {\n UserAccountMenu,\n} from './UserAccountMenu';\nexport type {\n UserAccountMenuClassNames,\n UserAccountMenuItem,\n UserAccountMenuProps,\n UserAccountMenuRadius,\n UserAccountMenuSelectorConfig,\n UserAccountMenuSelectorOption,\n UserAccountMenuSide,\n UserAccountMenuTriggerVariant,\n UserAccountMenuUser,\n} from './UserAccountMenu';\n\n// ============================================================\n// cn utility (inline clsx + tailwind-merge–lite for zero deps)\n// ============================================================\nexport function cn(...inputs: (string | undefined | null | false)[]): string {\n return inputs.filter(Boolean).join(' ');\n}\n\n// ============================================================\n// NavButton\n// ============================================================\nexport interface NavButtonProps {\n /** 是否处于激活状态 */\n active?: boolean;\n /** 左侧图标 */\n icon?: ReactNode;\n /** 右侧附加内容(如 chevron) */\n postfix?: ReactNode;\n /** 点击回调 */\n onClick?: () => void;\n className?: string;\n children: ReactNode;\n}\n\nexport function NavButton({ active, icon, postfix, onClick, className, children }: NavButtonProps) {\n return (\n <div\n className={cn(\n 'flex w-full cursor-pointer select-none items-center gap-2 rounded-xl border p-2 text-xs text-[hsl(var(--foreground))] transition-colors',\n active\n ? 'border-[hsl(var(--input))] bg-[hsl(var(--muted))] font-bold'\n : 'border-transparent hover:border-[hsl(var(--input))]/60 hover:bg-[hsl(var(--muted))]/60',\n className,\n )}\n onClick={onClick}\n >\n <div className=\"w-[20px] [&_svg]:h-[16px] [&_svg]:w-[16px]\">{icon}</div>\n <span className=\"text-sm\">{children}</span>\n {postfix}\n </div>\n );\n}\n\n// ============================================================\n// AppHeader\n// ============================================================\nexport interface HeaderTab {\n id: string;\n label: string;\n}\n\nexport interface AppHeaderLogo {\n /** Logo 图片 URL,若为空则显示 fallback */\n url?: string;\n /** 品牌名称 */\n title: string;\n /** 点击 Logo 回调 */\n onClick?: () => void;\n}\n\nexport interface AppHeaderUser {\n name?: string;\n email?: string;\n photo?: string;\n}\n\nexport interface AppHeaderProps {\n /** 品牌 Logo */\n logo: AppHeaderLogo;\n /** 导航 tabs */\n tabs?: HeaderTab[];\n /** 当前激活的 tab id */\n activeTab?: string;\n /** tab 切换回调 */\n onTabChange?: (tabId: string) => void;\n /** 用户信息 */\n user?: AppHeaderUser;\n /** 退出登录回调 */\n onLogout?: () => void;\n /** 退出登录文案 */\n logoutLabel?: string;\n /** 用户菜单中的额外菜单项(在退出登录按钮之前渲染) */\n userMenuItems?: ReactNode;\n /** header 右侧额外内容 */\n extra?: ReactNode;\n className?: string;\n}\n\nexport function AppHeader({\n logo,\n tabs,\n activeTab,\n onTabChange,\n user,\n onLogout,\n logoutLabel = '退出登录',\n userMenuItems,\n extra,\n className,\n}: AppHeaderProps) {\n const getUserInitials = (name: string) =>\n name.split(' ').map((n) => n[0]).join('').toUpperCase().slice(0, 2);\n\n return (\n <header\n className={cn(\n 'flex h-[72px] w-full shrink-0 items-center justify-between gap-4 rounded-xl border border-[hsl(var(--input))] bg-[hsl(var(--background))] p-[var(--global-spacing,0.75rem)]',\n className,\n )}\n >\n {/* Logo */}\n <div\n className=\"flex shrink-0 cursor-pointer items-center gap-2\"\n onClick={logo.onClick}\n >\n <div\n className={cn(\n 'flex h-8 w-8 items-center justify-center rounded-lg overflow-hidden',\n logo.url ? 'bg-transparent' : 'bg-[hsl(var(--primary))] text-[hsl(var(--primary-foreground))]',\n )}\n >\n {logo.url ? (\n <img src={logo.url} alt={logo.title} className=\"h-full w-full object-contain\" />\n ) : (\n <span className=\"text-sm font-bold\">{logo.title.charAt(0)}</span>\n )}\n </div>\n <span className=\"text-lg font-semibold whitespace-nowrap\">{logo.title}</span>\n </div>\n\n {/* Separator + Tabs */}\n {tabs && tabs.length > 0 && (\n <>\n <div className=\"h-1/2 w-px bg-[hsl(var(--border))]\" />\n <div className=\"flex flex-1 items-center\">\n <div className=\"inline-flex h-9 items-center gap-1 rounded-md bg-transparent p-1\">\n {tabs.map((tab) => (\n <button\n key={tab.id}\n className={cn(\n 'inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium transition-all',\n tab.id === activeTab\n ? 'bg-[hsl(var(--muted))] text-[hsl(var(--foreground))] shadow-sm'\n : 'text-[hsl(var(--muted-foreground))] hover:bg-[hsl(var(--muted))]/50',\n )}\n onClick={() => onTabChange?.(tab.id)}\n >\n {tab.label}\n </button>\n ))}\n </div>\n </div>\n </>\n )}\n {(!tabs || tabs.length === 0) && <div className=\"flex-1\" />}\n\n {/* Right side */}\n <div className=\"flex shrink-0 items-center gap-4\">\n {extra}\n {user && (\n <DropdownMenu.Root>\n <DropdownMenu.Trigger asChild>\n <button className=\"flex h-8 w-8 items-center justify-center rounded-full hover:ring-2 hover:ring-[hsl(var(--ring))]/20 transition-all overflow-hidden focus-visible:outline-none\">\n {user.photo ? (\n <img src={user.photo} alt={user.name} className=\"h-8 w-8 rounded-full object-cover\" />\n ) : (\n <div className=\"flex h-8 w-8 items-center justify-center rounded-full bg-[hsl(var(--muted))] text-xs font-medium\">\n {user.name ? getUserInitials(user.name) : 'U'}\n </div>\n )}\n </button>\n </DropdownMenu.Trigger>\n <DropdownMenu.Portal>\n <DropdownMenu.Content\n className=\"z-50 w-52 rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--popover))] p-1 text-[hsl(var(--popover-foreground))] shadow-md animate-in fade-in-0 zoom-in-95\"\n sideOffset={5}\n align=\"end\"\n >\n {/* User info label */}\n <DropdownMenu.Label className=\"flex items-center gap-2 px-2 py-1.5 font-normal\">\n {user.photo ? (\n <img src={user.photo} alt={user.name} className=\"h-8 w-8 rounded-full object-cover\" />\n ) : (\n <div className=\"flex h-8 w-8 items-center justify-center rounded-full bg-[hsl(var(--muted))] text-xs font-medium\">\n {user.name ? getUserInitials(user.name) : 'U'}\n </div>\n )}\n <div className=\"flex flex-col\">\n <span className=\"text-sm font-medium leading-none\">{user.name}</span>\n {user.email && <span className=\"text-xs text-[hsl(var(--muted-foreground))] leading-none mt-1\">{user.email}</span>}\n </div>\n </DropdownMenu.Label>\n\n <DropdownMenu.Separator className=\"h-px bg-[hsl(var(--border))] my-1\" />\n\n <DropdownMenu.Group>\n {userMenuItems}\n\n {/* Logout */}\n <DropdownMenu.Item\n className=\"relative flex cursor-pointer select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm text-[hsl(var(--destructive))] outline-none transition-colors hover:bg-[hsl(var(--accent))]\"\n onSelect={() => onLogout?.()}\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\"><path d=\"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\"/><polyline points=\"16 17 21 12 16 7\"/><line x1=\"21\" y1=\"12\" x2=\"9\" y2=\"12\"/></svg>\n {logoutLabel}\n </DropdownMenu.Item>\n </DropdownMenu.Group>\n </DropdownMenu.Content>\n </DropdownMenu.Portal>\n </DropdownMenu.Root>\n )}\n </div>\n </header>\n );\n}\n\n// ============================================================\n// AppSidebar\n// ============================================================\nexport interface SidebarNavItem {\n id: string;\n label: string;\n icon?: ReactNode;\n /** 如果有 children 则为分组,点击展开/折叠 */\n children?: SidebarNavItem[];\n}\n\nexport interface SidebarAccount {\n name?: string;\n photo?: string;\n}\n\nexport interface AppSidebarProps {\n /** Logo */\n logo?: AppHeaderLogo;\n /** 导航菜单 */\n navItems: SidebarNavItem[];\n /** 当前路径/激活的 item id */\n activeItemId?: string;\n /** 点击导航项回调 */\n onNavigate?: (itemId: string) => void;\n /** 账户信息 */\n account?: SidebarAccount;\n /** 退出登录回调 */\n onLogout?: () => void;\n /** 退出登录文案 */\n logoutLabel?: string;\n /** 底部额外内容(如版本号) */\n footer?: ReactNode;\n /** 默认展开的分组 id 列表 */\n defaultExpandedGroups?: string[];\n className?: string;\n}\n\nexport function AppSidebar({\n logo,\n navItems,\n activeItemId,\n onNavigate,\n account,\n onLogout,\n logoutLabel = '退出登录',\n footer,\n defaultExpandedGroups,\n className,\n}: AppSidebarProps) {\n return (\n <div\n className={cn(\n 'flex w-[13.7rem] shrink-0 flex-col justify-between gap-[var(--global-spacing,0.75rem)] overflow-y-hidden rounded-xl border border-[hsl(var(--input))] bg-[hsl(var(--background))] p-5',\n className,\n )}\n >\n {/* Logo */}\n {logo && (\n <div className=\"flex shrink-0 cursor-pointer items-center gap-2\" onClick={logo.onClick}>\n <div\n className={cn(\n 'flex h-8 w-8 items-center justify-center rounded-lg overflow-hidden',\n logo.url ? 'bg-transparent' : 'bg-[hsl(var(--primary))] text-[hsl(var(--primary-foreground))]',\n )}\n >\n {logo.url ? (\n <img src={logo.url} alt={logo.title} className=\"h-full w-full object-contain\" />\n ) : (\n <span className=\"text-sm font-bold\">{logo.title.charAt(0)}</span>\n )}\n </div>\n <span className=\"text-lg font-semibold whitespace-nowrap\">{logo.title}</span>\n </div>\n )}\n\n {/* Navigation */}\n <SidebarNavList\n items={navItems}\n activeItemId={activeItemId}\n onNavigate={onNavigate}\n defaultExpandedGroups={defaultExpandedGroups}\n />\n\n {/* Account Section */}\n {(account || footer) && (\n <div className=\"flex flex-col gap-2\">\n {account && (\n <div className=\"flex w-full flex-col gap-2 rounded-lg bg-[hsl(var(--muted))] p-2 shadow-sm\">\n <div className=\"flex w-full items-center justify-between px-3 py-1\">\n <div className=\"flex items-center gap-2\">\n {account.photo ? (\n <img src={account.photo} alt={account.name} className=\"h-5 w-5 rounded-full object-cover\" />\n ) : (\n <div className=\"flex h-5 w-5 items-center justify-center rounded-full bg-[hsl(var(--muted))] text-[10px] font-medium\">\n {account.name ? account.name.charAt(0).toUpperCase() : 'U'}\n </div>\n )}\n <span className=\"text-xs font-medium truncate max-w-[100px]\">{account.name}</span>\n </div>\n {onLogout && (\n <button\n onClick={onLogout}\n className=\"flex items-center justify-center text-[hsl(var(--destructive))] hover:opacity-80 transition-opacity\"\n title={logoutLabel}\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\"><path d=\"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\"/><polyline points=\"16 17 21 12 16 7\"/><line x1=\"21\" y1=\"12\" x2=\"9\" y2=\"12\"/></svg>\n </button>\n )}\n </div>\n </div>\n )}\n {footer}\n </div>\n )}\n </div>\n );\n}\n\n// ============================================================\n// SidebarNavList (internal accordion-style nav)\n// ============================================================\ninterface SidebarNavListProps {\n items: SidebarNavItem[];\n activeItemId?: string;\n onNavigate?: (itemId: string) => void;\n defaultExpandedGroups?: string[];\n}\n\nfunction SidebarNavList({ items, activeItemId, onNavigate, defaultExpandedGroups }: SidebarNavListProps) {\n const [expanded, setExpanded] = useState<Record<string, boolean>>(() => {\n const map: Record<string, boolean> = {};\n (defaultExpandedGroups ?? items.map((i) => i.id)).forEach((id) => { map[id] = true; });\n return map;\n });\n const [localActiveItemId, setLocalActiveItemId] = useState<string | undefined>(activeItemId);\n\n useEffect(() => {\n if (activeItemId !== undefined) {\n setLocalActiveItemId(activeItemId);\n }\n }, [activeItemId]);\n\n const toggle = (id: string) => {\n setExpanded((prev: Record<string, boolean>) => ({ ...prev, [id]: !prev[id] }));\n };\n const resolvedActiveItemId = activeItemId ?? localActiveItemId;\n\n return (\n <div className=\"h-full flex-1 overflow-y-auto\" style={{ scrollbarWidth: 'none', msOverflowStyle: 'none' }}>\n <style>{`.monkeys-sidebar-nav::-webkit-scrollbar { display: none; }`}</style>\n <div className=\"monkeys-sidebar-nav flex w-full flex-col gap-2 text-xs text-[hsl(var(--foreground))]\">\n {items.map((item) => {\n if (item.children && item.children.length > 0) {\n const isExpanded = expanded[item.id] ?? true;\n return (\n <div key={item.id}>\n <NavButton\n icon={item.icon}\n onClick={() => toggle(item.id)}\n postfix={\n <div className=\"flex flex-1 justify-end\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\" height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\"\n className=\"shrink-0 text-[hsl(var(--foreground))] transition-transform duration-200\"\n style={{ transform: isExpanded ? 'rotate(90deg)' : 'rotate(0deg)' }}\n >\n <path d=\"m9 18 6-6-6-6\"/>\n </svg>\n </div>\n }\n >\n {item.label}\n </NavButton>\n {isExpanded && (\n <div className=\"flex flex-col gap-1 mt-1\">\n {item.children.map((child) => (\n <NavButton\n key={child.id}\n active={child.id === resolvedActiveItemId}\n onClick={() => {\n setLocalActiveItemId(child.id);\n onNavigate?.(child.id);\n }}\n >\n {child.label}\n </NavButton>\n ))}\n </div>\n )}\n </div>\n );\n }\n return (\n <NavButton\n key={item.id}\n icon={item.icon}\n active={item.id === resolvedActiveItemId}\n onClick={() => {\n setLocalActiveItemId(item.id);\n onNavigate?.(item.id);\n }}\n >\n {item.label}\n </NavButton>\n );\n })}\n </div>\n </div>\n );\n}\n\n// ============================================================\n// AppLayout\n// ============================================================\nexport interface AppLayoutProps {\n /** header 组件 */\n header?: ReactNode;\n /** sidebar 组件 */\n sidebar?: ReactNode;\n /** 主内容 */\n children: ReactNode;\n /** 是否 flush 布局(无内边距) */\n flush?: boolean;\n className?: string;\n}\n\nexport function AppLayout({ header, sidebar, children, flush = false, className }: AppLayoutProps) {\n return (\n <div className={cn(\n 'flex h-screen flex-col gap-[var(--global-spacing,0.75rem)] overflow-hidden p-[var(--global-spacing,0.75rem)]',\n className,\n )} style={{ backgroundColor: 'hsl(var(--muted))' }}>\n {header ? header : null}\n <div className=\"flex flex-1 gap-[var(--global-spacing,0.75rem)] overflow-hidden min-h-0\">\n {sidebar ? sidebar : null}\n <main className={cn(\n 'flex-1 min-h-0 overflow-hidden rounded-xl border border-[hsl(var(--input))] bg-[hsl(var(--background))]',\n !flush && 'overflow-y-auto',\n )}>\n {flush ? children : (\n <div className=\"h-full overflow-y-auto\">\n {children}\n </div>\n )}\n </main>\n </div>\n </div>\n );\n}\n\n// ============================================================\n// NavigationLayout\n// ============================================================\nexport type NavigationMode = 'sidebar' | 'headbar';\nexport type HeadbarLayoutMode = 'boxed' | 'full-bleed';\nexport type HeadbarMenuRadius = 'default' | 'none' | 'sm' | 'md' | 'lg' | 'xl' | 'full';\nexport type HeadbarNavPosition = 'left' | 'center' | 'right';\n\nexport interface LayoutNavItem {\n id: string;\n label: ReactNode;\n headbarLabel?: ReactNode;\n icon?: ReactNode;\n children?: LayoutNavItem[];\n}\n\ninterface NavigationLayoutAction {\n id: string;\n label: ReactNode;\n title?: string;\n icon?: ReactNode;\n onClick?: () => void;\n}\n\nexport interface HeadbarLayout {\n brandTitle?: ReactNode;\n heightPx?: number;\n layoutMode?: HeadbarLayoutMode;\n menuRadius?: HeadbarMenuRadius;\n navPosition?: HeadbarNavPosition;\n}\n\nexport interface NavigationLayoutProps {\n activeItemId?: string;\n activeRootId?: string;\n allowModeSwitch?: boolean;\n accountMenu?: ReactNode;\n children: ReactNode;\n className?: string;\n collapsedSidebarAccountMenu?: ReactNode;\n collapsedSidebarWidth?: string;\n defaultMode?: NavigationMode;\n defaultSidebarCollapsed?: boolean;\n expandedSidebarWidth?: string;\n expandSidebarLabel?: string;\n flush?: boolean;\n headbarActions?: ReactNode;\n headbarLayout?: HeadbarLayout;\n logo?: AppHeaderLogo;\n mode?: NavigationMode;\n navItems: LayoutNavItem[];\n onModeChange?: (mode: NavigationMode) => void;\n onNavigate?: (itemId: string) => void;\n onSidebarCollapsedChange?: (collapsed: boolean) => void;\n renderHeadbarExtra?: ReactNode;\n collapseSidebarLabel?: string;\n sidebarCollapsed?: boolean;\n sidebarAccountMenu?: ReactNode;\n sidebarFooter?: ReactNode;\n sidebarHeader?: ReactNode;\n switchToHeadbarLabel?: string;\n switchToSidebarLabel?: string;\n}\n\nconst NAVIGATION_LAYOUT_SIDEBAR_EXPANDED_WIDTH = '13.7rem';\nconst NAVIGATION_LAYOUT_SIDEBAR_COLLAPSED_WIDTH = '4.25rem';\nconst NAVIGATION_LAYOUT_TRANSITION_TIMING = 'cubic-bezier(0.22, 1, 0.36, 1)';\nconst NAVIGATION_LAYOUT_HEADBAR_DEFAULT_HEIGHT_PX = 72;\nconst NAVIGATION_LAYOUT_HEADBAR_MIN_HEIGHT_PX = 56;\nconst NAVIGATION_LAYOUT_HEADBAR_MAX_HEIGHT_PX = 120;\nconst NAVIGATION_LAYOUT_HEADBAR_COMPACT_HEIGHT_THRESHOLD_PX = 64;\nconst NAVIGATION_LAYOUT_HEADBAR_BOXED_VERTICAL_PADDING_PX = 12;\nconst NAVIGATION_LAYOUT_HEADBAR_COMPACT_VERTICAL_PADDING_PX = 8;\nconst NAVIGATION_LAYOUT_HEADBAR_LOGO_DEFAULT_SIZE_PX = 44;\nconst NAVIGATION_LAYOUT_HEADBAR_LOGO_COMPACT_SIZE_PX = 36;\nconst NAVIGATION_LAYOUT_DEFAULT_APPEARANCE: BaseAppearance = {\n preset: 'admin',\n density: 'compact',\n radius: 'lg',\n border: 'subtle',\n background: 'soft',\n};\n\nconst NAVIGATION_LAYOUT_MENU_RADIUS_CLASS_MAP: Record<\n Exclude<HeadbarMenuRadius, 'default'>,\n { all: string; left: string; right: string }\n> = {\n none: { all: 'rounded-none', left: '!rounded-none', right: '!rounded-none' },\n sm: { all: 'rounded-sm', left: '!rounded-l-sm !rounded-r-none', right: '!rounded-l-none !rounded-r-sm' },\n md: { all: 'rounded-md', left: '!rounded-l-md !rounded-r-none', right: '!rounded-l-none !rounded-r-md' },\n lg: { all: 'rounded-lg', left: '!rounded-l-lg !rounded-r-none', right: '!rounded-l-none !rounded-r-lg' },\n xl: { all: 'rounded-xl', left: '!rounded-l-xl !rounded-r-none', right: '!rounded-l-none !rounded-r-xl' },\n full: { all: 'rounded-full', left: '!rounded-l-full !rounded-r-none', right: '!rounded-l-none !rounded-r-full' },\n};\n\nfunction clampHeadbarHeight(value?: number) {\n if (typeof value !== 'number' || !Number.isFinite(value)) return NAVIGATION_LAYOUT_HEADBAR_DEFAULT_HEIGHT_PX;\n return Math.min(NAVIGATION_LAYOUT_HEADBAR_MAX_HEIGHT_PX, Math.max(NAVIGATION_LAYOUT_HEADBAR_MIN_HEIGHT_PX, Math.round(value)));\n}\n\nfunction getHeadbarVerticalPaddingPx(heightPx: number) {\n return heightPx <= NAVIGATION_LAYOUT_HEADBAR_COMPACT_HEIGHT_THRESHOLD_PX\n ? NAVIGATION_LAYOUT_HEADBAR_COMPACT_VERTICAL_PADDING_PX\n : NAVIGATION_LAYOUT_HEADBAR_BOXED_VERTICAL_PADDING_PX;\n}\n\nfunction getHeadbarLogoSizePx(heightPx: number) {\n return heightPx <= NAVIGATION_LAYOUT_HEADBAR_COMPACT_HEIGHT_THRESHOLD_PX\n ? NAVIGATION_LAYOUT_HEADBAR_LOGO_COMPACT_SIZE_PX\n : NAVIGATION_LAYOUT_HEADBAR_LOGO_DEFAULT_SIZE_PX;\n}\n\nfunction getHeadbarMenuRadiusClass(\n menuRadius: HeadbarMenuRadius = 'default',\n part: 'all' | 'left' | 'right' = 'all',\n) {\n if (menuRadius === 'default') {\n if (part === 'left') return 'rounded-l-lg rounded-r-none';\n if (part === 'right') return 'rounded-l-none rounded-r-lg';\n return 'rounded-lg';\n }\n return NAVIGATION_LAYOUT_MENU_RADIUS_CLASS_MAP[menuRadius][part];\n}\n\nfunction getHeadbarFrameClass(layoutMode: HeadbarLayoutMode = 'boxed') {\n return layoutMode === 'full-bleed'\n ? 'relative z-40 grid w-full shrink-0 grid-cols-[minmax(0,1fr)_minmax(0,max-content)_minmax(0,1fr)] items-center gap-4 rounded-none border-b border-x-0 border-t-0 border-[hsl(var(--input))] bg-[hsl(var(--background))] p-[var(--global-spacing,0.75rem)]'\n : 'relative z-40 grid w-full shrink-0 grid-cols-[minmax(0,1fr)_minmax(0,max-content)_minmax(0,1fr)] items-center gap-4 rounded-xl border border-[hsl(var(--input))] bg-[hsl(var(--background))] p-[var(--global-spacing,0.75rem)]';\n}\n\nfunction getHeadbarFrameStyle(\n layoutMode: HeadbarLayoutMode = 'boxed',\n heightPx: number,\n): CSSProperties {\n const verticalPaddingPx = getHeadbarVerticalPaddingPx(heightPx);\n const style: CSSProperties = {\n height: `${heightPx}px`,\n minHeight: `${heightPx}px`,\n paddingTop: `${verticalPaddingPx}px`,\n paddingBottom: `${verticalPaddingPx}px`,\n };\n\n if (layoutMode === 'full-bleed') {\n style.marginLeft = 'calc(var(--global-spacing,0.75rem) * -1)';\n style.marginRight = 'calc(var(--global-spacing,0.75rem) * -1)';\n style.marginTop = 'calc(var(--global-spacing,0.75rem) * -1)';\n style.width = 'calc(100% + (var(--global-spacing,0.75rem) * 2))';\n }\n\n return style;\n}\n\nfunction getHeadbarNavClass(navPosition: HeadbarNavPosition = 'center') {\n if (navPosition === 'left') return 'justify-start';\n if (navPosition === 'right') return 'justify-end';\n return 'justify-center';\n}\n\nfunction findNavigationRootId(items: LayoutNavItem[], activeItemId?: string): string | undefined {\n for (const item of items) {\n if (item.id === activeItemId) return item.id;\n if (item.children?.some((child) => child.id === activeItemId)) return item.id;\n }\n return activeItemId;\n}\n\nfunction getNavigationActionTitle(action: NavigationLayoutAction) {\n return action.title || (typeof action.label === 'string' ? action.label : undefined);\n}\n\nfunction NavigationLayoutActionButtons({\n actions,\n compact,\n}: {\n actions: NavigationLayoutAction[];\n compact: boolean;\n}) {\n if (!actions.length) return null;\n\n if (compact) {\n return (\n <div className=\"flex flex-col items-center gap-2\">\n {actions.map((action) => {\n const title = getNavigationActionTitle(action);\n return (\n <BaseTooltip\n key={action.id}\n appearance={NAVIGATION_LAYOUT_DEFAULT_APPEARANCE}\n content={action.label}\n placement=\"right\"\n >\n <BaseButton\n appearance={NAVIGATION_LAYOUT_DEFAULT_APPEARANCE}\n tone=\"muted\"\n iconOnly\n icon={action.icon}\n onClick={action.onClick}\n title={title}\n ariaLabel={title}\n className={cn(\n 'h-10 w-10 rounded-lg border-transparent text-[hsl(var(--muted-foreground))] shadow-none',\n 'hover:-translate-y-0.5 hover:border-[hsl(var(--input))]/80 hover:bg-[hsl(var(--muted))] hover:text-[hsl(var(--foreground))]',\n 'active:translate-y-0 active:scale-[0.96]',\n )}\n />\n </BaseTooltip>\n );\n })}\n </div>\n );\n }\n\n return (\n <div className=\"flex flex-col gap-2\">\n {actions.map((action) => (\n <BaseButton\n key={action.id}\n appearance={NAVIGATION_LAYOUT_DEFAULT_APPEARANCE}\n tone=\"muted\"\n icon={action.icon}\n label={<span className=\"truncate\">{action.label}</span>}\n onClick={action.onClick}\n title={getNavigationActionTitle(action)}\n className={cn(\n 'h-9 w-full justify-start gap-2.5 rounded-lg border-transparent px-3 text-left text-[13px] text-[hsl(var(--muted-foreground))] shadow-none',\n 'hover:-translate-y-0.5 hover:border-[hsl(var(--input))]/80 hover:bg-[hsl(var(--muted))]/70 hover:text-[hsl(var(--foreground))]',\n 'active:translate-y-0 active:scale-[0.985]',\n )}\n />\n ))}\n </div>\n );\n}\n\nfunction SidebarNavigationList({\n activeItemId,\n items,\n onNavigate,\n revealRequest,\n}: {\n activeItemId?: string;\n items: LayoutNavItem[];\n onNavigate?: (itemId: string) => void;\n revealRequest?: { id: string; nonce: number } | null;\n}) {\n const navRef = useRef<HTMLDivElement | null>(null);\n const [expandedByRoot, setExpandedByRoot] = useState<Record<string, boolean>>({});\n\n const toggleRoot = (id: string) => {\n setExpandedByRoot((current) => ({\n ...current,\n [id]: !current[id],\n }));\n };\n\n useEffect(() => {\n if (!revealRequest) return;\n setExpandedByRoot((current) => ({\n ...current,\n [revealRequest.id]: true,\n }));\n\n const frameId = window.requestAnimationFrame(() => {\n const targetElement = navRef.current?.querySelector(\n `[data-navigation-sidebar-root-id=\"${CSS.escape(revealRequest.id)}\"]`,\n );\n if (targetElement instanceof HTMLElement) {\n targetElement.scrollIntoView({ behavior: 'auto', block: 'nearest', inline: 'nearest' });\n }\n });\n\n return () => window.cancelAnimationFrame(frameId);\n }, [revealRequest]);\n\n return (\n <div className=\"h-full flex-1 overflow-y-auto\" style={{ scrollbarWidth: 'none', msOverflowStyle: 'none' }}>\n <style>{`.monkeys-navigation-sidebar-nav::-webkit-scrollbar { display: none; }`}</style>\n <div\n ref={navRef}\n className=\"monkeys-navigation-sidebar-nav flex w-full flex-col gap-2 text-xs text-[hsl(var(--foreground))]\"\n >\n {items.map((item) => {\n const isGroup = Boolean(item.children?.length);\n const isExpanded = Boolean(expandedByRoot[item.id]);\n const isActive = activeItemId === item.id;\n\n if (isGroup) {\n return (\n <div key={item.id} data-navigation-sidebar-root-id={item.id}>\n <NavButton\n icon={item.icon}\n onClick={() => toggleRoot(item.id)}\n postfix={\n <div className=\"flex flex-1 justify-end\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"shrink-0 text-[hsl(var(--foreground))] transition-transform duration-200\"\n style={{ transform: isExpanded ? 'rotate(90deg)' : 'rotate(0deg)' }}\n >\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n </div>\n }\n >\n {item.label}\n </NavButton>\n {isExpanded ? (\n <div className=\"mt-1 flex flex-col gap-1\">\n {item.children?.map((child) => (\n <NavButton\n key={child.id}\n active={activeItemId === child.id}\n onClick={() => onNavigate?.(child.id)}\n >\n {child.label}\n </NavButton>\n ))}\n </div>\n ) : null}\n </div>\n );\n }\n\n return (\n <div key={item.id} data-navigation-sidebar-root-id={item.id}>\n <NavButton active={isActive} icon={item.icon} onClick={() => onNavigate?.(item.id)}>\n {item.label}\n </NavButton>\n </div>\n );\n })}\n </div>\n </div>\n );\n}\n\nfunction SidebarBrand({\n collapsed,\n logo,\n title,\n}: {\n collapsed?: boolean;\n logo?: AppHeaderLogo;\n title?: ReactNode;\n}) {\n if (!logo) return null;\n\n const brandTitle = title ?? logo.title;\n const logoMark = (\n <div\n className={cn(\n 'flex h-9 w-9 shrink-0 items-center justify-center overflow-hidden rounded-lg',\n logo.url\n ? 'bg-transparent'\n : 'bg-[hsl(var(--primary))] text-[hsl(var(--primary-foreground))]',\n )}\n >\n {logo.url ? (\n <img src={logo.url} alt={logo.title} className=\"h-full w-full object-contain\" />\n ) : (\n <span className=\"text-sm font-bold\">{logo.title.charAt(0)}</span>\n )}\n </div>\n );\n\n if (collapsed) {\n return (\n <BaseTooltip\n appearance={NAVIGATION_LAYOUT_DEFAULT_APPEARANCE}\n content={brandTitle}\n placement=\"right\"\n >\n <BaseButton\n appearance={NAVIGATION_LAYOUT_DEFAULT_APPEARANCE}\n ariaLabel={typeof brandTitle === 'string' ? brandTitle : logo.title}\n className=\"h-10 w-10 rounded-lg border-transparent bg-transparent p-0 shadow-none hover:bg-[hsl(var(--muted))]/60\"\n icon={logoMark}\n iconOnly\n onClick={logo.onClick}\n title={typeof brandTitle === 'string' ? brandTitle : logo.title}\n tone=\"muted\"\n />\n </BaseTooltip>\n );\n }\n\n return (\n <BaseButton\n appearance={NAVIGATION_LAYOUT_DEFAULT_APPEARANCE}\n ariaLabel={logo.title}\n className=\"h-auto w-full justify-start gap-3 border-transparent bg-transparent p-0 text-left shadow-none hover:bg-transparent\"\n classNames={{ icon: 'h-9 w-9' }}\n icon={logoMark}\n label={\n <span className=\"min-w-0 truncate text-sm font-semibold text-[hsl(var(--foreground))]\">\n {brandTitle}\n </span>\n }\n onClick={logo.onClick}\n title={typeof brandTitle === 'string' ? brandTitle : logo.title}\n tone=\"muted\"\n />\n );\n}\n\nfunction Sidebar({\n accountMenu,\n activeItemId,\n actions = [],\n collapsed,\n collapsedAccountMenu,\n footer,\n header,\n items,\n logo,\n onCollapsedChange,\n onNavigate,\n onRevealRoot,\n revealRequest,\n title,\n}: {\n accountMenu?: ReactNode;\n activeItemId?: string;\n actions?: NavigationLayoutAction[];\n collapsed?: boolean;\n collapsedAccountMenu?: ReactNode;\n footer?: ReactNode;\n header?: ReactNode;\n items: LayoutNavItem[];\n logo?: AppHeaderLogo;\n onCollapsedChange?: (collapsed: boolean) => void;\n onNavigate?: (itemId: string) => void;\n onRevealRoot?: (rootId: string) => void;\n revealRequest?: { id: string; nonce: number } | null;\n title?: ReactNode;\n}) {\n if (collapsed) {\n const activeRootId = findNavigationRootId(items, activeItemId);\n\n return (\n <div className=\"flex h-full min-h-0 w-full flex-col rounded-xl border border-[hsl(var(--input))] bg-[hsl(var(--background))] p-2 shadow-sm\">\n <div className=\"mb-3 flex shrink-0 justify-center\">\n {header ?? <SidebarBrand collapsed logo={logo} title={title} />}\n </div>\n <div\n className=\"flex min-h-0 flex-1 flex-col items-center gap-2 overflow-y-auto pb-3\"\n style={{ scrollbarWidth: 'none', msOverflowStyle: 'none' }}\n >\n {items.map((item) => {\n const isActive = activeRootId === item.id;\n return (\n <BaseTooltip\n key={item.id}\n appearance={NAVIGATION_LAYOUT_DEFAULT_APPEARANCE}\n content={item.label}\n placement=\"right\"\n >\n <BaseButton\n appearance={NAVIGATION_LAYOUT_DEFAULT_APPEARANCE}\n tone=\"muted\"\n active={isActive}\n iconOnly\n icon={item.icon}\n onClick={() => {\n onRevealRoot?.(item.id);\n onCollapsedChange?.(false);\n if (item.children?.length) return;\n onNavigate?.(item.id);\n }}\n title={typeof item.label === 'string' ? item.label : undefined}\n ariaLabel={typeof item.label === 'string' ? item.label : item.id}\n className={cn(\n 'h-10 w-10 rounded-lg border text-[hsl(var(--muted-foreground))] shadow-none',\n 'hover:-translate-y-0.5 active:translate-y-0 active:scale-[0.96]',\n isActive\n ? 'border-[hsl(var(--input))] bg-[hsl(var(--muted))] text-[hsl(var(--foreground))] shadow-sm'\n : 'border-transparent hover:border-[hsl(var(--input))]/80 hover:bg-[hsl(var(--muted))]/70 hover:text-[hsl(var(--foreground))]',\n )}\n />\n </BaseTooltip>\n );\n })}\n </div>\n <div className=\"-mx-2 mt-2 border-t border-[hsl(var(--input))] bg-[hsl(var(--background))] px-2 pt-2.5 pb-0.5\">\n <NavigationLayoutActionButtons actions={actions} compact />\n {collapsedAccountMenu ? (\n <div className=\"mt-2 flex justify-center border-t border-[hsl(var(--input))] pt-2\">\n {collapsedAccountMenu}\n </div>\n ) : null}\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"flex h-full min-h-0 w-full flex-col justify-between gap-0 overflow-y-hidden rounded-xl border border-[hsl(var(--input))] bg-[hsl(var(--background))] px-5 pt-5 pb-1.5\">\n <div className=\"mb-4 shrink-0\">\n {header ?? <SidebarBrand logo={logo} title={title} />}\n </div>\n <SidebarNavigationList\n activeItemId={activeItemId}\n items={items}\n onNavigate={onNavigate}\n revealRequest={revealRequest}\n />\n <div className=\"-mx-5 mt-2 border-t border-[hsl(var(--input))] bg-[hsl(var(--background))] px-4 pt-2.5 pb-1\">\n <NavigationLayoutActionButtons actions={actions} compact={false} />\n {footer}\n {accountMenu ? (\n <div className=\"mt-2 border-t border-[hsl(var(--input))] pt-2\">\n {accountMenu}\n </div>\n ) : null}\n </div>\n </div>\n );\n}\n\nfunction HeadbarChevronIcon({ open }: { open: boolean }) {\n return (\n <svg\n aria-hidden=\"true\"\n className={cn('h-4 w-4 shrink-0 transition-transform duration-200', open && 'rotate-180')}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n );\n}\n\nfunction HeadbarNavMenuItem({\n activeItemId,\n isActive,\n item,\n label,\n menuButtonRadiusClass,\n menuContentRadiusClass,\n menuItemRadiusClass,\n onNavigate,\n}: {\n activeItemId?: string;\n isActive: boolean;\n item: LayoutNavItem;\n label: ReactNode;\n menuButtonRadiusClass: string;\n menuContentRadiusClass: string;\n menuItemRadiusClass: string;\n onNavigate?: (itemId: string) => void;\n}) {\n const [open, setOpen] = useState(false);\n const closeTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const clearCloseTimer = () => {\n if (!closeTimerRef.current) return;\n clearTimeout(closeTimerRef.current);\n closeTimerRef.current = null;\n };\n\n const openMenu = () => {\n clearCloseTimer();\n setOpen(true);\n };\n\n const scheduleCloseMenu = () => {\n clearCloseTimer();\n closeTimerRef.current = setTimeout(() => {\n setOpen(false);\n closeTimerRef.current = null;\n }, 120);\n };\n\n useEffect(() => clearCloseTimer, []);\n\n return (\n <DropdownMenu.Root modal={false} open={open} onOpenChange={setOpen}>\n <DropdownMenu.Trigger asChild>\n <BaseButton\n appearance={NAVIGATION_LAYOUT_DEFAULT_APPEARANCE}\n tone=\"muted\"\n active={isActive || open}\n icon={item.icon}\n endIcon={<HeadbarChevronIcon open={open} />}\n label={<span className=\"truncate whitespace-nowrap\">{label}</span>}\n onClick={() => setOpen(true)}\n onMouseEnter={openMenu}\n onMouseLeave={scheduleCloseMenu}\n className={cn(\n 'h-9 max-w-[12rem] border-transparent !bg-transparent px-3 text-sm font-medium shadow-none',\n menuButtonRadiusClass,\n isActive || open\n ? '!bg-[hsl(var(--muted))] text-[hsl(var(--foreground))]'\n : 'text-[hsl(var(--muted-foreground))] hover:!bg-[hsl(var(--muted))]/60 hover:text-[hsl(var(--foreground))]',\n )}\n />\n </DropdownMenu.Trigger>\n <DropdownMenu.Portal>\n <DropdownMenu.Content\n align=\"start\"\n sideOffset={5}\n onCloseAutoFocus={(event) => event.preventDefault()}\n onMouseEnter={openMenu}\n onMouseLeave={scheduleCloseMenu}\n className={cn(\n 'z-50 min-w-56 border border-[hsl(var(--border))] bg-[hsl(var(--popover))] p-1.5 text-[hsl(var(--popover-foreground))] shadow-md animate-in fade-in-0 zoom-in-95',\n menuContentRadiusClass,\n )}\n >\n {item.children?.map((child) => (\n <DropdownMenu.Item\n key={child.id}\n className={cn(\n 'relative flex cursor-pointer select-none items-center gap-2.5 px-3 py-2 text-sm outline-none transition-colors hover:bg-[hsl(var(--accent))]',\n menuItemRadiusClass,\n child.id === activeItemId && 'bg-[hsl(var(--muted))] text-[hsl(var(--foreground))]',\n )}\n onSelect={() => {\n setOpen(false);\n onNavigate?.(child.id);\n }}\n >\n {child.icon ? (\n <span className=\"inline-flex h-4 w-4 shrink-0 items-center justify-center text-[hsl(var(--muted-foreground))]\">\n {child.icon}\n </span>\n ) : null}\n <span className=\"min-w-0 truncate\">{child.headbarLabel ?? child.label}</span>\n </DropdownMenu.Item>\n ))}\n </DropdownMenu.Content>\n </DropdownMenu.Portal>\n </DropdownMenu.Root>\n );\n}\n\nfunction HeadbarNav({\n activeItemId,\n activeRootId,\n items,\n menuRadius,\n onNavigate,\n}: {\n activeItemId?: string;\n activeRootId?: string;\n items: LayoutNavItem[];\n menuRadius: HeadbarMenuRadius;\n onNavigate?: (itemId: string) => void;\n}) {\n const menuButtonRadiusClass = getHeadbarMenuRadiusClass(menuRadius);\n const menuContentRadiusClass = getHeadbarMenuRadiusClass(menuRadius);\n const menuItemRadiusClass = getHeadbarMenuRadiusClass(menuRadius);\n\n return (\n <div className=\"flex min-w-0 items-center gap-1\">\n {items.map((item) => {\n const isActive = activeRootId === item.id || activeItemId === item.id;\n const label = item.headbarLabel ?? item.label;\n\n if (item.children?.length) {\n return (\n <HeadbarNavMenuItem\n key={item.id}\n activeItemId={activeItemId}\n isActive={isActive}\n item={item}\n label={label}\n menuButtonRadiusClass={menuButtonRadiusClass}\n menuContentRadiusClass={menuContentRadiusClass}\n menuItemRadiusClass={menuItemRadiusClass}\n onNavigate={onNavigate}\n />\n );\n }\n\n return (\n <BaseButton\n key={item.id}\n appearance={NAVIGATION_LAYOUT_DEFAULT_APPEARANCE}\n tone=\"muted\"\n active={isActive}\n icon={item.icon}\n label={<span className=\"truncate whitespace-nowrap\">{label}</span>}\n onClick={() => onNavigate?.(item.id)}\n className={cn(\n 'h-9 max-w-[12rem] border-transparent !bg-transparent px-3 text-sm font-medium shadow-none',\n menuButtonRadiusClass,\n isActive\n ? '!bg-[hsl(var(--muted))] text-[hsl(var(--foreground))]'\n : 'text-[hsl(var(--muted-foreground))] hover:!bg-[hsl(var(--muted))]/60 hover:text-[hsl(var(--foreground))]',\n )}\n />\n );\n })}\n </div>\n );\n}\n\nfunction Headbar({\n activeItemId,\n activeRootId,\n actions,\n accountMenu,\n extra,\n layout,\n logo,\n navItems,\n onNavigate,\n}: {\n activeItemId?: string;\n activeRootId?: string;\n actions?: ReactNode;\n accountMenu?: ReactNode;\n extra?: ReactNode;\n layout?: HeadbarLayout;\n logo?: AppHeaderLogo;\n navItems: LayoutNavItem[];\n onNavigate?: (itemId: string) => void;\n}) {\n const heightPx = clampHeadbarHeight(layout?.heightPx);\n const layoutMode = layout?.layoutMode ?? 'boxed';\n const menuRadius = layout?.menuRadius ?? 'default';\n const logoHeightPx = getHeadbarLogoSizePx(heightPx);\n const frameStyle = getHeadbarFrameStyle(layoutMode, heightPx);\n const showBrandTitle = Boolean(layout?.brandTitle);\n\n return (\n <header className={getHeadbarFrameClass(layoutMode)} style={frameStyle}>\n <div className=\"flex min-w-0 items-center justify-start\">\n {logo ? (\n <BaseButton\n appearance={NAVIGATION_LAYOUT_DEFAULT_APPEARANCE}\n tone=\"muted\"\n icon={\n <div\n className={cn(\n 'flex items-center justify-center overflow-hidden rounded-lg',\n logo.url\n ? 'w-auto max-w-[min(22rem,30vw)] bg-transparent'\n : 'bg-[hsl(var(--primary))] text-[hsl(var(--primary-foreground))]',\n )}\n style={logo.url ? { height: logoHeightPx } : { width: logoHeightPx, height: logoHeightPx }}\n >\n {logo.url ? (\n <img src={logo.url} alt={logo.title} className=\"block h-full w-auto object-contain\" />\n ) : (\n <span className=\"text-base font-bold\">{logo.title.charAt(0)}</span>\n )}\n </div>\n }\n label={\n showBrandTitle ? (\n <span className=\"truncate whitespace-nowrap text-base font-medium text-[hsl(var(--foreground))]\">\n {layout?.brandTitle}\n </span>\n ) : null\n }\n ariaLabel={logo.title}\n title={logo.title}\n className=\"h-auto min-w-0 justify-start border-transparent bg-transparent p-0 shadow-none hover:bg-transparent\"\n classNames={logo.url ? { icon: '!h-auto !w-auto shrink-0' } : undefined}\n onClick={logo.onClick}\n />\n ) : null}\n </div>\n\n <div className={cn('flex min-w-0 items-center', getHeadbarNavClass(layout?.navPosition))}>\n <div className=\"no-scrollbar flex max-w-full min-w-0 items-center overflow-x-auto overscroll-x-contain\">\n <HeadbarNav\n activeItemId={activeItemId}\n activeRootId={activeRootId}\n items={navItems}\n menuRadius={menuRadius}\n onNavigate={onNavigate}\n />\n </div>\n </div>\n\n <div className=\"flex min-w-0 items-center justify-end gap-3\">\n {actions}\n {extra}\n {accountMenu}\n </div>\n </header>\n );\n}\n\nexport function NavigationLayout({\n activeItemId,\n activeRootId,\n allowModeSwitch = false,\n accountMenu,\n children,\n className,\n collapsedSidebarAccountMenu,\n collapsedSidebarWidth = NAVIGATION_LAYOUT_SIDEBAR_COLLAPSED_WIDTH,\n defaultMode = 'headbar',\n defaultSidebarCollapsed = false,\n expandedSidebarWidth = NAVIGATION_LAYOUT_SIDEBAR_EXPANDED_WIDTH,\n expandSidebarLabel = 'Expand sidebar',\n flush = false,\n headbarActions,\n headbarLayout,\n logo,\n mode,\n navItems,\n onModeChange,\n onNavigate,\n onSidebarCollapsedChange,\n renderHeadbarExtra,\n collapseSidebarLabel = 'Collapse sidebar',\n sidebarCollapsed: controlledSidebarCollapsed,\n sidebarAccountMenu,\n sidebarFooter,\n sidebarHeader,\n switchToHeadbarLabel = 'Switch to headbar',\n switchToSidebarLabel = 'Switch to sidebar',\n}: NavigationLayoutProps) {\n const [uncontrolledMode, setUncontrolledMode] = useState<NavigationMode>(defaultMode);\n const [uncontrolledSidebarCollapsed, setUncontrolledSidebarCollapsed] = useState(defaultSidebarCollapsed);\n const [revealRequest, setRevealRequest] = useState<{ id: string; nonce: number } | null>(null);\n const isModeControlled = mode !== undefined;\n const isSidebarCollapsedControlled = controlledSidebarCollapsed !== undefined;\n const navigationMode = isModeControlled ? mode : uncontrolledMode;\n const sidebarCollapsed = isSidebarCollapsedControlled\n ? controlledSidebarCollapsed\n : uncontrolledSidebarCollapsed;\n const isHeadbarMode = navigationMode === 'headbar';\n const sidebarWidth = sidebarCollapsed ? collapsedSidebarWidth : expandedSidebarWidth;\n\n useEffect(() => {\n if (!isModeControlled) {\n setUncontrolledMode(defaultMode);\n }\n }, [defaultMode, isModeControlled]);\n\n useEffect(() => {\n if (!isSidebarCollapsedControlled) {\n setUncontrolledSidebarCollapsed(defaultSidebarCollapsed);\n }\n }, [defaultSidebarCollapsed, isSidebarCollapsedControlled]);\n\n const setNavigationMode = (nextMode: NavigationMode) => {\n if (!isModeControlled) {\n setUncontrolledMode(nextMode);\n }\n onModeChange?.(nextMode);\n };\n\n const setCollapsed = (collapsed: boolean) => {\n if (!isSidebarCollapsedControlled) {\n setUncontrolledSidebarCollapsed(collapsed);\n }\n onSidebarCollapsedChange?.(collapsed);\n };\n\n const navigationActions: NavigationLayoutAction[] = [];\n if (allowModeSwitch) {\n navigationActions.push({\n id: 'toggle-headbar',\n label: switchToHeadbarLabel,\n onClick: () => setNavigationMode('headbar'),\n icon: (\n <svg xmlns=\"http://www.w3.org/2000/svg\" className=\"h-[18px] w-[18px] rotate-180\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.8\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <rect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\" />\n <path d=\"M3 9h18\" />\n </svg>\n ),\n });\n }\n navigationActions.push({\n id: 'toggle-sidebar',\n label: sidebarCollapsed ? expandSidebarLabel : collapseSidebarLabel,\n onClick: () => setCollapsed(!sidebarCollapsed),\n icon: (\n <svg xmlns=\"http://www.w3.org/2000/svg\" className=\"h-[18px] w-[18px]\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.8\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <rect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\" />\n <path d=\"M9 3v18\" />\n <path d={sidebarCollapsed ? 'm14 9 3 3-3 3' : 'm16 15-3-3 3-3'} />\n </svg>\n ),\n });\n\n const sidebar = isHeadbarMode ? null : (\n <div\n className={cn(\n 'relative h-full min-h-0 shrink-0 transition-[width] duration-260',\n sidebarCollapsed ? 'z-20 overflow-visible' : 'z-10 overflow-hidden',\n )}\n style={{ width: sidebarWidth, transitionTimingFunction: NAVIGATION_LAYOUT_TRANSITION_TIMING }}\n >\n <Sidebar\n accountMenu={sidebarAccountMenu ?? accountMenu}\n activeItemId={activeItemId}\n actions={navigationActions}\n collapsed={sidebarCollapsed}\n collapsedAccountMenu={collapsedSidebarAccountMenu ?? accountMenu}\n footer={sidebarFooter}\n header={sidebarHeader}\n items={navItems}\n logo={logo}\n onCollapsedChange={setCollapsed}\n onNavigate={onNavigate}\n onRevealRoot={(rootId) => setRevealRequest((prev) => ({ id: rootId, nonce: (prev?.nonce ?? 0) + 1 }))}\n revealRequest={revealRequest}\n title={headbarLayout?.brandTitle}\n />\n </div>\n );\n\n const header = isHeadbarMode ? (\n <Headbar\n activeItemId={activeItemId}\n activeRootId={activeRootId ?? findNavigationRootId(navItems, activeItemId)}\n actions={\n allowModeSwitch ? (\n <>\n {headbarActions}\n <BaseButton\n appearance={NAVIGATION_LAYOUT_DEFAULT_APPEARANCE}\n tone=\"muted\"\n icon={\n <svg xmlns=\"http://www.w3.org/2000/svg\" className=\"h-4 w-4 shrink-0\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.8\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <rect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\" />\n <path d=\"M9 3v18\" />\n <path d=\"m14 9 3 3-3 3\" />\n </svg>\n }\n label={<span className=\"truncate whitespace-nowrap\">{switchToSidebarLabel}</span>}\n onClick={() => setNavigationMode('sidebar')}\n className={cn(\n 'h-auto min-w-0 shrink px-3 py-2 text-sm font-medium text-[hsl(var(--muted-foreground))] shadow-none hover:border-[hsl(var(--input))]/70 hover:bg-[hsl(var(--muted))]/60 hover:text-[hsl(var(--foreground))]',\n getHeadbarMenuRadiusClass(headbarLayout?.menuRadius),\n )}\n />\n </>\n ) : headbarActions\n }\n accountMenu={accountMenu}\n extra={renderHeadbarExtra}\n layout={headbarLayout}\n logo={logo}\n navItems={navItems}\n onNavigate={onNavigate}\n />\n ) : null;\n\n return (\n <AppLayout header={header} sidebar={sidebar} flush={flush} className={className}>\n {children}\n </AppLayout>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/base/utils.ts","../../../src/components/base/theme.ts","../../../src/components/base/BaseAvatar.tsx","../../../src/components/base/BaseButton.tsx","../../../src/components/base/BaseCheckbox.tsx","../../../src/components/base/BaseInput.tsx","../../../src/components/base/BaseMultiSelect.tsx","../../../src/components/base/BaseSelect.tsx","../../../src/components/base/BaseSwitch.tsx","../../../src/components/base/BaseTable.tsx","../../../src/components/base/BaseTextarea.tsx","../../../src/components/base/BaseTooltip.tsx","../../../src/components/layout/UserAccountMenu.tsx","../../../src/components/layout/index.tsx"],"names":["jsxs","jsx","forwardRef","BaseButton","BaseCheckbox","useRef","useState","useEffect","BaseInput","BaseMultiSelect","useId","useMemo","getNextEnabledIndex","BaseSelect","BaseSwitch","createContext","useContext","BaseTableHead","BaseTextarea","useLayoutEffect","createPortal","getInitials","DropdownMenu","cn","Fragment","DropdownMenu2"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEO,SAAS,MAAM,KAAA,EAAiD;AACrE,EAAA,OAAO,KAAA,CAAM,MAAA,CAAO,OAAO,CAAA,CAAE,KAAK,GAAG,CAAA;AACvC;AAEO,SAAS,kBAAkB,IAAA,EAAiB;AACjD,EAAA,OAAO,IAAA,KAAS,MAAA,IAAa,IAAA,KAAS,IAAA,IAAQ,OAAO,IAAA,KAAS,SAAA;AAChE;;;ACQA,IAAM,cAA+B,EAAC;AAEtC,IAAM,UAAA,GACJ,sEAAA;AAEF,IAAM,iBAAA,GACJ,0EAAA;AAEF,IAAM,eAAA,GACJ,gFAAA;AAEF,IAAM,SAAA,GAA2B;AAAA,EAC/B,UAAA,EACE,EAAA;AAAA,IACE,0IAAA;AAAA,IACA,6CAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,aAAA,EACE,gEAAA;AAAA,EACF,aAAA,EACE,kEAAA;AAAA,EACF,aAAA,EACE,kFAAA;AAAA,EACF,aAAA,EACE,0EAAA;AAAA,EACF,YAAA,EACE,kFAAA;AAAA,EACF,WAAA,EACE,4FAAA;AAAA,EACF,YAAA,EAAc,8CAAA;AAAA,EACd,cAAA,EAAgB,gCAAA;AAAA,EAChB,cAAA,EAAgB,UAAA;AAAA,EAChB,UAAA,EACE,0DAAA;AAAA,EACF,WAAA,EAAa,kBAAA;AAAA,EACb,SAAA,EACE,EAAA;AAAA,IACE,iGAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,YAAA,EAAc,gDAAA;AAAA,EACd,YAAA,EAAc,8CAAA;AAAA,EACd,YAAA,EAAc,0DAAA;AAAA,EACd,YAAA,EAAc,oDAAA;AAAA,EACd,WAAA,EAAa,0DAAA;AAAA,EACb,UAAA,EAAY,iDAAA;AAAA,EACZ,SAAA,EAAW,8DAAA;AAAA,EACX,UAAA,EAAY,kBAAA;AAAA,EACZ,SAAA,EACE,EAAA;AAAA,IACE,uGAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,gBAAA,EACE,gCAAA;AAAA,EACF,aAAA,EAAe,gCAAA;AAAA,EACf,aAAA,EAAe,gCAAA;AAAA,EACf,UAAA,EACE,0BAAA;AAAA,EACF,WAAA,EAAa,aAAA;AAAA,EACb,UAAA,EAAY,qEAAA;AAAA,EACZ,gBAAA,EAAkB,8CAAA;AAAA,EAClB,SAAA,EAAW,2CAAA;AAAA,EACX,mBAAA,EAAqB,MAAA;AAAA,EACrB,WAAA,EAAa,8CAAA;AAAA,EACb,SAAA,EACE,EAAA;AAAA,IACE,4HAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,SAAA,EACE,wIAAA;AAAA,EACF,UAAA,EAAY,uCAAA;AAAA,EACZ,gBAAA,EAAkB,uDAAA;AAAA,EAClB,YAAA,EAAc,uDAAA;AAAA,EACd,cAAA,EAAgB,sBAAA;AAAA,EAChB,SAAA,EAAW,oBAAA;AAAA,EACX,aAAA,EAAe,iDAAA;AAAA,EACf,UAAA,EAAY,0DAAA;AAAA,EACZ,aAAA,EAAe,kBAAA;AAAA,EACf,gBAAA,EAAkB,yCAAA;AAAA,EAClB,YAAA,EAAc,yCAAA;AAAA,EACd,YAAA,EAAc,SAAA;AAAA,EACd,cAAA,EACE,EAAA;AAAA,IACE,iIAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,WAAA,EACE,wIAAA;AAAA,EACF,YAAA,EAAc,KAAA;AAAA,EACd,eAAA,EAAiB,kCAAA;AAAA,EACjB,aAAA,EAAe,sEAAA;AAAA,EACf,WAAA,EACE,yGAAA;AAAA,EACF,eAAA,EACE,6EAAA;AAAA,EACF,cAAA,EACE,0DAAA;AAAA,EACF,eAAA,EAAiB,gCAAA;AAAA,EACjB,eAAA,EAAiB,aAAA;AAAA,EACjB,aAAA,EACE,EAAA;AAAA,IACE,wIAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,UAAA,EACE,oRAAA;AAAA,EACF,YAAA,EACE,EAAA;AAAA,IACE,oHAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,kBAAA,EAAoB,kCAAA;AAAA,EACpB,oBAAA,EAAsB,4BAAA;AAAA,EACtB,oBAAA,EAAsB,gCAAA;AAAA,EACtB,iBAAA,EAAmB,uBAAA;AAAA,EACnB,YAAA,EAAc,SAAA;AAAA,EACd,UAAA,EAAY,sDAAA;AAAA,EACZ,WAAA,EAAa,SAAA;AAAA,EACb,WAAA,EACE,EAAA;AAAA,IACE,sIAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,WAAA,EACE,EAAA;AAAA,IACE,4DAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,aAAA,EAAe,yDAAA;AAAA,EACf,cAAA,EAAgB,gCAAA;AAAA,EAChB,aAAA,EAAe,oBAAA;AAAA,EACf,WAAA,EAAa,kDAAA;AAAA,EACb,iBAAA,EAAmB,yCAAA;AAAA,EACnB,YAAA,EAAc,sDAAA;AAAA,EACd,aAAA,EAAe,SAAA;AAAA,EACf,WAAA,EACE,EAAA;AAAA,IACE,wJAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,kBAAA,EAAoB,sDAAA;AAAA,EACpB,kBAAA,EAAoB,uBAAA;AAAA,EACpB,iBAAA,EAAmB,oCAAA;AAAA,EACnB,gBAAA,EAAkB,gCAAA;AAAA,EAClB,eAAA,EAAiB,oBAAA;AAAA,EACjB,aAAA,EAAe,kDAAA;AAAA,EACf,mBAAA,EAAqB,yCAAA;AAAA,EACrB,cAAA,EAAgB,oBAAA;AAAA,EAChB,WAAA,EACE,EAAA;AAAA,IACE,yHAAA;AAAA,IACA,iBAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,UAAA,EAAY,SAAA;AAAA,EACZ,WAAA,EACE,EAAA;AAAA,IACE,6JAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,kBAAA,EAAoB,iCAAA;AAAA,EACpB,cAAA,EAAgB,iCAAA;AAAA,EAChB,mBAAA,EAAqB,oDAAA;AAAA,EACrB,YAAA,EAAc,oBAAA;AAAA,EACd,UAAA,EAAY,kDAAA;AAAA,EACZ,gBAAA,EAAkB,yCAAA;AAAA,EAClB,UAAA,EAAY,UAAA;AAAA,EACZ,aAAA,EAAe,EAAA;AAAA,EACf,qBAAA,EAAuB,gCAAA;AAAA,EACvB,aAAA,EACE,+IAAA;AAAA,EACF,aAAA,EACE,iEAAA;AAAA,EACF,WAAA,EACE,EAAA;AAAA,IACE,mKAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,YAAA,EAAc,wDAAA;AAAA,EACd,WAAA,EAAa,gEAAA;AAAA,EACb,iBAAA,EAAmB,yCAAA;AAAA,EACnB,UAAA,EAAY,iEAAA;AAAA,EACZ,YAAA,EACE,4FAAA;AAAA,EACF,WAAA,EACE,EAAA;AAAA,IACE,8OAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,YAAA,EAAc,8BAAA;AAAA,EACd,eAAA,EAAiB,EAAA;AAAA,EACjB,uBAAA,EAAyB,gCAAA;AAAA,EACzB,YAAA,EACE,sPAAA;AAAA,EACF,eAAA,EAAiB,uCAAA;AAAA,EACjB,eAAA,EAAiB,mBAAA;AAAA,EACjB,aAAA,EACE,uFAAA;AAAA,EACF,iBAAA,EAAmB,wBAAA;AAAA,EACnB,YAAA,EACE,EAAA;AAAA,IACE,0MAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,kBAAA,EAAoB,0CAAA;AAAA,EACpB,oBAAA,EAAsB,qDAAA;AAAA,EACtB,gBAAA,EAAkB,0DAAA;AAAA,EAClB,mBAAA,EAAqB,6BAAA;AAAA,EACrB,iBAAA,EAAmB,kBAAA;AAAA,EACnB,uBAAA,EACE,0DAAA;AAAA,EACF,oBAAA,EACE,yDAAA;AAAA,EACF,WAAA,EAAa,8BAAA;AAAA,EACb,cAAA,EAAgB,qBAAA;AAAA,EAChB,cAAA,EACE,kPAAA;AAAA,EACF,UAAA,EACE,EAAA;AAAA,IACE,wDAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,aAAA,EAAe,6CAAA;AAAA,EACf,aAAA,EAAe,8CAAA;AAAA,EACf,aAAA,EACE,0DAAA;AAAA,EACF,aAAA,EAAe,oDAAA;AAAA,EACf,YAAA,EAAc,0DAAA;AAAA,EACd,WAAA,EAAa,oDAAA;AAAA,EACb,UAAA,EACE,4GAAA;AAAA,EACF,WAAA,EAAa,yBAAA;AAAA,EACb,iBAAA,EAAmB,WAAA;AAAA,EACnB,aAAA,EAAe,wCAAA;AAAA,EACf,WAAA,EAAa,EAAA,CAAG,2BAAA,EAA6B,UAAU,CAAA;AAAA,EACvD,YAAA,EACE,gIAAA;AAAA,EACF,iBAAA,EACE,mJAAA;AAAA,EACF,oBAAA,EAAsB,oBAAA;AAAA,EACtB,oBAAA,EACE,yEAAA;AAAA,EACF,kBAAA,EAAoB,mDAAA;AAAA,EACpB,wBAAA,EAA0B,mDAAA;AAAA,EAC1B,oBAAA,EAAsB,4CAAA;AAAA,EACtB,QAAA,EAAU,oBAAA;AAAA,EACV,QAAA,EACE,EAAA;AAAA,IACE,qGAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,WAAA,EACE,EAAA;AAAA,IACE,yMAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,iBAAA,EACE,yCAAA;AAAA,EACF,mBAAA,EAAqB,qDAAA;AAAA,EACrB,SAAA,EACE,+KAAA;AAAA,EACF,aAAA,EACE,EAAA;AAAA,IACE,2FAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,aAAA,EACE,EAAA;AAAA,IACE,iNAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,mBAAA,EACE,yCAAA;AAAA,EACF,qBAAA,EAAuB,qDAAA;AAAA,EACvB,YAAA,EAAc,oBAAA;AAAA,EACd,aAAA,EACE,kDAAA;AAAA,EACF,iBAAA,EACE,6GAAA;AAAA,EACF,gBAAA,EAAkB,iDAAA;AAAA,EAClB,aAAA,EAAe,sDAAA;AAAA,EACf,aAAA,EAAe,oDAAA;AAAA,EACf,YAAA,EACE,iDAAA;AAAA,EACF,UAAA,EACE,uOAAA;AAAA,EACF,WAAA,EACE,4BAAA;AAAA,EACF,cAAA,EACE,+EAAA;AAAA,EACF,YAAA,EACE,6HAAA;AAAA,EACF,UAAA,EAAY,sDAAA;AAAA,EACZ,WAAA,EACE,EAAA;AAAA,IACE,sHAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,cAAA,EAAgB,iCAAA;AAAA,EAChB,YAAA,EAAc,wDAAA;AAAA,EACd,kBAAA,EAAoB,gDAAA;AAAA,EACpB,cAAA,EAAgB,gBAAA;AAAA,EAChB,cAAA,EAAgB,4CAAA;AAAA,EAChB,cAAA,EAAgB,uCAAA;AAAA,EAChB,cAAA,EAAgB,6CAAA;AAAA,EAChB,cAAA,EAAgB,0CAAA;AAAA,EAChB,cAAA,EACE,wSAAA;AAAA,EACF,iBAAA,EAAmB,8CAAA;AAAA,EACnB,mBAAA,EAAqB,mCAAA;AAAA,EACrB,cAAA,EACE,mEAAA;AAAA,EACF,cAAA,EAAgB,+BAAA;AAAA,EAChB,kBAAA,EAAoB,oCAAA;AAAA,EACpB,gBAAA,EACE,sSAAA;AAAA,EACF,wBAAA,EAA0B,gCAAA;AAAA,EAC1B,cAAA,EACE,uHAAA;AAAA,EACF,mBAAA,EACE,4BAAA;AAAA,EACF,mBAAA,EACE,oKAAA;AAAA,EACF,mBAAA,EACE,wFAAA;AAAA,EACF,oBAAA,EAAsB,2CAAA;AAAA,EACtB,aAAA,EAAe,oBAAA;AAAA,EACf,aAAA,EACE,uIAAA;AAAA,EACF,gBAAA,EACE,uQAAA;AAAA,EACF,oBAAA,EACE,EAAA;AAAA,IACE,mFAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,cAAA,EACE,sKAAA;AAAA,EACF,WAAA,EAAa,qBAAA;AAAA,EACb,WAAA,EACE,gPAAA;AAAA,EACF,SAAA,EAAW,uDAAA;AAAA,EACX,aAAA,EAAe,2BAAA;AAAA,EACf,QAAA,EACE,EAAA;AAAA,IACE,mSAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,eAAA,EAAiB,iBAAA;AAAA,EACjB,eAAA,EAAiB,iEAAA;AAAA,EACjB,eAAA,EACE,6EAAA;AAAA,EACF,eAAA,EACE,uEAAA;AAAA,EACF,cAAA,EACE,6EAAA;AAAA,EACF,aAAA,EACE,gFAAA;AAAA,EACF,gBAAA,EACE,oEAAA;AAAA,EACF,YAAA,EAAc,0DAAA;AAAA,EACd,aAAA,EAAe,yBAAA;AAAA,EACf,gBAAA,EACE,yDAAA;AAAA,EACF,qBAAA,EACE,8EAAA;AAAA,EACF,kBAAA,EACE,8EAAA;AAAA,EACF,cAAA,EACE,EAAA;AAAA,IACE,wWAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,kBAAA,EACE,wFAAA;AAAA,EACF,cAAA,EACE,gPAAA;AAAA,EACF,cAAA,EACE,EAAA;AAAA,IACE,iFAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,4BAAA,EAA8B,8BAAA;AAAA,EAC9B,SAAA,EAAW,+DAAA;AAAA,EACX,YAAA,EAAc,oCAAA;AAAA,EACd,WAAA,EAAa,uCAAA;AAAA,EACb,SAAA,EAAW,4BAAA;AAAA,EACX,WAAA,EAAa,mDAAA;AAAA,EACb,cAAA,EACE,EAAA;AAAA,IACE,8JAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,sBAAA,EACE,6DAAA;AAAA,EACF,qBAAA,EAAuB,iCAAA;AAAA,EACvB,qBAAA,EAAuB,gBAAA;AAAA,EACvB,qBAAA,EAAuB,oDAAA;AAAA,EACvB,QAAA,EACE,EAAA;AAAA,IACE,8DAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,mBAAA,EAAqB,kCAAA;AAAA,EACrB,gBAAA,EAAkB,cAAA;AAAA,EAClB,gBAAA,EAAkB,gCAAA;AAAA,EAClB,SAAA,EACE,8GAAA;AAAA,EACF,gBAAA,EAAkB,iDAAA;AAAA,EAClB,aAAA,EAAe,iCAAA;AAAA,EACf,aAAA,EAAe,gFAAA;AAAA,EACf,aAAA,EAAe,sBAAA;AAAA,EACf,cAAA,EAAgB,kEAAA;AAAA,EAChB,oBAAA,EAAsB,0EAAA;AAAA,EACtB,aAAA,EAAe,wDAAA;AAAA,EACf,gBAAA,EAAkB,kCAAA;AAAA,EAClB,mBAAA,EACE,EAAA;AAAA,IACE,2MAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,iBAAA,EACE,EAAA;AAAA,IACE,gFAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,mBAAA,EACE,EAAA;AAAA,IACE,4QAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,qBAAA,EACE,qWAAA;AAAA,EACF,SAAA,EAAW,gDAAA;AAAA,EACX,oBAAA,EAAsB,aAAA;AAAA,EACtB,mBAAA,EAAqB,YAAA;AAAA,EACrB,aAAA,EAAe,2BAAA;AAAA,EACf,cAAA,EAAgB,wBAAA;AAAA,EAChB,iBAAA,EAAmB,wEAAA;AAAA,EACnB,cAAA,EACE,6FAAA;AAAA,EACF,eAAA,EAAiB,uCAAA;AAAA,EACjB,qBAAA,EAAuB,8CAAA;AAAA,EACvB,iBAAA,EAAmB,uDAAA;AAAA,EACnB,eAAA,EAAiB,2BAAA;AAAA,EACjB,gBAAA,EAAkB,WAAA;AAAA,EAClB,oBAAA,EAAsB,mCAAA;AAAA,EACtB,UAAA,EACE,EAAA;AAAA,IACE,6IAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,cAAA,EAAgB,gBAAA;AAAA,EAChB,YAAA,EAAc,SAAA;AAAA,EACd,UAAA,EAAY,4CAAA;AAAA,EACZ,aAAA,EAAe,iCAAA;AAAA,EACf,UAAA,EAAY,iCAAA;AAAA,EACZ,WAAA,EAAa,iCAAA;AAAA,EACb,YAAA,EAAc,SAAA;AAAA,EACd,UAAA,EACE,EAAA;AAAA,IACE,4FAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,oBAAA,EAAsB,eAAA;AAAA,EACtB,kBAAA,EAAoB,yBAAA;AAAA,EACpB,eAAA,EAAiB,aAAA;AAAA,EACjB,cAAA,EAAgB,4BAAA;AAAA,EAChB,qBAAA,EAAuB,4BAAA;AAAA,EACvB,eAAA,EAAiB,sCAAA;AAAA,EACjB,qBAAA,EAAuB,eAAA;AAAA,EACvB,mBAAA,EAAqB,eAAA;AAAA,EACrB,eAAA,EAAiB,iCAAA;AAAA,EACjB,kBAAA,EAAoB,EAAA;AAAA,EACpB,oBAAA,EAAsB,EAAA;AAAA,EACtB,kBAAA,EACE,EAAA;AAAA,IACE,2PAAA;AAAA,IACA;AAAA,GACF;AAAA,EACF,4BAAA,EAA8B,uBAAA;AAAA,EAC9B,0BAAA,EAA4B,uBAAA;AAAA,EAC5B,0BAAA,EAA4B,2BAAA;AAAA,EAC5B,2BAAA,EACE;AACJ,CAAA;AAEA,IAAM,YAAA,GAA6D;AAAA,EACjE,OAAA,EAAS;AAAA,IACP,UAAA,EAAY,oBAAA;AAAA,IACZ,cAAA,EAAgB,cAAA;AAAA,IAChB,SAAA,EAAW,yBAAA;AAAA,IACX,WAAA,EAAa,KAAA;AAAA,IACb,SAAA,EAAW,mBAAA;AAAA,IACX,mBAAA,EAAqB,MAAA;AAAA,IACrB,WAAA,EAAa,WAAA;AAAA,IACb,SAAA,EAAW,oBAAA;AAAA,IACX,SAAA,EAAW,gBAAA;AAAA,IACX,SAAA,EAAW,SAAA;AAAA,IACX,UAAA,EAAY,SAAA;AAAA,IACZ,gBAAA,EAAkB,mBAAA;AAAA,IAClB,YAAA,EAAc,mBAAA;AAAA,IACd,YAAA,EAAc,aAAA;AAAA,IACd,eAAA,EAAiB,kBAAA;AAAA,IACjB,aAAA,EAAe,aAAA;AAAA,IACf,UAAA,EAAY,SAAA;AAAA,IACZ,YAAA,EAAc,2BAAA;AAAA,IACd,WAAA,EAAa,SAAA;AAAA,IACb,WAAA,EAAa,aAAA;AAAA,IACb,WAAA,EAAa,aAAA;AAAA,IACb,aAAA,EAAe,SAAA;AAAA,IACf,mBAAA,EAAqB,mBAAA;AAAA,IACrB,WAAA,EAAa,qBAAA;AAAA,IACb,WAAA,EAAa,aAAA;AAAA,IACb,cAAA,EAAgB,aAAA;AAAA,IAChB,UAAA,EAAY,SAAA;AAAA,IACZ,gBAAA,EAAkB,mBAAA;AAAA,IAClB,WAAA,EAAa,UAAA;AAAA,IACb,YAAA,EAAc,WAAA;AAAA,IACd,WAAA,EAAa,mBAAA;AAAA,IACb,iBAAA,EAAmB,mBAAA;AAAA,IACnB,UAAA,EAAY,mBAAA;AAAA,IACZ,YAAA,EAAc,WAAA;AAAA,IACd,YAAA,EAAc,kBAAA;AAAA,IACd,YAAA,EAAc,qBAAA;AAAA,IACd,cAAA,EAAgB,uBAAA;AAAA,IAChB,UAAA,EAAY,mBAAA;AAAA,IACZ,YAAA,EAAc,aAAA;AAAA,IACd,iBAAA,EAAmB,OAAA;AAAA,IACnB,kBAAA,EAAoB,mBAAA;AAAA,IACpB,wBAAA,EAA0B,mBAAA;AAAA,IAC1B,QAAA,EAAU,eAAA;AAAA,IACV,WAAA,EAAa,mBAAA;AAAA,IACb,SAAA,EAAW,aAAA;AAAA,IACX,aAAA,EAAe,eAAA;AAAA,IACf,aAAA,EAAe,mBAAA;AAAA,IACf,aAAA,EAAe,OAAA;AAAA,IACf,UAAA,EAAY,SAAA;AAAA,IACZ,WAAA,EAAa,iBAAA;AAAA,IACb,YAAA,EAAc,SAAA;AAAA,IACd,kBAAA,EAAoB,mBAAA;AAAA,IACpB,gBAAA,EAAkB,0BAAA;AAAA,IAClB,cAAA,EAAgB,0BAAA;AAAA,IAChB,mBAAA,EAAqB,eAAA;AAAA,IACrB,mBAAA,EAAqB,aAAA;AAAA,IACrB,mBAAA,EAAqB,aAAA;AAAA,IACrB,oBAAA,EAAsB,mBAAA;AAAA,IACtB,gBAAA,EAAkB,mBAAA;AAAA,IAClB,cAAA,EAAgB,6BAAA;AAAA,IAChB,WAAA,EAAa,wBAAA;AAAA,IACb,cAAA,EAAgB,wBAAA;AAAA,IAChB,SAAA,EAAW,uBAAA;AAAA,IACX,QAAA,EAAU,2BAAA;AAAA,IACV,cAAA,EAAgB,2BAAA;AAAA,IAChB,gBAAA,EAAkB,aAAA;AAAA,IAClB,SAAA,EAAW,6BAAA;AAAA,IACX,SAAA,EAAW,qBAAA;AAAA,IACX,cAAA,EAAgB,aAAA;AAAA,IAChB,oBAAA,EAAsB,uBAAA;AAAA,IACtB,gBAAA,EAAkB,aAAA;AAAA,IAClB,UAAA,EAAY,WAAA;AAAA,IACZ,UAAA,EAAY,OAAA;AAAA,IACZ,UAAA,EAAY,oBAAA;AAAA,IACZ,4BAAA,EAA8B,OAAA;AAAA,IAC9B,0BAAA,EAA4B;AAAA,GAC9B;AAAA,EACA,OAAA,EAAS;AAAA,IACP,UAAA,EAAY;AAAA,GACd;AAAA,EACA,WAAA,EAAa;AAAA,IACX,UAAA,EAAY,aAAA;AAAA,IACZ,cAAA,EAAgB,gBAAA;AAAA,IAChB,SAAA,EAAW,aAAA;AAAA,IACX,WAAA,EAAa,KAAA;AAAA,IACb,SAAA,EAAW,WAAA;AAAA,IACX,mBAAA,EAAqB,MAAA;AAAA,IACrB,WAAA,EAAa,aAAA;AAAA,IACb,SAAA,EAAW,qBAAA;AAAA,IACX,SAAA,EAAW,gBAAA;AAAA,IACX,SAAA,EAAW,SAAA;AAAA,IACX,YAAA,EAAc,MAAA;AAAA,IACd,eAAA,EAAiB,UAAA;AAAA,IACjB,aAAA,EAAe,MAAA;AAAA,IACf,UAAA,EAAY,OAAA;AAAA,IACZ,YAAA,EAAc,mBAAA;AAAA,IACd,WAAA,EAAa,UAAA;AAAA,IACb,WAAA,EAAa,SAAA;AAAA,IACb,WAAA,EAAa,SAAA;AAAA,IACb,WAAA,EAAa,WAAA;AAAA,IACb,WAAA,EAAa,SAAA;AAAA,IACb,cAAA,EAAgB,aAAA;AAAA,IAChB,WAAA,EAAa,UAAA;AAAA,IACb,YAAA,EAAc,WAAA;AAAA,IACd,UAAA,EAAY,WAAA;AAAA,IACZ,YAAA,EAAc,WAAA;AAAA,IACd,YAAA,EAAc,UAAA;AAAA,IACd,YAAA,EAAc,aAAA;AAAA,IACd,UAAA,EAAY,WAAA;AAAA,IACZ,kBAAA,EAAoB,mBAAA;AAAA,IACpB,WAAA,EAAa,aAAA;AAAA,IACb,SAAA,EAAW,KAAA;AAAA,IACX,aAAA,EAAe,aAAA;AAAA,IACf,aAAA,EAAe,OAAA;AAAA,IACf,WAAA,EAAa,WAAA;AAAA,IACb,gBAAA,EAAkB,kBAAA;AAAA,IAClB,cAAA,EAAgB,kBAAA;AAAA,IAChB,mBAAA,EAAqB,WAAA;AAAA,IACrB,gBAAA,EAAkB,WAAA;AAAA,IAClB,cAAA,EAAgB,WAAA;AAAA,IAChB,WAAA,EAAa,gBAAA;AAAA,IACb,cAAA,EAAgB,gBAAA;AAAA,IAChB,QAAA,EAAU,mBAAA;AAAA,IACV,cAAA,EAAgB,mBAAA;AAAA,IAChB,SAAA,EAAW,gBAAA;AAAA,IACX,SAAA,EAAW,WAAA;AAAA,IACX,gBAAA,EAAkB,WAAA;AAAA,IAClB,UAAA,EAAY,WAAA;AAAA,IACZ,UAAA,EAAY,OAAA;AAAA,IACZ,UAAA,EAAY,YAAA;AAAA,IACZ,4BAAA,EAA8B,OAAA;AAAA,IAC9B,0BAAA,EAA4B;AAAA;AAEhC,CAAA;AAEA,IAAM,WAAA,GAA2D;AAAA,EAC/D,IAAA,EAAM;AAAA,IACJ,UAAA,EAAY,cAAA;AAAA,IACZ,SAAA,EAAW,cAAA;AAAA,IACX,SAAA,EAAW,cAAA;AAAA,IACX,SAAA,EAAW,cAAA;AAAA,IACX,SAAA,EAAW,cAAA;AAAA,IACX,cAAA,EAAgB,cAAA;AAAA,IAChB,UAAA,EAAY,cAAA;AAAA,IACZ,YAAA,EAAc,cAAA;AAAA,IACd,WAAA,EAAa,cAAA;AAAA,IACb,WAAA,EAAa,cAAA;AAAA,IACb,WAAA,EAAa,cAAA;AAAA,IACb,WAAA,EAAa,cAAA;AAAA,IACb,WAAA,EAAa,cAAA;AAAA,IACb,WAAA,EAAa,cAAA;AAAA,IACb,YAAA,EAAc,cAAA;AAAA,IACd,YAAA,EAAc,cAAA;AAAA,IACd,cAAA,EAAgB,cAAA;AAAA,IAChB,UAAA,EAAY,cAAA;AAAA,IACZ,QAAA,EAAU,cAAA;AAAA,IACV,WAAA,EAAa,cAAA;AAAA,IACb,SAAA,EAAW,cAAA;AAAA,IACX,aAAA,EAAe,cAAA;AAAA,IACf,aAAA,EAAe,cAAA;AAAA,IACf,aAAA,EAAe,cAAA;AAAA,IACf,iBAAA,EAAmB,cAAA;AAAA,IACnB,YAAA,EAAc,cAAA;AAAA,IACd,UAAA,EAAY,cAAA;AAAA,IACZ,YAAA,EAAc,cAAA;AAAA,IACd,WAAA,EAAa,cAAA;AAAA,IACb,gBAAA,EAAkB,cAAA;AAAA,IAClB,cAAA,EAAgB,cAAA;AAAA,IAChB,mBAAA,EAAqB,cAAA;AAAA,IACrB,aAAA,EAAe,cAAA;AAAA,IACf,WAAA,EAAa,cAAA;AAAA,IACb,QAAA,EAAU,cAAA;AAAA,IACV,cAAA,EAAgB,cAAA;AAAA,IAChB,cAAA,EAAgB,cAAA;AAAA,IAChB,cAAA,EAAgB,cAAA;AAAA,IAChB,cAAA,EAAgB,cAAA;AAAA,IAChB,oBAAA,EAAsB,cAAA;AAAA,IACtB,UAAA,EAAY,cAAA;AAAA,IACZ,UAAA,EAAY;AAAA,GACd;AAAA,EACA,EAAA,EAAI;AAAA,IACF,UAAA,EAAY,YAAA;AAAA,IACZ,SAAA,EAAW,YAAA;AAAA,IACX,SAAA,EAAW,YAAA;AAAA,IACX,SAAA,EAAW,YAAA;AAAA,IACX,SAAA,EAAW,YAAA;AAAA,IACX,cAAA,EAAgB,YAAA;AAAA,IAChB,UAAA,EAAY,YAAA;AAAA,IACZ,YAAA,EAAc,YAAA;AAAA,IACd,WAAA,EAAa,YAAA;AAAA,IACb,WAAA,EAAa,YAAA;AAAA,IACb,WAAA,EAAa,YAAA;AAAA,IACb,WAAA,EAAa,YAAA;AAAA,IACb,WAAA,EAAa,YAAA;AAAA,IACb,WAAA,EAAa,YAAA;AAAA,IACb,YAAA,EAAc,YAAA;AAAA,IACd,YAAA,EAAc,YAAA;AAAA,IACd,cAAA,EAAgB,YAAA;AAAA,IAChB,UAAA,EAAY,YAAA;AAAA,IACZ,QAAA,EAAU,YAAA;AAAA,IACV,WAAA,EAAa,YAAA;AAAA,IACb,SAAA,EAAW,YAAA;AAAA,IACX,aAAA,EAAe,YAAA;AAAA,IACf,aAAA,EAAe,YAAA;AAAA,IACf,aAAA,EAAe,YAAA;AAAA,IACf,iBAAA,EAAmB,YAAA;AAAA,IACnB,YAAA,EAAc,YAAA;AAAA,IACd,UAAA,EAAY,YAAA;AAAA,IACZ,YAAA,EAAc,YAAA;AAAA,IACd,WAAA,EAAa,YAAA;AAAA,IACb,gBAAA,EAAkB,YAAA;AAAA,IAClB,cAAA,EAAgB,YAAA;AAAA,IAChB,mBAAA,EAAqB,YAAA;AAAA,IACrB,aAAA,EAAe,YAAA;AAAA,IACf,WAAA,EAAa,YAAA;AAAA,IACb,QAAA,EAAU,YAAA;AAAA,IACV,cAAA,EAAgB,YAAA;AAAA,IAChB,cAAA,EAAgB,YAAA;AAAA,IAChB,cAAA,EAAgB,YAAA;AAAA,IAChB,cAAA,EAAgB,YAAA;AAAA,IAChB,oBAAA,EAAsB,YAAA;AAAA,IACtB,UAAA,EAAY,YAAA;AAAA,IACZ,UAAA,EAAY;AAAA,GACd;AAAA,EACA,IAAI,EAAC;AAAA,EACL,EAAA,EAAI;AAAA,IACF,UAAA,EAAY,YAAA;AAAA,IACZ,SAAA,EAAW,YAAA;AAAA,IACX,SAAA,EAAW,YAAA;AAAA,IACX,SAAA,EAAW,YAAA;AAAA,IACX,SAAA,EAAW,YAAA;AAAA,IACX,cAAA,EAAgB,YAAA;AAAA,IAChB,UAAA,EAAY,YAAA;AAAA,IACZ,YAAA,EAAc,YAAA;AAAA,IACd,WAAA,EAAa,cAAA;AAAA,IACb,WAAA,EAAa,cAAA;AAAA,IACb,WAAA,EAAa,YAAA;AAAA,IACb,WAAA,EAAa,YAAA;AAAA,IACb,WAAA,EAAa,YAAA;AAAA,IACb,WAAA,EAAa,YAAA;AAAA,IACb,YAAA,EAAc,YAAA;AAAA,IACd,YAAA,EAAc,YAAA;AAAA,IACd,cAAA,EAAgB,YAAA;AAAA,IAChB,UAAA,EAAY,YAAA;AAAA,IACZ,QAAA,EAAU,YAAA;AAAA,IACV,WAAA,EAAa,YAAA;AAAA,IACb,SAAA,EAAW,YAAA;AAAA,IACX,aAAA,EAAe,YAAA;AAAA,IACf,aAAA,EAAe,YAAA;AAAA,IACf,YAAA,EAAc,YAAA;AAAA,IACd,WAAA,EAAa,YAAA;AAAA,IACb,mBAAA,EAAqB,YAAA;AAAA,IACrB,aAAA,EAAe,YAAA;AAAA,IACf,WAAA,EAAa,YAAA;AAAA,IACb,QAAA,EAAU,YAAA;AAAA,IACV,cAAA,EAAgB,YAAA;AAAA,IAChB,cAAA,EAAgB,YAAA;AAAA,IAChB,cAAA,EAAgB,YAAA;AAAA,IAChB,cAAA,EAAgB,YAAA;AAAA,IAChB,oBAAA,EAAsB,YAAA;AAAA,IACtB,UAAA,EAAY,YAAA;AAAA,IACZ,UAAA,EAAY;AAAA,GACd;AAAA,EACA,EAAA,EAAI;AAAA,IACF,UAAA,EAAY,YAAA;AAAA,IACZ,SAAA,EAAW,YAAA;AAAA,IACX,SAAA,EAAW,aAAA;AAAA,IACX,SAAA,EAAW,aAAA;AAAA,IACX,SAAA,EAAW,aAAA;AAAA,IACX,cAAA,EAAgB,YAAA;AAAA,IAChB,UAAA,EAAY,YAAA;AAAA,IACZ,YAAA,EAAc,YAAA;AAAA,IACd,WAAA,EAAa,cAAA;AAAA,IACb,WAAA,EAAa,cAAA;AAAA,IACb,WAAA,EAAa,YAAA;AAAA,IACb,WAAA,EAAa,aAAA;AAAA,IACb,WAAA,EAAa,aAAA;AAAA,IACb,WAAA,EAAa,YAAA;AAAA,IACb,YAAA,EAAc,YAAA;AAAA,IACd,YAAA,EAAc,YAAA;AAAA,IACd,cAAA,EAAgB,YAAA;AAAA,IAChB,UAAA,EAAY,aAAA;AAAA,IACZ,QAAA,EAAU,aAAA;AAAA,IACV,WAAA,EAAa,YAAA;AAAA,IACb,SAAA,EAAW,aAAA;AAAA,IACX,aAAA,EAAe,aAAA;AAAA,IACf,aAAA,EAAe,YAAA;AAAA,IACf,YAAA,EAAc,YAAA;AAAA,IACd,WAAA,EAAa,aAAA;AAAA,IACb,gBAAA,EAAkB,YAAA;AAAA,IAClB,cAAA,EAAgB,YAAA;AAAA,IAChB,mBAAA,EAAqB,YAAA;AAAA,IACrB,aAAA,EAAe,aAAA;AAAA,IACf,WAAA,EAAa,YAAA;AAAA,IACb,QAAA,EAAU,YAAA;AAAA,IACV,cAAA,EAAgB,YAAA;AAAA,IAChB,cAAA,EAAgB,YAAA;AAAA,IAChB,cAAA,EAAgB,aAAA;AAAA,IAChB,cAAA,EAAgB,aAAA;AAAA,IAChB,oBAAA,EAAsB,YAAA;AAAA,IACtB,UAAA,EAAY,aAAA;AAAA,IACZ,UAAA,EAAY;AAAA,GACd;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,UAAA,EAAY,cAAA;AAAA,IACZ,SAAA,EAAW,cAAA;AAAA,IACX,SAAA,EAAW,aAAA;AAAA,IACX,SAAA,EAAW,aAAA;AAAA,IACX,SAAA,EAAW,cAAA;AAAA,IACX,cAAA,EAAgB,cAAA;AAAA,IAChB,UAAA,EAAY,aAAA;AAAA,IACZ,YAAA,EAAc,cAAA;AAAA,IACd,WAAA,EAAa,cAAA;AAAA,IACb,WAAA,EAAa,cAAA;AAAA,IACb,WAAA,EAAa,cAAA;AAAA,IACb,WAAA,EAAa,aAAA;AAAA,IACb,WAAA,EAAa,aAAA;AAAA,IACb,WAAA,EAAa,cAAA;AAAA,IACb,YAAA,EAAc,aAAA;AAAA,IACd,YAAA,EAAc,cAAA;AAAA,IACd,cAAA,EAAgB,cAAA;AAAA,IAChB,UAAA,EAAY,aAAA;AAAA,IACZ,QAAA,EAAU,cAAA;AAAA,IACV,WAAA,EAAa,cAAA;AAAA,IACb,SAAA,EAAW,aAAA;AAAA,IACX,aAAA,EAAe,cAAA;AAAA,IACf,aAAA,EAAe,cAAA;AAAA,IACf,aAAA,EAAe,cAAA;AAAA,IACf,iBAAA,EAAmB,cAAA;AAAA,IACnB,YAAA,EAAc,cAAA;AAAA,IACd,UAAA,EAAY,cAAA;AAAA,IACZ,YAAA,EAAc,cAAA;AAAA,IACd,WAAA,EAAa,aAAA;AAAA,IACb,gBAAA,EAAkB,cAAA;AAAA,IAClB,cAAA,EAAgB,cAAA;AAAA,IAChB,mBAAA,EAAqB,aAAA;AAAA,IACrB,aAAA,EAAe,aAAA;AAAA,IACf,WAAA,EAAa,aAAA;AAAA,IACb,QAAA,EAAU,cAAA;AAAA,IACV,cAAA,EAAgB,cAAA;AAAA,IAChB,cAAA,EAAgB,aAAA;AAAA,IAChB,cAAA,EAAgB,aAAA;AAAA,IAChB,cAAA,EAAgB,cAAA;AAAA,IAChB,oBAAA,EAAsB,cAAA;AAAA,IACtB,UAAA,EAAY,aAAA;AAAA,IACZ,UAAA,EAAY;AAAA;AAEhB,CAAA;AAEA,IAAM,WAAA,GAA2D;AAAA,EAC/D,IAAA,EAAM;AAAA,IACJ,UAAA,EAAY,oBAAA;AAAA,IACZ,SAAA,EAAW,oBAAA;AAAA,IACX,SAAA,EAAW,oBAAA;AAAA,IACX,WAAA,EAAa,oBAAA;AAAA,IACb,SAAA,EAAW,oBAAA;AAAA,IACX,cAAA,EAAgB,oBAAA;AAAA,IAChB,UAAA,EAAY,oBAAA;AAAA,IACZ,WAAA,EAAa,oBAAA;AAAA,IACb,WAAA,EAAa,oBAAA;AAAA,IACb,WAAA,EAAa,oBAAA;AAAA,IACb,WAAA,EAAa,oBAAA;AAAA,IACb,WAAA,EAAa,oBAAA;AAAA,IACb,YAAA,EAAc,oBAAA;AAAA,IACd,YAAA,EAAc,oBAAA;AAAA,IACd,YAAA,EAAc,oBAAA;AAAA,IACd,cAAA,EAAgB,oBAAA;AAAA,IAChB,UAAA,EAAY,oBAAA;AAAA,IACZ,WAAA,EAAa,oBAAA;AAAA,IACb,QAAA,EAAU,oBAAA;AAAA,IACV,SAAA,EAAW,oBAAA;AAAA,IACX,aAAA,EAAe,oBAAA;AAAA,IACf,UAAA,EAAY,oBAAA;AAAA,IACZ,WAAA,EAAa,oBAAA;AAAA,IACb,gBAAA,EAAkB,oBAAA;AAAA,IAClB,mBAAA,EAAqB,oBAAA;AAAA,IACrB,aAAA,EAAe,oBAAA;AAAA,IACf,cAAA,EAAgB,oBAAA;AAAA,IAChB,WAAA,EAAa,oBAAA;AAAA,IACb,aAAA,EAAe,gBAAA;AAAA,IACf,cAAA,EAAgB,oBAAA;AAAA,IAChB,cAAA,EAAgB,oBAAA;AAAA,IAChB,WAAA,EAAa,oBAAA;AAAA,IACb,WAAA,EAAa,oBAAA;AAAA,IACb,cAAA,EAAgB,oBAAA;AAAA,IAChB,sBAAA,EAAwB,6BAAA;AAAA,IACxB,QAAA,EAAU,oBAAA;AAAA,IACV,aAAA,EAAe,oBAAA;AAAA,IACf,eAAA,EAAiB,oBAAA;AAAA,IACjB,UAAA,EAAY,oBAAA;AAAA,IACZ,kBAAA,EAAoB,oBAAA;AAAA,IACpB,kBAAA,EAAoB;AAAA,GACtB;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,aAAA,EAAe,kBAAA;AAAA,IACf,YAAA,EAAc,kBAAA;AAAA,IACd,SAAA,EAAW,kBAAA;AAAA,IACX,WAAA,EAAa,kBAAA;AAAA,IACb,SAAA,EAAW,kBAAA;AAAA,IACX,cAAA,EAAgB,kBAAA;AAAA,IAChB,UAAA,EAAY,kBAAA;AAAA,IACZ,WAAA,EAAa,kBAAA;AAAA,IACb,WAAA,EAAa,kBAAA;AAAA,IACb,WAAA,EAAa,kBAAA;AAAA,IACb,WAAA,EAAa,kBAAA;AAAA,IACb,WAAA,EAAa,kBAAA;AAAA,IACb,YAAA,EAAc,kBAAA;AAAA,IACd,YAAA,EAAc,kBAAA;AAAA,IACd,YAAA,EAAc,kBAAA;AAAA,IACd,cAAA,EAAgB,kBAAA;AAAA,IAChB,aAAA,EAAe,kBAAA;AAAA,IACf,WAAA,EAAa,kBAAA;AAAA,IACb,QAAA,EAAU,kBAAA;AAAA,IACV,SAAA,EAAW,kBAAA;AAAA,IACX,aAAA,EAAe,kBAAA;AAAA,IACf,UAAA,EAAY,kBAAA;AAAA,IACZ,WAAA,EAAa,kBAAA;AAAA,IACb,gBAAA,EAAkB,kBAAA;AAAA,IAClB,mBAAA,EAAqB,kBAAA;AAAA,IACrB,aAAA,EAAe,kBAAA;AAAA,IACf,cAAA,EAAgB,kBAAA;AAAA,IAChB,WAAA,EAAa,kBAAA;AAAA,IACb,aAAA,EAAe,cAAA;AAAA,IACf,cAAA,EAAgB,kBAAA;AAAA,IAChB,cAAA,EAAgB,kBAAA;AAAA,IAChB,WAAA,EAAa,kBAAA;AAAA,IACb,WAAA,EAAa,kBAAA;AAAA,IACb,cAAA,EAAgB,kBAAA;AAAA,IAChB,sBAAA,EAAwB,2BAAA;AAAA,IACxB,QAAA,EAAU,kBAAA;AAAA,IACV,aAAA,EAAe,kBAAA;AAAA,IACf,eAAA,EAAiB,kBAAA;AAAA,IACjB,UAAA,EAAY,kBAAA;AAAA,IACZ,kBAAA,EAAoB;AAAA,GACtB;AAAA,EACA,OAAO,EAAC;AAAA,EACR,MAAA,EAAQ;AAAA,IACN,aAAA,EAAe,sBAAA;AAAA,IACf,YAAA,EAAc,sBAAA;AAAA,IACd,SAAA,EAAW,sBAAA;AAAA,IACX,WAAA,EAAa,sBAAA;AAAA,IACb,SAAA,EAAW,sBAAA;AAAA,IACX,cAAA,EAAgB,sBAAA;AAAA,IAChB,UAAA,EAAY,sBAAA;AAAA,IACZ,WAAA,EAAa,sBAAA;AAAA,IACb,WAAA,EAAa,sBAAA;AAAA,IACb,WAAA,EAAa,sBAAA;AAAA,IACb,WAAA,EAAa,sBAAA;AAAA,IACb,WAAA,EAAa,sBAAA;AAAA,IACb,YAAA,EAAc,sBAAA;AAAA,IACd,YAAA,EAAc,sBAAA;AAAA,IACd,YAAA,EAAc,sBAAA;AAAA,IACd,cAAA,EAAgB,sBAAA;AAAA,IAChB,aAAA,EAAe,sBAAA;AAAA,IACf,WAAA,EAAa,sBAAA;AAAA,IACb,QAAA,EAAU,sBAAA;AAAA,IACV,SAAA,EAAW,sBAAA;AAAA,IACX,aAAA,EAAe,sBAAA;AAAA,IACf,UAAA,EAAY,sBAAA;AAAA,IACZ,WAAA,EAAa,sBAAA;AAAA,IACb,gBAAA,EAAkB,sBAAA;AAAA,IAClB,mBAAA,EAAqB,sBAAA;AAAA,IACrB,aAAA,EAAe,sBAAA;AAAA,IACf,cAAA,EAAgB,sBAAA;AAAA,IAChB,WAAA,EAAa,sBAAA;AAAA,IACb,aAAA,EAAe,kBAAA;AAAA,IACf,cAAA,EAAgB,sBAAA;AAAA,IAChB,cAAA,EAAgB,sBAAA;AAAA,IAChB,WAAA,EAAa,sBAAA;AAAA,IACb,WAAA,EAAa,sBAAA;AAAA,IACb,cAAA,EAAgB,sBAAA;AAAA,IAChB,sBAAA,EAAwB,+BAAA;AAAA,IACxB,QAAA,EAAU,sBAAA;AAAA,IACV,aAAA,EAAe,sBAAA;AAAA,IACf,eAAA,EAAiB,sBAAA;AAAA,IACjB,UAAA,EAAY,sBAAA;AAAA,IACZ,kBAAA,EAAoB,sBAAA;AAAA,IACpB,kBAAA,EAAoB;AAAA;AAExB,CAAA;AAEA,IAAM,eAAA,GAAmE;AAAA,EACvE,OAAO,EAAC;AAAA,EACR,KAAA,EAAO;AAAA,IACL,aAAA,EAAe,+BAAA;AAAA,IACf,SAAA,EAAW,SAAA;AAAA,IACX,WAAA,EAAa,aAAA;AAAA,IACb,SAAA,EAAW,aAAA;AAAA,IACX,cAAA,EAAgB,eAAA;AAAA,IAChB,UAAA,EAAY,eAAA;AAAA,IACZ,kBAAA,EAAoB,6BAAA;AAAA,IACpB,WAAA,EAAa,eAAA;AAAA,IACb,WAAA,EAAa,2BAAA;AAAA,IACb,WAAA,EAAa,eAAA;AAAA,IACb,WAAA,EAAa,SAAA;AAAA,IACb,YAAA,EAAc,eAAA;AAAA,IACd,YAAA,EAAc,mBAAA;AAAA,IACd,cAAA,EAAgB,YAAA;AAAA,IAChB,aAAA,EAAe,aAAA;AAAA,IACf,QAAA,EAAU,aAAA;AAAA,IACV,iBAAA,EAAmB,eAAA;AAAA,IACnB,SAAA,EAAW,SAAA;AAAA,IACX,aAAA,EAAe,aAAA;AAAA,IACf,mBAAA,EAAqB,eAAA;AAAA,IACrB,aAAA,EAAe,aAAA;AAAA,IACf,YAAA,EAAc,UAAA;AAAA,IACd,WAAA,EAAa,SAAA;AAAA,IACb,gBAAA,EAAkB,iCAAA;AAAA,IAClB,cAAA,EAAgB,aAAA;AAAA,IAChB,mBAAA,EAAqB,SAAA;AAAA,IACrB,aAAA,EAAe,SAAA;AAAA,IACf,WAAA,EAAa,eAAA;AAAA,IACb,QAAA,EAAU,kDAAA;AAAA,IACV,cAAA,EACE,gFAAA;AAAA,IACF,cAAA,EAAgB,eAAA;AAAA,IAChB,cAAA,EAAgB,SAAA;AAAA,IAChB,WAAA,EAAa,aAAA;AAAA,IACb,WAAA,EAAa,aAAA;AAAA,IACb,cAAA,EAAgB,yBAAA;AAAA,IAChB,mBAAA,EAAqB,kCAAA;AAAA,IACrB,oBAAA,EAAsB,UAAA;AAAA,IACtB,UAAA,EAAY,SAAA;AAAA,IACZ,UAAA,EAAY,SAAA;AAAA,IACZ,eAAA,EAAiB,aAAA;AAAA,IACjB,kBAAA,EAAoB;AAAA,GACtB;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,aAAA,EAAe,+BAAA;AAAA,IACf,SAAA,EAAW,4BAAA;AAAA,IACX,SAAA,EAAW,4BAAA;AAAA,IACX,cAAA,EAAgB,kBAAA;AAAA,IAChB,UAAA,EAAY,4BAAA;AAAA,IACZ,kBAAA,EAAoB,6BAAA;AAAA,IACpB,WAAA,EAAa,kBAAA;AAAA,IACb,WAAA,EAAa,8CAAA;AAAA,IACb,WAAA,EAAa,kBAAA;AAAA,IACb,WAAA,EAAa,4BAAA;AAAA,IACb,YAAA,EAAc,4BAAA;AAAA,IACd,YAAA,EAAc,mBAAA;AAAA,IACd,cAAA,EAAgB,sBAAA;AAAA,IAChB,aAAA,EAAe,4BAAA;AAAA,IACf,QAAA,EAAU,4BAAA;AAAA,IACV,iBAAA,EAAmB,eAAA;AAAA,IACnB,SAAA,EAAW,4BAAA;AAAA,IACX,aAAA,EAAe,4BAAA;AAAA,IACf,mBAAA,EAAqB,eAAA;AAAA,IACrB,YAAA,EAAc,kBAAA;AAAA,IACd,WAAA,EAAa,4BAAA;AAAA,IACb,gBAAA,EAAkB,oCAAA;AAAA,IAClB,mBAAA,EAAqB,4BAAA;AAAA,IACrB,aAAA,EAAe,4BAAA;AAAA,IACf,WAAA,EAAa,4BAAA;AAAA,IACb,QAAA,EAAU,kDAAA;AAAA,IACV,cAAA,EACE,gFAAA;AAAA,IACF,cAAA,EAAgB,4BAAA;AAAA,IAChB,cAAA,EAAgB,4BAAA;AAAA,IAChB,WAAA,EAAa,aAAA;AAAA,IACb,WAAA,EAAa,aAAA;AAAA,IACb,cAAA,EAAgB,yBAAA;AAAA,IAChB,mBAAA,EAAqB,kCAAA;AAAA,IACrB,oBAAA,EAAsB,aAAA;AAAA,IACtB,UAAA,EAAY,4BAAA;AAAA,IACZ,UAAA,EAAY,4BAAA;AAAA,IACZ,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,KAAA,EAAO;AAAA,IACL,UAAA,EAAY,kBAAA;AAAA,IACZ,aAAA,EACE,uEAAA;AAAA,IACF,YAAA,EAAc,iDAAA;AAAA,IACd,SAAA,EAAW,8DAAA;AAAA,IACX,WAAA,EAAa,iCAAA;AAAA,IACb,SAAA,EAAW,8DAAA;AAAA,IACX,SAAA,EAAW,6BAAA;AAAA,IACX,cAAA,EACE,kEAAA;AAAA,IACF,UAAA,EACE,2GAAA;AAAA,IACF,YAAA,EAAc,iBAAA;AAAA,IACd,kBAAA,EAAoB,iCAAA;AAAA,IACpB,oBAAA,EAAsB,iCAAA;AAAA,IACtB,WAAA,EAAa,kDAAA;AAAA,IACb,WAAA,EAAa,kDAAA;AAAA,IACb,kBAAA,EAAoB,iDAAA;AAAA,IACpB,WAAA,EAAa,wEAAA;AAAA,IACb,WAAA,EAAa,kDAAA;AAAA,IACb,kBAAA,EAAoB,iCAAA;AAAA,IACpB,aAAA,EAAe,mCAAA;AAAA,IACf,WAAA,EAAa,6DAAA;AAAA,IACb,YAAA,EAAc,iBAAA;AAAA,IACd,YAAA,EAAc,iBAAA;AAAA,IACd,YAAA,EACE,2GAAA;AAAA,IACF,YAAA,EAAc,uCAAA;AAAA,IACd,cAAA,EACE,2GAAA;AAAA,IACF,aAAA,EACE,kEAAA;AAAA,IACF,WAAA,EAAa,iBAAA;AAAA,IACb,QAAA,EAAU,kDAAA;AAAA,IACV,WAAA,EAAa,mEAAA;AAAA,IACb,iBAAA,EAAmB,6CAAA;AAAA,IACnB,SAAA,EACE,8DAAA;AAAA,IACF,aAAA,EAAe,kDAAA;AAAA,IACf,aAAA,EAAe,mEAAA;AAAA,IACf,mBAAA,EAAqB,6CAAA;AAAA,IACrB,aAAA,EAAe,iBAAA;AAAA,IACf,YAAA,EAAc,iBAAA;AAAA,IACd,UAAA,EAAY,iDAAA;AAAA,IACZ,cAAA,EAAgB,iCAAA;AAAA,IAChB,YAAA,EAAc,mBAAA;AAAA,IACd,WAAA,EACE,8DAAA;AAAA,IACF,gBAAA,EACE,uEAAA;AAAA,IACF,cAAA,EAAgB,iCAAA;AAAA,IAChB,mBAAA,EACE,8DAAA;AAAA,IACF,aAAA,EACE,8DAAA;AAAA,IACF,cAAA,EAAgB,iBAAA;AAAA,IAChB,WAAA,EACE,2GAAA;AAAA,IACF,aAAA,EAAe,aAAA;AAAA,IACf,QAAA,EACE,mIAAA;AAAA,IACF,cAAA,EACE,qKAAA;AAAA,IACF,cAAA,EACE,2GAAA;AAAA,IACF,cAAA,EACE,8DAAA;AAAA,IACF,WAAA,EAAa,iCAAA;AAAA,IACb,WAAA,EAAa,iCAAA;AAAA,IACb,cAAA,EACE,8DAAA;AAAA,IACF,sBAAA,EAAwB,0BAAA;AAAA,IACxB,QAAA,EAAU,iBAAA;AAAA,IACV,mBAAA,EAAqB,sCAAA;AAAA,IACrB,cAAA,EAAgB,iBAAA;AAAA,IAChB,oBAAA,EAAsB,iBAAA;AAAA,IACtB,UAAA,EACE,8DAAA;AAAA,IACF,UAAA,EACE,8DAAA;AAAA,IACF,eAAA,EAAiB,iBAAA;AAAA,IACjB,cAAA,EAAgB,8CAAA;AAAA,IAChB,kBAAA,EAAoB,mFAAA;AAAA,IACpB,2BAAA,EAA6B;AAAA,GAC/B;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,UAAA,EACE,oDAAA;AAAA,IACF,aAAA,EAAe,mCAAA;AAAA,IACf,aAAA,EAAe,0DAAA;AAAA,IACf,WAAA,EACE,kFAAA;AAAA,IACF,YAAA,EAAc,4CAAA;AAAA,IACd,UAAA,EAAY,2CAAA;AAAA,IACZ,SAAA,EAAW,qDAAA;AAAA,IACX,UAAA,EAAY,YAAA;AAAA,IACZ,gBAAA,EAAkB,eAAA;AAAA,IAClB,SAAA,EAAW,eAAA;AAAA,IACX,WAAA,EAAa,iCAAA;AAAA,IACb,SAAA,EAAW,qDAAA;AAAA,IACX,SAAA,EAAW,2BAAA;AAAA,IACX,UAAA,EAAY,YAAA;AAAA,IACZ,gBAAA,EAAkB,eAAA;AAAA,IAClB,UAAA,EAAY,YAAA;AAAA,IACZ,gBAAA,EAAkB,eAAA;AAAA,IAClB,YAAA,EAAc,eAAA;AAAA,IACd,cAAA,EACE,6FAAA;AAAA,IACF,WAAA,EAAa,sCAAA;AAAA,IACb,aAAA,EAAe,eAAA;AAAA,IACf,UAAA,EAAY,oDAAA;AAAA,IACZ,YAAA,EAAc,YAAA;AAAA,IACd,kBAAA,EAAoB,4BAAA;AAAA,IACpB,oBAAA,EAAsB,4BAAA;AAAA,IACtB,iBAAA,EAAmB,eAAA;AAAA,IACnB,WAAA,EAAa,qDAAA;AAAA,IACb,aAAA,EAAe,wCAAA;AAAA,IACf,WAAA,EAAa,YAAA;AAAA,IACb,iBAAA,EAAmB,eAAA;AAAA,IACnB,WAAA,EAAa,gEAAA;AAAA,IACb,kBAAA,EAAoB,wCAAA;AAAA,IACpB,aAAA,EAAe,YAAA;AAAA,IACf,mBAAA,EAAqB,eAAA;AAAA,IACrB,WAAA,EAAa,kEAAA;AAAA,IACb,WAAA,EAAa,gEAAA;AAAA,IACb,kBAAA,EAAoB,6BAAA;AAAA,IACpB,cAAA,EAAgB,UAAA;AAAA,IAChB,UAAA,EAAY,YAAA;AAAA,IACZ,gBAAA,EAAkB,eAAA;AAAA,IAClB,aAAA,EAAe,iBAAA;AAAA,IACf,WAAA,EAAa,oDAAA;AAAA,IACb,YAAA,EAAc,iBAAA;AAAA,IACd,WAAA,EAAa,YAAA;AAAA,IACb,iBAAA,EAAmB,eAAA;AAAA,IACnB,UAAA,EAAY,eAAA;AAAA,IACZ,YAAA,EAAc,iBAAA;AAAA,IACd,WAAA,EAAa,sDAAA;AAAA,IACb,YAAA,EAAc,oDAAA;AAAA,IACd,aAAA,EAAe,eAAA;AAAA,IACf,iBAAA,EAAmB,aAAA;AAAA,IACnB,YAAA,EAAc,kCAAA;AAAA,IACd,uBAAA,EAAyB,eAAA;AAAA,IACzB,oBAAA,EAAsB,eAAA;AAAA,IACtB,cAAA,EAAgB,oDAAA;AAAA,IAChB,aAAA,EAAe,4CAAA;AAAA,IACf,WAAA,EAAa,2CAAA;AAAA,IACb,WAAA,EAAa,iBAAA;AAAA,IACb,YAAA,EAAc,eAAA;AAAA,IACd,oBAAA,EAAsB,eAAA;AAAA,IACtB,kBAAA,EAAoB,YAAA;AAAA,IACpB,wBAAA,EAA0B,eAAA;AAAA,IAC1B,QAAA,EAAU,iCAAA;AAAA,IACV,WAAA,EAAa,sDAAA;AAAA,IACb,iBAAA,EAAmB,wCAAA;AAAA,IACnB,SAAA,EAAW,4CAAA;AAAA,IACX,aAAA,EAAe,iCAAA;AAAA,IACf,aAAA,EAAe,sDAAA;AAAA,IACf,mBAAA,EAAqB,wCAAA;AAAA,IACrB,aAAA,EAAe,iBAAA;AAAA,IACf,aAAA,EAAe,YAAA;AAAA,IACf,aAAA,EAAe,eAAA;AAAA,IACf,YAAA,EAAc,iBAAA;AAAA,IACd,UAAA,EAAY,4CAAA;AAAA,IACZ,cAAA,EAAgB,+BAAA;AAAA,IAChB,UAAA,EAAY,YAAA;AAAA,IACZ,YAAA,EAAc,kBAAA;AAAA,IACd,WAAA,EAAa,4CAAA;AAAA,IACb,YAAA,EAAc,YAAA;AAAA,IACd,kBAAA,EAAoB,eAAA;AAAA,IACpB,cAAA,EAAgB,gCAAA;AAAA,IAChB,iBAAA,EAAmB,YAAA;AAAA,IACnB,mBAAA,EAAqB,eAAA;AAAA,IACrB,cAAA,EAAgB,eAAA;AAAA,IAChB,gBAAA,EAAkB,kEAAA;AAAA,IAClB,cAAA,EAAgB,4BAAA;AAAA,IAChB,mBAAA,EAAqB,iCAAA;AAAA,IACrB,mBAAA,EAAqB,eAAA;AAAA,IACrB,oBAAA,EAAsB,YAAA;AAAA,IACtB,aAAA,EAAe,iCAAA;AAAA,IACf,gBAAA,EAAkB,kCAAA;AAAA,IAClB,cAAA,EAAgB,+BAAA;AAAA,IAChB,cAAA,EAAgB,qDAAA;AAAA,IAChB,SAAA,EAAW,YAAA;AAAA,IACX,WAAA,EAAa,iCAAA;AAAA,IACb,WAAA,EAAa,iCAAA;AAAA,IACb,cAAA,EAAgB,+CAAA;AAAA,IAChB,sBAAA,EAAwB,0BAAA;AAAA,IACxB,QAAA,EAAU,iBAAA;AAAA,IACV,mBAAA,EAAqB,sCAAA;AAAA,IACrB,SAAA,EAAW,eAAA;AAAA,IACX,cAAA,EAAgB,YAAA;AAAA,IAChB,oBAAA,EAAsB,eAAA;AAAA,IACtB,aAAA,EAAe,eAAA;AAAA,IACf,aAAA,EAAe,eAAA;AAAA,IACf,iBAAA,EAAmB,eAAA;AAAA,IACnB,mBAAA,EAAqB,qCAAA;AAAA,IACrB,qBAAA,EAAuB,2CAAA;AAAA,IACvB,SAAA,EAAW,eAAA;AAAA,IACX,cAAA,EAAgB,2BAAA;AAAA,IAChB,eAAA,EAAiB,YAAA;AAAA,IACjB,qBAAA,EAAuB,eAAA;AAAA,IACvB,WAAA,EAAa,oDAAA;AAAA,IACb,SAAA,EAAW,eAAA;AAAA,IACX,aAAA,EAAe,aAAA;AAAA,IACf,QAAA,EACE,oHAAA;AAAA,IACF,eAAA,EAAiB,YAAA;AAAA,IACjB,eAAA,EAAiB,iEAAA;AAAA,IACjB,eAAA,EACE,6EAAA;AAAA,IACF,eAAA,EACE,uEAAA;AAAA,IACF,cAAA,EACE,iEAAA;AAAA,IACF,aAAA,EACE,8DAAA;AAAA,IACF,gBAAA,EAAkB,eAAA;AAAA,IAClB,cAAA,EACE,sJAAA;AAAA,IACF,kBAAA,EAAoB,eAAA;AAAA,IACpB,cAAA,EAAgB,oDAAA;AAAA,IAChB,oBAAA,EAAsB,iBAAA;AAAA,IACtB,UAAA,EAAY,qDAAA;AAAA,IACZ,UAAA,EAAY,qDAAA;AAAA,IACZ,eAAA,EAAiB,iBAAA;AAAA,IACjB,cAAA,EAAgB,6BAAA;AAAA,IAChB,kBAAA,EAAoB,8EAAA;AAAA,IACpB,2BAAA,EAA6B;AAAA;AAEjC,CAAA;AAEA,IAAM,cAAA,GAGF;AAAA,EACF,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,SAAA;AAAA,IACT,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,OAAA;AAAA,IACR,UAAA,EAAY;AAAA,GACd;AAAA,EACA,KAAA,EAAO;AAAA,IACL,OAAA,EAAS,SAAA;AAAA,IACT,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,QAAA;AAAA,IACR,UAAA,EAAY;AAAA,GACd;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,OAAA,EAAS,SAAA;AAAA,IACT,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,QAAA;AAAA,IACR,UAAA,EAAY;AAAA,GACd;AAAA,EACA,GAAA,EAAK;AAAA,IACH,OAAA,EAAS,SAAA;AAAA,IACT,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,QAAA;AAAA,IACR,UAAA,EAAY;AAAA,GACd;AAAA,EACA,KAAA,EAAO;AAAA,IACL,OAAA,EAAS,SAAA;AAAA,IACT,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,QAAA;AAAA,IACR,UAAA,EAAY;AAAA,GACd;AAAA,EACA,WAAA,EAAa;AAAA,IACX,OAAA,EAAS,SAAA;AAAA,IACT,MAAA,EAAQ,MAAA;AAAA,IACR,MAAA,EAAQ,QAAA;AAAA,IACR,UAAA,EAAY;AAAA;AAEhB,CAAA;AAEA,IAAM,WAAA,GAAuD;AAAA,EAC3D,KAAA,EAAO;AAAA,IACL,UAAA,EAAY,aAAA;AAAA,IACZ,SAAA,EAAW,kBAAA;AAAA,IACX,cAAA,EAAgB,aAAA;AAAA,IAChB,WAAA,EAAa,aAAA;AAAA,IACb,aAAA,EAAe,aAAA;AAAA,IACf,WAAA,EAAa,kBAAA;AAAA,IACb,cAAA,EAAgB,kBAAA;AAAA,IAChB,cAAA,EAAgB,kBAAA;AAAA,IAChB,cAAA,EAAgB,eAAA;AAAA,IAChB,aAAA,EAAe;AAAA,GACjB;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,UAAA,EAAY,SAAA;AAAA,IACZ,SAAA,EAAW,aAAA;AAAA,IACX,UAAA,EAAY,SAAA;AAAA,IACZ,WAAA,EAAa,SAAA;AAAA,IACb,YAAA,EAAc,SAAA;AAAA,IACd,QAAA,EAAU,SAAA;AAAA,IACV,cAAA,EAAgB,SAAA;AAAA,IAChB,UAAA,EAAY,SAAA;AAAA,IACZ,kBAAA,EAAoB,SAAA;AAAA,IACpB,WAAA,EAAa,SAAA;AAAA,IACb,aAAA,EAAe,SAAA;AAAA,IACf,YAAA,EAAc,SAAA;AAAA,IACd,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,GAAA,EAAK;AAAA,IACH,aAAA,EAAe,iEAAA;AAAA,IACf,YAAA,EAAc,6CAAA;AAAA,IACd,aAAA,EAAe,6CAAA;AAAA,IACf,iBAAA,EAAmB,YAAA;AAAA,IACnB,YAAA,EAAc;AAAA,GAChB;AAAA,EACA,KAAA,EAAO;AAAA,IACL,SAAA,EAAW,0CAAA;AAAA,IACX,SAAA,EAAW,0CAAA;AAAA,IACX,UAAA,EAAY,0CAAA;AAAA,IACZ,SAAA,EAAW,0CAAA;AAAA,IACX,WAAA,EAAa,0CAAA;AAAA,IACb,mBAAA,EAAqB,0CAAA;AAAA,IACrB,aAAA,EAAe;AAAA,GACjB;AAAA,EACA,WAAA,EAAa;AAAA,IACX,UAAA,EAAY,aAAA;AAAA,IACZ,SAAA,EAAW,aAAA;AAAA,IACX,SAAA,EAAW,aAAA;AAAA,IACX,cAAA,EAAgB,aAAA;AAAA,IAChB,UAAA,EAAY,aAAA;AAAA,IACZ,WAAA,EAAa,aAAA;AAAA,IACb,cAAA,EAAgB,aAAA;AAAA,IAChB,UAAA,EAAY,aAAA;AAAA,IACZ,QAAA,EAAU,aAAA;AAAA,IACV,iBAAA,EAAmB,aAAA;AAAA,IACnB,SAAA,EAAW,aAAA;AAAA,IACX,aAAA,EAAe,aAAA;AAAA,IACf,mBAAA,EAAqB,aAAA;AAAA,IACrB,WAAA,EAAa,aAAA;AAAA,IACb,mBAAA,EAAqB,aAAA;AAAA,IACrB,aAAA,EAAe;AAAA;AAEnB,CAAA;AAEA,SAAS,kBAAkB,MAAA,EAA2B;AACpD,EAAA,OACE,cAAA,CAAe,MAAqC,CAAA,IAAK,cAAA,CAAe,OAAA;AAE5E;AAEA,IAAM,QAAA,GAAW,MAAA,CAAO,IAAA,CAAK,SAAS,CAAA;AAEtC,SAAS,cACJ,OAAA,EACY;AACf,EAAA,OAAO,QAAA,CAAS,MAAA,CAAO,CAAC,QAAA,EAAU,GAAA,KAAQ;AACxC,IAAA,QAAA,CAAS,GAAG,CAAA,GAAI,EAAA,CAAG,GAAG,OAAA,CAAQ,GAAA,CAAI,CAAC,MAAA,KAAW,MAAA,GAAS,GAAG,CAAC,CAAC,CAAA;AAC5D,IAAA,OAAO,QAAA;AAAA,EACT,CAAA,EAAG,EAAmB,CAAA;AACxB;AAEA,SAAS,eAAe,SAAA,EAA+C;AACrE,EAAA,OAAO,MAAA,CAAO,OAAO,EAAC,EAAG,GAAG,SAAA,CAAU,MAAA,CAAO,OAAO,CAAC,CAAA;AACvD;AAEO,SAAS,sBACd,UAAA,EACmB;AACnB,EAAA,MAAM,MAAA,GAAS,YAAY,MAAA,IAAU,SAAA;AACrC,EAAA,MAAM,QAAA,GAAW,kBAAkB,MAAM,CAAA;AACzC,EAAA,MAAM,OAAA,GAAU,UAAA,EAAY,OAAA,IAAW,QAAA,CAAS,OAAA,IAAW,SAAA;AAC3D,EAAA,MAAM,MAAA,GAAS,UAAA,EAAY,MAAA,IAAU,QAAA,CAAS,MAAA,IAAU,IAAA;AACxD,EAAA,MAAM,MAAA,GAAS,UAAA,EAAY,MAAA,IAAU,QAAA,CAAS,MAAA,IAAU,OAAA;AACxD,EAAA,MAAM,UAAA,GAAa,UAAA,EAAY,UAAA,IAAc,QAAA,CAAS,UAAA,IAAc,OAAA;AAEpE,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,OAAA;AAAA,IACA,MAAA;AAAA,IACA,MAAA;AAAA,IACA,UAAA;AAAA,IACA,MAAA,EAAQ,WAAA,CAAY,WAAA,EAAa,UAAA,EAAY,MAAM,CAAA;AAAA,IACnD,KAAA,EAAO,UAAA;AAAA,MACL,SAAA;AAAA,MACA,YAAY,MAAM,CAAA;AAAA,MAClB,aAAa,OAAO,CAAA;AAAA,MACpB,YAAY,MAAM,CAAA;AAAA,MAClB,YAAY,MAAM,CAAA;AAAA,MAClB,gBAAgB,UAAU,CAAA;AAAA,MAC1B,UAAA,EAAY;AAAA;AACd,GACF;AACF;AAEO,SAAS,0BAAA,CACd,KAAA,EACA,IAAA,GAAwB,SAAA,EACxB,SAAS,KAAA,EACT;AACA,EAAA,OAAO,EAAA;AAAA,IACL,IAAA,KAAS,SAAA,IAAa,KAAA,CAAM,KAAA,CAAM,aAAA;AAAA,IAClC,IAAA,KAAS,SAAA,IAAa,KAAA,CAAM,KAAA,CAAM,aAAA;AAAA,IAClC,IAAA,KAAS,SAAA,IAAa,KAAA,CAAM,KAAA,CAAM,aAAA;AAAA,IAClC,IAAA,KAAS,SAAA,IAAa,KAAA,CAAM,KAAA,CAAM,aAAA;AAAA,IAClC,IAAA,KAAS,QAAA,IAAY,KAAA,CAAM,KAAA,CAAM,YAAA;AAAA,IACjC,IAAA,KAAS,OAAA,IAAW,KAAA,CAAM,KAAA,CAAM,WAAA;AAAA,IAChC,MAAA,IAAU,MAAM,KAAA,CAAM;AAAA,GACxB;AACF;ACl8CA,IAAM,cAAA,GAAiB;AAAA,EACrB,EAAA,EAAI,iBAAA;AAAA,EACJ,EAAA,EAAI,iBAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAEA,IAAM,gBAAA,GAAmB;AAAA,EACvB,MAAA,EAAQ,gBAAA;AAAA,EACR,IAAA,EAAM,cAAA;AAAA,EACN,OAAA,EAAS,qBAAA;AAAA,EACT,OAAA,EAAS;AACX,CAAA;AAEA,SAAS,eAAe,MAAA,EAA0D;AAChF,EAAA,OAAO,OAAO,MAAA,KAAW,QAAA,IAAY,MAAA,IAAU,gBAAA;AACjD;AAEA,SAAS,YAAY,IAAA,EAAe;AAClC,EAAA,IAAI,CAAC,MAAM,OAAO,MAAA;AAClB,EAAA,MAAM,KAAA,GAAQ,KAAK,IAAA,EAAK,CAAE,MAAM,KAAK,CAAA,CAAE,OAAO,OAAO,CAAA;AACrD,EAAA,IAAI,CAAC,KAAA,CAAM,MAAA,EAAQ,OAAO,MAAA;AAC1B,EAAA,OAAO,KAAA,CACJ,KAAA,CAAM,CAAA,EAAG,CAAC,EACV,GAAA,CAAI,CAAC,IAAA,KAAS,IAAA,CAAK,CAAC,CAAA,EAAG,WAAA,EAAa,CAAA,CACpC,KAAK,EAAE,CAAA;AACZ;AAEO,SAAS,UAAA,CAAW;AAAA,EACzB,GAAA;AAAA,EACA,GAAA;AAAA,EACA,IAAA;AAAA,EACA,QAAA;AAAA,EACA,IAAA;AAAA,EACA,MAAA;AAAA,EACA,IAAA,GAAO,IAAA;AAAA,EACP,UAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAoB;AAClB,EAAA,MAAM,KAAA,GAAQ,sBAAsB,UAAU,CAAA;AAC9C,EAAA,MAAM,QAAA,GAAW,QAAA,IAAY,QAAA,IAAY,WAAA,CAAY,IAAI,CAAA,IAAK,IAAA;AAE9D,EAAA,uBACEA,eAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACE,GAAG,WAAA;AAAA,MACJ,SAAA,EAAW,EAAA;AAAA,QACT,MAAM,KAAA,CAAM,UAAA;AAAA,QACZ,eAAe,IAAI,CAAA;AAAA,QACnB,UAAA,EAAY,IAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACA,KAAA,EAAO;AAAA,QACL,GAAG,MAAM,MAAA,CAAO,MAAA;AAAA,QAChB,GAAG;AAAA,OACL;AAAA,MACA,KAAA,EAAO,IAAA;AAAA,MAEN,QAAA,EAAA;AAAA,QAAA,GAAA,mBACCC,cAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,GAAA;AAAA,YACA,GAAA,EAAK,OAAO,IAAA,IAAQ,EAAA;AAAA,YACpB,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,WAAA,EAAa,YAAY,KAAK;AAAA;AAAA,4BAG1DA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,GAAG,KAAA,CAAM,KAAA,CAAM,cAAA,EAAgB,UAAA,EAAY,QAAQ,CAAA,EACjE,QAAA,EAAA,iBAAA,CAAkB,QAAQ,CAAA,GAAI,WAAW,GAAA,EAC5C,CAAA;AAAA,QAGD,cAAA,CAAe,MAAM,CAAA,mBACpBA,cAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,aAAA,EAAY,MAAA;AAAA,YACZ,SAAA,EAAW,EAAA;AAAA,cACT,MAAM,KAAA,CAAM,YAAA;AAAA,cACZ,iBAAiB,MAAM,CAAA;AAAA,cACvB,UAAA,EAAY;AAAA;AACd;AAAA,YAEA,iBAAA,CAAkB,MAAM,CAAA,mBAC1BA,eAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,KAAA,CAAM,MAAM,YAAA,EAAc,UAAA,EAAY,MAAM,CAAA,EAC7D,kBACH,CAAA,GACE;AAAA;AAAA;AAAA,GACN;AAEJ;AClFA,SAAS,WAAA,GAAc;AACrB,EAAA,uBACED,eAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,aAAA,EAAY,MAAA;AAAA,MACZ,OAAA,EAAQ,WAAA;AAAA,MACR,SAAA,EAAU,sBAAA;AAAA,MACV,IAAA,EAAK,MAAA;AAAA,MAEL,QAAA,EAAA;AAAA,wBAAAC,cAAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,EAAA,EAAG,IAAA;AAAA,YACH,EAAA,EAAG,IAAA;AAAA,YACH,CAAA,EAAE,GAAA;AAAA,YACF,SAAA,EAAU,YAAA;AAAA,YACV,MAAA,EAAO,cAAA;AAAA,YACP,WAAA,EAAY;AAAA;AAAA,SACd;AAAA,wBACAA,cAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,YAAA;AAAA,YACV,IAAA,EAAK,cAAA;AAAA,YACL,CAAA,EAAE;AAAA;AAAA;AACJ;AAAA;AAAA,GACF;AAEJ;AAEO,IAAM,UAAA,GAAaC,gBAAA;AAAA,EACxB,SAASC,WAAAA,CACP;AAAA,IACE,QAAA;AAAA,IACA,KAAA;AAAA,IACA,IAAA;AAAA,IACA,OAAA;AAAA,IACA,IAAA,GAAO,QAAA;AAAA,IACP,KAAA;AAAA,IACA,SAAA;AAAA,IACA,IAAA;AAAA,IACA,MAAA,GAAS,KAAA;AAAA,IACT,QAAA,GAAW,KAAA;AAAA,IACX,QAAA,GAAW,KAAA;AAAA,IACX,OAAA,GAAU,KAAA;AAAA,IACV,eAAA,GAAkB,KAAA;AAAA,IAClB,UAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,OAAA;AAAA,IACA,YAAA,EAAc,eAAA;AAAA,IACd,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,MAAM,KAAA,GAAQ,sBAAsB,UAAU,CAAA;AAC9C,IAAA,MAAM,gBAAgB,QAAA,IAAY,KAAA;AAClC,IAAA,MAAM,SAAA,GAAY,OAAO,aAAA,KAAkB,QAAA,GAAW,aAAA,GAAgB,MAAA;AACtE,IAAA,MAAM,oBACJ,SAAA,IACA,eAAA,IACA,SAAA,IACA,KAAA,KACC,WAAW,QAAA,GAAW,MAAA,CAAA;AACzB,IAAA,MAAM,mBAAmB,QAAA,IAAY,OAAA;AAErC,IAAA,MAAM,WAAA,GAAc,CAAC,KAAA,KAAyC;AAC5D,MAAA,IAAI,eAAA,EAAiB;AACnB,QAAA,KAAA,CAAM,eAAA,EAAgB;AAAA,MACxB;AACA,MAAA,IAAI,gBAAA,EAAkB;AACtB,MAAA,OAAA,GAAU,KAAK,CAAA;AAAA,IACjB,CAAA;AAEA,IAAA,uBACEH,eAAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACE,GAAG,WAAA;AAAA,QACJ,GAAA;AAAA,QACA,IAAA;AAAA,QACA,KAAA;AAAA,QACA,YAAA,EAAY,iBAAA;AAAA,QACZ,gBAAc,MAAA,IAAU,MAAA;AAAA,QACxB,aAAW,OAAA,IAAW,MAAA;AAAA,QACtB,QAAA,EAAU,gBAAA;AAAA,QACV,SAAA,EAAW,EAAA;AAAA,UACT,MAAM,KAAA,CAAM,UAAA;AAAA,UACZ,QAAA,IAAY,MAAM,KAAA,CAAM,cAAA;AAAA,UACxB,0BAAA,CAA2B,KAAA,EAAO,IAAA,EAAM,MAAM,CAAA;AAAA,UAC9C,gBAAA,IAAoB,MAAM,KAAA,CAAM,cAAA;AAAA,UAChC,UAAA,EAAY,IAAA;AAAA,UACZ;AAAA,SACF;AAAA,QACA,KAAA,EAAO;AAAA,UACL,GAAG,MAAM,MAAA,CAAO,MAAA;AAAA,UAChB,GAAI,MAAA,GAAS,KAAA,CAAM,MAAA,CAAO,YAAA,GAAe,MAAA;AAAA,UACzC,GAAI,gBAAA,GAAmB,KAAA,CAAM,MAAA,CAAO,cAAA,GAAiB,MAAA;AAAA,UACrD,GAAG;AAAA,SACL;AAAA,QACA,OAAA,EAAS,WAAA;AAAA,QAER,QAAA,EAAA;AAAA,UAAA,OAAA,mBACCC,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,UAAA,EAAY,UAAA,EAAY,IAAI,CAAA,EAC1D,QAAA,kBAAAA,cAAAA,CAAC,WAAA,EAAA,EAAY,CAAA,EACf,CAAA,GACE,IAAA,mBACFA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,UAAA,EAAY,UAAA,EAAY,IAAI,CAAA,EACzD,gBACH,CAAA,GACE,IAAA;AAAA,UACH,QAAA,GACC,iBAAA,CAAkB,aAAa,CAAA,mBAC7BA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,SAAA,EAAW,QAAA,EAAA,aAAA,EAAc,CAAA,GACvC,IAAA,GACF,iBAAA,CAAkB,aAAa,CAAA,mBACjCA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,WAAA,EAAa,UAAA,EAAY,KAAK,CAAA,EAC3D,QAAA,EAAA,aAAA,EACH,CAAA,GACE,IAAA;AAAA,UACH,CAAC,OAAA,IAAW,OAAA,mBACXA,eAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,KAAA,CAAM,MAAM,UAAA,EAAY,UAAA,EAAY,IAAI,CAAA,EACzD,mBACH,CAAA,GACE;AAAA;AAAA;AAAA,KACN;AAAA,EAEJ;AACF,CAAA;ACvHA,SAAS,OAAA,CACP,YACG,IAAA,EACH;AACA,EAAA,IAAA,CAAK,OAAA,CAAQ,CAAC,GAAA,KAAQ;AACpB,IAAA,IAAI,CAAC,GAAA,EAAK;AACV,IAAA,IAAI,OAAO,QAAQ,UAAA,EAAY;AAC7B,MAAA,GAAA,CAAI,OAAO,CAAA;AACX,MAAA;AAAA,IACF;AACA,IAAC,IAAqC,OAAA,GAAU,OAAA;AAAA,EAClD,CAAC,CAAA;AACH;AAE4BC,gBAAAA;AAAA,EAC1B,SAASE,aAAAA,CACP;AAAA,IACE,KAAA;AAAA,IACA,WAAA;AAAA,IACA,aAAA,GAAgB,KAAA;AAAA,IAChB,OAAA,GAAU,KAAA;AAAA,IACV,QAAA,GAAW,KAAA;AAAA,IACX,UAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,OAAA;AAAA,IACA,cAAA;AAAA,IACA,QAAA;AAAA,IACA,cAAA,EAAgB,iBAAA;AAAA,IAChB,GAAG;AAAA,KAEL,YAAA,EACA;AACA,IAAA,MAAM,KAAA,GAAQ,sBAAsB,UAAU,CAAA;AAC9C,IAAA,MAAM,QAAA,GAAWC,aAAgC,IAAI,CAAA;AACrD,IAAA,MAAM,CAAC,mBAAA,EAAqB,sBAAsB,CAAA,GAAIC,cAAAA;AAAA,MACpD,cAAA,IAAkB;AAAA,KACpB;AACA,IAAA,MAAM,eAAe,OAAA,KAAY,MAAA;AACjC,IAAA,MAAM,eAAA,GAAkB,OAAA,CAAQ,YAAA,GAAe,OAAA,GAAU,mBAAmB,CAAA;AAC5E,IAAA,MAAM,SAAS,aAAA,IAAiB,eAAA;AAEhC,IAAAC,eAAA,CAAU,MAAM;AACd,MAAA,IAAI,SAAS,OAAA,EAAS;AACpB,QAAA,QAAA,CAAS,QAAQ,aAAA,GAAgB,aAAA;AAAA,MACnC;AAAA,IACF,CAAA,EAAG,CAAC,aAAa,CAAC,CAAA;AAElB,IAAA,MAAM,YAAA,GAAe,CAAC,KAAA,KAAyC;AAC7D,MAAA,IAAI,QAAA,EAAU;AACd,MAAA,IAAI,CAAC,YAAA,EAAc;AACjB,QAAA,sBAAA,CAAuB,KAAA,CAAM,cAAc,OAAO,CAAA;AAAA,MACpD;AACA,MAAA,QAAA,GAAW,KAAK,CAAA;AAAA,IAClB,CAAA;AAEA,IAAA,uBACEP,eAAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,EAAA;AAAA,UACT,MAAM,KAAA,CAAM,YAAA;AAAA,UACZ,QAAA,IAAY,MAAM,KAAA,CAAM,gBAAA;AAAA,UACxB,UAAA,EAAY,IAAA;AAAA,UACZ;AAAA,SACF;AAAA,QACA,KAAA,EAAO;AAAA,UACL,GAAG,MAAM,MAAA,CAAO,YAAA;AAAA,UAChB,GAAG;AAAA,SACL;AAAA,QAEA,QAAA,EAAA;AAAA,0BAAAA,eAAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,MAAM,KAAA,CAAM,WAAA;AAAA,gBACZ,MAAA,IAAU,MAAM,KAAA,CAAM,kBAAA;AAAA,gBACtB,OAAA,IAAW,MAAM,KAAA,CAAM,kBAAA;AAAA,gBACvB,UAAA,EAAY;AAAA,eACd;AAAA,cACA,KAAA,EAAO;AAAA,gBACL,GAAG,MAAM,MAAA,CAAO;AAAA,eAClB;AAAA,cAEA,QAAA,EAAA;AAAA,gCAAAC,cAAAA;AAAA,kBAAC,OAAA;AAAA,kBAAA;AAAA,oBACE,GAAG,aAAA;AAAA,oBACJ,KAAK,CAAC,OAAA,KAAY,OAAA,CAAQ,OAAA,EAAS,UAAU,YAAY,CAAA;AAAA,oBACzD,IAAA,EAAK,UAAA;AAAA,oBACL,QAAA;AAAA,oBACA,OAAA;AAAA,oBACA,cAAA;AAAA,oBACA,cAAA,EAAc,sBAAsB,OAAA,IAAW,MAAA,CAAA;AAAA,oBAC/C,cAAA,EAAc,gBAAgB,OAAA,GAAU,eAAA;AAAA,oBACxC,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,aAAA,EAAe,YAAY,KAAK,CAAA;AAAA,oBAC1D,QAAA,EAAU;AAAA;AAAA,iBACZ;AAAA,gBACC,yBACCA,cAAAA;AAAA,kBAAC,MAAA;AAAA,kBAAA;AAAA,oBACC,aAAA,EAAY,MAAA;AAAA,oBACZ,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,iBAAA,EAAmB,YAAY,SAAS,CAAA;AAAA,oBAEjE,0BAAgB,QAAA,GAAM;AAAA;AAAA,iBACzB,GACE;AAAA;AAAA;AAAA,WACN;AAAA,UACC,kBAAkB,KAAK,CAAA,IAAK,iBAAA,CAAkB,WAAW,oBACxDD,eAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,GAAG,KAAA,CAAM,KAAA,CAAM,eAAA,EAAiB,UAAA,EAAY,OAAO,CAAA,EACjE,QAAA,EAAA;AAAA,YAAA,iBAAA,CAAkB,KAAK,CAAA,mBACtBC,cAAAA,CAAC,UAAK,SAAA,EAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,aAAA,EAAe,UAAA,EAAY,KAAK,CAAA,EAC7D,iBACH,CAAA,GACE,IAAA;AAAA,YACH,iBAAA,CAAkB,WAAW,CAAA,mBAC5BA,cAAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAW,EAAA;AAAA,kBACT,MAAM,KAAA,CAAM,mBAAA;AAAA,kBACZ,UAAA,EAAY;AAAA,iBACd;AAAA,gBAEC,QAAA,EAAA;AAAA;AAAA,aACH,GACE;AAAA,WAAA,EACN,CAAA,GACE;AAAA;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;ACnIyBC,gBAAAA;AAAA,EACvB,SAASM,UAAAA,CACP;AAAA,IACE,IAAA;AAAA,IACA,QAAA;AAAA,IACA,OAAA,GAAU,KAAA;AAAA,IACV,QAAA,GAAW,KAAA;AAAA,IACX,QAAA,GAAW,KAAA;AAAA,IACX,UAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,cAAA,EAAgB,iBAAA;AAAA,IAChB,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,MAAM,KAAA,GAAQ,sBAAsB,UAAU,CAAA;AAE9C,IAAA,uBACER,eAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,EAAA;AAAA,UACT,MAAM,KAAA,CAAM,cAAA;AAAA,UACZ,OAAA,IAAW,MAAM,KAAA,CAAM,cAAA;AAAA,UACvB,QAAA,IAAY,MAAM,KAAA,CAAM,eAAA;AAAA,UACxB,QAAA,IAAY,MAAM,KAAA,CAAM,eAAA;AAAA,UACxB,UAAA,EAAY,IAAA;AAAA,UACZ;AAAA,SACF;AAAA,QACA,KAAA,EAAO;AAAA,UACL,GAAG,MAAM,MAAA,CAAO,OAAA;AAAA,UAChB,GAAI,OAAA,GAAU,KAAA,CAAM,MAAA,CAAO,cAAA,GAAiB,MAAA;AAAA,UAC5C,GAAI,QAAA,GAAW,KAAA,CAAM,MAAA,CAAO,eAAA,GAAkB,MAAA;AAAA,UAC9C,GAAG;AAAA,SACL;AAAA,QAEC,QAAA,EAAA;AAAA,UAAA,iBAAA,CAAkB,IAAI,CAAA,mBACrBC,cAAAA,CAAC,UAAK,SAAA,EAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,WAAA,EAAa,UAAA,EAAY,IAAI,CAAA,EAC1D,gBACH,CAAA,GACE,IAAA;AAAA,0BACJA,cAAAA;AAAA,YAAC,OAAA;AAAA,YAAA;AAAA,cACE,GAAG,UAAA;AAAA,cACJ,GAAA;AAAA,cACA,QAAA;AAAA,cACA,QAAA;AAAA,cACA,cAAA,EAAc,sBAAsB,OAAA,IAAW,MAAA,CAAA;AAAA,cAC/C,SAAA,EAAW,EAAA;AAAA,gBACT,MAAM,KAAA,CAAM,WAAA;AAAA,gBACZ,MAAM,KAAA,CAAM,YAAA;AAAA,gBACZ,UAAA,EAAY;AAAA;AACd;AAAA,WACF;AAAA,UACC,iBAAA,CAAkB,QAAQ,CAAA,mBACzBA,eAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,KAAA,CAAM,MAAM,eAAA,EAAiB,UAAA,EAAY,QAAQ,CAAA,EAClE,oBACH,CAAA,GACE;AAAA;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;ACrDA,SAAS,gBAAgB,MAAA,EAAuC;AAC9D,EAAA,MAAM,aAAuB,EAAC;AAC9B,EAAA,MAAM,IAAA,uBAAW,GAAA,EAAY;AAE7B,EAAA,MAAA,EAAQ,OAAA,CAAQ,CAAC,KAAA,KAAU;AACzB,IAAA,IAAI,IAAA,CAAK,GAAA,CAAI,KAAK,CAAA,EAAG;AACrB,IAAA,IAAA,CAAK,IAAI,KAAK,CAAA;AACd,IAAA,UAAA,CAAW,KAAK,KAAK,CAAA;AAAA,EACvB,CAAC,CAAA;AAED,EAAA,OAAO,UAAA;AACT;AAEA,SAAS,mBAAA,CACP,OAAA,EACA,YAAA,EACA,SAAA,EACA;AACA,EAAA,IAAI,CAAC,OAAA,CAAQ,MAAA,EAAQ,OAAO,EAAA;AAE5B,EAAA,MAAM,UAAA,GAAa,YAAA,IAAgB,CAAA,GAAI,YAAA,GAAe,CAAA;AACtD,EAAA,KAAA,IAAS,SAAS,CAAA,EAAG,MAAA,IAAU,OAAA,CAAQ,MAAA,EAAQ,UAAU,CAAA,EAAG;AAC1D,IAAA,MAAM,aACH,UAAA,GAAa,MAAA,GAAS,SAAA,GAAY,OAAA,CAAQ,UAAU,OAAA,CAAQ,MAAA;AAC/D,IAAA,IAAI,CAAC,OAAA,CAAQ,SAAS,CAAA,EAAG,QAAA,EAAU;AACjC,MAAA,OAAO,SAAA;AAAA,IACT;AAAA,EACF;AAEA,EAAA,OAAO,EAAA;AACT;AAEA,SAAS,qBAAqB,OAAA,EAAkC;AAC9D,EAAA,OAAO,QAAQ,SAAA,CAAU,CAAC,MAAA,KAAW,CAAC,OAAO,QAAQ,CAAA;AACvD;AAEA,SAAS,eAAA,CAAgB,aAAiC,KAAA,EAAe;AACvE,EAAA,IAAI,WAAA,KAAgB,QAAW,OAAO,KAAA;AACtC,EAAA,IAAI,CAAC,MAAA,CAAO,QAAA,CAAS,WAAW,GAAG,OAAO,KAAA;AAC1C,EAAA,OAAO,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,IAAA,CAAK,GAAA,CAAI,OAAO,IAAA,CAAK,KAAA,CAAM,WAAW,CAAC,CAAC,CAAA;AAC7D;AAEA,SAAS,sBAAsB,MAAA,EAA+B;AAC5D,EAAA,OAAO,CAAA,OAAA,EAAU,OAAO,KAAK,CAAA,CAAA;AAC/B;AAE+BC,gBAAAA;AAAA,EAC7B,SAASO,gBAAAA,CACP;AAAA,IACE,OAAA;AAAA,IACA,KAAA;AAAA,IACA,YAAA;AAAA,IACA,IAAA;AAAA,IACA,WAAA,GAAc,gBAAA;AAAA,IACd,IAAA;AAAA,IACA,OAAA,GAAU,KAAA;AAAA,IACV,QAAA,GAAW,KAAA;AAAA,IACX,QAAA,GAAW,KAAA;AAAA,IACX,cAAA,GAAiB,KAAA;AAAA,IACjB,WAAA;AAAA,IACA,WAAA,GAAc,qBAAA;AAAA,IACd,UAAA,GAAa,YAAA;AAAA,IACb,UAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,EAAA;AAAA,IACA,cAAA,EAAgB,iBAAA;AAAA,IAChB,YAAA,EAAc,eAAA;AAAA,IACd,iBAAA,EAAmB,oBAAA;AAAA,IACnB,aAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,MAAM,KAAA,GAAQ,sBAAsB,UAAU,CAAA;AAC9C,IAAA,MAAM,cAAcC,WAAAA,EAAM;AAC1B,IAAA,MAAM,gBAAgB,EAAA,IAAM,WAAA;AAC5B,IAAA,MAAM,SAAA,GAAY,GAAG,aAAa,CAAA,QAAA,CAAA;AAClC,IAAA,MAAM,SAAA,GAAY,GAAG,aAAa,CAAA,QAAA,CAAA;AAClC,IAAA,MAAM,OAAA,GAAUL,aAA8B,IAAI,CAAA;AAClD,IAAA,MAAM,UAAA,GAAa,WAAW,EAAC;AAC/B,IAAA,MAAM,SAAA,GAAY,cAAA;AAClB,IAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAmB,CAAA,GAAIC,eAAS,KAAK,CAAA;AAC9D,IAAA,MAAM,OAAO,SAAA,IAAa,gBAAA;AAC1B,IAAA,MAAM,CAAC,iBAAA,EAAmB,oBAAoB,CAAA,GAAIA,cAAAA;AAAA,MAAS,MACzD,gBAAgB,YAAY;AAAA,KAC9B;AACA,IAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAIA,cAAAA;AAAA,MAAS,MAC7C,qBAAqB,UAAU;AAAA,KACjC;AACA,IAAA,MAAM,eAAe,KAAA,KAAU,MAAA;AAC/B,IAAA,MAAM,cAAA,GAAiBK,aAAA;AAAA,MACrB,MAAM,eAAA,CAAgB,YAAA,GAAe,KAAA,GAAQ,iBAAiB,CAAA;AAAA,MAC9D,CAAC,YAAA,EAAc,iBAAA,EAAmB,KAAK;AAAA,KACzC;AACA,IAAA,MAAM,gBAAA,GAAmBA,aAAA;AAAA,MACvB,MAAM,IAAI,GAAA,CAAI,cAAc,CAAA;AAAA,MAC5B,CAAC,cAAc;AAAA,KACjB;AACA,IAAA,MAAM,aAAA,GAAgBA,cAAQ,MAAM;AAClC,MAAA,MAAM,GAAA,uBAAU,GAAA,EAAmC;AACnD,MAAA,UAAA,CAAW,OAAA,CAAQ,CAAC,MAAA,KAAW;AAC7B,QAAA,IAAI,CAAC,GAAA,CAAI,GAAA,CAAI,MAAA,CAAO,KAAK,CAAA,EAAG;AAC1B,UAAA,GAAA,CAAI,GAAA,CAAI,MAAA,CAAO,KAAA,EAAO,MAAM,CAAA;AAAA,QAC9B;AAAA,MACF,CAAC,CAAA;AACD,MAAA,OAAO,GAAA;AAAA,IACT,CAAA,EAAG,CAAC,UAAU,CAAC,CAAA;AACf,IAAA,MAAM,eAAA,GAAkBA,aAAA;AAAA,MACtB,MACE,eACG,GAAA,CAAI,CAAC,kBAAkB,aAAA,CAAc,GAAA,CAAI,aAAa,CAAC,CAAA,CACvD,MAAA;AAAA,QACC,CAAC,WAA4C,MAAA,KAAW;AAAA,OAC1D;AAAA,MACJ,CAAC,eAAe,cAAc;AAAA,KAChC;AACA,IAAA,MAAM,iBAAA,GAAoBA,aAAA;AAAA,MACxB,MAAM,qBAAqB,UAAU,CAAA;AAAA,MACrC,CAAC,UAAU;AAAA,KACb;AACA,IAAA,MAAM,mBAAA,GACJ,eAAe,CAAA,IAAK,CAAC,WAAW,WAAW,CAAA,EAAG,WAC1C,WAAA,GACA,iBAAA;AACN,IAAA,MAAM,eAAA,GAAkB,eAAA;AAAA,MACtB,WAAA;AAAA,MACA,eAAA,CAAgB;AAAA,KAClB;AACA,IAAA,MAAM,cAAA,GAAiB,eAAA,CAAgB,KAAA,CAAM,CAAA,EAAG,eAAe,CAAA;AAC/D,IAAA,MAAM,aAAA,GAAgB,eAAA,CAAgB,MAAA,GAAS,cAAA,CAAe,MAAA;AAC9D,IAAA,MAAM,aAAA,GAAgB,gBAAgB,MAAA,KAAW,CAAA;AAEjD,IAAA,MAAM,UAAA,GAAa,CAAC,IAAA,KAAgC;AAClD,MAAA,OAAA,CAAQ,OAAA,GAAU,IAAA;AAClB,MAAA,IAAI,OAAO,QAAQ,UAAA,EAAY;AAC7B,QAAA,GAAA,CAAI,IAAI,CAAA;AAAA,MACV,WAAW,GAAA,EAAK;AACd,QAAA,GAAA,CAAI,OAAA,GAAU,IAAA;AAAA,MAChB;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,OAAA,GAAU,CAAC,QAAA,KAAsB;AACrC,MAAA,IAAI,YAAY,SAAA,EAAW;AAC3B,MAAA,mBAAA,CAAoB,QAAQ,CAAA;AAC5B,MAAA,IAAI,QAAA,EAAU;AACZ,QAAA,cAAA,CAAe,mBAAmB,CAAA;AAAA,MACpC;AAAA,IACF,CAAA;AAEA,IAAAJ,gBAAU,MAAM;AACd,MAAA,IAAI,CAAC,IAAA,IAAQ,SAAA,EAAW,OAAO,MAAA;AAE/B,MAAA,MAAM,iBAAA,GAAoB,CAAC,KAAA,KAAwB;AACjD,QAAA,IAAI,CAAC,OAAA,CAAQ,OAAA,EAAS,QAAA,CAAS,KAAA,CAAM,MAAc,CAAA,EAAG;AACpD,UAAA,mBAAA,CAAoB,KAAK,CAAA;AAAA,QAC3B;AAAA,MACF,CAAA;AAEA,MAAA,QAAA,CAAS,gBAAA,CAAiB,eAAe,iBAAiB,CAAA;AAC1D,MAAA,OAAO,MAAM;AACX,QAAA,QAAA,CAAS,mBAAA,CAAoB,eAAe,iBAAiB,CAAA;AAAA,MAC/D,CAAA;AAAA,IACF,CAAA,EAAG,CAAC,SAAA,EAAW,IAAI,CAAC,CAAA;AAEpB,IAAAA,gBAAU,MAAM;AACd,MAAA,IAAI,mBAAA,IAAuB,CAAA,IAAK,mBAAA,KAAwB,WAAA,EAAa;AACnE,QAAA,cAAA,CAAe,mBAAmB,CAAA;AAAA,MACpC;AAAA,IACF,CAAA,EAAG,CAAC,WAAA,EAAa,mBAAmB,CAAC,CAAA;AAErC,IAAA,MAAM,YAAA,GAAe,CAAC,UAAA,KAAyB;AAC7C,MAAA,MAAM,gBAAA,GAAmB,gBAAgB,UAAU,CAAA;AACnD,MAAA,IAAI,CAAC,YAAA,EAAc;AACjB,QAAA,oBAAA,CAAqB,gBAAgB,CAAA;AAAA,MACvC;AACA,MAAA,aAAA,GAAgB,gBAAgB,CAAA;AAAA,IAClC,CAAA;AAEA,IAAA,MAAM,YAAA,GAAe,CAAC,MAAA,KAA8C;AAClE,MAAA,IAAI,CAAC,MAAA,IAAU,MAAA,CAAO,QAAA,IAAY,QAAA,EAAU;AAC5C,MAAA,MAAM,aAAa,gBAAA,CAAiB,GAAA,CAAI,OAAO,KAAK,CAAA,GAChD,eAAe,MAAA,CAAO,CAAC,aAAA,KAAkB,aAAA,KAAkB,OAAO,KAAK,CAAA,GACvE,CAAC,GAAG,cAAA,EAAgB,OAAO,KAAK,CAAA;AACpC,MAAA,YAAA,CAAa,UAAU,CAAA;AAAA,IACzB,CAAA;AAEA,IAAA,MAAM,YAAA,GAAe,CAAC,MAAA,KAAkC;AACtD,MAAA,IAAI,QAAA,EAAU;AACd,MAAA,YAAA;AAAA,QACE,eAAe,MAAA,CAAO,CAAC,aAAA,KAAkB,aAAA,KAAkB,OAAO,KAAK;AAAA,OACzE;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,WAAA,GAAc,CAAC,SAAA,KAAsB;AACzC,MAAA,MAAM,SAAA,GAAY,mBAAA;AAAA,QAChB,UAAA;AAAA,QACA,mBAAA;AAAA,QACA;AAAA,OACF;AACA,MAAA,IAAI,aAAa,CAAA,EAAG;AAClB,QAAA,cAAA,CAAe,SAAS,CAAA;AAAA,MAC1B;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,aAAA,GAAgB,CAAC,KAAA,KAAyC;AAC9D,MAAA,IAAI,QAAA,EAAU;AAEd,MAAA,IAAI,KAAA,CAAM,GAAA,KAAQ,WAAA,IAAe,KAAA,CAAM,QAAQ,SAAA,EAAW;AACxD,QAAA,KAAA,CAAM,cAAA,EAAe;AACrB,QAAA,IAAI,CAAC,IAAA,EAAM;AACT,UAAA,OAAA,CAAQ,IAAI,CAAA;AACZ,UAAA,cAAA,CAAe,iBAAiB,CAAA;AAChC,UAAA;AAAA,QACF;AACA,QAAA,WAAA,CAAY,KAAA,CAAM,GAAA,KAAQ,WAAA,GAAc,CAAA,GAAI,EAAE,CAAA;AAC9C,QAAA;AAAA,MACF;AAEA,MAAA,IAAI,KAAA,CAAM,QAAQ,MAAA,EAAQ;AACxB,QAAA,KAAA,CAAM,cAAA,EAAe;AACrB,QAAA,OAAA,CAAQ,IAAI,CAAA;AACZ,QAAA,cAAA,CAAe,iBAAiB,CAAA;AAChC,QAAA;AAAA,MACF;AAEA,MAAA,IAAI,KAAA,CAAM,QAAQ,KAAA,EAAO;AACvB,QAAA,KAAA,CAAM,cAAA,EAAe;AACrB,QAAA,OAAA,CAAQ,IAAI,CAAA;AACZ,QAAA,KAAA,IAAS,QAAQ,UAAA,CAAW,MAAA,GAAS,GAAG,KAAA,IAAS,CAAA,EAAG,SAAS,CAAA,EAAG;AAC9D,UAAA,IAAI,CAAC,UAAA,CAAW,KAAK,CAAA,EAAG,QAAA,EAAU;AAChC,YAAA,cAAA,CAAe,KAAK,CAAA;AACpB,YAAA;AAAA,UACF;AAAA,QACF;AACA,QAAA;AAAA,MACF;AAEA,MAAA,IAAI,KAAA,CAAM,GAAA,KAAQ,OAAA,IAAW,KAAA,CAAM,QAAQ,GAAA,EAAK;AAC9C,QAAA,KAAA,CAAM,cAAA,EAAe;AACrB,QAAA,IAAI,CAAC,IAAA,EAAM;AACT,UAAA,OAAA,CAAQ,IAAI,CAAA;AACZ,UAAA;AAAA,QACF;AACA,QAAA,YAAA,CAAa,UAAA,CAAW,mBAAmB,CAAC,CAAA;AAC5C,QAAA;AAAA,MACF;AAEA,MAAA,IAAI,KAAA,CAAM,QAAQ,QAAA,EAAU;AAC1B,QAAA,OAAA,CAAQ,KAAK,CAAA;AAAA,MACf;AAAA,IACF,CAAA;AAEA,IAAA,uBACEP,eAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACE,GAAG,SAAA;AAAA,QACJ,EAAA;AAAA,QACA,GAAA,EAAK,UAAA;AAAA,QACL,SAAA,EAAW,EAAA;AAAA,UACT,MAAM,KAAA,CAAM,cAAA;AAAA,UACZ,kBAAA;AAAA,UACA,IAAA,IAAQ,MAAA;AAAA,UACR,OAAA,IAAW,MAAM,KAAA,CAAM,cAAA;AAAA,UACvB,QAAA,IAAY,MAAM,KAAA,CAAM,eAAA;AAAA,UACxB,UAAA,EAAY,IAAA;AAAA,UACZ;AAAA,SACF;AAAA,QACA,KAAA,EAAO;AAAA,UACL,GAAG,MAAM,MAAA,CAAO,OAAA;AAAA,UAChB,GAAI,OAAA,GAAU,KAAA,CAAM,MAAA,CAAO,cAAA,GAAiB,MAAA;AAAA,UAC5C,GAAI,QAAA,GAAW,KAAA,CAAM,MAAA,CAAO,eAAA,GAAkB,MAAA;AAAA,UAC9C,GAAG;AAAA,SACL;AAAA,QAEC,QAAA,EAAA;AAAA,UAAA,iBAAA,CAAkB,IAAI,CAAA,mBACrBC,cAAAA,CAAC,UAAK,SAAA,EAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,WAAA,EAAa,UAAA,EAAY,IAAI,CAAA,EAC1D,gBACH,CAAA,GACE,IAAA;AAAA,0BACJA,cAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,EAAA,EAAI,SAAA;AAAA,cACJ,IAAA,EAAK,UAAA;AAAA,cACL,QAAA,EAAU,WAAW,EAAA,GAAK,CAAA;AAAA,cAC1B,eAAA,EAAc,SAAA;AAAA,cACd,eAAA,EAAe,IAAA;AAAA,cACf,eAAA,EAAe,SAAA;AAAA,cACf,iBAAe,QAAA,IAAY,MAAA;AAAA,cAC3B,iBAAe,QAAA,IAAY,MAAA;AAAA,cAC3B,cAAA,EAAc,sBAAsB,OAAA,IAAW,MAAA,CAAA;AAAA,cAC/C,YAAA,EAAY,eAAA;AAAA,cACZ,iBAAA,EAAiB,oBAAA;AAAA,cACjB,SAAA,EAAW,EAAA;AAAA,gBACT,MAAM,KAAA,CAAM,WAAA;AAAA,gBACZ,kFAAA;AAAA,gBACA,QAAA,IAAY,qBAAA;AAAA,gBACZ,UAAA,EAAY;AAAA,eACd;AAAA,cACA,OAAA,EAAS,MAAM,OAAA,CAAQ,CAAC,IAAI,CAAA;AAAA,cAC5B,SAAA,EAAW,aAAA;AAAA,cAEX,QAAA,kBAAAD,eAAAA;AAAA,gBAAC,MAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAW,EAAA;AAAA,oBACT,oDAAA;AAAA,oBACA,UAAA,EAAY;AAAA,mBACd;AAAA,kBAEC,QAAA,EAAA;AAAA,oBAAA,cAAA,CAAe,GAAA,CAAI,CAAC,MAAA,qBACnBA,eAAAA;AAAA,sBAAC,MAAA;AAAA,sBAAA;AAAA,wBAEC,SAAA,EAAW,EAAA;AAAA,0BACT,4IAAA;AAAA,0BACA,UAAA,EAAY;AAAA,yBACd;AAAA,wBAEA,QAAA,EAAA;AAAA,0CAAAC,cAAAA;AAAA,4BAAC,MAAA;AAAA,4BAAA;AAAA,8BACC,SAAA,EAAW,EAAA;AAAA,gCACT,mBAAA;AAAA,gCACA,UAAA,EAAY;AAAA,+BACd;AAAA,8BAEC,QAAA,EAAA,MAAA,CAAO;AAAA;AAAA,2BACV;AAAA,0CACAA,cAAAA;AAAA,4BAAC,QAAA;AAAA,4BAAA;AAAA,8BACC,IAAA,EAAK,QAAA;AAAA,8BACL,YAAA,EAAY,YAAY,MAAM,CAAA;AAAA,8BAC9B,QAAA;AAAA,8BACA,SAAA,EAAW,EAAA;AAAA,gCACT,qPAAA;AAAA,gCACA,UAAA,EAAY;AAAA,+BACd;AAAA,8BACA,OAAA,EAAS,CAAC,KAAA,KAAU;AAClB,gCAAA,KAAA,CAAM,cAAA,EAAe;AACrB,gCAAA,KAAA,CAAM,eAAA,EAAgB;AACtB,gCAAA,YAAA,CAAa,MAAM,CAAA;AAAA,8BACrB,CAAA;AAAA,8BACA,WAAA,EAAa,CAAC,KAAA,KAAU;AACtB,gCAAA,KAAA,CAAM,cAAA,EAAe;AACrB,gCAAA,KAAA,CAAM,eAAA,EAAgB;AAAA,8BACxB,CAAA;AAAA,8BACA,SAAA,EAAW,CAAC,KAAA,KAAU,KAAA,CAAM,eAAA,EAAgB;AAAA,8BAE5C,QAAA,kBAAAA,cAAAA,CAAC,MAAA,EAAA,EAAK,aAAA,EAAY,QAAO,QAAA,EAAA,GAAA,EAAC;AAAA;AAAA;AAC5B;AAAA,uBAAA;AAAA,sBAlCK,MAAA,CAAO;AAAA,qBAoCf,CAAA;AAAA,oBACA,aAAA,GAAgB,oBACfD,eAAAA;AAAA,sBAAC,MAAA;AAAA,sBAAA;AAAA,wBACC,SAAA,EAAW,EAAA;AAAA,0BACT,4IAAA;AAAA,0BACA,UAAA,EAAY;AAAA,yBACd;AAAA,wBACD,QAAA,EAAA;AAAA,0BAAA,GAAA;AAAA,0BACG;AAAA;AAAA;AAAA,qBACJ,GACE,IAAA;AAAA,oBACH,gCACCC,cAAAA;AAAA,sBAAC,MAAA;AAAA,sBAAA;AAAA,wBACC,SAAA,EAAW,EAAA;AAAA,0BACT,kBAAA;AAAA,0BACA,MAAM,KAAA,CAAM,iBAAA;AAAA,0BACZ,UAAA,EAAY;AAAA,yBACd;AAAA,wBAEC,QAAA,EAAA;AAAA;AAAA,qBACH,GACE;AAAA;AAAA;AAAA;AACN;AAAA,WACF;AAAA,0BACAA,cAAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,MAAM,KAAA,CAAM,aAAA;AAAA,gBACZ,IAAA,IAAQ,iBAAA;AAAA,gBACR,UAAA,EAAY;AAAA;AACd;AAAA,WACF;AAAA,UACC,IAAA,GACG,cAAA,CAAe,GAAA,CAAI,CAAC,kCAClBA,cAAAA;AAAA,YAAC,OAAA;AAAA,YAAA;AAAA,cAEC,IAAA,EAAK,QAAA;AAAA,cACL,IAAA;AAAA,cACA,KAAA,EAAO,aAAA;AAAA,cACP,WAAW,UAAA,EAAY;AAAA,aAAA;AAAA,YAJlB;AAAA,WAMR,CAAA,GACD,IAAA;AAAA,UACH,uBACCA,cAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,EAAA,EAAI,SAAA;AAAA,cACJ,IAAA,EAAK,SAAA;AAAA,cACL,sBAAA,EAAqB,MAAA;AAAA,cACrB,iBAAA,EAAiB,SAAA;AAAA,cACjB,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,UAAA,EAAY,YAAY,IAAI,CAAA;AAAA,cACtD,KAAA,EAAO,MAAM,MAAA,CAAO,UAAA;AAAA,cAEnB,qBAAW,MAAA,GAAS,CAAA,GACnB,WAAW,GAAA,CAAI,CAAC,QAAQ,KAAA,KAAU;AAChC,gBAAA,MAAM,QAAA,GAAW,gBAAA,CAAiB,GAAA,CAAI,MAAA,CAAO,KAAK,CAAA;AAClD,gBAAA,MAAM,SAAS,KAAA,KAAU,mBAAA;AACzB,gBAAA,uBACED,eAAAA;AAAA,kBAAC,QAAA;AAAA,kBAAA;AAAA,oBAEC,IAAA,EAAK,QAAA;AAAA,oBACL,IAAA,EAAK,QAAA;AAAA,oBACL,eAAA,EAAe,QAAA;AAAA,oBACf,UAAU,MAAA,CAAO,QAAA;AAAA,oBACjB,SAAA,EAAW,EAAA;AAAA,sBACT,MAAM,KAAA,CAAM,YAAA;AAAA,sBACZ,OAAA;AAAA,sBACA,MAAA,IAAU,MAAM,KAAA,CAAM,kBAAA;AAAA,sBACtB,QAAA,IAAY,MAAM,KAAA,CAAM,oBAAA;AAAA,sBACxB,MAAA,CAAO,QAAA,IAAY,KAAA,CAAM,KAAA,CAAM,oBAAA;AAAA,sBAC/B,UAAA,EAAY;AAAA,qBACd;AAAA,oBACA,KAAA,EAAO;AAAA,sBACL,GAAG,MAAM,MAAA,CAAO,YAAA;AAAA,sBAChB,GAAI,MAAA,GAAS,KAAA,CAAM,MAAA,CAAO,kBAAA,GAAqB,MAAA;AAAA,sBAC/C,GAAI,QAAA,GACA,KAAA,CAAM,MAAA,CAAO,oBAAA,GACb;AAAA,qBACN;AAAA,oBACA,cAAc,MAAM;AAClB,sBAAA,IAAI,CAAC,OAAO,QAAA,EAAU;AACpB,wBAAA,cAAA,CAAe,KAAK,CAAA;AAAA,sBACtB;AAAA,oBACF,CAAA;AAAA,oBACA,WAAA,EAAa,CAAC,KAAA,KAAU,KAAA,CAAM,cAAA,EAAe;AAAA,oBAC7C,OAAA,EAAS,MAAM,YAAA,CAAa,MAAM,CAAA;AAAA,oBAElC,QAAA,EAAA;AAAA,sCAAAC,cAAAA;AAAA,wBAAC,MAAA;AAAA,wBAAA;AAAA,0BACC,aAAA,EAAY,MAAA;AAAA,0BACZ,SAAA,EAAW,EAAA;AAAA,4BACT,yGAAA;AAAA,4BACA,QAAA,IAAY,sDAAA;AAAA,4BACZ,UAAA,EAAY;AAAA,2BACd;AAAA,0BAEC,qBAAW,QAAA,GAAM;AAAA;AAAA,uBACpB;AAAA,sCACAA,cAAAA;AAAA,wBAAC,MAAA;AAAA,wBAAA;AAAA,0BACC,SAAA,EAAW,EAAA;AAAA,4BACT,yBAAA;AAAA,4BACA,UAAA,EAAY;AAAA,2BACd;AAAA,0BAEC,QAAA,EAAA,MAAA,CAAO;AAAA;AAAA;AACV;AAAA,mBAAA;AAAA,kBA7CK,MAAA,CAAO;AAAA,iBA8Cd;AAAA,cAEJ,CAAC,oBAEDA,cAAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAW,EAAA;AAAA,oBACT,2CAAA;AAAA,oBACA,UAAA,EAAY;AAAA,mBACd;AAAA,kBAEC,QAAA,EAAA;AAAA;AAAA;AACH;AAAA,WAEJ,GACE;AAAA;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;ACldA,SAAS,UAAA,CAAW,SAA6B,KAAA,EAA2B;AAC1E,EAAA,IAAI,KAAA,KAAU,QAAW,OAAO,MAAA;AAChC,EAAA,OAAO,QAAQ,IAAA,CAAK,CAAC,MAAA,KAAW,MAAA,CAAO,UAAU,KAAK,CAAA;AACxD;AAEA,SAAS,eAAA,CACP,SACA,YAAA,EACA;AACA,EAAA,IAAI,OAAO,iBAAiB,QAAA,EAAU;AACpC,IAAA,OAAO,YAAA;AAAA,EACT;AACA,EAAA,OAAO,EAAA;AACT;AAEA,SAASW,oBAAAA,CACP,OAAA,EACA,YAAA,EACA,SAAA,EACA;AACA,EAAA,IAAI,CAAC,OAAA,CAAQ,MAAA,EAAQ,OAAO,EAAA;AAE5B,EAAA,KAAA,IAAS,SAAS,CAAA,EAAG,MAAA,IAAU,OAAA,CAAQ,MAAA,EAAQ,UAAU,CAAA,EAAG;AAC1D,IAAA,MAAM,aACH,YAAA,GAAe,MAAA,GAAS,SAAA,GAAY,OAAA,CAAQ,UAAU,OAAA,CAAQ,MAAA;AACjE,IAAA,IAAI,CAAC,OAAA,CAAQ,SAAS,CAAA,EAAG,QAAA,EAAU;AACjC,MAAA,OAAO,SAAA;AAAA,IACT;AAAA,EACF;AAEA,EAAA,OAAO,EAAA;AACT;AAE0BV,gBAAAA;AAAA,EACxB,SAASW,WAAAA,CACP;AAAA,IACE,OAAA;AAAA,IACA,WAAA;AAAA,IACA,IAAA;AAAA,IACA,OAAA,GAAU,KAAA;AAAA,IACV,QAAA,GAAW,KAAA;AAAA,IACX,cAAA,GAAiB,KAAA;AAAA,IACjB,UAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,QAAA;AAAA,IACA,KAAA;AAAA,IACA,YAAA;AAAA,IACA,QAAA;AAAA,IACA,IAAA;AAAA,IACA,EAAA;AAAA,IACA,QAAA;AAAA,IACA,cAAA,EAAgB,iBAAA;AAAA,IAChB,YAAA,EAAc,eAAA;AAAA,IACd,iBAAA,EAAmB,oBAAA;AAAA,IACnB,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,MAAM,KAAA,GAAQ,sBAAsB,UAAU,CAAA;AAC9C,IAAA,MAAM,cAAcH,WAAAA,EAAM;AAC1B,IAAA,MAAM,WAAW,EAAA,IAAM,WAAA;AACvB,IAAA,MAAM,SAAA,GAAY,GAAG,QAAQ,CAAA,QAAA,CAAA;AAC7B,IAAA,MAAM,OAAA,GAAUL,aAA8B,IAAI,CAAA;AAClD,IAAA,MAAM,SAAA,GAAYA,aAAiC,IAAI,CAAA;AACvD,IAAA,MAAM,UAAA,GAAa,WAAW,EAAC;AAC/B,IAAA,MAAM,cAAA,GAAiB,WAAW,MAAA,GAAS,CAAA;AAC3C,IAAA,MAAM,SAAA,GAAY,cAAA;AAClB,IAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAmB,CAAA,GAAIC,eAAS,KAAK,CAAA;AAC9D,IAAA,MAAM,OAAO,SAAA,IAAa,gBAAA;AAC1B,IAAA,MAAM,CAAC,iBAAA,EAAmB,oBAAoB,CAAA,GAAIA,cAAAA;AAAA,MAAS,MACzD,eAAA,CAAgB,UAAA,EAAY,YAAY;AAAA,KAC1C;AACA,IAAA,MAAM,eAAe,KAAA,KAAU,MAAA;AAC/B,IAAA,MAAM,aAAA,GAAgB,MAAA,CAAO,YAAA,GAAe,KAAA,GAAQ,iBAAiB,CAAA;AACrE,IAAA,MAAM,cAAA,GAAiB,UAAA,CAAW,UAAA,EAAY,aAAa,CAAA;AAC3D,IAAA,MAAM,WAAA,GAAcK,cAAQ,MAAM;AAChC,MAAA,MAAM,gBAAgB,UAAA,CAAW,SAAA;AAAA,QAC/B,CAAC,MAAA,KAAW,MAAA,CAAO,KAAA,KAAU,aAAA,IAAiB,CAAC,MAAA,CAAO;AAAA,OACxD;AACA,MAAA,IAAI,aAAA,IAAiB,GAAG,OAAO,aAAA;AAC/B,MAAA,OAAO,WAAW,SAAA,CAAU,CAAC,MAAA,KAAW,CAAC,OAAO,QAAQ,CAAA;AAAA,IAC1D,CAAA,EAAG,CAAC,UAAA,EAAY,aAAa,CAAC,CAAA;AAC9B,IAAA,MAAM,YAAA,GAAe,gBAAgB,KAAA,IAAS,WAAA;AAC9C,IAAA,MAAM,gBAAgB,CAAC,cAAA;AAEvB,IAAA,MAAM,YAAA,GAAe,CAAC,IAAA,KAAmC;AACvD,MAAA,SAAA,CAAU,OAAA,GAAU,IAAA;AACpB,MAAA,IAAI,OAAO,QAAQ,UAAA,EAAY;AAC7B,QAAA,GAAA,CAAI,IAAI,CAAA;AAAA,MACV,WAAW,GAAA,EAAK;AACd,QAAA,GAAA,CAAI,OAAA,GAAU,IAAA;AAAA,MAChB;AAAA,IACF,CAAA;AAEA,IAAAJ,gBAAU,MAAM;AACd,MAAA,IAAI,CAAC,IAAA,IAAQ,SAAA,EAAW,OAAO,MAAA;AAE/B,MAAA,MAAM,iBAAA,GAAoB,CAAC,KAAA,KAAwB;AACjD,QAAA,IAAI,CAAC,OAAA,CAAQ,OAAA,EAAS,QAAA,CAAS,KAAA,CAAM,MAAc,CAAA,EAAG;AACpD,UAAA,mBAAA,CAAoB,KAAK,CAAA;AAAA,QAC3B;AAAA,MACF,CAAA;AAEA,MAAA,QAAA,CAAS,gBAAA,CAAiB,eAAe,iBAAiB,CAAA;AAC1D,MAAA,OAAO,MAAM;AACX,QAAA,QAAA,CAAS,mBAAA,CAAoB,eAAe,iBAAiB,CAAA;AAAA,MAC/D,CAAA;AAAA,IACF,CAAA,EAAG,CAAC,SAAA,EAAW,IAAI,CAAC,CAAA;AAEpB,IAAA,MAAM,YAAA,GAAe,CAAC,SAAA,KAAsB;AAC1C,MAAA,MAAM,gBAAgB,SAAA,CAAU,OAAA;AAChC,MAAA,IAAI,CAAC,aAAA,EAAe;AACpB,MAAA,MAAM,cAAc,MAAA,CAAO,wBAAA;AAAA,QACzB,iBAAA,CAAkB,SAAA;AAAA,QAClB;AAAA,OACF,EAAG,GAAA;AACH,MAAA,WAAA,EAAa,IAAA,CAAK,eAAe,SAAS,CAAA;AAC1C,MAAA,aAAA,CAAc,aAAA,CAAc,IAAI,KAAA,CAAM,QAAA,EAAU,EAAE,OAAA,EAAS,IAAA,EAAM,CAAC,CAAA;AAAA,IACpE,CAAA;AAEA,IAAA,MAAM,WAAA,GAAc,CAAC,SAAA,EAAmB,cAAA,KAA6B;AACnE,MAAA,IAAI,kBAAkB,QAAA,EAAU;AAChC,MAAA,IAAI,CAAC,YAAA,EAAc;AACjB,QAAA,oBAAA,CAAqB,SAAS,CAAA;AAAA,MAChC;AACA,MAAA,YAAA,CAAa,SAAS,CAAA;AACtB,MAAA,IAAI,CAAC,SAAA,EAAW;AACd,QAAA,mBAAA,CAAoB,KAAK,CAAA;AAAA,MAC3B;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,WAAA,GAAc,CAAC,SAAA,KAAsB;AACzC,MAAA,MAAM,YAAA,GAAe,WAAA,IAAe,CAAA,GAAI,WAAA,GAAc,CAAA;AACtD,MAAA,MAAM,SAAA,GAAYK,oBAAAA,CAAoB,UAAA,EAAY,YAAA,EAAc,SAAS,CAAA;AACzE,MAAA,IAAI,aAAa,CAAA,EAAG;AAClB,QAAA,WAAA,CAAY,WAAW,SAAS,CAAA,CAAE,OAAO,UAAA,CAAW,SAAS,EAAE,QAAQ,CAAA;AAAA,MACzE;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,aAAA,GAAgB,CAAC,KAAA,KAA4C;AACjE,MAAA,IAAI,QAAA,EAAU;AAEd,MAAA,IAAI,KAAA,CAAM,GAAA,KAAQ,WAAA,IAAe,KAAA,CAAM,QAAQ,SAAA,EAAW;AACxD,QAAA,KAAA,CAAM,cAAA,EAAe;AACrB,QAAA,IAAI,CAAC,IAAA,EAAM;AACT,UAAA,mBAAA,CAAoB,IAAI,CAAA;AACxB,UAAA;AAAA,QACF;AACA,QAAA,WAAA,CAAY,KAAA,CAAM,GAAA,KAAQ,WAAA,GAAc,CAAA,GAAI,EAAE,CAAA;AAC9C,QAAA;AAAA,MACF;AAEA,MAAA,IAAI,KAAA,CAAM,GAAA,KAAQ,OAAA,IAAW,KAAA,CAAM,QAAQ,GAAA,EAAK;AAC9C,QAAA,KAAA,CAAM,cAAA,EAAe;AACrB,QAAA,IAAI,CAAC,SAAA,EAAW;AACd,UAAA,mBAAA,CAAoB,CAAC,OAAA,KAAY,CAAC,OAAO,CAAA;AAAA,QAC3C;AACA,QAAA;AAAA,MACF;AAEA,MAAA,IAAI,KAAA,CAAM,QAAQ,QAAA,EAAU;AAC1B,QAAA,mBAAA,CAAoB,KAAK,CAAA;AAAA,MAC3B;AAAA,IACF,CAAA;AAEA,IAAA,IAAI,CAAC,cAAA,EAAgB;AACnB,MAAA,uBACEZ,eAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAW,EAAA;AAAA,YACT,MAAM,KAAA,CAAM,cAAA;AAAA,YACZ,OAAA,IAAW,MAAM,KAAA,CAAM,cAAA;AAAA,YACvB,QAAA,IAAY,MAAM,KAAA,CAAM,eAAA;AAAA,YACxB,UAAA,EAAY,IAAA;AAAA,YACZ;AAAA,WACF;AAAA,UACA,KAAA,EAAO;AAAA,YACL,GAAG,MAAM,MAAA,CAAO,OAAA;AAAA,YAChB,GAAI,OAAA,GAAU,KAAA,CAAM,MAAA,CAAO,cAAA,GAAiB,MAAA;AAAA,YAC5C,GAAI,QAAA,GAAW,KAAA,CAAM,MAAA,CAAO,eAAA,GAAkB,MAAA;AAAA,YAC9C,GAAG;AAAA,WACL;AAAA,UAEC,QAAA,EAAA;AAAA,YAAA,iBAAA,CAAkB,IAAI,CAAA,mBACrBC,cAAAA,CAAC,UAAK,SAAA,EAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,WAAA,EAAa,UAAA,EAAY,IAAI,CAAA,EAC1D,gBACH,CAAA,GACE,IAAA;AAAA,4BACJD,eAAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBACE,GAAG,WAAA;AAAA,gBACJ,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,IAAA;AAAA,gBACA,KAAA;AAAA,gBACA,YAAA;AAAA,gBACA,QAAA;AAAA,gBACA,QAAA;AAAA,gBACA,cAAA,EAAc,sBAAsB,OAAA,IAAW,MAAA,CAAA;AAAA,gBAC/C,YAAA,EAAY,eAAA;AAAA,gBACZ,iBAAA,EAAiB,oBAAA;AAAA,gBACjB,QAAA;AAAA,gBACA,SAAA,EAAW,EAAA;AAAA,kBACT,MAAM,KAAA,CAAM,WAAA;AAAA,kBACZ,MAAM,KAAA,CAAM,aAAA;AAAA,kBACZ,UAAA,EAAY;AAAA,iBACd;AAAA,gBAEC,QAAA,EAAA;AAAA,kBAAA,iBAAA,CAAkB,WAAW,CAAA,mBAC5BC,cAAAA,CAAC,QAAA,EAAA,EAAO,OAAM,EAAA,EAAG,QAAA,EAAQ,IAAA,EACtB,QAAA,EAAA,WAAA,EACH,CAAA,GACE,IAAA;AAAA,kBACH;AAAA;AAAA;AAAA,aACH;AAAA,4BACAA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,KAAA,CAAM,MAAM,aAAA,EAAe;AAAA;AAAA;AAAA,OAC9C;AAAA,IAEJ;AAEA,IAAA,uBACED,eAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK,OAAA;AAAA,QACL,SAAA,EAAW,EAAA;AAAA,UACT,MAAM,KAAA,CAAM,cAAA;AAAA,UACZ,kBAAA;AAAA,UACA,IAAA,IAAQ,MAAA;AAAA,UACR,OAAA,IAAW,MAAM,KAAA,CAAM,cAAA;AAAA,UACvB,QAAA,IAAY,MAAM,KAAA,CAAM,eAAA;AAAA,UACxB,UAAA,EAAY,IAAA;AAAA,UACZ;AAAA,SACF;AAAA,QACA,KAAA,EAAO;AAAA,UACL,GAAG,MAAM,MAAA,CAAO,OAAA;AAAA,UAChB,GAAI,OAAA,GAAU,KAAA,CAAM,MAAA,CAAO,cAAA,GAAiB,MAAA;AAAA,UAC5C,GAAI,QAAA,GAAW,KAAA,CAAM,MAAA,CAAO,eAAA,GAAkB,MAAA;AAAA,UAC9C,GAAG;AAAA,SACL;AAAA,QAEC,QAAA,EAAA;AAAA,UAAA,iBAAA,CAAkB,IAAI,CAAA,mBACrBC,cAAAA,CAAC,UAAK,SAAA,EAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,WAAA,EAAa,UAAA,EAAY,IAAI,CAAA,EAC1D,gBACH,CAAA,GACE,IAAA;AAAA,0BACJA,cAAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,QAAA;AAAA,cACL,EAAA,EAAI,GAAG,QAAQ,CAAA,OAAA,CAAA;AAAA,cACf,QAAA;AAAA,cACA,eAAA,EAAc,SAAA;AAAA,cACd,eAAA,EAAe,IAAA;AAAA,cACf,eAAA,EAAe,SAAA;AAAA,cACf,cAAA,EAAc,sBAAsB,OAAA,IAAW,MAAA,CAAA;AAAA,cAC/C,YAAA,EAAY,eAAA;AAAA,cACZ,iBAAA,EAAiB,oBAAA;AAAA,cACjB,SAAA,EAAW,EAAA;AAAA,gBACT,MAAM,KAAA,CAAM,WAAA;AAAA,gBACZ,MAAM,KAAA,CAAM,aAAA;AAAA,gBACZ,6BAAA;AAAA,gBACA,UAAA,EAAY;AAAA,eACd;AAAA,cACA,SAAS,MAAM;AACb,gBAAA,IAAI,CAAC,SAAA,EAAW;AACd,kBAAA,mBAAA,CAAoB,CAAC,OAAA,KAAY,CAAC,OAAO,CAAA;AAAA,gBAC3C;AAAA,cACF,CAAA;AAAA,cACA,SAAA,EAAW,aAAA;AAAA,cAEX,QAAA,kBAAAA,cAAAA;AAAA,gBAAC,MAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAW,EAAA;AAAA,oBACT,yBAAA;AAAA,oBACA,aAAA,IAAiB,MAAM,KAAA,CAAM,iBAAA;AAAA,oBAC7B,iBAAiB,UAAA,EAAY;AAAA,mBAC/B;AAAA,kBAEC,QAAA,EAAA;AAAA;AAAA;AACH;AAAA,WACF;AAAA,0BACAA,cAAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,MAAM,KAAA,CAAM,aAAA;AAAA,gBACZ,IAAA,IAAQ;AAAA;AACV;AAAA,WACF;AAAA,0BACAD,eAAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACE,GAAG,WAAA;AAAA,cACJ,GAAA,EAAK,YAAA;AAAA,cACL,EAAA;AAAA,cACA,IAAA;AAAA,cACA,KAAA,EAAO,aAAA;AAAA,cACP,QAAA;AAAA,cACA,QAAA;AAAA,cACA,aAAA,EAAY,MAAA;AAAA,cACZ,QAAA,EAAU,EAAA;AAAA,cACV,SAAA,EAAW,MAAM,KAAA,CAAM,YAAA;AAAA,cACvB,QAAA;AAAA,cAEC,QAAA,EAAA;AAAA,gBAAA,iBAAA,CAAkB,WAAW,CAAA,mBAC5BC,cAAAA,CAAC,QAAA,EAAA,EAAO,OAAM,EAAA,EAAG,QAAA,EAAQ,IAAA,EACtB,QAAA,EAAA,WAAA,EACH,CAAA,GACE,IAAA;AAAA,gBACH,UAAA,CAAW,GAAA,CAAI,CAAC,MAAA,qBACfA,cAAAA;AAAA,kBAAC,QAAA;AAAA,kBAAA;AAAA,oBAEC,OAAO,MAAA,CAAO,KAAA;AAAA,oBACd,UAAU,MAAA,CAAO,QAAA;AAAA,oBAEhB,iBAAO,MAAA,CAAO,KAAA,KAAU,QAAA,GAAW,MAAA,CAAO,QAAQ,MAAA,CAAO;AAAA,mBAAA;AAAA,kBAJrD,MAAA,CAAO;AAAA,iBAMf;AAAA;AAAA;AAAA,WACH;AAAA,UACC,uBACCA,cAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,EAAA,EAAI,SAAA;AAAA,cACJ,IAAA,EAAK,SAAA;AAAA,cACL,iBAAA,EAAiB,GAAG,QAAQ,CAAA,OAAA,CAAA;AAAA,cAC5B,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,UAAA,EAAY,YAAY,IAAI,CAAA;AAAA,cACtD,KAAA,EAAO,MAAM,MAAA,CAAO,UAAA;AAAA,cAEnB,QAAA,EAAA,UAAA,CAAW,GAAA,CAAI,CAAC,MAAA,EAAQ,KAAA,KAAU;AACjC,gBAAA,MAAM,QAAA,GAAW,OAAO,KAAA,KAAU,aAAA;AAClC,gBAAA,MAAM,SAAS,KAAA,KAAU,WAAA;AACzB,gBAAA,uBACEA,cAAAA;AAAA,kBAAC,QAAA;AAAA,kBAAA;AAAA,oBAEC,IAAA,EAAK,QAAA;AAAA,oBACL,IAAA,EAAK,QAAA;AAAA,oBACL,eAAA,EAAe,QAAA;AAAA,oBACf,UAAU,MAAA,CAAO,QAAA;AAAA,oBACjB,SAAA,EAAW,EAAA;AAAA,sBACT,MAAM,KAAA,CAAM,YAAA;AAAA,sBACZ,MAAA,IAAU,MAAM,KAAA,CAAM,kBAAA;AAAA,sBACtB,QAAA,IAAY,MAAM,KAAA,CAAM,oBAAA;AAAA,sBACxB,MAAA,CAAO,QAAA,IAAY,KAAA,CAAM,KAAA,CAAM,oBAAA;AAAA,sBAC/B,UAAA,EAAY;AAAA,qBACd;AAAA,oBACA,KAAA,EAAO;AAAA,sBACL,GAAG,MAAM,MAAA,CAAO,YAAA;AAAA,sBAChB,GAAI,MAAA,GAAS,KAAA,CAAM,MAAA,CAAO,kBAAA,GAAqB,MAAA;AAAA,sBAC/C,GAAI,QAAA,GAAW,KAAA,CAAM,MAAA,CAAO,oBAAA,GAAuB;AAAA,qBACrD;AAAA,oBACA,WAAA,EAAa,CAAC,KAAA,KAAU,KAAA,CAAM,cAAA,EAAe;AAAA,oBAC7C,SAAS,MAAM,WAAA,CAAY,MAAA,CAAO,KAAA,EAAO,OAAO,QAAQ,CAAA;AAAA,oBAExD,0BAAAA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,yBAAA,EAA2B,iBAAO,KAAA,EAAM;AAAA,mBAAA;AAAA,kBApBnD,MAAA,CAAO;AAAA,iBAqBd;AAAA,cAEJ,CAAC;AAAA;AAAA,WACH,GACE;AAAA;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;ACxW0BC,gBAAAA;AAAA,EACxB,SAASY,WAAAA,CACP;AAAA,IACE,KAAA;AAAA,IACA,WAAA;AAAA,IACA,QAAA,GAAW,KAAA;AAAA,IACX,UAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,OAAA;AAAA,IACA,cAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,MAAM,KAAA,GAAQ,sBAAsB,UAAU,CAAA;AAC9C,IAAA,MAAM,CAAC,mBAAA,EAAqB,sBAAsB,CAAA,GAAIR,cAAAA;AAAA,MACpD,cAAA,IAAkB;AAAA,KACpB;AACA,IAAA,MAAM,eAAe,OAAA,KAAY,MAAA;AACjC,IAAA,MAAM,eAAA,GAAkB,eAAe,OAAA,GAAU,mBAAA;AAEjD,IAAA,MAAM,YAAA,GAAe,CAAC,KAAA,KAAyC;AAC7D,MAAA,IAAI,CAAC,YAAA,EAAc;AACjB,QAAA,sBAAA,CAAuB,KAAA,CAAM,cAAc,OAAO,CAAA;AAAA,MACpD;AACA,MAAA,QAAA,GAAW,KAAK,CAAA;AAAA,IAClB,CAAA;AAEA,IAAA,uBACEN,eAAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,EAAA;AAAA,UACT,MAAM,KAAA,CAAM,UAAA;AAAA,UACZ,QAAA,IAAY,MAAM,KAAA,CAAM,cAAA;AAAA,UACxB,UAAA,EAAY,IAAA;AAAA,UACZ;AAAA,SACF;AAAA,QACA,KAAA,EAAO;AAAA,UACL,GAAG,MAAM,MAAA,CAAO,UAAA;AAAA,UAChB,GAAG;AAAA,SACL;AAAA,QAEA,QAAA,EAAA;AAAA,0BAAAA,eAAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,MAAM,KAAA,CAAM,WAAA;AAAA,gBACZ,eAAA,IAAmB,MAAM,KAAA,CAAM,aAAA;AAAA,gBAC/B,UAAA,EAAY;AAAA,eACd;AAAA,cACA,KAAA,EAAO,MAAM,MAAA,CAAO,WAAA;AAAA,cAEpB,QAAA,EAAA;AAAA,gCAAAC,cAAAA;AAAA,kBAAC,OAAA;AAAA,kBAAA;AAAA,oBACE,GAAG,WAAA;AAAA,oBACJ,GAAA;AAAA,oBACA,IAAA,EAAK,UAAA;AAAA,oBACL,QAAA;AAAA,oBACA,OAAA;AAAA,oBACA,cAAA;AAAA,oBACA,QAAA,EAAU,YAAA;AAAA,oBACV,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,WAAA,EAAa,YAAY,KAAK;AAAA;AAAA,iBAC1D;AAAA,gCACAA,cAAAA;AAAA,kBAAC,MAAA;AAAA,kBAAA;AAAA,oBACC,SAAA,EAAW,EAAA;AAAA,sBACT,MAAM,KAAA,CAAM,WAAA;AAAA,sBACZ,eAAA,IAAmB,eAAA;AAAA,sBACnB,UAAA,EAAY;AAAA,qBACd;AAAA,oBACA,KAAA,EAAO,MAAM,MAAA,CAAO;AAAA;AAAA;AACtB;AAAA;AAAA,WACF;AAAA,UAEC,kBAAkB,KAAK,CAAA,IAAK,iBAAA,CAAkB,WAAW,oBACxDD,eAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,GAAG,KAAA,CAAM,KAAA,CAAM,aAAA,EAAe,UAAA,EAAY,OAAO,CAAA,EAC/D,QAAA,EAAA;AAAA,YAAA,iBAAA,CAAkB,KAAK,CAAA,mBACtBC,cAAAA,CAAC,UAAK,SAAA,EAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,WAAA,EAAa,UAAA,EAAY,KAAK,CAAA,EAC3D,iBACH,CAAA,GACE,IAAA;AAAA,YACH,iBAAA,CAAkB,WAAW,CAAA,mBAC5BA,cAAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAW,EAAA;AAAA,kBACT,MAAM,KAAA,CAAM,iBAAA;AAAA,kBACZ,UAAA,EAAY;AAAA,iBACd;AAAA,gBAEC,QAAA,EAAA;AAAA;AAAA,aACH,GACE;AAAA,WAAA,EACN,CAAA,GACE;AAAA;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;ACtEA,IAAM,yBAAA,GAA4B,yCAAA;AASlC,IAAM,gBAAA,GAAmBc,oBAA4C,IAAI,CAAA;AAEzE,SAAS,oBAAoB,UAAA,EAA6B;AACxD,EAAA,MAAM,OAAA,GAAUC,iBAAW,gBAAgB,CAAA;AAC3C,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,OAAO;AAAA,MACL,GAAG,OAAA;AAAA,MACH,KAAA,EAAO,UAAA,GAAa,qBAAA,CAAsB,UAAU,IAAI,OAAA,CAAQ,KAAA;AAAA,MAChE,UAAA,EAAY,cAAc,OAAA,CAAQ;AAAA,KACpC;AAAA,EACF;AAEA,EAAA,MAAM,KAAA,GAAQ,sBAAsB,UAAU,CAAA;AAC9C,EAAA,OAAO;AAAA,IACL,UAAA;AAAA,IACA,KAAA;AAAA,IACA,qBAAqB,MAAM;AAAA,IAAC;AAAA,GAC9B;AACF;AAEA,SAAS,UAAU,KAAA,EAAyB;AAC1C,EAAA,IAAI,KAAA,KAAU,QAAW,OAAO,MAAA;AAChC,EAAA,OAAO,OAAO,KAAA,KAAU,QAAA,GAAW,CAAA,EAAG,KAAK,CAAA,EAAA,CAAA,GAAO,KAAA;AACpD;AAEA,SAAS,UAAA,CAAW,KAAA,EAAe,QAAA,EAAmB,QAAA,EAAmB;AACvE,EAAA,MAAM,MAAM,QAAA,IAAY,EAAA;AACxB,EAAA,MAAM,GAAA,GAAM,YAAY,MAAA,CAAO,iBAAA;AAC/B,EAAA,OAAO,KAAK,GAAA,CAAI,IAAA,CAAK,IAAI,KAAA,EAAO,GAAG,GAAG,GAAG,CAAA;AAC3C;AAEA,SAAS,kBAAA,CACP,KAAA,EACA,QAAA,EACA,cAAA,EACA;AACA,EAAA,IAAI,CAAC,KAAA,IAAS,QAAA,KAAa,cAAA,EAAgB,OAAO,MAAA;AAClD,EAAA,MAAM,SAAA,GAAY,KAAA,CAAM,OAAA,CAAQ,QAAQ,CAAA;AACxC,EAAA,MAAM,OAAA,GAAU,KAAA,CAAM,OAAA,CAAQ,cAAc,CAAA;AAC5C,EAAA,IAAI,SAAA,GAAY,CAAA,IAAK,OAAA,GAAU,CAAA,EAAG,OAAO,MAAA;AAEzC,EAAA,MAAM,IAAA,GAAO,CAAC,GAAG,KAAK,CAAA;AACtB,EAAA,MAAM,CAAC,KAAK,CAAA,GAAI,IAAA,CAAK,MAAA,CAAO,WAAW,CAAC,CAAA;AACxC,EAAA,IAAA,CAAK,MAAA,CAAO,OAAA,EAAS,CAAA,EAAG,KAAK,CAAA;AAC7B,EAAA,OAAO,IAAA;AACT;AAEA,SAAS,cAAc,SAAA,EAAoC;AACzD,EAAA,QAAQ,SAAA;AAAW,IACjB,KAAK,KAAA;AACH,MAAA,OAAO,WAAA;AAAA,IACT,KAAK,MAAA;AACH,MAAA,OAAO,YAAA;AAAA,IACT;AACE,MAAA,OAAO,MAAA;AAAA;AAEb;AAEA,SAAS,aAAA,CAAc;AAAA,EACrB,SAAA;AAAA,EACA;AACF,CAAA,EAGG;AACD,EAAA,uBACEf,cAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,aAAA,EAAY,MAAA;AAAA,MACZ,SAAA,EAAW,EAAA;AAAA,QACT,SAAA;AAAA,QACA,cAAc,MAAA,IAAU,YAAA;AAAA,QAAA,CACvB,CAAC,SAAA,IAAa,SAAA,KAAc,MAAA,KAAW;AAAA,OAC1C;AAAA,MACD,QAAA,EAAA;AAAA;AAAA,GAED;AAEJ;AAEA,SAAS,cAAA,GAAiB;AACxB,EAAA,uBACED,eAAAA,CAAC,MAAA,EAAA,EAAK,aAAA,EAAY,MAAA,EAAO,WAAU,cAAA,EACjC,QAAA,EAAA;AAAA,oBAAAC,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,qCAAA,EAAsC,CAAA;AAAA,oBACtDA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,qCAAA,EAAsC,CAAA;AAAA,oBACtDA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,qCAAA,EAAsC;AAAA,GAAA,EACxD,CAAA;AAEJ;AA0K6BC,gBAAAA,CAAqD,SAASe,cAAAA,CAAc;AAAA,EACvG,QAAA;AAAA,EACA,KAAA,GAAQ,MAAA;AAAA,EACR,IAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,IAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,aAAA,GAAgB,MAAA;AAAA,EAChB,SAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,WAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA;AAAA,EACA,MAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAG,YAAA,EAAc;AACf,EAAA,MAAM,YAAA,GAAe,oBAAoB,UAAU,CAAA;AACnD,EAAA,MAAM,EAAE,OAAM,GAAI,YAAA;AAClB,EAAA,MAAM,OAAA,GAAUZ,aAAoC,IAAI,CAAA;AACxD,EAAA,MAAM,UAAA,GAAa,CAAC,IAAA,KAAsC;AACxD,IAAA,OAAA,CAAQ,OAAA,GAAU,IAAA;AAClB,IAAA,IAAI,OAAO,iBAAiB,UAAA,EAAY;AACtC,MAAA,YAAA,CAAa,IAAI,CAAA;AAAA,IACnB,WAAW,YAAA,EAAc;AACvB,MAAA,YAAA,CAAa,OAAA,GAAU,IAAA;AAAA,IACzB;AAAA,EACF,CAAA;AACA,EAAA,MAAM,eAAA,GACJ,QAAA,IAAY,YAAA,CAAa,WAAA,GAAc,QAAQ,MAAM,MAAA,GACjD,YAAA,CAAa,WAAA,CAAY,QAAQ,CAAA,GACjC,KAAA;AACN,EAAA,MAAM,OAAA,GAAU,OAAA;AAAA,IACd,QAAA,IACE,cAAc,KAAA,KACb,SAAA,IAAa,aAAa,iBAAA,CAAA,IAC3B,YAAA,CAAa,eACb,YAAA,CAAa;AAAA,GACjB;AACA,EAAA,MAAM,SAAA,GAAY,OAAA;AAAA,IAChB,YACE,SAAA,KAAc,KAAA,KACb,SAAA,IAAa,YAAA,CAAa,wBAC3B,YAAA,CAAa;AAAA,GACjB;AACA,EAAA,MAAM,eAAA,GAAkB,OAAA,CAAQ,QAAA,IAAY,MAAM,CAAA;AAClD,EAAA,MAAM,QAAA,GAAW,cAAc,aAAa,CAAA;AAE5C,EAAA,MAAM,OAAA,GAAU,iBAAA,CAAkB,KAAK,CAAA,GAAI,KAAA,GAAQ,QAAA;AACnD,EAAA,MAAM,iBACJ,OAAA,IACA,iBAAA,CAAkB,IAAI,CAAA,IACtB,iBAAA,CAAkB,KAAK,CAAA,IACvB,iBAAA,CAAkB,WAAW,CAAA,IAC7B,iBAAA,CAAkB,IAAI,CAAA,IACtB,iBAAA,CAAkB,OAAO,CAAA,IACzB,iBAAA,CAAkB,QAAQ,CAAA,IAC1B,eAAA;AACF,EAAA,MAAM,eAAA,GACJ,cAAA,mBACEL,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,gBAAA,EAAkB,UAAA,EAAY,OAAO,CAAA,EAClE,QAAA,EAAA;AAAA,oBAAAA,eAAAA,CAAC,SAAI,SAAA,EAAW,EAAA,CAAG,MAAM,KAAA,CAAM,aAAA,EAAe,UAAA,EAAY,IAAI,CAAA,EAC3D,QAAA,EAAA;AAAA,MAAA,OAAA,mBACCC,cAAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAK,QAAA;AAAA,UACL,SAAA,EAAS,IAAA;AAAA,UACT,KAAA,EAAO,SAAA;AAAA,UACP,YAAA,EAAY,SAAA,IAAa,CAAA,YAAA,EAAe,QAAQ,CAAA,CAAA;AAAA,UAChD,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,mBAAA,EAAqB,YAAY,UAAU,CAAA;AAAA,UACrE,OAAA,EAAS,CAAC,KAAA,KAAU,KAAA,CAAM,eAAA,EAAgB;AAAA,UAC1C,WAAA,EAAa,CAAC,KAAA,KAAU;AACtB,YAAA,KAAA,CAAM,eAAA,EAAgB;AACtB,YAAA,YAAA,CAAa,oBAAoB,QAAQ,CAAA;AACzC,YAAA,KAAA,CAAM,aAAa,aAAA,GAAgB,MAAA;AACnC,YAAA,KAAA,CAAM,YAAA,CAAa,OAAA,CAAQ,yBAAA,EAA2B,QAAkB,CAAA;AAAA,UAC1E,CAAA;AAAA,UACA,SAAA,EAAW,CAAC,KAAA,KAAU;AACpB,YAAA,KAAA,CAAM,eAAA,EAAgB;AACtB,YAAA,YAAA,CAAa,oBAAoB,MAAS,CAAA;AAAA,UAC5C,CAAA;AAAA,UAEA,QAAA,kBAAAA,eAAC,cAAA,EAAA,EAAe;AAAA;AAAA,OAClB,GACE,IAAA;AAAA,MACH,IAAA,mBACCA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,aAAA,EAAe,UAAA,EAAY,IAAI,CAAA,EAC5D,gBACH,CAAA,GACE,IAAA;AAAA,MACH,kCACCD,eAAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAK,QAAA;AAAA,UACL,UAAU,CAAC,MAAA;AAAA,UACX,KAAA,EAAO,SAAA;AAAA,UACP,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,mBAAA,EAAqB,YAAY,UAAU,CAAA;AAAA,UACrE,OAAA,EAAS,CAAC,KAAA,KAAU;AAClB,YAAA,KAAA,CAAM,eAAA,EAAgB;AACtB,YAAA,MAAA,GAAS,QAAQ,CAAA;AAAA,UACnB,CAAA;AAAA,UAEA,QAAA,EAAA;AAAA,4BAAAA,eAAAA,CAAC,UAAK,SAAA,EAAW,EAAA,CAAG,MAAM,KAAA,CAAM,aAAA,EAAe,UAAA,EAAY,IAAI,CAAA,EAC5D,QAAA,EAAA;AAAA,cAAA,iBAAA,CAAkB,OAAO,CAAA,mBACxBC,cAAAA,CAAC,UAAK,SAAA,EAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,cAAA,EAAgB,UAAA,EAAY,KAAK,CAAA,EAC9D,mBACH,CAAA,GACE,IAAA;AAAA,cACH,iBAAA,CAAkB,WAAW,CAAA,mBAC5BA,cAAAA;AAAA,gBAAC,MAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAW,EAAA;AAAA,oBACT,MAAM,KAAA,CAAM,oBAAA;AAAA,oBACZ,UAAA,EAAY;AAAA,mBACd;AAAA,kBAEC,QAAA,EAAA;AAAA;AAAA,eACH,GACE;AAAA,aAAA,EACN,CAAA;AAAA,4BACAA,cAAAA;AAAA,cAAC,aAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAW,aAAA;AAAA,gBACX,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,iBAAA,EAAmB,YAAY,QAAQ;AAAA;AAAA;AACnE;AAAA;AAAA,OACF,mBAEAD,eAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,aAAA,EAAe,UAAA,EAAY,IAAI,CAAA,EAC5D,QAAA,EAAA;AAAA,QAAA,iBAAA,CAAkB,OAAO,CAAA,mBACxBC,cAAAA,CAAC,UAAK,SAAA,EAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,cAAA,EAAgB,UAAA,EAAY,KAAK,CAAA,EAC9D,mBACH,CAAA,GACE,IAAA;AAAA,QACH,iBAAA,CAAkB,WAAW,CAAA,mBAC5BA,cAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,EAAA;AAAA,cACT,MAAM,KAAA,CAAM,oBAAA;AAAA,cACZ,UAAA,EAAY;AAAA,aACd;AAAA,YAEC,QAAA,EAAA;AAAA;AAAA,SACH,GACE;AAAA,OAAA,EACN;AAAA,KAAA,EAEJ,CAAA;AAAA,IACC,kBAAkB,IAAI,CAAA,IAAK,kBAAkB,OAAO,CAAA,IAAK,kBAAkB,QAAQ,CAAA,mBAClFD,eAAAA,CAAC,KAAA,EAAA,EAAI,WAAW,EAAA,CAAG,KAAA,CAAM,MAAM,gBAAA,EAAkB,UAAA,EAAY,OAAO,CAAA,EACjE,QAAA,EAAA;AAAA,MAAA,iBAAA,CAAkB,IAAI,CAAA,mBACrBC,cAAAA,CAAC,UAAK,SAAA,EAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,aAAA,EAAe,UAAA,EAAY,IAAI,CAAA,EAC5D,gBACH,CAAA,GACE,IAAA;AAAA,MACH,OAAA;AAAA,MACA;AAAA,KAAA,EACH,CAAA,GACE;AAAA,GAAA,EACN,CAAA,GAEA,QAAA;AAGJ,EAAA,MAAM,cAAA,GAAiB,CAAC,KAAA,KAA2C;AACjE,IAAA,UAAA,GAAa,KAAK,CAAA;AAClB,IAAA,IAAI,CAAC,OAAA,IAAW,CAAC,aAAa,gBAAA,IAAoB,YAAA,CAAa,qBAAqB,QAAA,EAAU;AAC5F,MAAA;AAAA,IACF;AACA,IAAA,KAAA,CAAM,cAAA,EAAe;AACrB,IAAA,KAAA,CAAM,aAAa,UAAA,GAAa,MAAA;AAAA,EAClC,CAAA;AAEA,EAAA,MAAM,UAAA,GAAa,CAAC,KAAA,KAA2C;AAC7D,IAAA,MAAA,GAAS,KAAK,CAAA;AACd,IAAA,IAAI,CAAC,OAAA,IAAW,CAAC,QAAA,EAAU;AAC3B,IAAA,MAAM,iBACJ,YAAA,CAAa,gBAAA,IACb,KAAA,CAAM,YAAA,CAAa,QAAQ,yBAAyB,CAAA;AACtD,IAAA,IAAI,CAAC,cAAA,IAAkB,cAAA,KAAmB,QAAA,EAAU;AAEpD,IAAA,MAAM,SAAA,GAAY,kBAAA;AAAA,MAChB,YAAA,CAAa,WAAA;AAAA,MACb,cAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,IAAI,SAAA,EAAW;AACb,MAAA,KAAA,CAAM,cAAA,EAAe;AACrB,MAAA,YAAA,CAAa,sBAAsB,SAAA,EAAW;AAAA,QAC5C,QAAA,EAAU,cAAA;AAAA,QACV,cAAA,EAAgB;AAAA,OACjB,CAAA;AAAA,IACH;AACA,IAAA,YAAA,CAAa,oBAAoB,MAAS,CAAA;AAAA,EAC5C,CAAA;AAEA,EAAA,MAAM,uBAAA,GAA0B,CAAC,KAAA,KAAgD;AAC/E,IAAA,IAAI,CAAC,SAAA,IAAa,CAAC,QAAA,IAAY,CAAC,aAAa,kBAAA,EAAoB;AACjE,IAAA,KAAA,CAAM,cAAA,EAAe;AACrB,IAAA,KAAA,CAAM,eAAA,EAAgB;AAEtB,IAAA,MAAM,SAAS,KAAA,CAAM,OAAA;AACrB,IAAA,MAAM,YAAA,GACJ,OAAO,eAAA,KAAoB,QAAA,GACvB,kBACA,OAAA,CAAQ,OAAA,EAAS,eAAe,QAAA,IAAY,EAAA;AAClD,IAAA,MAAM,aAAA,GAAgB,UAAA,CAAW,YAAA,EAAc,QAAA,EAAU,QAAQ,CAAA;AACjE,IAAA,MAAM,YAAY,KAAA,CAAM,SAAA;AACxB,IAAA,MAAM,SAAS,KAAA,CAAM,aAAA;AACrB,IAAA,MAAA,CAAO,oBAAoB,SAAS,CAAA;AAEpC,IAAA,MAAM,iBAAA,GAAoB,CAAC,SAAA,KAA4B;AACrD,MAAA,MAAM,SAAA,GAAY,UAAA;AAAA,QAChB,aAAA,GAAgB,UAAU,OAAA,GAAU,MAAA;AAAA,QACpC,QAAA;AAAA,QACA;AAAA,OACF;AACA,MAAA,YAAA,CAAa,kBAAA,GAAqB,UAAU,SAAA,EAAW;AAAA,QACrD,QAAA;AAAA,QACA,aAAA;AAAA,QACA,QAAA;AAAA,QACA;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAEA,IAAA,MAAM,UAAU,MAAM;AACpB,MAAA,MAAA,CAAO,wBAAwB,SAAS,CAAA;AACxC,MAAA,MAAA,CAAO,mBAAA,CAAoB,eAAe,iBAAiB,CAAA;AAC3D,MAAA,MAAA,CAAO,mBAAA,CAAoB,aAAa,OAAO,CAAA;AAC/C,MAAA,MAAA,CAAO,mBAAA,CAAoB,iBAAiB,OAAO,CAAA;AAAA,IACrD,CAAA;AAEA,IAAA,MAAA,CAAO,gBAAA,CAAiB,eAAe,iBAAiB,CAAA;AACxD,IAAA,MAAA,CAAO,gBAAA,CAAiB,aAAa,OAAO,CAAA;AAC5C,IAAA,MAAA,CAAO,gBAAA,CAAiB,iBAAiB,OAAO,CAAA;AAAA,EAClD,CAAA;AAEA,EAAA,uBACED,eAAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACE,GAAG,SAAA;AAAA,MACJ,GAAA,EAAK,UAAA;AAAA,MACL,KAAA,EAAO,UAAU,KAAA,IAAS,KAAA;AAAA,MAC1B,WAAA,EAAW,QAAA;AAAA,MACX,SAAA,EAAW,EAAA;AAAA,QACT,MAAM,KAAA,CAAM,SAAA;AAAA,QACZ,KAAA,KAAU,QAAA,IAAY,KAAA,CAAM,KAAA,CAAM,oBAAA;AAAA,QAClC,KAAA,KAAU,OAAA,IAAW,KAAA,CAAM,KAAA,CAAM,mBAAA;AAAA,QACjC,UAAA,EAAY,IAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACA,KAAA,EAAO;AAAA,QACL,GAAG,MAAM,MAAA,CAAO,SAAA;AAAA,QAChB,KAAA,EAAO,UAAU,eAAe,CAAA;AAAA,QAChC,QAAA,EAAU,UAAU,QAAQ,CAAA;AAAA,QAC5B,QAAA,EAAU,UAAU,QAAQ,CAAA;AAAA,QAC5B,GAAG;AAAA,OACL;AAAA,MACA,UAAA,EAAY,cAAA;AAAA,MACZ,MAAA,EAAQ,UAAA;AAAA,MAEP,QAAA,EAAA;AAAA,QAAA,eAAA;AAAA,QACA,4BACCC,cAAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,KAAA,EAAO,WAAA;AAAA,YACP,YAAA,EAAY,WAAA,IAAe,CAAA,cAAA,EAAiB,QAAQ,CAAA,CAAA;AAAA,YACpD,WAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,qBAAA,EAAuB,YAAY,YAAY,CAAA;AAAA,YACzE,OAAA,EAAS,CAAC,KAAA,KAAU,KAAA,CAAM,eAAA,EAAgB;AAAA,YAC1C,aAAA,EAAe;AAAA;AAAA,SACjB,GACE;AAAA;AAAA;AAAA,GACN;AAEJ,CAAC;AC1jB2BC,gBAAAA;AAAA,EAC1B,SAASgB,aAAAA,CACP;AAAA,IACE,OAAA,GAAU,KAAA;AAAA,IACV,QAAA,GAAW,KAAA;AAAA,IACX,QAAA,GAAW,KAAA;AAAA,IACX,UAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,cAAA,EAAgB,iBAAA;AAAA,IAChB,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,MAAM,KAAA,GAAQ,sBAAsB,UAAU,CAAA;AAE9C,IAAA,uBACEjB,cAAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACE,GAAG,aAAA;AAAA,QACJ,GAAA;AAAA,QACA,QAAA;AAAA,QACA,QAAA;AAAA,QACA,cAAA,EAAc,sBAAsB,OAAA,IAAW,MAAA,CAAA;AAAA,QAC/C,SAAA,EAAW,EAAA;AAAA,UACT,MAAM,KAAA,CAAM,cAAA;AAAA,UACZ,MAAM,KAAA,CAAM,WAAA;AAAA,UACZ,MAAM,KAAA,CAAM,eAAA;AAAA,UACZ,OAAA,IAAW,MAAM,KAAA,CAAM,cAAA;AAAA,UACvB,QAAA,IAAY,MAAM,KAAA,CAAM,eAAA;AAAA,UACxB,QAAA,IAAY,MAAM,KAAA,CAAM,eAAA;AAAA,UACxB,UAAA,EAAY,OAAA;AAAA,UACZ;AAAA,SACF;AAAA,QACA,KAAA,EAAO;AAAA,UACL,GAAG,MAAM,MAAA,CAAO,OAAA;AAAA,UAChB,GAAI,OAAA,GAAU,KAAA,CAAM,MAAA,CAAO,cAAA,GAAiB,MAAA;AAAA,UAC5C,GAAI,QAAA,GAAW,KAAA,CAAM,MAAA,CAAO,eAAA,GAAkB,MAAA;AAAA,UAC9C,GAAG;AAAA;AACL;AAAA,KACF;AAAA,EAEJ;AACF;AC1CA,SAAS,6BAA6B,SAAA,EAAiC;AACrE,EAAA,QAAQ,SAAA;AAAW,IACjB,KAAK,QAAA;AACH,MAAA,OAAO,mDAAA;AAAA,IACT,KAAK,MAAA;AACH,MAAA,OAAO,oDAAA;AAAA,IACT,KAAK,OAAA;AACH,MAAA,OAAO,mDAAA;AAAA,IACT,KAAK,KAAA;AAAA,IACL;AACE,MAAA,OAAO,sDAAA;AAAA;AAEb;AAEA,SAAS,qBAAA,CACP,SAAA,EACA,IAAA,EACA,UAAA,EAC2B;AAC3B,EAAA,IAAI,CAAC,MAAM,OAAO,UAAA;AAElB,EAAA,MAAM,MAAA,GAAS,CAAA;AACf,EAAA,MAAM,SAAA,GAA2B;AAAA,IAC/B,GAAG,UAAA;AAAA,IACH,QAAA,EAAU;AAAA,GACZ;AAEA,EAAA,QAAQ,SAAA;AAAW,IACjB,KAAK,QAAA;AACH,MAAA,OAAO;AAAA,QACL,GAAG,SAAA;AAAA,QACH,IAAA,EAAM,IAAA,CAAK,IAAA,GAAO,IAAA,CAAK,KAAA,GAAQ,CAAA;AAAA,QAC/B,GAAA,EAAK,KAAK,MAAA,GAAS,MAAA;AAAA,QACnB,SAAA,EAAW;AAAA,OACb;AAAA,IACF,KAAK,MAAA;AACH,MAAA,OAAO;AAAA,QACL,GAAG,SAAA;AAAA,QACH,KAAA,EAAO,MAAA,CAAO,UAAA,GAAa,IAAA,CAAK,IAAA,GAAO,MAAA;AAAA,QACvC,GAAA,EAAK,IAAA,CAAK,GAAA,GAAM,IAAA,CAAK,MAAA,GAAS,CAAA;AAAA,QAC9B,SAAA,EAAW;AAAA,OACb;AAAA,IACF,KAAK,OAAA;AACH,MAAA,OAAO;AAAA,QACL,GAAG,SAAA;AAAA,QACH,IAAA,EAAM,KAAK,KAAA,GAAQ,MAAA;AAAA,QACnB,GAAA,EAAK,IAAA,CAAK,GAAA,GAAM,IAAA,CAAK,MAAA,GAAS,CAAA;AAAA,QAC9B,SAAA,EAAW;AAAA,OACb;AAAA,IACF,KAAK,KAAA;AAAA,IACL;AACE,MAAA,OAAO;AAAA,QACL,GAAG,SAAA;AAAA,QACH,MAAA,EAAQ,MAAA,CAAO,WAAA,GAAc,IAAA,CAAK,GAAA,GAAM,MAAA;AAAA,QACxC,IAAA,EAAM,IAAA,CAAK,IAAA,GAAO,IAAA,CAAK,KAAA,GAAQ,CAAA;AAAA,QAC/B,SAAA,EAAW;AAAA,OACb;AAAA;AAEN;AAEO,SAAS,WAAA,CAAY;AAAA,EAC1B,OAAA;AAAA,EACA,QAAA;AAAA,EACA,IAAA;AAAA,EACA,WAAA,GAAc,KAAA;AAAA,EACd,SAAA,GAAY,KAAA;AAAA,EACZ,QAAA,GAAW,KAAA;AAAA,EACX,MAAA,GAAS,KAAA;AAAA,EACT,UAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,YAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAqB;AACnB,EAAA,MAAM,KAAA,GAAQ,sBAAsB,UAAU,CAAA;AAC9C,EAAA,MAAM,OAAA,GAAUI,aAA+B,IAAI,CAAA;AACnD,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAIC,eAAyB,IAAI,CAAA;AACnE,EAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAmB,CAAA,GAAIA,eAAS,WAAW,CAAA;AACpE,EAAA,MAAM,eAAe,IAAA,KAAS,MAAA;AAC9B,EAAA,MAAM,MAAA,GAAS,eAAe,IAAA,GAAO,gBAAA;AACrC,EAAA,MAAM,OAAA,GAAU,CAAC,QAAA,IAAY,iBAAA,CAAkB,OAAO,CAAA;AACtD,EAAA,MAAM,YAAA,GAAe,MAAA,IAAU,OAAO,QAAA,KAAa,WAAA;AACnD,EAAA,MAAM,YAAA,GAAeK,aAAAA;AAAA,IACnB,MAAM,YAAA,GACF,qBAAA,CAAsB,SAAA,EAAW,WAAA,EAAa,MAAM,MAAA,CAAO,OAAO,CAAA,GAClE,KAAA,CAAM,MAAA,CAAO,OAAA;AAAA,IACjB,CAAC,SAAA,EAAW,YAAA,EAAc,KAAA,CAAM,MAAA,CAAO,SAAS,WAAW;AAAA,GAC7D;AAEA,EAAA,MAAM,OAAA,GAAU,CAAC,QAAA,KAAsB;AACrC,IAAA,IAAI,CAAC,WAAW,QAAA,EAAU;AAC1B,IAAA,IAAI,YAAA,EAAc;AAChB,MAAA,cAAA,CAAe,WAAW,OAAA,CAAQ,OAAA,EAAS,qBAAA,EAAsB,IAAK,OAAO,IAAI,CAAA;AAAA,IACnF;AACA,IAAA,IAAI,CAAC,YAAA,EAAc;AACjB,MAAA,mBAAA,CAAoB,QAAQ,CAAA;AAAA,IAC9B;AACA,IAAA,YAAA,GAAe,QAAQ,CAAA;AAAA,EACzB,CAAA;AAEA,EAAAQ,qBAAA,CAAgB,MAAM;AACpB,IAAA,IAAI,CAAC,YAAA,IAAgB,CAAC,OAAA,IAAW,CAAC,MAAA,EAAQ;AAE1C,IAAA,MAAM,oBAAoB,MAAM;AAC9B,MAAA,cAAA,CAAe,OAAA,CAAQ,OAAA,EAAS,qBAAA,EAAsB,IAAK,IAAI,CAAA;AAAA,IACjE,CAAA;AAEA,IAAA,iBAAA,EAAkB;AAClB,IAAA,MAAA,CAAO,gBAAA,CAAiB,UAAU,iBAAiB,CAAA;AACnD,IAAA,MAAA,CAAO,gBAAA,CAAiB,QAAA,EAAU,iBAAA,EAAmB,IAAI,CAAA;AAEzD,IAAA,OAAO,MAAM;AACX,MAAA,MAAA,CAAO,mBAAA,CAAoB,UAAU,iBAAiB,CAAA;AACtD,MAAA,MAAA,CAAO,mBAAA,CAAoB,QAAA,EAAU,iBAAA,EAAmB,IAAI,CAAA;AAAA,IAC9D,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,OAAA,EAAS,MAAA,EAAQ,YAAY,CAAC,CAAA;AAElC,EAAA,MAAM,iBAAiB,OAAA,IAAW,MAAA,KAAW,CAAC,YAAA,IAAgB,+BAC5DlB,cAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,SAAA;AAAA,MACL,SAAA,EAAW,EAAA;AAAA,QACT,MAAM,KAAA,CAAM,cAAA;AAAA,QACZ,YAAA,GAAe,MAAA,GAAY,4BAAA,CAA6B,SAAS,CAAA;AAAA,QACjE,UAAA,EAAY;AAAA,OACd;AAAA,MACA,KAAA,EAAO,YAAA;AAAA,MAEN,QAAA,EAAA;AAAA;AAAA,GACH,GACE,IAAA;AAEJ,EAAA,uBACED,eAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACE,GAAG,YAAA;AAAA,MACJ,GAAA,EAAK,OAAA;AAAA,MACL,WAAW,EAAA,CAAG,KAAA,CAAM,MAAM,WAAA,EAAa,UAAA,EAAY,MAAM,SAAS,CAAA;AAAA,MAClE,KAAA;AAAA,MACA,YAAA,EAAc,MAAM,OAAA,CAAQ,IAAI,CAAA;AAAA,MAChC,YAAA,EAAc,MAAM,OAAA,CAAQ,KAAK,CAAA;AAAA,MACjC,OAAA,EAAS,MAAM,OAAA,CAAQ,IAAI,CAAA;AAAA,MAC3B,MAAA,EAAQ,MAAM,OAAA,CAAQ,KAAK,CAAA;AAAA,MAE3B,QAAA,EAAA;AAAA,wBAAAC,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,KAAA,CAAM,MAAM,cAAA,EAAgB,UAAA,EAAY,OAAO,CAAA,EAChE,QAAA,EACH,CAAA;AAAA,QACC,gBAAgB,cAAA,GAAiBmB,qBAAA,CAAa,cAAA,EAAgB,QAAA,CAAS,IAAI,CAAA,GAAI;AAAA;AAAA;AAAA,GAClF;AAEJ;AC5DA,IAAM,iBAAA,GAAoC;AAAA,EACxC,MAAA,EAAQ,OAAA;AAAA,EACR,OAAA,EAAS,SAAA;AAAA,EACT,MAAA,EAAQ,IAAA;AAAA,EACR,MAAA,EAAQ,QAAA;AAAA,EACR,UAAA,EAAY;AACd,CAAA;AAEA,IAAM,gBAAA,GAA0D;AAAA,EAC9D,OAAA,EAAS,YAAA;AAAA,EACT,IAAA,EAAM,cAAA;AAAA,EACN,EAAA,EAAI,YAAA;AAAA,EACJ,EAAA,EAAI,YAAA;AAAA,EACJ,EAAA,EAAI,YAAA;AAAA,EACJ,EAAA,EAAI,YAAA;AAAA,EACJ,IAAA,EAAM;AACR,CAAA;AAEA,SAAS,SAAA,GAAY;AACnB,EAAA,uBACEnB,cAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,aAAA,EAAY,MAAA;AAAA,MACZ,SAAA,EAAU,SAAA;AAAA,MACV,OAAA,EAAQ,WAAA;AAAA,MACR,IAAA,EAAK,MAAA;AAAA,MACL,MAAA,EAAO,cAAA;AAAA,MACP,WAAA,EAAY,MAAA;AAAA,MACZ,aAAA,EAAc,OAAA;AAAA,MACd,cAAA,EAAe,OAAA;AAAA,MAEf,QAAA,kBAAAA,cAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,iBAAA,EAAkB;AAAA;AAAA,GAC5B;AAEJ;AAEA,SAAS,QAAA,GAAW;AAClB,EAAA,uBACED,eAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,aAAA,EAAY,MAAA;AAAA,MACZ,SAAA,EAAU,SAAA;AAAA,MACV,OAAA,EAAQ,WAAA;AAAA,MACR,IAAA,EAAK,MAAA;AAAA,MACL,MAAA,EAAO,cAAA;AAAA,MACP,WAAA,EAAY,GAAA;AAAA,MACZ,aAAA,EAAc,OAAA;AAAA,MACd,cAAA,EAAe,OAAA;AAAA,MAEf,QAAA,EAAA;AAAA,wBAAAC,eAAC,QAAA,EAAA,EAAO,EAAA,EAAG,MAAK,EAAA,EAAG,IAAA,EAAK,GAAE,GAAA,EAAI,CAAA;AAAA,wBAC9BA,eAAC,QAAA,EAAA,EAAO,EAAA,EAAG,MAAK,EAAA,EAAG,IAAA,EAAK,GAAE,GAAA,EAAI,CAAA;AAAA,wBAC9BA,eAAC,QAAA,EAAA,EAAO,EAAA,EAAG,KAAI,EAAA,EAAG,IAAA,EAAK,GAAE,GAAA,EAAI;AAAA;AAAA;AAAA,GAC/B;AAEJ;AAEA,SAASoB,aAAY,IAAA,EAAe;AAClC,EAAA,IAAI,CAAC,MAAM,OAAO,GAAA;AAClB,EAAA,MAAM,KAAA,GAAQ,KAAK,IAAA,EAAK,CAAE,MAAM,KAAK,CAAA,CAAE,OAAO,OAAO,CAAA;AACrD,EAAA,IAAI,CAAC,KAAA,CAAM,MAAA,EAAQ,OAAO,GAAA;AAC1B,EAAA,IAAI,KAAA,CAAM,MAAA,KAAW,CAAA,EAAG,OAAO,KAAA,CAAM,CAAC,CAAA,CAAE,KAAA,CAAM,CAAA,EAAG,CAAC,CAAA,CAAE,WAAA,EAAY;AAChE,EAAA,OAAO,KAAA,CACJ,KAAA,CAAM,CAAA,EAAG,CAAC,EACV,GAAA,CAAI,CAAC,IAAA,KAAS,IAAA,CAAK,CAAC,CAAC,CAAA,CACrB,IAAA,CAAK,EAAE,EACP,WAAA,EAAY;AACjB;AAEA,SAAS,UAAA,CAAW,MAAiB,SAAA,EAAoB;AACvD,EAAA,IAAI,CAAC,MAAM,OAAO,IAAA;AAClB,EAAA,uBACEpB,eAAC,MAAA,EAAA,EAAK,SAAA,EAAW,GAAG,0DAAA,EAA4D,SAAS,GACtF,QAAA,EAAA,IAAA,EACH,CAAA;AAEJ;AAEA,SAAS,sBAAsB,QAAA,EAAyC;AACtE,EAAA,OAAO,QAAA,CAAS,OAAA,CAAQ,IAAA,CAAK,CAAC,MAAA,KAAW,MAAA,CAAO,KAAA,KAAU,QAAA,CAAS,KAAK,CAAA,EAAG,KAAA,IAAS,QAAA,CAAS,KAAA;AAC/F;AAEA,SAAS,uBAAA,CAAwB;AAAA,EAC/B,UAAA;AAAA,EACA,UAAA;AAAA,EACA;AACF,CAAA,EAIG;AACD,EAAA,IAAI,SAAS,OAAA,KAAY,KAAA,IAAS,SAAS,OAAA,CAAQ,MAAA,KAAW,GAAG,OAAO,IAAA;AAExE,EAAA,MAAM,WAAA,GAAc,iBAAiB,UAAU,CAAA;AAC/C,EAAA,MAAM,YAAA,GAAe,sBAAsB,QAAQ,CAAA;AAEnD,EAAA,uBACED,eAAAA,CAAcsB,uBAAA,CAAA,GAAA,EAAb,EACC,QAAA,EAAA;AAAA,oBAAAtB,eAAAA;AAAA,MAAcsB,uBAAA,CAAA,UAAA;AAAA,MAAb;AAAA,QACC,UAAU,QAAA,CAAS,QAAA;AAAA,QACnB,SAAA,EAAW,EAAA;AAAA,UACT,gSAAA;AAAA,UACA,WAAA;AAAA,UACA,UAAA,EAAY;AAAA,SACd;AAAA,QAEC,QAAA,EAAA;AAAA,UAAA,UAAA,CAAW,SAAS,IAAI,CAAA;AAAA,0BACzBrB,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kBAAA,EAAoB,mBAAS,KAAA,EAAM,CAAA;AAAA,0BACnDA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,qFACb,QAAA,EAAA,YAAA,EACH;AAAA;AAAA;AAAA,KACF;AAAA,oBACAA,cAAAA,CAAcqB,uBAAA,CAAA,MAAA,EAAb,EACC,QAAA,kBAAArB,cAAAA;AAAA,MAAcqB,uBAAA,CAAA,UAAA;AAAA,MAAb;AAAA,QACC,UAAA,EAAY,CAAA;AAAA,QACZ,SAAA,EAAW,EAAA;AAAA,UACT,iKAAA;AAAA,UACA,WAAA;AAAA,UACA,QAAA,CAAS,qBAAA;AAAA,UACT,UAAA,EAAY;AAAA,SACd;AAAA,QAEA,QAAA,kBAAArB,cAAAA,CAAcqB,uBAAA,CAAA,UAAA,EAAb,EAAwB,OAAO,QAAA,CAAS,KAAA,EAAO,aAAA,EAAe,QAAA,CAAS,UACrE,QAAA,EAAA,QAAA,CAAS,OAAA,CAAQ,GAAA,CAAI,CAAC,2BACrBtB,eAAAA;AAAA,UAAcsB,uBAAA,CAAA,SAAA;AAAA,UAAb;AAAA,YAEC,OAAO,MAAA,CAAO,KAAA;AAAA,YACd,UAAU,MAAA,CAAO,QAAA;AAAA,YACjB,SAAA,EAAW,EAAA;AAAA,cACT,2PAAA;AAAA,cACA,WAAA;AAAA,cACA,UAAA,EAAY;AAAA,aACd;AAAA,YAEA,QAAA,EAAA;AAAA,8BAAArB,cAAAA,CAAcqB,uCAAb,EAA2B,SAAA,EAAU,mEACpC,QAAA,kBAAArB,cAAAA,CAAC,aAAU,CAAA,EACb,CAAA;AAAA,cACC,UAAA,CAAW,MAAA,CAAO,IAAA,EAAM,UAAA,EAAY,QAAQ,CAAA;AAAA,8BAC7CA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kBAAA,EAAoB,iBAAO,KAAA,EAAM;AAAA;AAAA,WAAA;AAAA,UAb5C,MAAA,CAAO;AAAA,SAef,CAAA,EACH;AAAA;AAAA,KACF,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;AAEO,SAAS,eAAA,CAAgB;AAAA,EAC9B,KAAA,GAAQ,KAAA;AAAA,EACR,UAAA,GAAa,iBAAA;AAAA,EACb,SAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,qBAAA,GAAwB,MAAA;AAAA,EACxB,YAAA,GAAe,MAAA;AAAA,EACf,QAAQ,EAAC;AAAA,EACT,UAAA,GAAa,SAAA;AAAA,EACb,YAAY,EAAC;AAAA,EACb,IAAA,GAAO,QAAA;AAAA,EACP,UAAA,GAAa,CAAA;AAAA,EACb,cAAA;AAAA,EACA,YAAA;AAAA,EACA,cAAA,GAAiB,QAAA;AAAA,EACjB;AACF,CAAA,EAAyB;AACvB,EAAA,MAAM,WAAA,GAAc,IAAA,CAAK,IAAA,EAAM,IAAA,EAAK,IAAK,YAAA;AACzC,EAAA,MAAM,QAAA,GAAW,IAAA,CAAK,QAAA,IAAYoB,YAAAA,CAAY,WAAW,CAAA;AACzD,EAAA,MAAM,WAAA,GAAc,iBAAiB,UAAU,CAAA;AAC/C,EAAA,MAAM,mBAAmB,SAAA,CAAU,MAAA;AAAA,IACjC,CAAC,QAAA,KAAa,QAAA,CAAS,YAAY,KAAA,IAAS,QAAA,CAAS,QAAQ,MAAA,GAAS;AAAA,GACxE;AACA,EAAA,MAAM,eAAe,KAAA,CAAM,MAAA,CAAO,CAAC,IAAA,KAAS,IAAA,CAAK,YAAY,KAAK,CAAA;AAClE,EAAA,MAAM,WAAA,GAAc,gBAAA,CAAiB,MAAA,GAAS,CAAA,IAAK,aAAa,MAAA,GAAS,CAAA;AAEzE,EAAA,MAAM,yBACJpB,cAAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,UAAA;AAAA,MACA,GAAA,EAAK,KAAK,SAAA,IAAa,WAAA;AAAA,MACvB,SAAA,EAAW,EAAA,CAAG,SAAA,EAAW,UAAA,EAAY,MAAM,CAAA;AAAA,MAC3C,QAAA;AAAA,MACA,IAAA,EAAM,WAAA;AAAA,MACN,IAAA,EAAK,IAAA;AAAA,MACL,KAAK,IAAA,CAAK;AAAA;AAAA,GACZ;AAEF,EAAA,MAAM,mBAAmB,cAAA,KAAmB,SAAA;AAE5C,EAAA,uBACED,eAAAA,CAAcsB,uBAAA,CAAA,IAAA,EAAb,EACC,QAAA,EAAA;AAAA,oBAAArB,cAAAA,CAAcqB,uBAAA,CAAA,OAAA,EAAb,EAAqB,OAAA,EAAO,MAC3B,QAAA,kBAAArB,cAAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,UAAA;AAAA,QACA,WAAW,SAAA,IAAa,WAAA;AAAA,QACxB,SAAA,EAAW,EAAA;AAAA,UACT,mBACI,yJAAA,GACA,sJAAA;AAAA,UACJ,SAAA;AAAA,UACA,UAAA,EAAY,IAAA;AAAA,UACZ,UAAA,EAAY;AAAA,SACd;AAAA,QACA,UAAA,EAAY;AAAA,UACV,IAAA,EAAM,SAAA;AAAA,UACN,KAAA,EAAO,mBAAmB,0BAAA,GAA6B;AAAA,SACzD;AAAA,QACA,SAAS,gBAAA,GAAoB,cAAA,oBAAkBA,cAAAA,CAAC,YAAS,CAAA,GAAM,MAAA;AAAA,QAC/D,IAAA,EAAM,MAAA;AAAA,QACN,UAAU,CAAC,gBAAA;AAAA,QACX,OACE,gBAAA,mBACED,eAAAA,CAAC,MAAA,EAAA,EAAK,WAAU,mCAAA,EACd,QAAA,EAAA;AAAA,0BAAAC,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,oFAAA,EACb,QAAA,EAAA,WAAA,EACH,CAAA;AAAA,UACC,IAAA,CAAK,gCACJA,cAAAA,CAAC,UAAK,SAAA,EAAU,mFAAA,EACb,QAAA,EAAA,IAAA,CAAK,aAAA,EACR,CAAA,GACE;AAAA,SAAA,EACN,CAAA,GACE,MAAA;AAAA,QAEN,OAAO,YAAA,IAAgB,WAAA;AAAA,QACvB,IAAA,EAAK;AAAA;AAAA,KACP,EACF,CAAA;AAAA,oBACAA,cAAAA,CAAcqB,uBAAA,CAAA,MAAA,EAAb,EACC,QAAA,kBAAAtB,eAAAA;AAAA,MAAcsB,uBAAA,CAAA,OAAA;AAAA,MAAb;AAAA,QACC,KAAA;AAAA,QACA,IAAA;AAAA,QACA,UAAA;AAAA,QACA,SAAA,EAAW,EAAA;AAAA,UACT,wJAAA;AAAA,UACA,qBAAA;AAAA,UACA,WAAA;AAAA,UACA,UAAA,EAAY;AAAA,SACd;AAAA,QAEA,QAAA,EAAA;AAAA,0BAAArB,cAAAA,CAAcqB,uBAAA,CAAA,KAAA,EAAb,EAAmB,SAAA,EAAW,EAAA,CAAG,yBAAA,EAA2B,UAAA,EAAY,KAAK,CAAA,EAC5E,QAAA,kBAAAtB,eAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,iCAAA,EACZ,QAAA,EAAA;AAAA,YAAA,MAAA;AAAA,4BACDA,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uBAAA,EACb,QAAA,EAAA;AAAA,8BAAAC,cAAAA,CAAC,UAAK,SAAA,EAAW,EAAA,CAAG,6CAA6C,UAAA,EAAY,QAAQ,GAClF,QAAA,EAAA,WAAA,EACH,CAAA;AAAA,cACC,IAAA,CAAK,gCACJA,cAAAA;AAAA,gBAAC,MAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAW,EAAA;AAAA,oBACT,wEAAA;AAAA,oBACA,UAAA,EAAY;AAAA,mBACd;AAAA,kBAEC,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA,eACR,GACE;AAAA,aAAA,EACN;AAAA,WAAA,EACF,CAAA,EACF,CAAA;AAAA,UAEC,8BACCA,cAAAA;AAAA,YAAcqB,uBAAA,CAAA,SAAA;AAAA,YAAb;AAAA,cACC,SAAA,EAAW,EAAA,CAAG,mCAAA,EAAqC,UAAA,EAAY,SAAS;AAAA;AAAA,WAC1E,GACE,IAAA;AAAA,UAEH,gBAAA,CAAiB,GAAA,CAAI,CAAC,QAAA,EAAU,0BAC/BrB,cAAAA;AAAA,YAAC,uBAAA;AAAA,YAAA;AAAA,cAEC,UAAA;AAAA,cACA,UAAA;AAAA,cACA;AAAA,aAAA;AAAA,YAHK,QAAA,CAAS,EAAA,IAAM,CAAA,SAAA,EAAY,KAAK,CAAA;AAAA,WAKxC,CAAA;AAAA,UAEA,iBAAiB,MAAA,GAAS,CAAA,IAAK,YAAA,CAAa,MAAA,GAAS,oBACpDA,cAAAA;AAAA,YAAcqB,uBAAA,CAAA,SAAA;AAAA,YAAb;AAAA,cACC,SAAA,EAAW,EAAA,CAAG,mCAAA,EAAqC,UAAA,EAAY,SAAS;AAAA;AAAA,WAC1E,GACE,IAAA;AAAA,UAEH,aAAa,GAAA,CAAI,CAAC,IAAA,qBACjBtB,gBAAC,KAAA,EAAA,EACE,QAAA,EAAA;AAAA,YAAA,IAAA,CAAK,kCACJC,cAAAA;AAAA,cAAcqB,uBAAA,CAAA,SAAA;AAAA,cAAb;AAAA,gBACC,SAAA,EAAW,EAAA,CAAG,mCAAA,EAAqC,UAAA,EAAY,SAAS;AAAA;AAAA,aAC1E,GACE,IAAA;AAAA,4BACJtB,eAAAA;AAAA,cAAcsB,uBAAA,CAAA,IAAA;AAAA,cAAb;AAAA,gBACC,UAAU,IAAA,CAAK,QAAA;AAAA,gBACf,UAAU,IAAA,CAAK,QAAA;AAAA,gBACf,SAAA,EAAW,EAAA;AAAA,kBACT,sPAAA;AAAA,kBACA,WAAA;AAAA,kBACA,IAAA,CAAK,SAAS,QAAA,IACZ,wIAAA;AAAA,kBACF,UAAA,EAAY,IAAA;AAAA,kBACZ,IAAA,CAAK,IAAA,KAAS,QAAA,IAAY,UAAA,EAAY;AAAA,iBACxC;AAAA,gBAEC,QAAA,EAAA;AAAA,kBAAA,UAAA,CAAW,IAAA,CAAK,IAAA,EAAM,UAAA,EAAY,QAAQ,CAAA;AAAA,kCAC3CrB,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,yBAAA,EAA2B,eAAK,KAAA,EAAM,CAAA;AAAA,kBACrD,IAAA,CAAK,2BACJA,cAAAA,CAAC,UAAK,SAAA,EAAU,2DAAA,EACb,QAAA,EAAA,IAAA,CAAK,QAAA,EACR,CAAA,GACE;AAAA;AAAA;AAAA;AACN,WAAA,EAAA,EAzBQ,IAAA,CAAK,EA0Bf,CACD;AAAA;AAAA;AAAA,KACH,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;AClYO,SAASsB,OAAM,MAAA,EAAuD;AAC3E,EAAA,OAAO,MAAA,CAAO,MAAA,CAAO,OAAO,CAAA,CAAE,KAAK,GAAG,CAAA;AACxC;AAkBO,SAAS,SAAA,CAAU,EAAE,MAAA,EAAQ,IAAA,EAAM,SAAS,OAAA,EAAS,SAAA,EAAW,UAAS,EAAmB;AACjG,EAAA,uBACEvB,eAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAWuB,GAAAA;AAAA,QACT,yIAAA;AAAA,QACA,SACI,6DAAA,GACA,wFAAA;AAAA,QACJ;AAAA,OACF;AAAA,MACA,OAAA;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAAtB,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,4CAAA,EAA8C,QAAA,EAAA,IAAA,EAAK,CAAA;AAAA,wBAClEA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,WAAW,QAAA,EAAS,CAAA;AAAA,QACnC;AAAA;AAAA;AAAA,GACH;AAEJ;AA+CO,SAAS,SAAA,CAAU;AAAA,EACxB,IAAA;AAAA,EACA,IAAA;AAAA,EACA,SAAA;AAAA,EACA,WAAA;AAAA,EACA,IAAA;AAAA,EACA,QAAA;AAAA,EACA,WAAA,GAAc,0BAAA;AAAA,EACd,aAAA;AAAA,EACA,KAAA;AAAA,EACA;AACF,CAAA,EAAmB;AACjB,EAAA,MAAM,eAAA,GAAkB,CAAC,IAAA,KACvB,IAAA,CAAK,MAAM,GAAG,CAAA,CAAE,IAAI,CAAC,CAAA,KAAM,EAAE,CAAC,CAAC,EAAE,IAAA,CAAK,EAAE,EAAE,WAAA,EAAY,CAAE,KAAA,CAAM,CAAA,EAAG,CAAC,CAAA;AAEpE,EAAA,uBACED,eAAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAWuB,GAAAA;AAAA,QACT,6KAAA;AAAA,QACA;AAAA,OACF;AAAA,MAGA,QAAA,EAAA;AAAA,wBAAAvB,eAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,iDAAA;AAAA,YACV,SAAS,IAAA,CAAK,OAAA;AAAA,YAEd,QAAA,EAAA;AAAA,8BAAAC,cAAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAWsB,GAAAA;AAAA,oBACT,qEAAA;AAAA,oBACA,IAAA,CAAK,MAAM,gBAAA,GAAmB;AAAA,mBAChC;AAAA,kBAEC,QAAA,EAAA,IAAA,CAAK,sBACJtB,cAAAA,CAAC,SAAI,GAAA,EAAK,IAAA,CAAK,GAAA,EAAK,GAAA,EAAK,IAAA,CAAK,KAAA,EAAO,WAAU,8BAAA,EAA+B,CAAA,mBAE9EA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,qBAAqB,QAAA,EAAA,IAAA,CAAK,KAAA,CAAM,MAAA,CAAO,CAAC,CAAA,EAAE;AAAA;AAAA,eAE9D;AAAA,8BACAA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,yCAAA,EAA2C,eAAK,KAAA,EAAM;AAAA;AAAA;AAAA,SACxE;AAAA,QAGC,QAAQ,IAAA,CAAK,MAAA,GAAS,qBACrBD,eAAAA,CAAAwB,qBAAA,EACE,QAAA,EAAA;AAAA,0BAAAvB,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oCAAA,EAAqC,CAAA;AAAA,0BACpDA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,4BACb,QAAA,kBAAAA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kEAAA,EACZ,QAAA,EAAA,IAAA,CAAK,GAAA,CAAI,CAAC,wBACTA,cAAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cAEC,SAAA,EAAWsB,GAAAA;AAAA,gBACT,qHAAA;AAAA,gBACA,GAAA,CAAI,EAAA,KAAO,SAAA,GACP,gEAAA,GACA;AAAA,eACN;AAAA,cACA,OAAA,EAAS,MAAM,WAAA,GAAc,GAAA,CAAI,EAAE,CAAA;AAAA,cAElC,QAAA,EAAA,GAAA,CAAI;AAAA,aAAA;AAAA,YATA,GAAA,CAAI;AAAA,WAWZ,GACH,CAAA,EACF;AAAA,SAAA,EACF,CAAA;AAAA,QAAA,CAEA,CAAC,QAAQ,IAAA,CAAK,MAAA,KAAW,sBAAMtB,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,QAAA,EAAS,CAAA;AAAA,wBAGzDD,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kCAAA,EACZ,QAAA,EAAA;AAAA,UAAA,KAAA;AAAA,UACA,IAAA,oBACCA,eAAAA,CAAcyB,uBAAA,CAAA,IAAA,EAAb,EACC,QAAA,EAAA;AAAA,4BAAAxB,eAAcwB,uBAAA,CAAA,OAAA,EAAb,EAAqB,OAAA,EAAO,IAAA,EAC3B,0BAAAxB,cAAAA,CAAC,QAAA,EAAA,EAAO,SAAA,EAAU,+JAAA,EACf,eAAK,KAAA,mBACJA,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAK,IAAA,CAAK,KAAA,EAAO,GAAA,EAAK,IAAA,CAAK,MAAM,SAAA,EAAU,mCAAA,EAAoC,CAAA,mBAEpFA,eAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kGAAA,EACZ,QAAA,EAAA,IAAA,CAAK,OAAO,eAAA,CAAgB,IAAA,CAAK,IAAI,CAAA,GAAI,GAAA,EAC5C,GAEJ,CAAA,EACF,CAAA;AAAA,4BACAA,cAAAA,CAAcwB,uBAAA,CAAA,MAAA,EAAb,EACC,QAAA,kBAAAzB,eAAAA;AAAA,cAAcyB,uBAAA,CAAA,OAAA;AAAA,cAAb;AAAA,gBACC,SAAA,EAAU,sKAAA;AAAA,gBACV,UAAA,EAAY,CAAA;AAAA,gBACZ,KAAA,EAAM,KAAA;AAAA,gBAGN,QAAA,EAAA;AAAA,kCAAAzB,eAAAA,CAAcyB,uBAAA,CAAA,KAAA,EAAb,EAAmB,SAAA,EAAU,iDAAA,EAC3B,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAK,KAAA,mBACJxB,cAAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAK,KAAK,KAAA,EAAO,GAAA,EAAK,IAAA,CAAK,IAAA,EAAM,SAAA,EAAU,mCAAA,EAAoC,oBAEpFA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kGAAA,EACZ,QAAA,EAAA,IAAA,CAAK,OAAO,eAAA,CAAgB,IAAA,CAAK,IAAI,CAAA,GAAI,GAAA,EAC5C,CAAA;AAAA,oCAEFD,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,eAAA,EACb,QAAA,EAAA;AAAA,sCAAAC,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kCAAA,EAAoC,eAAK,IAAA,EAAK,CAAA;AAAA,sBAC7D,IAAA,CAAK,yBAASA,cAAAA,CAAC,UAAK,SAAA,EAAU,+DAAA,EAAiE,eAAK,KAAA,EAAM;AAAA,qBAAA,EAC7G;AAAA,mBAAA,EACF,CAAA;AAAA,kCAEAA,cAAAA,CAAcwB,uBAAA,CAAA,SAAA,EAAb,EAAuB,WAAU,mCAAA,EAAoC,CAAA;AAAA,kCAEtEzB,eAAAA,CAAcyB,uBAAA,CAAA,KAAA,EAAb,EACE,QAAA,EAAA;AAAA,oBAAA,aAAA;AAAA,oCAGDzB,eAAAA;AAAA,sBAAcyB,uBAAA,CAAA,IAAA;AAAA,sBAAb;AAAA,wBACC,SAAA,EAAU,wLAAA;AAAA,wBACV,QAAA,EAAU,MAAM,QAAA,IAAW;AAAA,wBAE3B,QAAA,EAAA;AAAA,0CAAAzB,gBAAC,KAAA,EAAA,EAAI,KAAA,EAAM,8BAA6B,KAAA,EAAM,IAAA,EAAK,QAAO,IAAA,EAAK,OAAA,EAAQ,aAAY,IAAA,EAAK,MAAA,EAAO,QAAO,cAAA,EAAe,WAAA,EAAY,OAAM,aAAA,EAAc,OAAA,EAAQ,gBAAe,OAAA,EAAQ,QAAA,EAAA;AAAA,4CAAAC,cAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,yCAAA,EAAyC,CAAA;AAAA,4CAAEA,cAAAA,CAAC,UAAA,EAAA,EAAS,MAAA,EAAO,kBAAA,EAAkB,CAAA;AAAA,4CAAEA,cAAAA,CAAC,MAAA,EAAA,EAAK,EAAA,EAAG,IAAA,EAAK,IAAG,IAAA,EAAK,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,IAAA,EAAI;AAAA,2BAAA,EAAE,CAAA;AAAA,0BACjT;AAAA;AAAA;AAAA;AACH,mBAAA,EACF;AAAA;AAAA;AAAA,aACF,EACF;AAAA,WAAA,EACF;AAAA,SAAA,EAEJ;AAAA;AAAA;AAAA,GACF;AAEJ;AAwCO,SAAS,UAAA,CAAW;AAAA,EACzB,IAAA;AAAA,EACA,QAAA;AAAA,EACA,YAAA;AAAA,EACA,UAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,WAAA,GAAc,0BAAA;AAAA,EACd,MAAA;AAAA,EACA,qBAAA;AAAA,EACA;AACF,CAAA,EAAoB;AAClB,EAAA,uBACED,eAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAWuB,GAAAA;AAAA,QACT,uLAAA;AAAA,QACA;AAAA,OACF;AAAA,MAGC,QAAA,EAAA;AAAA,QAAA,IAAA,oBACCvB,eAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,iDAAA,EAAkD,OAAA,EAAS,KAAK,OAAA,EAC7E,QAAA,EAAA;AAAA,0BAAAC,cAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAWsB,GAAAA;AAAA,gBACT,qEAAA;AAAA,gBACA,IAAA,CAAK,MAAM,gBAAA,GAAmB;AAAA,eAChC;AAAA,cAEC,QAAA,EAAA,IAAA,CAAK,sBACJtB,cAAAA,CAAC,SAAI,GAAA,EAAK,IAAA,CAAK,GAAA,EAAK,GAAA,EAAK,IAAA,CAAK,KAAA,EAAO,WAAU,8BAAA,EAA+B,CAAA,mBAE9EA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,qBAAqB,QAAA,EAAA,IAAA,CAAK,KAAA,CAAM,MAAA,CAAO,CAAC,CAAA,EAAE;AAAA;AAAA,WAE9D;AAAA,0BACAA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,yCAAA,EAA2C,eAAK,KAAA,EAAM;AAAA,SAAA,EACxE,CAAA;AAAA,wBAIFA,cAAAA;AAAA,UAAC,cAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAO,QAAA;AAAA,YACP,YAAA;AAAA,YACA,UAAA;AAAA,YACA;AAAA;AAAA,SACF;AAAA,QAAA,CAGE,WAAW,MAAA,qBACXD,eAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,qBAAA,EACZ,QAAA,EAAA;AAAA,UAAA,OAAA,oBACCC,eAAC,KAAA,EAAA,EAAI,SAAA,EAAU,8EACb,QAAA,kBAAAD,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oDAAA,EACb,QAAA,EAAA;AAAA,4BAAAA,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yBAAA,EACZ,QAAA,EAAA;AAAA,cAAA,OAAA,CAAQ,KAAA,mBACPC,cAAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAK,OAAA,CAAQ,KAAA,EAAO,GAAA,EAAK,OAAA,CAAQ,IAAA,EAAM,SAAA,EAAU,mCAAA,EAAoC,CAAA,mBAE1FA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,sGAAA,EACZ,QAAA,EAAA,OAAA,CAAQ,IAAA,GAAO,OAAA,CAAQ,IAAA,CAAK,MAAA,CAAO,CAAC,CAAA,CAAE,WAAA,EAAY,GAAI,GAAA,EACzD,CAAA;AAAA,8BAEFA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,4CAAA,EAA8C,kBAAQ,IAAA,EAAK;AAAA,aAAA,EAC7E,CAAA;AAAA,YACC,4BACCA,cAAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBACC,OAAA,EAAS,QAAA;AAAA,gBACT,SAAA,EAAU,qGAAA;AAAA,gBACV,KAAA,EAAO,WAAA;AAAA,gBAEP,QAAA,kBAAAD,gBAAC,KAAA,EAAA,EAAI,KAAA,EAAM,8BAA6B,KAAA,EAAM,IAAA,EAAK,QAAO,IAAA,EAAK,OAAA,EAAQ,aAAY,IAAA,EAAK,MAAA,EAAO,QAAO,cAAA,EAAe,WAAA,EAAY,OAAM,aAAA,EAAc,OAAA,EAAQ,gBAAe,OAAA,EAAQ,QAAA,EAAA;AAAA,kCAAAC,cAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,yCAAA,EAAyC,CAAA;AAAA,kCAAEA,cAAAA,CAAC,UAAA,EAAA,EAAS,MAAA,EAAO,kBAAA,EAAkB,CAAA;AAAA,kCAAEA,cAAAA,CAAC,MAAA,EAAA,EAAK,EAAA,EAAG,IAAA,EAAK,IAAG,IAAA,EAAK,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,IAAA,EAAI;AAAA,iBAAA,EAAE;AAAA;AAAA;AACpT,WAAA,EAEJ,CAAA,EACF,CAAA;AAAA,UAED;AAAA,SAAA,EACH;AAAA;AAAA;AAAA,GAEJ;AAEJ;AAYA,SAAS,eAAe,EAAE,KAAA,EAAO,YAAA,EAAc,UAAA,EAAY,uBAAsB,EAAwB;AACvG,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAIK,eAAkC,MAAM;AACtE,IAAA,MAAM,MAA+B,EAAC;AACtC,IAAA,CAAC,qBAAA,IAAyB,KAAA,CAAM,GAAA,CAAI,CAAC,CAAA,KAAM,EAAE,EAAE,CAAA,EAAG,OAAA,CAAQ,CAAC,EAAA,KAAO;AAAE,MAAA,GAAA,CAAI,EAAE,CAAA,GAAI,IAAA;AAAA,IAAM,CAAC,CAAA;AACrF,IAAA,OAAO,GAAA;AAAA,EACT,CAAC,CAAA;AACD,EAAA,MAAM,CAAC,iBAAA,EAAmB,oBAAoB,CAAA,GAAIA,eAA6B,YAAY,CAAA;AAE3F,EAAAC,gBAAU,MAAM;AACd,IAAA,IAAI,iBAAiB,MAAA,EAAW;AAC9B,MAAA,oBAAA,CAAqB,YAAY,CAAA;AAAA,IACnC;AAAA,EACF,CAAA,EAAG,CAAC,YAAY,CAAC,CAAA;AAEjB,EAAA,MAAM,MAAA,GAAS,CAAC,EAAA,KAAe;AAC7B,IAAA,WAAA,CAAY,CAAC,IAAA,MAAmC,EAAE,GAAG,IAAA,EAAM,CAAC,EAAE,GAAG,CAAC,IAAA,CAAK,EAAE,CAAA,EAAE,CAAE,CAAA;AAAA,EAC/E,CAAA;AACA,EAAA,MAAM,uBAAuB,YAAA,IAAgB,iBAAA;AAE7C,EAAA,uBACEP,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,+BAAA,EAAgC,KAAA,EAAO,EAAE,cAAA,EAAgB,MAAA,EAAQ,eAAA,EAAiB,MAAA,EAAO,EACtG,QAAA,EAAA;AAAA,oBAAAC,cAAAA,CAAC,WAAO,QAAA,EAAA,CAAA,0DAAA,CAAA,EAA6D,CAAA;AAAA,oBACrEA,eAAC,KAAA,EAAA,EAAI,SAAA,EAAU,wFACZ,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,KAAS;AACnB,MAAA,IAAI,IAAA,CAAK,QAAA,IAAY,IAAA,CAAK,QAAA,CAAS,SAAS,CAAA,EAAG;AAC7C,QAAA,MAAM,UAAA,GAAa,QAAA,CAAS,IAAA,CAAK,EAAE,CAAA,IAAK,IAAA;AACxC,QAAA,uBACED,gBAAC,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,0BAAAC,cAAAA;AAAA,YAAC,SAAA;AAAA,YAAA;AAAA,cACC,MAAM,IAAA,CAAK,IAAA;AAAA,cACX,OAAA,EAAS,MAAM,MAAA,CAAO,IAAA,CAAK,EAAE,CAAA;AAAA,cAC7B,yBACEA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,2BACb,QAAA,kBAAAA,cAAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACC,KAAA,EAAM,4BAAA;AAAA,kBACN,KAAA,EAAM,IAAA;AAAA,kBAAK,MAAA,EAAO,IAAA;AAAA,kBAClB,OAAA,EAAQ,WAAA;AAAA,kBACR,IAAA,EAAK,MAAA;AAAA,kBAAO,MAAA,EAAO,cAAA;AAAA,kBAAe,WAAA,EAAY,GAAA;AAAA,kBAAI,aAAA,EAAc,OAAA;AAAA,kBAAQ,cAAA,EAAe,OAAA;AAAA,kBACvF,SAAA,EAAU,0EAAA;AAAA,kBACV,KAAA,EAAO,EAAE,SAAA,EAAW,UAAA,GAAa,kBAAkB,cAAA,EAAe;AAAA,kBAElE,QAAA,kBAAAA,cAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,eAAA,EAAe;AAAA;AAAA,eACzB,EACF,CAAA;AAAA,cAGD,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA,WACR;AAAA,UACC,UAAA,oBACCA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0BAAA,EACZ,QAAA,EAAA,IAAA,CAAK,QAAA,CAAS,GAAA,CAAI,CAAC,KAAA,qBAClBA,cAAAA;AAAA,YAAC,SAAA;AAAA,YAAA;AAAA,cAEC,MAAA,EAAQ,MAAM,EAAA,KAAO,oBAAA;AAAA,cACrB,SAAS,MAAM;AACb,gBAAA,oBAAA,CAAqB,MAAM,EAAE,CAAA;AAC7B,gBAAA,UAAA,GAAa,MAAM,EAAE,CAAA;AAAA,cACvB,CAAA;AAAA,cAEC,QAAA,EAAA,KAAA,CAAM;AAAA,aAAA;AAAA,YAPF,KAAA,CAAM;AAAA,WASd,CAAA,EACH;AAAA,SAAA,EAAA,EAnCM,KAAK,EAqCf,CAAA;AAAA,MAEJ;AACA,MAAA,uBACEA,cAAAA;AAAA,QAAC,SAAA;AAAA,QAAA;AAAA,UAEC,MAAM,IAAA,CAAK,IAAA;AAAA,UACX,MAAA,EAAQ,KAAK,EAAA,KAAO,oBAAA;AAAA,UACpB,SAAS,MAAM;AACb,YAAA,oBAAA,CAAqB,KAAK,EAAE,CAAA;AAC5B,YAAA,UAAA,GAAa,KAAK,EAAE,CAAA;AAAA,UACtB,CAAA;AAAA,UAEC,QAAA,EAAA,IAAA,CAAK;AAAA,SAAA;AAAA,QARD,IAAA,CAAK;AAAA,OASZ;AAAA,IAEJ,CAAC,CAAA,EACH;AAAA,GAAA,EACF,CAAA;AAEJ;AAiBO,SAAS,SAAA,CAAU,EAAE,MAAA,EAAQ,OAAA,EAAS,UAAU,KAAA,GAAQ,KAAA,EAAO,WAAU,EAAmB;AACjG,EAAA,uBACED,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAWuB,GAAAA;AAAA,IACd,8GAAA;AAAA,IACA;AAAA,GACF,EAAG,KAAA,EAAO,EAAE,eAAA,EAAiB,qBAAoB,EAC9C,QAAA,EAAA;AAAA,IAAA,MAAA,GAAS,MAAA,GAAS,IAAA;AAAA,oBACnBvB,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yEAAA,EACZ,QAAA,EAAA;AAAA,MAAA,OAAA,GAAU,OAAA,GAAU,IAAA;AAAA,sBACrBC,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAWsB,GAAAA;AAAA,QACf,yGAAA;AAAA,QACA,CAAC,KAAA,IAAS;AAAA,OACZ,EACG,kBAAQ,QAAA,mBACPtB,eAAC,KAAA,EAAA,EAAI,SAAA,EAAU,wBAAA,EACZ,QAAA,EACH,CAAA,EAEJ;AAAA,KAAA,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;AAkEA,IAAM,wCAAA,GAA2C,SAAA;AACjD,IAAM,yCAAA,GAA4C,SAAA;AAClD,IAAM,mCAAA,GAAsC,gCAAA;AAC5C,IAAM,2CAAA,GAA8C,EAAA;AACpD,IAAM,uCAAA,GAA0C,EAAA;AAChD,IAAM,uCAAA,GAA0C,GAAA;AAChD,IAAM,qDAAA,GAAwD,EAAA;AAC9D,IAAM,mDAAA,GAAsD,EAAA;AAC5D,IAAM,qDAAA,GAAwD,CAAA;AAC9D,IAAM,8CAAA,GAAiD,EAAA;AACvD,IAAM,8CAAA,GAAiD,EAAA;AACvD,IAAM,oCAAA,GAAuD;AAAA,EAC3D,MAAA,EAAQ,OAAA;AAAA,EACR,OAAA,EAAS,SAAA;AAAA,EACT,MAAA,EAAQ,IAAA;AAAA,EACR,MAAA,EAAQ,QAAA;AAAA,EACR,UAAA,EAAY;AACd,CAAA;AAEA,IAAM,uCAAA,GAGF;AAAA,EACF,MAAM,EAAE,GAAA,EAAK,gBAAgB,IAAA,EAAM,eAAA,EAAiB,OAAO,eAAA,EAAgB;AAAA,EAC3E,IAAI,EAAE,GAAA,EAAK,cAAc,IAAA,EAAM,+BAAA,EAAiC,OAAO,+BAAA,EAAgC;AAAA,EACvG,IAAI,EAAE,GAAA,EAAK,cAAc,IAAA,EAAM,+BAAA,EAAiC,OAAO,+BAAA,EAAgC;AAAA,EACvG,IAAI,EAAE,GAAA,EAAK,cAAc,IAAA,EAAM,+BAAA,EAAiC,OAAO,+BAAA,EAAgC;AAAA,EACvG,IAAI,EAAE,GAAA,EAAK,cAAc,IAAA,EAAM,+BAAA,EAAiC,OAAO,+BAAA,EAAgC;AAAA,EACvG,MAAM,EAAE,GAAA,EAAK,gBAAgB,IAAA,EAAM,iCAAA,EAAmC,OAAO,iCAAA;AAC/E,CAAA;AAEA,SAAS,mBAAmB,KAAA,EAAgB;AAC1C,EAAA,IAAI,OAAO,UAAU,QAAA,IAAY,CAAC,OAAO,QAAA,CAAS,KAAK,GAAG,OAAO,2CAAA;AACjE,EAAA,OAAO,IAAA,CAAK,GAAA,CAAI,uCAAA,EAAyC,IAAA,CAAK,GAAA,CAAI,yCAAyC,IAAA,CAAK,KAAA,CAAM,KAAK,CAAC,CAAC,CAAA;AAC/H;AAEA,SAAS,4BAA4B,QAAA,EAAkB;AACrD,EAAA,OAAO,QAAA,IAAY,wDACf,qDAAA,GACA,mDAAA;AACN;AAEA,SAAS,qBAAqB,QAAA,EAAkB;AAC9C,EAAA,OAAO,QAAA,IAAY,wDACf,8CAAA,GACA,8CAAA;AACN;AAEA,SAAS,yBAAA,CACP,UAAA,GAAgC,SAAA,EAChC,IAAA,GAAiC,KAAA,EACjC;AACA,EAAA,IAAI,eAAe,SAAA,EAAW;AAC5B,IAAA,IAAI,IAAA,KAAS,QAAQ,OAAO,6BAAA;AAC5B,IAAA,IAAI,IAAA,KAAS,SAAS,OAAO,6BAAA;AAC7B,IAAA,OAAO,YAAA;AAAA,EACT;AACA,EAAA,OAAO,uCAAA,CAAwC,UAAU,CAAA,CAAE,IAAI,CAAA;AACjE;AAEA,SAAS,oBAAA,CAAqB,aAAgC,OAAA,EAAS;AACrE,EAAA,OAAO,UAAA,KAAe,eAClB,0PAAA,GACA,gOAAA;AACN;AAEA,SAAS,oBAAA,CACP,UAAA,GAAgC,OAAA,EAChC,QAAA,EACe;AACf,EAAA,MAAM,iBAAA,GAAoB,4BAA4B,QAAQ,CAAA;AAC9D,EAAA,MAAM,KAAA,GAAuB;AAAA,IAC3B,MAAA,EAAQ,GAAG,QAAQ,CAAA,EAAA,CAAA;AAAA,IACnB,SAAA,EAAW,GAAG,QAAQ,CAAA,EAAA,CAAA;AAAA,IACtB,UAAA,EAAY,GAAG,iBAAiB,CAAA,EAAA,CAAA;AAAA,IAChC,aAAA,EAAe,GAAG,iBAAiB,CAAA,EAAA;AAAA,GACrC;AAEA,EAAA,IAAI,eAAe,YAAA,EAAc;AAC/B,IAAA,KAAA,CAAM,UAAA,GAAa,0CAAA;AACnB,IAAA,KAAA,CAAM,WAAA,GAAc,0CAAA;AACpB,IAAA,KAAA,CAAM,SAAA,GAAY,0CAAA;AAClB,IAAA,KAAA,CAAM,KAAA,GAAQ,kDAAA;AAAA,EAChB;AAEA,EAAA,OAAO,KAAA;AACT;AAEA,SAAS,kBAAA,CAAmB,cAAkC,QAAA,EAAU;AACtE,EAAA,IAAI,WAAA,KAAgB,QAAQ,OAAO,eAAA;AACnC,EAAA,IAAI,WAAA,KAAgB,SAAS,OAAO,aAAA;AACpC,EAAA,OAAO,gBAAA;AACT;AAEA,SAAS,oBAAA,CAAqB,OAAwB,YAAA,EAA2C;AAC/F,EAAA,KAAA,MAAW,QAAQ,KAAA,EAAO;AACxB,IAAA,IAAI,IAAA,CAAK,EAAA,KAAO,YAAA,EAAc,OAAO,IAAA,CAAK,EAAA;AAC1C,IAAA,IAAI,IAAA,CAAK,QAAA,EAAU,IAAA,CAAK,CAAC,KAAA,KAAU,MAAM,EAAA,KAAO,YAAY,CAAA,EAAG,OAAO,IAAA,CAAK,EAAA;AAAA,EAC7E;AACA,EAAA,OAAO,YAAA;AACT;AAEA,SAAS,yBAAyB,MAAA,EAAgC;AAChE,EAAA,OAAO,OAAO,KAAA,KAAU,OAAO,OAAO,KAAA,KAAU,QAAA,GAAW,OAAO,KAAA,GAAQ,MAAA,CAAA;AAC5E;AAEA,SAAS,6BAAA,CAA8B;AAAA,EACrC,OAAA;AAAA,EACA;AACF,CAAA,EAGG;AACD,EAAA,IAAI,CAAC,OAAA,CAAQ,MAAA,EAAQ,OAAO,IAAA;AAE5B,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,uBACEA,eAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oCACZ,QAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,CAAC,MAAA,KAAW;AACvB,MAAA,MAAM,KAAA,GAAQ,yBAAyB,MAAM,CAAA;AAC7C,MAAA,uBACEA,cAAAA;AAAA,QAAC,WAAA;AAAA,QAAA;AAAA,UAEC,UAAA,EAAY,oCAAA;AAAA,UACZ,SAAS,MAAA,CAAO,KAAA;AAAA,UAChB,SAAA,EAAU,OAAA;AAAA,UACV,MAAA,EAAM,IAAA;AAAA,UAEN,QAAA,kBAAAA,cAAAA;AAAA,YAAC,UAAA;AAAA,YAAA;AAAA,cACC,UAAA,EAAY,oCAAA;AAAA,cACZ,IAAA,EAAK,OAAA;AAAA,cACL,QAAA,EAAQ,IAAA;AAAA,cACR,MAAM,MAAA,CAAO,IAAA;AAAA,cACb,SAAS,MAAA,CAAO,OAAA;AAAA,cAChB,KAAA;AAAA,cACA,SAAA,EAAW,KAAA;AAAA,cACX,SAAA,EAAWsB,GAAAA;AAAA,gBACT,yFAAA;AAAA,gBACA,6HAAA;AAAA,gBACA;AAAA;AACF;AAAA;AACF,SAAA;AAAA,QAnBK,MAAA,CAAO;AAAA,OAoBd;AAAA,IAEJ,CAAC,CAAA,EACH,CAAA;AAAA,EAEJ;AAEA,EAAA,uBACEtB,eAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uBACZ,QAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,CAAC,MAAA,qBACZA,cAAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MAEC,UAAA,EAAY,oCAAA;AAAA,MACZ,IAAA,EAAK,OAAA;AAAA,MACL,MAAM,MAAA,CAAO,IAAA;AAAA,MACb,uBAAOA,cAAAA,CAAC,UAAK,SAAA,EAAU,UAAA,EAAY,iBAAO,KAAA,EAAM,CAAA;AAAA,MAChD,SAAS,MAAA,CAAO,OAAA;AAAA,MAChB,KAAA,EAAO,yBAAyB,MAAM,CAAA;AAAA,MACtC,SAAA,EAAWsB,GAAAA;AAAA,QACT,2IAAA;AAAA,QACA,gIAAA;AAAA,QACA;AAAA;AACF,KAAA;AAAA,IAXK,MAAA,CAAO;AAAA,GAaf,CAAA,EACH,CAAA;AAEJ;AAEA,SAAS,qBAAA,CAAsB;AAAA,EAC7B,YAAA;AAAA,EACA,KAAA;AAAA,EACA,UAAA;AAAA,EACA;AACF,CAAA,EAKG;AACD,EAAA,MAAM,MAAA,GAASlB,aAA8B,IAAI,CAAA;AACjD,EAAA,MAAM,CAAC,cAAA,EAAgB,iBAAiB,CAAA,GAAIC,cAAAA,CAAkC,EAAE,CAAA;AAEhF,EAAA,MAAM,UAAA,GAAa,CAAC,EAAA,KAAe;AACjC,IAAA,iBAAA,CAAkB,CAAC,OAAA,MAAa;AAAA,MAC9B,GAAG,OAAA;AAAA,MACH,CAAC,EAAE,GAAG,CAAC,QAAQ,EAAE;AAAA,KACnB,CAAE,CAAA;AAAA,EACJ,CAAA;AAEA,EAAAC,gBAAU,MAAM;AACd,IAAA,IAAI,CAAC,aAAA,EAAe;AACpB,IAAA,iBAAA,CAAkB,CAAC,OAAA,MAAa;AAAA,MAC9B,GAAG,OAAA;AAAA,MACH,CAAC,aAAA,CAAc,EAAE,GAAG;AAAA,KACtB,CAAE,CAAA;AAEF,IAAA,MAAM,OAAA,GAAU,MAAA,CAAO,qBAAA,CAAsB,MAAM;AACjD,MAAA,MAAM,aAAA,GAAgB,OAAO,OAAA,EAAS,aAAA;AAAA,QACpC,CAAA,kCAAA,EAAqC,GAAA,CAAI,MAAA,CAAO,aAAA,CAAc,EAAE,CAAC,CAAA,EAAA;AAAA,OACnE;AACA,MAAA,IAAI,yBAAyB,WAAA,EAAa;AACxC,QAAA,aAAA,CAAc,cAAA,CAAe,EAAE,QAAA,EAAU,MAAA,EAAQ,OAAO,SAAA,EAAW,MAAA,EAAQ,WAAW,CAAA;AAAA,MACxF;AAAA,IACF,CAAC,CAAA;AAED,IAAA,OAAO,MAAM,MAAA,CAAO,oBAAA,CAAqB,OAAO,CAAA;AAAA,EAClD,CAAA,EAAG,CAAC,aAAa,CAAC,CAAA;AAElB,EAAA,uBACEP,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,+BAAA,EAAgC,KAAA,EAAO,EAAE,cAAA,EAAgB,MAAA,EAAQ,eAAA,EAAiB,MAAA,EAAO,EACtG,QAAA,EAAA;AAAA,oBAAAC,cAAAA,CAAC,WAAO,QAAA,EAAA,CAAA,qEAAA,CAAA,EAAwE,CAAA;AAAA,oBAChFA,cAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK,MAAA;AAAA,QACL,SAAA,EAAU,iGAAA;AAAA,QAET,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,KAAS;AACnB,UAAA,MAAM,OAAA,GAAU,OAAA,CAAQ,IAAA,CAAK,QAAA,EAAU,MAAM,CAAA;AAC7C,UAAA,MAAM,UAAA,GAAa,OAAA,CAAQ,cAAA,CAAe,IAAA,CAAK,EAAE,CAAC,CAAA;AAClD,UAAA,MAAM,QAAA,GAAW,iBAAiB,IAAA,CAAK,EAAA;AAEvC,UAAA,IAAI,OAAA,EAAS;AACX,YAAA,uBACED,eAAAA,CAAC,KAAA,EAAA,EAAkB,iCAAA,EAAiC,KAAK,EAAA,EACvD,QAAA,EAAA;AAAA,8BAAAC,cAAAA;AAAA,gBAAC,SAAA;AAAA,gBAAA;AAAA,kBACC,MAAM,IAAA,CAAK,IAAA;AAAA,kBACX,OAAA,EAAS,MAAM,UAAA,CAAW,IAAA,CAAK,EAAE,CAAA;AAAA,kBACjC,yBACEA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,2BACb,QAAA,kBAAAA,cAAAA;AAAA,oBAAC,KAAA;AAAA,oBAAA;AAAA,sBACC,KAAA,EAAM,4BAAA;AAAA,sBACN,KAAA,EAAM,IAAA;AAAA,sBACN,MAAA,EAAO,IAAA;AAAA,sBACP,OAAA,EAAQ,WAAA;AAAA,sBACR,IAAA,EAAK,MAAA;AAAA,sBACL,MAAA,EAAO,cAAA;AAAA,sBACP,WAAA,EAAY,GAAA;AAAA,sBACZ,aAAA,EAAc,OAAA;AAAA,sBACd,cAAA,EAAe,OAAA;AAAA,sBACf,SAAA,EAAU,0EAAA;AAAA,sBACV,KAAA,EAAO,EAAE,SAAA,EAAW,UAAA,GAAa,kBAAkB,cAAA,EAAe;AAAA,sBAElE,QAAA,kBAAAA,cAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,eAAA,EAAgB;AAAA;AAAA,mBAC1B,EACF,CAAA;AAAA,kBAGD,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA,eACR;AAAA,cACC,UAAA,mBACCA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0BAAA,EACZ,QAAA,EAAA,IAAA,CAAK,QAAA,EAAU,GAAA,CAAI,CAAC,KAAA,qBACnBA,cAAAA;AAAA,gBAAC,SAAA;AAAA,gBAAA;AAAA,kBAEC,MAAA,EAAQ,iBAAiB,KAAA,CAAM,EAAA;AAAA,kBAC/B,OAAA,EAAS,MAAM,UAAA,GAAa,KAAA,CAAM,EAAE,CAAA;AAAA,kBAEnC,QAAA,EAAA,KAAA,CAAM;AAAA,iBAAA;AAAA,gBAJF,KAAA,CAAM;AAAA,eAMd,GACH,CAAA,GACE;AAAA,aAAA,EAAA,EAtCI,KAAK,EAuCf,CAAA;AAAA,UAEJ;AAEA,UAAA,uBACEA,cAAAA,CAAC,KAAA,EAAA,EAAkB,iCAAA,EAAiC,IAAA,CAAK,IACvD,QAAA,kBAAAA,cAAAA,CAAC,SAAA,EAAA,EAAU,MAAA,EAAQ,QAAA,EAAU,IAAA,EAAM,KAAK,IAAA,EAAM,OAAA,EAAS,MAAM,UAAA,GAAa,IAAA,CAAK,EAAE,GAC9E,QAAA,EAAA,IAAA,CAAK,KAAA,EACR,CAAA,EAAA,EAHQ,IAAA,CAAK,EAIf,CAAA;AAAA,QAEJ,CAAC;AAAA;AAAA;AACH,GAAA,EACF,CAAA;AAEJ;AAEA,SAAS,YAAA,CAAa;AAAA,EACpB,SAAA;AAAA,EACA,IAAA;AAAA,EACA;AACF,CAAA,EAIG;AACD,EAAA,IAAI,CAAC,MAAM,OAAO,IAAA;AAElB,EAAA,MAAM,UAAA,GAAa,SAAS,IAAA,CAAK,KAAA;AACjC,EAAA,MAAM,2BACJA,cAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAWsB,GAAAA;AAAA,QACT,8EAAA;AAAA,QACA,IAAA,CAAK,MACD,gBAAA,GACA;AAAA,OACN;AAAA,MAEC,QAAA,EAAA,IAAA,CAAK,sBACJtB,cAAAA,CAAC,SAAI,GAAA,EAAK,IAAA,CAAK,GAAA,EAAK,GAAA,EAAK,IAAA,CAAK,KAAA,EAAO,WAAU,8BAAA,EAA+B,CAAA,mBAE9EA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,qBAAqB,QAAA,EAAA,IAAA,CAAK,KAAA,CAAM,MAAA,CAAO,CAAC,CAAA,EAAE;AAAA;AAAA,GAE9D;AAGF,EAAA,IAAI,SAAA,EAAW;AACb,IAAA,uBACEA,cAAAA;AAAA,MAAC,WAAA;AAAA,MAAA;AAAA,QACC,UAAA,EAAY,oCAAA;AAAA,QACZ,OAAA,EAAS,UAAA;AAAA,QACT,SAAA,EAAU,OAAA;AAAA,QACV,MAAA,EAAM,IAAA;AAAA,QAEN,QAAA,kBAAAA,cAAAA;AAAA,UAAC,UAAA;AAAA,UAAA;AAAA,YACC,UAAA,EAAY,oCAAA;AAAA,YACZ,SAAA,EAAW,OAAO,UAAA,KAAe,QAAA,GAAW,aAAa,IAAA,CAAK,KAAA;AAAA,YAC9D,SAAA,EAAU,wGAAA;AAAA,YACV,IAAA,EAAM,QAAA;AAAA,YACN,QAAA,EAAQ,IAAA;AAAA,YACR,SAAS,IAAA,CAAK,OAAA;AAAA,YACd,KAAA,EAAO,OAAO,UAAA,KAAe,QAAA,GAAW,aAAa,IAAA,CAAK,KAAA;AAAA,YAC1D,IAAA,EAAK;AAAA;AAAA;AACP;AAAA,KACF;AAAA,EAEJ;AAEA,EAAA,uBACEA,cAAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,UAAA,EAAY,oCAAA;AAAA,MACZ,WAAW,IAAA,CAAK,KAAA;AAAA,MAChB,SAAA,EAAU,oHAAA;AAAA,MACV,UAAA,EAAY,EAAE,IAAA,EAAM,SAAA,EAAU;AAAA,MAC9B,IAAA,EAAM,QAAA;AAAA,MACN,uBACEA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,wEACb,QAAA,EAAA,UAAA,EACH,CAAA;AAAA,MAEF,SAAS,IAAA,CAAK,OAAA;AAAA,MACd,KAAA,EAAO,OAAO,UAAA,KAAe,QAAA,GAAW,aAAa,IAAA,CAAK,KAAA;AAAA,MAC1D,IAAA,EAAK;AAAA;AAAA,GACP;AAEJ;AAEA,SAAS,OAAA,CAAQ;AAAA,EACf,WAAA;AAAA,EACA,YAAA;AAAA,EACA,UAAU,EAAC;AAAA,EACX,SAAA;AAAA,EACA,oBAAA;AAAA,EACA,MAAA;AAAA,EACA,MAAA;AAAA,EACA,KAAA;AAAA,EACA,IAAA;AAAA,EACA,iBAAA;AAAA,EACA,UAAA;AAAA,EACA,YAAA;AAAA,EACA,aAAA;AAAA,EACA;AACF,CAAA,EAeG;AACD,EAAA,IAAI,SAAA,EAAW;AACb,IAAA,MAAM,YAAA,GAAe,oBAAA,CAAqB,KAAA,EAAO,YAAY,CAAA;AAE7D,IAAA,uBACED,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,4HAAA,EACb,QAAA,EAAA;AAAA,sBAAAC,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mCAAA,EACZ,QAAA,EAAA,MAAA,oBAAUA,cAAAA,CAAC,YAAA,EAAA,EAAa,SAAA,EAAS,IAAA,EAAC,IAAA,EAAY,KAAA,EAAc,CAAA,EAC/D,CAAA;AAAA,sBACAA,cAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAU,sEAAA;AAAA,UACV,KAAA,EAAO,EAAE,cAAA,EAAgB,MAAA,EAAQ,iBAAiB,MAAA,EAAO;AAAA,UAExD,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,KAAS;AACnB,YAAA,MAAM,QAAA,GAAW,iBAAiB,IAAA,CAAK,EAAA;AACvC,YAAA,uBACEA,cAAAA;AAAA,cAAC,WAAA;AAAA,cAAA;AAAA,gBAEC,UAAA,EAAY,oCAAA;AAAA,gBACZ,SAAS,IAAA,CAAK,KAAA;AAAA,gBACd,SAAA,EAAU,OAAA;AAAA,gBACV,MAAA,EAAM,IAAA;AAAA,gBAEN,QAAA,kBAAAA,cAAAA;AAAA,kBAAC,UAAA;AAAA,kBAAA;AAAA,oBACC,UAAA,EAAY,oCAAA;AAAA,oBACZ,IAAA,EAAK,OAAA;AAAA,oBACL,MAAA,EAAQ,QAAA;AAAA,oBACR,QAAA,EAAQ,IAAA;AAAA,oBACR,MAAM,IAAA,CAAK,IAAA;AAAA,oBACX,SAAS,MAAM;AACb,sBAAA,YAAA,GAAe,KAAK,EAAE,CAAA;AACtB,sBAAA,iBAAA,GAAoB,KAAK,CAAA;AACzB,sBAAA,IAAI,IAAA,CAAK,UAAU,MAAA,EAAQ;AAC3B,sBAAA,UAAA,GAAa,KAAK,EAAE,CAAA;AAAA,oBACtB,CAAA;AAAA,oBACA,OAAO,OAAO,IAAA,CAAK,KAAA,KAAU,QAAA,GAAW,KAAK,KAAA,GAAQ,MAAA;AAAA,oBACrD,WAAW,OAAO,IAAA,CAAK,UAAU,QAAA,GAAW,IAAA,CAAK,QAAQ,IAAA,CAAK,EAAA;AAAA,oBAC9D,SAAA,EAAWsB,GAAAA;AAAA,sBACT,6EAAA;AAAA,sBACA,iEAAA;AAAA,sBACA,WACI,2FAAA,GACA;AAAA;AACN;AAAA;AACF,eAAA;AAAA,cA3BK,IAAA,CAAK;AAAA,aA4BZ;AAAA,UAEJ,CAAC;AAAA;AAAA,OACH;AAAA,sBACAvB,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,+FAAA,EACb,QAAA,EAAA;AAAA,wBAAAC,cAAAA,CAAC,6BAAA,EAAA,EAA8B,OAAA,EAAkB,OAAA,EAAO,IAAA,EAAC,CAAA;AAAA,QACxD,uCACCA,cAAAA,CAAC,SAAI,SAAA,EAAU,mEAAA,EACZ,gCACH,CAAA,GACE;AAAA,OAAA,EACN;AAAA,KAAA,EACF,CAAA;AAAA,EAEJ;AAEA,EAAA,uBACED,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uKAAA,EACb,QAAA,EAAA;AAAA,oBAAAC,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,eAAA,EACZ,QAAA,EAAA,MAAA,oBAAUA,cAAAA,CAAC,YAAA,EAAA,EAAa,IAAA,EAAY,KAAA,EAAc,CAAA,EACrD,CAAA;AAAA,oBACAA,cAAAA;AAAA,MAAC,qBAAA;AAAA,MAAA;AAAA,QACC,YAAA;AAAA,QACA,KAAA;AAAA,QACA,UAAA;AAAA,QACA;AAAA;AAAA,KACF;AAAA,oBACAD,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,6FAAA,EACb,QAAA,EAAA;AAAA,sBAAAC,cAAAA,CAAC,6BAAA,EAAA,EAA8B,OAAA,EAAkB,OAAA,EAAS,KAAA,EAAO,CAAA;AAAA,MAChE,MAAA;AAAA,MACA,8BACCA,cAAAA,CAAC,SAAI,SAAA,EAAU,+CAAA,EACZ,uBACH,CAAA,GACE;AAAA,KAAA,EACN;AAAA,GAAA,EACF,CAAA;AAEJ;AAEA,SAAS,kBAAA,CAAmB,EAAE,IAAA,EAAK,EAAsB;AACvD,EAAA,uBACEA,cAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,aAAA,EAAY,MAAA;AAAA,MACZ,SAAA,EAAWsB,GAAAA,CAAG,oDAAA,EAAsD,IAAA,IAAQ,YAAY,CAAA;AAAA,MACxF,OAAA,EAAQ,WAAA;AAAA,MACR,IAAA,EAAK,MAAA;AAAA,MACL,MAAA,EAAO,cAAA;AAAA,MACP,WAAA,EAAY,GAAA;AAAA,MACZ,aAAA,EAAc,OAAA;AAAA,MACd,cAAA,EAAe,OAAA;AAAA,MAEf,QAAA,kBAAAtB,cAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,cAAA,EAAe;AAAA;AAAA,GACzB;AAEJ;AAEA,SAAS,kBAAA,CAAmB;AAAA,EAC1B,YAAA;AAAA,EACA,QAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,qBAAA;AAAA,EACA,sBAAA;AAAA,EACA,mBAAA;AAAA,EACA;AACF,CAAA,EASG;AACD,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAIK,eAAS,KAAK,CAAA;AACtC,EAAA,MAAM,aAAA,GAAgBD,aAA6C,IAAI,CAAA;AAEvE,EAAA,MAAM,kBAAkB,MAAM;AAC5B,IAAA,IAAI,CAAC,cAAc,OAAA,EAAS;AAC5B,IAAA,YAAA,CAAa,cAAc,OAAO,CAAA;AAClC,IAAA,aAAA,CAAc,OAAA,GAAU,IAAA;AAAA,EAC1B,CAAA;AAEA,EAAA,MAAM,WAAW,MAAM;AACrB,IAAA,eAAA,EAAgB;AAChB,IAAA,OAAA,CAAQ,IAAI,CAAA;AAAA,EACd,CAAA;AAEA,EAAA,MAAM,oBAAoB,MAAM;AAC9B,IAAA,eAAA,EAAgB;AAChB,IAAA,aAAA,CAAc,OAAA,GAAU,WAAW,MAAM;AACvC,MAAA,OAAA,CAAQ,KAAK,CAAA;AACb,MAAA,aAAA,CAAc,OAAA,GAAU,IAAA;AAAA,IAC1B,GAAG,GAAG,CAAA;AAAA,EACR,CAAA;AAEA,EAAAE,eAAAA,CAAU,MAAM,eAAA,EAAiB,EAAE,CAAA;AAEnC,EAAA,uBACEP,gBAAcyB,uBAAA,CAAA,IAAA,EAAb,EAAkB,OAAO,KAAA,EAAO,IAAA,EAAY,cAAc,OAAA,EACzD,QAAA,EAAA;AAAA,oBAAAxB,cAAAA,CAAcwB,uBAAA,CAAA,OAAA,EAAb,EAAqB,OAAA,EAAO,MAC3B,QAAA,kBAAAxB,cAAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,UAAA,EAAY,oCAAA;AAAA,QACZ,IAAA,EAAK,OAAA;AAAA,QACL,QAAQ,QAAA,IAAY,IAAA;AAAA,QACpB,MAAM,IAAA,CAAK,IAAA;AAAA,QACX,OAAA,kBAASA,cAAAA,CAAC,kBAAA,EAAA,EAAmB,IAAA,EAAY,CAAA;AAAA,QACzC,uBAAOA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,8BAA8B,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,QAC3D,OAAA,EAAS,MAAM,OAAA,CAAQ,IAAI,CAAA;AAAA,QAC3B,YAAA,EAAc,QAAA;AAAA,QACd,YAAA,EAAc,iBAAA;AAAA,QACd,SAAA,EAAWsB,GAAAA;AAAA,UACT,2EAAA;AAAA,UACA,qBAAA;AAAA,UACA,QAAA,IAAY,OACR,uDAAA,GACA;AAAA;AACN;AAAA,KACF,EACF,CAAA;AAAA,oBACAtB,cAAAA,CAAcwB,uBAAA,CAAA,MAAA,EAAb,EACC,QAAA,kBAAAxB,cAAAA;AAAA,MAAcwB,uBAAA,CAAA,OAAA;AAAA,MAAb;AAAA,QACC,KAAA,EAAM,OAAA;AAAA,QACN,UAAA,EAAY,CAAA;AAAA,QACZ,gBAAA,EAAkB,CAAC,KAAA,KAAU,KAAA,CAAM,cAAA,EAAe;AAAA,QAClD,YAAA,EAAc,QAAA;AAAA,QACd,YAAA,EAAc,iBAAA;AAAA,QACd,SAAA,EAAWF,GAAAA;AAAA,UACT,iKAAA;AAAA,UACA;AAAA,SACF;AAAA,QAEC,QAAA,EAAA,IAAA,CAAK,QAAA,EAAU,GAAA,CAAI,CAAC,0BACnBvB,eAAAA;AAAA,UAAcyB,uBAAA,CAAA,IAAA;AAAA,UAAb;AAAA,YAEC,SAAA,EAAWF,GAAAA;AAAA,cACT,8IAAA;AAAA,cACA,mBAAA;AAAA,cACA,KAAA,CAAM,OAAO,YAAA,IAAgB;AAAA,aAC/B;AAAA,YACA,UAAU,MAAM;AACd,cAAA,OAAA,CAAQ,KAAK,CAAA;AACb,cAAA,UAAA,GAAa,MAAM,EAAE,CAAA;AAAA,YACvB,CAAA;AAAA,YAEC,QAAA,EAAA;AAAA,cAAA,KAAA,CAAM,IAAA,mBACLtB,cAAAA,CAAC,MAAA,EAAA,EAAK,WAAU,8FAAA,EACb,QAAA,EAAA,KAAA,CAAM,MACT,CAAA,GACE,IAAA;AAAA,8BACJA,eAAC,MAAA,EAAA,EAAK,SAAA,EAAU,oBAAoB,QAAA,EAAA,KAAA,CAAM,YAAA,IAAgB,MAAM,KAAA,EAAM;AAAA;AAAA,WAAA;AAAA,UAhBjE,KAAA,CAAM;AAAA,SAkBd;AAAA;AAAA,KACH,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;AAEA,SAAS,UAAA,CAAW;AAAA,EAClB,YAAA;AAAA,EACA,YAAA;AAAA,EACA,KAAA;AAAA,EACA,UAAA;AAAA,EACA;AACF,CAAA,EAMG;AACD,EAAA,MAAM,qBAAA,GAAwB,0BAA0B,UAAU,CAAA;AAClE,EAAA,MAAM,sBAAA,GAAyB,0BAA0B,UAAU,CAAA;AACnE,EAAA,MAAM,mBAAA,GAAsB,0BAA0B,UAAU,CAAA;AAEhE,EAAA,uBACEA,eAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mCACZ,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,KAAS;AACnB,IAAA,MAAM,QAAA,GAAW,YAAA,KAAiB,IAAA,CAAK,EAAA,IAAM,iBAAiB,IAAA,CAAK,EAAA;AACnE,IAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,YAAA,IAAgB,IAAA,CAAK,KAAA;AAExC,IAAA,IAAI,IAAA,CAAK,UAAU,MAAA,EAAQ;AACzB,MAAA,uBACEA,cAAAA;AAAA,QAAC,kBAAA;AAAA,QAAA;AAAA,UAEC,YAAA;AAAA,UACA,QAAA;AAAA,UACA,IAAA;AAAA,UACA,KAAA;AAAA,UACA,qBAAA;AAAA,UACA,sBAAA;AAAA,UACA,mBAAA;AAAA,UACA;AAAA,SAAA;AAAA,QARK,IAAA,CAAK;AAAA,OASZ;AAAA,IAEJ;AAEA,IAAA,uBACEA,cAAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QAEC,UAAA,EAAY,oCAAA;AAAA,QACZ,IAAA,EAAK,OAAA;AAAA,QACL,MAAA,EAAQ,QAAA;AAAA,QACR,MAAM,IAAA,CAAK,IAAA;AAAA,QACX,uBAAOA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,8BAA8B,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,QAC3D,OAAA,EAAS,MAAM,UAAA,GAAa,IAAA,CAAK,EAAE,CAAA;AAAA,QACnC,SAAA,EAAWsB,GAAAA;AAAA,UACT,2EAAA;AAAA,UACA,qBAAA;AAAA,UACA,WACI,uDAAA,GACA;AAAA;AACN,OAAA;AAAA,MAbK,IAAA,CAAK;AAAA,KAcZ;AAAA,EAEJ,CAAC,CAAA,EACH,CAAA;AAEJ;AAEA,SAAS,OAAA,CAAQ;AAAA,EACf,YAAA;AAAA,EACA,YAAA;AAAA,EACA,OAAA;AAAA,EACA,WAAA;AAAA,EACA,KAAA;AAAA,EACA,MAAA;AAAA,EACA,IAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,EAUG;AACD,EAAA,MAAM,QAAA,GAAW,kBAAA,CAAmB,MAAA,EAAQ,QAAQ,CAAA;AACpD,EAAA,MAAM,UAAA,GAAa,QAAQ,UAAA,IAAc,OAAA;AACzC,EAAA,MAAM,UAAA,GAAa,QAAQ,UAAA,IAAc,SAAA;AACzC,EAAA,MAAM,YAAA,GAAe,qBAAqB,QAAQ,CAAA;AAClD,EAAA,MAAM,UAAA,GAAa,oBAAA,CAAqB,UAAA,EAAY,QAAQ,CAAA;AAC5D,EAAA,MAAM,cAAA,GAAiB,OAAA,CAAQ,MAAA,EAAQ,UAAU,CAAA;AAEjD,EAAA,uBACEvB,gBAAC,QAAA,EAAA,EAAO,SAAA,EAAW,qBAAqB,UAAU,CAAA,EAAG,OAAO,UAAA,EAC1D,QAAA,EAAA;AAAA,oBAAAC,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yCAAA,EACZ,iCACCA,cAAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,UAAA,EAAY,oCAAA;AAAA,QACZ,IAAA,EAAK,OAAA;AAAA,QACL,sBACEA,cAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAWsB,GAAAA;AAAA,cACT,6DAAA;AAAA,cACA,IAAA,CAAK,MACD,+CAAA,GACA;AAAA,aACN;AAAA,YACA,KAAA,EAAO,IAAA,CAAK,GAAA,GAAM,EAAE,MAAA,EAAQ,YAAA,EAAa,GAAI,EAAE,KAAA,EAAO,YAAA,EAAc,MAAA,EAAQ,YAAA,EAAa;AAAA,YAExF,QAAA,EAAA,IAAA,CAAK,sBACJtB,cAAAA,CAAC,SAAI,GAAA,EAAK,IAAA,CAAK,GAAA,EAAK,GAAA,EAAK,IAAA,CAAK,KAAA,EAAO,WAAU,oCAAA,EAAqC,CAAA,mBAEpFA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,uBAAuB,QAAA,EAAA,IAAA,CAAK,KAAA,CAAM,MAAA,CAAO,CAAC,CAAA,EAAE;AAAA;AAAA,SAEhE;AAAA,QAEF,KAAA,EACE,iCACEA,cAAAA,CAAC,UAAK,SAAA,EAAU,gFAAA,EACb,QAAA,EAAA,MAAA,EAAQ,UAAA,EACX,CAAA,GACE,IAAA;AAAA,QAEN,WAAW,IAAA,CAAK,KAAA;AAAA,QAChB,OAAO,IAAA,CAAK,KAAA;AAAA,QACZ,SAAA,EAAU,qGAAA;AAAA,QACV,YAAY,IAAA,CAAK,GAAA,GAAM,EAAE,IAAA,EAAM,4BAA2B,GAAI,MAAA;AAAA,QAC9D,SAAS,IAAA,CAAK;AAAA;AAAA,QAEd,IAAA,EACN,CAAA;AAAA,oBAEAA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAWsB,GAAAA,CAAG,6BAA6B,kBAAA,CAAmB,MAAA,EAAQ,WAAW,CAAC,GACrF,QAAA,kBAAAtB,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0FACb,QAAA,kBAAAA,cAAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,YAAA;AAAA,QACA,YAAA;AAAA,QACA,KAAA,EAAO,QAAA;AAAA,QACP,UAAA;AAAA,QACA;AAAA;AAAA,OAEJ,CAAA,EACF,CAAA;AAAA,oBAEAD,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,6CAAA,EACZ,QAAA,EAAA;AAAA,MAAA,OAAA;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KAAA,EACH;AAAA,GAAA,EACF,CAAA;AAEJ;AAEO,SAAS,gBAAA,CAAiB;AAAA,EAC/B,YAAA;AAAA,EACA,YAAA;AAAA,EACA,eAAA,GAAkB,KAAA;AAAA,EAClB,WAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,2BAAA;AAAA,EACA,qBAAA,GAAwB,yCAAA;AAAA,EACxB,WAAA,GAAc,SAAA;AAAA,EACd,uBAAA,GAA0B,KAAA;AAAA,EAC1B,oBAAA,GAAuB,wCAAA;AAAA,EACvB,kBAAA,GAAqB,gBAAA;AAAA,EACrB,KAAA,GAAQ,KAAA;AAAA,EACR,cAAA;AAAA,EACA,aAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,QAAA;AAAA,EACA,YAAA;AAAA,EACA,UAAA;AAAA,EACA,wBAAA;AAAA,EACA,kBAAA;AAAA,EACA,oBAAA,GAAuB,kBAAA;AAAA,EACvB,gBAAA,EAAkB,0BAAA;AAAA,EAClB,kBAAA;AAAA,EACA,aAAA;AAAA,EACA,aAAA;AAAA,EACA,oBAAA,GAAuB,mBAAA;AAAA,EACvB,oBAAA,GAAuB;AACzB,CAAA,EAA0B;AACxB,EAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAmB,CAAA,GAAIM,eAAyB,WAAW,CAAA;AACpF,EAAA,MAAM,CAAC,4BAAA,EAA8B,+BAA+B,CAAA,GAAIA,eAAS,uBAAuB,CAAA;AACxG,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAIA,eAA+C,IAAI,CAAA;AAC7F,EAAA,MAAM,mBAAmB,IAAA,KAAS,MAAA;AAClC,EAAA,MAAM,+BAA+B,0BAAA,KAA+B,MAAA;AACpE,EAAA,MAAM,cAAA,GAAiB,mBAAmB,IAAA,GAAO,gBAAA;AACjD,EAAA,MAAM,gBAAA,GAAmB,+BACrB,0BAAA,GACA,4BAAA;AACJ,EAAA,MAAM,gBAAgB,cAAA,KAAmB,SAAA;AACzC,EAAA,MAAM,YAAA,GAAe,mBAAmB,qBAAA,GAAwB,oBAAA;AAEhE,EAAAC,gBAAU,MAAM;AACd,IAAA,IAAI,CAAC,gBAAA,EAAkB;AACrB,MAAA,mBAAA,CAAoB,WAAW,CAAA;AAAA,IACjC;AAAA,EACF,CAAA,EAAG,CAAC,WAAA,EAAa,gBAAgB,CAAC,CAAA;AAElC,EAAAA,gBAAU,MAAM;AACd,IAAA,IAAI,CAAC,4BAAA,EAA8B;AACjC,MAAA,+BAAA,CAAgC,uBAAuB,CAAA;AAAA,IACzD;AAAA,EACF,CAAA,EAAG,CAAC,uBAAA,EAAyB,4BAA4B,CAAC,CAAA;AAE1D,EAAA,MAAM,iBAAA,GAAoB,CAAC,QAAA,KAA6B;AACtD,IAAA,IAAI,CAAC,gBAAA,EAAkB;AACrB,MAAA,mBAAA,CAAoB,QAAQ,CAAA;AAAA,IAC9B;AACA,IAAA,YAAA,GAAe,QAAQ,CAAA;AAAA,EACzB,CAAA;AAEA,EAAA,MAAM,YAAA,GAAe,CAAC,SAAA,KAAuB;AAC3C,IAAA,IAAI,CAAC,4BAAA,EAA8B;AACjC,MAAA,+BAAA,CAAgC,SAAS,CAAA;AAAA,IAC3C;AACA,IAAA,wBAAA,GAA2B,SAAS,CAAA;AAAA,EACtC,CAAA;AAEA,EAAA,MAAM,oBAA8C,EAAC;AACrD,EAAA,IAAI,eAAA,EAAiB;AACnB,IAAA,iBAAA,CAAkB,IAAA,CAAK;AAAA,MACrB,EAAA,EAAI,gBAAA;AAAA,MACJ,KAAA,EAAO,oBAAA;AAAA,MACP,OAAA,EAAS,MAAM,iBAAA,CAAkB,SAAS,CAAA;AAAA,MAC1C,sBACEP,eAAAA,CAAC,SAAI,KAAA,EAAM,4BAAA,EAA6B,WAAU,8BAAA,EAA+B,OAAA,EAAQ,aAAY,IAAA,EAAK,MAAA,EAAO,QAAO,cAAA,EAAe,WAAA,EAAY,OAAM,aAAA,EAAc,OAAA,EAAQ,gBAAe,OAAA,EAC5L,QAAA,EAAA;AAAA,wBAAAC,cAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,CAAA,EAAE,GAAA,EAAI,CAAA,EAAE,GAAA,EAAI,EAAA,EAAG,GAAA,EAAI,CAAA;AAAA,wBAChDA,cAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,SAAA,EAAU;AAAA,OAAA,EACpB;AAAA,KAEH,CAAA;AAAA,EACH;AACA,EAAA,iBAAA,CAAkB,IAAA,CAAK;AAAA,IACrB,EAAA,EAAI,gBAAA;AAAA,IACJ,KAAA,EAAO,mBAAmB,kBAAA,GAAqB,oBAAA;AAAA,IAC/C,OAAA,EAAS,MAAM,YAAA,CAAa,CAAC,gBAAgB,CAAA;AAAA,IAC7C,sBACED,eAAAA,CAAC,SAAI,KAAA,EAAM,4BAAA,EAA6B,WAAU,mBAAA,EAAoB,OAAA,EAAQ,aAAY,IAAA,EAAK,MAAA,EAAO,QAAO,cAAA,EAAe,WAAA,EAAY,OAAM,aAAA,EAAc,OAAA,EAAQ,gBAAe,OAAA,EACjL,QAAA,EAAA;AAAA,sBAAAC,cAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,CAAA,EAAE,GAAA,EAAI,CAAA,EAAE,GAAA,EAAI,EAAA,EAAG,GAAA,EAAI,CAAA;AAAA,sBAChDA,cAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,SAAA,EAAU,CAAA;AAAA,sBAClBA,cAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAG,gBAAA,GAAmB,kBAAkB,gBAAA,EAAkB;AAAA,KAAA,EAClE;AAAA,GAEH,CAAA;AAED,EAAA,MAAM,OAAA,GAAU,aAAA,GAAgB,IAAA,mBAC9BA,cAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAWsB,GAAAA;AAAA,QACT,kEAAA;AAAA,QACA,mBAAmB,uBAAA,GAA0B;AAAA,OAC/C;AAAA,MACA,KAAA,EAAO,EAAE,KAAA,EAAO,YAAA,EAAc,0BAA0B,mCAAA,EAAoC;AAAA,MAE5F,QAAA,kBAAAtB,cAAAA;AAAA,QAAC,OAAA;AAAA,QAAA;AAAA,UACC,aAAa,kBAAA,IAAsB,WAAA;AAAA,UACnC,YAAA;AAAA,UACA,OAAA,EAAS,iBAAA;AAAA,UACT,SAAA,EAAW,gBAAA;AAAA,UACX,sBAAsB,2BAAA,IAA+B,WAAA;AAAA,UACrD,MAAA,EAAQ,aAAA;AAAA,UACR,MAAA,EAAQ,aAAA;AAAA,UACR,KAAA,EAAO,QAAA;AAAA,UACP,IAAA;AAAA,UACA,iBAAA,EAAmB,YAAA;AAAA,UACnB,UAAA;AAAA,UACA,YAAA,EAAc,CAAC,MAAA,KAAW,gBAAA,CAAiB,CAAC,IAAA,MAAU,EAAE,EAAA,EAAI,MAAA,EAAQ,KAAA,EAAA,CAAQ,IAAA,EAAM,KAAA,IAAS,CAAA,IAAK,GAAE,CAAE,CAAA;AAAA,UACpG,aAAA;AAAA,UACA,OAAO,aAAA,EAAe;AAAA;AAAA;AACxB;AAAA,GACF;AAGF,EAAA,MAAM,MAAA,GAAS,gCACbA,cAAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,YAAA;AAAA,MACA,YAAA,EAAc,YAAA,IAAgB,oBAAA,CAAqB,QAAA,EAAU,YAAY,CAAA;AAAA,MACzE,OAAA,EACE,eAAA,mBACED,eAAAA,CAAAwB,qBAAA,EACG,QAAA,EAAA;AAAA,QAAA,cAAA;AAAA,wBACDvB,cAAAA;AAAA,UAAC,UAAA;AAAA,UAAA;AAAA,YACC,UAAA,EAAY,oCAAA;AAAA,YACZ,IAAA,EAAK,OAAA;AAAA,YACL,sBACED,eAAAA,CAAC,SAAI,KAAA,EAAM,4BAAA,EAA6B,WAAU,kBAAA,EAAmB,OAAA,EAAQ,aAAY,IAAA,EAAK,MAAA,EAAO,QAAO,cAAA,EAAe,WAAA,EAAY,OAAM,aAAA,EAAc,OAAA,EAAQ,gBAAe,OAAA,EAChL,QAAA,EAAA;AAAA,8BAAAC,cAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,CAAA,EAAE,GAAA,EAAI,CAAA,EAAE,GAAA,EAAI,EAAA,EAAG,GAAA,EAAI,CAAA;AAAA,8BAChDA,cAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,SAAA,EAAU,CAAA;AAAA,8BAClBA,cAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,eAAA,EAAgB;AAAA,aAAA,EAC1B,CAAA;AAAA,YAEF,uBAAOA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,8BAA8B,QAAA,EAAA,oBAAA,EAAqB,CAAA;AAAA,YAC1E,OAAA,EAAS,MAAM,iBAAA,CAAkB,SAAS,CAAA;AAAA,YAC1C,SAAA,EAAWsB,GAAAA;AAAA,cACT,6MAAA;AAAA,cACA,yBAAA,CAA0B,eAAe,UAAU;AAAA;AACrD;AAAA;AACF,OAAA,EACF,CAAA,GACE,cAAA;AAAA,MAEN,WAAA;AAAA,MACA,KAAA,EAAO,kBAAA;AAAA,MACP,MAAA,EAAQ,aAAA;AAAA,MACR,IAAA;AAAA,MACA,QAAA;AAAA,MACA;AAAA;AAAA,GACF,GACE,IAAA;AAEJ,EAAA,uBACEtB,cAAAA,CAAC,SAAA,EAAA,EAAU,QAAgB,OAAA,EAAkB,KAAA,EAAc,WACxD,QAAA,EACH,CAAA;AAEJ","file":"index.js","sourcesContent":["import type { ReactNode } from 'react';\n\nexport function cn(...parts: Array<string | false | null | undefined>) {\n return parts.filter(Boolean).join(' ');\n}\n\nexport function hasRenderableNode(node: ReactNode) {\n return node !== undefined && node !== null && typeof node !== 'boolean';\n}\n","import type {\n BaseAppearance,\n BaseBackground,\n BaseBorder,\n BaseControlTone,\n BaseDensity,\n BaseRadius,\n BaseResolvedTheme,\n BaseThemePresetId,\n BaseThemeSlots,\n BaseThemeStyles,\n} from './types';\nimport { cn } from './utils';\n\ntype ResolvedSlots = Required<BaseThemeSlots>;\n\nconst emptyStyles: BaseThemeStyles = {};\n\nconst motionBase =\n 'motion-safe:transition motion-safe:duration-300 motion-safe:ease-out';\n\nconst motionInteractive =\n 'motion-safe:transition-all motion-safe:duration-300 motion-safe:ease-out';\n\nconst motionTransform =\n 'motion-safe:transition-transform motion-safe:duration-300 motion-safe:ease-out';\n\nconst baseSlots: ResolvedSlots = {\n buttonBase:\n cn(\n 'group/button inline-flex min-w-0 items-center justify-center gap-2 rounded-md border px-3 text-sm font-medium focus-visible:outline-none',\n 'cursor-pointer disabled:!cursor-not-allowed',\n motionInteractive,\n ),\n buttonDefault:\n 'border-border bg-background text-foreground hover:bg-accent/60',\n buttonPrimary:\n 'border-primary/20 bg-primary/10 text-primary hover:bg-primary/15',\n buttonSuccess:\n 'border-emerald-500/30 bg-emerald-500/10 text-emerald-700 hover:bg-emerald-500/15',\n buttonWarning:\n 'border-amber-500/30 bg-amber-500/10 text-amber-700 hover:bg-amber-500/15',\n buttonDanger:\n 'border-destructive/20 bg-destructive/10 text-destructive hover:bg-destructive/15',\n buttonMuted:\n 'border-border/60 bg-muted/45 text-muted-foreground hover:bg-muted/70 hover:text-foreground',\n buttonActive: 'border-primary/35 bg-primary/10 text-primary',\n buttonDisabled: '!cursor-not-allowed opacity-60',\n buttonIconOnly: 'w-9 px-0',\n buttonIcon:\n 'inline-flex h-4 w-4 shrink-0 items-center justify-center',\n buttonLabel: 'min-w-0 truncate',\n badgeBase:\n cn(\n 'inline-flex max-w-full items-center gap-1.5 rounded-full border px-2 py-0.5 text-xs font-medium',\n motionBase,\n ),\n badgeDefault: 'border-border/60 bg-background text-foreground',\n badgePrimary: 'border-primary/30 bg-primary/10 text-primary',\n badgeSuccess: 'border-emerald-500/30 bg-emerald-500/10 text-emerald-700',\n badgeWarning: 'border-amber-500/30 bg-amber-500/10 text-amber-700',\n badgeDanger: 'border-destructive/30 bg-destructive/10 text-destructive',\n badgeMuted: 'border-border/60 bg-muted text-muted-foreground',\n badgeIcon: 'inline-flex h-3.5 w-3.5 shrink-0 items-center justify-center',\n badgeLabel: 'min-w-0 truncate',\n panelRoot:\n cn(\n 'group relative flex min-w-0 flex-col overflow-hidden rounded-lg border border-border/70 bg-background',\n motionInteractive,\n ),\n panelInteractive:\n 'cursor-pointer hover:shadow-md',\n panelSelected: 'border-primary/45 bg-primary/5',\n panelDisabled: '!cursor-not-allowed opacity-60',\n panelMedia:\n 'shrink-0 overflow-hidden',\n panelHeader: 'min-w-0 p-4',\n panelTitle: 'min-w-0 truncate text-sm font-semibold leading-none text-foreground',\n panelDescription: 'mt-1 text-sm leading-5 text-muted-foreground',\n panelBody: 'min-w-0 px-4 pb-4 text-sm text-foreground',\n panelBodyStandalone: 'pt-4',\n panelFooter: 'shrink-0 border-t border-border/60 px-4 py-3',\n stateRoot:\n cn(\n 'flex min-h-48 flex-col items-center justify-center rounded-lg border border-border/70 bg-background px-6 py-10 text-center',\n motionBase,\n ),\n stateIcon:\n 'mb-4 flex h-12 w-12 items-center justify-center rounded-full bg-muted text-muted-foreground motion-safe:animate-in motion-safe:fade-in',\n stateTitle: 'text-sm font-semibold text-foreground',\n stateDescription: 'mt-2 max-w-md text-sm leading-6 text-muted-foreground',\n stateActions: 'mt-5 flex flex-wrap items-center justify-center gap-2',\n loadingSpinner: 'h-5 w-5 animate-spin',\n fieldRoot: 'grid min-w-0 gap-2',\n fieldLabelRow: 'flex min-w-0 items-center justify-between gap-3',\n fieldLabel: 'min-w-0 text-sm font-medium leading-none text-foreground',\n fieldRequired: 'text-destructive',\n fieldDescription: 'text-sm leading-5 text-muted-foreground',\n fieldMessage: 'text-sm leading-5 text-muted-foreground',\n fieldControl: 'min-w-0',\n controlWrapper:\n cn(\n 'relative flex min-w-0 items-center rounded-md border border-border bg-background text-foreground focus-within:border-primary/35',\n motionBase,\n ),\n controlBase:\n 'min-w-0 flex-1 bg-transparent px-3 text-sm text-foreground outline-none placeholder:text-muted-foreground disabled:!cursor-not-allowed',\n controlInput: 'h-9',\n controlTextarea: 'min-h-24 resize-y py-2 leading-6',\n controlSelect: 'h-9 cursor-pointer appearance-none pr-9 disabled:!cursor-not-allowed',\n controlIcon:\n 'pointer-events-none ml-3 inline-flex h-4 w-4 shrink-0 items-center justify-center text-muted-foreground',\n controlTrailing:\n 'mr-3 inline-flex shrink-0 items-center justify-center text-muted-foreground',\n controlInvalid:\n 'border-destructive/45 focus-within:border-destructive/60',\n controlDisabled: '!cursor-not-allowed opacity-60',\n controlReadOnly: 'bg-muted/35',\n selectChevron:\n cn(\n 'pointer-events-none absolute right-3 top-1/2 h-2 w-2 -translate-y-1/2 rotate-45 border-b border-r border-current text-muted-foreground',\n motionTransform,\n ),\n selectMenu:\n 'absolute left-0 right-0 top-[calc(100%+0.375rem)] z-50 max-h-60 origin-top overflow-auto rounded-md border border-border bg-background p-1 text-sm text-foreground shadow-lg outline-none motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out',\n selectOption:\n cn(\n 'flex min-h-8 w-full min-w-0 cursor-pointer items-center rounded-sm px-2.5 py-1.5 text-left text-sm text-foreground',\n motionInteractive,\n ),\n selectOptionActive: 'bg-accent text-accent-foreground',\n selectOptionSelected: 'bg-primary/10 text-primary',\n selectOptionDisabled: '!cursor-not-allowed opacity-50',\n selectPlaceholder: 'text-muted-foreground',\n selectNative: 'sr-only',\n switchRoot: 'inline-flex min-w-0 cursor-pointer items-start gap-3',\n switchInput: 'sr-only',\n switchTrack:\n cn(\n 'relative mt-0.5 inline-flex h-6 w-10 shrink-0 items-center rounded-full border border-border bg-muted focus-within:border-primary/35',\n motionBase,\n ),\n switchThumb:\n cn(\n 'h-4 w-4 translate-x-1 rounded-full bg-background shadow-sm',\n motionTransform,\n ),\n switchChecked: 'border-primary/40 bg-primary/80 text-primary-foreground',\n switchDisabled: '!cursor-not-allowed opacity-60',\n switchContent: 'grid min-w-0 gap-1',\n switchLabel: 'text-sm font-medium leading-none text-foreground',\n switchDescription: 'text-sm leading-5 text-muted-foreground',\n checkboxRoot: 'inline-flex min-w-0 cursor-pointer items-start gap-3',\n checkboxInput: 'sr-only',\n checkboxBox:\n cn(\n 'mt-0.5 inline-flex h-4 w-4 shrink-0 items-center justify-center rounded border border-border bg-background text-primary focus-within:border-primary/40',\n motionBase,\n ),\n checkboxBoxChecked: 'border-primary/45 bg-primary text-primary-foreground',\n checkboxBoxInvalid: 'border-destructive/50',\n checkboxIndicator: 'text-[11px] font-bold leading-none',\n checkboxDisabled: '!cursor-not-allowed opacity-60',\n checkboxContent: 'grid min-w-0 gap-1',\n checkboxLabel: 'text-sm font-medium leading-none text-foreground',\n checkboxDescription: 'text-sm leading-5 text-muted-foreground',\n radioGroupRoot: 'grid min-w-0 gap-2',\n radioOption:\n cn(\n 'inline-flex min-w-0 cursor-pointer items-start gap-3 rounded-md border border-border/60 bg-background px-3 py-2 text-sm',\n motionInteractive,\n 'hover:bg-muted/35',\n ),\n radioInput: 'sr-only',\n radioMarker:\n cn(\n 'mt-0.5 inline-flex h-4 w-4 shrink-0 items-center justify-center rounded-full border border-border bg-background text-primary focus-within:border-primary/40',\n motionBase,\n ),\n radioMarkerChecked: 'border-primary/50 bg-primary/10',\n radioIndicator: 'h-2 w-2 rounded-full bg-primary',\n radioOptionDisabled: '!cursor-not-allowed opacity-60 hover:bg-background',\n radioContent: 'grid min-w-0 gap-1',\n radioLabel: 'text-sm font-medium leading-none text-foreground',\n radioDescription: 'text-sm leading-5 text-muted-foreground',\n dialogRoot: 'relative',\n dialogTrigger: '',\n dialogTriggerDisabled: '!cursor-not-allowed opacity-60',\n dialogOverlay:\n 'fixed inset-0 z-50 bg-background/70 backdrop-blur-sm motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out',\n dialogContent:\n 'fixed inset-0 z-50 flex min-h-0 items-center justify-center p-4',\n dialogPanel:\n cn(\n 'relative flex max-h-[min(85vh,720px)] w-full max-w-lg min-w-0 flex-col overflow-hidden rounded-lg border border-border/70 bg-background text-foreground shadow-xl',\n 'motion-safe:animate-in motion-safe:fade-in motion-safe:zoom-in-95 motion-safe:duration-300 motion-safe:ease-out',\n ),\n dialogHeader: 'grid min-w-0 gap-1 border-b border-border/60 px-5 py-4',\n dialogTitle: 'min-w-0 pr-8 text-base font-semibold leading-6 text-foreground',\n dialogDescription: 'text-sm leading-6 text-muted-foreground',\n dialogBody: 'min-h-0 min-w-0 overflow-auto px-5 py-4 text-sm text-foreground',\n dialogFooter:\n 'flex shrink-0 flex-wrap items-center justify-end gap-2 border-t border-border/60 px-5 py-4',\n dialogClose:\n cn(\n 'absolute right-3 top-3 inline-flex h-8 w-8 cursor-pointer items-center justify-center rounded-md text-muted-foreground hover:bg-muted/60 hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30',\n motionInteractive,\n ),\n dropdownRoot: 'relative inline-flex min-w-0',\n dropdownTrigger: '',\n dropdownTriggerDisabled: '!cursor-not-allowed opacity-60',\n dropdownMenu:\n 'absolute left-0 top-[calc(100%+0.375rem)] z-50 min-w-48 overflow-hidden rounded-md border border-border bg-background p-1 text-sm text-foreground shadow-lg motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out',\n dropdownMenuTop: 'bottom-[calc(100%+0.375rem)] top-auto',\n dropdownMenuEnd: 'left-auto right-0',\n dropdownLabel:\n 'px-2.5 py-1.5 text-xs font-semibold uppercase tracking-[0.12em] text-muted-foreground',\n dropdownSeparator: 'my-1 h-px bg-border/70',\n dropdownItem:\n cn(\n 'flex min-w-0 cursor-pointer items-center gap-2 rounded-sm px-2.5 py-2 text-left text-sm text-foreground hover:bg-accent/60 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30',\n motionInteractive,\n ),\n dropdownItemDanger: 'text-destructive hover:bg-destructive/10',\n dropdownItemDisabled: '!cursor-not-allowed opacity-50 hover:bg-transparent',\n dropdownItemIcon: 'inline-flex h-4 w-4 shrink-0 items-center justify-center',\n dropdownItemContent: 'grid min-w-0 flex-1 gap-0.5',\n dropdownItemLabel: 'min-w-0 truncate',\n dropdownItemDescription:\n 'min-w-0 truncate text-xs leading-4 text-muted-foreground',\n dropdownItemShortcut:\n 'ml-3 shrink-0 text-xs font-medium text-muted-foreground',\n tooltipRoot: 'relative inline-flex min-w-0',\n tooltipTrigger: 'inline-flex min-w-0',\n tooltipContent:\n 'pointer-events-none absolute z-50 max-w-xs rounded-md border border-border bg-popover px-2.5 py-1.5 text-xs leading-5 text-popover-foreground shadow-lg motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out',\n noticeBase:\n cn(\n 'flex min-w-0 gap-3 rounded-lg border px-4 py-3 text-sm',\n motionBase,\n 'motion-safe:animate-in motion-safe:fade-in',\n ),\n noticeDefault: 'border-border bg-background text-foreground',\n noticePrimary: 'border-primary/25 bg-primary/10 text-primary',\n noticeSuccess:\n 'border-emerald-500/30 bg-emerald-500/10 text-emerald-700',\n noticeWarning: 'border-amber-500/30 bg-amber-500/10 text-amber-700',\n noticeDanger: 'border-destructive/30 bg-destructive/10 text-destructive',\n noticeMuted: 'border-border/60 bg-muted/35 text-muted-foreground',\n noticeIcon:\n 'mt-0.5 inline-flex h-4 w-4 shrink-0 items-center justify-center motion-safe:animate-in motion-safe:fade-in',\n noticeTitle: 'font-semibold leading-5',\n noticeDescription: 'leading-6',\n noticeActions: 'mt-3 flex flex-wrap items-center gap-2',\n dividerRoot: cn('shrink-0 border-border/70', motionBase),\n dividerLabel:\n 'mx-3 shrink-0 text-xs font-medium uppercase tracking-[0.12em] text-muted-foreground motion-safe:animate-in motion-safe:fade-in',\n sectionHeaderRoot:\n 'flex min-w-0 flex-wrap items-start justify-between gap-3 motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out',\n sectionHeaderContent: 'grid min-w-0 gap-1',\n sectionHeaderEyebrow:\n 'text-xs font-semibold uppercase tracking-[0.14em] text-muted-foreground',\n sectionHeaderTitle: 'text-base font-semibold leading-6 text-foreground',\n sectionHeaderDescription: 'max-w-2xl text-sm leading-6 text-muted-foreground',\n sectionHeaderActions: 'flex shrink-0 flex-wrap items-center gap-2',\n tabsRoot: 'grid min-w-0 gap-3',\n tabsList:\n cn(\n 'inline-flex min-w-0 flex-wrap items-center gap-1 rounded-lg border border-border/70 bg-muted/30 p-1',\n motionBase,\n ),\n tabsTrigger:\n cn(\n 'inline-flex min-w-0 cursor-pointer items-center justify-center rounded-md px-3 py-1.5 text-sm font-medium text-muted-foreground hover:bg-background/70 hover:text-foreground focus-visible:outline-none',\n motionInteractive,\n ),\n tabsTriggerActive:\n 'bg-background text-foreground shadow-sm',\n tabsTriggerDisabled: '!cursor-not-allowed opacity-50 hover:bg-transparent',\n tabsPanel:\n 'min-w-0 rounded-lg border border-border/70 bg-background p-4 text-sm text-foreground motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out',\n segmentedRoot:\n cn(\n 'inline-flex min-w-0 items-center gap-1 rounded-lg border border-border/70 bg-muted/30 p-1',\n motionBase,\n ),\n segmentedItem:\n cn(\n 'inline-flex min-w-0 cursor-pointer items-center justify-center gap-1.5 rounded-md px-3 py-1.5 text-sm font-medium text-muted-foreground hover:bg-background/70 hover:text-foreground focus-visible:outline-none',\n motionInteractive,\n ),\n segmentedItemActive:\n 'bg-background text-foreground shadow-sm',\n segmentedItemDisabled: '!cursor-not-allowed opacity-50 hover:bg-transparent',\n progressRoot: 'grid min-w-0 gap-2',\n progressTrack:\n 'h-2 w-full overflow-hidden rounded-full bg-muted',\n progressIndicator:\n 'h-full rounded-full bg-primary motion-safe:transition-[width] motion-safe:duration-500 motion-safe:ease-out',\n progressLabelRow: 'flex min-w-0 items-center justify-between gap-3',\n progressLabel: 'min-w-0 truncate text-sm font-medium text-foreground',\n progressValue: 'shrink-0 text-xs font-medium text-muted-foreground',\n skeletonRoot:\n 'relative overflow-hidden rounded-md bg-muted/70',\n avatarRoot:\n 'relative inline-flex shrink-0 items-center justify-center overflow-hidden rounded-full border border-border bg-muted text-sm font-semibold text-muted-foreground motion-safe:transition motion-safe:duration-300 motion-safe:ease-out',\n avatarImage:\n 'h-full w-full object-cover',\n avatarFallback:\n 'flex h-full w-full items-center justify-center bg-muted text-muted-foreground',\n avatarStatus:\n 'absolute bottom-0 right-0 h-2.5 w-2.5 rounded-full border-2 border-background bg-muted-foreground motion-safe:animate-pulse',\n avatarText: 'min-w-0 truncate text-sm font-medium text-foreground',\n toolbarRoot:\n cn(\n 'flex min-w-0 flex-wrap items-center justify-between gap-3 rounded-lg border border-border/70 bg-background px-4 py-3',\n motionBase,\n ),\n toolbarLeading: 'flex min-w-0 items-center gap-3',\n toolbarTitle: 'min-w-0 truncate text-sm font-semibold text-foreground',\n toolbarDescription: 'mt-0.5 text-sm leading-5 text-muted-foreground',\n toolbarContent: 'min-w-0 flex-1',\n toolbarActions: 'flex shrink-0 flex-wrap items-center gap-2',\n breadcrumbRoot: 'min-w-0 text-sm text-muted-foreground',\n breadcrumbList: 'flex min-w-0 flex-wrap items-center gap-1.5',\n breadcrumbItem: 'inline-flex min-w-0 items-center gap-1.5',\n breadcrumbLink:\n 'min-w-0 cursor-pointer truncate text-muted-foreground hover:text-foreground disabled:!cursor-not-allowed disabled:opacity-50 aria-disabled:!cursor-not-allowed aria-disabled:opacity-50 aria-disabled:hover:text-muted-foreground motion-safe:transition motion-safe:duration-300 motion-safe:ease-out',\n breadcrumbCurrent: 'min-w-0 truncate font-medium text-foreground',\n breadcrumbSeparator: 'shrink-0 text-muted-foreground/70',\n paginationRoot:\n 'flex min-w-0 flex-wrap items-center justify-between gap-3 text-sm',\n paginationInfo: 'min-w-0 text-muted-foreground',\n paginationControls: 'flex shrink-0 items-center gap-1.5',\n paginationButton:\n 'inline-flex h-8 min-w-8 cursor-pointer items-center justify-center rounded-md border border-border bg-background px-2.5 text-sm font-medium text-foreground hover:bg-accent/60 disabled:!cursor-not-allowed disabled:opacity-50 motion-safe:transition motion-safe:duration-300 motion-safe:ease-out',\n paginationButtonDisabled: '!cursor-not-allowed opacity-50',\n paginationPage:\n 'inline-flex h-8 min-w-8 items-center justify-center rounded-md bg-muted/50 px-2.5 text-sm font-medium text-foreground',\n descriptionListRoot:\n 'grid min-w-0 gap-3 text-sm',\n descriptionListItem:\n 'grid min-w-0 gap-1 rounded-md border border-border/60 bg-background px-3 py-2 motion-safe:transition motion-safe:duration-300 motion-safe:ease-out hover:shadow-sm',\n descriptionListTerm:\n 'min-w-0 truncate text-xs font-medium uppercase tracking-[0.08em] text-muted-foreground',\n descriptionListValue: 'min-w-0 text-sm leading-6 text-foreground',\n accordionRoot: 'grid min-w-0 gap-2',\n accordionItem:\n 'overflow-hidden rounded-lg border border-border/70 bg-background motion-safe:transition motion-safe:duration-300 motion-safe:ease-out',\n accordionTrigger:\n 'flex w-full min-w-0 cursor-pointer items-center justify-between gap-3 px-4 py-3 text-left text-sm font-medium text-foreground hover:bg-muted/40 disabled:!cursor-not-allowed disabled:opacity-50 motion-safe:transition motion-safe:duration-300 motion-safe:ease-out',\n accordionTriggerIcon:\n cn(\n 'h-2 w-2 shrink-0 rotate-45 border-b border-r border-current text-muted-foreground',\n motionTransform,\n ),\n accordionPanel:\n 'border-t border-border/60 px-4 py-3 text-sm leading-6 text-muted-foreground motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out',\n menuTrigger: 'inline-flex min-w-0',\n menuContent:\n 'z-50 min-w-44 overflow-hidden rounded-md border border-border bg-background p-1 text-sm text-foreground shadow-lg outline-none motion-safe:animate-in motion-safe:fade-in motion-safe:zoom-in-95 motion-safe:duration-300 motion-safe:ease-out',\n menuLabel: 'px-2 py-1.5 text-xs font-medium text-muted-foreground',\n menuSeparator: '-mx-1 my-1 h-px bg-border',\n menuItem:\n cn(\n 'relative flex min-h-8 min-w-0 cursor-pointer select-none items-center gap-2 rounded-sm px-2.5 py-1.5 text-sm text-foreground outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:!cursor-not-allowed data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground',\n motionInteractive,\n ),\n menuItemDefault: 'text-foreground',\n menuItemPrimary: 'text-primary focus:text-primary data-[highlighted]:text-primary',\n menuItemSuccess:\n 'text-emerald-700 focus:text-emerald-700 data-[highlighted]:text-emerald-700',\n menuItemWarning:\n 'text-amber-700 focus:text-amber-700 data-[highlighted]:text-amber-700',\n menuItemDanger:\n 'text-destructive focus:text-destructive data-[highlighted]:text-destructive',\n menuItemMuted:\n 'text-muted-foreground focus:text-foreground data-[highlighted]:text-foreground',\n menuItemDisabled:\n '!cursor-not-allowed opacity-50 data-[disabled]:pointer-events-none',\n menuItemIcon: 'inline-flex h-4 w-4 shrink-0 items-center justify-center',\n menuItemLabel: 'min-w-0 flex-1 truncate',\n menuItemShortcut:\n 'ml-4 shrink-0 text-xs font-medium text-muted-foreground',\n menuCheckboxIndicator:\n 'absolute left-2 inline-flex h-4 w-4 items-center justify-center text-current',\n menuRadioIndicator:\n 'absolute left-2 inline-flex h-4 w-4 items-center justify-center text-current',\n menuSubTrigger:\n cn(\n 'relative flex min-h-8 min-w-0 cursor-pointer select-none items-center gap-2 rounded-sm px-2.5 py-1.5 text-sm text-foreground outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:!cursor-not-allowed data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground',\n motionInteractive,\n ),\n menuSubTriggerIcon:\n 'ml-auto inline-flex h-4 w-4 shrink-0 items-center justify-center text-muted-foreground',\n menuSubContent:\n 'z-50 min-w-40 overflow-hidden rounded-md border border-border bg-background p-1 text-sm text-foreground shadow-lg outline-none motion-safe:animate-in motion-safe:fade-in motion-safe:zoom-in-95 motion-safe:duration-300 motion-safe:ease-out',\n tableContainer:\n cn(\n 'relative min-w-0 overflow-auto rounded-lg border border-border/70 bg-background',\n motionBase,\n ),\n tableContainerFooterAttached: '!rounded-b-none !shadow-none',\n tableRoot: 'w-full caption-bottom border-collapse text-sm text-foreground',\n tableCaption: 'mt-3 text-sm text-muted-foreground',\n tableHeader: 'border-b border-border/70 bg-muted/35',\n tableBody: '[&_tr:last-child]:border-0',\n tableFooter: 'border-t border-border/70 bg-muted/30 font-medium',\n tableFooterBar:\n cn(\n 'flex min-w-0 flex-wrap items-center justify-between gap-3 rounded-lg border border-border/70 bg-muted/20 px-4 py-3 text-sm text-muted-foreground shadow-none',\n motionBase,\n ),\n tableFooterBarAttached:\n '-mt-px rounded-t-none border-t border-border/70 shadow-none',\n tableFooterBarLeading: 'flex min-w-0 items-center gap-2',\n tableFooterBarContent: 'min-w-0 flex-1',\n tableFooterBarActions: 'ml-auto flex shrink-0 flex-wrap items-center gap-2',\n tableRow:\n cn(\n 'border-b border-border/60 data-[state=selected]:bg-primary/5',\n motionBase,\n ),\n tableRowInteractive: 'cursor-pointer hover:bg-muted/35',\n tableRowSelected: 'bg-primary/5',\n tableRowDisabled: '!cursor-not-allowed opacity-60',\n tableHead:\n 'relative h-11 whitespace-nowrap px-3 py-2 text-left align-middle text-xs font-semibold text-muted-foreground',\n tableHeadContent: 'flex min-w-0 items-center justify-between gap-2',\n tableHeadMain: 'flex min-w-0 items-center gap-2',\n tableHeadIcon: 'inline-flex h-4 w-4 shrink-0 items-center justify-center text-muted-foreground',\n tableHeadText: 'grid min-w-0 gap-0.5',\n tableHeadLabel: 'min-w-0 truncate text-xs font-semibold leading-4 text-foreground',\n tableHeadDescription: 'min-w-0 truncate text-[11px] font-normal leading-4 text-muted-foreground',\n tableHeadMeta: 'shrink-0 text-[11px] font-medium text-muted-foreground',\n tableHeadActions: 'flex shrink-0 items-center gap-1',\n tableHeadSortButton:\n cn(\n 'inline-flex min-w-0 cursor-pointer items-center gap-1 rounded-sm text-left focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30 disabled:!cursor-not-allowed disabled:opacity-60',\n motionBase,\n ),\n tableHeadSortIcon:\n cn(\n 'inline-flex h-3 w-3 shrink-0 items-center justify-center text-muted-foreground',\n motionTransform,\n ),\n tableHeadDragHandle:\n cn(\n 'inline-flex h-5 w-4 shrink-0 cursor-grab items-center justify-center rounded-sm text-muted-foreground hover:bg-muted active:cursor-grabbing focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30 disabled:!cursor-not-allowed disabled:opacity-50',\n motionBase,\n ),\n tableHeadResizeHandle:\n 'absolute right-0 top-1/2 h-7 w-2 -translate-y-1/2 cursor-col-resize rounded-sm after:absolute after:left-1/2 after:top-1/2 after:h-5 after:w-px after:-translate-x-1/2 after:-translate-y-1/2 after:bg-border hover:after:bg-primary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30 disabled:!cursor-not-allowed disabled:opacity-50',\n tableCell: 'px-3 py-2 align-middle text-sm text-foreground',\n tableCellAlignCenter: 'text-center',\n tableCellAlignRight: 'text-right',\n tableEmptyRow: 'border-b border-border/60',\n tableEmptyCell: 'px-4 py-10 text-center',\n tableEmptyContent: 'mx-auto flex max-w-md flex-col items-center justify-center text-center',\n tableEmptyIcon:\n 'mb-3 flex h-10 w-10 items-center justify-center rounded-full bg-muted text-muted-foreground',\n tableEmptyTitle: 'text-sm font-semibold text-foreground',\n tableEmptyDescription: 'mt-1 text-sm leading-6 text-muted-foreground',\n tableEmptyActions: 'mt-4 flex flex-wrap items-center justify-center gap-2',\n tableLoadingRow: 'border-b border-border/60',\n tableLoadingCell: 'px-3 py-2',\n tableLoadingSkeleton: 'h-4 w-full rounded-md bg-muted/70',\n layoutRoot:\n cn(\n 'grid min-w-0 overflow-hidden grid-rows-[auto_minmax(0,1fr)_auto] gap-3 rounded-lg border border-border/70 bg-background p-3 text-foreground',\n motionBase,\n ),\n layoutRootFull: 'h-full min-h-0',\n layoutHeader: 'min-w-0',\n layoutBody: 'grid min-h-0 min-w-0 overflow-hidden gap-3',\n layoutSidebar: 'min-h-0 min-w-0 overflow-hidden',\n layoutMain: 'min-h-0 min-w-0 overflow-hidden',\n layoutAside: 'min-h-0 min-w-0 overflow-hidden',\n layoutFooter: 'min-w-0',\n layoutPane:\n cn(\n 'h-full max-h-full min-h-0 min-w-0 overflow-hidden rounded-lg bg-background text-foreground',\n motionBase,\n ),\n layoutPaneScrollable: 'overflow-auto',\n layoutPaneBordered: 'border border-border/70',\n layoutPaneMuted: 'bg-muted/25',\n layoutPaneSoft: 'bg-background/95 shadow-sm',\n layoutPaneTransparent: 'bg-transparent shadow-none',\n layoutSplitRoot: 'grid min-h-0 min-w-0 overflow-hidden',\n layoutSplitHorizontal: 'grid-flow-col',\n layoutSplitVertical: 'grid-flow-row',\n layoutSplitPane: 'min-h-0 min-w-0 overflow-hidden',\n layoutSplitPrimary: '',\n layoutSplitSecondary: '',\n layoutResizeHandle:\n cn(\n 'group/resize relative z-10 flex shrink-0 items-center justify-center bg-transparent text-muted-foreground hover:bg-border/60 active:bg-border/70 focus-visible:bg-border/60 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30',\n motionInteractive,\n ),\n layoutResizeHandleHorizontal: 'w-2 cursor-col-resize',\n layoutResizeHandleVertical: 'h-2 cursor-row-resize',\n layoutResizeHandleDisabled: 'cursor-default opacity-60',\n layoutResizeHandleIndicator:\n 'rounded-full bg-muted-foreground/45 group-hover/resize:bg-primary/70',\n};\n\nconst densitySlots: Record<BaseDensity, Partial<BaseThemeSlots>> = {\n compact: {\n buttonBase: 'h-8 px-2.5 text-xs',\n buttonIconOnly: 'h-8 w-8 px-0',\n badgeBase: 'px-1.5 py-0 text-[11px]',\n panelHeader: 'p-3',\n panelBody: 'px-3 pb-3 text-xs',\n panelBodyStandalone: 'pt-3',\n panelFooter: 'px-3 py-2',\n stateRoot: 'min-h-36 px-4 py-7',\n stateIcon: 'mb-3 h-10 w-10',\n fieldRoot: 'gap-1.5',\n fieldLabel: 'text-xs',\n fieldDescription: 'text-xs leading-5',\n fieldMessage: 'text-xs leading-5',\n controlInput: 'h-8 text-xs',\n controlTextarea: 'min-h-20 text-xs',\n controlSelect: 'h-8 text-xs',\n selectMenu: 'text-xs',\n selectOption: 'min-h-7 px-2 py-1 text-xs',\n switchTrack: 'h-5 w-9',\n switchThumb: 'h-3.5 w-3.5',\n checkboxBox: 'h-3.5 w-3.5',\n checkboxLabel: 'text-xs',\n checkboxDescription: 'text-xs leading-5',\n radioOption: 'px-2 py-1.5 text-xs',\n radioMarker: 'h-3.5 w-3.5',\n radioIndicator: 'h-1.5 w-1.5',\n radioLabel: 'text-xs',\n radioDescription: 'text-xs leading-5',\n dialogPanel: 'max-w-md',\n dialogHeader: 'px-4 py-3',\n dialogTitle: 'text-sm leading-5',\n dialogDescription: 'text-xs leading-5',\n dialogBody: 'px-4 py-3 text-xs',\n dialogFooter: 'px-4 py-3',\n dropdownMenu: 'min-w-44 text-xs',\n dropdownItem: 'px-2 py-1.5 text-xs',\n tooltipContent: 'text-[11px] leading-4',\n noticeBase: 'px-3 py-2 text-xs',\n dividerLabel: 'text-[11px]',\n sectionHeaderRoot: 'gap-2',\n sectionHeaderTitle: 'text-sm leading-5',\n sectionHeaderDescription: 'text-xs leading-5',\n tabsList: 'gap-0.5 p-0.5',\n tabsTrigger: 'px-2 py-1 text-xs',\n tabsPanel: 'p-3 text-xs',\n segmentedRoot: 'gap-0.5 p-0.5',\n segmentedItem: 'px-2 py-1 text-xs',\n progressTrack: 'h-1.5',\n avatarRoot: 'text-xs',\n toolbarRoot: 'gap-2 px-3 py-2',\n toolbarTitle: 'text-xs',\n toolbarDescription: 'text-xs leading-5',\n paginationButton: 'h-7 min-w-7 px-2 text-xs',\n paginationPage: 'h-7 min-w-7 px-2 text-xs',\n descriptionListRoot: 'gap-2 text-xs',\n descriptionListItem: 'px-2 py-1.5',\n descriptionListTerm: 'text-[11px]',\n descriptionListValue: 'text-xs leading-5',\n accordionTrigger: 'px-3 py-2 text-xs',\n accordionPanel: 'px-3 py-2 text-xs leading-5',\n menuContent: 'min-w-40 p-0.5 text-xs',\n menuSubContent: 'min-w-36 p-0.5 text-xs',\n menuLabel: 'px-2 py-1 text-[11px]',\n menuItem: 'min-h-7 px-2 py-1 text-xs',\n menuSubTrigger: 'min-h-7 px-2 py-1 text-xs',\n menuItemShortcut: 'text-[11px]',\n tableHead: 'h-9 px-2 py-1.5 text-[11px]',\n tableCell: 'px-2 py-1.5 text-xs',\n tableHeadLabel: 'text-[11px]',\n tableHeadDescription: 'text-[10px] leading-3',\n tableLoadingCell: 'px-2 py-1.5',\n layoutRoot: 'gap-2 p-2',\n layoutBody: 'gap-2',\n layoutPane: 'rounded-md text-xs',\n layoutResizeHandleHorizontal: 'w-1.5',\n layoutResizeHandleVertical: 'h-1.5',\n },\n default: {\n buttonBase: 'h-9',\n },\n comfortable: {\n buttonBase: 'h-10 px-3.5',\n buttonIconOnly: 'h-10 w-10 px-0',\n badgeBase: 'px-2.5 py-1',\n panelHeader: 'p-5',\n panelBody: 'px-5 pb-5',\n panelBodyStandalone: 'pt-5',\n panelFooter: 'px-5 py-3.5',\n stateRoot: 'min-h-56 px-8 py-12',\n stateIcon: 'mb-5 h-14 w-14',\n fieldRoot: 'gap-2.5',\n controlInput: 'h-10',\n controlTextarea: 'min-h-28',\n controlSelect: 'h-10',\n selectMenu: 'p-1.5',\n selectOption: 'min-h-9 px-3 py-2',\n switchTrack: 'h-7 w-12',\n switchThumb: 'h-5 w-5',\n checkboxBox: 'h-5 w-5',\n radioOption: 'px-4 py-3',\n radioMarker: 'h-5 w-5',\n radioIndicator: 'h-2.5 w-2.5',\n dialogPanel: 'max-w-xl',\n dialogHeader: 'px-6 py-5',\n dialogBody: 'px-6 py-5',\n dialogFooter: 'px-6 py-5',\n dropdownMenu: 'min-w-56',\n dropdownItem: 'px-3 py-2.5',\n noticeBase: 'px-5 py-4',\n sectionHeaderTitle: 'text-lg leading-7',\n tabsTrigger: 'px-3.5 py-2',\n tabsPanel: 'p-5',\n segmentedItem: 'px-3.5 py-2',\n progressTrack: 'h-2.5',\n toolbarRoot: 'px-5 py-4',\n paginationButton: 'h-9 min-w-9 px-3',\n paginationPage: 'h-9 min-w-9 px-3',\n descriptionListItem: 'px-4 py-3',\n accordionTrigger: 'px-5 py-4',\n accordionPanel: 'px-5 py-4',\n menuContent: 'min-w-48 p-1.5',\n menuSubContent: 'min-w-44 p-1.5',\n menuItem: 'min-h-9 px-3 py-2',\n menuSubTrigger: 'min-h-9 px-3 py-2',\n tableHead: 'h-12 px-4 py-3',\n tableCell: 'px-4 py-3',\n tableLoadingCell: 'px-4 py-3',\n layoutRoot: 'gap-4 p-4',\n layoutBody: 'gap-4',\n layoutPane: 'rounded-xl',\n layoutResizeHandleHorizontal: 'w-2.5',\n layoutResizeHandleVertical: 'h-2.5',\n },\n};\n\nconst radiusSlots: Record<BaseRadius, Partial<BaseThemeSlots>> = {\n none: {\n buttonBase: 'rounded-none',\n badgeBase: 'rounded-none',\n panelRoot: 'rounded-none',\n stateRoot: 'rounded-none',\n stateIcon: 'rounded-none',\n controlWrapper: 'rounded-none',\n selectMenu: 'rounded-none',\n selectOption: 'rounded-none',\n switchTrack: 'rounded-none',\n switchThumb: 'rounded-none',\n checkboxBox: 'rounded-none',\n radioOption: 'rounded-none',\n dialogPanel: 'rounded-none',\n dialogClose: 'rounded-none',\n dropdownMenu: 'rounded-none',\n dropdownItem: 'rounded-none',\n tooltipContent: 'rounded-none',\n noticeBase: 'rounded-none',\n tabsList: 'rounded-none',\n tabsTrigger: 'rounded-none',\n tabsPanel: 'rounded-none',\n segmentedRoot: 'rounded-none',\n segmentedItem: 'rounded-none',\n progressTrack: 'rounded-none',\n progressIndicator: 'rounded-none',\n skeletonRoot: 'rounded-none',\n avatarRoot: 'rounded-none',\n avatarStatus: 'rounded-none',\n toolbarRoot: 'rounded-none',\n paginationButton: 'rounded-none',\n paginationPage: 'rounded-none',\n descriptionListItem: 'rounded-none',\n accordionItem: 'rounded-none',\n menuContent: 'rounded-none',\n menuItem: 'rounded-none',\n menuSubTrigger: 'rounded-none',\n menuSubContent: 'rounded-none',\n tableContainer: 'rounded-none',\n tableEmptyIcon: 'rounded-none',\n tableLoadingSkeleton: 'rounded-none',\n layoutRoot: 'rounded-none',\n layoutPane: 'rounded-none',\n },\n sm: {\n buttonBase: 'rounded-sm',\n badgeBase: 'rounded-sm',\n panelRoot: 'rounded-sm',\n stateRoot: 'rounded-sm',\n stateIcon: 'rounded-sm',\n controlWrapper: 'rounded-sm',\n selectMenu: 'rounded-sm',\n selectOption: 'rounded-sm',\n switchTrack: 'rounded-sm',\n switchThumb: 'rounded-sm',\n checkboxBox: 'rounded-sm',\n radioOption: 'rounded-sm',\n dialogPanel: 'rounded-sm',\n dialogClose: 'rounded-sm',\n dropdownMenu: 'rounded-sm',\n dropdownItem: 'rounded-sm',\n tooltipContent: 'rounded-sm',\n noticeBase: 'rounded-sm',\n tabsList: 'rounded-sm',\n tabsTrigger: 'rounded-sm',\n tabsPanel: 'rounded-sm',\n segmentedRoot: 'rounded-sm',\n segmentedItem: 'rounded-sm',\n progressTrack: 'rounded-sm',\n progressIndicator: 'rounded-sm',\n skeletonRoot: 'rounded-sm',\n avatarRoot: 'rounded-sm',\n avatarStatus: 'rounded-sm',\n toolbarRoot: 'rounded-sm',\n paginationButton: 'rounded-sm',\n paginationPage: 'rounded-sm',\n descriptionListItem: 'rounded-sm',\n accordionItem: 'rounded-sm',\n menuContent: 'rounded-sm',\n menuItem: 'rounded-sm',\n menuSubTrigger: 'rounded-sm',\n menuSubContent: 'rounded-sm',\n tableContainer: 'rounded-sm',\n tableEmptyIcon: 'rounded-sm',\n tableLoadingSkeleton: 'rounded-sm',\n layoutRoot: 'rounded-sm',\n layoutPane: 'rounded-sm',\n },\n md: {},\n lg: {\n buttonBase: 'rounded-lg',\n badgeBase: 'rounded-lg',\n panelRoot: 'rounded-xl',\n stateRoot: 'rounded-xl',\n stateIcon: 'rounded-xl',\n controlWrapper: 'rounded-lg',\n selectMenu: 'rounded-lg',\n selectOption: 'rounded-md',\n switchTrack: 'rounded-full',\n switchThumb: 'rounded-full',\n checkboxBox: 'rounded-md',\n radioOption: 'rounded-xl',\n dialogPanel: 'rounded-xl',\n dialogClose: 'rounded-lg',\n dropdownMenu: 'rounded-lg',\n dropdownItem: 'rounded-md',\n tooltipContent: 'rounded-md',\n noticeBase: 'rounded-xl',\n tabsList: 'rounded-xl',\n tabsTrigger: 'rounded-lg',\n tabsPanel: 'rounded-xl',\n segmentedRoot: 'rounded-xl',\n segmentedItem: 'rounded-lg',\n skeletonRoot: 'rounded-lg',\n toolbarRoot: 'rounded-xl',\n descriptionListItem: 'rounded-lg',\n accordionItem: 'rounded-xl',\n menuContent: 'rounded-lg',\n menuItem: 'rounded-md',\n menuSubTrigger: 'rounded-md',\n menuSubContent: 'rounded-lg',\n tableContainer: 'rounded-xl',\n tableEmptyIcon: 'rounded-xl',\n tableLoadingSkeleton: 'rounded-lg',\n layoutRoot: 'rounded-xl',\n layoutPane: 'rounded-xl',\n },\n xl: {\n buttonBase: 'rounded-xl',\n badgeBase: 'rounded-xl',\n panelRoot: 'rounded-2xl',\n stateRoot: 'rounded-2xl',\n stateIcon: 'rounded-2xl',\n controlWrapper: 'rounded-xl',\n selectMenu: 'rounded-xl',\n selectOption: 'rounded-lg',\n switchTrack: 'rounded-full',\n switchThumb: 'rounded-full',\n checkboxBox: 'rounded-lg',\n radioOption: 'rounded-2xl',\n dialogPanel: 'rounded-2xl',\n dialogClose: 'rounded-xl',\n dropdownMenu: 'rounded-xl',\n dropdownItem: 'rounded-lg',\n tooltipContent: 'rounded-lg',\n noticeBase: 'rounded-2xl',\n tabsList: 'rounded-2xl',\n tabsTrigger: 'rounded-xl',\n tabsPanel: 'rounded-2xl',\n segmentedRoot: 'rounded-2xl',\n segmentedItem: 'rounded-xl',\n skeletonRoot: 'rounded-xl',\n toolbarRoot: 'rounded-2xl',\n paginationButton: 'rounded-xl',\n paginationPage: 'rounded-xl',\n descriptionListItem: 'rounded-xl',\n accordionItem: 'rounded-2xl',\n menuContent: 'rounded-xl',\n menuItem: 'rounded-lg',\n menuSubTrigger: 'rounded-lg',\n menuSubContent: 'rounded-xl',\n tableContainer: 'rounded-2xl',\n tableEmptyIcon: 'rounded-2xl',\n tableLoadingSkeleton: 'rounded-xl',\n layoutRoot: 'rounded-2xl',\n layoutPane: 'rounded-2xl',\n },\n full: {\n buttonBase: 'rounded-full',\n badgeBase: 'rounded-full',\n panelRoot: 'rounded-2xl',\n stateRoot: 'rounded-2xl',\n stateIcon: 'rounded-full',\n controlWrapper: 'rounded-full',\n selectMenu: 'rounded-2xl',\n selectOption: 'rounded-full',\n switchTrack: 'rounded-full',\n switchThumb: 'rounded-full',\n checkboxBox: 'rounded-full',\n radioOption: 'rounded-2xl',\n dialogPanel: 'rounded-2xl',\n dialogClose: 'rounded-full',\n dropdownMenu: 'rounded-2xl',\n dropdownItem: 'rounded-full',\n tooltipContent: 'rounded-full',\n noticeBase: 'rounded-2xl',\n tabsList: 'rounded-full',\n tabsTrigger: 'rounded-full',\n tabsPanel: 'rounded-2xl',\n segmentedRoot: 'rounded-full',\n segmentedItem: 'rounded-full',\n progressTrack: 'rounded-full',\n progressIndicator: 'rounded-full',\n skeletonRoot: 'rounded-full',\n avatarRoot: 'rounded-full',\n avatarStatus: 'rounded-full',\n toolbarRoot: 'rounded-2xl',\n paginationButton: 'rounded-full',\n paginationPage: 'rounded-full',\n descriptionListItem: 'rounded-2xl',\n accordionItem: 'rounded-2xl',\n menuContent: 'rounded-2xl',\n menuItem: 'rounded-full',\n menuSubTrigger: 'rounded-full',\n menuSubContent: 'rounded-2xl',\n tableContainer: 'rounded-2xl',\n tableEmptyIcon: 'rounded-full',\n tableLoadingSkeleton: 'rounded-full',\n layoutRoot: 'rounded-2xl',\n layoutPane: 'rounded-2xl',\n },\n};\n\nconst borderSlots: Record<BaseBorder, Partial<BaseThemeSlots>> = {\n none: {\n buttonBase: 'border-transparent',\n badgeBase: 'border-transparent',\n panelRoot: 'border-transparent',\n panelFooter: 'border-transparent',\n stateRoot: 'border-transparent',\n controlWrapper: 'border-transparent',\n selectMenu: 'border-transparent',\n switchTrack: 'border-transparent',\n checkboxBox: 'border-transparent',\n radioOption: 'border-transparent',\n radioMarker: 'border-transparent',\n dialogPanel: 'border-transparent',\n dialogHeader: 'border-transparent',\n dialogFooter: 'border-transparent',\n dropdownMenu: 'border-transparent',\n tooltipContent: 'border-transparent',\n noticeBase: 'border-transparent',\n dividerRoot: 'border-transparent',\n tabsList: 'border-transparent',\n tabsPanel: 'border-transparent',\n segmentedRoot: 'border-transparent',\n avatarRoot: 'border-transparent',\n toolbarRoot: 'border-transparent',\n paginationButton: 'border-transparent',\n descriptionListItem: 'border-transparent',\n accordionItem: 'border-transparent',\n accordionPanel: 'border-transparent',\n menuContent: 'border-transparent',\n menuSeparator: 'bg-transparent',\n menuSubContent: 'border-transparent',\n tableContainer: 'border-transparent',\n tableHeader: 'border-transparent',\n tableFooter: 'border-transparent',\n tableFooterBar: 'border-transparent',\n tableFooterBarAttached: 'border-t border-transparent',\n tableRow: 'border-transparent',\n tableEmptyRow: 'border-transparent',\n tableLoadingRow: 'border-transparent',\n layoutRoot: 'border-transparent',\n layoutPaneBordered: 'border-transparent',\n layoutResizeHandle: 'bg-transparent hover:bg-transparent active:bg-transparent focus-visible:bg-transparent',\n },\n subtle: {\n buttonDefault: 'border-border/60',\n badgeDefault: 'border-border/60',\n panelRoot: 'border-border/60',\n panelFooter: 'border-border/60',\n stateRoot: 'border-border/60',\n controlWrapper: 'border-border/60',\n selectMenu: 'border-border/60',\n switchTrack: 'border-border/60',\n checkboxBox: 'border-border/60',\n radioOption: 'border-border/60',\n radioMarker: 'border-border/60',\n dialogPanel: 'border-border/60',\n dialogHeader: 'border-border/60',\n dialogFooter: 'border-border/60',\n dropdownMenu: 'border-border/60',\n tooltipContent: 'border-border/60',\n noticeDefault: 'border-border/60',\n dividerRoot: 'border-border/60',\n tabsList: 'border-border/60',\n tabsPanel: 'border-border/60',\n segmentedRoot: 'border-border/60',\n avatarRoot: 'border-border/60',\n toolbarRoot: 'border-border/60',\n paginationButton: 'border-border/60',\n descriptionListItem: 'border-border/60',\n accordionItem: 'border-border/60',\n accordionPanel: 'border-border/60',\n menuContent: 'border-border/60',\n menuSeparator: 'bg-border/60',\n menuSubContent: 'border-border/60',\n tableContainer: 'border-border/60',\n tableHeader: 'border-border/60',\n tableFooter: 'border-border/60',\n tableFooterBar: 'border-border/60',\n tableFooterBarAttached: 'border-t border-border/60',\n tableRow: 'border-border/50',\n tableEmptyRow: 'border-border/50',\n tableLoadingRow: 'border-border/50',\n layoutRoot: 'border-border/60',\n layoutPaneBordered: 'border-border/60',\n },\n solid: {},\n strong: {\n buttonDefault: 'border-foreground/20',\n badgeDefault: 'border-foreground/20',\n panelRoot: 'border-foreground/20',\n panelFooter: 'border-foreground/20',\n stateRoot: 'border-foreground/20',\n controlWrapper: 'border-foreground/20',\n selectMenu: 'border-foreground/20',\n switchTrack: 'border-foreground/20',\n checkboxBox: 'border-foreground/20',\n radioOption: 'border-foreground/20',\n radioMarker: 'border-foreground/20',\n dialogPanel: 'border-foreground/20',\n dialogHeader: 'border-foreground/15',\n dialogFooter: 'border-foreground/15',\n dropdownMenu: 'border-foreground/20',\n tooltipContent: 'border-foreground/20',\n noticeDefault: 'border-foreground/20',\n dividerRoot: 'border-foreground/20',\n tabsList: 'border-foreground/20',\n tabsPanel: 'border-foreground/20',\n segmentedRoot: 'border-foreground/20',\n avatarRoot: 'border-foreground/20',\n toolbarRoot: 'border-foreground/20',\n paginationButton: 'border-foreground/20',\n descriptionListItem: 'border-foreground/20',\n accordionItem: 'border-foreground/20',\n accordionPanel: 'border-foreground/20',\n menuContent: 'border-foreground/20',\n menuSeparator: 'bg-foreground/15',\n menuSubContent: 'border-foreground/20',\n tableContainer: 'border-foreground/20',\n tableHeader: 'border-foreground/20',\n tableFooter: 'border-foreground/20',\n tableFooterBar: 'border-foreground/20',\n tableFooterBarAttached: 'border-t border-foreground/20',\n tableRow: 'border-foreground/15',\n tableEmptyRow: 'border-foreground/15',\n tableLoadingRow: 'border-foreground/15',\n layoutRoot: 'border-foreground/20',\n layoutPaneBordered: 'border-foreground/20',\n layoutResizeHandle: 'hover:bg-foreground/15 active:bg-foreground/20 focus-visible:bg-foreground/15',\n },\n};\n\nconst backgroundSlots: Record<BaseBackground, Partial<BaseThemeSlots>> = {\n plain: {},\n muted: {\n buttonDefault: 'bg-muted/20 hover:bg-muted/45',\n panelRoot: 'bg-card',\n panelFooter: 'bg-muted/20',\n stateRoot: 'bg-muted/20',\n controlWrapper: 'bg-background',\n selectMenu: 'bg-background',\n selectOptionActive: 'bg-muted/70 text-foreground',\n checkboxBox: 'bg-background',\n radioOption: 'bg-card hover:bg-muted/45',\n radioMarker: 'bg-background',\n dialogPanel: 'bg-card',\n dropdownMenu: 'bg-background',\n dropdownItem: 'hover:bg-muted/60',\n tooltipContent: 'bg-popover',\n noticeDefault: 'bg-muted/20',\n tabsList: 'bg-muted/35',\n tabsTriggerActive: 'bg-background',\n tabsPanel: 'bg-card',\n segmentedRoot: 'bg-muted/35',\n segmentedItemActive: 'bg-background',\n progressTrack: 'bg-muted/60',\n skeletonRoot: 'bg-muted',\n toolbarRoot: 'bg-card',\n paginationButton: 'bg-background hover:bg-muted/60',\n paginationPage: 'bg-muted/60',\n descriptionListItem: 'bg-card',\n accordionItem: 'bg-card',\n menuContent: 'bg-background',\n menuItem: 'focus:bg-muted/70 data-[highlighted]:bg-muted/70',\n menuSubTrigger:\n 'focus:bg-muted/70 data-[highlighted]:bg-muted/70 data-[state=open]:bg-muted/70',\n menuSubContent: 'bg-background',\n tableContainer: 'bg-card',\n tableHeader: 'bg-muted/45',\n tableFooter: 'bg-muted/35',\n tableFooterBar: 'bg-muted/30 shadow-none',\n tableRowInteractive: 'cursor-pointer hover:bg-muted/45',\n tableLoadingSkeleton: 'bg-muted',\n layoutRoot: 'bg-card',\n layoutPane: 'bg-card',\n layoutPaneMuted: 'bg-muted/35',\n layoutResizeHandle: 'hover:bg-border/70 active:bg-border/80 focus-visible:bg-border/70',\n },\n soft: {\n buttonDefault: 'bg-muted/30 hover:bg-muted/55',\n panelRoot: 'bg-background/95 shadow-sm',\n stateRoot: 'bg-background/95 shadow-sm',\n controlWrapper: 'bg-background/95',\n selectMenu: 'bg-background/95 shadow-xl',\n selectOptionActive: 'bg-muted/60 text-foreground',\n checkboxBox: 'bg-background/95',\n radioOption: 'bg-background/95 shadow-sm hover:bg-muted/35',\n radioMarker: 'bg-background/95',\n dialogPanel: 'bg-background/95 shadow-xl',\n dropdownMenu: 'bg-background/95 shadow-xl',\n dropdownItem: 'hover:bg-muted/55',\n tooltipContent: 'bg-popover shadow-xl',\n noticeDefault: 'bg-background/95 shadow-sm',\n tabsList: 'bg-background/60 shadow-sm',\n tabsTriggerActive: 'bg-background',\n tabsPanel: 'bg-background/95 shadow-sm',\n segmentedRoot: 'bg-background/60 shadow-sm',\n segmentedItemActive: 'bg-background',\n skeletonRoot: 'bg-background/80',\n toolbarRoot: 'bg-background/95 shadow-sm',\n paginationButton: 'bg-background/95 hover:bg-muted/55',\n descriptionListItem: 'bg-background/95 shadow-sm',\n accordionItem: 'bg-background/95 shadow-sm',\n menuContent: 'bg-background/95 shadow-xl',\n menuItem: 'focus:bg-muted/60 data-[highlighted]:bg-muted/60',\n menuSubTrigger:\n 'focus:bg-muted/60 data-[highlighted]:bg-muted/60 data-[state=open]:bg-muted/60',\n menuSubContent: 'bg-background/95 shadow-xl',\n tableContainer: 'bg-background/95 shadow-sm',\n tableHeader: 'bg-muted/35',\n tableFooter: 'bg-muted/25',\n tableFooterBar: 'bg-muted/25 shadow-none',\n tableRowInteractive: 'cursor-pointer hover:bg-muted/35',\n tableLoadingSkeleton: 'bg-muted/65',\n layoutRoot: 'bg-background/95 shadow-sm',\n layoutPane: 'bg-background/95 shadow-sm',\n layoutPaneSoft: 'bg-background/95 shadow-md',\n },\n glass: {\n buttonBase: 'backdrop-blur-md',\n buttonDefault:\n 'border-white/10 bg-white/[0.08] text-foreground hover:bg-white/[0.14]',\n badgeDefault: 'border-white/10 bg-white/[0.08] text-foreground',\n panelRoot: 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n panelFooter: 'border-white/10 bg-white/[0.05]',\n stateRoot: 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n stateIcon: 'bg-white/10 text-foreground',\n controlWrapper:\n 'border-white/10 bg-white/[0.08] text-foreground backdrop-blur-md',\n selectMenu:\n 'border-white/10 bg-white/[0.10] text-foreground shadow-[0_18px_60px_rgba(15,23,42,0.18)] backdrop-blur-md',\n selectOption: 'text-foreground',\n selectOptionActive: 'bg-white/[0.14] text-foreground',\n selectOptionSelected: 'bg-white/[0.18] text-foreground',\n switchTrack: 'border-white/10 bg-white/[0.12] backdrop-blur-md',\n checkboxBox: 'border-white/10 bg-white/[0.08] backdrop-blur-md',\n checkboxBoxChecked: 'border-white/20 bg-white/[0.22] text-foreground',\n radioOption: 'border-white/10 bg-white/[0.06] backdrop-blur-md hover:bg-white/[0.10]',\n radioMarker: 'border-white/10 bg-white/[0.08] backdrop-blur-md',\n radioMarkerChecked: 'border-white/25 bg-white/[0.16]',\n dialogOverlay: 'bg-background/45 backdrop-blur-md',\n dialogPanel: 'border-white/10 bg-white/[0.08] shadow-2xl backdrop-blur-md',\n dialogHeader: 'border-white/10',\n dialogFooter: 'border-white/10',\n dropdownMenu:\n 'border-white/10 bg-white/[0.10] text-foreground shadow-[0_18px_60px_rgba(15,23,42,0.18)] backdrop-blur-md',\n dropdownItem: 'text-foreground hover:bg-white/[0.14]',\n tooltipContent:\n 'border-white/10 bg-white/[0.14] text-foreground shadow-[0_18px_60px_rgba(15,23,42,0.18)] backdrop-blur-md',\n noticeDefault:\n 'border-white/10 bg-white/[0.08] text-foreground backdrop-blur-md',\n dividerRoot: 'border-white/15',\n tabsList: 'border-white/10 bg-white/[0.08] backdrop-blur-md',\n tabsTrigger: 'text-muted-foreground hover:bg-white/[0.12] hover:text-foreground',\n tabsTriggerActive: 'bg-white/[0.16] text-foreground shadow-none',\n tabsPanel:\n 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n segmentedRoot: 'border-white/10 bg-white/[0.08] backdrop-blur-md',\n segmentedItem: 'text-muted-foreground hover:bg-white/[0.12] hover:text-foreground',\n segmentedItemActive: 'bg-white/[0.16] text-foreground shadow-none',\n progressTrack: 'bg-white/[0.12]',\n skeletonRoot: 'bg-white/[0.16]',\n avatarRoot: 'border-white/10 bg-white/[0.12] text-foreground',\n avatarFallback: 'bg-white/[0.12] text-foreground',\n avatarStatus: 'border-background',\n toolbarRoot:\n 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n paginationButton:\n 'border-white/10 bg-white/[0.08] text-foreground hover:bg-white/[0.14]',\n paginationPage: 'bg-white/[0.12] text-foreground',\n descriptionListItem:\n 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n accordionItem:\n 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n accordionPanel: 'border-white/10',\n menuContent:\n 'border-white/10 bg-white/[0.10] text-foreground shadow-[0_18px_60px_rgba(15,23,42,0.18)] backdrop-blur-md',\n menuSeparator: 'bg-white/10',\n menuItem:\n 'text-foreground focus:bg-white/[0.14] focus:text-foreground data-[highlighted]:bg-white/[0.14] data-[highlighted]:text-foreground',\n menuSubTrigger:\n 'text-foreground focus:bg-white/[0.14] focus:text-foreground data-[highlighted]:bg-white/[0.14] data-[highlighted]:text-foreground data-[state=open]:bg-white/[0.16]',\n menuSubContent:\n 'border-white/10 bg-white/[0.10] text-foreground shadow-[0_18px_60px_rgba(15,23,42,0.18)] backdrop-blur-md',\n tableContainer:\n 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n tableHeader: 'border-white/10 bg-white/[0.08]',\n tableFooter: 'border-white/10 bg-white/[0.05]',\n tableFooterBar:\n 'border-white/10 bg-white/[0.05] shadow-none backdrop-blur-md',\n tableFooterBarAttached: 'border-t border-white/10',\n tableRow: 'border-white/10',\n tableRowInteractive: 'cursor-pointer hover:bg-white/[0.08]',\n tableHeadLabel: 'text-foreground',\n tableLoadingSkeleton: 'bg-white/[0.16]',\n layoutRoot:\n 'border-white/10 bg-white/[0.05] shadow-none backdrop-blur-md',\n layoutPane:\n 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n layoutPaneMuted: 'bg-white/[0.08]',\n layoutPaneSoft: 'bg-white/[0.10] shadow-none backdrop-blur-md',\n layoutResizeHandle: 'text-foreground/65 hover:bg-white/10 active:bg-white/15 focus-visible:bg-white/10',\n layoutResizeHandleIndicator: 'bg-white/45 group-hover/resize:bg-white/75',\n },\n dark: {\n buttonBase:\n 'border-white/15 text-white shadow-lg backdrop-blur',\n buttonDefault: 'bg-black/30 hover:bg-black/[0.45]',\n buttonPrimary: 'border-white/25 bg-white/20 text-white hover:bg-white/25',\n buttonMuted:\n 'border-white/10 bg-black/20 text-white/70 hover:bg-black/[0.35] hover:text-white',\n badgeDefault: 'border-white/10 bg-white/[0.08] text-white',\n badgeMuted: 'border-white/10 bg-black/20 text-white/70',\n panelRoot: 'border-white/10 bg-slate-950 text-white shadow-none',\n panelTitle: 'text-white',\n panelDescription: 'text-white/65',\n panelBody: 'text-white/85',\n panelFooter: 'border-white/10 bg-white/[0.04]',\n stateRoot: 'border-white/10 bg-slate-950 text-white shadow-none',\n stateIcon: 'bg-white/10 text-white/75',\n stateTitle: 'text-white',\n stateDescription: 'text-white/65',\n fieldLabel: 'text-white',\n fieldDescription: 'text-white/65',\n fieldMessage: 'text-white/65',\n controlWrapper:\n 'border-white/15 bg-black/30 text-white shadow-lg backdrop-blur focus-within:border-white/35',\n controlBase: 'text-white placeholder:text-white/45',\n selectChevron: 'text-white/65',\n selectMenu: 'border-white/15 bg-slate-950 text-white shadow-2xl',\n selectOption: 'text-white',\n selectOptionActive: 'bg-white/[0.12] text-white',\n selectOptionSelected: 'bg-white/[0.16] text-white',\n selectPlaceholder: 'text-white/45',\n switchTrack: 'border-white/15 bg-black/30 shadow-lg backdrop-blur',\n switchChecked: 'border-white/25 bg-white/25 text-white',\n switchLabel: 'text-white',\n switchDescription: 'text-white/65',\n checkboxBox: 'border-white/15 bg-black/30 text-white shadow-lg backdrop-blur',\n checkboxBoxChecked: 'border-white/25 bg-white/25 text-white',\n checkboxLabel: 'text-white',\n checkboxDescription: 'text-white/65',\n radioOption: 'border-white/10 bg-white/[0.06] text-white hover:bg-white/[0.08]',\n radioMarker: 'border-white/15 bg-black/30 text-white shadow-lg backdrop-blur',\n radioMarkerChecked: 'border-white/25 bg-white/25',\n radioIndicator: 'bg-white',\n radioLabel: 'text-white',\n radioDescription: 'text-white/65',\n dialogOverlay: 'bg-slate-950/75',\n dialogPanel: 'border-white/10 bg-slate-950 text-white shadow-2xl',\n dialogHeader: 'border-white/10',\n dialogTitle: 'text-white',\n dialogDescription: 'text-white/65',\n dialogBody: 'text-white/85',\n dialogFooter: 'border-white/10',\n dialogClose: 'text-white/65 hover:bg-white/[0.08] hover:text-white',\n dropdownMenu: 'border-white/15 bg-slate-950 text-white shadow-2xl',\n dropdownLabel: 'text-white/55',\n dropdownSeparator: 'bg-white/15',\n dropdownItem: 'text-white hover:bg-white/[0.10]',\n dropdownItemDescription: 'text-white/55',\n dropdownItemShortcut: 'text-white/55',\n tooltipContent: 'border-white/15 bg-slate-950 text-white shadow-2xl',\n noticeDefault: 'border-white/10 bg-white/[0.08] text-white',\n noticeMuted: 'border-white/10 bg-black/20 text-white/70',\n dividerRoot: 'border-white/15',\n dividerLabel: 'text-white/55',\n sectionHeaderEyebrow: 'text-white/55',\n sectionHeaderTitle: 'text-white',\n sectionHeaderDescription: 'text-white/65',\n tabsList: 'border-white/10 bg-white/[0.08]',\n tabsTrigger: 'text-white/65 hover:bg-white/[0.12] hover:text-white',\n tabsTriggerActive: 'bg-white/[0.16] text-white shadow-none',\n tabsPanel: 'border-white/10 bg-white/[0.06] text-white',\n segmentedRoot: 'border-white/10 bg-white/[0.08]',\n segmentedItem: 'text-white/65 hover:bg-white/[0.12] hover:text-white',\n segmentedItemActive: 'bg-white/[0.16] text-white shadow-none',\n progressTrack: 'bg-white/[0.12]',\n progressLabel: 'text-white',\n progressValue: 'text-white/65',\n skeletonRoot: 'bg-white/[0.14]',\n avatarRoot: 'border-white/15 bg-white/[0.10] text-white',\n avatarFallback: 'bg-white/[0.10] text-white/75',\n avatarText: 'text-white',\n avatarStatus: 'border-slate-950',\n toolbarRoot: 'border-white/10 bg-white/[0.06] text-white',\n toolbarTitle: 'text-white',\n toolbarDescription: 'text-white/65',\n breadcrumbLink: 'text-white/65 hover:text-white',\n breadcrumbCurrent: 'text-white',\n breadcrumbSeparator: 'text-white/45',\n paginationInfo: 'text-white/65',\n paginationButton: 'border-white/10 bg-white/[0.08] text-white hover:bg-white/[0.14]',\n paginationPage: 'bg-white/[0.14] text-white',\n descriptionListItem: 'border-white/10 bg-white/[0.06]',\n descriptionListTerm: 'text-white/55',\n descriptionListValue: 'text-white',\n accordionItem: 'border-white/10 bg-white/[0.06]',\n accordionTrigger: 'text-white hover:bg-white/[0.08]',\n accordionPanel: 'border-white/10 text-white/70',\n tableContainer: 'border-white/10 bg-slate-950 text-white shadow-none',\n tableRoot: 'text-white',\n tableHeader: 'border-white/10 bg-white/[0.06]',\n tableFooter: 'border-white/10 bg-white/[0.05]',\n tableFooterBar: 'border-white/10 bg-white/[0.05] text-white/65',\n tableFooterBarAttached: 'border-t border-white/10',\n tableRow: 'border-white/10',\n tableRowInteractive: 'cursor-pointer hover:bg-white/[0.06]',\n tableHead: 'text-white/65',\n tableHeadLabel: 'text-white',\n tableHeadDescription: 'text-white/55',\n tableHeadMeta: 'text-white/55',\n tableHeadIcon: 'text-white/55',\n tableHeadSortIcon: 'text-white/55',\n tableHeadDragHandle: 'text-white/55 hover:bg-white/[0.08]',\n tableHeadResizeHandle: 'after:bg-white/20 hover:after:bg-white/60',\n tableCell: 'text-white/85',\n tableEmptyIcon: 'bg-white/10 text-white/65',\n tableEmptyTitle: 'text-white',\n tableEmptyDescription: 'text-white/60',\n menuContent: 'border-white/10 bg-slate-950 text-white shadow-2xl',\n menuLabel: 'text-white/55',\n menuSeparator: 'bg-white/10',\n menuItem:\n 'text-white focus:bg-white/[0.10] focus:text-white data-[highlighted]:bg-white/[0.10] data-[highlighted]:text-white',\n menuItemDefault: 'text-white',\n menuItemPrimary: 'text-sky-200 focus:text-sky-200 data-[highlighted]:text-sky-200',\n menuItemSuccess:\n 'text-emerald-200 focus:text-emerald-200 data-[highlighted]:text-emerald-200',\n menuItemWarning:\n 'text-amber-200 focus:text-amber-200 data-[highlighted]:text-amber-200',\n menuItemDanger:\n 'text-red-200 focus:text-red-200 data-[highlighted]:text-red-200',\n menuItemMuted:\n 'text-white/65 focus:text-white data-[highlighted]:text-white',\n menuItemShortcut: 'text-white/45',\n menuSubTrigger:\n 'text-white focus:bg-white/[0.10] focus:text-white data-[highlighted]:bg-white/[0.10] data-[highlighted]:text-white data-[state=open]:bg-white/[0.12]',\n menuSubTriggerIcon: 'text-white/55',\n menuSubContent: 'border-white/10 bg-slate-950 text-white shadow-2xl',\n tableLoadingSkeleton: 'bg-white/[0.14]',\n layoutRoot: 'border-white/10 bg-slate-950 text-white shadow-none',\n layoutPane: 'border-white/10 bg-slate-950 text-white shadow-none',\n layoutPaneMuted: 'bg-white/[0.06]',\n layoutPaneSoft: 'bg-white/[0.08] shadow-none',\n layoutResizeHandle: 'text-white/65 hover:bg-white/10 active:bg-white/15 focus-visible:bg-white/10',\n layoutResizeHandleIndicator: 'bg-white/45 group-hover/resize:bg-white/75',\n },\n};\n\nconst presetDefaults: Record<\n 'default' | 'admin' | 'monkey' | 'bsd' | 'glass' | 'hard-edge',\n Pick<BaseAppearance, 'density' | 'radius' | 'border' | 'background'>\n> = {\n default: {\n density: 'default',\n radius: 'md',\n border: 'solid',\n background: 'plain',\n },\n admin: {\n density: 'default',\n radius: 'lg',\n border: 'subtle',\n background: 'soft',\n },\n monkey: {\n density: 'compact',\n radius: 'md',\n border: 'subtle',\n background: 'muted',\n },\n bsd: {\n density: 'default',\n radius: 'lg',\n border: 'subtle',\n background: 'glass',\n },\n glass: {\n density: 'default',\n radius: 'xl',\n border: 'subtle',\n background: 'glass',\n },\n 'hard-edge': {\n density: 'compact',\n radius: 'none',\n border: 'strong',\n background: 'plain',\n },\n};\n\nconst presetSlots: Record<string, Partial<BaseThemeSlots>> = {\n admin: {\n buttonBase: 'font-medium',\n panelRoot: 'border-border/70',\n controlWrapper: 'font-medium',\n tabsTrigger: 'font-medium',\n segmentedItem: 'font-medium',\n toolbarRoot: 'border-border/70',\n tableContainer: 'border-border/70',\n tableFooterBar: 'border-border/70',\n tableHeadLabel: 'font-semibold',\n menuItemLabel: 'font-medium',\n },\n monkey: {\n buttonBase: 'text-xs',\n badgeBase: 'text-[11px]',\n fieldLabel: 'text-xs',\n controlBase: 'text-xs',\n selectOption: 'text-xs',\n menuItem: 'text-xs',\n menuSubTrigger: 'text-xs',\n noticeBase: 'text-xs',\n sectionHeaderTitle: 'text-sm',\n tabsTrigger: 'text-xs',\n segmentedItem: 'text-xs',\n toolbarTitle: 'text-xs',\n paginationRoot: 'text-xs',\n },\n bsd: {\n buttonPrimary: 'border-sky-300/25 bg-sky-300/15 text-sky-50 hover:bg-sky-300/20',\n badgePrimary: 'border-sky-300/25 bg-sky-300/15 text-sky-50',\n noticePrimary: 'border-sky-300/25 bg-sky-300/15 text-sky-50',\n progressIndicator: 'bg-sky-300',\n avatarStatus: 'border-slate-950',\n },\n glass: {\n panelRoot: 'shadow-[0_24px_80px_rgba(15,23,42,0.12)]',\n stateRoot: 'shadow-[0_24px_80px_rgba(15,23,42,0.12)]',\n noticeBase: 'shadow-[0_18px_60px_rgba(15,23,42,0.10)]',\n tabsPanel: 'shadow-[0_18px_60px_rgba(15,23,42,0.10)]',\n toolbarRoot: 'shadow-[0_18px_60px_rgba(15,23,42,0.10)]',\n descriptionListItem: 'shadow-[0_12px_40px_rgba(15,23,42,0.08)]',\n accordionItem: 'shadow-[0_12px_40px_rgba(15,23,42,0.08)]',\n },\n 'hard-edge': {\n buttonBase: 'shadow-none',\n panelRoot: 'shadow-none',\n stateRoot: 'shadow-none',\n controlWrapper: 'shadow-none',\n selectMenu: 'shadow-none',\n menuContent: 'shadow-none',\n menuSubContent: 'shadow-none',\n noticeBase: 'shadow-none',\n tabsList: 'shadow-none',\n tabsTriggerActive: 'shadow-none',\n tabsPanel: 'shadow-none',\n segmentedRoot: 'shadow-none',\n segmentedItemActive: 'shadow-none',\n toolbarRoot: 'shadow-none',\n descriptionListItem: 'shadow-none',\n accordionItem: 'shadow-none',\n },\n};\n\nfunction getPresetDefaults(preset: BaseThemePresetId) {\n return (\n presetDefaults[preset as keyof typeof presetDefaults] ?? presetDefaults.default\n );\n}\n\nconst slotKeys = Object.keys(baseSlots) as Array<keyof BaseThemeSlots>;\n\nfunction mergeSlots(\n ...sources: Array<Partial<BaseThemeSlots> | undefined>\n): ResolvedSlots {\n return slotKeys.reduce((resolved, key) => {\n resolved[key] = cn(...sources.map((source) => source?.[key]));\n return resolved;\n }, {} as ResolvedSlots);\n}\n\nfunction mergeStyles(...styleSets: Array<BaseThemeStyles | undefined>) {\n return Object.assign({}, ...styleSets.filter(Boolean));\n}\n\nexport function resolveBaseAppearance(\n appearance?: BaseAppearance,\n): BaseResolvedTheme {\n const preset = appearance?.preset ?? 'default';\n const defaults = getPresetDefaults(preset);\n const density = appearance?.density ?? defaults.density ?? 'default';\n const radius = appearance?.radius ?? defaults.radius ?? 'md';\n const border = appearance?.border ?? defaults.border ?? 'solid';\n const background = appearance?.background ?? defaults.background ?? 'plain';\n\n return {\n preset,\n density,\n radius,\n border,\n background,\n styles: mergeStyles(emptyStyles, appearance?.styles),\n slots: mergeSlots(\n baseSlots,\n presetSlots[preset],\n densitySlots[density],\n radiusSlots[radius],\n borderSlots[border],\n backgroundSlots[background],\n appearance?.slots,\n ),\n };\n}\n\nexport function getBaseButtonToneClassName(\n theme: BaseResolvedTheme,\n tone: BaseControlTone = 'default',\n active = false,\n) {\n return cn(\n tone === 'default' && theme.slots.buttonDefault,\n tone === 'primary' && theme.slots.buttonPrimary,\n tone === 'success' && theme.slots.buttonSuccess,\n tone === 'warning' && theme.slots.buttonWarning,\n tone === 'danger' && theme.slots.buttonDanger,\n tone === 'muted' && theme.slots.buttonMuted,\n active && theme.slots.buttonActive,\n );\n}\n\nexport function getBaseBadgeToneClassName(\n theme: BaseResolvedTheme,\n tone: BaseControlTone = 'default',\n) {\n return cn(\n tone === 'default' && theme.slots.badgeDefault,\n tone === 'primary' && theme.slots.badgePrimary,\n tone === 'success' && theme.slots.badgeSuccess,\n tone === 'warning' && theme.slots.badgeWarning,\n tone === 'danger' && theme.slots.badgeDanger,\n tone === 'muted' && theme.slots.badgeMuted,\n );\n}\n\nexport function getBaseNoticeToneClassName(\n theme: BaseResolvedTheme,\n tone: BaseControlTone = 'default',\n) {\n return cn(\n tone === 'default' && theme.slots.noticeDefault,\n tone === 'primary' && theme.slots.noticePrimary,\n tone === 'success' && theme.slots.noticeSuccess,\n tone === 'warning' && theme.slots.noticeWarning,\n tone === 'danger' && theme.slots.noticeDanger,\n tone === 'muted' && theme.slots.noticeMuted,\n );\n}\n\nexport function getBaseMenuItemToneClassName(\n theme: BaseResolvedTheme,\n tone: BaseControlTone = 'default',\n) {\n return cn(\n tone === 'default' && theme.slots.menuItemDefault,\n tone === 'primary' && theme.slots.menuItemPrimary,\n tone === 'success' && theme.slots.menuItemSuccess,\n tone === 'warning' && theme.slots.menuItemWarning,\n tone === 'danger' && theme.slots.menuItemDanger,\n tone === 'muted' && theme.slots.menuItemMuted,\n );\n}\n","import type { BaseAvatarProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nconst sizeClassNames = {\n sm: 'h-7 w-7 text-xs',\n md: 'h-9 w-9 text-sm',\n lg: 'h-12 w-12 text-base',\n};\n\nconst statusClassNames = {\n online: 'bg-emerald-500',\n busy: 'bg-amber-500',\n offline: 'bg-muted-foreground',\n neutral: 'bg-muted-foreground',\n};\n\nfunction isStatusPreset(status: unknown): status is keyof typeof statusClassNames {\n return typeof status === 'string' && status in statusClassNames;\n}\n\nfunction getInitials(name?: string) {\n if (!name) return undefined;\n const words = name.trim().split(/\\s+/).filter(Boolean);\n if (!words.length) return undefined;\n return words\n .slice(0, 2)\n .map((word) => word[0]?.toUpperCase())\n .join('');\n}\n\nexport function BaseAvatar({\n src,\n alt,\n name,\n initials,\n icon,\n status,\n size = 'md',\n appearance,\n className,\n classNames,\n style,\n children,\n ...avatarProps\n}: BaseAvatarProps) {\n const theme = resolveBaseAppearance(appearance);\n const fallback = children ?? initials ?? getInitials(name) ?? icon;\n\n return (\n <div\n {...avatarProps}\n className={cn(\n theme.slots.avatarRoot,\n sizeClassNames[size],\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.avatar,\n ...style,\n }}\n title={name}\n >\n {src ? (\n <img\n src={src}\n alt={alt ?? name ?? ''}\n className={cn(theme.slots.avatarImage, classNames?.image)}\n />\n ) : (\n <span className={cn(theme.slots.avatarFallback, classNames?.fallback)}>\n {hasRenderableNode(fallback) ? fallback : '?'}\n </span>\n )}\n\n {isStatusPreset(status) ? (\n <span\n aria-hidden=\"true\"\n className={cn(\n theme.slots.avatarStatus,\n statusClassNames[status],\n classNames?.status,\n )}\n />\n ) : hasRenderableNode(status) ? (\n <span className={cn(theme.slots.avatarStatus, classNames?.status)}>\n {status}\n </span>\n ) : null}\n </div>\n );\n}\n","import { forwardRef } from 'react';\nimport type { MouseEvent } from 'react';\n\nimport type { BaseButtonProps } from './types';\nimport {\n getBaseButtonToneClassName,\n resolveBaseAppearance,\n} from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nfunction LoadingIcon() {\n return (\n <svg\n aria-hidden=\"true\"\n viewBox=\"0 0 24 24\"\n className=\"h-4 w-4 animate-spin\"\n fill=\"none\"\n >\n <circle\n cx=\"12\"\n cy=\"12\"\n r=\"9\"\n className=\"opacity-25\"\n stroke=\"currentColor\"\n strokeWidth=\"3\"\n />\n <path\n className=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M12 3a9 9 0 0 1 9 9h-3a6 6 0 0 0-6-6V3Z\"\n />\n </svg>\n );\n}\n\nexport const BaseButton = forwardRef<HTMLButtonElement, BaseButtonProps>(\n function BaseButton(\n {\n children,\n label,\n icon,\n endIcon,\n type = 'button',\n title,\n ariaLabel,\n tone,\n active = false,\n iconOnly = false,\n disabled = false,\n loading = false,\n stopPropagation = false,\n appearance,\n className,\n classNames,\n style,\n onClick,\n 'aria-label': nativeAriaLabel,\n ...buttonProps\n },\n ref,\n ) {\n const theme = resolveBaseAppearance(appearance);\n const resolvedLabel = children ?? label;\n const labelText = typeof resolvedLabel === 'string' ? resolvedLabel : undefined;\n const resolvedAriaLabel =\n ariaLabel ??\n nativeAriaLabel ??\n labelText ??\n title ??\n (iconOnly ? 'Action' : undefined);\n const resolvedDisabled = disabled || loading;\n\n const handleClick = (event: MouseEvent<HTMLButtonElement>) => {\n if (stopPropagation) {\n event.stopPropagation();\n }\n if (resolvedDisabled) return;\n onClick?.(event);\n };\n\n return (\n <button\n {...buttonProps}\n ref={ref}\n type={type}\n title={title}\n aria-label={resolvedAriaLabel}\n aria-pressed={active || undefined}\n aria-busy={loading || undefined}\n disabled={resolvedDisabled}\n className={cn(\n theme.slots.buttonBase,\n iconOnly && theme.slots.buttonIconOnly,\n getBaseButtonToneClassName(theme, tone, active),\n resolvedDisabled && theme.slots.buttonDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.button,\n ...(active ? theme.styles.buttonActive : undefined),\n ...(resolvedDisabled ? theme.styles.buttonDisabled : undefined),\n ...style,\n }}\n onClick={handleClick}\n >\n {loading ? (\n <span className={cn(theme.slots.buttonIcon, classNames?.icon)}>\n <LoadingIcon />\n </span>\n ) : icon ? (\n <span className={cn(theme.slots.buttonIcon, classNames?.icon)}>\n {icon}\n </span>\n ) : null}\n {iconOnly ? (\n hasRenderableNode(resolvedLabel) ? (\n <span className=\"sr-only\">{resolvedLabel}</span>\n ) : null\n ) : hasRenderableNode(resolvedLabel) ? (\n <span className={cn(theme.slots.buttonLabel, classNames?.label)}>\n {resolvedLabel}\n </span>\n ) : null}\n {!loading && endIcon ? (\n <span className={cn(theme.slots.buttonIcon, classNames?.icon)}>\n {endIcon}\n </span>\n ) : null}\n </button>\n );\n },\n);\n","import {\n forwardRef,\n useEffect,\n useRef,\n useState,\n type ChangeEvent,\n type Ref,\n} from 'react';\n\nimport type { BaseCheckboxProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nfunction setRefs<TElement>(\n element: TElement | null,\n ...refs: Array<Ref<TElement> | undefined>\n) {\n refs.forEach((ref) => {\n if (!ref) return;\n if (typeof ref === 'function') {\n ref(element);\n return;\n }\n (ref as { current: TElement | null }).current = element;\n });\n}\n\nexport const BaseCheckbox = forwardRef<HTMLInputElement, BaseCheckboxProps>(\n function BaseCheckbox(\n {\n label,\n description,\n indeterminate = false,\n invalid = false,\n disabled = false,\n appearance,\n className,\n classNames,\n style,\n checked,\n defaultChecked,\n onChange,\n 'aria-invalid': nativeAriaInvalid,\n ...checkboxProps\n },\n forwardedRef,\n ) {\n const theme = resolveBaseAppearance(appearance);\n const inputRef = useRef<HTMLInputElement | null>(null);\n const [uncontrolledChecked, setUncontrolledChecked] = useState(\n defaultChecked ?? false,\n );\n const isControlled = checked !== undefined;\n const resolvedChecked = Boolean(isControlled ? checked : uncontrolledChecked);\n const active = indeterminate || resolvedChecked;\n\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.indeterminate = indeterminate;\n }\n }, [indeterminate]);\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n if (disabled) return;\n if (!isControlled) {\n setUncontrolledChecked(event.currentTarget.checked);\n }\n onChange?.(event);\n };\n\n return (\n <label\n className={cn(\n theme.slots.checkboxRoot,\n disabled && theme.slots.checkboxDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.checkboxRoot,\n ...style,\n }}\n >\n <span\n className={cn(\n theme.slots.checkboxBox,\n active && theme.slots.checkboxBoxChecked,\n invalid && theme.slots.checkboxBoxInvalid,\n classNames?.box,\n )}\n style={{\n ...theme.styles.checkboxBox,\n }}\n >\n <input\n {...checkboxProps}\n ref={(element) => setRefs(element, inputRef, forwardedRef)}\n type=\"checkbox\"\n disabled={disabled}\n checked={checked}\n defaultChecked={defaultChecked}\n aria-invalid={nativeAriaInvalid ?? (invalid || undefined)}\n aria-checked={indeterminate ? 'mixed' : resolvedChecked}\n className={cn(theme.slots.checkboxInput, classNames?.input)}\n onChange={handleChange}\n />\n {active ? (\n <span\n aria-hidden=\"true\"\n className={cn(theme.slots.checkboxIndicator, classNames?.indicator)}\n >\n {indeterminate ? '–' : '✓'}\n </span>\n ) : null}\n </span>\n {hasRenderableNode(label) || hasRenderableNode(description) ? (\n <span className={cn(theme.slots.checkboxContent, classNames?.content)}>\n {hasRenderableNode(label) ? (\n <span className={cn(theme.slots.checkboxLabel, classNames?.label)}>\n {label}\n </span>\n ) : null}\n {hasRenderableNode(description) ? (\n <span\n className={cn(\n theme.slots.checkboxDescription,\n classNames?.description,\n )}\n >\n {description}\n </span>\n ) : null}\n </span>\n ) : null}\n </label>\n );\n },\n);\n","import { forwardRef } from 'react';\n\nimport type { BaseInputProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nexport const BaseInput = forwardRef<HTMLInputElement, BaseInputProps>(\n function BaseInput(\n {\n icon,\n trailing,\n invalid = false,\n disabled = false,\n readOnly = false,\n appearance,\n className,\n classNames,\n style,\n 'aria-invalid': nativeAriaInvalid,\n ...inputProps\n },\n ref,\n ) {\n const theme = resolveBaseAppearance(appearance);\n\n return (\n <div\n className={cn(\n theme.slots.controlWrapper,\n invalid && theme.slots.controlInvalid,\n disabled && theme.slots.controlDisabled,\n readOnly && theme.slots.controlReadOnly,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.control,\n ...(invalid ? theme.styles.controlInvalid : undefined),\n ...(disabled ? theme.styles.controlDisabled : undefined),\n ...style,\n }}\n >\n {hasRenderableNode(icon) ? (\n <span className={cn(theme.slots.controlIcon, classNames?.icon)}>\n {icon}\n </span>\n ) : null}\n <input\n {...inputProps}\n ref={ref}\n disabled={disabled}\n readOnly={readOnly}\n aria-invalid={nativeAriaInvalid ?? (invalid || undefined)}\n className={cn(\n theme.slots.controlBase,\n theme.slots.controlInput,\n classNames?.control,\n )}\n />\n {hasRenderableNode(trailing) ? (\n <span className={cn(theme.slots.controlTrailing, classNames?.trailing)}>\n {trailing}\n </span>\n ) : null}\n </div>\n );\n },\n);\n","import {\n forwardRef,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport type { KeyboardEvent } from 'react';\n\nimport type { BaseMultiSelectOption, BaseMultiSelectProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nfunction normalizeValues(values: readonly string[] | undefined) {\n const nextValues: string[] = [];\n const seen = new Set<string>();\n\n values?.forEach((value) => {\n if (seen.has(value)) return;\n seen.add(value);\n nextValues.push(value);\n });\n\n return nextValues;\n}\n\nfunction getNextEnabledIndex(\n options: BaseMultiSelectOption[],\n currentIndex: number,\n direction: 1 | -1,\n) {\n if (!options.length) return -1;\n\n const startIndex = currentIndex >= 0 ? currentIndex : 0;\n for (let offset = 1; offset <= options.length; offset += 1) {\n const nextIndex =\n (startIndex + offset * direction + options.length) % options.length;\n if (!options[nextIndex]?.disabled) {\n return nextIndex;\n }\n }\n\n return -1;\n}\n\nfunction getFirstEnabledIndex(options: BaseMultiSelectOption[]) {\n return options.findIndex((option) => !option.disabled);\n}\n\nfunction getSafeTagCount(maxTagCount: number | undefined, total: number) {\n if (maxTagCount === undefined) return total;\n if (!Number.isFinite(maxTagCount)) return total;\n return Math.max(0, Math.min(total, Math.floor(maxTagCount)));\n}\n\nfunction getDefaultRemoveLabel(option: BaseMultiSelectOption) {\n return `Remove ${option.value}`;\n}\n\nexport const BaseMultiSelect = forwardRef<HTMLDivElement, BaseMultiSelectProps>(\n function BaseMultiSelect(\n {\n options,\n value,\n defaultValue,\n name,\n placeholder = 'Select options',\n icon,\n invalid = false,\n disabled = false,\n required = false,\n openForPreview = false,\n maxTagCount,\n removeLabel = getDefaultRemoveLabel,\n emptyLabel = 'No options',\n appearance,\n className,\n classNames,\n style,\n id,\n 'aria-invalid': nativeAriaInvalid,\n 'aria-label': nativeAriaLabel,\n 'aria-labelledby': nativeAriaLabelledBy,\n onValueChange,\n ...rootProps\n },\n ref,\n ) {\n const theme = resolveBaseAppearance(appearance);\n const generatedId = useId();\n const multiSelectId = id ?? generatedId;\n const controlId = `${multiSelectId}-control`;\n const listboxId = `${multiSelectId}-listbox`;\n const rootRef = useRef<HTMLDivElement | null>(null);\n const optionList = options ?? [];\n const forceOpen = openForPreview;\n const [uncontrolledOpen, setUncontrolledOpen] = useState(false);\n const open = forceOpen || uncontrolledOpen;\n const [uncontrolledValue, setUncontrolledValue] = useState(() =>\n normalizeValues(defaultValue),\n );\n const [activeIndex, setActiveIndex] = useState(() =>\n getFirstEnabledIndex(optionList),\n );\n const isControlled = value !== undefined;\n const selectedValues = useMemo(\n () => normalizeValues(isControlled ? value : uncontrolledValue),\n [isControlled, uncontrolledValue, value],\n );\n const selectedValueSet = useMemo(\n () => new Set(selectedValues),\n [selectedValues],\n );\n const optionByValue = useMemo(() => {\n const map = new Map<string, BaseMultiSelectOption>();\n optionList.forEach((option) => {\n if (!map.has(option.value)) {\n map.set(option.value, option);\n }\n });\n return map;\n }, [optionList]);\n const selectedOptions = useMemo(\n () =>\n selectedValues\n .map((selectedValue) => optionByValue.get(selectedValue))\n .filter(\n (option): option is BaseMultiSelectOption => option !== undefined,\n ),\n [optionByValue, selectedValues],\n );\n const firstEnabledIndex = useMemo(\n () => getFirstEnabledIndex(optionList),\n [optionList],\n );\n const resolvedActiveIndex =\n activeIndex >= 0 && !optionList[activeIndex]?.disabled\n ? activeIndex\n : firstEnabledIndex;\n const visibleTagCount = getSafeTagCount(\n maxTagCount,\n selectedOptions.length,\n );\n const visibleOptions = selectedOptions.slice(0, visibleTagCount);\n const overflowCount = selectedOptions.length - visibleOptions.length;\n const isPlaceholder = selectedOptions.length === 0;\n\n const setRootRef = (node: HTMLDivElement | null) => {\n rootRef.current = node;\n if (typeof ref === 'function') {\n ref(node);\n } else if (ref) {\n ref.current = node;\n }\n };\n\n const setOpen = (nextOpen: boolean) => {\n if (disabled || forceOpen) return;\n setUncontrolledOpen(nextOpen);\n if (nextOpen) {\n setActiveIndex(resolvedActiveIndex);\n }\n };\n\n useEffect(() => {\n if (!open || forceOpen) return undefined;\n\n const handlePointerDown = (event: PointerEvent) => {\n if (!rootRef.current?.contains(event.target as Node)) {\n setUncontrolledOpen(false);\n }\n };\n\n document.addEventListener('pointerdown', handlePointerDown);\n return () => {\n document.removeEventListener('pointerdown', handlePointerDown);\n };\n }, [forceOpen, open]);\n\n useEffect(() => {\n if (resolvedActiveIndex >= 0 && resolvedActiveIndex !== activeIndex) {\n setActiveIndex(resolvedActiveIndex);\n }\n }, [activeIndex, resolvedActiveIndex]);\n\n const commitValues = (nextValues: string[]) => {\n const normalizedValues = normalizeValues(nextValues);\n if (!isControlled) {\n setUncontrolledValue(normalizedValues);\n }\n onValueChange?.(normalizedValues);\n };\n\n const toggleOption = (option: BaseMultiSelectOption | undefined) => {\n if (!option || option.disabled || disabled) return;\n const nextValues = selectedValueSet.has(option.value)\n ? selectedValues.filter((selectedValue) => selectedValue !== option.value)\n : [...selectedValues, option.value];\n commitValues(nextValues);\n };\n\n const removeOption = (option: BaseMultiSelectOption) => {\n if (disabled) return;\n commitValues(\n selectedValues.filter((selectedValue) => selectedValue !== option.value),\n );\n };\n\n const focusOption = (direction: 1 | -1) => {\n const nextIndex = getNextEnabledIndex(\n optionList,\n resolvedActiveIndex,\n direction,\n );\n if (nextIndex >= 0) {\n setActiveIndex(nextIndex);\n }\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n if (disabled) return;\n\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n event.preventDefault();\n if (!open) {\n setOpen(true);\n setActiveIndex(firstEnabledIndex);\n return;\n }\n focusOption(event.key === 'ArrowDown' ? 1 : -1);\n return;\n }\n\n if (event.key === 'Home') {\n event.preventDefault();\n setOpen(true);\n setActiveIndex(firstEnabledIndex);\n return;\n }\n\n if (event.key === 'End') {\n event.preventDefault();\n setOpen(true);\n for (let index = optionList.length - 1; index >= 0; index -= 1) {\n if (!optionList[index]?.disabled) {\n setActiveIndex(index);\n break;\n }\n }\n return;\n }\n\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n if (!open) {\n setOpen(true);\n return;\n }\n toggleOption(optionList[resolvedActiveIndex]);\n return;\n }\n\n if (event.key === 'Escape') {\n setOpen(false);\n }\n };\n\n return (\n <div\n {...rootProps}\n id={id}\n ref={setRootRef}\n className={cn(\n theme.slots.controlWrapper,\n 'overflow-visible',\n open && 'z-50',\n invalid && theme.slots.controlInvalid,\n disabled && theme.slots.controlDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.control,\n ...(invalid ? theme.styles.controlInvalid : undefined),\n ...(disabled ? theme.styles.controlDisabled : undefined),\n ...style,\n }}\n >\n {hasRenderableNode(icon) ? (\n <span className={cn(theme.slots.controlIcon, classNames?.icon)}>\n {icon}\n </span>\n ) : null}\n <div\n id={controlId}\n role=\"combobox\"\n tabIndex={disabled ? -1 : 0}\n aria-haspopup=\"listbox\"\n aria-expanded={open}\n aria-controls={listboxId}\n aria-disabled={disabled || undefined}\n aria-required={required || undefined}\n aria-invalid={nativeAriaInvalid ?? (invalid || undefined)}\n aria-label={nativeAriaLabel}\n aria-labelledby={nativeAriaLabelledBy}\n className={cn(\n theme.slots.controlBase,\n 'flex min-h-9 cursor-pointer flex-wrap items-center gap-1.5 py-1.5 pr-9 text-left',\n disabled && '!cursor-not-allowed',\n classNames?.control,\n )}\n onClick={() => setOpen(!open)}\n onKeyDown={handleKeyDown}\n >\n <span\n className={cn(\n 'flex min-w-0 flex-1 flex-wrap items-center gap-1.5',\n classNames?.tagList,\n )}\n >\n {visibleOptions.map((option) => (\n <span\n key={option.value}\n className={cn(\n 'inline-flex max-w-full items-center gap-1 rounded-full border border-border/70 bg-muted/65 px-2 py-0.5 text-xs font-medium text-foreground',\n classNames?.tag,\n )}\n >\n <span\n className={cn(\n 'max-w-40 truncate',\n classNames?.tagLabel,\n )}\n >\n {option.label}\n </span>\n <button\n type=\"button\"\n aria-label={removeLabel(option)}\n disabled={disabled}\n className={cn(\n 'inline-flex h-4 w-4 shrink-0 items-center justify-center rounded-full text-muted-foreground hover:bg-background/80 hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30 disabled:!cursor-not-allowed',\n classNames?.tagRemove,\n )}\n onClick={(event) => {\n event.preventDefault();\n event.stopPropagation();\n removeOption(option);\n }}\n onMouseDown={(event) => {\n event.preventDefault();\n event.stopPropagation();\n }}\n onKeyDown={(event) => event.stopPropagation()}\n >\n <span aria-hidden=\"true\">x</span>\n </button>\n </span>\n ))}\n {overflowCount > 0 ? (\n <span\n className={cn(\n 'inline-flex max-w-full items-center rounded-full border border-border/70 bg-muted/45 px-2 py-0.5 text-xs font-medium text-muted-foreground',\n classNames?.tag,\n )}\n >\n +{overflowCount}\n </span>\n ) : null}\n {isPlaceholder ? (\n <span\n className={cn(\n 'min-w-0 truncate',\n theme.slots.selectPlaceholder,\n classNames?.placeholder,\n )}\n >\n {placeholder}\n </span>\n ) : null}\n </span>\n </div>\n <span\n className={cn(\n theme.slots.selectChevron,\n open && 'rotate-[225deg]',\n classNames?.chevron,\n )}\n />\n {name\n ? selectedValues.map((selectedValue) => (\n <input\n key={selectedValue}\n type=\"hidden\"\n name={name}\n value={selectedValue}\n className={classNames?.hiddenInput}\n />\n ))\n : null}\n {open ? (\n <div\n id={listboxId}\n role=\"listbox\"\n aria-multiselectable=\"true\"\n aria-labelledby={controlId}\n className={cn(theme.slots.selectMenu, classNames?.menu)}\n style={theme.styles.selectMenu}\n >\n {optionList.length > 0 ? (\n optionList.map((option, index) => {\n const selected = selectedValueSet.has(option.value);\n const active = index === resolvedActiveIndex;\n return (\n <button\n key={option.value}\n type=\"button\"\n role=\"option\"\n aria-selected={selected}\n disabled={option.disabled}\n className={cn(\n theme.slots.selectOption,\n 'gap-2',\n active && theme.slots.selectOptionActive,\n selected && theme.slots.selectOptionSelected,\n option.disabled && theme.slots.selectOptionDisabled,\n classNames?.option,\n )}\n style={{\n ...theme.styles.selectOption,\n ...(active ? theme.styles.selectOptionActive : undefined),\n ...(selected\n ? theme.styles.selectOptionSelected\n : undefined),\n }}\n onMouseEnter={() => {\n if (!option.disabled) {\n setActiveIndex(index);\n }\n }}\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => toggleOption(option)}\n >\n <span\n aria-hidden=\"true\"\n className={cn(\n 'inline-flex h-4 w-4 shrink-0 items-center justify-center rounded-sm border border-border/70 text-[10px]',\n selected && 'border-primary/40 bg-primary text-primary-foreground',\n classNames?.optionIndicator,\n )}\n >\n {selected ? '✓' : null}\n </span>\n <span\n className={cn(\n 'min-w-0 flex-1 truncate',\n classNames?.optionLabel,\n )}\n >\n {option.label}\n </span>\n </button>\n );\n })\n ) : (\n <div\n className={cn(\n 'px-2.5 py-2 text-sm text-muted-foreground',\n classNames?.empty,\n )}\n >\n {emptyLabel}\n </div>\n )}\n </div>\n ) : null}\n </div>\n );\n },\n);\n","import {\n forwardRef,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport type { KeyboardEvent } from 'react';\n\nimport type { BaseSelectOption, BaseSelectProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nfunction findOption(options: BaseSelectOption[], value: string | undefined) {\n if (value === undefined) return undefined;\n return options.find((option) => option.value === value);\n}\n\nfunction getInitialValue(\n options: BaseSelectOption[],\n defaultValue: string | number | readonly string[] | undefined,\n) {\n if (typeof defaultValue === 'string') {\n return defaultValue;\n }\n return '';\n}\n\nfunction getNextEnabledIndex(\n options: BaseSelectOption[],\n currentIndex: number,\n direction: 1 | -1,\n) {\n if (!options.length) return -1;\n\n for (let offset = 1; offset <= options.length; offset += 1) {\n const nextIndex =\n (currentIndex + offset * direction + options.length) % options.length;\n if (!options[nextIndex]?.disabled) {\n return nextIndex;\n }\n }\n\n return -1;\n}\n\nexport const BaseSelect = forwardRef<HTMLSelectElement, BaseSelectProps>(\n function BaseSelect(\n {\n options,\n placeholder,\n icon,\n invalid = false,\n disabled = false,\n openForPreview = false,\n appearance,\n className,\n classNames,\n style,\n children,\n value,\n defaultValue,\n onChange,\n name,\n id,\n required,\n 'aria-invalid': nativeAriaInvalid,\n 'aria-label': nativeAriaLabel,\n 'aria-labelledby': nativeAriaLabelledBy,\n ...selectProps\n },\n ref,\n ) {\n const theme = resolveBaseAppearance(appearance);\n const generatedId = useId();\n const selectId = id ?? generatedId;\n const listboxId = `${selectId}-listbox`;\n const rootRef = useRef<HTMLDivElement | null>(null);\n const selectRef = useRef<HTMLSelectElement | null>(null);\n const optionList = options ?? [];\n const isCustomSelect = optionList.length > 0;\n const forceOpen = openForPreview;\n const [uncontrolledOpen, setUncontrolledOpen] = useState(false);\n const open = forceOpen || uncontrolledOpen;\n const [uncontrolledValue, setUncontrolledValue] = useState(() =>\n getInitialValue(optionList, defaultValue),\n );\n const isControlled = value !== undefined;\n const selectedValue = String(isControlled ? value : uncontrolledValue);\n const selectedOption = findOption(optionList, selectedValue);\n const activeIndex = useMemo(() => {\n const selectedIndex = optionList.findIndex(\n (option) => option.value === selectedValue && !option.disabled,\n );\n if (selectedIndex >= 0) return selectedIndex;\n return optionList.findIndex((option) => !option.disabled);\n }, [optionList, selectedValue]);\n const visibleLabel = selectedOption?.label ?? placeholder;\n const isPlaceholder = !selectedOption;\n\n const setSelectRef = (node: HTMLSelectElement | null) => {\n selectRef.current = node;\n if (typeof ref === 'function') {\n ref(node);\n } else if (ref) {\n ref.current = node;\n }\n };\n\n useEffect(() => {\n if (!open || forceOpen) return undefined;\n\n const handlePointerDown = (event: PointerEvent) => {\n if (!rootRef.current?.contains(event.target as Node)) {\n setUncontrolledOpen(false);\n }\n };\n\n document.addEventListener('pointerdown', handlePointerDown);\n return () => {\n document.removeEventListener('pointerdown', handlePointerDown);\n };\n }, [forceOpen, open]);\n\n const notifyChange = (nextValue: string) => {\n const selectElement = selectRef.current;\n if (!selectElement) return;\n const valueSetter = Object.getOwnPropertyDescriptor(\n HTMLSelectElement.prototype,\n 'value',\n )?.set;\n valueSetter?.call(selectElement, nextValue);\n selectElement.dispatchEvent(new Event('change', { bubbles: true }));\n };\n\n const commitValue = (nextValue: string, optionDisabled?: boolean) => {\n if (optionDisabled || disabled) return;\n if (!isControlled) {\n setUncontrolledValue(nextValue);\n }\n notifyChange(nextValue);\n if (!forceOpen) {\n setUncontrolledOpen(false);\n }\n };\n\n const focusOption = (direction: 1 | -1) => {\n const currentIndex = activeIndex >= 0 ? activeIndex : 0;\n const nextIndex = getNextEnabledIndex(optionList, currentIndex, direction);\n if (nextIndex >= 0) {\n commitValue(optionList[nextIndex].value, optionList[nextIndex].disabled);\n }\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLButtonElement>) => {\n if (disabled) return;\n\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n event.preventDefault();\n if (!open) {\n setUncontrolledOpen(true);\n return;\n }\n focusOption(event.key === 'ArrowDown' ? 1 : -1);\n return;\n }\n\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n if (!forceOpen) {\n setUncontrolledOpen((current) => !current);\n }\n return;\n }\n\n if (event.key === 'Escape') {\n setUncontrolledOpen(false);\n }\n };\n\n if (!isCustomSelect) {\n return (\n <div\n className={cn(\n theme.slots.controlWrapper,\n invalid && theme.slots.controlInvalid,\n disabled && theme.slots.controlDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.control,\n ...(invalid ? theme.styles.controlInvalid : undefined),\n ...(disabled ? theme.styles.controlDisabled : undefined),\n ...style,\n }}\n >\n {hasRenderableNode(icon) ? (\n <span className={cn(theme.slots.controlIcon, classNames?.icon)}>\n {icon}\n </span>\n ) : null}\n <select\n {...selectProps}\n id={id}\n ref={ref}\n name={name}\n value={value}\n defaultValue={defaultValue}\n required={required}\n disabled={disabled}\n aria-invalid={nativeAriaInvalid ?? (invalid || undefined)}\n aria-label={nativeAriaLabel}\n aria-labelledby={nativeAriaLabelledBy}\n onChange={onChange}\n className={cn(\n theme.slots.controlBase,\n theme.slots.controlSelect,\n classNames?.control,\n )}\n >\n {hasRenderableNode(placeholder) ? (\n <option value=\"\" disabled>\n {placeholder}\n </option>\n ) : null}\n {children}\n </select>\n <span className={theme.slots.selectChevron} />\n </div>\n );\n }\n\n return (\n <div\n ref={rootRef}\n className={cn(\n theme.slots.controlWrapper,\n 'overflow-visible',\n open && 'z-50',\n invalid && theme.slots.controlInvalid,\n disabled && theme.slots.controlDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.control,\n ...(invalid ? theme.styles.controlInvalid : undefined),\n ...(disabled ? theme.styles.controlDisabled : undefined),\n ...style,\n }}\n >\n {hasRenderableNode(icon) ? (\n <span className={cn(theme.slots.controlIcon, classNames?.icon)}>\n {icon}\n </span>\n ) : null}\n <button\n type=\"button\"\n id={`${selectId}-button`}\n disabled={disabled}\n aria-haspopup=\"listbox\"\n aria-expanded={open}\n aria-controls={listboxId}\n aria-invalid={nativeAriaInvalid ?? (invalid || undefined)}\n aria-label={nativeAriaLabel}\n aria-labelledby={nativeAriaLabelledBy}\n className={cn(\n theme.slots.controlBase,\n theme.slots.controlSelect,\n 'flex items-center text-left',\n classNames?.control,\n )}\n onClick={() => {\n if (!forceOpen) {\n setUncontrolledOpen((current) => !current);\n }\n }}\n onKeyDown={handleKeyDown}\n >\n <span\n className={cn(\n 'min-w-0 flex-1 truncate',\n isPlaceholder && theme.slots.selectPlaceholder,\n isPlaceholder && classNames?.placeholder,\n )}\n >\n {visibleLabel}\n </span>\n </button>\n <span\n className={cn(\n theme.slots.selectChevron,\n open && 'rotate-[225deg]',\n )}\n />\n <select\n {...selectProps}\n ref={setSelectRef}\n id={id}\n name={name}\n value={selectedValue}\n required={required}\n disabled={disabled}\n aria-hidden=\"true\"\n tabIndex={-1}\n className={theme.slots.selectNative}\n onChange={onChange}\n >\n {hasRenderableNode(placeholder) ? (\n <option value=\"\" disabled>\n {placeholder}\n </option>\n ) : null}\n {optionList.map((option) => (\n <option\n key={option.value}\n value={option.value}\n disabled={option.disabled}\n >\n {typeof option.label === 'string' ? option.label : option.value}\n </option>\n ))}\n </select>\n {open ? (\n <div\n id={listboxId}\n role=\"listbox\"\n aria-labelledby={`${selectId}-button`}\n className={cn(theme.slots.selectMenu, classNames?.menu)}\n style={theme.styles.selectMenu}\n >\n {optionList.map((option, index) => {\n const selected = option.value === selectedValue;\n const active = index === activeIndex;\n return (\n <button\n key={option.value}\n type=\"button\"\n role=\"option\"\n aria-selected={selected}\n disabled={option.disabled}\n className={cn(\n theme.slots.selectOption,\n active && theme.slots.selectOptionActive,\n selected && theme.slots.selectOptionSelected,\n option.disabled && theme.slots.selectOptionDisabled,\n classNames?.option,\n )}\n style={{\n ...theme.styles.selectOption,\n ...(active ? theme.styles.selectOptionActive : undefined),\n ...(selected ? theme.styles.selectOptionSelected : undefined),\n }}\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => commitValue(option.value, option.disabled)}\n >\n <span className=\"min-w-0 flex-1 truncate\">{option.label}</span>\n </button>\n );\n })}\n </div>\n ) : null}\n </div>\n );\n },\n);\n","import { forwardRef, useState } from 'react';\nimport type { ChangeEvent } from 'react';\n\nimport type { BaseSwitchProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nexport const BaseSwitch = forwardRef<HTMLInputElement, BaseSwitchProps>(\n function BaseSwitch(\n {\n label,\n description,\n disabled = false,\n appearance,\n className,\n classNames,\n style,\n checked,\n defaultChecked,\n onChange,\n ...switchProps\n },\n ref,\n ) {\n const theme = resolveBaseAppearance(appearance);\n const [uncontrolledChecked, setUncontrolledChecked] = useState(\n defaultChecked ?? false,\n );\n const isControlled = checked !== undefined;\n const resolvedChecked = isControlled ? checked : uncontrolledChecked;\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n if (!isControlled) {\n setUncontrolledChecked(event.currentTarget.checked);\n }\n onChange?.(event);\n };\n\n return (\n <label\n className={cn(\n theme.slots.switchRoot,\n disabled && theme.slots.switchDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.switchRoot,\n ...style,\n }}\n >\n <span\n className={cn(\n theme.slots.switchTrack,\n resolvedChecked && theme.slots.switchChecked,\n classNames?.track,\n )}\n style={theme.styles.switchTrack}\n >\n <input\n {...switchProps}\n ref={ref}\n type=\"checkbox\"\n disabled={disabled}\n checked={checked}\n defaultChecked={defaultChecked}\n onChange={handleChange}\n className={cn(theme.slots.switchInput, classNames?.input)}\n />\n <span\n className={cn(\n theme.slots.switchThumb,\n resolvedChecked && 'translate-x-5',\n classNames?.thumb,\n )}\n style={theme.styles.switchThumb}\n />\n </span>\n\n {hasRenderableNode(label) || hasRenderableNode(description) ? (\n <span className={cn(theme.slots.switchContent, classNames?.content)}>\n {hasRenderableNode(label) ? (\n <span className={cn(theme.slots.switchLabel, classNames?.label)}>\n {label}\n </span>\n ) : null}\n {hasRenderableNode(description) ? (\n <span\n className={cn(\n theme.slots.switchDescription,\n classNames?.description,\n )}\n >\n {description}\n </span>\n ) : null}\n </span>\n ) : null}\n </label>\n );\n },\n);\n","import {\n createContext,\n forwardRef,\n useContext,\n useRef,\n useState,\n type CSSProperties,\n type DragEvent,\n type PointerEvent as ReactPointerEvent,\n} from 'react';\n\nimport { resolveBaseAppearance } from './theme';\nimport type {\n BaseAppearance,\n BaseResolvedTheme,\n BaseTableBodyProps,\n BaseTableCaptionProps,\n BaseTableCellProps,\n BaseTableColumnInteractionOptions,\n BaseTableContainerProps,\n BaseTableEmptyProps,\n BaseTableFooterProps,\n BaseTableHeaderProps,\n BaseTableHeadProps,\n BaseTableLoadingProps,\n BaseTableProps,\n BaseTableRowProps,\n BaseTableSortDirection,\n} from './types';\nimport { cn, hasRenderableNode } from './utils';\n\nconst DATA_TRANSFER_COLUMN_TYPE = 'application/x-monkeys-base-table-column';\n\ntype BaseTableContextValue = BaseTableColumnInteractionOptions & {\n appearance?: BaseAppearance;\n theme: BaseResolvedTheme;\n draggingColumnId?: string;\n setDraggingColumnId: (columnId?: string) => void;\n};\n\nconst BaseTableContext = createContext<BaseTableContextValue | null>(null);\n\nfunction useBaseTableContext(appearance?: BaseAppearance) {\n const context = useContext(BaseTableContext);\n if (context) {\n return {\n ...context,\n theme: appearance ? resolveBaseAppearance(appearance) : context.theme,\n appearance: appearance ?? context.appearance,\n };\n }\n\n const theme = resolveBaseAppearance(appearance);\n return {\n appearance,\n theme,\n setDraggingColumnId: () => {},\n } satisfies BaseTableContextValue;\n}\n\nfunction toCssSize(value?: number | string) {\n if (value === undefined) return undefined;\n return typeof value === 'number' ? `${value}px` : value;\n}\n\nfunction clampWidth(value: number, minWidth?: number, maxWidth?: number) {\n const min = minWidth ?? 48;\n const max = maxWidth ?? Number.POSITIVE_INFINITY;\n return Math.min(Math.max(value, min), max);\n}\n\nfunction getNextColumnOrder(\n order: string[] | undefined,\n columnId: string,\n targetColumnId: string,\n) {\n if (!order || columnId === targetColumnId) return undefined;\n const fromIndex = order.indexOf(columnId);\n const toIndex = order.indexOf(targetColumnId);\n if (fromIndex < 0 || toIndex < 0) return undefined;\n\n const next = [...order];\n const [moved] = next.splice(fromIndex, 1);\n next.splice(toIndex, 0, moved);\n return next;\n}\n\nfunction sortAriaValue(direction?: BaseTableSortDirection) {\n switch (direction) {\n case 'asc':\n return 'ascending';\n case 'desc':\n return 'descending';\n default:\n return undefined;\n }\n}\n\nfunction SortIndicator({\n direction,\n className,\n}: {\n direction?: BaseTableSortDirection;\n className?: string;\n}) {\n return (\n <span\n aria-hidden=\"true\"\n className={cn(\n className,\n direction === 'desc' && 'rotate-180',\n (!direction || direction === 'none') && 'opacity-45',\n )}\n >\n ▲\n </span>\n );\n}\n\nfunction DragHandleIcon() {\n return (\n <span aria-hidden=\"true\" className=\"grid gap-0.5\">\n <span className=\"h-0.5 w-0.5 rounded-full bg-current\" />\n <span className=\"h-0.5 w-0.5 rounded-full bg-current\" />\n <span className=\"h-0.5 w-0.5 rounded-full bg-current\" />\n </span>\n );\n}\n\nexport function BaseTableContainer({\n appearance,\n attachedFooter = false,\n className,\n classNames,\n style,\n ...containerProps\n}: BaseTableContainerProps) {\n const theme = resolveBaseAppearance(appearance);\n\n return (\n <div\n {...containerProps}\n data-base-table-container=\"\"\n data-attached-footer={attachedFooter ? '' : undefined}\n className={cn(\n theme.slots.tableContainer,\n attachedFooter && theme.slots.tableContainerFooterAttached,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.tableContainer,\n ...(attachedFooter ? theme.styles.tableContainerFooterAttached : undefined),\n ...style,\n }}\n />\n );\n}\n\nexport function BaseTable({\n appearance,\n className,\n classNames,\n style,\n columnOrder,\n columnSizes,\n columnDragEnabled = false,\n columnResizeEnabled = false,\n onColumnOrderChange,\n onColumnSizeChange,\n ...tableProps\n}: BaseTableProps) {\n const theme = resolveBaseAppearance(appearance);\n const [draggingColumnId, setDraggingColumnId] = useState<string | undefined>();\n const contextValue: BaseTableContextValue = {\n appearance,\n theme,\n columnOrder,\n columnSizes,\n columnDragEnabled,\n columnResizeEnabled,\n onColumnOrderChange,\n onColumnSizeChange,\n draggingColumnId,\n setDraggingColumnId,\n };\n\n return (\n <BaseTableContext.Provider value={contextValue}>\n <table\n {...tableProps}\n className={cn(theme.slots.tableRoot, classNames?.root, className)}\n style={{\n ...theme.styles.table,\n ...style,\n }}\n />\n </BaseTableContext.Provider>\n );\n}\n\nexport function BaseTableHeader({\n appearance,\n className,\n classNames,\n style,\n ...headerProps\n}: BaseTableHeaderProps) {\n const { theme } = useBaseTableContext(appearance);\n\n return (\n <thead\n {...headerProps}\n className={cn(theme.slots.tableHeader, classNames?.root, className)}\n style={{\n ...theme.styles.tableHeader,\n ...style,\n }}\n />\n );\n}\n\nexport function BaseTableBody({\n appearance,\n className,\n classNames,\n style,\n ...bodyProps\n}: BaseTableBodyProps) {\n const { theme } = useBaseTableContext(appearance);\n\n return (\n <tbody\n {...bodyProps}\n className={cn(theme.slots.tableBody, classNames?.root, className)}\n style={{\n ...theme.styles.tableBody,\n ...style,\n }}\n />\n );\n}\n\nexport function BaseTableFooter({\n appearance,\n className,\n classNames,\n style,\n ...footerProps\n}: BaseTableFooterProps) {\n const { theme } = useBaseTableContext(appearance);\n\n return (\n <tfoot\n {...footerProps}\n className={cn(theme.slots.tableFooter, classNames?.root, className)}\n style={{\n ...theme.styles.tableFooter,\n ...style,\n }}\n />\n );\n}\n\nexport function BaseTableRow({\n interactive,\n selected,\n disabled,\n appearance,\n className,\n classNames,\n style,\n ...rowProps\n}: BaseTableRowProps) {\n const { theme } = useBaseTableContext(appearance);\n\n return (\n <tr\n {...rowProps}\n aria-disabled={disabled || undefined}\n data-state={selected ? 'selected' : undefined}\n className={cn(\n theme.slots.tableRow,\n interactive && !disabled && theme.slots.tableRowInteractive,\n selected && theme.slots.tableRowSelected,\n disabled && theme.slots.tableRowDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.tableRow,\n ...style,\n }}\n />\n );\n}\n\nexport const BaseTableHead = forwardRef<HTMLTableCellElement, BaseTableHeadProps>(function BaseTableHead({\n columnId,\n align = 'left',\n icon,\n label,\n description,\n meta,\n actions,\n trailing,\n sortable,\n sortDirection = 'none',\n sortLabel,\n onSort,\n draggable,\n dragLabel,\n resizable,\n resizeLabel,\n width,\n minWidth,\n maxWidth,\n appearance,\n className,\n classNames,\n style,\n children,\n onDragOver,\n onDrop,\n ...headProps\n}, forwardedRef) {\n const tableContext = useBaseTableContext(appearance);\n const { theme } = tableContext;\n const headRef = useRef<HTMLTableCellElement | null>(null);\n const setHeadRef = (node: HTMLTableCellElement | null) => {\n headRef.current = node;\n if (typeof forwardedRef === 'function') {\n forwardedRef(node);\n } else if (forwardedRef) {\n forwardedRef.current = node;\n }\n };\n const controlledWidth =\n columnId && tableContext.columnSizes?.[columnId] !== undefined\n ? tableContext.columnSizes[columnId]\n : width;\n const canDrag = Boolean(\n columnId &&\n draggable !== false &&\n (draggable || tableContext.columnDragEnabled) &&\n tableContext.columnOrder &&\n tableContext.onColumnOrderChange,\n );\n const canResize = Boolean(\n columnId &&\n resizable !== false &&\n (resizable || tableContext.columnResizeEnabled) &&\n tableContext.onColumnSizeChange,\n );\n const interactiveSort = Boolean(sortable || onSort);\n const ariaSort = sortAriaValue(sortDirection);\n\n const content = hasRenderableNode(label) ? label : children;\n const usesRichHeader =\n canDrag ||\n hasRenderableNode(icon) ||\n hasRenderableNode(label) ||\n hasRenderableNode(description) ||\n hasRenderableNode(meta) ||\n hasRenderableNode(actions) ||\n hasRenderableNode(trailing) ||\n interactiveSort;\n const renderedContent =\n usesRichHeader ? (\n <div className={cn(theme.slots.tableHeadContent, classNames?.content)}>\n <div className={cn(theme.slots.tableHeadMain, classNames?.main)}>\n {canDrag ? (\n <button\n type=\"button\"\n draggable\n title={dragLabel}\n aria-label={dragLabel ?? `Drag column ${columnId}`}\n className={cn(theme.slots.tableHeadDragHandle, classNames?.dragHandle)}\n onClick={(event) => event.stopPropagation()}\n onDragStart={(event) => {\n event.stopPropagation();\n tableContext.setDraggingColumnId(columnId);\n event.dataTransfer.effectAllowed = 'move';\n event.dataTransfer.setData(DATA_TRANSFER_COLUMN_TYPE, columnId as string);\n }}\n onDragEnd={(event) => {\n event.stopPropagation();\n tableContext.setDraggingColumnId(undefined);\n }}\n >\n <DragHandleIcon />\n </button>\n ) : null}\n {icon ? (\n <span className={cn(theme.slots.tableHeadIcon, classNames?.icon)}>\n {icon}\n </span>\n ) : null}\n {interactiveSort ? (\n <button\n type=\"button\"\n disabled={!onSort}\n title={sortLabel}\n className={cn(theme.slots.tableHeadSortButton, classNames?.sortButton)}\n onClick={(event) => {\n event.stopPropagation();\n onSort?.(columnId);\n }}\n >\n <span className={cn(theme.slots.tableHeadText, classNames?.text)}>\n {hasRenderableNode(content) ? (\n <span className={cn(theme.slots.tableHeadLabel, classNames?.label)}>\n {content}\n </span>\n ) : null}\n {hasRenderableNode(description) ? (\n <span\n className={cn(\n theme.slots.tableHeadDescription,\n classNames?.description,\n )}\n >\n {description}\n </span>\n ) : null}\n </span>\n <SortIndicator\n direction={sortDirection}\n className={cn(theme.slots.tableHeadSortIcon, classNames?.sortIcon)}\n />\n </button>\n ) : (\n <span className={cn(theme.slots.tableHeadText, classNames?.text)}>\n {hasRenderableNode(content) ? (\n <span className={cn(theme.slots.tableHeadLabel, classNames?.label)}>\n {content}\n </span>\n ) : null}\n {hasRenderableNode(description) ? (\n <span\n className={cn(\n theme.slots.tableHeadDescription,\n classNames?.description,\n )}\n >\n {description}\n </span>\n ) : null}\n </span>\n )}\n </div>\n {hasRenderableNode(meta) || hasRenderableNode(actions) || hasRenderableNode(trailing) ? (\n <div className={cn(theme.slots.tableHeadActions, classNames?.actions)}>\n {hasRenderableNode(meta) ? (\n <span className={cn(theme.slots.tableHeadMeta, classNames?.meta)}>\n {meta}\n </span>\n ) : null}\n {actions}\n {trailing}\n </div>\n ) : null}\n </div>\n ) : (\n children\n );\n\n const handleDragOver = (event: DragEvent<HTMLTableCellElement>) => {\n onDragOver?.(event);\n if (!canDrag || !tableContext.draggingColumnId || tableContext.draggingColumnId === columnId) {\n return;\n }\n event.preventDefault();\n event.dataTransfer.dropEffect = 'move';\n };\n\n const handleDrop = (event: DragEvent<HTMLTableCellElement>) => {\n onDrop?.(event);\n if (!canDrag || !columnId) return;\n const sourceColumnId =\n tableContext.draggingColumnId ||\n event.dataTransfer.getData(DATA_TRANSFER_COLUMN_TYPE);\n if (!sourceColumnId || sourceColumnId === columnId) return;\n\n const nextOrder = getNextColumnOrder(\n tableContext.columnOrder,\n sourceColumnId,\n columnId,\n );\n if (nextOrder) {\n event.preventDefault();\n tableContext.onColumnOrderChange?.(nextOrder, {\n columnId: sourceColumnId,\n targetColumnId: columnId,\n });\n }\n tableContext.setDraggingColumnId(undefined);\n };\n\n const handleResizePointerDown = (event: ReactPointerEvent<HTMLButtonElement>) => {\n if (!canResize || !columnId || !tableContext.onColumnSizeChange) return;\n event.preventDefault();\n event.stopPropagation();\n\n const startX = event.clientX;\n const currentWidth =\n typeof controlledWidth === 'number'\n ? controlledWidth\n : headRef.current?.offsetWidth ?? minWidth ?? 96;\n const previousWidth = clampWidth(currentWidth, minWidth, maxWidth);\n const pointerId = event.pointerId;\n const target = event.currentTarget;\n target.setPointerCapture?.(pointerId);\n\n const handlePointerMove = (moveEvent: PointerEvent) => {\n const nextWidth = clampWidth(\n previousWidth + moveEvent.clientX - startX,\n minWidth,\n maxWidth,\n );\n tableContext.onColumnSizeChange?.(columnId, nextWidth, {\n columnId,\n previousWidth,\n minWidth,\n maxWidth,\n });\n };\n\n const cleanup = () => {\n target.releasePointerCapture?.(pointerId);\n window.removeEventListener('pointermove', handlePointerMove);\n window.removeEventListener('pointerup', cleanup);\n window.removeEventListener('pointercancel', cleanup);\n };\n\n window.addEventListener('pointermove', handlePointerMove);\n window.addEventListener('pointerup', cleanup);\n window.addEventListener('pointercancel', cleanup);\n };\n\n return (\n <th\n {...headProps}\n ref={setHeadRef}\n scope={headProps.scope ?? 'col'}\n aria-sort={ariaSort}\n className={cn(\n theme.slots.tableHead,\n align === 'center' && theme.slots.tableCellAlignCenter,\n align === 'right' && theme.slots.tableCellAlignRight,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.tableHead,\n width: toCssSize(controlledWidth),\n minWidth: toCssSize(minWidth),\n maxWidth: toCssSize(maxWidth),\n ...style,\n }}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n >\n {renderedContent}\n {canResize ? (\n <button\n type=\"button\"\n title={resizeLabel}\n aria-label={resizeLabel ?? `Resize column ${columnId}`}\n className={cn(theme.slots.tableHeadResizeHandle, classNames?.resizeHandle)}\n onClick={(event) => event.stopPropagation()}\n onPointerDown={handleResizePointerDown}\n />\n ) : null}\n </th>\n );\n});\n\nexport function BaseTableCell({\n align = 'left',\n appearance,\n className,\n classNames,\n style,\n ...cellProps\n}: BaseTableCellProps) {\n const { theme } = useBaseTableContext(appearance);\n\n return (\n <td\n {...cellProps}\n className={cn(\n theme.slots.tableCell,\n align === 'center' && theme.slots.tableCellAlignCenter,\n align === 'right' && theme.slots.tableCellAlignRight,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.tableCell,\n ...style,\n }}\n />\n );\n}\n\nexport function BaseTableCaption({\n appearance,\n className,\n classNames,\n style,\n ...captionProps\n}: BaseTableCaptionProps) {\n const { theme } = useBaseTableContext(appearance);\n\n return (\n <caption\n {...captionProps}\n className={cn(theme.slots.tableCaption, classNames?.root, className)}\n style={{\n ...theme.styles.tableCaption,\n ...style,\n }}\n />\n );\n}\n\nexport function BaseTableEmpty({\n colSpan,\n icon,\n title,\n description,\n actions,\n children,\n appearance,\n className,\n classNames,\n style,\n ...emptyProps\n}: BaseTableEmptyProps) {\n const { theme } = useBaseTableContext(appearance);\n const hasStructuredContent =\n hasRenderableNode(icon) ||\n hasRenderableNode(title) ||\n hasRenderableNode(description) ||\n hasRenderableNode(actions);\n\n return (\n <tr\n {...emptyProps}\n className={cn(theme.slots.tableEmptyRow, classNames?.row, className)}\n style={{\n ...theme.styles.tableEmpty,\n ...style,\n }}\n >\n <td colSpan={Math.max(colSpan, 1)} className={cn(theme.slots.tableEmptyCell, classNames?.cell)}>\n {hasStructuredContent ? (\n <div className={cn(theme.slots.tableEmptyContent, classNames?.content)}>\n {hasRenderableNode(icon) ? (\n <div className={cn(theme.slots.tableEmptyIcon, classNames?.icon)}>\n {icon}\n </div>\n ) : null}\n {hasRenderableNode(title) ? (\n <div className={cn(theme.slots.tableEmptyTitle, classNames?.title)}>\n {title}\n </div>\n ) : null}\n {hasRenderableNode(description) ? (\n <div\n className={cn(\n theme.slots.tableEmptyDescription,\n classNames?.description,\n )}\n >\n {description}\n </div>\n ) : null}\n {hasRenderableNode(actions) ? (\n <div className={cn(theme.slots.tableEmptyActions, classNames?.actions)}>\n {actions}\n </div>\n ) : null}\n </div>\n ) : (\n children\n )}\n </td>\n </tr>\n );\n}\n\nexport function BaseTableLoading({\n rows = 3,\n columns,\n columnWidths = [],\n animated = true,\n rowLabel = 'Loading table row',\n appearance,\n className,\n classNames,\n style,\n}: BaseTableLoadingProps) {\n const { theme } = useBaseTableContext(appearance);\n const safeRows = Math.max(rows, 0);\n const safeColumns = Math.max(columns, 1);\n\n return (\n <>\n {Array.from({ length: safeRows }).map((_, rowIndex) => (\n <tr\n key={rowIndex}\n aria-label={`${rowLabel} ${rowIndex + 1}`}\n aria-busy=\"true\"\n className={cn(theme.slots.tableLoadingRow, classNames?.row, className)}\n style={{\n ...theme.styles.tableLoading,\n ...style,\n }}\n >\n {Array.from({ length: safeColumns }).map((__, columnIndex) => (\n <td\n key={columnIndex}\n className={cn(theme.slots.tableLoadingCell, classNames?.cell)}\n >\n <div\n aria-hidden=\"true\"\n className={cn(\n theme.slots.tableLoadingSkeleton,\n animated && 'animate-pulse',\n classNames?.skeleton,\n )}\n style={{\n width: toCssSize(columnWidths[columnIndex]),\n }}\n />\n </td>\n ))}\n </tr>\n ))}\n </>\n );\n}\n","import { forwardRef } from 'react';\n\nimport type { BaseTextareaProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn } from './utils';\n\nexport const BaseTextarea = forwardRef<HTMLTextAreaElement, BaseTextareaProps>(\n function BaseTextarea(\n {\n invalid = false,\n disabled = false,\n readOnly = false,\n appearance,\n className,\n classNames,\n style,\n 'aria-invalid': nativeAriaInvalid,\n ...textareaProps\n },\n ref,\n ) {\n const theme = resolveBaseAppearance(appearance);\n\n return (\n <textarea\n {...textareaProps}\n ref={ref}\n disabled={disabled}\n readOnly={readOnly}\n aria-invalid={nativeAriaInvalid ?? (invalid || undefined)}\n className={cn(\n theme.slots.controlWrapper,\n theme.slots.controlBase,\n theme.slots.controlTextarea,\n invalid && theme.slots.controlInvalid,\n disabled && theme.slots.controlDisabled,\n readOnly && theme.slots.controlReadOnly,\n classNames?.control,\n className,\n )}\n style={{\n ...theme.styles.control,\n ...(invalid ? theme.styles.controlInvalid : undefined),\n ...(disabled ? theme.styles.controlDisabled : undefined),\n ...style,\n }}\n />\n );\n },\n);\n","import { useLayoutEffect, useMemo, useRef, useState, type CSSProperties } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport type { BaseTooltipPlacement, BaseTooltipProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nfunction getTooltipPlacementClassName(placement: BaseTooltipPlacement) {\n switch (placement) {\n case 'bottom':\n return 'left-1/2 top-[calc(100%+0.5rem)] -translate-x-1/2';\n case 'left':\n return 'right-[calc(100%+0.5rem)] top-1/2 -translate-y-1/2';\n case 'right':\n return 'left-[calc(100%+0.5rem)] top-1/2 -translate-y-1/2';\n case 'top':\n default:\n return 'bottom-[calc(100%+0.5rem)] left-1/2 -translate-x-1/2';\n }\n}\n\nfunction getPortalTooltipStyle(\n placement: BaseTooltipPlacement,\n rect: DOMRect | null,\n themeStyle?: CSSProperties,\n): CSSProperties | undefined {\n if (!rect) return themeStyle;\n\n const offset = 8;\n const baseStyle: CSSProperties = {\n ...themeStyle,\n position: 'fixed',\n };\n\n switch (placement) {\n case 'bottom':\n return {\n ...baseStyle,\n left: rect.left + rect.width / 2,\n top: rect.bottom + offset,\n transform: 'translateX(-50%)',\n };\n case 'left':\n return {\n ...baseStyle,\n right: window.innerWidth - rect.left + offset,\n top: rect.top + rect.height / 2,\n transform: 'translateY(-50%)',\n };\n case 'right':\n return {\n ...baseStyle,\n left: rect.right + offset,\n top: rect.top + rect.height / 2,\n transform: 'translateY(-50%)',\n };\n case 'top':\n default:\n return {\n ...baseStyle,\n bottom: window.innerHeight - rect.top + offset,\n left: rect.left + rect.width / 2,\n transform: 'translateX(-50%)',\n };\n }\n}\n\nexport function BaseTooltip({\n content,\n children,\n open,\n defaultOpen = false,\n placement = 'top',\n disabled = false,\n portal = false,\n appearance,\n className,\n classNames,\n style,\n onOpenChange,\n ...tooltipProps\n}: BaseTooltipProps) {\n const theme = resolveBaseAppearance(appearance);\n const rootRef = useRef<HTMLSpanElement | null>(null);\n const [triggerRect, setTriggerRect] = useState<DOMRect | null>(null);\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n const isControlled = open !== undefined;\n const isOpen = isControlled ? open : uncontrolledOpen;\n const canShow = !disabled && hasRenderableNode(content);\n const shouldPortal = portal && typeof document !== 'undefined';\n const tooltipStyle = useMemo(\n () => shouldPortal\n ? getPortalTooltipStyle(placement, triggerRect, theme.styles.tooltip)\n : theme.styles.tooltip,\n [placement, shouldPortal, theme.styles.tooltip, triggerRect],\n );\n\n const setOpen = (nextOpen: boolean) => {\n if (!canShow && nextOpen) return;\n if (shouldPortal) {\n setTriggerRect(nextOpen ? rootRef.current?.getBoundingClientRect() ?? null : null);\n }\n if (!isControlled) {\n setUncontrolledOpen(nextOpen);\n }\n onOpenChange?.(nextOpen);\n };\n\n useLayoutEffect(() => {\n if (!shouldPortal || !canShow || !isOpen) return;\n\n const updateTriggerRect = () => {\n setTriggerRect(rootRef.current?.getBoundingClientRect() ?? null);\n };\n\n updateTriggerRect();\n window.addEventListener('resize', updateTriggerRect);\n window.addEventListener('scroll', updateTriggerRect, true);\n\n return () => {\n window.removeEventListener('resize', updateTriggerRect);\n window.removeEventListener('scroll', updateTriggerRect, true);\n };\n }, [canShow, isOpen, shouldPortal]);\n\n const tooltipContent = canShow && isOpen && (!shouldPortal || triggerRect) ? (\n <span\n role=\"tooltip\"\n className={cn(\n theme.slots.tooltipContent,\n shouldPortal ? undefined : getTooltipPlacementClassName(placement),\n classNames?.content,\n )}\n style={tooltipStyle}\n >\n {content}\n </span>\n ) : null;\n\n return (\n <span\n {...tooltipProps}\n ref={rootRef}\n className={cn(theme.slots.tooltipRoot, classNames?.root, className)}\n style={style}\n onMouseEnter={() => setOpen(true)}\n onMouseLeave={() => setOpen(false)}\n onFocus={() => setOpen(true)}\n onBlur={() => setOpen(false)}\n >\n <span className={cn(theme.slots.tooltipTrigger, classNames?.trigger)}>\n {children}\n </span>\n {shouldPortal && tooltipContent ? createPortal(tooltipContent, document.body) : tooltipContent}\n </span>\n );\n}\n","import type { ReactNode } from 'react';\nimport * as DropdownMenu from '@radix-ui/react-dropdown-menu';\n\nimport {\n BaseAvatar,\n BaseButton,\n cn,\n type BaseAppearance,\n} from '../base';\n\nexport type UserAccountMenuRadius =\n | 'default'\n | 'none'\n | 'sm'\n | 'md'\n | 'lg'\n | 'xl'\n | 'full';\n\nexport type UserAccountMenuSide = 'top' | 'right' | 'bottom' | 'left';\nexport type UserAccountMenuTriggerVariant = 'avatar' | 'profile';\n\nexport interface UserAccountMenuUser {\n avatarAlt?: string;\n avatarUrl?: string;\n initials?: string;\n name?: string;\n secondaryText?: ReactNode;\n}\n\nexport interface UserAccountMenuSelectorOption {\n disabled?: boolean;\n icon?: ReactNode;\n label: ReactNode;\n value: string;\n}\n\nexport interface UserAccountMenuSelectorConfig {\n contentWidthClassName?: string;\n disabled?: boolean;\n id?: string;\n icon?: ReactNode;\n label: ReactNode;\n onChange?: (value: string) => void;\n options: UserAccountMenuSelectorOption[];\n value: string;\n visible?: boolean;\n}\n\nexport interface UserAccountMenuItem {\n disabled?: boolean;\n icon?: ReactNode;\n id: string;\n label: ReactNode;\n onSelect?: () => void;\n separatorBefore?: boolean;\n shortcut?: ReactNode;\n tone?: 'default' | 'danger';\n visible?: boolean;\n}\n\nexport interface UserAccountMenuClassNames {\n avatar?: string;\n content?: string;\n dangerItem?: string;\n item?: string;\n itemIcon?: string;\n label?: string;\n root?: string;\n secondaryText?: string;\n separator?: string;\n subContent?: string;\n subTrigger?: string;\n trigger?: string;\n userName?: string;\n}\n\nexport interface UserAccountMenuProps {\n align?: 'start' | 'center' | 'end';\n appearance?: BaseAppearance;\n ariaLabel?: string;\n className?: string;\n classNames?: UserAccountMenuClassNames;\n contentWidthClassName?: string;\n fallbackName?: string;\n items?: UserAccountMenuItem[];\n menuRadius?: UserAccountMenuRadius;\n selectors?: UserAccountMenuSelectorConfig[];\n side?: UserAccountMenuSide;\n sideOffset?: number;\n triggerEndIcon?: ReactNode;\n triggerTitle?: string;\n triggerVariant?: UserAccountMenuTriggerVariant;\n user: UserAccountMenuUser;\n}\n\nconst defaultAppearance: BaseAppearance = {\n preset: 'admin',\n density: 'compact',\n radius: 'lg',\n border: 'subtle',\n background: 'soft',\n};\n\nconst radiusClassNames: Record<UserAccountMenuRadius, string> = {\n default: 'rounded-md',\n none: 'rounded-none',\n sm: 'rounded-sm',\n md: 'rounded-md',\n lg: 'rounded-lg',\n xl: 'rounded-xl',\n full: 'rounded-full',\n};\n\nfunction CheckIcon() {\n return (\n <svg\n aria-hidden=\"true\"\n className=\"h-3 w-3\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2.25\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M20 6 9 17l-5-5\" />\n </svg>\n );\n}\n\nfunction MoreIcon() {\n return (\n <svg\n aria-hidden=\"true\"\n className=\"h-4 w-4\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"1\" />\n <circle cx=\"19\" cy=\"12\" r=\"1\" />\n <circle cx=\"5\" cy=\"12\" r=\"1\" />\n </svg>\n );\n}\n\nfunction getInitials(name?: string) {\n if (!name) return 'U';\n const words = name.trim().split(/\\s+/).filter(Boolean);\n if (!words.length) return 'U';\n if (words.length === 1) return words[0].slice(0, 2).toUpperCase();\n return words\n .slice(0, 2)\n .map((word) => word[0])\n .join('')\n .toUpperCase();\n}\n\nfunction renderIcon(icon: ReactNode, className?: string) {\n if (!icon) return null;\n return (\n <span className={cn('inline-flex h-4 w-4 shrink-0 items-center justify-center', className)}>\n {icon}\n </span>\n );\n}\n\nfunction getCurrentOptionLabel(selector: UserAccountMenuSelectorConfig) {\n return selector.options.find((option) => option.value === selector.value)?.label ?? selector.value;\n}\n\nfunction UserAccountMenuSelector({\n classNames,\n menuRadius,\n selector,\n}: {\n classNames?: UserAccountMenuClassNames;\n menuRadius: UserAccountMenuRadius;\n selector: UserAccountMenuSelectorConfig;\n}) {\n if (selector.visible === false || selector.options.length === 0) return null;\n\n const radiusClass = radiusClassNames[menuRadius];\n const currentLabel = getCurrentOptionLabel(selector);\n\n return (\n <DropdownMenu.Sub>\n <DropdownMenu.SubTrigger\n disabled={selector.disabled}\n className={cn(\n 'relative flex cursor-pointer select-none items-center gap-2 px-2 py-2 text-sm outline-none transition-colors hover:bg-[hsl(var(--accent))] hover:text-[hsl(var(--accent-foreground))] data-[state=open]:bg-[hsl(var(--accent))] data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n radiusClass,\n classNames?.subTrigger,\n )}\n >\n {renderIcon(selector.icon)}\n <span className=\"min-w-0 truncate\">{selector.label}</span>\n <span className=\"ml-auto min-w-0 max-w-[7rem] truncate text-xs text-[hsl(var(--muted-foreground))]\">\n {currentLabel}\n </span>\n </DropdownMenu.SubTrigger>\n <DropdownMenu.Portal>\n <DropdownMenu.SubContent\n sideOffset={8}\n className={cn(\n 'z-50 min-w-40 border border-[hsl(var(--border))] bg-[hsl(var(--popover))] p-1.5 text-[hsl(var(--popover-foreground))] shadow-md animate-in fade-in-0 zoom-in-95',\n radiusClass,\n selector.contentWidthClassName,\n classNames?.subContent,\n )}\n >\n <DropdownMenu.RadioGroup value={selector.value} onValueChange={selector.onChange}>\n {selector.options.map((option) => (\n <DropdownMenu.RadioItem\n key={option.value}\n value={option.value}\n disabled={option.disabled}\n className={cn(\n 'relative flex cursor-pointer select-none items-center gap-2 px-2 py-2 pl-8 text-sm outline-none transition-colors hover:bg-[hsl(var(--accent))] hover:text-[hsl(var(--accent-foreground))] data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n radiusClass,\n classNames?.item,\n )}\n >\n <DropdownMenu.ItemIndicator className=\"absolute left-2 inline-flex h-4 w-4 items-center justify-center\">\n <CheckIcon />\n </DropdownMenu.ItemIndicator>\n {renderIcon(option.icon, classNames?.itemIcon)}\n <span className=\"min-w-0 truncate\">{option.label}</span>\n </DropdownMenu.RadioItem>\n ))}\n </DropdownMenu.RadioGroup>\n </DropdownMenu.SubContent>\n </DropdownMenu.Portal>\n </DropdownMenu.Sub>\n );\n}\n\nexport function UserAccountMenu({\n align = 'end',\n appearance = defaultAppearance,\n ariaLabel,\n className,\n classNames,\n contentWidthClassName = 'w-56',\n fallbackName = 'User',\n items = [],\n menuRadius = 'default',\n selectors = [],\n side = 'bottom',\n sideOffset = 8,\n triggerEndIcon,\n triggerTitle,\n triggerVariant = 'avatar',\n user,\n}: UserAccountMenuProps) {\n const displayName = user.name?.trim() || fallbackName;\n const initials = user.initials ?? getInitials(displayName);\n const radiusClass = radiusClassNames[menuRadius];\n const visibleSelectors = selectors.filter(\n (selector) => selector.visible !== false && selector.options.length > 0,\n );\n const visibleItems = items.filter((item) => item.visible !== false);\n const hasMenuBody = visibleSelectors.length > 0 || visibleItems.length > 0;\n\n const avatar = (\n <BaseAvatar\n appearance={appearance}\n alt={user.avatarAlt ?? displayName}\n className={cn('h-8 w-8', classNames?.avatar)}\n initials={initials}\n name={displayName}\n size=\"sm\"\n src={user.avatarUrl}\n />\n );\n const isProfileTrigger = triggerVariant === 'profile';\n\n return (\n <DropdownMenu.Root>\n <DropdownMenu.Trigger asChild>\n <BaseButton\n appearance={appearance}\n ariaLabel={ariaLabel ?? displayName}\n className={cn(\n isProfileTrigger\n ? 'h-auto w-full justify-start rounded-lg border-transparent bg-transparent px-2 py-2 text-left shadow-none transition-all hover:bg-[hsl(var(--muted))]/60'\n : 'h-9 w-9 overflow-visible rounded-full border-transparent bg-transparent p-0 shadow-none transition-all hover:ring-2 hover:ring-[hsl(var(--ring))]/20',\n className,\n classNames?.root,\n classNames?.trigger,\n )}\n classNames={{\n icon: 'h-8 w-8',\n label: isProfileTrigger ? 'min-w-0 flex-1 text-left' : undefined,\n }}\n endIcon={isProfileTrigger ? (triggerEndIcon ?? <MoreIcon />) : undefined}\n icon={avatar}\n iconOnly={!isProfileTrigger}\n label={\n isProfileTrigger ? (\n <span className=\"flex min-w-0 flex-col items-start\">\n <span className=\"max-w-full truncate text-sm font-medium leading-none text-[hsl(var(--foreground))]\">\n {displayName}\n </span>\n {user.secondaryText ? (\n <span className=\"mt-1 max-w-full truncate text-xs leading-none text-[hsl(var(--muted-foreground))]\">\n {user.secondaryText}\n </span>\n ) : null}\n </span>\n ) : undefined\n }\n title={triggerTitle ?? displayName}\n tone=\"muted\"\n />\n </DropdownMenu.Trigger>\n <DropdownMenu.Portal>\n <DropdownMenu.Content\n align={align}\n side={side}\n sideOffset={sideOffset}\n className={cn(\n 'z-50 border border-[hsl(var(--border))] bg-[hsl(var(--popover))] p-1.5 text-[hsl(var(--popover-foreground))] shadow-md animate-in fade-in-0 zoom-in-95',\n contentWidthClassName,\n radiusClass,\n classNames?.content,\n )}\n >\n <DropdownMenu.Label className={cn('px-2 py-1.5 font-normal', classNames?.label)}>\n <div className=\"flex min-w-0 items-center gap-2\">\n {avatar}\n <div className=\"flex min-w-0 flex-col\">\n <span className={cn('truncate text-sm font-medium leading-none', classNames?.userName)}>\n {displayName}\n </span>\n {user.secondaryText ? (\n <span\n className={cn(\n 'truncate pt-1 text-xs leading-none text-[hsl(var(--muted-foreground))]',\n classNames?.secondaryText,\n )}\n >\n {user.secondaryText}\n </span>\n ) : null}\n </div>\n </div>\n </DropdownMenu.Label>\n\n {hasMenuBody ? (\n <DropdownMenu.Separator\n className={cn('my-1 h-px bg-[hsl(var(--border))]', classNames?.separator)}\n />\n ) : null}\n\n {visibleSelectors.map((selector, index) => (\n <UserAccountMenuSelector\n key={selector.id ?? `selector-${index}`}\n classNames={classNames}\n menuRadius={menuRadius}\n selector={selector}\n />\n ))}\n\n {visibleSelectors.length > 0 && visibleItems.length > 0 ? (\n <DropdownMenu.Separator\n className={cn('my-1 h-px bg-[hsl(var(--border))]', classNames?.separator)}\n />\n ) : null}\n\n {visibleItems.map((item) => (\n <div key={item.id}>\n {item.separatorBefore ? (\n <DropdownMenu.Separator\n className={cn('my-1 h-px bg-[hsl(var(--border))]', classNames?.separator)}\n />\n ) : null}\n <DropdownMenu.Item\n disabled={item.disabled}\n onSelect={item.onSelect}\n className={cn(\n 'relative flex cursor-pointer select-none items-center gap-2 px-2 py-2 text-sm outline-none transition-colors hover:bg-[hsl(var(--accent))] hover:text-[hsl(var(--accent-foreground))] data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n radiusClass,\n item.tone === 'danger' &&\n 'text-[hsl(var(--destructive))] hover:bg-[hsl(var(--accent))] hover:text-[hsl(var(--destructive))] focus:text-[hsl(var(--destructive))]',\n classNames?.item,\n item.tone === 'danger' && classNames?.dangerItem,\n )}\n >\n {renderIcon(item.icon, classNames?.itemIcon)}\n <span className=\"min-w-0 flex-1 truncate\">{item.label}</span>\n {item.shortcut ? (\n <span className=\"ml-3 shrink-0 text-xs text-[hsl(var(--muted-foreground))]\">\n {item.shortcut}\n </span>\n ) : null}\n </DropdownMenu.Item>\n </div>\n ))}\n </DropdownMenu.Content>\n </DropdownMenu.Portal>\n </DropdownMenu.Root>\n );\n}\n","import { useEffect, useRef, useState, type CSSProperties, type ReactNode } from 'react';\nimport * as DropdownMenu from '@radix-ui/react-dropdown-menu';\nimport { BaseButton, BaseTooltip, type BaseAppearance } from '../base';\nexport {\n UserAccountMenu,\n} from './UserAccountMenu';\nexport type {\n UserAccountMenuClassNames,\n UserAccountMenuItem,\n UserAccountMenuProps,\n UserAccountMenuRadius,\n UserAccountMenuSelectorConfig,\n UserAccountMenuSelectorOption,\n UserAccountMenuSide,\n UserAccountMenuTriggerVariant,\n UserAccountMenuUser,\n} from './UserAccountMenu';\n\n// ============================================================\n// cn utility (inline clsx + tailwind-merge–lite for zero deps)\n// ============================================================\nexport function cn(...inputs: (string | undefined | null | false)[]): string {\n return inputs.filter(Boolean).join(' ');\n}\n\n// ============================================================\n// NavButton\n// ============================================================\nexport interface NavButtonProps {\n /** 是否处于激活状态 */\n active?: boolean;\n /** 左侧图标 */\n icon?: ReactNode;\n /** 右侧附加内容(如 chevron) */\n postfix?: ReactNode;\n /** 点击回调 */\n onClick?: () => void;\n className?: string;\n children: ReactNode;\n}\n\nexport function NavButton({ active, icon, postfix, onClick, className, children }: NavButtonProps) {\n return (\n <div\n className={cn(\n 'flex w-full cursor-pointer select-none items-center gap-2 rounded-xl border p-2 text-xs text-[hsl(var(--foreground))] transition-colors',\n active\n ? 'border-[hsl(var(--input))] bg-[hsl(var(--muted))] font-bold'\n : 'border-transparent hover:border-[hsl(var(--input))]/60 hover:bg-[hsl(var(--muted))]/60',\n className,\n )}\n onClick={onClick}\n >\n <div className=\"w-[20px] [&_svg]:h-[16px] [&_svg]:w-[16px]\">{icon}</div>\n <span className=\"text-sm\">{children}</span>\n {postfix}\n </div>\n );\n}\n\n// ============================================================\n// AppHeader\n// ============================================================\nexport interface HeaderTab {\n id: string;\n label: string;\n}\n\nexport interface AppHeaderLogo {\n /** Logo 图片 URL,若为空则显示 fallback */\n url?: string;\n /** 品牌名称 */\n title: string;\n /** 点击 Logo 回调 */\n onClick?: () => void;\n}\n\nexport interface AppHeaderUser {\n name?: string;\n email?: string;\n photo?: string;\n}\n\nexport interface AppHeaderProps {\n /** 品牌 Logo */\n logo: AppHeaderLogo;\n /** 导航 tabs */\n tabs?: HeaderTab[];\n /** 当前激活的 tab id */\n activeTab?: string;\n /** tab 切换回调 */\n onTabChange?: (tabId: string) => void;\n /** 用户信息 */\n user?: AppHeaderUser;\n /** 退出登录回调 */\n onLogout?: () => void;\n /** 退出登录文案 */\n logoutLabel?: string;\n /** 用户菜单中的额外菜单项(在退出登录按钮之前渲染) */\n userMenuItems?: ReactNode;\n /** header 右侧额外内容 */\n extra?: ReactNode;\n className?: string;\n}\n\nexport function AppHeader({\n logo,\n tabs,\n activeTab,\n onTabChange,\n user,\n onLogout,\n logoutLabel = '退出登录',\n userMenuItems,\n extra,\n className,\n}: AppHeaderProps) {\n const getUserInitials = (name: string) =>\n name.split(' ').map((n) => n[0]).join('').toUpperCase().slice(0, 2);\n\n return (\n <header\n className={cn(\n 'flex h-[72px] w-full shrink-0 items-center justify-between gap-4 rounded-xl border border-[hsl(var(--input))] bg-[hsl(var(--background))] p-[var(--global-spacing,0.75rem)]',\n className,\n )}\n >\n {/* Logo */}\n <div\n className=\"flex shrink-0 cursor-pointer items-center gap-2\"\n onClick={logo.onClick}\n >\n <div\n className={cn(\n 'flex h-8 w-8 items-center justify-center rounded-lg overflow-hidden',\n logo.url ? 'bg-transparent' : 'bg-[hsl(var(--primary))] text-[hsl(var(--primary-foreground))]',\n )}\n >\n {logo.url ? (\n <img src={logo.url} alt={logo.title} className=\"h-full w-full object-contain\" />\n ) : (\n <span className=\"text-sm font-bold\">{logo.title.charAt(0)}</span>\n )}\n </div>\n <span className=\"text-lg font-semibold whitespace-nowrap\">{logo.title}</span>\n </div>\n\n {/* Separator + Tabs */}\n {tabs && tabs.length > 0 && (\n <>\n <div className=\"h-1/2 w-px bg-[hsl(var(--border))]\" />\n <div className=\"flex flex-1 items-center\">\n <div className=\"inline-flex h-9 items-center gap-1 rounded-md bg-transparent p-1\">\n {tabs.map((tab) => (\n <button\n key={tab.id}\n className={cn(\n 'inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium transition-all',\n tab.id === activeTab\n ? 'bg-[hsl(var(--muted))] text-[hsl(var(--foreground))] shadow-sm'\n : 'text-[hsl(var(--muted-foreground))] hover:bg-[hsl(var(--muted))]/50',\n )}\n onClick={() => onTabChange?.(tab.id)}\n >\n {tab.label}\n </button>\n ))}\n </div>\n </div>\n </>\n )}\n {(!tabs || tabs.length === 0) && <div className=\"flex-1\" />}\n\n {/* Right side */}\n <div className=\"flex shrink-0 items-center gap-4\">\n {extra}\n {user && (\n <DropdownMenu.Root>\n <DropdownMenu.Trigger asChild>\n <button className=\"flex h-8 w-8 items-center justify-center rounded-full hover:ring-2 hover:ring-[hsl(var(--ring))]/20 transition-all overflow-hidden focus-visible:outline-none\">\n {user.photo ? (\n <img src={user.photo} alt={user.name} className=\"h-8 w-8 rounded-full object-cover\" />\n ) : (\n <div className=\"flex h-8 w-8 items-center justify-center rounded-full bg-[hsl(var(--muted))] text-xs font-medium\">\n {user.name ? getUserInitials(user.name) : 'U'}\n </div>\n )}\n </button>\n </DropdownMenu.Trigger>\n <DropdownMenu.Portal>\n <DropdownMenu.Content\n className=\"z-50 w-52 rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--popover))] p-1 text-[hsl(var(--popover-foreground))] shadow-md animate-in fade-in-0 zoom-in-95\"\n sideOffset={5}\n align=\"end\"\n >\n {/* User info label */}\n <DropdownMenu.Label className=\"flex items-center gap-2 px-2 py-1.5 font-normal\">\n {user.photo ? (\n <img src={user.photo} alt={user.name} className=\"h-8 w-8 rounded-full object-cover\" />\n ) : (\n <div className=\"flex h-8 w-8 items-center justify-center rounded-full bg-[hsl(var(--muted))] text-xs font-medium\">\n {user.name ? getUserInitials(user.name) : 'U'}\n </div>\n )}\n <div className=\"flex flex-col\">\n <span className=\"text-sm font-medium leading-none\">{user.name}</span>\n {user.email && <span className=\"text-xs text-[hsl(var(--muted-foreground))] leading-none mt-1\">{user.email}</span>}\n </div>\n </DropdownMenu.Label>\n\n <DropdownMenu.Separator className=\"h-px bg-[hsl(var(--border))] my-1\" />\n\n <DropdownMenu.Group>\n {userMenuItems}\n\n {/* Logout */}\n <DropdownMenu.Item\n className=\"relative flex cursor-pointer select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm text-[hsl(var(--destructive))] outline-none transition-colors hover:bg-[hsl(var(--accent))]\"\n onSelect={() => onLogout?.()}\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\"><path d=\"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\"/><polyline points=\"16 17 21 12 16 7\"/><line x1=\"21\" y1=\"12\" x2=\"9\" y2=\"12\"/></svg>\n {logoutLabel}\n </DropdownMenu.Item>\n </DropdownMenu.Group>\n </DropdownMenu.Content>\n </DropdownMenu.Portal>\n </DropdownMenu.Root>\n )}\n </div>\n </header>\n );\n}\n\n// ============================================================\n// AppSidebar\n// ============================================================\nexport interface SidebarNavItem {\n id: string;\n label: string;\n icon?: ReactNode;\n /** 如果有 children 则为分组,点击展开/折叠 */\n children?: SidebarNavItem[];\n}\n\nexport interface SidebarAccount {\n name?: string;\n photo?: string;\n}\n\nexport interface AppSidebarProps {\n /** Logo */\n logo?: AppHeaderLogo;\n /** 导航菜单 */\n navItems: SidebarNavItem[];\n /** 当前路径/激活的 item id */\n activeItemId?: string;\n /** 点击导航项回调 */\n onNavigate?: (itemId: string) => void;\n /** 账户信息 */\n account?: SidebarAccount;\n /** 退出登录回调 */\n onLogout?: () => void;\n /** 退出登录文案 */\n logoutLabel?: string;\n /** 底部额外内容(如版本号) */\n footer?: ReactNode;\n /** 默认展开的分组 id 列表 */\n defaultExpandedGroups?: string[];\n className?: string;\n}\n\nexport function AppSidebar({\n logo,\n navItems,\n activeItemId,\n onNavigate,\n account,\n onLogout,\n logoutLabel = '退出登录',\n footer,\n defaultExpandedGroups,\n className,\n}: AppSidebarProps) {\n return (\n <div\n className={cn(\n 'flex w-[13.7rem] shrink-0 flex-col justify-between gap-[var(--global-spacing,0.75rem)] overflow-y-hidden rounded-xl border border-[hsl(var(--input))] bg-[hsl(var(--background))] p-5',\n className,\n )}\n >\n {/* Logo */}\n {logo && (\n <div className=\"flex shrink-0 cursor-pointer items-center gap-2\" onClick={logo.onClick}>\n <div\n className={cn(\n 'flex h-8 w-8 items-center justify-center rounded-lg overflow-hidden',\n logo.url ? 'bg-transparent' : 'bg-[hsl(var(--primary))] text-[hsl(var(--primary-foreground))]',\n )}\n >\n {logo.url ? (\n <img src={logo.url} alt={logo.title} className=\"h-full w-full object-contain\" />\n ) : (\n <span className=\"text-sm font-bold\">{logo.title.charAt(0)}</span>\n )}\n </div>\n <span className=\"text-lg font-semibold whitespace-nowrap\">{logo.title}</span>\n </div>\n )}\n\n {/* Navigation */}\n <SidebarNavList\n items={navItems}\n activeItemId={activeItemId}\n onNavigate={onNavigate}\n defaultExpandedGroups={defaultExpandedGroups}\n />\n\n {/* Account Section */}\n {(account || footer) && (\n <div className=\"flex flex-col gap-2\">\n {account && (\n <div className=\"flex w-full flex-col gap-2 rounded-lg bg-[hsl(var(--muted))] p-2 shadow-sm\">\n <div className=\"flex w-full items-center justify-between px-3 py-1\">\n <div className=\"flex items-center gap-2\">\n {account.photo ? (\n <img src={account.photo} alt={account.name} className=\"h-5 w-5 rounded-full object-cover\" />\n ) : (\n <div className=\"flex h-5 w-5 items-center justify-center rounded-full bg-[hsl(var(--muted))] text-[10px] font-medium\">\n {account.name ? account.name.charAt(0).toUpperCase() : 'U'}\n </div>\n )}\n <span className=\"text-xs font-medium truncate max-w-[100px]\">{account.name}</span>\n </div>\n {onLogout && (\n <button\n onClick={onLogout}\n className=\"flex items-center justify-center text-[hsl(var(--destructive))] hover:opacity-80 transition-opacity\"\n title={logoutLabel}\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\"><path d=\"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\"/><polyline points=\"16 17 21 12 16 7\"/><line x1=\"21\" y1=\"12\" x2=\"9\" y2=\"12\"/></svg>\n </button>\n )}\n </div>\n </div>\n )}\n {footer}\n </div>\n )}\n </div>\n );\n}\n\n// ============================================================\n// SidebarNavList (internal accordion-style nav)\n// ============================================================\ninterface SidebarNavListProps {\n items: SidebarNavItem[];\n activeItemId?: string;\n onNavigate?: (itemId: string) => void;\n defaultExpandedGroups?: string[];\n}\n\nfunction SidebarNavList({ items, activeItemId, onNavigate, defaultExpandedGroups }: SidebarNavListProps) {\n const [expanded, setExpanded] = useState<Record<string, boolean>>(() => {\n const map: Record<string, boolean> = {};\n (defaultExpandedGroups ?? items.map((i) => i.id)).forEach((id) => { map[id] = true; });\n return map;\n });\n const [localActiveItemId, setLocalActiveItemId] = useState<string | undefined>(activeItemId);\n\n useEffect(() => {\n if (activeItemId !== undefined) {\n setLocalActiveItemId(activeItemId);\n }\n }, [activeItemId]);\n\n const toggle = (id: string) => {\n setExpanded((prev: Record<string, boolean>) => ({ ...prev, [id]: !prev[id] }));\n };\n const resolvedActiveItemId = activeItemId ?? localActiveItemId;\n\n return (\n <div className=\"h-full flex-1 overflow-y-auto\" style={{ scrollbarWidth: 'none', msOverflowStyle: 'none' }}>\n <style>{`.monkeys-sidebar-nav::-webkit-scrollbar { display: none; }`}</style>\n <div className=\"monkeys-sidebar-nav flex w-full flex-col gap-2 text-xs text-[hsl(var(--foreground))]\">\n {items.map((item) => {\n if (item.children && item.children.length > 0) {\n const isExpanded = expanded[item.id] ?? true;\n return (\n <div key={item.id}>\n <NavButton\n icon={item.icon}\n onClick={() => toggle(item.id)}\n postfix={\n <div className=\"flex flex-1 justify-end\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\" height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\"\n className=\"shrink-0 text-[hsl(var(--foreground))] transition-transform duration-200\"\n style={{ transform: isExpanded ? 'rotate(90deg)' : 'rotate(0deg)' }}\n >\n <path d=\"m9 18 6-6-6-6\"/>\n </svg>\n </div>\n }\n >\n {item.label}\n </NavButton>\n {isExpanded && (\n <div className=\"flex flex-col gap-1 mt-1\">\n {item.children.map((child) => (\n <NavButton\n key={child.id}\n active={child.id === resolvedActiveItemId}\n onClick={() => {\n setLocalActiveItemId(child.id);\n onNavigate?.(child.id);\n }}\n >\n {child.label}\n </NavButton>\n ))}\n </div>\n )}\n </div>\n );\n }\n return (\n <NavButton\n key={item.id}\n icon={item.icon}\n active={item.id === resolvedActiveItemId}\n onClick={() => {\n setLocalActiveItemId(item.id);\n onNavigate?.(item.id);\n }}\n >\n {item.label}\n </NavButton>\n );\n })}\n </div>\n </div>\n );\n}\n\n// ============================================================\n// AppLayout\n// ============================================================\nexport interface AppLayoutProps {\n /** header 组件 */\n header?: ReactNode;\n /** sidebar 组件 */\n sidebar?: ReactNode;\n /** 主内容 */\n children: ReactNode;\n /** 是否 flush 布局(无内边距) */\n flush?: boolean;\n className?: string;\n}\n\nexport function AppLayout({ header, sidebar, children, flush = false, className }: AppLayoutProps) {\n return (\n <div className={cn(\n 'flex h-screen flex-col gap-[var(--global-spacing,0.75rem)] overflow-hidden p-[var(--global-spacing,0.75rem)]',\n className,\n )} style={{ backgroundColor: 'hsl(var(--muted))' }}>\n {header ? header : null}\n <div className=\"flex flex-1 gap-[var(--global-spacing,0.75rem)] overflow-hidden min-h-0\">\n {sidebar ? sidebar : null}\n <main className={cn(\n 'flex-1 min-h-0 overflow-hidden rounded-xl border border-[hsl(var(--input))] bg-[hsl(var(--background))]',\n !flush && 'overflow-y-auto',\n )}>\n {flush ? children : (\n <div className=\"h-full overflow-y-auto\">\n {children}\n </div>\n )}\n </main>\n </div>\n </div>\n );\n}\n\n// ============================================================\n// NavigationLayout\n// ============================================================\nexport type NavigationMode = 'sidebar' | 'headbar';\nexport type HeadbarLayoutMode = 'boxed' | 'full-bleed';\nexport type HeadbarMenuRadius = 'default' | 'none' | 'sm' | 'md' | 'lg' | 'xl' | 'full';\nexport type HeadbarNavPosition = 'left' | 'center' | 'right';\n\nexport interface LayoutNavItem {\n id: string;\n label: ReactNode;\n headbarLabel?: ReactNode;\n icon?: ReactNode;\n children?: LayoutNavItem[];\n}\n\ninterface NavigationLayoutAction {\n id: string;\n label: ReactNode;\n title?: string;\n icon?: ReactNode;\n onClick?: () => void;\n}\n\nexport interface HeadbarLayout {\n brandTitle?: ReactNode;\n heightPx?: number;\n layoutMode?: HeadbarLayoutMode;\n menuRadius?: HeadbarMenuRadius;\n navPosition?: HeadbarNavPosition;\n}\n\nexport interface NavigationLayoutProps {\n activeItemId?: string;\n activeRootId?: string;\n allowModeSwitch?: boolean;\n accountMenu?: ReactNode;\n children: ReactNode;\n className?: string;\n collapsedSidebarAccountMenu?: ReactNode;\n collapsedSidebarWidth?: string;\n defaultMode?: NavigationMode;\n defaultSidebarCollapsed?: boolean;\n expandedSidebarWidth?: string;\n expandSidebarLabel?: string;\n flush?: boolean;\n headbarActions?: ReactNode;\n headbarLayout?: HeadbarLayout;\n logo?: AppHeaderLogo;\n mode?: NavigationMode;\n navItems: LayoutNavItem[];\n onModeChange?: (mode: NavigationMode) => void;\n onNavigate?: (itemId: string) => void;\n onSidebarCollapsedChange?: (collapsed: boolean) => void;\n renderHeadbarExtra?: ReactNode;\n collapseSidebarLabel?: string;\n sidebarCollapsed?: boolean;\n sidebarAccountMenu?: ReactNode;\n sidebarFooter?: ReactNode;\n sidebarHeader?: ReactNode;\n switchToHeadbarLabel?: string;\n switchToSidebarLabel?: string;\n}\n\nconst NAVIGATION_LAYOUT_SIDEBAR_EXPANDED_WIDTH = '13.7rem';\nconst NAVIGATION_LAYOUT_SIDEBAR_COLLAPSED_WIDTH = '4.25rem';\nconst NAVIGATION_LAYOUT_TRANSITION_TIMING = 'cubic-bezier(0.22, 1, 0.36, 1)';\nconst NAVIGATION_LAYOUT_HEADBAR_DEFAULT_HEIGHT_PX = 72;\nconst NAVIGATION_LAYOUT_HEADBAR_MIN_HEIGHT_PX = 56;\nconst NAVIGATION_LAYOUT_HEADBAR_MAX_HEIGHT_PX = 120;\nconst NAVIGATION_LAYOUT_HEADBAR_COMPACT_HEIGHT_THRESHOLD_PX = 64;\nconst NAVIGATION_LAYOUT_HEADBAR_BOXED_VERTICAL_PADDING_PX = 12;\nconst NAVIGATION_LAYOUT_HEADBAR_COMPACT_VERTICAL_PADDING_PX = 8;\nconst NAVIGATION_LAYOUT_HEADBAR_LOGO_DEFAULT_SIZE_PX = 44;\nconst NAVIGATION_LAYOUT_HEADBAR_LOGO_COMPACT_SIZE_PX = 36;\nconst NAVIGATION_LAYOUT_DEFAULT_APPEARANCE: BaseAppearance = {\n preset: 'admin',\n density: 'compact',\n radius: 'lg',\n border: 'subtle',\n background: 'soft',\n};\n\nconst NAVIGATION_LAYOUT_MENU_RADIUS_CLASS_MAP: Record<\n Exclude<HeadbarMenuRadius, 'default'>,\n { all: string; left: string; right: string }\n> = {\n none: { all: 'rounded-none', left: '!rounded-none', right: '!rounded-none' },\n sm: { all: 'rounded-sm', left: '!rounded-l-sm !rounded-r-none', right: '!rounded-l-none !rounded-r-sm' },\n md: { all: 'rounded-md', left: '!rounded-l-md !rounded-r-none', right: '!rounded-l-none !rounded-r-md' },\n lg: { all: 'rounded-lg', left: '!rounded-l-lg !rounded-r-none', right: '!rounded-l-none !rounded-r-lg' },\n xl: { all: 'rounded-xl', left: '!rounded-l-xl !rounded-r-none', right: '!rounded-l-none !rounded-r-xl' },\n full: { all: 'rounded-full', left: '!rounded-l-full !rounded-r-none', right: '!rounded-l-none !rounded-r-full' },\n};\n\nfunction clampHeadbarHeight(value?: number) {\n if (typeof value !== 'number' || !Number.isFinite(value)) return NAVIGATION_LAYOUT_HEADBAR_DEFAULT_HEIGHT_PX;\n return Math.min(NAVIGATION_LAYOUT_HEADBAR_MAX_HEIGHT_PX, Math.max(NAVIGATION_LAYOUT_HEADBAR_MIN_HEIGHT_PX, Math.round(value)));\n}\n\nfunction getHeadbarVerticalPaddingPx(heightPx: number) {\n return heightPx <= NAVIGATION_LAYOUT_HEADBAR_COMPACT_HEIGHT_THRESHOLD_PX\n ? NAVIGATION_LAYOUT_HEADBAR_COMPACT_VERTICAL_PADDING_PX\n : NAVIGATION_LAYOUT_HEADBAR_BOXED_VERTICAL_PADDING_PX;\n}\n\nfunction getHeadbarLogoSizePx(heightPx: number) {\n return heightPx <= NAVIGATION_LAYOUT_HEADBAR_COMPACT_HEIGHT_THRESHOLD_PX\n ? NAVIGATION_LAYOUT_HEADBAR_LOGO_COMPACT_SIZE_PX\n : NAVIGATION_LAYOUT_HEADBAR_LOGO_DEFAULT_SIZE_PX;\n}\n\nfunction getHeadbarMenuRadiusClass(\n menuRadius: HeadbarMenuRadius = 'default',\n part: 'all' | 'left' | 'right' = 'all',\n) {\n if (menuRadius === 'default') {\n if (part === 'left') return 'rounded-l-lg rounded-r-none';\n if (part === 'right') return 'rounded-l-none rounded-r-lg';\n return 'rounded-lg';\n }\n return NAVIGATION_LAYOUT_MENU_RADIUS_CLASS_MAP[menuRadius][part];\n}\n\nfunction getHeadbarFrameClass(layoutMode: HeadbarLayoutMode = 'boxed') {\n return layoutMode === 'full-bleed'\n ? 'relative z-40 grid w-full shrink-0 grid-cols-[minmax(0,1fr)_minmax(0,max-content)_minmax(0,1fr)] items-center gap-4 rounded-none border-b border-x-0 border-t-0 border-[hsl(var(--input))] bg-[hsl(var(--background))] p-[var(--global-spacing,0.75rem)]'\n : 'relative z-40 grid w-full shrink-0 grid-cols-[minmax(0,1fr)_minmax(0,max-content)_minmax(0,1fr)] items-center gap-4 rounded-xl border border-[hsl(var(--input))] bg-[hsl(var(--background))] p-[var(--global-spacing,0.75rem)]';\n}\n\nfunction getHeadbarFrameStyle(\n layoutMode: HeadbarLayoutMode = 'boxed',\n heightPx: number,\n): CSSProperties {\n const verticalPaddingPx = getHeadbarVerticalPaddingPx(heightPx);\n const style: CSSProperties = {\n height: `${heightPx}px`,\n minHeight: `${heightPx}px`,\n paddingTop: `${verticalPaddingPx}px`,\n paddingBottom: `${verticalPaddingPx}px`,\n };\n\n if (layoutMode === 'full-bleed') {\n style.marginLeft = 'calc(var(--global-spacing,0.75rem) * -1)';\n style.marginRight = 'calc(var(--global-spacing,0.75rem) * -1)';\n style.marginTop = 'calc(var(--global-spacing,0.75rem) * -1)';\n style.width = 'calc(100% + (var(--global-spacing,0.75rem) * 2))';\n }\n\n return style;\n}\n\nfunction getHeadbarNavClass(navPosition: HeadbarNavPosition = 'center') {\n if (navPosition === 'left') return 'justify-start';\n if (navPosition === 'right') return 'justify-end';\n return 'justify-center';\n}\n\nfunction findNavigationRootId(items: LayoutNavItem[], activeItemId?: string): string | undefined {\n for (const item of items) {\n if (item.id === activeItemId) return item.id;\n if (item.children?.some((child) => child.id === activeItemId)) return item.id;\n }\n return activeItemId;\n}\n\nfunction getNavigationActionTitle(action: NavigationLayoutAction) {\n return action.title || (typeof action.label === 'string' ? action.label : undefined);\n}\n\nfunction NavigationLayoutActionButtons({\n actions,\n compact,\n}: {\n actions: NavigationLayoutAction[];\n compact: boolean;\n}) {\n if (!actions.length) return null;\n\n if (compact) {\n return (\n <div className=\"flex flex-col items-center gap-2\">\n {actions.map((action) => {\n const title = getNavigationActionTitle(action);\n return (\n <BaseTooltip\n key={action.id}\n appearance={NAVIGATION_LAYOUT_DEFAULT_APPEARANCE}\n content={action.label}\n placement=\"right\"\n portal\n >\n <BaseButton\n appearance={NAVIGATION_LAYOUT_DEFAULT_APPEARANCE}\n tone=\"muted\"\n iconOnly\n icon={action.icon}\n onClick={action.onClick}\n title={title}\n ariaLabel={title}\n className={cn(\n 'h-10 w-10 rounded-lg border-transparent text-[hsl(var(--muted-foreground))] shadow-none',\n 'hover:-translate-y-0.5 hover:border-[hsl(var(--input))]/80 hover:bg-[hsl(var(--muted))] hover:text-[hsl(var(--foreground))]',\n 'active:translate-y-0 active:scale-[0.96]',\n )}\n />\n </BaseTooltip>\n );\n })}\n </div>\n );\n }\n\n return (\n <div className=\"flex flex-col gap-2\">\n {actions.map((action) => (\n <BaseButton\n key={action.id}\n appearance={NAVIGATION_LAYOUT_DEFAULT_APPEARANCE}\n tone=\"muted\"\n icon={action.icon}\n label={<span className=\"truncate\">{action.label}</span>}\n onClick={action.onClick}\n title={getNavigationActionTitle(action)}\n className={cn(\n 'h-9 w-full justify-start gap-2.5 rounded-lg border-transparent px-3 text-left text-[13px] text-[hsl(var(--muted-foreground))] shadow-none',\n 'hover:-translate-y-0.5 hover:border-[hsl(var(--input))]/80 hover:bg-[hsl(var(--muted))]/70 hover:text-[hsl(var(--foreground))]',\n 'active:translate-y-0 active:scale-[0.985]',\n )}\n />\n ))}\n </div>\n );\n}\n\nfunction SidebarNavigationList({\n activeItemId,\n items,\n onNavigate,\n revealRequest,\n}: {\n activeItemId?: string;\n items: LayoutNavItem[];\n onNavigate?: (itemId: string) => void;\n revealRequest?: { id: string; nonce: number } | null;\n}) {\n const navRef = useRef<HTMLDivElement | null>(null);\n const [expandedByRoot, setExpandedByRoot] = useState<Record<string, boolean>>({});\n\n const toggleRoot = (id: string) => {\n setExpandedByRoot((current) => ({\n ...current,\n [id]: !current[id],\n }));\n };\n\n useEffect(() => {\n if (!revealRequest) return;\n setExpandedByRoot((current) => ({\n ...current,\n [revealRequest.id]: true,\n }));\n\n const frameId = window.requestAnimationFrame(() => {\n const targetElement = navRef.current?.querySelector(\n `[data-navigation-sidebar-root-id=\"${CSS.escape(revealRequest.id)}\"]`,\n );\n if (targetElement instanceof HTMLElement) {\n targetElement.scrollIntoView({ behavior: 'auto', block: 'nearest', inline: 'nearest' });\n }\n });\n\n return () => window.cancelAnimationFrame(frameId);\n }, [revealRequest]);\n\n return (\n <div className=\"h-full flex-1 overflow-y-auto\" style={{ scrollbarWidth: 'none', msOverflowStyle: 'none' }}>\n <style>{`.monkeys-navigation-sidebar-nav::-webkit-scrollbar { display: none; }`}</style>\n <div\n ref={navRef}\n className=\"monkeys-navigation-sidebar-nav flex w-full flex-col gap-2 text-xs text-[hsl(var(--foreground))]\"\n >\n {items.map((item) => {\n const isGroup = Boolean(item.children?.length);\n const isExpanded = Boolean(expandedByRoot[item.id]);\n const isActive = activeItemId === item.id;\n\n if (isGroup) {\n return (\n <div key={item.id} data-navigation-sidebar-root-id={item.id}>\n <NavButton\n icon={item.icon}\n onClick={() => toggleRoot(item.id)}\n postfix={\n <div className=\"flex flex-1 justify-end\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"shrink-0 text-[hsl(var(--foreground))] transition-transform duration-200\"\n style={{ transform: isExpanded ? 'rotate(90deg)' : 'rotate(0deg)' }}\n >\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n </div>\n }\n >\n {item.label}\n </NavButton>\n {isExpanded ? (\n <div className=\"mt-1 flex flex-col gap-1\">\n {item.children?.map((child) => (\n <NavButton\n key={child.id}\n active={activeItemId === child.id}\n onClick={() => onNavigate?.(child.id)}\n >\n {child.label}\n </NavButton>\n ))}\n </div>\n ) : null}\n </div>\n );\n }\n\n return (\n <div key={item.id} data-navigation-sidebar-root-id={item.id}>\n <NavButton active={isActive} icon={item.icon} onClick={() => onNavigate?.(item.id)}>\n {item.label}\n </NavButton>\n </div>\n );\n })}\n </div>\n </div>\n );\n}\n\nfunction SidebarBrand({\n collapsed,\n logo,\n title,\n}: {\n collapsed?: boolean;\n logo?: AppHeaderLogo;\n title?: ReactNode;\n}) {\n if (!logo) return null;\n\n const brandTitle = title ?? logo.title;\n const logoMark = (\n <div\n className={cn(\n 'flex h-9 w-9 shrink-0 items-center justify-center overflow-hidden rounded-lg',\n logo.url\n ? 'bg-transparent'\n : 'bg-[hsl(var(--primary))] text-[hsl(var(--primary-foreground))]',\n )}\n >\n {logo.url ? (\n <img src={logo.url} alt={logo.title} className=\"h-full w-full object-contain\" />\n ) : (\n <span className=\"text-sm font-bold\">{logo.title.charAt(0)}</span>\n )}\n </div>\n );\n\n if (collapsed) {\n return (\n <BaseTooltip\n appearance={NAVIGATION_LAYOUT_DEFAULT_APPEARANCE}\n content={brandTitle}\n placement=\"right\"\n portal\n >\n <BaseButton\n appearance={NAVIGATION_LAYOUT_DEFAULT_APPEARANCE}\n ariaLabel={typeof brandTitle === 'string' ? brandTitle : logo.title}\n className=\"h-10 w-10 rounded-lg border-transparent bg-transparent p-0 shadow-none hover:bg-[hsl(var(--muted))]/60\"\n icon={logoMark}\n iconOnly\n onClick={logo.onClick}\n title={typeof brandTitle === 'string' ? brandTitle : logo.title}\n tone=\"muted\"\n />\n </BaseTooltip>\n );\n }\n\n return (\n <BaseButton\n appearance={NAVIGATION_LAYOUT_DEFAULT_APPEARANCE}\n ariaLabel={logo.title}\n className=\"h-auto w-full justify-start gap-3 border-transparent bg-transparent p-0 text-left shadow-none hover:bg-transparent\"\n classNames={{ icon: 'h-9 w-9' }}\n icon={logoMark}\n label={\n <span className=\"min-w-0 truncate text-sm font-semibold text-[hsl(var(--foreground))]\">\n {brandTitle}\n </span>\n }\n onClick={logo.onClick}\n title={typeof brandTitle === 'string' ? brandTitle : logo.title}\n tone=\"muted\"\n />\n );\n}\n\nfunction Sidebar({\n accountMenu,\n activeItemId,\n actions = [],\n collapsed,\n collapsedAccountMenu,\n footer,\n header,\n items,\n logo,\n onCollapsedChange,\n onNavigate,\n onRevealRoot,\n revealRequest,\n title,\n}: {\n accountMenu?: ReactNode;\n activeItemId?: string;\n actions?: NavigationLayoutAction[];\n collapsed?: boolean;\n collapsedAccountMenu?: ReactNode;\n footer?: ReactNode;\n header?: ReactNode;\n items: LayoutNavItem[];\n logo?: AppHeaderLogo;\n onCollapsedChange?: (collapsed: boolean) => void;\n onNavigate?: (itemId: string) => void;\n onRevealRoot?: (rootId: string) => void;\n revealRequest?: { id: string; nonce: number } | null;\n title?: ReactNode;\n}) {\n if (collapsed) {\n const activeRootId = findNavigationRootId(items, activeItemId);\n\n return (\n <div className=\"flex h-full min-h-0 w-full flex-col rounded-xl border border-[hsl(var(--input))] bg-[hsl(var(--background))] p-2 shadow-sm\">\n <div className=\"mb-3 flex shrink-0 justify-center\">\n {header ?? <SidebarBrand collapsed logo={logo} title={title} />}\n </div>\n <div\n className=\"flex min-h-0 flex-1 flex-col items-center gap-2 overflow-y-auto pb-3\"\n style={{ scrollbarWidth: 'none', msOverflowStyle: 'none' }}\n >\n {items.map((item) => {\n const isActive = activeRootId === item.id;\n return (\n <BaseTooltip\n key={item.id}\n appearance={NAVIGATION_LAYOUT_DEFAULT_APPEARANCE}\n content={item.label}\n placement=\"right\"\n portal\n >\n <BaseButton\n appearance={NAVIGATION_LAYOUT_DEFAULT_APPEARANCE}\n tone=\"muted\"\n active={isActive}\n iconOnly\n icon={item.icon}\n onClick={() => {\n onRevealRoot?.(item.id);\n onCollapsedChange?.(false);\n if (item.children?.length) return;\n onNavigate?.(item.id);\n }}\n title={typeof item.label === 'string' ? item.label : undefined}\n ariaLabel={typeof item.label === 'string' ? item.label : item.id}\n className={cn(\n 'h-10 w-10 rounded-lg border text-[hsl(var(--muted-foreground))] shadow-none',\n 'hover:-translate-y-0.5 active:translate-y-0 active:scale-[0.96]',\n isActive\n ? 'border-[hsl(var(--input))] bg-[hsl(var(--muted))] text-[hsl(var(--foreground))] shadow-sm'\n : 'border-transparent hover:border-[hsl(var(--input))]/80 hover:bg-[hsl(var(--muted))]/70 hover:text-[hsl(var(--foreground))]',\n )}\n />\n </BaseTooltip>\n );\n })}\n </div>\n <div className=\"-mx-2 mt-2 border-t border-[hsl(var(--input))] bg-[hsl(var(--background))] px-2 pt-2.5 pb-0.5\">\n <NavigationLayoutActionButtons actions={actions} compact />\n {collapsedAccountMenu ? (\n <div className=\"mt-2 flex justify-center border-t border-[hsl(var(--input))] pt-2\">\n {collapsedAccountMenu}\n </div>\n ) : null}\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"flex h-full min-h-0 w-full flex-col justify-between gap-0 overflow-y-hidden rounded-xl border border-[hsl(var(--input))] bg-[hsl(var(--background))] px-5 pt-5 pb-1.5\">\n <div className=\"mb-4 shrink-0\">\n {header ?? <SidebarBrand logo={logo} title={title} />}\n </div>\n <SidebarNavigationList\n activeItemId={activeItemId}\n items={items}\n onNavigate={onNavigate}\n revealRequest={revealRequest}\n />\n <div className=\"-mx-5 mt-2 border-t border-[hsl(var(--input))] bg-[hsl(var(--background))] px-4 pt-2.5 pb-1\">\n <NavigationLayoutActionButtons actions={actions} compact={false} />\n {footer}\n {accountMenu ? (\n <div className=\"mt-2 border-t border-[hsl(var(--input))] pt-2\">\n {accountMenu}\n </div>\n ) : null}\n </div>\n </div>\n );\n}\n\nfunction HeadbarChevronIcon({ open }: { open: boolean }) {\n return (\n <svg\n aria-hidden=\"true\"\n className={cn('h-4 w-4 shrink-0 transition-transform duration-200', open && 'rotate-180')}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n );\n}\n\nfunction HeadbarNavMenuItem({\n activeItemId,\n isActive,\n item,\n label,\n menuButtonRadiusClass,\n menuContentRadiusClass,\n menuItemRadiusClass,\n onNavigate,\n}: {\n activeItemId?: string;\n isActive: boolean;\n item: LayoutNavItem;\n label: ReactNode;\n menuButtonRadiusClass: string;\n menuContentRadiusClass: string;\n menuItemRadiusClass: string;\n onNavigate?: (itemId: string) => void;\n}) {\n const [open, setOpen] = useState(false);\n const closeTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const clearCloseTimer = () => {\n if (!closeTimerRef.current) return;\n clearTimeout(closeTimerRef.current);\n closeTimerRef.current = null;\n };\n\n const openMenu = () => {\n clearCloseTimer();\n setOpen(true);\n };\n\n const scheduleCloseMenu = () => {\n clearCloseTimer();\n closeTimerRef.current = setTimeout(() => {\n setOpen(false);\n closeTimerRef.current = null;\n }, 120);\n };\n\n useEffect(() => clearCloseTimer, []);\n\n return (\n <DropdownMenu.Root modal={false} open={open} onOpenChange={setOpen}>\n <DropdownMenu.Trigger asChild>\n <BaseButton\n appearance={NAVIGATION_LAYOUT_DEFAULT_APPEARANCE}\n tone=\"muted\"\n active={isActive || open}\n icon={item.icon}\n endIcon={<HeadbarChevronIcon open={open} />}\n label={<span className=\"truncate whitespace-nowrap\">{label}</span>}\n onClick={() => setOpen(true)}\n onMouseEnter={openMenu}\n onMouseLeave={scheduleCloseMenu}\n className={cn(\n 'h-9 max-w-[12rem] border-transparent px-3 text-sm font-medium shadow-none',\n menuButtonRadiusClass,\n isActive || open\n ? '!bg-[hsl(var(--muted))] text-[hsl(var(--foreground))]'\n : '!bg-transparent text-[hsl(var(--muted-foreground))] hover:!bg-[hsl(var(--muted))]/60 hover:text-[hsl(var(--foreground))]',\n )}\n />\n </DropdownMenu.Trigger>\n <DropdownMenu.Portal>\n <DropdownMenu.Content\n align=\"start\"\n sideOffset={5}\n onCloseAutoFocus={(event) => event.preventDefault()}\n onMouseEnter={openMenu}\n onMouseLeave={scheduleCloseMenu}\n className={cn(\n 'z-50 min-w-56 border border-[hsl(var(--border))] bg-[hsl(var(--popover))] p-1.5 text-[hsl(var(--popover-foreground))] shadow-md animate-in fade-in-0 zoom-in-95',\n menuContentRadiusClass,\n )}\n >\n {item.children?.map((child) => (\n <DropdownMenu.Item\n key={child.id}\n className={cn(\n 'relative flex cursor-pointer select-none items-center gap-2.5 px-3 py-2 text-sm outline-none transition-colors hover:bg-[hsl(var(--accent))]',\n menuItemRadiusClass,\n child.id === activeItemId && 'bg-[hsl(var(--muted))] text-[hsl(var(--foreground))]',\n )}\n onSelect={() => {\n setOpen(false);\n onNavigate?.(child.id);\n }}\n >\n {child.icon ? (\n <span className=\"inline-flex h-4 w-4 shrink-0 items-center justify-center text-[hsl(var(--muted-foreground))]\">\n {child.icon}\n </span>\n ) : null}\n <span className=\"min-w-0 truncate\">{child.headbarLabel ?? child.label}</span>\n </DropdownMenu.Item>\n ))}\n </DropdownMenu.Content>\n </DropdownMenu.Portal>\n </DropdownMenu.Root>\n );\n}\n\nfunction HeadbarNav({\n activeItemId,\n activeRootId,\n items,\n menuRadius,\n onNavigate,\n}: {\n activeItemId?: string;\n activeRootId?: string;\n items: LayoutNavItem[];\n menuRadius: HeadbarMenuRadius;\n onNavigate?: (itemId: string) => void;\n}) {\n const menuButtonRadiusClass = getHeadbarMenuRadiusClass(menuRadius);\n const menuContentRadiusClass = getHeadbarMenuRadiusClass(menuRadius);\n const menuItemRadiusClass = getHeadbarMenuRadiusClass(menuRadius);\n\n return (\n <div className=\"flex min-w-0 items-center gap-1\">\n {items.map((item) => {\n const isActive = activeRootId === item.id || activeItemId === item.id;\n const label = item.headbarLabel ?? item.label;\n\n if (item.children?.length) {\n return (\n <HeadbarNavMenuItem\n key={item.id}\n activeItemId={activeItemId}\n isActive={isActive}\n item={item}\n label={label}\n menuButtonRadiusClass={menuButtonRadiusClass}\n menuContentRadiusClass={menuContentRadiusClass}\n menuItemRadiusClass={menuItemRadiusClass}\n onNavigate={onNavigate}\n />\n );\n }\n\n return (\n <BaseButton\n key={item.id}\n appearance={NAVIGATION_LAYOUT_DEFAULT_APPEARANCE}\n tone=\"muted\"\n active={isActive}\n icon={item.icon}\n label={<span className=\"truncate whitespace-nowrap\">{label}</span>}\n onClick={() => onNavigate?.(item.id)}\n className={cn(\n 'h-9 max-w-[12rem] border-transparent px-3 text-sm font-medium shadow-none',\n menuButtonRadiusClass,\n isActive\n ? '!bg-[hsl(var(--muted))] text-[hsl(var(--foreground))]'\n : '!bg-transparent text-[hsl(var(--muted-foreground))] hover:!bg-[hsl(var(--muted))]/60 hover:text-[hsl(var(--foreground))]',\n )}\n />\n );\n })}\n </div>\n );\n}\n\nfunction Headbar({\n activeItemId,\n activeRootId,\n actions,\n accountMenu,\n extra,\n layout,\n logo,\n navItems,\n onNavigate,\n}: {\n activeItemId?: string;\n activeRootId?: string;\n actions?: ReactNode;\n accountMenu?: ReactNode;\n extra?: ReactNode;\n layout?: HeadbarLayout;\n logo?: AppHeaderLogo;\n navItems: LayoutNavItem[];\n onNavigate?: (itemId: string) => void;\n}) {\n const heightPx = clampHeadbarHeight(layout?.heightPx);\n const layoutMode = layout?.layoutMode ?? 'boxed';\n const menuRadius = layout?.menuRadius ?? 'default';\n const logoHeightPx = getHeadbarLogoSizePx(heightPx);\n const frameStyle = getHeadbarFrameStyle(layoutMode, heightPx);\n const showBrandTitle = Boolean(layout?.brandTitle);\n\n return (\n <header className={getHeadbarFrameClass(layoutMode)} style={frameStyle}>\n <div className=\"flex min-w-0 items-center justify-start\">\n {logo ? (\n <BaseButton\n appearance={NAVIGATION_LAYOUT_DEFAULT_APPEARANCE}\n tone=\"muted\"\n icon={\n <div\n className={cn(\n 'flex items-center justify-center overflow-hidden rounded-lg',\n logo.url\n ? 'w-auto max-w-[min(22rem,30vw)] bg-transparent'\n : 'bg-[hsl(var(--primary))] text-[hsl(var(--primary-foreground))]',\n )}\n style={logo.url ? { height: logoHeightPx } : { width: logoHeightPx, height: logoHeightPx }}\n >\n {logo.url ? (\n <img src={logo.url} alt={logo.title} className=\"block h-full w-auto object-contain\" />\n ) : (\n <span className=\"text-base font-bold\">{logo.title.charAt(0)}</span>\n )}\n </div>\n }\n label={\n showBrandTitle ? (\n <span className=\"truncate whitespace-nowrap text-base font-medium text-[hsl(var(--foreground))]\">\n {layout?.brandTitle}\n </span>\n ) : null\n }\n ariaLabel={logo.title}\n title={logo.title}\n className=\"h-auto min-w-0 justify-start border-transparent bg-transparent p-0 shadow-none hover:bg-transparent\"\n classNames={logo.url ? { icon: '!h-auto !w-auto shrink-0' } : undefined}\n onClick={logo.onClick}\n />\n ) : null}\n </div>\n\n <div className={cn('flex min-w-0 items-center', getHeadbarNavClass(layout?.navPosition))}>\n <div className=\"no-scrollbar flex max-w-full min-w-0 items-center overflow-x-auto overscroll-x-contain\">\n <HeadbarNav\n activeItemId={activeItemId}\n activeRootId={activeRootId}\n items={navItems}\n menuRadius={menuRadius}\n onNavigate={onNavigate}\n />\n </div>\n </div>\n\n <div className=\"flex min-w-0 items-center justify-end gap-3\">\n {actions}\n {extra}\n {accountMenu}\n </div>\n </header>\n );\n}\n\nexport function NavigationLayout({\n activeItemId,\n activeRootId,\n allowModeSwitch = false,\n accountMenu,\n children,\n className,\n collapsedSidebarAccountMenu,\n collapsedSidebarWidth = NAVIGATION_LAYOUT_SIDEBAR_COLLAPSED_WIDTH,\n defaultMode = 'headbar',\n defaultSidebarCollapsed = false,\n expandedSidebarWidth = NAVIGATION_LAYOUT_SIDEBAR_EXPANDED_WIDTH,\n expandSidebarLabel = 'Expand sidebar',\n flush = false,\n headbarActions,\n headbarLayout,\n logo,\n mode,\n navItems,\n onModeChange,\n onNavigate,\n onSidebarCollapsedChange,\n renderHeadbarExtra,\n collapseSidebarLabel = 'Collapse sidebar',\n sidebarCollapsed: controlledSidebarCollapsed,\n sidebarAccountMenu,\n sidebarFooter,\n sidebarHeader,\n switchToHeadbarLabel = 'Switch to headbar',\n switchToSidebarLabel = 'Switch to sidebar',\n}: NavigationLayoutProps) {\n const [uncontrolledMode, setUncontrolledMode] = useState<NavigationMode>(defaultMode);\n const [uncontrolledSidebarCollapsed, setUncontrolledSidebarCollapsed] = useState(defaultSidebarCollapsed);\n const [revealRequest, setRevealRequest] = useState<{ id: string; nonce: number } | null>(null);\n const isModeControlled = mode !== undefined;\n const isSidebarCollapsedControlled = controlledSidebarCollapsed !== undefined;\n const navigationMode = isModeControlled ? mode : uncontrolledMode;\n const sidebarCollapsed = isSidebarCollapsedControlled\n ? controlledSidebarCollapsed\n : uncontrolledSidebarCollapsed;\n const isHeadbarMode = navigationMode === 'headbar';\n const sidebarWidth = sidebarCollapsed ? collapsedSidebarWidth : expandedSidebarWidth;\n\n useEffect(() => {\n if (!isModeControlled) {\n setUncontrolledMode(defaultMode);\n }\n }, [defaultMode, isModeControlled]);\n\n useEffect(() => {\n if (!isSidebarCollapsedControlled) {\n setUncontrolledSidebarCollapsed(defaultSidebarCollapsed);\n }\n }, [defaultSidebarCollapsed, isSidebarCollapsedControlled]);\n\n const setNavigationMode = (nextMode: NavigationMode) => {\n if (!isModeControlled) {\n setUncontrolledMode(nextMode);\n }\n onModeChange?.(nextMode);\n };\n\n const setCollapsed = (collapsed: boolean) => {\n if (!isSidebarCollapsedControlled) {\n setUncontrolledSidebarCollapsed(collapsed);\n }\n onSidebarCollapsedChange?.(collapsed);\n };\n\n const navigationActions: NavigationLayoutAction[] = [];\n if (allowModeSwitch) {\n navigationActions.push({\n id: 'toggle-headbar',\n label: switchToHeadbarLabel,\n onClick: () => setNavigationMode('headbar'),\n icon: (\n <svg xmlns=\"http://www.w3.org/2000/svg\" className=\"h-[18px] w-[18px] rotate-180\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.8\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <rect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\" />\n <path d=\"M3 9h18\" />\n </svg>\n ),\n });\n }\n navigationActions.push({\n id: 'toggle-sidebar',\n label: sidebarCollapsed ? expandSidebarLabel : collapseSidebarLabel,\n onClick: () => setCollapsed(!sidebarCollapsed),\n icon: (\n <svg xmlns=\"http://www.w3.org/2000/svg\" className=\"h-[18px] w-[18px]\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.8\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <rect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\" />\n <path d=\"M9 3v18\" />\n <path d={sidebarCollapsed ? 'm14 9 3 3-3 3' : 'm16 15-3-3 3-3'} />\n </svg>\n ),\n });\n\n const sidebar = isHeadbarMode ? null : (\n <div\n className={cn(\n 'relative h-full min-h-0 shrink-0 transition-[width] duration-260',\n sidebarCollapsed ? 'z-20 overflow-visible' : 'z-10 overflow-hidden',\n )}\n style={{ width: sidebarWidth, transitionTimingFunction: NAVIGATION_LAYOUT_TRANSITION_TIMING }}\n >\n <Sidebar\n accountMenu={sidebarAccountMenu ?? accountMenu}\n activeItemId={activeItemId}\n actions={navigationActions}\n collapsed={sidebarCollapsed}\n collapsedAccountMenu={collapsedSidebarAccountMenu ?? accountMenu}\n footer={sidebarFooter}\n header={sidebarHeader}\n items={navItems}\n logo={logo}\n onCollapsedChange={setCollapsed}\n onNavigate={onNavigate}\n onRevealRoot={(rootId) => setRevealRequest((prev) => ({ id: rootId, nonce: (prev?.nonce ?? 0) + 1 }))}\n revealRequest={revealRequest}\n title={headbarLayout?.brandTitle}\n />\n </div>\n );\n\n const header = isHeadbarMode ? (\n <Headbar\n activeItemId={activeItemId}\n activeRootId={activeRootId ?? findNavigationRootId(navItems, activeItemId)}\n actions={\n allowModeSwitch ? (\n <>\n {headbarActions}\n <BaseButton\n appearance={NAVIGATION_LAYOUT_DEFAULT_APPEARANCE}\n tone=\"muted\"\n icon={\n <svg xmlns=\"http://www.w3.org/2000/svg\" className=\"h-4 w-4 shrink-0\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.8\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <rect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\" />\n <path d=\"M9 3v18\" />\n <path d=\"m14 9 3 3-3 3\" />\n </svg>\n }\n label={<span className=\"truncate whitespace-nowrap\">{switchToSidebarLabel}</span>}\n onClick={() => setNavigationMode('sidebar')}\n className={cn(\n 'h-auto min-w-0 shrink px-3 py-2 text-sm font-medium text-[hsl(var(--muted-foreground))] shadow-none hover:border-[hsl(var(--input))]/70 hover:bg-[hsl(var(--muted))]/60 hover:text-[hsl(var(--foreground))]',\n getHeadbarMenuRadiusClass(headbarLayout?.menuRadius),\n )}\n />\n </>\n ) : headbarActions\n }\n accountMenu={accountMenu}\n extra={renderHeadbarExtra}\n layout={headbarLayout}\n logo={logo}\n navItems={navItems}\n onNavigate={onNavigate}\n />\n ) : null;\n\n return (\n <AppLayout header={header} sidebar={sidebar} flush={flush} className={className}>\n {children}\n </AppLayout>\n );\n}\n"]}
|