@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,4 +1,5 @@
|
|
|
1
1
|
import { floor } from '@floating-ui/utils';
|
|
2
|
+
import { getComputedStyle } from '@floating-ui/utils/dom';
|
|
2
3
|
import { stopEvent } from "./event.js";
|
|
3
4
|
import { ARROW_DOWN, ARROW_LEFT, ARROW_RIGHT, ARROW_UP } from "./constants.js";
|
|
4
5
|
export function isDifferentGridRow(index, cols, prevRow) {
|
|
@@ -44,151 +45,145 @@ export function getGridNavigatedIndex(listRef, {
|
|
|
44
45
|
stopEvent: stop = false
|
|
45
46
|
}) {
|
|
46
47
|
let nextIndex = prevIndex;
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
// algorithm gracefully falls back to regular `cols`-based handling when no
|
|
53
|
-
// row structure can be detected.
|
|
54
|
-
// ---------------------------------------------------------------------------
|
|
55
|
-
const rows = [];
|
|
56
|
-
const rowIndexMap = {};
|
|
57
|
-
let hasRoleRow = false;
|
|
58
|
-
{
|
|
59
|
-
let currentRowEl = null;
|
|
60
|
-
let currentRowIndex = -1;
|
|
61
|
-
listRef.current.forEach((el, idx) => {
|
|
62
|
-
if (el == null) {
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
const rowEl = el.closest('[role="row"]');
|
|
66
|
-
if (rowEl) {
|
|
67
|
-
hasRoleRow = true;
|
|
68
|
-
}
|
|
69
|
-
if (rowEl !== currentRowEl || currentRowIndex === -1) {
|
|
70
|
-
currentRowEl = rowEl;
|
|
71
|
-
currentRowIndex += 1;
|
|
72
|
-
rows[currentRowIndex] = [];
|
|
73
|
-
}
|
|
74
|
-
rows[currentRowIndex].push(idx);
|
|
75
|
-
rowIndexMap[idx] = currentRowIndex;
|
|
76
|
-
});
|
|
48
|
+
let verticalDirection;
|
|
49
|
+
if (event.key === ARROW_UP) {
|
|
50
|
+
verticalDirection = 'up';
|
|
51
|
+
} else if (event.key === ARROW_DOWN) {
|
|
52
|
+
verticalDirection = 'down';
|
|
77
53
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
const
|
|
84
|
-
|
|
85
|
-
|
|
54
|
+
if (verticalDirection) {
|
|
55
|
+
// -------------------------------------------------------------------------
|
|
56
|
+
// Detect row structure only when handling vertical navigation. This keeps
|
|
57
|
+
// the non-vertical key paths free from row inference work.
|
|
58
|
+
// -------------------------------------------------------------------------
|
|
59
|
+
const rows = [];
|
|
60
|
+
const rowIndexMap = [];
|
|
61
|
+
let hasRoleRow = false;
|
|
62
|
+
let visibleItemCount = 0;
|
|
63
|
+
{
|
|
64
|
+
let currentRowEl = null;
|
|
65
|
+
let currentRowIndex = -1;
|
|
66
|
+
listRef.current.forEach((el, idx) => {
|
|
67
|
+
if (el == null) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
visibleItemCount += 1;
|
|
71
|
+
const rowEl = el.closest('[role="row"]');
|
|
72
|
+
if (rowEl) {
|
|
73
|
+
hasRoleRow = true;
|
|
74
|
+
}
|
|
75
|
+
if (rowEl !== currentRowEl || currentRowIndex === -1) {
|
|
76
|
+
currentRowEl = rowEl;
|
|
77
|
+
currentRowIndex += 1;
|
|
78
|
+
rows[currentRowIndex] = [];
|
|
79
|
+
}
|
|
80
|
+
rows[currentRowIndex].push(idx);
|
|
81
|
+
rowIndexMap[idx] = currentRowIndex;
|
|
82
|
+
});
|
|
86
83
|
}
|
|
87
|
-
|
|
88
|
-
let
|
|
89
|
-
if (
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
84
|
+
let hasDomRows = false;
|
|
85
|
+
let inferredDomCols = 0;
|
|
86
|
+
if (hasRoleRow) {
|
|
87
|
+
for (const row of rows) {
|
|
88
|
+
const rowLength = row.length;
|
|
89
|
+
if (rowLength > inferredDomCols) {
|
|
90
|
+
inferredDomCols = rowLength;
|
|
91
|
+
}
|
|
92
|
+
if (rowLength !== cols) {
|
|
93
|
+
hasDomRows = true;
|
|
94
|
+
}
|
|
94
95
|
}
|
|
95
96
|
}
|
|
96
|
-
const
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
97
|
+
const hasVirtualizedGaps = hasDomRows && visibleItemCount < listRef.current.length;
|
|
98
|
+
const verticalCols = inferredDomCols || cols;
|
|
99
|
+
const navigateVertically = direction => {
|
|
100
|
+
if (!hasDomRows || prevIndex === -1) {
|
|
101
|
+
return undefined;
|
|
102
|
+
}
|
|
103
|
+
const currentRow = rowIndexMap[prevIndex];
|
|
104
|
+
if (currentRow == null) {
|
|
105
|
+
return undefined;
|
|
103
106
|
}
|
|
104
|
-
const
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
107
|
+
const colInRow = rows[currentRow].indexOf(prevIndex);
|
|
108
|
+
const step = direction === 'up' ? -1 : 1;
|
|
109
|
+
for (let nextRow = currentRow + step, i = 0; i < rows.length; i += 1, nextRow += step) {
|
|
110
|
+
if (nextRow < 0 || nextRow >= rows.length) {
|
|
111
|
+
if (!loopFocus || hasVirtualizedGaps) {
|
|
112
|
+
return undefined;
|
|
113
|
+
}
|
|
114
|
+
nextRow = nextRow < 0 ? rows.length - 1 : 0;
|
|
115
|
+
}
|
|
116
|
+
const targetRow = rows[nextRow];
|
|
117
|
+
for (let col = Math.min(colInRow, targetRow.length - 1); col >= 0; col -= 1) {
|
|
118
|
+
const candidate = targetRow[col];
|
|
119
|
+
if (!isListIndexDisabled(listRef, candidate, disabledIndices)) {
|
|
120
|
+
return candidate;
|
|
121
|
+
}
|
|
111
122
|
}
|
|
112
123
|
}
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
124
|
+
return undefined;
|
|
125
|
+
};
|
|
126
|
+
const navigateVerticallyWithInferredRows = direction => {
|
|
127
|
+
if (!hasVirtualizedGaps || prevIndex === -1) {
|
|
128
|
+
return undefined;
|
|
129
|
+
}
|
|
130
|
+
const colInRow = prevIndex % verticalCols;
|
|
131
|
+
const rowStep = direction === 'up' ? -verticalCols : verticalCols;
|
|
132
|
+
const lastRowStart = maxIndex - maxIndex % verticalCols;
|
|
133
|
+
const rowCount = floor(maxIndex / verticalCols) + 1;
|
|
134
|
+
for (let rowStart = prevIndex - colInRow + rowStep, i = 0; i < rowCount; i += 1, rowStart += rowStep) {
|
|
135
|
+
if (rowStart < 0 || rowStart > maxIndex) {
|
|
136
|
+
if (!loopFocus) {
|
|
137
|
+
return undefined;
|
|
138
|
+
}
|
|
139
|
+
rowStart = rowStart < 0 ? lastRowStart : 0;
|
|
140
|
+
}
|
|
141
|
+
const rowEnd = Math.min(rowStart + verticalCols - 1, maxIndex);
|
|
142
|
+
for (let candidate = Math.min(rowStart + colInRow, rowEnd); candidate >= rowStart; candidate -= 1) {
|
|
143
|
+
if (!isListIndexDisabled(listRef, candidate, disabledIndices)) {
|
|
144
|
+
return candidate;
|
|
145
|
+
}
|
|
120
146
|
}
|
|
121
147
|
}
|
|
148
|
+
return undefined;
|
|
149
|
+
};
|
|
150
|
+
if (stop) {
|
|
151
|
+
stopEvent(event);
|
|
122
152
|
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
if (stop) {
|
|
129
|
-
stopEvent(event);
|
|
130
|
-
}
|
|
131
|
-
nextIndex = domBasedCandidate;
|
|
153
|
+
const verticalCandidate = navigateVertically(verticalDirection) ?? navigateVerticallyWithInferredRows(verticalDirection);
|
|
154
|
+
if (verticalCandidate !== undefined) {
|
|
155
|
+
nextIndex = verticalCandidate;
|
|
156
|
+
} else if (prevIndex === -1) {
|
|
157
|
+
nextIndex = verticalDirection === 'up' ? maxIndex : minIndex;
|
|
132
158
|
} else {
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
decrement: true,
|
|
144
|
-
disabledIndices
|
|
145
|
-
});
|
|
146
|
-
if (loopFocus && (prevIndex - cols < minIndex || nextIndex < 0)) {
|
|
147
|
-
const col = prevIndex % cols;
|
|
148
|
-
const maxCol = maxIndex % cols;
|
|
159
|
+
nextIndex = findNonDisabledListIndex(listRef, {
|
|
160
|
+
startingIndex: prevIndex,
|
|
161
|
+
amount: verticalCols,
|
|
162
|
+
decrement: verticalDirection === 'up',
|
|
163
|
+
disabledIndices
|
|
164
|
+
});
|
|
165
|
+
if (loopFocus) {
|
|
166
|
+
if (verticalDirection === 'up' && (prevIndex - verticalCols < minIndex || nextIndex < 0)) {
|
|
167
|
+
const col = prevIndex % verticalCols;
|
|
168
|
+
const maxCol = maxIndex % verticalCols;
|
|
149
169
|
const offset = maxIndex - (maxCol - col);
|
|
150
170
|
if (maxCol === col) {
|
|
151
171
|
nextIndex = maxIndex;
|
|
152
172
|
} else {
|
|
153
|
-
nextIndex = maxCol > col ? offset : offset -
|
|
173
|
+
nextIndex = maxCol > col ? offset : offset - verticalCols;
|
|
154
174
|
}
|
|
155
175
|
}
|
|
156
|
-
|
|
157
|
-
if (isIndexOutOfListBounds(listRef, nextIndex)) {
|
|
158
|
-
nextIndex = prevIndex;
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
if (event.key === ARROW_DOWN) {
|
|
163
|
-
const domBasedCandidate = navigateVertically('down');
|
|
164
|
-
if (domBasedCandidate !== undefined) {
|
|
165
|
-
if (stop) {
|
|
166
|
-
stopEvent(event);
|
|
167
|
-
}
|
|
168
|
-
nextIndex = domBasedCandidate;
|
|
169
|
-
} else {
|
|
170
|
-
if (stop) {
|
|
171
|
-
stopEvent(event);
|
|
172
|
-
}
|
|
173
|
-
if (prevIndex === -1) {
|
|
174
|
-
nextIndex = minIndex;
|
|
175
|
-
} else {
|
|
176
|
-
nextIndex = findNonDisabledListIndex(listRef, {
|
|
177
|
-
startingIndex: prevIndex,
|
|
178
|
-
amount: cols,
|
|
179
|
-
disabledIndices
|
|
180
|
-
});
|
|
181
|
-
if (loopFocus && prevIndex + cols > maxIndex) {
|
|
176
|
+
if (verticalDirection === 'down' && prevIndex + verticalCols > maxIndex) {
|
|
182
177
|
nextIndex = findNonDisabledListIndex(listRef, {
|
|
183
|
-
startingIndex: prevIndex %
|
|
184
|
-
amount:
|
|
178
|
+
startingIndex: prevIndex % verticalCols - verticalCols,
|
|
179
|
+
amount: verticalCols,
|
|
185
180
|
disabledIndices
|
|
186
181
|
});
|
|
187
182
|
}
|
|
188
183
|
}
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
184
|
+
}
|
|
185
|
+
if (isIndexOutOfListBounds(listRef, nextIndex)) {
|
|
186
|
+
nextIndex = prevIndex;
|
|
192
187
|
}
|
|
193
188
|
}
|
|
194
189
|
|
|
@@ -334,15 +329,19 @@ export function getGridCellIndices(indices, cellMap) {
|
|
|
334
329
|
return cellMap.flatMap((index, cellIndex) => indices.includes(index) ? [cellIndex] : []);
|
|
335
330
|
}
|
|
336
331
|
export function isListIndexDisabled(listRef, index, disabledIndices) {
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
if (disabledIndices) {
|
|
341
|
-
return disabledIndices.includes(index);
|
|
332
|
+
const isExplicitlyDisabled = typeof disabledIndices === 'function' ? disabledIndices(index) : disabledIndices?.includes(index) ?? false;
|
|
333
|
+
if (isExplicitlyDisabled) {
|
|
334
|
+
return true;
|
|
342
335
|
}
|
|
343
336
|
const element = listRef.current[index];
|
|
344
337
|
if (!element) {
|
|
345
338
|
return false;
|
|
346
339
|
}
|
|
347
|
-
|
|
340
|
+
if (!isElementVisible(element)) {
|
|
341
|
+
return true;
|
|
342
|
+
}
|
|
343
|
+
return !disabledIndices && (element.hasAttribute('disabled') || element.getAttribute('aria-disabled') === 'true');
|
|
344
|
+
}
|
|
345
|
+
export function isElementVisible(element) {
|
|
346
|
+
return getComputedStyle(element).display !== 'none';
|
|
348
347
|
}
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
type Undo = () => void;
|
|
2
|
+
interface MarkOthersOptions {
|
|
3
|
+
ariaHidden?: boolean | undefined;
|
|
4
|
+
inert?: boolean | undefined;
|
|
5
|
+
mark?: boolean | undefined;
|
|
6
|
+
markerIgnoreElements?: Element[] | undefined;
|
|
7
|
+
}
|
|
2
8
|
export declare const supportsInert: () => boolean;
|
|
3
|
-
export declare function markOthers(avoidElements: Element[],
|
|
9
|
+
export declare function markOthers(avoidElements: Element[], options?: MarkOthersOptions): Undo;
|
|
4
10
|
export {};
|
|
@@ -1,26 +1,28 @@
|
|
|
1
1
|
// Modified to add conditional `aria-hidden` support:
|
|
2
2
|
// https://github.com/theKashey/aria-hidden/blob/9220c8f4a4fd35f63bee5510a9f41a37264382d4/src/index.ts
|
|
3
|
-
import { getNodeName } from '@floating-ui/utils/dom';
|
|
3
|
+
import { getNodeName, isShadowRoot } from '@floating-ui/utils/dom';
|
|
4
4
|
import { ownerDocument } from '@base-ui/utils/owner';
|
|
5
5
|
const counters = {
|
|
6
6
|
inert: new WeakMap(),
|
|
7
|
-
'aria-hidden': new WeakMap()
|
|
8
|
-
none: new WeakMap()
|
|
7
|
+
'aria-hidden': new WeakMap()
|
|
9
8
|
};
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}
|
|
17
|
-
return counters.none;
|
|
18
|
-
}
|
|
19
|
-
let uncontrolledElementsSet = new WeakSet();
|
|
20
|
-
let markerMap = {};
|
|
9
|
+
const markerName = 'data-base-ui-inert';
|
|
10
|
+
const uncontrolledElementsSets = {
|
|
11
|
+
inert: new WeakSet(),
|
|
12
|
+
'aria-hidden': new WeakSet()
|
|
13
|
+
};
|
|
14
|
+
let markerCounterMap = new WeakMap();
|
|
21
15
|
let lockCount = 0;
|
|
16
|
+
function getUncontrolledElementsSet(controlAttribute) {
|
|
17
|
+
return uncontrolledElementsSets[controlAttribute];
|
|
18
|
+
}
|
|
22
19
|
export const supportsInert = () => typeof HTMLElement !== 'undefined' && 'inert' in HTMLElement.prototype;
|
|
23
|
-
|
|
20
|
+
function unwrapHost(node) {
|
|
21
|
+
if (!node) {
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
return isShadowRoot(node) ? node.host : unwrapHost(node.parentNode);
|
|
25
|
+
}
|
|
24
26
|
const correctElements = (parent, targets) => targets.map(target => {
|
|
25
27
|
if (parent.contains(target)) {
|
|
26
28
|
return target;
|
|
@@ -31,91 +33,127 @@ const correctElements = (parent, targets) => targets.map(target => {
|
|
|
31
33
|
}
|
|
32
34
|
return null;
|
|
33
35
|
}).filter(x => x != null);
|
|
34
|
-
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
const hiddenElements = [];
|
|
42
|
-
if (!markerMap[markerName]) {
|
|
43
|
-
markerMap[markerName] = new WeakMap();
|
|
44
|
-
}
|
|
45
|
-
const markerCounter = markerMap[markerName];
|
|
46
|
-
avoidElements.forEach(keep);
|
|
47
|
-
deep(body);
|
|
48
|
-
elementsToKeep.clear();
|
|
49
|
-
function keep(el) {
|
|
50
|
-
if (!el || elementsToKeep.has(el)) {
|
|
51
|
-
return;
|
|
36
|
+
const buildKeepSet = targets => {
|
|
37
|
+
const keep = new Set();
|
|
38
|
+
targets.forEach(target => {
|
|
39
|
+
let node = target;
|
|
40
|
+
while (node && !keep.has(node)) {
|
|
41
|
+
keep.add(node);
|
|
42
|
+
node = node.parentNode;
|
|
52
43
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
if (!parent ||
|
|
44
|
+
});
|
|
45
|
+
return keep;
|
|
46
|
+
};
|
|
47
|
+
const collectOutsideElements = (root, keepElements, stopElements) => {
|
|
48
|
+
const outside = [];
|
|
49
|
+
const walk = parent => {
|
|
50
|
+
if (!parent || stopElements.has(parent)) {
|
|
60
51
|
return;
|
|
61
52
|
}
|
|
62
|
-
|
|
53
|
+
Array.from(parent.children).forEach(node => {
|
|
63
54
|
if (getNodeName(node) === 'script') {
|
|
64
55
|
return;
|
|
65
56
|
}
|
|
66
|
-
if (
|
|
67
|
-
|
|
57
|
+
if (keepElements.has(node)) {
|
|
58
|
+
walk(node);
|
|
68
59
|
} else {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
60
|
+
outside.push(node);
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
};
|
|
64
|
+
walk(root);
|
|
65
|
+
return outside;
|
|
66
|
+
};
|
|
67
|
+
function applyAttributeToOthers(uncorrectedAvoidElements, body, ariaHidden, inert, {
|
|
68
|
+
mark = true,
|
|
69
|
+
markerIgnoreElements = []
|
|
70
|
+
}) {
|
|
71
|
+
// eslint-disable-next-line no-nested-ternary
|
|
72
|
+
const controlAttribute = inert ? 'inert' : ariaHidden ? 'aria-hidden' : null;
|
|
73
|
+
let counterMap = null;
|
|
74
|
+
let uncontrolledElementsSet = null;
|
|
75
|
+
const avoidElements = correctElements(body, uncorrectedAvoidElements);
|
|
76
|
+
const markerIgnoreTargets = mark ? correctElements(body, markerIgnoreElements) : [];
|
|
77
|
+
const markerIgnoreSet = new Set(markerIgnoreTargets);
|
|
78
|
+
const markerTargets = mark ? collectOutsideElements(body, buildKeepSet(avoidElements), new Set(avoidElements)).filter(target => !markerIgnoreSet.has(target)) : [];
|
|
79
|
+
const hiddenElements = [];
|
|
80
|
+
const markedElements = [];
|
|
81
|
+
if (controlAttribute) {
|
|
82
|
+
const map = counters[controlAttribute];
|
|
83
|
+
const currentUncontrolledElementsSet = getUncontrolledElementsSet(controlAttribute);
|
|
84
|
+
uncontrolledElementsSet = currentUncontrolledElementsSet;
|
|
85
|
+
counterMap = map;
|
|
86
|
+
const ariaLiveElements = correctElements(body, Array.from(body.querySelectorAll('[aria-live]')));
|
|
87
|
+
const controlElements = avoidElements.concat(ariaLiveElements);
|
|
88
|
+
const controlTargets = collectOutsideElements(body, buildKeepSet(controlElements), new Set(controlElements));
|
|
89
|
+
controlTargets.forEach(node => {
|
|
90
|
+
const attr = node.getAttribute(controlAttribute);
|
|
91
|
+
const alreadyHidden = attr !== null && attr !== 'false';
|
|
92
|
+
const counterValue = (map.get(node) || 0) + 1;
|
|
93
|
+
map.set(node, counterValue);
|
|
94
|
+
hiddenElements.push(node);
|
|
95
|
+
if (counterValue === 1 && alreadyHidden) {
|
|
96
|
+
currentUncontrolledElementsSet.add(node);
|
|
97
|
+
}
|
|
98
|
+
if (!alreadyHidden) {
|
|
99
|
+
node.setAttribute(controlAttribute, controlAttribute === 'inert' ? '' : 'true');
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
if (mark) {
|
|
104
|
+
markerTargets.forEach(node => {
|
|
105
|
+
const markerValue = (markerCounterMap.get(node) || 0) + 1;
|
|
106
|
+
markerCounterMap.set(node, markerValue);
|
|
107
|
+
markedElements.push(node);
|
|
108
|
+
if (markerValue === 1) {
|
|
109
|
+
node.setAttribute(markerName, '');
|
|
86
110
|
}
|
|
87
111
|
});
|
|
88
112
|
}
|
|
89
113
|
lockCount += 1;
|
|
90
114
|
return () => {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
element
|
|
115
|
+
if (counterMap) {
|
|
116
|
+
hiddenElements.forEach(element => {
|
|
117
|
+
const currentCounterValue = counterMap.get(element) || 0;
|
|
118
|
+
const counterValue = currentCounterValue - 1;
|
|
119
|
+
counterMap.set(element, counterValue);
|
|
120
|
+
if (!counterValue) {
|
|
121
|
+
if (!uncontrolledElementsSet?.has(element) && controlAttribute) {
|
|
122
|
+
element.removeAttribute(controlAttribute);
|
|
123
|
+
}
|
|
124
|
+
uncontrolledElementsSet?.delete(element);
|
|
101
125
|
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
if (mark) {
|
|
129
|
+
markedElements.forEach(element => {
|
|
130
|
+
const markerValue = (markerCounterMap.get(element) || 0) - 1;
|
|
131
|
+
markerCounterMap.set(element, markerValue);
|
|
132
|
+
if (!markerValue) {
|
|
133
|
+
element.removeAttribute(markerName);
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
}
|
|
108
137
|
lockCount -= 1;
|
|
109
138
|
if (!lockCount) {
|
|
110
139
|
counters.inert = new WeakMap();
|
|
111
140
|
counters['aria-hidden'] = new WeakMap();
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
141
|
+
uncontrolledElementsSets.inert = new WeakSet();
|
|
142
|
+
uncontrolledElementsSets['aria-hidden'] = new WeakSet();
|
|
143
|
+
markerCounterMap = new WeakMap();
|
|
115
144
|
}
|
|
116
145
|
};
|
|
117
146
|
}
|
|
118
|
-
export function markOthers(avoidElements,
|
|
147
|
+
export function markOthers(avoidElements, options = {}) {
|
|
148
|
+
const {
|
|
149
|
+
ariaHidden = false,
|
|
150
|
+
inert = false,
|
|
151
|
+
mark = true,
|
|
152
|
+
markerIgnoreElements = []
|
|
153
|
+
} = options;
|
|
119
154
|
const body = ownerDocument(avoidElements[0]).body;
|
|
120
|
-
return applyAttributeToOthers(avoidElements
|
|
155
|
+
return applyAttributeToOthers(avoidElements, body, ariaHidden, inert, {
|
|
156
|
+
mark,
|
|
157
|
+
markerIgnoreElements
|
|
158
|
+
});
|
|
121
159
|
}
|
package/esm/form/Form.d.ts
CHANGED
|
@@ -21,7 +21,7 @@ export interface FormActions {
|
|
|
21
21
|
validate: (fieldName?: string | undefined) => void;
|
|
22
22
|
}
|
|
23
23
|
export interface FormState {}
|
|
24
|
-
export interface FormProps<FormValues extends Record<string, any> = Record<string, any>> extends BaseUIComponentProps<'form',
|
|
24
|
+
export interface FormProps<FormValues extends Record<string, any> = Record<string, any>> extends BaseUIComponentProps<'form', FormState> {
|
|
25
25
|
/**
|
|
26
26
|
* Determines when the form should be validated.
|
|
27
27
|
* The `validationMode` prop on `<Field.Root>` takes precedence over this.
|
package/esm/global.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
declare global {
|
|
2
2
|
/**
|
|
3
|
-
* When `true`, disables animation-related code, even if supported by the runtime
|
|
3
|
+
* When `true`, disables animation-related code, even if supported by the runtime environment.
|
|
4
4
|
*/
|
|
5
5
|
// eslint-disable-next-line vars-on-top
|
|
6
6
|
var BASE_UI_ANIMATIONS_DISABLED: boolean;
|
package/esm/index.js
CHANGED
package/esm/input/Input.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import type { BaseUIComponentProps } from "../utils/types.js";
|
|
3
|
-
import { Field } from "../field/index.js";
|
|
3
|
+
import { Field, type FieldControlState } from "../field/index.js";
|
|
4
4
|
/**
|
|
5
5
|
* A native input element that automatically works with [Field](https://base-ui.com/react/components/field).
|
|
6
6
|
* Renders an `<input>` element.
|
|
@@ -8,14 +8,21 @@ import { Field } from "../field/index.js";
|
|
|
8
8
|
* Documentation: [Base UI Input](https://base-ui.com/react/components/input)
|
|
9
9
|
*/
|
|
10
10
|
export declare const Input: React.ForwardRefExoticComponent<Omit<InputProps, "ref"> & React.RefAttributes<HTMLElement>>;
|
|
11
|
-
export interface InputProps extends BaseUIComponentProps<'input',
|
|
11
|
+
export interface InputProps extends BaseUIComponentProps<'input', InputState> {
|
|
12
12
|
/**
|
|
13
13
|
* Callback fired when the `value` changes. Use when controlled.
|
|
14
14
|
*/
|
|
15
15
|
onValueChange?: Field.Control.Props['onValueChange'] | undefined;
|
|
16
|
+
/**
|
|
17
|
+
* The default value of the input. Use when uncontrolled.
|
|
18
|
+
*/
|
|
16
19
|
defaultValue?: Field.Control.Props['defaultValue'] | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* The value of the input. Use when controlled.
|
|
22
|
+
*/
|
|
23
|
+
value?: React.ComponentProps<'input'>['value'] | undefined;
|
|
17
24
|
}
|
|
18
|
-
export interface InputState extends
|
|
25
|
+
export interface InputState extends FieldControlState {}
|
|
19
26
|
export type InputChangeEventReason = Field.Control.ChangeEventReason;
|
|
20
27
|
export type InputChangeEventDetails = Field.Control.ChangeEventDetails;
|
|
21
28
|
export declare namespace Input {
|
|
@@ -3,10 +3,13 @@ import * as React from 'react';
|
|
|
3
3
|
* @internal
|
|
4
4
|
*/
|
|
5
5
|
export declare const LabelableProvider: React.FC<LabelableProvider.Props>;
|
|
6
|
+
export interface LabelableProviderState {}
|
|
6
7
|
export interface LabelableProviderProps {
|
|
7
|
-
|
|
8
|
+
controlId?: string | null | undefined;
|
|
9
|
+
labelId?: string | undefined;
|
|
8
10
|
children?: React.ReactNode;
|
|
9
11
|
}
|
|
10
12
|
export declare namespace LabelableProvider {
|
|
13
|
+
type State = LabelableProviderState;
|
|
11
14
|
type Props = LabelableProviderProps;
|
|
12
15
|
}
|
|
@@ -13,8 +13,9 @@ import { LabelableContext, useLabelableContext } from "./LabelableContext.js";
|
|
|
13
13
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
14
14
|
export const LabelableProvider = function LabelableProvider(props) {
|
|
15
15
|
const defaultId = useBaseUiId();
|
|
16
|
-
const
|
|
17
|
-
const [
|
|
16
|
+
const initialControlId = props.controlId === undefined ? defaultId : props.controlId;
|
|
17
|
+
const [controlId, setControlIdState] = React.useState(initialControlId);
|
|
18
|
+
const [labelId, setLabelId] = React.useState(props.labelId);
|
|
18
19
|
const [messageIds, setMessageIds] = React.useState([]);
|
|
19
20
|
const registrationsRef = useRefWithInit(() => new Map());
|
|
20
21
|
const {
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* @internal
|
|
4
|
+
*/
|
|
5
|
+
export declare function useAriaLabelledBy(explicitAriaLabelledBy: string | undefined, labelId: string | undefined, labelSourceRef: React.RefObject<LabelSource | null>, enableFallback?: boolean, labelSourceId?: string): string | undefined;
|
|
6
|
+
type LabelSource = HTMLElement & {
|
|
7
|
+
labels?: NodeListOf<HTMLLabelElement> | null | undefined;
|
|
8
|
+
};
|
|
9
|
+
export {};
|