@base-ui/react 1.2.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +148 -1
- package/accordion/header/AccordionHeader.d.ts +4 -2
- package/accordion/item/AccordionItem.d.ts +10 -4
- package/accordion/item/AccordionItemContext.d.ts +2 -2
- package/accordion/item/stateAttributesMapping.d.ts +2 -2
- package/accordion/panel/AccordionPanel.d.ts +6 -3
- package/accordion/root/AccordionRoot.d.ts +19 -10
- package/accordion/root/AccordionRootContext.d.ts +7 -7
- package/accordion/trigger/AccordionTrigger.d.ts +4 -2
- package/accordion/trigger/AccordionTrigger.js +3 -1
- package/alert-dialog/root/AlertDialogRoot.d.ts +2 -0
- package/autocomplete/index.d.ts +1 -0
- package/autocomplete/index.parts.d.ts +1 -0
- package/autocomplete/index.parts.js +7 -0
- package/autocomplete/root/AutocompleteRoot.d.ts +4 -4
- package/autocomplete/root/AutocompleteRoot.js +4 -1
- package/avatar/fallback/AvatarFallback.d.ts +3 -6
- package/avatar/fallback/AvatarFallback.js +4 -32
- package/avatar/image/AvatarImage.d.ts +6 -3
- package/avatar/image/AvatarImage.js +2 -3
- package/avatar/image/AvatarImageDataAttributes.d.ts +10 -0
- package/avatar/image/AvatarImageDataAttributes.js +18 -0
- package/avatar/root/AvatarRoot.d.ts +4 -1
- package/checkbox/indicator/CheckboxIndicator.d.ts +6 -3
- package/checkbox/root/CheckboxRoot.d.ts +3 -3
- package/checkbox/root/CheckboxRoot.js +4 -1
- package/checkbox/root/CheckboxRootContext.d.ts +4 -4
- package/checkbox/utils/useStateAttributesMapping.d.ts +2 -2
- package/checkbox-group/CheckboxGroup.d.ts +3 -3
- package/checkbox-group/CheckboxGroupContext.d.ts +2 -2
- package/checkbox-group/useCheckboxGroupParent.d.ts +2 -5
- package/collapsible/panel/CollapsiblePanel.d.ts +6 -3
- package/collapsible/panel/useCollapsiblePanel.d.ts +2 -5
- package/collapsible/root/CollapsibleRoot.d.ts +3 -3
- package/collapsible/root/CollapsibleRootContext.d.ts +4 -4
- package/collapsible/root/stateAttributesMapping.d.ts +2 -2
- package/collapsible/root/useCollapsibleRoot.d.ts +2 -5
- package/collapsible/trigger/CollapsibleTrigger.d.ts +4 -2
- package/combobox/arrow/ComboboxArrow.d.ts +10 -1
- package/combobox/backdrop/ComboboxBackdrop.d.ts +4 -1
- package/combobox/chip/ComboboxChip.d.ts +1 -1
- package/combobox/chip-remove/ComboboxChipRemove.d.ts +1 -1
- package/combobox/chips/ComboboxChips.d.ts +1 -1
- package/combobox/clear/ComboboxClear.d.ts +4 -1
- package/combobox/collection/ComboboxCollection.d.ts +2 -0
- package/combobox/empty/ComboboxEmpty.d.ts +1 -1
- package/combobox/group/ComboboxGroup.d.ts +1 -1
- package/combobox/group-label/ComboboxGroupLabel.d.ts +1 -1
- package/combobox/icon/ComboboxIcon.d.ts +1 -1
- package/combobox/index.d.ts +2 -0
- package/combobox/index.parts.d.ts +2 -0
- package/combobox/index.parts.js +14 -0
- package/combobox/input/ComboboxInput.d.ts +3 -3
- package/combobox/input/ComboboxInput.js +22 -5
- package/combobox/input-group/ComboboxInputGroup.d.ts +40 -0
- package/combobox/input-group/ComboboxInputGroup.js +68 -0
- package/combobox/input-group/ComboboxInputGroupDataAttributes.d.ts +55 -0
- package/combobox/input-group/ComboboxInputGroupDataAttributes.js +62 -0
- package/combobox/item/ComboboxItem.d.ts +1 -1
- package/combobox/item/ComboboxItem.js +2 -1
- package/combobox/item-indicator/ComboboxItemIndicator.d.ts +7 -1
- package/combobox/item-indicator/ComboboxItemIndicatorDataAttributes.d.ts +10 -0
- package/combobox/item-indicator/ComboboxItemIndicatorDataAttributes.js +18 -0
- package/combobox/label/ComboboxLabel.d.ts +16 -0
- package/combobox/label/ComboboxLabel.js +68 -0
- package/combobox/list/ComboboxList.d.ts +1 -1
- package/combobox/popup/ComboboxPopup.d.ts +21 -3
- package/combobox/popup/ComboboxPopup.js +10 -2
- package/combobox/portal/ComboboxPortal.d.ts +3 -4
- package/combobox/positioner/ComboboxPositioner.d.ts +14 -2
- package/combobox/positioner/ComboboxPositioner.js +3 -2
- package/combobox/root/AriaCombobox.d.ts +9 -8
- package/combobox/root/AriaCombobox.js +14 -6
- package/combobox/root/ComboboxRoot.d.ts +4 -4
- package/combobox/row/ComboboxRow.d.ts +1 -1
- package/combobox/status/ComboboxStatus.d.ts +1 -1
- package/combobox/store.d.ts +10 -4
- package/combobox/store.js +2 -0
- package/combobox/trigger/ComboboxTrigger.d.ts +3 -3
- package/combobox/trigger/ComboboxTrigger.js +5 -2
- package/combobox/utils/ComboboxInternalDismissButton.d.ts +5 -0
- package/combobox/utils/ComboboxInternalDismissButton.js +44 -0
- package/composite/item/CompositeItem.d.ts +3 -1
- package/composite/list/CompositeList.d.ts +3 -1
- package/composite/list/useCompositeListItem.d.ts +1 -1
- package/composite/root/CompositeRoot.d.ts +4 -2
- package/composite/root/useCompositeRoot.d.ts +1 -1
- package/context-menu/trigger/ContextMenuTrigger.d.ts +3 -3
- package/dialog/backdrop/DialogBackdrop.d.ts +4 -1
- package/dialog/close/DialogClose.d.ts +1 -1
- package/dialog/description/DialogDescription.d.ts +1 -1
- package/dialog/popup/DialogPopup.d.ts +6 -3
- package/dialog/portal/DialogPortal.d.ts +4 -5
- package/dialog/root/DialogRoot.d.ts +8 -3
- package/dialog/root/useDialogRoot.d.ts +3 -7
- package/dialog/root/useDialogRoot.js +2 -5
- package/dialog/title/DialogTitle.d.ts +1 -1
- package/dialog/trigger/DialogTrigger.d.ts +1 -1
- package/dialog/viewport/DialogViewport.d.ts +3 -0
- package/direction-provider/DirectionProvider.d.ts +2 -0
- package/drawer/backdrop/DrawerBackdrop.d.ts +4 -1
- package/drawer/backdrop/DrawerBackdropDataAttributes.d.ts +18 -0
- package/drawer/backdrop/DrawerBackdropDataAttributes.js +26 -0
- package/drawer/close/DrawerClose.d.ts +1 -1
- package/drawer/content/DrawerContent.d.ts +1 -1
- package/drawer/content/DrawerContent.js +2 -1
- package/drawer/content/DrawerContentDataAttributes.d.ts +1 -0
- package/drawer/content/DrawerContentDataAttributes.js +7 -0
- package/drawer/description/DrawerDescription.d.ts +1 -1
- package/drawer/indent/DrawerIndent.d.ts +3 -2
- package/drawer/indent/DrawerIndent.js +2 -1
- package/drawer/indent-background/DrawerIndentBackground.d.ts +5 -3
- package/drawer/indent-background/DrawerIndentBackground.js +4 -2
- package/drawer/index.d.ts +2 -1
- package/drawer/index.js +3 -3
- package/drawer/index.parts.d.ts +1 -0
- package/drawer/index.parts.js +7 -0
- package/drawer/popup/DrawerPopup.d.ts +6 -3
- package/drawer/popup/DrawerPopup.js +59 -2
- package/drawer/popup/DrawerPopupDataAttributes.d.ts +16 -0
- package/drawer/popup/DrawerPopupDataAttributes.js +18 -1
- package/drawer/portal/DrawerPortal.d.ts +2 -2
- package/drawer/provider/DrawerProvider.d.ts +2 -2
- package/drawer/provider/DrawerProvider.js +2 -2
- package/drawer/root/DrawerRoot.d.ts +5 -3
- package/drawer/root/DrawerRoot.js +6 -2
- package/drawer/swipe-area/DrawerSwipeArea.d.ts +1 -1
- package/drawer/swipe-area/DrawerSwipeArea.js +12 -10
- package/drawer/swipe-area/DrawerSwipeAreaDataAttributes.d.ts +23 -0
- package/drawer/swipe-area/DrawerSwipeAreaDataAttributes.js +31 -0
- package/drawer/title/DrawerTitle.d.ts +1 -1
- package/drawer/trigger/DrawerTrigger.d.ts +1 -1
- package/drawer/viewport/DrawerViewport.d.ts +4 -1
- package/drawer/viewport/DrawerViewport.js +165 -43
- package/drawer/viewport/DrawerViewportDataAttributes.d.ts +22 -0
- package/drawer/viewport/DrawerViewportDataAttributes.js +30 -0
- package/esm/accordion/header/AccordionHeader.d.ts +4 -2
- package/esm/accordion/item/AccordionItem.d.ts +10 -4
- package/esm/accordion/item/AccordionItemContext.d.ts +2 -2
- package/esm/accordion/item/stateAttributesMapping.d.ts +2 -2
- package/esm/accordion/panel/AccordionPanel.d.ts +6 -3
- package/esm/accordion/root/AccordionRoot.d.ts +19 -10
- package/esm/accordion/root/AccordionRootContext.d.ts +7 -7
- package/esm/accordion/trigger/AccordionTrigger.d.ts +4 -2
- package/esm/accordion/trigger/AccordionTrigger.js +3 -1
- package/esm/alert-dialog/root/AlertDialogRoot.d.ts +2 -0
- package/esm/autocomplete/index.d.ts +1 -0
- package/esm/autocomplete/index.parts.d.ts +1 -0
- package/esm/autocomplete/index.parts.js +1 -0
- package/esm/autocomplete/root/AutocompleteRoot.d.ts +4 -4
- package/esm/autocomplete/root/AutocompleteRoot.js +4 -1
- package/esm/avatar/fallback/AvatarFallback.d.ts +3 -6
- package/esm/avatar/fallback/AvatarFallback.js +4 -31
- package/esm/avatar/image/AvatarImage.d.ts +6 -3
- package/esm/avatar/image/AvatarImage.js +2 -3
- package/esm/avatar/image/AvatarImageDataAttributes.d.ts +10 -0
- package/esm/avatar/image/AvatarImageDataAttributes.js +12 -0
- package/esm/avatar/root/AvatarRoot.d.ts +4 -1
- package/esm/checkbox/indicator/CheckboxIndicator.d.ts +6 -3
- package/esm/checkbox/root/CheckboxRoot.d.ts +3 -3
- package/esm/checkbox/root/CheckboxRoot.js +4 -1
- package/esm/checkbox/root/CheckboxRootContext.d.ts +4 -4
- package/esm/checkbox/utils/useStateAttributesMapping.d.ts +2 -2
- package/esm/checkbox-group/CheckboxGroup.d.ts +3 -3
- package/esm/checkbox-group/CheckboxGroupContext.d.ts +2 -2
- package/esm/checkbox-group/useCheckboxGroupParent.d.ts +2 -5
- package/esm/collapsible/panel/CollapsiblePanel.d.ts +6 -3
- package/esm/collapsible/panel/useCollapsiblePanel.d.ts +2 -5
- package/esm/collapsible/root/CollapsibleRoot.d.ts +3 -3
- package/esm/collapsible/root/CollapsibleRootContext.d.ts +4 -4
- package/esm/collapsible/root/stateAttributesMapping.d.ts +2 -2
- package/esm/collapsible/root/useCollapsibleRoot.d.ts +2 -5
- package/esm/collapsible/trigger/CollapsibleTrigger.d.ts +4 -2
- package/esm/combobox/arrow/ComboboxArrow.d.ts +10 -1
- package/esm/combobox/backdrop/ComboboxBackdrop.d.ts +4 -1
- package/esm/combobox/chip/ComboboxChip.d.ts +1 -1
- package/esm/combobox/chip-remove/ComboboxChipRemove.d.ts +1 -1
- package/esm/combobox/chips/ComboboxChips.d.ts +1 -1
- package/esm/combobox/clear/ComboboxClear.d.ts +4 -1
- package/esm/combobox/collection/ComboboxCollection.d.ts +2 -0
- package/esm/combobox/empty/ComboboxEmpty.d.ts +1 -1
- package/esm/combobox/group/ComboboxGroup.d.ts +1 -1
- package/esm/combobox/group-label/ComboboxGroupLabel.d.ts +1 -1
- package/esm/combobox/icon/ComboboxIcon.d.ts +1 -1
- package/esm/combobox/index.d.ts +2 -0
- package/esm/combobox/index.parts.d.ts +2 -0
- package/esm/combobox/index.parts.js +2 -0
- package/esm/combobox/input/ComboboxInput.d.ts +3 -3
- package/esm/combobox/input/ComboboxInput.js +22 -5
- package/esm/combobox/input-group/ComboboxInputGroup.d.ts +40 -0
- package/esm/combobox/input-group/ComboboxInputGroup.js +63 -0
- package/esm/combobox/input-group/ComboboxInputGroupDataAttributes.d.ts +55 -0
- package/esm/combobox/input-group/ComboboxInputGroupDataAttributes.js +56 -0
- package/esm/combobox/item/ComboboxItem.d.ts +1 -1
- package/esm/combobox/item/ComboboxItem.js +2 -1
- package/esm/combobox/item-indicator/ComboboxItemIndicator.d.ts +7 -1
- package/esm/combobox/item-indicator/ComboboxItemIndicatorDataAttributes.d.ts +10 -0
- package/esm/combobox/item-indicator/ComboboxItemIndicatorDataAttributes.js +12 -0
- package/esm/combobox/label/ComboboxLabel.d.ts +16 -0
- package/esm/combobox/label/ComboboxLabel.js +63 -0
- package/esm/combobox/list/ComboboxList.d.ts +1 -1
- package/esm/combobox/popup/ComboboxPopup.d.ts +21 -3
- package/esm/combobox/popup/ComboboxPopup.js +11 -3
- package/esm/combobox/portal/ComboboxPortal.d.ts +3 -4
- package/esm/combobox/positioner/ComboboxPositioner.d.ts +14 -2
- package/esm/combobox/positioner/ComboboxPositioner.js +3 -2
- package/esm/combobox/root/AriaCombobox.d.ts +9 -8
- package/esm/combobox/root/AriaCombobox.js +14 -6
- package/esm/combobox/root/ComboboxRoot.d.ts +4 -4
- package/esm/combobox/row/ComboboxRow.d.ts +1 -1
- package/esm/combobox/status/ComboboxStatus.d.ts +1 -1
- package/esm/combobox/store.d.ts +10 -4
- package/esm/combobox/store.js +2 -0
- package/esm/combobox/trigger/ComboboxTrigger.d.ts +3 -3
- package/esm/combobox/trigger/ComboboxTrigger.js +5 -2
- package/esm/combobox/utils/ComboboxInternalDismissButton.d.ts +5 -0
- package/esm/combobox/utils/ComboboxInternalDismissButton.js +38 -0
- package/esm/composite/item/CompositeItem.d.ts +3 -1
- package/esm/composite/list/CompositeList.d.ts +3 -1
- package/esm/composite/list/useCompositeListItem.d.ts +1 -1
- package/esm/composite/root/CompositeRoot.d.ts +4 -2
- package/esm/composite/root/useCompositeRoot.d.ts +1 -1
- package/esm/context-menu/trigger/ContextMenuTrigger.d.ts +3 -3
- package/esm/dialog/backdrop/DialogBackdrop.d.ts +4 -1
- package/esm/dialog/close/DialogClose.d.ts +1 -1
- package/esm/dialog/description/DialogDescription.d.ts +1 -1
- package/esm/dialog/popup/DialogPopup.d.ts +6 -3
- package/esm/dialog/portal/DialogPortal.d.ts +4 -5
- package/esm/dialog/root/DialogRoot.d.ts +8 -3
- package/esm/dialog/root/useDialogRoot.d.ts +3 -7
- package/esm/dialog/root/useDialogRoot.js +2 -5
- package/esm/dialog/title/DialogTitle.d.ts +1 -1
- package/esm/dialog/trigger/DialogTrigger.d.ts +1 -1
- package/esm/dialog/viewport/DialogViewport.d.ts +3 -0
- package/esm/direction-provider/DirectionProvider.d.ts +2 -0
- package/esm/drawer/backdrop/DrawerBackdrop.d.ts +4 -1
- package/esm/drawer/backdrop/DrawerBackdropDataAttributes.d.ts +18 -0
- package/esm/drawer/backdrop/DrawerBackdropDataAttributes.js +20 -0
- package/esm/drawer/close/DrawerClose.d.ts +1 -1
- package/esm/drawer/content/DrawerContent.d.ts +1 -1
- package/esm/drawer/content/DrawerContent.js +2 -1
- package/esm/drawer/content/DrawerContentDataAttributes.d.ts +1 -0
- package/esm/drawer/content/DrawerContentDataAttributes.js +1 -0
- package/esm/drawer/description/DrawerDescription.d.ts +1 -1
- package/esm/drawer/indent/DrawerIndent.d.ts +3 -2
- package/esm/drawer/indent/DrawerIndent.js +2 -1
- package/esm/drawer/indent-background/DrawerIndentBackground.d.ts +5 -3
- package/esm/drawer/indent-background/DrawerIndentBackground.js +4 -2
- package/esm/drawer/index.d.ts +2 -1
- package/esm/drawer/index.js +1 -1
- package/esm/drawer/index.parts.d.ts +1 -0
- package/esm/drawer/index.parts.js +1 -0
- package/esm/drawer/popup/DrawerPopup.d.ts +6 -3
- package/esm/drawer/popup/DrawerPopup.js +59 -2
- package/esm/drawer/popup/DrawerPopupDataAttributes.d.ts +16 -0
- package/esm/drawer/popup/DrawerPopupDataAttributes.js +18 -1
- package/esm/drawer/portal/DrawerPortal.d.ts +2 -2
- package/esm/drawer/provider/DrawerProvider.d.ts +2 -2
- package/esm/drawer/provider/DrawerProvider.js +2 -2
- package/esm/drawer/root/DrawerRoot.d.ts +5 -3
- package/esm/drawer/root/DrawerRoot.js +6 -2
- package/esm/drawer/swipe-area/DrawerSwipeArea.d.ts +1 -1
- package/esm/drawer/swipe-area/DrawerSwipeArea.js +12 -10
- package/esm/drawer/swipe-area/DrawerSwipeAreaDataAttributes.d.ts +23 -0
- package/esm/drawer/swipe-area/DrawerSwipeAreaDataAttributes.js +25 -0
- package/esm/drawer/title/DrawerTitle.d.ts +1 -1
- package/esm/drawer/trigger/DrawerTrigger.d.ts +1 -1
- package/esm/drawer/viewport/DrawerViewport.d.ts +4 -1
- package/esm/drawer/viewport/DrawerViewport.js +165 -43
- package/esm/drawer/viewport/DrawerViewportDataAttributes.d.ts +22 -0
- package/esm/drawer/viewport/DrawerViewportDataAttributes.js +24 -0
- package/esm/field/control/FieldControl.d.ts +3 -3
- package/esm/field/description/FieldDescription.d.ts +3 -3
- package/esm/field/error/FieldError.d.ts +7 -4
- package/esm/field/error/FieldErrorDataAttributes.d.ts +8 -0
- package/esm/field/error/FieldErrorDataAttributes.js +10 -1
- package/esm/field/item/FieldItem.d.ts +4 -3
- package/esm/field/item/FieldItem.js +2 -2
- package/esm/field/label/FieldLabel.d.ts +3 -3
- package/esm/field/label/FieldLabel.js +6 -51
- package/esm/field/root/FieldRoot.d.ts +19 -2
- package/esm/field/root/FieldRoot.js +2 -1
- package/esm/field/root/FieldRootContext.d.ts +2 -2
- package/esm/field/root/FieldRootContext.js +6 -13
- package/esm/field/root/useFieldValidation.js +5 -4
- package/esm/field/utils/constants.d.ts +3 -0
- package/esm/field/utils/constants.js +11 -0
- package/esm/field/validity/FieldValidity.d.ts +7 -1
- package/esm/fieldset/legend/FieldsetLegend.d.ts +1 -1
- package/esm/fieldset/root/FieldsetRoot.d.ts +1 -1
- package/esm/floating-ui-react/components/FloatingDelayGroup.js +1 -1
- package/esm/floating-ui-react/components/FloatingFocusManager.d.ts +12 -7
- package/esm/floating-ui-react/components/FloatingFocusManager.js +31 -27
- package/esm/floating-ui-react/components/FloatingPortal.d.ts +6 -4
- package/esm/floating-ui-react/hooks/useClick.d.ts +2 -2
- package/esm/floating-ui-react/hooks/useClientPoint.d.ts +1 -1
- package/esm/floating-ui-react/hooks/useDismiss.d.ts +8 -12
- package/esm/floating-ui-react/hooks/useDismiss.js +320 -261
- package/esm/floating-ui-react/hooks/useFloatingRootContext.d.ts +2 -2
- package/esm/floating-ui-react/hooks/useFocus.d.ts +1 -1
- package/esm/floating-ui-react/hooks/useHover.d.ts +6 -14
- package/esm/floating-ui-react/hooks/useHover.js +2 -27
- package/esm/floating-ui-react/hooks/useHoverFloatingInteraction.d.ts +2 -3
- package/esm/floating-ui-react/hooks/useHoverFloatingInteraction.js +55 -71
- package/esm/floating-ui-react/hooks/useHoverInteractionSharedState.d.ts +12 -3
- package/esm/floating-ui-react/hooks/useHoverInteractionSharedState.js +30 -3
- package/esm/floating-ui-react/hooks/useHoverReferenceInteraction.d.ts +8 -3
- package/esm/floating-ui-react/hooks/useHoverReferenceInteraction.js +59 -81
- package/esm/floating-ui-react/hooks/useHoverShared.d.ts +28 -0
- package/esm/floating-ui-react/hooks/useHoverShared.js +26 -0
- package/esm/floating-ui-react/hooks/useListNavigation.d.ts +4 -4
- package/esm/floating-ui-react/hooks/useListNavigation.js +7 -3
- package/esm/floating-ui-react/hooks/useRole.d.ts +1 -1
- package/esm/floating-ui-react/hooks/useTypeahead.d.ts +7 -1
- package/esm/floating-ui-react/hooks/useTypeahead.js +30 -14
- package/esm/floating-ui-react/safePolygon.d.ts +2 -6
- package/esm/floating-ui-react/safePolygon.js +149 -119
- package/esm/floating-ui-react/types.d.ts +5 -4
- package/esm/floating-ui-react/utils/composite.d.ts +1 -0
- package/esm/floating-ui-react/utils/composite.js +128 -129
- package/esm/floating-ui-react/utils/markOthers.d.ts +7 -1
- package/esm/floating-ui-react/utils/markOthers.js +119 -81
- package/esm/form/Form.d.ts +1 -1
- package/esm/global.d.ts +1 -1
- package/esm/index.js +1 -1
- package/esm/input/Input.d.ts +10 -3
- package/esm/labelable-provider/LabelableProvider.d.ts +4 -1
- package/esm/labelable-provider/LabelableProvider.js +3 -2
- package/esm/labelable-provider/useAriaLabelledBy.d.ts +9 -0
- package/esm/labelable-provider/useAriaLabelledBy.js +56 -0
- package/esm/labelable-provider/useLabel.d.ts +25 -0
- package/esm/labelable-provider/useLabel.js +74 -0
- package/esm/labelable-provider/useLabelableId.d.ts +2 -5
- package/esm/menu/arrow/MenuArrow.d.ts +10 -1
- package/esm/menu/backdrop/MenuBackdrop.d.ts +4 -1
- package/esm/menu/checkbox-item/MenuCheckboxItem.d.ts +3 -3
- package/esm/menu/checkbox-item-indicator/MenuCheckboxItemIndicator.d.ts +7 -1
- package/esm/menu/group/MenuGroup.d.ts +1 -1
- package/esm/menu/group-label/MenuGroupLabel.d.ts +1 -1
- package/esm/menu/index.d.ts +2 -1
- package/esm/menu/index.parts.d.ts +1 -0
- package/esm/menu/index.parts.js +1 -0
- package/esm/menu/item/MenuItem.d.ts +1 -1
- package/esm/menu/item/useMenuItem.d.ts +8 -7
- package/esm/menu/item/useMenuItem.js +5 -7
- package/esm/menu/item/useMenuItemCommonProps.d.ts +7 -4
- package/esm/menu/item/useMenuItemCommonProps.js +16 -2
- package/esm/menu/link-item/MenuLinkItem.d.ts +1 -1
- package/esm/menu/link-item/MenuLinkItem.js +16 -2
- package/esm/menu/popup/MenuPopup.d.ts +20 -5
- package/esm/menu/popup/MenuPopup.js +4 -1
- package/esm/menu/popup/MenuPopupDataAttributes.d.ts +1 -1
- package/esm/menu/popup/MenuPopupDataAttributes.js +1 -1
- package/esm/menu/portal/MenuPortal.d.ts +3 -4
- package/esm/menu/positioner/MenuPositioner.d.ts +18 -2
- package/esm/menu/positioner/MenuPositioner.js +58 -5
- package/esm/menu/radio-group/MenuRadioGroup.d.ts +6 -3
- package/esm/menu/radio-item/MenuRadioItem.d.ts +3 -3
- package/esm/menu/radio-item-indicator/MenuRadioItemIndicator.d.ts +7 -1
- package/esm/menu/root/MenuRoot.d.ts +4 -2
- package/esm/menu/root/MenuRoot.js +2 -3
- package/esm/menu/store/MenuStore.d.ts +4 -2
- package/esm/menu/store/MenuStore.js +15 -1
- package/esm/menu/submenu-trigger/MenuSubmenuTrigger.js +1 -0
- package/esm/menu/trigger/MenuTrigger.d.ts +3 -3
- package/esm/menu/viewport/MenuViewport.d.ts +30 -0
- package/esm/menu/viewport/MenuViewport.js +60 -0
- package/esm/menu/viewport/MenuViewportCssVars.d.ts +14 -0
- package/esm/menu/viewport/MenuViewportCssVars.js +15 -0
- package/esm/menu/viewport/MenuViewportDataAttributes.d.ts +26 -0
- package/esm/menu/viewport/MenuViewportDataAttributes.js +27 -0
- package/esm/menubar/Menubar.d.ts +1 -1
- package/esm/menubar/Menubar.js +1 -7
- package/esm/meter/indicator/MeterIndicator.d.ts +4 -2
- package/esm/meter/label/MeterLabel.d.ts +4 -2
- package/esm/meter/label/MeterLabel.js +4 -8
- package/esm/meter/root/MeterRoot.d.ts +1 -1
- package/esm/meter/root/MeterRoot.js +11 -2
- package/esm/meter/track/MeterTrack.d.ts +4 -2
- package/esm/meter/value/MeterValue.d.ts +5 -3
- package/esm/navigation-menu/arrow/NavigationMenuArrow.d.ts +10 -1
- package/esm/navigation-menu/backdrop/NavigationMenuBackdrop.d.ts +1 -1
- package/esm/navigation-menu/content/NavigationMenuContent.d.ts +1 -1
- package/esm/navigation-menu/content/NavigationMenuContent.js +11 -0
- package/esm/navigation-menu/icon/NavigationMenuIcon.d.ts +1 -1
- package/esm/navigation-menu/item/NavigationMenuItem.d.ts +1 -1
- package/esm/navigation-menu/link/NavigationMenuLink.d.ts +1 -1
- package/esm/navigation-menu/list/NavigationMenuList.d.ts +1 -1
- package/esm/navigation-menu/list/NavigationMenuList.js +11 -2
- package/esm/navigation-menu/popup/NavigationMenuPopup.d.ts +1 -1
- package/esm/navigation-menu/portal/NavigationMenuPortal.d.ts +4 -5
- package/esm/navigation-menu/positioner/NavigationMenuPositioner.d.ts +11 -2
- package/esm/navigation-menu/root/NavigationMenuRoot.d.ts +4 -4
- package/esm/navigation-menu/root/NavigationMenuRoot.js +27 -8
- package/esm/navigation-menu/trigger/NavigationMenuTrigger.d.ts +1 -1
- package/esm/navigation-menu/trigger/NavigationMenuTrigger.js +364 -20
- package/esm/navigation-menu/utils/isOutsideMenuEvent.d.ts +1 -1
- package/esm/navigation-menu/viewport/NavigationMenuViewport.d.ts +1 -1
- package/esm/navigation-menu/viewport/NavigationMenuViewport.js +0 -19
- package/esm/number-field/decrement/NumberFieldDecrement.d.ts +3 -3
- package/esm/number-field/group/NumberFieldGroup.d.ts +3 -3
- package/esm/number-field/increment/NumberFieldIncrement.d.ts +3 -3
- package/esm/number-field/input/NumberFieldInput.d.ts +3 -3
- package/esm/number-field/root/NumberFieldRoot.d.ts +4 -4
- package/esm/number-field/root/NumberFieldRoot.js +1 -1
- package/esm/number-field/root/NumberFieldRootContext.d.ts +2 -2
- package/esm/number-field/root/useNumberFieldButton.d.ts +2 -5
- package/esm/number-field/scrub-area/NumberFieldScrubArea.d.ts +4 -4
- package/esm/number-field/scrub-area-cursor/NumberFieldScrubAreaCursor.d.ts +3 -3
- package/esm/number-field/utils/stateAttributesMapping.d.ts +2 -2
- package/esm/number-field/utils/types.d.ts +2 -2
- package/esm/popover/arrow/PopoverArrow.d.ts +10 -1
- package/esm/popover/backdrop/PopoverBackdrop.d.ts +4 -1
- package/esm/popover/close/PopoverClose.d.ts +1 -1
- package/esm/popover/close/PopoverClose.js +5 -3
- package/esm/popover/description/PopoverDescription.d.ts +1 -1
- package/esm/popover/popup/PopoverPopup.d.ts +15 -3
- package/esm/popover/popup/PopoverPopup.js +11 -2
- package/esm/popover/portal/PopoverPortal.d.ts +3 -4
- package/esm/popover/positioner/PopoverPositioner.d.ts +11 -2
- package/esm/popover/root/PopoverRoot.d.ts +10 -3
- package/esm/popover/root/PopoverRoot.js +1 -3
- package/esm/popover/title/PopoverTitle.d.ts +1 -1
- package/esm/popover/viewport/PopoverViewport.d.ts +16 -12
- package/esm/preview-card/arrow/PreviewCardArrow.d.ts +10 -1
- package/esm/preview-card/backdrop/PreviewCardBackdrop.d.ts +4 -1
- package/esm/preview-card/popup/PreviewCardPopup.d.ts +13 -1
- package/esm/preview-card/portal/PreviewCardPortal.d.ts +3 -4
- package/esm/preview-card/positioner/PreviewCardPositioner.d.ts +14 -2
- package/esm/preview-card/positioner/PreviewCardPositioner.js +7 -1
- package/esm/preview-card/root/PreviewCardRoot.d.ts +3 -3
- package/esm/preview-card/root/PreviewCardRoot.js +22 -9
- package/esm/preview-card/trigger/PreviewCardTrigger.d.ts +1 -1
- package/esm/preview-card/viewport/PreviewCardViewport.d.ts +16 -9
- package/esm/progress/indicator/ProgressIndicator.d.ts +4 -2
- package/esm/progress/label/ProgressLabel.d.ts +4 -2
- package/esm/progress/label/ProgressLabel.js +4 -8
- package/esm/progress/root/ProgressRoot.d.ts +4 -1
- package/esm/progress/root/ProgressRoot.js +11 -2
- package/esm/progress/root/ProgressRootContext.d.ts +2 -2
- package/esm/progress/root/stateAttributesMapping.d.ts +2 -2
- package/esm/progress/track/ProgressTrack.d.ts +4 -2
- package/esm/progress/value/ProgressValue.d.ts +5 -3
- package/esm/radio/indicator/RadioIndicator.d.ts +4 -1
- package/esm/radio/indicator/RadioIndicatorDataAttributes.d.ts +8 -0
- package/esm/radio/indicator/RadioIndicatorDataAttributes.js +10 -1
- package/esm/radio/root/RadioRoot.d.ts +3 -3
- package/esm/radio/root/RadioRoot.js +4 -1
- package/esm/radio-group/RadioGroup.d.ts +3 -3
- package/esm/scroll-area/content/ScrollAreaContent.d.ts +3 -3
- package/esm/scroll-area/corner/ScrollAreaCorner.d.ts +1 -1
- package/esm/scroll-area/root/ScrollAreaRoot.d.ts +27 -11
- package/esm/scroll-area/root/ScrollAreaRoot.js +7 -4
- package/esm/scroll-area/root/ScrollAreaRootContext.d.ts +4 -2
- package/esm/scroll-area/root/stateAttributes.d.ts +2 -2
- package/esm/scroll-area/scrollbar/ScrollAreaScrollbar.d.ts +13 -7
- package/esm/scroll-area/scrollbar/ScrollAreaScrollbar.js +4 -1
- package/esm/scroll-area/thumb/ScrollAreaThumb.d.ts +5 -2
- package/esm/scroll-area/thumb/ScrollAreaThumb.js +3 -1
- package/esm/scroll-area/viewport/ScrollAreaViewport.d.ts +3 -3
- package/esm/scroll-area/viewport/ScrollAreaViewport.js +46 -27
- package/esm/select/arrow/SelectArrow.d.ts +10 -1
- package/esm/select/backdrop/SelectBackdrop.d.ts +7 -1
- package/esm/select/group/SelectGroup.d.ts +1 -1
- package/esm/select/group-label/SelectGroupLabel.d.ts +1 -1
- package/esm/select/icon/SelectIcon.d.ts +1 -1
- package/esm/select/index.d.ts +1 -0
- package/esm/select/index.parts.d.ts +1 -0
- package/esm/select/index.parts.js +1 -0
- package/esm/select/item/SelectItem.d.ts +1 -1
- package/esm/select/item/SelectItem.js +10 -4
- package/esm/select/item-indicator/SelectItemIndicator.d.ts +10 -2
- package/esm/select/item-indicator/SelectItemIndicatorDataAttributes.d.ts +10 -0
- package/esm/select/item-indicator/SelectItemIndicatorDataAttributes.js +12 -0
- package/esm/select/item-text/SelectItemText.d.ts +1 -1
- package/esm/select/label/SelectLabel.d.ts +16 -0
- package/esm/select/label/SelectLabel.js +49 -0
- package/esm/select/list/SelectList.d.ts +1 -1
- package/esm/select/popup/SelectPopup.d.ts +14 -2
- package/esm/select/popup/SelectPopup.js +23 -9
- package/esm/select/portal/SelectPortal.d.ts +3 -4
- package/esm/select/positioner/SelectPositioner.d.ts +14 -2
- package/esm/select/positioner/SelectPositionerContext.d.ts +2 -2
- package/esm/select/root/SelectRoot.d.ts +5 -4
- package/esm/select/root/SelectRoot.js +5 -6
- package/esm/select/scroll-arrow/SelectScrollArrow.d.ts +13 -1
- package/esm/select/scroll-down-arrow/SelectScrollDownArrow.d.ts +1 -1
- package/esm/select/scroll-up-arrow/SelectScrollUpArrow.d.ts +1 -1
- package/esm/select/store.d.ts +5 -2
- package/esm/select/store.js +1 -0
- package/esm/select/trigger/SelectTrigger.d.ts +6 -4
- package/esm/select/trigger/SelectTrigger.js +5 -2
- package/esm/select/value/SelectValue.d.ts +1 -1
- package/esm/separator/Separator.d.ts +1 -1
- package/esm/slider/control/SliderControl.d.ts +4 -3
- package/esm/slider/control/SliderControl.js +0 -2
- package/esm/slider/index.d.ts +1 -0
- package/esm/slider/index.parts.d.ts +1 -0
- package/esm/slider/index.parts.js +1 -0
- package/esm/slider/indicator/SliderIndicator.d.ts +4 -2
- package/esm/slider/label/SliderLabel.d.ts +16 -0
- package/esm/slider/label/SliderLabel.js +58 -0
- package/esm/slider/root/SliderRoot.d.ts +11 -5
- package/esm/slider/root/SliderRoot.js +8 -3
- package/esm/slider/root/SliderRootContext.d.ts +4 -2
- package/esm/slider/root/stateAttributesMapping.d.ts +2 -2
- package/esm/slider/thumb/SliderThumb.d.ts +5 -5
- package/esm/slider/thumb/SliderThumb.js +3 -2
- package/esm/slider/track/SliderTrack.d.ts +4 -2
- package/esm/slider/utils/resolveThumbCollision.d.ts +2 -2
- package/esm/slider/value/SliderValue.d.ts +5 -3
- package/esm/switch/root/SwitchRoot.d.ts +3 -3
- package/esm/switch/root/SwitchRoot.js +4 -1
- package/esm/switch/root/SwitchRootContext.d.ts +4 -4
- package/esm/switch/stateAttributesMapping.d.ts +2 -2
- package/esm/switch/thumb/SwitchThumb.d.ts +3 -3
- package/esm/tabs/indicator/TabsIndicator.d.ts +12 -3
- package/esm/tabs/indicator/TabsIndicator.js +5 -14
- package/esm/tabs/indicator/TabsIndicatorCssVars.d.ts +1 -1
- package/esm/tabs/indicator/TabsIndicatorCssVars.js +1 -1
- package/esm/tabs/list/TabsList.d.ts +3 -3
- package/esm/tabs/list/TabsList.js +48 -3
- package/esm/tabs/list/TabsListContext.d.ts +2 -0
- package/esm/tabs/panel/TabsPanel.d.ts +9 -3
- package/esm/tabs/panel/TabsPanelDataAttributes.d.ts +8 -0
- package/esm/tabs/panel/TabsPanelDataAttributes.js +10 -1
- package/esm/tabs/root/TabsRoot.d.ts +7 -1
- package/esm/tabs/root/TabsRootContext.d.ts +1 -1
- package/esm/tabs/root/stateAttributesMapping.d.ts +2 -2
- package/esm/tabs/tab/TabsTab.d.ts +7 -1
- package/esm/tabs/tab/TabsTab.js +10 -1
- package/esm/toast/action/ToastAction.d.ts +1 -1
- package/esm/toast/arrow/ToastArrow.d.ts +10 -1
- package/esm/toast/close/ToastClose.d.ts +1 -1
- package/esm/toast/content/ToastContent.d.ts +1 -1
- package/esm/toast/createToastManager.d.ts +1 -1
- package/esm/toast/description/ToastDescription.d.ts +1 -1
- package/esm/toast/portal/ToastPortal.d.ts +3 -4
- package/esm/toast/positioner/ToastPositioner.d.ts +12 -3
- package/esm/toast/provider/ToastProvider.d.ts +2 -0
- package/esm/toast/provider/ToastProvider.js +1 -1
- package/esm/toast/root/ToastRoot.d.ts +20 -7
- package/esm/toast/root/ToastRoot.js +3 -1
- package/esm/toast/store.d.ts +1 -1
- package/esm/toast/store.js +37 -8
- package/esm/toast/title/ToastTitle.d.ts +1 -1
- package/esm/toast/useToastManager.d.ts +3 -3
- package/esm/toast/viewport/ToastViewport.d.ts +1 -1
- package/esm/toggle/Toggle.d.ts +1 -1
- package/esm/toggle-group/ToggleGroup.d.ts +1 -1
- package/esm/toolbar/button/ToolbarButton.d.ts +9 -3
- package/esm/toolbar/group/ToolbarGroup.d.ts +4 -2
- package/esm/toolbar/input/ToolbarInput.d.ts +9 -3
- package/esm/toolbar/link/ToolbarLink.d.ts +4 -1
- package/esm/toolbar/root/ToolbarRoot.d.ts +7 -1
- package/esm/toolbar/separator/ToolbarSeparator.d.ts +4 -2
- package/esm/tooltip/arrow/TooltipArrow.d.ts +13 -1
- package/esm/tooltip/popup/TooltipPopup.d.ts +13 -1
- package/esm/tooltip/portal/TooltipPortal.d.ts +3 -4
- package/esm/tooltip/positioner/TooltipPositioner.d.ts +11 -2
- package/esm/tooltip/provider/TooltipProvider.d.ts +2 -0
- package/esm/tooltip/root/TooltipRoot.d.ts +3 -3
- package/esm/tooltip/root/TooltipRoot.js +1 -1
- package/esm/tooltip/store/TooltipStore.d.ts +2 -0
- package/esm/tooltip/store/TooltipStore.js +2 -0
- package/esm/tooltip/trigger/TooltipTrigger.d.ts +6 -1
- package/esm/tooltip/trigger/TooltipTrigger.js +5 -0
- package/esm/tooltip/viewport/TooltipViewport.d.ts +16 -12
- package/esm/types/index.d.ts +16 -1
- package/esm/unstable-use-media-query/index.d.ts +2 -0
- package/esm/use-button/useButton.d.ts +8 -5
- package/esm/use-button/useButton.js +49 -20
- package/esm/use-render/useRender.d.ts +7 -5
- package/esm/utils/FloatingPortalLite.d.ts +4 -2
- package/esm/utils/InternalBackdrop.d.ts +3 -1
- package/esm/utils/closePart.d.ts +16 -0
- package/esm/utils/closePart.js +40 -0
- package/esm/utils/constants.d.ts +4 -0
- package/esm/utils/constants.js +4 -0
- package/esm/utils/createBaseUIEventDetails.d.ts +1 -1
- package/esm/utils/getElementAtPoint.d.ts +1 -0
- package/esm/utils/getElementAtPoint.js +3 -0
- package/esm/utils/resolveAriaLabelledBy.d.ts +2 -0
- package/esm/utils/resolveAriaLabelledBy.js +8 -0
- package/esm/utils/resolveValueLabel.d.ts +4 -4
- package/esm/utils/resolveValueLabel.js +7 -5
- package/esm/utils/types.d.ts +7 -20
- package/esm/utils/useAnchorPositioning.d.ts +53 -18
- package/esm/utils/useAnchorPositioning.js +15 -6
- package/esm/utils/useFocusableWhenDisabled.d.ts +2 -5
- package/esm/utils/useMixedToggleClickHandler.d.ts +2 -4
- package/esm/utils/useOpenChangeComplete.d.ts +2 -4
- package/esm/utils/useOpenInteractionType.d.ts +0 -1
- package/esm/utils/useOpenInteractionType.js +7 -5
- package/esm/utils/usePopupAutoResize.js +1 -2
- package/esm/utils/usePopupViewport.js +11 -8
- package/esm/utils/useRegisteredLabelId.d.ts +1 -0
- package/esm/utils/useRegisteredLabelId.js +14 -0
- package/esm/utils/useRenderElement.d.ts +6 -9
- package/esm/utils/useRenderElement.js +15 -0
- package/esm/utils/useSwipeDismiss.d.ts +91 -92
- package/esm/utils/useSwipeDismiss.js +2 -1
- package/field/control/FieldControl.d.ts +3 -3
- package/field/description/FieldDescription.d.ts +3 -3
- package/field/error/FieldError.d.ts +7 -4
- package/field/error/FieldErrorDataAttributes.d.ts +8 -0
- package/field/error/FieldErrorDataAttributes.js +10 -1
- package/field/item/FieldItem.d.ts +4 -3
- package/field/item/FieldItem.js +2 -2
- package/field/label/FieldLabel.d.ts +3 -3
- package/field/label/FieldLabel.js +6 -51
- package/field/root/FieldRoot.d.ts +19 -2
- package/field/root/FieldRoot.js +2 -1
- package/field/root/FieldRootContext.d.ts +2 -2
- package/field/root/FieldRootContext.js +5 -12
- package/field/root/useFieldValidation.js +5 -4
- package/field/utils/constants.d.ts +3 -0
- package/field/utils/constants.js +12 -1
- package/field/validity/FieldValidity.d.ts +7 -1
- package/fieldset/legend/FieldsetLegend.d.ts +1 -1
- package/fieldset/root/FieldsetRoot.d.ts +1 -1
- package/floating-ui-react/components/FloatingDelayGroup.js +2 -2
- package/floating-ui-react/components/FloatingFocusManager.d.ts +12 -7
- package/floating-ui-react/components/FloatingFocusManager.js +29 -25
- package/floating-ui-react/components/FloatingPortal.d.ts +6 -4
- package/floating-ui-react/hooks/useClick.d.ts +2 -2
- package/floating-ui-react/hooks/useClientPoint.d.ts +1 -1
- package/floating-ui-react/hooks/useDismiss.d.ts +8 -12
- package/floating-ui-react/hooks/useDismiss.js +319 -260
- package/floating-ui-react/hooks/useFloatingRootContext.d.ts +2 -2
- package/floating-ui-react/hooks/useFocus.d.ts +1 -1
- package/floating-ui-react/hooks/useHover.d.ts +6 -14
- package/floating-ui-react/hooks/useHover.js +6 -32
- package/floating-ui-react/hooks/useHoverFloatingInteraction.d.ts +2 -3
- package/floating-ui-react/hooks/useHoverFloatingInteraction.js +53 -70
- package/floating-ui-react/hooks/useHoverInteractionSharedState.d.ts +12 -3
- package/floating-ui-react/hooks/useHoverInteractionSharedState.js +32 -4
- package/floating-ui-react/hooks/useHoverReferenceInteraction.d.ts +8 -3
- package/floating-ui-react/hooks/useHoverReferenceInteraction.js +60 -82
- package/floating-ui-react/hooks/useHoverShared.d.ts +28 -0
- package/floating-ui-react/hooks/useHoverShared.js +34 -0
- package/floating-ui-react/hooks/useListNavigation.d.ts +4 -4
- package/floating-ui-react/hooks/useListNavigation.js +7 -3
- package/floating-ui-react/hooks/useRole.d.ts +1 -1
- package/floating-ui-react/hooks/useTypeahead.d.ts +7 -1
- package/floating-ui-react/hooks/useTypeahead.js +29 -13
- package/floating-ui-react/safePolygon.d.ts +2 -6
- package/floating-ui-react/safePolygon.js +149 -119
- package/floating-ui-react/types.d.ts +5 -4
- package/floating-ui-react/utils/composite.d.ts +1 -0
- package/floating-ui-react/utils/composite.js +129 -129
- package/floating-ui-react/utils/markOthers.d.ts +7 -1
- package/floating-ui-react/utils/markOthers.js +118 -80
- package/form/Form.d.ts +1 -1
- package/global.d.ts +1 -1
- package/index.js +1 -1
- package/input/Input.d.ts +10 -3
- package/labelable-provider/LabelableProvider.d.ts +4 -1
- package/labelable-provider/LabelableProvider.js +3 -2
- package/labelable-provider/useAriaLabelledBy.d.ts +9 -0
- package/labelable-provider/useAriaLabelledBy.js +61 -0
- package/labelable-provider/useLabel.d.ts +25 -0
- package/labelable-provider/useLabel.js +80 -0
- package/labelable-provider/useLabelableId.d.ts +2 -5
- package/menu/arrow/MenuArrow.d.ts +10 -1
- package/menu/backdrop/MenuBackdrop.d.ts +4 -1
- package/menu/checkbox-item/MenuCheckboxItem.d.ts +3 -3
- package/menu/checkbox-item-indicator/MenuCheckboxItemIndicator.d.ts +7 -1
- package/menu/group/MenuGroup.d.ts +1 -1
- package/menu/group-label/MenuGroupLabel.d.ts +1 -1
- package/menu/index.d.ts +2 -1
- package/menu/index.parts.d.ts +1 -0
- package/menu/index.parts.js +7 -0
- package/menu/item/MenuItem.d.ts +1 -1
- package/menu/item/useMenuItem.d.ts +8 -7
- package/menu/item/useMenuItem.js +5 -7
- package/menu/item/useMenuItemCommonProps.d.ts +7 -4
- package/menu/item/useMenuItemCommonProps.js +16 -2
- package/menu/link-item/MenuLinkItem.d.ts +1 -1
- package/menu/link-item/MenuLinkItem.js +16 -2
- package/menu/popup/MenuPopup.d.ts +20 -5
- package/menu/popup/MenuPopup.js +4 -1
- package/menu/popup/MenuPopupDataAttributes.d.ts +1 -1
- package/menu/popup/MenuPopupDataAttributes.js +1 -1
- package/menu/portal/MenuPortal.d.ts +3 -4
- package/menu/positioner/MenuPositioner.d.ts +18 -2
- package/menu/positioner/MenuPositioner.js +56 -4
- package/menu/radio-group/MenuRadioGroup.d.ts +6 -3
- package/menu/radio-item/MenuRadioItem.d.ts +3 -3
- package/menu/radio-item-indicator/MenuRadioItemIndicator.d.ts +7 -1
- package/menu/root/MenuRoot.d.ts +4 -2
- package/menu/root/MenuRoot.js +2 -3
- package/menu/store/MenuStore.d.ts +4 -2
- package/menu/store/MenuStore.js +15 -1
- package/menu/submenu-trigger/MenuSubmenuTrigger.js +1 -0
- package/menu/trigger/MenuTrigger.d.ts +3 -3
- package/menu/viewport/MenuViewport.d.ts +30 -0
- package/menu/viewport/MenuViewport.js +66 -0
- package/menu/viewport/MenuViewportCssVars.d.ts +14 -0
- package/menu/viewport/MenuViewportCssVars.js +21 -0
- package/menu/viewport/MenuViewportDataAttributes.d.ts +26 -0
- package/menu/viewport/MenuViewportDataAttributes.js +33 -0
- package/menubar/Menubar.d.ts +1 -1
- package/menubar/Menubar.js +1 -7
- package/meter/indicator/MeterIndicator.d.ts +4 -2
- package/meter/label/MeterLabel.d.ts +4 -2
- package/meter/label/MeterLabel.js +4 -8
- package/meter/root/MeterRoot.d.ts +1 -1
- package/meter/root/MeterRoot.js +10 -1
- package/meter/track/MeterTrack.d.ts +4 -2
- package/meter/value/MeterValue.d.ts +5 -3
- package/navigation-menu/arrow/NavigationMenuArrow.d.ts +10 -1
- package/navigation-menu/backdrop/NavigationMenuBackdrop.d.ts +1 -1
- package/navigation-menu/content/NavigationMenuContent.d.ts +1 -1
- package/navigation-menu/content/NavigationMenuContent.js +11 -0
- package/navigation-menu/icon/NavigationMenuIcon.d.ts +1 -1
- package/navigation-menu/item/NavigationMenuItem.d.ts +1 -1
- package/navigation-menu/link/NavigationMenuLink.d.ts +1 -1
- package/navigation-menu/list/NavigationMenuList.d.ts +1 -1
- package/navigation-menu/list/NavigationMenuList.js +10 -1
- package/navigation-menu/popup/NavigationMenuPopup.d.ts +1 -1
- package/navigation-menu/portal/NavigationMenuPortal.d.ts +4 -5
- package/navigation-menu/positioner/NavigationMenuPositioner.d.ts +11 -2
- package/navigation-menu/root/NavigationMenuRoot.d.ts +4 -4
- package/navigation-menu/root/NavigationMenuRoot.js +26 -7
- package/navigation-menu/trigger/NavigationMenuTrigger.d.ts +1 -1
- package/navigation-menu/trigger/NavigationMenuTrigger.js +362 -17
- package/navigation-menu/utils/isOutsideMenuEvent.d.ts +1 -1
- package/navigation-menu/viewport/NavigationMenuViewport.d.ts +1 -1
- package/navigation-menu/viewport/NavigationMenuViewport.js +0 -19
- package/number-field/decrement/NumberFieldDecrement.d.ts +3 -3
- package/number-field/group/NumberFieldGroup.d.ts +3 -3
- package/number-field/increment/NumberFieldIncrement.d.ts +3 -3
- package/number-field/input/NumberFieldInput.d.ts +3 -3
- package/number-field/root/NumberFieldRoot.d.ts +4 -4
- package/number-field/root/NumberFieldRoot.js +1 -1
- package/number-field/root/NumberFieldRootContext.d.ts +2 -2
- package/number-field/root/useNumberFieldButton.d.ts +2 -5
- package/number-field/scrub-area/NumberFieldScrubArea.d.ts +4 -4
- package/number-field/scrub-area-cursor/NumberFieldScrubAreaCursor.d.ts +3 -3
- package/number-field/utils/stateAttributesMapping.d.ts +2 -2
- package/number-field/utils/types.d.ts +2 -2
- package/package.json +183 -7
- package/popover/arrow/PopoverArrow.d.ts +10 -1
- package/popover/backdrop/PopoverBackdrop.d.ts +4 -1
- package/popover/close/PopoverClose.d.ts +1 -1
- package/popover/close/PopoverClose.js +5 -3
- package/popover/description/PopoverDescription.d.ts +1 -1
- package/popover/popup/PopoverPopup.d.ts +15 -3
- package/popover/popup/PopoverPopup.js +11 -2
- package/popover/portal/PopoverPortal.d.ts +3 -4
- package/popover/positioner/PopoverPositioner.d.ts +11 -2
- package/popover/root/PopoverRoot.d.ts +10 -3
- package/popover/root/PopoverRoot.js +1 -3
- package/popover/title/PopoverTitle.d.ts +1 -1
- package/popover/viewport/PopoverViewport.d.ts +16 -12
- package/preview-card/arrow/PreviewCardArrow.d.ts +10 -1
- package/preview-card/backdrop/PreviewCardBackdrop.d.ts +4 -1
- package/preview-card/popup/PreviewCardPopup.d.ts +13 -1
- package/preview-card/portal/PreviewCardPortal.d.ts +3 -4
- package/preview-card/positioner/PreviewCardPositioner.d.ts +14 -2
- package/preview-card/positioner/PreviewCardPositioner.js +7 -1
- package/preview-card/root/PreviewCardRoot.d.ts +3 -3
- package/preview-card/root/PreviewCardRoot.js +20 -7
- package/preview-card/trigger/PreviewCardTrigger.d.ts +1 -1
- package/preview-card/viewport/PreviewCardViewport.d.ts +16 -9
- package/progress/indicator/ProgressIndicator.d.ts +4 -2
- package/progress/label/ProgressLabel.d.ts +4 -2
- package/progress/label/ProgressLabel.js +4 -8
- package/progress/root/ProgressRoot.d.ts +4 -1
- package/progress/root/ProgressRoot.js +10 -1
- package/progress/root/ProgressRootContext.d.ts +2 -2
- package/progress/root/stateAttributesMapping.d.ts +2 -2
- package/progress/track/ProgressTrack.d.ts +4 -2
- package/progress/value/ProgressValue.d.ts +5 -3
- package/radio/indicator/RadioIndicator.d.ts +4 -1
- package/radio/indicator/RadioIndicatorDataAttributes.d.ts +8 -0
- package/radio/indicator/RadioIndicatorDataAttributes.js +10 -1
- package/radio/root/RadioRoot.d.ts +3 -3
- package/radio/root/RadioRoot.js +4 -1
- package/radio-group/RadioGroup.d.ts +3 -3
- package/scroll-area/content/ScrollAreaContent.d.ts +3 -3
- package/scroll-area/corner/ScrollAreaCorner.d.ts +1 -1
- package/scroll-area/root/ScrollAreaRoot.d.ts +27 -11
- package/scroll-area/root/ScrollAreaRoot.js +7 -4
- package/scroll-area/root/ScrollAreaRootContext.d.ts +4 -2
- package/scroll-area/root/stateAttributes.d.ts +2 -2
- package/scroll-area/scrollbar/ScrollAreaScrollbar.d.ts +13 -7
- package/scroll-area/scrollbar/ScrollAreaScrollbar.js +4 -1
- package/scroll-area/thumb/ScrollAreaThumb.d.ts +5 -2
- package/scroll-area/thumb/ScrollAreaThumb.js +3 -1
- package/scroll-area/viewport/ScrollAreaViewport.d.ts +3 -3
- package/scroll-area/viewport/ScrollAreaViewport.js +46 -27
- package/select/arrow/SelectArrow.d.ts +10 -1
- package/select/backdrop/SelectBackdrop.d.ts +7 -1
- package/select/group/SelectGroup.d.ts +1 -1
- package/select/group-label/SelectGroupLabel.d.ts +1 -1
- package/select/icon/SelectIcon.d.ts +1 -1
- package/select/index.d.ts +1 -0
- package/select/index.parts.d.ts +1 -0
- package/select/index.parts.js +7 -0
- package/select/item/SelectItem.d.ts +1 -1
- package/select/item/SelectItem.js +10 -4
- package/select/item-indicator/SelectItemIndicator.d.ts +10 -2
- package/select/item-indicator/SelectItemIndicatorDataAttributes.d.ts +10 -0
- package/select/item-indicator/SelectItemIndicatorDataAttributes.js +18 -0
- package/select/item-text/SelectItemText.d.ts +1 -1
- package/select/label/SelectLabel.d.ts +16 -0
- package/select/label/SelectLabel.js +54 -0
- package/select/list/SelectList.d.ts +1 -1
- package/select/popup/SelectPopup.d.ts +14 -2
- package/select/popup/SelectPopup.js +26 -12
- package/select/portal/SelectPortal.d.ts +3 -4
- package/select/positioner/SelectPositioner.d.ts +14 -2
- package/select/positioner/SelectPositionerContext.d.ts +2 -2
- package/select/root/SelectRoot.d.ts +5 -4
- package/select/root/SelectRoot.js +5 -6
- package/select/scroll-arrow/SelectScrollArrow.d.ts +13 -1
- package/select/scroll-down-arrow/SelectScrollDownArrow.d.ts +1 -1
- package/select/scroll-up-arrow/SelectScrollUpArrow.d.ts +1 -1
- package/select/store.d.ts +5 -2
- package/select/store.js +1 -0
- package/select/trigger/SelectTrigger.d.ts +6 -4
- package/select/trigger/SelectTrigger.js +5 -2
- package/select/value/SelectValue.d.ts +1 -1
- package/separator/Separator.d.ts +1 -1
- package/slider/control/SliderControl.d.ts +4 -3
- package/slider/control/SliderControl.js +0 -2
- package/slider/index.d.ts +1 -0
- package/slider/index.parts.d.ts +1 -0
- package/slider/index.parts.js +7 -0
- package/slider/indicator/SliderIndicator.d.ts +4 -2
- package/slider/label/SliderLabel.d.ts +16 -0
- package/slider/label/SliderLabel.js +63 -0
- package/slider/root/SliderRoot.d.ts +11 -5
- package/slider/root/SliderRoot.js +8 -3
- package/slider/root/SliderRootContext.d.ts +4 -2
- package/slider/root/stateAttributesMapping.d.ts +2 -2
- package/slider/thumb/SliderThumb.d.ts +5 -5
- package/slider/thumb/SliderThumb.js +3 -2
- package/slider/track/SliderTrack.d.ts +4 -2
- package/slider/utils/resolveThumbCollision.d.ts +2 -2
- package/slider/value/SliderValue.d.ts +5 -3
- package/switch/root/SwitchRoot.d.ts +3 -3
- package/switch/root/SwitchRoot.js +4 -1
- package/switch/root/SwitchRootContext.d.ts +4 -4
- package/switch/stateAttributesMapping.d.ts +2 -2
- package/switch/thumb/SwitchThumb.d.ts +3 -3
- package/tabs/indicator/TabsIndicator.d.ts +12 -3
- package/tabs/indicator/TabsIndicator.js +5 -14
- package/tabs/indicator/TabsIndicatorCssVars.d.ts +1 -1
- package/tabs/indicator/TabsIndicatorCssVars.js +1 -1
- package/tabs/list/TabsList.d.ts +3 -3
- package/tabs/list/TabsList.js +48 -3
- package/tabs/list/TabsListContext.d.ts +2 -0
- package/tabs/panel/TabsPanel.d.ts +9 -3
- package/tabs/panel/TabsPanelDataAttributes.d.ts +8 -0
- package/tabs/panel/TabsPanelDataAttributes.js +10 -1
- package/tabs/root/TabsRoot.d.ts +7 -1
- package/tabs/root/TabsRootContext.d.ts +1 -1
- package/tabs/root/stateAttributesMapping.d.ts +2 -2
- package/tabs/tab/TabsTab.d.ts +7 -1
- package/tabs/tab/TabsTab.js +10 -1
- package/toast/action/ToastAction.d.ts +1 -1
- package/toast/arrow/ToastArrow.d.ts +10 -1
- package/toast/close/ToastClose.d.ts +1 -1
- package/toast/content/ToastContent.d.ts +1 -1
- package/toast/createToastManager.d.ts +1 -1
- package/toast/description/ToastDescription.d.ts +1 -1
- package/toast/portal/ToastPortal.d.ts +3 -4
- package/toast/positioner/ToastPositioner.d.ts +12 -3
- package/toast/provider/ToastProvider.d.ts +2 -0
- package/toast/provider/ToastProvider.js +1 -1
- package/toast/root/ToastRoot.d.ts +20 -7
- package/toast/root/ToastRoot.js +3 -1
- package/toast/store.d.ts +1 -1
- package/toast/store.js +37 -8
- package/toast/title/ToastTitle.d.ts +1 -1
- package/toast/useToastManager.d.ts +3 -3
- package/toast/viewport/ToastViewport.d.ts +1 -1
- package/toggle/Toggle.d.ts +1 -1
- package/toggle-group/ToggleGroup.d.ts +1 -1
- package/toolbar/button/ToolbarButton.d.ts +9 -3
- package/toolbar/group/ToolbarGroup.d.ts +4 -2
- package/toolbar/input/ToolbarInput.d.ts +9 -3
- package/toolbar/link/ToolbarLink.d.ts +4 -1
- package/toolbar/root/ToolbarRoot.d.ts +7 -1
- package/toolbar/separator/ToolbarSeparator.d.ts +4 -2
- package/tooltip/arrow/TooltipArrow.d.ts +13 -1
- package/tooltip/popup/TooltipPopup.d.ts +13 -1
- package/tooltip/portal/TooltipPortal.d.ts +3 -4
- package/tooltip/positioner/TooltipPositioner.d.ts +11 -2
- package/tooltip/provider/TooltipProvider.d.ts +2 -0
- package/tooltip/root/TooltipRoot.d.ts +3 -3
- package/tooltip/root/TooltipRoot.js +1 -1
- package/tooltip/store/TooltipStore.d.ts +2 -0
- package/tooltip/store/TooltipStore.js +2 -0
- package/tooltip/trigger/TooltipTrigger.d.ts +6 -1
- package/tooltip/trigger/TooltipTrigger.js +5 -0
- package/tooltip/viewport/TooltipViewport.d.ts +16 -12
- package/types/index.d.ts +16 -1
- package/unstable-use-media-query/index.d.ts +2 -0
- package/use-button/useButton.d.ts +8 -5
- package/use-button/useButton.js +49 -20
- package/use-render/useRender.d.ts +7 -5
- package/utils/FloatingPortalLite.d.ts +4 -2
- package/utils/InternalBackdrop.d.ts +3 -1
- package/utils/closePart.d.ts +16 -0
- package/utils/closePart.js +48 -0
- package/utils/constants.d.ts +4 -0
- package/utils/constants.js +6 -2
- package/utils/createBaseUIEventDetails.d.ts +1 -1
- package/utils/getElementAtPoint.d.ts +1 -0
- package/utils/getElementAtPoint.js +9 -0
- package/utils/resolveAriaLabelledBy.d.ts +2 -0
- package/utils/resolveAriaLabelledBy.js +14 -0
- package/utils/resolveValueLabel.d.ts +4 -4
- package/utils/resolveValueLabel.js +7 -5
- package/utils/types.d.ts +7 -20
- package/utils/useAnchorPositioning.d.ts +53 -18
- package/utils/useAnchorPositioning.js +15 -6
- package/utils/useFocusableWhenDisabled.d.ts +2 -5
- package/utils/useMixedToggleClickHandler.d.ts +2 -4
- package/utils/useOpenChangeComplete.d.ts +2 -4
- package/utils/useOpenInteractionType.d.ts +0 -1
- package/utils/useOpenInteractionType.js +7 -5
- package/utils/usePopupAutoResize.js +1 -2
- package/utils/usePopupViewport.js +11 -8
- package/utils/useRegisteredLabelId.d.ts +1 -0
- package/utils/useRegisteredLabelId.js +19 -0
- package/utils/useRenderElement.d.ts +6 -9
- package/utils/useRenderElement.js +15 -0
- package/utils/useSwipeDismiss.d.ts +91 -92
- package/utils/useSwipeDismiss.js +2 -1
- package/esm/navigation-menu/utils/setFixedSize.d.ts +0 -1
- package/esm/navigation-menu/utils/setFixedSize.js +0 -11
- package/navigation-menu/utils/setFixedSize.d.ts +0 -1
- package/navigation-menu/utils/setFixedSize.js +0 -17
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import type { BaseUIComponentProps } from "../../utils/types.js";
|
|
3
|
-
import type {
|
|
3
|
+
import type { ScrollAreaRootState } from "../root/ScrollAreaRoot.js";
|
|
4
4
|
/**
|
|
5
5
|
* A vertical or horizontal scrollbar for the scroll area.
|
|
6
6
|
* Renders a `<div>` element.
|
|
@@ -8,20 +8,26 @@ import type { ScrollAreaRoot } from "../root/ScrollAreaRoot.js";
|
|
|
8
8
|
* Documentation: [Base UI Scroll Area](https://base-ui.com/react/components/scroll-area)
|
|
9
9
|
*/
|
|
10
10
|
export declare const ScrollAreaScrollbar: React.ForwardRefExoticComponent<Omit<ScrollAreaScrollbarProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
11
|
-
export interface ScrollAreaScrollbarState extends
|
|
12
|
-
/**
|
|
11
|
+
export interface ScrollAreaScrollbarState extends ScrollAreaRootState {
|
|
12
|
+
/**
|
|
13
|
+
* Whether the scroll area is being hovered.
|
|
14
|
+
*/
|
|
13
15
|
hovering: boolean;
|
|
14
|
-
/**
|
|
16
|
+
/**
|
|
17
|
+
* Whether the scroll area is being scrolled.
|
|
18
|
+
*/
|
|
15
19
|
scrolling: boolean;
|
|
16
|
-
/**
|
|
20
|
+
/**
|
|
21
|
+
* The orientation of the scrollbar.
|
|
22
|
+
*/
|
|
17
23
|
orientation: 'vertical' | 'horizontal';
|
|
18
24
|
}
|
|
19
|
-
export interface ScrollAreaScrollbarProps extends BaseUIComponentProps<'div',
|
|
25
|
+
export interface ScrollAreaScrollbarProps extends BaseUIComponentProps<'div', ScrollAreaScrollbarState> {
|
|
20
26
|
/**
|
|
21
27
|
* Whether the scrollbar controls vertical or horizontal scroll.
|
|
22
28
|
* @default 'vertical'
|
|
23
29
|
*/
|
|
24
|
-
orientation?:
|
|
30
|
+
orientation?: 'vertical' | 'horizontal' | undefined;
|
|
25
31
|
/**
|
|
26
32
|
* Whether to keep the HTML element in the DOM when the viewport isn’t scrollable.
|
|
27
33
|
* @default false
|
|
@@ -38,7 +38,8 @@ export const ScrollAreaScrollbar = /*#__PURE__*/React.forwardRef(function Scroll
|
|
|
38
38
|
handlePointerDown,
|
|
39
39
|
handlePointerUp,
|
|
40
40
|
rootId,
|
|
41
|
-
thumbSize
|
|
41
|
+
thumbSize,
|
|
42
|
+
hasMeasuredScrollbar
|
|
42
43
|
} = useScrollAreaRootContext();
|
|
43
44
|
const state = {
|
|
44
45
|
hovering,
|
|
@@ -56,6 +57,7 @@ export const ScrollAreaScrollbar = /*#__PURE__*/React.forwardRef(function Scroll
|
|
|
56
57
|
cornerHidden: hiddenState.corner
|
|
57
58
|
};
|
|
58
59
|
const direction = useDirection();
|
|
60
|
+
const hideTrackUntilMeasured = !hasMeasuredScrollbar && !keepMounted;
|
|
59
61
|
React.useEffect(() => {
|
|
60
62
|
const viewportEl = viewportRef.current;
|
|
61
63
|
const scrollbarEl = orientation === 'vertical' ? scrollbarYRef.current : scrollbarXRef.current;
|
|
@@ -157,6 +159,7 @@ export const ScrollAreaScrollbar = /*#__PURE__*/React.forwardRef(function Scroll
|
|
|
157
159
|
touchAction: 'none',
|
|
158
160
|
WebkitUserSelect: 'none',
|
|
159
161
|
userSelect: 'none',
|
|
162
|
+
visibility: hideTrackUntilMeasured ? 'hidden' : undefined,
|
|
160
163
|
...(orientation === 'vertical' && {
|
|
161
164
|
top: 0,
|
|
162
165
|
bottom: `var(${ScrollAreaRootCssVars.scrollAreaCornerHeight})`,
|
|
@@ -8,9 +8,12 @@ import type { BaseUIComponentProps } from "../../utils/types.js";
|
|
|
8
8
|
*/
|
|
9
9
|
export declare const ScrollAreaThumb: React.ForwardRefExoticComponent<Omit<ScrollAreaThumbProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
10
10
|
export interface ScrollAreaThumbState {
|
|
11
|
-
|
|
11
|
+
/**
|
|
12
|
+
* The component orientation.
|
|
13
|
+
*/
|
|
14
|
+
orientation?: 'horizontal' | 'vertical' | undefined;
|
|
12
15
|
}
|
|
13
|
-
export interface ScrollAreaThumbProps extends BaseUIComponentProps<'div',
|
|
16
|
+
export interface ScrollAreaThumbProps extends BaseUIComponentProps<'div', ScrollAreaThumbState> {}
|
|
14
17
|
export declare namespace ScrollAreaThumb {
|
|
15
18
|
type State = ScrollAreaThumbState;
|
|
16
19
|
type Props = ScrollAreaThumbProps;
|
|
@@ -25,7 +25,8 @@ export const ScrollAreaThumb = /*#__PURE__*/React.forwardRef(function ScrollArea
|
|
|
25
25
|
handlePointerMove,
|
|
26
26
|
handlePointerUp,
|
|
27
27
|
setScrollingX,
|
|
28
|
-
setScrollingY
|
|
28
|
+
setScrollingY,
|
|
29
|
+
hasMeasuredScrollbar
|
|
29
30
|
} = useScrollAreaRootContext();
|
|
30
31
|
const {
|
|
31
32
|
orientation
|
|
@@ -49,6 +50,7 @@ export const ScrollAreaThumb = /*#__PURE__*/React.forwardRef(function ScrollArea
|
|
|
49
50
|
handlePointerUp(event);
|
|
50
51
|
},
|
|
51
52
|
style: {
|
|
53
|
+
visibility: hasMeasuredScrollbar ? undefined : 'hidden',
|
|
52
54
|
...(orientation === 'vertical' && {
|
|
53
55
|
height: `var(${ScrollAreaScrollbarCssVars.scrollAreaThumbHeight})`
|
|
54
56
|
}),
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import type { BaseUIComponentProps } from "../../utils/types.js";
|
|
3
|
-
import type {
|
|
3
|
+
import type { ScrollAreaRootState } from "../root/ScrollAreaRoot.js";
|
|
4
4
|
/**
|
|
5
5
|
* The actual scrollable container of the scroll area.
|
|
6
6
|
* Renders a `<div>` element.
|
|
@@ -8,8 +8,8 @@ import type { ScrollAreaRoot } from "../root/ScrollAreaRoot.js";
|
|
|
8
8
|
* Documentation: [Base UI Scroll Area](https://base-ui.com/react/components/scroll-area)
|
|
9
9
|
*/
|
|
10
10
|
export declare const ScrollAreaViewport: React.ForwardRefExoticComponent<Omit<ScrollAreaViewportProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
11
|
-
export interface ScrollAreaViewportProps extends BaseUIComponentProps<'div',
|
|
12
|
-
export interface ScrollAreaViewportState extends
|
|
11
|
+
export interface ScrollAreaViewportProps extends BaseUIComponentProps<'div', ScrollAreaViewportState> {}
|
|
12
|
+
export interface ScrollAreaViewportState extends ScrollAreaRootState {}
|
|
13
13
|
export declare namespace ScrollAreaViewport {
|
|
14
14
|
type Props = ScrollAreaViewportProps;
|
|
15
15
|
type State = ScrollAreaViewportState;
|
|
@@ -22,6 +22,7 @@ import { normalizeScrollOffset } from "../utils/scrollEdges.js";
|
|
|
22
22
|
// regardless of how many Scroll Area components are mounted.
|
|
23
23
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
24
24
|
let scrollAreaOverflowVarsRegistered = false;
|
|
25
|
+
const HAS_RESIZE_OBSERVER = typeof ResizeObserver !== 'undefined';
|
|
25
26
|
|
|
26
27
|
/**
|
|
27
28
|
* Removes inheritance of the scroll area overflow CSS variables, which
|
|
@@ -80,6 +81,7 @@ export const ScrollAreaViewport = /*#__PURE__*/React.forwardRef(function ScrollA
|
|
|
80
81
|
rootId,
|
|
81
82
|
setHiddenState,
|
|
82
83
|
hiddenState,
|
|
84
|
+
setHasMeasuredScrollbar,
|
|
83
85
|
handleScroll,
|
|
84
86
|
setHovering,
|
|
85
87
|
setOverflowEdges,
|
|
@@ -90,6 +92,7 @@ export const ScrollAreaViewport = /*#__PURE__*/React.forwardRef(function ScrollA
|
|
|
90
92
|
} = useScrollAreaRootContext();
|
|
91
93
|
const direction = useDirection();
|
|
92
94
|
const programmaticScrollRef = React.useRef(true);
|
|
95
|
+
const lastMeasuredViewportMetricsRef = React.useRef([NaN, NaN, NaN, NaN]);
|
|
93
96
|
const scrollEndTimeout = useTimeout();
|
|
94
97
|
const waitForAnimationsTimeout = useTimeout();
|
|
95
98
|
const computeThumbPosition = useStableCallback(() => {
|
|
@@ -108,11 +111,21 @@ export const ScrollAreaViewport = /*#__PURE__*/React.forwardRef(function ScrollA
|
|
|
108
111
|
const viewportWidth = viewportEl.clientWidth;
|
|
109
112
|
const scrollTop = viewportEl.scrollTop;
|
|
110
113
|
const scrollLeft = viewportEl.scrollLeft;
|
|
114
|
+
const lastMeasuredViewportMetrics = lastMeasuredViewportMetricsRef.current;
|
|
115
|
+
const isFirstMeasurement = Number.isNaN(lastMeasuredViewportMetrics[0]);
|
|
116
|
+
lastMeasuredViewportMetrics[0] = viewportHeight;
|
|
117
|
+
lastMeasuredViewportMetrics[1] = scrollableContentHeight;
|
|
118
|
+
lastMeasuredViewportMetrics[2] = viewportWidth;
|
|
119
|
+
lastMeasuredViewportMetrics[3] = scrollableContentWidth;
|
|
120
|
+
if (isFirstMeasurement) {
|
|
121
|
+
setHasMeasuredScrollbar(true);
|
|
122
|
+
}
|
|
111
123
|
if (scrollableContentHeight === 0 || scrollableContentWidth === 0) {
|
|
112
124
|
return;
|
|
113
125
|
}
|
|
114
|
-
const
|
|
115
|
-
const
|
|
126
|
+
const nextHiddenState = getHiddenState(viewportEl);
|
|
127
|
+
const scrollbarYHidden = nextHiddenState.y;
|
|
128
|
+
const scrollbarXHidden = nextHiddenState.x;
|
|
116
129
|
const ratioX = viewportWidth / scrollableContentWidth;
|
|
117
130
|
const ratioY = viewportHeight / scrollableContentHeight;
|
|
118
131
|
const maxScrollLeft = Math.max(0, scrollableContentWidth - viewportWidth);
|
|
@@ -206,17 +219,7 @@ export const ScrollAreaViewport = /*#__PURE__*/React.forwardRef(function ScrollA
|
|
|
206
219
|
});
|
|
207
220
|
}
|
|
208
221
|
}
|
|
209
|
-
setHiddenState(prevState =>
|
|
210
|
-
const cornerHidden = scrollbarYHidden || scrollbarXHidden;
|
|
211
|
-
if (prevState.y === scrollbarYHidden && prevState.x === scrollbarXHidden && prevState.corner === cornerHidden) {
|
|
212
|
-
return prevState;
|
|
213
|
-
}
|
|
214
|
-
return {
|
|
215
|
-
y: scrollbarYHidden,
|
|
216
|
-
x: scrollbarXHidden,
|
|
217
|
-
corner: cornerHidden
|
|
218
|
-
};
|
|
219
|
-
});
|
|
222
|
+
setHiddenState(prevState => mergeHiddenState(prevState, nextHiddenState));
|
|
220
223
|
const nextOverflowEdges = {
|
|
221
224
|
xStart: !scrollbarXHidden && scrollLeftFromStart > overflowEdgeThreshold.xStart,
|
|
222
225
|
xEnd: !scrollbarXHidden && scrollLeftFromEnd > overflowEdgeThreshold.xEnd,
|
|
@@ -235,17 +238,15 @@ export const ScrollAreaViewport = /*#__PURE__*/React.forwardRef(function ScrollA
|
|
|
235
238
|
return undefined;
|
|
236
239
|
}
|
|
237
240
|
removeCSSVariableInheritance();
|
|
238
|
-
|
|
241
|
+
if (HAS_RESIZE_OBSERVER) {
|
|
242
|
+
return undefined;
|
|
243
|
+
}
|
|
239
244
|
return onVisible(viewportRef.current, () => {
|
|
240
|
-
if (!hasInitialized) {
|
|
241
|
-
hasInitialized = true;
|
|
242
|
-
return;
|
|
243
|
-
}
|
|
244
245
|
computeThumbPosition();
|
|
245
246
|
});
|
|
246
247
|
}, [computeThumbPosition, viewportRef]);
|
|
247
248
|
useIsoLayoutEffect(() => {
|
|
248
|
-
// Wait for scrollbar
|
|
249
|
+
// Wait for scrollbar and thumb refs after hidden-state toggles, and refresh math on direction flips.
|
|
249
250
|
queueMicrotask(computeThumbPosition);
|
|
250
251
|
}, [computeThumbPosition, hiddenState, direction]);
|
|
251
252
|
useIsoLayoutEffect(() => {
|
|
@@ -257,16 +258,20 @@ export const ScrollAreaViewport = /*#__PURE__*/React.forwardRef(function ScrollA
|
|
|
257
258
|
}, [viewportRef, setHovering]);
|
|
258
259
|
React.useEffect(() => {
|
|
259
260
|
const viewport = viewportRef.current;
|
|
260
|
-
if (
|
|
261
|
+
if (!HAS_RESIZE_OBSERVER || !viewport) {
|
|
261
262
|
return undefined;
|
|
262
263
|
}
|
|
263
264
|
let hasInitialized = false;
|
|
264
265
|
const ro = new ResizeObserver(() => {
|
|
265
|
-
//
|
|
266
|
-
//
|
|
266
|
+
// Avoid duplicate mount-time recompute when observer data matches what the mount
|
|
267
|
+
// scheduling pass already measured. If dimensions changed before the first observer
|
|
268
|
+
// delivery, keep the recompute so overflow transitions stay in sync.
|
|
267
269
|
if (!hasInitialized) {
|
|
268
270
|
hasInitialized = true;
|
|
269
|
-
|
|
271
|
+
const lastMeasuredViewportMetrics = lastMeasuredViewportMetricsRef.current;
|
|
272
|
+
if (lastMeasuredViewportMetrics[0] === viewport.clientHeight && lastMeasuredViewportMetrics[1] === viewport.scrollHeight && lastMeasuredViewportMetrics[2] === viewport.clientWidth && lastMeasuredViewportMetrics[3] === viewport.scrollWidth) {
|
|
273
|
+
return;
|
|
274
|
+
}
|
|
270
275
|
}
|
|
271
276
|
computeThumbPosition();
|
|
272
277
|
});
|
|
@@ -302,9 +307,8 @@ export const ScrollAreaViewport = /*#__PURE__*/React.forwardRef(function ScrollA
|
|
|
302
307
|
'data-id': `${rootId}-viewport`
|
|
303
308
|
}),
|
|
304
309
|
// https://accessibilityinsights.io/info-examples/web/scrollable-region-focusable/
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
}),
|
|
310
|
+
// Keep non-scrollable viewports out of tab order.
|
|
311
|
+
tabIndex: hiddenState.x && hiddenState.y ? -1 : 0,
|
|
308
312
|
className: styleDisableScrollbar.className,
|
|
309
313
|
style: {
|
|
310
314
|
overflow: 'scroll'
|
|
@@ -361,4 +365,19 @@ export const ScrollAreaViewport = /*#__PURE__*/React.forwardRef(function ScrollA
|
|
|
361
365
|
children: element
|
|
362
366
|
});
|
|
363
367
|
});
|
|
364
|
-
if (process.env.NODE_ENV !== "production") ScrollAreaViewport.displayName = "ScrollAreaViewport";
|
|
368
|
+
if (process.env.NODE_ENV !== "production") ScrollAreaViewport.displayName = "ScrollAreaViewport";
|
|
369
|
+
function getHiddenState(viewport) {
|
|
370
|
+
const y = viewport.clientHeight >= viewport.scrollHeight;
|
|
371
|
+
const x = viewport.clientWidth >= viewport.scrollWidth;
|
|
372
|
+
return {
|
|
373
|
+
y,
|
|
374
|
+
x,
|
|
375
|
+
corner: y || x
|
|
376
|
+
};
|
|
377
|
+
}
|
|
378
|
+
function mergeHiddenState(prevState, nextState) {
|
|
379
|
+
if (prevState.y === nextState.y && prevState.x === nextState.x && prevState.corner === nextState.corner) {
|
|
380
|
+
return prevState;
|
|
381
|
+
}
|
|
382
|
+
return nextState;
|
|
383
|
+
}
|
|
@@ -13,11 +13,20 @@ export interface SelectArrowState {
|
|
|
13
13
|
* Whether the select popup is currently open.
|
|
14
14
|
*/
|
|
15
15
|
open: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* The side of the anchor the component is placed on.
|
|
18
|
+
*/
|
|
16
19
|
side: Side | 'none';
|
|
20
|
+
/**
|
|
21
|
+
* The alignment of the component relative to the anchor.
|
|
22
|
+
*/
|
|
17
23
|
align: Align;
|
|
24
|
+
/**
|
|
25
|
+
* Whether the arrow cannot be centered on the anchor.
|
|
26
|
+
*/
|
|
18
27
|
uncentered: boolean;
|
|
19
28
|
}
|
|
20
|
-
export interface SelectArrowProps extends BaseUIComponentProps<'div',
|
|
29
|
+
export interface SelectArrowProps extends BaseUIComponentProps<'div', SelectArrowState> {}
|
|
21
30
|
export declare namespace SelectArrow {
|
|
22
31
|
type State = SelectArrowState;
|
|
23
32
|
type Props = SelectArrowProps;
|
|
@@ -9,10 +9,16 @@ import type { TransitionStatus } from "../../utils/useTransitionStatus.js";
|
|
|
9
9
|
*/
|
|
10
10
|
export declare const SelectBackdrop: React.ForwardRefExoticComponent<Omit<SelectBackdropProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
11
11
|
export interface SelectBackdropState {
|
|
12
|
+
/**
|
|
13
|
+
* Whether the component is open.
|
|
14
|
+
*/
|
|
12
15
|
open: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* The transition status of the component.
|
|
18
|
+
*/
|
|
13
19
|
transitionStatus: TransitionStatus;
|
|
14
20
|
}
|
|
15
|
-
export interface SelectBackdropProps extends BaseUIComponentProps<'div',
|
|
21
|
+
export interface SelectBackdropProps extends BaseUIComponentProps<'div', SelectBackdropState> {}
|
|
16
22
|
export declare namespace SelectBackdrop {
|
|
17
23
|
type State = SelectBackdropState;
|
|
18
24
|
type Props = SelectBackdropProps;
|
|
@@ -8,7 +8,7 @@ import type { BaseUIComponentProps } from "../../utils/types.js";
|
|
|
8
8
|
*/
|
|
9
9
|
export declare const SelectGroup: React.ForwardRefExoticComponent<Omit<SelectGroupProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
10
10
|
export interface SelectGroupState {}
|
|
11
|
-
export interface SelectGroupProps extends BaseUIComponentProps<'div',
|
|
11
|
+
export interface SelectGroupProps extends BaseUIComponentProps<'div', SelectGroupState> {}
|
|
12
12
|
export declare namespace SelectGroup {
|
|
13
13
|
type State = SelectGroupState;
|
|
14
14
|
type Props = SelectGroupProps;
|
|
@@ -8,7 +8,7 @@ import type { BaseUIComponentProps } from "../../utils/types.js";
|
|
|
8
8
|
*/
|
|
9
9
|
export declare const SelectGroupLabel: React.ForwardRefExoticComponent<Omit<SelectGroupLabelProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
10
10
|
export interface SelectGroupLabelState {}
|
|
11
|
-
export interface SelectGroupLabelProps extends BaseUIComponentProps<'div',
|
|
11
|
+
export interface SelectGroupLabelProps extends BaseUIComponentProps<'div', SelectGroupLabelState> {}
|
|
12
12
|
export declare namespace SelectGroupLabel {
|
|
13
13
|
type State = SelectGroupLabelState;
|
|
14
14
|
type Props = SelectGroupLabelProps;
|
|
@@ -13,7 +13,7 @@ export interface SelectIconState {
|
|
|
13
13
|
*/
|
|
14
14
|
open: boolean;
|
|
15
15
|
}
|
|
16
|
-
export interface SelectIconProps extends BaseUIComponentProps<'span',
|
|
16
|
+
export interface SelectIconProps extends BaseUIComponentProps<'span', SelectIconState> {}
|
|
17
17
|
export declare namespace SelectIcon {
|
|
18
18
|
type State = SelectIconState;
|
|
19
19
|
type Props = SelectIconProps;
|
package/esm/select/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export * as Select from "./index.parts.js";
|
|
2
2
|
export type * from "./root/SelectRoot.js";
|
|
3
|
+
export type * from "./label/SelectLabel.js";
|
|
3
4
|
export type * from "./trigger/SelectTrigger.js";
|
|
4
5
|
export type * from "./value/SelectValue.js";
|
|
5
6
|
export type * from "./icon/SelectIcon.js";
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { SelectRoot as Root } from "./root/SelectRoot.js";
|
|
2
|
+
export { SelectLabel as Label } from "./label/SelectLabel.js";
|
|
2
3
|
export { SelectTrigger as Trigger } from "./trigger/SelectTrigger.js";
|
|
3
4
|
export { SelectValue as Value } from "./value/SelectValue.js";
|
|
4
5
|
export { SelectIcon as Icon } from "./icon/SelectIcon.js";
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { SelectRoot as Root } from "./root/SelectRoot.js";
|
|
2
|
+
export { SelectLabel as Label } from "./label/SelectLabel.js";
|
|
2
3
|
export { SelectTrigger as Trigger } from "./trigger/SelectTrigger.js";
|
|
3
4
|
export { SelectValue as Value } from "./value/SelectValue.js";
|
|
4
5
|
export { SelectIcon as Icon } from "./icon/SelectIcon.js";
|
|
@@ -21,7 +21,7 @@ export interface SelectItemState {
|
|
|
21
21
|
*/
|
|
22
22
|
highlighted: boolean;
|
|
23
23
|
}
|
|
24
|
-
export interface SelectItemProps extends NonNativeButtonProps, Omit<BaseUIComponentProps<'div',
|
|
24
|
+
export interface SelectItemProps extends NonNativeButtonProps, Omit<BaseUIComponentProps<'div', SelectItemState>, 'id'> {
|
|
25
25
|
children?: React.ReactNode;
|
|
26
26
|
/**
|
|
27
27
|
* A unique value that identifies this select item.
|
|
@@ -106,7 +106,8 @@ export const SelectItem = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(
|
|
|
106
106
|
} = useButton({
|
|
107
107
|
disabled,
|
|
108
108
|
focusableWhenDisabled: true,
|
|
109
|
-
native: nativeButton
|
|
109
|
+
native: nativeButton,
|
|
110
|
+
composite: true
|
|
110
111
|
});
|
|
111
112
|
function commitSelection(event) {
|
|
112
113
|
const selectedValue = store.state.value;
|
|
@@ -155,6 +156,9 @@ export const SelectItem = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(
|
|
|
155
156
|
onKeyDown(event) {
|
|
156
157
|
lastKeyRef.current = event.key;
|
|
157
158
|
store.set('activeIndex', index);
|
|
159
|
+
if (event.key === ' ' && typingRef.current) {
|
|
160
|
+
event.preventDefault();
|
|
161
|
+
}
|
|
158
162
|
},
|
|
159
163
|
onClick(event) {
|
|
160
164
|
didPointerDownRef.current = false;
|
|
@@ -163,7 +167,7 @@ export const SelectItem = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(
|
|
|
163
167
|
if (event.type === 'keydown' && lastKeyRef.current === null) {
|
|
164
168
|
return;
|
|
165
169
|
}
|
|
166
|
-
if (disabled || lastKeyRef.current === ' ' && typingRef.current || pointerTypeRef.current !== 'touch' && !highlighted) {
|
|
170
|
+
if (disabled || event.type === 'keydown' && lastKeyRef.current === ' ' && typingRef.current || pointerTypeRef.current !== 'touch' && !highlighted) {
|
|
167
171
|
return;
|
|
168
172
|
}
|
|
169
173
|
lastKeyRef.current = null;
|
|
@@ -176,10 +180,12 @@ export const SelectItem = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(
|
|
|
176
180
|
pointerTypeRef.current = event.pointerType;
|
|
177
181
|
didPointerDownRef.current = true;
|
|
178
182
|
},
|
|
179
|
-
onMouseUp(
|
|
183
|
+
onMouseUp() {
|
|
180
184
|
if (disabled) {
|
|
181
185
|
return;
|
|
182
186
|
}
|
|
187
|
+
|
|
188
|
+
// Regular click (pointerdown on this element) if didPointerDownRef is set, otherwise drag-to-select
|
|
183
189
|
if (didPointerDownRef.current) {
|
|
184
190
|
didPointerDownRef.current = false;
|
|
185
191
|
return;
|
|
@@ -189,7 +195,7 @@ export const SelectItem = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(
|
|
|
189
195
|
if (disallowSelectedMouseUp || disallowUnselectedMouseUp || pointerTypeRef.current !== 'touch' && !highlighted) {
|
|
190
196
|
return;
|
|
191
197
|
}
|
|
192
|
-
|
|
198
|
+
itemRef.current?.click();
|
|
193
199
|
}
|
|
194
200
|
};
|
|
195
201
|
const element = useRenderElement('div', componentProps, {
|
|
@@ -9,12 +9,20 @@ import { type TransitionStatus } from "../../utils/useTransitionStatus.js";
|
|
|
9
9
|
*/
|
|
10
10
|
export declare const SelectItemIndicator: React.ForwardRefExoticComponent<Omit<SelectItemIndicatorProps, "ref"> & React.RefAttributes<HTMLSpanElement>>;
|
|
11
11
|
export interface SelectItemIndicatorState {
|
|
12
|
+
/**
|
|
13
|
+
* Whether the item is selected.
|
|
14
|
+
*/
|
|
12
15
|
selected: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* The transition status of the component.
|
|
18
|
+
*/
|
|
13
19
|
transitionStatus: TransitionStatus;
|
|
14
20
|
}
|
|
15
|
-
export interface SelectItemIndicatorProps extends BaseUIComponentProps<'span',
|
|
21
|
+
export interface SelectItemIndicatorProps extends BaseUIComponentProps<'span', SelectItemIndicatorState> {
|
|
16
22
|
children?: React.ReactNode;
|
|
17
|
-
/**
|
|
23
|
+
/**
|
|
24
|
+
* Whether to keep the HTML element in the DOM when the item is not selected.
|
|
25
|
+
*/
|
|
18
26
|
keepMounted?: boolean | undefined;
|
|
19
27
|
}
|
|
20
28
|
export declare namespace SelectItemIndicator {
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { TransitionStatusDataAttributes } from "../../utils/stateAttributesMapping.js";
|
|
2
|
+
export let SelectItemIndicatorDataAttributes = function (SelectItemIndicatorDataAttributes) {
|
|
3
|
+
/**
|
|
4
|
+
* Present when the indicator is animating in.
|
|
5
|
+
*/
|
|
6
|
+
SelectItemIndicatorDataAttributes[SelectItemIndicatorDataAttributes["startingStyle"] = TransitionStatusDataAttributes.startingStyle] = "startingStyle";
|
|
7
|
+
/**
|
|
8
|
+
* Present when the indicator is animating out.
|
|
9
|
+
*/
|
|
10
|
+
SelectItemIndicatorDataAttributes[SelectItemIndicatorDataAttributes["endingStyle"] = TransitionStatusDataAttributes.endingStyle] = "endingStyle";
|
|
11
|
+
return SelectItemIndicatorDataAttributes;
|
|
12
|
+
}({});
|
|
@@ -8,7 +8,7 @@ import type { BaseUIComponentProps } from "../../utils/types.js";
|
|
|
8
8
|
*/
|
|
9
9
|
export declare const SelectItemText: React.NamedExoticComponent<Omit<SelectItemTextProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
10
10
|
export interface SelectItemTextState {}
|
|
11
|
-
export interface SelectItemTextProps extends BaseUIComponentProps<'div',
|
|
11
|
+
export interface SelectItemTextProps extends BaseUIComponentProps<'div', SelectItemTextState> {}
|
|
12
12
|
export declare namespace SelectItemText {
|
|
13
13
|
type State = SelectItemTextState;
|
|
14
14
|
type Props = SelectItemTextProps;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import type { BaseUIComponentProps } from "../../utils/types.js";
|
|
3
|
+
import type { FieldRoot } from "../../field/root/FieldRoot.js";
|
|
4
|
+
/**
|
|
5
|
+
* An accessible label that is automatically associated with the select trigger.
|
|
6
|
+
* Renders a `<div>` element.
|
|
7
|
+
*
|
|
8
|
+
* Documentation: [Base UI Select](https://base-ui.com/react/components/select)
|
|
9
|
+
*/
|
|
10
|
+
export declare const SelectLabel: React.ForwardRefExoticComponent<Omit<SelectLabelProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
11
|
+
export type SelectLabelState = FieldRoot.State;
|
|
12
|
+
export interface SelectLabelProps extends Omit<BaseUIComponentProps<'div', SelectLabel.State>, 'id'> {}
|
|
13
|
+
export declare namespace SelectLabel {
|
|
14
|
+
type State = SelectLabelState;
|
|
15
|
+
type Props = SelectLabelProps;
|
|
16
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { useStore } from '@base-ui/utils/store';
|
|
5
|
+
import { useRenderElement } from "../../utils/useRenderElement.js";
|
|
6
|
+
import { useFieldRootContext } from "../../field/root/FieldRootContext.js";
|
|
7
|
+
import { fieldValidityMapping } from "../../field/utils/constants.js";
|
|
8
|
+
import { useLabel } from "../../labelable-provider/useLabel.js";
|
|
9
|
+
import { getDefaultLabelId } from "../../utils/resolveAriaLabelledBy.js";
|
|
10
|
+
import { useSelectRootContext } from "../root/SelectRootContext.js";
|
|
11
|
+
import { selectors } from "../store.js";
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* An accessible label that is automatically associated with the select trigger.
|
|
15
|
+
* Renders a `<div>` element.
|
|
16
|
+
*
|
|
17
|
+
* Documentation: [Base UI Select](https://base-ui.com/react/components/select)
|
|
18
|
+
*/
|
|
19
|
+
export const SelectLabel = /*#__PURE__*/React.forwardRef(function SelectLabel(componentProps, forwardedRef) {
|
|
20
|
+
const {
|
|
21
|
+
render,
|
|
22
|
+
className,
|
|
23
|
+
...elementProps
|
|
24
|
+
} = componentProps;
|
|
25
|
+
// Keep label id derived from the root and ignore runtime `id` overrides from untyped consumers.
|
|
26
|
+
const elementPropsWithoutId = elementProps;
|
|
27
|
+
delete elementPropsWithoutId.id;
|
|
28
|
+
const fieldRootContext = useFieldRootContext();
|
|
29
|
+
const {
|
|
30
|
+
store
|
|
31
|
+
} = useSelectRootContext();
|
|
32
|
+
const triggerElement = useStore(store, selectors.triggerElement);
|
|
33
|
+
const rootId = useStore(store, selectors.id);
|
|
34
|
+
const defaultLabelId = getDefaultLabelId(rootId);
|
|
35
|
+
const labelProps = useLabel({
|
|
36
|
+
id: defaultLabelId,
|
|
37
|
+
fallbackControlId: triggerElement?.id ?? rootId,
|
|
38
|
+
setLabelId(nextLabelId) {
|
|
39
|
+
store.set('labelId', nextLabelId);
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
return useRenderElement('div', componentProps, {
|
|
43
|
+
ref: forwardedRef,
|
|
44
|
+
state: fieldRootContext.state,
|
|
45
|
+
props: [labelProps, elementProps],
|
|
46
|
+
stateAttributesMapping: fieldValidityMapping
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
if (process.env.NODE_ENV !== "production") SelectLabel.displayName = "SelectLabel";
|
|
@@ -7,7 +7,7 @@ import type { BaseUIComponentProps } from "../../utils/types.js";
|
|
|
7
7
|
* Documentation: [Base UI Select](https://base-ui.com/react/components/select)
|
|
8
8
|
*/
|
|
9
9
|
export declare const SelectList: React.ForwardRefExoticComponent<Omit<SelectListProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
10
|
-
export interface SelectListProps extends BaseUIComponentProps<'div',
|
|
10
|
+
export interface SelectListProps extends BaseUIComponentProps<'div', SelectListState> {}
|
|
11
11
|
export interface SelectListState {}
|
|
12
12
|
export declare namespace SelectList {
|
|
13
13
|
type Props = SelectListProps;
|
|
@@ -10,7 +10,7 @@ import type { TransitionStatus } from "../../utils/useTransitionStatus.js";
|
|
|
10
10
|
* Documentation: [Base UI Select](https://base-ui.com/react/components/select)
|
|
11
11
|
*/
|
|
12
12
|
export declare const SelectPopup: React.ForwardRefExoticComponent<Omit<SelectPopupProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
13
|
-
export interface SelectPopupProps extends BaseUIComponentProps<'div',
|
|
13
|
+
export interface SelectPopupProps extends BaseUIComponentProps<'div', SelectPopupState> {
|
|
14
14
|
children?: React.ReactNode;
|
|
15
15
|
/**
|
|
16
16
|
* Determines the element to focus when the select popup is closed.
|
|
@@ -21,12 +21,24 @@ export interface SelectPopupProps extends BaseUIComponentProps<'div', SelectPopu
|
|
|
21
21
|
* - `function`: Called with the interaction type (`mouse`, `touch`, `pen`, or `keyboard`).
|
|
22
22
|
* Return an element to focus, `true` to use the default behavior, or `false`/`undefined` to do nothing.
|
|
23
23
|
*/
|
|
24
|
-
finalFocus?:
|
|
24
|
+
finalFocus?: boolean | React.RefObject<HTMLElement | null> | ((closeType: InteractionType) => boolean | HTMLElement | null | void) | undefined;
|
|
25
25
|
}
|
|
26
26
|
export interface SelectPopupState {
|
|
27
|
+
/**
|
|
28
|
+
* The side of the anchor the component is placed on.
|
|
29
|
+
*/
|
|
27
30
|
side: Side | 'none';
|
|
31
|
+
/**
|
|
32
|
+
* The alignment of the component relative to the anchor.
|
|
33
|
+
*/
|
|
28
34
|
align: Align;
|
|
35
|
+
/**
|
|
36
|
+
* Whether the component is open.
|
|
37
|
+
*/
|
|
29
38
|
open: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* The transition status of the component.
|
|
41
|
+
*/
|
|
30
42
|
transitionStatus: TransitionStatus;
|
|
31
43
|
}
|
|
32
44
|
export declare namespace SelectPopup {
|