@base-ui/react 1.0.0-rc.2 → 1.1.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 +156 -5
- package/README.md +2 -3
- package/accordion/header/AccordionHeader.d.ts +1 -1
- package/accordion/item/AccordionItem.d.ts +1 -1
- package/accordion/panel/AccordionPanel.d.ts +1 -1
- package/accordion/root/AccordionRoot.d.ts +1 -1
- package/accordion/trigger/AccordionTrigger.d.ts +1 -1
- package/accordion/trigger/AccordionTrigger.js +3 -4
- package/alert-dialog/root/AlertDialogRoot.d.ts +3 -3
- package/autocomplete/root/AutocompleteRoot.d.ts +1 -1
- package/avatar/fallback/AvatarFallback.d.ts +1 -1
- package/avatar/image/AvatarImage.d.ts +1 -1
- package/avatar/root/AvatarRoot.d.ts +1 -1
- package/button/Button.d.ts +4 -17
- package/button/Button.js +1 -2
- package/checkbox/indicator/CheckboxIndicator.d.ts +1 -1
- package/checkbox/indicator/CheckboxIndicatorDataAttributes.d.ts +4 -0
- package/checkbox/indicator/CheckboxIndicatorDataAttributes.js +4 -0
- package/checkbox/root/CheckboxRoot.d.ts +1 -1
- package/checkbox/root/CheckboxRoot.js +5 -4
- package/checkbox/root/CheckboxRootDataAttributes.d.ts +4 -0
- package/checkbox/root/CheckboxRootDataAttributes.js +4 -0
- package/checkbox-group/CheckboxGroup.d.ts +1 -1
- package/collapsible/panel/CollapsiblePanel.d.ts +1 -1
- package/collapsible/root/CollapsibleRoot.d.ts +1 -1
- package/collapsible/trigger/CollapsibleTrigger.d.ts +1 -1
- package/collapsible/trigger/CollapsibleTrigger.js +1 -2
- package/combobox/arrow/ComboboxArrow.d.ts +1 -1
- package/combobox/backdrop/ComboboxBackdrop.d.ts +1 -1
- package/combobox/chip/ComboboxChip.d.ts +1 -1
- package/combobox/chip-remove/ComboboxChipRemove.d.ts +1 -1
- package/combobox/chip-remove/ComboboxChipRemove.js +3 -2
- package/combobox/chips/ComboboxChips.d.ts +1 -1
- package/combobox/chips/ComboboxChips.js +7 -1
- package/combobox/clear/ComboboxClear.d.ts +1 -1
- package/combobox/clear/ComboboxClear.js +2 -2
- 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/input/ComboboxInput.d.ts +1 -1
- package/combobox/input/ComboboxInput.js +12 -18
- package/combobox/item/ComboboxItem.d.ts +1 -1
- package/combobox/item/ComboboxItem.js +0 -1
- package/combobox/item-indicator/ComboboxItemIndicator.d.ts +1 -1
- package/combobox/list/ComboboxList.d.ts +1 -1
- package/combobox/popup/ComboboxPopup.d.ts +1 -1
- package/combobox/popup/ComboboxPopup.js +2 -1
- package/combobox/portal/ComboboxPortal.d.ts +1 -1
- package/combobox/positioner/ComboboxPositioner.d.ts +1 -1
- package/combobox/root/AriaCombobox.d.ts +8 -1
- package/combobox/root/AriaCombobox.js +19 -16
- package/combobox/root/ComboboxRoot.d.ts +1 -1
- package/combobox/row/ComboboxRow.d.ts +1 -1
- package/combobox/status/ComboboxStatus.d.ts +1 -1
- package/combobox/store.d.ts +3 -0
- package/combobox/store.js +21 -0
- package/combobox/trigger/ComboboxTrigger.d.ts +14 -1
- package/combobox/trigger/ComboboxTrigger.js +31 -11
- package/combobox/trigger/ComboboxTriggerDataAttributes.d.ts +13 -0
- package/combobox/trigger/ComboboxTriggerDataAttributes.js +13 -0
- package/combobox/utils/stateAttributesMapping.d.ts +14 -0
- package/combobox/utils/stateAttributesMapping.js +18 -0
- package/combobox/value/ComboboxValue.d.ts +5 -0
- package/combobox/value/ComboboxValue.js +15 -6
- package/composite/root/useCompositeRoot.d.ts +1 -1
- package/context-menu/trigger/ContextMenuTrigger.d.ts +1 -1
- package/csp-provider/CSPContext.d.ts +13 -0
- package/csp-provider/CSPContext.js +25 -0
- package/csp-provider/CSPProvider.d.ts +25 -0
- package/csp-provider/CSPProvider.js +32 -0
- package/csp-provider/index.d.ts +2 -0
- package/csp-provider/index.js +12 -0
- package/csp-provider/index.parts.d.ts +1 -0
- package/csp-provider/index.parts.js +12 -0
- package/dialog/backdrop/DialogBackdrop.d.ts +1 -1
- package/dialog/close/DialogClose.d.ts +1 -1
- package/dialog/description/DialogDescription.d.ts +1 -1
- package/dialog/popup/DialogPopup.d.ts +1 -1
- package/dialog/portal/DialogPortal.d.ts +1 -1
- package/dialog/portal/DialogPortal.js +1 -0
- package/dialog/root/DialogRoot.d.ts +4 -4
- package/dialog/store/DialogStore.d.ts +2 -2
- package/dialog/title/DialogTitle.d.ts +1 -1
- package/dialog/viewport/DialogViewport.d.ts +1 -1
- package/esm/accordion/header/AccordionHeader.d.ts +1 -1
- package/esm/accordion/item/AccordionItem.d.ts +1 -1
- package/esm/accordion/panel/AccordionPanel.d.ts +1 -1
- package/esm/accordion/root/AccordionRoot.d.ts +1 -1
- package/esm/accordion/trigger/AccordionTrigger.d.ts +1 -1
- package/esm/accordion/trigger/AccordionTrigger.js +3 -4
- package/esm/alert-dialog/root/AlertDialogRoot.d.ts +3 -3
- package/esm/autocomplete/root/AutocompleteRoot.d.ts +1 -1
- package/esm/avatar/fallback/AvatarFallback.d.ts +1 -1
- package/esm/avatar/image/AvatarImage.d.ts +1 -1
- package/esm/avatar/root/AvatarRoot.d.ts +1 -1
- package/esm/button/Button.d.ts +4 -17
- package/esm/button/Button.js +1 -2
- package/esm/checkbox/indicator/CheckboxIndicator.d.ts +1 -1
- package/esm/checkbox/indicator/CheckboxIndicatorDataAttributes.d.ts +4 -0
- package/esm/checkbox/indicator/CheckboxIndicatorDataAttributes.js +4 -0
- package/esm/checkbox/root/CheckboxRoot.d.ts +1 -1
- package/esm/checkbox/root/CheckboxRoot.js +6 -5
- package/esm/checkbox/root/CheckboxRootDataAttributes.d.ts +4 -0
- package/esm/checkbox/root/CheckboxRootDataAttributes.js +4 -0
- package/esm/checkbox-group/CheckboxGroup.d.ts +1 -1
- package/esm/collapsible/panel/CollapsiblePanel.d.ts +1 -1
- package/esm/collapsible/root/CollapsibleRoot.d.ts +1 -1
- package/esm/collapsible/trigger/CollapsibleTrigger.d.ts +1 -1
- package/esm/collapsible/trigger/CollapsibleTrigger.js +1 -2
- package/esm/combobox/arrow/ComboboxArrow.d.ts +1 -1
- package/esm/combobox/backdrop/ComboboxBackdrop.d.ts +1 -1
- package/esm/combobox/chip/ComboboxChip.d.ts +1 -1
- package/esm/combobox/chip-remove/ComboboxChipRemove.d.ts +1 -1
- package/esm/combobox/chip-remove/ComboboxChipRemove.js +3 -2
- package/esm/combobox/chips/ComboboxChips.d.ts +1 -1
- package/esm/combobox/chips/ComboboxChips.js +7 -1
- package/esm/combobox/clear/ComboboxClear.d.ts +1 -1
- package/esm/combobox/clear/ComboboxClear.js +2 -2
- 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/input/ComboboxInput.d.ts +1 -1
- package/esm/combobox/input/ComboboxInput.js +12 -17
- package/esm/combobox/item/ComboboxItem.d.ts +1 -1
- package/esm/combobox/item/ComboboxItem.js +0 -1
- package/esm/combobox/item-indicator/ComboboxItemIndicator.d.ts +1 -1
- package/esm/combobox/list/ComboboxList.d.ts +1 -1
- package/esm/combobox/popup/ComboboxPopup.d.ts +1 -1
- package/esm/combobox/popup/ComboboxPopup.js +2 -1
- package/esm/combobox/portal/ComboboxPortal.d.ts +1 -1
- package/esm/combobox/positioner/ComboboxPositioner.d.ts +1 -1
- package/esm/combobox/root/AriaCombobox.d.ts +8 -1
- package/esm/combobox/root/AriaCombobox.js +20 -17
- package/esm/combobox/root/ComboboxRoot.d.ts +1 -1
- package/esm/combobox/row/ComboboxRow.d.ts +1 -1
- package/esm/combobox/status/ComboboxStatus.d.ts +1 -1
- package/esm/combobox/store.d.ts +3 -0
- package/esm/combobox/store.js +21 -0
- package/esm/combobox/trigger/ComboboxTrigger.d.ts +14 -1
- package/esm/combobox/trigger/ComboboxTrigger.js +32 -12
- package/esm/combobox/trigger/ComboboxTriggerDataAttributes.d.ts +13 -0
- package/esm/combobox/trigger/ComboboxTriggerDataAttributes.js +13 -0
- package/esm/combobox/utils/stateAttributesMapping.d.ts +14 -0
- package/esm/combobox/utils/stateAttributesMapping.js +12 -0
- package/esm/combobox/value/ComboboxValue.d.ts +5 -0
- package/esm/combobox/value/ComboboxValue.js +16 -7
- package/esm/composite/root/useCompositeRoot.d.ts +1 -1
- package/esm/context-menu/trigger/ContextMenuTrigger.d.ts +1 -1
- package/esm/csp-provider/CSPContext.d.ts +13 -0
- package/esm/csp-provider/CSPContext.js +18 -0
- package/esm/csp-provider/CSPProvider.d.ts +25 -0
- package/esm/csp-provider/CSPProvider.js +27 -0
- package/esm/csp-provider/index.d.ts +2 -0
- package/esm/csp-provider/index.js +1 -0
- package/esm/csp-provider/index.parts.d.ts +1 -0
- package/esm/csp-provider/index.parts.js +1 -0
- package/esm/dialog/backdrop/DialogBackdrop.d.ts +1 -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 +1 -1
- package/esm/dialog/portal/DialogPortal.d.ts +1 -1
- package/esm/dialog/portal/DialogPortal.js +1 -0
- package/esm/dialog/root/DialogRoot.d.ts +4 -4
- package/esm/dialog/store/DialogStore.d.ts +2 -2
- package/esm/dialog/title/DialogTitle.d.ts +1 -1
- package/esm/dialog/viewport/DialogViewport.d.ts +1 -1
- package/esm/field/control/FieldControl.d.ts +1 -1
- package/esm/field/description/FieldDescription.d.ts +1 -1
- package/esm/field/error/FieldError.d.ts +1 -1
- package/esm/field/index.d.ts +2 -1
- package/esm/field/item/FieldItem.d.ts +1 -1
- package/esm/field/label/FieldLabel.d.ts +11 -2
- package/esm/field/label/FieldLabel.js +51 -11
- package/esm/field/root/FieldRoot.d.ts +10 -1
- package/esm/field/root/FieldRoot.js +8 -0
- package/esm/field/useField.js +7 -3
- package/esm/fieldset/legend/FieldsetLegend.d.ts +1 -1
- package/esm/fieldset/root/FieldsetRoot.d.ts +1 -1
- package/esm/floating-ui-react/components/FloatingFocusManager.js +7 -6
- package/esm/floating-ui-react/components/FloatingPortal.d.ts +2 -2
- package/esm/floating-ui-react/components/FloatingPortal.js +11 -2
- package/esm/floating-ui-react/hooks/useClientPoint.js +5 -4
- package/esm/floating-ui-react/hooks/useDismiss.js +16 -3
- package/esm/floating-ui-react/hooks/useFocus.d.ts +5 -0
- package/esm/floating-ui-react/hooks/useFocus.js +43 -9
- package/esm/floating-ui-react/hooks/useHoverReferenceInteraction.js +17 -4
- package/esm/floating-ui-react/hooks/useSyncedFloatingRootContext.js +3 -0
- package/esm/form/Form.d.ts +18 -1
- package/esm/form/Form.js +17 -0
- package/esm/form/FormContext.d.ts +1 -1
- package/esm/index.d.ts +1 -0
- package/esm/index.js +2 -1
- package/esm/input/Input.d.ts +1 -1
- package/esm/menu/arrow/MenuArrow.d.ts +1 -1
- package/esm/menu/backdrop/MenuBackdrop.d.ts +1 -1
- package/esm/menu/checkbox-item/MenuCheckboxItem.d.ts +1 -1
- package/esm/menu/checkbox-item-indicator/MenuCheckboxItemIndicator.d.ts +1 -1
- package/esm/menu/group/MenuGroup.d.ts +1 -1
- package/esm/menu/group-label/MenuGroupLabel.d.ts +1 -1
- package/esm/menu/item/MenuItem.d.ts +1 -1
- package/esm/menu/popup/MenuPopup.d.ts +1 -1
- package/esm/menu/popup/MenuPopup.js +4 -3
- package/esm/menu/portal/MenuPortal.d.ts +1 -1
- package/esm/menu/positioner/MenuPositioner.d.ts +1 -1
- package/esm/menu/radio-group/MenuRadioGroup.d.ts +1 -1
- package/esm/menu/radio-item/MenuRadioItem.d.ts +1 -1
- package/esm/menu/radio-item-indicator/MenuRadioItemIndicator.d.ts +1 -1
- package/esm/menu/root/MenuRoot.d.ts +7 -6
- package/esm/menu/root/MenuRoot.js +4 -2
- package/esm/menu/store/MenuStore.js +3 -3
- package/esm/menu/submenu-trigger/MenuSubmenuTrigger.d.ts +1 -1
- package/esm/menu/trigger/MenuTrigger.js +13 -13
- package/esm/menubar/Menubar.d.ts +1 -1
- package/esm/merge-props/mergeProps.d.ts +31 -11
- package/esm/merge-props/mergeProps.js +29 -8
- package/esm/meter/indicator/MeterIndicator.d.ts +1 -1
- package/esm/meter/label/MeterLabel.d.ts +1 -1
- package/esm/meter/root/MeterRoot.d.ts +1 -1
- package/esm/meter/track/MeterTrack.d.ts +1 -1
- package/esm/meter/value/MeterValue.d.ts +1 -1
- package/esm/navigation-menu/arrow/NavigationMenuArrow.d.ts +1 -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 +6 -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/popup/NavigationMenuPopup.d.ts +1 -1
- package/esm/navigation-menu/portal/NavigationMenuPortal.d.ts +1 -1
- package/esm/navigation-menu/positioner/NavigationMenuPositioner.d.ts +1 -1
- package/esm/navigation-menu/root/NavigationMenuRoot.d.ts +2 -2
- package/esm/navigation-menu/trigger/NavigationMenuTrigger.d.ts +1 -1
- package/esm/navigation-menu/viewport/NavigationMenuViewport.d.ts +1 -1
- package/esm/number-field/decrement/NumberFieldDecrement.d.ts +1 -1
- package/esm/number-field/decrement/NumberFieldDecrement.js +4 -6
- package/esm/number-field/group/NumberFieldGroup.d.ts +1 -1
- package/esm/number-field/increment/NumberFieldIncrement.d.ts +1 -1
- package/esm/number-field/increment/NumberFieldIncrement.js +4 -6
- package/esm/number-field/input/NumberFieldInput.d.ts +1 -1
- package/esm/number-field/input/NumberFieldInput.js +5 -2
- package/esm/number-field/root/NumberFieldRoot.d.ts +5 -4
- package/esm/number-field/root/NumberFieldRoot.js +12 -5
- package/esm/number-field/root/useNumberFieldButton.d.ts +0 -3
- package/esm/number-field/root/useNumberFieldButton.js +5 -11
- package/esm/number-field/scrub-area/NumberFieldScrubArea.d.ts +1 -1
- package/esm/number-field/scrub-area-cursor/NumberFieldScrubAreaCursor.d.ts +1 -1
- package/esm/popover/arrow/PopoverArrow.d.ts +1 -1
- package/esm/popover/backdrop/PopoverBackdrop.d.ts +1 -1
- package/esm/popover/close/PopoverClose.d.ts +1 -1
- package/esm/popover/description/PopoverDescription.d.ts +1 -1
- package/esm/popover/popup/PopoverPopup.d.ts +1 -1
- package/esm/popover/popup/PopoverPopup.js +0 -30
- package/esm/popover/portal/PopoverPortal.d.ts +1 -1
- package/esm/popover/positioner/PopoverPositioner.d.ts +1 -1
- package/esm/popover/positioner/PopoverPositioner.js +2 -1
- package/esm/popover/root/PopoverRoot.d.ts +2 -2
- package/esm/popover/store/PopoverStore.d.ts +4 -2
- package/esm/popover/store/PopoverStore.js +8 -5
- package/esm/popover/title/PopoverTitle.d.ts +1 -1
- package/esm/popover/trigger/PopoverTrigger.js +2 -2
- package/esm/popover/viewport/PopoverViewport.d.ts +1 -1
- package/esm/popover/viewport/PopoverViewport.js +28 -12
- package/esm/preview-card/arrow/PreviewCardArrow.d.ts +1 -1
- package/esm/preview-card/arrow/PreviewCardArrow.js +2 -3
- package/esm/preview-card/backdrop/PreviewCardBackdrop.d.ts +1 -1
- package/esm/preview-card/backdrop/PreviewCardBackdrop.js +4 -5
- package/esm/preview-card/index.parts.d.ts +3 -1
- package/esm/preview-card/index.parts.js +3 -1
- package/esm/preview-card/popup/PreviewCardPopup.d.ts +2 -1
- package/esm/preview-card/popup/PreviewCardPopup.js +17 -11
- package/esm/preview-card/portal/PreviewCardPortal.d.ts +1 -1
- package/esm/preview-card/portal/PreviewCardPortal.js +2 -3
- package/esm/preview-card/positioner/PreviewCardPositioner.d.ts +2 -1
- package/esm/preview-card/positioner/PreviewCardPositioner.js +16 -11
- package/esm/preview-card/root/PreviewCardContext.d.ts +5 -26
- package/esm/preview-card/root/PreviewCardContext.js +2 -2
- package/esm/preview-card/root/PreviewCardRoot.d.ts +35 -10
- package/esm/preview-card/root/PreviewCardRoot.js +61 -116
- package/esm/preview-card/store/PreviewCardHandle.d.ts +33 -0
- package/esm/preview-card/store/PreviewCardHandle.js +55 -0
- package/esm/preview-card/store/PreviewCardStore.d.ts +36 -0
- package/esm/preview-card/store/PreviewCardStore.js +97 -0
- package/esm/preview-card/trigger/PreviewCardTrigger.d.ts +15 -3
- package/esm/preview-card/trigger/PreviewCardTrigger.js +49 -13
- package/esm/preview-card/viewport/PreviewCardViewport.d.ts +22 -0
- package/esm/preview-card/viewport/PreviewCardViewport.js +272 -0
- package/esm/preview-card/viewport/PreviewCardViewportCssVars.d.ts +14 -0
- package/esm/preview-card/viewport/PreviewCardViewportCssVars.js +15 -0
- package/esm/preview-card/viewport/PreviewCardViewportDataAttributes.d.ts +26 -0
- package/esm/preview-card/viewport/PreviewCardViewportDataAttributes.js +27 -0
- package/esm/progress/indicator/ProgressIndicator.d.ts +1 -1
- package/esm/progress/label/ProgressLabel.d.ts +1 -1
- package/esm/progress/root/ProgressRoot.d.ts +1 -1
- package/esm/progress/track/ProgressTrack.d.ts +1 -1
- package/esm/progress/value/ProgressValue.d.ts +1 -1
- package/esm/radio/indicator/RadioIndicator.d.ts +1 -1
- package/esm/radio/root/RadioRoot.d.ts +1 -1
- package/esm/radio/root/RadioRoot.js +9 -9
- package/esm/radio-group/RadioGroup.d.ts +4 -4
- package/esm/radio-group/RadioGroup.js +2 -2
- package/esm/scroll-area/content/ScrollAreaContent.d.ts +1 -1
- package/esm/scroll-area/content/ScrollAreaContent.js +10 -1
- package/esm/scroll-area/corner/ScrollAreaCorner.d.ts +1 -1
- package/esm/scroll-area/corner/ScrollAreaCorner.js +1 -1
- package/esm/scroll-area/root/ScrollAreaRoot.d.ts +26 -2
- package/esm/scroll-area/root/ScrollAreaRoot.js +33 -29
- package/esm/scroll-area/root/ScrollAreaRootContext.d.ts +10 -43
- package/esm/scroll-area/scrollbar/ScrollAreaScrollbar.d.ts +1 -1
- package/esm/scroll-area/scrollbar/ScrollAreaScrollbar.js +4 -4
- package/esm/scroll-area/thumb/ScrollAreaThumb.d.ts +2 -2
- package/esm/scroll-area/thumb/ScrollAreaThumb.js +1 -1
- package/esm/scroll-area/viewport/ScrollAreaViewport.d.ts +1 -1
- package/esm/scroll-area/viewport/ScrollAreaViewport.js +51 -25
- package/esm/select/arrow/SelectArrow.d.ts +1 -1
- package/esm/select/backdrop/SelectBackdrop.d.ts +1 -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/item/SelectItem.d.ts +1 -1
- package/esm/select/item/SelectItem.js +0 -1
- package/esm/select/item-indicator/SelectItemIndicator.d.ts +1 -1
- package/esm/select/item-text/SelectItemText.d.ts +1 -1
- package/esm/select/list/SelectList.d.ts +1 -1
- package/esm/select/popup/SelectPopup.d.ts +1 -1
- package/esm/select/popup/SelectPopup.js +154 -95
- package/esm/select/portal/SelectPortal.d.ts +1 -1
- package/esm/select/positioner/SelectPositioner.d.ts +1 -1
- package/esm/select/root/SelectRoot.d.ts +2 -2
- package/esm/select/root/SelectRoot.js +26 -13
- package/esm/select/scroll-arrow/SelectScrollArrow.d.ts +1 -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 +2 -1
- package/esm/select/store.js +19 -13
- package/esm/select/trigger/SelectTrigger.d.ts +14 -4
- package/esm/select/trigger/SelectTrigger.js +50 -18
- package/esm/select/value/SelectValue.d.ts +6 -1
- package/esm/select/value/SelectValue.js +19 -5
- package/esm/separator/Separator.d.ts +1 -1
- package/esm/slider/control/SliderControl.d.ts +1 -1
- package/esm/slider/control/SliderControl.js +1 -1
- package/esm/slider/control/SliderControlDataAttributes.d.ts +0 -8
- package/esm/slider/control/SliderControlDataAttributes.js +0 -8
- package/esm/slider/indicator/SliderIndicator.d.ts +1 -1
- package/esm/slider/indicator/SliderIndicatorDataAttributes.d.ts +0 -8
- package/esm/slider/indicator/SliderIndicatorDataAttributes.js +0 -8
- package/esm/slider/root/SliderRootDataAttributes.d.ts +0 -8
- package/esm/slider/root/SliderRootDataAttributes.js +0 -8
- package/esm/slider/thumb/SliderThumb.d.ts +2 -2
- package/esm/slider/thumb/SliderThumb.js +7 -1
- package/esm/slider/thumb/SliderThumbDataAttributes.d.ts +0 -8
- package/esm/slider/thumb/SliderThumbDataAttributes.js +0 -8
- package/esm/slider/track/SliderTrack.d.ts +1 -1
- package/esm/slider/track/SliderTrackDataAttributes.d.ts +0 -8
- package/esm/slider/track/SliderTrackDataAttributes.js +0 -8
- package/esm/slider/value/SliderValue.d.ts +1 -1
- package/esm/slider/value/SliderValueDataAttributes.d.ts +0 -8
- package/esm/slider/value/SliderValueDataAttributes.js +0 -8
- package/esm/switch/root/SwitchRoot.d.ts +6 -1
- package/esm/switch/root/SwitchRoot.js +15 -6
- package/esm/switch/thumb/SwitchThumb.d.ts +1 -1
- package/esm/tabs/indicator/TabsIndicator.d.ts +1 -1
- package/esm/tabs/indicator/TabsIndicator.js +6 -0
- package/esm/tabs/list/TabsList.d.ts +1 -1
- package/esm/tabs/panel/TabsPanel.d.ts +1 -1
- package/esm/tabs/root/TabsRoot.d.ts +1 -1
- package/esm/tabs/tab/TabsTab.d.ts +1 -1
- package/esm/toast/action/ToastAction.d.ts +1 -1
- package/esm/toast/arrow/ToastArrow.d.ts +1 -1
- package/esm/toast/close/ToastClose.d.ts +1 -1
- package/esm/toast/content/ToastContent.d.ts +1 -1
- package/esm/toast/description/ToastDescription.d.ts +1 -1
- package/esm/toast/portal/ToastPortal.d.ts +1 -1
- package/esm/toast/positioner/ToastPositioner.d.ts +1 -1
- package/esm/toast/provider/ToastProvider.js +46 -19
- package/esm/toast/root/ToastRoot.d.ts +1 -1
- package/esm/toast/title/ToastTitle.d.ts +1 -1
- 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 +1 -1
- package/esm/toolbar/group/ToolbarGroup.d.ts +1 -1
- package/esm/toolbar/input/ToolbarInput.d.ts +1 -1
- package/esm/toolbar/link/ToolbarLink.d.ts +1 -1
- package/esm/toolbar/root/ToolbarRoot.d.ts +1 -1
- package/esm/toolbar/separator/ToolbarSeparator.d.ts +1 -1
- package/esm/tooltip/arrow/TooltipArrow.d.ts +1 -1
- package/esm/tooltip/popup/TooltipPopup.d.ts +1 -1
- package/esm/tooltip/popup/TooltipPopup.js +0 -31
- package/esm/tooltip/portal/TooltipPortal.d.ts +1 -1
- package/esm/tooltip/positioner/TooltipPositioner.d.ts +1 -1
- package/esm/tooltip/positioner/TooltipPositioner.js +2 -1
- package/esm/tooltip/root/TooltipRoot.d.ts +4 -6
- package/esm/tooltip/root/TooltipRoot.js +1 -2
- package/esm/tooltip/store/TooltipStore.d.ts +4 -2
- package/esm/tooltip/store/TooltipStore.js +7 -4
- package/esm/tooltip/trigger/TooltipTrigger.js +1 -1
- package/esm/tooltip/viewport/TooltipViewport.d.ts +1 -1
- package/esm/tooltip/viewport/TooltipViewport.js +28 -12
- package/esm/use-render/index.d.ts +2 -1
- package/esm/use-render/index.js +2 -1
- package/esm/utils/FloatingPortalLite.d.ts +1 -1
- package/esm/utils/popups/popupStoreUtils.js +21 -2
- package/esm/utils/resolveValueLabel.d.ts +5 -1
- package/esm/utils/resolveValueLabel.js +46 -22
- package/esm/utils/styles.d.ts +1 -1
- package/esm/utils/styles.js +10 -6
- package/esm/utils/types.d.ts +1 -1
- package/esm/utils/useAnimationsFinished.d.ts +2 -2
- package/esm/utils/useAnimationsFinished.js +56 -33
- package/esm/utils/useOpenChangeComplete.js +8 -10
- package/esm/utils/useOpenInteractionType.js +6 -1
- package/esm/utils/usePopupAutoResize.js +82 -46
- package/field/control/FieldControl.d.ts +1 -1
- package/field/description/FieldDescription.d.ts +1 -1
- package/field/error/FieldError.d.ts +1 -1
- package/field/index.d.ts +2 -1
- package/field/item/FieldItem.d.ts +1 -1
- package/field/label/FieldLabel.d.ts +11 -2
- package/field/label/FieldLabel.js +51 -11
- package/field/root/FieldRoot.d.ts +10 -1
- package/field/root/FieldRoot.js +8 -0
- package/field/useField.js +7 -3
- package/fieldset/legend/FieldsetLegend.d.ts +1 -1
- package/fieldset/root/FieldsetRoot.d.ts +1 -1
- package/floating-ui-react/components/FloatingFocusManager.js +7 -6
- package/floating-ui-react/components/FloatingPortal.d.ts +2 -2
- package/floating-ui-react/components/FloatingPortal.js +11 -2
- package/floating-ui-react/hooks/useClientPoint.js +5 -4
- package/floating-ui-react/hooks/useDismiss.js +16 -3
- package/floating-ui-react/hooks/useFocus.d.ts +5 -0
- package/floating-ui-react/hooks/useFocus.js +43 -9
- package/floating-ui-react/hooks/useHoverReferenceInteraction.js +17 -4
- package/floating-ui-react/hooks/useSyncedFloatingRootContext.js +3 -0
- package/form/Form.d.ts +18 -1
- package/form/Form.js +17 -0
- package/form/FormContext.d.ts +1 -1
- package/index.d.ts +1 -0
- package/index.js +12 -1
- package/input/Input.d.ts +1 -1
- package/menu/arrow/MenuArrow.d.ts +1 -1
- package/menu/backdrop/MenuBackdrop.d.ts +1 -1
- package/menu/checkbox-item/MenuCheckboxItem.d.ts +1 -1
- package/menu/checkbox-item-indicator/MenuCheckboxItemIndicator.d.ts +1 -1
- package/menu/group/MenuGroup.d.ts +1 -1
- package/menu/group-label/MenuGroupLabel.d.ts +1 -1
- package/menu/item/MenuItem.d.ts +1 -1
- package/menu/popup/MenuPopup.d.ts +1 -1
- package/menu/popup/MenuPopup.js +4 -3
- package/menu/portal/MenuPortal.d.ts +1 -1
- package/menu/positioner/MenuPositioner.d.ts +1 -1
- package/menu/radio-group/MenuRadioGroup.d.ts +1 -1
- package/menu/radio-item/MenuRadioItem.d.ts +1 -1
- package/menu/radio-item-indicator/MenuRadioItemIndicator.d.ts +1 -1
- package/menu/root/MenuRoot.d.ts +7 -6
- package/menu/root/MenuRoot.js +4 -2
- package/menu/store/MenuStore.js +3 -3
- package/menu/submenu-trigger/MenuSubmenuTrigger.d.ts +1 -1
- package/menu/trigger/MenuTrigger.js +14 -14
- package/menubar/Menubar.d.ts +1 -1
- package/merge-props/mergeProps.d.ts +31 -11
- package/merge-props/mergeProps.js +29 -8
- package/meter/indicator/MeterIndicator.d.ts +1 -1
- package/meter/label/MeterLabel.d.ts +1 -1
- package/meter/root/MeterRoot.d.ts +1 -1
- package/meter/track/MeterTrack.d.ts +1 -1
- package/meter/value/MeterValue.d.ts +1 -1
- package/navigation-menu/arrow/NavigationMenuArrow.d.ts +1 -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 +6 -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/popup/NavigationMenuPopup.d.ts +1 -1
- package/navigation-menu/portal/NavigationMenuPortal.d.ts +1 -1
- package/navigation-menu/positioner/NavigationMenuPositioner.d.ts +1 -1
- package/navigation-menu/root/NavigationMenuRoot.d.ts +2 -2
- package/navigation-menu/trigger/NavigationMenuTrigger.d.ts +1 -1
- package/navigation-menu/viewport/NavigationMenuViewport.d.ts +1 -1
- package/number-field/decrement/NumberFieldDecrement.d.ts +1 -1
- package/number-field/decrement/NumberFieldDecrement.js +4 -6
- package/number-field/group/NumberFieldGroup.d.ts +1 -1
- package/number-field/increment/NumberFieldIncrement.d.ts +1 -1
- package/number-field/increment/NumberFieldIncrement.js +4 -6
- package/number-field/input/NumberFieldInput.d.ts +1 -1
- package/number-field/input/NumberFieldInput.js +5 -2
- package/number-field/root/NumberFieldRoot.d.ts +5 -4
- package/number-field/root/NumberFieldRoot.js +11 -4
- package/number-field/root/useNumberFieldButton.d.ts +0 -3
- package/number-field/root/useNumberFieldButton.js +5 -11
- package/number-field/scrub-area/NumberFieldScrubArea.d.ts +1 -1
- package/number-field/scrub-area-cursor/NumberFieldScrubAreaCursor.d.ts +1 -1
- package/package.json +13 -3
- package/popover/arrow/PopoverArrow.d.ts +1 -1
- package/popover/backdrop/PopoverBackdrop.d.ts +1 -1
- package/popover/close/PopoverClose.d.ts +1 -1
- package/popover/description/PopoverDescription.d.ts +1 -1
- package/popover/popup/PopoverPopup.d.ts +1 -1
- package/popover/popup/PopoverPopup.js +0 -30
- package/popover/portal/PopoverPortal.d.ts +1 -1
- package/popover/positioner/PopoverPositioner.d.ts +1 -1
- package/popover/positioner/PopoverPositioner.js +2 -1
- package/popover/root/PopoverRoot.d.ts +2 -2
- package/popover/store/PopoverStore.d.ts +4 -2
- package/popover/store/PopoverStore.js +8 -5
- package/popover/title/PopoverTitle.d.ts +1 -1
- package/popover/trigger/PopoverTrigger.js +2 -2
- package/popover/viewport/PopoverViewport.d.ts +1 -1
- package/popover/viewport/PopoverViewport.js +28 -12
- package/preview-card/arrow/PreviewCardArrow.d.ts +1 -1
- package/preview-card/arrow/PreviewCardArrow.js +2 -3
- package/preview-card/backdrop/PreviewCardBackdrop.d.ts +1 -1
- package/preview-card/backdrop/PreviewCardBackdrop.js +4 -5
- package/preview-card/index.parts.d.ts +3 -1
- package/preview-card/index.parts.js +21 -1
- package/preview-card/popup/PreviewCardPopup.d.ts +2 -1
- package/preview-card/popup/PreviewCardPopup.js +17 -11
- package/preview-card/portal/PreviewCardPortal.d.ts +1 -1
- package/preview-card/portal/PreviewCardPortal.js +2 -3
- package/preview-card/positioner/PreviewCardPositioner.d.ts +2 -1
- package/preview-card/positioner/PreviewCardPositioner.js +16 -11
- package/preview-card/root/PreviewCardContext.d.ts +5 -26
- package/preview-card/root/PreviewCardContext.js +2 -2
- package/preview-card/root/PreviewCardRoot.d.ts +35 -10
- package/preview-card/root/PreviewCardRoot.js +59 -113
- package/preview-card/store/PreviewCardHandle.d.ts +33 -0
- package/preview-card/store/PreviewCardHandle.js +63 -0
- package/preview-card/store/PreviewCardStore.d.ts +36 -0
- package/preview-card/store/PreviewCardStore.js +105 -0
- package/preview-card/trigger/PreviewCardTrigger.d.ts +15 -3
- package/preview-card/trigger/PreviewCardTrigger.js +50 -13
- package/preview-card/viewport/PreviewCardViewport.d.ts +22 -0
- package/preview-card/viewport/PreviewCardViewport.js +278 -0
- package/preview-card/viewport/PreviewCardViewportCssVars.d.ts +14 -0
- package/preview-card/viewport/PreviewCardViewportCssVars.js +21 -0
- package/preview-card/viewport/PreviewCardViewportDataAttributes.d.ts +26 -0
- package/preview-card/viewport/PreviewCardViewportDataAttributes.js +33 -0
- package/progress/indicator/ProgressIndicator.d.ts +1 -1
- package/progress/label/ProgressLabel.d.ts +1 -1
- package/progress/root/ProgressRoot.d.ts +1 -1
- package/progress/track/ProgressTrack.d.ts +1 -1
- package/progress/value/ProgressValue.d.ts +1 -1
- package/radio/indicator/RadioIndicator.d.ts +1 -1
- package/radio/root/RadioRoot.d.ts +1 -1
- package/radio/root/RadioRoot.js +8 -8
- package/radio-group/RadioGroup.d.ts +4 -4
- package/radio-group/RadioGroup.js +1 -1
- package/scroll-area/content/ScrollAreaContent.d.ts +1 -1
- package/scroll-area/content/ScrollAreaContent.js +10 -1
- package/scroll-area/corner/ScrollAreaCorner.d.ts +1 -1
- package/scroll-area/corner/ScrollAreaCorner.js +1 -1
- package/scroll-area/root/ScrollAreaRoot.d.ts +26 -2
- package/scroll-area/root/ScrollAreaRoot.js +33 -29
- package/scroll-area/root/ScrollAreaRootContext.d.ts +10 -43
- package/scroll-area/scrollbar/ScrollAreaScrollbar.d.ts +1 -1
- package/scroll-area/scrollbar/ScrollAreaScrollbar.js +4 -4
- package/scroll-area/thumb/ScrollAreaThumb.d.ts +2 -2
- package/scroll-area/thumb/ScrollAreaThumb.js +1 -1
- package/scroll-area/viewport/ScrollAreaViewport.d.ts +1 -1
- package/scroll-area/viewport/ScrollAreaViewport.js +51 -25
- package/select/arrow/SelectArrow.d.ts +1 -1
- package/select/backdrop/SelectBackdrop.d.ts +1 -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/item/SelectItem.d.ts +1 -1
- package/select/item/SelectItem.js +0 -1
- package/select/item-indicator/SelectItemIndicator.d.ts +1 -1
- package/select/item-text/SelectItemText.d.ts +1 -1
- package/select/list/SelectList.d.ts +1 -1
- package/select/popup/SelectPopup.d.ts +1 -1
- package/select/popup/SelectPopup.js +154 -95
- package/select/portal/SelectPortal.d.ts +1 -1
- package/select/positioner/SelectPositioner.d.ts +1 -1
- package/select/root/SelectRoot.d.ts +2 -2
- package/select/root/SelectRoot.js +24 -11
- package/select/scroll-arrow/SelectScrollArrow.d.ts +1 -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 +2 -1
- package/select/store.js +18 -12
- package/select/trigger/SelectTrigger.d.ts +14 -4
- package/select/trigger/SelectTrigger.js +50 -18
- package/select/value/SelectValue.d.ts +6 -1
- package/select/value/SelectValue.js +18 -4
- package/separator/Separator.d.ts +1 -1
- package/slider/control/SliderControl.d.ts +1 -1
- package/slider/control/SliderControl.js +1 -1
- package/slider/control/SliderControlDataAttributes.d.ts +0 -8
- package/slider/control/SliderControlDataAttributes.js +0 -8
- package/slider/indicator/SliderIndicator.d.ts +1 -1
- package/slider/indicator/SliderIndicatorDataAttributes.d.ts +0 -8
- package/slider/indicator/SliderIndicatorDataAttributes.js +0 -8
- package/slider/root/SliderRootDataAttributes.d.ts +0 -8
- package/slider/root/SliderRootDataAttributes.js +0 -8
- package/slider/thumb/SliderThumb.d.ts +2 -2
- package/slider/thumb/SliderThumb.js +7 -1
- package/slider/thumb/SliderThumbDataAttributes.d.ts +0 -8
- package/slider/thumb/SliderThumbDataAttributes.js +0 -8
- package/slider/track/SliderTrack.d.ts +1 -1
- package/slider/track/SliderTrackDataAttributes.d.ts +0 -8
- package/slider/track/SliderTrackDataAttributes.js +0 -8
- package/slider/value/SliderValue.d.ts +1 -1
- package/slider/value/SliderValueDataAttributes.d.ts +0 -8
- package/slider/value/SliderValueDataAttributes.js +0 -8
- package/switch/root/SwitchRoot.d.ts +6 -1
- package/switch/root/SwitchRoot.js +14 -5
- package/switch/thumb/SwitchThumb.d.ts +1 -1
- package/tabs/indicator/TabsIndicator.d.ts +1 -1
- package/tabs/indicator/TabsIndicator.js +6 -0
- package/tabs/list/TabsList.d.ts +1 -1
- package/tabs/panel/TabsPanel.d.ts +1 -1
- package/tabs/root/TabsRoot.d.ts +1 -1
- package/tabs/tab/TabsTab.d.ts +1 -1
- package/toast/action/ToastAction.d.ts +1 -1
- package/toast/arrow/ToastArrow.d.ts +1 -1
- package/toast/close/ToastClose.d.ts +1 -1
- package/toast/content/ToastContent.d.ts +1 -1
- package/toast/description/ToastDescription.d.ts +1 -1
- package/toast/portal/ToastPortal.d.ts +1 -1
- package/toast/positioner/ToastPositioner.d.ts +1 -1
- package/toast/provider/ToastProvider.js +46 -19
- package/toast/root/ToastRoot.d.ts +1 -1
- package/toast/title/ToastTitle.d.ts +1 -1
- 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 +1 -1
- package/toolbar/group/ToolbarGroup.d.ts +1 -1
- package/toolbar/input/ToolbarInput.d.ts +1 -1
- package/toolbar/link/ToolbarLink.d.ts +1 -1
- package/toolbar/root/ToolbarRoot.d.ts +1 -1
- package/toolbar/separator/ToolbarSeparator.d.ts +1 -1
- package/tooltip/arrow/TooltipArrow.d.ts +1 -1
- package/tooltip/popup/TooltipPopup.d.ts +1 -1
- package/tooltip/popup/TooltipPopup.js +0 -31
- package/tooltip/portal/TooltipPortal.d.ts +1 -1
- package/tooltip/positioner/TooltipPositioner.d.ts +1 -1
- package/tooltip/positioner/TooltipPositioner.js +2 -1
- package/tooltip/root/TooltipRoot.d.ts +4 -6
- package/tooltip/root/TooltipRoot.js +1 -2
- package/tooltip/store/TooltipStore.d.ts +4 -2
- package/tooltip/store/TooltipStore.js +7 -4
- package/tooltip/trigger/TooltipTrigger.js +1 -1
- package/tooltip/viewport/TooltipViewport.d.ts +1 -1
- package/tooltip/viewport/TooltipViewport.js +28 -12
- package/use-render/index.d.ts +2 -1
- package/utils/FloatingPortalLite.d.ts +1 -1
- package/utils/popups/popupStoreUtils.js +21 -2
- package/utils/resolveValueLabel.d.ts +5 -1
- package/utils/resolveValueLabel.js +48 -22
- package/utils/styles.d.ts +1 -1
- package/utils/styles.js +10 -6
- package/utils/types.d.ts +1 -1
- package/utils/useAnimationsFinished.d.ts +2 -2
- package/utils/useAnimationsFinished.js +56 -33
- package/utils/useOpenChangeComplete.js +8 -10
- package/utils/useOpenInteractionType.js +6 -1
- package/utils/usePopupAutoResize.js +82 -46
- package/esm/utils/interactions/useFocusWithDelay.d.ts +0 -9
- package/esm/utils/interactions/useFocusWithDelay.js +0 -81
- package/utils/interactions/useFocusWithDelay.d.ts +0 -9
- package/utils/interactions/useFocusWithDelay.js +0 -87
- /package/esm/utils/{useMixedToggleClickHander.d.ts → useMixedToggleClickHandler.d.ts} +0 -0
- /package/esm/utils/{useMixedToggleClickHander.js → useMixedToggleClickHandler.js} +0 -0
- /package/utils/{useMixedToggleClickHander.d.ts → useMixedToggleClickHandler.d.ts} +0 -0
- /package/utils/{useMixedToggleClickHander.js → useMixedToggleClickHandler.js} +0 -0
|
@@ -13,9 +13,12 @@ var _usePreviousValue = require("@base-ui/utils/usePreviousValue");
|
|
|
13
13
|
var _useIsoLayoutEffect = require("@base-ui/utils/useIsoLayoutEffect");
|
|
14
14
|
var _useStableCallback = require("@base-ui/utils/useStableCallback");
|
|
15
15
|
var _TooltipRootContext = require("../root/TooltipRootContext");
|
|
16
|
+
var _TooltipPositionerContext = require("../positioner/TooltipPositionerContext");
|
|
16
17
|
var _useAnimationsFinished = require("../../utils/useAnimationsFinished");
|
|
18
|
+
var _usePopupAutoResize = require("../../utils/usePopupAutoResize");
|
|
17
19
|
var _useRenderElement = require("../../utils/useRenderElement");
|
|
18
20
|
var _TooltipViewportCssVars = require("./TooltipViewportCssVars");
|
|
21
|
+
var _directionProvider = require("../../direction-provider");
|
|
19
22
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
20
23
|
const stateAttributesMapping = {
|
|
21
24
|
activationDirection: value => value ? {
|
|
@@ -39,10 +42,15 @@ const TooltipViewport = exports.TooltipViewport = /*#__PURE__*/React.forwardRef(
|
|
|
39
42
|
...elementProps
|
|
40
43
|
} = componentProps;
|
|
41
44
|
const store = (0, _TooltipRootContext.useTooltipRootContext)();
|
|
45
|
+
const positioner = (0, _TooltipPositionerContext.useTooltipPositionerContext)();
|
|
46
|
+
const direction = (0, _directionProvider.useDirection)();
|
|
42
47
|
const activeTrigger = store.useState('activeTriggerElement');
|
|
43
48
|
const open = store.useState('open');
|
|
44
|
-
const floatingContext = store.useState('floatingRootContext');
|
|
45
49
|
const instantType = store.useState('instantType');
|
|
50
|
+
const mounted = store.useState('mounted');
|
|
51
|
+
const payload = store.useState('payload');
|
|
52
|
+
const popupElement = store.useState('popupElement');
|
|
53
|
+
const positionerElement = store.useState('positionerElement');
|
|
46
54
|
const previousActiveTrigger = (0, _usePreviousValue.usePreviousValue)(open ? activeTrigger : null);
|
|
47
55
|
const capturedNodeRef = React.useRef(null);
|
|
48
56
|
const [previousContentNode, setPreviousContentNode] = React.useState(null);
|
|
@@ -53,27 +61,25 @@ const TooltipViewport = exports.TooltipViewport = /*#__PURE__*/React.forwardRef(
|
|
|
53
61
|
const cleanupFrame = (0, _useAnimationFrame.useAnimationFrame)();
|
|
54
62
|
const [previousContentDimensions, setPreviousContentDimensions] = React.useState(null);
|
|
55
63
|
const [showStartingStyleAttribute, setShowStartingStyleAttribute] = React.useState(false);
|
|
64
|
+
(0, _useIsoLayoutEffect.useIsoLayoutEffect)(() => {
|
|
65
|
+
store.set('hasViewport', true);
|
|
66
|
+
return () => {
|
|
67
|
+
store.set('hasViewport', false);
|
|
68
|
+
};
|
|
69
|
+
}, [store]);
|
|
56
70
|
const handleMeasureLayout = (0, _useStableCallback.useStableCallback)(() => {
|
|
57
71
|
currentContainerRef.current?.style.setProperty('animation', 'none');
|
|
58
72
|
currentContainerRef.current?.style.setProperty('transition', 'none');
|
|
59
73
|
previousContainerRef.current?.style.setProperty('display', 'none');
|
|
60
74
|
});
|
|
61
|
-
const handleMeasureLayoutComplete = (0, _useStableCallback.useStableCallback)(
|
|
75
|
+
const handleMeasureLayoutComplete = (0, _useStableCallback.useStableCallback)(previousDimensions => {
|
|
62
76
|
currentContainerRef.current?.style.removeProperty('animation');
|
|
63
77
|
currentContainerRef.current?.style.removeProperty('transition');
|
|
64
78
|
previousContainerRef.current?.style.removeProperty('display');
|
|
65
|
-
if (
|
|
66
|
-
setPreviousContentDimensions(
|
|
79
|
+
if (previousDimensions) {
|
|
80
|
+
setPreviousContentDimensions(previousDimensions);
|
|
67
81
|
}
|
|
68
82
|
});
|
|
69
|
-
React.useEffect(() => {
|
|
70
|
-
floatingContext.context.events.on('measure-layout', handleMeasureLayout);
|
|
71
|
-
floatingContext.context.events.on('measure-layout-complete', handleMeasureLayoutComplete);
|
|
72
|
-
return () => {
|
|
73
|
-
floatingContext.context.events.off('measure-layout', handleMeasureLayout);
|
|
74
|
-
floatingContext.context.events.off('measure-layout-complete', handleMeasureLayoutComplete);
|
|
75
|
-
};
|
|
76
|
-
}, [floatingContext, handleMeasureLayout, handleMeasureLayoutComplete]);
|
|
77
83
|
const lastHandledTriggerRef = React.useRef(null);
|
|
78
84
|
(0, _useIsoLayoutEffect.useIsoLayoutEffect)(() => {
|
|
79
85
|
// When a trigger changes, set the captured children HTML to state,
|
|
@@ -156,6 +162,16 @@ const TooltipViewport = exports.TooltipViewport = /*#__PURE__*/React.forwardRef(
|
|
|
156
162
|
}
|
|
157
163
|
container.replaceChildren(...Array.from(previousContentNode.childNodes));
|
|
158
164
|
}, [previousContentNode]);
|
|
165
|
+
(0, _usePopupAutoResize.usePopupAutoResize)({
|
|
166
|
+
popupElement,
|
|
167
|
+
positionerElement,
|
|
168
|
+
mounted,
|
|
169
|
+
content: payload,
|
|
170
|
+
onMeasureLayout: handleMeasureLayout,
|
|
171
|
+
onMeasureLayoutComplete: handleMeasureLayoutComplete,
|
|
172
|
+
side: positioner.side,
|
|
173
|
+
direction
|
|
174
|
+
});
|
|
159
175
|
const state = React.useMemo(() => {
|
|
160
176
|
return {
|
|
161
177
|
activationDirection: getActivationDirection(newTriggerOffset),
|
package/use-render/index.d.ts
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export * from "./useRender.js";
|
|
1
|
+
export * from "./useRender.js";
|
|
2
|
+
export type { HTMLProps, ComponentRenderFn } from "../utils/types.js";
|
|
@@ -5,7 +5,7 @@ import { type FloatingPortal } from "../floating-ui-react/index.js";
|
|
|
5
5
|
* For components that don't need tabbable logic, use `FloatingPortalLite`.
|
|
6
6
|
* @internal
|
|
7
7
|
*/
|
|
8
|
-
export declare const FloatingPortalLite: React.ForwardRefExoticComponent<FloatingPortalLite.Props<any> & React.RefAttributes<HTMLDivElement>>;
|
|
8
|
+
export declare const FloatingPortalLite: React.ForwardRefExoticComponent<Omit<FloatingPortalLite.Props<any>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
9
9
|
export interface FloatingPortalLiteProps<State> extends FloatingPortal.Props<State> {}
|
|
10
10
|
export declare namespace FloatingPortalLite {
|
|
11
11
|
type Props<State> = FloatingPortalLiteProps<State>;
|
|
@@ -21,16 +21,24 @@ var _useOpenChangeComplete = require("../useOpenChangeComplete");
|
|
|
21
21
|
function useTriggerRegistration(id, store) {
|
|
22
22
|
// Keep track of the currently registered element to unregister it on unmount or id change.
|
|
23
23
|
const registeredElementIdRef = React.useRef(null);
|
|
24
|
+
const registeredElementRef = React.useRef(null);
|
|
24
25
|
return React.useCallback(element => {
|
|
25
26
|
if (id === undefined) {
|
|
26
27
|
return;
|
|
27
28
|
}
|
|
28
29
|
if (registeredElementIdRef.current !== null) {
|
|
29
|
-
|
|
30
|
+
const registeredId = registeredElementIdRef.current;
|
|
31
|
+
const registeredElement = registeredElementRef.current;
|
|
32
|
+
const currentElement = store.context.triggerElements.getById(registeredId);
|
|
33
|
+
if (registeredElement && currentElement === registeredElement) {
|
|
34
|
+
store.context.triggerElements.delete(registeredId);
|
|
35
|
+
}
|
|
30
36
|
registeredElementIdRef.current = null;
|
|
37
|
+
registeredElementRef.current = null;
|
|
31
38
|
}
|
|
32
39
|
if (element !== null) {
|
|
33
40
|
registeredElementIdRef.current = id;
|
|
41
|
+
registeredElementRef.current = element;
|
|
34
42
|
store.context.triggerElements.add(id, element);
|
|
35
43
|
}
|
|
36
44
|
}, [store, id]);
|
|
@@ -49,7 +57,18 @@ function useTriggerDataForwarding(triggerId, triggerElementRef, store, stateUpda
|
|
|
49
57
|
const baseRegisterTrigger = useTriggerRegistration(triggerId, store);
|
|
50
58
|
const registerTrigger = (0, _useStableCallback.useStableCallback)(element => {
|
|
51
59
|
baseRegisterTrigger(element);
|
|
52
|
-
if (element
|
|
60
|
+
if (!element || !store.select('open')) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
const activeTriggerId = store.select('activeTriggerId');
|
|
64
|
+
if (activeTriggerId === triggerId) {
|
|
65
|
+
store.update({
|
|
66
|
+
activeTriggerElement: element,
|
|
67
|
+
...stateUpdates
|
|
68
|
+
});
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
if (activeTriggerId == null) {
|
|
53
72
|
// This runs when popup is open, but no active trigger is set.
|
|
54
73
|
// It can happen when using controlled mode and the trigger is mounted after opening or if `triggerId` prop is not set explicitly.
|
|
55
74
|
// In such cases the first trigger to run this code becomes the active trigger (store.select('activeTriggerId') should not return null after that).
|
|
@@ -10,8 +10,12 @@ export interface Group<Item = any> {
|
|
|
10
10
|
items: Item[];
|
|
11
11
|
}
|
|
12
12
|
export declare function isGroupedItems(items: ReadonlyArray<any | Group<any>> | undefined): items is Group<any>[];
|
|
13
|
+
/**
|
|
14
|
+
* Checks if the items array contains an item with a null value that has a non-null label.
|
|
15
|
+
*/
|
|
16
|
+
export declare function hasNullItemLabel(items: ItemsInput): boolean;
|
|
13
17
|
export declare function stringifyAsLabel(item: any, itemToStringLabel?: (item: any) => string): string;
|
|
14
18
|
export declare function stringifyAsValue(item: any, itemToStringValue?: (item: any) => string): string;
|
|
15
19
|
export declare function resolveSelectedLabel(value: any, items: ItemsInput, itemToStringLabel?: (item: any) => string): React.ReactNode;
|
|
16
|
-
export declare function resolveMultipleLabels(values: any[]
|
|
20
|
+
export declare function resolveMultipleLabels(values: any[], items: ItemsInput, itemToStringLabel?: (item: any) => string): React.ReactNode;
|
|
17
21
|
export {};
|
|
@@ -1,18 +1,47 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
'use client';
|
|
3
3
|
|
|
4
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
6
7
|
});
|
|
8
|
+
exports.hasNullItemLabel = hasNullItemLabel;
|
|
7
9
|
exports.isGroupedItems = isGroupedItems;
|
|
8
10
|
exports.resolveMultipleLabels = resolveMultipleLabels;
|
|
9
11
|
exports.resolveSelectedLabel = resolveSelectedLabel;
|
|
10
12
|
exports.stringifyAsLabel = stringifyAsLabel;
|
|
11
13
|
exports.stringifyAsValue = stringifyAsValue;
|
|
14
|
+
var React = _interopRequireWildcard(require("react"));
|
|
12
15
|
var _serializeValue = require("./serializeValue");
|
|
16
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
17
|
function isGroupedItems(items) {
|
|
14
18
|
return items != null && items.length > 0 && typeof items[0] === 'object' && items[0] != null && 'items' in items[0];
|
|
15
19
|
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Checks if the items array contains an item with a null value that has a non-null label.
|
|
23
|
+
*/
|
|
24
|
+
function hasNullItemLabel(items) {
|
|
25
|
+
if (!Array.isArray(items)) {
|
|
26
|
+
return items != null && !('null' in items);
|
|
27
|
+
}
|
|
28
|
+
if (isGroupedItems(items)) {
|
|
29
|
+
for (const group of items) {
|
|
30
|
+
for (const item of group.items) {
|
|
31
|
+
if (item && item.value == null && item.label != null) {
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
for (const item of items) {
|
|
39
|
+
if (item && item.value == null && item.label != null) {
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
16
45
|
function stringifyAsLabel(item, itemToStringLabel) {
|
|
17
46
|
if (itemToStringLabel && item != null) {
|
|
18
47
|
return itemToStringLabel(item) ?? '';
|
|
@@ -37,6 +66,9 @@ function stringifyAsValue(item, itemToStringValue) {
|
|
|
37
66
|
return (0, _serializeValue.serializeValue)(item);
|
|
38
67
|
}
|
|
39
68
|
function resolveSelectedLabel(value, items, itemToStringLabel) {
|
|
69
|
+
function fallback() {
|
|
70
|
+
return stringifyAsLabel(value, itemToStringLabel);
|
|
71
|
+
}
|
|
40
72
|
if (itemToStringLabel && value != null) {
|
|
41
73
|
return itemToStringLabel(value);
|
|
42
74
|
}
|
|
@@ -48,44 +80,38 @@ function resolveSelectedLabel(value, items, itemToStringLabel) {
|
|
|
48
80
|
|
|
49
81
|
// Items provided as plain record map
|
|
50
82
|
if (items && !Array.isArray(items)) {
|
|
51
|
-
return items[value] ??
|
|
83
|
+
return items[value] ?? fallback();
|
|
52
84
|
}
|
|
53
85
|
|
|
54
86
|
// Items provided as array (flat or grouped)
|
|
55
87
|
if (Array.isArray(items)) {
|
|
56
88
|
const flatItems = isGroupedItems(items) ? items.flatMap(g => g.items) : items;
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
if (value == null) {
|
|
60
|
-
const nullItem = flatItems.find(it => it.value == null);
|
|
61
|
-
if (nullItem && nullItem.label != null) {
|
|
62
|
-
return nullItem.label;
|
|
63
|
-
}
|
|
64
|
-
return stringifyAsLabel(value, itemToStringLabel);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
// Primitive selected value: map to first matching item's label
|
|
68
|
-
if (typeof value !== 'object') {
|
|
69
|
-
const match = flatItems.find(it => it && it.value === value);
|
|
89
|
+
if (value == null || typeof value !== 'object') {
|
|
90
|
+
const match = flatItems.find(item => item.value === value);
|
|
70
91
|
if (match && match.label != null) {
|
|
71
92
|
return match.label;
|
|
72
93
|
}
|
|
73
|
-
return
|
|
94
|
+
return fallback();
|
|
74
95
|
}
|
|
75
96
|
|
|
76
97
|
// Object without explicit label: try matching by its `value` property
|
|
77
98
|
if ('value' in value) {
|
|
78
|
-
const match = flatItems.find(
|
|
99
|
+
const match = flatItems.find(item => item && item.value === value.value);
|
|
79
100
|
if (match && match.label != null) {
|
|
80
101
|
return match.label;
|
|
81
102
|
}
|
|
82
103
|
}
|
|
83
104
|
}
|
|
84
|
-
return
|
|
105
|
+
return fallback();
|
|
85
106
|
}
|
|
86
|
-
function resolveMultipleLabels(values, itemToStringLabel) {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
107
|
+
function resolveMultipleLabels(values, items, itemToStringLabel) {
|
|
108
|
+
return values.reduce((acc, value, index) => {
|
|
109
|
+
if (index > 0) {
|
|
110
|
+
acc.push(', ');
|
|
111
|
+
}
|
|
112
|
+
acc.push(/*#__PURE__*/(0, _jsxRuntime.jsx)(React.Fragment, {
|
|
113
|
+
children: resolveSelectedLabel(value, items, itemToStringLabel)
|
|
114
|
+
}, index));
|
|
115
|
+
return acc;
|
|
116
|
+
}, []);
|
|
91
117
|
}
|
package/utils/styles.d.ts
CHANGED
package/utils/styles.js
CHANGED
|
@@ -8,9 +8,13 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
8
8
|
const DISABLE_SCROLLBAR_CLASS_NAME = 'base-ui-disable-scrollbar';
|
|
9
9
|
const styleDisableScrollbar = exports.styleDisableScrollbar = {
|
|
10
10
|
className: DISABLE_SCROLLBAR_CLASS_NAME,
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}
|
|
11
|
+
getElement(nonce) {
|
|
12
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("style", {
|
|
13
|
+
nonce: nonce,
|
|
14
|
+
href: DISABLE_SCROLLBAR_CLASS_NAME,
|
|
15
|
+
precedence: "base-ui:low",
|
|
16
|
+
children: `.${DISABLE_SCROLLBAR_CLASS_NAME}{scrollbar-width:none}.${DISABLE_SCROLLBAR_CLASS_NAME}::-webkit-scrollbar{display:none}`
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
if (process.env.NODE_ENV !== "production") styleDisableScrollbar.getElement.displayName = "styleDisableScrollbar.getElement";
|
package/utils/types.d.ts
CHANGED
|
@@ -29,7 +29,7 @@ export type ComponentRenderFn<Props, State> = (props: Props, state: State) => Re
|
|
|
29
29
|
* Props shared by all Base UI components.
|
|
30
30
|
* Contains `className` (string or callback taking the component's state as an argument) and `render` (function to customize rendering).
|
|
31
31
|
*/
|
|
32
|
-
export type BaseUIComponentProps<ElementType extends React.ElementType, State, RenderFunctionProps = HTMLProps> = Omit<WithBaseUIEvent<React.
|
|
32
|
+
export type BaseUIComponentProps<ElementType extends React.ElementType, State, RenderFunctionProps = HTMLProps> = Omit<WithBaseUIEvent<React.ComponentPropsWithRef<ElementType>>, 'className' | 'color' | 'defaultValue' | 'defaultChecked'> & {
|
|
33
33
|
/**
|
|
34
34
|
* CSS class applied to the element, or a function that
|
|
35
35
|
* returns a class based on the component’s state.
|
|
@@ -2,9 +2,9 @@ import * as React from 'react';
|
|
|
2
2
|
/**
|
|
3
3
|
* Executes a function once all animations have finished on the provided element.
|
|
4
4
|
* @param elementOrRef - The element to watch for animations.
|
|
5
|
-
* @param
|
|
5
|
+
* @param waitForStartingStyleRemoved - Whether to wait for [data-starting-style] to be removed before checking for animations.
|
|
6
6
|
* @param treatAbortedAsFinished - Whether to treat aborted animations as finished. If `false`, and there are aborted animations,
|
|
7
7
|
* the function will check again if any new animations have started and wait for them to finish.
|
|
8
8
|
* @returns A function that takes a callback to execute once all animations have finished, and an optional AbortSignal to abort the callback
|
|
9
9
|
*/
|
|
10
|
-
export declare function useAnimationsFinished(elementOrRef: React.RefObject<HTMLElement | null> | HTMLElement | null,
|
|
10
|
+
export declare function useAnimationsFinished(elementOrRef: React.RefObject<HTMLElement | null> | HTMLElement | null, waitForStartingStyleRemoved?: boolean, treatAbortedAsFinished?: boolean): (fnToExecute: () => void, signal?: AbortSignal | null) => void;
|
|
@@ -10,15 +10,16 @@ var ReactDOM = _interopRequireWildcard(require("react-dom"));
|
|
|
10
10
|
var _useAnimationFrame = require("@base-ui/utils/useAnimationFrame");
|
|
11
11
|
var _useStableCallback = require("@base-ui/utils/useStableCallback");
|
|
12
12
|
var _resolveRef = require("./resolveRef");
|
|
13
|
+
var _stateAttributesMapping = require("./stateAttributesMapping");
|
|
13
14
|
/**
|
|
14
15
|
* Executes a function once all animations have finished on the provided element.
|
|
15
16
|
* @param elementOrRef - The element to watch for animations.
|
|
16
|
-
* @param
|
|
17
|
+
* @param waitForStartingStyleRemoved - Whether to wait for [data-starting-style] to be removed before checking for animations.
|
|
17
18
|
* @param treatAbortedAsFinished - Whether to treat aborted animations as finished. If `false`, and there are aborted animations,
|
|
18
19
|
* the function will check again if any new animations have started and wait for them to finish.
|
|
19
20
|
* @returns A function that takes a callback to execute once all animations have finished, and an optional AbortSignal to abort the callback
|
|
20
21
|
*/
|
|
21
|
-
function useAnimationsFinished(elementOrRef,
|
|
22
|
+
function useAnimationsFinished(elementOrRef, waitForStartingStyleRemoved = false, treatAbortedAsFinished = true) {
|
|
22
23
|
const frame = (0, _useAnimationFrame.useAnimationFrame)();
|
|
23
24
|
return (0, _useStableCallback.useStableCallback)((fnToExecute,
|
|
24
25
|
/**
|
|
@@ -28,47 +29,69 @@ function useAnimationsFinished(elementOrRef, waitForNextTick = false, treatAbort
|
|
|
28
29
|
*/
|
|
29
30
|
signal = null) => {
|
|
30
31
|
frame.cancel();
|
|
32
|
+
function done() {
|
|
33
|
+
// Synchronously flush the unmounting of the component so that the browser doesn't
|
|
34
|
+
// paint: https://github.com/mui/base-ui/issues/979
|
|
35
|
+
ReactDOM.flushSync(fnToExecute);
|
|
36
|
+
}
|
|
31
37
|
const element = (0, _resolveRef.resolveRef)(elementOrRef);
|
|
32
38
|
if (element == null) {
|
|
33
39
|
return;
|
|
34
40
|
}
|
|
35
|
-
|
|
41
|
+
const resolvedElement = element;
|
|
42
|
+
if (typeof resolvedElement.getAnimations !== 'function' || globalThis.BASE_UI_ANIMATIONS_DISABLED) {
|
|
36
43
|
fnToExecute();
|
|
37
44
|
} else {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
45
|
+
function execWaitForStartingStyleRemoved() {
|
|
46
|
+
const startingStyleAttribute = _stateAttributesMapping.TransitionStatusDataAttributes.startingStyle;
|
|
47
|
+
|
|
48
|
+
// If `[data-starting-style]` isn't present, fall back to waiting one more frame
|
|
49
|
+
// to give "open" animations a chance to be registered.
|
|
50
|
+
if (!resolvedElement.hasAttribute(startingStyleAttribute)) {
|
|
51
|
+
frame.request(exec);
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// Wait for `[data-starting-style]` to have been removed.
|
|
56
|
+
const attributeObserver = new MutationObserver(() => {
|
|
57
|
+
if (!resolvedElement.hasAttribute(startingStyleAttribute)) {
|
|
58
|
+
attributeObserver.disconnect();
|
|
59
|
+
exec();
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
attributeObserver.observe(resolvedElement, {
|
|
63
|
+
attributes: true,
|
|
64
|
+
attributeFilter: [startingStyleAttribute]
|
|
65
|
+
});
|
|
66
|
+
signal?.addEventListener('abort', () => attributeObserver.disconnect(), {
|
|
67
|
+
once: true
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
function exec() {
|
|
71
|
+
Promise.all(resolvedElement.getAnimations().map(anim => anim.finished)).then(() => {
|
|
72
|
+
if (signal?.aborted) {
|
|
41
73
|
return;
|
|
42
74
|
}
|
|
43
|
-
|
|
44
|
-
|
|
75
|
+
done();
|
|
76
|
+
}).catch(() => {
|
|
77
|
+
const currentAnimations = resolvedElement.getAnimations();
|
|
78
|
+
if (treatAbortedAsFinished) {
|
|
79
|
+
if (signal?.aborted) {
|
|
45
80
|
return;
|
|
46
81
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
//
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
exec();
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
// `open: true` animations need to wait for the next tick to be detected
|
|
66
|
-
if (waitForNextTick) {
|
|
67
|
-
frame.request(exec);
|
|
68
|
-
} else {
|
|
69
|
-
exec();
|
|
70
|
-
}
|
|
71
|
-
});
|
|
82
|
+
done();
|
|
83
|
+
} else if (currentAnimations.length > 0 && currentAnimations.some(anim => anim.pending || anim.playState !== 'finished')) {
|
|
84
|
+
// Sometimes animations can be aborted because a property they depend on changes while the animation plays.
|
|
85
|
+
// In such cases, we need to re-check if any new animations have started.
|
|
86
|
+
exec();
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
if (waitForStartingStyleRemoved) {
|
|
91
|
+
execWaitForStartingStyleRemoved();
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
frame.request(exec);
|
|
72
95
|
}
|
|
73
96
|
});
|
|
74
97
|
}
|
|
@@ -8,7 +8,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
8
8
|
exports.useOpenChangeComplete = useOpenChangeComplete;
|
|
9
9
|
var React = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _useStableCallback = require("@base-ui/utils/useStableCallback");
|
|
11
|
-
var _useValueAsRef = require("@base-ui/utils/useValueAsRef");
|
|
12
11
|
var _useAnimationsFinished = require("./useAnimationsFinished");
|
|
13
12
|
/**
|
|
14
13
|
* Calls the provided function when the CSS open/close animation or transition completes.
|
|
@@ -20,17 +19,16 @@ function useOpenChangeComplete(parameters) {
|
|
|
20
19
|
ref,
|
|
21
20
|
onComplete: onCompleteParam
|
|
22
21
|
} = parameters;
|
|
23
|
-
const openRef = (0, _useValueAsRef.useValueAsRef)(open);
|
|
24
22
|
const onComplete = (0, _useStableCallback.useStableCallback)(onCompleteParam);
|
|
25
|
-
const runOnceAnimationsFinish = (0, _useAnimationsFinished.useAnimationsFinished)(ref, open);
|
|
23
|
+
const runOnceAnimationsFinish = (0, _useAnimationsFinished.useAnimationsFinished)(ref, open, false);
|
|
26
24
|
React.useEffect(() => {
|
|
27
25
|
if (!enabled) {
|
|
28
|
-
return;
|
|
26
|
+
return undefined;
|
|
29
27
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
}
|
|
35
|
-
}, [enabled, open, onComplete, runOnceAnimationsFinish
|
|
28
|
+
const abortController = new AbortController();
|
|
29
|
+
runOnceAnimationsFinish(onComplete, abortController.signal);
|
|
30
|
+
return () => {
|
|
31
|
+
abortController.abort();
|
|
32
|
+
};
|
|
33
|
+
}, [enabled, open, onComplete, runOnceAnimationsFinish]);
|
|
36
34
|
}
|
|
@@ -9,6 +9,7 @@ exports.useOpenInteractionType = useOpenInteractionType;
|
|
|
9
9
|
var React = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _useStableCallback = require("@base-ui/utils/useStableCallback");
|
|
11
11
|
var _useEnhancedClickHandler = require("@base-ui/utils/useEnhancedClickHandler");
|
|
12
|
+
var _detectBrowser = require("@base-ui/utils/detectBrowser");
|
|
12
13
|
/**
|
|
13
14
|
* Determines the interaction type (keyboard, mouse, touch, etc.) that opened the component.
|
|
14
15
|
*
|
|
@@ -18,7 +19,11 @@ function useOpenInteractionType(open) {
|
|
|
18
19
|
const [openMethod, setOpenMethod] = React.useState(null);
|
|
19
20
|
const handleTriggerClick = (0, _useStableCallback.useStableCallback)((_, interactionType) => {
|
|
20
21
|
if (!open) {
|
|
21
|
-
setOpenMethod(interactionType
|
|
22
|
+
setOpenMethod(interactionType || (
|
|
23
|
+
// On iOS Safari, the hitslop around touch targets means tapping outside an element's
|
|
24
|
+
// bounds does not fire `pointerdown` but does fire `mousedown`. The `interactionType`
|
|
25
|
+
// will be "" in that case.
|
|
26
|
+
_detectBrowser.isIOS ? 'touch' : ''));
|
|
22
27
|
}
|
|
23
28
|
});
|
|
24
29
|
const reset = React.useCallback(() => {
|