@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
|
@@ -27,6 +27,7 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
27
27
|
// Module-level flag to ensure we only register the CSS properties once,
|
|
28
28
|
// regardless of how many Scroll Area components are mounted.
|
|
29
29
|
let scrollAreaOverflowVarsRegistered = false;
|
|
30
|
+
const HAS_RESIZE_OBSERVER = typeof ResizeObserver !== 'undefined';
|
|
30
31
|
|
|
31
32
|
/**
|
|
32
33
|
* Removes inheritance of the scroll area overflow CSS variables, which
|
|
@@ -85,6 +86,7 @@ const ScrollAreaViewport = exports.ScrollAreaViewport = /*#__PURE__*/React.forwa
|
|
|
85
86
|
rootId,
|
|
86
87
|
setHiddenState,
|
|
87
88
|
hiddenState,
|
|
89
|
+
setHasMeasuredScrollbar,
|
|
88
90
|
handleScroll,
|
|
89
91
|
setHovering,
|
|
90
92
|
setOverflowEdges,
|
|
@@ -95,6 +97,7 @@ const ScrollAreaViewport = exports.ScrollAreaViewport = /*#__PURE__*/React.forwa
|
|
|
95
97
|
} = (0, _ScrollAreaRootContext.useScrollAreaRootContext)();
|
|
96
98
|
const direction = (0, _DirectionContext.useDirection)();
|
|
97
99
|
const programmaticScrollRef = React.useRef(true);
|
|
100
|
+
const lastMeasuredViewportMetricsRef = React.useRef([NaN, NaN, NaN, NaN]);
|
|
98
101
|
const scrollEndTimeout = (0, _useTimeout.useTimeout)();
|
|
99
102
|
const waitForAnimationsTimeout = (0, _useTimeout.useTimeout)();
|
|
100
103
|
const computeThumbPosition = (0, _useStableCallback.useStableCallback)(() => {
|
|
@@ -113,11 +116,21 @@ const ScrollAreaViewport = exports.ScrollAreaViewport = /*#__PURE__*/React.forwa
|
|
|
113
116
|
const viewportWidth = viewportEl.clientWidth;
|
|
114
117
|
const scrollTop = viewportEl.scrollTop;
|
|
115
118
|
const scrollLeft = viewportEl.scrollLeft;
|
|
119
|
+
const lastMeasuredViewportMetrics = lastMeasuredViewportMetricsRef.current;
|
|
120
|
+
const isFirstMeasurement = Number.isNaN(lastMeasuredViewportMetrics[0]);
|
|
121
|
+
lastMeasuredViewportMetrics[0] = viewportHeight;
|
|
122
|
+
lastMeasuredViewportMetrics[1] = scrollableContentHeight;
|
|
123
|
+
lastMeasuredViewportMetrics[2] = viewportWidth;
|
|
124
|
+
lastMeasuredViewportMetrics[3] = scrollableContentWidth;
|
|
125
|
+
if (isFirstMeasurement) {
|
|
126
|
+
setHasMeasuredScrollbar(true);
|
|
127
|
+
}
|
|
116
128
|
if (scrollableContentHeight === 0 || scrollableContentWidth === 0) {
|
|
117
129
|
return;
|
|
118
130
|
}
|
|
119
|
-
const
|
|
120
|
-
const
|
|
131
|
+
const nextHiddenState = getHiddenState(viewportEl);
|
|
132
|
+
const scrollbarYHidden = nextHiddenState.y;
|
|
133
|
+
const scrollbarXHidden = nextHiddenState.x;
|
|
121
134
|
const ratioX = viewportWidth / scrollableContentWidth;
|
|
122
135
|
const ratioY = viewportHeight / scrollableContentHeight;
|
|
123
136
|
const maxScrollLeft = Math.max(0, scrollableContentWidth - viewportWidth);
|
|
@@ -211,17 +224,7 @@ const ScrollAreaViewport = exports.ScrollAreaViewport = /*#__PURE__*/React.forwa
|
|
|
211
224
|
});
|
|
212
225
|
}
|
|
213
226
|
}
|
|
214
|
-
setHiddenState(prevState =>
|
|
215
|
-
const cornerHidden = scrollbarYHidden || scrollbarXHidden;
|
|
216
|
-
if (prevState.y === scrollbarYHidden && prevState.x === scrollbarXHidden && prevState.corner === cornerHidden) {
|
|
217
|
-
return prevState;
|
|
218
|
-
}
|
|
219
|
-
return {
|
|
220
|
-
y: scrollbarYHidden,
|
|
221
|
-
x: scrollbarXHidden,
|
|
222
|
-
corner: cornerHidden
|
|
223
|
-
};
|
|
224
|
-
});
|
|
227
|
+
setHiddenState(prevState => mergeHiddenState(prevState, nextHiddenState));
|
|
225
228
|
const nextOverflowEdges = {
|
|
226
229
|
xStart: !scrollbarXHidden && scrollLeftFromStart > overflowEdgeThreshold.xStart,
|
|
227
230
|
xEnd: !scrollbarXHidden && scrollLeftFromEnd > overflowEdgeThreshold.xEnd,
|
|
@@ -240,17 +243,15 @@ const ScrollAreaViewport = exports.ScrollAreaViewport = /*#__PURE__*/React.forwa
|
|
|
240
243
|
return undefined;
|
|
241
244
|
}
|
|
242
245
|
removeCSSVariableInheritance();
|
|
243
|
-
|
|
246
|
+
if (HAS_RESIZE_OBSERVER) {
|
|
247
|
+
return undefined;
|
|
248
|
+
}
|
|
244
249
|
return (0, _onVisible.onVisible)(viewportRef.current, () => {
|
|
245
|
-
if (!hasInitialized) {
|
|
246
|
-
hasInitialized = true;
|
|
247
|
-
return;
|
|
248
|
-
}
|
|
249
250
|
computeThumbPosition();
|
|
250
251
|
});
|
|
251
252
|
}, [computeThumbPosition, viewportRef]);
|
|
252
253
|
(0, _useIsoLayoutEffect.useIsoLayoutEffect)(() => {
|
|
253
|
-
// Wait for scrollbar
|
|
254
|
+
// Wait for scrollbar and thumb refs after hidden-state toggles, and refresh math on direction flips.
|
|
254
255
|
queueMicrotask(computeThumbPosition);
|
|
255
256
|
}, [computeThumbPosition, hiddenState, direction]);
|
|
256
257
|
(0, _useIsoLayoutEffect.useIsoLayoutEffect)(() => {
|
|
@@ -262,16 +263,20 @@ const ScrollAreaViewport = exports.ScrollAreaViewport = /*#__PURE__*/React.forwa
|
|
|
262
263
|
}, [viewportRef, setHovering]);
|
|
263
264
|
React.useEffect(() => {
|
|
264
265
|
const viewport = viewportRef.current;
|
|
265
|
-
if (
|
|
266
|
+
if (!HAS_RESIZE_OBSERVER || !viewport) {
|
|
266
267
|
return undefined;
|
|
267
268
|
}
|
|
268
269
|
let hasInitialized = false;
|
|
269
270
|
const ro = new ResizeObserver(() => {
|
|
270
|
-
//
|
|
271
|
-
//
|
|
271
|
+
// Avoid duplicate mount-time recompute when observer data matches what the mount
|
|
272
|
+
// scheduling pass already measured. If dimensions changed before the first observer
|
|
273
|
+
// delivery, keep the recompute so overflow transitions stay in sync.
|
|
272
274
|
if (!hasInitialized) {
|
|
273
275
|
hasInitialized = true;
|
|
274
|
-
|
|
276
|
+
const lastMeasuredViewportMetrics = lastMeasuredViewportMetricsRef.current;
|
|
277
|
+
if (lastMeasuredViewportMetrics[0] === viewport.clientHeight && lastMeasuredViewportMetrics[1] === viewport.scrollHeight && lastMeasuredViewportMetrics[2] === viewport.clientWidth && lastMeasuredViewportMetrics[3] === viewport.scrollWidth) {
|
|
278
|
+
return;
|
|
279
|
+
}
|
|
275
280
|
}
|
|
276
281
|
computeThumbPosition();
|
|
277
282
|
});
|
|
@@ -307,9 +312,8 @@ const ScrollAreaViewport = exports.ScrollAreaViewport = /*#__PURE__*/React.forwa
|
|
|
307
312
|
'data-id': `${rootId}-viewport`
|
|
308
313
|
}),
|
|
309
314
|
// https://accessibilityinsights.io/info-examples/web/scrollable-region-focusable/
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
}),
|
|
315
|
+
// Keep non-scrollable viewports out of tab order.
|
|
316
|
+
tabIndex: hiddenState.x && hiddenState.y ? -1 : 0,
|
|
313
317
|
className: _styles.styleDisableScrollbar.className,
|
|
314
318
|
style: {
|
|
315
319
|
overflow: 'scroll'
|
|
@@ -366,4 +370,19 @@ const ScrollAreaViewport = exports.ScrollAreaViewport = /*#__PURE__*/React.forwa
|
|
|
366
370
|
children: element
|
|
367
371
|
});
|
|
368
372
|
});
|
|
369
|
-
if (process.env.NODE_ENV !== "production") ScrollAreaViewport.displayName = "ScrollAreaViewport";
|
|
373
|
+
if (process.env.NODE_ENV !== "production") ScrollAreaViewport.displayName = "ScrollAreaViewport";
|
|
374
|
+
function getHiddenState(viewport) {
|
|
375
|
+
const y = viewport.clientHeight >= viewport.scrollHeight;
|
|
376
|
+
const x = viewport.clientWidth >= viewport.scrollWidth;
|
|
377
|
+
return {
|
|
378
|
+
y,
|
|
379
|
+
x,
|
|
380
|
+
corner: y || x
|
|
381
|
+
};
|
|
382
|
+
}
|
|
383
|
+
function mergeHiddenState(prevState, nextState) {
|
|
384
|
+
if (prevState.y === nextState.y && prevState.x === nextState.x && prevState.corner === nextState.corner) {
|
|
385
|
+
return prevState;
|
|
386
|
+
}
|
|
387
|
+
return nextState;
|
|
388
|
+
}
|
|
@@ -13,11 +13,20 @@ export interface SelectArrowState {
|
|
|
13
13
|
* Whether the select popup is currently open.
|
|
14
14
|
*/
|
|
15
15
|
open: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* The side of the anchor the component is placed on.
|
|
18
|
+
*/
|
|
16
19
|
side: Side | 'none';
|
|
20
|
+
/**
|
|
21
|
+
* The alignment of the component relative to the anchor.
|
|
22
|
+
*/
|
|
17
23
|
align: Align;
|
|
24
|
+
/**
|
|
25
|
+
* Whether the arrow cannot be centered on the anchor.
|
|
26
|
+
*/
|
|
18
27
|
uncentered: boolean;
|
|
19
28
|
}
|
|
20
|
-
export interface SelectArrowProps extends BaseUIComponentProps<'div',
|
|
29
|
+
export interface SelectArrowProps extends BaseUIComponentProps<'div', SelectArrowState> {}
|
|
21
30
|
export declare namespace SelectArrow {
|
|
22
31
|
type State = SelectArrowState;
|
|
23
32
|
type Props = SelectArrowProps;
|
|
@@ -9,10 +9,16 @@ import type { TransitionStatus } from "../../utils/useTransitionStatus.js";
|
|
|
9
9
|
*/
|
|
10
10
|
export declare const SelectBackdrop: React.ForwardRefExoticComponent<Omit<SelectBackdropProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
11
11
|
export interface SelectBackdropState {
|
|
12
|
+
/**
|
|
13
|
+
* Whether the component is open.
|
|
14
|
+
*/
|
|
12
15
|
open: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* The transition status of the component.
|
|
18
|
+
*/
|
|
13
19
|
transitionStatus: TransitionStatus;
|
|
14
20
|
}
|
|
15
|
-
export interface SelectBackdropProps extends BaseUIComponentProps<'div',
|
|
21
|
+
export interface SelectBackdropProps extends BaseUIComponentProps<'div', SelectBackdropState> {}
|
|
16
22
|
export declare namespace SelectBackdrop {
|
|
17
23
|
type State = SelectBackdropState;
|
|
18
24
|
type Props = SelectBackdropProps;
|
|
@@ -8,7 +8,7 @@ import type { BaseUIComponentProps } from "../../utils/types.js";
|
|
|
8
8
|
*/
|
|
9
9
|
export declare const SelectGroup: React.ForwardRefExoticComponent<Omit<SelectGroupProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
10
10
|
export interface SelectGroupState {}
|
|
11
|
-
export interface SelectGroupProps extends BaseUIComponentProps<'div',
|
|
11
|
+
export interface SelectGroupProps extends BaseUIComponentProps<'div', SelectGroupState> {}
|
|
12
12
|
export declare namespace SelectGroup {
|
|
13
13
|
type State = SelectGroupState;
|
|
14
14
|
type Props = SelectGroupProps;
|
|
@@ -8,7 +8,7 @@ import type { BaseUIComponentProps } from "../../utils/types.js";
|
|
|
8
8
|
*/
|
|
9
9
|
export declare const SelectGroupLabel: React.ForwardRefExoticComponent<Omit<SelectGroupLabelProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
10
10
|
export interface SelectGroupLabelState {}
|
|
11
|
-
export interface SelectGroupLabelProps extends BaseUIComponentProps<'div',
|
|
11
|
+
export interface SelectGroupLabelProps extends BaseUIComponentProps<'div', SelectGroupLabelState> {}
|
|
12
12
|
export declare namespace SelectGroupLabel {
|
|
13
13
|
type State = SelectGroupLabelState;
|
|
14
14
|
type Props = SelectGroupLabelProps;
|
|
@@ -13,7 +13,7 @@ export interface SelectIconState {
|
|
|
13
13
|
*/
|
|
14
14
|
open: boolean;
|
|
15
15
|
}
|
|
16
|
-
export interface SelectIconProps extends BaseUIComponentProps<'span',
|
|
16
|
+
export interface SelectIconProps extends BaseUIComponentProps<'span', SelectIconState> {}
|
|
17
17
|
export declare namespace SelectIcon {
|
|
18
18
|
type State = SelectIconState;
|
|
19
19
|
type Props = SelectIconProps;
|
package/select/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export * as Select from "./index.parts.js";
|
|
2
2
|
export type * from "./root/SelectRoot.js";
|
|
3
|
+
export type * from "./label/SelectLabel.js";
|
|
3
4
|
export type * from "./trigger/SelectTrigger.js";
|
|
4
5
|
export type * from "./value/SelectValue.js";
|
|
5
6
|
export type * from "./icon/SelectIcon.js";
|
package/select/index.parts.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { SelectRoot as Root } from "./root/SelectRoot.js";
|
|
2
|
+
export { SelectLabel as Label } from "./label/SelectLabel.js";
|
|
2
3
|
export { SelectTrigger as Trigger } from "./trigger/SelectTrigger.js";
|
|
3
4
|
export { SelectValue as Value } from "./value/SelectValue.js";
|
|
4
5
|
export { SelectIcon as Icon } from "./icon/SelectIcon.js";
|
package/select/index.parts.js
CHANGED
|
@@ -51,6 +51,12 @@ Object.defineProperty(exports, "ItemText", {
|
|
|
51
51
|
return _SelectItemText.SelectItemText;
|
|
52
52
|
}
|
|
53
53
|
});
|
|
54
|
+
Object.defineProperty(exports, "Label", {
|
|
55
|
+
enumerable: true,
|
|
56
|
+
get: function () {
|
|
57
|
+
return _SelectLabel.SelectLabel;
|
|
58
|
+
}
|
|
59
|
+
});
|
|
54
60
|
Object.defineProperty(exports, "List", {
|
|
55
61
|
enumerable: true,
|
|
56
62
|
get: function () {
|
|
@@ -112,6 +118,7 @@ Object.defineProperty(exports, "Value", {
|
|
|
112
118
|
}
|
|
113
119
|
});
|
|
114
120
|
var _SelectRoot = require("./root/SelectRoot");
|
|
121
|
+
var _SelectLabel = require("./label/SelectLabel");
|
|
115
122
|
var _SelectTrigger = require("./trigger/SelectTrigger");
|
|
116
123
|
var _SelectValue = require("./value/SelectValue");
|
|
117
124
|
var _SelectIcon = require("./icon/SelectIcon");
|
|
@@ -21,7 +21,7 @@ export interface SelectItemState {
|
|
|
21
21
|
*/
|
|
22
22
|
highlighted: boolean;
|
|
23
23
|
}
|
|
24
|
-
export interface SelectItemProps extends NonNativeButtonProps, Omit<BaseUIComponentProps<'div',
|
|
24
|
+
export interface SelectItemProps extends NonNativeButtonProps, Omit<BaseUIComponentProps<'div', SelectItemState>, 'id'> {
|
|
25
25
|
children?: React.ReactNode;
|
|
26
26
|
/**
|
|
27
27
|
* A unique value that identifies this select item.
|
|
@@ -111,7 +111,8 @@ const SelectItem = exports.SelectItem = /*#__PURE__*/React.memo(/*#__PURE__*/Rea
|
|
|
111
111
|
} = (0, _useButton.useButton)({
|
|
112
112
|
disabled,
|
|
113
113
|
focusableWhenDisabled: true,
|
|
114
|
-
native: nativeButton
|
|
114
|
+
native: nativeButton,
|
|
115
|
+
composite: true
|
|
115
116
|
});
|
|
116
117
|
function commitSelection(event) {
|
|
117
118
|
const selectedValue = store.state.value;
|
|
@@ -160,6 +161,9 @@ const SelectItem = exports.SelectItem = /*#__PURE__*/React.memo(/*#__PURE__*/Rea
|
|
|
160
161
|
onKeyDown(event) {
|
|
161
162
|
lastKeyRef.current = event.key;
|
|
162
163
|
store.set('activeIndex', index);
|
|
164
|
+
if (event.key === ' ' && typingRef.current) {
|
|
165
|
+
event.preventDefault();
|
|
166
|
+
}
|
|
163
167
|
},
|
|
164
168
|
onClick(event) {
|
|
165
169
|
didPointerDownRef.current = false;
|
|
@@ -168,7 +172,7 @@ const SelectItem = exports.SelectItem = /*#__PURE__*/React.memo(/*#__PURE__*/Rea
|
|
|
168
172
|
if (event.type === 'keydown' && lastKeyRef.current === null) {
|
|
169
173
|
return;
|
|
170
174
|
}
|
|
171
|
-
if (disabled || lastKeyRef.current === ' ' && typingRef.current || pointerTypeRef.current !== 'touch' && !highlighted) {
|
|
175
|
+
if (disabled || event.type === 'keydown' && lastKeyRef.current === ' ' && typingRef.current || pointerTypeRef.current !== 'touch' && !highlighted) {
|
|
172
176
|
return;
|
|
173
177
|
}
|
|
174
178
|
lastKeyRef.current = null;
|
|
@@ -181,10 +185,12 @@ const SelectItem = exports.SelectItem = /*#__PURE__*/React.memo(/*#__PURE__*/Rea
|
|
|
181
185
|
pointerTypeRef.current = event.pointerType;
|
|
182
186
|
didPointerDownRef.current = true;
|
|
183
187
|
},
|
|
184
|
-
onMouseUp(
|
|
188
|
+
onMouseUp() {
|
|
185
189
|
if (disabled) {
|
|
186
190
|
return;
|
|
187
191
|
}
|
|
192
|
+
|
|
193
|
+
// Regular click (pointerdown on this element) if didPointerDownRef is set, otherwise drag-to-select
|
|
188
194
|
if (didPointerDownRef.current) {
|
|
189
195
|
didPointerDownRef.current = false;
|
|
190
196
|
return;
|
|
@@ -194,7 +200,7 @@ const SelectItem = exports.SelectItem = /*#__PURE__*/React.memo(/*#__PURE__*/Rea
|
|
|
194
200
|
if (disallowSelectedMouseUp || disallowUnselectedMouseUp || pointerTypeRef.current !== 'touch' && !highlighted) {
|
|
195
201
|
return;
|
|
196
202
|
}
|
|
197
|
-
|
|
203
|
+
itemRef.current?.click();
|
|
198
204
|
}
|
|
199
205
|
};
|
|
200
206
|
const element = (0, _useRenderElement.useRenderElement)('div', componentProps, {
|
|
@@ -9,12 +9,20 @@ import { type TransitionStatus } from "../../utils/useTransitionStatus.js";
|
|
|
9
9
|
*/
|
|
10
10
|
export declare const SelectItemIndicator: React.ForwardRefExoticComponent<Omit<SelectItemIndicatorProps, "ref"> & React.RefAttributes<HTMLSpanElement>>;
|
|
11
11
|
export interface SelectItemIndicatorState {
|
|
12
|
+
/**
|
|
13
|
+
* Whether the item is selected.
|
|
14
|
+
*/
|
|
12
15
|
selected: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* The transition status of the component.
|
|
18
|
+
*/
|
|
13
19
|
transitionStatus: TransitionStatus;
|
|
14
20
|
}
|
|
15
|
-
export interface SelectItemIndicatorProps extends BaseUIComponentProps<'span',
|
|
21
|
+
export interface SelectItemIndicatorProps extends BaseUIComponentProps<'span', SelectItemIndicatorState> {
|
|
16
22
|
children?: React.ReactNode;
|
|
17
|
-
/**
|
|
23
|
+
/**
|
|
24
|
+
* Whether to keep the HTML element in the DOM when the item is not selected.
|
|
25
|
+
*/
|
|
18
26
|
keepMounted?: boolean | undefined;
|
|
19
27
|
}
|
|
20
28
|
export declare namespace SelectItemIndicator {
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.SelectItemIndicatorDataAttributes = void 0;
|
|
7
|
+
var _stateAttributesMapping = require("../../utils/stateAttributesMapping");
|
|
8
|
+
let SelectItemIndicatorDataAttributes = exports.SelectItemIndicatorDataAttributes = function (SelectItemIndicatorDataAttributes) {
|
|
9
|
+
/**
|
|
10
|
+
* Present when the indicator is animating in.
|
|
11
|
+
*/
|
|
12
|
+
SelectItemIndicatorDataAttributes[SelectItemIndicatorDataAttributes["startingStyle"] = _stateAttributesMapping.TransitionStatusDataAttributes.startingStyle] = "startingStyle";
|
|
13
|
+
/**
|
|
14
|
+
* Present when the indicator is animating out.
|
|
15
|
+
*/
|
|
16
|
+
SelectItemIndicatorDataAttributes[SelectItemIndicatorDataAttributes["endingStyle"] = _stateAttributesMapping.TransitionStatusDataAttributes.endingStyle] = "endingStyle";
|
|
17
|
+
return SelectItemIndicatorDataAttributes;
|
|
18
|
+
}({});
|
|
@@ -8,7 +8,7 @@ import type { BaseUIComponentProps } from "../../utils/types.js";
|
|
|
8
8
|
*/
|
|
9
9
|
export declare const SelectItemText: React.NamedExoticComponent<Omit<SelectItemTextProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
10
10
|
export interface SelectItemTextState {}
|
|
11
|
-
export interface SelectItemTextProps extends BaseUIComponentProps<'div',
|
|
11
|
+
export interface SelectItemTextProps extends BaseUIComponentProps<'div', SelectItemTextState> {}
|
|
12
12
|
export declare namespace SelectItemText {
|
|
13
13
|
type State = SelectItemTextState;
|
|
14
14
|
type Props = SelectItemTextProps;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import type { BaseUIComponentProps } from "../../utils/types.js";
|
|
3
|
+
import type { FieldRoot } from "../../field/root/FieldRoot.js";
|
|
4
|
+
/**
|
|
5
|
+
* An accessible label that is automatically associated with the select trigger.
|
|
6
|
+
* Renders a `<div>` element.
|
|
7
|
+
*
|
|
8
|
+
* Documentation: [Base UI Select](https://base-ui.com/react/components/select)
|
|
9
|
+
*/
|
|
10
|
+
export declare const SelectLabel: React.ForwardRefExoticComponent<Omit<SelectLabelProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
11
|
+
export type SelectLabelState = FieldRoot.State;
|
|
12
|
+
export interface SelectLabelProps extends Omit<BaseUIComponentProps<'div', SelectLabel.State>, 'id'> {}
|
|
13
|
+
export declare namespace SelectLabel {
|
|
14
|
+
type State = SelectLabelState;
|
|
15
|
+
type Props = SelectLabelProps;
|
|
16
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
'use client';
|
|
3
|
+
|
|
4
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.SelectLabel = void 0;
|
|
9
|
+
var React = _interopRequireWildcard(require("react"));
|
|
10
|
+
var _store = require("@base-ui/utils/store");
|
|
11
|
+
var _useRenderElement = require("../../utils/useRenderElement");
|
|
12
|
+
var _FieldRootContext = require("../../field/root/FieldRootContext");
|
|
13
|
+
var _constants = require("../../field/utils/constants");
|
|
14
|
+
var _useLabel = require("../../labelable-provider/useLabel");
|
|
15
|
+
var _resolveAriaLabelledBy = require("../../utils/resolveAriaLabelledBy");
|
|
16
|
+
var _SelectRootContext = require("../root/SelectRootContext");
|
|
17
|
+
var _store2 = require("../store");
|
|
18
|
+
/**
|
|
19
|
+
* An accessible label that is automatically associated with the select trigger.
|
|
20
|
+
* Renders a `<div>` element.
|
|
21
|
+
*
|
|
22
|
+
* Documentation: [Base UI Select](https://base-ui.com/react/components/select)
|
|
23
|
+
*/
|
|
24
|
+
const SelectLabel = exports.SelectLabel = /*#__PURE__*/React.forwardRef(function SelectLabel(componentProps, forwardedRef) {
|
|
25
|
+
const {
|
|
26
|
+
render,
|
|
27
|
+
className,
|
|
28
|
+
...elementProps
|
|
29
|
+
} = componentProps;
|
|
30
|
+
// Keep label id derived from the root and ignore runtime `id` overrides from untyped consumers.
|
|
31
|
+
const elementPropsWithoutId = elementProps;
|
|
32
|
+
delete elementPropsWithoutId.id;
|
|
33
|
+
const fieldRootContext = (0, _FieldRootContext.useFieldRootContext)();
|
|
34
|
+
const {
|
|
35
|
+
store
|
|
36
|
+
} = (0, _SelectRootContext.useSelectRootContext)();
|
|
37
|
+
const triggerElement = (0, _store.useStore)(store, _store2.selectors.triggerElement);
|
|
38
|
+
const rootId = (0, _store.useStore)(store, _store2.selectors.id);
|
|
39
|
+
const defaultLabelId = (0, _resolveAriaLabelledBy.getDefaultLabelId)(rootId);
|
|
40
|
+
const labelProps = (0, _useLabel.useLabel)({
|
|
41
|
+
id: defaultLabelId,
|
|
42
|
+
fallbackControlId: triggerElement?.id ?? rootId,
|
|
43
|
+
setLabelId(nextLabelId) {
|
|
44
|
+
store.set('labelId', nextLabelId);
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
return (0, _useRenderElement.useRenderElement)('div', componentProps, {
|
|
48
|
+
ref: forwardedRef,
|
|
49
|
+
state: fieldRootContext.state,
|
|
50
|
+
props: [labelProps, elementProps],
|
|
51
|
+
stateAttributesMapping: _constants.fieldValidityMapping
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
if (process.env.NODE_ENV !== "production") SelectLabel.displayName = "SelectLabel";
|
|
@@ -7,7 +7,7 @@ import type { BaseUIComponentProps } from "../../utils/types.js";
|
|
|
7
7
|
* Documentation: [Base UI Select](https://base-ui.com/react/components/select)
|
|
8
8
|
*/
|
|
9
9
|
export declare const SelectList: React.ForwardRefExoticComponent<Omit<SelectListProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
10
|
-
export interface SelectListProps extends BaseUIComponentProps<'div',
|
|
10
|
+
export interface SelectListProps extends BaseUIComponentProps<'div', SelectListState> {}
|
|
11
11
|
export interface SelectListState {}
|
|
12
12
|
export declare namespace SelectList {
|
|
13
13
|
type Props = SelectListProps;
|
|
@@ -10,7 +10,7 @@ import type { TransitionStatus } from "../../utils/useTransitionStatus.js";
|
|
|
10
10
|
* Documentation: [Base UI Select](https://base-ui.com/react/components/select)
|
|
11
11
|
*/
|
|
12
12
|
export declare const SelectPopup: React.ForwardRefExoticComponent<Omit<SelectPopupProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
13
|
-
export interface SelectPopupProps extends BaseUIComponentProps<'div',
|
|
13
|
+
export interface SelectPopupProps extends BaseUIComponentProps<'div', SelectPopupState> {
|
|
14
14
|
children?: React.ReactNode;
|
|
15
15
|
/**
|
|
16
16
|
* Determines the element to focus when the select popup is closed.
|
|
@@ -21,12 +21,24 @@ export interface SelectPopupProps extends BaseUIComponentProps<'div', SelectPopu
|
|
|
21
21
|
* - `function`: Called with the interaction type (`mouse`, `touch`, `pen`, or `keyboard`).
|
|
22
22
|
* Return an element to focus, `true` to use the default behavior, or `false`/`undefined` to do nothing.
|
|
23
23
|
*/
|
|
24
|
-
finalFocus?:
|
|
24
|
+
finalFocus?: boolean | React.RefObject<HTMLElement | null> | ((closeType: InteractionType) => boolean | HTMLElement | null | void) | undefined;
|
|
25
25
|
}
|
|
26
26
|
export interface SelectPopupState {
|
|
27
|
+
/**
|
|
28
|
+
* The side of the anchor the component is placed on.
|
|
29
|
+
*/
|
|
27
30
|
side: Side | 'none';
|
|
31
|
+
/**
|
|
32
|
+
* The alignment of the component relative to the anchor.
|
|
33
|
+
*/
|
|
28
34
|
align: Align;
|
|
35
|
+
/**
|
|
36
|
+
* Whether the component is open.
|
|
37
|
+
*/
|
|
29
38
|
open: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* The transition status of the component.
|
|
41
|
+
*/
|
|
30
42
|
transitionStatus: TransitionStatus;
|
|
31
43
|
}
|
|
32
44
|
export declare namespace SelectPopup {
|
|
@@ -8,6 +8,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
8
8
|
exports.SelectPopup = void 0;
|
|
9
9
|
var React = _interopRequireWildcard(require("react"));
|
|
10
10
|
var ReactDOM = _interopRequireWildcard(require("react-dom"));
|
|
11
|
+
var _utils = require("@floating-ui/utils");
|
|
11
12
|
var _useTimeout = require("@base-ui/utils/useTimeout");
|
|
12
13
|
var _detectBrowser = require("@base-ui/utils/detectBrowser");
|
|
13
14
|
var _useStableCallback = require("@base-ui/utils/useStableCallback");
|
|
@@ -25,7 +26,7 @@ var _stateAttributesMapping = require("../../utils/stateAttributesMapping");
|
|
|
25
26
|
var _useOpenChangeComplete = require("../../utils/useOpenChangeComplete");
|
|
26
27
|
var _useRenderElement = require("../../utils/useRenderElement");
|
|
27
28
|
var _store2 = require("../store");
|
|
28
|
-
var
|
|
29
|
+
var _utils2 = require("./utils");
|
|
29
30
|
var _createBaseUIEventDetails = require("../../utils/createBaseUIEventDetails");
|
|
30
31
|
var _reasons = require("../../utils/reasons");
|
|
31
32
|
var _ToolbarRootContext = require("../../toolbar/root/ToolbarRootContext");
|
|
@@ -225,7 +226,7 @@ const SelectPopup = exports.SelectPopup = /*#__PURE__*/React.forwardRef(function
|
|
|
225
226
|
reachedMaxHeightRef.current = false;
|
|
226
227
|
initialHeightRef.current = 0;
|
|
227
228
|
maxHeightRef.current = 0;
|
|
228
|
-
(0,
|
|
229
|
+
(0, _utils2.clearStyles)(positionerElement, originalPositionerStylesRef.current);
|
|
229
230
|
}, [open, alignItemWithTriggerActive, positionerElement, popupRef]);
|
|
230
231
|
(0, _useIsoLayoutEffect.useIsoLayoutEffect)(() => {
|
|
231
232
|
const popupElement = popupRef.current;
|
|
@@ -250,8 +251,9 @@ const SelectPopup = exports.SelectPopup = /*#__PURE__*/React.forwardRef(function
|
|
|
250
251
|
const popupStyles = getComputedStyle(popupElement);
|
|
251
252
|
const doc = (0, _owner.ownerDocument)(triggerElement);
|
|
252
253
|
const win = (0, _owner.ownerWindow)(positionerElement);
|
|
253
|
-
const
|
|
254
|
-
const
|
|
254
|
+
const scale = getScale(triggerElement);
|
|
255
|
+
const triggerRect = normalizeRect(triggerElement.getBoundingClientRect(), scale);
|
|
256
|
+
const positionerRect = normalizeRect(positionerElement.getBoundingClientRect(), scale);
|
|
255
257
|
const triggerX = triggerRect.left;
|
|
256
258
|
const triggerHeight = triggerRect.height;
|
|
257
259
|
const scroller = listElement || popupElement;
|
|
@@ -273,8 +275,8 @@ const SelectPopup = exports.SelectPopup = /*#__PURE__*/React.forwardRef(function
|
|
|
273
275
|
let offsetX = 0;
|
|
274
276
|
let offsetY = 0;
|
|
275
277
|
if (textElement && valueElement) {
|
|
276
|
-
const valueRect = valueElement.getBoundingClientRect();
|
|
277
|
-
textRect = textElement.getBoundingClientRect();
|
|
278
|
+
const valueRect = normalizeRect(valueElement.getBoundingClientRect(), scale);
|
|
279
|
+
textRect = normalizeRect(textElement.getBoundingClientRect(), scale);
|
|
278
280
|
const valueLeftFromTriggerLeft = valueRect.left - triggerX;
|
|
279
281
|
const textLeftFromPositionerLeft = textRect.left - positionerRect.left;
|
|
280
282
|
const valueCenterFromPositionerTop = valueRect.top - triggerRect.top + valueRect.height / 2;
|
|
@@ -295,21 +297,21 @@ const SelectPopup = exports.SelectPopup = /*#__PURE__*/React.forwardRef(function
|
|
|
295
297
|
positionerElement.style.marginTop = `${marginTop}px`;
|
|
296
298
|
positionerElement.style.marginBottom = `${marginBottom}px`;
|
|
297
299
|
popupElement.style.height = '100%';
|
|
298
|
-
const maxScrollTop = scroller
|
|
299
|
-
const isTopPositioned = scrollTop >= maxScrollTop;
|
|
300
|
+
const maxScrollTop = getMaxScrollTop(scroller);
|
|
301
|
+
const isTopPositioned = scrollTop >= maxScrollTop - SCROLL_EPS_PX;
|
|
300
302
|
if (isTopPositioned) {
|
|
301
303
|
height = Math.min(viewportHeight, positionerRect.height) - (scrollTop - maxScrollTop);
|
|
302
304
|
}
|
|
303
305
|
|
|
304
306
|
// When the trigger is too close to the top or bottom of the viewport, or the minHeight is
|
|
305
307
|
// reached, we fallback to aligning the popup to the trigger as the UX is poor otherwise.
|
|
306
|
-
const fallbackToAlignPopupToTrigger = triggerRect.top < triggerCollisionThreshold || triggerRect.bottom > viewportHeight - triggerCollisionThreshold || height < Math.min(scrollHeight, minHeight);
|
|
308
|
+
const fallbackToAlignPopupToTrigger = triggerRect.top < triggerCollisionThreshold || triggerRect.bottom > viewportHeight - triggerCollisionThreshold || Math.ceil(height) + SCROLL_EPS_PX < Math.min(scrollHeight, minHeight);
|
|
307
309
|
|
|
308
310
|
// Safari doesn't position the popup correctly when pinch-zoomed.
|
|
309
311
|
const isPinchZoomed = (win.visualViewport?.scale ?? 1) !== 1 && _detectBrowser.isWebKit;
|
|
310
312
|
if (fallbackToAlignPopupToTrigger || isPinchZoomed) {
|
|
311
313
|
initialPlacedRef.current = true;
|
|
312
|
-
(0,
|
|
314
|
+
(0, _utils2.clearStyles)(positionerElement, originalPositionerStylesRef.current);
|
|
313
315
|
ReactDOM.flushSync(() => setControlledAlignItemWithTrigger(false));
|
|
314
316
|
return;
|
|
315
317
|
}
|
|
@@ -317,7 +319,7 @@ const SelectPopup = exports.SelectPopup = /*#__PURE__*/React.forwardRef(function
|
|
|
317
319
|
const topOffset = Math.max(0, viewportHeight - idealHeight);
|
|
318
320
|
positionerElement.style.top = positionerRect.height >= maxHeight ? '0' : `${topOffset}px`;
|
|
319
321
|
positionerElement.style.height = `${height}px`;
|
|
320
|
-
scroller.scrollTop = scroller
|
|
322
|
+
scroller.scrollTop = getMaxScrollTop(scroller);
|
|
321
323
|
initialHeightRef.current = Math.max(minHeight, height);
|
|
322
324
|
} else {
|
|
323
325
|
positionerElement.style.bottom = '0';
|
|
@@ -398,7 +400,7 @@ const SelectPopup = exports.SelectPopup = /*#__PURE__*/React.forwardRef(function
|
|
|
398
400
|
...(alignItemWithTriggerActive && {
|
|
399
401
|
style: listElement ? {
|
|
400
402
|
height: '100%'
|
|
401
|
-
} :
|
|
403
|
+
} : _utils2.LIST_FUNCTIONAL_STYLES
|
|
402
404
|
})
|
|
403
405
|
};
|
|
404
406
|
const element = (0, _useRenderElement.useRenderElement)('div', componentProps, {
|
|
@@ -428,6 +430,18 @@ function getMaxPopupHeight(popupStyles) {
|
|
|
428
430
|
function getMaxScrollTop(scroller) {
|
|
429
431
|
return Math.max(0, scroller.scrollHeight - scroller.clientHeight);
|
|
430
432
|
}
|
|
433
|
+
function getScale(element) {
|
|
434
|
+
// The platform API is async-capable, but the DOM platform returns a plain scale object.
|
|
435
|
+
return _floatingUiReact.platform.getScale(element);
|
|
436
|
+
}
|
|
437
|
+
function normalizeRect(rect, scale) {
|
|
438
|
+
return (0, _utils.rectToClientRect)({
|
|
439
|
+
x: rect.x / scale.x,
|
|
440
|
+
y: rect.y / scale.y,
|
|
441
|
+
width: rect.width / scale.x,
|
|
442
|
+
height: rect.height / scale.y
|
|
443
|
+
});
|
|
444
|
+
}
|
|
431
445
|
const TRANSFORM_STYLE_RESETS = [['transform', 'none'], ['scale', '1'], ['translate', '0 0']];
|
|
432
446
|
function unsetTransformStyles(popupElement) {
|
|
433
447
|
const {
|
|
@@ -8,10 +8,9 @@ import { FloatingPortal } from "../../floating-ui-react/index.js";
|
|
|
8
8
|
* Documentation: [Base UI Select](https://base-ui.com/react/components/select)
|
|
9
9
|
*/
|
|
10
10
|
export declare const SelectPortal: React.ForwardRefExoticComponent<Omit<SelectPortalProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
11
|
+
export interface SelectPortalState {}
|
|
12
|
+
export interface SelectPortalProps extends FloatingPortal.Props<SelectPortalState> {}
|
|
11
13
|
export declare namespace SelectPortal {
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
export interface SelectPortalProps extends FloatingPortal.Props<SelectPortal.State> {}
|
|
15
|
-
export declare namespace SelectPortal {
|
|
14
|
+
type State = SelectPortalState;
|
|
16
15
|
type Props = SelectPortalProps;
|
|
17
16
|
}
|