@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
|
@@ -11,6 +11,7 @@ var _useControlled = require("@base-ui/utils/useControlled");
|
|
|
11
11
|
var _useStableCallback = require("@base-ui/utils/useStableCallback");
|
|
12
12
|
var _owner = require("@base-ui/utils/owner");
|
|
13
13
|
var _detectBrowser = require("@base-ui/utils/detectBrowser");
|
|
14
|
+
var _useId = require("@base-ui/utils/useId");
|
|
14
15
|
var _DrawerRootContext = require("./DrawerRootContext");
|
|
15
16
|
var _dialog = require("../../dialog");
|
|
16
17
|
var _createBaseUIEventDetails = require("../../utils/createBaseUIEventDetails");
|
|
@@ -189,7 +190,7 @@ function createNestedSwipeProgressStore() {
|
|
|
189
190
|
};
|
|
190
191
|
}
|
|
191
192
|
function DrawerProviderReporter() {
|
|
192
|
-
const drawerId =
|
|
193
|
+
const drawerId = (0, _useId.useId)();
|
|
193
194
|
const providerContext = (0, _DrawerProviderContext.useDrawerProviderContext)(true);
|
|
194
195
|
const dialogRootContext = (0, _DialogRootContext.useDialogRootContext)(false);
|
|
195
196
|
const open = dialogRootContext.store.useState('open');
|
|
@@ -197,7 +198,7 @@ function DrawerProviderReporter() {
|
|
|
197
198
|
const popupElement = dialogRootContext.store.useState('popupElement');
|
|
198
199
|
const isTopmost = nestedOpenDialogCount === 0;
|
|
199
200
|
React.useEffect(() => {
|
|
200
|
-
if (!providerContext) {
|
|
201
|
+
if (!providerContext || drawerId == null) {
|
|
201
202
|
return undefined;
|
|
202
203
|
}
|
|
203
204
|
return () => {
|
|
@@ -205,6 +206,9 @@ function DrawerProviderReporter() {
|
|
|
205
206
|
};
|
|
206
207
|
}, [drawerId, providerContext]);
|
|
207
208
|
React.useEffect(() => {
|
|
209
|
+
if (drawerId == null) {
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
208
212
|
providerContext?.setDrawerOpen(drawerId, open);
|
|
209
213
|
}, [drawerId, open, providerContext]);
|
|
210
214
|
React.useEffect(() => {
|
|
@@ -9,7 +9,7 @@ import { type DrawerSwipeDirection } from "../root/DrawerRootContext.js";
|
|
|
9
9
|
* Documentation: [Base UI Drawer](https://base-ui.com/react/components/drawer)
|
|
10
10
|
*/
|
|
11
11
|
export declare const DrawerSwipeArea: React.ForwardRefExoticComponent<Omit<DrawerSwipeAreaProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
12
|
-
export interface DrawerSwipeAreaProps extends BaseUIComponentProps<'div',
|
|
12
|
+
export interface DrawerSwipeAreaProps extends BaseUIComponentProps<'div', DrawerSwipeAreaState> {
|
|
13
13
|
/**
|
|
14
14
|
* Whether the swipe area is disabled.
|
|
15
15
|
* @default false
|
|
@@ -21,35 +21,37 @@ var _DrawerRootContext = require("../root/DrawerRootContext");
|
|
|
21
21
|
var _useBaseUiId = require("../../utils/useBaseUiId");
|
|
22
22
|
var _popups = require("../../utils/popups");
|
|
23
23
|
var _DrawerProviderContext = require("../provider/DrawerProviderContext");
|
|
24
|
-
var
|
|
24
|
+
var _DrawerSwipeAreaDataAttributes = require("./DrawerSwipeAreaDataAttributes");
|
|
25
25
|
const DEFAULT_SWIPE_OPEN_RATIO = 0.5;
|
|
26
26
|
const MIN_SWIPE_START_DISTANCE = 1;
|
|
27
27
|
const VELOCITY_THRESHOLD = 0.1;
|
|
28
28
|
const FALLBACK_SWIPE_OPEN_THRESHOLD = 40;
|
|
29
29
|
const SWIPE_AREA_OPEN_HOOK = {
|
|
30
|
-
[
|
|
30
|
+
[_DrawerSwipeAreaDataAttributes.DrawerSwipeAreaDataAttributes.open]: ''
|
|
31
31
|
};
|
|
32
32
|
const SWIPE_AREA_CLOSED_HOOK = {
|
|
33
|
-
[
|
|
33
|
+
[_DrawerSwipeAreaDataAttributes.DrawerSwipeAreaDataAttributes.closed]: ''
|
|
34
|
+
};
|
|
35
|
+
const SWIPE_AREA_SWIPING_HOOK = {
|
|
36
|
+
[_DrawerSwipeAreaDataAttributes.DrawerSwipeAreaDataAttributes.swiping]: ''
|
|
37
|
+
};
|
|
38
|
+
const SWIPE_AREA_DISABLED_HOOK = {
|
|
39
|
+
[_DrawerSwipeAreaDataAttributes.DrawerSwipeAreaDataAttributes.disabled]: ''
|
|
34
40
|
};
|
|
35
41
|
const stateAttributesMapping = {
|
|
36
42
|
open(value) {
|
|
37
43
|
return value ? SWIPE_AREA_OPEN_HOOK : SWIPE_AREA_CLOSED_HOOK;
|
|
38
44
|
},
|
|
39
45
|
swiping(value) {
|
|
40
|
-
return value ?
|
|
41
|
-
'data-swiping': ''
|
|
42
|
-
} : null;
|
|
46
|
+
return value ? SWIPE_AREA_SWIPING_HOOK : null;
|
|
43
47
|
},
|
|
44
48
|
swipeDirection(value) {
|
|
45
49
|
return value ? {
|
|
46
|
-
|
|
50
|
+
[_DrawerSwipeAreaDataAttributes.DrawerSwipeAreaDataAttributes.swipeDirection]: value
|
|
47
51
|
} : null;
|
|
48
52
|
},
|
|
49
53
|
disabled(value) {
|
|
50
|
-
return value ?
|
|
51
|
-
'data-disabled': ''
|
|
52
|
-
} : null;
|
|
54
|
+
return value ? SWIPE_AREA_DISABLED_HOOK : null;
|
|
53
55
|
}
|
|
54
56
|
};
|
|
55
57
|
const oppositeSwipeDirection = {
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export declare enum DrawerSwipeAreaDataAttributes {
|
|
2
|
+
/**
|
|
3
|
+
* Present when the drawer is open.
|
|
4
|
+
*/
|
|
5
|
+
open = "data-open",
|
|
6
|
+
/**
|
|
7
|
+
* Present when the drawer is closed.
|
|
8
|
+
*/
|
|
9
|
+
closed = "data-closed",
|
|
10
|
+
/**
|
|
11
|
+
* Present when the swipe area is disabled.
|
|
12
|
+
*/
|
|
13
|
+
disabled = "data-disabled",
|
|
14
|
+
/**
|
|
15
|
+
* Indicates the swipe direction.
|
|
16
|
+
* @type {'up' | 'down' | 'left' | 'right'}
|
|
17
|
+
*/
|
|
18
|
+
swipeDirection = "data-swipe-direction",
|
|
19
|
+
/**
|
|
20
|
+
* Present when the drawer is being swiped.
|
|
21
|
+
*/
|
|
22
|
+
swiping = "data-swiping",
|
|
23
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.DrawerSwipeAreaDataAttributes = void 0;
|
|
7
|
+
var _popupStateMapping = require("../../utils/popupStateMapping");
|
|
8
|
+
let DrawerSwipeAreaDataAttributes = exports.DrawerSwipeAreaDataAttributes = function (DrawerSwipeAreaDataAttributes) {
|
|
9
|
+
/**
|
|
10
|
+
* Present when the drawer is open.
|
|
11
|
+
*/
|
|
12
|
+
DrawerSwipeAreaDataAttributes[DrawerSwipeAreaDataAttributes["open"] = _popupStateMapping.CommonPopupDataAttributes.open] = "open";
|
|
13
|
+
/**
|
|
14
|
+
* Present when the drawer is closed.
|
|
15
|
+
*/
|
|
16
|
+
DrawerSwipeAreaDataAttributes[DrawerSwipeAreaDataAttributes["closed"] = _popupStateMapping.CommonPopupDataAttributes.closed] = "closed";
|
|
17
|
+
/**
|
|
18
|
+
* Present when the swipe area is disabled.
|
|
19
|
+
*/
|
|
20
|
+
DrawerSwipeAreaDataAttributes["disabled"] = "data-disabled";
|
|
21
|
+
/**
|
|
22
|
+
* Indicates the swipe direction.
|
|
23
|
+
* @type {'up' | 'down' | 'left' | 'right'}
|
|
24
|
+
*/
|
|
25
|
+
DrawerSwipeAreaDataAttributes["swipeDirection"] = "data-swipe-direction";
|
|
26
|
+
/**
|
|
27
|
+
* Present when the drawer is being swiped.
|
|
28
|
+
*/
|
|
29
|
+
DrawerSwipeAreaDataAttributes["swiping"] = "data-swiping";
|
|
30
|
+
return DrawerSwipeAreaDataAttributes;
|
|
31
|
+
}({});
|
|
@@ -7,7 +7,7 @@ import type { BaseUIComponentProps } from "../../utils/types.js";
|
|
|
7
7
|
* Documentation: [Base UI Drawer](https://base-ui.com/react/components/drawer)
|
|
8
8
|
*/
|
|
9
9
|
export declare const DrawerTitle: DrawerTitle;
|
|
10
|
-
export interface DrawerTitleProps extends BaseUIComponentProps<'h2',
|
|
10
|
+
export interface DrawerTitleProps extends BaseUIComponentProps<'h2', DrawerTitleState> {}
|
|
11
11
|
export interface DrawerTitleState {}
|
|
12
12
|
export interface DrawerTitle {
|
|
13
13
|
(componentProps: DrawerTitleProps): React.JSX.Element;
|
|
@@ -11,7 +11,7 @@ export declare const DrawerTrigger: DrawerTrigger;
|
|
|
11
11
|
export interface DrawerTrigger {
|
|
12
12
|
<Payload>(componentProps: DrawerTriggerProps<Payload> & React.RefAttributes<HTMLElement>): React.JSX.Element;
|
|
13
13
|
}
|
|
14
|
-
export interface DrawerTriggerProps<Payload = unknown> extends NativeButtonProps, BaseUIComponentProps<'button',
|
|
14
|
+
export interface DrawerTriggerProps<Payload = unknown> extends NativeButtonProps, BaseUIComponentProps<'button', DrawerTriggerState> {
|
|
15
15
|
/**
|
|
16
16
|
* A handle to associate the trigger with a drawer.
|
|
17
17
|
* Can be created with the Drawer.createHandle() method.
|
|
@@ -13,6 +13,9 @@ export interface DrawerViewportState {
|
|
|
13
13
|
* Whether the drawer is currently open.
|
|
14
14
|
*/
|
|
15
15
|
open: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* The transition status of the component.
|
|
18
|
+
*/
|
|
16
19
|
transitionStatus: TransitionStatus;
|
|
17
20
|
/**
|
|
18
21
|
* Whether the drawer is nested within another drawer.
|
|
@@ -23,7 +26,7 @@ export interface DrawerViewportState {
|
|
|
23
26
|
*/
|
|
24
27
|
nestedDialogOpen: boolean;
|
|
25
28
|
}
|
|
26
|
-
export interface DrawerViewportProps extends BaseUIComponentProps<'div',
|
|
29
|
+
export interface DrawerViewportProps extends BaseUIComponentProps<'div', DrawerViewportState> {}
|
|
27
30
|
export declare namespace DrawerViewport {
|
|
28
31
|
type Props = DrawerViewportProps;
|
|
29
32
|
type State = DrawerViewportState;
|
|
@@ -10,6 +10,7 @@ var React = _interopRequireWildcard(require("react"));
|
|
|
10
10
|
var ReactDOM = _interopRequireWildcard(require("react-dom"));
|
|
11
11
|
var _dom = require("@floating-ui/utils/dom");
|
|
12
12
|
var _owner = require("@base-ui/utils/owner");
|
|
13
|
+
var _useAnimationFrame = require("@base-ui/utils/useAnimationFrame");
|
|
13
14
|
var _useStableCallback = require("@base-ui/utils/useStableCallback");
|
|
14
15
|
var _DialogRootContext = require("../../dialog/root/DialogRootContext");
|
|
15
16
|
var _DialogViewport = require("../../dialog/viewport/DialogViewport");
|
|
@@ -22,12 +23,15 @@ var _useSwipeDismiss = require("../../utils/useSwipeDismiss");
|
|
|
22
23
|
var _DrawerPopupCssVars = require("../popup/DrawerPopupCssVars");
|
|
23
24
|
var _DrawerPopupDataAttributes = require("../popup/DrawerPopupDataAttributes");
|
|
24
25
|
var _DrawerBackdropCssVars = require("../backdrop/DrawerBackdropCssVars");
|
|
26
|
+
var _DrawerContentDataAttributes = require("../content/DrawerContentDataAttributes");
|
|
25
27
|
var _reasons = require("../../utils/reasons");
|
|
26
28
|
var _createBaseUIEventDetails = require("../../utils/createBaseUIEventDetails");
|
|
27
29
|
var _utils = require("../../floating-ui-react/utils");
|
|
28
30
|
var _DrawerViewportContext = require("./DrawerViewportContext");
|
|
29
31
|
var _stateAttributesMapping = require("../../utils/stateAttributesMapping");
|
|
30
32
|
var _scrollable = require("../../utils/scrollable");
|
|
33
|
+
var _constants = require("../../utils/constants");
|
|
34
|
+
var _getElementAtPoint = require("../../utils/getElementAtPoint");
|
|
31
35
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
32
36
|
const MIN_SWIPE_THRESHOLD = 10;
|
|
33
37
|
const FAST_SWIPE_VELOCITY = 0.5;
|
|
@@ -40,7 +44,7 @@ const MIN_SWIPE_RELEASE_DURATION_MS = 80;
|
|
|
40
44
|
const MAX_SWIPE_RELEASE_DURATION_MS = 360;
|
|
41
45
|
const MIN_SWIPE_RELEASE_SCALAR = 0.1;
|
|
42
46
|
const MAX_SWIPE_RELEASE_SCALAR = 1;
|
|
43
|
-
|
|
47
|
+
const DRAWER_CONTENT_SELECTOR = `[${_DrawerContentDataAttributes.DRAWER_CONTENT_ATTRIBUTE}]`;
|
|
44
48
|
/**
|
|
45
49
|
* A positioning container for the drawer popup that can be made scrollable.
|
|
46
50
|
* Renders a `<div>` element.
|
|
@@ -74,6 +78,8 @@ const DrawerViewport = exports.DrawerViewport = /*#__PURE__*/React.forwardRef(fu
|
|
|
74
78
|
const popupElementState = store.useState('popupElement');
|
|
75
79
|
const nestedDrawerOpen = nestedOpenDialogCount > 0;
|
|
76
80
|
const scrollAxis = swipeDirection === 'left' || swipeDirection === 'right' ? 'horizontal' : 'vertical';
|
|
81
|
+
const isVerticalScrollAxis = scrollAxis === 'vertical';
|
|
82
|
+
const crossScrollAxis = isVerticalScrollAxis ? 'horizontal' : 'vertical';
|
|
77
83
|
const {
|
|
78
84
|
snapPoints,
|
|
79
85
|
resolvedSnapPoints,
|
|
@@ -85,9 +91,11 @@ const DrawerViewport = exports.DrawerViewport = /*#__PURE__*/React.forwardRef(fu
|
|
|
85
91
|
const [swipeRelease, setSwipeRelease] = React.useState(null);
|
|
86
92
|
const pendingSwipeCloseSnapPointRef = React.useRef(undefined);
|
|
87
93
|
const resetSwipeRef = React.useRef(null);
|
|
94
|
+
const controlledDismissFrame = (0, _useAnimationFrame.useAnimationFrame)();
|
|
88
95
|
const nestedSwipeActiveRef = React.useRef(false);
|
|
89
96
|
const lastPointerTypeRef = React.useRef('');
|
|
90
97
|
const ignoreNextTouchStartFromPenRef = React.useRef(false);
|
|
98
|
+
const ignoreTouchSwipeRef = React.useRef(false);
|
|
91
99
|
const touchScrollStateRef = React.useRef(null);
|
|
92
100
|
const snapPointRange = React.useMemo(() => {
|
|
93
101
|
if (!snapPoints || snapPoints.length < 2) {
|
|
@@ -278,14 +286,25 @@ const DrawerViewport = exports.DrawerViewport = /*#__PURE__*/React.forwardRef(fu
|
|
|
278
286
|
}) {
|
|
279
287
|
return getBaseSwipeThreshold(element, direction);
|
|
280
288
|
},
|
|
281
|
-
canStart(position) {
|
|
289
|
+
canStart(position, details) {
|
|
282
290
|
const popupElement = store.context.popupRef.current;
|
|
283
291
|
if (!popupElement) {
|
|
284
292
|
return false;
|
|
285
293
|
}
|
|
286
294
|
const doc = popupElement.ownerDocument;
|
|
287
|
-
const elementAtPoint =
|
|
288
|
-
|
|
295
|
+
const elementAtPoint = (0, _getElementAtPoint.getElementAtPoint)(doc, position.x, position.y);
|
|
296
|
+
if (!elementAtPoint || !(0, _utils.contains)(popupElement, elementAtPoint)) {
|
|
297
|
+
return false;
|
|
298
|
+
}
|
|
299
|
+
const nativeEvent = details.nativeEvent;
|
|
300
|
+
const touchLike = 'touches' in nativeEvent || 'pointerType' in nativeEvent && nativeEvent.pointerType === 'touch';
|
|
301
|
+
if (touchLike && shouldIgnoreSwipeForTextSelection(doc, popupElement)) {
|
|
302
|
+
return false;
|
|
303
|
+
}
|
|
304
|
+
if (nativeEvent.type === 'touchstart' && isSwipeIgnoredTarget(elementAtPoint)) {
|
|
305
|
+
return false;
|
|
306
|
+
}
|
|
307
|
+
return true;
|
|
289
308
|
},
|
|
290
309
|
onProgress(progress, details) {
|
|
291
310
|
updateNestedSwipeActive(details);
|
|
@@ -514,6 +533,33 @@ const DrawerViewport = exports.DrawerViewport = /*#__PURE__*/React.forwardRef(fu
|
|
|
514
533
|
clearSwipeRelease();
|
|
515
534
|
return;
|
|
516
535
|
}
|
|
536
|
+
|
|
537
|
+
// In controlled mode, the effective open state may not have changed yet
|
|
538
|
+
// (openProp takes precedence over state.open). Proceed optimistically with the
|
|
539
|
+
// dismiss animation — React's Scheduler flushes before the next rAF, so we can
|
|
540
|
+
// reliably check whether the parent accepted or rejected the close.
|
|
541
|
+
// Note: if onOpenChange is asynchronous (e.g., closes the drawer after a network
|
|
542
|
+
// call), the rAF check will see open === true, revert the animation, and the
|
|
543
|
+
// drawer will close without animation when the parent eventually sets open={false}.
|
|
544
|
+
if (store.select('open')) {
|
|
545
|
+
const savedEvent = event;
|
|
546
|
+
controlledDismissFrame.request(() => {
|
|
547
|
+
if (store.select('open')) {
|
|
548
|
+
// Parent rejected: revert animation and restore snap point.
|
|
549
|
+
const pendingSnapPoint = pendingSwipeCloseSnapPointRef.current;
|
|
550
|
+
if (pendingSnapPoint !== undefined) {
|
|
551
|
+
setActiveSnapPoint?.(pendingSnapPoint, (0, _createBaseUIEventDetails.createChangeEventDetails)(_reasons.REASONS.swipe, savedEvent));
|
|
552
|
+
}
|
|
553
|
+
pendingSwipeCloseSnapPointRef.current = undefined;
|
|
554
|
+
clearSwipeRelease();
|
|
555
|
+
resetSwipeRef.current?.();
|
|
556
|
+
} else {
|
|
557
|
+
// Parent accepted: clean up the ref.
|
|
558
|
+
pendingSwipeCloseSnapPointRef.current = undefined;
|
|
559
|
+
}
|
|
560
|
+
});
|
|
561
|
+
return;
|
|
562
|
+
}
|
|
517
563
|
pendingSwipeCloseSnapPointRef.current = undefined;
|
|
518
564
|
setSwipeDismissed(true);
|
|
519
565
|
}
|
|
@@ -527,51 +573,39 @@ const DrawerViewport = exports.DrawerViewport = /*#__PURE__*/React.forwardRef(fu
|
|
|
527
573
|
if (!rootElement) {
|
|
528
574
|
return undefined;
|
|
529
575
|
}
|
|
530
|
-
const
|
|
576
|
+
const resolvedRootElement = rootElement;
|
|
577
|
+
const doc = (0, _owner.ownerDocument)(resolvedRootElement);
|
|
531
578
|
const win = (0, _owner.ownerWindow)(doc);
|
|
532
579
|
function handleNativeTouchMove(event) {
|
|
580
|
+
if (ignoreTouchSwipeRef.current) {
|
|
581
|
+
return;
|
|
582
|
+
}
|
|
533
583
|
const touchState = touchScrollStateRef.current;
|
|
534
584
|
const touch = event.touches[0];
|
|
535
585
|
if (!touch || !touchState) {
|
|
536
586
|
return;
|
|
537
587
|
}
|
|
538
|
-
const
|
|
539
|
-
const updateTouchPosition = () => {
|
|
540
|
-
touchState.lastX = touch.clientX;
|
|
541
|
-
touchState.lastY = touch.clientY;
|
|
542
|
-
};
|
|
588
|
+
const drawerAxisDelta = isVerticalScrollAxis ? touch.clientY - touchState.lastY : touch.clientX - touchState.lastX;
|
|
543
589
|
|
|
544
590
|
// Preserve native range interaction by never locking touchmove for range inputs.
|
|
545
591
|
if (isEventOnRangeInput(event, win)) {
|
|
546
592
|
touchState.allowSwipe = false;
|
|
547
|
-
|
|
593
|
+
updateTouchScrollPosition(touchState, touch);
|
|
548
594
|
return;
|
|
549
595
|
}
|
|
550
596
|
|
|
551
597
|
// Avoid blocking pinch zoom or text selection adjustments on iOS Safari.
|
|
552
598
|
if (event.touches.length === 2) {
|
|
553
|
-
|
|
599
|
+
updateTouchScrollPosition(touchState, touch);
|
|
554
600
|
return;
|
|
555
601
|
}
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
// Allow the ability to adjust text selection.
|
|
559
|
-
if (target) {
|
|
560
|
-
const selection = target.ownerDocument.defaultView?.getSelection();
|
|
561
|
-
if (selection && !selection.isCollapsed && selection.containsNode(target, true)) {
|
|
562
|
-
allowTouchMove = true;
|
|
563
|
-
}
|
|
564
|
-
}
|
|
565
|
-
|
|
566
|
-
// Allow user to drag the selection handles in an input element.
|
|
567
|
-
if (target instanceof win.HTMLInputElement) {
|
|
568
|
-
const input = target;
|
|
569
|
-
if (input.selectionStart != null && input.selectionEnd != null && input.selectionStart < input.selectionEnd && doc.activeElement === input) {
|
|
570
|
-
allowTouchMove = true;
|
|
571
|
-
}
|
|
572
|
-
}
|
|
602
|
+
const allowTouchMove = shouldIgnoreSwipeForTextSelection(doc, resolvedRootElement);
|
|
573
603
|
if (allowTouchMove || !open || !mounted || nestedDrawerOpen) {
|
|
574
|
-
|
|
604
|
+
updateTouchScrollPosition(touchState, touch);
|
|
605
|
+
return;
|
|
606
|
+
}
|
|
607
|
+
if (preserveNativeCrossAxisScrollOnMove(touchState, touch, isVerticalScrollAxis)) {
|
|
608
|
+
updateTouchScrollPosition(touchState, touch);
|
|
575
609
|
return;
|
|
576
610
|
}
|
|
577
611
|
const scrollTarget = touchState.scrollTarget;
|
|
@@ -579,7 +613,7 @@ const DrawerViewport = exports.DrawerViewport = /*#__PURE__*/React.forwardRef(fu
|
|
|
579
613
|
if (event.cancelable) {
|
|
580
614
|
event.preventDefault();
|
|
581
615
|
}
|
|
582
|
-
|
|
616
|
+
updateTouchScrollPosition(touchState, touch);
|
|
583
617
|
return;
|
|
584
618
|
}
|
|
585
619
|
const hasScrollableContent = hasScrollableContentOnAxis(scrollTarget, scrollAxis);
|
|
@@ -589,13 +623,13 @@ const DrawerViewport = exports.DrawerViewport = /*#__PURE__*/React.forwardRef(fu
|
|
|
589
623
|
if (event.cancelable) {
|
|
590
624
|
event.preventDefault();
|
|
591
625
|
}
|
|
592
|
-
|
|
626
|
+
updateTouchScrollPosition(touchState, touch);
|
|
593
627
|
return;
|
|
594
628
|
}
|
|
595
|
-
const delta =
|
|
629
|
+
const delta = drawerAxisDelta;
|
|
596
630
|
if (delta !== 0) {
|
|
597
631
|
const canSwipeFromScrollEdge = canSwipeFromScrollEdgeOnMove(scrollTarget, scrollAxis, swipeDirection, delta);
|
|
598
|
-
if (touchState.allowSwipe
|
|
632
|
+
if (!touchState.allowSwipe) {
|
|
599
633
|
if (!event.cancelable) {
|
|
600
634
|
touchState.allowSwipe = false;
|
|
601
635
|
} else if (canSwipeFromScrollEdge) {
|
|
@@ -608,7 +642,7 @@ const DrawerViewport = exports.DrawerViewport = /*#__PURE__*/React.forwardRef(fu
|
|
|
608
642
|
event.preventDefault();
|
|
609
643
|
}
|
|
610
644
|
}
|
|
611
|
-
|
|
645
|
+
updateTouchScrollPosition(touchState, touch);
|
|
612
646
|
}
|
|
613
647
|
doc.addEventListener('touchmove', handleNativeTouchMove, {
|
|
614
648
|
passive: false,
|
|
@@ -619,7 +653,7 @@ const DrawerViewport = exports.DrawerViewport = /*#__PURE__*/React.forwardRef(fu
|
|
|
619
653
|
capture: true
|
|
620
654
|
});
|
|
621
655
|
};
|
|
622
|
-
}, [mounted, nestedDrawerOpen, open, popupElementState, scrollAxis, swipeDirection, viewportElement]);
|
|
656
|
+
}, [mounted, nestedDrawerOpen, open, popupElementState, isVerticalScrollAxis, scrollAxis, swipeDirection, viewportElement]);
|
|
623
657
|
React.useEffect(() => {
|
|
624
658
|
if (!snapPointRange || swipe.swiping) {
|
|
625
659
|
return;
|
|
@@ -667,6 +701,7 @@ const DrawerViewport = exports.DrawerViewport = /*#__PURE__*/React.forwardRef(fu
|
|
|
667
701
|
}
|
|
668
702
|
}), [store, swipe.getDragStyles, swipe.swiping, swipeRelease]);
|
|
669
703
|
function resetTouchTrackingState() {
|
|
704
|
+
ignoreTouchSwipeRef.current = false;
|
|
670
705
|
touchScrollStateRef.current = null;
|
|
671
706
|
lastPointerTypeRef.current = '';
|
|
672
707
|
ignoreNextTouchStartFromPenRef.current = false;
|
|
@@ -679,12 +714,15 @@ const DrawerViewport = exports.DrawerViewport = /*#__PURE__*/React.forwardRef(fu
|
|
|
679
714
|
onPointerDown(event) {
|
|
680
715
|
lastPointerTypeRef.current = event.pointerType;
|
|
681
716
|
ignoreNextTouchStartFromPenRef.current = event.pointerType === 'pen';
|
|
682
|
-
if (!open || !mounted || nestedDrawerOpen
|
|
717
|
+
if (!open || !mounted || nestedDrawerOpen) {
|
|
683
718
|
return;
|
|
684
719
|
}
|
|
685
720
|
const doc = (0, _owner.ownerDocument)(event.currentTarget);
|
|
686
|
-
const elementAtPoint =
|
|
687
|
-
if (elementAtPoint
|
|
721
|
+
const elementAtPoint = (0, _getElementAtPoint.getElementAtPoint)(doc, event.clientX, event.clientY);
|
|
722
|
+
if (isSwipeIgnoredTarget(elementAtPoint) || isDrawerContentTarget(elementAtPoint)) {
|
|
723
|
+
return;
|
|
724
|
+
}
|
|
725
|
+
if (event.pointerType === 'touch') {
|
|
688
726
|
return;
|
|
689
727
|
}
|
|
690
728
|
swipePointerProps.onPointerDown?.(event);
|
|
@@ -717,10 +755,12 @@ const DrawerViewport = exports.DrawerViewport = /*#__PURE__*/React.forwardRef(fu
|
|
|
717
755
|
const startedFromPenPointerDown = lastPointerTypeRef.current === 'pen' && ignoreNextTouchStartFromPenRef.current;
|
|
718
756
|
if (startedFromPenPointerDown) {
|
|
719
757
|
ignoreNextTouchStartFromPenRef.current = false;
|
|
758
|
+
ignoreTouchSwipeRef.current = false;
|
|
720
759
|
touchScrollStateRef.current = null;
|
|
721
760
|
return;
|
|
722
761
|
}
|
|
723
762
|
if (!open || !mounted || nestedDrawerOpen) {
|
|
763
|
+
ignoreTouchSwipeRef.current = false;
|
|
724
764
|
touchScrollStateRef.current = null;
|
|
725
765
|
return;
|
|
726
766
|
}
|
|
@@ -729,31 +769,54 @@ const DrawerViewport = exports.DrawerViewport = /*#__PURE__*/React.forwardRef(fu
|
|
|
729
769
|
return;
|
|
730
770
|
}
|
|
731
771
|
if (isReactTouchEventOnRangeInput(event)) {
|
|
772
|
+
ignoreTouchSwipeRef.current = false;
|
|
773
|
+
touchScrollStateRef.current = null;
|
|
774
|
+
return;
|
|
775
|
+
}
|
|
776
|
+
const doc = (0, _owner.ownerDocument)(event.currentTarget);
|
|
777
|
+
const elementAtPoint = (0, _getElementAtPoint.getElementAtPoint)(doc, touch.clientX, touch.clientY);
|
|
778
|
+
ignoreTouchSwipeRef.current = isSwipeIgnoredTarget(elementAtPoint);
|
|
779
|
+
if (ignoreTouchSwipeRef.current) {
|
|
732
780
|
touchScrollStateRef.current = null;
|
|
733
781
|
return;
|
|
734
782
|
}
|
|
735
783
|
const rootElement = viewportElement ?? popupElementState;
|
|
736
784
|
const target = (0, _dom.isElement)(event.target) ? event.target : null;
|
|
737
|
-
|
|
785
|
+
let scrollTarget = null;
|
|
786
|
+
let hasCrossAxisScrollableContent = false;
|
|
787
|
+
if (rootElement && target && (0, _utils.contains)(rootElement, target)) {
|
|
788
|
+
scrollTarget = (0, _scrollable.findScrollableTouchTarget)(target, rootElement, scrollAxis);
|
|
789
|
+
hasCrossAxisScrollableContent = (0, _scrollable.findScrollableTouchTarget)(target, rootElement, crossScrollAxis) != null;
|
|
790
|
+
}
|
|
738
791
|
let allowSwipe = null;
|
|
739
792
|
if (scrollTarget) {
|
|
740
793
|
const canSwipeFromEdge = isAtSwipeStartEdge(scrollTarget, scrollAxis, swipeDirection);
|
|
741
794
|
allowSwipe = canSwipeFromEdge ? null : false;
|
|
742
795
|
}
|
|
743
796
|
touchScrollStateRef.current = {
|
|
797
|
+
startX: touch.clientX,
|
|
798
|
+
startY: touch.clientY,
|
|
744
799
|
lastX: touch.clientX,
|
|
745
800
|
lastY: touch.clientY,
|
|
746
801
|
scrollTarget,
|
|
747
|
-
|
|
802
|
+
hasCrossAxisScrollableContent,
|
|
803
|
+
allowSwipe,
|
|
804
|
+
preserveNativeCrossAxisScroll: false
|
|
748
805
|
};
|
|
749
806
|
swipeTouchProps.onTouchStart?.(event);
|
|
750
807
|
},
|
|
751
808
|
onTouchMove(event) {
|
|
809
|
+
if (ignoreTouchSwipeRef.current) {
|
|
810
|
+
return;
|
|
811
|
+
}
|
|
752
812
|
if (isReactTouchEventOnRangeInput(event)) {
|
|
753
813
|
return;
|
|
754
814
|
}
|
|
755
815
|
const touchState = touchScrollStateRef.current;
|
|
756
|
-
if (touchState?.
|
|
816
|
+
if (touchState?.preserveNativeCrossAxisScroll) {
|
|
817
|
+
return;
|
|
818
|
+
}
|
|
819
|
+
if (touchState?.allowSwipe === false || touchState?.scrollTarget != null && !touchState.allowSwipe) {
|
|
757
820
|
return;
|
|
758
821
|
}
|
|
759
822
|
swipeTouchProps.onTouchMove?.(event);
|
|
@@ -765,7 +828,10 @@ const DrawerViewport = exports.DrawerViewport = /*#__PURE__*/React.forwardRef(fu
|
|
|
765
828
|
onTouchCancel(event) {
|
|
766
829
|
resetTouchTrackingState();
|
|
767
830
|
swipeTouchProps.onTouchCancel?.(event);
|
|
768
|
-
}
|
|
831
|
+
},
|
|
832
|
+
// Drawer popups use drawer-specific nested state attributes.
|
|
833
|
+
// Suppress DialogViewport's generic nested dialog attribute.
|
|
834
|
+
['data-nested-dialog-open']: undefined
|
|
769
835
|
}),
|
|
770
836
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_DrawerViewportContext.DrawerViewportContext.Provider, {
|
|
771
837
|
value: swipeProviderValue,
|
|
@@ -793,6 +859,12 @@ function setBackdropSwipingAttribute(backdropElement, swiping) {
|
|
|
793
859
|
}
|
|
794
860
|
backdropElement.removeAttribute(_DrawerPopupDataAttributes.DrawerPopupDataAttributes.swiping);
|
|
795
861
|
}
|
|
862
|
+
function isSwipeIgnoredTarget(target) {
|
|
863
|
+
return Boolean(target?.closest(_constants.BASE_UI_SWIPE_IGNORE_SELECTOR));
|
|
864
|
+
}
|
|
865
|
+
function isDrawerContentTarget(target) {
|
|
866
|
+
return Boolean(target?.closest(DRAWER_CONTENT_SELECTOR));
|
|
867
|
+
}
|
|
796
868
|
function getBaseSwipeThreshold(element, direction) {
|
|
797
869
|
const size = direction === 'left' || direction === 'right' ? element.offsetWidth : element.offsetHeight;
|
|
798
870
|
return Math.max(size * 0.5, MIN_SWIPE_THRESHOLD);
|
|
@@ -800,6 +872,35 @@ function getBaseSwipeThreshold(element, direction) {
|
|
|
800
872
|
function isRangeInput(target, win) {
|
|
801
873
|
return target instanceof win.HTMLInputElement && target.type === 'range';
|
|
802
874
|
}
|
|
875
|
+
function isTextSelectionControl(target) {
|
|
876
|
+
if (!(0, _dom.isElement)(target)) {
|
|
877
|
+
return false;
|
|
878
|
+
}
|
|
879
|
+
return target.tagName === 'INPUT' || target.tagName === 'TEXTAREA';
|
|
880
|
+
}
|
|
881
|
+
function hasExpandedSelectionWithinTarget(selection, target) {
|
|
882
|
+
const anchorElement = (0, _dom.isElement)(selection.anchorNode) ? selection.anchorNode : selection.anchorNode?.parentElement;
|
|
883
|
+
const focusElement = (0, _dom.isElement)(selection.focusNode) ? selection.focusNode : selection.focusNode?.parentElement;
|
|
884
|
+
return selection.containsNode(target, true) || (0, _utils.contains)(target, anchorElement) || (0, _utils.contains)(target, focusElement);
|
|
885
|
+
}
|
|
886
|
+
function shouldIgnoreSwipeForTextSelection(doc, rootElement) {
|
|
887
|
+
const activeElement = doc.activeElement;
|
|
888
|
+
const activeElementWithinRoot = Boolean(activeElement && (0, _utils.contains)(rootElement, activeElement));
|
|
889
|
+
if (activeElementWithinRoot && isTextSelectionControl(activeElement)) {
|
|
890
|
+
const {
|
|
891
|
+
selectionStart,
|
|
892
|
+
selectionEnd
|
|
893
|
+
} = activeElement;
|
|
894
|
+
if (selectionStart != null && selectionEnd != null && selectionStart < selectionEnd) {
|
|
895
|
+
return true;
|
|
896
|
+
}
|
|
897
|
+
}
|
|
898
|
+
const selection = doc.getSelection?.();
|
|
899
|
+
if (!selection || selection.isCollapsed) {
|
|
900
|
+
return false;
|
|
901
|
+
}
|
|
902
|
+
return hasExpandedSelectionWithinTarget(selection, rootElement);
|
|
903
|
+
}
|
|
803
904
|
function isEventOnRangeInput(event, win) {
|
|
804
905
|
const composedPath = event.composedPath();
|
|
805
906
|
if (composedPath) {
|
|
@@ -810,6 +911,27 @@ function isEventOnRangeInput(event, win) {
|
|
|
810
911
|
function isReactTouchEventOnRangeInput(event) {
|
|
811
912
|
return isEventOnRangeInput(event.nativeEvent, (0, _owner.ownerWindow)(event.currentTarget));
|
|
812
913
|
}
|
|
914
|
+
function updateTouchScrollPosition(touchState, touch) {
|
|
915
|
+
touchState.lastX = touch.clientX;
|
|
916
|
+
touchState.lastY = touch.clientY;
|
|
917
|
+
}
|
|
918
|
+
function preserveNativeCrossAxisScrollOnMove(touchState, touch, isVerticalScrollAxis) {
|
|
919
|
+
if (touchState.preserveNativeCrossAxisScroll) {
|
|
920
|
+
return true;
|
|
921
|
+
}
|
|
922
|
+
if (touchState.allowSwipe === true || !touchState.hasCrossAxisScrollableContent) {
|
|
923
|
+
return false;
|
|
924
|
+
}
|
|
925
|
+
const drawerAxisGestureDelta = isVerticalScrollAxis ? touch.clientY - touchState.startY : touch.clientX - touchState.startX;
|
|
926
|
+
const crossAxisGestureDelta = isVerticalScrollAxis ? touch.clientX - touchState.startX : touch.clientY - touchState.startY;
|
|
927
|
+
const absDrawerAxisGestureDelta = Math.abs(drawerAxisGestureDelta);
|
|
928
|
+
const absCrossAxisGestureDelta = Math.abs(crossAxisGestureDelta);
|
|
929
|
+
if (absCrossAxisGestureDelta < 6 || absCrossAxisGestureDelta <= absDrawerAxisGestureDelta + 2) {
|
|
930
|
+
return false;
|
|
931
|
+
}
|
|
932
|
+
touchState.preserveNativeCrossAxisScroll = true;
|
|
933
|
+
return true;
|
|
934
|
+
}
|
|
813
935
|
function hasScrollableContentOnAxis(scrollTarget, axis) {
|
|
814
936
|
return axis === 'vertical' ? scrollTarget.scrollHeight > scrollTarget.clientHeight : scrollTarget.scrollWidth > scrollTarget.clientWidth;
|
|
815
937
|
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export declare enum DrawerViewportDataAttributes {
|
|
2
|
+
/**
|
|
3
|
+
* Present when the drawer is open.
|
|
4
|
+
*/
|
|
5
|
+
open = "data-open",
|
|
6
|
+
/**
|
|
7
|
+
* Present when the drawer is closed.
|
|
8
|
+
*/
|
|
9
|
+
closed = "data-closed",
|
|
10
|
+
/**
|
|
11
|
+
* Present when the drawer is animating in.
|
|
12
|
+
*/
|
|
13
|
+
startingStyle = "data-starting-style",
|
|
14
|
+
/**
|
|
15
|
+
* Present when the drawer is animating out.
|
|
16
|
+
*/
|
|
17
|
+
endingStyle = "data-ending-style",
|
|
18
|
+
/**
|
|
19
|
+
* Present when the drawer is nested within another drawer.
|
|
20
|
+
*/
|
|
21
|
+
nested = "data-nested",
|
|
22
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.DrawerViewportDataAttributes = void 0;
|
|
7
|
+
var _popupStateMapping = require("../../utils/popupStateMapping");
|
|
8
|
+
let DrawerViewportDataAttributes = exports.DrawerViewportDataAttributes = function (DrawerViewportDataAttributes) {
|
|
9
|
+
/**
|
|
10
|
+
* Present when the drawer is open.
|
|
11
|
+
*/
|
|
12
|
+
DrawerViewportDataAttributes[DrawerViewportDataAttributes["open"] = _popupStateMapping.CommonPopupDataAttributes.open] = "open";
|
|
13
|
+
/**
|
|
14
|
+
* Present when the drawer is closed.
|
|
15
|
+
*/
|
|
16
|
+
DrawerViewportDataAttributes[DrawerViewportDataAttributes["closed"] = _popupStateMapping.CommonPopupDataAttributes.closed] = "closed";
|
|
17
|
+
/**
|
|
18
|
+
* Present when the drawer is animating in.
|
|
19
|
+
*/
|
|
20
|
+
DrawerViewportDataAttributes[DrawerViewportDataAttributes["startingStyle"] = _popupStateMapping.CommonPopupDataAttributes.startingStyle] = "startingStyle";
|
|
21
|
+
/**
|
|
22
|
+
* Present when the drawer is animating out.
|
|
23
|
+
*/
|
|
24
|
+
DrawerViewportDataAttributes[DrawerViewportDataAttributes["endingStyle"] = _popupStateMapping.CommonPopupDataAttributes.endingStyle] = "endingStyle";
|
|
25
|
+
/**
|
|
26
|
+
* Present when the drawer is nested within another drawer.
|
|
27
|
+
*/
|
|
28
|
+
DrawerViewportDataAttributes["nested"] = "data-nested";
|
|
29
|
+
return DrawerViewportDataAttributes;
|
|
30
|
+
}({});
|