@base-ui/react 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1068) hide show
  1. package/CHANGELOG.md +173 -0
  2. package/accordion/item/AccordionItem.d.ts +1 -1
  3. package/accordion/item/AccordionItemContext.d.ts +1 -1
  4. package/accordion/root/AccordionRoot.d.ts +9 -9
  5. package/alert-dialog/root/AlertDialogRoot.d.ts +3 -3
  6. package/alert-dialog/root/AlertDialogRoot.js +6 -4
  7. package/autocomplete/index.parts.d.ts +2 -1
  8. package/autocomplete/index.parts.js +8 -1
  9. package/autocomplete/root/AutocompleteRoot.d.ts +19 -14
  10. package/autocomplete/root/AutocompleteRoot.js +4 -6
  11. package/avatar/fallback/AvatarFallback.d.ts +7 -2
  12. package/avatar/fallback/AvatarFallback.js +34 -6
  13. package/avatar/image/AvatarImage.d.ts +7 -2
  14. package/avatar/image/AvatarImage.js +35 -6
  15. package/avatar/image/useImageLoadingStatus.d.ts +2 -2
  16. package/avatar/root/AvatarRoot.js +2 -2
  17. package/button/Button.d.ts +1 -1
  18. package/button/Button.js +2 -2
  19. package/checkbox/indicator/CheckboxIndicator.d.ts +1 -1
  20. package/checkbox/indicator/CheckboxIndicator.js +4 -4
  21. package/checkbox/root/CheckboxRoot.d.ts +13 -13
  22. package/checkbox/root/CheckboxRoot.js +31 -8
  23. package/checkbox-group/CheckboxGroup.d.ts +5 -5
  24. package/checkbox-group/CheckboxGroup.js +2 -2
  25. package/checkbox-group/useCheckboxGroupParent.d.ts +3 -3
  26. package/collapsible/panel/CollapsiblePanel.d.ts +2 -2
  27. package/collapsible/root/CollapsibleRoot.d.ts +4 -4
  28. package/collapsible/root/useCollapsibleRoot.d.ts +2 -2
  29. package/combobox/arrow/ComboboxArrow.js +2 -2
  30. package/combobox/arrow/ComboboxArrowDataAttributes.js +2 -2
  31. package/combobox/backdrop/ComboboxBackdrop.js +2 -2
  32. package/combobox/chip/ComboboxChip.js +6 -3
  33. package/combobox/chip/ComboboxChipContext.js +1 -0
  34. package/combobox/chip-remove/ComboboxChipRemove.js +28 -33
  35. package/combobox/chips/ComboboxChipsContext.js +1 -0
  36. package/combobox/clear/ComboboxClear.d.ts +2 -2
  37. package/combobox/clear/ComboboxClear.js +2 -3
  38. package/combobox/group/ComboboxGroup.d.ts +1 -1
  39. package/combobox/group/ComboboxGroupContext.d.ts +1 -1
  40. package/combobox/group/ComboboxGroupContext.js +1 -0
  41. package/combobox/icon/ComboboxIcon.d.ts +1 -1
  42. package/combobox/index.parts.d.ts +2 -1
  43. package/combobox/index.parts.js +8 -1
  44. package/combobox/input/ComboboxInput.d.ts +1 -1
  45. package/combobox/input/ComboboxInput.js +38 -8
  46. package/combobox/item/ComboboxItem.d.ts +3 -3
  47. package/combobox/item/ComboboxItem.js +15 -15
  48. package/combobox/item/ComboboxItemContext.js +1 -0
  49. package/combobox/item-indicator/ComboboxItemIndicator.d.ts +1 -1
  50. package/combobox/item-indicator/ComboboxItemIndicator.js +2 -2
  51. package/combobox/list/ComboboxList.js +2 -2
  52. package/combobox/popup/ComboboxPopup.d.ts +2 -2
  53. package/combobox/popup/ComboboxPopup.js +3 -4
  54. package/combobox/popup/ComboboxPopupDataAttributes.js +2 -2
  55. package/combobox/portal/ComboboxPortal.d.ts +1 -1
  56. package/combobox/portal/ComboboxPortalContext.js +1 -0
  57. package/combobox/positioner/ComboboxPositioner.js +5 -3
  58. package/combobox/positioner/ComboboxPositionerDataAttributes.js +2 -2
  59. package/combobox/root/AriaCombobox.d.ts +49 -44
  60. package/combobox/root/AriaCombobox.js +44 -62
  61. package/combobox/root/ComboboxRoot.d.ts +19 -14
  62. package/combobox/root/ComboboxRoot.js +3 -1
  63. package/combobox/root/ComboboxRootContext.d.ts +1 -0
  64. package/combobox/root/ComboboxRootContext.js +1 -0
  65. package/combobox/root/utils/useFilter.d.ts +2 -2
  66. package/combobox/root/utils/useFilteredItems.d.ts +4 -0
  67. package/combobox/root/utils/useFilteredItems.js +14 -0
  68. package/combobox/row/ComboboxRowContext.js +1 -0
  69. package/combobox/store.d.ts +11 -11
  70. package/combobox/store.js +3 -3
  71. package/combobox/trigger/ComboboxTrigger.d.ts +1 -1
  72. package/combobox/trigger/ComboboxTrigger.js +3 -4
  73. package/composite/item/CompositeItem.d.ts +6 -6
  74. package/composite/list/CompositeList.d.ts +3 -3
  75. package/composite/list/CompositeListContext.d.ts +1 -1
  76. package/composite/list/useCompositeListItem.d.ts +5 -5
  77. package/composite/root/CompositeRoot.d.ts +19 -19
  78. package/composite/root/useCompositeRoot.d.ts +12 -12
  79. package/context-menu/index.d.ts +1 -0
  80. package/context-menu/index.parts.d.ts +1 -0
  81. package/context-menu/index.parts.js +7 -0
  82. package/context-menu/root/ContextMenuRoot.d.ts +1 -1
  83. package/context-menu/root/ContextMenuRootContext.js +1 -0
  84. package/context-menu/trigger/ContextMenuTrigger.js +13 -3
  85. package/csp-provider/CSPContext.d.ts +2 -2
  86. package/csp-provider/CSPProvider.d.ts +2 -2
  87. package/dialog/backdrop/DialogBackdrop.d.ts +1 -1
  88. package/dialog/backdrop/DialogBackdrop.js +2 -2
  89. package/dialog/close/DialogClose.js +2 -2
  90. package/dialog/popup/DialogPopup.d.ts +2 -2
  91. package/dialog/popup/DialogPopup.js +2 -2
  92. package/dialog/portal/DialogPortal.d.ts +2 -2
  93. package/dialog/portal/DialogPortalContext.js +1 -0
  94. package/dialog/root/DialogRoot.d.ts +10 -10
  95. package/dialog/root/DialogRoot.js +17 -4
  96. package/dialog/root/useDialogRoot.d.ts +3 -3
  97. package/dialog/root/useDialogRoot.js +4 -0
  98. package/dialog/store/DialogStore.d.ts +258 -17
  99. package/dialog/store/DialogStore.js +3 -0
  100. package/dialog/trigger/DialogTrigger.d.ts +3 -3
  101. package/dialog/trigger/DialogTrigger.js +3 -3
  102. package/dialog/viewport/DialogViewport.js +5 -2
  103. package/direction-provider/DirectionProvider.d.ts +1 -1
  104. package/drawer/backdrop/DrawerBackdrop.d.ts +28 -0
  105. package/drawer/backdrop/DrawerBackdrop.js +63 -0
  106. package/drawer/backdrop/DrawerBackdropCssVars.d.ts +7 -0
  107. package/drawer/backdrop/DrawerBackdropCssVars.js +14 -0
  108. package/drawer/close/DrawerClose.d.ts +23 -0
  109. package/drawer/close/DrawerClose.js +15 -0
  110. package/drawer/content/DrawerContent.d.ts +15 -0
  111. package/drawer/content/DrawerContent.js +32 -0
  112. package/drawer/description/DrawerDescription.d.ts +18 -0
  113. package/drawer/description/DrawerDescription.js +15 -0
  114. package/drawer/indent/DrawerIndent.d.ts +20 -0
  115. package/drawer/indent/DrawerIndent.js +87 -0
  116. package/drawer/indent-background/DrawerIndentBackground.d.ts +18 -0
  117. package/drawer/indent-background/DrawerIndentBackground.js +47 -0
  118. package/drawer/index.d.ts +14 -0
  119. package/drawer/index.js +9 -0
  120. package/drawer/index.parts.d.ts +14 -0
  121. package/drawer/index.parts.js +109 -0
  122. package/drawer/popup/DrawerPopup.d.ts +69 -0
  123. package/drawer/popup/DrawerPopup.js +291 -0
  124. package/drawer/popup/DrawerPopupCssVars.d.ts +37 -0
  125. package/drawer/popup/DrawerPopupCssVars.js +44 -0
  126. package/drawer/popup/DrawerPopupDataAttributes.d.ts +27 -0
  127. package/drawer/popup/DrawerPopupDataAttributes.js +34 -0
  128. package/drawer/portal/DrawerPortal.d.ts +29 -0
  129. package/drawer/portal/DrawerPortal.js +16 -0
  130. package/drawer/provider/DrawerProvider.d.ts +16 -0
  131. package/drawer/provider/DrawerProvider.js +100 -0
  132. package/drawer/provider/DrawerProviderContext.d.ts +19 -0
  133. package/drawer/provider/DrawerProviderContext.js +21 -0
  134. package/drawer/root/DrawerRoot.d.ts +124 -0
  135. package/drawer/root/DrawerRoot.js +235 -0
  136. package/drawer/root/DrawerRootContext.d.ts +89 -0
  137. package/drawer/root/DrawerRootContext.js +21 -0
  138. package/drawer/root/useDrawerSnapPoints.d.ts +15 -0
  139. package/drawer/root/useDrawerSnapPoints.js +155 -0
  140. package/drawer/swipe-area/DrawerSwipeArea.d.ts +45 -0
  141. package/drawer/swipe-area/DrawerSwipeArea.js +385 -0
  142. package/drawer/title/DrawerTitle.d.ts +18 -0
  143. package/drawer/title/DrawerTitle.js +15 -0
  144. package/drawer/trigger/DrawerTrigger.d.ts +43 -0
  145. package/drawer/trigger/DrawerTrigger.js +15 -0
  146. package/drawer/viewport/DrawerViewport.d.ts +30 -0
  147. package/drawer/viewport/DrawerViewport.js +873 -0
  148. package/drawer/viewport/DrawerViewportContext.d.ts +11 -0
  149. package/drawer/viewport/DrawerViewportContext.js +21 -0
  150. package/esm/accordion/item/AccordionItem.d.ts +1 -1
  151. package/esm/accordion/item/AccordionItemContext.d.ts +1 -1
  152. package/esm/accordion/root/AccordionRoot.d.ts +9 -9
  153. package/esm/alert-dialog/root/AlertDialogRoot.d.ts +3 -3
  154. package/esm/alert-dialog/root/AlertDialogRoot.js +6 -4
  155. package/esm/autocomplete/index.parts.d.ts +2 -1
  156. package/esm/autocomplete/index.parts.js +2 -1
  157. package/esm/autocomplete/root/AutocompleteRoot.d.ts +19 -14
  158. package/esm/autocomplete/root/AutocompleteRoot.js +4 -6
  159. package/esm/avatar/fallback/AvatarFallback.d.ts +7 -2
  160. package/esm/avatar/fallback/AvatarFallback.js +33 -6
  161. package/esm/avatar/image/AvatarImage.d.ts +7 -2
  162. package/esm/avatar/image/AvatarImage.js +34 -6
  163. package/esm/avatar/image/useImageLoadingStatus.d.ts +2 -2
  164. package/esm/avatar/root/AvatarRoot.js +2 -2
  165. package/esm/button/Button.d.ts +1 -1
  166. package/esm/button/Button.js +2 -2
  167. package/esm/checkbox/indicator/CheckboxIndicator.d.ts +1 -1
  168. package/esm/checkbox/indicator/CheckboxIndicator.js +4 -4
  169. package/esm/checkbox/root/CheckboxRoot.d.ts +13 -13
  170. package/esm/checkbox/root/CheckboxRoot.js +31 -8
  171. package/esm/checkbox-group/CheckboxGroup.d.ts +5 -5
  172. package/esm/checkbox-group/CheckboxGroup.js +2 -2
  173. package/esm/checkbox-group/useCheckboxGroupParent.d.ts +3 -3
  174. package/esm/collapsible/panel/CollapsiblePanel.d.ts +2 -2
  175. package/esm/collapsible/root/CollapsibleRoot.d.ts +4 -4
  176. package/esm/collapsible/root/useCollapsibleRoot.d.ts +2 -2
  177. package/esm/combobox/arrow/ComboboxArrow.js +2 -2
  178. package/esm/combobox/arrow/ComboboxArrowDataAttributes.js +2 -2
  179. package/esm/combobox/backdrop/ComboboxBackdrop.js +2 -2
  180. package/esm/combobox/chip/ComboboxChip.js +6 -3
  181. package/esm/combobox/chip/ComboboxChipContext.js +2 -0
  182. package/esm/combobox/chip-remove/ComboboxChipRemove.js +28 -33
  183. package/esm/combobox/chips/ComboboxChipsContext.js +2 -0
  184. package/esm/combobox/clear/ComboboxClear.d.ts +2 -2
  185. package/esm/combobox/clear/ComboboxClear.js +2 -3
  186. package/esm/combobox/group/ComboboxGroup.d.ts +1 -1
  187. package/esm/combobox/group/ComboboxGroupContext.d.ts +1 -1
  188. package/esm/combobox/group/ComboboxGroupContext.js +2 -0
  189. package/esm/combobox/icon/ComboboxIcon.d.ts +1 -1
  190. package/esm/combobox/index.parts.d.ts +2 -1
  191. package/esm/combobox/index.parts.js +2 -1
  192. package/esm/combobox/input/ComboboxInput.d.ts +1 -1
  193. package/esm/combobox/input/ComboboxInput.js +38 -8
  194. package/esm/combobox/item/ComboboxItem.d.ts +3 -3
  195. package/esm/combobox/item/ComboboxItem.js +15 -15
  196. package/esm/combobox/item/ComboboxItemContext.js +2 -0
  197. package/esm/combobox/item-indicator/ComboboxItemIndicator.d.ts +1 -1
  198. package/esm/combobox/item-indicator/ComboboxItemIndicator.js +2 -2
  199. package/esm/combobox/list/ComboboxList.js +2 -2
  200. package/esm/combobox/popup/ComboboxPopup.d.ts +2 -2
  201. package/esm/combobox/popup/ComboboxPopup.js +3 -4
  202. package/esm/combobox/popup/ComboboxPopupDataAttributes.js +2 -2
  203. package/esm/combobox/portal/ComboboxPortal.d.ts +1 -1
  204. package/esm/combobox/portal/ComboboxPortalContext.js +2 -0
  205. package/esm/combobox/positioner/ComboboxPositioner.js +5 -3
  206. package/esm/combobox/positioner/ComboboxPositionerDataAttributes.js +2 -2
  207. package/esm/combobox/root/AriaCombobox.d.ts +49 -44
  208. package/esm/combobox/root/AriaCombobox.js +45 -63
  209. package/esm/combobox/root/ComboboxRoot.d.ts +19 -14
  210. package/esm/combobox/root/ComboboxRoot.js +3 -1
  211. package/esm/combobox/root/ComboboxRootContext.d.ts +1 -0
  212. package/esm/combobox/root/ComboboxRootContext.js +2 -0
  213. package/esm/combobox/root/utils/useFilter.d.ts +2 -2
  214. package/esm/combobox/root/utils/useFilteredItems.d.ts +4 -0
  215. package/esm/combobox/root/utils/useFilteredItems.js +9 -0
  216. package/esm/combobox/row/ComboboxRowContext.js +2 -0
  217. package/esm/combobox/store.d.ts +11 -11
  218. package/esm/combobox/store.js +3 -3
  219. package/esm/combobox/trigger/ComboboxTrigger.d.ts +1 -1
  220. package/esm/combobox/trigger/ComboboxTrigger.js +3 -4
  221. package/esm/composite/item/CompositeItem.d.ts +6 -6
  222. package/esm/composite/list/CompositeList.d.ts +3 -3
  223. package/esm/composite/list/CompositeListContext.d.ts +1 -1
  224. package/esm/composite/list/useCompositeListItem.d.ts +5 -5
  225. package/esm/composite/root/CompositeRoot.d.ts +19 -19
  226. package/esm/composite/root/useCompositeRoot.d.ts +12 -12
  227. package/esm/context-menu/index.d.ts +1 -0
  228. package/esm/context-menu/index.parts.d.ts +1 -0
  229. package/esm/context-menu/index.parts.js +1 -0
  230. package/esm/context-menu/root/ContextMenuRoot.d.ts +1 -1
  231. package/esm/context-menu/root/ContextMenuRootContext.js +2 -0
  232. package/esm/context-menu/trigger/ContextMenuTrigger.js +13 -3
  233. package/esm/csp-provider/CSPContext.d.ts +2 -2
  234. package/esm/csp-provider/CSPProvider.d.ts +2 -2
  235. package/esm/dialog/backdrop/DialogBackdrop.d.ts +1 -1
  236. package/esm/dialog/backdrop/DialogBackdrop.js +2 -2
  237. package/esm/dialog/close/DialogClose.js +2 -2
  238. package/esm/dialog/popup/DialogPopup.d.ts +2 -2
  239. package/esm/dialog/popup/DialogPopup.js +2 -2
  240. package/esm/dialog/portal/DialogPortal.d.ts +2 -2
  241. package/esm/dialog/portal/DialogPortalContext.js +2 -0
  242. package/esm/dialog/root/DialogRoot.d.ts +10 -10
  243. package/esm/dialog/root/DialogRoot.js +17 -4
  244. package/esm/dialog/root/useDialogRoot.d.ts +3 -3
  245. package/esm/dialog/root/useDialogRoot.js +4 -0
  246. package/esm/dialog/store/DialogStore.d.ts +258 -17
  247. package/esm/dialog/store/DialogStore.js +3 -0
  248. package/esm/dialog/trigger/DialogTrigger.d.ts +3 -3
  249. package/esm/dialog/trigger/DialogTrigger.js +2 -2
  250. package/esm/dialog/viewport/DialogViewport.js +5 -2
  251. package/esm/direction-provider/DirectionProvider.d.ts +1 -1
  252. package/esm/drawer/backdrop/DrawerBackdrop.d.ts +28 -0
  253. package/esm/drawer/backdrop/DrawerBackdrop.js +57 -0
  254. package/esm/drawer/backdrop/DrawerBackdropCssVars.d.ts +7 -0
  255. package/esm/drawer/backdrop/DrawerBackdropCssVars.js +8 -0
  256. package/esm/drawer/close/DrawerClose.d.ts +23 -0
  257. package/esm/drawer/close/DrawerClose.js +10 -0
  258. package/esm/drawer/content/DrawerContent.d.ts +15 -0
  259. package/esm/drawer/content/DrawerContent.js +27 -0
  260. package/esm/drawer/description/DrawerDescription.d.ts +18 -0
  261. package/esm/drawer/description/DrawerDescription.js +10 -0
  262. package/esm/drawer/indent/DrawerIndent.d.ts +20 -0
  263. package/esm/drawer/indent/DrawerIndent.js +81 -0
  264. package/esm/drawer/indent-background/DrawerIndentBackground.d.ts +18 -0
  265. package/esm/drawer/indent-background/DrawerIndentBackground.js +41 -0
  266. package/esm/drawer/index.d.ts +14 -0
  267. package/esm/drawer/index.js +1 -0
  268. package/esm/drawer/index.parts.d.ts +14 -0
  269. package/esm/drawer/index.parts.js +14 -0
  270. package/esm/drawer/popup/DrawerPopup.d.ts +69 -0
  271. package/esm/drawer/popup/DrawerPopup.js +285 -0
  272. package/esm/drawer/popup/DrawerPopupCssVars.d.ts +37 -0
  273. package/esm/drawer/popup/DrawerPopupCssVars.js +38 -0
  274. package/esm/drawer/popup/DrawerPopupDataAttributes.d.ts +27 -0
  275. package/esm/drawer/popup/DrawerPopupDataAttributes.js +28 -0
  276. package/esm/drawer/portal/DrawerPortal.d.ts +29 -0
  277. package/esm/drawer/portal/DrawerPortal.js +11 -0
  278. package/esm/drawer/provider/DrawerProvider.d.ts +16 -0
  279. package/esm/drawer/provider/DrawerProvider.js +95 -0
  280. package/esm/drawer/provider/DrawerProviderContext.d.ts +19 -0
  281. package/esm/drawer/provider/DrawerProviderContext.js +13 -0
  282. package/esm/drawer/root/DrawerRoot.d.ts +124 -0
  283. package/esm/drawer/root/DrawerRoot.js +229 -0
  284. package/esm/drawer/root/DrawerRootContext.d.ts +89 -0
  285. package/esm/drawer/root/DrawerRootContext.js +13 -0
  286. package/esm/drawer/root/useDrawerSnapPoints.d.ts +15 -0
  287. package/esm/drawer/root/useDrawerSnapPoints.js +149 -0
  288. package/esm/drawer/swipe-area/DrawerSwipeArea.d.ts +45 -0
  289. package/esm/drawer/swipe-area/DrawerSwipeArea.js +379 -0
  290. package/esm/drawer/title/DrawerTitle.d.ts +18 -0
  291. package/esm/drawer/title/DrawerTitle.js +10 -0
  292. package/esm/drawer/trigger/DrawerTrigger.d.ts +43 -0
  293. package/esm/drawer/trigger/DrawerTrigger.js +10 -0
  294. package/esm/drawer/viewport/DrawerViewport.d.ts +30 -0
  295. package/esm/drawer/viewport/DrawerViewport.js +867 -0
  296. package/esm/drawer/viewport/DrawerViewportContext.d.ts +11 -0
  297. package/esm/drawer/viewport/DrawerViewportContext.js +13 -0
  298. package/esm/field/control/FieldControl.d.ts +3 -3
  299. package/esm/field/control/FieldControl.js +22 -20
  300. package/esm/field/error/FieldError.d.ts +5 -2
  301. package/esm/field/error/FieldError.js +50 -7
  302. package/esm/field/item/FieldItem.d.ts +1 -1
  303. package/esm/field/item/FieldItemContext.js +2 -0
  304. package/esm/field/label/FieldLabel.d.ts +1 -1
  305. package/esm/field/label/FieldLabel.js +7 -2
  306. package/esm/field/root/FieldRoot.d.ts +9 -9
  307. package/esm/field/root/FieldRootContext.d.ts +1 -1
  308. package/esm/field/useField.d.ts +1 -1
  309. package/esm/field/useField.js +2 -0
  310. package/esm/field/validity/FieldValidity.d.ts +2 -0
  311. package/esm/field/validity/FieldValidity.js +11 -4
  312. package/esm/fieldset/legend/FieldsetLegend.js +2 -2
  313. package/esm/fieldset/root/FieldsetRoot.d.ts +1 -1
  314. package/esm/fieldset/root/FieldsetRoot.js +3 -3
  315. package/esm/floating-ui-react/components/FloatingDelayGroup.d.ts +2 -7
  316. package/esm/floating-ui-react/components/FloatingDelayGroup.js +2 -9
  317. package/esm/floating-ui-react/components/FloatingFocusManager.d.ts +11 -21
  318. package/esm/floating-ui-react/components/FloatingFocusManager.js +63 -76
  319. package/esm/floating-ui-react/components/FloatingPortal.d.ts +8 -9
  320. package/esm/floating-ui-react/components/FloatingPortal.js +1 -3
  321. package/esm/floating-ui-react/components/FloatingTree.d.ts +1 -1
  322. package/esm/floating-ui-react/hooks/useClick.d.ts +12 -6
  323. package/esm/floating-ui-react/hooks/useClick.js +6 -5
  324. package/esm/floating-ui-react/hooks/useClientPoint.d.ts +2 -12
  325. package/esm/floating-ui-react/hooks/useClientPoint.js +5 -16
  326. package/esm/floating-ui-react/hooks/useDismiss.d.ts +15 -15
  327. package/esm/floating-ui-react/hooks/useDismiss.js +6 -3
  328. package/esm/floating-ui-react/hooks/useFloating.js +2 -0
  329. package/esm/floating-ui-react/hooks/useFloatingRootContext.d.ts +4 -10
  330. package/esm/floating-ui-react/hooks/useFloatingRootContext.js +5 -3
  331. package/esm/floating-ui-react/hooks/useFocus.d.ts +2 -8
  332. package/esm/floating-ui-react/hooks/useFocus.js +11 -12
  333. package/esm/floating-ui-react/hooks/useHover.d.ts +7 -30
  334. package/esm/floating-ui-react/hooks/useHover.js +20 -37
  335. package/esm/floating-ui-react/hooks/useHoverFloatingInteraction.d.ts +2 -7
  336. package/esm/floating-ui-react/hooks/useHoverFloatingInteraction.js +35 -40
  337. package/esm/floating-ui-react/hooks/useHoverInteractionSharedState.d.ts +17 -14
  338. package/esm/floating-ui-react/hooks/useHoverInteractionSharedState.js +36 -30
  339. package/esm/floating-ui-react/hooks/useHoverReferenceInteraction.d.ts +7 -3
  340. package/esm/floating-ui-react/hooks/useHoverReferenceInteraction.js +57 -60
  341. package/esm/floating-ui-react/hooks/useInteractions.d.ts +2 -2
  342. package/esm/floating-ui-react/hooks/useListNavigation.d.ts +19 -35
  343. package/esm/floating-ui-react/hooks/useListNavigation.js +13 -12
  344. package/esm/floating-ui-react/hooks/useRole.d.ts +1 -7
  345. package/esm/floating-ui-react/hooks/useRole.js +2 -3
  346. package/esm/floating-ui-react/hooks/useSyncedFloatingRootContext.d.ts +2 -2
  347. package/esm/floating-ui-react/hooks/useSyncedFloatingRootContext.js +2 -0
  348. package/esm/floating-ui-react/hooks/useTypeahead.d.ts +6 -16
  349. package/esm/floating-ui-react/hooks/useTypeahead.js +48 -16
  350. package/esm/floating-ui-react/middleware/arrow.d.ts +1 -1
  351. package/esm/floating-ui-react/safePolygon.d.ts +3 -3
  352. package/esm/floating-ui-react/types.d.ts +14 -14
  353. package/esm/floating-ui-react/utils/composite.d.ts +5 -5
  354. package/esm/floating-ui-react/utils/composite.js +1 -2
  355. package/esm/floating-ui-react/utils/element.d.ts +2 -1
  356. package/esm/floating-ui-react/utils/element.js +16 -4
  357. package/esm/floating-ui-react/utils/enqueueFocus.d.ts +3 -3
  358. package/esm/floating-ui-react/utils/event.js +2 -4
  359. package/esm/floating-ui-react/utils/markOthers.js +2 -2
  360. package/esm/floating-ui-react/utils/tabbable.js +6 -5
  361. package/esm/form/Form.d.ts +5 -5
  362. package/esm/index.d.ts +1 -0
  363. package/esm/index.js +2 -1
  364. package/esm/input/Input.d.ts +3 -3
  365. package/esm/labelable-provider/LabelableContext.d.ts +1 -1
  366. package/esm/labelable-provider/LabelableContext.js +1 -1
  367. package/esm/labelable-provider/LabelableProvider.js +33 -3
  368. package/esm/labelable-provider/useLabelableId.d.ts +3 -2
  369. package/esm/labelable-provider/useLabelableId.js +38 -12
  370. package/esm/menu/arrow/MenuArrow.js +2 -2
  371. package/esm/menu/arrow/MenuArrowDataAttributes.js +2 -2
  372. package/esm/menu/backdrop/MenuBackdrop.js +2 -2
  373. package/esm/menu/checkbox-item/MenuCheckboxItem.d.ts +8 -8
  374. package/esm/menu/checkbox-item/MenuCheckboxItemContext.js +2 -0
  375. package/esm/menu/checkbox-item-indicator/MenuCheckboxItemIndicator.d.ts +2 -2
  376. package/esm/menu/checkbox-item-indicator/MenuCheckboxItemIndicator.js +3 -3
  377. package/esm/menu/group/MenuGroupContext.js +2 -0
  378. package/esm/menu/index.d.ts +2 -1
  379. package/esm/menu/index.parts.d.ts +1 -0
  380. package/esm/menu/index.parts.js +1 -0
  381. package/esm/menu/item/MenuItem.d.ts +5 -5
  382. package/esm/menu/item/MenuItem.js +2 -2
  383. package/esm/menu/item/useMenuItem.js +12 -48
  384. package/esm/menu/item/useMenuItemCommonProps.d.ts +43 -0
  385. package/esm/menu/item/useMenuItemCommonProps.js +66 -0
  386. package/esm/menu/link-item/MenuLinkItem.d.ts +34 -0
  387. package/esm/menu/link-item/MenuLinkItem.js +55 -0
  388. package/esm/menu/link-item/MenuLinkItemDataAttributes.d.ts +6 -0
  389. package/esm/menu/link-item/MenuLinkItemDataAttributes.js +7 -0
  390. package/esm/menu/popup/MenuPopup.d.ts +3 -2
  391. package/esm/menu/popup/MenuPopup.js +2 -2
  392. package/esm/menu/popup/MenuPopupDataAttributes.js +2 -2
  393. package/esm/menu/portal/MenuPortal.d.ts +1 -1
  394. package/esm/menu/portal/MenuPortalContext.js +2 -0
  395. package/esm/menu/positioner/MenuPositioner.js +6 -12
  396. package/esm/menu/positioner/MenuPositionerDataAttributes.js +2 -2
  397. package/esm/menu/radio-group/MenuRadioGroup.d.ts +2 -2
  398. package/esm/menu/radio-group/MenuRadioGroup.js +2 -2
  399. package/esm/menu/radio-group/MenuRadioGroupContext.js +2 -0
  400. package/esm/menu/radio-item/MenuRadioItem.d.ts +5 -5
  401. package/esm/menu/radio-item/MenuRadioItemContext.js +2 -0
  402. package/esm/menu/radio-item-indicator/MenuRadioItemIndicator.d.ts +2 -2
  403. package/esm/menu/radio-item-indicator/MenuRadioItemIndicator.js +3 -3
  404. package/esm/menu/root/MenuRoot.d.ts +15 -15
  405. package/esm/menu/root/MenuRoot.js +38 -36
  406. package/esm/menu/store/MenuStore.d.ts +255 -15
  407. package/esm/menu/store/MenuStore.js +2 -11
  408. package/esm/menu/submenu-root/MenuSubmenuRoot.d.ts +2 -2
  409. package/esm/menu/submenu-root/MenuSubmenuRootContext.js +2 -0
  410. package/esm/menu/submenu-trigger/MenuSubmenuTrigger.d.ts +22 -22
  411. package/esm/menu/submenu-trigger/MenuSubmenuTrigger.js +9 -7
  412. package/esm/menu/trigger/MenuTrigger.d.ts +10 -6
  413. package/esm/menu/trigger/MenuTrigger.js +4 -3
  414. package/esm/menubar/Menubar.d.ts +4 -4
  415. package/esm/menubar/Menubar.js +2 -2
  416. package/esm/meter/root/MeterRoot.d.ts +6 -6
  417. package/esm/meter/root/MeterRoot.js +3 -11
  418. package/esm/meter/value/MeterValue.d.ts +1 -1
  419. package/esm/navigation-menu/arrow/NavigationMenuArrow.js +2 -2
  420. package/esm/navigation-menu/arrow/NavigationMenuArrowDataAttributes.js +2 -2
  421. package/esm/navigation-menu/backdrop/NavigationMenuBackdrop.js +2 -2
  422. package/esm/navigation-menu/content/NavigationMenuContent.d.ts +8 -1
  423. package/esm/navigation-menu/content/NavigationMenuContent.js +26 -5
  424. package/esm/navigation-menu/icon/NavigationMenuIcon.d.ts +1 -1
  425. package/esm/navigation-menu/icon/NavigationMenuIcon.js +2 -2
  426. package/esm/navigation-menu/item/NavigationMenuItem.d.ts +1 -1
  427. package/esm/navigation-menu/item/NavigationMenuItemContext.js +2 -0
  428. package/esm/navigation-menu/link/NavigationMenuLink.d.ts +2 -2
  429. package/esm/navigation-menu/link/NavigationMenuLink.js +2 -2
  430. package/esm/navigation-menu/list/NavigationMenuDismissContext.js +2 -0
  431. package/esm/navigation-menu/list/NavigationMenuList.d.ts +1 -1
  432. package/esm/navigation-menu/list/NavigationMenuList.js +2 -2
  433. package/esm/navigation-menu/popup/NavigationMenuPopup.d.ts +13 -0
  434. package/esm/navigation-menu/popup/NavigationMenuPopup.js +2 -2
  435. package/esm/navigation-menu/popup/NavigationMenuPopupDataAttributes.js +2 -2
  436. package/esm/navigation-menu/portal/NavigationMenuPortal.d.ts +2 -2
  437. package/esm/navigation-menu/portal/NavigationMenuPortalContext.js +2 -0
  438. package/esm/navigation-menu/positioner/NavigationMenuPositioner.js +2 -2
  439. package/esm/navigation-menu/positioner/NavigationPositionerDataAttributes.js +2 -2
  440. package/esm/navigation-menu/root/NavigationMenuRoot.d.ts +6 -6
  441. package/esm/navigation-menu/root/NavigationMenuRoot.js +2 -2
  442. package/esm/navigation-menu/root/NavigationMenuRootContext.js +2 -0
  443. package/esm/navigation-menu/trigger/NavigationMenuTrigger.js +8 -124
  444. package/esm/navigation-menu/utils/isOutsideMenuEvent.d.ts +1 -1
  445. package/esm/navigation-menu/viewport/NavigationMenuViewport.js +21 -1
  446. package/esm/number-field/input/NumberFieldInput.js +3 -11
  447. package/esm/number-field/root/NumberFieldRoot.d.ts +27 -20
  448. package/esm/number-field/root/NumberFieldRoot.js +22 -7
  449. package/esm/number-field/root/NumberFieldRootContext.d.ts +2 -2
  450. package/esm/number-field/root/useNumberFieldButton.d.ts +3 -3
  451. package/esm/number-field/root/useNumberFieldButton.js +12 -7
  452. package/esm/number-field/scrub-area/NumberFieldScrubArea.d.ts +2 -2
  453. package/esm/number-field/scrub-area/NumberFieldScrubArea.js +16 -0
  454. package/esm/number-field/scrub-area/NumberFieldScrubAreaContext.js +2 -0
  455. package/esm/number-field/utils/stateAttributesMapping.js +3 -1
  456. package/esm/number-field/utils/subscribeToVisualViewportResize.d.ts +1 -1
  457. package/esm/number-field/utils/types.d.ts +5 -5
  458. package/esm/number-field/utils/validate.d.ts +3 -1
  459. package/esm/number-field/utils/validate.js +3 -2
  460. package/esm/popover/arrow/PopoverArrow.js +2 -2
  461. package/esm/popover/arrow/PopoverArrowDataAttributes.js +2 -2
  462. package/esm/popover/backdrop/PopoverBackdrop.js +2 -2
  463. package/esm/popover/popup/PopoverPopup.d.ts +3 -2
  464. package/esm/popover/popup/PopoverPopup.js +2 -2
  465. package/esm/popover/portal/PopoverPortal.d.ts +1 -1
  466. package/esm/popover/portal/PopoverPortal.js +1 -2
  467. package/esm/popover/portal/PopoverPortalContext.js +2 -0
  468. package/esm/popover/positioner/PopoverPositioner.js +3 -3
  469. package/esm/popover/positioner/PopoverPositionerDataAttributes.js +2 -2
  470. package/esm/popover/root/PopoverRoot.d.ts +9 -9
  471. package/esm/popover/root/PopoverRoot.js +18 -5
  472. package/esm/popover/store/PopoverStore.d.ts +255 -15
  473. package/esm/popover/trigger/PopoverTrigger.d.ts +7 -7
  474. package/esm/popover/trigger/PopoverTrigger.js +2 -2
  475. package/esm/popover/viewport/PopoverViewport.d.ts +9 -1
  476. package/esm/popover/viewport/PopoverViewport.js +19 -196
  477. package/esm/popover/viewport/PopoverViewportDataAttributes.d.ts +5 -0
  478. package/esm/popover/viewport/PopoverViewportDataAttributes.js +5 -0
  479. package/esm/preview-card/arrow/PreviewCardArrow.js +2 -2
  480. package/esm/preview-card/arrow/PreviewCardArrowDataAttributes.js +2 -2
  481. package/esm/preview-card/backdrop/PreviewCardBackdrop.js +2 -2
  482. package/esm/preview-card/popup/PreviewCardPopup.js +2 -2
  483. package/esm/preview-card/popup/PreviewCardPopupDataAttributes.js +2 -2
  484. package/esm/preview-card/portal/PreviewCardPortal.d.ts +1 -1
  485. package/esm/preview-card/portal/PreviewCardPortalContext.js +2 -0
  486. package/esm/preview-card/positioner/PreviewCardPositioner.js +2 -2
  487. package/esm/preview-card/positioner/PreviewCardPositionerContext.d.ts +1 -1
  488. package/esm/preview-card/positioner/PreviewCardPositionerDataAttributes.js +2 -2
  489. package/esm/preview-card/root/PreviewCardRoot.d.ts +8 -8
  490. package/esm/preview-card/root/PreviewCardRoot.js +17 -4
  491. package/esm/preview-card/store/PreviewCardStore.d.ts +255 -15
  492. package/esm/preview-card/trigger/PreviewCardTrigger.d.ts +4 -4
  493. package/esm/preview-card/trigger/PreviewCardTrigger.js +2 -2
  494. package/esm/preview-card/viewport/PreviewCardViewport.d.ts +6 -1
  495. package/esm/preview-card/viewport/PreviewCardViewport.js +14 -230
  496. package/esm/progress/root/ProgressRoot.d.ts +6 -6
  497. package/esm/progress/root/ProgressRoot.js +2 -13
  498. package/esm/progress/value/ProgressValue.d.ts +1 -1
  499. package/esm/radio/indicator/RadioIndicator.d.ts +1 -1
  500. package/esm/radio/indicator/RadioIndicator.js +4 -4
  501. package/esm/radio/root/RadioRoot.d.ts +37 -17
  502. package/esm/radio/root/RadioRoot.js +45 -11
  503. package/esm/radio-group/RadioGroup.d.ts +18 -12
  504. package/esm/radio-group/RadioGroup.js +69 -62
  505. package/esm/radio-group/RadioGroupContext.d.ts +9 -8
  506. package/esm/radio-group/RadioGroupContext.js +1 -13
  507. package/esm/scroll-area/root/ScrollAreaRoot.d.ts +4 -2
  508. package/esm/scroll-area/root/ScrollAreaRoot.js +2 -1
  509. package/esm/scroll-area/root/ScrollAreaRootContext.js +2 -0
  510. package/esm/scroll-area/root/ScrollAreaRootDataAttributes.d.ts +4 -0
  511. package/esm/scroll-area/root/ScrollAreaRootDataAttributes.js +4 -0
  512. package/esm/scroll-area/scrollbar/ScrollAreaScrollbar.d.ts +2 -2
  513. package/esm/scroll-area/scrollbar/ScrollAreaScrollbar.js +2 -2
  514. package/esm/scroll-area/scrollbar/ScrollAreaScrollbarContext.js +2 -0
  515. package/esm/scroll-area/scrollbar/ScrollAreaScrollbarDataAttributes.d.ts +1 -1
  516. package/esm/scroll-area/scrollbar/ScrollAreaScrollbarDataAttributes.js +1 -1
  517. package/esm/scroll-area/thumb/ScrollAreaThumb.d.ts +1 -1
  518. package/esm/scroll-area/thumb/ScrollAreaThumb.js +2 -2
  519. package/esm/scroll-area/utils/scrollEdges.d.ts +2 -0
  520. package/esm/scroll-area/utils/scrollEdges.js +22 -0
  521. package/esm/scroll-area/viewport/ScrollAreaViewport.js +18 -15
  522. package/esm/scroll-area/viewport/ScrollAreaViewportContext.js +2 -0
  523. package/esm/scroll-area/viewport/ScrollAreaViewportDataAttributes.d.ts +4 -0
  524. package/esm/scroll-area/viewport/ScrollAreaViewportDataAttributes.js +4 -0
  525. package/esm/select/arrow/SelectArrow.js +2 -2
  526. package/esm/select/arrow/SelectArrowDataAttributes.js +2 -2
  527. package/esm/select/backdrop/SelectBackdrop.js +2 -2
  528. package/esm/select/group/SelectGroupContext.js +2 -0
  529. package/esm/select/icon/SelectIcon.js +2 -2
  530. package/esm/select/item/SelectItem.d.ts +2 -2
  531. package/esm/select/item/SelectItem.js +13 -13
  532. package/esm/select/item/SelectItemContext.js +2 -0
  533. package/esm/select/item-indicator/SelectItemIndicator.d.ts +1 -1
  534. package/esm/select/item-indicator/SelectItemIndicator.js +2 -2
  535. package/esm/select/popup/SelectPopup.d.ts +11 -0
  536. package/esm/select/popup/SelectPopup.js +64 -35
  537. package/esm/select/popup/SelectPopupDataAttributes.js +2 -2
  538. package/esm/select/portal/SelectPortalContext.js +2 -0
  539. package/esm/select/positioner/SelectPositioner.d.ts +1 -1
  540. package/esm/select/positioner/SelectPositioner.js +14 -11
  541. package/esm/select/positioner/SelectPositionerContext.js +2 -0
  542. package/esm/select/positioner/SelectPositionerDataAttributes.js +2 -2
  543. package/esm/select/root/SelectRoot.d.ts +27 -22
  544. package/esm/select/root/SelectRoot.js +2 -0
  545. package/esm/select/root/SelectRootContext.d.ts +14 -14
  546. package/esm/select/root/SelectRootContext.js +2 -0
  547. package/esm/select/scroll-arrow/SelectScrollArrow.d.ts +1 -1
  548. package/esm/select/scroll-arrow/SelectScrollArrow.js +2 -2
  549. package/esm/select/scroll-down-arrow/SelectScrollDownArrow.d.ts +1 -1
  550. package/esm/select/scroll-down-arrow/SelectScrollDownArrowDataAttributes.js +1 -1
  551. package/esm/select/scroll-up-arrow/SelectScrollUpArrow.d.ts +1 -1
  552. package/esm/select/scroll-up-arrow/SelectScrollUpArrowDataAttributes.js +1 -1
  553. package/esm/select/store.d.ts +3 -3
  554. package/esm/select/store.js +3 -3
  555. package/esm/select/trigger/SelectTrigger.d.ts +1 -1
  556. package/esm/select/trigger/SelectTrigger.js +2 -2
  557. package/esm/select/value/SelectValue.d.ts +4 -0
  558. package/esm/select/value/SelectValue.js +2 -2
  559. package/esm/separator/Separator.d.ts +1 -1
  560. package/esm/separator/Separator.js +2 -2
  561. package/esm/slider/root/SliderRoot.d.ts +17 -17
  562. package/esm/slider/root/SliderRoot.js +3 -2
  563. package/esm/slider/root/SliderRootContext.d.ts +2 -2
  564. package/esm/slider/root/stateAttributesMapping.js +3 -1
  565. package/esm/slider/thumb/SliderThumb.d.ts +7 -7
  566. package/esm/slider/utils/getPushedThumbValues.d.ts +1 -1
  567. package/esm/slider/utils/resolveThumbCollision.d.ts +2 -2
  568. package/esm/slider/value/SliderValue.d.ts +1 -1
  569. package/esm/switch/root/SwitchRoot.d.ts +11 -11
  570. package/esm/switch/root/SwitchRoot.js +7 -1
  571. package/esm/switch/root/SwitchRootContext.js +2 -0
  572. package/esm/tabs/indicator/TabsIndicator.d.ts +1 -1
  573. package/esm/tabs/indicator/TabsIndicator.js +2 -2
  574. package/esm/tabs/list/TabsList.d.ts +2 -2
  575. package/esm/tabs/list/TabsList.js +2 -2
  576. package/esm/tabs/panel/TabsPanel.d.ts +4 -2
  577. package/esm/tabs/panel/TabsPanel.js +35 -9
  578. package/esm/tabs/root/TabsRoot.d.ts +4 -4
  579. package/esm/tabs/root/TabsRootContext.d.ts +1 -1
  580. package/esm/tabs/tab/TabsTab.d.ts +1 -1
  581. package/esm/tabs/tab/TabsTab.js +2 -2
  582. package/esm/toast/action/ToastAction.js +2 -2
  583. package/esm/toast/arrow/ToastArrow.js +2 -2
  584. package/esm/toast/arrow/ToastArrowDataAttributes.js +4 -3
  585. package/esm/toast/close/ToastClose.js +6 -8
  586. package/esm/toast/content/ToastContent.js +2 -2
  587. package/esm/toast/createToastManager.d.ts +5 -5
  588. package/esm/toast/createToastManager.js +3 -6
  589. package/esm/toast/description/ToastDescription.js +4 -6
  590. package/esm/toast/positioner/ToastPositioner.d.ts +2 -2
  591. package/esm/toast/positioner/ToastPositioner.js +6 -7
  592. package/esm/toast/positioner/ToastPositionerDataAttributes.js +2 -2
  593. package/esm/toast/provider/ToastProvider.d.ts +3 -3
  594. package/esm/toast/provider/ToastProvider.js +26 -285
  595. package/esm/toast/provider/ToastProviderContext.d.ts +4 -25
  596. package/esm/toast/provider/ToastProviderContext.js +3 -1
  597. package/esm/toast/root/ToastRoot.d.ts +1 -1
  598. package/esm/toast/root/ToastRoot.js +19 -27
  599. package/esm/toast/root/ToastRootContext.js +2 -0
  600. package/esm/toast/store.d.ts +51 -0
  601. package/esm/toast/store.js +355 -0
  602. package/esm/toast/title/ToastTitle.js +4 -6
  603. package/esm/toast/useToastManager.d.ts +20 -21
  604. package/esm/toast/useToastManager.js +8 -14
  605. package/esm/toast/viewport/ToastViewport.js +66 -92
  606. package/esm/toggle/Toggle.d.ts +10 -8
  607. package/esm/toggle/Toggle.js +13 -3
  608. package/esm/toggle-group/ToggleGroup.d.ts +22 -10
  609. package/esm/toggle-group/ToggleGroup.js +8 -5
  610. package/esm/toggle-group/ToggleGroupContext.d.ts +10 -5
  611. package/esm/toolbar/button/ToolbarButton.d.ts +2 -2
  612. package/esm/toolbar/button/ToolbarButton.js +2 -2
  613. package/esm/toolbar/group/ToolbarGroup.d.ts +1 -1
  614. package/esm/toolbar/group/ToolbarGroup.js +2 -2
  615. package/esm/toolbar/group/ToolbarGroupContext.js +2 -0
  616. package/esm/toolbar/input/ToolbarInput.d.ts +3 -3
  617. package/esm/toolbar/input/ToolbarInput.js +2 -2
  618. package/esm/toolbar/link/ToolbarLink.js +2 -2
  619. package/esm/toolbar/root/ToolbarRoot.d.ts +3 -3
  620. package/esm/toolbar/root/ToolbarRoot.js +2 -2
  621. package/esm/tooltip/arrow/TooltipArrow.d.ts +1 -0
  622. package/esm/tooltip/arrow/TooltipArrow.js +2 -2
  623. package/esm/tooltip/arrow/TooltipArrowDataAttributes.js +2 -2
  624. package/esm/tooltip/popup/TooltipPopup.js +2 -2
  625. package/esm/tooltip/popup/TooltipPopupDataAttributes.js +2 -2
  626. package/esm/tooltip/portal/TooltipPortal.d.ts +1 -1
  627. package/esm/tooltip/portal/TooltipPortalContext.js +2 -0
  628. package/esm/tooltip/positioner/TooltipPositioner.d.ts +1 -1
  629. package/esm/tooltip/positioner/TooltipPositionerContext.d.ts +1 -1
  630. package/esm/tooltip/positioner/TooltipPositionerDataAttributes.js +2 -2
  631. package/esm/tooltip/provider/TooltipProvider.d.ts +3 -3
  632. package/esm/tooltip/provider/TooltipProviderContext.js +2 -0
  633. package/esm/tooltip/root/TooltipRoot.d.ts +12 -12
  634. package/esm/tooltip/root/TooltipRoot.js +23 -11
  635. package/esm/tooltip/store/TooltipStore.d.ts +256 -16
  636. package/esm/tooltip/trigger/TooltipTrigger.d.ts +11 -4
  637. package/esm/tooltip/trigger/TooltipTrigger.js +12 -6
  638. package/esm/tooltip/trigger/TooltipTriggerDataAttributes.d.ts +4 -0
  639. package/esm/tooltip/trigger/TooltipTriggerDataAttributes.js +4 -0
  640. package/esm/tooltip/viewport/TooltipViewport.d.ts +9 -1
  641. package/esm/tooltip/viewport/TooltipViewport.js +14 -195
  642. package/esm/unstable-use-media-query/index.d.ts +5 -5
  643. package/esm/use-button/useButton.d.ts +4 -4
  644. package/esm/use-button/useButton.js +7 -2
  645. package/esm/use-render/useRender.d.ts +9 -9
  646. package/esm/utils/InternalBackdrop.d.ts +1 -1
  647. package/esm/utils/createBaseUIEventDetails.d.ts +3 -0
  648. package/esm/utils/formatNumber.d.ts +2 -1
  649. package/esm/utils/formatNumber.js +11 -0
  650. package/esm/utils/getDisabledMountTransitionStyles.d.ts +1 -1
  651. package/esm/utils/getPseudoElementBounds.js +1 -1
  652. package/esm/utils/itemEquality.d.ts +5 -5
  653. package/esm/utils/itemEquality.js +17 -17
  654. package/esm/utils/popupStateMapping.d.ts +10 -0
  655. package/esm/utils/popupStateMapping.js +10 -0
  656. package/esm/utils/popups/popupStoreUtils.js +2 -0
  657. package/esm/utils/popups/popupTriggerMap.d.ts +14 -1
  658. package/esm/utils/popups/popupTriggerMap.js +27 -9
  659. package/esm/utils/popups/store.d.ts +28 -18
  660. package/esm/utils/popups/store.js +8 -5
  661. package/esm/utils/reason-parts.d.ts +3 -0
  662. package/esm/utils/reason-parts.js +3 -0
  663. package/esm/utils/scrollable.d.ts +4 -0
  664. package/esm/utils/scrollable.js +32 -0
  665. package/esm/utils/types.d.ts +6 -6
  666. package/esm/utils/useAnchorPositioning.d.ts +26 -26
  667. package/esm/utils/useAnchorPositioning.js +19 -16
  668. package/esm/utils/useFocusableWhenDisabled.d.ts +4 -4
  669. package/esm/utils/useMixedToggleClickHandler.d.ts +1 -1
  670. package/esm/utils/useMixedToggleClickHandler.js +2 -0
  671. package/esm/utils/useOpenChangeComplete.d.ts +2 -2
  672. package/esm/utils/usePopupAutoResize.d.ts +3 -3
  673. package/esm/utils/usePopupAutoResize.js +3 -1
  674. package/esm/utils/usePopupViewport.d.ts +58 -0
  675. package/esm/utils/usePopupViewport.js +247 -0
  676. package/esm/utils/useRenderElement.d.ts +9 -9
  677. package/esm/utils/useRenderElement.js +28 -1
  678. package/esm/utils/useSwipeDismiss.d.ts +108 -0
  679. package/esm/utils/useSwipeDismiss.js +944 -0
  680. package/esm/utils/useValueChanged.js +2 -0
  681. package/field/control/FieldControl.d.ts +3 -3
  682. package/field/control/FieldControl.js +21 -20
  683. package/field/error/FieldError.d.ts +5 -2
  684. package/field/error/FieldError.js +51 -7
  685. package/field/item/FieldItem.d.ts +1 -1
  686. package/field/item/FieldItemContext.js +1 -0
  687. package/field/label/FieldLabel.d.ts +1 -1
  688. package/field/label/FieldLabel.js +7 -2
  689. package/field/root/FieldRoot.d.ts +9 -9
  690. package/field/root/FieldRootContext.d.ts +1 -1
  691. package/field/useField.d.ts +1 -1
  692. package/field/useField.js +1 -0
  693. package/field/validity/FieldValidity.d.ts +2 -0
  694. package/field/validity/FieldValidity.js +9 -3
  695. package/fieldset/legend/FieldsetLegend.js +2 -2
  696. package/fieldset/root/FieldsetRoot.d.ts +1 -1
  697. package/fieldset/root/FieldsetRoot.js +3 -3
  698. package/floating-ui-react/components/FloatingDelayGroup.d.ts +2 -7
  699. package/floating-ui-react/components/FloatingDelayGroup.js +2 -9
  700. package/floating-ui-react/components/FloatingFocusManager.d.ts +11 -21
  701. package/floating-ui-react/components/FloatingFocusManager.js +61 -74
  702. package/floating-ui-react/components/FloatingPortal.d.ts +8 -9
  703. package/floating-ui-react/components/FloatingPortal.js +1 -3
  704. package/floating-ui-react/components/FloatingTree.d.ts +1 -1
  705. package/floating-ui-react/hooks/useClick.d.ts +12 -6
  706. package/floating-ui-react/hooks/useClick.js +6 -5
  707. package/floating-ui-react/hooks/useClientPoint.d.ts +2 -12
  708. package/floating-ui-react/hooks/useClientPoint.js +4 -16
  709. package/floating-ui-react/hooks/useDismiss.d.ts +15 -15
  710. package/floating-ui-react/hooks/useDismiss.js +4 -2
  711. package/floating-ui-react/hooks/useFloating.js +1 -0
  712. package/floating-ui-react/hooks/useFloatingRootContext.d.ts +4 -10
  713. package/floating-ui-react/hooks/useFloatingRootContext.js +4 -3
  714. package/floating-ui-react/hooks/useFocus.d.ts +2 -8
  715. package/floating-ui-react/hooks/useFocus.js +9 -11
  716. package/floating-ui-react/hooks/useHover.d.ts +7 -30
  717. package/floating-ui-react/hooks/useHover.js +18 -36
  718. package/floating-ui-react/hooks/useHoverFloatingInteraction.d.ts +2 -7
  719. package/floating-ui-react/hooks/useHoverFloatingInteraction.js +33 -39
  720. package/floating-ui-react/hooks/useHoverInteractionSharedState.d.ts +17 -14
  721. package/floating-ui-react/hooks/useHoverInteractionSharedState.js +36 -30
  722. package/floating-ui-react/hooks/useHoverReferenceInteraction.d.ts +7 -3
  723. package/floating-ui-react/hooks/useHoverReferenceInteraction.js +55 -59
  724. package/floating-ui-react/hooks/useInteractions.d.ts +2 -2
  725. package/floating-ui-react/hooks/useListNavigation.d.ts +19 -35
  726. package/floating-ui-react/hooks/useListNavigation.js +11 -11
  727. package/floating-ui-react/hooks/useRole.d.ts +1 -7
  728. package/floating-ui-react/hooks/useRole.js +2 -3
  729. package/floating-ui-react/hooks/useSyncedFloatingRootContext.d.ts +2 -2
  730. package/floating-ui-react/hooks/useSyncedFloatingRootContext.js +1 -0
  731. package/floating-ui-react/hooks/useTypeahead.d.ts +6 -16
  732. package/floating-ui-react/hooks/useTypeahead.js +46 -15
  733. package/floating-ui-react/middleware/arrow.d.ts +1 -1
  734. package/floating-ui-react/safePolygon.d.ts +3 -3
  735. package/floating-ui-react/types.d.ts +14 -14
  736. package/floating-ui-react/utils/composite.d.ts +5 -5
  737. package/floating-ui-react/utils/composite.js +1 -3
  738. package/floating-ui-react/utils/element.d.ts +2 -1
  739. package/floating-ui-react/utils/element.js +16 -4
  740. package/floating-ui-react/utils/enqueueFocus.d.ts +3 -3
  741. package/floating-ui-react/utils/event.js +2 -4
  742. package/floating-ui-react/utils/markOthers.js +2 -2
  743. package/floating-ui-react/utils/tabbable.js +5 -4
  744. package/form/Form.d.ts +5 -5
  745. package/index.d.ts +1 -0
  746. package/index.js +12 -1
  747. package/input/Input.d.ts +3 -3
  748. package/labelable-provider/LabelableContext.d.ts +1 -1
  749. package/labelable-provider/LabelableContext.js +1 -1
  750. package/labelable-provider/LabelableProvider.js +33 -3
  751. package/labelable-provider/useLabelableId.d.ts +3 -2
  752. package/labelable-provider/useLabelableId.js +39 -12
  753. package/menu/arrow/MenuArrow.js +2 -2
  754. package/menu/arrow/MenuArrowDataAttributes.js +2 -2
  755. package/menu/backdrop/MenuBackdrop.js +2 -2
  756. package/menu/checkbox-item/MenuCheckboxItem.d.ts +8 -8
  757. package/menu/checkbox-item/MenuCheckboxItemContext.js +1 -0
  758. package/menu/checkbox-item-indicator/MenuCheckboxItemIndicator.d.ts +2 -2
  759. package/menu/checkbox-item-indicator/MenuCheckboxItemIndicator.js +3 -3
  760. package/menu/group/MenuGroupContext.js +1 -0
  761. package/menu/index.d.ts +2 -1
  762. package/menu/index.parts.d.ts +1 -0
  763. package/menu/index.parts.js +7 -0
  764. package/menu/item/MenuItem.d.ts +5 -5
  765. package/menu/item/MenuItem.js +2 -2
  766. package/menu/item/useMenuItem.js +12 -48
  767. package/menu/item/useMenuItemCommonProps.d.ts +43 -0
  768. package/menu/item/useMenuItemCommonProps.js +72 -0
  769. package/menu/link-item/MenuLinkItem.d.ts +34 -0
  770. package/menu/link-item/MenuLinkItem.js +60 -0
  771. package/menu/link-item/MenuLinkItemDataAttributes.d.ts +6 -0
  772. package/menu/link-item/MenuLinkItemDataAttributes.js +13 -0
  773. package/menu/popup/MenuPopup.d.ts +3 -2
  774. package/menu/popup/MenuPopup.js +2 -2
  775. package/menu/popup/MenuPopupDataAttributes.js +2 -2
  776. package/menu/portal/MenuPortal.d.ts +1 -1
  777. package/menu/portal/MenuPortalContext.js +1 -0
  778. package/menu/positioner/MenuPositioner.js +6 -12
  779. package/menu/positioner/MenuPositionerDataAttributes.js +2 -2
  780. package/menu/radio-group/MenuRadioGroup.d.ts +2 -2
  781. package/menu/radio-group/MenuRadioGroup.js +2 -2
  782. package/menu/radio-group/MenuRadioGroupContext.js +1 -0
  783. package/menu/radio-item/MenuRadioItem.d.ts +5 -5
  784. package/menu/radio-item/MenuRadioItemContext.js +1 -0
  785. package/menu/radio-item-indicator/MenuRadioItemIndicator.d.ts +2 -2
  786. package/menu/radio-item-indicator/MenuRadioItemIndicator.js +3 -3
  787. package/menu/root/MenuRoot.d.ts +15 -15
  788. package/menu/root/MenuRoot.js +39 -37
  789. package/menu/store/MenuStore.d.ts +255 -15
  790. package/menu/store/MenuStore.js +2 -11
  791. package/menu/submenu-root/MenuSubmenuRoot.d.ts +2 -2
  792. package/menu/submenu-root/MenuSubmenuRootContext.js +1 -0
  793. package/menu/submenu-trigger/MenuSubmenuTrigger.d.ts +22 -22
  794. package/menu/submenu-trigger/MenuSubmenuTrigger.js +10 -8
  795. package/menu/trigger/MenuTrigger.d.ts +10 -6
  796. package/menu/trigger/MenuTrigger.js +5 -4
  797. package/menubar/Menubar.d.ts +4 -4
  798. package/menubar/Menubar.js +2 -2
  799. package/meter/root/MeterRoot.d.ts +6 -6
  800. package/meter/root/MeterRoot.js +1 -10
  801. package/meter/value/MeterValue.d.ts +1 -1
  802. package/navigation-menu/arrow/NavigationMenuArrow.js +2 -2
  803. package/navigation-menu/arrow/NavigationMenuArrowDataAttributes.js +2 -2
  804. package/navigation-menu/backdrop/NavigationMenuBackdrop.js +2 -2
  805. package/navigation-menu/content/NavigationMenuContent.d.ts +8 -1
  806. package/navigation-menu/content/NavigationMenuContent.js +26 -5
  807. package/navigation-menu/icon/NavigationMenuIcon.d.ts +1 -1
  808. package/navigation-menu/icon/NavigationMenuIcon.js +2 -2
  809. package/navigation-menu/item/NavigationMenuItem.d.ts +1 -1
  810. package/navigation-menu/item/NavigationMenuItemContext.js +1 -0
  811. package/navigation-menu/link/NavigationMenuLink.d.ts +2 -2
  812. package/navigation-menu/link/NavigationMenuLink.js +2 -2
  813. package/navigation-menu/list/NavigationMenuDismissContext.js +1 -0
  814. package/navigation-menu/list/NavigationMenuList.d.ts +1 -1
  815. package/navigation-menu/list/NavigationMenuList.js +2 -2
  816. package/navigation-menu/popup/NavigationMenuPopup.d.ts +13 -0
  817. package/navigation-menu/popup/NavigationMenuPopup.js +2 -2
  818. package/navigation-menu/popup/NavigationMenuPopupDataAttributes.js +2 -2
  819. package/navigation-menu/portal/NavigationMenuPortal.d.ts +2 -2
  820. package/navigation-menu/portal/NavigationMenuPortalContext.js +1 -0
  821. package/navigation-menu/positioner/NavigationMenuPositioner.js +2 -2
  822. package/navigation-menu/positioner/NavigationPositionerDataAttributes.js +2 -2
  823. package/navigation-menu/root/NavigationMenuRoot.d.ts +6 -6
  824. package/navigation-menu/root/NavigationMenuRoot.js +2 -2
  825. package/navigation-menu/root/NavigationMenuRootContext.js +1 -0
  826. package/navigation-menu/trigger/NavigationMenuTrigger.js +7 -124
  827. package/navigation-menu/utils/isOutsideMenuEvent.d.ts +1 -1
  828. package/navigation-menu/viewport/NavigationMenuViewport.js +21 -1
  829. package/number-field/input/NumberFieldInput.js +3 -11
  830. package/number-field/root/NumberFieldRoot.d.ts +27 -20
  831. package/number-field/root/NumberFieldRoot.js +22 -7
  832. package/number-field/root/NumberFieldRootContext.d.ts +2 -2
  833. package/number-field/root/useNumberFieldButton.d.ts +3 -3
  834. package/number-field/root/useNumberFieldButton.js +12 -7
  835. package/number-field/scrub-area/NumberFieldScrubArea.d.ts +2 -2
  836. package/number-field/scrub-area/NumberFieldScrubArea.js +16 -0
  837. package/number-field/scrub-area/NumberFieldScrubAreaContext.js +1 -0
  838. package/number-field/utils/stateAttributesMapping.js +3 -1
  839. package/number-field/utils/subscribeToVisualViewportResize.d.ts +1 -1
  840. package/number-field/utils/types.d.ts +5 -5
  841. package/number-field/utils/validate.d.ts +3 -1
  842. package/number-field/utils/validate.js +3 -2
  843. package/package.json +13 -4
  844. package/popover/arrow/PopoverArrow.js +2 -2
  845. package/popover/arrow/PopoverArrowDataAttributes.js +2 -2
  846. package/popover/backdrop/PopoverBackdrop.js +2 -2
  847. package/popover/popup/PopoverPopup.d.ts +3 -2
  848. package/popover/popup/PopoverPopup.js +2 -2
  849. package/popover/portal/PopoverPortal.d.ts +1 -1
  850. package/popover/portal/PopoverPortal.js +1 -2
  851. package/popover/portal/PopoverPortalContext.js +1 -0
  852. package/popover/positioner/PopoverPositioner.js +3 -3
  853. package/popover/positioner/PopoverPositionerDataAttributes.js +2 -2
  854. package/popover/root/PopoverRoot.d.ts +9 -9
  855. package/popover/root/PopoverRoot.js +18 -5
  856. package/popover/store/PopoverStore.d.ts +255 -15
  857. package/popover/trigger/PopoverTrigger.d.ts +7 -7
  858. package/popover/trigger/PopoverTrigger.js +3 -3
  859. package/popover/viewport/PopoverViewport.d.ts +9 -1
  860. package/popover/viewport/PopoverViewport.js +19 -196
  861. package/popover/viewport/PopoverViewportDataAttributes.d.ts +5 -0
  862. package/popover/viewport/PopoverViewportDataAttributes.js +5 -0
  863. package/preview-card/arrow/PreviewCardArrow.js +2 -2
  864. package/preview-card/arrow/PreviewCardArrowDataAttributes.js +2 -2
  865. package/preview-card/backdrop/PreviewCardBackdrop.js +2 -2
  866. package/preview-card/popup/PreviewCardPopup.js +2 -2
  867. package/preview-card/popup/PreviewCardPopupDataAttributes.js +2 -2
  868. package/preview-card/portal/PreviewCardPortal.d.ts +1 -1
  869. package/preview-card/portal/PreviewCardPortalContext.js +1 -0
  870. package/preview-card/positioner/PreviewCardPositioner.js +2 -2
  871. package/preview-card/positioner/PreviewCardPositionerContext.d.ts +1 -1
  872. package/preview-card/positioner/PreviewCardPositionerDataAttributes.js +2 -2
  873. package/preview-card/root/PreviewCardRoot.d.ts +8 -8
  874. package/preview-card/root/PreviewCardRoot.js +17 -4
  875. package/preview-card/store/PreviewCardStore.d.ts +255 -15
  876. package/preview-card/trigger/PreviewCardTrigger.d.ts +4 -4
  877. package/preview-card/trigger/PreviewCardTrigger.js +3 -3
  878. package/preview-card/viewport/PreviewCardViewport.d.ts +6 -1
  879. package/preview-card/viewport/PreviewCardViewport.js +14 -230
  880. package/progress/root/ProgressRoot.d.ts +6 -6
  881. package/progress/root/ProgressRoot.js +1 -12
  882. package/progress/value/ProgressValue.d.ts +1 -1
  883. package/radio/indicator/RadioIndicator.d.ts +1 -1
  884. package/radio/indicator/RadioIndicator.js +4 -4
  885. package/radio/root/RadioRoot.d.ts +37 -17
  886. package/radio/root/RadioRoot.js +45 -11
  887. package/radio-group/RadioGroup.d.ts +18 -12
  888. package/radio-group/RadioGroup.js +68 -61
  889. package/radio-group/RadioGroupContext.d.ts +9 -8
  890. package/radio-group/RadioGroupContext.js +1 -13
  891. package/scroll-area/root/ScrollAreaRoot.d.ts +4 -2
  892. package/scroll-area/root/ScrollAreaRoot.js +2 -1
  893. package/scroll-area/root/ScrollAreaRootContext.js +1 -0
  894. package/scroll-area/root/ScrollAreaRootDataAttributes.d.ts +4 -0
  895. package/scroll-area/root/ScrollAreaRootDataAttributes.js +4 -0
  896. package/scroll-area/scrollbar/ScrollAreaScrollbar.d.ts +2 -2
  897. package/scroll-area/scrollbar/ScrollAreaScrollbar.js +2 -2
  898. package/scroll-area/scrollbar/ScrollAreaScrollbarContext.js +1 -0
  899. package/scroll-area/scrollbar/ScrollAreaScrollbarDataAttributes.d.ts +1 -1
  900. package/scroll-area/scrollbar/ScrollAreaScrollbarDataAttributes.js +1 -1
  901. package/scroll-area/thumb/ScrollAreaThumb.d.ts +1 -1
  902. package/scroll-area/thumb/ScrollAreaThumb.js +2 -2
  903. package/scroll-area/utils/scrollEdges.d.ts +2 -0
  904. package/scroll-area/utils/scrollEdges.js +29 -0
  905. package/scroll-area/viewport/ScrollAreaViewport.js +18 -15
  906. package/scroll-area/viewport/ScrollAreaViewportContext.js +1 -0
  907. package/scroll-area/viewport/ScrollAreaViewportDataAttributes.d.ts +4 -0
  908. package/scroll-area/viewport/ScrollAreaViewportDataAttributes.js +4 -0
  909. package/select/arrow/SelectArrow.js +2 -2
  910. package/select/arrow/SelectArrowDataAttributes.js +2 -2
  911. package/select/backdrop/SelectBackdrop.js +2 -2
  912. package/select/group/SelectGroupContext.js +1 -0
  913. package/select/icon/SelectIcon.js +2 -2
  914. package/select/item/SelectItem.d.ts +2 -2
  915. package/select/item/SelectItem.js +13 -13
  916. package/select/item/SelectItemContext.js +1 -0
  917. package/select/item-indicator/SelectItemIndicator.d.ts +1 -1
  918. package/select/item-indicator/SelectItemIndicator.js +2 -2
  919. package/select/popup/SelectPopup.d.ts +11 -0
  920. package/select/popup/SelectPopup.js +64 -35
  921. package/select/popup/SelectPopupDataAttributes.js +2 -2
  922. package/select/portal/SelectPortalContext.js +1 -0
  923. package/select/positioner/SelectPositioner.d.ts +1 -1
  924. package/select/positioner/SelectPositioner.js +13 -10
  925. package/select/positioner/SelectPositionerContext.js +1 -0
  926. package/select/positioner/SelectPositionerDataAttributes.js +2 -2
  927. package/select/root/SelectRoot.d.ts +27 -22
  928. package/select/root/SelectRoot.js +2 -0
  929. package/select/root/SelectRootContext.d.ts +14 -14
  930. package/select/root/SelectRootContext.js +1 -0
  931. package/select/scroll-arrow/SelectScrollArrow.d.ts +1 -1
  932. package/select/scroll-arrow/SelectScrollArrow.js +2 -2
  933. package/select/scroll-down-arrow/SelectScrollDownArrow.d.ts +1 -1
  934. package/select/scroll-down-arrow/SelectScrollDownArrowDataAttributes.js +1 -1
  935. package/select/scroll-up-arrow/SelectScrollUpArrow.d.ts +1 -1
  936. package/select/scroll-up-arrow/SelectScrollUpArrowDataAttributes.js +1 -1
  937. package/select/store.d.ts +3 -3
  938. package/select/store.js +3 -3
  939. package/select/trigger/SelectTrigger.d.ts +1 -1
  940. package/select/trigger/SelectTrigger.js +2 -2
  941. package/select/value/SelectValue.d.ts +4 -0
  942. package/select/value/SelectValue.js +2 -2
  943. package/separator/Separator.d.ts +1 -1
  944. package/separator/Separator.js +2 -2
  945. package/slider/root/SliderRoot.d.ts +17 -17
  946. package/slider/root/SliderRoot.js +3 -2
  947. package/slider/root/SliderRootContext.d.ts +2 -2
  948. package/slider/root/stateAttributesMapping.js +3 -1
  949. package/slider/thumb/SliderThumb.d.ts +7 -7
  950. package/slider/utils/getPushedThumbValues.d.ts +1 -1
  951. package/slider/utils/resolveThumbCollision.d.ts +2 -2
  952. package/slider/value/SliderValue.d.ts +1 -1
  953. package/switch/root/SwitchRoot.d.ts +11 -11
  954. package/switch/root/SwitchRoot.js +7 -1
  955. package/switch/root/SwitchRootContext.js +1 -0
  956. package/tabs/indicator/TabsIndicator.d.ts +1 -1
  957. package/tabs/indicator/TabsIndicator.js +2 -2
  958. package/tabs/list/TabsList.d.ts +2 -2
  959. package/tabs/list/TabsList.js +2 -2
  960. package/tabs/panel/TabsPanel.d.ts +4 -2
  961. package/tabs/panel/TabsPanel.js +37 -10
  962. package/tabs/root/TabsRoot.d.ts +4 -4
  963. package/tabs/root/TabsRootContext.d.ts +1 -1
  964. package/tabs/tab/TabsTab.d.ts +1 -1
  965. package/tabs/tab/TabsTab.js +2 -2
  966. package/toast/action/ToastAction.js +2 -2
  967. package/toast/arrow/ToastArrow.js +2 -2
  968. package/toast/arrow/ToastArrowDataAttributes.js +4 -3
  969. package/toast/close/ToastClose.js +5 -7
  970. package/toast/content/ToastContent.js +2 -2
  971. package/toast/createToastManager.d.ts +5 -5
  972. package/toast/createToastManager.js +3 -6
  973. package/toast/description/ToastDescription.js +4 -6
  974. package/toast/positioner/ToastPositioner.d.ts +2 -2
  975. package/toast/positioner/ToastPositioner.js +5 -6
  976. package/toast/positioner/ToastPositionerDataAttributes.js +2 -2
  977. package/toast/provider/ToastProvider.d.ts +3 -3
  978. package/toast/provider/ToastProvider.js +24 -284
  979. package/toast/provider/ToastProviderContext.d.ts +4 -25
  980. package/toast/provider/ToastProviderContext.js +3 -2
  981. package/toast/root/ToastRoot.d.ts +1 -1
  982. package/toast/root/ToastRoot.js +18 -26
  983. package/toast/root/ToastRootContext.js +1 -0
  984. package/toast/store.d.ts +51 -0
  985. package/toast/store.js +362 -0
  986. package/toast/title/ToastTitle.js +4 -6
  987. package/toast/useToastManager.d.ts +20 -21
  988. package/toast/useToastManager.js +8 -14
  989. package/toast/viewport/ToastViewport.js +65 -91
  990. package/toggle/Toggle.d.ts +10 -8
  991. package/toggle/Toggle.js +13 -3
  992. package/toggle-group/ToggleGroup.d.ts +22 -10
  993. package/toggle-group/ToggleGroup.js +8 -5
  994. package/toggle-group/ToggleGroupContext.d.ts +10 -5
  995. package/toolbar/button/ToolbarButton.d.ts +2 -2
  996. package/toolbar/button/ToolbarButton.js +2 -2
  997. package/toolbar/group/ToolbarGroup.d.ts +1 -1
  998. package/toolbar/group/ToolbarGroup.js +2 -2
  999. package/toolbar/group/ToolbarGroupContext.js +1 -0
  1000. package/toolbar/input/ToolbarInput.d.ts +3 -3
  1001. package/toolbar/input/ToolbarInput.js +2 -2
  1002. package/toolbar/link/ToolbarLink.js +2 -2
  1003. package/toolbar/root/ToolbarRoot.d.ts +3 -3
  1004. package/toolbar/root/ToolbarRoot.js +2 -2
  1005. package/tooltip/arrow/TooltipArrow.d.ts +1 -0
  1006. package/tooltip/arrow/TooltipArrow.js +2 -2
  1007. package/tooltip/arrow/TooltipArrowDataAttributes.js +2 -2
  1008. package/tooltip/popup/TooltipPopup.js +2 -2
  1009. package/tooltip/popup/TooltipPopupDataAttributes.js +2 -2
  1010. package/tooltip/portal/TooltipPortal.d.ts +1 -1
  1011. package/tooltip/portal/TooltipPortalContext.js +1 -0
  1012. package/tooltip/positioner/TooltipPositioner.d.ts +1 -1
  1013. package/tooltip/positioner/TooltipPositionerContext.d.ts +1 -1
  1014. package/tooltip/positioner/TooltipPositionerDataAttributes.js +2 -2
  1015. package/tooltip/provider/TooltipProvider.d.ts +3 -3
  1016. package/tooltip/provider/TooltipProviderContext.js +1 -0
  1017. package/tooltip/root/TooltipRoot.d.ts +12 -12
  1018. package/tooltip/root/TooltipRoot.js +23 -11
  1019. package/tooltip/store/TooltipStore.d.ts +256 -16
  1020. package/tooltip/trigger/TooltipTrigger.d.ts +11 -4
  1021. package/tooltip/trigger/TooltipTrigger.js +12 -6
  1022. package/tooltip/trigger/TooltipTriggerDataAttributes.d.ts +4 -0
  1023. package/tooltip/trigger/TooltipTriggerDataAttributes.js +4 -0
  1024. package/tooltip/viewport/TooltipViewport.d.ts +9 -1
  1025. package/tooltip/viewport/TooltipViewport.js +14 -195
  1026. package/unstable-use-media-query/index.d.ts +5 -5
  1027. package/use-button/useButton.d.ts +4 -4
  1028. package/use-button/useButton.js +7 -2
  1029. package/use-render/useRender.d.ts +9 -9
  1030. package/utils/InternalBackdrop.d.ts +1 -1
  1031. package/utils/createBaseUIEventDetails.d.ts +3 -0
  1032. package/utils/formatNumber.d.ts +2 -1
  1033. package/utils/formatNumber.js +12 -0
  1034. package/utils/getDisabledMountTransitionStyles.d.ts +1 -1
  1035. package/utils/getPseudoElementBounds.js +1 -1
  1036. package/utils/itemEquality.d.ts +5 -5
  1037. package/utils/itemEquality.js +18 -18
  1038. package/utils/popupStateMapping.d.ts +10 -0
  1039. package/utils/popupStateMapping.js +10 -0
  1040. package/utils/popups/popupStoreUtils.js +1 -0
  1041. package/utils/popups/popupTriggerMap.d.ts +14 -1
  1042. package/utils/popups/popupTriggerMap.js +27 -10
  1043. package/utils/popups/store.d.ts +28 -18
  1044. package/utils/popups/store.js +8 -5
  1045. package/utils/reason-parts.d.ts +3 -0
  1046. package/utils/reason-parts.js +4 -1
  1047. package/utils/scrollable.d.ts +4 -0
  1048. package/utils/scrollable.js +40 -0
  1049. package/utils/types.d.ts +6 -6
  1050. package/utils/useAnchorPositioning.d.ts +26 -26
  1051. package/utils/useAnchorPositioning.js +19 -16
  1052. package/utils/useFocusableWhenDisabled.d.ts +4 -4
  1053. package/utils/useMixedToggleClickHandler.d.ts +1 -1
  1054. package/utils/useMixedToggleClickHandler.js +1 -0
  1055. package/utils/useOpenChangeComplete.d.ts +2 -2
  1056. package/utils/usePopupAutoResize.d.ts +3 -3
  1057. package/utils/usePopupAutoResize.js +2 -1
  1058. package/utils/usePopupViewport.d.ts +58 -0
  1059. package/utils/usePopupViewport.js +253 -0
  1060. package/utils/useRenderElement.d.ts +9 -9
  1061. package/utils/useRenderElement.js +28 -1
  1062. package/utils/useSwipeDismiss.d.ts +108 -0
  1063. package/utils/useSwipeDismiss.js +952 -0
  1064. package/utils/useValueChanged.js +1 -0
  1065. package/esm/toast/viewport/ToastViewportContext.d.ts +0 -6
  1066. package/esm/toast/viewport/ToastViewportContext.js +0 -11
  1067. package/toast/viewport/ToastViewportContext.d.ts +0 -6
  1068. package/toast/viewport/ToastViewportContext.js +0 -20
@@ -5,11 +5,11 @@ import { Group } from "../../utils/resolveValueLabel.js";
5
5
  /**
6
6
  * @internal
7
7
  */
8
- export declare function AriaCombobox<Value, Mode extends SelectionMode = 'none'>(props: Omit<ComboboxRootConditionalProps<Value, Mode>, 'items'> & {
8
+ export declare function AriaCombobox<Value, Mode extends SelectionMode = 'none'>(props: Omit<AriaComboboxProps<Value, Mode>, 'items'> & {
9
9
  items: readonly Group<any>[];
10
10
  }): React.JSX.Element;
11
- export declare function AriaCombobox<Value, Mode extends SelectionMode = 'none'>(props: Omit<ComboboxRootConditionalProps<Value, Mode>, 'items'> & {
12
- items?: readonly any[];
11
+ export declare function AriaCombobox<Value, Mode extends SelectionMode = 'none'>(props: Omit<AriaComboboxProps<Value, Mode>, 'items'> & {
12
+ items?: readonly any[] | undefined;
13
13
  }): React.JSX.Element;
14
14
  type SelectionMode = 'single' | 'multiple' | 'none';
15
15
  type ComboboxItemValueType<ItemValue, Mode extends SelectionMode> = Mode extends 'multiple' ? ItemValue[] : ItemValue;
@@ -18,50 +18,50 @@ interface ComboboxRootProps<ItemValue> {
18
18
  /**
19
19
  * Identifies the field when a form is submitted.
20
20
  */
21
- name?: string;
21
+ name?: string | undefined;
22
22
  /**
23
23
  * The id of the component.
24
24
  */
25
- id?: string;
25
+ id?: string | undefined;
26
26
  /**
27
27
  * Whether the user must choose a value before submitting a form.
28
28
  * @default false
29
29
  */
30
- required?: boolean;
30
+ required?: boolean | undefined;
31
31
  /**
32
32
  * Whether the user should be unable to choose a different option from the popup.
33
33
  * @default false
34
34
  */
35
- readOnly?: boolean;
35
+ readOnly?: boolean | undefined;
36
36
  /**
37
37
  * Whether the component should ignore user interaction.
38
38
  * @default false
39
39
  */
40
- disabled?: boolean;
40
+ disabled?: boolean | undefined;
41
41
  /**
42
42
  * Whether the popup is initially open.
43
43
  *
44
44
  * To render a controlled popup, use the `open` prop instead.
45
45
  * @default false
46
46
  */
47
- defaultOpen?: boolean;
47
+ defaultOpen?: boolean | undefined;
48
48
  /**
49
49
  * Whether the popup is currently open. Use when controlled.
50
50
  */
51
- open?: boolean;
51
+ open?: boolean | undefined;
52
52
  /**
53
53
  * Event handler called when the popup is opened or closed.
54
54
  */
55
- onOpenChange?: (open: boolean, eventDetails: AriaCombobox.ChangeEventDetails) => void;
55
+ onOpenChange?: ((open: boolean, eventDetails: AriaCombobox.ChangeEventDetails) => void) | undefined;
56
56
  /**
57
57
  * Event handler called after any animations complete when the popup is opened or closed.
58
58
  */
59
- onOpenChangeComplete?: (open: boolean) => void;
59
+ onOpenChangeComplete?: ((open: boolean) => void) | undefined;
60
60
  /**
61
61
  * Whether the popup opens when clicking the input.
62
62
  * @default true
63
63
  */
64
- openOnInputClick?: boolean;
64
+ openOnInputClick?: boolean | undefined;
65
65
  /**
66
66
  * Whether the first matching item is highlighted automatically.
67
67
  * - `false`: do not highlight automatically.
@@ -69,46 +69,46 @@ interface ComboboxRootProps<ItemValue> {
69
69
  * - `'always'`: highlight the first item as soon as the list opens.
70
70
  * @default false
71
71
  */
72
- autoHighlight?: boolean | 'always';
72
+ autoHighlight?: (boolean | 'always') | undefined;
73
73
  /**
74
74
  * Whether the highlighted item should be preserved when the pointer leaves the list.
75
75
  * @default false
76
76
  */
77
- keepHighlight?: boolean;
77
+ keepHighlight?: boolean | undefined;
78
78
  /**
79
79
  * Whether moving the pointer over items should highlight them.
80
80
  * Disabling this prop allows CSS `:hover` to be differentiated from the `:focus` (`data-highlighted`) state.
81
81
  * @default true
82
82
  */
83
- highlightItemOnHover?: boolean;
83
+ highlightItemOnHover?: boolean | undefined;
84
84
  /**
85
85
  * 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 <kbd>ArrowDown</kbd> again from the input, or the last item can be reached by pressing <kbd>ArrowUp</kbd> from the input.
86
86
  * The input is always included in the focus loop per [ARIA Authoring Practices](https://www.w3.org/WAI/ARIA/apg/patterns/combobox/).
87
87
  * When disabled, focus does not move when on the last element and the user presses <kbd>ArrowDown</kbd>, or when on the first element and the user presses <kbd>ArrowUp</kbd>.
88
88
  * @default true
89
89
  */
90
- loopFocus?: boolean;
90
+ loopFocus?: boolean | undefined;
91
91
  /**
92
92
  * The input value of the combobox. Use when controlled.
93
93
  */
94
- inputValue?: React.ComponentProps<'input'>['value'];
94
+ inputValue?: React.ComponentProps<'input'>['value'] | undefined;
95
95
  /**
96
96
  * Callback fired when the input value of the combobox changes.
97
97
  */
98
- onInputValueChange?: (value: string, eventDetails: AriaCombobox.ChangeEventDetails) => void;
98
+ onInputValueChange?: ((value: string, eventDetails: AriaCombobox.ChangeEventDetails) => void) | undefined;
99
99
  /**
100
100
  * The uncontrolled input value when initially rendered.
101
101
  *
102
102
  * To render a controlled input, use the `inputValue` prop instead.
103
103
  */
104
- defaultInputValue?: React.ComponentProps<'input'>['defaultValue'];
104
+ defaultInputValue?: React.ComponentProps<'input'>['defaultValue'] | undefined;
105
105
  /**
106
106
  * A ref to imperative actions.
107
107
  * - `unmount`: When specified, the combobox will not be unmounted when closed.
108
108
  * Instead, the `unmount` function must be called to unmount the combobox manually.
109
109
  * Useful when the combobox's animation is controlled by an external library.
110
110
  */
111
- actionsRef?: React.RefObject<AriaCombobox.Actions | null>;
111
+ actionsRef?: React.RefObject<AriaCombobox.Actions | null> | undefined;
112
112
  /**
113
113
  * Callback fired when an item is highlighted or unhighlighted.
114
114
  * Receives the highlighted item value (or `undefined` if no item is highlighted) and event details with a `reason` property describing why the highlight changed.
@@ -117,69 +117,69 @@ interface ComboboxRootProps<ItemValue> {
117
117
  * - `'pointer'`: the highlight changed due to pointer hovering.
118
118
  * - `'none'`: the highlight changed programmatically.
119
119
  */
120
- onItemHighlighted?: (itemValue: ItemValue | undefined, eventDetails: AriaCombobox.HighlightEventDetails) => void;
120
+ onItemHighlighted?: ((itemValue: ItemValue | undefined, eventDetails: AriaCombobox.HighlightEventDetails) => void) | undefined;
121
121
  /**
122
122
  * A ref to the hidden input element.
123
123
  */
124
- inputRef?: React.Ref<HTMLInputElement>;
124
+ inputRef?: React.Ref<HTMLInputElement> | undefined;
125
125
  /**
126
126
  * Whether list items are presented in a grid layout.
127
127
  * When enabled, arrow keys navigate across rows and columns inferred from DOM rows.
128
128
  * @default false
129
129
  */
130
- grid?: boolean;
130
+ grid?: boolean | undefined;
131
131
  /**
132
132
  * The items to be displayed in the list.
133
133
  * Can be either a flat array of items or an array of groups with items.
134
134
  */
135
- items?: readonly any[] | readonly Group<any>[];
135
+ items?: (readonly any[] | readonly Group<any>[]) | undefined;
136
136
  /**
137
137
  * Filtered items to display in the list.
138
138
  * When provided, the list will use these items instead of filtering the `items` prop internally.
139
139
  * Use when you want to control filtering logic externally with the `useFilter()` hook.
140
140
  */
141
- filteredItems?: readonly any[] | readonly Group<any>[];
141
+ filteredItems?: (readonly any[] | readonly Group<any>[]) | undefined;
142
142
  /**
143
143
  * Filter function used to match items vs input query.
144
144
  */
145
- filter?: null | ((itemValue: ItemValue, query: string, itemToString?: (itemValue: ItemValue) => string) => boolean);
145
+ filter?: (null | ((itemValue: ItemValue, query: string, itemToString?: (itemValue: ItemValue) => string) => boolean)) | undefined;
146
146
  /**
147
147
  * 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.
148
148
  * If the shape of the object is `{ value, label }`, the label will be used automatically without needing to specify this prop.
149
149
  */
150
- itemToStringLabel?: (itemValue: ItemValue) => string;
150
+ itemToStringLabel?: ((itemValue: ItemValue) => string) | undefined;
151
151
  /**
152
152
  * When the item values are objects (`<Combobox.Item value={object}>`), this function converts the object value to a string representation for form submission.
153
153
  * If the shape of the object is `{ value, label }`, the value will be used automatically without needing to specify this prop.
154
154
  */
155
- itemToStringValue?: (itemValue: ItemValue) => string;
155
+ itemToStringValue?: ((itemValue: ItemValue) => string) | undefined;
156
156
  /**
157
157
  * 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.
158
158
  * Defaults to `Object.is` comparison.
159
159
  */
160
- isItemEqualToValue?: (itemValue: ItemValue, selectedValue: ItemValue) => boolean;
160
+ isItemEqualToValue?: ((itemValue: ItemValue, value: ItemValue) => boolean) | undefined;
161
161
  /**
162
162
  * Whether the items are being externally virtualized.
163
163
  * @default false
164
164
  */
165
- virtualized?: boolean;
165
+ virtualized?: boolean | undefined;
166
166
  /**
167
167
  * Whether the list is rendered inline without using the popup.
168
168
  * @default false
169
169
  */
170
- inline?: boolean;
170
+ inline?: boolean | undefined;
171
171
  /**
172
172
  * Determines if the popup enters a modal state when open.
173
173
  * - `true`: user interaction is limited to the popup: document page scroll is locked and pointer interactions on outside elements are disabled.
174
174
  * - `false`: user interaction with the rest of the document is allowed.
175
175
  * @default false
176
176
  */
177
- modal?: boolean;
177
+ modal?: boolean | undefined;
178
178
  /**
179
179
  * The maximum number of items to display in the list.
180
180
  * @default -1
181
181
  */
182
- limit?: number;
182
+ limit?: number | undefined;
183
183
  /**
184
184
  * Controls how the component behaves with respect to list filtering and inline autocompletion.
185
185
  * - `list` (default): items are dynamically filtered based on the input value. The input value does not change based on the active item.
@@ -188,23 +188,28 @@ interface ComboboxRootProps<ItemValue> {
188
188
  * - `none`: items are static (not filtered), and the input value will not change based on the active item.
189
189
  * @default 'list'
190
190
  */
191
- autoComplete?: 'list' | 'both' | 'inline' | 'none';
191
+ autoComplete?: ('list' | 'both' | 'inline' | 'none') | undefined;
192
+ /**
193
+ * Provides a hint to the browser for autofill on the hidden input element.
194
+ * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/autocomplete
195
+ */
196
+ formAutoComplete?: string | undefined;
192
197
  /**
193
198
  * The locale to use for string comparison.
194
199
  * Defaults to the user's runtime locale.
195
200
  */
196
- locale?: Intl.LocalesArgument;
201
+ locale?: Intl.LocalesArgument | undefined;
197
202
  /**
198
203
  * Whether clicking an item should submit the owning form.
199
204
  * @default false
200
205
  */
201
- submitOnItemClick?: boolean;
206
+ submitOnItemClick?: boolean | undefined;
202
207
  /**
203
208
  * INTERNAL: When `selectionMode` is `none`, controls whether selecting an item fills the input.
204
209
  */
205
- fillInputOnItemPress?: boolean;
210
+ fillInputOnItemPress?: boolean | undefined;
206
211
  }
207
- export type ComboboxRootConditionalProps<Value, Mode extends SelectionMode = 'none'> = Omit<ComboboxRootProps<Value>, 'selectionMode' | 'selectedValue' | 'defaultSelectedValue' | 'onSelectedValueChange'> & {
212
+ export type AriaComboboxProps<Value, Mode extends SelectionMode = 'none'> = ComboboxRootProps<Value> & {
208
213
  /**
209
214
  * How the combobox should remember the selected value.
210
215
  * - `single`: Remembers the last selected value.
@@ -212,24 +217,24 @@ export type ComboboxRootConditionalProps<Value, Mode extends SelectionMode = 'no
212
217
  * - `none`: Do not remember the selected value.
213
218
  * @default 'none'
214
219
  */
215
- selectionMode?: Mode;
220
+ selectionMode?: Mode | undefined;
216
221
  /**
217
222
  * The selected value of the combobox. Use when controlled.
218
223
  */
219
- selectedValue?: ComboboxItemValueType<Value, Mode>;
224
+ selectedValue?: ComboboxItemValueType<Value, Mode> | undefined;
220
225
  /**
221
226
  * The uncontrolled selected value of the combobox when it's initially rendered.
222
227
  *
223
228
  * To render a controlled combobox, use the `selectedValue` prop instead.
224
229
  */
225
- defaultSelectedValue?: ComboboxItemValueType<Value, Mode> | null;
230
+ defaultSelectedValue?: (ComboboxItemValueType<Value, Mode> | null) | undefined;
226
231
  /**
227
232
  * Callback fired when the selected value of the combobox changes.
228
233
  */
229
- onSelectedValueChange?: (value: ComboboxItemValueType<Value, Mode>, eventDetails: AriaCombobox.ChangeEventDetails) => void;
234
+ onSelectedValueChange?: ((value: ComboboxItemValueType<Value, Mode>, eventDetails: AriaCombobox.ChangeEventDetails) => void) | undefined;
230
235
  };
231
236
  export declare namespace AriaCombobox {
232
- type Props<Value, Mode extends SelectionMode = 'none'> = ComboboxRootConditionalProps<Value, Mode>;
237
+ type Props<Value, Mode extends SelectionMode = 'none'> = AriaComboboxProps<Value, Mode>;
233
238
  interface State {}
234
239
  interface Actions {
235
240
  unmount: () => void;
@@ -29,7 +29,7 @@ import { useOpenInteractionType } from "../../utils/useOpenInteractionType.js";
29
29
  import { useValueChanged } from "../../utils/useValueChanged.js";
30
30
  import { NOOP } from "../../utils/noop.js";
31
31
  import { stringifyAsLabel, stringifyAsValue, isGroupedItems } from "../../utils/resolveValueLabel.js";
32
- import { defaultItemEquality, findItemIndex, itemIncludes, removeItem } from "../../utils/itemEquality.js";
32
+ import { compareItemEquality, defaultItemEquality, findItemIndex, removeItem, selectedValueIncludes } from "../../utils/itemEquality.js";
33
33
  import { INITIAL_LAST_HIGHLIGHT, NO_ACTIVE_VALUE } from "./utils/constants.js";
34
34
 
35
35
  /**
@@ -70,6 +70,7 @@ export function AriaCombobox(props) {
70
70
  modal = false,
71
71
  limit = -1,
72
72
  autoComplete = 'list',
73
+ formAutoComplete,
73
74
  locale,
74
75
  submitOnItemClick = false
75
76
  } = props;
@@ -399,17 +400,24 @@ export function AriaCombobox(props) {
399
400
  // If user is typing, ensure we don't auto-highlight on open due to a race
400
401
  // with the post-open effect that sets this flag.
401
402
  if (eventDetails.reason === REASONS.inputChange) {
402
- const hasQuery = next.trim() !== '';
403
- if (hasQuery) {
404
- setQueryChangedAfterOpen(true);
405
- }
406
- // Defer index updates until after the filtered items have been derived to ensure
407
- // `onItemHighlighted` receives the latest item.
408
- pendingQueryHighlightRef.current = {
409
- hasQuery
410
- };
411
- if (hasQuery && autoHighlightMode && store.state.activeIndex == null) {
412
- store.set('activeIndex', 0);
403
+ const event = eventDetails.event;
404
+ const inputType = event.inputType;
405
+ // Treat composition commits as typed input; autofill may omit `inputType` or
406
+ // report `insertReplacementText`.
407
+ const isTypedInput = event.type === 'compositionend' || inputType != null && inputType !== '' && inputType !== 'insertReplacementText';
408
+ if (isTypedInput) {
409
+ const hasQuery = next.trim() !== '';
410
+ if (hasQuery) {
411
+ setQueryChangedAfterOpen(true);
412
+ }
413
+ // Defer index updates until after the filtered items have been derived to ensure
414
+ // `onItemHighlighted` receives the latest item.
415
+ pendingQueryHighlightRef.current = {
416
+ hasQuery
417
+ };
418
+ if (hasQuery && autoHighlightMode && store.state.activeIndex == null) {
419
+ store.set('activeIndex', 0);
420
+ }
413
421
  }
414
422
  }
415
423
  setInputValueUnwrapped(next);
@@ -431,7 +439,9 @@ export function AriaCombobox(props) {
431
439
  }
432
440
  if (!nextOpen && queryChangedAfterOpen) {
433
441
  if (single) {
434
- setCloseQuery(query);
442
+ if (!inline) {
443
+ setCloseQuery(query);
444
+ }
435
445
  // Avoid a flicker when closing the popup with an empty query.
436
446
  if (query === '') {
437
447
  setQueryChangedAfterOpen(false);
@@ -472,17 +482,17 @@ export function AriaCombobox(props) {
472
482
  if (shouldFillInput) {
473
483
  setInputValue(stringifyAsLabel(nextValue, itemToStringLabel), createChangeEventDetails(eventDetails.reason, eventDetails.event));
474
484
  }
475
- if (single && nextValue != null && eventDetails.reason !== REASONS.inputChange && queryChangedAfterOpen) {
485
+ if (single && nextValue != null && eventDetails.reason !== REASONS.inputChange && queryChangedAfterOpen && !inline) {
476
486
  setCloseQuery(query);
477
487
  }
478
488
  });
479
489
  const handleSelection = useStableCallback((event, passedValue) => {
480
- let value = passedValue;
481
- if (value === undefined) {
490
+ let itemValue = passedValue;
491
+ if (itemValue === undefined) {
482
492
  if (activeIndex === null) {
483
493
  return;
484
494
  }
485
- value = valuesRef.current[activeIndex];
495
+ itemValue = valuesRef.current[activeIndex];
486
496
  }
487
497
  const targetEl = getTarget(event);
488
498
  const overrideEvent = selectionEventRef.current ?? event;
@@ -499,8 +509,8 @@ export function AriaCombobox(props) {
499
509
  }
500
510
  if (multiple) {
501
511
  const currentSelectedValue = Array.isArray(selectedValue) ? selectedValue : [];
502
- const isCurrentlySelected = itemIncludes(currentSelectedValue, value, store.state.isItemEqualToValue);
503
- const nextValue = isCurrentlySelected ? removeItem(currentSelectedValue, value, store.state.isItemEqualToValue) : [...currentSelectedValue, value];
512
+ const isCurrentlySelected = selectedValueIncludes(currentSelectedValue, itemValue, store.state.isItemEqualToValue);
513
+ const nextValue = isCurrentlySelected ? removeItem(currentSelectedValue, itemValue, store.state.isItemEqualToValue) : [...currentSelectedValue, itemValue];
504
514
  setSelectedValue(nextValue, eventDetails);
505
515
  const wasFiltering = inputRef.current ? inputRef.current.value.trim() !== '' : false;
506
516
  if (!wasFiltering) {
@@ -512,7 +522,7 @@ export function AriaCombobox(props) {
512
522
  setOpen(false, eventDetails);
513
523
  }
514
524
  } else {
515
- setSelectedValue(value, eventDetails);
525
+ setSelectedValue(itemValue, eventDetails);
516
526
  setOpen(false, eventDetails);
517
527
  }
518
528
  });
@@ -659,46 +669,19 @@ export function AriaCombobox(props) {
659
669
  store.set('activeIndex', null);
660
670
  return;
661
671
  }
662
- const nextActiveValue = candidateItems[storeActiveIndex];
663
- const lastHighlightedValue = lastHighlightRef.current.value;
664
- const isSameItem = lastHighlightedValue !== NO_ACTIVE_VALUE && store.state.isItemEqualToValue(nextActiveValue, lastHighlightedValue);
672
+ const itemValue = candidateItems[storeActiveIndex];
673
+ const previouslyHighlightedItemValue = lastHighlightRef.current.value;
674
+ const isSameItem = previouslyHighlightedItemValue !== NO_ACTIVE_VALUE && compareItemEquality(itemValue, previouslyHighlightedItemValue, store.state.isItemEqualToValue);
665
675
  if (lastHighlightRef.current.index !== storeActiveIndex || !isSameItem) {
666
676
  lastHighlightRef.current = {
667
- value: nextActiveValue,
677
+ value: itemValue,
668
678
  index: storeActiveIndex
669
679
  };
670
- store.state.onItemHighlighted(nextActiveValue, createGenericEventDetails(REASONS.none, undefined, {
680
+ store.state.onItemHighlighted(itemValue, createGenericEventDetails(REASONS.none, undefined, {
671
681
  index: storeActiveIndex
672
682
  }));
673
683
  }
674
684
  }, [activeIndex, autoHighlightMode, hasFilteredItemsProp, hasItems, flatFilteredItems, inline, open, store]);
675
-
676
- // When the available items change, ensure the selected value(s) remain valid.
677
- // - Single: if current selection is removed, fall back to defaultSelectedValue if it exists in the list; else null.
678
- // - Multiple: drop any removed selections.
679
- useIsoLayoutEffect(() => {
680
- if (!items || selectionMode === 'none') {
681
- return;
682
- }
683
- const registry = flatItems;
684
- if (multiple) {
685
- const current = Array.isArray(selectedValue) ? selectedValue : EMPTY_ARRAY;
686
- const next = current.filter(v => itemIncludes(registry, v, store.state.isItemEqualToValue));
687
- if (next.length !== current.length) {
688
- setSelectedValue(next, createChangeEventDetails(REASONS.none));
689
- }
690
- return;
691
- }
692
- const isStillPresent = selectedValue == null || itemIncludes(registry, selectedValue, store.state.isItemEqualToValue);
693
- if (isStillPresent) {
694
- return;
695
- }
696
- let fallback = null;
697
- if (defaultSelectedValue != null && itemIncludes(registry, defaultSelectedValue, store.state.isItemEqualToValue)) {
698
- fallback = defaultSelectedValue;
699
- }
700
- setSelectedValue(fallback, createChangeEventDetails(REASONS.none));
701
- }, [items, flatItems, multiple, selectionMode, selectedValue, defaultSelectedValue, store, setSelectedValue]);
702
685
  useIsoLayoutEffect(() => {
703
686
  if (selectionMode === 'none') {
704
687
  setFilled(String(inputValue) !== '');
@@ -733,12 +716,6 @@ export function AriaCombobox(props) {
733
716
  } else {
734
717
  validation.commit(selectedValue, true);
735
718
  }
736
- if (multiple && store.state.selectedIndex !== null && (!Array.isArray(selectedValue) || selectedValue.length === 0)) {
737
- setIndices({
738
- activeIndex: null,
739
- selectedIndex: null
740
- });
741
- }
742
719
  if (single && !hasInputValue && !inputInsidePopup) {
743
720
  const nextInputValue = stringifyAsLabel(selectedValue, itemToStringLabel);
744
721
  if (inputValue !== nextInputValue) {
@@ -810,7 +787,8 @@ export function AriaCombobox(props) {
810
787
  toggle: false,
811
788
  // Apply a small delay for touch to let iOS viewport centering settle.
812
789
  // This avoids top-bottom flip flickers if the preferred position is "top" when first tapping.
813
- touchOpenDelay: inputInsidePopup ? 0 : 50
790
+ touchOpenDelay: inputInsidePopup ? 0 : 50,
791
+ reason: REASONS.inputPress
814
792
  });
815
793
  const dismiss = useDismiss(floatingRootContext, {
816
794
  enabled: !readOnly && !disabled && !inline,
@@ -922,9 +900,10 @@ export function AriaCombobox(props) {
922
900
  const hiddenInputRef = useMergedRefs(inputRefProp, validation.inputRef);
923
901
  const itemsContextValue = React.useMemo(() => ({
924
902
  query,
903
+ hasItems,
925
904
  filteredItems,
926
905
  flatFilteredItems
927
- }), [query, filteredItems, flatFilteredItems]);
906
+ }), [query, hasItems, filteredItems, flatFilteredItems]);
928
907
  const serializedValue = React.useMemo(() => {
929
908
  if (Array.isArray(fieldRawValue)) {
930
909
  return '';
@@ -932,6 +911,7 @@ export function AriaCombobox(props) {
932
911
  return stringifyAsValue(fieldRawValue, itemToStringValue);
933
912
  }, [fieldRawValue, itemToStringValue]);
934
913
  const hasMultipleSelection = multiple && Array.isArray(selectedValue) && selectedValue.length > 0;
914
+ const hiddenInputName = multiple || selectionMode === 'none' ? undefined : name;
935
915
  const hiddenInputs = React.useMemo(() => {
936
916
  if (!multiple || !Array.isArray(selectedValue) || !name) {
937
917
  return null;
@@ -963,7 +943,7 @@ export function AriaCombobox(props) {
963
943
  return;
964
944
  }
965
945
  const nextValue = event.target.value;
966
- const details = createChangeEventDetails(REASONS.inputChange, event.nativeEvent);
946
+ const details = createChangeEventDetails(REASONS.none, event.nativeEvent);
967
947
  function handleChange() {
968
948
  // Browser autofill only writes a single scalar value.
969
949
  if (multiple) {
@@ -1000,13 +980,15 @@ export function AriaCombobox(props) {
1000
980
  }
1001
981
  }
1002
982
  }),
1003
- name: multiple || selectionMode === 'none' ? undefined : name,
983
+ id: id && hiddenInputName == null ? `${id}-hidden-input` : undefined,
984
+ name: hiddenInputName,
985
+ autoComplete: formAutoComplete,
1004
986
  disabled: disabled,
1005
987
  required: required && !hasMultipleSelection,
1006
988
  readOnly: readOnly,
1007
989
  value: serializedValue,
1008
990
  ref: hiddenInputRef,
1009
- style: name ? visuallyHiddenInput : visuallyHidden,
991
+ style: hiddenInputName ? visuallyHiddenInput : visuallyHidden,
1010
992
  tabIndex: -1,
1011
993
  "aria-hidden": true
1012
994
  }), hiddenInputs]
@@ -9,59 +9,64 @@ import { AriaCombobox } from "./AriaCombobox.js";
9
9
  export declare function ComboboxRoot<Value, Multiple extends boolean | undefined = false>(props: ComboboxRoot.Props<Value, Multiple>): React.JSX.Element;
10
10
  type ModeFromMultiple<Multiple extends boolean | undefined> = Multiple extends true ? 'multiple' : 'single';
11
11
  type ComboboxValueType<Value, Multiple extends boolean | undefined> = Multiple extends true ? Value[] : Value;
12
- export type ComboboxRootProps<Value, Multiple extends boolean | undefined = false> = Omit<AriaCombobox.Props<Value, ModeFromMultiple<Multiple>>, 'fillInputOnItemPress' | 'autoComplete' | 'submitOnItemClick' | 'autoHighlight' | 'keepHighlight' | 'highlightItemOnHover' | 'itemToStringLabel' | 'itemToStringValue' | 'isItemEqualToValue' | 'selectionMode' | 'defaultSelectedValue' | 'selectedValue' | 'onSelectedValueChange' | 'actionsRef' | 'onOpenChange' | 'onInputValueChange' | 'onItemHighlighted'> & {
12
+ export type ComboboxRootProps<Value, Multiple extends boolean | undefined = false> = Omit<AriaCombobox.Props<Value, ModeFromMultiple<Multiple>>, 'fillInputOnItemPress' | 'autoComplete' | 'formAutoComplete' | 'submitOnItemClick' | 'autoHighlight' | 'keepHighlight' | 'highlightItemOnHover' | 'itemToStringLabel' | 'itemToStringValue' | 'isItemEqualToValue' | 'selectionMode' | 'defaultSelectedValue' | 'selectedValue' | 'onSelectedValueChange' | 'actionsRef' | 'onOpenChange' | 'onInputValueChange' | 'onItemHighlighted'> & {
13
13
  /**
14
14
  * Whether multiple items can be selected.
15
15
  * @default false
16
16
  */
17
- multiple?: Multiple;
17
+ multiple?: Multiple | undefined;
18
+ /**
19
+ * Provides a hint to the browser for autofill.
20
+ * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/autocomplete
21
+ */
22
+ autoComplete?: string | undefined;
18
23
  /**
19
24
  * Whether the first matching item is highlighted automatically while filtering.
20
25
  * @default false
21
26
  */
22
- autoHighlight?: boolean;
27
+ autoHighlight?: boolean | undefined;
23
28
  /**
24
29
  * Whether moving the pointer over items should highlight them.
25
30
  * Disabling this prop allows CSS `:hover` to be differentiated from the `:focus` (`data-highlighted`) state.
26
31
  * @default true
27
32
  */
28
- highlightItemOnHover?: boolean;
33
+ highlightItemOnHover?: boolean | undefined;
29
34
  /**
30
35
  * 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.
31
36
  * If the shape of the object is `{ value, label }`, the label will be used automatically without needing to specify this prop.
32
37
  */
33
- itemToStringLabel?: (itemValue: Value) => string;
38
+ itemToStringLabel?: ((itemValue: Value) => string) | undefined;
34
39
  /**
35
40
  * When the item values are objects (`<Combobox.Item value={object}>`), this function converts the object value to a string representation for form submission.
36
41
  * If the shape of the object is `{ value, label }`, the value will be used automatically without needing to specify this prop.
37
42
  */
38
- itemToStringValue?: (itemValue: Value) => string;
43
+ itemToStringValue?: ((itemValue: Value) => string) | undefined;
39
44
  /**
40
45
  * 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.
41
46
  * Defaults to `Object.is` comparison.
42
47
  */
43
- isItemEqualToValue?: (itemValue: Value, selectedValue: Value) => boolean;
48
+ isItemEqualToValue?: ((itemValue: Value, value: Value) => boolean) | undefined;
44
49
  /**
45
50
  * The uncontrolled selected value of the combobox when it's initially rendered.
46
51
  *
47
52
  * To render a controlled combobox, use the `value` prop instead.
48
53
  */
49
- defaultValue?: ComboboxValueType<Value, Multiple> | null;
54
+ defaultValue?: (ComboboxValueType<Value, Multiple> | null) | undefined;
50
55
  /**
51
56
  * A ref to imperative actions.
52
57
  * - `unmount`: When specified, the combobox will not be unmounted when closed.
53
58
  * Instead, the `unmount` function must be called to unmount the combobox manually.
54
59
  * Useful when the combobox's animation is controlled by an external library.
55
60
  */
56
- actionsRef?: React.RefObject<ComboboxRoot.Actions | null>;
61
+ actionsRef?: React.RefObject<ComboboxRoot.Actions | null> | undefined;
57
62
  /**
58
63
  * Event handler called when the popup is opened or closed.
59
64
  */
60
- onOpenChange?: (open: boolean, eventDetails: ComboboxRoot.ChangeEventDetails) => void;
65
+ onOpenChange?: ((open: boolean, eventDetails: ComboboxRoot.ChangeEventDetails) => void) | undefined;
61
66
  /**
62
67
  * Event handler called when the input value changes.
63
68
  */
64
- onInputValueChange?: (inputValue: string, eventDetails: ComboboxRoot.ChangeEventDetails) => void;
69
+ onInputValueChange?: ((inputValue: string, eventDetails: ComboboxRoot.ChangeEventDetails) => void) | undefined;
65
70
  /**
66
71
  * Callback fired when an item is highlighted or unhighlighted.
67
72
  * Receives the highlighted item value (or `undefined` if no item is highlighted) and event details with a `reason` property describing why the highlight changed.
@@ -70,15 +75,15 @@ export type ComboboxRootProps<Value, Multiple extends boolean | undefined = fals
70
75
  * - `'pointer'`: the highlight changed due to pointer hovering.
71
76
  * - `'none'`: the highlight changed programmatically.
72
77
  */
73
- onItemHighlighted?: (highlightedValue: Value | undefined, eventDetails: ComboboxRoot.HighlightEventDetails) => void;
78
+ onItemHighlighted?: ((highlightedValue: Value | undefined, eventDetails: ComboboxRoot.HighlightEventDetails) => void) | undefined;
74
79
  /**
75
80
  * The selected value of the combobox. Use when controlled.
76
81
  */
77
- value?: ComboboxValueType<Value, Multiple> | null;
82
+ value?: (ComboboxValueType<Value, Multiple> | null) | undefined;
78
83
  /**
79
84
  * Event handler called when the selected value of the combobox changes.
80
85
  */
81
- onValueChange?: (value: ComboboxValueType<Value, Multiple> | (Multiple extends true ? never : null), eventDetails: ComboboxRoot.ChangeEventDetails) => void;
86
+ onValueChange?: ((value: ComboboxValueType<Value, Multiple> | (Multiple extends true ? never : null), eventDetails: ComboboxRoot.ChangeEventDetails) => void) | undefined;
82
87
  };
83
88
  export type ComboboxRootState = AriaCombobox.State;
84
89
  export type ComboboxRootActions = AriaCombobox.Actions;
@@ -16,6 +16,7 @@ export function ComboboxRoot(props) {
16
16
  defaultValue,
17
17
  value,
18
18
  onValueChange,
19
+ autoComplete,
19
20
  ...other
20
21
  } = props;
21
22
  return /*#__PURE__*/_jsx(AriaCombobox, {
@@ -23,6 +24,7 @@ export function ComboboxRoot(props) {
23
24
  selectionMode: multiple ? 'multiple' : 'single',
24
25
  selectedValue: value,
25
26
  defaultSelectedValue: defaultValue,
26
- onSelectedValueChange: onValueChange
27
+ onSelectedValueChange: onValueChange,
28
+ formAutoComplete: autoComplete
27
29
  });
28
30
  }
@@ -2,6 +2,7 @@ import * as React from 'react';
2
2
  import { ComboboxStore } from "../store.js";
3
3
  export interface ComboboxDerivedItemsContext {
4
4
  query: string;
5
+ hasItems: boolean;
5
6
  filteredItems: any[];
6
7
  flatFilteredItems: any[];
7
8
  }
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _formatErrorMessage from "@base-ui/utils/formatErrorMessage";
2
4
  import * as React from 'react';
3
5
  export const ComboboxRootContext = /*#__PURE__*/React.createContext(undefined);
@@ -3,7 +3,7 @@ export interface UseFilterOptions extends Intl.CollatorOptions {
3
3
  * The locale to use for string comparison.
4
4
  * Defaults to the user's runtime locale.
5
5
  */
6
- locale?: Intl.LocalesArgument;
6
+ locale?: Intl.LocalesArgument | undefined;
7
7
  }
8
8
  export interface Filter {
9
9
  contains: <Item>(item: Item, query: string, itemToString?: (item: Item) => string) => boolean;
@@ -20,7 +20,7 @@ export interface UseComboboxFilterOptions extends UseFilterOptions {
20
20
  * Whether the combobox is in multiple selection mode.
21
21
  * @default false
22
22
  */
23
- multiple?: boolean;
23
+ multiple?: boolean | undefined;
24
24
  /**
25
25
  * The current value of the combobox.
26
26
  */
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Returns the internally filtered items.
3
+ */
4
+ export declare function useFilteredItems<T>(): T[];