@base-ui/react 1.1.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1450) hide show
  1. package/CHANGELOG.md +321 -1
  2. package/accordion/header/AccordionHeader.d.ts +4 -2
  3. package/accordion/item/AccordionItem.d.ts +11 -5
  4. package/accordion/item/AccordionItemContext.d.ts +3 -3
  5. package/accordion/item/stateAttributesMapping.d.ts +2 -2
  6. package/accordion/panel/AccordionPanel.d.ts +6 -3
  7. package/accordion/root/AccordionRoot.d.ts +25 -16
  8. package/accordion/root/AccordionRootContext.d.ts +7 -7
  9. package/accordion/trigger/AccordionTrigger.d.ts +4 -2
  10. package/accordion/trigger/AccordionTrigger.js +3 -1
  11. package/alert-dialog/root/AlertDialogRoot.d.ts +5 -3
  12. package/alert-dialog/root/AlertDialogRoot.js +6 -4
  13. package/autocomplete/index.d.ts +1 -0
  14. package/autocomplete/index.parts.d.ts +3 -1
  15. package/autocomplete/index.parts.js +15 -1
  16. package/autocomplete/root/AutocompleteRoot.d.ts +21 -16
  17. package/autocomplete/root/AutocompleteRoot.js +8 -7
  18. package/avatar/fallback/AvatarFallback.d.ts +5 -3
  19. package/avatar/fallback/AvatarFallback.js +2 -2
  20. package/avatar/image/AvatarImage.d.ts +11 -3
  21. package/avatar/image/AvatarImage.js +34 -6
  22. package/avatar/image/AvatarImageDataAttributes.d.ts +10 -0
  23. package/avatar/image/AvatarImageDataAttributes.js +18 -0
  24. package/avatar/image/useImageLoadingStatus.d.ts +2 -2
  25. package/avatar/root/AvatarRoot.d.ts +4 -1
  26. package/avatar/root/AvatarRoot.js +2 -2
  27. package/button/Button.d.ts +1 -1
  28. package/button/Button.js +2 -2
  29. package/checkbox/indicator/CheckboxIndicator.d.ts +7 -4
  30. package/checkbox/indicator/CheckboxIndicator.js +4 -4
  31. package/checkbox/root/CheckboxRoot.d.ts +16 -16
  32. package/checkbox/root/CheckboxRoot.js +35 -9
  33. package/checkbox/root/CheckboxRootContext.d.ts +4 -4
  34. package/checkbox/utils/useStateAttributesMapping.d.ts +2 -2
  35. package/checkbox-group/CheckboxGroup.d.ts +8 -8
  36. package/checkbox-group/CheckboxGroup.js +2 -2
  37. package/checkbox-group/CheckboxGroupContext.d.ts +2 -2
  38. package/checkbox-group/useCheckboxGroupParent.d.ts +5 -8
  39. package/collapsible/panel/CollapsiblePanel.d.ts +8 -5
  40. package/collapsible/panel/useCollapsiblePanel.d.ts +2 -5
  41. package/collapsible/root/CollapsibleRoot.d.ts +7 -7
  42. package/collapsible/root/CollapsibleRootContext.d.ts +4 -4
  43. package/collapsible/root/stateAttributesMapping.d.ts +2 -2
  44. package/collapsible/root/useCollapsibleRoot.d.ts +4 -7
  45. package/collapsible/trigger/CollapsibleTrigger.d.ts +4 -2
  46. package/combobox/arrow/ComboboxArrow.d.ts +10 -1
  47. package/combobox/arrow/ComboboxArrow.js +2 -2
  48. package/combobox/arrow/ComboboxArrowDataAttributes.js +2 -2
  49. package/combobox/backdrop/ComboboxBackdrop.d.ts +4 -1
  50. package/combobox/backdrop/ComboboxBackdrop.js +2 -2
  51. package/combobox/chip/ComboboxChip.d.ts +1 -1
  52. package/combobox/chip/ComboboxChip.js +6 -3
  53. package/combobox/chip/ComboboxChipContext.js +1 -0
  54. package/combobox/chip-remove/ComboboxChipRemove.d.ts +1 -1
  55. package/combobox/chip-remove/ComboboxChipRemove.js +28 -33
  56. package/combobox/chips/ComboboxChips.d.ts +1 -1
  57. package/combobox/chips/ComboboxChipsContext.js +1 -0
  58. package/combobox/clear/ComboboxClear.d.ts +6 -3
  59. package/combobox/clear/ComboboxClear.js +2 -3
  60. package/combobox/collection/ComboboxCollection.d.ts +2 -0
  61. package/combobox/empty/ComboboxEmpty.d.ts +1 -1
  62. package/combobox/group/ComboboxGroup.d.ts +2 -2
  63. package/combobox/group/ComboboxGroupContext.d.ts +1 -1
  64. package/combobox/group/ComboboxGroupContext.js +1 -0
  65. package/combobox/group-label/ComboboxGroupLabel.d.ts +1 -1
  66. package/combobox/icon/ComboboxIcon.d.ts +2 -2
  67. package/combobox/index.d.ts +2 -0
  68. package/combobox/index.parts.d.ts +4 -1
  69. package/combobox/index.parts.js +22 -1
  70. package/combobox/input/ComboboxInput.d.ts +4 -4
  71. package/combobox/input/ComboboxInput.js +60 -13
  72. package/combobox/input-group/ComboboxInputGroup.d.ts +40 -0
  73. package/combobox/input-group/ComboboxInputGroup.js +68 -0
  74. package/combobox/input-group/ComboboxInputGroupDataAttributes.d.ts +55 -0
  75. package/combobox/input-group/ComboboxInputGroupDataAttributes.js +62 -0
  76. package/combobox/item/ComboboxItem.d.ts +4 -4
  77. package/combobox/item/ComboboxItem.js +17 -16
  78. package/combobox/item/ComboboxItemContext.js +1 -0
  79. package/combobox/item-indicator/ComboboxItemIndicator.d.ts +8 -2
  80. package/combobox/item-indicator/ComboboxItemIndicator.js +2 -2
  81. package/combobox/item-indicator/ComboboxItemIndicatorDataAttributes.d.ts +10 -0
  82. package/combobox/item-indicator/ComboboxItemIndicatorDataAttributes.js +18 -0
  83. package/combobox/label/ComboboxLabel.d.ts +16 -0
  84. package/combobox/label/ComboboxLabel.js +68 -0
  85. package/combobox/list/ComboboxList.d.ts +1 -1
  86. package/combobox/list/ComboboxList.js +2 -2
  87. package/combobox/popup/ComboboxPopup.d.ts +21 -3
  88. package/combobox/popup/ComboboxPopup.js +11 -4
  89. package/combobox/popup/ComboboxPopupDataAttributes.js +2 -2
  90. package/combobox/portal/ComboboxPortal.d.ts +4 -5
  91. package/combobox/portal/ComboboxPortalContext.js +1 -0
  92. package/combobox/positioner/ComboboxPositioner.d.ts +14 -2
  93. package/combobox/positioner/ComboboxPositioner.js +8 -5
  94. package/combobox/positioner/ComboboxPositionerDataAttributes.js +2 -2
  95. package/combobox/root/AriaCombobox.d.ts +52 -46
  96. package/combobox/root/AriaCombobox.js +58 -68
  97. package/combobox/root/ComboboxRoot.d.ts +21 -16
  98. package/combobox/root/ComboboxRoot.js +3 -1
  99. package/combobox/root/ComboboxRootContext.d.ts +1 -0
  100. package/combobox/root/ComboboxRootContext.js +1 -0
  101. package/combobox/root/utils/useFilter.d.ts +2 -2
  102. package/combobox/root/utils/useFilteredItems.d.ts +4 -0
  103. package/combobox/root/utils/useFilteredItems.js +14 -0
  104. package/combobox/row/ComboboxRow.d.ts +1 -1
  105. package/combobox/row/ComboboxRowContext.js +1 -0
  106. package/combobox/status/ComboboxStatus.d.ts +1 -1
  107. package/combobox/store.d.ts +18 -12
  108. package/combobox/store.js +5 -3
  109. package/combobox/trigger/ComboboxTrigger.d.ts +4 -4
  110. package/combobox/trigger/ComboboxTrigger.js +8 -6
  111. package/combobox/utils/ComboboxInternalDismissButton.d.ts +5 -0
  112. package/combobox/utils/ComboboxInternalDismissButton.js +44 -0
  113. package/composite/item/CompositeItem.d.ts +9 -7
  114. package/composite/list/CompositeList.d.ts +5 -3
  115. package/composite/list/CompositeListContext.d.ts +1 -1
  116. package/composite/list/useCompositeListItem.d.ts +5 -5
  117. package/composite/root/CompositeRoot.d.ts +22 -20
  118. package/composite/root/useCompositeRoot.d.ts +12 -12
  119. package/context-menu/index.d.ts +1 -0
  120. package/context-menu/index.parts.d.ts +1 -0
  121. package/context-menu/index.parts.js +7 -0
  122. package/context-menu/root/ContextMenuRoot.d.ts +1 -1
  123. package/context-menu/root/ContextMenuRootContext.js +1 -0
  124. package/context-menu/trigger/ContextMenuTrigger.d.ts +3 -3
  125. package/context-menu/trigger/ContextMenuTrigger.js +13 -3
  126. package/csp-provider/CSPContext.d.ts +2 -2
  127. package/csp-provider/CSPProvider.d.ts +2 -2
  128. package/dialog/backdrop/DialogBackdrop.d.ts +5 -2
  129. package/dialog/backdrop/DialogBackdrop.js +2 -2
  130. package/dialog/close/DialogClose.d.ts +1 -1
  131. package/dialog/close/DialogClose.js +2 -2
  132. package/dialog/description/DialogDescription.d.ts +1 -1
  133. package/dialog/popup/DialogPopup.d.ts +6 -3
  134. package/dialog/popup/DialogPopup.js +2 -2
  135. package/dialog/portal/DialogPortal.d.ts +5 -6
  136. package/dialog/portal/DialogPortalContext.js +1 -0
  137. package/dialog/root/DialogRoot.d.ts +15 -10
  138. package/dialog/root/DialogRoot.js +17 -4
  139. package/dialog/root/useDialogRoot.d.ts +5 -9
  140. package/dialog/root/useDialogRoot.js +6 -5
  141. package/dialog/store/DialogStore.d.ts +258 -17
  142. package/dialog/store/DialogStore.js +3 -0
  143. package/dialog/title/DialogTitle.d.ts +1 -1
  144. package/dialog/trigger/DialogTrigger.d.ts +4 -4
  145. package/dialog/trigger/DialogTrigger.js +3 -3
  146. package/dialog/viewport/DialogViewport.d.ts +3 -0
  147. package/dialog/viewport/DialogViewport.js +5 -2
  148. package/direction-provider/DirectionProvider.d.ts +3 -1
  149. package/drawer/backdrop/DrawerBackdrop.d.ts +31 -0
  150. package/drawer/backdrop/DrawerBackdrop.js +63 -0
  151. package/drawer/backdrop/DrawerBackdropCssVars.d.ts +7 -0
  152. package/drawer/backdrop/DrawerBackdropCssVars.js +14 -0
  153. package/drawer/backdrop/DrawerBackdropDataAttributes.d.ts +18 -0
  154. package/drawer/backdrop/DrawerBackdropDataAttributes.js +26 -0
  155. package/drawer/close/DrawerClose.d.ts +23 -0
  156. package/drawer/close/DrawerClose.js +15 -0
  157. package/drawer/content/DrawerContent.d.ts +15 -0
  158. package/drawer/content/DrawerContent.js +33 -0
  159. package/drawer/content/DrawerContentDataAttributes.d.ts +1 -0
  160. package/drawer/content/DrawerContentDataAttributes.js +7 -0
  161. package/drawer/description/DrawerDescription.d.ts +18 -0
  162. package/drawer/description/DrawerDescription.js +15 -0
  163. package/drawer/indent/DrawerIndent.d.ts +21 -0
  164. package/drawer/indent/DrawerIndent.js +88 -0
  165. package/drawer/indent-background/DrawerIndentBackground.d.ts +20 -0
  166. package/drawer/indent-background/DrawerIndentBackground.js +49 -0
  167. package/drawer/index.d.ts +15 -0
  168. package/drawer/index.js +9 -0
  169. package/drawer/index.parts.d.ts +15 -0
  170. package/drawer/index.parts.js +116 -0
  171. package/drawer/popup/DrawerPopup.d.ts +72 -0
  172. package/drawer/popup/DrawerPopup.js +348 -0
  173. package/drawer/popup/DrawerPopupCssVars.d.ts +37 -0
  174. package/drawer/popup/DrawerPopupCssVars.js +44 -0
  175. package/drawer/popup/DrawerPopupDataAttributes.d.ts +43 -0
  176. package/drawer/popup/DrawerPopupDataAttributes.js +51 -0
  177. package/drawer/portal/DrawerPortal.d.ts +29 -0
  178. package/drawer/portal/DrawerPortal.js +16 -0
  179. package/drawer/provider/DrawerProvider.d.ts +16 -0
  180. package/drawer/provider/DrawerProvider.js +100 -0
  181. package/drawer/provider/DrawerProviderContext.d.ts +19 -0
  182. package/drawer/provider/DrawerProviderContext.js +21 -0
  183. package/drawer/root/DrawerRoot.d.ts +126 -0
  184. package/drawer/root/DrawerRoot.js +239 -0
  185. package/drawer/root/DrawerRootContext.d.ts +89 -0
  186. package/drawer/root/DrawerRootContext.js +21 -0
  187. package/drawer/root/useDrawerSnapPoints.d.ts +15 -0
  188. package/drawer/root/useDrawerSnapPoints.js +155 -0
  189. package/drawer/swipe-area/DrawerSwipeArea.d.ts +45 -0
  190. package/drawer/swipe-area/DrawerSwipeArea.js +387 -0
  191. package/drawer/swipe-area/DrawerSwipeAreaDataAttributes.d.ts +23 -0
  192. package/drawer/swipe-area/DrawerSwipeAreaDataAttributes.js +31 -0
  193. package/drawer/title/DrawerTitle.d.ts +18 -0
  194. package/drawer/title/DrawerTitle.js +15 -0
  195. package/drawer/trigger/DrawerTrigger.d.ts +43 -0
  196. package/drawer/trigger/DrawerTrigger.js +15 -0
  197. package/drawer/viewport/DrawerViewport.d.ts +33 -0
  198. package/drawer/viewport/DrawerViewport.js +995 -0
  199. package/drawer/viewport/DrawerViewportContext.d.ts +11 -0
  200. package/drawer/viewport/DrawerViewportContext.js +21 -0
  201. package/drawer/viewport/DrawerViewportDataAttributes.d.ts +22 -0
  202. package/drawer/viewport/DrawerViewportDataAttributes.js +30 -0
  203. package/esm/accordion/header/AccordionHeader.d.ts +4 -2
  204. package/esm/accordion/item/AccordionItem.d.ts +11 -5
  205. package/esm/accordion/item/AccordionItemContext.d.ts +3 -3
  206. package/esm/accordion/item/stateAttributesMapping.d.ts +2 -2
  207. package/esm/accordion/panel/AccordionPanel.d.ts +6 -3
  208. package/esm/accordion/root/AccordionRoot.d.ts +25 -16
  209. package/esm/accordion/root/AccordionRootContext.d.ts +7 -7
  210. package/esm/accordion/trigger/AccordionTrigger.d.ts +4 -2
  211. package/esm/accordion/trigger/AccordionTrigger.js +3 -1
  212. package/esm/alert-dialog/root/AlertDialogRoot.d.ts +5 -3
  213. package/esm/alert-dialog/root/AlertDialogRoot.js +6 -4
  214. package/esm/autocomplete/index.d.ts +1 -0
  215. package/esm/autocomplete/index.parts.d.ts +3 -1
  216. package/esm/autocomplete/index.parts.js +3 -1
  217. package/esm/autocomplete/root/AutocompleteRoot.d.ts +21 -16
  218. package/esm/autocomplete/root/AutocompleteRoot.js +8 -7
  219. package/esm/avatar/fallback/AvatarFallback.d.ts +5 -3
  220. package/esm/avatar/fallback/AvatarFallback.js +2 -2
  221. package/esm/avatar/image/AvatarImage.d.ts +11 -3
  222. package/esm/avatar/image/AvatarImage.js +33 -6
  223. package/esm/avatar/image/AvatarImageDataAttributes.d.ts +10 -0
  224. package/esm/avatar/image/AvatarImageDataAttributes.js +12 -0
  225. package/esm/avatar/image/useImageLoadingStatus.d.ts +2 -2
  226. package/esm/avatar/root/AvatarRoot.d.ts +4 -1
  227. package/esm/avatar/root/AvatarRoot.js +2 -2
  228. package/esm/button/Button.d.ts +1 -1
  229. package/esm/button/Button.js +2 -2
  230. package/esm/checkbox/indicator/CheckboxIndicator.d.ts +7 -4
  231. package/esm/checkbox/indicator/CheckboxIndicator.js +4 -4
  232. package/esm/checkbox/root/CheckboxRoot.d.ts +16 -16
  233. package/esm/checkbox/root/CheckboxRoot.js +35 -9
  234. package/esm/checkbox/root/CheckboxRootContext.d.ts +4 -4
  235. package/esm/checkbox/utils/useStateAttributesMapping.d.ts +2 -2
  236. package/esm/checkbox-group/CheckboxGroup.d.ts +8 -8
  237. package/esm/checkbox-group/CheckboxGroup.js +2 -2
  238. package/esm/checkbox-group/CheckboxGroupContext.d.ts +2 -2
  239. package/esm/checkbox-group/useCheckboxGroupParent.d.ts +5 -8
  240. package/esm/collapsible/panel/CollapsiblePanel.d.ts +8 -5
  241. package/esm/collapsible/panel/useCollapsiblePanel.d.ts +2 -5
  242. package/esm/collapsible/root/CollapsibleRoot.d.ts +7 -7
  243. package/esm/collapsible/root/CollapsibleRootContext.d.ts +4 -4
  244. package/esm/collapsible/root/stateAttributesMapping.d.ts +2 -2
  245. package/esm/collapsible/root/useCollapsibleRoot.d.ts +4 -7
  246. package/esm/collapsible/trigger/CollapsibleTrigger.d.ts +4 -2
  247. package/esm/combobox/arrow/ComboboxArrow.d.ts +10 -1
  248. package/esm/combobox/arrow/ComboboxArrow.js +2 -2
  249. package/esm/combobox/arrow/ComboboxArrowDataAttributes.js +2 -2
  250. package/esm/combobox/backdrop/ComboboxBackdrop.d.ts +4 -1
  251. package/esm/combobox/backdrop/ComboboxBackdrop.js +2 -2
  252. package/esm/combobox/chip/ComboboxChip.d.ts +1 -1
  253. package/esm/combobox/chip/ComboboxChip.js +6 -3
  254. package/esm/combobox/chip/ComboboxChipContext.js +2 -0
  255. package/esm/combobox/chip-remove/ComboboxChipRemove.d.ts +1 -1
  256. package/esm/combobox/chip-remove/ComboboxChipRemove.js +28 -33
  257. package/esm/combobox/chips/ComboboxChips.d.ts +1 -1
  258. package/esm/combobox/chips/ComboboxChipsContext.js +2 -0
  259. package/esm/combobox/clear/ComboboxClear.d.ts +6 -3
  260. package/esm/combobox/clear/ComboboxClear.js +2 -3
  261. package/esm/combobox/collection/ComboboxCollection.d.ts +2 -0
  262. package/esm/combobox/empty/ComboboxEmpty.d.ts +1 -1
  263. package/esm/combobox/group/ComboboxGroup.d.ts +2 -2
  264. package/esm/combobox/group/ComboboxGroupContext.d.ts +1 -1
  265. package/esm/combobox/group/ComboboxGroupContext.js +2 -0
  266. package/esm/combobox/group-label/ComboboxGroupLabel.d.ts +1 -1
  267. package/esm/combobox/icon/ComboboxIcon.d.ts +2 -2
  268. package/esm/combobox/index.d.ts +2 -0
  269. package/esm/combobox/index.parts.d.ts +4 -1
  270. package/esm/combobox/index.parts.js +4 -1
  271. package/esm/combobox/input/ComboboxInput.d.ts +4 -4
  272. package/esm/combobox/input/ComboboxInput.js +60 -13
  273. package/esm/combobox/input-group/ComboboxInputGroup.d.ts +40 -0
  274. package/esm/combobox/input-group/ComboboxInputGroup.js +63 -0
  275. package/esm/combobox/input-group/ComboboxInputGroupDataAttributes.d.ts +55 -0
  276. package/esm/combobox/input-group/ComboboxInputGroupDataAttributes.js +56 -0
  277. package/esm/combobox/item/ComboboxItem.d.ts +4 -4
  278. package/esm/combobox/item/ComboboxItem.js +17 -16
  279. package/esm/combobox/item/ComboboxItemContext.js +2 -0
  280. package/esm/combobox/item-indicator/ComboboxItemIndicator.d.ts +8 -2
  281. package/esm/combobox/item-indicator/ComboboxItemIndicator.js +2 -2
  282. package/esm/combobox/item-indicator/ComboboxItemIndicatorDataAttributes.d.ts +10 -0
  283. package/esm/combobox/item-indicator/ComboboxItemIndicatorDataAttributes.js +12 -0
  284. package/esm/combobox/label/ComboboxLabel.d.ts +16 -0
  285. package/esm/combobox/label/ComboboxLabel.js +63 -0
  286. package/esm/combobox/list/ComboboxList.d.ts +1 -1
  287. package/esm/combobox/list/ComboboxList.js +2 -2
  288. package/esm/combobox/popup/ComboboxPopup.d.ts +21 -3
  289. package/esm/combobox/popup/ComboboxPopup.js +12 -5
  290. package/esm/combobox/popup/ComboboxPopupDataAttributes.js +2 -2
  291. package/esm/combobox/portal/ComboboxPortal.d.ts +4 -5
  292. package/esm/combobox/portal/ComboboxPortalContext.js +2 -0
  293. package/esm/combobox/positioner/ComboboxPositioner.d.ts +14 -2
  294. package/esm/combobox/positioner/ComboboxPositioner.js +8 -5
  295. package/esm/combobox/positioner/ComboboxPositionerDataAttributes.js +2 -2
  296. package/esm/combobox/root/AriaCombobox.d.ts +52 -46
  297. package/esm/combobox/root/AriaCombobox.js +59 -69
  298. package/esm/combobox/root/ComboboxRoot.d.ts +21 -16
  299. package/esm/combobox/root/ComboboxRoot.js +3 -1
  300. package/esm/combobox/root/ComboboxRootContext.d.ts +1 -0
  301. package/esm/combobox/root/ComboboxRootContext.js +2 -0
  302. package/esm/combobox/root/utils/useFilter.d.ts +2 -2
  303. package/esm/combobox/root/utils/useFilteredItems.d.ts +4 -0
  304. package/esm/combobox/root/utils/useFilteredItems.js +9 -0
  305. package/esm/combobox/row/ComboboxRow.d.ts +1 -1
  306. package/esm/combobox/row/ComboboxRowContext.js +2 -0
  307. package/esm/combobox/status/ComboboxStatus.d.ts +1 -1
  308. package/esm/combobox/store.d.ts +18 -12
  309. package/esm/combobox/store.js +5 -3
  310. package/esm/combobox/trigger/ComboboxTrigger.d.ts +4 -4
  311. package/esm/combobox/trigger/ComboboxTrigger.js +8 -6
  312. package/esm/combobox/utils/ComboboxInternalDismissButton.d.ts +5 -0
  313. package/esm/combobox/utils/ComboboxInternalDismissButton.js +38 -0
  314. package/esm/composite/item/CompositeItem.d.ts +9 -7
  315. package/esm/composite/list/CompositeList.d.ts +5 -3
  316. package/esm/composite/list/CompositeListContext.d.ts +1 -1
  317. package/esm/composite/list/useCompositeListItem.d.ts +5 -5
  318. package/esm/composite/root/CompositeRoot.d.ts +22 -20
  319. package/esm/composite/root/useCompositeRoot.d.ts +12 -12
  320. package/esm/context-menu/index.d.ts +1 -0
  321. package/esm/context-menu/index.parts.d.ts +1 -0
  322. package/esm/context-menu/index.parts.js +1 -0
  323. package/esm/context-menu/root/ContextMenuRoot.d.ts +1 -1
  324. package/esm/context-menu/root/ContextMenuRootContext.js +2 -0
  325. package/esm/context-menu/trigger/ContextMenuTrigger.d.ts +3 -3
  326. package/esm/context-menu/trigger/ContextMenuTrigger.js +13 -3
  327. package/esm/csp-provider/CSPContext.d.ts +2 -2
  328. package/esm/csp-provider/CSPProvider.d.ts +2 -2
  329. package/esm/dialog/backdrop/DialogBackdrop.d.ts +5 -2
  330. package/esm/dialog/backdrop/DialogBackdrop.js +2 -2
  331. package/esm/dialog/close/DialogClose.d.ts +1 -1
  332. package/esm/dialog/close/DialogClose.js +2 -2
  333. package/esm/dialog/description/DialogDescription.d.ts +1 -1
  334. package/esm/dialog/popup/DialogPopup.d.ts +6 -3
  335. package/esm/dialog/popup/DialogPopup.js +2 -2
  336. package/esm/dialog/portal/DialogPortal.d.ts +5 -6
  337. package/esm/dialog/portal/DialogPortalContext.js +2 -0
  338. package/esm/dialog/root/DialogRoot.d.ts +15 -10
  339. package/esm/dialog/root/DialogRoot.js +17 -4
  340. package/esm/dialog/root/useDialogRoot.d.ts +5 -9
  341. package/esm/dialog/root/useDialogRoot.js +6 -5
  342. package/esm/dialog/store/DialogStore.d.ts +258 -17
  343. package/esm/dialog/store/DialogStore.js +3 -0
  344. package/esm/dialog/title/DialogTitle.d.ts +1 -1
  345. package/esm/dialog/trigger/DialogTrigger.d.ts +4 -4
  346. package/esm/dialog/trigger/DialogTrigger.js +2 -2
  347. package/esm/dialog/viewport/DialogViewport.d.ts +3 -0
  348. package/esm/dialog/viewport/DialogViewport.js +5 -2
  349. package/esm/direction-provider/DirectionProvider.d.ts +3 -1
  350. package/esm/drawer/backdrop/DrawerBackdrop.d.ts +31 -0
  351. package/esm/drawer/backdrop/DrawerBackdrop.js +57 -0
  352. package/esm/drawer/backdrop/DrawerBackdropCssVars.d.ts +7 -0
  353. package/esm/drawer/backdrop/DrawerBackdropCssVars.js +8 -0
  354. package/esm/drawer/backdrop/DrawerBackdropDataAttributes.d.ts +18 -0
  355. package/esm/drawer/backdrop/DrawerBackdropDataAttributes.js +20 -0
  356. package/esm/drawer/close/DrawerClose.d.ts +23 -0
  357. package/esm/drawer/close/DrawerClose.js +10 -0
  358. package/esm/drawer/content/DrawerContent.d.ts +15 -0
  359. package/esm/drawer/content/DrawerContent.js +28 -0
  360. package/esm/drawer/content/DrawerContentDataAttributes.d.ts +1 -0
  361. package/esm/drawer/content/DrawerContentDataAttributes.js +1 -0
  362. package/esm/drawer/description/DrawerDescription.d.ts +18 -0
  363. package/esm/drawer/description/DrawerDescription.js +10 -0
  364. package/esm/drawer/indent/DrawerIndent.d.ts +21 -0
  365. package/esm/drawer/indent/DrawerIndent.js +82 -0
  366. package/esm/drawer/indent-background/DrawerIndentBackground.d.ts +20 -0
  367. package/esm/drawer/indent-background/DrawerIndentBackground.js +43 -0
  368. package/esm/drawer/index.d.ts +15 -0
  369. package/esm/drawer/index.js +1 -0
  370. package/esm/drawer/index.parts.d.ts +15 -0
  371. package/esm/drawer/index.parts.js +15 -0
  372. package/esm/drawer/popup/DrawerPopup.d.ts +72 -0
  373. package/esm/drawer/popup/DrawerPopup.js +342 -0
  374. package/esm/drawer/popup/DrawerPopupCssVars.d.ts +37 -0
  375. package/esm/drawer/popup/DrawerPopupCssVars.js +38 -0
  376. package/esm/drawer/popup/DrawerPopupDataAttributes.d.ts +43 -0
  377. package/esm/drawer/popup/DrawerPopupDataAttributes.js +45 -0
  378. package/esm/drawer/portal/DrawerPortal.d.ts +29 -0
  379. package/esm/drawer/portal/DrawerPortal.js +11 -0
  380. package/esm/drawer/provider/DrawerProvider.d.ts +16 -0
  381. package/esm/drawer/provider/DrawerProvider.js +95 -0
  382. package/esm/drawer/provider/DrawerProviderContext.d.ts +19 -0
  383. package/esm/drawer/provider/DrawerProviderContext.js +13 -0
  384. package/esm/drawer/root/DrawerRoot.d.ts +126 -0
  385. package/esm/drawer/root/DrawerRoot.js +233 -0
  386. package/esm/drawer/root/DrawerRootContext.d.ts +89 -0
  387. package/esm/drawer/root/DrawerRootContext.js +13 -0
  388. package/esm/drawer/root/useDrawerSnapPoints.d.ts +15 -0
  389. package/esm/drawer/root/useDrawerSnapPoints.js +149 -0
  390. package/esm/drawer/swipe-area/DrawerSwipeArea.d.ts +45 -0
  391. package/esm/drawer/swipe-area/DrawerSwipeArea.js +381 -0
  392. package/esm/drawer/swipe-area/DrawerSwipeAreaDataAttributes.d.ts +23 -0
  393. package/esm/drawer/swipe-area/DrawerSwipeAreaDataAttributes.js +25 -0
  394. package/esm/drawer/title/DrawerTitle.d.ts +18 -0
  395. package/esm/drawer/title/DrawerTitle.js +10 -0
  396. package/esm/drawer/trigger/DrawerTrigger.d.ts +43 -0
  397. package/esm/drawer/trigger/DrawerTrigger.js +10 -0
  398. package/esm/drawer/viewport/DrawerViewport.d.ts +33 -0
  399. package/esm/drawer/viewport/DrawerViewport.js +989 -0
  400. package/esm/drawer/viewport/DrawerViewportContext.d.ts +11 -0
  401. package/esm/drawer/viewport/DrawerViewportContext.js +13 -0
  402. package/esm/drawer/viewport/DrawerViewportDataAttributes.d.ts +22 -0
  403. package/esm/drawer/viewport/DrawerViewportDataAttributes.js +24 -0
  404. package/esm/field/control/FieldControl.d.ts +6 -6
  405. package/esm/field/control/FieldControl.js +22 -20
  406. package/esm/field/description/FieldDescription.d.ts +3 -3
  407. package/esm/field/error/FieldError.d.ts +10 -4
  408. package/esm/field/error/FieldError.js +50 -7
  409. package/esm/field/error/FieldErrorDataAttributes.d.ts +8 -0
  410. package/esm/field/error/FieldErrorDataAttributes.js +10 -1
  411. package/esm/field/item/FieldItem.d.ts +5 -4
  412. package/esm/field/item/FieldItem.js +2 -2
  413. package/esm/field/item/FieldItemContext.js +2 -0
  414. package/esm/field/label/FieldLabel.d.ts +4 -4
  415. package/esm/field/label/FieldLabel.js +13 -53
  416. package/esm/field/root/FieldRoot.d.ts +28 -11
  417. package/esm/field/root/FieldRoot.js +2 -1
  418. package/esm/field/root/FieldRootContext.d.ts +3 -3
  419. package/esm/field/root/FieldRootContext.js +6 -13
  420. package/esm/field/root/useFieldValidation.js +5 -4
  421. package/esm/field/useField.d.ts +1 -1
  422. package/esm/field/useField.js +2 -0
  423. package/esm/field/utils/constants.d.ts +3 -0
  424. package/esm/field/utils/constants.js +11 -0
  425. package/esm/field/validity/FieldValidity.d.ts +9 -1
  426. package/esm/field/validity/FieldValidity.js +11 -4
  427. package/esm/fieldset/legend/FieldsetLegend.d.ts +1 -1
  428. package/esm/fieldset/legend/FieldsetLegend.js +2 -2
  429. package/esm/fieldset/root/FieldsetRoot.d.ts +2 -2
  430. package/esm/fieldset/root/FieldsetRoot.js +3 -3
  431. package/esm/floating-ui-react/components/FloatingDelayGroup.d.ts +2 -7
  432. package/esm/floating-ui-react/components/FloatingDelayGroup.js +3 -10
  433. package/esm/floating-ui-react/components/FloatingFocusManager.d.ts +17 -22
  434. package/esm/floating-ui-react/components/FloatingFocusManager.js +88 -97
  435. package/esm/floating-ui-react/components/FloatingPortal.d.ts +12 -11
  436. package/esm/floating-ui-react/components/FloatingPortal.js +1 -3
  437. package/esm/floating-ui-react/components/FloatingTree.d.ts +1 -1
  438. package/esm/floating-ui-react/hooks/useClick.d.ts +12 -6
  439. package/esm/floating-ui-react/hooks/useClick.js +6 -5
  440. package/esm/floating-ui-react/hooks/useClientPoint.d.ts +2 -12
  441. package/esm/floating-ui-react/hooks/useClientPoint.js +5 -16
  442. package/esm/floating-ui-react/hooks/useDismiss.d.ts +14 -18
  443. package/esm/floating-ui-react/hooks/useDismiss.js +325 -263
  444. package/esm/floating-ui-react/hooks/useFloating.js +2 -0
  445. package/esm/floating-ui-react/hooks/useFloatingRootContext.d.ts +4 -10
  446. package/esm/floating-ui-react/hooks/useFloatingRootContext.js +5 -3
  447. package/esm/floating-ui-react/hooks/useFocus.d.ts +2 -8
  448. package/esm/floating-ui-react/hooks/useFocus.js +11 -12
  449. package/esm/floating-ui-react/hooks/useHover.d.ts +7 -38
  450. package/esm/floating-ui-react/hooks/useHover.js +21 -63
  451. package/esm/floating-ui-react/hooks/useHoverFloatingInteraction.d.ts +3 -9
  452. package/esm/floating-ui-react/hooks/useHoverFloatingInteraction.js +70 -91
  453. package/esm/floating-ui-react/hooks/useHoverInteractionSharedState.d.ts +27 -15
  454. package/esm/floating-ui-react/hooks/useHoverInteractionSharedState.js +65 -32
  455. package/esm/floating-ui-react/hooks/useHoverReferenceInteraction.d.ts +14 -5
  456. package/esm/floating-ui-react/hooks/useHoverReferenceInteraction.js +96 -121
  457. package/esm/floating-ui-react/hooks/useHoverShared.d.ts +28 -0
  458. package/esm/floating-ui-react/hooks/useHoverShared.js +26 -0
  459. package/esm/floating-ui-react/hooks/useInteractions.d.ts +2 -2
  460. package/esm/floating-ui-react/hooks/useListNavigation.d.ts +19 -35
  461. package/esm/floating-ui-react/hooks/useListNavigation.js +20 -15
  462. package/esm/floating-ui-react/hooks/useRole.d.ts +1 -7
  463. package/esm/floating-ui-react/hooks/useRole.js +2 -3
  464. package/esm/floating-ui-react/hooks/useSyncedFloatingRootContext.d.ts +2 -2
  465. package/esm/floating-ui-react/hooks/useSyncedFloatingRootContext.js +2 -0
  466. package/esm/floating-ui-react/hooks/useTypeahead.d.ts +12 -16
  467. package/esm/floating-ui-react/hooks/useTypeahead.js +74 -26
  468. package/esm/floating-ui-react/middleware/arrow.d.ts +1 -1
  469. package/esm/floating-ui-react/safePolygon.d.ts +2 -6
  470. package/esm/floating-ui-react/safePolygon.js +149 -119
  471. package/esm/floating-ui-react/types.d.ts +16 -15
  472. package/esm/floating-ui-react/utils/composite.d.ts +6 -5
  473. package/esm/floating-ui-react/utils/composite.js +129 -131
  474. package/esm/floating-ui-react/utils/element.d.ts +2 -1
  475. package/esm/floating-ui-react/utils/element.js +16 -4
  476. package/esm/floating-ui-react/utils/enqueueFocus.d.ts +3 -3
  477. package/esm/floating-ui-react/utils/event.js +2 -4
  478. package/esm/floating-ui-react/utils/markOthers.d.ts +7 -1
  479. package/esm/floating-ui-react/utils/markOthers.js +121 -83
  480. package/esm/floating-ui-react/utils/tabbable.js +6 -5
  481. package/esm/form/Form.d.ts +6 -6
  482. package/esm/global.d.ts +1 -1
  483. package/esm/index.d.ts +1 -0
  484. package/esm/index.js +2 -1
  485. package/esm/input/Input.d.ts +13 -6
  486. package/esm/labelable-provider/LabelableContext.d.ts +1 -1
  487. package/esm/labelable-provider/LabelableContext.js +1 -1
  488. package/esm/labelable-provider/LabelableProvider.d.ts +4 -1
  489. package/esm/labelable-provider/LabelableProvider.js +35 -4
  490. package/esm/labelable-provider/useAriaLabelledBy.d.ts +9 -0
  491. package/esm/labelable-provider/useAriaLabelledBy.js +56 -0
  492. package/esm/labelable-provider/useLabel.d.ts +25 -0
  493. package/esm/labelable-provider/useLabel.js +74 -0
  494. package/esm/labelable-provider/useLabelableId.d.ts +5 -7
  495. package/esm/labelable-provider/useLabelableId.js +38 -12
  496. package/esm/menu/arrow/MenuArrow.d.ts +10 -1
  497. package/esm/menu/arrow/MenuArrow.js +2 -2
  498. package/esm/menu/arrow/MenuArrowDataAttributes.js +2 -2
  499. package/esm/menu/backdrop/MenuBackdrop.d.ts +4 -1
  500. package/esm/menu/backdrop/MenuBackdrop.js +2 -2
  501. package/esm/menu/checkbox-item/MenuCheckboxItem.d.ts +11 -11
  502. package/esm/menu/checkbox-item/MenuCheckboxItemContext.js +2 -0
  503. package/esm/menu/checkbox-item-indicator/MenuCheckboxItemIndicator.d.ts +9 -3
  504. package/esm/menu/checkbox-item-indicator/MenuCheckboxItemIndicator.js +3 -3
  505. package/esm/menu/group/MenuGroup.d.ts +1 -1
  506. package/esm/menu/group/MenuGroupContext.js +2 -0
  507. package/esm/menu/group-label/MenuGroupLabel.d.ts +1 -1
  508. package/esm/menu/index.d.ts +4 -2
  509. package/esm/menu/index.parts.d.ts +2 -0
  510. package/esm/menu/index.parts.js +2 -0
  511. package/esm/menu/item/MenuItem.d.ts +6 -6
  512. package/esm/menu/item/MenuItem.js +2 -2
  513. package/esm/menu/item/useMenuItem.d.ts +8 -7
  514. package/esm/menu/item/useMenuItem.js +16 -54
  515. package/esm/menu/item/useMenuItemCommonProps.d.ts +46 -0
  516. package/esm/menu/item/useMenuItemCommonProps.js +80 -0
  517. package/esm/menu/link-item/MenuLinkItem.d.ts +34 -0
  518. package/esm/menu/link-item/MenuLinkItem.js +69 -0
  519. package/esm/menu/link-item/MenuLinkItemDataAttributes.d.ts +6 -0
  520. package/esm/menu/link-item/MenuLinkItemDataAttributes.js +7 -0
  521. package/esm/menu/popup/MenuPopup.d.ts +21 -5
  522. package/esm/menu/popup/MenuPopup.js +6 -3
  523. package/esm/menu/popup/MenuPopupDataAttributes.d.ts +1 -1
  524. package/esm/menu/popup/MenuPopupDataAttributes.js +3 -3
  525. package/esm/menu/portal/MenuPortal.d.ts +4 -5
  526. package/esm/menu/portal/MenuPortalContext.js +2 -0
  527. package/esm/menu/positioner/MenuPositioner.d.ts +18 -2
  528. package/esm/menu/positioner/MenuPositioner.js +64 -17
  529. package/esm/menu/positioner/MenuPositionerDataAttributes.js +2 -2
  530. package/esm/menu/radio-group/MenuRadioGroup.d.ts +8 -5
  531. package/esm/menu/radio-group/MenuRadioGroup.js +2 -2
  532. package/esm/menu/radio-group/MenuRadioGroupContext.js +2 -0
  533. package/esm/menu/radio-item/MenuRadioItem.d.ts +8 -8
  534. package/esm/menu/radio-item/MenuRadioItemContext.js +2 -0
  535. package/esm/menu/radio-item-indicator/MenuRadioItemIndicator.d.ts +9 -3
  536. package/esm/menu/radio-item-indicator/MenuRadioItemIndicator.js +3 -3
  537. package/esm/menu/root/MenuRoot.d.ts +17 -15
  538. package/esm/menu/root/MenuRoot.js +40 -39
  539. package/esm/menu/store/MenuStore.d.ts +259 -17
  540. package/esm/menu/store/MenuStore.js +17 -12
  541. package/esm/menu/submenu-root/MenuSubmenuRoot.d.ts +2 -2
  542. package/esm/menu/submenu-root/MenuSubmenuRootContext.js +2 -0
  543. package/esm/menu/submenu-trigger/MenuSubmenuTrigger.d.ts +22 -22
  544. package/esm/menu/submenu-trigger/MenuSubmenuTrigger.js +10 -7
  545. package/esm/menu/trigger/MenuTrigger.d.ts +13 -9
  546. package/esm/menu/trigger/MenuTrigger.js +4 -3
  547. package/esm/menu/viewport/MenuViewport.d.ts +30 -0
  548. package/esm/menu/viewport/MenuViewport.js +60 -0
  549. package/esm/menu/viewport/MenuViewportCssVars.d.ts +14 -0
  550. package/esm/menu/viewport/MenuViewportCssVars.js +15 -0
  551. package/esm/menu/viewport/MenuViewportDataAttributes.d.ts +26 -0
  552. package/esm/menu/viewport/MenuViewportDataAttributes.js +27 -0
  553. package/esm/menubar/Menubar.d.ts +5 -5
  554. package/esm/menubar/Menubar.js +3 -9
  555. package/esm/meter/indicator/MeterIndicator.d.ts +4 -2
  556. package/esm/meter/label/MeterLabel.d.ts +4 -2
  557. package/esm/meter/label/MeterLabel.js +4 -8
  558. package/esm/meter/root/MeterRoot.d.ts +7 -7
  559. package/esm/meter/root/MeterRoot.js +13 -12
  560. package/esm/meter/track/MeterTrack.d.ts +4 -2
  561. package/esm/meter/value/MeterValue.d.ts +5 -3
  562. package/esm/navigation-menu/arrow/NavigationMenuArrow.d.ts +10 -1
  563. package/esm/navigation-menu/arrow/NavigationMenuArrow.js +2 -2
  564. package/esm/navigation-menu/arrow/NavigationMenuArrowDataAttributes.js +2 -2
  565. package/esm/navigation-menu/backdrop/NavigationMenuBackdrop.d.ts +1 -1
  566. package/esm/navigation-menu/backdrop/NavigationMenuBackdrop.js +2 -2
  567. package/esm/navigation-menu/content/NavigationMenuContent.d.ts +8 -1
  568. package/esm/navigation-menu/content/NavigationMenuContent.js +37 -5
  569. package/esm/navigation-menu/icon/NavigationMenuIcon.d.ts +2 -2
  570. package/esm/navigation-menu/icon/NavigationMenuIcon.js +2 -2
  571. package/esm/navigation-menu/item/NavigationMenuItem.d.ts +2 -2
  572. package/esm/navigation-menu/item/NavigationMenuItemContext.js +2 -0
  573. package/esm/navigation-menu/link/NavigationMenuLink.d.ts +3 -3
  574. package/esm/navigation-menu/link/NavigationMenuLink.js +2 -2
  575. package/esm/navigation-menu/list/NavigationMenuDismissContext.js +2 -0
  576. package/esm/navigation-menu/list/NavigationMenuList.d.ts +2 -2
  577. package/esm/navigation-menu/list/NavigationMenuList.js +13 -4
  578. package/esm/navigation-menu/popup/NavigationMenuPopup.d.ts +14 -1
  579. package/esm/navigation-menu/popup/NavigationMenuPopup.js +2 -2
  580. package/esm/navigation-menu/popup/NavigationMenuPopupDataAttributes.js +2 -2
  581. package/esm/navigation-menu/portal/NavigationMenuPortal.d.ts +5 -6
  582. package/esm/navigation-menu/portal/NavigationMenuPortalContext.js +2 -0
  583. package/esm/navigation-menu/positioner/NavigationMenuPositioner.d.ts +11 -2
  584. package/esm/navigation-menu/positioner/NavigationMenuPositioner.js +2 -2
  585. package/esm/navigation-menu/positioner/NavigationPositionerDataAttributes.js +2 -2
  586. package/esm/navigation-menu/root/NavigationMenuRoot.d.ts +9 -9
  587. package/esm/navigation-menu/root/NavigationMenuRoot.js +29 -10
  588. package/esm/navigation-menu/root/NavigationMenuRootContext.js +2 -0
  589. package/esm/navigation-menu/trigger/NavigationMenuTrigger.d.ts +1 -1
  590. package/esm/navigation-menu/trigger/NavigationMenuTrigger.js +272 -44
  591. package/esm/navigation-menu/utils/isOutsideMenuEvent.d.ts +1 -1
  592. package/esm/navigation-menu/viewport/NavigationMenuViewport.d.ts +1 -1
  593. package/esm/navigation-menu/viewport/NavigationMenuViewport.js +2 -1
  594. package/esm/number-field/decrement/NumberFieldDecrement.d.ts +3 -3
  595. package/esm/number-field/group/NumberFieldGroup.d.ts +3 -3
  596. package/esm/number-field/increment/NumberFieldIncrement.d.ts +3 -3
  597. package/esm/number-field/input/NumberFieldInput.d.ts +3 -3
  598. package/esm/number-field/input/NumberFieldInput.js +3 -11
  599. package/esm/number-field/root/NumberFieldRoot.d.ts +29 -22
  600. package/esm/number-field/root/NumberFieldRoot.js +23 -8
  601. package/esm/number-field/root/NumberFieldRootContext.d.ts +4 -4
  602. package/esm/number-field/root/useNumberFieldButton.d.ts +5 -8
  603. package/esm/number-field/root/useNumberFieldButton.js +12 -7
  604. package/esm/number-field/scrub-area/NumberFieldScrubArea.d.ts +5 -5
  605. package/esm/number-field/scrub-area/NumberFieldScrubArea.js +16 -0
  606. package/esm/number-field/scrub-area/NumberFieldScrubAreaContext.js +2 -0
  607. package/esm/number-field/scrub-area-cursor/NumberFieldScrubAreaCursor.d.ts +3 -3
  608. package/esm/number-field/utils/stateAttributesMapping.d.ts +2 -2
  609. package/esm/number-field/utils/stateAttributesMapping.js +3 -1
  610. package/esm/number-field/utils/subscribeToVisualViewportResize.d.ts +1 -1
  611. package/esm/number-field/utils/types.d.ts +5 -5
  612. package/esm/number-field/utils/validate.d.ts +3 -1
  613. package/esm/number-field/utils/validate.js +3 -2
  614. package/esm/popover/arrow/PopoverArrow.d.ts +10 -1
  615. package/esm/popover/arrow/PopoverArrow.js +2 -2
  616. package/esm/popover/arrow/PopoverArrowDataAttributes.js +2 -2
  617. package/esm/popover/backdrop/PopoverBackdrop.d.ts +4 -1
  618. package/esm/popover/backdrop/PopoverBackdrop.js +2 -2
  619. package/esm/popover/close/PopoverClose.d.ts +1 -1
  620. package/esm/popover/close/PopoverClose.js +5 -3
  621. package/esm/popover/description/PopoverDescription.d.ts +1 -1
  622. package/esm/popover/popup/PopoverPopup.d.ts +16 -3
  623. package/esm/popover/popup/PopoverPopup.js +13 -4
  624. package/esm/popover/portal/PopoverPortal.d.ts +4 -5
  625. package/esm/popover/portal/PopoverPortal.js +1 -2
  626. package/esm/popover/portal/PopoverPortalContext.js +2 -0
  627. package/esm/popover/positioner/PopoverPositioner.d.ts +11 -2
  628. package/esm/popover/positioner/PopoverPositioner.js +3 -3
  629. package/esm/popover/positioner/PopoverPositionerDataAttributes.js +2 -2
  630. package/esm/popover/root/PopoverRoot.d.ts +16 -9
  631. package/esm/popover/root/PopoverRoot.js +19 -8
  632. package/esm/popover/store/PopoverStore.d.ts +255 -15
  633. package/esm/popover/title/PopoverTitle.d.ts +1 -1
  634. package/esm/popover/trigger/PopoverTrigger.d.ts +7 -7
  635. package/esm/popover/trigger/PopoverTrigger.js +2 -2
  636. package/esm/popover/viewport/PopoverViewport.d.ts +16 -4
  637. package/esm/popover/viewport/PopoverViewport.js +19 -196
  638. package/esm/popover/viewport/PopoverViewportDataAttributes.d.ts +5 -0
  639. package/esm/popover/viewport/PopoverViewportDataAttributes.js +5 -0
  640. package/esm/preview-card/arrow/PreviewCardArrow.d.ts +10 -1
  641. package/esm/preview-card/arrow/PreviewCardArrow.js +2 -2
  642. package/esm/preview-card/arrow/PreviewCardArrowDataAttributes.js +2 -2
  643. package/esm/preview-card/backdrop/PreviewCardBackdrop.d.ts +4 -1
  644. package/esm/preview-card/backdrop/PreviewCardBackdrop.js +2 -2
  645. package/esm/preview-card/popup/PreviewCardPopup.d.ts +13 -1
  646. package/esm/preview-card/popup/PreviewCardPopup.js +2 -2
  647. package/esm/preview-card/popup/PreviewCardPopupDataAttributes.js +2 -2
  648. package/esm/preview-card/portal/PreviewCardPortal.d.ts +4 -5
  649. package/esm/preview-card/portal/PreviewCardPortalContext.js +2 -0
  650. package/esm/preview-card/positioner/PreviewCardPositioner.d.ts +14 -2
  651. package/esm/preview-card/positioner/PreviewCardPositioner.js +9 -3
  652. package/esm/preview-card/positioner/PreviewCardPositionerContext.d.ts +1 -1
  653. package/esm/preview-card/positioner/PreviewCardPositionerDataAttributes.js +2 -2
  654. package/esm/preview-card/root/PreviewCardRoot.d.ts +9 -9
  655. package/esm/preview-card/root/PreviewCardRoot.js +39 -13
  656. package/esm/preview-card/store/PreviewCardStore.d.ts +255 -15
  657. package/esm/preview-card/trigger/PreviewCardTrigger.d.ts +5 -5
  658. package/esm/preview-card/trigger/PreviewCardTrigger.js +2 -2
  659. package/esm/preview-card/viewport/PreviewCardViewport.d.ts +16 -4
  660. package/esm/preview-card/viewport/PreviewCardViewport.js +14 -230
  661. package/esm/progress/indicator/ProgressIndicator.d.ts +4 -2
  662. package/esm/progress/label/ProgressLabel.d.ts +4 -2
  663. package/esm/progress/label/ProgressLabel.js +4 -8
  664. package/esm/progress/root/ProgressRoot.d.ts +10 -7
  665. package/esm/progress/root/ProgressRoot.js +13 -15
  666. package/esm/progress/root/ProgressRootContext.d.ts +2 -2
  667. package/esm/progress/root/stateAttributesMapping.d.ts +2 -2
  668. package/esm/progress/track/ProgressTrack.d.ts +4 -2
  669. package/esm/progress/value/ProgressValue.d.ts +5 -3
  670. package/esm/radio/indicator/RadioIndicator.d.ts +5 -2
  671. package/esm/radio/indicator/RadioIndicator.js +4 -4
  672. package/esm/radio/indicator/RadioIndicatorDataAttributes.d.ts +8 -0
  673. package/esm/radio/indicator/RadioIndicatorDataAttributes.js +10 -1
  674. package/esm/radio/root/RadioRoot.d.ts +39 -19
  675. package/esm/radio/root/RadioRoot.js +49 -12
  676. package/esm/radio-group/RadioGroup.d.ts +20 -14
  677. package/esm/radio-group/RadioGroup.js +69 -62
  678. package/esm/radio-group/RadioGroupContext.d.ts +9 -8
  679. package/esm/radio-group/RadioGroupContext.js +1 -13
  680. package/esm/scroll-area/content/ScrollAreaContent.d.ts +3 -3
  681. package/esm/scroll-area/corner/ScrollAreaCorner.d.ts +1 -1
  682. package/esm/scroll-area/root/ScrollAreaRoot.d.ts +27 -9
  683. package/esm/scroll-area/root/ScrollAreaRoot.js +9 -5
  684. package/esm/scroll-area/root/ScrollAreaRootContext.d.ts +4 -2
  685. package/esm/scroll-area/root/ScrollAreaRootContext.js +2 -0
  686. package/esm/scroll-area/root/ScrollAreaRootDataAttributes.d.ts +4 -0
  687. package/esm/scroll-area/root/ScrollAreaRootDataAttributes.js +4 -0
  688. package/esm/scroll-area/root/stateAttributes.d.ts +2 -2
  689. package/esm/scroll-area/scrollbar/ScrollAreaScrollbar.d.ts +14 -8
  690. package/esm/scroll-area/scrollbar/ScrollAreaScrollbar.js +6 -3
  691. package/esm/scroll-area/scrollbar/ScrollAreaScrollbarContext.js +2 -0
  692. package/esm/scroll-area/scrollbar/ScrollAreaScrollbarDataAttributes.d.ts +1 -1
  693. package/esm/scroll-area/scrollbar/ScrollAreaScrollbarDataAttributes.js +1 -1
  694. package/esm/scroll-area/thumb/ScrollAreaThumb.d.ts +5 -2
  695. package/esm/scroll-area/thumb/ScrollAreaThumb.js +5 -3
  696. package/esm/scroll-area/utils/scrollEdges.d.ts +2 -0
  697. package/esm/scroll-area/utils/scrollEdges.js +22 -0
  698. package/esm/scroll-area/viewport/ScrollAreaViewport.d.ts +3 -3
  699. package/esm/scroll-area/viewport/ScrollAreaViewport.js +64 -42
  700. package/esm/scroll-area/viewport/ScrollAreaViewportContext.js +2 -0
  701. package/esm/scroll-area/viewport/ScrollAreaViewportDataAttributes.d.ts +4 -0
  702. package/esm/scroll-area/viewport/ScrollAreaViewportDataAttributes.js +4 -0
  703. package/esm/select/arrow/SelectArrow.d.ts +10 -1
  704. package/esm/select/arrow/SelectArrow.js +2 -2
  705. package/esm/select/arrow/SelectArrowDataAttributes.js +2 -2
  706. package/esm/select/backdrop/SelectBackdrop.d.ts +7 -1
  707. package/esm/select/backdrop/SelectBackdrop.js +2 -2
  708. package/esm/select/group/SelectGroup.d.ts +1 -1
  709. package/esm/select/group/SelectGroupContext.js +2 -0
  710. package/esm/select/group-label/SelectGroupLabel.d.ts +1 -1
  711. package/esm/select/icon/SelectIcon.d.ts +1 -1
  712. package/esm/select/icon/SelectIcon.js +2 -2
  713. package/esm/select/index.d.ts +1 -0
  714. package/esm/select/index.parts.d.ts +1 -0
  715. package/esm/select/index.parts.js +1 -0
  716. package/esm/select/item/SelectItem.d.ts +3 -3
  717. package/esm/select/item/SelectItem.js +23 -17
  718. package/esm/select/item/SelectItemContext.js +2 -0
  719. package/esm/select/item-indicator/SelectItemIndicator.d.ts +11 -3
  720. package/esm/select/item-indicator/SelectItemIndicator.js +2 -2
  721. package/esm/select/item-indicator/SelectItemIndicatorDataAttributes.d.ts +10 -0
  722. package/esm/select/item-indicator/SelectItemIndicatorDataAttributes.js +12 -0
  723. package/esm/select/item-text/SelectItemText.d.ts +1 -1
  724. package/esm/select/label/SelectLabel.d.ts +16 -0
  725. package/esm/select/label/SelectLabel.js +49 -0
  726. package/esm/select/list/SelectList.d.ts +1 -1
  727. package/esm/select/popup/SelectPopup.d.ts +24 -1
  728. package/esm/select/popup/SelectPopup.js +87 -44
  729. package/esm/select/popup/SelectPopupDataAttributes.js +2 -2
  730. package/esm/select/portal/SelectPortal.d.ts +3 -4
  731. package/esm/select/portal/SelectPortalContext.js +2 -0
  732. package/esm/select/positioner/SelectPositioner.d.ts +15 -3
  733. package/esm/select/positioner/SelectPositioner.js +14 -11
  734. package/esm/select/positioner/SelectPositionerContext.d.ts +2 -2
  735. package/esm/select/positioner/SelectPositionerContext.js +2 -0
  736. package/esm/select/positioner/SelectPositionerDataAttributes.js +2 -2
  737. package/esm/select/root/SelectRoot.d.ts +27 -21
  738. package/esm/select/root/SelectRoot.js +7 -6
  739. package/esm/select/root/SelectRootContext.d.ts +14 -14
  740. package/esm/select/root/SelectRootContext.js +2 -0
  741. package/esm/select/scroll-arrow/SelectScrollArrow.d.ts +14 -2
  742. package/esm/select/scroll-arrow/SelectScrollArrow.js +2 -2
  743. package/esm/select/scroll-down-arrow/SelectScrollDownArrow.d.ts +2 -2
  744. package/esm/select/scroll-down-arrow/SelectScrollDownArrowDataAttributes.js +1 -1
  745. package/esm/select/scroll-up-arrow/SelectScrollUpArrow.d.ts +2 -2
  746. package/esm/select/scroll-up-arrow/SelectScrollUpArrowDataAttributes.js +1 -1
  747. package/esm/select/store.d.ts +8 -5
  748. package/esm/select/store.js +4 -3
  749. package/esm/select/trigger/SelectTrigger.d.ts +7 -5
  750. package/esm/select/trigger/SelectTrigger.js +7 -4
  751. package/esm/select/value/SelectValue.d.ts +5 -1
  752. package/esm/select/value/SelectValue.js +2 -2
  753. package/esm/separator/Separator.d.ts +2 -2
  754. package/esm/separator/Separator.js +2 -2
  755. package/esm/slider/control/SliderControl.d.ts +4 -3
  756. package/esm/slider/control/SliderControl.js +0 -2
  757. package/esm/slider/index.d.ts +1 -0
  758. package/esm/slider/index.parts.d.ts +1 -0
  759. package/esm/slider/index.parts.js +1 -0
  760. package/esm/slider/indicator/SliderIndicator.d.ts +4 -2
  761. package/esm/slider/label/SliderLabel.d.ts +16 -0
  762. package/esm/slider/label/SliderLabel.js +58 -0
  763. package/esm/slider/root/SliderRoot.d.ts +26 -20
  764. package/esm/slider/root/SliderRoot.js +11 -5
  765. package/esm/slider/root/SliderRootContext.d.ts +6 -4
  766. package/esm/slider/root/stateAttributesMapping.d.ts +2 -2
  767. package/esm/slider/root/stateAttributesMapping.js +3 -1
  768. package/esm/slider/thumb/SliderThumb.d.ts +10 -10
  769. package/esm/slider/thumb/SliderThumb.js +3 -2
  770. package/esm/slider/track/SliderTrack.d.ts +4 -2
  771. package/esm/slider/utils/getPushedThumbValues.d.ts +1 -1
  772. package/esm/slider/utils/resolveThumbCollision.d.ts +2 -2
  773. package/esm/slider/value/SliderValue.d.ts +5 -3
  774. package/esm/switch/root/SwitchRoot.d.ts +14 -14
  775. package/esm/switch/root/SwitchRoot.js +11 -2
  776. package/esm/switch/root/SwitchRootContext.d.ts +4 -4
  777. package/esm/switch/root/SwitchRootContext.js +2 -0
  778. package/esm/switch/stateAttributesMapping.d.ts +2 -2
  779. package/esm/switch/thumb/SwitchThumb.d.ts +3 -3
  780. package/esm/tabs/indicator/TabsIndicator.d.ts +13 -4
  781. package/esm/tabs/indicator/TabsIndicator.js +7 -16
  782. package/esm/tabs/indicator/TabsIndicatorCssVars.d.ts +1 -1
  783. package/esm/tabs/indicator/TabsIndicatorCssVars.js +1 -1
  784. package/esm/tabs/list/TabsList.d.ts +5 -5
  785. package/esm/tabs/list/TabsList.js +50 -5
  786. package/esm/tabs/list/TabsListContext.d.ts +2 -0
  787. package/esm/tabs/panel/TabsPanel.d.ts +13 -5
  788. package/esm/tabs/panel/TabsPanel.js +35 -9
  789. package/esm/tabs/panel/TabsPanelDataAttributes.d.ts +8 -0
  790. package/esm/tabs/panel/TabsPanelDataAttributes.js +10 -1
  791. package/esm/tabs/root/TabsRoot.d.ts +11 -5
  792. package/esm/tabs/root/TabsRootContext.d.ts +1 -1
  793. package/esm/tabs/root/stateAttributesMapping.d.ts +2 -2
  794. package/esm/tabs/tab/TabsTab.d.ts +8 -2
  795. package/esm/tabs/tab/TabsTab.js +12 -3
  796. package/esm/toast/action/ToastAction.d.ts +1 -1
  797. package/esm/toast/action/ToastAction.js +2 -2
  798. package/esm/toast/arrow/ToastArrow.d.ts +10 -1
  799. package/esm/toast/arrow/ToastArrow.js +2 -2
  800. package/esm/toast/arrow/ToastArrowDataAttributes.js +4 -3
  801. package/esm/toast/close/ToastClose.d.ts +1 -1
  802. package/esm/toast/close/ToastClose.js +6 -8
  803. package/esm/toast/content/ToastContent.d.ts +1 -1
  804. package/esm/toast/content/ToastContent.js +2 -2
  805. package/esm/toast/createToastManager.d.ts +6 -6
  806. package/esm/toast/createToastManager.js +3 -6
  807. package/esm/toast/description/ToastDescription.d.ts +1 -1
  808. package/esm/toast/description/ToastDescription.js +4 -6
  809. package/esm/toast/portal/ToastPortal.d.ts +3 -4
  810. package/esm/toast/positioner/ToastPositioner.d.ts +13 -4
  811. package/esm/toast/positioner/ToastPositioner.js +6 -7
  812. package/esm/toast/positioner/ToastPositionerDataAttributes.js +2 -2
  813. package/esm/toast/provider/ToastProvider.d.ts +5 -3
  814. package/esm/toast/provider/ToastProvider.js +27 -286
  815. package/esm/toast/provider/ToastProviderContext.d.ts +4 -25
  816. package/esm/toast/provider/ToastProviderContext.js +3 -1
  817. package/esm/toast/root/ToastRoot.d.ts +20 -7
  818. package/esm/toast/root/ToastRoot.js +22 -28
  819. package/esm/toast/root/ToastRootContext.js +2 -0
  820. package/esm/toast/store.d.ts +51 -0
  821. package/esm/toast/store.js +384 -0
  822. package/esm/toast/title/ToastTitle.d.ts +1 -1
  823. package/esm/toast/title/ToastTitle.js +4 -6
  824. package/esm/toast/useToastManager.d.ts +21 -22
  825. package/esm/toast/useToastManager.js +8 -14
  826. package/esm/toast/viewport/ToastViewport.d.ts +1 -1
  827. package/esm/toast/viewport/ToastViewport.js +66 -92
  828. package/esm/toggle/Toggle.d.ts +10 -8
  829. package/esm/toggle/Toggle.js +13 -3
  830. package/esm/toggle-group/ToggleGroup.d.ts +22 -10
  831. package/esm/toggle-group/ToggleGroup.js +8 -5
  832. package/esm/toggle-group/ToggleGroupContext.d.ts +10 -5
  833. package/esm/toolbar/button/ToolbarButton.d.ts +11 -5
  834. package/esm/toolbar/button/ToolbarButton.js +2 -2
  835. package/esm/toolbar/group/ToolbarGroup.d.ts +5 -3
  836. package/esm/toolbar/group/ToolbarGroup.js +2 -2
  837. package/esm/toolbar/group/ToolbarGroupContext.js +2 -0
  838. package/esm/toolbar/input/ToolbarInput.d.ts +12 -6
  839. package/esm/toolbar/input/ToolbarInput.js +2 -2
  840. package/esm/toolbar/link/ToolbarLink.d.ts +4 -1
  841. package/esm/toolbar/link/ToolbarLink.js +2 -2
  842. package/esm/toolbar/root/ToolbarRoot.d.ts +10 -4
  843. package/esm/toolbar/root/ToolbarRoot.js +2 -2
  844. package/esm/toolbar/separator/ToolbarSeparator.d.ts +4 -2
  845. package/esm/tooltip/arrow/TooltipArrow.d.ts +14 -1
  846. package/esm/tooltip/arrow/TooltipArrow.js +2 -2
  847. package/esm/tooltip/arrow/TooltipArrowDataAttributes.js +2 -2
  848. package/esm/tooltip/popup/TooltipPopup.d.ts +13 -1
  849. package/esm/tooltip/popup/TooltipPopup.js +2 -2
  850. package/esm/tooltip/popup/TooltipPopupDataAttributes.js +2 -2
  851. package/esm/tooltip/portal/TooltipPortal.d.ts +4 -5
  852. package/esm/tooltip/portal/TooltipPortalContext.js +2 -0
  853. package/esm/tooltip/positioner/TooltipPositioner.d.ts +12 -3
  854. package/esm/tooltip/positioner/TooltipPositionerContext.d.ts +1 -1
  855. package/esm/tooltip/positioner/TooltipPositionerDataAttributes.js +2 -2
  856. package/esm/tooltip/provider/TooltipProvider.d.ts +5 -3
  857. package/esm/tooltip/provider/TooltipProviderContext.js +2 -0
  858. package/esm/tooltip/root/TooltipRoot.d.ts +12 -12
  859. package/esm/tooltip/root/TooltipRoot.js +24 -12
  860. package/esm/tooltip/store/TooltipStore.d.ts +258 -16
  861. package/esm/tooltip/store/TooltipStore.js +2 -0
  862. package/esm/tooltip/trigger/TooltipTrigger.d.ts +17 -5
  863. package/esm/tooltip/trigger/TooltipTrigger.js +17 -6
  864. package/esm/tooltip/trigger/TooltipTriggerDataAttributes.d.ts +4 -0
  865. package/esm/tooltip/trigger/TooltipTriggerDataAttributes.js +4 -0
  866. package/esm/tooltip/viewport/TooltipViewport.d.ts +16 -4
  867. package/esm/tooltip/viewport/TooltipViewport.js +14 -195
  868. package/esm/types/index.d.ts +16 -1
  869. package/esm/unstable-use-media-query/index.d.ts +7 -5
  870. package/esm/use-button/useButton.d.ts +12 -9
  871. package/esm/use-button/useButton.js +56 -22
  872. package/esm/use-render/useRender.d.ts +14 -12
  873. package/esm/utils/FloatingPortalLite.d.ts +4 -2
  874. package/esm/utils/InternalBackdrop.d.ts +3 -1
  875. package/esm/utils/closePart.d.ts +16 -0
  876. package/esm/utils/closePart.js +40 -0
  877. package/esm/utils/constants.d.ts +4 -0
  878. package/esm/utils/constants.js +4 -0
  879. package/esm/utils/createBaseUIEventDetails.d.ts +4 -1
  880. package/esm/utils/formatNumber.d.ts +2 -1
  881. package/esm/utils/formatNumber.js +11 -0
  882. package/esm/utils/getDisabledMountTransitionStyles.d.ts +1 -1
  883. package/esm/utils/getElementAtPoint.d.ts +1 -0
  884. package/esm/utils/getElementAtPoint.js +3 -0
  885. package/esm/utils/getPseudoElementBounds.js +1 -1
  886. package/esm/utils/itemEquality.d.ts +5 -5
  887. package/esm/utils/itemEquality.js +17 -17
  888. package/esm/utils/popupStateMapping.d.ts +10 -0
  889. package/esm/utils/popupStateMapping.js +10 -0
  890. package/esm/utils/popups/popupStoreUtils.js +2 -0
  891. package/esm/utils/popups/popupTriggerMap.d.ts +14 -1
  892. package/esm/utils/popups/popupTriggerMap.js +27 -9
  893. package/esm/utils/popups/store.d.ts +28 -18
  894. package/esm/utils/popups/store.js +8 -5
  895. package/esm/utils/reason-parts.d.ts +3 -0
  896. package/esm/utils/reason-parts.js +3 -0
  897. package/esm/utils/resolveAriaLabelledBy.d.ts +2 -0
  898. package/esm/utils/resolveAriaLabelledBy.js +8 -0
  899. package/esm/utils/resolveValueLabel.d.ts +4 -4
  900. package/esm/utils/resolveValueLabel.js +7 -5
  901. package/esm/utils/scrollable.d.ts +4 -0
  902. package/esm/utils/scrollable.js +32 -0
  903. package/esm/utils/types.d.ts +9 -22
  904. package/esm/utils/useAnchorPositioning.d.ts +68 -33
  905. package/esm/utils/useAnchorPositioning.js +32 -20
  906. package/esm/utils/useFocusableWhenDisabled.d.ts +6 -9
  907. package/esm/utils/useMixedToggleClickHandler.d.ts +3 -5
  908. package/esm/utils/useMixedToggleClickHandler.js +2 -0
  909. package/esm/utils/useOpenChangeComplete.d.ts +4 -6
  910. package/esm/utils/useOpenInteractionType.d.ts +0 -1
  911. package/esm/utils/useOpenInteractionType.js +7 -5
  912. package/esm/utils/usePopupAutoResize.d.ts +3 -3
  913. package/esm/utils/usePopupAutoResize.js +4 -3
  914. package/esm/utils/usePopupViewport.d.ts +58 -0
  915. package/esm/utils/usePopupViewport.js +250 -0
  916. package/esm/utils/useRegisteredLabelId.d.ts +1 -0
  917. package/esm/utils/useRegisteredLabelId.js +14 -0
  918. package/esm/utils/useRenderElement.d.ts +11 -14
  919. package/esm/utils/useRenderElement.js +43 -1
  920. package/esm/utils/useSwipeDismiss.d.ts +107 -0
  921. package/esm/utils/useSwipeDismiss.js +945 -0
  922. package/esm/utils/useValueChanged.js +2 -0
  923. package/field/control/FieldControl.d.ts +6 -6
  924. package/field/control/FieldControl.js +21 -20
  925. package/field/description/FieldDescription.d.ts +3 -3
  926. package/field/error/FieldError.d.ts +10 -4
  927. package/field/error/FieldError.js +51 -7
  928. package/field/error/FieldErrorDataAttributes.d.ts +8 -0
  929. package/field/error/FieldErrorDataAttributes.js +10 -1
  930. package/field/item/FieldItem.d.ts +5 -4
  931. package/field/item/FieldItem.js +2 -2
  932. package/field/item/FieldItemContext.js +1 -0
  933. package/field/label/FieldLabel.d.ts +4 -4
  934. package/field/label/FieldLabel.js +13 -53
  935. package/field/root/FieldRoot.d.ts +28 -11
  936. package/field/root/FieldRoot.js +2 -1
  937. package/field/root/FieldRootContext.d.ts +3 -3
  938. package/field/root/FieldRootContext.js +5 -12
  939. package/field/root/useFieldValidation.js +5 -4
  940. package/field/useField.d.ts +1 -1
  941. package/field/useField.js +1 -0
  942. package/field/utils/constants.d.ts +3 -0
  943. package/field/utils/constants.js +12 -1
  944. package/field/validity/FieldValidity.d.ts +9 -1
  945. package/field/validity/FieldValidity.js +9 -3
  946. package/fieldset/legend/FieldsetLegend.d.ts +1 -1
  947. package/fieldset/legend/FieldsetLegend.js +2 -2
  948. package/fieldset/root/FieldsetRoot.d.ts +2 -2
  949. package/fieldset/root/FieldsetRoot.js +3 -3
  950. package/floating-ui-react/components/FloatingDelayGroup.d.ts +2 -7
  951. package/floating-ui-react/components/FloatingDelayGroup.js +4 -11
  952. package/floating-ui-react/components/FloatingFocusManager.d.ts +17 -22
  953. package/floating-ui-react/components/FloatingFocusManager.js +85 -94
  954. package/floating-ui-react/components/FloatingPortal.d.ts +12 -11
  955. package/floating-ui-react/components/FloatingPortal.js +1 -3
  956. package/floating-ui-react/components/FloatingTree.d.ts +1 -1
  957. package/floating-ui-react/hooks/useClick.d.ts +12 -6
  958. package/floating-ui-react/hooks/useClick.js +6 -5
  959. package/floating-ui-react/hooks/useClientPoint.d.ts +2 -12
  960. package/floating-ui-react/hooks/useClientPoint.js +4 -16
  961. package/floating-ui-react/hooks/useDismiss.d.ts +14 -18
  962. package/floating-ui-react/hooks/useDismiss.js +322 -261
  963. package/floating-ui-react/hooks/useFloating.js +1 -0
  964. package/floating-ui-react/hooks/useFloatingRootContext.d.ts +4 -10
  965. package/floating-ui-react/hooks/useFloatingRootContext.js +4 -3
  966. package/floating-ui-react/hooks/useFocus.d.ts +2 -8
  967. package/floating-ui-react/hooks/useFocus.js +9 -11
  968. package/floating-ui-react/hooks/useHover.d.ts +7 -38
  969. package/floating-ui-react/hooks/useHover.js +23 -67
  970. package/floating-ui-react/hooks/useHoverFloatingInteraction.d.ts +3 -9
  971. package/floating-ui-react/hooks/useHoverFloatingInteraction.js +67 -90
  972. package/floating-ui-react/hooks/useHoverInteractionSharedState.d.ts +27 -15
  973. package/floating-ui-react/hooks/useHoverInteractionSharedState.js +67 -33
  974. package/floating-ui-react/hooks/useHoverReferenceInteraction.d.ts +14 -5
  975. package/floating-ui-react/hooks/useHoverReferenceInteraction.js +93 -119
  976. package/floating-ui-react/hooks/useHoverShared.d.ts +28 -0
  977. package/floating-ui-react/hooks/useHoverShared.js +34 -0
  978. package/floating-ui-react/hooks/useInteractions.d.ts +2 -2
  979. package/floating-ui-react/hooks/useListNavigation.d.ts +19 -35
  980. package/floating-ui-react/hooks/useListNavigation.js +18 -14
  981. package/floating-ui-react/hooks/useRole.d.ts +1 -7
  982. package/floating-ui-react/hooks/useRole.js +2 -3
  983. package/floating-ui-react/hooks/useSyncedFloatingRootContext.d.ts +2 -2
  984. package/floating-ui-react/hooks/useSyncedFloatingRootContext.js +1 -0
  985. package/floating-ui-react/hooks/useTypeahead.d.ts +12 -16
  986. package/floating-ui-react/hooks/useTypeahead.js +72 -25
  987. package/floating-ui-react/middleware/arrow.d.ts +1 -1
  988. package/floating-ui-react/safePolygon.d.ts +2 -6
  989. package/floating-ui-react/safePolygon.js +149 -119
  990. package/floating-ui-react/types.d.ts +16 -15
  991. package/floating-ui-react/utils/composite.d.ts +6 -5
  992. package/floating-ui-react/utils/composite.js +130 -132
  993. package/floating-ui-react/utils/element.d.ts +2 -1
  994. package/floating-ui-react/utils/element.js +16 -4
  995. package/floating-ui-react/utils/enqueueFocus.d.ts +3 -3
  996. package/floating-ui-react/utils/event.js +2 -4
  997. package/floating-ui-react/utils/markOthers.d.ts +7 -1
  998. package/floating-ui-react/utils/markOthers.js +120 -82
  999. package/floating-ui-react/utils/tabbable.js +5 -4
  1000. package/form/Form.d.ts +6 -6
  1001. package/global.d.ts +1 -1
  1002. package/index.d.ts +1 -0
  1003. package/index.js +12 -1
  1004. package/input/Input.d.ts +13 -6
  1005. package/labelable-provider/LabelableContext.d.ts +1 -1
  1006. package/labelable-provider/LabelableContext.js +1 -1
  1007. package/labelable-provider/LabelableProvider.d.ts +4 -1
  1008. package/labelable-provider/LabelableProvider.js +35 -4
  1009. package/labelable-provider/useAriaLabelledBy.d.ts +9 -0
  1010. package/labelable-provider/useAriaLabelledBy.js +61 -0
  1011. package/labelable-provider/useLabel.d.ts +25 -0
  1012. package/labelable-provider/useLabel.js +80 -0
  1013. package/labelable-provider/useLabelableId.d.ts +5 -7
  1014. package/labelable-provider/useLabelableId.js +39 -12
  1015. package/menu/arrow/MenuArrow.d.ts +10 -1
  1016. package/menu/arrow/MenuArrow.js +2 -2
  1017. package/menu/arrow/MenuArrowDataAttributes.js +2 -2
  1018. package/menu/backdrop/MenuBackdrop.d.ts +4 -1
  1019. package/menu/backdrop/MenuBackdrop.js +2 -2
  1020. package/menu/checkbox-item/MenuCheckboxItem.d.ts +11 -11
  1021. package/menu/checkbox-item/MenuCheckboxItemContext.js +1 -0
  1022. package/menu/checkbox-item-indicator/MenuCheckboxItemIndicator.d.ts +9 -3
  1023. package/menu/checkbox-item-indicator/MenuCheckboxItemIndicator.js +3 -3
  1024. package/menu/group/MenuGroup.d.ts +1 -1
  1025. package/menu/group/MenuGroupContext.js +1 -0
  1026. package/menu/group-label/MenuGroupLabel.d.ts +1 -1
  1027. package/menu/index.d.ts +4 -2
  1028. package/menu/index.parts.d.ts +2 -0
  1029. package/menu/index.parts.js +14 -0
  1030. package/menu/item/MenuItem.d.ts +6 -6
  1031. package/menu/item/MenuItem.js +2 -2
  1032. package/menu/item/useMenuItem.d.ts +8 -7
  1033. package/menu/item/useMenuItem.js +16 -54
  1034. package/menu/item/useMenuItemCommonProps.d.ts +46 -0
  1035. package/menu/item/useMenuItemCommonProps.js +86 -0
  1036. package/menu/link-item/MenuLinkItem.d.ts +34 -0
  1037. package/menu/link-item/MenuLinkItem.js +74 -0
  1038. package/menu/link-item/MenuLinkItemDataAttributes.d.ts +6 -0
  1039. package/menu/link-item/MenuLinkItemDataAttributes.js +13 -0
  1040. package/menu/popup/MenuPopup.d.ts +21 -5
  1041. package/menu/popup/MenuPopup.js +6 -3
  1042. package/menu/popup/MenuPopupDataAttributes.d.ts +1 -1
  1043. package/menu/popup/MenuPopupDataAttributes.js +3 -3
  1044. package/menu/portal/MenuPortal.d.ts +4 -5
  1045. package/menu/portal/MenuPortalContext.js +1 -0
  1046. package/menu/positioner/MenuPositioner.d.ts +18 -2
  1047. package/menu/positioner/MenuPositioner.js +62 -16
  1048. package/menu/positioner/MenuPositionerDataAttributes.js +2 -2
  1049. package/menu/radio-group/MenuRadioGroup.d.ts +8 -5
  1050. package/menu/radio-group/MenuRadioGroup.js +2 -2
  1051. package/menu/radio-group/MenuRadioGroupContext.js +1 -0
  1052. package/menu/radio-item/MenuRadioItem.d.ts +8 -8
  1053. package/menu/radio-item/MenuRadioItemContext.js +1 -0
  1054. package/menu/radio-item-indicator/MenuRadioItemIndicator.d.ts +9 -3
  1055. package/menu/radio-item-indicator/MenuRadioItemIndicator.js +3 -3
  1056. package/menu/root/MenuRoot.d.ts +17 -15
  1057. package/menu/root/MenuRoot.js +41 -40
  1058. package/menu/store/MenuStore.d.ts +259 -17
  1059. package/menu/store/MenuStore.js +17 -12
  1060. package/menu/submenu-root/MenuSubmenuRoot.d.ts +2 -2
  1061. package/menu/submenu-root/MenuSubmenuRootContext.js +1 -0
  1062. package/menu/submenu-trigger/MenuSubmenuTrigger.d.ts +22 -22
  1063. package/menu/submenu-trigger/MenuSubmenuTrigger.js +11 -8
  1064. package/menu/trigger/MenuTrigger.d.ts +13 -9
  1065. package/menu/trigger/MenuTrigger.js +5 -4
  1066. package/menu/viewport/MenuViewport.d.ts +30 -0
  1067. package/menu/viewport/MenuViewport.js +66 -0
  1068. package/menu/viewport/MenuViewportCssVars.d.ts +14 -0
  1069. package/menu/viewport/MenuViewportCssVars.js +21 -0
  1070. package/menu/viewport/MenuViewportDataAttributes.d.ts +26 -0
  1071. package/menu/viewport/MenuViewportDataAttributes.js +33 -0
  1072. package/menubar/Menubar.d.ts +5 -5
  1073. package/menubar/Menubar.js +3 -9
  1074. package/meter/indicator/MeterIndicator.d.ts +4 -2
  1075. package/meter/label/MeterLabel.d.ts +4 -2
  1076. package/meter/label/MeterLabel.js +4 -8
  1077. package/meter/root/MeterRoot.d.ts +7 -7
  1078. package/meter/root/MeterRoot.js +11 -11
  1079. package/meter/track/MeterTrack.d.ts +4 -2
  1080. package/meter/value/MeterValue.d.ts +5 -3
  1081. package/navigation-menu/arrow/NavigationMenuArrow.d.ts +10 -1
  1082. package/navigation-menu/arrow/NavigationMenuArrow.js +2 -2
  1083. package/navigation-menu/arrow/NavigationMenuArrowDataAttributes.js +2 -2
  1084. package/navigation-menu/backdrop/NavigationMenuBackdrop.d.ts +1 -1
  1085. package/navigation-menu/backdrop/NavigationMenuBackdrop.js +2 -2
  1086. package/navigation-menu/content/NavigationMenuContent.d.ts +8 -1
  1087. package/navigation-menu/content/NavigationMenuContent.js +37 -5
  1088. package/navigation-menu/icon/NavigationMenuIcon.d.ts +2 -2
  1089. package/navigation-menu/icon/NavigationMenuIcon.js +2 -2
  1090. package/navigation-menu/item/NavigationMenuItem.d.ts +2 -2
  1091. package/navigation-menu/item/NavigationMenuItemContext.js +1 -0
  1092. package/navigation-menu/link/NavigationMenuLink.d.ts +3 -3
  1093. package/navigation-menu/link/NavigationMenuLink.js +2 -2
  1094. package/navigation-menu/list/NavigationMenuDismissContext.js +1 -0
  1095. package/navigation-menu/list/NavigationMenuList.d.ts +2 -2
  1096. package/navigation-menu/list/NavigationMenuList.js +12 -3
  1097. package/navigation-menu/popup/NavigationMenuPopup.d.ts +14 -1
  1098. package/navigation-menu/popup/NavigationMenuPopup.js +2 -2
  1099. package/navigation-menu/popup/NavigationMenuPopupDataAttributes.js +2 -2
  1100. package/navigation-menu/portal/NavigationMenuPortal.d.ts +5 -6
  1101. package/navigation-menu/portal/NavigationMenuPortalContext.js +1 -0
  1102. package/navigation-menu/positioner/NavigationMenuPositioner.d.ts +11 -2
  1103. package/navigation-menu/positioner/NavigationMenuPositioner.js +2 -2
  1104. package/navigation-menu/positioner/NavigationPositionerDataAttributes.js +2 -2
  1105. package/navigation-menu/root/NavigationMenuRoot.d.ts +9 -9
  1106. package/navigation-menu/root/NavigationMenuRoot.js +28 -9
  1107. package/navigation-menu/root/NavigationMenuRootContext.js +1 -0
  1108. package/navigation-menu/trigger/NavigationMenuTrigger.d.ts +1 -1
  1109. package/navigation-menu/trigger/NavigationMenuTrigger.js +270 -42
  1110. package/navigation-menu/utils/isOutsideMenuEvent.d.ts +1 -1
  1111. package/navigation-menu/viewport/NavigationMenuViewport.d.ts +1 -1
  1112. package/navigation-menu/viewport/NavigationMenuViewport.js +2 -1
  1113. package/number-field/decrement/NumberFieldDecrement.d.ts +3 -3
  1114. package/number-field/group/NumberFieldGroup.d.ts +3 -3
  1115. package/number-field/increment/NumberFieldIncrement.d.ts +3 -3
  1116. package/number-field/input/NumberFieldInput.d.ts +3 -3
  1117. package/number-field/input/NumberFieldInput.js +3 -11
  1118. package/number-field/root/NumberFieldRoot.d.ts +29 -22
  1119. package/number-field/root/NumberFieldRoot.js +23 -8
  1120. package/number-field/root/NumberFieldRootContext.d.ts +4 -4
  1121. package/number-field/root/useNumberFieldButton.d.ts +5 -8
  1122. package/number-field/root/useNumberFieldButton.js +12 -7
  1123. package/number-field/scrub-area/NumberFieldScrubArea.d.ts +5 -5
  1124. package/number-field/scrub-area/NumberFieldScrubArea.js +16 -0
  1125. package/number-field/scrub-area/NumberFieldScrubAreaContext.js +1 -0
  1126. package/number-field/scrub-area-cursor/NumberFieldScrubAreaCursor.d.ts +3 -3
  1127. package/number-field/utils/stateAttributesMapping.d.ts +2 -2
  1128. package/number-field/utils/stateAttributesMapping.js +3 -1
  1129. package/number-field/utils/subscribeToVisualViewportResize.d.ts +1 -1
  1130. package/number-field/utils/types.d.ts +5 -5
  1131. package/number-field/utils/validate.d.ts +3 -1
  1132. package/number-field/utils/validate.js +3 -2
  1133. package/package.json +194 -9
  1134. package/popover/arrow/PopoverArrow.d.ts +10 -1
  1135. package/popover/arrow/PopoverArrow.js +2 -2
  1136. package/popover/arrow/PopoverArrowDataAttributes.js +2 -2
  1137. package/popover/backdrop/PopoverBackdrop.d.ts +4 -1
  1138. package/popover/backdrop/PopoverBackdrop.js +2 -2
  1139. package/popover/close/PopoverClose.d.ts +1 -1
  1140. package/popover/close/PopoverClose.js +5 -3
  1141. package/popover/description/PopoverDescription.d.ts +1 -1
  1142. package/popover/popup/PopoverPopup.d.ts +16 -3
  1143. package/popover/popup/PopoverPopup.js +13 -4
  1144. package/popover/portal/PopoverPortal.d.ts +4 -5
  1145. package/popover/portal/PopoverPortal.js +1 -2
  1146. package/popover/portal/PopoverPortalContext.js +1 -0
  1147. package/popover/positioner/PopoverPositioner.d.ts +11 -2
  1148. package/popover/positioner/PopoverPositioner.js +3 -3
  1149. package/popover/positioner/PopoverPositionerDataAttributes.js +2 -2
  1150. package/popover/root/PopoverRoot.d.ts +16 -9
  1151. package/popover/root/PopoverRoot.js +19 -8
  1152. package/popover/store/PopoverStore.d.ts +255 -15
  1153. package/popover/title/PopoverTitle.d.ts +1 -1
  1154. package/popover/trigger/PopoverTrigger.d.ts +7 -7
  1155. package/popover/trigger/PopoverTrigger.js +3 -3
  1156. package/popover/viewport/PopoverViewport.d.ts +16 -4
  1157. package/popover/viewport/PopoverViewport.js +19 -196
  1158. package/popover/viewport/PopoverViewportDataAttributes.d.ts +5 -0
  1159. package/popover/viewport/PopoverViewportDataAttributes.js +5 -0
  1160. package/preview-card/arrow/PreviewCardArrow.d.ts +10 -1
  1161. package/preview-card/arrow/PreviewCardArrow.js +2 -2
  1162. package/preview-card/arrow/PreviewCardArrowDataAttributes.js +2 -2
  1163. package/preview-card/backdrop/PreviewCardBackdrop.d.ts +4 -1
  1164. package/preview-card/backdrop/PreviewCardBackdrop.js +2 -2
  1165. package/preview-card/popup/PreviewCardPopup.d.ts +13 -1
  1166. package/preview-card/popup/PreviewCardPopup.js +2 -2
  1167. package/preview-card/popup/PreviewCardPopupDataAttributes.js +2 -2
  1168. package/preview-card/portal/PreviewCardPortal.d.ts +4 -5
  1169. package/preview-card/portal/PreviewCardPortalContext.js +1 -0
  1170. package/preview-card/positioner/PreviewCardPositioner.d.ts +14 -2
  1171. package/preview-card/positioner/PreviewCardPositioner.js +9 -3
  1172. package/preview-card/positioner/PreviewCardPositionerContext.d.ts +1 -1
  1173. package/preview-card/positioner/PreviewCardPositionerDataAttributes.js +2 -2
  1174. package/preview-card/root/PreviewCardRoot.d.ts +9 -9
  1175. package/preview-card/root/PreviewCardRoot.js +37 -11
  1176. package/preview-card/store/PreviewCardStore.d.ts +255 -15
  1177. package/preview-card/trigger/PreviewCardTrigger.d.ts +5 -5
  1178. package/preview-card/trigger/PreviewCardTrigger.js +3 -3
  1179. package/preview-card/viewport/PreviewCardViewport.d.ts +16 -4
  1180. package/preview-card/viewport/PreviewCardViewport.js +14 -230
  1181. package/progress/indicator/ProgressIndicator.d.ts +4 -2
  1182. package/progress/label/ProgressLabel.d.ts +4 -2
  1183. package/progress/label/ProgressLabel.js +4 -8
  1184. package/progress/root/ProgressRoot.d.ts +10 -7
  1185. package/progress/root/ProgressRoot.js +11 -13
  1186. package/progress/root/ProgressRootContext.d.ts +2 -2
  1187. package/progress/root/stateAttributesMapping.d.ts +2 -2
  1188. package/progress/track/ProgressTrack.d.ts +4 -2
  1189. package/progress/value/ProgressValue.d.ts +5 -3
  1190. package/radio/indicator/RadioIndicator.d.ts +5 -2
  1191. package/radio/indicator/RadioIndicator.js +4 -4
  1192. package/radio/indicator/RadioIndicatorDataAttributes.d.ts +8 -0
  1193. package/radio/indicator/RadioIndicatorDataAttributes.js +10 -1
  1194. package/radio/root/RadioRoot.d.ts +39 -19
  1195. package/radio/root/RadioRoot.js +49 -12
  1196. package/radio-group/RadioGroup.d.ts +20 -14
  1197. package/radio-group/RadioGroup.js +68 -61
  1198. package/radio-group/RadioGroupContext.d.ts +9 -8
  1199. package/radio-group/RadioGroupContext.js +1 -13
  1200. package/scroll-area/content/ScrollAreaContent.d.ts +3 -3
  1201. package/scroll-area/corner/ScrollAreaCorner.d.ts +1 -1
  1202. package/scroll-area/root/ScrollAreaRoot.d.ts +27 -9
  1203. package/scroll-area/root/ScrollAreaRoot.js +9 -5
  1204. package/scroll-area/root/ScrollAreaRootContext.d.ts +4 -2
  1205. package/scroll-area/root/ScrollAreaRootContext.js +1 -0
  1206. package/scroll-area/root/ScrollAreaRootDataAttributes.d.ts +4 -0
  1207. package/scroll-area/root/ScrollAreaRootDataAttributes.js +4 -0
  1208. package/scroll-area/root/stateAttributes.d.ts +2 -2
  1209. package/scroll-area/scrollbar/ScrollAreaScrollbar.d.ts +14 -8
  1210. package/scroll-area/scrollbar/ScrollAreaScrollbar.js +6 -3
  1211. package/scroll-area/scrollbar/ScrollAreaScrollbarContext.js +1 -0
  1212. package/scroll-area/scrollbar/ScrollAreaScrollbarDataAttributes.d.ts +1 -1
  1213. package/scroll-area/scrollbar/ScrollAreaScrollbarDataAttributes.js +1 -1
  1214. package/scroll-area/thumb/ScrollAreaThumb.d.ts +5 -2
  1215. package/scroll-area/thumb/ScrollAreaThumb.js +5 -3
  1216. package/scroll-area/utils/scrollEdges.d.ts +2 -0
  1217. package/scroll-area/utils/scrollEdges.js +29 -0
  1218. package/scroll-area/viewport/ScrollAreaViewport.d.ts +3 -3
  1219. package/scroll-area/viewport/ScrollAreaViewport.js +64 -42
  1220. package/scroll-area/viewport/ScrollAreaViewportContext.js +1 -0
  1221. package/scroll-area/viewport/ScrollAreaViewportDataAttributes.d.ts +4 -0
  1222. package/scroll-area/viewport/ScrollAreaViewportDataAttributes.js +4 -0
  1223. package/select/arrow/SelectArrow.d.ts +10 -1
  1224. package/select/arrow/SelectArrow.js +2 -2
  1225. package/select/arrow/SelectArrowDataAttributes.js +2 -2
  1226. package/select/backdrop/SelectBackdrop.d.ts +7 -1
  1227. package/select/backdrop/SelectBackdrop.js +2 -2
  1228. package/select/group/SelectGroup.d.ts +1 -1
  1229. package/select/group/SelectGroupContext.js +1 -0
  1230. package/select/group-label/SelectGroupLabel.d.ts +1 -1
  1231. package/select/icon/SelectIcon.d.ts +1 -1
  1232. package/select/icon/SelectIcon.js +2 -2
  1233. package/select/index.d.ts +1 -0
  1234. package/select/index.parts.d.ts +1 -0
  1235. package/select/index.parts.js +7 -0
  1236. package/select/item/SelectItem.d.ts +3 -3
  1237. package/select/item/SelectItem.js +23 -17
  1238. package/select/item/SelectItemContext.js +1 -0
  1239. package/select/item-indicator/SelectItemIndicator.d.ts +11 -3
  1240. package/select/item-indicator/SelectItemIndicator.js +2 -2
  1241. package/select/item-indicator/SelectItemIndicatorDataAttributes.d.ts +10 -0
  1242. package/select/item-indicator/SelectItemIndicatorDataAttributes.js +18 -0
  1243. package/select/item-text/SelectItemText.d.ts +1 -1
  1244. package/select/label/SelectLabel.d.ts +16 -0
  1245. package/select/label/SelectLabel.js +54 -0
  1246. package/select/list/SelectList.d.ts +1 -1
  1247. package/select/popup/SelectPopup.d.ts +24 -1
  1248. package/select/popup/SelectPopup.js +90 -47
  1249. package/select/popup/SelectPopupDataAttributes.js +2 -2
  1250. package/select/portal/SelectPortal.d.ts +3 -4
  1251. package/select/portal/SelectPortalContext.js +1 -0
  1252. package/select/positioner/SelectPositioner.d.ts +15 -3
  1253. package/select/positioner/SelectPositioner.js +13 -10
  1254. package/select/positioner/SelectPositionerContext.d.ts +2 -2
  1255. package/select/positioner/SelectPositionerContext.js +1 -0
  1256. package/select/positioner/SelectPositionerDataAttributes.js +2 -2
  1257. package/select/root/SelectRoot.d.ts +27 -21
  1258. package/select/root/SelectRoot.js +7 -6
  1259. package/select/root/SelectRootContext.d.ts +14 -14
  1260. package/select/root/SelectRootContext.js +1 -0
  1261. package/select/scroll-arrow/SelectScrollArrow.d.ts +14 -2
  1262. package/select/scroll-arrow/SelectScrollArrow.js +2 -2
  1263. package/select/scroll-down-arrow/SelectScrollDownArrow.d.ts +2 -2
  1264. package/select/scroll-down-arrow/SelectScrollDownArrowDataAttributes.js +1 -1
  1265. package/select/scroll-up-arrow/SelectScrollUpArrow.d.ts +2 -2
  1266. package/select/scroll-up-arrow/SelectScrollUpArrowDataAttributes.js +1 -1
  1267. package/select/store.d.ts +8 -5
  1268. package/select/store.js +4 -3
  1269. package/select/trigger/SelectTrigger.d.ts +7 -5
  1270. package/select/trigger/SelectTrigger.js +7 -4
  1271. package/select/value/SelectValue.d.ts +5 -1
  1272. package/select/value/SelectValue.js +2 -2
  1273. package/separator/Separator.d.ts +2 -2
  1274. package/separator/Separator.js +2 -2
  1275. package/slider/control/SliderControl.d.ts +4 -3
  1276. package/slider/control/SliderControl.js +0 -2
  1277. package/slider/index.d.ts +1 -0
  1278. package/slider/index.parts.d.ts +1 -0
  1279. package/slider/index.parts.js +7 -0
  1280. package/slider/indicator/SliderIndicator.d.ts +4 -2
  1281. package/slider/label/SliderLabel.d.ts +16 -0
  1282. package/slider/label/SliderLabel.js +63 -0
  1283. package/slider/root/SliderRoot.d.ts +26 -20
  1284. package/slider/root/SliderRoot.js +11 -5
  1285. package/slider/root/SliderRootContext.d.ts +6 -4
  1286. package/slider/root/stateAttributesMapping.d.ts +2 -2
  1287. package/slider/root/stateAttributesMapping.js +3 -1
  1288. package/slider/thumb/SliderThumb.d.ts +10 -10
  1289. package/slider/thumb/SliderThumb.js +3 -2
  1290. package/slider/track/SliderTrack.d.ts +4 -2
  1291. package/slider/utils/getPushedThumbValues.d.ts +1 -1
  1292. package/slider/utils/resolveThumbCollision.d.ts +2 -2
  1293. package/slider/value/SliderValue.d.ts +5 -3
  1294. package/switch/root/SwitchRoot.d.ts +14 -14
  1295. package/switch/root/SwitchRoot.js +11 -2
  1296. package/switch/root/SwitchRootContext.d.ts +4 -4
  1297. package/switch/root/SwitchRootContext.js +1 -0
  1298. package/switch/stateAttributesMapping.d.ts +2 -2
  1299. package/switch/thumb/SwitchThumb.d.ts +3 -3
  1300. package/tabs/indicator/TabsIndicator.d.ts +13 -4
  1301. package/tabs/indicator/TabsIndicator.js +7 -16
  1302. package/tabs/indicator/TabsIndicatorCssVars.d.ts +1 -1
  1303. package/tabs/indicator/TabsIndicatorCssVars.js +1 -1
  1304. package/tabs/list/TabsList.d.ts +5 -5
  1305. package/tabs/list/TabsList.js +50 -5
  1306. package/tabs/list/TabsListContext.d.ts +2 -0
  1307. package/tabs/panel/TabsPanel.d.ts +13 -5
  1308. package/tabs/panel/TabsPanel.js +37 -10
  1309. package/tabs/panel/TabsPanelDataAttributes.d.ts +8 -0
  1310. package/tabs/panel/TabsPanelDataAttributes.js +10 -1
  1311. package/tabs/root/TabsRoot.d.ts +11 -5
  1312. package/tabs/root/TabsRootContext.d.ts +1 -1
  1313. package/tabs/root/stateAttributesMapping.d.ts +2 -2
  1314. package/tabs/tab/TabsTab.d.ts +8 -2
  1315. package/tabs/tab/TabsTab.js +12 -3
  1316. package/toast/action/ToastAction.d.ts +1 -1
  1317. package/toast/action/ToastAction.js +2 -2
  1318. package/toast/arrow/ToastArrow.d.ts +10 -1
  1319. package/toast/arrow/ToastArrow.js +2 -2
  1320. package/toast/arrow/ToastArrowDataAttributes.js +4 -3
  1321. package/toast/close/ToastClose.d.ts +1 -1
  1322. package/toast/close/ToastClose.js +5 -7
  1323. package/toast/content/ToastContent.d.ts +1 -1
  1324. package/toast/content/ToastContent.js +2 -2
  1325. package/toast/createToastManager.d.ts +6 -6
  1326. package/toast/createToastManager.js +3 -6
  1327. package/toast/description/ToastDescription.d.ts +1 -1
  1328. package/toast/description/ToastDescription.js +4 -6
  1329. package/toast/portal/ToastPortal.d.ts +3 -4
  1330. package/toast/positioner/ToastPositioner.d.ts +13 -4
  1331. package/toast/positioner/ToastPositioner.js +5 -6
  1332. package/toast/positioner/ToastPositionerDataAttributes.js +2 -2
  1333. package/toast/provider/ToastProvider.d.ts +5 -3
  1334. package/toast/provider/ToastProvider.js +25 -285
  1335. package/toast/provider/ToastProviderContext.d.ts +4 -25
  1336. package/toast/provider/ToastProviderContext.js +3 -2
  1337. package/toast/root/ToastRoot.d.ts +20 -7
  1338. package/toast/root/ToastRoot.js +21 -27
  1339. package/toast/root/ToastRootContext.js +1 -0
  1340. package/toast/store.d.ts +51 -0
  1341. package/toast/store.js +391 -0
  1342. package/toast/title/ToastTitle.d.ts +1 -1
  1343. package/toast/title/ToastTitle.js +4 -6
  1344. package/toast/useToastManager.d.ts +21 -22
  1345. package/toast/useToastManager.js +8 -14
  1346. package/toast/viewport/ToastViewport.d.ts +1 -1
  1347. package/toast/viewport/ToastViewport.js +65 -91
  1348. package/toggle/Toggle.d.ts +10 -8
  1349. package/toggle/Toggle.js +13 -3
  1350. package/toggle-group/ToggleGroup.d.ts +22 -10
  1351. package/toggle-group/ToggleGroup.js +8 -5
  1352. package/toggle-group/ToggleGroupContext.d.ts +10 -5
  1353. package/toolbar/button/ToolbarButton.d.ts +11 -5
  1354. package/toolbar/button/ToolbarButton.js +2 -2
  1355. package/toolbar/group/ToolbarGroup.d.ts +5 -3
  1356. package/toolbar/group/ToolbarGroup.js +2 -2
  1357. package/toolbar/group/ToolbarGroupContext.js +1 -0
  1358. package/toolbar/input/ToolbarInput.d.ts +12 -6
  1359. package/toolbar/input/ToolbarInput.js +2 -2
  1360. package/toolbar/link/ToolbarLink.d.ts +4 -1
  1361. package/toolbar/link/ToolbarLink.js +2 -2
  1362. package/toolbar/root/ToolbarRoot.d.ts +10 -4
  1363. package/toolbar/root/ToolbarRoot.js +2 -2
  1364. package/toolbar/separator/ToolbarSeparator.d.ts +4 -2
  1365. package/tooltip/arrow/TooltipArrow.d.ts +14 -1
  1366. package/tooltip/arrow/TooltipArrow.js +2 -2
  1367. package/tooltip/arrow/TooltipArrowDataAttributes.js +2 -2
  1368. package/tooltip/popup/TooltipPopup.d.ts +13 -1
  1369. package/tooltip/popup/TooltipPopup.js +2 -2
  1370. package/tooltip/popup/TooltipPopupDataAttributes.js +2 -2
  1371. package/tooltip/portal/TooltipPortal.d.ts +4 -5
  1372. package/tooltip/portal/TooltipPortalContext.js +1 -0
  1373. package/tooltip/positioner/TooltipPositioner.d.ts +12 -3
  1374. package/tooltip/positioner/TooltipPositionerContext.d.ts +1 -1
  1375. package/tooltip/positioner/TooltipPositionerDataAttributes.js +2 -2
  1376. package/tooltip/provider/TooltipProvider.d.ts +5 -3
  1377. package/tooltip/provider/TooltipProviderContext.js +1 -0
  1378. package/tooltip/root/TooltipRoot.d.ts +12 -12
  1379. package/tooltip/root/TooltipRoot.js +24 -12
  1380. package/tooltip/store/TooltipStore.d.ts +258 -16
  1381. package/tooltip/store/TooltipStore.js +2 -0
  1382. package/tooltip/trigger/TooltipTrigger.d.ts +17 -5
  1383. package/tooltip/trigger/TooltipTrigger.js +17 -6
  1384. package/tooltip/trigger/TooltipTriggerDataAttributes.d.ts +4 -0
  1385. package/tooltip/trigger/TooltipTriggerDataAttributes.js +4 -0
  1386. package/tooltip/viewport/TooltipViewport.d.ts +16 -4
  1387. package/tooltip/viewport/TooltipViewport.js +14 -195
  1388. package/types/index.d.ts +16 -1
  1389. package/unstable-use-media-query/index.d.ts +7 -5
  1390. package/use-button/useButton.d.ts +12 -9
  1391. package/use-button/useButton.js +56 -22
  1392. package/use-render/useRender.d.ts +14 -12
  1393. package/utils/FloatingPortalLite.d.ts +4 -2
  1394. package/utils/InternalBackdrop.d.ts +3 -1
  1395. package/utils/closePart.d.ts +16 -0
  1396. package/utils/closePart.js +48 -0
  1397. package/utils/constants.d.ts +4 -0
  1398. package/utils/constants.js +6 -2
  1399. package/utils/createBaseUIEventDetails.d.ts +4 -1
  1400. package/utils/formatNumber.d.ts +2 -1
  1401. package/utils/formatNumber.js +12 -0
  1402. package/utils/getDisabledMountTransitionStyles.d.ts +1 -1
  1403. package/utils/getElementAtPoint.d.ts +1 -0
  1404. package/utils/getElementAtPoint.js +9 -0
  1405. package/utils/getPseudoElementBounds.js +1 -1
  1406. package/utils/itemEquality.d.ts +5 -5
  1407. package/utils/itemEquality.js +18 -18
  1408. package/utils/popupStateMapping.d.ts +10 -0
  1409. package/utils/popupStateMapping.js +10 -0
  1410. package/utils/popups/popupStoreUtils.js +1 -0
  1411. package/utils/popups/popupTriggerMap.d.ts +14 -1
  1412. package/utils/popups/popupTriggerMap.js +27 -10
  1413. package/utils/popups/store.d.ts +28 -18
  1414. package/utils/popups/store.js +8 -5
  1415. package/utils/reason-parts.d.ts +3 -0
  1416. package/utils/reason-parts.js +4 -1
  1417. package/utils/resolveAriaLabelledBy.d.ts +2 -0
  1418. package/utils/resolveAriaLabelledBy.js +14 -0
  1419. package/utils/resolveValueLabel.d.ts +4 -4
  1420. package/utils/resolveValueLabel.js +7 -5
  1421. package/utils/scrollable.d.ts +4 -0
  1422. package/utils/scrollable.js +40 -0
  1423. package/utils/types.d.ts +9 -22
  1424. package/utils/useAnchorPositioning.d.ts +68 -33
  1425. package/utils/useAnchorPositioning.js +32 -20
  1426. package/utils/useFocusableWhenDisabled.d.ts +6 -9
  1427. package/utils/useMixedToggleClickHandler.d.ts +3 -5
  1428. package/utils/useMixedToggleClickHandler.js +1 -0
  1429. package/utils/useOpenChangeComplete.d.ts +4 -6
  1430. package/utils/useOpenInteractionType.d.ts +0 -1
  1431. package/utils/useOpenInteractionType.js +7 -5
  1432. package/utils/usePopupAutoResize.d.ts +3 -3
  1433. package/utils/usePopupAutoResize.js +3 -3
  1434. package/utils/usePopupViewport.d.ts +58 -0
  1435. package/utils/usePopupViewport.js +256 -0
  1436. package/utils/useRegisteredLabelId.d.ts +1 -0
  1437. package/utils/useRegisteredLabelId.js +19 -0
  1438. package/utils/useRenderElement.d.ts +11 -14
  1439. package/utils/useRenderElement.js +43 -1
  1440. package/utils/useSwipeDismiss.d.ts +107 -0
  1441. package/utils/useSwipeDismiss.js +953 -0
  1442. package/utils/useValueChanged.js +1 -0
  1443. package/esm/navigation-menu/utils/setFixedSize.d.ts +0 -1
  1444. package/esm/navigation-menu/utils/setFixedSize.js +0 -11
  1445. package/esm/toast/viewport/ToastViewportContext.d.ts +0 -6
  1446. package/esm/toast/viewport/ToastViewportContext.js +0 -11
  1447. package/navigation-menu/utils/setFixedSize.d.ts +0 -1
  1448. package/navigation-menu/utils/setFixedSize.js +0 -17
  1449. package/toast/viewport/ToastViewportContext.d.ts +0 -6
  1450. package/toast/viewport/ToastViewportContext.js +0 -20
@@ -0,0 +1,945 @@
1
+ 'use client';
2
+
3
+ import * as React from 'react';
4
+ import { useStableCallback } from '@base-ui/utils/useStableCallback';
5
+ import { ownerDocument } from '@base-ui/utils/owner';
6
+ import { contains, getTarget } from "../floating-ui-react/utils.js";
7
+ import { findScrollableTouchTarget, hasScrollableAncestor } from "./scrollable.js";
8
+ import { clamp } from "./clamp.js";
9
+ import { getElementAtPoint } from "./getElementAtPoint.js";
10
+ const DEFAULT_SWIPE_THRESHOLD = 40;
11
+ const REVERSE_CANCEL_THRESHOLD = 10;
12
+ const MIN_DRAG_THRESHOLD = 1;
13
+ const MIN_VELOCITY_DURATION_MS = 50;
14
+ const MIN_RELEASE_VELOCITY_DURATION_MS = 16;
15
+ const MAX_RELEASE_VELOCITY_AGE_MS = 80;
16
+ const DEFAULT_IGNORE_SELECTOR = 'button,a,input,select,textarea,label,[role="button"]';
17
+ export function getDisplacement(direction, deltaX, deltaY) {
18
+ switch (direction) {
19
+ case 'up':
20
+ return -deltaY;
21
+ case 'down':
22
+ return deltaY;
23
+ case 'left':
24
+ return -deltaX;
25
+ case 'right':
26
+ return deltaX;
27
+ default:
28
+ return 0;
29
+ }
30
+ }
31
+ export function getElementTransform(element) {
32
+ const computedStyle = window.getComputedStyle(element);
33
+ const transform = computedStyle.transform;
34
+ let translateX = 0;
35
+ let translateY = 0;
36
+ let scale = 1;
37
+ if (transform && transform !== 'none') {
38
+ const matrix = transform.match(/matrix(?:3d)?\(([^)]+)\)/);
39
+ if (matrix) {
40
+ const values = matrix[1].split(', ').map(parseFloat);
41
+ if (values.length === 6) {
42
+ translateX = values[4];
43
+ translateY = values[5];
44
+ scale = Math.sqrt(values[0] * values[0] + values[1] * values[1]);
45
+ } else if (values.length === 16) {
46
+ translateX = values[12];
47
+ translateY = values[13];
48
+ scale = values[0];
49
+ }
50
+ }
51
+ }
52
+ return {
53
+ x: translateX,
54
+ y: translateY,
55
+ scale
56
+ };
57
+ }
58
+ function getValidTimeStamp(timeStamp) {
59
+ return Number.isFinite(timeStamp) && timeStamp > 0 ? timeStamp : null;
60
+ }
61
+ function hasPrimaryMouseButton(buttons) {
62
+ return buttons % 2 === 1;
63
+ }
64
+ function safelyChangePointerCapture(element, pointerId, method) {
65
+ const pointerCaptureMethod = element[method];
66
+ if (typeof pointerCaptureMethod !== 'function') {
67
+ return;
68
+ }
69
+ try {
70
+ pointerCaptureMethod.call(element, pointerId);
71
+ } catch (error) {
72
+ if (error && typeof error === 'object' && 'name' in error && error.name === 'NotFoundError') {
73
+ return;
74
+ }
75
+ throw error;
76
+ }
77
+ }
78
+ export function useSwipeDismiss(options) {
79
+ const {
80
+ enabled,
81
+ directions,
82
+ elementRef,
83
+ movementCssVars,
84
+ canStart,
85
+ ignoreSelectorWhenTouch = true,
86
+ ignoreScrollableAncestors = false,
87
+ swipeThreshold: swipeThresholdProp,
88
+ onDismiss,
89
+ onProgress,
90
+ onSwipeStart,
91
+ onRelease,
92
+ onSwipingChange,
93
+ trackDrag = true
94
+ } = options;
95
+ const ignoreSelector = DEFAULT_IGNORE_SELECTOR;
96
+ const primaryDirection = directions.length === 1 ? directions[0] : undefined;
97
+ const swipeThresholdDefault = Math.max(0, typeof swipeThresholdProp === 'number' ? swipeThresholdProp : DEFAULT_SWIPE_THRESHOLD);
98
+ const allowLeft = directions.includes('left');
99
+ const allowRight = directions.includes('right');
100
+ const allowUp = directions.includes('up');
101
+ const allowDown = directions.includes('down');
102
+ const hasHorizontal = allowLeft || allowRight;
103
+ const hasVertical = allowUp || allowDown;
104
+ const scrollAxes = React.useMemo(() => {
105
+ const axes = [];
106
+ if (hasVertical) {
107
+ axes.push('vertical');
108
+ }
109
+ if (hasHorizontal) {
110
+ axes.push('horizontal');
111
+ }
112
+ return axes;
113
+ }, [hasHorizontal, hasVertical]);
114
+ const [currentSwipeDirection, setCurrentSwipeDirection] = React.useState(undefined);
115
+ const [isSwiping, setIsSwiping] = React.useState(false);
116
+ const [isRealSwipe, setIsRealSwipe] = React.useState(false);
117
+ const [dragDismissed, setDragDismissed] = React.useState(false);
118
+ const [dragOffset, setDragOffset] = React.useState({
119
+ x: 0,
120
+ y: 0
121
+ });
122
+ const [initialTransform, setInitialTransform] = React.useState({
123
+ x: 0,
124
+ y: 0,
125
+ scale: 1
126
+ });
127
+ const [lockedDirection, setLockedDirection] = React.useState(null);
128
+ const dragStartPosRef = React.useRef({
129
+ x: 0,
130
+ y: 0
131
+ });
132
+ const dragOffsetRef = React.useRef({
133
+ x: 0,
134
+ y: 0
135
+ });
136
+ const lastMovePosRef = React.useRef(null);
137
+ const initialTransformRef = React.useRef({
138
+ x: 0,
139
+ y: 0,
140
+ scale: 1
141
+ });
142
+ const intendedSwipeDirectionRef = React.useRef(undefined);
143
+ const maxSwipeDisplacementRef = React.useRef(0);
144
+ const cancelledSwipeRef = React.useRef(false);
145
+ const swipeCancelBaselineRef = React.useRef({
146
+ x: 0,
147
+ y: 0
148
+ });
149
+ const isFirstPointerMoveRef = React.useRef(false);
150
+ const pendingSwipeRef = React.useRef(false);
151
+ const pendingSwipeStartPosRef = React.useRef(null);
152
+ const swipeFromScrollableRef = React.useRef(false);
153
+ const sawPrimaryButtonsOnMoveRef = React.useRef(false);
154
+ const elementSizeRef = React.useRef({
155
+ width: 0,
156
+ height: 0
157
+ });
158
+ const swipeProgressRef = React.useRef(0);
159
+ const swipeThresholdRef = React.useRef(swipeThresholdDefault);
160
+ const swipeStartTimeRef = React.useRef(null);
161
+ const lastDragSampleRef = React.useRef(null);
162
+ const lastDragVelocityRef = React.useRef({
163
+ x: 0,
164
+ y: 0
165
+ });
166
+ const lastProgressDetailsRef = React.useRef(null);
167
+ const isSwipingRef = React.useRef(false);
168
+ const setSwiping = useStableCallback(nextSwiping => {
169
+ if (isSwipingRef.current === nextSwiping) {
170
+ return;
171
+ }
172
+ isSwipingRef.current = nextSwiping;
173
+ setIsSwiping(nextSwiping);
174
+ onSwipingChange?.(nextSwiping);
175
+ });
176
+ function resolveSwipeThreshold(direction) {
177
+ if (!direction) {
178
+ return;
179
+ }
180
+ if (typeof swipeThresholdProp !== 'function') {
181
+ swipeThresholdRef.current = swipeThresholdDefault;
182
+ return;
183
+ }
184
+ const element = elementRef.current;
185
+ if (!element) {
186
+ return;
187
+ }
188
+ const value = swipeThresholdProp({
189
+ element,
190
+ direction
191
+ });
192
+ swipeThresholdRef.current = Math.max(0, value);
193
+ }
194
+ const updateSwipeProgress = useStableCallback((progress, details) => {
195
+ const nextProgress = Number.isFinite(progress) ? clamp(progress, 0, 1) : 0;
196
+ const progressChanged = nextProgress !== swipeProgressRef.current;
197
+ let detailsChanged = false;
198
+ if (details) {
199
+ const lastDetails = lastProgressDetailsRef.current;
200
+ detailsChanged = !lastDetails || lastDetails.deltaX !== details.deltaX || lastDetails.deltaY !== details.deltaY || lastDetails.direction !== details.direction;
201
+ }
202
+ if (!progressChanged && !detailsChanged) {
203
+ return;
204
+ }
205
+ swipeProgressRef.current = nextProgress;
206
+ if (details) {
207
+ lastProgressDetailsRef.current = details;
208
+ } else if (progressChanged) {
209
+ lastProgressDetailsRef.current = null;
210
+ }
211
+ onProgress?.(nextProgress, details);
212
+ });
213
+ function recordDragSample(offset, timeStamp) {
214
+ if (timeStamp === null) {
215
+ return;
216
+ }
217
+ const lastSample = lastDragSampleRef.current;
218
+ if (lastSample && timeStamp > lastSample.time) {
219
+ const durationMs = Math.max(timeStamp - lastSample.time, MIN_RELEASE_VELOCITY_DURATION_MS);
220
+ lastDragVelocityRef.current = {
221
+ x: (offset.x - lastSample.x) / durationMs,
222
+ y: (offset.y - lastSample.y) / durationMs
223
+ };
224
+ }
225
+ lastDragSampleRef.current = {
226
+ x: offset.x,
227
+ y: offset.y,
228
+ time: timeStamp
229
+ };
230
+ }
231
+ const reset = React.useCallback(() => {
232
+ setCurrentSwipeDirection(undefined);
233
+ setSwiping(false);
234
+ setIsRealSwipe(false);
235
+ setDragDismissed(false);
236
+ setDragOffset({
237
+ x: 0,
238
+ y: 0
239
+ });
240
+ setInitialTransform({
241
+ x: 0,
242
+ y: 0,
243
+ scale: 1
244
+ });
245
+ setLockedDirection(null);
246
+ updateSwipeProgress(0);
247
+ swipeThresholdRef.current = swipeThresholdDefault;
248
+ dragStartPosRef.current = {
249
+ x: 0,
250
+ y: 0
251
+ };
252
+ dragOffsetRef.current = {
253
+ x: 0,
254
+ y: 0
255
+ };
256
+ initialTransformRef.current = {
257
+ x: 0,
258
+ y: 0,
259
+ scale: 1
260
+ };
261
+ intendedSwipeDirectionRef.current = undefined;
262
+ maxSwipeDisplacementRef.current = 0;
263
+ cancelledSwipeRef.current = false;
264
+ swipeCancelBaselineRef.current = {
265
+ x: 0,
266
+ y: 0
267
+ };
268
+ isFirstPointerMoveRef.current = false;
269
+ lastMovePosRef.current = null;
270
+ pendingSwipeRef.current = false;
271
+ pendingSwipeStartPosRef.current = null;
272
+ swipeFromScrollableRef.current = false;
273
+ sawPrimaryButtonsOnMoveRef.current = false;
274
+ elementSizeRef.current = {
275
+ width: 0,
276
+ height: 0
277
+ };
278
+ swipeStartTimeRef.current = null;
279
+ lastDragSampleRef.current = null;
280
+ lastDragVelocityRef.current = {
281
+ x: 0,
282
+ y: 0
283
+ };
284
+ lastProgressDetailsRef.current = null;
285
+ }, [setSwiping, swipeThresholdDefault, updateSwipeProgress]);
286
+ React.useEffect(() => {
287
+ if (typeof swipeThresholdProp !== 'function') {
288
+ swipeThresholdRef.current = swipeThresholdDefault;
289
+ }
290
+ }, [swipeThresholdDefault, swipeThresholdProp]);
291
+ function getPrimaryPointerPosition(event) {
292
+ if ('touches' in event) {
293
+ const touch = event.touches[0];
294
+ return touch ? {
295
+ x: touch.clientX,
296
+ y: touch.clientY
297
+ } : null;
298
+ }
299
+ return {
300
+ x: event.clientX,
301
+ y: event.clientY
302
+ };
303
+ }
304
+ function isTouchLikeEvent(event) {
305
+ if ('touches' in event) {
306
+ return true;
307
+ }
308
+ return event.pointerType === 'touch';
309
+ }
310
+ function getTargetAtPoint(position, nativeEvent) {
311
+ const doc = ownerDocument(elementRef.current);
312
+ const elementAtPoint = getElementAtPoint(doc, position.x, position.y);
313
+ const target = elementAtPoint ?? getTarget(nativeEvent);
314
+ return target;
315
+ }
316
+ function findGestureScrollableTouchTarget(target, root) {
317
+ if (hasHorizontal && !hasVertical) {
318
+ return findScrollableTouchTarget(target, root, 'horizontal');
319
+ }
320
+ if (hasVertical && !hasHorizontal) {
321
+ return findScrollableTouchTarget(target, root, 'vertical');
322
+ }
323
+ return findScrollableTouchTarget(target, root, 'vertical') ?? findScrollableTouchTarget(target, root, 'horizontal');
324
+ }
325
+ function startSwipeAtPosition(event, position, startOptions) {
326
+ swipeFromScrollableRef.current = false;
327
+ const touchLike = isTouchLikeEvent(event);
328
+ const target = getTargetAtPoint(position, event.nativeEvent);
329
+ const doc = ownerDocument(elementRef.current);
330
+ const body = doc.body;
331
+ const scrollableTarget = touchLike && body ? findGestureScrollableTouchTarget(target, body) : null;
332
+ const ignoreScrollableTarget = startOptions?.ignoreScrollableTarget ?? false;
333
+ if (scrollableTarget && !ignoreScrollableTarget) {
334
+ return false;
335
+ }
336
+ swipeFromScrollableRef.current = Boolean(scrollableTarget && ignoreScrollableTarget);
337
+ const isInteractiveElement = target ? target.closest(ignoreSelector) : false;
338
+ if (isInteractiveElement && (!touchLike || ignoreSelectorWhenTouch)) {
339
+ return false;
340
+ }
341
+ const element = elementRef.current;
342
+ if (ignoreScrollableAncestors && element && target && scrollAxes.length > 0) {
343
+ const ignoreAncestors = startOptions?.ignoreScrollableAncestors ?? false;
344
+ if (!ignoreAncestors && hasScrollableAncestor(target, element, scrollAxes)) {
345
+ return false;
346
+ }
347
+ }
348
+ cancelledSwipeRef.current = false;
349
+ intendedSwipeDirectionRef.current = undefined;
350
+ maxSwipeDisplacementRef.current = 0;
351
+ dragStartPosRef.current = position;
352
+ swipeStartTimeRef.current = getValidTimeStamp(event.timeStamp);
353
+ swipeCancelBaselineRef.current = position;
354
+ lastMovePosRef.current = position;
355
+ if (element) {
356
+ elementSizeRef.current = {
357
+ width: element.offsetWidth,
358
+ height: element.offsetHeight
359
+ };
360
+ resolveSwipeThreshold(primaryDirection);
361
+ const transform = getElementTransform(element);
362
+ initialTransformRef.current = transform;
363
+ dragOffsetRef.current = {
364
+ x: transform.x,
365
+ y: transform.y
366
+ };
367
+ setInitialTransform(transform);
368
+ setDragOffset({
369
+ x: transform.x,
370
+ y: transform.y
371
+ });
372
+ recordDragSample({
373
+ x: transform.x,
374
+ y: transform.y
375
+ }, swipeStartTimeRef.current);
376
+ if (!('touches' in event)) {
377
+ safelyChangePointerCapture(element, event.pointerId, 'setPointerCapture');
378
+ }
379
+ }
380
+ onSwipeStart?.(event.nativeEvent);
381
+ setSwiping(true);
382
+ setIsRealSwipe(false);
383
+ setLockedDirection(null);
384
+ isFirstPointerMoveRef.current = true;
385
+ updateSwipeProgress(0);
386
+ return true;
387
+ }
388
+ function resetPendingSwipeState() {
389
+ clearPendingSwipeStartState();
390
+ swipeFromScrollableRef.current = false;
391
+ lastMovePosRef.current = null;
392
+ }
393
+ function clearPendingSwipeStartState() {
394
+ pendingSwipeRef.current = false;
395
+ pendingSwipeStartPosRef.current = null;
396
+ }
397
+ function cancelSwipeInteraction(event) {
398
+ resetPendingSwipeState();
399
+ if (!isSwipingRef.current) {
400
+ return;
401
+ }
402
+ setSwiping(false);
403
+ setIsRealSwipe(false);
404
+ setLockedDirection(null);
405
+ const resolvedInitialTransform = trackDrag ? initialTransform : initialTransformRef.current;
406
+ dragOffsetRef.current = {
407
+ x: resolvedInitialTransform.x,
408
+ y: resolvedInitialTransform.y
409
+ };
410
+ setDragOffset({
411
+ x: resolvedInitialTransform.x,
412
+ y: resolvedInitialTransform.y
413
+ });
414
+ setCurrentSwipeDirection(undefined);
415
+ sawPrimaryButtonsOnMoveRef.current = false;
416
+ const element = elementRef.current;
417
+ if (element) {
418
+ safelyChangePointerCapture(element, event.pointerId, 'releasePointerCapture');
419
+ }
420
+ updateSwipeProgress(0, {
421
+ deltaX: 0,
422
+ deltaY: 0,
423
+ direction: undefined
424
+ });
425
+ }
426
+ function applyDirectionalDamping(deltaX, deltaY) {
427
+ const exponent = value => value >= 0 ? value ** 0.5 : -(Math.abs(value) ** 0.5);
428
+ const dampAxis = (delta, allowNegative, allowPositive) => {
429
+ if (!allowNegative && delta < 0) {
430
+ return exponent(delta);
431
+ }
432
+ if (!allowPositive && delta > 0) {
433
+ return exponent(delta);
434
+ }
435
+ return delta;
436
+ };
437
+ const newDeltaX = hasHorizontal ? dampAxis(deltaX, allowLeft, allowRight) : exponent(deltaX);
438
+ const newDeltaY = hasVertical ? dampAxis(deltaY, allowUp, allowDown) : exponent(deltaY);
439
+ return {
440
+ x: newDeltaX,
441
+ y: newDeltaY
442
+ };
443
+ }
444
+ function canSwipeFromScrollEdgeOnPendingMove(scrollTarget, deltaX, deltaY) {
445
+ const absDeltaX = Math.abs(deltaX);
446
+ const absDeltaY = Math.abs(deltaY);
447
+ const useVerticalAxis = hasVertical && deltaY !== 0 && (!hasHorizontal || absDeltaY >= absDeltaX);
448
+ if (useVerticalAxis) {
449
+ const maxScrollTop = Math.max(0, scrollTarget.scrollHeight - scrollTarget.clientHeight);
450
+ const atTop = scrollTarget.scrollTop <= 0;
451
+ const atBottom = scrollTarget.scrollTop >= maxScrollTop;
452
+ const movingDown = deltaY > 0;
453
+ const movingUp = deltaY < 0;
454
+ const canSwipeDown = movingDown && atTop && allowDown;
455
+ const canSwipeUp = movingUp && atBottom && allowUp;
456
+ return canSwipeDown || canSwipeUp;
457
+ }
458
+ const useHorizontalAxis = hasHorizontal && deltaX !== 0 && (!hasVertical || absDeltaX > absDeltaY);
459
+ if (useHorizontalAxis) {
460
+ const maxScrollLeft = Math.max(0, scrollTarget.scrollWidth - scrollTarget.clientWidth);
461
+ const atLeft = scrollTarget.scrollLeft <= 0;
462
+ const atRight = scrollTarget.scrollLeft >= maxScrollLeft;
463
+ const movingRight = deltaX > 0;
464
+ const movingLeft = deltaX < 0;
465
+ const canSwipeRight = movingRight && atLeft && allowRight;
466
+ const canSwipeLeft = movingLeft && atRight && allowLeft;
467
+ return canSwipeRight || canSwipeLeft;
468
+ }
469
+ return null;
470
+ }
471
+ const handleStart = useStableCallback(event => {
472
+ if (!enabled) {
473
+ return;
474
+ }
475
+ if (event.defaultPrevented || event.nativeEvent.defaultPrevented) {
476
+ return;
477
+ }
478
+ if (!('touches' in event) && event.button !== 0) {
479
+ return;
480
+ }
481
+ const startPos = getPrimaryPointerPosition(event);
482
+ if (!startPos) {
483
+ return;
484
+ }
485
+ pendingSwipeRef.current = true;
486
+ pendingSwipeStartPosRef.current = startPos;
487
+ swipeFromScrollableRef.current = false;
488
+ sawPrimaryButtonsOnMoveRef.current = false;
489
+ const allowedToStart = canStart ? canStart(startPos, {
490
+ nativeEvent: event.nativeEvent,
491
+ direction: primaryDirection
492
+ }) : true;
493
+ if (!allowedToStart) {
494
+ return;
495
+ }
496
+ if (startSwipeAtPosition(event, startPos)) {
497
+ clearPendingSwipeStartState();
498
+ }
499
+ });
500
+ function handleMoveCore(event, position, movement) {
501
+ if (!enabled || !isSwipingRef.current) {
502
+ return;
503
+ }
504
+ const target = getTarget(event.nativeEvent);
505
+ if (isTouchLikeEvent(event) && !swipeFromScrollableRef.current) {
506
+ const boundaryElement = event.currentTarget;
507
+ if (findGestureScrollableTouchTarget(target, boundaryElement)) {
508
+ return;
509
+ }
510
+ }
511
+ if (!('touches' in event)) {
512
+ // Prevent text selection on Safari
513
+ event.preventDefault();
514
+ }
515
+ if (isFirstPointerMoveRef.current) {
516
+ // Adjust the starting position to the current position on the first move
517
+ // to account for the delay between pointerdown and the first pointermove on iOS.
518
+ dragStartPosRef.current = position;
519
+ const moveTime = getValidTimeStamp(event.timeStamp);
520
+ if (moveTime !== null) {
521
+ swipeStartTimeRef.current = moveTime;
522
+ }
523
+ isFirstPointerMoveRef.current = false;
524
+ }
525
+ const clientX = position.x;
526
+ const clientY = position.y;
527
+ const movementX = movement.x;
528
+ const movementY = movement.y;
529
+ if (movementY < 0 && clientY > swipeCancelBaselineRef.current.y || movementY > 0 && clientY < swipeCancelBaselineRef.current.y) {
530
+ swipeCancelBaselineRef.current = {
531
+ x: swipeCancelBaselineRef.current.x,
532
+ y: clientY
533
+ };
534
+ }
535
+ if (movementX < 0 && clientX > swipeCancelBaselineRef.current.x || movementX > 0 && clientX < swipeCancelBaselineRef.current.x) {
536
+ swipeCancelBaselineRef.current = {
537
+ x: clientX,
538
+ y: swipeCancelBaselineRef.current.y
539
+ };
540
+ }
541
+ const deltaX = clientX - dragStartPosRef.current.x;
542
+ const deltaY = clientY - dragStartPosRef.current.y;
543
+ const cancelDeltaY = clientY - swipeCancelBaselineRef.current.y;
544
+ const cancelDeltaX = clientX - swipeCancelBaselineRef.current.x;
545
+ if (!isRealSwipe) {
546
+ const movementDistance = Math.sqrt(deltaX * deltaX + deltaY * deltaY);
547
+ if (movementDistance >= MIN_DRAG_THRESHOLD) {
548
+ setIsRealSwipe(true);
549
+ if (lockedDirection === null) {
550
+ if (hasHorizontal && hasVertical) {
551
+ const absX = Math.abs(deltaX);
552
+ const absY = Math.abs(deltaY);
553
+ setLockedDirection(absX > absY ? 'horizontal' : 'vertical');
554
+ }
555
+ }
556
+ }
557
+ }
558
+ let candidate;
559
+ if (!intendedSwipeDirectionRef.current) {
560
+ if (lockedDirection === 'vertical') {
561
+ if (deltaY > 0) {
562
+ candidate = 'down';
563
+ } else if (deltaY < 0) {
564
+ candidate = 'up';
565
+ }
566
+ } else if (lockedDirection === 'horizontal') {
567
+ if (deltaX > 0) {
568
+ candidate = 'right';
569
+ } else if (deltaX < 0) {
570
+ candidate = 'left';
571
+ }
572
+ } else if (Math.abs(deltaX) >= Math.abs(deltaY)) {
573
+ candidate = deltaX > 0 ? 'right' : 'left';
574
+ } else {
575
+ candidate = deltaY > 0 ? 'down' : 'up';
576
+ }
577
+ if (candidate) {
578
+ const isAllowed = candidate === 'left' && allowLeft || candidate === 'right' && allowRight || candidate === 'up' && allowUp || candidate === 'down' && allowDown;
579
+ if (isAllowed) {
580
+ intendedSwipeDirectionRef.current = candidate;
581
+ maxSwipeDisplacementRef.current = getDisplacement(candidate, deltaX, deltaY);
582
+ setCurrentSwipeDirection(candidate);
583
+ resolveSwipeThreshold(candidate);
584
+ }
585
+ }
586
+ } else {
587
+ const direction = intendedSwipeDirectionRef.current;
588
+ const currentDisplacement = getDisplacement(direction, cancelDeltaX, cancelDeltaY);
589
+ if (currentDisplacement > swipeThresholdRef.current) {
590
+ cancelledSwipeRef.current = false;
591
+ setCurrentSwipeDirection(direction);
592
+ } else if (!(allowLeft && allowRight) && !(allowUp && allowDown) && maxSwipeDisplacementRef.current - currentDisplacement >= REVERSE_CANCEL_THRESHOLD) {
593
+ // Mark that a change-of-mind has occurred
594
+ cancelledSwipeRef.current = true;
595
+ }
596
+ }
597
+ const dampedDelta = applyDirectionalDamping(deltaX, deltaY);
598
+ let newOffsetX = initialTransformRef.current.x;
599
+ let newOffsetY = initialTransformRef.current.y;
600
+ if (lockedDirection === 'horizontal') {
601
+ if (hasHorizontal) {
602
+ newOffsetX += dampedDelta.x;
603
+ }
604
+ } else if (lockedDirection === 'vertical') {
605
+ if (hasVertical) {
606
+ newOffsetY += dampedDelta.y;
607
+ }
608
+ } else {
609
+ if (hasHorizontal) {
610
+ newOffsetX += dampedDelta.x;
611
+ }
612
+ if (hasVertical) {
613
+ newOffsetY += dampedDelta.y;
614
+ }
615
+ }
616
+ dragOffsetRef.current = {
617
+ x: newOffsetX,
618
+ y: newOffsetY
619
+ };
620
+ if (trackDrag) {
621
+ setDragOffset({
622
+ x: newOffsetX,
623
+ y: newOffsetY
624
+ });
625
+ }
626
+ recordDragSample({
627
+ x: newOffsetX,
628
+ y: newOffsetY
629
+ }, getValidTimeStamp(event.timeStamp));
630
+ const dragDeltaX = newOffsetX - initialTransformRef.current.x;
631
+ const dragDeltaY = newOffsetY - initialTransformRef.current.y;
632
+ const swipeDirectionDetails = intendedSwipeDirectionRef.current;
633
+ const progressDirection = primaryDirection ?? intendedSwipeDirectionRef.current;
634
+ if (!progressDirection) {
635
+ updateSwipeProgress(0, {
636
+ deltaX: dragDeltaX,
637
+ deltaY: dragDeltaY,
638
+ direction: swipeDirectionDetails
639
+ });
640
+ return;
641
+ }
642
+ const size = progressDirection === 'left' || progressDirection === 'right' ? elementSizeRef.current.width : elementSizeRef.current.height;
643
+ const scale = initialTransformRef.current.scale || 1;
644
+ if (size <= 0 || scale <= 0) {
645
+ updateSwipeProgress(0, {
646
+ deltaX: dragDeltaX,
647
+ deltaY: dragDeltaY,
648
+ direction: swipeDirectionDetails
649
+ });
650
+ return;
651
+ }
652
+ const progressDisplacement = getDisplacement(progressDirection, newOffsetX - initialTransformRef.current.x, newOffsetY - initialTransformRef.current.y);
653
+ if (progressDisplacement <= 0) {
654
+ updateSwipeProgress(0, {
655
+ deltaX: dragDeltaX,
656
+ deltaY: dragDeltaY,
657
+ direction: swipeDirectionDetails
658
+ });
659
+ return;
660
+ }
661
+ updateSwipeProgress(progressDisplacement / (size * scale), {
662
+ deltaX: dragDeltaX,
663
+ deltaY: dragDeltaY,
664
+ direction: swipeDirectionDetails
665
+ });
666
+ }
667
+ const handleMove = useStableCallback(event => {
668
+ const currentPos = getPrimaryPointerPosition(event);
669
+ if (!currentPos) {
670
+ return;
671
+ }
672
+ if (!('touches' in event)) {
673
+ const hasPrimaryButton = hasPrimaryMouseButton(event.buttons);
674
+ if (hasPrimaryButton) {
675
+ sawPrimaryButtonsOnMoveRef.current = true;
676
+ }
677
+
678
+ // Cancel the swipe if a non-primary button takes over the interaction.
679
+ // This handles cases where a right-click interrupts dragging.
680
+ const lostPrimaryButtonDuringSwipe = event.buttons === 0 && sawPrimaryButtonsOnMoveRef.current;
681
+ if (event.buttons !== 0 && !hasPrimaryButton || lostPrimaryButtonDuringSwipe) {
682
+ cancelSwipeInteraction(event);
683
+ return;
684
+ }
685
+ }
686
+ if (!isSwiping && pendingSwipeRef.current) {
687
+ if (!isTouchLikeEvent(event) && (event.defaultPrevented || event.nativeEvent.defaultPrevented)) {
688
+ resetPendingSwipeState();
689
+ return;
690
+ }
691
+ const allowedToStart = canStart ? canStart(currentPos, {
692
+ nativeEvent: event.nativeEvent,
693
+ direction: primaryDirection
694
+ }) : true;
695
+ if (allowedToStart) {
696
+ const pendingStartPos = pendingSwipeStartPosRef.current;
697
+ let ignoreScrollableOnStart = false;
698
+ if (isTouchLikeEvent(event)) {
699
+ const element = elementRef.current;
700
+ if (pendingStartPos && element) {
701
+ const target = getTargetAtPoint(currentPos, event.nativeEvent);
702
+ const doc = ownerDocument(element);
703
+ const body = doc.body;
704
+ const scrollTarget = body ? findGestureScrollableTouchTarget(target, body) : null;
705
+ if (scrollTarget && (contains(element, scrollTarget) || contains(scrollTarget, element))) {
706
+ const deltaX = currentPos.x - pendingStartPos.x;
707
+ const deltaY = currentPos.y - pendingStartPos.y;
708
+ const canSwipeFromEdge = canSwipeFromScrollEdgeOnPendingMove(scrollTarget, deltaX, deltaY);
709
+ if (canSwipeFromEdge === false) {
710
+ return;
711
+ }
712
+ if (canSwipeFromEdge === true) {
713
+ ignoreScrollableOnStart = true;
714
+ }
715
+ }
716
+ }
717
+ }
718
+ const started = startSwipeAtPosition(event, currentPos, {
719
+ ignoreScrollableTarget: ignoreScrollableOnStart,
720
+ ignoreScrollableAncestors: ignoreScrollableOnStart
721
+ });
722
+ if (started) {
723
+ if (pendingStartPos && ignoreScrollableOnStart) {
724
+ // Preserve displacement between touchstart and the move that activates swipe from
725
+ // a scroll-edge so quick flicks can dismiss.
726
+ clearPendingSwipeStartState();
727
+ dragStartPosRef.current = pendingStartPos;
728
+ swipeCancelBaselineRef.current = pendingStartPos;
729
+ lastMovePosRef.current = pendingStartPos;
730
+ isFirstPointerMoveRef.current = false;
731
+ } else {
732
+ // Start from the current in-bounds position without dropping follow-up move
733
+ // displacement; this avoids jumps when entering from outside the element while
734
+ // keeping swipe tracking responsive on the next move.
735
+ clearPendingSwipeStartState();
736
+ swipeFromScrollableRef.current = false;
737
+ }
738
+ }
739
+ }
740
+ }
741
+ const previousPos = lastMovePosRef.current;
742
+ const movement = previousPos === null ? {
743
+ x: 0,
744
+ y: 0
745
+ } : {
746
+ x: currentPos.x - previousPos.x,
747
+ y: currentPos.y - previousPos.y
748
+ };
749
+ lastMovePosRef.current = currentPos;
750
+ handleMoveCore(event, currentPos, movement);
751
+ });
752
+ const handleEnd = useStableCallback(event => {
753
+ if (!enabled) {
754
+ return;
755
+ }
756
+ const resolvedDragOffset = dragOffsetRef.current;
757
+ const resolvedInitialTransform = initialTransformRef.current;
758
+ const releaseDeltaX = resolvedDragOffset.x - resolvedInitialTransform.x;
759
+ const releaseDeltaY = resolvedDragOffset.y - resolvedInitialTransform.y;
760
+ const progressDetails = {
761
+ deltaX: releaseDeltaX,
762
+ deltaY: releaseDeltaY,
763
+ direction: currentSwipeDirection ?? intendedSwipeDirectionRef.current
764
+ };
765
+ if (!isSwipingRef.current) {
766
+ resetPendingSwipeState();
767
+ updateSwipeProgress(0, progressDetails);
768
+ return;
769
+ }
770
+ setSwiping(false);
771
+ setIsRealSwipe(false);
772
+ setLockedDirection(null);
773
+ resetPendingSwipeState();
774
+ sawPrimaryButtonsOnMoveRef.current = false;
775
+ const element = elementRef.current;
776
+ if (element) {
777
+ if (!('touches' in event)) {
778
+ safelyChangePointerCapture(element, event.pointerId, 'releasePointerCapture');
779
+ }
780
+ }
781
+ const deltaX = releaseDeltaX;
782
+ const deltaY = releaseDeltaY;
783
+ const startTime = swipeStartTimeRef.current;
784
+ const endTime = getValidTimeStamp(event.timeStamp);
785
+ const durationMs = startTime !== null && endTime !== null && endTime > startTime ? endTime - startTime : 0;
786
+ const velocityDurationMs = durationMs > 0 ? Math.max(durationMs, MIN_VELOCITY_DURATION_MS) : 0;
787
+ const velocityX = velocityDurationMs > 0 ? deltaX / velocityDurationMs : 0;
788
+ const velocityY = velocityDurationMs > 0 ? deltaY / velocityDurationMs : 0;
789
+ let releaseVelocityX = lastDragVelocityRef.current.x;
790
+ let releaseVelocityY = lastDragVelocityRef.current.y;
791
+ const lastSample = lastDragSampleRef.current;
792
+ if (lastSample && endTime !== null && endTime >= lastSample.time) {
793
+ const ageMs = endTime - lastSample.time;
794
+ if (ageMs <= MAX_RELEASE_VELOCITY_AGE_MS) {
795
+ const sampleDurationMs = Math.max(ageMs, MIN_RELEASE_VELOCITY_DURATION_MS);
796
+ const deltaFromLastSampleX = resolvedDragOffset.x - lastSample.x;
797
+ const deltaFromLastSampleY = resolvedDragOffset.y - lastSample.y;
798
+ const sampleVelocityX = deltaFromLastSampleX / sampleDurationMs;
799
+ const sampleVelocityY = deltaFromLastSampleY / sampleDurationMs;
800
+ if (sampleVelocityX !== 0) {
801
+ releaseVelocityX = sampleVelocityX;
802
+ }
803
+ if (sampleVelocityY !== 0) {
804
+ releaseVelocityY = sampleVelocityY;
805
+ }
806
+ } else {
807
+ releaseVelocityX = 0;
808
+ releaseVelocityY = 0;
809
+ }
810
+ }
811
+ const releaseDecision = onRelease?.({
812
+ event: event.nativeEvent,
813
+ direction: currentSwipeDirection ?? intendedSwipeDirectionRef.current,
814
+ deltaX,
815
+ deltaY,
816
+ velocityX,
817
+ velocityY,
818
+ releaseVelocityX,
819
+ releaseVelocityY
820
+ });
821
+ const hasReleaseDecision = typeof releaseDecision === 'boolean';
822
+ if (cancelledSwipeRef.current && !hasReleaseDecision) {
823
+ dragOffsetRef.current = {
824
+ x: resolvedInitialTransform.x,
825
+ y: resolvedInitialTransform.y
826
+ };
827
+ setDragOffset({
828
+ x: resolvedInitialTransform.x,
829
+ y: resolvedInitialTransform.y
830
+ });
831
+ setCurrentSwipeDirection(undefined);
832
+ updateSwipeProgress(0, progressDetails);
833
+ return;
834
+ }
835
+ let shouldClose = false;
836
+ let dismissDirection;
837
+ if (hasReleaseDecision) {
838
+ shouldClose = releaseDecision;
839
+ dismissDirection = currentSwipeDirection ?? intendedSwipeDirectionRef.current ?? primaryDirection;
840
+ } else {
841
+ for (const direction of directions) {
842
+ switch (direction) {
843
+ case 'right':
844
+ if (deltaX > swipeThresholdRef.current) {
845
+ shouldClose = true;
846
+ dismissDirection = 'right';
847
+ }
848
+ break;
849
+ case 'left':
850
+ if (deltaX < -swipeThresholdRef.current) {
851
+ shouldClose = true;
852
+ dismissDirection = 'left';
853
+ }
854
+ break;
855
+ case 'down':
856
+ if (deltaY > swipeThresholdRef.current) {
857
+ shouldClose = true;
858
+ dismissDirection = 'down';
859
+ }
860
+ break;
861
+ case 'up':
862
+ if (deltaY < -swipeThresholdRef.current) {
863
+ shouldClose = true;
864
+ dismissDirection = 'up';
865
+ }
866
+ break;
867
+ default:
868
+ break;
869
+ }
870
+ if (shouldClose) {
871
+ break;
872
+ }
873
+ }
874
+ }
875
+ if (shouldClose && dismissDirection) {
876
+ setCurrentSwipeDirection(dismissDirection);
877
+ setDragDismissed(true);
878
+ onDismiss?.(event.nativeEvent, {
879
+ direction: dismissDirection
880
+ });
881
+ } else {
882
+ dragOffsetRef.current = {
883
+ x: resolvedInitialTransform.x,
884
+ y: resolvedInitialTransform.y
885
+ };
886
+ setDragOffset({
887
+ x: resolvedInitialTransform.x,
888
+ y: resolvedInitialTransform.y
889
+ });
890
+ setCurrentSwipeDirection(undefined);
891
+ updateSwipeProgress(0, progressDetails);
892
+ }
893
+ });
894
+ const getDragStyles = React.useCallback(() => {
895
+ const resolvedDragOffset = trackDrag ? dragOffset : dragOffsetRef.current;
896
+ const resolvedInitialTransform = trackDrag ? initialTransform : initialTransformRef.current;
897
+ if (!isSwiping && resolvedDragOffset.x === resolvedInitialTransform.x && resolvedDragOffset.y === resolvedInitialTransform.y && !dragDismissed) {
898
+ return {
899
+ [movementCssVars.x]: '0px',
900
+ [movementCssVars.y]: '0px'
901
+ };
902
+ }
903
+ const deltaX = resolvedDragOffset.x - resolvedInitialTransform.x;
904
+ const deltaY = resolvedDragOffset.y - resolvedInitialTransform.y;
905
+ return {
906
+ transition: isSwiping ? 'none' : undefined,
907
+ // While swiping, freeze the element at its current visual transform so it doesn't snap to the
908
+ // end position.
909
+ transform: isSwiping ? `translateX(${resolvedDragOffset.x}px) translateY(${resolvedDragOffset.y}px) scale(${resolvedInitialTransform.scale})` : undefined,
910
+ [movementCssVars.x]: `${deltaX}px`,
911
+ [movementCssVars.y]: `${deltaY}px`
912
+ };
913
+ }, [dragDismissed, dragOffset, initialTransform, isSwiping, movementCssVars, trackDrag]);
914
+ const getPointerProps = React.useCallback(() => {
915
+ if (!enabled) {
916
+ return {};
917
+ }
918
+ return {
919
+ onPointerDown: handleStart,
920
+ onPointerMove: handleMove,
921
+ onPointerUp: handleEnd,
922
+ onPointerCancel: handleEnd
923
+ };
924
+ }, [enabled, handleEnd, handleMove, handleStart]);
925
+ const getTouchProps = React.useCallback(() => {
926
+ if (!enabled) {
927
+ return {};
928
+ }
929
+ return {
930
+ onTouchStart: handleStart,
931
+ onTouchMove: handleMove,
932
+ onTouchEnd: handleEnd,
933
+ onTouchCancel: handleEnd
934
+ };
935
+ }, [enabled, handleEnd, handleMove, handleStart]);
936
+ return {
937
+ swiping: isSwiping,
938
+ swipeDirection: currentSwipeDirection,
939
+ dragDismissed,
940
+ getPointerProps,
941
+ getTouchProps,
942
+ getDragStyles,
943
+ reset
944
+ };
945
+ }