@base-ui/react 1.1.0 → 1.2.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 +173 -0
- package/accordion/item/AccordionItem.d.ts +1 -1
- package/accordion/item/AccordionItemContext.d.ts +1 -1
- package/accordion/root/AccordionRoot.d.ts +9 -9
- package/alert-dialog/root/AlertDialogRoot.d.ts +3 -3
- package/alert-dialog/root/AlertDialogRoot.js +6 -4
- package/autocomplete/index.parts.d.ts +2 -1
- package/autocomplete/index.parts.js +8 -1
- package/autocomplete/root/AutocompleteRoot.d.ts +19 -14
- package/autocomplete/root/AutocompleteRoot.js +4 -6
- package/avatar/fallback/AvatarFallback.d.ts +7 -2
- package/avatar/fallback/AvatarFallback.js +34 -6
- package/avatar/image/AvatarImage.d.ts +7 -2
- package/avatar/image/AvatarImage.js +35 -6
- package/avatar/image/useImageLoadingStatus.d.ts +2 -2
- package/avatar/root/AvatarRoot.js +2 -2
- package/button/Button.d.ts +1 -1
- package/button/Button.js +2 -2
- package/checkbox/indicator/CheckboxIndicator.d.ts +1 -1
- package/checkbox/indicator/CheckboxIndicator.js +4 -4
- package/checkbox/root/CheckboxRoot.d.ts +13 -13
- package/checkbox/root/CheckboxRoot.js +31 -8
- package/checkbox-group/CheckboxGroup.d.ts +5 -5
- package/checkbox-group/CheckboxGroup.js +2 -2
- package/checkbox-group/useCheckboxGroupParent.d.ts +3 -3
- package/collapsible/panel/CollapsiblePanel.d.ts +2 -2
- package/collapsible/root/CollapsibleRoot.d.ts +4 -4
- package/collapsible/root/useCollapsibleRoot.d.ts +2 -2
- package/combobox/arrow/ComboboxArrow.js +2 -2
- package/combobox/arrow/ComboboxArrowDataAttributes.js +2 -2
- package/combobox/backdrop/ComboboxBackdrop.js +2 -2
- package/combobox/chip/ComboboxChip.js +6 -3
- package/combobox/chip/ComboboxChipContext.js +1 -0
- package/combobox/chip-remove/ComboboxChipRemove.js +28 -33
- package/combobox/chips/ComboboxChipsContext.js +1 -0
- package/combobox/clear/ComboboxClear.d.ts +2 -2
- package/combobox/clear/ComboboxClear.js +2 -3
- package/combobox/group/ComboboxGroup.d.ts +1 -1
- package/combobox/group/ComboboxGroupContext.d.ts +1 -1
- package/combobox/group/ComboboxGroupContext.js +1 -0
- package/combobox/icon/ComboboxIcon.d.ts +1 -1
- package/combobox/index.parts.d.ts +2 -1
- package/combobox/index.parts.js +8 -1
- package/combobox/input/ComboboxInput.d.ts +1 -1
- package/combobox/input/ComboboxInput.js +38 -8
- package/combobox/item/ComboboxItem.d.ts +3 -3
- package/combobox/item/ComboboxItem.js +15 -15
- package/combobox/item/ComboboxItemContext.js +1 -0
- package/combobox/item-indicator/ComboboxItemIndicator.d.ts +1 -1
- package/combobox/item-indicator/ComboboxItemIndicator.js +2 -2
- package/combobox/list/ComboboxList.js +2 -2
- package/combobox/popup/ComboboxPopup.d.ts +2 -2
- package/combobox/popup/ComboboxPopup.js +3 -4
- package/combobox/popup/ComboboxPopupDataAttributes.js +2 -2
- package/combobox/portal/ComboboxPortal.d.ts +1 -1
- package/combobox/portal/ComboboxPortalContext.js +1 -0
- package/combobox/positioner/ComboboxPositioner.js +5 -3
- package/combobox/positioner/ComboboxPositionerDataAttributes.js +2 -2
- package/combobox/root/AriaCombobox.d.ts +49 -44
- package/combobox/root/AriaCombobox.js +44 -62
- package/combobox/root/ComboboxRoot.d.ts +19 -14
- package/combobox/root/ComboboxRoot.js +3 -1
- package/combobox/root/ComboboxRootContext.d.ts +1 -0
- package/combobox/root/ComboboxRootContext.js +1 -0
- package/combobox/root/utils/useFilter.d.ts +2 -2
- package/combobox/root/utils/useFilteredItems.d.ts +4 -0
- package/combobox/root/utils/useFilteredItems.js +14 -0
- package/combobox/row/ComboboxRowContext.js +1 -0
- package/combobox/store.d.ts +11 -11
- package/combobox/store.js +3 -3
- package/combobox/trigger/ComboboxTrigger.d.ts +1 -1
- package/combobox/trigger/ComboboxTrigger.js +3 -4
- package/composite/item/CompositeItem.d.ts +6 -6
- package/composite/list/CompositeList.d.ts +3 -3
- package/composite/list/CompositeListContext.d.ts +1 -1
- package/composite/list/useCompositeListItem.d.ts +5 -5
- package/composite/root/CompositeRoot.d.ts +19 -19
- package/composite/root/useCompositeRoot.d.ts +12 -12
- package/context-menu/index.d.ts +1 -0
- package/context-menu/index.parts.d.ts +1 -0
- package/context-menu/index.parts.js +7 -0
- package/context-menu/root/ContextMenuRoot.d.ts +1 -1
- package/context-menu/root/ContextMenuRootContext.js +1 -0
- package/context-menu/trigger/ContextMenuTrigger.js +13 -3
- package/csp-provider/CSPContext.d.ts +2 -2
- package/csp-provider/CSPProvider.d.ts +2 -2
- package/dialog/backdrop/DialogBackdrop.d.ts +1 -1
- package/dialog/backdrop/DialogBackdrop.js +2 -2
- package/dialog/close/DialogClose.js +2 -2
- package/dialog/popup/DialogPopup.d.ts +2 -2
- package/dialog/popup/DialogPopup.js +2 -2
- package/dialog/portal/DialogPortal.d.ts +2 -2
- package/dialog/portal/DialogPortalContext.js +1 -0
- package/dialog/root/DialogRoot.d.ts +10 -10
- package/dialog/root/DialogRoot.js +17 -4
- package/dialog/root/useDialogRoot.d.ts +3 -3
- package/dialog/root/useDialogRoot.js +4 -0
- package/dialog/store/DialogStore.d.ts +258 -17
- package/dialog/store/DialogStore.js +3 -0
- package/dialog/trigger/DialogTrigger.d.ts +3 -3
- package/dialog/trigger/DialogTrigger.js +3 -3
- package/dialog/viewport/DialogViewport.js +5 -2
- package/direction-provider/DirectionProvider.d.ts +1 -1
- package/drawer/backdrop/DrawerBackdrop.d.ts +28 -0
- package/drawer/backdrop/DrawerBackdrop.js +63 -0
- package/drawer/backdrop/DrawerBackdropCssVars.d.ts +7 -0
- package/drawer/backdrop/DrawerBackdropCssVars.js +14 -0
- package/drawer/close/DrawerClose.d.ts +23 -0
- package/drawer/close/DrawerClose.js +15 -0
- package/drawer/content/DrawerContent.d.ts +15 -0
- package/drawer/content/DrawerContent.js +32 -0
- package/drawer/description/DrawerDescription.d.ts +18 -0
- package/drawer/description/DrawerDescription.js +15 -0
- package/drawer/indent/DrawerIndent.d.ts +20 -0
- package/drawer/indent/DrawerIndent.js +87 -0
- package/drawer/indent-background/DrawerIndentBackground.d.ts +18 -0
- package/drawer/indent-background/DrawerIndentBackground.js +47 -0
- package/drawer/index.d.ts +14 -0
- package/drawer/index.js +9 -0
- package/drawer/index.parts.d.ts +14 -0
- package/drawer/index.parts.js +109 -0
- package/drawer/popup/DrawerPopup.d.ts +69 -0
- package/drawer/popup/DrawerPopup.js +291 -0
- package/drawer/popup/DrawerPopupCssVars.d.ts +37 -0
- package/drawer/popup/DrawerPopupCssVars.js +44 -0
- package/drawer/popup/DrawerPopupDataAttributes.d.ts +27 -0
- package/drawer/popup/DrawerPopupDataAttributes.js +34 -0
- package/drawer/portal/DrawerPortal.d.ts +29 -0
- package/drawer/portal/DrawerPortal.js +16 -0
- package/drawer/provider/DrawerProvider.d.ts +16 -0
- package/drawer/provider/DrawerProvider.js +100 -0
- package/drawer/provider/DrawerProviderContext.d.ts +19 -0
- package/drawer/provider/DrawerProviderContext.js +21 -0
- package/drawer/root/DrawerRoot.d.ts +124 -0
- package/drawer/root/DrawerRoot.js +235 -0
- package/drawer/root/DrawerRootContext.d.ts +89 -0
- package/drawer/root/DrawerRootContext.js +21 -0
- package/drawer/root/useDrawerSnapPoints.d.ts +15 -0
- package/drawer/root/useDrawerSnapPoints.js +155 -0
- package/drawer/swipe-area/DrawerSwipeArea.d.ts +45 -0
- package/drawer/swipe-area/DrawerSwipeArea.js +385 -0
- package/drawer/title/DrawerTitle.d.ts +18 -0
- package/drawer/title/DrawerTitle.js +15 -0
- package/drawer/trigger/DrawerTrigger.d.ts +43 -0
- package/drawer/trigger/DrawerTrigger.js +15 -0
- package/drawer/viewport/DrawerViewport.d.ts +30 -0
- package/drawer/viewport/DrawerViewport.js +873 -0
- package/drawer/viewport/DrawerViewportContext.d.ts +11 -0
- package/drawer/viewport/DrawerViewportContext.js +21 -0
- package/esm/accordion/item/AccordionItem.d.ts +1 -1
- package/esm/accordion/item/AccordionItemContext.d.ts +1 -1
- package/esm/accordion/root/AccordionRoot.d.ts +9 -9
- package/esm/alert-dialog/root/AlertDialogRoot.d.ts +3 -3
- package/esm/alert-dialog/root/AlertDialogRoot.js +6 -4
- package/esm/autocomplete/index.parts.d.ts +2 -1
- package/esm/autocomplete/index.parts.js +2 -1
- package/esm/autocomplete/root/AutocompleteRoot.d.ts +19 -14
- package/esm/autocomplete/root/AutocompleteRoot.js +4 -6
- package/esm/avatar/fallback/AvatarFallback.d.ts +7 -2
- package/esm/avatar/fallback/AvatarFallback.js +33 -6
- package/esm/avatar/image/AvatarImage.d.ts +7 -2
- package/esm/avatar/image/AvatarImage.js +34 -6
- package/esm/avatar/image/useImageLoadingStatus.d.ts +2 -2
- package/esm/avatar/root/AvatarRoot.js +2 -2
- package/esm/button/Button.d.ts +1 -1
- package/esm/button/Button.js +2 -2
- package/esm/checkbox/indicator/CheckboxIndicator.d.ts +1 -1
- package/esm/checkbox/indicator/CheckboxIndicator.js +4 -4
- package/esm/checkbox/root/CheckboxRoot.d.ts +13 -13
- package/esm/checkbox/root/CheckboxRoot.js +31 -8
- package/esm/checkbox-group/CheckboxGroup.d.ts +5 -5
- package/esm/checkbox-group/CheckboxGroup.js +2 -2
- package/esm/checkbox-group/useCheckboxGroupParent.d.ts +3 -3
- package/esm/collapsible/panel/CollapsiblePanel.d.ts +2 -2
- package/esm/collapsible/root/CollapsibleRoot.d.ts +4 -4
- package/esm/collapsible/root/useCollapsibleRoot.d.ts +2 -2
- package/esm/combobox/arrow/ComboboxArrow.js +2 -2
- package/esm/combobox/arrow/ComboboxArrowDataAttributes.js +2 -2
- package/esm/combobox/backdrop/ComboboxBackdrop.js +2 -2
- package/esm/combobox/chip/ComboboxChip.js +6 -3
- package/esm/combobox/chip/ComboboxChipContext.js +2 -0
- package/esm/combobox/chip-remove/ComboboxChipRemove.js +28 -33
- package/esm/combobox/chips/ComboboxChipsContext.js +2 -0
- package/esm/combobox/clear/ComboboxClear.d.ts +2 -2
- package/esm/combobox/clear/ComboboxClear.js +2 -3
- package/esm/combobox/group/ComboboxGroup.d.ts +1 -1
- package/esm/combobox/group/ComboboxGroupContext.d.ts +1 -1
- package/esm/combobox/group/ComboboxGroupContext.js +2 -0
- package/esm/combobox/icon/ComboboxIcon.d.ts +1 -1
- package/esm/combobox/index.parts.d.ts +2 -1
- package/esm/combobox/index.parts.js +2 -1
- package/esm/combobox/input/ComboboxInput.d.ts +1 -1
- package/esm/combobox/input/ComboboxInput.js +38 -8
- package/esm/combobox/item/ComboboxItem.d.ts +3 -3
- package/esm/combobox/item/ComboboxItem.js +15 -15
- package/esm/combobox/item/ComboboxItemContext.js +2 -0
- package/esm/combobox/item-indicator/ComboboxItemIndicator.d.ts +1 -1
- package/esm/combobox/item-indicator/ComboboxItemIndicator.js +2 -2
- package/esm/combobox/list/ComboboxList.js +2 -2
- package/esm/combobox/popup/ComboboxPopup.d.ts +2 -2
- package/esm/combobox/popup/ComboboxPopup.js +3 -4
- package/esm/combobox/popup/ComboboxPopupDataAttributes.js +2 -2
- package/esm/combobox/portal/ComboboxPortal.d.ts +1 -1
- package/esm/combobox/portal/ComboboxPortalContext.js +2 -0
- package/esm/combobox/positioner/ComboboxPositioner.js +5 -3
- package/esm/combobox/positioner/ComboboxPositionerDataAttributes.js +2 -2
- package/esm/combobox/root/AriaCombobox.d.ts +49 -44
- package/esm/combobox/root/AriaCombobox.js +45 -63
- package/esm/combobox/root/ComboboxRoot.d.ts +19 -14
- package/esm/combobox/root/ComboboxRoot.js +3 -1
- package/esm/combobox/root/ComboboxRootContext.d.ts +1 -0
- package/esm/combobox/root/ComboboxRootContext.js +2 -0
- package/esm/combobox/root/utils/useFilter.d.ts +2 -2
- package/esm/combobox/root/utils/useFilteredItems.d.ts +4 -0
- package/esm/combobox/root/utils/useFilteredItems.js +9 -0
- package/esm/combobox/row/ComboboxRowContext.js +2 -0
- package/esm/combobox/store.d.ts +11 -11
- package/esm/combobox/store.js +3 -3
- package/esm/combobox/trigger/ComboboxTrigger.d.ts +1 -1
- package/esm/combobox/trigger/ComboboxTrigger.js +3 -4
- package/esm/composite/item/CompositeItem.d.ts +6 -6
- package/esm/composite/list/CompositeList.d.ts +3 -3
- package/esm/composite/list/CompositeListContext.d.ts +1 -1
- package/esm/composite/list/useCompositeListItem.d.ts +5 -5
- package/esm/composite/root/CompositeRoot.d.ts +19 -19
- package/esm/composite/root/useCompositeRoot.d.ts +12 -12
- package/esm/context-menu/index.d.ts +1 -0
- package/esm/context-menu/index.parts.d.ts +1 -0
- package/esm/context-menu/index.parts.js +1 -0
- package/esm/context-menu/root/ContextMenuRoot.d.ts +1 -1
- package/esm/context-menu/root/ContextMenuRootContext.js +2 -0
- package/esm/context-menu/trigger/ContextMenuTrigger.js +13 -3
- package/esm/csp-provider/CSPContext.d.ts +2 -2
- package/esm/csp-provider/CSPProvider.d.ts +2 -2
- package/esm/dialog/backdrop/DialogBackdrop.d.ts +1 -1
- package/esm/dialog/backdrop/DialogBackdrop.js +2 -2
- package/esm/dialog/close/DialogClose.js +2 -2
- package/esm/dialog/popup/DialogPopup.d.ts +2 -2
- package/esm/dialog/popup/DialogPopup.js +2 -2
- package/esm/dialog/portal/DialogPortal.d.ts +2 -2
- package/esm/dialog/portal/DialogPortalContext.js +2 -0
- package/esm/dialog/root/DialogRoot.d.ts +10 -10
- package/esm/dialog/root/DialogRoot.js +17 -4
- package/esm/dialog/root/useDialogRoot.d.ts +3 -3
- package/esm/dialog/root/useDialogRoot.js +4 -0
- package/esm/dialog/store/DialogStore.d.ts +258 -17
- package/esm/dialog/store/DialogStore.js +3 -0
- package/esm/dialog/trigger/DialogTrigger.d.ts +3 -3
- package/esm/dialog/trigger/DialogTrigger.js +2 -2
- package/esm/dialog/viewport/DialogViewport.js +5 -2
- package/esm/direction-provider/DirectionProvider.d.ts +1 -1
- package/esm/drawer/backdrop/DrawerBackdrop.d.ts +28 -0
- package/esm/drawer/backdrop/DrawerBackdrop.js +57 -0
- package/esm/drawer/backdrop/DrawerBackdropCssVars.d.ts +7 -0
- package/esm/drawer/backdrop/DrawerBackdropCssVars.js +8 -0
- package/esm/drawer/close/DrawerClose.d.ts +23 -0
- package/esm/drawer/close/DrawerClose.js +10 -0
- package/esm/drawer/content/DrawerContent.d.ts +15 -0
- package/esm/drawer/content/DrawerContent.js +27 -0
- package/esm/drawer/description/DrawerDescription.d.ts +18 -0
- package/esm/drawer/description/DrawerDescription.js +10 -0
- package/esm/drawer/indent/DrawerIndent.d.ts +20 -0
- package/esm/drawer/indent/DrawerIndent.js +81 -0
- package/esm/drawer/indent-background/DrawerIndentBackground.d.ts +18 -0
- package/esm/drawer/indent-background/DrawerIndentBackground.js +41 -0
- package/esm/drawer/index.d.ts +14 -0
- package/esm/drawer/index.js +1 -0
- package/esm/drawer/index.parts.d.ts +14 -0
- package/esm/drawer/index.parts.js +14 -0
- package/esm/drawer/popup/DrawerPopup.d.ts +69 -0
- package/esm/drawer/popup/DrawerPopup.js +285 -0
- package/esm/drawer/popup/DrawerPopupCssVars.d.ts +37 -0
- package/esm/drawer/popup/DrawerPopupCssVars.js +38 -0
- package/esm/drawer/popup/DrawerPopupDataAttributes.d.ts +27 -0
- package/esm/drawer/popup/DrawerPopupDataAttributes.js +28 -0
- package/esm/drawer/portal/DrawerPortal.d.ts +29 -0
- package/esm/drawer/portal/DrawerPortal.js +11 -0
- package/esm/drawer/provider/DrawerProvider.d.ts +16 -0
- package/esm/drawer/provider/DrawerProvider.js +95 -0
- package/esm/drawer/provider/DrawerProviderContext.d.ts +19 -0
- package/esm/drawer/provider/DrawerProviderContext.js +13 -0
- package/esm/drawer/root/DrawerRoot.d.ts +124 -0
- package/esm/drawer/root/DrawerRoot.js +229 -0
- package/esm/drawer/root/DrawerRootContext.d.ts +89 -0
- package/esm/drawer/root/DrawerRootContext.js +13 -0
- package/esm/drawer/root/useDrawerSnapPoints.d.ts +15 -0
- package/esm/drawer/root/useDrawerSnapPoints.js +149 -0
- package/esm/drawer/swipe-area/DrawerSwipeArea.d.ts +45 -0
- package/esm/drawer/swipe-area/DrawerSwipeArea.js +379 -0
- package/esm/drawer/title/DrawerTitle.d.ts +18 -0
- package/esm/drawer/title/DrawerTitle.js +10 -0
- package/esm/drawer/trigger/DrawerTrigger.d.ts +43 -0
- package/esm/drawer/trigger/DrawerTrigger.js +10 -0
- package/esm/drawer/viewport/DrawerViewport.d.ts +30 -0
- package/esm/drawer/viewport/DrawerViewport.js +867 -0
- package/esm/drawer/viewport/DrawerViewportContext.d.ts +11 -0
- package/esm/drawer/viewport/DrawerViewportContext.js +13 -0
- package/esm/field/control/FieldControl.d.ts +3 -3
- package/esm/field/control/FieldControl.js +22 -20
- package/esm/field/error/FieldError.d.ts +5 -2
- package/esm/field/error/FieldError.js +50 -7
- package/esm/field/item/FieldItem.d.ts +1 -1
- package/esm/field/item/FieldItemContext.js +2 -0
- package/esm/field/label/FieldLabel.d.ts +1 -1
- package/esm/field/label/FieldLabel.js +7 -2
- package/esm/field/root/FieldRoot.d.ts +9 -9
- package/esm/field/root/FieldRootContext.d.ts +1 -1
- package/esm/field/useField.d.ts +1 -1
- package/esm/field/useField.js +2 -0
- package/esm/field/validity/FieldValidity.d.ts +2 -0
- package/esm/field/validity/FieldValidity.js +11 -4
- package/esm/fieldset/legend/FieldsetLegend.js +2 -2
- package/esm/fieldset/root/FieldsetRoot.d.ts +1 -1
- package/esm/fieldset/root/FieldsetRoot.js +3 -3
- package/esm/floating-ui-react/components/FloatingDelayGroup.d.ts +2 -7
- package/esm/floating-ui-react/components/FloatingDelayGroup.js +2 -9
- package/esm/floating-ui-react/components/FloatingFocusManager.d.ts +11 -21
- package/esm/floating-ui-react/components/FloatingFocusManager.js +63 -76
- package/esm/floating-ui-react/components/FloatingPortal.d.ts +8 -9
- package/esm/floating-ui-react/components/FloatingPortal.js +1 -3
- package/esm/floating-ui-react/components/FloatingTree.d.ts +1 -1
- package/esm/floating-ui-react/hooks/useClick.d.ts +12 -6
- package/esm/floating-ui-react/hooks/useClick.js +6 -5
- package/esm/floating-ui-react/hooks/useClientPoint.d.ts +2 -12
- package/esm/floating-ui-react/hooks/useClientPoint.js +5 -16
- package/esm/floating-ui-react/hooks/useDismiss.d.ts +15 -15
- package/esm/floating-ui-react/hooks/useDismiss.js +6 -3
- package/esm/floating-ui-react/hooks/useFloating.js +2 -0
- package/esm/floating-ui-react/hooks/useFloatingRootContext.d.ts +4 -10
- package/esm/floating-ui-react/hooks/useFloatingRootContext.js +5 -3
- package/esm/floating-ui-react/hooks/useFocus.d.ts +2 -8
- package/esm/floating-ui-react/hooks/useFocus.js +11 -12
- package/esm/floating-ui-react/hooks/useHover.d.ts +7 -30
- package/esm/floating-ui-react/hooks/useHover.js +20 -37
- package/esm/floating-ui-react/hooks/useHoverFloatingInteraction.d.ts +2 -7
- package/esm/floating-ui-react/hooks/useHoverFloatingInteraction.js +35 -40
- package/esm/floating-ui-react/hooks/useHoverInteractionSharedState.d.ts +17 -14
- package/esm/floating-ui-react/hooks/useHoverInteractionSharedState.js +36 -30
- package/esm/floating-ui-react/hooks/useHoverReferenceInteraction.d.ts +7 -3
- package/esm/floating-ui-react/hooks/useHoverReferenceInteraction.js +57 -60
- package/esm/floating-ui-react/hooks/useInteractions.d.ts +2 -2
- package/esm/floating-ui-react/hooks/useListNavigation.d.ts +19 -35
- package/esm/floating-ui-react/hooks/useListNavigation.js +13 -12
- package/esm/floating-ui-react/hooks/useRole.d.ts +1 -7
- package/esm/floating-ui-react/hooks/useRole.js +2 -3
- package/esm/floating-ui-react/hooks/useSyncedFloatingRootContext.d.ts +2 -2
- package/esm/floating-ui-react/hooks/useSyncedFloatingRootContext.js +2 -0
- package/esm/floating-ui-react/hooks/useTypeahead.d.ts +6 -16
- package/esm/floating-ui-react/hooks/useTypeahead.js +48 -16
- package/esm/floating-ui-react/middleware/arrow.d.ts +1 -1
- package/esm/floating-ui-react/safePolygon.d.ts +3 -3
- package/esm/floating-ui-react/types.d.ts +14 -14
- package/esm/floating-ui-react/utils/composite.d.ts +5 -5
- package/esm/floating-ui-react/utils/composite.js +1 -2
- package/esm/floating-ui-react/utils/element.d.ts +2 -1
- package/esm/floating-ui-react/utils/element.js +16 -4
- package/esm/floating-ui-react/utils/enqueueFocus.d.ts +3 -3
- package/esm/floating-ui-react/utils/event.js +2 -4
- package/esm/floating-ui-react/utils/markOthers.js +2 -2
- package/esm/floating-ui-react/utils/tabbable.js +6 -5
- package/esm/form/Form.d.ts +5 -5
- package/esm/index.d.ts +1 -0
- package/esm/index.js +2 -1
- package/esm/input/Input.d.ts +3 -3
- package/esm/labelable-provider/LabelableContext.d.ts +1 -1
- package/esm/labelable-provider/LabelableContext.js +1 -1
- package/esm/labelable-provider/LabelableProvider.js +33 -3
- package/esm/labelable-provider/useLabelableId.d.ts +3 -2
- package/esm/labelable-provider/useLabelableId.js +38 -12
- package/esm/menu/arrow/MenuArrow.js +2 -2
- package/esm/menu/arrow/MenuArrowDataAttributes.js +2 -2
- package/esm/menu/backdrop/MenuBackdrop.js +2 -2
- package/esm/menu/checkbox-item/MenuCheckboxItem.d.ts +8 -8
- package/esm/menu/checkbox-item/MenuCheckboxItemContext.js +2 -0
- package/esm/menu/checkbox-item-indicator/MenuCheckboxItemIndicator.d.ts +2 -2
- package/esm/menu/checkbox-item-indicator/MenuCheckboxItemIndicator.js +3 -3
- package/esm/menu/group/MenuGroupContext.js +2 -0
- package/esm/menu/index.d.ts +2 -1
- package/esm/menu/index.parts.d.ts +1 -0
- package/esm/menu/index.parts.js +1 -0
- package/esm/menu/item/MenuItem.d.ts +5 -5
- package/esm/menu/item/MenuItem.js +2 -2
- package/esm/menu/item/useMenuItem.js +12 -48
- package/esm/menu/item/useMenuItemCommonProps.d.ts +43 -0
- package/esm/menu/item/useMenuItemCommonProps.js +66 -0
- package/esm/menu/link-item/MenuLinkItem.d.ts +34 -0
- package/esm/menu/link-item/MenuLinkItem.js +55 -0
- package/esm/menu/link-item/MenuLinkItemDataAttributes.d.ts +6 -0
- package/esm/menu/link-item/MenuLinkItemDataAttributes.js +7 -0
- package/esm/menu/popup/MenuPopup.d.ts +3 -2
- package/esm/menu/popup/MenuPopup.js +2 -2
- package/esm/menu/popup/MenuPopupDataAttributes.js +2 -2
- package/esm/menu/portal/MenuPortal.d.ts +1 -1
- package/esm/menu/portal/MenuPortalContext.js +2 -0
- package/esm/menu/positioner/MenuPositioner.js +6 -12
- package/esm/menu/positioner/MenuPositionerDataAttributes.js +2 -2
- package/esm/menu/radio-group/MenuRadioGroup.d.ts +2 -2
- package/esm/menu/radio-group/MenuRadioGroup.js +2 -2
- package/esm/menu/radio-group/MenuRadioGroupContext.js +2 -0
- package/esm/menu/radio-item/MenuRadioItem.d.ts +5 -5
- package/esm/menu/radio-item/MenuRadioItemContext.js +2 -0
- package/esm/menu/radio-item-indicator/MenuRadioItemIndicator.d.ts +2 -2
- package/esm/menu/radio-item-indicator/MenuRadioItemIndicator.js +3 -3
- package/esm/menu/root/MenuRoot.d.ts +15 -15
- package/esm/menu/root/MenuRoot.js +38 -36
- package/esm/menu/store/MenuStore.d.ts +255 -15
- package/esm/menu/store/MenuStore.js +2 -11
- package/esm/menu/submenu-root/MenuSubmenuRoot.d.ts +2 -2
- package/esm/menu/submenu-root/MenuSubmenuRootContext.js +2 -0
- package/esm/menu/submenu-trigger/MenuSubmenuTrigger.d.ts +22 -22
- package/esm/menu/submenu-trigger/MenuSubmenuTrigger.js +9 -7
- package/esm/menu/trigger/MenuTrigger.d.ts +10 -6
- package/esm/menu/trigger/MenuTrigger.js +4 -3
- package/esm/menubar/Menubar.d.ts +4 -4
- package/esm/menubar/Menubar.js +2 -2
- package/esm/meter/root/MeterRoot.d.ts +6 -6
- package/esm/meter/root/MeterRoot.js +3 -11
- package/esm/meter/value/MeterValue.d.ts +1 -1
- package/esm/navigation-menu/arrow/NavigationMenuArrow.js +2 -2
- package/esm/navigation-menu/arrow/NavigationMenuArrowDataAttributes.js +2 -2
- package/esm/navigation-menu/backdrop/NavigationMenuBackdrop.js +2 -2
- package/esm/navigation-menu/content/NavigationMenuContent.d.ts +8 -1
- package/esm/navigation-menu/content/NavigationMenuContent.js +26 -5
- package/esm/navigation-menu/icon/NavigationMenuIcon.d.ts +1 -1
- package/esm/navigation-menu/icon/NavigationMenuIcon.js +2 -2
- package/esm/navigation-menu/item/NavigationMenuItem.d.ts +1 -1
- package/esm/navigation-menu/item/NavigationMenuItemContext.js +2 -0
- package/esm/navigation-menu/link/NavigationMenuLink.d.ts +2 -2
- package/esm/navigation-menu/link/NavigationMenuLink.js +2 -2
- package/esm/navigation-menu/list/NavigationMenuDismissContext.js +2 -0
- package/esm/navigation-menu/list/NavigationMenuList.d.ts +1 -1
- package/esm/navigation-menu/list/NavigationMenuList.js +2 -2
- package/esm/navigation-menu/popup/NavigationMenuPopup.d.ts +13 -0
- package/esm/navigation-menu/popup/NavigationMenuPopup.js +2 -2
- package/esm/navigation-menu/popup/NavigationMenuPopupDataAttributes.js +2 -2
- package/esm/navigation-menu/portal/NavigationMenuPortal.d.ts +2 -2
- package/esm/navigation-menu/portal/NavigationMenuPortalContext.js +2 -0
- package/esm/navigation-menu/positioner/NavigationMenuPositioner.js +2 -2
- package/esm/navigation-menu/positioner/NavigationPositionerDataAttributes.js +2 -2
- package/esm/navigation-menu/root/NavigationMenuRoot.d.ts +6 -6
- package/esm/navigation-menu/root/NavigationMenuRoot.js +2 -2
- package/esm/navigation-menu/root/NavigationMenuRootContext.js +2 -0
- package/esm/navigation-menu/trigger/NavigationMenuTrigger.js +8 -124
- package/esm/navigation-menu/utils/isOutsideMenuEvent.d.ts +1 -1
- package/esm/navigation-menu/viewport/NavigationMenuViewport.js +21 -1
- package/esm/number-field/input/NumberFieldInput.js +3 -11
- package/esm/number-field/root/NumberFieldRoot.d.ts +27 -20
- package/esm/number-field/root/NumberFieldRoot.js +22 -7
- package/esm/number-field/root/NumberFieldRootContext.d.ts +2 -2
- package/esm/number-field/root/useNumberFieldButton.d.ts +3 -3
- package/esm/number-field/root/useNumberFieldButton.js +12 -7
- package/esm/number-field/scrub-area/NumberFieldScrubArea.d.ts +2 -2
- package/esm/number-field/scrub-area/NumberFieldScrubArea.js +16 -0
- package/esm/number-field/scrub-area/NumberFieldScrubAreaContext.js +2 -0
- package/esm/number-field/utils/stateAttributesMapping.js +3 -1
- package/esm/number-field/utils/subscribeToVisualViewportResize.d.ts +1 -1
- package/esm/number-field/utils/types.d.ts +5 -5
- package/esm/number-field/utils/validate.d.ts +3 -1
- package/esm/number-field/utils/validate.js +3 -2
- package/esm/popover/arrow/PopoverArrow.js +2 -2
- package/esm/popover/arrow/PopoverArrowDataAttributes.js +2 -2
- package/esm/popover/backdrop/PopoverBackdrop.js +2 -2
- package/esm/popover/popup/PopoverPopup.d.ts +3 -2
- package/esm/popover/popup/PopoverPopup.js +2 -2
- package/esm/popover/portal/PopoverPortal.d.ts +1 -1
- package/esm/popover/portal/PopoverPortal.js +1 -2
- package/esm/popover/portal/PopoverPortalContext.js +2 -0
- package/esm/popover/positioner/PopoverPositioner.js +3 -3
- package/esm/popover/positioner/PopoverPositionerDataAttributes.js +2 -2
- package/esm/popover/root/PopoverRoot.d.ts +9 -9
- package/esm/popover/root/PopoverRoot.js +18 -5
- package/esm/popover/store/PopoverStore.d.ts +255 -15
- package/esm/popover/trigger/PopoverTrigger.d.ts +7 -7
- package/esm/popover/trigger/PopoverTrigger.js +2 -2
- package/esm/popover/viewport/PopoverViewport.d.ts +9 -1
- package/esm/popover/viewport/PopoverViewport.js +19 -196
- package/esm/popover/viewport/PopoverViewportDataAttributes.d.ts +5 -0
- package/esm/popover/viewport/PopoverViewportDataAttributes.js +5 -0
- package/esm/preview-card/arrow/PreviewCardArrow.js +2 -2
- package/esm/preview-card/arrow/PreviewCardArrowDataAttributes.js +2 -2
- package/esm/preview-card/backdrop/PreviewCardBackdrop.js +2 -2
- package/esm/preview-card/popup/PreviewCardPopup.js +2 -2
- package/esm/preview-card/popup/PreviewCardPopupDataAttributes.js +2 -2
- package/esm/preview-card/portal/PreviewCardPortal.d.ts +1 -1
- package/esm/preview-card/portal/PreviewCardPortalContext.js +2 -0
- package/esm/preview-card/positioner/PreviewCardPositioner.js +2 -2
- package/esm/preview-card/positioner/PreviewCardPositionerContext.d.ts +1 -1
- package/esm/preview-card/positioner/PreviewCardPositionerDataAttributes.js +2 -2
- package/esm/preview-card/root/PreviewCardRoot.d.ts +8 -8
- package/esm/preview-card/root/PreviewCardRoot.js +17 -4
- package/esm/preview-card/store/PreviewCardStore.d.ts +255 -15
- package/esm/preview-card/trigger/PreviewCardTrigger.d.ts +4 -4
- package/esm/preview-card/trigger/PreviewCardTrigger.js +2 -2
- package/esm/preview-card/viewport/PreviewCardViewport.d.ts +6 -1
- package/esm/preview-card/viewport/PreviewCardViewport.js +14 -230
- package/esm/progress/root/ProgressRoot.d.ts +6 -6
- package/esm/progress/root/ProgressRoot.js +2 -13
- package/esm/progress/value/ProgressValue.d.ts +1 -1
- package/esm/radio/indicator/RadioIndicator.d.ts +1 -1
- package/esm/radio/indicator/RadioIndicator.js +4 -4
- package/esm/radio/root/RadioRoot.d.ts +37 -17
- package/esm/radio/root/RadioRoot.js +45 -11
- package/esm/radio-group/RadioGroup.d.ts +18 -12
- package/esm/radio-group/RadioGroup.js +69 -62
- package/esm/radio-group/RadioGroupContext.d.ts +9 -8
- package/esm/radio-group/RadioGroupContext.js +1 -13
- package/esm/scroll-area/root/ScrollAreaRoot.d.ts +4 -2
- package/esm/scroll-area/root/ScrollAreaRoot.js +2 -1
- package/esm/scroll-area/root/ScrollAreaRootContext.js +2 -0
- package/esm/scroll-area/root/ScrollAreaRootDataAttributes.d.ts +4 -0
- package/esm/scroll-area/root/ScrollAreaRootDataAttributes.js +4 -0
- package/esm/scroll-area/scrollbar/ScrollAreaScrollbar.d.ts +2 -2
- package/esm/scroll-area/scrollbar/ScrollAreaScrollbar.js +2 -2
- package/esm/scroll-area/scrollbar/ScrollAreaScrollbarContext.js +2 -0
- package/esm/scroll-area/scrollbar/ScrollAreaScrollbarDataAttributes.d.ts +1 -1
- package/esm/scroll-area/scrollbar/ScrollAreaScrollbarDataAttributes.js +1 -1
- package/esm/scroll-area/thumb/ScrollAreaThumb.d.ts +1 -1
- package/esm/scroll-area/thumb/ScrollAreaThumb.js +2 -2
- package/esm/scroll-area/utils/scrollEdges.d.ts +2 -0
- package/esm/scroll-area/utils/scrollEdges.js +22 -0
- package/esm/scroll-area/viewport/ScrollAreaViewport.js +18 -15
- package/esm/scroll-area/viewport/ScrollAreaViewportContext.js +2 -0
- package/esm/scroll-area/viewport/ScrollAreaViewportDataAttributes.d.ts +4 -0
- package/esm/scroll-area/viewport/ScrollAreaViewportDataAttributes.js +4 -0
- package/esm/select/arrow/SelectArrow.js +2 -2
- package/esm/select/arrow/SelectArrowDataAttributes.js +2 -2
- package/esm/select/backdrop/SelectBackdrop.js +2 -2
- package/esm/select/group/SelectGroupContext.js +2 -0
- package/esm/select/icon/SelectIcon.js +2 -2
- package/esm/select/item/SelectItem.d.ts +2 -2
- package/esm/select/item/SelectItem.js +13 -13
- package/esm/select/item/SelectItemContext.js +2 -0
- package/esm/select/item-indicator/SelectItemIndicator.d.ts +1 -1
- package/esm/select/item-indicator/SelectItemIndicator.js +2 -2
- package/esm/select/popup/SelectPopup.d.ts +11 -0
- package/esm/select/popup/SelectPopup.js +64 -35
- package/esm/select/popup/SelectPopupDataAttributes.js +2 -2
- package/esm/select/portal/SelectPortalContext.js +2 -0
- package/esm/select/positioner/SelectPositioner.d.ts +1 -1
- package/esm/select/positioner/SelectPositioner.js +14 -11
- package/esm/select/positioner/SelectPositionerContext.js +2 -0
- package/esm/select/positioner/SelectPositionerDataAttributes.js +2 -2
- package/esm/select/root/SelectRoot.d.ts +27 -22
- package/esm/select/root/SelectRoot.js +2 -0
- package/esm/select/root/SelectRootContext.d.ts +14 -14
- package/esm/select/root/SelectRootContext.js +2 -0
- package/esm/select/scroll-arrow/SelectScrollArrow.d.ts +1 -1
- package/esm/select/scroll-arrow/SelectScrollArrow.js +2 -2
- package/esm/select/scroll-down-arrow/SelectScrollDownArrow.d.ts +1 -1
- package/esm/select/scroll-down-arrow/SelectScrollDownArrowDataAttributes.js +1 -1
- package/esm/select/scroll-up-arrow/SelectScrollUpArrow.d.ts +1 -1
- package/esm/select/scroll-up-arrow/SelectScrollUpArrowDataAttributes.js +1 -1
- package/esm/select/store.d.ts +3 -3
- package/esm/select/store.js +3 -3
- package/esm/select/trigger/SelectTrigger.d.ts +1 -1
- package/esm/select/trigger/SelectTrigger.js +2 -2
- package/esm/select/value/SelectValue.d.ts +4 -0
- package/esm/select/value/SelectValue.js +2 -2
- package/esm/separator/Separator.d.ts +1 -1
- package/esm/separator/Separator.js +2 -2
- package/esm/slider/root/SliderRoot.d.ts +17 -17
- package/esm/slider/root/SliderRoot.js +3 -2
- package/esm/slider/root/SliderRootContext.d.ts +2 -2
- package/esm/slider/root/stateAttributesMapping.js +3 -1
- package/esm/slider/thumb/SliderThumb.d.ts +7 -7
- package/esm/slider/utils/getPushedThumbValues.d.ts +1 -1
- package/esm/slider/utils/resolveThumbCollision.d.ts +2 -2
- package/esm/slider/value/SliderValue.d.ts +1 -1
- package/esm/switch/root/SwitchRoot.d.ts +11 -11
- package/esm/switch/root/SwitchRoot.js +7 -1
- package/esm/switch/root/SwitchRootContext.js +2 -0
- package/esm/tabs/indicator/TabsIndicator.d.ts +1 -1
- package/esm/tabs/indicator/TabsIndicator.js +2 -2
- package/esm/tabs/list/TabsList.d.ts +2 -2
- package/esm/tabs/list/TabsList.js +2 -2
- package/esm/tabs/panel/TabsPanel.d.ts +4 -2
- package/esm/tabs/panel/TabsPanel.js +35 -9
- package/esm/tabs/root/TabsRoot.d.ts +4 -4
- package/esm/tabs/root/TabsRootContext.d.ts +1 -1
- package/esm/tabs/tab/TabsTab.d.ts +1 -1
- package/esm/tabs/tab/TabsTab.js +2 -2
- package/esm/toast/action/ToastAction.js +2 -2
- package/esm/toast/arrow/ToastArrow.js +2 -2
- package/esm/toast/arrow/ToastArrowDataAttributes.js +4 -3
- package/esm/toast/close/ToastClose.js +6 -8
- package/esm/toast/content/ToastContent.js +2 -2
- package/esm/toast/createToastManager.d.ts +5 -5
- package/esm/toast/createToastManager.js +3 -6
- package/esm/toast/description/ToastDescription.js +4 -6
- package/esm/toast/positioner/ToastPositioner.d.ts +2 -2
- package/esm/toast/positioner/ToastPositioner.js +6 -7
- package/esm/toast/positioner/ToastPositionerDataAttributes.js +2 -2
- package/esm/toast/provider/ToastProvider.d.ts +3 -3
- package/esm/toast/provider/ToastProvider.js +26 -285
- package/esm/toast/provider/ToastProviderContext.d.ts +4 -25
- package/esm/toast/provider/ToastProviderContext.js +3 -1
- package/esm/toast/root/ToastRoot.d.ts +1 -1
- package/esm/toast/root/ToastRoot.js +19 -27
- package/esm/toast/root/ToastRootContext.js +2 -0
- package/esm/toast/store.d.ts +51 -0
- package/esm/toast/store.js +355 -0
- package/esm/toast/title/ToastTitle.js +4 -6
- package/esm/toast/useToastManager.d.ts +20 -21
- package/esm/toast/useToastManager.js +8 -14
- package/esm/toast/viewport/ToastViewport.js +66 -92
- package/esm/toggle/Toggle.d.ts +10 -8
- package/esm/toggle/Toggle.js +13 -3
- package/esm/toggle-group/ToggleGroup.d.ts +22 -10
- package/esm/toggle-group/ToggleGroup.js +8 -5
- package/esm/toggle-group/ToggleGroupContext.d.ts +10 -5
- package/esm/toolbar/button/ToolbarButton.d.ts +2 -2
- package/esm/toolbar/button/ToolbarButton.js +2 -2
- package/esm/toolbar/group/ToolbarGroup.d.ts +1 -1
- package/esm/toolbar/group/ToolbarGroup.js +2 -2
- package/esm/toolbar/group/ToolbarGroupContext.js +2 -0
- package/esm/toolbar/input/ToolbarInput.d.ts +3 -3
- package/esm/toolbar/input/ToolbarInput.js +2 -2
- package/esm/toolbar/link/ToolbarLink.js +2 -2
- package/esm/toolbar/root/ToolbarRoot.d.ts +3 -3
- package/esm/toolbar/root/ToolbarRoot.js +2 -2
- package/esm/tooltip/arrow/TooltipArrow.d.ts +1 -0
- package/esm/tooltip/arrow/TooltipArrow.js +2 -2
- package/esm/tooltip/arrow/TooltipArrowDataAttributes.js +2 -2
- package/esm/tooltip/popup/TooltipPopup.js +2 -2
- package/esm/tooltip/popup/TooltipPopupDataAttributes.js +2 -2
- package/esm/tooltip/portal/TooltipPortal.d.ts +1 -1
- package/esm/tooltip/portal/TooltipPortalContext.js +2 -0
- package/esm/tooltip/positioner/TooltipPositioner.d.ts +1 -1
- package/esm/tooltip/positioner/TooltipPositionerContext.d.ts +1 -1
- package/esm/tooltip/positioner/TooltipPositionerDataAttributes.js +2 -2
- package/esm/tooltip/provider/TooltipProvider.d.ts +3 -3
- package/esm/tooltip/provider/TooltipProviderContext.js +2 -0
- package/esm/tooltip/root/TooltipRoot.d.ts +12 -12
- package/esm/tooltip/root/TooltipRoot.js +23 -11
- package/esm/tooltip/store/TooltipStore.d.ts +256 -16
- package/esm/tooltip/trigger/TooltipTrigger.d.ts +11 -4
- package/esm/tooltip/trigger/TooltipTrigger.js +12 -6
- package/esm/tooltip/trigger/TooltipTriggerDataAttributes.d.ts +4 -0
- package/esm/tooltip/trigger/TooltipTriggerDataAttributes.js +4 -0
- package/esm/tooltip/viewport/TooltipViewport.d.ts +9 -1
- package/esm/tooltip/viewport/TooltipViewport.js +14 -195
- package/esm/unstable-use-media-query/index.d.ts +5 -5
- package/esm/use-button/useButton.d.ts +4 -4
- package/esm/use-button/useButton.js +7 -2
- package/esm/use-render/useRender.d.ts +9 -9
- package/esm/utils/InternalBackdrop.d.ts +1 -1
- package/esm/utils/createBaseUIEventDetails.d.ts +3 -0
- package/esm/utils/formatNumber.d.ts +2 -1
- package/esm/utils/formatNumber.js +11 -0
- package/esm/utils/getDisabledMountTransitionStyles.d.ts +1 -1
- package/esm/utils/getPseudoElementBounds.js +1 -1
- package/esm/utils/itemEquality.d.ts +5 -5
- package/esm/utils/itemEquality.js +17 -17
- package/esm/utils/popupStateMapping.d.ts +10 -0
- package/esm/utils/popupStateMapping.js +10 -0
- package/esm/utils/popups/popupStoreUtils.js +2 -0
- package/esm/utils/popups/popupTriggerMap.d.ts +14 -1
- package/esm/utils/popups/popupTriggerMap.js +27 -9
- package/esm/utils/popups/store.d.ts +28 -18
- package/esm/utils/popups/store.js +8 -5
- package/esm/utils/reason-parts.d.ts +3 -0
- package/esm/utils/reason-parts.js +3 -0
- package/esm/utils/scrollable.d.ts +4 -0
- package/esm/utils/scrollable.js +32 -0
- package/esm/utils/types.d.ts +6 -6
- package/esm/utils/useAnchorPositioning.d.ts +26 -26
- package/esm/utils/useAnchorPositioning.js +19 -16
- package/esm/utils/useFocusableWhenDisabled.d.ts +4 -4
- package/esm/utils/useMixedToggleClickHandler.d.ts +1 -1
- package/esm/utils/useMixedToggleClickHandler.js +2 -0
- package/esm/utils/useOpenChangeComplete.d.ts +2 -2
- package/esm/utils/usePopupAutoResize.d.ts +3 -3
- package/esm/utils/usePopupAutoResize.js +3 -1
- package/esm/utils/usePopupViewport.d.ts +58 -0
- package/esm/utils/usePopupViewport.js +247 -0
- package/esm/utils/useRenderElement.d.ts +9 -9
- package/esm/utils/useRenderElement.js +28 -1
- package/esm/utils/useSwipeDismiss.d.ts +108 -0
- package/esm/utils/useSwipeDismiss.js +944 -0
- package/esm/utils/useValueChanged.js +2 -0
- package/field/control/FieldControl.d.ts +3 -3
- package/field/control/FieldControl.js +21 -20
- package/field/error/FieldError.d.ts +5 -2
- package/field/error/FieldError.js +51 -7
- package/field/item/FieldItem.d.ts +1 -1
- package/field/item/FieldItemContext.js +1 -0
- package/field/label/FieldLabel.d.ts +1 -1
- package/field/label/FieldLabel.js +7 -2
- package/field/root/FieldRoot.d.ts +9 -9
- package/field/root/FieldRootContext.d.ts +1 -1
- package/field/useField.d.ts +1 -1
- package/field/useField.js +1 -0
- package/field/validity/FieldValidity.d.ts +2 -0
- package/field/validity/FieldValidity.js +9 -3
- package/fieldset/legend/FieldsetLegend.js +2 -2
- package/fieldset/root/FieldsetRoot.d.ts +1 -1
- package/fieldset/root/FieldsetRoot.js +3 -3
- package/floating-ui-react/components/FloatingDelayGroup.d.ts +2 -7
- package/floating-ui-react/components/FloatingDelayGroup.js +2 -9
- package/floating-ui-react/components/FloatingFocusManager.d.ts +11 -21
- package/floating-ui-react/components/FloatingFocusManager.js +61 -74
- package/floating-ui-react/components/FloatingPortal.d.ts +8 -9
- package/floating-ui-react/components/FloatingPortal.js +1 -3
- package/floating-ui-react/components/FloatingTree.d.ts +1 -1
- package/floating-ui-react/hooks/useClick.d.ts +12 -6
- package/floating-ui-react/hooks/useClick.js +6 -5
- package/floating-ui-react/hooks/useClientPoint.d.ts +2 -12
- package/floating-ui-react/hooks/useClientPoint.js +4 -16
- package/floating-ui-react/hooks/useDismiss.d.ts +15 -15
- package/floating-ui-react/hooks/useDismiss.js +4 -2
- package/floating-ui-react/hooks/useFloating.js +1 -0
- package/floating-ui-react/hooks/useFloatingRootContext.d.ts +4 -10
- package/floating-ui-react/hooks/useFloatingRootContext.js +4 -3
- package/floating-ui-react/hooks/useFocus.d.ts +2 -8
- package/floating-ui-react/hooks/useFocus.js +9 -11
- package/floating-ui-react/hooks/useHover.d.ts +7 -30
- package/floating-ui-react/hooks/useHover.js +18 -36
- package/floating-ui-react/hooks/useHoverFloatingInteraction.d.ts +2 -7
- package/floating-ui-react/hooks/useHoverFloatingInteraction.js +33 -39
- package/floating-ui-react/hooks/useHoverInteractionSharedState.d.ts +17 -14
- package/floating-ui-react/hooks/useHoverInteractionSharedState.js +36 -30
- package/floating-ui-react/hooks/useHoverReferenceInteraction.d.ts +7 -3
- package/floating-ui-react/hooks/useHoverReferenceInteraction.js +55 -59
- package/floating-ui-react/hooks/useInteractions.d.ts +2 -2
- package/floating-ui-react/hooks/useListNavigation.d.ts +19 -35
- package/floating-ui-react/hooks/useListNavigation.js +11 -11
- package/floating-ui-react/hooks/useRole.d.ts +1 -7
- package/floating-ui-react/hooks/useRole.js +2 -3
- package/floating-ui-react/hooks/useSyncedFloatingRootContext.d.ts +2 -2
- package/floating-ui-react/hooks/useSyncedFloatingRootContext.js +1 -0
- package/floating-ui-react/hooks/useTypeahead.d.ts +6 -16
- package/floating-ui-react/hooks/useTypeahead.js +46 -15
- package/floating-ui-react/middleware/arrow.d.ts +1 -1
- package/floating-ui-react/safePolygon.d.ts +3 -3
- package/floating-ui-react/types.d.ts +14 -14
- package/floating-ui-react/utils/composite.d.ts +5 -5
- package/floating-ui-react/utils/composite.js +1 -3
- package/floating-ui-react/utils/element.d.ts +2 -1
- package/floating-ui-react/utils/element.js +16 -4
- package/floating-ui-react/utils/enqueueFocus.d.ts +3 -3
- package/floating-ui-react/utils/event.js +2 -4
- package/floating-ui-react/utils/markOthers.js +2 -2
- package/floating-ui-react/utils/tabbable.js +5 -4
- package/form/Form.d.ts +5 -5
- package/index.d.ts +1 -0
- package/index.js +12 -1
- package/input/Input.d.ts +3 -3
- package/labelable-provider/LabelableContext.d.ts +1 -1
- package/labelable-provider/LabelableContext.js +1 -1
- package/labelable-provider/LabelableProvider.js +33 -3
- package/labelable-provider/useLabelableId.d.ts +3 -2
- package/labelable-provider/useLabelableId.js +39 -12
- package/menu/arrow/MenuArrow.js +2 -2
- package/menu/arrow/MenuArrowDataAttributes.js +2 -2
- package/menu/backdrop/MenuBackdrop.js +2 -2
- package/menu/checkbox-item/MenuCheckboxItem.d.ts +8 -8
- package/menu/checkbox-item/MenuCheckboxItemContext.js +1 -0
- package/menu/checkbox-item-indicator/MenuCheckboxItemIndicator.d.ts +2 -2
- package/menu/checkbox-item-indicator/MenuCheckboxItemIndicator.js +3 -3
- package/menu/group/MenuGroupContext.js +1 -0
- package/menu/index.d.ts +2 -1
- package/menu/index.parts.d.ts +1 -0
- package/menu/index.parts.js +7 -0
- package/menu/item/MenuItem.d.ts +5 -5
- package/menu/item/MenuItem.js +2 -2
- package/menu/item/useMenuItem.js +12 -48
- package/menu/item/useMenuItemCommonProps.d.ts +43 -0
- package/menu/item/useMenuItemCommonProps.js +72 -0
- package/menu/link-item/MenuLinkItem.d.ts +34 -0
- package/menu/link-item/MenuLinkItem.js +60 -0
- package/menu/link-item/MenuLinkItemDataAttributes.d.ts +6 -0
- package/menu/link-item/MenuLinkItemDataAttributes.js +13 -0
- package/menu/popup/MenuPopup.d.ts +3 -2
- package/menu/popup/MenuPopup.js +2 -2
- package/menu/popup/MenuPopupDataAttributes.js +2 -2
- package/menu/portal/MenuPortal.d.ts +1 -1
- package/menu/portal/MenuPortalContext.js +1 -0
- package/menu/positioner/MenuPositioner.js +6 -12
- package/menu/positioner/MenuPositionerDataAttributes.js +2 -2
- package/menu/radio-group/MenuRadioGroup.d.ts +2 -2
- package/menu/radio-group/MenuRadioGroup.js +2 -2
- package/menu/radio-group/MenuRadioGroupContext.js +1 -0
- package/menu/radio-item/MenuRadioItem.d.ts +5 -5
- package/menu/radio-item/MenuRadioItemContext.js +1 -0
- package/menu/radio-item-indicator/MenuRadioItemIndicator.d.ts +2 -2
- package/menu/radio-item-indicator/MenuRadioItemIndicator.js +3 -3
- package/menu/root/MenuRoot.d.ts +15 -15
- package/menu/root/MenuRoot.js +39 -37
- package/menu/store/MenuStore.d.ts +255 -15
- package/menu/store/MenuStore.js +2 -11
- package/menu/submenu-root/MenuSubmenuRoot.d.ts +2 -2
- package/menu/submenu-root/MenuSubmenuRootContext.js +1 -0
- package/menu/submenu-trigger/MenuSubmenuTrigger.d.ts +22 -22
- package/menu/submenu-trigger/MenuSubmenuTrigger.js +10 -8
- package/menu/trigger/MenuTrigger.d.ts +10 -6
- package/menu/trigger/MenuTrigger.js +5 -4
- package/menubar/Menubar.d.ts +4 -4
- package/menubar/Menubar.js +2 -2
- package/meter/root/MeterRoot.d.ts +6 -6
- package/meter/root/MeterRoot.js +1 -10
- package/meter/value/MeterValue.d.ts +1 -1
- package/navigation-menu/arrow/NavigationMenuArrow.js +2 -2
- package/navigation-menu/arrow/NavigationMenuArrowDataAttributes.js +2 -2
- package/navigation-menu/backdrop/NavigationMenuBackdrop.js +2 -2
- package/navigation-menu/content/NavigationMenuContent.d.ts +8 -1
- package/navigation-menu/content/NavigationMenuContent.js +26 -5
- package/navigation-menu/icon/NavigationMenuIcon.d.ts +1 -1
- package/navigation-menu/icon/NavigationMenuIcon.js +2 -2
- package/navigation-menu/item/NavigationMenuItem.d.ts +1 -1
- package/navigation-menu/item/NavigationMenuItemContext.js +1 -0
- package/navigation-menu/link/NavigationMenuLink.d.ts +2 -2
- package/navigation-menu/link/NavigationMenuLink.js +2 -2
- package/navigation-menu/list/NavigationMenuDismissContext.js +1 -0
- package/navigation-menu/list/NavigationMenuList.d.ts +1 -1
- package/navigation-menu/list/NavigationMenuList.js +2 -2
- package/navigation-menu/popup/NavigationMenuPopup.d.ts +13 -0
- package/navigation-menu/popup/NavigationMenuPopup.js +2 -2
- package/navigation-menu/popup/NavigationMenuPopupDataAttributes.js +2 -2
- package/navigation-menu/portal/NavigationMenuPortal.d.ts +2 -2
- package/navigation-menu/portal/NavigationMenuPortalContext.js +1 -0
- package/navigation-menu/positioner/NavigationMenuPositioner.js +2 -2
- package/navigation-menu/positioner/NavigationPositionerDataAttributes.js +2 -2
- package/navigation-menu/root/NavigationMenuRoot.d.ts +6 -6
- package/navigation-menu/root/NavigationMenuRoot.js +2 -2
- package/navigation-menu/root/NavigationMenuRootContext.js +1 -0
- package/navigation-menu/trigger/NavigationMenuTrigger.js +7 -124
- package/navigation-menu/utils/isOutsideMenuEvent.d.ts +1 -1
- package/navigation-menu/viewport/NavigationMenuViewport.js +21 -1
- package/number-field/input/NumberFieldInput.js +3 -11
- package/number-field/root/NumberFieldRoot.d.ts +27 -20
- package/number-field/root/NumberFieldRoot.js +22 -7
- package/number-field/root/NumberFieldRootContext.d.ts +2 -2
- package/number-field/root/useNumberFieldButton.d.ts +3 -3
- package/number-field/root/useNumberFieldButton.js +12 -7
- package/number-field/scrub-area/NumberFieldScrubArea.d.ts +2 -2
- package/number-field/scrub-area/NumberFieldScrubArea.js +16 -0
- package/number-field/scrub-area/NumberFieldScrubAreaContext.js +1 -0
- package/number-field/utils/stateAttributesMapping.js +3 -1
- package/number-field/utils/subscribeToVisualViewportResize.d.ts +1 -1
- package/number-field/utils/types.d.ts +5 -5
- package/number-field/utils/validate.d.ts +3 -1
- package/number-field/utils/validate.js +3 -2
- package/package.json +13 -4
- package/popover/arrow/PopoverArrow.js +2 -2
- package/popover/arrow/PopoverArrowDataAttributes.js +2 -2
- package/popover/backdrop/PopoverBackdrop.js +2 -2
- package/popover/popup/PopoverPopup.d.ts +3 -2
- package/popover/popup/PopoverPopup.js +2 -2
- package/popover/portal/PopoverPortal.d.ts +1 -1
- package/popover/portal/PopoverPortal.js +1 -2
- package/popover/portal/PopoverPortalContext.js +1 -0
- package/popover/positioner/PopoverPositioner.js +3 -3
- package/popover/positioner/PopoverPositionerDataAttributes.js +2 -2
- package/popover/root/PopoverRoot.d.ts +9 -9
- package/popover/root/PopoverRoot.js +18 -5
- package/popover/store/PopoverStore.d.ts +255 -15
- package/popover/trigger/PopoverTrigger.d.ts +7 -7
- package/popover/trigger/PopoverTrigger.js +3 -3
- package/popover/viewport/PopoverViewport.d.ts +9 -1
- package/popover/viewport/PopoverViewport.js +19 -196
- package/popover/viewport/PopoverViewportDataAttributes.d.ts +5 -0
- package/popover/viewport/PopoverViewportDataAttributes.js +5 -0
- package/preview-card/arrow/PreviewCardArrow.js +2 -2
- package/preview-card/arrow/PreviewCardArrowDataAttributes.js +2 -2
- package/preview-card/backdrop/PreviewCardBackdrop.js +2 -2
- package/preview-card/popup/PreviewCardPopup.js +2 -2
- package/preview-card/popup/PreviewCardPopupDataAttributes.js +2 -2
- package/preview-card/portal/PreviewCardPortal.d.ts +1 -1
- package/preview-card/portal/PreviewCardPortalContext.js +1 -0
- package/preview-card/positioner/PreviewCardPositioner.js +2 -2
- package/preview-card/positioner/PreviewCardPositionerContext.d.ts +1 -1
- package/preview-card/positioner/PreviewCardPositionerDataAttributes.js +2 -2
- package/preview-card/root/PreviewCardRoot.d.ts +8 -8
- package/preview-card/root/PreviewCardRoot.js +17 -4
- package/preview-card/store/PreviewCardStore.d.ts +255 -15
- package/preview-card/trigger/PreviewCardTrigger.d.ts +4 -4
- package/preview-card/trigger/PreviewCardTrigger.js +3 -3
- package/preview-card/viewport/PreviewCardViewport.d.ts +6 -1
- package/preview-card/viewport/PreviewCardViewport.js +14 -230
- package/progress/root/ProgressRoot.d.ts +6 -6
- package/progress/root/ProgressRoot.js +1 -12
- package/progress/value/ProgressValue.d.ts +1 -1
- package/radio/indicator/RadioIndicator.d.ts +1 -1
- package/radio/indicator/RadioIndicator.js +4 -4
- package/radio/root/RadioRoot.d.ts +37 -17
- package/radio/root/RadioRoot.js +45 -11
- package/radio-group/RadioGroup.d.ts +18 -12
- package/radio-group/RadioGroup.js +68 -61
- package/radio-group/RadioGroupContext.d.ts +9 -8
- package/radio-group/RadioGroupContext.js +1 -13
- package/scroll-area/root/ScrollAreaRoot.d.ts +4 -2
- package/scroll-area/root/ScrollAreaRoot.js +2 -1
- package/scroll-area/root/ScrollAreaRootContext.js +1 -0
- package/scroll-area/root/ScrollAreaRootDataAttributes.d.ts +4 -0
- package/scroll-area/root/ScrollAreaRootDataAttributes.js +4 -0
- package/scroll-area/scrollbar/ScrollAreaScrollbar.d.ts +2 -2
- package/scroll-area/scrollbar/ScrollAreaScrollbar.js +2 -2
- package/scroll-area/scrollbar/ScrollAreaScrollbarContext.js +1 -0
- package/scroll-area/scrollbar/ScrollAreaScrollbarDataAttributes.d.ts +1 -1
- package/scroll-area/scrollbar/ScrollAreaScrollbarDataAttributes.js +1 -1
- package/scroll-area/thumb/ScrollAreaThumb.d.ts +1 -1
- package/scroll-area/thumb/ScrollAreaThumb.js +2 -2
- package/scroll-area/utils/scrollEdges.d.ts +2 -0
- package/scroll-area/utils/scrollEdges.js +29 -0
- package/scroll-area/viewport/ScrollAreaViewport.js +18 -15
- package/scroll-area/viewport/ScrollAreaViewportContext.js +1 -0
- package/scroll-area/viewport/ScrollAreaViewportDataAttributes.d.ts +4 -0
- package/scroll-area/viewport/ScrollAreaViewportDataAttributes.js +4 -0
- package/select/arrow/SelectArrow.js +2 -2
- package/select/arrow/SelectArrowDataAttributes.js +2 -2
- package/select/backdrop/SelectBackdrop.js +2 -2
- package/select/group/SelectGroupContext.js +1 -0
- package/select/icon/SelectIcon.js +2 -2
- package/select/item/SelectItem.d.ts +2 -2
- package/select/item/SelectItem.js +13 -13
- package/select/item/SelectItemContext.js +1 -0
- package/select/item-indicator/SelectItemIndicator.d.ts +1 -1
- package/select/item-indicator/SelectItemIndicator.js +2 -2
- package/select/popup/SelectPopup.d.ts +11 -0
- package/select/popup/SelectPopup.js +64 -35
- package/select/popup/SelectPopupDataAttributes.js +2 -2
- package/select/portal/SelectPortalContext.js +1 -0
- package/select/positioner/SelectPositioner.d.ts +1 -1
- package/select/positioner/SelectPositioner.js +13 -10
- package/select/positioner/SelectPositionerContext.js +1 -0
- package/select/positioner/SelectPositionerDataAttributes.js +2 -2
- package/select/root/SelectRoot.d.ts +27 -22
- package/select/root/SelectRoot.js +2 -0
- package/select/root/SelectRootContext.d.ts +14 -14
- package/select/root/SelectRootContext.js +1 -0
- package/select/scroll-arrow/SelectScrollArrow.d.ts +1 -1
- package/select/scroll-arrow/SelectScrollArrow.js +2 -2
- package/select/scroll-down-arrow/SelectScrollDownArrow.d.ts +1 -1
- package/select/scroll-down-arrow/SelectScrollDownArrowDataAttributes.js +1 -1
- package/select/scroll-up-arrow/SelectScrollUpArrow.d.ts +1 -1
- package/select/scroll-up-arrow/SelectScrollUpArrowDataAttributes.js +1 -1
- package/select/store.d.ts +3 -3
- package/select/store.js +3 -3
- package/select/trigger/SelectTrigger.d.ts +1 -1
- package/select/trigger/SelectTrigger.js +2 -2
- package/select/value/SelectValue.d.ts +4 -0
- package/select/value/SelectValue.js +2 -2
- package/separator/Separator.d.ts +1 -1
- package/separator/Separator.js +2 -2
- package/slider/root/SliderRoot.d.ts +17 -17
- package/slider/root/SliderRoot.js +3 -2
- package/slider/root/SliderRootContext.d.ts +2 -2
- package/slider/root/stateAttributesMapping.js +3 -1
- package/slider/thumb/SliderThumb.d.ts +7 -7
- package/slider/utils/getPushedThumbValues.d.ts +1 -1
- package/slider/utils/resolveThumbCollision.d.ts +2 -2
- package/slider/value/SliderValue.d.ts +1 -1
- package/switch/root/SwitchRoot.d.ts +11 -11
- package/switch/root/SwitchRoot.js +7 -1
- package/switch/root/SwitchRootContext.js +1 -0
- package/tabs/indicator/TabsIndicator.d.ts +1 -1
- package/tabs/indicator/TabsIndicator.js +2 -2
- package/tabs/list/TabsList.d.ts +2 -2
- package/tabs/list/TabsList.js +2 -2
- package/tabs/panel/TabsPanel.d.ts +4 -2
- package/tabs/panel/TabsPanel.js +37 -10
- package/tabs/root/TabsRoot.d.ts +4 -4
- package/tabs/root/TabsRootContext.d.ts +1 -1
- package/tabs/tab/TabsTab.d.ts +1 -1
- package/tabs/tab/TabsTab.js +2 -2
- package/toast/action/ToastAction.js +2 -2
- package/toast/arrow/ToastArrow.js +2 -2
- package/toast/arrow/ToastArrowDataAttributes.js +4 -3
- package/toast/close/ToastClose.js +5 -7
- package/toast/content/ToastContent.js +2 -2
- package/toast/createToastManager.d.ts +5 -5
- package/toast/createToastManager.js +3 -6
- package/toast/description/ToastDescription.js +4 -6
- package/toast/positioner/ToastPositioner.d.ts +2 -2
- package/toast/positioner/ToastPositioner.js +5 -6
- package/toast/positioner/ToastPositionerDataAttributes.js +2 -2
- package/toast/provider/ToastProvider.d.ts +3 -3
- package/toast/provider/ToastProvider.js +24 -284
- package/toast/provider/ToastProviderContext.d.ts +4 -25
- package/toast/provider/ToastProviderContext.js +3 -2
- package/toast/root/ToastRoot.d.ts +1 -1
- package/toast/root/ToastRoot.js +18 -26
- package/toast/root/ToastRootContext.js +1 -0
- package/toast/store.d.ts +51 -0
- package/toast/store.js +362 -0
- package/toast/title/ToastTitle.js +4 -6
- package/toast/useToastManager.d.ts +20 -21
- package/toast/useToastManager.js +8 -14
- package/toast/viewport/ToastViewport.js +65 -91
- package/toggle/Toggle.d.ts +10 -8
- package/toggle/Toggle.js +13 -3
- package/toggle-group/ToggleGroup.d.ts +22 -10
- package/toggle-group/ToggleGroup.js +8 -5
- package/toggle-group/ToggleGroupContext.d.ts +10 -5
- package/toolbar/button/ToolbarButton.d.ts +2 -2
- package/toolbar/button/ToolbarButton.js +2 -2
- package/toolbar/group/ToolbarGroup.d.ts +1 -1
- package/toolbar/group/ToolbarGroup.js +2 -2
- package/toolbar/group/ToolbarGroupContext.js +1 -0
- package/toolbar/input/ToolbarInput.d.ts +3 -3
- package/toolbar/input/ToolbarInput.js +2 -2
- package/toolbar/link/ToolbarLink.js +2 -2
- package/toolbar/root/ToolbarRoot.d.ts +3 -3
- package/toolbar/root/ToolbarRoot.js +2 -2
- package/tooltip/arrow/TooltipArrow.d.ts +1 -0
- package/tooltip/arrow/TooltipArrow.js +2 -2
- package/tooltip/arrow/TooltipArrowDataAttributes.js +2 -2
- package/tooltip/popup/TooltipPopup.js +2 -2
- package/tooltip/popup/TooltipPopupDataAttributes.js +2 -2
- package/tooltip/portal/TooltipPortal.d.ts +1 -1
- package/tooltip/portal/TooltipPortalContext.js +1 -0
- package/tooltip/positioner/TooltipPositioner.d.ts +1 -1
- package/tooltip/positioner/TooltipPositionerContext.d.ts +1 -1
- package/tooltip/positioner/TooltipPositionerDataAttributes.js +2 -2
- package/tooltip/provider/TooltipProvider.d.ts +3 -3
- package/tooltip/provider/TooltipProviderContext.js +1 -0
- package/tooltip/root/TooltipRoot.d.ts +12 -12
- package/tooltip/root/TooltipRoot.js +23 -11
- package/tooltip/store/TooltipStore.d.ts +256 -16
- package/tooltip/trigger/TooltipTrigger.d.ts +11 -4
- package/tooltip/trigger/TooltipTrigger.js +12 -6
- package/tooltip/trigger/TooltipTriggerDataAttributes.d.ts +4 -0
- package/tooltip/trigger/TooltipTriggerDataAttributes.js +4 -0
- package/tooltip/viewport/TooltipViewport.d.ts +9 -1
- package/tooltip/viewport/TooltipViewport.js +14 -195
- package/unstable-use-media-query/index.d.ts +5 -5
- package/use-button/useButton.d.ts +4 -4
- package/use-button/useButton.js +7 -2
- package/use-render/useRender.d.ts +9 -9
- package/utils/InternalBackdrop.d.ts +1 -1
- package/utils/createBaseUIEventDetails.d.ts +3 -0
- package/utils/formatNumber.d.ts +2 -1
- package/utils/formatNumber.js +12 -0
- package/utils/getDisabledMountTransitionStyles.d.ts +1 -1
- package/utils/getPseudoElementBounds.js +1 -1
- package/utils/itemEquality.d.ts +5 -5
- package/utils/itemEquality.js +18 -18
- package/utils/popupStateMapping.d.ts +10 -0
- package/utils/popupStateMapping.js +10 -0
- package/utils/popups/popupStoreUtils.js +1 -0
- package/utils/popups/popupTriggerMap.d.ts +14 -1
- package/utils/popups/popupTriggerMap.js +27 -10
- package/utils/popups/store.d.ts +28 -18
- package/utils/popups/store.js +8 -5
- package/utils/reason-parts.d.ts +3 -0
- package/utils/reason-parts.js +4 -1
- package/utils/scrollable.d.ts +4 -0
- package/utils/scrollable.js +40 -0
- package/utils/types.d.ts +6 -6
- package/utils/useAnchorPositioning.d.ts +26 -26
- package/utils/useAnchorPositioning.js +19 -16
- package/utils/useFocusableWhenDisabled.d.ts +4 -4
- package/utils/useMixedToggleClickHandler.d.ts +1 -1
- package/utils/useMixedToggleClickHandler.js +1 -0
- package/utils/useOpenChangeComplete.d.ts +2 -2
- package/utils/usePopupAutoResize.d.ts +3 -3
- package/utils/usePopupAutoResize.js +2 -1
- package/utils/usePopupViewport.d.ts +58 -0
- package/utils/usePopupViewport.js +253 -0
- package/utils/useRenderElement.d.ts +9 -9
- package/utils/useRenderElement.js +28 -1
- package/utils/useSwipeDismiss.d.ts +108 -0
- package/utils/useSwipeDismiss.js +952 -0
- package/utils/useValueChanged.js +1 -0
- package/esm/toast/viewport/ToastViewportContext.d.ts +0 -6
- package/esm/toast/viewport/ToastViewportContext.js +0 -11
- package/toast/viewport/ToastViewportContext.d.ts +0 -6
- package/toast/viewport/ToastViewportContext.js +0 -20
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { FloatingTreeStore } from "../components/FloatingTreeStore.js";
|
|
3
|
-
import type {
|
|
3
|
+
import type { ElementProps, FloatingContext, FloatingRootContext } from "../types.js";
|
|
4
4
|
export declare const ESCAPE = "Escape";
|
|
5
5
|
export interface UseListNavigationProps {
|
|
6
6
|
/**
|
|
7
7
|
* A ref that holds an array of list items.
|
|
8
8
|
* @default empty list
|
|
9
9
|
*/
|
|
10
|
-
listRef: React.
|
|
10
|
+
listRef: React.RefObject<Array<HTMLElement | null>>;
|
|
11
11
|
/**
|
|
12
12
|
* The index of the currently active (focused or highlighted) item, which may
|
|
13
13
|
* or may not be selected.
|
|
@@ -18,36 +18,36 @@ export interface UseListNavigationProps {
|
|
|
18
18
|
* A callback that is called when the user navigates to a new active item,
|
|
19
19
|
* passed in a new `activeIndex`.
|
|
20
20
|
*/
|
|
21
|
-
onNavigate?: (activeIndex: number | null, event: React.SyntheticEvent | undefined) => void;
|
|
21
|
+
onNavigate?: ((activeIndex: number | null, event: React.SyntheticEvent | undefined) => void) | undefined;
|
|
22
22
|
/**
|
|
23
23
|
* Whether the Hook is enabled, including all internal Effects and event
|
|
24
24
|
* handlers.
|
|
25
25
|
* @default true
|
|
26
26
|
*/
|
|
27
|
-
enabled?: boolean;
|
|
27
|
+
enabled?: boolean | undefined;
|
|
28
28
|
/**
|
|
29
29
|
* The currently selected item index, which may or may not be active.
|
|
30
30
|
* @default null
|
|
31
31
|
*/
|
|
32
|
-
selectedIndex?: number | null;
|
|
32
|
+
selectedIndex?: (number | null) | undefined;
|
|
33
33
|
/**
|
|
34
34
|
* Whether to focus the item upon opening the floating element. 'auto' infers
|
|
35
35
|
* what to do based on the input type (keyboard vs. pointer), while a boolean
|
|
36
36
|
* value will force the value.
|
|
37
37
|
* @default 'auto'
|
|
38
38
|
*/
|
|
39
|
-
focusItemOnOpen?: boolean | 'auto';
|
|
39
|
+
focusItemOnOpen?: (boolean | 'auto') | undefined;
|
|
40
40
|
/**
|
|
41
41
|
* Whether hovering an item synchronizes the focus.
|
|
42
42
|
* @default true
|
|
43
43
|
*/
|
|
44
|
-
focusItemOnHover?: boolean;
|
|
44
|
+
focusItemOnHover?: boolean | undefined;
|
|
45
45
|
/**
|
|
46
46
|
* Whether pressing an arrow key on the navigation’s main axis opens the
|
|
47
47
|
* floating element.
|
|
48
48
|
* @default true
|
|
49
49
|
*/
|
|
50
|
-
openOnArrowKeyDown?: boolean;
|
|
50
|
+
openOnArrowKeyDown?: boolean | undefined;
|
|
51
51
|
/**
|
|
52
52
|
* By default elements with either a `disabled` or `aria-disabled` attribute
|
|
53
53
|
* are skipped in the list navigation — however, this requires the items to
|
|
@@ -58,7 +58,7 @@ export interface UseListNavigationProps {
|
|
|
58
58
|
* navigating via arrow keys, specify an empty array.
|
|
59
59
|
* @default undefined
|
|
60
60
|
*/
|
|
61
|
-
disabledIndices?: ReadonlyArray<number> | ((index: number) => boolean);
|
|
61
|
+
disabledIndices?: (ReadonlyArray<number> | ((index: number) => boolean)) | undefined;
|
|
62
62
|
/**
|
|
63
63
|
* Determines whether focus can escape the list, such that nothing is selected
|
|
64
64
|
* after navigating beyond the boundary of the list. In some
|
|
@@ -67,32 +67,32 @@ export interface UseListNavigationProps {
|
|
|
67
67
|
* `loopFocus` must be `true`.
|
|
68
68
|
* @default false
|
|
69
69
|
*/
|
|
70
|
-
allowEscape?: boolean;
|
|
70
|
+
allowEscape?: boolean | undefined;
|
|
71
71
|
/**
|
|
72
72
|
* Determines whether focus should loop around when navigating past the first
|
|
73
73
|
* or last item.
|
|
74
74
|
* @default false
|
|
75
75
|
*/
|
|
76
|
-
loopFocus?: boolean;
|
|
76
|
+
loopFocus?: boolean | undefined;
|
|
77
77
|
/**
|
|
78
78
|
* If the list is nested within another one (e.g. a nested submenu), the
|
|
79
79
|
* navigation semantics change.
|
|
80
80
|
* @default false
|
|
81
81
|
*/
|
|
82
|
-
nested?: boolean;
|
|
82
|
+
nested?: boolean | undefined;
|
|
83
83
|
/**
|
|
84
84
|
* Allows to specify the orientation of the parent list, which is used to
|
|
85
85
|
* determine the direction of the navigation.
|
|
86
86
|
* This is useful when list navigation is used within a Composite,
|
|
87
87
|
* as the hook can't determine the orientation of the parent list automatically.
|
|
88
88
|
*/
|
|
89
|
-
parentOrientation?: UseListNavigationProps['orientation'];
|
|
89
|
+
parentOrientation?: UseListNavigationProps['orientation'] | undefined;
|
|
90
90
|
/**
|
|
91
91
|
* Whether the direction of the floating element’s navigation is in RTL
|
|
92
92
|
* layout.
|
|
93
93
|
* @default false
|
|
94
94
|
*/
|
|
95
|
-
rtl?: boolean;
|
|
95
|
+
rtl?: boolean | undefined;
|
|
96
96
|
/**
|
|
97
97
|
* Whether the focus is virtual (using `aria-activedescendant`).
|
|
98
98
|
* Use this if you need focus to remain on the reference element
|
|
@@ -103,12 +103,12 @@ export interface UseListNavigationProps {
|
|
|
103
103
|
* generated automatically.
|
|
104
104
|
* @default false
|
|
105
105
|
*/
|
|
106
|
-
virtual?: boolean;
|
|
106
|
+
virtual?: boolean | undefined;
|
|
107
107
|
/**
|
|
108
108
|
* The orientation in which navigation occurs.
|
|
109
109
|
* @default 'vertical'
|
|
110
110
|
*/
|
|
111
|
-
orientation?: 'vertical' | 'horizontal' | 'both';
|
|
111
|
+
orientation?: ('vertical' | 'horizontal' | 'both') | undefined;
|
|
112
112
|
/**
|
|
113
113
|
* Specifies how many columns the list has (i.e., it’s a grid). Use an
|
|
114
114
|
* orientation of 'horizontal' (e.g. for an emoji picker/date picker, where
|
|
@@ -117,23 +117,7 @@ export interface UseListNavigationProps {
|
|
|
117
117
|
* and ArrowDown).
|
|
118
118
|
* @default 1
|
|
119
119
|
*/
|
|
120
|
-
cols?: number;
|
|
121
|
-
/**
|
|
122
|
-
* Whether to scroll the active item into view when navigating. The default
|
|
123
|
-
* value uses nearest options.
|
|
124
|
-
*/
|
|
125
|
-
scrollItemIntoView?: boolean | ScrollIntoViewOptions;
|
|
126
|
-
/**
|
|
127
|
-
* Only for `cols > 1`, specify sizes for grid items.
|
|
128
|
-
* `{ width: 2, height: 2 }` means an item is 2 columns wide and 2 rows tall.
|
|
129
|
-
*/
|
|
130
|
-
itemSizes?: Dimensions[];
|
|
131
|
-
/**
|
|
132
|
-
* Only relevant for `cols > 1` and items with different sizes, specify if
|
|
133
|
-
* the grid is dense (as defined in the CSS spec for `grid-auto-flow`).
|
|
134
|
-
* @default false
|
|
135
|
-
*/
|
|
136
|
-
dense?: boolean;
|
|
120
|
+
cols?: number | undefined;
|
|
137
121
|
/**
|
|
138
122
|
* The id of the root component.
|
|
139
123
|
*/
|
|
@@ -142,11 +126,11 @@ export interface UseListNavigationProps {
|
|
|
142
126
|
* Whether to clear the active index when the pointer leaves an item.
|
|
143
127
|
* @default true
|
|
144
128
|
*/
|
|
145
|
-
resetOnPointerLeave?: boolean;
|
|
129
|
+
resetOnPointerLeave?: boolean | undefined;
|
|
146
130
|
/**
|
|
147
131
|
* External FlatingTree to use when the one provided by context can't be used.
|
|
148
132
|
*/
|
|
149
|
-
externalTree?: FloatingTreeStore;
|
|
133
|
+
externalTree?: FloatingTreeStore | undefined;
|
|
150
134
|
}
|
|
151
135
|
/**
|
|
152
136
|
* Adds arrow key-based navigation of a list of items, either using real DOM
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
1
3
|
import * as React from 'react';
|
|
2
4
|
import { isHTMLElement } from '@floating-ui/utils/dom';
|
|
3
5
|
import { useValueAsRef } from '@base-ui/utils/useValueAsRef';
|
|
4
6
|
import { useStableCallback } from '@base-ui/utils/useStableCallback';
|
|
5
7
|
import { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';
|
|
6
|
-
import {
|
|
8
|
+
import { ownerDocument } from '@base-ui/utils/owner';
|
|
9
|
+
import { activeElement, contains, getTarget, isTypeableCombobox, isVirtualClick, isVirtualPointerEvent, stopEvent, getFloatingFocusElement, isIndexOutOfListBounds, getMinListIndex, getMaxListIndex, getGridNavigatedIndex, isListIndexDisabled, createGridCellMap, getGridCellIndices, getGridCellIndexOfCorner, findNonDisabledListIndex } from "../utils.js";
|
|
7
10
|
import { useFloatingParentNodeId, useFloatingTree } from "../components/FloatingTree.js";
|
|
8
11
|
import { createChangeEventDetails } from "../../utils/createBaseUIEventDetails.js";
|
|
9
12
|
import { REASONS } from "../../utils/reasons.js";
|
|
@@ -72,9 +75,6 @@ export function useListNavigation(context, props) {
|
|
|
72
75
|
orientation = 'vertical',
|
|
73
76
|
parentOrientation,
|
|
74
77
|
cols = 1,
|
|
75
|
-
scrollItemIntoView = true,
|
|
76
|
-
itemSizes,
|
|
77
|
-
dense = false,
|
|
78
78
|
id,
|
|
79
79
|
resetOnPointerLeave = true,
|
|
80
80
|
externalTree
|
|
@@ -114,7 +114,6 @@ export function useListNavigation(context, props) {
|
|
|
114
114
|
const forceScrollIntoViewRef = React.useRef(false);
|
|
115
115
|
const disabledIndicesRef = useValueAsRef(disabledIndices);
|
|
116
116
|
const latestOpenRef = useValueAsRef(open);
|
|
117
|
-
const scrollItemIntoViewRef = useValueAsRef(scrollItemIntoView);
|
|
118
117
|
const selectedIndexRef = useValueAsRef(selectedIndex);
|
|
119
118
|
const resetOnPointerLeaveRef = useValueAsRef(resetOnPointerLeave);
|
|
120
119
|
const focusItem = useStableCallback(() => {
|
|
@@ -142,17 +141,16 @@ export function useListNavigation(context, props) {
|
|
|
142
141
|
if (!initialItem) {
|
|
143
142
|
runFocus(waitedItem);
|
|
144
143
|
}
|
|
145
|
-
const
|
|
146
|
-
const shouldScrollIntoView = scrollIntoViewOptions &&
|
|
144
|
+
const shouldScrollIntoView =
|
|
147
145
|
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
148
146
|
item && (forceScrollIntoView || !isPointerModalityRef.current);
|
|
149
147
|
if (shouldScrollIntoView) {
|
|
150
148
|
// JSDOM doesn't support `.scrollIntoView()` but it's widely supported
|
|
151
149
|
// by all browsers.
|
|
152
|
-
waitedItem.scrollIntoView?.(
|
|
150
|
+
waitedItem.scrollIntoView?.({
|
|
153
151
|
block: 'nearest',
|
|
154
152
|
inline: 'nearest'
|
|
155
|
-
}
|
|
153
|
+
});
|
|
156
154
|
}
|
|
157
155
|
});
|
|
158
156
|
});
|
|
@@ -242,7 +240,7 @@ export function useListNavigation(context, props) {
|
|
|
242
240
|
}
|
|
243
241
|
const nodes = tree.nodesRef.current;
|
|
244
242
|
const parent = nodes.find(node => node.id === parentId)?.context?.elements.floating;
|
|
245
|
-
const activeEl = activeElement(
|
|
243
|
+
const activeEl = activeElement(ownerDocument(floatingElement));
|
|
246
244
|
const treeContainsActiveEl = nodes.some(node => node.context && contains(node.context.elements.floating, activeEl));
|
|
247
245
|
if (parent && !treeContainsActiveEl && isPointerModalityRef.current) {
|
|
248
246
|
parent.focus({
|
|
@@ -303,6 +301,9 @@ export function useListNavigation(context, props) {
|
|
|
303
301
|
if (!resetOnPointerLeaveRef.current) {
|
|
304
302
|
return;
|
|
305
303
|
}
|
|
304
|
+
enqueueFocus(null, {
|
|
305
|
+
sync: true
|
|
306
|
+
});
|
|
306
307
|
indexRef.current = -1;
|
|
307
308
|
onNavigate(event);
|
|
308
309
|
if (!virtual) {
|
|
@@ -369,7 +370,7 @@ export function useListNavigation(context, props) {
|
|
|
369
370
|
|
|
370
371
|
// Grid navigation.
|
|
371
372
|
if (cols > 1) {
|
|
372
|
-
const sizes =
|
|
373
|
+
const sizes = Array.from({
|
|
373
374
|
length: listRef.current.length
|
|
374
375
|
}, () => ({
|
|
375
376
|
width: 1,
|
|
@@ -377,7 +378,7 @@ export function useListNavigation(context, props) {
|
|
|
377
378
|
}));
|
|
378
379
|
// To calculate movements on the grid, we use hypothetical cell indices
|
|
379
380
|
// as if every item was 1x1, then convert back to real indices.
|
|
380
|
-
const cellMap = createGridCellMap(sizes, cols,
|
|
381
|
+
const cellMap = createGridCellMap(sizes, cols, false);
|
|
381
382
|
const minGridIndex = cellMap.findIndex(index => index != null && !isListIndexDisabled(listRef, index, disabledIndices));
|
|
382
383
|
// last enabled index
|
|
383
384
|
const maxGridIndex = cellMap.reduce((foundIndex, index, cellIndex) => index != null && !isListIndexDisabled(listRef, index, disabledIndices) ? cellIndex : foundIndex, -1);
|
|
@@ -2,17 +2,11 @@ import type { ElementProps, FloatingContext, FloatingRootContext } from "../type
|
|
|
2
2
|
type AriaRole = 'tooltip' | 'dialog' | 'alertdialog' | 'menu' | 'listbox' | 'grid' | 'tree';
|
|
3
3
|
type ComponentRole = 'select' | 'label' | 'combobox';
|
|
4
4
|
export interface UseRoleProps {
|
|
5
|
-
/**
|
|
6
|
-
* Whether the Hook is enabled, including all internal Effects and event
|
|
7
|
-
* handlers.
|
|
8
|
-
* @default true
|
|
9
|
-
*/
|
|
10
|
-
enabled?: boolean;
|
|
11
5
|
/**
|
|
12
6
|
* The role of the floating element.
|
|
13
7
|
* @default 'dialog'
|
|
14
8
|
*/
|
|
15
|
-
role?: AriaRole | ComponentRole;
|
|
9
|
+
role?: (AriaRole | ComponentRole) | undefined;
|
|
16
10
|
}
|
|
17
11
|
/**
|
|
18
12
|
* Adds base screen reader props to the reference and floating elements for a
|
|
@@ -17,7 +17,6 @@ export function useRole(context, props = {}) {
|
|
|
17
17
|
const domReference = store.useState('domReferenceElement');
|
|
18
18
|
const floatingElement = store.useState('floatingElement');
|
|
19
19
|
const {
|
|
20
|
-
enabled = true,
|
|
21
20
|
role = 'dialog'
|
|
22
21
|
} = props;
|
|
23
22
|
const defaultReferenceId = useId();
|
|
@@ -105,10 +104,10 @@ export function useRole(context, props = {}) {
|
|
|
105
104
|
}
|
|
106
105
|
return {};
|
|
107
106
|
}, [floatingId, role]);
|
|
108
|
-
return React.useMemo(() =>
|
|
107
|
+
return React.useMemo(() => ({
|
|
109
108
|
reference,
|
|
110
109
|
floating,
|
|
111
110
|
item,
|
|
112
111
|
trigger
|
|
113
|
-
}
|
|
112
|
+
}), [reference, floating, trigger, item]);
|
|
114
113
|
}
|
|
@@ -7,11 +7,11 @@ export interface UseSyncedFloatingRootContextOptions<State extends PopupStoreSta
|
|
|
7
7
|
/**
|
|
8
8
|
* Whether to prevent the auto-emitted `openchange` event.
|
|
9
9
|
*/
|
|
10
|
-
noEmit?: boolean;
|
|
10
|
+
noEmit?: boolean | undefined;
|
|
11
11
|
/**
|
|
12
12
|
* Whether the Popup element is passed to Floating UI as the floating element instead of the default Positioner.
|
|
13
13
|
*/
|
|
14
|
-
treatPopupAsFloatingElement?: boolean;
|
|
14
|
+
treatPopupAsFloatingElement?: boolean | undefined;
|
|
15
15
|
onOpenChange(open: boolean, eventDetails: BaseUIChangeEventDetails<string>): void;
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
@@ -6,7 +6,7 @@ export interface UseTypeaheadProps {
|
|
|
6
6
|
* elements of the list.
|
|
7
7
|
* @default empty list
|
|
8
8
|
*/
|
|
9
|
-
listRef: React.
|
|
9
|
+
listRef: React.RefObject<Array<string | null>>;
|
|
10
10
|
/**
|
|
11
11
|
* The index of the active (focused or highlighted) item in the list.
|
|
12
12
|
* @default null
|
|
@@ -15,37 +15,27 @@ export interface UseTypeaheadProps {
|
|
|
15
15
|
/**
|
|
16
16
|
* Callback invoked with the matching index if found as the user types.
|
|
17
17
|
*/
|
|
18
|
-
onMatch?: (index: number) => void;
|
|
18
|
+
onMatch?: ((index: number) => void) | undefined;
|
|
19
19
|
/**
|
|
20
20
|
* Callback invoked with the typing state as the user types.
|
|
21
21
|
*/
|
|
22
|
-
onTypingChange?: (isTyping: boolean) => void;
|
|
22
|
+
onTypingChange?: ((isTyping: boolean) => void) | undefined;
|
|
23
23
|
/**
|
|
24
24
|
* Whether the Hook is enabled, including all internal Effects and event
|
|
25
25
|
* handlers.
|
|
26
26
|
* @default true
|
|
27
27
|
*/
|
|
28
|
-
enabled?: boolean;
|
|
29
|
-
/**
|
|
30
|
-
* A function that returns the matching string from the list.
|
|
31
|
-
* @default lowercase-finder
|
|
32
|
-
*/
|
|
33
|
-
findMatch?: null | ((list: Array<string | null>, typedString: string) => string | null | undefined);
|
|
28
|
+
enabled?: boolean | undefined;
|
|
34
29
|
/**
|
|
35
30
|
* The number of milliseconds to wait before resetting the typed string.
|
|
36
31
|
* @default 750
|
|
37
32
|
*/
|
|
38
|
-
resetMs?: number;
|
|
39
|
-
/**
|
|
40
|
-
* An array of keys to ignore when typing.
|
|
41
|
-
* @default []
|
|
42
|
-
*/
|
|
43
|
-
ignoreKeys?: Array<string>;
|
|
33
|
+
resetMs?: number | undefined;
|
|
44
34
|
/**
|
|
45
35
|
* The index of the selected item in the list, if available.
|
|
46
36
|
* @default null
|
|
47
37
|
*/
|
|
48
|
-
selectedIndex?: number | null;
|
|
38
|
+
selectedIndex?: (number | null) | undefined;
|
|
49
39
|
}
|
|
50
40
|
/**
|
|
51
41
|
* Provides a matching callback that can be used to focus an item as the user
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
1
3
|
import * as React from 'react';
|
|
2
4
|
import { useStableCallback } from '@base-ui/utils/useStableCallback';
|
|
3
5
|
import { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';
|
|
4
6
|
import { useTimeout } from '@base-ui/utils/useTimeout';
|
|
5
|
-
import { stopEvent } from "../utils.js";
|
|
6
|
-
import { EMPTY_ARRAY } from "../../utils/constants.js";
|
|
7
|
+
import { contains, stopEvent } from "../utils.js";
|
|
7
8
|
/**
|
|
8
9
|
* Provides a matching callback that can be used to focus an item as the user
|
|
9
10
|
* types, often used in tandem with `useListNavigation()`.
|
|
@@ -11,17 +12,15 @@ import { EMPTY_ARRAY } from "../../utils/constants.js";
|
|
|
11
12
|
*/
|
|
12
13
|
export function useTypeahead(context, props) {
|
|
13
14
|
const store = 'rootStore' in context ? context.rootStore : context;
|
|
14
|
-
const open = store.useState('open');
|
|
15
15
|
const dataRef = store.context.dataRef;
|
|
16
|
+
const open = store.useState('open');
|
|
16
17
|
const {
|
|
17
18
|
listRef,
|
|
18
19
|
activeIndex,
|
|
19
20
|
onMatch: onMatchProp,
|
|
20
21
|
onTypingChange,
|
|
21
22
|
enabled = true,
|
|
22
|
-
findMatch = null,
|
|
23
23
|
resetMs = 750,
|
|
24
|
-
ignoreKeys = EMPTY_ARRAY,
|
|
25
24
|
selectedIndex = null
|
|
26
25
|
} = props;
|
|
27
26
|
const timeout = useTimeout();
|
|
@@ -29,12 +28,15 @@ export function useTypeahead(context, props) {
|
|
|
29
28
|
const prevIndexRef = React.useRef(selectedIndex ?? activeIndex ?? -1);
|
|
30
29
|
const matchIndexRef = React.useRef(null);
|
|
31
30
|
useIsoLayoutEffect(() => {
|
|
32
|
-
if (open) {
|
|
33
|
-
|
|
34
|
-
|
|
31
|
+
if (!open && selectedIndex !== null) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
timeout.clear();
|
|
35
|
+
matchIndexRef.current = null;
|
|
36
|
+
if (stringRef.current !== '') {
|
|
35
37
|
stringRef.current = '';
|
|
36
38
|
}
|
|
37
|
-
}, [open, timeout]);
|
|
39
|
+
}, [open, selectedIndex, timeout]);
|
|
38
40
|
useIsoLayoutEffect(() => {
|
|
39
41
|
// Sync arrow key navigation but not typeahead navigation.
|
|
40
42
|
if (open && stringRef.current === '') {
|
|
@@ -54,7 +56,7 @@ export function useTypeahead(context, props) {
|
|
|
54
56
|
});
|
|
55
57
|
const onKeyDown = useStableCallback(event => {
|
|
56
58
|
function getMatchingIndex(list, orderedList, string) {
|
|
57
|
-
const str =
|
|
59
|
+
const str = orderedList.find(text => text?.toLocaleLowerCase().indexOf(string.toLocaleLowerCase()) === 0);
|
|
58
60
|
return str ? list.indexOf(str) : -1;
|
|
59
61
|
}
|
|
60
62
|
const listContent = listRef.current;
|
|
@@ -65,7 +67,7 @@ export function useTypeahead(context, props) {
|
|
|
65
67
|
stopEvent(event);
|
|
66
68
|
}
|
|
67
69
|
}
|
|
68
|
-
if (listContent == null ||
|
|
70
|
+
if (listContent == null ||
|
|
69
71
|
// Character key.
|
|
70
72
|
event.key.length !== 1 ||
|
|
71
73
|
// Modifier key.
|
|
@@ -77,6 +79,12 @@ export function useTypeahead(context, props) {
|
|
|
77
79
|
setTypingChange(true);
|
|
78
80
|
}
|
|
79
81
|
|
|
82
|
+
// Capture whether this is a new typing session before mutating the string.
|
|
83
|
+
const isNewSession = stringRef.current === '';
|
|
84
|
+
if (isNewSession) {
|
|
85
|
+
prevIndexRef.current = selectedIndex ?? activeIndex ?? -1;
|
|
86
|
+
}
|
|
87
|
+
|
|
80
88
|
// Bail out if the list contains a word like "llama" or "aaron". TODO:
|
|
81
89
|
// allow it in this case, too.
|
|
82
90
|
const allowRapidSuccessionOfFirstLetter = listContent.every(text => text ? text[0]?.toLocaleLowerCase() !== text[1]?.toLocaleLowerCase() : true);
|
|
@@ -93,7 +101,11 @@ export function useTypeahead(context, props) {
|
|
|
93
101
|
prevIndexRef.current = matchIndexRef.current;
|
|
94
102
|
setTypingChange(false);
|
|
95
103
|
});
|
|
96
|
-
|
|
104
|
+
|
|
105
|
+
// Compute the starting index for this search.
|
|
106
|
+
// If this is a new typing session (string is empty), base it on the current
|
|
107
|
+
// selection/active item; otherwise continue from the last matched index.
|
|
108
|
+
const prevIndex = isNewSession ? selectedIndex ?? activeIndex ?? -1 : prevIndexRef.current;
|
|
97
109
|
const index = getMatchingIndex(listContent, [...listContent.slice((prevIndex || 0) + 1), ...listContent.slice(0, (prevIndex || 0) + 1)], stringRef.current);
|
|
98
110
|
if (index !== -1) {
|
|
99
111
|
onMatchProp?.(index);
|
|
@@ -103,9 +115,28 @@ export function useTypeahead(context, props) {
|
|
|
103
115
|
setTypingChange(false);
|
|
104
116
|
}
|
|
105
117
|
});
|
|
118
|
+
const onBlur = useStableCallback(event => {
|
|
119
|
+
const next = event.relatedTarget;
|
|
120
|
+
const currentDomReferenceElement = store.select('domReferenceElement');
|
|
121
|
+
const currentFloatingElement = store.select('floatingElement');
|
|
122
|
+
const withinReference = contains(currentDomReferenceElement, next);
|
|
123
|
+
const withinFloating = contains(currentFloatingElement, next);
|
|
124
|
+
|
|
125
|
+
// Keep the session if focus moves within the composite (reference <-> floating).
|
|
126
|
+
if (withinReference || withinFloating) {
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
// End the current typing session when focus leaves the composite entirely.
|
|
131
|
+
timeout.clear();
|
|
132
|
+
stringRef.current = '';
|
|
133
|
+
prevIndexRef.current = matchIndexRef.current;
|
|
134
|
+
setTypingChange(false);
|
|
135
|
+
});
|
|
106
136
|
const reference = React.useMemo(() => ({
|
|
107
|
-
onKeyDown
|
|
108
|
-
|
|
137
|
+
onKeyDown,
|
|
138
|
+
onBlur
|
|
139
|
+
}), [onKeyDown, onBlur]);
|
|
109
140
|
const floating = React.useMemo(() => {
|
|
110
141
|
return {
|
|
111
142
|
onKeyDown,
|
|
@@ -113,9 +144,10 @@ export function useTypeahead(context, props) {
|
|
|
113
144
|
if (event.key === ' ') {
|
|
114
145
|
setTypingChange(false);
|
|
115
146
|
}
|
|
116
|
-
}
|
|
147
|
+
},
|
|
148
|
+
onBlur
|
|
117
149
|
};
|
|
118
|
-
}, [onKeyDown, setTypingChange]);
|
|
150
|
+
}, [onKeyDown, onBlur, setTypingChange]);
|
|
119
151
|
return React.useMemo(() => enabled ? {
|
|
120
152
|
reference,
|
|
121
153
|
floating
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { HandleClose } from "./hooks/useHover.js";
|
|
2
2
|
export interface SafePolygonOptions {
|
|
3
|
-
buffer?: number;
|
|
4
|
-
blockPointerEvents?: boolean;
|
|
5
|
-
requireIntent?: boolean;
|
|
3
|
+
buffer?: number | undefined;
|
|
4
|
+
blockPointerEvents?: boolean | undefined;
|
|
5
|
+
requireIntent?: boolean | undefined;
|
|
6
6
|
}
|
|
7
7
|
/**
|
|
8
8
|
* Generates a safe polygon area that the user can traverse without closing the
|
|
@@ -48,10 +48,10 @@ export interface FloatingEvents {
|
|
|
48
48
|
off(event: string, handler: (data: any) => void): void;
|
|
49
49
|
}
|
|
50
50
|
export interface ContextData {
|
|
51
|
-
openEvent?: Event;
|
|
52
|
-
floatingContext?: FloatingContext;
|
|
51
|
+
openEvent?: Event | undefined;
|
|
52
|
+
floatingContext?: FloatingContext | undefined;
|
|
53
53
|
/** @deprecated use `onTypingChange` prop in `useTypeahead` */
|
|
54
|
-
typing?: boolean;
|
|
54
|
+
typing?: boolean | undefined;
|
|
55
55
|
[key: string]: any;
|
|
56
56
|
}
|
|
57
57
|
export type FloatingRootContext = FloatingRootStore;
|
|
@@ -69,14 +69,14 @@ export type FloatingContext = Omit<UsePositionFloatingReturn<ReferenceType>, 're
|
|
|
69
69
|
export interface FloatingNodeType {
|
|
70
70
|
id: string | undefined;
|
|
71
71
|
parentId: string | null;
|
|
72
|
-
context?: FloatingContext;
|
|
72
|
+
context?: FloatingContext | undefined;
|
|
73
73
|
}
|
|
74
74
|
export type FloatingTreeType = FloatingTreeStore;
|
|
75
75
|
export interface ElementProps {
|
|
76
|
-
reference?: React.HTMLProps<Element
|
|
77
|
-
floating?: React.HTMLProps<HTMLElement
|
|
78
|
-
item?: React.HTMLProps<HTMLElement> | ((props: ExtendedUserProps) => React.HTMLProps<HTMLElement>);
|
|
79
|
-
trigger?: React.HTMLProps<Element
|
|
76
|
+
reference?: React.HTMLProps<Element> | undefined;
|
|
77
|
+
floating?: React.HTMLProps<HTMLElement> | undefined;
|
|
78
|
+
item?: (React.HTMLProps<HTMLElement> | ((props: ExtendedUserProps) => React.HTMLProps<HTMLElement>)) | undefined;
|
|
79
|
+
trigger?: React.HTMLProps<Element> | undefined;
|
|
80
80
|
}
|
|
81
81
|
export type ReferenceType = Element | VirtualElement;
|
|
82
82
|
export type UseFloatingData = Prettify<UseFloatingReturn>;
|
|
@@ -92,7 +92,7 @@ export type UseFloatingReturn = Prettify<UsePositionFloatingReturn & {
|
|
|
92
92
|
elements: ExtendedElements;
|
|
93
93
|
}>;
|
|
94
94
|
export interface UseFloatingOptions extends Omit<UsePositionOptions, 'elements'> {
|
|
95
|
-
rootContext?: FloatingRootContext;
|
|
95
|
+
rootContext?: FloatingRootContext | undefined;
|
|
96
96
|
/**
|
|
97
97
|
* Object of external elements as an alternative to the `refs` object setters.
|
|
98
98
|
*/
|
|
@@ -100,12 +100,12 @@ export interface UseFloatingOptions extends Omit<UsePositionOptions, 'elements'>
|
|
|
100
100
|
/**
|
|
101
101
|
* Externally passed reference element. Store in state.
|
|
102
102
|
*/
|
|
103
|
-
reference?: ReferenceType | null;
|
|
103
|
+
reference?: (ReferenceType | null) | undefined;
|
|
104
104
|
/**
|
|
105
105
|
* Externally passed floating element. Store in state.
|
|
106
106
|
*/
|
|
107
|
-
floating?: HTMLElement | null;
|
|
108
|
-
};
|
|
107
|
+
floating?: (HTMLElement | null) | undefined;
|
|
108
|
+
} | undefined;
|
|
109
109
|
/**
|
|
110
110
|
* An event callback that is invoked when the floating element is opened or
|
|
111
111
|
* closed.
|
|
@@ -114,9 +114,9 @@ export interface UseFloatingOptions extends Omit<UsePositionOptions, 'elements'>
|
|
|
114
114
|
/**
|
|
115
115
|
* Unique node id when using `FloatingTree`.
|
|
116
116
|
*/
|
|
117
|
-
nodeId?: string;
|
|
117
|
+
nodeId?: string | undefined;
|
|
118
118
|
/**
|
|
119
119
|
* External FlatingTree to use when the one provided by context can't be used.
|
|
120
120
|
*/
|
|
121
|
-
externalTree?: FloatingTreeStore;
|
|
121
|
+
externalTree?: FloatingTreeStore | undefined;
|
|
122
122
|
}
|
|
@@ -10,10 +10,10 @@ export declare function findNonDisabledListIndex(listRef: React.RefObject<Readon
|
|
|
10
10
|
disabledIndices,
|
|
11
11
|
amount
|
|
12
12
|
}?: {
|
|
13
|
-
startingIndex?: number;
|
|
14
|
-
decrement?: boolean;
|
|
15
|
-
disabledIndices?: DisabledIndices;
|
|
16
|
-
amount?: number;
|
|
13
|
+
startingIndex?: number | undefined;
|
|
14
|
+
decrement?: boolean | undefined;
|
|
15
|
+
disabledIndices?: DisabledIndices | undefined;
|
|
16
|
+
amount?: number | undefined;
|
|
17
17
|
}): number;
|
|
18
18
|
export declare function getGridNavigatedIndex(listRef: React.RefObject<Array<HTMLElement | null>>, {
|
|
19
19
|
event,
|
|
@@ -36,7 +36,7 @@ export declare function getGridNavigatedIndex(listRef: React.RefObject<Array<HTM
|
|
|
36
36
|
minIndex: number;
|
|
37
37
|
maxIndex: number;
|
|
38
38
|
prevIndex: number;
|
|
39
|
-
stopEvent?: boolean;
|
|
39
|
+
stopEvent?: boolean | undefined;
|
|
40
40
|
}): number;
|
|
41
41
|
/** For each cell index, gets the item index that occupies that cell */
|
|
42
42
|
export declare function createGridCellMap(sizes: Dimensions[], cols: number, dense: boolean): (number | undefined)[];
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import _formatErrorMessage from "@base-ui/utils/formatErrorMessage";
|
|
2
1
|
import { floor } from '@floating-ui/utils';
|
|
3
2
|
import { stopEvent } from "./event.js";
|
|
4
3
|
import { ARROW_DOWN, ARROW_LEFT, ARROW_RIGHT, ARROW_UP } from "./constants.js";
|
|
@@ -274,7 +273,7 @@ export function createGridCellMap(sizes, cols, dense) {
|
|
|
274
273
|
}, index) => {
|
|
275
274
|
if (width > cols) {
|
|
276
275
|
if (process.env.NODE_ENV !== 'production') {
|
|
277
|
-
throw new Error(
|
|
276
|
+
throw new Error(`[Floating UI]: Invalid grid - item width at index ${index} is greater than grid columns`);
|
|
278
277
|
}
|
|
279
278
|
}
|
|
280
279
|
let itemPlaced = false;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import { type PopupTriggerMap } from "../../utils/popups/index.js";
|
|
1
2
|
export declare function activeElement(doc: Document): Element | null;
|
|
2
3
|
export declare function contains(parent?: Element | null, child?: Element | null): boolean;
|
|
4
|
+
export declare function isTargetInsideEnabledTrigger(target: EventTarget | null, triggerElements: PopupTriggerMap): boolean;
|
|
3
5
|
export declare function getTarget(event: Event): EventTarget | null;
|
|
4
6
|
export declare function isEventTargetWithin(event: Event, node: Node | null | undefined): boolean;
|
|
5
7
|
export declare function isRootElement(element: Element): boolean;
|
|
6
|
-
export declare function getDocument(node: Element | null): Document;
|
|
7
8
|
export declare function isTypeableElement(element: unknown): boolean;
|
|
8
9
|
export declare function isTypeableCombobox(element: Element | null): boolean;
|
|
9
10
|
export declare function matchesFocusVisible(element: Element | null): boolean;
|