@inf-monkeys-tech/monkeys-design 0.4.50 → 0.4.52

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.
Files changed (49) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +335 -335
  3. package/dist/components/base/index.js +1 -1
  4. package/dist/components/base/index.js.map +1 -1
  5. package/dist/components/base/index.mjs +1 -1
  6. package/dist/components/base/index.mjs.map +1 -1
  7. package/dist/components/data-explorer/index.js.map +1 -1
  8. package/dist/components/data-explorer/index.mjs.map +1 -1
  9. package/dist/components/layout/index.js +5 -5
  10. package/dist/components/layout/index.js.map +1 -1
  11. package/dist/components/layout/index.mjs +5 -5
  12. package/dist/components/layout/index.mjs.map +1 -1
  13. package/dist/components/login/index.js.map +1 -1
  14. package/dist/components/login/index.mjs.map +1 -1
  15. package/dist/components/toast/index.js.map +1 -1
  16. package/dist/components/toast/index.mjs.map +1 -1
  17. package/dist/components/toolbar/index.js.map +1 -1
  18. package/dist/components/toolbar/index.mjs.map +1 -1
  19. package/dist/components/workbench/index.js +1 -1
  20. package/dist/components/workbench/index.js.map +1 -1
  21. package/dist/components/workbench/index.mjs +1 -1
  22. package/dist/components/workbench/index.mjs.map +1 -1
  23. package/dist/icons/oauth/index.js.map +1 -1
  24. package/dist/icons/oauth/index.mjs.map +1 -1
  25. package/dist/index.js +5 -5
  26. package/dist/index.js.map +1 -1
  27. package/dist/index.mjs +5 -5
  28. package/dist/index.mjs.map +1 -1
  29. package/dist/palette/index.js.map +1 -1
  30. package/dist/palette/index.mjs.map +1 -1
  31. package/dist/registry/index.js.map +1 -1
  32. package/dist/registry/index.mjs.map +1 -1
  33. package/dist/styles/global.scss +21 -21
  34. package/dist/styles/login-page.scss +518 -518
  35. package/dist/styles/workflow-board.scss +440 -440
  36. package/dist/styles/workflow-nodes.css +340 -340
  37. package/dist/theme-system/index.js +1 -1
  38. package/dist/theme-system/index.js.map +1 -1
  39. package/dist/theme-system/index.mjs +1 -1
  40. package/dist/theme-system/index.mjs.map +1 -1
  41. package/dist/themes/artist/index.js.map +1 -1
  42. package/dist/themes/artist/index.mjs.map +1 -1
  43. package/dist/themes/bsd/index.js.map +1 -1
  44. package/dist/themes/bsd/index.mjs.map +1 -1
  45. package/dist/themes/concept/index.js.map +1 -1
  46. package/dist/themes/concept/index.mjs.map +1 -1
  47. package/dist/themes/default/index.js.map +1 -1
  48. package/dist/themes/default/index.mjs.map +1 -1
  49. package/package.json +151 -151
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/base/utils.ts","../../../src/components/base/theme.ts","../../../src/components/base/BaseAccordion.tsx","../../../src/components/base/BaseAvatar.tsx","../../../src/components/base/BaseBadge.tsx","../../../src/components/base/BaseBreadcrumb.tsx","../../../src/components/base/BaseButton.tsx","../../../src/components/base/BaseCheckbox.tsx","../../../src/components/base/BaseContextMenu.tsx","../../../src/components/base/BaseDescriptionList.tsx","../../../src/components/base/BaseDialog.tsx","../../../src/components/base/BaseDivider.tsx","../../../src/components/base/BaseDropdownMenu.tsx","../../../src/components/base/BaseEmptyState.tsx","../../../src/components/base/BaseField.tsx","../../../src/components/base/BaseInput.tsx","../../../src/components/base/BaseLayout.tsx","../../../src/components/base/BaseLoadingState.tsx","../../../src/components/base/BaseMultiSelect.tsx","../../../src/components/base/BaseNotice.tsx","../../../src/components/base/BasePanel.tsx","../../../src/components/base/BasePagination.tsx","../../../src/components/base/BaseProgress.tsx","../../../src/components/base/BaseRadioGroup.tsx","../../../src/components/base/BaseSelect.tsx","../../../src/components/base/BaseSectionHeader.tsx","../../../src/components/base/BaseSegmentedControl.tsx","../../../src/components/base/BaseSkeleton.tsx","../../../src/components/base/BaseSwitch.tsx","../../../src/components/base/BaseTable.tsx","../../../src/components/base/BaseTableFooterBar.tsx","../../../src/components/base/BaseTabs.tsx","../../../src/components/base/BaseTextarea.tsx","../../../src/components/base/BaseTooltip.tsx","../../../src/components/base/BaseToolbar.tsx"],"names":["useId","useState","jsx","jsxs","forwardRef","BaseButton","BaseCheckbox","useRef","useEffect","Fragment","ContextMenu","BaseInput","useCallback","BaseMultiSelect","useMemo","clamp","toDomId","getInitialValue","getNextEnabledIndex","BaseSelect","BaseSwitch","createContext","useContext","toCssSize","BaseTableHead","BaseTextarea","useLayoutEffect","createPortal"],"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 { useId, useState } from 'react';\n\nimport type { BaseAccordionProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nfunction getInitialValue(defaultValue: string | undefined) {\n return defaultValue;\n}\n\nfunction toDomId(value: string) {\n return value.replace(/[^a-zA-Z0-9_-]/g, '-');\n}\n\nexport function BaseAccordion({\n items = [],\n value,\n defaultValue,\n allowCollapse = true,\n appearance,\n className,\n classNames,\n style,\n onValueChange,\n id,\n ...accordionProps\n}: BaseAccordionProps) {\n const theme = resolveBaseAppearance(appearance);\n const generatedId = useId();\n const rootId = id ?? generatedId;\n const [uncontrolledValue, setUncontrolledValue] = useState(() =>\n getInitialValue(defaultValue),\n );\n const isControlled = value !== undefined;\n const openValue = isControlled ? value : uncontrolledValue;\n\n const handleToggle = (nextValue: string, disabled?: boolean) => {\n if (disabled) return;\n const nextOpenValue =\n openValue === nextValue && allowCollapse ? undefined : nextValue;\n if (!isControlled) {\n setUncontrolledValue(nextOpenValue);\n }\n onValueChange?.(nextOpenValue);\n };\n\n return (\n <div\n {...accordionProps}\n id={id}\n className={cn(theme.slots.accordionRoot, classNames?.root, className)}\n style={{\n ...theme.styles.accordion,\n ...style,\n }}\n >\n {items.map((item) => {\n const itemId = toDomId(item.value);\n const open = item.value === openValue;\n return (\n <div\n key={item.value}\n className={cn(theme.slots.accordionItem, classNames?.item)}\n >\n <button\n id={`${rootId}-${itemId}-trigger`}\n type=\"button\"\n aria-expanded={open}\n aria-controls={`${rootId}-${itemId}-panel`}\n disabled={item.disabled}\n className={cn(theme.slots.accordionTrigger, classNames?.trigger)}\n onClick={() => handleToggle(item.value, item.disabled)}\n >\n <span className=\"min-w-0 truncate\">{item.title}</span>\n <span\n aria-hidden=\"true\"\n className={cn(\n theme.slots.accordionTriggerIcon,\n open && 'rotate-[225deg]',\n classNames?.triggerIcon,\n )}\n />\n </button>\n {open ? (\n <div\n id={`${rootId}-${itemId}-panel`}\n role=\"region\"\n aria-labelledby={`${rootId}-${itemId}-trigger`}\n className={cn(theme.slots.accordionPanel, classNames?.panel)}\n >\n {hasRenderableNode(item.content) ? item.content : null}\n </div>\n ) : null}\n </div>\n );\n })}\n </div>\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 type { BaseBadgeProps } from './types';\nimport { getBaseBadgeToneClassName, resolveBaseAppearance } from './theme';\nimport { cn } from './utils';\n\nexport function BaseBadge({\n children,\n label,\n icon,\n tone,\n appearance,\n className,\n classNames,\n style,\n ...badgeProps\n}: BaseBadgeProps) {\n const theme = resolveBaseAppearance(appearance);\n const resolvedLabel = children ?? label;\n\n return (\n <span\n {...badgeProps}\n className={cn(\n theme.slots.badgeBase,\n getBaseBadgeToneClassName(theme, tone),\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.badge,\n ...style,\n }}\n >\n {icon ? (\n <span className={cn(theme.slots.badgeIcon, classNames?.icon)}>\n {icon}\n </span>\n ) : null}\n {resolvedLabel !== undefined && resolvedLabel !== null ? (\n <span className={cn(theme.slots.badgeLabel, classNames?.label)}>\n {resolvedLabel}\n </span>\n ) : null}\n </span>\n );\n}\n","import type { MouseEvent } from 'react';\n\nimport type { BaseBreadcrumbItem, BaseBreadcrumbProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn } from './utils';\n\nfunction isCurrentItem(item: BaseBreadcrumbItem, index: number, length: number) {\n return item.current ?? index === length - 1;\n}\n\nexport function BaseBreadcrumb({\n items = [],\n separator = '/',\n appearance,\n className,\n classNames,\n style,\n onSelect,\n ...breadcrumbProps\n}: BaseBreadcrumbProps) {\n const theme = resolveBaseAppearance(appearance);\n\n const handleClick = (\n event: MouseEvent<HTMLAnchorElement | HTMLButtonElement>,\n item: BaseBreadcrumbItem,\n index: number,\n ) => {\n if (item.disabled) {\n event.preventDefault();\n return;\n }\n onSelect?.(item, index);\n };\n\n return (\n <nav\n {...breadcrumbProps}\n aria-label={breadcrumbProps['aria-label'] ?? 'Breadcrumb'}\n className={cn(theme.slots.breadcrumbRoot, classNames?.root, className)}\n style={{\n ...theme.styles.breadcrumb,\n ...style,\n }}\n >\n <ol className={cn(theme.slots.breadcrumbList, classNames?.list)}>\n {items.map((item, index) => {\n const current = isCurrentItem(item, index, items.length);\n return (\n <li\n key={`${index}-${item.value ?? item.href ?? String(item.label)}`}\n className={cn(theme.slots.breadcrumbItem, classNames?.item)}\n >\n {current ? (\n <span\n aria-current=\"page\"\n className={cn(theme.slots.breadcrumbCurrent, classNames?.current)}\n >\n {item.label}\n </span>\n ) : item.href ? (\n <a\n href={item.href}\n aria-disabled={item.disabled || undefined}\n className={cn(theme.slots.breadcrumbLink, classNames?.link)}\n onClick={(event) => handleClick(event, item, index)}\n >\n {item.label}\n </a>\n ) : (\n <button\n type=\"button\"\n disabled={item.disabled}\n className={cn(\n theme.slots.breadcrumbLink,\n 'bg-transparent p-0',\n classNames?.link,\n )}\n onClick={(event) => handleClick(event, item, index)}\n >\n {item.label}\n </button>\n )}\n {index < items.length - 1 ? (\n <span\n aria-hidden=\"true\"\n className={cn(\n theme.slots.breadcrumbSeparator,\n classNames?.separator,\n )}\n >\n {separator}\n </span>\n ) : null}\n </li>\n );\n })}\n </ol>\n </nav>\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 * as ContextMenu from '@radix-ui/react-context-menu';\nimport type { ReactNode } from 'react';\n\nimport type {\n BaseContextMenuCheckboxItemProps,\n BaseContextMenuContentProps,\n BaseContextMenuItemProps,\n BaseContextMenuLabelProps,\n BaseContextMenuProps,\n BaseContextMenuRadioGroupProps,\n BaseContextMenuRadioItemProps,\n BaseContextMenuSeparatorProps,\n BaseContextMenuSubContentProps,\n BaseContextMenuSubProps,\n BaseContextMenuSubTriggerProps,\n BaseContextMenuTriggerProps,\n} from './types';\nimport {\n getBaseMenuItemToneClassName,\n resolveBaseAppearance,\n} from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nfunction CheckIcon() {\n return (\n <svg\n aria-hidden=\"true\"\n viewBox=\"0 0 16 16\"\n className=\"h-3.5 w-3.5\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"2\"\n >\n <path d=\"M3.5 8.5 6.5 11.5 12.5 4.5\" />\n </svg>\n );\n}\n\nfunction DotIcon() {\n return (\n <svg\n aria-hidden=\"true\"\n viewBox=\"0 0 16 16\"\n className=\"h-3.5 w-3.5\"\n fill=\"currentColor\"\n >\n <circle cx=\"8\" cy=\"8\" r=\"3\" />\n </svg>\n );\n}\n\nfunction ChevronRightIcon() {\n return (\n <svg\n aria-hidden=\"true\"\n viewBox=\"0 0 16 16\"\n className=\"h-3.5 w-3.5\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"2\"\n >\n <path d=\"m6 4 4 4-4 4\" />\n </svg>\n );\n}\n\nfunction renderItemContent({\n label,\n icon,\n shortcut,\n children,\n classNames,\n inset,\n indicator,\n}: Pick<\n BaseContextMenuItemProps,\n 'children' | 'classNames' | 'icon' | 'inset' | 'label' | 'shortcut'\n> & {\n indicator?: ReactNode;\n}) {\n const resolvedLabel = children ?? label;\n\n return (\n <>\n {indicator ? indicator : null}\n {hasRenderableNode(icon) ? (\n <span className={cn(classNames?.icon)}>\n {icon}\n </span>\n ) : inset ? (\n <span aria-hidden=\"true\" className=\"h-4 w-4 shrink-0\" />\n ) : null}\n {hasRenderableNode(resolvedLabel) ? (\n <span className={cn(classNames?.label)}>{resolvedLabel}</span>\n ) : null}\n {hasRenderableNode(shortcut) ? (\n <span className={cn(classNames?.shortcut)}>{shortcut}</span>\n ) : null}\n </>\n );\n}\n\nexport function BaseContextMenu({\n children,\n trigger,\n content,\n disabled = false,\n modal = true,\n dir,\n appearance,\n className,\n classNames,\n onOpenChange,\n}: BaseContextMenuProps) {\n const theme = resolveBaseAppearance(appearance);\n\n return (\n <ContextMenu.Root\n onOpenChange={onOpenChange}\n modal={modal}\n dir={dir}\n >\n {trigger ? (\n <ContextMenu.Trigger\n disabled={disabled}\n className={cn(\n theme.slots.menuTrigger,\n disabled && theme.slots.menuItemDisabled,\n classNames?.trigger,\n className,\n )}\n >\n {trigger}\n </ContextMenu.Trigger>\n ) : null}\n {content ? (\n <BaseContextMenuContent appearance={appearance} className={classNames?.content}>\n {content}\n </BaseContextMenuContent>\n ) : null}\n {children}\n </ContextMenu.Root>\n );\n}\n\nexport function BaseContextMenuTrigger({\n children,\n disabled = false,\n asChild = false,\n appearance,\n className,\n style,\n ...triggerProps\n}: BaseContextMenuTriggerProps) {\n const theme = resolveBaseAppearance(appearance);\n\n return (\n <ContextMenu.Trigger\n {...triggerProps}\n asChild={asChild}\n disabled={disabled}\n className={cn(\n !asChild && theme.slots.menuTrigger,\n disabled && !asChild && theme.slots.menuItemDisabled,\n className,\n )}\n style={style}\n >\n {children}\n </ContextMenu.Trigger>\n );\n}\n\nexport function BaseContextMenuContent({\n children,\n appearance,\n className,\n classNames,\n style,\n ...contentProps\n}: BaseContextMenuContentProps) {\n const theme = resolveBaseAppearance(appearance);\n\n return (\n <ContextMenu.Portal>\n <ContextMenu.Content\n {...contentProps}\n className={cn(theme.slots.menuContent, classNames?.root, className)}\n style={{\n ...theme.styles.menuContent,\n ...style,\n }}\n >\n {children}\n </ContextMenu.Content>\n </ContextMenu.Portal>\n );\n}\n\nexport function BaseContextMenuLabel({\n children,\n appearance,\n className,\n style,\n ...labelProps\n}: BaseContextMenuLabelProps) {\n const theme = resolveBaseAppearance(appearance);\n\n return (\n <ContextMenu.Label\n {...labelProps}\n className={cn(theme.slots.menuLabel, className)}\n style={style}\n >\n {children}\n </ContextMenu.Label>\n );\n}\n\nexport function BaseContextMenuSeparator({\n appearance,\n className,\n style,\n ...separatorProps\n}: BaseContextMenuSeparatorProps) {\n const theme = resolveBaseAppearance(appearance);\n\n return (\n <ContextMenu.Separator\n {...separatorProps}\n className={cn(theme.slots.menuSeparator, className)}\n style={style}\n />\n );\n}\n\nexport function BaseContextMenuItem({\n children,\n label,\n icon,\n shortcut,\n tone,\n disabled = false,\n inset = false,\n appearance,\n className,\n classNames,\n style,\n onSelect,\n ...itemProps\n}: BaseContextMenuItemProps) {\n const theme = resolveBaseAppearance(appearance);\n\n return (\n <ContextMenu.Item\n {...itemProps}\n disabled={disabled}\n className={cn(\n theme.slots.menuItem,\n getBaseMenuItemToneClassName(theme, tone),\n disabled && theme.slots.menuItemDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.menuItem,\n ...style,\n }}\n onSelect={(event) => {\n if (disabled) {\n event.preventDefault();\n return;\n }\n onSelect?.(event);\n }}\n >\n {renderItemContent({\n children,\n label,\n icon,\n shortcut,\n inset,\n classNames: {\n icon: cn(theme.slots.menuItemIcon, classNames?.icon),\n label: cn(theme.slots.menuItemLabel, classNames?.label),\n shortcut: cn(theme.slots.menuItemShortcut, classNames?.shortcut),\n },\n })}\n </ContextMenu.Item>\n );\n}\n\nexport function BaseContextMenuCheckboxItem({\n children,\n label,\n icon,\n shortcut,\n tone,\n disabled = false,\n inset = false,\n checked,\n onCheckedChange,\n appearance,\n className,\n classNames,\n style,\n onSelect,\n ...itemProps\n}: BaseContextMenuCheckboxItemProps) {\n const theme = resolveBaseAppearance(appearance);\n\n return (\n <ContextMenu.CheckboxItem\n {...itemProps}\n checked={checked}\n disabled={disabled}\n onCheckedChange={(nextChecked) => {\n if (disabled) return;\n onCheckedChange?.(nextChecked);\n }}\n className={cn(\n theme.slots.menuItem,\n 'pl-8',\n getBaseMenuItemToneClassName(theme, tone),\n disabled && theme.slots.menuItemDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.menuItem,\n ...style,\n }}\n onSelect={(event) => {\n if (disabled) {\n event.preventDefault();\n return;\n }\n onSelect?.(event);\n }}\n >\n {renderItemContent({\n children,\n label,\n icon,\n shortcut,\n inset,\n classNames: {\n icon: cn(theme.slots.menuItemIcon, classNames?.icon),\n label: cn(theme.slots.menuItemLabel, classNames?.label),\n shortcut: cn(theme.slots.menuItemShortcut, classNames?.shortcut),\n },\n indicator: (\n <ContextMenu.ItemIndicator\n className={cn(theme.slots.menuCheckboxIndicator, classNames?.indicator)}\n >\n <CheckIcon />\n </ContextMenu.ItemIndicator>\n ),\n })}\n </ContextMenu.CheckboxItem>\n );\n}\n\nexport function BaseContextMenuRadioGroup({\n children,\n value,\n onValueChange,\n}: BaseContextMenuRadioGroupProps) {\n return (\n <ContextMenu.RadioGroup value={value} onValueChange={onValueChange}>\n {children}\n </ContextMenu.RadioGroup>\n );\n}\n\nexport function BaseContextMenuRadioItem({\n children,\n label,\n icon,\n shortcut,\n tone,\n disabled = false,\n inset = false,\n value,\n appearance,\n className,\n classNames,\n style,\n onSelect,\n ...itemProps\n}: BaseContextMenuRadioItemProps) {\n const theme = resolveBaseAppearance(appearance);\n\n return (\n <ContextMenu.RadioItem\n {...itemProps}\n value={value}\n disabled={disabled}\n className={cn(\n theme.slots.menuItem,\n 'pl-8',\n getBaseMenuItemToneClassName(theme, tone),\n disabled && theme.slots.menuItemDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.menuItem,\n ...style,\n }}\n onSelect={(event) => {\n if (disabled) {\n event.preventDefault();\n return;\n }\n onSelect?.(event);\n }}\n >\n {renderItemContent({\n children,\n label,\n icon,\n shortcut,\n inset,\n classNames: {\n icon: cn(theme.slots.menuItemIcon, classNames?.icon),\n label: cn(theme.slots.menuItemLabel, classNames?.label),\n shortcut: cn(theme.slots.menuItemShortcut, classNames?.shortcut),\n },\n indicator: (\n <ContextMenu.ItemIndicator\n className={cn(theme.slots.menuRadioIndicator, classNames?.indicator)}\n >\n <DotIcon />\n </ContextMenu.ItemIndicator>\n ),\n })}\n </ContextMenu.RadioItem>\n );\n}\n\nexport function BaseContextMenuSub({\n children,\n open,\n defaultOpen,\n onOpenChange,\n}: BaseContextMenuSubProps) {\n return (\n <ContextMenu.Sub\n open={open}\n defaultOpen={defaultOpen}\n onOpenChange={onOpenChange}\n >\n {children}\n </ContextMenu.Sub>\n );\n}\n\nexport function BaseContextMenuSubTrigger({\n children,\n label,\n icon,\n tone,\n disabled = false,\n inset = false,\n appearance,\n className,\n classNames,\n style,\n ...itemProps\n}: BaseContextMenuSubTriggerProps) {\n const theme = resolveBaseAppearance(appearance);\n const resolvedLabel = children ?? label;\n\n return (\n <ContextMenu.SubTrigger\n {...itemProps}\n disabled={disabled}\n className={cn(\n theme.slots.menuSubTrigger,\n getBaseMenuItemToneClassName(theme, tone),\n disabled && theme.slots.menuItemDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.menuItem,\n ...style,\n }}\n >\n {hasRenderableNode(icon) ? (\n <span className={cn(theme.slots.menuItemIcon, classNames?.icon)}>\n {icon}\n </span>\n ) : inset ? (\n <span aria-hidden=\"true\" className=\"h-4 w-4 shrink-0\" />\n ) : null}\n {hasRenderableNode(resolvedLabel) ? (\n <span className={cn(theme.slots.menuItemLabel, classNames?.label)}>\n {resolvedLabel}\n </span>\n ) : null}\n <span className={cn(theme.slots.menuSubTriggerIcon, classNames?.shortcut)}>\n <ChevronRightIcon />\n </span>\n </ContextMenu.SubTrigger>\n );\n}\n\nexport function BaseContextMenuSubContent({\n children,\n appearance,\n className,\n classNames,\n style,\n sideOffset = 6,\n ...subContentProps\n}: BaseContextMenuSubContentProps) {\n const theme = resolveBaseAppearance(appearance);\n\n return (\n <ContextMenu.Portal>\n <ContextMenu.SubContent\n {...subContentProps}\n sideOffset={sideOffset}\n className={cn(theme.slots.menuSubContent, classNames?.root, className)}\n style={{\n ...theme.styles.menuContent,\n ...style,\n }}\n >\n {children}\n </ContextMenu.SubContent>\n </ContextMenu.Portal>\n );\n}\n","import type { BaseDescriptionListProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn } from './utils';\n\nconst columnClassNames = {\n 1: 'grid-cols-1',\n 2: 'md:grid-cols-2',\n 3: 'md:grid-cols-2 xl:grid-cols-3',\n};\n\nexport function BaseDescriptionList({\n items,\n columns = 1,\n appearance,\n className,\n classNames,\n style,\n children,\n ...listProps\n}: BaseDescriptionListProps) {\n const theme = resolveBaseAppearance(appearance);\n\n return (\n <dl\n {...listProps}\n className={cn(\n theme.slots.descriptionListRoot,\n columnClassNames[columns],\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.descriptionList,\n ...style,\n }}\n >\n {items?.map((item, index) => (\n <div\n key={index}\n className={cn(theme.slots.descriptionListItem, classNames?.item)}\n >\n <dt className={cn(theme.slots.descriptionListTerm, classNames?.term)}>\n {item.term}\n </dt>\n <dd\n className={cn(theme.slots.descriptionListValue, classNames?.value)}\n >\n {item.value}\n </dd>\n </div>\n ))}\n {children}\n </dl>\n );\n}\n","import { useEffect, useId, useState } from 'react';\n\nimport { BaseButton } from './BaseButton';\nimport type { BaseDialogProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nexport function BaseDialog({\n open,\n defaultOpen = false,\n title,\n description,\n header,\n footer,\n trigger,\n triggerLabel,\n triggerIcon,\n triggerTone = 'default',\n triggerDisabled = false,\n closeLabel = 'Close dialog',\n closeOnEscape = true,\n closeOnOverlayClick = true,\n showCloseButton = true,\n appearance,\n className,\n classNames,\n style,\n children,\n onOpenChange,\n id,\n ...dialogProps\n}: BaseDialogProps) {\n const theme = resolveBaseAppearance(appearance);\n const generatedId = useId();\n const rootId = id ?? generatedId;\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n const isControlled = open !== undefined;\n const isOpen = isControlled ? open : uncontrolledOpen;\n const titleId = `${rootId}-title`;\n const descriptionId = `${rootId}-description`;\n\n const setOpen = (nextOpen: boolean) => {\n if (!isControlled) {\n setUncontrolledOpen(nextOpen);\n }\n onOpenChange?.(nextOpen);\n };\n\n useEffect(() => {\n if (!isOpen || !closeOnEscape) return undefined;\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key !== 'Escape') return;\n event.stopPropagation();\n setOpen(false);\n };\n\n window.addEventListener('keydown', handleKeyDown);\n return () => window.removeEventListener('keydown', handleKeyDown);\n }, [closeOnEscape, isOpen]);\n\n return (\n <div\n {...dialogProps}\n id={id}\n className={cn(theme.slots.dialogRoot, classNames?.root, className)}\n style={style}\n >\n {hasRenderableNode(trigger) ? (\n <span\n role=\"button\"\n tabIndex={triggerDisabled ? -1 : 0}\n aria-disabled={triggerDisabled || undefined}\n className={cn(\n theme.slots.dialogTrigger,\n triggerDisabled && theme.slots.dialogTriggerDisabled,\n classNames?.trigger,\n )}\n onClick={() => {\n if (!triggerDisabled) {\n setOpen(true);\n }\n }}\n onKeyDown={(event) => {\n if (triggerDisabled) return;\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n setOpen(true);\n }\n }}\n >\n {trigger}\n </span>\n ) : hasRenderableNode(triggerLabel) ? (\n <BaseButton\n appearance={appearance}\n tone={triggerTone}\n icon={triggerIcon}\n label={triggerLabel}\n disabled={triggerDisabled}\n className={cn(\n theme.slots.dialogTrigger,\n triggerDisabled && theme.slots.dialogTriggerDisabled,\n classNames?.trigger,\n )}\n onClick={() => setOpen(true)}\n />\n ) : null}\n\n {isOpen ? (\n <>\n <div\n aria-hidden=\"true\"\n className={cn(theme.slots.dialogOverlay, classNames?.overlay)}\n style={theme.styles.dialogOverlay}\n onClick={() => {\n if (closeOnOverlayClick) {\n setOpen(false);\n }\n }}\n />\n <div\n className={cn(theme.slots.dialogContent, classNames?.content)}\n onClick={() => {\n if (closeOnOverlayClick) {\n setOpen(false);\n }\n }}\n >\n <div\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={hasRenderableNode(title) ? titleId : undefined}\n aria-describedby={\n hasRenderableNode(description) ? descriptionId : undefined\n }\n className={cn(theme.slots.dialogPanel, classNames?.panel)}\n style={{\n ...theme.styles.dialogPanel,\n }}\n onClick={(event) => event.stopPropagation()}\n >\n {hasRenderableNode(header) ||\n hasRenderableNode(title) ||\n hasRenderableNode(description) ? (\n <div\n className={cn(theme.slots.dialogHeader, classNames?.header)}\n >\n {hasRenderableNode(header) ? (\n header\n ) : (\n <>\n {hasRenderableNode(title) ? (\n <div\n id={titleId}\n className={cn(theme.slots.dialogTitle, classNames?.title)}\n >\n {title}\n </div>\n ) : null}\n {hasRenderableNode(description) ? (\n <div\n id={descriptionId}\n className={cn(\n theme.slots.dialogDescription,\n classNames?.description,\n )}\n >\n {description}\n </div>\n ) : null}\n </>\n )}\n </div>\n ) : null}\n\n {showCloseButton ? (\n <button\n type=\"button\"\n aria-label={closeLabel}\n title={closeLabel}\n className={cn(theme.slots.dialogClose, classNames?.close)}\n onClick={() => setOpen(false)}\n >\n ×\n </button>\n ) : null}\n\n <div className={cn(theme.slots.dialogBody, classNames?.body)}>\n {children}\n </div>\n\n {hasRenderableNode(footer) ? (\n <div className={cn(theme.slots.dialogFooter, classNames?.footer)}>\n {footer}\n </div>\n ) : null}\n </div>\n </div>\n </>\n ) : null}\n </div>\n );\n}\n","import type { CSSProperties } from 'react';\n\nimport type { BaseDividerProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nexport function BaseDivider({\n orientation = 'horizontal',\n label,\n appearance,\n className,\n classNames,\n style,\n ...dividerProps\n}: BaseDividerProps) {\n const theme = resolveBaseAppearance(appearance);\n const isVertical = orientation === 'vertical';\n const hasLabel = hasRenderableNode(label) && !isVertical;\n const rootStyle: CSSProperties = {\n ...theme.styles.divider,\n ...style,\n };\n\n if (hasLabel) {\n return (\n <div\n {...dividerProps}\n role=\"separator\"\n aria-orientation={orientation}\n className={cn(\n 'flex min-w-0 items-center',\n classNames?.root,\n className,\n )}\n style={rootStyle}\n >\n <div className={cn('min-w-0 flex-1 border-t', theme.slots.dividerRoot)} />\n <span className={cn(theme.slots.dividerLabel, classNames?.label)}>\n {label}\n </span>\n <div className={cn('min-w-0 flex-1 border-t', theme.slots.dividerRoot)} />\n </div>\n );\n }\n\n return (\n <div\n {...dividerProps}\n role=\"separator\"\n aria-orientation={orientation}\n className={cn(\n theme.slots.dividerRoot,\n isVertical ? 'min-h-full self-stretch border-l' : 'w-full border-t',\n classNames?.root,\n className,\n )}\n style={rootStyle}\n />\n );\n}\n","import { useEffect, useRef, useState } from 'react';\n\nimport { BaseButton } from './BaseButton';\nimport type { BaseDropdownMenuItem, BaseDropdownMenuProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nfunction getPlacementClassName(\n placement: BaseDropdownMenuProps['placement'],\n slots: ReturnType<typeof resolveBaseAppearance>['slots'],\n) {\n return cn(\n placement?.startsWith('top') && slots.dropdownMenuTop,\n placement?.endsWith('end') && slots.dropdownMenuEnd,\n );\n}\n\nexport function BaseDropdownMenu({\n items = [],\n label,\n trigger,\n triggerLabel = 'Actions',\n triggerIcon,\n disabled = false,\n open,\n defaultOpen = false,\n placement = 'bottom-start',\n closeOnSelect = true,\n appearance,\n className,\n classNames,\n style,\n children,\n onOpenChange,\n onSelect,\n ...menuProps\n}: BaseDropdownMenuProps) {\n const theme = resolveBaseAppearance(appearance);\n const rootRef = useRef<HTMLDivElement | null>(null);\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n const isControlled = open !== undefined;\n const isOpen = isControlled ? open : uncontrolledOpen;\n\n const setOpen = (nextOpen: boolean) => {\n if (disabled) return;\n if (!isControlled) {\n setUncontrolledOpen(nextOpen);\n }\n onOpenChange?.(nextOpen);\n };\n\n useEffect(() => {\n if (!isOpen) return undefined;\n\n const handlePointerDown = (event: PointerEvent) => {\n if (!rootRef.current?.contains(event.target as Node)) {\n setOpen(false);\n }\n };\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n setOpen(false);\n }\n };\n\n window.addEventListener('pointerdown', handlePointerDown);\n window.addEventListener('keydown', handleKeyDown);\n return () => {\n window.removeEventListener('pointerdown', handlePointerDown);\n window.removeEventListener('keydown', handleKeyDown);\n };\n }, [isOpen]);\n\n const handleSelect = (item: BaseDropdownMenuItem) => {\n if (item.disabled) return;\n item.onSelect?.(item);\n onSelect?.(item);\n if (closeOnSelect) {\n setOpen(false);\n }\n };\n\n return (\n <div\n {...menuProps}\n ref={rootRef}\n className={cn(theme.slots.dropdownRoot, classNames?.root, className)}\n style={style}\n >\n {hasRenderableNode(trigger) ? (\n <span\n role=\"button\"\n tabIndex={disabled ? -1 : 0}\n aria-haspopup=\"menu\"\n aria-expanded={isOpen}\n aria-disabled={disabled || undefined}\n className={cn(\n theme.slots.dropdownTrigger,\n disabled && theme.slots.dropdownTriggerDisabled,\n classNames?.trigger,\n )}\n onClick={() => setOpen(!isOpen)}\n onKeyDown={(event) => {\n if (disabled) return;\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n setOpen(!isOpen);\n }\n }}\n >\n {trigger}\n </span>\n ) : (\n <BaseButton\n appearance={appearance}\n icon={triggerIcon}\n label={triggerLabel}\n disabled={disabled}\n aria-haspopup=\"menu\"\n aria-expanded={isOpen}\n className={cn(\n theme.slots.dropdownTrigger,\n disabled && theme.slots.dropdownTriggerDisabled,\n classNames?.trigger,\n )}\n onClick={() => setOpen(!isOpen)}\n />\n )}\n\n {isOpen ? (\n <div\n role=\"menu\"\n className={cn(\n theme.slots.dropdownMenu,\n getPlacementClassName(placement, theme.slots),\n classNames?.menu,\n )}\n style={theme.styles.dropdownMenu}\n >\n {hasRenderableNode(label) ? (\n <div className={cn(theme.slots.dropdownLabel, classNames?.label)}>\n {label}\n </div>\n ) : null}\n {items.map((item) => (\n <div key={item.value}>\n {item.separatorBefore ? (\n <div\n aria-hidden=\"true\"\n className={cn(\n theme.slots.dropdownSeparator,\n classNames?.separator,\n )}\n />\n ) : null}\n <button\n type=\"button\"\n role=\"menuitem\"\n disabled={item.disabled}\n className={cn(\n theme.slots.dropdownItem,\n item.danger && theme.slots.dropdownItemDanger,\n item.disabled && theme.slots.dropdownItemDisabled,\n classNames?.item,\n )}\n style={theme.styles.dropdownItem}\n onClick={() => handleSelect(item)}\n >\n {hasRenderableNode(item.icon) ? (\n <span\n className={cn(\n theme.slots.dropdownItemIcon,\n classNames?.itemIcon,\n )}\n >\n {item.icon}\n </span>\n ) : null}\n <span\n className={cn(\n theme.slots.dropdownItemContent,\n classNames?.itemContent,\n )}\n >\n <span\n className={cn(\n theme.slots.dropdownItemLabel,\n classNames?.itemLabel,\n )}\n >\n {item.label}\n </span>\n {hasRenderableNode(item.description) ? (\n <span\n className={cn(\n theme.slots.dropdownItemDescription,\n classNames?.itemDescription,\n )}\n >\n {item.description}\n </span>\n ) : null}\n </span>\n {hasRenderableNode(item.shortcut) ? (\n <span\n className={cn(\n theme.slots.dropdownItemShortcut,\n classNames?.itemShortcut,\n )}\n >\n {item.shortcut}\n </span>\n ) : null}\n </button>\n </div>\n ))}\n {children}\n </div>\n ) : null}\n </div>\n );\n}\n","import type { BaseEmptyStateProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nfunction DefaultEmptyIcon() {\n return (\n <svg\n aria-hidden=\"true\"\n viewBox=\"0 0 24 24\"\n className=\"h-6 w-6\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"1.8\"\n >\n <rect width=\"16\" height=\"12\" x=\"4\" y=\"6\" rx=\"2\" />\n <path d=\"M8 10h8\" />\n <path d=\"M8 14h5\" />\n </svg>\n );\n}\n\nexport function BaseEmptyState({\n icon = <DefaultEmptyIcon />,\n title,\n description,\n actions,\n appearance,\n className,\n classNames,\n style,\n ...stateProps\n}: BaseEmptyStateProps) {\n const theme = resolveBaseAppearance(appearance);\n\n return (\n <div\n {...stateProps}\n className={cn(theme.slots.stateRoot, classNames?.root, className)}\n style={{\n ...theme.styles.stateRoot,\n ...style,\n }}\n >\n {hasRenderableNode(icon) ? (\n <div\n className={cn(theme.slots.stateIcon, classNames?.icon)}\n style={theme.styles.stateIcon}\n >\n {icon}\n </div>\n ) : null}\n {hasRenderableNode(title) ? (\n <div className={cn(theme.slots.stateTitle, classNames?.title)}>\n {title}\n </div>\n ) : null}\n {hasRenderableNode(description) ? (\n <div\n className={cn(theme.slots.stateDescription, classNames?.description)}\n >\n {description}\n </div>\n ) : null}\n {hasRenderableNode(actions) ? (\n <div className={cn(theme.slots.stateActions, classNames?.actions)}>\n {actions}\n </div>\n ) : null}\n </div>\n );\n}\n","import type { BaseFieldProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nexport function BaseField({\n label,\n description,\n message,\n error,\n required = false,\n disabled = false,\n htmlFor,\n children,\n appearance,\n className,\n classNames,\n style,\n ...fieldProps\n}: BaseFieldProps) {\n const theme = resolveBaseAppearance(appearance);\n const resolvedMessage = hasRenderableNode(error) ? error : message;\n\n return (\n <div\n {...fieldProps}\n aria-disabled={disabled || undefined}\n className={cn(\n theme.slots.fieldRoot,\n disabled && theme.slots.controlDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.field,\n ...style,\n }}\n >\n {hasRenderableNode(label) ? (\n <div className={cn(theme.slots.fieldLabelRow, classNames?.labelRow)}>\n <label\n htmlFor={htmlFor}\n className={cn(theme.slots.fieldLabel, classNames?.label)}\n >\n {label}\n {required ? (\n <span\n aria-hidden=\"true\"\n className={cn(theme.slots.fieldRequired, classNames?.required)}\n >\n {' '}\n *\n </span>\n ) : null}\n </label>\n </div>\n ) : null}\n\n {hasRenderableNode(description) ? (\n <div\n className={cn(theme.slots.fieldDescription, classNames?.description)}\n >\n {description}\n </div>\n ) : null}\n\n {hasRenderableNode(children) ? (\n <div\n className={cn(theme.slots.fieldControl, classNames?.control)}\n style={theme.styles.fieldControl}\n >\n {children}\n </div>\n ) : null}\n\n {hasRenderableNode(resolvedMessage) ? (\n <div\n className={cn(\n theme.slots.fieldMessage,\n hasRenderableNode(error) && 'text-destructive',\n classNames?.message,\n )}\n >\n {resolvedMessage}\n </div>\n ) : null}\n </div>\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 useCallback,\n useEffect,\n useRef,\n useState,\n type CSSProperties,\n type ElementType,\n type KeyboardEvent,\n type PointerEvent as ReactPointerEvent,\n} from 'react';\n\nimport type {\n BaseLayoutPaneProps,\n BaseLayoutProps,\n BaseLayoutResizeHandleProps,\n BaseLayoutSplitProps,\n BaseLayoutOrientation,\n} from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nconst DEFAULT_SPLIT_SIZE = 50;\nconst DEFAULT_MIN_SIZE = 20;\nconst DEFAULT_MAX_SIZE = 80;\nconst DEFAULT_KEYBOARD_STEP = 2.5;\n\ntype CssVariableStyle = CSSProperties & Record<`--${string}`, string>;\n\nfunction toCssSize(value: number | string | undefined, fallback: string) {\n if (typeof value === 'number') {\n if (!Number.isFinite(value) || value < 0) {\n throw new Error('BaseLayout size and gap props must be finite, non-negative numbers.');\n }\n return `${value}px`;\n }\n return value ?? fallback;\n}\n\nfunction assertPercent(name: string, value: number) {\n if (!Number.isFinite(value)) {\n throw new Error(`BaseLayoutSplit ${name} must be a finite number.`);\n }\n if (value < 0 || value > 100) {\n throw new Error(`BaseLayoutSplit ${name} must be between 0 and 100.`);\n }\n return value;\n}\n\nfunction clamp(value: number, min: number, max: number) {\n return Math.min(Math.max(value, min), max);\n}\n\nfunction resolveSplitBounds({\n minSize = DEFAULT_MIN_SIZE,\n maxSize = DEFAULT_MAX_SIZE,\n keyboardStep = DEFAULT_KEYBOARD_STEP,\n}: Pick<BaseLayoutSplitProps, 'minSize' | 'maxSize' | 'keyboardStep'>) {\n const min = assertPercent('minSize', minSize);\n const max = assertPercent('maxSize', maxSize);\n if (min > max) {\n throw new Error('BaseLayoutSplit minSize cannot be greater than maxSize.');\n }\n if (!Number.isFinite(keyboardStep) || keyboardStep <= 0) {\n throw new Error('BaseLayoutSplit keyboardStep must be a finite positive number.');\n }\n return { min, max, keyboardStep };\n}\n\nfunction resolveSplitSize(\n name: string,\n value: number | undefined,\n fallback: number,\n min: number,\n max: number,\n) {\n return clamp(assertPercent(name, value ?? fallback), min, max);\n}\n\nfunction getSeparatorOrientation(orientation: BaseLayoutOrientation) {\n return orientation === 'horizontal' ? 'vertical' : 'horizontal';\n}\n\nexport function BaseLayout({\n header,\n sidebar,\n aside,\n footer,\n children,\n sidebarSize,\n asideSize,\n gap,\n fullHeight,\n appearance,\n className,\n classNames,\n style,\n ...layoutProps\n}: BaseLayoutProps) {\n const theme = resolveBaseAppearance(appearance);\n const hasHeader = hasRenderableNode(header);\n const hasSidebar = hasRenderableNode(sidebar);\n const hasAside = hasRenderableNode(aside);\n const hasFooter = hasRenderableNode(footer);\n const bodyColumns = [\n hasSidebar ? 'var(--base-layout-sidebar-size)' : undefined,\n 'minmax(0, 1fr)',\n hasAside ? 'var(--base-layout-aside-size)' : undefined,\n ].filter(Boolean).join(' ');\n const layoutRows = [\n hasHeader ? 'auto' : undefined,\n 'minmax(0, 1fr)',\n hasFooter ? 'auto' : undefined,\n ].filter(Boolean).join(' ');\n const resolvedGap = gap !== undefined ? toCssSize(gap, '0px') : undefined;\n\n const layoutStyle: CssVariableStyle = {\n ...theme.styles.layout,\n '--base-layout-sidebar-size': toCssSize(sidebarSize, '16rem'),\n '--base-layout-aside-size': toCssSize(asideSize, '20rem'),\n gridTemplateRows: layoutRows,\n ...(resolvedGap !== undefined ? { gap: resolvedGap } : {}),\n ...style,\n };\n const bodyStyle: CSSProperties = {\n ...theme.styles.layoutBody,\n gridTemplateColumns: bodyColumns,\n ...(resolvedGap !== undefined ? { gap: resolvedGap } : {}),\n };\n\n return (\n <div\n {...layoutProps}\n className={cn(\n theme.slots.layoutRoot,\n fullHeight && theme.slots.layoutRootFull,\n classNames?.root,\n className,\n )}\n style={layoutStyle}\n >\n {hasHeader ? (\n <div\n className={cn(theme.slots.layoutHeader, classNames?.header)}\n style={theme.styles.layoutHeader}\n >\n {header}\n </div>\n ) : null}\n\n <div\n className={cn(theme.slots.layoutBody, classNames?.body)}\n style={bodyStyle}\n >\n {hasSidebar ? (\n <aside\n className={cn(theme.slots.layoutSidebar, classNames?.sidebar)}\n style={theme.styles.layoutSidebar}\n >\n {sidebar}\n </aside>\n ) : null}\n\n <main\n className={cn(theme.slots.layoutMain, classNames?.main)}\n style={theme.styles.layoutMain}\n >\n {children}\n </main>\n\n {hasAside ? (\n <aside\n className={cn(theme.slots.layoutAside, classNames?.aside)}\n style={theme.styles.layoutAside}\n >\n {aside}\n </aside>\n ) : null}\n </div>\n\n {hasFooter ? (\n <div\n className={cn(theme.slots.layoutFooter, classNames?.footer)}\n style={theme.styles.layoutFooter}\n >\n {footer}\n </div>\n ) : null}\n </div>\n );\n}\n\nexport function BaseLayoutPane({\n as = 'div',\n scrollable = false,\n bordered = true,\n surface = 'default',\n children,\n appearance,\n className,\n classNames,\n style,\n ...paneProps\n}: BaseLayoutPaneProps) {\n const theme = resolveBaseAppearance(appearance);\n const Component = as as ElementType;\n\n return (\n <Component\n {...paneProps}\n className={cn(\n theme.slots.layoutPane,\n scrollable && theme.slots.layoutPaneScrollable,\n bordered && theme.slots.layoutPaneBordered,\n surface === 'muted' && theme.slots.layoutPaneMuted,\n surface === 'soft' && theme.slots.layoutPaneSoft,\n surface === 'transparent' && theme.slots.layoutPaneTransparent,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.layoutPane,\n ...style,\n }}\n >\n {children}\n </Component>\n );\n}\n\nexport function BaseLayoutResizeHandle({\n orientation = 'horizontal',\n resizable = false,\n disabled = false,\n size,\n minSize,\n maxSize,\n label = 'Resize panels',\n appearance,\n className,\n classNames,\n style,\n tabIndex,\n ...handleProps\n}: BaseLayoutResizeHandleProps) {\n const theme = resolveBaseAppearance(appearance);\n const interactive = resizable && !disabled;\n const separatorOrientation = getSeparatorOrientation(orientation);\n\n return (\n <div\n {...handleProps}\n role={interactive ? 'separator' : undefined}\n aria-label={interactive ? label : undefined}\n aria-orientation={interactive ? separatorOrientation : undefined}\n aria-valuemin={interactive ? minSize : undefined}\n aria-valuemax={interactive ? maxSize : undefined}\n aria-valuenow={interactive ? size : undefined}\n aria-disabled={interactive ? undefined : true}\n tabIndex={interactive ? tabIndex ?? 0 : undefined}\n className={cn(\n theme.slots.layoutResizeHandle,\n orientation === 'horizontal'\n ? theme.slots.layoutResizeHandleHorizontal\n : theme.slots.layoutResizeHandleVertical,\n !interactive && theme.slots.layoutResizeHandleDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.layoutResizeHandle,\n ...style,\n }}\n >\n <span\n aria-hidden=\"true\"\n className={cn(\n theme.slots.layoutResizeHandleIndicator,\n orientation === 'horizontal' ? 'h-8 w-px' : 'h-px w-8',\n classNames?.indicator,\n )}\n />\n </div>\n );\n}\n\nexport function BaseLayoutSplit({\n orientation = 'horizontal',\n primary,\n secondary,\n children,\n resizable = false,\n size,\n defaultSize,\n minSize,\n maxSize,\n gap,\n keyboardStep,\n resizeLabel,\n appearance,\n className,\n classNames,\n style,\n onSizeChange,\n ...splitProps\n}: BaseLayoutSplitProps) {\n const theme = resolveBaseAppearance(appearance);\n const bounds = resolveSplitBounds({ minSize, maxSize, keyboardStep });\n const initialSize = resolveSplitSize(\n 'defaultSize',\n defaultSize,\n DEFAULT_SPLIT_SIZE,\n bounds.min,\n bounds.max,\n );\n const [uncontrolledSize, setUncontrolledSize] = useState(initialSize);\n const rootRef = useRef<HTMLDivElement | null>(null);\n const cleanupRef = useRef<(() => void) | null>(null);\n const controlled = size !== undefined;\n const renderedSize = resolveSplitSize(\n 'size',\n controlled ? size : uncontrolledSize,\n initialSize,\n bounds.min,\n bounds.max,\n );\n\n const commitSize = useCallback(\n (nextSize: number) => {\n const clampedSize = clamp(nextSize, bounds.min, bounds.max);\n if (!controlled) {\n setUncontrolledSize(clampedSize);\n }\n onSizeChange?.(clampedSize);\n },\n [bounds.max, bounds.min, controlled, onSizeChange],\n );\n\n const updateFromPointer = useCallback(\n (event: Pick<PointerEvent, 'clientX' | 'clientY'>) => {\n const root = rootRef.current;\n if (!root) return;\n const rect = root.getBoundingClientRect();\n const total = orientation === 'horizontal' ? rect.width : rect.height;\n if (total <= 0) return;\n const offset =\n orientation === 'horizontal'\n ? event.clientX - rect.left\n : event.clientY - rect.top;\n commitSize((offset / total) * 100);\n },\n [commitSize, orientation],\n );\n\n const stopResize = useCallback(() => {\n cleanupRef.current?.();\n cleanupRef.current = null;\n }, []);\n\n useEffect(() => stopResize, [stopResize]);\n\n const handlePointerDown = (event: ReactPointerEvent<HTMLDivElement>) => {\n if (!resizable) return;\n event.preventDefault();\n stopResize();\n updateFromPointer(event);\n\n const handleMove = (nextEvent: PointerEvent) => {\n updateFromPointer(nextEvent);\n };\n const handleStop = () => {\n stopResize();\n };\n\n window.addEventListener('pointermove', handleMove);\n window.addEventListener('pointerup', handleStop, { once: true });\n window.addEventListener('pointercancel', handleStop, { once: true });\n cleanupRef.current = () => {\n window.removeEventListener('pointermove', handleMove);\n window.removeEventListener('pointerup', handleStop);\n window.removeEventListener('pointercancel', handleStop);\n };\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n if (!resizable) return;\n const step = event.shiftKey ? bounds.keyboardStep * 4 : bounds.keyboardStep;\n let nextSize: number | undefined;\n\n if (event.key === 'Home') nextSize = bounds.min;\n if (event.key === 'End') nextSize = bounds.max;\n if (orientation === 'horizontal' && event.key === 'ArrowLeft') {\n nextSize = renderedSize - step;\n }\n if (orientation === 'horizontal' && event.key === 'ArrowRight') {\n nextSize = renderedSize + step;\n }\n if (orientation === 'vertical' && event.key === 'ArrowUp') {\n nextSize = renderedSize - step;\n }\n if (orientation === 'vertical' && event.key === 'ArrowDown') {\n nextSize = renderedSize + step;\n }\n\n if (nextSize === undefined) return;\n event.preventDefault();\n commitSize(nextSize);\n };\n\n const resolvedGap = gap !== undefined ? toCssSize(gap, '0px') : undefined;\n const resizeTrack = resolvedGap !== undefined\n ? 'var(--base-layout-split-gap)'\n : 'auto';\n const resizeHandleStyle: CSSProperties | undefined =\n resolvedGap !== undefined\n ? orientation === 'horizontal'\n ? { width: 'var(--base-layout-split-gap)' }\n : { height: 'var(--base-layout-split-gap)' }\n : undefined;\n const splitStyle: CssVariableStyle = {\n ...theme.styles.layoutSplit,\n [orientation === 'horizontal' ? 'gridTemplateColumns' : 'gridTemplateRows']:\n resizable\n ? `${renderedSize}% ${resizeTrack} minmax(0, 1fr)`\n : `${renderedSize}% minmax(0, 1fr)`,\n ...(resizable ? { gap: 0 } : {}),\n ...(resolvedGap !== undefined\n ? {\n '--base-layout-split-gap': resolvedGap,\n ...(resizable ? {} : { gap: resolvedGap }),\n }\n : {}),\n ...style,\n };\n\n return (\n <div\n {...splitProps}\n ref={rootRef}\n className={cn(\n theme.slots.layoutSplitRoot,\n orientation === 'horizontal'\n ? theme.slots.layoutSplitHorizontal\n : theme.slots.layoutSplitVertical,\n classNames?.root,\n className,\n )}\n style={splitStyle}\n >\n <div\n className={cn(\n theme.slots.layoutSplitPane,\n theme.slots.layoutSplitPrimary,\n classNames?.primary,\n )}\n style={theme.styles.layoutSplitPane}\n >\n {hasRenderableNode(primary) ? primary : children}\n </div>\n\n {resizable ? (\n <BaseLayoutResizeHandle\n orientation={orientation}\n resizable\n size={renderedSize}\n minSize={bounds.min}\n maxSize={bounds.max}\n label={resizeLabel}\n appearance={appearance}\n className={classNames?.handle}\n style={resizeHandleStyle}\n onPointerDown={handlePointerDown}\n onKeyDown={handleKeyDown}\n />\n ) : null}\n\n <div\n className={cn(\n theme.slots.layoutSplitPane,\n theme.slots.layoutSplitSecondary,\n classNames?.secondary,\n )}\n style={theme.styles.layoutSplitPane}\n >\n {secondary}\n </div>\n </div>\n );\n}\n","import type { BaseLoadingStateProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nfunction DefaultLoadingIcon({ className }: { className?: string }) {\n return (\n <svg\n aria-hidden=\"true\"\n viewBox=\"0 0 24 24\"\n className={className}\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 function BaseLoadingState({\n icon,\n title,\n description,\n actions,\n appearance,\n className,\n classNames,\n style,\n ...stateProps\n}: BaseLoadingStateProps) {\n const theme = resolveBaseAppearance(appearance);\n const resolvedIcon =\n icon ?? <DefaultLoadingIcon className={theme.slots.loadingSpinner} />;\n\n return (\n <div\n {...stateProps}\n aria-busy=\"true\"\n className={cn(theme.slots.stateRoot, classNames?.root, className)}\n style={{\n ...theme.styles.stateRoot,\n ...style,\n }}\n >\n <div\n className={cn(theme.slots.stateIcon, classNames?.icon)}\n style={theme.styles.stateIcon}\n >\n {resolvedIcon}\n </div>\n {hasRenderableNode(title) ? (\n <div className={cn(theme.slots.stateTitle, classNames?.title)}>\n {title}\n </div>\n ) : null}\n {hasRenderableNode(description) ? (\n <div\n className={cn(theme.slots.stateDescription, classNames?.description)}\n >\n {description}\n </div>\n ) : null}\n {hasRenderableNode(actions) ? (\n <div className={cn(theme.slots.stateActions, classNames?.actions)}>\n {actions}\n </div>\n ) : null}\n </div>\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 type { BaseNoticeProps } from './types';\nimport { getBaseNoticeToneClassName, resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nexport function BaseNotice({\n tone,\n icon,\n title,\n description,\n actions,\n children,\n appearance,\n className,\n classNames,\n style,\n ...noticeProps\n}: BaseNoticeProps) {\n const theme = resolveBaseAppearance(appearance);\n const resolvedDescription = children ?? description;\n\n return (\n <div\n {...noticeProps}\n className={cn(\n theme.slots.noticeBase,\n getBaseNoticeToneClassName(theme, tone),\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.notice,\n ...style,\n }}\n >\n {hasRenderableNode(icon) ? (\n <div className={cn(theme.slots.noticeIcon, classNames?.icon)}>\n {icon}\n </div>\n ) : null}\n <div className=\"min-w-0 flex-1\">\n {hasRenderableNode(title) ? (\n <div className={cn(theme.slots.noticeTitle, classNames?.title)}>\n {title}\n </div>\n ) : null}\n {hasRenderableNode(resolvedDescription) ? (\n <div\n className={cn(\n theme.slots.noticeDescription,\n classNames?.description,\n )}\n >\n {resolvedDescription}\n </div>\n ) : null}\n {hasRenderableNode(actions) ? (\n <div className={cn(theme.slots.noticeActions, classNames?.actions)}>\n {actions}\n </div>\n ) : null}\n </div>\n </div>\n );\n}\n","import type { ElementType } from 'react';\n\nimport type { BasePanelProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nexport function BasePanel({\n as = 'article',\n title,\n description,\n media,\n header,\n footer,\n children,\n interactive,\n selected,\n disabled,\n appearance,\n className,\n classNames,\n style,\n ...panelProps\n}: BasePanelProps) {\n const theme = resolveBaseAppearance(appearance);\n const Component = as as ElementType;\n const hasHeader =\n header !== undefined\n ? hasRenderableNode(header)\n : hasRenderableNode(title) || hasRenderableNode(description);\n const hasMedia = media !== undefined && media !== null;\n const bodyIsStandalone = !hasHeader && !hasMedia;\n\n return (\n <Component\n {...panelProps}\n aria-disabled={disabled || undefined}\n className={cn(\n theme.slots.panelRoot,\n interactive && !disabled && theme.slots.panelInteractive,\n selected && theme.slots.panelSelected,\n disabled && theme.slots.panelDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.panel,\n ...style,\n }}\n >\n {hasMedia ? (\n <div className={cn(theme.slots.panelMedia, classNames?.media)}>\n {media}\n </div>\n ) : null}\n\n {hasHeader ? (\n <div\n className={cn(theme.slots.panelHeader, classNames?.header)}\n style={theme.styles.panelHeader}\n >\n {header !== undefined ? (\n header\n ) : (\n <>\n {hasRenderableNode(title) ? (\n <div className={cn(theme.slots.panelTitle, classNames?.title)}>\n {title}\n </div>\n ) : null}\n {hasRenderableNode(description) ? (\n <div\n className={cn(\n theme.slots.panelDescription,\n classNames?.description,\n )}\n >\n {description}\n </div>\n ) : null}\n </>\n )}\n </div>\n ) : null}\n\n {children !== undefined && children !== null ? (\n <div\n className={cn(\n theme.slots.panelBody,\n bodyIsStandalone && theme.slots.panelBodyStandalone,\n classNames?.body,\n )}\n style={theme.styles.panelBody}\n >\n {children}\n </div>\n ) : null}\n\n {footer !== undefined && footer !== null ? (\n <div\n className={cn(theme.slots.panelFooter, classNames?.footer)}\n style={theme.styles.panelFooter}\n >\n {footer}\n </div>\n ) : null}\n </Component>\n );\n}\n","import type { BasePaginationProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nfunction clampPage(page: number, pageCount: number) {\n return Math.min(Math.max(page, 1), Math.max(pageCount, 1));\n}\n\nexport function BasePagination({\n page = 1,\n pageSize = 20,\n total = 0,\n label,\n previousLabel = 'Previous',\n nextLabel = 'Next',\n appearance,\n className,\n classNames,\n style,\n onPageChange,\n ...paginationProps\n}: BasePaginationProps) {\n const theme = resolveBaseAppearance(appearance);\n const safePageSize = Math.max(pageSize, 1);\n const pageCount = Math.max(Math.ceil(Math.max(total, 0) / safePageSize), 1);\n const currentPage = clampPage(page, pageCount);\n const start = total > 0 ? (currentPage - 1) * safePageSize + 1 : 0;\n const end = Math.min(currentPage * safePageSize, total);\n const canPrevious = currentPage > 1;\n const canNext = currentPage < pageCount;\n\n return (\n <div\n {...paginationProps}\n className={cn(theme.slots.paginationRoot, classNames?.root, className)}\n style={{\n ...theme.styles.pagination,\n ...style,\n }}\n >\n <div className={cn(theme.slots.paginationInfo, classNames?.info)}>\n {hasRenderableNode(label)\n ? label\n : total > 0\n ? `${start}-${end} of ${total}`\n : '0 results'}\n </div>\n\n <div className={cn(theme.slots.paginationControls, classNames?.controls)}>\n <button\n type=\"button\"\n disabled={!canPrevious}\n className={cn(\n theme.slots.paginationButton,\n !canPrevious && theme.slots.paginationButtonDisabled,\n classNames?.button,\n )}\n onClick={() => canPrevious && onPageChange?.(currentPage - 1)}\n >\n {previousLabel}\n </button>\n <span className={cn(theme.slots.paginationPage, classNames?.page)}>\n {currentPage} / {pageCount}\n </span>\n <button\n type=\"button\"\n disabled={!canNext}\n className={cn(\n theme.slots.paginationButton,\n !canNext && theme.slots.paginationButtonDisabled,\n classNames?.button,\n )}\n onClick={() => canNext && onPageChange?.(currentPage + 1)}\n >\n {nextLabel}\n </button>\n </div>\n </div>\n );\n}\n","import type { BaseProgressProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nfunction toFiniteNumber(value: number | undefined, fallback: number) {\n return Number.isFinite(value) ? Number(value) : fallback;\n}\n\nfunction clamp(value: number, min: number, max: number) {\n return Math.min(Math.max(value, min), max);\n}\n\nexport function BaseProgress({\n value = 0,\n max = 100,\n label,\n showValue = false,\n valueFormatter,\n appearance,\n className,\n classNames,\n style,\n 'aria-label': nativeAriaLabel,\n ...progressProps\n}: BaseProgressProps) {\n const theme = resolveBaseAppearance(appearance);\n const safeMax = Math.max(toFiniteNumber(max, 100), 1);\n const safeValue = clamp(toFiniteNumber(value, 0), 0, safeMax);\n const percent = (safeValue / safeMax) * 100;\n const renderedValue =\n valueFormatter?.(safeValue, safeMax) ?? `${Math.round(percent)}%`;\n const hasLabelRow = hasRenderableNode(label) || showValue;\n const labelText = typeof label === 'string' ? label : undefined;\n\n return (\n <div\n {...progressProps}\n role=\"progressbar\"\n aria-valuemin={0}\n aria-valuemax={safeMax}\n aria-valuenow={safeValue}\n aria-label={nativeAriaLabel ?? labelText}\n className={cn(theme.slots.progressRoot, classNames?.root, className)}\n style={{\n ...theme.styles.progressRoot,\n ...style,\n }}\n >\n {hasLabelRow ? (\n <div className={cn(theme.slots.progressLabelRow, classNames?.labelRow)}>\n {hasRenderableNode(label) ? (\n <span className={cn(theme.slots.progressLabel, classNames?.label)}>\n {label}\n </span>\n ) : (\n <span />\n )}\n {showValue ? (\n <span className={cn(theme.slots.progressValue, classNames?.value)}>\n {renderedValue}\n </span>\n ) : null}\n </div>\n ) : null}\n <div className={cn(theme.slots.progressTrack, classNames?.track)}>\n <div\n className={cn(theme.slots.progressIndicator, classNames?.indicator)}\n style={{\n width: `${percent}%`,\n ...theme.styles.progressIndicator,\n }}\n />\n </div>\n </div>\n );\n}\n","import { useId, useState } from 'react';\n\nimport type { BaseRadioGroupProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nfunction toDomId(value: string) {\n return value.replace(/[^a-zA-Z0-9_-]/g, '-');\n}\n\nexport function BaseRadioGroup({\n options = [],\n value,\n defaultValue,\n name,\n orientation = 'vertical',\n disabled = false,\n appearance,\n className,\n classNames,\n style,\n children,\n onValueChange,\n id,\n ...groupProps\n}: BaseRadioGroupProps) {\n const theme = resolveBaseAppearance(appearance);\n const generatedId = useId();\n const rootId = id ?? generatedId;\n const resolvedName = name ?? rootId;\n const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);\n const isControlled = value !== undefined;\n const selectedValue = isControlled ? value : uncontrolledValue;\n\n const handleSelect = (nextValue: string, optionDisabled?: boolean) => {\n if (disabled || optionDisabled) return;\n if (!isControlled) {\n setUncontrolledValue(nextValue);\n }\n onValueChange?.(nextValue);\n };\n\n return (\n <div\n {...groupProps}\n id={id}\n role=\"radiogroup\"\n aria-orientation={orientation}\n aria-disabled={disabled || undefined}\n className={cn(\n theme.slots.radioGroupRoot,\n orientation === 'horizontal' && 'flex flex-wrap items-center',\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.radioGroup,\n ...style,\n }}\n >\n {options.map((option) => {\n const optionDisabled = disabled || option.disabled;\n const checked = option.value === selectedValue;\n const optionId = `${rootId}-${toDomId(option.value)}`;\n\n return (\n <label\n key={option.value}\n htmlFor={optionId}\n className={cn(\n theme.slots.radioOption,\n optionDisabled && theme.slots.radioOptionDisabled,\n classNames?.option,\n )}\n style={theme.styles.radioOption}\n >\n <span\n className={cn(\n theme.slots.radioMarker,\n checked && theme.slots.radioMarkerChecked,\n classNames?.marker,\n )}\n >\n <input\n id={optionId}\n type=\"radio\"\n name={resolvedName}\n value={option.value}\n checked={checked}\n disabled={optionDisabled}\n className={cn(theme.slots.radioInput, classNames?.input)}\n onChange={() => handleSelect(option.value, option.disabled)}\n />\n {checked ? (\n <span\n aria-hidden=\"true\"\n className={cn(theme.slots.radioIndicator, classNames?.indicator)}\n />\n ) : null}\n </span>\n {hasRenderableNode(option.icon) ? (\n <span className={cn('mt-0.5 shrink-0', classNames?.icon)}>\n {option.icon}\n </span>\n ) : null}\n <span className={cn(theme.slots.radioContent, classNames?.content)}>\n <span className={cn(theme.slots.radioLabel, classNames?.label)}>\n {option.label}\n </span>\n {hasRenderableNode(option.description) ? (\n <span\n className={cn(\n theme.slots.radioDescription,\n classNames?.description,\n )}\n >\n {option.description}\n </span>\n ) : null}\n </span>\n </label>\n );\n })}\n {children}\n </div>\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 type { BaseSectionHeaderProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nexport function BaseSectionHeader({\n eyebrow,\n title,\n description,\n actions,\n children,\n appearance,\n className,\n classNames,\n style,\n ...headerProps\n}: BaseSectionHeaderProps) {\n const theme = resolveBaseAppearance(appearance);\n const resolvedDescription = children ?? description;\n\n return (\n <div\n {...headerProps}\n className={cn(theme.slots.sectionHeaderRoot, classNames?.root, className)}\n style={{\n ...theme.styles.sectionHeader,\n ...style,\n }}\n >\n <div\n className={cn(theme.slots.sectionHeaderContent, classNames?.content)}\n >\n {hasRenderableNode(eyebrow) ? (\n <div\n className={cn(\n theme.slots.sectionHeaderEyebrow,\n classNames?.eyebrow,\n )}\n >\n {eyebrow}\n </div>\n ) : null}\n {hasRenderableNode(title) ? (\n <div className={cn(theme.slots.sectionHeaderTitle, classNames?.title)}>\n {title}\n </div>\n ) : null}\n {hasRenderableNode(resolvedDescription) ? (\n <div\n className={cn(\n theme.slots.sectionHeaderDescription,\n classNames?.description,\n )}\n >\n {resolvedDescription}\n </div>\n ) : null}\n </div>\n\n {hasRenderableNode(actions) ? (\n <div className={cn(theme.slots.sectionHeaderActions, classNames?.actions)}>\n {actions}\n </div>\n ) : null}\n </div>\n );\n}\n","import { useState } from 'react';\n\nimport type { BaseSegmentedControlProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nfunction getInitialSegmentValue(\n options: BaseSegmentedControlProps['options'],\n defaultValue?: string,\n) {\n if (defaultValue && options?.some((option) => option.value === defaultValue)) {\n const defaultOption = options.find((option) => option.value === defaultValue);\n if (!defaultOption?.disabled) {\n return defaultValue;\n }\n }\n return options?.find((option) => !option.disabled)?.value ?? options?.[0]?.value;\n}\n\nexport function BaseSegmentedControl({\n options = [],\n value,\n defaultValue,\n appearance,\n className,\n classNames,\n style,\n onValueChange,\n ...controlProps\n}: BaseSegmentedControlProps) {\n const theme = resolveBaseAppearance(appearance);\n const [uncontrolledValue, setUncontrolledValue] = useState(() =>\n getInitialSegmentValue(options, defaultValue),\n );\n const isControlled = value !== undefined;\n const selectedValue = isControlled ? value : uncontrolledValue;\n\n const handleSelect = (nextValue: string, disabled?: boolean) => {\n if (disabled) return;\n if (!isControlled) {\n setUncontrolledValue(nextValue);\n }\n onValueChange?.(nextValue);\n };\n\n return (\n <div\n {...controlProps}\n role=\"radiogroup\"\n className={cn(theme.slots.segmentedRoot, classNames?.root, className)}\n style={{\n ...theme.styles.segmentedRoot,\n ...style,\n }}\n >\n {options.map((option) => {\n const selected = option.value === selectedValue;\n return (\n <button\n key={option.value}\n type=\"button\"\n role=\"radio\"\n aria-checked={selected}\n disabled={option.disabled}\n className={cn(\n theme.slots.segmentedItem,\n selected && theme.slots.segmentedItemActive,\n option.disabled && theme.slots.segmentedItemDisabled,\n classNames?.item,\n )}\n style={theme.styles.segmentedItem}\n onClick={() => handleSelect(option.value, option.disabled)}\n >\n {hasRenderableNode(option.icon) ? (\n <span className={cn('inline-flex h-4 w-4 shrink-0', classNames?.icon)}>\n {option.icon}\n </span>\n ) : null}\n <span className={cn('min-w-0 truncate', classNames?.label)}>\n {option.label}\n </span>\n </button>\n );\n })}\n </div>\n );\n}\n","import type { BaseSkeletonProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn } from './utils';\n\nconst variantClassNames = {\n line: 'h-4 w-full',\n block: 'h-24 w-full',\n circle: 'aspect-square h-10 rounded-full',\n};\n\nexport function BaseSkeleton({\n variant = 'line',\n animated = true,\n appearance,\n className,\n classNames,\n style,\n ...skeletonProps\n}: BaseSkeletonProps) {\n const theme = resolveBaseAppearance(appearance);\n\n return (\n <div\n {...skeletonProps}\n aria-hidden=\"true\"\n className={cn(\n theme.slots.skeletonRoot,\n variantClassNames[variant],\n animated && 'animate-pulse',\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.skeleton,\n ...style,\n }}\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 type { BaseTableFooterBarProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nexport function BaseTableFooterBar({\n appearance,\n leading,\n actions,\n attached = true,\n children,\n className,\n classNames,\n style,\n ...footerBarProps\n}: BaseTableFooterBarProps) {\n const theme = resolveBaseAppearance(appearance);\n\n return (\n <div\n {...footerBarProps}\n data-base-table-footer-bar=\"\"\n data-attached={attached ? '' : undefined}\n className={cn(\n theme.slots.tableFooterBar,\n attached && theme.slots.tableFooterBarAttached,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.tableFooterBar,\n ...style,\n }}\n >\n {hasRenderableNode(leading) ? (\n <div className={cn(theme.slots.tableFooterBarLeading, classNames?.leading)}>\n {leading}\n </div>\n ) : null}\n\n {hasRenderableNode(children) ? (\n <div className={cn(theme.slots.tableFooterBarContent, classNames?.content)}>\n {children}\n </div>\n ) : null}\n\n {hasRenderableNode(actions) ? (\n <div className={cn(theme.slots.tableFooterBarActions, classNames?.actions)}>\n {actions}\n </div>\n ) : null}\n </div>\n );\n}\n","import { useId, useMemo, useState } from 'react';\n\nimport type { BaseTabsProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nfunction getInitialTabValue(items: BaseTabsProps['items'], defaultValue?: string) {\n if (\n defaultValue &&\n items?.some((item) => item.value === defaultValue && !item.disabled)\n ) {\n return defaultValue;\n }\n return items?.find((item) => !item.disabled)?.value ?? items?.[0]?.value;\n}\n\nfunction toDomId(value: string) {\n return value.replace(/[^a-zA-Z0-9_-]/g, '-');\n}\n\nexport function BaseTabs({\n items = [],\n value,\n defaultValue,\n orientation = 'horizontal',\n appearance,\n className,\n classNames,\n style,\n onValueChange,\n id,\n ...tabsProps\n}: BaseTabsProps) {\n const theme = resolveBaseAppearance(appearance);\n const [uncontrolledValue, setUncontrolledValue] = useState(() =>\n getInitialTabValue(items, defaultValue),\n );\n const isControlled = value !== undefined;\n const selectedValue = isControlled ? value : uncontrolledValue;\n const selectedItem = useMemo(\n () =>\n items.find((item) => item.value === selectedValue) ??\n items.find((item) => !item.disabled) ??\n items[0],\n [items, selectedValue],\n );\n const generatedId = useId();\n const rootId = id ?? generatedId;\n\n const handleSelect = (nextValue: string, disabled?: boolean) => {\n if (disabled) return;\n if (!isControlled) {\n setUncontrolledValue(nextValue);\n }\n onValueChange?.(nextValue);\n };\n\n return (\n <div\n {...tabsProps}\n id={id}\n className={cn(theme.slots.tabsRoot, classNames?.root, className)}\n style={style}\n >\n <div\n role=\"tablist\"\n aria-orientation={orientation}\n className={cn(\n theme.slots.tabsList,\n orientation === 'vertical' && 'flex-col items-stretch',\n classNames?.list,\n )}\n style={theme.styles.tabsList}\n >\n {items.map((item) => {\n const itemId = toDomId(item.value);\n const selected = item.value === selectedItem?.value;\n return (\n <button\n key={item.value}\n id={`${rootId}-${itemId}-tab`}\n type=\"button\"\n role=\"tab\"\n aria-selected={selected}\n aria-controls={`${rootId}-${itemId}-panel`}\n disabled={item.disabled}\n className={cn(\n theme.slots.tabsTrigger,\n selected && theme.slots.tabsTriggerActive,\n item.disabled && theme.slots.tabsTriggerDisabled,\n classNames?.trigger,\n )}\n style={theme.styles.tabsTrigger}\n onClick={() => handleSelect(item.value, item.disabled)}\n >\n <span className=\"min-w-0 truncate\">{item.label}</span>\n </button>\n );\n })}\n </div>\n\n {selectedItem ? (\n <div\n id={`${rootId}-${toDomId(selectedItem.value)}-panel`}\n role=\"tabpanel\"\n tabIndex={0}\n aria-labelledby={`${rootId}-${toDomId(selectedItem.value)}-tab`}\n className={cn(theme.slots.tabsPanel, classNames?.panel)}\n style={theme.styles.tabsPanel}\n >\n {hasRenderableNode(selectedItem.content) ? (\n selectedItem.content\n ) : hasRenderableNode(selectedItem.description) ? (\n <p className=\"m-0 text-muted-foreground\">{selectedItem.description}</p>\n ) : null}\n </div>\n ) : null}\n </div>\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 { BaseToolbarProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nexport function BaseToolbar({\n leading,\n title,\n description,\n actions,\n children,\n appearance,\n className,\n classNames,\n style,\n ...toolbarProps\n}: BaseToolbarProps) {\n const theme = resolveBaseAppearance(appearance);\n const hasTitleBlock = hasRenderableNode(title) || hasRenderableNode(description);\n\n return (\n <div\n {...toolbarProps}\n className={cn(theme.slots.toolbarRoot, classNames?.root, className)}\n style={{\n ...theme.styles.toolbar,\n ...style,\n }}\n >\n <div className={cn(theme.slots.toolbarLeading, classNames?.leading)}>\n {hasRenderableNode(leading) ? leading : null}\n {hasTitleBlock ? (\n <div className={cn(theme.slots.toolbarContent, classNames?.content)}>\n {hasRenderableNode(title) ? (\n <div className={cn(theme.slots.toolbarTitle, classNames?.title)}>\n {title}\n </div>\n ) : null}\n {hasRenderableNode(description) ? (\n <div\n className={cn(\n theme.slots.toolbarDescription,\n classNames?.description,\n )}\n >\n {description}\n </div>\n ) : null}\n </div>\n ) : null}\n </div>\n\n {hasRenderableNode(children) ? (\n <div className={cn(theme.slots.toolbarContent, classNames?.content)}>\n {children}\n </div>\n ) : null}\n\n {hasRenderableNode(actions) ? (\n <div className={cn(theme.slots.toolbarActions, classNames?.actions)}>\n {actions}\n </div>\n ) : null}\n </div>\n );\n}\n"]}
1
+ {"version":3,"sources":["../../../src/components/base/utils.ts","../../../src/components/base/theme.ts","../../../src/components/base/BaseAccordion.tsx","../../../src/components/base/BaseAvatar.tsx","../../../src/components/base/BaseBadge.tsx","../../../src/components/base/BaseBreadcrumb.tsx","../../../src/components/base/BaseButton.tsx","../../../src/components/base/BaseCheckbox.tsx","../../../src/components/base/BaseContextMenu.tsx","../../../src/components/base/BaseDescriptionList.tsx","../../../src/components/base/BaseDialog.tsx","../../../src/components/base/BaseDivider.tsx","../../../src/components/base/BaseDropdownMenu.tsx","../../../src/components/base/BaseEmptyState.tsx","../../../src/components/base/BaseField.tsx","../../../src/components/base/BaseInput.tsx","../../../src/components/base/BaseLayout.tsx","../../../src/components/base/BaseLoadingState.tsx","../../../src/components/base/BaseMultiSelect.tsx","../../../src/components/base/BaseNotice.tsx","../../../src/components/base/BasePanel.tsx","../../../src/components/base/BasePagination.tsx","../../../src/components/base/BaseProgress.tsx","../../../src/components/base/BaseRadioGroup.tsx","../../../src/components/base/BaseSelect.tsx","../../../src/components/base/BaseSectionHeader.tsx","../../../src/components/base/BaseSegmentedControl.tsx","../../../src/components/base/BaseSkeleton.tsx","../../../src/components/base/BaseSwitch.tsx","../../../src/components/base/BaseTable.tsx","../../../src/components/base/BaseTableFooterBar.tsx","../../../src/components/base/BaseTabs.tsx","../../../src/components/base/BaseTextarea.tsx","../../../src/components/base/BaseTooltip.tsx","../../../src/components/base/BaseToolbar.tsx"],"names":["useId","useState","jsx","jsxs","forwardRef","BaseButton","BaseCheckbox","useRef","useEffect","Fragment","ContextMenu","BaseInput","useCallback","BaseMultiSelect","useMemo","clamp","toDomId","getInitialValue","getNextEnabledIndex","BaseSelect","BaseSwitch","createContext","useContext","toCssSize","BaseTableHead","BaseTextarea","useLayoutEffect","createPortal"],"mappings":"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","file":"index.js","sourcesContent":["import type { ReactNode } from 'react';\r\n\r\nexport function cn(...parts: Array<string | false | null | undefined>) {\r\n return parts.filter(Boolean).join(' ');\r\n}\r\n\r\nexport function hasRenderableNode(node: ReactNode) {\r\n return node !== undefined && node !== null && typeof node !== 'boolean';\r\n}\r\n","import type {\r\n BaseAppearance,\r\n BaseBackground,\r\n BaseBorder,\r\n BaseControlTone,\r\n BaseDensity,\r\n BaseRadius,\r\n BaseResolvedTheme,\r\n BaseThemePresetId,\r\n BaseThemeSlots,\r\n BaseThemeStyles,\r\n} from './types';\r\nimport { cn } from './utils';\r\n\r\ntype ResolvedSlots = Required<BaseThemeSlots>;\r\n\r\nconst emptyStyles: BaseThemeStyles = {};\r\n\r\nconst motionBase =\r\n 'motion-safe:transition motion-safe:duration-300 motion-safe:ease-out';\r\n\r\nconst motionInteractive =\r\n 'motion-safe:transition-all motion-safe:duration-300 motion-safe:ease-out';\r\n\r\nconst motionTransform =\r\n 'motion-safe:transition-transform motion-safe:duration-300 motion-safe:ease-out';\r\n\r\nconst baseSlots: ResolvedSlots = {\r\n buttonBase:\r\n cn(\r\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',\r\n 'cursor-pointer disabled:!cursor-not-allowed',\r\n motionInteractive,\r\n ),\r\n buttonDefault:\r\n 'border-border bg-background text-foreground hover:bg-accent/60',\r\n buttonPrimary:\r\n 'border-primary/20 bg-primary/10 text-primary hover:bg-primary/15',\r\n buttonSuccess:\r\n 'border-emerald-500/30 bg-emerald-500/10 text-emerald-700 hover:bg-emerald-500/15',\r\n buttonWarning:\r\n 'border-amber-500/30 bg-amber-500/10 text-amber-700 hover:bg-amber-500/15',\r\n buttonDanger:\r\n 'border-destructive/20 bg-destructive/10 text-destructive hover:bg-destructive/15',\r\n buttonMuted:\r\n 'border-border/60 bg-muted/45 text-muted-foreground hover:bg-muted/70 hover:text-foreground',\r\n buttonActive: 'border-primary/35 bg-primary/10 text-primary',\r\n buttonDisabled: '!cursor-not-allowed opacity-60',\r\n buttonIconOnly: 'w-9 px-0',\r\n buttonIcon:\r\n 'inline-flex h-4 w-4 shrink-0 items-center justify-center',\r\n buttonLabel: 'min-w-0 truncate',\r\n badgeBase:\r\n cn(\r\n 'inline-flex max-w-full items-center gap-1.5 rounded-full border px-2 py-0.5 text-xs font-medium',\r\n motionBase,\r\n ),\r\n badgeDefault: 'border-border/60 bg-background text-foreground',\r\n badgePrimary: 'border-primary/30 bg-primary/10 text-primary',\r\n badgeSuccess: 'border-emerald-500/30 bg-emerald-500/10 text-emerald-700',\r\n badgeWarning: 'border-amber-500/30 bg-amber-500/10 text-amber-700',\r\n badgeDanger: 'border-destructive/30 bg-destructive/10 text-destructive',\r\n badgeMuted: 'border-border/60 bg-muted text-muted-foreground',\r\n badgeIcon: 'inline-flex h-3.5 w-3.5 shrink-0 items-center justify-center',\r\n badgeLabel: 'min-w-0 truncate',\r\n panelRoot:\r\n cn(\r\n 'group relative flex min-w-0 flex-col overflow-hidden rounded-lg border border-border/70 bg-background',\r\n motionInteractive,\r\n ),\r\n panelInteractive:\r\n 'cursor-pointer hover:shadow-md',\r\n panelSelected: 'border-primary/45 bg-primary/5',\r\n panelDisabled: '!cursor-not-allowed opacity-60',\r\n panelMedia:\r\n 'shrink-0 overflow-hidden',\r\n panelHeader: 'min-w-0 p-4',\r\n panelTitle: 'min-w-0 truncate text-sm font-semibold leading-none text-foreground',\r\n panelDescription: 'mt-1 text-sm leading-5 text-muted-foreground',\r\n panelBody: 'min-w-0 px-4 pb-4 text-sm text-foreground',\r\n panelBodyStandalone: 'pt-4',\r\n panelFooter: 'shrink-0 border-t border-border/60 px-4 py-3',\r\n stateRoot:\r\n cn(\r\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',\r\n motionBase,\r\n ),\r\n stateIcon:\r\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',\r\n stateTitle: 'text-sm font-semibold text-foreground',\r\n stateDescription: 'mt-2 max-w-md text-sm leading-6 text-muted-foreground',\r\n stateActions: 'mt-5 flex flex-wrap items-center justify-center gap-2',\r\n loadingSpinner: 'h-5 w-5 animate-spin',\r\n fieldRoot: 'grid min-w-0 gap-2',\r\n fieldLabelRow: 'flex min-w-0 items-center justify-between gap-3',\r\n fieldLabel: 'min-w-0 text-sm font-medium leading-none text-foreground',\r\n fieldRequired: 'text-destructive',\r\n fieldDescription: 'text-sm leading-5 text-muted-foreground',\r\n fieldMessage: 'text-sm leading-5 text-muted-foreground',\r\n fieldControl: 'min-w-0',\r\n controlWrapper:\r\n cn(\r\n 'relative flex min-w-0 items-center rounded-md border border-border bg-background text-foreground focus-within:border-primary/35',\r\n motionBase,\r\n ),\r\n controlBase:\r\n 'min-w-0 flex-1 bg-transparent px-3 text-sm text-foreground outline-none placeholder:text-muted-foreground disabled:!cursor-not-allowed',\r\n controlInput: 'h-9',\r\n controlTextarea: 'min-h-24 resize-y py-2 leading-6',\r\n controlSelect: 'h-9 cursor-pointer appearance-none pr-9 disabled:!cursor-not-allowed',\r\n controlIcon:\r\n 'pointer-events-none ml-3 inline-flex h-4 w-4 shrink-0 items-center justify-center text-muted-foreground',\r\n controlTrailing:\r\n 'mr-3 inline-flex shrink-0 items-center justify-center text-muted-foreground',\r\n controlInvalid:\r\n 'border-destructive/45 focus-within:border-destructive/60',\r\n controlDisabled: '!cursor-not-allowed opacity-60',\r\n controlReadOnly: 'bg-muted/35',\r\n selectChevron:\r\n cn(\r\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',\r\n motionTransform,\r\n ),\r\n selectMenu:\r\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',\r\n selectOption:\r\n cn(\r\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',\r\n motionInteractive,\r\n ),\r\n selectOptionActive: 'bg-accent text-accent-foreground',\r\n selectOptionSelected: 'bg-primary/10 text-primary',\r\n selectOptionDisabled: '!cursor-not-allowed opacity-50',\r\n selectPlaceholder: 'text-muted-foreground',\r\n selectNative: 'sr-only',\r\n switchRoot: 'inline-flex min-w-0 cursor-pointer items-start gap-3',\r\n switchInput: 'sr-only',\r\n switchTrack:\r\n cn(\r\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',\r\n motionBase,\r\n ),\r\n switchThumb:\r\n cn(\r\n 'h-4 w-4 translate-x-1 rounded-full bg-background shadow-sm',\r\n motionTransform,\r\n ),\r\n switchChecked: 'border-primary/40 bg-primary/80 text-primary-foreground',\r\n switchDisabled: '!cursor-not-allowed opacity-60',\r\n switchContent: 'grid min-w-0 gap-1',\r\n switchLabel: 'text-sm font-medium leading-none text-foreground',\r\n switchDescription: 'text-sm leading-5 text-muted-foreground',\r\n checkboxRoot: 'inline-flex min-w-0 cursor-pointer items-start gap-3',\r\n checkboxInput: 'sr-only',\r\n checkboxBox:\r\n cn(\r\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',\r\n motionBase,\r\n ),\r\n checkboxBoxChecked: 'border-primary/45 bg-primary text-primary-foreground',\r\n checkboxBoxInvalid: 'border-destructive/50',\r\n checkboxIndicator: 'text-[11px] font-bold leading-none',\r\n checkboxDisabled: '!cursor-not-allowed opacity-60',\r\n checkboxContent: 'grid min-w-0 gap-1',\r\n checkboxLabel: 'text-sm font-medium leading-none text-foreground',\r\n checkboxDescription: 'text-sm leading-5 text-muted-foreground',\r\n radioGroupRoot: 'grid min-w-0 gap-2',\r\n radioOption:\r\n cn(\r\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',\r\n motionInteractive,\r\n 'hover:bg-muted/35',\r\n ),\r\n radioInput: 'sr-only',\r\n radioMarker:\r\n cn(\r\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',\r\n motionBase,\r\n ),\r\n radioMarkerChecked: 'border-primary/50 bg-primary/10',\r\n radioIndicator: 'h-2 w-2 rounded-full bg-primary',\r\n radioOptionDisabled: '!cursor-not-allowed opacity-60 hover:bg-background',\r\n radioContent: 'grid min-w-0 gap-1',\r\n radioLabel: 'text-sm font-medium leading-none text-foreground',\r\n radioDescription: 'text-sm leading-5 text-muted-foreground',\r\n dialogRoot: 'relative',\r\n dialogTrigger: '',\r\n dialogTriggerDisabled: '!cursor-not-allowed opacity-60',\r\n dialogOverlay:\r\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',\r\n dialogContent:\r\n 'fixed inset-0 z-50 flex min-h-0 items-center justify-center p-4',\r\n dialogPanel:\r\n cn(\r\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',\r\n 'motion-safe:animate-in motion-safe:fade-in motion-safe:zoom-in-95 motion-safe:duration-300 motion-safe:ease-out',\r\n ),\r\n dialogHeader: 'grid min-w-0 gap-1 border-b border-border/60 px-5 py-4',\r\n dialogTitle: 'min-w-0 pr-8 text-base font-semibold leading-6 text-foreground',\r\n dialogDescription: 'text-sm leading-6 text-muted-foreground',\r\n dialogBody: 'min-h-0 min-w-0 overflow-auto px-5 py-4 text-sm text-foreground',\r\n dialogFooter:\r\n 'flex shrink-0 flex-wrap items-center justify-end gap-2 border-t border-border/60 px-5 py-4',\r\n dialogClose:\r\n cn(\r\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',\r\n motionInteractive,\r\n ),\r\n dropdownRoot: 'relative inline-flex min-w-0',\r\n dropdownTrigger: '',\r\n dropdownTriggerDisabled: '!cursor-not-allowed opacity-60',\r\n dropdownMenu:\r\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',\r\n dropdownMenuTop: 'bottom-[calc(100%+0.375rem)] top-auto',\r\n dropdownMenuEnd: 'left-auto right-0',\r\n dropdownLabel:\r\n 'px-2.5 py-1.5 text-xs font-semibold uppercase tracking-[0.12em] text-muted-foreground',\r\n dropdownSeparator: 'my-1 h-px bg-border/70',\r\n dropdownItem:\r\n cn(\r\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',\r\n motionInteractive,\r\n ),\r\n dropdownItemDanger: 'text-destructive hover:bg-destructive/10',\r\n dropdownItemDisabled: '!cursor-not-allowed opacity-50 hover:bg-transparent',\r\n dropdownItemIcon: 'inline-flex h-4 w-4 shrink-0 items-center justify-center',\r\n dropdownItemContent: 'grid min-w-0 flex-1 gap-0.5',\r\n dropdownItemLabel: 'min-w-0 truncate',\r\n dropdownItemDescription:\r\n 'min-w-0 truncate text-xs leading-4 text-muted-foreground',\r\n dropdownItemShortcut:\r\n 'ml-3 shrink-0 text-xs font-medium text-muted-foreground',\r\n tooltipRoot: 'relative inline-flex min-w-0',\r\n tooltipTrigger: 'inline-flex min-w-0',\r\n tooltipContent:\r\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',\r\n noticeBase:\r\n cn(\r\n 'flex min-w-0 gap-3 rounded-lg border px-4 py-3 text-sm',\r\n motionBase,\r\n 'motion-safe:animate-in motion-safe:fade-in',\r\n ),\r\n noticeDefault: 'border-border bg-background text-foreground',\r\n noticePrimary: 'border-primary/25 bg-primary/10 text-primary',\r\n noticeSuccess:\r\n 'border-emerald-500/30 bg-emerald-500/10 text-emerald-700',\r\n noticeWarning: 'border-amber-500/30 bg-amber-500/10 text-amber-700',\r\n noticeDanger: 'border-destructive/30 bg-destructive/10 text-destructive',\r\n noticeMuted: 'border-border/60 bg-muted/35 text-muted-foreground',\r\n noticeIcon:\r\n 'mt-0.5 inline-flex h-4 w-4 shrink-0 items-center justify-center motion-safe:animate-in motion-safe:fade-in',\r\n noticeTitle: 'font-semibold leading-5',\r\n noticeDescription: 'leading-6',\r\n noticeActions: 'mt-3 flex flex-wrap items-center gap-2',\r\n dividerRoot: cn('shrink-0 border-border/70', motionBase),\r\n dividerLabel:\r\n 'mx-3 shrink-0 text-xs font-medium uppercase tracking-[0.12em] text-muted-foreground motion-safe:animate-in motion-safe:fade-in',\r\n sectionHeaderRoot:\r\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',\r\n sectionHeaderContent: 'grid min-w-0 gap-1',\r\n sectionHeaderEyebrow:\r\n 'text-xs font-semibold uppercase tracking-[0.14em] text-muted-foreground',\r\n sectionHeaderTitle: 'text-base font-semibold leading-6 text-foreground',\r\n sectionHeaderDescription: 'max-w-2xl text-sm leading-6 text-muted-foreground',\r\n sectionHeaderActions: 'flex shrink-0 flex-wrap items-center gap-2',\r\n tabsRoot: 'grid min-w-0 gap-3',\r\n tabsList:\r\n cn(\r\n 'inline-flex min-w-0 flex-wrap items-center gap-1 rounded-lg border border-border/70 bg-muted/30 p-1',\r\n motionBase,\r\n ),\r\n tabsTrigger:\r\n cn(\r\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',\r\n motionInteractive,\r\n ),\r\n tabsTriggerActive:\r\n 'bg-background text-foreground shadow-sm',\r\n tabsTriggerDisabled: '!cursor-not-allowed opacity-50 hover:bg-transparent',\r\n tabsPanel:\r\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',\r\n segmentedRoot:\r\n cn(\r\n 'inline-flex min-w-0 items-center gap-1 rounded-lg border border-border/70 bg-muted/30 p-1',\r\n motionBase,\r\n ),\r\n segmentedItem:\r\n cn(\r\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',\r\n motionInteractive,\r\n ),\r\n segmentedItemActive:\r\n 'bg-background text-foreground shadow-sm',\r\n segmentedItemDisabled: '!cursor-not-allowed opacity-50 hover:bg-transparent',\r\n progressRoot: 'grid min-w-0 gap-2',\r\n progressTrack:\r\n 'h-2 w-full overflow-hidden rounded-full bg-muted',\r\n progressIndicator:\r\n 'h-full rounded-full bg-primary motion-safe:transition-[width] motion-safe:duration-500 motion-safe:ease-out',\r\n progressLabelRow: 'flex min-w-0 items-center justify-between gap-3',\r\n progressLabel: 'min-w-0 truncate text-sm font-medium text-foreground',\r\n progressValue: 'shrink-0 text-xs font-medium text-muted-foreground',\r\n skeletonRoot:\r\n 'relative overflow-hidden rounded-md bg-muted/70',\r\n avatarRoot:\r\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',\r\n avatarImage:\r\n 'h-full w-full object-cover',\r\n avatarFallback:\r\n 'flex h-full w-full items-center justify-center bg-muted text-muted-foreground',\r\n avatarStatus:\r\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',\r\n avatarText: 'min-w-0 truncate text-sm font-medium text-foreground',\r\n toolbarRoot:\r\n cn(\r\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',\r\n motionBase,\r\n ),\r\n toolbarLeading: 'flex min-w-0 items-center gap-3',\r\n toolbarTitle: 'min-w-0 truncate text-sm font-semibold text-foreground',\r\n toolbarDescription: 'mt-0.5 text-sm leading-5 text-muted-foreground',\r\n toolbarContent: 'min-w-0 flex-1',\r\n toolbarActions: 'flex shrink-0 flex-wrap items-center gap-2',\r\n breadcrumbRoot: 'min-w-0 text-sm text-muted-foreground',\r\n breadcrumbList: 'flex min-w-0 flex-wrap items-center gap-1.5',\r\n breadcrumbItem: 'inline-flex min-w-0 items-center gap-1.5',\r\n breadcrumbLink:\r\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',\r\n breadcrumbCurrent: 'min-w-0 truncate font-medium text-foreground',\r\n breadcrumbSeparator: 'shrink-0 text-muted-foreground/70',\r\n paginationRoot:\r\n 'flex min-w-0 flex-wrap items-center justify-between gap-3 text-sm',\r\n paginationInfo: 'min-w-0 text-muted-foreground',\r\n paginationControls: 'flex shrink-0 items-center gap-1.5',\r\n paginationButton:\r\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',\r\n paginationButtonDisabled: '!cursor-not-allowed opacity-50',\r\n paginationPage:\r\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',\r\n descriptionListRoot:\r\n 'grid min-w-0 gap-3 text-sm',\r\n descriptionListItem:\r\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',\r\n descriptionListTerm:\r\n 'min-w-0 truncate text-xs font-medium uppercase tracking-[0.08em] text-muted-foreground',\r\n descriptionListValue: 'min-w-0 text-sm leading-6 text-foreground',\r\n accordionRoot: 'grid min-w-0 gap-2',\r\n accordionItem:\r\n 'overflow-hidden rounded-lg border border-border/70 bg-background motion-safe:transition motion-safe:duration-300 motion-safe:ease-out',\r\n accordionTrigger:\r\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',\r\n accordionTriggerIcon:\r\n cn(\r\n 'h-2 w-2 shrink-0 rotate-45 border-b border-r border-current text-muted-foreground',\r\n motionTransform,\r\n ),\r\n accordionPanel:\r\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',\r\n menuTrigger: 'inline-flex min-w-0',\r\n menuContent:\r\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',\r\n menuLabel: 'px-2 py-1.5 text-xs font-medium text-muted-foreground',\r\n menuSeparator: '-mx-1 my-1 h-px bg-border',\r\n menuItem:\r\n cn(\r\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',\r\n motionInteractive,\r\n ),\r\n menuItemDefault: 'text-foreground',\r\n menuItemPrimary: 'text-primary focus:text-primary data-[highlighted]:text-primary',\r\n menuItemSuccess:\r\n 'text-emerald-700 focus:text-emerald-700 data-[highlighted]:text-emerald-700',\r\n menuItemWarning:\r\n 'text-amber-700 focus:text-amber-700 data-[highlighted]:text-amber-700',\r\n menuItemDanger:\r\n 'text-destructive focus:text-destructive data-[highlighted]:text-destructive',\r\n menuItemMuted:\r\n 'text-muted-foreground focus:text-foreground data-[highlighted]:text-foreground',\r\n menuItemDisabled:\r\n '!cursor-not-allowed opacity-50 data-[disabled]:pointer-events-none',\r\n menuItemIcon: 'inline-flex h-4 w-4 shrink-0 items-center justify-center',\r\n menuItemLabel: 'min-w-0 flex-1 truncate',\r\n menuItemShortcut:\r\n 'ml-4 shrink-0 text-xs font-medium text-muted-foreground',\r\n menuCheckboxIndicator:\r\n 'absolute left-2 inline-flex h-4 w-4 items-center justify-center text-current',\r\n menuRadioIndicator:\r\n 'absolute left-2 inline-flex h-4 w-4 items-center justify-center text-current',\r\n menuSubTrigger:\r\n cn(\r\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',\r\n motionInteractive,\r\n ),\r\n menuSubTriggerIcon:\r\n 'ml-auto inline-flex h-4 w-4 shrink-0 items-center justify-center text-muted-foreground',\r\n menuSubContent:\r\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',\r\n tableContainer:\r\n cn(\r\n 'relative min-w-0 overflow-auto rounded-lg border border-border/70 bg-background',\r\n motionBase,\r\n ),\r\n tableContainerFooterAttached: '!rounded-b-none !shadow-none',\r\n tableRoot: 'w-full caption-bottom border-collapse text-sm text-foreground',\r\n tableCaption: 'mt-3 text-sm text-muted-foreground',\r\n tableHeader: 'border-b border-border/70 bg-muted/35 [&_tr]:bg-inherit [&_th]:bg-inherit',\r\n tableBody: '[&_tr:last-child]:border-0',\r\n tableFooter: 'border-t border-border/70 bg-muted/30 font-medium',\r\n tableFooterBar:\r\n cn(\r\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',\r\n motionBase,\r\n ),\r\n tableFooterBarAttached:\r\n '-mt-px rounded-t-none border-t border-border/70 shadow-none',\r\n tableFooterBarLeading: 'flex min-w-0 items-center gap-2',\r\n tableFooterBarContent: 'min-w-0 flex-1',\r\n tableFooterBarActions: 'ml-auto flex shrink-0 flex-wrap items-center gap-2',\r\n tableRow:\r\n cn(\r\n 'border-b border-border/60 data-[state=selected]:bg-primary/5',\r\n motionBase,\r\n ),\r\n tableRowInteractive: 'cursor-pointer hover:bg-muted/35',\r\n tableRowSelected: 'bg-primary/5',\r\n tableRowDisabled: '!cursor-not-allowed opacity-60',\r\n tableHead:\r\n 'relative h-11 whitespace-nowrap px-3 py-2 text-left align-middle text-xs font-semibold text-muted-foreground',\r\n tableHeadContent: 'flex min-w-0 items-center justify-between gap-2',\r\n tableHeadMain: 'flex min-w-0 items-center gap-2',\r\n tableHeadIcon: 'inline-flex h-4 w-4 shrink-0 items-center justify-center text-muted-foreground',\r\n tableHeadText: 'grid min-w-0 gap-0.5',\r\n tableHeadLabel: 'min-w-0 truncate text-xs font-semibold leading-4 text-foreground',\r\n tableHeadDescription: 'min-w-0 truncate text-[11px] font-normal leading-4 text-muted-foreground',\r\n tableHeadMeta: 'shrink-0 text-[11px] font-medium text-muted-foreground',\r\n tableHeadActions: 'flex shrink-0 items-center gap-1',\r\n tableHeadSortButton:\r\n cn(\r\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',\r\n motionBase,\r\n ),\r\n tableHeadSortIcon:\r\n cn(\r\n 'inline-flex h-3 w-3 shrink-0 items-center justify-center text-muted-foreground',\r\n motionTransform,\r\n ),\r\n tableHeadDragHandle:\r\n cn(\r\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',\r\n motionBase,\r\n ),\r\n tableHeadResizeHandle:\r\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',\r\n tableCell: 'px-3 py-2 align-middle text-sm text-foreground',\r\n tableCellAlignCenter: 'text-center',\r\n tableCellAlignRight: 'text-right',\r\n tableEmptyRow: 'border-b border-border/60',\r\n tableEmptyCell: 'px-4 py-10 text-center',\r\n tableEmptyContent: 'mx-auto flex max-w-md flex-col items-center justify-center text-center',\r\n tableEmptyIcon:\r\n 'mb-3 flex h-10 w-10 items-center justify-center rounded-full bg-muted text-muted-foreground',\r\n tableEmptyTitle: 'text-sm font-semibold text-foreground',\r\n tableEmptyDescription: 'mt-1 text-sm leading-6 text-muted-foreground',\r\n tableEmptyActions: 'mt-4 flex flex-wrap items-center justify-center gap-2',\r\n tableLoadingRow: 'border-b border-border/60',\r\n tableLoadingCell: 'px-3 py-2',\r\n tableLoadingSkeleton: 'h-4 w-full rounded-md bg-muted/70',\r\n layoutRoot:\r\n cn(\r\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',\r\n motionBase,\r\n ),\r\n layoutRootFull: 'h-full min-h-0',\r\n layoutHeader: 'min-w-0',\r\n layoutBody: 'grid min-h-0 min-w-0 overflow-hidden gap-3',\r\n layoutSidebar: 'min-h-0 min-w-0 overflow-hidden',\r\n layoutMain: 'min-h-0 min-w-0 overflow-hidden',\r\n layoutAside: 'min-h-0 min-w-0 overflow-hidden',\r\n layoutFooter: 'min-w-0',\r\n layoutPane:\r\n cn(\r\n 'h-full max-h-full min-h-0 min-w-0 overflow-hidden rounded-lg bg-background text-foreground',\r\n motionBase,\r\n ),\r\n layoutPaneScrollable: 'overflow-auto',\r\n layoutPaneBordered: 'border border-border/70',\r\n layoutPaneMuted: 'bg-muted/25',\r\n layoutPaneSoft: 'bg-background/95 shadow-sm',\r\n layoutPaneTransparent: 'bg-transparent shadow-none',\r\n layoutSplitRoot: 'grid min-h-0 min-w-0 overflow-hidden',\r\n layoutSplitHorizontal: 'grid-flow-col',\r\n layoutSplitVertical: 'grid-flow-row',\r\n layoutSplitPane: 'min-h-0 min-w-0 overflow-hidden',\r\n layoutSplitPrimary: '',\r\n layoutSplitSecondary: '',\r\n layoutResizeHandle:\r\n cn(\r\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',\r\n motionInteractive,\r\n ),\r\n layoutResizeHandleHorizontal: 'w-2 cursor-col-resize',\r\n layoutResizeHandleVertical: 'h-2 cursor-row-resize',\r\n layoutResizeHandleDisabled: 'cursor-default opacity-60',\r\n layoutResizeHandleIndicator:\r\n 'rounded-full bg-muted-foreground/45 group-hover/resize:bg-primary/70',\r\n};\r\n\r\nconst densitySlots: Record<BaseDensity, Partial<BaseThemeSlots>> = {\r\n compact: {\r\n buttonBase: 'h-8 px-2.5 text-xs',\r\n buttonIconOnly: 'h-8 w-8 px-0',\r\n badgeBase: 'px-1.5 py-0 text-[11px]',\r\n panelHeader: 'p-3',\r\n panelBody: 'px-3 pb-3 text-xs',\r\n panelBodyStandalone: 'pt-3',\r\n panelFooter: 'px-3 py-2',\r\n stateRoot: 'min-h-36 px-4 py-7',\r\n stateIcon: 'mb-3 h-10 w-10',\r\n fieldRoot: 'gap-1.5',\r\n fieldLabel: 'text-xs',\r\n fieldDescription: 'text-xs leading-5',\r\n fieldMessage: 'text-xs leading-5',\r\n controlInput: 'h-8 text-xs',\r\n controlTextarea: 'min-h-20 text-xs',\r\n controlSelect: 'h-8 text-xs',\r\n selectMenu: 'text-xs',\r\n selectOption: 'min-h-7 px-2 py-1 text-xs',\r\n switchTrack: 'h-5 w-9',\r\n switchThumb: 'h-3.5 w-3.5',\r\n checkboxBox: 'h-3.5 w-3.5',\r\n checkboxLabel: 'text-xs',\r\n checkboxDescription: 'text-xs leading-5',\r\n radioOption: 'px-2 py-1.5 text-xs',\r\n radioMarker: 'h-3.5 w-3.5',\r\n radioIndicator: 'h-1.5 w-1.5',\r\n radioLabel: 'text-xs',\r\n radioDescription: 'text-xs leading-5',\r\n dialogPanel: 'max-w-md',\r\n dialogHeader: 'px-4 py-3',\r\n dialogTitle: 'text-sm leading-5',\r\n dialogDescription: 'text-xs leading-5',\r\n dialogBody: 'px-4 py-3 text-xs',\r\n dialogFooter: 'px-4 py-3',\r\n dropdownMenu: 'min-w-44 text-xs',\r\n dropdownItem: 'px-2 py-1.5 text-xs',\r\n tooltipContent: 'text-[11px] leading-4',\r\n noticeBase: 'px-3 py-2 text-xs',\r\n dividerLabel: 'text-[11px]',\r\n sectionHeaderRoot: 'gap-2',\r\n sectionHeaderTitle: 'text-sm leading-5',\r\n sectionHeaderDescription: 'text-xs leading-5',\r\n tabsList: 'gap-0.5 p-0.5',\r\n tabsTrigger: 'px-2 py-1 text-xs',\r\n tabsPanel: 'p-3 text-xs',\r\n segmentedRoot: 'gap-0.5 p-0.5',\r\n segmentedItem: 'px-2 py-1 text-xs',\r\n progressTrack: 'h-1.5',\r\n avatarRoot: 'text-xs',\r\n toolbarRoot: 'gap-2 px-3 py-2',\r\n toolbarTitle: 'text-xs',\r\n toolbarDescription: 'text-xs leading-5',\r\n paginationButton: 'h-7 min-w-7 px-2 text-xs',\r\n paginationPage: 'h-7 min-w-7 px-2 text-xs',\r\n descriptionListRoot: 'gap-2 text-xs',\r\n descriptionListItem: 'px-2 py-1.5',\r\n descriptionListTerm: 'text-[11px]',\r\n descriptionListValue: 'text-xs leading-5',\r\n accordionTrigger: 'px-3 py-2 text-xs',\r\n accordionPanel: 'px-3 py-2 text-xs leading-5',\r\n menuContent: 'min-w-40 p-0.5 text-xs',\r\n menuSubContent: 'min-w-36 p-0.5 text-xs',\r\n menuLabel: 'px-2 py-1 text-[11px]',\r\n menuItem: 'min-h-7 px-2 py-1 text-xs',\r\n menuSubTrigger: 'min-h-7 px-2 py-1 text-xs',\r\n menuItemShortcut: 'text-[11px]',\r\n tableHead: 'h-9 px-2 py-1.5 text-[11px]',\r\n tableCell: 'px-2 py-1.5 text-xs',\r\n tableHeadLabel: 'text-[11px]',\r\n tableHeadDescription: 'text-[10px] leading-3',\r\n tableLoadingCell: 'px-2 py-1.5',\r\n layoutRoot: 'gap-2 p-2',\r\n layoutBody: 'gap-2',\r\n layoutPane: 'rounded-md text-xs',\r\n layoutResizeHandleHorizontal: 'w-1.5',\r\n layoutResizeHandleVertical: 'h-1.5',\r\n },\r\n default: {\r\n buttonBase: 'h-9',\r\n },\r\n comfortable: {\r\n buttonBase: 'h-10 px-3.5',\r\n buttonIconOnly: 'h-10 w-10 px-0',\r\n badgeBase: 'px-2.5 py-1',\r\n panelHeader: 'p-5',\r\n panelBody: 'px-5 pb-5',\r\n panelBodyStandalone: 'pt-5',\r\n panelFooter: 'px-5 py-3.5',\r\n stateRoot: 'min-h-56 px-8 py-12',\r\n stateIcon: 'mb-5 h-14 w-14',\r\n fieldRoot: 'gap-2.5',\r\n controlInput: 'h-10',\r\n controlTextarea: 'min-h-28',\r\n controlSelect: 'h-10',\r\n selectMenu: 'p-1.5',\r\n selectOption: 'min-h-9 px-3 py-2',\r\n switchTrack: 'h-7 w-12',\r\n switchThumb: 'h-5 w-5',\r\n checkboxBox: 'h-5 w-5',\r\n radioOption: 'px-4 py-3',\r\n radioMarker: 'h-5 w-5',\r\n radioIndicator: 'h-2.5 w-2.5',\r\n dialogPanel: 'max-w-xl',\r\n dialogHeader: 'px-6 py-5',\r\n dialogBody: 'px-6 py-5',\r\n dialogFooter: 'px-6 py-5',\r\n dropdownMenu: 'min-w-56',\r\n dropdownItem: 'px-3 py-2.5',\r\n noticeBase: 'px-5 py-4',\r\n sectionHeaderTitle: 'text-lg leading-7',\r\n tabsTrigger: 'px-3.5 py-2',\r\n tabsPanel: 'p-5',\r\n segmentedItem: 'px-3.5 py-2',\r\n progressTrack: 'h-2.5',\r\n toolbarRoot: 'px-5 py-4',\r\n paginationButton: 'h-9 min-w-9 px-3',\r\n paginationPage: 'h-9 min-w-9 px-3',\r\n descriptionListItem: 'px-4 py-3',\r\n accordionTrigger: 'px-5 py-4',\r\n accordionPanel: 'px-5 py-4',\r\n menuContent: 'min-w-48 p-1.5',\r\n menuSubContent: 'min-w-44 p-1.5',\r\n menuItem: 'min-h-9 px-3 py-2',\r\n menuSubTrigger: 'min-h-9 px-3 py-2',\r\n tableHead: 'h-12 px-4 py-3',\r\n tableCell: 'px-4 py-3',\r\n tableLoadingCell: 'px-4 py-3',\r\n layoutRoot: 'gap-4 p-4',\r\n layoutBody: 'gap-4',\r\n layoutPane: 'rounded-xl',\r\n layoutResizeHandleHorizontal: 'w-2.5',\r\n layoutResizeHandleVertical: 'h-2.5',\r\n },\r\n};\r\n\r\nconst radiusSlots: Record<BaseRadius, Partial<BaseThemeSlots>> = {\r\n none: {\r\n buttonBase: 'rounded-none',\r\n badgeBase: 'rounded-none',\r\n panelRoot: 'rounded-none',\r\n stateRoot: 'rounded-none',\r\n stateIcon: 'rounded-none',\r\n controlWrapper: 'rounded-none',\r\n selectMenu: 'rounded-none',\r\n selectOption: 'rounded-none',\r\n switchTrack: 'rounded-none',\r\n switchThumb: 'rounded-none',\r\n checkboxBox: 'rounded-none',\r\n radioOption: 'rounded-none',\r\n dialogPanel: 'rounded-none',\r\n dialogClose: 'rounded-none',\r\n dropdownMenu: 'rounded-none',\r\n dropdownItem: 'rounded-none',\r\n tooltipContent: 'rounded-none',\r\n noticeBase: 'rounded-none',\r\n tabsList: 'rounded-none',\r\n tabsTrigger: 'rounded-none',\r\n tabsPanel: 'rounded-none',\r\n segmentedRoot: 'rounded-none',\r\n segmentedItem: 'rounded-none',\r\n progressTrack: 'rounded-none',\r\n progressIndicator: 'rounded-none',\r\n skeletonRoot: 'rounded-none',\r\n avatarRoot: 'rounded-none',\r\n avatarStatus: 'rounded-none',\r\n toolbarRoot: 'rounded-none',\r\n paginationButton: 'rounded-none',\r\n paginationPage: 'rounded-none',\r\n descriptionListItem: 'rounded-none',\r\n accordionItem: 'rounded-none',\r\n menuContent: 'rounded-none',\r\n menuItem: 'rounded-none',\r\n menuSubTrigger: 'rounded-none',\r\n menuSubContent: 'rounded-none',\r\n tableContainer: 'rounded-none',\r\n tableEmptyIcon: 'rounded-none',\r\n tableLoadingSkeleton: 'rounded-none',\r\n layoutRoot: 'rounded-none',\r\n layoutPane: 'rounded-none',\r\n },\r\n sm: {\r\n buttonBase: 'rounded-sm',\r\n badgeBase: 'rounded-sm',\r\n panelRoot: 'rounded-sm',\r\n stateRoot: 'rounded-sm',\r\n stateIcon: 'rounded-sm',\r\n controlWrapper: 'rounded-sm',\r\n selectMenu: 'rounded-sm',\r\n selectOption: 'rounded-sm',\r\n switchTrack: 'rounded-sm',\r\n switchThumb: 'rounded-sm',\r\n checkboxBox: 'rounded-sm',\r\n radioOption: 'rounded-sm',\r\n dialogPanel: 'rounded-sm',\r\n dialogClose: 'rounded-sm',\r\n dropdownMenu: 'rounded-sm',\r\n dropdownItem: 'rounded-sm',\r\n tooltipContent: 'rounded-sm',\r\n noticeBase: 'rounded-sm',\r\n tabsList: 'rounded-sm',\r\n tabsTrigger: 'rounded-sm',\r\n tabsPanel: 'rounded-sm',\r\n segmentedRoot: 'rounded-sm',\r\n segmentedItem: 'rounded-sm',\r\n progressTrack: 'rounded-sm',\r\n progressIndicator: 'rounded-sm',\r\n skeletonRoot: 'rounded-sm',\r\n avatarRoot: 'rounded-sm',\r\n avatarStatus: 'rounded-sm',\r\n toolbarRoot: 'rounded-sm',\r\n paginationButton: 'rounded-sm',\r\n paginationPage: 'rounded-sm',\r\n descriptionListItem: 'rounded-sm',\r\n accordionItem: 'rounded-sm',\r\n menuContent: 'rounded-sm',\r\n menuItem: 'rounded-sm',\r\n menuSubTrigger: 'rounded-sm',\r\n menuSubContent: 'rounded-sm',\r\n tableContainer: 'rounded-sm',\r\n tableEmptyIcon: 'rounded-sm',\r\n tableLoadingSkeleton: 'rounded-sm',\r\n layoutRoot: 'rounded-sm',\r\n layoutPane: 'rounded-sm',\r\n },\r\n md: {},\r\n lg: {\r\n buttonBase: 'rounded-lg',\r\n badgeBase: 'rounded-lg',\r\n panelRoot: 'rounded-xl',\r\n stateRoot: 'rounded-xl',\r\n stateIcon: 'rounded-xl',\r\n controlWrapper: 'rounded-lg',\r\n selectMenu: 'rounded-lg',\r\n selectOption: 'rounded-md',\r\n switchTrack: 'rounded-full',\r\n switchThumb: 'rounded-full',\r\n checkboxBox: 'rounded-md',\r\n radioOption: 'rounded-xl',\r\n dialogPanel: 'rounded-xl',\r\n dialogClose: 'rounded-lg',\r\n dropdownMenu: 'rounded-lg',\r\n dropdownItem: 'rounded-md',\r\n tooltipContent: 'rounded-md',\r\n noticeBase: 'rounded-xl',\r\n tabsList: 'rounded-xl',\r\n tabsTrigger: 'rounded-lg',\r\n tabsPanel: 'rounded-xl',\r\n segmentedRoot: 'rounded-xl',\r\n segmentedItem: 'rounded-lg',\r\n skeletonRoot: 'rounded-lg',\r\n toolbarRoot: 'rounded-xl',\r\n descriptionListItem: 'rounded-lg',\r\n accordionItem: 'rounded-xl',\r\n menuContent: 'rounded-lg',\r\n menuItem: 'rounded-md',\r\n menuSubTrigger: 'rounded-md',\r\n menuSubContent: 'rounded-lg',\r\n tableContainer: 'rounded-xl',\r\n tableEmptyIcon: 'rounded-xl',\r\n tableLoadingSkeleton: 'rounded-lg',\r\n layoutRoot: 'rounded-xl',\r\n layoutPane: 'rounded-xl',\r\n },\r\n xl: {\r\n buttonBase: 'rounded-xl',\r\n badgeBase: 'rounded-xl',\r\n panelRoot: 'rounded-2xl',\r\n stateRoot: 'rounded-2xl',\r\n stateIcon: 'rounded-2xl',\r\n controlWrapper: 'rounded-xl',\r\n selectMenu: 'rounded-xl',\r\n selectOption: 'rounded-lg',\r\n switchTrack: 'rounded-full',\r\n switchThumb: 'rounded-full',\r\n checkboxBox: 'rounded-lg',\r\n radioOption: 'rounded-2xl',\r\n dialogPanel: 'rounded-2xl',\r\n dialogClose: 'rounded-xl',\r\n dropdownMenu: 'rounded-xl',\r\n dropdownItem: 'rounded-lg',\r\n tooltipContent: 'rounded-lg',\r\n noticeBase: 'rounded-2xl',\r\n tabsList: 'rounded-2xl',\r\n tabsTrigger: 'rounded-xl',\r\n tabsPanel: 'rounded-2xl',\r\n segmentedRoot: 'rounded-2xl',\r\n segmentedItem: 'rounded-xl',\r\n skeletonRoot: 'rounded-xl',\r\n toolbarRoot: 'rounded-2xl',\r\n paginationButton: 'rounded-xl',\r\n paginationPage: 'rounded-xl',\r\n descriptionListItem: 'rounded-xl',\r\n accordionItem: 'rounded-2xl',\r\n menuContent: 'rounded-xl',\r\n menuItem: 'rounded-lg',\r\n menuSubTrigger: 'rounded-lg',\r\n menuSubContent: 'rounded-xl',\r\n tableContainer: 'rounded-2xl',\r\n tableEmptyIcon: 'rounded-2xl',\r\n tableLoadingSkeleton: 'rounded-xl',\r\n layoutRoot: 'rounded-2xl',\r\n layoutPane: 'rounded-2xl',\r\n },\r\n full: {\r\n buttonBase: 'rounded-full',\r\n badgeBase: 'rounded-full',\r\n panelRoot: 'rounded-2xl',\r\n stateRoot: 'rounded-2xl',\r\n stateIcon: 'rounded-full',\r\n controlWrapper: 'rounded-full',\r\n selectMenu: 'rounded-2xl',\r\n selectOption: 'rounded-full',\r\n switchTrack: 'rounded-full',\r\n switchThumb: 'rounded-full',\r\n checkboxBox: 'rounded-full',\r\n radioOption: 'rounded-2xl',\r\n dialogPanel: 'rounded-2xl',\r\n dialogClose: 'rounded-full',\r\n dropdownMenu: 'rounded-2xl',\r\n dropdownItem: 'rounded-full',\r\n tooltipContent: 'rounded-full',\r\n noticeBase: 'rounded-2xl',\r\n tabsList: 'rounded-full',\r\n tabsTrigger: 'rounded-full',\r\n tabsPanel: 'rounded-2xl',\r\n segmentedRoot: 'rounded-full',\r\n segmentedItem: 'rounded-full',\r\n progressTrack: 'rounded-full',\r\n progressIndicator: 'rounded-full',\r\n skeletonRoot: 'rounded-full',\r\n avatarRoot: 'rounded-full',\r\n avatarStatus: 'rounded-full',\r\n toolbarRoot: 'rounded-2xl',\r\n paginationButton: 'rounded-full',\r\n paginationPage: 'rounded-full',\r\n descriptionListItem: 'rounded-2xl',\r\n accordionItem: 'rounded-2xl',\r\n menuContent: 'rounded-2xl',\r\n menuItem: 'rounded-full',\r\n menuSubTrigger: 'rounded-full',\r\n menuSubContent: 'rounded-2xl',\r\n tableContainer: 'rounded-2xl',\r\n tableEmptyIcon: 'rounded-full',\r\n tableLoadingSkeleton: 'rounded-full',\r\n layoutRoot: 'rounded-2xl',\r\n layoutPane: 'rounded-2xl',\r\n },\r\n};\r\n\r\nconst borderSlots: Record<BaseBorder, Partial<BaseThemeSlots>> = {\r\n none: {\r\n buttonBase: 'border-transparent',\r\n badgeBase: 'border-transparent',\r\n panelRoot: 'border-transparent',\r\n panelFooter: 'border-transparent',\r\n stateRoot: 'border-transparent',\r\n controlWrapper: 'border-transparent',\r\n selectMenu: 'border-transparent',\r\n switchTrack: 'border-transparent',\r\n checkboxBox: 'border-transparent',\r\n radioOption: 'border-transparent',\r\n radioMarker: 'border-transparent',\r\n dialogPanel: 'border-transparent',\r\n dialogHeader: 'border-transparent',\r\n dialogFooter: 'border-transparent',\r\n dropdownMenu: 'border-transparent',\r\n tooltipContent: 'border-transparent',\r\n noticeBase: 'border-transparent',\r\n dividerRoot: 'border-transparent',\r\n tabsList: 'border-transparent',\r\n tabsPanel: 'border-transparent',\r\n segmentedRoot: 'border-transparent',\r\n avatarRoot: 'border-transparent',\r\n toolbarRoot: 'border-transparent',\r\n paginationButton: 'border-transparent',\r\n descriptionListItem: 'border-transparent',\r\n accordionItem: 'border-transparent',\r\n accordionPanel: 'border-transparent',\r\n menuContent: 'border-transparent',\r\n menuSeparator: 'bg-transparent',\r\n menuSubContent: 'border-transparent',\r\n tableContainer: 'border-transparent',\r\n tableHeader: 'border-transparent',\r\n tableFooter: 'border-transparent',\r\n tableFooterBar: 'border-transparent',\r\n tableFooterBarAttached: 'border-t border-transparent',\r\n tableRow: 'border-transparent',\r\n tableEmptyRow: 'border-transparent',\r\n tableLoadingRow: 'border-transparent',\r\n layoutRoot: 'border-transparent',\r\n layoutPaneBordered: 'border-transparent',\r\n layoutResizeHandle: 'bg-transparent hover:bg-transparent active:bg-transparent focus-visible:bg-transparent',\r\n },\r\n subtle: {\r\n buttonDefault: 'border-border/60',\r\n badgeDefault: 'border-border/60',\r\n panelRoot: 'border-border/60',\r\n panelFooter: 'border-border/60',\r\n stateRoot: 'border-border/60',\r\n controlWrapper: 'border-border/60',\r\n selectMenu: 'border-border/60',\r\n switchTrack: 'border-border/60',\r\n checkboxBox: 'border-border/60',\r\n radioOption: 'border-border/60',\r\n radioMarker: 'border-border/60',\r\n dialogPanel: 'border-border/60',\r\n dialogHeader: 'border-border/60',\r\n dialogFooter: 'border-border/60',\r\n dropdownMenu: 'border-border/60',\r\n tooltipContent: 'border-border/60',\r\n noticeDefault: 'border-border/60',\r\n dividerRoot: 'border-border/60',\r\n tabsList: 'border-border/60',\r\n tabsPanel: 'border-border/60',\r\n segmentedRoot: 'border-border/60',\r\n avatarRoot: 'border-border/60',\r\n toolbarRoot: 'border-border/60',\r\n paginationButton: 'border-border/60',\r\n descriptionListItem: 'border-border/60',\r\n accordionItem: 'border-border/60',\r\n accordionPanel: 'border-border/60',\r\n menuContent: 'border-border/60',\r\n menuSeparator: 'bg-border/60',\r\n menuSubContent: 'border-border/60',\r\n tableContainer: 'border-border/60',\r\n tableHeader: 'border-border/60',\r\n tableFooter: 'border-border/60',\r\n tableFooterBar: 'border-border/60',\r\n tableFooterBarAttached: 'border-t border-border/60',\r\n tableRow: 'border-border/50',\r\n tableEmptyRow: 'border-border/50',\r\n tableLoadingRow: 'border-border/50',\r\n layoutRoot: 'border-border/60',\r\n layoutPaneBordered: 'border-border/60',\r\n },\r\n solid: {},\r\n strong: {\r\n buttonDefault: 'border-foreground/20',\r\n badgeDefault: 'border-foreground/20',\r\n panelRoot: 'border-foreground/20',\r\n panelFooter: 'border-foreground/20',\r\n stateRoot: 'border-foreground/20',\r\n controlWrapper: 'border-foreground/20',\r\n selectMenu: 'border-foreground/20',\r\n switchTrack: 'border-foreground/20',\r\n checkboxBox: 'border-foreground/20',\r\n radioOption: 'border-foreground/20',\r\n radioMarker: 'border-foreground/20',\r\n dialogPanel: 'border-foreground/20',\r\n dialogHeader: 'border-foreground/15',\r\n dialogFooter: 'border-foreground/15',\r\n dropdownMenu: 'border-foreground/20',\r\n tooltipContent: 'border-foreground/20',\r\n noticeDefault: 'border-foreground/20',\r\n dividerRoot: 'border-foreground/20',\r\n tabsList: 'border-foreground/20',\r\n tabsPanel: 'border-foreground/20',\r\n segmentedRoot: 'border-foreground/20',\r\n avatarRoot: 'border-foreground/20',\r\n toolbarRoot: 'border-foreground/20',\r\n paginationButton: 'border-foreground/20',\r\n descriptionListItem: 'border-foreground/20',\r\n accordionItem: 'border-foreground/20',\r\n accordionPanel: 'border-foreground/20',\r\n menuContent: 'border-foreground/20',\r\n menuSeparator: 'bg-foreground/15',\r\n menuSubContent: 'border-foreground/20',\r\n tableContainer: 'border-foreground/20',\r\n tableHeader: 'border-foreground/20',\r\n tableFooter: 'border-foreground/20',\r\n tableFooterBar: 'border-foreground/20',\r\n tableFooterBarAttached: 'border-t border-foreground/20',\r\n tableRow: 'border-foreground/15',\r\n tableEmptyRow: 'border-foreground/15',\r\n tableLoadingRow: 'border-foreground/15',\r\n layoutRoot: 'border-foreground/20',\r\n layoutPaneBordered: 'border-foreground/20',\r\n layoutResizeHandle: 'hover:bg-foreground/15 active:bg-foreground/20 focus-visible:bg-foreground/15',\r\n },\r\n};\r\n\r\nconst backgroundSlots: Record<BaseBackground, Partial<BaseThemeSlots>> = {\r\n plain: {},\r\n muted: {\r\n buttonDefault: 'bg-muted/20 hover:bg-muted/45',\r\n panelRoot: 'bg-card',\r\n panelFooter: 'bg-muted/20',\r\n stateRoot: 'bg-muted/20',\r\n controlWrapper: 'bg-background',\r\n selectMenu: 'bg-background',\r\n selectOptionActive: 'bg-muted/70 text-foreground',\r\n checkboxBox: 'bg-background',\r\n radioOption: 'bg-card hover:bg-muted/45',\r\n radioMarker: 'bg-background',\r\n dialogPanel: 'bg-card',\r\n dropdownMenu: 'bg-background',\r\n dropdownItem: 'hover:bg-muted/60',\r\n tooltipContent: 'bg-popover',\r\n noticeDefault: 'bg-muted/20',\r\n tabsList: 'bg-muted/35',\r\n tabsTriggerActive: 'bg-background',\r\n tabsPanel: 'bg-card',\r\n segmentedRoot: 'bg-muted/35',\r\n segmentedItemActive: 'bg-background',\r\n progressTrack: 'bg-muted/60',\r\n skeletonRoot: 'bg-muted',\r\n toolbarRoot: 'bg-card',\r\n paginationButton: 'bg-background hover:bg-muted/60',\r\n paginationPage: 'bg-muted/60',\r\n descriptionListItem: 'bg-card',\r\n accordionItem: 'bg-card',\r\n menuContent: 'bg-background',\r\n menuItem: 'focus:bg-muted/70 data-[highlighted]:bg-muted/70',\r\n menuSubTrigger:\r\n 'focus:bg-muted/70 data-[highlighted]:bg-muted/70 data-[state=open]:bg-muted/70',\r\n menuSubContent: 'bg-background',\r\n tableContainer: 'bg-card',\r\n tableHeader: 'bg-muted/45',\r\n tableFooter: 'bg-muted/35',\r\n tableFooterBar: 'bg-muted/30 shadow-none',\r\n tableRowInteractive: 'cursor-pointer hover:bg-muted/45',\r\n tableLoadingSkeleton: 'bg-muted',\r\n layoutRoot: 'bg-card',\r\n layoutPane: 'bg-card',\r\n layoutPaneMuted: 'bg-muted/35',\r\n layoutResizeHandle: 'hover:bg-border/70 active:bg-border/80 focus-visible:bg-border/70',\r\n },\r\n soft: {\r\n buttonDefault: 'bg-muted/30 hover:bg-muted/55',\r\n panelRoot: 'bg-background/95 shadow-sm',\r\n stateRoot: 'bg-background/95 shadow-sm',\r\n controlWrapper: 'bg-background/95',\r\n selectMenu: 'bg-background/95 shadow-xl',\r\n selectOptionActive: 'bg-muted/60 text-foreground',\r\n checkboxBox: 'bg-background/95',\r\n radioOption: 'bg-background/95 shadow-sm hover:bg-muted/35',\r\n radioMarker: 'bg-background/95',\r\n dialogPanel: 'bg-background/95 shadow-xl',\r\n dropdownMenu: 'bg-background/95 shadow-xl',\r\n dropdownItem: 'hover:bg-muted/55',\r\n tooltipContent: 'bg-popover shadow-xl',\r\n noticeDefault: 'bg-background/95 shadow-sm',\r\n tabsList: 'bg-background/60 shadow-sm',\r\n tabsTriggerActive: 'bg-background',\r\n tabsPanel: 'bg-background/95 shadow-sm',\r\n segmentedRoot: 'bg-background/60 shadow-sm',\r\n segmentedItemActive: 'bg-background',\r\n skeletonRoot: 'bg-background/80',\r\n toolbarRoot: 'bg-background/95 shadow-sm',\r\n paginationButton: 'bg-background/95 hover:bg-muted/55',\r\n descriptionListItem: 'bg-background/95 shadow-sm',\r\n accordionItem: 'bg-background/95 shadow-sm',\r\n menuContent: 'bg-background/95 shadow-xl',\r\n menuItem: 'focus:bg-muted/60 data-[highlighted]:bg-muted/60',\r\n menuSubTrigger:\r\n 'focus:bg-muted/60 data-[highlighted]:bg-muted/60 data-[state=open]:bg-muted/60',\r\n menuSubContent: 'bg-background/95 shadow-xl',\r\n tableContainer: 'bg-background/95 shadow-sm',\r\n tableHeader: 'bg-muted/35',\r\n tableFooter: 'bg-muted/25',\r\n tableFooterBar: 'bg-muted/25 shadow-none',\r\n tableRowInteractive: 'cursor-pointer hover:bg-muted/35',\r\n tableLoadingSkeleton: 'bg-muted/65',\r\n layoutRoot: 'bg-background/95 shadow-sm',\r\n layoutPane: 'bg-background/95 shadow-sm',\r\n layoutPaneSoft: 'bg-background/95 shadow-md',\r\n },\r\n glass: {\r\n buttonBase: 'backdrop-blur-md',\r\n buttonDefault:\r\n 'border-white/10 bg-white/[0.08] text-foreground hover:bg-white/[0.14]',\r\n badgeDefault: 'border-white/10 bg-white/[0.08] text-foreground',\r\n panelRoot: 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\r\n panelFooter: 'border-white/10 bg-white/[0.05]',\r\n stateRoot: 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\r\n stateIcon: 'bg-white/10 text-foreground',\r\n controlWrapper:\r\n 'border-white/10 bg-white/[0.08] text-foreground backdrop-blur-md',\r\n selectMenu:\r\n 'border-white/10 bg-white/[0.10] text-foreground shadow-[0_18px_60px_rgba(15,23,42,0.18)] backdrop-blur-md',\r\n selectOption: 'text-foreground',\r\n selectOptionActive: 'bg-white/[0.14] text-foreground',\r\n selectOptionSelected: 'bg-white/[0.18] text-foreground',\r\n switchTrack: 'border-white/10 bg-white/[0.12] backdrop-blur-md',\r\n checkboxBox: 'border-white/10 bg-white/[0.08] backdrop-blur-md',\r\n checkboxBoxChecked: 'border-white/20 bg-white/[0.22] text-foreground',\r\n radioOption: 'border-white/10 bg-white/[0.06] backdrop-blur-md hover:bg-white/[0.10]',\r\n radioMarker: 'border-white/10 bg-white/[0.08] backdrop-blur-md',\r\n radioMarkerChecked: 'border-white/25 bg-white/[0.16]',\r\n dialogOverlay: 'bg-background/45 backdrop-blur-md',\r\n dialogPanel: 'border-white/10 bg-white/[0.08] shadow-2xl backdrop-blur-md',\r\n dialogHeader: 'border-white/10',\r\n dialogFooter: 'border-white/10',\r\n dropdownMenu:\r\n 'border-white/10 bg-white/[0.10] text-foreground shadow-[0_18px_60px_rgba(15,23,42,0.18)] backdrop-blur-md',\r\n dropdownItem: 'text-foreground hover:bg-white/[0.14]',\r\n tooltipContent:\r\n 'border-white/10 bg-white/[0.14] text-foreground shadow-[0_18px_60px_rgba(15,23,42,0.18)] backdrop-blur-md',\r\n noticeDefault:\r\n 'border-white/10 bg-white/[0.08] text-foreground backdrop-blur-md',\r\n dividerRoot: 'border-white/15',\r\n tabsList: 'border-white/10 bg-white/[0.08] backdrop-blur-md',\r\n tabsTrigger: 'text-muted-foreground hover:bg-white/[0.12] hover:text-foreground',\r\n tabsTriggerActive: 'bg-white/[0.16] text-foreground shadow-none',\r\n tabsPanel:\r\n 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\r\n segmentedRoot: 'border-white/10 bg-white/[0.08] backdrop-blur-md',\r\n segmentedItem: 'text-muted-foreground hover:bg-white/[0.12] hover:text-foreground',\r\n segmentedItemActive: 'bg-white/[0.16] text-foreground shadow-none',\r\n progressTrack: 'bg-white/[0.12]',\r\n skeletonRoot: 'bg-white/[0.16]',\r\n avatarRoot: 'border-white/10 bg-white/[0.12] text-foreground',\r\n avatarFallback: 'bg-white/[0.12] text-foreground',\r\n avatarStatus: 'border-background',\r\n toolbarRoot:\r\n 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\r\n paginationButton:\r\n 'border-white/10 bg-white/[0.08] text-foreground hover:bg-white/[0.14]',\r\n paginationPage: 'bg-white/[0.12] text-foreground',\r\n descriptionListItem:\r\n 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\r\n accordionItem:\r\n 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\r\n accordionPanel: 'border-white/10',\r\n menuContent:\r\n 'border-white/10 bg-white/[0.10] text-foreground shadow-[0_18px_60px_rgba(15,23,42,0.18)] backdrop-blur-md',\r\n menuSeparator: 'bg-white/10',\r\n menuItem:\r\n 'text-foreground focus:bg-white/[0.14] focus:text-foreground data-[highlighted]:bg-white/[0.14] data-[highlighted]:text-foreground',\r\n menuSubTrigger:\r\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]',\r\n menuSubContent:\r\n 'border-white/10 bg-white/[0.10] text-foreground shadow-[0_18px_60px_rgba(15,23,42,0.18)] backdrop-blur-md',\r\n tableContainer:\r\n 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\r\n tableHeader: 'border-white/10 bg-white/[0.08]',\r\n tableFooter: 'border-white/10 bg-white/[0.05]',\r\n tableFooterBar:\r\n 'border-white/10 bg-white/[0.05] shadow-none backdrop-blur-md',\r\n tableFooterBarAttached: 'border-t border-white/10',\r\n tableRow: 'border-white/10',\r\n tableRowInteractive: 'cursor-pointer hover:bg-white/[0.08]',\r\n tableHeadLabel: 'text-foreground',\r\n tableLoadingSkeleton: 'bg-white/[0.16]',\r\n layoutRoot:\r\n 'border-white/10 bg-white/[0.05] shadow-none backdrop-blur-md',\r\n layoutPane:\r\n 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\r\n layoutPaneMuted: 'bg-white/[0.08]',\r\n layoutPaneSoft: 'bg-white/[0.10] shadow-none backdrop-blur-md',\r\n layoutResizeHandle: 'text-foreground/65 hover:bg-white/10 active:bg-white/15 focus-visible:bg-white/10',\r\n layoutResizeHandleIndicator: 'bg-white/45 group-hover/resize:bg-white/75',\r\n },\r\n dark: {\r\n buttonBase:\r\n 'border-white/15 text-white shadow-lg backdrop-blur',\r\n buttonDefault: 'bg-black/30 hover:bg-black/[0.45]',\r\n buttonPrimary: 'border-white/25 bg-white/20 text-white hover:bg-white/25',\r\n buttonMuted:\r\n 'border-white/10 bg-black/20 text-white/70 hover:bg-black/[0.35] hover:text-white',\r\n badgeDefault: 'border-white/10 bg-white/[0.08] text-white',\r\n badgeMuted: 'border-white/10 bg-black/20 text-white/70',\r\n panelRoot: 'border-white/10 bg-slate-950 text-white shadow-none',\r\n panelTitle: 'text-white',\r\n panelDescription: 'text-white/65',\r\n panelBody: 'text-white/85',\r\n panelFooter: 'border-white/10 bg-white/[0.04]',\r\n stateRoot: 'border-white/10 bg-slate-950 text-white shadow-none',\r\n stateIcon: 'bg-white/10 text-white/75',\r\n stateTitle: 'text-white',\r\n stateDescription: 'text-white/65',\r\n fieldLabel: 'text-white',\r\n fieldDescription: 'text-white/65',\r\n fieldMessage: 'text-white/65',\r\n controlWrapper:\r\n 'border-white/15 bg-black/30 text-white shadow-lg backdrop-blur focus-within:border-white/35',\r\n controlBase: 'text-white placeholder:text-white/45',\r\n selectChevron: 'text-white/65',\r\n selectMenu: 'border-white/15 bg-slate-950 text-white shadow-2xl',\r\n selectOption: 'text-white',\r\n selectOptionActive: 'bg-white/[0.12] text-white',\r\n selectOptionSelected: 'bg-white/[0.16] text-white',\r\n selectPlaceholder: 'text-white/45',\r\n switchTrack: 'border-white/15 bg-black/30 shadow-lg backdrop-blur',\r\n switchChecked: 'border-white/25 bg-white/25 text-white',\r\n switchLabel: 'text-white',\r\n switchDescription: 'text-white/65',\r\n checkboxBox: 'border-white/15 bg-black/30 text-white shadow-lg backdrop-blur',\r\n checkboxBoxChecked: 'border-white/25 bg-white/25 text-white',\r\n checkboxLabel: 'text-white',\r\n checkboxDescription: 'text-white/65',\r\n radioOption: 'border-white/10 bg-white/[0.06] text-white hover:bg-white/[0.08]',\r\n radioMarker: 'border-white/15 bg-black/30 text-white shadow-lg backdrop-blur',\r\n radioMarkerChecked: 'border-white/25 bg-white/25',\r\n radioIndicator: 'bg-white',\r\n radioLabel: 'text-white',\r\n radioDescription: 'text-white/65',\r\n dialogOverlay: 'bg-slate-950/75',\r\n dialogPanel: 'border-white/10 bg-slate-950 text-white shadow-2xl',\r\n dialogHeader: 'border-white/10',\r\n dialogTitle: 'text-white',\r\n dialogDescription: 'text-white/65',\r\n dialogBody: 'text-white/85',\r\n dialogFooter: 'border-white/10',\r\n dialogClose: 'text-white/65 hover:bg-white/[0.08] hover:text-white',\r\n dropdownMenu: 'border-white/15 bg-slate-950 text-white shadow-2xl',\r\n dropdownLabel: 'text-white/55',\r\n dropdownSeparator: 'bg-white/15',\r\n dropdownItem: 'text-white hover:bg-white/[0.10]',\r\n dropdownItemDescription: 'text-white/55',\r\n dropdownItemShortcut: 'text-white/55',\r\n tooltipContent: 'border-white/15 bg-slate-950 text-white shadow-2xl',\r\n noticeDefault: 'border-white/10 bg-white/[0.08] text-white',\r\n noticeMuted: 'border-white/10 bg-black/20 text-white/70',\r\n dividerRoot: 'border-white/15',\r\n dividerLabel: 'text-white/55',\r\n sectionHeaderEyebrow: 'text-white/55',\r\n sectionHeaderTitle: 'text-white',\r\n sectionHeaderDescription: 'text-white/65',\r\n tabsList: 'border-white/10 bg-white/[0.08]',\r\n tabsTrigger: 'text-white/65 hover:bg-white/[0.12] hover:text-white',\r\n tabsTriggerActive: 'bg-white/[0.16] text-white shadow-none',\r\n tabsPanel: 'border-white/10 bg-white/[0.06] text-white',\r\n segmentedRoot: 'border-white/10 bg-white/[0.08]',\r\n segmentedItem: 'text-white/65 hover:bg-white/[0.12] hover:text-white',\r\n segmentedItemActive: 'bg-white/[0.16] text-white shadow-none',\r\n progressTrack: 'bg-white/[0.12]',\r\n progressLabel: 'text-white',\r\n progressValue: 'text-white/65',\r\n skeletonRoot: 'bg-white/[0.14]',\r\n avatarRoot: 'border-white/15 bg-white/[0.10] text-white',\r\n avatarFallback: 'bg-white/[0.10] text-white/75',\r\n avatarText: 'text-white',\r\n avatarStatus: 'border-slate-950',\r\n toolbarRoot: 'border-white/10 bg-white/[0.06] text-white',\r\n toolbarTitle: 'text-white',\r\n toolbarDescription: 'text-white/65',\r\n breadcrumbLink: 'text-white/65 hover:text-white',\r\n breadcrumbCurrent: 'text-white',\r\n breadcrumbSeparator: 'text-white/45',\r\n paginationInfo: 'text-white/65',\r\n paginationButton: 'border-white/10 bg-white/[0.08] text-white hover:bg-white/[0.14]',\r\n paginationPage: 'bg-white/[0.14] text-white',\r\n descriptionListItem: 'border-white/10 bg-white/[0.06]',\r\n descriptionListTerm: 'text-white/55',\r\n descriptionListValue: 'text-white',\r\n accordionItem: 'border-white/10 bg-white/[0.06]',\r\n accordionTrigger: 'text-white hover:bg-white/[0.08]',\r\n accordionPanel: 'border-white/10 text-white/70',\r\n tableContainer: 'border-white/10 bg-slate-950 text-white shadow-none',\r\n tableRoot: 'text-white',\r\n tableHeader: 'border-white/10 bg-white/[0.06]',\r\n tableFooter: 'border-white/10 bg-white/[0.05]',\r\n tableFooterBar: 'border-white/10 bg-white/[0.05] text-white/65',\r\n tableFooterBarAttached: 'border-t border-white/10',\r\n tableRow: 'border-white/10',\r\n tableRowInteractive: 'cursor-pointer hover:bg-white/[0.06]',\r\n tableHead: 'text-white/65',\r\n tableHeadLabel: 'text-white',\r\n tableHeadDescription: 'text-white/55',\r\n tableHeadMeta: 'text-white/55',\r\n tableHeadIcon: 'text-white/55',\r\n tableHeadSortIcon: 'text-white/55',\r\n tableHeadDragHandle: 'text-white/55 hover:bg-white/[0.08]',\r\n tableHeadResizeHandle: 'after:bg-white/20 hover:after:bg-white/60',\r\n tableCell: 'text-white/85',\r\n tableEmptyIcon: 'bg-white/10 text-white/65',\r\n tableEmptyTitle: 'text-white',\r\n tableEmptyDescription: 'text-white/60',\r\n menuContent: 'border-white/10 bg-slate-950 text-white shadow-2xl',\r\n menuLabel: 'text-white/55',\r\n menuSeparator: 'bg-white/10',\r\n menuItem:\r\n 'text-white focus:bg-white/[0.10] focus:text-white data-[highlighted]:bg-white/[0.10] data-[highlighted]:text-white',\r\n menuItemDefault: 'text-white',\r\n menuItemPrimary: 'text-sky-200 focus:text-sky-200 data-[highlighted]:text-sky-200',\r\n menuItemSuccess:\r\n 'text-emerald-200 focus:text-emerald-200 data-[highlighted]:text-emerald-200',\r\n menuItemWarning:\r\n 'text-amber-200 focus:text-amber-200 data-[highlighted]:text-amber-200',\r\n menuItemDanger:\r\n 'text-red-200 focus:text-red-200 data-[highlighted]:text-red-200',\r\n menuItemMuted:\r\n 'text-white/65 focus:text-white data-[highlighted]:text-white',\r\n menuItemShortcut: 'text-white/45',\r\n menuSubTrigger:\r\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]',\r\n menuSubTriggerIcon: 'text-white/55',\r\n menuSubContent: 'border-white/10 bg-slate-950 text-white shadow-2xl',\r\n tableLoadingSkeleton: 'bg-white/[0.14]',\r\n layoutRoot: 'border-white/10 bg-slate-950 text-white shadow-none',\r\n layoutPane: 'border-white/10 bg-slate-950 text-white shadow-none',\r\n layoutPaneMuted: 'bg-white/[0.06]',\r\n layoutPaneSoft: 'bg-white/[0.08] shadow-none',\r\n layoutResizeHandle: 'text-white/65 hover:bg-white/10 active:bg-white/15 focus-visible:bg-white/10',\r\n layoutResizeHandleIndicator: 'bg-white/45 group-hover/resize:bg-white/75',\r\n },\r\n};\r\n\r\nconst presetDefaults: Record<\r\n 'default' | 'admin' | 'monkey' | 'bsd' | 'glass' | 'hard-edge',\r\n Pick<BaseAppearance, 'density' | 'radius' | 'border' | 'background'>\r\n> = {\r\n default: {\r\n density: 'default',\r\n radius: 'md',\r\n border: 'solid',\r\n background: 'plain',\r\n },\r\n admin: {\r\n density: 'default',\r\n radius: 'lg',\r\n border: 'subtle',\r\n background: 'soft',\r\n },\r\n monkey: {\r\n density: 'compact',\r\n radius: 'md',\r\n border: 'subtle',\r\n background: 'muted',\r\n },\r\n bsd: {\r\n density: 'default',\r\n radius: 'lg',\r\n border: 'subtle',\r\n background: 'glass',\r\n },\r\n glass: {\r\n density: 'default',\r\n radius: 'xl',\r\n border: 'subtle',\r\n background: 'glass',\r\n },\r\n 'hard-edge': {\r\n density: 'compact',\r\n radius: 'none',\r\n border: 'strong',\r\n background: 'plain',\r\n },\r\n};\r\n\r\nconst presetSlots: Record<string, Partial<BaseThemeSlots>> = {\r\n admin: {\r\n buttonBase: 'font-medium',\r\n panelRoot: 'border-border/70',\r\n controlWrapper: 'font-medium',\r\n tabsTrigger: 'font-medium',\r\n segmentedItem: 'font-medium',\r\n toolbarRoot: 'border-border/70',\r\n tableContainer: 'border-border/70',\r\n tableFooterBar: 'border-border/70',\r\n tableHeadLabel: 'font-semibold',\r\n menuItemLabel: 'font-medium',\r\n },\r\n monkey: {\r\n buttonBase: 'text-xs',\r\n badgeBase: 'text-[11px]',\r\n fieldLabel: 'text-xs',\r\n controlBase: 'text-xs',\r\n selectOption: 'text-xs',\r\n menuItem: 'text-xs',\r\n menuSubTrigger: 'text-xs',\r\n noticeBase: 'text-xs',\r\n sectionHeaderTitle: 'text-sm',\r\n tabsTrigger: 'text-xs',\r\n segmentedItem: 'text-xs',\r\n toolbarTitle: 'text-xs',\r\n paginationRoot: 'text-xs',\r\n },\r\n bsd: {\r\n buttonPrimary: 'border-sky-300/25 bg-sky-300/15 text-sky-50 hover:bg-sky-300/20',\r\n badgePrimary: 'border-sky-300/25 bg-sky-300/15 text-sky-50',\r\n noticePrimary: 'border-sky-300/25 bg-sky-300/15 text-sky-50',\r\n progressIndicator: 'bg-sky-300',\r\n avatarStatus: 'border-slate-950',\r\n },\r\n glass: {\r\n panelRoot: 'shadow-[0_24px_80px_rgba(15,23,42,0.12)]',\r\n stateRoot: 'shadow-[0_24px_80px_rgba(15,23,42,0.12)]',\r\n noticeBase: 'shadow-[0_18px_60px_rgba(15,23,42,0.10)]',\r\n tabsPanel: 'shadow-[0_18px_60px_rgba(15,23,42,0.10)]',\r\n toolbarRoot: 'shadow-[0_18px_60px_rgba(15,23,42,0.10)]',\r\n descriptionListItem: 'shadow-[0_12px_40px_rgba(15,23,42,0.08)]',\r\n accordionItem: 'shadow-[0_12px_40px_rgba(15,23,42,0.08)]',\r\n },\r\n 'hard-edge': {\r\n buttonBase: 'shadow-none',\r\n panelRoot: 'shadow-none',\r\n stateRoot: 'shadow-none',\r\n controlWrapper: 'shadow-none',\r\n selectMenu: 'shadow-none',\r\n menuContent: 'shadow-none',\r\n menuSubContent: 'shadow-none',\r\n noticeBase: 'shadow-none',\r\n tabsList: 'shadow-none',\r\n tabsTriggerActive: 'shadow-none',\r\n tabsPanel: 'shadow-none',\r\n segmentedRoot: 'shadow-none',\r\n segmentedItemActive: 'shadow-none',\r\n toolbarRoot: 'shadow-none',\r\n descriptionListItem: 'shadow-none',\r\n accordionItem: 'shadow-none',\r\n },\r\n};\r\n\r\nfunction getPresetDefaults(preset: BaseThemePresetId) {\r\n return (\r\n presetDefaults[preset as keyof typeof presetDefaults] ?? presetDefaults.default\r\n );\r\n}\r\n\r\nconst slotKeys = Object.keys(baseSlots) as Array<keyof BaseThemeSlots>;\r\n\r\nfunction mergeSlots(\r\n ...sources: Array<Partial<BaseThemeSlots> | undefined>\r\n): ResolvedSlots {\r\n return slotKeys.reduce((resolved, key) => {\r\n resolved[key] = cn(...sources.map((source) => source?.[key]));\r\n return resolved;\r\n }, {} as ResolvedSlots);\r\n}\r\n\r\nfunction mergeStyles(...styleSets: Array<BaseThemeStyles | undefined>) {\r\n return Object.assign({}, ...styleSets.filter(Boolean));\r\n}\r\n\r\nexport function resolveBaseAppearance(\r\n appearance?: BaseAppearance,\r\n): BaseResolvedTheme {\r\n const preset = appearance?.preset ?? 'default';\r\n const defaults = getPresetDefaults(preset);\r\n const density = appearance?.density ?? defaults.density ?? 'default';\r\n const radius = appearance?.radius ?? defaults.radius ?? 'md';\r\n const border = appearance?.border ?? defaults.border ?? 'solid';\r\n const background = appearance?.background ?? defaults.background ?? 'plain';\r\n\r\n return {\r\n preset,\r\n density,\r\n radius,\r\n border,\r\n background,\r\n styles: mergeStyles(emptyStyles, appearance?.styles),\r\n slots: mergeSlots(\r\n baseSlots,\r\n presetSlots[preset],\r\n densitySlots[density],\r\n radiusSlots[radius],\r\n borderSlots[border],\r\n backgroundSlots[background],\r\n appearance?.slots,\r\n ),\r\n };\r\n}\r\n\r\nexport function getBaseButtonToneClassName(\r\n theme: BaseResolvedTheme,\r\n tone: BaseControlTone = 'default',\r\n active = false,\r\n) {\r\n return cn(\r\n tone === 'default' && theme.slots.buttonDefault,\r\n tone === 'primary' && theme.slots.buttonPrimary,\r\n tone === 'success' && theme.slots.buttonSuccess,\r\n tone === 'warning' && theme.slots.buttonWarning,\r\n tone === 'danger' && theme.slots.buttonDanger,\r\n tone === 'muted' && theme.slots.buttonMuted,\r\n active && theme.slots.buttonActive,\r\n );\r\n}\r\n\r\nexport function getBaseBadgeToneClassName(\r\n theme: BaseResolvedTheme,\r\n tone: BaseControlTone = 'default',\r\n) {\r\n return cn(\r\n tone === 'default' && theme.slots.badgeDefault,\r\n tone === 'primary' && theme.slots.badgePrimary,\r\n tone === 'success' && theme.slots.badgeSuccess,\r\n tone === 'warning' && theme.slots.badgeWarning,\r\n tone === 'danger' && theme.slots.badgeDanger,\r\n tone === 'muted' && theme.slots.badgeMuted,\r\n );\r\n}\r\n\r\nexport function getBaseNoticeToneClassName(\r\n theme: BaseResolvedTheme,\r\n tone: BaseControlTone = 'default',\r\n) {\r\n return cn(\r\n tone === 'default' && theme.slots.noticeDefault,\r\n tone === 'primary' && theme.slots.noticePrimary,\r\n tone === 'success' && theme.slots.noticeSuccess,\r\n tone === 'warning' && theme.slots.noticeWarning,\r\n tone === 'danger' && theme.slots.noticeDanger,\r\n tone === 'muted' && theme.slots.noticeMuted,\r\n );\r\n}\r\n\r\nexport function getBaseMenuItemToneClassName(\r\n theme: BaseResolvedTheme,\r\n tone: BaseControlTone = 'default',\r\n) {\r\n return cn(\r\n tone === 'default' && theme.slots.menuItemDefault,\r\n tone === 'primary' && theme.slots.menuItemPrimary,\r\n tone === 'success' && theme.slots.menuItemSuccess,\r\n tone === 'warning' && theme.slots.menuItemWarning,\r\n tone === 'danger' && theme.slots.menuItemDanger,\r\n tone === 'muted' && theme.slots.menuItemMuted,\r\n );\r\n}\r\n","import { useId, useState } from 'react';\r\n\r\nimport type { BaseAccordionProps } from './types';\r\nimport { resolveBaseAppearance } from './theme';\r\nimport { cn, hasRenderableNode } from './utils';\r\n\r\nfunction getInitialValue(defaultValue: string | undefined) {\r\n return defaultValue;\r\n}\r\n\r\nfunction toDomId(value: string) {\r\n return value.replace(/[^a-zA-Z0-9_-]/g, '-');\r\n}\r\n\r\nexport function BaseAccordion({\r\n items = [],\r\n value,\r\n defaultValue,\r\n allowCollapse = true,\r\n appearance,\r\n className,\r\n classNames,\r\n style,\r\n onValueChange,\r\n id,\r\n ...accordionProps\r\n}: BaseAccordionProps) {\r\n const theme = resolveBaseAppearance(appearance);\r\n const generatedId = useId();\r\n const rootId = id ?? generatedId;\r\n const [uncontrolledValue, setUncontrolledValue] = useState(() =>\r\n getInitialValue(defaultValue),\r\n );\r\n const isControlled = value !== undefined;\r\n const openValue = isControlled ? value : uncontrolledValue;\r\n\r\n const handleToggle = (nextValue: string, disabled?: boolean) => {\r\n if (disabled) return;\r\n const nextOpenValue =\r\n openValue === nextValue && allowCollapse ? undefined : nextValue;\r\n if (!isControlled) {\r\n setUncontrolledValue(nextOpenValue);\r\n }\r\n onValueChange?.(nextOpenValue);\r\n };\r\n\r\n return (\r\n <div\r\n {...accordionProps}\r\n id={id}\r\n className={cn(theme.slots.accordionRoot, classNames?.root, className)}\r\n style={{\r\n ...theme.styles.accordion,\r\n ...style,\r\n }}\r\n >\r\n {items.map((item) => {\r\n const itemId = toDomId(item.value);\r\n const open = item.value === openValue;\r\n return (\r\n <div\r\n key={item.value}\r\n className={cn(theme.slots.accordionItem, classNames?.item)}\r\n >\r\n <button\r\n id={`${rootId}-${itemId}-trigger`}\r\n type=\"button\"\r\n aria-expanded={open}\r\n aria-controls={`${rootId}-${itemId}-panel`}\r\n disabled={item.disabled}\r\n className={cn(theme.slots.accordionTrigger, classNames?.trigger)}\r\n onClick={() => handleToggle(item.value, item.disabled)}\r\n >\r\n <span className=\"min-w-0 truncate\">{item.title}</span>\r\n <span\r\n aria-hidden=\"true\"\r\n className={cn(\r\n theme.slots.accordionTriggerIcon,\r\n open && 'rotate-[225deg]',\r\n classNames?.triggerIcon,\r\n )}\r\n />\r\n </button>\r\n {open ? (\r\n <div\r\n id={`${rootId}-${itemId}-panel`}\r\n role=\"region\"\r\n aria-labelledby={`${rootId}-${itemId}-trigger`}\r\n className={cn(theme.slots.accordionPanel, classNames?.panel)}\r\n >\r\n {hasRenderableNode(item.content) ? item.content : null}\r\n </div>\r\n ) : null}\r\n </div>\r\n );\r\n })}\r\n </div>\r\n );\r\n}\r\n","import type { BaseAvatarProps } from './types';\r\nimport { resolveBaseAppearance } from './theme';\r\nimport { cn, hasRenderableNode } from './utils';\r\n\r\nconst sizeClassNames = {\r\n sm: 'h-7 w-7 text-xs',\r\n md: 'h-9 w-9 text-sm',\r\n lg: 'h-12 w-12 text-base',\r\n};\r\n\r\nconst statusClassNames = {\r\n online: 'bg-emerald-500',\r\n busy: 'bg-amber-500',\r\n offline: 'bg-muted-foreground',\r\n neutral: 'bg-muted-foreground',\r\n};\r\n\r\nfunction isStatusPreset(status: unknown): status is keyof typeof statusClassNames {\r\n return typeof status === 'string' && status in statusClassNames;\r\n}\r\n\r\nfunction getInitials(name?: string) {\r\n if (!name) return undefined;\r\n const words = name.trim().split(/\\s+/).filter(Boolean);\r\n if (!words.length) return undefined;\r\n return words\r\n .slice(0, 2)\r\n .map((word) => word[0]?.toUpperCase())\r\n .join('');\r\n}\r\n\r\nexport function BaseAvatar({\r\n src,\r\n alt,\r\n name,\r\n initials,\r\n icon,\r\n status,\r\n size = 'md',\r\n appearance,\r\n className,\r\n classNames,\r\n style,\r\n children,\r\n ...avatarProps\r\n}: BaseAvatarProps) {\r\n const theme = resolveBaseAppearance(appearance);\r\n const fallback = children ?? initials ?? getInitials(name) ?? icon;\r\n\r\n return (\r\n <div\r\n {...avatarProps}\r\n className={cn(\r\n theme.slots.avatarRoot,\r\n sizeClassNames[size],\r\n classNames?.root,\r\n className,\r\n )}\r\n style={{\r\n ...theme.styles.avatar,\r\n ...style,\r\n }}\r\n title={name}\r\n >\r\n {src ? (\r\n <img\r\n src={src}\r\n alt={alt ?? name ?? ''}\r\n className={cn(theme.slots.avatarImage, classNames?.image)}\r\n />\r\n ) : (\r\n <span className={cn(theme.slots.avatarFallback, classNames?.fallback)}>\r\n {hasRenderableNode(fallback) ? fallback : '?'}\r\n </span>\r\n )}\r\n\r\n {isStatusPreset(status) ? (\r\n <span\r\n aria-hidden=\"true\"\r\n className={cn(\r\n theme.slots.avatarStatus,\r\n statusClassNames[status],\r\n classNames?.status,\r\n )}\r\n />\r\n ) : hasRenderableNode(status) ? (\r\n <span className={cn(theme.slots.avatarStatus, classNames?.status)}>\r\n {status}\r\n </span>\r\n ) : null}\r\n </div>\r\n );\r\n}\r\n","import type { BaseBadgeProps } from './types';\r\nimport { getBaseBadgeToneClassName, resolveBaseAppearance } from './theme';\r\nimport { cn } from './utils';\r\n\r\nexport function BaseBadge({\r\n children,\r\n label,\r\n icon,\r\n tone,\r\n appearance,\r\n className,\r\n classNames,\r\n style,\r\n ...badgeProps\r\n}: BaseBadgeProps) {\r\n const theme = resolveBaseAppearance(appearance);\r\n const resolvedLabel = children ?? label;\r\n\r\n return (\r\n <span\r\n {...badgeProps}\r\n className={cn(\r\n theme.slots.badgeBase,\r\n getBaseBadgeToneClassName(theme, tone),\r\n classNames?.root,\r\n className,\r\n )}\r\n style={{\r\n ...theme.styles.badge,\r\n ...style,\r\n }}\r\n >\r\n {icon ? (\r\n <span className={cn(theme.slots.badgeIcon, classNames?.icon)}>\r\n {icon}\r\n </span>\r\n ) : null}\r\n {resolvedLabel !== undefined && resolvedLabel !== null ? (\r\n <span className={cn(theme.slots.badgeLabel, classNames?.label)}>\r\n {resolvedLabel}\r\n </span>\r\n ) : null}\r\n </span>\r\n );\r\n}\r\n","import type { MouseEvent } from 'react';\r\n\r\nimport type { BaseBreadcrumbItem, BaseBreadcrumbProps } from './types';\r\nimport { resolveBaseAppearance } from './theme';\r\nimport { cn } from './utils';\r\n\r\nfunction isCurrentItem(item: BaseBreadcrumbItem, index: number, length: number) {\r\n return item.current ?? index === length - 1;\r\n}\r\n\r\nexport function BaseBreadcrumb({\r\n items = [],\r\n separator = '/',\r\n appearance,\r\n className,\r\n classNames,\r\n style,\r\n onSelect,\r\n ...breadcrumbProps\r\n}: BaseBreadcrumbProps) {\r\n const theme = resolveBaseAppearance(appearance);\r\n\r\n const handleClick = (\r\n event: MouseEvent<HTMLAnchorElement | HTMLButtonElement>,\r\n item: BaseBreadcrumbItem,\r\n index: number,\r\n ) => {\r\n if (item.disabled) {\r\n event.preventDefault();\r\n return;\r\n }\r\n onSelect?.(item, index);\r\n };\r\n\r\n return (\r\n <nav\r\n {...breadcrumbProps}\r\n aria-label={breadcrumbProps['aria-label'] ?? 'Breadcrumb'}\r\n className={cn(theme.slots.breadcrumbRoot, classNames?.root, className)}\r\n style={{\r\n ...theme.styles.breadcrumb,\r\n ...style,\r\n }}\r\n >\r\n <ol className={cn(theme.slots.breadcrumbList, classNames?.list)}>\r\n {items.map((item, index) => {\r\n const current = isCurrentItem(item, index, items.length);\r\n return (\r\n <li\r\n key={`${index}-${item.value ?? item.href ?? String(item.label)}`}\r\n className={cn(theme.slots.breadcrumbItem, classNames?.item)}\r\n >\r\n {current ? (\r\n <span\r\n aria-current=\"page\"\r\n className={cn(theme.slots.breadcrumbCurrent, classNames?.current)}\r\n >\r\n {item.label}\r\n </span>\r\n ) : item.href ? (\r\n <a\r\n href={item.href}\r\n aria-disabled={item.disabled || undefined}\r\n className={cn(theme.slots.breadcrumbLink, classNames?.link)}\r\n onClick={(event) => handleClick(event, item, index)}\r\n >\r\n {item.label}\r\n </a>\r\n ) : (\r\n <button\r\n type=\"button\"\r\n disabled={item.disabled}\r\n className={cn(\r\n theme.slots.breadcrumbLink,\r\n 'bg-transparent p-0',\r\n classNames?.link,\r\n )}\r\n onClick={(event) => handleClick(event, item, index)}\r\n >\r\n {item.label}\r\n </button>\r\n )}\r\n {index < items.length - 1 ? (\r\n <span\r\n aria-hidden=\"true\"\r\n className={cn(\r\n theme.slots.breadcrumbSeparator,\r\n classNames?.separator,\r\n )}\r\n >\r\n {separator}\r\n </span>\r\n ) : null}\r\n </li>\r\n );\r\n })}\r\n </ol>\r\n </nav>\r\n );\r\n}\r\n","import { forwardRef } from 'react';\r\nimport type { MouseEvent } from 'react';\r\n\r\nimport type { BaseButtonProps } from './types';\r\nimport {\r\n getBaseButtonToneClassName,\r\n resolveBaseAppearance,\r\n} from './theme';\r\nimport { cn, hasRenderableNode } from './utils';\r\n\r\nfunction LoadingIcon() {\r\n return (\r\n <svg\r\n aria-hidden=\"true\"\r\n viewBox=\"0 0 24 24\"\r\n className=\"h-4 w-4 animate-spin\"\r\n fill=\"none\"\r\n >\r\n <circle\r\n cx=\"12\"\r\n cy=\"12\"\r\n r=\"9\"\r\n className=\"opacity-25\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"3\"\r\n />\r\n <path\r\n className=\"opacity-75\"\r\n fill=\"currentColor\"\r\n d=\"M12 3a9 9 0 0 1 9 9h-3a6 6 0 0 0-6-6V3Z\"\r\n />\r\n </svg>\r\n );\r\n}\r\n\r\nexport const BaseButton = forwardRef<HTMLButtonElement, BaseButtonProps>(\r\n function BaseButton(\r\n {\r\n children,\r\n label,\r\n icon,\r\n endIcon,\r\n type = 'button',\r\n title,\r\n ariaLabel,\r\n tone,\r\n active = false,\r\n iconOnly = false,\r\n disabled = false,\r\n loading = false,\r\n stopPropagation = false,\r\n appearance,\r\n className,\r\n classNames,\r\n style,\r\n onClick,\r\n 'aria-label': nativeAriaLabel,\r\n ...buttonProps\r\n },\r\n ref,\r\n ) {\r\n const theme = resolveBaseAppearance(appearance);\r\n const resolvedLabel = children ?? label;\r\n const labelText = typeof resolvedLabel === 'string' ? resolvedLabel : undefined;\r\n const resolvedAriaLabel =\r\n ariaLabel ??\r\n nativeAriaLabel ??\r\n labelText ??\r\n title ??\r\n (iconOnly ? 'Action' : undefined);\r\n const resolvedDisabled = disabled || loading;\r\n\r\n const handleClick = (event: MouseEvent<HTMLButtonElement>) => {\r\n if (stopPropagation) {\r\n event.stopPropagation();\r\n }\r\n if (resolvedDisabled) return;\r\n onClick?.(event);\r\n };\r\n\r\n return (\r\n <button\r\n {...buttonProps}\r\n ref={ref}\r\n type={type}\r\n title={title}\r\n aria-label={resolvedAriaLabel}\r\n aria-pressed={active || undefined}\r\n aria-busy={loading || undefined}\r\n disabled={resolvedDisabled}\r\n className={cn(\r\n theme.slots.buttonBase,\r\n iconOnly && theme.slots.buttonIconOnly,\r\n getBaseButtonToneClassName(theme, tone, active),\r\n resolvedDisabled && theme.slots.buttonDisabled,\r\n classNames?.root,\r\n className,\r\n )}\r\n style={{\r\n ...theme.styles.button,\r\n ...(active ? theme.styles.buttonActive : undefined),\r\n ...(resolvedDisabled ? theme.styles.buttonDisabled : undefined),\r\n ...style,\r\n }}\r\n onClick={handleClick}\r\n >\r\n {loading ? (\r\n <span className={cn(theme.slots.buttonIcon, classNames?.icon)}>\r\n <LoadingIcon />\r\n </span>\r\n ) : icon ? (\r\n <span className={cn(theme.slots.buttonIcon, classNames?.icon)}>\r\n {icon}\r\n </span>\r\n ) : null}\r\n {iconOnly ? (\r\n hasRenderableNode(resolvedLabel) ? (\r\n <span className=\"sr-only\">{resolvedLabel}</span>\r\n ) : null\r\n ) : hasRenderableNode(resolvedLabel) ? (\r\n <span className={cn(theme.slots.buttonLabel, classNames?.label)}>\r\n {resolvedLabel}\r\n </span>\r\n ) : null}\r\n {!loading && endIcon ? (\r\n <span className={cn(theme.slots.buttonIcon, classNames?.icon)}>\r\n {endIcon}\r\n </span>\r\n ) : null}\r\n </button>\r\n );\r\n },\r\n);\r\n","import {\r\n forwardRef,\r\n useEffect,\r\n useRef,\r\n useState,\r\n type ChangeEvent,\r\n type Ref,\r\n} from 'react';\r\n\r\nimport type { BaseCheckboxProps } from './types';\r\nimport { resolveBaseAppearance } from './theme';\r\nimport { cn, hasRenderableNode } from './utils';\r\n\r\nfunction setRefs<TElement>(\r\n element: TElement | null,\r\n ...refs: Array<Ref<TElement> | undefined>\r\n) {\r\n refs.forEach((ref) => {\r\n if (!ref) return;\r\n if (typeof ref === 'function') {\r\n ref(element);\r\n return;\r\n }\r\n (ref as { current: TElement | null }).current = element;\r\n });\r\n}\r\n\r\nexport const BaseCheckbox = forwardRef<HTMLInputElement, BaseCheckboxProps>(\r\n function BaseCheckbox(\r\n {\r\n label,\r\n description,\r\n indeterminate = false,\r\n invalid = false,\r\n disabled = false,\r\n appearance,\r\n className,\r\n classNames,\r\n style,\r\n checked,\r\n defaultChecked,\r\n onChange,\r\n 'aria-invalid': nativeAriaInvalid,\r\n ...checkboxProps\r\n },\r\n forwardedRef,\r\n ) {\r\n const theme = resolveBaseAppearance(appearance);\r\n const inputRef = useRef<HTMLInputElement | null>(null);\r\n const [uncontrolledChecked, setUncontrolledChecked] = useState(\r\n defaultChecked ?? false,\r\n );\r\n const isControlled = checked !== undefined;\r\n const resolvedChecked = Boolean(isControlled ? checked : uncontrolledChecked);\r\n const active = indeterminate || resolvedChecked;\r\n\r\n useEffect(() => {\r\n if (inputRef.current) {\r\n inputRef.current.indeterminate = indeterminate;\r\n }\r\n }, [indeterminate]);\r\n\r\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\r\n if (disabled) return;\r\n if (!isControlled) {\r\n setUncontrolledChecked(event.currentTarget.checked);\r\n }\r\n onChange?.(event);\r\n };\r\n\r\n return (\r\n <label\r\n className={cn(\r\n theme.slots.checkboxRoot,\r\n disabled && theme.slots.checkboxDisabled,\r\n classNames?.root,\r\n className,\r\n )}\r\n style={{\r\n ...theme.styles.checkboxRoot,\r\n ...style,\r\n }}\r\n >\r\n <span\r\n className={cn(\r\n theme.slots.checkboxBox,\r\n active && theme.slots.checkboxBoxChecked,\r\n invalid && theme.slots.checkboxBoxInvalid,\r\n classNames?.box,\r\n )}\r\n style={{\r\n ...theme.styles.checkboxBox,\r\n }}\r\n >\r\n <input\r\n {...checkboxProps}\r\n ref={(element) => setRefs(element, inputRef, forwardedRef)}\r\n type=\"checkbox\"\r\n disabled={disabled}\r\n checked={checked}\r\n defaultChecked={defaultChecked}\r\n aria-invalid={nativeAriaInvalid ?? (invalid || undefined)}\r\n aria-checked={indeterminate ? 'mixed' : resolvedChecked}\r\n className={cn(theme.slots.checkboxInput, classNames?.input)}\r\n onChange={handleChange}\r\n />\r\n {active ? (\r\n <span\r\n aria-hidden=\"true\"\r\n className={cn(theme.slots.checkboxIndicator, classNames?.indicator)}\r\n >\r\n {indeterminate ? '–' : '✓'}\r\n </span>\r\n ) : null}\r\n </span>\r\n {hasRenderableNode(label) || hasRenderableNode(description) ? (\r\n <span className={cn(theme.slots.checkboxContent, classNames?.content)}>\r\n {hasRenderableNode(label) ? (\r\n <span className={cn(theme.slots.checkboxLabel, classNames?.label)}>\r\n {label}\r\n </span>\r\n ) : null}\r\n {hasRenderableNode(description) ? (\r\n <span\r\n className={cn(\r\n theme.slots.checkboxDescription,\r\n classNames?.description,\r\n )}\r\n >\r\n {description}\r\n </span>\r\n ) : null}\r\n </span>\r\n ) : null}\r\n </label>\r\n );\r\n },\r\n);\r\n","import * as ContextMenu from '@radix-ui/react-context-menu';\r\nimport type { ReactNode } from 'react';\r\n\r\nimport type {\r\n BaseContextMenuCheckboxItemProps,\r\n BaseContextMenuContentProps,\r\n BaseContextMenuItemProps,\r\n BaseContextMenuLabelProps,\r\n BaseContextMenuProps,\r\n BaseContextMenuRadioGroupProps,\r\n BaseContextMenuRadioItemProps,\r\n BaseContextMenuSeparatorProps,\r\n BaseContextMenuSubContentProps,\r\n BaseContextMenuSubProps,\r\n BaseContextMenuSubTriggerProps,\r\n BaseContextMenuTriggerProps,\r\n} from './types';\r\nimport {\r\n getBaseMenuItemToneClassName,\r\n resolveBaseAppearance,\r\n} from './theme';\r\nimport { cn, hasRenderableNode } from './utils';\r\n\r\nfunction CheckIcon() {\r\n return (\r\n <svg\r\n aria-hidden=\"true\"\r\n viewBox=\"0 0 16 16\"\r\n className=\"h-3.5 w-3.5\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n strokeWidth=\"2\"\r\n >\r\n <path d=\"M3.5 8.5 6.5 11.5 12.5 4.5\" />\r\n </svg>\r\n );\r\n}\r\n\r\nfunction DotIcon() {\r\n return (\r\n <svg\r\n aria-hidden=\"true\"\r\n viewBox=\"0 0 16 16\"\r\n className=\"h-3.5 w-3.5\"\r\n fill=\"currentColor\"\r\n >\r\n <circle cx=\"8\" cy=\"8\" r=\"3\" />\r\n </svg>\r\n );\r\n}\r\n\r\nfunction ChevronRightIcon() {\r\n return (\r\n <svg\r\n aria-hidden=\"true\"\r\n viewBox=\"0 0 16 16\"\r\n className=\"h-3.5 w-3.5\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n strokeWidth=\"2\"\r\n >\r\n <path d=\"m6 4 4 4-4 4\" />\r\n </svg>\r\n );\r\n}\r\n\r\nfunction renderItemContent({\r\n label,\r\n icon,\r\n shortcut,\r\n children,\r\n classNames,\r\n inset,\r\n indicator,\r\n}: Pick<\r\n BaseContextMenuItemProps,\r\n 'children' | 'classNames' | 'icon' | 'inset' | 'label' | 'shortcut'\r\n> & {\r\n indicator?: ReactNode;\r\n}) {\r\n const resolvedLabel = children ?? label;\r\n\r\n return (\r\n <>\r\n {indicator ? indicator : null}\r\n {hasRenderableNode(icon) ? (\r\n <span className={cn(classNames?.icon)}>\r\n {icon}\r\n </span>\r\n ) : inset ? (\r\n <span aria-hidden=\"true\" className=\"h-4 w-4 shrink-0\" />\r\n ) : null}\r\n {hasRenderableNode(resolvedLabel) ? (\r\n <span className={cn(classNames?.label)}>{resolvedLabel}</span>\r\n ) : null}\r\n {hasRenderableNode(shortcut) ? (\r\n <span className={cn(classNames?.shortcut)}>{shortcut}</span>\r\n ) : null}\r\n </>\r\n );\r\n}\r\n\r\nexport function BaseContextMenu({\r\n children,\r\n trigger,\r\n content,\r\n disabled = false,\r\n modal = true,\r\n dir,\r\n appearance,\r\n className,\r\n classNames,\r\n onOpenChange,\r\n}: BaseContextMenuProps) {\r\n const theme = resolveBaseAppearance(appearance);\r\n\r\n return (\r\n <ContextMenu.Root\r\n onOpenChange={onOpenChange}\r\n modal={modal}\r\n dir={dir}\r\n >\r\n {trigger ? (\r\n <ContextMenu.Trigger\r\n disabled={disabled}\r\n className={cn(\r\n theme.slots.menuTrigger,\r\n disabled && theme.slots.menuItemDisabled,\r\n classNames?.trigger,\r\n className,\r\n )}\r\n >\r\n {trigger}\r\n </ContextMenu.Trigger>\r\n ) : null}\r\n {content ? (\r\n <BaseContextMenuContent appearance={appearance} className={classNames?.content}>\r\n {content}\r\n </BaseContextMenuContent>\r\n ) : null}\r\n {children}\r\n </ContextMenu.Root>\r\n );\r\n}\r\n\r\nexport function BaseContextMenuTrigger({\r\n children,\r\n disabled = false,\r\n asChild = false,\r\n appearance,\r\n className,\r\n style,\r\n ...triggerProps\r\n}: BaseContextMenuTriggerProps) {\r\n const theme = resolveBaseAppearance(appearance);\r\n\r\n return (\r\n <ContextMenu.Trigger\r\n {...triggerProps}\r\n asChild={asChild}\r\n disabled={disabled}\r\n className={cn(\r\n !asChild && theme.slots.menuTrigger,\r\n disabled && !asChild && theme.slots.menuItemDisabled,\r\n className,\r\n )}\r\n style={style}\r\n >\r\n {children}\r\n </ContextMenu.Trigger>\r\n );\r\n}\r\n\r\nexport function BaseContextMenuContent({\r\n children,\r\n appearance,\r\n className,\r\n classNames,\r\n style,\r\n ...contentProps\r\n}: BaseContextMenuContentProps) {\r\n const theme = resolveBaseAppearance(appearance);\r\n\r\n return (\r\n <ContextMenu.Portal>\r\n <ContextMenu.Content\r\n {...contentProps}\r\n className={cn(theme.slots.menuContent, classNames?.root, className)}\r\n style={{\r\n ...theme.styles.menuContent,\r\n ...style,\r\n }}\r\n >\r\n {children}\r\n </ContextMenu.Content>\r\n </ContextMenu.Portal>\r\n );\r\n}\r\n\r\nexport function BaseContextMenuLabel({\r\n children,\r\n appearance,\r\n className,\r\n style,\r\n ...labelProps\r\n}: BaseContextMenuLabelProps) {\r\n const theme = resolveBaseAppearance(appearance);\r\n\r\n return (\r\n <ContextMenu.Label\r\n {...labelProps}\r\n className={cn(theme.slots.menuLabel, className)}\r\n style={style}\r\n >\r\n {children}\r\n </ContextMenu.Label>\r\n );\r\n}\r\n\r\nexport function BaseContextMenuSeparator({\r\n appearance,\r\n className,\r\n style,\r\n ...separatorProps\r\n}: BaseContextMenuSeparatorProps) {\r\n const theme = resolveBaseAppearance(appearance);\r\n\r\n return (\r\n <ContextMenu.Separator\r\n {...separatorProps}\r\n className={cn(theme.slots.menuSeparator, className)}\r\n style={style}\r\n />\r\n );\r\n}\r\n\r\nexport function BaseContextMenuItem({\r\n children,\r\n label,\r\n icon,\r\n shortcut,\r\n tone,\r\n disabled = false,\r\n inset = false,\r\n appearance,\r\n className,\r\n classNames,\r\n style,\r\n onSelect,\r\n ...itemProps\r\n}: BaseContextMenuItemProps) {\r\n const theme = resolveBaseAppearance(appearance);\r\n\r\n return (\r\n <ContextMenu.Item\r\n {...itemProps}\r\n disabled={disabled}\r\n className={cn(\r\n theme.slots.menuItem,\r\n getBaseMenuItemToneClassName(theme, tone),\r\n disabled && theme.slots.menuItemDisabled,\r\n classNames?.root,\r\n className,\r\n )}\r\n style={{\r\n ...theme.styles.menuItem,\r\n ...style,\r\n }}\r\n onSelect={(event) => {\r\n if (disabled) {\r\n event.preventDefault();\r\n return;\r\n }\r\n onSelect?.(event);\r\n }}\r\n >\r\n {renderItemContent({\r\n children,\r\n label,\r\n icon,\r\n shortcut,\r\n inset,\r\n classNames: {\r\n icon: cn(theme.slots.menuItemIcon, classNames?.icon),\r\n label: cn(theme.slots.menuItemLabel, classNames?.label),\r\n shortcut: cn(theme.slots.menuItemShortcut, classNames?.shortcut),\r\n },\r\n })}\r\n </ContextMenu.Item>\r\n );\r\n}\r\n\r\nexport function BaseContextMenuCheckboxItem({\r\n children,\r\n label,\r\n icon,\r\n shortcut,\r\n tone,\r\n disabled = false,\r\n inset = false,\r\n checked,\r\n onCheckedChange,\r\n appearance,\r\n className,\r\n classNames,\r\n style,\r\n onSelect,\r\n ...itemProps\r\n}: BaseContextMenuCheckboxItemProps) {\r\n const theme = resolveBaseAppearance(appearance);\r\n\r\n return (\r\n <ContextMenu.CheckboxItem\r\n {...itemProps}\r\n checked={checked}\r\n disabled={disabled}\r\n onCheckedChange={(nextChecked) => {\r\n if (disabled) return;\r\n onCheckedChange?.(nextChecked);\r\n }}\r\n className={cn(\r\n theme.slots.menuItem,\r\n 'pl-8',\r\n getBaseMenuItemToneClassName(theme, tone),\r\n disabled && theme.slots.menuItemDisabled,\r\n classNames?.root,\r\n className,\r\n )}\r\n style={{\r\n ...theme.styles.menuItem,\r\n ...style,\r\n }}\r\n onSelect={(event) => {\r\n if (disabled) {\r\n event.preventDefault();\r\n return;\r\n }\r\n onSelect?.(event);\r\n }}\r\n >\r\n {renderItemContent({\r\n children,\r\n label,\r\n icon,\r\n shortcut,\r\n inset,\r\n classNames: {\r\n icon: cn(theme.slots.menuItemIcon, classNames?.icon),\r\n label: cn(theme.slots.menuItemLabel, classNames?.label),\r\n shortcut: cn(theme.slots.menuItemShortcut, classNames?.shortcut),\r\n },\r\n indicator: (\r\n <ContextMenu.ItemIndicator\r\n className={cn(theme.slots.menuCheckboxIndicator, classNames?.indicator)}\r\n >\r\n <CheckIcon />\r\n </ContextMenu.ItemIndicator>\r\n ),\r\n })}\r\n </ContextMenu.CheckboxItem>\r\n );\r\n}\r\n\r\nexport function BaseContextMenuRadioGroup({\r\n children,\r\n value,\r\n onValueChange,\r\n}: BaseContextMenuRadioGroupProps) {\r\n return (\r\n <ContextMenu.RadioGroup value={value} onValueChange={onValueChange}>\r\n {children}\r\n </ContextMenu.RadioGroup>\r\n );\r\n}\r\n\r\nexport function BaseContextMenuRadioItem({\r\n children,\r\n label,\r\n icon,\r\n shortcut,\r\n tone,\r\n disabled = false,\r\n inset = false,\r\n value,\r\n appearance,\r\n className,\r\n classNames,\r\n style,\r\n onSelect,\r\n ...itemProps\r\n}: BaseContextMenuRadioItemProps) {\r\n const theme = resolveBaseAppearance(appearance);\r\n\r\n return (\r\n <ContextMenu.RadioItem\r\n {...itemProps}\r\n value={value}\r\n disabled={disabled}\r\n className={cn(\r\n theme.slots.menuItem,\r\n 'pl-8',\r\n getBaseMenuItemToneClassName(theme, tone),\r\n disabled && theme.slots.menuItemDisabled,\r\n classNames?.root,\r\n className,\r\n )}\r\n style={{\r\n ...theme.styles.menuItem,\r\n ...style,\r\n }}\r\n onSelect={(event) => {\r\n if (disabled) {\r\n event.preventDefault();\r\n return;\r\n }\r\n onSelect?.(event);\r\n }}\r\n >\r\n {renderItemContent({\r\n children,\r\n label,\r\n icon,\r\n shortcut,\r\n inset,\r\n classNames: {\r\n icon: cn(theme.slots.menuItemIcon, classNames?.icon),\r\n label: cn(theme.slots.menuItemLabel, classNames?.label),\r\n shortcut: cn(theme.slots.menuItemShortcut, classNames?.shortcut),\r\n },\r\n indicator: (\r\n <ContextMenu.ItemIndicator\r\n className={cn(theme.slots.menuRadioIndicator, classNames?.indicator)}\r\n >\r\n <DotIcon />\r\n </ContextMenu.ItemIndicator>\r\n ),\r\n })}\r\n </ContextMenu.RadioItem>\r\n );\r\n}\r\n\r\nexport function BaseContextMenuSub({\r\n children,\r\n open,\r\n defaultOpen,\r\n onOpenChange,\r\n}: BaseContextMenuSubProps) {\r\n return (\r\n <ContextMenu.Sub\r\n open={open}\r\n defaultOpen={defaultOpen}\r\n onOpenChange={onOpenChange}\r\n >\r\n {children}\r\n </ContextMenu.Sub>\r\n );\r\n}\r\n\r\nexport function BaseContextMenuSubTrigger({\r\n children,\r\n label,\r\n icon,\r\n tone,\r\n disabled = false,\r\n inset = false,\r\n appearance,\r\n className,\r\n classNames,\r\n style,\r\n ...itemProps\r\n}: BaseContextMenuSubTriggerProps) {\r\n const theme = resolveBaseAppearance(appearance);\r\n const resolvedLabel = children ?? label;\r\n\r\n return (\r\n <ContextMenu.SubTrigger\r\n {...itemProps}\r\n disabled={disabled}\r\n className={cn(\r\n theme.slots.menuSubTrigger,\r\n getBaseMenuItemToneClassName(theme, tone),\r\n disabled && theme.slots.menuItemDisabled,\r\n classNames?.root,\r\n className,\r\n )}\r\n style={{\r\n ...theme.styles.menuItem,\r\n ...style,\r\n }}\r\n >\r\n {hasRenderableNode(icon) ? (\r\n <span className={cn(theme.slots.menuItemIcon, classNames?.icon)}>\r\n {icon}\r\n </span>\r\n ) : inset ? (\r\n <span aria-hidden=\"true\" className=\"h-4 w-4 shrink-0\" />\r\n ) : null}\r\n {hasRenderableNode(resolvedLabel) ? (\r\n <span className={cn(theme.slots.menuItemLabel, classNames?.label)}>\r\n {resolvedLabel}\r\n </span>\r\n ) : null}\r\n <span className={cn(theme.slots.menuSubTriggerIcon, classNames?.shortcut)}>\r\n <ChevronRightIcon />\r\n </span>\r\n </ContextMenu.SubTrigger>\r\n );\r\n}\r\n\r\nexport function BaseContextMenuSubContent({\r\n children,\r\n appearance,\r\n className,\r\n classNames,\r\n style,\r\n sideOffset = 6,\r\n ...subContentProps\r\n}: BaseContextMenuSubContentProps) {\r\n const theme = resolveBaseAppearance(appearance);\r\n\r\n return (\r\n <ContextMenu.Portal>\r\n <ContextMenu.SubContent\r\n {...subContentProps}\r\n sideOffset={sideOffset}\r\n className={cn(theme.slots.menuSubContent, classNames?.root, className)}\r\n style={{\r\n ...theme.styles.menuContent,\r\n ...style,\r\n }}\r\n >\r\n {children}\r\n </ContextMenu.SubContent>\r\n </ContextMenu.Portal>\r\n );\r\n}\r\n","import type { BaseDescriptionListProps } from './types';\r\nimport { resolveBaseAppearance } from './theme';\r\nimport { cn } from './utils';\r\n\r\nconst columnClassNames = {\r\n 1: 'grid-cols-1',\r\n 2: 'md:grid-cols-2',\r\n 3: 'md:grid-cols-2 xl:grid-cols-3',\r\n};\r\n\r\nexport function BaseDescriptionList({\r\n items,\r\n columns = 1,\r\n appearance,\r\n className,\r\n classNames,\r\n style,\r\n children,\r\n ...listProps\r\n}: BaseDescriptionListProps) {\r\n const theme = resolveBaseAppearance(appearance);\r\n\r\n return (\r\n <dl\r\n {...listProps}\r\n className={cn(\r\n theme.slots.descriptionListRoot,\r\n columnClassNames[columns],\r\n classNames?.root,\r\n className,\r\n )}\r\n style={{\r\n ...theme.styles.descriptionList,\r\n ...style,\r\n }}\r\n >\r\n {items?.map((item, index) => (\r\n <div\r\n key={index}\r\n className={cn(theme.slots.descriptionListItem, classNames?.item)}\r\n >\r\n <dt className={cn(theme.slots.descriptionListTerm, classNames?.term)}>\r\n {item.term}\r\n </dt>\r\n <dd\r\n className={cn(theme.slots.descriptionListValue, classNames?.value)}\r\n >\r\n {item.value}\r\n </dd>\r\n </div>\r\n ))}\r\n {children}\r\n </dl>\r\n );\r\n}\r\n","import { useEffect, useId, useState } from 'react';\r\n\r\nimport { BaseButton } from './BaseButton';\r\nimport type { BaseDialogProps } from './types';\r\nimport { resolveBaseAppearance } from './theme';\r\nimport { cn, hasRenderableNode } from './utils';\r\n\r\nexport function BaseDialog({\r\n open,\r\n defaultOpen = false,\r\n title,\r\n description,\r\n header,\r\n footer,\r\n trigger,\r\n triggerLabel,\r\n triggerIcon,\r\n triggerTone = 'default',\r\n triggerDisabled = false,\r\n closeLabel = 'Close dialog',\r\n closeOnEscape = true,\r\n closeOnOverlayClick = true,\r\n showCloseButton = true,\r\n appearance,\r\n className,\r\n classNames,\r\n style,\r\n children,\r\n onOpenChange,\r\n id,\r\n ...dialogProps\r\n}: BaseDialogProps) {\r\n const theme = resolveBaseAppearance(appearance);\r\n const generatedId = useId();\r\n const rootId = id ?? generatedId;\r\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\r\n const isControlled = open !== undefined;\r\n const isOpen = isControlled ? open : uncontrolledOpen;\r\n const titleId = `${rootId}-title`;\r\n const descriptionId = `${rootId}-description`;\r\n\r\n const setOpen = (nextOpen: boolean) => {\r\n if (!isControlled) {\r\n setUncontrolledOpen(nextOpen);\r\n }\r\n onOpenChange?.(nextOpen);\r\n };\r\n\r\n useEffect(() => {\r\n if (!isOpen || !closeOnEscape) return undefined;\r\n\r\n const handleKeyDown = (event: KeyboardEvent) => {\r\n if (event.key !== 'Escape') return;\r\n event.stopPropagation();\r\n setOpen(false);\r\n };\r\n\r\n window.addEventListener('keydown', handleKeyDown);\r\n return () => window.removeEventListener('keydown', handleKeyDown);\r\n }, [closeOnEscape, isOpen]);\r\n\r\n return (\r\n <div\r\n {...dialogProps}\r\n id={id}\r\n className={cn(theme.slots.dialogRoot, classNames?.root, className)}\r\n style={style}\r\n >\r\n {hasRenderableNode(trigger) ? (\r\n <span\r\n role=\"button\"\r\n tabIndex={triggerDisabled ? -1 : 0}\r\n aria-disabled={triggerDisabled || undefined}\r\n className={cn(\r\n theme.slots.dialogTrigger,\r\n triggerDisabled && theme.slots.dialogTriggerDisabled,\r\n classNames?.trigger,\r\n )}\r\n onClick={() => {\r\n if (!triggerDisabled) {\r\n setOpen(true);\r\n }\r\n }}\r\n onKeyDown={(event) => {\r\n if (triggerDisabled) return;\r\n if (event.key === 'Enter' || event.key === ' ') {\r\n event.preventDefault();\r\n setOpen(true);\r\n }\r\n }}\r\n >\r\n {trigger}\r\n </span>\r\n ) : hasRenderableNode(triggerLabel) ? (\r\n <BaseButton\r\n appearance={appearance}\r\n tone={triggerTone}\r\n icon={triggerIcon}\r\n label={triggerLabel}\r\n disabled={triggerDisabled}\r\n className={cn(\r\n theme.slots.dialogTrigger,\r\n triggerDisabled && theme.slots.dialogTriggerDisabled,\r\n classNames?.trigger,\r\n )}\r\n onClick={() => setOpen(true)}\r\n />\r\n ) : null}\r\n\r\n {isOpen ? (\r\n <>\r\n <div\r\n aria-hidden=\"true\"\r\n className={cn(theme.slots.dialogOverlay, classNames?.overlay)}\r\n style={theme.styles.dialogOverlay}\r\n onClick={() => {\r\n if (closeOnOverlayClick) {\r\n setOpen(false);\r\n }\r\n }}\r\n />\r\n <div\r\n className={cn(theme.slots.dialogContent, classNames?.content)}\r\n onClick={() => {\r\n if (closeOnOverlayClick) {\r\n setOpen(false);\r\n }\r\n }}\r\n >\r\n <div\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n aria-labelledby={hasRenderableNode(title) ? titleId : undefined}\r\n aria-describedby={\r\n hasRenderableNode(description) ? descriptionId : undefined\r\n }\r\n className={cn(theme.slots.dialogPanel, classNames?.panel)}\r\n style={{\r\n ...theme.styles.dialogPanel,\r\n }}\r\n onClick={(event) => event.stopPropagation()}\r\n >\r\n {hasRenderableNode(header) ||\r\n hasRenderableNode(title) ||\r\n hasRenderableNode(description) ? (\r\n <div\r\n className={cn(theme.slots.dialogHeader, classNames?.header)}\r\n >\r\n {hasRenderableNode(header) ? (\r\n header\r\n ) : (\r\n <>\r\n {hasRenderableNode(title) ? (\r\n <div\r\n id={titleId}\r\n className={cn(theme.slots.dialogTitle, classNames?.title)}\r\n >\r\n {title}\r\n </div>\r\n ) : null}\r\n {hasRenderableNode(description) ? (\r\n <div\r\n id={descriptionId}\r\n className={cn(\r\n theme.slots.dialogDescription,\r\n classNames?.description,\r\n )}\r\n >\r\n {description}\r\n </div>\r\n ) : null}\r\n </>\r\n )}\r\n </div>\r\n ) : null}\r\n\r\n {showCloseButton ? (\r\n <button\r\n type=\"button\"\r\n aria-label={closeLabel}\r\n title={closeLabel}\r\n className={cn(theme.slots.dialogClose, classNames?.close)}\r\n onClick={() => setOpen(false)}\r\n >\r\n ×\r\n </button>\r\n ) : null}\r\n\r\n <div className={cn(theme.slots.dialogBody, classNames?.body)}>\r\n {children}\r\n </div>\r\n\r\n {hasRenderableNode(footer) ? (\r\n <div className={cn(theme.slots.dialogFooter, classNames?.footer)}>\r\n {footer}\r\n </div>\r\n ) : null}\r\n </div>\r\n </div>\r\n </>\r\n ) : null}\r\n </div>\r\n );\r\n}\r\n","import type { CSSProperties } from 'react';\r\n\r\nimport type { BaseDividerProps } from './types';\r\nimport { resolveBaseAppearance } from './theme';\r\nimport { cn, hasRenderableNode } from './utils';\r\n\r\nexport function BaseDivider({\r\n orientation = 'horizontal',\r\n label,\r\n appearance,\r\n className,\r\n classNames,\r\n style,\r\n ...dividerProps\r\n}: BaseDividerProps) {\r\n const theme = resolveBaseAppearance(appearance);\r\n const isVertical = orientation === 'vertical';\r\n const hasLabel = hasRenderableNode(label) && !isVertical;\r\n const rootStyle: CSSProperties = {\r\n ...theme.styles.divider,\r\n ...style,\r\n };\r\n\r\n if (hasLabel) {\r\n return (\r\n <div\r\n {...dividerProps}\r\n role=\"separator\"\r\n aria-orientation={orientation}\r\n className={cn(\r\n 'flex min-w-0 items-center',\r\n classNames?.root,\r\n className,\r\n )}\r\n style={rootStyle}\r\n >\r\n <div className={cn('min-w-0 flex-1 border-t', theme.slots.dividerRoot)} />\r\n <span className={cn(theme.slots.dividerLabel, classNames?.label)}>\r\n {label}\r\n </span>\r\n <div className={cn('min-w-0 flex-1 border-t', theme.slots.dividerRoot)} />\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <div\r\n {...dividerProps}\r\n role=\"separator\"\r\n aria-orientation={orientation}\r\n className={cn(\r\n theme.slots.dividerRoot,\r\n isVertical ? 'min-h-full self-stretch border-l' : 'w-full border-t',\r\n classNames?.root,\r\n className,\r\n )}\r\n style={rootStyle}\r\n />\r\n );\r\n}\r\n","import { useEffect, useRef, useState } from 'react';\r\n\r\nimport { BaseButton } from './BaseButton';\r\nimport type { BaseDropdownMenuItem, BaseDropdownMenuProps } from './types';\r\nimport { resolveBaseAppearance } from './theme';\r\nimport { cn, hasRenderableNode } from './utils';\r\n\r\nfunction getPlacementClassName(\r\n placement: BaseDropdownMenuProps['placement'],\r\n slots: ReturnType<typeof resolveBaseAppearance>['slots'],\r\n) {\r\n return cn(\r\n placement?.startsWith('top') && slots.dropdownMenuTop,\r\n placement?.endsWith('end') && slots.dropdownMenuEnd,\r\n );\r\n}\r\n\r\nexport function BaseDropdownMenu({\r\n items = [],\r\n label,\r\n trigger,\r\n triggerLabel = 'Actions',\r\n triggerIcon,\r\n disabled = false,\r\n open,\r\n defaultOpen = false,\r\n placement = 'bottom-start',\r\n closeOnSelect = true,\r\n appearance,\r\n className,\r\n classNames,\r\n style,\r\n children,\r\n onOpenChange,\r\n onSelect,\r\n ...menuProps\r\n}: BaseDropdownMenuProps) {\r\n const theme = resolveBaseAppearance(appearance);\r\n const rootRef = useRef<HTMLDivElement | null>(null);\r\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\r\n const isControlled = open !== undefined;\r\n const isOpen = isControlled ? open : uncontrolledOpen;\r\n\r\n const setOpen = (nextOpen: boolean) => {\r\n if (disabled) return;\r\n if (!isControlled) {\r\n setUncontrolledOpen(nextOpen);\r\n }\r\n onOpenChange?.(nextOpen);\r\n };\r\n\r\n useEffect(() => {\r\n if (!isOpen) return undefined;\r\n\r\n const handlePointerDown = (event: PointerEvent) => {\r\n if (!rootRef.current?.contains(event.target as Node)) {\r\n setOpen(false);\r\n }\r\n };\r\n const handleKeyDown = (event: KeyboardEvent) => {\r\n if (event.key === 'Escape') {\r\n setOpen(false);\r\n }\r\n };\r\n\r\n window.addEventListener('pointerdown', handlePointerDown);\r\n window.addEventListener('keydown', handleKeyDown);\r\n return () => {\r\n window.removeEventListener('pointerdown', handlePointerDown);\r\n window.removeEventListener('keydown', handleKeyDown);\r\n };\r\n }, [isOpen]);\r\n\r\n const handleSelect = (item: BaseDropdownMenuItem) => {\r\n if (item.disabled) return;\r\n item.onSelect?.(item);\r\n onSelect?.(item);\r\n if (closeOnSelect) {\r\n setOpen(false);\r\n }\r\n };\r\n\r\n return (\r\n <div\r\n {...menuProps}\r\n ref={rootRef}\r\n className={cn(theme.slots.dropdownRoot, classNames?.root, className)}\r\n style={style}\r\n >\r\n {hasRenderableNode(trigger) ? (\r\n <span\r\n role=\"button\"\r\n tabIndex={disabled ? -1 : 0}\r\n aria-haspopup=\"menu\"\r\n aria-expanded={isOpen}\r\n aria-disabled={disabled || undefined}\r\n className={cn(\r\n theme.slots.dropdownTrigger,\r\n disabled && theme.slots.dropdownTriggerDisabled,\r\n classNames?.trigger,\r\n )}\r\n onClick={() => setOpen(!isOpen)}\r\n onKeyDown={(event) => {\r\n if (disabled) return;\r\n if (event.key === 'Enter' || event.key === ' ') {\r\n event.preventDefault();\r\n setOpen(!isOpen);\r\n }\r\n }}\r\n >\r\n {trigger}\r\n </span>\r\n ) : (\r\n <BaseButton\r\n appearance={appearance}\r\n icon={triggerIcon}\r\n label={triggerLabel}\r\n disabled={disabled}\r\n aria-haspopup=\"menu\"\r\n aria-expanded={isOpen}\r\n className={cn(\r\n theme.slots.dropdownTrigger,\r\n disabled && theme.slots.dropdownTriggerDisabled,\r\n classNames?.trigger,\r\n )}\r\n onClick={() => setOpen(!isOpen)}\r\n />\r\n )}\r\n\r\n {isOpen ? (\r\n <div\r\n role=\"menu\"\r\n className={cn(\r\n theme.slots.dropdownMenu,\r\n getPlacementClassName(placement, theme.slots),\r\n classNames?.menu,\r\n )}\r\n style={theme.styles.dropdownMenu}\r\n >\r\n {hasRenderableNode(label) ? (\r\n <div className={cn(theme.slots.dropdownLabel, classNames?.label)}>\r\n {label}\r\n </div>\r\n ) : null}\r\n {items.map((item) => (\r\n <div key={item.value}>\r\n {item.separatorBefore ? (\r\n <div\r\n aria-hidden=\"true\"\r\n className={cn(\r\n theme.slots.dropdownSeparator,\r\n classNames?.separator,\r\n )}\r\n />\r\n ) : null}\r\n <button\r\n type=\"button\"\r\n role=\"menuitem\"\r\n disabled={item.disabled}\r\n className={cn(\r\n theme.slots.dropdownItem,\r\n item.danger && theme.slots.dropdownItemDanger,\r\n item.disabled && theme.slots.dropdownItemDisabled,\r\n classNames?.item,\r\n )}\r\n style={theme.styles.dropdownItem}\r\n onClick={() => handleSelect(item)}\r\n >\r\n {hasRenderableNode(item.icon) ? (\r\n <span\r\n className={cn(\r\n theme.slots.dropdownItemIcon,\r\n classNames?.itemIcon,\r\n )}\r\n >\r\n {item.icon}\r\n </span>\r\n ) : null}\r\n <span\r\n className={cn(\r\n theme.slots.dropdownItemContent,\r\n classNames?.itemContent,\r\n )}\r\n >\r\n <span\r\n className={cn(\r\n theme.slots.dropdownItemLabel,\r\n classNames?.itemLabel,\r\n )}\r\n >\r\n {item.label}\r\n </span>\r\n {hasRenderableNode(item.description) ? (\r\n <span\r\n className={cn(\r\n theme.slots.dropdownItemDescription,\r\n classNames?.itemDescription,\r\n )}\r\n >\r\n {item.description}\r\n </span>\r\n ) : null}\r\n </span>\r\n {hasRenderableNode(item.shortcut) ? (\r\n <span\r\n className={cn(\r\n theme.slots.dropdownItemShortcut,\r\n classNames?.itemShortcut,\r\n )}\r\n >\r\n {item.shortcut}\r\n </span>\r\n ) : null}\r\n </button>\r\n </div>\r\n ))}\r\n {children}\r\n </div>\r\n ) : null}\r\n </div>\r\n );\r\n}\r\n","import type { BaseEmptyStateProps } from './types';\r\nimport { resolveBaseAppearance } from './theme';\r\nimport { cn, hasRenderableNode } from './utils';\r\n\r\nfunction DefaultEmptyIcon() {\r\n return (\r\n <svg\r\n aria-hidden=\"true\"\r\n viewBox=\"0 0 24 24\"\r\n className=\"h-6 w-6\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n strokeWidth=\"1.8\"\r\n >\r\n <rect width=\"16\" height=\"12\" x=\"4\" y=\"6\" rx=\"2\" />\r\n <path d=\"M8 10h8\" />\r\n <path d=\"M8 14h5\" />\r\n </svg>\r\n );\r\n}\r\n\r\nexport function BaseEmptyState({\r\n icon = <DefaultEmptyIcon />,\r\n title,\r\n description,\r\n actions,\r\n appearance,\r\n className,\r\n classNames,\r\n style,\r\n ...stateProps\r\n}: BaseEmptyStateProps) {\r\n const theme = resolveBaseAppearance(appearance);\r\n\r\n return (\r\n <div\r\n {...stateProps}\r\n className={cn(theme.slots.stateRoot, classNames?.root, className)}\r\n style={{\r\n ...theme.styles.stateRoot,\r\n ...style,\r\n }}\r\n >\r\n {hasRenderableNode(icon) ? (\r\n <div\r\n className={cn(theme.slots.stateIcon, classNames?.icon)}\r\n style={theme.styles.stateIcon}\r\n >\r\n {icon}\r\n </div>\r\n ) : null}\r\n {hasRenderableNode(title) ? (\r\n <div className={cn(theme.slots.stateTitle, classNames?.title)}>\r\n {title}\r\n </div>\r\n ) : null}\r\n {hasRenderableNode(description) ? (\r\n <div\r\n className={cn(theme.slots.stateDescription, classNames?.description)}\r\n >\r\n {description}\r\n </div>\r\n ) : null}\r\n {hasRenderableNode(actions) ? (\r\n <div className={cn(theme.slots.stateActions, classNames?.actions)}>\r\n {actions}\r\n </div>\r\n ) : null}\r\n </div>\r\n );\r\n}\r\n","import type { BaseFieldProps } from './types';\r\nimport { resolveBaseAppearance } from './theme';\r\nimport { cn, hasRenderableNode } from './utils';\r\n\r\nexport function BaseField({\r\n label,\r\n description,\r\n message,\r\n error,\r\n required = false,\r\n disabled = false,\r\n htmlFor,\r\n children,\r\n appearance,\r\n className,\r\n classNames,\r\n style,\r\n ...fieldProps\r\n}: BaseFieldProps) {\r\n const theme = resolveBaseAppearance(appearance);\r\n const resolvedMessage = hasRenderableNode(error) ? error : message;\r\n\r\n return (\r\n <div\r\n {...fieldProps}\r\n aria-disabled={disabled || undefined}\r\n className={cn(\r\n theme.slots.fieldRoot,\r\n disabled && theme.slots.controlDisabled,\r\n classNames?.root,\r\n className,\r\n )}\r\n style={{\r\n ...theme.styles.field,\r\n ...style,\r\n }}\r\n >\r\n {hasRenderableNode(label) ? (\r\n <div className={cn(theme.slots.fieldLabelRow, classNames?.labelRow)}>\r\n <label\r\n htmlFor={htmlFor}\r\n className={cn(theme.slots.fieldLabel, classNames?.label)}\r\n >\r\n {label}\r\n {required ? (\r\n <span\r\n aria-hidden=\"true\"\r\n className={cn(theme.slots.fieldRequired, classNames?.required)}\r\n >\r\n {' '}\r\n *\r\n </span>\r\n ) : null}\r\n </label>\r\n </div>\r\n ) : null}\r\n\r\n {hasRenderableNode(description) ? (\r\n <div\r\n className={cn(theme.slots.fieldDescription, classNames?.description)}\r\n >\r\n {description}\r\n </div>\r\n ) : null}\r\n\r\n {hasRenderableNode(children) ? (\r\n <div\r\n className={cn(theme.slots.fieldControl, classNames?.control)}\r\n style={theme.styles.fieldControl}\r\n >\r\n {children}\r\n </div>\r\n ) : null}\r\n\r\n {hasRenderableNode(resolvedMessage) ? (\r\n <div\r\n className={cn(\r\n theme.slots.fieldMessage,\r\n hasRenderableNode(error) && 'text-destructive',\r\n classNames?.message,\r\n )}\r\n >\r\n {resolvedMessage}\r\n </div>\r\n ) : null}\r\n </div>\r\n );\r\n}\r\n","import { forwardRef } from 'react';\r\n\r\nimport type { BaseInputProps } from './types';\r\nimport { resolveBaseAppearance } from './theme';\r\nimport { cn, hasRenderableNode } from './utils';\r\n\r\nexport const BaseInput = forwardRef<HTMLInputElement, BaseInputProps>(\r\n function BaseInput(\r\n {\r\n icon,\r\n trailing,\r\n invalid = false,\r\n disabled = false,\r\n readOnly = false,\r\n appearance,\r\n className,\r\n classNames,\r\n style,\r\n 'aria-invalid': nativeAriaInvalid,\r\n ...inputProps\r\n },\r\n ref,\r\n ) {\r\n const theme = resolveBaseAppearance(appearance);\r\n\r\n return (\r\n <div\r\n className={cn(\r\n theme.slots.controlWrapper,\r\n invalid && theme.slots.controlInvalid,\r\n disabled && theme.slots.controlDisabled,\r\n readOnly && theme.slots.controlReadOnly,\r\n classNames?.root,\r\n className,\r\n )}\r\n style={{\r\n ...theme.styles.control,\r\n ...(invalid ? theme.styles.controlInvalid : undefined),\r\n ...(disabled ? theme.styles.controlDisabled : undefined),\r\n ...style,\r\n }}\r\n >\r\n {hasRenderableNode(icon) ? (\r\n <span className={cn(theme.slots.controlIcon, classNames?.icon)}>\r\n {icon}\r\n </span>\r\n ) : null}\r\n <input\r\n {...inputProps}\r\n ref={ref}\r\n disabled={disabled}\r\n readOnly={readOnly}\r\n aria-invalid={nativeAriaInvalid ?? (invalid || undefined)}\r\n className={cn(\r\n theme.slots.controlBase,\r\n theme.slots.controlInput,\r\n classNames?.control,\r\n )}\r\n />\r\n {hasRenderableNode(trailing) ? (\r\n <span className={cn(theme.slots.controlTrailing, classNames?.trailing)}>\r\n {trailing}\r\n </span>\r\n ) : null}\r\n </div>\r\n );\r\n },\r\n);\r\n","import {\r\n useCallback,\r\n useEffect,\r\n useRef,\r\n useState,\r\n type CSSProperties,\r\n type ElementType,\r\n type KeyboardEvent,\r\n type PointerEvent as ReactPointerEvent,\r\n} from 'react';\r\n\r\nimport type {\r\n BaseLayoutPaneProps,\r\n BaseLayoutProps,\r\n BaseLayoutResizeHandleProps,\r\n BaseLayoutSplitProps,\r\n BaseLayoutOrientation,\r\n} from './types';\r\nimport { resolveBaseAppearance } from './theme';\r\nimport { cn, hasRenderableNode } from './utils';\r\n\r\nconst DEFAULT_SPLIT_SIZE = 50;\r\nconst DEFAULT_MIN_SIZE = 20;\r\nconst DEFAULT_MAX_SIZE = 80;\r\nconst DEFAULT_KEYBOARD_STEP = 2.5;\r\n\r\ntype CssVariableStyle = CSSProperties & Record<`--${string}`, string>;\r\n\r\nfunction toCssSize(value: number | string | undefined, fallback: string) {\r\n if (typeof value === 'number') {\r\n if (!Number.isFinite(value) || value < 0) {\r\n throw new Error('BaseLayout size and gap props must be finite, non-negative numbers.');\r\n }\r\n return `${value}px`;\r\n }\r\n return value ?? fallback;\r\n}\r\n\r\nfunction assertPercent(name: string, value: number) {\r\n if (!Number.isFinite(value)) {\r\n throw new Error(`BaseLayoutSplit ${name} must be a finite number.`);\r\n }\r\n if (value < 0 || value > 100) {\r\n throw new Error(`BaseLayoutSplit ${name} must be between 0 and 100.`);\r\n }\r\n return value;\r\n}\r\n\r\nfunction clamp(value: number, min: number, max: number) {\r\n return Math.min(Math.max(value, min), max);\r\n}\r\n\r\nfunction resolveSplitBounds({\r\n minSize = DEFAULT_MIN_SIZE,\r\n maxSize = DEFAULT_MAX_SIZE,\r\n keyboardStep = DEFAULT_KEYBOARD_STEP,\r\n}: Pick<BaseLayoutSplitProps, 'minSize' | 'maxSize' | 'keyboardStep'>) {\r\n const min = assertPercent('minSize', minSize);\r\n const max = assertPercent('maxSize', maxSize);\r\n if (min > max) {\r\n throw new Error('BaseLayoutSplit minSize cannot be greater than maxSize.');\r\n }\r\n if (!Number.isFinite(keyboardStep) || keyboardStep <= 0) {\r\n throw new Error('BaseLayoutSplit keyboardStep must be a finite positive number.');\r\n }\r\n return { min, max, keyboardStep };\r\n}\r\n\r\nfunction resolveSplitSize(\r\n name: string,\r\n value: number | undefined,\r\n fallback: number,\r\n min: number,\r\n max: number,\r\n) {\r\n return clamp(assertPercent(name, value ?? fallback), min, max);\r\n}\r\n\r\nfunction getSeparatorOrientation(orientation: BaseLayoutOrientation) {\r\n return orientation === 'horizontal' ? 'vertical' : 'horizontal';\r\n}\r\n\r\nexport function BaseLayout({\r\n header,\r\n sidebar,\r\n aside,\r\n footer,\r\n children,\r\n sidebarSize,\r\n asideSize,\r\n gap,\r\n fullHeight,\r\n appearance,\r\n className,\r\n classNames,\r\n style,\r\n ...layoutProps\r\n}: BaseLayoutProps) {\r\n const theme = resolveBaseAppearance(appearance);\r\n const hasHeader = hasRenderableNode(header);\r\n const hasSidebar = hasRenderableNode(sidebar);\r\n const hasAside = hasRenderableNode(aside);\r\n const hasFooter = hasRenderableNode(footer);\r\n const bodyColumns = [\r\n hasSidebar ? 'var(--base-layout-sidebar-size)' : undefined,\r\n 'minmax(0, 1fr)',\r\n hasAside ? 'var(--base-layout-aside-size)' : undefined,\r\n ].filter(Boolean).join(' ');\r\n const layoutRows = [\r\n hasHeader ? 'auto' : undefined,\r\n 'minmax(0, 1fr)',\r\n hasFooter ? 'auto' : undefined,\r\n ].filter(Boolean).join(' ');\r\n const resolvedGap = gap !== undefined ? toCssSize(gap, '0px') : undefined;\r\n\r\n const layoutStyle: CssVariableStyle = {\r\n ...theme.styles.layout,\r\n '--base-layout-sidebar-size': toCssSize(sidebarSize, '16rem'),\r\n '--base-layout-aside-size': toCssSize(asideSize, '20rem'),\r\n gridTemplateRows: layoutRows,\r\n ...(resolvedGap !== undefined ? { gap: resolvedGap } : {}),\r\n ...style,\r\n };\r\n const bodyStyle: CSSProperties = {\r\n ...theme.styles.layoutBody,\r\n gridTemplateColumns: bodyColumns,\r\n ...(resolvedGap !== undefined ? { gap: resolvedGap } : {}),\r\n };\r\n\r\n return (\r\n <div\r\n {...layoutProps}\r\n className={cn(\r\n theme.slots.layoutRoot,\r\n fullHeight && theme.slots.layoutRootFull,\r\n classNames?.root,\r\n className,\r\n )}\r\n style={layoutStyle}\r\n >\r\n {hasHeader ? (\r\n <div\r\n className={cn(theme.slots.layoutHeader, classNames?.header)}\r\n style={theme.styles.layoutHeader}\r\n >\r\n {header}\r\n </div>\r\n ) : null}\r\n\r\n <div\r\n className={cn(theme.slots.layoutBody, classNames?.body)}\r\n style={bodyStyle}\r\n >\r\n {hasSidebar ? (\r\n <aside\r\n className={cn(theme.slots.layoutSidebar, classNames?.sidebar)}\r\n style={theme.styles.layoutSidebar}\r\n >\r\n {sidebar}\r\n </aside>\r\n ) : null}\r\n\r\n <main\r\n className={cn(theme.slots.layoutMain, classNames?.main)}\r\n style={theme.styles.layoutMain}\r\n >\r\n {children}\r\n </main>\r\n\r\n {hasAside ? (\r\n <aside\r\n className={cn(theme.slots.layoutAside, classNames?.aside)}\r\n style={theme.styles.layoutAside}\r\n >\r\n {aside}\r\n </aside>\r\n ) : null}\r\n </div>\r\n\r\n {hasFooter ? (\r\n <div\r\n className={cn(theme.slots.layoutFooter, classNames?.footer)}\r\n style={theme.styles.layoutFooter}\r\n >\r\n {footer}\r\n </div>\r\n ) : null}\r\n </div>\r\n );\r\n}\r\n\r\nexport function BaseLayoutPane({\r\n as = 'div',\r\n scrollable = false,\r\n bordered = true,\r\n surface = 'default',\r\n children,\r\n appearance,\r\n className,\r\n classNames,\r\n style,\r\n ...paneProps\r\n}: BaseLayoutPaneProps) {\r\n const theme = resolveBaseAppearance(appearance);\r\n const Component = as as ElementType;\r\n\r\n return (\r\n <Component\r\n {...paneProps}\r\n className={cn(\r\n theme.slots.layoutPane,\r\n scrollable && theme.slots.layoutPaneScrollable,\r\n bordered && theme.slots.layoutPaneBordered,\r\n surface === 'muted' && theme.slots.layoutPaneMuted,\r\n surface === 'soft' && theme.slots.layoutPaneSoft,\r\n surface === 'transparent' && theme.slots.layoutPaneTransparent,\r\n classNames?.root,\r\n className,\r\n )}\r\n style={{\r\n ...theme.styles.layoutPane,\r\n ...style,\r\n }}\r\n >\r\n {children}\r\n </Component>\r\n );\r\n}\r\n\r\nexport function BaseLayoutResizeHandle({\r\n orientation = 'horizontal',\r\n resizable = false,\r\n disabled = false,\r\n size,\r\n minSize,\r\n maxSize,\r\n label = 'Resize panels',\r\n appearance,\r\n className,\r\n classNames,\r\n style,\r\n tabIndex,\r\n ...handleProps\r\n}: BaseLayoutResizeHandleProps) {\r\n const theme = resolveBaseAppearance(appearance);\r\n const interactive = resizable && !disabled;\r\n const separatorOrientation = getSeparatorOrientation(orientation);\r\n\r\n return (\r\n <div\r\n {...handleProps}\r\n role={interactive ? 'separator' : undefined}\r\n aria-label={interactive ? label : undefined}\r\n aria-orientation={interactive ? separatorOrientation : undefined}\r\n aria-valuemin={interactive ? minSize : undefined}\r\n aria-valuemax={interactive ? maxSize : undefined}\r\n aria-valuenow={interactive ? size : undefined}\r\n aria-disabled={interactive ? undefined : true}\r\n tabIndex={interactive ? tabIndex ?? 0 : undefined}\r\n className={cn(\r\n theme.slots.layoutResizeHandle,\r\n orientation === 'horizontal'\r\n ? theme.slots.layoutResizeHandleHorizontal\r\n : theme.slots.layoutResizeHandleVertical,\r\n !interactive && theme.slots.layoutResizeHandleDisabled,\r\n classNames?.root,\r\n className,\r\n )}\r\n style={{\r\n ...theme.styles.layoutResizeHandle,\r\n ...style,\r\n }}\r\n >\r\n <span\r\n aria-hidden=\"true\"\r\n className={cn(\r\n theme.slots.layoutResizeHandleIndicator,\r\n orientation === 'horizontal' ? 'h-8 w-px' : 'h-px w-8',\r\n classNames?.indicator,\r\n )}\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nexport function BaseLayoutSplit({\r\n orientation = 'horizontal',\r\n primary,\r\n secondary,\r\n children,\r\n resizable = false,\r\n size,\r\n defaultSize,\r\n minSize,\r\n maxSize,\r\n gap,\r\n keyboardStep,\r\n resizeLabel,\r\n appearance,\r\n className,\r\n classNames,\r\n style,\r\n onSizeChange,\r\n ...splitProps\r\n}: BaseLayoutSplitProps) {\r\n const theme = resolveBaseAppearance(appearance);\r\n const bounds = resolveSplitBounds({ minSize, maxSize, keyboardStep });\r\n const initialSize = resolveSplitSize(\r\n 'defaultSize',\r\n defaultSize,\r\n DEFAULT_SPLIT_SIZE,\r\n bounds.min,\r\n bounds.max,\r\n );\r\n const [uncontrolledSize, setUncontrolledSize] = useState(initialSize);\r\n const rootRef = useRef<HTMLDivElement | null>(null);\r\n const cleanupRef = useRef<(() => void) | null>(null);\r\n const controlled = size !== undefined;\r\n const renderedSize = resolveSplitSize(\r\n 'size',\r\n controlled ? size : uncontrolledSize,\r\n initialSize,\r\n bounds.min,\r\n bounds.max,\r\n );\r\n\r\n const commitSize = useCallback(\r\n (nextSize: number) => {\r\n const clampedSize = clamp(nextSize, bounds.min, bounds.max);\r\n if (!controlled) {\r\n setUncontrolledSize(clampedSize);\r\n }\r\n onSizeChange?.(clampedSize);\r\n },\r\n [bounds.max, bounds.min, controlled, onSizeChange],\r\n );\r\n\r\n const updateFromPointer = useCallback(\r\n (event: Pick<PointerEvent, 'clientX' | 'clientY'>) => {\r\n const root = rootRef.current;\r\n if (!root) return;\r\n const rect = root.getBoundingClientRect();\r\n const total = orientation === 'horizontal' ? rect.width : rect.height;\r\n if (total <= 0) return;\r\n const offset =\r\n orientation === 'horizontal'\r\n ? event.clientX - rect.left\r\n : event.clientY - rect.top;\r\n commitSize((offset / total) * 100);\r\n },\r\n [commitSize, orientation],\r\n );\r\n\r\n const stopResize = useCallback(() => {\r\n cleanupRef.current?.();\r\n cleanupRef.current = null;\r\n }, []);\r\n\r\n useEffect(() => stopResize, [stopResize]);\r\n\r\n const handlePointerDown = (event: ReactPointerEvent<HTMLDivElement>) => {\r\n if (!resizable) return;\r\n event.preventDefault();\r\n stopResize();\r\n updateFromPointer(event);\r\n\r\n const handleMove = (nextEvent: PointerEvent) => {\r\n updateFromPointer(nextEvent);\r\n };\r\n const handleStop = () => {\r\n stopResize();\r\n };\r\n\r\n window.addEventListener('pointermove', handleMove);\r\n window.addEventListener('pointerup', handleStop, { once: true });\r\n window.addEventListener('pointercancel', handleStop, { once: true });\r\n cleanupRef.current = () => {\r\n window.removeEventListener('pointermove', handleMove);\r\n window.removeEventListener('pointerup', handleStop);\r\n window.removeEventListener('pointercancel', handleStop);\r\n };\r\n };\r\n\r\n const handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\r\n if (!resizable) return;\r\n const step = event.shiftKey ? bounds.keyboardStep * 4 : bounds.keyboardStep;\r\n let nextSize: number | undefined;\r\n\r\n if (event.key === 'Home') nextSize = bounds.min;\r\n if (event.key === 'End') nextSize = bounds.max;\r\n if (orientation === 'horizontal' && event.key === 'ArrowLeft') {\r\n nextSize = renderedSize - step;\r\n }\r\n if (orientation === 'horizontal' && event.key === 'ArrowRight') {\r\n nextSize = renderedSize + step;\r\n }\r\n if (orientation === 'vertical' && event.key === 'ArrowUp') {\r\n nextSize = renderedSize - step;\r\n }\r\n if (orientation === 'vertical' && event.key === 'ArrowDown') {\r\n nextSize = renderedSize + step;\r\n }\r\n\r\n if (nextSize === undefined) return;\r\n event.preventDefault();\r\n commitSize(nextSize);\r\n };\r\n\r\n const resolvedGap = gap !== undefined ? toCssSize(gap, '0px') : undefined;\r\n const resizeTrack = resolvedGap !== undefined\r\n ? 'var(--base-layout-split-gap)'\r\n : 'auto';\r\n const resizeHandleStyle: CSSProperties | undefined =\r\n resolvedGap !== undefined\r\n ? orientation === 'horizontal'\r\n ? { width: 'var(--base-layout-split-gap)' }\r\n : { height: 'var(--base-layout-split-gap)' }\r\n : undefined;\r\n const splitStyle: CssVariableStyle = {\r\n ...theme.styles.layoutSplit,\r\n [orientation === 'horizontal' ? 'gridTemplateColumns' : 'gridTemplateRows']:\r\n resizable\r\n ? `${renderedSize}% ${resizeTrack} minmax(0, 1fr)`\r\n : `${renderedSize}% minmax(0, 1fr)`,\r\n ...(resizable ? { gap: 0 } : {}),\r\n ...(resolvedGap !== undefined\r\n ? {\r\n '--base-layout-split-gap': resolvedGap,\r\n ...(resizable ? {} : { gap: resolvedGap }),\r\n }\r\n : {}),\r\n ...style,\r\n };\r\n\r\n return (\r\n <div\r\n {...splitProps}\r\n ref={rootRef}\r\n className={cn(\r\n theme.slots.layoutSplitRoot,\r\n orientation === 'horizontal'\r\n ? theme.slots.layoutSplitHorizontal\r\n : theme.slots.layoutSplitVertical,\r\n classNames?.root,\r\n className,\r\n )}\r\n style={splitStyle}\r\n >\r\n <div\r\n className={cn(\r\n theme.slots.layoutSplitPane,\r\n theme.slots.layoutSplitPrimary,\r\n classNames?.primary,\r\n )}\r\n style={theme.styles.layoutSplitPane}\r\n >\r\n {hasRenderableNode(primary) ? primary : children}\r\n </div>\r\n\r\n {resizable ? (\r\n <BaseLayoutResizeHandle\r\n orientation={orientation}\r\n resizable\r\n size={renderedSize}\r\n minSize={bounds.min}\r\n maxSize={bounds.max}\r\n label={resizeLabel}\r\n appearance={appearance}\r\n className={classNames?.handle}\r\n style={resizeHandleStyle}\r\n onPointerDown={handlePointerDown}\r\n onKeyDown={handleKeyDown}\r\n />\r\n ) : null}\r\n\r\n <div\r\n className={cn(\r\n theme.slots.layoutSplitPane,\r\n theme.slots.layoutSplitSecondary,\r\n classNames?.secondary,\r\n )}\r\n style={theme.styles.layoutSplitPane}\r\n >\r\n {secondary}\r\n </div>\r\n </div>\r\n );\r\n}\r\n","import type { BaseLoadingStateProps } from './types';\r\nimport { resolveBaseAppearance } from './theme';\r\nimport { cn, hasRenderableNode } from './utils';\r\n\r\nfunction DefaultLoadingIcon({ className }: { className?: string }) {\r\n return (\r\n <svg\r\n aria-hidden=\"true\"\r\n viewBox=\"0 0 24 24\"\r\n className={className}\r\n fill=\"none\"\r\n >\r\n <circle\r\n cx=\"12\"\r\n cy=\"12\"\r\n r=\"9\"\r\n className=\"opacity-25\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"3\"\r\n />\r\n <path\r\n className=\"opacity-75\"\r\n fill=\"currentColor\"\r\n d=\"M12 3a9 9 0 0 1 9 9h-3a6 6 0 0 0-6-6V3Z\"\r\n />\r\n </svg>\r\n );\r\n}\r\n\r\nexport function BaseLoadingState({\r\n icon,\r\n title,\r\n description,\r\n actions,\r\n appearance,\r\n className,\r\n classNames,\r\n style,\r\n ...stateProps\r\n}: BaseLoadingStateProps) {\r\n const theme = resolveBaseAppearance(appearance);\r\n const resolvedIcon =\r\n icon ?? <DefaultLoadingIcon className={theme.slots.loadingSpinner} />;\r\n\r\n return (\r\n <div\r\n {...stateProps}\r\n aria-busy=\"true\"\r\n className={cn(theme.slots.stateRoot, classNames?.root, className)}\r\n style={{\r\n ...theme.styles.stateRoot,\r\n ...style,\r\n }}\r\n >\r\n <div\r\n className={cn(theme.slots.stateIcon, classNames?.icon)}\r\n style={theme.styles.stateIcon}\r\n >\r\n {resolvedIcon}\r\n </div>\r\n {hasRenderableNode(title) ? (\r\n <div className={cn(theme.slots.stateTitle, classNames?.title)}>\r\n {title}\r\n </div>\r\n ) : null}\r\n {hasRenderableNode(description) ? (\r\n <div\r\n className={cn(theme.slots.stateDescription, classNames?.description)}\r\n >\r\n {description}\r\n </div>\r\n ) : null}\r\n {hasRenderableNode(actions) ? (\r\n <div className={cn(theme.slots.stateActions, classNames?.actions)}>\r\n {actions}\r\n </div>\r\n ) : null}\r\n </div>\r\n );\r\n}\r\n","import {\r\n forwardRef,\r\n useEffect,\r\n useId,\r\n useMemo,\r\n useRef,\r\n useState,\r\n} from 'react';\r\nimport type { KeyboardEvent } from 'react';\r\n\r\nimport type { BaseMultiSelectOption, BaseMultiSelectProps } from './types';\r\nimport { resolveBaseAppearance } from './theme';\r\nimport { cn, hasRenderableNode } from './utils';\r\n\r\nfunction normalizeValues(values: readonly string[] | undefined) {\r\n const nextValues: string[] = [];\r\n const seen = new Set<string>();\r\n\r\n values?.forEach((value) => {\r\n if (seen.has(value)) return;\r\n seen.add(value);\r\n nextValues.push(value);\r\n });\r\n\r\n return nextValues;\r\n}\r\n\r\nfunction getNextEnabledIndex(\r\n options: BaseMultiSelectOption[],\r\n currentIndex: number,\r\n direction: 1 | -1,\r\n) {\r\n if (!options.length) return -1;\r\n\r\n const startIndex = currentIndex >= 0 ? currentIndex : 0;\r\n for (let offset = 1; offset <= options.length; offset += 1) {\r\n const nextIndex =\r\n (startIndex + offset * direction + options.length) % options.length;\r\n if (!options[nextIndex]?.disabled) {\r\n return nextIndex;\r\n }\r\n }\r\n\r\n return -1;\r\n}\r\n\r\nfunction getFirstEnabledIndex(options: BaseMultiSelectOption[]) {\r\n return options.findIndex((option) => !option.disabled);\r\n}\r\n\r\nfunction getSafeTagCount(maxTagCount: number | undefined, total: number) {\r\n if (maxTagCount === undefined) return total;\r\n if (!Number.isFinite(maxTagCount)) return total;\r\n return Math.max(0, Math.min(total, Math.floor(maxTagCount)));\r\n}\r\n\r\nfunction getDefaultRemoveLabel(option: BaseMultiSelectOption) {\r\n return `Remove ${option.value}`;\r\n}\r\n\r\nexport const BaseMultiSelect = forwardRef<HTMLDivElement, BaseMultiSelectProps>(\r\n function BaseMultiSelect(\r\n {\r\n options,\r\n value,\r\n defaultValue,\r\n name,\r\n placeholder = 'Select options',\r\n icon,\r\n invalid = false,\r\n disabled = false,\r\n required = false,\r\n openForPreview = false,\r\n maxTagCount,\r\n removeLabel = getDefaultRemoveLabel,\r\n emptyLabel = 'No options',\r\n appearance,\r\n className,\r\n classNames,\r\n style,\r\n id,\r\n 'aria-invalid': nativeAriaInvalid,\r\n 'aria-label': nativeAriaLabel,\r\n 'aria-labelledby': nativeAriaLabelledBy,\r\n onValueChange,\r\n ...rootProps\r\n },\r\n ref,\r\n ) {\r\n const theme = resolveBaseAppearance(appearance);\r\n const generatedId = useId();\r\n const multiSelectId = id ?? generatedId;\r\n const controlId = `${multiSelectId}-control`;\r\n const listboxId = `${multiSelectId}-listbox`;\r\n const rootRef = useRef<HTMLDivElement | null>(null);\r\n const optionList = options ?? [];\r\n const forceOpen = openForPreview;\r\n const [uncontrolledOpen, setUncontrolledOpen] = useState(false);\r\n const open = forceOpen || uncontrolledOpen;\r\n const [uncontrolledValue, setUncontrolledValue] = useState(() =>\r\n normalizeValues(defaultValue),\r\n );\r\n const [activeIndex, setActiveIndex] = useState(() =>\r\n getFirstEnabledIndex(optionList),\r\n );\r\n const isControlled = value !== undefined;\r\n const selectedValues = useMemo(\r\n () => normalizeValues(isControlled ? value : uncontrolledValue),\r\n [isControlled, uncontrolledValue, value],\r\n );\r\n const selectedValueSet = useMemo(\r\n () => new Set(selectedValues),\r\n [selectedValues],\r\n );\r\n const optionByValue = useMemo(() => {\r\n const map = new Map<string, BaseMultiSelectOption>();\r\n optionList.forEach((option) => {\r\n if (!map.has(option.value)) {\r\n map.set(option.value, option);\r\n }\r\n });\r\n return map;\r\n }, [optionList]);\r\n const selectedOptions = useMemo(\r\n () =>\r\n selectedValues\r\n .map((selectedValue) => optionByValue.get(selectedValue))\r\n .filter(\r\n (option): option is BaseMultiSelectOption => option !== undefined,\r\n ),\r\n [optionByValue, selectedValues],\r\n );\r\n const firstEnabledIndex = useMemo(\r\n () => getFirstEnabledIndex(optionList),\r\n [optionList],\r\n );\r\n const resolvedActiveIndex =\r\n activeIndex >= 0 && !optionList[activeIndex]?.disabled\r\n ? activeIndex\r\n : firstEnabledIndex;\r\n const visibleTagCount = getSafeTagCount(\r\n maxTagCount,\r\n selectedOptions.length,\r\n );\r\n const visibleOptions = selectedOptions.slice(0, visibleTagCount);\r\n const overflowCount = selectedOptions.length - visibleOptions.length;\r\n const isPlaceholder = selectedOptions.length === 0;\r\n\r\n const setRootRef = (node: HTMLDivElement | null) => {\r\n rootRef.current = node;\r\n if (typeof ref === 'function') {\r\n ref(node);\r\n } else if (ref) {\r\n ref.current = node;\r\n }\r\n };\r\n\r\n const setOpen = (nextOpen: boolean) => {\r\n if (disabled || forceOpen) return;\r\n setUncontrolledOpen(nextOpen);\r\n if (nextOpen) {\r\n setActiveIndex(resolvedActiveIndex);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (!open || forceOpen) return undefined;\r\n\r\n const handlePointerDown = (event: PointerEvent) => {\r\n if (!rootRef.current?.contains(event.target as Node)) {\r\n setUncontrolledOpen(false);\r\n }\r\n };\r\n\r\n document.addEventListener('pointerdown', handlePointerDown);\r\n return () => {\r\n document.removeEventListener('pointerdown', handlePointerDown);\r\n };\r\n }, [forceOpen, open]);\r\n\r\n useEffect(() => {\r\n if (resolvedActiveIndex >= 0 && resolvedActiveIndex !== activeIndex) {\r\n setActiveIndex(resolvedActiveIndex);\r\n }\r\n }, [activeIndex, resolvedActiveIndex]);\r\n\r\n const commitValues = (nextValues: string[]) => {\r\n const normalizedValues = normalizeValues(nextValues);\r\n if (!isControlled) {\r\n setUncontrolledValue(normalizedValues);\r\n }\r\n onValueChange?.(normalizedValues);\r\n };\r\n\r\n const toggleOption = (option: BaseMultiSelectOption | undefined) => {\r\n if (!option || option.disabled || disabled) return;\r\n const nextValues = selectedValueSet.has(option.value)\r\n ? selectedValues.filter((selectedValue) => selectedValue !== option.value)\r\n : [...selectedValues, option.value];\r\n commitValues(nextValues);\r\n };\r\n\r\n const removeOption = (option: BaseMultiSelectOption) => {\r\n if (disabled) return;\r\n commitValues(\r\n selectedValues.filter((selectedValue) => selectedValue !== option.value),\r\n );\r\n };\r\n\r\n const focusOption = (direction: 1 | -1) => {\r\n const nextIndex = getNextEnabledIndex(\r\n optionList,\r\n resolvedActiveIndex,\r\n direction,\r\n );\r\n if (nextIndex >= 0) {\r\n setActiveIndex(nextIndex);\r\n }\r\n };\r\n\r\n const handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\r\n if (disabled) return;\r\n\r\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\r\n event.preventDefault();\r\n if (!open) {\r\n setOpen(true);\r\n setActiveIndex(firstEnabledIndex);\r\n return;\r\n }\r\n focusOption(event.key === 'ArrowDown' ? 1 : -1);\r\n return;\r\n }\r\n\r\n if (event.key === 'Home') {\r\n event.preventDefault();\r\n setOpen(true);\r\n setActiveIndex(firstEnabledIndex);\r\n return;\r\n }\r\n\r\n if (event.key === 'End') {\r\n event.preventDefault();\r\n setOpen(true);\r\n for (let index = optionList.length - 1; index >= 0; index -= 1) {\r\n if (!optionList[index]?.disabled) {\r\n setActiveIndex(index);\r\n break;\r\n }\r\n }\r\n return;\r\n }\r\n\r\n if (event.key === 'Enter' || event.key === ' ') {\r\n event.preventDefault();\r\n if (!open) {\r\n setOpen(true);\r\n return;\r\n }\r\n toggleOption(optionList[resolvedActiveIndex]);\r\n return;\r\n }\r\n\r\n if (event.key === 'Escape') {\r\n setOpen(false);\r\n }\r\n };\r\n\r\n return (\r\n <div\r\n {...rootProps}\r\n id={id}\r\n ref={setRootRef}\r\n className={cn(\r\n theme.slots.controlWrapper,\r\n 'overflow-visible',\r\n open && 'z-50',\r\n invalid && theme.slots.controlInvalid,\r\n disabled && theme.slots.controlDisabled,\r\n classNames?.root,\r\n className,\r\n )}\r\n style={{\r\n ...theme.styles.control,\r\n ...(invalid ? theme.styles.controlInvalid : undefined),\r\n ...(disabled ? theme.styles.controlDisabled : undefined),\r\n ...style,\r\n }}\r\n >\r\n {hasRenderableNode(icon) ? (\r\n <span className={cn(theme.slots.controlIcon, classNames?.icon)}>\r\n {icon}\r\n </span>\r\n ) : null}\r\n <div\r\n id={controlId}\r\n role=\"combobox\"\r\n tabIndex={disabled ? -1 : 0}\r\n aria-haspopup=\"listbox\"\r\n aria-expanded={open}\r\n aria-controls={listboxId}\r\n aria-disabled={disabled || undefined}\r\n aria-required={required || undefined}\r\n aria-invalid={nativeAriaInvalid ?? (invalid || undefined)}\r\n aria-label={nativeAriaLabel}\r\n aria-labelledby={nativeAriaLabelledBy}\r\n className={cn(\r\n theme.slots.controlBase,\r\n 'flex min-h-9 cursor-pointer flex-wrap items-center gap-1.5 py-1.5 pr-9 text-left',\r\n disabled && '!cursor-not-allowed',\r\n classNames?.control,\r\n )}\r\n onClick={() => setOpen(!open)}\r\n onKeyDown={handleKeyDown}\r\n >\r\n <span\r\n className={cn(\r\n 'flex min-w-0 flex-1 flex-wrap items-center gap-1.5',\r\n classNames?.tagList,\r\n )}\r\n >\r\n {visibleOptions.map((option) => (\r\n <span\r\n key={option.value}\r\n className={cn(\r\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',\r\n classNames?.tag,\r\n )}\r\n >\r\n <span\r\n className={cn(\r\n 'max-w-40 truncate',\r\n classNames?.tagLabel,\r\n )}\r\n >\r\n {option.label}\r\n </span>\r\n <button\r\n type=\"button\"\r\n aria-label={removeLabel(option)}\r\n disabled={disabled}\r\n className={cn(\r\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',\r\n classNames?.tagRemove,\r\n )}\r\n onClick={(event) => {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n removeOption(option);\r\n }}\r\n onMouseDown={(event) => {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }}\r\n onKeyDown={(event) => event.stopPropagation()}\r\n >\r\n <span aria-hidden=\"true\">x</span>\r\n </button>\r\n </span>\r\n ))}\r\n {overflowCount > 0 ? (\r\n <span\r\n className={cn(\r\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',\r\n classNames?.tag,\r\n )}\r\n >\r\n +{overflowCount}\r\n </span>\r\n ) : null}\r\n {isPlaceholder ? (\r\n <span\r\n className={cn(\r\n 'min-w-0 truncate',\r\n theme.slots.selectPlaceholder,\r\n classNames?.placeholder,\r\n )}\r\n >\r\n {placeholder}\r\n </span>\r\n ) : null}\r\n </span>\r\n </div>\r\n <span\r\n className={cn(\r\n theme.slots.selectChevron,\r\n open && 'rotate-[225deg]',\r\n classNames?.chevron,\r\n )}\r\n />\r\n {name\r\n ? selectedValues.map((selectedValue) => (\r\n <input\r\n key={selectedValue}\r\n type=\"hidden\"\r\n name={name}\r\n value={selectedValue}\r\n className={classNames?.hiddenInput}\r\n />\r\n ))\r\n : null}\r\n {open ? (\r\n <div\r\n id={listboxId}\r\n role=\"listbox\"\r\n aria-multiselectable=\"true\"\r\n aria-labelledby={controlId}\r\n className={cn(theme.slots.selectMenu, classNames?.menu)}\r\n style={theme.styles.selectMenu}\r\n >\r\n {optionList.length > 0 ? (\r\n optionList.map((option, index) => {\r\n const selected = selectedValueSet.has(option.value);\r\n const active = index === resolvedActiveIndex;\r\n return (\r\n <button\r\n key={option.value}\r\n type=\"button\"\r\n role=\"option\"\r\n aria-selected={selected}\r\n disabled={option.disabled}\r\n className={cn(\r\n theme.slots.selectOption,\r\n 'gap-2',\r\n active && theme.slots.selectOptionActive,\r\n selected && theme.slots.selectOptionSelected,\r\n option.disabled && theme.slots.selectOptionDisabled,\r\n classNames?.option,\r\n )}\r\n style={{\r\n ...theme.styles.selectOption,\r\n ...(active ? theme.styles.selectOptionActive : undefined),\r\n ...(selected\r\n ? theme.styles.selectOptionSelected\r\n : undefined),\r\n }}\r\n onMouseEnter={() => {\r\n if (!option.disabled) {\r\n setActiveIndex(index);\r\n }\r\n }}\r\n onMouseDown={(event) => event.preventDefault()}\r\n onClick={() => toggleOption(option)}\r\n >\r\n <span\r\n aria-hidden=\"true\"\r\n className={cn(\r\n 'inline-flex h-4 w-4 shrink-0 items-center justify-center rounded-sm border border-border/70 text-[10px]',\r\n selected && 'border-primary/40 bg-primary text-primary-foreground',\r\n classNames?.optionIndicator,\r\n )}\r\n >\r\n {selected ? '✓' : null}\r\n </span>\r\n <span\r\n className={cn(\r\n 'min-w-0 flex-1 truncate',\r\n classNames?.optionLabel,\r\n )}\r\n >\r\n {option.label}\r\n </span>\r\n </button>\r\n );\r\n })\r\n ) : (\r\n <div\r\n className={cn(\r\n 'px-2.5 py-2 text-sm text-muted-foreground',\r\n classNames?.empty,\r\n )}\r\n >\r\n {emptyLabel}\r\n </div>\r\n )}\r\n </div>\r\n ) : null}\r\n </div>\r\n );\r\n },\r\n);\r\n","import type { BaseNoticeProps } from './types';\r\nimport { getBaseNoticeToneClassName, resolveBaseAppearance } from './theme';\r\nimport { cn, hasRenderableNode } from './utils';\r\n\r\nexport function BaseNotice({\r\n tone,\r\n icon,\r\n title,\r\n description,\r\n actions,\r\n children,\r\n appearance,\r\n className,\r\n classNames,\r\n style,\r\n ...noticeProps\r\n}: BaseNoticeProps) {\r\n const theme = resolveBaseAppearance(appearance);\r\n const resolvedDescription = children ?? description;\r\n\r\n return (\r\n <div\r\n {...noticeProps}\r\n className={cn(\r\n theme.slots.noticeBase,\r\n getBaseNoticeToneClassName(theme, tone),\r\n classNames?.root,\r\n className,\r\n )}\r\n style={{\r\n ...theme.styles.notice,\r\n ...style,\r\n }}\r\n >\r\n {hasRenderableNode(icon) ? (\r\n <div className={cn(theme.slots.noticeIcon, classNames?.icon)}>\r\n {icon}\r\n </div>\r\n ) : null}\r\n <div className=\"min-w-0 flex-1\">\r\n {hasRenderableNode(title) ? (\r\n <div className={cn(theme.slots.noticeTitle, classNames?.title)}>\r\n {title}\r\n </div>\r\n ) : null}\r\n {hasRenderableNode(resolvedDescription) ? (\r\n <div\r\n className={cn(\r\n theme.slots.noticeDescription,\r\n classNames?.description,\r\n )}\r\n >\r\n {resolvedDescription}\r\n </div>\r\n ) : null}\r\n {hasRenderableNode(actions) ? (\r\n <div className={cn(theme.slots.noticeActions, classNames?.actions)}>\r\n {actions}\r\n </div>\r\n ) : null}\r\n </div>\r\n </div>\r\n );\r\n}\r\n","import type { ElementType } from 'react';\r\n\r\nimport type { BasePanelProps } from './types';\r\nimport { resolveBaseAppearance } from './theme';\r\nimport { cn, hasRenderableNode } from './utils';\r\n\r\nexport function BasePanel({\r\n as = 'article',\r\n title,\r\n description,\r\n media,\r\n header,\r\n footer,\r\n children,\r\n interactive,\r\n selected,\r\n disabled,\r\n appearance,\r\n className,\r\n classNames,\r\n style,\r\n ...panelProps\r\n}: BasePanelProps) {\r\n const theme = resolveBaseAppearance(appearance);\r\n const Component = as as ElementType;\r\n const hasHeader =\r\n header !== undefined\r\n ? hasRenderableNode(header)\r\n : hasRenderableNode(title) || hasRenderableNode(description);\r\n const hasMedia = media !== undefined && media !== null;\r\n const bodyIsStandalone = !hasHeader && !hasMedia;\r\n\r\n return (\r\n <Component\r\n {...panelProps}\r\n aria-disabled={disabled || undefined}\r\n className={cn(\r\n theme.slots.panelRoot,\r\n interactive && !disabled && theme.slots.panelInteractive,\r\n selected && theme.slots.panelSelected,\r\n disabled && theme.slots.panelDisabled,\r\n classNames?.root,\r\n className,\r\n )}\r\n style={{\r\n ...theme.styles.panel,\r\n ...style,\r\n }}\r\n >\r\n {hasMedia ? (\r\n <div className={cn(theme.slots.panelMedia, classNames?.media)}>\r\n {media}\r\n </div>\r\n ) : null}\r\n\r\n {hasHeader ? (\r\n <div\r\n className={cn(theme.slots.panelHeader, classNames?.header)}\r\n style={theme.styles.panelHeader}\r\n >\r\n {header !== undefined ? (\r\n header\r\n ) : (\r\n <>\r\n {hasRenderableNode(title) ? (\r\n <div className={cn(theme.slots.panelTitle, classNames?.title)}>\r\n {title}\r\n </div>\r\n ) : null}\r\n {hasRenderableNode(description) ? (\r\n <div\r\n className={cn(\r\n theme.slots.panelDescription,\r\n classNames?.description,\r\n )}\r\n >\r\n {description}\r\n </div>\r\n ) : null}\r\n </>\r\n )}\r\n </div>\r\n ) : null}\r\n\r\n {children !== undefined && children !== null ? (\r\n <div\r\n className={cn(\r\n theme.slots.panelBody,\r\n bodyIsStandalone && theme.slots.panelBodyStandalone,\r\n classNames?.body,\r\n )}\r\n style={theme.styles.panelBody}\r\n >\r\n {children}\r\n </div>\r\n ) : null}\r\n\r\n {footer !== undefined && footer !== null ? (\r\n <div\r\n className={cn(theme.slots.panelFooter, classNames?.footer)}\r\n style={theme.styles.panelFooter}\r\n >\r\n {footer}\r\n </div>\r\n ) : null}\r\n </Component>\r\n );\r\n}\r\n","import type { BasePaginationProps } from './types';\r\nimport { resolveBaseAppearance } from './theme';\r\nimport { cn, hasRenderableNode } from './utils';\r\n\r\nfunction clampPage(page: number, pageCount: number) {\r\n return Math.min(Math.max(page, 1), Math.max(pageCount, 1));\r\n}\r\n\r\nexport function BasePagination({\r\n page = 1,\r\n pageSize = 20,\r\n total = 0,\r\n label,\r\n previousLabel = 'Previous',\r\n nextLabel = 'Next',\r\n appearance,\r\n className,\r\n classNames,\r\n style,\r\n onPageChange,\r\n ...paginationProps\r\n}: BasePaginationProps) {\r\n const theme = resolveBaseAppearance(appearance);\r\n const safePageSize = Math.max(pageSize, 1);\r\n const pageCount = Math.max(Math.ceil(Math.max(total, 0) / safePageSize), 1);\r\n const currentPage = clampPage(page, pageCount);\r\n const start = total > 0 ? (currentPage - 1) * safePageSize + 1 : 0;\r\n const end = Math.min(currentPage * safePageSize, total);\r\n const canPrevious = currentPage > 1;\r\n const canNext = currentPage < pageCount;\r\n\r\n return (\r\n <div\r\n {...paginationProps}\r\n className={cn(theme.slots.paginationRoot, classNames?.root, className)}\r\n style={{\r\n ...theme.styles.pagination,\r\n ...style,\r\n }}\r\n >\r\n <div className={cn(theme.slots.paginationInfo, classNames?.info)}>\r\n {hasRenderableNode(label)\r\n ? label\r\n : total > 0\r\n ? `${start}-${end} of ${total}`\r\n : '0 results'}\r\n </div>\r\n\r\n <div className={cn(theme.slots.paginationControls, classNames?.controls)}>\r\n <button\r\n type=\"button\"\r\n disabled={!canPrevious}\r\n className={cn(\r\n theme.slots.paginationButton,\r\n !canPrevious && theme.slots.paginationButtonDisabled,\r\n classNames?.button,\r\n )}\r\n onClick={() => canPrevious && onPageChange?.(currentPage - 1)}\r\n >\r\n {previousLabel}\r\n </button>\r\n <span className={cn(theme.slots.paginationPage, classNames?.page)}>\r\n {currentPage} / {pageCount}\r\n </span>\r\n <button\r\n type=\"button\"\r\n disabled={!canNext}\r\n className={cn(\r\n theme.slots.paginationButton,\r\n !canNext && theme.slots.paginationButtonDisabled,\r\n classNames?.button,\r\n )}\r\n onClick={() => canNext && onPageChange?.(currentPage + 1)}\r\n >\r\n {nextLabel}\r\n </button>\r\n </div>\r\n </div>\r\n );\r\n}\r\n","import type { BaseProgressProps } from './types';\r\nimport { resolveBaseAppearance } from './theme';\r\nimport { cn, hasRenderableNode } from './utils';\r\n\r\nfunction toFiniteNumber(value: number | undefined, fallback: number) {\r\n return Number.isFinite(value) ? Number(value) : fallback;\r\n}\r\n\r\nfunction clamp(value: number, min: number, max: number) {\r\n return Math.min(Math.max(value, min), max);\r\n}\r\n\r\nexport function BaseProgress({\r\n value = 0,\r\n max = 100,\r\n label,\r\n showValue = false,\r\n valueFormatter,\r\n appearance,\r\n className,\r\n classNames,\r\n style,\r\n 'aria-label': nativeAriaLabel,\r\n ...progressProps\r\n}: BaseProgressProps) {\r\n const theme = resolveBaseAppearance(appearance);\r\n const safeMax = Math.max(toFiniteNumber(max, 100), 1);\r\n const safeValue = clamp(toFiniteNumber(value, 0), 0, safeMax);\r\n const percent = (safeValue / safeMax) * 100;\r\n const renderedValue =\r\n valueFormatter?.(safeValue, safeMax) ?? `${Math.round(percent)}%`;\r\n const hasLabelRow = hasRenderableNode(label) || showValue;\r\n const labelText = typeof label === 'string' ? label : undefined;\r\n\r\n return (\r\n <div\r\n {...progressProps}\r\n role=\"progressbar\"\r\n aria-valuemin={0}\r\n aria-valuemax={safeMax}\r\n aria-valuenow={safeValue}\r\n aria-label={nativeAriaLabel ?? labelText}\r\n className={cn(theme.slots.progressRoot, classNames?.root, className)}\r\n style={{\r\n ...theme.styles.progressRoot,\r\n ...style,\r\n }}\r\n >\r\n {hasLabelRow ? (\r\n <div className={cn(theme.slots.progressLabelRow, classNames?.labelRow)}>\r\n {hasRenderableNode(label) ? (\r\n <span className={cn(theme.slots.progressLabel, classNames?.label)}>\r\n {label}\r\n </span>\r\n ) : (\r\n <span />\r\n )}\r\n {showValue ? (\r\n <span className={cn(theme.slots.progressValue, classNames?.value)}>\r\n {renderedValue}\r\n </span>\r\n ) : null}\r\n </div>\r\n ) : null}\r\n <div className={cn(theme.slots.progressTrack, classNames?.track)}>\r\n <div\r\n className={cn(theme.slots.progressIndicator, classNames?.indicator)}\r\n style={{\r\n width: `${percent}%`,\r\n ...theme.styles.progressIndicator,\r\n }}\r\n />\r\n </div>\r\n </div>\r\n );\r\n}\r\n","import { useId, useState } from 'react';\r\n\r\nimport type { BaseRadioGroupProps } from './types';\r\nimport { resolveBaseAppearance } from './theme';\r\nimport { cn, hasRenderableNode } from './utils';\r\n\r\nfunction toDomId(value: string) {\r\n return value.replace(/[^a-zA-Z0-9_-]/g, '-');\r\n}\r\n\r\nexport function BaseRadioGroup({\r\n options = [],\r\n value,\r\n defaultValue,\r\n name,\r\n orientation = 'vertical',\r\n disabled = false,\r\n appearance,\r\n className,\r\n classNames,\r\n style,\r\n children,\r\n onValueChange,\r\n id,\r\n ...groupProps\r\n}: BaseRadioGroupProps) {\r\n const theme = resolveBaseAppearance(appearance);\r\n const generatedId = useId();\r\n const rootId = id ?? generatedId;\r\n const resolvedName = name ?? rootId;\r\n const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);\r\n const isControlled = value !== undefined;\r\n const selectedValue = isControlled ? value : uncontrolledValue;\r\n\r\n const handleSelect = (nextValue: string, optionDisabled?: boolean) => {\r\n if (disabled || optionDisabled) return;\r\n if (!isControlled) {\r\n setUncontrolledValue(nextValue);\r\n }\r\n onValueChange?.(nextValue);\r\n };\r\n\r\n return (\r\n <div\r\n {...groupProps}\r\n id={id}\r\n role=\"radiogroup\"\r\n aria-orientation={orientation}\r\n aria-disabled={disabled || undefined}\r\n className={cn(\r\n theme.slots.radioGroupRoot,\r\n orientation === 'horizontal' && 'flex flex-wrap items-center',\r\n classNames?.root,\r\n className,\r\n )}\r\n style={{\r\n ...theme.styles.radioGroup,\r\n ...style,\r\n }}\r\n >\r\n {options.map((option) => {\r\n const optionDisabled = disabled || option.disabled;\r\n const checked = option.value === selectedValue;\r\n const optionId = `${rootId}-${toDomId(option.value)}`;\r\n\r\n return (\r\n <label\r\n key={option.value}\r\n htmlFor={optionId}\r\n className={cn(\r\n theme.slots.radioOption,\r\n optionDisabled && theme.slots.radioOptionDisabled,\r\n classNames?.option,\r\n )}\r\n style={theme.styles.radioOption}\r\n >\r\n <span\r\n className={cn(\r\n theme.slots.radioMarker,\r\n checked && theme.slots.radioMarkerChecked,\r\n classNames?.marker,\r\n )}\r\n >\r\n <input\r\n id={optionId}\r\n type=\"radio\"\r\n name={resolvedName}\r\n value={option.value}\r\n checked={checked}\r\n disabled={optionDisabled}\r\n className={cn(theme.slots.radioInput, classNames?.input)}\r\n onChange={() => handleSelect(option.value, option.disabled)}\r\n />\r\n {checked ? (\r\n <span\r\n aria-hidden=\"true\"\r\n className={cn(theme.slots.radioIndicator, classNames?.indicator)}\r\n />\r\n ) : null}\r\n </span>\r\n {hasRenderableNode(option.icon) ? (\r\n <span className={cn('mt-0.5 shrink-0', classNames?.icon)}>\r\n {option.icon}\r\n </span>\r\n ) : null}\r\n <span className={cn(theme.slots.radioContent, classNames?.content)}>\r\n <span className={cn(theme.slots.radioLabel, classNames?.label)}>\r\n {option.label}\r\n </span>\r\n {hasRenderableNode(option.description) ? (\r\n <span\r\n className={cn(\r\n theme.slots.radioDescription,\r\n classNames?.description,\r\n )}\r\n >\r\n {option.description}\r\n </span>\r\n ) : null}\r\n </span>\r\n </label>\r\n );\r\n })}\r\n {children}\r\n </div>\r\n );\r\n}\r\n","import {\r\n forwardRef,\r\n useEffect,\r\n useId,\r\n useMemo,\r\n useRef,\r\n useState,\r\n} from 'react';\r\nimport type { KeyboardEvent } from 'react';\r\n\r\nimport type { BaseSelectOption, BaseSelectProps } from './types';\r\nimport { resolveBaseAppearance } from './theme';\r\nimport { cn, hasRenderableNode } from './utils';\r\n\r\nfunction findOption(options: BaseSelectOption[], value: string | undefined) {\r\n if (value === undefined) return undefined;\r\n return options.find((option) => option.value === value);\r\n}\r\n\r\nfunction getInitialValue(\r\n options: BaseSelectOption[],\r\n defaultValue: string | number | readonly string[] | undefined,\r\n) {\r\n if (typeof defaultValue === 'string') {\r\n return defaultValue;\r\n }\r\n return '';\r\n}\r\n\r\nfunction getNextEnabledIndex(\r\n options: BaseSelectOption[],\r\n currentIndex: number,\r\n direction: 1 | -1,\r\n) {\r\n if (!options.length) return -1;\r\n\r\n for (let offset = 1; offset <= options.length; offset += 1) {\r\n const nextIndex =\r\n (currentIndex + offset * direction + options.length) % options.length;\r\n if (!options[nextIndex]?.disabled) {\r\n return nextIndex;\r\n }\r\n }\r\n\r\n return -1;\r\n}\r\n\r\nexport const BaseSelect = forwardRef<HTMLSelectElement, BaseSelectProps>(\r\n function BaseSelect(\r\n {\r\n options,\r\n placeholder,\r\n icon,\r\n invalid = false,\r\n disabled = false,\r\n openForPreview = false,\r\n appearance,\r\n className,\r\n classNames,\r\n style,\r\n children,\r\n value,\r\n defaultValue,\r\n onChange,\r\n name,\r\n id,\r\n required,\r\n 'aria-invalid': nativeAriaInvalid,\r\n 'aria-label': nativeAriaLabel,\r\n 'aria-labelledby': nativeAriaLabelledBy,\r\n ...selectProps\r\n },\r\n ref,\r\n ) {\r\n const theme = resolveBaseAppearance(appearance);\r\n const generatedId = useId();\r\n const selectId = id ?? generatedId;\r\n const listboxId = `${selectId}-listbox`;\r\n const rootRef = useRef<HTMLDivElement | null>(null);\r\n const selectRef = useRef<HTMLSelectElement | null>(null);\r\n const optionList = options ?? [];\r\n const isCustomSelect = optionList.length > 0;\r\n const forceOpen = openForPreview;\r\n const [uncontrolledOpen, setUncontrolledOpen] = useState(false);\r\n const open = forceOpen || uncontrolledOpen;\r\n const [uncontrolledValue, setUncontrolledValue] = useState(() =>\r\n getInitialValue(optionList, defaultValue),\r\n );\r\n const isControlled = value !== undefined;\r\n const selectedValue = String(isControlled ? value : uncontrolledValue);\r\n const selectedOption = findOption(optionList, selectedValue);\r\n const activeIndex = useMemo(() => {\r\n const selectedIndex = optionList.findIndex(\r\n (option) => option.value === selectedValue && !option.disabled,\r\n );\r\n if (selectedIndex >= 0) return selectedIndex;\r\n return optionList.findIndex((option) => !option.disabled);\r\n }, [optionList, selectedValue]);\r\n const visibleLabel = selectedOption?.label ?? placeholder;\r\n const isPlaceholder = !selectedOption;\r\n\r\n const setSelectRef = (node: HTMLSelectElement | null) => {\r\n selectRef.current = node;\r\n if (typeof ref === 'function') {\r\n ref(node);\r\n } else if (ref) {\r\n ref.current = node;\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (!open || forceOpen) return undefined;\r\n\r\n const handlePointerDown = (event: PointerEvent) => {\r\n if (!rootRef.current?.contains(event.target as Node)) {\r\n setUncontrolledOpen(false);\r\n }\r\n };\r\n\r\n document.addEventListener('pointerdown', handlePointerDown);\r\n return () => {\r\n document.removeEventListener('pointerdown', handlePointerDown);\r\n };\r\n }, [forceOpen, open]);\r\n\r\n const notifyChange = (nextValue: string) => {\r\n const selectElement = selectRef.current;\r\n if (!selectElement) return;\r\n const valueSetter = Object.getOwnPropertyDescriptor(\r\n HTMLSelectElement.prototype,\r\n 'value',\r\n )?.set;\r\n valueSetter?.call(selectElement, nextValue);\r\n selectElement.dispatchEvent(new Event('change', { bubbles: true }));\r\n };\r\n\r\n const commitValue = (nextValue: string, optionDisabled?: boolean) => {\r\n if (optionDisabled || disabled) return;\r\n if (!isControlled) {\r\n setUncontrolledValue(nextValue);\r\n }\r\n notifyChange(nextValue);\r\n if (!forceOpen) {\r\n setUncontrolledOpen(false);\r\n }\r\n };\r\n\r\n const focusOption = (direction: 1 | -1) => {\r\n const currentIndex = activeIndex >= 0 ? activeIndex : 0;\r\n const nextIndex = getNextEnabledIndex(optionList, currentIndex, direction);\r\n if (nextIndex >= 0) {\r\n commitValue(optionList[nextIndex].value, optionList[nextIndex].disabled);\r\n }\r\n };\r\n\r\n const handleKeyDown = (event: KeyboardEvent<HTMLButtonElement>) => {\r\n if (disabled) return;\r\n\r\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\r\n event.preventDefault();\r\n if (!open) {\r\n setUncontrolledOpen(true);\r\n return;\r\n }\r\n focusOption(event.key === 'ArrowDown' ? 1 : -1);\r\n return;\r\n }\r\n\r\n if (event.key === 'Enter' || event.key === ' ') {\r\n event.preventDefault();\r\n if (!forceOpen) {\r\n setUncontrolledOpen((current) => !current);\r\n }\r\n return;\r\n }\r\n\r\n if (event.key === 'Escape') {\r\n setUncontrolledOpen(false);\r\n }\r\n };\r\n\r\n if (!isCustomSelect) {\r\n return (\r\n <div\r\n className={cn(\r\n theme.slots.controlWrapper,\r\n invalid && theme.slots.controlInvalid,\r\n disabled && theme.slots.controlDisabled,\r\n classNames?.root,\r\n className,\r\n )}\r\n style={{\r\n ...theme.styles.control,\r\n ...(invalid ? theme.styles.controlInvalid : undefined),\r\n ...(disabled ? theme.styles.controlDisabled : undefined),\r\n ...style,\r\n }}\r\n >\r\n {hasRenderableNode(icon) ? (\r\n <span className={cn(theme.slots.controlIcon, classNames?.icon)}>\r\n {icon}\r\n </span>\r\n ) : null}\r\n <select\r\n {...selectProps}\r\n id={id}\r\n ref={ref}\r\n name={name}\r\n value={value}\r\n defaultValue={defaultValue}\r\n required={required}\r\n disabled={disabled}\r\n aria-invalid={nativeAriaInvalid ?? (invalid || undefined)}\r\n aria-label={nativeAriaLabel}\r\n aria-labelledby={nativeAriaLabelledBy}\r\n onChange={onChange}\r\n className={cn(\r\n theme.slots.controlBase,\r\n theme.slots.controlSelect,\r\n classNames?.control,\r\n )}\r\n >\r\n {hasRenderableNode(placeholder) ? (\r\n <option value=\"\" disabled>\r\n {placeholder}\r\n </option>\r\n ) : null}\r\n {children}\r\n </select>\r\n <span className={theme.slots.selectChevron} />\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <div\r\n ref={rootRef}\r\n className={cn(\r\n theme.slots.controlWrapper,\r\n 'overflow-visible',\r\n open && 'z-50',\r\n invalid && theme.slots.controlInvalid,\r\n disabled && theme.slots.controlDisabled,\r\n classNames?.root,\r\n className,\r\n )}\r\n style={{\r\n ...theme.styles.control,\r\n ...(invalid ? theme.styles.controlInvalid : undefined),\r\n ...(disabled ? theme.styles.controlDisabled : undefined),\r\n ...style,\r\n }}\r\n >\r\n {hasRenderableNode(icon) ? (\r\n <span className={cn(theme.slots.controlIcon, classNames?.icon)}>\r\n {icon}\r\n </span>\r\n ) : null}\r\n <button\r\n type=\"button\"\r\n id={`${selectId}-button`}\r\n disabled={disabled}\r\n aria-haspopup=\"listbox\"\r\n aria-expanded={open}\r\n aria-controls={listboxId}\r\n aria-invalid={nativeAriaInvalid ?? (invalid || undefined)}\r\n aria-label={nativeAriaLabel}\r\n aria-labelledby={nativeAriaLabelledBy}\r\n className={cn(\r\n theme.slots.controlBase,\r\n theme.slots.controlSelect,\r\n 'flex items-center text-left',\r\n classNames?.control,\r\n )}\r\n onClick={() => {\r\n if (!forceOpen) {\r\n setUncontrolledOpen((current) => !current);\r\n }\r\n }}\r\n onKeyDown={handleKeyDown}\r\n >\r\n <span\r\n className={cn(\r\n 'min-w-0 flex-1 truncate',\r\n isPlaceholder && theme.slots.selectPlaceholder,\r\n isPlaceholder && classNames?.placeholder,\r\n )}\r\n >\r\n {visibleLabel}\r\n </span>\r\n </button>\r\n <span\r\n className={cn(\r\n theme.slots.selectChevron,\r\n open && 'rotate-[225deg]',\r\n )}\r\n />\r\n <select\r\n {...selectProps}\r\n ref={setSelectRef}\r\n id={id}\r\n name={name}\r\n value={selectedValue}\r\n required={required}\r\n disabled={disabled}\r\n aria-hidden=\"true\"\r\n tabIndex={-1}\r\n className={theme.slots.selectNative}\r\n onChange={onChange}\r\n >\r\n {hasRenderableNode(placeholder) ? (\r\n <option value=\"\" disabled>\r\n {placeholder}\r\n </option>\r\n ) : null}\r\n {optionList.map((option) => (\r\n <option\r\n key={option.value}\r\n value={option.value}\r\n disabled={option.disabled}\r\n >\r\n {typeof option.label === 'string' ? option.label : option.value}\r\n </option>\r\n ))}\r\n </select>\r\n {open ? (\r\n <div\r\n id={listboxId}\r\n role=\"listbox\"\r\n aria-labelledby={`${selectId}-button`}\r\n className={cn(theme.slots.selectMenu, classNames?.menu)}\r\n style={theme.styles.selectMenu}\r\n >\r\n {optionList.map((option, index) => {\r\n const selected = option.value === selectedValue;\r\n const active = index === activeIndex;\r\n return (\r\n <button\r\n key={option.value}\r\n type=\"button\"\r\n role=\"option\"\r\n aria-selected={selected}\r\n disabled={option.disabled}\r\n className={cn(\r\n theme.slots.selectOption,\r\n active && theme.slots.selectOptionActive,\r\n selected && theme.slots.selectOptionSelected,\r\n option.disabled && theme.slots.selectOptionDisabled,\r\n classNames?.option,\r\n )}\r\n style={{\r\n ...theme.styles.selectOption,\r\n ...(active ? theme.styles.selectOptionActive : undefined),\r\n ...(selected ? theme.styles.selectOptionSelected : undefined),\r\n }}\r\n onMouseDown={(event) => event.preventDefault()}\r\n onClick={() => commitValue(option.value, option.disabled)}\r\n >\r\n <span className=\"min-w-0 flex-1 truncate\">{option.label}</span>\r\n </button>\r\n );\r\n })}\r\n </div>\r\n ) : null}\r\n </div>\r\n );\r\n },\r\n);\r\n","import type { BaseSectionHeaderProps } from './types';\r\nimport { resolveBaseAppearance } from './theme';\r\nimport { cn, hasRenderableNode } from './utils';\r\n\r\nexport function BaseSectionHeader({\r\n eyebrow,\r\n title,\r\n description,\r\n actions,\r\n children,\r\n appearance,\r\n className,\r\n classNames,\r\n style,\r\n ...headerProps\r\n}: BaseSectionHeaderProps) {\r\n const theme = resolveBaseAppearance(appearance);\r\n const resolvedDescription = children ?? description;\r\n\r\n return (\r\n <div\r\n {...headerProps}\r\n className={cn(theme.slots.sectionHeaderRoot, classNames?.root, className)}\r\n style={{\r\n ...theme.styles.sectionHeader,\r\n ...style,\r\n }}\r\n >\r\n <div\r\n className={cn(theme.slots.sectionHeaderContent, classNames?.content)}\r\n >\r\n {hasRenderableNode(eyebrow) ? (\r\n <div\r\n className={cn(\r\n theme.slots.sectionHeaderEyebrow,\r\n classNames?.eyebrow,\r\n )}\r\n >\r\n {eyebrow}\r\n </div>\r\n ) : null}\r\n {hasRenderableNode(title) ? (\r\n <div className={cn(theme.slots.sectionHeaderTitle, classNames?.title)}>\r\n {title}\r\n </div>\r\n ) : null}\r\n {hasRenderableNode(resolvedDescription) ? (\r\n <div\r\n className={cn(\r\n theme.slots.sectionHeaderDescription,\r\n classNames?.description,\r\n )}\r\n >\r\n {resolvedDescription}\r\n </div>\r\n ) : null}\r\n </div>\r\n\r\n {hasRenderableNode(actions) ? (\r\n <div className={cn(theme.slots.sectionHeaderActions, classNames?.actions)}>\r\n {actions}\r\n </div>\r\n ) : null}\r\n </div>\r\n );\r\n}\r\n","import { useState } from 'react';\r\n\r\nimport type { BaseSegmentedControlProps } from './types';\r\nimport { resolveBaseAppearance } from './theme';\r\nimport { cn, hasRenderableNode } from './utils';\r\n\r\nfunction getInitialSegmentValue(\r\n options: BaseSegmentedControlProps['options'],\r\n defaultValue?: string,\r\n) {\r\n if (defaultValue && options?.some((option) => option.value === defaultValue)) {\r\n const defaultOption = options.find((option) => option.value === defaultValue);\r\n if (!defaultOption?.disabled) {\r\n return defaultValue;\r\n }\r\n }\r\n return options?.find((option) => !option.disabled)?.value ?? options?.[0]?.value;\r\n}\r\n\r\nexport function BaseSegmentedControl({\r\n options = [],\r\n value,\r\n defaultValue,\r\n appearance,\r\n className,\r\n classNames,\r\n style,\r\n onValueChange,\r\n ...controlProps\r\n}: BaseSegmentedControlProps) {\r\n const theme = resolveBaseAppearance(appearance);\r\n const [uncontrolledValue, setUncontrolledValue] = useState(() =>\r\n getInitialSegmentValue(options, defaultValue),\r\n );\r\n const isControlled = value !== undefined;\r\n const selectedValue = isControlled ? value : uncontrolledValue;\r\n\r\n const handleSelect = (nextValue: string, disabled?: boolean) => {\r\n if (disabled) return;\r\n if (!isControlled) {\r\n setUncontrolledValue(nextValue);\r\n }\r\n onValueChange?.(nextValue);\r\n };\r\n\r\n return (\r\n <div\r\n {...controlProps}\r\n role=\"radiogroup\"\r\n className={cn(theme.slots.segmentedRoot, classNames?.root, className)}\r\n style={{\r\n ...theme.styles.segmentedRoot,\r\n ...style,\r\n }}\r\n >\r\n {options.map((option) => {\r\n const selected = option.value === selectedValue;\r\n return (\r\n <button\r\n key={option.value}\r\n type=\"button\"\r\n role=\"radio\"\r\n aria-checked={selected}\r\n disabled={option.disabled}\r\n className={cn(\r\n theme.slots.segmentedItem,\r\n selected && theme.slots.segmentedItemActive,\r\n option.disabled && theme.slots.segmentedItemDisabled,\r\n classNames?.item,\r\n )}\r\n style={theme.styles.segmentedItem}\r\n onClick={() => handleSelect(option.value, option.disabled)}\r\n >\r\n {hasRenderableNode(option.icon) ? (\r\n <span className={cn('inline-flex h-4 w-4 shrink-0', classNames?.icon)}>\r\n {option.icon}\r\n </span>\r\n ) : null}\r\n <span className={cn('min-w-0 truncate', classNames?.label)}>\r\n {option.label}\r\n </span>\r\n </button>\r\n );\r\n })}\r\n </div>\r\n );\r\n}\r\n","import type { BaseSkeletonProps } from './types';\r\nimport { resolveBaseAppearance } from './theme';\r\nimport { cn } from './utils';\r\n\r\nconst variantClassNames = {\r\n line: 'h-4 w-full',\r\n block: 'h-24 w-full',\r\n circle: 'aspect-square h-10 rounded-full',\r\n};\r\n\r\nexport function BaseSkeleton({\r\n variant = 'line',\r\n animated = true,\r\n appearance,\r\n className,\r\n classNames,\r\n style,\r\n ...skeletonProps\r\n}: BaseSkeletonProps) {\r\n const theme = resolveBaseAppearance(appearance);\r\n\r\n return (\r\n <div\r\n {...skeletonProps}\r\n aria-hidden=\"true\"\r\n className={cn(\r\n theme.slots.skeletonRoot,\r\n variantClassNames[variant],\r\n animated && 'animate-pulse',\r\n classNames?.root,\r\n className,\r\n )}\r\n style={{\r\n ...theme.styles.skeleton,\r\n ...style,\r\n }}\r\n />\r\n );\r\n}\r\n","import { forwardRef, useState } from 'react';\r\nimport type { ChangeEvent } from 'react';\r\n\r\nimport type { BaseSwitchProps } from './types';\r\nimport { resolveBaseAppearance } from './theme';\r\nimport { cn, hasRenderableNode } from './utils';\r\n\r\nexport const BaseSwitch = forwardRef<HTMLInputElement, BaseSwitchProps>(\r\n function BaseSwitch(\r\n {\r\n label,\r\n description,\r\n disabled = false,\r\n appearance,\r\n className,\r\n classNames,\r\n style,\r\n checked,\r\n defaultChecked,\r\n onChange,\r\n ...switchProps\r\n },\r\n ref,\r\n ) {\r\n const theme = resolveBaseAppearance(appearance);\r\n const [uncontrolledChecked, setUncontrolledChecked] = useState(\r\n defaultChecked ?? false,\r\n );\r\n const isControlled = checked !== undefined;\r\n const resolvedChecked = isControlled ? checked : uncontrolledChecked;\r\n\r\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\r\n if (!isControlled) {\r\n setUncontrolledChecked(event.currentTarget.checked);\r\n }\r\n onChange?.(event);\r\n };\r\n\r\n return (\r\n <label\r\n className={cn(\r\n theme.slots.switchRoot,\r\n disabled && theme.slots.switchDisabled,\r\n classNames?.root,\r\n className,\r\n )}\r\n style={{\r\n ...theme.styles.switchRoot,\r\n ...style,\r\n }}\r\n >\r\n <span\r\n className={cn(\r\n theme.slots.switchTrack,\r\n resolvedChecked && theme.slots.switchChecked,\r\n classNames?.track,\r\n )}\r\n style={theme.styles.switchTrack}\r\n >\r\n <input\r\n {...switchProps}\r\n ref={ref}\r\n type=\"checkbox\"\r\n disabled={disabled}\r\n checked={checked}\r\n defaultChecked={defaultChecked}\r\n onChange={handleChange}\r\n className={cn(theme.slots.switchInput, classNames?.input)}\r\n />\r\n <span\r\n className={cn(\r\n theme.slots.switchThumb,\r\n resolvedChecked && 'translate-x-5',\r\n classNames?.thumb,\r\n )}\r\n style={theme.styles.switchThumb}\r\n />\r\n </span>\r\n\r\n {hasRenderableNode(label) || hasRenderableNode(description) ? (\r\n <span className={cn(theme.slots.switchContent, classNames?.content)}>\r\n {hasRenderableNode(label) ? (\r\n <span className={cn(theme.slots.switchLabel, classNames?.label)}>\r\n {label}\r\n </span>\r\n ) : null}\r\n {hasRenderableNode(description) ? (\r\n <span\r\n className={cn(\r\n theme.slots.switchDescription,\r\n classNames?.description,\r\n )}\r\n >\r\n {description}\r\n </span>\r\n ) : null}\r\n </span>\r\n ) : null}\r\n </label>\r\n );\r\n },\r\n);\r\n","import {\r\n createContext,\r\n forwardRef,\r\n useContext,\r\n useRef,\r\n useState,\r\n type CSSProperties,\r\n type DragEvent,\r\n type PointerEvent as ReactPointerEvent,\r\n} from 'react';\r\n\r\nimport { resolveBaseAppearance } from './theme';\r\nimport type {\r\n BaseAppearance,\r\n BaseResolvedTheme,\r\n BaseTableBodyProps,\r\n BaseTableCaptionProps,\r\n BaseTableCellProps,\r\n BaseTableColumnInteractionOptions,\r\n BaseTableContainerProps,\r\n BaseTableEmptyProps,\r\n BaseTableFooterProps,\r\n BaseTableHeaderProps,\r\n BaseTableHeadProps,\r\n BaseTableLoadingProps,\r\n BaseTableProps,\r\n BaseTableRowProps,\r\n BaseTableSortDirection,\r\n} from './types';\r\nimport { cn, hasRenderableNode } from './utils';\r\n\r\nconst DATA_TRANSFER_COLUMN_TYPE = 'application/x-monkeys-base-table-column';\r\n\r\ntype BaseTableContextValue = BaseTableColumnInteractionOptions & {\r\n appearance?: BaseAppearance;\r\n theme: BaseResolvedTheme;\r\n draggingColumnId?: string;\r\n setDraggingColumnId: (columnId?: string) => void;\r\n};\r\n\r\nconst BaseTableContext = createContext<BaseTableContextValue | null>(null);\r\n\r\nfunction useBaseTableContext(appearance?: BaseAppearance) {\r\n const context = useContext(BaseTableContext);\r\n if (context) {\r\n return {\r\n ...context,\r\n theme: appearance ? resolveBaseAppearance(appearance) : context.theme,\r\n appearance: appearance ?? context.appearance,\r\n };\r\n }\r\n\r\n const theme = resolveBaseAppearance(appearance);\r\n return {\r\n appearance,\r\n theme,\r\n setDraggingColumnId: () => {},\r\n } satisfies BaseTableContextValue;\r\n}\r\n\r\nfunction toCssSize(value?: number | string) {\r\n if (value === undefined) return undefined;\r\n return typeof value === 'number' ? `${value}px` : value;\r\n}\r\n\r\nfunction clampWidth(value: number, minWidth?: number, maxWidth?: number) {\r\n const min = minWidth ?? 48;\r\n const max = maxWidth ?? Number.POSITIVE_INFINITY;\r\n return Math.min(Math.max(value, min), max);\r\n}\r\n\r\nfunction getNextColumnOrder(\r\n order: string[] | undefined,\r\n columnId: string,\r\n targetColumnId: string,\r\n) {\r\n if (!order || columnId === targetColumnId) return undefined;\r\n const fromIndex = order.indexOf(columnId);\r\n const toIndex = order.indexOf(targetColumnId);\r\n if (fromIndex < 0 || toIndex < 0) return undefined;\r\n\r\n const next = [...order];\r\n const [moved] = next.splice(fromIndex, 1);\r\n next.splice(toIndex, 0, moved);\r\n return next;\r\n}\r\n\r\nfunction sortAriaValue(direction?: BaseTableSortDirection) {\r\n switch (direction) {\r\n case 'asc':\r\n return 'ascending';\r\n case 'desc':\r\n return 'descending';\r\n default:\r\n return undefined;\r\n }\r\n}\r\n\r\nfunction SortIndicator({\r\n direction,\r\n className,\r\n}: {\r\n direction?: BaseTableSortDirection;\r\n className?: string;\r\n}) {\r\n return (\r\n <span\r\n aria-hidden=\"true\"\r\n className={cn(\r\n className,\r\n direction === 'desc' && 'rotate-180',\r\n (!direction || direction === 'none') && 'opacity-45',\r\n )}\r\n >\r\n ▲\r\n </span>\r\n );\r\n}\r\n\r\nfunction DragHandleIcon() {\r\n return (\r\n <span aria-hidden=\"true\" className=\"grid gap-0.5\">\r\n <span className=\"h-0.5 w-0.5 rounded-full bg-current\" />\r\n <span className=\"h-0.5 w-0.5 rounded-full bg-current\" />\r\n <span className=\"h-0.5 w-0.5 rounded-full bg-current\" />\r\n </span>\r\n );\r\n}\r\n\r\nexport function BaseTableContainer({\r\n appearance,\r\n attachedFooter = false,\r\n className,\r\n classNames,\r\n style,\r\n ...containerProps\r\n}: BaseTableContainerProps) {\r\n const theme = resolveBaseAppearance(appearance);\r\n\r\n return (\r\n <div\r\n {...containerProps}\r\n data-base-table-container=\"\"\r\n data-attached-footer={attachedFooter ? '' : undefined}\r\n className={cn(\r\n theme.slots.tableContainer,\r\n attachedFooter && theme.slots.tableContainerFooterAttached,\r\n classNames?.root,\r\n className,\r\n )}\r\n style={{\r\n ...theme.styles.tableContainer,\r\n ...(attachedFooter ? theme.styles.tableContainerFooterAttached : undefined),\r\n ...style,\r\n }}\r\n />\r\n );\r\n}\r\n\r\nexport function BaseTable({\r\n appearance,\r\n className,\r\n classNames,\r\n style,\r\n columnOrder,\r\n columnSizes,\r\n columnDragEnabled = false,\r\n columnResizeEnabled = false,\r\n onColumnOrderChange,\r\n onColumnSizeChange,\r\n ...tableProps\r\n}: BaseTableProps) {\r\n const theme = resolveBaseAppearance(appearance);\r\n const [draggingColumnId, setDraggingColumnId] = useState<string | undefined>();\r\n const contextValue: BaseTableContextValue = {\r\n appearance,\r\n theme,\r\n columnOrder,\r\n columnSizes,\r\n columnDragEnabled,\r\n columnResizeEnabled,\r\n onColumnOrderChange,\r\n onColumnSizeChange,\r\n draggingColumnId,\r\n setDraggingColumnId,\r\n };\r\n\r\n return (\r\n <BaseTableContext.Provider value={contextValue}>\r\n <table\r\n {...tableProps}\r\n className={cn(theme.slots.tableRoot, classNames?.root, className)}\r\n style={{\r\n ...theme.styles.table,\r\n ...style,\r\n }}\r\n />\r\n </BaseTableContext.Provider>\r\n );\r\n}\r\n\r\nexport function BaseTableHeader({\r\n appearance,\r\n className,\r\n classNames,\r\n style,\r\n ...headerProps\r\n}: BaseTableHeaderProps) {\r\n const { theme } = useBaseTableContext(appearance);\r\n\r\n return (\r\n <thead\r\n {...headerProps}\r\n className={cn(theme.slots.tableHeader, classNames?.root, className)}\r\n style={{\r\n ...theme.styles.tableHeader,\r\n ...style,\r\n }}\r\n />\r\n );\r\n}\r\n\r\nexport function BaseTableBody({\r\n appearance,\r\n className,\r\n classNames,\r\n style,\r\n ...bodyProps\r\n}: BaseTableBodyProps) {\r\n const { theme } = useBaseTableContext(appearance);\r\n\r\n return (\r\n <tbody\r\n {...bodyProps}\r\n className={cn(theme.slots.tableBody, classNames?.root, className)}\r\n style={{\r\n ...theme.styles.tableBody,\r\n ...style,\r\n }}\r\n />\r\n );\r\n}\r\n\r\nexport function BaseTableFooter({\r\n appearance,\r\n className,\r\n classNames,\r\n style,\r\n ...footerProps\r\n}: BaseTableFooterProps) {\r\n const { theme } = useBaseTableContext(appearance);\r\n\r\n return (\r\n <tfoot\r\n {...footerProps}\r\n className={cn(theme.slots.tableFooter, classNames?.root, className)}\r\n style={{\r\n ...theme.styles.tableFooter,\r\n ...style,\r\n }}\r\n />\r\n );\r\n}\r\n\r\nexport function BaseTableRow({\r\n interactive,\r\n selected,\r\n disabled,\r\n appearance,\r\n className,\r\n classNames,\r\n style,\r\n ...rowProps\r\n}: BaseTableRowProps) {\r\n const { theme } = useBaseTableContext(appearance);\r\n\r\n return (\r\n <tr\r\n {...rowProps}\r\n aria-disabled={disabled || undefined}\r\n data-state={selected ? 'selected' : undefined}\r\n className={cn(\r\n theme.slots.tableRow,\r\n interactive && !disabled && theme.slots.tableRowInteractive,\r\n selected && theme.slots.tableRowSelected,\r\n disabled && theme.slots.tableRowDisabled,\r\n classNames?.root,\r\n className,\r\n )}\r\n style={{\r\n ...theme.styles.tableRow,\r\n ...style,\r\n }}\r\n />\r\n );\r\n}\r\n\r\nexport const BaseTableHead = forwardRef<HTMLTableCellElement, BaseTableHeadProps>(function BaseTableHead({\r\n columnId,\r\n align = 'left',\r\n icon,\r\n label,\r\n description,\r\n meta,\r\n actions,\r\n trailing,\r\n sortable,\r\n sortDirection = 'none',\r\n sortLabel,\r\n onSort,\r\n draggable,\r\n dragLabel,\r\n resizable,\r\n resizeLabel,\r\n width,\r\n minWidth,\r\n maxWidth,\r\n appearance,\r\n className,\r\n classNames,\r\n style,\r\n children,\r\n onDragOver,\r\n onDrop,\r\n ...headProps\r\n}, forwardedRef) {\r\n const tableContext = useBaseTableContext(appearance);\r\n const { theme } = tableContext;\r\n const headRef = useRef<HTMLTableCellElement | null>(null);\r\n const setHeadRef = (node: HTMLTableCellElement | null) => {\r\n headRef.current = node;\r\n if (typeof forwardedRef === 'function') {\r\n forwardedRef(node);\r\n } else if (forwardedRef) {\r\n forwardedRef.current = node;\r\n }\r\n };\r\n const controlledWidth =\r\n columnId && tableContext.columnSizes?.[columnId] !== undefined\r\n ? tableContext.columnSizes[columnId]\r\n : width;\r\n const canDrag = Boolean(\r\n columnId &&\r\n draggable !== false &&\r\n (draggable || tableContext.columnDragEnabled) &&\r\n tableContext.columnOrder &&\r\n tableContext.onColumnOrderChange,\r\n );\r\n const canResize = Boolean(\r\n columnId &&\r\n resizable !== false &&\r\n (resizable || tableContext.columnResizeEnabled) &&\r\n tableContext.onColumnSizeChange,\r\n );\r\n const interactiveSort = Boolean(sortable || onSort);\r\n const ariaSort = sortAriaValue(sortDirection);\r\n\r\n const content = hasRenderableNode(label) ? label : children;\r\n const usesRichHeader =\r\n canDrag ||\r\n hasRenderableNode(icon) ||\r\n hasRenderableNode(label) ||\r\n hasRenderableNode(description) ||\r\n hasRenderableNode(meta) ||\r\n hasRenderableNode(actions) ||\r\n hasRenderableNode(trailing) ||\r\n interactiveSort;\r\n const renderedContent =\r\n usesRichHeader ? (\r\n <div className={cn(theme.slots.tableHeadContent, classNames?.content)}>\r\n <div className={cn(theme.slots.tableHeadMain, classNames?.main)}>\r\n {canDrag ? (\r\n <button\r\n type=\"button\"\r\n draggable\r\n title={dragLabel}\r\n aria-label={dragLabel ?? `Drag column ${columnId}`}\r\n className={cn(theme.slots.tableHeadDragHandle, classNames?.dragHandle)}\r\n onClick={(event) => event.stopPropagation()}\r\n onDragStart={(event) => {\r\n event.stopPropagation();\r\n tableContext.setDraggingColumnId(columnId);\r\n event.dataTransfer.effectAllowed = 'move';\r\n event.dataTransfer.setData(DATA_TRANSFER_COLUMN_TYPE, columnId as string);\r\n }}\r\n onDragEnd={(event) => {\r\n event.stopPropagation();\r\n tableContext.setDraggingColumnId(undefined);\r\n }}\r\n >\r\n <DragHandleIcon />\r\n </button>\r\n ) : null}\r\n {icon ? (\r\n <span className={cn(theme.slots.tableHeadIcon, classNames?.icon)}>\r\n {icon}\r\n </span>\r\n ) : null}\r\n {interactiveSort ? (\r\n <button\r\n type=\"button\"\r\n disabled={!onSort}\r\n title={sortLabel}\r\n className={cn(theme.slots.tableHeadSortButton, classNames?.sortButton)}\r\n onClick={(event) => {\r\n event.stopPropagation();\r\n onSort?.(columnId);\r\n }}\r\n >\r\n <span className={cn(theme.slots.tableHeadText, classNames?.text)}>\r\n {hasRenderableNode(content) ? (\r\n <span className={cn(theme.slots.tableHeadLabel, classNames?.label)}>\r\n {content}\r\n </span>\r\n ) : null}\r\n {hasRenderableNode(description) ? (\r\n <span\r\n className={cn(\r\n theme.slots.tableHeadDescription,\r\n classNames?.description,\r\n )}\r\n >\r\n {description}\r\n </span>\r\n ) : null}\r\n </span>\r\n <SortIndicator\r\n direction={sortDirection}\r\n className={cn(theme.slots.tableHeadSortIcon, classNames?.sortIcon)}\r\n />\r\n </button>\r\n ) : (\r\n <span className={cn(theme.slots.tableHeadText, classNames?.text)}>\r\n {hasRenderableNode(content) ? (\r\n <span className={cn(theme.slots.tableHeadLabel, classNames?.label)}>\r\n {content}\r\n </span>\r\n ) : null}\r\n {hasRenderableNode(description) ? (\r\n <span\r\n className={cn(\r\n theme.slots.tableHeadDescription,\r\n classNames?.description,\r\n )}\r\n >\r\n {description}\r\n </span>\r\n ) : null}\r\n </span>\r\n )}\r\n </div>\r\n {hasRenderableNode(meta) || hasRenderableNode(actions) || hasRenderableNode(trailing) ? (\r\n <div className={cn(theme.slots.tableHeadActions, classNames?.actions)}>\r\n {hasRenderableNode(meta) ? (\r\n <span className={cn(theme.slots.tableHeadMeta, classNames?.meta)}>\r\n {meta}\r\n </span>\r\n ) : null}\r\n {actions}\r\n {trailing}\r\n </div>\r\n ) : null}\r\n </div>\r\n ) : (\r\n children\r\n );\r\n\r\n const handleDragOver = (event: DragEvent<HTMLTableCellElement>) => {\r\n onDragOver?.(event);\r\n if (!canDrag || !tableContext.draggingColumnId || tableContext.draggingColumnId === columnId) {\r\n return;\r\n }\r\n event.preventDefault();\r\n event.dataTransfer.dropEffect = 'move';\r\n };\r\n\r\n const handleDrop = (event: DragEvent<HTMLTableCellElement>) => {\r\n onDrop?.(event);\r\n if (!canDrag || !columnId) return;\r\n const sourceColumnId =\r\n tableContext.draggingColumnId ||\r\n event.dataTransfer.getData(DATA_TRANSFER_COLUMN_TYPE);\r\n if (!sourceColumnId || sourceColumnId === columnId) return;\r\n\r\n const nextOrder = getNextColumnOrder(\r\n tableContext.columnOrder,\r\n sourceColumnId,\r\n columnId,\r\n );\r\n if (nextOrder) {\r\n event.preventDefault();\r\n tableContext.onColumnOrderChange?.(nextOrder, {\r\n columnId: sourceColumnId,\r\n targetColumnId: columnId,\r\n });\r\n }\r\n tableContext.setDraggingColumnId(undefined);\r\n };\r\n\r\n const handleResizePointerDown = (event: ReactPointerEvent<HTMLButtonElement>) => {\r\n if (!canResize || !columnId || !tableContext.onColumnSizeChange) return;\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n const startX = event.clientX;\r\n const currentWidth =\r\n typeof controlledWidth === 'number'\r\n ? controlledWidth\r\n : headRef.current?.offsetWidth ?? minWidth ?? 96;\r\n const previousWidth = clampWidth(currentWidth, minWidth, maxWidth);\r\n const pointerId = event.pointerId;\r\n const target = event.currentTarget;\r\n target.setPointerCapture?.(pointerId);\r\n\r\n const handlePointerMove = (moveEvent: PointerEvent) => {\r\n const nextWidth = clampWidth(\r\n previousWidth + moveEvent.clientX - startX,\r\n minWidth,\r\n maxWidth,\r\n );\r\n tableContext.onColumnSizeChange?.(columnId, nextWidth, {\r\n columnId,\r\n previousWidth,\r\n minWidth,\r\n maxWidth,\r\n });\r\n };\r\n\r\n const cleanup = () => {\r\n target.releasePointerCapture?.(pointerId);\r\n window.removeEventListener('pointermove', handlePointerMove);\r\n window.removeEventListener('pointerup', cleanup);\r\n window.removeEventListener('pointercancel', cleanup);\r\n };\r\n\r\n window.addEventListener('pointermove', handlePointerMove);\r\n window.addEventListener('pointerup', cleanup);\r\n window.addEventListener('pointercancel', cleanup);\r\n };\r\n\r\n return (\r\n <th\r\n {...headProps}\r\n ref={setHeadRef}\r\n scope={headProps.scope ?? 'col'}\r\n aria-sort={ariaSort}\r\n className={cn(\r\n theme.slots.tableHead,\r\n align === 'center' && theme.slots.tableCellAlignCenter,\r\n align === 'right' && theme.slots.tableCellAlignRight,\r\n classNames?.root,\r\n className,\r\n )}\r\n style={{\r\n ...theme.styles.tableHead,\r\n width: toCssSize(controlledWidth),\r\n minWidth: toCssSize(minWidth),\r\n maxWidth: toCssSize(maxWidth),\r\n ...style,\r\n }}\r\n onDragOver={handleDragOver}\r\n onDrop={handleDrop}\r\n >\r\n {renderedContent}\r\n {canResize ? (\r\n <button\r\n type=\"button\"\r\n title={resizeLabel}\r\n aria-label={resizeLabel ?? `Resize column ${columnId}`}\r\n className={cn(theme.slots.tableHeadResizeHandle, classNames?.resizeHandle)}\r\n onClick={(event) => event.stopPropagation()}\r\n onPointerDown={handleResizePointerDown}\r\n />\r\n ) : null}\r\n </th>\r\n );\r\n});\r\n\r\nexport function BaseTableCell({\r\n align = 'left',\r\n appearance,\r\n className,\r\n classNames,\r\n style,\r\n ...cellProps\r\n}: BaseTableCellProps) {\r\n const { theme } = useBaseTableContext(appearance);\r\n\r\n return (\r\n <td\r\n {...cellProps}\r\n className={cn(\r\n theme.slots.tableCell,\r\n align === 'center' && theme.slots.tableCellAlignCenter,\r\n align === 'right' && theme.slots.tableCellAlignRight,\r\n classNames?.root,\r\n className,\r\n )}\r\n style={{\r\n ...theme.styles.tableCell,\r\n ...style,\r\n }}\r\n />\r\n );\r\n}\r\n\r\nexport function BaseTableCaption({\r\n appearance,\r\n className,\r\n classNames,\r\n style,\r\n ...captionProps\r\n}: BaseTableCaptionProps) {\r\n const { theme } = useBaseTableContext(appearance);\r\n\r\n return (\r\n <caption\r\n {...captionProps}\r\n className={cn(theme.slots.tableCaption, classNames?.root, className)}\r\n style={{\r\n ...theme.styles.tableCaption,\r\n ...style,\r\n }}\r\n />\r\n );\r\n}\r\n\r\nexport function BaseTableEmpty({\r\n colSpan,\r\n icon,\r\n title,\r\n description,\r\n actions,\r\n children,\r\n appearance,\r\n className,\r\n classNames,\r\n style,\r\n ...emptyProps\r\n}: BaseTableEmptyProps) {\r\n const { theme } = useBaseTableContext(appearance);\r\n const hasStructuredContent =\r\n hasRenderableNode(icon) ||\r\n hasRenderableNode(title) ||\r\n hasRenderableNode(description) ||\r\n hasRenderableNode(actions);\r\n\r\n return (\r\n <tr\r\n {...emptyProps}\r\n className={cn(theme.slots.tableEmptyRow, classNames?.row, className)}\r\n style={{\r\n ...theme.styles.tableEmpty,\r\n ...style,\r\n }}\r\n >\r\n <td colSpan={Math.max(colSpan, 1)} className={cn(theme.slots.tableEmptyCell, classNames?.cell)}>\r\n {hasStructuredContent ? (\r\n <div className={cn(theme.slots.tableEmptyContent, classNames?.content)}>\r\n {hasRenderableNode(icon) ? (\r\n <div className={cn(theme.slots.tableEmptyIcon, classNames?.icon)}>\r\n {icon}\r\n </div>\r\n ) : null}\r\n {hasRenderableNode(title) ? (\r\n <div className={cn(theme.slots.tableEmptyTitle, classNames?.title)}>\r\n {title}\r\n </div>\r\n ) : null}\r\n {hasRenderableNode(description) ? (\r\n <div\r\n className={cn(\r\n theme.slots.tableEmptyDescription,\r\n classNames?.description,\r\n )}\r\n >\r\n {description}\r\n </div>\r\n ) : null}\r\n {hasRenderableNode(actions) ? (\r\n <div className={cn(theme.slots.tableEmptyActions, classNames?.actions)}>\r\n {actions}\r\n </div>\r\n ) : null}\r\n </div>\r\n ) : (\r\n children\r\n )}\r\n </td>\r\n </tr>\r\n );\r\n}\r\n\r\nexport function BaseTableLoading({\r\n rows = 3,\r\n columns,\r\n columnWidths = [],\r\n animated = true,\r\n rowLabel = 'Loading table row',\r\n appearance,\r\n className,\r\n classNames,\r\n style,\r\n}: BaseTableLoadingProps) {\r\n const { theme } = useBaseTableContext(appearance);\r\n const safeRows = Math.max(rows, 0);\r\n const safeColumns = Math.max(columns, 1);\r\n\r\n return (\r\n <>\r\n {Array.from({ length: safeRows }).map((_, rowIndex) => (\r\n <tr\r\n key={rowIndex}\r\n aria-label={`${rowLabel} ${rowIndex + 1}`}\r\n aria-busy=\"true\"\r\n className={cn(theme.slots.tableLoadingRow, classNames?.row, className)}\r\n style={{\r\n ...theme.styles.tableLoading,\r\n ...style,\r\n }}\r\n >\r\n {Array.from({ length: safeColumns }).map((__, columnIndex) => (\r\n <td\r\n key={columnIndex}\r\n className={cn(theme.slots.tableLoadingCell, classNames?.cell)}\r\n >\r\n <div\r\n aria-hidden=\"true\"\r\n className={cn(\r\n theme.slots.tableLoadingSkeleton,\r\n animated && 'animate-pulse',\r\n classNames?.skeleton,\r\n )}\r\n style={{\r\n width: toCssSize(columnWidths[columnIndex]),\r\n }}\r\n />\r\n </td>\r\n ))}\r\n </tr>\r\n ))}\r\n </>\r\n );\r\n}\r\n","import type { BaseTableFooterBarProps } from './types';\r\nimport { resolveBaseAppearance } from './theme';\r\nimport { cn, hasRenderableNode } from './utils';\r\n\r\nexport function BaseTableFooterBar({\r\n appearance,\r\n leading,\r\n actions,\r\n attached = true,\r\n children,\r\n className,\r\n classNames,\r\n style,\r\n ...footerBarProps\r\n}: BaseTableFooterBarProps) {\r\n const theme = resolveBaseAppearance(appearance);\r\n\r\n return (\r\n <div\r\n {...footerBarProps}\r\n data-base-table-footer-bar=\"\"\r\n data-attached={attached ? '' : undefined}\r\n className={cn(\r\n theme.slots.tableFooterBar,\r\n attached && theme.slots.tableFooterBarAttached,\r\n classNames?.root,\r\n className,\r\n )}\r\n style={{\r\n ...theme.styles.tableFooterBar,\r\n ...style,\r\n }}\r\n >\r\n {hasRenderableNode(leading) ? (\r\n <div className={cn(theme.slots.tableFooterBarLeading, classNames?.leading)}>\r\n {leading}\r\n </div>\r\n ) : null}\r\n\r\n {hasRenderableNode(children) ? (\r\n <div className={cn(theme.slots.tableFooterBarContent, classNames?.content)}>\r\n {children}\r\n </div>\r\n ) : null}\r\n\r\n {hasRenderableNode(actions) ? (\r\n <div className={cn(theme.slots.tableFooterBarActions, classNames?.actions)}>\r\n {actions}\r\n </div>\r\n ) : null}\r\n </div>\r\n );\r\n}\r\n","import { useId, useMemo, useState } from 'react';\r\n\r\nimport type { BaseTabsProps } from './types';\r\nimport { resolveBaseAppearance } from './theme';\r\nimport { cn, hasRenderableNode } from './utils';\r\n\r\nfunction getInitialTabValue(items: BaseTabsProps['items'], defaultValue?: string) {\r\n if (\r\n defaultValue &&\r\n items?.some((item) => item.value === defaultValue && !item.disabled)\r\n ) {\r\n return defaultValue;\r\n }\r\n return items?.find((item) => !item.disabled)?.value ?? items?.[0]?.value;\r\n}\r\n\r\nfunction toDomId(value: string) {\r\n return value.replace(/[^a-zA-Z0-9_-]/g, '-');\r\n}\r\n\r\nexport function BaseTabs({\r\n items = [],\r\n value,\r\n defaultValue,\r\n orientation = 'horizontal',\r\n appearance,\r\n className,\r\n classNames,\r\n style,\r\n onValueChange,\r\n id,\r\n ...tabsProps\r\n}: BaseTabsProps) {\r\n const theme = resolveBaseAppearance(appearance);\r\n const [uncontrolledValue, setUncontrolledValue] = useState(() =>\r\n getInitialTabValue(items, defaultValue),\r\n );\r\n const isControlled = value !== undefined;\r\n const selectedValue = isControlled ? value : uncontrolledValue;\r\n const selectedItem = useMemo(\r\n () =>\r\n items.find((item) => item.value === selectedValue) ??\r\n items.find((item) => !item.disabled) ??\r\n items[0],\r\n [items, selectedValue],\r\n );\r\n const generatedId = useId();\r\n const rootId = id ?? generatedId;\r\n\r\n const handleSelect = (nextValue: string, disabled?: boolean) => {\r\n if (disabled) return;\r\n if (!isControlled) {\r\n setUncontrolledValue(nextValue);\r\n }\r\n onValueChange?.(nextValue);\r\n };\r\n\r\n return (\r\n <div\r\n {...tabsProps}\r\n id={id}\r\n className={cn(theme.slots.tabsRoot, classNames?.root, className)}\r\n style={style}\r\n >\r\n <div\r\n role=\"tablist\"\r\n aria-orientation={orientation}\r\n className={cn(\r\n theme.slots.tabsList,\r\n orientation === 'vertical' && 'flex-col items-stretch',\r\n classNames?.list,\r\n )}\r\n style={theme.styles.tabsList}\r\n >\r\n {items.map((item) => {\r\n const itemId = toDomId(item.value);\r\n const selected = item.value === selectedItem?.value;\r\n return (\r\n <button\r\n key={item.value}\r\n id={`${rootId}-${itemId}-tab`}\r\n type=\"button\"\r\n role=\"tab\"\r\n aria-selected={selected}\r\n aria-controls={`${rootId}-${itemId}-panel`}\r\n disabled={item.disabled}\r\n className={cn(\r\n theme.slots.tabsTrigger,\r\n selected && theme.slots.tabsTriggerActive,\r\n item.disabled && theme.slots.tabsTriggerDisabled,\r\n classNames?.trigger,\r\n )}\r\n style={theme.styles.tabsTrigger}\r\n onClick={() => handleSelect(item.value, item.disabled)}\r\n >\r\n <span className=\"min-w-0 truncate\">{item.label}</span>\r\n </button>\r\n );\r\n })}\r\n </div>\r\n\r\n {selectedItem ? (\r\n <div\r\n id={`${rootId}-${toDomId(selectedItem.value)}-panel`}\r\n role=\"tabpanel\"\r\n tabIndex={0}\r\n aria-labelledby={`${rootId}-${toDomId(selectedItem.value)}-tab`}\r\n className={cn(theme.slots.tabsPanel, classNames?.panel)}\r\n style={theme.styles.tabsPanel}\r\n >\r\n {hasRenderableNode(selectedItem.content) ? (\r\n selectedItem.content\r\n ) : hasRenderableNode(selectedItem.description) ? (\r\n <p className=\"m-0 text-muted-foreground\">{selectedItem.description}</p>\r\n ) : null}\r\n </div>\r\n ) : null}\r\n </div>\r\n );\r\n}\r\n","import { forwardRef } from 'react';\r\n\r\nimport type { BaseTextareaProps } from './types';\r\nimport { resolveBaseAppearance } from './theme';\r\nimport { cn } from './utils';\r\n\r\nexport const BaseTextarea = forwardRef<HTMLTextAreaElement, BaseTextareaProps>(\r\n function BaseTextarea(\r\n {\r\n invalid = false,\r\n disabled = false,\r\n readOnly = false,\r\n appearance,\r\n className,\r\n classNames,\r\n style,\r\n 'aria-invalid': nativeAriaInvalid,\r\n ...textareaProps\r\n },\r\n ref,\r\n ) {\r\n const theme = resolveBaseAppearance(appearance);\r\n\r\n return (\r\n <textarea\r\n {...textareaProps}\r\n ref={ref}\r\n disabled={disabled}\r\n readOnly={readOnly}\r\n aria-invalid={nativeAriaInvalid ?? (invalid || undefined)}\r\n className={cn(\r\n theme.slots.controlWrapper,\r\n theme.slots.controlBase,\r\n theme.slots.controlTextarea,\r\n invalid && theme.slots.controlInvalid,\r\n disabled && theme.slots.controlDisabled,\r\n readOnly && theme.slots.controlReadOnly,\r\n classNames?.control,\r\n className,\r\n )}\r\n style={{\r\n ...theme.styles.control,\r\n ...(invalid ? theme.styles.controlInvalid : undefined),\r\n ...(disabled ? theme.styles.controlDisabled : undefined),\r\n ...style,\r\n }}\r\n />\r\n );\r\n },\r\n);\r\n","import { useLayoutEffect, useMemo, useRef, useState, type CSSProperties } from 'react';\r\nimport { createPortal } from 'react-dom';\r\n\r\nimport type { BaseTooltipPlacement, BaseTooltipProps } from './types';\r\nimport { resolveBaseAppearance } from './theme';\r\nimport { cn, hasRenderableNode } from './utils';\r\n\r\nfunction getTooltipPlacementClassName(placement: BaseTooltipPlacement) {\r\n switch (placement) {\r\n case 'bottom':\r\n return 'left-1/2 top-[calc(100%+0.5rem)] -translate-x-1/2';\r\n case 'left':\r\n return 'right-[calc(100%+0.5rem)] top-1/2 -translate-y-1/2';\r\n case 'right':\r\n return 'left-[calc(100%+0.5rem)] top-1/2 -translate-y-1/2';\r\n case 'top':\r\n default:\r\n return 'bottom-[calc(100%+0.5rem)] left-1/2 -translate-x-1/2';\r\n }\r\n}\r\n\r\nfunction getPortalTooltipStyle(\r\n placement: BaseTooltipPlacement,\r\n rect: DOMRect | null,\r\n themeStyle?: CSSProperties,\r\n): CSSProperties | undefined {\r\n if (!rect) return themeStyle;\r\n\r\n const offset = 8;\r\n const baseStyle: CSSProperties = {\r\n ...themeStyle,\r\n position: 'fixed',\r\n };\r\n\r\n switch (placement) {\r\n case 'bottom':\r\n return {\r\n ...baseStyle,\r\n left: rect.left + rect.width / 2,\r\n top: rect.bottom + offset,\r\n transform: 'translateX(-50%)',\r\n };\r\n case 'left':\r\n return {\r\n ...baseStyle,\r\n right: window.innerWidth - rect.left + offset,\r\n top: rect.top + rect.height / 2,\r\n transform: 'translateY(-50%)',\r\n };\r\n case 'right':\r\n return {\r\n ...baseStyle,\r\n left: rect.right + offset,\r\n top: rect.top + rect.height / 2,\r\n transform: 'translateY(-50%)',\r\n };\r\n case 'top':\r\n default:\r\n return {\r\n ...baseStyle,\r\n bottom: window.innerHeight - rect.top + offset,\r\n left: rect.left + rect.width / 2,\r\n transform: 'translateX(-50%)',\r\n };\r\n }\r\n}\r\n\r\nexport function BaseTooltip({\r\n content,\r\n children,\r\n open,\r\n defaultOpen = false,\r\n placement = 'top',\r\n disabled = false,\r\n portal = false,\r\n appearance,\r\n className,\r\n classNames,\r\n style,\r\n onOpenChange,\r\n ...tooltipProps\r\n}: BaseTooltipProps) {\r\n const theme = resolveBaseAppearance(appearance);\r\n const rootRef = useRef<HTMLSpanElement | null>(null);\r\n const [triggerRect, setTriggerRect] = useState<DOMRect | null>(null);\r\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\r\n const isControlled = open !== undefined;\r\n const isOpen = isControlled ? open : uncontrolledOpen;\r\n const canShow = !disabled && hasRenderableNode(content);\r\n const shouldPortal = portal && typeof document !== 'undefined';\r\n const tooltipStyle = useMemo(\r\n () => shouldPortal\r\n ? getPortalTooltipStyle(placement, triggerRect, theme.styles.tooltip)\r\n : theme.styles.tooltip,\r\n [placement, shouldPortal, theme.styles.tooltip, triggerRect],\r\n );\r\n\r\n const setOpen = (nextOpen: boolean) => {\r\n if (!canShow && nextOpen) return;\r\n if (shouldPortal) {\r\n setTriggerRect(nextOpen ? rootRef.current?.getBoundingClientRect() ?? null : null);\r\n }\r\n if (!isControlled) {\r\n setUncontrolledOpen(nextOpen);\r\n }\r\n onOpenChange?.(nextOpen);\r\n };\r\n\r\n useLayoutEffect(() => {\r\n if (!shouldPortal || !canShow || !isOpen) return;\r\n\r\n const updateTriggerRect = () => {\r\n setTriggerRect(rootRef.current?.getBoundingClientRect() ?? null);\r\n };\r\n\r\n updateTriggerRect();\r\n window.addEventListener('resize', updateTriggerRect);\r\n window.addEventListener('scroll', updateTriggerRect, true);\r\n\r\n return () => {\r\n window.removeEventListener('resize', updateTriggerRect);\r\n window.removeEventListener('scroll', updateTriggerRect, true);\r\n };\r\n }, [canShow, isOpen, shouldPortal]);\r\n\r\n const tooltipContent = canShow && isOpen && (!shouldPortal || triggerRect) ? (\r\n <span\r\n role=\"tooltip\"\r\n className={cn(\r\n theme.slots.tooltipContent,\r\n shouldPortal ? undefined : getTooltipPlacementClassName(placement),\r\n classNames?.content,\r\n )}\r\n style={tooltipStyle}\r\n >\r\n {content}\r\n </span>\r\n ) : null;\r\n\r\n return (\r\n <span\r\n {...tooltipProps}\r\n ref={rootRef}\r\n className={cn(theme.slots.tooltipRoot, classNames?.root, className)}\r\n style={style}\r\n onMouseEnter={() => setOpen(true)}\r\n onMouseLeave={() => setOpen(false)}\r\n onFocus={() => setOpen(true)}\r\n onBlur={() => setOpen(false)}\r\n >\r\n <span className={cn(theme.slots.tooltipTrigger, classNames?.trigger)}>\r\n {children}\r\n </span>\r\n {shouldPortal && tooltipContent ? createPortal(tooltipContent, document.body) : tooltipContent}\r\n </span>\r\n );\r\n}\r\n","import type { BaseToolbarProps } from './types';\r\nimport { resolveBaseAppearance } from './theme';\r\nimport { cn, hasRenderableNode } from './utils';\r\n\r\nexport function BaseToolbar({\r\n leading,\r\n title,\r\n description,\r\n actions,\r\n children,\r\n appearance,\r\n className,\r\n classNames,\r\n style,\r\n ...toolbarProps\r\n}: BaseToolbarProps) {\r\n const theme = resolveBaseAppearance(appearance);\r\n const hasTitleBlock = hasRenderableNode(title) || hasRenderableNode(description);\r\n\r\n return (\r\n <div\r\n {...toolbarProps}\r\n className={cn(theme.slots.toolbarRoot, classNames?.root, className)}\r\n style={{\r\n ...theme.styles.toolbar,\r\n ...style,\r\n }}\r\n >\r\n <div className={cn(theme.slots.toolbarLeading, classNames?.leading)}>\r\n {hasRenderableNode(leading) ? leading : null}\r\n {hasTitleBlock ? (\r\n <div className={cn(theme.slots.toolbarContent, classNames?.content)}>\r\n {hasRenderableNode(title) ? (\r\n <div className={cn(theme.slots.toolbarTitle, classNames?.title)}>\r\n {title}\r\n </div>\r\n ) : null}\r\n {hasRenderableNode(description) ? (\r\n <div\r\n className={cn(\r\n theme.slots.toolbarDescription,\r\n classNames?.description,\r\n )}\r\n >\r\n {description}\r\n </div>\r\n ) : null}\r\n </div>\r\n ) : null}\r\n </div>\r\n\r\n {hasRenderableNode(children) ? (\r\n <div className={cn(theme.slots.toolbarContent, classNames?.content)}>\r\n {children}\r\n </div>\r\n ) : null}\r\n\r\n {hasRenderableNode(actions) ? (\r\n <div className={cn(theme.slots.toolbarActions, classNames?.actions)}>\r\n {actions}\r\n </div>\r\n ) : null}\r\n </div>\r\n );\r\n}\r\n"]}