@base-ui/react 1.0.0 → 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 +144 -1
- 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
|
@@ -14,6 +14,8 @@ var _popupStateMapping = require("../../utils/popupStateMapping");
|
|
|
14
14
|
var _PreviewCardPortalContext = require("../portal/PreviewCardPortalContext");
|
|
15
15
|
var _constants = require("../../utils/constants");
|
|
16
16
|
var _useRenderElement = require("../../utils/useRenderElement");
|
|
17
|
+
var _adaptiveOriginMiddleware = require("../../utils/adaptiveOriginMiddleware");
|
|
18
|
+
var _getDisabledMountTransitionStyles = require("../../utils/getDisabledMountTransitionStyles");
|
|
17
19
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
18
20
|
/**
|
|
19
21
|
* Positions the popup against the trigger.
|
|
@@ -39,13 +41,14 @@ const PreviewCardPositioner = exports.PreviewCardPositioner = /*#__PURE__*/React
|
|
|
39
41
|
collisionAvoidance = _constants.POPUP_COLLISION_AVOIDANCE,
|
|
40
42
|
...elementProps
|
|
41
43
|
} = componentProps;
|
|
42
|
-
const
|
|
43
|
-
open,
|
|
44
|
-
mounted,
|
|
45
|
-
floatingRootContext,
|
|
46
|
-
setPositionerElement
|
|
47
|
-
} = (0, _PreviewCardContext.usePreviewCardRootContext)();
|
|
44
|
+
const store = (0, _PreviewCardContext.usePreviewCardRootContext)();
|
|
48
45
|
const keepMounted = (0, _PreviewCardPortalContext.usePreviewCardPortalContext)();
|
|
46
|
+
const open = store.useState('open');
|
|
47
|
+
const mounted = store.useState('mounted');
|
|
48
|
+
const floatingRootContext = store.useState('floatingRootContext');
|
|
49
|
+
const instantType = store.useState('instantType');
|
|
50
|
+
const transitionStatus = store.useState('transitionStatus');
|
|
51
|
+
const hasViewport = store.useState('hasViewport');
|
|
49
52
|
const positioning = (0, _useAnchorPositioning.useAnchorPositioning)({
|
|
50
53
|
anchor,
|
|
51
54
|
floatingRootContext,
|
|
@@ -61,7 +64,8 @@ const PreviewCardPositioner = exports.PreviewCardPositioner = /*#__PURE__*/React
|
|
|
61
64
|
sticky,
|
|
62
65
|
disableAnchorTracking,
|
|
63
66
|
keepMounted,
|
|
64
|
-
collisionAvoidance
|
|
67
|
+
collisionAvoidance,
|
|
68
|
+
adaptiveOrigin: hasViewport ? _adaptiveOriginMiddleware.adaptiveOrigin : undefined
|
|
65
69
|
});
|
|
66
70
|
const defaultProps = React.useMemo(() => {
|
|
67
71
|
const hiddenStyles = {};
|
|
@@ -81,8 +85,9 @@ const PreviewCardPositioner = exports.PreviewCardPositioner = /*#__PURE__*/React
|
|
|
81
85
|
open,
|
|
82
86
|
side: positioning.side,
|
|
83
87
|
align: positioning.align,
|
|
84
|
-
anchorHidden: positioning.anchorHidden
|
|
85
|
-
|
|
88
|
+
anchorHidden: positioning.anchorHidden,
|
|
89
|
+
instant: instantType
|
|
90
|
+
}), [open, positioning.side, positioning.align, positioning.anchorHidden, instantType]);
|
|
86
91
|
const contextValue = React.useMemo(() => ({
|
|
87
92
|
side: positioning.side,
|
|
88
93
|
align: positioning.align,
|
|
@@ -92,8 +97,8 @@ const PreviewCardPositioner = exports.PreviewCardPositioner = /*#__PURE__*/React
|
|
|
92
97
|
}), [positioning.side, positioning.align, positioning.arrowRef, positioning.arrowUncentered, positioning.arrowStyles]);
|
|
93
98
|
const element = (0, _useRenderElement.useRenderElement)('div', componentProps, {
|
|
94
99
|
state,
|
|
95
|
-
|
|
96
|
-
|
|
100
|
+
props: [defaultProps, (0, _getDisabledMountTransitionStyles.getDisabledMountTransitionStyles)(transitionStatus), elementProps],
|
|
101
|
+
ref: [forwardedRef, store.useStateSetter('positionerElement')],
|
|
97
102
|
stateAttributesMapping: _popupStateMapping.popupStateMapping
|
|
98
103
|
});
|
|
99
104
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_PreviewCardPositionerContext.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;
|
|
@@ -12,9 +12,9 @@ var _formatErrorMessage2 = _interopRequireDefault(require("@base-ui/utils/format
|
|
|
12
12
|
var React = _interopRequireWildcard(require("react"));
|
|
13
13
|
const PreviewCardRootContext = exports.PreviewCardRootContext = /*#__PURE__*/React.createContext(undefined);
|
|
14
14
|
if (process.env.NODE_ENV !== "production") PreviewCardRootContext.displayName = "PreviewCardRootContext";
|
|
15
|
-
function usePreviewCardRootContext() {
|
|
15
|
+
function usePreviewCardRootContext(optional) {
|
|
16
16
|
const context = React.useContext(PreviewCardRootContext);
|
|
17
|
-
if (context === undefined) {
|
|
17
|
+
if (context === undefined && !optional) {
|
|
18
18
|
throw new Error(process.env.NODE_ENV !== "production" ? 'Base UI: PreviewCardRootContext is missing. PreviewCard parts must be placed within <PreviewCard.Root>.' : (0, _formatErrorMessage2.default)(50));
|
|
19
19
|
}
|
|
20
20
|
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;
|
|
@@ -7,16 +7,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.PreviewCardRoot = PreviewCardRoot;
|
|
9
9
|
var React = _interopRequireWildcard(require("react"));
|
|
10
|
-
var
|
|
11
|
-
var _useControlled = require("@base-ui/utils/useControlled");
|
|
12
|
-
var _useStableCallback = require("@base-ui/utils/useStableCallback");
|
|
10
|
+
var _useIsoLayoutEffect = require("@base-ui/utils/useIsoLayoutEffect");
|
|
13
11
|
var _floatingUiReact = require("../../floating-ui-react");
|
|
14
12
|
var _PreviewCardContext = require("./PreviewCardContext");
|
|
15
|
-
var
|
|
13
|
+
var _createBaseUIEventDetails = require("../../utils/createBaseUIEventDetails");
|
|
16
14
|
var _reasons = require("../../utils/reasons");
|
|
17
|
-
var
|
|
18
|
-
var
|
|
19
|
-
var _useTransitionStatus = require("../../utils/useTransitionStatus");
|
|
15
|
+
var _PreviewCardStore = require("../store/PreviewCardStore");
|
|
16
|
+
var _popups = require("../../utils/popups");
|
|
20
17
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
21
18
|
/**
|
|
22
19
|
* Groups all parts of the preview card.
|
|
@@ -26,122 +23,71 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
26
23
|
*/
|
|
27
24
|
function PreviewCardRoot(props) {
|
|
28
25
|
const {
|
|
29
|
-
open:
|
|
30
|
-
defaultOpen,
|
|
31
|
-
onOpenChange
|
|
26
|
+
open: openProp,
|
|
27
|
+
defaultOpen = false,
|
|
28
|
+
onOpenChange,
|
|
32
29
|
onOpenChangeComplete,
|
|
33
|
-
actionsRef
|
|
30
|
+
actionsRef,
|
|
31
|
+
handle,
|
|
32
|
+
triggerId: triggerIdProp,
|
|
33
|
+
defaultTriggerId: defaultTriggerIdProp = null,
|
|
34
|
+
children
|
|
34
35
|
} = props;
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
delayRef.current = config.delay ?? _constants.OPEN_DELAY;
|
|
39
|
-
closeDelayRef.current = config.closeDelay ?? _constants.CLOSE_DELAY;
|
|
36
|
+
const store = _PreviewCardStore.PreviewCardStore.useStore(handle?.store, {
|
|
37
|
+
open: openProp ?? defaultOpen,
|
|
38
|
+
activeTriggerId: triggerIdProp !== undefined ? triggerIdProp : defaultTriggerIdProp
|
|
40
39
|
});
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
const
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
state: 'open'
|
|
50
|
-
});
|
|
51
|
-
const onOpenChange = (0, _useStableCallback.useStableCallback)(onOpenChangeProp);
|
|
40
|
+
store.useControlledProp('open', openProp, defaultOpen);
|
|
41
|
+
store.useControlledProp('activeTriggerId', triggerIdProp, defaultTriggerIdProp);
|
|
42
|
+
store.useContextCallback('onOpenChange', onOpenChange);
|
|
43
|
+
store.useContextCallback('onOpenChangeComplete', onOpenChangeComplete);
|
|
44
|
+
const open = store.useState('open');
|
|
45
|
+
const activeTriggerId = store.useState('activeTriggerId');
|
|
46
|
+
const payload = store.useState('payload');
|
|
47
|
+
(0, _popups.useImplicitActiveTrigger)(store);
|
|
52
48
|
const {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
onOpenChangeComplete?.(false);
|
|
60
|
-
});
|
|
61
|
-
(0, _useOpenChangeComplete.useOpenChangeComplete)({
|
|
62
|
-
enabled: !actionsRef,
|
|
63
|
-
open,
|
|
64
|
-
ref: popupRef,
|
|
65
|
-
onComplete() {
|
|
66
|
-
if (!open) {
|
|
67
|
-
handleUnmount();
|
|
49
|
+
forceUnmount
|
|
50
|
+
} = (0, _popups.useOpenStateTransitions)(open, store);
|
|
51
|
+
(0, _useIsoLayoutEffect.useIsoLayoutEffect)(() => {
|
|
52
|
+
if (open) {
|
|
53
|
+
if (activeTriggerId == null) {
|
|
54
|
+
store.set('payload', undefined);
|
|
68
55
|
}
|
|
69
56
|
}
|
|
70
|
-
});
|
|
57
|
+
}, [store, activeTriggerId, open]);
|
|
58
|
+
const handleImperativeClose = React.useCallback(() => {
|
|
59
|
+
store.setOpen(false, createPreviewCardEventDetails(store, _reasons.REASONS.imperativeAction));
|
|
60
|
+
}, [store]);
|
|
71
61
|
React.useImperativeHandle(actionsRef, () => ({
|
|
72
|
-
unmount:
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
const isDismissClose = !nextOpen && (eventDetails.reason === _reasons.REASONS.triggerPress || eventDetails.reason === _reasons.REASONS.escapeKey);
|
|
78
|
-
onOpenChange(nextOpen, eventDetails);
|
|
79
|
-
if (eventDetails.isCanceled) {
|
|
80
|
-
return;
|
|
81
|
-
}
|
|
82
|
-
function changeState() {
|
|
83
|
-
setOpenUnwrapped(nextOpen);
|
|
84
|
-
}
|
|
85
|
-
if (isHover) {
|
|
86
|
-
// If a hover reason is provided, we need to flush the state synchronously. This ensures
|
|
87
|
-
// `node.getAnimations()` knows about the new state.
|
|
88
|
-
ReactDOM.flushSync(changeState);
|
|
89
|
-
} else {
|
|
90
|
-
changeState();
|
|
91
|
-
}
|
|
92
|
-
if (isFocusOpen || isDismissClose) {
|
|
93
|
-
setInstantTypeState(isFocusOpen ? 'focus' : 'dismiss');
|
|
94
|
-
} else if (eventDetails.reason === _reasons.REASONS.triggerHover) {
|
|
95
|
-
setInstantTypeState(undefined);
|
|
96
|
-
}
|
|
97
|
-
});
|
|
98
|
-
const context = (0, _floatingUiReact.useFloatingRootContext)({
|
|
99
|
-
elements: {
|
|
100
|
-
reference: triggerElement,
|
|
101
|
-
floating: positionerElement
|
|
102
|
-
},
|
|
103
|
-
open,
|
|
104
|
-
onOpenChange: setOpen
|
|
105
|
-
});
|
|
106
|
-
const instantType = instantTypeState;
|
|
107
|
-
const getDelayValue = () => delayRef.current;
|
|
108
|
-
const getCloseDelayValue = () => closeDelayRef.current;
|
|
109
|
-
const hover = (0, _floatingUiReact.useHover)(context, {
|
|
110
|
-
mouseOnly: true,
|
|
111
|
-
move: false,
|
|
112
|
-
handleClose: (0, _floatingUiReact.safePolygon)(),
|
|
113
|
-
restMs: getDelayValue,
|
|
114
|
-
delay: () => ({
|
|
115
|
-
close: getCloseDelayValue()
|
|
116
|
-
})
|
|
117
|
-
});
|
|
118
|
-
const focus = (0, _useFocusWithDelay.useFocusWithDelay)(context, {
|
|
119
|
-
delay: getDelayValue
|
|
120
|
-
});
|
|
121
|
-
const dismiss = (0, _floatingUiReact.useDismiss)(context);
|
|
62
|
+
unmount: forceUnmount,
|
|
63
|
+
close: handleImperativeClose
|
|
64
|
+
}), [forceUnmount, handleImperativeClose]);
|
|
65
|
+
const floatingRootContext = store.useState('floatingRootContext');
|
|
66
|
+
const dismiss = (0, _floatingUiReact.useDismiss)(floatingRootContext);
|
|
122
67
|
const {
|
|
123
68
|
getReferenceProps,
|
|
69
|
+
getTriggerProps,
|
|
124
70
|
getFloatingProps
|
|
125
|
-
} = (0, _floatingUiReact.useInteractions)([
|
|
126
|
-
const
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
popupRef,
|
|
135
|
-
triggerProps: getReferenceProps(),
|
|
136
|
-
popupProps: getFloatingProps(),
|
|
137
|
-
floatingRootContext: context,
|
|
138
|
-
instantType,
|
|
139
|
-
transitionStatus,
|
|
140
|
-
onOpenChangeComplete,
|
|
141
|
-
writeDelayRefs
|
|
142
|
-
}), [open, setOpen, mounted, setMounted, positionerElement, getReferenceProps, getFloatingProps, context, instantType, transitionStatus, onOpenChangeComplete, writeDelayRefs]);
|
|
71
|
+
} = (0, _floatingUiReact.useInteractions)([dismiss]);
|
|
72
|
+
const activeTriggerProps = React.useMemo(() => getReferenceProps(), [getReferenceProps]);
|
|
73
|
+
const inactiveTriggerProps = React.useMemo(() => getTriggerProps(), [getTriggerProps]);
|
|
74
|
+
const popupProps = React.useMemo(() => getFloatingProps(), [getFloatingProps]);
|
|
75
|
+
store.useSyncedValues({
|
|
76
|
+
activeTriggerProps,
|
|
77
|
+
inactiveTriggerProps,
|
|
78
|
+
popupProps
|
|
79
|
+
});
|
|
143
80
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_PreviewCardContext.PreviewCardRootContext.Provider, {
|
|
144
|
-
value:
|
|
145
|
-
children:
|
|
81
|
+
value: store,
|
|
82
|
+
children: typeof children === 'function' ? children({
|
|
83
|
+
payload
|
|
84
|
+
}) : children
|
|
146
85
|
});
|
|
86
|
+
}
|
|
87
|
+
function createPreviewCardEventDetails(store, reason) {
|
|
88
|
+
const details = (0, _createBaseUIEventDetails.createChangeEventDetails)(reason);
|
|
89
|
+
details.preventUnmountOnClose = () => {
|
|
90
|
+
store.set('preventUnmountingOnClose', true);
|
|
91
|
+
};
|
|
92
|
+
return details;
|
|
147
93
|
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { PreviewCardStore } from "./PreviewCardStore.js";
|
|
2
|
+
/**
|
|
3
|
+
* A handle to control a preview card imperatively and to associate detached triggers with it.
|
|
4
|
+
*/
|
|
5
|
+
export declare class PreviewCardHandle<Payload> {
|
|
6
|
+
/**
|
|
7
|
+
* Internal store holding the preview card state.
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
readonly store: PreviewCardStore<Payload>;
|
|
11
|
+
constructor();
|
|
12
|
+
/**
|
|
13
|
+
* Opens the preview card and associates it with the trigger with the given ID.
|
|
14
|
+
* The trigger must be a PreviewCard.Trigger component with this handle passed as a prop.
|
|
15
|
+
*
|
|
16
|
+
* This method should only be called in an event handler or an effect (not during rendering).
|
|
17
|
+
*
|
|
18
|
+
* @param triggerId ID of the trigger to associate with the preview card.
|
|
19
|
+
*/
|
|
20
|
+
open(triggerId: string): void;
|
|
21
|
+
/**
|
|
22
|
+
* Closes the preview card.
|
|
23
|
+
*/
|
|
24
|
+
close(): void;
|
|
25
|
+
/**
|
|
26
|
+
* Indicates whether the preview card is currently open.
|
|
27
|
+
*/
|
|
28
|
+
get isOpen(): boolean;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Creates a new handle to connect a PreviewCard.Root with detached PreviewCard.Trigger components.
|
|
32
|
+
*/
|
|
33
|
+
export declare function createPreviewCardHandle<Payload>(): PreviewCardHandle<Payload>;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.PreviewCardHandle = void 0;
|
|
8
|
+
exports.createPreviewCardHandle = createPreviewCardHandle;
|
|
9
|
+
var _formatErrorMessage2 = _interopRequireDefault(require("@base-ui/utils/formatErrorMessage"));
|
|
10
|
+
var _PreviewCardStore = require("./PreviewCardStore");
|
|
11
|
+
var _createBaseUIEventDetails = require("../../utils/createBaseUIEventDetails");
|
|
12
|
+
var _reasons = require("../../utils/reasons");
|
|
13
|
+
/**
|
|
14
|
+
* A handle to control a preview card imperatively and to associate detached triggers with it.
|
|
15
|
+
*/
|
|
16
|
+
class PreviewCardHandle {
|
|
17
|
+
/**
|
|
18
|
+
* Internal store holding the preview card state.
|
|
19
|
+
* @internal
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
constructor() {
|
|
23
|
+
this.store = new _PreviewCardStore.PreviewCardStore();
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Opens the preview card and associates it with the trigger with the given ID.
|
|
28
|
+
* The trigger must be a PreviewCard.Trigger component with this handle passed as a prop.
|
|
29
|
+
*
|
|
30
|
+
* This method should only be called in an event handler or an effect (not during rendering).
|
|
31
|
+
*
|
|
32
|
+
* @param triggerId ID of the trigger to associate with the preview card.
|
|
33
|
+
*/
|
|
34
|
+
open(triggerId) {
|
|
35
|
+
const triggerElement = triggerId ? this.store.context.triggerElements.getById(triggerId) : undefined;
|
|
36
|
+
if (triggerId && !triggerElement) {
|
|
37
|
+
throw new Error(process.env.NODE_ENV !== "production" ? `Base UI: PreviewCardHandle.open: No trigger found with id "${triggerId}".` : (0, _formatErrorMessage2.default)(88, triggerId));
|
|
38
|
+
}
|
|
39
|
+
this.store.setOpen(true, (0, _createBaseUIEventDetails.createChangeEventDetails)(_reasons.REASONS.imperativeAction, undefined, triggerElement));
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Closes the preview card.
|
|
44
|
+
*/
|
|
45
|
+
close() {
|
|
46
|
+
this.store.setOpen(false, (0, _createBaseUIEventDetails.createChangeEventDetails)(_reasons.REASONS.imperativeAction, undefined, undefined));
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Indicates whether the preview card is currently open.
|
|
51
|
+
*/
|
|
52
|
+
get isOpen() {
|
|
53
|
+
return this.store.state.open;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Creates a new handle to connect a PreviewCard.Root with detached PreviewCard.Trigger components.
|
|
59
|
+
*/
|
|
60
|
+
exports.PreviewCardHandle = PreviewCardHandle;
|
|
61
|
+
function createPreviewCardHandle() {
|
|
62
|
+
return new PreviewCardHandle();
|
|
63
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { ReactStore } from '@base-ui/utils/store';
|
|
3
|
+
import { PopupStoreContext, PopupStoreState } from "../../utils/popups/index.js";
|
|
4
|
+
import { type PreviewCardRoot } from "../root/PreviewCardRoot.js";
|
|
5
|
+
export type State<Payload> = PopupStoreState<Payload> & {
|
|
6
|
+
instantType: 'dismiss' | 'focus' | undefined;
|
|
7
|
+
hasViewport: boolean;
|
|
8
|
+
};
|
|
9
|
+
export type Context = PopupStoreContext<PreviewCardRoot.ChangeEventDetails> & {
|
|
10
|
+
closeDelayRef: React.RefObject<number>;
|
|
11
|
+
};
|
|
12
|
+
declare const selectors: {
|
|
13
|
+
instantType: (state: State<unknown>) => "focus" | "dismiss" | undefined;
|
|
14
|
+
hasViewport: (state: State<unknown>) => boolean;
|
|
15
|
+
open: (state: PopupStoreState<unknown>) => boolean;
|
|
16
|
+
mounted: (state: PopupStoreState<unknown>) => boolean;
|
|
17
|
+
transitionStatus: (state: PopupStoreState<unknown>) => import("../../utils/useTransitionStatus.js").TransitionStatus;
|
|
18
|
+
floatingRootContext: (state: PopupStoreState<unknown>) => import("../../floating-ui-react/components/FloatingRootStore.js").FloatingRootStore;
|
|
19
|
+
preventUnmountingOnClose: (state: PopupStoreState<unknown>) => boolean;
|
|
20
|
+
payload: (state: PopupStoreState<unknown>) => unknown;
|
|
21
|
+
activeTriggerId: (state: PopupStoreState<unknown>) => string | null;
|
|
22
|
+
activeTriggerElement: (state: PopupStoreState<unknown>) => Element | null;
|
|
23
|
+
isTriggerActive: (state: PopupStoreState<unknown>, triggerId: string | undefined) => boolean;
|
|
24
|
+
isOpenedByTrigger: (state: PopupStoreState<unknown>, triggerId: string | undefined) => boolean;
|
|
25
|
+
isMountedByTrigger: (state: PopupStoreState<unknown>, triggerId: string | undefined) => boolean;
|
|
26
|
+
triggerProps: (state: PopupStoreState<unknown>, isActive: boolean) => import("../../index.js").HTMLProps;
|
|
27
|
+
popupProps: (state: PopupStoreState<unknown>) => import("../../index.js").HTMLProps;
|
|
28
|
+
popupElement: (state: PopupStoreState<unknown>) => HTMLElement | null;
|
|
29
|
+
positionerElement: (state: PopupStoreState<unknown>) => HTMLElement | null;
|
|
30
|
+
};
|
|
31
|
+
export declare class PreviewCardStore<Payload> extends ReactStore<Readonly<State<Payload>>, Context, typeof selectors> {
|
|
32
|
+
constructor(initialState?: Partial<State<Payload>>);
|
|
33
|
+
setOpen: (nextOpen: boolean, eventDetails: Omit<PreviewCardRoot.ChangeEventDetails, "preventUnmountOnClose">) => void;
|
|
34
|
+
static useStore<Payload>(externalStore: PreviewCardStore<Payload> | undefined, initialState?: Partial<State<Payload>>): PreviewCardStore<Payload>;
|
|
35
|
+
}
|
|
36
|
+
export {};
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.PreviewCardStore = void 0;
|
|
8
|
+
var React = _interopRequireWildcard(require("react"));
|
|
9
|
+
var ReactDOM = _interopRequireWildcard(require("react-dom"));
|
|
10
|
+
var _store = require("@base-ui/utils/store");
|
|
11
|
+
var _useRefWithInit = require("@base-ui/utils/useRefWithInit");
|
|
12
|
+
var _popups = require("../../utils/popups");
|
|
13
|
+
var _floatingUiReact = require("../../floating-ui-react");
|
|
14
|
+
var _reasons = require("../../utils/reasons");
|
|
15
|
+
var _constants = require("../utils/constants");
|
|
16
|
+
const selectors = {
|
|
17
|
+
..._popups.popupStoreSelectors,
|
|
18
|
+
instantType: (0, _store.createSelector)(state => state.instantType),
|
|
19
|
+
hasViewport: (0, _store.createSelector)(state => state.hasViewport)
|
|
20
|
+
};
|
|
21
|
+
class PreviewCardStore extends _store.ReactStore {
|
|
22
|
+
constructor(initialState) {
|
|
23
|
+
super({
|
|
24
|
+
...createInitialState(),
|
|
25
|
+
...initialState
|
|
26
|
+
}, {
|
|
27
|
+
popupRef: /*#__PURE__*/React.createRef(),
|
|
28
|
+
onOpenChange: undefined,
|
|
29
|
+
onOpenChangeComplete: undefined,
|
|
30
|
+
triggerElements: new _popups.PopupTriggerMap(),
|
|
31
|
+
closeDelayRef: {
|
|
32
|
+
current: _constants.CLOSE_DELAY
|
|
33
|
+
}
|
|
34
|
+
}, selectors);
|
|
35
|
+
}
|
|
36
|
+
setOpen = (nextOpen, eventDetails) => {
|
|
37
|
+
const reason = eventDetails.reason;
|
|
38
|
+
const isHover = reason === _reasons.REASONS.triggerHover;
|
|
39
|
+
const isFocusOpen = nextOpen && reason === _reasons.REASONS.triggerFocus;
|
|
40
|
+
const isDismissClose = !nextOpen && (reason === _reasons.REASONS.triggerPress || reason === _reasons.REASONS.escapeKey);
|
|
41
|
+
eventDetails.preventUnmountOnClose = () => {
|
|
42
|
+
this.set('preventUnmountingOnClose', true);
|
|
43
|
+
};
|
|
44
|
+
this.context.onOpenChange?.(nextOpen, eventDetails);
|
|
45
|
+
if (eventDetails.isCanceled) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
const changeState = () => {
|
|
49
|
+
const updatedState = {
|
|
50
|
+
open: nextOpen
|
|
51
|
+
};
|
|
52
|
+
if (isFocusOpen) {
|
|
53
|
+
updatedState.instantType = 'focus';
|
|
54
|
+
} else if (isDismissClose) {
|
|
55
|
+
updatedState.instantType = 'dismiss';
|
|
56
|
+
} else if (reason === _reasons.REASONS.triggerHover) {
|
|
57
|
+
updatedState.instantType = undefined;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// If a popup is closing, the `trigger` may be null.
|
|
61
|
+
// We want to keep the previous value so that exit animations are played and focus is returned correctly.
|
|
62
|
+
const newTriggerId = eventDetails.trigger?.id ?? null;
|
|
63
|
+
if (newTriggerId || nextOpen) {
|
|
64
|
+
updatedState.activeTriggerId = newTriggerId;
|
|
65
|
+
updatedState.activeTriggerElement = eventDetails.trigger ?? null;
|
|
66
|
+
}
|
|
67
|
+
this.update(updatedState);
|
|
68
|
+
};
|
|
69
|
+
if (isHover) {
|
|
70
|
+
// If a hover reason is provided, we need to flush the state synchronously. This ensures
|
|
71
|
+
// `node.getAnimations()` knows about the new state.
|
|
72
|
+
ReactDOM.flushSync(changeState);
|
|
73
|
+
} else {
|
|
74
|
+
changeState();
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
static useStore(externalStore, initialState) {
|
|
78
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
79
|
+
const internalStore = (0, _useRefWithInit.useRefWithInit)(() => {
|
|
80
|
+
return new PreviewCardStore(initialState);
|
|
81
|
+
}).current;
|
|
82
|
+
const store = externalStore ?? internalStore;
|
|
83
|
+
|
|
84
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
85
|
+
const floatingRootContext = (0, _floatingUiReact.useSyncedFloatingRootContext)({
|
|
86
|
+
popupStore: store,
|
|
87
|
+
onOpenChange: store.setOpen
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
// It's safe to set this here because when this code runs for the first time,
|
|
91
|
+
// nothing has had a chance to subscribe to the `store` yet.
|
|
92
|
+
// For subsequent renders, the `floatingRootContext` reference remains the same,
|
|
93
|
+
// so it's basically a no-op.
|
|
94
|
+
store.state.floatingRootContext = floatingRootContext;
|
|
95
|
+
return store;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
exports.PreviewCardStore = PreviewCardStore;
|
|
99
|
+
function createInitialState() {
|
|
100
|
+
return {
|
|
101
|
+
...(0, _popups.createInitialPopupStoreState)(),
|
|
102
|
+
instantType: undefined,
|
|
103
|
+
hasViewport: false
|
|
104
|
+
};
|
|
105
|
+
}
|
|
@@ -1,19 +1,31 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import type { BaseUIComponentProps } from "../../utils/types.js";
|
|
3
|
+
import { PreviewCardHandle } from "../store/PreviewCardHandle.js";
|
|
3
4
|
/**
|
|
4
5
|
* A link that opens the preview card.
|
|
5
6
|
* Renders an `<a>` element.
|
|
6
7
|
*
|
|
7
8
|
* Documentation: [Base UI Preview Card](https://base-ui.com/react/components/preview-card)
|
|
8
9
|
*/
|
|
9
|
-
export declare const PreviewCardTrigger:
|
|
10
|
+
export declare const PreviewCardTrigger: PreviewCardTrigger;
|
|
11
|
+
export interface PreviewCardTrigger {
|
|
12
|
+
<Payload>(componentProps: PreviewCardTrigger.Props<Payload> & React.RefAttributes<HTMLElement>): React.JSX.Element;
|
|
13
|
+
}
|
|
10
14
|
export interface PreviewCardTriggerState {
|
|
11
15
|
/**
|
|
12
16
|
* Whether the preview card is currently open.
|
|
13
17
|
*/
|
|
14
18
|
open: boolean;
|
|
15
19
|
}
|
|
16
|
-
export interface PreviewCardTriggerProps extends BaseUIComponentProps<'a', PreviewCardTrigger.State> {
|
|
20
|
+
export interface PreviewCardTriggerProps<Payload = unknown> extends BaseUIComponentProps<'a', PreviewCardTrigger.State> {
|
|
21
|
+
/**
|
|
22
|
+
* A handle to associate the trigger with a preview card.
|
|
23
|
+
*/
|
|
24
|
+
handle?: PreviewCardHandle<Payload>;
|
|
25
|
+
/**
|
|
26
|
+
* A payload to pass to the preview card when it is opened.
|
|
27
|
+
*/
|
|
28
|
+
payload?: Payload;
|
|
17
29
|
/**
|
|
18
30
|
* How long to wait before the preview card opens. Specified in milliseconds.
|
|
19
31
|
* @default 600
|
|
@@ -27,5 +39,5 @@ export interface PreviewCardTriggerProps extends BaseUIComponentProps<'a', Previ
|
|
|
27
39
|
}
|
|
28
40
|
export declare namespace PreviewCardTrigger {
|
|
29
41
|
type State = PreviewCardTriggerState;
|
|
30
|
-
type Props = PreviewCardTriggerProps
|
|
42
|
+
type Props<Payload = unknown> = PreviewCardTriggerProps<Payload>;
|
|
31
43
|
}
|