@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
|
@@ -8,7 +8,7 @@ export interface FormContext {
|
|
|
8
8
|
formRef: React.RefObject<{
|
|
9
9
|
fields: Map<string, {
|
|
10
10
|
name: string | undefined;
|
|
11
|
-
validate: () => void;
|
|
11
|
+
validate: (flushSync?: boolean | undefined) => void;
|
|
12
12
|
validityData: FieldValidityData;
|
|
13
13
|
controlRef: React.RefObject<HTMLElement | null>;
|
|
14
14
|
getValue: () => unknown;
|
package/esm/index.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export * from "./checkbox-group/index.js";
|
|
|
8
8
|
export * from "./collapsible/index.js";
|
|
9
9
|
export * from "./combobox/index.js";
|
|
10
10
|
export * from "./context-menu/index.js";
|
|
11
|
+
export * from "./csp-provider/index.js";
|
|
11
12
|
export * from "./dialog/index.js";
|
|
12
13
|
export * from "./direction-provider/index.js";
|
|
13
14
|
export * from "./field/index.js";
|
package/esm/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @base-ui/react v1.
|
|
2
|
+
* @base-ui/react v1.1.0
|
|
3
3
|
*
|
|
4
4
|
* @license MIT
|
|
5
5
|
* This source code is licensed under the MIT license found in the
|
|
@@ -15,6 +15,7 @@ export * from "./checkbox-group/index.js";
|
|
|
15
15
|
export * from "./collapsible/index.js";
|
|
16
16
|
export * from "./combobox/index.js";
|
|
17
17
|
export * from "./context-menu/index.js";
|
|
18
|
+
export * from "./csp-provider/index.js";
|
|
18
19
|
export * from "./dialog/index.js";
|
|
19
20
|
export * from "./direction-provider/index.js";
|
|
20
21
|
export * from "./field/index.js";
|
package/esm/input/Input.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ import { Field } from "../field/index.js";
|
|
|
7
7
|
*
|
|
8
8
|
* Documentation: [Base UI Input](https://base-ui.com/react/components/input)
|
|
9
9
|
*/
|
|
10
|
-
export declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
|
|
10
|
+
export declare const Input: React.ForwardRefExoticComponent<Omit<InputProps, "ref"> & React.RefAttributes<HTMLInputElement>>;
|
|
11
11
|
export interface InputProps extends BaseUIComponentProps<'input', Input.State> {
|
|
12
12
|
/**
|
|
13
13
|
* Callback fired when the `value` changes. Use when controlled.
|
|
@@ -7,7 +7,7 @@ import type { BaseUIComponentProps } from "../../utils/types.js";
|
|
|
7
7
|
*
|
|
8
8
|
* Documentation: [Base UI Menu](https://base-ui.com/react/components/menu)
|
|
9
9
|
*/
|
|
10
|
-
export declare const MenuArrow: React.ForwardRefExoticComponent<MenuArrowProps & React.RefAttributes<HTMLDivElement>>;
|
|
10
|
+
export declare const MenuArrow: React.ForwardRefExoticComponent<Omit<MenuArrowProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
11
11
|
export interface MenuArrowState {
|
|
12
12
|
/**
|
|
13
13
|
* Whether the menu is currently open.
|
|
@@ -7,7 +7,7 @@ import type { TransitionStatus } from "../../utils/useTransitionStatus.js";
|
|
|
7
7
|
*
|
|
8
8
|
* Documentation: [Base UI Menu](https://base-ui.com/react/components/menu)
|
|
9
9
|
*/
|
|
10
|
-
export declare const MenuBackdrop: React.ForwardRefExoticComponent<MenuBackdropProps & React.RefAttributes<HTMLDivElement>>;
|
|
10
|
+
export declare const MenuBackdrop: React.ForwardRefExoticComponent<Omit<MenuBackdropProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
11
11
|
export interface MenuBackdropState {
|
|
12
12
|
/**
|
|
13
13
|
* Whether the menu is currently open.
|
|
@@ -7,7 +7,7 @@ import type { MenuRoot } from "../root/MenuRoot.js";
|
|
|
7
7
|
*
|
|
8
8
|
* Documentation: [Base UI Menu](https://base-ui.com/react/components/menu)
|
|
9
9
|
*/
|
|
10
|
-
export declare const MenuCheckboxItem: React.ForwardRefExoticComponent<MenuCheckboxItemProps & React.RefAttributes<
|
|
10
|
+
export declare const MenuCheckboxItem: React.ForwardRefExoticComponent<Omit<MenuCheckboxItemProps, "ref"> & React.RefAttributes<HTMLElement>>;
|
|
11
11
|
export type MenuCheckboxItemState = {
|
|
12
12
|
/**
|
|
13
13
|
* Whether the checkbox item should ignore user interaction.
|
|
@@ -7,7 +7,7 @@ import { TransitionStatus } from "../../utils/useTransitionStatus.js";
|
|
|
7
7
|
*
|
|
8
8
|
* Documentation: [Base UI Menu](https://base-ui.com/react/components/menu)
|
|
9
9
|
*/
|
|
10
|
-
export declare const MenuCheckboxItemIndicator: React.ForwardRefExoticComponent<MenuCheckboxItemIndicatorProps & React.RefAttributes<HTMLSpanElement>>;
|
|
10
|
+
export declare const MenuCheckboxItemIndicator: React.ForwardRefExoticComponent<Omit<MenuCheckboxItemIndicatorProps, "ref"> & React.RefAttributes<HTMLSpanElement>>;
|
|
11
11
|
export interface MenuCheckboxItemIndicatorProps extends BaseUIComponentProps<'span', MenuCheckboxItemIndicator.State> {
|
|
12
12
|
/**
|
|
13
13
|
* Whether to keep the HTML element in the DOM when the checkbox item is not checked.
|
|
@@ -6,7 +6,7 @@ import { BaseUIComponentProps } from "../../utils/types.js";
|
|
|
6
6
|
*
|
|
7
7
|
* Documentation: [Base UI Menu](https://base-ui.com/react/components/menu)
|
|
8
8
|
*/
|
|
9
|
-
export declare const MenuGroup: React.ForwardRefExoticComponent<MenuGroupProps & React.RefAttributes<
|
|
9
|
+
export declare const MenuGroup: React.ForwardRefExoticComponent<Omit<MenuGroupProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
10
10
|
export interface MenuGroupProps extends BaseUIComponentProps<'div', MenuGroup.State> {
|
|
11
11
|
/**
|
|
12
12
|
* The content of the component.
|
|
@@ -6,7 +6,7 @@ import type { BaseUIComponentProps } from "../../utils/types.js";
|
|
|
6
6
|
*
|
|
7
7
|
* Documentation: [Base UI Menu](https://base-ui.com/react/components/menu)
|
|
8
8
|
*/
|
|
9
|
-
export declare const MenuGroupLabel: React.ForwardRefExoticComponent<MenuGroupLabelProps & React.RefAttributes<HTMLDivElement>>;
|
|
9
|
+
export declare const MenuGroupLabel: React.ForwardRefExoticComponent<Omit<MenuGroupLabelProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
10
10
|
export interface MenuGroupLabelProps extends BaseUIComponentProps<'div', MenuGroupLabel.State> {}
|
|
11
11
|
export interface MenuGroupLabelState {}
|
|
12
12
|
export declare namespace MenuGroupLabel {
|
|
@@ -6,7 +6,7 @@ import type { BaseUIComponentProps, NonNativeButtonProps } from "../../utils/typ
|
|
|
6
6
|
*
|
|
7
7
|
* Documentation: [Base UI Menu](https://base-ui.com/react/components/menu)
|
|
8
8
|
*/
|
|
9
|
-
export declare const MenuItem: React.ForwardRefExoticComponent<MenuItemProps & React.RefAttributes<
|
|
9
|
+
export declare const MenuItem: React.ForwardRefExoticComponent<Omit<MenuItemProps, "ref"> & React.RefAttributes<HTMLElement>>;
|
|
10
10
|
export interface MenuItemState {
|
|
11
11
|
/**
|
|
12
12
|
* Whether the item should ignore user interaction.
|
|
@@ -9,7 +9,7 @@ import type { TransitionStatus } from "../../utils/useTransitionStatus.js";
|
|
|
9
9
|
*
|
|
10
10
|
* Documentation: [Base UI Menu](https://base-ui.com/react/components/menu)
|
|
11
11
|
*/
|
|
12
|
-
export declare const MenuPopup: React.ForwardRefExoticComponent<MenuPopupProps & React.RefAttributes<
|
|
12
|
+
export declare const MenuPopup: React.ForwardRefExoticComponent<Omit<MenuPopupProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
13
13
|
export interface MenuPopupProps extends BaseUIComponentProps<'div', MenuPopup.State> {
|
|
14
14
|
children?: React.ReactNode;
|
|
15
15
|
/**
|
|
@@ -53,6 +53,7 @@ export const MenuPopup = /*#__PURE__*/React.forwardRef(function MenuPopup(compon
|
|
|
53
53
|
const floatingTreeRoot = store.useState('floatingTreeRoot');
|
|
54
54
|
const closeDelay = store.useState('closeDelay');
|
|
55
55
|
const activeTriggerElement = store.useState('activeTriggerElement');
|
|
56
|
+
const isContextMenu = parent.type === 'context-menu';
|
|
56
57
|
useOpenChangeComplete({
|
|
57
58
|
open,
|
|
58
59
|
ref: store.context.popupRef,
|
|
@@ -74,7 +75,7 @@ export const MenuPopup = /*#__PURE__*/React.forwardRef(function MenuPopup(compon
|
|
|
74
75
|
const hoverEnabled = store.useState('hoverEnabled');
|
|
75
76
|
const disabled = store.useState('disabled');
|
|
76
77
|
useHoverFloatingInteraction(floatingContext, {
|
|
77
|
-
enabled: hoverEnabled && !disabled &&
|
|
78
|
+
enabled: hoverEnabled && !disabled && !isContextMenu && parent.type !== 'menubar',
|
|
78
79
|
closeDelay
|
|
79
80
|
});
|
|
80
81
|
const state = React.useMemo(() => ({
|
|
@@ -99,13 +100,13 @@ export const MenuPopup = /*#__PURE__*/React.forwardRef(function MenuPopup(compon
|
|
|
99
100
|
'data-rootownerid': rootId
|
|
100
101
|
}]
|
|
101
102
|
});
|
|
102
|
-
let returnFocus = parent.type === undefined ||
|
|
103
|
+
let returnFocus = parent.type === undefined || isContextMenu;
|
|
103
104
|
if (triggerElement || parent.type === 'menubar' && lastOpenChangeReason !== REASONS.outsidePress) {
|
|
104
105
|
returnFocus = true;
|
|
105
106
|
}
|
|
106
107
|
return /*#__PURE__*/_jsx(FloatingFocusManager, {
|
|
107
108
|
context: floatingContext,
|
|
108
|
-
modal:
|
|
109
|
+
modal: isContextMenu,
|
|
109
110
|
disabled: !mounted,
|
|
110
111
|
returnFocus: finalFocus === undefined ? returnFocus : finalFocus,
|
|
111
112
|
initialFocus: parent.type !== 'menu',
|
|
@@ -7,7 +7,7 @@ import { FloatingPortal } from "../../floating-ui-react/index.js";
|
|
|
7
7
|
*
|
|
8
8
|
* Documentation: [Base UI Menu](https://base-ui.com/react/components/menu)
|
|
9
9
|
*/
|
|
10
|
-
export declare const MenuPortal: React.ForwardRefExoticComponent<MenuPortalProps & React.RefAttributes<HTMLDivElement>>;
|
|
10
|
+
export declare const MenuPortal: React.ForwardRefExoticComponent<Omit<MenuPortalProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
11
11
|
export declare namespace MenuPortal {
|
|
12
12
|
interface State {}
|
|
13
13
|
}
|
|
@@ -7,7 +7,7 @@ import { BaseUIComponentProps } from "../../utils/types.js";
|
|
|
7
7
|
*
|
|
8
8
|
* Documentation: [Base UI Menu](https://base-ui.com/react/components/menu)
|
|
9
9
|
*/
|
|
10
|
-
export declare const MenuPositioner: React.ForwardRefExoticComponent<MenuPositionerProps & React.RefAttributes<HTMLDivElement>>;
|
|
10
|
+
export declare const MenuPositioner: React.ForwardRefExoticComponent<Omit<MenuPositionerProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
11
11
|
export interface MenuPositionerState {
|
|
12
12
|
/**
|
|
13
13
|
* Whether the menu is currently open.
|
|
@@ -7,7 +7,7 @@ import type { MenuRoot } from "../root/MenuRoot.js";
|
|
|
7
7
|
*
|
|
8
8
|
* Documentation: [Base UI Menu](https://base-ui.com/react/components/menu)
|
|
9
9
|
*/
|
|
10
|
-
export declare const MenuRadioGroup: React.NamedExoticComponent<MenuRadioGroupProps & React.RefAttributes<
|
|
10
|
+
export declare const MenuRadioGroup: React.NamedExoticComponent<Omit<MenuRadioGroupProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
11
11
|
export interface MenuRadioGroupProps extends BaseUIComponentProps<'div', MenuRadioGroup.State> {
|
|
12
12
|
/**
|
|
13
13
|
* The content of the component.
|
|
@@ -6,7 +6,7 @@ import type { BaseUIComponentProps, NonNativeButtonProps } from "../../utils/typ
|
|
|
6
6
|
*
|
|
7
7
|
* Documentation: [Base UI Menu](https://base-ui.com/react/components/menu)
|
|
8
8
|
*/
|
|
9
|
-
export declare const MenuRadioItem: React.ForwardRefExoticComponent<MenuRadioItemProps & React.RefAttributes<
|
|
9
|
+
export declare const MenuRadioItem: React.ForwardRefExoticComponent<Omit<MenuRadioItemProps, "ref"> & React.RefAttributes<HTMLElement>>;
|
|
10
10
|
export type MenuRadioItemState = {
|
|
11
11
|
/**
|
|
12
12
|
* Whether the radio item should ignore user interaction.
|
|
@@ -7,7 +7,7 @@ import { TransitionStatus } from "../../utils/useTransitionStatus.js";
|
|
|
7
7
|
*
|
|
8
8
|
* Documentation: [Base UI Menu](https://base-ui.com/react/components/menu)
|
|
9
9
|
*/
|
|
10
|
-
export declare const MenuRadioItemIndicator: React.ForwardRefExoticComponent<MenuRadioItemIndicatorProps & React.RefAttributes<HTMLSpanElement>>;
|
|
10
|
+
export declare const MenuRadioItemIndicator: React.ForwardRefExoticComponent<Omit<MenuRadioItemIndicatorProps, "ref"> & React.RefAttributes<HTMLSpanElement>>;
|
|
11
11
|
export interface MenuRadioItemIndicatorProps extends BaseUIComponentProps<'span', MenuRadioItemIndicator.State> {
|
|
12
12
|
/**
|
|
13
13
|
* Whether to keep the HTML element in the DOM when the radio item is inactive.
|
|
@@ -36,7 +36,7 @@ export interface MenuRootProps<Payload = unknown> {
|
|
|
36
36
|
highlightItemOnHover?: boolean;
|
|
37
37
|
/**
|
|
38
38
|
* Determines if the menu enters a modal state when open.
|
|
39
|
-
* - `true`: user interaction is limited to the menu: document page scroll is locked and
|
|
39
|
+
* - `true`: user interaction is limited to the menu: document page scroll is locked and pointer interactions on outside elements are disabled.
|
|
40
40
|
* - `false`: user interaction with the rest of the document is allowed.
|
|
41
41
|
* @default true
|
|
42
42
|
*/
|
|
@@ -77,21 +77,21 @@ export interface MenuRootProps<Payload = unknown> {
|
|
|
77
77
|
* Useful when the menu's animation is controlled by an external library.
|
|
78
78
|
* - `close`: When specified, the menu can be closed imperatively.
|
|
79
79
|
*/
|
|
80
|
-
actionsRef?: React.RefObject<MenuRoot.Actions>;
|
|
80
|
+
actionsRef?: React.RefObject<MenuRoot.Actions | null>;
|
|
81
81
|
/**
|
|
82
82
|
* ID of the trigger that the popover is associated with.
|
|
83
|
-
* This is useful in
|
|
83
|
+
* This is useful in conjunction with the `open` prop to create a controlled popover.
|
|
84
84
|
* There's no need to specify this prop when the popover is uncontrolled (i.e. when the `open` prop is not set).
|
|
85
85
|
*/
|
|
86
86
|
triggerId?: string | null;
|
|
87
87
|
/**
|
|
88
88
|
* ID of the trigger that the popover is associated with.
|
|
89
|
-
* This is useful in
|
|
89
|
+
* This is useful in conjunction with the `defaultOpen` prop to create an initially open popover.
|
|
90
90
|
*/
|
|
91
91
|
defaultTriggerId?: string | null;
|
|
92
92
|
/**
|
|
93
|
-
* A handle to associate the
|
|
94
|
-
* If specified, allows external triggers to control the
|
|
93
|
+
* A handle to associate the menu with a trigger.
|
|
94
|
+
* If specified, allows external triggers to control the menu's open state.
|
|
95
95
|
*/
|
|
96
96
|
handle?: MenuHandle<Payload>;
|
|
97
97
|
/**
|
|
@@ -102,6 +102,7 @@ export interface MenuRootProps<Payload = unknown> {
|
|
|
102
102
|
}
|
|
103
103
|
export interface MenuRootActions {
|
|
104
104
|
unmount: () => void;
|
|
105
|
+
close: () => void;
|
|
105
106
|
}
|
|
106
107
|
export type MenuRootChangeEventReason = typeof REASONS.triggerHover | typeof REASONS.triggerFocus | typeof REASONS.triggerPress | typeof REASONS.outsidePress | typeof REASONS.focusOut | typeof REASONS.listNavigation | typeof REASONS.escapeKey | typeof REASONS.itemPress | typeof REASONS.closePress | typeof REASONS.siblingOpen | typeof REASONS.cancelOpen | typeof REASONS.imperativeAction | typeof REASONS.none;
|
|
107
108
|
export type MenuRootChangeEventDetails = BaseUIChangeEventDetails<MenuRoot.ChangeEventReason> & {
|
|
@@ -178,7 +178,7 @@ export function MenuRoot(props) {
|
|
|
178
178
|
const allowTouchToCloseTimeout = useTimeout();
|
|
179
179
|
const setOpen = useStableCallback((nextOpen, eventDetails) => {
|
|
180
180
|
const reason = eventDetails.reason;
|
|
181
|
-
if (open === nextOpen && eventDetails.trigger === activeTriggerElement) {
|
|
181
|
+
if (open === nextOpen && eventDetails.trigger === activeTriggerElement && lastOpenChangeReason === reason) {
|
|
182
182
|
return;
|
|
183
183
|
}
|
|
184
184
|
eventDetails.preventUnmountOnClose = () => {
|
|
@@ -301,7 +301,9 @@ export function MenuRoot(props) {
|
|
|
301
301
|
}, [floatingEvents, setOpen]);
|
|
302
302
|
const dismiss = useDismiss(floatingRootContext, {
|
|
303
303
|
enabled: !disabled,
|
|
304
|
-
bubbles:
|
|
304
|
+
bubbles: {
|
|
305
|
+
escapeKey: closeParentOnEsc && parent.type === 'menu'
|
|
306
|
+
},
|
|
305
307
|
outsidePress() {
|
|
306
308
|
if (parent.type !== 'context-menu' || openEventRef.current?.type === 'contextmenu') {
|
|
307
309
|
return true;
|
|
@@ -101,10 +101,10 @@ export class MenuStore extends ReactStore {
|
|
|
101
101
|
}
|
|
102
102
|
static useStore(externalStore, initialState) {
|
|
103
103
|
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
104
|
-
const
|
|
105
|
-
return
|
|
104
|
+
const internalStore = useRefWithInit(() => {
|
|
105
|
+
return new MenuStore(initialState);
|
|
106
106
|
}).current;
|
|
107
|
-
return
|
|
107
|
+
return externalStore ?? internalStore;
|
|
108
108
|
}
|
|
109
109
|
unsubscribeParentListener = null;
|
|
110
110
|
}
|
|
@@ -6,7 +6,7 @@ import { BaseUIComponentProps, NonNativeButtonProps } from "../../utils/types.js
|
|
|
6
6
|
*
|
|
7
7
|
* Documentation: [Base UI Menu](https://base-ui.com/react/components/menu)
|
|
8
8
|
*/
|
|
9
|
-
export declare const MenuSubmenuTrigger: React.ForwardRefExoticComponent<MenuSubmenuTriggerProps & React.RefAttributes<HTMLElement>>;
|
|
9
|
+
export declare const MenuSubmenuTrigger: React.ForwardRefExoticComponent<Omit<MenuSubmenuTriggerProps, "ref"> & React.RefAttributes<HTMLElement>>;
|
|
10
10
|
export interface MenuSubmenuTriggerProps extends NonNativeButtonProps, BaseUIComponentProps<'div', MenuSubmenuTrigger.State> {
|
|
11
11
|
onClick?: React.MouseEventHandler<HTMLElement>;
|
|
12
12
|
/**
|
|
@@ -22,7 +22,7 @@ import { findRootOwnerId } from "../utils/findRootOwnerId.js";
|
|
|
22
22
|
import { useTriggerDataForwarding } from "../../utils/popups/index.js";
|
|
23
23
|
import { useBaseUiId } from "../../utils/useBaseUiId.js";
|
|
24
24
|
import { REASONS } from "../../utils/reasons.js";
|
|
25
|
-
import { useMixedToggleClickHandler } from "../../utils/
|
|
25
|
+
import { useMixedToggleClickHandler } from "../../utils/useMixedToggleClickHandler.js";
|
|
26
26
|
import { useContextMenuRootContext } from "../../context-menu/root/ContextMenuRootContext.js";
|
|
27
27
|
import { useMenubarContext } from "../../menubar/MenubarContext.js";
|
|
28
28
|
import { PATIENT_CLICK_THRESHOLD } from "../../utils/constants.js";
|
|
@@ -81,8 +81,9 @@ export const MenuTrigger = /*#__PURE__*/React.forwardRef(function MenuTrigger(co
|
|
|
81
81
|
floatingParentNodeId,
|
|
82
82
|
keyboardEventRelay: compositeRootContext?.relayKeyboardEvent
|
|
83
83
|
});
|
|
84
|
+
const isInMenubar = parent.type === 'menubar';
|
|
84
85
|
const rootDisabled = store.useState('disabled');
|
|
85
|
-
const disabled = disabledProp || rootDisabled ||
|
|
86
|
+
const disabled = disabledProp || rootDisabled || isInMenubar && parent.context.disabled;
|
|
86
87
|
const {
|
|
87
88
|
getButtonProps,
|
|
88
89
|
buttonRef
|
|
@@ -127,12 +128,12 @@ export const MenuTrigger = /*#__PURE__*/React.forwardRef(function MenuTrigger(co
|
|
|
127
128
|
});
|
|
128
129
|
}
|
|
129
130
|
}, [isOpenedByThisTrigger, handleDocumentMouseUp, store]);
|
|
130
|
-
const parentMenubarHasSubmenuOpen =
|
|
131
|
-
const openOnHover = openOnHoverProp ?? parentMenubarHasSubmenuOpen
|
|
131
|
+
const parentMenubarHasSubmenuOpen = isInMenubar && parent.context.hasSubmenuOpen;
|
|
132
|
+
const openOnHover = openOnHoverProp ?? parentMenubarHasSubmenuOpen;
|
|
132
133
|
const hoverProps = useHoverReferenceInteraction(floatingRootContext, {
|
|
133
|
-
enabled: openOnHover && !disabled && parent.type !== 'context-menu' && (
|
|
134
|
+
enabled: openOnHover && !disabled && parent.type !== 'context-menu' && (!isInMenubar || parentMenubarHasSubmenuOpen && !isMountedByThisTrigger),
|
|
134
135
|
handleClose: safePolygon({
|
|
135
|
-
blockPointerEvents:
|
|
136
|
+
blockPointerEvents: !isInMenubar
|
|
136
137
|
}),
|
|
137
138
|
mouseOnly: true,
|
|
138
139
|
move: false,
|
|
@@ -146,26 +147,25 @@ export const MenuTrigger = /*#__PURE__*/React.forwardRef(function MenuTrigger(co
|
|
|
146
147
|
});
|
|
147
148
|
|
|
148
149
|
// Whether to ignore clicks to open the menu.
|
|
149
|
-
// `lastOpenChangeReason`
|
|
150
|
+
// `lastOpenChangeReason` doesn't need to be reactive here, as we need to run this
|
|
150
151
|
// only when `isOpenedByThisTrigger` changes.
|
|
151
152
|
const stickIfOpen = useStickIfOpen(isOpenedByThisTrigger, store.select('lastOpenChangeReason'));
|
|
152
153
|
const click = useClick(floatingRootContext, {
|
|
153
154
|
enabled: !disabled && parent.type !== 'context-menu',
|
|
154
|
-
event: isOpenedByThisTrigger &&
|
|
155
|
+
event: isOpenedByThisTrigger && isInMenubar ? 'click' : 'mousedown',
|
|
155
156
|
toggle: true,
|
|
156
157
|
ignoreMouse: false,
|
|
157
158
|
stickIfOpen: parent.type === undefined ? stickIfOpen : false
|
|
158
159
|
});
|
|
159
160
|
const focus = useFocus(floatingRootContext, {
|
|
160
|
-
enabled: !disabled &&
|
|
161
|
+
enabled: !disabled && parentMenubarHasSubmenuOpen
|
|
161
162
|
});
|
|
162
163
|
const mixedToggleHandlers = useMixedToggleClickHandler({
|
|
163
164
|
open: isOpenedByThisTrigger,
|
|
164
|
-
enabled:
|
|
165
|
+
enabled: isInMenubar,
|
|
165
166
|
mouseDownAction: 'open'
|
|
166
167
|
});
|
|
167
168
|
const localInteractionProps = useInteractions([click, focus]);
|
|
168
|
-
const isInMenubar = parent.type === 'menubar';
|
|
169
169
|
const state = React.useMemo(() => ({
|
|
170
170
|
disabled,
|
|
171
171
|
open: isOpenedByThisTrigger
|
|
@@ -208,8 +208,8 @@ export const MenuTrigger = /*#__PURE__*/React.forwardRef(function MenuTrigger(co
|
|
|
208
208
|
ReactDOM.flushSync(() => {
|
|
209
209
|
store.setOpen(false, createChangeEventDetails(REASONS.focusOut, event.nativeEvent, event.currentTarget));
|
|
210
210
|
});
|
|
211
|
-
let nextTabbable = getTabbableAfterElement(triggerElementRef.current);
|
|
212
|
-
while (nextTabbable !== null && contains(currentPositionerElement, nextTabbable)
|
|
211
|
+
let nextTabbable = getTabbableAfterElement(store.context.triggerFocusTargetRef.current || triggerElementRef.current);
|
|
212
|
+
while (nextTabbable !== null && contains(currentPositionerElement, nextTabbable)) {
|
|
213
213
|
const prevTabbable = nextTabbable;
|
|
214
214
|
nextTabbable = getNextTabbable(nextTabbable);
|
|
215
215
|
if (nextTabbable === prevTabbable) {
|
package/esm/menubar/Menubar.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ import { BaseUIComponentProps } from "../utils/types.js";
|
|
|
6
6
|
*
|
|
7
7
|
* Documentation: [Base UI Menubar](https://base-ui.com/react/components/menubar)
|
|
8
8
|
*/
|
|
9
|
-
export declare const Menubar: React.ForwardRefExoticComponent<MenubarProps & React.RefAttributes<HTMLDivElement>>;
|
|
9
|
+
export declare const Menubar: React.ForwardRefExoticComponent<Omit<MenubarProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
10
10
|
export interface MenubarState {
|
|
11
11
|
/**
|
|
12
12
|
* The orientation of the menubar.
|
|
@@ -6,11 +6,14 @@ type InputProps<T extends React.ElementType> = PropsOf<T> | ((otherProps: PropsO
|
|
|
6
6
|
/**
|
|
7
7
|
* Merges multiple sets of React props. It follows the Object.assign pattern where the rightmost object's fields overwrite
|
|
8
8
|
* the conflicting ones from others. This doesn't apply to event handlers, `className` and `style` props.
|
|
9
|
-
*
|
|
10
|
-
* and
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
9
|
+
*
|
|
10
|
+
* Event handlers are merged and called in right-to-left order (rightmost handler executes first, leftmost last).
|
|
11
|
+
* For React synthetic events, the rightmost handler can prevent prior (left-positioned) handlers from executing
|
|
12
|
+
* by calling `event.preventBaseUIHandler()`. For non-synthetic events (custom events with primitive/object values),
|
|
13
|
+
* all handlers always execute without prevention capability.
|
|
14
|
+
*
|
|
15
|
+
* The `className` prop is merged by concatenating classes in right-to-left order (rightmost class appears first in the string).
|
|
16
|
+
* The `style` prop is merged with rightmost styles overwriting the prior ones.
|
|
14
17
|
*
|
|
15
18
|
* Props can either be provided as objects or as functions that take the previous props as an argument.
|
|
16
19
|
* The function will receive the merged props up to that point (going from left to right):
|
|
@@ -21,14 +24,31 @@ type InputProps<T extends React.ElementType> = PropsOf<T> | ((otherProps: PropsO
|
|
|
21
24
|
* They must check `event.baseUIHandlerPrevented` themselves and bail out if it's true.
|
|
22
25
|
*
|
|
23
26
|
* @important **`ref` is not merged.**
|
|
24
|
-
* @param
|
|
25
|
-
* @
|
|
27
|
+
* @param a Props object to merge.
|
|
28
|
+
* @param b Props object to merge. The function will overwrite conflicting props from `a`.
|
|
29
|
+
* @param c Props object to merge. The function will overwrite conflicting props from previous parameters.
|
|
30
|
+
* @param d Props object to merge. The function will overwrite conflicting props from previous parameters.
|
|
31
|
+
* @param e Props object to merge. The function will overwrite conflicting props from previous parameters.
|
|
32
|
+
* @returns The merged props.
|
|
33
|
+
* @public
|
|
26
34
|
*/
|
|
27
|
-
export declare function mergeProps<T extends ElementType>(a: InputProps<T>, b: InputProps<T>): PropsOf<T>;
|
|
28
|
-
export declare function mergeProps<T extends ElementType>(a: InputProps<T>, b: InputProps<T>): PropsOf<T>;
|
|
29
|
-
export declare function mergeProps<T extends ElementType>(a: InputProps<T>, b: InputProps<T>, c: InputProps<T>): PropsOf<T>;
|
|
30
|
-
export declare function mergeProps<T extends ElementType>(a: InputProps<T>, b: InputProps<T>, c: InputProps<T>, d: InputProps<T>): PropsOf<T>;
|
|
31
35
|
export declare function mergeProps<T extends ElementType>(a: InputProps<T>, b: InputProps<T>, c: InputProps<T>, d: InputProps<T>, e: InputProps<T>): PropsOf<T>;
|
|
36
|
+
export declare function mergeProps<T extends ElementType>(a: InputProps<T>, b: InputProps<T>, c: InputProps<T>, d: InputProps<T>): PropsOf<T>;
|
|
37
|
+
export declare function mergeProps<T extends ElementType>(a: InputProps<T>, b: InputProps<T>, c: InputProps<T>): PropsOf<T>;
|
|
38
|
+
export declare function mergeProps<T extends ElementType>(a: InputProps<T>, b: InputProps<T>): PropsOf<T>;
|
|
39
|
+
/**
|
|
40
|
+
* Merges an arbitrary number of React props using the same logic as {@link mergeProps}.
|
|
41
|
+
* This function accepts an array of props instead of individual arguments.
|
|
42
|
+
*
|
|
43
|
+
* This has slightly lower performance than {@link mergeProps} due to accepting an array
|
|
44
|
+
* instead of a fixed number of arguments. Prefer {@link mergeProps} when merging 5 or
|
|
45
|
+
* fewer prop sets for better performance.
|
|
46
|
+
*
|
|
47
|
+
* @param props Array of props to merge.
|
|
48
|
+
* @returns The merged props.
|
|
49
|
+
* @see mergeProps
|
|
50
|
+
* @public
|
|
51
|
+
*/
|
|
32
52
|
export declare function mergePropsN<T extends ElementType>(props: InputProps<T>[]): PropsOf<T>;
|
|
33
53
|
export declare function makeEventPreventable<T extends React.SyntheticEvent>(event: BaseUIEvent<T>): BaseUIEvent<T>;
|
|
34
54
|
export declare function mergeClassNames(ourClassName: string | undefined, theirClassName: string | undefined): string | undefined;
|
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
import { mergeObjects } from '@base-ui/utils/mergeObjects';
|
|
2
2
|
const EMPTY_PROPS = {};
|
|
3
3
|
|
|
4
|
+
/* eslint-disable id-denylist */
|
|
4
5
|
/**
|
|
5
6
|
* Merges multiple sets of React props. It follows the Object.assign pattern where the rightmost object's fields overwrite
|
|
6
7
|
* the conflicting ones from others. This doesn't apply to event handlers, `className` and `style` props.
|
|
7
|
-
*
|
|
8
|
-
* and
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
8
|
+
*
|
|
9
|
+
* Event handlers are merged and called in right-to-left order (rightmost handler executes first, leftmost last).
|
|
10
|
+
* For React synthetic events, the rightmost handler can prevent prior (left-positioned) handlers from executing
|
|
11
|
+
* by calling `event.preventBaseUIHandler()`. For non-synthetic events (custom events with primitive/object values),
|
|
12
|
+
* all handlers always execute without prevention capability.
|
|
13
|
+
*
|
|
14
|
+
* The `className` prop is merged by concatenating classes in right-to-left order (rightmost class appears first in the string).
|
|
15
|
+
* The `style` prop is merged with rightmost styles overwriting the prior ones.
|
|
12
16
|
*
|
|
13
17
|
* Props can either be provided as objects or as functions that take the previous props as an argument.
|
|
14
18
|
* The function will receive the merged props up to that point (going from left to right):
|
|
@@ -19,10 +23,14 @@ const EMPTY_PROPS = {};
|
|
|
19
23
|
* They must check `event.baseUIHandlerPrevented` themselves and bail out if it's true.
|
|
20
24
|
*
|
|
21
25
|
* @important **`ref` is not merged.**
|
|
22
|
-
* @param
|
|
23
|
-
* @
|
|
26
|
+
* @param a Props object to merge.
|
|
27
|
+
* @param b Props object to merge. The function will overwrite conflicting props from `a`.
|
|
28
|
+
* @param c Props object to merge. The function will overwrite conflicting props from previous parameters.
|
|
29
|
+
* @param d Props object to merge. The function will overwrite conflicting props from previous parameters.
|
|
30
|
+
* @param e Props object to merge. The function will overwrite conflicting props from previous parameters.
|
|
31
|
+
* @returns The merged props.
|
|
32
|
+
* @public
|
|
24
33
|
*/
|
|
25
|
-
/* eslint-disable id-denylist */
|
|
26
34
|
|
|
27
35
|
export function mergeProps(a, b, c, d, e) {
|
|
28
36
|
// We need to mutably own `merged`
|
|
@@ -45,6 +53,19 @@ export function mergeProps(a, b, c, d, e) {
|
|
|
45
53
|
}
|
|
46
54
|
/* eslint-enable id-denylist */
|
|
47
55
|
|
|
56
|
+
/**
|
|
57
|
+
* Merges an arbitrary number of React props using the same logic as {@link mergeProps}.
|
|
58
|
+
* This function accepts an array of props instead of individual arguments.
|
|
59
|
+
*
|
|
60
|
+
* This has slightly lower performance than {@link mergeProps} due to accepting an array
|
|
61
|
+
* instead of a fixed number of arguments. Prefer {@link mergeProps} when merging 5 or
|
|
62
|
+
* fewer prop sets for better performance.
|
|
63
|
+
*
|
|
64
|
+
* @param props Array of props to merge.
|
|
65
|
+
* @returns The merged props.
|
|
66
|
+
* @see mergeProps
|
|
67
|
+
* @public
|
|
68
|
+
*/
|
|
48
69
|
export function mergePropsN(props) {
|
|
49
70
|
if (props.length === 0) {
|
|
50
71
|
return EMPTY_PROPS;
|
|
@@ -7,7 +7,7 @@ import type { MeterRoot } from "../root/MeterRoot.js";
|
|
|
7
7
|
*
|
|
8
8
|
* Documentation: [Base UI Meter](https://base-ui.com/react/components/meter)
|
|
9
9
|
*/
|
|
10
|
-
export declare const MeterIndicator: React.ForwardRefExoticComponent<MeterIndicatorProps & React.RefAttributes<HTMLDivElement>>;
|
|
10
|
+
export declare const MeterIndicator: React.ForwardRefExoticComponent<Omit<MeterIndicatorProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
11
11
|
export interface MeterIndicatorProps extends BaseUIComponentProps<'div', MeterRoot.State> {}
|
|
12
12
|
export declare namespace MeterIndicator {
|
|
13
13
|
type Props = MeterIndicatorProps;
|
|
@@ -7,7 +7,7 @@ import { BaseUIComponentProps } from "../../utils/types.js";
|
|
|
7
7
|
*
|
|
8
8
|
* Documentation: [Base UI Meter](https://base-ui.com/react/components/meter)
|
|
9
9
|
*/
|
|
10
|
-
export declare const MeterLabel: React.ForwardRefExoticComponent<MeterLabelProps & React.RefAttributes<HTMLSpanElement>>;
|
|
10
|
+
export declare const MeterLabel: React.ForwardRefExoticComponent<Omit<MeterLabelProps, "ref"> & React.RefAttributes<HTMLSpanElement>>;
|
|
11
11
|
export interface MeterLabelProps extends BaseUIComponentProps<'span', MeterRoot.State> {}
|
|
12
12
|
export declare namespace MeterLabel {
|
|
13
13
|
type Props = MeterLabelProps;
|
|
@@ -6,7 +6,7 @@ import { BaseUIComponentProps } from "../../utils/types.js";
|
|
|
6
6
|
*
|
|
7
7
|
* Documentation: [Base UI Meter](https://base-ui.com/react/components/meter)
|
|
8
8
|
*/
|
|
9
|
-
export declare const MeterRoot: React.ForwardRefExoticComponent<MeterRootProps & React.RefAttributes<HTMLDivElement>>;
|
|
9
|
+
export declare const MeterRoot: React.ForwardRefExoticComponent<Omit<MeterRootProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
10
10
|
export interface MeterRootState {}
|
|
11
11
|
export interface MeterRootProps extends BaseUIComponentProps<'div', MeterRoot.State> {
|
|
12
12
|
/**
|
|
@@ -7,7 +7,7 @@ import { BaseUIComponentProps } from "../../utils/types.js";
|
|
|
7
7
|
*
|
|
8
8
|
* Documentation: [Base UI Meter](https://base-ui.com/react/components/meter)
|
|
9
9
|
*/
|
|
10
|
-
export declare const MeterTrack: React.ForwardRefExoticComponent<MeterTrackProps & React.RefAttributes<HTMLDivElement>>;
|
|
10
|
+
export declare const MeterTrack: React.ForwardRefExoticComponent<Omit<MeterTrackProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
11
11
|
export interface MeterTrackProps extends BaseUIComponentProps<'div', MeterRoot.State> {}
|
|
12
12
|
export declare namespace MeterTrack {
|
|
13
13
|
type Props = MeterTrackProps;
|
|
@@ -7,7 +7,7 @@ import type { MeterRoot } from "../root/MeterRoot.js";
|
|
|
7
7
|
*
|
|
8
8
|
* Documentation: [Base UI Meter](https://base-ui.com/react/components/meter)
|
|
9
9
|
*/
|
|
10
|
-
export declare const MeterValue: React.ForwardRefExoticComponent<MeterValueProps & React.RefAttributes<HTMLSpanElement>>;
|
|
10
|
+
export declare const MeterValue: React.ForwardRefExoticComponent<Omit<MeterValueProps, "ref"> & React.RefAttributes<HTMLSpanElement>>;
|
|
11
11
|
export interface MeterValueProps extends Omit<BaseUIComponentProps<'span', MeterRoot.State>, 'children'> {
|
|
12
12
|
children?: null | ((formattedValue: string, value: number) => React.ReactNode);
|
|
13
13
|
}
|
|
@@ -7,7 +7,7 @@ import type { BaseUIComponentProps } from "../../utils/types.js";
|
|
|
7
7
|
*
|
|
8
8
|
* Documentation: [Base UI Navigation Menu](https://base-ui.com/react/components/navigation-menu)
|
|
9
9
|
*/
|
|
10
|
-
export declare const NavigationMenuArrow: React.ForwardRefExoticComponent<NavigationMenuArrowProps & React.RefAttributes<HTMLDivElement>>;
|
|
10
|
+
export declare const NavigationMenuArrow: React.ForwardRefExoticComponent<Omit<NavigationMenuArrowProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
11
11
|
export interface NavigationMenuArrowState {
|
|
12
12
|
/**
|
|
13
13
|
* Whether the popup is currently open.
|
|
@@ -7,7 +7,7 @@ import type { TransitionStatus } from "../../utils/useTransitionStatus.js";
|
|
|
7
7
|
*
|
|
8
8
|
* Documentation: [Base UI Navigation Menu](https://base-ui.com/react/components/navigation-menu)
|
|
9
9
|
*/
|
|
10
|
-
export declare const NavigationMenuBackdrop: React.ForwardRefExoticComponent<NavigationMenuBackdropProps & React.RefAttributes<HTMLDivElement>>;
|
|
10
|
+
export declare const NavigationMenuBackdrop: React.ForwardRefExoticComponent<Omit<NavigationMenuBackdropProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
11
11
|
export interface NavigationMenuBackdropState {
|
|
12
12
|
/**
|
|
13
13
|
* If `true`, the popup is open.
|
|
@@ -8,7 +8,7 @@ import { TransitionStatus } from "../../utils/useTransitionStatus.js";
|
|
|
8
8
|
*
|
|
9
9
|
* Documentation: [Base UI Navigation Menu](https://base-ui.com/react/components/navigation-menu)
|
|
10
10
|
*/
|
|
11
|
-
export declare const NavigationMenuContent: React.ForwardRefExoticComponent<NavigationMenuContentProps & React.RefAttributes<HTMLDivElement>>;
|
|
11
|
+
export declare const NavigationMenuContent: React.ForwardRefExoticComponent<Omit<NavigationMenuContentProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
12
12
|
export interface NavigationMenuContentState {
|
|
13
13
|
/**
|
|
14
14
|
* If `true`, the component is open.
|
|
@@ -59,6 +59,12 @@ export const NavigationMenuContent = /*#__PURE__*/React.forwardRef(function Navi
|
|
|
59
59
|
setMounted,
|
|
60
60
|
transitionStatus
|
|
61
61
|
} = useTransitionStatus(open);
|
|
62
|
+
|
|
63
|
+
// If the popup unmounts before the content's exit animation completes, reset the internal
|
|
64
|
+
// mounted state so the next open can re-enter via `transitionStatus="starting"`.
|
|
65
|
+
if (mounted && !popupMounted) {
|
|
66
|
+
setMounted(false);
|
|
67
|
+
}
|
|
62
68
|
useOpenChangeComplete({
|
|
63
69
|
ref,
|
|
64
70
|
open,
|