@base-ui/react 1.6.0 → 1.7.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 (1217) hide show
  1. package/CHANGELOG.md +229 -0
  2. package/accordion/item/AccordionItem.js +6 -13
  3. package/accordion/item/AccordionItem.mjs +6 -13
  4. package/accordion/item/AccordionItemContext.d.mts +2 -1
  5. package/accordion/item/AccordionItemContext.d.ts +2 -1
  6. package/accordion/item/stateAttributesMapping.js +3 -5
  7. package/accordion/item/stateAttributesMapping.mjs +3 -5
  8. package/accordion/panel/AccordionPanel.js +12 -11
  9. package/accordion/panel/AccordionPanel.mjs +12 -11
  10. package/accordion/panel/AccordionPanelDataAttributes.d.mts +1 -1
  11. package/accordion/panel/AccordionPanelDataAttributes.d.ts +1 -1
  12. package/accordion/panel/AccordionPanelDataAttributes.js +1 -1
  13. package/accordion/panel/AccordionPanelDataAttributes.mjs +1 -1
  14. package/accordion/root/AccordionRoot.js +4 -7
  15. package/accordion/root/AccordionRoot.mjs +4 -7
  16. package/accordion/trigger/AccordionTrigger.js +7 -7
  17. package/accordion/trigger/AccordionTrigger.mjs +7 -7
  18. package/alert-dialog/handle.d.mts +6 -8
  19. package/alert-dialog/handle.d.ts +6 -8
  20. package/alert-dialog/handle.js +8 -19
  21. package/alert-dialog/handle.mjs +7 -17
  22. package/alert-dialog/root/AlertDialogRoot.js +1 -1
  23. package/alert-dialog/root/AlertDialogRoot.mjs +1 -1
  24. package/autocomplete/index.d.mts +1 -0
  25. package/autocomplete/index.d.ts +1 -0
  26. package/autocomplete/index.parts.d.mts +1 -1
  27. package/autocomplete/index.parts.d.ts +1 -1
  28. package/autocomplete/index.parts.js +2 -2
  29. package/autocomplete/index.parts.mjs +1 -1
  30. package/autocomplete/input-group/AutocompleteInputGroup.d.mts +1 -1
  31. package/autocomplete/input-group/AutocompleteInputGroup.d.ts +1 -1
  32. package/autocomplete/root/AutocompleteRoot.d.mts +6 -1
  33. package/autocomplete/root/AutocompleteRoot.d.ts +6 -1
  34. package/autocomplete/root/AutocompleteRoot.js +4 -10
  35. package/autocomplete/root/AutocompleteRoot.mjs +4 -10
  36. package/autocomplete/separator/AutocompleteSeparator.d.mts +26 -0
  37. package/autocomplete/separator/AutocompleteSeparator.d.ts +26 -0
  38. package/autocomplete/separator/AutocompleteSeparator.js +15 -0
  39. package/autocomplete/separator/AutocompleteSeparator.mjs +10 -0
  40. package/autocomplete/trigger/AutocompleteTrigger.d.mts +1 -1
  41. package/autocomplete/trigger/AutocompleteTrigger.d.ts +1 -1
  42. package/avatar/fallback/AvatarFallback.d.mts +2 -0
  43. package/avatar/fallback/AvatarFallback.d.ts +2 -0
  44. package/avatar/fallback/AvatarFallback.js +5 -5
  45. package/avatar/fallback/AvatarFallback.mjs +5 -5
  46. package/avatar/image/AvatarImage.d.mts +1 -1
  47. package/avatar/image/AvatarImage.d.ts +1 -1
  48. package/avatar/image/AvatarImageDataAttributes.d.mts +1 -1
  49. package/avatar/image/AvatarImageDataAttributes.d.ts +1 -1
  50. package/avatar/image/AvatarImageDataAttributes.js +1 -1
  51. package/avatar/image/AvatarImageDataAttributes.mjs +1 -1
  52. package/checkbox/indicator/CheckboxIndicator.js +3 -5
  53. package/checkbox/indicator/CheckboxIndicator.mjs +3 -5
  54. package/checkbox/indicator/CheckboxIndicatorDataAttributes.d.mts +1 -1
  55. package/checkbox/indicator/CheckboxIndicatorDataAttributes.d.ts +1 -1
  56. package/checkbox/indicator/CheckboxIndicatorDataAttributes.js +1 -1
  57. package/checkbox/indicator/CheckboxIndicatorDataAttributes.mjs +1 -1
  58. package/checkbox/root/CheckboxRoot.d.mts +2 -1
  59. package/checkbox/root/CheckboxRoot.d.ts +2 -1
  60. package/checkbox/root/CheckboxRoot.js +39 -31
  61. package/checkbox/root/CheckboxRoot.mjs +39 -31
  62. package/checkbox/utils/{useStateAttributesMapping.d.mts → getCheckboxStateAttributesMapping.d.mts} +1 -1
  63. package/checkbox/utils/{useStateAttributesMapping.d.ts → getCheckboxStateAttributesMapping.d.ts} +1 -1
  64. package/checkbox/utils/getCheckboxStateAttributesMapping.js +26 -0
  65. package/checkbox/utils/{useStateAttributesMapping.mjs → getCheckboxStateAttributesMapping.mjs} +5 -9
  66. package/checkbox-group/CheckboxGroup.js +33 -24
  67. package/checkbox-group/CheckboxGroup.mjs +33 -24
  68. package/checkbox-group/CheckboxGroupContext.d.mts +2 -5
  69. package/checkbox-group/CheckboxGroupContext.d.ts +2 -5
  70. package/checkbox-group/CheckboxGroupContext.js +2 -8
  71. package/checkbox-group/CheckboxGroupContext.mjs +2 -7
  72. package/checkbox-group/useCheckboxGroupParent.d.mts +2 -4
  73. package/checkbox-group/useCheckboxGroupParent.d.ts +2 -4
  74. package/checkbox-group/useCheckboxGroupParent.js +5 -6
  75. package/checkbox-group/useCheckboxGroupParent.mjs +5 -6
  76. package/collapsible/panel/CollapsiblePanel.js +12 -11
  77. package/collapsible/panel/CollapsiblePanel.mjs +12 -11
  78. package/collapsible/panel/CollapsiblePanelDataAttributes.d.mts +1 -1
  79. package/collapsible/panel/CollapsiblePanelDataAttributes.d.ts +1 -1
  80. package/collapsible/panel/CollapsiblePanelDataAttributes.js +1 -1
  81. package/collapsible/panel/CollapsiblePanelDataAttributes.mjs +1 -1
  82. package/collapsible/panel/useCollapsiblePanel.js +29 -24
  83. package/collapsible/panel/useCollapsiblePanel.mjs +29 -24
  84. package/collapsible/root/CollapsibleRootDataAttributes.d.mts +18 -0
  85. package/collapsible/root/CollapsibleRootDataAttributes.d.ts +18 -0
  86. package/collapsible/root/CollapsibleRootDataAttributes.js +26 -0
  87. package/collapsible/root/CollapsibleRootDataAttributes.mjs +20 -0
  88. package/collapsible/root/useCollapsibleRoot.d.mts +2 -1
  89. package/collapsible/root/useCollapsibleRoot.d.ts +2 -1
  90. package/collapsible/root/useCollapsibleRoot.js +5 -3
  91. package/collapsible/root/useCollapsibleRoot.mjs +5 -3
  92. package/combobox/arrow/ComboboxArrow.d.mts +1 -1
  93. package/combobox/arrow/ComboboxArrow.d.ts +1 -1
  94. package/combobox/backdrop/ComboboxBackdropDataAttributes.d.mts +1 -1
  95. package/combobox/backdrop/ComboboxBackdropDataAttributes.d.ts +1 -1
  96. package/combobox/backdrop/ComboboxBackdropDataAttributes.js +1 -1
  97. package/combobox/backdrop/ComboboxBackdropDataAttributes.mjs +1 -1
  98. package/combobox/chip/ComboboxChip.js +4 -6
  99. package/combobox/chip/ComboboxChip.mjs +4 -6
  100. package/combobox/chip-remove/ComboboxChipRemove.js +1 -7
  101. package/combobox/chip-remove/ComboboxChipRemove.mjs +1 -7
  102. package/combobox/clear/ComboboxClear.js +5 -3
  103. package/combobox/clear/ComboboxClear.mjs +5 -3
  104. package/combobox/clear/ComboboxClearDataAttributes.d.mts +1 -1
  105. package/combobox/clear/ComboboxClearDataAttributes.d.ts +1 -1
  106. package/combobox/clear/ComboboxClearDataAttributes.js +1 -1
  107. package/combobox/clear/ComboboxClearDataAttributes.mjs +1 -1
  108. package/combobox/collection/ComboboxCollection.d.mts +1 -1
  109. package/combobox/collection/ComboboxCollection.d.ts +1 -1
  110. package/combobox/collection/ComboboxCollection.js +0 -3
  111. package/combobox/collection/ComboboxCollection.mjs +0 -3
  112. package/combobox/group-label/ComboboxGroupLabel.js +1 -1
  113. package/combobox/group-label/ComboboxGroupLabel.mjs +1 -1
  114. package/combobox/index.d.mts +1 -0
  115. package/combobox/index.d.ts +1 -0
  116. package/combobox/index.parts.d.mts +1 -1
  117. package/combobox/index.parts.d.ts +1 -1
  118. package/combobox/index.parts.js +2 -2
  119. package/combobox/index.parts.mjs +1 -1
  120. package/combobox/input/ComboboxInput.d.mts +1 -1
  121. package/combobox/input/ComboboxInput.d.ts +1 -1
  122. package/combobox/input/ComboboxInput.js +43 -88
  123. package/combobox/input/ComboboxInput.mjs +44 -89
  124. package/combobox/input-group/ComboboxInputGroup.d.mts +1 -1
  125. package/combobox/input-group/ComboboxInputGroup.d.ts +1 -1
  126. package/combobox/input-group/ComboboxInputGroup.js +3 -8
  127. package/combobox/input-group/ComboboxInputGroup.mjs +4 -9
  128. package/combobox/item/ComboboxItem.js +21 -23
  129. package/combobox/item/ComboboxItem.mjs +22 -24
  130. package/combobox/item-indicator/ComboboxItemIndicator.js +1 -2
  131. package/combobox/item-indicator/ComboboxItemIndicator.mjs +1 -2
  132. package/combobox/item-indicator/ComboboxItemIndicatorDataAttributes.d.mts +1 -1
  133. package/combobox/item-indicator/ComboboxItemIndicatorDataAttributes.d.ts +1 -1
  134. package/combobox/item-indicator/ComboboxItemIndicatorDataAttributes.js +1 -1
  135. package/combobox/item-indicator/ComboboxItemIndicatorDataAttributes.mjs +1 -1
  136. package/combobox/label/ComboboxLabel.js +2 -1
  137. package/combobox/label/ComboboxLabel.mjs +2 -1
  138. package/combobox/list/ComboboxList.js +5 -10
  139. package/combobox/list/ComboboxList.mjs +5 -10
  140. package/combobox/popup/ComboboxPopup.d.mts +1 -1
  141. package/combobox/popup/ComboboxPopup.d.ts +1 -1
  142. package/combobox/popup/ComboboxPopup.js +5 -7
  143. package/combobox/popup/ComboboxPopup.mjs +6 -8
  144. package/combobox/popup/ComboboxPopupDataAttributes.d.mts +1 -1
  145. package/combobox/popup/ComboboxPopupDataAttributes.d.ts +1 -1
  146. package/combobox/popup/ComboboxPopupDataAttributes.js +1 -1
  147. package/combobox/popup/ComboboxPopupDataAttributes.mjs +1 -1
  148. package/combobox/portal/ComboboxPortal.d.mts +6 -2
  149. package/combobox/portal/ComboboxPortal.d.ts +6 -2
  150. package/combobox/positioner/ComboboxPositioner.d.mts +1 -1
  151. package/combobox/positioner/ComboboxPositioner.d.ts +1 -1
  152. package/combobox/positioner/ComboboxPositioner.js +13 -13
  153. package/combobox/positioner/ComboboxPositioner.mjs +14 -14
  154. package/combobox/positioner/ComboboxPositionerContext.d.mts +1 -1
  155. package/combobox/positioner/ComboboxPositionerContext.d.ts +1 -1
  156. package/combobox/root/AriaCombobox.d.mts +5 -10
  157. package/combobox/root/AriaCombobox.d.ts +5 -10
  158. package/combobox/root/AriaCombobox.js +259 -196
  159. package/combobox/root/AriaCombobox.mjs +262 -199
  160. package/combobox/root/utils/index.js +2 -4
  161. package/combobox/root/utils/index.mjs +2 -4
  162. package/combobox/root/utils/useFilter.js +2 -3
  163. package/combobox/root/utils/useFilter.mjs +2 -3
  164. package/combobox/separator/ComboboxSeparator.d.mts +26 -0
  165. package/combobox/separator/ComboboxSeparator.d.ts +26 -0
  166. package/combobox/separator/ComboboxSeparator.js +15 -0
  167. package/combobox/separator/ComboboxSeparator.mjs +10 -0
  168. package/combobox/store.d.mts +6 -9
  169. package/combobox/store.d.ts +6 -9
  170. package/combobox/store.js +47 -48
  171. package/combobox/store.mjs +47 -48
  172. package/combobox/trigger/ComboboxTrigger.d.mts +1 -1
  173. package/combobox/trigger/ComboboxTrigger.d.ts +1 -1
  174. package/combobox/trigger/ComboboxTrigger.js +12 -33
  175. package/combobox/trigger/ComboboxTrigger.mjs +14 -34
  176. package/combobox/utils/ComboboxInternalDismissButton.d.mts +1 -5
  177. package/combobox/utils/ComboboxInternalDismissButton.d.ts +1 -5
  178. package/combobox/utils/parts.d.mts +24 -0
  179. package/combobox/utils/parts.d.ts +24 -0
  180. package/combobox/utils/parts.js +59 -0
  181. package/combobox/utils/parts.mjs +50 -0
  182. package/combobox/utils/stateAttributesMapping.d.mts +3 -3
  183. package/combobox/utils/stateAttributesMapping.d.ts +3 -3
  184. package/combobox/utils/useInitialLiveRegionTextMutation.js +1 -1
  185. package/combobox/utils/useInitialLiveRegionTextMutation.mjs +1 -1
  186. package/context-menu/root/ContextMenuRoot.d.mts +3 -1
  187. package/context-menu/root/ContextMenuRoot.d.ts +3 -1
  188. package/context-menu/trigger/ContextMenuTrigger.js +40 -22
  189. package/context-menu/trigger/ContextMenuTrigger.mjs +40 -22
  190. package/dialog/backdrop/DialogBackdrop.js +2 -10
  191. package/dialog/backdrop/DialogBackdrop.mjs +3 -10
  192. package/dialog/backdrop/DialogBackdropDataAttributes.d.mts +1 -1
  193. package/dialog/backdrop/DialogBackdropDataAttributes.d.ts +1 -1
  194. package/dialog/backdrop/DialogBackdropDataAttributes.js +1 -1
  195. package/dialog/backdrop/DialogBackdropDataAttributes.mjs +1 -1
  196. package/dialog/close/DialogClose.js +1 -3
  197. package/dialog/close/DialogClose.mjs +1 -3
  198. package/dialog/description/DialogDescription.js +1 -3
  199. package/dialog/description/DialogDescription.mjs +1 -3
  200. package/dialog/popup/DialogPopup.js +7 -23
  201. package/dialog/popup/DialogPopup.mjs +8 -23
  202. package/dialog/popup/DialogPopupDataAttributes.d.mts +1 -1
  203. package/dialog/popup/DialogPopupDataAttributes.d.ts +1 -1
  204. package/dialog/popup/DialogPopupDataAttributes.js +1 -1
  205. package/dialog/popup/DialogPopupDataAttributes.mjs +1 -1
  206. package/dialog/portal/DialogPortal.d.mts +3 -3
  207. package/dialog/portal/DialogPortal.d.ts +3 -3
  208. package/dialog/portal/DialogPortal.js +1 -3
  209. package/dialog/portal/DialogPortal.mjs +1 -3
  210. package/dialog/root/DialogRoot.js +1 -5
  211. package/dialog/root/DialogRoot.mjs +1 -4
  212. package/dialog/root/DialogRootContext.d.mts +3 -7
  213. package/dialog/root/DialogRootContext.d.ts +3 -7
  214. package/dialog/root/DialogRootContext.js +4 -6
  215. package/dialog/root/DialogRootContext.mjs +3 -5
  216. package/dialog/root/useDialogRoot.d.mts +0 -6
  217. package/dialog/root/useDialogRoot.d.ts +0 -6
  218. package/dialog/root/useDialogRoot.js +33 -46
  219. package/dialog/root/useDialogRoot.mjs +34 -46
  220. package/dialog/root/useRenderDialogRoot.d.mts +1 -1
  221. package/dialog/root/useRenderDialogRoot.d.ts +1 -1
  222. package/dialog/root/useRenderDialogRoot.js +34 -42
  223. package/dialog/root/useRenderDialogRoot.mjs +36 -44
  224. package/dialog/store/DialogHandle.d.mts +20 -16
  225. package/dialog/store/DialogHandle.d.ts +20 -16
  226. package/dialog/store/DialogHandle.js +32 -27
  227. package/dialog/store/DialogHandle.mjs +33 -28
  228. package/dialog/store/DialogStore.d.mts +14 -4
  229. package/dialog/store/DialogStore.d.ts +14 -4
  230. package/dialog/store/DialogStore.js +49 -34
  231. package/dialog/store/DialogStore.mjs +49 -35
  232. package/dialog/title/DialogTitle.js +1 -3
  233. package/dialog/title/DialogTitle.mjs +1 -3
  234. package/dialog/trigger/DialogTrigger.js +4 -5
  235. package/dialog/trigger/DialogTrigger.mjs +5 -6
  236. package/dialog/utils/stateAttributesMapping.d.mts +12 -0
  237. package/dialog/utils/stateAttributesMapping.d.ts +12 -0
  238. package/dialog/utils/stateAttributesMapping.js +21 -0
  239. package/dialog/utils/stateAttributesMapping.mjs +15 -0
  240. package/dialog/viewport/DialogViewport.js +3 -22
  241. package/dialog/viewport/DialogViewport.mjs +3 -21
  242. package/dialog/viewport/DialogViewportDataAttributes.d.mts +1 -1
  243. package/dialog/viewport/DialogViewportDataAttributes.d.ts +1 -1
  244. package/dialog/viewport/DialogViewportDataAttributes.js +1 -1
  245. package/dialog/viewport/DialogViewportDataAttributes.mjs +1 -1
  246. package/docs/index.md +1 -0
  247. package/docs/react/components/accordion.md +1 -1
  248. package/docs/react/components/alert-dialog.md +25 -21
  249. package/docs/react/components/autocomplete.md +158 -103
  250. package/docs/react/components/avatar.md +15 -11
  251. package/docs/react/components/checkbox.md +21 -21
  252. package/docs/react/components/collapsible.md +10 -1
  253. package/docs/react/components/combobox.md +51 -23
  254. package/docs/react/components/context-menu.md +474 -87
  255. package/docs/react/components/dialog.md +396 -21
  256. package/docs/react/components/drawer.md +27 -23
  257. package/docs/react/components/field.md +11 -11
  258. package/docs/react/components/form.md +13 -11
  259. package/docs/react/components/menu.md +138 -118
  260. package/docs/react/components/menubar.md +41 -41
  261. package/docs/react/components/navigation-menu.md +57 -71
  262. package/docs/react/components/number-field.md +6 -6
  263. package/docs/react/components/otp-field.md +20 -18
  264. package/docs/react/components/popover.md +51 -36
  265. package/docs/react/components/preview-card.md +56 -47
  266. package/docs/react/components/progress.md +3 -3
  267. package/docs/react/components/radio.md +1 -1
  268. package/docs/react/components/select.md +57 -55
  269. package/docs/react/components/slider.md +22 -22
  270. package/docs/react/components/tabs.md +275 -1
  271. package/docs/react/components/toast.md +21 -26
  272. package/docs/react/components/toolbar.md +27 -23
  273. package/docs/react/components/tooltip.md +30 -17
  274. package/docs/react/handbook/animation.md +3 -3
  275. package/docs/react/handbook/forms.md +3 -3
  276. package/docs/react/handbook/styling.md +1 -1
  277. package/docs/react/overview/about.md +10 -7
  278. package/docs/react/overview/community.md +3 -2
  279. package/docs/react/overview/quick-start.md +3 -3
  280. package/docs/react/overview/releases/v1-7-0.md +236 -0
  281. package/docs/react/overview/releases.md +10 -2
  282. package/docs/react/utils/direction-provider.md +5 -2
  283. package/drawer/backdrop/DrawerBackdrop.js +2 -10
  284. package/drawer/backdrop/DrawerBackdrop.mjs +3 -10
  285. package/drawer/backdrop/DrawerBackdropDataAttributes.d.mts +1 -1
  286. package/drawer/backdrop/DrawerBackdropDataAttributes.d.ts +1 -1
  287. package/drawer/backdrop/DrawerBackdropDataAttributes.js +1 -1
  288. package/drawer/backdrop/DrawerBackdropDataAttributes.mjs +1 -1
  289. package/drawer/handle.d.mts +16 -0
  290. package/drawer/handle.d.ts +16 -0
  291. package/drawer/handle.js +25 -0
  292. package/drawer/handle.mjs +18 -0
  293. package/drawer/indent/DrawerIndent.js +1 -1
  294. package/drawer/indent/DrawerIndent.mjs +1 -1
  295. package/drawer/indent-background/DrawerIndentBackground.js +1 -1
  296. package/drawer/indent-background/DrawerIndentBackground.mjs +1 -1
  297. package/drawer/index.parts.d.mts +1 -1
  298. package/drawer/index.parts.d.ts +1 -1
  299. package/drawer/index.parts.js +3 -3
  300. package/drawer/index.parts.mjs +1 -1
  301. package/drawer/popup/DrawerPopup.js +10 -12
  302. package/drawer/popup/DrawerPopup.mjs +11 -13
  303. package/drawer/popup/DrawerPopupDataAttributes.d.mts +1 -1
  304. package/drawer/popup/DrawerPopupDataAttributes.d.ts +1 -1
  305. package/drawer/popup/DrawerPopupDataAttributes.js +1 -1
  306. package/drawer/popup/DrawerPopupDataAttributes.mjs +1 -1
  307. package/drawer/portal/DrawerPortal.d.mts +3 -3
  308. package/drawer/portal/DrawerPortal.d.ts +3 -3
  309. package/drawer/provider/DrawerProvider.js +13 -24
  310. package/drawer/provider/DrawerProvider.mjs +13 -24
  311. package/drawer/provider/DrawerProviderContext.d.mts +3 -4
  312. package/drawer/provider/DrawerProviderContext.d.ts +3 -4
  313. package/drawer/provider/DrawerProviderContext.js +2 -8
  314. package/drawer/provider/DrawerProviderContext.mjs +2 -7
  315. package/drawer/root/DrawerRoot.d.mts +2 -2
  316. package/drawer/root/DrawerRoot.d.ts +2 -2
  317. package/drawer/root/DrawerRoot.js +30 -34
  318. package/drawer/root/DrawerRoot.mjs +31 -35
  319. package/drawer/root/DrawerRootContext.d.mts +7 -2
  320. package/drawer/root/DrawerRootContext.d.ts +7 -2
  321. package/drawer/root/DrawerRootContext.js +1 -1
  322. package/drawer/root/DrawerRootContext.mjs +1 -1
  323. package/drawer/root/useDrawerSnapPoints.d.mts +6 -2
  324. package/drawer/root/useDrawerSnapPoints.d.ts +6 -2
  325. package/drawer/root/useDrawerSnapPoints.js +16 -24
  326. package/drawer/root/useDrawerSnapPoints.mjs +15 -24
  327. package/drawer/swipe-area/DrawerSwipeArea.js +82 -49
  328. package/drawer/swipe-area/DrawerSwipeArea.mjs +82 -49
  329. package/drawer/trigger/DrawerTrigger.d.mts +1 -1
  330. package/drawer/trigger/DrawerTrigger.d.ts +1 -1
  331. package/drawer/viewport/DrawerViewport.js +178 -340
  332. package/drawer/viewport/DrawerViewport.mjs +180 -342
  333. package/drawer/viewport/DrawerViewportContext.d.mts +1 -2
  334. package/drawer/viewport/DrawerViewportContext.d.ts +1 -2
  335. package/drawer/viewport/DrawerViewportContext.js +2 -8
  336. package/drawer/viewport/DrawerViewportContext.mjs +2 -7
  337. package/drawer/viewport/DrawerViewportDataAttributes.d.mts +1 -1
  338. package/drawer/viewport/DrawerViewportDataAttributes.d.ts +1 -1
  339. package/drawer/viewport/DrawerViewportDataAttributes.js +1 -1
  340. package/drawer/viewport/DrawerViewportDataAttributes.mjs +1 -1
  341. package/drawer/virtual-keyboard-provider/DrawerVirtualKeyboardProvider.js +250 -60
  342. package/drawer/virtual-keyboard-provider/DrawerVirtualKeyboardProvider.mjs +250 -60
  343. package/field/control/FieldControl.js +2 -2
  344. package/field/control/FieldControl.mjs +2 -2
  345. package/field/error/FieldError.js +2 -2
  346. package/field/error/FieldError.mjs +2 -2
  347. package/field/error/FieldErrorDataAttributes.d.mts +1 -1
  348. package/field/error/FieldErrorDataAttributes.d.ts +1 -1
  349. package/field/error/FieldErrorDataAttributes.js +1 -1
  350. package/field/error/FieldErrorDataAttributes.mjs +1 -1
  351. package/field/item/FieldItem.js +0 -5
  352. package/field/item/FieldItem.mjs +0 -5
  353. package/field/root/FieldRoot.js +8 -15
  354. package/field/root/FieldRoot.mjs +8 -15
  355. package/field/root/useFieldValidation.d.mts +17 -2
  356. package/field/root/useFieldValidation.d.ts +17 -2
  357. package/field/root/useFieldValidation.js +83 -77
  358. package/field/root/useFieldValidation.mjs +82 -77
  359. package/field/validity/FieldValidity.js +4 -0
  360. package/field/validity/FieldValidity.mjs +4 -0
  361. package/fieldset/legend/FieldsetLegend.js +3 -10
  362. package/fieldset/legend/FieldsetLegend.mjs +4 -10
  363. package/fieldset/root/FieldsetRootContext.d.mts +1 -1
  364. package/fieldset/root/FieldsetRootContext.d.ts +1 -1
  365. package/floating-ui-react/components/FloatingDelayGroup.d.mts +2 -41
  366. package/floating-ui-react/components/FloatingDelayGroup.d.ts +2 -41
  367. package/floating-ui-react/components/FloatingDelayGroup.js +0 -9
  368. package/floating-ui-react/components/FloatingDelayGroup.mjs +0 -9
  369. package/floating-ui-react/components/FloatingFocusManager.d.mts +1 -7
  370. package/floating-ui-react/components/FloatingFocusManager.d.ts +1 -7
  371. package/floating-ui-react/components/FloatingFocusManager.js +41 -27
  372. package/floating-ui-react/components/FloatingFocusManager.mjs +41 -27
  373. package/floating-ui-react/components/FloatingPortal.d.mts +7 -14
  374. package/floating-ui-react/components/FloatingPortal.d.ts +7 -14
  375. package/floating-ui-react/components/FloatingPortal.js +11 -13
  376. package/floating-ui-react/components/FloatingPortal.mjs +11 -13
  377. package/floating-ui-react/components/FloatingRootStore.js +6 -6
  378. package/floating-ui-react/components/FloatingRootStore.mjs +7 -7
  379. package/floating-ui-react/components/FloatingTree.d.mts +1 -19
  380. package/floating-ui-react/components/FloatingTree.d.ts +1 -19
  381. package/floating-ui-react/hooks/useClick.js +5 -1
  382. package/floating-ui-react/hooks/useClick.mjs +6 -2
  383. package/floating-ui-react/hooks/useDismiss.js +2 -2
  384. package/floating-ui-react/hooks/useDismiss.mjs +2 -2
  385. package/floating-ui-react/hooks/useFloating.d.mts +9 -1
  386. package/floating-ui-react/hooks/useFloating.d.ts +9 -1
  387. package/floating-ui-react/hooks/useFloating.js +14 -2
  388. package/floating-ui-react/hooks/useFloating.mjs +13 -2
  389. package/floating-ui-react/hooks/useHoverReferenceInteraction.d.mts +12 -0
  390. package/floating-ui-react/hooks/useHoverReferenceInteraction.d.ts +12 -0
  391. package/floating-ui-react/hooks/useHoverReferenceInteraction.js +16 -4
  392. package/floating-ui-react/hooks/useHoverReferenceInteraction.mjs +16 -4
  393. package/floating-ui-react/hooks/useListNavigation.js +15 -1
  394. package/floating-ui-react/hooks/useListNavigation.mjs +15 -1
  395. package/floating-ui-react/hooks/useTypeahead.d.mts +5 -5
  396. package/floating-ui-react/hooks/useTypeahead.d.ts +5 -5
  397. package/floating-ui-react/hooks/useTypeahead.js +9 -14
  398. package/floating-ui-react/hooks/useTypeahead.mjs +9 -14
  399. package/floating-ui-react/index.d.mts +0 -4
  400. package/floating-ui-react/index.d.ts +0 -4
  401. package/floating-ui-react/index.mjs +12 -0
  402. package/floating-ui-react/utils/composite.js +7 -0
  403. package/floating-ui-react/utils/composite.mjs +7 -0
  404. package/form/Form.d.mts +1 -1
  405. package/form/Form.d.ts +1 -1
  406. package/form/Form.js +62 -47
  407. package/form/Form.mjs +62 -47
  408. package/index.js +1 -1
  409. package/index.mjs +1 -1
  410. package/internals/PrehydrationScript.d.mts +36 -0
  411. package/internals/PrehydrationScript.d.ts +36 -0
  412. package/internals/PrehydrationScript.js +59 -0
  413. package/internals/PrehydrationScript.mjs +54 -0
  414. package/internals/composite/composite.d.mts +2 -10
  415. package/internals/composite/composite.d.ts +2 -10
  416. package/internals/composite/composite.js +4 -12
  417. package/internals/composite/composite.mjs +3 -11
  418. package/internals/composite/index.d.mts +2 -1
  419. package/internals/composite/index.d.ts +2 -1
  420. package/internals/composite/index.js +11 -4
  421. package/internals/composite/index.mjs +1 -1
  422. package/internals/composite/item/CompositeItem.d.mts +0 -3
  423. package/internals/composite/item/CompositeItem.d.ts +0 -3
  424. package/internals/composite/item/CompositeItem.js +2 -4
  425. package/internals/composite/item/CompositeItem.mjs +2 -4
  426. package/internals/composite/item/useCompositeItem.d.mts +1 -1
  427. package/internals/composite/item/useCompositeItem.d.ts +1 -1
  428. package/internals/composite/list/CompositeList.d.mts +3 -3
  429. package/internals/composite/list/CompositeList.d.ts +3 -3
  430. package/internals/composite/list/CompositeList.js +165 -86
  431. package/internals/composite/list/CompositeList.mjs +165 -86
  432. package/internals/composite/list/CompositeListContext.d.mts +8 -4
  433. package/internals/composite/list/CompositeListContext.d.ts +8 -4
  434. package/internals/composite/list/CompositeListContext.js +1 -6
  435. package/internals/composite/list/CompositeListContext.mjs +1 -6
  436. package/internals/composite/list/useCompositeListItem.d.mts +11 -8
  437. package/internals/composite/list/useCompositeListItem.d.ts +11 -8
  438. package/internals/composite/list/useCompositeListItem.js +25 -32
  439. package/internals/composite/list/useCompositeListItem.mjs +25 -32
  440. package/internals/composite/root/CompositeRoot.d.mts +1 -4
  441. package/internals/composite/root/CompositeRoot.d.ts +1 -4
  442. package/internals/composite/root/CompositeRoot.js +0 -3
  443. package/internals/composite/root/CompositeRoot.mjs +0 -3
  444. package/internals/composite/root/useCompositeRoot.d.mts +0 -1
  445. package/internals/composite/root/useCompositeRoot.d.ts +0 -1
  446. package/internals/composite/root/useCompositeRoot.js +19 -39
  447. package/internals/composite/root/useCompositeRoot.mjs +20 -40
  448. package/internals/createBaseUIEventDetails.d.mts +1 -1
  449. package/internals/createBaseUIEventDetails.d.ts +1 -1
  450. package/internals/csp-context/CSPContext.d.mts +0 -6
  451. package/internals/csp-context/CSPContext.d.ts +0 -6
  452. package/internals/csp-context/CSPContext.js +0 -7
  453. package/internals/csp-context/CSPContext.mjs +0 -7
  454. package/internals/direction-context/DirectionContext.d.mts +0 -3
  455. package/internals/direction-context/DirectionContext.d.ts +0 -3
  456. package/internals/direction-context/DirectionContext.js +0 -3
  457. package/internals/direction-context/DirectionContext.mjs +0 -3
  458. package/internals/field-constants/constants.js +2 -3
  459. package/internals/field-constants/constants.mjs +2 -3
  460. package/internals/field-register-control/useFieldControlRegistration.d.mts +1 -1
  461. package/internals/field-register-control/useFieldControlRegistration.d.ts +1 -1
  462. package/internals/field-register-control/useFieldControlRegistration.js +21 -16
  463. package/internals/field-register-control/useFieldControlRegistration.mjs +21 -16
  464. package/internals/field-register-control/useRegisterFieldControl.js +13 -9
  465. package/internals/field-register-control/useRegisterFieldControl.mjs +13 -8
  466. package/internals/field-root-context/FieldRootContext.d.mts +0 -7
  467. package/internals/field-root-context/FieldRootContext.d.ts +0 -7
  468. package/internals/field-root-context/FieldRootContext.js +2 -9
  469. package/internals/field-root-context/FieldRootContext.mjs +3 -10
  470. package/internals/form-context/FormContext.d.mts +1 -0
  471. package/internals/form-context/FormContext.d.ts +1 -0
  472. package/internals/form-context/FormContext.js +3 -0
  473. package/internals/form-context/FormContext.mjs +3 -0
  474. package/{utils → internals}/getDisabledMountTransitionStyles.d.mts +1 -1
  475. package/{utils → internals}/getDisabledMountTransitionStyles.d.ts +1 -1
  476. package/{utils → internals}/getDisabledMountTransitionStyles.js +1 -1
  477. package/{utils → internals}/getDisabledMountTransitionStyles.mjs +1 -1
  478. package/internals/itemEquality.d.mts +1 -0
  479. package/internals/itemEquality.d.ts +1 -0
  480. package/internals/itemEquality.js +7 -0
  481. package/internals/itemEquality.mjs +6 -0
  482. package/internals/labelable-provider/LabelableProvider.d.mts +0 -3
  483. package/internals/labelable-provider/LabelableProvider.d.ts +0 -3
  484. package/internals/labelable-provider/LabelableProvider.js +0 -3
  485. package/internals/labelable-provider/LabelableProvider.mjs +0 -4
  486. package/internals/labelable-provider/useAriaLabelledBy.d.mts +0 -3
  487. package/internals/labelable-provider/useAriaLabelledBy.d.ts +0 -3
  488. package/internals/labelable-provider/useAriaLabelledBy.js +0 -3
  489. package/internals/labelable-provider/useAriaLabelledBy.mjs +0 -4
  490. package/internals/labelable-provider/useLabel.d.mts +1 -1
  491. package/internals/labelable-provider/useLabel.d.ts +1 -1
  492. package/internals/labelable-provider/useLabelableId.js +1 -1
  493. package/internals/labelable-provider/useLabelableId.mjs +1 -1
  494. package/internals/prehydrationScript.stub.d.mts +1 -0
  495. package/internals/prehydrationScript.stub.d.ts +1 -0
  496. package/internals/prehydrationScript.stub.js +12 -0
  497. package/internals/prehydrationScript.stub.mjs +6 -0
  498. package/internals/stateAttributesMapping.d.mts +1 -1
  499. package/internals/stateAttributesMapping.d.ts +1 -1
  500. package/internals/stateAttributesMapping.js +3 -3
  501. package/internals/stateAttributesMapping.mjs +3 -3
  502. package/internals/use-button/useButton.js +30 -14
  503. package/internals/use-button/useButton.mjs +30 -14
  504. package/{utils → internals}/useAnchorPositioning.d.mts +11 -4
  505. package/{utils → internals}/useAnchorPositioning.d.ts +11 -4
  506. package/{utils → internals}/useAnchorPositioning.js +97 -68
  507. package/{utils → internals}/useAnchorPositioning.mjs +96 -68
  508. package/internals/useAnimationsFinished.d.mts +2 -3
  509. package/internals/useAnimationsFinished.d.ts +2 -3
  510. package/internals/useAnimationsFinished.js +8 -11
  511. package/internals/useAnimationsFinished.mjs +8 -11
  512. package/internals/useOpenChangeComplete.js +1 -1
  513. package/internals/useOpenChangeComplete.mjs +1 -1
  514. package/internals/usePressAndHold.d.mts +0 -1
  515. package/internals/usePressAndHold.d.ts +0 -1
  516. package/internals/usePressAndHold.js +4 -8
  517. package/internals/usePressAndHold.mjs +4 -8
  518. package/internals/useRenderElement.js +6 -6
  519. package/internals/useRenderElement.mjs +6 -6
  520. package/internals/useValueChanged.js +3 -6
  521. package/internals/useValueChanged.mjs +3 -6
  522. package/menu/arrow/MenuArrow.d.mts +1 -1
  523. package/menu/arrow/MenuArrow.d.ts +1 -1
  524. package/menu/backdrop/MenuBackdrop.js +1 -7
  525. package/menu/backdrop/MenuBackdrop.mjs +2 -7
  526. package/menu/backdrop/MenuBackdropDataAttributes.d.mts +1 -1
  527. package/menu/backdrop/MenuBackdropDataAttributes.d.ts +1 -1
  528. package/menu/backdrop/MenuBackdropDataAttributes.js +1 -1
  529. package/menu/backdrop/MenuBackdropDataAttributes.mjs +1 -1
  530. package/menu/checkbox-item/MenuCheckboxItem.js +6 -2
  531. package/menu/checkbox-item/MenuCheckboxItem.mjs +6 -2
  532. package/menu/checkbox-item-indicator/MenuCheckboxItemIndicator.js +2 -1
  533. package/menu/checkbox-item-indicator/MenuCheckboxItemIndicator.mjs +2 -1
  534. package/menu/checkbox-item-indicator/MenuCheckboxItemIndicatorDataAttributes.d.mts +1 -1
  535. package/menu/checkbox-item-indicator/MenuCheckboxItemIndicatorDataAttributes.d.ts +1 -1
  536. package/menu/checkbox-item-indicator/MenuCheckboxItemIndicatorDataAttributes.js +1 -1
  537. package/menu/checkbox-item-indicator/MenuCheckboxItemIndicatorDataAttributes.mjs +1 -1
  538. package/menu/group/MenuGroupContext.d.mts +1 -1
  539. package/menu/group/MenuGroupContext.d.ts +1 -1
  540. package/menu/group-label/MenuGroupLabel.js +1 -1
  541. package/menu/group-label/MenuGroupLabel.mjs +1 -1
  542. package/menu/item/MenuItem.js +4 -1
  543. package/menu/item/MenuItem.mjs +4 -1
  544. package/menu/item/useMenuItem.js +1 -3
  545. package/menu/item/useMenuItem.mjs +1 -3
  546. package/menu/item/useMenuItemCommonProps.d.mts +2 -3
  547. package/menu/item/useMenuItemCommonProps.d.ts +2 -3
  548. package/menu/item/useMenuItemCommonProps.js +7 -2
  549. package/menu/item/useMenuItemCommonProps.mjs +7 -2
  550. package/menu/link-item/MenuLinkItem.d.mts +1 -1
  551. package/menu/link-item/MenuLinkItem.d.ts +1 -1
  552. package/menu/link-item/MenuLinkItem.js +4 -1
  553. package/menu/link-item/MenuLinkItem.mjs +4 -1
  554. package/menu/popup/MenuPopup.d.mts +1 -1
  555. package/menu/popup/MenuPopup.d.ts +1 -1
  556. package/menu/popup/MenuPopup.js +5 -14
  557. package/menu/popup/MenuPopup.mjs +7 -15
  558. package/menu/popup/MenuPopupDataAttributes.d.mts +1 -1
  559. package/menu/popup/MenuPopupDataAttributes.d.ts +1 -1
  560. package/menu/popup/MenuPopupDataAttributes.js +1 -1
  561. package/menu/popup/MenuPopupDataAttributes.mjs +1 -1
  562. package/menu/portal/MenuPortal.d.mts +6 -2
  563. package/menu/portal/MenuPortal.d.ts +6 -2
  564. package/menu/positioner/MenuPositioner.d.mts +1 -1
  565. package/menu/positioner/MenuPositioner.d.ts +1 -1
  566. package/menu/positioner/MenuPositioner.js +8 -6
  567. package/menu/positioner/MenuPositioner.mjs +8 -6
  568. package/menu/positioner/MenuPositionerContext.d.mts +1 -1
  569. package/menu/positioner/MenuPositionerContext.d.ts +1 -1
  570. package/menu/positioner/MenuPositionerCssVars.d.mts +12 -0
  571. package/menu/positioner/MenuPositionerCssVars.d.ts +12 -0
  572. package/menu/positioner/MenuPositionerCssVars.js +12 -0
  573. package/menu/positioner/MenuPositionerCssVars.mjs +12 -0
  574. package/menu/radio-item/MenuRadioItem.js +5 -2
  575. package/menu/radio-item/MenuRadioItem.mjs +5 -2
  576. package/menu/radio-item-indicator/MenuRadioItemIndicator.js +2 -1
  577. package/menu/radio-item-indicator/MenuRadioItemIndicator.mjs +2 -1
  578. package/menu/radio-item-indicator/MenuRadioItemIndicatorDataAttributes.d.mts +1 -1
  579. package/menu/radio-item-indicator/MenuRadioItemIndicatorDataAttributes.d.ts +1 -1
  580. package/menu/radio-item-indicator/MenuRadioItemIndicatorDataAttributes.js +1 -1
  581. package/menu/radio-item-indicator/MenuRadioItemIndicatorDataAttributes.mjs +1 -1
  582. package/menu/root/MenuRoot.d.mts +11 -7
  583. package/menu/root/MenuRoot.d.ts +11 -7
  584. package/menu/root/MenuRoot.js +36 -13
  585. package/menu/root/MenuRoot.mjs +38 -15
  586. package/menu/store/MenuHandle.d.mts +18 -10
  587. package/menu/store/MenuHandle.d.ts +18 -10
  588. package/menu/store/MenuHandle.js +21 -20
  589. package/menu/store/MenuHandle.mjs +22 -19
  590. package/menu/store/MenuStore.d.mts +22 -7
  591. package/menu/store/MenuStore.d.ts +22 -7
  592. package/menu/store/MenuStore.js +71 -53
  593. package/menu/store/MenuStore.mjs +72 -55
  594. package/menu/submenu-trigger/MenuSubmenuTrigger.js +29 -8
  595. package/menu/submenu-trigger/MenuSubmenuTrigger.mjs +28 -8
  596. package/menu/trigger/MenuTrigger.js +7 -22
  597. package/menu/trigger/MenuTrigger.mjs +10 -24
  598. package/menu/utils/findRootOwnerId.js +1 -1
  599. package/menu/utils/findRootOwnerId.mjs +1 -1
  600. package/menu/viewport/MenuViewport.js +1 -9
  601. package/menu/viewport/MenuViewport.mjs +2 -9
  602. package/menubar/Menubar.js +2 -1
  603. package/menubar/Menubar.mjs +2 -1
  604. package/meter/root/MeterRoot.js +4 -6
  605. package/meter/root/MeterRoot.mjs +4 -6
  606. package/meter/root/MeterRootContext.d.mts +0 -2
  607. package/meter/root/MeterRootContext.d.ts +0 -2
  608. package/navigation-menu/arrow/NavigationMenuArrow.d.mts +1 -1
  609. package/navigation-menu/arrow/NavigationMenuArrow.d.ts +1 -1
  610. package/navigation-menu/arrow/NavigationMenuArrow.js +1 -1
  611. package/navigation-menu/arrow/NavigationMenuArrow.mjs +1 -1
  612. package/navigation-menu/backdrop/NavigationMenuBackdrop.js +1 -7
  613. package/navigation-menu/backdrop/NavigationMenuBackdrop.mjs +2 -7
  614. package/navigation-menu/backdrop/NavigationMenuBackdropDataAttributes.d.mts +1 -1
  615. package/navigation-menu/backdrop/NavigationMenuBackdropDataAttributes.d.ts +1 -1
  616. package/navigation-menu/backdrop/NavigationMenuBackdropDataAttributes.js +1 -1
  617. package/navigation-menu/backdrop/NavigationMenuBackdropDataAttributes.mjs +1 -1
  618. package/navigation-menu/content/NavigationMenuContentDataAttributes.d.mts +1 -1
  619. package/navigation-menu/content/NavigationMenuContentDataAttributes.d.ts +1 -1
  620. package/navigation-menu/content/NavigationMenuContentDataAttributes.js +1 -1
  621. package/navigation-menu/content/NavigationMenuContentDataAttributes.mjs +1 -1
  622. package/navigation-menu/link/NavigationMenuLink.d.mts +1 -1
  623. package/navigation-menu/link/NavigationMenuLink.d.ts +1 -1
  624. package/navigation-menu/popup/NavigationMenuPopup.d.mts +1 -1
  625. package/navigation-menu/popup/NavigationMenuPopup.d.ts +1 -1
  626. package/navigation-menu/popup/NavigationMenuPopup.js +2 -8
  627. package/navigation-menu/popup/NavigationMenuPopup.mjs +3 -8
  628. package/navigation-menu/popup/NavigationMenuPopupDataAttributes.d.mts +1 -1
  629. package/navigation-menu/popup/NavigationMenuPopupDataAttributes.d.ts +1 -1
  630. package/navigation-menu/popup/NavigationMenuPopupDataAttributes.js +1 -1
  631. package/navigation-menu/popup/NavigationMenuPopupDataAttributes.mjs +1 -1
  632. package/navigation-menu/portal/NavigationMenuPortal.d.mts +3 -3
  633. package/navigation-menu/portal/NavigationMenuPortal.d.ts +3 -3
  634. package/navigation-menu/positioner/NavigationMenuPositioner.d.mts +1 -1
  635. package/navigation-menu/positioner/NavigationMenuPositioner.d.ts +1 -1
  636. package/navigation-menu/positioner/NavigationMenuPositioner.js +7 -6
  637. package/navigation-menu/positioner/NavigationMenuPositioner.mjs +7 -6
  638. package/navigation-menu/positioner/NavigationMenuPositionerContext.d.mts +2 -2
  639. package/navigation-menu/positioner/NavigationMenuPositionerContext.d.ts +2 -2
  640. package/navigation-menu/trigger/NavigationMenuTrigger.js +63 -101
  641. package/navigation-menu/trigger/NavigationMenuTrigger.mjs +63 -101
  642. package/navigation-menu/utils/isOutsideMenuEvent.js +2 -5
  643. package/navigation-menu/utils/isOutsideMenuEvent.mjs +2 -5
  644. package/navigation-menu/utils/useNavigationMenuAnchorPositioning.d.mts +6 -0
  645. package/navigation-menu/utils/useNavigationMenuAnchorPositioning.d.ts +6 -0
  646. package/navigation-menu/utils/useNavigationMenuAnchorPositioning.js +16 -0
  647. package/navigation-menu/utils/useNavigationMenuAnchorPositioning.mjs +12 -0
  648. package/number-field/input/NumberFieldInput.d.mts +1 -1
  649. package/number-field/input/NumberFieldInput.d.ts +1 -1
  650. package/number-field/input/NumberFieldInput.js +40 -25
  651. package/number-field/input/NumberFieldInput.mjs +41 -26
  652. package/number-field/root/NumberFieldRoot.js +37 -55
  653. package/number-field/root/NumberFieldRoot.mjs +38 -56
  654. package/number-field/root/NumberFieldRootContext.d.mts +0 -7
  655. package/number-field/root/NumberFieldRootContext.d.ts +0 -7
  656. package/number-field/root/useNumberFieldStepperButton.js +108 -21
  657. package/number-field/root/useNumberFieldStepperButton.mjs +108 -21
  658. package/number-field/scrub-area/NumberFieldScrubArea.js +28 -32
  659. package/number-field/scrub-area/NumberFieldScrubArea.mjs +28 -32
  660. package/number-field/utils/constants.d.mts +1 -2
  661. package/number-field/utils/constants.d.ts +1 -2
  662. package/number-field/utils/constants.js +2 -3
  663. package/number-field/utils/constants.mjs +1 -2
  664. package/number-field/utils/parse.d.mts +27 -15
  665. package/number-field/utils/parse.d.ts +27 -15
  666. package/number-field/utils/parse.js +74 -135
  667. package/number-field/utils/parse.mjs +73 -134
  668. package/number-field/utils/types.d.mts +2 -1
  669. package/number-field/utils/types.d.ts +2 -1
  670. package/number-field/utils/validate.d.mts +1 -19
  671. package/number-field/utils/validate.d.ts +1 -19
  672. package/number-field/utils/validate.js +6 -14
  673. package/number-field/utils/validate.mjs +6 -14
  674. package/otp-field/input/OTPFieldInput.d.mts +1 -1
  675. package/otp-field/input/OTPFieldInput.d.ts +1 -1
  676. package/otp-field/input/OTPFieldInput.js +4 -1
  677. package/otp-field/input/OTPFieldInput.mjs +5 -2
  678. package/otp-field/root/OTPFieldRoot.js +13 -14
  679. package/otp-field/root/OTPFieldRoot.mjs +13 -14
  680. package/package.json +93 -5
  681. package/popover/arrow/PopoverArrow.d.mts +1 -1
  682. package/popover/arrow/PopoverArrow.d.ts +1 -1
  683. package/popover/arrow/PopoverArrow.js +1 -3
  684. package/popover/arrow/PopoverArrow.mjs +1 -3
  685. package/popover/backdrop/PopoverBackdrop.js +3 -11
  686. package/popover/backdrop/PopoverBackdrop.mjs +4 -11
  687. package/popover/backdrop/PopoverBackdropDataAttributes.d.mts +1 -1
  688. package/popover/backdrop/PopoverBackdropDataAttributes.d.ts +1 -1
  689. package/popover/backdrop/PopoverBackdropDataAttributes.js +1 -1
  690. package/popover/backdrop/PopoverBackdropDataAttributes.mjs +1 -1
  691. package/popover/close/PopoverClose.js +1 -3
  692. package/popover/close/PopoverClose.mjs +1 -3
  693. package/popover/description/PopoverDescription.js +1 -3
  694. package/popover/description/PopoverDescription.mjs +1 -3
  695. package/popover/popup/PopoverPopup.d.mts +1 -1
  696. package/popover/popup/PopoverPopup.d.ts +1 -1
  697. package/popover/popup/PopoverPopup.js +6 -17
  698. package/popover/popup/PopoverPopup.mjs +9 -19
  699. package/popover/popup/PopoverPopupDataAttributes.d.mts +1 -1
  700. package/popover/popup/PopoverPopupDataAttributes.d.ts +1 -1
  701. package/popover/popup/PopoverPopupDataAttributes.js +3 -3
  702. package/popover/popup/PopoverPopupDataAttributes.mjs +3 -3
  703. package/popover/portal/PopoverPortal.d.mts +6 -2
  704. package/popover/portal/PopoverPortal.d.ts +6 -2
  705. package/popover/portal/PopoverPortal.js +1 -3
  706. package/popover/portal/PopoverPortal.mjs +1 -3
  707. package/popover/positioner/PopoverPositioner.d.mts +1 -1
  708. package/popover/positioner/PopoverPositioner.d.ts +1 -1
  709. package/popover/positioner/PopoverPositioner.js +19 -22
  710. package/popover/positioner/PopoverPositioner.mjs +19 -22
  711. package/popover/positioner/PopoverPositionerContext.d.mts +1 -1
  712. package/popover/positioner/PopoverPositionerContext.d.ts +1 -1
  713. package/popover/positioner/PopoverPositionerCssVars.d.mts +2 -0
  714. package/popover/positioner/PopoverPositionerCssVars.d.ts +2 -0
  715. package/popover/positioner/PopoverPositionerCssVars.js +2 -0
  716. package/popover/positioner/PopoverPositionerCssVars.mjs +2 -0
  717. package/popover/root/PopoverRoot.d.mts +2 -0
  718. package/popover/root/PopoverRoot.d.ts +2 -0
  719. package/popover/root/PopoverRoot.js +29 -22
  720. package/popover/root/PopoverRoot.mjs +31 -24
  721. package/popover/root/PopoverRootContext.d.mts +1 -3
  722. package/popover/root/PopoverRootContext.d.ts +1 -3
  723. package/popover/store/PopoverHandle.d.mts +18 -10
  724. package/popover/store/PopoverHandle.d.ts +18 -10
  725. package/popover/store/PopoverHandle.js +21 -21
  726. package/popover/store/PopoverHandle.mjs +22 -20
  727. package/popover/store/PopoverStore.d.mts +22 -10
  728. package/popover/store/PopoverStore.d.ts +22 -10
  729. package/popover/store/PopoverStore.js +82 -67
  730. package/popover/store/PopoverStore.mjs +81 -67
  731. package/popover/title/PopoverTitle.js +1 -3
  732. package/popover/title/PopoverTitle.mjs +1 -3
  733. package/popover/trigger/PopoverTrigger.js +9 -11
  734. package/popover/trigger/PopoverTrigger.mjs +10 -12
  735. package/popover/viewport/PopoverViewport.js +2 -12
  736. package/popover/viewport/PopoverViewport.mjs +3 -12
  737. package/preview-card/arrow/PreviewCardArrow.d.mts +1 -1
  738. package/preview-card/arrow/PreviewCardArrow.d.ts +1 -1
  739. package/preview-card/backdrop/PreviewCardBackdrop.d.mts +1 -1
  740. package/preview-card/backdrop/PreviewCardBackdrop.d.ts +1 -1
  741. package/preview-card/backdrop/PreviewCardBackdrop.js +2 -8
  742. package/preview-card/backdrop/PreviewCardBackdrop.mjs +3 -8
  743. package/preview-card/backdrop/PreviewCardBackdropDataAttributes.d.mts +1 -1
  744. package/preview-card/backdrop/PreviewCardBackdropDataAttributes.d.ts +1 -1
  745. package/preview-card/backdrop/PreviewCardBackdropDataAttributes.js +1 -1
  746. package/preview-card/backdrop/PreviewCardBackdropDataAttributes.mjs +1 -1
  747. package/preview-card/popup/PreviewCardPopup.d.mts +1 -1
  748. package/preview-card/popup/PreviewCardPopup.d.ts +1 -1
  749. package/preview-card/popup/PreviewCardPopup.js +6 -12
  750. package/preview-card/popup/PreviewCardPopup.mjs +7 -12
  751. package/preview-card/popup/PreviewCardPopupDataAttributes.d.mts +1 -1
  752. package/preview-card/popup/PreviewCardPopupDataAttributes.d.ts +1 -1
  753. package/preview-card/popup/PreviewCardPopupDataAttributes.js +1 -1
  754. package/preview-card/popup/PreviewCardPopupDataAttributes.mjs +1 -1
  755. package/preview-card/portal/PreviewCardPortal.d.mts +6 -2
  756. package/preview-card/portal/PreviewCardPortal.d.ts +6 -2
  757. package/preview-card/portal/PreviewCardPortal.mjs +1 -2
  758. package/preview-card/positioner/PreviewCardPositioner.d.mts +1 -1
  759. package/preview-card/positioner/PreviewCardPositioner.d.ts +1 -1
  760. package/preview-card/positioner/PreviewCardPositioner.js +3 -4
  761. package/preview-card/positioner/PreviewCardPositioner.mjs +3 -4
  762. package/preview-card/positioner/PreviewCardPositionerContext.d.mts +1 -1
  763. package/preview-card/positioner/PreviewCardPositionerContext.d.ts +1 -1
  764. package/preview-card/positioner/PreviewCardPositionerContext.js +1 -1
  765. package/preview-card/positioner/PreviewCardPositionerContext.mjs +1 -1
  766. package/preview-card/positioner/PreviewCardPositionerCssVars.d.mts +12 -0
  767. package/preview-card/positioner/PreviewCardPositionerCssVars.d.ts +12 -0
  768. package/preview-card/positioner/PreviewCardPositionerCssVars.js +12 -0
  769. package/preview-card/positioner/PreviewCardPositionerCssVars.mjs +12 -0
  770. package/preview-card/root/PreviewCardRoot.js +14 -17
  771. package/preview-card/root/PreviewCardRoot.mjs +15 -18
  772. package/preview-card/store/PreviewCardHandle.d.mts +15 -12
  773. package/preview-card/store/PreviewCardHandle.d.ts +15 -12
  774. package/preview-card/store/PreviewCardHandle.js +18 -23
  775. package/preview-card/store/PreviewCardHandle.mjs +19 -23
  776. package/preview-card/store/PreviewCardStore.d.mts +22 -7
  777. package/preview-card/store/PreviewCardStore.d.ts +22 -7
  778. package/preview-card/store/PreviewCardStore.js +43 -30
  779. package/preview-card/store/PreviewCardStore.mjs +43 -31
  780. package/preview-card/trigger/PreviewCardTrigger.d.mts +1 -1
  781. package/preview-card/trigger/PreviewCardTrigger.d.ts +1 -1
  782. package/preview-card/trigger/PreviewCardTrigger.js +4 -8
  783. package/preview-card/trigger/PreviewCardTrigger.mjs +5 -9
  784. package/preview-card/viewport/PreviewCardViewport.js +1 -9
  785. package/preview-card/viewport/PreviewCardViewport.mjs +2 -9
  786. package/progress/indicator/ProgressIndicator.js +1 -5
  787. package/progress/indicator/ProgressIndicator.mjs +1 -5
  788. package/progress/root/ProgressRoot.d.mts +1 -2
  789. package/progress/root/ProgressRoot.d.ts +1 -2
  790. package/progress/root/ProgressRoot.js +28 -19
  791. package/progress/root/ProgressRoot.mjs +29 -20
  792. package/progress/root/ProgressRootContext.d.mts +4 -12
  793. package/progress/root/ProgressRootContext.d.ts +4 -12
  794. package/progress/root/stateAttributesMapping.js +3 -17
  795. package/progress/root/stateAttributesMapping.mjs +3 -17
  796. package/progress/value/ProgressValue.d.mts +1 -1
  797. package/progress/value/ProgressValue.d.ts +1 -1
  798. package/progress/value/ProgressValue.js +7 -3
  799. package/progress/value/ProgressValue.mjs +7 -3
  800. package/radio/indicator/RadioIndicatorDataAttributes.d.mts +1 -1
  801. package/radio/indicator/RadioIndicatorDataAttributes.d.ts +1 -1
  802. package/radio/indicator/RadioIndicatorDataAttributes.js +1 -1
  803. package/radio/indicator/RadioIndicatorDataAttributes.mjs +1 -1
  804. package/radio/root/RadioRoot.js +22 -29
  805. package/radio/root/RadioRoot.mjs +22 -29
  806. package/radio/utils/stateAttributesMapping.js +2 -3
  807. package/radio/utils/stateAttributesMapping.mjs +2 -3
  808. package/radio-group/RadioGroup.js +47 -32
  809. package/radio-group/RadioGroup.mjs +47 -32
  810. package/radio-group/RadioGroupContext.d.mts +0 -1
  811. package/radio-group/RadioGroupContext.d.ts +0 -1
  812. package/scroll-area/root/ScrollAreaRoot.js +122 -83
  813. package/scroll-area/root/ScrollAreaRoot.mjs +122 -83
  814. package/scroll-area/root/ScrollAreaRootContext.d.mts +1 -3
  815. package/scroll-area/root/ScrollAreaRootContext.d.ts +1 -3
  816. package/scroll-area/root/stateAttributes.js +10 -19
  817. package/scroll-area/root/stateAttributes.mjs +10 -19
  818. package/scroll-area/scrollbar/ScrollAreaScrollbar.js +58 -74
  819. package/scroll-area/scrollbar/ScrollAreaScrollbar.mjs +58 -74
  820. package/scroll-area/scrollbar/ScrollAreaScrollbarContext.d.mts +1 -3
  821. package/scroll-area/scrollbar/ScrollAreaScrollbarContext.d.ts +1 -3
  822. package/scroll-area/thumb/ScrollAreaThumb.js +10 -24
  823. package/scroll-area/thumb/ScrollAreaThumb.mjs +10 -24
  824. package/scroll-area/utils/getOffset.js +4 -3
  825. package/scroll-area/utils/getOffset.mjs +4 -3
  826. package/scroll-area/viewport/ScrollAreaViewport.js +76 -79
  827. package/scroll-area/viewport/ScrollAreaViewport.mjs +77 -80
  828. package/select/arrow/SelectArrow.d.mts +1 -1
  829. package/select/arrow/SelectArrow.d.ts +1 -1
  830. package/select/arrow/SelectArrow.js +1 -7
  831. package/select/arrow/SelectArrow.mjs +2 -7
  832. package/select/backdrop/SelectBackdropDataAttributes.d.mts +1 -1
  833. package/select/backdrop/SelectBackdropDataAttributes.d.ts +1 -1
  834. package/select/backdrop/SelectBackdropDataAttributes.js +1 -1
  835. package/select/backdrop/SelectBackdropDataAttributes.mjs +1 -1
  836. package/select/group-label/SelectGroupLabel.js +3 -0
  837. package/select/group-label/SelectGroupLabel.mjs +3 -0
  838. package/select/index.d.mts +2 -1
  839. package/select/index.d.ts +2 -1
  840. package/select/index.parts.d.mts +1 -1
  841. package/select/index.parts.d.ts +1 -1
  842. package/select/index.parts.js +2 -2
  843. package/select/index.parts.mjs +1 -1
  844. package/select/item/SelectItem.js +12 -25
  845. package/select/item/SelectItem.mjs +13 -26
  846. package/select/item/SelectItemContext.d.mts +0 -1
  847. package/select/item/SelectItemContext.d.ts +0 -1
  848. package/select/item-indicator/SelectItemIndicator.js +1 -2
  849. package/select/item-indicator/SelectItemIndicator.mjs +1 -2
  850. package/select/item-indicator/SelectItemIndicatorDataAttributes.d.mts +1 -1
  851. package/select/item-indicator/SelectItemIndicatorDataAttributes.d.ts +1 -1
  852. package/select/item-indicator/SelectItemIndicatorDataAttributes.js +1 -1
  853. package/select/item-indicator/SelectItemIndicatorDataAttributes.mjs +1 -1
  854. package/select/item-text/SelectItemText.js +4 -5
  855. package/select/item-text/SelectItemText.mjs +4 -5
  856. package/select/label/SelectLabel.js +2 -1
  857. package/select/label/SelectLabel.mjs +2 -1
  858. package/select/list/SelectList.js +3 -6
  859. package/select/list/SelectList.mjs +3 -6
  860. package/select/popup/SelectPopup.d.mts +1 -1
  861. package/select/popup/SelectPopup.d.ts +1 -1
  862. package/select/popup/SelectPopup.js +32 -52
  863. package/select/popup/SelectPopup.mjs +33 -53
  864. package/select/popup/SelectPopupDataAttributes.d.mts +1 -1
  865. package/select/popup/SelectPopupDataAttributes.d.ts +1 -1
  866. package/select/popup/SelectPopupDataAttributes.js +1 -1
  867. package/select/popup/SelectPopupDataAttributes.mjs +1 -1
  868. package/select/portal/SelectPortal.d.mts +7 -2
  869. package/select/portal/SelectPortal.d.ts +7 -2
  870. package/select/portal/SelectPortal.js +3 -7
  871. package/select/portal/SelectPortal.mjs +3 -7
  872. package/select/positioner/SelectPositioner.d.mts +1 -1
  873. package/select/positioner/SelectPositioner.d.ts +1 -1
  874. package/select/positioner/SelectPositioner.js +15 -29
  875. package/select/positioner/SelectPositioner.mjs +17 -31
  876. package/select/positioner/SelectPositionerContext.d.mts +1 -1
  877. package/select/positioner/SelectPositionerContext.d.ts +1 -1
  878. package/select/root/SelectRoot.d.mts +2 -0
  879. package/select/root/SelectRoot.d.ts +2 -0
  880. package/select/root/SelectRoot.js +93 -121
  881. package/select/root/SelectRoot.mjs +95 -123
  882. package/select/root/SelectRootContext.d.mts +4 -5
  883. package/select/root/SelectRootContext.d.ts +4 -5
  884. package/select/root/SelectRootContext.js +1 -11
  885. package/select/root/SelectRootContext.mjs +0 -9
  886. package/select/scroll-arrow/SelectScrollArrow.d.mts +1 -6
  887. package/select/scroll-arrow/SelectScrollArrow.d.ts +1 -6
  888. package/select/scroll-arrow/SelectScrollArrow.js +4 -11
  889. package/select/scroll-arrow/SelectScrollArrow.mjs +4 -11
  890. package/select/scroll-down-arrow/SelectScrollDownArrowDataAttributes.d.mts +1 -1
  891. package/select/scroll-down-arrow/SelectScrollDownArrowDataAttributes.d.ts +1 -1
  892. package/select/scroll-down-arrow/SelectScrollDownArrowDataAttributes.js +1 -1
  893. package/select/scroll-down-arrow/SelectScrollDownArrowDataAttributes.mjs +1 -1
  894. package/select/scroll-up-arrow/SelectScrollUpArrowDataAttributes.d.mts +1 -1
  895. package/select/scroll-up-arrow/SelectScrollUpArrowDataAttributes.d.ts +1 -1
  896. package/select/scroll-up-arrow/SelectScrollUpArrowDataAttributes.js +1 -1
  897. package/select/scroll-up-arrow/SelectScrollUpArrowDataAttributes.mjs +1 -1
  898. package/select/separator/SelectSeparator.d.mts +26 -0
  899. package/select/separator/SelectSeparator.d.ts +26 -0
  900. package/select/separator/SelectSeparator.js +15 -0
  901. package/select/separator/SelectSeparator.mjs +10 -0
  902. package/select/store.d.mts +3 -5
  903. package/select/store.d.ts +3 -5
  904. package/select/store.js +32 -35
  905. package/select/store.mjs +32 -35
  906. package/select/trigger/SelectTrigger.d.mts +1 -1
  907. package/select/trigger/SelectTrigger.d.ts +1 -1
  908. package/select/trigger/SelectTrigger.js +3 -8
  909. package/select/trigger/SelectTrigger.mjs +4 -9
  910. package/select/value/SelectValue.js +1 -1
  911. package/select/value/SelectValue.mjs +1 -1
  912. package/slider/control/SliderControl.js +61 -78
  913. package/slider/control/SliderControl.mjs +61 -78
  914. package/slider/indicator/SliderIndicator.js +15 -34
  915. package/slider/indicator/SliderIndicator.mjs +15 -34
  916. package/slider/root/SliderRoot.d.mts +5 -3
  917. package/slider/root/SliderRoot.d.ts +5 -3
  918. package/slider/root/SliderRoot.js +36 -47
  919. package/slider/root/SliderRoot.mjs +36 -47
  920. package/slider/root/SliderRootContext.d.mts +6 -4
  921. package/slider/root/SliderRootContext.d.ts +6 -4
  922. package/slider/root/stateAttributesMapping.js +7 -6
  923. package/slider/root/stateAttributesMapping.mjs +7 -6
  924. package/slider/thumb/SliderThumb.js +64 -69
  925. package/slider/thumb/SliderThumb.mjs +64 -69
  926. package/slider/utils/getMidpoint.d.mts +1 -2
  927. package/slider/utils/getMidpoint.d.ts +1 -2
  928. package/slider/utils/getMidpoint.js +2 -5
  929. package/slider/utils/getMidpoint.mjs +2 -5
  930. package/slider/utils/getPushedThumbValues.d.mts +4 -21
  931. package/slider/utils/getPushedThumbValues.d.ts +4 -21
  932. package/slider/utils/getPushedThumbValues.js +6 -15
  933. package/slider/utils/getPushedThumbValues.mjs +7 -15
  934. package/slider/utils/getSliderValue.js +8 -8
  935. package/slider/utils/getSliderValue.mjs +8 -8
  936. package/slider/utils/resolveThumbCollision.d.mts +5 -24
  937. package/slider/utils/resolveThumbCollision.d.ts +5 -24
  938. package/slider/utils/resolveThumbCollision.js +33 -64
  939. package/slider/utils/resolveThumbCollision.mjs +33 -64
  940. package/slider/utils/test-utils.d.mts +1 -11
  941. package/slider/utils/test-utils.d.ts +1 -11
  942. package/slider/utils/test-utils.js +1 -11
  943. package/slider/utils/test-utils.mjs +1 -11
  944. package/slider/utils/validateMinimumDistance.js +6 -7
  945. package/slider/utils/validateMinimumDistance.mjs +6 -7
  946. package/slider/value/SliderValue.js +6 -16
  947. package/slider/value/SliderValue.mjs +6 -16
  948. package/switch/root/SwitchRoot.js +18 -19
  949. package/switch/root/SwitchRoot.mjs +18 -19
  950. package/switch/stateAttributesMapping.js +2 -3
  951. package/switch/stateAttributesMapping.mjs +2 -3
  952. package/tabs/indicator/TabsIndicator.js +13 -24
  953. package/tabs/indicator/TabsIndicator.mjs +13 -24
  954. package/tabs/indicator/prehydrationScript.min.d.mts +1 -1
  955. package/tabs/indicator/prehydrationScript.min.d.ts +1 -1
  956. package/tabs/indicator/prehydrationScript.min.js +1 -1
  957. package/tabs/indicator/prehydrationScript.min.mjs +1 -1
  958. package/tabs/list/TabsList.js +1 -11
  959. package/tabs/list/TabsList.mjs +1 -11
  960. package/tabs/list/TabsListContext.d.mts +0 -5
  961. package/tabs/list/TabsListContext.d.ts +0 -5
  962. package/tabs/panel/TabsPanel.js +10 -20
  963. package/tabs/panel/TabsPanel.mjs +10 -20
  964. package/tabs/panel/TabsPanelDataAttributes.d.mts +1 -1
  965. package/tabs/panel/TabsPanelDataAttributes.d.ts +1 -1
  966. package/tabs/panel/TabsPanelDataAttributes.js +1 -1
  967. package/tabs/panel/TabsPanelDataAttributes.mjs +1 -1
  968. package/tabs/root/TabsRoot.js +40 -75
  969. package/tabs/root/TabsRoot.mjs +40 -75
  970. package/tabs/root/TabsRootContext.d.mts +4 -11
  971. package/tabs/root/TabsRootContext.d.ts +4 -11
  972. package/tabs/root/stateAttributesMapping.js +1 -2
  973. package/tabs/root/stateAttributesMapping.mjs +1 -2
  974. package/tabs/tab/TabsTab.js +42 -39
  975. package/tabs/tab/TabsTab.mjs +42 -39
  976. package/toast/action/ToastAction.js +2 -5
  977. package/toast/action/ToastAction.mjs +2 -5
  978. package/toast/arrow/ToastArrow.d.mts +1 -1
  979. package/toast/arrow/ToastArrow.d.ts +1 -1
  980. package/toast/arrow/ToastArrow.js +1 -2
  981. package/toast/arrow/ToastArrow.mjs +1 -2
  982. package/toast/close/ToastClose.js +3 -4
  983. package/toast/close/ToastClose.mjs +3 -4
  984. package/toast/content/ToastContent.js +3 -7
  985. package/toast/content/ToastContent.mjs +3 -7
  986. package/toast/description/ToastDescription.js +8 -23
  987. package/toast/description/ToastDescription.mjs +8 -23
  988. package/toast/portal/ToastPortal.d.mts +9 -3
  989. package/toast/portal/ToastPortal.d.ts +9 -3
  990. package/toast/portal/ToastPortal.js +10 -1
  991. package/toast/portal/ToastPortal.mjs +9 -2
  992. package/toast/positioner/ToastPositioner.d.mts +1 -1
  993. package/toast/positioner/ToastPositioner.d.ts +1 -1
  994. package/toast/positioner/ToastPositioner.js +4 -5
  995. package/toast/positioner/ToastPositioner.mjs +4 -5
  996. package/toast/positioner/ToastPositionerContext.d.mts +1 -1
  997. package/toast/positioner/ToastPositionerContext.d.ts +1 -1
  998. package/toast/provider/ToastProvider.js +19 -10
  999. package/toast/provider/ToastProvider.mjs +20 -11
  1000. package/toast/root/ToastRoot.d.mts +2 -0
  1001. package/toast/root/ToastRoot.d.ts +2 -0
  1002. package/toast/root/ToastRoot.js +93 -140
  1003. package/toast/root/ToastRoot.mjs +92 -139
  1004. package/toast/root/ToastRootContext.d.mts +0 -6
  1005. package/toast/root/ToastRootContext.d.ts +0 -6
  1006. package/toast/root/ToastRootDataAttributes.d.mts +1 -1
  1007. package/toast/root/ToastRootDataAttributes.d.ts +1 -1
  1008. package/toast/root/ToastRootDataAttributes.js +1 -1
  1009. package/toast/root/ToastRootDataAttributes.mjs +1 -1
  1010. package/toast/store.d.mts +17 -22
  1011. package/toast/store.d.ts +17 -22
  1012. package/toast/store.js +51 -85
  1013. package/toast/store.mjs +53 -86
  1014. package/toast/title/ToastTitle.js +8 -23
  1015. package/toast/title/ToastTitle.mjs +8 -23
  1016. package/toast/useToastManager.js +1 -6
  1017. package/toast/useToastManager.mjs +2 -6
  1018. package/toast/utils/isRenderableNode.d.mts +3 -0
  1019. package/toast/utils/isRenderableNode.d.ts +3 -0
  1020. package/toast/utils/isRenderableNode.js +21 -0
  1021. package/toast/utils/isRenderableNode.mjs +13 -0
  1022. package/toast/utils/test-utils.d.mts +1 -8
  1023. package/toast/utils/test-utils.d.ts +1 -8
  1024. package/toast/utils/useToastLabelPart.d.mts +18 -0
  1025. package/toast/utils/useToastLabelPart.d.ts +18 -0
  1026. package/toast/utils/useToastLabelPart.js +52 -0
  1027. package/toast/utils/useToastLabelPart.mjs +47 -0
  1028. package/toast/viewport/ToastViewport.js +42 -78
  1029. package/toast/viewport/ToastViewport.mjs +42 -78
  1030. package/toggle/Toggle.js +1 -2
  1031. package/toggle/Toggle.mjs +1 -2
  1032. package/toggle-group/ToggleGroup.js +4 -19
  1033. package/toggle-group/ToggleGroup.mjs +4 -19
  1034. package/toggle-group/ToggleGroupContext.d.mts +1 -3
  1035. package/toggle-group/ToggleGroupContext.d.ts +1 -3
  1036. package/toggle-group/ToggleGroupContext.js +2 -8
  1037. package/toggle-group/ToggleGroupContext.mjs +2 -7
  1038. package/toolbar/button/ToolbarButton.js +2 -2
  1039. package/toolbar/button/ToolbarButton.mjs +2 -2
  1040. package/toolbar/group/ToolbarGroupContext.d.mts +1 -2
  1041. package/toolbar/group/ToolbarGroupContext.d.ts +1 -2
  1042. package/toolbar/group/ToolbarGroupContext.js +2 -8
  1043. package/toolbar/group/ToolbarGroupContext.mjs +2 -7
  1044. package/toolbar/input/ToolbarInput.js +8 -11
  1045. package/toolbar/input/ToolbarInput.mjs +8 -11
  1046. package/toolbar/link/ToolbarLink.d.mts +1 -1
  1047. package/toolbar/link/ToolbarLink.d.ts +1 -1
  1048. package/toolbar/root/ToolbarRoot.js +4 -5
  1049. package/toolbar/root/ToolbarRoot.mjs +4 -5
  1050. package/toolbar/root/ToolbarRootContext.d.mts +0 -3
  1051. package/toolbar/root/ToolbarRootContext.d.ts +0 -3
  1052. package/toolbar/separator/ToolbarSeparator.d.mts +2 -2
  1053. package/toolbar/separator/ToolbarSeparator.d.ts +2 -2
  1054. package/toolbar/separator/ToolbarSeparator.js +1 -4
  1055. package/toolbar/separator/ToolbarSeparator.mjs +3 -5
  1056. package/tooltip/arrow/TooltipArrow.d.mts +1 -1
  1057. package/tooltip/arrow/TooltipArrow.d.ts +1 -1
  1058. package/tooltip/popup/TooltipPopup.d.mts +1 -1
  1059. package/tooltip/popup/TooltipPopup.d.ts +1 -1
  1060. package/tooltip/popup/TooltipPopup.js +4 -9
  1061. package/tooltip/popup/TooltipPopup.mjs +5 -9
  1062. package/tooltip/popup/TooltipPopupDataAttributes.d.mts +1 -1
  1063. package/tooltip/popup/TooltipPopupDataAttributes.d.ts +1 -1
  1064. package/tooltip/popup/TooltipPopupDataAttributes.js +1 -1
  1065. package/tooltip/popup/TooltipPopupDataAttributes.mjs +1 -1
  1066. package/tooltip/portal/TooltipPortal.d.mts +6 -2
  1067. package/tooltip/portal/TooltipPortal.d.ts +6 -2
  1068. package/tooltip/portal/TooltipPortal.mjs +1 -2
  1069. package/tooltip/positioner/TooltipPositioner.d.mts +1 -1
  1070. package/tooltip/positioner/TooltipPositioner.d.ts +1 -1
  1071. package/tooltip/positioner/TooltipPositioner.js +3 -4
  1072. package/tooltip/positioner/TooltipPositioner.mjs +3 -4
  1073. package/tooltip/positioner/TooltipPositionerContext.d.mts +1 -1
  1074. package/tooltip/positioner/TooltipPositionerContext.d.ts +1 -1
  1075. package/tooltip/positioner/TooltipPositionerCssVars.d.mts +12 -0
  1076. package/tooltip/positioner/TooltipPositionerCssVars.d.ts +12 -0
  1077. package/tooltip/positioner/TooltipPositionerCssVars.js +12 -0
  1078. package/tooltip/positioner/TooltipPositionerCssVars.mjs +12 -0
  1079. package/tooltip/provider/TooltipProvider.d.mts +1 -1
  1080. package/tooltip/provider/TooltipProvider.d.ts +1 -1
  1081. package/tooltip/provider/TooltipProvider.js +1 -5
  1082. package/tooltip/provider/TooltipProvider.mjs +1 -5
  1083. package/tooltip/provider/TooltipProviderContext.d.mts +5 -6
  1084. package/tooltip/provider/TooltipProviderContext.d.ts +5 -6
  1085. package/tooltip/provider/TooltipProviderContext.js +3 -0
  1086. package/tooltip/provider/TooltipProviderContext.mjs +4 -0
  1087. package/tooltip/root/TooltipRoot.js +18 -17
  1088. package/tooltip/root/TooltipRoot.mjs +19 -18
  1089. package/tooltip/store/TooltipHandle.d.mts +15 -12
  1090. package/tooltip/store/TooltipHandle.d.ts +15 -12
  1091. package/tooltip/store/TooltipHandle.js +18 -23
  1092. package/tooltip/store/TooltipHandle.mjs +19 -23
  1093. package/tooltip/store/TooltipStore.d.mts +24 -6
  1094. package/tooltip/store/TooltipStore.d.ts +24 -6
  1095. package/tooltip/store/TooltipStore.js +54 -31
  1096. package/tooltip/store/TooltipStore.mjs +54 -32
  1097. package/tooltip/trigger/TooltipTrigger.d.mts +1 -1
  1098. package/tooltip/trigger/TooltipTrigger.d.ts +1 -1
  1099. package/tooltip/trigger/TooltipTrigger.js +15 -25
  1100. package/tooltip/trigger/TooltipTrigger.mjs +16 -26
  1101. package/tooltip/viewport/TooltipViewport.js +1 -9
  1102. package/tooltip/viewport/TooltipViewport.mjs +2 -9
  1103. package/utils/FloatingPortalLite.d.mts +7 -9
  1104. package/utils/FloatingPortalLite.d.ts +7 -9
  1105. package/utils/FloatingPortalLite.js +4 -4
  1106. package/utils/FloatingPortalLite.mjs +4 -5
  1107. package/utils/FocusGuard.d.mts +1 -5
  1108. package/utils/FocusGuard.d.ts +1 -5
  1109. package/utils/InternalBackdrop.d.mts +0 -4
  1110. package/utils/InternalBackdrop.d.ts +0 -4
  1111. package/utils/NullStore.d.mts +15 -0
  1112. package/utils/NullStore.d.ts +15 -0
  1113. package/utils/NullStore.js +23 -0
  1114. package/utils/NullStore.mjs +16 -0
  1115. package/utils/adaptiveOriginConstants.d.mts +8 -0
  1116. package/utils/adaptiveOriginConstants.d.ts +8 -0
  1117. package/utils/adaptiveOriginConstants.js +14 -0
  1118. package/utils/adaptiveOriginConstants.mjs +8 -0
  1119. package/utils/adaptiveOriginMiddleware.d.mts +0 -4
  1120. package/utils/adaptiveOriginMiddleware.d.ts +0 -4
  1121. package/utils/adaptiveOriginMiddleware.js +5 -8
  1122. package/utils/adaptiveOriginMiddleware.mjs +1 -4
  1123. package/utils/closePart.d.mts +1 -4
  1124. package/utils/closePart.d.ts +1 -4
  1125. package/utils/closePart.js +2 -13
  1126. package/utils/closePart.mjs +1 -12
  1127. package/utils/dispatchClickWithModifiers.d.mts +21 -0
  1128. package/utils/dispatchClickWithModifiers.d.ts +21 -0
  1129. package/utils/dispatchClickWithModifiers.js +30 -0
  1130. package/utils/dispatchClickWithModifiers.mjs +24 -0
  1131. package/utils/formatNumber.d.mts +1 -2
  1132. package/utils/formatNumber.d.ts +1 -2
  1133. package/utils/formatNumber.js +0 -12
  1134. package/utils/formatNumber.mjs +0 -11
  1135. package/utils/getElementAtPoint.d.mts +3 -1
  1136. package/utils/getElementAtPoint.d.ts +3 -1
  1137. package/utils/getElementAtPoint.js +5 -2
  1138. package/utils/getElementAtPoint.mjs +5 -2
  1139. package/utils/getPseudoElementBounds.d.mts +5 -0
  1140. package/utils/getPseudoElementBounds.d.ts +5 -0
  1141. package/utils/getPseudoElementBounds.js +14 -0
  1142. package/utils/getPseudoElementBounds.mjs +13 -0
  1143. package/utils/hideMiddleware.js +7 -4
  1144. package/utils/hideMiddleware.mjs +7 -4
  1145. package/utils/listbox-separator/ListboxSeparator.d.mts +18 -0
  1146. package/utils/listbox-separator/ListboxSeparator.d.ts +18 -0
  1147. package/utils/listbox-separator/ListboxSeparator.js +36 -0
  1148. package/utils/listbox-separator/ListboxSeparator.mjs +31 -0
  1149. package/utils/popupStateMapping.d.mts +19 -7
  1150. package/utils/popupStateMapping.d.ts +19 -7
  1151. package/utils/popupStateMapping.js +14 -9
  1152. package/utils/popupStateMapping.mjs +15 -8
  1153. package/utils/popups/index.d.mts +3 -1
  1154. package/utils/popups/index.d.ts +3 -1
  1155. package/utils/popups/index.js +22 -0
  1156. package/utils/popups/index.mjs +3 -1
  1157. package/utils/popups/popupHandle.d.mts +113 -0
  1158. package/utils/popups/popupHandle.d.ts +113 -0
  1159. package/utils/popups/popupHandle.js +229 -0
  1160. package/utils/popups/popupHandle.mjs +222 -0
  1161. package/utils/popups/popupStoreUtils.d.mts +47 -12
  1162. package/utils/popups/popupStoreUtils.d.ts +47 -12
  1163. package/utils/popups/popupStoreUtils.js +109 -44
  1164. package/utils/popups/popupStoreUtils.mjs +107 -42
  1165. package/utils/popups/popupTriggerMap.d.mts +3 -2
  1166. package/utils/popups/popupTriggerMap.d.ts +3 -2
  1167. package/utils/popups/popupTriggerMap.js +48 -21
  1168. package/utils/popups/popupTriggerMap.mjs +48 -21
  1169. package/utils/popups/store.d.mts +14 -0
  1170. package/utils/popups/store.d.ts +14 -0
  1171. package/utils/popups/store.js +33 -21
  1172. package/utils/popups/store.mjs +33 -21
  1173. package/utils/popups/usePopupHandleStore.d.mts +12 -0
  1174. package/utils/popups/usePopupHandleStore.d.ts +12 -0
  1175. package/utils/popups/usePopupHandleStore.js +33 -0
  1176. package/utils/popups/usePopupHandleStore.mjs +27 -0
  1177. package/utils/scrollable.d.mts +2 -0
  1178. package/utils/scrollable.d.ts +2 -0
  1179. package/utils/scrollable.js +20 -12
  1180. package/utils/scrollable.mjs +18 -12
  1181. package/utils/usePopupAutoResize.d.mts +1 -1
  1182. package/utils/usePopupAutoResize.d.ts +1 -1
  1183. package/utils/usePopupAutoResize.js +15 -18
  1184. package/utils/usePopupAutoResize.mjs +15 -18
  1185. package/utils/usePopupViewport.d.mts +5 -15
  1186. package/utils/usePopupViewport.d.ts +5 -15
  1187. package/utils/usePopupViewport.js +48 -17
  1188. package/utils/usePopupViewport.mjs +47 -17
  1189. package/utils/usePositioner.js +1 -1
  1190. package/utils/usePositioner.mjs +1 -1
  1191. package/utils/useRegisteredLabelId.d.mts +2 -1
  1192. package/utils/useRegisteredLabelId.d.ts +2 -1
  1193. package/utils/useRegisteredLabelId.js +1 -1
  1194. package/utils/useRegisteredLabelId.mjs +1 -1
  1195. package/utils/useSwipeDismiss.js +72 -113
  1196. package/utils/useSwipeDismiss.mjs +72 -113
  1197. package/checkbox/utils/useStateAttributesMapping.js +0 -30
  1198. package/number-field/root/useNumberFieldButton.d.mts +0 -21
  1199. package/number-field/root/useNumberFieldButton.d.ts +0 -21
  1200. package/number-field/root/useNumberFieldButton.js +0 -135
  1201. package/number-field/root/useNumberFieldButton.mjs +0 -130
  1202. package/number-field/utils/subscribeToVisualViewportResize.d.mts +0 -1
  1203. package/number-field/utils/subscribeToVisualViewportResize.d.ts +0 -1
  1204. package/number-field/utils/subscribeToVisualViewportResize.js +0 -23
  1205. package/number-field/utils/subscribeToVisualViewportResize.mjs +0 -18
  1206. package/select/portal/SelectPortalContext.d.mts +0 -3
  1207. package/select/portal/SelectPortalContext.d.ts +0 -3
  1208. package/select/portal/SelectPortalContext.js +0 -21
  1209. package/select/portal/SelectPortalContext.mjs +0 -13
  1210. package/slider/utils/replaceArrayItemAtIndex.d.mts +0 -1
  1211. package/slider/utils/replaceArrayItemAtIndex.d.ts +0 -1
  1212. package/slider/utils/replaceArrayItemAtIndex.js +0 -12
  1213. package/slider/utils/replaceArrayItemAtIndex.mjs +0 -6
  1214. package/slider/utils/valueArrayToPercentages.d.mts +0 -1
  1215. package/slider/utils/valueArrayToPercentages.d.ts +0 -1
  1216. package/slider/utils/valueArrayToPercentages.js +0 -15
  1217. package/slider/utils/valueArrayToPercentages.mjs +0 -9
@@ -12,6 +12,7 @@ var _dom = require("@floating-ui/utils/dom");
12
12
  var _addEventListener = require("@base-ui/utils/addEventListener");
13
13
  var _owner = require("@base-ui/utils/owner");
14
14
  var _useAnimationFrame = require("@base-ui/utils/useAnimationFrame");
15
+ var _useIsoLayoutEffect = require("@base-ui/utils/useIsoLayoutEffect");
15
16
  var _useStableCallback = require("@base-ui/utils/useStableCallback");
16
17
  var _DialogRootContext = require("../../dialog/root/DialogRootContext");
17
18
  var _DialogViewport = require("../../dialog/viewport/DialogViewport");
@@ -46,6 +47,8 @@ const MIN_SWIPE_RELEASE_DURATION_MS = 80;
46
47
  const MAX_SWIPE_RELEASE_DURATION_MS = 360;
47
48
  const MIN_SWIPE_RELEASE_SCALAR = 0.1;
48
49
  const MAX_SWIPE_RELEASE_SCALAR = 1;
50
+ const AXIS_LOCK_SLOP = 6;
51
+ const AXIS_LOCK_BIAS = 2;
49
52
  const DRAWER_CONTENT_SELECTOR = `[${_DrawerContentDataAttributes.DRAWER_CONTENT_ATTRIBUTE}]`;
50
53
  /**
51
54
  * A positioning container for the drawer popup that can be made scrollable.
@@ -61,9 +64,7 @@ const DrawerViewport = exports.DrawerViewport = /*#__PURE__*/React.forwardRef(fu
61
64
  children,
62
65
  ...elementProps
63
66
  } = props;
64
- const {
65
- store
66
- } = (0, _DialogRootContext.useDialogRootContext)();
67
+ const store = (0, _DialogRootContext.useDialogRootContext)();
67
68
  const popupRef = store.context.popupRef;
68
69
  const backdropRef = store.context.backdropRef;
69
70
  const {
@@ -71,9 +72,10 @@ const DrawerViewport = exports.DrawerViewport = /*#__PURE__*/React.forwardRef(fu
71
72
  notifyParentSwipingChange,
72
73
  notifyParentSwipeProgressChange,
73
74
  frontmostHeight,
74
- snapToSequentialPoints
75
+ snapToSequentialPoints,
76
+ swipeAreaActiveRef
75
77
  } = (0, _DrawerRootContext.useDrawerRootContext)();
76
- const providerContext = (0, _DrawerProviderContext.useDrawerProviderContext)(true);
78
+ const providerContext = (0, _DrawerProviderContext.useDrawerProviderContext)();
77
79
  const {
78
80
  snapPoints,
79
81
  resolvedSnapPoints,
@@ -105,30 +107,13 @@ const DrawerViewport = exports.DrawerViewport = /*#__PURE__*/React.forwardRef(fu
105
107
  const touchScrollStateRef = React.useRef(null);
106
108
  const virtualKeyboard = (0, _DrawerVirtualKeyboardContext.useDrawerVirtualKeyboardContext)();
107
109
  const snapPointRange = React.useMemo(() => {
108
- if (!snapPoints || snapPoints.length < 2) {
109
- return null;
110
- }
111
- if (swipeDirection !== 'down' && swipeDirection !== 'up') {
112
- return null;
113
- }
114
- if (resolvedSnapPoints.length < 2) {
115
- return null;
116
- }
117
- const offsets = resolvedSnapPoints.map(point => point.offset).filter(offset => Number.isFinite(offset)).sort((a, b) => a - b);
118
- if (offsets.length < 2) {
110
+ if (!snapPoints || snapPoints.length < 2 || resolvedSnapPoints.length < 2 || swipeDirection !== 'down' && swipeDirection !== 'up') {
119
111
  return null;
120
112
  }
113
+ const offsets = resolvedSnapPoints.map(point => point.offset).sort((a, b) => a - b);
121
114
  const minOffset = offsets[0];
122
115
  const nextOffset = offsets[1];
123
- const maxOffset = offsets[offsets.length - 1];
124
- let range = nextOffset - minOffset;
125
- if (!Number.isFinite(range) || range <= 0) {
126
- const fallbackRange = maxOffset - minOffset;
127
- if (!Number.isFinite(fallbackRange) || fallbackRange <= 0) {
128
- return null;
129
- }
130
- range = fallbackRange;
131
- }
116
+ const range = nextOffset - minOffset;
132
117
  return {
133
118
  minOffset,
134
119
  range
@@ -147,7 +132,8 @@ const DrawerViewport = exports.DrawerViewport = /*#__PURE__*/React.forwardRef(fu
147
132
  return [swipeDirection];
148
133
  }, [snapPoints, swipeDirection]);
149
134
  const setSwipeDismissed = (0, _useStableCallback.useStableCallback)(dismissed => {
150
- setSwipeDismissedElements(popupRef.current, backdropRef.current, dismissed);
135
+ popupRef.current?.toggleAttribute(_DrawerPopupDataAttributes.DrawerPopupDataAttributes.swipeDismiss, dismissed);
136
+ backdropRef.current?.toggleAttribute(_DrawerPopupDataAttributes.DrawerPopupDataAttributes.swipeDismiss, dismissed);
151
137
  });
152
138
  const clearSwipeRelease = (0, _useStableCallback.useStableCallback)(() => {
153
139
  setSwipeDismissed(false);
@@ -161,11 +147,7 @@ const DrawerViewport = exports.DrawerViewport = /*#__PURE__*/React.forwardRef(fu
161
147
  nestedSwipeActiveRef.current = false;
162
148
  notifyParentSwipingChange?.(false);
163
149
  });
164
- const applySwipeProgress = (0, _useStableCallback.useStableCallback)(({
165
- resolvedProgress,
166
- shouldTrackProgress,
167
- notifyParent
168
- }) => {
150
+ const applySwipeProgress = (0, _useStableCallback.useStableCallback)((resolvedProgress, shouldTrackProgress, notifyParent) => {
169
151
  const isActive = open && !nested && shouldTrackProgress;
170
152
  const swipeProgress = isActive ? resolvedProgress : 0;
171
153
  const nestedSwipeProgress = open && shouldTrackProgress ? resolvedProgress : 0;
@@ -183,78 +165,48 @@ const DrawerViewport = exports.DrawerViewport = /*#__PURE__*/React.forwardRef(fu
183
165
  if (!backdropElement) {
184
166
  return;
185
167
  }
186
- if (!isActive || swipeProgress <= 0) {
187
- backdropElement.style.setProperty(_DrawerBackdropCssVars.DrawerBackdropCssVars.swipeProgress, '0');
188
- backdropElement.style.removeProperty(_DrawerPopupCssVars.DrawerPopupCssVars.height);
189
- return;
190
- }
191
- backdropElement.style.setProperty(_DrawerBackdropCssVars.DrawerBackdropCssVars.swipeProgress, `${swipeProgress}`);
192
- if (frontmostHeight > 0) {
168
+ const showProgress = isActive && swipeProgress > 0;
169
+ backdropElement.style.setProperty(_DrawerBackdropCssVars.DrawerBackdropCssVars.swipeProgress, showProgress ? `${swipeProgress}` : '0');
170
+ if (showProgress && frontmostHeight > 0) {
193
171
  backdropElement.style.setProperty(_DrawerPopupCssVars.DrawerPopupCssVars.height, `${frontmostHeight}px`);
194
172
  } else {
195
173
  backdropElement.style.removeProperty(_DrawerPopupCssVars.DrawerPopupCssVars.height);
196
174
  }
197
175
  });
198
- function resolveSwipeRelease({
199
- direction,
200
- deltaX,
201
- deltaY,
202
- velocityX,
203
- velocityY,
204
- releaseVelocityX,
205
- releaseVelocityY
206
- }) {
207
- if (!direction) {
176
+ function resolveSwipeRelease(popupElement, direction, deltaX, deltaY, velocityX, velocityY, releaseVelocityX, releaseVelocityY) {
177
+ const size = getBaseSwipeSize(popupElement, direction);
178
+ if (size <= 0) {
208
179
  return null;
209
180
  }
210
- const popupElement = store.context.popupRef.current;
211
- if (!popupElement) {
212
- return null;
213
- }
214
- const size = direction === 'left' || direction === 'right' ? popupElement.offsetWidth : popupElement.offsetHeight;
215
- if (!Number.isFinite(size) || size <= 0) {
216
- return null;
217
- }
218
- const axisDelta = direction === 'left' || direction === 'right' ? deltaX : deltaY;
219
- const snapPointBaseOffset = snapPoints && snapPoints.length > 0 ? activeSnapPointOffset ?? 0 : 0;
220
- let baseOffset = 0;
221
- if (direction === 'down') {
222
- baseOffset = snapPointBaseOffset;
223
- } else if (direction === 'up') {
224
- baseOffset = -snapPointBaseOffset;
225
- }
226
- const translation = baseOffset + axisDelta;
227
- const translationAlongDirection = direction === 'left' || direction === 'up' ? -translation : translation;
181
+
182
+ // The snap point base offset shifts the popup along the dismiss direction for both
183
+ // `down` (+offset) and `up` (-offset), so it always adds to the directional translation.
184
+ const snapPointBaseOffset = (direction === 'down' || direction === 'up') && snapPoints && snapPoints.length > 0 ? activeSnapPointOffset ?? 0 : 0;
185
+ const translationAlongDirection = snapPointBaseOffset + (0, _useSwipeDismiss.getDisplacement)(direction, deltaX, deltaY);
228
186
  const remainingDistance = Math.max(0, size - translationAlongDirection);
229
- if (!Number.isFinite(remainingDistance) || remainingDistance <= 0) {
187
+ if (remainingDistance <= 0) {
230
188
  return null;
231
189
  }
232
- const axisVelocity = direction === 'left' || direction === 'right' ? releaseVelocityX : releaseVelocityY;
233
- const fallbackVelocity = direction === 'left' || direction === 'right' ? velocityX : velocityY;
234
- const resolvedVelocity = Math.abs(axisVelocity) > 0 && Number.isFinite(axisVelocity) ? axisVelocity : fallbackVelocity;
235
- const directionalVelocity = direction === 'left' || direction === 'up' ? -resolvedVelocity : resolvedVelocity;
236
- if (!Number.isFinite(directionalVelocity) || directionalVelocity <= MIN_SWIPE_RELEASE_VELOCITY) {
190
+ const releaseVelocity = (0, _useSwipeDismiss.getDisplacement)(direction, releaseVelocityX, releaseVelocityY);
191
+ const directionalVelocity = Math.abs(releaseVelocity) > 0 ? releaseVelocity : (0, _useSwipeDismiss.getDisplacement)(direction, velocityX, velocityY);
192
+ if (directionalVelocity <= MIN_SWIPE_RELEASE_VELOCITY) {
237
193
  return null;
238
194
  }
239
195
  const clampedVelocity = (0, _clamp.clamp)(directionalVelocity, MIN_SWIPE_RELEASE_VELOCITY, MAX_SWIPE_RELEASE_VELOCITY);
196
+ // The gesture hook supplies finite deltas and velocities. The guards above keep the remaining
197
+ // distance and divisor positive, so the duration stays within [MIN, MAX] and the resulting
198
+ // scalar within (0, 1].
240
199
  const durationMs = (0, _clamp.clamp)(remainingDistance / clampedVelocity, MIN_SWIPE_RELEASE_DURATION_MS, MAX_SWIPE_RELEASE_DURATION_MS);
241
- if (!Number.isFinite(durationMs)) {
242
- return null;
243
- }
244
200
  const normalizedDuration = (durationMs - MIN_SWIPE_RELEASE_DURATION_MS) / (MAX_SWIPE_RELEASE_DURATION_MS - MIN_SWIPE_RELEASE_DURATION_MS);
245
- const durationScalar = (0, _clamp.clamp)(MIN_SWIPE_RELEASE_SCALAR + normalizedDuration * (MAX_SWIPE_RELEASE_SCALAR - MIN_SWIPE_RELEASE_SCALAR), MIN_SWIPE_RELEASE_SCALAR, MAX_SWIPE_RELEASE_SCALAR);
246
- if (!Number.isFinite(durationScalar) || durationScalar <= 0) {
247
- return null;
248
- }
249
- return durationScalar;
201
+ return MIN_SWIPE_RELEASE_SCALAR + normalizedDuration * (MAX_SWIPE_RELEASE_SCALAR - MIN_SWIPE_RELEASE_SCALAR);
250
202
  }
251
203
  function updateNestedSwipeActive(details) {
252
204
  if (nestedSwipeActiveRef.current || !details) {
253
205
  return;
254
206
  }
255
207
  const direction = details.direction ?? swipeDirection;
256
- const delta = direction === 'left' || direction === 'right' ? details.deltaX : details.deltaY;
257
- if (!Number.isFinite(delta) || Math.abs(delta) < MIN_SWIPE_THRESHOLD) {
208
+ const delta = (0, _useSwipeDismiss.getDisplacement)(direction, details.deltaX, details.deltaY);
209
+ if (Math.abs(delta) < MIN_SWIPE_THRESHOLD) {
258
210
  return;
259
211
  }
260
212
  nestedSwipeActiveRef.current = true;
@@ -271,13 +223,10 @@ const DrawerViewport = exports.DrawerViewport = /*#__PURE__*/React.forwardRef(fu
271
223
  y: _DrawerPopupCssVars.DrawerPopupCssVars.swipeMovementY
272
224
  },
273
225
  onSwipeStart(event) {
274
- if ('touches' in event || 'pointerType' in event && event.pointerType === 'touch') {
226
+ if ('touches' in event || event.pointerType === 'touch') {
275
227
  return;
276
228
  }
277
229
  const popupElement = popupRef.current;
278
- if (!popupElement) {
279
- return;
280
- }
281
230
  const doc = (0, _owner.ownerDocument)(popupElement);
282
231
  const selection = doc.getSelection?.();
283
232
  if (!selection || selection.isCollapsed) {
@@ -309,54 +258,38 @@ const DrawerViewport = exports.DrawerViewport = /*#__PURE__*/React.forwardRef(fu
309
258
  return false;
310
259
  }
311
260
  const doc = popupElement.ownerDocument;
312
- const elementAtPoint = (0, _getElementAtPoint.getElementAtPoint)(doc, position.x, position.y);
261
+ const elementAtPoint = (0, _getElementAtPoint.getElementAtPoint)(popupElement.getRootNode(), position.x, position.y);
313
262
  if (!elementAtPoint || !(0, _utils.contains)(popupElement, elementAtPoint)) {
314
263
  return false;
315
264
  }
316
265
  const nativeEvent = details.nativeEvent;
317
- const touchLike = 'touches' in nativeEvent || 'pointerType' in nativeEvent && nativeEvent.pointerType === 'touch';
266
+ const touchLike = 'touches' in nativeEvent || nativeEvent.pointerType === 'touch';
318
267
  if (touchLike && shouldIgnoreSwipeForTextSelection(doc, popupElement)) {
319
268
  return false;
320
269
  }
321
- if (nativeEvent.type === 'touchstart' && isSwipeIgnoredTarget(elementAtPoint)) {
322
- return false;
323
- }
324
270
  return true;
325
271
  },
326
272
  onProgress(progress, details) {
327
273
  updateNestedSwipeActive(details);
328
274
  const hasSnapPoints = Boolean(snapPoints && snapPoints.length > 0);
329
- if (swipingRef.current && swipeDirection === 'down' && hasSnapPoints && details && Number.isFinite(details.deltaY)) {
275
+ if (swipingRef.current && swipeDirection === 'down' && hasSnapPoints && details) {
330
276
  const popupElement = store.context.popupRef.current;
331
277
  if (popupElement) {
332
278
  popupElement.style.removeProperty('transform');
333
279
  popupElement.style.setProperty(_DrawerPopupCssVars.DrawerPopupCssVars.swipeMovementY, `${(0, _useDrawerSnapPoints.getSnapPointSwipeMovement)(activeSnapPointOffset ?? 0, details.deltaY)}px`);
334
280
  }
335
281
  }
336
- const currentDirection = details?.direction ?? swipe.swipeDirection;
337
- const isDismissSwipe = currentDirection === undefined || currentDirection === swipeDirection;
338
- const isVerticalSwipe = swipeDirection === 'down' || swipeDirection === 'up';
339
- const shouldTrackProgress = hasSnapPoints && isVerticalSwipe || !hasSnapPoints || swipeDirection === 'left' || swipeDirection === 'right' || isDismissSwipe;
340
282
  let resolvedProgress = progress;
341
283
  if (snapPointRange && popupHeight > 0) {
284
+ const baseOffset = activeSnapPointOffset ?? snapPointRange.minOffset;
285
+ const offsetToProgress = nextOffset => (0, _clamp.clamp)((nextOffset - snapPointRange.minOffset) / snapPointRange.range, 0, 1);
342
286
  if (details && Number.isFinite(details.deltaY)) {
343
- const baseOffset = activeSnapPointOffset ?? snapPointRange.minOffset;
344
- const nextOffset = (0, _clamp.clamp)(baseOffset + details.deltaY, 0, popupHeight);
345
- resolvedProgress = (0, _clamp.clamp)((nextOffset - snapPointRange.minOffset) / snapPointRange.range, 0, 1);
287
+ resolvedProgress = offsetToProgress((0, _clamp.clamp)(baseOffset + details.deltaY, 0, popupHeight));
346
288
  } else if (snapPointProgress !== null) {
347
289
  resolvedProgress = snapPointProgress;
348
- } else if (currentDirection === 'down' || currentDirection === 'up') {
349
- const displacement = progress * popupHeight;
350
- const baseOffset = activeSnapPointOffset ?? snapPointRange.minOffset;
351
- const nextOffset = currentDirection === 'down' ? baseOffset + displacement : baseOffset - displacement;
352
- resolvedProgress = (0, _clamp.clamp)((nextOffset - snapPointRange.minOffset) / snapPointRange.range, 0, 1);
353
290
  }
354
291
  }
355
- applySwipeProgress({
356
- resolvedProgress,
357
- shouldTrackProgress,
358
- notifyParent: true
359
- });
292
+ applySwipeProgress(resolvedProgress, true, true);
360
293
  },
361
294
  onRelease({
362
295
  event,
@@ -368,30 +301,21 @@ const DrawerViewport = exports.DrawerViewport = /*#__PURE__*/React.forwardRef(fu
368
301
  releaseVelocityX,
369
302
  releaseVelocityY
370
303
  }) {
371
- const swipeReleasePayload = {
372
- deltaX,
373
- deltaY,
374
- velocityX,
375
- velocityY,
376
- releaseVelocityX,
377
- releaseVelocityY
378
- };
304
+ const popupElement = store.context.popupRef.current;
305
+ if (!popupElement) {
306
+ clearSwipeRelease();
307
+ return undefined;
308
+ }
309
+ const releasePopupElement = popupElement;
379
310
  function startSwipeRelease(resolvedDirection) {
380
311
  // Start ending transition styles earlier and synchronously to prevent a period where
381
312
  // the popup appears stuck on release before the actual closing animation starts.
382
- const popupElement = store.context.popupRef.current;
383
- if (!popupElement) {
384
- return;
385
- }
386
313
  finishNestedSwipe();
387
314
  setSwipeDismissed(true);
388
- popupElement.style.removeProperty('transition');
389
- popupElement.setAttribute(_stateAttributesMapping.TransitionStatusDataAttributes.endingStyle, '');
315
+ releasePopupElement.style.removeProperty('transition');
316
+ releasePopupElement.setAttribute(_stateAttributesMapping.TransitionStatusDataAttributes.endingStyle, '');
390
317
  ReactDOM.flushSync(() => {
391
- setSwipeRelease(resolveSwipeRelease({
392
- direction: resolvedDirection,
393
- ...swipeReleasePayload
394
- }));
318
+ setSwipeRelease(resolveSwipeRelease(releasePopupElement, resolvedDirection, deltaX, deltaY, velocityX, velocityY, releaseVelocityX, releaseVelocityY));
395
319
  });
396
320
  }
397
321
  if (!snapPoints || snapPoints.length === 0) {
@@ -399,29 +323,16 @@ const DrawerViewport = exports.DrawerViewport = /*#__PURE__*/React.forwardRef(fu
399
323
  clearSwipeRelease();
400
324
  return undefined;
401
325
  }
402
- const element = store.context.popupRef.current;
403
- if (!element) {
404
- clearSwipeRelease();
405
- return undefined;
406
- }
407
- const baseThreshold = getBaseSwipeThreshold(element, direction);
408
- const delta = direction === 'left' || direction === 'right' ? deltaX : deltaY;
409
- if (!Number.isFinite(delta)) {
410
- clearSwipeRelease();
411
- return undefined;
412
- }
413
- const directionalDelta = direction === 'left' || direction === 'up' ? -delta : delta;
326
+ const directionalDelta = (0, _useSwipeDismiss.getDisplacement)(direction, deltaX, deltaY);
414
327
  if (directionalDelta <= 0) {
415
328
  clearSwipeRelease();
416
329
  return false;
417
330
  }
418
- const velocity = direction === 'left' || direction === 'right' ? velocityX : velocityY;
419
- const directionalVelocity = direction === 'left' || direction === 'up' ? -velocity : velocity;
420
- if (directionalVelocity >= FAST_SWIPE_VELOCITY && directionalDelta > 0) {
331
+ if ((0, _useSwipeDismiss.getDisplacement)(direction, velocityX, velocityY) >= FAST_SWIPE_VELOCITY) {
421
332
  startSwipeRelease(direction);
422
333
  return true;
423
334
  }
424
- const shouldClose = directionalDelta > baseThreshold;
335
+ const shouldClose = directionalDelta > getBaseSwipeThreshold(releasePopupElement, direction);
425
336
  if (shouldClose) {
426
337
  startSwipeRelease(direction);
427
338
  } else {
@@ -433,20 +344,20 @@ const DrawerViewport = exports.DrawerViewport = /*#__PURE__*/React.forwardRef(fu
433
344
  clearSwipeRelease();
434
345
  return undefined;
435
346
  }
436
- if (!popupHeight || resolvedSnapPoints.length === 0) {
347
+ if (!popupHeight) {
437
348
  clearSwipeRelease();
438
- return undefined;
349
+ return false;
439
350
  }
440
- const dragDelta = swipeDirection === 'down' ? deltaY : -deltaY;
441
- if (!Number.isFinite(dragDelta)) {
351
+ if (resolvedSnapPoints.length === 0) {
442
352
  clearSwipeRelease();
443
353
  return undefined;
444
354
  }
355
+ const dragDelta = swipeDirection === 'down' ? deltaY : -deltaY;
445
356
  const dragDirection = Math.sign(dragDelta);
446
357
  const releaseDirectionalVelocity = swipeDirection === 'down' ? releaseVelocityY : -releaseVelocityY;
447
358
  const fallbackDirectionalVelocity = swipeDirection === 'down' ? velocityY : -velocityY;
448
- let resolvedDirectionalVelocity = Number.isFinite(releaseDirectionalVelocity) ? releaseDirectionalVelocity : fallbackDirectionalVelocity;
449
- if (dragDirection !== 0 && Math.abs(dragDelta) >= MIN_SWIPE_THRESHOLD && Number.isFinite(resolvedDirectionalVelocity)) {
359
+ let resolvedDirectionalVelocity = releaseDirectionalVelocity;
360
+ if (dragDirection !== 0 && Math.abs(dragDelta) >= MIN_SWIPE_THRESHOLD) {
450
361
  const velocityDirection = Math.sign(resolvedDirectionalVelocity);
451
362
  if (velocityDirection !== 0 && velocityDirection !== dragDirection) {
452
363
  // Ignore touch reversals that would otherwise flip the snap decision.
@@ -455,39 +366,20 @@ const DrawerViewport = exports.DrawerViewport = /*#__PURE__*/React.forwardRef(fu
455
366
  }
456
367
  const currentOffset = activeSnapPointOffset ?? 0;
457
368
  const dragTargetOffset = (0, _clamp.clamp)(currentOffset + dragDelta, 0, popupHeight);
458
- const velocityOffset = Number.isFinite(resolvedDirectionalVelocity) && Math.abs(resolvedDirectionalVelocity) >= SNAP_VELOCITY_THRESHOLD ? (0, _clamp.clamp)(resolvedDirectionalVelocity, -MAX_SNAP_VELOCITY, MAX_SNAP_VELOCITY) * SNAP_VELOCITY_MULTIPLIER : 0;
369
+ const velocityOffset = Math.abs(resolvedDirectionalVelocity) >= SNAP_VELOCITY_THRESHOLD ? (0, _clamp.clamp)(resolvedDirectionalVelocity, -MAX_SNAP_VELOCITY, MAX_SNAP_VELOCITY) * SNAP_VELOCITY_MULTIPLIER : 0;
459
370
  const targetOffset = snapToSequentialPoints ? dragTargetOffset : (0, _clamp.clamp)(dragTargetOffset + velocityOffset, 0, popupHeight);
460
371
  const snapPointEventDetails = (0, _createBaseUIEventDetails.createChangeEventDetails)(_reasons.REASONS.swipe, event);
461
372
  const closeFromSnapPoints = () => {
462
373
  pendingSwipeCloseSnapPointRef.current = activeSnapPoint;
463
- setActiveSnapPoint?.(null, snapPointEventDetails);
374
+ setActiveSnapPoint(null, snapPointEventDetails);
464
375
  startSwipeRelease(swipeDirection);
465
376
  return true;
466
377
  };
467
378
  if (snapToSequentialPoints) {
468
379
  const orderedSnapPoints = [...resolvedSnapPoints].sort((first, second) => first.offset - second.offset);
469
- if (orderedSnapPoints.length === 0) {
470
- clearSwipeRelease();
471
- return false;
472
- }
473
- let currentIndex = 0;
474
- let closestDistance = Math.abs(currentOffset - orderedSnapPoints[0].offset);
475
- for (let index = 1; index < orderedSnapPoints.length; index += 1) {
476
- const distance = Math.abs(currentOffset - orderedSnapPoints[index].offset);
477
- if (distance < closestDistance) {
478
- closestDistance = distance;
479
- currentIndex = index;
480
- }
481
- }
482
- let targetSnapPoint = orderedSnapPoints[0];
483
- closestDistance = Math.abs(targetOffset - targetSnapPoint.offset);
484
- for (const snapPoint of orderedSnapPoints) {
485
- const distance = Math.abs(targetOffset - snapPoint.offset);
486
- if (distance < closestDistance) {
487
- closestDistance = distance;
488
- targetSnapPoint = snapPoint;
489
- }
490
- }
380
+ const orderedOffsets = orderedSnapPoints.map(point => point.offset);
381
+ const currentIndex = (0, _useDrawerSnapPoints.closestSnapPointIndex)(orderedOffsets, currentOffset);
382
+ let targetSnapPoint = orderedSnapPoints[(0, _useDrawerSnapPoints.closestSnapPointIndex)(orderedOffsets, targetOffset)];
491
383
  const velocityDirection = Math.sign(resolvedDirectionalVelocity);
492
384
  const shouldAdvance = dragDirection !== 0 && velocityDirection !== 0 && velocityDirection === dragDirection && Math.abs(resolvedDirectionalVelocity) >= SNAP_VELOCITY_THRESHOLD;
493
385
  let effectiveTargetOffset = targetOffset;
@@ -504,34 +396,24 @@ const DrawerViewport = exports.DrawerViewport = /*#__PURE__*/React.forwardRef(fu
504
396
  return closeFromSnapPoints();
505
397
  }
506
398
  }
507
- const closeOffset = popupHeight;
508
- const closeDistance = Math.abs(effectiveTargetOffset - closeOffset);
399
+ const closeDistance = Math.abs(effectiveTargetOffset - popupHeight);
509
400
  const snapDistance = Math.abs(effectiveTargetOffset - targetSnapPoint.offset);
510
401
  if (closeDistance < snapDistance) {
511
402
  return closeFromSnapPoints();
512
403
  }
513
- setActiveSnapPoint?.(targetSnapPoint.value, snapPointEventDetails);
404
+ setActiveSnapPoint(targetSnapPoint.value, snapPointEventDetails);
514
405
  clearSwipeRelease();
515
406
  return false;
516
407
  }
517
408
  if (resolvedDirectionalVelocity >= FAST_SWIPE_VELOCITY && dragDelta > 0) {
518
409
  return closeFromSnapPoints();
519
410
  }
520
- let closestSnapPoint = resolvedSnapPoints[0];
521
- let closestDistance = Math.abs(targetOffset - closestSnapPoint.offset);
522
- for (const snapPoint of resolvedSnapPoints) {
523
- const distance = Math.abs(targetOffset - snapPoint.offset);
524
- if (distance < closestDistance) {
525
- closestDistance = distance;
526
- closestSnapPoint = snapPoint;
527
- }
528
- }
529
- const closeOffset = popupHeight;
530
- const closeDistance = Math.abs(targetOffset - closeOffset);
531
- if (closeDistance < closestDistance) {
411
+ const closestSnapPoint = resolvedSnapPoints[(0, _useDrawerSnapPoints.closestSnapPointIndex)(resolvedSnapPoints.map(point => point.offset), targetOffset)];
412
+ const closeDistance = Math.abs(targetOffset - popupHeight);
413
+ if (closeDistance < Math.abs(targetOffset - closestSnapPoint.offset)) {
532
414
  return closeFromSnapPoints();
533
415
  }
534
- setActiveSnapPoint?.(closestSnapPoint.value, snapPointEventDetails);
416
+ setActiveSnapPoint(closestSnapPoint.value, snapPointEventDetails);
535
417
  clearSwipeRelease();
536
418
  return false;
537
419
  },
@@ -550,7 +432,7 @@ const DrawerViewport = exports.DrawerViewport = /*#__PURE__*/React.forwardRef(fu
550
432
  if (dismissEventDetails.isCanceled) {
551
433
  const pendingSnapPoint = pendingSwipeCloseSnapPointRef.current;
552
434
  if (pendingSnapPoint !== undefined) {
553
- setActiveSnapPoint?.(pendingSnapPoint, (0, _createBaseUIEventDetails.createChangeEventDetails)(_reasons.REASONS.swipe, event));
435
+ setActiveSnapPoint(pendingSnapPoint, (0, _createBaseUIEventDetails.createChangeEventDetails)(_reasons.REASONS.swipe, event));
554
436
  }
555
437
  pendingSwipeCloseSnapPointRef.current = undefined;
556
438
  resetSwipeRef.current?.();
@@ -572,7 +454,7 @@ const DrawerViewport = exports.DrawerViewport = /*#__PURE__*/React.forwardRef(fu
572
454
  // Parent rejected: revert animation and restore snap point.
573
455
  const pendingSnapPoint = pendingSwipeCloseSnapPointRef.current;
574
456
  if (pendingSnapPoint !== undefined) {
575
- setActiveSnapPoint?.(pendingSnapPoint, (0, _createBaseUIEventDetails.createChangeEventDetails)(_reasons.REASONS.swipe, savedEvent));
457
+ setActiveSnapPoint(pendingSnapPoint, (0, _createBaseUIEventDetails.createChangeEventDetails)(_reasons.REASONS.swipe, savedEvent));
576
458
  }
577
459
  pendingSwipeCloseSnapPointRef.current = undefined;
578
460
  clearSwipeRelease();
@@ -602,42 +484,18 @@ const DrawerViewport = exports.DrawerViewport = /*#__PURE__*/React.forwardRef(fu
602
484
  }
603
485
  const resolvedRootElement = rootElement;
604
486
  const doc = (0, _owner.ownerDocument)(resolvedRootElement);
605
- const win = (0, _owner.ownerWindow)(doc);
606
- function handleNativeTouchMove(event) {
607
- // The virtual keyboard provider observes the move to tell a tap apart from a drag.
608
- // It must run even when the swipe gesture below claims the event with
609
- // `stopPropagation()`, which would otherwise prevent React's delegated handlers
610
- // (and the provider) from ever seeing the move.
611
- virtualKeyboard?.onTouchMove(event);
612
- if (ignoreTouchSwipeRef.current) {
613
- return;
614
- }
615
- const touchState = touchScrollStateRef.current;
616
- const touch = event.touches[0];
617
- if (!touch || !touchState) {
618
- return;
619
- }
487
+ function processTouchMove(event, touchState, touch) {
620
488
  const drawerAxisDelta = isVerticalScrollAxis ? touch.clientY - touchState.lastY : touch.clientX - touchState.lastX;
621
489
 
622
- // Preserve native range interaction by never locking touchmove for range inputs.
623
- if (isEventOnRangeInput(event, win)) {
624
- touchState.allowSwipe = false;
625
- updateTouchScrollPosition(touchState, touch);
626
- return;
627
- }
628
-
629
490
  // Avoid blocking pinch zoom or text selection adjustments on iOS Safari.
630
491
  if (event.touches.length === 2) {
631
- updateTouchScrollPosition(touchState, touch);
632
492
  return;
633
493
  }
634
494
  const allowTouchMove = shouldIgnoreSwipeForTextSelection(doc, resolvedRootElement);
635
495
  if (allowTouchMove || !open || !mounted || nestedDrawerOpen) {
636
- updateTouchScrollPosition(touchState, touch);
637
496
  return;
638
497
  }
639
- if (preserveNativeCrossAxisScrollOnMove(touchState, touch, isVerticalScrollAxis)) {
640
- updateTouchScrollPosition(touchState, touch);
498
+ if (shouldYieldTouchMove(touchState, event, touch, isVerticalScrollAxis)) {
641
499
  return;
642
500
  }
643
501
  const scrollTarget = touchState.scrollTarget;
@@ -649,27 +507,21 @@ const DrawerViewport = exports.DrawerViewport = /*#__PURE__*/React.forwardRef(fu
649
507
  // move through React re-rasterizes the popup content on every frame.
650
508
  event.stopPropagation();
651
509
  moveSwipeNative(event, resolvedRootElement);
652
- updateTouchScrollPosition(touchState, touch);
653
510
  return;
654
511
  }
655
- const hasScrollableContent = hasScrollableContentOnAxis(scrollTarget, scrollAxis);
656
- if (!hasScrollableContent) {
512
+ if (!hasScrollableContentOnAxis(scrollTarget, scrollAxis)) {
657
513
  // If the scroll container doesn't overflow on the drawer axis, prevent the window from
658
514
  // scrolling instead.
659
515
  if (event.cancelable) {
660
516
  event.preventDefault();
661
517
  }
662
518
  event.stopPropagation();
663
- updateTouchScrollPosition(touchState, touch);
664
519
  return;
665
520
  }
666
- const delta = drawerAxisDelta;
667
- if (delta !== 0) {
668
- const canSwipeFromScrollEdge = canSwipeFromScrollEdgeOnMove(scrollTarget, scrollAxis, swipeDirection, delta);
521
+ if (drawerAxisDelta !== 0) {
522
+ const canSwipeFromScrollEdge = canSwipeFromScrollEdgeOnMove(scrollTarget, scrollAxis, swipeDirection, drawerAxisDelta);
669
523
  if (!touchState.allowSwipe) {
670
- if (!event.cancelable) {
671
- touchState.allowSwipe = false;
672
- } else if (canSwipeFromScrollEdge) {
524
+ if (event.cancelable && canSwipeFromScrollEdge) {
673
525
  touchState.allowSwipe = true;
674
526
  event.preventDefault();
675
527
  } else {
@@ -683,6 +535,22 @@ const DrawerViewport = exports.DrawerViewport = /*#__PURE__*/React.forwardRef(fu
683
535
  event.stopPropagation();
684
536
  moveSwipeNative(event, resolvedRootElement);
685
537
  }
538
+ }
539
+ function handleNativeTouchMove(event) {
540
+ // The virtual keyboard provider observes the move to tell a tap apart from a drag.
541
+ // It must run even when the swipe gesture below claims the event with
542
+ // `stopPropagation()`, which would otherwise prevent React's delegated handlers
543
+ // (and the provider) from ever seeing the move.
544
+ virtualKeyboard?.onTouchMove(event);
545
+ if (ignoreTouchSwipeRef.current) {
546
+ return;
547
+ }
548
+ const touchState = touchScrollStateRef.current;
549
+ const touch = event.touches[0];
550
+ if (!touch || !touchState) {
551
+ return;
552
+ }
553
+ processTouchMove(event, touchState, touch);
686
554
  updateTouchScrollPosition(touchState, touch);
687
555
  }
688
556
  return (0, _addEventListener.addEventListener)(doc, 'touchmove', handleNativeTouchMove, {
@@ -690,18 +558,13 @@ const DrawerViewport = exports.DrawerViewport = /*#__PURE__*/React.forwardRef(fu
690
558
  capture: true
691
559
  });
692
560
  }, [mounted, nestedDrawerOpen, open, popupElementState, isVerticalScrollAxis, scrollAxis, swipeDirection, moveSwipeNative, viewportElement, virtualKeyboard]);
693
- React.useEffect(() => {
561
+ (0, _useIsoLayoutEffect.useIsoLayoutEffect)(() => {
694
562
  if (!snapPointRange || swipe.swiping) {
695
563
  return;
696
564
  }
697
- const resolvedProgress = !open || nested ? 0 : snapPointProgress ?? 0;
698
- applySwipeProgress({
699
- resolvedProgress,
700
- shouldTrackProgress: true,
701
- notifyParent: false
702
- });
565
+ applySwipeProgress(!open || nested ? 0 : snapPointProgress ?? 0, true, false);
703
566
  }, [applySwipeProgress, frontmostHeight, nested, notifyParentSwipeProgressChange, open, snapPointProgress, snapPointRange, swipe.swiping, store, visualStateStore]);
704
- React.useEffect(() => {
567
+ (0, _useIsoLayoutEffect.useIsoLayoutEffect)(() => {
705
568
  if (!notifyParentSwipeProgressChange) {
706
569
  return undefined;
707
570
  }
@@ -712,13 +575,19 @@ const DrawerViewport = exports.DrawerViewport = /*#__PURE__*/React.forwardRef(fu
712
575
  notifyParentSwipeProgressChange(0);
713
576
  };
714
577
  }, [notifyParentSwipeProgressChange, open]);
715
- React.useEffect(() => {
578
+ (0, _useIsoLayoutEffect.useIsoLayoutEffect)(() => {
716
579
  if (open) {
717
- resetSwipe();
580
+ // Skip `resetSwipe` while `Drawer.SwipeArea` is driving the open: it zeroes the popup's
581
+ // `--swipe-movement-*` (via `syncDragStyles(false)`), flashing it fully open for a frame.
582
+ // `clearSwipeRelease` doesn't touch those vars, so always run it to clear any leftover
583
+ // release state from a prior dismiss (e.g. when the popup is kept mounted).
584
+ if (!swipeAreaActiveRef.current) {
585
+ resetSwipe();
586
+ }
718
587
  clearSwipeRelease();
719
588
  }
720
- }, [clearSwipeRelease, open, resetSwipe]);
721
- React.useEffect(() => {
589
+ }, [clearSwipeRelease, open, resetSwipe, swipeAreaActiveRef]);
590
+ (0, _useIsoLayoutEffect.useIsoLayoutEffect)(() => {
722
591
  const backdropElement = backdropRef.current;
723
592
  return () => {
724
593
  visualStateStore?.set({
@@ -743,12 +612,19 @@ const DrawerViewport = exports.DrawerViewport = /*#__PURE__*/React.forwardRef(fu
743
612
  swipeStrength: swipeRelease ?? null,
744
613
  setSwipeDismissed
745
614
  }), [setSwipeDismissed, swipe.getDragStyles, swipe.swiping, swipeRelease]);
746
- function resetTouchTrackingState() {
747
- ignoreTouchSwipeRef.current = false;
615
+ function resetTouchSwipeState(ignoreSwipe) {
616
+ ignoreTouchSwipeRef.current = ignoreSwipe;
748
617
  touchScrollStateRef.current = null;
618
+ }
619
+ function resetTouchTrackingState() {
620
+ resetTouchSwipeState(false);
749
621
  lastPointerTypeRef.current = '';
750
622
  ignoreNextTouchStartFromPenRef.current = false;
751
623
  }
624
+ function handlePointerEnd(event) {
625
+ lastPointerTypeRef.current = '';
626
+ return event.pointerType !== 'touch';
627
+ }
752
628
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_DialogViewport.DialogViewport, {
753
629
  ref: forwardedRef,
754
630
  className: className,
@@ -761,8 +637,7 @@ const DrawerViewport = exports.DrawerViewport = /*#__PURE__*/React.forwardRef(fu
761
637
  if (!open || !mounted || nestedDrawerOpen) {
762
638
  return;
763
639
  }
764
- const doc = (0, _owner.ownerDocument)(event.currentTarget);
765
- const elementAtPoint = (0, _getElementAtPoint.getElementAtPoint)(doc, event.clientX, event.clientY);
640
+ const elementAtPoint = (0, _getElementAtPoint.getElementAtPoint)(event.currentTarget.getRootNode(), event.clientX, event.clientY);
766
641
  if (isSwipeIgnoredTarget(elementAtPoint) || isDrawerContentTarget(elementAtPoint)) {
767
642
  return;
768
643
  }
@@ -778,34 +653,24 @@ const DrawerViewport = exports.DrawerViewport = /*#__PURE__*/React.forwardRef(fu
778
653
  swipePointerProps.onPointerMove?.(event);
779
654
  },
780
655
  onPointerUp(event) {
781
- if (lastPointerTypeRef.current === event.pointerType) {
782
- lastPointerTypeRef.current = '';
783
- }
784
- if (event.pointerType === 'touch') {
785
- return;
656
+ if (handlePointerEnd(event)) {
657
+ swipePointerProps.onPointerUp?.(event);
786
658
  }
787
- swipePointerProps.onPointerUp?.(event);
788
659
  },
789
660
  onPointerCancel(event) {
790
- if (lastPointerTypeRef.current === event.pointerType) {
791
- lastPointerTypeRef.current = '';
792
- }
793
- if (event.pointerType === 'touch') {
794
- return;
661
+ if (handlePointerEnd(event)) {
662
+ swipePointerProps.onPointerCancel?.(event);
795
663
  }
796
- swipePointerProps.onPointerCancel?.(event);
797
664
  },
798
665
  onTouchStart(event) {
799
666
  const startedFromPenPointerDown = lastPointerTypeRef.current === 'pen' && ignoreNextTouchStartFromPenRef.current;
800
667
  if (startedFromPenPointerDown) {
801
668
  ignoreNextTouchStartFromPenRef.current = false;
802
- ignoreTouchSwipeRef.current = false;
803
- touchScrollStateRef.current = null;
669
+ resetTouchSwipeState(false);
804
670
  return;
805
671
  }
806
672
  if (!open || !mounted || nestedDrawerOpen) {
807
- ignoreTouchSwipeRef.current = false;
808
- touchScrollStateRef.current = null;
673
+ resetTouchSwipeState(false);
809
674
  return;
810
675
  }
811
676
  const touch = event.touches[0];
@@ -813,32 +678,25 @@ const DrawerViewport = exports.DrawerViewport = /*#__PURE__*/React.forwardRef(fu
813
678
  return;
814
679
  }
815
680
  if (isReactTouchEventOnRangeInput(event)) {
816
- ignoreTouchSwipeRef.current = false;
817
- touchScrollStateRef.current = null;
681
+ resetTouchSwipeState(false);
818
682
  return;
819
683
  }
820
- const doc = (0, _owner.ownerDocument)(event.currentTarget);
821
- const elementAtPoint = (0, _getElementAtPoint.getElementAtPoint)(doc, touch.clientX, touch.clientY);
822
- const rootElement = viewportElement ?? popupElementState;
684
+ const rootElement = event.currentTarget;
685
+ const elementAtPoint = (0, _getElementAtPoint.getElementAtPoint)(rootElement.getRootNode(), touch.clientX, touch.clientY);
823
686
  const eventTarget = (0, _utils.getTarget)(event.nativeEvent);
824
- const target = (0, _dom.isElement)(eventTarget) ? eventTarget : null;
825
- if (rootElement && target && !(0, _utils.contains)(rootElement, target)) {
826
- ignoreTouchSwipeRef.current = true;
827
- touchScrollStateRef.current = null;
687
+ const target = (0, _dom.isElement)(eventTarget) ? eventTarget : rootElement;
688
+ if (!(0, _utils.contains)(rootElement, target)) {
689
+ resetTouchSwipeState(true);
828
690
  return;
829
691
  }
830
692
  virtualKeyboard?.onTouchStart(event);
831
- ignoreTouchSwipeRef.current = isSwipeIgnoredTarget(elementAtPoint);
832
- if (ignoreTouchSwipeRef.current) {
833
- touchScrollStateRef.current = null;
693
+ if (isSwipeIgnoredTarget(elementAtPoint)) {
694
+ resetTouchSwipeState(true);
834
695
  return;
835
696
  }
836
- let scrollTarget = null;
837
- let hasCrossAxisScrollableContent = false;
838
- if (rootElement && target) {
839
- scrollTarget = (0, _scrollable.findScrollableTouchTarget)(target, rootElement, scrollAxis);
840
- hasCrossAxisScrollableContent = (0, _scrollable.findScrollableTouchTarget)(target, rootElement, crossScrollAxis) != null;
841
- }
697
+ ignoreTouchSwipeRef.current = false;
698
+ const scrollTarget = (0, _scrollable.findScrollableTouchTarget)(target, rootElement, scrollAxis);
699
+ const hasCrossAxisScrollableContent = (0, _scrollable.findScrollableTouchTarget)(target, rootElement, crossScrollAxis) != null;
842
700
  let allowSwipe = null;
843
701
  if (scrollTarget) {
844
702
  const canSwipeFromEdge = isAtSwipeStartEdge(scrollTarget, scrollAxis, swipeDirection);
@@ -852,7 +710,8 @@ const DrawerViewport = exports.DrawerViewport = /*#__PURE__*/React.forwardRef(fu
852
710
  scrollTarget,
853
711
  hasCrossAxisScrollableContent,
854
712
  allowSwipe,
855
- preserveNativeCrossAxisScroll: false
713
+ preserveNativeCrossAxisScroll: false,
714
+ drawerAxisAttributed: false
856
715
  };
857
716
  swipeTouchProps.onTouchStart?.(event);
858
717
  },
@@ -877,24 +736,8 @@ const DrawerViewport = exports.DrawerViewport = /*#__PURE__*/React.forwardRef(fu
877
736
  });
878
737
  });
879
738
  if (process.env.NODE_ENV !== "production") DrawerViewport.displayName = "DrawerViewport";
880
- function setSwipeDismissedElements(popupElement, backdropElement, dismissed) {
881
- if (dismissed) {
882
- popupElement?.setAttribute(_DrawerPopupDataAttributes.DrawerPopupDataAttributes.swipeDismiss, '');
883
- backdropElement?.setAttribute(_DrawerPopupDataAttributes.DrawerPopupDataAttributes.swipeDismiss, '');
884
- return;
885
- }
886
- popupElement?.removeAttribute(_DrawerPopupDataAttributes.DrawerPopupDataAttributes.swipeDismiss);
887
- backdropElement?.removeAttribute(_DrawerPopupDataAttributes.DrawerPopupDataAttributes.swipeDismiss);
888
- }
889
739
  function setBackdropSwipingAttribute(backdropElement, swiping) {
890
- if (!backdropElement) {
891
- return;
892
- }
893
- if (swiping) {
894
- backdropElement.setAttribute(_DrawerPopupDataAttributes.DrawerPopupDataAttributes.swiping, '');
895
- return;
896
- }
897
- backdropElement.removeAttribute(_DrawerPopupDataAttributes.DrawerPopupDataAttributes.swiping);
740
+ backdropElement?.toggleAttribute(_DrawerPopupDataAttributes.DrawerPopupDataAttributes.swiping, swiping);
898
741
  }
899
742
  function isSwipeIgnoredTarget(target) {
900
743
  return Boolean(target?.closest(_constants.BASE_UI_SWIPE_IGNORE_SELECTOR));
@@ -902,17 +745,16 @@ function isSwipeIgnoredTarget(target) {
902
745
  function isDrawerContentTarget(target) {
903
746
  return Boolean(target?.closest(DRAWER_CONTENT_SELECTOR));
904
747
  }
748
+ function getBaseSwipeSize(element, direction) {
749
+ return direction === 'left' || direction === 'right' ? element.offsetWidth : element.offsetHeight;
750
+ }
905
751
  function getBaseSwipeThreshold(element, direction) {
906
- const size = direction === 'left' || direction === 'right' ? element.offsetWidth : element.offsetHeight;
907
- return Math.max(size * 0.5, MIN_SWIPE_THRESHOLD);
752
+ return Math.max(getBaseSwipeSize(element, direction) * 0.5, MIN_SWIPE_THRESHOLD);
908
753
  }
909
754
  function isRangeInput(target, win) {
910
755
  return target instanceof win.HTMLInputElement && target.type === 'range';
911
756
  }
912
757
  function isTextSelectionControl(target) {
913
- if (!(0, _dom.isElement)(target)) {
914
- return false;
915
- }
916
758
  return target.tagName === 'INPUT' || target.tagName === 'TEXTAREA';
917
759
  }
918
760
  function hasExpandedSelectionWithinTarget(selection, target) {
@@ -922,8 +764,7 @@ function hasExpandedSelectionWithinTarget(selection, target) {
922
764
  }
923
765
  function shouldIgnoreSwipeForTextSelection(doc, rootElement) {
924
766
  const activeEl = (0, _utils.activeElement)(doc);
925
- const activeElementWithinRoot = Boolean(activeEl && (0, _utils.contains)(rootElement, activeEl));
926
- if (activeElementWithinRoot && isTextSelectionControl(activeEl)) {
767
+ if (activeEl && (0, _utils.contains)(rootElement, activeEl) && isTextSelectionControl(activeEl)) {
927
768
  const {
928
769
  selectionStart,
929
770
  selectionEnd
@@ -939,11 +780,7 @@ function shouldIgnoreSwipeForTextSelection(doc, rootElement) {
939
780
  return hasExpandedSelectionWithinTarget(selection, rootElement);
940
781
  }
941
782
  function isEventOnRangeInput(event, win) {
942
- const composedPath = event.composedPath();
943
- if (composedPath) {
944
- return composedPath.some(pathTarget => isRangeInput(pathTarget, win));
945
- }
946
- return isRangeInput((0, _utils.getTarget)(event), win);
783
+ return event.composedPath().some(pathTarget => isRangeInput(pathTarget, win));
947
784
  }
948
785
  function isReactTouchEventOnRangeInput(event) {
949
786
  return isEventOnRangeInput(event.nativeEvent, (0, _owner.ownerWindow)(event.currentTarget));
@@ -952,25 +789,51 @@ function updateTouchScrollPosition(touchState, touch) {
952
789
  touchState.lastX = touch.clientX;
953
790
  touchState.lastY = touch.clientY;
954
791
  }
955
- function preserveNativeCrossAxisScrollOnMove(touchState, touch, isVerticalScrollAxis) {
792
+
793
+ /**
794
+ * Arbitrates a touchmove between the drawer swipe and a native cross-axis scroll.
795
+ * Returns `true` when the move must be left alone — either because the cross axis already won the
796
+ * gesture, or because neither axis has passed the slop yet and the gesture cannot be attributed.
797
+ */
798
+ function shouldYieldTouchMove(touchState, event, touch, isVerticalScrollAxis) {
956
799
  if (touchState.preserveNativeCrossAxisScroll) {
957
800
  return true;
958
801
  }
959
- if (touchState.allowSwipe === true || !touchState.hasCrossAxisScrollableContent) {
802
+
803
+ // Attribution happens once per gesture. Re-arbitrating after the drawer axis has won would let
804
+ // the pre-attribution branches below fire mid-drag (the slop is measured from the touch origin,
805
+ // which is never re-baselined), freezing the popup and dropping `preventDefault()`.
806
+ if (touchState.drawerAxisAttributed || touchState.allowSwipe === true || !touchState.hasCrossAxisScrollableContent) {
960
807
  return false;
961
808
  }
809
+
810
+ // A non-cancelable touchmove means the browser has already committed the gesture to a native
811
+ // scroll; claiming it for the swipe would drag the popup alongside the scrolling content.
812
+ if (!event.cancelable) {
813
+ touchState.preserveNativeCrossAxisScroll = true;
814
+ return true;
815
+ }
962
816
  const drawerAxisGestureDelta = isVerticalScrollAxis ? touch.clientY - touchState.startY : touch.clientX - touchState.startX;
963
817
  const crossAxisGestureDelta = isVerticalScrollAxis ? touch.clientX - touchState.startX : touch.clientY - touchState.startY;
964
818
  const absDrawerAxisGestureDelta = Math.abs(drawerAxisGestureDelta);
965
819
  const absCrossAxisGestureDelta = Math.abs(crossAxisGestureDelta);
966
- if (absCrossAxisGestureDelta < 6 || absCrossAxisGestureDelta <= absDrawerAxisGestureDelta + 2) {
820
+ if (absCrossAxisGestureDelta >= AXIS_LOCK_SLOP && absCrossAxisGestureDelta > absDrawerAxisGestureDelta + AXIS_LOCK_BIAS) {
821
+ touchState.preserveNativeCrossAxisScroll = true;
822
+ return true;
823
+ }
824
+ if (absDrawerAxisGestureDelta >= AXIS_LOCK_SLOP) {
825
+ touchState.drawerAxisAttributed = true;
967
826
  return false;
968
827
  }
969
- touchState.preserveNativeCrossAxisScroll = true;
828
+
829
+ // Neither axis has traveled past the slop yet, so the gesture cannot be attributed. Leave the
830
+ // event alone: on iOS, `preventDefault()` on the first cancelable touchmove cancels native
831
+ // scrolling for the entire gesture, which would lock a cross-axis scroll that only passes the
832
+ // slop on a later move.
970
833
  return true;
971
834
  }
972
835
  function hasScrollableContentOnAxis(scrollTarget, axis) {
973
- return axis === 'vertical' ? scrollTarget.scrollHeight > scrollTarget.clientHeight : scrollTarget.scrollWidth > scrollTarget.clientWidth;
836
+ return getScrollMetrics(scrollTarget, axis).max > 0;
974
837
  }
975
838
  function getScrollMetrics(scrollTarget, axis) {
976
839
  if (axis === 'vertical') {
@@ -987,46 +850,21 @@ function getScrollMetrics(scrollTarget, axis) {
987
850
  };
988
851
  }
989
852
  function isAtSwipeStartEdge(scrollTarget, axis, direction) {
853
+ const dismissFromStartEdge = shouldDismissFromStartEdge(direction, axis);
990
854
  const {
991
855
  offset,
992
856
  max
993
857
  } = getScrollMetrics(scrollTarget, axis);
994
- const dismissFromStartEdge = shouldDismissFromStartEdge(direction, axis);
995
- if (dismissFromStartEdge === null) {
996
- return false;
997
- }
998
858
  return dismissFromStartEdge ? offset <= 0 : offset >= max;
999
859
  }
1000
860
  function canSwipeFromScrollEdgeOnMove(scrollTarget, axis, direction, delta) {
1001
- const {
1002
- offset,
1003
- max
1004
- } = getScrollMetrics(scrollTarget, axis);
1005
861
  const dismissFromStartEdge = shouldDismissFromStartEdge(direction, axis);
1006
- if (dismissFromStartEdge === null) {
1007
- return false;
1008
- }
1009
862
  const movingTowardDismiss = dismissFromStartEdge ? delta > 0 : delta < 0;
1010
863
  if (!movingTowardDismiss) {
1011
864
  return false;
1012
865
  }
1013
- return dismissFromStartEdge ? offset <= 0 : offset >= max;
866
+ return isAtSwipeStartEdge(scrollTarget, axis, direction);
1014
867
  }
1015
868
  function shouldDismissFromStartEdge(direction, axis) {
1016
- if (axis === 'vertical') {
1017
- if (direction === 'down') {
1018
- return true;
1019
- }
1020
- if (direction === 'up') {
1021
- return false;
1022
- }
1023
- return null;
1024
- }
1025
- if (direction === 'right') {
1026
- return true;
1027
- }
1028
- if (direction === 'left') {
1029
- return false;
1030
- }
1031
- return null;
869
+ return axis === 'vertical' ? direction === 'down' : direction === 'right';
1032
870
  }