@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
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
export let ComboboxInputGroupDataAttributes = /*#__PURE__*/function (ComboboxInputGroupDataAttributes) {
|
|
2
|
+
/**
|
|
3
|
+
* Present when the corresponding popup is open.
|
|
4
|
+
*/
|
|
5
|
+
ComboboxInputGroupDataAttributes["popupOpen"] = "data-popup-open";
|
|
6
|
+
/**
|
|
7
|
+
* Present when the input group is pressed.
|
|
8
|
+
*/
|
|
9
|
+
ComboboxInputGroupDataAttributes["pressed"] = "data-pressed";
|
|
10
|
+
/**
|
|
11
|
+
* Present when the component is disabled.
|
|
12
|
+
*/
|
|
13
|
+
ComboboxInputGroupDataAttributes["disabled"] = "data-disabled";
|
|
14
|
+
/**
|
|
15
|
+
* Present when the component is readonly.
|
|
16
|
+
*/
|
|
17
|
+
ComboboxInputGroupDataAttributes["readonly"] = "data-readonly";
|
|
18
|
+
/**
|
|
19
|
+
* Indicates which side the corresponding popup is positioned relative to its anchor.
|
|
20
|
+
* @type {'top' | 'bottom' | 'left' | 'right' | 'inline-end' | 'inline-start' | null}
|
|
21
|
+
*/
|
|
22
|
+
ComboboxInputGroupDataAttributes["popupSide"] = "data-popup-side";
|
|
23
|
+
/**
|
|
24
|
+
* Present when the component is in valid state (when wrapped in Field.Root).
|
|
25
|
+
*/
|
|
26
|
+
ComboboxInputGroupDataAttributes["valid"] = "data-valid";
|
|
27
|
+
/**
|
|
28
|
+
* Present when the component is in invalid state (when wrapped in Field.Root).
|
|
29
|
+
*/
|
|
30
|
+
ComboboxInputGroupDataAttributes["invalid"] = "data-invalid";
|
|
31
|
+
/**
|
|
32
|
+
* Present when the component has been touched (when wrapped in Field.Root).
|
|
33
|
+
*/
|
|
34
|
+
ComboboxInputGroupDataAttributes["touched"] = "data-touched";
|
|
35
|
+
/**
|
|
36
|
+
* Present when the component's value has changed (when wrapped in Field.Root).
|
|
37
|
+
*/
|
|
38
|
+
ComboboxInputGroupDataAttributes["dirty"] = "data-dirty";
|
|
39
|
+
/**
|
|
40
|
+
* Present when the component has a value (when wrapped in Field.Root).
|
|
41
|
+
*/
|
|
42
|
+
ComboboxInputGroupDataAttributes["filled"] = "data-filled";
|
|
43
|
+
/**
|
|
44
|
+
* Present when the component is focused (when wrapped in Field.Root).
|
|
45
|
+
*/
|
|
46
|
+
ComboboxInputGroupDataAttributes["focused"] = "data-focused";
|
|
47
|
+
/**
|
|
48
|
+
* Present when the corresponding items list is empty.
|
|
49
|
+
*/
|
|
50
|
+
ComboboxInputGroupDataAttributes["listEmpty"] = "data-list-empty";
|
|
51
|
+
/**
|
|
52
|
+
* Present when the combobox doesn't have a value.
|
|
53
|
+
*/
|
|
54
|
+
ComboboxInputGroupDataAttributes["placeholder"] = "data-placeholder";
|
|
55
|
+
return ComboboxInputGroupDataAttributes;
|
|
56
|
+
}({});
|
|
@@ -19,7 +19,7 @@ export interface ComboboxItemState {
|
|
|
19
19
|
*/
|
|
20
20
|
highlighted: boolean;
|
|
21
21
|
}
|
|
22
|
-
export interface ComboboxItemProps extends NonNativeButtonProps, Omit<BaseUIComponentProps<'div',
|
|
22
|
+
export interface ComboboxItemProps extends NonNativeButtonProps, Omit<BaseUIComponentProps<'div', ComboboxItemState>, 'id'> {
|
|
23
23
|
children?: React.ReactNode;
|
|
24
24
|
/**
|
|
25
25
|
* An optional click handler for the item when selected.
|
|
@@ -115,7 +115,8 @@ export const ComboboxItem = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRe
|
|
|
115
115
|
} = useButton({
|
|
116
116
|
disabled,
|
|
117
117
|
focusableWhenDisabled: true,
|
|
118
|
-
native: nativeButton
|
|
118
|
+
native: nativeButton,
|
|
119
|
+
composite: true
|
|
119
120
|
});
|
|
120
121
|
function commitSelection(nativeEvent) {
|
|
121
122
|
function selectItem() {
|
|
@@ -6,7 +6,7 @@ import { type TransitionStatus } from "../../utils/useTransitionStatus.js";
|
|
|
6
6
|
* Renders a `<span>` element.
|
|
7
7
|
*/
|
|
8
8
|
export declare const ComboboxItemIndicator: React.ForwardRefExoticComponent<Omit<ComboboxItemIndicatorProps, "ref"> & React.RefAttributes<HTMLSpanElement>>;
|
|
9
|
-
export interface ComboboxItemIndicatorProps extends BaseUIComponentProps<'span',
|
|
9
|
+
export interface ComboboxItemIndicatorProps extends BaseUIComponentProps<'span', ComboboxItemIndicatorState> {
|
|
10
10
|
children?: React.ReactNode;
|
|
11
11
|
/**
|
|
12
12
|
* Whether to keep the HTML element in the DOM when the item is not selected.
|
|
@@ -15,7 +15,13 @@ export interface ComboboxItemIndicatorProps extends BaseUIComponentProps<'span',
|
|
|
15
15
|
keepMounted?: boolean | undefined;
|
|
16
16
|
}
|
|
17
17
|
export interface ComboboxItemIndicatorState {
|
|
18
|
+
/**
|
|
19
|
+
* Whether the item is selected.
|
|
20
|
+
*/
|
|
18
21
|
selected: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* The transition status of the component.
|
|
24
|
+
*/
|
|
19
25
|
transitionStatus: TransitionStatus;
|
|
20
26
|
}
|
|
21
27
|
export declare namespace ComboboxItemIndicator {
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { TransitionStatusDataAttributes } from "../../utils/stateAttributesMapping.js";
|
|
2
|
+
export let ComboboxItemIndicatorDataAttributes = function (ComboboxItemIndicatorDataAttributes) {
|
|
3
|
+
/**
|
|
4
|
+
* Present when the indicator is animating in.
|
|
5
|
+
*/
|
|
6
|
+
ComboboxItemIndicatorDataAttributes[ComboboxItemIndicatorDataAttributes["startingStyle"] = TransitionStatusDataAttributes.startingStyle] = "startingStyle";
|
|
7
|
+
/**
|
|
8
|
+
* Present when the indicator is animating out.
|
|
9
|
+
*/
|
|
10
|
+
ComboboxItemIndicatorDataAttributes[ComboboxItemIndicatorDataAttributes["endingStyle"] = TransitionStatusDataAttributes.endingStyle] = "endingStyle";
|
|
11
|
+
return ComboboxItemIndicatorDataAttributes;
|
|
12
|
+
}({});
|
|
@@ -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 combobox trigger.
|
|
6
|
+
* Renders a `<div>` element.
|
|
7
|
+
*
|
|
8
|
+
* Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)
|
|
9
|
+
*/
|
|
10
|
+
export declare const ComboboxLabel: React.ForwardRefExoticComponent<Omit<ComboboxLabelProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
11
|
+
export type ComboboxLabelState = FieldRoot.State;
|
|
12
|
+
export interface ComboboxLabelProps extends Omit<BaseUIComponentProps<'div', ComboboxLabel.State>, 'id'> {}
|
|
13
|
+
export declare namespace ComboboxLabel {
|
|
14
|
+
type State = ComboboxLabelState;
|
|
15
|
+
type Props = ComboboxLabelProps;
|
|
16
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { error } from '@base-ui/utils/error';
|
|
5
|
+
import { SafeReact } from '@base-ui/utils/safeReact';
|
|
6
|
+
import { useStore } from '@base-ui/utils/store';
|
|
7
|
+
import { useRenderElement } from "../../utils/useRenderElement.js";
|
|
8
|
+
import { useFieldRootContext } from "../../field/root/FieldRootContext.js";
|
|
9
|
+
import { fieldValidityMapping } from "../../field/utils/constants.js";
|
|
10
|
+
import { useLabel } from "../../labelable-provider/useLabel.js";
|
|
11
|
+
import { getDefaultLabelId } from "../../utils/resolveAriaLabelledBy.js";
|
|
12
|
+
import { useComboboxRootContext } from "../root/ComboboxRootContext.js";
|
|
13
|
+
import { selectors } from "../store.js";
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* An accessible label that is automatically associated with the combobox trigger.
|
|
17
|
+
* Renders a `<div>` element.
|
|
18
|
+
*
|
|
19
|
+
* Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)
|
|
20
|
+
*/
|
|
21
|
+
export const ComboboxLabel = /*#__PURE__*/React.forwardRef(function ComboboxLabel(componentProps, forwardedRef) {
|
|
22
|
+
const {
|
|
23
|
+
render,
|
|
24
|
+
className,
|
|
25
|
+
...elementProps
|
|
26
|
+
} = componentProps;
|
|
27
|
+
// Keep label id derived from the root and ignore runtime `id` overrides from untyped consumers.
|
|
28
|
+
const elementPropsWithoutId = elementProps;
|
|
29
|
+
delete elementPropsWithoutId.id;
|
|
30
|
+
const fieldRootContext = useFieldRootContext();
|
|
31
|
+
const store = useComboboxRootContext();
|
|
32
|
+
const inputInsidePopup = useStore(store, selectors.inputInsidePopup);
|
|
33
|
+
const triggerElement = useStore(store, selectors.triggerElement);
|
|
34
|
+
const inputElement = useStore(store, selectors.inputElement);
|
|
35
|
+
const rootId = useStore(store, selectors.id);
|
|
36
|
+
const defaultLabelId = getDefaultLabelId(rootId);
|
|
37
|
+
const localControlId = triggerElement?.id ?? (inputInsidePopup ? rootId : undefined);
|
|
38
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
39
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
40
|
+
React.useEffect(() => {
|
|
41
|
+
if (!inputElement || inputInsidePopup) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
const ownerStackMessage = SafeReact.captureOwnerStack?.() || '';
|
|
45
|
+
const message = '<Combobox.Label> labels <Combobox.Trigger> only. ' + 'When <Combobox.Input> is the form control, use a native <label> or <Field.Label> instead.';
|
|
46
|
+
error(`${message}${ownerStackMessage}`);
|
|
47
|
+
}, [inputElement, inputInsidePopup]);
|
|
48
|
+
}
|
|
49
|
+
const labelProps = useLabel({
|
|
50
|
+
id: defaultLabelId,
|
|
51
|
+
fallbackControlId: localControlId,
|
|
52
|
+
setLabelId(nextLabelId) {
|
|
53
|
+
store.set('labelId', nextLabelId);
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
return useRenderElement('div', componentProps, {
|
|
57
|
+
ref: forwardedRef,
|
|
58
|
+
state: fieldRootContext.state,
|
|
59
|
+
props: [labelProps, elementProps],
|
|
60
|
+
stateAttributesMapping: fieldValidityMapping
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
if (process.env.NODE_ENV !== "production") ComboboxLabel.displayName = "ComboboxLabel";
|
|
@@ -11,7 +11,7 @@ export interface ComboboxListState {
|
|
|
11
11
|
*/
|
|
12
12
|
empty: boolean;
|
|
13
13
|
}
|
|
14
|
-
export interface ComboboxListProps extends Omit<BaseUIComponentProps<'div',
|
|
14
|
+
export interface ComboboxListProps extends Omit<BaseUIComponentProps<'div', ComboboxListState>, 'children'> {
|
|
15
15
|
children?: React.ReactNode | ((item: any, index: number) => React.ReactNode);
|
|
16
16
|
}
|
|
17
17
|
export declare namespace ComboboxList {
|
|
@@ -9,14 +9,32 @@ import type { TransitionStatus } from "../../utils/useTransitionStatus.js";
|
|
|
9
9
|
*/
|
|
10
10
|
export declare const ComboboxPopup: React.ForwardRefExoticComponent<Omit<ComboboxPopupProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
11
11
|
export interface ComboboxPopupState {
|
|
12
|
+
/**
|
|
13
|
+
* Whether the component is open.
|
|
14
|
+
*/
|
|
12
15
|
open: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* The side of the anchor the component is placed on.
|
|
18
|
+
*/
|
|
13
19
|
side: Side;
|
|
20
|
+
/**
|
|
21
|
+
* The alignment of the component relative to the anchor.
|
|
22
|
+
*/
|
|
14
23
|
align: Align;
|
|
24
|
+
/**
|
|
25
|
+
* Whether the anchor element is hidden.
|
|
26
|
+
*/
|
|
15
27
|
anchorHidden: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* The transition status of the component.
|
|
30
|
+
*/
|
|
16
31
|
transitionStatus: TransitionStatus;
|
|
32
|
+
/**
|
|
33
|
+
* Whether there are no items to display.
|
|
34
|
+
*/
|
|
17
35
|
empty: boolean;
|
|
18
36
|
}
|
|
19
|
-
export interface ComboboxPopupProps extends BaseUIComponentProps<'div',
|
|
37
|
+
export interface ComboboxPopupProps extends BaseUIComponentProps<'div', ComboboxPopupState> {
|
|
20
38
|
/**
|
|
21
39
|
* Determines the element to focus when the popup is opened.
|
|
22
40
|
*
|
|
@@ -26,7 +44,7 @@ export interface ComboboxPopupProps extends BaseUIComponentProps<'div', Combobox
|
|
|
26
44
|
* - `function`: Called with the interaction type (`mouse`, `touch`, `pen`, or `keyboard`).
|
|
27
45
|
* Return an element to focus, `true` to use the default behavior, or `false`/`undefined` to do nothing.
|
|
28
46
|
*/
|
|
29
|
-
initialFocus?:
|
|
47
|
+
initialFocus?: boolean | React.RefObject<HTMLElement | null> | ((openType: InteractionType) => void | boolean | HTMLElement | null) | undefined;
|
|
30
48
|
/**
|
|
31
49
|
* Determines the element to focus when the popup is closed.
|
|
32
50
|
*
|
|
@@ -36,7 +54,7 @@ export interface ComboboxPopupProps extends BaseUIComponentProps<'div', Combobox
|
|
|
36
54
|
* - `function`: Called with the interaction type (`mouse`, `touch`, `pen`, or `keyboard`).
|
|
37
55
|
* Return an element to focus, `true` to use the default behavior, or `false`/`undefined` to do nothing.
|
|
38
56
|
*/
|
|
39
|
-
finalFocus?:
|
|
57
|
+
finalFocus?: boolean | React.RefObject<HTMLElement | null> | ((closeType: InteractionType) => void | boolean | HTMLElement | null) | undefined;
|
|
40
58
|
}
|
|
41
59
|
export declare namespace ComboboxPopup {
|
|
42
60
|
type State = ComboboxPopupState;
|
|
@@ -12,7 +12,8 @@ import { useOpenChangeComplete } from "../../utils/useOpenChangeComplete.js";
|
|
|
12
12
|
import { transitionStatusMapping } from "../../utils/stateAttributesMapping.js";
|
|
13
13
|
import { contains, getTarget } from "../../floating-ui-react/utils.js";
|
|
14
14
|
import { getDisabledMountTransitionStyles } from "../../utils/getDisabledMountTransitionStyles.js";
|
|
15
|
-
import {
|
|
15
|
+
import { ComboboxInternalDismissButton } from "../utils/ComboboxInternalDismissButton.js";
|
|
16
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
16
17
|
const stateAttributesMapping = {
|
|
17
18
|
...popupStateMapping,
|
|
18
19
|
...transitionStatusMapping
|
|
@@ -42,6 +43,7 @@ export const ComboboxPopup = /*#__PURE__*/React.forwardRef(function ComboboxPopu
|
|
|
42
43
|
const transitionStatus = useStore(store, selectors.transitionStatus);
|
|
43
44
|
const inputInsidePopup = useStore(store, selectors.inputInsidePopup);
|
|
44
45
|
const inputElement = useStore(store, selectors.inputElement);
|
|
46
|
+
const modal = useStore(store, selectors.modal);
|
|
45
47
|
const empty = filteredItems.length === 0;
|
|
46
48
|
useOpenChangeComplete({
|
|
47
49
|
open,
|
|
@@ -87,14 +89,20 @@ export const ComboboxPopup = /*#__PURE__*/React.forwardRef(function ComboboxPopu
|
|
|
87
89
|
} else {
|
|
88
90
|
resolvedFinalFocus = inputInsidePopup ? undefined : false;
|
|
89
91
|
}
|
|
92
|
+
const focusManagerModal = !inputInsidePopup || modal;
|
|
90
93
|
return /*#__PURE__*/_jsx(FloatingFocusManager, {
|
|
91
94
|
context: floatingRootContext,
|
|
92
95
|
disabled: !mounted,
|
|
93
|
-
modal:
|
|
96
|
+
modal: focusManagerModal,
|
|
94
97
|
openInteractionType: openMethod,
|
|
95
98
|
initialFocus: resolvedInitialFocus,
|
|
96
99
|
returnFocus: resolvedFinalFocus,
|
|
97
|
-
|
|
100
|
+
getInsideElements: () => [store.state.startDismissRef.current, store.state.endDismissRef.current],
|
|
101
|
+
children: /*#__PURE__*/_jsxs(React.Fragment, {
|
|
102
|
+
children: [element, focusManagerModal && /*#__PURE__*/_jsx(ComboboxInternalDismissButton, {
|
|
103
|
+
ref: store.state.endDismissRef
|
|
104
|
+
})]
|
|
105
|
+
})
|
|
98
106
|
});
|
|
99
107
|
});
|
|
100
108
|
if (process.env.NODE_ENV !== "production") ComboboxPopup.displayName = "ComboboxPopup";
|
|
@@ -6,10 +6,8 @@ import { FloatingPortal } from "../../floating-ui-react/index.js";
|
|
|
6
6
|
* Renders a `<div>` element.
|
|
7
7
|
*/
|
|
8
8
|
export declare const ComboboxPortal: React.ForwardRefExoticComponent<Omit<ComboboxPortalProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
9
|
-
export
|
|
10
|
-
|
|
11
|
-
}
|
|
12
|
-
export interface ComboboxPortalProps extends FloatingPortal.Props<ComboboxPortal.State> {
|
|
9
|
+
export interface ComboboxPortalState {}
|
|
10
|
+
export interface ComboboxPortalProps extends FloatingPortal.Props<ComboboxPortalState> {
|
|
13
11
|
/**
|
|
14
12
|
* Whether to keep the portal mounted in the DOM while the popup is hidden.
|
|
15
13
|
* @default false
|
|
@@ -17,5 +15,6 @@ export interface ComboboxPortalProps extends FloatingPortal.Props<ComboboxPortal
|
|
|
17
15
|
keepMounted?: boolean | undefined;
|
|
18
16
|
}
|
|
19
17
|
export declare namespace ComboboxPortal {
|
|
18
|
+
type State = ComboboxPortalState;
|
|
20
19
|
type Props = ComboboxPortalProps;
|
|
21
20
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { type Side, type Align,
|
|
2
|
+
import { type Side, type Align, type UseAnchorPositioningSharedParameters } from "../../utils/useAnchorPositioning.js";
|
|
3
3
|
import type { BaseUIComponentProps } from "../../utils/types.js";
|
|
4
4
|
/**
|
|
5
5
|
* Positions the popup against the trigger.
|
|
@@ -11,12 +11,24 @@ export interface ComboboxPositionerState {
|
|
|
11
11
|
* Whether the popup is currently open.
|
|
12
12
|
*/
|
|
13
13
|
open: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* The side of the anchor the component is placed on.
|
|
16
|
+
*/
|
|
14
17
|
side: Side;
|
|
18
|
+
/**
|
|
19
|
+
* The alignment of the component relative to the anchor.
|
|
20
|
+
*/
|
|
15
21
|
align: Align;
|
|
22
|
+
/**
|
|
23
|
+
* Whether the anchor element is hidden.
|
|
24
|
+
*/
|
|
16
25
|
anchorHidden: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Whether there are no items to display.
|
|
28
|
+
*/
|
|
17
29
|
empty: boolean;
|
|
18
30
|
}
|
|
19
|
-
export interface ComboboxPositionerProps extends
|
|
31
|
+
export interface ComboboxPositionerProps extends UseAnchorPositioningSharedParameters, BaseUIComponentProps<'div', ComboboxPositionerState> {}
|
|
20
32
|
export declare namespace ComboboxPositioner {
|
|
21
33
|
type State = ComboboxPositionerState;
|
|
22
34
|
type Props = ComboboxPositionerProps;
|
|
@@ -52,10 +52,11 @@ export const ComboboxPositioner = /*#__PURE__*/React.forwardRef(function Combobo
|
|
|
52
52
|
const openMethod = useStore(store, selectors.openMethod);
|
|
53
53
|
const triggerElement = useStore(store, selectors.triggerElement);
|
|
54
54
|
const inputElement = useStore(store, selectors.inputElement);
|
|
55
|
+
const inputGroupElement = useStore(store, selectors.inputGroupElement);
|
|
55
56
|
const inputInsidePopup = useStore(store, selectors.inputInsidePopup);
|
|
56
57
|
const transitionStatus = useStore(store, selectors.transitionStatus);
|
|
57
58
|
const empty = filteredItems.length === 0;
|
|
58
|
-
const resolvedAnchor = anchor ?? (inputInsidePopup ? triggerElement : inputElement);
|
|
59
|
+
const resolvedAnchor = anchor ?? (inputInsidePopup ? triggerElement : inputGroupElement ?? inputElement);
|
|
59
60
|
const positioning = useAnchorPositioning({
|
|
60
61
|
anchor: resolvedAnchor,
|
|
61
62
|
floatingRootContext,
|
|
@@ -120,7 +121,7 @@ export const ComboboxPositioner = /*#__PURE__*/React.forwardRef(function Combobo
|
|
|
120
121
|
value: contextValue,
|
|
121
122
|
children: [mounted && modal && /*#__PURE__*/_jsx(InternalBackdrop, {
|
|
122
123
|
inert: inertValue(!open),
|
|
123
|
-
cutout: inputElement ?? triggerElement
|
|
124
|
+
cutout: inputGroupElement ?? inputElement ?? triggerElement
|
|
124
125
|
}), element]
|
|
125
126
|
});
|
|
126
127
|
});
|
|
@@ -69,7 +69,7 @@ interface ComboboxRootProps<ItemValue> {
|
|
|
69
69
|
* - `'always'`: highlight the first item as soon as the list opens.
|
|
70
70
|
* @default false
|
|
71
71
|
*/
|
|
72
|
-
autoHighlight?:
|
|
72
|
+
autoHighlight?: boolean | 'always' | undefined;
|
|
73
73
|
/**
|
|
74
74
|
* Whether the highlighted item should be preserved when the pointer leaves the list.
|
|
75
75
|
* @default false
|
|
@@ -132,17 +132,17 @@ interface ComboboxRootProps<ItemValue> {
|
|
|
132
132
|
* The items to be displayed in the list.
|
|
133
133
|
* Can be either a flat array of items or an array of groups with items.
|
|
134
134
|
*/
|
|
135
|
-
items?:
|
|
135
|
+
items?: readonly any[] | readonly Group<any>[] | undefined;
|
|
136
136
|
/**
|
|
137
137
|
* Filtered items to display in the list.
|
|
138
138
|
* When provided, the list will use these items instead of filtering the `items` prop internally.
|
|
139
139
|
* Use when you want to control filtering logic externally with the `useFilter()` hook.
|
|
140
140
|
*/
|
|
141
|
-
filteredItems?:
|
|
141
|
+
filteredItems?: readonly any[] | readonly Group<any>[] | undefined;
|
|
142
142
|
/**
|
|
143
143
|
* Filter function used to match items vs input query.
|
|
144
144
|
*/
|
|
145
|
-
filter?:
|
|
145
|
+
filter?: null | ((itemValue: ItemValue, query: string, itemToString?: (itemValue: ItemValue) => string) => boolean) | undefined;
|
|
146
146
|
/**
|
|
147
147
|
* When the item values are objects (`<Combobox.Item value={object}>`), this function converts the object value to a string representation for display in the input.
|
|
148
148
|
* If the shape of the object is `{ value, label }`, the label will be used automatically without needing to specify this prop.
|
|
@@ -188,7 +188,7 @@ interface ComboboxRootProps<ItemValue> {
|
|
|
188
188
|
* - `none`: items are static (not filtered), and the input value will not change based on the active item.
|
|
189
189
|
* @default 'list'
|
|
190
190
|
*/
|
|
191
|
-
autoComplete?:
|
|
191
|
+
autoComplete?: 'list' | 'both' | 'inline' | 'none' | undefined;
|
|
192
192
|
/**
|
|
193
193
|
* Provides a hint to the browser for autofill on the hidden input element.
|
|
194
194
|
* @see https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/autocomplete
|
|
@@ -209,6 +209,7 @@ interface ComboboxRootProps<ItemValue> {
|
|
|
209
209
|
*/
|
|
210
210
|
fillInputOnItemPress?: boolean | undefined;
|
|
211
211
|
}
|
|
212
|
+
export interface AriaComboboxState {}
|
|
212
213
|
export type AriaComboboxProps<Value, Mode extends SelectionMode = 'none'> = ComboboxRootProps<Value> & {
|
|
213
214
|
/**
|
|
214
215
|
* How the combobox should remember the selected value.
|
|
@@ -227,7 +228,7 @@ export type AriaComboboxProps<Value, Mode extends SelectionMode = 'none'> = Comb
|
|
|
227
228
|
*
|
|
228
229
|
* To render a controlled combobox, use the `selectedValue` prop instead.
|
|
229
230
|
*/
|
|
230
|
-
defaultSelectedValue?:
|
|
231
|
+
defaultSelectedValue?: ComboboxItemValueType<Value, Mode> | null | undefined;
|
|
231
232
|
/**
|
|
232
233
|
* Callback fired when the selected value of the combobox changes.
|
|
233
234
|
*/
|
|
@@ -235,7 +236,7 @@ export type AriaComboboxProps<Value, Mode extends SelectionMode = 'none'> = Comb
|
|
|
235
236
|
};
|
|
236
237
|
export declare namespace AriaCombobox {
|
|
237
238
|
type Props<Value, Mode extends SelectionMode = 'none'> = AriaComboboxProps<Value, Mode>;
|
|
238
|
-
|
|
239
|
+
type State = AriaComboboxState;
|
|
239
240
|
interface Actions {
|
|
240
241
|
unmount: () => void;
|
|
241
242
|
}
|
|
@@ -243,7 +244,7 @@ export declare namespace AriaCombobox {
|
|
|
243
244
|
type HighlightEventDetails = BaseUIGenericEventDetails<HighlightEventReason, {
|
|
244
245
|
index: number;
|
|
245
246
|
}>;
|
|
246
|
-
type ChangeEventReason = typeof REASONS.triggerPress | typeof REASONS.outsidePress | typeof REASONS.itemPress | typeof REASONS.escapeKey | typeof REASONS.listNavigation | typeof REASONS.focusOut | typeof REASONS.inputChange | typeof REASONS.inputClear | typeof REASONS.clearPress | typeof REASONS.chipRemovePress | typeof REASONS.none;
|
|
247
|
+
type ChangeEventReason = typeof REASONS.triggerPress | typeof REASONS.outsidePress | typeof REASONS.itemPress | typeof REASONS.closePress | typeof REASONS.escapeKey | typeof REASONS.listNavigation | typeof REASONS.focusOut | typeof REASONS.inputChange | typeof REASONS.inputClear | typeof REASONS.clearPress | typeof REASONS.chipRemovePress | typeof REASONS.none;
|
|
247
248
|
type ChangeEventDetails = BaseUIChangeEventDetails<ChangeEventReason>;
|
|
248
249
|
}
|
|
249
250
|
export {};
|
|
@@ -101,6 +101,8 @@ export function AriaCombobox(props) {
|
|
|
101
101
|
const labelsRef = React.useRef([]);
|
|
102
102
|
const popupRef = React.useRef(null);
|
|
103
103
|
const inputRef = React.useRef(null);
|
|
104
|
+
const startDismissRef = React.useRef(null);
|
|
105
|
+
const endDismissRef = React.useRef(null);
|
|
104
106
|
const emptyRef = React.useRef(null);
|
|
105
107
|
const keyboardActiveRef = React.useRef(true);
|
|
106
108
|
const hadInputClearRef = React.useRef(false);
|
|
@@ -253,6 +255,7 @@ export function AriaCombobox(props) {
|
|
|
253
255
|
}, [filteredItems, isGrouped]);
|
|
254
256
|
const store = useRefWithInit(() => new Store({
|
|
255
257
|
id,
|
|
258
|
+
labelId: undefined,
|
|
256
259
|
selectedValue,
|
|
257
260
|
open,
|
|
258
261
|
filter,
|
|
@@ -264,6 +267,8 @@ export function AriaCombobox(props) {
|
|
|
264
267
|
popupRef,
|
|
265
268
|
emptyRef,
|
|
266
269
|
inputRef,
|
|
270
|
+
startDismissRef,
|
|
271
|
+
endDismissRef,
|
|
267
272
|
keyboardActiveRef,
|
|
268
273
|
chipsContainerRef,
|
|
269
274
|
clearRef,
|
|
@@ -297,6 +302,7 @@ export function AriaCombobox(props) {
|
|
|
297
302
|
listElement: null,
|
|
298
303
|
triggerElement: null,
|
|
299
304
|
inputElement: null,
|
|
305
|
+
inputGroupElement: null,
|
|
300
306
|
popupSide: null,
|
|
301
307
|
openMethod: null,
|
|
302
308
|
inputInsidePopup: true,
|
|
@@ -330,6 +336,7 @@ export function AriaCombobox(props) {
|
|
|
330
336
|
const listElement = useStore(store, selectors.listElement);
|
|
331
337
|
const triggerElement = useStore(store, selectors.triggerElement);
|
|
332
338
|
const inputElement = useStore(store, selectors.inputElement);
|
|
339
|
+
const inputGroupElement = useStore(store, selectors.inputGroupElement);
|
|
333
340
|
const inline = useStore(store, selectors.inline);
|
|
334
341
|
const inputInsidePopup = useStore(store, selectors.inputInsidePopup);
|
|
335
342
|
const triggerRef = useValueAsRef(triggerElement);
|
|
@@ -340,8 +347,7 @@ export function AriaCombobox(props) {
|
|
|
340
347
|
} = useTransitionStatus(open);
|
|
341
348
|
const {
|
|
342
349
|
openMethod,
|
|
343
|
-
triggerProps
|
|
344
|
-
reset: resetOpenInteractionType
|
|
350
|
+
triggerProps
|
|
345
351
|
} = useOpenInteractionType(open);
|
|
346
352
|
useField({
|
|
347
353
|
id,
|
|
@@ -539,7 +545,6 @@ export function AriaCombobox(props) {
|
|
|
539
545
|
setMounted(false);
|
|
540
546
|
onOpenChangeComplete?.(false);
|
|
541
547
|
setQueryChangedAfterOpen(false);
|
|
542
|
-
resetOpenInteractionType();
|
|
543
548
|
setCloseQuery(null);
|
|
544
549
|
if (selectionMode === 'none') {
|
|
545
550
|
setIndices({
|
|
@@ -760,8 +765,11 @@ export function AriaCombobox(props) {
|
|
|
760
765
|
}
|
|
761
766
|
const role = React.useMemo(() => {
|
|
762
767
|
const isPlainInput = inputElement?.tagName === 'INPUT';
|
|
763
|
-
|
|
764
|
-
|
|
768
|
+
// During SSR and initial hydration, the input ref is not available yet.
|
|
769
|
+
// Assume an input-like control so combobox ARIA attributes are present.
|
|
770
|
+
const shouldTreatAsInput = inputElement == null || isPlainInput;
|
|
771
|
+
const shouldApplyAria = shouldTreatAsInput || open;
|
|
772
|
+
const reference = shouldTreatAsInput ? {
|
|
765
773
|
autoComplete: 'off',
|
|
766
774
|
spellCheck: 'false',
|
|
767
775
|
autoCorrect: 'off',
|
|
@@ -803,7 +811,7 @@ export function AriaCombobox(props) {
|
|
|
803
811
|
bubbles: inline ? true : undefined,
|
|
804
812
|
outsidePress(event) {
|
|
805
813
|
const target = getTarget(event);
|
|
806
|
-
return !contains(triggerElement, target) && !contains(clearRef.current, target) && !contains(chipsContainerRef.current, target);
|
|
814
|
+
return !contains(triggerElement, target) && !contains(clearRef.current, target) && !contains(chipsContainerRef.current, target) && !contains(inputGroupElement, target);
|
|
807
815
|
}
|
|
808
816
|
});
|
|
809
817
|
const listNavigation = useListNavigation(floatingRootContext, {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { AriaCombobox } from "./AriaCombobox.js";
|
|
2
|
+
import { AriaCombobox, type AriaComboboxState } from "./AriaCombobox.js";
|
|
3
3
|
/**
|
|
4
4
|
* Groups all parts of the combobox.
|
|
5
5
|
* Doesn't render its own HTML element.
|
|
@@ -51,7 +51,7 @@ export type ComboboxRootProps<Value, Multiple extends boolean | undefined = fals
|
|
|
51
51
|
*
|
|
52
52
|
* To render a controlled combobox, use the `value` prop instead.
|
|
53
53
|
*/
|
|
54
|
-
defaultValue?:
|
|
54
|
+
defaultValue?: ComboboxValueType<Value, Multiple> | null | undefined;
|
|
55
55
|
/**
|
|
56
56
|
* A ref to imperative actions.
|
|
57
57
|
* - `unmount`: When specified, the combobox will not be unmounted when closed.
|
|
@@ -79,13 +79,13 @@ export type ComboboxRootProps<Value, Multiple extends boolean | undefined = fals
|
|
|
79
79
|
/**
|
|
80
80
|
* The selected value of the combobox. Use when controlled.
|
|
81
81
|
*/
|
|
82
|
-
value?:
|
|
82
|
+
value?: ComboboxValueType<Value, Multiple> | null | undefined;
|
|
83
83
|
/**
|
|
84
84
|
* Event handler called when the selected value of the combobox changes.
|
|
85
85
|
*/
|
|
86
86
|
onValueChange?: ((value: ComboboxValueType<Value, Multiple> | (Multiple extends true ? never : null), eventDetails: ComboboxRoot.ChangeEventDetails) => void) | undefined;
|
|
87
87
|
};
|
|
88
|
-
export
|
|
88
|
+
export interface ComboboxRootState extends AriaComboboxState {}
|
|
89
89
|
export type ComboboxRootActions = AriaCombobox.Actions;
|
|
90
90
|
export type ComboboxRootChangeEventReason = AriaCombobox.ChangeEventReason;
|
|
91
91
|
export type ComboboxRootChangeEventDetails = AriaCombobox.ChangeEventDetails;
|
|
@@ -7,7 +7,7 @@ import { BaseUIComponentProps } from "../../utils/types.js";
|
|
|
7
7
|
*/
|
|
8
8
|
export declare const ComboboxRow: React.ForwardRefExoticComponent<Omit<ComboboxRowProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
9
9
|
export interface ComboboxRowState {}
|
|
10
|
-
export interface ComboboxRowProps extends BaseUIComponentProps<'div',
|
|
10
|
+
export interface ComboboxRowProps extends BaseUIComponentProps<'div', ComboboxRowState> {}
|
|
11
11
|
export declare namespace ComboboxRow {
|
|
12
12
|
type State = ComboboxRowState;
|
|
13
13
|
type Props = ComboboxRowProps;
|
|
@@ -7,7 +7,7 @@ import { BaseUIComponentProps } from "../../utils/types.js";
|
|
|
7
7
|
*/
|
|
8
8
|
export declare const ComboboxStatus: React.ForwardRefExoticComponent<Omit<ComboboxStatusProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
9
9
|
export interface ComboboxStatusState {}
|
|
10
|
-
export interface ComboboxStatusProps extends BaseUIComponentProps<'div',
|
|
10
|
+
export interface ComboboxStatusProps extends BaseUIComponentProps<'div', ComboboxStatusState> {}
|
|
11
11
|
export declare namespace ComboboxStatus {
|
|
12
12
|
type State = ComboboxStatusState;
|
|
13
13
|
type Props = ComboboxStatusProps;
|
package/esm/combobox/store.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ import type { Side } from "../utils/useAnchorPositioning.js";
|
|
|
6
6
|
import type { AriaCombobox } from "./root/AriaCombobox.js";
|
|
7
7
|
export type State = {
|
|
8
8
|
id: string | undefined;
|
|
9
|
+
labelId: string | undefined;
|
|
9
10
|
query: string;
|
|
10
11
|
filter: (item: any, query: string) => boolean;
|
|
11
12
|
items: readonly any[] | undefined;
|
|
@@ -24,6 +25,7 @@ export type State = {
|
|
|
24
25
|
listElement: HTMLElement | null;
|
|
25
26
|
triggerElement: HTMLElement | null;
|
|
26
27
|
inputElement: HTMLInputElement | null;
|
|
28
|
+
inputGroupElement: HTMLDivElement | null;
|
|
27
29
|
popupSide: Side | null;
|
|
28
30
|
openMethod: InteractionType | null;
|
|
29
31
|
inputInsidePopup: boolean;
|
|
@@ -33,6 +35,8 @@ export type State = {
|
|
|
33
35
|
popupRef: React.RefObject<HTMLDivElement | null>;
|
|
34
36
|
emptyRef: React.RefObject<HTMLDivElement | null>;
|
|
35
37
|
inputRef: React.RefObject<HTMLInputElement | null>;
|
|
38
|
+
startDismissRef: React.RefObject<HTMLSpanElement | null>;
|
|
39
|
+
endDismissRef: React.RefObject<HTMLSpanElement | null>;
|
|
36
40
|
keyboardActiveRef: React.RefObject<boolean>;
|
|
37
41
|
chipsContainerRef: React.RefObject<HTMLDivElement | null>;
|
|
38
42
|
clearRef: React.RefObject<HTMLButtonElement | null>;
|
|
@@ -43,9 +47,9 @@ export type State = {
|
|
|
43
47
|
setInputValue: (value: string, eventDetails: AriaCombobox.ChangeEventDetails) => void;
|
|
44
48
|
setSelectedValue: (value: any, eventDetails: AriaCombobox.ChangeEventDetails) => void;
|
|
45
49
|
setIndices: (indices: {
|
|
46
|
-
activeIndex?:
|
|
47
|
-
selectedIndex?:
|
|
48
|
-
type?:
|
|
50
|
+
activeIndex?: number | null | undefined;
|
|
51
|
+
selectedIndex?: number | null | undefined;
|
|
52
|
+
type?: 'keyboard' | 'pointer' | 'none' | undefined;
|
|
49
53
|
}) => void;
|
|
50
54
|
onItemHighlighted: (item: any, eventDetails: AriaCombobox.HighlightEventDetails) => void;
|
|
51
55
|
forceMount: () => void;
|
|
@@ -74,6 +78,7 @@ export type State = {
|
|
|
74
78
|
export type ComboboxStore = Store<State>;
|
|
75
79
|
export declare const selectors: {
|
|
76
80
|
id: (state: State) => string | undefined;
|
|
81
|
+
labelId: (state: State) => string | undefined;
|
|
77
82
|
query: (state: State) => string;
|
|
78
83
|
items: (state: State) => readonly any[] | undefined;
|
|
79
84
|
selectedValue: (state: State) => any;
|
|
@@ -100,6 +105,7 @@ export declare const selectors: {
|
|
|
100
105
|
listElement: (state: State) => HTMLElement | null;
|
|
101
106
|
triggerElement: (state: State) => HTMLElement | null;
|
|
102
107
|
inputElement: (state: State) => HTMLInputElement | null;
|
|
108
|
+
inputGroupElement: (state: State) => HTMLDivElement | null;
|
|
103
109
|
popupSide: (state: State) => Side | null;
|
|
104
110
|
openMethod: (state: State) => InteractionType | null;
|
|
105
111
|
inputInsidePopup: (state: State) => boolean;
|
|
@@ -126,6 +132,6 @@ export declare const selectors: {
|
|
|
126
132
|
itemToStringLabel: (state: State) => ((item: any) => string) | undefined;
|
|
127
133
|
isItemEqualToValue: (state: State) => (itemValue: any, selectedValue: any) => boolean;
|
|
128
134
|
modal: (state: State) => boolean;
|
|
129
|
-
autoHighlight: (state: State) => false | "
|
|
135
|
+
autoHighlight: (state: State) => false | "input-change" | "always";
|
|
130
136
|
submitOnItemClick: (state: State) => boolean;
|
|
131
137
|
};
|