@inf-monkeys-tech/monkeys-design 0.4.56 → 0.4.59-canary.17.1.3e501ac

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 (37) hide show
  1. package/dist/components/base/index.d.mts +2 -2
  2. package/dist/components/base/index.d.ts +2 -2
  3. package/dist/components/base/index.js +202 -34
  4. package/dist/components/base/index.js.map +1 -1
  5. package/dist/components/base/index.mjs +203 -35
  6. package/dist/components/base/index.mjs.map +1 -1
  7. package/dist/components/layout/index.d.mts +1 -1
  8. package/dist/components/layout/index.d.ts +1 -1
  9. package/dist/components/layout/index.js.map +1 -1
  10. package/dist/components/layout/index.mjs.map +1 -1
  11. package/dist/components/workbench/index.d.mts +1 -1
  12. package/dist/components/workbench/index.d.ts +1 -1
  13. package/dist/components/workbench/index.js +179 -27
  14. package/dist/components/workbench/index.js.map +1 -1
  15. package/dist/components/workbench/index.mjs +180 -28
  16. package/dist/components/workbench/index.mjs.map +1 -1
  17. package/dist/index.d.mts +3 -3
  18. package/dist/index.d.ts +3 -3
  19. package/dist/index.js +206 -38
  20. package/dist/index.js.map +1 -1
  21. package/dist/index.mjs +207 -39
  22. package/dist/index.mjs.map +1 -1
  23. package/dist/provider/index.d.mts +2 -2
  24. package/dist/provider/index.d.ts +2 -2
  25. package/dist/provider/index.js.map +1 -1
  26. package/dist/provider/index.mjs.map +1 -1
  27. package/dist/{theme-r7GYhlCk.d.ts → theme-DHmnuHIB.d.ts} +2 -2
  28. package/dist/{theme-CJlW1TtA.d.mts → theme-DS9cFgze.d.mts} +2 -2
  29. package/dist/theme-system/index.d.mts +3 -3
  30. package/dist/theme-system/index.d.ts +3 -3
  31. package/dist/theme-system/index.js.map +1 -1
  32. package/dist/theme-system/index.mjs.map +1 -1
  33. package/dist/{types-DvHvN4RJ.d.ts → types-B0i-7zok.d.mts} +6 -1
  34. package/dist/{types-DvHvN4RJ.d.mts → types-B0i-7zok.d.ts} +6 -1
  35. package/dist/{types-vkJZUngT.d.ts → types-BKnF6vPh.d.ts} +1 -1
  36. package/dist/{types-DpRjPpxY.d.mts → types-DqCakFsE.d.mts} +1 -1
  37. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
- export { B as BaseAccordion, a as BaseAspectRatio, b as BaseAvatar, c as BaseBadge, d as BaseBreadcrumb, e as BaseButton, f as BaseCheckbox, g as BaseCode, h as BaseContainer, i as BaseContextMenu, j as BaseContextMenuCheckboxItem, k as BaseContextMenuContent, l as BaseContextMenuItem, m as BaseContextMenuLabel, n as BaseContextMenuRadioGroup, o as BaseContextMenuRadioItem, p as BaseContextMenuSeparator, q as BaseContextMenuSub, r as BaseContextMenuSubContent, s as BaseContextMenuSubTrigger, t as BaseContextMenuTrigger, u as BaseDescriptionList, v as BaseDialog, w as BaseDivider, x as BaseDropdownMenu, y as BaseEmptyState, z as BaseField, A as BaseFieldset, C as BaseGrid, D as BaseHeading, G as BaseInline, E as BaseInput, F as BaseInputGroup, H as BaseKbd, I as BaseLayout, J as BaseLayoutPane, K as BaseLayoutResizeHandle, L as BaseLayoutSplit, N as BaseLink, O as BaseList, P as BaseListItem, M as BaseLoadingState, Q as BaseMultiSelect, S as BaseNotice, R as BaseNumberInput, V as BasePagination, T as BasePanel, U as BasePasswordInput, W as BasePortal, X as BaseProgress, Y as BaseRadioGroup, Z as BaseScrollArea, $ as BaseSectionHeader, a0 as BaseSegmentedControl, _ as BaseSelect, a1 as BaseSkeleton, a2 as BaseSpinner, a3 as BaseStack, a4 as BaseSteps, a5 as BaseSwitch, a6 as BaseTable, a7 as BaseTableBody, a8 as BaseTableCaption, a9 as BaseTableCell, aa as BaseTableContainer, ab as BaseTableEmpty, ac as BaseTableFooter, ad as BaseTableFooterBar, ae as BaseTableHead, af as BaseTableHeader, ag as BaseTableLoading, ah as BaseTableRow, ai as BaseTabs, ak as BaseText, aj as BaseTextarea, am as BaseToolbar, al as BaseTooltip, an as BaseVisuallyHidden, ao as getBaseBadgeToneClassName, ap as getBaseButtonToneClassName, aq as getBaseMenuItemToneClassName, ar as getBaseNoticeToneClassName, as as resolveBaseAppearance } from '../../theme-CJlW1TtA.mjs';
2
- export { B as BaseAccordionClassNames, a as BaseAccordionItem, b as BaseAccordionProps, c as BaseAppearance, d as BaseAspectRatioClassNames, e as BaseAspectRatioProps, f as BaseAvatarClassNames, g as BaseAvatarProps, h as BaseBackground, i as BaseBadgeClassNames, j as BaseBadgeProps, k as BaseBorder, l as BaseBreadcrumbClassNames, m as BaseBreadcrumbItem, n as BaseBreadcrumbProps, o as BaseButtonClassNames, p as BaseButtonProps, q as BaseCheckboxClassNames, r as BaseCheckboxProps, s as BaseCodeClassNames, t as BaseCodeDisplay, u as BaseCodeProps, v as BaseContainerClassNames, w as BaseContainerProps, A as BaseContextMenuCheckboxItemProps, C as BaseContextMenuClassNames, D as BaseContextMenuContentClassNames, E as BaseContextMenuContentProps, F as BaseContextMenuItemClassNames, G as BaseContextMenuItemProps, H as BaseContextMenuLabelProps, I as BaseContextMenuProps, J as BaseContextMenuRadioGroupProps, K as BaseContextMenuRadioItemProps, L as BaseContextMenuSeparatorProps, M as BaseContextMenuSubContentProps, N as BaseContextMenuSubProps, O as BaseContextMenuSubTriggerProps, P as BaseContextMenuTriggerProps, y as BaseControlClassNames, x as BaseControlSize, z as BaseControlTone, Q as BaseDensity, R as BaseDescriptionListClassNames, S as BaseDescriptionListItem, T as BaseDescriptionListProps, U as BaseDialogClassNames, V as BaseDialogProps, W as BaseDividerClassNames, X as BaseDividerProps, Y as BaseDropdownMenuClassNames, Z as BaseDropdownMenuItem, _ as BaseDropdownMenuPlacement, $ as BaseDropdownMenuProps, a0 as BaseEmptyStateProps, a1 as BaseFieldClassNames, a2 as BaseFieldControlProps, a3 as BaseFieldProps, a4 as BaseFieldsetClassNames, a5 as BaseFieldsetProps, a6 as BaseGridClassNames, a7 as BaseGridColumns, a8 as BaseGridProps, a9 as BaseHeadingClassNames, aa as BaseHeadingLevel, ab as BaseHeadingProps, ac as BaseHeadingSize, ag as BaseInlineClassNames, ah as BaseInlineProps, ae as BaseInputGroupClassNames, af as BaseInputGroupProps, ad as BaseInputProps, ai as BaseKbdClassNames, aj as BaseKbdProps, al as BaseLayoutAlign, ak as BaseLayoutClassNames, am as BaseLayoutGap, an as BaseLayoutJustify, ao as BaseLayoutLength, ap as BaseLayoutOrientation, aq as BaseLayoutPaneClassNames, ar as BaseLayoutPaneProps, as as BaseLayoutPaneSurface, at as BaseLayoutProps, au as BaseLayoutResizeHandleClassNames, av as BaseLayoutResizeHandleProps, aw as BaseLayoutSize, ax as BaseLayoutSplitClassNames, ay as BaseLayoutSplitProps, aA as BaseLinkClassNames, aB as BaseLinkProps, aC as BaseListClassNames, aD as BaseListItemClassNames, aE as BaseListItemProps, aF as BaseListMarker, aG as BaseListProps, aH as BaseListSpacing, az as BaseLoadingStateProps, aI as BaseMultiSelectClassNames, aJ as BaseMultiSelectOption, aK as BaseMultiSelectProps, aP as BaseNoticeClassNames, aQ as BaseNoticeProps, aL as BaseNumberInputChangeReason, aM as BaseNumberInputClassNames, aN as BaseNumberInputProps, aO as BaseNumberInputValueChangeDetails, aV as BasePaginationClassNames, aW as BasePaginationProps, aR as BasePanelClassNames, aS as BasePanelProps, aT as BasePasswordInputClassNames, aU as BasePasswordInputProps, aX as BasePortalContainer, aY as BasePortalProps, aZ as BaseProgressClassNames, a_ as BaseProgressProps, b0 as BaseRadioGroupClassNames, b1 as BaseRadioGroupProps, b2 as BaseRadioOption, a$ as BaseRadius, b3 as BaseResolvedTheme, b4 as BaseScrollAreaAxis, b5 as BaseScrollAreaClassNames, b6 as BaseScrollAreaProps, b7 as BaseSectionHeaderClassNames, b8 as BaseSectionHeaderProps, bb as BaseSegmentedControlClassNames, bc as BaseSegmentedControlOption, bd as BaseSegmentedControlProps, b9 as BaseSelectOption, ba as BaseSelectProps, be as BaseSkeletonClassNames, bf as BaseSkeletonProps, bg as BaseSpinnerClassNames, bh as BaseSpinnerProps, bi as BaseStackClassNames, bj as BaseStackProps, bp as BaseStateClassNames, bk as BaseStepItem, bo as BaseStepStatus, bl as BaseStepsClassNames, bm as BaseStepsProps, bn as BaseStepsStatusLabels, bq as BaseSwitchClassNames, br as BaseSwitchProps, bs as BaseTableAlign, bt as BaseTableBodyProps, bu as BaseTableCaptionClassNames, bv as BaseTableCaptionProps, bw as BaseTableCellClassNames, bx as BaseTableCellProps, by as BaseTableClassNames, ca as BaseTableColumnDefinition, bz as BaseTableColumnInteractionOptions, bA as BaseTableColumnOrderChangeDetail, bB as BaseTableColumnSizeChangeDetail, bC as BaseTableColumnSizes, bD as BaseTableContainerClassNames, bE as BaseTableContainerProps, bF as BaseTableEmptyClassNames, bG as BaseTableEmptyProps, bH as BaseTableFooterBarClassNames, bI as BaseTableFooterBarProps, bJ as BaseTableFooterProps, bL as BaseTableHeadClassNames, bM as BaseTableHeadProps, bK as BaseTableHeaderProps, cb as BaseTableLayout, bN as BaseTableLoadingClassNames, bO as BaseTableLoadingProps, bP as BaseTableProps, bQ as BaseTableRowClassNames, bR as BaseTableRowProps, bS as BaseTableSectionClassNames, bT as BaseTableSortDirection, cc as BaseTableVerticalAlign, bU as BaseTabsClassNames, bV as BaseTabsItem, bW as BaseTabsProps, bY as BaseTextClassNames, bZ as BaseTextProps, bX as BaseTextareaProps, c3 as BaseThemePresetId, c4 as BaseThemeSlots, c5 as BaseThemeStyles, c1 as BaseToolbarClassNames, c2 as BaseToolbarProps, b_ as BaseTooltipClassNames, b$ as BaseTooltipPlacement, c0 as BaseTooltipProps, c6 as BaseTypographySize, c7 as BaseTypographyTone, c8 as BaseVisuallyHiddenClassNames, c9 as BaseVisuallyHiddenProps } from '../../types-DvHvN4RJ.mjs';
1
+ export { B as BaseAccordion, a as BaseAspectRatio, b as BaseAvatar, c as BaseBadge, d as BaseBreadcrumb, e as BaseButton, f as BaseCheckbox, g as BaseCode, h as BaseContainer, i as BaseContextMenu, j as BaseContextMenuCheckboxItem, k as BaseContextMenuContent, l as BaseContextMenuItem, m as BaseContextMenuLabel, n as BaseContextMenuRadioGroup, o as BaseContextMenuRadioItem, p as BaseContextMenuSeparator, q as BaseContextMenuSub, r as BaseContextMenuSubContent, s as BaseContextMenuSubTrigger, t as BaseContextMenuTrigger, u as BaseDescriptionList, v as BaseDialog, w as BaseDivider, x as BaseDropdownMenu, y as BaseEmptyState, z as BaseField, A as BaseFieldset, C as BaseGrid, D as BaseHeading, G as BaseInline, E as BaseInput, F as BaseInputGroup, H as BaseKbd, I as BaseLayout, J as BaseLayoutPane, K as BaseLayoutResizeHandle, L as BaseLayoutSplit, N as BaseLink, O as BaseList, P as BaseListItem, M as BaseLoadingState, Q as BaseMultiSelect, S as BaseNotice, R as BaseNumberInput, V as BasePagination, T as BasePanel, U as BasePasswordInput, W as BasePortal, X as BaseProgress, Y as BaseRadioGroup, Z as BaseScrollArea, $ as BaseSectionHeader, a0 as BaseSegmentedControl, _ as BaseSelect, a1 as BaseSkeleton, a2 as BaseSpinner, a3 as BaseStack, a4 as BaseSteps, a5 as BaseSwitch, a6 as BaseTable, a7 as BaseTableBody, a8 as BaseTableCaption, a9 as BaseTableCell, aa as BaseTableContainer, ab as BaseTableEmpty, ac as BaseTableFooter, ad as BaseTableFooterBar, ae as BaseTableHead, af as BaseTableHeader, ag as BaseTableLoading, ah as BaseTableRow, ai as BaseTabs, ak as BaseText, aj as BaseTextarea, am as BaseToolbar, al as BaseTooltip, an as BaseVisuallyHidden, ao as getBaseBadgeToneClassName, ap as getBaseButtonToneClassName, aq as getBaseMenuItemToneClassName, ar as getBaseNoticeToneClassName, as as resolveBaseAppearance } from '../../theme-DS9cFgze.mjs';
2
+ export { B as BaseAccordionClassNames, a as BaseAccordionItem, b as BaseAccordionProps, c as BaseAppearance, d as BaseAspectRatioClassNames, e as BaseAspectRatioProps, f as BaseAvatarClassNames, g as BaseAvatarProps, h as BaseBackground, i as BaseBadgeClassNames, j as BaseBadgeProps, k as BaseBorder, l as BaseBreadcrumbClassNames, m as BaseBreadcrumbItem, n as BaseBreadcrumbProps, o as BaseButtonClassNames, p as BaseButtonProps, q as BaseCheckboxClassNames, r as BaseCheckboxProps, s as BaseCodeClassNames, t as BaseCodeDisplay, u as BaseCodeProps, v as BaseContainerClassNames, w as BaseContainerProps, A as BaseContextMenuCheckboxItemProps, C as BaseContextMenuClassNames, D as BaseContextMenuContentClassNames, E as BaseContextMenuContentProps, F as BaseContextMenuItemClassNames, G as BaseContextMenuItemProps, H as BaseContextMenuLabelProps, I as BaseContextMenuProps, J as BaseContextMenuRadioGroupProps, K as BaseContextMenuRadioItemProps, L as BaseContextMenuSeparatorProps, M as BaseContextMenuSubContentProps, N as BaseContextMenuSubProps, O as BaseContextMenuSubTriggerProps, P as BaseContextMenuTriggerProps, y as BaseControlClassNames, x as BaseControlSize, z as BaseControlTone, Q as BaseDensity, R as BaseDescriptionListClassNames, S as BaseDescriptionListItem, T as BaseDescriptionListProps, U as BaseDialogClassNames, V as BaseDialogProps, W as BaseDividerClassNames, X as BaseDividerProps, Y as BaseDropdownMenuClassNames, Z as BaseDropdownMenuItem, _ as BaseDropdownMenuPlacement, $ as BaseDropdownMenuProps, a0 as BaseEmptyStateProps, a1 as BaseFieldClassNames, a2 as BaseFieldControlProps, a3 as BaseFieldProps, a4 as BaseFieldValidate, a5 as BaseFieldValidationMode, a6 as BaseFieldValidationResult, a7 as BaseFieldsetClassNames, a8 as BaseFieldsetProps, a9 as BaseGridClassNames, aa as BaseGridColumns, ab as BaseGridProps, ac as BaseHeadingClassNames, ad as BaseHeadingLevel, ae as BaseHeadingProps, af as BaseHeadingSize, aj as BaseInlineClassNames, ak as BaseInlineProps, ah as BaseInputGroupClassNames, ai as BaseInputGroupProps, ag as BaseInputProps, al as BaseKbdClassNames, am as BaseKbdProps, ao as BaseLayoutAlign, an as BaseLayoutClassNames, ap as BaseLayoutGap, aq as BaseLayoutJustify, ar as BaseLayoutLength, as as BaseLayoutOrientation, at as BaseLayoutPaneClassNames, au as BaseLayoutPaneProps, av as BaseLayoutPaneSurface, aw as BaseLayoutProps, ax as BaseLayoutResizeHandleClassNames, ay as BaseLayoutResizeHandleProps, az as BaseLayoutSize, aA as BaseLayoutSplitClassNames, aB as BaseLayoutSplitProps, aD as BaseLinkClassNames, aE as BaseLinkProps, aF as BaseListClassNames, aG as BaseListItemClassNames, aH as BaseListItemProps, aI as BaseListMarker, aJ as BaseListProps, aK as BaseListSpacing, aC as BaseLoadingStateProps, aL as BaseMultiSelectClassNames, aM as BaseMultiSelectOption, aN as BaseMultiSelectProps, aS as BaseNoticeClassNames, aT as BaseNoticeProps, aO as BaseNumberInputChangeReason, aP as BaseNumberInputClassNames, aQ as BaseNumberInputProps, aR as BaseNumberInputValueChangeDetails, aY as BasePaginationClassNames, aZ as BasePaginationProps, aU as BasePanelClassNames, aV as BasePanelProps, aW as BasePasswordInputClassNames, aX as BasePasswordInputProps, a_ as BasePortalContainer, a$ as BasePortalProps, b0 as BaseProgressClassNames, b1 as BaseProgressProps, b3 as BaseRadioGroupClassNames, b4 as BaseRadioGroupProps, b5 as BaseRadioOption, b2 as BaseRadius, b6 as BaseResolvedTheme, b7 as BaseScrollAreaAxis, b8 as BaseScrollAreaClassNames, b9 as BaseScrollAreaProps, ba as BaseSectionHeaderClassNames, bb as BaseSectionHeaderProps, be as BaseSegmentedControlClassNames, bf as BaseSegmentedControlOption, bg as BaseSegmentedControlProps, bc as BaseSelectOption, bd as BaseSelectProps, bh as BaseSkeletonClassNames, bi as BaseSkeletonProps, bj as BaseSpinnerClassNames, bk as BaseSpinnerProps, bl as BaseStackClassNames, bm as BaseStackProps, bs as BaseStateClassNames, bn as BaseStepItem, br as BaseStepStatus, bo as BaseStepsClassNames, bp as BaseStepsProps, bq as BaseStepsStatusLabels, bt as BaseSwitchClassNames, bu as BaseSwitchProps, bv as BaseTableAlign, bw as BaseTableBodyProps, bx as BaseTableCaptionClassNames, by as BaseTableCaptionProps, bz as BaseTableCellClassNames, bA as BaseTableCellProps, bB as BaseTableClassNames, cd as BaseTableColumnDefinition, bC as BaseTableColumnInteractionOptions, bD as BaseTableColumnOrderChangeDetail, bE as BaseTableColumnSizeChangeDetail, bF as BaseTableColumnSizes, bG as BaseTableContainerClassNames, bH as BaseTableContainerProps, bI as BaseTableEmptyClassNames, bJ as BaseTableEmptyProps, bK as BaseTableFooterBarClassNames, bL as BaseTableFooterBarProps, bM as BaseTableFooterProps, bO as BaseTableHeadClassNames, bP as BaseTableHeadProps, bN as BaseTableHeaderProps, ce as BaseTableLayout, bQ as BaseTableLoadingClassNames, bR as BaseTableLoadingProps, bS as BaseTableProps, bT as BaseTableRowClassNames, bU as BaseTableRowProps, bV as BaseTableSectionClassNames, bW as BaseTableSortDirection, cf as BaseTableVerticalAlign, bX as BaseTabsClassNames, bY as BaseTabsItem, bZ as BaseTabsProps, b$ as BaseTextClassNames, c0 as BaseTextProps, b_ as BaseTextareaProps, c6 as BaseThemePresetId, c7 as BaseThemeSlots, c8 as BaseThemeStyles, c4 as BaseToolbarClassNames, c5 as BaseToolbarProps, c1 as BaseTooltipClassNames, c2 as BaseTooltipPlacement, c3 as BaseTooltipProps, c9 as BaseTypographySize, ca as BaseTypographyTone, cb as BaseVisuallyHiddenClassNames, cc as BaseVisuallyHiddenProps } from '../../types-B0i-7zok.mjs';
3
3
  import 'react';
4
4
  import 'react/jsx-runtime';
5
5
  import '@radix-ui/react-context-menu';
@@ -1,5 +1,5 @@
1
- export { B as BaseAccordion, a as BaseAspectRatio, b as BaseAvatar, c as BaseBadge, d as BaseBreadcrumb, e as BaseButton, f as BaseCheckbox, g as BaseCode, h as BaseContainer, i as BaseContextMenu, j as BaseContextMenuCheckboxItem, k as BaseContextMenuContent, l as BaseContextMenuItem, m as BaseContextMenuLabel, n as BaseContextMenuRadioGroup, o as BaseContextMenuRadioItem, p as BaseContextMenuSeparator, q as BaseContextMenuSub, r as BaseContextMenuSubContent, s as BaseContextMenuSubTrigger, t as BaseContextMenuTrigger, u as BaseDescriptionList, v as BaseDialog, w as BaseDivider, x as BaseDropdownMenu, y as BaseEmptyState, z as BaseField, A as BaseFieldset, C as BaseGrid, D as BaseHeading, G as BaseInline, E as BaseInput, F as BaseInputGroup, H as BaseKbd, I as BaseLayout, J as BaseLayoutPane, K as BaseLayoutResizeHandle, L as BaseLayoutSplit, N as BaseLink, O as BaseList, P as BaseListItem, M as BaseLoadingState, Q as BaseMultiSelect, S as BaseNotice, R as BaseNumberInput, V as BasePagination, T as BasePanel, U as BasePasswordInput, W as BasePortal, X as BaseProgress, Y as BaseRadioGroup, Z as BaseScrollArea, $ as BaseSectionHeader, a0 as BaseSegmentedControl, _ as BaseSelect, a1 as BaseSkeleton, a2 as BaseSpinner, a3 as BaseStack, a4 as BaseSteps, a5 as BaseSwitch, a6 as BaseTable, a7 as BaseTableBody, a8 as BaseTableCaption, a9 as BaseTableCell, aa as BaseTableContainer, ab as BaseTableEmpty, ac as BaseTableFooter, ad as BaseTableFooterBar, ae as BaseTableHead, af as BaseTableHeader, ag as BaseTableLoading, ah as BaseTableRow, ai as BaseTabs, ak as BaseText, aj as BaseTextarea, am as BaseToolbar, al as BaseTooltip, an as BaseVisuallyHidden, ao as getBaseBadgeToneClassName, ap as getBaseButtonToneClassName, aq as getBaseMenuItemToneClassName, ar as getBaseNoticeToneClassName, as as resolveBaseAppearance } from '../../theme-r7GYhlCk.js';
2
- export { B as BaseAccordionClassNames, a as BaseAccordionItem, b as BaseAccordionProps, c as BaseAppearance, d as BaseAspectRatioClassNames, e as BaseAspectRatioProps, f as BaseAvatarClassNames, g as BaseAvatarProps, h as BaseBackground, i as BaseBadgeClassNames, j as BaseBadgeProps, k as BaseBorder, l as BaseBreadcrumbClassNames, m as BaseBreadcrumbItem, n as BaseBreadcrumbProps, o as BaseButtonClassNames, p as BaseButtonProps, q as BaseCheckboxClassNames, r as BaseCheckboxProps, s as BaseCodeClassNames, t as BaseCodeDisplay, u as BaseCodeProps, v as BaseContainerClassNames, w as BaseContainerProps, A as BaseContextMenuCheckboxItemProps, C as BaseContextMenuClassNames, D as BaseContextMenuContentClassNames, E as BaseContextMenuContentProps, F as BaseContextMenuItemClassNames, G as BaseContextMenuItemProps, H as BaseContextMenuLabelProps, I as BaseContextMenuProps, J as BaseContextMenuRadioGroupProps, K as BaseContextMenuRadioItemProps, L as BaseContextMenuSeparatorProps, M as BaseContextMenuSubContentProps, N as BaseContextMenuSubProps, O as BaseContextMenuSubTriggerProps, P as BaseContextMenuTriggerProps, y as BaseControlClassNames, x as BaseControlSize, z as BaseControlTone, Q as BaseDensity, R as BaseDescriptionListClassNames, S as BaseDescriptionListItem, T as BaseDescriptionListProps, U as BaseDialogClassNames, V as BaseDialogProps, W as BaseDividerClassNames, X as BaseDividerProps, Y as BaseDropdownMenuClassNames, Z as BaseDropdownMenuItem, _ as BaseDropdownMenuPlacement, $ as BaseDropdownMenuProps, a0 as BaseEmptyStateProps, a1 as BaseFieldClassNames, a2 as BaseFieldControlProps, a3 as BaseFieldProps, a4 as BaseFieldsetClassNames, a5 as BaseFieldsetProps, a6 as BaseGridClassNames, a7 as BaseGridColumns, a8 as BaseGridProps, a9 as BaseHeadingClassNames, aa as BaseHeadingLevel, ab as BaseHeadingProps, ac as BaseHeadingSize, ag as BaseInlineClassNames, ah as BaseInlineProps, ae as BaseInputGroupClassNames, af as BaseInputGroupProps, ad as BaseInputProps, ai as BaseKbdClassNames, aj as BaseKbdProps, al as BaseLayoutAlign, ak as BaseLayoutClassNames, am as BaseLayoutGap, an as BaseLayoutJustify, ao as BaseLayoutLength, ap as BaseLayoutOrientation, aq as BaseLayoutPaneClassNames, ar as BaseLayoutPaneProps, as as BaseLayoutPaneSurface, at as BaseLayoutProps, au as BaseLayoutResizeHandleClassNames, av as BaseLayoutResizeHandleProps, aw as BaseLayoutSize, ax as BaseLayoutSplitClassNames, ay as BaseLayoutSplitProps, aA as BaseLinkClassNames, aB as BaseLinkProps, aC as BaseListClassNames, aD as BaseListItemClassNames, aE as BaseListItemProps, aF as BaseListMarker, aG as BaseListProps, aH as BaseListSpacing, az as BaseLoadingStateProps, aI as BaseMultiSelectClassNames, aJ as BaseMultiSelectOption, aK as BaseMultiSelectProps, aP as BaseNoticeClassNames, aQ as BaseNoticeProps, aL as BaseNumberInputChangeReason, aM as BaseNumberInputClassNames, aN as BaseNumberInputProps, aO as BaseNumberInputValueChangeDetails, aV as BasePaginationClassNames, aW as BasePaginationProps, aR as BasePanelClassNames, aS as BasePanelProps, aT as BasePasswordInputClassNames, aU as BasePasswordInputProps, aX as BasePortalContainer, aY as BasePortalProps, aZ as BaseProgressClassNames, a_ as BaseProgressProps, b0 as BaseRadioGroupClassNames, b1 as BaseRadioGroupProps, b2 as BaseRadioOption, a$ as BaseRadius, b3 as BaseResolvedTheme, b4 as BaseScrollAreaAxis, b5 as BaseScrollAreaClassNames, b6 as BaseScrollAreaProps, b7 as BaseSectionHeaderClassNames, b8 as BaseSectionHeaderProps, bb as BaseSegmentedControlClassNames, bc as BaseSegmentedControlOption, bd as BaseSegmentedControlProps, b9 as BaseSelectOption, ba as BaseSelectProps, be as BaseSkeletonClassNames, bf as BaseSkeletonProps, bg as BaseSpinnerClassNames, bh as BaseSpinnerProps, bi as BaseStackClassNames, bj as BaseStackProps, bp as BaseStateClassNames, bk as BaseStepItem, bo as BaseStepStatus, bl as BaseStepsClassNames, bm as BaseStepsProps, bn as BaseStepsStatusLabels, bq as BaseSwitchClassNames, br as BaseSwitchProps, bs as BaseTableAlign, bt as BaseTableBodyProps, bu as BaseTableCaptionClassNames, bv as BaseTableCaptionProps, bw as BaseTableCellClassNames, bx as BaseTableCellProps, by as BaseTableClassNames, ca as BaseTableColumnDefinition, bz as BaseTableColumnInteractionOptions, bA as BaseTableColumnOrderChangeDetail, bB as BaseTableColumnSizeChangeDetail, bC as BaseTableColumnSizes, bD as BaseTableContainerClassNames, bE as BaseTableContainerProps, bF as BaseTableEmptyClassNames, bG as BaseTableEmptyProps, bH as BaseTableFooterBarClassNames, bI as BaseTableFooterBarProps, bJ as BaseTableFooterProps, bL as BaseTableHeadClassNames, bM as BaseTableHeadProps, bK as BaseTableHeaderProps, cb as BaseTableLayout, bN as BaseTableLoadingClassNames, bO as BaseTableLoadingProps, bP as BaseTableProps, bQ as BaseTableRowClassNames, bR as BaseTableRowProps, bS as BaseTableSectionClassNames, bT as BaseTableSortDirection, cc as BaseTableVerticalAlign, bU as BaseTabsClassNames, bV as BaseTabsItem, bW as BaseTabsProps, bY as BaseTextClassNames, bZ as BaseTextProps, bX as BaseTextareaProps, c3 as BaseThemePresetId, c4 as BaseThemeSlots, c5 as BaseThemeStyles, c1 as BaseToolbarClassNames, c2 as BaseToolbarProps, b_ as BaseTooltipClassNames, b$ as BaseTooltipPlacement, c0 as BaseTooltipProps, c6 as BaseTypographySize, c7 as BaseTypographyTone, c8 as BaseVisuallyHiddenClassNames, c9 as BaseVisuallyHiddenProps } from '../../types-DvHvN4RJ.js';
1
+ export { B as BaseAccordion, a as BaseAspectRatio, b as BaseAvatar, c as BaseBadge, d as BaseBreadcrumb, e as BaseButton, f as BaseCheckbox, g as BaseCode, h as BaseContainer, i as BaseContextMenu, j as BaseContextMenuCheckboxItem, k as BaseContextMenuContent, l as BaseContextMenuItem, m as BaseContextMenuLabel, n as BaseContextMenuRadioGroup, o as BaseContextMenuRadioItem, p as BaseContextMenuSeparator, q as BaseContextMenuSub, r as BaseContextMenuSubContent, s as BaseContextMenuSubTrigger, t as BaseContextMenuTrigger, u as BaseDescriptionList, v as BaseDialog, w as BaseDivider, x as BaseDropdownMenu, y as BaseEmptyState, z as BaseField, A as BaseFieldset, C as BaseGrid, D as BaseHeading, G as BaseInline, E as BaseInput, F as BaseInputGroup, H as BaseKbd, I as BaseLayout, J as BaseLayoutPane, K as BaseLayoutResizeHandle, L as BaseLayoutSplit, N as BaseLink, O as BaseList, P as BaseListItem, M as BaseLoadingState, Q as BaseMultiSelect, S as BaseNotice, R as BaseNumberInput, V as BasePagination, T as BasePanel, U as BasePasswordInput, W as BasePortal, X as BaseProgress, Y as BaseRadioGroup, Z as BaseScrollArea, $ as BaseSectionHeader, a0 as BaseSegmentedControl, _ as BaseSelect, a1 as BaseSkeleton, a2 as BaseSpinner, a3 as BaseStack, a4 as BaseSteps, a5 as BaseSwitch, a6 as BaseTable, a7 as BaseTableBody, a8 as BaseTableCaption, a9 as BaseTableCell, aa as BaseTableContainer, ab as BaseTableEmpty, ac as BaseTableFooter, ad as BaseTableFooterBar, ae as BaseTableHead, af as BaseTableHeader, ag as BaseTableLoading, ah as BaseTableRow, ai as BaseTabs, ak as BaseText, aj as BaseTextarea, am as BaseToolbar, al as BaseTooltip, an as BaseVisuallyHidden, ao as getBaseBadgeToneClassName, ap as getBaseButtonToneClassName, aq as getBaseMenuItemToneClassName, ar as getBaseNoticeToneClassName, as as resolveBaseAppearance } from '../../theme-DHmnuHIB.js';
2
+ export { B as BaseAccordionClassNames, a as BaseAccordionItem, b as BaseAccordionProps, c as BaseAppearance, d as BaseAspectRatioClassNames, e as BaseAspectRatioProps, f as BaseAvatarClassNames, g as BaseAvatarProps, h as BaseBackground, i as BaseBadgeClassNames, j as BaseBadgeProps, k as BaseBorder, l as BaseBreadcrumbClassNames, m as BaseBreadcrumbItem, n as BaseBreadcrumbProps, o as BaseButtonClassNames, p as BaseButtonProps, q as BaseCheckboxClassNames, r as BaseCheckboxProps, s as BaseCodeClassNames, t as BaseCodeDisplay, u as BaseCodeProps, v as BaseContainerClassNames, w as BaseContainerProps, A as BaseContextMenuCheckboxItemProps, C as BaseContextMenuClassNames, D as BaseContextMenuContentClassNames, E as BaseContextMenuContentProps, F as BaseContextMenuItemClassNames, G as BaseContextMenuItemProps, H as BaseContextMenuLabelProps, I as BaseContextMenuProps, J as BaseContextMenuRadioGroupProps, K as BaseContextMenuRadioItemProps, L as BaseContextMenuSeparatorProps, M as BaseContextMenuSubContentProps, N as BaseContextMenuSubProps, O as BaseContextMenuSubTriggerProps, P as BaseContextMenuTriggerProps, y as BaseControlClassNames, x as BaseControlSize, z as BaseControlTone, Q as BaseDensity, R as BaseDescriptionListClassNames, S as BaseDescriptionListItem, T as BaseDescriptionListProps, U as BaseDialogClassNames, V as BaseDialogProps, W as BaseDividerClassNames, X as BaseDividerProps, Y as BaseDropdownMenuClassNames, Z as BaseDropdownMenuItem, _ as BaseDropdownMenuPlacement, $ as BaseDropdownMenuProps, a0 as BaseEmptyStateProps, a1 as BaseFieldClassNames, a2 as BaseFieldControlProps, a3 as BaseFieldProps, a4 as BaseFieldValidate, a5 as BaseFieldValidationMode, a6 as BaseFieldValidationResult, a7 as BaseFieldsetClassNames, a8 as BaseFieldsetProps, a9 as BaseGridClassNames, aa as BaseGridColumns, ab as BaseGridProps, ac as BaseHeadingClassNames, ad as BaseHeadingLevel, ae as BaseHeadingProps, af as BaseHeadingSize, aj as BaseInlineClassNames, ak as BaseInlineProps, ah as BaseInputGroupClassNames, ai as BaseInputGroupProps, ag as BaseInputProps, al as BaseKbdClassNames, am as BaseKbdProps, ao as BaseLayoutAlign, an as BaseLayoutClassNames, ap as BaseLayoutGap, aq as BaseLayoutJustify, ar as BaseLayoutLength, as as BaseLayoutOrientation, at as BaseLayoutPaneClassNames, au as BaseLayoutPaneProps, av as BaseLayoutPaneSurface, aw as BaseLayoutProps, ax as BaseLayoutResizeHandleClassNames, ay as BaseLayoutResizeHandleProps, az as BaseLayoutSize, aA as BaseLayoutSplitClassNames, aB as BaseLayoutSplitProps, aD as BaseLinkClassNames, aE as BaseLinkProps, aF as BaseListClassNames, aG as BaseListItemClassNames, aH as BaseListItemProps, aI as BaseListMarker, aJ as BaseListProps, aK as BaseListSpacing, aC as BaseLoadingStateProps, aL as BaseMultiSelectClassNames, aM as BaseMultiSelectOption, aN as BaseMultiSelectProps, aS as BaseNoticeClassNames, aT as BaseNoticeProps, aO as BaseNumberInputChangeReason, aP as BaseNumberInputClassNames, aQ as BaseNumberInputProps, aR as BaseNumberInputValueChangeDetails, aY as BasePaginationClassNames, aZ as BasePaginationProps, aU as BasePanelClassNames, aV as BasePanelProps, aW as BasePasswordInputClassNames, aX as BasePasswordInputProps, a_ as BasePortalContainer, a$ as BasePortalProps, b0 as BaseProgressClassNames, b1 as BaseProgressProps, b3 as BaseRadioGroupClassNames, b4 as BaseRadioGroupProps, b5 as BaseRadioOption, b2 as BaseRadius, b6 as BaseResolvedTheme, b7 as BaseScrollAreaAxis, b8 as BaseScrollAreaClassNames, b9 as BaseScrollAreaProps, ba as BaseSectionHeaderClassNames, bb as BaseSectionHeaderProps, be as BaseSegmentedControlClassNames, bf as BaseSegmentedControlOption, bg as BaseSegmentedControlProps, bc as BaseSelectOption, bd as BaseSelectProps, bh as BaseSkeletonClassNames, bi as BaseSkeletonProps, bj as BaseSpinnerClassNames, bk as BaseSpinnerProps, bl as BaseStackClassNames, bm as BaseStackProps, bs as BaseStateClassNames, bn as BaseStepItem, br as BaseStepStatus, bo as BaseStepsClassNames, bp as BaseStepsProps, bq as BaseStepsStatusLabels, bt as BaseSwitchClassNames, bu as BaseSwitchProps, bv as BaseTableAlign, bw as BaseTableBodyProps, bx as BaseTableCaptionClassNames, by as BaseTableCaptionProps, bz as BaseTableCellClassNames, bA as BaseTableCellProps, bB as BaseTableClassNames, cd as BaseTableColumnDefinition, bC as BaseTableColumnInteractionOptions, bD as BaseTableColumnOrderChangeDetail, bE as BaseTableColumnSizeChangeDetail, bF as BaseTableColumnSizes, bG as BaseTableContainerClassNames, bH as BaseTableContainerProps, bI as BaseTableEmptyClassNames, bJ as BaseTableEmptyProps, bK as BaseTableFooterBarClassNames, bL as BaseTableFooterBarProps, bM as BaseTableFooterProps, bO as BaseTableHeadClassNames, bP as BaseTableHeadProps, bN as BaseTableHeaderProps, ce as BaseTableLayout, bQ as BaseTableLoadingClassNames, bR as BaseTableLoadingProps, bS as BaseTableProps, bT as BaseTableRowClassNames, bU as BaseTableRowProps, bV as BaseTableSectionClassNames, bW as BaseTableSortDirection, cf as BaseTableVerticalAlign, bX as BaseTabsClassNames, bY as BaseTabsItem, bZ as BaseTabsProps, b$ as BaseTextClassNames, c0 as BaseTextProps, b_ as BaseTextareaProps, c6 as BaseThemePresetId, c7 as BaseThemeSlots, c8 as BaseThemeStyles, c4 as BaseToolbarClassNames, c5 as BaseToolbarProps, c1 as BaseTooltipClassNames, c2 as BaseTooltipPlacement, c3 as BaseTooltipProps, c9 as BaseTypographySize, ca as BaseTypographyTone, cb as BaseVisuallyHiddenClassNames, cc as BaseVisuallyHiddenProps } from '../../types-B0i-7zok.js';
3
3
  import 'react';
4
4
  import 'react/jsx-runtime';
5
5
  import '@radix-ui/react-context-menu';
@@ -242,6 +242,10 @@ function cn(...parts) {
242
242
  function hasRenderableNode(node) {
243
243
  return node !== void 0 && node !== null && typeof node !== "boolean";
244
244
  }
245
+ function hasNonEmptyRenderableNode(node) {
246
+ if (typeof node === "string") return node.trim().length > 0;
247
+ return hasRenderableNode(node);
248
+ }
245
249
 
246
250
  // src/components/base/theme.ts
247
251
  var emptyStyles = {};
@@ -2690,6 +2694,41 @@ var BaseButton = react.forwardRef(
2690
2694
  );
2691
2695
  }
2692
2696
  );
2697
+ function resolveBaseFieldValidationResult(result) {
2698
+ if (result === null) return null;
2699
+ if (typeof result === "string" && result.trim().length > 0) return result;
2700
+ throw new TypeError(
2701
+ "BaseField validate must return a non-empty error string or null."
2702
+ );
2703
+ }
2704
+ var BaseFieldContext = react.createContext(
2705
+ null
2706
+ );
2707
+ function useBaseFieldControl() {
2708
+ const context = react.useContext(BaseFieldContext);
2709
+ const controlKeyRef = react.useRef(null);
2710
+ if (controlKeyRef.current === null) {
2711
+ controlKeyRef.current = /* @__PURE__ */ Symbol("BaseFieldControl");
2712
+ }
2713
+ const registerControl = context?.registerControl;
2714
+ react.useEffect(() => {
2715
+ if (!registerControl || controlKeyRef.current === null) return void 0;
2716
+ return registerControl(controlKeyRef.current);
2717
+ }, [registerControl]);
2718
+ const notifyBlur = context?.notifyBlur;
2719
+ const notifyChange = context?.notifyChange;
2720
+ return {
2721
+ invalid: context?.invalid ?? false,
2722
+ notifyBlur: react.useCallback(
2723
+ (value) => notifyBlur?.(value),
2724
+ [notifyBlur]
2725
+ ),
2726
+ notifyChange: react.useCallback(
2727
+ (value) => notifyChange?.(value),
2728
+ [notifyChange]
2729
+ )
2730
+ };
2731
+ }
2693
2732
  var boxSizeClassNames = {
2694
2733
  sm: "h-3.5 w-3.5",
2695
2734
  md: "h-4 w-4",
@@ -2724,6 +2763,7 @@ var BaseCheckbox = react.forwardRef(
2724
2763
  style,
2725
2764
  checked,
2726
2765
  defaultChecked,
2766
+ onBlur,
2727
2767
  onChange,
2728
2768
  "aria-invalid": nativeAriaInvalid,
2729
2769
  ...checkboxProps
@@ -2745,6 +2785,10 @@ var BaseCheckbox = react.forwardRef(
2745
2785
  const resolvedAppearance = useMonkeysBaseAppearance(appearance);
2746
2786
  const componentAttributes = useMonkeysComponentAttributes();
2747
2787
  const theme = resolveBaseAppearance(resolvedAppearance);
2788
+ const fieldControl = useBaseFieldControl();
2789
+ const resolvedInvalid = invalid || fieldControl.invalid;
2790
+ const hasLabel = hasRenderableNode(label);
2791
+ const hasDescription = hasNonEmptyRenderableNode(description);
2748
2792
  const inputRef = react.useRef(null);
2749
2793
  const indeterminateRef = react.useRef(indeterminate);
2750
2794
  indeterminateRef.current = indeterminate;
@@ -2774,6 +2818,7 @@ var BaseCheckbox = react.forwardRef(
2774
2818
  setUncontrolledChecked(event.currentTarget.checked);
2775
2819
  }
2776
2820
  onChange?.(event);
2821
+ fieldControl.notifyChange(event.currentTarget.checked);
2777
2822
  if (inputRef.current) {
2778
2823
  inputRef.current.indeterminate = indeterminate;
2779
2824
  }
@@ -2786,10 +2831,11 @@ var BaseCheckbox = react.forwardRef(
2786
2831
  "data-slot": "root",
2787
2832
  "data-state": state,
2788
2833
  "data-size": controlSize,
2789
- "data-invalid": invalid || void 0,
2834
+ "data-invalid": resolvedInvalid || void 0,
2790
2835
  "data-disabled": disabled || void 0,
2791
2836
  className: cn(
2792
2837
  theme.slots.checkboxRoot,
2838
+ !hasDescription && "items-center",
2793
2839
  disabled && theme.slots.checkboxDisabled,
2794
2840
  classNames?.root,
2795
2841
  className
@@ -2807,8 +2853,9 @@ var BaseCheckbox = react.forwardRef(
2807
2853
  "data-size": controlSize,
2808
2854
  className: cn(
2809
2855
  theme.slots.checkboxBox,
2856
+ !hasDescription && "mt-0",
2810
2857
  active && theme.slots.checkboxBoxChecked,
2811
- invalid && theme.slots.checkboxBoxInvalid,
2858
+ resolvedInvalid && theme.slots.checkboxBoxInvalid,
2812
2859
  controlSize && boxSizeClassNames[controlSize],
2813
2860
  classNames?.box
2814
2861
  ),
@@ -2825,14 +2872,18 @@ var BaseCheckbox = react.forwardRef(
2825
2872
  disabled,
2826
2873
  checked,
2827
2874
  defaultChecked,
2828
- "aria-invalid": nativeAriaInvalid ?? (invalid || void 0),
2875
+ "aria-invalid": nativeAriaInvalid ?? (resolvedInvalid || void 0),
2829
2876
  "aria-checked": indeterminate ? "mixed" : resolvedChecked,
2830
2877
  "data-slot": "input",
2831
2878
  "data-state": state,
2832
2879
  "data-size": controlSize,
2833
- "data-invalid": invalid || void 0,
2880
+ "data-invalid": resolvedInvalid || void 0,
2834
2881
  "data-disabled": disabled || void 0,
2835
2882
  className: cn(theme.slots.checkboxInput, classNames?.input),
2883
+ onBlur: (event) => {
2884
+ onBlur?.(event);
2885
+ fieldControl.notifyBlur(event.currentTarget.checked);
2886
+ },
2836
2887
  onChange: handleChange
2837
2888
  }
2838
2889
  ),
@@ -2854,13 +2905,13 @@ var BaseCheckbox = react.forwardRef(
2854
2905
  ]
2855
2906
  }
2856
2907
  ),
2857
- hasRenderableNode(label) || hasRenderableNode(description) ? /* @__PURE__ */ jsxRuntime.jsxs(
2908
+ hasLabel || hasDescription ? /* @__PURE__ */ jsxRuntime.jsxs(
2858
2909
  "span",
2859
2910
  {
2860
2911
  "data-slot": "content",
2861
2912
  className: cn(theme.slots.checkboxContent, classNames?.content),
2862
2913
  children: [
2863
- hasRenderableNode(label) ? /* @__PURE__ */ jsxRuntime.jsx(
2914
+ hasLabel ? /* @__PURE__ */ jsxRuntime.jsx(
2864
2915
  "span",
2865
2916
  {
2866
2917
  "data-slot": "label",
@@ -2868,7 +2919,7 @@ var BaseCheckbox = react.forwardRef(
2868
2919
  children: label
2869
2920
  }
2870
2921
  ) : null,
2871
- hasRenderableNode(description) ? /* @__PURE__ */ jsxRuntime.jsx(
2922
+ hasDescription ? /* @__PURE__ */ jsxRuntime.jsx(
2872
2923
  "span",
2873
2924
  {
2874
2925
  "data-slot": "description",
@@ -4693,6 +4744,8 @@ var BaseField = react.forwardRef(
4693
4744
  descriptionId,
4694
4745
  messageId,
4695
4746
  errorId,
4747
+ validate,
4748
+ validationMode = "onBlur",
4696
4749
  children,
4697
4750
  appearance,
4698
4751
  className,
@@ -4708,14 +4761,80 @@ var BaseField = react.forwardRef(
4708
4761
  throw new TypeError(`BaseField ${name} must be a boolean.`);
4709
4762
  }
4710
4763
  }
4764
+ if (validate !== void 0 && typeof validate !== "function") {
4765
+ throw new TypeError("BaseField validate must be a function.");
4766
+ }
4767
+ if (validationMode !== "onBlur" && validationMode !== "onChange") {
4768
+ throw new TypeError(
4769
+ 'BaseField validationMode must be "onBlur" or "onChange".'
4770
+ );
4771
+ }
4711
4772
  const generatedId = react.useId();
4712
4773
  const resolvedAppearance = useMonkeysBaseAppearance(appearance);
4713
4774
  const componentAttributes = useMonkeysComponentAttributes();
4714
4775
  const theme = resolveBaseAppearance(resolvedAppearance);
4715
4776
  const hasDescription = hasRenderableNode(description);
4716
- const hasError = hasRenderableNode(error);
4777
+ const [internalError, setInternalError] = react.useState(null);
4778
+ const registeredControlsRef = react.useRef(/* @__PURE__ */ new Set());
4779
+ const validateRef = react.useRef(validate);
4780
+ const validationModeRef = react.useRef(validationMode);
4781
+ const disabledRef = react.useRef(disabled);
4782
+ validateRef.current = validate;
4783
+ validationModeRef.current = validationMode;
4784
+ disabledRef.current = disabled;
4785
+ const hasValidator = validate !== void 0;
4786
+ react.useEffect(() => {
4787
+ if (!hasValidator || disabled) {
4788
+ setInternalError(null);
4789
+ }
4790
+ }, [disabled, hasValidator]);
4791
+ react.useEffect(() => {
4792
+ if (hasValidator && registeredControlsRef.current.size !== 1) {
4793
+ throw new TypeError(
4794
+ "BaseField with validate must contain exactly one compatible Base control."
4795
+ );
4796
+ }
4797
+ }, [hasValidator]);
4798
+ const registerControl = react.useCallback((controlKey) => {
4799
+ const registeredControls = registeredControlsRef.current;
4800
+ if (validateRef.current !== void 0 && !registeredControls.has(controlKey) && registeredControls.size > 0) {
4801
+ throw new TypeError(
4802
+ "BaseField with validate supports exactly one compatible Base control. Use BaseFieldset for control groups."
4803
+ );
4804
+ }
4805
+ registeredControls.add(controlKey);
4806
+ return () => {
4807
+ registeredControls.delete(controlKey);
4808
+ };
4809
+ }, []);
4810
+ const runValidation = react.useCallback(
4811
+ (mode, value) => {
4812
+ const currentValidate = validateRef.current;
4813
+ if (disabledRef.current || currentValidate === void 0 || validationModeRef.current !== mode) {
4814
+ return;
4815
+ }
4816
+ const result = resolveBaseFieldValidationResult(currentValidate(value));
4817
+ if (result === null) {
4818
+ setInternalError(null);
4819
+ return;
4820
+ }
4821
+ setInternalError(result);
4822
+ },
4823
+ []
4824
+ );
4825
+ const notifyBlur = react.useCallback(
4826
+ (value) => runValidation("onBlur", value),
4827
+ [runValidation]
4828
+ );
4829
+ const notifyChange = react.useCallback(
4830
+ (value) => runValidation("onChange", value),
4831
+ [runValidation]
4832
+ );
4833
+ const hasExternalError = hasRenderableNode(error);
4834
+ const resolvedError = hasExternalError ? error : internalError;
4835
+ const hasError = hasRenderableNode(resolvedError);
4717
4836
  const hasMessage = !hasError && hasRenderableNode(message);
4718
- const resolvedMessage = hasError ? error : message;
4837
+ const resolvedMessage = hasError ? resolvedError : message;
4719
4838
  const resolvedControlId = htmlFor ?? `${generatedId}-control`;
4720
4839
  const resolvedDescriptionId = hasDescription ? resolveOptionalId(
4721
4840
  descriptionId,
@@ -4737,6 +4856,15 @@ var BaseField = react.forwardRef(
4737
4856
  disabled: disabled || void 0
4738
4857
  };
4739
4858
  const renderedChildren = typeof children === "function" ? children(controlProps) : children;
4859
+ const fieldContextValue = react.useMemo(
4860
+ () => ({
4861
+ invalid: hasError,
4862
+ registerControl,
4863
+ notifyBlur,
4864
+ notifyChange
4865
+ }),
4866
+ [hasError, notifyBlur, notifyChange, registerControl]
4867
+ );
4740
4868
  return /* @__PURE__ */ jsxRuntime.jsxs(
4741
4869
  "div",
4742
4870
  {
@@ -4811,7 +4939,7 @@ var BaseField = react.forwardRef(
4811
4939
  "data-slot": "control",
4812
4940
  className: cn(theme.slots.fieldControl, classNames?.control),
4813
4941
  style: theme.styles.fieldControl,
4814
- children: renderedChildren
4942
+ children: /* @__PURE__ */ jsxRuntime.jsx(BaseFieldContext.Provider, { value: fieldContextValue, children: renderedChildren })
4815
4943
  }
4816
4944
  ) : null,
4817
4945
  hasRenderableNode(resolvedMessage) ? /* @__PURE__ */ jsxRuntime.jsx(
@@ -5054,6 +5182,8 @@ var BaseInput = react.forwardRef(
5054
5182
  classNames,
5055
5183
  style,
5056
5184
  "aria-invalid": nativeAriaInvalid,
5185
+ onBlur,
5186
+ onChange,
5057
5187
  ...inputProps
5058
5188
  }, ref) {
5059
5189
  for (const [name, value] of [
@@ -5071,6 +5201,8 @@ var BaseInput = react.forwardRef(
5071
5201
  const resolvedAppearance = useMonkeysBaseAppearance(appearance);
5072
5202
  const componentAttributes = useMonkeysComponentAttributes();
5073
5203
  const theme = resolveBaseAppearance(resolvedAppearance);
5204
+ const fieldControl = useBaseFieldControl();
5205
+ const resolvedInvalid = invalid || fieldControl.invalid;
5074
5206
  return /* @__PURE__ */ jsxRuntime.jsxs(
5075
5207
  "div",
5076
5208
  {
@@ -5078,12 +5210,12 @@ var BaseInput = react.forwardRef(
5078
5210
  "data-monkeys-component": "input",
5079
5211
  "data-slot": "root",
5080
5212
  "data-size": controlSize,
5081
- "data-invalid": invalid || void 0,
5213
+ "data-invalid": resolvedInvalid || void 0,
5082
5214
  "data-disabled": disabled || void 0,
5083
5215
  "data-readonly": readOnly || void 0,
5084
5216
  className: cn(
5085
5217
  theme.slots.controlWrapper,
5086
- invalid && theme.slots.controlInvalid,
5218
+ resolvedInvalid && theme.slots.controlInvalid,
5087
5219
  disabled && theme.slots.controlDisabled,
5088
5220
  readOnly && theme.slots.controlReadOnly,
5089
5221
  classNames?.root,
@@ -5091,7 +5223,7 @@ var BaseInput = react.forwardRef(
5091
5223
  ),
5092
5224
  style: {
5093
5225
  ...theme.styles.control,
5094
- ...invalid ? theme.styles.controlInvalid : void 0,
5226
+ ...resolvedInvalid ? theme.styles.controlInvalid : void 0,
5095
5227
  ...disabled ? theme.styles.controlDisabled : void 0,
5096
5228
  ...style
5097
5229
  },
@@ -5111,10 +5243,10 @@ var BaseInput = react.forwardRef(
5111
5243
  ref,
5112
5244
  disabled,
5113
5245
  readOnly,
5114
- "aria-invalid": nativeAriaInvalid ?? (invalid || void 0),
5246
+ "aria-invalid": nativeAriaInvalid ?? (resolvedInvalid || void 0),
5115
5247
  "data-slot": "control",
5116
5248
  "data-size": controlSize,
5117
- "data-invalid": invalid || void 0,
5249
+ "data-invalid": resolvedInvalid || void 0,
5118
5250
  "data-disabled": disabled || void 0,
5119
5251
  "data-readonly": readOnly || void 0,
5120
5252
  className: cn(
@@ -5122,7 +5254,15 @@ var BaseInput = react.forwardRef(
5122
5254
  theme.slots.controlInput,
5123
5255
  controlSize && controlSizeClassNames[controlSize],
5124
5256
  classNames?.control
5125
- )
5257
+ ),
5258
+ onBlur: (event) => {
5259
+ onBlur?.(event);
5260
+ fieldControl.notifyBlur(event.currentTarget.value);
5261
+ },
5262
+ onChange: (event) => {
5263
+ onChange?.(event);
5264
+ fieldControl.notifyChange(event.currentTarget.value);
5265
+ }
5126
5266
  }
5127
5267
  ),
5128
5268
  hasRenderableNode(trailing) ? /* @__PURE__ */ jsxRuntime.jsx(
@@ -8072,8 +8212,6 @@ var BaseScrollArea = react.forwardRef(
8072
8212
  }
8073
8213
  );
8074
8214
  var typeaheadResetDelay2 = 500;
8075
- function noop() {
8076
- }
8077
8215
  function validateSelectProps({
8078
8216
  options,
8079
8217
  value,
@@ -8188,6 +8326,7 @@ var BaseSelect = react.forwardRef(
8188
8326
  children,
8189
8327
  value,
8190
8328
  defaultValue,
8329
+ onBlur,
8191
8330
  onChange,
8192
8331
  onFocus,
8193
8332
  onInvalid,
@@ -8214,6 +8353,8 @@ var BaseSelect = react.forwardRef(
8214
8353
  const resolvedAppearance = useMonkeysBaseAppearance(appearance);
8215
8354
  const componentAttributes = useMonkeysComponentAttributes();
8216
8355
  const theme = resolveBaseAppearance(resolvedAppearance);
8356
+ const fieldControl = useBaseFieldControl();
8357
+ const resolvedInvalid = invalid || fieldControl.invalid;
8217
8358
  const generatedId = react.useId();
8218
8359
  const selectId = id ?? generatedId;
8219
8360
  const triggerId = `${selectId}-button`;
@@ -8246,7 +8387,7 @@ var BaseSelect = react.forwardRef(
8246
8387
  const visibleLabel = selectedOption?.label ?? placeholder;
8247
8388
  const isPlaceholder = !selectedOption;
8248
8389
  const layerDirection = selectProps.dir ?? componentAttributes.dir;
8249
- const rootState = disabled ? "disabled" : invalid ? "invalid" : open ? "open" : "closed";
8390
+ const rootState = disabled ? "disabled" : resolvedInvalid ? "invalid" : open ? "open" : "closed";
8250
8391
  const setSelectRef = (node) => {
8251
8392
  selectRef.current = node;
8252
8393
  if (typeof ref === "function") {
@@ -8255,6 +8396,14 @@ var BaseSelect = react.forwardRef(
8255
8396
  ref.current = node;
8256
8397
  }
8257
8398
  };
8399
+ const handleNativeBlur = (event) => {
8400
+ onBlur?.(event);
8401
+ fieldControl.notifyBlur(event.currentTarget.value);
8402
+ };
8403
+ const handleNativeChange = (event) => {
8404
+ onChange?.(event);
8405
+ fieldControl.notifyChange(event.currentTarget.value);
8406
+ };
8258
8407
  const resetActiveIndex = () => {
8259
8408
  setActiveIndex(getInitialActiveIndex(optionList, selectedValue));
8260
8409
  };
@@ -8458,14 +8607,14 @@ var BaseSelect = react.forwardRef(
8458
8607
  "data-native": "true",
8459
8608
  className: cn(
8460
8609
  theme.slots.controlWrapper,
8461
- invalid && theme.slots.controlInvalid,
8610
+ resolvedInvalid && theme.slots.controlInvalid,
8462
8611
  disabled && theme.slots.controlDisabled,
8463
8612
  classNames?.root,
8464
8613
  className
8465
8614
  ),
8466
8615
  style: {
8467
8616
  ...theme.styles.control,
8468
- ...invalid ? theme.styles.controlInvalid : void 0,
8617
+ ...resolvedInvalid ? theme.styles.controlInvalid : void 0,
8469
8618
  ...disabled ? theme.styles.controlDisabled : void 0,
8470
8619
  ...style
8471
8620
  },
@@ -8483,7 +8632,7 @@ var BaseSelect = react.forwardRef(
8483
8632
  defaultValue,
8484
8633
  required,
8485
8634
  disabled,
8486
- "aria-invalid": nativeAriaInvalid ?? (invalid || void 0),
8635
+ "aria-invalid": nativeAriaInvalid ?? (resolvedInvalid || void 0),
8487
8636
  "aria-label": nativeAriaLabel,
8488
8637
  "aria-labelledby": nativeAriaLabelledBy,
8489
8638
  "aria-describedby": nativeAriaDescribedBy,
@@ -8493,9 +8642,10 @@ var BaseSelect = react.forwardRef(
8493
8642
  "data-slot": "native",
8494
8643
  "data-state": rootState,
8495
8644
  "data-native": "true",
8645
+ onBlur: handleNativeBlur,
8496
8646
  onFocus,
8497
8647
  onInvalid,
8498
- onChange,
8648
+ onChange: handleNativeChange,
8499
8649
  className: cn(
8500
8650
  theme.slots.controlBase,
8501
8651
  theme.slots.controlSelect,
@@ -8526,14 +8676,14 @@ var BaseSelect = react.forwardRef(
8526
8676
  theme.slots.controlWrapper,
8527
8677
  "overflow-visible",
8528
8678
  open && "z-50",
8529
- invalid && theme.slots.controlInvalid,
8679
+ resolvedInvalid && theme.slots.controlInvalid,
8530
8680
  disabled && theme.slots.controlDisabled,
8531
8681
  classNames?.root,
8532
8682
  className
8533
8683
  ),
8534
8684
  style: {
8535
8685
  ...theme.styles.control,
8536
- ...invalid ? theme.styles.controlInvalid : void 0,
8686
+ ...resolvedInvalid ? theme.styles.controlInvalid : void 0,
8537
8687
  ...disabled ? theme.styles.controlDisabled : void 0,
8538
8688
  ...style
8539
8689
  },
@@ -8554,7 +8704,7 @@ var BaseSelect = react.forwardRef(
8554
8704
  "aria-controls": listboxId,
8555
8705
  "aria-activedescendant": open && resolvedActiveIndex >= 0 ? optionIds[resolvedActiveIndex] : void 0,
8556
8706
  "aria-autocomplete": "none",
8557
- "aria-invalid": nativeAriaInvalid ?? (invalid || void 0),
8707
+ "aria-invalid": nativeAriaInvalid ?? (resolvedInvalid || void 0),
8558
8708
  "aria-label": nativeAriaLabel,
8559
8709
  "aria-labelledby": nativeAriaLabelledBy,
8560
8710
  "aria-describedby": nativeAriaDescribedBy,
@@ -8576,6 +8726,7 @@ var BaseSelect = react.forwardRef(
8576
8726
  onBlur: (event) => {
8577
8727
  if (!rootRef.current?.contains(event.relatedTarget)) {
8578
8728
  cancelAndClose();
8729
+ fieldControl.notifyBlur(selectedValue);
8579
8730
  }
8580
8731
  },
8581
8732
  onCompositionStart: () => {
@@ -8626,9 +8777,10 @@ var BaseSelect = react.forwardRef(
8626
8777
  "data-state": rootState,
8627
8778
  "data-native": "false",
8628
8779
  className: theme.slots.selectNative,
8780
+ onBlur,
8629
8781
  onFocus: handleCustomFocus,
8630
8782
  onInvalid: handleCustomInvalid,
8631
- onChange: onChange ?? noop,
8783
+ onChange: handleNativeChange,
8632
8784
  children: [
8633
8785
  hasRenderableNode(placeholder) ? /* @__PURE__ */ jsxRuntime.jsx("option", { value: "", disabled: true, children: placeholder }) : null,
8634
8786
  optionList.map((option) => /* @__PURE__ */ jsxRuntime.jsx(
@@ -9375,6 +9527,8 @@ var BaseSwitch = react.forwardRef(
9375
9527
  const resolvedAppearance = useMonkeysBaseAppearance(appearance);
9376
9528
  const componentAttributes = useMonkeysComponentAttributes();
9377
9529
  const theme = resolveBaseAppearance(resolvedAppearance);
9530
+ const hasLabel = hasRenderableNode(label);
9531
+ const hasDescription = hasNonEmptyRenderableNode(description);
9378
9532
  const [uncontrolledChecked, setUncontrolledChecked] = react.useState(
9379
9533
  defaultChecked ?? false
9380
9534
  );
@@ -9400,6 +9554,7 @@ var BaseSwitch = react.forwardRef(
9400
9554
  "data-disabled": disabled || void 0,
9401
9555
  className: cn(
9402
9556
  theme.slots.switchRoot,
9557
+ !hasDescription && "items-center",
9403
9558
  disabled && theme.slots.switchDisabled,
9404
9559
  classNames?.root,
9405
9560
  className
@@ -9417,6 +9572,7 @@ var BaseSwitch = react.forwardRef(
9417
9572
  "data-size": controlSize,
9418
9573
  className: cn(
9419
9574
  theme.slots.switchTrack,
9575
+ !hasDescription && "mt-0",
9420
9576
  resolvedChecked && theme.slots.switchChecked,
9421
9577
  controlSize && trackSizeClassNames[controlSize],
9422
9578
  classNames?.track
@@ -9461,13 +9617,13 @@ var BaseSwitch = react.forwardRef(
9461
9617
  ]
9462
9618
  }
9463
9619
  ),
9464
- hasRenderableNode(label) || hasRenderableNode(description) ? /* @__PURE__ */ jsxRuntime.jsxs(
9620
+ hasLabel || hasDescription ? /* @__PURE__ */ jsxRuntime.jsxs(
9465
9621
  "span",
9466
9622
  {
9467
9623
  "data-slot": "content",
9468
9624
  className: cn(theme.slots.switchContent, classNames?.content),
9469
9625
  children: [
9470
- hasRenderableNode(label) ? /* @__PURE__ */ jsxRuntime.jsx(
9626
+ hasLabel ? /* @__PURE__ */ jsxRuntime.jsx(
9471
9627
  "span",
9472
9628
  {
9473
9629
  "data-slot": "label",
@@ -9475,7 +9631,7 @@ var BaseSwitch = react.forwardRef(
9475
9631
  children: label
9476
9632
  }
9477
9633
  ) : null,
9478
- hasRenderableNode(description) ? /* @__PURE__ */ jsxRuntime.jsx(
9634
+ hasDescription ? /* @__PURE__ */ jsxRuntime.jsx(
9479
9635
  "span",
9480
9636
  {
9481
9637
  "data-slot": "description",
@@ -11046,6 +11202,8 @@ var BaseTextarea = react.forwardRef(
11046
11202
  classNames,
11047
11203
  style,
11048
11204
  "aria-invalid": nativeAriaInvalid,
11205
+ onBlur,
11206
+ onChange,
11049
11207
  ...textareaProps
11050
11208
  }, ref) {
11051
11209
  for (const [name, value] of [
@@ -11065,6 +11223,8 @@ var BaseTextarea = react.forwardRef(
11065
11223
  const resolvedAppearance = useMonkeysBaseAppearance(appearance);
11066
11224
  const componentAttributes = useMonkeysComponentAttributes();
11067
11225
  const theme = resolveBaseAppearance(resolvedAppearance);
11226
+ const fieldControl = useBaseFieldControl();
11227
+ const resolvedInvalid = invalid || fieldControl.invalid;
11068
11228
  return /* @__PURE__ */ jsxRuntime.jsx(
11069
11229
  "textarea",
11070
11230
  {
@@ -11073,18 +11233,18 @@ var BaseTextarea = react.forwardRef(
11073
11233
  ref,
11074
11234
  disabled,
11075
11235
  readOnly,
11076
- "aria-invalid": nativeAriaInvalid ?? (invalid || void 0),
11236
+ "aria-invalid": nativeAriaInvalid ?? (resolvedInvalid || void 0),
11077
11237
  "data-monkeys-component": "textarea",
11078
11238
  "data-slot": "control",
11079
11239
  "data-size": controlSize,
11080
- "data-invalid": invalid || void 0,
11240
+ "data-invalid": resolvedInvalid || void 0,
11081
11241
  "data-disabled": disabled || void 0,
11082
11242
  "data-readonly": readOnly || void 0,
11083
11243
  className: cn(
11084
11244
  theme.slots.controlWrapper,
11085
11245
  theme.slots.controlBase,
11086
11246
  theme.slots.controlTextarea,
11087
- invalid && theme.slots.controlInvalid,
11247
+ resolvedInvalid && theme.slots.controlInvalid,
11088
11248
  disabled && theme.slots.controlDisabled,
11089
11249
  readOnly && theme.slots.controlReadOnly,
11090
11250
  controlSize && controlSizeClassNames2[controlSize],
@@ -11093,9 +11253,17 @@ var BaseTextarea = react.forwardRef(
11093
11253
  ),
11094
11254
  style: {
11095
11255
  ...theme.styles.control,
11096
- ...invalid ? theme.styles.controlInvalid : void 0,
11256
+ ...resolvedInvalid ? theme.styles.controlInvalid : void 0,
11097
11257
  ...disabled ? theme.styles.controlDisabled : void 0,
11098
11258
  ...style
11259
+ },
11260
+ onBlur: (event) => {
11261
+ onBlur?.(event);
11262
+ fieldControl.notifyBlur(event.currentTarget.value);
11263
+ },
11264
+ onChange: (event) => {
11265
+ onChange?.(event);
11266
+ fieldControl.notifyChange(event.currentTarget.value);
11099
11267
  }
11100
11268
  }
11101
11269
  );