@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
@@ -1,13 +1,13 @@
1
1
  import * as React from 'react';
2
2
  import { FloatingTreeStore } from "../components/FloatingTreeStore.js";
3
- import type { Dimensions, ElementProps, FloatingContext, FloatingRootContext } from "../types.js";
3
+ import type { ElementProps, FloatingContext, FloatingRootContext } from "../types.js";
4
4
  export declare const ESCAPE = "Escape";
5
5
  export interface UseListNavigationProps {
6
6
  /**
7
7
  * A ref that holds an array of list items.
8
8
  * @default empty list
9
9
  */
10
- listRef: React.MutableRefObject<Array<HTMLElement | null>>;
10
+ listRef: React.RefObject<Array<HTMLElement | null>>;
11
11
  /**
12
12
  * The index of the currently active (focused or highlighted) item, which may
13
13
  * or may not be selected.
@@ -18,36 +18,36 @@ export interface UseListNavigationProps {
18
18
  * A callback that is called when the user navigates to a new active item,
19
19
  * passed in a new `activeIndex`.
20
20
  */
21
- onNavigate?: (activeIndex: number | null, event: React.SyntheticEvent | undefined) => void;
21
+ onNavigate?: ((activeIndex: number | null, event: React.SyntheticEvent | undefined) => void) | undefined;
22
22
  /**
23
23
  * Whether the Hook is enabled, including all internal Effects and event
24
24
  * handlers.
25
25
  * @default true
26
26
  */
27
- enabled?: boolean;
27
+ enabled?: boolean | undefined;
28
28
  /**
29
29
  * The currently selected item index, which may or may not be active.
30
30
  * @default null
31
31
  */
32
- selectedIndex?: number | null;
32
+ selectedIndex?: (number | null) | undefined;
33
33
  /**
34
34
  * Whether to focus the item upon opening the floating element. 'auto' infers
35
35
  * what to do based on the input type (keyboard vs. pointer), while a boolean
36
36
  * value will force the value.
37
37
  * @default 'auto'
38
38
  */
39
- focusItemOnOpen?: boolean | 'auto';
39
+ focusItemOnOpen?: (boolean | 'auto') | undefined;
40
40
  /**
41
41
  * Whether hovering an item synchronizes the focus.
42
42
  * @default true
43
43
  */
44
- focusItemOnHover?: boolean;
44
+ focusItemOnHover?: boolean | undefined;
45
45
  /**
46
46
  * Whether pressing an arrow key on the navigation’s main axis opens the
47
47
  * floating element.
48
48
  * @default true
49
49
  */
50
- openOnArrowKeyDown?: boolean;
50
+ openOnArrowKeyDown?: boolean | undefined;
51
51
  /**
52
52
  * By default elements with either a `disabled` or `aria-disabled` attribute
53
53
  * are skipped in the list navigation — however, this requires the items to
@@ -58,7 +58,7 @@ export interface UseListNavigationProps {
58
58
  * navigating via arrow keys, specify an empty array.
59
59
  * @default undefined
60
60
  */
61
- disabledIndices?: ReadonlyArray<number> | ((index: number) => boolean);
61
+ disabledIndices?: (ReadonlyArray<number> | ((index: number) => boolean)) | undefined;
62
62
  /**
63
63
  * Determines whether focus can escape the list, such that nothing is selected
64
64
  * after navigating beyond the boundary of the list. In some
@@ -67,32 +67,32 @@ export interface UseListNavigationProps {
67
67
  * `loopFocus` must be `true`.
68
68
  * @default false
69
69
  */
70
- allowEscape?: boolean;
70
+ allowEscape?: boolean | undefined;
71
71
  /**
72
72
  * Determines whether focus should loop around when navigating past the first
73
73
  * or last item.
74
74
  * @default false
75
75
  */
76
- loopFocus?: boolean;
76
+ loopFocus?: boolean | undefined;
77
77
  /**
78
78
  * If the list is nested within another one (e.g. a nested submenu), the
79
79
  * navigation semantics change.
80
80
  * @default false
81
81
  */
82
- nested?: boolean;
82
+ nested?: boolean | undefined;
83
83
  /**
84
84
  * Allows to specify the orientation of the parent list, which is used to
85
85
  * determine the direction of the navigation.
86
86
  * This is useful when list navigation is used within a Composite,
87
87
  * as the hook can't determine the orientation of the parent list automatically.
88
88
  */
89
- parentOrientation?: UseListNavigationProps['orientation'];
89
+ parentOrientation?: UseListNavigationProps['orientation'] | undefined;
90
90
  /**
91
91
  * Whether the direction of the floating element’s navigation is in RTL
92
92
  * layout.
93
93
  * @default false
94
94
  */
95
- rtl?: boolean;
95
+ rtl?: boolean | undefined;
96
96
  /**
97
97
  * Whether the focus is virtual (using `aria-activedescendant`).
98
98
  * Use this if you need focus to remain on the reference element
@@ -103,12 +103,12 @@ export interface UseListNavigationProps {
103
103
  * generated automatically.
104
104
  * @default false
105
105
  */
106
- virtual?: boolean;
106
+ virtual?: boolean | undefined;
107
107
  /**
108
108
  * The orientation in which navigation occurs.
109
109
  * @default 'vertical'
110
110
  */
111
- orientation?: 'vertical' | 'horizontal' | 'both';
111
+ orientation?: ('vertical' | 'horizontal' | 'both') | undefined;
112
112
  /**
113
113
  * Specifies how many columns the list has (i.e., it’s a grid). Use an
114
114
  * orientation of 'horizontal' (e.g. for an emoji picker/date picker, where
@@ -117,23 +117,7 @@ export interface UseListNavigationProps {
117
117
  * and ArrowDown).
118
118
  * @default 1
119
119
  */
120
- cols?: number;
121
- /**
122
- * Whether to scroll the active item into view when navigating. The default
123
- * value uses nearest options.
124
- */
125
- scrollItemIntoView?: boolean | ScrollIntoViewOptions;
126
- /**
127
- * Only for `cols > 1`, specify sizes for grid items.
128
- * `{ width: 2, height: 2 }` means an item is 2 columns wide and 2 rows tall.
129
- */
130
- itemSizes?: Dimensions[];
131
- /**
132
- * Only relevant for `cols > 1` and items with different sizes, specify if
133
- * the grid is dense (as defined in the CSS spec for `grid-auto-flow`).
134
- * @default false
135
- */
136
- dense?: boolean;
120
+ cols?: number | undefined;
137
121
  /**
138
122
  * The id of the root component.
139
123
  */
@@ -142,11 +126,11 @@ export interface UseListNavigationProps {
142
126
  * Whether to clear the active index when the pointer leaves an item.
143
127
  * @default true
144
128
  */
145
- resetOnPointerLeave?: boolean;
129
+ resetOnPointerLeave?: boolean | undefined;
146
130
  /**
147
131
  * External FlatingTree to use when the one provided by context can't be used.
148
132
  */
149
- externalTree?: FloatingTreeStore;
133
+ externalTree?: FloatingTreeStore | undefined;
150
134
  }
151
135
  /**
152
136
  * Adds arrow key-based navigation of a list of items, either using real DOM
@@ -1,9 +1,12 @@
1
+ 'use client';
2
+
1
3
  import * as React from 'react';
2
4
  import { isHTMLElement } from '@floating-ui/utils/dom';
3
5
  import { useValueAsRef } from '@base-ui/utils/useValueAsRef';
4
6
  import { useStableCallback } from '@base-ui/utils/useStableCallback';
5
7
  import { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';
6
- import { activeElement, contains, getDocument, getTarget, isTypeableCombobox, isVirtualClick, isVirtualPointerEvent, stopEvent, getFloatingFocusElement, isIndexOutOfListBounds, getMinListIndex, getMaxListIndex, getGridNavigatedIndex, isListIndexDisabled, createGridCellMap, getGridCellIndices, getGridCellIndexOfCorner, findNonDisabledListIndex } from "../utils.js";
8
+ import { ownerDocument } from '@base-ui/utils/owner';
9
+ import { activeElement, contains, getTarget, isTypeableCombobox, isVirtualClick, isVirtualPointerEvent, stopEvent, getFloatingFocusElement, isIndexOutOfListBounds, getMinListIndex, getMaxListIndex, getGridNavigatedIndex, isListIndexDisabled, createGridCellMap, getGridCellIndices, getGridCellIndexOfCorner, findNonDisabledListIndex } from "../utils.js";
7
10
  import { useFloatingParentNodeId, useFloatingTree } from "../components/FloatingTree.js";
8
11
  import { createChangeEventDetails } from "../../utils/createBaseUIEventDetails.js";
9
12
  import { REASONS } from "../../utils/reasons.js";
@@ -72,9 +75,6 @@ export function useListNavigation(context, props) {
72
75
  orientation = 'vertical',
73
76
  parentOrientation,
74
77
  cols = 1,
75
- scrollItemIntoView = true,
76
- itemSizes,
77
- dense = false,
78
78
  id,
79
79
  resetOnPointerLeave = true,
80
80
  externalTree
@@ -114,7 +114,6 @@ export function useListNavigation(context, props) {
114
114
  const forceScrollIntoViewRef = React.useRef(false);
115
115
  const disabledIndicesRef = useValueAsRef(disabledIndices);
116
116
  const latestOpenRef = useValueAsRef(open);
117
- const scrollItemIntoViewRef = useValueAsRef(scrollItemIntoView);
118
117
  const selectedIndexRef = useValueAsRef(selectedIndex);
119
118
  const resetOnPointerLeaveRef = useValueAsRef(resetOnPointerLeave);
120
119
  const focusItem = useStableCallback(() => {
@@ -142,17 +141,16 @@ export function useListNavigation(context, props) {
142
141
  if (!initialItem) {
143
142
  runFocus(waitedItem);
144
143
  }
145
- const scrollIntoViewOptions = scrollItemIntoViewRef.current;
146
- const shouldScrollIntoView = scrollIntoViewOptions &&
144
+ const shouldScrollIntoView =
147
145
  // eslint-disable-next-line @typescript-eslint/no-use-before-define
148
146
  item && (forceScrollIntoView || !isPointerModalityRef.current);
149
147
  if (shouldScrollIntoView) {
150
148
  // JSDOM doesn't support `.scrollIntoView()` but it's widely supported
151
149
  // by all browsers.
152
- waitedItem.scrollIntoView?.(typeof scrollIntoViewOptions === 'boolean' ? {
150
+ waitedItem.scrollIntoView?.({
153
151
  block: 'nearest',
154
152
  inline: 'nearest'
155
- } : scrollIntoViewOptions);
153
+ });
156
154
  }
157
155
  });
158
156
  });
@@ -242,7 +240,7 @@ export function useListNavigation(context, props) {
242
240
  }
243
241
  const nodes = tree.nodesRef.current;
244
242
  const parent = nodes.find(node => node.id === parentId)?.context?.elements.floating;
245
- const activeEl = activeElement(getDocument(floatingElement));
243
+ const activeEl = activeElement(ownerDocument(floatingElement));
246
244
  const treeContainsActiveEl = nodes.some(node => node.context && contains(node.context.elements.floating, activeEl));
247
245
  if (parent && !treeContainsActiveEl && isPointerModalityRef.current) {
248
246
  parent.focus({
@@ -303,6 +301,9 @@ export function useListNavigation(context, props) {
303
301
  if (!resetOnPointerLeaveRef.current) {
304
302
  return;
305
303
  }
304
+ enqueueFocus(null, {
305
+ sync: true
306
+ });
306
307
  indexRef.current = -1;
307
308
  onNavigate(event);
308
309
  if (!virtual) {
@@ -369,7 +370,7 @@ export function useListNavigation(context, props) {
369
370
 
370
371
  // Grid navigation.
371
372
  if (cols > 1) {
372
- const sizes = itemSizes || Array.from({
373
+ const sizes = Array.from({
373
374
  length: listRef.current.length
374
375
  }, () => ({
375
376
  width: 1,
@@ -377,7 +378,7 @@ export function useListNavigation(context, props) {
377
378
  }));
378
379
  // To calculate movements on the grid, we use hypothetical cell indices
379
380
  // as if every item was 1x1, then convert back to real indices.
380
- const cellMap = createGridCellMap(sizes, cols, dense);
381
+ const cellMap = createGridCellMap(sizes, cols, false);
381
382
  const minGridIndex = cellMap.findIndex(index => index != null && !isListIndexDisabled(listRef, index, disabledIndices));
382
383
  // last enabled index
383
384
  const maxGridIndex = cellMap.reduce((foundIndex, index, cellIndex) => index != null && !isListIndexDisabled(listRef, index, disabledIndices) ? cellIndex : foundIndex, -1);
@@ -2,17 +2,11 @@ import type { ElementProps, FloatingContext, FloatingRootContext } from "../type
2
2
  type AriaRole = 'tooltip' | 'dialog' | 'alertdialog' | 'menu' | 'listbox' | 'grid' | 'tree';
3
3
  type ComponentRole = 'select' | 'label' | 'combobox';
4
4
  export interface UseRoleProps {
5
- /**
6
- * Whether the Hook is enabled, including all internal Effects and event
7
- * handlers.
8
- * @default true
9
- */
10
- enabled?: boolean;
11
5
  /**
12
6
  * The role of the floating element.
13
7
  * @default 'dialog'
14
8
  */
15
- role?: AriaRole | ComponentRole;
9
+ role?: (AriaRole | ComponentRole) | undefined;
16
10
  }
17
11
  /**
18
12
  * Adds base screen reader props to the reference and floating elements for a
@@ -17,7 +17,6 @@ export function useRole(context, props = {}) {
17
17
  const domReference = store.useState('domReferenceElement');
18
18
  const floatingElement = store.useState('floatingElement');
19
19
  const {
20
- enabled = true,
21
20
  role = 'dialog'
22
21
  } = props;
23
22
  const defaultReferenceId = useId();
@@ -105,10 +104,10 @@ export function useRole(context, props = {}) {
105
104
  }
106
105
  return {};
107
106
  }, [floatingId, role]);
108
- return React.useMemo(() => enabled ? {
107
+ return React.useMemo(() => ({
109
108
  reference,
110
109
  floating,
111
110
  item,
112
111
  trigger
113
- } : {}, [enabled, reference, floating, trigger, item]);
112
+ }), [reference, floating, trigger, item]);
114
113
  }
@@ -7,11 +7,11 @@ export interface UseSyncedFloatingRootContextOptions<State extends PopupStoreSta
7
7
  /**
8
8
  * Whether to prevent the auto-emitted `openchange` event.
9
9
  */
10
- noEmit?: boolean;
10
+ noEmit?: boolean | undefined;
11
11
  /**
12
12
  * Whether the Popup element is passed to Floating UI as the floating element instead of the default Positioner.
13
13
  */
14
- treatPopupAsFloatingElement?: boolean;
14
+ treatPopupAsFloatingElement?: boolean | undefined;
15
15
  onOpenChange(open: boolean, eventDetails: BaseUIChangeEventDetails<string>): void;
16
16
  }
17
17
  /**
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import { useId } from '@base-ui/utils/useId';
2
4
  import { useRefWithInit } from '@base-ui/utils/useRefWithInit';
3
5
  import { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';
@@ -6,7 +6,7 @@ export interface UseTypeaheadProps {
6
6
  * elements of the list.
7
7
  * @default empty list
8
8
  */
9
- listRef: React.MutableRefObject<Array<string | null>>;
9
+ listRef: React.RefObject<Array<string | null>>;
10
10
  /**
11
11
  * The index of the active (focused or highlighted) item in the list.
12
12
  * @default null
@@ -15,37 +15,27 @@ export interface UseTypeaheadProps {
15
15
  /**
16
16
  * Callback invoked with the matching index if found as the user types.
17
17
  */
18
- onMatch?: (index: number) => void;
18
+ onMatch?: ((index: number) => void) | undefined;
19
19
  /**
20
20
  * Callback invoked with the typing state as the user types.
21
21
  */
22
- onTypingChange?: (isTyping: boolean) => void;
22
+ onTypingChange?: ((isTyping: boolean) => void) | undefined;
23
23
  /**
24
24
  * Whether the Hook is enabled, including all internal Effects and event
25
25
  * handlers.
26
26
  * @default true
27
27
  */
28
- enabled?: boolean;
29
- /**
30
- * A function that returns the matching string from the list.
31
- * @default lowercase-finder
32
- */
33
- findMatch?: null | ((list: Array<string | null>, typedString: string) => string | null | undefined);
28
+ enabled?: boolean | undefined;
34
29
  /**
35
30
  * The number of milliseconds to wait before resetting the typed string.
36
31
  * @default 750
37
32
  */
38
- resetMs?: number;
39
- /**
40
- * An array of keys to ignore when typing.
41
- * @default []
42
- */
43
- ignoreKeys?: Array<string>;
33
+ resetMs?: number | undefined;
44
34
  /**
45
35
  * The index of the selected item in the list, if available.
46
36
  * @default null
47
37
  */
48
- selectedIndex?: number | null;
38
+ selectedIndex?: (number | null) | undefined;
49
39
  }
50
40
  /**
51
41
  * Provides a matching callback that can be used to focus an item as the user
@@ -1,9 +1,10 @@
1
+ 'use client';
2
+
1
3
  import * as React from 'react';
2
4
  import { useStableCallback } from '@base-ui/utils/useStableCallback';
3
5
  import { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';
4
6
  import { useTimeout } from '@base-ui/utils/useTimeout';
5
- import { stopEvent } from "../utils.js";
6
- import { EMPTY_ARRAY } from "../../utils/constants.js";
7
+ import { contains, stopEvent } from "../utils.js";
7
8
  /**
8
9
  * Provides a matching callback that can be used to focus an item as the user
9
10
  * types, often used in tandem with `useListNavigation()`.
@@ -11,17 +12,15 @@ import { EMPTY_ARRAY } from "../../utils/constants.js";
11
12
  */
12
13
  export function useTypeahead(context, props) {
13
14
  const store = 'rootStore' in context ? context.rootStore : context;
14
- const open = store.useState('open');
15
15
  const dataRef = store.context.dataRef;
16
+ const open = store.useState('open');
16
17
  const {
17
18
  listRef,
18
19
  activeIndex,
19
20
  onMatch: onMatchProp,
20
21
  onTypingChange,
21
22
  enabled = true,
22
- findMatch = null,
23
23
  resetMs = 750,
24
- ignoreKeys = EMPTY_ARRAY,
25
24
  selectedIndex = null
26
25
  } = props;
27
26
  const timeout = useTimeout();
@@ -29,12 +28,15 @@ export function useTypeahead(context, props) {
29
28
  const prevIndexRef = React.useRef(selectedIndex ?? activeIndex ?? -1);
30
29
  const matchIndexRef = React.useRef(null);
31
30
  useIsoLayoutEffect(() => {
32
- if (open) {
33
- timeout.clear();
34
- matchIndexRef.current = null;
31
+ if (!open && selectedIndex !== null) {
32
+ return;
33
+ }
34
+ timeout.clear();
35
+ matchIndexRef.current = null;
36
+ if (stringRef.current !== '') {
35
37
  stringRef.current = '';
36
38
  }
37
- }, [open, timeout]);
39
+ }, [open, selectedIndex, timeout]);
38
40
  useIsoLayoutEffect(() => {
39
41
  // Sync arrow key navigation but not typeahead navigation.
40
42
  if (open && stringRef.current === '') {
@@ -54,7 +56,7 @@ export function useTypeahead(context, props) {
54
56
  });
55
57
  const onKeyDown = useStableCallback(event => {
56
58
  function getMatchingIndex(list, orderedList, string) {
57
- const str = findMatch ? findMatch(orderedList, string) : orderedList.find(text => text?.toLocaleLowerCase().indexOf(string.toLocaleLowerCase()) === 0);
59
+ const str = orderedList.find(text => text?.toLocaleLowerCase().indexOf(string.toLocaleLowerCase()) === 0);
58
60
  return str ? list.indexOf(str) : -1;
59
61
  }
60
62
  const listContent = listRef.current;
@@ -65,7 +67,7 @@ export function useTypeahead(context, props) {
65
67
  stopEvent(event);
66
68
  }
67
69
  }
68
- if (listContent == null || ignoreKeys.includes(event.key) ||
70
+ if (listContent == null ||
69
71
  // Character key.
70
72
  event.key.length !== 1 ||
71
73
  // Modifier key.
@@ -77,6 +79,12 @@ export function useTypeahead(context, props) {
77
79
  setTypingChange(true);
78
80
  }
79
81
 
82
+ // Capture whether this is a new typing session before mutating the string.
83
+ const isNewSession = stringRef.current === '';
84
+ if (isNewSession) {
85
+ prevIndexRef.current = selectedIndex ?? activeIndex ?? -1;
86
+ }
87
+
80
88
  // Bail out if the list contains a word like "llama" or "aaron". TODO:
81
89
  // allow it in this case, too.
82
90
  const allowRapidSuccessionOfFirstLetter = listContent.every(text => text ? text[0]?.toLocaleLowerCase() !== text[1]?.toLocaleLowerCase() : true);
@@ -93,7 +101,11 @@ export function useTypeahead(context, props) {
93
101
  prevIndexRef.current = matchIndexRef.current;
94
102
  setTypingChange(false);
95
103
  });
96
- const prevIndex = prevIndexRef.current;
104
+
105
+ // Compute the starting index for this search.
106
+ // If this is a new typing session (string is empty), base it on the current
107
+ // selection/active item; otherwise continue from the last matched index.
108
+ const prevIndex = isNewSession ? selectedIndex ?? activeIndex ?? -1 : prevIndexRef.current;
97
109
  const index = getMatchingIndex(listContent, [...listContent.slice((prevIndex || 0) + 1), ...listContent.slice(0, (prevIndex || 0) + 1)], stringRef.current);
98
110
  if (index !== -1) {
99
111
  onMatchProp?.(index);
@@ -103,9 +115,28 @@ export function useTypeahead(context, props) {
103
115
  setTypingChange(false);
104
116
  }
105
117
  });
118
+ const onBlur = useStableCallback(event => {
119
+ const next = event.relatedTarget;
120
+ const currentDomReferenceElement = store.select('domReferenceElement');
121
+ const currentFloatingElement = store.select('floatingElement');
122
+ const withinReference = contains(currentDomReferenceElement, next);
123
+ const withinFloating = contains(currentFloatingElement, next);
124
+
125
+ // Keep the session if focus moves within the composite (reference <-> floating).
126
+ if (withinReference || withinFloating) {
127
+ return;
128
+ }
129
+
130
+ // End the current typing session when focus leaves the composite entirely.
131
+ timeout.clear();
132
+ stringRef.current = '';
133
+ prevIndexRef.current = matchIndexRef.current;
134
+ setTypingChange(false);
135
+ });
106
136
  const reference = React.useMemo(() => ({
107
- onKeyDown
108
- }), [onKeyDown]);
137
+ onKeyDown,
138
+ onBlur
139
+ }), [onKeyDown, onBlur]);
109
140
  const floating = React.useMemo(() => {
110
141
  return {
111
142
  onKeyDown,
@@ -113,9 +144,10 @@ export function useTypeahead(context, props) {
113
144
  if (event.key === ' ') {
114
145
  setTypingChange(false);
115
146
  }
116
- }
147
+ },
148
+ onBlur
117
149
  };
118
- }, [onKeyDown, setTypingChange]);
150
+ }, [onKeyDown, onBlur, setTypingChange]);
119
151
  return React.useMemo(() => enabled ? {
120
152
  reference,
121
153
  floating
@@ -10,7 +10,7 @@ export interface ArrowOptions {
10
10
  * Useful when the floating element has rounded corners.
11
11
  * @default 0
12
12
  */
13
- padding?: Padding;
13
+ padding?: Padding | undefined;
14
14
  /**
15
15
  * Which element to use as the offset parent.
16
16
  * @default 'real'
@@ -1,8 +1,8 @@
1
1
  import type { HandleClose } from "./hooks/useHover.js";
2
2
  export interface SafePolygonOptions {
3
- buffer?: number;
4
- blockPointerEvents?: boolean;
5
- requireIntent?: boolean;
3
+ buffer?: number | undefined;
4
+ blockPointerEvents?: boolean | undefined;
5
+ requireIntent?: boolean | undefined;
6
6
  }
7
7
  /**
8
8
  * Generates a safe polygon area that the user can traverse without closing the
@@ -48,10 +48,10 @@ export interface FloatingEvents {
48
48
  off(event: string, handler: (data: any) => void): void;
49
49
  }
50
50
  export interface ContextData {
51
- openEvent?: Event;
52
- floatingContext?: FloatingContext;
51
+ openEvent?: Event | undefined;
52
+ floatingContext?: FloatingContext | undefined;
53
53
  /** @deprecated use `onTypingChange` prop in `useTypeahead` */
54
- typing?: boolean;
54
+ typing?: boolean | undefined;
55
55
  [key: string]: any;
56
56
  }
57
57
  export type FloatingRootContext = FloatingRootStore;
@@ -69,14 +69,14 @@ export type FloatingContext = Omit<UsePositionFloatingReturn<ReferenceType>, 're
69
69
  export interface FloatingNodeType {
70
70
  id: string | undefined;
71
71
  parentId: string | null;
72
- context?: FloatingContext;
72
+ context?: FloatingContext | undefined;
73
73
  }
74
74
  export type FloatingTreeType = FloatingTreeStore;
75
75
  export interface ElementProps {
76
- reference?: React.HTMLProps<Element>;
77
- floating?: React.HTMLProps<HTMLElement>;
78
- item?: React.HTMLProps<HTMLElement> | ((props: ExtendedUserProps) => React.HTMLProps<HTMLElement>);
79
- trigger?: React.HTMLProps<Element>;
76
+ reference?: React.HTMLProps<Element> | undefined;
77
+ floating?: React.HTMLProps<HTMLElement> | undefined;
78
+ item?: (React.HTMLProps<HTMLElement> | ((props: ExtendedUserProps) => React.HTMLProps<HTMLElement>)) | undefined;
79
+ trigger?: React.HTMLProps<Element> | undefined;
80
80
  }
81
81
  export type ReferenceType = Element | VirtualElement;
82
82
  export type UseFloatingData = Prettify<UseFloatingReturn>;
@@ -92,7 +92,7 @@ export type UseFloatingReturn = Prettify<UsePositionFloatingReturn & {
92
92
  elements: ExtendedElements;
93
93
  }>;
94
94
  export interface UseFloatingOptions extends Omit<UsePositionOptions, 'elements'> {
95
- rootContext?: FloatingRootContext;
95
+ rootContext?: FloatingRootContext | undefined;
96
96
  /**
97
97
  * Object of external elements as an alternative to the `refs` object setters.
98
98
  */
@@ -100,12 +100,12 @@ export interface UseFloatingOptions extends Omit<UsePositionOptions, 'elements'>
100
100
  /**
101
101
  * Externally passed reference element. Store in state.
102
102
  */
103
- reference?: ReferenceType | null;
103
+ reference?: (ReferenceType | null) | undefined;
104
104
  /**
105
105
  * Externally passed floating element. Store in state.
106
106
  */
107
- floating?: HTMLElement | null;
108
- };
107
+ floating?: (HTMLElement | null) | undefined;
108
+ } | undefined;
109
109
  /**
110
110
  * An event callback that is invoked when the floating element is opened or
111
111
  * closed.
@@ -114,9 +114,9 @@ export interface UseFloatingOptions extends Omit<UsePositionOptions, 'elements'>
114
114
  /**
115
115
  * Unique node id when using `FloatingTree`.
116
116
  */
117
- nodeId?: string;
117
+ nodeId?: string | undefined;
118
118
  /**
119
119
  * External FlatingTree to use when the one provided by context can't be used.
120
120
  */
121
- externalTree?: FloatingTreeStore;
121
+ externalTree?: FloatingTreeStore | undefined;
122
122
  }
@@ -10,10 +10,10 @@ export declare function findNonDisabledListIndex(listRef: React.RefObject<Readon
10
10
  disabledIndices,
11
11
  amount
12
12
  }?: {
13
- startingIndex?: number;
14
- decrement?: boolean;
15
- disabledIndices?: DisabledIndices;
16
- amount?: number;
13
+ startingIndex?: number | undefined;
14
+ decrement?: boolean | undefined;
15
+ disabledIndices?: DisabledIndices | undefined;
16
+ amount?: number | undefined;
17
17
  }): number;
18
18
  export declare function getGridNavigatedIndex(listRef: React.RefObject<Array<HTMLElement | null>>, {
19
19
  event,
@@ -36,7 +36,7 @@ export declare function getGridNavigatedIndex(listRef: React.RefObject<Array<HTM
36
36
  minIndex: number;
37
37
  maxIndex: number;
38
38
  prevIndex: number;
39
- stopEvent?: boolean;
39
+ stopEvent?: boolean | undefined;
40
40
  }): number;
41
41
  /** For each cell index, gets the item index that occupies that cell */
42
42
  export declare function createGridCellMap(sizes: Dimensions[], cols: number, dense: boolean): (number | undefined)[];
@@ -1,4 +1,3 @@
1
- import _formatErrorMessage from "@base-ui/utils/formatErrorMessage";
2
1
  import { floor } from '@floating-ui/utils';
3
2
  import { stopEvent } from "./event.js";
4
3
  import { ARROW_DOWN, ARROW_LEFT, ARROW_RIGHT, ARROW_UP } from "./constants.js";
@@ -274,7 +273,7 @@ export function createGridCellMap(sizes, cols, dense) {
274
273
  }, index) => {
275
274
  if (width > cols) {
276
275
  if (process.env.NODE_ENV !== 'production') {
277
- throw new Error(process.env.NODE_ENV !== "production" ? `[Floating UI]: Invalid grid - item width at index ${index} is greater than grid columns` : _formatErrorMessage(29, index));
276
+ throw new Error(`[Floating UI]: Invalid grid - item width at index ${index} is greater than grid columns`);
278
277
  }
279
278
  }
280
279
  let itemPlaced = false;
@@ -1,9 +1,10 @@
1
+ import { type PopupTriggerMap } from "../../utils/popups/index.js";
1
2
  export declare function activeElement(doc: Document): Element | null;
2
3
  export declare function contains(parent?: Element | null, child?: Element | null): boolean;
4
+ export declare function isTargetInsideEnabledTrigger(target: EventTarget | null, triggerElements: PopupTriggerMap): boolean;
3
5
  export declare function getTarget(event: Event): EventTarget | null;
4
6
  export declare function isEventTargetWithin(event: Event, node: Node | null | undefined): boolean;
5
7
  export declare function isRootElement(element: Element): boolean;
6
- export declare function getDocument(node: Element | null): Document;
7
8
  export declare function isTypeableElement(element: unknown): boolean;
8
9
  export declare function isTypeableCombobox(element: Element | null): boolean;
9
10
  export declare function matchesFocusVisible(element: Element | null): boolean;