@base-ui/react 1.6.0 → 1.8.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 +372 -0
- package/accordion/header/AccordionHeaderDataAttributes.d.mts +13 -15
- package/accordion/header/AccordionHeaderDataAttributes.d.ts +13 -15
- package/accordion/header/AccordionHeaderDataAttributes.js +14 -17
- package/accordion/header/AccordionHeaderDataAttributes.mjs +13 -16
- package/accordion/item/AccordionItem.js +6 -13
- package/accordion/item/AccordionItem.mjs +6 -13
- package/accordion/item/AccordionItemContext.d.mts +2 -1
- package/accordion/item/AccordionItemContext.d.ts +2 -1
- package/accordion/item/AccordionItemDataAttributes.d.mts +13 -15
- package/accordion/item/AccordionItemDataAttributes.d.ts +13 -15
- package/accordion/item/AccordionItemDataAttributes.js +14 -17
- package/accordion/item/AccordionItemDataAttributes.mjs +13 -16
- package/accordion/item/stateAttributesMapping.js +5 -6
- package/accordion/item/stateAttributesMapping.mjs +4 -6
- package/accordion/panel/AccordionPanel.js +15 -14
- package/accordion/panel/AccordionPanel.mjs +13 -12
- package/accordion/panel/AccordionPanelCssVars.d.mts +10 -12
- package/accordion/panel/AccordionPanelCssVars.d.ts +10 -12
- package/accordion/panel/AccordionPanelCssVars.js +11 -14
- package/accordion/panel/AccordionPanelCssVars.mjs +10 -13
- package/accordion/panel/AccordionPanelDataAttributes.d.mts +25 -27
- package/accordion/panel/AccordionPanelDataAttributes.d.ts +25 -27
- package/accordion/panel/AccordionPanelDataAttributes.js +26 -29
- package/accordion/panel/AccordionPanelDataAttributes.mjs +26 -28
- package/accordion/root/AccordionRoot.d.mts +1 -0
- package/accordion/root/AccordionRoot.d.ts +1 -0
- package/accordion/root/AccordionRoot.js +6 -16
- package/accordion/root/AccordionRoot.mjs +6 -16
- package/accordion/root/AccordionRootDataAttributes.d.mts +8 -10
- package/accordion/root/AccordionRootDataAttributes.d.ts +8 -10
- package/accordion/root/AccordionRootDataAttributes.js +9 -12
- package/accordion/root/AccordionRootDataAttributes.mjs +8 -11
- package/accordion/trigger/AccordionTrigger.js +7 -7
- package/accordion/trigger/AccordionTrigger.mjs +7 -7
- package/accordion/trigger/AccordionTriggerDataAttributes.d.mts +8 -10
- package/accordion/trigger/AccordionTriggerDataAttributes.d.ts +8 -10
- package/accordion/trigger/AccordionTriggerDataAttributes.js +9 -12
- package/accordion/trigger/AccordionTriggerDataAttributes.mjs +8 -11
- package/alert-dialog/handle.d.mts +6 -8
- package/alert-dialog/handle.d.ts +6 -8
- package/alert-dialog/handle.js +8 -19
- package/alert-dialog/handle.mjs +7 -17
- package/alert-dialog/root/AlertDialogRoot.d.mts +1 -1
- package/alert-dialog/root/AlertDialogRoot.d.ts +1 -1
- package/alert-dialog/root/AlertDialogRoot.js +1 -1
- package/alert-dialog/root/AlertDialogRoot.mjs +1 -1
- package/alert-dialog/trigger/AlertDialogTriggerDataAttributes.d.mts +8 -10
- package/alert-dialog/trigger/AlertDialogTriggerDataAttributes.d.ts +8 -10
- package/alert-dialog/trigger/AlertDialogTriggerDataAttributes.js +9 -12
- package/alert-dialog/trigger/AlertDialogTriggerDataAttributes.mjs +9 -11
- package/autocomplete/clear/AutocompleteClearDataAttributes.d.mts +1 -1
- package/autocomplete/clear/AutocompleteClearDataAttributes.d.ts +1 -1
- package/autocomplete/clear/AutocompleteClearDataAttributes.js +11 -7
- package/autocomplete/clear/AutocompleteClearDataAttributes.mjs +1 -1
- package/autocomplete/index.d.mts +1 -0
- package/autocomplete/index.d.ts +1 -0
- package/autocomplete/index.parts.d.mts +1 -1
- package/autocomplete/index.parts.d.ts +1 -1
- package/autocomplete/index.parts.js +2 -2
- package/autocomplete/index.parts.mjs +1 -1
- package/autocomplete/input-group/AutocompleteInputGroup.d.mts +1 -1
- package/autocomplete/input-group/AutocompleteInputGroup.d.ts +1 -1
- package/autocomplete/input-group/AutocompleteInputGroupDataAttributes.d.mts +49 -51
- package/autocomplete/input-group/AutocompleteInputGroupDataAttributes.d.ts +49 -51
- package/autocomplete/input-group/AutocompleteInputGroupDataAttributes.js +50 -53
- package/autocomplete/input-group/AutocompleteInputGroupDataAttributes.mjs +49 -52
- package/autocomplete/item/AutocompleteItemDataAttributes.d.mts +8 -10
- package/autocomplete/item/AutocompleteItemDataAttributes.d.ts +8 -10
- package/autocomplete/item/AutocompleteItemDataAttributes.js +11 -13
- package/autocomplete/item/AutocompleteItemDataAttributes.mjs +10 -12
- package/autocomplete/root/AutocompleteRoot.d.mts +29 -2
- package/autocomplete/root/AutocompleteRoot.d.ts +29 -2
- package/autocomplete/root/AutocompleteRoot.js +14 -33
- package/autocomplete/root/AutocompleteRoot.mjs +14 -33
- package/autocomplete/separator/AutocompleteSeparator.d.mts +26 -0
- package/autocomplete/separator/AutocompleteSeparator.d.ts +26 -0
- package/autocomplete/separator/AutocompleteSeparator.js +15 -0
- package/autocomplete/separator/AutocompleteSeparator.mjs +10 -0
- package/autocomplete/trigger/AutocompleteTrigger.d.mts +5 -1
- package/autocomplete/trigger/AutocompleteTrigger.d.ts +5 -1
- package/autocomplete/trigger/AutocompleteTriggerDataAttributes.d.mts +53 -55
- package/autocomplete/trigger/AutocompleteTriggerDataAttributes.d.ts +53 -55
- package/autocomplete/trigger/AutocompleteTriggerDataAttributes.js +54 -57
- package/autocomplete/trigger/AutocompleteTriggerDataAttributes.mjs +54 -56
- package/avatar/fallback/AvatarFallback.d.mts +2 -0
- package/avatar/fallback/AvatarFallback.d.ts +2 -0
- package/avatar/fallback/AvatarFallback.js +5 -5
- package/avatar/fallback/AvatarFallback.mjs +5 -5
- package/avatar/image/AvatarImage.d.mts +7 -1
- package/avatar/image/AvatarImage.d.ts +7 -1
- package/avatar/image/AvatarImage.js +75 -9
- package/avatar/image/AvatarImage.mjs +75 -9
- package/avatar/image/AvatarImageDataAttributes.d.mts +16 -10
- package/avatar/image/AvatarImageDataAttributes.d.ts +16 -10
- package/avatar/image/AvatarImageDataAttributes.js +17 -12
- package/avatar/image/AvatarImageDataAttributes.mjs +17 -11
- package/avatar/image/useImageLoadingStatus.d.mts +1 -1
- package/avatar/image/useImageLoadingStatus.d.ts +1 -1
- package/avatar/image/useImageLoadingStatus.js +8 -4
- package/avatar/image/useImageLoadingStatus.mjs +8 -4
- package/button/ButtonDataAttributes.d.mts +4 -6
- package/button/ButtonDataAttributes.d.ts +4 -6
- package/button/ButtonDataAttributes.js +5 -8
- package/button/ButtonDataAttributes.mjs +4 -7
- package/checkbox/indicator/CheckboxIndicator.js +5 -5
- package/checkbox/indicator/CheckboxIndicator.mjs +5 -5
- package/checkbox/indicator/CheckboxIndicatorDataAttributes.d.mts +56 -58
- package/checkbox/indicator/CheckboxIndicatorDataAttributes.d.ts +56 -58
- package/checkbox/indicator/CheckboxIndicatorDataAttributes.js +57 -60
- package/checkbox/indicator/CheckboxIndicatorDataAttributes.mjs +57 -59
- package/checkbox/root/CheckboxRoot.d.mts +2 -1
- package/checkbox/root/CheckboxRoot.d.ts +2 -1
- package/checkbox/root/CheckboxRoot.js +61 -65
- package/checkbox/root/CheckboxRoot.mjs +61 -65
- package/checkbox/root/CheckboxRootDataAttributes.d.mts +48 -50
- package/checkbox/root/CheckboxRootDataAttributes.d.ts +48 -50
- package/checkbox/root/CheckboxRootDataAttributes.js +49 -52
- package/checkbox/root/CheckboxRootDataAttributes.mjs +48 -51
- package/checkbox/utils/{useStateAttributesMapping.d.mts → getCheckboxStateAttributesMapping.d.mts} +1 -1
- package/checkbox/utils/{useStateAttributesMapping.d.ts → getCheckboxStateAttributesMapping.d.ts} +1 -1
- package/checkbox/utils/{useStateAttributesMapping.js → getCheckboxStateAttributesMapping.js} +7 -9
- package/checkbox/utils/{useStateAttributesMapping.mjs → getCheckboxStateAttributesMapping.mjs} +4 -7
- package/checkbox-group/CheckboxGroup.js +41 -23
- package/checkbox-group/CheckboxGroup.mjs +41 -23
- package/checkbox-group/CheckboxGroupContext.d.mts +8 -5
- package/checkbox-group/CheckboxGroupContext.d.ts +8 -5
- package/checkbox-group/CheckboxGroupContext.js +2 -8
- package/checkbox-group/CheckboxGroupContext.mjs +2 -7
- package/checkbox-group/CheckboxGroupDataAttributes.d.mts +4 -6
- package/checkbox-group/CheckboxGroupDataAttributes.d.ts +4 -6
- package/checkbox-group/CheckboxGroupDataAttributes.js +5 -8
- package/checkbox-group/CheckboxGroupDataAttributes.mjs +4 -7
- package/checkbox-group/useCheckboxGroupParent.d.mts +7 -7
- package/checkbox-group/useCheckboxGroupParent.d.ts +7 -7
- package/checkbox-group/useCheckboxGroupParent.js +41 -14
- package/checkbox-group/useCheckboxGroupParent.mjs +41 -14
- package/collapsible/panel/CollapsiblePanel.js +15 -14
- package/collapsible/panel/CollapsiblePanel.mjs +13 -12
- package/collapsible/panel/CollapsiblePanelCssVars.d.mts +10 -12
- package/collapsible/panel/CollapsiblePanelCssVars.d.ts +10 -12
- package/collapsible/panel/CollapsiblePanelCssVars.js +11 -14
- package/collapsible/panel/CollapsiblePanelCssVars.mjs +10 -13
- package/collapsible/panel/CollapsiblePanelDataAttributes.d.mts +16 -18
- package/collapsible/panel/CollapsiblePanelDataAttributes.d.ts +16 -18
- package/collapsible/panel/CollapsiblePanelDataAttributes.js +17 -20
- package/collapsible/panel/CollapsiblePanelDataAttributes.mjs +17 -19
- package/collapsible/panel/useCollapsiblePanel.js +31 -26
- package/collapsible/panel/useCollapsiblePanel.mjs +30 -25
- package/collapsible/root/CollapsibleRootDataAttributes.d.mts +16 -0
- package/collapsible/root/CollapsibleRootDataAttributes.d.ts +16 -0
- package/collapsible/root/CollapsibleRootDataAttributes.js +23 -0
- package/collapsible/root/CollapsibleRootDataAttributes.mjs +18 -0
- package/collapsible/root/useCollapsibleRoot.d.mts +2 -1
- package/collapsible/root/useCollapsibleRoot.d.ts +2 -1
- package/collapsible/root/useCollapsibleRoot.js +6 -4
- package/collapsible/root/useCollapsibleRoot.mjs +6 -4
- package/collapsible/trigger/CollapsibleTriggerDataAttributes.d.mts +4 -6
- package/collapsible/trigger/CollapsibleTriggerDataAttributes.d.ts +4 -6
- package/collapsible/trigger/CollapsibleTriggerDataAttributes.js +5 -8
- package/collapsible/trigger/CollapsibleTriggerDataAttributes.mjs +4 -7
- package/combobox/arrow/ComboboxArrow.d.mts +1 -1
- package/combobox/arrow/ComboboxArrow.d.ts +1 -1
- package/combobox/arrow/ComboboxArrow.js +1 -3
- package/combobox/arrow/ComboboxArrow.mjs +1 -3
- package/combobox/arrow/ComboboxArrowDataAttributes.d.mts +22 -24
- package/combobox/arrow/ComboboxArrowDataAttributes.d.ts +22 -24
- package/combobox/arrow/ComboboxArrowDataAttributes.js +23 -26
- package/combobox/arrow/ComboboxArrowDataAttributes.mjs +23 -25
- package/combobox/backdrop/ComboboxBackdrop.js +3 -5
- package/combobox/backdrop/ComboboxBackdrop.mjs +3 -5
- package/combobox/backdrop/ComboboxBackdropDataAttributes.d.mts +16 -18
- package/combobox/backdrop/ComboboxBackdropDataAttributes.d.ts +16 -18
- package/combobox/backdrop/ComboboxBackdropDataAttributes.js +17 -20
- package/combobox/backdrop/ComboboxBackdropDataAttributes.mjs +17 -19
- package/combobox/chip/ComboboxChip.js +11 -15
- package/combobox/chip/ComboboxChip.mjs +11 -15
- package/combobox/chip-remove/ComboboxChipRemove.js +9 -17
- package/combobox/chip-remove/ComboboxChipRemove.mjs +9 -17
- package/combobox/chips/ComboboxChips.js +4 -6
- package/combobox/chips/ComboboxChips.mjs +4 -6
- package/combobox/clear/ComboboxClear.js +18 -18
- package/combobox/clear/ComboboxClear.mjs +18 -18
- package/combobox/clear/ComboboxClearDataAttributes.d.mts +20 -22
- package/combobox/clear/ComboboxClearDataAttributes.d.ts +20 -22
- package/combobox/clear/ComboboxClearDataAttributes.js +21 -24
- package/combobox/clear/ComboboxClearDataAttributes.mjs +21 -23
- package/combobox/collection/ComboboxCollection.d.mts +1 -1
- package/combobox/collection/ComboboxCollection.d.ts +1 -1
- package/combobox/collection/ComboboxCollection.js +0 -3
- package/combobox/collection/ComboboxCollection.mjs +0 -3
- package/combobox/collection/GroupCollectionContext.d.mts +1 -1
- package/combobox/collection/GroupCollectionContext.d.ts +1 -1
- package/combobox/empty/ComboboxEmpty.js +1 -1
- package/combobox/empty/ComboboxEmpty.mjs +1 -1
- package/combobox/group/ComboboxGroup.js +6 -1
- package/combobox/group/ComboboxGroup.mjs +6 -1
- package/combobox/group-label/ComboboxGroupLabel.js +3 -2
- package/combobox/group-label/ComboboxGroupLabel.mjs +3 -2
- package/combobox/index.d.mts +4 -1
- package/combobox/index.d.ts +4 -1
- package/combobox/index.parts.d.mts +3 -2
- package/combobox/index.parts.d.ts +3 -2
- package/combobox/index.parts.js +10 -3
- package/combobox/index.parts.mjs +3 -2
- package/combobox/input/ComboboxInput.d.mts +1 -1
- package/combobox/input/ComboboxInput.d.ts +1 -1
- package/combobox/input/ComboboxInput.js +82 -123
- package/combobox/input/ComboboxInput.mjs +83 -124
- package/combobox/input/ComboboxInputDataAttributes.d.mts +53 -55
- package/combobox/input/ComboboxInputDataAttributes.d.ts +53 -55
- package/combobox/input/ComboboxInputDataAttributes.js +54 -57
- package/combobox/input/ComboboxInputDataAttributes.mjs +54 -56
- package/combobox/input-group/ComboboxInputGroup.d.mts +1 -1
- package/combobox/input-group/ComboboxInputGroup.d.ts +1 -1
- package/combobox/input-group/ComboboxInputGroup.js +10 -17
- package/combobox/input-group/ComboboxInputGroup.mjs +11 -18
- package/combobox/input-group/ComboboxInputGroupDataAttributes.d.mts +53 -55
- package/combobox/input-group/ComboboxInputGroupDataAttributes.d.ts +53 -55
- package/combobox/input-group/ComboboxInputGroupDataAttributes.js +54 -57
- package/combobox/input-group/ComboboxInputGroupDataAttributes.mjs +53 -56
- package/combobox/item/ComboboxItem.js +45 -45
- package/combobox/item/ComboboxItem.mjs +47 -47
- package/combobox/item/ComboboxItemDataAttributes.d.mts +12 -14
- package/combobox/item/ComboboxItemDataAttributes.d.ts +12 -14
- package/combobox/item/ComboboxItemDataAttributes.js +13 -16
- package/combobox/item/ComboboxItemDataAttributes.mjs +12 -15
- package/combobox/item-indicator/ComboboxItemIndicator.js +3 -2
- package/combobox/item-indicator/ComboboxItemIndicator.mjs +3 -2
- package/combobox/item-indicator/ComboboxItemIndicatorDataAttributes.d.mts +8 -10
- package/combobox/item-indicator/ComboboxItemIndicatorDataAttributes.d.ts +8 -10
- package/combobox/item-indicator/ComboboxItemIndicatorDataAttributes.js +9 -12
- package/combobox/item-indicator/ComboboxItemIndicatorDataAttributes.mjs +9 -11
- package/combobox/items/createItems.d.mts +53 -0
- package/combobox/items/createItems.d.ts +53 -0
- package/combobox/items/createItems.js +93 -0
- package/combobox/items/createItems.mjs +88 -0
- package/combobox/items/itemCollection.d.mts +39 -0
- package/combobox/items/itemCollection.d.ts +39 -0
- package/combobox/items/itemCollection.js +33 -0
- package/combobox/items/itemCollection.mjs +27 -0
- package/combobox/label/ComboboxLabel.js +6 -7
- package/combobox/label/ComboboxLabel.mjs +6 -7
- package/combobox/list/ComboboxList.js +17 -20
- package/combobox/list/ComboboxList.mjs +17 -20
- package/combobox/popup/ComboboxPopup.d.mts +1 -1
- package/combobox/popup/ComboboxPopup.d.ts +1 -1
- package/combobox/popup/ComboboxPopup.js +21 -25
- package/combobox/popup/ComboboxPopup.mjs +22 -26
- package/combobox/popup/ComboboxPopupDataAttributes.d.mts +34 -37
- package/combobox/popup/ComboboxPopupDataAttributes.d.ts +34 -37
- package/combobox/popup/ComboboxPopupDataAttributes.js +35 -39
- package/combobox/popup/ComboboxPopupDataAttributes.mjs +35 -38
- package/combobox/portal/ComboboxPortal.d.mts +6 -2
- package/combobox/portal/ComboboxPortal.d.ts +6 -2
- package/combobox/portal/ComboboxPortal.js +2 -4
- package/combobox/portal/ComboboxPortal.mjs +2 -4
- package/combobox/positioner/ComboboxPositioner.d.mts +1 -1
- package/combobox/positioner/ComboboxPositioner.d.ts +1 -1
- package/combobox/positioner/ComboboxPositioner.js +23 -25
- package/combobox/positioner/ComboboxPositioner.mjs +24 -26
- package/combobox/positioner/ComboboxPositionerContext.d.mts +1 -1
- package/combobox/positioner/ComboboxPositionerContext.d.ts +1 -1
- package/combobox/positioner/ComboboxPositionerCssVars.d.mts +25 -27
- package/combobox/positioner/ComboboxPositionerCssVars.d.ts +25 -27
- package/combobox/positioner/ComboboxPositionerCssVars.js +26 -29
- package/combobox/positioner/ComboboxPositionerCssVars.mjs +25 -28
- package/combobox/positioner/ComboboxPositionerDataAttributes.d.mts +26 -28
- package/combobox/positioner/ComboboxPositionerDataAttributes.d.ts +26 -28
- package/combobox/positioner/ComboboxPositionerDataAttributes.js +27 -30
- package/combobox/positioner/ComboboxPositionerDataAttributes.mjs +27 -29
- package/combobox/root/AriaCombobox.d.mts +37 -21
- package/combobox/root/AriaCombobox.d.ts +37 -21
- package/combobox/root/AriaCombobox.js +520 -317
- package/combobox/root/AriaCombobox.mjs +524 -322
- package/combobox/root/ComboboxRoot.d.mts +7 -3
- package/combobox/root/ComboboxRoot.d.ts +7 -3
- package/combobox/root/ComboboxRootContext.d.mts +5 -1
- package/combobox/root/ComboboxRootContext.d.ts +5 -1
- package/combobox/root/utils/index.d.mts +5 -2
- package/combobox/root/utils/index.d.ts +5 -2
- package/combobox/root/utils/index.js +4 -5
- package/combobox/root/utils/index.mjs +4 -5
- package/combobox/root/utils/useFilter.d.mts +2 -1
- package/combobox/root/utils/useFilter.d.ts +2 -1
- package/combobox/root/utils/useFilter.js +2 -3
- package/combobox/root/utils/useFilter.mjs +2 -3
- package/combobox/root/utils/useFilteredItems.d.mts +1 -0
- package/combobox/root/utils/useFilteredItems.d.ts +1 -0
- package/combobox/root/utils/useFilteredItems.js +1 -0
- package/combobox/root/utils/useFilteredItems.mjs +1 -0
- package/combobox/separator/ComboboxSeparator.d.mts +26 -0
- package/combobox/separator/ComboboxSeparator.d.ts +26 -0
- package/combobox/separator/ComboboxSeparator.js +15 -0
- package/combobox/separator/ComboboxSeparator.mjs +10 -0
- package/combobox/store.d.mts +58 -34
- package/combobox/store.d.ts +58 -34
- package/combobox/store.js +52 -48
- package/combobox/store.mjs +53 -48
- package/combobox/trigger/ComboboxTrigger.d.mts +5 -1
- package/combobox/trigger/ComboboxTrigger.d.ts +5 -1
- package/combobox/trigger/ComboboxTrigger.js +43 -63
- package/combobox/trigger/ComboboxTrigger.mjs +45 -64
- package/combobox/trigger/ComboboxTriggerDataAttributes.d.mts +57 -59
- package/combobox/trigger/ComboboxTriggerDataAttributes.d.ts +57 -59
- package/combobox/trigger/ComboboxTriggerDataAttributes.js +58 -61
- package/combobox/trigger/ComboboxTriggerDataAttributes.mjs +58 -60
- package/combobox/utils/ComboboxInternalDismissButton.d.mts +1 -5
- package/combobox/utils/ComboboxInternalDismissButton.d.ts +1 -5
- package/combobox/utils/ComboboxInternalDismissButton.js +1 -1
- package/combobox/utils/ComboboxInternalDismissButton.mjs +1 -1
- package/combobox/utils/handleInputPress.d.mts +1 -1
- package/combobox/utils/handleInputPress.d.ts +1 -1
- package/combobox/utils/handleInputPress.js +4 -4
- package/combobox/utils/handleInputPress.mjs +4 -4
- package/combobox/utils/parts.d.mts +24 -0
- package/combobox/utils/parts.d.ts +24 -0
- package/combobox/utils/parts.js +57 -0
- package/combobox/utils/parts.mjs +48 -0
- package/combobox/utils/stateAttributesMapping.d.mts +3 -3
- package/combobox/utils/stateAttributesMapping.d.ts +3 -3
- package/combobox/utils/stateAttributesMapping.js +4 -2
- package/combobox/utils/stateAttributesMapping.mjs +3 -2
- package/combobox/utils/useInitialLiveRegionTextMutation.js +1 -1
- package/combobox/utils/useInitialLiveRegionTextMutation.mjs +1 -1
- package/combobox/value/ComboboxValue.d.mts +5 -0
- package/combobox/value/ComboboxValue.d.ts +5 -0
- package/combobox/value/ComboboxValue.js +6 -8
- package/combobox/value/ComboboxValue.mjs +6 -8
- package/context-menu/index.d.mts +1 -1
- package/context-menu/index.d.ts +1 -1
- package/context-menu/index.parts.d.mts +1 -1
- package/context-menu/index.parts.d.ts +1 -1
- package/context-menu/index.parts.js +2 -2
- package/context-menu/index.parts.mjs +1 -1
- package/context-menu/positioner/ContextMenuPositioner.d.mts +95 -0
- package/context-menu/positioner/ContextMenuPositioner.d.ts +95 -0
- package/context-menu/positioner/ContextMenuPositioner.js +15 -0
- package/context-menu/positioner/ContextMenuPositioner.mjs +10 -0
- package/context-menu/positioner/ContextMenuPositionerCssVars.d.mts +1 -0
- package/context-menu/positioner/ContextMenuPositionerCssVars.d.ts +1 -0
- package/context-menu/positioner/ContextMenuPositionerCssVars.js +16 -0
- package/context-menu/positioner/ContextMenuPositionerCssVars.mjs +1 -0
- package/context-menu/positioner/ContextMenuPositionerDataAttributes.d.mts +1 -0
- package/context-menu/positioner/ContextMenuPositionerDataAttributes.d.ts +1 -0
- package/context-menu/positioner/ContextMenuPositionerDataAttributes.js +16 -0
- package/context-menu/positioner/ContextMenuPositionerDataAttributes.mjs +1 -0
- package/context-menu/root/ContextMenuRoot.d.mts +9 -2
- package/context-menu/root/ContextMenuRoot.d.ts +9 -2
- package/context-menu/trigger/ContextMenuTrigger.js +40 -22
- package/context-menu/trigger/ContextMenuTrigger.mjs +40 -22
- package/context-menu/trigger/ContextMenuTriggerDataAttributes.d.mts +8 -10
- package/context-menu/trigger/ContextMenuTriggerDataAttributes.d.ts +8 -10
- package/context-menu/trigger/ContextMenuTriggerDataAttributes.js +9 -12
- package/context-menu/trigger/ContextMenuTriggerDataAttributes.mjs +9 -11
- package/csp-provider/CSPProvider.d.mts +1 -1
- package/csp-provider/CSPProvider.d.ts +1 -1
- package/dialog/backdrop/DialogBackdrop.js +2 -10
- package/dialog/backdrop/DialogBackdrop.mjs +3 -10
- package/dialog/backdrop/DialogBackdropDataAttributes.d.mts +16 -18
- package/dialog/backdrop/DialogBackdropDataAttributes.d.ts +16 -18
- package/dialog/backdrop/DialogBackdropDataAttributes.js +17 -20
- package/dialog/backdrop/DialogBackdropDataAttributes.mjs +17 -19
- package/dialog/close/DialogClose.js +1 -3
- package/dialog/close/DialogClose.mjs +1 -3
- package/dialog/close/DialogCloseDataAttributes.d.mts +4 -6
- package/dialog/close/DialogCloseDataAttributes.d.ts +4 -6
- package/dialog/close/DialogCloseDataAttributes.js +5 -8
- package/dialog/close/DialogCloseDataAttributes.mjs +4 -7
- package/dialog/description/DialogDescription.js +1 -3
- package/dialog/description/DialogDescription.mjs +1 -3
- package/dialog/popup/DialogPopup.js +8 -23
- package/dialog/popup/DialogPopup.mjs +8 -22
- package/dialog/popup/DialogPopupCssVars.d.mts +5 -7
- package/dialog/popup/DialogPopupCssVars.d.ts +5 -7
- package/dialog/popup/DialogPopupCssVars.js +6 -9
- package/dialog/popup/DialogPopupCssVars.mjs +5 -8
- package/dialog/popup/DialogPopupDataAttributes.d.mts +24 -26
- package/dialog/popup/DialogPopupDataAttributes.d.ts +24 -26
- package/dialog/popup/DialogPopupDataAttributes.js +25 -28
- package/dialog/popup/DialogPopupDataAttributes.mjs +25 -27
- package/dialog/portal/DialogPortal.d.mts +3 -3
- package/dialog/portal/DialogPortal.d.ts +3 -3
- package/dialog/portal/DialogPortal.js +1 -3
- package/dialog/portal/DialogPortal.mjs +1 -3
- package/dialog/root/DialogRoot.d.mts +1 -1
- package/dialog/root/DialogRoot.d.ts +1 -1
- package/dialog/root/DialogRoot.js +6 -8
- package/dialog/root/DialogRoot.mjs +5 -6
- package/dialog/root/DialogRootContext.d.mts +3 -7
- package/dialog/root/DialogRootContext.d.ts +3 -7
- package/dialog/root/DialogRootContext.js +4 -6
- package/dialog/root/DialogRootContext.mjs +3 -5
- package/dialog/root/useDialogRoot.d.mts +0 -6
- package/dialog/root/useDialogRoot.d.ts +0 -6
- package/dialog/root/useDialogRoot.js +33 -46
- package/dialog/root/useDialogRoot.mjs +34 -46
- package/dialog/root/useRenderDialogRoot.d.mts +2 -1
- package/dialog/root/useRenderDialogRoot.d.ts +2 -1
- package/dialog/root/useRenderDialogRoot.js +34 -42
- package/dialog/root/useRenderDialogRoot.mjs +36 -44
- package/dialog/store/DialogHandle.d.mts +20 -16
- package/dialog/store/DialogHandle.d.ts +20 -16
- package/dialog/store/DialogHandle.js +32 -27
- package/dialog/store/DialogHandle.mjs +33 -28
- package/dialog/store/DialogStore.d.mts +14 -4
- package/dialog/store/DialogStore.d.ts +14 -4
- package/dialog/store/DialogStore.js +50 -40
- package/dialog/store/DialogStore.mjs +50 -41
- package/dialog/title/DialogTitle.js +1 -3
- package/dialog/title/DialogTitle.mjs +1 -3
- package/dialog/trigger/DialogTrigger.js +6 -6
- package/dialog/trigger/DialogTrigger.mjs +7 -7
- package/dialog/trigger/DialogTriggerDataAttributes.d.mts +8 -10
- package/dialog/trigger/DialogTriggerDataAttributes.d.ts +8 -10
- package/dialog/trigger/DialogTriggerDataAttributes.js +9 -12
- package/dialog/trigger/DialogTriggerDataAttributes.mjs +9 -11
- package/dialog/utils/stateAttributesMapping.d.mts +12 -0
- package/dialog/utils/stateAttributesMapping.d.ts +12 -0
- package/dialog/utils/stateAttributesMapping.js +23 -0
- package/dialog/utils/stateAttributesMapping.mjs +17 -0
- package/dialog/viewport/DialogViewport.js +3 -22
- package/dialog/viewport/DialogViewport.mjs +3 -21
- package/dialog/viewport/DialogViewportDataAttributes.d.mts +24 -26
- package/dialog/viewport/DialogViewportDataAttributes.d.ts +24 -26
- package/dialog/viewport/DialogViewportDataAttributes.js +25 -28
- package/dialog/viewport/DialogViewportDataAttributes.mjs +25 -27
- package/docs/index.md +3 -1
- package/docs/react/components/accordion.md +327 -6
- package/docs/react/components/alert-dialog.md +401 -37
- package/docs/react/components/autocomplete.md +204 -143
- package/docs/react/components/avatar.md +64 -11
- package/docs/react/components/button.md +7 -3
- package/docs/react/components/checkbox.md +21 -21
- package/docs/react/components/collapsible.md +28 -1
- package/docs/react/components/combobox.md +1041 -249
- package/docs/react/components/context-menu.md +517 -132
- package/docs/react/components/dialog.md +1031 -312
- package/docs/react/components/drawer.md +27 -23
- package/docs/react/components/field.md +25 -25
- package/docs/react/components/form.md +13 -11
- package/docs/react/components/menu.md +164 -143
- package/docs/react/components/menubar.md +41 -41
- package/docs/react/components/navigation-menu.md +61 -71
- package/docs/react/components/number-field.md +6 -6
- package/docs/react/components/otp-field.md +20 -18
- package/docs/react/components/popover.md +52 -36
- package/docs/react/components/preview-card.md +61 -51
- package/docs/react/components/progress.md +3 -3
- package/docs/react/components/radio.md +1 -1
- package/docs/react/components/select.md +64 -62
- package/docs/react/components/slider.md +436 -71
- package/docs/react/components/tabs.md +276 -5
- package/docs/react/components/toast.md +40 -30
- package/docs/react/components/toolbar.md +27 -23
- package/docs/react/components/tooltip.md +30 -17
- package/docs/react/handbook/animation.md +3 -3
- package/docs/react/handbook/forms.md +3 -3
- package/docs/react/handbook/styling.md +1 -1
- package/docs/react/overview/about.md +10 -7
- package/docs/react/overview/community.md +5 -7
- package/docs/react/overview/quick-start.md +3 -3
- package/docs/react/overview/releases/v1-7-0.md +236 -0
- package/docs/react/overview/releases/v1-8-0.md +148 -0
- package/docs/react/overview/releases.md +20 -2
- package/docs/react/utils/direction-provider.md +5 -2
- package/docs/react/utils/use-render.md +4 -362
- package/drawer/backdrop/DrawerBackdrop.js +6 -14
- package/drawer/backdrop/DrawerBackdrop.mjs +5 -12
- package/drawer/backdrop/DrawerBackdropCssVars.d.mts +5 -7
- package/drawer/backdrop/DrawerBackdropCssVars.d.ts +5 -7
- package/drawer/backdrop/DrawerBackdropCssVars.js +6 -9
- package/drawer/backdrop/DrawerBackdropCssVars.mjs +5 -8
- package/drawer/backdrop/DrawerBackdropDataAttributes.d.mts +16 -18
- package/drawer/backdrop/DrawerBackdropDataAttributes.d.ts +16 -18
- package/drawer/backdrop/DrawerBackdropDataAttributes.js +17 -20
- package/drawer/backdrop/DrawerBackdropDataAttributes.mjs +17 -19
- package/drawer/content/DrawerContent.js +2 -2
- package/drawer/content/DrawerContent.mjs +1 -1
- package/drawer/handle.d.mts +16 -0
- package/drawer/handle.d.ts +16 -0
- package/drawer/handle.js +25 -0
- package/drawer/handle.mjs +18 -0
- package/drawer/indent/DrawerIndent.js +10 -10
- package/drawer/indent/DrawerIndent.mjs +3 -3
- package/drawer/indent-background/DrawerIndentBackground.js +1 -1
- package/drawer/indent-background/DrawerIndentBackground.mjs +1 -1
- package/drawer/index.parts.d.mts +1 -1
- package/drawer/index.parts.d.ts +1 -1
- package/drawer/index.parts.js +3 -3
- package/drawer/index.parts.mjs +1 -1
- package/drawer/popup/DrawerPopup.js +31 -33
- package/drawer/popup/DrawerPopup.mjs +14 -16
- package/drawer/popup/DrawerPopupCssVars.d.mts +35 -37
- package/drawer/popup/DrawerPopupCssVars.d.ts +35 -37
- package/drawer/popup/DrawerPopupCssVars.js +36 -39
- package/drawer/popup/DrawerPopupCssVars.mjs +35 -38
- package/drawer/popup/DrawerPopupDataAttributes.d.mts +41 -43
- package/drawer/popup/DrawerPopupDataAttributes.d.ts +41 -43
- package/drawer/popup/DrawerPopupDataAttributes.js +42 -45
- package/drawer/popup/DrawerPopupDataAttributes.mjs +42 -44
- package/drawer/portal/DrawerPortal.d.mts +3 -3
- package/drawer/portal/DrawerPortal.d.ts +3 -3
- package/drawer/provider/DrawerProvider.d.mts +1 -1
- package/drawer/provider/DrawerProvider.d.ts +1 -1
- package/drawer/provider/DrawerProvider.js +13 -24
- package/drawer/provider/DrawerProvider.mjs +13 -24
- package/drawer/provider/DrawerProviderContext.d.mts +3 -4
- package/drawer/provider/DrawerProviderContext.d.ts +3 -4
- package/drawer/provider/DrawerProviderContext.js +2 -8
- package/drawer/provider/DrawerProviderContext.mjs +2 -7
- package/drawer/root/DrawerRoot.d.mts +3 -3
- package/drawer/root/DrawerRoot.d.ts +3 -3
- package/drawer/root/DrawerRoot.js +30 -34
- package/drawer/root/DrawerRoot.mjs +31 -35
- package/drawer/root/DrawerRootContext.d.mts +7 -2
- package/drawer/root/DrawerRootContext.d.ts +7 -2
- package/drawer/root/DrawerRootContext.js +1 -1
- package/drawer/root/DrawerRootContext.mjs +1 -1
- package/drawer/root/useDrawerSnapPoints.d.mts +6 -2
- package/drawer/root/useDrawerSnapPoints.d.ts +6 -2
- package/drawer/root/useDrawerSnapPoints.js +17 -25
- package/drawer/root/useDrawerSnapPoints.mjs +16 -25
- package/drawer/swipe-area/DrawerSwipeArea.js +116 -74
- package/drawer/swipe-area/DrawerSwipeArea.mjs +96 -54
- package/drawer/swipe-area/DrawerSwipeAreaDataAttributes.d.mts +21 -23
- package/drawer/swipe-area/DrawerSwipeAreaDataAttributes.d.ts +21 -23
- package/drawer/swipe-area/DrawerSwipeAreaDataAttributes.js +22 -25
- package/drawer/swipe-area/DrawerSwipeAreaDataAttributes.mjs +22 -24
- package/drawer/trigger/DrawerTrigger.d.mts +1 -1
- package/drawer/trigger/DrawerTrigger.d.ts +1 -1
- package/drawer/viewport/DrawerViewport.js +234 -365
- package/drawer/viewport/DrawerViewport.mjs +228 -359
- package/drawer/viewport/DrawerViewportContext.d.mts +1 -2
- package/drawer/viewport/DrawerViewportContext.d.ts +1 -2
- package/drawer/viewport/DrawerViewportContext.js +2 -8
- package/drawer/viewport/DrawerViewportContext.mjs +2 -7
- package/drawer/viewport/DrawerViewportCssVars.d.mts +6 -8
- package/drawer/viewport/DrawerViewportCssVars.d.ts +6 -8
- package/drawer/viewport/DrawerViewportCssVars.js +7 -10
- package/drawer/viewport/DrawerViewportCssVars.mjs +6 -9
- package/drawer/viewport/DrawerViewportDataAttributes.d.mts +20 -22
- package/drawer/viewport/DrawerViewportDataAttributes.d.ts +20 -22
- package/drawer/viewport/DrawerViewportDataAttributes.js +21 -24
- package/drawer/viewport/DrawerViewportDataAttributes.mjs +21 -23
- package/drawer/virtual-keyboard-provider/DrawerVirtualKeyboardProvider.d.mts +1 -1
- package/drawer/virtual-keyboard-provider/DrawerVirtualKeyboardProvider.d.ts +1 -1
- package/drawer/virtual-keyboard-provider/DrawerVirtualKeyboardProvider.js +254 -64
- package/drawer/virtual-keyboard-provider/DrawerVirtualKeyboardProvider.mjs +252 -62
- package/field/control/FieldControl.js +69 -22
- package/field/control/FieldControl.mjs +69 -22
- package/field/control/FieldControlDataAttributes.d.mts +28 -30
- package/field/control/FieldControlDataAttributes.d.ts +28 -30
- package/field/control/FieldControlDataAttributes.js +29 -32
- package/field/control/FieldControlDataAttributes.mjs +28 -31
- package/field/description/FieldDescriptionDataAttributes.d.mts +28 -30
- package/field/description/FieldDescriptionDataAttributes.d.ts +28 -30
- package/field/description/FieldDescriptionDataAttributes.js +29 -32
- package/field/description/FieldDescriptionDataAttributes.mjs +28 -31
- package/field/error/FieldError.js +2 -2
- package/field/error/FieldError.mjs +2 -2
- package/field/error/FieldErrorDataAttributes.d.mts +36 -38
- package/field/error/FieldErrorDataAttributes.d.ts +36 -38
- package/field/error/FieldErrorDataAttributes.js +37 -40
- package/field/error/FieldErrorDataAttributes.mjs +37 -39
- package/field/item/FieldItem.js +0 -5
- package/field/item/FieldItem.mjs +0 -5
- package/field/item/FieldItemDataAttributes.d.mts +28 -30
- package/field/item/FieldItemDataAttributes.d.ts +28 -30
- package/field/item/FieldItemDataAttributes.js +29 -32
- package/field/item/FieldItemDataAttributes.mjs +28 -31
- package/field/label/FieldLabelDataAttributes.d.mts +28 -30
- package/field/label/FieldLabelDataAttributes.d.ts +28 -30
- package/field/label/FieldLabelDataAttributes.js +29 -32
- package/field/label/FieldLabelDataAttributes.mjs +28 -31
- package/field/root/FieldRoot.d.mts +3 -2
- package/field/root/FieldRoot.d.ts +3 -2
- package/field/root/FieldRoot.js +12 -17
- package/field/root/FieldRoot.mjs +12 -17
- package/field/root/FieldRootDataAttributes.d.mts +28 -30
- package/field/root/FieldRootDataAttributes.d.ts +28 -30
- package/field/root/FieldRootDataAttributes.js +29 -32
- package/field/root/FieldRootDataAttributes.mjs +28 -31
- package/field/root/useFieldValidation.d.mts +20 -4
- package/field/root/useFieldValidation.d.ts +20 -4
- package/field/root/useFieldValidation.js +159 -128
- package/field/root/useFieldValidation.mjs +158 -128
- package/field/validity/FieldValidity.js +4 -0
- package/field/validity/FieldValidity.mjs +4 -0
- package/fieldset/legend/FieldsetLegend.js +3 -10
- package/fieldset/legend/FieldsetLegend.mjs +4 -10
- package/fieldset/root/FieldsetRootContext.d.mts +1 -1
- package/fieldset/root/FieldsetRootContext.d.ts +1 -1
- package/floating-ui-react/components/FloatingDelayGroup.d.mts +2 -41
- package/floating-ui-react/components/FloatingDelayGroup.d.ts +2 -41
- package/floating-ui-react/components/FloatingDelayGroup.js +2 -10
- package/floating-ui-react/components/FloatingDelayGroup.mjs +2 -10
- package/floating-ui-react/components/FloatingFocusManager.d.mts +1 -7
- package/floating-ui-react/components/FloatingFocusManager.d.ts +1 -7
- package/floating-ui-react/components/FloatingFocusManager.js +41 -27
- package/floating-ui-react/components/FloatingFocusManager.mjs +41 -27
- package/floating-ui-react/components/FloatingPortal.d.mts +12 -14
- package/floating-ui-react/components/FloatingPortal.d.ts +12 -14
- package/floating-ui-react/components/FloatingPortal.js +13 -13
- package/floating-ui-react/components/FloatingPortal.mjs +13 -13
- package/floating-ui-react/components/FloatingRootStore.js +6 -6
- package/floating-ui-react/components/FloatingRootStore.mjs +7 -7
- package/floating-ui-react/components/FloatingTree.d.mts +1 -19
- package/floating-ui-react/components/FloatingTree.d.ts +1 -19
- package/floating-ui-react/hooks/useClick.js +5 -1
- package/floating-ui-react/hooks/useClick.mjs +6 -2
- package/floating-ui-react/hooks/useDismiss.d.mts +1 -1
- package/floating-ui-react/hooks/useDismiss.d.ts +1 -1
- package/floating-ui-react/hooks/useDismiss.js +67 -12
- package/floating-ui-react/hooks/useDismiss.mjs +68 -13
- package/floating-ui-react/hooks/useFloating.d.mts +9 -1
- package/floating-ui-react/hooks/useFloating.d.ts +9 -1
- package/floating-ui-react/hooks/useFloating.js +14 -2
- package/floating-ui-react/hooks/useFloating.mjs +13 -2
- package/floating-ui-react/hooks/useFloatingRootContext.js +0 -2
- package/floating-ui-react/hooks/useFloatingRootContext.mjs +0 -2
- package/floating-ui-react/hooks/useFocus.js +1 -0
- package/floating-ui-react/hooks/useFocus.mjs +1 -0
- package/floating-ui-react/hooks/useHoverReferenceInteraction.d.mts +12 -0
- package/floating-ui-react/hooks/useHoverReferenceInteraction.d.ts +12 -0
- package/floating-ui-react/hooks/useHoverReferenceInteraction.js +17 -5
- package/floating-ui-react/hooks/useHoverReferenceInteraction.mjs +17 -5
- package/floating-ui-react/hooks/useListNavigation.js +16 -3
- package/floating-ui-react/hooks/useListNavigation.mjs +16 -3
- package/floating-ui-react/hooks/useSyncedFloatingRootContext.d.mts +9 -4
- package/floating-ui-react/hooks/useSyncedFloatingRootContext.d.ts +9 -4
- package/floating-ui-react/hooks/useSyncedFloatingRootContext.js +5 -0
- package/floating-ui-react/hooks/useSyncedFloatingRootContext.mjs +6 -0
- package/floating-ui-react/hooks/useTypeahead.d.mts +5 -5
- package/floating-ui-react/hooks/useTypeahead.d.ts +5 -5
- package/floating-ui-react/hooks/useTypeahead.js +9 -14
- package/floating-ui-react/hooks/useTypeahead.mjs +9 -14
- package/floating-ui-react/index.d.mts +0 -4
- package/floating-ui-react/index.d.ts +0 -4
- package/floating-ui-react/index.mjs +12 -0
- package/floating-ui-react/middleware/arrow.js +11 -4
- package/floating-ui-react/middleware/arrow.mjs +11 -4
- package/floating-ui-react/utils/composite.js +7 -0
- package/floating-ui-react/utils/composite.mjs +7 -0
- package/floating-ui-react/utils/element.d.mts +1 -1
- package/floating-ui-react/utils/element.d.ts +1 -1
- package/floating-ui-react/utils/element.js +5 -3
- package/floating-ui-react/utils/element.mjs +4 -3
- package/form/Form.d.mts +1 -1
- package/form/Form.d.ts +1 -1
- package/form/Form.js +74 -53
- package/form/Form.mjs +74 -53
- package/index.js +1 -1
- package/index.mjs +1 -1
- package/input/InputDataAttributes.d.mts +28 -30
- package/input/InputDataAttributes.d.ts +28 -30
- package/input/InputDataAttributes.js +29 -32
- package/input/InputDataAttributes.mjs +28 -31
- package/internals/PrehydrationScript.d.mts +37 -0
- package/internals/PrehydrationScript.d.ts +37 -0
- package/internals/PrehydrationScript.js +59 -0
- package/internals/PrehydrationScript.mjs +54 -0
- package/internals/TransitionStatusDataAttributes.d.mts +8 -0
- package/internals/TransitionStatusDataAttributes.d.ts +8 -0
- package/internals/TransitionStatusDataAttributes.js +15 -0
- package/internals/TransitionStatusDataAttributes.mjs +9 -0
- package/internals/composite/composite.d.mts +2 -10
- package/internals/composite/composite.d.ts +2 -10
- package/internals/composite/composite.js +4 -12
- package/internals/composite/composite.mjs +3 -11
- package/internals/composite/index.d.mts +2 -1
- package/internals/composite/index.d.ts +2 -1
- package/internals/composite/index.js +11 -4
- package/internals/composite/index.mjs +1 -1
- package/internals/composite/item/CompositeItem.d.mts +0 -3
- package/internals/composite/item/CompositeItem.d.ts +0 -3
- package/internals/composite/item/CompositeItem.js +2 -4
- package/internals/composite/item/CompositeItem.mjs +2 -4
- package/internals/composite/item/useCompositeItem.d.mts +1 -1
- package/internals/composite/item/useCompositeItem.d.ts +1 -1
- package/internals/composite/list/CompositeList.d.mts +4 -4
- package/internals/composite/list/CompositeList.d.ts +4 -4
- package/internals/composite/list/CompositeList.js +173 -86
- package/internals/composite/list/CompositeList.mjs +173 -86
- package/internals/composite/list/CompositeListContext.d.mts +8 -4
- package/internals/composite/list/CompositeListContext.d.ts +8 -4
- package/internals/composite/list/CompositeListContext.js +1 -6
- package/internals/composite/list/CompositeListContext.mjs +1 -6
- package/internals/composite/list/useCompositeListItem.d.mts +11 -8
- package/internals/composite/list/useCompositeListItem.d.ts +11 -8
- package/internals/composite/list/useCompositeListItem.js +25 -32
- package/internals/composite/list/useCompositeListItem.mjs +25 -32
- package/internals/composite/root/CompositeRoot.d.mts +2 -5
- package/internals/composite/root/CompositeRoot.d.ts +2 -5
- package/internals/composite/root/CompositeRoot.js +0 -3
- package/internals/composite/root/CompositeRoot.mjs +0 -3
- package/internals/composite/root/useCompositeRoot.d.mts +0 -1
- package/internals/composite/root/useCompositeRoot.d.ts +0 -1
- package/internals/composite/root/useCompositeRoot.js +64 -42
- package/internals/composite/root/useCompositeRoot.mjs +64 -42
- package/internals/createBaseUIEventDetails.d.mts +1 -1
- package/internals/createBaseUIEventDetails.d.ts +1 -1
- package/internals/csp-context/CSPContext.d.mts +0 -6
- package/internals/csp-context/CSPContext.d.ts +0 -6
- package/internals/csp-context/CSPContext.js +0 -7
- package/internals/csp-context/CSPContext.mjs +0 -7
- package/internals/direction-context/DirectionContext.d.mts +0 -3
- package/internals/direction-context/DirectionContext.d.ts +0 -3
- package/internals/direction-context/DirectionContext.js +0 -3
- package/internals/direction-context/DirectionContext.mjs +0 -3
- package/internals/field-constants/constants.js +4 -3
- package/internals/field-constants/constants.mjs +1 -1
- package/internals/field-register-control/useFieldControlRegistration.d.mts +2 -1
- package/internals/field-register-control/useFieldControlRegistration.d.ts +2 -1
- package/internals/field-register-control/useFieldControlRegistration.js +29 -16
- package/internals/field-register-control/useFieldControlRegistration.mjs +29 -16
- package/internals/field-register-control/useRegisterFieldControl.js +13 -9
- package/internals/field-register-control/useRegisterFieldControl.mjs +13 -8
- package/internals/field-root-context/FieldRootContext.d.mts +0 -7
- package/internals/field-root-context/FieldRootContext.d.ts +0 -7
- package/internals/field-root-context/FieldRootContext.js +2 -9
- package/internals/field-root-context/FieldRootContext.mjs +3 -10
- package/internals/filter.js +1 -1
- package/internals/filter.mjs +1 -1
- package/internals/form-context/FormContext.d.mts +2 -1
- package/internals/form-context/FormContext.d.ts +2 -1
- package/internals/form-context/FormContext.js +5 -2
- package/internals/form-context/FormContext.mjs +5 -2
- package/{utils → internals}/getDisabledMountTransitionStyles.d.mts +1 -1
- package/{utils → internals}/getDisabledMountTransitionStyles.d.ts +1 -1
- package/{utils → internals}/getDisabledMountTransitionStyles.js +1 -1
- package/{utils → internals}/getDisabledMountTransitionStyles.mjs +1 -1
- package/internals/itemEquality.d.mts +4 -0
- package/internals/itemEquality.d.ts +4 -0
- package/internals/itemEquality.js +44 -2
- package/internals/itemEquality.mjs +41 -2
- package/internals/labelable-provider/LabelableContext.d.mts +3 -1
- package/internals/labelable-provider/LabelableContext.d.ts +3 -1
- package/internals/labelable-provider/LabelableContext.js +1 -0
- package/internals/labelable-provider/LabelableContext.mjs +1 -0
- package/internals/labelable-provider/LabelableProvider.d.mts +0 -5
- package/internals/labelable-provider/LabelableProvider.d.ts +0 -5
- package/internals/labelable-provider/LabelableProvider.js +21 -15
- package/internals/labelable-provider/LabelableProvider.mjs +21 -16
- package/internals/labelable-provider/useAriaLabelledBy.d.mts +0 -3
- package/internals/labelable-provider/useAriaLabelledBy.d.ts +0 -3
- package/internals/labelable-provider/useAriaLabelledBy.js +0 -3
- package/internals/labelable-provider/useAriaLabelledBy.mjs +0 -4
- package/internals/labelable-provider/useLabel.d.mts +3 -3
- package/internals/labelable-provider/useLabel.d.ts +3 -3
- package/internals/labelable-provider/useLabel.js +1 -1
- package/internals/labelable-provider/useLabel.mjs +1 -1
- package/internals/labelable-provider/useLabelableId.d.mts +6 -7
- package/internals/labelable-provider/useLabelableId.d.ts +6 -7
- package/internals/labelable-provider/useLabelableId.js +28 -21
- package/internals/labelable-provider/useLabelableId.mjs +28 -21
- package/internals/prehydrationScript.stub.d.mts +1 -0
- package/internals/prehydrationScript.stub.d.ts +1 -0
- package/internals/prehydrationScript.stub.js +12 -0
- package/internals/prehydrationScript.stub.mjs +6 -0
- package/internals/resolveValueLabel.d.mts +1 -0
- package/internals/resolveValueLabel.d.ts +1 -0
- package/internals/resolveValueLabel.js +13 -3
- package/internals/resolveValueLabel.mjs +12 -3
- package/internals/stateAttributesMapping.d.mts +2 -10
- package/internals/stateAttributesMapping.d.ts +2 -10
- package/internals/stateAttributesMapping.js +3 -11
- package/internals/stateAttributesMapping.mjs +2 -11
- package/internals/temporal-adapter-luxon/TemporalAdapterLuxon.d.mts +1 -1
- package/internals/temporal-adapter-luxon/TemporalAdapterLuxon.d.ts +1 -1
- package/internals/use-button/useButton.js +30 -14
- package/internals/use-button/useButton.mjs +30 -14
- package/{utils → internals}/useAnchorPositioning.d.mts +11 -4
- package/{utils → internals}/useAnchorPositioning.d.ts +11 -4
- package/{utils → internals}/useAnchorPositioning.js +129 -91
- package/{utils → internals}/useAnchorPositioning.mjs +128 -91
- package/internals/useAnimationsFinished.d.mts +5 -3
- package/internals/useAnimationsFinished.d.ts +5 -3
- package/internals/useAnimationsFinished.js +51 -14
- package/internals/useAnimationsFinished.mjs +49 -13
- package/internals/useOpenChangeComplete.d.mts +6 -0
- package/internals/useOpenChangeComplete.d.ts +6 -0
- package/internals/useOpenChangeComplete.js +2 -1
- package/internals/useOpenChangeComplete.mjs +2 -1
- package/internals/usePressAndHold.d.mts +0 -1
- package/internals/usePressAndHold.d.ts +0 -1
- package/internals/usePressAndHold.js +12 -8
- package/internals/usePressAndHold.mjs +12 -8
- package/internals/useRenderElement.js +31 -19
- package/internals/useRenderElement.mjs +31 -19
- package/internals/useTransitionStatus.d.mts +5 -1
- package/internals/useTransitionStatus.d.ts +5 -1
- package/internals/useTransitionStatus.js +9 -2
- package/internals/useTransitionStatus.mjs +9 -2
- package/internals/useValueChanged.js +3 -6
- package/internals/useValueChanged.mjs +3 -6
- package/menu/arrow/MenuArrow.d.mts +1 -1
- package/menu/arrow/MenuArrow.d.ts +1 -1
- package/menu/arrow/MenuArrowDataAttributes.d.mts +22 -24
- package/menu/arrow/MenuArrowDataAttributes.d.ts +22 -24
- package/menu/arrow/MenuArrowDataAttributes.js +23 -26
- package/menu/arrow/MenuArrowDataAttributes.mjs +23 -25
- package/menu/backdrop/MenuBackdrop.js +1 -7
- package/menu/backdrop/MenuBackdrop.mjs +2 -7
- package/menu/backdrop/MenuBackdropDataAttributes.d.mts +16 -18
- package/menu/backdrop/MenuBackdropDataAttributes.d.ts +16 -18
- package/menu/backdrop/MenuBackdropDataAttributes.js +17 -20
- package/menu/backdrop/MenuBackdropDataAttributes.mjs +17 -19
- package/menu/checkbox-item/MenuCheckboxItem.js +6 -2
- package/menu/checkbox-item/MenuCheckboxItem.mjs +6 -2
- package/menu/checkbox-item/MenuCheckboxItemDataAttributes.d.mts +16 -18
- package/menu/checkbox-item/MenuCheckboxItemDataAttributes.d.ts +16 -18
- package/menu/checkbox-item/MenuCheckboxItemDataAttributes.js +17 -20
- package/menu/checkbox-item/MenuCheckboxItemDataAttributes.mjs +16 -19
- package/menu/checkbox-item-indicator/MenuCheckboxItemIndicator.js +4 -1
- package/menu/checkbox-item-indicator/MenuCheckboxItemIndicator.mjs +4 -1
- package/menu/checkbox-item-indicator/MenuCheckboxItemIndicatorDataAttributes.d.mts +20 -22
- package/menu/checkbox-item-indicator/MenuCheckboxItemIndicatorDataAttributes.d.ts +20 -22
- package/menu/checkbox-item-indicator/MenuCheckboxItemIndicatorDataAttributes.js +21 -24
- package/menu/checkbox-item-indicator/MenuCheckboxItemIndicatorDataAttributes.mjs +21 -23
- package/menu/group/MenuGroupContext.d.mts +1 -1
- package/menu/group/MenuGroupContext.d.ts +1 -1
- package/menu/group-label/MenuGroupLabel.js +2 -2
- package/menu/group-label/MenuGroupLabel.mjs +2 -2
- package/menu/item/MenuItem.js +4 -1
- package/menu/item/MenuItem.mjs +4 -1
- package/menu/item/MenuItemDataAttributes.d.mts +8 -10
- package/menu/item/MenuItemDataAttributes.d.ts +8 -10
- package/menu/item/MenuItemDataAttributes.js +9 -12
- package/menu/item/MenuItemDataAttributes.mjs +8 -11
- package/menu/item/useMenuItem.js +1 -3
- package/menu/item/useMenuItem.mjs +1 -3
- package/menu/item/useMenuItemCommonProps.d.mts +2 -3
- package/menu/item/useMenuItemCommonProps.d.ts +2 -3
- package/menu/item/useMenuItemCommonProps.js +7 -2
- package/menu/item/useMenuItemCommonProps.mjs +7 -2
- package/menu/link-item/MenuLinkItem.d.mts +1 -1
- package/menu/link-item/MenuLinkItem.d.ts +1 -1
- package/menu/link-item/MenuLinkItem.js +4 -1
- package/menu/link-item/MenuLinkItem.mjs +4 -1
- package/menu/link-item/MenuLinkItemDataAttributes.d.mts +4 -6
- package/menu/link-item/MenuLinkItemDataAttributes.d.ts +4 -6
- package/menu/link-item/MenuLinkItemDataAttributes.js +5 -8
- package/menu/link-item/MenuLinkItemDataAttributes.mjs +4 -7
- package/menu/popup/MenuPopup.d.mts +1 -1
- package/menu/popup/MenuPopup.d.ts +1 -1
- package/menu/popup/MenuPopup.js +5 -14
- package/menu/popup/MenuPopup.mjs +7 -15
- package/menu/popup/MenuPopupDataAttributes.d.mts +31 -33
- package/menu/popup/MenuPopupDataAttributes.d.ts +31 -33
- package/menu/popup/MenuPopupDataAttributes.js +32 -35
- package/menu/popup/MenuPopupDataAttributes.mjs +32 -34
- package/menu/portal/MenuPortal.d.mts +6 -2
- package/menu/portal/MenuPortal.d.ts +6 -2
- package/menu/portal/MenuPortal.js +9 -2
- package/menu/portal/MenuPortal.mjs +9 -2
- package/menu/positioner/MenuPositioner.d.mts +18 -2
- package/menu/positioner/MenuPositioner.d.ts +18 -2
- package/menu/positioner/MenuPositioner.js +8 -6
- package/menu/positioner/MenuPositioner.mjs +8 -6
- package/menu/positioner/MenuPositionerContext.d.mts +1 -1
- package/menu/positioner/MenuPositionerContext.d.ts +1 -1
- package/menu/positioner/MenuPositionerCssVars.d.mts +37 -27
- package/menu/positioner/MenuPositionerCssVars.d.ts +37 -27
- package/menu/positioner/MenuPositionerCssVars.js +38 -29
- package/menu/positioner/MenuPositionerCssVars.mjs +37 -28
- package/menu/positioner/MenuPositionerDataAttributes.d.mts +22 -24
- package/menu/positioner/MenuPositionerDataAttributes.d.ts +22 -24
- package/menu/positioner/MenuPositionerDataAttributes.js +23 -26
- package/menu/positioner/MenuPositionerDataAttributes.mjs +23 -25
- package/menu/radio-item/MenuRadioItem.js +5 -2
- package/menu/radio-item/MenuRadioItem.mjs +5 -2
- package/menu/radio-item/MenuRadioItemDataAttributes.d.mts +16 -18
- package/menu/radio-item/MenuRadioItemDataAttributes.d.ts +16 -18
- package/menu/radio-item/MenuRadioItemDataAttributes.js +17 -20
- package/menu/radio-item/MenuRadioItemDataAttributes.mjs +16 -19
- package/menu/radio-item-indicator/MenuRadioItemIndicator.js +4 -1
- package/menu/radio-item-indicator/MenuRadioItemIndicator.mjs +4 -1
- package/menu/radio-item-indicator/MenuRadioItemIndicatorDataAttributes.d.mts +20 -22
- package/menu/radio-item-indicator/MenuRadioItemIndicatorDataAttributes.d.ts +20 -22
- package/menu/radio-item-indicator/MenuRadioItemIndicatorDataAttributes.js +21 -24
- package/menu/radio-item-indicator/MenuRadioItemIndicatorDataAttributes.mjs +21 -23
- package/menu/root/MenuRoot.d.mts +12 -8
- package/menu/root/MenuRoot.d.ts +12 -8
- package/menu/root/MenuRoot.js +132 -30
- package/menu/root/MenuRoot.mjs +134 -32
- package/menu/store/MenuHandle.d.mts +18 -10
- package/menu/store/MenuHandle.d.ts +18 -10
- package/menu/store/MenuHandle.js +21 -20
- package/menu/store/MenuHandle.mjs +22 -19
- package/menu/store/MenuStore.d.mts +24 -9
- package/menu/store/MenuStore.d.ts +24 -9
- package/menu/store/MenuStore.js +78 -59
- package/menu/store/MenuStore.mjs +79 -61
- package/menu/submenu-root/MenuSubmenuRoot.d.mts +1 -1
- package/menu/submenu-root/MenuSubmenuRoot.d.ts +1 -1
- package/menu/submenu-trigger/MenuSubmenuTrigger.d.mts +1 -0
- package/menu/submenu-trigger/MenuSubmenuTrigger.d.ts +1 -0
- package/menu/submenu-trigger/MenuSubmenuTrigger.js +45 -13
- package/menu/submenu-trigger/MenuSubmenuTrigger.mjs +44 -13
- package/menu/submenu-trigger/MenuSubmenuTriggerDataAttributes.d.mts +12 -14
- package/menu/submenu-trigger/MenuSubmenuTriggerDataAttributes.d.ts +12 -14
- package/menu/submenu-trigger/MenuSubmenuTriggerDataAttributes.js +13 -16
- package/menu/submenu-trigger/MenuSubmenuTriggerDataAttributes.mjs +13 -15
- package/menu/trigger/MenuTrigger.js +7 -22
- package/menu/trigger/MenuTrigger.mjs +10 -24
- package/menu/trigger/MenuTriggerDataAttributes.d.mts +12 -10
- package/menu/trigger/MenuTriggerDataAttributes.d.ts +12 -10
- package/menu/trigger/MenuTriggerDataAttributes.js +13 -12
- package/menu/trigger/MenuTriggerDataAttributes.mjs +13 -11
- package/menu/utils/findRootOwnerId.js +1 -1
- package/menu/utils/findRootOwnerId.mjs +1 -1
- package/menu/utils/stateAttributesMapping.js +4 -3
- package/menu/utils/stateAttributesMapping.mjs +1 -1
- package/menu/viewport/MenuViewport.js +1 -9
- package/menu/viewport/MenuViewport.mjs +2 -9
- package/menu/viewport/MenuViewportCssVars.d.mts +12 -14
- package/menu/viewport/MenuViewportCssVars.d.ts +12 -14
- package/menu/viewport/MenuViewportCssVars.js +13 -16
- package/menu/viewport/MenuViewportCssVars.mjs +12 -15
- package/menu/viewport/MenuViewportDataAttributes.d.mts +24 -26
- package/menu/viewport/MenuViewportDataAttributes.d.ts +24 -26
- package/menu/viewport/MenuViewportDataAttributes.js +25 -28
- package/menu/viewport/MenuViewportDataAttributes.mjs +24 -27
- package/menubar/Menubar.js +4 -3
- package/menubar/Menubar.mjs +3 -2
- package/menubar/MenubarDataAttributes.d.mts +13 -15
- package/menubar/MenubarDataAttributes.d.ts +13 -15
- package/menubar/MenubarDataAttributes.js +14 -17
- package/menubar/MenubarDataAttributes.mjs +13 -16
- package/meter/root/MeterRoot.js +6 -8
- package/meter/root/MeterRoot.mjs +6 -8
- package/meter/root/MeterRootContext.d.mts +0 -2
- package/meter/root/MeterRootContext.d.ts +0 -2
- package/navigation-menu/arrow/NavigationMenuArrow.d.mts +1 -1
- package/navigation-menu/arrow/NavigationMenuArrow.d.ts +1 -1
- package/navigation-menu/arrow/NavigationMenuArrow.js +1 -1
- package/navigation-menu/arrow/NavigationMenuArrow.mjs +1 -1
- package/navigation-menu/arrow/NavigationMenuArrowDataAttributes.d.mts +22 -24
- package/navigation-menu/arrow/NavigationMenuArrowDataAttributes.d.ts +22 -24
- package/navigation-menu/arrow/NavigationMenuArrowDataAttributes.js +23 -26
- package/navigation-menu/arrow/NavigationMenuArrowDataAttributes.mjs +23 -25
- package/navigation-menu/backdrop/NavigationMenuBackdrop.js +1 -7
- package/navigation-menu/backdrop/NavigationMenuBackdrop.mjs +2 -7
- package/navigation-menu/backdrop/NavigationMenuBackdropDataAttributes.d.mts +16 -18
- package/navigation-menu/backdrop/NavigationMenuBackdropDataAttributes.d.ts +16 -18
- package/navigation-menu/backdrop/NavigationMenuBackdropDataAttributes.js +17 -20
- package/navigation-menu/backdrop/NavigationMenuBackdropDataAttributes.mjs +17 -19
- package/navigation-menu/content/NavigationMenuContent.js +2 -1
- package/navigation-menu/content/NavigationMenuContent.mjs +2 -1
- package/navigation-menu/content/NavigationMenuContentDataAttributes.d.mts +21 -23
- package/navigation-menu/content/NavigationMenuContentDataAttributes.d.ts +21 -23
- package/navigation-menu/content/NavigationMenuContentDataAttributes.js +22 -25
- package/navigation-menu/content/NavigationMenuContentDataAttributes.mjs +22 -24
- package/navigation-menu/icon/NavigationMenuIconDataAttributes.d.mts +4 -6
- package/navigation-menu/icon/NavigationMenuIconDataAttributes.d.ts +4 -6
- package/navigation-menu/icon/NavigationMenuIconDataAttributes.js +5 -8
- package/navigation-menu/icon/NavigationMenuIconDataAttributes.mjs +5 -7
- package/navigation-menu/link/NavigationMenuLink.d.mts +1 -1
- package/navigation-menu/link/NavigationMenuLink.d.ts +1 -1
- package/navigation-menu/link/NavigationMenuLinkDataAttributes.d.mts +4 -6
- package/navigation-menu/link/NavigationMenuLinkDataAttributes.d.ts +4 -6
- package/navigation-menu/link/NavigationMenuLinkDataAttributes.js +5 -8
- package/navigation-menu/link/NavigationMenuLinkDataAttributes.mjs +4 -7
- package/navigation-menu/popup/NavigationMenuPopup.d.mts +1 -1
- package/navigation-menu/popup/NavigationMenuPopup.d.ts +1 -1
- package/navigation-menu/popup/NavigationMenuPopup.js +2 -8
- package/navigation-menu/popup/NavigationMenuPopup.mjs +3 -8
- package/navigation-menu/popup/NavigationMenuPopupCssVars.d.mts +10 -12
- package/navigation-menu/popup/NavigationMenuPopupCssVars.d.ts +10 -12
- package/navigation-menu/popup/NavigationMenuPopupCssVars.js +11 -14
- package/navigation-menu/popup/NavigationMenuPopupCssVars.mjs +10 -13
- package/navigation-menu/popup/NavigationMenuPopupDataAttributes.d.mts +30 -32
- package/navigation-menu/popup/NavigationMenuPopupDataAttributes.d.ts +30 -32
- package/navigation-menu/popup/NavigationMenuPopupDataAttributes.js +31 -34
- package/navigation-menu/popup/NavigationMenuPopupDataAttributes.mjs +31 -33
- package/navigation-menu/portal/NavigationMenuPortal.d.mts +3 -3
- package/navigation-menu/portal/NavigationMenuPortal.d.ts +3 -3
- package/navigation-menu/positioner/NavigationMenuPositioner.d.mts +1 -1
- package/navigation-menu/positioner/NavigationMenuPositioner.d.ts +1 -1
- package/navigation-menu/positioner/NavigationMenuPositioner.js +7 -6
- package/navigation-menu/positioner/NavigationMenuPositioner.mjs +7 -6
- package/navigation-menu/positioner/NavigationMenuPositionerContext.d.mts +2 -2
- package/navigation-menu/positioner/NavigationMenuPositionerContext.d.ts +2 -2
- package/navigation-menu/positioner/NavigationMenuPositionerCssVars.d.mts +35 -37
- package/navigation-menu/positioner/NavigationMenuPositionerCssVars.d.ts +35 -37
- package/navigation-menu/positioner/NavigationMenuPositionerCssVars.js +36 -39
- package/navigation-menu/positioner/NavigationMenuPositionerCssVars.mjs +35 -38
- package/navigation-menu/positioner/NavigationMenuPositionerDataAttributes.d.mts +26 -28
- package/navigation-menu/positioner/NavigationMenuPositionerDataAttributes.d.ts +26 -28
- package/navigation-menu/positioner/NavigationMenuPositionerDataAttributes.js +27 -30
- package/navigation-menu/positioner/NavigationMenuPositionerDataAttributes.mjs +27 -29
- package/navigation-menu/root/NavigationMenuRoot.js +3 -3
- package/navigation-menu/root/NavigationMenuRoot.mjs +1 -1
- package/navigation-menu/trigger/NavigationMenuTrigger.d.mts +11 -1
- package/navigation-menu/trigger/NavigationMenuTrigger.d.ts +11 -1
- package/navigation-menu/trigger/NavigationMenuTrigger.js +72 -122
- package/navigation-menu/trigger/NavigationMenuTrigger.mjs +72 -122
- package/navigation-menu/trigger/NavigationMenuTriggerDataAttributes.d.mts +12 -10
- package/navigation-menu/trigger/NavigationMenuTriggerDataAttributes.d.ts +12 -10
- package/navigation-menu/trigger/NavigationMenuTriggerDataAttributes.js +13 -12
- package/navigation-menu/trigger/NavigationMenuTriggerDataAttributes.mjs +13 -11
- package/navigation-menu/utils/isOutsideMenuEvent.js +2 -5
- package/navigation-menu/utils/isOutsideMenuEvent.mjs +2 -5
- package/navigation-menu/utils/setSharedFixedSize.js +7 -6
- package/navigation-menu/utils/setSharedFixedSize.mjs +2 -2
- package/navigation-menu/utils/useNavigationMenuAnchorPositioning.d.mts +6 -0
- package/navigation-menu/utils/useNavigationMenuAnchorPositioning.d.ts +6 -0
- package/navigation-menu/utils/useNavigationMenuAnchorPositioning.js +16 -0
- package/navigation-menu/utils/useNavigationMenuAnchorPositioning.mjs +12 -0
- package/number-field/decrement/NumberFieldDecrementDataAttributes.d.mts +40 -42
- package/number-field/decrement/NumberFieldDecrementDataAttributes.d.ts +40 -42
- package/number-field/decrement/NumberFieldDecrementDataAttributes.js +41 -44
- package/number-field/decrement/NumberFieldDecrementDataAttributes.mjs +40 -43
- package/number-field/group/NumberFieldGroupDataAttributes.d.mts +40 -42
- package/number-field/group/NumberFieldGroupDataAttributes.d.ts +40 -42
- package/number-field/group/NumberFieldGroupDataAttributes.js +41 -44
- package/number-field/group/NumberFieldGroupDataAttributes.mjs +40 -43
- package/number-field/increment/NumberFieldIncrementDataAttributes.d.mts +40 -42
- package/number-field/increment/NumberFieldIncrementDataAttributes.d.ts +40 -42
- package/number-field/increment/NumberFieldIncrementDataAttributes.js +41 -44
- package/number-field/increment/NumberFieldIncrementDataAttributes.mjs +40 -43
- package/number-field/input/NumberFieldInput.d.mts +1 -1
- package/number-field/input/NumberFieldInput.d.ts +1 -1
- package/number-field/input/NumberFieldInput.js +41 -37
- package/number-field/input/NumberFieldInput.mjs +42 -38
- package/number-field/input/NumberFieldInputDataAttributes.d.mts +40 -42
- package/number-field/input/NumberFieldInputDataAttributes.d.ts +40 -42
- package/number-field/input/NumberFieldInputDataAttributes.js +41 -44
- package/number-field/input/NumberFieldInputDataAttributes.mjs +40 -43
- package/number-field/root/NumberFieldRoot.js +69 -61
- package/number-field/root/NumberFieldRoot.mjs +70 -62
- package/number-field/root/NumberFieldRootContext.d.mts +1 -7
- package/number-field/root/NumberFieldRootContext.d.ts +1 -7
- package/number-field/root/NumberFieldRootDataAttributes.d.mts +40 -42
- package/number-field/root/NumberFieldRootDataAttributes.d.ts +40 -42
- package/number-field/root/NumberFieldRootDataAttributes.js +41 -44
- package/number-field/root/NumberFieldRootDataAttributes.mjs +40 -43
- package/number-field/root/useNumberFieldStepperButton.js +109 -21
- package/number-field/root/useNumberFieldStepperButton.mjs +109 -21
- package/number-field/scrub-area/NumberFieldScrubArea.js +30 -33
- package/number-field/scrub-area/NumberFieldScrubArea.mjs +30 -33
- package/number-field/scrub-area/NumberFieldScrubAreaDataAttributes.d.mts +40 -42
- package/number-field/scrub-area/NumberFieldScrubAreaDataAttributes.d.ts +40 -42
- package/number-field/scrub-area/NumberFieldScrubAreaDataAttributes.js +41 -44
- package/number-field/scrub-area/NumberFieldScrubAreaDataAttributes.mjs +40 -43
- package/number-field/scrub-area-cursor/NumberFieldScrubAreaCursorDataAttributes.d.mts +40 -42
- package/number-field/scrub-area-cursor/NumberFieldScrubAreaCursorDataAttributes.d.ts +40 -42
- package/number-field/scrub-area-cursor/NumberFieldScrubAreaCursorDataAttributes.js +41 -44
- package/number-field/scrub-area-cursor/NumberFieldScrubAreaCursorDataAttributes.mjs +40 -43
- package/number-field/utils/constants.d.mts +1 -2
- package/number-field/utils/constants.d.ts +1 -2
- package/number-field/utils/constants.js +2 -3
- package/number-field/utils/constants.mjs +1 -2
- package/number-field/utils/parse.d.mts +27 -15
- package/number-field/utils/parse.d.ts +27 -15
- package/number-field/utils/parse.js +75 -136
- package/number-field/utils/parse.mjs +74 -135
- package/number-field/utils/types.d.mts +2 -1
- package/number-field/utils/types.d.ts +2 -1
- package/number-field/utils/validate.d.mts +1 -19
- package/number-field/utils/validate.d.ts +1 -19
- package/number-field/utils/validate.js +8 -16
- package/number-field/utils/validate.mjs +8 -16
- package/otp-field/input/OTPFieldInput.d.mts +1 -1
- package/otp-field/input/OTPFieldInput.d.ts +1 -1
- package/otp-field/input/OTPFieldInput.js +4 -1
- package/otp-field/input/OTPFieldInput.mjs +5 -2
- package/otp-field/input/OTPFieldInputDataAttributes.d.mts +40 -42
- package/otp-field/input/OTPFieldInputDataAttributes.d.ts +40 -42
- package/otp-field/input/OTPFieldInputDataAttributes.js +41 -44
- package/otp-field/input/OTPFieldInputDataAttributes.mjs +40 -43
- package/otp-field/root/OTPFieldRoot.js +14 -15
- package/otp-field/root/OTPFieldRoot.mjs +14 -15
- package/otp-field/root/OTPFieldRootDataAttributes.d.mts +40 -42
- package/otp-field/root/OTPFieldRootDataAttributes.d.ts +40 -42
- package/otp-field/root/OTPFieldRootDataAttributes.js +41 -44
- package/otp-field/root/OTPFieldRootDataAttributes.mjs +40 -43
- package/package.json +94 -48
- package/popover/arrow/PopoverArrow.d.mts +1 -1
- package/popover/arrow/PopoverArrow.d.ts +1 -1
- package/popover/arrow/PopoverArrow.js +1 -3
- package/popover/arrow/PopoverArrow.mjs +1 -3
- package/popover/arrow/PopoverArrowDataAttributes.d.mts +22 -24
- package/popover/arrow/PopoverArrowDataAttributes.d.ts +22 -24
- package/popover/arrow/PopoverArrowDataAttributes.js +23 -26
- package/popover/arrow/PopoverArrowDataAttributes.mjs +23 -25
- package/popover/backdrop/PopoverBackdrop.js +3 -11
- package/popover/backdrop/PopoverBackdrop.mjs +4 -11
- package/popover/backdrop/PopoverBackdropDataAttributes.d.mts +16 -18
- package/popover/backdrop/PopoverBackdropDataAttributes.d.ts +16 -18
- package/popover/backdrop/PopoverBackdropDataAttributes.js +17 -20
- package/popover/backdrop/PopoverBackdropDataAttributes.mjs +17 -19
- package/popover/close/PopoverClose.js +1 -3
- package/popover/close/PopoverClose.mjs +1 -3
- package/popover/description/PopoverDescription.js +1 -3
- package/popover/description/PopoverDescription.mjs +1 -3
- package/popover/popup/PopoverPopup.d.mts +1 -1
- package/popover/popup/PopoverPopup.d.ts +1 -1
- package/popover/popup/PopoverPopup.js +6 -17
- package/popover/popup/PopoverPopup.mjs +9 -19
- package/popover/popup/PopoverPopupCssVars.d.mts +8 -10
- package/popover/popup/PopoverPopupCssVars.d.ts +8 -10
- package/popover/popup/PopoverPopupCssVars.js +9 -12
- package/popover/popup/PopoverPopupCssVars.mjs +8 -11
- package/popover/popup/PopoverPopupDataAttributes.d.mts +31 -33
- package/popover/popup/PopoverPopupDataAttributes.d.ts +31 -33
- package/popover/popup/PopoverPopupDataAttributes.js +32 -35
- package/popover/popup/PopoverPopupDataAttributes.mjs +32 -34
- package/popover/portal/PopoverPortal.d.mts +6 -2
- package/popover/portal/PopoverPortal.d.ts +6 -2
- package/popover/portal/PopoverPortal.js +1 -3
- package/popover/portal/PopoverPortal.mjs +1 -3
- package/popover/positioner/PopoverPositioner.d.mts +1 -1
- package/popover/positioner/PopoverPositioner.d.ts +1 -1
- package/popover/positioner/PopoverPositioner.js +19 -22
- package/popover/positioner/PopoverPositioner.mjs +19 -22
- package/popover/positioner/PopoverPositionerContext.d.mts +1 -1
- package/popover/positioner/PopoverPositionerContext.d.ts +1 -1
- package/popover/positioner/PopoverPositionerCssVars.d.mts +37 -37
- package/popover/positioner/PopoverPositionerCssVars.d.ts +37 -37
- package/popover/positioner/PopoverPositionerCssVars.js +38 -39
- package/popover/positioner/PopoverPositionerCssVars.mjs +37 -38
- package/popover/positioner/PopoverPositionerDataAttributes.d.mts +22 -24
- package/popover/positioner/PopoverPositionerDataAttributes.d.ts +22 -24
- package/popover/positioner/PopoverPositionerDataAttributes.js +23 -26
- package/popover/positioner/PopoverPositionerDataAttributes.mjs +23 -25
- package/popover/root/PopoverRoot.d.mts +3 -1
- package/popover/root/PopoverRoot.d.ts +3 -1
- package/popover/root/PopoverRoot.js +33 -24
- package/popover/root/PopoverRoot.mjs +35 -26
- package/popover/root/PopoverRootContext.d.mts +1 -3
- package/popover/root/PopoverRootContext.d.ts +1 -3
- package/popover/store/PopoverHandle.d.mts +18 -10
- package/popover/store/PopoverHandle.d.ts +18 -10
- package/popover/store/PopoverHandle.js +21 -21
- package/popover/store/PopoverHandle.mjs +22 -20
- package/popover/store/PopoverStore.d.mts +22 -10
- package/popover/store/PopoverStore.d.ts +22 -10
- package/popover/store/PopoverStore.js +84 -73
- package/popover/store/PopoverStore.mjs +83 -73
- package/popover/title/PopoverTitle.js +1 -3
- package/popover/title/PopoverTitle.mjs +1 -3
- package/popover/trigger/PopoverTrigger.js +11 -12
- package/popover/trigger/PopoverTrigger.mjs +12 -13
- package/popover/trigger/PopoverTriggerDataAttributes.d.mts +12 -10
- package/popover/trigger/PopoverTriggerDataAttributes.d.ts +12 -10
- package/popover/trigger/PopoverTriggerDataAttributes.js +13 -12
- package/popover/trigger/PopoverTriggerDataAttributes.mjs +13 -11
- package/popover/viewport/PopoverViewport.js +2 -12
- package/popover/viewport/PopoverViewport.mjs +3 -12
- package/popover/viewport/PopoverViewportCssVars.d.mts +12 -14
- package/popover/viewport/PopoverViewportCssVars.d.ts +12 -14
- package/popover/viewport/PopoverViewportCssVars.js +13 -16
- package/popover/viewport/PopoverViewportCssVars.mjs +12 -15
- package/popover/viewport/PopoverViewportDataAttributes.d.mts +24 -26
- package/popover/viewport/PopoverViewportDataAttributes.d.ts +24 -26
- package/popover/viewport/PopoverViewportDataAttributes.js +25 -28
- package/popover/viewport/PopoverViewportDataAttributes.mjs +24 -27
- package/preview-card/arrow/PreviewCardArrow.d.mts +1 -1
- package/preview-card/arrow/PreviewCardArrow.d.ts +1 -1
- package/preview-card/arrow/PreviewCardArrowDataAttributes.d.mts +22 -24
- package/preview-card/arrow/PreviewCardArrowDataAttributes.d.ts +22 -24
- package/preview-card/arrow/PreviewCardArrowDataAttributes.js +23 -26
- package/preview-card/arrow/PreviewCardArrowDataAttributes.mjs +23 -25
- package/preview-card/backdrop/PreviewCardBackdrop.d.mts +1 -1
- package/preview-card/backdrop/PreviewCardBackdrop.d.ts +1 -1
- package/preview-card/backdrop/PreviewCardBackdrop.js +2 -8
- package/preview-card/backdrop/PreviewCardBackdrop.mjs +3 -8
- package/preview-card/backdrop/PreviewCardBackdropDataAttributes.d.mts +16 -18
- package/preview-card/backdrop/PreviewCardBackdropDataAttributes.d.ts +16 -18
- package/preview-card/backdrop/PreviewCardBackdropDataAttributes.js +17 -20
- package/preview-card/backdrop/PreviewCardBackdropDataAttributes.mjs +17 -19
- package/preview-card/popup/PreviewCardPopup.d.mts +1 -1
- package/preview-card/popup/PreviewCardPopup.d.ts +1 -1
- package/preview-card/popup/PreviewCardPopup.js +6 -12
- package/preview-card/popup/PreviewCardPopup.mjs +7 -12
- package/preview-card/popup/PreviewCardPopupDataAttributes.d.mts +26 -28
- package/preview-card/popup/PreviewCardPopupDataAttributes.d.ts +26 -28
- package/preview-card/popup/PreviewCardPopupDataAttributes.js +27 -30
- package/preview-card/popup/PreviewCardPopupDataAttributes.mjs +27 -29
- package/preview-card/portal/PreviewCardPortal.d.mts +6 -2
- package/preview-card/portal/PreviewCardPortal.d.ts +6 -2
- package/preview-card/portal/PreviewCardPortal.mjs +1 -2
- package/preview-card/positioner/PreviewCardPositioner.d.mts +1 -1
- package/preview-card/positioner/PreviewCardPositioner.d.ts +1 -1
- package/preview-card/positioner/PreviewCardPositioner.js +3 -4
- package/preview-card/positioner/PreviewCardPositioner.mjs +3 -4
- package/preview-card/positioner/PreviewCardPositionerContext.d.mts +1 -1
- package/preview-card/positioner/PreviewCardPositionerContext.d.ts +1 -1
- package/preview-card/positioner/PreviewCardPositionerContext.js +1 -1
- package/preview-card/positioner/PreviewCardPositionerContext.mjs +1 -1
- package/preview-card/positioner/PreviewCardPositionerCssVars.d.mts +37 -27
- package/preview-card/positioner/PreviewCardPositionerCssVars.d.ts +37 -27
- package/preview-card/positioner/PreviewCardPositionerCssVars.js +38 -29
- package/preview-card/positioner/PreviewCardPositionerCssVars.mjs +37 -28
- package/preview-card/positioner/PreviewCardPositionerDataAttributes.d.mts +22 -24
- package/preview-card/positioner/PreviewCardPositionerDataAttributes.d.ts +22 -24
- package/preview-card/positioner/PreviewCardPositionerDataAttributes.js +23 -26
- package/preview-card/positioner/PreviewCardPositionerDataAttributes.mjs +23 -25
- package/preview-card/root/PreviewCardRoot.d.mts +1 -1
- package/preview-card/root/PreviewCardRoot.d.ts +1 -1
- package/preview-card/root/PreviewCardRoot.js +14 -17
- package/preview-card/root/PreviewCardRoot.mjs +15 -18
- package/preview-card/store/PreviewCardHandle.d.mts +15 -12
- package/preview-card/store/PreviewCardHandle.d.ts +15 -12
- package/preview-card/store/PreviewCardHandle.js +18 -23
- package/preview-card/store/PreviewCardHandle.mjs +19 -23
- package/preview-card/store/PreviewCardStore.d.mts +22 -7
- package/preview-card/store/PreviewCardStore.d.ts +22 -7
- package/preview-card/store/PreviewCardStore.js +43 -31
- package/preview-card/store/PreviewCardStore.mjs +43 -32
- package/preview-card/trigger/PreviewCardTrigger.d.mts +1 -1
- package/preview-card/trigger/PreviewCardTrigger.d.ts +1 -1
- package/preview-card/trigger/PreviewCardTrigger.js +4 -8
- package/preview-card/trigger/PreviewCardTrigger.mjs +5 -9
- package/preview-card/trigger/PreviewCardTriggerDataAttributes.d.mts +4 -6
- package/preview-card/trigger/PreviewCardTriggerDataAttributes.d.ts +4 -6
- package/preview-card/trigger/PreviewCardTriggerDataAttributes.js +5 -8
- package/preview-card/trigger/PreviewCardTriggerDataAttributes.mjs +5 -7
- package/preview-card/viewport/PreviewCardViewport.js +1 -9
- package/preview-card/viewport/PreviewCardViewport.mjs +2 -9
- package/preview-card/viewport/PreviewCardViewportCssVars.d.mts +12 -14
- package/preview-card/viewport/PreviewCardViewportCssVars.d.ts +12 -14
- package/preview-card/viewport/PreviewCardViewportCssVars.js +13 -16
- package/preview-card/viewport/PreviewCardViewportCssVars.mjs +12 -15
- package/preview-card/viewport/PreviewCardViewportDataAttributes.d.mts +24 -26
- package/preview-card/viewport/PreviewCardViewportDataAttributes.d.ts +24 -26
- package/preview-card/viewport/PreviewCardViewportDataAttributes.js +25 -28
- package/preview-card/viewport/PreviewCardViewportDataAttributes.mjs +24 -27
- package/progress/indicator/ProgressIndicator.js +1 -5
- package/progress/indicator/ProgressIndicator.mjs +1 -5
- package/progress/indicator/ProgressIndicatorDataAttributes.d.mts +12 -14
- package/progress/indicator/ProgressIndicatorDataAttributes.d.ts +12 -14
- package/progress/indicator/ProgressIndicatorDataAttributes.js +13 -16
- package/progress/indicator/ProgressIndicatorDataAttributes.mjs +12 -15
- package/progress/label/ProgressLabelDataAttributes.d.mts +12 -14
- package/progress/label/ProgressLabelDataAttributes.d.ts +12 -14
- package/progress/label/ProgressLabelDataAttributes.js +13 -16
- package/progress/label/ProgressLabelDataAttributes.mjs +12 -15
- package/progress/root/ProgressRoot.d.mts +1 -2
- package/progress/root/ProgressRoot.d.ts +1 -2
- package/progress/root/ProgressRoot.js +29 -20
- package/progress/root/ProgressRoot.mjs +29 -20
- package/progress/root/ProgressRootContext.d.mts +4 -12
- package/progress/root/ProgressRootContext.d.ts +4 -12
- package/progress/root/ProgressRootDataAttributes.d.mts +12 -14
- package/progress/root/ProgressRootDataAttributes.d.ts +12 -14
- package/progress/root/ProgressRootDataAttributes.js +13 -16
- package/progress/root/ProgressRootDataAttributes.mjs +12 -15
- package/progress/root/stateAttributesMapping.js +5 -4
- package/progress/root/stateAttributesMapping.mjs +1 -1
- package/progress/track/ProgressTrackDataAttributes.d.mts +12 -14
- package/progress/track/ProgressTrackDataAttributes.d.ts +12 -14
- package/progress/track/ProgressTrackDataAttributes.js +13 -16
- package/progress/track/ProgressTrackDataAttributes.mjs +12 -15
- package/progress/value/ProgressValue.d.mts +1 -1
- package/progress/value/ProgressValue.d.ts +1 -1
- package/progress/value/ProgressValue.js +7 -3
- package/progress/value/ProgressValue.mjs +7 -3
- package/progress/value/ProgressValueDataAttributes.d.mts +12 -14
- package/progress/value/ProgressValueDataAttributes.d.ts +12 -14
- package/progress/value/ProgressValueDataAttributes.js +13 -16
- package/progress/value/ProgressValueDataAttributes.mjs +12 -15
- package/radio/indicator/RadioIndicator.js +2 -0
- package/radio/indicator/RadioIndicator.mjs +2 -0
- package/radio/indicator/RadioIndicatorDataAttributes.d.mts +52 -54
- package/radio/indicator/RadioIndicatorDataAttributes.d.ts +52 -54
- package/radio/indicator/RadioIndicatorDataAttributes.js +53 -56
- package/radio/indicator/RadioIndicatorDataAttributes.mjs +53 -55
- package/radio/root/RadioRoot.js +23 -32
- package/radio/root/RadioRoot.mjs +23 -32
- package/radio/root/RadioRootDataAttributes.d.mts +44 -46
- package/radio/root/RadioRootDataAttributes.d.ts +44 -46
- package/radio/root/RadioRootDataAttributes.js +45 -48
- package/radio/root/RadioRootDataAttributes.mjs +44 -47
- package/radio/utils/stateAttributesMapping.js +4 -3
- package/radio/utils/stateAttributesMapping.mjs +1 -1
- package/radio-group/RadioGroup.js +47 -32
- package/radio-group/RadioGroup.mjs +47 -32
- package/radio-group/RadioGroupContext.d.mts +0 -1
- package/radio-group/RadioGroupContext.d.ts +0 -1
- package/radio-group/RadioGroupDataAttributes.d.mts +4 -6
- package/radio-group/RadioGroupDataAttributes.d.ts +4 -6
- package/radio-group/RadioGroupDataAttributes.js +5 -8
- package/radio-group/RadioGroupDataAttributes.mjs +4 -7
- package/scroll-area/content/ScrollAreaContentDataAttributes.d.mts +28 -30
- package/scroll-area/content/ScrollAreaContentDataAttributes.d.ts +28 -30
- package/scroll-area/content/ScrollAreaContentDataAttributes.js +29 -32
- package/scroll-area/content/ScrollAreaContentDataAttributes.mjs +28 -31
- package/scroll-area/corner/ScrollAreaCorner.js +1 -0
- package/scroll-area/corner/ScrollAreaCorner.mjs +1 -0
- package/scroll-area/root/ScrollAreaRoot.js +121 -83
- package/scroll-area/root/ScrollAreaRoot.mjs +118 -80
- package/scroll-area/root/ScrollAreaRootContext.d.mts +1 -3
- package/scroll-area/root/ScrollAreaRootContext.d.ts +1 -3
- package/scroll-area/root/ScrollAreaRootCssVars.d.mts +10 -12
- package/scroll-area/root/ScrollAreaRootCssVars.d.ts +10 -12
- package/scroll-area/root/ScrollAreaRootCssVars.js +11 -14
- package/scroll-area/root/ScrollAreaRootCssVars.mjs +10 -13
- package/scroll-area/root/ScrollAreaRootDataAttributes.d.mts +28 -30
- package/scroll-area/root/ScrollAreaRootDataAttributes.d.ts +28 -30
- package/scroll-area/root/ScrollAreaRootDataAttributes.js +29 -32
- package/scroll-area/root/ScrollAreaRootDataAttributes.mjs +28 -31
- package/scroll-area/root/stateAttributes.js +11 -19
- package/scroll-area/root/stateAttributes.mjs +10 -19
- package/scroll-area/scrollbar/ScrollAreaScrollbar.js +66 -74
- package/scroll-area/scrollbar/ScrollAreaScrollbar.mjs +64 -71
- package/scroll-area/scrollbar/ScrollAreaScrollbarContext.d.mts +1 -3
- package/scroll-area/scrollbar/ScrollAreaScrollbarContext.d.ts +1 -3
- package/scroll-area/scrollbar/ScrollAreaScrollbarCssVars.d.mts +10 -12
- package/scroll-area/scrollbar/ScrollAreaScrollbarCssVars.d.ts +10 -12
- package/scroll-area/scrollbar/ScrollAreaScrollbarCssVars.js +11 -14
- package/scroll-area/scrollbar/ScrollAreaScrollbarCssVars.mjs +10 -13
- package/scroll-area/scrollbar/ScrollAreaScrollbarDataAttributes.d.mts +37 -39
- package/scroll-area/scrollbar/ScrollAreaScrollbarDataAttributes.d.ts +37 -39
- package/scroll-area/scrollbar/ScrollAreaScrollbarDataAttributes.js +38 -41
- package/scroll-area/scrollbar/ScrollAreaScrollbarDataAttributes.mjs +37 -40
- package/scroll-area/thumb/ScrollAreaThumb.js +10 -24
- package/scroll-area/thumb/ScrollAreaThumb.mjs +10 -24
- package/scroll-area/thumb/ScrollAreaThumbDataAttributes.d.mts +9 -11
- package/scroll-area/thumb/ScrollAreaThumbDataAttributes.d.ts +9 -11
- package/scroll-area/thumb/ScrollAreaThumbDataAttributes.js +10 -13
- package/scroll-area/thumb/ScrollAreaThumbDataAttributes.mjs +9 -12
- package/scroll-area/utils/getOffset.js +4 -3
- package/scroll-area/utils/getOffset.mjs +4 -3
- package/scroll-area/viewport/ScrollAreaViewport.js +78 -80
- package/scroll-area/viewport/ScrollAreaViewport.mjs +78 -81
- package/scroll-area/viewport/ScrollAreaViewportCssVars.d.mts +20 -22
- package/scroll-area/viewport/ScrollAreaViewportCssVars.d.ts +20 -22
- package/scroll-area/viewport/ScrollAreaViewportCssVars.js +21 -24
- package/scroll-area/viewport/ScrollAreaViewportCssVars.mjs +20 -23
- package/scroll-area/viewport/ScrollAreaViewportDataAttributes.d.mts +28 -30
- package/scroll-area/viewport/ScrollAreaViewportDataAttributes.d.ts +28 -30
- package/scroll-area/viewport/ScrollAreaViewportDataAttributes.js +29 -32
- package/scroll-area/viewport/ScrollAreaViewportDataAttributes.mjs +28 -31
- package/select/arrow/SelectArrow.d.mts +1 -1
- package/select/arrow/SelectArrow.d.ts +1 -1
- package/select/arrow/SelectArrow.js +3 -13
- package/select/arrow/SelectArrow.mjs +4 -13
- package/select/arrow/SelectArrowDataAttributes.d.mts +22 -24
- package/select/arrow/SelectArrowDataAttributes.d.ts +22 -24
- package/select/arrow/SelectArrowDataAttributes.js +23 -26
- package/select/arrow/SelectArrowDataAttributes.mjs +23 -25
- package/select/backdrop/SelectBackdrop.js +4 -8
- package/select/backdrop/SelectBackdrop.mjs +4 -8
- package/select/backdrop/SelectBackdropDataAttributes.d.mts +16 -18
- package/select/backdrop/SelectBackdropDataAttributes.d.ts +16 -18
- package/select/backdrop/SelectBackdropDataAttributes.js +17 -20
- package/select/backdrop/SelectBackdropDataAttributes.mjs +17 -19
- package/select/group-label/SelectGroupLabel.js +5 -1
- package/select/group-label/SelectGroupLabel.mjs +5 -1
- package/select/icon/SelectIcon.js +2 -6
- package/select/icon/SelectIcon.mjs +2 -6
- package/select/icon/SelectIconDataAttributes.d.mts +4 -6
- package/select/icon/SelectIconDataAttributes.d.ts +4 -6
- package/select/icon/SelectIconDataAttributes.js +5 -8
- package/select/icon/SelectIconDataAttributes.mjs +5 -7
- package/select/index.d.mts +2 -1
- package/select/index.d.ts +2 -1
- package/select/index.parts.d.mts +1 -1
- package/select/index.parts.d.ts +1 -1
- package/select/index.parts.js +2 -2
- package/select/index.parts.mjs +1 -1
- package/select/item/SelectItem.js +48 -60
- package/select/item/SelectItem.mjs +51 -63
- package/select/item/SelectItemContext.d.mts +0 -1
- package/select/item/SelectItemContext.d.ts +0 -1
- package/select/item/SelectItemDataAttributes.d.mts +12 -14
- package/select/item/SelectItemDataAttributes.d.ts +12 -14
- package/select/item/SelectItemDataAttributes.js +13 -16
- package/select/item/SelectItemDataAttributes.mjs +12 -15
- package/select/item-indicator/SelectItemIndicator.js +3 -2
- package/select/item-indicator/SelectItemIndicator.mjs +3 -2
- package/select/item-indicator/SelectItemIndicatorDataAttributes.d.mts +8 -10
- package/select/item-indicator/SelectItemIndicatorDataAttributes.d.ts +8 -10
- package/select/item-indicator/SelectItemIndicatorDataAttributes.js +9 -12
- package/select/item-indicator/SelectItemIndicatorDataAttributes.mjs +9 -11
- package/select/item-text/SelectItemText.js +7 -11
- package/select/item-text/SelectItemText.mjs +7 -11
- package/select/label/SelectLabel.js +5 -8
- package/select/label/SelectLabel.mjs +5 -8
- package/select/list/SelectList.js +10 -14
- package/select/list/SelectList.mjs +11 -15
- package/select/popup/SelectPopup.d.mts +1 -1
- package/select/popup/SelectPopup.d.ts +1 -1
- package/select/popup/SelectPopup.js +66 -95
- package/select/popup/SelectPopup.mjs +67 -96
- package/select/popup/SelectPopupDataAttributes.d.mts +26 -28
- package/select/popup/SelectPopupDataAttributes.d.ts +26 -28
- package/select/popup/SelectPopupDataAttributes.js +27 -30
- package/select/popup/SelectPopupDataAttributes.mjs +27 -29
- package/select/portal/SelectPortal.d.mts +7 -2
- package/select/portal/SelectPortal.d.ts +7 -2
- package/select/portal/SelectPortal.js +6 -14
- package/select/portal/SelectPortal.mjs +6 -14
- package/select/positioner/SelectPositioner.d.mts +1 -1
- package/select/positioner/SelectPositioner.d.ts +1 -1
- package/select/positioner/SelectPositioner.js +35 -64
- package/select/positioner/SelectPositioner.mjs +37 -66
- package/select/positioner/SelectPositionerContext.d.mts +1 -1
- package/select/positioner/SelectPositionerContext.d.ts +1 -1
- package/select/positioner/SelectPositionerCssVars.d.mts +25 -27
- package/select/positioner/SelectPositionerCssVars.d.ts +25 -27
- package/select/positioner/SelectPositionerCssVars.js +26 -29
- package/select/positioner/SelectPositionerCssVars.mjs +25 -28
- package/select/positioner/SelectPositionerDataAttributes.d.mts +22 -24
- package/select/positioner/SelectPositionerDataAttributes.d.ts +22 -24
- package/select/positioner/SelectPositionerDataAttributes.js +23 -26
- package/select/positioner/SelectPositionerDataAttributes.mjs +23 -25
- package/select/root/SelectRoot.d.mts +2 -0
- package/select/root/SelectRoot.d.ts +2 -0
- package/select/root/SelectRoot.js +143 -167
- package/select/root/SelectRoot.mjs +146 -170
- package/select/root/SelectRootContext.d.mts +10 -30
- package/select/root/SelectRootContext.d.ts +10 -30
- package/select/root/SelectRootContext.js +21 -6
- package/select/root/SelectRootContext.mjs +20 -5
- package/select/scroll-arrow/SelectScrollArrow.d.mts +1 -6
- package/select/scroll-arrow/SelectScrollArrow.d.ts +1 -6
- package/select/scroll-arrow/SelectScrollArrow.js +13 -28
- package/select/scroll-arrow/SelectScrollArrow.mjs +13 -28
- package/select/scroll-down-arrow/SelectScrollDownArrowDataAttributes.d.mts +22 -24
- package/select/scroll-down-arrow/SelectScrollDownArrowDataAttributes.d.ts +22 -24
- package/select/scroll-down-arrow/SelectScrollDownArrowDataAttributes.js +23 -26
- package/select/scroll-down-arrow/SelectScrollDownArrowDataAttributes.mjs +23 -25
- package/select/scroll-up-arrow/SelectScrollUpArrowDataAttributes.d.mts +22 -24
- package/select/scroll-up-arrow/SelectScrollUpArrowDataAttributes.d.ts +22 -24
- package/select/scroll-up-arrow/SelectScrollUpArrowDataAttributes.js +23 -26
- package/select/scroll-up-arrow/SelectScrollUpArrowDataAttributes.mjs +23 -25
- package/select/separator/SelectSeparator.d.mts +26 -0
- package/select/separator/SelectSeparator.d.ts +26 -0
- package/select/separator/SelectSeparator.js +15 -0
- package/select/separator/SelectSeparator.mjs +10 -0
- package/select/store.d.mts +32 -6
- package/select/store.d.ts +32 -6
- package/select/store.js +37 -35
- package/select/store.mjs +38 -35
- package/select/trigger/SelectTrigger.d.mts +1 -1
- package/select/trigger/SelectTrigger.d.ts +1 -1
- package/select/trigger/SelectTrigger.js +26 -35
- package/select/trigger/SelectTrigger.mjs +28 -37
- package/select/trigger/SelectTriggerDataAttributes.d.mts +53 -55
- package/select/trigger/SelectTriggerDataAttributes.d.ts +53 -55
- package/select/trigger/SelectTriggerDataAttributes.js +54 -57
- package/select/trigger/SelectTriggerDataAttributes.mjs +54 -56
- package/select/value/SelectValue.d.mts +2 -0
- package/select/value/SelectValue.d.ts +2 -0
- package/select/value/SelectValue.js +8 -13
- package/select/value/SelectValue.mjs +8 -13
- package/select/value/SelectValueDataAttributes.d.mts +4 -6
- package/select/value/SelectValueDataAttributes.d.ts +4 -6
- package/select/value/SelectValueDataAttributes.js +5 -8
- package/select/value/SelectValueDataAttributes.mjs +4 -7
- package/separator/SeparatorDataAttributes.d.mts +5 -7
- package/separator/SeparatorDataAttributes.d.ts +5 -7
- package/separator/SeparatorDataAttributes.js +6 -9
- package/separator/SeparatorDataAttributes.mjs +5 -8
- package/slider/control/SliderControl.js +62 -79
- package/slider/control/SliderControl.mjs +62 -79
- package/slider/control/SliderControlDataAttributes.d.mts +33 -35
- package/slider/control/SliderControlDataAttributes.d.ts +33 -35
- package/slider/control/SliderControlDataAttributes.js +34 -37
- package/slider/control/SliderControlDataAttributes.mjs +33 -36
- package/slider/indicator/SliderIndicator.js +15 -34
- package/slider/indicator/SliderIndicator.mjs +15 -34
- package/slider/indicator/SliderIndicatorDataAttributes.d.mts +33 -35
- package/slider/indicator/SliderIndicatorDataAttributes.d.ts +33 -35
- package/slider/indicator/SliderIndicatorDataAttributes.js +34 -37
- package/slider/indicator/SliderIndicatorDataAttributes.mjs +33 -36
- package/slider/root/SliderRoot.d.mts +5 -3
- package/slider/root/SliderRoot.d.ts +5 -3
- package/slider/root/SliderRoot.js +38 -49
- package/slider/root/SliderRoot.mjs +38 -49
- package/slider/root/SliderRootContext.d.mts +6 -4
- package/slider/root/SliderRootContext.d.ts +6 -4
- package/slider/root/SliderRootDataAttributes.d.mts +33 -35
- package/slider/root/SliderRootDataAttributes.d.ts +33 -35
- package/slider/root/SliderRootDataAttributes.js +34 -37
- package/slider/root/SliderRootDataAttributes.mjs +33 -36
- package/slider/root/stateAttributesMapping.js +7 -6
- package/slider/root/stateAttributesMapping.mjs +7 -6
- package/slider/thumb/SliderThumb.d.mts +1 -2
- package/slider/thumb/SliderThumb.d.ts +1 -2
- package/slider/thumb/SliderThumb.js +67 -71
- package/slider/thumb/SliderThumb.mjs +66 -70
- package/slider/thumb/SliderThumbDataAttributes.d.mts +37 -39
- package/slider/thumb/SliderThumbDataAttributes.d.ts +37 -39
- package/slider/thumb/SliderThumbDataAttributes.js +38 -41
- package/slider/thumb/SliderThumbDataAttributes.mjs +37 -40
- package/slider/track/SliderTrackDataAttributes.d.mts +33 -35
- package/slider/track/SliderTrackDataAttributes.d.ts +33 -35
- package/slider/track/SliderTrackDataAttributes.js +34 -37
- package/slider/track/SliderTrackDataAttributes.mjs +33 -36
- package/slider/utils/getMidpoint.d.mts +1 -2
- package/slider/utils/getMidpoint.d.ts +1 -2
- package/slider/utils/getMidpoint.js +2 -5
- package/slider/utils/getMidpoint.mjs +2 -5
- package/slider/utils/getPushedThumbValues.d.mts +4 -21
- package/slider/utils/getPushedThumbValues.d.ts +4 -21
- package/slider/utils/getPushedThumbValues.js +7 -16
- package/slider/utils/getPushedThumbValues.mjs +8 -16
- package/slider/utils/getSliderValue.js +9 -9
- package/slider/utils/getSliderValue.mjs +9 -9
- package/slider/utils/resolveThumbCollision.d.mts +5 -24
- package/slider/utils/resolveThumbCollision.d.ts +5 -24
- package/slider/utils/resolveThumbCollision.js +34 -65
- package/slider/utils/resolveThumbCollision.mjs +34 -65
- package/slider/utils/test-utils.d.mts +1 -11
- package/slider/utils/test-utils.d.ts +1 -11
- package/slider/utils/test-utils.js +1 -11
- package/slider/utils/test-utils.mjs +1 -11
- package/slider/utils/validateMinimumDistance.js +6 -7
- package/slider/utils/validateMinimumDistance.mjs +6 -7
- package/slider/value/SliderValue.js +7 -17
- package/slider/value/SliderValue.mjs +7 -17
- package/slider/value/SliderValueDataAttributes.d.mts +33 -35
- package/slider/value/SliderValueDataAttributes.d.ts +33 -35
- package/slider/value/SliderValueDataAttributes.js +34 -37
- package/slider/value/SliderValueDataAttributes.mjs +33 -36
- package/switch/root/SwitchRoot.js +20 -26
- package/switch/root/SwitchRoot.mjs +20 -26
- package/switch/root/SwitchRootDataAttributes.d.mts +44 -46
- package/switch/root/SwitchRootDataAttributes.d.ts +44 -46
- package/switch/root/SwitchRootDataAttributes.js +45 -48
- package/switch/root/SwitchRootDataAttributes.mjs +44 -47
- package/switch/stateAttributesMapping.js +4 -3
- package/switch/stateAttributesMapping.mjs +1 -1
- package/switch/thumb/SwitchThumbDataAttributes.d.mts +44 -46
- package/switch/thumb/SwitchThumbDataAttributes.d.ts +44 -46
- package/switch/thumb/SwitchThumbDataAttributes.js +45 -48
- package/switch/thumb/SwitchThumbDataAttributes.mjs +44 -47
- package/tabs/indicator/TabsIndicator.js +138 -33
- package/tabs/indicator/TabsIndicator.mjs +132 -27
- package/tabs/indicator/TabsIndicatorCssVars.d.mts +30 -32
- package/tabs/indicator/TabsIndicatorCssVars.d.ts +30 -32
- package/tabs/indicator/TabsIndicatorCssVars.js +31 -34
- package/tabs/indicator/TabsIndicatorCssVars.mjs +30 -33
- package/tabs/indicator/TabsIndicatorDataAttributes.d.mts +10 -12
- package/tabs/indicator/TabsIndicatorDataAttributes.d.ts +10 -12
- package/tabs/indicator/TabsIndicatorDataAttributes.js +11 -14
- package/tabs/indicator/TabsIndicatorDataAttributes.mjs +10 -13
- package/tabs/indicator/prehydrationScript.min.d.mts +1 -1
- package/tabs/indicator/prehydrationScript.min.d.ts +1 -1
- package/tabs/indicator/prehydrationScript.min.js +1 -1
- package/tabs/indicator/prehydrationScript.min.mjs +1 -1
- package/tabs/list/TabsList.js +1 -11
- package/tabs/list/TabsList.mjs +1 -11
- package/tabs/list/TabsListContext.d.mts +0 -5
- package/tabs/list/TabsListContext.d.ts +0 -5
- package/tabs/list/TabsListDataAttributes.d.mts +10 -12
- package/tabs/list/TabsListDataAttributes.d.ts +10 -12
- package/tabs/list/TabsListDataAttributes.js +11 -14
- package/tabs/list/TabsListDataAttributes.mjs +10 -13
- package/tabs/panel/TabsPanel.js +11 -20
- package/tabs/panel/TabsPanel.mjs +10 -19
- package/tabs/panel/TabsPanelDataAttributes.d.mts +26 -28
- package/tabs/panel/TabsPanelDataAttributes.d.ts +26 -28
- package/tabs/panel/TabsPanelDataAttributes.js +27 -30
- package/tabs/panel/TabsPanelDataAttributes.mjs +27 -29
- package/tabs/root/TabsRoot.js +40 -75
- package/tabs/root/TabsRoot.mjs +40 -75
- package/tabs/root/TabsRootContext.d.mts +4 -11
- package/tabs/root/TabsRootContext.d.ts +4 -11
- package/tabs/root/TabsRootDataAttributes.d.mts +10 -12
- package/tabs/root/TabsRootDataAttributes.d.ts +10 -12
- package/tabs/root/TabsRootDataAttributes.js +11 -14
- package/tabs/root/TabsRootDataAttributes.mjs +10 -13
- package/tabs/root/stateAttributesMapping.js +3 -2
- package/tabs/root/stateAttributesMapping.mjs +1 -1
- package/tabs/tab/TabsTab.js +42 -39
- package/tabs/tab/TabsTab.mjs +42 -39
- package/tabs/tab/TabsTabDataAttributes.d.mts +18 -20
- package/tabs/tab/TabsTabDataAttributes.d.ts +18 -20
- package/tabs/tab/TabsTabDataAttributes.js +19 -22
- package/tabs/tab/TabsTabDataAttributes.mjs +18 -21
- package/toast/action/ToastAction.js +2 -5
- package/toast/action/ToastAction.mjs +2 -5
- package/toast/action/ToastActionDataAttributes.d.mts +5 -7
- package/toast/action/ToastActionDataAttributes.d.ts +5 -7
- package/toast/action/ToastActionDataAttributes.js +6 -9
- package/toast/action/ToastActionDataAttributes.mjs +5 -8
- package/toast/arrow/ToastArrow.d.mts +1 -1
- package/toast/arrow/ToastArrow.d.ts +1 -1
- package/toast/arrow/ToastArrow.js +1 -2
- package/toast/arrow/ToastArrow.mjs +1 -2
- package/toast/arrow/ToastArrowDataAttributes.d.mts +14 -16
- package/toast/arrow/ToastArrowDataAttributes.d.ts +14 -16
- package/toast/arrow/ToastArrowDataAttributes.js +15 -18
- package/toast/arrow/ToastArrowDataAttributes.mjs +15 -17
- package/toast/close/ToastClose.js +3 -4
- package/toast/close/ToastClose.mjs +3 -4
- package/toast/close/ToastCloseDataAttributes.d.mts +5 -7
- package/toast/close/ToastCloseDataAttributes.d.ts +5 -7
- package/toast/close/ToastCloseDataAttributes.js +6 -9
- package/toast/close/ToastCloseDataAttributes.mjs +5 -8
- package/toast/content/ToastContent.js +3 -7
- package/toast/content/ToastContent.mjs +3 -7
- package/toast/content/ToastContentDataAttributes.d.mts +10 -12
- package/toast/content/ToastContentDataAttributes.d.ts +10 -12
- package/toast/content/ToastContentDataAttributes.js +11 -14
- package/toast/content/ToastContentDataAttributes.mjs +10 -13
- package/toast/createToastManager.d.mts +2 -2
- package/toast/createToastManager.d.ts +2 -2
- package/toast/createToastManager.js +2 -2
- package/toast/createToastManager.mjs +2 -2
- package/toast/description/ToastDescription.js +8 -23
- package/toast/description/ToastDescription.mjs +8 -23
- package/toast/description/ToastDescriptionDataAttributes.d.mts +5 -7
- package/toast/description/ToastDescriptionDataAttributes.d.ts +5 -7
- package/toast/description/ToastDescriptionDataAttributes.js +6 -9
- package/toast/description/ToastDescriptionDataAttributes.mjs +5 -8
- package/toast/portal/ToastPortal.d.mts +9 -3
- package/toast/portal/ToastPortal.d.ts +9 -3
- package/toast/portal/ToastPortal.js +10 -1
- package/toast/portal/ToastPortal.mjs +9 -2
- package/toast/positioner/ToastPositioner.d.mts +1 -1
- package/toast/positioner/ToastPositioner.d.ts +1 -1
- package/toast/positioner/ToastPositioner.js +5 -5
- package/toast/positioner/ToastPositioner.mjs +4 -4
- package/toast/positioner/ToastPositionerContext.d.mts +1 -1
- package/toast/positioner/ToastPositionerContext.d.ts +1 -1
- package/toast/positioner/ToastPositionerCssVars.d.mts +25 -27
- package/toast/positioner/ToastPositionerCssVars.d.ts +25 -27
- package/toast/positioner/ToastPositionerCssVars.js +26 -29
- package/toast/positioner/ToastPositionerCssVars.mjs +25 -28
- package/toast/positioner/ToastPositionerDataAttributes.d.mts +14 -16
- package/toast/positioner/ToastPositionerDataAttributes.d.ts +14 -16
- package/toast/positioner/ToastPositionerDataAttributes.js +15 -18
- package/toast/positioner/ToastPositionerDataAttributes.mjs +15 -17
- package/toast/provider/ToastProvider.js +20 -11
- package/toast/provider/ToastProvider.mjs +21 -12
- package/toast/root/ToastRoot.d.mts +2 -0
- package/toast/root/ToastRoot.d.ts +2 -0
- package/toast/root/ToastRoot.js +97 -141
- package/toast/root/ToastRoot.mjs +92 -136
- package/toast/root/ToastRootContext.d.mts +0 -6
- package/toast/root/ToastRootContext.d.ts +0 -6
- package/toast/root/ToastRootCssVars.d.mts +25 -27
- package/toast/root/ToastRootCssVars.d.ts +25 -27
- package/toast/root/ToastRootCssVars.js +26 -29
- package/toast/root/ToastRootCssVars.mjs +25 -28
- package/toast/root/ToastRootDataAttributes.d.mts +33 -35
- package/toast/root/ToastRootDataAttributes.d.ts +33 -35
- package/toast/root/ToastRootDataAttributes.js +34 -37
- package/toast/root/ToastRootDataAttributes.mjs +34 -36
- package/toast/store.d.mts +18 -23
- package/toast/store.d.ts +18 -23
- package/toast/store.js +59 -85
- package/toast/store.mjs +61 -86
- package/toast/title/ToastTitle.js +8 -23
- package/toast/title/ToastTitle.mjs +8 -23
- package/toast/title/ToastTitleDataAttributes.d.mts +5 -7
- package/toast/title/ToastTitleDataAttributes.d.ts +5 -7
- package/toast/title/ToastTitleDataAttributes.js +6 -9
- package/toast/title/ToastTitleDataAttributes.mjs +5 -8
- package/toast/useToastManager.d.mts +1 -1
- package/toast/useToastManager.d.ts +1 -1
- package/toast/useToastManager.js +1 -6
- package/toast/useToastManager.mjs +2 -6
- package/toast/utils/isRenderableNode.d.mts +3 -0
- package/toast/utils/isRenderableNode.d.ts +3 -0
- package/toast/utils/isRenderableNode.js +21 -0
- package/toast/utils/isRenderableNode.mjs +13 -0
- package/toast/utils/test-utils.d.mts +1 -8
- package/toast/utils/test-utils.d.ts +1 -8
- package/toast/utils/useToastLabelPart.d.mts +18 -0
- package/toast/utils/useToastLabelPart.d.ts +18 -0
- package/toast/utils/useToastLabelPart.js +52 -0
- package/toast/utils/useToastLabelPart.mjs +47 -0
- package/toast/viewport/ToastViewport.js +43 -78
- package/toast/viewport/ToastViewport.mjs +43 -78
- package/toast/viewport/ToastViewportCssVars.d.mts +5 -7
- package/toast/viewport/ToastViewportCssVars.d.ts +5 -7
- package/toast/viewport/ToastViewportCssVars.js +6 -9
- package/toast/viewport/ToastViewportCssVars.mjs +5 -8
- package/toast/viewport/ToastViewportDataAttributes.d.mts +5 -7
- package/toast/viewport/ToastViewportDataAttributes.d.ts +5 -7
- package/toast/viewport/ToastViewportDataAttributes.js +6 -9
- package/toast/viewport/ToastViewportDataAttributes.mjs +5 -8
- package/toggle/Toggle.js +2 -4
- package/toggle/Toggle.mjs +2 -4
- package/toggle/ToggleDataAttributes.d.mts +8 -10
- package/toggle/ToggleDataAttributes.d.ts +8 -10
- package/toggle/ToggleDataAttributes.js +9 -12
- package/toggle/ToggleDataAttributes.mjs +8 -11
- package/toggle-group/ToggleGroup.js +7 -20
- package/toggle-group/ToggleGroup.mjs +7 -20
- package/toggle-group/ToggleGroupContext.d.mts +1 -3
- package/toggle-group/ToggleGroupContext.d.ts +1 -3
- package/toggle-group/ToggleGroupContext.js +2 -8
- package/toggle-group/ToggleGroupContext.mjs +2 -7
- package/toggle-group/ToggleGroupDataAttributes.d.mts +13 -15
- package/toggle-group/ToggleGroupDataAttributes.d.ts +13 -15
- package/toggle-group/ToggleGroupDataAttributes.js +14 -17
- package/toggle-group/ToggleGroupDataAttributes.mjs +13 -16
- package/toolbar/button/ToolbarButton.js +2 -2
- package/toolbar/button/ToolbarButton.mjs +2 -2
- package/toolbar/button/ToolbarButtonDataAttributes.d.mts +13 -15
- package/toolbar/button/ToolbarButtonDataAttributes.d.ts +13 -15
- package/toolbar/button/ToolbarButtonDataAttributes.js +14 -17
- package/toolbar/button/ToolbarButtonDataAttributes.mjs +13 -16
- package/toolbar/group/ToolbarGroupContext.d.mts +1 -2
- package/toolbar/group/ToolbarGroupContext.d.ts +1 -2
- package/toolbar/group/ToolbarGroupContext.js +2 -8
- package/toolbar/group/ToolbarGroupContext.mjs +2 -7
- package/toolbar/group/ToolbarGroupDataAttributes.d.mts +9 -11
- package/toolbar/group/ToolbarGroupDataAttributes.d.ts +9 -11
- package/toolbar/group/ToolbarGroupDataAttributes.js +10 -13
- package/toolbar/group/ToolbarGroupDataAttributes.mjs +9 -12
- package/toolbar/input/ToolbarInput.js +8 -11
- package/toolbar/input/ToolbarInput.mjs +8 -11
- package/toolbar/input/ToolbarInputDataAttributes.d.mts +13 -15
- package/toolbar/input/ToolbarInputDataAttributes.d.ts +13 -15
- package/toolbar/input/ToolbarInputDataAttributes.js +14 -17
- package/toolbar/input/ToolbarInputDataAttributes.mjs +13 -16
- package/toolbar/link/ToolbarLink.d.mts +1 -1
- package/toolbar/link/ToolbarLink.d.ts +1 -1
- package/toolbar/link/ToolbarLinkDataAttributes.d.mts +5 -7
- package/toolbar/link/ToolbarLinkDataAttributes.d.ts +5 -7
- package/toolbar/link/ToolbarLinkDataAttributes.js +6 -9
- package/toolbar/link/ToolbarLinkDataAttributes.mjs +5 -8
- package/toolbar/root/ToolbarRoot.js +4 -5
- package/toolbar/root/ToolbarRoot.mjs +4 -5
- package/toolbar/root/ToolbarRootContext.d.mts +0 -3
- package/toolbar/root/ToolbarRootContext.d.ts +0 -3
- package/toolbar/root/ToolbarRootDataAttributes.d.mts +9 -11
- package/toolbar/root/ToolbarRootDataAttributes.d.ts +9 -11
- package/toolbar/root/ToolbarRootDataAttributes.js +10 -13
- package/toolbar/root/ToolbarRootDataAttributes.mjs +9 -12
- package/toolbar/separator/ToolbarSeparator.d.mts +2 -2
- package/toolbar/separator/ToolbarSeparator.d.ts +2 -2
- package/toolbar/separator/ToolbarSeparator.js +1 -4
- package/toolbar/separator/ToolbarSeparator.mjs +3 -5
- package/toolbar/separator/ToolbarSeparatorDataAttributes.d.mts +5 -7
- package/toolbar/separator/ToolbarSeparatorDataAttributes.d.ts +5 -7
- package/toolbar/separator/ToolbarSeparatorDataAttributes.js +6 -9
- package/toolbar/separator/ToolbarSeparatorDataAttributes.mjs +5 -8
- package/tooltip/arrow/TooltipArrow.d.mts +1 -1
- package/tooltip/arrow/TooltipArrow.d.ts +1 -1
- package/tooltip/arrow/TooltipArrowDataAttributes.d.mts +27 -29
- package/tooltip/arrow/TooltipArrowDataAttributes.d.ts +27 -29
- package/tooltip/arrow/TooltipArrowDataAttributes.js +28 -31
- package/tooltip/arrow/TooltipArrowDataAttributes.mjs +28 -30
- package/tooltip/popup/TooltipPopup.d.mts +1 -1
- package/tooltip/popup/TooltipPopup.d.ts +1 -1
- package/tooltip/popup/TooltipPopup.js +4 -9
- package/tooltip/popup/TooltipPopup.mjs +5 -9
- package/tooltip/popup/TooltipPopupDataAttributes.d.mts +31 -33
- package/tooltip/popup/TooltipPopupDataAttributes.d.ts +31 -33
- package/tooltip/popup/TooltipPopupDataAttributes.js +32 -35
- package/tooltip/popup/TooltipPopupDataAttributes.mjs +32 -34
- package/tooltip/portal/TooltipPortal.d.mts +6 -2
- package/tooltip/portal/TooltipPortal.d.ts +6 -2
- package/tooltip/portal/TooltipPortal.mjs +1 -2
- package/tooltip/positioner/TooltipPositioner.d.mts +1 -1
- package/tooltip/positioner/TooltipPositioner.d.ts +1 -1
- package/tooltip/positioner/TooltipPositioner.js +3 -4
- package/tooltip/positioner/TooltipPositioner.mjs +3 -4
- package/tooltip/positioner/TooltipPositionerContext.d.mts +1 -1
- package/tooltip/positioner/TooltipPositionerContext.d.ts +1 -1
- package/tooltip/positioner/TooltipPositionerCssVars.d.mts +37 -27
- package/tooltip/positioner/TooltipPositionerCssVars.d.ts +37 -27
- package/tooltip/positioner/TooltipPositionerCssVars.js +38 -29
- package/tooltip/positioner/TooltipPositionerCssVars.mjs +37 -28
- package/tooltip/positioner/TooltipPositionerDataAttributes.d.mts +22 -24
- package/tooltip/positioner/TooltipPositionerDataAttributes.d.ts +22 -24
- package/tooltip/positioner/TooltipPositionerDataAttributes.js +23 -26
- package/tooltip/positioner/TooltipPositionerDataAttributes.mjs +23 -25
- package/tooltip/provider/TooltipProvider.d.mts +1 -1
- package/tooltip/provider/TooltipProvider.d.ts +1 -1
- package/tooltip/provider/TooltipProvider.js +1 -5
- package/tooltip/provider/TooltipProvider.mjs +1 -5
- package/tooltip/provider/TooltipProviderContext.d.mts +5 -6
- package/tooltip/provider/TooltipProviderContext.d.ts +5 -6
- package/tooltip/provider/TooltipProviderContext.js +3 -0
- package/tooltip/provider/TooltipProviderContext.mjs +4 -0
- package/tooltip/root/TooltipRoot.d.mts +1 -1
- package/tooltip/root/TooltipRoot.d.ts +1 -1
- package/tooltip/root/TooltipRoot.js +18 -17
- package/tooltip/root/TooltipRoot.mjs +19 -18
- package/tooltip/store/TooltipHandle.d.mts +15 -12
- package/tooltip/store/TooltipHandle.d.ts +15 -12
- package/tooltip/store/TooltipHandle.js +18 -23
- package/tooltip/store/TooltipHandle.mjs +19 -23
- package/tooltip/store/TooltipStore.d.mts +24 -6
- package/tooltip/store/TooltipStore.d.ts +24 -6
- package/tooltip/store/TooltipStore.js +54 -32
- package/tooltip/store/TooltipStore.mjs +54 -33
- package/tooltip/trigger/TooltipTrigger.d.mts +1 -1
- package/tooltip/trigger/TooltipTrigger.d.ts +1 -1
- package/tooltip/trigger/TooltipTrigger.js +18 -26
- package/tooltip/trigger/TooltipTrigger.mjs +18 -26
- package/tooltip/trigger/TooltipTriggerDataAttributes.d.mts +8 -10
- package/tooltip/trigger/TooltipTriggerDataAttributes.d.ts +8 -10
- package/tooltip/trigger/TooltipTriggerDataAttributes.js +9 -12
- package/tooltip/trigger/TooltipTriggerDataAttributes.mjs +9 -11
- package/tooltip/viewport/TooltipViewport.js +1 -9
- package/tooltip/viewport/TooltipViewport.mjs +2 -9
- package/tooltip/viewport/TooltipViewportCssVars.d.mts +12 -14
- package/tooltip/viewport/TooltipViewportCssVars.d.ts +12 -14
- package/tooltip/viewport/TooltipViewportCssVars.js +13 -16
- package/tooltip/viewport/TooltipViewportCssVars.mjs +12 -15
- package/tooltip/viewport/TooltipViewportDataAttributes.d.mts +24 -26
- package/tooltip/viewport/TooltipViewportDataAttributes.d.ts +24 -26
- package/tooltip/viewport/TooltipViewportDataAttributes.js +25 -28
- package/tooltip/viewport/TooltipViewportDataAttributes.mjs +24 -27
- package/utils/CommonPopupCssVars.d.mts +12 -0
- package/utils/CommonPopupCssVars.d.ts +12 -0
- package/utils/CommonPopupCssVars.js +18 -0
- package/utils/CommonPopupCssVars.mjs +12 -0
- package/utils/CommonPopupDataAttributes.d.mts +30 -0
- package/utils/CommonPopupDataAttributes.d.ts +30 -0
- package/utils/CommonPopupDataAttributes.js +44 -0
- package/utils/CommonPopupDataAttributes.mjs +38 -0
- package/utils/CommonPositionerCssVars.d.mts +37 -0
- package/utils/CommonPositionerCssVars.d.ts +37 -0
- package/utils/CommonPositionerCssVars.js +43 -0
- package/utils/CommonPositionerCssVars.mjs +37 -0
- package/utils/CommonTriggerDataAttributes.d.mts +8 -0
- package/utils/CommonTriggerDataAttributes.d.ts +8 -0
- package/utils/CommonTriggerDataAttributes.js +15 -0
- package/utils/CommonTriggerDataAttributes.mjs +9 -0
- package/utils/CommonViewportDataAttributes.d.mts +7 -0
- package/utils/CommonViewportDataAttributes.d.ts +7 -0
- package/utils/CommonViewportDataAttributes.js +13 -0
- package/utils/CommonViewportDataAttributes.mjs +7 -0
- package/utils/FloatingPortalLite.d.mts +7 -9
- package/utils/FloatingPortalLite.d.ts +7 -9
- package/utils/FloatingPortalLite.js +4 -4
- package/utils/FloatingPortalLite.mjs +4 -5
- package/utils/FocusGuard.d.mts +1 -5
- package/utils/FocusGuard.d.ts +1 -5
- package/utils/InternalBackdrop.d.mts +0 -4
- package/utils/InternalBackdrop.d.ts +0 -4
- package/utils/NullStore.d.mts +15 -0
- package/utils/NullStore.d.ts +15 -0
- package/utils/NullStore.js +23 -0
- package/utils/NullStore.mjs +16 -0
- package/utils/adaptiveOriginConstants.d.mts +8 -0
- package/utils/adaptiveOriginConstants.d.ts +8 -0
- package/utils/adaptiveOriginConstants.js +14 -0
- package/utils/adaptiveOriginConstants.mjs +8 -0
- package/utils/adaptiveOriginMiddleware.d.mts +0 -4
- package/utils/adaptiveOriginMiddleware.d.ts +0 -4
- package/utils/adaptiveOriginMiddleware.js +5 -8
- package/utils/adaptiveOriginMiddleware.mjs +1 -4
- package/utils/closePart.d.mts +1 -4
- package/utils/closePart.d.ts +1 -4
- package/utils/closePart.js +2 -13
- package/utils/closePart.mjs +1 -12
- package/utils/collapsibleOpenStateMapping.js +6 -5
- package/utils/collapsibleOpenStateMapping.mjs +2 -2
- package/utils/dispatchClickWithModifiers.d.mts +21 -0
- package/utils/dispatchClickWithModifiers.d.ts +21 -0
- package/utils/dispatchClickWithModifiers.js +30 -0
- package/utils/dispatchClickWithModifiers.mjs +24 -0
- package/utils/getElementAtPoint.d.mts +3 -1
- package/utils/getElementAtPoint.d.ts +3 -1
- package/utils/getElementAtPoint.js +5 -2
- package/utils/getElementAtPoint.mjs +5 -2
- package/utils/getElementTransform.d.mts +12 -0
- package/utils/getElementTransform.d.ts +12 -0
- package/utils/getElementTransform.js +40 -0
- package/utils/getElementTransform.mjs +35 -0
- package/utils/getPseudoElementBounds.d.mts +5 -0
- package/utils/getPseudoElementBounds.d.ts +5 -0
- package/utils/getPseudoElementBounds.js +14 -0
- package/utils/getPseudoElementBounds.mjs +13 -0
- package/utils/hideMiddleware.js +7 -4
- package/utils/hideMiddleware.mjs +7 -4
- package/utils/listbox-separator/ListboxSeparator.d.mts +18 -0
- package/utils/listbox-separator/ListboxSeparator.d.ts +18 -0
- package/utils/listbox-separator/ListboxSeparator.js +36 -0
- package/utils/listbox-separator/ListboxSeparator.mjs +31 -0
- package/utils/popupStateMapping.d.mts +15 -42
- package/utils/popupStateMapping.d.ts +15 -42
- package/utils/popupStateMapping.js +10 -45
- package/utils/popupStateMapping.mjs +8 -45
- package/utils/popups/index.d.mts +3 -1
- package/utils/popups/index.d.ts +3 -1
- package/utils/popups/index.js +22 -0
- package/utils/popups/index.mjs +3 -1
- package/utils/popups/popupHandle.d.mts +113 -0
- package/utils/popups/popupHandle.d.ts +113 -0
- package/utils/popups/popupHandle.js +229 -0
- package/utils/popups/popupHandle.mjs +222 -0
- package/utils/popups/popupStoreUtils.d.mts +73 -21
- package/utils/popups/popupStoreUtils.d.ts +73 -21
- package/utils/popups/popupStoreUtils.js +184 -92
- package/utils/popups/popupStoreUtils.mjs +181 -89
- package/utils/popups/popupTriggerMap.d.mts +3 -2
- package/utils/popups/popupTriggerMap.d.ts +3 -2
- package/utils/popups/popupTriggerMap.js +48 -21
- package/utils/popups/popupTriggerMap.mjs +48 -21
- package/utils/popups/store.d.mts +21 -5
- package/utils/popups/store.d.ts +21 -5
- package/utils/popups/store.js +46 -39
- package/utils/popups/store.mjs +46 -38
- package/utils/popups/usePopupHandleStore.d.mts +12 -0
- package/utils/popups/usePopupHandleStore.d.ts +12 -0
- package/utils/popups/usePopupHandleStore.js +33 -0
- package/utils/popups/usePopupHandleStore.mjs +27 -0
- package/utils/scrollEdges.js +1 -1
- package/utils/scrollEdges.mjs +1 -1
- package/utils/scrollable.d.mts +2 -0
- package/utils/scrollable.d.ts +2 -0
- package/utils/scrollable.js +20 -12
- package/utils/scrollable.mjs +18 -12
- package/utils/styles.d.mts +1 -1
- package/utils/styles.d.ts +1 -1
- package/utils/usePopupAutoResize.d.mts +1 -1
- package/utils/usePopupAutoResize.d.ts +1 -1
- package/utils/usePopupAutoResize.js +25 -26
- package/utils/usePopupAutoResize.mjs +26 -26
- package/utils/usePopupViewport.d.mts +5 -15
- package/utils/usePopupViewport.d.ts +5 -15
- package/utils/usePopupViewport.js +50 -17
- package/utils/usePopupViewport.mjs +49 -17
- package/utils/usePositioner.js +1 -1
- package/utils/usePositioner.mjs +1 -1
- package/utils/useRegisteredLabelId.d.mts +2 -1
- package/utils/useRegisteredLabelId.d.ts +2 -1
- package/utils/useRegisteredLabelId.js +1 -1
- package/utils/useRegisteredLabelId.mjs +1 -1
- package/utils/useSwipeDismiss.d.mts +0 -5
- package/utils/useSwipeDismiss.d.ts +0 -5
- package/utils/useSwipeDismiss.js +86 -146
- package/utils/useSwipeDismiss.mjs +86 -145
- package/internals/areArraysEqual.d.mts +0 -3
- package/internals/areArraysEqual.d.ts +0 -3
- package/internals/areArraysEqual.js +0 -9
- package/internals/areArraysEqual.mjs +0 -3
- package/internals/clamp.d.mts +0 -1
- package/internals/clamp.d.ts +0 -1
- package/internals/clamp.js +0 -9
- package/internals/clamp.mjs +0 -3
- package/internals/shadowDom.d.mts +0 -3
- package/internals/shadowDom.d.ts +0 -3
- package/internals/shadowDom.js +0 -48
- package/internals/shadowDom.mjs +0 -40
- package/number-field/root/useNumberFieldButton.d.mts +0 -21
- package/number-field/root/useNumberFieldButton.d.ts +0 -21
- package/number-field/root/useNumberFieldButton.js +0 -135
- package/number-field/root/useNumberFieldButton.mjs +0 -130
- package/number-field/utils/subscribeToVisualViewportResize.d.mts +0 -1
- package/number-field/utils/subscribeToVisualViewportResize.d.ts +0 -1
- package/number-field/utils/subscribeToVisualViewportResize.js +0 -23
- package/number-field/utils/subscribeToVisualViewportResize.mjs +0 -18
- package/select/portal/SelectPortalContext.d.mts +0 -3
- package/select/portal/SelectPortalContext.d.ts +0 -3
- package/select/portal/SelectPortalContext.js +0 -21
- package/select/portal/SelectPortalContext.mjs +0 -13
- package/slider/utils/replaceArrayItemAtIndex.d.mts +0 -1
- package/slider/utils/replaceArrayItemAtIndex.d.ts +0 -1
- package/slider/utils/replaceArrayItemAtIndex.js +0 -12
- package/slider/utils/replaceArrayItemAtIndex.mjs +0 -6
- package/slider/utils/valueArrayToPercentages.d.mts +0 -1
- package/slider/utils/valueArrayToPercentages.d.ts +0 -1
- package/slider/utils/valueArrayToPercentages.js +0 -15
- package/slider/utils/valueArrayToPercentages.mjs +0 -9
- package/utils/formatNumber.d.mts +0 -4
- package/utils/formatNumber.d.ts +0 -4
- package/utils/formatNumber.js +0 -41
- package/utils/formatNumber.mjs +0 -32
- package/utils/stringifyLocale.d.mts +0 -1
- package/utils/stringifyLocale.d.ts +0 -1
- package/utils/stringifyLocale.js +0 -15
- package/utils/stringifyLocale.mjs +0 -9
- /package/drawer/content/{DrawerContentDataAttributes.d.mts → drawerContentAttribute.d.mts} +0 -0
- /package/drawer/content/{DrawerContentDataAttributes.d.ts → drawerContentAttribute.d.ts} +0 -0
- /package/drawer/content/{DrawerContentDataAttributes.js → drawerContentAttribute.js} +0 -0
- /package/drawer/content/{DrawerContentDataAttributes.mjs → drawerContentAttribute.mjs} +0 -0
|
@@ -587,28 +587,613 @@ import { Combobox } from '@base-ui/react/combobox';
|
|
|
587
587
|
</Combobox.Root>;
|
|
588
588
|
```
|
|
589
589
|
|
|
590
|
-
##
|
|
590
|
+
## Item values
|
|
591
|
+
|
|
592
|
+
Each `<Combobox.Item>` takes a `value` prop identifying it. Pass the item being rendered:
|
|
593
|
+
|
|
594
|
+
```jsx title="Using item objects as values"
|
|
595
|
+
<Combobox.List>
|
|
596
|
+
{(item) => (
|
|
597
|
+
<Combobox.Item key={item.id} value={item}>
|
|
598
|
+
{item.label}
|
|
599
|
+
</Combobox.Item>
|
|
600
|
+
)}
|
|
601
|
+
</Combobox.List>
|
|
602
|
+
```
|
|
603
|
+
|
|
604
|
+
That item is what `value`, `defaultValue`, and `onValueChange` receive. To store IDs instead, see [Value selection with IDs](/react/components/combobox.md).
|
|
605
|
+
|
|
606
|
+
## Examples
|
|
607
|
+
|
|
608
|
+
### Typed wrapper component
|
|
609
|
+
|
|
610
|
+
The following example shows a typed wrapper around the Combobox component with correct type inference and type safety:
|
|
611
|
+
|
|
612
|
+
```tsx title="Specifying generic type parameters"
|
|
613
|
+
import * as React from 'react';
|
|
614
|
+
import { Combobox } from '@base-ui/react/combobox';
|
|
615
|
+
|
|
616
|
+
export function MyCombobox<Value, Multiple extends boolean | undefined = false, Item = Value>(
|
|
617
|
+
props: Combobox.Root.Props<Value, Multiple, Item>,
|
|
618
|
+
): React.JSX.Element {
|
|
619
|
+
return <Combobox.Root {...props}>{/* ... */}</Combobox.Root>;
|
|
620
|
+
}
|
|
621
|
+
```
|
|
622
|
+
|
|
623
|
+
The third `Item` type parameter is what lets the wrapper accept a `Combobox.createItems()` collection, whose rendered item type differs from its selection value. Omit it and a collection infers `Value` as the source item type, surfacing an error on `defaultValue` rather than on `items`.
|
|
624
|
+
|
|
625
|
+
### Value selection with IDs
|
|
626
|
+
|
|
627
|
+
When your app stores IDs rather than item objects, use `Combobox.createItems` with `getValue` and `getLabel` to derive each item's selection value and display label.
|
|
628
|
+
|
|
629
|
+
With static data, create the collection at module scope. The accessor parameters are inferred from `users`. Pass the derived ID to the `value` prop of `<Combobox.Item>`, not the item being rendered:
|
|
630
|
+
|
|
631
|
+
```jsx title="Using item IDs as values"
|
|
632
|
+
const items = Combobox.createItems(users, {
|
|
633
|
+
getValue: (user) => user.id,
|
|
634
|
+
getLabel: (user) => user.name,
|
|
635
|
+
});
|
|
636
|
+
|
|
637
|
+
<Combobox.Root items={items}>
|
|
638
|
+
<Combobox.List>
|
|
639
|
+
{(user) => (
|
|
640
|
+
<Combobox.Item key={user.id} value={user.id}>
|
|
641
|
+
{user.name}
|
|
642
|
+
</Combobox.Item>
|
|
643
|
+
)}
|
|
644
|
+
</Combobox.List>
|
|
645
|
+
</Combobox.Root>;
|
|
646
|
+
```
|
|
647
|
+
|
|
648
|
+
Selection props and events use the derived IDs, while list rendering continues to receive the original items. The derived label is also used for filtering and typeahead.
|
|
649
|
+
|
|
650
|
+
When the data is loaded or replaced at runtime, memoize the collection on it so that it is rebuilt only when the data changes:
|
|
651
|
+
|
|
652
|
+
```jsx title="Creating a collection from dynamic data"
|
|
653
|
+
const items = React.useMemo(
|
|
654
|
+
() =>
|
|
655
|
+
Combobox.createItems(users, {
|
|
656
|
+
getValue: (user) => user.id,
|
|
657
|
+
getLabel: (user) => user.name,
|
|
658
|
+
}),
|
|
659
|
+
[users],
|
|
660
|
+
);
|
|
661
|
+
```
|
|
662
|
+
|
|
663
|
+
## Demo
|
|
664
|
+
|
|
665
|
+
### Tailwind
|
|
666
|
+
|
|
667
|
+
This example shows how to implement the component using Tailwind CSS.
|
|
668
|
+
|
|
669
|
+
```tsx
|
|
670
|
+
/* index.tsx */
|
|
671
|
+
'use client';
|
|
672
|
+
import * as React from 'react';
|
|
673
|
+
import { Combobox } from '@base-ui/react/combobox';
|
|
674
|
+
|
|
675
|
+
export default function ExampleCreateItemsCombobox() {
|
|
676
|
+
const id = React.useId();
|
|
677
|
+
|
|
678
|
+
return (
|
|
679
|
+
<Combobox.Root items={items} defaultValue="banana">
|
|
680
|
+
<div className="relative flex flex-col gap-1 text-sm leading-5 font-bold text-neutral-950 dark:text-white">
|
|
681
|
+
<label htmlFor={id}>Choose a fruit</label>
|
|
682
|
+
<Combobox.InputGroup className="relative h-8 w-56 border border-neutral-950 bg-white dark:bg-neutral-950 focus-within:outline-2 focus-within:-outline-offset-1 focus-within:outline-neutral-950 dark:focus-within:outline-white dark:border-white [&>input]:pr-[calc(0.5rem+2rem)] has-[.combobox-clear]:[&>input]:pr-[calc(0.5rem+2rem*2)]">
|
|
683
|
+
<Combobox.Input
|
|
684
|
+
placeholder="e.g. Apple"
|
|
685
|
+
id={id}
|
|
686
|
+
className="h-full w-full border-0 bg-white pl-2 dark:bg-neutral-950 text-sm any-pointer-coarse:text-base font-normal text-neutral-950 outline-none placeholder:text-neutral-500 dark:placeholder:text-neutral-400 dark:text-white"
|
|
687
|
+
/>
|
|
688
|
+
<div className="absolute right-0 bottom-0 flex h-full items-center justify-center text-neutral-500 dark:text-neutral-400">
|
|
689
|
+
<Combobox.Clear
|
|
690
|
+
className="combobox-clear flex h-full w-6 items-center justify-center border-0 bg-transparent p-0 text-neutral-950 dark:text-white"
|
|
691
|
+
aria-label="Clear selection"
|
|
692
|
+
>
|
|
693
|
+
<XIcon />
|
|
694
|
+
</Combobox.Clear>
|
|
695
|
+
<Combobox.Trigger
|
|
696
|
+
className="flex h-full w-6 items-center justify-center border-0 bg-transparent p-0 text-neutral-950 dark:text-white"
|
|
697
|
+
aria-label="Open popup"
|
|
698
|
+
>
|
|
699
|
+
<CaretDownIcon />
|
|
700
|
+
</Combobox.Trigger>
|
|
701
|
+
</div>
|
|
702
|
+
</Combobox.InputGroup>
|
|
703
|
+
</div>
|
|
704
|
+
|
|
705
|
+
<Combobox.Portal>
|
|
706
|
+
<Combobox.Positioner className="outline-none" sideOffset={4}>
|
|
707
|
+
<Combobox.Popup className="w-[var(--anchor-width)] max-w-[var(--available-width)] origin-[var(--transform-origin)] border border-neutral-950 bg-white text-neutral-950 shadow-[0.25rem_0.25rem_0_rgb(0_0_0_/_12%)] transition-[scale,opacity] duration-100 data-starting-style:scale-95 data-starting-style:opacity-0 data-ending-style:scale-95 data-ending-style:opacity-0 dark:border-white dark:bg-neutral-950 dark:text-white dark:shadow-none">
|
|
708
|
+
<Combobox.Empty>
|
|
709
|
+
<div className="py-4 pr-4 pl-2 text-sm leading-4 text-neutral-500 dark:text-neutral-400">
|
|
710
|
+
No fruits found.
|
|
711
|
+
</div>
|
|
712
|
+
</Combobox.Empty>
|
|
713
|
+
<Combobox.List className="max-h-[min(22.5rem,var(--available-height))] overflow-y-auto overscroll-contain py-1 scroll-py-1 outline-0 data-empty:p-0">
|
|
714
|
+
{(item) => (
|
|
715
|
+
<Combobox.Item
|
|
716
|
+
key={item.id}
|
|
717
|
+
value={item.id}
|
|
718
|
+
className="grid cursor-default grid-cols-[1rem_1fr] items-center gap-2 p-2 text-sm leading-4 outline-none select-none data-highlighted:relative data-highlighted:z-0 data-highlighted:text-white data-highlighted:before:absolute data-highlighted:before:inset-0 data-highlighted:before:z-[-1] data-highlighted:before:bg-neutral-950 dark:data-highlighted:text-neutral-950 dark:data-highlighted:before:bg-white"
|
|
719
|
+
>
|
|
720
|
+
<Combobox.ItemIndicator className="col-start-1">
|
|
721
|
+
<CheckIcon />
|
|
722
|
+
</Combobox.ItemIndicator>
|
|
723
|
+
<span className="col-start-2">{item.name}</span>
|
|
724
|
+
</Combobox.Item>
|
|
725
|
+
)}
|
|
726
|
+
</Combobox.List>
|
|
727
|
+
</Combobox.Popup>
|
|
728
|
+
</Combobox.Positioner>
|
|
729
|
+
</Combobox.Portal>
|
|
730
|
+
</Combobox.Root>
|
|
731
|
+
);
|
|
732
|
+
}
|
|
733
|
+
|
|
734
|
+
function CheckIcon(props: React.ComponentProps<'svg'>) {
|
|
735
|
+
return (
|
|
736
|
+
<svg
|
|
737
|
+
width="16"
|
|
738
|
+
height="16"
|
|
739
|
+
viewBox="0 0 16 16"
|
|
740
|
+
fill="none"
|
|
741
|
+
stroke="currentColor"
|
|
742
|
+
{...props}
|
|
743
|
+
style={{ display: 'block', ...props.style }}
|
|
744
|
+
>
|
|
745
|
+
<path d="m2.5 8.5 4 4 7-9" />
|
|
746
|
+
</svg>
|
|
747
|
+
);
|
|
748
|
+
}
|
|
749
|
+
|
|
750
|
+
function XIcon(props: React.ComponentProps<'svg'>) {
|
|
751
|
+
return (
|
|
752
|
+
<svg
|
|
753
|
+
width="16"
|
|
754
|
+
height="16"
|
|
755
|
+
viewBox="0 0 16 16"
|
|
756
|
+
fill="none"
|
|
757
|
+
stroke="currentColor"
|
|
758
|
+
strokeLinecap="square"
|
|
759
|
+
strokeLinejoin="round"
|
|
760
|
+
{...props}
|
|
761
|
+
style={{ display: 'block', ...props.style }}
|
|
762
|
+
>
|
|
763
|
+
<path d="m4.5 4.5 7 7m-7 0 7-7" />
|
|
764
|
+
</svg>
|
|
765
|
+
);
|
|
766
|
+
}
|
|
767
|
+
|
|
768
|
+
function CaretDownIcon(props: React.ComponentProps<'svg'>) {
|
|
769
|
+
return (
|
|
770
|
+
<svg
|
|
771
|
+
width="16"
|
|
772
|
+
height="16"
|
|
773
|
+
viewBox="0 0 16 16"
|
|
774
|
+
fill="currentColor"
|
|
775
|
+
{...props}
|
|
776
|
+
style={{ display: 'block', ...props.style }}
|
|
777
|
+
>
|
|
778
|
+
<path d="M12 6H4l4 4.5z" />
|
|
779
|
+
</svg>
|
|
780
|
+
);
|
|
781
|
+
}
|
|
782
|
+
|
|
783
|
+
interface Fruit {
|
|
784
|
+
id: string;
|
|
785
|
+
name: string;
|
|
786
|
+
}
|
|
787
|
+
|
|
788
|
+
const fruits: Fruit[] = [
|
|
789
|
+
{ id: 'apple', name: 'Apple' },
|
|
790
|
+
{ id: 'banana', name: 'Banana' },
|
|
791
|
+
{ id: 'orange', name: 'Orange' },
|
|
792
|
+
{ id: 'pineapple', name: 'Pineapple' },
|
|
793
|
+
{ id: 'grape', name: 'Grape' },
|
|
794
|
+
{ id: 'mango', name: 'Mango' },
|
|
795
|
+
{ id: 'strawberry', name: 'Strawberry' },
|
|
796
|
+
{ id: 'blueberry', name: 'Blueberry' },
|
|
797
|
+
{ id: 'raspberry', name: 'Raspberry' },
|
|
798
|
+
{ id: 'blackberry', name: 'Blackberry' },
|
|
799
|
+
{ id: 'cherry', name: 'Cherry' },
|
|
800
|
+
{ id: 'peach', name: 'Peach' },
|
|
801
|
+
{ id: 'pear', name: 'Pear' },
|
|
802
|
+
{ id: 'plum', name: 'Plum' },
|
|
803
|
+
{ id: 'kiwi', name: 'Kiwi' },
|
|
804
|
+
{ id: 'watermelon', name: 'Watermelon' },
|
|
805
|
+
];
|
|
806
|
+
|
|
807
|
+
const items = Combobox.createItems(fruits, {
|
|
808
|
+
getValue: (fruit) => fruit.id,
|
|
809
|
+
getLabel: (fruit) => fruit.name,
|
|
810
|
+
});
|
|
811
|
+
```
|
|
812
|
+
|
|
813
|
+
### CSS Modules
|
|
814
|
+
|
|
815
|
+
This example shows how to implement the component using CSS Modules.
|
|
816
|
+
|
|
817
|
+
```css
|
|
818
|
+
/* index.module.css */
|
|
819
|
+
.InputGroup {
|
|
820
|
+
box-sizing: border-box;
|
|
821
|
+
position: relative;
|
|
822
|
+
width: 14rem;
|
|
823
|
+
height: 2rem;
|
|
824
|
+
border: 1px solid oklch(14.5% 0 0deg);
|
|
825
|
+
background-color: white;
|
|
826
|
+
|
|
827
|
+
@media (prefers-color-scheme: dark) {
|
|
828
|
+
border: 1px solid white;
|
|
829
|
+
background-color: oklch(14.5% 0 0deg);
|
|
830
|
+
}
|
|
831
|
+
|
|
832
|
+
&:focus-within {
|
|
833
|
+
outline: 2px solid oklch(14.5% 0 0deg);
|
|
834
|
+
outline-offset: -1px;
|
|
835
|
+
|
|
836
|
+
@media (prefers-color-scheme: dark) {
|
|
837
|
+
outline-color: white;
|
|
838
|
+
}
|
|
839
|
+
}
|
|
840
|
+
|
|
841
|
+
&:has(.Clear) .Input {
|
|
842
|
+
padding: 0 calc(0.5rem + 2rem * 2) 0 0.5rem;
|
|
843
|
+
}
|
|
844
|
+
}
|
|
845
|
+
|
|
846
|
+
.Input {
|
|
847
|
+
box-sizing: border-box;
|
|
848
|
+
padding: 0 calc(0.5rem + 2rem) 0 0.5rem;
|
|
849
|
+
margin: 0;
|
|
850
|
+
border: none;
|
|
851
|
+
border-radius: 0;
|
|
852
|
+
width: 100%;
|
|
853
|
+
height: 100%;
|
|
854
|
+
font-family: inherit;
|
|
855
|
+
font-size: 0.875rem;
|
|
856
|
+
line-height: 1.25rem;
|
|
857
|
+
font-weight: 400;
|
|
858
|
+
background-color: white;
|
|
859
|
+
color: oklch(14.5% 0 0deg);
|
|
860
|
+
|
|
861
|
+
@media (any-pointer: coarse) {
|
|
862
|
+
font-size: 1rem;
|
|
863
|
+
line-height: 1.5rem;
|
|
864
|
+
}
|
|
865
|
+
|
|
866
|
+
@media (prefers-color-scheme: dark) {
|
|
867
|
+
background-color: oklch(14.5% 0 0deg);
|
|
868
|
+
color: white;
|
|
869
|
+
}
|
|
870
|
+
|
|
871
|
+
&::placeholder {
|
|
872
|
+
color: oklch(55.6% 0 0deg);
|
|
873
|
+
|
|
874
|
+
@media (prefers-color-scheme: dark) {
|
|
875
|
+
color: oklch(70.8% 0 0deg);
|
|
876
|
+
}
|
|
877
|
+
}
|
|
878
|
+
|
|
879
|
+
&:focus {
|
|
880
|
+
outline: none;
|
|
881
|
+
}
|
|
882
|
+
}
|
|
883
|
+
|
|
884
|
+
.Label {
|
|
885
|
+
display: flex;
|
|
886
|
+
flex-direction: column;
|
|
887
|
+
gap: 0.25rem;
|
|
888
|
+
font-size: 0.875rem;
|
|
889
|
+
line-height: 1.25rem;
|
|
890
|
+
font-weight: 700;
|
|
891
|
+
color: oklch(14.5% 0 0deg);
|
|
892
|
+
position: relative;
|
|
893
|
+
|
|
894
|
+
@media (prefers-color-scheme: dark) {
|
|
895
|
+
color: white;
|
|
896
|
+
}
|
|
897
|
+
}
|
|
898
|
+
|
|
899
|
+
.ActionButtons {
|
|
900
|
+
box-sizing: border-box;
|
|
901
|
+
position: absolute;
|
|
902
|
+
display: flex;
|
|
903
|
+
align-items: center;
|
|
904
|
+
justify-content: center;
|
|
905
|
+
bottom: 0;
|
|
906
|
+
height: 100%;
|
|
907
|
+
right: 0;
|
|
908
|
+
border: none;
|
|
909
|
+
color: oklch(55.6% 0 0deg);
|
|
910
|
+
padding: 0;
|
|
911
|
+
|
|
912
|
+
@media (prefers-color-scheme: dark) {
|
|
913
|
+
color: oklch(70.8% 0 0deg);
|
|
914
|
+
}
|
|
915
|
+
}
|
|
916
|
+
|
|
917
|
+
.Trigger,
|
|
918
|
+
.Clear {
|
|
919
|
+
box-sizing: border-box;
|
|
920
|
+
display: flex;
|
|
921
|
+
align-items: center;
|
|
922
|
+
justify-content: center;
|
|
923
|
+
width: 1.5rem;
|
|
924
|
+
height: 100%;
|
|
925
|
+
color: oklch(14.5% 0 0deg);
|
|
926
|
+
border: none;
|
|
927
|
+
padding: 0;
|
|
928
|
+
background: none;
|
|
929
|
+
|
|
930
|
+
@media (prefers-color-scheme: dark) {
|
|
931
|
+
color: white;
|
|
932
|
+
}
|
|
933
|
+
}
|
|
934
|
+
|
|
935
|
+
.Positioner {
|
|
936
|
+
outline: 0;
|
|
937
|
+
}
|
|
938
|
+
|
|
939
|
+
.Popup {
|
|
940
|
+
box-sizing: border-box;
|
|
941
|
+
background-color: white;
|
|
942
|
+
color: oklch(14.5% 0 0deg);
|
|
943
|
+
width: var(--anchor-width);
|
|
944
|
+
max-width: var(--available-width);
|
|
945
|
+
transition:
|
|
946
|
+
opacity 0.1s,
|
|
947
|
+
transform 0.1s;
|
|
948
|
+
transform-origin: var(--transform-origin);
|
|
949
|
+
|
|
950
|
+
border: 1px solid oklch(14.5% 0 0deg);
|
|
951
|
+
box-shadow: 0.25rem 0.25rem 0 rgb(0 0 0 / 12%);
|
|
952
|
+
|
|
953
|
+
@media (prefers-color-scheme: dark) {
|
|
954
|
+
background-color: oklch(14.5% 0 0deg);
|
|
955
|
+
color: white;
|
|
956
|
+
border: 1px solid white;
|
|
957
|
+
box-shadow: none;
|
|
958
|
+
}
|
|
959
|
+
|
|
960
|
+
&[data-starting-style],
|
|
961
|
+
&[data-ending-style] {
|
|
962
|
+
opacity: 0;
|
|
963
|
+
transform: scale(0.95);
|
|
964
|
+
}
|
|
965
|
+
}
|
|
966
|
+
|
|
967
|
+
.List {
|
|
968
|
+
box-sizing: border-box;
|
|
969
|
+
overflow-y: auto;
|
|
970
|
+
overscroll-behavior: contain;
|
|
971
|
+
padding-block: 0.25rem;
|
|
972
|
+
scroll-padding-block: 0.25rem;
|
|
973
|
+
outline: 0;
|
|
974
|
+
max-height: min(22.5rem, var(--available-height));
|
|
975
|
+
|
|
976
|
+
&[data-empty] {
|
|
977
|
+
padding: 0;
|
|
978
|
+
}
|
|
979
|
+
}
|
|
980
|
+
|
|
981
|
+
.Item {
|
|
982
|
+
box-sizing: border-box;
|
|
983
|
+
outline: 0;
|
|
984
|
+
cursor: default;
|
|
985
|
+
-webkit-user-select: none;
|
|
986
|
+
user-select: none;
|
|
987
|
+
padding-block: 0.5rem;
|
|
988
|
+
padding-left: 0.5rem;
|
|
989
|
+
padding-right: 0.5rem;
|
|
990
|
+
display: grid;
|
|
991
|
+
gap: 0.5rem;
|
|
992
|
+
align-items: center;
|
|
993
|
+
grid-template-columns: 1rem 1fr;
|
|
994
|
+
font-size: 0.875rem;
|
|
995
|
+
line-height: 1rem;
|
|
996
|
+
|
|
997
|
+
&[data-highlighted] {
|
|
998
|
+
z-index: 0;
|
|
999
|
+
position: relative;
|
|
1000
|
+
color: white;
|
|
1001
|
+
|
|
1002
|
+
@media (prefers-color-scheme: dark) {
|
|
1003
|
+
color: oklch(14.5% 0 0deg);
|
|
1004
|
+
}
|
|
1005
|
+
}
|
|
1006
|
+
|
|
1007
|
+
&[data-highlighted]::before {
|
|
1008
|
+
content: '';
|
|
1009
|
+
z-index: -1;
|
|
1010
|
+
position: absolute;
|
|
1011
|
+
inset-block: 0;
|
|
1012
|
+
inset-inline: 0;
|
|
1013
|
+
background-color: oklch(14.5% 0 0deg);
|
|
1014
|
+
|
|
1015
|
+
@media (prefers-color-scheme: dark) {
|
|
1016
|
+
background-color: white;
|
|
1017
|
+
}
|
|
1018
|
+
}
|
|
1019
|
+
}
|
|
1020
|
+
|
|
1021
|
+
.ItemText {
|
|
1022
|
+
grid-column-start: 2;
|
|
1023
|
+
}
|
|
1024
|
+
|
|
1025
|
+
.ItemIndicator {
|
|
1026
|
+
grid-column-start: 1;
|
|
1027
|
+
}
|
|
1028
|
+
|
|
1029
|
+
.Empty {
|
|
1030
|
+
box-sizing: border-box;
|
|
1031
|
+
padding: 1rem 1rem 1rem 0.5rem;
|
|
1032
|
+
font-size: 0.875rem;
|
|
1033
|
+
line-height: 1rem;
|
|
1034
|
+
color: oklch(55.6% 0 0deg);
|
|
1035
|
+
|
|
1036
|
+
@media (prefers-color-scheme: dark) {
|
|
1037
|
+
color: oklch(70.8% 0 0deg);
|
|
1038
|
+
}
|
|
1039
|
+
}
|
|
1040
|
+
```
|
|
1041
|
+
|
|
1042
|
+
```tsx
|
|
1043
|
+
/* index.tsx */
|
|
1044
|
+
'use client';
|
|
1045
|
+
import * as React from 'react';
|
|
1046
|
+
import { Combobox } from '@base-ui/react/combobox';
|
|
1047
|
+
import styles from './index.module.css';
|
|
1048
|
+
|
|
1049
|
+
export default function ExampleCreateItemsCombobox() {
|
|
1050
|
+
const id = React.useId();
|
|
1051
|
+
|
|
1052
|
+
return (
|
|
1053
|
+
<Combobox.Root items={items} defaultValue="banana">
|
|
1054
|
+
<div className={styles.Label}>
|
|
1055
|
+
<label htmlFor={id}>Choose a fruit</label>
|
|
1056
|
+
<Combobox.InputGroup className={styles.InputGroup}>
|
|
1057
|
+
<Combobox.Input placeholder="e.g. Apple" id={id} className={styles.Input} />
|
|
1058
|
+
<div className={styles.ActionButtons}>
|
|
1059
|
+
<Combobox.Clear className={styles.Clear} aria-label="Clear selection">
|
|
1060
|
+
<XIcon />
|
|
1061
|
+
</Combobox.Clear>
|
|
1062
|
+
<Combobox.Trigger className={styles.Trigger} aria-label="Open popup">
|
|
1063
|
+
<CaretDownIcon />
|
|
1064
|
+
</Combobox.Trigger>
|
|
1065
|
+
</div>
|
|
1066
|
+
</Combobox.InputGroup>
|
|
1067
|
+
</div>
|
|
1068
|
+
|
|
1069
|
+
<Combobox.Portal>
|
|
1070
|
+
<Combobox.Positioner className={styles.Positioner} sideOffset={4}>
|
|
1071
|
+
<Combobox.Popup className={styles.Popup}>
|
|
1072
|
+
<Combobox.Empty>
|
|
1073
|
+
<div className={styles.Empty}>No fruits found.</div>
|
|
1074
|
+
</Combobox.Empty>
|
|
1075
|
+
<Combobox.List className={styles.List}>
|
|
1076
|
+
{(item) => (
|
|
1077
|
+
<Combobox.Item key={item.id} value={item.id} className={styles.Item}>
|
|
1078
|
+
<Combobox.ItemIndicator className={styles.ItemIndicator}>
|
|
1079
|
+
<CheckIcon />
|
|
1080
|
+
</Combobox.ItemIndicator>
|
|
1081
|
+
<span className={styles.ItemText}>{item.name}</span>
|
|
1082
|
+
</Combobox.Item>
|
|
1083
|
+
)}
|
|
1084
|
+
</Combobox.List>
|
|
1085
|
+
</Combobox.Popup>
|
|
1086
|
+
</Combobox.Positioner>
|
|
1087
|
+
</Combobox.Portal>
|
|
1088
|
+
</Combobox.Root>
|
|
1089
|
+
);
|
|
1090
|
+
}
|
|
591
1091
|
|
|
592
|
-
|
|
593
|
-
|
|
1092
|
+
function CheckIcon(props: React.ComponentProps<'svg'>) {
|
|
1093
|
+
return (
|
|
1094
|
+
<svg
|
|
1095
|
+
width="16"
|
|
1096
|
+
height="16"
|
|
1097
|
+
viewBox="0 0 16 16"
|
|
1098
|
+
fill="none"
|
|
1099
|
+
stroke="currentColor"
|
|
1100
|
+
{...props}
|
|
1101
|
+
style={{ display: 'block', ...props.style }}
|
|
1102
|
+
>
|
|
1103
|
+
<path d="m2.5 8.5 4 4 7-9" />
|
|
1104
|
+
</svg>
|
|
1105
|
+
);
|
|
1106
|
+
}
|
|
594
1107
|
|
|
595
|
-
|
|
1108
|
+
function XIcon(props: React.ComponentProps<'svg'>) {
|
|
1109
|
+
return (
|
|
1110
|
+
<svg
|
|
1111
|
+
width="16"
|
|
1112
|
+
height="16"
|
|
1113
|
+
viewBox="0 0 16 16"
|
|
1114
|
+
fill="none"
|
|
1115
|
+
stroke="currentColor"
|
|
1116
|
+
strokeLinecap="square"
|
|
1117
|
+
strokeLinejoin="round"
|
|
1118
|
+
{...props}
|
|
1119
|
+
style={{ display: 'block', ...props.style }}
|
|
1120
|
+
>
|
|
1121
|
+
<path d="m4.5 4.5 7 7m-7 0 7-7" />
|
|
1122
|
+
</svg>
|
|
1123
|
+
);
|
|
1124
|
+
}
|
|
596
1125
|
|
|
597
|
-
|
|
1126
|
+
function CaretDownIcon(props: React.ComponentProps<'svg'>) {
|
|
1127
|
+
return (
|
|
1128
|
+
<svg
|
|
1129
|
+
width="16"
|
|
1130
|
+
height="16"
|
|
1131
|
+
viewBox="0 0 16 16"
|
|
1132
|
+
fill="currentColor"
|
|
1133
|
+
{...props}
|
|
1134
|
+
style={{ display: 'block', ...props.style }}
|
|
1135
|
+
>
|
|
1136
|
+
<path d="M12 6H4l4 4.5z" />
|
|
1137
|
+
</svg>
|
|
1138
|
+
);
|
|
1139
|
+
}
|
|
598
1140
|
|
|
599
|
-
|
|
1141
|
+
interface Fruit {
|
|
1142
|
+
id: string;
|
|
1143
|
+
name: string;
|
|
1144
|
+
}
|
|
600
1145
|
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
1146
|
+
const fruits: Fruit[] = [
|
|
1147
|
+
{ id: 'apple', name: 'Apple' },
|
|
1148
|
+
{ id: 'banana', name: 'Banana' },
|
|
1149
|
+
{ id: 'orange', name: 'Orange' },
|
|
1150
|
+
{ id: 'pineapple', name: 'Pineapple' },
|
|
1151
|
+
{ id: 'grape', name: 'Grape' },
|
|
1152
|
+
{ id: 'mango', name: 'Mango' },
|
|
1153
|
+
{ id: 'strawberry', name: 'Strawberry' },
|
|
1154
|
+
{ id: 'blueberry', name: 'Blueberry' },
|
|
1155
|
+
{ id: 'raspberry', name: 'Raspberry' },
|
|
1156
|
+
{ id: 'blackberry', name: 'Blackberry' },
|
|
1157
|
+
{ id: 'cherry', name: 'Cherry' },
|
|
1158
|
+
{ id: 'peach', name: 'Peach' },
|
|
1159
|
+
{ id: 'pear', name: 'Pear' },
|
|
1160
|
+
{ id: 'plum', name: 'Plum' },
|
|
1161
|
+
{ id: 'kiwi', name: 'Kiwi' },
|
|
1162
|
+
{ id: 'watermelon', name: 'Watermelon' },
|
|
1163
|
+
];
|
|
604
1164
|
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
1165
|
+
const items = Combobox.createItems(fruits, {
|
|
1166
|
+
getValue: (fruit) => fruit.id,
|
|
1167
|
+
getLabel: (fruit) => fruit.name,
|
|
1168
|
+
});
|
|
1169
|
+
```
|
|
1170
|
+
|
|
1171
|
+
As a rule of thumb, use primitive items for simple lists, object values when the selected record is useful application state, and `createItems()` when selection should use a stable primitive ID while rendering and filtering still use object records.
|
|
1172
|
+
|
|
1173
|
+
Stable IDs preserve item matching when an async data library replaces row objects during a refetch. With object values, use `isItemEqualToValue` to compare their IDs instead.
|
|
1174
|
+
|
|
1175
|
+
When results are filtered externally (for example, by a server-side search), `items` represents records known to the app, while `filteredItems` represents the current result window displayed in the popup. Pass source items rather than derived values to `filteredItems`, preserving the flat or grouped structure of `items`:
|
|
1176
|
+
|
|
1177
|
+
```tsx title="Displaying a window of async results"
|
|
1178
|
+
const items = React.useMemo(
|
|
1179
|
+
() =>
|
|
1180
|
+
Combobox.createItems(knownUsers, {
|
|
1181
|
+
getValue: (user) => user.id,
|
|
1182
|
+
getLabel: (user) => user.name,
|
|
1183
|
+
}),
|
|
1184
|
+
[knownUsers],
|
|
1185
|
+
);
|
|
1186
|
+
|
|
1187
|
+
<Combobox.Root
|
|
1188
|
+
items={items}
|
|
1189
|
+
filteredItems={searchResults}
|
|
1190
|
+
value={selectedUserId}
|
|
1191
|
+
onValueChange={setSelectedUserId}
|
|
1192
|
+
/>;
|
|
610
1193
|
```
|
|
611
1194
|
|
|
1195
|
+
Include the selected user's record in `knownUsers` so its label remains available when it is outside `searchResults`. Alternatively, provide `itemToStringLabel` when the label can be derived from the selected value alone.
|
|
1196
|
+
|
|
612
1197
|
### Multiple select
|
|
613
1198
|
|
|
614
1199
|
The combobox can allow multiple selections by adding the `multiple` prop to `<Combobox.Root>`.
|
|
@@ -639,34 +1224,41 @@ export default function ExampleMultipleCombobox() {
|
|
|
639
1224
|
Programming languages
|
|
640
1225
|
</label>
|
|
641
1226
|
<Combobox.InputGroup className="flex min-h-8 w-64 cursor-text flex-wrap items-center gap-0.5 border border-neutral-950 bg-white dark:bg-neutral-950 px-2 py-1 focus-within:outline-2 focus-within:-outline-offset-1 focus-within:outline-neutral-950 dark:focus-within:outline-white has-[button]:px-1 dark:border-white min-[32rem]:w-[22rem]">
|
|
642
|
-
<Combobox.
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
1227
|
+
<Combobox.Value>
|
|
1228
|
+
{(value: ProgrammingLanguage[]) => (
|
|
1229
|
+
<Combobox.Chips
|
|
1230
|
+
className="flex w-full flex-wrap items-center gap-1"
|
|
1231
|
+
aria-label={value.length > 0 ? 'Selected languages' : undefined}
|
|
1232
|
+
>
|
|
1233
|
+
{value.map((language) => (
|
|
1234
|
+
<Combobox.Chip
|
|
1235
|
+
key={language.id}
|
|
1236
|
+
className="group flex min-h-[calc(1.5rem-2px)] cursor-default items-center gap-1 overflow-hidden bg-neutral-100 py-0 pr-[0.2rem] pl-[0.4rem] text-sm leading-none text-neutral-950 outline-none focus-within:bg-neutral-950 focus-within:text-white [@media(hover:hover)]:data-highlighted:bg-neutral-950 [@media(hover:hover)]:data-highlighted:text-white dark:bg-neutral-800 dark:text-white dark:focus-within:bg-white dark:focus-within:text-neutral-950 dark:[@media(hover:hover)]:data-highlighted:bg-white dark:[@media(hover:hover)]:data-highlighted:text-neutral-950"
|
|
1237
|
+
aria-label={language.value}
|
|
1238
|
+
aria-description="Press Backspace or Delete to remove"
|
|
1239
|
+
>
|
|
1240
|
+
{language.value}
|
|
1241
|
+
<Combobox.ChipRemove
|
|
1242
|
+
className="flex size-4 items-center justify-center border-0 bg-transparent p-0 text-inherit hover:bg-neutral-200 group-focus-within:hover:bg-neutral-700 dark:hover:bg-neutral-700 dark:group-focus-within:hover:bg-neutral-200"
|
|
1243
|
+
aria-label={`Remove ${language.value}`}
|
|
651
1244
|
>
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
</Combobox.Chips>
|
|
1245
|
+
<XIcon />
|
|
1246
|
+
</Combobox.ChipRemove>
|
|
1247
|
+
</Combobox.Chip>
|
|
1248
|
+
))}
|
|
1249
|
+
<Combobox.Input
|
|
1250
|
+
id={id}
|
|
1251
|
+
placeholder={value.length > 0 ? '' : 'e.g. TypeScript'}
|
|
1252
|
+
aria-description={
|
|
1253
|
+
value.length > 0
|
|
1254
|
+
? `${value.length} selected. From the start of the input, press Left Arrow to focus the selected items`
|
|
1255
|
+
: undefined
|
|
1256
|
+
}
|
|
1257
|
+
className="h-[calc(1.5rem-2px)] min-w-12 flex-1 border-0 bg-white p-0 text-sm any-pointer-coarse:text-base dark:bg-neutral-950 font-normal text-neutral-950 outline-none placeholder:text-neutral-500 dark:placeholder:text-neutral-400 dark:text-white"
|
|
1258
|
+
/>
|
|
1259
|
+
</Combobox.Chips>
|
|
1260
|
+
)}
|
|
1261
|
+
</Combobox.Value>
|
|
670
1262
|
</Combobox.InputGroup>
|
|
671
1263
|
</div>
|
|
672
1264
|
|
|
@@ -1090,34 +1682,41 @@ export default function ExampleMultipleCombobox() {
|
|
|
1090
1682
|
Programming languages
|
|
1091
1683
|
</label>
|
|
1092
1684
|
<Combobox.InputGroup className={styles.InputGroup}>
|
|
1093
|
-
<Combobox.
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1685
|
+
<Combobox.Value>
|
|
1686
|
+
{(value: ProgrammingLanguage[]) => (
|
|
1687
|
+
<Combobox.Chips
|
|
1688
|
+
className={styles.Chips}
|
|
1689
|
+
aria-label={value.length > 0 ? 'Selected languages' : undefined}
|
|
1690
|
+
>
|
|
1691
|
+
{value.map((language) => (
|
|
1692
|
+
<Combobox.Chip
|
|
1693
|
+
key={language.id}
|
|
1694
|
+
className={styles.Chip}
|
|
1695
|
+
aria-label={language.value}
|
|
1696
|
+
aria-description="Press Backspace or Delete to remove"
|
|
1697
|
+
>
|
|
1698
|
+
{language.value}
|
|
1699
|
+
<Combobox.ChipRemove
|
|
1700
|
+
className={styles.ChipRemove}
|
|
1701
|
+
aria-label={`Remove ${language.value}`}
|
|
1102
1702
|
>
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
</Combobox.Chips>
|
|
1703
|
+
<XIcon />
|
|
1704
|
+
</Combobox.ChipRemove>
|
|
1705
|
+
</Combobox.Chip>
|
|
1706
|
+
))}
|
|
1707
|
+
<Combobox.Input
|
|
1708
|
+
id={id}
|
|
1709
|
+
placeholder={value.length > 0 ? '' : 'e.g. TypeScript'}
|
|
1710
|
+
aria-description={
|
|
1711
|
+
value.length > 0
|
|
1712
|
+
? `${value.length} selected. From the start of the input, press Left Arrow to focus the selected items`
|
|
1713
|
+
: undefined
|
|
1714
|
+
}
|
|
1715
|
+
className={styles.Input}
|
|
1716
|
+
/>
|
|
1717
|
+
</Combobox.Chips>
|
|
1718
|
+
)}
|
|
1719
|
+
</Combobox.Value>
|
|
1121
1720
|
</Combobox.InputGroup>
|
|
1122
1721
|
</div>
|
|
1123
1722
|
|
|
@@ -1198,6 +1797,9 @@ const langs: ProgrammingLanguage[] = [
|
|
|
1198
1797
|
];
|
|
1199
1798
|
```
|
|
1200
1799
|
|
|
1800
|
+
In order for screen readers to announce how to reach and remove the chips, add `aria-description` to `<Combobox.Chip>` and `<Combobox.Input>`, alongside the `aria-label` on `<Combobox.Chips>` and `<Combobox.ChipRemove>`.
|
|
1801
|
+
Base UI does not ship these strings. Translate them together with the rest of your interface.
|
|
1802
|
+
|
|
1201
1803
|
Visible chips can be limited by slicing the selected values rendered in `<Combobox.Value>`:
|
|
1202
1804
|
|
|
1203
1805
|
```tsx title="Limiting visible chips"
|
|
@@ -1212,7 +1814,7 @@ const CHIP_LIMIT = 3;
|
|
|
1212
1814
|
return (
|
|
1213
1815
|
<>
|
|
1214
1816
|
{visibleValue.map((item) => (
|
|
1215
|
-
<Combobox.Chip key={item}>
|
|
1817
|
+
<Combobox.Chip key={item} aria-description="Press Backspace or Delete to remove">
|
|
1216
1818
|
{item}
|
|
1217
1819
|
<Combobox.ChipRemove aria-label={`Remove ${item}`} />
|
|
1218
1820
|
</Combobox.Chip>
|
|
@@ -1220,13 +1822,53 @@ const CHIP_LIMIT = 3;
|
|
|
1220
1822
|
{/* @highlight-start */}
|
|
1221
1823
|
{hiddenCount > 0 && <span>{`+${hiddenCount} more`}</span>}
|
|
1222
1824
|
{/* @highlight-end */}
|
|
1223
|
-
<Combobox.Input
|
|
1825
|
+
<Combobox.Input
|
|
1826
|
+
aria-description={
|
|
1827
|
+
selectedValue.length > 0
|
|
1828
|
+
? `${selectedValue.length} selected. From the start of the input, press Left Arrow to focus the selected items`
|
|
1829
|
+
: undefined
|
|
1830
|
+
}
|
|
1831
|
+
/>
|
|
1224
1832
|
</>
|
|
1225
1833
|
);
|
|
1226
1834
|
}}
|
|
1227
1835
|
</Combobox.Value>;
|
|
1228
1836
|
```
|
|
1229
1837
|
|
|
1838
|
+
#### Keeping the filter after selection
|
|
1839
|
+
|
|
1840
|
+
In `multiple` mode, selecting an item clears the typed filter and closes the popup when the input is rendered outside it. To let users pick several results from one query, cancel the relevant change request.
|
|
1841
|
+
|
|
1842
|
+
Which request to cancel depends on the input's placement. When the input is outside the popup, cancel the `item-press` close request in `onOpenChange`. When it is inside, cancel the clear request in `onInputValueChange`, marked with `eventDetails.isItemPress`.
|
|
1843
|
+
|
|
1844
|
+
```jsx title="Input outside the popup"
|
|
1845
|
+
<Combobox.Root
|
|
1846
|
+
multiple
|
|
1847
|
+
onOpenChange={(open, eventDetails) => {
|
|
1848
|
+
if (!open && eventDetails.reason === 'item-press') {
|
|
1849
|
+
eventDetails.cancel();
|
|
1850
|
+
}
|
|
1851
|
+
}}
|
|
1852
|
+
>
|
|
1853
|
+
{/* ... */}
|
|
1854
|
+
</Combobox.Root>
|
|
1855
|
+
```
|
|
1856
|
+
|
|
1857
|
+
```jsx title="Input inside the popup"
|
|
1858
|
+
<Combobox.Root
|
|
1859
|
+
multiple
|
|
1860
|
+
onInputValueChange={(value, eventDetails) => {
|
|
1861
|
+
if (eventDetails.isItemPress) {
|
|
1862
|
+
eventDetails.cancel();
|
|
1863
|
+
}
|
|
1864
|
+
}}
|
|
1865
|
+
>
|
|
1866
|
+
{/* ... */}
|
|
1867
|
+
</Combobox.Root>
|
|
1868
|
+
```
|
|
1869
|
+
|
|
1870
|
+
The typed filter still resets once the popup closes.
|
|
1871
|
+
|
|
1230
1872
|
### Input inside popup
|
|
1231
1873
|
|
|
1232
1874
|
`<Combobox.Input>` can be rendered inside `<Combobox.Popup>` to create a searchable select popup.
|
|
@@ -1250,7 +1892,7 @@ export default function ExamplePopoverCombobox() {
|
|
|
1250
1892
|
<Combobox.Label className="cursor-default text-sm leading-5 font-bold text-neutral-950 dark:text-white">
|
|
1251
1893
|
Country
|
|
1252
1894
|
</Combobox.Label>
|
|
1253
|
-
<Combobox.Trigger className="flex h-8 min-w-40 cursor-default items-center justify-between gap-3 border border-neutral-950 bg-white pl-2 pr-1 text-sm leading-none whitespace-nowrap font-normal text-neutral-950 select-none hover:bg-neutral-100 active:bg-neutral-200 data-
|
|
1895
|
+
<Combobox.Trigger className="flex h-8 min-w-40 cursor-default items-center justify-between gap-3 border border-neutral-950 bg-white pl-2 pr-1 text-sm leading-none whitespace-nowrap font-normal text-neutral-950 select-none hover:bg-neutral-100 active:bg-neutral-200 data-pressed:bg-neutral-100 data-placeholder:text-neutral-500 focus-visible:outline-2 focus-visible:-outline-offset-1 focus-visible:outline-neutral-950 dark:data-placeholder:text-neutral-400 dark:focus-visible:outline-white dark:border-white dark:bg-neutral-950 dark:text-white dark:hover:bg-neutral-800 dark:active:bg-neutral-700 dark:data-pressed:bg-neutral-800">
|
|
1254
1896
|
<Combobox.Value placeholder="Select country" />
|
|
1255
1897
|
<Combobox.Icon className="text-neutral-950 dark:text-white">
|
|
1256
1898
|
<CaretUpDownIcon />
|
|
@@ -1605,7 +2247,7 @@ This example shows how to implement the component using CSS Modules.
|
|
|
1605
2247
|
}
|
|
1606
2248
|
}
|
|
1607
2249
|
|
|
1608
|
-
&[data-
|
|
2250
|
+
&[data-pressed] {
|
|
1609
2251
|
background-color: oklch(97% 0 0deg);
|
|
1610
2252
|
|
|
1611
2253
|
@media (prefers-color-scheme: dark) {
|
|
@@ -2810,6 +3452,7 @@ export default function ExampleAsyncSingleCombobox() {
|
|
|
2810
3452
|
<Combobox.Root
|
|
2811
3453
|
items={items}
|
|
2812
3454
|
itemToStringLabel={(user: DirectoryUser) => user.name}
|
|
3455
|
+
isItemEqualToValue={(item, value) => item.id === value.id}
|
|
2813
3456
|
filter={null}
|
|
2814
3457
|
onOpenChangeComplete={(open) => {
|
|
2815
3458
|
if (!open && selectedValue) {
|
|
@@ -3466,6 +4109,7 @@ export default function ExampleAsyncSingleCombobox() {
|
|
|
3466
4109
|
<Combobox.Root
|
|
3467
4110
|
items={items}
|
|
3468
4111
|
itemToStringLabel={(user: DirectoryUser) => user.name}
|
|
4112
|
+
isItemEqualToValue={(item, value) => item.id === value.id}
|
|
3469
4113
|
filter={null}
|
|
3470
4114
|
onOpenChangeComplete={(open) => {
|
|
3471
4115
|
if (!open && selectedValue) {
|
|
@@ -3830,6 +4474,7 @@ export default function ExampleAsyncMultipleCombobox() {
|
|
|
3830
4474
|
<Combobox.Root
|
|
3831
4475
|
items={items}
|
|
3832
4476
|
itemToStringLabel={(user: DirectoryUser) => user.name}
|
|
4477
|
+
isItemEqualToValue={(item, value) => item.id === value.id}
|
|
3833
4478
|
multiple
|
|
3834
4479
|
filter={null}
|
|
3835
4480
|
onOpenChangeComplete={(open) => {
|
|
@@ -3893,34 +4538,41 @@ export default function ExampleAsyncMultipleCombobox() {
|
|
|
3893
4538
|
Assign reviewers
|
|
3894
4539
|
</label>
|
|
3895
4540
|
<Combobox.InputGroup className="flex min-h-8 w-64 cursor-text flex-wrap items-center gap-0.5 border border-neutral-950 bg-white dark:bg-neutral-950 px-2 py-1 focus-within:outline-2 focus-within:-outline-offset-1 focus-within:outline-neutral-950 dark:focus-within:outline-white has-[button]:px-1 dark:border-white min-[32rem]:w-[22rem]">
|
|
3896
|
-
<Combobox.
|
|
3897
|
-
|
|
3898
|
-
|
|
3899
|
-
|
|
3900
|
-
|
|
3901
|
-
|
|
3902
|
-
|
|
3903
|
-
|
|
3904
|
-
|
|
4541
|
+
<Combobox.Value>
|
|
4542
|
+
{(value: DirectoryUser[]) => (
|
|
4543
|
+
<Combobox.Chips
|
|
4544
|
+
className="flex w-full flex-wrap items-center gap-1"
|
|
4545
|
+
aria-label={value.length > 0 ? 'Selected reviewers' : undefined}
|
|
4546
|
+
>
|
|
4547
|
+
{value.map((user) => (
|
|
4548
|
+
<Combobox.Chip
|
|
4549
|
+
key={user.id}
|
|
4550
|
+
className="group flex min-h-[calc(1.5rem-2px)] cursor-default items-center gap-1 overflow-hidden bg-neutral-100 py-0 pr-[0.2rem] pl-[0.4rem] text-sm leading-none text-neutral-950 outline-none focus-within:bg-neutral-950 focus-within:text-white [@media(hover:hover)]:data-highlighted:bg-neutral-950 [@media(hover:hover)]:data-highlighted:text-white dark:bg-neutral-800 dark:text-white dark:focus-within:bg-white dark:focus-within:text-neutral-950 dark:[@media(hover:hover)]:data-highlighted:bg-white dark:[@media(hover:hover)]:data-highlighted:text-neutral-950"
|
|
4551
|
+
aria-label={user.name}
|
|
4552
|
+
aria-description="Press Backspace or Delete to remove"
|
|
4553
|
+
>
|
|
4554
|
+
{user.name}
|
|
4555
|
+
<Combobox.ChipRemove
|
|
4556
|
+
className="flex size-4 items-center justify-center border-0 bg-transparent p-0 text-inherit hover:bg-neutral-200 group-focus-within:hover:bg-neutral-700 dark:hover:bg-neutral-700 dark:group-focus-within:hover:bg-neutral-200"
|
|
4557
|
+
aria-label={`Remove ${user.name}`}
|
|
3905
4558
|
>
|
|
3906
|
-
|
|
3907
|
-
|
|
3908
|
-
|
|
3909
|
-
|
|
3910
|
-
|
|
3911
|
-
|
|
3912
|
-
|
|
3913
|
-
|
|
3914
|
-
|
|
3915
|
-
|
|
3916
|
-
|
|
3917
|
-
|
|
3918
|
-
|
|
3919
|
-
|
|
3920
|
-
|
|
3921
|
-
|
|
3922
|
-
|
|
3923
|
-
</Combobox.Chips>
|
|
4559
|
+
<XIcon />
|
|
4560
|
+
</Combobox.ChipRemove>
|
|
4561
|
+
</Combobox.Chip>
|
|
4562
|
+
))}
|
|
4563
|
+
<Combobox.Input
|
|
4564
|
+
id={id}
|
|
4565
|
+
placeholder={value.length > 0 ? '' : 'e.g. Michael'}
|
|
4566
|
+
aria-description={
|
|
4567
|
+
value.length > 0
|
|
4568
|
+
? `${value.length} selected. From the start of the input, press Left Arrow to focus the selected items`
|
|
4569
|
+
: undefined
|
|
4570
|
+
}
|
|
4571
|
+
className="h-[calc(1.5rem-2px)] min-w-12 flex-1 border-0 bg-white p-0 text-sm any-pointer-coarse:text-base dark:bg-neutral-950 font-normal text-neutral-950 outline-none placeholder:text-neutral-500 dark:placeholder:text-neutral-400 dark:text-white"
|
|
4572
|
+
/>
|
|
4573
|
+
</Combobox.Chips>
|
|
4574
|
+
)}
|
|
4575
|
+
</Combobox.Value>
|
|
3924
4576
|
</Combobox.InputGroup>
|
|
3925
4577
|
</div>
|
|
3926
4578
|
|
|
@@ -4565,6 +5217,7 @@ export default function ExampleAsyncMultipleCombobox() {
|
|
|
4565
5217
|
<Combobox.Root
|
|
4566
5218
|
items={items}
|
|
4567
5219
|
itemToStringLabel={(user: DirectoryUser) => user.name}
|
|
5220
|
+
isItemEqualToValue={(item, value) => item.id === value.id}
|
|
4568
5221
|
multiple
|
|
4569
5222
|
filter={null}
|
|
4570
5223
|
onOpenChangeComplete={(open) => {
|
|
@@ -4625,30 +5278,41 @@ export default function ExampleAsyncMultipleCombobox() {
|
|
|
4625
5278
|
Assign reviewers
|
|
4626
5279
|
</label>
|
|
4627
5280
|
<Combobox.InputGroup className={styles.InputGroup}>
|
|
4628
|
-
<Combobox.
|
|
4629
|
-
|
|
4630
|
-
|
|
4631
|
-
|
|
4632
|
-
|
|
4633
|
-
|
|
4634
|
-
|
|
4635
|
-
|
|
4636
|
-
|
|
4637
|
-
|
|
4638
|
-
|
|
4639
|
-
|
|
4640
|
-
|
|
4641
|
-
|
|
4642
|
-
|
|
4643
|
-
|
|
4644
|
-
|
|
4645
|
-
|
|
4646
|
-
|
|
4647
|
-
|
|
4648
|
-
|
|
4649
|
-
|
|
4650
|
-
|
|
4651
|
-
|
|
5281
|
+
<Combobox.Value>
|
|
5282
|
+
{(value: DirectoryUser[]) => (
|
|
5283
|
+
<Combobox.Chips
|
|
5284
|
+
className={styles.Chips}
|
|
5285
|
+
aria-label={value.length > 0 ? 'Selected reviewers' : undefined}
|
|
5286
|
+
>
|
|
5287
|
+
{value.map((user) => (
|
|
5288
|
+
<Combobox.Chip
|
|
5289
|
+
key={user.id}
|
|
5290
|
+
className={styles.Chip}
|
|
5291
|
+
aria-label={user.name}
|
|
5292
|
+
aria-description="Press Backspace or Delete to remove"
|
|
5293
|
+
>
|
|
5294
|
+
{user.name}
|
|
5295
|
+
<Combobox.ChipRemove
|
|
5296
|
+
className={styles.ChipRemove}
|
|
5297
|
+
aria-label={`Remove ${user.name}`}
|
|
5298
|
+
>
|
|
5299
|
+
<XIcon />
|
|
5300
|
+
</Combobox.ChipRemove>
|
|
5301
|
+
</Combobox.Chip>
|
|
5302
|
+
))}
|
|
5303
|
+
<Combobox.Input
|
|
5304
|
+
id={id}
|
|
5305
|
+
placeholder={value.length > 0 ? '' : 'e.g. Michael'}
|
|
5306
|
+
aria-description={
|
|
5307
|
+
value.length > 0
|
|
5308
|
+
? `${value.length} selected. From the start of the input, press Left Arrow to focus the selected items`
|
|
5309
|
+
: undefined
|
|
5310
|
+
}
|
|
5311
|
+
className={styles.Input}
|
|
5312
|
+
/>
|
|
5313
|
+
</Combobox.Chips>
|
|
5314
|
+
)}
|
|
5315
|
+
</Combobox.Value>
|
|
4652
5316
|
</Combobox.InputGroup>
|
|
4653
5317
|
</div>
|
|
4654
5318
|
|
|
@@ -4992,36 +5656,43 @@ export default function ExampleCreatableCombobox() {
|
|
|
4992
5656
|
Labels
|
|
4993
5657
|
</label>
|
|
4994
5658
|
<Combobox.InputGroup className="flex min-h-8 w-64 cursor-text flex-wrap items-center gap-0.5 border border-neutral-950 bg-white dark:bg-neutral-950 px-2 py-1 focus-within:outline-2 focus-within:-outline-offset-1 focus-within:outline-neutral-950 dark:focus-within:outline-white has-[button]:px-1 dark:border-white min-[32rem]:w-[22rem]">
|
|
4995
|
-
<Combobox.
|
|
4996
|
-
|
|
4997
|
-
|
|
4998
|
-
|
|
4999
|
-
|
|
5000
|
-
|
|
5001
|
-
|
|
5002
|
-
|
|
5003
|
-
|
|
5659
|
+
<Combobox.Value>
|
|
5660
|
+
{(value: LabelItem[]) => (
|
|
5661
|
+
<Combobox.Chips
|
|
5662
|
+
className="flex w-full flex-wrap items-center gap-1"
|
|
5663
|
+
aria-label={value.length > 0 ? 'Selected labels' : undefined}
|
|
5664
|
+
>
|
|
5665
|
+
{value.map((label) => (
|
|
5666
|
+
<Combobox.Chip
|
|
5667
|
+
key={label.id}
|
|
5668
|
+
className="group flex min-h-[calc(1.5rem-2px)] cursor-default items-center gap-1 overflow-hidden bg-neutral-100 py-0 pr-[0.2rem] pl-[0.4rem] text-sm leading-none text-neutral-950 outline-none focus-within:bg-neutral-950 focus-within:text-white [@media(hover:hover)]:data-highlighted:bg-neutral-950 [@media(hover:hover)]:data-highlighted:text-white dark:bg-neutral-800 dark:text-white dark:focus-within:bg-white dark:focus-within:text-neutral-950 dark:[@media(hover:hover)]:data-highlighted:bg-white dark:[@media(hover:hover)]:data-highlighted:text-neutral-950"
|
|
5669
|
+
aria-label={label.value}
|
|
5670
|
+
aria-description="Press Backspace or Delete to remove"
|
|
5671
|
+
>
|
|
5672
|
+
{label.value}
|
|
5673
|
+
<Combobox.ChipRemove
|
|
5674
|
+
className="flex size-4 items-center justify-center border-0 bg-transparent p-0 text-inherit hover:bg-neutral-200 group-focus-within:hover:bg-neutral-700 dark:hover:bg-neutral-700 dark:group-focus-within:hover:bg-neutral-200"
|
|
5675
|
+
aria-label={`Remove ${label.value}`}
|
|
5004
5676
|
>
|
|
5005
|
-
|
|
5006
|
-
|
|
5007
|
-
|
|
5008
|
-
|
|
5009
|
-
|
|
5010
|
-
|
|
5011
|
-
|
|
5012
|
-
|
|
5013
|
-
|
|
5014
|
-
|
|
5015
|
-
|
|
5016
|
-
|
|
5017
|
-
|
|
5018
|
-
|
|
5019
|
-
|
|
5020
|
-
|
|
5021
|
-
|
|
5022
|
-
|
|
5023
|
-
|
|
5024
|
-
</Combobox.Chips>
|
|
5677
|
+
<XIcon />
|
|
5678
|
+
</Combobox.ChipRemove>
|
|
5679
|
+
</Combobox.Chip>
|
|
5680
|
+
))}
|
|
5681
|
+
<Combobox.Input
|
|
5682
|
+
ref={comboboxInputRef}
|
|
5683
|
+
id={id}
|
|
5684
|
+
placeholder={value.length > 0 ? '' : 'e.g. bug'}
|
|
5685
|
+
aria-description={
|
|
5686
|
+
value.length > 0
|
|
5687
|
+
? `${value.length} selected. From the start of the input, press Left Arrow to focus the selected items`
|
|
5688
|
+
: undefined
|
|
5689
|
+
}
|
|
5690
|
+
className="h-[calc(1.5rem-2px)] min-w-12 flex-1 border-0 bg-white p-0 text-sm any-pointer-coarse:text-base dark:bg-neutral-950 font-normal text-neutral-950 outline-none placeholder:text-neutral-500 dark:placeholder:text-neutral-400 dark:text-white"
|
|
5691
|
+
onKeyDown={handleInputKeyDown}
|
|
5692
|
+
/>
|
|
5693
|
+
</Combobox.Chips>
|
|
5694
|
+
)}
|
|
5695
|
+
</Combobox.Value>
|
|
5025
5696
|
</Combobox.InputGroup>
|
|
5026
5697
|
</div>
|
|
5027
5698
|
|
|
@@ -5804,36 +6475,43 @@ export default function ExampleCreatableCombobox() {
|
|
|
5804
6475
|
Labels
|
|
5805
6476
|
</label>
|
|
5806
6477
|
<Combobox.InputGroup className={styles.InputGroup}>
|
|
5807
|
-
<Combobox.
|
|
5808
|
-
|
|
5809
|
-
|
|
5810
|
-
|
|
5811
|
-
|
|
5812
|
-
|
|
5813
|
-
|
|
5814
|
-
|
|
5815
|
-
|
|
6478
|
+
<Combobox.Value>
|
|
6479
|
+
{(value: LabelItem[]) => (
|
|
6480
|
+
<Combobox.Chips
|
|
6481
|
+
className={styles.Chips}
|
|
6482
|
+
aria-label={value.length > 0 ? 'Selected labels' : undefined}
|
|
6483
|
+
>
|
|
6484
|
+
{value.map((label) => (
|
|
6485
|
+
<Combobox.Chip
|
|
6486
|
+
key={label.id}
|
|
6487
|
+
className={styles.Chip}
|
|
6488
|
+
aria-label={label.value}
|
|
6489
|
+
aria-description="Press Backspace or Delete to remove"
|
|
6490
|
+
>
|
|
6491
|
+
{label.value}
|
|
6492
|
+
<Combobox.ChipRemove
|
|
6493
|
+
className={styles.ChipRemove}
|
|
6494
|
+
aria-label={`Remove ${label.value}`}
|
|
5816
6495
|
>
|
|
5817
|
-
|
|
5818
|
-
|
|
5819
|
-
|
|
5820
|
-
|
|
5821
|
-
|
|
5822
|
-
|
|
5823
|
-
|
|
5824
|
-
|
|
5825
|
-
|
|
5826
|
-
|
|
5827
|
-
|
|
5828
|
-
|
|
5829
|
-
|
|
5830
|
-
|
|
5831
|
-
|
|
5832
|
-
|
|
5833
|
-
|
|
5834
|
-
|
|
5835
|
-
|
|
5836
|
-
</Combobox.Chips>
|
|
6496
|
+
<XIcon />
|
|
6497
|
+
</Combobox.ChipRemove>
|
|
6498
|
+
</Combobox.Chip>
|
|
6499
|
+
))}
|
|
6500
|
+
<Combobox.Input
|
|
6501
|
+
ref={comboboxInputRef}
|
|
6502
|
+
id={id}
|
|
6503
|
+
placeholder={value.length > 0 ? '' : 'e.g. bug'}
|
|
6504
|
+
aria-description={
|
|
6505
|
+
value.length > 0
|
|
6506
|
+
? `${value.length} selected. From the start of the input, press Left Arrow to focus the selected items`
|
|
6507
|
+
: undefined
|
|
6508
|
+
}
|
|
6509
|
+
className={styles.Input}
|
|
6510
|
+
onKeyDown={handleInputKeyDown}
|
|
6511
|
+
/>
|
|
6512
|
+
</Combobox.Chips>
|
|
6513
|
+
)}
|
|
6514
|
+
</Combobox.Value>
|
|
5837
6515
|
</Combobox.InputGroup>
|
|
5838
6516
|
</div>
|
|
5839
6517
|
|
|
@@ -6486,6 +7164,28 @@ const virtualizedItems: VirtualizedItem[] = Array.from({ length: 10000 }, (_, in
|
|
|
6486
7164
|
type Virtualizer = ReturnType<typeof useVirtualizer<HTMLDivElement, Element>>;
|
|
6487
7165
|
```
|
|
6488
7166
|
|
|
7167
|
+
#### Memoizing items
|
|
7168
|
+
|
|
7169
|
+
Memoizing each item is a simpler alternative to virtualization for datasets up to roughly 1,000 items. Wrap each item in [`React.memo`](https://react.dev/reference/react/memo) and pass the item as a prop so unchanged items skip re-rendering. While memoization speeds up typing, it does not speed up opening; with a large enough number of items, the mount cost dominates, and virtualization becomes necessary to keep the open interaction fast on low-end devices.
|
|
7170
|
+
|
|
7171
|
+
```tsx title="Memoizing list items"
|
|
7172
|
+
interface Fruit {
|
|
7173
|
+
id: string;
|
|
7174
|
+
label: string;
|
|
7175
|
+
}
|
|
7176
|
+
|
|
7177
|
+
const FruitItem = React.memo(function FruitItem({ item }: { item: Fruit }) {
|
|
7178
|
+
return (
|
|
7179
|
+
<Combobox.Item value={item}>
|
|
7180
|
+
<Combobox.ItemIndicator />
|
|
7181
|
+
<span>{item.label}</span>
|
|
7182
|
+
</Combobox.Item>
|
|
7183
|
+
);
|
|
7184
|
+
});
|
|
7185
|
+
|
|
7186
|
+
<Combobox.List>{(item: Fruit) => <FruitItem key={item.id} item={item} />}</Combobox.List>;
|
|
7187
|
+
```
|
|
7188
|
+
|
|
6489
7189
|
## API reference
|
|
6490
7190
|
|
|
6491
7191
|
### Root
|
|
@@ -6495,46 +7195,46 @@ Doesn't render its own HTML element.
|
|
|
6495
7195
|
|
|
6496
7196
|
**Root Props:**
|
|
6497
7197
|
|
|
6498
|
-
| Prop | Type
|
|
6499
|
-
| :------------------- |
|
|
6500
|
-
| name | `string`
|
|
6501
|
-
| defaultValue | `Value[] \| Value \| null`
|
|
6502
|
-
| value | `Value[] \| Value \| null`
|
|
6503
|
-
| onValueChange | `((value: Value[] \| Value \| null, eventDetails: Combobox.Root.ChangeEventDetails) => void)`
|
|
6504
|
-
| defaultInputValue | `string \| number \| string[]`
|
|
6505
|
-
| inputValue | `string \| string[] \| number`
|
|
6506
|
-
| onInputValueChange | `((inputValue: string, eventDetails: Combobox.Root.ChangeEventDetails) => void)`
|
|
6507
|
-
| defaultOpen | `boolean`
|
|
6508
|
-
| open | `boolean`
|
|
6509
|
-
| onOpenChange | `((open: boolean, eventDetails: Combobox.Root.ChangeEventDetails) => void)`
|
|
6510
|
-
| autoHighlight | `boolean`
|
|
6511
|
-
| highlightItemOnHover | `boolean`
|
|
6512
|
-
| actionsRef | `React.RefObject<Combobox.Root.Actions \| null>`
|
|
6513
|
-
| autoComplete | `string`
|
|
6514
|
-
| filter | `((
|
|
6515
|
-
| filteredItems | `
|
|
6516
|
-
| form | `string`
|
|
6517
|
-
| grid | `boolean`
|
|
6518
|
-
| inline | `boolean`
|
|
6519
|
-
| isItemEqualToValue | `((itemValue: Value, value: Value) => boolean)`
|
|
6520
|
-
| itemToStringLabel | `((itemValue: Value) => string)`
|
|
6521
|
-
| itemToStringValue | `((itemValue: Value) => string)`
|
|
6522
|
-
| items | `any[] \| Group[]
|
|
6523
|
-
| limit | `number`
|
|
6524
|
-
| locale | `Intl.LocalesArgument`
|
|
6525
|
-
| loopFocus | `boolean`
|
|
6526
|
-
| modal | `boolean`
|
|
6527
|
-
| multiple | `boolean`
|
|
6528
|
-
| onItemHighlighted | `((highlightedValue: Value \| undefined, eventDetails: Combobox.Root.HighlightEventDetails) => void)`
|
|
6529
|
-
| onOpenChangeComplete | `((open: boolean) => void)`
|
|
6530
|
-
| openOnInputClick | `boolean`
|
|
6531
|
-
| virtualized | `boolean`
|
|
6532
|
-
| disabled | `boolean`
|
|
6533
|
-
| readOnly | `boolean`
|
|
6534
|
-
| required | `boolean`
|
|
6535
|
-
| inputRef | `React.Ref<HTMLInputElement>`
|
|
6536
|
-
| id | `string`
|
|
6537
|
-
| children | `React.ReactNode`
|
|
7198
|
+
| Prop | Type | Default | Description |
|
|
7199
|
+
| :------------------- | :---------------------------------------------------------------------------------------------------- | :------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
7200
|
+
| name | `string` | - | Identifies the field when a form is submitted. |
|
|
7201
|
+
| defaultValue | `Value[] \| Value \| null` | - | The uncontrolled selected value of the combobox when it's initially rendered. To render a controlled combobox, use the `value` prop instead. |
|
|
7202
|
+
| value | `Value[] \| Value \| null` | - | The selected value of the combobox. Use when controlled. |
|
|
7203
|
+
| onValueChange | `((value: Value[] \| Value \| null, eventDetails: Combobox.Root.ChangeEventDetails) => void)` | - | Event handler called when the selected value of the combobox changes. |
|
|
7204
|
+
| defaultInputValue | `string \| number \| string[]` | - | The uncontrolled input value when initially rendered. To render a controlled input, use the `inputValue` prop instead. |
|
|
7205
|
+
| inputValue | `string \| string[] \| number` | - | The input value of the combobox. Use when controlled. |
|
|
7206
|
+
| onInputValueChange | `((inputValue: string, eventDetails: Combobox.Root.ChangeEventDetails) => void)` | - | Event handler called when the input value changes. |
|
|
7207
|
+
| defaultOpen | `boolean` | `false` | Whether the popup is initially open. To render a controlled popup, use the `open` prop instead. |
|
|
7208
|
+
| open | `boolean` | - | Whether the popup is currently open. Use when controlled. |
|
|
7209
|
+
| onOpenChange | `((open: boolean, eventDetails: Combobox.Root.ChangeEventDetails) => void)` | - | Event handler called when the popup is opened or closed. |
|
|
7210
|
+
| autoHighlight | `boolean` | `false` | Whether the first matching item is highlighted automatically while filtering. |
|
|
7211
|
+
| highlightItemOnHover | `boolean` | `true` | Whether moving the pointer over items should highlight them.
Disabling this prop allows CSS `:hover` to be differentiated from the `:focus` (`data-highlighted`) state. |
|
|
7212
|
+
| actionsRef | `React.RefObject<Combobox.Root.Actions \| null>` | - | A ref to imperative actions. `unmount`: Manually unmounts the combobox.
Call this after any externally controlled closing animation finishes. |
|
|
7213
|
+
| autoComplete | `string` | - | Provides a hint to the browser for autofill. |
|
|
7214
|
+
| filter | `((item: Item, query: string, itemToString?: ((item: Item) => string)) => boolean) \| null` | - | ComboboxFilter function used to match items vs input query.
Receives the source item, which is the derived value's item when `items` is a `createItems()`
collection, and the item itself otherwise. |
|
|
7215
|
+
| filteredItems | `Item[] \| Group<Item>[]` | - | Filtered items to display in the list.
When provided, the list uses these items instead of filtering the `items` prop internally.
When `items` is also provided, this array must preserve its flat or grouped structure.
With a `createItems()` collection, pass source items rather than derived values.
Nullish entries are not supported, as in `items`.
Use when you want to control filtering logic externally with the `useFilter()` hook. |
|
|
7216
|
+
| form | `string` | - | Identifies the form that owns the internal input.
Useful when the combobox is rendered outside the form. |
|
|
7217
|
+
| grid | `boolean` | `false` | Whether list items are presented in a grid layout.
When enabled, arrow keys navigate across rows and columns inferred from DOM rows. |
|
|
7218
|
+
| inline | `boolean` | `false` | Whether the list is rendered inline without using the component's own popup. Specify `open` unconditionally in conjunction with this prop so the list is considered
visible: `<Combobox.Root inline open>` In a `Combobox.Root` > `Dialog.Root` composition, bind the Combobox's `open` and
`onOpenChange` props to the `Dialog`'s `open` and `onOpenChange` state instead so the
component resets its transient state (filter query, highlighted item, and input value) when
the dialog closes. |
|
|
7219
|
+
| isItemEqualToValue | `((itemValue: Value, value: Value) => boolean)` | - | Custom comparison logic used to determine if a combobox item value matches the current selected value. Useful when item values are objects without matching referentially.
With a `createItems()` collection, both arguments are derived values.
Defaults to `Object.is` comparison. |
|
|
7220
|
+
| itemToStringLabel | `((itemValue: Value) => string)` | - | When the item values are objects (`<Combobox.Item value={object}>`), this function converts the object value to a string representation for display in the input.
If the shape of the object is `{ value, label }`, the label will be used automatically without needing to specify this prop.
With a `createItems()` collection, this receives the derived value, and the collection's
`getLabel` takes precedence for values it can resolve. |
|
|
7221
|
+
| itemToStringValue | `((itemValue: Value) => string)` | - | When the item values are objects (`<Combobox.Item value={object}>`), this function converts the object value to a string representation for form submission.
If the shape of the object is `{ value, label }`, the value will be used automatically without needing to specify this prop.
With a `createItems()` collection, this receives the derived value. |
|
|
7222
|
+
| items | `any[] \| Group[] \| ComboboxItemCollection<Item, Value>` | - | The items to be displayed in the list.
Can be a flat array of items, an array of groups with items, or a collection created by
the `createItems()` function, which derives each item's selection value and label.
Nullish entries are not supported: remove them from the data before passing it. |
|
|
7223
|
+
| limit | `number` | `-1` | The maximum number of items to display in the list. |
|
|
7224
|
+
| locale | `Intl.LocalesArgument` | - | The locale to use for string comparison.
Defaults to the user's runtime locale. |
|
|
7225
|
+
| loopFocus | `boolean` | `true` | Whether to loop keyboard focus back to the input when the end of the list is reached while using the arrow keys. The first item can then be reached by pressing ArrowDown again from the input, or the last item can be reached by pressing ArrowUp from the input.
The input is always included in the focus loop per [ARIA Authoring Practices](https://www.w3.org/WAI/ARIA/apg/patterns/combobox/).
When disabled, focus does not move when on the last element and the user presses ArrowDown, or when on the first element and the user presses ArrowUp. |
|
|
7226
|
+
| modal | `boolean` | `false` | Determines if the popup enters a modal state when open. `true`: user interaction is limited to the popup: document page scroll is locked and pointer interactions on outside elements are disabled.`false`: user interaction with the rest of the document is allowed. On touch devices, a `true` modal blocks outside taps but leaves the page scrollable unless the popup spans nearly the full viewport width, matching native iOS behavior. |
|
|
7227
|
+
| multiple | `boolean` | `false` | Whether multiple items can be selected. |
|
|
7228
|
+
| onItemHighlighted | `((highlightedValue: Value \| undefined, eventDetails: Combobox.Root.HighlightEventDetails) => void)` | - | Callback fired when an item is highlighted or unhighlighted.
Receives the highlighted item value (or `undefined` if no item is highlighted) and event details with a `reason` property describing why the highlight changed.
The `reason` can be: `'keyboard'`: the highlight changed due to keyboard navigation.`'pointer'`: the highlight changed due to pointer hovering.`'none'`: the highlight changed programmatically. |
|
|
7229
|
+
| onOpenChangeComplete | `((open: boolean) => void)` | - | Event handler called after any animations complete when the popup is opened or closed. |
|
|
7230
|
+
| openOnInputClick | `boolean` | `true` | Whether the popup opens when clicking the input. |
|
|
7231
|
+
| virtualized | `boolean` | `false` | Whether the items are being externally virtualized. |
|
|
7232
|
+
| disabled | `boolean` | `false` | Whether the component should ignore user interaction. |
|
|
7233
|
+
| readOnly | `boolean` | `false` | Whether the user should be unable to choose a different option from the popup. |
|
|
7234
|
+
| required | `boolean` | `false` | Whether the user must choose a value before submitting a form. |
|
|
7235
|
+
| inputRef | `React.Ref<HTMLInputElement>` | - | A ref to the hidden input element. |
|
|
7236
|
+
| id | `string` | - | The id of the component. |
|
|
7237
|
+
| children | `React.ReactNode` | - | - |
|
|
6538
7238
|
|
|
6539
7239
|
**`autoComplete` Prop References:**
|
|
6540
7240
|
|
|
@@ -6561,6 +7261,7 @@ type ComboboxRootActions = { unmount: () => void };
|
|
|
6561
7261
|
```typescript
|
|
6562
7262
|
type ComboboxRootChangeEventReason =
|
|
6563
7263
|
| 'trigger-press'
|
|
7264
|
+
| 'input-press'
|
|
6564
7265
|
| 'outside-press'
|
|
6565
7266
|
| 'item-press'
|
|
6566
7267
|
| 'close-press'
|
|
@@ -6571,6 +7272,7 @@ type ComboboxRootChangeEventReason =
|
|
|
6571
7272
|
| 'input-clear'
|
|
6572
7273
|
| 'clear-press'
|
|
6573
7274
|
| 'chip-remove-press'
|
|
7275
|
+
| 'cancel-open'
|
|
6574
7276
|
| 'none';
|
|
6575
7277
|
```
|
|
6576
7278
|
|
|
@@ -6578,8 +7280,8 @@ type ComboboxRootChangeEventReason =
|
|
|
6578
7280
|
|
|
6579
7281
|
```typescript
|
|
6580
7282
|
type ComboboxRootChangeEventDetails = (
|
|
6581
|
-
| { reason: 'none'; event: Event }
|
|
6582
7283
|
| { reason: 'trigger-press'; event: MouseEvent | PointerEvent | TouchEvent | KeyboardEvent }
|
|
7284
|
+
| { reason: 'input-press'; event: MouseEvent | PointerEvent | TouchEvent | KeyboardEvent }
|
|
6583
7285
|
| { reason: 'outside-press'; event: MouseEvent | PointerEvent | TouchEvent }
|
|
6584
7286
|
| { reason: 'item-press'; event: MouseEvent | PointerEvent | KeyboardEvent }
|
|
6585
7287
|
| { reason: 'close-press'; event: MouseEvent | PointerEvent | KeyboardEvent }
|
|
@@ -6590,6 +7292,8 @@ type ComboboxRootChangeEventDetails = (
|
|
|
6590
7292
|
| { reason: 'input-clear'; event: Event | FocusEvent | InputEvent }
|
|
6591
7293
|
| { reason: 'clear-press'; event: MouseEvent | PointerEvent | KeyboardEvent }
|
|
6592
7294
|
| { reason: 'chip-remove-press'; event: MouseEvent | PointerEvent | KeyboardEvent }
|
|
7295
|
+
| { reason: 'cancel-open'; event: MouseEvent }
|
|
7296
|
+
| { reason: 'none'; event: Event }
|
|
6593
7297
|
) & {
|
|
6594
7298
|
/** Cancels Base UI from handling the event. */
|
|
6595
7299
|
cancel: () => void;
|
|
@@ -6601,6 +7305,11 @@ type ComboboxRootChangeEventDetails = (
|
|
|
6601
7305
|
isPropagationAllowed: boolean;
|
|
6602
7306
|
/** The element that triggered the event, if applicable. */
|
|
6603
7307
|
trigger: Element | undefined;
|
|
7308
|
+
/**
|
|
7309
|
+
* When `reason` is `input-clear` in multiple mode, indicates whether an item press caused the
|
|
7310
|
+
* clear. Automatic cleanup clears omit this property.
|
|
7311
|
+
*/
|
|
7312
|
+
isItemPress?: boolean;
|
|
6604
7313
|
};
|
|
6605
7314
|
```
|
|
6606
7315
|
|
|
@@ -6665,6 +7374,8 @@ type ComboboxTriggerState = {
|
|
|
6665
7374
|
open: boolean;
|
|
6666
7375
|
/** Whether the component should ignore user interaction. */
|
|
6667
7376
|
disabled: boolean;
|
|
7377
|
+
/** Whether the component should ignore user edits. */
|
|
7378
|
+
readOnly: boolean;
|
|
6668
7379
|
/** Indicates which side the corresponding popup is positioned relative to its anchor. */
|
|
6669
7380
|
popupSide: Side | null;
|
|
6670
7381
|
/** Present when the corresponding items list is empty. */
|
|
@@ -6691,10 +7402,10 @@ Doesn't render its own HTML element.
|
|
|
6691
7402
|
|
|
6692
7403
|
**Value Props:**
|
|
6693
7404
|
|
|
6694
|
-
| Prop | Type | Default | Description
|
|
6695
|
-
| :---------- | :------------------------------------------------------------- | :------ |
|
|
6696
|
-
| placeholder | `React.ReactNode` | - | The placeholder value to display when no value is selected.
This is overridden by `children` if specified, or by a null item's label in `items`.
|
|
6697
|
-
| children | `React.ReactNode \| ((selectedValue: any) => React.ReactNode)` | - | -
|
|
7405
|
+
| Prop | Type | Default | Description |
|
|
7406
|
+
| :---------- | :------------------------------------------------------------- | :------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
7407
|
+
| placeholder | `React.ReactNode` | - | The placeholder value to display when no value is selected.
This is overridden by `children` if specified, or by a null item's label in `items`. |
|
|
7408
|
+
| children | `React.ReactNode \| ((selectedValue: any) => React.ReactNode)` | - | Accepts a function that returns a `ReactNode` to format the selected value.
Treat the value as read-only: in `multiple` mode it may be a shared frozen array
when nothing is selected. |
|
|
6698
7409
|
|
|
6699
7410
|
### Value.Props
|
|
6700
7411
|
|
|
@@ -6815,7 +7526,7 @@ Renders a `<button>` element.
|
|
|
6815
7526
|
| data-popup-open | - | Present when the corresponding popup is open. |
|
|
6816
7527
|
| data-disabled | - | Present when the button is disabled. |
|
|
6817
7528
|
| data-visible | - | Present when the clear button is visible. |
|
|
6818
|
-
| data-starting-style | - | Present when the button
|
|
7529
|
+
| data-starting-style | - | Present when the button begins animating in. |
|
|
6819
7530
|
| data-ending-style | - | Present when the button is animating out. |
|
|
6820
7531
|
|
|
6821
7532
|
### Clear.Props
|
|
@@ -6905,12 +7616,12 @@ Renders a `<div>` element.
|
|
|
6905
7616
|
|
|
6906
7617
|
**Backdrop Data Attributes:**
|
|
6907
7618
|
|
|
6908
|
-
| Attribute | Type | Description
|
|
6909
|
-
| :------------------ | :--- |
|
|
6910
|
-
| data-open | - | Present when the popup is open.
|
|
6911
|
-
| data-closed | - | Present when the popup is closed.
|
|
6912
|
-
| data-starting-style | - | Present when the popup
|
|
6913
|
-
| data-ending-style | - | Present when the popup is animating out.
|
|
7619
|
+
| Attribute | Type | Description |
|
|
7620
|
+
| :------------------ | :--- | :------------------------------------------ |
|
|
7621
|
+
| data-open | - | Present when the popup is open. |
|
|
7622
|
+
| data-closed | - | Present when the popup is closed. |
|
|
7623
|
+
| data-starting-style | - | Present when the popup begins animating in. |
|
|
7624
|
+
| data-ending-style | - | Present when the popup is animating out. |
|
|
6914
7625
|
|
|
6915
7626
|
### Backdrop.Props
|
|
6916
7627
|
|
|
@@ -7047,11 +7758,11 @@ Renders a `<div>` element.
|
|
|
7047
7758
|
| :------------------ | :------------------------------------------------------------------------- | :-------------------------------------------------------------------- |
|
|
7048
7759
|
| data-open | - | Present when the popup is open. |
|
|
7049
7760
|
| data-closed | - | Present when the popup is closed. |
|
|
7761
|
+
| data-anchor-hidden | - | Present when the anchor is hidden. |
|
|
7050
7762
|
| data-align | `'start' \| 'center' \| 'end'` | Indicates how the popup is aligned relative to specified side. |
|
|
7051
7763
|
| data-empty | - | Present when the items list is empty. |
|
|
7052
|
-
| data-instant | `'click' \| 'dismiss'` | Present if animations should be instant. |
|
|
7053
7764
|
| data-side | `'top' \| 'bottom' \| 'left' \| 'right' \| 'inline-end' \| 'inline-start'` | Indicates which side the popup is positioned relative to the trigger. |
|
|
7054
|
-
| data-starting-style | - | Present when the popup
|
|
7765
|
+
| data-starting-style | - | Present when the popup begins animating in. |
|
|
7055
7766
|
| data-ending-style | - | Present when the popup is animating out. |
|
|
7056
7767
|
|
|
7057
7768
|
### Popup.Props
|
|
@@ -7230,17 +7941,17 @@ type ComboboxGroupLabelState = {};
|
|
|
7230
7941
|
|
|
7231
7942
|
### Separator
|
|
7232
7943
|
|
|
7233
|
-
A separator
|
|
7944
|
+
A visual separator between items or groups.
|
|
7234
7945
|
Renders a `<div>` element.
|
|
7235
7946
|
|
|
7236
7947
|
**Separator Props:**
|
|
7237
7948
|
|
|
7238
|
-
| Prop | Type
|
|
7239
|
-
| :---------- |
|
|
7240
|
-
| orientation | `Orientation`
|
|
7241
|
-
| className | `string \| ((state:
|
|
7242
|
-
| style | `React.CSSProperties \| ((state:
|
|
7243
|
-
| render | `ReactElement \| ((props: HTMLProps, state:
|
|
7949
|
+
| Prop | Type | Default | Description |
|
|
7950
|
+
| :---------- | :----------------------------------------------------------------------------------------------- | :------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
7951
|
+
| orientation | `Orientation` | `'horizontal'` | The orientation of the separator. |
|
|
7952
|
+
| className | `string \| ((state: Combobox.Separator.State) => string \| undefined)` | - | CSS class applied to the element, or a function that
returns a class based on the component's state. |
|
|
7953
|
+
| style | `React.CSSProperties \| ((state: Combobox.Separator.State) => React.CSSProperties \| undefined)` | - | Style applied to the element, or a function that
returns a style object based on the component's state. |
|
|
7954
|
+
| render | `ReactElement \| ((props: HTMLProps, state: Combobox.Separator.State) => ReactElement)` | - | Allows you to replace the component's HTML element
with a different tag, or compose it with another component. Accepts a `ReactElement` or a function that returns the element to render. |
|
|
7244
7955
|
|
|
7245
7956
|
### Separator.Props
|
|
7246
7957
|
|
|
@@ -7488,10 +8199,10 @@ Renders a `<span>` element.
|
|
|
7488
8199
|
|
|
7489
8200
|
**ItemIndicator Data Attributes:**
|
|
7490
8201
|
|
|
7491
|
-
| Attribute | Type | Description
|
|
7492
|
-
| :------------------ | :--- |
|
|
7493
|
-
| data-starting-style | - | Present when the indicator
|
|
7494
|
-
| data-ending-style | - | Present when the indicator is animating out.
|
|
8202
|
+
| Attribute | Type | Description |
|
|
8203
|
+
| :------------------ | :--- | :---------------------------------------------- |
|
|
8204
|
+
| data-starting-style | - | Present when the indicator begins animating in. |
|
|
8205
|
+
| data-ending-style | - | Present when the indicator is animating out. |
|
|
7495
8206
|
|
|
7496
8207
|
### ItemIndicator.Props
|
|
7497
8208
|
|
|
@@ -7508,6 +8219,46 @@ type ComboboxItemIndicatorState = {
|
|
|
7508
8219
|
};
|
|
7509
8220
|
```
|
|
7510
8221
|
|
|
8222
|
+
### ComboboxItemCollection
|
|
8223
|
+
|
|
8224
|
+
An opaque collection created by `createItems()`.
|
|
8225
|
+
|
|
8226
|
+
It carries the source item and derived value types so the root can infer the list item and
|
|
8227
|
+
selection value types.
|
|
8228
|
+
|
|
8229
|
+
Pass it directly to the root's `items` prop; it has no public members.
|
|
8230
|
+
|
|
8231
|
+
### createItems
|
|
8232
|
+
|
|
8233
|
+
Creates a collection for the root's `items` prop. Values and labels are derived on first use.
|
|
8234
|
+
|
|
8235
|
+
Accepts either a flat item array or an array of groups. The `getValue` and `getLabel` accessors
|
|
8236
|
+
receive items, not groups.
|
|
8237
|
+
|
|
8238
|
+
Items cannot have an `items` array property because they would be interpreted as groups.
|
|
8239
|
+
Rename that field or cast the data when the runtime values are known not to contain arrays.
|
|
8240
|
+
|
|
8241
|
+
The data must not contain nullish entries: remove them before creating the collection, as for
|
|
8242
|
+
the root's `items` prop.
|
|
8243
|
+
|
|
8244
|
+
Create static collections at module scope. Wrap dynamic collections in `React.useMemo()` keyed
|
|
8245
|
+
by their data.
|
|
8246
|
+
|
|
8247
|
+
**Parameters:**
|
|
8248
|
+
|
|
8249
|
+
| Parameter | Type | Default | Description |
|
|
8250
|
+
| :-------- | :--------------------------------------------------------- | :------ | :-------------------------------------------------------------------------- |
|
|
8251
|
+
| data | `ComboboxItemsData<Item> \| undefined` | - | The flat or grouped source items, or `undefined` while they are loading. |
|
|
8252
|
+
| options | `CreateComboboxItemsOptions<Item, ComboboxPrimitiveValue>` | - | Functions that derive each source item's selection value and display label. |
|
|
8253
|
+
|
|
8254
|
+
**Return Value:**
|
|
8255
|
+
|
|
8256
|
+
A collection whose selection value is the `getValue` accessor's return value.
|
|
8257
|
+
|
|
8258
|
+
```tsx
|
|
8259
|
+
type ReturnValue = ComboboxItemCollection<Item, ComboboxPrimitiveValue>;
|
|
8260
|
+
```
|
|
8261
|
+
|
|
7511
8262
|
### InputGroup
|
|
7512
8263
|
|
|
7513
8264
|
A wrapper for the input and its associated controls.
|
|
@@ -7580,7 +8331,7 @@ Matches items against a query using `Intl.Collator` for robust string matching.
|
|
|
7580
8331
|
|
|
7581
8332
|
| Parameter | Type | Default | Description |
|
|
7582
8333
|
| :-------- | :---------------------- | :------ | :---------- |
|
|
7583
|
-
| options? | `ComboboxFilterOptions` |
|
|
8334
|
+
| options? | `ComboboxFilterOptions` | `{}` | - |
|
|
7584
8335
|
|
|
7585
8336
|
**Return Value:**
|
|
7586
8337
|
|
|
@@ -7591,6 +8342,7 @@ type ReturnValue = ComboboxFilter;
|
|
|
7591
8342
|
### useFilteredItems
|
|
7592
8343
|
|
|
7593
8344
|
Returns the internally filtered items.
|
|
8345
|
+
Treat the result as read-only: it is internal state and may be a shared frozen array.
|
|
7594
8346
|
|
|
7595
8347
|
**Return Value:**
|
|
7596
8348
|
|
|
@@ -7622,7 +8374,10 @@ type ComboboxFilterOptions = {
|
|
|
7622
8374
|
* @default false
|
|
7623
8375
|
*/
|
|
7624
8376
|
multiple?: boolean;
|
|
7625
|
-
/**
|
|
8377
|
+
/**
|
|
8378
|
+
* The current value of the combobox, used to keep every item visible while the query still
|
|
8379
|
+
* matches the selection.
|
|
8380
|
+
*/
|
|
7626
8381
|
value?: any;
|
|
7627
8382
|
/**
|
|
7628
8383
|
* The locale to use for string comparison.
|
|
@@ -7632,6 +8387,36 @@ type ComboboxFilterOptions = {
|
|
|
7632
8387
|
};
|
|
7633
8388
|
```
|
|
7634
8389
|
|
|
8390
|
+
### ComboboxPrimitiveValue
|
|
8391
|
+
|
|
8392
|
+
```typescript
|
|
8393
|
+
type ComboboxPrimitiveValue = string | number | bigint | boolean;
|
|
8394
|
+
```
|
|
8395
|
+
|
|
8396
|
+
### CreateComboboxItemsOptions
|
|
8397
|
+
|
|
8398
|
+
```typescript
|
|
8399
|
+
type CreateComboboxItemsOptions<
|
|
8400
|
+
Item,
|
|
8401
|
+
Value extends ComboboxPrimitiveValue = ComboboxPrimitiveValue,
|
|
8402
|
+
> = {
|
|
8403
|
+
/**
|
|
8404
|
+
* Projects an item to the primitive value that identifies it, used as the item's
|
|
8405
|
+
* selection value.
|
|
8406
|
+
*
|
|
8407
|
+
* `null` and `undefined` are reserved for no selection, and each item must derive a unique
|
|
8408
|
+
* value. Prefer stable IDs from your application data.
|
|
8409
|
+
*/
|
|
8410
|
+
getValue: (item: Item) => Value;
|
|
8411
|
+
/**
|
|
8412
|
+
* Projects an item to the label string that represents it in the input and when matching the
|
|
8413
|
+
* typed query. The root's `itemToStringLabel` prop is the fallback for values whose item is in
|
|
8414
|
+
* neither the data nor the current `filteredItems`.
|
|
8415
|
+
*/
|
|
8416
|
+
getLabel: (item: Item) => string;
|
|
8417
|
+
};
|
|
8418
|
+
```
|
|
8419
|
+
|
|
7635
8420
|
## External Types
|
|
7636
8421
|
|
|
7637
8422
|
### Side
|
|
@@ -7699,7 +8484,8 @@ type Orientation = 'horizontal' | 'vertical';
|
|
|
7699
8484
|
- `Combobox.Separator`: `Combobox.Separator`, `Combobox.Separator.Props`, `Combobox.Separator.State`
|
|
7700
8485
|
- `Combobox.useFilter`
|
|
7701
8486
|
- `Combobox.useFilteredItems`
|
|
7702
|
-
- `
|
|
8487
|
+
- `Combobox.createItems`
|
|
8488
|
+
- `Default`: `ComboboxFilter`, `ComboboxFilterOptions`, `ComboboxPrimitiveValue`, `CreateComboboxItemsOptions`, `ComboboxItemCollection`, `ComboboxRootProps`, `ComboboxRootState`, `ComboboxRootActions`, `ComboboxRootChangeEventReason`, `ComboboxRootChangeEventDetails`, `ComboboxRootHighlightEventReason`, `ComboboxRootHighlightEventDetails`, `ComboboxLabelState`, `ComboboxLabelProps`, `ComboboxTriggerState`, `ComboboxTriggerProps`, `ComboboxInputState`, `ComboboxInputProps`, `ComboboxInputGroupState`, `ComboboxInputGroupProps`, `ComboboxPopupState`, `ComboboxPopupProps`, `ComboboxPositionerState`, `ComboboxPositionerProps`, `ComboboxListState`, `ComboboxListProps`, `ComboboxItemState`, `ComboboxItemProps`, `ComboboxItemIndicatorProps`, `ComboboxItemIndicatorState`, `ComboboxValueState`, `ComboboxValueProps`, `ComboboxIconState`, `ComboboxIconProps`, `ComboboxArrowState`, `ComboboxArrowProps`, `ComboboxBackdropProps`, `ComboboxBackdropState`, `ComboboxPortalState`, `ComboboxPortalProps`, `ComboboxEmptyState`, `ComboboxEmptyProps`, `ComboboxGroupState`, `ComboboxGroupProps`, `ComboboxGroupLabelState`, `ComboboxGroupLabelProps`, `ComboboxRowState`, `ComboboxRowProps`, `ComboboxChipsState`, `ComboboxChipsProps`, `ComboboxChipState`, `ComboboxChipProps`, `ComboboxChipRemoveState`, `ComboboxChipRemoveProps`, `ComboboxClearState`, `ComboboxClearProps`, `ComboboxStatusState`, `ComboboxStatusProps`, `ComboboxCollectionState`, `ComboboxCollectionProps`, `ComboboxSeparatorProps`, `ComboboxSeparatorState`
|
|
7703
8489
|
|
|
7704
8490
|
## Canonical Types
|
|
7705
8491
|
|
|
@@ -7760,6 +8546,8 @@ Maps `Canonical`: `Alias` — Use Canonical when its namespace is already import
|
|
|
7760
8546
|
- `Combobox.Empty.Props`: `ComboboxEmptyProps`
|
|
7761
8547
|
- `Combobox.Clear.State`: `ComboboxClearState`
|
|
7762
8548
|
- `Combobox.Clear.Props`: `ComboboxClearProps`
|
|
8549
|
+
- `Combobox.Separator.Props`: `ComboboxSeparatorProps`
|
|
8550
|
+
- `Combobox.Separator.State`: `ComboboxSeparatorState`
|
|
7763
8551
|
|
|
7764
8552
|
## useFilter
|
|
7765
8553
|
|
|
@@ -7770,3 +8558,7 @@ Pass the result to the `filter` prop of `<Combobox.Root>`.
|
|
|
7770
8558
|
## useFilteredItems
|
|
7771
8559
|
|
|
7772
8560
|
Returns the internally filtered items when called inside `<Combobox.Root>`.
|
|
8561
|
+
|
|
8562
|
+
## createItems
|
|
8563
|
+
|
|
8564
|
+
Normalizes items into a collection for the `items` prop of `<Combobox.Root>`, deriving each item's selection value and label before rendering.
|