@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,6 +6,5 @@ interface DrawerViewportContextValue {
|
|
|
6
6
|
setSwipeDismissed: (dismissed: boolean) => void;
|
|
7
7
|
}
|
|
8
8
|
export declare const DrawerViewportContext: React.Context<DrawerViewportContextValue | null>;
|
|
9
|
-
export declare function useDrawerViewportContext(
|
|
10
|
-
export declare function useDrawerViewportContext(optional: true): DrawerViewportContextValue | null;
|
|
9
|
+
export declare function useDrawerViewportContext(): DrawerViewportContextValue | null;
|
|
11
10
|
export {};
|
|
@@ -6,6 +6,5 @@ interface DrawerViewportContextValue {
|
|
|
6
6
|
setSwipeDismissed: (dismissed: boolean) => void;
|
|
7
7
|
}
|
|
8
8
|
export declare const DrawerViewportContext: React.Context<DrawerViewportContextValue | null>;
|
|
9
|
-
export declare function useDrawerViewportContext(
|
|
10
|
-
export declare function useDrawerViewportContext(optional: true): DrawerViewportContextValue | null;
|
|
9
|
+
export declare function useDrawerViewportContext(): DrawerViewportContextValue | null;
|
|
11
10
|
export {};
|
|
@@ -2,20 +2,14 @@
|
|
|
2
2
|
'use client';
|
|
3
3
|
|
|
4
4
|
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
5
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
6
5
|
Object.defineProperty(exports, "__esModule", {
|
|
7
6
|
value: true
|
|
8
7
|
});
|
|
9
8
|
exports.DrawerViewportContext = void 0;
|
|
10
9
|
exports.useDrawerViewportContext = useDrawerViewportContext;
|
|
11
|
-
var _formatErrorMessage2 = _interopRequireDefault(require("@base-ui/utils/formatErrorMessage"));
|
|
12
10
|
var React = _interopRequireWildcard(require("react"));
|
|
13
11
|
const DrawerViewportContext = exports.DrawerViewportContext = /*#__PURE__*/React.createContext(null);
|
|
14
12
|
if (process.env.NODE_ENV !== "production") DrawerViewportContext.displayName = "DrawerViewportContext";
|
|
15
|
-
function useDrawerViewportContext(
|
|
16
|
-
|
|
17
|
-
if (optional === false && context === null) {
|
|
18
|
-
throw new Error(process.env.NODE_ENV !== "production" ? 'Base UI: DrawerViewportContext is missing. Drawer parts must be placed within <Drawer.Viewport>.' : (0, _formatErrorMessage2.default)(92));
|
|
19
|
-
}
|
|
20
|
-
return context;
|
|
13
|
+
function useDrawerViewportContext() {
|
|
14
|
+
return React.useContext(DrawerViewportContext);
|
|
21
15
|
}
|
|
@@ -1,13 +1,8 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import _formatErrorMessage from "@base-ui/utils/formatErrorMessage";
|
|
4
3
|
import * as React from 'react';
|
|
5
4
|
export const DrawerViewportContext = /*#__PURE__*/React.createContext(null);
|
|
6
5
|
if (process.env.NODE_ENV !== "production") DrawerViewportContext.displayName = "DrawerViewportContext";
|
|
7
|
-
export function useDrawerViewportContext(
|
|
8
|
-
|
|
9
|
-
if (optional === false && context === null) {
|
|
10
|
-
throw new Error(process.env.NODE_ENV !== "production" ? 'Base UI: DrawerViewportContext is missing. Drawer parts must be placed within <Drawer.Viewport>.' : _formatErrorMessage(92));
|
|
11
|
-
}
|
|
12
|
-
return context;
|
|
6
|
+
export function useDrawerViewportContext() {
|
|
7
|
+
return React.useContext(DrawerViewportContext);
|
|
13
8
|
}
|
|
@@ -15,7 +15,7 @@ let DrawerViewportDataAttributes = exports.DrawerViewportDataAttributes = functi
|
|
|
15
15
|
*/
|
|
16
16
|
DrawerViewportDataAttributes[DrawerViewportDataAttributes["closed"] = _popupStateMapping.CommonPopupDataAttributes.closed] = "closed";
|
|
17
17
|
/**
|
|
18
|
-
* Present when the drawer
|
|
18
|
+
* Present when the drawer begins animating in.
|
|
19
19
|
*/
|
|
20
20
|
DrawerViewportDataAttributes[DrawerViewportDataAttributes["startingStyle"] = _popupStateMapping.CommonPopupDataAttributes.startingStyle] = "startingStyle";
|
|
21
21
|
/**
|
|
@@ -9,7 +9,7 @@ export let DrawerViewportDataAttributes = function (DrawerViewportDataAttributes
|
|
|
9
9
|
*/
|
|
10
10
|
DrawerViewportDataAttributes[DrawerViewportDataAttributes["closed"] = CommonPopupDataAttributes.closed] = "closed";
|
|
11
11
|
/**
|
|
12
|
-
* Present when the drawer
|
|
12
|
+
* Present when the drawer begins animating in.
|
|
13
13
|
*/
|
|
14
14
|
DrawerViewportDataAttributes[DrawerViewportDataAttributes["startingStyle"] = CommonPopupDataAttributes.startingStyle] = "startingStyle";
|
|
15
15
|
/**
|
|
@@ -12,6 +12,7 @@ var _addEventListener = require("@base-ui/utils/addEventListener");
|
|
|
12
12
|
var _owner = require("@base-ui/utils/owner");
|
|
13
13
|
var _useAnimationFrame = require("@base-ui/utils/useAnimationFrame");
|
|
14
14
|
var _useStableCallback = require("@base-ui/utils/useStableCallback");
|
|
15
|
+
var _useTimeout = require("@base-ui/utils/useTimeout");
|
|
15
16
|
var _DialogRootContext = require("../../dialog/root/DialogRootContext");
|
|
16
17
|
var _clamp = require("../../internals/clamp");
|
|
17
18
|
var _utils = require("../../floating-ui-react/utils");
|
|
@@ -26,6 +27,15 @@ const KEYBOARD_VISIBILITY_MARGIN = 16;
|
|
|
26
27
|
// keyboard overlap, so the field can be scrolled clear of the keyboard instead of
|
|
27
28
|
// ending up flush against it. Only applied when there is actual overlap.
|
|
28
29
|
const KEYBOARD_SCROLL_SLACK = 48;
|
|
30
|
+
// Cadence of the settle-watching realign passes after focus moves with the keyboard open:
|
|
31
|
+
// long enough for a smooth scroll to show progress between passes, short enough to recover
|
|
32
|
+
// quickly from a scroll canceled by WebKit's reveal; the pass count covers CSS transitions
|
|
33
|
+
// reacting to the focus change (e.g. a 260ms footer resize) with room to spare.
|
|
34
|
+
const KEYBOARD_REALIGN_INTERVAL = 150;
|
|
35
|
+
const KEYBOARD_REALIGN_MAX_PASSES = 4;
|
|
36
|
+
// Frames the alignment waits for the scroll destination to stop moving (layout reacting to
|
|
37
|
+
// the focus change, e.g. a footer resizing over a CSS transition) before scrolling anyway.
|
|
38
|
+
const KEYBOARD_SETTLE_FRAME_LIMIT = 60;
|
|
29
39
|
const INPUT_TAP_MOVE_THRESHOLD = 10;
|
|
30
40
|
const INPUT_TAP_HIT_SLOP = 16;
|
|
31
41
|
const KEYBOARD_INPUT_TYPES = new Set(['email', 'number', 'password', 'search', 'tel', 'text', 'url']);
|
|
@@ -49,11 +59,10 @@ function DrawerVirtualKeyboardProvider(props) {
|
|
|
49
59
|
const {
|
|
50
60
|
children
|
|
51
61
|
} = props;
|
|
52
|
-
const
|
|
53
|
-
store
|
|
54
|
-
} = (0, _DialogRootContext.useDialogRootContext)();
|
|
62
|
+
const store = (0, _DialogRootContext.useDialogRootContext)();
|
|
55
63
|
const open = store.useState('open');
|
|
56
64
|
const mounted = store.useState('mounted');
|
|
65
|
+
const modal = store.useState('modal');
|
|
57
66
|
const nestedOpenDialogCount = store.useState('nestedOpenDialogCount');
|
|
58
67
|
const viewportElement = store.useState('viewportElement');
|
|
59
68
|
|
|
@@ -66,7 +75,9 @@ function DrawerVirtualKeyboardProvider(props) {
|
|
|
66
75
|
const keyboardTouchStartRef = React.useRef(null);
|
|
67
76
|
const focusedKeyboardTargetRef = React.useRef(null);
|
|
68
77
|
const keyboardScrollAdjustmentRef = React.useRef(null);
|
|
78
|
+
const programmaticKeyboardFocusRef = React.useRef(false);
|
|
69
79
|
const keyboardFocusFrame = (0, _useAnimationFrame.useAnimationFrame)();
|
|
80
|
+
const keyboardRealignTimeout = (0, _useTimeout.useTimeout)();
|
|
70
81
|
const restoreKeyboardScrollAdjustment = (0, _useStableCallback.useStableCallback)(() => {
|
|
71
82
|
const adjustment = keyboardScrollAdjustmentRef.current;
|
|
72
83
|
if (!adjustment) {
|
|
@@ -134,46 +145,100 @@ function DrawerVirtualKeyboardProvider(props) {
|
|
|
134
145
|
const doc = (0, _owner.ownerDocument)(rootElement);
|
|
135
146
|
const win = (0, _owner.ownerWindow)(rootElement);
|
|
136
147
|
const visualViewport = win.visualViewport;
|
|
148
|
+
|
|
149
|
+
// Alignment scroll bookkeeping: destination stability, whether a scroll was issued,
|
|
150
|
+
// and the last observed progress so delayed passes can distinguish moving from stalled.
|
|
151
|
+
let keyboardScrollElement = null;
|
|
152
|
+
let keyboardScrollDestination = 0;
|
|
153
|
+
let keyboardScrollChecks = 0;
|
|
154
|
+
let keyboardScrollObserved = -1;
|
|
137
155
|
const setDrawerKeyboardInset = inset => {
|
|
138
156
|
rootElement.style.setProperty(_DrawerViewportCssVars.DrawerViewportCssVars.keyboardInset, `${Math.max(0, Math.ceil(inset))}px`);
|
|
139
157
|
};
|
|
140
|
-
const resetDrawerKeyboardInset = () => {
|
|
141
|
-
setDrawerKeyboardInset(0);
|
|
142
|
-
};
|
|
143
158
|
const clearFocusedKeyboardTarget = () => {
|
|
144
159
|
focusedKeyboardTargetRef.current = null;
|
|
145
|
-
|
|
160
|
+
keyboardScrollElement = null;
|
|
161
|
+
setDrawerKeyboardInset(0);
|
|
146
162
|
restoreKeyboardScrollAdjustment();
|
|
147
163
|
keyboardFocusFrame.cancel();
|
|
164
|
+
keyboardRealignTimeout.clear();
|
|
165
|
+
};
|
|
166
|
+
|
|
167
|
+
// WebKit's native reveal scroll can move the page even while the scroll lock hides
|
|
168
|
+
// overflow (e.g. when the software keyboard's previous/next field arrows move focus).
|
|
169
|
+
// While the drawer is modal, any window scroll during keyboard interaction is spurious,
|
|
170
|
+
// so pin the page to the position it had when the drawer opened.
|
|
171
|
+
const baseScrollX = win.scrollX;
|
|
172
|
+
const baseScrollY = win.scrollY;
|
|
173
|
+
const restoreWindowScroll = () => {
|
|
174
|
+
if (modal !== true || nestedDrawerOpen || !focusedKeyboardTargetRef.current || getKeyboardVisualViewport(win) == null) {
|
|
175
|
+
return false;
|
|
176
|
+
}
|
|
177
|
+
if (win.scrollX !== baseScrollX || win.scrollY !== baseScrollY) {
|
|
178
|
+
// Force an instant jump: the two-argument form defaults `behavior` to `auto`, which
|
|
179
|
+
// obeys the page's `scroll-behavior`, so a global `scroll-behavior: smooth` would
|
|
180
|
+
// animate the restore. The measurements that follow assume the page is already back
|
|
181
|
+
// at rest, and a smooth restore also re-emits `scroll`, re-entering this handler.
|
|
182
|
+
win.scrollTo({
|
|
183
|
+
left: baseScrollX,
|
|
184
|
+
top: baseScrollY,
|
|
185
|
+
behavior: 'instant'
|
|
186
|
+
});
|
|
187
|
+
return true;
|
|
188
|
+
}
|
|
189
|
+
return false;
|
|
190
|
+
};
|
|
191
|
+
|
|
192
|
+
// Focus moved by the drawer itself goes through `focusKeyboardInputWithoutPageScroll`,
|
|
193
|
+
// but native focus changes (the iOS keyboard's previous/next field arrows) commit
|
|
194
|
+
// WebKit's reveal scroll before `focusin` reaches us — cancelling it afterwards
|
|
195
|
+
// visibly jitters the sheet. `focusout` on the outgoing field fires before focus
|
|
196
|
+
// lands, so override the incoming field's geometry there and restore it in `focusin`.
|
|
197
|
+
let restorePreemptedFocus = null;
|
|
198
|
+
const consumePreemptedFocus = () => {
|
|
199
|
+
restorePreemptedFocus?.();
|
|
200
|
+
restorePreemptedFocus = null;
|
|
201
|
+
};
|
|
202
|
+
const preemptFocusReveal = (target, keyboardViewport) => {
|
|
203
|
+
consumePreemptedFocus();
|
|
204
|
+
|
|
205
|
+
// Native focus carries no preventScroll, so a fake off-screen rect would make WebKit
|
|
206
|
+
// scroll the drawer's own scroll containers thousands of pixels chasing it. Presenting
|
|
207
|
+
// the field as already centered in the visible band above the keyboard instead makes
|
|
208
|
+
// both the in-page reveal and the viewport pan no-ops.
|
|
209
|
+
const rect = target.getBoundingClientRect();
|
|
210
|
+
restorePreemptedFocus = overrideGeometryDuringFocus(target, (keyboardViewport.top + keyboardViewport.bottom - rect.top - rect.bottom) / 2);
|
|
148
211
|
};
|
|
149
212
|
const alignFocusedKeyboardTarget = () => {
|
|
213
|
+
// If focus never lands on a preempted target, the focusout-scheduled alignment still
|
|
214
|
+
// restores it on the next frame before paint.
|
|
215
|
+
consumePreemptedFocus();
|
|
150
216
|
const target = focusedKeyboardTargetRef.current;
|
|
151
217
|
// If the focused field is removed from the DOM without firing `focusout` (e.g. it is
|
|
152
218
|
// conditionally rendered away), any applied scroll slack is restored here on the next
|
|
153
219
|
// focus/viewport event or when the drawer closes. This self-corrects rather than
|
|
154
220
|
// tracking each field's lifecycle.
|
|
155
221
|
if (nestedDrawerOpen || !target || !(0, _utils.contains)(rootElement, target)) {
|
|
156
|
-
|
|
222
|
+
setDrawerKeyboardInset(0);
|
|
157
223
|
restoreKeyboardScrollAdjustment();
|
|
158
224
|
return;
|
|
159
225
|
}
|
|
226
|
+
|
|
227
|
+
// Undo any reveal scroll WebKit applied to the locked page before measuring, so the
|
|
228
|
+
// keyboard inset and alignment are computed against the resting viewport.
|
|
229
|
+
restoreWindowScroll();
|
|
160
230
|
const keyboardViewport = getKeyboardVisualViewport(win);
|
|
161
231
|
if (!keyboardViewport) {
|
|
162
|
-
|
|
232
|
+
setDrawerKeyboardInset(0);
|
|
163
233
|
restoreKeyboardScrollAdjustment();
|
|
164
234
|
return;
|
|
165
235
|
}
|
|
166
|
-
setDrawerKeyboardInset(
|
|
236
|
+
setDrawerKeyboardInset(Math.max(0, win.innerHeight - keyboardViewport.bottom));
|
|
167
237
|
const scrollTarget = findKeyboardScrollTarget(target, rootElement);
|
|
168
238
|
if (!scrollTarget) {
|
|
169
239
|
restoreKeyboardScrollAdjustment();
|
|
170
240
|
return;
|
|
171
241
|
}
|
|
172
|
-
if (!scrollTarget.isConnected || !(0, _utils.contains)(rootElement, scrollTarget)) {
|
|
173
|
-
resetDrawerKeyboardInset();
|
|
174
|
-
restoreKeyboardScrollAdjustment();
|
|
175
|
-
return;
|
|
176
|
-
}
|
|
177
242
|
const scrollTargetRect = scrollTarget.getBoundingClientRect();
|
|
178
243
|
const clippedBottom = Math.min(scrollTargetRect.bottom, keyboardViewport.bottom);
|
|
179
244
|
const overlap = Math.max(0, scrollTargetRect.bottom - keyboardViewport.bottom);
|
|
@@ -189,14 +254,70 @@ function DrawerVirtualKeyboardProvider(props) {
|
|
|
189
254
|
return;
|
|
190
255
|
}
|
|
191
256
|
const targetRect = target.getBoundingClientRect();
|
|
192
|
-
const
|
|
193
|
-
const
|
|
194
|
-
const
|
|
195
|
-
|
|
257
|
+
const nextScrollTop = scrollTarget.scrollTop + (targetRect.top + targetRect.bottom - visibleTop - visibleBottom) / 2;
|
|
258
|
+
const destination = Math.round((0, _clamp.clamp)(nextScrollTop, 0, maxScrollTop));
|
|
259
|
+
const settled = keyboardScrollElement === scrollTarget && Math.abs(keyboardScrollDestination - destination) <= 1;
|
|
260
|
+
if (!settled) {
|
|
261
|
+
// Commit the scroll only once the destination holds across two consecutive checks.
|
|
262
|
+
// Layout may still be reacting to the focus change (e.g. a footer sized by
|
|
263
|
+
// `:focus-within` resizing over a transition), and scrolling toward a
|
|
264
|
+
// mid-transition destination overshoots, then visibly pulls back once corrected.
|
|
265
|
+
// The destination is scroll-position-invariant, so an in-flight scroll of the
|
|
266
|
+
// container itself never defers the commit.
|
|
267
|
+
const checks = keyboardScrollElement === scrollTarget ? keyboardScrollChecks + 1 : 1;
|
|
268
|
+
keyboardScrollElement = scrollTarget;
|
|
269
|
+
keyboardScrollDestination = destination;
|
|
270
|
+
keyboardScrollChecks = checks;
|
|
271
|
+
keyboardScrollObserved = -1;
|
|
272
|
+
// Re-check next frame; give up and scroll anyway if layout never settles.
|
|
273
|
+
if (checks <= KEYBOARD_SETTLE_FRAME_LIMIT) {
|
|
274
|
+
keyboardFocusFrame.request(alignFocusedKeyboardTarget);
|
|
275
|
+
return;
|
|
276
|
+
}
|
|
277
|
+
} else if (keyboardScrollObserved >= 0) {
|
|
278
|
+
// A scroll toward this destination is already out. Leave it alone while it has
|
|
279
|
+
// arrived or is still progressing — re-issuing restarts the smooth-scroll easing
|
|
280
|
+
// curve, a visible stutter on every realign pass — and re-issue only when it
|
|
281
|
+
// stalled short (WebKit cancels in-flight smooth scrolls when its native reveal
|
|
282
|
+
// for the focus resolves).
|
|
283
|
+
const current = scrollTarget.scrollTop;
|
|
284
|
+
if (Math.abs(current - destination) <= 1) {
|
|
285
|
+
return;
|
|
286
|
+
}
|
|
287
|
+
if (current !== keyboardScrollObserved) {
|
|
288
|
+
keyboardScrollObserved = current;
|
|
289
|
+
return;
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
keyboardScrollElement = scrollTarget;
|
|
293
|
+
keyboardScrollDestination = destination;
|
|
294
|
+
keyboardScrollChecks = 0;
|
|
295
|
+
keyboardScrollObserved = scrollTarget.scrollTop;
|
|
296
|
+
animateKeyboardScroll(scrollTarget, destination);
|
|
196
297
|
};
|
|
197
298
|
const scheduleKeyboardFocusAlignment = () => {
|
|
198
299
|
keyboardFocusFrame.request(alignFocusedKeyboardTarget);
|
|
199
300
|
};
|
|
301
|
+
|
|
302
|
+
// When focus moves with the keyboard already up, no viewport resize events follow to
|
|
303
|
+
// re-run alignment, and the single frame-scheduled pass is unreliable: WebKit resolves
|
|
304
|
+
// the reveal for the focus asynchronously (a UI-process round trip) and cancels any
|
|
305
|
+
// in-flight scroll the pass started when it lands, and layout reacting to the focus
|
|
306
|
+
// change (e.g. a footer sized by `:focus-within` and the keyboard inset) settles only
|
|
307
|
+
// after its transition, so the pass measures stale geometry. Re-align on an interval
|
|
308
|
+
// until both settle; the alignment's scroll bookkeeping observes before re-issuing,
|
|
309
|
+
// so passes that find the scroll on course are inert.
|
|
310
|
+
const scheduleDelayedKeyboardRealign = () => {
|
|
311
|
+
let remainingPasses = KEYBOARD_REALIGN_MAX_PASSES;
|
|
312
|
+
const realign = () => {
|
|
313
|
+
alignFocusedKeyboardTarget();
|
|
314
|
+
remainingPasses -= 1;
|
|
315
|
+
if (remainingPasses > 0) {
|
|
316
|
+
keyboardRealignTimeout.start(KEYBOARD_REALIGN_INTERVAL, realign);
|
|
317
|
+
}
|
|
318
|
+
};
|
|
319
|
+
keyboardRealignTimeout.start(KEYBOARD_REALIGN_INTERVAL, realign);
|
|
320
|
+
};
|
|
200
321
|
const captureFocusedKeyboardTarget = eventTarget => {
|
|
201
322
|
if (nestedDrawerOpen) {
|
|
202
323
|
return false;
|
|
@@ -208,16 +329,56 @@ function DrawerVirtualKeyboardProvider(props) {
|
|
|
208
329
|
if (!target || !(0, _utils.contains)(rootElement, target)) {
|
|
209
330
|
return false;
|
|
210
331
|
}
|
|
332
|
+
|
|
333
|
+
// A new field starts a fresh alignment; the scroll bookkeeping must not carry
|
|
334
|
+
// over from the previous field's scroll.
|
|
335
|
+
if (focusedKeyboardTargetRef.current !== target) {
|
|
336
|
+
keyboardScrollElement = null;
|
|
337
|
+
}
|
|
211
338
|
focusedKeyboardTargetRef.current = target;
|
|
212
339
|
return true;
|
|
213
340
|
};
|
|
214
341
|
const handleFocusIn = event => {
|
|
215
|
-
|
|
216
|
-
|
|
342
|
+
// The programmatic transition is over once focus lands, which happens before
|
|
343
|
+
// `.focus()` returns. Any later `focusout` is the consumer's own — an `onFocus`
|
|
344
|
+
// handler that blurs or moves focus — and must be reconciled rather than
|
|
345
|
+
// suppressed, so stop suppressing here instead of waiting for `.focus()` to return.
|
|
346
|
+
programmaticKeyboardFocusRef.current = false;
|
|
347
|
+
consumePreemptedFocus();
|
|
348
|
+
if (!captureFocusedKeyboardTarget((0, _utils.getTarget)(event))) {
|
|
349
|
+
// Focus landed outside any drawer keyboard input. The `focusout` on the previous
|
|
350
|
+
// field normally clears the tracked target, but the tap path suppresses that
|
|
351
|
+
// `focusout` via `programmaticKeyboardFocusRef`, so a consumer `onFocus` handler that
|
|
352
|
+
// redirects focus out of the drawer would otherwise leave a stale target holding its
|
|
353
|
+
// inset, slack, and pending realign. Reconcile against the real focus here.
|
|
354
|
+
// A handler that ends focus entirely emits no `focusin` to reconcile from; that case
|
|
355
|
+
// is covered by clearing the suppression flag above so its `focusout` is handled.
|
|
356
|
+
clearFocusedKeyboardTarget();
|
|
357
|
+
return;
|
|
217
358
|
}
|
|
359
|
+
|
|
360
|
+
// Covers every way focus can land with the keyboard already up: native moves (the
|
|
361
|
+
// keyboard's previous/next arrows) and the tap path (which suppresses `focusout`
|
|
362
|
+
// handling via the programmatic flag).
|
|
363
|
+
if (getKeyboardVisualViewport(win) != null) {
|
|
364
|
+
scheduleDelayedKeyboardRealign();
|
|
365
|
+
}
|
|
366
|
+
scheduleKeyboardFocusAlignment();
|
|
218
367
|
};
|
|
219
368
|
const handleFocusOut = event => {
|
|
369
|
+
// The blur inside `focusKeyboardInputWithoutPageScroll` is followed synchronously by
|
|
370
|
+
// a re-focus; clearing state here would drop the keyboard inset for a frame.
|
|
371
|
+
if (programmaticKeyboardFocusRef.current) {
|
|
372
|
+
return;
|
|
373
|
+
}
|
|
220
374
|
if (captureFocusedKeyboardTarget(event.relatedTarget)) {
|
|
375
|
+
const target = focusedKeyboardTargetRef.current;
|
|
376
|
+
const keyboardViewport = getKeyboardVisualViewport(win);
|
|
377
|
+
// The delayed realign passes are scheduled by the `focusin` that follows once
|
|
378
|
+
// focus lands on the captured target.
|
|
379
|
+
if (target && keyboardViewport) {
|
|
380
|
+
preemptFocusReveal(target, keyboardViewport);
|
|
381
|
+
}
|
|
221
382
|
scheduleKeyboardFocusAlignment();
|
|
222
383
|
return;
|
|
223
384
|
}
|
|
@@ -232,25 +393,36 @@ function DrawerVirtualKeyboardProvider(props) {
|
|
|
232
393
|
if (visualViewport) {
|
|
233
394
|
cleanupListeners.push((0, _addEventListener.addEventListener)(visualViewport, 'resize', handleViewportUpdate), (0, _addEventListener.addEventListener)(visualViewport, 'scroll', handleViewportUpdate));
|
|
234
395
|
}
|
|
235
|
-
|
|
396
|
+
const handleWindowScroll = () => {
|
|
397
|
+
if (restoreWindowScroll()) {
|
|
398
|
+
// Recompute the keyboard inset once the page is back at rest; measurements taken
|
|
399
|
+
// mid-reveal (a non-zero visual viewport offset) inflate it and push the popup up.
|
|
400
|
+
scheduleKeyboardFocusAlignment();
|
|
401
|
+
}
|
|
402
|
+
};
|
|
403
|
+
|
|
404
|
+
// Once the user puts a finger down they own the scroll position. Stop both the frame settle
|
|
405
|
+
// loop, which can center after changing layout settles, and the delayed passes, which can't
|
|
406
|
+
// distinguish a user scroll from a reveal scroll WebKit canceled. A later focus or viewport
|
|
407
|
+
// change reschedules alignment if it's still needed.
|
|
408
|
+
const cancelKeyboardRealignOnPointerDown = () => {
|
|
409
|
+
keyboardFocusFrame.cancel();
|
|
410
|
+
keyboardRealignTimeout.clear();
|
|
411
|
+
keyboardScrollElement = null;
|
|
412
|
+
};
|
|
413
|
+
cleanupListeners.push((0, _addEventListener.addEventListener)(doc, 'focusin', handleFocusIn, true), (0, _addEventListener.addEventListener)(doc, 'focusout', handleFocusOut, true), (0, _addEventListener.addEventListener)(win, 'scroll', handleWindowScroll), (0, _addEventListener.addEventListener)(doc, 'pointerdown', cancelKeyboardRealignOnPointerDown, true));
|
|
236
414
|
if (captureFocusedKeyboardTarget((0, _utils.activeElement)(doc))) {
|
|
237
415
|
scheduleKeyboardFocusAlignment();
|
|
238
416
|
}
|
|
239
417
|
return () => {
|
|
240
418
|
cleanupListeners.forEach(cleanup => cleanup());
|
|
419
|
+
consumePreemptedFocus();
|
|
241
420
|
clearFocusedKeyboardTarget();
|
|
242
421
|
rootElement.style.removeProperty(_DrawerViewportCssVars.DrawerViewportCssVars.keyboardInset);
|
|
243
422
|
};
|
|
244
|
-
}, [animateKeyboardScroll, keyboardFocusFrame, mounted, nestedDrawerOpen, open, restoreKeyboardScrollAdjustment, rootElement, setKeyboardScrollSlack]);
|
|
423
|
+
}, [animateKeyboardScroll, keyboardFocusFrame, keyboardRealignTimeout, modal, mounted, nestedDrawerOpen, open, restoreKeyboardScrollAdjustment, rootElement, setKeyboardScrollSlack]);
|
|
245
424
|
const onTouchStart = (0, _useStableCallback.useStableCallback)(event => {
|
|
246
|
-
if (!open || !mounted || nestedDrawerOpen) {
|
|
247
|
-
resetTouchTrackingState();
|
|
248
|
-
return;
|
|
249
|
-
}
|
|
250
425
|
const touch = event.touches[0];
|
|
251
|
-
if (!touch) {
|
|
252
|
-
return;
|
|
253
|
-
}
|
|
254
426
|
pendingKeyboardFocusMovedRef.current = false;
|
|
255
427
|
keyboardTouchStartRef.current = {
|
|
256
428
|
x: touch.clientX,
|
|
@@ -276,9 +448,9 @@ function DrawerVirtualKeyboardProvider(props) {
|
|
|
276
448
|
return;
|
|
277
449
|
}
|
|
278
450
|
const touch = event.changedTouches[0] ?? event.touches[0];
|
|
279
|
-
const
|
|
451
|
+
const root = rootElement.getRootNode();
|
|
280
452
|
const nativeEventTarget = (0, _utils.getTarget)(event.nativeEvent);
|
|
281
|
-
const pointTarget = touch ? resolveKeyboardTouchTargetFromPoint(
|
|
453
|
+
const pointTarget = touch ? resolveKeyboardTouchTargetFromPoint(root, touch.clientX, touch.clientY) : null;
|
|
282
454
|
|
|
283
455
|
// The lift point landed on another interactive/label element; let its native tap
|
|
284
456
|
// through instead of stealing it for the touchstart input.
|
|
@@ -307,15 +479,24 @@ function DrawerVirtualKeyboardProvider(props) {
|
|
|
307
479
|
|
|
308
480
|
// Already focused with the keyboard up: let the native tap through so it can
|
|
309
481
|
// reposition the caret, rather than blurring and re-focusing the same input.
|
|
310
|
-
if ((0, _utils.activeElement)((0, _owner.ownerDocument)(keyboardFocusTarget)) === keyboardFocusTarget &&
|
|
482
|
+
if ((0, _utils.activeElement)((0, _owner.ownerDocument)(keyboardFocusTarget)) === keyboardFocusTarget && (!win.visualViewport || getKeyboardVisualViewport(win) != null)) {
|
|
311
483
|
resetTouchTrackingState();
|
|
312
484
|
return;
|
|
313
485
|
}
|
|
314
486
|
|
|
315
487
|
// iOS only opens the software keyboard when focus happens synchronously
|
|
316
|
-
// inside the touch gesture.
|
|
488
|
+
// inside the touch gesture. The flag suppresses the `focusout` cleanup the
|
|
489
|
+
// intermediate blur would otherwise trigger, so the keyboard inset isn't
|
|
490
|
+
// dropped for a frame between the blur and the re-focus. It is cleared by the
|
|
491
|
+
// `focusin` that lands, so only that blur is suppressed; the `finally` is the
|
|
492
|
+
// backstop for a target that never takes focus.
|
|
317
493
|
event.preventDefault();
|
|
318
|
-
|
|
494
|
+
programmaticKeyboardFocusRef.current = true;
|
|
495
|
+
try {
|
|
496
|
+
focusKeyboardInputWithoutPageScroll(keyboardFocusTarget);
|
|
497
|
+
} finally {
|
|
498
|
+
programmaticKeyboardFocusRef.current = false;
|
|
499
|
+
}
|
|
319
500
|
// Preventing the touchend default also suppresses the compatibility mouse
|
|
320
501
|
// events, including `click`; redispatch an untrusted replacement on the
|
|
321
502
|
// original tap target so click handlers still run with the tap coordinates.
|
|
@@ -360,13 +541,16 @@ function resolveKeyboardInputTarget(target) {
|
|
|
360
541
|
return (0, _dom.isHTMLElement)(control) && isKeyboardInputElement(control) ? control : null;
|
|
361
542
|
}
|
|
362
543
|
function resolveKeyboardTouchTarget(target) {
|
|
544
|
+
if (!(0, _dom.isHTMLElement)(target)) {
|
|
545
|
+
return null;
|
|
546
|
+
}
|
|
363
547
|
const focusTarget = resolveKeyboardInputTarget(target);
|
|
364
548
|
if (!focusTarget) {
|
|
365
549
|
return null;
|
|
366
550
|
}
|
|
367
551
|
return {
|
|
368
552
|
focusTarget,
|
|
369
|
-
clickTarget:
|
|
553
|
+
clickTarget: target
|
|
370
554
|
};
|
|
371
555
|
}
|
|
372
556
|
|
|
@@ -379,14 +563,16 @@ function getContentEditableHost(element) {
|
|
|
379
563
|
}
|
|
380
564
|
return host;
|
|
381
565
|
}
|
|
382
|
-
function resolveKeyboardTouchTargetFromPoint(
|
|
383
|
-
const exactTarget = (0, _getElementAtPoint.getElementAtPoint)(
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
566
|
+
function resolveKeyboardTouchTargetFromPoint(root, clientX, clientY) {
|
|
567
|
+
const exactTarget = (0, _getElementAtPoint.getElementAtPoint)(root, clientX, clientY);
|
|
568
|
+
if ((0, _dom.isHTMLElement)(exactTarget)) {
|
|
569
|
+
const exactKeyboardTarget = resolveKeyboardInputTarget(exactTarget);
|
|
570
|
+
if (exactKeyboardTarget) {
|
|
571
|
+
return {
|
|
572
|
+
focusTarget: exactKeyboardTarget,
|
|
573
|
+
clickTarget: exactTarget
|
|
574
|
+
};
|
|
575
|
+
}
|
|
390
576
|
}
|
|
391
577
|
|
|
392
578
|
// Probing nearby points compensates for iOS retargeting taps while the page reacts
|
|
@@ -399,7 +585,7 @@ function resolveKeyboardTouchTargetFromPoint(doc, clientX, clientY) {
|
|
|
399
585
|
return KEYBOARD_TAP_BLOCKED;
|
|
400
586
|
}
|
|
401
587
|
for (const [offsetX, offsetY] of [[0, INPUT_TAP_HIT_SLOP], [0, -INPUT_TAP_HIT_SLOP], [INPUT_TAP_HIT_SLOP, 0], [-INPUT_TAP_HIT_SLOP, 0]]) {
|
|
402
|
-
const keyboardTarget = resolveKeyboardInputTarget((0, _getElementAtPoint.getElementAtPoint)(
|
|
588
|
+
const keyboardTarget = resolveKeyboardInputTarget((0, _getElementAtPoint.getElementAtPoint)(root, clientX + offsetX, clientY + offsetY));
|
|
403
589
|
if (keyboardTarget) {
|
|
404
590
|
return {
|
|
405
591
|
focusTarget: keyboardTarget,
|
|
@@ -423,15 +609,10 @@ function dispatchKeyboardClick(target, touch) {
|
|
|
423
609
|
}
|
|
424
610
|
function focusKeyboardInputWithoutPageScroll(target) {
|
|
425
611
|
const wasFocused = (0, _utils.activeElement)((0, _owner.ownerDocument)(target)) === target;
|
|
426
|
-
const previousOpacity = target.style.opacity;
|
|
427
|
-
const previousTransform = target.style.transform;
|
|
428
|
-
const previousTransition = target.style.transition;
|
|
429
|
-
|
|
430
612
|
// iOS Safari can still scroll the page for transformed sheets even with preventScroll.
|
|
431
|
-
// Move the input off-screen only for the synchronous focus call
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
target.style.transform = 'translateY(-2000px)';
|
|
613
|
+
// Move the input off-screen only for the synchronous focus call; `preventScroll`
|
|
614
|
+
// suppresses the in-page ancestor scrolling that would otherwise chase the fake rect.
|
|
615
|
+
const restoreStyles = overrideGeometryDuringFocus(target, -2000);
|
|
435
616
|
try {
|
|
436
617
|
if (wasFocused) {
|
|
437
618
|
target.blur();
|
|
@@ -440,10 +621,25 @@ function focusKeyboardInputWithoutPageScroll(target) {
|
|
|
440
621
|
preventScroll: true
|
|
441
622
|
});
|
|
442
623
|
} finally {
|
|
624
|
+
restoreStyles();
|
|
625
|
+
}
|
|
626
|
+
}
|
|
627
|
+
|
|
628
|
+
// Overrides the painted geometry WebKit samples when an element gains focus. The rect is
|
|
629
|
+
// hidden (opacity) rather than detached so layout is unaffected; the caller must restore
|
|
630
|
+
// synchronously before the next paint.
|
|
631
|
+
function overrideGeometryDuringFocus(target, translateY) {
|
|
632
|
+
const previousOpacity = target.style.opacity;
|
|
633
|
+
const previousTransform = target.style.transform;
|
|
634
|
+
const previousTransition = target.style.transition;
|
|
635
|
+
target.style.transition = 'none';
|
|
636
|
+
target.style.opacity = '0';
|
|
637
|
+
target.style.transform = `translateY(${translateY}px)`;
|
|
638
|
+
return () => {
|
|
443
639
|
target.style.opacity = previousOpacity;
|
|
444
640
|
target.style.transform = previousTransform;
|
|
445
641
|
target.style.transition = previousTransition;
|
|
446
|
-
}
|
|
642
|
+
};
|
|
447
643
|
}
|
|
448
644
|
function findKeyboardScrollTarget(target, root) {
|
|
449
645
|
// Start at the parent: scrolling the focused field's own content (an overflowing
|
|
@@ -470,10 +666,4 @@ function getKeyboardVisualViewport(win) {
|
|
|
470
666
|
top,
|
|
471
667
|
bottom: Math.min(win.innerHeight, top + visualViewport.height)
|
|
472
668
|
};
|
|
473
|
-
}
|
|
474
|
-
function getDrawerKeyboardInset(win, keyboardViewport) {
|
|
475
|
-
return Math.max(0, win.innerHeight - keyboardViewport.bottom);
|
|
476
|
-
}
|
|
477
|
-
function isKeyboardVisualViewportOpen(win) {
|
|
478
|
-
return !win.visualViewport || getKeyboardVisualViewport(win) != null;
|
|
479
669
|
}
|