@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
@@ -4,6 +4,7 @@ import * as React from 'react';
4
4
  import * as ReactDOM from 'react-dom';
5
5
  import { isElement } from '@floating-ui/utils/dom';
6
6
  import { ownerDocument, ownerWindow } from '@base-ui/utils/owner';
7
+ import { useAnimationFrame } from '@base-ui/utils/useAnimationFrame';
7
8
  import { useStableCallback } from '@base-ui/utils/useStableCallback';
8
9
  import { useDialogRootContext } from "../../dialog/root/DialogRootContext.js";
9
10
  import { DialogViewport } from "../../dialog/viewport/DialogViewport.js";
@@ -16,12 +17,15 @@ import { useSwipeDismiss } from "../../utils/useSwipeDismiss.js";
16
17
  import { DrawerPopupCssVars } from "../popup/DrawerPopupCssVars.js";
17
18
  import { DrawerPopupDataAttributes } from "../popup/DrawerPopupDataAttributes.js";
18
19
  import { DrawerBackdropCssVars } from "../backdrop/DrawerBackdropCssVars.js";
20
+ import { DRAWER_CONTENT_ATTRIBUTE } from "../content/DrawerContentDataAttributes.js";
19
21
  import { REASONS } from "../../utils/reasons.js";
20
22
  import { createChangeEventDetails } from "../../utils/createBaseUIEventDetails.js";
21
23
  import { contains } from "../../floating-ui-react/utils.js";
22
24
  import { DrawerViewportContext } from "./DrawerViewportContext.js";
23
25
  import { TransitionStatusDataAttributes } from "../../utils/stateAttributesMapping.js";
24
26
  import { findScrollableTouchTarget } from "../../utils/scrollable.js";
27
+ import { BASE_UI_SWIPE_IGNORE_SELECTOR } from "../../utils/constants.js";
28
+ import { getElementAtPoint } from "../../utils/getElementAtPoint.js";
25
29
  import { jsx as _jsx } from "react/jsx-runtime";
26
30
  const MIN_SWIPE_THRESHOLD = 10;
27
31
  const FAST_SWIPE_VELOCITY = 0.5;
@@ -34,7 +38,7 @@ const MIN_SWIPE_RELEASE_DURATION_MS = 80;
34
38
  const MAX_SWIPE_RELEASE_DURATION_MS = 360;
35
39
  const MIN_SWIPE_RELEASE_SCALAR = 0.1;
36
40
  const MAX_SWIPE_RELEASE_SCALAR = 1;
37
-
41
+ const DRAWER_CONTENT_SELECTOR = `[${DRAWER_CONTENT_ATTRIBUTE}]`;
38
42
  /**
39
43
  * A positioning container for the drawer popup that can be made scrollable.
40
44
  * Renders a `<div>` element.
@@ -68,6 +72,8 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
68
72
  const popupElementState = store.useState('popupElement');
69
73
  const nestedDrawerOpen = nestedOpenDialogCount > 0;
70
74
  const scrollAxis = swipeDirection === 'left' || swipeDirection === 'right' ? 'horizontal' : 'vertical';
75
+ const isVerticalScrollAxis = scrollAxis === 'vertical';
76
+ const crossScrollAxis = isVerticalScrollAxis ? 'horizontal' : 'vertical';
71
77
  const {
72
78
  snapPoints,
73
79
  resolvedSnapPoints,
@@ -79,9 +85,11 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
79
85
  const [swipeRelease, setSwipeRelease] = React.useState(null);
80
86
  const pendingSwipeCloseSnapPointRef = React.useRef(undefined);
81
87
  const resetSwipeRef = React.useRef(null);
88
+ const controlledDismissFrame = useAnimationFrame();
82
89
  const nestedSwipeActiveRef = React.useRef(false);
83
90
  const lastPointerTypeRef = React.useRef('');
84
91
  const ignoreNextTouchStartFromPenRef = React.useRef(false);
92
+ const ignoreTouchSwipeRef = React.useRef(false);
85
93
  const touchScrollStateRef = React.useRef(null);
86
94
  const snapPointRange = React.useMemo(() => {
87
95
  if (!snapPoints || snapPoints.length < 2) {
@@ -272,14 +280,25 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
272
280
  }) {
273
281
  return getBaseSwipeThreshold(element, direction);
274
282
  },
275
- canStart(position) {
283
+ canStart(position, details) {
276
284
  const popupElement = store.context.popupRef.current;
277
285
  if (!popupElement) {
278
286
  return false;
279
287
  }
280
288
  const doc = popupElement.ownerDocument;
281
- const elementAtPoint = typeof doc.elementFromPoint === 'function' ? doc.elementFromPoint(position.x, position.y) : null;
282
- return !!(elementAtPoint && contains(popupElement, elementAtPoint));
289
+ const elementAtPoint = getElementAtPoint(doc, position.x, position.y);
290
+ if (!elementAtPoint || !contains(popupElement, elementAtPoint)) {
291
+ return false;
292
+ }
293
+ const nativeEvent = details.nativeEvent;
294
+ const touchLike = 'touches' in nativeEvent || 'pointerType' in nativeEvent && nativeEvent.pointerType === 'touch';
295
+ if (touchLike && shouldIgnoreSwipeForTextSelection(doc, popupElement)) {
296
+ return false;
297
+ }
298
+ if (nativeEvent.type === 'touchstart' && isSwipeIgnoredTarget(elementAtPoint)) {
299
+ return false;
300
+ }
301
+ return true;
283
302
  },
284
303
  onProgress(progress, details) {
285
304
  updateNestedSwipeActive(details);
@@ -508,6 +527,33 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
508
527
  clearSwipeRelease();
509
528
  return;
510
529
  }
530
+
531
+ // In controlled mode, the effective open state may not have changed yet
532
+ // (openProp takes precedence over state.open). Proceed optimistically with the
533
+ // dismiss animation — React's Scheduler flushes before the next rAF, so we can
534
+ // reliably check whether the parent accepted or rejected the close.
535
+ // Note: if onOpenChange is asynchronous (e.g., closes the drawer after a network
536
+ // call), the rAF check will see open === true, revert the animation, and the
537
+ // drawer will close without animation when the parent eventually sets open={false}.
538
+ if (store.select('open')) {
539
+ const savedEvent = event;
540
+ controlledDismissFrame.request(() => {
541
+ if (store.select('open')) {
542
+ // Parent rejected: revert animation and restore snap point.
543
+ const pendingSnapPoint = pendingSwipeCloseSnapPointRef.current;
544
+ if (pendingSnapPoint !== undefined) {
545
+ setActiveSnapPoint?.(pendingSnapPoint, createChangeEventDetails(REASONS.swipe, savedEvent));
546
+ }
547
+ pendingSwipeCloseSnapPointRef.current = undefined;
548
+ clearSwipeRelease();
549
+ resetSwipeRef.current?.();
550
+ } else {
551
+ // Parent accepted: clean up the ref.
552
+ pendingSwipeCloseSnapPointRef.current = undefined;
553
+ }
554
+ });
555
+ return;
556
+ }
511
557
  pendingSwipeCloseSnapPointRef.current = undefined;
512
558
  setSwipeDismissed(true);
513
559
  }
@@ -521,51 +567,39 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
521
567
  if (!rootElement) {
522
568
  return undefined;
523
569
  }
524
- const doc = ownerDocument(rootElement);
570
+ const resolvedRootElement = rootElement;
571
+ const doc = ownerDocument(resolvedRootElement);
525
572
  const win = ownerWindow(doc);
526
573
  function handleNativeTouchMove(event) {
574
+ if (ignoreTouchSwipeRef.current) {
575
+ return;
576
+ }
527
577
  const touchState = touchScrollStateRef.current;
528
578
  const touch = event.touches[0];
529
579
  if (!touch || !touchState) {
530
580
  return;
531
581
  }
532
- const target = isElement(event.target) ? event.target : null;
533
- const updateTouchPosition = () => {
534
- touchState.lastX = touch.clientX;
535
- touchState.lastY = touch.clientY;
536
- };
582
+ const drawerAxisDelta = isVerticalScrollAxis ? touch.clientY - touchState.lastY : touch.clientX - touchState.lastX;
537
583
 
538
584
  // Preserve native range interaction by never locking touchmove for range inputs.
539
585
  if (isEventOnRangeInput(event, win)) {
540
586
  touchState.allowSwipe = false;
541
- updateTouchPosition();
587
+ updateTouchScrollPosition(touchState, touch);
542
588
  return;
543
589
  }
544
590
 
545
591
  // Avoid blocking pinch zoom or text selection adjustments on iOS Safari.
546
592
  if (event.touches.length === 2) {
547
- updateTouchPosition();
593
+ updateTouchScrollPosition(touchState, touch);
548
594
  return;
549
595
  }
550
- let allowTouchMove = false;
551
-
552
- // Allow the ability to adjust text selection.
553
- if (target) {
554
- const selection = target.ownerDocument.defaultView?.getSelection();
555
- if (selection && !selection.isCollapsed && selection.containsNode(target, true)) {
556
- allowTouchMove = true;
557
- }
558
- }
559
-
560
- // Allow user to drag the selection handles in an input element.
561
- if (target instanceof win.HTMLInputElement) {
562
- const input = target;
563
- if (input.selectionStart != null && input.selectionEnd != null && input.selectionStart < input.selectionEnd && doc.activeElement === input) {
564
- allowTouchMove = true;
565
- }
566
- }
596
+ const allowTouchMove = shouldIgnoreSwipeForTextSelection(doc, resolvedRootElement);
567
597
  if (allowTouchMove || !open || !mounted || nestedDrawerOpen) {
568
- updateTouchPosition();
598
+ updateTouchScrollPosition(touchState, touch);
599
+ return;
600
+ }
601
+ if (preserveNativeCrossAxisScrollOnMove(touchState, touch, isVerticalScrollAxis)) {
602
+ updateTouchScrollPosition(touchState, touch);
569
603
  return;
570
604
  }
571
605
  const scrollTarget = touchState.scrollTarget;
@@ -573,7 +607,7 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
573
607
  if (event.cancelable) {
574
608
  event.preventDefault();
575
609
  }
576
- updateTouchPosition();
610
+ updateTouchScrollPosition(touchState, touch);
577
611
  return;
578
612
  }
579
613
  const hasScrollableContent = hasScrollableContentOnAxis(scrollTarget, scrollAxis);
@@ -583,13 +617,13 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
583
617
  if (event.cancelable) {
584
618
  event.preventDefault();
585
619
  }
586
- updateTouchPosition();
620
+ updateTouchScrollPosition(touchState, touch);
587
621
  return;
588
622
  }
589
- const delta = scrollAxis === 'vertical' ? touch.clientY - touchState.lastY : touch.clientX - touchState.lastX;
623
+ const delta = drawerAxisDelta;
590
624
  if (delta !== 0) {
591
625
  const canSwipeFromScrollEdge = canSwipeFromScrollEdgeOnMove(scrollTarget, scrollAxis, swipeDirection, delta);
592
- if (touchState.allowSwipe !== true) {
626
+ if (!touchState.allowSwipe) {
593
627
  if (!event.cancelable) {
594
628
  touchState.allowSwipe = false;
595
629
  } else if (canSwipeFromScrollEdge) {
@@ -602,7 +636,7 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
602
636
  event.preventDefault();
603
637
  }
604
638
  }
605
- updateTouchPosition();
639
+ updateTouchScrollPosition(touchState, touch);
606
640
  }
607
641
  doc.addEventListener('touchmove', handleNativeTouchMove, {
608
642
  passive: false,
@@ -613,7 +647,7 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
613
647
  capture: true
614
648
  });
615
649
  };
616
- }, [mounted, nestedDrawerOpen, open, popupElementState, scrollAxis, swipeDirection, viewportElement]);
650
+ }, [mounted, nestedDrawerOpen, open, popupElementState, isVerticalScrollAxis, scrollAxis, swipeDirection, viewportElement]);
617
651
  React.useEffect(() => {
618
652
  if (!snapPointRange || swipe.swiping) {
619
653
  return;
@@ -661,6 +695,7 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
661
695
  }
662
696
  }), [store, swipe.getDragStyles, swipe.swiping, swipeRelease]);
663
697
  function resetTouchTrackingState() {
698
+ ignoreTouchSwipeRef.current = false;
664
699
  touchScrollStateRef.current = null;
665
700
  lastPointerTypeRef.current = '';
666
701
  ignoreNextTouchStartFromPenRef.current = false;
@@ -673,12 +708,15 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
673
708
  onPointerDown(event) {
674
709
  lastPointerTypeRef.current = event.pointerType;
675
710
  ignoreNextTouchStartFromPenRef.current = event.pointerType === 'pen';
676
- if (!open || !mounted || nestedDrawerOpen || event.pointerType === 'touch') {
711
+ if (!open || !mounted || nestedDrawerOpen) {
677
712
  return;
678
713
  }
679
714
  const doc = ownerDocument(event.currentTarget);
680
- const elementAtPoint = typeof doc.elementFromPoint === 'function' ? doc.elementFromPoint(event.clientX, event.clientY) : null;
681
- if (elementAtPoint?.closest('[data-swipe-ignore]')) {
715
+ const elementAtPoint = getElementAtPoint(doc, event.clientX, event.clientY);
716
+ if (isSwipeIgnoredTarget(elementAtPoint) || isDrawerContentTarget(elementAtPoint)) {
717
+ return;
718
+ }
719
+ if (event.pointerType === 'touch') {
682
720
  return;
683
721
  }
684
722
  swipePointerProps.onPointerDown?.(event);
@@ -711,10 +749,12 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
711
749
  const startedFromPenPointerDown = lastPointerTypeRef.current === 'pen' && ignoreNextTouchStartFromPenRef.current;
712
750
  if (startedFromPenPointerDown) {
713
751
  ignoreNextTouchStartFromPenRef.current = false;
752
+ ignoreTouchSwipeRef.current = false;
714
753
  touchScrollStateRef.current = null;
715
754
  return;
716
755
  }
717
756
  if (!open || !mounted || nestedDrawerOpen) {
757
+ ignoreTouchSwipeRef.current = false;
718
758
  touchScrollStateRef.current = null;
719
759
  return;
720
760
  }
@@ -723,31 +763,54 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
723
763
  return;
724
764
  }
725
765
  if (isReactTouchEventOnRangeInput(event)) {
766
+ ignoreTouchSwipeRef.current = false;
767
+ touchScrollStateRef.current = null;
768
+ return;
769
+ }
770
+ const doc = ownerDocument(event.currentTarget);
771
+ const elementAtPoint = getElementAtPoint(doc, touch.clientX, touch.clientY);
772
+ ignoreTouchSwipeRef.current = isSwipeIgnoredTarget(elementAtPoint);
773
+ if (ignoreTouchSwipeRef.current) {
726
774
  touchScrollStateRef.current = null;
727
775
  return;
728
776
  }
729
777
  const rootElement = viewportElement ?? popupElementState;
730
778
  const target = isElement(event.target) ? event.target : null;
731
- const scrollTarget = rootElement && target && contains(rootElement, target) ? findScrollableTouchTarget(target, rootElement, scrollAxis) : null;
779
+ let scrollTarget = null;
780
+ let hasCrossAxisScrollableContent = false;
781
+ if (rootElement && target && contains(rootElement, target)) {
782
+ scrollTarget = findScrollableTouchTarget(target, rootElement, scrollAxis);
783
+ hasCrossAxisScrollableContent = findScrollableTouchTarget(target, rootElement, crossScrollAxis) != null;
784
+ }
732
785
  let allowSwipe = null;
733
786
  if (scrollTarget) {
734
787
  const canSwipeFromEdge = isAtSwipeStartEdge(scrollTarget, scrollAxis, swipeDirection);
735
788
  allowSwipe = canSwipeFromEdge ? null : false;
736
789
  }
737
790
  touchScrollStateRef.current = {
791
+ startX: touch.clientX,
792
+ startY: touch.clientY,
738
793
  lastX: touch.clientX,
739
794
  lastY: touch.clientY,
740
795
  scrollTarget,
741
- allowSwipe
796
+ hasCrossAxisScrollableContent,
797
+ allowSwipe,
798
+ preserveNativeCrossAxisScroll: false
742
799
  };
743
800
  swipeTouchProps.onTouchStart?.(event);
744
801
  },
745
802
  onTouchMove(event) {
803
+ if (ignoreTouchSwipeRef.current) {
804
+ return;
805
+ }
746
806
  if (isReactTouchEventOnRangeInput(event)) {
747
807
  return;
748
808
  }
749
809
  const touchState = touchScrollStateRef.current;
750
- if (touchState?.scrollTarget && touchState.allowSwipe !== true) {
810
+ if (touchState?.preserveNativeCrossAxisScroll) {
811
+ return;
812
+ }
813
+ if (touchState?.allowSwipe === false || touchState?.scrollTarget != null && !touchState.allowSwipe) {
751
814
  return;
752
815
  }
753
816
  swipeTouchProps.onTouchMove?.(event);
@@ -759,7 +822,10 @@ export const DrawerViewport = /*#__PURE__*/React.forwardRef(function DrawerViewp
759
822
  onTouchCancel(event) {
760
823
  resetTouchTrackingState();
761
824
  swipeTouchProps.onTouchCancel?.(event);
762
- }
825
+ },
826
+ // Drawer popups use drawer-specific nested state attributes.
827
+ // Suppress DialogViewport's generic nested dialog attribute.
828
+ ['data-nested-dialog-open']: undefined
763
829
  }),
764
830
  children: /*#__PURE__*/_jsx(DrawerViewportContext.Provider, {
765
831
  value: swipeProviderValue,
@@ -787,6 +853,12 @@ function setBackdropSwipingAttribute(backdropElement, swiping) {
787
853
  }
788
854
  backdropElement.removeAttribute(DrawerPopupDataAttributes.swiping);
789
855
  }
856
+ function isSwipeIgnoredTarget(target) {
857
+ return Boolean(target?.closest(BASE_UI_SWIPE_IGNORE_SELECTOR));
858
+ }
859
+ function isDrawerContentTarget(target) {
860
+ return Boolean(target?.closest(DRAWER_CONTENT_SELECTOR));
861
+ }
790
862
  function getBaseSwipeThreshold(element, direction) {
791
863
  const size = direction === 'left' || direction === 'right' ? element.offsetWidth : element.offsetHeight;
792
864
  return Math.max(size * 0.5, MIN_SWIPE_THRESHOLD);
@@ -794,6 +866,35 @@ function getBaseSwipeThreshold(element, direction) {
794
866
  function isRangeInput(target, win) {
795
867
  return target instanceof win.HTMLInputElement && target.type === 'range';
796
868
  }
869
+ function isTextSelectionControl(target) {
870
+ if (!isElement(target)) {
871
+ return false;
872
+ }
873
+ return target.tagName === 'INPUT' || target.tagName === 'TEXTAREA';
874
+ }
875
+ function hasExpandedSelectionWithinTarget(selection, target) {
876
+ const anchorElement = isElement(selection.anchorNode) ? selection.anchorNode : selection.anchorNode?.parentElement;
877
+ const focusElement = isElement(selection.focusNode) ? selection.focusNode : selection.focusNode?.parentElement;
878
+ return selection.containsNode(target, true) || contains(target, anchorElement) || contains(target, focusElement);
879
+ }
880
+ function shouldIgnoreSwipeForTextSelection(doc, rootElement) {
881
+ const activeElement = doc.activeElement;
882
+ const activeElementWithinRoot = Boolean(activeElement && contains(rootElement, activeElement));
883
+ if (activeElementWithinRoot && isTextSelectionControl(activeElement)) {
884
+ const {
885
+ selectionStart,
886
+ selectionEnd
887
+ } = activeElement;
888
+ if (selectionStart != null && selectionEnd != null && selectionStart < selectionEnd) {
889
+ return true;
890
+ }
891
+ }
892
+ const selection = doc.getSelection?.();
893
+ if (!selection || selection.isCollapsed) {
894
+ return false;
895
+ }
896
+ return hasExpandedSelectionWithinTarget(selection, rootElement);
897
+ }
797
898
  function isEventOnRangeInput(event, win) {
798
899
  const composedPath = event.composedPath();
799
900
  if (composedPath) {
@@ -804,6 +905,27 @@ function isEventOnRangeInput(event, win) {
804
905
  function isReactTouchEventOnRangeInput(event) {
805
906
  return isEventOnRangeInput(event.nativeEvent, ownerWindow(event.currentTarget));
806
907
  }
908
+ function updateTouchScrollPosition(touchState, touch) {
909
+ touchState.lastX = touch.clientX;
910
+ touchState.lastY = touch.clientY;
911
+ }
912
+ function preserveNativeCrossAxisScrollOnMove(touchState, touch, isVerticalScrollAxis) {
913
+ if (touchState.preserveNativeCrossAxisScroll) {
914
+ return true;
915
+ }
916
+ if (touchState.allowSwipe === true || !touchState.hasCrossAxisScrollableContent) {
917
+ return false;
918
+ }
919
+ const drawerAxisGestureDelta = isVerticalScrollAxis ? touch.clientY - touchState.startY : touch.clientX - touchState.startX;
920
+ const crossAxisGestureDelta = isVerticalScrollAxis ? touch.clientX - touchState.startX : touch.clientY - touchState.startY;
921
+ const absDrawerAxisGestureDelta = Math.abs(drawerAxisGestureDelta);
922
+ const absCrossAxisGestureDelta = Math.abs(crossAxisGestureDelta);
923
+ if (absCrossAxisGestureDelta < 6 || absCrossAxisGestureDelta <= absDrawerAxisGestureDelta + 2) {
924
+ return false;
925
+ }
926
+ touchState.preserveNativeCrossAxisScroll = true;
927
+ return true;
928
+ }
807
929
  function hasScrollableContentOnAxis(scrollTarget, axis) {
808
930
  return axis === 'vertical' ? scrollTarget.scrollHeight > scrollTarget.clientHeight : scrollTarget.scrollWidth > scrollTarget.clientWidth;
809
931
  }
@@ -0,0 +1,22 @@
1
+ export declare enum DrawerViewportDataAttributes {
2
+ /**
3
+ * Present when the drawer is open.
4
+ */
5
+ open = "data-open",
6
+ /**
7
+ * Present when the drawer is closed.
8
+ */
9
+ closed = "data-closed",
10
+ /**
11
+ * Present when the drawer is animating in.
12
+ */
13
+ startingStyle = "data-starting-style",
14
+ /**
15
+ * Present when the drawer is animating out.
16
+ */
17
+ endingStyle = "data-ending-style",
18
+ /**
19
+ * Present when the drawer is nested within another drawer.
20
+ */
21
+ nested = "data-nested",
22
+ }
@@ -0,0 +1,24 @@
1
+ import { CommonPopupDataAttributes } from "../../utils/popupStateMapping.js";
2
+ export let DrawerViewportDataAttributes = function (DrawerViewportDataAttributes) {
3
+ /**
4
+ * Present when the drawer is open.
5
+ */
6
+ DrawerViewportDataAttributes[DrawerViewportDataAttributes["open"] = CommonPopupDataAttributes.open] = "open";
7
+ /**
8
+ * Present when the drawer is closed.
9
+ */
10
+ DrawerViewportDataAttributes[DrawerViewportDataAttributes["closed"] = CommonPopupDataAttributes.closed] = "closed";
11
+ /**
12
+ * Present when the drawer is animating in.
13
+ */
14
+ DrawerViewportDataAttributes[DrawerViewportDataAttributes["startingStyle"] = CommonPopupDataAttributes.startingStyle] = "startingStyle";
15
+ /**
16
+ * Present when the drawer is animating out.
17
+ */
18
+ DrawerViewportDataAttributes[DrawerViewportDataAttributes["endingStyle"] = CommonPopupDataAttributes.endingStyle] = "endingStyle";
19
+ /**
20
+ * Present when the drawer is nested within another drawer.
21
+ */
22
+ DrawerViewportDataAttributes["nested"] = "data-nested";
23
+ return DrawerViewportDataAttributes;
24
+ }({});
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { FieldRoot } from "../root/FieldRoot.js";
2
+ import { type FieldRootState } from "../root/FieldRoot.js";
3
3
  import { BaseUIComponentProps } from "../../utils/types.js";
4
4
  import { REASONS } from "../../utils/reasons.js";
5
5
  import type { BaseUIChangeEventDetails } from "../../utils/createBaseUIEventDetails.js";
@@ -14,8 +14,8 @@ import type { BaseUIChangeEventDetails } from "../../utils/createBaseUIEventDeta
14
14
  * Documentation: [Base UI Field](https://base-ui.com/react/components/field)
15
15
  */
16
16
  export declare const FieldControl: React.ForwardRefExoticComponent<Omit<FieldControlProps, "ref"> & React.RefAttributes<HTMLElement>>;
17
- export type FieldControlState = FieldRoot.State;
18
- export interface FieldControlProps extends BaseUIComponentProps<'input', FieldControl.State> {
17
+ export interface FieldControlState extends FieldRootState {}
18
+ export interface FieldControlProps extends BaseUIComponentProps<'input', FieldControlState> {
19
19
  /**
20
20
  * Callback fired when the `value` changes. Use when controlled.
21
21
  */
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { FieldRoot } from "../root/FieldRoot.js";
2
+ import { type FieldRootState } from "../root/FieldRoot.js";
3
3
  import type { BaseUIComponentProps } from "../../utils/types.js";
4
4
  /**
5
5
  * A paragraph with additional information about the field.
@@ -8,8 +8,8 @@ import type { BaseUIComponentProps } from "../../utils/types.js";
8
8
  * Documentation: [Base UI Field](https://base-ui.com/react/components/field)
9
9
  */
10
10
  export declare const FieldDescription: React.ForwardRefExoticComponent<Omit<FieldDescriptionProps, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
11
- export type FieldDescriptionState = FieldRoot.State;
12
- export interface FieldDescriptionProps extends BaseUIComponentProps<'p', FieldDescription.State> {}
11
+ export interface FieldDescriptionState extends FieldRootState {}
12
+ export interface FieldDescriptionProps extends BaseUIComponentProps<'p', FieldDescriptionState> {}
13
13
  export declare namespace FieldDescription {
14
14
  type State = FieldDescriptionState;
15
15
  type Props = FieldDescriptionProps;
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { FieldRoot } from "../root/FieldRoot.js";
2
+ import { type FieldRootState } from "../root/FieldRoot.js";
3
3
  import type { BaseUIComponentProps } from "../../utils/types.js";
4
4
  import { type TransitionStatus } from "../../utils/useTransitionStatus.js";
5
5
  /**
@@ -9,17 +9,20 @@ import { type TransitionStatus } from "../../utils/useTransitionStatus.js";
9
9
  * Documentation: [Base UI Field](https://base-ui.com/react/components/field)
10
10
  */
11
11
  export declare const FieldError: React.ForwardRefExoticComponent<Omit<FieldErrorProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
12
- export interface FieldErrorState extends FieldRoot.State {
12
+ export interface FieldErrorState extends FieldRootState {
13
+ /**
14
+ * The transition status of the component.
15
+ */
13
16
  transitionStatus: TransitionStatus;
14
17
  }
15
- export interface FieldErrorProps extends BaseUIComponentProps<'div', FieldError.State> {
18
+ export interface FieldErrorProps extends BaseUIComponentProps<'div', FieldErrorState> {
16
19
  /**
17
20
  * Determines whether to show the error message according to the field’s
18
21
  * [ValidityState](https://developer.mozilla.org/en-US/docs/Web/API/ValidityState).
19
22
  * Specifying `true` will always show the error message, and lets external libraries
20
23
  * control the visibility.
21
24
  */
22
- match?: (boolean | keyof ValidityState) | undefined;
25
+ match?: boolean | keyof ValidityState | undefined;
23
26
  }
24
27
  export declare namespace FieldError {
25
28
  type State = FieldErrorState;
@@ -27,4 +27,12 @@ export declare enum FieldErrorDataAttributes {
27
27
  * Present when the field control is focused.
28
28
  */
29
29
  focused = "data-focused",
30
+ /**
31
+ * Present when the error message is animating in.
32
+ */
33
+ startingStyle = "data-starting-style",
34
+ /**
35
+ * Present when the error message is animating out.
36
+ */
37
+ endingStyle = "data-ending-style",
30
38
  }
@@ -1,4 +1,5 @@
1
- export let FieldErrorDataAttributes = /*#__PURE__*/function (FieldErrorDataAttributes) {
1
+ import { TransitionStatusDataAttributes } from "../../utils/stateAttributesMapping.js";
2
+ export let FieldErrorDataAttributes = function (FieldErrorDataAttributes) {
2
3
  /**
3
4
  * Present when the field is disabled.
4
5
  */
@@ -27,5 +28,13 @@ export let FieldErrorDataAttributes = /*#__PURE__*/function (FieldErrorDataAttri
27
28
  * Present when the field control is focused.
28
29
  */
29
30
  FieldErrorDataAttributes["focused"] = "data-focused";
31
+ /**
32
+ * Present when the error message is animating in.
33
+ */
34
+ FieldErrorDataAttributes[FieldErrorDataAttributes["startingStyle"] = TransitionStatusDataAttributes.startingStyle] = "startingStyle";
35
+ /**
36
+ * Present when the error message is animating out.
37
+ */
38
+ FieldErrorDataAttributes[FieldErrorDataAttributes["endingStyle"] = TransitionStatusDataAttributes.endingStyle] = "endingStyle";
30
39
  return FieldErrorDataAttributes;
31
40
  }({});
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { FieldRoot } from "../root/FieldRoot.js";
2
+ import { type FieldRootState } from "../root/FieldRoot.js";
3
3
  import type { BaseUIComponentProps } from "../../utils/types.js";
4
4
  /**
5
5
  * Groups individual items in a checkbox group or radio group with a label and description.
@@ -8,7 +8,8 @@ import type { BaseUIComponentProps } from "../../utils/types.js";
8
8
  * Documentation: [Base UI Field](https://base-ui.com/react/components/field)
9
9
  */
10
10
  export declare const FieldItem: React.ForwardRefExoticComponent<Omit<FieldItemProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
11
- export interface FieldItemProps extends BaseUIComponentProps<'div', FieldItem.State> {
11
+ export interface FieldItemState extends FieldRootState {}
12
+ export interface FieldItemProps extends BaseUIComponentProps<'div', FieldItemState> {
12
13
  /**
13
14
  * Whether the wrapped control should ignore user interaction.
14
15
  * The `disabled` prop on `<Field.Root>` takes precedence over this.
@@ -17,6 +18,6 @@ export interface FieldItemProps extends BaseUIComponentProps<'div', FieldItem.St
17
18
  disabled?: boolean | undefined;
18
19
  }
19
20
  export declare namespace FieldItem {
20
- type State = FieldRoot.State;
21
+ type State = FieldItemState;
21
22
  type Props = FieldItemProps;
22
23
  }
@@ -32,7 +32,7 @@ export const FieldItem = /*#__PURE__*/React.forwardRef(function FieldItem(compon
32
32
  const parentId = checkboxGroupContext?.parent.id;
33
33
  // this a more reliable check
34
34
  const hasParentCheckbox = checkboxGroupContext?.allValues !== undefined;
35
- const initialControlId = hasParentCheckbox ? parentId : undefined;
35
+ const controlId = hasParentCheckbox ? parentId : undefined;
36
36
  const fieldItemContext = React.useMemo(() => ({
37
37
  disabled
38
38
  }), [disabled]);
@@ -43,7 +43,7 @@ export const FieldItem = /*#__PURE__*/React.forwardRef(function FieldItem(compon
43
43
  stateAttributesMapping: fieldValidityMapping
44
44
  });
45
45
  return /*#__PURE__*/_jsx(LabelableProvider, {
46
- initialControlId: initialControlId,
46
+ controlId: controlId,
47
47
  children: /*#__PURE__*/_jsx(FieldItemContext.Provider, {
48
48
  value: fieldItemContext,
49
49
  children: element
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { FieldRoot } from "../root/FieldRoot.js";
2
+ import type { FieldRootState } from "../root/FieldRoot.js";
3
3
  import type { BaseUIComponentProps } from "../../utils/types.js";
4
4
  /**
5
5
  * An accessible label that is automatically associated with the field control.
@@ -8,8 +8,8 @@ import type { BaseUIComponentProps } from "../../utils/types.js";
8
8
  * Documentation: [Base UI Field](https://base-ui.com/react/components/field)
9
9
  */
10
10
  export declare const FieldLabel: React.ForwardRefExoticComponent<Omit<FieldLabelProps, "ref"> & React.RefAttributes<HTMLElement>>;
11
- export type FieldLabelState = FieldRoot.State;
12
- export interface FieldLabelProps extends BaseUIComponentProps<'label', FieldLabel.State> {
11
+ export interface FieldLabelState extends FieldRootState {}
12
+ export interface FieldLabelProps extends BaseUIComponentProps<'label', FieldLabelState> {
13
13
  /**
14
14
  * Whether the component renders a native `<label>` element when replacing it via the `render` prop.
15
15
  * Set to `false` if the rendered element is not a label (e.g. `<div>`).