@base-ui/react 1.2.0 → 1.3.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 (938) hide show
  1. package/CHANGELOG.md +148 -1
  2. package/accordion/header/AccordionHeader.d.ts +4 -2
  3. package/accordion/item/AccordionItem.d.ts +10 -4
  4. package/accordion/item/AccordionItemContext.d.ts +2 -2
  5. package/accordion/item/stateAttributesMapping.d.ts +2 -2
  6. package/accordion/panel/AccordionPanel.d.ts +6 -3
  7. package/accordion/root/AccordionRoot.d.ts +19 -10
  8. package/accordion/root/AccordionRootContext.d.ts +7 -7
  9. package/accordion/trigger/AccordionTrigger.d.ts +4 -2
  10. package/accordion/trigger/AccordionTrigger.js +3 -1
  11. package/alert-dialog/root/AlertDialogRoot.d.ts +2 -0
  12. package/autocomplete/index.d.ts +1 -0
  13. package/autocomplete/index.parts.d.ts +1 -0
  14. package/autocomplete/index.parts.js +7 -0
  15. package/autocomplete/root/AutocompleteRoot.d.ts +4 -4
  16. package/autocomplete/root/AutocompleteRoot.js +4 -1
  17. package/avatar/fallback/AvatarFallback.d.ts +3 -6
  18. package/avatar/fallback/AvatarFallback.js +4 -32
  19. package/avatar/image/AvatarImage.d.ts +6 -3
  20. package/avatar/image/AvatarImage.js +2 -3
  21. package/avatar/image/AvatarImageDataAttributes.d.ts +10 -0
  22. package/avatar/image/AvatarImageDataAttributes.js +18 -0
  23. package/avatar/root/AvatarRoot.d.ts +4 -1
  24. package/checkbox/indicator/CheckboxIndicator.d.ts +6 -3
  25. package/checkbox/root/CheckboxRoot.d.ts +3 -3
  26. package/checkbox/root/CheckboxRoot.js +4 -1
  27. package/checkbox/root/CheckboxRootContext.d.ts +4 -4
  28. package/checkbox/utils/useStateAttributesMapping.d.ts +2 -2
  29. package/checkbox-group/CheckboxGroup.d.ts +3 -3
  30. package/checkbox-group/CheckboxGroupContext.d.ts +2 -2
  31. package/checkbox-group/useCheckboxGroupParent.d.ts +2 -5
  32. package/collapsible/panel/CollapsiblePanel.d.ts +6 -3
  33. package/collapsible/panel/useCollapsiblePanel.d.ts +2 -5
  34. package/collapsible/root/CollapsibleRoot.d.ts +3 -3
  35. package/collapsible/root/CollapsibleRootContext.d.ts +4 -4
  36. package/collapsible/root/stateAttributesMapping.d.ts +2 -2
  37. package/collapsible/root/useCollapsibleRoot.d.ts +2 -5
  38. package/collapsible/trigger/CollapsibleTrigger.d.ts +4 -2
  39. package/combobox/arrow/ComboboxArrow.d.ts +10 -1
  40. package/combobox/backdrop/ComboboxBackdrop.d.ts +4 -1
  41. package/combobox/chip/ComboboxChip.d.ts +1 -1
  42. package/combobox/chip-remove/ComboboxChipRemove.d.ts +1 -1
  43. package/combobox/chips/ComboboxChips.d.ts +1 -1
  44. package/combobox/clear/ComboboxClear.d.ts +4 -1
  45. package/combobox/collection/ComboboxCollection.d.ts +2 -0
  46. package/combobox/empty/ComboboxEmpty.d.ts +1 -1
  47. package/combobox/group/ComboboxGroup.d.ts +1 -1
  48. package/combobox/group-label/ComboboxGroupLabel.d.ts +1 -1
  49. package/combobox/icon/ComboboxIcon.d.ts +1 -1
  50. package/combobox/index.d.ts +2 -0
  51. package/combobox/index.parts.d.ts +2 -0
  52. package/combobox/index.parts.js +14 -0
  53. package/combobox/input/ComboboxInput.d.ts +3 -3
  54. package/combobox/input/ComboboxInput.js +22 -5
  55. package/combobox/input-group/ComboboxInputGroup.d.ts +40 -0
  56. package/combobox/input-group/ComboboxInputGroup.js +68 -0
  57. package/combobox/input-group/ComboboxInputGroupDataAttributes.d.ts +55 -0
  58. package/combobox/input-group/ComboboxInputGroupDataAttributes.js +62 -0
  59. package/combobox/item/ComboboxItem.d.ts +1 -1
  60. package/combobox/item/ComboboxItem.js +2 -1
  61. package/combobox/item-indicator/ComboboxItemIndicator.d.ts +7 -1
  62. package/combobox/item-indicator/ComboboxItemIndicatorDataAttributes.d.ts +10 -0
  63. package/combobox/item-indicator/ComboboxItemIndicatorDataAttributes.js +18 -0
  64. package/combobox/label/ComboboxLabel.d.ts +16 -0
  65. package/combobox/label/ComboboxLabel.js +68 -0
  66. package/combobox/list/ComboboxList.d.ts +1 -1
  67. package/combobox/popup/ComboboxPopup.d.ts +21 -3
  68. package/combobox/popup/ComboboxPopup.js +10 -2
  69. package/combobox/portal/ComboboxPortal.d.ts +3 -4
  70. package/combobox/positioner/ComboboxPositioner.d.ts +14 -2
  71. package/combobox/positioner/ComboboxPositioner.js +3 -2
  72. package/combobox/root/AriaCombobox.d.ts +9 -8
  73. package/combobox/root/AriaCombobox.js +14 -6
  74. package/combobox/root/ComboboxRoot.d.ts +4 -4
  75. package/combobox/row/ComboboxRow.d.ts +1 -1
  76. package/combobox/status/ComboboxStatus.d.ts +1 -1
  77. package/combobox/store.d.ts +10 -4
  78. package/combobox/store.js +2 -0
  79. package/combobox/trigger/ComboboxTrigger.d.ts +3 -3
  80. package/combobox/trigger/ComboboxTrigger.js +5 -2
  81. package/combobox/utils/ComboboxInternalDismissButton.d.ts +5 -0
  82. package/combobox/utils/ComboboxInternalDismissButton.js +44 -0
  83. package/composite/item/CompositeItem.d.ts +3 -1
  84. package/composite/list/CompositeList.d.ts +3 -1
  85. package/composite/list/useCompositeListItem.d.ts +1 -1
  86. package/composite/root/CompositeRoot.d.ts +4 -2
  87. package/composite/root/useCompositeRoot.d.ts +1 -1
  88. package/context-menu/trigger/ContextMenuTrigger.d.ts +3 -3
  89. package/dialog/backdrop/DialogBackdrop.d.ts +4 -1
  90. package/dialog/close/DialogClose.d.ts +1 -1
  91. package/dialog/description/DialogDescription.d.ts +1 -1
  92. package/dialog/popup/DialogPopup.d.ts +6 -3
  93. package/dialog/portal/DialogPortal.d.ts +4 -5
  94. package/dialog/root/DialogRoot.d.ts +8 -3
  95. package/dialog/root/useDialogRoot.d.ts +3 -7
  96. package/dialog/root/useDialogRoot.js +2 -5
  97. package/dialog/title/DialogTitle.d.ts +1 -1
  98. package/dialog/trigger/DialogTrigger.d.ts +1 -1
  99. package/dialog/viewport/DialogViewport.d.ts +3 -0
  100. package/direction-provider/DirectionProvider.d.ts +2 -0
  101. package/drawer/backdrop/DrawerBackdrop.d.ts +4 -1
  102. package/drawer/backdrop/DrawerBackdropDataAttributes.d.ts +18 -0
  103. package/drawer/backdrop/DrawerBackdropDataAttributes.js +26 -0
  104. package/drawer/close/DrawerClose.d.ts +1 -1
  105. package/drawer/content/DrawerContent.d.ts +1 -1
  106. package/drawer/content/DrawerContent.js +2 -1
  107. package/drawer/content/DrawerContentDataAttributes.d.ts +1 -0
  108. package/drawer/content/DrawerContentDataAttributes.js +7 -0
  109. package/drawer/description/DrawerDescription.d.ts +1 -1
  110. package/drawer/indent/DrawerIndent.d.ts +3 -2
  111. package/drawer/indent/DrawerIndent.js +2 -1
  112. package/drawer/indent-background/DrawerIndentBackground.d.ts +5 -3
  113. package/drawer/indent-background/DrawerIndentBackground.js +4 -2
  114. package/drawer/index.d.ts +2 -1
  115. package/drawer/index.js +3 -3
  116. package/drawer/index.parts.d.ts +1 -0
  117. package/drawer/index.parts.js +7 -0
  118. package/drawer/popup/DrawerPopup.d.ts +6 -3
  119. package/drawer/popup/DrawerPopup.js +59 -2
  120. package/drawer/popup/DrawerPopupDataAttributes.d.ts +16 -0
  121. package/drawer/popup/DrawerPopupDataAttributes.js +18 -1
  122. package/drawer/portal/DrawerPortal.d.ts +2 -2
  123. package/drawer/provider/DrawerProvider.d.ts +2 -2
  124. package/drawer/provider/DrawerProvider.js +2 -2
  125. package/drawer/root/DrawerRoot.d.ts +5 -3
  126. package/drawer/root/DrawerRoot.js +6 -2
  127. package/drawer/swipe-area/DrawerSwipeArea.d.ts +1 -1
  128. package/drawer/swipe-area/DrawerSwipeArea.js +12 -10
  129. package/drawer/swipe-area/DrawerSwipeAreaDataAttributes.d.ts +23 -0
  130. package/drawer/swipe-area/DrawerSwipeAreaDataAttributes.js +31 -0
  131. package/drawer/title/DrawerTitle.d.ts +1 -1
  132. package/drawer/trigger/DrawerTrigger.d.ts +1 -1
  133. package/drawer/viewport/DrawerViewport.d.ts +4 -1
  134. package/drawer/viewport/DrawerViewport.js +165 -43
  135. package/drawer/viewport/DrawerViewportDataAttributes.d.ts +22 -0
  136. package/drawer/viewport/DrawerViewportDataAttributes.js +30 -0
  137. package/esm/accordion/header/AccordionHeader.d.ts +4 -2
  138. package/esm/accordion/item/AccordionItem.d.ts +10 -4
  139. package/esm/accordion/item/AccordionItemContext.d.ts +2 -2
  140. package/esm/accordion/item/stateAttributesMapping.d.ts +2 -2
  141. package/esm/accordion/panel/AccordionPanel.d.ts +6 -3
  142. package/esm/accordion/root/AccordionRoot.d.ts +19 -10
  143. package/esm/accordion/root/AccordionRootContext.d.ts +7 -7
  144. package/esm/accordion/trigger/AccordionTrigger.d.ts +4 -2
  145. package/esm/accordion/trigger/AccordionTrigger.js +3 -1
  146. package/esm/alert-dialog/root/AlertDialogRoot.d.ts +2 -0
  147. package/esm/autocomplete/index.d.ts +1 -0
  148. package/esm/autocomplete/index.parts.d.ts +1 -0
  149. package/esm/autocomplete/index.parts.js +1 -0
  150. package/esm/autocomplete/root/AutocompleteRoot.d.ts +4 -4
  151. package/esm/autocomplete/root/AutocompleteRoot.js +4 -1
  152. package/esm/avatar/fallback/AvatarFallback.d.ts +3 -6
  153. package/esm/avatar/fallback/AvatarFallback.js +4 -31
  154. package/esm/avatar/image/AvatarImage.d.ts +6 -3
  155. package/esm/avatar/image/AvatarImage.js +2 -3
  156. package/esm/avatar/image/AvatarImageDataAttributes.d.ts +10 -0
  157. package/esm/avatar/image/AvatarImageDataAttributes.js +12 -0
  158. package/esm/avatar/root/AvatarRoot.d.ts +4 -1
  159. package/esm/checkbox/indicator/CheckboxIndicator.d.ts +6 -3
  160. package/esm/checkbox/root/CheckboxRoot.d.ts +3 -3
  161. package/esm/checkbox/root/CheckboxRoot.js +4 -1
  162. package/esm/checkbox/root/CheckboxRootContext.d.ts +4 -4
  163. package/esm/checkbox/utils/useStateAttributesMapping.d.ts +2 -2
  164. package/esm/checkbox-group/CheckboxGroup.d.ts +3 -3
  165. package/esm/checkbox-group/CheckboxGroupContext.d.ts +2 -2
  166. package/esm/checkbox-group/useCheckboxGroupParent.d.ts +2 -5
  167. package/esm/collapsible/panel/CollapsiblePanel.d.ts +6 -3
  168. package/esm/collapsible/panel/useCollapsiblePanel.d.ts +2 -5
  169. package/esm/collapsible/root/CollapsibleRoot.d.ts +3 -3
  170. package/esm/collapsible/root/CollapsibleRootContext.d.ts +4 -4
  171. package/esm/collapsible/root/stateAttributesMapping.d.ts +2 -2
  172. package/esm/collapsible/root/useCollapsibleRoot.d.ts +2 -5
  173. package/esm/collapsible/trigger/CollapsibleTrigger.d.ts +4 -2
  174. package/esm/combobox/arrow/ComboboxArrow.d.ts +10 -1
  175. package/esm/combobox/backdrop/ComboboxBackdrop.d.ts +4 -1
  176. package/esm/combobox/chip/ComboboxChip.d.ts +1 -1
  177. package/esm/combobox/chip-remove/ComboboxChipRemove.d.ts +1 -1
  178. package/esm/combobox/chips/ComboboxChips.d.ts +1 -1
  179. package/esm/combobox/clear/ComboboxClear.d.ts +4 -1
  180. package/esm/combobox/collection/ComboboxCollection.d.ts +2 -0
  181. package/esm/combobox/empty/ComboboxEmpty.d.ts +1 -1
  182. package/esm/combobox/group/ComboboxGroup.d.ts +1 -1
  183. package/esm/combobox/group-label/ComboboxGroupLabel.d.ts +1 -1
  184. package/esm/combobox/icon/ComboboxIcon.d.ts +1 -1
  185. package/esm/combobox/index.d.ts +2 -0
  186. package/esm/combobox/index.parts.d.ts +2 -0
  187. package/esm/combobox/index.parts.js +2 -0
  188. package/esm/combobox/input/ComboboxInput.d.ts +3 -3
  189. package/esm/combobox/input/ComboboxInput.js +22 -5
  190. package/esm/combobox/input-group/ComboboxInputGroup.d.ts +40 -0
  191. package/esm/combobox/input-group/ComboboxInputGroup.js +63 -0
  192. package/esm/combobox/input-group/ComboboxInputGroupDataAttributes.d.ts +55 -0
  193. package/esm/combobox/input-group/ComboboxInputGroupDataAttributes.js +56 -0
  194. package/esm/combobox/item/ComboboxItem.d.ts +1 -1
  195. package/esm/combobox/item/ComboboxItem.js +2 -1
  196. package/esm/combobox/item-indicator/ComboboxItemIndicator.d.ts +7 -1
  197. package/esm/combobox/item-indicator/ComboboxItemIndicatorDataAttributes.d.ts +10 -0
  198. package/esm/combobox/item-indicator/ComboboxItemIndicatorDataAttributes.js +12 -0
  199. package/esm/combobox/label/ComboboxLabel.d.ts +16 -0
  200. package/esm/combobox/label/ComboboxLabel.js +63 -0
  201. package/esm/combobox/list/ComboboxList.d.ts +1 -1
  202. package/esm/combobox/popup/ComboboxPopup.d.ts +21 -3
  203. package/esm/combobox/popup/ComboboxPopup.js +11 -3
  204. package/esm/combobox/portal/ComboboxPortal.d.ts +3 -4
  205. package/esm/combobox/positioner/ComboboxPositioner.d.ts +14 -2
  206. package/esm/combobox/positioner/ComboboxPositioner.js +3 -2
  207. package/esm/combobox/root/AriaCombobox.d.ts +9 -8
  208. package/esm/combobox/root/AriaCombobox.js +14 -6
  209. package/esm/combobox/root/ComboboxRoot.d.ts +4 -4
  210. package/esm/combobox/row/ComboboxRow.d.ts +1 -1
  211. package/esm/combobox/status/ComboboxStatus.d.ts +1 -1
  212. package/esm/combobox/store.d.ts +10 -4
  213. package/esm/combobox/store.js +2 -0
  214. package/esm/combobox/trigger/ComboboxTrigger.d.ts +3 -3
  215. package/esm/combobox/trigger/ComboboxTrigger.js +5 -2
  216. package/esm/combobox/utils/ComboboxInternalDismissButton.d.ts +5 -0
  217. package/esm/combobox/utils/ComboboxInternalDismissButton.js +38 -0
  218. package/esm/composite/item/CompositeItem.d.ts +3 -1
  219. package/esm/composite/list/CompositeList.d.ts +3 -1
  220. package/esm/composite/list/useCompositeListItem.d.ts +1 -1
  221. package/esm/composite/root/CompositeRoot.d.ts +4 -2
  222. package/esm/composite/root/useCompositeRoot.d.ts +1 -1
  223. package/esm/context-menu/trigger/ContextMenuTrigger.d.ts +3 -3
  224. package/esm/dialog/backdrop/DialogBackdrop.d.ts +4 -1
  225. package/esm/dialog/close/DialogClose.d.ts +1 -1
  226. package/esm/dialog/description/DialogDescription.d.ts +1 -1
  227. package/esm/dialog/popup/DialogPopup.d.ts +6 -3
  228. package/esm/dialog/portal/DialogPortal.d.ts +4 -5
  229. package/esm/dialog/root/DialogRoot.d.ts +8 -3
  230. package/esm/dialog/root/useDialogRoot.d.ts +3 -7
  231. package/esm/dialog/root/useDialogRoot.js +2 -5
  232. package/esm/dialog/title/DialogTitle.d.ts +1 -1
  233. package/esm/dialog/trigger/DialogTrigger.d.ts +1 -1
  234. package/esm/dialog/viewport/DialogViewport.d.ts +3 -0
  235. package/esm/direction-provider/DirectionProvider.d.ts +2 -0
  236. package/esm/drawer/backdrop/DrawerBackdrop.d.ts +4 -1
  237. package/esm/drawer/backdrop/DrawerBackdropDataAttributes.d.ts +18 -0
  238. package/esm/drawer/backdrop/DrawerBackdropDataAttributes.js +20 -0
  239. package/esm/drawer/close/DrawerClose.d.ts +1 -1
  240. package/esm/drawer/content/DrawerContent.d.ts +1 -1
  241. package/esm/drawer/content/DrawerContent.js +2 -1
  242. package/esm/drawer/content/DrawerContentDataAttributes.d.ts +1 -0
  243. package/esm/drawer/content/DrawerContentDataAttributes.js +1 -0
  244. package/esm/drawer/description/DrawerDescription.d.ts +1 -1
  245. package/esm/drawer/indent/DrawerIndent.d.ts +3 -2
  246. package/esm/drawer/indent/DrawerIndent.js +2 -1
  247. package/esm/drawer/indent-background/DrawerIndentBackground.d.ts +5 -3
  248. package/esm/drawer/indent-background/DrawerIndentBackground.js +4 -2
  249. package/esm/drawer/index.d.ts +2 -1
  250. package/esm/drawer/index.js +1 -1
  251. package/esm/drawer/index.parts.d.ts +1 -0
  252. package/esm/drawer/index.parts.js +1 -0
  253. package/esm/drawer/popup/DrawerPopup.d.ts +6 -3
  254. package/esm/drawer/popup/DrawerPopup.js +59 -2
  255. package/esm/drawer/popup/DrawerPopupDataAttributes.d.ts +16 -0
  256. package/esm/drawer/popup/DrawerPopupDataAttributes.js +18 -1
  257. package/esm/drawer/portal/DrawerPortal.d.ts +2 -2
  258. package/esm/drawer/provider/DrawerProvider.d.ts +2 -2
  259. package/esm/drawer/provider/DrawerProvider.js +2 -2
  260. package/esm/drawer/root/DrawerRoot.d.ts +5 -3
  261. package/esm/drawer/root/DrawerRoot.js +6 -2
  262. package/esm/drawer/swipe-area/DrawerSwipeArea.d.ts +1 -1
  263. package/esm/drawer/swipe-area/DrawerSwipeArea.js +12 -10
  264. package/esm/drawer/swipe-area/DrawerSwipeAreaDataAttributes.d.ts +23 -0
  265. package/esm/drawer/swipe-area/DrawerSwipeAreaDataAttributes.js +25 -0
  266. package/esm/drawer/title/DrawerTitle.d.ts +1 -1
  267. package/esm/drawer/trigger/DrawerTrigger.d.ts +1 -1
  268. package/esm/drawer/viewport/DrawerViewport.d.ts +4 -1
  269. package/esm/drawer/viewport/DrawerViewport.js +165 -43
  270. package/esm/drawer/viewport/DrawerViewportDataAttributes.d.ts +22 -0
  271. package/esm/drawer/viewport/DrawerViewportDataAttributes.js +24 -0
  272. package/esm/field/control/FieldControl.d.ts +3 -3
  273. package/esm/field/description/FieldDescription.d.ts +3 -3
  274. package/esm/field/error/FieldError.d.ts +7 -4
  275. package/esm/field/error/FieldErrorDataAttributes.d.ts +8 -0
  276. package/esm/field/error/FieldErrorDataAttributes.js +10 -1
  277. package/esm/field/item/FieldItem.d.ts +4 -3
  278. package/esm/field/item/FieldItem.js +2 -2
  279. package/esm/field/label/FieldLabel.d.ts +3 -3
  280. package/esm/field/label/FieldLabel.js +6 -51
  281. package/esm/field/root/FieldRoot.d.ts +19 -2
  282. package/esm/field/root/FieldRoot.js +2 -1
  283. package/esm/field/root/FieldRootContext.d.ts +2 -2
  284. package/esm/field/root/FieldRootContext.js +6 -13
  285. package/esm/field/root/useFieldValidation.js +5 -4
  286. package/esm/field/utils/constants.d.ts +3 -0
  287. package/esm/field/utils/constants.js +11 -0
  288. package/esm/field/validity/FieldValidity.d.ts +7 -1
  289. package/esm/fieldset/legend/FieldsetLegend.d.ts +1 -1
  290. package/esm/fieldset/root/FieldsetRoot.d.ts +1 -1
  291. package/esm/floating-ui-react/components/FloatingDelayGroup.js +1 -1
  292. package/esm/floating-ui-react/components/FloatingFocusManager.d.ts +12 -7
  293. package/esm/floating-ui-react/components/FloatingFocusManager.js +31 -27
  294. package/esm/floating-ui-react/components/FloatingPortal.d.ts +6 -4
  295. package/esm/floating-ui-react/hooks/useClick.d.ts +2 -2
  296. package/esm/floating-ui-react/hooks/useClientPoint.d.ts +1 -1
  297. package/esm/floating-ui-react/hooks/useDismiss.d.ts +8 -12
  298. package/esm/floating-ui-react/hooks/useDismiss.js +320 -261
  299. package/esm/floating-ui-react/hooks/useFloatingRootContext.d.ts +2 -2
  300. package/esm/floating-ui-react/hooks/useFocus.d.ts +1 -1
  301. package/esm/floating-ui-react/hooks/useHover.d.ts +6 -14
  302. package/esm/floating-ui-react/hooks/useHover.js +2 -27
  303. package/esm/floating-ui-react/hooks/useHoverFloatingInteraction.d.ts +2 -3
  304. package/esm/floating-ui-react/hooks/useHoverFloatingInteraction.js +55 -71
  305. package/esm/floating-ui-react/hooks/useHoverInteractionSharedState.d.ts +12 -3
  306. package/esm/floating-ui-react/hooks/useHoverInteractionSharedState.js +30 -3
  307. package/esm/floating-ui-react/hooks/useHoverReferenceInteraction.d.ts +8 -3
  308. package/esm/floating-ui-react/hooks/useHoverReferenceInteraction.js +59 -81
  309. package/esm/floating-ui-react/hooks/useHoverShared.d.ts +28 -0
  310. package/esm/floating-ui-react/hooks/useHoverShared.js +26 -0
  311. package/esm/floating-ui-react/hooks/useListNavigation.d.ts +4 -4
  312. package/esm/floating-ui-react/hooks/useListNavigation.js +7 -3
  313. package/esm/floating-ui-react/hooks/useRole.d.ts +1 -1
  314. package/esm/floating-ui-react/hooks/useTypeahead.d.ts +7 -1
  315. package/esm/floating-ui-react/hooks/useTypeahead.js +30 -14
  316. package/esm/floating-ui-react/safePolygon.d.ts +2 -6
  317. package/esm/floating-ui-react/safePolygon.js +149 -119
  318. package/esm/floating-ui-react/types.d.ts +5 -4
  319. package/esm/floating-ui-react/utils/composite.d.ts +1 -0
  320. package/esm/floating-ui-react/utils/composite.js +128 -129
  321. package/esm/floating-ui-react/utils/markOthers.d.ts +7 -1
  322. package/esm/floating-ui-react/utils/markOthers.js +119 -81
  323. package/esm/form/Form.d.ts +1 -1
  324. package/esm/global.d.ts +1 -1
  325. package/esm/index.js +1 -1
  326. package/esm/input/Input.d.ts +10 -3
  327. package/esm/labelable-provider/LabelableProvider.d.ts +4 -1
  328. package/esm/labelable-provider/LabelableProvider.js +3 -2
  329. package/esm/labelable-provider/useAriaLabelledBy.d.ts +9 -0
  330. package/esm/labelable-provider/useAriaLabelledBy.js +56 -0
  331. package/esm/labelable-provider/useLabel.d.ts +25 -0
  332. package/esm/labelable-provider/useLabel.js +74 -0
  333. package/esm/labelable-provider/useLabelableId.d.ts +2 -5
  334. package/esm/menu/arrow/MenuArrow.d.ts +10 -1
  335. package/esm/menu/backdrop/MenuBackdrop.d.ts +4 -1
  336. package/esm/menu/checkbox-item/MenuCheckboxItem.d.ts +3 -3
  337. package/esm/menu/checkbox-item-indicator/MenuCheckboxItemIndicator.d.ts +7 -1
  338. package/esm/menu/group/MenuGroup.d.ts +1 -1
  339. package/esm/menu/group-label/MenuGroupLabel.d.ts +1 -1
  340. package/esm/menu/index.d.ts +2 -1
  341. package/esm/menu/index.parts.d.ts +1 -0
  342. package/esm/menu/index.parts.js +1 -0
  343. package/esm/menu/item/MenuItem.d.ts +1 -1
  344. package/esm/menu/item/useMenuItem.d.ts +8 -7
  345. package/esm/menu/item/useMenuItem.js +5 -7
  346. package/esm/menu/item/useMenuItemCommonProps.d.ts +7 -4
  347. package/esm/menu/item/useMenuItemCommonProps.js +16 -2
  348. package/esm/menu/link-item/MenuLinkItem.d.ts +1 -1
  349. package/esm/menu/link-item/MenuLinkItem.js +16 -2
  350. package/esm/menu/popup/MenuPopup.d.ts +20 -5
  351. package/esm/menu/popup/MenuPopup.js +4 -1
  352. package/esm/menu/popup/MenuPopupDataAttributes.d.ts +1 -1
  353. package/esm/menu/popup/MenuPopupDataAttributes.js +1 -1
  354. package/esm/menu/portal/MenuPortal.d.ts +3 -4
  355. package/esm/menu/positioner/MenuPositioner.d.ts +18 -2
  356. package/esm/menu/positioner/MenuPositioner.js +58 -5
  357. package/esm/menu/radio-group/MenuRadioGroup.d.ts +6 -3
  358. package/esm/menu/radio-item/MenuRadioItem.d.ts +3 -3
  359. package/esm/menu/radio-item-indicator/MenuRadioItemIndicator.d.ts +7 -1
  360. package/esm/menu/root/MenuRoot.d.ts +4 -2
  361. package/esm/menu/root/MenuRoot.js +2 -3
  362. package/esm/menu/store/MenuStore.d.ts +4 -2
  363. package/esm/menu/store/MenuStore.js +15 -1
  364. package/esm/menu/submenu-trigger/MenuSubmenuTrigger.js +1 -0
  365. package/esm/menu/trigger/MenuTrigger.d.ts +3 -3
  366. package/esm/menu/viewport/MenuViewport.d.ts +30 -0
  367. package/esm/menu/viewport/MenuViewport.js +60 -0
  368. package/esm/menu/viewport/MenuViewportCssVars.d.ts +14 -0
  369. package/esm/menu/viewport/MenuViewportCssVars.js +15 -0
  370. package/esm/menu/viewport/MenuViewportDataAttributes.d.ts +26 -0
  371. package/esm/menu/viewport/MenuViewportDataAttributes.js +27 -0
  372. package/esm/menubar/Menubar.d.ts +1 -1
  373. package/esm/menubar/Menubar.js +1 -7
  374. package/esm/meter/indicator/MeterIndicator.d.ts +4 -2
  375. package/esm/meter/label/MeterLabel.d.ts +4 -2
  376. package/esm/meter/label/MeterLabel.js +4 -8
  377. package/esm/meter/root/MeterRoot.d.ts +1 -1
  378. package/esm/meter/root/MeterRoot.js +11 -2
  379. package/esm/meter/track/MeterTrack.d.ts +4 -2
  380. package/esm/meter/value/MeterValue.d.ts +5 -3
  381. package/esm/navigation-menu/arrow/NavigationMenuArrow.d.ts +10 -1
  382. package/esm/navigation-menu/backdrop/NavigationMenuBackdrop.d.ts +1 -1
  383. package/esm/navigation-menu/content/NavigationMenuContent.d.ts +1 -1
  384. package/esm/navigation-menu/content/NavigationMenuContent.js +11 -0
  385. package/esm/navigation-menu/icon/NavigationMenuIcon.d.ts +1 -1
  386. package/esm/navigation-menu/item/NavigationMenuItem.d.ts +1 -1
  387. package/esm/navigation-menu/link/NavigationMenuLink.d.ts +1 -1
  388. package/esm/navigation-menu/list/NavigationMenuList.d.ts +1 -1
  389. package/esm/navigation-menu/list/NavigationMenuList.js +11 -2
  390. package/esm/navigation-menu/popup/NavigationMenuPopup.d.ts +1 -1
  391. package/esm/navigation-menu/portal/NavigationMenuPortal.d.ts +4 -5
  392. package/esm/navigation-menu/positioner/NavigationMenuPositioner.d.ts +11 -2
  393. package/esm/navigation-menu/root/NavigationMenuRoot.d.ts +4 -4
  394. package/esm/navigation-menu/root/NavigationMenuRoot.js +27 -8
  395. package/esm/navigation-menu/trigger/NavigationMenuTrigger.d.ts +1 -1
  396. package/esm/navigation-menu/trigger/NavigationMenuTrigger.js +364 -20
  397. package/esm/navigation-menu/utils/isOutsideMenuEvent.d.ts +1 -1
  398. package/esm/navigation-menu/viewport/NavigationMenuViewport.d.ts +1 -1
  399. package/esm/navigation-menu/viewport/NavigationMenuViewport.js +0 -19
  400. package/esm/number-field/decrement/NumberFieldDecrement.d.ts +3 -3
  401. package/esm/number-field/group/NumberFieldGroup.d.ts +3 -3
  402. package/esm/number-field/increment/NumberFieldIncrement.d.ts +3 -3
  403. package/esm/number-field/input/NumberFieldInput.d.ts +3 -3
  404. package/esm/number-field/root/NumberFieldRoot.d.ts +4 -4
  405. package/esm/number-field/root/NumberFieldRoot.js +1 -1
  406. package/esm/number-field/root/NumberFieldRootContext.d.ts +2 -2
  407. package/esm/number-field/root/useNumberFieldButton.d.ts +2 -5
  408. package/esm/number-field/scrub-area/NumberFieldScrubArea.d.ts +4 -4
  409. package/esm/number-field/scrub-area-cursor/NumberFieldScrubAreaCursor.d.ts +3 -3
  410. package/esm/number-field/utils/stateAttributesMapping.d.ts +2 -2
  411. package/esm/number-field/utils/types.d.ts +2 -2
  412. package/esm/popover/arrow/PopoverArrow.d.ts +10 -1
  413. package/esm/popover/backdrop/PopoverBackdrop.d.ts +4 -1
  414. package/esm/popover/close/PopoverClose.d.ts +1 -1
  415. package/esm/popover/close/PopoverClose.js +5 -3
  416. package/esm/popover/description/PopoverDescription.d.ts +1 -1
  417. package/esm/popover/popup/PopoverPopup.d.ts +15 -3
  418. package/esm/popover/popup/PopoverPopup.js +11 -2
  419. package/esm/popover/portal/PopoverPortal.d.ts +3 -4
  420. package/esm/popover/positioner/PopoverPositioner.d.ts +11 -2
  421. package/esm/popover/root/PopoverRoot.d.ts +10 -3
  422. package/esm/popover/root/PopoverRoot.js +1 -3
  423. package/esm/popover/title/PopoverTitle.d.ts +1 -1
  424. package/esm/popover/viewport/PopoverViewport.d.ts +16 -12
  425. package/esm/preview-card/arrow/PreviewCardArrow.d.ts +10 -1
  426. package/esm/preview-card/backdrop/PreviewCardBackdrop.d.ts +4 -1
  427. package/esm/preview-card/popup/PreviewCardPopup.d.ts +13 -1
  428. package/esm/preview-card/portal/PreviewCardPortal.d.ts +3 -4
  429. package/esm/preview-card/positioner/PreviewCardPositioner.d.ts +14 -2
  430. package/esm/preview-card/positioner/PreviewCardPositioner.js +7 -1
  431. package/esm/preview-card/root/PreviewCardRoot.d.ts +3 -3
  432. package/esm/preview-card/root/PreviewCardRoot.js +22 -9
  433. package/esm/preview-card/trigger/PreviewCardTrigger.d.ts +1 -1
  434. package/esm/preview-card/viewport/PreviewCardViewport.d.ts +16 -9
  435. package/esm/progress/indicator/ProgressIndicator.d.ts +4 -2
  436. package/esm/progress/label/ProgressLabel.d.ts +4 -2
  437. package/esm/progress/label/ProgressLabel.js +4 -8
  438. package/esm/progress/root/ProgressRoot.d.ts +4 -1
  439. package/esm/progress/root/ProgressRoot.js +11 -2
  440. package/esm/progress/root/ProgressRootContext.d.ts +2 -2
  441. package/esm/progress/root/stateAttributesMapping.d.ts +2 -2
  442. package/esm/progress/track/ProgressTrack.d.ts +4 -2
  443. package/esm/progress/value/ProgressValue.d.ts +5 -3
  444. package/esm/radio/indicator/RadioIndicator.d.ts +4 -1
  445. package/esm/radio/indicator/RadioIndicatorDataAttributes.d.ts +8 -0
  446. package/esm/radio/indicator/RadioIndicatorDataAttributes.js +10 -1
  447. package/esm/radio/root/RadioRoot.d.ts +3 -3
  448. package/esm/radio/root/RadioRoot.js +4 -1
  449. package/esm/radio-group/RadioGroup.d.ts +3 -3
  450. package/esm/scroll-area/content/ScrollAreaContent.d.ts +3 -3
  451. package/esm/scroll-area/corner/ScrollAreaCorner.d.ts +1 -1
  452. package/esm/scroll-area/root/ScrollAreaRoot.d.ts +27 -11
  453. package/esm/scroll-area/root/ScrollAreaRoot.js +7 -4
  454. package/esm/scroll-area/root/ScrollAreaRootContext.d.ts +4 -2
  455. package/esm/scroll-area/root/stateAttributes.d.ts +2 -2
  456. package/esm/scroll-area/scrollbar/ScrollAreaScrollbar.d.ts +13 -7
  457. package/esm/scroll-area/scrollbar/ScrollAreaScrollbar.js +4 -1
  458. package/esm/scroll-area/thumb/ScrollAreaThumb.d.ts +5 -2
  459. package/esm/scroll-area/thumb/ScrollAreaThumb.js +3 -1
  460. package/esm/scroll-area/viewport/ScrollAreaViewport.d.ts +3 -3
  461. package/esm/scroll-area/viewport/ScrollAreaViewport.js +46 -27
  462. package/esm/select/arrow/SelectArrow.d.ts +10 -1
  463. package/esm/select/backdrop/SelectBackdrop.d.ts +7 -1
  464. package/esm/select/group/SelectGroup.d.ts +1 -1
  465. package/esm/select/group-label/SelectGroupLabel.d.ts +1 -1
  466. package/esm/select/icon/SelectIcon.d.ts +1 -1
  467. package/esm/select/index.d.ts +1 -0
  468. package/esm/select/index.parts.d.ts +1 -0
  469. package/esm/select/index.parts.js +1 -0
  470. package/esm/select/item/SelectItem.d.ts +1 -1
  471. package/esm/select/item/SelectItem.js +10 -4
  472. package/esm/select/item-indicator/SelectItemIndicator.d.ts +10 -2
  473. package/esm/select/item-indicator/SelectItemIndicatorDataAttributes.d.ts +10 -0
  474. package/esm/select/item-indicator/SelectItemIndicatorDataAttributes.js +12 -0
  475. package/esm/select/item-text/SelectItemText.d.ts +1 -1
  476. package/esm/select/label/SelectLabel.d.ts +16 -0
  477. package/esm/select/label/SelectLabel.js +49 -0
  478. package/esm/select/list/SelectList.d.ts +1 -1
  479. package/esm/select/popup/SelectPopup.d.ts +14 -2
  480. package/esm/select/popup/SelectPopup.js +23 -9
  481. package/esm/select/portal/SelectPortal.d.ts +3 -4
  482. package/esm/select/positioner/SelectPositioner.d.ts +14 -2
  483. package/esm/select/positioner/SelectPositionerContext.d.ts +2 -2
  484. package/esm/select/root/SelectRoot.d.ts +5 -4
  485. package/esm/select/root/SelectRoot.js +5 -6
  486. package/esm/select/scroll-arrow/SelectScrollArrow.d.ts +13 -1
  487. package/esm/select/scroll-down-arrow/SelectScrollDownArrow.d.ts +1 -1
  488. package/esm/select/scroll-up-arrow/SelectScrollUpArrow.d.ts +1 -1
  489. package/esm/select/store.d.ts +5 -2
  490. package/esm/select/store.js +1 -0
  491. package/esm/select/trigger/SelectTrigger.d.ts +6 -4
  492. package/esm/select/trigger/SelectTrigger.js +5 -2
  493. package/esm/select/value/SelectValue.d.ts +1 -1
  494. package/esm/separator/Separator.d.ts +1 -1
  495. package/esm/slider/control/SliderControl.d.ts +4 -3
  496. package/esm/slider/control/SliderControl.js +0 -2
  497. package/esm/slider/index.d.ts +1 -0
  498. package/esm/slider/index.parts.d.ts +1 -0
  499. package/esm/slider/index.parts.js +1 -0
  500. package/esm/slider/indicator/SliderIndicator.d.ts +4 -2
  501. package/esm/slider/label/SliderLabel.d.ts +16 -0
  502. package/esm/slider/label/SliderLabel.js +58 -0
  503. package/esm/slider/root/SliderRoot.d.ts +11 -5
  504. package/esm/slider/root/SliderRoot.js +8 -3
  505. package/esm/slider/root/SliderRootContext.d.ts +4 -2
  506. package/esm/slider/root/stateAttributesMapping.d.ts +2 -2
  507. package/esm/slider/thumb/SliderThumb.d.ts +5 -5
  508. package/esm/slider/thumb/SliderThumb.js +3 -2
  509. package/esm/slider/track/SliderTrack.d.ts +4 -2
  510. package/esm/slider/utils/resolveThumbCollision.d.ts +2 -2
  511. package/esm/slider/value/SliderValue.d.ts +5 -3
  512. package/esm/switch/root/SwitchRoot.d.ts +3 -3
  513. package/esm/switch/root/SwitchRoot.js +4 -1
  514. package/esm/switch/root/SwitchRootContext.d.ts +4 -4
  515. package/esm/switch/stateAttributesMapping.d.ts +2 -2
  516. package/esm/switch/thumb/SwitchThumb.d.ts +3 -3
  517. package/esm/tabs/indicator/TabsIndicator.d.ts +12 -3
  518. package/esm/tabs/indicator/TabsIndicator.js +5 -14
  519. package/esm/tabs/indicator/TabsIndicatorCssVars.d.ts +1 -1
  520. package/esm/tabs/indicator/TabsIndicatorCssVars.js +1 -1
  521. package/esm/tabs/list/TabsList.d.ts +3 -3
  522. package/esm/tabs/list/TabsList.js +48 -3
  523. package/esm/tabs/list/TabsListContext.d.ts +2 -0
  524. package/esm/tabs/panel/TabsPanel.d.ts +9 -3
  525. package/esm/tabs/panel/TabsPanelDataAttributes.d.ts +8 -0
  526. package/esm/tabs/panel/TabsPanelDataAttributes.js +10 -1
  527. package/esm/tabs/root/TabsRoot.d.ts +7 -1
  528. package/esm/tabs/root/TabsRootContext.d.ts +1 -1
  529. package/esm/tabs/root/stateAttributesMapping.d.ts +2 -2
  530. package/esm/tabs/tab/TabsTab.d.ts +7 -1
  531. package/esm/tabs/tab/TabsTab.js +10 -1
  532. package/esm/toast/action/ToastAction.d.ts +1 -1
  533. package/esm/toast/arrow/ToastArrow.d.ts +10 -1
  534. package/esm/toast/close/ToastClose.d.ts +1 -1
  535. package/esm/toast/content/ToastContent.d.ts +1 -1
  536. package/esm/toast/createToastManager.d.ts +1 -1
  537. package/esm/toast/description/ToastDescription.d.ts +1 -1
  538. package/esm/toast/portal/ToastPortal.d.ts +3 -4
  539. package/esm/toast/positioner/ToastPositioner.d.ts +12 -3
  540. package/esm/toast/provider/ToastProvider.d.ts +2 -0
  541. package/esm/toast/provider/ToastProvider.js +1 -1
  542. package/esm/toast/root/ToastRoot.d.ts +20 -7
  543. package/esm/toast/root/ToastRoot.js +3 -1
  544. package/esm/toast/store.d.ts +1 -1
  545. package/esm/toast/store.js +37 -8
  546. package/esm/toast/title/ToastTitle.d.ts +1 -1
  547. package/esm/toast/useToastManager.d.ts +3 -3
  548. package/esm/toast/viewport/ToastViewport.d.ts +1 -1
  549. package/esm/toggle/Toggle.d.ts +1 -1
  550. package/esm/toggle-group/ToggleGroup.d.ts +1 -1
  551. package/esm/toolbar/button/ToolbarButton.d.ts +9 -3
  552. package/esm/toolbar/group/ToolbarGroup.d.ts +4 -2
  553. package/esm/toolbar/input/ToolbarInput.d.ts +9 -3
  554. package/esm/toolbar/link/ToolbarLink.d.ts +4 -1
  555. package/esm/toolbar/root/ToolbarRoot.d.ts +7 -1
  556. package/esm/toolbar/separator/ToolbarSeparator.d.ts +4 -2
  557. package/esm/tooltip/arrow/TooltipArrow.d.ts +13 -1
  558. package/esm/tooltip/popup/TooltipPopup.d.ts +13 -1
  559. package/esm/tooltip/portal/TooltipPortal.d.ts +3 -4
  560. package/esm/tooltip/positioner/TooltipPositioner.d.ts +11 -2
  561. package/esm/tooltip/provider/TooltipProvider.d.ts +2 -0
  562. package/esm/tooltip/root/TooltipRoot.d.ts +3 -3
  563. package/esm/tooltip/root/TooltipRoot.js +1 -1
  564. package/esm/tooltip/store/TooltipStore.d.ts +2 -0
  565. package/esm/tooltip/store/TooltipStore.js +2 -0
  566. package/esm/tooltip/trigger/TooltipTrigger.d.ts +6 -1
  567. package/esm/tooltip/trigger/TooltipTrigger.js +5 -0
  568. package/esm/tooltip/viewport/TooltipViewport.d.ts +16 -12
  569. package/esm/types/index.d.ts +16 -1
  570. package/esm/unstable-use-media-query/index.d.ts +2 -0
  571. package/esm/use-button/useButton.d.ts +8 -5
  572. package/esm/use-button/useButton.js +49 -20
  573. package/esm/use-render/useRender.d.ts +7 -5
  574. package/esm/utils/FloatingPortalLite.d.ts +4 -2
  575. package/esm/utils/InternalBackdrop.d.ts +3 -1
  576. package/esm/utils/closePart.d.ts +16 -0
  577. package/esm/utils/closePart.js +40 -0
  578. package/esm/utils/constants.d.ts +4 -0
  579. package/esm/utils/constants.js +4 -0
  580. package/esm/utils/createBaseUIEventDetails.d.ts +1 -1
  581. package/esm/utils/getElementAtPoint.d.ts +1 -0
  582. package/esm/utils/getElementAtPoint.js +3 -0
  583. package/esm/utils/resolveAriaLabelledBy.d.ts +2 -0
  584. package/esm/utils/resolveAriaLabelledBy.js +8 -0
  585. package/esm/utils/resolveValueLabel.d.ts +4 -4
  586. package/esm/utils/resolveValueLabel.js +7 -5
  587. package/esm/utils/types.d.ts +7 -20
  588. package/esm/utils/useAnchorPositioning.d.ts +53 -18
  589. package/esm/utils/useAnchorPositioning.js +15 -6
  590. package/esm/utils/useFocusableWhenDisabled.d.ts +2 -5
  591. package/esm/utils/useMixedToggleClickHandler.d.ts +2 -4
  592. package/esm/utils/useOpenChangeComplete.d.ts +2 -4
  593. package/esm/utils/useOpenInteractionType.d.ts +0 -1
  594. package/esm/utils/useOpenInteractionType.js +7 -5
  595. package/esm/utils/usePopupAutoResize.js +1 -2
  596. package/esm/utils/usePopupViewport.js +11 -8
  597. package/esm/utils/useRegisteredLabelId.d.ts +1 -0
  598. package/esm/utils/useRegisteredLabelId.js +14 -0
  599. package/esm/utils/useRenderElement.d.ts +6 -9
  600. package/esm/utils/useRenderElement.js +15 -0
  601. package/esm/utils/useSwipeDismiss.d.ts +91 -92
  602. package/esm/utils/useSwipeDismiss.js +2 -1
  603. package/field/control/FieldControl.d.ts +3 -3
  604. package/field/description/FieldDescription.d.ts +3 -3
  605. package/field/error/FieldError.d.ts +7 -4
  606. package/field/error/FieldErrorDataAttributes.d.ts +8 -0
  607. package/field/error/FieldErrorDataAttributes.js +10 -1
  608. package/field/item/FieldItem.d.ts +4 -3
  609. package/field/item/FieldItem.js +2 -2
  610. package/field/label/FieldLabel.d.ts +3 -3
  611. package/field/label/FieldLabel.js +6 -51
  612. package/field/root/FieldRoot.d.ts +19 -2
  613. package/field/root/FieldRoot.js +2 -1
  614. package/field/root/FieldRootContext.d.ts +2 -2
  615. package/field/root/FieldRootContext.js +5 -12
  616. package/field/root/useFieldValidation.js +5 -4
  617. package/field/utils/constants.d.ts +3 -0
  618. package/field/utils/constants.js +12 -1
  619. package/field/validity/FieldValidity.d.ts +7 -1
  620. package/fieldset/legend/FieldsetLegend.d.ts +1 -1
  621. package/fieldset/root/FieldsetRoot.d.ts +1 -1
  622. package/floating-ui-react/components/FloatingDelayGroup.js +2 -2
  623. package/floating-ui-react/components/FloatingFocusManager.d.ts +12 -7
  624. package/floating-ui-react/components/FloatingFocusManager.js +29 -25
  625. package/floating-ui-react/components/FloatingPortal.d.ts +6 -4
  626. package/floating-ui-react/hooks/useClick.d.ts +2 -2
  627. package/floating-ui-react/hooks/useClientPoint.d.ts +1 -1
  628. package/floating-ui-react/hooks/useDismiss.d.ts +8 -12
  629. package/floating-ui-react/hooks/useDismiss.js +319 -260
  630. package/floating-ui-react/hooks/useFloatingRootContext.d.ts +2 -2
  631. package/floating-ui-react/hooks/useFocus.d.ts +1 -1
  632. package/floating-ui-react/hooks/useHover.d.ts +6 -14
  633. package/floating-ui-react/hooks/useHover.js +6 -32
  634. package/floating-ui-react/hooks/useHoverFloatingInteraction.d.ts +2 -3
  635. package/floating-ui-react/hooks/useHoverFloatingInteraction.js +53 -70
  636. package/floating-ui-react/hooks/useHoverInteractionSharedState.d.ts +12 -3
  637. package/floating-ui-react/hooks/useHoverInteractionSharedState.js +32 -4
  638. package/floating-ui-react/hooks/useHoverReferenceInteraction.d.ts +8 -3
  639. package/floating-ui-react/hooks/useHoverReferenceInteraction.js +60 -82
  640. package/floating-ui-react/hooks/useHoverShared.d.ts +28 -0
  641. package/floating-ui-react/hooks/useHoverShared.js +34 -0
  642. package/floating-ui-react/hooks/useListNavigation.d.ts +4 -4
  643. package/floating-ui-react/hooks/useListNavigation.js +7 -3
  644. package/floating-ui-react/hooks/useRole.d.ts +1 -1
  645. package/floating-ui-react/hooks/useTypeahead.d.ts +7 -1
  646. package/floating-ui-react/hooks/useTypeahead.js +29 -13
  647. package/floating-ui-react/safePolygon.d.ts +2 -6
  648. package/floating-ui-react/safePolygon.js +149 -119
  649. package/floating-ui-react/types.d.ts +5 -4
  650. package/floating-ui-react/utils/composite.d.ts +1 -0
  651. package/floating-ui-react/utils/composite.js +129 -129
  652. package/floating-ui-react/utils/markOthers.d.ts +7 -1
  653. package/floating-ui-react/utils/markOthers.js +118 -80
  654. package/form/Form.d.ts +1 -1
  655. package/global.d.ts +1 -1
  656. package/index.js +1 -1
  657. package/input/Input.d.ts +10 -3
  658. package/labelable-provider/LabelableProvider.d.ts +4 -1
  659. package/labelable-provider/LabelableProvider.js +3 -2
  660. package/labelable-provider/useAriaLabelledBy.d.ts +9 -0
  661. package/labelable-provider/useAriaLabelledBy.js +61 -0
  662. package/labelable-provider/useLabel.d.ts +25 -0
  663. package/labelable-provider/useLabel.js +80 -0
  664. package/labelable-provider/useLabelableId.d.ts +2 -5
  665. package/menu/arrow/MenuArrow.d.ts +10 -1
  666. package/menu/backdrop/MenuBackdrop.d.ts +4 -1
  667. package/menu/checkbox-item/MenuCheckboxItem.d.ts +3 -3
  668. package/menu/checkbox-item-indicator/MenuCheckboxItemIndicator.d.ts +7 -1
  669. package/menu/group/MenuGroup.d.ts +1 -1
  670. package/menu/group-label/MenuGroupLabel.d.ts +1 -1
  671. package/menu/index.d.ts +2 -1
  672. package/menu/index.parts.d.ts +1 -0
  673. package/menu/index.parts.js +7 -0
  674. package/menu/item/MenuItem.d.ts +1 -1
  675. package/menu/item/useMenuItem.d.ts +8 -7
  676. package/menu/item/useMenuItem.js +5 -7
  677. package/menu/item/useMenuItemCommonProps.d.ts +7 -4
  678. package/menu/item/useMenuItemCommonProps.js +16 -2
  679. package/menu/link-item/MenuLinkItem.d.ts +1 -1
  680. package/menu/link-item/MenuLinkItem.js +16 -2
  681. package/menu/popup/MenuPopup.d.ts +20 -5
  682. package/menu/popup/MenuPopup.js +4 -1
  683. package/menu/popup/MenuPopupDataAttributes.d.ts +1 -1
  684. package/menu/popup/MenuPopupDataAttributes.js +1 -1
  685. package/menu/portal/MenuPortal.d.ts +3 -4
  686. package/menu/positioner/MenuPositioner.d.ts +18 -2
  687. package/menu/positioner/MenuPositioner.js +56 -4
  688. package/menu/radio-group/MenuRadioGroup.d.ts +6 -3
  689. package/menu/radio-item/MenuRadioItem.d.ts +3 -3
  690. package/menu/radio-item-indicator/MenuRadioItemIndicator.d.ts +7 -1
  691. package/menu/root/MenuRoot.d.ts +4 -2
  692. package/menu/root/MenuRoot.js +2 -3
  693. package/menu/store/MenuStore.d.ts +4 -2
  694. package/menu/store/MenuStore.js +15 -1
  695. package/menu/submenu-trigger/MenuSubmenuTrigger.js +1 -0
  696. package/menu/trigger/MenuTrigger.d.ts +3 -3
  697. package/menu/viewport/MenuViewport.d.ts +30 -0
  698. package/menu/viewport/MenuViewport.js +66 -0
  699. package/menu/viewport/MenuViewportCssVars.d.ts +14 -0
  700. package/menu/viewport/MenuViewportCssVars.js +21 -0
  701. package/menu/viewport/MenuViewportDataAttributes.d.ts +26 -0
  702. package/menu/viewport/MenuViewportDataAttributes.js +33 -0
  703. package/menubar/Menubar.d.ts +1 -1
  704. package/menubar/Menubar.js +1 -7
  705. package/meter/indicator/MeterIndicator.d.ts +4 -2
  706. package/meter/label/MeterLabel.d.ts +4 -2
  707. package/meter/label/MeterLabel.js +4 -8
  708. package/meter/root/MeterRoot.d.ts +1 -1
  709. package/meter/root/MeterRoot.js +10 -1
  710. package/meter/track/MeterTrack.d.ts +4 -2
  711. package/meter/value/MeterValue.d.ts +5 -3
  712. package/navigation-menu/arrow/NavigationMenuArrow.d.ts +10 -1
  713. package/navigation-menu/backdrop/NavigationMenuBackdrop.d.ts +1 -1
  714. package/navigation-menu/content/NavigationMenuContent.d.ts +1 -1
  715. package/navigation-menu/content/NavigationMenuContent.js +11 -0
  716. package/navigation-menu/icon/NavigationMenuIcon.d.ts +1 -1
  717. package/navigation-menu/item/NavigationMenuItem.d.ts +1 -1
  718. package/navigation-menu/link/NavigationMenuLink.d.ts +1 -1
  719. package/navigation-menu/list/NavigationMenuList.d.ts +1 -1
  720. package/navigation-menu/list/NavigationMenuList.js +10 -1
  721. package/navigation-menu/popup/NavigationMenuPopup.d.ts +1 -1
  722. package/navigation-menu/portal/NavigationMenuPortal.d.ts +4 -5
  723. package/navigation-menu/positioner/NavigationMenuPositioner.d.ts +11 -2
  724. package/navigation-menu/root/NavigationMenuRoot.d.ts +4 -4
  725. package/navigation-menu/root/NavigationMenuRoot.js +26 -7
  726. package/navigation-menu/trigger/NavigationMenuTrigger.d.ts +1 -1
  727. package/navigation-menu/trigger/NavigationMenuTrigger.js +362 -17
  728. package/navigation-menu/utils/isOutsideMenuEvent.d.ts +1 -1
  729. package/navigation-menu/viewport/NavigationMenuViewport.d.ts +1 -1
  730. package/navigation-menu/viewport/NavigationMenuViewport.js +0 -19
  731. package/number-field/decrement/NumberFieldDecrement.d.ts +3 -3
  732. package/number-field/group/NumberFieldGroup.d.ts +3 -3
  733. package/number-field/increment/NumberFieldIncrement.d.ts +3 -3
  734. package/number-field/input/NumberFieldInput.d.ts +3 -3
  735. package/number-field/root/NumberFieldRoot.d.ts +4 -4
  736. package/number-field/root/NumberFieldRoot.js +1 -1
  737. package/number-field/root/NumberFieldRootContext.d.ts +2 -2
  738. package/number-field/root/useNumberFieldButton.d.ts +2 -5
  739. package/number-field/scrub-area/NumberFieldScrubArea.d.ts +4 -4
  740. package/number-field/scrub-area-cursor/NumberFieldScrubAreaCursor.d.ts +3 -3
  741. package/number-field/utils/stateAttributesMapping.d.ts +2 -2
  742. package/number-field/utils/types.d.ts +2 -2
  743. package/package.json +183 -7
  744. package/popover/arrow/PopoverArrow.d.ts +10 -1
  745. package/popover/backdrop/PopoverBackdrop.d.ts +4 -1
  746. package/popover/close/PopoverClose.d.ts +1 -1
  747. package/popover/close/PopoverClose.js +5 -3
  748. package/popover/description/PopoverDescription.d.ts +1 -1
  749. package/popover/popup/PopoverPopup.d.ts +15 -3
  750. package/popover/popup/PopoverPopup.js +11 -2
  751. package/popover/portal/PopoverPortal.d.ts +3 -4
  752. package/popover/positioner/PopoverPositioner.d.ts +11 -2
  753. package/popover/root/PopoverRoot.d.ts +10 -3
  754. package/popover/root/PopoverRoot.js +1 -3
  755. package/popover/title/PopoverTitle.d.ts +1 -1
  756. package/popover/viewport/PopoverViewport.d.ts +16 -12
  757. package/preview-card/arrow/PreviewCardArrow.d.ts +10 -1
  758. package/preview-card/backdrop/PreviewCardBackdrop.d.ts +4 -1
  759. package/preview-card/popup/PreviewCardPopup.d.ts +13 -1
  760. package/preview-card/portal/PreviewCardPortal.d.ts +3 -4
  761. package/preview-card/positioner/PreviewCardPositioner.d.ts +14 -2
  762. package/preview-card/positioner/PreviewCardPositioner.js +7 -1
  763. package/preview-card/root/PreviewCardRoot.d.ts +3 -3
  764. package/preview-card/root/PreviewCardRoot.js +20 -7
  765. package/preview-card/trigger/PreviewCardTrigger.d.ts +1 -1
  766. package/preview-card/viewport/PreviewCardViewport.d.ts +16 -9
  767. package/progress/indicator/ProgressIndicator.d.ts +4 -2
  768. package/progress/label/ProgressLabel.d.ts +4 -2
  769. package/progress/label/ProgressLabel.js +4 -8
  770. package/progress/root/ProgressRoot.d.ts +4 -1
  771. package/progress/root/ProgressRoot.js +10 -1
  772. package/progress/root/ProgressRootContext.d.ts +2 -2
  773. package/progress/root/stateAttributesMapping.d.ts +2 -2
  774. package/progress/track/ProgressTrack.d.ts +4 -2
  775. package/progress/value/ProgressValue.d.ts +5 -3
  776. package/radio/indicator/RadioIndicator.d.ts +4 -1
  777. package/radio/indicator/RadioIndicatorDataAttributes.d.ts +8 -0
  778. package/radio/indicator/RadioIndicatorDataAttributes.js +10 -1
  779. package/radio/root/RadioRoot.d.ts +3 -3
  780. package/radio/root/RadioRoot.js +4 -1
  781. package/radio-group/RadioGroup.d.ts +3 -3
  782. package/scroll-area/content/ScrollAreaContent.d.ts +3 -3
  783. package/scroll-area/corner/ScrollAreaCorner.d.ts +1 -1
  784. package/scroll-area/root/ScrollAreaRoot.d.ts +27 -11
  785. package/scroll-area/root/ScrollAreaRoot.js +7 -4
  786. package/scroll-area/root/ScrollAreaRootContext.d.ts +4 -2
  787. package/scroll-area/root/stateAttributes.d.ts +2 -2
  788. package/scroll-area/scrollbar/ScrollAreaScrollbar.d.ts +13 -7
  789. package/scroll-area/scrollbar/ScrollAreaScrollbar.js +4 -1
  790. package/scroll-area/thumb/ScrollAreaThumb.d.ts +5 -2
  791. package/scroll-area/thumb/ScrollAreaThumb.js +3 -1
  792. package/scroll-area/viewport/ScrollAreaViewport.d.ts +3 -3
  793. package/scroll-area/viewport/ScrollAreaViewport.js +46 -27
  794. package/select/arrow/SelectArrow.d.ts +10 -1
  795. package/select/backdrop/SelectBackdrop.d.ts +7 -1
  796. package/select/group/SelectGroup.d.ts +1 -1
  797. package/select/group-label/SelectGroupLabel.d.ts +1 -1
  798. package/select/icon/SelectIcon.d.ts +1 -1
  799. package/select/index.d.ts +1 -0
  800. package/select/index.parts.d.ts +1 -0
  801. package/select/index.parts.js +7 -0
  802. package/select/item/SelectItem.d.ts +1 -1
  803. package/select/item/SelectItem.js +10 -4
  804. package/select/item-indicator/SelectItemIndicator.d.ts +10 -2
  805. package/select/item-indicator/SelectItemIndicatorDataAttributes.d.ts +10 -0
  806. package/select/item-indicator/SelectItemIndicatorDataAttributes.js +18 -0
  807. package/select/item-text/SelectItemText.d.ts +1 -1
  808. package/select/label/SelectLabel.d.ts +16 -0
  809. package/select/label/SelectLabel.js +54 -0
  810. package/select/list/SelectList.d.ts +1 -1
  811. package/select/popup/SelectPopup.d.ts +14 -2
  812. package/select/popup/SelectPopup.js +26 -12
  813. package/select/portal/SelectPortal.d.ts +3 -4
  814. package/select/positioner/SelectPositioner.d.ts +14 -2
  815. package/select/positioner/SelectPositionerContext.d.ts +2 -2
  816. package/select/root/SelectRoot.d.ts +5 -4
  817. package/select/root/SelectRoot.js +5 -6
  818. package/select/scroll-arrow/SelectScrollArrow.d.ts +13 -1
  819. package/select/scroll-down-arrow/SelectScrollDownArrow.d.ts +1 -1
  820. package/select/scroll-up-arrow/SelectScrollUpArrow.d.ts +1 -1
  821. package/select/store.d.ts +5 -2
  822. package/select/store.js +1 -0
  823. package/select/trigger/SelectTrigger.d.ts +6 -4
  824. package/select/trigger/SelectTrigger.js +5 -2
  825. package/select/value/SelectValue.d.ts +1 -1
  826. package/separator/Separator.d.ts +1 -1
  827. package/slider/control/SliderControl.d.ts +4 -3
  828. package/slider/control/SliderControl.js +0 -2
  829. package/slider/index.d.ts +1 -0
  830. package/slider/index.parts.d.ts +1 -0
  831. package/slider/index.parts.js +7 -0
  832. package/slider/indicator/SliderIndicator.d.ts +4 -2
  833. package/slider/label/SliderLabel.d.ts +16 -0
  834. package/slider/label/SliderLabel.js +63 -0
  835. package/slider/root/SliderRoot.d.ts +11 -5
  836. package/slider/root/SliderRoot.js +8 -3
  837. package/slider/root/SliderRootContext.d.ts +4 -2
  838. package/slider/root/stateAttributesMapping.d.ts +2 -2
  839. package/slider/thumb/SliderThumb.d.ts +5 -5
  840. package/slider/thumb/SliderThumb.js +3 -2
  841. package/slider/track/SliderTrack.d.ts +4 -2
  842. package/slider/utils/resolveThumbCollision.d.ts +2 -2
  843. package/slider/value/SliderValue.d.ts +5 -3
  844. package/switch/root/SwitchRoot.d.ts +3 -3
  845. package/switch/root/SwitchRoot.js +4 -1
  846. package/switch/root/SwitchRootContext.d.ts +4 -4
  847. package/switch/stateAttributesMapping.d.ts +2 -2
  848. package/switch/thumb/SwitchThumb.d.ts +3 -3
  849. package/tabs/indicator/TabsIndicator.d.ts +12 -3
  850. package/tabs/indicator/TabsIndicator.js +5 -14
  851. package/tabs/indicator/TabsIndicatorCssVars.d.ts +1 -1
  852. package/tabs/indicator/TabsIndicatorCssVars.js +1 -1
  853. package/tabs/list/TabsList.d.ts +3 -3
  854. package/tabs/list/TabsList.js +48 -3
  855. package/tabs/list/TabsListContext.d.ts +2 -0
  856. package/tabs/panel/TabsPanel.d.ts +9 -3
  857. package/tabs/panel/TabsPanelDataAttributes.d.ts +8 -0
  858. package/tabs/panel/TabsPanelDataAttributes.js +10 -1
  859. package/tabs/root/TabsRoot.d.ts +7 -1
  860. package/tabs/root/TabsRootContext.d.ts +1 -1
  861. package/tabs/root/stateAttributesMapping.d.ts +2 -2
  862. package/tabs/tab/TabsTab.d.ts +7 -1
  863. package/tabs/tab/TabsTab.js +10 -1
  864. package/toast/action/ToastAction.d.ts +1 -1
  865. package/toast/arrow/ToastArrow.d.ts +10 -1
  866. package/toast/close/ToastClose.d.ts +1 -1
  867. package/toast/content/ToastContent.d.ts +1 -1
  868. package/toast/createToastManager.d.ts +1 -1
  869. package/toast/description/ToastDescription.d.ts +1 -1
  870. package/toast/portal/ToastPortal.d.ts +3 -4
  871. package/toast/positioner/ToastPositioner.d.ts +12 -3
  872. package/toast/provider/ToastProvider.d.ts +2 -0
  873. package/toast/provider/ToastProvider.js +1 -1
  874. package/toast/root/ToastRoot.d.ts +20 -7
  875. package/toast/root/ToastRoot.js +3 -1
  876. package/toast/store.d.ts +1 -1
  877. package/toast/store.js +37 -8
  878. package/toast/title/ToastTitle.d.ts +1 -1
  879. package/toast/useToastManager.d.ts +3 -3
  880. package/toast/viewport/ToastViewport.d.ts +1 -1
  881. package/toggle/Toggle.d.ts +1 -1
  882. package/toggle-group/ToggleGroup.d.ts +1 -1
  883. package/toolbar/button/ToolbarButton.d.ts +9 -3
  884. package/toolbar/group/ToolbarGroup.d.ts +4 -2
  885. package/toolbar/input/ToolbarInput.d.ts +9 -3
  886. package/toolbar/link/ToolbarLink.d.ts +4 -1
  887. package/toolbar/root/ToolbarRoot.d.ts +7 -1
  888. package/toolbar/separator/ToolbarSeparator.d.ts +4 -2
  889. package/tooltip/arrow/TooltipArrow.d.ts +13 -1
  890. package/tooltip/popup/TooltipPopup.d.ts +13 -1
  891. package/tooltip/portal/TooltipPortal.d.ts +3 -4
  892. package/tooltip/positioner/TooltipPositioner.d.ts +11 -2
  893. package/tooltip/provider/TooltipProvider.d.ts +2 -0
  894. package/tooltip/root/TooltipRoot.d.ts +3 -3
  895. package/tooltip/root/TooltipRoot.js +1 -1
  896. package/tooltip/store/TooltipStore.d.ts +2 -0
  897. package/tooltip/store/TooltipStore.js +2 -0
  898. package/tooltip/trigger/TooltipTrigger.d.ts +6 -1
  899. package/tooltip/trigger/TooltipTrigger.js +5 -0
  900. package/tooltip/viewport/TooltipViewport.d.ts +16 -12
  901. package/types/index.d.ts +16 -1
  902. package/unstable-use-media-query/index.d.ts +2 -0
  903. package/use-button/useButton.d.ts +8 -5
  904. package/use-button/useButton.js +49 -20
  905. package/use-render/useRender.d.ts +7 -5
  906. package/utils/FloatingPortalLite.d.ts +4 -2
  907. package/utils/InternalBackdrop.d.ts +3 -1
  908. package/utils/closePart.d.ts +16 -0
  909. package/utils/closePart.js +48 -0
  910. package/utils/constants.d.ts +4 -0
  911. package/utils/constants.js +6 -2
  912. package/utils/createBaseUIEventDetails.d.ts +1 -1
  913. package/utils/getElementAtPoint.d.ts +1 -0
  914. package/utils/getElementAtPoint.js +9 -0
  915. package/utils/resolveAriaLabelledBy.d.ts +2 -0
  916. package/utils/resolveAriaLabelledBy.js +14 -0
  917. package/utils/resolveValueLabel.d.ts +4 -4
  918. package/utils/resolveValueLabel.js +7 -5
  919. package/utils/types.d.ts +7 -20
  920. package/utils/useAnchorPositioning.d.ts +53 -18
  921. package/utils/useAnchorPositioning.js +15 -6
  922. package/utils/useFocusableWhenDisabled.d.ts +2 -5
  923. package/utils/useMixedToggleClickHandler.d.ts +2 -4
  924. package/utils/useOpenChangeComplete.d.ts +2 -4
  925. package/utils/useOpenInteractionType.d.ts +0 -1
  926. package/utils/useOpenInteractionType.js +7 -5
  927. package/utils/usePopupAutoResize.js +1 -2
  928. package/utils/usePopupViewport.js +11 -8
  929. package/utils/useRegisteredLabelId.d.ts +1 -0
  930. package/utils/useRegisteredLabelId.js +19 -0
  931. package/utils/useRenderElement.d.ts +6 -9
  932. package/utils/useRenderElement.js +15 -0
  933. package/utils/useSwipeDismiss.d.ts +91 -92
  934. package/utils/useSwipeDismiss.js +2 -1
  935. package/esm/navigation-menu/utils/setFixedSize.d.ts +0 -1
  936. package/esm/navigation-menu/utils/setFixedSize.js +0 -11
  937. package/navigation-menu/utils/setFixedSize.d.ts +0 -1
  938. package/navigation-menu/utils/setFixedSize.js +0 -17
@@ -19,6 +19,7 @@ import { useField } from "../../field/useField.js";
19
19
  import { useFieldRootContext } from "../../field/root/FieldRootContext.js";
20
20
  import { useFormContext } from "../../form/FormContext.js";
21
21
  import { useLabelableContext } from "../../labelable-provider/LabelableContext.js";
22
+ import { resolveAriaLabelledBy, getDefaultLabelId } from "../../utils/resolveAriaLabelledBy.js";
22
23
  import { asc } from "../utils/asc.js";
23
24
  import { getSliderValue } from "../utils/getSliderValue.js";
24
25
  import { validateMinimumDistance } from "../utils/validateMinimumDistance.js";
@@ -70,6 +71,7 @@ export const SliderRoot = /*#__PURE__*/React.forwardRef(function SliderRoot(comp
70
71
  ...elementProps
71
72
  } = componentProps;
72
73
  const id = useBaseUiId(idProp);
74
+ const defaultLabelId = getDefaultLabelId(id);
73
75
  const onValueChange = useStableCallback(onValueChangeProp);
74
76
  const onValueCommitted = useStableCallback(onValueCommittedProp);
75
77
  const {
@@ -86,9 +88,10 @@ export const SliderRoot = /*#__PURE__*/React.forwardRef(function SliderRoot(comp
86
88
  validation
87
89
  } = useFieldRootContext();
88
90
  const {
89
- labelId
91
+ labelId: fieldLabelId
90
92
  } = useLabelableContext();
91
- const ariaLabelledby = ariaLabelledByProp ?? labelId;
93
+ const [labelId, setLabelId] = React.useState();
94
+ const ariaLabelledby = ariaLabelledByProp ?? resolveAriaLabelledBy(fieldLabelId, labelId);
92
95
  const disabled = fieldDisabled || disabledProp;
93
96
  const name = fieldName ?? nameProp;
94
97
 
@@ -249,6 +252,7 @@ export const SliderRoot = /*#__PURE__*/React.forwardRef(function SliderRoot(comp
249
252
  indicatorPosition,
250
253
  inset: thumbAlignment !== 'center',
251
254
  labelId: ariaLabelledby,
255
+ rootLabelId: defaultLabelId,
252
256
  largeStep,
253
257
  lastUsedThumbIndex,
254
258
  lastChangedValueRef,
@@ -269,6 +273,7 @@ export const SliderRoot = /*#__PURE__*/React.forwardRef(function SliderRoot(comp
269
273
  setActive,
270
274
  setDragging,
271
275
  setIndicatorPosition,
276
+ setLabelId,
272
277
  setValue,
273
278
  state,
274
279
  step,
@@ -276,7 +281,7 @@ export const SliderRoot = /*#__PURE__*/React.forwardRef(function SliderRoot(comp
276
281
  thumbMap,
277
282
  thumbRefs,
278
283
  values
279
- }), [active, controlRef, ariaLabelledby, disabled, dragging, validation, formatOptionsRef, handleInputChange, indicatorPosition, largeStep, lastUsedThumbIndex, lastChangedValueRef, lastChangeReasonRef, locale, max, min, minStepsBetweenValues, name, onValueCommitted, orientation, pressedInputRef, pressedThumbCenterOffsetRef, pressedThumbIndexRef, pressedValuesRef, registerFieldControlRef, setActive, setDragging, setIndicatorPosition, setValue, state, step, thumbCollisionBehavior, thumbAlignment, thumbMap, thumbRefs, values]);
284
+ }), [active, controlRef, ariaLabelledby, defaultLabelId, disabled, dragging, validation, formatOptionsRef, handleInputChange, indicatorPosition, largeStep, lastUsedThumbIndex, lastChangedValueRef, lastChangeReasonRef, locale, max, min, minStepsBetweenValues, name, onValueCommitted, orientation, pressedInputRef, pressedThumbCenterOffsetRef, pressedThumbIndexRef, pressedValuesRef, registerFieldControlRef, setActive, setDragging, setIndicatorPosition, setLabelId, setValue, state, step, thumbCollisionBehavior, thumbAlignment, thumbMap, thumbRefs, values]);
280
285
  const element = useRenderElement('div', componentProps, {
281
286
  state,
282
287
  ref: [forwardedRef, sliderRef],
@@ -3,7 +3,7 @@ import type { Orientation } from "../../utils/types.js";
3
3
  import type { CompositeMetadata } from "../../composite/list/CompositeList.js";
4
4
  import type { UseFieldValidationReturnValue } from "../../field/root/useFieldValidation.js";
5
5
  import type { ThumbMetadata } from "../thumb/SliderThumb.js";
6
- import type { SliderRoot } from "./SliderRoot.js";
6
+ import type { SliderRoot, SliderRootState } from "./SliderRoot.js";
7
7
  export interface SliderRootContext {
8
8
  /**
9
9
  * The index of the active thumb.
@@ -22,6 +22,7 @@ export interface SliderRootContext {
22
22
  indicatorPosition: (number | undefined)[];
23
23
  inset: boolean;
24
24
  labelId?: string | undefined;
25
+ rootLabelId?: string | undefined;
25
26
  /**
26
27
  * The large step value of the slider when incrementing or decrementing while the shift key is held,
27
28
  * or when using Page-Up or Page-Down keys. Snaps to multiples of this value.
@@ -66,11 +67,12 @@ export interface SliderRootContext {
66
67
  setActive: (index: number) => void;
67
68
  setDragging: React.Dispatch<React.SetStateAction<boolean>>;
68
69
  setIndicatorPosition: React.Dispatch<React.SetStateAction<(number | undefined)[]>>;
70
+ setLabelId: React.Dispatch<React.SetStateAction<string | undefined>>;
69
71
  /**
70
72
  * Callback fired when dragging and invokes onValueChange.
71
73
  */
72
74
  setValue: (newValue: number | number[], details?: SliderRoot.ChangeEventDetails) => void;
73
- state: SliderRoot.State;
75
+ state: SliderRootState;
74
76
  /**
75
77
  * The step increment of the slider when incrementing or decrementing. It will snap
76
78
  * to multiples of this value. Decimal values are supported.
@@ -1,3 +1,3 @@
1
1
  import type { StateAttributesMapping } from "../../utils/getStateAttributesProps.js";
2
- import type { SliderRoot } from "./SliderRoot.js";
3
- export declare const sliderStateAttributesMapping: StateAttributesMapping<SliderRoot.State>;
2
+ import type { SliderRootState } from "./SliderRoot.js";
3
+ export declare const sliderStateAttributesMapping: StateAttributesMapping<SliderRootState>;
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { BaseUIComponentProps } from "../../utils/types.js";
3
3
  import { type LabelableContext } from "../../labelable-provider/LabelableContext.js";
4
- import type { SliderRoot } from "../root/SliderRoot.js";
4
+ import type { SliderRootState } from "../root/SliderRoot.js";
5
5
  /**
6
6
  * The draggable part of the slider at the tip of the indicator.
7
7
  * Renders a `<div>` element and a nested `<input type="range">`.
@@ -12,8 +12,8 @@ export declare const SliderThumb: React.ForwardRefExoticComponent<Omit<SliderThu
12
12
  export interface ThumbMetadata {
13
13
  inputId: LabelableContext['controlId'];
14
14
  }
15
- export interface SliderThumbState extends SliderRoot.State {}
16
- export interface SliderThumbProps extends Omit<BaseUIComponentProps<'div', SliderThumb.State>, 'onBlur' | 'onFocus'> {
15
+ export interface SliderThumbState extends SliderRootState {}
16
+ export interface SliderThumbProps extends Omit<BaseUIComponentProps<'div', SliderThumbState>, 'onBlur' | 'onFocus'> {
17
17
  /**
18
18
  * Whether the thumb should ignore user interaction.
19
19
  * @default false
@@ -22,12 +22,12 @@ export interface SliderThumbProps extends Omit<BaseUIComponentProps<'div', Slide
22
22
  /**
23
23
  * A function which returns a string value for the [`aria-label`](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Reference/Attributes/aria-label) attribute of the `input`.
24
24
  */
25
- getAriaLabel?: (((index: number) => string) | null) | undefined;
25
+ getAriaLabel?: ((index: number) => string) | null | undefined;
26
26
  /**
27
27
  * A function which returns a string value for the [`aria-valuetext`](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Reference/Attributes/aria-valuetext) attribute of the `input`.
28
28
  * This is important for screen reader users.
29
29
  */
30
- getAriaValueText?: (((formattedValue: string, value: number, index: number) => string) | null) | undefined;
30
+ getAriaValueText?: ((formattedValue: string, value: number, index: number) => string) | null | undefined;
31
31
  /**
32
32
  * The index of the thumb which corresponds to the index of its value in the
33
33
  * `value` or `defaultValue` array.
@@ -203,9 +203,10 @@ export const SliderThumb = /*#__PURE__*/React.forwardRef(function SliderThumb(co
203
203
  if (orientation === 'vertical') {
204
204
  cssWritingMode = rtl ? 'vertical-rl' : 'vertical-lr';
205
205
  }
206
+ const ariaLabel = typeof getAriaLabelProp === 'function' ? getAriaLabelProp(index) : ariaLabelProp;
206
207
  const inputProps = mergeProps({
207
- 'aria-label': typeof getAriaLabelProp === 'function' ? getAriaLabelProp(index) : ariaLabelProp,
208
- 'aria-labelledby': ariaLabelledByProp ?? labelId,
208
+ 'aria-label': ariaLabel,
209
+ 'aria-labelledby': ariaLabelledByProp ?? (ariaLabel == null ? labelId : undefined),
209
210
  'aria-describedby': ariaDescribedByProp,
210
211
  'aria-orientation': orientation,
211
212
  'aria-valuenow': thumbValue,
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { BaseUIComponentProps } from "../../utils/types.js";
3
- import type { SliderRoot } from "../root/SliderRoot.js";
3
+ import type { SliderRootState } from "../root/SliderRoot.js";
4
4
  /**
5
5
  * Contains the slider indicator and represents the entire range of the slider.
6
6
  * Renders a `<div>` element.
@@ -8,7 +8,9 @@ import type { SliderRoot } from "../root/SliderRoot.js";
8
8
  * Documentation: [Base UI Slider](https://base-ui.com/react/components/slider)
9
9
  */
10
10
  export declare const SliderTrack: React.ForwardRefExoticComponent<Omit<SliderTrackProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
11
- export interface SliderTrackProps extends BaseUIComponentProps<'div', SliderRoot.State> {}
11
+ export interface SliderTrackState extends SliderRootState {}
12
+ export interface SliderTrackProps extends BaseUIComponentProps<'div', SliderTrackState> {}
12
13
  export declare namespace SliderTrack {
14
+ type State = SliderTrackState;
13
15
  type Props = SliderTrackProps;
14
16
  }
@@ -2,8 +2,8 @@ import { SliderRootContext } from "../root/SliderRootContext.js";
2
2
  export interface ResolveThumbCollisionParams {
3
3
  behavior: SliderRootContext['thumbCollisionBehavior'];
4
4
  values: readonly number[];
5
- currentValues?: (readonly number[] | null) | undefined;
6
- initialValues?: (readonly number[] | null) | undefined;
5
+ currentValues?: readonly number[] | null | undefined;
6
+ initialValues?: readonly number[] | null | undefined;
7
7
  pressedIndex: number;
8
8
  nextValue: number;
9
9
  min: number;
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import type { BaseUIComponentProps } from "../../utils/types.js";
3
- import type { SliderRoot } from "../root/SliderRoot.js";
3
+ import type { SliderRootState } from "../root/SliderRoot.js";
4
4
  /**
5
5
  * Displays the current value of the slider as text.
6
6
  * Renders an `<output>` element.
@@ -8,9 +8,11 @@ import type { SliderRoot } from "../root/SliderRoot.js";
8
8
  * Documentation: [Base UI Slider](https://base-ui.com/react/components/slider)
9
9
  */
10
10
  export declare const SliderValue: React.ForwardRefExoticComponent<Omit<SliderValueProps, "ref"> & React.RefAttributes<HTMLOutputElement>>;
11
- export interface SliderValueProps extends Omit<BaseUIComponentProps<'output', SliderRoot.State>, 'children'> {
12
- children?: (null | ((formattedValues: readonly string[], values: readonly number[]) => React.ReactNode)) | undefined;
11
+ export interface SliderValueState extends SliderRootState {}
12
+ export interface SliderValueProps extends Omit<BaseUIComponentProps<'output', SliderValueState>, 'children'> {
13
+ children?: null | ((formattedValues: readonly string[], values: readonly number[]) => React.ReactNode) | undefined;
13
14
  }
14
15
  export declare namespace SliderValue {
16
+ type State = SliderValueState;
15
17
  type Props = SliderValueProps;
16
18
  }
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import type { BaseUIComponentProps, NonNativeButtonProps } from "../../utils/types.js";
3
- import type { FieldRoot } from "../../field/root/FieldRoot.js";
3
+ import type { FieldRootState } from "../../field/root/FieldRoot.js";
4
4
  import { REASONS } from "../../utils/reasons.js";
5
5
  import type { BaseUIChangeEventDetails } from "../../types/index.js";
6
6
  /**
@@ -10,7 +10,7 @@ import type { BaseUIChangeEventDetails } from "../../types/index.js";
10
10
  * Documentation: [Base UI Switch](https://base-ui.com/react/components/switch)
11
11
  */
12
12
  export declare const SwitchRoot: React.ForwardRefExoticComponent<Omit<SwitchRootProps, "ref"> & React.RefAttributes<HTMLElement>>;
13
- export interface SwitchRootState extends FieldRoot.State {
13
+ export interface SwitchRootState extends FieldRootState {
14
14
  /**
15
15
  * Whether the switch is currently active.
16
16
  */
@@ -28,7 +28,7 @@ export interface SwitchRootState extends FieldRoot.State {
28
28
  */
29
29
  required: boolean;
30
30
  }
31
- export interface SwitchRootProps extends NonNativeButtonProps, Omit<BaseUIComponentProps<'span', SwitchRoot.State>, 'onChange'> {
31
+ export interface SwitchRootProps extends NonNativeButtonProps, Omit<BaseUIComponentProps<'span', SwitchRootState>, 'onChange'> {
32
32
  /**
33
33
  * The id of the switch element.
34
34
  */
@@ -17,6 +17,7 @@ import { useField } from "../../field/useField.js";
17
17
  import { useFieldRootContext } from "../../field/root/FieldRootContext.js";
18
18
  import { useFormContext } from "../../form/FormContext.js";
19
19
  import { useLabelableContext } from "../../labelable-provider/LabelableContext.js";
20
+ import { useAriaLabelledBy } from "../../labelable-provider/useAriaLabelledBy.js";
20
21
  import { useLabelableId } from "../../labelable-provider/useLabelableId.js";
21
22
  import { createChangeEventDetails } from "../../utils/createBaseUIEventDetails.js";
22
23
  import { REASONS } from "../../utils/reasons.js";
@@ -34,6 +35,7 @@ export const SwitchRoot = /*#__PURE__*/React.forwardRef(function SwitchRoot(comp
34
35
  checked: checkedProp,
35
36
  className,
36
37
  defaultChecked,
38
+ 'aria-labelledby': ariaLabelledByProp,
37
39
  id: idProp,
38
40
  inputRef: externalInputRef,
39
41
  name: nameProp,
@@ -115,13 +117,14 @@ export const SwitchRoot = /*#__PURE__*/React.forwardRef(function SwitchRoot(comp
115
117
  disabled,
116
118
  native: nativeButton
117
119
  });
120
+ const ariaLabelledBy = useAriaLabelledBy(ariaLabelledByProp, labelId, inputRef, !nativeButton, hiddenInputId);
118
121
  const rootProps = {
119
122
  id: nativeButton ? controlId : id,
120
123
  role: 'switch',
121
124
  'aria-checked': checked,
122
125
  'aria-readonly': readOnly || undefined,
123
126
  'aria-required': required || undefined,
124
- 'aria-labelledby': labelId,
127
+ 'aria-labelledby': ariaLabelledBy,
125
128
  onFocus() {
126
129
  if (!disabled) {
127
130
  setFocused(true);
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import type { SwitchRoot } from "./SwitchRoot.js";
3
- export type SwitchRootContext = SwitchRoot.State;
4
- export declare const SwitchRootContext: React.Context<import("./SwitchRoot.js").SwitchRootState | undefined>;
5
- export declare function useSwitchRootContext(): import("./SwitchRoot.js").SwitchRootState;
2
+ import type { SwitchRootState } from "./SwitchRoot.js";
3
+ export type SwitchRootContext = SwitchRootState;
4
+ export declare const SwitchRootContext: React.Context<SwitchRootState | undefined>;
5
+ export declare function useSwitchRootContext(): SwitchRootState;
@@ -1,3 +1,3 @@
1
- import type { SwitchRoot } from "./root/SwitchRoot.js";
1
+ import type { SwitchRootState } from "./root/SwitchRoot.js";
2
2
  import type { StateAttributesMapping } from "../utils/getStateAttributesProps.js";
3
- export declare const stateAttributesMapping: StateAttributesMapping<SwitchRoot.State>;
3
+ export declare const stateAttributesMapping: StateAttributesMapping<SwitchRootState>;
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import type { SwitchRoot } from "../root/SwitchRoot.js";
2
+ import type { SwitchRootState } from "../root/SwitchRoot.js";
3
3
  import type { BaseUIComponentProps } from "../../utils/types.js";
4
4
  /**
5
5
  * The movable part of the switch that indicates whether the switch is on or off.
@@ -8,8 +8,8 @@ import type { BaseUIComponentProps } from "../../utils/types.js";
8
8
  * Documentation: [Base UI Switch](https://base-ui.com/react/components/switch)
9
9
  */
10
10
  export declare const SwitchThumb: React.ForwardRefExoticComponent<Omit<SwitchThumbProps, "ref"> & React.RefAttributes<HTMLSpanElement>>;
11
- export interface SwitchThumbProps extends BaseUIComponentProps<'span', SwitchThumb.State> {}
12
- export interface SwitchThumbState extends SwitchRoot.State {}
11
+ export interface SwitchThumbProps extends BaseUIComponentProps<'span', SwitchThumbState> {}
12
+ export interface SwitchThumbState extends SwitchRootState {}
13
13
  export declare namespace SwitchThumb {
14
14
  type Props = SwitchThumbProps;
15
15
  type State = SwitchThumbState;
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import type { BaseUIComponentProps } from "../../utils/types.js";
3
- import type { TabsRoot } from "../root/TabsRoot.js";
3
+ import type { TabsRoot, TabsRootState } from "../root/TabsRoot.js";
4
4
  import type { TabsTab } from "../tab/TabsTab.js";
5
5
  /**
6
6
  * A visual indicator that can be styled to match the position of the currently active tab.
@@ -9,12 +9,21 @@ import type { TabsTab } from "../tab/TabsTab.js";
9
9
  * Documentation: [Base UI Tabs](https://base-ui.com/react/components/tabs)
10
10
  */
11
11
  export declare const TabsIndicator: React.ForwardRefExoticComponent<Omit<TabsIndicatorProps, "ref"> & React.RefAttributes<HTMLSpanElement>>;
12
- export interface TabsIndicatorState extends TabsRoot.State {
12
+ export interface TabsIndicatorState extends TabsRootState {
13
+ /**
14
+ * The active tab position.
15
+ */
13
16
  activeTabPosition: TabsTab.Position | null;
17
+ /**
18
+ * The active tab size.
19
+ */
14
20
  activeTabSize: TabsTab.Size | null;
21
+ /**
22
+ * The component orientation.
23
+ */
15
24
  orientation: TabsRoot.Orientation;
16
25
  }
17
- export interface TabsIndicatorProps extends BaseUIComponentProps<'span', TabsIndicator.State> {
26
+ export interface TabsIndicatorProps extends BaseUIComponentProps<'span', TabsIndicatorState> {
18
27
  /**
19
28
  * Whether to render itself before React hydrates.
20
29
  * This minimizes the time that the indicator isn’t visible after server-side rendering.
@@ -41,24 +41,15 @@ export const TabsIndicator = /*#__PURE__*/React.forwardRef(function TabIndicator
41
41
  value
42
42
  } = useTabsRootContext();
43
43
  const {
44
- tabsListElement
44
+ tabsListElement,
45
+ registerIndicatorUpdateListener
45
46
  } = useTabsListContext();
46
47
  const [isMounted, setIsMounted] = React.useState(false);
47
- const {
48
- value: activeTabValue
49
- } = useTabsRootContext();
50
48
  useOnMount(() => setIsMounted(true));
51
49
  const rerender = useForcedRerendering();
52
50
  React.useEffect(() => {
53
- if (value != null && tabsListElement != null && typeof ResizeObserver !== 'undefined') {
54
- const resizeObserver = new ResizeObserver(rerender);
55
- resizeObserver.observe(tabsListElement);
56
- return () => {
57
- resizeObserver.disconnect();
58
- };
59
- }
60
- return undefined;
61
- }, [value, tabsListElement, rerender]);
51
+ return registerIndicatorUpdateListener(rerender);
52
+ }, [registerIndicatorUpdateListener, rerender]);
62
53
  let left = 0;
63
54
  let right = 0;
64
55
  let top = 0;
@@ -140,7 +131,7 @@ export const TabsIndicator = /*#__PURE__*/React.forwardRef(function TabIndicator
140
131
  }],
141
132
  stateAttributesMapping
142
133
  });
143
- if (activeTabValue == null) {
134
+ if (value == null) {
144
135
  return null;
145
136
  }
146
137
  return /*#__PURE__*/_jsxs(React.Fragment, {
@@ -25,7 +25,7 @@ export declare enum TabsIndicatorCssVars {
25
25
  */
26
26
  activeTabWidth = "--active-tab-width",
27
27
  /**
28
- * Indicates the width of the tab if it is active.
28
+ * Indicates the height of the tab if it is active.
29
29
  * @type {number}
30
30
  */
31
31
  activeTabHeight = "--active-tab-height",
@@ -25,7 +25,7 @@ export let TabsIndicatorCssVars = /*#__PURE__*/function (TabsIndicatorCssVars) {
25
25
  */
26
26
  TabsIndicatorCssVars["activeTabWidth"] = "--active-tab-width";
27
27
  /**
28
- * Indicates the width of the tab if it is active.
28
+ * Indicates the height of the tab if it is active.
29
29
  * @type {number}
30
30
  */
31
31
  TabsIndicatorCssVars["activeTabHeight"] = "--active-tab-height";
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { BaseUIComponentProps } from "../../utils/types.js";
3
- import type { TabsRoot } from "../root/TabsRoot.js";
3
+ import type { TabsRootState } from "../root/TabsRoot.js";
4
4
  /**
5
5
  * Groups the individual tab buttons.
6
6
  * Renders a `<div>` element.
@@ -8,8 +8,8 @@ import type { TabsRoot } from "../root/TabsRoot.js";
8
8
  * Documentation: [Base UI Tabs](https://base-ui.com/react/components/tabs)
9
9
  */
10
10
  export declare const TabsList: React.ForwardRefExoticComponent<Omit<TabsListProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
11
- export interface TabsListState extends TabsRoot.State {}
12
- export interface TabsListProps extends BaseUIComponentProps<'div', TabsList.State> {
11
+ export interface TabsListState extends TabsRootState {}
12
+ export interface TabsListProps extends BaseUIComponentProps<'div', TabsListState> {
13
13
  /**
14
14
  * Whether to automatically change the active tab on arrow key focus.
15
15
  * Otherwise, tabs will be activated using <kbd>Enter</kbd> or <kbd>Space</kbd> key press.
@@ -34,6 +34,50 @@ export const TabsList = /*#__PURE__*/React.forwardRef(function TabsList(componen
34
34
  } = useTabsRootContext();
35
35
  const [highlightedTabIndex, setHighlightedTabIndex] = React.useState(0);
36
36
  const [tabsListElement, setTabsListElement] = React.useState(null);
37
+ const indicatorUpdateListenersRef = React.useRef(new Set());
38
+ const tabResizeObserverElementsRef = React.useRef(new Set());
39
+ const resizeObserverRef = React.useRef(null);
40
+ const notifyIndicatorUpdateListeners = useStableCallback(() => {
41
+ indicatorUpdateListenersRef.current.forEach(listener => {
42
+ listener();
43
+ });
44
+ });
45
+ React.useEffect(() => {
46
+ if (typeof ResizeObserver === 'undefined') {
47
+ return undefined;
48
+ }
49
+ const resizeObserver = new ResizeObserver(() => {
50
+ if (!indicatorUpdateListenersRef.current.size) {
51
+ return;
52
+ }
53
+ notifyIndicatorUpdateListeners();
54
+ });
55
+ resizeObserverRef.current = resizeObserver;
56
+ if (tabsListElement) {
57
+ resizeObserver.observe(tabsListElement);
58
+ }
59
+ tabResizeObserverElementsRef.current.forEach(element => {
60
+ resizeObserver.observe(element);
61
+ });
62
+ return () => {
63
+ resizeObserver.disconnect();
64
+ resizeObserverRef.current = null;
65
+ };
66
+ }, [tabsListElement, notifyIndicatorUpdateListeners]);
67
+ const registerIndicatorUpdateListener = useStableCallback(listener => {
68
+ indicatorUpdateListenersRef.current.add(listener);
69
+ return () => {
70
+ indicatorUpdateListenersRef.current.delete(listener);
71
+ };
72
+ });
73
+ const registerTabResizeObserverElement = useStableCallback(element => {
74
+ tabResizeObserverElementsRef.current.add(element);
75
+ resizeObserverRef.current?.observe(element);
76
+ return () => {
77
+ tabResizeObserverElementsRef.current.delete(element);
78
+ resizeObserverRef.current?.unobserve(element);
79
+ };
80
+ });
37
81
  const detectActivationDirection = useActivationDirectionDetector(value,
38
82
  // the old value
39
83
  orientation, tabsListElement, getTabElementBySelectedValue);
@@ -55,11 +99,12 @@ export const TabsList = /*#__PURE__*/React.forwardRef(function TabsList(componen
55
99
  const tabsListContextValue = React.useMemo(() => ({
56
100
  activateOnFocus,
57
101
  highlightedTabIndex,
102
+ registerIndicatorUpdateListener,
103
+ registerTabResizeObserverElement,
58
104
  onTabActivation,
59
105
  setHighlightedTabIndex,
60
- tabsListElement,
61
- value
62
- }), [activateOnFocus, highlightedTabIndex, onTabActivation, setHighlightedTabIndex, tabsListElement, value]);
106
+ tabsListElement
107
+ }), [activateOnFocus, highlightedTabIndex, registerIndicatorUpdateListener, registerTabResizeObserverElement, onTabActivation, setHighlightedTabIndex, tabsListElement]);
63
108
  return /*#__PURE__*/_jsx(TabsListContext.Provider, {
64
109
  value: tabsListContextValue,
65
110
  children: /*#__PURE__*/_jsx(CompositeRoot, {
@@ -3,6 +3,8 @@ import type { TabsRoot } from "../root/TabsRoot.js";
3
3
  export interface TabsListContext {
4
4
  activateOnFocus: boolean;
5
5
  highlightedTabIndex: number;
6
+ registerIndicatorUpdateListener: (listener: () => void) => () => void;
7
+ registerTabResizeObserverElement: (element: HTMLElement) => () => void;
6
8
  onTabActivation: (newValue: any, eventDetails: TabsRoot.ChangeEventDetails) => void;
7
9
  setHighlightedTabIndex: (index: number) => void;
8
10
  tabsListElement: HTMLElement | null;
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { type TransitionStatus } from "../../utils/useTransitionStatus.js";
3
3
  import type { BaseUIComponentProps } from "../../utils/types.js";
4
- import type { TabsRoot } from "../root/TabsRoot.js";
4
+ import type { TabsRootState } from "../root/TabsRoot.js";
5
5
  import type { TabsTab } from "../tab/TabsTab.js";
6
6
  /**
7
7
  * A panel displayed when the corresponding tab is active.
@@ -14,11 +14,17 @@ export interface TabsPanelMetadata {
14
14
  id?: string | undefined;
15
15
  value: TabsTab.Value;
16
16
  }
17
- export interface TabsPanelState extends TabsRoot.State {
17
+ export interface TabsPanelState extends TabsRootState {
18
+ /**
19
+ * Whether the component is hidden.
20
+ */
18
21
  hidden: boolean;
22
+ /**
23
+ * The transition status of the component.
24
+ */
19
25
  transitionStatus: TransitionStatus;
20
26
  }
21
- export interface TabsPanelProps extends BaseUIComponentProps<'div', TabsPanel.State> {
27
+ export interface TabsPanelProps extends BaseUIComponentProps<'div', TabsPanelState> {
22
28
  /**
23
29
  * The value of the TabPanel. It will be shown when the Tab with the corresponding value is active.
24
30
  */
@@ -17,4 +17,12 @@ export declare enum TabsPanelDataAttributes {
17
17
  * Present when the panel is hidden.
18
18
  */
19
19
  hidden = "data-hidden",
20
+ /**
21
+ * Present when the panel is animating in.
22
+ */
23
+ startingStyle = "data-starting-style",
24
+ /**
25
+ * Present when the panel is animating out.
26
+ */
27
+ endingStyle = "data-ending-style",
20
28
  }
@@ -1,4 +1,5 @@
1
- export let TabsPanelDataAttributes = /*#__PURE__*/function (TabsPanelDataAttributes) {
1
+ import { TransitionStatusDataAttributes } from "../../utils/stateAttributesMapping.js";
2
+ export let TabsPanelDataAttributes = function (TabsPanelDataAttributes) {
2
3
  /**
3
4
  * Indicates the index of the tab panel.
4
5
  */
@@ -17,5 +18,13 @@ export let TabsPanelDataAttributes = /*#__PURE__*/function (TabsPanelDataAttribu
17
18
  * Present when the panel is hidden.
18
19
  */
19
20
  TabsPanelDataAttributes["hidden"] = "data-hidden";
21
+ /**
22
+ * Present when the panel is animating in.
23
+ */
24
+ TabsPanelDataAttributes[TabsPanelDataAttributes["startingStyle"] = TransitionStatusDataAttributes.startingStyle] = "startingStyle";
25
+ /**
26
+ * Present when the panel is animating out.
27
+ */
28
+ TabsPanelDataAttributes[TabsPanelDataAttributes["endingStyle"] = TransitionStatusDataAttributes.endingStyle] = "endingStyle";
20
29
  return TabsPanelDataAttributes;
21
30
  }({});
@@ -12,10 +12,16 @@ import { REASONS } from "../../utils/reasons.js";
12
12
  export declare const TabsRoot: React.ForwardRefExoticComponent<Omit<TabsRootProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
13
13
  export type TabsRootOrientation = BaseOrientation;
14
14
  export interface TabsRootState {
15
+ /**
16
+ * The component orientation.
17
+ */
15
18
  orientation: TabsRoot.Orientation;
19
+ /**
20
+ * The direction used for tab activation.
21
+ */
16
22
  tabActivationDirection: TabsTab.ActivationDirection;
17
23
  }
18
- export interface TabsRootProps extends BaseUIComponentProps<'div', TabsRoot.State> {
24
+ export interface TabsRootProps extends BaseUIComponentProps<'div', TabsRootState> {
19
25
  /**
20
26
  * The value of the currently active `Tab`. Use when the component is controlled.
21
27
  * When the value is `null`, no Tab will be active.
@@ -30,7 +30,7 @@ export interface TabsRootContext {
30
30
  getTabPanelIdByValue: (tabValue: TabsTab.Value) => string | undefined;
31
31
  registerMountedTabPanel: (panelValue: TabsTab.Value | number, panelId: string) => void;
32
32
  setTabMap: (map: Map<Node, (TabsTab.Metadata & {
33
- index?: (number | null) | undefined;
33
+ index?: number | null | undefined;
34
34
  }) | null>) => void;
35
35
  unregisterMountedTabPanel: (panelValue: TabsTab.Value | number, panelId: string) => void;
36
36
  /**
@@ -1,3 +1,3 @@
1
- import type { TabsRoot } from "./TabsRoot.js";
1
+ import type { TabsRootState } from "./TabsRoot.js";
2
2
  import type { StateAttributesMapping } from "../../utils/getStateAttributesProps.js";
3
- export declare const tabsStateAttributesMapping: StateAttributesMapping<TabsRoot.State>;
3
+ export declare const tabsStateAttributesMapping: StateAttributesMapping<TabsRootState>;
@@ -30,10 +30,16 @@ export interface TabsTabState {
30
30
  * Whether the component should ignore user interaction.
31
31
  */
32
32
  disabled: boolean;
33
+ /**
34
+ * Whether the component is active.
35
+ */
33
36
  active: boolean;
37
+ /**
38
+ * The component orientation.
39
+ */
34
40
  orientation: TabsRoot.Orientation;
35
41
  }
36
- export interface TabsTabProps extends NativeButtonProps, BaseUIComponentProps<'button', TabsTab.State> {
42
+ export interface TabsTabProps extends NativeButtonProps, BaseUIComponentProps<'button', TabsTabState> {
37
43
  /**
38
44
  * The value of the Tab.
39
45
  */
@@ -39,6 +39,7 @@ export const TabsTab = /*#__PURE__*/React.forwardRef(function TabsTab(componentP
39
39
  activateOnFocus,
40
40
  highlightedTabIndex,
41
41
  onTabActivation,
42
+ registerTabResizeObserverElement,
42
43
  setHighlightedTabIndex,
43
44
  tabsListElement
44
45
  } = useTabsListContext();
@@ -59,6 +60,14 @@ export const TabsTab = /*#__PURE__*/React.forwardRef(function TabsTab(componentP
59
60
  });
60
61
  const active = value === activeTabValue;
61
62
  const isNavigatingRef = React.useRef(false);
63
+ const tabElementRef = React.useRef(null);
64
+ React.useEffect(() => {
65
+ const tabElement = tabElementRef.current;
66
+ if (!tabElement) {
67
+ return undefined;
68
+ }
69
+ return registerTabResizeObserverElement(tabElement);
70
+ }, [registerTabResizeObserverElement]);
62
71
 
63
72
  // Keep the highlighted item in sync with the currently active tab
64
73
  // when the value prop changes externally (controlled mode)
@@ -152,7 +161,7 @@ export const TabsTab = /*#__PURE__*/React.forwardRef(function TabsTab(componentP
152
161
  };
153
162
  const element = useRenderElement('button', componentProps, {
154
163
  state,
155
- ref: [forwardedRef, buttonRef, compositeRef],
164
+ ref: [forwardedRef, buttonRef, compositeRef, tabElementRef],
156
165
  props: [compositeProps, {
157
166
  role: 'tab',
158
167
  'aria-controls': tabPanelId,