@base-ui/react 1.6.0 → 1.7.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 +229 -0
- package/accordion/item/AccordionItem.js +6 -13
- package/accordion/item/AccordionItem.mjs +6 -13
- package/accordion/item/AccordionItemContext.d.mts +2 -1
- package/accordion/item/AccordionItemContext.d.ts +2 -1
- package/accordion/item/stateAttributesMapping.js +3 -5
- package/accordion/item/stateAttributesMapping.mjs +3 -5
- package/accordion/panel/AccordionPanel.js +12 -11
- package/accordion/panel/AccordionPanel.mjs +12 -11
- package/accordion/panel/AccordionPanelDataAttributes.d.mts +1 -1
- package/accordion/panel/AccordionPanelDataAttributes.d.ts +1 -1
- package/accordion/panel/AccordionPanelDataAttributes.js +1 -1
- package/accordion/panel/AccordionPanelDataAttributes.mjs +1 -1
- package/accordion/root/AccordionRoot.js +4 -7
- package/accordion/root/AccordionRoot.mjs +4 -7
- package/accordion/trigger/AccordionTrigger.js +7 -7
- package/accordion/trigger/AccordionTrigger.mjs +7 -7
- package/alert-dialog/handle.d.mts +6 -8
- package/alert-dialog/handle.d.ts +6 -8
- package/alert-dialog/handle.js +8 -19
- package/alert-dialog/handle.mjs +7 -17
- package/alert-dialog/root/AlertDialogRoot.js +1 -1
- package/alert-dialog/root/AlertDialogRoot.mjs +1 -1
- package/autocomplete/index.d.mts +1 -0
- package/autocomplete/index.d.ts +1 -0
- package/autocomplete/index.parts.d.mts +1 -1
- package/autocomplete/index.parts.d.ts +1 -1
- package/autocomplete/index.parts.js +2 -2
- package/autocomplete/index.parts.mjs +1 -1
- package/autocomplete/input-group/AutocompleteInputGroup.d.mts +1 -1
- package/autocomplete/input-group/AutocompleteInputGroup.d.ts +1 -1
- package/autocomplete/root/AutocompleteRoot.d.mts +6 -1
- package/autocomplete/root/AutocompleteRoot.d.ts +6 -1
- package/autocomplete/root/AutocompleteRoot.js +4 -10
- package/autocomplete/root/AutocompleteRoot.mjs +4 -10
- package/autocomplete/separator/AutocompleteSeparator.d.mts +26 -0
- package/autocomplete/separator/AutocompleteSeparator.d.ts +26 -0
- package/autocomplete/separator/AutocompleteSeparator.js +15 -0
- package/autocomplete/separator/AutocompleteSeparator.mjs +10 -0
- package/autocomplete/trigger/AutocompleteTrigger.d.mts +1 -1
- package/autocomplete/trigger/AutocompleteTrigger.d.ts +1 -1
- package/avatar/fallback/AvatarFallback.d.mts +2 -0
- package/avatar/fallback/AvatarFallback.d.ts +2 -0
- package/avatar/fallback/AvatarFallback.js +5 -5
- package/avatar/fallback/AvatarFallback.mjs +5 -5
- package/avatar/image/AvatarImage.d.mts +1 -1
- package/avatar/image/AvatarImage.d.ts +1 -1
- package/avatar/image/AvatarImageDataAttributes.d.mts +1 -1
- package/avatar/image/AvatarImageDataAttributes.d.ts +1 -1
- package/avatar/image/AvatarImageDataAttributes.js +1 -1
- package/avatar/image/AvatarImageDataAttributes.mjs +1 -1
- package/checkbox/indicator/CheckboxIndicator.js +3 -5
- package/checkbox/indicator/CheckboxIndicator.mjs +3 -5
- package/checkbox/indicator/CheckboxIndicatorDataAttributes.d.mts +1 -1
- package/checkbox/indicator/CheckboxIndicatorDataAttributes.d.ts +1 -1
- package/checkbox/indicator/CheckboxIndicatorDataAttributes.js +1 -1
- package/checkbox/indicator/CheckboxIndicatorDataAttributes.mjs +1 -1
- package/checkbox/root/CheckboxRoot.d.mts +2 -1
- package/checkbox/root/CheckboxRoot.d.ts +2 -1
- package/checkbox/root/CheckboxRoot.js +39 -31
- package/checkbox/root/CheckboxRoot.mjs +39 -31
- package/checkbox/utils/{useStateAttributesMapping.d.mts → getCheckboxStateAttributesMapping.d.mts} +1 -1
- package/checkbox/utils/{useStateAttributesMapping.d.ts → getCheckboxStateAttributesMapping.d.ts} +1 -1
- package/checkbox/utils/getCheckboxStateAttributesMapping.js +26 -0
- package/checkbox/utils/{useStateAttributesMapping.mjs → getCheckboxStateAttributesMapping.mjs} +5 -9
- package/checkbox-group/CheckboxGroup.js +33 -24
- package/checkbox-group/CheckboxGroup.mjs +33 -24
- package/checkbox-group/CheckboxGroupContext.d.mts +2 -5
- package/checkbox-group/CheckboxGroupContext.d.ts +2 -5
- package/checkbox-group/CheckboxGroupContext.js +2 -8
- package/checkbox-group/CheckboxGroupContext.mjs +2 -7
- package/checkbox-group/useCheckboxGroupParent.d.mts +2 -4
- package/checkbox-group/useCheckboxGroupParent.d.ts +2 -4
- package/checkbox-group/useCheckboxGroupParent.js +5 -6
- package/checkbox-group/useCheckboxGroupParent.mjs +5 -6
- package/collapsible/panel/CollapsiblePanel.js +12 -11
- package/collapsible/panel/CollapsiblePanel.mjs +12 -11
- package/collapsible/panel/CollapsiblePanelDataAttributes.d.mts +1 -1
- package/collapsible/panel/CollapsiblePanelDataAttributes.d.ts +1 -1
- package/collapsible/panel/CollapsiblePanelDataAttributes.js +1 -1
- package/collapsible/panel/CollapsiblePanelDataAttributes.mjs +1 -1
- package/collapsible/panel/useCollapsiblePanel.js +29 -24
- package/collapsible/panel/useCollapsiblePanel.mjs +29 -24
- package/collapsible/root/CollapsibleRootDataAttributes.d.mts +18 -0
- package/collapsible/root/CollapsibleRootDataAttributes.d.ts +18 -0
- package/collapsible/root/CollapsibleRootDataAttributes.js +26 -0
- package/collapsible/root/CollapsibleRootDataAttributes.mjs +20 -0
- package/collapsible/root/useCollapsibleRoot.d.mts +2 -1
- package/collapsible/root/useCollapsibleRoot.d.ts +2 -1
- package/collapsible/root/useCollapsibleRoot.js +5 -3
- package/collapsible/root/useCollapsibleRoot.mjs +5 -3
- package/combobox/arrow/ComboboxArrow.d.mts +1 -1
- package/combobox/arrow/ComboboxArrow.d.ts +1 -1
- package/combobox/backdrop/ComboboxBackdropDataAttributes.d.mts +1 -1
- package/combobox/backdrop/ComboboxBackdropDataAttributes.d.ts +1 -1
- package/combobox/backdrop/ComboboxBackdropDataAttributes.js +1 -1
- package/combobox/backdrop/ComboboxBackdropDataAttributes.mjs +1 -1
- package/combobox/chip/ComboboxChip.js +4 -6
- package/combobox/chip/ComboboxChip.mjs +4 -6
- package/combobox/chip-remove/ComboboxChipRemove.js +1 -7
- package/combobox/chip-remove/ComboboxChipRemove.mjs +1 -7
- package/combobox/clear/ComboboxClear.js +5 -3
- package/combobox/clear/ComboboxClear.mjs +5 -3
- package/combobox/clear/ComboboxClearDataAttributes.d.mts +1 -1
- package/combobox/clear/ComboboxClearDataAttributes.d.ts +1 -1
- package/combobox/clear/ComboboxClearDataAttributes.js +1 -1
- package/combobox/clear/ComboboxClearDataAttributes.mjs +1 -1
- package/combobox/collection/ComboboxCollection.d.mts +1 -1
- package/combobox/collection/ComboboxCollection.d.ts +1 -1
- package/combobox/collection/ComboboxCollection.js +0 -3
- package/combobox/collection/ComboboxCollection.mjs +0 -3
- package/combobox/group-label/ComboboxGroupLabel.js +1 -1
- package/combobox/group-label/ComboboxGroupLabel.mjs +1 -1
- package/combobox/index.d.mts +1 -0
- package/combobox/index.d.ts +1 -0
- package/combobox/index.parts.d.mts +1 -1
- package/combobox/index.parts.d.ts +1 -1
- package/combobox/index.parts.js +2 -2
- package/combobox/index.parts.mjs +1 -1
- package/combobox/input/ComboboxInput.d.mts +1 -1
- package/combobox/input/ComboboxInput.d.ts +1 -1
- package/combobox/input/ComboboxInput.js +43 -88
- package/combobox/input/ComboboxInput.mjs +44 -89
- package/combobox/input-group/ComboboxInputGroup.d.mts +1 -1
- package/combobox/input-group/ComboboxInputGroup.d.ts +1 -1
- package/combobox/input-group/ComboboxInputGroup.js +3 -8
- package/combobox/input-group/ComboboxInputGroup.mjs +4 -9
- package/combobox/item/ComboboxItem.js +21 -23
- package/combobox/item/ComboboxItem.mjs +22 -24
- package/combobox/item-indicator/ComboboxItemIndicator.js +1 -2
- package/combobox/item-indicator/ComboboxItemIndicator.mjs +1 -2
- package/combobox/item-indicator/ComboboxItemIndicatorDataAttributes.d.mts +1 -1
- package/combobox/item-indicator/ComboboxItemIndicatorDataAttributes.d.ts +1 -1
- package/combobox/item-indicator/ComboboxItemIndicatorDataAttributes.js +1 -1
- package/combobox/item-indicator/ComboboxItemIndicatorDataAttributes.mjs +1 -1
- package/combobox/label/ComboboxLabel.js +2 -1
- package/combobox/label/ComboboxLabel.mjs +2 -1
- package/combobox/list/ComboboxList.js +5 -10
- package/combobox/list/ComboboxList.mjs +5 -10
- package/combobox/popup/ComboboxPopup.d.mts +1 -1
- package/combobox/popup/ComboboxPopup.d.ts +1 -1
- package/combobox/popup/ComboboxPopup.js +5 -7
- package/combobox/popup/ComboboxPopup.mjs +6 -8
- package/combobox/popup/ComboboxPopupDataAttributes.d.mts +1 -1
- package/combobox/popup/ComboboxPopupDataAttributes.d.ts +1 -1
- package/combobox/popup/ComboboxPopupDataAttributes.js +1 -1
- package/combobox/popup/ComboboxPopupDataAttributes.mjs +1 -1
- package/combobox/portal/ComboboxPortal.d.mts +6 -2
- package/combobox/portal/ComboboxPortal.d.ts +6 -2
- package/combobox/positioner/ComboboxPositioner.d.mts +1 -1
- package/combobox/positioner/ComboboxPositioner.d.ts +1 -1
- package/combobox/positioner/ComboboxPositioner.js +13 -13
- package/combobox/positioner/ComboboxPositioner.mjs +14 -14
- package/combobox/positioner/ComboboxPositionerContext.d.mts +1 -1
- package/combobox/positioner/ComboboxPositionerContext.d.ts +1 -1
- package/combobox/root/AriaCombobox.d.mts +5 -10
- package/combobox/root/AriaCombobox.d.ts +5 -10
- package/combobox/root/AriaCombobox.js +259 -196
- package/combobox/root/AriaCombobox.mjs +262 -199
- package/combobox/root/utils/index.js +2 -4
- package/combobox/root/utils/index.mjs +2 -4
- package/combobox/root/utils/useFilter.js +2 -3
- package/combobox/root/utils/useFilter.mjs +2 -3
- package/combobox/separator/ComboboxSeparator.d.mts +26 -0
- package/combobox/separator/ComboboxSeparator.d.ts +26 -0
- package/combobox/separator/ComboboxSeparator.js +15 -0
- package/combobox/separator/ComboboxSeparator.mjs +10 -0
- package/combobox/store.d.mts +6 -9
- package/combobox/store.d.ts +6 -9
- package/combobox/store.js +47 -48
- package/combobox/store.mjs +47 -48
- package/combobox/trigger/ComboboxTrigger.d.mts +1 -1
- package/combobox/trigger/ComboboxTrigger.d.ts +1 -1
- package/combobox/trigger/ComboboxTrigger.js +12 -33
- package/combobox/trigger/ComboboxTrigger.mjs +14 -34
- package/combobox/utils/ComboboxInternalDismissButton.d.mts +1 -5
- package/combobox/utils/ComboboxInternalDismissButton.d.ts +1 -5
- package/combobox/utils/parts.d.mts +24 -0
- package/combobox/utils/parts.d.ts +24 -0
- package/combobox/utils/parts.js +59 -0
- package/combobox/utils/parts.mjs +50 -0
- package/combobox/utils/stateAttributesMapping.d.mts +3 -3
- package/combobox/utils/stateAttributesMapping.d.ts +3 -3
- package/combobox/utils/useInitialLiveRegionTextMutation.js +1 -1
- package/combobox/utils/useInitialLiveRegionTextMutation.mjs +1 -1
- package/context-menu/root/ContextMenuRoot.d.mts +3 -1
- package/context-menu/root/ContextMenuRoot.d.ts +3 -1
- package/context-menu/trigger/ContextMenuTrigger.js +40 -22
- package/context-menu/trigger/ContextMenuTrigger.mjs +40 -22
- package/dialog/backdrop/DialogBackdrop.js +2 -10
- package/dialog/backdrop/DialogBackdrop.mjs +3 -10
- package/dialog/backdrop/DialogBackdropDataAttributes.d.mts +1 -1
- package/dialog/backdrop/DialogBackdropDataAttributes.d.ts +1 -1
- package/dialog/backdrop/DialogBackdropDataAttributes.js +1 -1
- package/dialog/backdrop/DialogBackdropDataAttributes.mjs +1 -1
- package/dialog/close/DialogClose.js +1 -3
- package/dialog/close/DialogClose.mjs +1 -3
- package/dialog/description/DialogDescription.js +1 -3
- package/dialog/description/DialogDescription.mjs +1 -3
- package/dialog/popup/DialogPopup.js +7 -23
- package/dialog/popup/DialogPopup.mjs +8 -23
- package/dialog/popup/DialogPopupDataAttributes.d.mts +1 -1
- package/dialog/popup/DialogPopupDataAttributes.d.ts +1 -1
- package/dialog/popup/DialogPopupDataAttributes.js +1 -1
- package/dialog/popup/DialogPopupDataAttributes.mjs +1 -1
- package/dialog/portal/DialogPortal.d.mts +3 -3
- package/dialog/portal/DialogPortal.d.ts +3 -3
- package/dialog/portal/DialogPortal.js +1 -3
- package/dialog/portal/DialogPortal.mjs +1 -3
- package/dialog/root/DialogRoot.js +1 -5
- package/dialog/root/DialogRoot.mjs +1 -4
- package/dialog/root/DialogRootContext.d.mts +3 -7
- package/dialog/root/DialogRootContext.d.ts +3 -7
- package/dialog/root/DialogRootContext.js +4 -6
- package/dialog/root/DialogRootContext.mjs +3 -5
- package/dialog/root/useDialogRoot.d.mts +0 -6
- package/dialog/root/useDialogRoot.d.ts +0 -6
- package/dialog/root/useDialogRoot.js +33 -46
- package/dialog/root/useDialogRoot.mjs +34 -46
- package/dialog/root/useRenderDialogRoot.d.mts +1 -1
- package/dialog/root/useRenderDialogRoot.d.ts +1 -1
- package/dialog/root/useRenderDialogRoot.js +34 -42
- package/dialog/root/useRenderDialogRoot.mjs +36 -44
- package/dialog/store/DialogHandle.d.mts +20 -16
- package/dialog/store/DialogHandle.d.ts +20 -16
- package/dialog/store/DialogHandle.js +32 -27
- package/dialog/store/DialogHandle.mjs +33 -28
- package/dialog/store/DialogStore.d.mts +14 -4
- package/dialog/store/DialogStore.d.ts +14 -4
- package/dialog/store/DialogStore.js +49 -34
- package/dialog/store/DialogStore.mjs +49 -35
- package/dialog/title/DialogTitle.js +1 -3
- package/dialog/title/DialogTitle.mjs +1 -3
- package/dialog/trigger/DialogTrigger.js +4 -5
- package/dialog/trigger/DialogTrigger.mjs +5 -6
- package/dialog/utils/stateAttributesMapping.d.mts +12 -0
- package/dialog/utils/stateAttributesMapping.d.ts +12 -0
- package/dialog/utils/stateAttributesMapping.js +21 -0
- package/dialog/utils/stateAttributesMapping.mjs +15 -0
- package/dialog/viewport/DialogViewport.js +3 -22
- package/dialog/viewport/DialogViewport.mjs +3 -21
- package/dialog/viewport/DialogViewportDataAttributes.d.mts +1 -1
- package/dialog/viewport/DialogViewportDataAttributes.d.ts +1 -1
- package/dialog/viewport/DialogViewportDataAttributes.js +1 -1
- package/dialog/viewport/DialogViewportDataAttributes.mjs +1 -1
- package/docs/index.md +1 -0
- package/docs/react/components/accordion.md +1 -1
- package/docs/react/components/alert-dialog.md +25 -21
- package/docs/react/components/autocomplete.md +158 -103
- package/docs/react/components/avatar.md +15 -11
- package/docs/react/components/checkbox.md +21 -21
- package/docs/react/components/collapsible.md +10 -1
- package/docs/react/components/combobox.md +51 -23
- package/docs/react/components/context-menu.md +474 -87
- package/docs/react/components/dialog.md +396 -21
- package/docs/react/components/drawer.md +27 -23
- package/docs/react/components/field.md +11 -11
- package/docs/react/components/form.md +13 -11
- package/docs/react/components/menu.md +138 -118
- package/docs/react/components/menubar.md +41 -41
- package/docs/react/components/navigation-menu.md +57 -71
- package/docs/react/components/number-field.md +6 -6
- package/docs/react/components/otp-field.md +20 -18
- package/docs/react/components/popover.md +51 -36
- package/docs/react/components/preview-card.md +56 -47
- package/docs/react/components/progress.md +3 -3
- package/docs/react/components/radio.md +1 -1
- package/docs/react/components/select.md +57 -55
- package/docs/react/components/slider.md +22 -22
- package/docs/react/components/tabs.md +275 -1
- package/docs/react/components/toast.md +21 -26
- package/docs/react/components/toolbar.md +27 -23
- package/docs/react/components/tooltip.md +30 -17
- package/docs/react/handbook/animation.md +3 -3
- package/docs/react/handbook/forms.md +3 -3
- package/docs/react/handbook/styling.md +1 -1
- package/docs/react/overview/about.md +10 -7
- package/docs/react/overview/community.md +3 -2
- package/docs/react/overview/quick-start.md +3 -3
- package/docs/react/overview/releases/v1-7-0.md +236 -0
- package/docs/react/overview/releases.md +10 -2
- package/docs/react/utils/direction-provider.md +5 -2
- package/drawer/backdrop/DrawerBackdrop.js +2 -10
- package/drawer/backdrop/DrawerBackdrop.mjs +3 -10
- package/drawer/backdrop/DrawerBackdropDataAttributes.d.mts +1 -1
- package/drawer/backdrop/DrawerBackdropDataAttributes.d.ts +1 -1
- package/drawer/backdrop/DrawerBackdropDataAttributes.js +1 -1
- package/drawer/backdrop/DrawerBackdropDataAttributes.mjs +1 -1
- package/drawer/handle.d.mts +16 -0
- package/drawer/handle.d.ts +16 -0
- package/drawer/handle.js +25 -0
- package/drawer/handle.mjs +18 -0
- package/drawer/indent/DrawerIndent.js +1 -1
- package/drawer/indent/DrawerIndent.mjs +1 -1
- package/drawer/indent-background/DrawerIndentBackground.js +1 -1
- package/drawer/indent-background/DrawerIndentBackground.mjs +1 -1
- package/drawer/index.parts.d.mts +1 -1
- package/drawer/index.parts.d.ts +1 -1
- package/drawer/index.parts.js +3 -3
- package/drawer/index.parts.mjs +1 -1
- package/drawer/popup/DrawerPopup.js +10 -12
- package/drawer/popup/DrawerPopup.mjs +11 -13
- package/drawer/popup/DrawerPopupDataAttributes.d.mts +1 -1
- package/drawer/popup/DrawerPopupDataAttributes.d.ts +1 -1
- package/drawer/popup/DrawerPopupDataAttributes.js +1 -1
- package/drawer/popup/DrawerPopupDataAttributes.mjs +1 -1
- package/drawer/portal/DrawerPortal.d.mts +3 -3
- package/drawer/portal/DrawerPortal.d.ts +3 -3
- package/drawer/provider/DrawerProvider.js +13 -24
- package/drawer/provider/DrawerProvider.mjs +13 -24
- package/drawer/provider/DrawerProviderContext.d.mts +3 -4
- package/drawer/provider/DrawerProviderContext.d.ts +3 -4
- package/drawer/provider/DrawerProviderContext.js +2 -8
- package/drawer/provider/DrawerProviderContext.mjs +2 -7
- package/drawer/root/DrawerRoot.d.mts +2 -2
- package/drawer/root/DrawerRoot.d.ts +2 -2
- package/drawer/root/DrawerRoot.js +30 -34
- package/drawer/root/DrawerRoot.mjs +31 -35
- package/drawer/root/DrawerRootContext.d.mts +7 -2
- package/drawer/root/DrawerRootContext.d.ts +7 -2
- package/drawer/root/DrawerRootContext.js +1 -1
- package/drawer/root/DrawerRootContext.mjs +1 -1
- package/drawer/root/useDrawerSnapPoints.d.mts +6 -2
- package/drawer/root/useDrawerSnapPoints.d.ts +6 -2
- package/drawer/root/useDrawerSnapPoints.js +16 -24
- package/drawer/root/useDrawerSnapPoints.mjs +15 -24
- package/drawer/swipe-area/DrawerSwipeArea.js +82 -49
- package/drawer/swipe-area/DrawerSwipeArea.mjs +82 -49
- package/drawer/trigger/DrawerTrigger.d.mts +1 -1
- package/drawer/trigger/DrawerTrigger.d.ts +1 -1
- package/drawer/viewport/DrawerViewport.js +178 -340
- package/drawer/viewport/DrawerViewport.mjs +180 -342
- package/drawer/viewport/DrawerViewportContext.d.mts +1 -2
- package/drawer/viewport/DrawerViewportContext.d.ts +1 -2
- package/drawer/viewport/DrawerViewportContext.js +2 -8
- package/drawer/viewport/DrawerViewportContext.mjs +2 -7
- package/drawer/viewport/DrawerViewportDataAttributes.d.mts +1 -1
- package/drawer/viewport/DrawerViewportDataAttributes.d.ts +1 -1
- package/drawer/viewport/DrawerViewportDataAttributes.js +1 -1
- package/drawer/viewport/DrawerViewportDataAttributes.mjs +1 -1
- package/drawer/virtual-keyboard-provider/DrawerVirtualKeyboardProvider.js +250 -60
- package/drawer/virtual-keyboard-provider/DrawerVirtualKeyboardProvider.mjs +250 -60
- package/field/control/FieldControl.js +2 -2
- package/field/control/FieldControl.mjs +2 -2
- package/field/error/FieldError.js +2 -2
- package/field/error/FieldError.mjs +2 -2
- package/field/error/FieldErrorDataAttributes.d.mts +1 -1
- package/field/error/FieldErrorDataAttributes.d.ts +1 -1
- package/field/error/FieldErrorDataAttributes.js +1 -1
- package/field/error/FieldErrorDataAttributes.mjs +1 -1
- package/field/item/FieldItem.js +0 -5
- package/field/item/FieldItem.mjs +0 -5
- package/field/root/FieldRoot.js +8 -15
- package/field/root/FieldRoot.mjs +8 -15
- package/field/root/useFieldValidation.d.mts +17 -2
- package/field/root/useFieldValidation.d.ts +17 -2
- package/field/root/useFieldValidation.js +83 -77
- package/field/root/useFieldValidation.mjs +82 -77
- package/field/validity/FieldValidity.js +4 -0
- package/field/validity/FieldValidity.mjs +4 -0
- package/fieldset/legend/FieldsetLegend.js +3 -10
- package/fieldset/legend/FieldsetLegend.mjs +4 -10
- package/fieldset/root/FieldsetRootContext.d.mts +1 -1
- package/fieldset/root/FieldsetRootContext.d.ts +1 -1
- package/floating-ui-react/components/FloatingDelayGroup.d.mts +2 -41
- package/floating-ui-react/components/FloatingDelayGroup.d.ts +2 -41
- package/floating-ui-react/components/FloatingDelayGroup.js +0 -9
- package/floating-ui-react/components/FloatingDelayGroup.mjs +0 -9
- package/floating-ui-react/components/FloatingFocusManager.d.mts +1 -7
- package/floating-ui-react/components/FloatingFocusManager.d.ts +1 -7
- package/floating-ui-react/components/FloatingFocusManager.js +41 -27
- package/floating-ui-react/components/FloatingFocusManager.mjs +41 -27
- package/floating-ui-react/components/FloatingPortal.d.mts +7 -14
- package/floating-ui-react/components/FloatingPortal.d.ts +7 -14
- package/floating-ui-react/components/FloatingPortal.js +11 -13
- package/floating-ui-react/components/FloatingPortal.mjs +11 -13
- package/floating-ui-react/components/FloatingRootStore.js +6 -6
- package/floating-ui-react/components/FloatingRootStore.mjs +7 -7
- package/floating-ui-react/components/FloatingTree.d.mts +1 -19
- package/floating-ui-react/components/FloatingTree.d.ts +1 -19
- package/floating-ui-react/hooks/useClick.js +5 -1
- package/floating-ui-react/hooks/useClick.mjs +6 -2
- package/floating-ui-react/hooks/useDismiss.js +2 -2
- package/floating-ui-react/hooks/useDismiss.mjs +2 -2
- package/floating-ui-react/hooks/useFloating.d.mts +9 -1
- package/floating-ui-react/hooks/useFloating.d.ts +9 -1
- package/floating-ui-react/hooks/useFloating.js +14 -2
- package/floating-ui-react/hooks/useFloating.mjs +13 -2
- package/floating-ui-react/hooks/useHoverReferenceInteraction.d.mts +12 -0
- package/floating-ui-react/hooks/useHoverReferenceInteraction.d.ts +12 -0
- package/floating-ui-react/hooks/useHoverReferenceInteraction.js +16 -4
- package/floating-ui-react/hooks/useHoverReferenceInteraction.mjs +16 -4
- package/floating-ui-react/hooks/useListNavigation.js +15 -1
- package/floating-ui-react/hooks/useListNavigation.mjs +15 -1
- package/floating-ui-react/hooks/useTypeahead.d.mts +5 -5
- package/floating-ui-react/hooks/useTypeahead.d.ts +5 -5
- package/floating-ui-react/hooks/useTypeahead.js +9 -14
- package/floating-ui-react/hooks/useTypeahead.mjs +9 -14
- package/floating-ui-react/index.d.mts +0 -4
- package/floating-ui-react/index.d.ts +0 -4
- package/floating-ui-react/index.mjs +12 -0
- package/floating-ui-react/utils/composite.js +7 -0
- package/floating-ui-react/utils/composite.mjs +7 -0
- package/form/Form.d.mts +1 -1
- package/form/Form.d.ts +1 -1
- package/form/Form.js +62 -47
- package/form/Form.mjs +62 -47
- package/index.js +1 -1
- package/index.mjs +1 -1
- package/internals/PrehydrationScript.d.mts +36 -0
- package/internals/PrehydrationScript.d.ts +36 -0
- package/internals/PrehydrationScript.js +59 -0
- package/internals/PrehydrationScript.mjs +54 -0
- package/internals/composite/composite.d.mts +2 -10
- package/internals/composite/composite.d.ts +2 -10
- package/internals/composite/composite.js +4 -12
- package/internals/composite/composite.mjs +3 -11
- package/internals/composite/index.d.mts +2 -1
- package/internals/composite/index.d.ts +2 -1
- package/internals/composite/index.js +11 -4
- package/internals/composite/index.mjs +1 -1
- package/internals/composite/item/CompositeItem.d.mts +0 -3
- package/internals/composite/item/CompositeItem.d.ts +0 -3
- package/internals/composite/item/CompositeItem.js +2 -4
- package/internals/composite/item/CompositeItem.mjs +2 -4
- package/internals/composite/item/useCompositeItem.d.mts +1 -1
- package/internals/composite/item/useCompositeItem.d.ts +1 -1
- package/internals/composite/list/CompositeList.d.mts +3 -3
- package/internals/composite/list/CompositeList.d.ts +3 -3
- package/internals/composite/list/CompositeList.js +165 -86
- package/internals/composite/list/CompositeList.mjs +165 -86
- package/internals/composite/list/CompositeListContext.d.mts +8 -4
- package/internals/composite/list/CompositeListContext.d.ts +8 -4
- package/internals/composite/list/CompositeListContext.js +1 -6
- package/internals/composite/list/CompositeListContext.mjs +1 -6
- package/internals/composite/list/useCompositeListItem.d.mts +11 -8
- package/internals/composite/list/useCompositeListItem.d.ts +11 -8
- package/internals/composite/list/useCompositeListItem.js +25 -32
- package/internals/composite/list/useCompositeListItem.mjs +25 -32
- package/internals/composite/root/CompositeRoot.d.mts +1 -4
- package/internals/composite/root/CompositeRoot.d.ts +1 -4
- package/internals/composite/root/CompositeRoot.js +0 -3
- package/internals/composite/root/CompositeRoot.mjs +0 -3
- package/internals/composite/root/useCompositeRoot.d.mts +0 -1
- package/internals/composite/root/useCompositeRoot.d.ts +0 -1
- package/internals/composite/root/useCompositeRoot.js +19 -39
- package/internals/composite/root/useCompositeRoot.mjs +20 -40
- package/internals/createBaseUIEventDetails.d.mts +1 -1
- package/internals/createBaseUIEventDetails.d.ts +1 -1
- package/internals/csp-context/CSPContext.d.mts +0 -6
- package/internals/csp-context/CSPContext.d.ts +0 -6
- package/internals/csp-context/CSPContext.js +0 -7
- package/internals/csp-context/CSPContext.mjs +0 -7
- package/internals/direction-context/DirectionContext.d.mts +0 -3
- package/internals/direction-context/DirectionContext.d.ts +0 -3
- package/internals/direction-context/DirectionContext.js +0 -3
- package/internals/direction-context/DirectionContext.mjs +0 -3
- package/internals/field-constants/constants.js +2 -3
- package/internals/field-constants/constants.mjs +2 -3
- package/internals/field-register-control/useFieldControlRegistration.d.mts +1 -1
- package/internals/field-register-control/useFieldControlRegistration.d.ts +1 -1
- package/internals/field-register-control/useFieldControlRegistration.js +21 -16
- package/internals/field-register-control/useFieldControlRegistration.mjs +21 -16
- package/internals/field-register-control/useRegisterFieldControl.js +13 -9
- package/internals/field-register-control/useRegisterFieldControl.mjs +13 -8
- package/internals/field-root-context/FieldRootContext.d.mts +0 -7
- package/internals/field-root-context/FieldRootContext.d.ts +0 -7
- package/internals/field-root-context/FieldRootContext.js +2 -9
- package/internals/field-root-context/FieldRootContext.mjs +3 -10
- package/internals/form-context/FormContext.d.mts +1 -0
- package/internals/form-context/FormContext.d.ts +1 -0
- package/internals/form-context/FormContext.js +3 -0
- package/internals/form-context/FormContext.mjs +3 -0
- package/{utils → internals}/getDisabledMountTransitionStyles.d.mts +1 -1
- package/{utils → internals}/getDisabledMountTransitionStyles.d.ts +1 -1
- package/{utils → internals}/getDisabledMountTransitionStyles.js +1 -1
- package/{utils → internals}/getDisabledMountTransitionStyles.mjs +1 -1
- package/internals/itemEquality.d.mts +1 -0
- package/internals/itemEquality.d.ts +1 -0
- package/internals/itemEquality.js +7 -0
- package/internals/itemEquality.mjs +6 -0
- package/internals/labelable-provider/LabelableProvider.d.mts +0 -3
- package/internals/labelable-provider/LabelableProvider.d.ts +0 -3
- package/internals/labelable-provider/LabelableProvider.js +0 -3
- package/internals/labelable-provider/LabelableProvider.mjs +0 -4
- package/internals/labelable-provider/useAriaLabelledBy.d.mts +0 -3
- package/internals/labelable-provider/useAriaLabelledBy.d.ts +0 -3
- package/internals/labelable-provider/useAriaLabelledBy.js +0 -3
- package/internals/labelable-provider/useAriaLabelledBy.mjs +0 -4
- package/internals/labelable-provider/useLabel.d.mts +1 -1
- package/internals/labelable-provider/useLabel.d.ts +1 -1
- package/internals/labelable-provider/useLabelableId.js +1 -1
- package/internals/labelable-provider/useLabelableId.mjs +1 -1
- package/internals/prehydrationScript.stub.d.mts +1 -0
- package/internals/prehydrationScript.stub.d.ts +1 -0
- package/internals/prehydrationScript.stub.js +12 -0
- package/internals/prehydrationScript.stub.mjs +6 -0
- package/internals/stateAttributesMapping.d.mts +1 -1
- package/internals/stateAttributesMapping.d.ts +1 -1
- package/internals/stateAttributesMapping.js +3 -3
- package/internals/stateAttributesMapping.mjs +3 -3
- package/internals/use-button/useButton.js +30 -14
- package/internals/use-button/useButton.mjs +30 -14
- package/{utils → internals}/useAnchorPositioning.d.mts +11 -4
- package/{utils → internals}/useAnchorPositioning.d.ts +11 -4
- package/{utils → internals}/useAnchorPositioning.js +97 -68
- package/{utils → internals}/useAnchorPositioning.mjs +96 -68
- package/internals/useAnimationsFinished.d.mts +2 -3
- package/internals/useAnimationsFinished.d.ts +2 -3
- package/internals/useAnimationsFinished.js +8 -11
- package/internals/useAnimationsFinished.mjs +8 -11
- package/internals/useOpenChangeComplete.js +1 -1
- package/internals/useOpenChangeComplete.mjs +1 -1
- package/internals/usePressAndHold.d.mts +0 -1
- package/internals/usePressAndHold.d.ts +0 -1
- package/internals/usePressAndHold.js +4 -8
- package/internals/usePressAndHold.mjs +4 -8
- package/internals/useRenderElement.js +6 -6
- package/internals/useRenderElement.mjs +6 -6
- package/internals/useValueChanged.js +3 -6
- package/internals/useValueChanged.mjs +3 -6
- package/menu/arrow/MenuArrow.d.mts +1 -1
- package/menu/arrow/MenuArrow.d.ts +1 -1
- package/menu/backdrop/MenuBackdrop.js +1 -7
- package/menu/backdrop/MenuBackdrop.mjs +2 -7
- package/menu/backdrop/MenuBackdropDataAttributes.d.mts +1 -1
- package/menu/backdrop/MenuBackdropDataAttributes.d.ts +1 -1
- package/menu/backdrop/MenuBackdropDataAttributes.js +1 -1
- package/menu/backdrop/MenuBackdropDataAttributes.mjs +1 -1
- package/menu/checkbox-item/MenuCheckboxItem.js +6 -2
- package/menu/checkbox-item/MenuCheckboxItem.mjs +6 -2
- package/menu/checkbox-item-indicator/MenuCheckboxItemIndicator.js +2 -1
- package/menu/checkbox-item-indicator/MenuCheckboxItemIndicator.mjs +2 -1
- package/menu/checkbox-item-indicator/MenuCheckboxItemIndicatorDataAttributes.d.mts +1 -1
- package/menu/checkbox-item-indicator/MenuCheckboxItemIndicatorDataAttributes.d.ts +1 -1
- package/menu/checkbox-item-indicator/MenuCheckboxItemIndicatorDataAttributes.js +1 -1
- package/menu/checkbox-item-indicator/MenuCheckboxItemIndicatorDataAttributes.mjs +1 -1
- package/menu/group/MenuGroupContext.d.mts +1 -1
- package/menu/group/MenuGroupContext.d.ts +1 -1
- package/menu/group-label/MenuGroupLabel.js +1 -1
- package/menu/group-label/MenuGroupLabel.mjs +1 -1
- package/menu/item/MenuItem.js +4 -1
- package/menu/item/MenuItem.mjs +4 -1
- package/menu/item/useMenuItem.js +1 -3
- package/menu/item/useMenuItem.mjs +1 -3
- package/menu/item/useMenuItemCommonProps.d.mts +2 -3
- package/menu/item/useMenuItemCommonProps.d.ts +2 -3
- package/menu/item/useMenuItemCommonProps.js +7 -2
- package/menu/item/useMenuItemCommonProps.mjs +7 -2
- package/menu/link-item/MenuLinkItem.d.mts +1 -1
- package/menu/link-item/MenuLinkItem.d.ts +1 -1
- package/menu/link-item/MenuLinkItem.js +4 -1
- package/menu/link-item/MenuLinkItem.mjs +4 -1
- package/menu/popup/MenuPopup.d.mts +1 -1
- package/menu/popup/MenuPopup.d.ts +1 -1
- package/menu/popup/MenuPopup.js +5 -14
- package/menu/popup/MenuPopup.mjs +7 -15
- package/menu/popup/MenuPopupDataAttributes.d.mts +1 -1
- package/menu/popup/MenuPopupDataAttributes.d.ts +1 -1
- package/menu/popup/MenuPopupDataAttributes.js +1 -1
- package/menu/popup/MenuPopupDataAttributes.mjs +1 -1
- package/menu/portal/MenuPortal.d.mts +6 -2
- package/menu/portal/MenuPortal.d.ts +6 -2
- package/menu/positioner/MenuPositioner.d.mts +1 -1
- package/menu/positioner/MenuPositioner.d.ts +1 -1
- package/menu/positioner/MenuPositioner.js +8 -6
- package/menu/positioner/MenuPositioner.mjs +8 -6
- package/menu/positioner/MenuPositionerContext.d.mts +1 -1
- package/menu/positioner/MenuPositionerContext.d.ts +1 -1
- package/menu/positioner/MenuPositionerCssVars.d.mts +12 -0
- package/menu/positioner/MenuPositionerCssVars.d.ts +12 -0
- package/menu/positioner/MenuPositionerCssVars.js +12 -0
- package/menu/positioner/MenuPositionerCssVars.mjs +12 -0
- package/menu/radio-item/MenuRadioItem.js +5 -2
- package/menu/radio-item/MenuRadioItem.mjs +5 -2
- package/menu/radio-item-indicator/MenuRadioItemIndicator.js +2 -1
- package/menu/radio-item-indicator/MenuRadioItemIndicator.mjs +2 -1
- package/menu/radio-item-indicator/MenuRadioItemIndicatorDataAttributes.d.mts +1 -1
- package/menu/radio-item-indicator/MenuRadioItemIndicatorDataAttributes.d.ts +1 -1
- package/menu/radio-item-indicator/MenuRadioItemIndicatorDataAttributes.js +1 -1
- package/menu/radio-item-indicator/MenuRadioItemIndicatorDataAttributes.mjs +1 -1
- package/menu/root/MenuRoot.d.mts +11 -7
- package/menu/root/MenuRoot.d.ts +11 -7
- package/menu/root/MenuRoot.js +36 -13
- package/menu/root/MenuRoot.mjs +38 -15
- package/menu/store/MenuHandle.d.mts +18 -10
- package/menu/store/MenuHandle.d.ts +18 -10
- package/menu/store/MenuHandle.js +21 -20
- package/menu/store/MenuHandle.mjs +22 -19
- package/menu/store/MenuStore.d.mts +22 -7
- package/menu/store/MenuStore.d.ts +22 -7
- package/menu/store/MenuStore.js +71 -53
- package/menu/store/MenuStore.mjs +72 -55
- package/menu/submenu-trigger/MenuSubmenuTrigger.js +29 -8
- package/menu/submenu-trigger/MenuSubmenuTrigger.mjs +28 -8
- package/menu/trigger/MenuTrigger.js +7 -22
- package/menu/trigger/MenuTrigger.mjs +10 -24
- package/menu/utils/findRootOwnerId.js +1 -1
- package/menu/utils/findRootOwnerId.mjs +1 -1
- package/menu/viewport/MenuViewport.js +1 -9
- package/menu/viewport/MenuViewport.mjs +2 -9
- package/menubar/Menubar.js +2 -1
- package/menubar/Menubar.mjs +2 -1
- package/meter/root/MeterRoot.js +4 -6
- package/meter/root/MeterRoot.mjs +4 -6
- package/meter/root/MeterRootContext.d.mts +0 -2
- package/meter/root/MeterRootContext.d.ts +0 -2
- package/navigation-menu/arrow/NavigationMenuArrow.d.mts +1 -1
- package/navigation-menu/arrow/NavigationMenuArrow.d.ts +1 -1
- package/navigation-menu/arrow/NavigationMenuArrow.js +1 -1
- package/navigation-menu/arrow/NavigationMenuArrow.mjs +1 -1
- package/navigation-menu/backdrop/NavigationMenuBackdrop.js +1 -7
- package/navigation-menu/backdrop/NavigationMenuBackdrop.mjs +2 -7
- package/navigation-menu/backdrop/NavigationMenuBackdropDataAttributes.d.mts +1 -1
- package/navigation-menu/backdrop/NavigationMenuBackdropDataAttributes.d.ts +1 -1
- package/navigation-menu/backdrop/NavigationMenuBackdropDataAttributes.js +1 -1
- package/navigation-menu/backdrop/NavigationMenuBackdropDataAttributes.mjs +1 -1
- package/navigation-menu/content/NavigationMenuContentDataAttributes.d.mts +1 -1
- package/navigation-menu/content/NavigationMenuContentDataAttributes.d.ts +1 -1
- package/navigation-menu/content/NavigationMenuContentDataAttributes.js +1 -1
- package/navigation-menu/content/NavigationMenuContentDataAttributes.mjs +1 -1
- package/navigation-menu/link/NavigationMenuLink.d.mts +1 -1
- package/navigation-menu/link/NavigationMenuLink.d.ts +1 -1
- package/navigation-menu/popup/NavigationMenuPopup.d.mts +1 -1
- package/navigation-menu/popup/NavigationMenuPopup.d.ts +1 -1
- package/navigation-menu/popup/NavigationMenuPopup.js +2 -8
- package/navigation-menu/popup/NavigationMenuPopup.mjs +3 -8
- package/navigation-menu/popup/NavigationMenuPopupDataAttributes.d.mts +1 -1
- package/navigation-menu/popup/NavigationMenuPopupDataAttributes.d.ts +1 -1
- package/navigation-menu/popup/NavigationMenuPopupDataAttributes.js +1 -1
- package/navigation-menu/popup/NavigationMenuPopupDataAttributes.mjs +1 -1
- package/navigation-menu/portal/NavigationMenuPortal.d.mts +3 -3
- package/navigation-menu/portal/NavigationMenuPortal.d.ts +3 -3
- package/navigation-menu/positioner/NavigationMenuPositioner.d.mts +1 -1
- package/navigation-menu/positioner/NavigationMenuPositioner.d.ts +1 -1
- package/navigation-menu/positioner/NavigationMenuPositioner.js +7 -6
- package/navigation-menu/positioner/NavigationMenuPositioner.mjs +7 -6
- package/navigation-menu/positioner/NavigationMenuPositionerContext.d.mts +2 -2
- package/navigation-menu/positioner/NavigationMenuPositionerContext.d.ts +2 -2
- package/navigation-menu/trigger/NavigationMenuTrigger.js +63 -101
- package/navigation-menu/trigger/NavigationMenuTrigger.mjs +63 -101
- package/navigation-menu/utils/isOutsideMenuEvent.js +2 -5
- package/navigation-menu/utils/isOutsideMenuEvent.mjs +2 -5
- package/navigation-menu/utils/useNavigationMenuAnchorPositioning.d.mts +6 -0
- package/navigation-menu/utils/useNavigationMenuAnchorPositioning.d.ts +6 -0
- package/navigation-menu/utils/useNavigationMenuAnchorPositioning.js +16 -0
- package/navigation-menu/utils/useNavigationMenuAnchorPositioning.mjs +12 -0
- package/number-field/input/NumberFieldInput.d.mts +1 -1
- package/number-field/input/NumberFieldInput.d.ts +1 -1
- package/number-field/input/NumberFieldInput.js +40 -25
- package/number-field/input/NumberFieldInput.mjs +41 -26
- package/number-field/root/NumberFieldRoot.js +37 -55
- package/number-field/root/NumberFieldRoot.mjs +38 -56
- package/number-field/root/NumberFieldRootContext.d.mts +0 -7
- package/number-field/root/NumberFieldRootContext.d.ts +0 -7
- package/number-field/root/useNumberFieldStepperButton.js +108 -21
- package/number-field/root/useNumberFieldStepperButton.mjs +108 -21
- package/number-field/scrub-area/NumberFieldScrubArea.js +28 -32
- package/number-field/scrub-area/NumberFieldScrubArea.mjs +28 -32
- package/number-field/utils/constants.d.mts +1 -2
- package/number-field/utils/constants.d.ts +1 -2
- package/number-field/utils/constants.js +2 -3
- package/number-field/utils/constants.mjs +1 -2
- package/number-field/utils/parse.d.mts +27 -15
- package/number-field/utils/parse.d.ts +27 -15
- package/number-field/utils/parse.js +74 -135
- package/number-field/utils/parse.mjs +73 -134
- package/number-field/utils/types.d.mts +2 -1
- package/number-field/utils/types.d.ts +2 -1
- package/number-field/utils/validate.d.mts +1 -19
- package/number-field/utils/validate.d.ts +1 -19
- package/number-field/utils/validate.js +6 -14
- package/number-field/utils/validate.mjs +6 -14
- package/otp-field/input/OTPFieldInput.d.mts +1 -1
- package/otp-field/input/OTPFieldInput.d.ts +1 -1
- package/otp-field/input/OTPFieldInput.js +4 -1
- package/otp-field/input/OTPFieldInput.mjs +5 -2
- package/otp-field/root/OTPFieldRoot.js +13 -14
- package/otp-field/root/OTPFieldRoot.mjs +13 -14
- package/package.json +93 -5
- package/popover/arrow/PopoverArrow.d.mts +1 -1
- package/popover/arrow/PopoverArrow.d.ts +1 -1
- package/popover/arrow/PopoverArrow.js +1 -3
- package/popover/arrow/PopoverArrow.mjs +1 -3
- package/popover/backdrop/PopoverBackdrop.js +3 -11
- package/popover/backdrop/PopoverBackdrop.mjs +4 -11
- package/popover/backdrop/PopoverBackdropDataAttributes.d.mts +1 -1
- package/popover/backdrop/PopoverBackdropDataAttributes.d.ts +1 -1
- package/popover/backdrop/PopoverBackdropDataAttributes.js +1 -1
- package/popover/backdrop/PopoverBackdropDataAttributes.mjs +1 -1
- package/popover/close/PopoverClose.js +1 -3
- package/popover/close/PopoverClose.mjs +1 -3
- package/popover/description/PopoverDescription.js +1 -3
- package/popover/description/PopoverDescription.mjs +1 -3
- package/popover/popup/PopoverPopup.d.mts +1 -1
- package/popover/popup/PopoverPopup.d.ts +1 -1
- package/popover/popup/PopoverPopup.js +6 -17
- package/popover/popup/PopoverPopup.mjs +9 -19
- package/popover/popup/PopoverPopupDataAttributes.d.mts +1 -1
- package/popover/popup/PopoverPopupDataAttributes.d.ts +1 -1
- package/popover/popup/PopoverPopupDataAttributes.js +3 -3
- package/popover/popup/PopoverPopupDataAttributes.mjs +3 -3
- package/popover/portal/PopoverPortal.d.mts +6 -2
- package/popover/portal/PopoverPortal.d.ts +6 -2
- package/popover/portal/PopoverPortal.js +1 -3
- package/popover/portal/PopoverPortal.mjs +1 -3
- package/popover/positioner/PopoverPositioner.d.mts +1 -1
- package/popover/positioner/PopoverPositioner.d.ts +1 -1
- package/popover/positioner/PopoverPositioner.js +19 -22
- package/popover/positioner/PopoverPositioner.mjs +19 -22
- package/popover/positioner/PopoverPositionerContext.d.mts +1 -1
- package/popover/positioner/PopoverPositionerContext.d.ts +1 -1
- package/popover/positioner/PopoverPositionerCssVars.d.mts +2 -0
- package/popover/positioner/PopoverPositionerCssVars.d.ts +2 -0
- package/popover/positioner/PopoverPositionerCssVars.js +2 -0
- package/popover/positioner/PopoverPositionerCssVars.mjs +2 -0
- package/popover/root/PopoverRoot.d.mts +2 -0
- package/popover/root/PopoverRoot.d.ts +2 -0
- package/popover/root/PopoverRoot.js +29 -22
- package/popover/root/PopoverRoot.mjs +31 -24
- package/popover/root/PopoverRootContext.d.mts +1 -3
- package/popover/root/PopoverRootContext.d.ts +1 -3
- package/popover/store/PopoverHandle.d.mts +18 -10
- package/popover/store/PopoverHandle.d.ts +18 -10
- package/popover/store/PopoverHandle.js +21 -21
- package/popover/store/PopoverHandle.mjs +22 -20
- package/popover/store/PopoverStore.d.mts +22 -10
- package/popover/store/PopoverStore.d.ts +22 -10
- package/popover/store/PopoverStore.js +82 -67
- package/popover/store/PopoverStore.mjs +81 -67
- package/popover/title/PopoverTitle.js +1 -3
- package/popover/title/PopoverTitle.mjs +1 -3
- package/popover/trigger/PopoverTrigger.js +9 -11
- package/popover/trigger/PopoverTrigger.mjs +10 -12
- package/popover/viewport/PopoverViewport.js +2 -12
- package/popover/viewport/PopoverViewport.mjs +3 -12
- package/preview-card/arrow/PreviewCardArrow.d.mts +1 -1
- package/preview-card/arrow/PreviewCardArrow.d.ts +1 -1
- package/preview-card/backdrop/PreviewCardBackdrop.d.mts +1 -1
- package/preview-card/backdrop/PreviewCardBackdrop.d.ts +1 -1
- package/preview-card/backdrop/PreviewCardBackdrop.js +2 -8
- package/preview-card/backdrop/PreviewCardBackdrop.mjs +3 -8
- package/preview-card/backdrop/PreviewCardBackdropDataAttributes.d.mts +1 -1
- package/preview-card/backdrop/PreviewCardBackdropDataAttributes.d.ts +1 -1
- package/preview-card/backdrop/PreviewCardBackdropDataAttributes.js +1 -1
- package/preview-card/backdrop/PreviewCardBackdropDataAttributes.mjs +1 -1
- package/preview-card/popup/PreviewCardPopup.d.mts +1 -1
- package/preview-card/popup/PreviewCardPopup.d.ts +1 -1
- package/preview-card/popup/PreviewCardPopup.js +6 -12
- package/preview-card/popup/PreviewCardPopup.mjs +7 -12
- package/preview-card/popup/PreviewCardPopupDataAttributes.d.mts +1 -1
- package/preview-card/popup/PreviewCardPopupDataAttributes.d.ts +1 -1
- package/preview-card/popup/PreviewCardPopupDataAttributes.js +1 -1
- package/preview-card/popup/PreviewCardPopupDataAttributes.mjs +1 -1
- package/preview-card/portal/PreviewCardPortal.d.mts +6 -2
- package/preview-card/portal/PreviewCardPortal.d.ts +6 -2
- package/preview-card/portal/PreviewCardPortal.mjs +1 -2
- package/preview-card/positioner/PreviewCardPositioner.d.mts +1 -1
- package/preview-card/positioner/PreviewCardPositioner.d.ts +1 -1
- package/preview-card/positioner/PreviewCardPositioner.js +3 -4
- package/preview-card/positioner/PreviewCardPositioner.mjs +3 -4
- package/preview-card/positioner/PreviewCardPositionerContext.d.mts +1 -1
- package/preview-card/positioner/PreviewCardPositionerContext.d.ts +1 -1
- package/preview-card/positioner/PreviewCardPositionerContext.js +1 -1
- package/preview-card/positioner/PreviewCardPositionerContext.mjs +1 -1
- package/preview-card/positioner/PreviewCardPositionerCssVars.d.mts +12 -0
- package/preview-card/positioner/PreviewCardPositionerCssVars.d.ts +12 -0
- package/preview-card/positioner/PreviewCardPositionerCssVars.js +12 -0
- package/preview-card/positioner/PreviewCardPositionerCssVars.mjs +12 -0
- package/preview-card/root/PreviewCardRoot.js +14 -17
- package/preview-card/root/PreviewCardRoot.mjs +15 -18
- package/preview-card/store/PreviewCardHandle.d.mts +15 -12
- package/preview-card/store/PreviewCardHandle.d.ts +15 -12
- package/preview-card/store/PreviewCardHandle.js +18 -23
- package/preview-card/store/PreviewCardHandle.mjs +19 -23
- package/preview-card/store/PreviewCardStore.d.mts +22 -7
- package/preview-card/store/PreviewCardStore.d.ts +22 -7
- package/preview-card/store/PreviewCardStore.js +43 -30
- package/preview-card/store/PreviewCardStore.mjs +43 -31
- package/preview-card/trigger/PreviewCardTrigger.d.mts +1 -1
- package/preview-card/trigger/PreviewCardTrigger.d.ts +1 -1
- package/preview-card/trigger/PreviewCardTrigger.js +4 -8
- package/preview-card/trigger/PreviewCardTrigger.mjs +5 -9
- package/preview-card/viewport/PreviewCardViewport.js +1 -9
- package/preview-card/viewport/PreviewCardViewport.mjs +2 -9
- package/progress/indicator/ProgressIndicator.js +1 -5
- package/progress/indicator/ProgressIndicator.mjs +1 -5
- package/progress/root/ProgressRoot.d.mts +1 -2
- package/progress/root/ProgressRoot.d.ts +1 -2
- package/progress/root/ProgressRoot.js +28 -19
- package/progress/root/ProgressRoot.mjs +29 -20
- package/progress/root/ProgressRootContext.d.mts +4 -12
- package/progress/root/ProgressRootContext.d.ts +4 -12
- package/progress/root/stateAttributesMapping.js +3 -17
- package/progress/root/stateAttributesMapping.mjs +3 -17
- package/progress/value/ProgressValue.d.mts +1 -1
- package/progress/value/ProgressValue.d.ts +1 -1
- package/progress/value/ProgressValue.js +7 -3
- package/progress/value/ProgressValue.mjs +7 -3
- package/radio/indicator/RadioIndicatorDataAttributes.d.mts +1 -1
- package/radio/indicator/RadioIndicatorDataAttributes.d.ts +1 -1
- package/radio/indicator/RadioIndicatorDataAttributes.js +1 -1
- package/radio/indicator/RadioIndicatorDataAttributes.mjs +1 -1
- package/radio/root/RadioRoot.js +22 -29
- package/radio/root/RadioRoot.mjs +22 -29
- package/radio/utils/stateAttributesMapping.js +2 -3
- package/radio/utils/stateAttributesMapping.mjs +2 -3
- package/radio-group/RadioGroup.js +47 -32
- package/radio-group/RadioGroup.mjs +47 -32
- package/radio-group/RadioGroupContext.d.mts +0 -1
- package/radio-group/RadioGroupContext.d.ts +0 -1
- package/scroll-area/root/ScrollAreaRoot.js +122 -83
- package/scroll-area/root/ScrollAreaRoot.mjs +122 -83
- package/scroll-area/root/ScrollAreaRootContext.d.mts +1 -3
- package/scroll-area/root/ScrollAreaRootContext.d.ts +1 -3
- package/scroll-area/root/stateAttributes.js +10 -19
- package/scroll-area/root/stateAttributes.mjs +10 -19
- package/scroll-area/scrollbar/ScrollAreaScrollbar.js +58 -74
- package/scroll-area/scrollbar/ScrollAreaScrollbar.mjs +58 -74
- package/scroll-area/scrollbar/ScrollAreaScrollbarContext.d.mts +1 -3
- package/scroll-area/scrollbar/ScrollAreaScrollbarContext.d.ts +1 -3
- package/scroll-area/thumb/ScrollAreaThumb.js +10 -24
- package/scroll-area/thumb/ScrollAreaThumb.mjs +10 -24
- package/scroll-area/utils/getOffset.js +4 -3
- package/scroll-area/utils/getOffset.mjs +4 -3
- package/scroll-area/viewport/ScrollAreaViewport.js +76 -79
- package/scroll-area/viewport/ScrollAreaViewport.mjs +77 -80
- package/select/arrow/SelectArrow.d.mts +1 -1
- package/select/arrow/SelectArrow.d.ts +1 -1
- package/select/arrow/SelectArrow.js +1 -7
- package/select/arrow/SelectArrow.mjs +2 -7
- package/select/backdrop/SelectBackdropDataAttributes.d.mts +1 -1
- package/select/backdrop/SelectBackdropDataAttributes.d.ts +1 -1
- package/select/backdrop/SelectBackdropDataAttributes.js +1 -1
- package/select/backdrop/SelectBackdropDataAttributes.mjs +1 -1
- package/select/group-label/SelectGroupLabel.js +3 -0
- package/select/group-label/SelectGroupLabel.mjs +3 -0
- package/select/index.d.mts +2 -1
- package/select/index.d.ts +2 -1
- package/select/index.parts.d.mts +1 -1
- package/select/index.parts.d.ts +1 -1
- package/select/index.parts.js +2 -2
- package/select/index.parts.mjs +1 -1
- package/select/item/SelectItem.js +12 -25
- package/select/item/SelectItem.mjs +13 -26
- package/select/item/SelectItemContext.d.mts +0 -1
- package/select/item/SelectItemContext.d.ts +0 -1
- package/select/item-indicator/SelectItemIndicator.js +1 -2
- package/select/item-indicator/SelectItemIndicator.mjs +1 -2
- package/select/item-indicator/SelectItemIndicatorDataAttributes.d.mts +1 -1
- package/select/item-indicator/SelectItemIndicatorDataAttributes.d.ts +1 -1
- package/select/item-indicator/SelectItemIndicatorDataAttributes.js +1 -1
- package/select/item-indicator/SelectItemIndicatorDataAttributes.mjs +1 -1
- package/select/item-text/SelectItemText.js +4 -5
- package/select/item-text/SelectItemText.mjs +4 -5
- package/select/label/SelectLabel.js +2 -1
- package/select/label/SelectLabel.mjs +2 -1
- package/select/list/SelectList.js +3 -6
- package/select/list/SelectList.mjs +3 -6
- package/select/popup/SelectPopup.d.mts +1 -1
- package/select/popup/SelectPopup.d.ts +1 -1
- package/select/popup/SelectPopup.js +32 -52
- package/select/popup/SelectPopup.mjs +33 -53
- package/select/popup/SelectPopupDataAttributes.d.mts +1 -1
- package/select/popup/SelectPopupDataAttributes.d.ts +1 -1
- package/select/popup/SelectPopupDataAttributes.js +1 -1
- package/select/popup/SelectPopupDataAttributes.mjs +1 -1
- package/select/portal/SelectPortal.d.mts +7 -2
- package/select/portal/SelectPortal.d.ts +7 -2
- package/select/portal/SelectPortal.js +3 -7
- package/select/portal/SelectPortal.mjs +3 -7
- package/select/positioner/SelectPositioner.d.mts +1 -1
- package/select/positioner/SelectPositioner.d.ts +1 -1
- package/select/positioner/SelectPositioner.js +15 -29
- package/select/positioner/SelectPositioner.mjs +17 -31
- package/select/positioner/SelectPositionerContext.d.mts +1 -1
- package/select/positioner/SelectPositionerContext.d.ts +1 -1
- package/select/root/SelectRoot.d.mts +2 -0
- package/select/root/SelectRoot.d.ts +2 -0
- package/select/root/SelectRoot.js +93 -121
- package/select/root/SelectRoot.mjs +95 -123
- package/select/root/SelectRootContext.d.mts +4 -5
- package/select/root/SelectRootContext.d.ts +4 -5
- package/select/root/SelectRootContext.js +1 -11
- package/select/root/SelectRootContext.mjs +0 -9
- package/select/scroll-arrow/SelectScrollArrow.d.mts +1 -6
- package/select/scroll-arrow/SelectScrollArrow.d.ts +1 -6
- package/select/scroll-arrow/SelectScrollArrow.js +4 -11
- package/select/scroll-arrow/SelectScrollArrow.mjs +4 -11
- package/select/scroll-down-arrow/SelectScrollDownArrowDataAttributes.d.mts +1 -1
- package/select/scroll-down-arrow/SelectScrollDownArrowDataAttributes.d.ts +1 -1
- package/select/scroll-down-arrow/SelectScrollDownArrowDataAttributes.js +1 -1
- package/select/scroll-down-arrow/SelectScrollDownArrowDataAttributes.mjs +1 -1
- package/select/scroll-up-arrow/SelectScrollUpArrowDataAttributes.d.mts +1 -1
- package/select/scroll-up-arrow/SelectScrollUpArrowDataAttributes.d.ts +1 -1
- package/select/scroll-up-arrow/SelectScrollUpArrowDataAttributes.js +1 -1
- package/select/scroll-up-arrow/SelectScrollUpArrowDataAttributes.mjs +1 -1
- package/select/separator/SelectSeparator.d.mts +26 -0
- package/select/separator/SelectSeparator.d.ts +26 -0
- package/select/separator/SelectSeparator.js +15 -0
- package/select/separator/SelectSeparator.mjs +10 -0
- package/select/store.d.mts +3 -5
- package/select/store.d.ts +3 -5
- package/select/store.js +32 -35
- package/select/store.mjs +32 -35
- package/select/trigger/SelectTrigger.d.mts +1 -1
- package/select/trigger/SelectTrigger.d.ts +1 -1
- package/select/trigger/SelectTrigger.js +3 -8
- package/select/trigger/SelectTrigger.mjs +4 -9
- package/select/value/SelectValue.js +1 -1
- package/select/value/SelectValue.mjs +1 -1
- package/slider/control/SliderControl.js +61 -78
- package/slider/control/SliderControl.mjs +61 -78
- package/slider/indicator/SliderIndicator.js +15 -34
- package/slider/indicator/SliderIndicator.mjs +15 -34
- package/slider/root/SliderRoot.d.mts +5 -3
- package/slider/root/SliderRoot.d.ts +5 -3
- package/slider/root/SliderRoot.js +36 -47
- package/slider/root/SliderRoot.mjs +36 -47
- package/slider/root/SliderRootContext.d.mts +6 -4
- package/slider/root/SliderRootContext.d.ts +6 -4
- package/slider/root/stateAttributesMapping.js +7 -6
- package/slider/root/stateAttributesMapping.mjs +7 -6
- package/slider/thumb/SliderThumb.js +64 -69
- package/slider/thumb/SliderThumb.mjs +64 -69
- package/slider/utils/getMidpoint.d.mts +1 -2
- package/slider/utils/getMidpoint.d.ts +1 -2
- package/slider/utils/getMidpoint.js +2 -5
- package/slider/utils/getMidpoint.mjs +2 -5
- package/slider/utils/getPushedThumbValues.d.mts +4 -21
- package/slider/utils/getPushedThumbValues.d.ts +4 -21
- package/slider/utils/getPushedThumbValues.js +6 -15
- package/slider/utils/getPushedThumbValues.mjs +7 -15
- package/slider/utils/getSliderValue.js +8 -8
- package/slider/utils/getSliderValue.mjs +8 -8
- package/slider/utils/resolveThumbCollision.d.mts +5 -24
- package/slider/utils/resolveThumbCollision.d.ts +5 -24
- package/slider/utils/resolveThumbCollision.js +33 -64
- package/slider/utils/resolveThumbCollision.mjs +33 -64
- package/slider/utils/test-utils.d.mts +1 -11
- package/slider/utils/test-utils.d.ts +1 -11
- package/slider/utils/test-utils.js +1 -11
- package/slider/utils/test-utils.mjs +1 -11
- package/slider/utils/validateMinimumDistance.js +6 -7
- package/slider/utils/validateMinimumDistance.mjs +6 -7
- package/slider/value/SliderValue.js +6 -16
- package/slider/value/SliderValue.mjs +6 -16
- package/switch/root/SwitchRoot.js +18 -19
- package/switch/root/SwitchRoot.mjs +18 -19
- package/switch/stateAttributesMapping.js +2 -3
- package/switch/stateAttributesMapping.mjs +2 -3
- package/tabs/indicator/TabsIndicator.js +13 -24
- package/tabs/indicator/TabsIndicator.mjs +13 -24
- package/tabs/indicator/prehydrationScript.min.d.mts +1 -1
- package/tabs/indicator/prehydrationScript.min.d.ts +1 -1
- package/tabs/indicator/prehydrationScript.min.js +1 -1
- package/tabs/indicator/prehydrationScript.min.mjs +1 -1
- package/tabs/list/TabsList.js +1 -11
- package/tabs/list/TabsList.mjs +1 -11
- package/tabs/list/TabsListContext.d.mts +0 -5
- package/tabs/list/TabsListContext.d.ts +0 -5
- package/tabs/panel/TabsPanel.js +10 -20
- package/tabs/panel/TabsPanel.mjs +10 -20
- package/tabs/panel/TabsPanelDataAttributes.d.mts +1 -1
- package/tabs/panel/TabsPanelDataAttributes.d.ts +1 -1
- package/tabs/panel/TabsPanelDataAttributes.js +1 -1
- package/tabs/panel/TabsPanelDataAttributes.mjs +1 -1
- package/tabs/root/TabsRoot.js +40 -75
- package/tabs/root/TabsRoot.mjs +40 -75
- package/tabs/root/TabsRootContext.d.mts +4 -11
- package/tabs/root/TabsRootContext.d.ts +4 -11
- package/tabs/root/stateAttributesMapping.js +1 -2
- package/tabs/root/stateAttributesMapping.mjs +1 -2
- package/tabs/tab/TabsTab.js +42 -39
- package/tabs/tab/TabsTab.mjs +42 -39
- package/toast/action/ToastAction.js +2 -5
- package/toast/action/ToastAction.mjs +2 -5
- package/toast/arrow/ToastArrow.d.mts +1 -1
- package/toast/arrow/ToastArrow.d.ts +1 -1
- package/toast/arrow/ToastArrow.js +1 -2
- package/toast/arrow/ToastArrow.mjs +1 -2
- package/toast/close/ToastClose.js +3 -4
- package/toast/close/ToastClose.mjs +3 -4
- package/toast/content/ToastContent.js +3 -7
- package/toast/content/ToastContent.mjs +3 -7
- package/toast/description/ToastDescription.js +8 -23
- package/toast/description/ToastDescription.mjs +8 -23
- package/toast/portal/ToastPortal.d.mts +9 -3
- package/toast/portal/ToastPortal.d.ts +9 -3
- package/toast/portal/ToastPortal.js +10 -1
- package/toast/portal/ToastPortal.mjs +9 -2
- package/toast/positioner/ToastPositioner.d.mts +1 -1
- package/toast/positioner/ToastPositioner.d.ts +1 -1
- package/toast/positioner/ToastPositioner.js +4 -5
- package/toast/positioner/ToastPositioner.mjs +4 -5
- package/toast/positioner/ToastPositionerContext.d.mts +1 -1
- package/toast/positioner/ToastPositionerContext.d.ts +1 -1
- package/toast/provider/ToastProvider.js +19 -10
- package/toast/provider/ToastProvider.mjs +20 -11
- package/toast/root/ToastRoot.d.mts +2 -0
- package/toast/root/ToastRoot.d.ts +2 -0
- package/toast/root/ToastRoot.js +93 -140
- package/toast/root/ToastRoot.mjs +92 -139
- package/toast/root/ToastRootContext.d.mts +0 -6
- package/toast/root/ToastRootContext.d.ts +0 -6
- package/toast/root/ToastRootDataAttributes.d.mts +1 -1
- package/toast/root/ToastRootDataAttributes.d.ts +1 -1
- package/toast/root/ToastRootDataAttributes.js +1 -1
- package/toast/root/ToastRootDataAttributes.mjs +1 -1
- package/toast/store.d.mts +17 -22
- package/toast/store.d.ts +17 -22
- package/toast/store.js +51 -85
- package/toast/store.mjs +53 -86
- package/toast/title/ToastTitle.js +8 -23
- package/toast/title/ToastTitle.mjs +8 -23
- package/toast/useToastManager.js +1 -6
- package/toast/useToastManager.mjs +2 -6
- package/toast/utils/isRenderableNode.d.mts +3 -0
- package/toast/utils/isRenderableNode.d.ts +3 -0
- package/toast/utils/isRenderableNode.js +21 -0
- package/toast/utils/isRenderableNode.mjs +13 -0
- package/toast/utils/test-utils.d.mts +1 -8
- package/toast/utils/test-utils.d.ts +1 -8
- package/toast/utils/useToastLabelPart.d.mts +18 -0
- package/toast/utils/useToastLabelPart.d.ts +18 -0
- package/toast/utils/useToastLabelPart.js +52 -0
- package/toast/utils/useToastLabelPart.mjs +47 -0
- package/toast/viewport/ToastViewport.js +42 -78
- package/toast/viewport/ToastViewport.mjs +42 -78
- package/toggle/Toggle.js +1 -2
- package/toggle/Toggle.mjs +1 -2
- package/toggle-group/ToggleGroup.js +4 -19
- package/toggle-group/ToggleGroup.mjs +4 -19
- package/toggle-group/ToggleGroupContext.d.mts +1 -3
- package/toggle-group/ToggleGroupContext.d.ts +1 -3
- package/toggle-group/ToggleGroupContext.js +2 -8
- package/toggle-group/ToggleGroupContext.mjs +2 -7
- package/toolbar/button/ToolbarButton.js +2 -2
- package/toolbar/button/ToolbarButton.mjs +2 -2
- package/toolbar/group/ToolbarGroupContext.d.mts +1 -2
- package/toolbar/group/ToolbarGroupContext.d.ts +1 -2
- package/toolbar/group/ToolbarGroupContext.js +2 -8
- package/toolbar/group/ToolbarGroupContext.mjs +2 -7
- package/toolbar/input/ToolbarInput.js +8 -11
- package/toolbar/input/ToolbarInput.mjs +8 -11
- package/toolbar/link/ToolbarLink.d.mts +1 -1
- package/toolbar/link/ToolbarLink.d.ts +1 -1
- package/toolbar/root/ToolbarRoot.js +4 -5
- package/toolbar/root/ToolbarRoot.mjs +4 -5
- package/toolbar/root/ToolbarRootContext.d.mts +0 -3
- package/toolbar/root/ToolbarRootContext.d.ts +0 -3
- package/toolbar/separator/ToolbarSeparator.d.mts +2 -2
- package/toolbar/separator/ToolbarSeparator.d.ts +2 -2
- package/toolbar/separator/ToolbarSeparator.js +1 -4
- package/toolbar/separator/ToolbarSeparator.mjs +3 -5
- package/tooltip/arrow/TooltipArrow.d.mts +1 -1
- package/tooltip/arrow/TooltipArrow.d.ts +1 -1
- package/tooltip/popup/TooltipPopup.d.mts +1 -1
- package/tooltip/popup/TooltipPopup.d.ts +1 -1
- package/tooltip/popup/TooltipPopup.js +4 -9
- package/tooltip/popup/TooltipPopup.mjs +5 -9
- package/tooltip/popup/TooltipPopupDataAttributes.d.mts +1 -1
- package/tooltip/popup/TooltipPopupDataAttributes.d.ts +1 -1
- package/tooltip/popup/TooltipPopupDataAttributes.js +1 -1
- package/tooltip/popup/TooltipPopupDataAttributes.mjs +1 -1
- package/tooltip/portal/TooltipPortal.d.mts +6 -2
- package/tooltip/portal/TooltipPortal.d.ts +6 -2
- package/tooltip/portal/TooltipPortal.mjs +1 -2
- package/tooltip/positioner/TooltipPositioner.d.mts +1 -1
- package/tooltip/positioner/TooltipPositioner.d.ts +1 -1
- package/tooltip/positioner/TooltipPositioner.js +3 -4
- package/tooltip/positioner/TooltipPositioner.mjs +3 -4
- package/tooltip/positioner/TooltipPositionerContext.d.mts +1 -1
- package/tooltip/positioner/TooltipPositionerContext.d.ts +1 -1
- package/tooltip/positioner/TooltipPositionerCssVars.d.mts +12 -0
- package/tooltip/positioner/TooltipPositionerCssVars.d.ts +12 -0
- package/tooltip/positioner/TooltipPositionerCssVars.js +12 -0
- package/tooltip/positioner/TooltipPositionerCssVars.mjs +12 -0
- package/tooltip/provider/TooltipProvider.d.mts +1 -1
- package/tooltip/provider/TooltipProvider.d.ts +1 -1
- package/tooltip/provider/TooltipProvider.js +1 -5
- package/tooltip/provider/TooltipProvider.mjs +1 -5
- package/tooltip/provider/TooltipProviderContext.d.mts +5 -6
- package/tooltip/provider/TooltipProviderContext.d.ts +5 -6
- package/tooltip/provider/TooltipProviderContext.js +3 -0
- package/tooltip/provider/TooltipProviderContext.mjs +4 -0
- package/tooltip/root/TooltipRoot.js +18 -17
- package/tooltip/root/TooltipRoot.mjs +19 -18
- package/tooltip/store/TooltipHandle.d.mts +15 -12
- package/tooltip/store/TooltipHandle.d.ts +15 -12
- package/tooltip/store/TooltipHandle.js +18 -23
- package/tooltip/store/TooltipHandle.mjs +19 -23
- package/tooltip/store/TooltipStore.d.mts +24 -6
- package/tooltip/store/TooltipStore.d.ts +24 -6
- package/tooltip/store/TooltipStore.js +54 -31
- package/tooltip/store/TooltipStore.mjs +54 -32
- package/tooltip/trigger/TooltipTrigger.d.mts +1 -1
- package/tooltip/trigger/TooltipTrigger.d.ts +1 -1
- package/tooltip/trigger/TooltipTrigger.js +15 -25
- package/tooltip/trigger/TooltipTrigger.mjs +16 -26
- package/tooltip/viewport/TooltipViewport.js +1 -9
- package/tooltip/viewport/TooltipViewport.mjs +2 -9
- package/utils/FloatingPortalLite.d.mts +7 -9
- package/utils/FloatingPortalLite.d.ts +7 -9
- package/utils/FloatingPortalLite.js +4 -4
- package/utils/FloatingPortalLite.mjs +4 -5
- package/utils/FocusGuard.d.mts +1 -5
- package/utils/FocusGuard.d.ts +1 -5
- package/utils/InternalBackdrop.d.mts +0 -4
- package/utils/InternalBackdrop.d.ts +0 -4
- package/utils/NullStore.d.mts +15 -0
- package/utils/NullStore.d.ts +15 -0
- package/utils/NullStore.js +23 -0
- package/utils/NullStore.mjs +16 -0
- package/utils/adaptiveOriginConstants.d.mts +8 -0
- package/utils/adaptiveOriginConstants.d.ts +8 -0
- package/utils/adaptiveOriginConstants.js +14 -0
- package/utils/adaptiveOriginConstants.mjs +8 -0
- package/utils/adaptiveOriginMiddleware.d.mts +0 -4
- package/utils/adaptiveOriginMiddleware.d.ts +0 -4
- package/utils/adaptiveOriginMiddleware.js +5 -8
- package/utils/adaptiveOriginMiddleware.mjs +1 -4
- package/utils/closePart.d.mts +1 -4
- package/utils/closePart.d.ts +1 -4
- package/utils/closePart.js +2 -13
- package/utils/closePart.mjs +1 -12
- package/utils/dispatchClickWithModifiers.d.mts +21 -0
- package/utils/dispatchClickWithModifiers.d.ts +21 -0
- package/utils/dispatchClickWithModifiers.js +30 -0
- package/utils/dispatchClickWithModifiers.mjs +24 -0
- package/utils/formatNumber.d.mts +1 -2
- package/utils/formatNumber.d.ts +1 -2
- package/utils/formatNumber.js +0 -12
- package/utils/formatNumber.mjs +0 -11
- package/utils/getElementAtPoint.d.mts +3 -1
- package/utils/getElementAtPoint.d.ts +3 -1
- package/utils/getElementAtPoint.js +5 -2
- package/utils/getElementAtPoint.mjs +5 -2
- package/utils/getPseudoElementBounds.d.mts +5 -0
- package/utils/getPseudoElementBounds.d.ts +5 -0
- package/utils/getPseudoElementBounds.js +14 -0
- package/utils/getPseudoElementBounds.mjs +13 -0
- package/utils/hideMiddleware.js +7 -4
- package/utils/hideMiddleware.mjs +7 -4
- package/utils/listbox-separator/ListboxSeparator.d.mts +18 -0
- package/utils/listbox-separator/ListboxSeparator.d.ts +18 -0
- package/utils/listbox-separator/ListboxSeparator.js +36 -0
- package/utils/listbox-separator/ListboxSeparator.mjs +31 -0
- package/utils/popupStateMapping.d.mts +19 -7
- package/utils/popupStateMapping.d.ts +19 -7
- package/utils/popupStateMapping.js +14 -9
- package/utils/popupStateMapping.mjs +15 -8
- package/utils/popups/index.d.mts +3 -1
- package/utils/popups/index.d.ts +3 -1
- package/utils/popups/index.js +22 -0
- package/utils/popups/index.mjs +3 -1
- package/utils/popups/popupHandle.d.mts +113 -0
- package/utils/popups/popupHandle.d.ts +113 -0
- package/utils/popups/popupHandle.js +229 -0
- package/utils/popups/popupHandle.mjs +222 -0
- package/utils/popups/popupStoreUtils.d.mts +47 -12
- package/utils/popups/popupStoreUtils.d.ts +47 -12
- package/utils/popups/popupStoreUtils.js +109 -44
- package/utils/popups/popupStoreUtils.mjs +107 -42
- package/utils/popups/popupTriggerMap.d.mts +3 -2
- package/utils/popups/popupTriggerMap.d.ts +3 -2
- package/utils/popups/popupTriggerMap.js +48 -21
- package/utils/popups/popupTriggerMap.mjs +48 -21
- package/utils/popups/store.d.mts +14 -0
- package/utils/popups/store.d.ts +14 -0
- package/utils/popups/store.js +33 -21
- package/utils/popups/store.mjs +33 -21
- package/utils/popups/usePopupHandleStore.d.mts +12 -0
- package/utils/popups/usePopupHandleStore.d.ts +12 -0
- package/utils/popups/usePopupHandleStore.js +33 -0
- package/utils/popups/usePopupHandleStore.mjs +27 -0
- package/utils/scrollable.d.mts +2 -0
- package/utils/scrollable.d.ts +2 -0
- package/utils/scrollable.js +20 -12
- package/utils/scrollable.mjs +18 -12
- package/utils/usePopupAutoResize.d.mts +1 -1
- package/utils/usePopupAutoResize.d.ts +1 -1
- package/utils/usePopupAutoResize.js +15 -18
- package/utils/usePopupAutoResize.mjs +15 -18
- package/utils/usePopupViewport.d.mts +5 -15
- package/utils/usePopupViewport.d.ts +5 -15
- package/utils/usePopupViewport.js +48 -17
- package/utils/usePopupViewport.mjs +47 -17
- package/utils/usePositioner.js +1 -1
- package/utils/usePositioner.mjs +1 -1
- package/utils/useRegisteredLabelId.d.mts +2 -1
- package/utils/useRegisteredLabelId.d.ts +2 -1
- package/utils/useRegisteredLabelId.js +1 -1
- package/utils/useRegisteredLabelId.mjs +1 -1
- package/utils/useSwipeDismiss.js +72 -113
- package/utils/useSwipeDismiss.mjs +72 -113
- package/checkbox/utils/useStateAttributesMapping.js +0 -30
- package/number-field/root/useNumberFieldButton.d.mts +0 -21
- package/number-field/root/useNumberFieldButton.d.ts +0 -21
- package/number-field/root/useNumberFieldButton.js +0 -135
- package/number-field/root/useNumberFieldButton.mjs +0 -130
- package/number-field/utils/subscribeToVisualViewportResize.d.mts +0 -1
- package/number-field/utils/subscribeToVisualViewportResize.d.ts +0 -1
- package/number-field/utils/subscribeToVisualViewportResize.js +0 -23
- package/number-field/utils/subscribeToVisualViewportResize.mjs +0 -18
- package/select/portal/SelectPortalContext.d.mts +0 -3
- package/select/portal/SelectPortalContext.d.ts +0 -3
- package/select/portal/SelectPortalContext.js +0 -21
- package/select/portal/SelectPortalContext.mjs +0 -13
- package/slider/utils/replaceArrayItemAtIndex.d.mts +0 -1
- package/slider/utils/replaceArrayItemAtIndex.d.ts +0 -1
- package/slider/utils/replaceArrayItemAtIndex.js +0 -12
- package/slider/utils/replaceArrayItemAtIndex.mjs +0 -6
- package/slider/utils/valueArrayToPercentages.d.mts +0 -1
- package/slider/utils/valueArrayToPercentages.d.ts +0 -1
- package/slider/utils/valueArrayToPercentages.js +0 -15
- package/slider/utils/valueArrayToPercentages.mjs +0 -9
|
@@ -6,15 +6,16 @@ import { isElement } from '@floating-ui/utils/dom';
|
|
|
6
6
|
import { addEventListener } from '@base-ui/utils/addEventListener';
|
|
7
7
|
import { ownerDocument, ownerWindow } from '@base-ui/utils/owner';
|
|
8
8
|
import { useAnimationFrame } from '@base-ui/utils/useAnimationFrame';
|
|
9
|
+
import { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';
|
|
9
10
|
import { useStableCallback } from '@base-ui/utils/useStableCallback';
|
|
10
11
|
import { useDialogRootContext } from "../../dialog/root/DialogRootContext.mjs";
|
|
11
12
|
import { DialogViewport } from "../../dialog/viewport/DialogViewport.mjs";
|
|
12
13
|
import { mergeProps } from "../../merge-props/index.mjs";
|
|
13
14
|
import { useDrawerRootContext } from "../root/DrawerRootContext.mjs";
|
|
14
|
-
import { getSnapPointSwipeMovement, useDrawerSnapPoints } from "../root/useDrawerSnapPoints.mjs";
|
|
15
|
+
import { closestSnapPointIndex, getSnapPointSwipeMovement, useDrawerSnapPoints } from "../root/useDrawerSnapPoints.mjs";
|
|
15
16
|
import { useDrawerProviderContext } from "../provider/DrawerProviderContext.mjs";
|
|
16
17
|
import { clamp } from "../../internals/clamp.mjs";
|
|
17
|
-
import { useSwipeDismiss } from "../../utils/useSwipeDismiss.mjs";
|
|
18
|
+
import { getDisplacement, useSwipeDismiss } from "../../utils/useSwipeDismiss.mjs";
|
|
18
19
|
import { DrawerPopupCssVars } from "../popup/DrawerPopupCssVars.mjs";
|
|
19
20
|
import { DrawerPopupDataAttributes } from "../popup/DrawerPopupDataAttributes.mjs";
|
|
20
21
|
import { DrawerBackdropCssVars } from "../backdrop/DrawerBackdropCssVars.mjs";
|
|
@@ -40,6 +41,8 @@ const MIN_SWIPE_RELEASE_DURATION_MS = 80;
|
|
|
40
41
|
const MAX_SWIPE_RELEASE_DURATION_MS = 360;
|
|
41
42
|
const MIN_SWIPE_RELEASE_SCALAR = 0.1;
|
|
42
43
|
const MAX_SWIPE_RELEASE_SCALAR = 1;
|
|
44
|
+
const AXIS_LOCK_SLOP = 6;
|
|
45
|
+
const AXIS_LOCK_BIAS = 2;
|
|
43
46
|
const DRAWER_CONTENT_SELECTOR = `[${DRAWER_CONTENT_ATTRIBUTE}]`;
|
|
44
47
|
/**
|
|
45
48
|
* A positioning container for the drawer popup that can be made scrollable.
|
|
@@ -55,9 +58,7 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
|
|
|
55
58
|
children,
|
|
56
59
|
...elementProps
|
|
57
60
|
} = props;
|
|
58
|
-
const
|
|
59
|
-
store
|
|
60
|
-
} = useDialogRootContext();
|
|
61
|
+
const store = useDialogRootContext();
|
|
61
62
|
const popupRef = store.context.popupRef;
|
|
62
63
|
const backdropRef = store.context.backdropRef;
|
|
63
64
|
const {
|
|
@@ -65,9 +66,10 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
|
|
|
65
66
|
notifyParentSwipingChange,
|
|
66
67
|
notifyParentSwipeProgressChange,
|
|
67
68
|
frontmostHeight,
|
|
68
|
-
snapToSequentialPoints
|
|
69
|
+
snapToSequentialPoints,
|
|
70
|
+
swipeAreaActiveRef
|
|
69
71
|
} = useDrawerRootContext();
|
|
70
|
-
const providerContext = useDrawerProviderContext(
|
|
72
|
+
const providerContext = useDrawerProviderContext();
|
|
71
73
|
const {
|
|
72
74
|
snapPoints,
|
|
73
75
|
resolvedSnapPoints,
|
|
@@ -99,30 +101,13 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
|
|
|
99
101
|
const touchScrollStateRef = React.useRef(null);
|
|
100
102
|
const virtualKeyboard = useDrawerVirtualKeyboardContext();
|
|
101
103
|
const snapPointRange = React.useMemo(() => {
|
|
102
|
-
if (!snapPoints || snapPoints.length < 2) {
|
|
103
|
-
return null;
|
|
104
|
-
}
|
|
105
|
-
if (swipeDirection !== 'down' && swipeDirection !== 'up') {
|
|
106
|
-
return null;
|
|
107
|
-
}
|
|
108
|
-
if (resolvedSnapPoints.length < 2) {
|
|
109
|
-
return null;
|
|
110
|
-
}
|
|
111
|
-
const offsets = resolvedSnapPoints.map(point => point.offset).filter(offset => Number.isFinite(offset)).sort((a, b) => a - b);
|
|
112
|
-
if (offsets.length < 2) {
|
|
104
|
+
if (!snapPoints || snapPoints.length < 2 || resolvedSnapPoints.length < 2 || swipeDirection !== 'down' && swipeDirection !== 'up') {
|
|
113
105
|
return null;
|
|
114
106
|
}
|
|
107
|
+
const offsets = resolvedSnapPoints.map(point => point.offset).sort((a, b) => a - b);
|
|
115
108
|
const minOffset = offsets[0];
|
|
116
109
|
const nextOffset = offsets[1];
|
|
117
|
-
const
|
|
118
|
-
let range = nextOffset - minOffset;
|
|
119
|
-
if (!Number.isFinite(range) || range <= 0) {
|
|
120
|
-
const fallbackRange = maxOffset - minOffset;
|
|
121
|
-
if (!Number.isFinite(fallbackRange) || fallbackRange <= 0) {
|
|
122
|
-
return null;
|
|
123
|
-
}
|
|
124
|
-
range = fallbackRange;
|
|
125
|
-
}
|
|
110
|
+
const range = nextOffset - minOffset;
|
|
126
111
|
return {
|
|
127
112
|
minOffset,
|
|
128
113
|
range
|
|
@@ -141,7 +126,8 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
|
|
|
141
126
|
return [swipeDirection];
|
|
142
127
|
}, [snapPoints, swipeDirection]);
|
|
143
128
|
const setSwipeDismissed = useStableCallback(dismissed => {
|
|
144
|
-
|
|
129
|
+
popupRef.current?.toggleAttribute(DrawerPopupDataAttributes.swipeDismiss, dismissed);
|
|
130
|
+
backdropRef.current?.toggleAttribute(DrawerPopupDataAttributes.swipeDismiss, dismissed);
|
|
145
131
|
});
|
|
146
132
|
const clearSwipeRelease = useStableCallback(() => {
|
|
147
133
|
setSwipeDismissed(false);
|
|
@@ -155,11 +141,7 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
|
|
|
155
141
|
nestedSwipeActiveRef.current = false;
|
|
156
142
|
notifyParentSwipingChange?.(false);
|
|
157
143
|
});
|
|
158
|
-
const applySwipeProgress = useStableCallback(({
|
|
159
|
-
resolvedProgress,
|
|
160
|
-
shouldTrackProgress,
|
|
161
|
-
notifyParent
|
|
162
|
-
}) => {
|
|
144
|
+
const applySwipeProgress = useStableCallback((resolvedProgress, shouldTrackProgress, notifyParent) => {
|
|
163
145
|
const isActive = open && !nested && shouldTrackProgress;
|
|
164
146
|
const swipeProgress = isActive ? resolvedProgress : 0;
|
|
165
147
|
const nestedSwipeProgress = open && shouldTrackProgress ? resolvedProgress : 0;
|
|
@@ -177,78 +159,48 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
|
|
|
177
159
|
if (!backdropElement) {
|
|
178
160
|
return;
|
|
179
161
|
}
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
return;
|
|
184
|
-
}
|
|
185
|
-
backdropElement.style.setProperty(DrawerBackdropCssVars.swipeProgress, `${swipeProgress}`);
|
|
186
|
-
if (frontmostHeight > 0) {
|
|
162
|
+
const showProgress = isActive && swipeProgress > 0;
|
|
163
|
+
backdropElement.style.setProperty(DrawerBackdropCssVars.swipeProgress, showProgress ? `${swipeProgress}` : '0');
|
|
164
|
+
if (showProgress && frontmostHeight > 0) {
|
|
187
165
|
backdropElement.style.setProperty(DrawerPopupCssVars.height, `${frontmostHeight}px`);
|
|
188
166
|
} else {
|
|
189
167
|
backdropElement.style.removeProperty(DrawerPopupCssVars.height);
|
|
190
168
|
}
|
|
191
169
|
});
|
|
192
|
-
function resolveSwipeRelease({
|
|
193
|
-
direction
|
|
194
|
-
|
|
195
|
-
deltaY,
|
|
196
|
-
velocityX,
|
|
197
|
-
velocityY,
|
|
198
|
-
releaseVelocityX,
|
|
199
|
-
releaseVelocityY
|
|
200
|
-
}) {
|
|
201
|
-
if (!direction) {
|
|
170
|
+
function resolveSwipeRelease(popupElement, direction, deltaX, deltaY, velocityX, velocityY, releaseVelocityX, releaseVelocityY) {
|
|
171
|
+
const size = getBaseSwipeSize(popupElement, direction);
|
|
172
|
+
if (size <= 0) {
|
|
202
173
|
return null;
|
|
203
174
|
}
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
const
|
|
209
|
-
if (!Number.isFinite(size) || size <= 0) {
|
|
210
|
-
return null;
|
|
211
|
-
}
|
|
212
|
-
const axisDelta = direction === 'left' || direction === 'right' ? deltaX : deltaY;
|
|
213
|
-
const snapPointBaseOffset = snapPoints && snapPoints.length > 0 ? activeSnapPointOffset ?? 0 : 0;
|
|
214
|
-
let baseOffset = 0;
|
|
215
|
-
if (direction === 'down') {
|
|
216
|
-
baseOffset = snapPointBaseOffset;
|
|
217
|
-
} else if (direction === 'up') {
|
|
218
|
-
baseOffset = -snapPointBaseOffset;
|
|
219
|
-
}
|
|
220
|
-
const translation = baseOffset + axisDelta;
|
|
221
|
-
const translationAlongDirection = direction === 'left' || direction === 'up' ? -translation : translation;
|
|
175
|
+
|
|
176
|
+
// The snap point base offset shifts the popup along the dismiss direction for both
|
|
177
|
+
// `down` (+offset) and `up` (-offset), so it always adds to the directional translation.
|
|
178
|
+
const snapPointBaseOffset = (direction === 'down' || direction === 'up') && snapPoints && snapPoints.length > 0 ? activeSnapPointOffset ?? 0 : 0;
|
|
179
|
+
const translationAlongDirection = snapPointBaseOffset + getDisplacement(direction, deltaX, deltaY);
|
|
222
180
|
const remainingDistance = Math.max(0, size - translationAlongDirection);
|
|
223
|
-
if (
|
|
181
|
+
if (remainingDistance <= 0) {
|
|
224
182
|
return null;
|
|
225
183
|
}
|
|
226
|
-
const
|
|
227
|
-
const
|
|
228
|
-
|
|
229
|
-
const directionalVelocity = direction === 'left' || direction === 'up' ? -resolvedVelocity : resolvedVelocity;
|
|
230
|
-
if (!Number.isFinite(directionalVelocity) || directionalVelocity <= MIN_SWIPE_RELEASE_VELOCITY) {
|
|
184
|
+
const releaseVelocity = getDisplacement(direction, releaseVelocityX, releaseVelocityY);
|
|
185
|
+
const directionalVelocity = Math.abs(releaseVelocity) > 0 ? releaseVelocity : getDisplacement(direction, velocityX, velocityY);
|
|
186
|
+
if (directionalVelocity <= MIN_SWIPE_RELEASE_VELOCITY) {
|
|
231
187
|
return null;
|
|
232
188
|
}
|
|
233
189
|
const clampedVelocity = clamp(directionalVelocity, MIN_SWIPE_RELEASE_VELOCITY, MAX_SWIPE_RELEASE_VELOCITY);
|
|
190
|
+
// The gesture hook supplies finite deltas and velocities. The guards above keep the remaining
|
|
191
|
+
// distance and divisor positive, so the duration stays within [MIN, MAX] and the resulting
|
|
192
|
+
// scalar within (0, 1].
|
|
234
193
|
const durationMs = clamp(remainingDistance / clampedVelocity, MIN_SWIPE_RELEASE_DURATION_MS, MAX_SWIPE_RELEASE_DURATION_MS);
|
|
235
|
-
if (!Number.isFinite(durationMs)) {
|
|
236
|
-
return null;
|
|
237
|
-
}
|
|
238
194
|
const normalizedDuration = (durationMs - MIN_SWIPE_RELEASE_DURATION_MS) / (MAX_SWIPE_RELEASE_DURATION_MS - MIN_SWIPE_RELEASE_DURATION_MS);
|
|
239
|
-
|
|
240
|
-
if (!Number.isFinite(durationScalar) || durationScalar <= 0) {
|
|
241
|
-
return null;
|
|
242
|
-
}
|
|
243
|
-
return durationScalar;
|
|
195
|
+
return MIN_SWIPE_RELEASE_SCALAR + normalizedDuration * (MAX_SWIPE_RELEASE_SCALAR - MIN_SWIPE_RELEASE_SCALAR);
|
|
244
196
|
}
|
|
245
197
|
function updateNestedSwipeActive(details) {
|
|
246
198
|
if (nestedSwipeActiveRef.current || !details) {
|
|
247
199
|
return;
|
|
248
200
|
}
|
|
249
201
|
const direction = details.direction ?? swipeDirection;
|
|
250
|
-
const delta = direction
|
|
251
|
-
if (
|
|
202
|
+
const delta = getDisplacement(direction, details.deltaX, details.deltaY);
|
|
203
|
+
if (Math.abs(delta) < MIN_SWIPE_THRESHOLD) {
|
|
252
204
|
return;
|
|
253
205
|
}
|
|
254
206
|
nestedSwipeActiveRef.current = true;
|
|
@@ -265,13 +217,10 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
|
|
|
265
217
|
y: DrawerPopupCssVars.swipeMovementY
|
|
266
218
|
},
|
|
267
219
|
onSwipeStart(event) {
|
|
268
|
-
if ('touches' in event ||
|
|
220
|
+
if ('touches' in event || event.pointerType === 'touch') {
|
|
269
221
|
return;
|
|
270
222
|
}
|
|
271
223
|
const popupElement = popupRef.current;
|
|
272
|
-
if (!popupElement) {
|
|
273
|
-
return;
|
|
274
|
-
}
|
|
275
224
|
const doc = ownerDocument(popupElement);
|
|
276
225
|
const selection = doc.getSelection?.();
|
|
277
226
|
if (!selection || selection.isCollapsed) {
|
|
@@ -303,54 +252,38 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
|
|
|
303
252
|
return false;
|
|
304
253
|
}
|
|
305
254
|
const doc = popupElement.ownerDocument;
|
|
306
|
-
const elementAtPoint = getElementAtPoint(
|
|
255
|
+
const elementAtPoint = getElementAtPoint(popupElement.getRootNode(), position.x, position.y);
|
|
307
256
|
if (!elementAtPoint || !contains(popupElement, elementAtPoint)) {
|
|
308
257
|
return false;
|
|
309
258
|
}
|
|
310
259
|
const nativeEvent = details.nativeEvent;
|
|
311
|
-
const touchLike = 'touches' in nativeEvent ||
|
|
260
|
+
const touchLike = 'touches' in nativeEvent || nativeEvent.pointerType === 'touch';
|
|
312
261
|
if (touchLike && shouldIgnoreSwipeForTextSelection(doc, popupElement)) {
|
|
313
262
|
return false;
|
|
314
263
|
}
|
|
315
|
-
if (nativeEvent.type === 'touchstart' && isSwipeIgnoredTarget(elementAtPoint)) {
|
|
316
|
-
return false;
|
|
317
|
-
}
|
|
318
264
|
return true;
|
|
319
265
|
},
|
|
320
266
|
onProgress(progress, details) {
|
|
321
267
|
updateNestedSwipeActive(details);
|
|
322
268
|
const hasSnapPoints = Boolean(snapPoints && snapPoints.length > 0);
|
|
323
|
-
if (swipingRef.current && swipeDirection === 'down' && hasSnapPoints && details
|
|
269
|
+
if (swipingRef.current && swipeDirection === 'down' && hasSnapPoints && details) {
|
|
324
270
|
const popupElement = store.context.popupRef.current;
|
|
325
271
|
if (popupElement) {
|
|
326
272
|
popupElement.style.removeProperty('transform');
|
|
327
273
|
popupElement.style.setProperty(DrawerPopupCssVars.swipeMovementY, `${getSnapPointSwipeMovement(activeSnapPointOffset ?? 0, details.deltaY)}px`);
|
|
328
274
|
}
|
|
329
275
|
}
|
|
330
|
-
const currentDirection = details?.direction ?? swipe.swipeDirection;
|
|
331
|
-
const isDismissSwipe = currentDirection === undefined || currentDirection === swipeDirection;
|
|
332
|
-
const isVerticalSwipe = swipeDirection === 'down' || swipeDirection === 'up';
|
|
333
|
-
const shouldTrackProgress = hasSnapPoints && isVerticalSwipe || !hasSnapPoints || swipeDirection === 'left' || swipeDirection === 'right' || isDismissSwipe;
|
|
334
276
|
let resolvedProgress = progress;
|
|
335
277
|
if (snapPointRange && popupHeight > 0) {
|
|
278
|
+
const baseOffset = activeSnapPointOffset ?? snapPointRange.minOffset;
|
|
279
|
+
const offsetToProgress = nextOffset => clamp((nextOffset - snapPointRange.minOffset) / snapPointRange.range, 0, 1);
|
|
336
280
|
if (details && Number.isFinite(details.deltaY)) {
|
|
337
|
-
|
|
338
|
-
const nextOffset = clamp(baseOffset + details.deltaY, 0, popupHeight);
|
|
339
|
-
resolvedProgress = clamp((nextOffset - snapPointRange.minOffset) / snapPointRange.range, 0, 1);
|
|
281
|
+
resolvedProgress = offsetToProgress(clamp(baseOffset + details.deltaY, 0, popupHeight));
|
|
340
282
|
} else if (snapPointProgress !== null) {
|
|
341
283
|
resolvedProgress = snapPointProgress;
|
|
342
|
-
} else if (currentDirection === 'down' || currentDirection === 'up') {
|
|
343
|
-
const displacement = progress * popupHeight;
|
|
344
|
-
const baseOffset = activeSnapPointOffset ?? snapPointRange.minOffset;
|
|
345
|
-
const nextOffset = currentDirection === 'down' ? baseOffset + displacement : baseOffset - displacement;
|
|
346
|
-
resolvedProgress = clamp((nextOffset - snapPointRange.minOffset) / snapPointRange.range, 0, 1);
|
|
347
284
|
}
|
|
348
285
|
}
|
|
349
|
-
applySwipeProgress(
|
|
350
|
-
resolvedProgress,
|
|
351
|
-
shouldTrackProgress,
|
|
352
|
-
notifyParent: true
|
|
353
|
-
});
|
|
286
|
+
applySwipeProgress(resolvedProgress, true, true);
|
|
354
287
|
},
|
|
355
288
|
onRelease({
|
|
356
289
|
event,
|
|
@@ -362,30 +295,21 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
|
|
|
362
295
|
releaseVelocityX,
|
|
363
296
|
releaseVelocityY
|
|
364
297
|
}) {
|
|
365
|
-
const
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
releaseVelocityY
|
|
372
|
-
};
|
|
298
|
+
const popupElement = store.context.popupRef.current;
|
|
299
|
+
if (!popupElement) {
|
|
300
|
+
clearSwipeRelease();
|
|
301
|
+
return undefined;
|
|
302
|
+
}
|
|
303
|
+
const releasePopupElement = popupElement;
|
|
373
304
|
function startSwipeRelease(resolvedDirection) {
|
|
374
305
|
// Start ending transition styles earlier and synchronously to prevent a period where
|
|
375
306
|
// the popup appears stuck on release before the actual closing animation starts.
|
|
376
|
-
const popupElement = store.context.popupRef.current;
|
|
377
|
-
if (!popupElement) {
|
|
378
|
-
return;
|
|
379
|
-
}
|
|
380
307
|
finishNestedSwipe();
|
|
381
308
|
setSwipeDismissed(true);
|
|
382
|
-
|
|
383
|
-
|
|
309
|
+
releasePopupElement.style.removeProperty('transition');
|
|
310
|
+
releasePopupElement.setAttribute(TransitionStatusDataAttributes.endingStyle, '');
|
|
384
311
|
ReactDOM.flushSync(() => {
|
|
385
|
-
setSwipeRelease(resolveSwipeRelease(
|
|
386
|
-
direction: resolvedDirection,
|
|
387
|
-
...swipeReleasePayload
|
|
388
|
-
}));
|
|
312
|
+
setSwipeRelease(resolveSwipeRelease(releasePopupElement, resolvedDirection, deltaX, deltaY, velocityX, velocityY, releaseVelocityX, releaseVelocityY));
|
|
389
313
|
});
|
|
390
314
|
}
|
|
391
315
|
if (!snapPoints || snapPoints.length === 0) {
|
|
@@ -393,29 +317,16 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
|
|
|
393
317
|
clearSwipeRelease();
|
|
394
318
|
return undefined;
|
|
395
319
|
}
|
|
396
|
-
const
|
|
397
|
-
if (!element) {
|
|
398
|
-
clearSwipeRelease();
|
|
399
|
-
return undefined;
|
|
400
|
-
}
|
|
401
|
-
const baseThreshold = getBaseSwipeThreshold(element, direction);
|
|
402
|
-
const delta = direction === 'left' || direction === 'right' ? deltaX : deltaY;
|
|
403
|
-
if (!Number.isFinite(delta)) {
|
|
404
|
-
clearSwipeRelease();
|
|
405
|
-
return undefined;
|
|
406
|
-
}
|
|
407
|
-
const directionalDelta = direction === 'left' || direction === 'up' ? -delta : delta;
|
|
320
|
+
const directionalDelta = getDisplacement(direction, deltaX, deltaY);
|
|
408
321
|
if (directionalDelta <= 0) {
|
|
409
322
|
clearSwipeRelease();
|
|
410
323
|
return false;
|
|
411
324
|
}
|
|
412
|
-
|
|
413
|
-
const directionalVelocity = direction === 'left' || direction === 'up' ? -velocity : velocity;
|
|
414
|
-
if (directionalVelocity >= FAST_SWIPE_VELOCITY && directionalDelta > 0) {
|
|
325
|
+
if (getDisplacement(direction, velocityX, velocityY) >= FAST_SWIPE_VELOCITY) {
|
|
415
326
|
startSwipeRelease(direction);
|
|
416
327
|
return true;
|
|
417
328
|
}
|
|
418
|
-
const shouldClose = directionalDelta >
|
|
329
|
+
const shouldClose = directionalDelta > getBaseSwipeThreshold(releasePopupElement, direction);
|
|
419
330
|
if (shouldClose) {
|
|
420
331
|
startSwipeRelease(direction);
|
|
421
332
|
} else {
|
|
@@ -427,20 +338,20 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
|
|
|
427
338
|
clearSwipeRelease();
|
|
428
339
|
return undefined;
|
|
429
340
|
}
|
|
430
|
-
if (!popupHeight
|
|
341
|
+
if (!popupHeight) {
|
|
431
342
|
clearSwipeRelease();
|
|
432
|
-
return
|
|
343
|
+
return false;
|
|
433
344
|
}
|
|
434
|
-
|
|
435
|
-
if (!Number.isFinite(dragDelta)) {
|
|
345
|
+
if (resolvedSnapPoints.length === 0) {
|
|
436
346
|
clearSwipeRelease();
|
|
437
347
|
return undefined;
|
|
438
348
|
}
|
|
349
|
+
const dragDelta = swipeDirection === 'down' ? deltaY : -deltaY;
|
|
439
350
|
const dragDirection = Math.sign(dragDelta);
|
|
440
351
|
const releaseDirectionalVelocity = swipeDirection === 'down' ? releaseVelocityY : -releaseVelocityY;
|
|
441
352
|
const fallbackDirectionalVelocity = swipeDirection === 'down' ? velocityY : -velocityY;
|
|
442
|
-
let resolvedDirectionalVelocity =
|
|
443
|
-
if (dragDirection !== 0 && Math.abs(dragDelta) >= MIN_SWIPE_THRESHOLD
|
|
353
|
+
let resolvedDirectionalVelocity = releaseDirectionalVelocity;
|
|
354
|
+
if (dragDirection !== 0 && Math.abs(dragDelta) >= MIN_SWIPE_THRESHOLD) {
|
|
444
355
|
const velocityDirection = Math.sign(resolvedDirectionalVelocity);
|
|
445
356
|
if (velocityDirection !== 0 && velocityDirection !== dragDirection) {
|
|
446
357
|
// Ignore touch reversals that would otherwise flip the snap decision.
|
|
@@ -449,39 +360,20 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
|
|
|
449
360
|
}
|
|
450
361
|
const currentOffset = activeSnapPointOffset ?? 0;
|
|
451
362
|
const dragTargetOffset = clamp(currentOffset + dragDelta, 0, popupHeight);
|
|
452
|
-
const velocityOffset =
|
|
363
|
+
const velocityOffset = Math.abs(resolvedDirectionalVelocity) >= SNAP_VELOCITY_THRESHOLD ? clamp(resolvedDirectionalVelocity, -MAX_SNAP_VELOCITY, MAX_SNAP_VELOCITY) * SNAP_VELOCITY_MULTIPLIER : 0;
|
|
453
364
|
const targetOffset = snapToSequentialPoints ? dragTargetOffset : clamp(dragTargetOffset + velocityOffset, 0, popupHeight);
|
|
454
365
|
const snapPointEventDetails = createChangeEventDetails(REASONS.swipe, event);
|
|
455
366
|
const closeFromSnapPoints = () => {
|
|
456
367
|
pendingSwipeCloseSnapPointRef.current = activeSnapPoint;
|
|
457
|
-
setActiveSnapPoint
|
|
368
|
+
setActiveSnapPoint(null, snapPointEventDetails);
|
|
458
369
|
startSwipeRelease(swipeDirection);
|
|
459
370
|
return true;
|
|
460
371
|
};
|
|
461
372
|
if (snapToSequentialPoints) {
|
|
462
373
|
const orderedSnapPoints = [...resolvedSnapPoints].sort((first, second) => first.offset - second.offset);
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
}
|
|
467
|
-
let currentIndex = 0;
|
|
468
|
-
let closestDistance = Math.abs(currentOffset - orderedSnapPoints[0].offset);
|
|
469
|
-
for (let index = 1; index < orderedSnapPoints.length; index += 1) {
|
|
470
|
-
const distance = Math.abs(currentOffset - orderedSnapPoints[index].offset);
|
|
471
|
-
if (distance < closestDistance) {
|
|
472
|
-
closestDistance = distance;
|
|
473
|
-
currentIndex = index;
|
|
474
|
-
}
|
|
475
|
-
}
|
|
476
|
-
let targetSnapPoint = orderedSnapPoints[0];
|
|
477
|
-
closestDistance = Math.abs(targetOffset - targetSnapPoint.offset);
|
|
478
|
-
for (const snapPoint of orderedSnapPoints) {
|
|
479
|
-
const distance = Math.abs(targetOffset - snapPoint.offset);
|
|
480
|
-
if (distance < closestDistance) {
|
|
481
|
-
closestDistance = distance;
|
|
482
|
-
targetSnapPoint = snapPoint;
|
|
483
|
-
}
|
|
484
|
-
}
|
|
374
|
+
const orderedOffsets = orderedSnapPoints.map(point => point.offset);
|
|
375
|
+
const currentIndex = closestSnapPointIndex(orderedOffsets, currentOffset);
|
|
376
|
+
let targetSnapPoint = orderedSnapPoints[closestSnapPointIndex(orderedOffsets, targetOffset)];
|
|
485
377
|
const velocityDirection = Math.sign(resolvedDirectionalVelocity);
|
|
486
378
|
const shouldAdvance = dragDirection !== 0 && velocityDirection !== 0 && velocityDirection === dragDirection && Math.abs(resolvedDirectionalVelocity) >= SNAP_VELOCITY_THRESHOLD;
|
|
487
379
|
let effectiveTargetOffset = targetOffset;
|
|
@@ -498,34 +390,24 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
|
|
|
498
390
|
return closeFromSnapPoints();
|
|
499
391
|
}
|
|
500
392
|
}
|
|
501
|
-
const
|
|
502
|
-
const closeDistance = Math.abs(effectiveTargetOffset - closeOffset);
|
|
393
|
+
const closeDistance = Math.abs(effectiveTargetOffset - popupHeight);
|
|
503
394
|
const snapDistance = Math.abs(effectiveTargetOffset - targetSnapPoint.offset);
|
|
504
395
|
if (closeDistance < snapDistance) {
|
|
505
396
|
return closeFromSnapPoints();
|
|
506
397
|
}
|
|
507
|
-
setActiveSnapPoint
|
|
398
|
+
setActiveSnapPoint(targetSnapPoint.value, snapPointEventDetails);
|
|
508
399
|
clearSwipeRelease();
|
|
509
400
|
return false;
|
|
510
401
|
}
|
|
511
402
|
if (resolvedDirectionalVelocity >= FAST_SWIPE_VELOCITY && dragDelta > 0) {
|
|
512
403
|
return closeFromSnapPoints();
|
|
513
404
|
}
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
const distance = Math.abs(targetOffset - snapPoint.offset);
|
|
518
|
-
if (distance < closestDistance) {
|
|
519
|
-
closestDistance = distance;
|
|
520
|
-
closestSnapPoint = snapPoint;
|
|
521
|
-
}
|
|
522
|
-
}
|
|
523
|
-
const closeOffset = popupHeight;
|
|
524
|
-
const closeDistance = Math.abs(targetOffset - closeOffset);
|
|
525
|
-
if (closeDistance < closestDistance) {
|
|
405
|
+
const closestSnapPoint = resolvedSnapPoints[closestSnapPointIndex(resolvedSnapPoints.map(point => point.offset), targetOffset)];
|
|
406
|
+
const closeDistance = Math.abs(targetOffset - popupHeight);
|
|
407
|
+
if (closeDistance < Math.abs(targetOffset - closestSnapPoint.offset)) {
|
|
526
408
|
return closeFromSnapPoints();
|
|
527
409
|
}
|
|
528
|
-
setActiveSnapPoint
|
|
410
|
+
setActiveSnapPoint(closestSnapPoint.value, snapPointEventDetails);
|
|
529
411
|
clearSwipeRelease();
|
|
530
412
|
return false;
|
|
531
413
|
},
|
|
@@ -544,7 +426,7 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
|
|
|
544
426
|
if (dismissEventDetails.isCanceled) {
|
|
545
427
|
const pendingSnapPoint = pendingSwipeCloseSnapPointRef.current;
|
|
546
428
|
if (pendingSnapPoint !== undefined) {
|
|
547
|
-
setActiveSnapPoint
|
|
429
|
+
setActiveSnapPoint(pendingSnapPoint, createChangeEventDetails(REASONS.swipe, event));
|
|
548
430
|
}
|
|
549
431
|
pendingSwipeCloseSnapPointRef.current = undefined;
|
|
550
432
|
resetSwipeRef.current?.();
|
|
@@ -566,7 +448,7 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
|
|
|
566
448
|
// Parent rejected: revert animation and restore snap point.
|
|
567
449
|
const pendingSnapPoint = pendingSwipeCloseSnapPointRef.current;
|
|
568
450
|
if (pendingSnapPoint !== undefined) {
|
|
569
|
-
setActiveSnapPoint
|
|
451
|
+
setActiveSnapPoint(pendingSnapPoint, createChangeEventDetails(REASONS.swipe, savedEvent));
|
|
570
452
|
}
|
|
571
453
|
pendingSwipeCloseSnapPointRef.current = undefined;
|
|
572
454
|
clearSwipeRelease();
|
|
@@ -596,42 +478,18 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
|
|
|
596
478
|
}
|
|
597
479
|
const resolvedRootElement = rootElement;
|
|
598
480
|
const doc = ownerDocument(resolvedRootElement);
|
|
599
|
-
|
|
600
|
-
function handleNativeTouchMove(event) {
|
|
601
|
-
// The virtual keyboard provider observes the move to tell a tap apart from a drag.
|
|
602
|
-
// It must run even when the swipe gesture below claims the event with
|
|
603
|
-
// `stopPropagation()`, which would otherwise prevent React's delegated handlers
|
|
604
|
-
// (and the provider) from ever seeing the move.
|
|
605
|
-
virtualKeyboard?.onTouchMove(event);
|
|
606
|
-
if (ignoreTouchSwipeRef.current) {
|
|
607
|
-
return;
|
|
608
|
-
}
|
|
609
|
-
const touchState = touchScrollStateRef.current;
|
|
610
|
-
const touch = event.touches[0];
|
|
611
|
-
if (!touch || !touchState) {
|
|
612
|
-
return;
|
|
613
|
-
}
|
|
481
|
+
function processTouchMove(event, touchState, touch) {
|
|
614
482
|
const drawerAxisDelta = isVerticalScrollAxis ? touch.clientY - touchState.lastY : touch.clientX - touchState.lastX;
|
|
615
483
|
|
|
616
|
-
// Preserve native range interaction by never locking touchmove for range inputs.
|
|
617
|
-
if (isEventOnRangeInput(event, win)) {
|
|
618
|
-
touchState.allowSwipe = false;
|
|
619
|
-
updateTouchScrollPosition(touchState, touch);
|
|
620
|
-
return;
|
|
621
|
-
}
|
|
622
|
-
|
|
623
484
|
// Avoid blocking pinch zoom or text selection adjustments on iOS Safari.
|
|
624
485
|
if (event.touches.length === 2) {
|
|
625
|
-
updateTouchScrollPosition(touchState, touch);
|
|
626
486
|
return;
|
|
627
487
|
}
|
|
628
488
|
const allowTouchMove = shouldIgnoreSwipeForTextSelection(doc, resolvedRootElement);
|
|
629
489
|
if (allowTouchMove || !open || !mounted || nestedDrawerOpen) {
|
|
630
|
-
updateTouchScrollPosition(touchState, touch);
|
|
631
490
|
return;
|
|
632
491
|
}
|
|
633
|
-
if (
|
|
634
|
-
updateTouchScrollPosition(touchState, touch);
|
|
492
|
+
if (shouldYieldTouchMove(touchState, event, touch, isVerticalScrollAxis)) {
|
|
635
493
|
return;
|
|
636
494
|
}
|
|
637
495
|
const scrollTarget = touchState.scrollTarget;
|
|
@@ -643,27 +501,21 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
|
|
|
643
501
|
// move through React re-rasterizes the popup content on every frame.
|
|
644
502
|
event.stopPropagation();
|
|
645
503
|
moveSwipeNative(event, resolvedRootElement);
|
|
646
|
-
updateTouchScrollPosition(touchState, touch);
|
|
647
504
|
return;
|
|
648
505
|
}
|
|
649
|
-
|
|
650
|
-
if (!hasScrollableContent) {
|
|
506
|
+
if (!hasScrollableContentOnAxis(scrollTarget, scrollAxis)) {
|
|
651
507
|
// If the scroll container doesn't overflow on the drawer axis, prevent the window from
|
|
652
508
|
// scrolling instead.
|
|
653
509
|
if (event.cancelable) {
|
|
654
510
|
event.preventDefault();
|
|
655
511
|
}
|
|
656
512
|
event.stopPropagation();
|
|
657
|
-
updateTouchScrollPosition(touchState, touch);
|
|
658
513
|
return;
|
|
659
514
|
}
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
const canSwipeFromScrollEdge = canSwipeFromScrollEdgeOnMove(scrollTarget, scrollAxis, swipeDirection, delta);
|
|
515
|
+
if (drawerAxisDelta !== 0) {
|
|
516
|
+
const canSwipeFromScrollEdge = canSwipeFromScrollEdgeOnMove(scrollTarget, scrollAxis, swipeDirection, drawerAxisDelta);
|
|
663
517
|
if (!touchState.allowSwipe) {
|
|
664
|
-
if (
|
|
665
|
-
touchState.allowSwipe = false;
|
|
666
|
-
} else if (canSwipeFromScrollEdge) {
|
|
518
|
+
if (event.cancelable && canSwipeFromScrollEdge) {
|
|
667
519
|
touchState.allowSwipe = true;
|
|
668
520
|
event.preventDefault();
|
|
669
521
|
} else {
|
|
@@ -677,6 +529,22 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
|
|
|
677
529
|
event.stopPropagation();
|
|
678
530
|
moveSwipeNative(event, resolvedRootElement);
|
|
679
531
|
}
|
|
532
|
+
}
|
|
533
|
+
function handleNativeTouchMove(event) {
|
|
534
|
+
// The virtual keyboard provider observes the move to tell a tap apart from a drag.
|
|
535
|
+
// It must run even when the swipe gesture below claims the event with
|
|
536
|
+
// `stopPropagation()`, which would otherwise prevent React's delegated handlers
|
|
537
|
+
// (and the provider) from ever seeing the move.
|
|
538
|
+
virtualKeyboard?.onTouchMove(event);
|
|
539
|
+
if (ignoreTouchSwipeRef.current) {
|
|
540
|
+
return;
|
|
541
|
+
}
|
|
542
|
+
const touchState = touchScrollStateRef.current;
|
|
543
|
+
const touch = event.touches[0];
|
|
544
|
+
if (!touch || !touchState) {
|
|
545
|
+
return;
|
|
546
|
+
}
|
|
547
|
+
processTouchMove(event, touchState, touch);
|
|
680
548
|
updateTouchScrollPosition(touchState, touch);
|
|
681
549
|
}
|
|
682
550
|
return addEventListener(doc, 'touchmove', handleNativeTouchMove, {
|
|
@@ -684,18 +552,13 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
|
|
|
684
552
|
capture: true
|
|
685
553
|
});
|
|
686
554
|
}, [mounted, nestedDrawerOpen, open, popupElementState, isVerticalScrollAxis, scrollAxis, swipeDirection, moveSwipeNative, viewportElement, virtualKeyboard]);
|
|
687
|
-
|
|
555
|
+
useIsoLayoutEffect(() => {
|
|
688
556
|
if (!snapPointRange || swipe.swiping) {
|
|
689
557
|
return;
|
|
690
558
|
}
|
|
691
|
-
|
|
692
|
-
applySwipeProgress({
|
|
693
|
-
resolvedProgress,
|
|
694
|
-
shouldTrackProgress: true,
|
|
695
|
-
notifyParent: false
|
|
696
|
-
});
|
|
559
|
+
applySwipeProgress(!open || nested ? 0 : snapPointProgress ?? 0, true, false);
|
|
697
560
|
}, [applySwipeProgress, frontmostHeight, nested, notifyParentSwipeProgressChange, open, snapPointProgress, snapPointRange, swipe.swiping, store, visualStateStore]);
|
|
698
|
-
|
|
561
|
+
useIsoLayoutEffect(() => {
|
|
699
562
|
if (!notifyParentSwipeProgressChange) {
|
|
700
563
|
return undefined;
|
|
701
564
|
}
|
|
@@ -706,13 +569,19 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
|
|
|
706
569
|
notifyParentSwipeProgressChange(0);
|
|
707
570
|
};
|
|
708
571
|
}, [notifyParentSwipeProgressChange, open]);
|
|
709
|
-
|
|
572
|
+
useIsoLayoutEffect(() => {
|
|
710
573
|
if (open) {
|
|
711
|
-
resetSwipe
|
|
574
|
+
// Skip `resetSwipe` while `Drawer.SwipeArea` is driving the open: it zeroes the popup's
|
|
575
|
+
// `--swipe-movement-*` (via `syncDragStyles(false)`), flashing it fully open for a frame.
|
|
576
|
+
// `clearSwipeRelease` doesn't touch those vars, so always run it to clear any leftover
|
|
577
|
+
// release state from a prior dismiss (e.g. when the popup is kept mounted).
|
|
578
|
+
if (!swipeAreaActiveRef.current) {
|
|
579
|
+
resetSwipe();
|
|
580
|
+
}
|
|
712
581
|
clearSwipeRelease();
|
|
713
582
|
}
|
|
714
|
-
}, [clearSwipeRelease, open, resetSwipe]);
|
|
715
|
-
|
|
583
|
+
}, [clearSwipeRelease, open, resetSwipe, swipeAreaActiveRef]);
|
|
584
|
+
useIsoLayoutEffect(() => {
|
|
716
585
|
const backdropElement = backdropRef.current;
|
|
717
586
|
return () => {
|
|
718
587
|
visualStateStore?.set({
|
|
@@ -737,12 +606,19 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
|
|
|
737
606
|
swipeStrength: swipeRelease ?? null,
|
|
738
607
|
setSwipeDismissed
|
|
739
608
|
}), [setSwipeDismissed, swipe.getDragStyles, swipe.swiping, swipeRelease]);
|
|
740
|
-
function
|
|
741
|
-
ignoreTouchSwipeRef.current =
|
|
609
|
+
function resetTouchSwipeState(ignoreSwipe) {
|
|
610
|
+
ignoreTouchSwipeRef.current = ignoreSwipe;
|
|
742
611
|
touchScrollStateRef.current = null;
|
|
612
|
+
}
|
|
613
|
+
function resetTouchTrackingState() {
|
|
614
|
+
resetTouchSwipeState(false);
|
|
743
615
|
lastPointerTypeRef.current = '';
|
|
744
616
|
ignoreNextTouchStartFromPenRef.current = false;
|
|
745
617
|
}
|
|
618
|
+
function handlePointerEnd(event) {
|
|
619
|
+
lastPointerTypeRef.current = '';
|
|
620
|
+
return event.pointerType !== 'touch';
|
|
621
|
+
}
|
|
746
622
|
return /*#__PURE__*/_jsx(DialogViewport, {
|
|
747
623
|
ref: forwardedRef,
|
|
748
624
|
className: className,
|
|
@@ -755,8 +631,7 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
|
|
|
755
631
|
if (!open || !mounted || nestedDrawerOpen) {
|
|
756
632
|
return;
|
|
757
633
|
}
|
|
758
|
-
const
|
|
759
|
-
const elementAtPoint = getElementAtPoint(doc, event.clientX, event.clientY);
|
|
634
|
+
const elementAtPoint = getElementAtPoint(event.currentTarget.getRootNode(), event.clientX, event.clientY);
|
|
760
635
|
if (isSwipeIgnoredTarget(elementAtPoint) || isDrawerContentTarget(elementAtPoint)) {
|
|
761
636
|
return;
|
|
762
637
|
}
|
|
@@ -772,34 +647,24 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
|
|
|
772
647
|
swipePointerProps.onPointerMove?.(event);
|
|
773
648
|
},
|
|
774
649
|
onPointerUp(event) {
|
|
775
|
-
if (
|
|
776
|
-
|
|
777
|
-
}
|
|
778
|
-
if (event.pointerType === 'touch') {
|
|
779
|
-
return;
|
|
650
|
+
if (handlePointerEnd(event)) {
|
|
651
|
+
swipePointerProps.onPointerUp?.(event);
|
|
780
652
|
}
|
|
781
|
-
swipePointerProps.onPointerUp?.(event);
|
|
782
653
|
},
|
|
783
654
|
onPointerCancel(event) {
|
|
784
|
-
if (
|
|
785
|
-
|
|
786
|
-
}
|
|
787
|
-
if (event.pointerType === 'touch') {
|
|
788
|
-
return;
|
|
655
|
+
if (handlePointerEnd(event)) {
|
|
656
|
+
swipePointerProps.onPointerCancel?.(event);
|
|
789
657
|
}
|
|
790
|
-
swipePointerProps.onPointerCancel?.(event);
|
|
791
658
|
},
|
|
792
659
|
onTouchStart(event) {
|
|
793
660
|
const startedFromPenPointerDown = lastPointerTypeRef.current === 'pen' && ignoreNextTouchStartFromPenRef.current;
|
|
794
661
|
if (startedFromPenPointerDown) {
|
|
795
662
|
ignoreNextTouchStartFromPenRef.current = false;
|
|
796
|
-
|
|
797
|
-
touchScrollStateRef.current = null;
|
|
663
|
+
resetTouchSwipeState(false);
|
|
798
664
|
return;
|
|
799
665
|
}
|
|
800
666
|
if (!open || !mounted || nestedDrawerOpen) {
|
|
801
|
-
|
|
802
|
-
touchScrollStateRef.current = null;
|
|
667
|
+
resetTouchSwipeState(false);
|
|
803
668
|
return;
|
|
804
669
|
}
|
|
805
670
|
const touch = event.touches[0];
|
|
@@ -807,32 +672,25 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
|
|
|
807
672
|
return;
|
|
808
673
|
}
|
|
809
674
|
if (isReactTouchEventOnRangeInput(event)) {
|
|
810
|
-
|
|
811
|
-
touchScrollStateRef.current = null;
|
|
675
|
+
resetTouchSwipeState(false);
|
|
812
676
|
return;
|
|
813
677
|
}
|
|
814
|
-
const
|
|
815
|
-
const elementAtPoint = getElementAtPoint(
|
|
816
|
-
const rootElement = viewportElement ?? popupElementState;
|
|
678
|
+
const rootElement = event.currentTarget;
|
|
679
|
+
const elementAtPoint = getElementAtPoint(rootElement.getRootNode(), touch.clientX, touch.clientY);
|
|
817
680
|
const eventTarget = getTarget(event.nativeEvent);
|
|
818
|
-
const target = isElement(eventTarget) ? eventTarget :
|
|
819
|
-
if (
|
|
820
|
-
|
|
821
|
-
touchScrollStateRef.current = null;
|
|
681
|
+
const target = isElement(eventTarget) ? eventTarget : rootElement;
|
|
682
|
+
if (!contains(rootElement, target)) {
|
|
683
|
+
resetTouchSwipeState(true);
|
|
822
684
|
return;
|
|
823
685
|
}
|
|
824
686
|
virtualKeyboard?.onTouchStart(event);
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
touchScrollStateRef.current = null;
|
|
687
|
+
if (isSwipeIgnoredTarget(elementAtPoint)) {
|
|
688
|
+
resetTouchSwipeState(true);
|
|
828
689
|
return;
|
|
829
690
|
}
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
scrollTarget = findScrollableTouchTarget(target, rootElement, scrollAxis);
|
|
834
|
-
hasCrossAxisScrollableContent = findScrollableTouchTarget(target, rootElement, crossScrollAxis) != null;
|
|
835
|
-
}
|
|
691
|
+
ignoreTouchSwipeRef.current = false;
|
|
692
|
+
const scrollTarget = findScrollableTouchTarget(target, rootElement, scrollAxis);
|
|
693
|
+
const hasCrossAxisScrollableContent = findScrollableTouchTarget(target, rootElement, crossScrollAxis) != null;
|
|
836
694
|
let allowSwipe = null;
|
|
837
695
|
if (scrollTarget) {
|
|
838
696
|
const canSwipeFromEdge = isAtSwipeStartEdge(scrollTarget, scrollAxis, swipeDirection);
|
|
@@ -846,7 +704,8 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
|
|
|
846
704
|
scrollTarget,
|
|
847
705
|
hasCrossAxisScrollableContent,
|
|
848
706
|
allowSwipe,
|
|
849
|
-
preserveNativeCrossAxisScroll: false
|
|
707
|
+
preserveNativeCrossAxisScroll: false,
|
|
708
|
+
drawerAxisAttributed: false
|
|
850
709
|
};
|
|
851
710
|
swipeTouchProps.onTouchStart?.(event);
|
|
852
711
|
},
|
|
@@ -871,24 +730,8 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
|
|
|
871
730
|
});
|
|
872
731
|
});
|
|
873
732
|
if (process.env.NODE_ENV !== "production") DrawerViewport.displayName = "DrawerViewport";
|
|
874
|
-
function setSwipeDismissedElements(popupElement, backdropElement, dismissed) {
|
|
875
|
-
if (dismissed) {
|
|
876
|
-
popupElement?.setAttribute(DrawerPopupDataAttributes.swipeDismiss, '');
|
|
877
|
-
backdropElement?.setAttribute(DrawerPopupDataAttributes.swipeDismiss, '');
|
|
878
|
-
return;
|
|
879
|
-
}
|
|
880
|
-
popupElement?.removeAttribute(DrawerPopupDataAttributes.swipeDismiss);
|
|
881
|
-
backdropElement?.removeAttribute(DrawerPopupDataAttributes.swipeDismiss);
|
|
882
|
-
}
|
|
883
733
|
function setBackdropSwipingAttribute(backdropElement, swiping) {
|
|
884
|
-
|
|
885
|
-
return;
|
|
886
|
-
}
|
|
887
|
-
if (swiping) {
|
|
888
|
-
backdropElement.setAttribute(DrawerPopupDataAttributes.swiping, '');
|
|
889
|
-
return;
|
|
890
|
-
}
|
|
891
|
-
backdropElement.removeAttribute(DrawerPopupDataAttributes.swiping);
|
|
734
|
+
backdropElement?.toggleAttribute(DrawerPopupDataAttributes.swiping, swiping);
|
|
892
735
|
}
|
|
893
736
|
function isSwipeIgnoredTarget(target) {
|
|
894
737
|
return Boolean(target?.closest(BASE_UI_SWIPE_IGNORE_SELECTOR));
|
|
@@ -896,17 +739,16 @@ function isSwipeIgnoredTarget(target) {
|
|
|
896
739
|
function isDrawerContentTarget(target) {
|
|
897
740
|
return Boolean(target?.closest(DRAWER_CONTENT_SELECTOR));
|
|
898
741
|
}
|
|
742
|
+
function getBaseSwipeSize(element, direction) {
|
|
743
|
+
return direction === 'left' || direction === 'right' ? element.offsetWidth : element.offsetHeight;
|
|
744
|
+
}
|
|
899
745
|
function getBaseSwipeThreshold(element, direction) {
|
|
900
|
-
|
|
901
|
-
return Math.max(size * 0.5, MIN_SWIPE_THRESHOLD);
|
|
746
|
+
return Math.max(getBaseSwipeSize(element, direction) * 0.5, MIN_SWIPE_THRESHOLD);
|
|
902
747
|
}
|
|
903
748
|
function isRangeInput(target, win) {
|
|
904
749
|
return target instanceof win.HTMLInputElement && target.type === 'range';
|
|
905
750
|
}
|
|
906
751
|
function isTextSelectionControl(target) {
|
|
907
|
-
if (!isElement(target)) {
|
|
908
|
-
return false;
|
|
909
|
-
}
|
|
910
752
|
return target.tagName === 'INPUT' || target.tagName === 'TEXTAREA';
|
|
911
753
|
}
|
|
912
754
|
function hasExpandedSelectionWithinTarget(selection, target) {
|
|
@@ -916,8 +758,7 @@ function hasExpandedSelectionWithinTarget(selection, target) {
|
|
|
916
758
|
}
|
|
917
759
|
function shouldIgnoreSwipeForTextSelection(doc, rootElement) {
|
|
918
760
|
const activeEl = activeElement(doc);
|
|
919
|
-
|
|
920
|
-
if (activeElementWithinRoot && isTextSelectionControl(activeEl)) {
|
|
761
|
+
if (activeEl && contains(rootElement, activeEl) && isTextSelectionControl(activeEl)) {
|
|
921
762
|
const {
|
|
922
763
|
selectionStart,
|
|
923
764
|
selectionEnd
|
|
@@ -933,11 +774,7 @@ function shouldIgnoreSwipeForTextSelection(doc, rootElement) {
|
|
|
933
774
|
return hasExpandedSelectionWithinTarget(selection, rootElement);
|
|
934
775
|
}
|
|
935
776
|
function isEventOnRangeInput(event, win) {
|
|
936
|
-
|
|
937
|
-
if (composedPath) {
|
|
938
|
-
return composedPath.some(pathTarget => isRangeInput(pathTarget, win));
|
|
939
|
-
}
|
|
940
|
-
return isRangeInput(getTarget(event), win);
|
|
777
|
+
return event.composedPath().some(pathTarget => isRangeInput(pathTarget, win));
|
|
941
778
|
}
|
|
942
779
|
function isReactTouchEventOnRangeInput(event) {
|
|
943
780
|
return isEventOnRangeInput(event.nativeEvent, ownerWindow(event.currentTarget));
|
|
@@ -946,25 +783,51 @@ function updateTouchScrollPosition(touchState, touch) {
|
|
|
946
783
|
touchState.lastX = touch.clientX;
|
|
947
784
|
touchState.lastY = touch.clientY;
|
|
948
785
|
}
|
|
949
|
-
|
|
786
|
+
|
|
787
|
+
/**
|
|
788
|
+
* Arbitrates a touchmove between the drawer swipe and a native cross-axis scroll.
|
|
789
|
+
* Returns `true` when the move must be left alone — either because the cross axis already won the
|
|
790
|
+
* gesture, or because neither axis has passed the slop yet and the gesture cannot be attributed.
|
|
791
|
+
*/
|
|
792
|
+
function shouldYieldTouchMove(touchState, event, touch, isVerticalScrollAxis) {
|
|
950
793
|
if (touchState.preserveNativeCrossAxisScroll) {
|
|
951
794
|
return true;
|
|
952
795
|
}
|
|
953
|
-
|
|
796
|
+
|
|
797
|
+
// Attribution happens once per gesture. Re-arbitrating after the drawer axis has won would let
|
|
798
|
+
// the pre-attribution branches below fire mid-drag (the slop is measured from the touch origin,
|
|
799
|
+
// which is never re-baselined), freezing the popup and dropping `preventDefault()`.
|
|
800
|
+
if (touchState.drawerAxisAttributed || touchState.allowSwipe === true || !touchState.hasCrossAxisScrollableContent) {
|
|
954
801
|
return false;
|
|
955
802
|
}
|
|
803
|
+
|
|
804
|
+
// A non-cancelable touchmove means the browser has already committed the gesture to a native
|
|
805
|
+
// scroll; claiming it for the swipe would drag the popup alongside the scrolling content.
|
|
806
|
+
if (!event.cancelable) {
|
|
807
|
+
touchState.preserveNativeCrossAxisScroll = true;
|
|
808
|
+
return true;
|
|
809
|
+
}
|
|
956
810
|
const drawerAxisGestureDelta = isVerticalScrollAxis ? touch.clientY - touchState.startY : touch.clientX - touchState.startX;
|
|
957
811
|
const crossAxisGestureDelta = isVerticalScrollAxis ? touch.clientX - touchState.startX : touch.clientY - touchState.startY;
|
|
958
812
|
const absDrawerAxisGestureDelta = Math.abs(drawerAxisGestureDelta);
|
|
959
813
|
const absCrossAxisGestureDelta = Math.abs(crossAxisGestureDelta);
|
|
960
|
-
if (absCrossAxisGestureDelta
|
|
814
|
+
if (absCrossAxisGestureDelta >= AXIS_LOCK_SLOP && absCrossAxisGestureDelta > absDrawerAxisGestureDelta + AXIS_LOCK_BIAS) {
|
|
815
|
+
touchState.preserveNativeCrossAxisScroll = true;
|
|
816
|
+
return true;
|
|
817
|
+
}
|
|
818
|
+
if (absDrawerAxisGestureDelta >= AXIS_LOCK_SLOP) {
|
|
819
|
+
touchState.drawerAxisAttributed = true;
|
|
961
820
|
return false;
|
|
962
821
|
}
|
|
963
|
-
|
|
822
|
+
|
|
823
|
+
// Neither axis has traveled past the slop yet, so the gesture cannot be attributed. Leave the
|
|
824
|
+
// event alone: on iOS, `preventDefault()` on the first cancelable touchmove cancels native
|
|
825
|
+
// scrolling for the entire gesture, which would lock a cross-axis scroll that only passes the
|
|
826
|
+
// slop on a later move.
|
|
964
827
|
return true;
|
|
965
828
|
}
|
|
966
829
|
function hasScrollableContentOnAxis(scrollTarget, axis) {
|
|
967
|
-
return
|
|
830
|
+
return getScrollMetrics(scrollTarget, axis).max > 0;
|
|
968
831
|
}
|
|
969
832
|
function getScrollMetrics(scrollTarget, axis) {
|
|
970
833
|
if (axis === 'vertical') {
|
|
@@ -981,46 +844,21 @@ function getScrollMetrics(scrollTarget, axis) {
|
|
|
981
844
|
};
|
|
982
845
|
}
|
|
983
846
|
function isAtSwipeStartEdge(scrollTarget, axis, direction) {
|
|
847
|
+
const dismissFromStartEdge = shouldDismissFromStartEdge(direction, axis);
|
|
984
848
|
const {
|
|
985
849
|
offset,
|
|
986
850
|
max
|
|
987
851
|
} = getScrollMetrics(scrollTarget, axis);
|
|
988
|
-
const dismissFromStartEdge = shouldDismissFromStartEdge(direction, axis);
|
|
989
|
-
if (dismissFromStartEdge === null) {
|
|
990
|
-
return false;
|
|
991
|
-
}
|
|
992
852
|
return dismissFromStartEdge ? offset <= 0 : offset >= max;
|
|
993
853
|
}
|
|
994
854
|
function canSwipeFromScrollEdgeOnMove(scrollTarget, axis, direction, delta) {
|
|
995
|
-
const {
|
|
996
|
-
offset,
|
|
997
|
-
max
|
|
998
|
-
} = getScrollMetrics(scrollTarget, axis);
|
|
999
855
|
const dismissFromStartEdge = shouldDismissFromStartEdge(direction, axis);
|
|
1000
|
-
if (dismissFromStartEdge === null) {
|
|
1001
|
-
return false;
|
|
1002
|
-
}
|
|
1003
856
|
const movingTowardDismiss = dismissFromStartEdge ? delta > 0 : delta < 0;
|
|
1004
857
|
if (!movingTowardDismiss) {
|
|
1005
858
|
return false;
|
|
1006
859
|
}
|
|
1007
|
-
return
|
|
860
|
+
return isAtSwipeStartEdge(scrollTarget, axis, direction);
|
|
1008
861
|
}
|
|
1009
862
|
function shouldDismissFromStartEdge(direction, axis) {
|
|
1010
|
-
|
|
1011
|
-
if (direction === 'down') {
|
|
1012
|
-
return true;
|
|
1013
|
-
}
|
|
1014
|
-
if (direction === 'up') {
|
|
1015
|
-
return false;
|
|
1016
|
-
}
|
|
1017
|
-
return null;
|
|
1018
|
-
}
|
|
1019
|
-
if (direction === 'right') {
|
|
1020
|
-
return true;
|
|
1021
|
-
}
|
|
1022
|
-
if (direction === 'left') {
|
|
1023
|
-
return false;
|
|
1024
|
-
}
|
|
1025
|
-
return null;
|
|
863
|
+
return axis === 'vertical' ? direction === 'down' : direction === 'right';
|
|
1026
864
|
}
|