@base-ui/react 1.2.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +148 -1
- package/accordion/header/AccordionHeader.d.ts +4 -2
- package/accordion/item/AccordionItem.d.ts +10 -4
- package/accordion/item/AccordionItemContext.d.ts +2 -2
- package/accordion/item/stateAttributesMapping.d.ts +2 -2
- package/accordion/panel/AccordionPanel.d.ts +6 -3
- package/accordion/root/AccordionRoot.d.ts +19 -10
- package/accordion/root/AccordionRootContext.d.ts +7 -7
- package/accordion/trigger/AccordionTrigger.d.ts +4 -2
- package/accordion/trigger/AccordionTrigger.js +3 -1
- package/alert-dialog/root/AlertDialogRoot.d.ts +2 -0
- package/autocomplete/index.d.ts +1 -0
- package/autocomplete/index.parts.d.ts +1 -0
- package/autocomplete/index.parts.js +7 -0
- package/autocomplete/root/AutocompleteRoot.d.ts +4 -4
- package/autocomplete/root/AutocompleteRoot.js +4 -1
- package/avatar/fallback/AvatarFallback.d.ts +3 -6
- package/avatar/fallback/AvatarFallback.js +4 -32
- package/avatar/image/AvatarImage.d.ts +6 -3
- package/avatar/image/AvatarImage.js +2 -3
- package/avatar/image/AvatarImageDataAttributes.d.ts +10 -0
- package/avatar/image/AvatarImageDataAttributes.js +18 -0
- package/avatar/root/AvatarRoot.d.ts +4 -1
- package/checkbox/indicator/CheckboxIndicator.d.ts +6 -3
- package/checkbox/root/CheckboxRoot.d.ts +3 -3
- package/checkbox/root/CheckboxRoot.js +4 -1
- package/checkbox/root/CheckboxRootContext.d.ts +4 -4
- package/checkbox/utils/useStateAttributesMapping.d.ts +2 -2
- package/checkbox-group/CheckboxGroup.d.ts +3 -3
- package/checkbox-group/CheckboxGroupContext.d.ts +2 -2
- package/checkbox-group/useCheckboxGroupParent.d.ts +2 -5
- package/collapsible/panel/CollapsiblePanel.d.ts +6 -3
- package/collapsible/panel/useCollapsiblePanel.d.ts +2 -5
- package/collapsible/root/CollapsibleRoot.d.ts +3 -3
- package/collapsible/root/CollapsibleRootContext.d.ts +4 -4
- package/collapsible/root/stateAttributesMapping.d.ts +2 -2
- package/collapsible/root/useCollapsibleRoot.d.ts +2 -5
- package/collapsible/trigger/CollapsibleTrigger.d.ts +4 -2
- package/combobox/arrow/ComboboxArrow.d.ts +10 -1
- package/combobox/backdrop/ComboboxBackdrop.d.ts +4 -1
- package/combobox/chip/ComboboxChip.d.ts +1 -1
- package/combobox/chip-remove/ComboboxChipRemove.d.ts +1 -1
- package/combobox/chips/ComboboxChips.d.ts +1 -1
- package/combobox/clear/ComboboxClear.d.ts +4 -1
- package/combobox/collection/ComboboxCollection.d.ts +2 -0
- package/combobox/empty/ComboboxEmpty.d.ts +1 -1
- package/combobox/group/ComboboxGroup.d.ts +1 -1
- package/combobox/group-label/ComboboxGroupLabel.d.ts +1 -1
- package/combobox/icon/ComboboxIcon.d.ts +1 -1
- package/combobox/index.d.ts +2 -0
- package/combobox/index.parts.d.ts +2 -0
- package/combobox/index.parts.js +14 -0
- package/combobox/input/ComboboxInput.d.ts +3 -3
- package/combobox/input/ComboboxInput.js +22 -5
- package/combobox/input-group/ComboboxInputGroup.d.ts +40 -0
- package/combobox/input-group/ComboboxInputGroup.js +68 -0
- package/combobox/input-group/ComboboxInputGroupDataAttributes.d.ts +55 -0
- package/combobox/input-group/ComboboxInputGroupDataAttributes.js +62 -0
- package/combobox/item/ComboboxItem.d.ts +1 -1
- package/combobox/item/ComboboxItem.js +2 -1
- package/combobox/item-indicator/ComboboxItemIndicator.d.ts +7 -1
- package/combobox/item-indicator/ComboboxItemIndicatorDataAttributes.d.ts +10 -0
- package/combobox/item-indicator/ComboboxItemIndicatorDataAttributes.js +18 -0
- package/combobox/label/ComboboxLabel.d.ts +16 -0
- package/combobox/label/ComboboxLabel.js +68 -0
- package/combobox/list/ComboboxList.d.ts +1 -1
- package/combobox/popup/ComboboxPopup.d.ts +21 -3
- package/combobox/popup/ComboboxPopup.js +10 -2
- package/combobox/portal/ComboboxPortal.d.ts +3 -4
- package/combobox/positioner/ComboboxPositioner.d.ts +14 -2
- package/combobox/positioner/ComboboxPositioner.js +3 -2
- package/combobox/root/AriaCombobox.d.ts +9 -8
- package/combobox/root/AriaCombobox.js +14 -6
- package/combobox/root/ComboboxRoot.d.ts +4 -4
- package/combobox/row/ComboboxRow.d.ts +1 -1
- package/combobox/status/ComboboxStatus.d.ts +1 -1
- package/combobox/store.d.ts +10 -4
- package/combobox/store.js +2 -0
- package/combobox/trigger/ComboboxTrigger.d.ts +3 -3
- package/combobox/trigger/ComboboxTrigger.js +5 -2
- package/combobox/utils/ComboboxInternalDismissButton.d.ts +5 -0
- package/combobox/utils/ComboboxInternalDismissButton.js +44 -0
- package/composite/item/CompositeItem.d.ts +3 -1
- package/composite/list/CompositeList.d.ts +3 -1
- package/composite/list/useCompositeListItem.d.ts +1 -1
- package/composite/root/CompositeRoot.d.ts +4 -2
- package/composite/root/useCompositeRoot.d.ts +1 -1
- package/context-menu/trigger/ContextMenuTrigger.d.ts +3 -3
- package/dialog/backdrop/DialogBackdrop.d.ts +4 -1
- package/dialog/close/DialogClose.d.ts +1 -1
- package/dialog/description/DialogDescription.d.ts +1 -1
- package/dialog/popup/DialogPopup.d.ts +6 -3
- package/dialog/portal/DialogPortal.d.ts +4 -5
- package/dialog/root/DialogRoot.d.ts +8 -3
- package/dialog/root/useDialogRoot.d.ts +3 -7
- package/dialog/root/useDialogRoot.js +2 -5
- package/dialog/title/DialogTitle.d.ts +1 -1
- package/dialog/trigger/DialogTrigger.d.ts +1 -1
- package/dialog/viewport/DialogViewport.d.ts +3 -0
- package/direction-provider/DirectionProvider.d.ts +2 -0
- package/drawer/backdrop/DrawerBackdrop.d.ts +4 -1
- package/drawer/backdrop/DrawerBackdropDataAttributes.d.ts +18 -0
- package/drawer/backdrop/DrawerBackdropDataAttributes.js +26 -0
- package/drawer/close/DrawerClose.d.ts +1 -1
- package/drawer/content/DrawerContent.d.ts +1 -1
- package/drawer/content/DrawerContent.js +2 -1
- package/drawer/content/DrawerContentDataAttributes.d.ts +1 -0
- package/drawer/content/DrawerContentDataAttributes.js +7 -0
- package/drawer/description/DrawerDescription.d.ts +1 -1
- package/drawer/indent/DrawerIndent.d.ts +3 -2
- package/drawer/indent/DrawerIndent.js +2 -1
- package/drawer/indent-background/DrawerIndentBackground.d.ts +5 -3
- package/drawer/indent-background/DrawerIndentBackground.js +4 -2
- package/drawer/index.d.ts +2 -1
- package/drawer/index.js +3 -3
- package/drawer/index.parts.d.ts +1 -0
- package/drawer/index.parts.js +7 -0
- package/drawer/popup/DrawerPopup.d.ts +6 -3
- package/drawer/popup/DrawerPopup.js +59 -2
- package/drawer/popup/DrawerPopupDataAttributes.d.ts +16 -0
- package/drawer/popup/DrawerPopupDataAttributes.js +18 -1
- package/drawer/portal/DrawerPortal.d.ts +2 -2
- package/drawer/provider/DrawerProvider.d.ts +2 -2
- package/drawer/provider/DrawerProvider.js +2 -2
- package/drawer/root/DrawerRoot.d.ts +5 -3
- package/drawer/root/DrawerRoot.js +6 -2
- package/drawer/swipe-area/DrawerSwipeArea.d.ts +1 -1
- package/drawer/swipe-area/DrawerSwipeArea.js +12 -10
- package/drawer/swipe-area/DrawerSwipeAreaDataAttributes.d.ts +23 -0
- package/drawer/swipe-area/DrawerSwipeAreaDataAttributes.js +31 -0
- package/drawer/title/DrawerTitle.d.ts +1 -1
- package/drawer/trigger/DrawerTrigger.d.ts +1 -1
- package/drawer/viewport/DrawerViewport.d.ts +4 -1
- package/drawer/viewport/DrawerViewport.js +165 -43
- package/drawer/viewport/DrawerViewportDataAttributes.d.ts +22 -0
- package/drawer/viewport/DrawerViewportDataAttributes.js +30 -0
- package/esm/accordion/header/AccordionHeader.d.ts +4 -2
- package/esm/accordion/item/AccordionItem.d.ts +10 -4
- package/esm/accordion/item/AccordionItemContext.d.ts +2 -2
- package/esm/accordion/item/stateAttributesMapping.d.ts +2 -2
- package/esm/accordion/panel/AccordionPanel.d.ts +6 -3
- package/esm/accordion/root/AccordionRoot.d.ts +19 -10
- package/esm/accordion/root/AccordionRootContext.d.ts +7 -7
- package/esm/accordion/trigger/AccordionTrigger.d.ts +4 -2
- package/esm/accordion/trigger/AccordionTrigger.js +3 -1
- package/esm/alert-dialog/root/AlertDialogRoot.d.ts +2 -0
- package/esm/autocomplete/index.d.ts +1 -0
- package/esm/autocomplete/index.parts.d.ts +1 -0
- package/esm/autocomplete/index.parts.js +1 -0
- package/esm/autocomplete/root/AutocompleteRoot.d.ts +4 -4
- package/esm/autocomplete/root/AutocompleteRoot.js +4 -1
- package/esm/avatar/fallback/AvatarFallback.d.ts +3 -6
- package/esm/avatar/fallback/AvatarFallback.js +4 -31
- package/esm/avatar/image/AvatarImage.d.ts +6 -3
- package/esm/avatar/image/AvatarImage.js +2 -3
- package/esm/avatar/image/AvatarImageDataAttributes.d.ts +10 -0
- package/esm/avatar/image/AvatarImageDataAttributes.js +12 -0
- package/esm/avatar/root/AvatarRoot.d.ts +4 -1
- package/esm/checkbox/indicator/CheckboxIndicator.d.ts +6 -3
- package/esm/checkbox/root/CheckboxRoot.d.ts +3 -3
- package/esm/checkbox/root/CheckboxRoot.js +4 -1
- package/esm/checkbox/root/CheckboxRootContext.d.ts +4 -4
- package/esm/checkbox/utils/useStateAttributesMapping.d.ts +2 -2
- package/esm/checkbox-group/CheckboxGroup.d.ts +3 -3
- package/esm/checkbox-group/CheckboxGroupContext.d.ts +2 -2
- package/esm/checkbox-group/useCheckboxGroupParent.d.ts +2 -5
- package/esm/collapsible/panel/CollapsiblePanel.d.ts +6 -3
- package/esm/collapsible/panel/useCollapsiblePanel.d.ts +2 -5
- package/esm/collapsible/root/CollapsibleRoot.d.ts +3 -3
- package/esm/collapsible/root/CollapsibleRootContext.d.ts +4 -4
- package/esm/collapsible/root/stateAttributesMapping.d.ts +2 -2
- package/esm/collapsible/root/useCollapsibleRoot.d.ts +2 -5
- package/esm/collapsible/trigger/CollapsibleTrigger.d.ts +4 -2
- package/esm/combobox/arrow/ComboboxArrow.d.ts +10 -1
- package/esm/combobox/backdrop/ComboboxBackdrop.d.ts +4 -1
- package/esm/combobox/chip/ComboboxChip.d.ts +1 -1
- package/esm/combobox/chip-remove/ComboboxChipRemove.d.ts +1 -1
- package/esm/combobox/chips/ComboboxChips.d.ts +1 -1
- package/esm/combobox/clear/ComboboxClear.d.ts +4 -1
- package/esm/combobox/collection/ComboboxCollection.d.ts +2 -0
- package/esm/combobox/empty/ComboboxEmpty.d.ts +1 -1
- package/esm/combobox/group/ComboboxGroup.d.ts +1 -1
- package/esm/combobox/group-label/ComboboxGroupLabel.d.ts +1 -1
- package/esm/combobox/icon/ComboboxIcon.d.ts +1 -1
- package/esm/combobox/index.d.ts +2 -0
- package/esm/combobox/index.parts.d.ts +2 -0
- package/esm/combobox/index.parts.js +2 -0
- package/esm/combobox/input/ComboboxInput.d.ts +3 -3
- package/esm/combobox/input/ComboboxInput.js +22 -5
- package/esm/combobox/input-group/ComboboxInputGroup.d.ts +40 -0
- package/esm/combobox/input-group/ComboboxInputGroup.js +63 -0
- package/esm/combobox/input-group/ComboboxInputGroupDataAttributes.d.ts +55 -0
- package/esm/combobox/input-group/ComboboxInputGroupDataAttributes.js +56 -0
- package/esm/combobox/item/ComboboxItem.d.ts +1 -1
- package/esm/combobox/item/ComboboxItem.js +2 -1
- package/esm/combobox/item-indicator/ComboboxItemIndicator.d.ts +7 -1
- package/esm/combobox/item-indicator/ComboboxItemIndicatorDataAttributes.d.ts +10 -0
- package/esm/combobox/item-indicator/ComboboxItemIndicatorDataAttributes.js +12 -0
- package/esm/combobox/label/ComboboxLabel.d.ts +16 -0
- package/esm/combobox/label/ComboboxLabel.js +63 -0
- package/esm/combobox/list/ComboboxList.d.ts +1 -1
- package/esm/combobox/popup/ComboboxPopup.d.ts +21 -3
- package/esm/combobox/popup/ComboboxPopup.js +11 -3
- package/esm/combobox/portal/ComboboxPortal.d.ts +3 -4
- package/esm/combobox/positioner/ComboboxPositioner.d.ts +14 -2
- package/esm/combobox/positioner/ComboboxPositioner.js +3 -2
- package/esm/combobox/root/AriaCombobox.d.ts +9 -8
- package/esm/combobox/root/AriaCombobox.js +14 -6
- package/esm/combobox/root/ComboboxRoot.d.ts +4 -4
- package/esm/combobox/row/ComboboxRow.d.ts +1 -1
- package/esm/combobox/status/ComboboxStatus.d.ts +1 -1
- package/esm/combobox/store.d.ts +10 -4
- package/esm/combobox/store.js +2 -0
- package/esm/combobox/trigger/ComboboxTrigger.d.ts +3 -3
- package/esm/combobox/trigger/ComboboxTrigger.js +5 -2
- package/esm/combobox/utils/ComboboxInternalDismissButton.d.ts +5 -0
- package/esm/combobox/utils/ComboboxInternalDismissButton.js +38 -0
- package/esm/composite/item/CompositeItem.d.ts +3 -1
- package/esm/composite/list/CompositeList.d.ts +3 -1
- package/esm/composite/list/useCompositeListItem.d.ts +1 -1
- package/esm/composite/root/CompositeRoot.d.ts +4 -2
- package/esm/composite/root/useCompositeRoot.d.ts +1 -1
- package/esm/context-menu/trigger/ContextMenuTrigger.d.ts +3 -3
- package/esm/dialog/backdrop/DialogBackdrop.d.ts +4 -1
- package/esm/dialog/close/DialogClose.d.ts +1 -1
- package/esm/dialog/description/DialogDescription.d.ts +1 -1
- package/esm/dialog/popup/DialogPopup.d.ts +6 -3
- package/esm/dialog/portal/DialogPortal.d.ts +4 -5
- package/esm/dialog/root/DialogRoot.d.ts +8 -3
- package/esm/dialog/root/useDialogRoot.d.ts +3 -7
- package/esm/dialog/root/useDialogRoot.js +2 -5
- package/esm/dialog/title/DialogTitle.d.ts +1 -1
- package/esm/dialog/trigger/DialogTrigger.d.ts +1 -1
- package/esm/dialog/viewport/DialogViewport.d.ts +3 -0
- package/esm/direction-provider/DirectionProvider.d.ts +2 -0
- package/esm/drawer/backdrop/DrawerBackdrop.d.ts +4 -1
- package/esm/drawer/backdrop/DrawerBackdropDataAttributes.d.ts +18 -0
- package/esm/drawer/backdrop/DrawerBackdropDataAttributes.js +20 -0
- package/esm/drawer/close/DrawerClose.d.ts +1 -1
- package/esm/drawer/content/DrawerContent.d.ts +1 -1
- package/esm/drawer/content/DrawerContent.js +2 -1
- package/esm/drawer/content/DrawerContentDataAttributes.d.ts +1 -0
- package/esm/drawer/content/DrawerContentDataAttributes.js +1 -0
- package/esm/drawer/description/DrawerDescription.d.ts +1 -1
- package/esm/drawer/indent/DrawerIndent.d.ts +3 -2
- package/esm/drawer/indent/DrawerIndent.js +2 -1
- package/esm/drawer/indent-background/DrawerIndentBackground.d.ts +5 -3
- package/esm/drawer/indent-background/DrawerIndentBackground.js +4 -2
- package/esm/drawer/index.d.ts +2 -1
- package/esm/drawer/index.js +1 -1
- package/esm/drawer/index.parts.d.ts +1 -0
- package/esm/drawer/index.parts.js +1 -0
- package/esm/drawer/popup/DrawerPopup.d.ts +6 -3
- package/esm/drawer/popup/DrawerPopup.js +59 -2
- package/esm/drawer/popup/DrawerPopupDataAttributes.d.ts +16 -0
- package/esm/drawer/popup/DrawerPopupDataAttributes.js +18 -1
- package/esm/drawer/portal/DrawerPortal.d.ts +2 -2
- package/esm/drawer/provider/DrawerProvider.d.ts +2 -2
- package/esm/drawer/provider/DrawerProvider.js +2 -2
- package/esm/drawer/root/DrawerRoot.d.ts +5 -3
- package/esm/drawer/root/DrawerRoot.js +6 -2
- package/esm/drawer/swipe-area/DrawerSwipeArea.d.ts +1 -1
- package/esm/drawer/swipe-area/DrawerSwipeArea.js +12 -10
- package/esm/drawer/swipe-area/DrawerSwipeAreaDataAttributes.d.ts +23 -0
- package/esm/drawer/swipe-area/DrawerSwipeAreaDataAttributes.js +25 -0
- package/esm/drawer/title/DrawerTitle.d.ts +1 -1
- package/esm/drawer/trigger/DrawerTrigger.d.ts +1 -1
- package/esm/drawer/viewport/DrawerViewport.d.ts +4 -1
- package/esm/drawer/viewport/DrawerViewport.js +165 -43
- package/esm/drawer/viewport/DrawerViewportDataAttributes.d.ts +22 -0
- package/esm/drawer/viewport/DrawerViewportDataAttributes.js +24 -0
- package/esm/field/control/FieldControl.d.ts +3 -3
- package/esm/field/description/FieldDescription.d.ts +3 -3
- package/esm/field/error/FieldError.d.ts +7 -4
- package/esm/field/error/FieldErrorDataAttributes.d.ts +8 -0
- package/esm/field/error/FieldErrorDataAttributes.js +10 -1
- package/esm/field/item/FieldItem.d.ts +4 -3
- package/esm/field/item/FieldItem.js +2 -2
- package/esm/field/label/FieldLabel.d.ts +3 -3
- package/esm/field/label/FieldLabel.js +6 -51
- package/esm/field/root/FieldRoot.d.ts +19 -2
- package/esm/field/root/FieldRoot.js +2 -1
- package/esm/field/root/FieldRootContext.d.ts +2 -2
- package/esm/field/root/FieldRootContext.js +6 -13
- package/esm/field/root/useFieldValidation.js +5 -4
- package/esm/field/utils/constants.d.ts +3 -0
- package/esm/field/utils/constants.js +11 -0
- package/esm/field/validity/FieldValidity.d.ts +7 -1
- package/esm/fieldset/legend/FieldsetLegend.d.ts +1 -1
- package/esm/fieldset/root/FieldsetRoot.d.ts +1 -1
- package/esm/floating-ui-react/components/FloatingDelayGroup.js +1 -1
- package/esm/floating-ui-react/components/FloatingFocusManager.d.ts +12 -7
- package/esm/floating-ui-react/components/FloatingFocusManager.js +31 -27
- package/esm/floating-ui-react/components/FloatingPortal.d.ts +6 -4
- package/esm/floating-ui-react/hooks/useClick.d.ts +2 -2
- package/esm/floating-ui-react/hooks/useClientPoint.d.ts +1 -1
- package/esm/floating-ui-react/hooks/useDismiss.d.ts +8 -12
- package/esm/floating-ui-react/hooks/useDismiss.js +320 -261
- package/esm/floating-ui-react/hooks/useFloatingRootContext.d.ts +2 -2
- package/esm/floating-ui-react/hooks/useFocus.d.ts +1 -1
- package/esm/floating-ui-react/hooks/useHover.d.ts +6 -14
- package/esm/floating-ui-react/hooks/useHover.js +2 -27
- package/esm/floating-ui-react/hooks/useHoverFloatingInteraction.d.ts +2 -3
- package/esm/floating-ui-react/hooks/useHoverFloatingInteraction.js +55 -71
- package/esm/floating-ui-react/hooks/useHoverInteractionSharedState.d.ts +12 -3
- package/esm/floating-ui-react/hooks/useHoverInteractionSharedState.js +30 -3
- package/esm/floating-ui-react/hooks/useHoverReferenceInteraction.d.ts +8 -3
- package/esm/floating-ui-react/hooks/useHoverReferenceInteraction.js +59 -81
- package/esm/floating-ui-react/hooks/useHoverShared.d.ts +28 -0
- package/esm/floating-ui-react/hooks/useHoverShared.js +26 -0
- package/esm/floating-ui-react/hooks/useListNavigation.d.ts +4 -4
- package/esm/floating-ui-react/hooks/useListNavigation.js +7 -3
- package/esm/floating-ui-react/hooks/useRole.d.ts +1 -1
- package/esm/floating-ui-react/hooks/useTypeahead.d.ts +7 -1
- package/esm/floating-ui-react/hooks/useTypeahead.js +30 -14
- package/esm/floating-ui-react/safePolygon.d.ts +2 -6
- package/esm/floating-ui-react/safePolygon.js +149 -119
- package/esm/floating-ui-react/types.d.ts +5 -4
- package/esm/floating-ui-react/utils/composite.d.ts +1 -0
- package/esm/floating-ui-react/utils/composite.js +128 -129
- package/esm/floating-ui-react/utils/markOthers.d.ts +7 -1
- package/esm/floating-ui-react/utils/markOthers.js +119 -81
- package/esm/form/Form.d.ts +1 -1
- package/esm/global.d.ts +1 -1
- package/esm/index.js +1 -1
- package/esm/input/Input.d.ts +10 -3
- package/esm/labelable-provider/LabelableProvider.d.ts +4 -1
- package/esm/labelable-provider/LabelableProvider.js +3 -2
- package/esm/labelable-provider/useAriaLabelledBy.d.ts +9 -0
- package/esm/labelable-provider/useAriaLabelledBy.js +56 -0
- package/esm/labelable-provider/useLabel.d.ts +25 -0
- package/esm/labelable-provider/useLabel.js +74 -0
- package/esm/labelable-provider/useLabelableId.d.ts +2 -5
- package/esm/menu/arrow/MenuArrow.d.ts +10 -1
- package/esm/menu/backdrop/MenuBackdrop.d.ts +4 -1
- package/esm/menu/checkbox-item/MenuCheckboxItem.d.ts +3 -3
- package/esm/menu/checkbox-item-indicator/MenuCheckboxItemIndicator.d.ts +7 -1
- package/esm/menu/group/MenuGroup.d.ts +1 -1
- package/esm/menu/group-label/MenuGroupLabel.d.ts +1 -1
- package/esm/menu/index.d.ts +2 -1
- package/esm/menu/index.parts.d.ts +1 -0
- package/esm/menu/index.parts.js +1 -0
- package/esm/menu/item/MenuItem.d.ts +1 -1
- package/esm/menu/item/useMenuItem.d.ts +8 -7
- package/esm/menu/item/useMenuItem.js +5 -7
- package/esm/menu/item/useMenuItemCommonProps.d.ts +7 -4
- package/esm/menu/item/useMenuItemCommonProps.js +16 -2
- package/esm/menu/link-item/MenuLinkItem.d.ts +1 -1
- package/esm/menu/link-item/MenuLinkItem.js +16 -2
- package/esm/menu/popup/MenuPopup.d.ts +20 -5
- package/esm/menu/popup/MenuPopup.js +4 -1
- package/esm/menu/popup/MenuPopupDataAttributes.d.ts +1 -1
- package/esm/menu/popup/MenuPopupDataAttributes.js +1 -1
- package/esm/menu/portal/MenuPortal.d.ts +3 -4
- package/esm/menu/positioner/MenuPositioner.d.ts +18 -2
- package/esm/menu/positioner/MenuPositioner.js +58 -5
- package/esm/menu/radio-group/MenuRadioGroup.d.ts +6 -3
- package/esm/menu/radio-item/MenuRadioItem.d.ts +3 -3
- package/esm/menu/radio-item-indicator/MenuRadioItemIndicator.d.ts +7 -1
- package/esm/menu/root/MenuRoot.d.ts +4 -2
- package/esm/menu/root/MenuRoot.js +2 -3
- package/esm/menu/store/MenuStore.d.ts +4 -2
- package/esm/menu/store/MenuStore.js +15 -1
- package/esm/menu/submenu-trigger/MenuSubmenuTrigger.js +1 -0
- package/esm/menu/trigger/MenuTrigger.d.ts +3 -3
- package/esm/menu/viewport/MenuViewport.d.ts +30 -0
- package/esm/menu/viewport/MenuViewport.js +60 -0
- package/esm/menu/viewport/MenuViewportCssVars.d.ts +14 -0
- package/esm/menu/viewport/MenuViewportCssVars.js +15 -0
- package/esm/menu/viewport/MenuViewportDataAttributes.d.ts +26 -0
- package/esm/menu/viewport/MenuViewportDataAttributes.js +27 -0
- package/esm/menubar/Menubar.d.ts +1 -1
- package/esm/menubar/Menubar.js +1 -7
- package/esm/meter/indicator/MeterIndicator.d.ts +4 -2
- package/esm/meter/label/MeterLabel.d.ts +4 -2
- package/esm/meter/label/MeterLabel.js +4 -8
- package/esm/meter/root/MeterRoot.d.ts +1 -1
- package/esm/meter/root/MeterRoot.js +11 -2
- package/esm/meter/track/MeterTrack.d.ts +4 -2
- package/esm/meter/value/MeterValue.d.ts +5 -3
- package/esm/navigation-menu/arrow/NavigationMenuArrow.d.ts +10 -1
- package/esm/navigation-menu/backdrop/NavigationMenuBackdrop.d.ts +1 -1
- package/esm/navigation-menu/content/NavigationMenuContent.d.ts +1 -1
- package/esm/navigation-menu/content/NavigationMenuContent.js +11 -0
- package/esm/navigation-menu/icon/NavigationMenuIcon.d.ts +1 -1
- package/esm/navigation-menu/item/NavigationMenuItem.d.ts +1 -1
- package/esm/navigation-menu/link/NavigationMenuLink.d.ts +1 -1
- package/esm/navigation-menu/list/NavigationMenuList.d.ts +1 -1
- package/esm/navigation-menu/list/NavigationMenuList.js +11 -2
- package/esm/navigation-menu/popup/NavigationMenuPopup.d.ts +1 -1
- package/esm/navigation-menu/portal/NavigationMenuPortal.d.ts +4 -5
- package/esm/navigation-menu/positioner/NavigationMenuPositioner.d.ts +11 -2
- package/esm/navigation-menu/root/NavigationMenuRoot.d.ts +4 -4
- package/esm/navigation-menu/root/NavigationMenuRoot.js +27 -8
- package/esm/navigation-menu/trigger/NavigationMenuTrigger.d.ts +1 -1
- package/esm/navigation-menu/trigger/NavigationMenuTrigger.js +364 -20
- package/esm/navigation-menu/utils/isOutsideMenuEvent.d.ts +1 -1
- package/esm/navigation-menu/viewport/NavigationMenuViewport.d.ts +1 -1
- package/esm/navigation-menu/viewport/NavigationMenuViewport.js +0 -19
- package/esm/number-field/decrement/NumberFieldDecrement.d.ts +3 -3
- package/esm/number-field/group/NumberFieldGroup.d.ts +3 -3
- package/esm/number-field/increment/NumberFieldIncrement.d.ts +3 -3
- package/esm/number-field/input/NumberFieldInput.d.ts +3 -3
- package/esm/number-field/root/NumberFieldRoot.d.ts +4 -4
- package/esm/number-field/root/NumberFieldRoot.js +1 -1
- package/esm/number-field/root/NumberFieldRootContext.d.ts +2 -2
- package/esm/number-field/root/useNumberFieldButton.d.ts +2 -5
- package/esm/number-field/scrub-area/NumberFieldScrubArea.d.ts +4 -4
- package/esm/number-field/scrub-area-cursor/NumberFieldScrubAreaCursor.d.ts +3 -3
- package/esm/number-field/utils/stateAttributesMapping.d.ts +2 -2
- package/esm/number-field/utils/types.d.ts +2 -2
- package/esm/popover/arrow/PopoverArrow.d.ts +10 -1
- package/esm/popover/backdrop/PopoverBackdrop.d.ts +4 -1
- package/esm/popover/close/PopoverClose.d.ts +1 -1
- package/esm/popover/close/PopoverClose.js +5 -3
- package/esm/popover/description/PopoverDescription.d.ts +1 -1
- package/esm/popover/popup/PopoverPopup.d.ts +15 -3
- package/esm/popover/popup/PopoverPopup.js +11 -2
- package/esm/popover/portal/PopoverPortal.d.ts +3 -4
- package/esm/popover/positioner/PopoverPositioner.d.ts +11 -2
- package/esm/popover/root/PopoverRoot.d.ts +10 -3
- package/esm/popover/root/PopoverRoot.js +1 -3
- package/esm/popover/title/PopoverTitle.d.ts +1 -1
- package/esm/popover/viewport/PopoverViewport.d.ts +16 -12
- package/esm/preview-card/arrow/PreviewCardArrow.d.ts +10 -1
- package/esm/preview-card/backdrop/PreviewCardBackdrop.d.ts +4 -1
- package/esm/preview-card/popup/PreviewCardPopup.d.ts +13 -1
- package/esm/preview-card/portal/PreviewCardPortal.d.ts +3 -4
- package/esm/preview-card/positioner/PreviewCardPositioner.d.ts +14 -2
- package/esm/preview-card/positioner/PreviewCardPositioner.js +7 -1
- package/esm/preview-card/root/PreviewCardRoot.d.ts +3 -3
- package/esm/preview-card/root/PreviewCardRoot.js +22 -9
- package/esm/preview-card/trigger/PreviewCardTrigger.d.ts +1 -1
- package/esm/preview-card/viewport/PreviewCardViewport.d.ts +16 -9
- package/esm/progress/indicator/ProgressIndicator.d.ts +4 -2
- package/esm/progress/label/ProgressLabel.d.ts +4 -2
- package/esm/progress/label/ProgressLabel.js +4 -8
- package/esm/progress/root/ProgressRoot.d.ts +4 -1
- package/esm/progress/root/ProgressRoot.js +11 -2
- package/esm/progress/root/ProgressRootContext.d.ts +2 -2
- package/esm/progress/root/stateAttributesMapping.d.ts +2 -2
- package/esm/progress/track/ProgressTrack.d.ts +4 -2
- package/esm/progress/value/ProgressValue.d.ts +5 -3
- package/esm/radio/indicator/RadioIndicator.d.ts +4 -1
- package/esm/radio/indicator/RadioIndicatorDataAttributes.d.ts +8 -0
- package/esm/radio/indicator/RadioIndicatorDataAttributes.js +10 -1
- package/esm/radio/root/RadioRoot.d.ts +3 -3
- package/esm/radio/root/RadioRoot.js +4 -1
- package/esm/radio-group/RadioGroup.d.ts +3 -3
- package/esm/scroll-area/content/ScrollAreaContent.d.ts +3 -3
- package/esm/scroll-area/corner/ScrollAreaCorner.d.ts +1 -1
- package/esm/scroll-area/root/ScrollAreaRoot.d.ts +27 -11
- package/esm/scroll-area/root/ScrollAreaRoot.js +7 -4
- package/esm/scroll-area/root/ScrollAreaRootContext.d.ts +4 -2
- package/esm/scroll-area/root/stateAttributes.d.ts +2 -2
- package/esm/scroll-area/scrollbar/ScrollAreaScrollbar.d.ts +13 -7
- package/esm/scroll-area/scrollbar/ScrollAreaScrollbar.js +4 -1
- package/esm/scroll-area/thumb/ScrollAreaThumb.d.ts +5 -2
- package/esm/scroll-area/thumb/ScrollAreaThumb.js +3 -1
- package/esm/scroll-area/viewport/ScrollAreaViewport.d.ts +3 -3
- package/esm/scroll-area/viewport/ScrollAreaViewport.js +46 -27
- package/esm/select/arrow/SelectArrow.d.ts +10 -1
- package/esm/select/backdrop/SelectBackdrop.d.ts +7 -1
- package/esm/select/group/SelectGroup.d.ts +1 -1
- package/esm/select/group-label/SelectGroupLabel.d.ts +1 -1
- package/esm/select/icon/SelectIcon.d.ts +1 -1
- package/esm/select/index.d.ts +1 -0
- package/esm/select/index.parts.d.ts +1 -0
- package/esm/select/index.parts.js +1 -0
- package/esm/select/item/SelectItem.d.ts +1 -1
- package/esm/select/item/SelectItem.js +10 -4
- package/esm/select/item-indicator/SelectItemIndicator.d.ts +10 -2
- package/esm/select/item-indicator/SelectItemIndicatorDataAttributes.d.ts +10 -0
- package/esm/select/item-indicator/SelectItemIndicatorDataAttributes.js +12 -0
- package/esm/select/item-text/SelectItemText.d.ts +1 -1
- package/esm/select/label/SelectLabel.d.ts +16 -0
- package/esm/select/label/SelectLabel.js +49 -0
- package/esm/select/list/SelectList.d.ts +1 -1
- package/esm/select/popup/SelectPopup.d.ts +14 -2
- package/esm/select/popup/SelectPopup.js +23 -9
- package/esm/select/portal/SelectPortal.d.ts +3 -4
- package/esm/select/positioner/SelectPositioner.d.ts +14 -2
- package/esm/select/positioner/SelectPositionerContext.d.ts +2 -2
- package/esm/select/root/SelectRoot.d.ts +5 -4
- package/esm/select/root/SelectRoot.js +5 -6
- package/esm/select/scroll-arrow/SelectScrollArrow.d.ts +13 -1
- package/esm/select/scroll-down-arrow/SelectScrollDownArrow.d.ts +1 -1
- package/esm/select/scroll-up-arrow/SelectScrollUpArrow.d.ts +1 -1
- package/esm/select/store.d.ts +5 -2
- package/esm/select/store.js +1 -0
- package/esm/select/trigger/SelectTrigger.d.ts +6 -4
- package/esm/select/trigger/SelectTrigger.js +5 -2
- package/esm/select/value/SelectValue.d.ts +1 -1
- package/esm/separator/Separator.d.ts +1 -1
- package/esm/slider/control/SliderControl.d.ts +4 -3
- package/esm/slider/control/SliderControl.js +0 -2
- package/esm/slider/index.d.ts +1 -0
- package/esm/slider/index.parts.d.ts +1 -0
- package/esm/slider/index.parts.js +1 -0
- package/esm/slider/indicator/SliderIndicator.d.ts +4 -2
- package/esm/slider/label/SliderLabel.d.ts +16 -0
- package/esm/slider/label/SliderLabel.js +58 -0
- package/esm/slider/root/SliderRoot.d.ts +11 -5
- package/esm/slider/root/SliderRoot.js +8 -3
- package/esm/slider/root/SliderRootContext.d.ts +4 -2
- package/esm/slider/root/stateAttributesMapping.d.ts +2 -2
- package/esm/slider/thumb/SliderThumb.d.ts +5 -5
- package/esm/slider/thumb/SliderThumb.js +3 -2
- package/esm/slider/track/SliderTrack.d.ts +4 -2
- package/esm/slider/utils/resolveThumbCollision.d.ts +2 -2
- package/esm/slider/value/SliderValue.d.ts +5 -3
- package/esm/switch/root/SwitchRoot.d.ts +3 -3
- package/esm/switch/root/SwitchRoot.js +4 -1
- package/esm/switch/root/SwitchRootContext.d.ts +4 -4
- package/esm/switch/stateAttributesMapping.d.ts +2 -2
- package/esm/switch/thumb/SwitchThumb.d.ts +3 -3
- package/esm/tabs/indicator/TabsIndicator.d.ts +12 -3
- package/esm/tabs/indicator/TabsIndicator.js +5 -14
- package/esm/tabs/indicator/TabsIndicatorCssVars.d.ts +1 -1
- package/esm/tabs/indicator/TabsIndicatorCssVars.js +1 -1
- package/esm/tabs/list/TabsList.d.ts +3 -3
- package/esm/tabs/list/TabsList.js +48 -3
- package/esm/tabs/list/TabsListContext.d.ts +2 -0
- package/esm/tabs/panel/TabsPanel.d.ts +9 -3
- package/esm/tabs/panel/TabsPanelDataAttributes.d.ts +8 -0
- package/esm/tabs/panel/TabsPanelDataAttributes.js +10 -1
- package/esm/tabs/root/TabsRoot.d.ts +7 -1
- package/esm/tabs/root/TabsRootContext.d.ts +1 -1
- package/esm/tabs/root/stateAttributesMapping.d.ts +2 -2
- package/esm/tabs/tab/TabsTab.d.ts +7 -1
- package/esm/tabs/tab/TabsTab.js +10 -1
- package/esm/toast/action/ToastAction.d.ts +1 -1
- package/esm/toast/arrow/ToastArrow.d.ts +10 -1
- package/esm/toast/close/ToastClose.d.ts +1 -1
- package/esm/toast/content/ToastContent.d.ts +1 -1
- package/esm/toast/createToastManager.d.ts +1 -1
- package/esm/toast/description/ToastDescription.d.ts +1 -1
- package/esm/toast/portal/ToastPortal.d.ts +3 -4
- package/esm/toast/positioner/ToastPositioner.d.ts +12 -3
- package/esm/toast/provider/ToastProvider.d.ts +2 -0
- package/esm/toast/provider/ToastProvider.js +1 -1
- package/esm/toast/root/ToastRoot.d.ts +20 -7
- package/esm/toast/root/ToastRoot.js +3 -1
- package/esm/toast/store.d.ts +1 -1
- package/esm/toast/store.js +37 -8
- package/esm/toast/title/ToastTitle.d.ts +1 -1
- package/esm/toast/useToastManager.d.ts +3 -3
- package/esm/toast/viewport/ToastViewport.d.ts +1 -1
- package/esm/toggle/Toggle.d.ts +1 -1
- package/esm/toggle-group/ToggleGroup.d.ts +1 -1
- package/esm/toolbar/button/ToolbarButton.d.ts +9 -3
- package/esm/toolbar/group/ToolbarGroup.d.ts +4 -2
- package/esm/toolbar/input/ToolbarInput.d.ts +9 -3
- package/esm/toolbar/link/ToolbarLink.d.ts +4 -1
- package/esm/toolbar/root/ToolbarRoot.d.ts +7 -1
- package/esm/toolbar/separator/ToolbarSeparator.d.ts +4 -2
- package/esm/tooltip/arrow/TooltipArrow.d.ts +13 -1
- package/esm/tooltip/popup/TooltipPopup.d.ts +13 -1
- package/esm/tooltip/portal/TooltipPortal.d.ts +3 -4
- package/esm/tooltip/positioner/TooltipPositioner.d.ts +11 -2
- package/esm/tooltip/provider/TooltipProvider.d.ts +2 -0
- package/esm/tooltip/root/TooltipRoot.d.ts +3 -3
- package/esm/tooltip/root/TooltipRoot.js +1 -1
- package/esm/tooltip/store/TooltipStore.d.ts +2 -0
- package/esm/tooltip/store/TooltipStore.js +2 -0
- package/esm/tooltip/trigger/TooltipTrigger.d.ts +6 -1
- package/esm/tooltip/trigger/TooltipTrigger.js +5 -0
- package/esm/tooltip/viewport/TooltipViewport.d.ts +16 -12
- package/esm/types/index.d.ts +16 -1
- package/esm/unstable-use-media-query/index.d.ts +2 -0
- package/esm/use-button/useButton.d.ts +8 -5
- package/esm/use-button/useButton.js +49 -20
- package/esm/use-render/useRender.d.ts +7 -5
- package/esm/utils/FloatingPortalLite.d.ts +4 -2
- package/esm/utils/InternalBackdrop.d.ts +3 -1
- package/esm/utils/closePart.d.ts +16 -0
- package/esm/utils/closePart.js +40 -0
- package/esm/utils/constants.d.ts +4 -0
- package/esm/utils/constants.js +4 -0
- package/esm/utils/createBaseUIEventDetails.d.ts +1 -1
- package/esm/utils/getElementAtPoint.d.ts +1 -0
- package/esm/utils/getElementAtPoint.js +3 -0
- package/esm/utils/resolveAriaLabelledBy.d.ts +2 -0
- package/esm/utils/resolveAriaLabelledBy.js +8 -0
- package/esm/utils/resolveValueLabel.d.ts +4 -4
- package/esm/utils/resolveValueLabel.js +7 -5
- package/esm/utils/types.d.ts +7 -20
- package/esm/utils/useAnchorPositioning.d.ts +53 -18
- package/esm/utils/useAnchorPositioning.js +15 -6
- package/esm/utils/useFocusableWhenDisabled.d.ts +2 -5
- package/esm/utils/useMixedToggleClickHandler.d.ts +2 -4
- package/esm/utils/useOpenChangeComplete.d.ts +2 -4
- package/esm/utils/useOpenInteractionType.d.ts +0 -1
- package/esm/utils/useOpenInteractionType.js +7 -5
- package/esm/utils/usePopupAutoResize.js +1 -2
- package/esm/utils/usePopupViewport.js +11 -8
- package/esm/utils/useRegisteredLabelId.d.ts +1 -0
- package/esm/utils/useRegisteredLabelId.js +14 -0
- package/esm/utils/useRenderElement.d.ts +6 -9
- package/esm/utils/useRenderElement.js +15 -0
- package/esm/utils/useSwipeDismiss.d.ts +91 -92
- package/esm/utils/useSwipeDismiss.js +2 -1
- package/field/control/FieldControl.d.ts +3 -3
- package/field/description/FieldDescription.d.ts +3 -3
- package/field/error/FieldError.d.ts +7 -4
- package/field/error/FieldErrorDataAttributes.d.ts +8 -0
- package/field/error/FieldErrorDataAttributes.js +10 -1
- package/field/item/FieldItem.d.ts +4 -3
- package/field/item/FieldItem.js +2 -2
- package/field/label/FieldLabel.d.ts +3 -3
- package/field/label/FieldLabel.js +6 -51
- package/field/root/FieldRoot.d.ts +19 -2
- package/field/root/FieldRoot.js +2 -1
- package/field/root/FieldRootContext.d.ts +2 -2
- package/field/root/FieldRootContext.js +5 -12
- package/field/root/useFieldValidation.js +5 -4
- package/field/utils/constants.d.ts +3 -0
- package/field/utils/constants.js +12 -1
- package/field/validity/FieldValidity.d.ts +7 -1
- package/fieldset/legend/FieldsetLegend.d.ts +1 -1
- package/fieldset/root/FieldsetRoot.d.ts +1 -1
- package/floating-ui-react/components/FloatingDelayGroup.js +2 -2
- package/floating-ui-react/components/FloatingFocusManager.d.ts +12 -7
- package/floating-ui-react/components/FloatingFocusManager.js +29 -25
- package/floating-ui-react/components/FloatingPortal.d.ts +6 -4
- package/floating-ui-react/hooks/useClick.d.ts +2 -2
- package/floating-ui-react/hooks/useClientPoint.d.ts +1 -1
- package/floating-ui-react/hooks/useDismiss.d.ts +8 -12
- package/floating-ui-react/hooks/useDismiss.js +319 -260
- package/floating-ui-react/hooks/useFloatingRootContext.d.ts +2 -2
- package/floating-ui-react/hooks/useFocus.d.ts +1 -1
- package/floating-ui-react/hooks/useHover.d.ts +6 -14
- package/floating-ui-react/hooks/useHover.js +6 -32
- package/floating-ui-react/hooks/useHoverFloatingInteraction.d.ts +2 -3
- package/floating-ui-react/hooks/useHoverFloatingInteraction.js +53 -70
- package/floating-ui-react/hooks/useHoverInteractionSharedState.d.ts +12 -3
- package/floating-ui-react/hooks/useHoverInteractionSharedState.js +32 -4
- package/floating-ui-react/hooks/useHoverReferenceInteraction.d.ts +8 -3
- package/floating-ui-react/hooks/useHoverReferenceInteraction.js +60 -82
- package/floating-ui-react/hooks/useHoverShared.d.ts +28 -0
- package/floating-ui-react/hooks/useHoverShared.js +34 -0
- package/floating-ui-react/hooks/useListNavigation.d.ts +4 -4
- package/floating-ui-react/hooks/useListNavigation.js +7 -3
- package/floating-ui-react/hooks/useRole.d.ts +1 -1
- package/floating-ui-react/hooks/useTypeahead.d.ts +7 -1
- package/floating-ui-react/hooks/useTypeahead.js +29 -13
- package/floating-ui-react/safePolygon.d.ts +2 -6
- package/floating-ui-react/safePolygon.js +149 -119
- package/floating-ui-react/types.d.ts +5 -4
- package/floating-ui-react/utils/composite.d.ts +1 -0
- package/floating-ui-react/utils/composite.js +129 -129
- package/floating-ui-react/utils/markOthers.d.ts +7 -1
- package/floating-ui-react/utils/markOthers.js +118 -80
- package/form/Form.d.ts +1 -1
- package/global.d.ts +1 -1
- package/index.js +1 -1
- package/input/Input.d.ts +10 -3
- package/labelable-provider/LabelableProvider.d.ts +4 -1
- package/labelable-provider/LabelableProvider.js +3 -2
- package/labelable-provider/useAriaLabelledBy.d.ts +9 -0
- package/labelable-provider/useAriaLabelledBy.js +61 -0
- package/labelable-provider/useLabel.d.ts +25 -0
- package/labelable-provider/useLabel.js +80 -0
- package/labelable-provider/useLabelableId.d.ts +2 -5
- package/menu/arrow/MenuArrow.d.ts +10 -1
- package/menu/backdrop/MenuBackdrop.d.ts +4 -1
- package/menu/checkbox-item/MenuCheckboxItem.d.ts +3 -3
- package/menu/checkbox-item-indicator/MenuCheckboxItemIndicator.d.ts +7 -1
- package/menu/group/MenuGroup.d.ts +1 -1
- package/menu/group-label/MenuGroupLabel.d.ts +1 -1
- package/menu/index.d.ts +2 -1
- package/menu/index.parts.d.ts +1 -0
- package/menu/index.parts.js +7 -0
- package/menu/item/MenuItem.d.ts +1 -1
- package/menu/item/useMenuItem.d.ts +8 -7
- package/menu/item/useMenuItem.js +5 -7
- package/menu/item/useMenuItemCommonProps.d.ts +7 -4
- package/menu/item/useMenuItemCommonProps.js +16 -2
- package/menu/link-item/MenuLinkItem.d.ts +1 -1
- package/menu/link-item/MenuLinkItem.js +16 -2
- package/menu/popup/MenuPopup.d.ts +20 -5
- package/menu/popup/MenuPopup.js +4 -1
- package/menu/popup/MenuPopupDataAttributes.d.ts +1 -1
- package/menu/popup/MenuPopupDataAttributes.js +1 -1
- package/menu/portal/MenuPortal.d.ts +3 -4
- package/menu/positioner/MenuPositioner.d.ts +18 -2
- package/menu/positioner/MenuPositioner.js +56 -4
- package/menu/radio-group/MenuRadioGroup.d.ts +6 -3
- package/menu/radio-item/MenuRadioItem.d.ts +3 -3
- package/menu/radio-item-indicator/MenuRadioItemIndicator.d.ts +7 -1
- package/menu/root/MenuRoot.d.ts +4 -2
- package/menu/root/MenuRoot.js +2 -3
- package/menu/store/MenuStore.d.ts +4 -2
- package/menu/store/MenuStore.js +15 -1
- package/menu/submenu-trigger/MenuSubmenuTrigger.js +1 -0
- package/menu/trigger/MenuTrigger.d.ts +3 -3
- package/menu/viewport/MenuViewport.d.ts +30 -0
- package/menu/viewport/MenuViewport.js +66 -0
- package/menu/viewport/MenuViewportCssVars.d.ts +14 -0
- package/menu/viewport/MenuViewportCssVars.js +21 -0
- package/menu/viewport/MenuViewportDataAttributes.d.ts +26 -0
- package/menu/viewport/MenuViewportDataAttributes.js +33 -0
- package/menubar/Menubar.d.ts +1 -1
- package/menubar/Menubar.js +1 -7
- package/meter/indicator/MeterIndicator.d.ts +4 -2
- package/meter/label/MeterLabel.d.ts +4 -2
- package/meter/label/MeterLabel.js +4 -8
- package/meter/root/MeterRoot.d.ts +1 -1
- package/meter/root/MeterRoot.js +10 -1
- package/meter/track/MeterTrack.d.ts +4 -2
- package/meter/value/MeterValue.d.ts +5 -3
- package/navigation-menu/arrow/NavigationMenuArrow.d.ts +10 -1
- package/navigation-menu/backdrop/NavigationMenuBackdrop.d.ts +1 -1
- package/navigation-menu/content/NavigationMenuContent.d.ts +1 -1
- package/navigation-menu/content/NavigationMenuContent.js +11 -0
- package/navigation-menu/icon/NavigationMenuIcon.d.ts +1 -1
- package/navigation-menu/item/NavigationMenuItem.d.ts +1 -1
- package/navigation-menu/link/NavigationMenuLink.d.ts +1 -1
- package/navigation-menu/list/NavigationMenuList.d.ts +1 -1
- package/navigation-menu/list/NavigationMenuList.js +10 -1
- package/navigation-menu/popup/NavigationMenuPopup.d.ts +1 -1
- package/navigation-menu/portal/NavigationMenuPortal.d.ts +4 -5
- package/navigation-menu/positioner/NavigationMenuPositioner.d.ts +11 -2
- package/navigation-menu/root/NavigationMenuRoot.d.ts +4 -4
- package/navigation-menu/root/NavigationMenuRoot.js +26 -7
- package/navigation-menu/trigger/NavigationMenuTrigger.d.ts +1 -1
- package/navigation-menu/trigger/NavigationMenuTrigger.js +362 -17
- package/navigation-menu/utils/isOutsideMenuEvent.d.ts +1 -1
- package/navigation-menu/viewport/NavigationMenuViewport.d.ts +1 -1
- package/navigation-menu/viewport/NavigationMenuViewport.js +0 -19
- package/number-field/decrement/NumberFieldDecrement.d.ts +3 -3
- package/number-field/group/NumberFieldGroup.d.ts +3 -3
- package/number-field/increment/NumberFieldIncrement.d.ts +3 -3
- package/number-field/input/NumberFieldInput.d.ts +3 -3
- package/number-field/root/NumberFieldRoot.d.ts +4 -4
- package/number-field/root/NumberFieldRoot.js +1 -1
- package/number-field/root/NumberFieldRootContext.d.ts +2 -2
- package/number-field/root/useNumberFieldButton.d.ts +2 -5
- package/number-field/scrub-area/NumberFieldScrubArea.d.ts +4 -4
- package/number-field/scrub-area-cursor/NumberFieldScrubAreaCursor.d.ts +3 -3
- package/number-field/utils/stateAttributesMapping.d.ts +2 -2
- package/number-field/utils/types.d.ts +2 -2
- package/package.json +183 -7
- package/popover/arrow/PopoverArrow.d.ts +10 -1
- package/popover/backdrop/PopoverBackdrop.d.ts +4 -1
- package/popover/close/PopoverClose.d.ts +1 -1
- package/popover/close/PopoverClose.js +5 -3
- package/popover/description/PopoverDescription.d.ts +1 -1
- package/popover/popup/PopoverPopup.d.ts +15 -3
- package/popover/popup/PopoverPopup.js +11 -2
- package/popover/portal/PopoverPortal.d.ts +3 -4
- package/popover/positioner/PopoverPositioner.d.ts +11 -2
- package/popover/root/PopoverRoot.d.ts +10 -3
- package/popover/root/PopoverRoot.js +1 -3
- package/popover/title/PopoverTitle.d.ts +1 -1
- package/popover/viewport/PopoverViewport.d.ts +16 -12
- package/preview-card/arrow/PreviewCardArrow.d.ts +10 -1
- package/preview-card/backdrop/PreviewCardBackdrop.d.ts +4 -1
- package/preview-card/popup/PreviewCardPopup.d.ts +13 -1
- package/preview-card/portal/PreviewCardPortal.d.ts +3 -4
- package/preview-card/positioner/PreviewCardPositioner.d.ts +14 -2
- package/preview-card/positioner/PreviewCardPositioner.js +7 -1
- package/preview-card/root/PreviewCardRoot.d.ts +3 -3
- package/preview-card/root/PreviewCardRoot.js +20 -7
- package/preview-card/trigger/PreviewCardTrigger.d.ts +1 -1
- package/preview-card/viewport/PreviewCardViewport.d.ts +16 -9
- package/progress/indicator/ProgressIndicator.d.ts +4 -2
- package/progress/label/ProgressLabel.d.ts +4 -2
- package/progress/label/ProgressLabel.js +4 -8
- package/progress/root/ProgressRoot.d.ts +4 -1
- package/progress/root/ProgressRoot.js +10 -1
- package/progress/root/ProgressRootContext.d.ts +2 -2
- package/progress/root/stateAttributesMapping.d.ts +2 -2
- package/progress/track/ProgressTrack.d.ts +4 -2
- package/progress/value/ProgressValue.d.ts +5 -3
- package/radio/indicator/RadioIndicator.d.ts +4 -1
- package/radio/indicator/RadioIndicatorDataAttributes.d.ts +8 -0
- package/radio/indicator/RadioIndicatorDataAttributes.js +10 -1
- package/radio/root/RadioRoot.d.ts +3 -3
- package/radio/root/RadioRoot.js +4 -1
- package/radio-group/RadioGroup.d.ts +3 -3
- package/scroll-area/content/ScrollAreaContent.d.ts +3 -3
- package/scroll-area/corner/ScrollAreaCorner.d.ts +1 -1
- package/scroll-area/root/ScrollAreaRoot.d.ts +27 -11
- package/scroll-area/root/ScrollAreaRoot.js +7 -4
- package/scroll-area/root/ScrollAreaRootContext.d.ts +4 -2
- package/scroll-area/root/stateAttributes.d.ts +2 -2
- package/scroll-area/scrollbar/ScrollAreaScrollbar.d.ts +13 -7
- package/scroll-area/scrollbar/ScrollAreaScrollbar.js +4 -1
- package/scroll-area/thumb/ScrollAreaThumb.d.ts +5 -2
- package/scroll-area/thumb/ScrollAreaThumb.js +3 -1
- package/scroll-area/viewport/ScrollAreaViewport.d.ts +3 -3
- package/scroll-area/viewport/ScrollAreaViewport.js +46 -27
- package/select/arrow/SelectArrow.d.ts +10 -1
- package/select/backdrop/SelectBackdrop.d.ts +7 -1
- package/select/group/SelectGroup.d.ts +1 -1
- package/select/group-label/SelectGroupLabel.d.ts +1 -1
- package/select/icon/SelectIcon.d.ts +1 -1
- package/select/index.d.ts +1 -0
- package/select/index.parts.d.ts +1 -0
- package/select/index.parts.js +7 -0
- package/select/item/SelectItem.d.ts +1 -1
- package/select/item/SelectItem.js +10 -4
- package/select/item-indicator/SelectItemIndicator.d.ts +10 -2
- package/select/item-indicator/SelectItemIndicatorDataAttributes.d.ts +10 -0
- package/select/item-indicator/SelectItemIndicatorDataAttributes.js +18 -0
- package/select/item-text/SelectItemText.d.ts +1 -1
- package/select/label/SelectLabel.d.ts +16 -0
- package/select/label/SelectLabel.js +54 -0
- package/select/list/SelectList.d.ts +1 -1
- package/select/popup/SelectPopup.d.ts +14 -2
- package/select/popup/SelectPopup.js +26 -12
- package/select/portal/SelectPortal.d.ts +3 -4
- package/select/positioner/SelectPositioner.d.ts +14 -2
- package/select/positioner/SelectPositionerContext.d.ts +2 -2
- package/select/root/SelectRoot.d.ts +5 -4
- package/select/root/SelectRoot.js +5 -6
- package/select/scroll-arrow/SelectScrollArrow.d.ts +13 -1
- package/select/scroll-down-arrow/SelectScrollDownArrow.d.ts +1 -1
- package/select/scroll-up-arrow/SelectScrollUpArrow.d.ts +1 -1
- package/select/store.d.ts +5 -2
- package/select/store.js +1 -0
- package/select/trigger/SelectTrigger.d.ts +6 -4
- package/select/trigger/SelectTrigger.js +5 -2
- package/select/value/SelectValue.d.ts +1 -1
- package/separator/Separator.d.ts +1 -1
- package/slider/control/SliderControl.d.ts +4 -3
- package/slider/control/SliderControl.js +0 -2
- package/slider/index.d.ts +1 -0
- package/slider/index.parts.d.ts +1 -0
- package/slider/index.parts.js +7 -0
- package/slider/indicator/SliderIndicator.d.ts +4 -2
- package/slider/label/SliderLabel.d.ts +16 -0
- package/slider/label/SliderLabel.js +63 -0
- package/slider/root/SliderRoot.d.ts +11 -5
- package/slider/root/SliderRoot.js +8 -3
- package/slider/root/SliderRootContext.d.ts +4 -2
- package/slider/root/stateAttributesMapping.d.ts +2 -2
- package/slider/thumb/SliderThumb.d.ts +5 -5
- package/slider/thumb/SliderThumb.js +3 -2
- package/slider/track/SliderTrack.d.ts +4 -2
- package/slider/utils/resolveThumbCollision.d.ts +2 -2
- package/slider/value/SliderValue.d.ts +5 -3
- package/switch/root/SwitchRoot.d.ts +3 -3
- package/switch/root/SwitchRoot.js +4 -1
- package/switch/root/SwitchRootContext.d.ts +4 -4
- package/switch/stateAttributesMapping.d.ts +2 -2
- package/switch/thumb/SwitchThumb.d.ts +3 -3
- package/tabs/indicator/TabsIndicator.d.ts +12 -3
- package/tabs/indicator/TabsIndicator.js +5 -14
- package/tabs/indicator/TabsIndicatorCssVars.d.ts +1 -1
- package/tabs/indicator/TabsIndicatorCssVars.js +1 -1
- package/tabs/list/TabsList.d.ts +3 -3
- package/tabs/list/TabsList.js +48 -3
- package/tabs/list/TabsListContext.d.ts +2 -0
- package/tabs/panel/TabsPanel.d.ts +9 -3
- package/tabs/panel/TabsPanelDataAttributes.d.ts +8 -0
- package/tabs/panel/TabsPanelDataAttributes.js +10 -1
- package/tabs/root/TabsRoot.d.ts +7 -1
- package/tabs/root/TabsRootContext.d.ts +1 -1
- package/tabs/root/stateAttributesMapping.d.ts +2 -2
- package/tabs/tab/TabsTab.d.ts +7 -1
- package/tabs/tab/TabsTab.js +10 -1
- package/toast/action/ToastAction.d.ts +1 -1
- package/toast/arrow/ToastArrow.d.ts +10 -1
- package/toast/close/ToastClose.d.ts +1 -1
- package/toast/content/ToastContent.d.ts +1 -1
- package/toast/createToastManager.d.ts +1 -1
- package/toast/description/ToastDescription.d.ts +1 -1
- package/toast/portal/ToastPortal.d.ts +3 -4
- package/toast/positioner/ToastPositioner.d.ts +12 -3
- package/toast/provider/ToastProvider.d.ts +2 -0
- package/toast/provider/ToastProvider.js +1 -1
- package/toast/root/ToastRoot.d.ts +20 -7
- package/toast/root/ToastRoot.js +3 -1
- package/toast/store.d.ts +1 -1
- package/toast/store.js +37 -8
- package/toast/title/ToastTitle.d.ts +1 -1
- package/toast/useToastManager.d.ts +3 -3
- package/toast/viewport/ToastViewport.d.ts +1 -1
- package/toggle/Toggle.d.ts +1 -1
- package/toggle-group/ToggleGroup.d.ts +1 -1
- package/toolbar/button/ToolbarButton.d.ts +9 -3
- package/toolbar/group/ToolbarGroup.d.ts +4 -2
- package/toolbar/input/ToolbarInput.d.ts +9 -3
- package/toolbar/link/ToolbarLink.d.ts +4 -1
- package/toolbar/root/ToolbarRoot.d.ts +7 -1
- package/toolbar/separator/ToolbarSeparator.d.ts +4 -2
- package/tooltip/arrow/TooltipArrow.d.ts +13 -1
- package/tooltip/popup/TooltipPopup.d.ts +13 -1
- package/tooltip/portal/TooltipPortal.d.ts +3 -4
- package/tooltip/positioner/TooltipPositioner.d.ts +11 -2
- package/tooltip/provider/TooltipProvider.d.ts +2 -0
- package/tooltip/root/TooltipRoot.d.ts +3 -3
- package/tooltip/root/TooltipRoot.js +1 -1
- package/tooltip/store/TooltipStore.d.ts +2 -0
- package/tooltip/store/TooltipStore.js +2 -0
- package/tooltip/trigger/TooltipTrigger.d.ts +6 -1
- package/tooltip/trigger/TooltipTrigger.js +5 -0
- package/tooltip/viewport/TooltipViewport.d.ts +16 -12
- package/types/index.d.ts +16 -1
- package/unstable-use-media-query/index.d.ts +2 -0
- package/use-button/useButton.d.ts +8 -5
- package/use-button/useButton.js +49 -20
- package/use-render/useRender.d.ts +7 -5
- package/utils/FloatingPortalLite.d.ts +4 -2
- package/utils/InternalBackdrop.d.ts +3 -1
- package/utils/closePart.d.ts +16 -0
- package/utils/closePart.js +48 -0
- package/utils/constants.d.ts +4 -0
- package/utils/constants.js +6 -2
- package/utils/createBaseUIEventDetails.d.ts +1 -1
- package/utils/getElementAtPoint.d.ts +1 -0
- package/utils/getElementAtPoint.js +9 -0
- package/utils/resolveAriaLabelledBy.d.ts +2 -0
- package/utils/resolveAriaLabelledBy.js +14 -0
- package/utils/resolveValueLabel.d.ts +4 -4
- package/utils/resolveValueLabel.js +7 -5
- package/utils/types.d.ts +7 -20
- package/utils/useAnchorPositioning.d.ts +53 -18
- package/utils/useAnchorPositioning.js +15 -6
- package/utils/useFocusableWhenDisabled.d.ts +2 -5
- package/utils/useMixedToggleClickHandler.d.ts +2 -4
- package/utils/useOpenChangeComplete.d.ts +2 -4
- package/utils/useOpenInteractionType.d.ts +0 -1
- package/utils/useOpenInteractionType.js +7 -5
- package/utils/usePopupAutoResize.js +1 -2
- package/utils/usePopupViewport.js +11 -8
- package/utils/useRegisteredLabelId.d.ts +1 -0
- package/utils/useRegisteredLabelId.js +19 -0
- package/utils/useRenderElement.d.ts +6 -9
- package/utils/useRenderElement.js +15 -0
- package/utils/useSwipeDismiss.d.ts +91 -92
- package/utils/useSwipeDismiss.js +2 -1
- package/esm/navigation-menu/utils/setFixedSize.d.ts +0 -1
- package/esm/navigation-menu/utils/setFixedSize.js +0 -11
- package/navigation-menu/utils/setFixedSize.d.ts +0 -1
- package/navigation-menu/utils/setFixedSize.js +0 -17
|
@@ -4,6 +4,7 @@ import * as React from 'react';
|
|
|
4
4
|
import * as ReactDOM from 'react-dom';
|
|
5
5
|
import { isElement } from '@floating-ui/utils/dom';
|
|
6
6
|
import { ownerDocument, ownerWindow } from '@base-ui/utils/owner';
|
|
7
|
+
import { useAnimationFrame } from '@base-ui/utils/useAnimationFrame';
|
|
7
8
|
import { useStableCallback } from '@base-ui/utils/useStableCallback';
|
|
8
9
|
import { useDialogRootContext } from "../../dialog/root/DialogRootContext.js";
|
|
9
10
|
import { DialogViewport } from "../../dialog/viewport/DialogViewport.js";
|
|
@@ -16,12 +17,15 @@ import { useSwipeDismiss } from "../../utils/useSwipeDismiss.js";
|
|
|
16
17
|
import { DrawerPopupCssVars } from "../popup/DrawerPopupCssVars.js";
|
|
17
18
|
import { DrawerPopupDataAttributes } from "../popup/DrawerPopupDataAttributes.js";
|
|
18
19
|
import { DrawerBackdropCssVars } from "../backdrop/DrawerBackdropCssVars.js";
|
|
20
|
+
import { DRAWER_CONTENT_ATTRIBUTE } from "../content/DrawerContentDataAttributes.js";
|
|
19
21
|
import { REASONS } from "../../utils/reasons.js";
|
|
20
22
|
import { createChangeEventDetails } from "../../utils/createBaseUIEventDetails.js";
|
|
21
23
|
import { contains } from "../../floating-ui-react/utils.js";
|
|
22
24
|
import { DrawerViewportContext } from "./DrawerViewportContext.js";
|
|
23
25
|
import { TransitionStatusDataAttributes } from "../../utils/stateAttributesMapping.js";
|
|
24
26
|
import { findScrollableTouchTarget } from "../../utils/scrollable.js";
|
|
27
|
+
import { BASE_UI_SWIPE_IGNORE_SELECTOR } from "../../utils/constants.js";
|
|
28
|
+
import { getElementAtPoint } from "../../utils/getElementAtPoint.js";
|
|
25
29
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
26
30
|
const MIN_SWIPE_THRESHOLD = 10;
|
|
27
31
|
const FAST_SWIPE_VELOCITY = 0.5;
|
|
@@ -34,7 +38,7 @@ const MIN_SWIPE_RELEASE_DURATION_MS = 80;
|
|
|
34
38
|
const MAX_SWIPE_RELEASE_DURATION_MS = 360;
|
|
35
39
|
const MIN_SWIPE_RELEASE_SCALAR = 0.1;
|
|
36
40
|
const MAX_SWIPE_RELEASE_SCALAR = 1;
|
|
37
|
-
|
|
41
|
+
const DRAWER_CONTENT_SELECTOR = `[${DRAWER_CONTENT_ATTRIBUTE}]`;
|
|
38
42
|
/**
|
|
39
43
|
* A positioning container for the drawer popup that can be made scrollable.
|
|
40
44
|
* Renders a `<div>` element.
|
|
@@ -68,6 +72,8 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
|
|
|
68
72
|
const popupElementState = store.useState('popupElement');
|
|
69
73
|
const nestedDrawerOpen = nestedOpenDialogCount > 0;
|
|
70
74
|
const scrollAxis = swipeDirection === 'left' || swipeDirection === 'right' ? 'horizontal' : 'vertical';
|
|
75
|
+
const isVerticalScrollAxis = scrollAxis === 'vertical';
|
|
76
|
+
const crossScrollAxis = isVerticalScrollAxis ? 'horizontal' : 'vertical';
|
|
71
77
|
const {
|
|
72
78
|
snapPoints,
|
|
73
79
|
resolvedSnapPoints,
|
|
@@ -79,9 +85,11 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
|
|
|
79
85
|
const [swipeRelease, setSwipeRelease] = React.useState(null);
|
|
80
86
|
const pendingSwipeCloseSnapPointRef = React.useRef(undefined);
|
|
81
87
|
const resetSwipeRef = React.useRef(null);
|
|
88
|
+
const controlledDismissFrame = useAnimationFrame();
|
|
82
89
|
const nestedSwipeActiveRef = React.useRef(false);
|
|
83
90
|
const lastPointerTypeRef = React.useRef('');
|
|
84
91
|
const ignoreNextTouchStartFromPenRef = React.useRef(false);
|
|
92
|
+
const ignoreTouchSwipeRef = React.useRef(false);
|
|
85
93
|
const touchScrollStateRef = React.useRef(null);
|
|
86
94
|
const snapPointRange = React.useMemo(() => {
|
|
87
95
|
if (!snapPoints || snapPoints.length < 2) {
|
|
@@ -272,14 +280,25 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
|
|
|
272
280
|
}) {
|
|
273
281
|
return getBaseSwipeThreshold(element, direction);
|
|
274
282
|
},
|
|
275
|
-
canStart(position) {
|
|
283
|
+
canStart(position, details) {
|
|
276
284
|
const popupElement = store.context.popupRef.current;
|
|
277
285
|
if (!popupElement) {
|
|
278
286
|
return false;
|
|
279
287
|
}
|
|
280
288
|
const doc = popupElement.ownerDocument;
|
|
281
|
-
const elementAtPoint =
|
|
282
|
-
|
|
289
|
+
const elementAtPoint = getElementAtPoint(doc, position.x, position.y);
|
|
290
|
+
if (!elementAtPoint || !contains(popupElement, elementAtPoint)) {
|
|
291
|
+
return false;
|
|
292
|
+
}
|
|
293
|
+
const nativeEvent = details.nativeEvent;
|
|
294
|
+
const touchLike = 'touches' in nativeEvent || 'pointerType' in nativeEvent && nativeEvent.pointerType === 'touch';
|
|
295
|
+
if (touchLike && shouldIgnoreSwipeForTextSelection(doc, popupElement)) {
|
|
296
|
+
return false;
|
|
297
|
+
}
|
|
298
|
+
if (nativeEvent.type === 'touchstart' && isSwipeIgnoredTarget(elementAtPoint)) {
|
|
299
|
+
return false;
|
|
300
|
+
}
|
|
301
|
+
return true;
|
|
283
302
|
},
|
|
284
303
|
onProgress(progress, details) {
|
|
285
304
|
updateNestedSwipeActive(details);
|
|
@@ -508,6 +527,33 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
|
|
|
508
527
|
clearSwipeRelease();
|
|
509
528
|
return;
|
|
510
529
|
}
|
|
530
|
+
|
|
531
|
+
// In controlled mode, the effective open state may not have changed yet
|
|
532
|
+
// (openProp takes precedence over state.open). Proceed optimistically with the
|
|
533
|
+
// dismiss animation — React's Scheduler flushes before the next rAF, so we can
|
|
534
|
+
// reliably check whether the parent accepted or rejected the close.
|
|
535
|
+
// Note: if onOpenChange is asynchronous (e.g., closes the drawer after a network
|
|
536
|
+
// call), the rAF check will see open === true, revert the animation, and the
|
|
537
|
+
// drawer will close without animation when the parent eventually sets open={false}.
|
|
538
|
+
if (store.select('open')) {
|
|
539
|
+
const savedEvent = event;
|
|
540
|
+
controlledDismissFrame.request(() => {
|
|
541
|
+
if (store.select('open')) {
|
|
542
|
+
// Parent rejected: revert animation and restore snap point.
|
|
543
|
+
const pendingSnapPoint = pendingSwipeCloseSnapPointRef.current;
|
|
544
|
+
if (pendingSnapPoint !== undefined) {
|
|
545
|
+
setActiveSnapPoint?.(pendingSnapPoint, createChangeEventDetails(REASONS.swipe, savedEvent));
|
|
546
|
+
}
|
|
547
|
+
pendingSwipeCloseSnapPointRef.current = undefined;
|
|
548
|
+
clearSwipeRelease();
|
|
549
|
+
resetSwipeRef.current?.();
|
|
550
|
+
} else {
|
|
551
|
+
// Parent accepted: clean up the ref.
|
|
552
|
+
pendingSwipeCloseSnapPointRef.current = undefined;
|
|
553
|
+
}
|
|
554
|
+
});
|
|
555
|
+
return;
|
|
556
|
+
}
|
|
511
557
|
pendingSwipeCloseSnapPointRef.current = undefined;
|
|
512
558
|
setSwipeDismissed(true);
|
|
513
559
|
}
|
|
@@ -521,51 +567,39 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
|
|
|
521
567
|
if (!rootElement) {
|
|
522
568
|
return undefined;
|
|
523
569
|
}
|
|
524
|
-
const
|
|
570
|
+
const resolvedRootElement = rootElement;
|
|
571
|
+
const doc = ownerDocument(resolvedRootElement);
|
|
525
572
|
const win = ownerWindow(doc);
|
|
526
573
|
function handleNativeTouchMove(event) {
|
|
574
|
+
if (ignoreTouchSwipeRef.current) {
|
|
575
|
+
return;
|
|
576
|
+
}
|
|
527
577
|
const touchState = touchScrollStateRef.current;
|
|
528
578
|
const touch = event.touches[0];
|
|
529
579
|
if (!touch || !touchState) {
|
|
530
580
|
return;
|
|
531
581
|
}
|
|
532
|
-
const
|
|
533
|
-
const updateTouchPosition = () => {
|
|
534
|
-
touchState.lastX = touch.clientX;
|
|
535
|
-
touchState.lastY = touch.clientY;
|
|
536
|
-
};
|
|
582
|
+
const drawerAxisDelta = isVerticalScrollAxis ? touch.clientY - touchState.lastY : touch.clientX - touchState.lastX;
|
|
537
583
|
|
|
538
584
|
// Preserve native range interaction by never locking touchmove for range inputs.
|
|
539
585
|
if (isEventOnRangeInput(event, win)) {
|
|
540
586
|
touchState.allowSwipe = false;
|
|
541
|
-
|
|
587
|
+
updateTouchScrollPosition(touchState, touch);
|
|
542
588
|
return;
|
|
543
589
|
}
|
|
544
590
|
|
|
545
591
|
// Avoid blocking pinch zoom or text selection adjustments on iOS Safari.
|
|
546
592
|
if (event.touches.length === 2) {
|
|
547
|
-
|
|
593
|
+
updateTouchScrollPosition(touchState, touch);
|
|
548
594
|
return;
|
|
549
595
|
}
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
// Allow the ability to adjust text selection.
|
|
553
|
-
if (target) {
|
|
554
|
-
const selection = target.ownerDocument.defaultView?.getSelection();
|
|
555
|
-
if (selection && !selection.isCollapsed && selection.containsNode(target, true)) {
|
|
556
|
-
allowTouchMove = true;
|
|
557
|
-
}
|
|
558
|
-
}
|
|
559
|
-
|
|
560
|
-
// Allow user to drag the selection handles in an input element.
|
|
561
|
-
if (target instanceof win.HTMLInputElement) {
|
|
562
|
-
const input = target;
|
|
563
|
-
if (input.selectionStart != null && input.selectionEnd != null && input.selectionStart < input.selectionEnd && doc.activeElement === input) {
|
|
564
|
-
allowTouchMove = true;
|
|
565
|
-
}
|
|
566
|
-
}
|
|
596
|
+
const allowTouchMove = shouldIgnoreSwipeForTextSelection(doc, resolvedRootElement);
|
|
567
597
|
if (allowTouchMove || !open || !mounted || nestedDrawerOpen) {
|
|
568
|
-
|
|
598
|
+
updateTouchScrollPosition(touchState, touch);
|
|
599
|
+
return;
|
|
600
|
+
}
|
|
601
|
+
if (preserveNativeCrossAxisScrollOnMove(touchState, touch, isVerticalScrollAxis)) {
|
|
602
|
+
updateTouchScrollPosition(touchState, touch);
|
|
569
603
|
return;
|
|
570
604
|
}
|
|
571
605
|
const scrollTarget = touchState.scrollTarget;
|
|
@@ -573,7 +607,7 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
|
|
|
573
607
|
if (event.cancelable) {
|
|
574
608
|
event.preventDefault();
|
|
575
609
|
}
|
|
576
|
-
|
|
610
|
+
updateTouchScrollPosition(touchState, touch);
|
|
577
611
|
return;
|
|
578
612
|
}
|
|
579
613
|
const hasScrollableContent = hasScrollableContentOnAxis(scrollTarget, scrollAxis);
|
|
@@ -583,13 +617,13 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
|
|
|
583
617
|
if (event.cancelable) {
|
|
584
618
|
event.preventDefault();
|
|
585
619
|
}
|
|
586
|
-
|
|
620
|
+
updateTouchScrollPosition(touchState, touch);
|
|
587
621
|
return;
|
|
588
622
|
}
|
|
589
|
-
const delta =
|
|
623
|
+
const delta = drawerAxisDelta;
|
|
590
624
|
if (delta !== 0) {
|
|
591
625
|
const canSwipeFromScrollEdge = canSwipeFromScrollEdgeOnMove(scrollTarget, scrollAxis, swipeDirection, delta);
|
|
592
|
-
if (touchState.allowSwipe
|
|
626
|
+
if (!touchState.allowSwipe) {
|
|
593
627
|
if (!event.cancelable) {
|
|
594
628
|
touchState.allowSwipe = false;
|
|
595
629
|
} else if (canSwipeFromScrollEdge) {
|
|
@@ -602,7 +636,7 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
|
|
|
602
636
|
event.preventDefault();
|
|
603
637
|
}
|
|
604
638
|
}
|
|
605
|
-
|
|
639
|
+
updateTouchScrollPosition(touchState, touch);
|
|
606
640
|
}
|
|
607
641
|
doc.addEventListener('touchmove', handleNativeTouchMove, {
|
|
608
642
|
passive: false,
|
|
@@ -613,7 +647,7 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
|
|
|
613
647
|
capture: true
|
|
614
648
|
});
|
|
615
649
|
};
|
|
616
|
-
}, [mounted, nestedDrawerOpen, open, popupElementState, scrollAxis, swipeDirection, viewportElement]);
|
|
650
|
+
}, [mounted, nestedDrawerOpen, open, popupElementState, isVerticalScrollAxis, scrollAxis, swipeDirection, viewportElement]);
|
|
617
651
|
React.useEffect(() => {
|
|
618
652
|
if (!snapPointRange || swipe.swiping) {
|
|
619
653
|
return;
|
|
@@ -661,6 +695,7 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
|
|
|
661
695
|
}
|
|
662
696
|
}), [store, swipe.getDragStyles, swipe.swiping, swipeRelease]);
|
|
663
697
|
function resetTouchTrackingState() {
|
|
698
|
+
ignoreTouchSwipeRef.current = false;
|
|
664
699
|
touchScrollStateRef.current = null;
|
|
665
700
|
lastPointerTypeRef.current = '';
|
|
666
701
|
ignoreNextTouchStartFromPenRef.current = false;
|
|
@@ -673,12 +708,15 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
|
|
|
673
708
|
onPointerDown(event) {
|
|
674
709
|
lastPointerTypeRef.current = event.pointerType;
|
|
675
710
|
ignoreNextTouchStartFromPenRef.current = event.pointerType === 'pen';
|
|
676
|
-
if (!open || !mounted || nestedDrawerOpen
|
|
711
|
+
if (!open || !mounted || nestedDrawerOpen) {
|
|
677
712
|
return;
|
|
678
713
|
}
|
|
679
714
|
const doc = ownerDocument(event.currentTarget);
|
|
680
|
-
const elementAtPoint =
|
|
681
|
-
if (elementAtPoint
|
|
715
|
+
const elementAtPoint = getElementAtPoint(doc, event.clientX, event.clientY);
|
|
716
|
+
if (isSwipeIgnoredTarget(elementAtPoint) || isDrawerContentTarget(elementAtPoint)) {
|
|
717
|
+
return;
|
|
718
|
+
}
|
|
719
|
+
if (event.pointerType === 'touch') {
|
|
682
720
|
return;
|
|
683
721
|
}
|
|
684
722
|
swipePointerProps.onPointerDown?.(event);
|
|
@@ -711,10 +749,12 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
|
|
|
711
749
|
const startedFromPenPointerDown = lastPointerTypeRef.current === 'pen' && ignoreNextTouchStartFromPenRef.current;
|
|
712
750
|
if (startedFromPenPointerDown) {
|
|
713
751
|
ignoreNextTouchStartFromPenRef.current = false;
|
|
752
|
+
ignoreTouchSwipeRef.current = false;
|
|
714
753
|
touchScrollStateRef.current = null;
|
|
715
754
|
return;
|
|
716
755
|
}
|
|
717
756
|
if (!open || !mounted || nestedDrawerOpen) {
|
|
757
|
+
ignoreTouchSwipeRef.current = false;
|
|
718
758
|
touchScrollStateRef.current = null;
|
|
719
759
|
return;
|
|
720
760
|
}
|
|
@@ -723,31 +763,54 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
|
|
|
723
763
|
return;
|
|
724
764
|
}
|
|
725
765
|
if (isReactTouchEventOnRangeInput(event)) {
|
|
766
|
+
ignoreTouchSwipeRef.current = false;
|
|
767
|
+
touchScrollStateRef.current = null;
|
|
768
|
+
return;
|
|
769
|
+
}
|
|
770
|
+
const doc = ownerDocument(event.currentTarget);
|
|
771
|
+
const elementAtPoint = getElementAtPoint(doc, touch.clientX, touch.clientY);
|
|
772
|
+
ignoreTouchSwipeRef.current = isSwipeIgnoredTarget(elementAtPoint);
|
|
773
|
+
if (ignoreTouchSwipeRef.current) {
|
|
726
774
|
touchScrollStateRef.current = null;
|
|
727
775
|
return;
|
|
728
776
|
}
|
|
729
777
|
const rootElement = viewportElement ?? popupElementState;
|
|
730
778
|
const target = isElement(event.target) ? event.target : null;
|
|
731
|
-
|
|
779
|
+
let scrollTarget = null;
|
|
780
|
+
let hasCrossAxisScrollableContent = false;
|
|
781
|
+
if (rootElement && target && contains(rootElement, target)) {
|
|
782
|
+
scrollTarget = findScrollableTouchTarget(target, rootElement, scrollAxis);
|
|
783
|
+
hasCrossAxisScrollableContent = findScrollableTouchTarget(target, rootElement, crossScrollAxis) != null;
|
|
784
|
+
}
|
|
732
785
|
let allowSwipe = null;
|
|
733
786
|
if (scrollTarget) {
|
|
734
787
|
const canSwipeFromEdge = isAtSwipeStartEdge(scrollTarget, scrollAxis, swipeDirection);
|
|
735
788
|
allowSwipe = canSwipeFromEdge ? null : false;
|
|
736
789
|
}
|
|
737
790
|
touchScrollStateRef.current = {
|
|
791
|
+
startX: touch.clientX,
|
|
792
|
+
startY: touch.clientY,
|
|
738
793
|
lastX: touch.clientX,
|
|
739
794
|
lastY: touch.clientY,
|
|
740
795
|
scrollTarget,
|
|
741
|
-
|
|
796
|
+
hasCrossAxisScrollableContent,
|
|
797
|
+
allowSwipe,
|
|
798
|
+
preserveNativeCrossAxisScroll: false
|
|
742
799
|
};
|
|
743
800
|
swipeTouchProps.onTouchStart?.(event);
|
|
744
801
|
},
|
|
745
802
|
onTouchMove(event) {
|
|
803
|
+
if (ignoreTouchSwipeRef.current) {
|
|
804
|
+
return;
|
|
805
|
+
}
|
|
746
806
|
if (isReactTouchEventOnRangeInput(event)) {
|
|
747
807
|
return;
|
|
748
808
|
}
|
|
749
809
|
const touchState = touchScrollStateRef.current;
|
|
750
|
-
if (touchState?.
|
|
810
|
+
if (touchState?.preserveNativeCrossAxisScroll) {
|
|
811
|
+
return;
|
|
812
|
+
}
|
|
813
|
+
if (touchState?.allowSwipe === false || touchState?.scrollTarget != null && !touchState.allowSwipe) {
|
|
751
814
|
return;
|
|
752
815
|
}
|
|
753
816
|
swipeTouchProps.onTouchMove?.(event);
|
|
@@ -759,7 +822,10 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
|
|
|
759
822
|
onTouchCancel(event) {
|
|
760
823
|
resetTouchTrackingState();
|
|
761
824
|
swipeTouchProps.onTouchCancel?.(event);
|
|
762
|
-
}
|
|
825
|
+
},
|
|
826
|
+
// Drawer popups use drawer-specific nested state attributes.
|
|
827
|
+
// Suppress DialogViewport's generic nested dialog attribute.
|
|
828
|
+
['data-nested-dialog-open']: undefined
|
|
763
829
|
}),
|
|
764
830
|
children: /*#__PURE__*/_jsx(DrawerViewportContext.Provider, {
|
|
765
831
|
value: swipeProviderValue,
|
|
@@ -787,6 +853,12 @@ function setBackdropSwipingAttribute(backdropElement, swiping) {
|
|
|
787
853
|
}
|
|
788
854
|
backdropElement.removeAttribute(DrawerPopupDataAttributes.swiping);
|
|
789
855
|
}
|
|
856
|
+
function isSwipeIgnoredTarget(target) {
|
|
857
|
+
return Boolean(target?.closest(BASE_UI_SWIPE_IGNORE_SELECTOR));
|
|
858
|
+
}
|
|
859
|
+
function isDrawerContentTarget(target) {
|
|
860
|
+
return Boolean(target?.closest(DRAWER_CONTENT_SELECTOR));
|
|
861
|
+
}
|
|
790
862
|
function getBaseSwipeThreshold(element, direction) {
|
|
791
863
|
const size = direction === 'left' || direction === 'right' ? element.offsetWidth : element.offsetHeight;
|
|
792
864
|
return Math.max(size * 0.5, MIN_SWIPE_THRESHOLD);
|
|
@@ -794,6 +866,35 @@ function getBaseSwipeThreshold(element, direction) {
|
|
|
794
866
|
function isRangeInput(target, win) {
|
|
795
867
|
return target instanceof win.HTMLInputElement && target.type === 'range';
|
|
796
868
|
}
|
|
869
|
+
function isTextSelectionControl(target) {
|
|
870
|
+
if (!isElement(target)) {
|
|
871
|
+
return false;
|
|
872
|
+
}
|
|
873
|
+
return target.tagName === 'INPUT' || target.tagName === 'TEXTAREA';
|
|
874
|
+
}
|
|
875
|
+
function hasExpandedSelectionWithinTarget(selection, target) {
|
|
876
|
+
const anchorElement = isElement(selection.anchorNode) ? selection.anchorNode : selection.anchorNode?.parentElement;
|
|
877
|
+
const focusElement = isElement(selection.focusNode) ? selection.focusNode : selection.focusNode?.parentElement;
|
|
878
|
+
return selection.containsNode(target, true) || contains(target, anchorElement) || contains(target, focusElement);
|
|
879
|
+
}
|
|
880
|
+
function shouldIgnoreSwipeForTextSelection(doc, rootElement) {
|
|
881
|
+
const activeElement = doc.activeElement;
|
|
882
|
+
const activeElementWithinRoot = Boolean(activeElement && contains(rootElement, activeElement));
|
|
883
|
+
if (activeElementWithinRoot && isTextSelectionControl(activeElement)) {
|
|
884
|
+
const {
|
|
885
|
+
selectionStart,
|
|
886
|
+
selectionEnd
|
|
887
|
+
} = activeElement;
|
|
888
|
+
if (selectionStart != null && selectionEnd != null && selectionStart < selectionEnd) {
|
|
889
|
+
return true;
|
|
890
|
+
}
|
|
891
|
+
}
|
|
892
|
+
const selection = doc.getSelection?.();
|
|
893
|
+
if (!selection || selection.isCollapsed) {
|
|
894
|
+
return false;
|
|
895
|
+
}
|
|
896
|
+
return hasExpandedSelectionWithinTarget(selection, rootElement);
|
|
897
|
+
}
|
|
797
898
|
function isEventOnRangeInput(event, win) {
|
|
798
899
|
const composedPath = event.composedPath();
|
|
799
900
|
if (composedPath) {
|
|
@@ -804,6 +905,27 @@ function isEventOnRangeInput(event, win) {
|
|
|
804
905
|
function isReactTouchEventOnRangeInput(event) {
|
|
805
906
|
return isEventOnRangeInput(event.nativeEvent, ownerWindow(event.currentTarget));
|
|
806
907
|
}
|
|
908
|
+
function updateTouchScrollPosition(touchState, touch) {
|
|
909
|
+
touchState.lastX = touch.clientX;
|
|
910
|
+
touchState.lastY = touch.clientY;
|
|
911
|
+
}
|
|
912
|
+
function preserveNativeCrossAxisScrollOnMove(touchState, touch, isVerticalScrollAxis) {
|
|
913
|
+
if (touchState.preserveNativeCrossAxisScroll) {
|
|
914
|
+
return true;
|
|
915
|
+
}
|
|
916
|
+
if (touchState.allowSwipe === true || !touchState.hasCrossAxisScrollableContent) {
|
|
917
|
+
return false;
|
|
918
|
+
}
|
|
919
|
+
const drawerAxisGestureDelta = isVerticalScrollAxis ? touch.clientY - touchState.startY : touch.clientX - touchState.startX;
|
|
920
|
+
const crossAxisGestureDelta = isVerticalScrollAxis ? touch.clientX - touchState.startX : touch.clientY - touchState.startY;
|
|
921
|
+
const absDrawerAxisGestureDelta = Math.abs(drawerAxisGestureDelta);
|
|
922
|
+
const absCrossAxisGestureDelta = Math.abs(crossAxisGestureDelta);
|
|
923
|
+
if (absCrossAxisGestureDelta < 6 || absCrossAxisGestureDelta <= absDrawerAxisGestureDelta + 2) {
|
|
924
|
+
return false;
|
|
925
|
+
}
|
|
926
|
+
touchState.preserveNativeCrossAxisScroll = true;
|
|
927
|
+
return true;
|
|
928
|
+
}
|
|
807
929
|
function hasScrollableContentOnAxis(scrollTarget, axis) {
|
|
808
930
|
return axis === 'vertical' ? scrollTarget.scrollHeight > scrollTarget.clientHeight : scrollTarget.scrollWidth > scrollTarget.clientWidth;
|
|
809
931
|
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export declare enum DrawerViewportDataAttributes {
|
|
2
|
+
/**
|
|
3
|
+
* Present when the drawer is open.
|
|
4
|
+
*/
|
|
5
|
+
open = "data-open",
|
|
6
|
+
/**
|
|
7
|
+
* Present when the drawer is closed.
|
|
8
|
+
*/
|
|
9
|
+
closed = "data-closed",
|
|
10
|
+
/**
|
|
11
|
+
* Present when the drawer is animating in.
|
|
12
|
+
*/
|
|
13
|
+
startingStyle = "data-starting-style",
|
|
14
|
+
/**
|
|
15
|
+
* Present when the drawer is animating out.
|
|
16
|
+
*/
|
|
17
|
+
endingStyle = "data-ending-style",
|
|
18
|
+
/**
|
|
19
|
+
* Present when the drawer is nested within another drawer.
|
|
20
|
+
*/
|
|
21
|
+
nested = "data-nested",
|
|
22
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { CommonPopupDataAttributes } from "../../utils/popupStateMapping.js";
|
|
2
|
+
export let DrawerViewportDataAttributes = function (DrawerViewportDataAttributes) {
|
|
3
|
+
/**
|
|
4
|
+
* Present when the drawer is open.
|
|
5
|
+
*/
|
|
6
|
+
DrawerViewportDataAttributes[DrawerViewportDataAttributes["open"] = CommonPopupDataAttributes.open] = "open";
|
|
7
|
+
/**
|
|
8
|
+
* Present when the drawer is closed.
|
|
9
|
+
*/
|
|
10
|
+
DrawerViewportDataAttributes[DrawerViewportDataAttributes["closed"] = CommonPopupDataAttributes.closed] = "closed";
|
|
11
|
+
/**
|
|
12
|
+
* Present when the drawer is animating in.
|
|
13
|
+
*/
|
|
14
|
+
DrawerViewportDataAttributes[DrawerViewportDataAttributes["startingStyle"] = CommonPopupDataAttributes.startingStyle] = "startingStyle";
|
|
15
|
+
/**
|
|
16
|
+
* Present when the drawer is animating out.
|
|
17
|
+
*/
|
|
18
|
+
DrawerViewportDataAttributes[DrawerViewportDataAttributes["endingStyle"] = CommonPopupDataAttributes.endingStyle] = "endingStyle";
|
|
19
|
+
/**
|
|
20
|
+
* Present when the drawer is nested within another drawer.
|
|
21
|
+
*/
|
|
22
|
+
DrawerViewportDataAttributes["nested"] = "data-nested";
|
|
23
|
+
return DrawerViewportDataAttributes;
|
|
24
|
+
}({});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { type FieldRootState } from "../root/FieldRoot.js";
|
|
3
3
|
import { BaseUIComponentProps } from "../../utils/types.js";
|
|
4
4
|
import { REASONS } from "../../utils/reasons.js";
|
|
5
5
|
import type { BaseUIChangeEventDetails } from "../../utils/createBaseUIEventDetails.js";
|
|
@@ -14,8 +14,8 @@ import type { BaseUIChangeEventDetails } from "../../utils/createBaseUIEventDeta
|
|
|
14
14
|
* Documentation: [Base UI Field](https://base-ui.com/react/components/field)
|
|
15
15
|
*/
|
|
16
16
|
export declare const FieldControl: React.ForwardRefExoticComponent<Omit<FieldControlProps, "ref"> & React.RefAttributes<HTMLElement>>;
|
|
17
|
-
export
|
|
18
|
-
export interface FieldControlProps extends BaseUIComponentProps<'input',
|
|
17
|
+
export interface FieldControlState extends FieldRootState {}
|
|
18
|
+
export interface FieldControlProps extends BaseUIComponentProps<'input', FieldControlState> {
|
|
19
19
|
/**
|
|
20
20
|
* Callback fired when the `value` changes. Use when controlled.
|
|
21
21
|
*/
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { type FieldRootState } from "../root/FieldRoot.js";
|
|
3
3
|
import type { BaseUIComponentProps } from "../../utils/types.js";
|
|
4
4
|
/**
|
|
5
5
|
* A paragraph with additional information about the field.
|
|
@@ -8,8 +8,8 @@ import type { BaseUIComponentProps } from "../../utils/types.js";
|
|
|
8
8
|
* Documentation: [Base UI Field](https://base-ui.com/react/components/field)
|
|
9
9
|
*/
|
|
10
10
|
export declare const FieldDescription: React.ForwardRefExoticComponent<Omit<FieldDescriptionProps, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
|
|
11
|
-
export
|
|
12
|
-
export interface FieldDescriptionProps extends BaseUIComponentProps<'p',
|
|
11
|
+
export interface FieldDescriptionState extends FieldRootState {}
|
|
12
|
+
export interface FieldDescriptionProps extends BaseUIComponentProps<'p', FieldDescriptionState> {}
|
|
13
13
|
export declare namespace FieldDescription {
|
|
14
14
|
type State = FieldDescriptionState;
|
|
15
15
|
type Props = FieldDescriptionProps;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { type FieldRootState } from "../root/FieldRoot.js";
|
|
3
3
|
import type { BaseUIComponentProps } from "../../utils/types.js";
|
|
4
4
|
import { type TransitionStatus } from "../../utils/useTransitionStatus.js";
|
|
5
5
|
/**
|
|
@@ -9,17 +9,20 @@ import { type TransitionStatus } from "../../utils/useTransitionStatus.js";
|
|
|
9
9
|
* Documentation: [Base UI Field](https://base-ui.com/react/components/field)
|
|
10
10
|
*/
|
|
11
11
|
export declare const FieldError: React.ForwardRefExoticComponent<Omit<FieldErrorProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
12
|
-
export interface FieldErrorState extends
|
|
12
|
+
export interface FieldErrorState extends FieldRootState {
|
|
13
|
+
/**
|
|
14
|
+
* The transition status of the component.
|
|
15
|
+
*/
|
|
13
16
|
transitionStatus: TransitionStatus;
|
|
14
17
|
}
|
|
15
|
-
export interface FieldErrorProps extends BaseUIComponentProps<'div',
|
|
18
|
+
export interface FieldErrorProps extends BaseUIComponentProps<'div', FieldErrorState> {
|
|
16
19
|
/**
|
|
17
20
|
* Determines whether to show the error message according to the field’s
|
|
18
21
|
* [ValidityState](https://developer.mozilla.org/en-US/docs/Web/API/ValidityState).
|
|
19
22
|
* Specifying `true` will always show the error message, and lets external libraries
|
|
20
23
|
* control the visibility.
|
|
21
24
|
*/
|
|
22
|
-
match?:
|
|
25
|
+
match?: boolean | keyof ValidityState | undefined;
|
|
23
26
|
}
|
|
24
27
|
export declare namespace FieldError {
|
|
25
28
|
type State = FieldErrorState;
|
|
@@ -27,4 +27,12 @@ export declare enum FieldErrorDataAttributes {
|
|
|
27
27
|
* Present when the field control is focused.
|
|
28
28
|
*/
|
|
29
29
|
focused = "data-focused",
|
|
30
|
+
/**
|
|
31
|
+
* Present when the error message is animating in.
|
|
32
|
+
*/
|
|
33
|
+
startingStyle = "data-starting-style",
|
|
34
|
+
/**
|
|
35
|
+
* Present when the error message is animating out.
|
|
36
|
+
*/
|
|
37
|
+
endingStyle = "data-ending-style",
|
|
30
38
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import { TransitionStatusDataAttributes } from "../../utils/stateAttributesMapping.js";
|
|
2
|
+
export let FieldErrorDataAttributes = function (FieldErrorDataAttributes) {
|
|
2
3
|
/**
|
|
3
4
|
* Present when the field is disabled.
|
|
4
5
|
*/
|
|
@@ -27,5 +28,13 @@ export let FieldErrorDataAttributes = /*#__PURE__*/function (FieldErrorDataAttri
|
|
|
27
28
|
* Present when the field control is focused.
|
|
28
29
|
*/
|
|
29
30
|
FieldErrorDataAttributes["focused"] = "data-focused";
|
|
31
|
+
/**
|
|
32
|
+
* Present when the error message is animating in.
|
|
33
|
+
*/
|
|
34
|
+
FieldErrorDataAttributes[FieldErrorDataAttributes["startingStyle"] = TransitionStatusDataAttributes.startingStyle] = "startingStyle";
|
|
35
|
+
/**
|
|
36
|
+
* Present when the error message is animating out.
|
|
37
|
+
*/
|
|
38
|
+
FieldErrorDataAttributes[FieldErrorDataAttributes["endingStyle"] = TransitionStatusDataAttributes.endingStyle] = "endingStyle";
|
|
30
39
|
return FieldErrorDataAttributes;
|
|
31
40
|
}({});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { type FieldRootState } from "../root/FieldRoot.js";
|
|
3
3
|
import type { BaseUIComponentProps } from "../../utils/types.js";
|
|
4
4
|
/**
|
|
5
5
|
* Groups individual items in a checkbox group or radio group with a label and description.
|
|
@@ -8,7 +8,8 @@ import type { BaseUIComponentProps } from "../../utils/types.js";
|
|
|
8
8
|
* Documentation: [Base UI Field](https://base-ui.com/react/components/field)
|
|
9
9
|
*/
|
|
10
10
|
export declare const FieldItem: React.ForwardRefExoticComponent<Omit<FieldItemProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
11
|
-
export interface
|
|
11
|
+
export interface FieldItemState extends FieldRootState {}
|
|
12
|
+
export interface FieldItemProps extends BaseUIComponentProps<'div', FieldItemState> {
|
|
12
13
|
/**
|
|
13
14
|
* Whether the wrapped control should ignore user interaction.
|
|
14
15
|
* The `disabled` prop on `<Field.Root>` takes precedence over this.
|
|
@@ -17,6 +18,6 @@ export interface FieldItemProps extends BaseUIComponentProps<'div', FieldItem.St
|
|
|
17
18
|
disabled?: boolean | undefined;
|
|
18
19
|
}
|
|
19
20
|
export declare namespace FieldItem {
|
|
20
|
-
type State =
|
|
21
|
+
type State = FieldItemState;
|
|
21
22
|
type Props = FieldItemProps;
|
|
22
23
|
}
|
|
@@ -32,7 +32,7 @@ export const FieldItem = /*#__PURE__*/React.forwardRef(function FieldItem(compon
|
|
|
32
32
|
const parentId = checkboxGroupContext?.parent.id;
|
|
33
33
|
// this a more reliable check
|
|
34
34
|
const hasParentCheckbox = checkboxGroupContext?.allValues !== undefined;
|
|
35
|
-
const
|
|
35
|
+
const controlId = hasParentCheckbox ? parentId : undefined;
|
|
36
36
|
const fieldItemContext = React.useMemo(() => ({
|
|
37
37
|
disabled
|
|
38
38
|
}), [disabled]);
|
|
@@ -43,7 +43,7 @@ export const FieldItem = /*#__PURE__*/React.forwardRef(function FieldItem(compon
|
|
|
43
43
|
stateAttributesMapping: fieldValidityMapping
|
|
44
44
|
});
|
|
45
45
|
return /*#__PURE__*/_jsx(LabelableProvider, {
|
|
46
|
-
|
|
46
|
+
controlId: controlId,
|
|
47
47
|
children: /*#__PURE__*/_jsx(FieldItemContext.Provider, {
|
|
48
48
|
value: fieldItemContext,
|
|
49
49
|
children: element
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import type { FieldRootState } from "../root/FieldRoot.js";
|
|
3
3
|
import type { BaseUIComponentProps } from "../../utils/types.js";
|
|
4
4
|
/**
|
|
5
5
|
* An accessible label that is automatically associated with the field control.
|
|
@@ -8,8 +8,8 @@ import type { BaseUIComponentProps } from "../../utils/types.js";
|
|
|
8
8
|
* Documentation: [Base UI Field](https://base-ui.com/react/components/field)
|
|
9
9
|
*/
|
|
10
10
|
export declare const FieldLabel: React.ForwardRefExoticComponent<Omit<FieldLabelProps, "ref"> & React.RefAttributes<HTMLElement>>;
|
|
11
|
-
export
|
|
12
|
-
export interface FieldLabelProps extends BaseUIComponentProps<'label',
|
|
11
|
+
export interface FieldLabelState extends FieldRootState {}
|
|
12
|
+
export interface FieldLabelProps extends BaseUIComponentProps<'label', FieldLabelState> {
|
|
13
13
|
/**
|
|
14
14
|
* Whether the component renders a native `<label>` element when replacing it via the `render` prop.
|
|
15
15
|
* Set to `false` if the rendered element is not a label (e.g. `<div>`).
|