@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
|
@@ -7,7 +7,7 @@ import type { ScrollAreaRoot } from "../root/ScrollAreaRoot.js";
|
|
|
7
7
|
*
|
|
8
8
|
* Documentation: [Base UI Scroll Area](https://base-ui.com/react/components/scroll-area)
|
|
9
9
|
*/
|
|
10
|
-
export declare const ScrollAreaContent: React.ForwardRefExoticComponent<ScrollAreaContentProps & React.RefAttributes<HTMLDivElement>>;
|
|
10
|
+
export declare const ScrollAreaContent: React.ForwardRefExoticComponent<Omit<ScrollAreaContentProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
11
11
|
export interface ScrollAreaContentState extends ScrollAreaRoot.State {}
|
|
12
12
|
export interface ScrollAreaContentProps extends BaseUIComponentProps<'div', ScrollAreaContent.State> {}
|
|
13
13
|
export declare namespace ScrollAreaContent {
|
|
@@ -35,7 +35,16 @@ const ScrollAreaContent = exports.ScrollAreaContent = /*#__PURE__*/React.forward
|
|
|
35
35
|
if (typeof ResizeObserver === 'undefined') {
|
|
36
36
|
return undefined;
|
|
37
37
|
}
|
|
38
|
-
|
|
38
|
+
let hasInitialized = false;
|
|
39
|
+
const ro = new ResizeObserver(() => {
|
|
40
|
+
// ResizeObserver fires once upon observing, so we skip the initial call
|
|
41
|
+
// to avoid double-calculating the thumb position on mount.
|
|
42
|
+
if (!hasInitialized) {
|
|
43
|
+
hasInitialized = true;
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
computeThumbPosition();
|
|
47
|
+
});
|
|
39
48
|
if (contentWrapperRef.current) {
|
|
40
49
|
ro.observe(contentWrapperRef.current);
|
|
41
50
|
}
|
|
@@ -6,7 +6,7 @@ import type { BaseUIComponentProps } from "../../utils/types.js";
|
|
|
6
6
|
*
|
|
7
7
|
* Documentation: [Base UI Scroll Area](https://base-ui.com/react/components/scroll-area)
|
|
8
8
|
*/
|
|
9
|
-
export declare const ScrollAreaCorner: React.ForwardRefExoticComponent<ScrollAreaCornerProps & React.RefAttributes<HTMLDivElement>>;
|
|
9
|
+
export declare const ScrollAreaCorner: React.ForwardRefExoticComponent<Omit<ScrollAreaCornerProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
10
10
|
export interface ScrollAreaCornerState {}
|
|
11
11
|
export interface ScrollAreaCornerProps extends BaseUIComponentProps<'div', ScrollAreaCorner.State> {}
|
|
12
12
|
export declare namespace ScrollAreaCorner {
|
|
@@ -1,12 +1,35 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import type { BaseUIComponentProps } from "../../utils/types.js";
|
|
3
|
+
declare const DEFAULT_COORDS: {
|
|
4
|
+
x: number;
|
|
5
|
+
y: number;
|
|
6
|
+
};
|
|
7
|
+
declare const DEFAULT_SIZE: {
|
|
8
|
+
width: number;
|
|
9
|
+
height: number;
|
|
10
|
+
};
|
|
11
|
+
declare const DEFAULT_OVERFLOW_EDGES: {
|
|
12
|
+
xStart: boolean;
|
|
13
|
+
xEnd: boolean;
|
|
14
|
+
yStart: boolean;
|
|
15
|
+
yEnd: boolean;
|
|
16
|
+
};
|
|
17
|
+
declare const DEFAULT_HIDDEN_STATE: {
|
|
18
|
+
x: boolean;
|
|
19
|
+
y: boolean;
|
|
20
|
+
corner: boolean;
|
|
21
|
+
};
|
|
22
|
+
export type HiddenState = typeof DEFAULT_HIDDEN_STATE;
|
|
23
|
+
export type OverflowEdges = typeof DEFAULT_OVERFLOW_EDGES;
|
|
24
|
+
export type Size = typeof DEFAULT_SIZE;
|
|
25
|
+
export type Coords = typeof DEFAULT_COORDS;
|
|
3
26
|
/**
|
|
4
27
|
* Groups all parts of the scroll area.
|
|
5
28
|
* Renders a `<div>` element.
|
|
6
29
|
*
|
|
7
30
|
* Documentation: [Base UI Scroll Area](https://base-ui.com/react/components/scroll-area)
|
|
8
31
|
*/
|
|
9
|
-
export declare const ScrollAreaRoot: React.ForwardRefExoticComponent<ScrollAreaRootProps & React.RefAttributes<HTMLDivElement>>;
|
|
32
|
+
export declare const ScrollAreaRoot: React.ForwardRefExoticComponent<Omit<ScrollAreaRootProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
10
33
|
export interface ScrollAreaRootState {
|
|
11
34
|
/** Whether horizontal overflow is present. */
|
|
12
35
|
hasOverflowX: boolean;
|
|
@@ -39,4 +62,5 @@ export interface ScrollAreaRootProps extends BaseUIComponentProps<'div', ScrollA
|
|
|
39
62
|
export declare namespace ScrollAreaRoot {
|
|
40
63
|
type State = ScrollAreaRootState;
|
|
41
64
|
type Props = ScrollAreaRootProps;
|
|
42
|
-
}
|
|
65
|
+
}
|
|
66
|
+
export {};
|
|
@@ -19,7 +19,12 @@ var _styles = require("../../utils/styles");
|
|
|
19
19
|
var _useBaseUiId = require("../../utils/useBaseUiId");
|
|
20
20
|
var _stateAttributes = require("./stateAttributes");
|
|
21
21
|
var _utils = require("../../floating-ui-react/utils");
|
|
22
|
+
var _CSPContext = require("../../csp-provider/CSPContext");
|
|
22
23
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
24
|
+
const DEFAULT_COORDS = {
|
|
25
|
+
x: 0,
|
|
26
|
+
y: 0
|
|
27
|
+
};
|
|
23
28
|
const DEFAULT_SIZE = {
|
|
24
29
|
width: 0,
|
|
25
30
|
height: 0
|
|
@@ -30,7 +35,11 @@ const DEFAULT_OVERFLOW_EDGES = {
|
|
|
30
35
|
yStart: false,
|
|
31
36
|
yEnd: false
|
|
32
37
|
};
|
|
33
|
-
|
|
38
|
+
const DEFAULT_HIDDEN_STATE = {
|
|
39
|
+
x: false,
|
|
40
|
+
y: false,
|
|
41
|
+
corner: false
|
|
42
|
+
};
|
|
34
43
|
/**
|
|
35
44
|
* Groups all parts of the scroll area.
|
|
36
45
|
* Renders a `<div>` element.
|
|
@@ -44,14 +53,22 @@ const ScrollAreaRoot = exports.ScrollAreaRoot = /*#__PURE__*/React.forwardRef(fu
|
|
|
44
53
|
overflowEdgeThreshold: overflowEdgeThresholdProp,
|
|
45
54
|
...elementProps
|
|
46
55
|
} = componentProps;
|
|
56
|
+
const overflowEdgeThreshold = normalizeOverflowEdgeThreshold(overflowEdgeThresholdProp);
|
|
57
|
+
const rootId = (0, _useBaseUiId.useBaseUiId)();
|
|
58
|
+
const scrollYTimeout = (0, _useTimeout.useTimeout)();
|
|
59
|
+
const scrollXTimeout = (0, _useTimeout.useTimeout)();
|
|
60
|
+
const {
|
|
61
|
+
nonce,
|
|
62
|
+
disableStyleElements
|
|
63
|
+
} = (0, _CSPContext.useCSPContext)();
|
|
47
64
|
const [hovering, setHovering] = React.useState(false);
|
|
48
65
|
const [scrollingX, setScrollingX] = React.useState(false);
|
|
49
66
|
const [scrollingY, setScrollingY] = React.useState(false);
|
|
67
|
+
const [touchModality, setTouchModality] = React.useState(false);
|
|
50
68
|
const [cornerSize, setCornerSize] = React.useState(DEFAULT_SIZE);
|
|
51
69
|
const [thumbSize, setThumbSize] = React.useState(DEFAULT_SIZE);
|
|
52
|
-
const [touchModality, setTouchModality] = React.useState(false);
|
|
53
70
|
const [overflowEdges, setOverflowEdges] = React.useState(DEFAULT_OVERFLOW_EDGES);
|
|
54
|
-
const
|
|
71
|
+
const [hiddenState, setHiddenState] = React.useState(DEFAULT_HIDDEN_STATE);
|
|
55
72
|
const rootRef = React.useRef(null);
|
|
56
73
|
const viewportRef = React.useRef(null);
|
|
57
74
|
const scrollbarYRef = React.useRef(null);
|
|
@@ -65,18 +82,7 @@ const ScrollAreaRoot = exports.ScrollAreaRoot = /*#__PURE__*/React.forwardRef(fu
|
|
|
65
82
|
const startScrollTopRef = React.useRef(0);
|
|
66
83
|
const startScrollLeftRef = React.useRef(0);
|
|
67
84
|
const currentOrientationRef = React.useRef('vertical');
|
|
68
|
-
const
|
|
69
|
-
const scrollXTimeout = (0, _useTimeout.useTimeout)();
|
|
70
|
-
const scrollPositionRef = React.useRef({
|
|
71
|
-
x: 0,
|
|
72
|
-
y: 0
|
|
73
|
-
});
|
|
74
|
-
const [hiddenState, setHiddenState] = React.useState({
|
|
75
|
-
scrollbarYHidden: false,
|
|
76
|
-
scrollbarXHidden: false,
|
|
77
|
-
cornerHidden: false
|
|
78
|
-
});
|
|
79
|
-
const overflowEdgeThreshold = normalizeOverflowEdgeThreshold(overflowEdgeThresholdProp);
|
|
85
|
+
const scrollPositionRef = React.useRef(DEFAULT_COORDS);
|
|
80
86
|
const handleScroll = (0, _useStableCallback.useStableCallback)(scrollPosition => {
|
|
81
87
|
const offsetX = scrollPosition.x - scrollPositionRef.current.x;
|
|
82
88
|
const offsetY = scrollPosition.y - scrollPositionRef.current.y;
|
|
@@ -161,32 +167,30 @@ const ScrollAreaRoot = exports.ScrollAreaRoot = /*#__PURE__*/React.forwardRef(fu
|
|
|
161
167
|
thumbXRef.current.releasePointerCapture(event.pointerId);
|
|
162
168
|
}
|
|
163
169
|
});
|
|
170
|
+
function handleTouchModalityChange(event) {
|
|
171
|
+
setTouchModality(event.pointerType === 'touch');
|
|
172
|
+
}
|
|
164
173
|
function handlePointerEnterOrMove(event) {
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
if (!isTouch) {
|
|
174
|
+
handleTouchModalityChange(event);
|
|
175
|
+
if (event.pointerType !== 'touch') {
|
|
168
176
|
const isTargetRootChild = (0, _utils.contains)(rootRef.current, event.target);
|
|
169
177
|
setHovering(isTargetRootChild);
|
|
170
178
|
}
|
|
171
179
|
}
|
|
172
180
|
const state = React.useMemo(() => ({
|
|
173
|
-
hasOverflowX: !hiddenState.
|
|
174
|
-
hasOverflowY: !hiddenState.
|
|
181
|
+
hasOverflowX: !hiddenState.x,
|
|
182
|
+
hasOverflowY: !hiddenState.y,
|
|
175
183
|
overflowXStart: overflowEdges.xStart,
|
|
176
184
|
overflowXEnd: overflowEdges.xEnd,
|
|
177
185
|
overflowYStart: overflowEdges.yStart,
|
|
178
186
|
overflowYEnd: overflowEdges.yEnd,
|
|
179
|
-
cornerHidden: hiddenState.
|
|
180
|
-
}), [hiddenState.
|
|
187
|
+
cornerHidden: hiddenState.corner
|
|
188
|
+
}), [hiddenState.x, hiddenState.y, hiddenState.corner, overflowEdges]);
|
|
181
189
|
const props = {
|
|
182
190
|
role: 'presentation',
|
|
183
191
|
onPointerEnter: handlePointerEnterOrMove,
|
|
184
192
|
onPointerMove: handlePointerEnterOrMove,
|
|
185
|
-
onPointerDown
|
|
186
|
-
pointerType
|
|
187
|
-
}) {
|
|
188
|
-
setTouchModality(pointerType === 'touch');
|
|
189
|
-
},
|
|
193
|
+
onPointerDown: handleTouchModalityChange,
|
|
190
194
|
onPointerLeave() {
|
|
191
195
|
setHovering(false);
|
|
192
196
|
},
|
|
@@ -232,10 +236,10 @@ const ScrollAreaRoot = exports.ScrollAreaRoot = /*#__PURE__*/React.forwardRef(fu
|
|
|
232
236
|
setOverflowEdges,
|
|
233
237
|
viewportState: state,
|
|
234
238
|
overflowEdgeThreshold
|
|
235
|
-
}), [handlePointerDown, handlePointerMove, handlePointerUp, handleScroll, cornerSize, thumbSize, touchModality,
|
|
239
|
+
}), [handlePointerDown, handlePointerMove, handlePointerUp, handleScroll, cornerSize, thumbSize, touchModality, scrollingX, setScrollingX, scrollingY, setScrollingY, hovering, setHovering, rootId, hiddenState, overflowEdges, state, overflowEdgeThreshold]);
|
|
236
240
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_ScrollAreaRootContext.ScrollAreaRootContext.Provider, {
|
|
237
241
|
value: contextValue,
|
|
238
|
-
children: [_styles.styleDisableScrollbar.
|
|
242
|
+
children: [!disableStyleElements && _styles.styleDisableScrollbar.getElement(nonce), element]
|
|
239
243
|
});
|
|
240
244
|
});
|
|
241
245
|
if (process.env.NODE_ENV !== "production") ScrollAreaRoot.displayName = "ScrollAreaRoot";
|
|
@@ -1,22 +1,10 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import type { ScrollAreaRoot } from "./ScrollAreaRoot.js";
|
|
2
|
+
import type { Coords, HiddenState, OverflowEdges, ScrollAreaRoot, Size } from "./ScrollAreaRoot.js";
|
|
3
3
|
export interface ScrollAreaRootContext {
|
|
4
|
-
cornerSize:
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
setCornerSize: React.Dispatch<React.SetStateAction<{
|
|
9
|
-
width: number;
|
|
10
|
-
height: number;
|
|
11
|
-
}>>;
|
|
12
|
-
thumbSize: {
|
|
13
|
-
width: number;
|
|
14
|
-
height: number;
|
|
15
|
-
};
|
|
16
|
-
setThumbSize: React.Dispatch<React.SetStateAction<{
|
|
17
|
-
width: number;
|
|
18
|
-
height: number;
|
|
19
|
-
}>>;
|
|
4
|
+
cornerSize: Size;
|
|
5
|
+
setCornerSize: React.Dispatch<React.SetStateAction<Size>>;
|
|
6
|
+
thumbSize: Size;
|
|
7
|
+
setThumbSize: React.Dispatch<React.SetStateAction<Size>>;
|
|
20
8
|
touchModality: boolean;
|
|
21
9
|
hovering: boolean;
|
|
22
10
|
setHovering: React.Dispatch<React.SetStateAction<boolean>>;
|
|
@@ -34,33 +22,12 @@ export interface ScrollAreaRootContext {
|
|
|
34
22
|
handlePointerDown: (event: React.PointerEvent) => void;
|
|
35
23
|
handlePointerMove: (event: React.PointerEvent) => void;
|
|
36
24
|
handlePointerUp: (event: React.PointerEvent) => void;
|
|
37
|
-
handleScroll: (scrollPosition:
|
|
38
|
-
x: number;
|
|
39
|
-
y: number;
|
|
40
|
-
}) => void;
|
|
25
|
+
handleScroll: (scrollPosition: Coords) => void;
|
|
41
26
|
rootId: string | undefined;
|
|
42
|
-
hiddenState:
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
};
|
|
47
|
-
setHiddenState: React.Dispatch<React.SetStateAction<{
|
|
48
|
-
scrollbarYHidden: boolean;
|
|
49
|
-
scrollbarXHidden: boolean;
|
|
50
|
-
cornerHidden: boolean;
|
|
51
|
-
}>>;
|
|
52
|
-
overflowEdges: {
|
|
53
|
-
xStart: boolean;
|
|
54
|
-
xEnd: boolean;
|
|
55
|
-
yStart: boolean;
|
|
56
|
-
yEnd: boolean;
|
|
57
|
-
};
|
|
58
|
-
setOverflowEdges: React.Dispatch<React.SetStateAction<{
|
|
59
|
-
xStart: boolean;
|
|
60
|
-
xEnd: boolean;
|
|
61
|
-
yStart: boolean;
|
|
62
|
-
yEnd: boolean;
|
|
63
|
-
}>>;
|
|
27
|
+
hiddenState: HiddenState;
|
|
28
|
+
setHiddenState: React.Dispatch<React.SetStateAction<HiddenState>>;
|
|
29
|
+
overflowEdges: OverflowEdges;
|
|
30
|
+
setOverflowEdges: React.Dispatch<React.SetStateAction<OverflowEdges>>;
|
|
64
31
|
viewportState: ScrollAreaRoot.State;
|
|
65
32
|
overflowEdgeThreshold: {
|
|
66
33
|
xStart: number;
|
|
@@ -7,7 +7,7 @@ import type { ScrollAreaRoot } from "../root/ScrollAreaRoot.js";
|
|
|
7
7
|
*
|
|
8
8
|
* Documentation: [Base UI Scroll Area](https://base-ui.com/react/components/scroll-area)
|
|
9
9
|
*/
|
|
10
|
-
export declare const ScrollAreaScrollbar: React.ForwardRefExoticComponent<ScrollAreaScrollbarProps & React.RefAttributes<HTMLDivElement>>;
|
|
10
|
+
export declare const ScrollAreaScrollbar: React.ForwardRefExoticComponent<Omit<ScrollAreaScrollbarProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
11
11
|
export interface ScrollAreaScrollbarState extends ScrollAreaRoot.State {
|
|
12
12
|
/** Whether the scroll area is being hovered. */
|
|
13
13
|
hovering: boolean;
|
|
@@ -53,13 +53,13 @@ const ScrollAreaScrollbar = exports.ScrollAreaScrollbar = /*#__PURE__*/React.for
|
|
|
53
53
|
vertical: scrollingY
|
|
54
54
|
}[orientation],
|
|
55
55
|
orientation,
|
|
56
|
-
hasOverflowX: !hiddenState.
|
|
57
|
-
hasOverflowY: !hiddenState.
|
|
56
|
+
hasOverflowX: !hiddenState.x,
|
|
57
|
+
hasOverflowY: !hiddenState.y,
|
|
58
58
|
overflowXStart: overflowEdges.xStart,
|
|
59
59
|
overflowXEnd: overflowEdges.xEnd,
|
|
60
60
|
overflowYStart: overflowEdges.yStart,
|
|
61
61
|
overflowYEnd: overflowEdges.yEnd,
|
|
62
|
-
cornerHidden: hiddenState.
|
|
62
|
+
cornerHidden: hiddenState.corner
|
|
63
63
|
}), [hovering, scrollingX, scrollingY, orientation, hiddenState, overflowEdges]);
|
|
64
64
|
const direction = (0, _DirectionContext.useDirection)();
|
|
65
65
|
React.useEffect(() => {
|
|
@@ -186,7 +186,7 @@ const ScrollAreaScrollbar = exports.ScrollAreaScrollbar = /*#__PURE__*/React.for
|
|
|
186
186
|
const contextValue = React.useMemo(() => ({
|
|
187
187
|
orientation
|
|
188
188
|
}), [orientation]);
|
|
189
|
-
const isHidden = orientation === 'vertical' ? hiddenState.
|
|
189
|
+
const isHidden = orientation === 'vertical' ? hiddenState.y : hiddenState.x;
|
|
190
190
|
const shouldRender = keepMounted || !isHidden;
|
|
191
191
|
if (!shouldRender) {
|
|
192
192
|
return null;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import type { BaseUIComponentProps } from "../../utils/types.js";
|
|
3
3
|
/**
|
|
4
|
-
* The draggable part of the
|
|
4
|
+
* The draggable part of the scrollbar that indicates the current scroll position.
|
|
5
5
|
* Renders a `<div>` element.
|
|
6
6
|
*
|
|
7
7
|
* Documentation: [Base UI Scroll Area](https://base-ui.com/react/components/scroll-area)
|
|
8
8
|
*/
|
|
9
|
-
export declare const ScrollAreaThumb: React.ForwardRefExoticComponent<ScrollAreaThumbProps & React.RefAttributes<HTMLDivElement>>;
|
|
9
|
+
export declare const ScrollAreaThumb: React.ForwardRefExoticComponent<Omit<ScrollAreaThumbProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
10
10
|
export interface ScrollAreaThumbState {
|
|
11
11
|
orientation?: 'horizontal' | 'vertical';
|
|
12
12
|
}
|
|
@@ -12,7 +12,7 @@ var _ScrollAreaScrollbarContext = require("../scrollbar/ScrollAreaScrollbarConte
|
|
|
12
12
|
var _ScrollAreaScrollbarCssVars = require("../scrollbar/ScrollAreaScrollbarCssVars");
|
|
13
13
|
var _useRenderElement = require("../../utils/useRenderElement");
|
|
14
14
|
/**
|
|
15
|
-
* The draggable part of the
|
|
15
|
+
* The draggable part of the scrollbar that indicates the current scroll position.
|
|
16
16
|
* Renders a `<div>` element.
|
|
17
17
|
*
|
|
18
18
|
* Documentation: [Base UI Scroll Area](https://base-ui.com/react/components/scroll-area)
|
|
@@ -7,7 +7,7 @@ import type { ScrollAreaRoot } from "../root/ScrollAreaRoot.js";
|
|
|
7
7
|
*
|
|
8
8
|
* Documentation: [Base UI Scroll Area](https://base-ui.com/react/components/scroll-area)
|
|
9
9
|
*/
|
|
10
|
-
export declare const ScrollAreaViewport: React.ForwardRefExoticComponent<ScrollAreaViewportProps & React.RefAttributes<HTMLDivElement>>;
|
|
10
|
+
export declare const ScrollAreaViewport: React.ForwardRefExoticComponent<Omit<ScrollAreaViewportProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
11
11
|
export interface ScrollAreaViewportProps extends BaseUIComponentProps<'div', ScrollAreaViewport.State> {}
|
|
12
12
|
export interface ScrollAreaViewportState extends ScrollAreaRoot.State {}
|
|
13
13
|
export declare namespace ScrollAreaViewport {
|
|
@@ -7,7 +7,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.ScrollAreaViewport = void 0;
|
|
9
9
|
var React = _interopRequireWildcard(require("react"));
|
|
10
|
-
var ReactDOM = _interopRequireWildcard(require("react-dom"));
|
|
11
10
|
var _useStableCallback = require("@base-ui/utils/useStableCallback");
|
|
12
11
|
var _useIsoLayoutEffect = require("@base-ui/utils/useIsoLayoutEffect");
|
|
13
12
|
var _detectBrowser = require("@base-ui/utils/detectBrowser");
|
|
@@ -79,6 +78,7 @@ const ScrollAreaViewport = exports.ScrollAreaViewport = /*#__PURE__*/React.forwa
|
|
|
79
78
|
thumbYRef,
|
|
80
79
|
thumbXRef,
|
|
81
80
|
cornerRef,
|
|
81
|
+
cornerSize,
|
|
82
82
|
setCornerSize,
|
|
83
83
|
setThumbSize,
|
|
84
84
|
rootId,
|
|
@@ -94,7 +94,7 @@ const ScrollAreaViewport = exports.ScrollAreaViewport = /*#__PURE__*/React.forwa
|
|
|
94
94
|
const programmaticScrollRef = React.useRef(true);
|
|
95
95
|
const scrollEndTimeout = (0, _useTimeout.useTimeout)();
|
|
96
96
|
const waitForAnimationsTimeout = (0, _useTimeout.useTimeout)();
|
|
97
|
-
|
|
97
|
+
const computeThumbPosition = (0, _useStableCallback.useStableCallback)(() => {
|
|
98
98
|
const viewportEl = viewportRef.current;
|
|
99
99
|
const scrollbarYEl = scrollbarYRef.current;
|
|
100
100
|
const scrollbarXEl = scrollbarXRef.current;
|
|
@@ -133,14 +133,26 @@ const ScrollAreaViewport = exports.ScrollAreaViewport = /*#__PURE__*/React.forwa
|
|
|
133
133
|
const scrollTopFromEnd = !scrollbarYHidden ? maxScrollTop - scrollTopFromStart : 0;
|
|
134
134
|
const nextWidth = scrollbarXHidden ? 0 : viewportWidth;
|
|
135
135
|
const nextHeight = scrollbarYHidden ? 0 : viewportHeight;
|
|
136
|
+
let nextCornerWidth = 0;
|
|
137
|
+
let nextCornerHeight = 0;
|
|
138
|
+
if (!scrollbarXHidden && !scrollbarYHidden) {
|
|
139
|
+
nextCornerWidth = scrollbarYEl?.offsetWidth || 0;
|
|
140
|
+
nextCornerHeight = scrollbarXEl?.offsetHeight || 0;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
// Only subtract corner size from scrollbar dimensions if the corner hasn't been sized yet.
|
|
144
|
+
// Once sized, the layout will already account for it.
|
|
145
|
+
const cornerNotYetSized = cornerSize.width === 0 && cornerSize.height === 0;
|
|
146
|
+
const cornerWidthOffset = cornerNotYetSized ? nextCornerWidth : 0;
|
|
147
|
+
const cornerHeightOffset = cornerNotYetSized ? nextCornerHeight : 0;
|
|
136
148
|
const scrollbarXOffset = (0, _getOffset.getOffset)(scrollbarXEl, 'padding', 'x');
|
|
137
149
|
const scrollbarYOffset = (0, _getOffset.getOffset)(scrollbarYEl, 'padding', 'y');
|
|
138
150
|
const thumbXOffset = (0, _getOffset.getOffset)(thumbXEl, 'margin', 'x');
|
|
139
151
|
const thumbYOffset = (0, _getOffset.getOffset)(thumbYEl, 'margin', 'y');
|
|
140
152
|
const idealNextWidth = nextWidth - scrollbarXOffset - thumbXOffset;
|
|
141
153
|
const idealNextHeight = nextHeight - scrollbarYOffset - thumbYOffset;
|
|
142
|
-
const maxNextWidth = scrollbarXEl ? Math.min(scrollbarXEl.offsetWidth, idealNextWidth) : idealNextWidth;
|
|
143
|
-
const maxNextHeight = scrollbarYEl ? Math.min(scrollbarYEl.offsetHeight, idealNextHeight) : idealNextHeight;
|
|
154
|
+
const maxNextWidth = scrollbarXEl ? Math.min(scrollbarXEl.offsetWidth - cornerWidthOffset, idealNextWidth) : idealNextWidth;
|
|
155
|
+
const maxNextHeight = scrollbarYEl ? Math.min(scrollbarYEl.offsetHeight - cornerHeightOffset, idealNextHeight) : idealNextHeight;
|
|
144
156
|
const clampedNextWidth = Math.max(_constants.MIN_THUMB_SIZE, maxNextWidth * ratioX);
|
|
145
157
|
const clampedNextHeight = Math.max(_constants.MIN_THUMB_SIZE, maxNextHeight * ratioY);
|
|
146
158
|
setThumbSize(prevSize => {
|
|
@@ -191,23 +203,21 @@ const ScrollAreaViewport = exports.ScrollAreaViewport = /*#__PURE__*/React.forwa
|
|
|
191
203
|
height: 0
|
|
192
204
|
});
|
|
193
205
|
} else if (!scrollbarXHidden && !scrollbarYHidden) {
|
|
194
|
-
const width = scrollbarYEl?.offsetWidth || 0;
|
|
195
|
-
const height = scrollbarXEl?.offsetHeight || 0;
|
|
196
206
|
setCornerSize({
|
|
197
|
-
width,
|
|
198
|
-
height
|
|
207
|
+
width: nextCornerWidth,
|
|
208
|
+
height: nextCornerHeight
|
|
199
209
|
});
|
|
200
210
|
}
|
|
201
211
|
}
|
|
202
212
|
setHiddenState(prevState => {
|
|
203
213
|
const cornerHidden = scrollbarYHidden || scrollbarXHidden;
|
|
204
|
-
if (prevState.
|
|
214
|
+
if (prevState.y === scrollbarYHidden && prevState.x === scrollbarXHidden && prevState.corner === cornerHidden) {
|
|
205
215
|
return prevState;
|
|
206
216
|
}
|
|
207
217
|
return {
|
|
208
|
-
scrollbarYHidden,
|
|
209
|
-
scrollbarXHidden,
|
|
210
|
-
cornerHidden
|
|
218
|
+
y: scrollbarYHidden,
|
|
219
|
+
x: scrollbarXHidden,
|
|
220
|
+
corner: cornerHidden
|
|
211
221
|
};
|
|
212
222
|
});
|
|
213
223
|
const nextOverflowEdges = {
|
|
@@ -222,17 +232,20 @@ const ScrollAreaViewport = exports.ScrollAreaViewport = /*#__PURE__*/React.forwa
|
|
|
222
232
|
}
|
|
223
233
|
return nextOverflowEdges;
|
|
224
234
|
});
|
|
225
|
-
}
|
|
226
|
-
const computeThumbPosition = (0, _useStableCallback.useStableCallback)(() => {
|
|
227
|
-
ReactDOM.flushSync(computeThumbPositionHandler);
|
|
228
235
|
});
|
|
229
236
|
(0, _useIsoLayoutEffect.useIsoLayoutEffect)(() => {
|
|
230
237
|
if (!viewportRef.current) {
|
|
231
238
|
return undefined;
|
|
232
239
|
}
|
|
233
240
|
removeCSSVariableInheritance();
|
|
234
|
-
|
|
235
|
-
return
|
|
241
|
+
let hasInitialized = false;
|
|
242
|
+
return (0, _onVisible.onVisible)(viewportRef.current, () => {
|
|
243
|
+
if (!hasInitialized) {
|
|
244
|
+
hasInitialized = true;
|
|
245
|
+
return;
|
|
246
|
+
}
|
|
247
|
+
computeThumbPosition();
|
|
248
|
+
});
|
|
236
249
|
}, [computeThumbPosition, viewportRef]);
|
|
237
250
|
(0, _useIsoLayoutEffect.useIsoLayoutEffect)(() => {
|
|
238
251
|
// Wait for scrollbar-related refs to be set
|
|
@@ -250,7 +263,16 @@ const ScrollAreaViewport = exports.ScrollAreaViewport = /*#__PURE__*/React.forwa
|
|
|
250
263
|
if (typeof ResizeObserver === 'undefined' || !viewport) {
|
|
251
264
|
return undefined;
|
|
252
265
|
}
|
|
253
|
-
|
|
266
|
+
let hasInitialized = false;
|
|
267
|
+
const ro = new ResizeObserver(() => {
|
|
268
|
+
// ResizeObserver fires once upon observing, so we skip the initial call
|
|
269
|
+
// to avoid double-calculating the thumb position on mount.
|
|
270
|
+
if (!hasInitialized) {
|
|
271
|
+
hasInitialized = true;
|
|
272
|
+
return;
|
|
273
|
+
}
|
|
274
|
+
computeThumbPosition();
|
|
275
|
+
});
|
|
254
276
|
ro.observe(viewport);
|
|
255
277
|
|
|
256
278
|
// If there are animations in the viewport, wait for them to finish and then recompute the thumb position.
|
|
@@ -261,9 +283,13 @@ const ScrollAreaViewport = exports.ScrollAreaViewport = /*#__PURE__*/React.forwa
|
|
|
261
283
|
// We assume the user is using `onOpenChangeComplete` to hide the scrollbar
|
|
262
284
|
// until animations complete because otherwise the scrollbar would show the thumb resizing mid-animation.
|
|
263
285
|
waitForAnimationsTimeout.start(0, () => {
|
|
264
|
-
|
|
286
|
+
const animations = viewport.getAnimations({
|
|
265
287
|
subtree: true
|
|
266
|
-
})
|
|
288
|
+
});
|
|
289
|
+
if (animations.length === 0) {
|
|
290
|
+
return;
|
|
291
|
+
}
|
|
292
|
+
Promise.all(animations.map(animation => animation.finished)).then(computeThumbPosition).catch(() => {});
|
|
267
293
|
});
|
|
268
294
|
return () => {
|
|
269
295
|
ro.disconnect();
|
|
@@ -279,7 +305,7 @@ const ScrollAreaViewport = exports.ScrollAreaViewport = /*#__PURE__*/React.forwa
|
|
|
279
305
|
'data-id': `${rootId}-viewport`
|
|
280
306
|
}),
|
|
281
307
|
// https://accessibilityinsights.io/info-examples/web/scrollable-region-focusable/
|
|
282
|
-
...((!hiddenState.
|
|
308
|
+
...((!hiddenState.x || !hiddenState.y) && {
|
|
283
309
|
tabIndex: 0
|
|
284
310
|
}),
|
|
285
311
|
className: _styles.styleDisableScrollbar.className,
|
|
@@ -315,14 +341,14 @@ const ScrollAreaViewport = exports.ScrollAreaViewport = /*#__PURE__*/React.forwa
|
|
|
315
341
|
onKeyDown: handleUserInteraction
|
|
316
342
|
};
|
|
317
343
|
const viewportState = React.useMemo(() => ({
|
|
318
|
-
hasOverflowX: !hiddenState.
|
|
319
|
-
hasOverflowY: !hiddenState.
|
|
344
|
+
hasOverflowX: !hiddenState.x,
|
|
345
|
+
hasOverflowY: !hiddenState.y,
|
|
320
346
|
overflowXStart: overflowEdges.xStart,
|
|
321
347
|
overflowXEnd: overflowEdges.xEnd,
|
|
322
348
|
overflowYStart: overflowEdges.yStart,
|
|
323
349
|
overflowYEnd: overflowEdges.yEnd,
|
|
324
|
-
cornerHidden: hiddenState.
|
|
325
|
-
}), [hiddenState.
|
|
350
|
+
cornerHidden: hiddenState.corner
|
|
351
|
+
}), [hiddenState.x, hiddenState.y, hiddenState.corner, overflowEdges]);
|
|
326
352
|
const element = (0, _useRenderElement.useRenderElement)('div', componentProps, {
|
|
327
353
|
ref: [forwardedRef, viewportRef],
|
|
328
354
|
state: viewportState,
|
|
@@ -7,7 +7,7 @@ import type { Align, Side } from "../../utils/useAnchorPositioning.js";
|
|
|
7
7
|
*
|
|
8
8
|
* Documentation: [Base UI Select](https://base-ui.com/react/components/select)
|
|
9
9
|
*/
|
|
10
|
-
export declare const SelectArrow: React.ForwardRefExoticComponent<SelectArrowProps & React.RefAttributes<HTMLDivElement>>;
|
|
10
|
+
export declare const SelectArrow: React.ForwardRefExoticComponent<Omit<SelectArrowProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
11
11
|
export interface SelectArrowState {
|
|
12
12
|
/**
|
|
13
13
|
* Whether the select popup is currently open.
|
|
@@ -7,7 +7,7 @@ import type { TransitionStatus } from "../../utils/useTransitionStatus.js";
|
|
|
7
7
|
*
|
|
8
8
|
* Documentation: [Base UI Select](https://base-ui.com/react/components/select)
|
|
9
9
|
*/
|
|
10
|
-
export declare const SelectBackdrop: React.ForwardRefExoticComponent<SelectBackdropProps & React.RefAttributes<HTMLDivElement>>;
|
|
10
|
+
export declare const SelectBackdrop: React.ForwardRefExoticComponent<Omit<SelectBackdropProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
11
11
|
export interface SelectBackdropState {
|
|
12
12
|
open: boolean;
|
|
13
13
|
transitionStatus: TransitionStatus;
|
|
@@ -6,7 +6,7 @@ import type { BaseUIComponentProps } from "../../utils/types.js";
|
|
|
6
6
|
*
|
|
7
7
|
* Documentation: [Base UI Select](https://base-ui.com/react/components/select)
|
|
8
8
|
*/
|
|
9
|
-
export declare const SelectGroup: React.ForwardRefExoticComponent<SelectGroupProps & React.RefAttributes<HTMLDivElement>>;
|
|
9
|
+
export declare const SelectGroup: React.ForwardRefExoticComponent<Omit<SelectGroupProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
10
10
|
export interface SelectGroupState {}
|
|
11
11
|
export interface SelectGroupProps extends BaseUIComponentProps<'div', SelectGroup.State> {}
|
|
12
12
|
export declare namespace SelectGroup {
|
|
@@ -6,7 +6,7 @@ import type { BaseUIComponentProps } from "../../utils/types.js";
|
|
|
6
6
|
*
|
|
7
7
|
* Documentation: [Base UI Select](https://base-ui.com/react/components/select)
|
|
8
8
|
*/
|
|
9
|
-
export declare const SelectGroupLabel: React.ForwardRefExoticComponent<SelectGroupLabelProps & React.RefAttributes<HTMLDivElement>>;
|
|
9
|
+
export declare const SelectGroupLabel: React.ForwardRefExoticComponent<Omit<SelectGroupLabelProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
10
10
|
export interface SelectGroupLabelState {}
|
|
11
11
|
export interface SelectGroupLabelProps extends BaseUIComponentProps<'div', SelectGroupLabel.State> {}
|
|
12
12
|
export declare namespace SelectGroupLabel {
|
|
@@ -6,7 +6,7 @@ import type { BaseUIComponentProps } from "../../utils/types.js";
|
|
|
6
6
|
*
|
|
7
7
|
* Documentation: [Base UI Select](https://base-ui.com/react/components/select)
|
|
8
8
|
*/
|
|
9
|
-
export declare const SelectIcon: React.ForwardRefExoticComponent<SelectIconProps & React.RefAttributes<HTMLSpanElement>>;
|
|
9
|
+
export declare const SelectIcon: React.ForwardRefExoticComponent<Omit<SelectIconProps, "ref"> & React.RefAttributes<HTMLSpanElement>>;
|
|
10
10
|
export interface SelectIconState {
|
|
11
11
|
/**
|
|
12
12
|
* Whether the select popup is currently open.
|
|
@@ -6,7 +6,7 @@ import type { BaseUIComponentProps, NonNativeButtonProps } from "../../utils/typ
|
|
|
6
6
|
*
|
|
7
7
|
* Documentation: [Base UI Select](https://base-ui.com/react/components/select)
|
|
8
8
|
*/
|
|
9
|
-
export declare const SelectItem: React.NamedExoticComponent<SelectItemProps & React.RefAttributes<
|
|
9
|
+
export declare const SelectItem: React.NamedExoticComponent<Omit<SelectItemProps, "ref"> & React.RefAttributes<HTMLElement>>;
|
|
10
10
|
export interface SelectItemState {
|
|
11
11
|
/**
|
|
12
12
|
* Whether the item should ignore user interaction.
|
|
@@ -127,7 +127,6 @@ const SelectItem = exports.SelectItem = /*#__PURE__*/React.memo(/*#__PURE__*/Rea
|
|
|
127
127
|
const defaultProps = {
|
|
128
128
|
role: 'option',
|
|
129
129
|
'aria-selected': selected,
|
|
130
|
-
'aria-disabled': disabled || undefined,
|
|
131
130
|
tabIndex: highlighted ? 0 : -1,
|
|
132
131
|
onFocus() {
|
|
133
132
|
store.set('activeIndex', index);
|
|
@@ -7,7 +7,7 @@ import { type TransitionStatus } from "../../utils/useTransitionStatus.js";
|
|
|
7
7
|
*
|
|
8
8
|
* Documentation: [Base UI Select](https://base-ui.com/react/components/select)
|
|
9
9
|
*/
|
|
10
|
-
export declare const SelectItemIndicator: React.ForwardRefExoticComponent<SelectItemIndicatorProps & React.RefAttributes<HTMLSpanElement>>;
|
|
10
|
+
export declare const SelectItemIndicator: React.ForwardRefExoticComponent<Omit<SelectItemIndicatorProps, "ref"> & React.RefAttributes<HTMLSpanElement>>;
|
|
11
11
|
export interface SelectItemIndicatorState {
|
|
12
12
|
selected: boolean;
|
|
13
13
|
transitionStatus: TransitionStatus;
|
|
@@ -6,7 +6,7 @@ import type { BaseUIComponentProps } from "../../utils/types.js";
|
|
|
6
6
|
*
|
|
7
7
|
* Documentation: [Base UI Select](https://base-ui.com/react/components/select)
|
|
8
8
|
*/
|
|
9
|
-
export declare const SelectItemText: React.NamedExoticComponent<SelectItemTextProps & React.RefAttributes<HTMLDivElement>>;
|
|
9
|
+
export declare const SelectItemText: React.NamedExoticComponent<Omit<SelectItemTextProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
10
10
|
export interface SelectItemTextState {}
|
|
11
11
|
export interface SelectItemTextProps extends BaseUIComponentProps<'div', SelectItemText.State> {}
|
|
12
12
|
export declare namespace SelectItemText {
|
|
@@ -6,7 +6,7 @@ import type { BaseUIComponentProps } from "../../utils/types.js";
|
|
|
6
6
|
*
|
|
7
7
|
* Documentation: [Base UI Select](https://base-ui.com/react/components/select)
|
|
8
8
|
*/
|
|
9
|
-
export declare const SelectList: React.ForwardRefExoticComponent<SelectListProps & React.RefAttributes<HTMLDivElement>>;
|
|
9
|
+
export declare const SelectList: React.ForwardRefExoticComponent<Omit<SelectListProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
10
10
|
export interface SelectListProps extends BaseUIComponentProps<'div', SelectList.State> {}
|
|
11
11
|
export interface SelectListState {}
|
|
12
12
|
export declare namespace SelectList {
|
|
@@ -8,7 +8,7 @@ import type { TransitionStatus } from "../../utils/useTransitionStatus.js";
|
|
|
8
8
|
*
|
|
9
9
|
* Documentation: [Base UI Select](https://base-ui.com/react/components/select)
|
|
10
10
|
*/
|
|
11
|
-
export declare const SelectPopup: React.ForwardRefExoticComponent<SelectPopupProps & React.RefAttributes<
|
|
11
|
+
export declare const SelectPopup: React.ForwardRefExoticComponent<Omit<SelectPopupProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
12
12
|
export interface SelectPopupProps extends BaseUIComponentProps<'div', SelectPopup.State> {
|
|
13
13
|
children?: React.ReactNode;
|
|
14
14
|
}
|