@base-ui/react 1.7.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.
Files changed (1301) hide show
  1. package/CHANGELOG.md +143 -0
  2. package/accordion/header/AccordionHeaderDataAttributes.d.mts +13 -15
  3. package/accordion/header/AccordionHeaderDataAttributes.d.ts +13 -15
  4. package/accordion/header/AccordionHeaderDataAttributes.js +14 -17
  5. package/accordion/header/AccordionHeaderDataAttributes.mjs +13 -16
  6. package/accordion/item/AccordionItemDataAttributes.d.mts +13 -15
  7. package/accordion/item/AccordionItemDataAttributes.d.ts +13 -15
  8. package/accordion/item/AccordionItemDataAttributes.js +14 -17
  9. package/accordion/item/AccordionItemDataAttributes.mjs +13 -16
  10. package/accordion/item/stateAttributesMapping.js +3 -2
  11. package/accordion/item/stateAttributesMapping.mjs +1 -1
  12. package/accordion/panel/AccordionPanel.js +3 -3
  13. package/accordion/panel/AccordionPanel.mjs +1 -1
  14. package/accordion/panel/AccordionPanelCssVars.d.mts +10 -12
  15. package/accordion/panel/AccordionPanelCssVars.d.ts +10 -12
  16. package/accordion/panel/AccordionPanelCssVars.js +11 -14
  17. package/accordion/panel/AccordionPanelCssVars.mjs +10 -13
  18. package/accordion/panel/AccordionPanelDataAttributes.d.mts +25 -27
  19. package/accordion/panel/AccordionPanelDataAttributes.d.ts +25 -27
  20. package/accordion/panel/AccordionPanelDataAttributes.js +26 -29
  21. package/accordion/panel/AccordionPanelDataAttributes.mjs +26 -28
  22. package/accordion/root/AccordionRoot.d.mts +1 -0
  23. package/accordion/root/AccordionRoot.d.ts +1 -0
  24. package/accordion/root/AccordionRoot.js +2 -9
  25. package/accordion/root/AccordionRoot.mjs +2 -9
  26. package/accordion/root/AccordionRootDataAttributes.d.mts +8 -10
  27. package/accordion/root/AccordionRootDataAttributes.d.ts +8 -10
  28. package/accordion/root/AccordionRootDataAttributes.js +9 -12
  29. package/accordion/root/AccordionRootDataAttributes.mjs +8 -11
  30. package/accordion/trigger/AccordionTriggerDataAttributes.d.mts +8 -10
  31. package/accordion/trigger/AccordionTriggerDataAttributes.d.ts +8 -10
  32. package/accordion/trigger/AccordionTriggerDataAttributes.js +9 -12
  33. package/accordion/trigger/AccordionTriggerDataAttributes.mjs +8 -11
  34. package/alert-dialog/root/AlertDialogRoot.d.mts +1 -1
  35. package/alert-dialog/root/AlertDialogRoot.d.ts +1 -1
  36. package/alert-dialog/trigger/AlertDialogTriggerDataAttributes.d.mts +8 -10
  37. package/alert-dialog/trigger/AlertDialogTriggerDataAttributes.d.ts +8 -10
  38. package/alert-dialog/trigger/AlertDialogTriggerDataAttributes.js +9 -12
  39. package/alert-dialog/trigger/AlertDialogTriggerDataAttributes.mjs +9 -11
  40. package/autocomplete/clear/AutocompleteClearDataAttributes.d.mts +1 -1
  41. package/autocomplete/clear/AutocompleteClearDataAttributes.d.ts +1 -1
  42. package/autocomplete/clear/AutocompleteClearDataAttributes.js +11 -7
  43. package/autocomplete/clear/AutocompleteClearDataAttributes.mjs +1 -1
  44. package/autocomplete/input-group/AutocompleteInputGroupDataAttributes.d.mts +49 -51
  45. package/autocomplete/input-group/AutocompleteInputGroupDataAttributes.d.ts +49 -51
  46. package/autocomplete/input-group/AutocompleteInputGroupDataAttributes.js +50 -53
  47. package/autocomplete/input-group/AutocompleteInputGroupDataAttributes.mjs +49 -52
  48. package/autocomplete/item/AutocompleteItemDataAttributes.d.mts +8 -10
  49. package/autocomplete/item/AutocompleteItemDataAttributes.d.ts +8 -10
  50. package/autocomplete/item/AutocompleteItemDataAttributes.js +11 -13
  51. package/autocomplete/item/AutocompleteItemDataAttributes.mjs +10 -12
  52. package/autocomplete/root/AutocompleteRoot.d.mts +24 -2
  53. package/autocomplete/root/AutocompleteRoot.d.ts +24 -2
  54. package/autocomplete/root/AutocompleteRoot.js +10 -23
  55. package/autocomplete/root/AutocompleteRoot.mjs +10 -23
  56. package/autocomplete/trigger/AutocompleteTrigger.d.mts +4 -0
  57. package/autocomplete/trigger/AutocompleteTrigger.d.ts +4 -0
  58. package/autocomplete/trigger/AutocompleteTriggerDataAttributes.d.mts +53 -55
  59. package/autocomplete/trigger/AutocompleteTriggerDataAttributes.d.ts +53 -55
  60. package/autocomplete/trigger/AutocompleteTriggerDataAttributes.js +54 -57
  61. package/autocomplete/trigger/AutocompleteTriggerDataAttributes.mjs +54 -56
  62. package/avatar/image/AvatarImage.d.mts +6 -0
  63. package/avatar/image/AvatarImage.d.ts +6 -0
  64. package/avatar/image/AvatarImage.js +75 -9
  65. package/avatar/image/AvatarImage.mjs +75 -9
  66. package/avatar/image/AvatarImageDataAttributes.d.mts +16 -10
  67. package/avatar/image/AvatarImageDataAttributes.d.ts +16 -10
  68. package/avatar/image/AvatarImageDataAttributes.js +17 -12
  69. package/avatar/image/AvatarImageDataAttributes.mjs +17 -11
  70. package/avatar/image/useImageLoadingStatus.d.mts +1 -1
  71. package/avatar/image/useImageLoadingStatus.d.ts +1 -1
  72. package/avatar/image/useImageLoadingStatus.js +8 -4
  73. package/avatar/image/useImageLoadingStatus.mjs +8 -4
  74. package/button/ButtonDataAttributes.d.mts +4 -6
  75. package/button/ButtonDataAttributes.d.ts +4 -6
  76. package/button/ButtonDataAttributes.js +5 -8
  77. package/button/ButtonDataAttributes.mjs +4 -7
  78. package/checkbox/indicator/CheckboxIndicator.js +2 -0
  79. package/checkbox/indicator/CheckboxIndicator.mjs +2 -0
  80. package/checkbox/indicator/CheckboxIndicatorDataAttributes.d.mts +56 -58
  81. package/checkbox/indicator/CheckboxIndicatorDataAttributes.d.ts +56 -58
  82. package/checkbox/indicator/CheckboxIndicatorDataAttributes.js +57 -60
  83. package/checkbox/indicator/CheckboxIndicatorDataAttributes.mjs +57 -59
  84. package/checkbox/root/CheckboxRoot.js +32 -44
  85. package/checkbox/root/CheckboxRoot.mjs +32 -44
  86. package/checkbox/root/CheckboxRootDataAttributes.d.mts +48 -50
  87. package/checkbox/root/CheckboxRootDataAttributes.d.ts +48 -50
  88. package/checkbox/root/CheckboxRootDataAttributes.js +49 -52
  89. package/checkbox/root/CheckboxRootDataAttributes.mjs +48 -51
  90. package/checkbox/utils/getCheckboxStateAttributesMapping.js +4 -2
  91. package/checkbox/utils/getCheckboxStateAttributesMapping.mjs +3 -2
  92. package/checkbox-group/CheckboxGroup.js +17 -8
  93. package/checkbox-group/CheckboxGroup.mjs +17 -8
  94. package/checkbox-group/CheckboxGroupContext.d.mts +6 -0
  95. package/checkbox-group/CheckboxGroupContext.d.ts +6 -0
  96. package/checkbox-group/CheckboxGroupDataAttributes.d.mts +4 -6
  97. package/checkbox-group/CheckboxGroupDataAttributes.d.ts +4 -6
  98. package/checkbox-group/CheckboxGroupDataAttributes.js +5 -8
  99. package/checkbox-group/CheckboxGroupDataAttributes.mjs +4 -7
  100. package/checkbox-group/useCheckboxGroupParent.d.mts +5 -3
  101. package/checkbox-group/useCheckboxGroupParent.d.ts +5 -3
  102. package/checkbox-group/useCheckboxGroupParent.js +37 -9
  103. package/checkbox-group/useCheckboxGroupParent.mjs +37 -9
  104. package/collapsible/panel/CollapsiblePanel.js +3 -3
  105. package/collapsible/panel/CollapsiblePanel.mjs +1 -1
  106. package/collapsible/panel/CollapsiblePanelCssVars.d.mts +10 -12
  107. package/collapsible/panel/CollapsiblePanelCssVars.d.ts +10 -12
  108. package/collapsible/panel/CollapsiblePanelCssVars.js +11 -14
  109. package/collapsible/panel/CollapsiblePanelCssVars.mjs +10 -13
  110. package/collapsible/panel/CollapsiblePanelDataAttributes.d.mts +16 -18
  111. package/collapsible/panel/CollapsiblePanelDataAttributes.d.ts +16 -18
  112. package/collapsible/panel/CollapsiblePanelDataAttributes.js +17 -20
  113. package/collapsible/panel/CollapsiblePanelDataAttributes.mjs +17 -19
  114. package/collapsible/panel/useCollapsiblePanel.js +2 -2
  115. package/collapsible/panel/useCollapsiblePanel.mjs +1 -1
  116. package/collapsible/root/CollapsibleRootDataAttributes.d.mts +16 -18
  117. package/collapsible/root/CollapsibleRootDataAttributes.d.ts +16 -18
  118. package/collapsible/root/CollapsibleRootDataAttributes.js +17 -20
  119. package/collapsible/root/CollapsibleRootDataAttributes.mjs +17 -19
  120. package/collapsible/root/useCollapsibleRoot.js +1 -1
  121. package/collapsible/root/useCollapsibleRoot.mjs +1 -1
  122. package/collapsible/trigger/CollapsibleTriggerDataAttributes.d.mts +4 -6
  123. package/collapsible/trigger/CollapsibleTriggerDataAttributes.d.ts +4 -6
  124. package/collapsible/trigger/CollapsibleTriggerDataAttributes.js +5 -8
  125. package/collapsible/trigger/CollapsibleTriggerDataAttributes.mjs +4 -7
  126. package/combobox/arrow/ComboboxArrow.js +1 -3
  127. package/combobox/arrow/ComboboxArrow.mjs +1 -3
  128. package/combobox/arrow/ComboboxArrowDataAttributes.d.mts +22 -24
  129. package/combobox/arrow/ComboboxArrowDataAttributes.d.ts +22 -24
  130. package/combobox/arrow/ComboboxArrowDataAttributes.js +23 -26
  131. package/combobox/arrow/ComboboxArrowDataAttributes.mjs +23 -25
  132. package/combobox/backdrop/ComboboxBackdrop.js +3 -5
  133. package/combobox/backdrop/ComboboxBackdrop.mjs +3 -5
  134. package/combobox/backdrop/ComboboxBackdropDataAttributes.d.mts +16 -18
  135. package/combobox/backdrop/ComboboxBackdropDataAttributes.d.ts +16 -18
  136. package/combobox/backdrop/ComboboxBackdropDataAttributes.js +17 -20
  137. package/combobox/backdrop/ComboboxBackdropDataAttributes.mjs +17 -19
  138. package/combobox/chip/ComboboxChip.js +7 -9
  139. package/combobox/chip/ComboboxChip.mjs +7 -9
  140. package/combobox/chip-remove/ComboboxChipRemove.js +9 -11
  141. package/combobox/chip-remove/ComboboxChipRemove.mjs +9 -11
  142. package/combobox/chips/ComboboxChips.js +4 -6
  143. package/combobox/chips/ComboboxChips.mjs +4 -6
  144. package/combobox/clear/ComboboxClear.js +14 -16
  145. package/combobox/clear/ComboboxClear.mjs +14 -16
  146. package/combobox/clear/ComboboxClearDataAttributes.d.mts +20 -22
  147. package/combobox/clear/ComboboxClearDataAttributes.d.ts +20 -22
  148. package/combobox/clear/ComboboxClearDataAttributes.js +21 -24
  149. package/combobox/clear/ComboboxClearDataAttributes.mjs +21 -23
  150. package/combobox/collection/GroupCollectionContext.d.mts +1 -1
  151. package/combobox/collection/GroupCollectionContext.d.ts +1 -1
  152. package/combobox/empty/ComboboxEmpty.js +1 -1
  153. package/combobox/empty/ComboboxEmpty.mjs +1 -1
  154. package/combobox/group/ComboboxGroup.js +6 -1
  155. package/combobox/group/ComboboxGroup.mjs +6 -1
  156. package/combobox/group-label/ComboboxGroupLabel.js +2 -1
  157. package/combobox/group-label/ComboboxGroupLabel.mjs +2 -1
  158. package/combobox/index.d.mts +3 -1
  159. package/combobox/index.d.ts +3 -1
  160. package/combobox/index.parts.d.mts +2 -1
  161. package/combobox/index.parts.d.ts +2 -1
  162. package/combobox/index.parts.js +8 -1
  163. package/combobox/index.parts.mjs +2 -1
  164. package/combobox/input/ComboboxInput.js +44 -40
  165. package/combobox/input/ComboboxInput.mjs +44 -40
  166. package/combobox/input/ComboboxInputDataAttributes.d.mts +53 -55
  167. package/combobox/input/ComboboxInputDataAttributes.d.ts +53 -55
  168. package/combobox/input/ComboboxInputDataAttributes.js +54 -57
  169. package/combobox/input/ComboboxInputDataAttributes.mjs +54 -56
  170. package/combobox/input-group/ComboboxInputGroup.js +7 -9
  171. package/combobox/input-group/ComboboxInputGroup.mjs +7 -9
  172. package/combobox/input-group/ComboboxInputGroupDataAttributes.d.mts +53 -55
  173. package/combobox/input-group/ComboboxInputGroupDataAttributes.d.ts +53 -55
  174. package/combobox/input-group/ComboboxInputGroupDataAttributes.js +54 -57
  175. package/combobox/input-group/ComboboxInputGroupDataAttributes.mjs +53 -56
  176. package/combobox/item/ComboboxItem.js +28 -26
  177. package/combobox/item/ComboboxItem.mjs +29 -27
  178. package/combobox/item/ComboboxItemDataAttributes.d.mts +12 -14
  179. package/combobox/item/ComboboxItemDataAttributes.d.ts +12 -14
  180. package/combobox/item/ComboboxItemDataAttributes.js +13 -16
  181. package/combobox/item/ComboboxItemDataAttributes.mjs +12 -15
  182. package/combobox/item-indicator/ComboboxItemIndicator.js +2 -0
  183. package/combobox/item-indicator/ComboboxItemIndicator.mjs +2 -0
  184. package/combobox/item-indicator/ComboboxItemIndicatorDataAttributes.d.mts +8 -10
  185. package/combobox/item-indicator/ComboboxItemIndicatorDataAttributes.d.ts +8 -10
  186. package/combobox/item-indicator/ComboboxItemIndicatorDataAttributes.js +9 -12
  187. package/combobox/item-indicator/ComboboxItemIndicatorDataAttributes.mjs +9 -11
  188. package/combobox/items/createItems.d.mts +53 -0
  189. package/combobox/items/createItems.d.ts +53 -0
  190. package/combobox/items/createItems.js +93 -0
  191. package/combobox/items/createItems.mjs +88 -0
  192. package/combobox/items/itemCollection.d.mts +39 -0
  193. package/combobox/items/itemCollection.d.ts +39 -0
  194. package/combobox/items/itemCollection.js +33 -0
  195. package/combobox/items/itemCollection.mjs +27 -0
  196. package/combobox/label/ComboboxLabel.js +4 -6
  197. package/combobox/label/ComboboxLabel.mjs +4 -6
  198. package/combobox/list/ComboboxList.js +13 -11
  199. package/combobox/list/ComboboxList.mjs +13 -11
  200. package/combobox/popup/ComboboxPopup.js +17 -19
  201. package/combobox/popup/ComboboxPopup.mjs +17 -19
  202. package/combobox/popup/ComboboxPopupDataAttributes.d.mts +34 -37
  203. package/combobox/popup/ComboboxPopupDataAttributes.d.ts +34 -37
  204. package/combobox/popup/ComboboxPopupDataAttributes.js +35 -39
  205. package/combobox/popup/ComboboxPopupDataAttributes.mjs +35 -38
  206. package/combobox/portal/ComboboxPortal.js +2 -4
  207. package/combobox/portal/ComboboxPortal.mjs +2 -4
  208. package/combobox/positioner/ComboboxPositioner.js +10 -12
  209. package/combobox/positioner/ComboboxPositioner.mjs +10 -12
  210. package/combobox/positioner/ComboboxPositionerCssVars.d.mts +25 -27
  211. package/combobox/positioner/ComboboxPositionerCssVars.d.ts +25 -27
  212. package/combobox/positioner/ComboboxPositionerCssVars.js +26 -29
  213. package/combobox/positioner/ComboboxPositionerCssVars.mjs +25 -28
  214. package/combobox/positioner/ComboboxPositionerDataAttributes.d.mts +26 -28
  215. package/combobox/positioner/ComboboxPositionerDataAttributes.d.ts +26 -28
  216. package/combobox/positioner/ComboboxPositionerDataAttributes.js +27 -30
  217. package/combobox/positioner/ComboboxPositionerDataAttributes.mjs +27 -29
  218. package/combobox/root/AriaCombobox.d.mts +32 -11
  219. package/combobox/root/AriaCombobox.d.ts +32 -11
  220. package/combobox/root/AriaCombobox.js +308 -168
  221. package/combobox/root/AriaCombobox.mjs +310 -171
  222. package/combobox/root/ComboboxRoot.d.mts +7 -3
  223. package/combobox/root/ComboboxRoot.d.ts +7 -3
  224. package/combobox/root/ComboboxRootContext.d.mts +5 -1
  225. package/combobox/root/ComboboxRootContext.d.ts +5 -1
  226. package/combobox/root/utils/index.d.mts +5 -2
  227. package/combobox/root/utils/index.d.ts +5 -2
  228. package/combobox/root/utils/index.js +2 -1
  229. package/combobox/root/utils/index.mjs +2 -1
  230. package/combobox/root/utils/useFilter.d.mts +2 -1
  231. package/combobox/root/utils/useFilter.d.ts +2 -1
  232. package/combobox/root/utils/useFilteredItems.d.mts +1 -0
  233. package/combobox/root/utils/useFilteredItems.d.ts +1 -0
  234. package/combobox/root/utils/useFilteredItems.js +1 -0
  235. package/combobox/root/utils/useFilteredItems.mjs +1 -0
  236. package/combobox/store.d.mts +55 -28
  237. package/combobox/store.d.ts +55 -28
  238. package/combobox/store.js +5 -0
  239. package/combobox/store.mjs +6 -0
  240. package/combobox/trigger/ComboboxTrigger.d.mts +4 -0
  241. package/combobox/trigger/ComboboxTrigger.d.ts +4 -0
  242. package/combobox/trigger/ComboboxTrigger.js +34 -33
  243. package/combobox/trigger/ComboboxTrigger.mjs +34 -33
  244. package/combobox/trigger/ComboboxTriggerDataAttributes.d.mts +57 -59
  245. package/combobox/trigger/ComboboxTriggerDataAttributes.d.ts +57 -59
  246. package/combobox/trigger/ComboboxTriggerDataAttributes.js +58 -61
  247. package/combobox/trigger/ComboboxTriggerDataAttributes.mjs +58 -60
  248. package/combobox/utils/ComboboxInternalDismissButton.js +1 -1
  249. package/combobox/utils/ComboboxInternalDismissButton.mjs +1 -1
  250. package/combobox/utils/handleInputPress.d.mts +1 -1
  251. package/combobox/utils/handleInputPress.d.ts +1 -1
  252. package/combobox/utils/handleInputPress.js +4 -4
  253. package/combobox/utils/handleInputPress.mjs +4 -4
  254. package/combobox/utils/parts.d.mts +1 -1
  255. package/combobox/utils/parts.d.ts +1 -1
  256. package/combobox/utils/parts.js +6 -8
  257. package/combobox/utils/parts.mjs +6 -8
  258. package/combobox/utils/stateAttributesMapping.d.mts +4 -4
  259. package/combobox/utils/stateAttributesMapping.d.ts +4 -4
  260. package/combobox/utils/stateAttributesMapping.js +4 -2
  261. package/combobox/utils/stateAttributesMapping.mjs +3 -2
  262. package/combobox/value/ComboboxValue.d.mts +5 -0
  263. package/combobox/value/ComboboxValue.d.ts +5 -0
  264. package/combobox/value/ComboboxValue.js +6 -8
  265. package/combobox/value/ComboboxValue.mjs +6 -8
  266. package/context-menu/index.d.mts +1 -1
  267. package/context-menu/index.d.ts +1 -1
  268. package/context-menu/index.parts.d.mts +1 -1
  269. package/context-menu/index.parts.d.ts +1 -1
  270. package/context-menu/index.parts.js +2 -2
  271. package/context-menu/index.parts.mjs +1 -1
  272. package/context-menu/positioner/ContextMenuPositioner.d.mts +95 -0
  273. package/context-menu/positioner/ContextMenuPositioner.d.ts +95 -0
  274. package/context-menu/positioner/ContextMenuPositioner.js +15 -0
  275. package/context-menu/positioner/ContextMenuPositioner.mjs +10 -0
  276. package/context-menu/positioner/ContextMenuPositionerCssVars.d.mts +1 -0
  277. package/context-menu/positioner/ContextMenuPositionerCssVars.d.ts +1 -0
  278. package/context-menu/positioner/ContextMenuPositionerCssVars.js +16 -0
  279. package/context-menu/positioner/ContextMenuPositionerCssVars.mjs +1 -0
  280. package/context-menu/positioner/ContextMenuPositionerDataAttributes.d.mts +1 -0
  281. package/context-menu/positioner/ContextMenuPositionerDataAttributes.d.ts +1 -0
  282. package/context-menu/positioner/ContextMenuPositionerDataAttributes.js +16 -0
  283. package/context-menu/positioner/ContextMenuPositionerDataAttributes.mjs +1 -0
  284. package/context-menu/root/ContextMenuRoot.d.mts +7 -2
  285. package/context-menu/root/ContextMenuRoot.d.ts +7 -2
  286. package/context-menu/trigger/ContextMenuTriggerDataAttributes.d.mts +8 -10
  287. package/context-menu/trigger/ContextMenuTriggerDataAttributes.d.ts +8 -10
  288. package/context-menu/trigger/ContextMenuTriggerDataAttributes.js +9 -12
  289. package/context-menu/trigger/ContextMenuTriggerDataAttributes.mjs +9 -11
  290. package/csp-provider/CSPProvider.d.mts +1 -1
  291. package/csp-provider/CSPProvider.d.ts +1 -1
  292. package/dialog/backdrop/DialogBackdropDataAttributes.d.mts +16 -18
  293. package/dialog/backdrop/DialogBackdropDataAttributes.d.ts +16 -18
  294. package/dialog/backdrop/DialogBackdropDataAttributes.js +17 -20
  295. package/dialog/backdrop/DialogBackdropDataAttributes.mjs +17 -19
  296. package/dialog/close/DialogCloseDataAttributes.d.mts +4 -6
  297. package/dialog/close/DialogCloseDataAttributes.d.ts +4 -6
  298. package/dialog/close/DialogCloseDataAttributes.js +5 -8
  299. package/dialog/close/DialogCloseDataAttributes.mjs +4 -7
  300. package/dialog/popup/DialogPopup.js +2 -1
  301. package/dialog/popup/DialogPopup.mjs +2 -1
  302. package/dialog/popup/DialogPopupCssVars.d.mts +5 -7
  303. package/dialog/popup/DialogPopupCssVars.d.ts +5 -7
  304. package/dialog/popup/DialogPopupCssVars.js +6 -9
  305. package/dialog/popup/DialogPopupCssVars.mjs +5 -8
  306. package/dialog/popup/DialogPopupDataAttributes.d.mts +24 -26
  307. package/dialog/popup/DialogPopupDataAttributes.d.ts +24 -26
  308. package/dialog/popup/DialogPopupDataAttributes.js +25 -28
  309. package/dialog/popup/DialogPopupDataAttributes.mjs +25 -27
  310. package/dialog/root/DialogRoot.d.mts +1 -1
  311. package/dialog/root/DialogRoot.d.ts +1 -1
  312. package/dialog/root/DialogRoot.js +5 -3
  313. package/dialog/root/DialogRoot.mjs +4 -2
  314. package/dialog/root/useRenderDialogRoot.d.mts +2 -1
  315. package/dialog/root/useRenderDialogRoot.d.ts +2 -1
  316. package/dialog/store/DialogStore.js +2 -7
  317. package/dialog/store/DialogStore.mjs +3 -8
  318. package/dialog/trigger/DialogTrigger.js +2 -1
  319. package/dialog/trigger/DialogTrigger.mjs +2 -1
  320. package/dialog/trigger/DialogTriggerDataAttributes.d.mts +8 -10
  321. package/dialog/trigger/DialogTriggerDataAttributes.d.ts +8 -10
  322. package/dialog/trigger/DialogTriggerDataAttributes.js +9 -12
  323. package/dialog/trigger/DialogTriggerDataAttributes.mjs +9 -11
  324. package/dialog/utils/stateAttributesMapping.js +3 -1
  325. package/dialog/utils/stateAttributesMapping.mjs +3 -1
  326. package/dialog/viewport/DialogViewportDataAttributes.d.mts +24 -26
  327. package/dialog/viewport/DialogViewportDataAttributes.d.ts +24 -26
  328. package/dialog/viewport/DialogViewportDataAttributes.js +25 -28
  329. package/dialog/viewport/DialogViewportDataAttributes.mjs +25 -27
  330. package/docs/index.md +2 -1
  331. package/docs/react/components/accordion.md +326 -5
  332. package/docs/react/components/alert-dialog.md +376 -16
  333. package/docs/react/components/autocomplete.md +49 -43
  334. package/docs/react/components/avatar.md +49 -0
  335. package/docs/react/components/button.md +7 -3
  336. package/docs/react/components/collapsible.md +18 -0
  337. package/docs/react/components/combobox.md +990 -226
  338. package/docs/react/components/context-menu.md +47 -49
  339. package/docs/react/components/dialog.md +358 -14
  340. package/docs/react/components/field.md +14 -14
  341. package/docs/react/components/menu.md +29 -28
  342. package/docs/react/components/navigation-menu.md +4 -0
  343. package/docs/react/components/popover.md +1 -0
  344. package/docs/react/components/preview-card.md +5 -4
  345. package/docs/react/components/select.md +7 -7
  346. package/docs/react/components/slider.md +414 -49
  347. package/docs/react/components/tabs.md +1 -4
  348. package/docs/react/components/toast.md +19 -4
  349. package/docs/react/overview/community.md +2 -5
  350. package/docs/react/overview/releases/v1-8-0.md +148 -0
  351. package/docs/react/overview/releases.md +11 -1
  352. package/docs/react/utils/use-render.md +4 -362
  353. package/drawer/backdrop/DrawerBackdrop.js +4 -4
  354. package/drawer/backdrop/DrawerBackdrop.mjs +2 -2
  355. package/drawer/backdrop/DrawerBackdropCssVars.d.mts +5 -7
  356. package/drawer/backdrop/DrawerBackdropCssVars.d.ts +5 -7
  357. package/drawer/backdrop/DrawerBackdropCssVars.js +6 -9
  358. package/drawer/backdrop/DrawerBackdropCssVars.mjs +5 -8
  359. package/drawer/backdrop/DrawerBackdropDataAttributes.d.mts +16 -18
  360. package/drawer/backdrop/DrawerBackdropDataAttributes.d.ts +16 -18
  361. package/drawer/backdrop/DrawerBackdropDataAttributes.js +17 -20
  362. package/drawer/backdrop/DrawerBackdropDataAttributes.mjs +17 -19
  363. package/drawer/content/DrawerContent.js +2 -2
  364. package/drawer/content/DrawerContent.mjs +1 -1
  365. package/drawer/indent/DrawerIndent.js +9 -9
  366. package/drawer/indent/DrawerIndent.mjs +2 -2
  367. package/drawer/popup/DrawerPopup.js +22 -22
  368. package/drawer/popup/DrawerPopup.mjs +3 -3
  369. package/drawer/popup/DrawerPopupCssVars.d.mts +35 -37
  370. package/drawer/popup/DrawerPopupCssVars.d.ts +35 -37
  371. package/drawer/popup/DrawerPopupCssVars.js +36 -39
  372. package/drawer/popup/DrawerPopupCssVars.mjs +35 -38
  373. package/drawer/popup/DrawerPopupDataAttributes.d.mts +41 -43
  374. package/drawer/popup/DrawerPopupDataAttributes.d.ts +41 -43
  375. package/drawer/popup/DrawerPopupDataAttributes.js +42 -45
  376. package/drawer/popup/DrawerPopupDataAttributes.mjs +42 -44
  377. package/drawer/provider/DrawerProvider.d.mts +1 -1
  378. package/drawer/provider/DrawerProvider.d.ts +1 -1
  379. package/drawer/root/DrawerRoot.d.mts +1 -1
  380. package/drawer/root/DrawerRoot.d.ts +1 -1
  381. package/drawer/root/useDrawerSnapPoints.js +1 -1
  382. package/drawer/root/useDrawerSnapPoints.mjs +1 -1
  383. package/drawer/swipe-area/DrawerSwipeArea.js +34 -25
  384. package/drawer/swipe-area/DrawerSwipeArea.mjs +14 -5
  385. package/drawer/swipe-area/DrawerSwipeAreaDataAttributes.d.mts +21 -23
  386. package/drawer/swipe-area/DrawerSwipeAreaDataAttributes.d.ts +21 -23
  387. package/drawer/swipe-area/DrawerSwipeAreaDataAttributes.js +22 -25
  388. package/drawer/swipe-area/DrawerSwipeAreaDataAttributes.mjs +22 -24
  389. package/drawer/viewport/DrawerViewport.js +66 -35
  390. package/drawer/viewport/DrawerViewport.mjs +54 -23
  391. package/drawer/viewport/DrawerViewportCssVars.d.mts +6 -8
  392. package/drawer/viewport/DrawerViewportCssVars.d.ts +6 -8
  393. package/drawer/viewport/DrawerViewportCssVars.js +7 -10
  394. package/drawer/viewport/DrawerViewportCssVars.mjs +6 -9
  395. package/drawer/viewport/DrawerViewportDataAttributes.d.mts +20 -22
  396. package/drawer/viewport/DrawerViewportDataAttributes.d.ts +20 -22
  397. package/drawer/viewport/DrawerViewportDataAttributes.js +21 -24
  398. package/drawer/viewport/DrawerViewportDataAttributes.mjs +21 -23
  399. package/drawer/virtual-keyboard-provider/DrawerVirtualKeyboardProvider.d.mts +1 -1
  400. package/drawer/virtual-keyboard-provider/DrawerVirtualKeyboardProvider.d.ts +1 -1
  401. package/drawer/virtual-keyboard-provider/DrawerVirtualKeyboardProvider.js +4 -4
  402. package/drawer/virtual-keyboard-provider/DrawerVirtualKeyboardProvider.mjs +2 -2
  403. package/field/control/FieldControl.js +67 -20
  404. package/field/control/FieldControl.mjs +67 -20
  405. package/field/control/FieldControlDataAttributes.d.mts +28 -30
  406. package/field/control/FieldControlDataAttributes.d.ts +28 -30
  407. package/field/control/FieldControlDataAttributes.js +29 -32
  408. package/field/control/FieldControlDataAttributes.mjs +28 -31
  409. package/field/description/FieldDescriptionDataAttributes.d.mts +28 -30
  410. package/field/description/FieldDescriptionDataAttributes.d.ts +28 -30
  411. package/field/description/FieldDescriptionDataAttributes.js +29 -32
  412. package/field/description/FieldDescriptionDataAttributes.mjs +28 -31
  413. package/field/error/FieldErrorDataAttributes.d.mts +36 -38
  414. package/field/error/FieldErrorDataAttributes.d.ts +36 -38
  415. package/field/error/FieldErrorDataAttributes.js +37 -40
  416. package/field/error/FieldErrorDataAttributes.mjs +37 -39
  417. package/field/item/FieldItemDataAttributes.d.mts +28 -30
  418. package/field/item/FieldItemDataAttributes.d.ts +28 -30
  419. package/field/item/FieldItemDataAttributes.js +29 -32
  420. package/field/item/FieldItemDataAttributes.mjs +28 -31
  421. package/field/label/FieldLabelDataAttributes.d.mts +28 -30
  422. package/field/label/FieldLabelDataAttributes.d.ts +28 -30
  423. package/field/label/FieldLabelDataAttributes.js +29 -32
  424. package/field/label/FieldLabelDataAttributes.mjs +28 -31
  425. package/field/root/FieldRoot.d.mts +3 -2
  426. package/field/root/FieldRoot.d.ts +3 -2
  427. package/field/root/FieldRoot.js +4 -2
  428. package/field/root/FieldRoot.mjs +4 -2
  429. package/field/root/FieldRootDataAttributes.d.mts +28 -30
  430. package/field/root/FieldRootDataAttributes.d.ts +28 -30
  431. package/field/root/FieldRootDataAttributes.js +29 -32
  432. package/field/root/FieldRootDataAttributes.mjs +28 -31
  433. package/field/root/useFieldValidation.d.mts +3 -2
  434. package/field/root/useFieldValidation.d.ts +3 -2
  435. package/field/root/useFieldValidation.js +116 -91
  436. package/field/root/useFieldValidation.mjs +116 -91
  437. package/floating-ui-react/components/FloatingDelayGroup.js +2 -1
  438. package/floating-ui-react/components/FloatingDelayGroup.mjs +2 -1
  439. package/floating-ui-react/components/FloatingPortal.d.mts +5 -0
  440. package/floating-ui-react/components/FloatingPortal.d.ts +5 -0
  441. package/floating-ui-react/components/FloatingPortal.js +2 -0
  442. package/floating-ui-react/components/FloatingPortal.mjs +2 -0
  443. package/floating-ui-react/hooks/useDismiss.d.mts +1 -1
  444. package/floating-ui-react/hooks/useDismiss.d.ts +1 -1
  445. package/floating-ui-react/hooks/useDismiss.js +65 -10
  446. package/floating-ui-react/hooks/useDismiss.mjs +66 -11
  447. package/floating-ui-react/hooks/useFloatingRootContext.js +0 -2
  448. package/floating-ui-react/hooks/useFloatingRootContext.mjs +0 -2
  449. package/floating-ui-react/hooks/useFocus.js +1 -0
  450. package/floating-ui-react/hooks/useFocus.mjs +1 -0
  451. package/floating-ui-react/hooks/useHoverReferenceInteraction.js +1 -1
  452. package/floating-ui-react/hooks/useHoverReferenceInteraction.mjs +1 -1
  453. package/floating-ui-react/hooks/useListNavigation.js +1 -2
  454. package/floating-ui-react/hooks/useListNavigation.mjs +1 -2
  455. package/floating-ui-react/hooks/useSyncedFloatingRootContext.d.mts +9 -4
  456. package/floating-ui-react/hooks/useSyncedFloatingRootContext.d.ts +9 -4
  457. package/floating-ui-react/hooks/useSyncedFloatingRootContext.js +5 -0
  458. package/floating-ui-react/hooks/useSyncedFloatingRootContext.mjs +6 -0
  459. package/floating-ui-react/middleware/arrow.js +11 -4
  460. package/floating-ui-react/middleware/arrow.mjs +11 -4
  461. package/floating-ui-react/utils/element.d.mts +1 -1
  462. package/floating-ui-react/utils/element.d.ts +1 -1
  463. package/floating-ui-react/utils/element.js +5 -3
  464. package/floating-ui-react/utils/element.mjs +4 -3
  465. package/form/Form.js +13 -7
  466. package/form/Form.mjs +13 -7
  467. package/index.js +1 -1
  468. package/index.mjs +1 -1
  469. package/input/InputDataAttributes.d.mts +28 -30
  470. package/input/InputDataAttributes.d.ts +28 -30
  471. package/input/InputDataAttributes.js +29 -32
  472. package/input/InputDataAttributes.mjs +28 -31
  473. package/internals/PrehydrationScript.d.mts +2 -1
  474. package/internals/PrehydrationScript.d.ts +2 -1
  475. package/internals/TransitionStatusDataAttributes.d.mts +8 -0
  476. package/internals/TransitionStatusDataAttributes.d.ts +8 -0
  477. package/internals/TransitionStatusDataAttributes.js +15 -0
  478. package/internals/TransitionStatusDataAttributes.mjs +9 -0
  479. package/internals/composite/list/CompositeList.d.mts +1 -1
  480. package/internals/composite/list/CompositeList.d.ts +1 -1
  481. package/internals/composite/list/CompositeList.js +10 -2
  482. package/internals/composite/list/CompositeList.mjs +10 -2
  483. package/internals/composite/root/CompositeRoot.d.mts +1 -1
  484. package/internals/composite/root/CompositeRoot.d.ts +1 -1
  485. package/internals/composite/root/useCompositeRoot.js +45 -3
  486. package/internals/composite/root/useCompositeRoot.mjs +44 -2
  487. package/internals/field-constants/constants.js +4 -2
  488. package/internals/field-constants/constants.mjs +3 -2
  489. package/internals/field-register-control/useFieldControlRegistration.d.mts +1 -0
  490. package/internals/field-register-control/useFieldControlRegistration.d.ts +1 -0
  491. package/internals/field-register-control/useFieldControlRegistration.js +8 -0
  492. package/internals/field-register-control/useFieldControlRegistration.mjs +8 -0
  493. package/internals/filter.js +1 -1
  494. package/internals/filter.mjs +1 -1
  495. package/internals/form-context/FormContext.d.mts +1 -1
  496. package/internals/form-context/FormContext.d.ts +1 -1
  497. package/internals/form-context/FormContext.js +2 -2
  498. package/internals/form-context/FormContext.mjs +2 -2
  499. package/internals/itemEquality.d.mts +4 -1
  500. package/internals/itemEquality.d.ts +4 -1
  501. package/internals/itemEquality.js +40 -5
  502. package/internals/itemEquality.mjs +38 -5
  503. package/internals/labelable-provider/LabelableContext.d.mts +3 -1
  504. package/internals/labelable-provider/LabelableContext.d.ts +3 -1
  505. package/internals/labelable-provider/LabelableContext.js +1 -0
  506. package/internals/labelable-provider/LabelableContext.mjs +1 -0
  507. package/internals/labelable-provider/LabelableProvider.d.mts +0 -2
  508. package/internals/labelable-provider/LabelableProvider.d.ts +0 -2
  509. package/internals/labelable-provider/LabelableProvider.js +21 -12
  510. package/internals/labelable-provider/LabelableProvider.mjs +21 -12
  511. package/internals/labelable-provider/useLabel.d.mts +2 -2
  512. package/internals/labelable-provider/useLabel.d.ts +2 -2
  513. package/internals/labelable-provider/useLabel.js +1 -1
  514. package/internals/labelable-provider/useLabel.mjs +1 -1
  515. package/internals/labelable-provider/useLabelableId.d.mts +6 -7
  516. package/internals/labelable-provider/useLabelableId.d.ts +6 -7
  517. package/internals/labelable-provider/useLabelableId.js +27 -20
  518. package/internals/labelable-provider/useLabelableId.mjs +27 -20
  519. package/internals/resolveValueLabel.d.mts +1 -0
  520. package/internals/resolveValueLabel.d.ts +1 -0
  521. package/internals/resolveValueLabel.js +13 -3
  522. package/internals/resolveValueLabel.mjs +12 -3
  523. package/internals/stateAttributesMapping.d.mts +2 -10
  524. package/internals/stateAttributesMapping.d.ts +2 -10
  525. package/internals/stateAttributesMapping.js +5 -13
  526. package/internals/stateAttributesMapping.mjs +4 -13
  527. package/internals/temporal-adapter-luxon/TemporalAdapterLuxon.d.mts +1 -1
  528. package/internals/temporal-adapter-luxon/TemporalAdapterLuxon.d.ts +1 -1
  529. package/internals/useAnchorPositioning.js +34 -25
  530. package/internals/useAnchorPositioning.mjs +34 -25
  531. package/internals/useAnimationsFinished.d.mts +4 -1
  532. package/internals/useAnimationsFinished.d.ts +4 -1
  533. package/internals/useAnimationsFinished.js +45 -5
  534. package/internals/useAnimationsFinished.mjs +44 -5
  535. package/internals/useOpenChangeComplete.d.mts +6 -0
  536. package/internals/useOpenChangeComplete.d.ts +6 -0
  537. package/internals/useOpenChangeComplete.js +2 -1
  538. package/internals/useOpenChangeComplete.mjs +2 -1
  539. package/internals/usePressAndHold.js +8 -0
  540. package/internals/usePressAndHold.mjs +8 -0
  541. package/internals/useRenderElement.js +27 -15
  542. package/internals/useRenderElement.mjs +27 -15
  543. package/internals/useTransitionStatus.d.mts +5 -1
  544. package/internals/useTransitionStatus.d.ts +5 -1
  545. package/internals/useTransitionStatus.js +9 -2
  546. package/internals/useTransitionStatus.mjs +9 -2
  547. package/menu/arrow/MenuArrowDataAttributes.d.mts +22 -24
  548. package/menu/arrow/MenuArrowDataAttributes.d.ts +22 -24
  549. package/menu/arrow/MenuArrowDataAttributes.js +23 -26
  550. package/menu/arrow/MenuArrowDataAttributes.mjs +23 -25
  551. package/menu/backdrop/MenuBackdropDataAttributes.d.mts +16 -18
  552. package/menu/backdrop/MenuBackdropDataAttributes.d.ts +16 -18
  553. package/menu/backdrop/MenuBackdropDataAttributes.js +17 -20
  554. package/menu/backdrop/MenuBackdropDataAttributes.mjs +17 -19
  555. package/menu/checkbox-item/MenuCheckboxItemDataAttributes.d.mts +16 -18
  556. package/menu/checkbox-item/MenuCheckboxItemDataAttributes.d.ts +16 -18
  557. package/menu/checkbox-item/MenuCheckboxItemDataAttributes.js +17 -20
  558. package/menu/checkbox-item/MenuCheckboxItemDataAttributes.mjs +16 -19
  559. package/menu/checkbox-item-indicator/MenuCheckboxItemIndicator.js +2 -0
  560. package/menu/checkbox-item-indicator/MenuCheckboxItemIndicator.mjs +2 -0
  561. package/menu/checkbox-item-indicator/MenuCheckboxItemIndicatorDataAttributes.d.mts +20 -22
  562. package/menu/checkbox-item-indicator/MenuCheckboxItemIndicatorDataAttributes.d.ts +20 -22
  563. package/menu/checkbox-item-indicator/MenuCheckboxItemIndicatorDataAttributes.js +21 -24
  564. package/menu/checkbox-item-indicator/MenuCheckboxItemIndicatorDataAttributes.mjs +21 -23
  565. package/menu/group-label/MenuGroupLabel.js +1 -1
  566. package/menu/group-label/MenuGroupLabel.mjs +1 -1
  567. package/menu/item/MenuItemDataAttributes.d.mts +8 -10
  568. package/menu/item/MenuItemDataAttributes.d.ts +8 -10
  569. package/menu/item/MenuItemDataAttributes.js +9 -12
  570. package/menu/item/MenuItemDataAttributes.mjs +8 -11
  571. package/menu/link-item/MenuLinkItemDataAttributes.d.mts +4 -6
  572. package/menu/link-item/MenuLinkItemDataAttributes.d.ts +4 -6
  573. package/menu/link-item/MenuLinkItemDataAttributes.js +5 -8
  574. package/menu/link-item/MenuLinkItemDataAttributes.mjs +4 -7
  575. package/menu/popup/MenuPopupDataAttributes.d.mts +31 -33
  576. package/menu/popup/MenuPopupDataAttributes.d.ts +31 -33
  577. package/menu/popup/MenuPopupDataAttributes.js +32 -35
  578. package/menu/popup/MenuPopupDataAttributes.mjs +32 -34
  579. package/menu/portal/MenuPortal.js +9 -2
  580. package/menu/portal/MenuPortal.mjs +9 -2
  581. package/menu/positioner/MenuPositioner.d.mts +17 -1
  582. package/menu/positioner/MenuPositioner.d.ts +17 -1
  583. package/menu/positioner/MenuPositionerCssVars.d.mts +37 -39
  584. package/menu/positioner/MenuPositionerCssVars.d.ts +37 -39
  585. package/menu/positioner/MenuPositionerCssVars.js +38 -41
  586. package/menu/positioner/MenuPositionerCssVars.mjs +37 -40
  587. package/menu/positioner/MenuPositionerDataAttributes.d.mts +22 -24
  588. package/menu/positioner/MenuPositionerDataAttributes.d.ts +22 -24
  589. package/menu/positioner/MenuPositionerDataAttributes.js +23 -26
  590. package/menu/positioner/MenuPositionerDataAttributes.mjs +23 -25
  591. package/menu/radio-item/MenuRadioItemDataAttributes.d.mts +16 -18
  592. package/menu/radio-item/MenuRadioItemDataAttributes.d.ts +16 -18
  593. package/menu/radio-item/MenuRadioItemDataAttributes.js +17 -20
  594. package/menu/radio-item/MenuRadioItemDataAttributes.mjs +16 -19
  595. package/menu/radio-item-indicator/MenuRadioItemIndicator.js +2 -0
  596. package/menu/radio-item-indicator/MenuRadioItemIndicator.mjs +2 -0
  597. package/menu/radio-item-indicator/MenuRadioItemIndicatorDataAttributes.d.mts +20 -22
  598. package/menu/radio-item-indicator/MenuRadioItemIndicatorDataAttributes.d.ts +20 -22
  599. package/menu/radio-item-indicator/MenuRadioItemIndicatorDataAttributes.js +21 -24
  600. package/menu/radio-item-indicator/MenuRadioItemIndicatorDataAttributes.mjs +21 -23
  601. package/menu/root/MenuRoot.d.mts +1 -1
  602. package/menu/root/MenuRoot.d.ts +1 -1
  603. package/menu/root/MenuRoot.js +98 -19
  604. package/menu/root/MenuRoot.mjs +99 -20
  605. package/menu/store/MenuStore.d.mts +2 -2
  606. package/menu/store/MenuStore.d.ts +2 -2
  607. package/menu/store/MenuStore.js +12 -11
  608. package/menu/store/MenuStore.mjs +12 -11
  609. package/menu/submenu-root/MenuSubmenuRoot.d.mts +1 -1
  610. package/menu/submenu-root/MenuSubmenuRoot.d.ts +1 -1
  611. package/menu/submenu-trigger/MenuSubmenuTrigger.d.mts +1 -0
  612. package/menu/submenu-trigger/MenuSubmenuTrigger.d.ts +1 -0
  613. package/menu/submenu-trigger/MenuSubmenuTrigger.js +16 -5
  614. package/menu/submenu-trigger/MenuSubmenuTrigger.mjs +16 -5
  615. package/menu/submenu-trigger/MenuSubmenuTriggerDataAttributes.d.mts +12 -14
  616. package/menu/submenu-trigger/MenuSubmenuTriggerDataAttributes.d.ts +12 -14
  617. package/menu/submenu-trigger/MenuSubmenuTriggerDataAttributes.js +13 -16
  618. package/menu/submenu-trigger/MenuSubmenuTriggerDataAttributes.mjs +13 -15
  619. package/menu/trigger/MenuTriggerDataAttributes.d.mts +12 -10
  620. package/menu/trigger/MenuTriggerDataAttributes.d.ts +12 -10
  621. package/menu/trigger/MenuTriggerDataAttributes.js +13 -12
  622. package/menu/trigger/MenuTriggerDataAttributes.mjs +13 -11
  623. package/menu/utils/stateAttributesMapping.js +4 -3
  624. package/menu/utils/stateAttributesMapping.mjs +1 -1
  625. package/menu/viewport/MenuViewportCssVars.d.mts +12 -14
  626. package/menu/viewport/MenuViewportCssVars.d.ts +12 -14
  627. package/menu/viewport/MenuViewportCssVars.js +13 -16
  628. package/menu/viewport/MenuViewportCssVars.mjs +12 -15
  629. package/menu/viewport/MenuViewportDataAttributes.d.mts +24 -26
  630. package/menu/viewport/MenuViewportDataAttributes.d.ts +24 -26
  631. package/menu/viewport/MenuViewportDataAttributes.js +25 -28
  632. package/menu/viewport/MenuViewportDataAttributes.mjs +24 -27
  633. package/menubar/Menubar.js +2 -2
  634. package/menubar/Menubar.mjs +1 -1
  635. package/menubar/MenubarDataAttributes.d.mts +13 -15
  636. package/menubar/MenubarDataAttributes.d.ts +13 -15
  637. package/menubar/MenubarDataAttributes.js +14 -17
  638. package/menubar/MenubarDataAttributes.mjs +13 -16
  639. package/meter/root/MeterRoot.js +2 -2
  640. package/meter/root/MeterRoot.mjs +2 -2
  641. package/navigation-menu/arrow/NavigationMenuArrowDataAttributes.d.mts +22 -24
  642. package/navigation-menu/arrow/NavigationMenuArrowDataAttributes.d.ts +22 -24
  643. package/navigation-menu/arrow/NavigationMenuArrowDataAttributes.js +23 -26
  644. package/navigation-menu/arrow/NavigationMenuArrowDataAttributes.mjs +23 -25
  645. package/navigation-menu/backdrop/NavigationMenuBackdropDataAttributes.d.mts +16 -18
  646. package/navigation-menu/backdrop/NavigationMenuBackdropDataAttributes.d.ts +16 -18
  647. package/navigation-menu/backdrop/NavigationMenuBackdropDataAttributes.js +17 -20
  648. package/navigation-menu/backdrop/NavigationMenuBackdropDataAttributes.mjs +17 -19
  649. package/navigation-menu/content/NavigationMenuContent.js +2 -1
  650. package/navigation-menu/content/NavigationMenuContent.mjs +2 -1
  651. package/navigation-menu/content/NavigationMenuContentDataAttributes.d.mts +21 -23
  652. package/navigation-menu/content/NavigationMenuContentDataAttributes.d.ts +21 -23
  653. package/navigation-menu/content/NavigationMenuContentDataAttributes.js +22 -25
  654. package/navigation-menu/content/NavigationMenuContentDataAttributes.mjs +22 -24
  655. package/navigation-menu/icon/NavigationMenuIconDataAttributes.d.mts +4 -6
  656. package/navigation-menu/icon/NavigationMenuIconDataAttributes.d.ts +4 -6
  657. package/navigation-menu/icon/NavigationMenuIconDataAttributes.js +5 -8
  658. package/navigation-menu/icon/NavigationMenuIconDataAttributes.mjs +5 -7
  659. package/navigation-menu/link/NavigationMenuLinkDataAttributes.d.mts +4 -6
  660. package/navigation-menu/link/NavigationMenuLinkDataAttributes.d.ts +4 -6
  661. package/navigation-menu/link/NavigationMenuLinkDataAttributes.js +5 -8
  662. package/navigation-menu/link/NavigationMenuLinkDataAttributes.mjs +4 -7
  663. package/navigation-menu/popup/NavigationMenuPopupCssVars.d.mts +10 -12
  664. package/navigation-menu/popup/NavigationMenuPopupCssVars.d.ts +10 -12
  665. package/navigation-menu/popup/NavigationMenuPopupCssVars.js +11 -14
  666. package/navigation-menu/popup/NavigationMenuPopupCssVars.mjs +10 -13
  667. package/navigation-menu/popup/NavigationMenuPopupDataAttributes.d.mts +30 -32
  668. package/navigation-menu/popup/NavigationMenuPopupDataAttributes.d.ts +30 -32
  669. package/navigation-menu/popup/NavigationMenuPopupDataAttributes.js +31 -34
  670. package/navigation-menu/popup/NavigationMenuPopupDataAttributes.mjs +31 -33
  671. package/navigation-menu/positioner/NavigationMenuPositionerCssVars.d.mts +35 -37
  672. package/navigation-menu/positioner/NavigationMenuPositionerCssVars.d.ts +35 -37
  673. package/navigation-menu/positioner/NavigationMenuPositionerCssVars.js +36 -39
  674. package/navigation-menu/positioner/NavigationMenuPositionerCssVars.mjs +35 -38
  675. package/navigation-menu/positioner/NavigationMenuPositionerDataAttributes.d.mts +26 -28
  676. package/navigation-menu/positioner/NavigationMenuPositionerDataAttributes.d.ts +26 -28
  677. package/navigation-menu/positioner/NavigationMenuPositionerDataAttributes.js +27 -30
  678. package/navigation-menu/positioner/NavigationMenuPositionerDataAttributes.mjs +27 -29
  679. package/navigation-menu/root/NavigationMenuRoot.js +3 -3
  680. package/navigation-menu/root/NavigationMenuRoot.mjs +1 -1
  681. package/navigation-menu/trigger/NavigationMenuTrigger.d.mts +11 -1
  682. package/navigation-menu/trigger/NavigationMenuTrigger.d.ts +11 -1
  683. package/navigation-menu/trigger/NavigationMenuTrigger.js +25 -37
  684. package/navigation-menu/trigger/NavigationMenuTrigger.mjs +9 -21
  685. package/navigation-menu/trigger/NavigationMenuTriggerDataAttributes.d.mts +12 -10
  686. package/navigation-menu/trigger/NavigationMenuTriggerDataAttributes.d.ts +12 -10
  687. package/navigation-menu/trigger/NavigationMenuTriggerDataAttributes.js +13 -12
  688. package/navigation-menu/trigger/NavigationMenuTriggerDataAttributes.mjs +13 -11
  689. package/navigation-menu/utils/setSharedFixedSize.js +7 -6
  690. package/navigation-menu/utils/setSharedFixedSize.mjs +2 -2
  691. package/number-field/decrement/NumberFieldDecrementDataAttributes.d.mts +40 -42
  692. package/number-field/decrement/NumberFieldDecrementDataAttributes.d.ts +40 -42
  693. package/number-field/decrement/NumberFieldDecrementDataAttributes.js +41 -44
  694. package/number-field/decrement/NumberFieldDecrementDataAttributes.mjs +40 -43
  695. package/number-field/group/NumberFieldGroupDataAttributes.d.mts +40 -42
  696. package/number-field/group/NumberFieldGroupDataAttributes.d.ts +40 -42
  697. package/number-field/group/NumberFieldGroupDataAttributes.js +41 -44
  698. package/number-field/group/NumberFieldGroupDataAttributes.mjs +40 -43
  699. package/number-field/increment/NumberFieldIncrementDataAttributes.d.mts +40 -42
  700. package/number-field/increment/NumberFieldIncrementDataAttributes.d.ts +40 -42
  701. package/number-field/increment/NumberFieldIncrementDataAttributes.js +41 -44
  702. package/number-field/increment/NumberFieldIncrementDataAttributes.mjs +40 -43
  703. package/number-field/input/NumberFieldInput.js +1 -12
  704. package/number-field/input/NumberFieldInput.mjs +1 -12
  705. package/number-field/input/NumberFieldInputDataAttributes.d.mts +40 -42
  706. package/number-field/input/NumberFieldInputDataAttributes.d.ts +40 -42
  707. package/number-field/input/NumberFieldInputDataAttributes.js +41 -44
  708. package/number-field/input/NumberFieldInputDataAttributes.mjs +40 -43
  709. package/number-field/root/NumberFieldRoot.js +33 -7
  710. package/number-field/root/NumberFieldRoot.mjs +33 -7
  711. package/number-field/root/NumberFieldRootContext.d.mts +1 -0
  712. package/number-field/root/NumberFieldRootContext.d.ts +1 -0
  713. package/number-field/root/NumberFieldRootDataAttributes.d.mts +40 -42
  714. package/number-field/root/NumberFieldRootDataAttributes.d.ts +40 -42
  715. package/number-field/root/NumberFieldRootDataAttributes.js +41 -44
  716. package/number-field/root/NumberFieldRootDataAttributes.mjs +40 -43
  717. package/number-field/root/useNumberFieldStepperButton.js +2 -1
  718. package/number-field/root/useNumberFieldStepperButton.mjs +2 -1
  719. package/number-field/scrub-area/NumberFieldScrubArea.js +2 -1
  720. package/number-field/scrub-area/NumberFieldScrubArea.mjs +2 -1
  721. package/number-field/scrub-area/NumberFieldScrubAreaDataAttributes.d.mts +40 -42
  722. package/number-field/scrub-area/NumberFieldScrubAreaDataAttributes.d.ts +40 -42
  723. package/number-field/scrub-area/NumberFieldScrubAreaDataAttributes.js +41 -44
  724. package/number-field/scrub-area/NumberFieldScrubAreaDataAttributes.mjs +40 -43
  725. package/number-field/scrub-area-cursor/NumberFieldScrubAreaCursorDataAttributes.d.mts +40 -42
  726. package/number-field/scrub-area-cursor/NumberFieldScrubAreaCursorDataAttributes.d.ts +40 -42
  727. package/number-field/scrub-area-cursor/NumberFieldScrubAreaCursorDataAttributes.js +41 -44
  728. package/number-field/scrub-area-cursor/NumberFieldScrubAreaCursorDataAttributes.mjs +40 -43
  729. package/number-field/utils/parse.js +1 -1
  730. package/number-field/utils/parse.mjs +1 -1
  731. package/number-field/utils/validate.js +2 -2
  732. package/number-field/utils/validate.mjs +2 -2
  733. package/otp-field/input/OTPFieldInputDataAttributes.d.mts +40 -42
  734. package/otp-field/input/OTPFieldInputDataAttributes.d.ts +40 -42
  735. package/otp-field/input/OTPFieldInputDataAttributes.js +41 -44
  736. package/otp-field/input/OTPFieldInputDataAttributes.mjs +40 -43
  737. package/otp-field/root/OTPFieldRoot.js +1 -1
  738. package/otp-field/root/OTPFieldRoot.mjs +1 -1
  739. package/otp-field/root/OTPFieldRootDataAttributes.d.mts +40 -42
  740. package/otp-field/root/OTPFieldRootDataAttributes.d.ts +40 -42
  741. package/otp-field/root/OTPFieldRootDataAttributes.js +41 -44
  742. package/otp-field/root/OTPFieldRootDataAttributes.mjs +40 -43
  743. package/package.json +3 -45
  744. package/popover/arrow/PopoverArrowDataAttributes.d.mts +22 -24
  745. package/popover/arrow/PopoverArrowDataAttributes.d.ts +22 -24
  746. package/popover/arrow/PopoverArrowDataAttributes.js +23 -26
  747. package/popover/arrow/PopoverArrowDataAttributes.mjs +23 -25
  748. package/popover/backdrop/PopoverBackdropDataAttributes.d.mts +16 -18
  749. package/popover/backdrop/PopoverBackdropDataAttributes.d.ts +16 -18
  750. package/popover/backdrop/PopoverBackdropDataAttributes.js +17 -20
  751. package/popover/backdrop/PopoverBackdropDataAttributes.mjs +17 -19
  752. package/popover/popup/PopoverPopupCssVars.d.mts +8 -10
  753. package/popover/popup/PopoverPopupCssVars.d.ts +8 -10
  754. package/popover/popup/PopoverPopupCssVars.js +9 -12
  755. package/popover/popup/PopoverPopupCssVars.mjs +8 -11
  756. package/popover/popup/PopoverPopupDataAttributes.d.mts +31 -33
  757. package/popover/popup/PopoverPopupDataAttributes.d.ts +31 -33
  758. package/popover/popup/PopoverPopupDataAttributes.js +32 -35
  759. package/popover/popup/PopoverPopupDataAttributes.mjs +32 -34
  760. package/popover/positioner/PopoverPositionerCssVars.d.mts +37 -39
  761. package/popover/positioner/PopoverPositionerCssVars.d.ts +37 -39
  762. package/popover/positioner/PopoverPositionerCssVars.js +38 -41
  763. package/popover/positioner/PopoverPositionerCssVars.mjs +37 -40
  764. package/popover/positioner/PopoverPositionerDataAttributes.d.mts +22 -24
  765. package/popover/positioner/PopoverPositionerDataAttributes.d.ts +22 -24
  766. package/popover/positioner/PopoverPositionerDataAttributes.js +23 -26
  767. package/popover/positioner/PopoverPositionerDataAttributes.mjs +23 -25
  768. package/popover/root/PopoverRoot.d.mts +1 -1
  769. package/popover/root/PopoverRoot.d.ts +1 -1
  770. package/popover/root/PopoverRoot.js +4 -2
  771. package/popover/root/PopoverRoot.mjs +4 -2
  772. package/popover/store/PopoverStore.js +4 -8
  773. package/popover/store/PopoverStore.mjs +5 -9
  774. package/popover/trigger/PopoverTrigger.js +2 -1
  775. package/popover/trigger/PopoverTrigger.mjs +2 -1
  776. package/popover/trigger/PopoverTriggerDataAttributes.d.mts +12 -10
  777. package/popover/trigger/PopoverTriggerDataAttributes.d.ts +12 -10
  778. package/popover/trigger/PopoverTriggerDataAttributes.js +13 -12
  779. package/popover/trigger/PopoverTriggerDataAttributes.mjs +13 -11
  780. package/popover/viewport/PopoverViewportCssVars.d.mts +12 -14
  781. package/popover/viewport/PopoverViewportCssVars.d.ts +12 -14
  782. package/popover/viewport/PopoverViewportCssVars.js +13 -16
  783. package/popover/viewport/PopoverViewportCssVars.mjs +12 -15
  784. package/popover/viewport/PopoverViewportDataAttributes.d.mts +24 -26
  785. package/popover/viewport/PopoverViewportDataAttributes.d.ts +24 -26
  786. package/popover/viewport/PopoverViewportDataAttributes.js +25 -28
  787. package/popover/viewport/PopoverViewportDataAttributes.mjs +24 -27
  788. package/preview-card/arrow/PreviewCardArrowDataAttributes.d.mts +22 -24
  789. package/preview-card/arrow/PreviewCardArrowDataAttributes.d.ts +22 -24
  790. package/preview-card/arrow/PreviewCardArrowDataAttributes.js +23 -26
  791. package/preview-card/arrow/PreviewCardArrowDataAttributes.mjs +23 -25
  792. package/preview-card/backdrop/PreviewCardBackdropDataAttributes.d.mts +16 -18
  793. package/preview-card/backdrop/PreviewCardBackdropDataAttributes.d.ts +16 -18
  794. package/preview-card/backdrop/PreviewCardBackdropDataAttributes.js +17 -20
  795. package/preview-card/backdrop/PreviewCardBackdropDataAttributes.mjs +17 -19
  796. package/preview-card/popup/PreviewCardPopupDataAttributes.d.mts +26 -28
  797. package/preview-card/popup/PreviewCardPopupDataAttributes.d.ts +26 -28
  798. package/preview-card/popup/PreviewCardPopupDataAttributes.js +27 -30
  799. package/preview-card/popup/PreviewCardPopupDataAttributes.mjs +27 -29
  800. package/preview-card/positioner/PreviewCardPositionerCssVars.d.mts +37 -39
  801. package/preview-card/positioner/PreviewCardPositionerCssVars.d.ts +37 -39
  802. package/preview-card/positioner/PreviewCardPositionerCssVars.js +38 -41
  803. package/preview-card/positioner/PreviewCardPositionerCssVars.mjs +37 -40
  804. package/preview-card/positioner/PreviewCardPositionerDataAttributes.d.mts +22 -24
  805. package/preview-card/positioner/PreviewCardPositionerDataAttributes.d.ts +22 -24
  806. package/preview-card/positioner/PreviewCardPositionerDataAttributes.js +23 -26
  807. package/preview-card/positioner/PreviewCardPositionerDataAttributes.mjs +23 -25
  808. package/preview-card/root/PreviewCardRoot.d.mts +1 -1
  809. package/preview-card/root/PreviewCardRoot.d.ts +1 -1
  810. package/preview-card/store/PreviewCardStore.js +1 -2
  811. package/preview-card/store/PreviewCardStore.mjs +2 -3
  812. package/preview-card/trigger/PreviewCardTriggerDataAttributes.d.mts +4 -6
  813. package/preview-card/trigger/PreviewCardTriggerDataAttributes.d.ts +4 -6
  814. package/preview-card/trigger/PreviewCardTriggerDataAttributes.js +5 -8
  815. package/preview-card/trigger/PreviewCardTriggerDataAttributes.mjs +5 -7
  816. package/preview-card/viewport/PreviewCardViewportCssVars.d.mts +12 -14
  817. package/preview-card/viewport/PreviewCardViewportCssVars.d.ts +12 -14
  818. package/preview-card/viewport/PreviewCardViewportCssVars.js +13 -16
  819. package/preview-card/viewport/PreviewCardViewportCssVars.mjs +12 -15
  820. package/preview-card/viewport/PreviewCardViewportDataAttributes.d.mts +24 -26
  821. package/preview-card/viewport/PreviewCardViewportDataAttributes.d.ts +24 -26
  822. package/preview-card/viewport/PreviewCardViewportDataAttributes.js +25 -28
  823. package/preview-card/viewport/PreviewCardViewportDataAttributes.mjs +24 -27
  824. package/progress/indicator/ProgressIndicatorDataAttributes.d.mts +12 -14
  825. package/progress/indicator/ProgressIndicatorDataAttributes.d.ts +12 -14
  826. package/progress/indicator/ProgressIndicatorDataAttributes.js +13 -16
  827. package/progress/indicator/ProgressIndicatorDataAttributes.mjs +12 -15
  828. package/progress/label/ProgressLabelDataAttributes.d.mts +12 -14
  829. package/progress/label/ProgressLabelDataAttributes.d.ts +12 -14
  830. package/progress/label/ProgressLabelDataAttributes.js +13 -16
  831. package/progress/label/ProgressLabelDataAttributes.mjs +12 -15
  832. package/progress/root/ProgressRoot.js +2 -2
  833. package/progress/root/ProgressRoot.mjs +2 -2
  834. package/progress/root/ProgressRootDataAttributes.d.mts +12 -14
  835. package/progress/root/ProgressRootDataAttributes.d.ts +12 -14
  836. package/progress/root/ProgressRootDataAttributes.js +13 -16
  837. package/progress/root/ProgressRootDataAttributes.mjs +12 -15
  838. package/progress/root/stateAttributesMapping.js +18 -3
  839. package/progress/root/stateAttributesMapping.mjs +17 -3
  840. package/progress/track/ProgressTrackDataAttributes.d.mts +12 -14
  841. package/progress/track/ProgressTrackDataAttributes.d.ts +12 -14
  842. package/progress/track/ProgressTrackDataAttributes.js +13 -16
  843. package/progress/track/ProgressTrackDataAttributes.mjs +12 -15
  844. package/progress/value/ProgressValueDataAttributes.d.mts +12 -14
  845. package/progress/value/ProgressValueDataAttributes.d.ts +12 -14
  846. package/progress/value/ProgressValueDataAttributes.js +13 -16
  847. package/progress/value/ProgressValueDataAttributes.mjs +12 -15
  848. package/radio/indicator/RadioIndicator.js +2 -0
  849. package/radio/indicator/RadioIndicator.mjs +2 -0
  850. package/radio/indicator/RadioIndicatorDataAttributes.d.mts +52 -54
  851. package/radio/indicator/RadioIndicatorDataAttributes.d.ts +52 -54
  852. package/radio/indicator/RadioIndicatorDataAttributes.js +53 -56
  853. package/radio/indicator/RadioIndicatorDataAttributes.mjs +53 -55
  854. package/radio/root/RadioRoot.js +1 -3
  855. package/radio/root/RadioRoot.mjs +1 -3
  856. package/radio/root/RadioRootDataAttributes.d.mts +44 -46
  857. package/radio/root/RadioRootDataAttributes.d.ts +44 -46
  858. package/radio/root/RadioRootDataAttributes.js +45 -48
  859. package/radio/root/RadioRootDataAttributes.mjs +44 -47
  860. package/radio/utils/stateAttributesMapping.js +4 -2
  861. package/radio/utils/stateAttributesMapping.mjs +3 -2
  862. package/radio-group/RadioGroupDataAttributes.d.mts +4 -6
  863. package/radio-group/RadioGroupDataAttributes.d.ts +4 -6
  864. package/radio-group/RadioGroupDataAttributes.js +5 -8
  865. package/radio-group/RadioGroupDataAttributes.mjs +4 -7
  866. package/scroll-area/content/ScrollAreaContentDataAttributes.d.mts +28 -30
  867. package/scroll-area/content/ScrollAreaContentDataAttributes.d.ts +28 -30
  868. package/scroll-area/content/ScrollAreaContentDataAttributes.js +29 -32
  869. package/scroll-area/content/ScrollAreaContentDataAttributes.mjs +28 -31
  870. package/scroll-area/corner/ScrollAreaCorner.js +1 -0
  871. package/scroll-area/corner/ScrollAreaCorner.mjs +1 -0
  872. package/scroll-area/root/ScrollAreaRoot.js +5 -6
  873. package/scroll-area/root/ScrollAreaRoot.mjs +5 -6
  874. package/scroll-area/root/ScrollAreaRootCssVars.d.mts +10 -12
  875. package/scroll-area/root/ScrollAreaRootCssVars.d.ts +10 -12
  876. package/scroll-area/root/ScrollAreaRootCssVars.js +11 -14
  877. package/scroll-area/root/ScrollAreaRootCssVars.mjs +10 -13
  878. package/scroll-area/root/ScrollAreaRootDataAttributes.d.mts +28 -30
  879. package/scroll-area/root/ScrollAreaRootDataAttributes.d.ts +28 -30
  880. package/scroll-area/root/ScrollAreaRootDataAttributes.js +29 -32
  881. package/scroll-area/root/ScrollAreaRootDataAttributes.mjs +28 -31
  882. package/scroll-area/root/stateAttributes.js +8 -7
  883. package/scroll-area/root/stateAttributes.mjs +7 -7
  884. package/scroll-area/scrollbar/ScrollAreaScrollbar.js +12 -4
  885. package/scroll-area/scrollbar/ScrollAreaScrollbar.mjs +14 -5
  886. package/scroll-area/scrollbar/ScrollAreaScrollbarCssVars.d.mts +10 -12
  887. package/scroll-area/scrollbar/ScrollAreaScrollbarCssVars.d.ts +10 -12
  888. package/scroll-area/scrollbar/ScrollAreaScrollbarCssVars.js +11 -14
  889. package/scroll-area/scrollbar/ScrollAreaScrollbarCssVars.mjs +10 -13
  890. package/scroll-area/scrollbar/ScrollAreaScrollbarDataAttributes.d.mts +37 -39
  891. package/scroll-area/scrollbar/ScrollAreaScrollbarDataAttributes.d.ts +37 -39
  892. package/scroll-area/scrollbar/ScrollAreaScrollbarDataAttributes.js +38 -41
  893. package/scroll-area/scrollbar/ScrollAreaScrollbarDataAttributes.mjs +37 -40
  894. package/scroll-area/thumb/ScrollAreaThumbDataAttributes.d.mts +9 -11
  895. package/scroll-area/thumb/ScrollAreaThumbDataAttributes.d.ts +9 -11
  896. package/scroll-area/thumb/ScrollAreaThumbDataAttributes.js +10 -13
  897. package/scroll-area/thumb/ScrollAreaThumbDataAttributes.mjs +9 -12
  898. package/scroll-area/viewport/ScrollAreaViewport.js +6 -5
  899. package/scroll-area/viewport/ScrollAreaViewport.mjs +6 -6
  900. package/scroll-area/viewport/ScrollAreaViewportCssVars.d.mts +20 -22
  901. package/scroll-area/viewport/ScrollAreaViewportCssVars.d.ts +20 -22
  902. package/scroll-area/viewport/ScrollAreaViewportCssVars.js +21 -24
  903. package/scroll-area/viewport/ScrollAreaViewportCssVars.mjs +20 -23
  904. package/scroll-area/viewport/ScrollAreaViewportDataAttributes.d.mts +28 -30
  905. package/scroll-area/viewport/ScrollAreaViewportDataAttributes.d.ts +28 -30
  906. package/scroll-area/viewport/ScrollAreaViewportDataAttributes.js +29 -32
  907. package/scroll-area/viewport/ScrollAreaViewportDataAttributes.mjs +28 -31
  908. package/select/arrow/SelectArrow.js +2 -6
  909. package/select/arrow/SelectArrow.mjs +2 -6
  910. package/select/arrow/SelectArrowDataAttributes.d.mts +22 -24
  911. package/select/arrow/SelectArrowDataAttributes.d.ts +22 -24
  912. package/select/arrow/SelectArrowDataAttributes.js +23 -26
  913. package/select/arrow/SelectArrowDataAttributes.mjs +23 -25
  914. package/select/backdrop/SelectBackdrop.js +4 -8
  915. package/select/backdrop/SelectBackdrop.mjs +4 -8
  916. package/select/backdrop/SelectBackdropDataAttributes.d.mts +16 -18
  917. package/select/backdrop/SelectBackdropDataAttributes.d.ts +16 -18
  918. package/select/backdrop/SelectBackdropDataAttributes.js +17 -20
  919. package/select/backdrop/SelectBackdropDataAttributes.mjs +17 -19
  920. package/select/group-label/SelectGroupLabel.js +2 -1
  921. package/select/group-label/SelectGroupLabel.mjs +2 -1
  922. package/select/icon/SelectIcon.js +2 -6
  923. package/select/icon/SelectIcon.mjs +2 -6
  924. package/select/icon/SelectIconDataAttributes.d.mts +4 -6
  925. package/select/icon/SelectIconDataAttributes.d.ts +4 -6
  926. package/select/icon/SelectIconDataAttributes.js +5 -8
  927. package/select/icon/SelectIconDataAttributes.mjs +5 -7
  928. package/select/item/SelectItem.js +38 -37
  929. package/select/item/SelectItem.mjs +40 -39
  930. package/select/item/SelectItemDataAttributes.d.mts +12 -14
  931. package/select/item/SelectItemDataAttributes.d.ts +12 -14
  932. package/select/item/SelectItemDataAttributes.js +13 -16
  933. package/select/item/SelectItemDataAttributes.mjs +12 -15
  934. package/select/item-indicator/SelectItemIndicator.js +2 -0
  935. package/select/item-indicator/SelectItemIndicator.mjs +2 -0
  936. package/select/item-indicator/SelectItemIndicatorDataAttributes.d.mts +8 -10
  937. package/select/item-indicator/SelectItemIndicatorDataAttributes.d.ts +8 -10
  938. package/select/item-indicator/SelectItemIndicatorDataAttributes.js +9 -12
  939. package/select/item-indicator/SelectItemIndicatorDataAttributes.mjs +9 -11
  940. package/select/item-text/SelectItemText.js +4 -7
  941. package/select/item-text/SelectItemText.mjs +4 -7
  942. package/select/label/SelectLabel.js +3 -7
  943. package/select/label/SelectLabel.mjs +3 -7
  944. package/select/list/SelectList.js +9 -10
  945. package/select/list/SelectList.mjs +10 -11
  946. package/select/popup/SelectPopup.js +43 -52
  947. package/select/popup/SelectPopup.mjs +44 -53
  948. package/select/popup/SelectPopupDataAttributes.d.mts +26 -28
  949. package/select/popup/SelectPopupDataAttributes.d.ts +26 -28
  950. package/select/popup/SelectPopupDataAttributes.js +27 -30
  951. package/select/popup/SelectPopupDataAttributes.mjs +27 -29
  952. package/select/portal/SelectPortal.js +3 -7
  953. package/select/portal/SelectPortal.mjs +3 -7
  954. package/select/positioner/SelectPositioner.js +24 -39
  955. package/select/positioner/SelectPositioner.mjs +25 -40
  956. package/select/positioner/SelectPositionerCssVars.d.mts +25 -27
  957. package/select/positioner/SelectPositionerCssVars.d.ts +25 -27
  958. package/select/positioner/SelectPositionerCssVars.js +26 -29
  959. package/select/positioner/SelectPositionerCssVars.mjs +25 -28
  960. package/select/positioner/SelectPositionerDataAttributes.d.mts +22 -24
  961. package/select/positioner/SelectPositionerDataAttributes.d.ts +22 -24
  962. package/select/positioner/SelectPositionerDataAttributes.js +23 -26
  963. package/select/positioner/SelectPositionerDataAttributes.mjs +23 -25
  964. package/select/root/SelectRoot.js +60 -56
  965. package/select/root/SelectRoot.mjs +63 -59
  966. package/select/root/SelectRootContext.d.mts +11 -30
  967. package/select/root/SelectRootContext.d.ts +11 -30
  968. package/select/root/SelectRootContext.js +29 -4
  969. package/select/root/SelectRootContext.mjs +27 -3
  970. package/select/scroll-arrow/SelectScrollArrow.js +11 -19
  971. package/select/scroll-arrow/SelectScrollArrow.mjs +11 -19
  972. package/select/scroll-down-arrow/SelectScrollDownArrowDataAttributes.d.mts +22 -24
  973. package/select/scroll-down-arrow/SelectScrollDownArrowDataAttributes.d.ts +22 -24
  974. package/select/scroll-down-arrow/SelectScrollDownArrowDataAttributes.js +23 -26
  975. package/select/scroll-down-arrow/SelectScrollDownArrowDataAttributes.mjs +23 -25
  976. package/select/scroll-up-arrow/SelectScrollUpArrowDataAttributes.d.mts +22 -24
  977. package/select/scroll-up-arrow/SelectScrollUpArrowDataAttributes.d.ts +22 -24
  978. package/select/scroll-up-arrow/SelectScrollUpArrowDataAttributes.js +23 -26
  979. package/select/scroll-up-arrow/SelectScrollUpArrowDataAttributes.mjs +23 -25
  980. package/select/store.d.mts +30 -2
  981. package/select/store.d.ts +30 -2
  982. package/select/store.js +5 -0
  983. package/select/store.mjs +6 -0
  984. package/select/trigger/SelectTrigger.js +23 -27
  985. package/select/trigger/SelectTrigger.mjs +24 -28
  986. package/select/trigger/SelectTriggerDataAttributes.d.mts +53 -55
  987. package/select/trigger/SelectTriggerDataAttributes.d.ts +53 -55
  988. package/select/trigger/SelectTriggerDataAttributes.js +54 -57
  989. package/select/trigger/SelectTriggerDataAttributes.mjs +54 -56
  990. package/select/value/SelectValue.d.mts +2 -0
  991. package/select/value/SelectValue.d.ts +2 -0
  992. package/select/value/SelectValue.js +7 -12
  993. package/select/value/SelectValue.mjs +7 -12
  994. package/select/value/SelectValueDataAttributes.d.mts +4 -6
  995. package/select/value/SelectValueDataAttributes.d.ts +4 -6
  996. package/select/value/SelectValueDataAttributes.js +5 -8
  997. package/select/value/SelectValueDataAttributes.mjs +4 -7
  998. package/separator/SeparatorDataAttributes.d.mts +5 -7
  999. package/separator/SeparatorDataAttributes.d.ts +5 -7
  1000. package/separator/SeparatorDataAttributes.js +6 -9
  1001. package/separator/SeparatorDataAttributes.mjs +5 -8
  1002. package/slider/control/SliderControl.js +1 -1
  1003. package/slider/control/SliderControl.mjs +1 -1
  1004. package/slider/control/SliderControlDataAttributes.d.mts +33 -35
  1005. package/slider/control/SliderControlDataAttributes.d.ts +33 -35
  1006. package/slider/control/SliderControlDataAttributes.js +34 -37
  1007. package/slider/control/SliderControlDataAttributes.mjs +33 -36
  1008. package/slider/indicator/SliderIndicatorDataAttributes.d.mts +33 -35
  1009. package/slider/indicator/SliderIndicatorDataAttributes.d.ts +33 -35
  1010. package/slider/indicator/SliderIndicatorDataAttributes.js +34 -37
  1011. package/slider/indicator/SliderIndicatorDataAttributes.mjs +33 -36
  1012. package/slider/root/SliderRoot.js +2 -2
  1013. package/slider/root/SliderRoot.mjs +2 -2
  1014. package/slider/root/SliderRootDataAttributes.d.mts +33 -35
  1015. package/slider/root/SliderRootDataAttributes.d.ts +33 -35
  1016. package/slider/root/SliderRootDataAttributes.js +34 -37
  1017. package/slider/root/SliderRootDataAttributes.mjs +33 -36
  1018. package/slider/thumb/SliderThumb.d.mts +1 -2
  1019. package/slider/thumb/SliderThumb.d.ts +1 -2
  1020. package/slider/thumb/SliderThumb.js +4 -3
  1021. package/slider/thumb/SliderThumb.mjs +4 -3
  1022. package/slider/thumb/SliderThumbDataAttributes.d.mts +37 -39
  1023. package/slider/thumb/SliderThumbDataAttributes.d.ts +37 -39
  1024. package/slider/thumb/SliderThumbDataAttributes.js +38 -41
  1025. package/slider/thumb/SliderThumbDataAttributes.mjs +37 -40
  1026. package/slider/track/SliderTrackDataAttributes.d.mts +33 -35
  1027. package/slider/track/SliderTrackDataAttributes.d.ts +33 -35
  1028. package/slider/track/SliderTrackDataAttributes.js +34 -37
  1029. package/slider/track/SliderTrackDataAttributes.mjs +33 -36
  1030. package/slider/utils/getPushedThumbValues.js +1 -1
  1031. package/slider/utils/getPushedThumbValues.mjs +1 -1
  1032. package/slider/utils/getSliderValue.js +1 -1
  1033. package/slider/utils/getSliderValue.mjs +1 -1
  1034. package/slider/utils/resolveThumbCollision.js +1 -1
  1035. package/slider/utils/resolveThumbCollision.mjs +1 -1
  1036. package/slider/value/SliderValue.js +1 -1
  1037. package/slider/value/SliderValue.mjs +1 -1
  1038. package/slider/value/SliderValueDataAttributes.d.mts +33 -35
  1039. package/slider/value/SliderValueDataAttributes.d.ts +33 -35
  1040. package/slider/value/SliderValueDataAttributes.js +34 -37
  1041. package/slider/value/SliderValueDataAttributes.mjs +33 -36
  1042. package/switch/root/SwitchRoot.js +3 -8
  1043. package/switch/root/SwitchRoot.mjs +3 -8
  1044. package/switch/root/SwitchRootDataAttributes.d.mts +44 -46
  1045. package/switch/root/SwitchRootDataAttributes.d.ts +44 -46
  1046. package/switch/root/SwitchRootDataAttributes.js +45 -48
  1047. package/switch/root/SwitchRootDataAttributes.mjs +44 -47
  1048. package/switch/stateAttributesMapping.js +4 -2
  1049. package/switch/stateAttributesMapping.mjs +3 -2
  1050. package/switch/thumb/SwitchThumbDataAttributes.d.mts +44 -46
  1051. package/switch/thumb/SwitchThumbDataAttributes.d.ts +44 -46
  1052. package/switch/thumb/SwitchThumbDataAttributes.js +45 -48
  1053. package/switch/thumb/SwitchThumbDataAttributes.mjs +44 -47
  1054. package/tabs/indicator/TabsIndicator.js +133 -17
  1055. package/tabs/indicator/TabsIndicator.mjs +133 -17
  1056. package/tabs/indicator/TabsIndicatorCssVars.d.mts +30 -32
  1057. package/tabs/indicator/TabsIndicatorCssVars.d.ts +30 -32
  1058. package/tabs/indicator/TabsIndicatorCssVars.js +31 -34
  1059. package/tabs/indicator/TabsIndicatorCssVars.mjs +30 -33
  1060. package/tabs/indicator/TabsIndicatorDataAttributes.d.mts +10 -12
  1061. package/tabs/indicator/TabsIndicatorDataAttributes.d.ts +10 -12
  1062. package/tabs/indicator/TabsIndicatorDataAttributes.js +11 -14
  1063. package/tabs/indicator/TabsIndicatorDataAttributes.mjs +10 -13
  1064. package/tabs/indicator/prehydrationScript.min.d.mts +1 -1
  1065. package/tabs/indicator/prehydrationScript.min.d.ts +1 -1
  1066. package/tabs/indicator/prehydrationScript.min.js +1 -1
  1067. package/tabs/indicator/prehydrationScript.min.mjs +1 -1
  1068. package/tabs/list/TabsListDataAttributes.d.mts +10 -12
  1069. package/tabs/list/TabsListDataAttributes.d.ts +10 -12
  1070. package/tabs/list/TabsListDataAttributes.js +11 -14
  1071. package/tabs/list/TabsListDataAttributes.mjs +10 -13
  1072. package/tabs/panel/TabsPanel.js +2 -1
  1073. package/tabs/panel/TabsPanel.mjs +2 -1
  1074. package/tabs/panel/TabsPanelDataAttributes.d.mts +26 -28
  1075. package/tabs/panel/TabsPanelDataAttributes.d.ts +26 -28
  1076. package/tabs/panel/TabsPanelDataAttributes.js +27 -30
  1077. package/tabs/panel/TabsPanelDataAttributes.mjs +27 -29
  1078. package/tabs/root/TabsRootDataAttributes.d.mts +10 -12
  1079. package/tabs/root/TabsRootDataAttributes.d.ts +10 -12
  1080. package/tabs/root/TabsRootDataAttributes.js +11 -14
  1081. package/tabs/root/TabsRootDataAttributes.mjs +10 -13
  1082. package/tabs/root/stateAttributesMapping.js +3 -1
  1083. package/tabs/root/stateAttributesMapping.mjs +2 -1
  1084. package/tabs/tab/TabsTabDataAttributes.d.mts +18 -20
  1085. package/tabs/tab/TabsTabDataAttributes.d.ts +18 -20
  1086. package/tabs/tab/TabsTabDataAttributes.js +19 -22
  1087. package/tabs/tab/TabsTabDataAttributes.mjs +18 -21
  1088. package/toast/action/ToastActionDataAttributes.d.mts +5 -7
  1089. package/toast/action/ToastActionDataAttributes.d.ts +5 -7
  1090. package/toast/action/ToastActionDataAttributes.js +6 -9
  1091. package/toast/action/ToastActionDataAttributes.mjs +5 -8
  1092. package/toast/arrow/ToastArrowDataAttributes.d.mts +14 -16
  1093. package/toast/arrow/ToastArrowDataAttributes.d.ts +14 -16
  1094. package/toast/arrow/ToastArrowDataAttributes.js +15 -18
  1095. package/toast/arrow/ToastArrowDataAttributes.mjs +15 -17
  1096. package/toast/close/ToastCloseDataAttributes.d.mts +5 -7
  1097. package/toast/close/ToastCloseDataAttributes.d.ts +5 -7
  1098. package/toast/close/ToastCloseDataAttributes.js +6 -9
  1099. package/toast/close/ToastCloseDataAttributes.mjs +5 -8
  1100. package/toast/content/ToastContentDataAttributes.d.mts +10 -12
  1101. package/toast/content/ToastContentDataAttributes.d.ts +10 -12
  1102. package/toast/content/ToastContentDataAttributes.js +11 -14
  1103. package/toast/content/ToastContentDataAttributes.mjs +10 -13
  1104. package/toast/createToastManager.d.mts +2 -2
  1105. package/toast/createToastManager.d.ts +2 -2
  1106. package/toast/createToastManager.js +2 -2
  1107. package/toast/createToastManager.mjs +2 -2
  1108. package/toast/description/ToastDescriptionDataAttributes.d.mts +5 -7
  1109. package/toast/description/ToastDescriptionDataAttributes.d.ts +5 -7
  1110. package/toast/description/ToastDescriptionDataAttributes.js +6 -9
  1111. package/toast/description/ToastDescriptionDataAttributes.mjs +5 -8
  1112. package/toast/positioner/ToastPositioner.js +2 -1
  1113. package/toast/positioner/ToastPositioner.mjs +2 -1
  1114. package/toast/positioner/ToastPositionerCssVars.d.mts +25 -27
  1115. package/toast/positioner/ToastPositionerCssVars.d.ts +25 -27
  1116. package/toast/positioner/ToastPositionerCssVars.js +26 -29
  1117. package/toast/positioner/ToastPositionerCssVars.mjs +25 -28
  1118. package/toast/positioner/ToastPositionerDataAttributes.d.mts +14 -16
  1119. package/toast/positioner/ToastPositionerDataAttributes.d.ts +14 -16
  1120. package/toast/positioner/ToastPositionerDataAttributes.js +15 -18
  1121. package/toast/positioner/ToastPositionerDataAttributes.mjs +15 -17
  1122. package/toast/provider/ToastProvider.js +1 -1
  1123. package/toast/provider/ToastProvider.mjs +1 -1
  1124. package/toast/root/ToastRoot.js +10 -7
  1125. package/toast/root/ToastRoot.mjs +10 -7
  1126. package/toast/root/ToastRootCssVars.d.mts +25 -27
  1127. package/toast/root/ToastRootCssVars.d.ts +25 -27
  1128. package/toast/root/ToastRootCssVars.js +26 -29
  1129. package/toast/root/ToastRootCssVars.mjs +25 -28
  1130. package/toast/root/ToastRootDataAttributes.d.mts +33 -35
  1131. package/toast/root/ToastRootDataAttributes.d.ts +33 -35
  1132. package/toast/root/ToastRootDataAttributes.js +34 -37
  1133. package/toast/root/ToastRootDataAttributes.mjs +34 -36
  1134. package/toast/store.d.mts +1 -1
  1135. package/toast/store.d.ts +1 -1
  1136. package/toast/store.js +9 -1
  1137. package/toast/store.mjs +9 -1
  1138. package/toast/title/ToastTitleDataAttributes.d.mts +5 -7
  1139. package/toast/title/ToastTitleDataAttributes.d.ts +5 -7
  1140. package/toast/title/ToastTitleDataAttributes.js +6 -9
  1141. package/toast/title/ToastTitleDataAttributes.mjs +5 -8
  1142. package/toast/useToastManager.d.mts +1 -1
  1143. package/toast/useToastManager.d.ts +1 -1
  1144. package/toast/viewport/ToastViewport.js +2 -1
  1145. package/toast/viewport/ToastViewport.mjs +2 -1
  1146. package/toast/viewport/ToastViewportCssVars.d.mts +5 -7
  1147. package/toast/viewport/ToastViewportCssVars.d.ts +5 -7
  1148. package/toast/viewport/ToastViewportCssVars.js +6 -9
  1149. package/toast/viewport/ToastViewportCssVars.mjs +5 -8
  1150. package/toast/viewport/ToastViewportDataAttributes.d.mts +5 -7
  1151. package/toast/viewport/ToastViewportDataAttributes.d.ts +5 -7
  1152. package/toast/viewport/ToastViewportDataAttributes.js +6 -9
  1153. package/toast/viewport/ToastViewportDataAttributes.mjs +5 -8
  1154. package/toggle/Toggle.js +1 -2
  1155. package/toggle/Toggle.mjs +1 -2
  1156. package/toggle/ToggleDataAttributes.d.mts +8 -10
  1157. package/toggle/ToggleDataAttributes.d.ts +8 -10
  1158. package/toggle/ToggleDataAttributes.js +9 -12
  1159. package/toggle/ToggleDataAttributes.mjs +8 -11
  1160. package/toggle-group/ToggleGroup.js +3 -1
  1161. package/toggle-group/ToggleGroup.mjs +3 -1
  1162. package/toggle-group/ToggleGroupDataAttributes.d.mts +13 -15
  1163. package/toggle-group/ToggleGroupDataAttributes.d.ts +13 -15
  1164. package/toggle-group/ToggleGroupDataAttributes.js +14 -17
  1165. package/toggle-group/ToggleGroupDataAttributes.mjs +13 -16
  1166. package/toolbar/button/ToolbarButtonDataAttributes.d.mts +13 -15
  1167. package/toolbar/button/ToolbarButtonDataAttributes.d.ts +13 -15
  1168. package/toolbar/button/ToolbarButtonDataAttributes.js +14 -17
  1169. package/toolbar/button/ToolbarButtonDataAttributes.mjs +13 -16
  1170. package/toolbar/group/ToolbarGroupDataAttributes.d.mts +9 -11
  1171. package/toolbar/group/ToolbarGroupDataAttributes.d.ts +9 -11
  1172. package/toolbar/group/ToolbarGroupDataAttributes.js +10 -13
  1173. package/toolbar/group/ToolbarGroupDataAttributes.mjs +9 -12
  1174. package/toolbar/input/ToolbarInputDataAttributes.d.mts +13 -15
  1175. package/toolbar/input/ToolbarInputDataAttributes.d.ts +13 -15
  1176. package/toolbar/input/ToolbarInputDataAttributes.js +14 -17
  1177. package/toolbar/input/ToolbarInputDataAttributes.mjs +13 -16
  1178. package/toolbar/link/ToolbarLinkDataAttributes.d.mts +5 -7
  1179. package/toolbar/link/ToolbarLinkDataAttributes.d.ts +5 -7
  1180. package/toolbar/link/ToolbarLinkDataAttributes.js +6 -9
  1181. package/toolbar/link/ToolbarLinkDataAttributes.mjs +5 -8
  1182. package/toolbar/root/ToolbarRootDataAttributes.d.mts +9 -11
  1183. package/toolbar/root/ToolbarRootDataAttributes.d.ts +9 -11
  1184. package/toolbar/root/ToolbarRootDataAttributes.js +10 -13
  1185. package/toolbar/root/ToolbarRootDataAttributes.mjs +9 -12
  1186. package/toolbar/separator/ToolbarSeparatorDataAttributes.d.mts +5 -7
  1187. package/toolbar/separator/ToolbarSeparatorDataAttributes.d.ts +5 -7
  1188. package/toolbar/separator/ToolbarSeparatorDataAttributes.js +6 -9
  1189. package/toolbar/separator/ToolbarSeparatorDataAttributes.mjs +5 -8
  1190. package/tooltip/arrow/TooltipArrowDataAttributes.d.mts +27 -29
  1191. package/tooltip/arrow/TooltipArrowDataAttributes.d.ts +27 -29
  1192. package/tooltip/arrow/TooltipArrowDataAttributes.js +28 -31
  1193. package/tooltip/arrow/TooltipArrowDataAttributes.mjs +28 -30
  1194. package/tooltip/popup/TooltipPopupDataAttributes.d.mts +31 -33
  1195. package/tooltip/popup/TooltipPopupDataAttributes.d.ts +31 -33
  1196. package/tooltip/popup/TooltipPopupDataAttributes.js +32 -35
  1197. package/tooltip/popup/TooltipPopupDataAttributes.mjs +32 -34
  1198. package/tooltip/positioner/TooltipPositionerCssVars.d.mts +37 -39
  1199. package/tooltip/positioner/TooltipPositionerCssVars.d.ts +37 -39
  1200. package/tooltip/positioner/TooltipPositionerCssVars.js +38 -41
  1201. package/tooltip/positioner/TooltipPositionerCssVars.mjs +37 -40
  1202. package/tooltip/positioner/TooltipPositionerDataAttributes.d.mts +22 -24
  1203. package/tooltip/positioner/TooltipPositionerDataAttributes.d.ts +22 -24
  1204. package/tooltip/positioner/TooltipPositionerDataAttributes.js +23 -26
  1205. package/tooltip/positioner/TooltipPositionerDataAttributes.mjs +23 -25
  1206. package/tooltip/root/TooltipRoot.d.mts +1 -1
  1207. package/tooltip/root/TooltipRoot.d.ts +1 -1
  1208. package/tooltip/store/TooltipStore.js +1 -2
  1209. package/tooltip/store/TooltipStore.mjs +2 -3
  1210. package/tooltip/trigger/TooltipTrigger.js +7 -5
  1211. package/tooltip/trigger/TooltipTrigger.mjs +7 -5
  1212. package/tooltip/trigger/TooltipTriggerDataAttributes.d.mts +8 -10
  1213. package/tooltip/trigger/TooltipTriggerDataAttributes.d.ts +8 -10
  1214. package/tooltip/trigger/TooltipTriggerDataAttributes.js +9 -12
  1215. package/tooltip/trigger/TooltipTriggerDataAttributes.mjs +9 -11
  1216. package/tooltip/viewport/TooltipViewportCssVars.d.mts +12 -14
  1217. package/tooltip/viewport/TooltipViewportCssVars.d.ts +12 -14
  1218. package/tooltip/viewport/TooltipViewportCssVars.js +13 -16
  1219. package/tooltip/viewport/TooltipViewportCssVars.mjs +12 -15
  1220. package/tooltip/viewport/TooltipViewportDataAttributes.d.mts +24 -26
  1221. package/tooltip/viewport/TooltipViewportDataAttributes.d.ts +24 -26
  1222. package/tooltip/viewport/TooltipViewportDataAttributes.js +25 -28
  1223. package/tooltip/viewport/TooltipViewportDataAttributes.mjs +24 -27
  1224. package/utils/CommonPopupCssVars.d.mts +12 -0
  1225. package/utils/CommonPopupCssVars.d.ts +12 -0
  1226. package/utils/CommonPopupCssVars.js +18 -0
  1227. package/utils/CommonPopupCssVars.mjs +12 -0
  1228. package/utils/CommonPopupDataAttributes.d.mts +30 -0
  1229. package/utils/CommonPopupDataAttributes.d.ts +30 -0
  1230. package/utils/CommonPopupDataAttributes.js +44 -0
  1231. package/utils/CommonPopupDataAttributes.mjs +38 -0
  1232. package/utils/CommonPositionerCssVars.d.mts +37 -0
  1233. package/utils/CommonPositionerCssVars.d.ts +37 -0
  1234. package/utils/CommonPositionerCssVars.js +43 -0
  1235. package/utils/CommonPositionerCssVars.mjs +37 -0
  1236. package/utils/CommonTriggerDataAttributes.d.mts +8 -0
  1237. package/utils/CommonTriggerDataAttributes.d.ts +8 -0
  1238. package/utils/CommonTriggerDataAttributes.js +15 -0
  1239. package/utils/CommonTriggerDataAttributes.mjs +9 -0
  1240. package/utils/CommonViewportDataAttributes.d.mts +7 -0
  1241. package/utils/CommonViewportDataAttributes.d.ts +7 -0
  1242. package/utils/CommonViewportDataAttributes.js +13 -0
  1243. package/utils/CommonViewportDataAttributes.mjs +7 -0
  1244. package/utils/NullStore.d.mts +2 -2
  1245. package/utils/NullStore.d.ts +2 -2
  1246. package/utils/collapsibleOpenStateMapping.js +6 -5
  1247. package/utils/collapsibleOpenStateMapping.mjs +2 -2
  1248. package/utils/getElementTransform.d.mts +12 -0
  1249. package/utils/getElementTransform.d.ts +12 -0
  1250. package/utils/getElementTransform.js +40 -0
  1251. package/utils/getElementTransform.mjs +35 -0
  1252. package/utils/popupStateMapping.d.mts +12 -51
  1253. package/utils/popupStateMapping.d.ts +12 -51
  1254. package/utils/popupStateMapping.js +11 -51
  1255. package/utils/popupStateMapping.mjs +10 -54
  1256. package/utils/popups/popupHandle.js +2 -2
  1257. package/utils/popups/popupHandle.mjs +2 -2
  1258. package/utils/popups/popupStoreUtils.d.mts +28 -11
  1259. package/utils/popups/popupStoreUtils.d.ts +28 -11
  1260. package/utils/popups/popupStoreUtils.js +82 -55
  1261. package/utils/popups/popupStoreUtils.mjs +81 -54
  1262. package/utils/popups/store.d.mts +7 -5
  1263. package/utils/popups/store.d.ts +7 -5
  1264. package/utils/popups/store.js +13 -18
  1265. package/utils/popups/store.mjs +13 -17
  1266. package/utils/scrollEdges.js +1 -1
  1267. package/utils/scrollEdges.mjs +1 -1
  1268. package/utils/styles.d.mts +1 -1
  1269. package/utils/styles.d.ts +1 -1
  1270. package/utils/usePopupAutoResize.js +10 -8
  1271. package/utils/usePopupAutoResize.mjs +11 -8
  1272. package/utils/usePopupViewport.js +5 -3
  1273. package/utils/usePopupViewport.mjs +5 -3
  1274. package/utils/useSwipeDismiss.d.mts +0 -5
  1275. package/utils/useSwipeDismiss.d.ts +0 -5
  1276. package/utils/useSwipeDismiss.js +14 -33
  1277. package/utils/useSwipeDismiss.mjs +14 -32
  1278. package/internals/areArraysEqual.d.mts +0 -3
  1279. package/internals/areArraysEqual.d.ts +0 -3
  1280. package/internals/areArraysEqual.js +0 -9
  1281. package/internals/areArraysEqual.mjs +0 -3
  1282. package/internals/clamp.d.mts +0 -1
  1283. package/internals/clamp.d.ts +0 -1
  1284. package/internals/clamp.js +0 -9
  1285. package/internals/clamp.mjs +0 -3
  1286. package/internals/shadowDom.d.mts +0 -3
  1287. package/internals/shadowDom.d.ts +0 -3
  1288. package/internals/shadowDom.js +0 -48
  1289. package/internals/shadowDom.mjs +0 -40
  1290. package/utils/formatNumber.d.mts +0 -3
  1291. package/utils/formatNumber.d.ts +0 -3
  1292. package/utils/formatNumber.js +0 -29
  1293. package/utils/formatNumber.mjs +0 -21
  1294. package/utils/stringifyLocale.d.mts +0 -1
  1295. package/utils/stringifyLocale.d.ts +0 -1
  1296. package/utils/stringifyLocale.js +0 -15
  1297. package/utils/stringifyLocale.mjs +0 -9
  1298. /package/drawer/content/{DrawerContentDataAttributes.d.mts → drawerContentAttribute.d.mts} +0 -0
  1299. /package/drawer/content/{DrawerContentDataAttributes.d.ts → drawerContentAttribute.d.ts} +0 -0
  1300. /package/drawer/content/{DrawerContentDataAttributes.js → drawerContentAttribute.js} +0 -0
  1301. /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
- ## TypeScript
590
+ ## Item values
591
591
 
592
- Combobox infers the item type from the `defaultValue` or `value` props passed to `<Combobox.Root>`.
593
- The type of items held in the `items` array must also match the `value` prop type passed to `<Combobox.Item>`.
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).
594
605
 
595
606
  ## Examples
596
607
 
597
- ### Typed wrapper component
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
+ }
598
1091
 
599
- The following example shows a typed wrapper around the Combobox component with correct type inference and type safety:
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
+ }
600
1107
 
601
- ```tsx title="Specifying generic type parameters"
602
- import * as React from 'react';
603
- import { Combobox } from '@base-ui/react/combobox';
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
+ }
604
1125
 
605
- export function MyCombobox<Value, Multiple extends boolean | undefined = false>(
606
- props: Combobox.Root.Props<Value, Multiple>,
607
- ): React.JSX.Element {
608
- return <Combobox.Root {...props}>{/* ... */}</Combobox.Root>;
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
+ );
609
1139
  }
1140
+
1141
+ interface Fruit {
1142
+ id: string;
1143
+ name: string;
1144
+ }
1145
+
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
+ ];
1164
+
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.Chips className="flex w-full flex-wrap items-center gap-1">
643
- <Combobox.Value>
644
- {(value: ProgrammingLanguage[]) => (
645
- <React.Fragment>
646
- {value.map((language) => (
647
- <Combobox.Chip
648
- key={language.id}
649
- 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"
650
- aria-label={language.value}
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
- {language.value}
653
- <Combobox.ChipRemove
654
- 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"
655
- aria-label={`Remove ${language.value}`}
656
- >
657
- <XIcon />
658
- </Combobox.ChipRemove>
659
- </Combobox.Chip>
660
- ))}
661
- <Combobox.Input
662
- id={id}
663
- placeholder={value.length > 0 ? '' : 'e.g. TypeScript'}
664
- 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"
665
- />
666
- </React.Fragment>
667
- )}
668
- </Combobox.Value>
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.Chips className={styles.Chips}>
1094
- <Combobox.Value>
1095
- {(value: ProgrammingLanguage[]) => (
1096
- <React.Fragment>
1097
- {value.map((language) => (
1098
- <Combobox.Chip
1099
- key={language.id}
1100
- className={styles.Chip}
1101
- aria-label={language.value}
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
- {language.value}
1104
- <Combobox.ChipRemove
1105
- className={styles.ChipRemove}
1106
- aria-label={`Remove ${language.value}`}
1107
- >
1108
- <XIcon />
1109
- </Combobox.ChipRemove>
1110
- </Combobox.Chip>
1111
- ))}
1112
- <Combobox.Input
1113
- id={id}
1114
- placeholder={value.length > 0 ? '' : 'e.g. TypeScript'}
1115
- className={styles.Input}
1116
- />
1117
- </React.Fragment>
1118
- )}
1119
- </Combobox.Value>
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.
@@ -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.Chips className="flex w-full flex-wrap items-center gap-1">
3897
- <Combobox.Value>
3898
- {(value: DirectoryUser[]) => (
3899
- <React.Fragment>
3900
- {value.map((user) => (
3901
- <Combobox.Chip
3902
- key={user.id}
3903
- 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"
3904
- aria-label={user.name}
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
- {user.name}
3907
- <Combobox.ChipRemove
3908
- 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"
3909
- aria-label={`Remove ${user.name}`}
3910
- >
3911
- <XIcon />
3912
- </Combobox.ChipRemove>
3913
- </Combobox.Chip>
3914
- ))}
3915
- <Combobox.Input
3916
- id={id}
3917
- placeholder={value.length > 0 ? '' : 'e.g. Michael'}
3918
- 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"
3919
- />
3920
- </React.Fragment>
3921
- )}
3922
- </Combobox.Value>
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.Chips className={styles.Chips}>
4629
- <Combobox.Value>
4630
- {(value: DirectoryUser[]) => (
4631
- <React.Fragment>
4632
- {value.map((user) => (
4633
- <Combobox.Chip key={user.id} className={styles.Chip} aria-label={user.name}>
4634
- {user.name}
4635
- <Combobox.ChipRemove
4636
- className={styles.ChipRemove}
4637
- aria-label={`Remove ${user.name}`}
4638
- >
4639
- <XIcon />
4640
- </Combobox.ChipRemove>
4641
- </Combobox.Chip>
4642
- ))}
4643
- <Combobox.Input
4644
- id={id}
4645
- placeholder={value.length > 0 ? '' : 'e.g. Michael'}
4646
- className={styles.Input}
4647
- />
4648
- </React.Fragment>
4649
- )}
4650
- </Combobox.Value>
4651
- </Combobox.Chips>
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.Chips className="flex w-full flex-wrap items-center gap-1">
4996
- <Combobox.Value>
4997
- {(value: LabelItem[]) => (
4998
- <React.Fragment>
4999
- {value.map((label) => (
5000
- <Combobox.Chip
5001
- key={label.id}
5002
- 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"
5003
- aria-label={label.value}
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
- {label.value}
5006
- <Combobox.ChipRemove
5007
- 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"
5008
- aria-label={`Remove ${label.value}`}
5009
- >
5010
- <XIcon />
5011
- </Combobox.ChipRemove>
5012
- </Combobox.Chip>
5013
- ))}
5014
- <Combobox.Input
5015
- ref={comboboxInputRef}
5016
- id={id}
5017
- placeholder={value.length > 0 ? '' : 'e.g. bug'}
5018
- 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"
5019
- onKeyDown={handleInputKeyDown}
5020
- />
5021
- </React.Fragment>
5022
- )}
5023
- </Combobox.Value>
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.Chips className={styles.Chips}>
5808
- <Combobox.Value>
5809
- {(value: LabelItem[]) => (
5810
- <React.Fragment>
5811
- {value.map((label) => (
5812
- <Combobox.Chip
5813
- key={label.id}
5814
- className={styles.Chip}
5815
- aria-label={label.value}
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
- {label.value}
5818
- <Combobox.ChipRemove
5819
- className={styles.ChipRemove}
5820
- aria-label={`Remove ${label.value}`}
5821
- >
5822
- <XIcon />
5823
- </Combobox.ChipRemove>
5824
- </Combobox.Chip>
5825
- ))}
5826
- <Combobox.Input
5827
- ref={comboboxInputRef}
5828
- id={id}
5829
- placeholder={value.length > 0 ? '' : 'e.g. bug'}
5830
- className={styles.Input}
5831
- onKeyDown={handleInputKeyDown}
5832
- />
5833
- </React.Fragment>
5834
- )}
5835
- </Combobox.Value>
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
 
@@ -6517,46 +7195,46 @@ Doesn't render its own HTML element.
6517
7195
 
6518
7196
  **Root Props:**
6519
7197
 
6520
- | Prop | Type | Default | Description |
6521
- | :------------------- | :------------------------------------------------------------------------------------------------------ | :------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
6522
- | name | `string` | - | Identifies the field when a form is submitted. |
6523
- | 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. |
6524
- | value | `Value[] \| Value \| null` | - | The selected value of the combobox. Use when controlled. |
6525
- | onValueChange | `((value: Value[] \| Value \| null, eventDetails: Combobox.Root.ChangeEventDetails) => void)` | - | Event handler called when the selected value of the combobox changes. |
6526
- | defaultInputValue | `string \| number \| string[]` | - | The uncontrolled input value when initially rendered. To render a controlled input, use the `inputValue` prop instead. |
6527
- | inputValue | `string \| string[] \| number` | - | The input value of the combobox. Use when controlled. |
6528
- | onInputValueChange | `((inputValue: string, eventDetails: Combobox.Root.ChangeEventDetails) => void)` | - | Event handler called when the input value changes. |
6529
- | defaultOpen | `boolean` | `false` | Whether the popup is initially open. To render a controlled popup, use the `open` prop instead. |
6530
- | open | `boolean` | - | Whether the popup is currently open. Use when controlled. |
6531
- | onOpenChange | `((open: boolean, eventDetails: Combobox.Root.ChangeEventDetails) => void)` | - | Event handler called when the popup is opened or closed. |
6532
- | autoHighlight | `boolean` | `false` | Whether the first matching item is highlighted automatically while filtering. |
6533
- | highlightItemOnHover | `boolean` | `true` | Whether moving the pointer over items should highlight them.&#xA;Disabling this prop allows CSS `:hover` to be differentiated from the `:focus` (`data-highlighted`) state. |
6534
- | actionsRef | `React.RefObject<Combobox.Root.Actions \| null>` | - | A ref to imperative actions. `unmount`: Manually unmounts the combobox.&#xA;Call this after any externally controlled closing animation finishes. |
6535
- | autoComplete | `string` | - | Provides a hint to the browser for autofill. |
6536
- | filter | `((itemValue: Value, query: string, itemToString?: ((itemValue: Value) => string)) => boolean) \| null` | - | ComboboxFilter function used to match items vs input query. |
6537
- | filteredItems | `any[] \| Group[]` | - | Filtered items to display in the list.&#xA;When provided, the list will use these items instead of filtering the `items` prop internally.&#xA;Use when you want to control filtering logic externally with the `useFilter()` hook. |
6538
- | form | `string` | - | Identifies the form that owns the internal input.&#xA;Useful when the combobox is rendered outside the form. |
6539
- | grid | `boolean` | `false` | Whether list items are presented in a grid layout.&#xA;When enabled, arrow keys navigate across rows and columns inferred from DOM rows. |
6540
- | 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&#xA;visible: `<Combobox.Root inline open>` In a `Combobox.Root` > `Dialog.Root` composition, bind the Combobox's `open` and&#xA;`onOpenChange` props to the `Dialog`'s `open` and `onOpenChange` state instead so the&#xA;component resets its transient state (filter query, highlighted item, and input value) when&#xA;the dialog closes. |
6541
- | 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.&#xA;Defaults to `Object.is` comparison. |
6542
- | 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.&#xA;If the shape of the object is `{ value, label }`, the label will be used automatically without needing to specify this prop. |
6543
- | 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.&#xA;If the shape of the object is `{ value, label }`, the value will be used automatically without needing to specify this prop. |
6544
- | items | `any[] \| Group[]` | - | The items to be displayed in the list.&#xA;Can be either a flat array of items or an array of groups with items. |
6545
- | limit | `number` | `-1` | The maximum number of items to display in the list. |
6546
- | locale | `Intl.LocalesArgument` | - | The locale to use for string comparison.&#xA;Defaults to the user's runtime locale. |
6547
- | 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.&#xA;The input is always included in the focus loop per [ARIA Authoring Practices](https://www.w3.org/WAI/ARIA/apg/patterns/combobox/).&#xA;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. |
6548
- | 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. |
6549
- | multiple | `boolean` | `false` | Whether multiple items can be selected. |
6550
- | onItemHighlighted | `((highlightedValue: Value \| undefined, eventDetails: Combobox.Root.HighlightEventDetails) => void)` | - | Callback fired when an item is highlighted or unhighlighted.&#xA;Receives the highlighted item value (or `undefined` if no item is highlighted) and event details with a `reason` property describing why the highlight changed.&#xA;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. |
6551
- | onOpenChangeComplete | `((open: boolean) => void)` | - | Event handler called after any animations complete when the popup is opened or closed. |
6552
- | openOnInputClick | `boolean` | `true` | Whether the popup opens when clicking the input. |
6553
- | virtualized | `boolean` | `false` | Whether the items are being externally virtualized. |
6554
- | disabled | `boolean` | `false` | Whether the component should ignore user interaction. |
6555
- | readOnly | `boolean` | `false` | Whether the user should be unable to choose a different option from the popup. |
6556
- | required | `boolean` | `false` | Whether the user must choose a value before submitting a form. |
6557
- | inputRef | `React.Ref<HTMLInputElement>` | - | A ref to the hidden input element. |
6558
- | id | `string` | - | The id of the component. |
6559
- | 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.&#xA;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.&#xA;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.&#xA;Receives the source item, which is the derived value's item when `items` is a `createItems()`&#xA;collection, and the item itself otherwise. |
7215
+ | filteredItems | `Item[] \| Group<Item>[]` | - | Filtered items to display in the list.&#xA;When provided, the list uses these items instead of filtering the `items` prop internally.&#xA;When `items` is also provided, this array must preserve its flat or grouped structure.&#xA;With a `createItems()` collection, pass source items rather than derived values.&#xA;Nullish entries are not supported, as in `items`.&#xA;Use when you want to control filtering logic externally with the `useFilter()` hook. |
7216
+ | form | `string` | - | Identifies the form that owns the internal input.&#xA;Useful when the combobox is rendered outside the form. |
7217
+ | grid | `boolean` | `false` | Whether list items are presented in a grid layout.&#xA;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&#xA;visible: `<Combobox.Root inline open>` In a `Combobox.Root` > `Dialog.Root` composition, bind the Combobox's `open` and&#xA;`onOpenChange` props to the `Dialog`'s `open` and `onOpenChange` state instead so the&#xA;component resets its transient state (filter query, highlighted item, and input value) when&#xA;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.&#xA;With a `createItems()` collection, both arguments are derived values.&#xA;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.&#xA;If the shape of the object is `{ value, label }`, the label will be used automatically without needing to specify this prop.&#xA;With a `createItems()` collection, this receives the derived value, and the collection's&#xA;`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.&#xA;If the shape of the object is `{ value, label }`, the value will be used automatically without needing to specify this prop.&#xA;With a `createItems()` collection, this receives the derived value. |
7222
+ | items | `any[] \| Group[] \| ComboboxItemCollection<Item, Value>` | - | The items to be displayed in the list.&#xA;Can be a flat array of items, an array of groups with items, or a collection created by&#xA;the `createItems()` function, which derives each item's selection value and label.&#xA;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.&#xA;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.&#xA;The input is always included in the focus loop per [ARIA Authoring Practices](https://www.w3.org/WAI/ARIA/apg/patterns/combobox/).&#xA;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.&#xA;Receives the highlighted item value (or `undefined` if no item is highlighted) and event details with a `reason` property describing why the highlight changed.&#xA;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` | - | - |
6560
7238
 
6561
7239
  **`autoComplete` Prop References:**
6562
7240
 
@@ -6602,7 +7280,6 @@ type ComboboxRootChangeEventReason =
6602
7280
 
6603
7281
  ```typescript
6604
7282
  type ComboboxRootChangeEventDetails = (
6605
- | { reason: 'none'; event: Event }
6606
7283
  | { reason: 'trigger-press'; event: MouseEvent | PointerEvent | TouchEvent | KeyboardEvent }
6607
7284
  | { reason: 'input-press'; event: MouseEvent | PointerEvent | TouchEvent | KeyboardEvent }
6608
7285
  | { reason: 'outside-press'; event: MouseEvent | PointerEvent | TouchEvent }
@@ -6616,6 +7293,7 @@ type ComboboxRootChangeEventDetails = (
6616
7293
  | { reason: 'clear-press'; event: MouseEvent | PointerEvent | KeyboardEvent }
6617
7294
  | { reason: 'chip-remove-press'; event: MouseEvent | PointerEvent | KeyboardEvent }
6618
7295
  | { reason: 'cancel-open'; event: MouseEvent }
7296
+ | { reason: 'none'; event: Event }
6619
7297
  ) & {
6620
7298
  /** Cancels Base UI from handling the event. */
6621
7299
  cancel: () => void;
@@ -6627,6 +7305,11 @@ type ComboboxRootChangeEventDetails = (
6627
7305
  isPropagationAllowed: boolean;
6628
7306
  /** The element that triggered the event, if applicable. */
6629
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;
6630
7313
  };
6631
7314
  ```
6632
7315
 
@@ -6691,6 +7374,8 @@ type ComboboxTriggerState = {
6691
7374
  open: boolean;
6692
7375
  /** Whether the component should ignore user interaction. */
6693
7376
  disabled: boolean;
7377
+ /** Whether the component should ignore user edits. */
7378
+ readOnly: boolean;
6694
7379
  /** Indicates which side the corresponding popup is positioned relative to its anchor. */
6695
7380
  popupSide: Side | null;
6696
7381
  /** Present when the corresponding items list is empty. */
@@ -6717,10 +7402,10 @@ Doesn't render its own HTML element.
6717
7402
 
6718
7403
  **Value Props:**
6719
7404
 
6720
- | Prop | Type | Default | Description |
6721
- | :---------- | :------------------------------------------------------------- | :------ | :--------------------------------------------------------------------------------------------------------------------------------------------------- |
6722
- | placeholder | `React.ReactNode` | - | The placeholder value to display when no value is selected.&#xA;This is overridden by `children` if specified, or by a null item's label in `items`. |
6723
- | 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.&#xA;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.&#xA;Treat the value as read-only: in `multiple` mode it may be a shared frozen array&#xA;when nothing is selected. |
6724
7409
 
6725
7410
  ### Value.Props
6726
7411
 
@@ -7073,9 +7758,9 @@ Renders a `<div>` element.
7073
7758
  | :------------------ | :------------------------------------------------------------------------- | :-------------------------------------------------------------------- |
7074
7759
  | data-open | - | Present when the popup is open. |
7075
7760
  | data-closed | - | Present when the popup is closed. |
7761
+ | data-anchor-hidden | - | Present when the anchor is hidden. |
7076
7762
  | data-align | `'start' \| 'center' \| 'end'` | Indicates how the popup is aligned relative to specified side. |
7077
7763
  | data-empty | - | Present when the items list is empty. |
7078
- | data-instant | `'click' \| 'dismiss'` | Present if animations should be instant. |
7079
7764
  | data-side | `'top' \| 'bottom' \| 'left' \| 'right' \| 'inline-end' \| 'inline-start'` | Indicates which side the popup is positioned relative to the trigger. |
7080
7765
  | data-starting-style | - | Present when the popup begins animating in. |
7081
7766
  | data-ending-style | - | Present when the popup is animating out. |
@@ -7534,6 +8219,46 @@ type ComboboxItemIndicatorState = {
7534
8219
  };
7535
8220
  ```
7536
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
+
7537
8262
  ### InputGroup
7538
8263
 
7539
8264
  A wrapper for the input and its associated controls.
@@ -7606,7 +8331,7 @@ Matches items against a query using `Intl.Collator` for robust string matching.
7606
8331
 
7607
8332
  | Parameter | Type | Default | Description |
7608
8333
  | :-------- | :---------------------- | :------ | :---------- |
7609
- | options? | `ComboboxFilterOptions` | - | - |
8334
+ | options? | `ComboboxFilterOptions` | `{}` | - |
7610
8335
 
7611
8336
  **Return Value:**
7612
8337
 
@@ -7617,6 +8342,7 @@ type ReturnValue = ComboboxFilter;
7617
8342
  ### useFilteredItems
7618
8343
 
7619
8344
  Returns the internally filtered items.
8345
+ Treat the result as read-only: it is internal state and may be a shared frozen array.
7620
8346
 
7621
8347
  **Return Value:**
7622
8348
 
@@ -7648,7 +8374,10 @@ type ComboboxFilterOptions = {
7648
8374
  * @default false
7649
8375
  */
7650
8376
  multiple?: boolean;
7651
- /** The current value of the combobox. */
8377
+ /**
8378
+ * The current value of the combobox, used to keep every item visible while the query still
8379
+ * matches the selection.
8380
+ */
7652
8381
  value?: any;
7653
8382
  /**
7654
8383
  * The locale to use for string comparison.
@@ -7658,6 +8387,36 @@ type ComboboxFilterOptions = {
7658
8387
  };
7659
8388
  ```
7660
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
+
7661
8420
  ## External Types
7662
8421
 
7663
8422
  ### Side
@@ -7725,7 +8484,8 @@ type Orientation = 'horizontal' | 'vertical';
7725
8484
  - `Combobox.Separator`: `Combobox.Separator`, `Combobox.Separator.Props`, `Combobox.Separator.State`
7726
8485
  - `Combobox.useFilter`
7727
8486
  - `Combobox.useFilteredItems`
7728
- - `Default`: `ComboboxFilter`, `ComboboxFilterOptions`, `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`
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`
7729
8489
 
7730
8490
  ## Canonical Types
7731
8491
 
@@ -7798,3 +8558,7 @@ Pass the result to the `filter` prop of `<Combobox.Root>`.
7798
8558
  ## useFilteredItems
7799
8559
 
7800
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.