@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
|
@@ -21,7 +21,8 @@ function createInitialState() {
|
|
|
21
21
|
stickIfOpen: true,
|
|
22
22
|
nested: false,
|
|
23
23
|
openOnHover: false,
|
|
24
|
-
closeDelay: 0
|
|
24
|
+
closeDelay: 0,
|
|
25
|
+
hasViewport: false
|
|
25
26
|
};
|
|
26
27
|
}
|
|
27
28
|
const selectors = {
|
|
@@ -35,7 +36,8 @@ const selectors = {
|
|
|
35
36
|
titleElementId: createSelector(state => state.titleElementId),
|
|
36
37
|
descriptionElementId: createSelector(state => state.descriptionElementId),
|
|
37
38
|
openOnHover: createSelector(state => state.openOnHover),
|
|
38
|
-
closeDelay: createSelector(state => state.closeDelay)
|
|
39
|
+
closeDelay: createSelector(state => state.closeDelay),
|
|
40
|
+
hasViewport: createSelector(state => state.hasViewport)
|
|
39
41
|
};
|
|
40
42
|
export class PopoverStore extends ReactStore {
|
|
41
43
|
constructor(initialState) {
|
|
@@ -113,10 +115,11 @@ export class PopoverStore extends ReactStore {
|
|
|
113
115
|
}
|
|
114
116
|
};
|
|
115
117
|
static useStore(externalStore, initialState) {
|
|
116
|
-
const
|
|
117
|
-
return
|
|
118
|
+
const internalStore = useRefWithInit(() => {
|
|
119
|
+
return new PopoverStore(initialState);
|
|
118
120
|
}).current;
|
|
119
|
-
|
|
121
|
+
const store = externalStore ?? internalStore;
|
|
122
|
+
useOnMount(internalStore.disposeEffect);
|
|
120
123
|
return store;
|
|
121
124
|
}
|
|
122
125
|
disposeEffect = () => {
|
|
@@ -6,7 +6,7 @@ import type { BaseUIComponentProps } from "../../utils/types.js";
|
|
|
6
6
|
*
|
|
7
7
|
* Documentation: [Base UI Popover](https://base-ui.com/react/components/popover)
|
|
8
8
|
*/
|
|
9
|
-
export declare const PopoverTitle: React.ForwardRefExoticComponent<PopoverTitleProps & React.RefAttributes<HTMLHeadingElement>>;
|
|
9
|
+
export declare const PopoverTitle: React.ForwardRefExoticComponent<Omit<PopoverTitleProps, "ref"> & React.RefAttributes<HTMLHeadingElement>>;
|
|
10
10
|
export interface PopoverTitleState {}
|
|
11
11
|
export interface PopoverTitleProps extends BaseUIComponentProps<'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6', PopoverTitle.State> {}
|
|
12
12
|
export declare namespace PopoverTitle {
|
|
@@ -123,8 +123,8 @@ export const PopoverTrigger = /*#__PURE__*/React.forwardRef(function PopoverTrig
|
|
|
123
123
|
ReactDOM.flushSync(() => {
|
|
124
124
|
store.setOpen(false, createChangeEventDetails(REASONS.focusOut, event.nativeEvent, event.currentTarget));
|
|
125
125
|
});
|
|
126
|
-
let nextTabbable = getTabbableAfterElement(triggerElementRef.current);
|
|
127
|
-
while (nextTabbable !== null && contains(positionerElement, nextTabbable)
|
|
126
|
+
let nextTabbable = getTabbableAfterElement(store.context.triggerFocusTargetRef.current || triggerElementRef.current);
|
|
127
|
+
while (nextTabbable !== null && contains(positionerElement, nextTabbable)) {
|
|
128
128
|
const prevTabbable = nextTabbable;
|
|
129
129
|
nextTabbable = getNextTabbable(nextTabbable);
|
|
130
130
|
if (nextTabbable === prevTabbable) {
|
|
@@ -8,7 +8,7 @@ import { BaseUIComponentProps } from "../../utils/types.js";
|
|
|
8
8
|
*
|
|
9
9
|
* Documentation: [Base UI Popover](https://base-ui.com/react/components/popover)
|
|
10
10
|
*/
|
|
11
|
-
export declare const PopoverViewport: React.ForwardRefExoticComponent<PopoverViewport.Props & React.RefAttributes<HTMLDivElement>>;
|
|
11
|
+
export declare const PopoverViewport: React.ForwardRefExoticComponent<Omit<PopoverViewport.Props, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
12
12
|
export declare namespace PopoverViewport {
|
|
13
13
|
interface Props extends BaseUIComponentProps<'div', State> {
|
|
14
14
|
/**
|
|
@@ -7,9 +7,12 @@ import { usePreviousValue } from '@base-ui/utils/usePreviousValue';
|
|
|
7
7
|
import { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';
|
|
8
8
|
import { useStableCallback } from '@base-ui/utils/useStableCallback';
|
|
9
9
|
import { usePopoverRootContext } from "../root/PopoverRootContext.js";
|
|
10
|
+
import { usePopoverPositionerContext } from "../positioner/PopoverPositionerContext.js";
|
|
10
11
|
import { useAnimationsFinished } from "../../utils/useAnimationsFinished.js";
|
|
12
|
+
import { usePopupAutoResize } from "../../utils/usePopupAutoResize.js";
|
|
11
13
|
import { useRenderElement } from "../../utils/useRenderElement.js";
|
|
12
14
|
import { PopoverViewportCssVars } from "./PopoverViewportCssVars.js";
|
|
15
|
+
import { useDirection } from "../../direction-provider/DirectionContext.js";
|
|
13
16
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
14
17
|
const stateAttributesMapping = {
|
|
15
18
|
activationDirection: value => value ? {
|
|
@@ -35,9 +38,14 @@ export const PopoverViewport = /*#__PURE__*/React.forwardRef(function PopoverVie
|
|
|
35
38
|
const {
|
|
36
39
|
store
|
|
37
40
|
} = usePopoverRootContext();
|
|
41
|
+
const positioner = usePopoverPositionerContext();
|
|
42
|
+
const direction = useDirection();
|
|
38
43
|
const activeTrigger = store.useState('activeTriggerElement');
|
|
39
44
|
const open = store.useState('open');
|
|
40
|
-
const
|
|
45
|
+
const mounted = store.useState('mounted');
|
|
46
|
+
const payload = store.useState('payload');
|
|
47
|
+
const popupElement = store.useState('popupElement');
|
|
48
|
+
const positionerElement = store.useState('positionerElement');
|
|
41
49
|
const previousActiveTrigger = usePreviousValue(open ? activeTrigger : null);
|
|
42
50
|
const capturedNodeRef = React.useRef(null);
|
|
43
51
|
const [previousContentNode, setPreviousContentNode] = React.useState(null);
|
|
@@ -48,6 +56,12 @@ export const PopoverViewport = /*#__PURE__*/React.forwardRef(function PopoverVie
|
|
|
48
56
|
const cleanupFrame = useAnimationFrame();
|
|
49
57
|
const [previousContentDimensions, setPreviousContentDimensions] = React.useState(null);
|
|
50
58
|
const [showStartingStyleAttribute, setShowStartingStyleAttribute] = React.useState(false);
|
|
59
|
+
useIsoLayoutEffect(() => {
|
|
60
|
+
store.set('hasViewport', true);
|
|
61
|
+
return () => {
|
|
62
|
+
store.set('hasViewport', false);
|
|
63
|
+
};
|
|
64
|
+
}, [store]);
|
|
51
65
|
|
|
52
66
|
// Capture a clone of the current content DOM subtree when not transitioning.
|
|
53
67
|
// We can't store previous React nodes as they may be stateful; instead we capture DOM clones for visual continuity.
|
|
@@ -73,22 +87,14 @@ export const PopoverViewport = /*#__PURE__*/React.forwardRef(function PopoverVie
|
|
|
73
87
|
currentContainerRef.current?.style.setProperty('transition', 'none');
|
|
74
88
|
previousContainerRef.current?.style.setProperty('display', 'none');
|
|
75
89
|
});
|
|
76
|
-
const handleMeasureLayoutComplete = useStableCallback(
|
|
90
|
+
const handleMeasureLayoutComplete = useStableCallback(previousDimensions => {
|
|
77
91
|
currentContainerRef.current?.style.removeProperty('animation');
|
|
78
92
|
currentContainerRef.current?.style.removeProperty('transition');
|
|
79
93
|
previousContainerRef.current?.style.removeProperty('display');
|
|
80
|
-
if (
|
|
81
|
-
setPreviousContentDimensions(
|
|
94
|
+
if (previousDimensions) {
|
|
95
|
+
setPreviousContentDimensions(previousDimensions);
|
|
82
96
|
}
|
|
83
97
|
});
|
|
84
|
-
React.useEffect(() => {
|
|
85
|
-
floatingContext.context.events.on('measure-layout', handleMeasureLayout);
|
|
86
|
-
floatingContext.context.events.on('measure-layout-complete', handleMeasureLayoutComplete);
|
|
87
|
-
return () => {
|
|
88
|
-
floatingContext.context.events.off('measure-layout', handleMeasureLayout);
|
|
89
|
-
floatingContext.context.events.off('measure-layout-complete', handleMeasureLayoutComplete);
|
|
90
|
-
};
|
|
91
|
-
}, [floatingContext, handleMeasureLayout, handleMeasureLayoutComplete]);
|
|
92
98
|
const lastHandledTriggerRef = React.useRef(null);
|
|
93
99
|
useIsoLayoutEffect(() => {
|
|
94
100
|
// When a trigger changes, set the captured children HTML to state,
|
|
@@ -151,6 +157,16 @@ export const PopoverViewport = /*#__PURE__*/React.forwardRef(function PopoverVie
|
|
|
151
157
|
}
|
|
152
158
|
container.replaceChildren(...Array.from(previousContentNode.childNodes));
|
|
153
159
|
}, [previousContentNode]);
|
|
160
|
+
usePopupAutoResize({
|
|
161
|
+
popupElement,
|
|
162
|
+
positionerElement,
|
|
163
|
+
mounted,
|
|
164
|
+
content: payload,
|
|
165
|
+
onMeasureLayout: handleMeasureLayout,
|
|
166
|
+
onMeasureLayoutComplete: handleMeasureLayoutComplete,
|
|
167
|
+
side: positioner.side,
|
|
168
|
+
direction
|
|
169
|
+
});
|
|
154
170
|
const state = React.useMemo(() => {
|
|
155
171
|
return {
|
|
156
172
|
activationDirection: getActivationDirection(newTriggerOffset),
|
|
@@ -7,7 +7,7 @@ import type { Align, Side } from "../../utils/useAnchorPositioning.js";
|
|
|
7
7
|
*
|
|
8
8
|
* Documentation: [Base UI Preview Card](https://base-ui.com/react/components/preview-card)
|
|
9
9
|
*/
|
|
10
|
-
export declare const PreviewCardArrow: React.ForwardRefExoticComponent<PreviewCardArrowProps & React.RefAttributes<HTMLDivElement>>;
|
|
10
|
+
export declare const PreviewCardArrow: React.ForwardRefExoticComponent<Omit<PreviewCardArrowProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
11
11
|
export interface PreviewCardArrowState {
|
|
12
12
|
/**
|
|
13
13
|
* Whether the preview card is currently open.
|
|
@@ -18,9 +18,7 @@ export const PreviewCardArrow = /*#__PURE__*/React.forwardRef(function PreviewCa
|
|
|
18
18
|
className,
|
|
19
19
|
...elementProps
|
|
20
20
|
} = componentProps;
|
|
21
|
-
const
|
|
22
|
-
open
|
|
23
|
-
} = usePreviewCardRootContext();
|
|
21
|
+
const store = usePreviewCardRootContext();
|
|
24
22
|
const {
|
|
25
23
|
arrowRef,
|
|
26
24
|
side,
|
|
@@ -28,6 +26,7 @@ export const PreviewCardArrow = /*#__PURE__*/React.forwardRef(function PreviewCa
|
|
|
28
26
|
arrowUncentered,
|
|
29
27
|
arrowStyles
|
|
30
28
|
} = usePreviewCardPositionerContext();
|
|
29
|
+
const open = store.useState('open');
|
|
31
30
|
const state = React.useMemo(() => ({
|
|
32
31
|
open,
|
|
33
32
|
side,
|
|
@@ -7,7 +7,7 @@ import type { TransitionStatus } from "../../utils/useTransitionStatus.js";
|
|
|
7
7
|
*
|
|
8
8
|
* Documentation: [Base UI Preview Card](https://base-ui.com/react/components/preview-card)
|
|
9
9
|
*/
|
|
10
|
-
export declare const PreviewCardBackdrop: React.ForwardRefExoticComponent<PreviewCardBackdropProps & React.RefAttributes<HTMLDivElement>>;
|
|
10
|
+
export declare const PreviewCardBackdrop: React.ForwardRefExoticComponent<Omit<PreviewCardBackdropProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
11
11
|
export interface PreviewCardBackdropState {
|
|
12
12
|
/**
|
|
13
13
|
* Whether the preview card is currently open.
|
|
@@ -22,11 +22,10 @@ export const PreviewCardBackdrop = /*#__PURE__*/React.forwardRef(function Previe
|
|
|
22
22
|
className,
|
|
23
23
|
...elementProps
|
|
24
24
|
} = componentProps;
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
} = usePreviewCardRootContext();
|
|
25
|
+
const store = usePreviewCardRootContext();
|
|
26
|
+
const open = store.useState('open');
|
|
27
|
+
const mounted = store.useState('mounted');
|
|
28
|
+
const transitionStatus = store.useState('transitionStatus');
|
|
30
29
|
const state = React.useMemo(() => ({
|
|
31
30
|
open,
|
|
32
31
|
transitionStatus
|
|
@@ -4,4 +4,6 @@ export { PreviewCardTrigger as Trigger } from "./trigger/PreviewCardTrigger.js";
|
|
|
4
4
|
export { PreviewCardPositioner as Positioner } from "./positioner/PreviewCardPositioner.js";
|
|
5
5
|
export { PreviewCardPopup as Popup } from "./popup/PreviewCardPopup.js";
|
|
6
6
|
export { PreviewCardArrow as Arrow } from "./arrow/PreviewCardArrow.js";
|
|
7
|
-
export { PreviewCardBackdrop as Backdrop } from "./backdrop/PreviewCardBackdrop.js";
|
|
7
|
+
export { PreviewCardBackdrop as Backdrop } from "./backdrop/PreviewCardBackdrop.js";
|
|
8
|
+
export { PreviewCardViewport as Viewport } from "./viewport/PreviewCardViewport.js";
|
|
9
|
+
export { createPreviewCardHandle as createHandle, PreviewCardHandle as Handle } from "./store/PreviewCardHandle.js";
|
|
@@ -4,4 +4,6 @@ export { PreviewCardTrigger as Trigger } from "./trigger/PreviewCardTrigger.js";
|
|
|
4
4
|
export { PreviewCardPositioner as Positioner } from "./positioner/PreviewCardPositioner.js";
|
|
5
5
|
export { PreviewCardPopup as Popup } from "./popup/PreviewCardPopup.js";
|
|
6
6
|
export { PreviewCardArrow as Arrow } from "./arrow/PreviewCardArrow.js";
|
|
7
|
-
export { PreviewCardBackdrop as Backdrop } from "./backdrop/PreviewCardBackdrop.js";
|
|
7
|
+
export { PreviewCardBackdrop as Backdrop } from "./backdrop/PreviewCardBackdrop.js";
|
|
8
|
+
export { PreviewCardViewport as Viewport } from "./viewport/PreviewCardViewport.js";
|
|
9
|
+
export { createPreviewCardHandle as createHandle, PreviewCardHandle as Handle } from "./store/PreviewCardHandle.js";
|
|
@@ -8,7 +8,7 @@ import type { TransitionStatus } from "../../utils/useTransitionStatus.js";
|
|
|
8
8
|
*
|
|
9
9
|
* Documentation: [Base UI Preview Card](https://base-ui.com/react/components/preview-card)
|
|
10
10
|
*/
|
|
11
|
-
export declare const PreviewCardPopup: React.ForwardRefExoticComponent<PreviewCardPopupProps & React.RefAttributes<HTMLDivElement>>;
|
|
11
|
+
export declare const PreviewCardPopup: React.ForwardRefExoticComponent<Omit<PreviewCardPopupProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
12
12
|
export interface PreviewCardPopupState {
|
|
13
13
|
/**
|
|
14
14
|
* Whether the preview card is currently open.
|
|
@@ -16,6 +16,7 @@ export interface PreviewCardPopupState {
|
|
|
16
16
|
open: boolean;
|
|
17
17
|
side: Side;
|
|
18
18
|
align: Align;
|
|
19
|
+
instant: 'dismiss' | 'focus' | undefined;
|
|
19
20
|
transitionStatus: TransitionStatus;
|
|
20
21
|
}
|
|
21
22
|
export interface PreviewCardPopupProps extends BaseUIComponentProps<'div', PreviewCardPopup.State> {}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
3
|
import * as React from 'react';
|
|
4
|
+
import { useStableCallback } from '@base-ui/utils/useStableCallback';
|
|
4
5
|
import { usePreviewCardRootContext } from "../root/PreviewCardContext.js";
|
|
5
6
|
import { usePreviewCardPositionerContext } from "../positioner/PreviewCardPositionerContext.js";
|
|
6
7
|
import { popupStateMapping as baseMapping } from "../../utils/popupStateMapping.js";
|
|
@@ -8,6 +9,7 @@ import { transitionStatusMapping } from "../../utils/stateAttributesMapping.js";
|
|
|
8
9
|
import { useOpenChangeComplete } from "../../utils/useOpenChangeComplete.js";
|
|
9
10
|
import { useRenderElement } from "../../utils/useRenderElement.js";
|
|
10
11
|
import { getDisabledMountTransitionStyles } from "../../utils/getDisabledMountTransitionStyles.js";
|
|
12
|
+
import { useHoverFloatingInteraction } from "../../floating-ui-react/index.js";
|
|
11
13
|
const stateAttributesMapping = {
|
|
12
14
|
...baseMapping,
|
|
13
15
|
...transitionStatusMapping
|
|
@@ -25,35 +27,39 @@ export const PreviewCardPopup = /*#__PURE__*/React.forwardRef(function PreviewCa
|
|
|
25
27
|
render,
|
|
26
28
|
...elementProps
|
|
27
29
|
} = componentProps;
|
|
28
|
-
const
|
|
29
|
-
open,
|
|
30
|
-
transitionStatus,
|
|
31
|
-
popupRef,
|
|
32
|
-
onOpenChangeComplete,
|
|
33
|
-
popupProps
|
|
34
|
-
} = usePreviewCardRootContext();
|
|
30
|
+
const store = usePreviewCardRootContext();
|
|
35
31
|
const {
|
|
36
32
|
side,
|
|
37
33
|
align
|
|
38
34
|
} = usePreviewCardPositionerContext();
|
|
35
|
+
const open = store.useState('open');
|
|
36
|
+
const instantType = store.useState('instantType');
|
|
37
|
+
const transitionStatus = store.useState('transitionStatus');
|
|
38
|
+
const popupProps = store.useState('popupProps');
|
|
39
|
+
const floatingContext = store.useState('floatingRootContext');
|
|
39
40
|
useOpenChangeComplete({
|
|
40
41
|
open,
|
|
41
|
-
ref: popupRef,
|
|
42
|
+
ref: store.context.popupRef,
|
|
42
43
|
onComplete() {
|
|
43
44
|
if (open) {
|
|
44
|
-
onOpenChangeComplete?.(true);
|
|
45
|
+
store.context.onOpenChangeComplete?.(true);
|
|
45
46
|
}
|
|
46
47
|
}
|
|
47
48
|
});
|
|
49
|
+
const getCloseDelay = useStableCallback(() => store.context.closeDelayRef.current);
|
|
50
|
+
useHoverFloatingInteraction(floatingContext, {
|
|
51
|
+
closeDelay: getCloseDelay
|
|
52
|
+
});
|
|
48
53
|
const state = React.useMemo(() => ({
|
|
49
54
|
open,
|
|
50
55
|
side,
|
|
51
56
|
align,
|
|
57
|
+
instant: instantType,
|
|
52
58
|
transitionStatus
|
|
53
|
-
}), [open, side, align, transitionStatus]);
|
|
59
|
+
}), [open, side, align, instantType, transitionStatus]);
|
|
54
60
|
const element = useRenderElement('div', componentProps, {
|
|
55
|
-
ref: [popupRef, forwardedRef],
|
|
56
61
|
state,
|
|
62
|
+
ref: [forwardedRef, store.context.popupRef, store.useStateSetter('popupElement')],
|
|
57
63
|
props: [popupProps, getDisabledMountTransitionStyles(transitionStatus), elementProps],
|
|
58
64
|
stateAttributesMapping
|
|
59
65
|
});
|
|
@@ -7,7 +7,7 @@ import { FloatingPortalLite } from "../../utils/FloatingPortalLite.js";
|
|
|
7
7
|
*
|
|
8
8
|
* Documentation: [Base UI Preview Card](https://base-ui.com/react/components/preview-card)
|
|
9
9
|
*/
|
|
10
|
-
export declare const PreviewCardPortal: React.ForwardRefExoticComponent<PreviewCardPortalProps & React.RefAttributes<HTMLDivElement>>;
|
|
10
|
+
export declare const PreviewCardPortal: React.ForwardRefExoticComponent<Omit<PreviewCardPortalProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
11
11
|
export declare namespace PreviewCardPortal {
|
|
12
12
|
interface State {}
|
|
13
13
|
}
|
|
@@ -18,9 +18,8 @@ export const PreviewCardPortal = /*#__PURE__*/React.forwardRef(function PreviewC
|
|
|
18
18
|
keepMounted = false,
|
|
19
19
|
...portalProps
|
|
20
20
|
} = props;
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
} = usePreviewCardRootContext();
|
|
21
|
+
const store = usePreviewCardRootContext();
|
|
22
|
+
const mounted = store.useState('mounted');
|
|
24
23
|
const shouldRender = mounted || keepMounted;
|
|
25
24
|
if (!shouldRender) {
|
|
26
25
|
return null;
|
|
@@ -7,7 +7,7 @@ import type { BaseUIComponentProps } from "../../utils/types.js";
|
|
|
7
7
|
*
|
|
8
8
|
* Documentation: [Base UI Preview Card](https://base-ui.com/react/components/preview-card)
|
|
9
9
|
*/
|
|
10
|
-
export declare const PreviewCardPositioner: React.ForwardRefExoticComponent<PreviewCardPositionerProps & React.RefAttributes<HTMLDivElement>>;
|
|
10
|
+
export declare const PreviewCardPositioner: React.ForwardRefExoticComponent<Omit<PreviewCardPositionerProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
11
11
|
export interface PreviewCardPositionerState {
|
|
12
12
|
/**
|
|
13
13
|
* Whether the preview card is currently open.
|
|
@@ -16,6 +16,7 @@ export interface PreviewCardPositionerState {
|
|
|
16
16
|
side: Side;
|
|
17
17
|
align: Align;
|
|
18
18
|
anchorHidden: boolean;
|
|
19
|
+
instant: 'dismiss' | 'focus' | undefined;
|
|
19
20
|
}
|
|
20
21
|
export interface PreviewCardPositionerProps extends useAnchorPositioning.SharedParameters, BaseUIComponentProps<'div', PreviewCardPositioner.State> {}
|
|
21
22
|
export declare namespace PreviewCardPositioner {
|
|
@@ -8,6 +8,8 @@ import { popupStateMapping } from "../../utils/popupStateMapping.js";
|
|
|
8
8
|
import { usePreviewCardPortalContext } from "../portal/PreviewCardPortalContext.js";
|
|
9
9
|
import { POPUP_COLLISION_AVOIDANCE } from "../../utils/constants.js";
|
|
10
10
|
import { useRenderElement } from "../../utils/useRenderElement.js";
|
|
11
|
+
import { adaptiveOrigin } from "../../utils/adaptiveOriginMiddleware.js";
|
|
12
|
+
import { getDisabledMountTransitionStyles } from "../../utils/getDisabledMountTransitionStyles.js";
|
|
11
13
|
|
|
12
14
|
/**
|
|
13
15
|
* Positions the popup against the trigger.
|
|
@@ -34,13 +36,14 @@ export const PreviewCardPositioner = /*#__PURE__*/React.forwardRef(function Prev
|
|
|
34
36
|
collisionAvoidance = POPUP_COLLISION_AVOIDANCE,
|
|
35
37
|
...elementProps
|
|
36
38
|
} = componentProps;
|
|
37
|
-
const
|
|
38
|
-
open,
|
|
39
|
-
mounted,
|
|
40
|
-
floatingRootContext,
|
|
41
|
-
setPositionerElement
|
|
42
|
-
} = usePreviewCardRootContext();
|
|
39
|
+
const store = usePreviewCardRootContext();
|
|
43
40
|
const keepMounted = usePreviewCardPortalContext();
|
|
41
|
+
const open = store.useState('open');
|
|
42
|
+
const mounted = store.useState('mounted');
|
|
43
|
+
const floatingRootContext = store.useState('floatingRootContext');
|
|
44
|
+
const instantType = store.useState('instantType');
|
|
45
|
+
const transitionStatus = store.useState('transitionStatus');
|
|
46
|
+
const hasViewport = store.useState('hasViewport');
|
|
44
47
|
const positioning = useAnchorPositioning({
|
|
45
48
|
anchor,
|
|
46
49
|
floatingRootContext,
|
|
@@ -56,7 +59,8 @@ export const PreviewCardPositioner = /*#__PURE__*/React.forwardRef(function Prev
|
|
|
56
59
|
sticky,
|
|
57
60
|
disableAnchorTracking,
|
|
58
61
|
keepMounted,
|
|
59
|
-
collisionAvoidance
|
|
62
|
+
collisionAvoidance,
|
|
63
|
+
adaptiveOrigin: hasViewport ? adaptiveOrigin : undefined
|
|
60
64
|
});
|
|
61
65
|
const defaultProps = React.useMemo(() => {
|
|
62
66
|
const hiddenStyles = {};
|
|
@@ -76,8 +80,9 @@ export const PreviewCardPositioner = /*#__PURE__*/React.forwardRef(function Prev
|
|
|
76
80
|
open,
|
|
77
81
|
side: positioning.side,
|
|
78
82
|
align: positioning.align,
|
|
79
|
-
anchorHidden: positioning.anchorHidden
|
|
80
|
-
|
|
83
|
+
anchorHidden: positioning.anchorHidden,
|
|
84
|
+
instant: instantType
|
|
85
|
+
}), [open, positioning.side, positioning.align, positioning.anchorHidden, instantType]);
|
|
81
86
|
const contextValue = React.useMemo(() => ({
|
|
82
87
|
side: positioning.side,
|
|
83
88
|
align: positioning.align,
|
|
@@ -87,8 +92,8 @@ export const PreviewCardPositioner = /*#__PURE__*/React.forwardRef(function Prev
|
|
|
87
92
|
}), [positioning.side, positioning.align, positioning.arrowRef, positioning.arrowUncentered, positioning.arrowStyles]);
|
|
88
93
|
const element = useRenderElement('div', componentProps, {
|
|
89
94
|
state,
|
|
90
|
-
|
|
91
|
-
|
|
95
|
+
props: [defaultProps, getDisabledMountTransitionStyles(transitionStatus), elementProps],
|
|
96
|
+
ref: [forwardedRef, store.useStateSetter('positionerElement')],
|
|
92
97
|
stateAttributesMapping: popupStateMapping
|
|
93
98
|
});
|
|
94
99
|
return /*#__PURE__*/_jsx(PreviewCardPositionerContext.Provider, {
|
|
@@ -1,27 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
export
|
|
7
|
-
delay?: number;
|
|
8
|
-
closeDelay?: number;
|
|
9
|
-
}
|
|
10
|
-
export interface PreviewCardRootContext {
|
|
11
|
-
open: boolean;
|
|
12
|
-
setOpen: (open: boolean, eventDetails: PreviewCardRoot.ChangeEventDetails) => void;
|
|
13
|
-
setTriggerElement: (el: Element | null) => void;
|
|
14
|
-
positionerElement: HTMLElement | null;
|
|
15
|
-
setPositionerElement: (el: HTMLElement | null) => void;
|
|
16
|
-
mounted: boolean;
|
|
17
|
-
setMounted: React.Dispatch<React.SetStateAction<boolean>>;
|
|
18
|
-
triggerProps: HTMLProps;
|
|
19
|
-
popupProps: HTMLProps;
|
|
20
|
-
floatingRootContext: FloatingRootContext;
|
|
21
|
-
transitionStatus: TransitionStatus;
|
|
22
|
-
popupRef: React.RefObject<HTMLElement | null>;
|
|
23
|
-
onOpenChangeComplete: ((open: boolean) => void) | undefined;
|
|
24
|
-
writeDelayRefs: (config: PreviewCardTriggerDelayConfig) => void;
|
|
25
|
-
}
|
|
26
|
-
export declare const PreviewCardRootContext: React.Context<PreviewCardRootContext | undefined>;
|
|
27
|
-
export declare function usePreviewCardRootContext(): PreviewCardRootContext;
|
|
2
|
+
import { PreviewCardStore } from "../store/PreviewCardStore.js";
|
|
3
|
+
export type PreviewCardRootContext<Payload = unknown> = PreviewCardStore<Payload>;
|
|
4
|
+
export declare const PreviewCardRootContext: React.Context<PreviewCardRootContext<unknown> | undefined>;
|
|
5
|
+
export declare function usePreviewCardRootContext(optional?: false): PreviewCardRootContext;
|
|
6
|
+
export declare function usePreviewCardRootContext(optional: true): PreviewCardRootContext | undefined;
|
|
@@ -4,9 +4,9 @@ import _formatErrorMessage from "@base-ui/utils/formatErrorMessage";
|
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
export const PreviewCardRootContext = /*#__PURE__*/React.createContext(undefined);
|
|
6
6
|
if (process.env.NODE_ENV !== "production") PreviewCardRootContext.displayName = "PreviewCardRootContext";
|
|
7
|
-
export function usePreviewCardRootContext() {
|
|
7
|
+
export function usePreviewCardRootContext(optional) {
|
|
8
8
|
const context = React.useContext(PreviewCardRootContext);
|
|
9
|
-
if (context === undefined) {
|
|
9
|
+
if (context === undefined && !optional) {
|
|
10
10
|
throw new Error(process.env.NODE_ENV !== "production" ? 'Base UI: PreviewCardRootContext is missing. PreviewCard parts must be placed within <PreviewCard.Root>.' : _formatErrorMessage(50));
|
|
11
11
|
}
|
|
12
12
|
return context;
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { type BaseUIChangeEventDetails } from "../../utils/createBaseUIEventDetails.js";
|
|
3
3
|
import { REASONS } from "../../utils/reasons.js";
|
|
4
|
+
import { PayloadChildRenderFunction } from "../../utils/popups/index.js";
|
|
5
|
+
import { PreviewCardHandle } from "../store/PreviewCardHandle.js";
|
|
4
6
|
/**
|
|
5
7
|
* Groups all parts of the preview card.
|
|
6
8
|
* Doesn’t render its own HTML element.
|
|
7
9
|
*
|
|
8
10
|
* Documentation: [Base UI Preview Card](https://base-ui.com/react/components/preview-card)
|
|
9
11
|
*/
|
|
10
|
-
export declare function PreviewCardRoot(props: PreviewCardRoot.Props): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export declare function PreviewCardRoot<Payload>(props: PreviewCardRoot.Props<Payload>): import("react/jsx-runtime").JSX.Element;
|
|
11
13
|
export interface PreviewCardRootState {}
|
|
12
|
-
export interface PreviewCardRootProps {
|
|
13
|
-
children?: React.ReactNode;
|
|
14
|
+
export interface PreviewCardRootProps<Payload = unknown> {
|
|
14
15
|
/**
|
|
15
16
|
* Whether the preview card is initially open.
|
|
16
17
|
*
|
|
@@ -32,20 +33,44 @@ export interface PreviewCardRootProps {
|
|
|
32
33
|
onOpenChangeComplete?: (open: boolean) => void;
|
|
33
34
|
/**
|
|
34
35
|
* A ref to imperative actions.
|
|
35
|
-
* - `unmount`:
|
|
36
|
-
*
|
|
37
|
-
* Useful when the preview card's animation is controlled by an external library.
|
|
36
|
+
* - `unmount`: Unmounts the preview card popup.
|
|
37
|
+
* - `close`: Closes the preview card imperatively when called.
|
|
38
38
|
*/
|
|
39
|
-
actionsRef?: React.RefObject<PreviewCardRoot.Actions>;
|
|
39
|
+
actionsRef?: React.RefObject<PreviewCardRoot.Actions | null>;
|
|
40
|
+
/**
|
|
41
|
+
* A handle to associate the preview card with a trigger.
|
|
42
|
+
* If specified, allows external triggers to control the card's open state.
|
|
43
|
+
* Can be created with the PreviewCard.createHandle() method.
|
|
44
|
+
*/
|
|
45
|
+
handle?: PreviewCardHandle<Payload>;
|
|
46
|
+
/**
|
|
47
|
+
* The content of the preview card.
|
|
48
|
+
* This can be a regular React node or a render function that receives the `payload` of the active trigger.
|
|
49
|
+
*/
|
|
50
|
+
children?: React.ReactNode | PayloadChildRenderFunction<Payload>;
|
|
51
|
+
/**
|
|
52
|
+
* ID of the trigger that the preview card is associated with.
|
|
53
|
+
* This is useful in conjuntion with the `open` prop to create a controlled preview card.
|
|
54
|
+
* There's no need to specify this prop when the preview card is uncontrolled (i.e. when the `open` prop is not set).
|
|
55
|
+
*/
|
|
56
|
+
triggerId?: string | null;
|
|
57
|
+
/**
|
|
58
|
+
* ID of the trigger that the preview card is associated with.
|
|
59
|
+
* This is useful in conjunction with the `defaultOpen` prop to create an initially open preview card.
|
|
60
|
+
*/
|
|
61
|
+
defaultTriggerId?: string | null;
|
|
40
62
|
}
|
|
41
63
|
export interface PreviewCardRootActions {
|
|
42
64
|
unmount: () => void;
|
|
65
|
+
close: () => void;
|
|
43
66
|
}
|
|
44
|
-
export type PreviewCardRootChangeEventReason = typeof REASONS.triggerHover | typeof REASONS.triggerFocus | typeof REASONS.triggerPress | typeof REASONS.outsidePress | typeof REASONS.escapeKey | typeof REASONS.none;
|
|
45
|
-
export type PreviewCardRootChangeEventDetails = BaseUIChangeEventDetails<PreviewCardRoot.ChangeEventReason
|
|
67
|
+
export type PreviewCardRootChangeEventReason = typeof REASONS.triggerHover | typeof REASONS.triggerFocus | typeof REASONS.triggerPress | typeof REASONS.outsidePress | typeof REASONS.escapeKey | typeof REASONS.imperativeAction | typeof REASONS.none;
|
|
68
|
+
export type PreviewCardRootChangeEventDetails = BaseUIChangeEventDetails<PreviewCardRoot.ChangeEventReason> & {
|
|
69
|
+
preventUnmountOnClose(): void;
|
|
70
|
+
};
|
|
46
71
|
export declare namespace PreviewCardRoot {
|
|
47
72
|
type State = PreviewCardRootState;
|
|
48
|
-
type Props = PreviewCardRootProps
|
|
73
|
+
type Props<Payload = unknown> = PreviewCardRootProps<Payload>;
|
|
49
74
|
type Actions = PreviewCardRootActions;
|
|
50
75
|
type ChangeEventReason = PreviewCardRootChangeEventReason;
|
|
51
76
|
type ChangeEventDetails = PreviewCardRootChangeEventDetails;
|