react-aria 3.50.0 → 3.51.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 (1178) hide show
  1. package/dist/exports/index.cjs +15 -0
  2. package/dist/exports/index.cjs.map +1 -1
  3. package/dist/exports/index.js +9 -1
  4. package/dist/exports/index.js.map +1 -1
  5. package/dist/exports/index.mjs +9 -1
  6. package/dist/exports/index.mjs.map +1 -1
  7. package/dist/exports/private/utils/domHelpers.cjs +1 -0
  8. package/dist/exports/private/utils/domHelpers.cjs.map +1 -1
  9. package/dist/exports/private/utils/domHelpers.js +2 -2
  10. package/dist/exports/private/utils/domHelpers.js.map +1 -1
  11. package/dist/exports/private/utils/domHelpers.mjs +2 -2
  12. package/dist/exports/private/utils/domHelpers.mjs.map +1 -1
  13. package/dist/exports/private/utils/platform.cjs +1 -0
  14. package/dist/exports/private/utils/platform.cjs.map +1 -1
  15. package/dist/exports/private/utils/platform.js +2 -2
  16. package/dist/exports/private/utils/platform.js.map +1 -1
  17. package/dist/exports/private/utils/platform.mjs +2 -2
  18. package/dist/exports/private/utils/platform.mjs.map +1 -1
  19. package/dist/exports/private/utils/shadowdom/DOMFunctions.cjs +1 -0
  20. package/dist/exports/private/utils/shadowdom/DOMFunctions.cjs.map +1 -1
  21. package/dist/exports/private/utils/shadowdom/DOMFunctions.js +2 -2
  22. package/dist/exports/private/utils/shadowdom/DOMFunctions.js.map +1 -1
  23. package/dist/exports/private/utils/shadowdom/DOMFunctions.mjs +2 -2
  24. package/dist/exports/private/utils/shadowdom/DOMFunctions.mjs.map +1 -1
  25. package/dist/exports/useContextMenu.cjs +22 -0
  26. package/dist/exports/useContextMenu.cjs.map +1 -0
  27. package/dist/exports/useContextMenu.js +17 -0
  28. package/dist/exports/useContextMenu.js.map +1 -0
  29. package/dist/exports/useContextMenu.mjs +17 -0
  30. package/dist/exports/useContextMenu.mjs.map +1 -0
  31. package/dist/exports/usePreviewTrigger.cjs +22 -0
  32. package/dist/exports/usePreviewTrigger.cjs.map +1 -0
  33. package/dist/exports/usePreviewTrigger.js +17 -0
  34. package/dist/exports/usePreviewTrigger.js.map +1 -0
  35. package/dist/exports/usePreviewTrigger.mjs +17 -0
  36. package/dist/exports/usePreviewTrigger.mjs.map +1 -0
  37. package/dist/exports/useTokenField.cjs +27 -0
  38. package/dist/exports/useTokenField.cjs.map +1 -0
  39. package/dist/exports/useTokenField.js +19 -0
  40. package/dist/exports/useTokenField.js.map +1 -0
  41. package/dist/exports/useTokenField.mjs +19 -0
  42. package/dist/exports/useTokenField.mjs.map +1 -0
  43. package/dist/private/actiongroup/useActionGroup.cjs +24 -19
  44. package/dist/private/actiongroup/useActionGroup.cjs.map +1 -1
  45. package/dist/private/actiongroup/useActionGroup.js +24 -19
  46. package/dist/private/actiongroup/useActionGroup.js.map +1 -1
  47. package/dist/private/actiongroup/useActionGroup.mjs +24 -19
  48. package/dist/private/actiongroup/useActionGroup.mjs.map +1 -1
  49. package/dist/private/autocomplete/useAutocomplete.cjs +2 -1
  50. package/dist/private/autocomplete/useAutocomplete.cjs.map +1 -1
  51. package/dist/private/autocomplete/useAutocomplete.js +2 -1
  52. package/dist/private/autocomplete/useAutocomplete.js.map +1 -1
  53. package/dist/private/autocomplete/useAutocomplete.mjs +2 -1
  54. package/dist/private/autocomplete/useAutocomplete.mjs.map +1 -1
  55. package/dist/private/breadcrumbs/useBreadcrumbItem.cjs +2 -0
  56. package/dist/private/breadcrumbs/useBreadcrumbItem.cjs.map +1 -1
  57. package/dist/private/breadcrumbs/useBreadcrumbItem.js +2 -0
  58. package/dist/private/breadcrumbs/useBreadcrumbItem.js.map +1 -1
  59. package/dist/private/breadcrumbs/useBreadcrumbItem.mjs +2 -0
  60. package/dist/private/breadcrumbs/useBreadcrumbItem.mjs.map +1 -1
  61. package/dist/private/button/useButton.cjs +2 -1
  62. package/dist/private/button/useButton.cjs.map +1 -1
  63. package/dist/private/button/useButton.js +2 -1
  64. package/dist/private/button/useButton.js.map +1 -1
  65. package/dist/private/button/useButton.mjs +2 -1
  66. package/dist/private/button/useButton.mjs.map +1 -1
  67. package/dist/private/button/useToggleButtonGroup.cjs +3 -0
  68. package/dist/private/button/useToggleButtonGroup.cjs.map +1 -1
  69. package/dist/private/button/useToggleButtonGroup.js +3 -0
  70. package/dist/private/button/useToggleButtonGroup.js.map +1 -1
  71. package/dist/private/button/useToggleButtonGroup.mjs +3 -0
  72. package/dist/private/button/useToggleButtonGroup.mjs.map +1 -1
  73. package/dist/private/calendar/useCalendarCell.cjs +3 -0
  74. package/dist/private/calendar/useCalendarCell.cjs.map +1 -1
  75. package/dist/private/calendar/useCalendarCell.js +3 -0
  76. package/dist/private/calendar/useCalendarCell.js.map +1 -1
  77. package/dist/private/calendar/useCalendarCell.mjs +3 -0
  78. package/dist/private/calendar/useCalendarCell.mjs.map +1 -1
  79. package/dist/private/calendar/useCalendarGrid.cjs +47 -52
  80. package/dist/private/calendar/useCalendarGrid.cjs.map +1 -1
  81. package/dist/private/calendar/useCalendarGrid.js +47 -52
  82. package/dist/private/calendar/useCalendarGrid.js.map +1 -1
  83. package/dist/private/calendar/useCalendarGrid.mjs +47 -52
  84. package/dist/private/calendar/useCalendarGrid.mjs.map +1 -1
  85. package/dist/private/calendar/useRangeCalendar.cjs +1 -0
  86. package/dist/private/calendar/useRangeCalendar.cjs.map +1 -1
  87. package/dist/private/calendar/useRangeCalendar.js +1 -0
  88. package/dist/private/calendar/useRangeCalendar.js.map +1 -1
  89. package/dist/private/calendar/useRangeCalendar.mjs +1 -0
  90. package/dist/private/calendar/useRangeCalendar.mjs.map +1 -1
  91. package/dist/private/collections/CollectionBuilder.cjs +8 -3
  92. package/dist/private/collections/CollectionBuilder.cjs.map +1 -1
  93. package/dist/private/collections/CollectionBuilder.js +8 -3
  94. package/dist/private/collections/CollectionBuilder.js.map +1 -1
  95. package/dist/private/collections/CollectionBuilder.mjs +8 -3
  96. package/dist/private/collections/CollectionBuilder.mjs.map +1 -1
  97. package/dist/private/collections/Document.cjs +4 -0
  98. package/dist/private/collections/Document.cjs.map +1 -1
  99. package/dist/private/collections/Document.js +4 -0
  100. package/dist/private/collections/Document.js.map +1 -1
  101. package/dist/private/collections/Document.mjs +4 -0
  102. package/dist/private/collections/Document.mjs.map +1 -1
  103. package/dist/private/collections/Hidden.cjs +1 -0
  104. package/dist/private/collections/Hidden.cjs.map +1 -1
  105. package/dist/private/collections/Hidden.js +1 -0
  106. package/dist/private/collections/Hidden.js.map +1 -1
  107. package/dist/private/collections/Hidden.mjs +1 -0
  108. package/dist/private/collections/Hidden.mjs.map +1 -1
  109. package/dist/private/collections/useCachedChildren.cjs +1 -0
  110. package/dist/private/collections/useCachedChildren.cjs.map +1 -1
  111. package/dist/private/collections/useCachedChildren.js +1 -0
  112. package/dist/private/collections/useCachedChildren.js.map +1 -1
  113. package/dist/private/collections/useCachedChildren.mjs +1 -0
  114. package/dist/private/collections/useCachedChildren.mjs.map +1 -1
  115. package/dist/private/color/useColorArea.cjs +31 -34
  116. package/dist/private/color/useColorArea.cjs.map +1 -1
  117. package/dist/private/color/useColorArea.js +31 -34
  118. package/dist/private/color/useColorArea.js.map +1 -1
  119. package/dist/private/color/useColorArea.mjs +31 -34
  120. package/dist/private/color/useColorArea.mjs.map +1 -1
  121. package/dist/private/color/useColorSlider.cjs +4 -2
  122. package/dist/private/color/useColorSlider.cjs.map +1 -1
  123. package/dist/private/color/useColorSlider.js +4 -2
  124. package/dist/private/color/useColorSlider.js.map +1 -1
  125. package/dist/private/color/useColorSlider.mjs +4 -2
  126. package/dist/private/color/useColorSlider.mjs.map +1 -1
  127. package/dist/private/color/useColorWheel.cjs +16 -23
  128. package/dist/private/color/useColorWheel.cjs.map +1 -1
  129. package/dist/private/color/useColorWheel.js +16 -23
  130. package/dist/private/color/useColorWheel.js.map +1 -1
  131. package/dist/private/color/useColorWheel.mjs +16 -23
  132. package/dist/private/color/useColorWheel.mjs.map +1 -1
  133. package/dist/private/combobox/useComboBox.cjs +92 -29
  134. package/dist/private/combobox/useComboBox.cjs.map +1 -1
  135. package/dist/private/combobox/useComboBox.js +93 -29
  136. package/dist/private/combobox/useComboBox.js.map +1 -1
  137. package/dist/private/combobox/useComboBox.mjs +92 -29
  138. package/dist/private/combobox/useComboBox.mjs.map +1 -1
  139. package/dist/private/datepicker/useDateField.cjs +3 -6
  140. package/dist/private/datepicker/useDateField.cjs.map +1 -1
  141. package/dist/private/datepicker/useDateField.js +3 -6
  142. package/dist/private/datepicker/useDateField.js.map +1 -1
  143. package/dist/private/datepicker/useDateField.mjs +3 -6
  144. package/dist/private/datepicker/useDateField.mjs.map +1 -1
  145. package/dist/private/datepicker/useDatePickerGroup.cjs +48 -27
  146. package/dist/private/datepicker/useDatePickerGroup.cjs.map +1 -1
  147. package/dist/private/datepicker/useDatePickerGroup.js +49 -28
  148. package/dist/private/datepicker/useDatePickerGroup.js.map +1 -1
  149. package/dist/private/datepicker/useDatePickerGroup.mjs +49 -28
  150. package/dist/private/datepicker/useDatePickerGroup.mjs.map +1 -1
  151. package/dist/private/datepicker/useDateSegment.cjs +21 -16
  152. package/dist/private/datepicker/useDateSegment.cjs.map +1 -1
  153. package/dist/private/datepicker/useDateSegment.js +22 -17
  154. package/dist/private/datepicker/useDateSegment.js.map +1 -1
  155. package/dist/private/datepicker/useDateSegment.mjs +22 -17
  156. package/dist/private/datepicker/useDateSegment.mjs.map +1 -1
  157. package/dist/private/dialog/useDialog.cjs +8 -1
  158. package/dist/private/dialog/useDialog.cjs.map +1 -1
  159. package/dist/private/dialog/useDialog.js +10 -1
  160. package/dist/private/dialog/useDialog.js.map +1 -1
  161. package/dist/private/dialog/useDialog.mjs +8 -1
  162. package/dist/private/dialog/useDialog.mjs.map +1 -1
  163. package/dist/private/dnd/DragManager.cjs +3 -1
  164. package/dist/private/dnd/DragManager.cjs.map +1 -1
  165. package/dist/private/dnd/DragManager.js +3 -1
  166. package/dist/private/dnd/DragManager.js.map +1 -1
  167. package/dist/private/dnd/DragManager.mjs +3 -1
  168. package/dist/private/dnd/DragManager.mjs.map +1 -1
  169. package/dist/private/dnd/useAutoScroll.cjs +3 -1
  170. package/dist/private/dnd/useAutoScroll.cjs.map +1 -1
  171. package/dist/private/dnd/useAutoScroll.js +3 -1
  172. package/dist/private/dnd/useAutoScroll.js.map +1 -1
  173. package/dist/private/dnd/useAutoScroll.mjs +3 -1
  174. package/dist/private/dnd/useAutoScroll.mjs.map +1 -1
  175. package/dist/private/dnd/useDrag.cjs +4 -1
  176. package/dist/private/dnd/useDrag.cjs.map +1 -1
  177. package/dist/private/dnd/useDrag.js +4 -1
  178. package/dist/private/dnd/useDrag.js.map +1 -1
  179. package/dist/private/dnd/useDrag.mjs +4 -1
  180. package/dist/private/dnd/useDrag.mjs.map +1 -1
  181. package/dist/private/dnd/useDraggableItem.cjs +4 -0
  182. package/dist/private/dnd/useDraggableItem.cjs.map +1 -1
  183. package/dist/private/dnd/useDraggableItem.js +4 -0
  184. package/dist/private/dnd/useDraggableItem.js.map +1 -1
  185. package/dist/private/dnd/useDraggableItem.mjs +4 -0
  186. package/dist/private/dnd/useDraggableItem.mjs.map +1 -1
  187. package/dist/private/dnd/useDroppableCollection.cjs +4 -0
  188. package/dist/private/dnd/useDroppableCollection.cjs.map +1 -1
  189. package/dist/private/dnd/useDroppableCollection.js +4 -0
  190. package/dist/private/dnd/useDroppableCollection.js.map +1 -1
  191. package/dist/private/dnd/useDroppableCollection.mjs +4 -0
  192. package/dist/private/dnd/useDroppableCollection.mjs.map +1 -1
  193. package/dist/private/focus/FocusScope.cjs +5 -3
  194. package/dist/private/focus/FocusScope.cjs.map +1 -1
  195. package/dist/private/focus/FocusScope.js +5 -4
  196. package/dist/private/focus/FocusScope.js.map +1 -1
  197. package/dist/private/focus/FocusScope.mjs +5 -3
  198. package/dist/private/focus/FocusScope.mjs.map +1 -1
  199. package/dist/private/focus/useFocusRing.cjs +2 -1
  200. package/dist/private/focus/useFocusRing.cjs.map +1 -1
  201. package/dist/private/focus/useFocusRing.js +2 -1
  202. package/dist/private/focus/useFocusRing.js.map +1 -1
  203. package/dist/private/focus/useFocusRing.mjs +2 -1
  204. package/dist/private/focus/useFocusRing.mjs.map +1 -1
  205. package/dist/private/form/useFormValidation.cjs +6 -0
  206. package/dist/private/form/useFormValidation.cjs.map +1 -1
  207. package/dist/private/form/useFormValidation.js +6 -0
  208. package/dist/private/form/useFormValidation.js.map +1 -1
  209. package/dist/private/form/useFormValidation.mjs +6 -0
  210. package/dist/private/form/useFormValidation.mjs.map +1 -1
  211. package/dist/private/grid/useGrid.cjs +3 -2
  212. package/dist/private/grid/useGrid.cjs.map +1 -1
  213. package/dist/private/grid/useGrid.js +3 -2
  214. package/dist/private/grid/useGrid.js.map +1 -1
  215. package/dist/private/grid/useGrid.mjs +3 -2
  216. package/dist/private/grid/useGrid.mjs.map +1 -1
  217. package/dist/private/grid/useGridCell.cjs +44 -8
  218. package/dist/private/grid/useGridCell.cjs.map +1 -1
  219. package/dist/private/grid/useGridCell.js +44 -8
  220. package/dist/private/grid/useGridCell.js.map +1 -1
  221. package/dist/private/grid/useGridCell.mjs +44 -8
  222. package/dist/private/grid/useGridCell.mjs.map +1 -1
  223. package/dist/private/grid/utils.cjs.map +1 -1
  224. package/dist/private/grid/utils.js.map +1 -1
  225. package/dist/private/grid/utils.mjs.map +1 -1
  226. package/dist/private/gridlist/useGridListItem.cjs +38 -30
  227. package/dist/private/gridlist/useGridListItem.cjs.map +1 -1
  228. package/dist/private/gridlist/useGridListItem.js +38 -30
  229. package/dist/private/gridlist/useGridListItem.js.map +1 -1
  230. package/dist/private/gridlist/useGridListItem.mjs +38 -30
  231. package/dist/private/gridlist/useGridListItem.mjs.map +1 -1
  232. package/dist/private/interactions/PressResponder.cjs +1 -0
  233. package/dist/private/interactions/PressResponder.cjs.map +1 -1
  234. package/dist/private/interactions/PressResponder.js +1 -0
  235. package/dist/private/interactions/PressResponder.js.map +1 -1
  236. package/dist/private/interactions/PressResponder.mjs +1 -0
  237. package/dist/private/interactions/PressResponder.mjs.map +1 -1
  238. package/dist/private/interactions/Pressable.cjs +1 -0
  239. package/dist/private/interactions/Pressable.cjs.map +1 -1
  240. package/dist/private/interactions/Pressable.js +1 -0
  241. package/dist/private/interactions/Pressable.js.map +1 -1
  242. package/dist/private/interactions/Pressable.mjs +1 -0
  243. package/dist/private/interactions/Pressable.mjs.map +1 -1
  244. package/dist/private/interactions/createEventHandler.cjs +3 -2
  245. package/dist/private/interactions/createEventHandler.cjs.map +1 -1
  246. package/dist/private/interactions/createEventHandler.js +3 -2
  247. package/dist/private/interactions/createEventHandler.js.map +1 -1
  248. package/dist/private/interactions/createEventHandler.mjs +3 -2
  249. package/dist/private/interactions/createEventHandler.mjs.map +1 -1
  250. package/dist/private/interactions/createKeyboardShortcutHandler.cjs +130 -0
  251. package/dist/private/interactions/createKeyboardShortcutHandler.cjs.map +1 -0
  252. package/dist/private/interactions/createKeyboardShortcutHandler.js +125 -0
  253. package/dist/private/interactions/createKeyboardShortcutHandler.js.map +1 -0
  254. package/dist/private/interactions/createKeyboardShortcutHandler.mjs +125 -0
  255. package/dist/private/interactions/createKeyboardShortcutHandler.mjs.map +1 -0
  256. package/dist/private/interactions/textSelection.cjs +2 -2
  257. package/dist/private/interactions/textSelection.cjs.map +1 -1
  258. package/dist/private/interactions/textSelection.js +3 -3
  259. package/dist/private/interactions/textSelection.js.map +1 -1
  260. package/dist/private/interactions/textSelection.mjs +3 -3
  261. package/dist/private/interactions/textSelection.mjs.map +1 -1
  262. package/dist/private/interactions/useContextMenu.cjs +104 -0
  263. package/dist/private/interactions/useContextMenu.cjs.map +1 -0
  264. package/dist/private/interactions/useContextMenu.js +99 -0
  265. package/dist/private/interactions/useContextMenu.js.map +1 -0
  266. package/dist/private/interactions/useContextMenu.mjs +99 -0
  267. package/dist/private/interactions/useContextMenu.mjs.map +1 -0
  268. package/dist/private/interactions/useFocusVisible.cjs +2 -2
  269. package/dist/private/interactions/useFocusVisible.cjs.map +1 -1
  270. package/dist/private/interactions/useFocusVisible.js +2 -2
  271. package/dist/private/interactions/useFocusVisible.js.map +1 -1
  272. package/dist/private/interactions/useFocusVisible.mjs +2 -2
  273. package/dist/private/interactions/useFocusVisible.mjs.map +1 -1
  274. package/dist/private/interactions/useFocusable.cjs +1 -0
  275. package/dist/private/interactions/useFocusable.cjs.map +1 -1
  276. package/dist/private/interactions/useFocusable.js +1 -0
  277. package/dist/private/interactions/useFocusable.js.map +1 -1
  278. package/dist/private/interactions/useFocusable.mjs +1 -0
  279. package/dist/private/interactions/useFocusable.mjs.map +1 -1
  280. package/dist/private/interactions/useHover.cjs +2 -1
  281. package/dist/private/interactions/useHover.cjs.map +1 -1
  282. package/dist/private/interactions/useHover.js +2 -1
  283. package/dist/private/interactions/useHover.js.map +1 -1
  284. package/dist/private/interactions/useHover.mjs +2 -1
  285. package/dist/private/interactions/useHover.mjs.map +1 -1
  286. package/dist/private/interactions/useKeyboard.cjs +46 -2
  287. package/dist/private/interactions/useKeyboard.cjs.map +1 -1
  288. package/dist/private/interactions/useKeyboard.js +48 -2
  289. package/dist/private/interactions/useKeyboard.js.map +1 -1
  290. package/dist/private/interactions/useKeyboard.mjs +46 -2
  291. package/dist/private/interactions/useKeyboard.mjs.map +1 -1
  292. package/dist/private/interactions/useLongPress.cjs +22 -22
  293. package/dist/private/interactions/useLongPress.cjs.map +1 -1
  294. package/dist/private/interactions/useLongPress.js +22 -22
  295. package/dist/private/interactions/useLongPress.js.map +1 -1
  296. package/dist/private/interactions/useLongPress.mjs +22 -22
  297. package/dist/private/interactions/useLongPress.mjs.map +1 -1
  298. package/dist/private/interactions/useMove.cjs +1 -8
  299. package/dist/private/interactions/useMove.cjs.map +1 -1
  300. package/dist/private/interactions/useMove.js +1 -8
  301. package/dist/private/interactions/useMove.js.map +1 -1
  302. package/dist/private/interactions/useMove.mjs +1 -8
  303. package/dist/private/interactions/useMove.mjs.map +1 -1
  304. package/dist/private/interactions/usePress.cjs +18 -33
  305. package/dist/private/interactions/usePress.cjs.map +1 -1
  306. package/dist/private/interactions/usePress.js +18 -33
  307. package/dist/private/interactions/usePress.js.map +1 -1
  308. package/dist/private/interactions/usePress.mjs +18 -33
  309. package/dist/private/interactions/usePress.mjs.map +1 -1
  310. package/dist/private/interactions/utils.cjs +10 -10
  311. package/dist/private/interactions/utils.cjs.map +1 -1
  312. package/dist/private/interactions/utils.js +10 -10
  313. package/dist/private/interactions/utils.js.map +1 -1
  314. package/dist/private/interactions/utils.mjs +10 -10
  315. package/dist/private/interactions/utils.mjs.map +1 -1
  316. package/dist/private/intl/combobox/fi-FI.cjs +5 -5
  317. package/dist/private/intl/combobox/fi-FI.cjs.map +1 -1
  318. package/dist/private/intl/combobox/fi-FI.js +5 -5
  319. package/dist/private/intl/combobox/fi-FI.js.map +1 -1
  320. package/dist/private/intl/combobox/fi-FI.mjs +5 -5
  321. package/dist/private/intl/combobox/fi-FI.mjs.map +1 -1
  322. package/dist/private/intl/previewtrigger/ar-AE.cjs +6 -0
  323. package/dist/private/intl/previewtrigger/ar-AE.cjs.map +1 -0
  324. package/dist/private/intl/previewtrigger/ar-AE.js +8 -0
  325. package/dist/private/intl/previewtrigger/ar-AE.js.map +1 -0
  326. package/dist/private/intl/previewtrigger/ar-AE.mjs +8 -0
  327. package/dist/private/intl/previewtrigger/ar-AE.mjs.map +1 -0
  328. package/dist/private/intl/previewtrigger/bg-BG.cjs +6 -0
  329. package/dist/private/intl/previewtrigger/bg-BG.cjs.map +1 -0
  330. package/dist/private/intl/previewtrigger/bg-BG.js +8 -0
  331. package/dist/private/intl/previewtrigger/bg-BG.js.map +1 -0
  332. package/dist/private/intl/previewtrigger/bg-BG.mjs +8 -0
  333. package/dist/private/intl/previewtrigger/bg-BG.mjs.map +1 -0
  334. package/dist/private/intl/previewtrigger/cs-CZ.cjs +6 -0
  335. package/dist/private/intl/previewtrigger/cs-CZ.cjs.map +1 -0
  336. package/dist/private/intl/previewtrigger/cs-CZ.js +8 -0
  337. package/dist/private/intl/previewtrigger/cs-CZ.js.map +1 -0
  338. package/dist/private/intl/previewtrigger/cs-CZ.mjs +8 -0
  339. package/dist/private/intl/previewtrigger/cs-CZ.mjs.map +1 -0
  340. package/dist/private/intl/previewtrigger/da-DK.cjs +6 -0
  341. package/dist/private/intl/previewtrigger/da-DK.cjs.map +1 -0
  342. package/dist/private/intl/previewtrigger/da-DK.js +8 -0
  343. package/dist/private/intl/previewtrigger/da-DK.js.map +1 -0
  344. package/dist/private/intl/previewtrigger/da-DK.mjs +8 -0
  345. package/dist/private/intl/previewtrigger/da-DK.mjs.map +1 -0
  346. package/dist/private/intl/previewtrigger/de-DE.cjs +6 -0
  347. package/dist/private/intl/previewtrigger/de-DE.cjs.map +1 -0
  348. package/dist/private/intl/previewtrigger/de-DE.js +8 -0
  349. package/dist/private/intl/previewtrigger/de-DE.js.map +1 -0
  350. package/dist/private/intl/previewtrigger/de-DE.mjs +8 -0
  351. package/dist/private/intl/previewtrigger/de-DE.mjs.map +1 -0
  352. package/dist/private/intl/previewtrigger/el-GR.cjs +6 -0
  353. package/dist/private/intl/previewtrigger/el-GR.cjs.map +1 -0
  354. package/dist/private/intl/previewtrigger/el-GR.js +8 -0
  355. package/dist/private/intl/previewtrigger/el-GR.js.map +1 -0
  356. package/dist/private/intl/previewtrigger/el-GR.mjs +8 -0
  357. package/dist/private/intl/previewtrigger/el-GR.mjs.map +1 -0
  358. package/dist/private/intl/previewtrigger/en-US.cjs +6 -0
  359. package/dist/private/intl/previewtrigger/en-US.cjs.map +1 -0
  360. package/dist/private/intl/previewtrigger/en-US.js +8 -0
  361. package/dist/private/intl/previewtrigger/en-US.js.map +1 -0
  362. package/dist/private/intl/previewtrigger/en-US.mjs +8 -0
  363. package/dist/private/intl/previewtrigger/en-US.mjs.map +1 -0
  364. package/dist/private/intl/previewtrigger/es-ES.cjs +6 -0
  365. package/dist/private/intl/previewtrigger/es-ES.cjs.map +1 -0
  366. package/dist/private/intl/previewtrigger/es-ES.js +8 -0
  367. package/dist/private/intl/previewtrigger/es-ES.js.map +1 -0
  368. package/dist/private/intl/previewtrigger/es-ES.mjs +8 -0
  369. package/dist/private/intl/previewtrigger/es-ES.mjs.map +1 -0
  370. package/dist/private/intl/previewtrigger/et-EE.cjs +6 -0
  371. package/dist/private/intl/previewtrigger/et-EE.cjs.map +1 -0
  372. package/dist/private/intl/previewtrigger/et-EE.js +8 -0
  373. package/dist/private/intl/previewtrigger/et-EE.js.map +1 -0
  374. package/dist/private/intl/previewtrigger/et-EE.mjs +8 -0
  375. package/dist/private/intl/previewtrigger/et-EE.mjs.map +1 -0
  376. package/dist/private/intl/previewtrigger/fi-FI.cjs +6 -0
  377. package/dist/private/intl/previewtrigger/fi-FI.cjs.map +1 -0
  378. package/dist/private/intl/previewtrigger/fi-FI.js +8 -0
  379. package/dist/private/intl/previewtrigger/fi-FI.js.map +1 -0
  380. package/dist/private/intl/previewtrigger/fi-FI.mjs +8 -0
  381. package/dist/private/intl/previewtrigger/fi-FI.mjs.map +1 -0
  382. package/dist/private/intl/previewtrigger/fr-FR.cjs +6 -0
  383. package/dist/private/intl/previewtrigger/fr-FR.cjs.map +1 -0
  384. package/dist/private/intl/previewtrigger/fr-FR.js +8 -0
  385. package/dist/private/intl/previewtrigger/fr-FR.js.map +1 -0
  386. package/dist/private/intl/previewtrigger/fr-FR.mjs +8 -0
  387. package/dist/private/intl/previewtrigger/fr-FR.mjs.map +1 -0
  388. package/dist/private/intl/previewtrigger/he-IL.cjs +6 -0
  389. package/dist/private/intl/previewtrigger/he-IL.cjs.map +1 -0
  390. package/dist/private/intl/previewtrigger/he-IL.js +8 -0
  391. package/dist/private/intl/previewtrigger/he-IL.js.map +1 -0
  392. package/dist/private/intl/previewtrigger/he-IL.mjs +8 -0
  393. package/dist/private/intl/previewtrigger/he-IL.mjs.map +1 -0
  394. package/dist/private/intl/previewtrigger/hr-HR.cjs +6 -0
  395. package/dist/private/intl/previewtrigger/hr-HR.cjs.map +1 -0
  396. package/dist/private/intl/previewtrigger/hr-HR.js +8 -0
  397. package/dist/private/intl/previewtrigger/hr-HR.js.map +1 -0
  398. package/dist/private/intl/previewtrigger/hr-HR.mjs +8 -0
  399. package/dist/private/intl/previewtrigger/hr-HR.mjs.map +1 -0
  400. package/dist/private/intl/previewtrigger/hu-HU.cjs +6 -0
  401. package/dist/private/intl/previewtrigger/hu-HU.cjs.map +1 -0
  402. package/dist/private/intl/previewtrigger/hu-HU.js +8 -0
  403. package/dist/private/intl/previewtrigger/hu-HU.js.map +1 -0
  404. package/dist/private/intl/previewtrigger/hu-HU.mjs +8 -0
  405. package/dist/private/intl/previewtrigger/hu-HU.mjs.map +1 -0
  406. package/dist/private/intl/previewtrigger/it-IT.cjs +6 -0
  407. package/dist/private/intl/previewtrigger/it-IT.cjs.map +1 -0
  408. package/dist/private/intl/previewtrigger/it-IT.js +8 -0
  409. package/dist/private/intl/previewtrigger/it-IT.js.map +1 -0
  410. package/dist/private/intl/previewtrigger/it-IT.mjs +8 -0
  411. package/dist/private/intl/previewtrigger/it-IT.mjs.map +1 -0
  412. package/dist/private/intl/previewtrigger/ja-JP.cjs +6 -0
  413. package/dist/private/intl/previewtrigger/ja-JP.cjs.map +1 -0
  414. package/dist/private/intl/previewtrigger/ja-JP.js +8 -0
  415. package/dist/private/intl/previewtrigger/ja-JP.js.map +1 -0
  416. package/dist/private/intl/previewtrigger/ja-JP.mjs +8 -0
  417. package/dist/private/intl/previewtrigger/ja-JP.mjs.map +1 -0
  418. package/dist/private/intl/previewtrigger/ko-KR.cjs +6 -0
  419. package/dist/private/intl/previewtrigger/ko-KR.cjs.map +1 -0
  420. package/dist/private/intl/previewtrigger/ko-KR.js +8 -0
  421. package/dist/private/intl/previewtrigger/ko-KR.js.map +1 -0
  422. package/dist/private/intl/previewtrigger/ko-KR.mjs +8 -0
  423. package/dist/private/intl/previewtrigger/ko-KR.mjs.map +1 -0
  424. package/dist/private/intl/previewtrigger/lt-LT.cjs +6 -0
  425. package/dist/private/intl/previewtrigger/lt-LT.cjs.map +1 -0
  426. package/dist/private/intl/previewtrigger/lt-LT.js +8 -0
  427. package/dist/private/intl/previewtrigger/lt-LT.js.map +1 -0
  428. package/dist/private/intl/previewtrigger/lt-LT.mjs +8 -0
  429. package/dist/private/intl/previewtrigger/lt-LT.mjs.map +1 -0
  430. package/dist/private/intl/previewtrigger/lv-LV.cjs +6 -0
  431. package/dist/private/intl/previewtrigger/lv-LV.cjs.map +1 -0
  432. package/dist/private/intl/previewtrigger/lv-LV.js +8 -0
  433. package/dist/private/intl/previewtrigger/lv-LV.js.map +1 -0
  434. package/dist/private/intl/previewtrigger/lv-LV.mjs +8 -0
  435. package/dist/private/intl/previewtrigger/lv-LV.mjs.map +1 -0
  436. package/dist/private/intl/previewtrigger/nb-NO.cjs +6 -0
  437. package/dist/private/intl/previewtrigger/nb-NO.cjs.map +1 -0
  438. package/dist/private/intl/previewtrigger/nb-NO.js +8 -0
  439. package/dist/private/intl/previewtrigger/nb-NO.js.map +1 -0
  440. package/dist/private/intl/previewtrigger/nb-NO.mjs +8 -0
  441. package/dist/private/intl/previewtrigger/nb-NO.mjs.map +1 -0
  442. package/dist/private/intl/previewtrigger/nl-NL.cjs +6 -0
  443. package/dist/private/intl/previewtrigger/nl-NL.cjs.map +1 -0
  444. package/dist/private/intl/previewtrigger/nl-NL.js +8 -0
  445. package/dist/private/intl/previewtrigger/nl-NL.js.map +1 -0
  446. package/dist/private/intl/previewtrigger/nl-NL.mjs +8 -0
  447. package/dist/private/intl/previewtrigger/nl-NL.mjs.map +1 -0
  448. package/dist/private/intl/previewtrigger/pl-PL.cjs +6 -0
  449. package/dist/private/intl/previewtrigger/pl-PL.cjs.map +1 -0
  450. package/dist/private/intl/previewtrigger/pl-PL.js +8 -0
  451. package/dist/private/intl/previewtrigger/pl-PL.js.map +1 -0
  452. package/dist/private/intl/previewtrigger/pl-PL.mjs +8 -0
  453. package/dist/private/intl/previewtrigger/pl-PL.mjs.map +1 -0
  454. package/dist/private/intl/previewtrigger/pt-BR.cjs +6 -0
  455. package/dist/private/intl/previewtrigger/pt-BR.cjs.map +1 -0
  456. package/dist/private/intl/previewtrigger/pt-BR.js +8 -0
  457. package/dist/private/intl/previewtrigger/pt-BR.js.map +1 -0
  458. package/dist/private/intl/previewtrigger/pt-BR.mjs +8 -0
  459. package/dist/private/intl/previewtrigger/pt-BR.mjs.map +1 -0
  460. package/dist/private/intl/previewtrigger/pt-PT.cjs +6 -0
  461. package/dist/private/intl/previewtrigger/pt-PT.cjs.map +1 -0
  462. package/dist/private/intl/previewtrigger/pt-PT.js +8 -0
  463. package/dist/private/intl/previewtrigger/pt-PT.js.map +1 -0
  464. package/dist/private/intl/previewtrigger/pt-PT.mjs +8 -0
  465. package/dist/private/intl/previewtrigger/pt-PT.mjs.map +1 -0
  466. package/dist/private/intl/previewtrigger/ro-RO.cjs +6 -0
  467. package/dist/private/intl/previewtrigger/ro-RO.cjs.map +1 -0
  468. package/dist/private/intl/previewtrigger/ro-RO.js +8 -0
  469. package/dist/private/intl/previewtrigger/ro-RO.js.map +1 -0
  470. package/dist/private/intl/previewtrigger/ro-RO.mjs +8 -0
  471. package/dist/private/intl/previewtrigger/ro-RO.mjs.map +1 -0
  472. package/dist/private/intl/previewtrigger/ru-RU.cjs +6 -0
  473. package/dist/private/intl/previewtrigger/ru-RU.cjs.map +1 -0
  474. package/dist/private/intl/previewtrigger/ru-RU.js +8 -0
  475. package/dist/private/intl/previewtrigger/ru-RU.js.map +1 -0
  476. package/dist/private/intl/previewtrigger/ru-RU.mjs +8 -0
  477. package/dist/private/intl/previewtrigger/ru-RU.mjs.map +1 -0
  478. package/dist/private/intl/previewtrigger/sk-SK.cjs +6 -0
  479. package/dist/private/intl/previewtrigger/sk-SK.cjs.map +1 -0
  480. package/dist/private/intl/previewtrigger/sk-SK.js +8 -0
  481. package/dist/private/intl/previewtrigger/sk-SK.js.map +1 -0
  482. package/dist/private/intl/previewtrigger/sk-SK.mjs +8 -0
  483. package/dist/private/intl/previewtrigger/sk-SK.mjs.map +1 -0
  484. package/dist/private/intl/previewtrigger/sl-SI.cjs +6 -0
  485. package/dist/private/intl/previewtrigger/sl-SI.cjs.map +1 -0
  486. package/dist/private/intl/previewtrigger/sl-SI.js +8 -0
  487. package/dist/private/intl/previewtrigger/sl-SI.js.map +1 -0
  488. package/dist/private/intl/previewtrigger/sl-SI.mjs +8 -0
  489. package/dist/private/intl/previewtrigger/sl-SI.mjs.map +1 -0
  490. package/dist/private/intl/previewtrigger/sr-SP.cjs +6 -0
  491. package/dist/private/intl/previewtrigger/sr-SP.cjs.map +1 -0
  492. package/dist/private/intl/previewtrigger/sr-SP.js +8 -0
  493. package/dist/private/intl/previewtrigger/sr-SP.js.map +1 -0
  494. package/dist/private/intl/previewtrigger/sr-SP.mjs +8 -0
  495. package/dist/private/intl/previewtrigger/sr-SP.mjs.map +1 -0
  496. package/dist/private/intl/previewtrigger/sv-SE.cjs +6 -0
  497. package/dist/private/intl/previewtrigger/sv-SE.cjs.map +1 -0
  498. package/dist/private/intl/previewtrigger/sv-SE.js +8 -0
  499. package/dist/private/intl/previewtrigger/sv-SE.js.map +1 -0
  500. package/dist/private/intl/previewtrigger/sv-SE.mjs +8 -0
  501. package/dist/private/intl/previewtrigger/sv-SE.mjs.map +1 -0
  502. package/dist/private/intl/previewtrigger/tr-TR.cjs +6 -0
  503. package/dist/private/intl/previewtrigger/tr-TR.cjs.map +1 -0
  504. package/dist/private/intl/previewtrigger/tr-TR.js +8 -0
  505. package/dist/private/intl/previewtrigger/tr-TR.js.map +1 -0
  506. package/dist/private/intl/previewtrigger/tr-TR.mjs +8 -0
  507. package/dist/private/intl/previewtrigger/tr-TR.mjs.map +1 -0
  508. package/dist/private/intl/previewtrigger/uk-UA.cjs +6 -0
  509. package/dist/private/intl/previewtrigger/uk-UA.cjs.map +1 -0
  510. package/dist/private/intl/previewtrigger/uk-UA.js +8 -0
  511. package/dist/private/intl/previewtrigger/uk-UA.js.map +1 -0
  512. package/dist/private/intl/previewtrigger/uk-UA.mjs +8 -0
  513. package/dist/private/intl/previewtrigger/uk-UA.mjs.map +1 -0
  514. package/dist/private/intl/previewtrigger/zh-CN.cjs +6 -0
  515. package/dist/private/intl/previewtrigger/zh-CN.cjs.map +1 -0
  516. package/dist/private/intl/previewtrigger/zh-CN.js +8 -0
  517. package/dist/private/intl/previewtrigger/zh-CN.js.map +1 -0
  518. package/dist/private/intl/previewtrigger/zh-CN.mjs +8 -0
  519. package/dist/private/intl/previewtrigger/zh-CN.mjs.map +1 -0
  520. package/dist/private/intl/previewtrigger/zh-TW.cjs +6 -0
  521. package/dist/private/intl/previewtrigger/zh-TW.cjs.map +1 -0
  522. package/dist/private/intl/previewtrigger/zh-TW.js +8 -0
  523. package/dist/private/intl/previewtrigger/zh-TW.js.map +1 -0
  524. package/dist/private/intl/previewtrigger/zh-TW.mjs +8 -0
  525. package/dist/private/intl/previewtrigger/zh-TW.mjs.map +1 -0
  526. package/dist/private/intl/table/ar-AE.cjs +3 -3
  527. package/dist/private/intl/table/ar-AE.cjs.map +1 -1
  528. package/dist/private/intl/table/ar-AE.js +3 -3
  529. package/dist/private/intl/table/ar-AE.js.map +1 -1
  530. package/dist/private/intl/table/ar-AE.mjs +3 -3
  531. package/dist/private/intl/table/ar-AE.mjs.map +1 -1
  532. package/dist/private/intl/table/bg-BG.cjs +3 -3
  533. package/dist/private/intl/table/bg-BG.cjs.map +1 -1
  534. package/dist/private/intl/table/bg-BG.js +3 -3
  535. package/dist/private/intl/table/bg-BG.js.map +1 -1
  536. package/dist/private/intl/table/bg-BG.mjs +3 -3
  537. package/dist/private/intl/table/bg-BG.mjs.map +1 -1
  538. package/dist/private/intl/table/cs-CZ.cjs +3 -3
  539. package/dist/private/intl/table/cs-CZ.cjs.map +1 -1
  540. package/dist/private/intl/table/cs-CZ.js +3 -3
  541. package/dist/private/intl/table/cs-CZ.js.map +1 -1
  542. package/dist/private/intl/table/cs-CZ.mjs +3 -3
  543. package/dist/private/intl/table/cs-CZ.mjs.map +1 -1
  544. package/dist/private/intl/table/da-DK.cjs +3 -3
  545. package/dist/private/intl/table/da-DK.cjs.map +1 -1
  546. package/dist/private/intl/table/da-DK.js +3 -3
  547. package/dist/private/intl/table/da-DK.js.map +1 -1
  548. package/dist/private/intl/table/da-DK.mjs +3 -3
  549. package/dist/private/intl/table/da-DK.mjs.map +1 -1
  550. package/dist/private/intl/table/de-DE.cjs +3 -3
  551. package/dist/private/intl/table/de-DE.cjs.map +1 -1
  552. package/dist/private/intl/table/de-DE.js +3 -3
  553. package/dist/private/intl/table/de-DE.js.map +1 -1
  554. package/dist/private/intl/table/de-DE.mjs +3 -3
  555. package/dist/private/intl/table/de-DE.mjs.map +1 -1
  556. package/dist/private/intl/table/el-GR.cjs +3 -3
  557. package/dist/private/intl/table/el-GR.cjs.map +1 -1
  558. package/dist/private/intl/table/el-GR.js +3 -3
  559. package/dist/private/intl/table/el-GR.js.map +1 -1
  560. package/dist/private/intl/table/el-GR.mjs +3 -3
  561. package/dist/private/intl/table/el-GR.mjs.map +1 -1
  562. package/dist/private/intl/table/es-ES.cjs +3 -3
  563. package/dist/private/intl/table/es-ES.cjs.map +1 -1
  564. package/dist/private/intl/table/es-ES.js +3 -3
  565. package/dist/private/intl/table/es-ES.js.map +1 -1
  566. package/dist/private/intl/table/es-ES.mjs +3 -3
  567. package/dist/private/intl/table/es-ES.mjs.map +1 -1
  568. package/dist/private/intl/table/et-EE.cjs +3 -3
  569. package/dist/private/intl/table/et-EE.cjs.map +1 -1
  570. package/dist/private/intl/table/et-EE.js +3 -3
  571. package/dist/private/intl/table/et-EE.js.map +1 -1
  572. package/dist/private/intl/table/et-EE.mjs +3 -3
  573. package/dist/private/intl/table/et-EE.mjs.map +1 -1
  574. package/dist/private/intl/table/fi-FI.cjs +3 -3
  575. package/dist/private/intl/table/fi-FI.cjs.map +1 -1
  576. package/dist/private/intl/table/fi-FI.js +3 -3
  577. package/dist/private/intl/table/fi-FI.js.map +1 -1
  578. package/dist/private/intl/table/fi-FI.mjs +3 -3
  579. package/dist/private/intl/table/fi-FI.mjs.map +1 -1
  580. package/dist/private/intl/table/fr-FR.cjs +3 -3
  581. package/dist/private/intl/table/fr-FR.cjs.map +1 -1
  582. package/dist/private/intl/table/fr-FR.js +3 -3
  583. package/dist/private/intl/table/fr-FR.js.map +1 -1
  584. package/dist/private/intl/table/fr-FR.mjs +3 -3
  585. package/dist/private/intl/table/fr-FR.mjs.map +1 -1
  586. package/dist/private/intl/table/he-IL.cjs +3 -3
  587. package/dist/private/intl/table/he-IL.cjs.map +1 -1
  588. package/dist/private/intl/table/he-IL.js +3 -3
  589. package/dist/private/intl/table/he-IL.js.map +1 -1
  590. package/dist/private/intl/table/he-IL.mjs +3 -3
  591. package/dist/private/intl/table/he-IL.mjs.map +1 -1
  592. package/dist/private/intl/table/hr-HR.cjs +3 -3
  593. package/dist/private/intl/table/hr-HR.cjs.map +1 -1
  594. package/dist/private/intl/table/hr-HR.js +3 -3
  595. package/dist/private/intl/table/hr-HR.js.map +1 -1
  596. package/dist/private/intl/table/hr-HR.mjs +3 -3
  597. package/dist/private/intl/table/hr-HR.mjs.map +1 -1
  598. package/dist/private/intl/table/hu-HU.cjs +3 -3
  599. package/dist/private/intl/table/hu-HU.cjs.map +1 -1
  600. package/dist/private/intl/table/hu-HU.js +3 -3
  601. package/dist/private/intl/table/hu-HU.js.map +1 -1
  602. package/dist/private/intl/table/hu-HU.mjs +3 -3
  603. package/dist/private/intl/table/hu-HU.mjs.map +1 -1
  604. package/dist/private/intl/table/it-IT.cjs +3 -3
  605. package/dist/private/intl/table/it-IT.cjs.map +1 -1
  606. package/dist/private/intl/table/it-IT.js +3 -3
  607. package/dist/private/intl/table/it-IT.js.map +1 -1
  608. package/dist/private/intl/table/it-IT.mjs +3 -3
  609. package/dist/private/intl/table/it-IT.mjs.map +1 -1
  610. package/dist/private/intl/table/ja-JP.cjs +3 -3
  611. package/dist/private/intl/table/ja-JP.cjs.map +1 -1
  612. package/dist/private/intl/table/ja-JP.js +3 -3
  613. package/dist/private/intl/table/ja-JP.js.map +1 -1
  614. package/dist/private/intl/table/ja-JP.mjs +3 -3
  615. package/dist/private/intl/table/ja-JP.mjs.map +1 -1
  616. package/dist/private/intl/table/ko-KR.cjs +3 -3
  617. package/dist/private/intl/table/ko-KR.cjs.map +1 -1
  618. package/dist/private/intl/table/ko-KR.js +3 -3
  619. package/dist/private/intl/table/ko-KR.js.map +1 -1
  620. package/dist/private/intl/table/ko-KR.mjs +3 -3
  621. package/dist/private/intl/table/ko-KR.mjs.map +1 -1
  622. package/dist/private/intl/table/lt-LT.cjs +3 -3
  623. package/dist/private/intl/table/lt-LT.cjs.map +1 -1
  624. package/dist/private/intl/table/lt-LT.js +3 -3
  625. package/dist/private/intl/table/lt-LT.js.map +1 -1
  626. package/dist/private/intl/table/lt-LT.mjs +3 -3
  627. package/dist/private/intl/table/lt-LT.mjs.map +1 -1
  628. package/dist/private/intl/table/lv-LV.cjs +3 -3
  629. package/dist/private/intl/table/lv-LV.cjs.map +1 -1
  630. package/dist/private/intl/table/lv-LV.js +3 -3
  631. package/dist/private/intl/table/lv-LV.js.map +1 -1
  632. package/dist/private/intl/table/lv-LV.mjs +3 -3
  633. package/dist/private/intl/table/lv-LV.mjs.map +1 -1
  634. package/dist/private/intl/table/nb-NO.cjs +3 -3
  635. package/dist/private/intl/table/nb-NO.cjs.map +1 -1
  636. package/dist/private/intl/table/nb-NO.js +3 -3
  637. package/dist/private/intl/table/nb-NO.js.map +1 -1
  638. package/dist/private/intl/table/nb-NO.mjs +3 -3
  639. package/dist/private/intl/table/nb-NO.mjs.map +1 -1
  640. package/dist/private/intl/table/nl-NL.cjs +3 -3
  641. package/dist/private/intl/table/nl-NL.cjs.map +1 -1
  642. package/dist/private/intl/table/nl-NL.js +3 -3
  643. package/dist/private/intl/table/nl-NL.js.map +1 -1
  644. package/dist/private/intl/table/nl-NL.mjs +3 -3
  645. package/dist/private/intl/table/nl-NL.mjs.map +1 -1
  646. package/dist/private/intl/table/pl-PL.cjs +3 -3
  647. package/dist/private/intl/table/pl-PL.cjs.map +1 -1
  648. package/dist/private/intl/table/pl-PL.js +3 -3
  649. package/dist/private/intl/table/pl-PL.js.map +1 -1
  650. package/dist/private/intl/table/pl-PL.mjs +3 -3
  651. package/dist/private/intl/table/pl-PL.mjs.map +1 -1
  652. package/dist/private/intl/table/pt-BR.cjs +3 -3
  653. package/dist/private/intl/table/pt-BR.cjs.map +1 -1
  654. package/dist/private/intl/table/pt-BR.js +3 -3
  655. package/dist/private/intl/table/pt-BR.js.map +1 -1
  656. package/dist/private/intl/table/pt-BR.mjs +3 -3
  657. package/dist/private/intl/table/pt-BR.mjs.map +1 -1
  658. package/dist/private/intl/table/pt-PT.cjs +3 -3
  659. package/dist/private/intl/table/pt-PT.cjs.map +1 -1
  660. package/dist/private/intl/table/pt-PT.js +3 -3
  661. package/dist/private/intl/table/pt-PT.js.map +1 -1
  662. package/dist/private/intl/table/pt-PT.mjs +3 -3
  663. package/dist/private/intl/table/pt-PT.mjs.map +1 -1
  664. package/dist/private/intl/table/ro-RO.cjs +3 -3
  665. package/dist/private/intl/table/ro-RO.cjs.map +1 -1
  666. package/dist/private/intl/table/ro-RO.js +3 -3
  667. package/dist/private/intl/table/ro-RO.js.map +1 -1
  668. package/dist/private/intl/table/ro-RO.mjs +3 -3
  669. package/dist/private/intl/table/ro-RO.mjs.map +1 -1
  670. package/dist/private/intl/table/ru-RU.cjs +3 -3
  671. package/dist/private/intl/table/ru-RU.cjs.map +1 -1
  672. package/dist/private/intl/table/ru-RU.js +3 -3
  673. package/dist/private/intl/table/ru-RU.js.map +1 -1
  674. package/dist/private/intl/table/ru-RU.mjs +3 -3
  675. package/dist/private/intl/table/ru-RU.mjs.map +1 -1
  676. package/dist/private/intl/table/sk-SK.cjs +3 -3
  677. package/dist/private/intl/table/sk-SK.cjs.map +1 -1
  678. package/dist/private/intl/table/sk-SK.js +3 -3
  679. package/dist/private/intl/table/sk-SK.js.map +1 -1
  680. package/dist/private/intl/table/sk-SK.mjs +3 -3
  681. package/dist/private/intl/table/sk-SK.mjs.map +1 -1
  682. package/dist/private/intl/table/sl-SI.cjs +3 -3
  683. package/dist/private/intl/table/sl-SI.cjs.map +1 -1
  684. package/dist/private/intl/table/sl-SI.js +3 -3
  685. package/dist/private/intl/table/sl-SI.js.map +1 -1
  686. package/dist/private/intl/table/sl-SI.mjs +3 -3
  687. package/dist/private/intl/table/sl-SI.mjs.map +1 -1
  688. package/dist/private/intl/table/sr-SP.cjs +3 -3
  689. package/dist/private/intl/table/sr-SP.cjs.map +1 -1
  690. package/dist/private/intl/table/sr-SP.js +3 -3
  691. package/dist/private/intl/table/sr-SP.js.map +1 -1
  692. package/dist/private/intl/table/sr-SP.mjs +3 -3
  693. package/dist/private/intl/table/sr-SP.mjs.map +1 -1
  694. package/dist/private/intl/table/sv-SE.cjs +3 -3
  695. package/dist/private/intl/table/sv-SE.cjs.map +1 -1
  696. package/dist/private/intl/table/sv-SE.js +3 -3
  697. package/dist/private/intl/table/sv-SE.js.map +1 -1
  698. package/dist/private/intl/table/sv-SE.mjs +3 -3
  699. package/dist/private/intl/table/sv-SE.mjs.map +1 -1
  700. package/dist/private/intl/table/tr-TR.cjs +3 -3
  701. package/dist/private/intl/table/tr-TR.cjs.map +1 -1
  702. package/dist/private/intl/table/tr-TR.js +3 -3
  703. package/dist/private/intl/table/tr-TR.js.map +1 -1
  704. package/dist/private/intl/table/tr-TR.mjs +3 -3
  705. package/dist/private/intl/table/tr-TR.mjs.map +1 -1
  706. package/dist/private/intl/table/uk-UA.cjs +3 -3
  707. package/dist/private/intl/table/uk-UA.cjs.map +1 -1
  708. package/dist/private/intl/table/uk-UA.js +3 -3
  709. package/dist/private/intl/table/uk-UA.js.map +1 -1
  710. package/dist/private/intl/table/uk-UA.mjs +3 -3
  711. package/dist/private/intl/table/uk-UA.mjs.map +1 -1
  712. package/dist/private/intl/table/zh-CN.cjs +4 -4
  713. package/dist/private/intl/table/zh-CN.cjs.map +1 -1
  714. package/dist/private/intl/table/zh-CN.js +4 -4
  715. package/dist/private/intl/table/zh-CN.js.map +1 -1
  716. package/dist/private/intl/table/zh-CN.mjs +4 -4
  717. package/dist/private/intl/table/zh-CN.mjs.map +1 -1
  718. package/dist/private/intl/table/zh-TW.cjs +3 -3
  719. package/dist/private/intl/table/zh-TW.cjs.map +1 -1
  720. package/dist/private/intl/table/zh-TW.js +3 -3
  721. package/dist/private/intl/table/zh-TW.js.map +1 -1
  722. package/dist/private/intl/table/zh-TW.mjs +3 -3
  723. package/dist/private/intl/table/zh-TW.mjs.map +1 -1
  724. package/dist/private/intl/tree/es-ES.cjs +1 -1
  725. package/dist/private/intl/tree/es-ES.cjs.map +1 -1
  726. package/dist/private/intl/tree/es-ES.js +1 -1
  727. package/dist/private/intl/tree/es-ES.js.map +1 -1
  728. package/dist/private/intl/tree/es-ES.mjs +1 -1
  729. package/dist/private/intl/tree/es-ES.mjs.map +1 -1
  730. package/dist/private/link/useLink.cjs +2 -1
  731. package/dist/private/link/useLink.cjs.map +1 -1
  732. package/dist/private/link/useLink.js +2 -1
  733. package/dist/private/link/useLink.js.map +1 -1
  734. package/dist/private/link/useLink.mjs +2 -1
  735. package/dist/private/link/useLink.mjs.map +1 -1
  736. package/dist/private/menu/useMenuItem.cjs +33 -33
  737. package/dist/private/menu/useMenuItem.cjs.map +1 -1
  738. package/dist/private/menu/useMenuItem.js +33 -33
  739. package/dist/private/menu/useMenuItem.js.map +1 -1
  740. package/dist/private/menu/useMenuItem.mjs +33 -33
  741. package/dist/private/menu/useMenuItem.mjs.map +1 -1
  742. package/dist/private/menu/useMenuTrigger.cjs +96 -30
  743. package/dist/private/menu/useMenuTrigger.cjs.map +1 -1
  744. package/dist/private/menu/useMenuTrigger.js +96 -30
  745. package/dist/private/menu/useMenuTrigger.js.map +1 -1
  746. package/dist/private/menu/useMenuTrigger.mjs +96 -30
  747. package/dist/private/menu/useMenuTrigger.mjs.map +1 -1
  748. package/dist/private/menu/useSubmenuTrigger.cjs +44 -36
  749. package/dist/private/menu/useSubmenuTrigger.cjs.map +1 -1
  750. package/dist/private/menu/useSubmenuTrigger.js +44 -36
  751. package/dist/private/menu/useSubmenuTrigger.js.map +1 -1
  752. package/dist/private/menu/useSubmenuTrigger.mjs +44 -36
  753. package/dist/private/menu/useSubmenuTrigger.mjs.map +1 -1
  754. package/dist/private/numberfield/useNumberField.cjs +24 -19
  755. package/dist/private/numberfield/useNumberField.cjs.map +1 -1
  756. package/dist/private/numberfield/useNumberField.js +24 -19
  757. package/dist/private/numberfield/useNumberField.js.map +1 -1
  758. package/dist/private/numberfield/useNumberField.mjs +24 -19
  759. package/dist/private/numberfield/useNumberField.mjs.map +1 -1
  760. package/dist/private/overlays/Overlay.cjs +5 -1
  761. package/dist/private/overlays/Overlay.cjs.map +1 -1
  762. package/dist/private/overlays/Overlay.js +5 -1
  763. package/dist/private/overlays/Overlay.js.map +1 -1
  764. package/dist/private/overlays/Overlay.mjs +5 -1
  765. package/dist/private/overlays/Overlay.mjs.map +1 -1
  766. package/dist/private/overlays/ariaHideOutside.cjs +12 -8
  767. package/dist/private/overlays/ariaHideOutside.cjs.map +1 -1
  768. package/dist/private/overlays/ariaHideOutside.js +13 -9
  769. package/dist/private/overlays/ariaHideOutside.js.map +1 -1
  770. package/dist/private/overlays/ariaHideOutside.mjs +13 -9
  771. package/dist/private/overlays/ariaHideOutside.mjs.map +1 -1
  772. package/dist/private/overlays/useCloseOnScroll.cjs +3 -4
  773. package/dist/private/overlays/useCloseOnScroll.cjs.map +1 -1
  774. package/dist/private/overlays/useCloseOnScroll.js +4 -5
  775. package/dist/private/overlays/useCloseOnScroll.js.map +1 -1
  776. package/dist/private/overlays/useCloseOnScroll.mjs +4 -5
  777. package/dist/private/overlays/useCloseOnScroll.mjs.map +1 -1
  778. package/dist/private/overlays/useOverlay.cjs +13 -7
  779. package/dist/private/overlays/useOverlay.cjs.map +1 -1
  780. package/dist/private/overlays/useOverlay.js +13 -7
  781. package/dist/private/overlays/useOverlay.js.map +1 -1
  782. package/dist/private/overlays/useOverlay.mjs +13 -7
  783. package/dist/private/overlays/useOverlay.mjs.map +1 -1
  784. package/dist/private/overlays/useOverlayPosition.cjs +6 -0
  785. package/dist/private/overlays/useOverlayPosition.cjs.map +1 -1
  786. package/dist/private/overlays/useOverlayPosition.js +6 -0
  787. package/dist/private/overlays/useOverlayPosition.js.map +1 -1
  788. package/dist/private/overlays/useOverlayPosition.mjs +6 -0
  789. package/dist/private/overlays/useOverlayPosition.mjs.map +1 -1
  790. package/dist/private/overlays/usePopover.cjs +6 -2
  791. package/dist/private/overlays/usePopover.cjs.map +1 -1
  792. package/dist/private/overlays/usePopover.js +7 -2
  793. package/dist/private/overlays/usePopover.js.map +1 -1
  794. package/dist/private/overlays/usePopover.mjs +6 -2
  795. package/dist/private/overlays/usePopover.mjs.map +1 -1
  796. package/dist/private/overlays/usePreventScroll.cjs +2 -5
  797. package/dist/private/overlays/usePreventScroll.cjs.map +1 -1
  798. package/dist/private/overlays/usePreventScroll.js +3 -6
  799. package/dist/private/overlays/usePreventScroll.js.map +1 -1
  800. package/dist/private/overlays/usePreventScroll.mjs +3 -6
  801. package/dist/private/overlays/usePreventScroll.mjs.map +1 -1
  802. package/dist/private/progress/useProgressBar.cjs +2 -1
  803. package/dist/private/progress/useProgressBar.cjs.map +1 -1
  804. package/dist/private/progress/useProgressBar.js +2 -1
  805. package/dist/private/progress/useProgressBar.js.map +1 -1
  806. package/dist/private/progress/useProgressBar.mjs +2 -1
  807. package/dist/private/progress/useProgressBar.mjs.map +1 -1
  808. package/dist/private/radio/useRadioGroup.cjs +26 -23
  809. package/dist/private/radio/useRadioGroup.cjs.map +1 -1
  810. package/dist/private/radio/useRadioGroup.js +26 -23
  811. package/dist/private/radio/useRadioGroup.js.map +1 -1
  812. package/dist/private/radio/useRadioGroup.mjs +26 -23
  813. package/dist/private/radio/useRadioGroup.mjs.map +1 -1
  814. package/dist/private/searchfield/useSearchField.cjs +28 -22
  815. package/dist/private/searchfield/useSearchField.cjs.map +1 -1
  816. package/dist/private/searchfield/useSearchField.js +28 -22
  817. package/dist/private/searchfield/useSearchField.js.map +1 -1
  818. package/dist/private/searchfield/useSearchField.mjs +28 -22
  819. package/dist/private/searchfield/useSearchField.mjs.map +1 -1
  820. package/dist/private/select/useSelect.cjs +21 -23
  821. package/dist/private/select/useSelect.cjs.map +1 -1
  822. package/dist/private/select/useSelect.js +23 -25
  823. package/dist/private/select/useSelect.js.map +1 -1
  824. package/dist/private/select/useSelect.mjs +21 -23
  825. package/dist/private/select/useSelect.mjs.map +1 -1
  826. package/dist/private/selection/useSelectableCollection.cjs +203 -146
  827. package/dist/private/selection/useSelectableCollection.cjs.map +1 -1
  828. package/dist/private/selection/useSelectableCollection.js +207 -150
  829. package/dist/private/selection/useSelectableCollection.js.map +1 -1
  830. package/dist/private/selection/useSelectableCollection.mjs +203 -146
  831. package/dist/private/selection/useSelectableCollection.mjs.map +1 -1
  832. package/dist/private/selection/useSelectableItem.cjs +58 -13
  833. package/dist/private/selection/useSelectableItem.cjs.map +1 -1
  834. package/dist/private/selection/useSelectableItem.js +58 -13
  835. package/dist/private/selection/useSelectableItem.js.map +1 -1
  836. package/dist/private/selection/useSelectableItem.mjs +58 -13
  837. package/dist/private/selection/useSelectableItem.mjs.map +1 -1
  838. package/dist/private/slider/useSlider.cjs.map +1 -1
  839. package/dist/private/slider/useSlider.js.map +1 -1
  840. package/dist/private/slider/useSlider.mjs.map +1 -1
  841. package/dist/private/slider/useSliderThumb.cjs +28 -26
  842. package/dist/private/slider/useSliderThumb.cjs.map +1 -1
  843. package/dist/private/slider/useSliderThumb.js +28 -26
  844. package/dist/private/slider/useSliderThumb.js.map +1 -1
  845. package/dist/private/slider/useSliderThumb.mjs +28 -26
  846. package/dist/private/slider/useSliderThumb.mjs.map +1 -1
  847. package/dist/private/spinbutton/useSpinButton.cjs +49 -34
  848. package/dist/private/spinbutton/useSpinButton.cjs.map +1 -1
  849. package/dist/private/spinbutton/useSpinButton.js +49 -34
  850. package/dist/private/spinbutton/useSpinButton.js.map +1 -1
  851. package/dist/private/spinbutton/useSpinButton.mjs +49 -34
  852. package/dist/private/spinbutton/useSpinButton.mjs.map +1 -1
  853. package/dist/private/ssr/SSRProvider.cjs +12 -3
  854. package/dist/private/ssr/SSRProvider.cjs.map +1 -1
  855. package/dist/private/ssr/SSRProvider.js +12 -3
  856. package/dist/private/ssr/SSRProvider.js.map +1 -1
  857. package/dist/private/ssr/SSRProvider.mjs +12 -3
  858. package/dist/private/ssr/SSRProvider.mjs.map +1 -1
  859. package/dist/private/steplist/useStepListItem.cjs +0 -9
  860. package/dist/private/steplist/useStepListItem.cjs.map +1 -1
  861. package/dist/private/steplist/useStepListItem.js +0 -10
  862. package/dist/private/steplist/useStepListItem.js.map +1 -1
  863. package/dist/private/steplist/useStepListItem.mjs +0 -9
  864. package/dist/private/steplist/useStepListItem.mjs.map +1 -1
  865. package/dist/private/table/useTable.cjs +4 -2
  866. package/dist/private/table/useTable.cjs.map +1 -1
  867. package/dist/private/table/useTable.js +4 -2
  868. package/dist/private/table/useTable.js.map +1 -1
  869. package/dist/private/table/useTable.mjs +4 -2
  870. package/dist/private/table/useTable.mjs.map +1 -1
  871. package/dist/private/table/useTableCell.cjs +2 -0
  872. package/dist/private/table/useTableCell.cjs.map +1 -1
  873. package/dist/private/table/useTableCell.js +2 -0
  874. package/dist/private/table/useTableCell.js.map +1 -1
  875. package/dist/private/table/useTableCell.mjs +2 -0
  876. package/dist/private/table/useTableCell.mjs.map +1 -1
  877. package/dist/private/table/useTableColumnHeader.cjs +2 -3
  878. package/dist/private/table/useTableColumnHeader.cjs.map +1 -1
  879. package/dist/private/table/useTableColumnHeader.js +2 -3
  880. package/dist/private/table/useTableColumnHeader.js.map +1 -1
  881. package/dist/private/table/useTableColumnHeader.mjs +2 -3
  882. package/dist/private/table/useTableColumnHeader.mjs.map +1 -1
  883. package/dist/private/table/useTableColumnResize.cjs +32 -14
  884. package/dist/private/table/useTableColumnResize.cjs.map +1 -1
  885. package/dist/private/table/useTableColumnResize.js +33 -15
  886. package/dist/private/table/useTableColumnResize.js.map +1 -1
  887. package/dist/private/table/useTableColumnResize.mjs +33 -15
  888. package/dist/private/table/useTableColumnResize.mjs.map +1 -1
  889. package/dist/private/table/useTableRow.cjs +4 -2
  890. package/dist/private/table/useTableRow.cjs.map +1 -1
  891. package/dist/private/table/useTableRow.js +4 -2
  892. package/dist/private/table/useTableRow.js.map +1 -1
  893. package/dist/private/table/useTableRow.mjs +4 -2
  894. package/dist/private/table/useTableRow.mjs.map +1 -1
  895. package/dist/private/tag/useTag.cjs +21 -11
  896. package/dist/private/tag/useTag.cjs.map +1 -1
  897. package/dist/private/tag/useTag.js +21 -11
  898. package/dist/private/tag/useTag.js.map +1 -1
  899. package/dist/private/tag/useTag.mjs +21 -11
  900. package/dist/private/tag/useTag.mjs.map +1 -1
  901. package/dist/private/textfield/useFormattedTextField.cjs +1 -0
  902. package/dist/private/textfield/useFormattedTextField.cjs.map +1 -1
  903. package/dist/private/textfield/useFormattedTextField.js +1 -0
  904. package/dist/private/textfield/useFormattedTextField.js.map +1 -1
  905. package/dist/private/textfield/useFormattedTextField.mjs +1 -0
  906. package/dist/private/textfield/useFormattedTextField.mjs.map +1 -1
  907. package/dist/private/toast/useToastRegion.cjs +5 -0
  908. package/dist/private/toast/useToastRegion.cjs.map +1 -1
  909. package/dist/private/toast/useToastRegion.js +5 -0
  910. package/dist/private/toast/useToastRegion.js.map +1 -1
  911. package/dist/private/toast/useToastRegion.mjs +5 -0
  912. package/dist/private/toast/useToastRegion.mjs.map +1 -1
  913. package/dist/private/toggle/useToggle.cjs +1 -0
  914. package/dist/private/toggle/useToggle.cjs.map +1 -1
  915. package/dist/private/toggle/useToggle.js +1 -0
  916. package/dist/private/toggle/useToggle.js.map +1 -1
  917. package/dist/private/toggle/useToggle.mjs +1 -0
  918. package/dist/private/toggle/useToggle.mjs.map +1 -1
  919. package/dist/private/tokenfield/useToken.cjs +46 -0
  920. package/dist/private/tokenfield/useToken.cjs.map +1 -0
  921. package/dist/private/tokenfield/useToken.js +41 -0
  922. package/dist/private/tokenfield/useToken.js.map +1 -0
  923. package/dist/private/tokenfield/useToken.mjs +41 -0
  924. package/dist/private/tokenfield/useToken.mjs.map +1 -0
  925. package/dist/private/tokenfield/useTokenField.cjs +587 -0
  926. package/dist/private/tokenfield/useTokenField.cjs.map +1 -0
  927. package/dist/private/tokenfield/useTokenField.js +590 -0
  928. package/dist/private/tokenfield/useTokenField.js.map +1 -0
  929. package/dist/private/tokenfield/useTokenField.mjs +579 -0
  930. package/dist/private/tokenfield/useTokenField.mjs.map +1 -0
  931. package/dist/private/toolbar/useToolbar.cjs +1 -0
  932. package/dist/private/toolbar/useToolbar.cjs.map +1 -1
  933. package/dist/private/toolbar/useToolbar.js +1 -0
  934. package/dist/private/toolbar/useToolbar.js.map +1 -1
  935. package/dist/private/toolbar/useToolbar.mjs +1 -0
  936. package/dist/private/toolbar/useToolbar.mjs.map +1 -1
  937. package/dist/private/tooltip/intlStrings.cjs +108 -0
  938. package/dist/private/tooltip/intlStrings.cjs.map +1 -0
  939. package/dist/private/tooltip/intlStrings.js +110 -0
  940. package/dist/private/tooltip/intlStrings.js.map +1 -0
  941. package/dist/private/tooltip/intlStrings.mjs +110 -0
  942. package/dist/private/tooltip/intlStrings.mjs.map +1 -0
  943. package/dist/private/tooltip/usePreviewTrigger.cjs +212 -0
  944. package/dist/private/tooltip/usePreviewTrigger.cjs.map +1 -0
  945. package/dist/private/tooltip/usePreviewTrigger.js +208 -0
  946. package/dist/private/tooltip/usePreviewTrigger.js.map +1 -0
  947. package/dist/private/tooltip/usePreviewTrigger.mjs +207 -0
  948. package/dist/private/tooltip/usePreviewTrigger.mjs.map +1 -0
  949. package/dist/private/tooltip/useSafeArea.cjs +134 -0
  950. package/dist/private/tooltip/useSafeArea.cjs.map +1 -0
  951. package/dist/private/tooltip/useSafeArea.js +130 -0
  952. package/dist/private/tooltip/useSafeArea.js.map +1 -0
  953. package/dist/private/tooltip/useSafeArea.mjs +129 -0
  954. package/dist/private/tooltip/useSafeArea.mjs.map +1 -0
  955. package/dist/private/tooltip/useTooltipTrigger.cjs +1 -0
  956. package/dist/private/tooltip/useTooltipTrigger.cjs.map +1 -1
  957. package/dist/private/tooltip/useTooltipTrigger.js +1 -0
  958. package/dist/private/tooltip/useTooltipTrigger.js.map +1 -1
  959. package/dist/private/tooltip/useTooltipTrigger.mjs +1 -0
  960. package/dist/private/tooltip/useTooltipTrigger.mjs.map +1 -1
  961. package/dist/private/tree/useTree.cjs +1 -0
  962. package/dist/private/tree/useTree.cjs.map +1 -1
  963. package/dist/private/tree/useTree.js +1 -0
  964. package/dist/private/tree/useTree.js.map +1 -1
  965. package/dist/private/tree/useTree.mjs +1 -0
  966. package/dist/private/tree/useTree.mjs.map +1 -1
  967. package/dist/private/utils/domHelpers.cjs +43 -12
  968. package/dist/private/utils/domHelpers.cjs.map +1 -1
  969. package/dist/private/utils/domHelpers.js +45 -14
  970. package/dist/private/utils/domHelpers.js.map +1 -1
  971. package/dist/private/utils/domHelpers.mjs +43 -13
  972. package/dist/private/utils/domHelpers.mjs.map +1 -1
  973. package/dist/private/utils/isVirtualEvent.cjs +1 -1
  974. package/dist/private/utils/isVirtualEvent.cjs.map +1 -1
  975. package/dist/private/utils/isVirtualEvent.js +1 -1
  976. package/dist/private/utils/isVirtualEvent.js.map +1 -1
  977. package/dist/private/utils/isVirtualEvent.mjs +1 -1
  978. package/dist/private/utils/isVirtualEvent.mjs.map +1 -1
  979. package/dist/private/utils/openLink.cjs +4 -2
  980. package/dist/private/utils/openLink.cjs.map +1 -1
  981. package/dist/private/utils/openLink.js +4 -2
  982. package/dist/private/utils/openLink.js.map +1 -1
  983. package/dist/private/utils/openLink.mjs +4 -2
  984. package/dist/private/utils/openLink.mjs.map +1 -1
  985. package/dist/private/utils/platform.cjs +8 -4
  986. package/dist/private/utils/platform.cjs.map +1 -1
  987. package/dist/private/utils/platform.js +7 -4
  988. package/dist/private/utils/platform.js.map +1 -1
  989. package/dist/private/utils/platform.mjs +7 -4
  990. package/dist/private/utils/platform.mjs.map +1 -1
  991. package/dist/private/utils/scrollIntoView.cjs +3 -3
  992. package/dist/private/utils/scrollIntoView.cjs.map +1 -1
  993. package/dist/private/utils/scrollIntoView.js +4 -4
  994. package/dist/private/utils/scrollIntoView.js.map +1 -1
  995. package/dist/private/utils/scrollIntoView.mjs +4 -4
  996. package/dist/private/utils/scrollIntoView.mjs.map +1 -1
  997. package/dist/private/utils/shadowdom/DOMFunctions.cjs +28 -1
  998. package/dist/private/utils/shadowdom/DOMFunctions.cjs.map +1 -1
  999. package/dist/private/utils/shadowdom/DOMFunctions.js +30 -2
  1000. package/dist/private/utils/shadowdom/DOMFunctions.js.map +1 -1
  1001. package/dist/private/utils/shadowdom/DOMFunctions.mjs +28 -2
  1002. package/dist/private/utils/shadowdom/DOMFunctions.mjs.map +1 -1
  1003. package/dist/private/utils/useDeepMemo.cjs +4 -1
  1004. package/dist/private/utils/useDeepMemo.cjs.map +1 -1
  1005. package/dist/private/utils/useDeepMemo.js +4 -1
  1006. package/dist/private/utils/useDeepMemo.js.map +1 -1
  1007. package/dist/private/utils/useDeepMemo.mjs +4 -1
  1008. package/dist/private/utils/useDeepMemo.mjs.map +1 -1
  1009. package/dist/private/utils/useDrag1D.cjs +2 -0
  1010. package/dist/private/utils/useDrag1D.cjs.map +1 -1
  1011. package/dist/private/utils/useDrag1D.js +2 -0
  1012. package/dist/private/utils/useDrag1D.js.map +1 -1
  1013. package/dist/private/utils/useDrag1D.mjs +2 -0
  1014. package/dist/private/utils/useDrag1D.mjs.map +1 -1
  1015. package/dist/private/utils/useFormReset.cjs +4 -0
  1016. package/dist/private/utils/useFormReset.cjs.map +1 -1
  1017. package/dist/private/utils/useFormReset.js +4 -0
  1018. package/dist/private/utils/useFormReset.js.map +1 -1
  1019. package/dist/private/utils/useFormReset.mjs +4 -0
  1020. package/dist/private/utils/useFormReset.mjs.map +1 -1
  1021. package/dist/private/utils/useId.cjs +23 -4
  1022. package/dist/private/utils/useId.cjs.map +1 -1
  1023. package/dist/private/utils/useId.js +23 -4
  1024. package/dist/private/utils/useId.js.map +1 -1
  1025. package/dist/private/utils/useId.mjs +23 -4
  1026. package/dist/private/utils/useId.mjs.map +1 -1
  1027. package/dist/private/utils/useLoadMoreSentinel.cjs +7 -3
  1028. package/dist/private/utils/useLoadMoreSentinel.cjs.map +1 -1
  1029. package/dist/private/utils/useLoadMoreSentinel.js +7 -3
  1030. package/dist/private/utils/useLoadMoreSentinel.js.map +1 -1
  1031. package/dist/private/utils/useLoadMoreSentinel.mjs +7 -3
  1032. package/dist/private/utils/useLoadMoreSentinel.mjs.map +1 -1
  1033. package/dist/private/utils/useObjectRef.cjs +3 -1
  1034. package/dist/private/utils/useObjectRef.cjs.map +1 -1
  1035. package/dist/private/utils/useObjectRef.js +3 -1
  1036. package/dist/private/utils/useObjectRef.js.map +1 -1
  1037. package/dist/private/utils/useObjectRef.mjs +3 -1
  1038. package/dist/private/utils/useObjectRef.mjs.map +1 -1
  1039. package/dist/private/utils/useSyncRef.cjs +2 -0
  1040. package/dist/private/utils/useSyncRef.cjs.map +1 -1
  1041. package/dist/private/utils/useSyncRef.js +2 -0
  1042. package/dist/private/utils/useSyncRef.js.map +1 -1
  1043. package/dist/private/utils/useSyncRef.mjs +2 -0
  1044. package/dist/private/utils/useSyncRef.mjs.map +1 -1
  1045. package/dist/private/utils/useViewportSize.cjs +3 -3
  1046. package/dist/private/utils/useViewportSize.cjs.map +1 -1
  1047. package/dist/private/utils/useViewportSize.js +4 -4
  1048. package/dist/private/utils/useViewportSize.js.map +1 -1
  1049. package/dist/private/utils/useViewportSize.mjs +4 -4
  1050. package/dist/private/utils/useViewportSize.mjs.map +1 -1
  1051. package/dist/private/virtualizer/ScrollView.cjs +7 -4
  1052. package/dist/private/virtualizer/ScrollView.cjs.map +1 -1
  1053. package/dist/private/virtualizer/ScrollView.js +8 -5
  1054. package/dist/private/virtualizer/ScrollView.js.map +1 -1
  1055. package/dist/private/virtualizer/ScrollView.mjs +8 -5
  1056. package/dist/private/virtualizer/ScrollView.mjs.map +1 -1
  1057. package/dist/private/virtualizer/VirtualizerItem.cjs +3 -2
  1058. package/dist/private/virtualizer/VirtualizerItem.cjs.map +1 -1
  1059. package/dist/private/virtualizer/VirtualizerItem.js +3 -2
  1060. package/dist/private/virtualizer/VirtualizerItem.js.map +1 -1
  1061. package/dist/private/virtualizer/VirtualizerItem.mjs +3 -2
  1062. package/dist/private/virtualizer/VirtualizerItem.mjs.map +1 -1
  1063. package/dist/private/virtualizer/useVirtualizerItem.cjs +35 -2
  1064. package/dist/private/virtualizer/useVirtualizerItem.cjs.map +1 -1
  1065. package/dist/private/virtualizer/useVirtualizerItem.js +36 -3
  1066. package/dist/private/virtualizer/useVirtualizerItem.js.map +1 -1
  1067. package/dist/private/virtualizer/useVirtualizerItem.mjs +36 -3
  1068. package/dist/private/virtualizer/useVirtualizerItem.mjs.map +1 -1
  1069. package/dist/private/visually-hidden/VisuallyHidden.cjs +2 -1
  1070. package/dist/private/visually-hidden/VisuallyHidden.cjs.map +1 -1
  1071. package/dist/private/visually-hidden/VisuallyHidden.js +2 -1
  1072. package/dist/private/visually-hidden/VisuallyHidden.js.map +1 -1
  1073. package/dist/private/visually-hidden/VisuallyHidden.mjs +2 -1
  1074. package/dist/private/visually-hidden/VisuallyHidden.mjs.map +1 -1
  1075. package/dist/types/exports/index.d.ts +9 -0
  1076. package/dist/types/exports/private/utils/domHelpers.d.ts +1 -1
  1077. package/dist/types/exports/private/utils/platform.d.ts +1 -1
  1078. package/dist/types/exports/private/utils/shadowdom/DOMFunctions.d.ts +1 -1
  1079. package/dist/types/exports/useContextMenu.d.ts +2 -0
  1080. package/dist/types/exports/usePreviewTrigger.d.ts +2 -0
  1081. package/dist/types/exports/useTokenField.d.ts +4 -0
  1082. package/dist/types/src/button/useToggleButtonGroup.d.ts +8 -0
  1083. package/dist/types/src/combobox/useComboBox.d.ts +7 -1
  1084. package/dist/types/src/dialog/useDialog.d.ts +2 -0
  1085. package/dist/types/src/grid/useGrid.d.ts +7 -0
  1086. package/dist/types/src/grid/useGridCell.d.ts +8 -1
  1087. package/dist/types/src/grid/utils.d.ts +1 -0
  1088. package/dist/types/src/gridlist/useGridListItem.d.ts +13 -0
  1089. package/dist/types/src/interactions/createKeyboardShortcutHandler.d.ts +56 -0
  1090. package/dist/types/src/interactions/useContextMenu.d.ts +21 -0
  1091. package/dist/types/src/interactions/useKeyboard.d.ts +7 -0
  1092. package/dist/types/src/interactions/useLongPress.d.ts +2 -0
  1093. package/dist/types/src/overlays/usePopover.d.ts +2 -1
  1094. package/dist/types/src/table/useTableCell.d.ts +12 -0
  1095. package/dist/types/src/table/useTableColumnHeader.d.ts +12 -0
  1096. package/dist/types/src/table/useTableColumnResize.d.ts +5 -0
  1097. package/dist/types/src/tokenfield/useToken.d.ts +14 -0
  1098. package/dist/types/src/tokenfield/useTokenField.d.ts +57 -0
  1099. package/dist/types/src/tooltip/usePreviewTrigger.d.ts +27 -0
  1100. package/dist/types/src/tooltip/useSafeArea.d.ts +26 -0
  1101. package/dist/types/src/utils/domHelpers.d.ts +20 -5
  1102. package/dist/types/src/utils/platform.d.ts +1 -0
  1103. package/dist/types/src/utils/shadowdom/DOMFunctions.d.ts +11 -0
  1104. package/dist/types/src/utils/useLoadMoreSentinel.d.ts +7 -0
  1105. package/dist/types/src/virtualizer/VirtualizerItem.d.ts +1 -0
  1106. package/dist/types/src/virtualizer/useVirtualizerItem.d.ts +1 -0
  1107. package/i18n/ar-AE.js +1 -1
  1108. package/i18n/ar-AE.mjs +1 -1
  1109. package/i18n/bg-BG.js +1 -1
  1110. package/i18n/bg-BG.mjs +1 -1
  1111. package/i18n/cs-CZ.js +1 -1
  1112. package/i18n/cs-CZ.mjs +1 -1
  1113. package/i18n/da-DK.js +1 -1
  1114. package/i18n/da-DK.mjs +1 -1
  1115. package/i18n/de-DE.js +1 -1
  1116. package/i18n/de-DE.mjs +1 -1
  1117. package/i18n/el-GR.js +1 -1
  1118. package/i18n/el-GR.mjs +1 -1
  1119. package/i18n/en-US.js +1 -1
  1120. package/i18n/en-US.mjs +1 -1
  1121. package/i18n/es-ES.js +1 -1
  1122. package/i18n/es-ES.mjs +1 -1
  1123. package/i18n/et-EE.js +1 -1
  1124. package/i18n/et-EE.mjs +1 -1
  1125. package/i18n/fi-FI.js +1 -1
  1126. package/i18n/fi-FI.mjs +1 -1
  1127. package/i18n/fr-FR.js +1 -1
  1128. package/i18n/fr-FR.mjs +1 -1
  1129. package/i18n/he-IL.js +1 -1
  1130. package/i18n/he-IL.mjs +1 -1
  1131. package/i18n/hr-HR.js +1 -1
  1132. package/i18n/hr-HR.mjs +1 -1
  1133. package/i18n/hu-HU.js +1 -1
  1134. package/i18n/hu-HU.mjs +1 -1
  1135. package/i18n/it-IT.js +1 -1
  1136. package/i18n/it-IT.mjs +1 -1
  1137. package/i18n/ja-JP.js +1 -1
  1138. package/i18n/ja-JP.mjs +1 -1
  1139. package/i18n/ko-KR.js +1 -1
  1140. package/i18n/ko-KR.mjs +1 -1
  1141. package/i18n/lt-LT.js +1 -1
  1142. package/i18n/lt-LT.mjs +1 -1
  1143. package/i18n/lv-LV.js +1 -1
  1144. package/i18n/lv-LV.mjs +1 -1
  1145. package/i18n/nb-NO.js +1 -1
  1146. package/i18n/nb-NO.mjs +1 -1
  1147. package/i18n/nl-NL.js +1 -1
  1148. package/i18n/nl-NL.mjs +1 -1
  1149. package/i18n/pl-PL.js +1 -1
  1150. package/i18n/pl-PL.mjs +1 -1
  1151. package/i18n/pt-BR.js +1 -1
  1152. package/i18n/pt-BR.mjs +1 -1
  1153. package/i18n/pt-PT.js +1 -1
  1154. package/i18n/pt-PT.mjs +1 -1
  1155. package/i18n/ro-RO.js +1 -1
  1156. package/i18n/ro-RO.mjs +1 -1
  1157. package/i18n/ru-RU.js +1 -1
  1158. package/i18n/ru-RU.mjs +1 -1
  1159. package/i18n/sk-SK.js +1 -1
  1160. package/i18n/sk-SK.mjs +1 -1
  1161. package/i18n/sl-SI.js +1 -1
  1162. package/i18n/sl-SI.mjs +1 -1
  1163. package/i18n/sr-SP.js +1 -1
  1164. package/i18n/sr-SP.mjs +1 -1
  1165. package/i18n/sv-SE.js +1 -1
  1166. package/i18n/sv-SE.mjs +1 -1
  1167. package/i18n/tr-TR.js +1 -1
  1168. package/i18n/tr-TR.mjs +1 -1
  1169. package/i18n/uk-UA.js +1 -1
  1170. package/i18n/uk-UA.mjs +1 -1
  1171. package/i18n/zh-CN.js +1 -1
  1172. package/i18n/zh-CN.mjs +1 -1
  1173. package/i18n/zh-TW.js +1 -1
  1174. package/i18n/zh-TW.mjs +1 -1
  1175. package/package.json +6 -6
  1176. package/useContextMenu/package.json +5 -0
  1177. package/usePreviewTrigger/package.json +5 -0
  1178. package/useTokenField/package.json +5 -0
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/react-aria/src/slider/useSlider.ts"],"sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps, DOMAttributes, DOMProps, RefObject} from '@react-types/shared';\nimport {clamp} from 'react-stately/private/utils/number';\nimport {getSliderThumbId, sliderData} from './utils';\nimport {mergeProps} from '../utils/mergeProps';\nimport React, {LabelHTMLAttributes, OutputHTMLAttributes, useRef} from 'react';\nimport {setInteractionModality} from '../interactions/useFocusVisible';\nimport {SliderProps, SliderState} from 'react-stately/useSliderState';\nimport {useGlobalListeners} from '../utils/useGlobalListeners';\nimport {useLabel} from '../label/useLabel';\nimport {useLocale} from '../i18n/I18nProvider';\nimport {useMove} from '../interactions/useMove';\n\nexport interface AriaSliderProps<T = number | number[]>\n extends SliderProps<T>, DOMProps, AriaLabelingProps {}\n\nexport interface SliderAria {\n /** Props for the label element. */\n labelProps: LabelHTMLAttributes<HTMLLabelElement>;\n\n /** Props for the root element of the slider component; groups slider inputs. */\n groupProps: DOMAttributes;\n\n /** Props for the track element. */\n trackProps: DOMAttributes;\n\n /** Props for the output element, displaying the value of the slider thumbs. */\n outputProps: OutputHTMLAttributes<HTMLOutputElement>;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a slider component representing one or\n * more values.\n *\n * @param props Props for the slider.\n * @param state State for the slider, as returned by `useSliderState`.\n * @param trackRef Ref for the \"track\" element. The width of this element provides the \"length\"\n * of the track -- the span of one dimensional space that the slider thumb can be. It also\n * accepts click and drag motions, so that the closest thumb will follow clicks and drags on\n * the track.\n */\nexport function useSlider<T extends number | number[]>(\n props: AriaSliderProps<T>,\n state: SliderState,\n trackRef: RefObject<Element | null>\n): SliderAria {\n let {labelProps, fieldProps} = useLabel(props);\n\n let isVertical = props.orientation === 'vertical';\n\n // Attach id of the label to the state so it can be accessed by useSliderThumb.\n sliderData.set(state, {\n id: (labelProps.id ?? fieldProps.id)!,\n 'aria-describedby': props['aria-describedby'],\n 'aria-details': props['aria-details']\n });\n\n let {direction} = useLocale();\n\n let {addGlobalListener, removeGlobalListener} = useGlobalListeners();\n\n // When the user clicks or drags the track, we want the motion to set and drag the\n // closest thumb. Hence we also need to install useMove() on the track element.\n // Here, we keep track of which index is the \"closest\" to the drag start point.\n // It is set onMouseDown/onTouchDown; see trackProps below.\n const realTimeTrackDraggingIndex = useRef<number | null>(null);\n\n const reverseX = direction === 'rtl';\n const currentPosition = useRef<number | null>(null);\n const {moveProps} = useMove({\n onMoveStart() {\n currentPosition.current = null;\n },\n onMove({deltaX, deltaY}) {\n if (!trackRef.current) {\n return;\n }\n let {height, width} = trackRef.current.getBoundingClientRect();\n let size = isVertical ? height : width;\n\n if (currentPosition.current == null && realTimeTrackDraggingIndex.current != null) {\n currentPosition.current = state.getThumbPercent(realTimeTrackDraggingIndex.current) * size;\n }\n\n let delta = isVertical ? deltaY : deltaX;\n if (isVertical || reverseX) {\n delta = -delta;\n }\n\n currentPosition.current! += delta;\n\n if (realTimeTrackDraggingIndex.current != null && trackRef.current) {\n const percent = clamp(currentPosition.current! / size, 0, 1);\n state.setThumbPercent(realTimeTrackDraggingIndex.current, percent);\n }\n },\n onMoveEnd() {\n if (realTimeTrackDraggingIndex.current != null) {\n state.setThumbDragging(realTimeTrackDraggingIndex.current, false);\n realTimeTrackDraggingIndex.current = null;\n }\n }\n });\n\n let currentPointer = useRef<number | null | undefined>(undefined);\n let onDownTrack = (\n e: React.UIEvent,\n id: number | undefined,\n clientX: number,\n clientY: number\n ) => {\n // We only trigger track-dragging if the user clicks on the track itself and nothing is currently being dragged.\n if (\n trackRef.current &&\n !props.isDisabled &&\n state.values.every((_, i) => !state.isThumbDragging(i))\n ) {\n let {height, width, top, left} = trackRef.current.getBoundingClientRect();\n let size = isVertical ? height : width;\n // Find the closest thumb\n const trackPosition = isVertical ? top : left;\n const clickPosition = isVertical ? clientY : clientX;\n const offset = clickPosition - trackPosition;\n let percent = offset / size;\n if (direction === 'rtl' || isVertical) {\n percent = 1 - percent;\n }\n let value = state.getPercentValue(percent);\n\n // to find the closet thumb we split the array based on the first thumb position to the \"right/end\" of the click.\n let closestThumb;\n let split = state.values.findIndex(v => value - v < 0);\n if (split === 0) {\n // If the index is zero then the closetThumb is the first one\n closestThumb = split;\n } else if (split === -1) {\n // If no index is found they've clicked past all the thumbs\n closestThumb = state.values.length - 1;\n } else {\n let lastLeft = state.values[split - 1];\n let firstRight = state.values[split];\n // Pick the last left/start thumb, unless they are stacked on top of each other, then pick the right/end one\n if (Math.abs(lastLeft - value) < Math.abs(firstRight - value)) {\n closestThumb = split - 1;\n } else {\n closestThumb = split;\n }\n }\n\n // Confirm that the found closest thumb is editable, not disabled, and move it\n if (closestThumb >= 0 && state.isThumbEditable(closestThumb)) {\n // Don't unfocus anything\n e.preventDefault();\n\n realTimeTrackDraggingIndex.current = closestThumb;\n state.setFocusedThumb(closestThumb);\n currentPointer.current = id;\n\n state.setThumbDragging(realTimeTrackDraggingIndex.current!, true);\n state.setThumbValue(closestThumb, value);\n\n addGlobalListener(window, 'mouseup', onUpTrack, false);\n addGlobalListener(window, 'touchend', onUpTrack, false);\n addGlobalListener(window, 'pointerup', onUpTrack, false);\n } else {\n realTimeTrackDraggingIndex.current = null;\n }\n }\n };\n\n let onUpTrack = e => {\n let id = e.pointerId ?? e.changedTouches?.[0].identifier;\n if (id === currentPointer.current) {\n if (realTimeTrackDraggingIndex.current != null) {\n state.setThumbDragging(realTimeTrackDraggingIndex.current, false);\n realTimeTrackDraggingIndex.current = null;\n }\n\n removeGlobalListener(window, 'mouseup', onUpTrack, false);\n removeGlobalListener(window, 'touchend', onUpTrack, false);\n removeGlobalListener(window, 'pointerup', onUpTrack, false);\n }\n };\n\n if ('htmlFor' in labelProps && labelProps.htmlFor) {\n // Ideally the `for` attribute should point to the first thumb, but VoiceOver on iOS\n // causes this to override the `aria-labelledby` on the thumb. This causes the first\n // thumb to only be announced as the slider label rather than its individual name as well.\n // See https://bugs.webkit.org/show_bug.cgi?id=172464.\n delete labelProps.htmlFor;\n labelProps.onClick = () => {\n // Safari does not focus <input type=\"range\"> elements when clicking on an associated <label>,\n // so do it manually. In addition, make sure we show the focus ring.\n document.getElementById(getSliderThumbId(state, 0))?.focus();\n setInteractionModality('keyboard');\n };\n }\n\n return {\n labelProps,\n // The root element of the Slider will have role=\"group\" to group together\n // all the thumb inputs in the Slider. The label of the Slider will\n // be used to label the group.\n groupProps: {\n role: 'group',\n ...fieldProps\n },\n trackProps: mergeProps(\n {\n onMouseDown(e: React.MouseEvent) {\n if (e.button !== 0 || e.altKey || e.ctrlKey || e.metaKey) {\n return;\n }\n onDownTrack(e, undefined, e.clientX, e.clientY);\n },\n onPointerDown(e: React.PointerEvent) {\n if (e.pointerType === 'mouse' && (e.button !== 0 || e.altKey || e.ctrlKey || e.metaKey)) {\n return;\n }\n onDownTrack(e, e.pointerId, e.clientX, e.clientY);\n },\n onTouchStart(e: React.TouchEvent) {\n onDownTrack(\n e,\n e.changedTouches[0].identifier,\n e.changedTouches[0].clientX,\n e.changedTouches[0].clientY\n );\n },\n style: {\n position: 'relative',\n touchAction: 'none'\n }\n },\n moveProps\n ),\n outputProps: {\n htmlFor: state.values.map((_, index) => getSliderThumbId(state, index)).join(' '),\n 'aria-live': 'off'\n }\n };\n}\n"],"names":[],"version":3,"file":"useSlider.mjs.map"}
1
+ {"mappings":"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","sources":["packages/react-aria/src/slider/useSlider.ts"],"sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps, DOMAttributes, DOMProps, RefObject} from '@react-types/shared';\nimport {clamp} from 'react-stately/private/utils/number';\nimport {getSliderThumbId, sliderData} from './utils';\nimport {mergeProps} from '../utils/mergeProps';\nimport React, {LabelHTMLAttributes, OutputHTMLAttributes, useRef} from 'react';\nimport {setInteractionModality} from '../interactions/useFocusVisible';\nimport {SliderProps, SliderState} from 'react-stately/useSliderState';\nimport {useGlobalListeners} from '../utils/useGlobalListeners';\nimport {useLabel} from '../label/useLabel';\nimport {useLocale} from '../i18n/I18nProvider';\nimport {useMove} from '../interactions/useMove';\n\nexport interface AriaSliderProps<T = number | number[]>\n extends SliderProps<T>, DOMProps, AriaLabelingProps {}\n\nexport interface SliderAria {\n /** Props for the label element. */\n labelProps: LabelHTMLAttributes<HTMLLabelElement>;\n\n /** Props for the root element of the slider component; groups slider inputs. */\n groupProps: DOMAttributes;\n\n /** Props for the track element. */\n trackProps: DOMAttributes;\n\n /** Props for the output element, displaying the value of the slider thumbs. */\n outputProps: OutputHTMLAttributes<HTMLOutputElement>;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a slider component representing one or\n * more values.\n *\n * @param props Props for the slider.\n * @param state State for the slider, as returned by `useSliderState`.\n * @param trackRef Ref for the \"track\" element. The width of this element provides the \"length\"\n * of the track -- the span of one dimensional space that the slider thumb can be. It also\n * accepts click and drag motions, so that the closest thumb will follow clicks and drags on\n * the track.\n */\n// oxlint-disable-next-line react/react-compiler\nexport function useSlider<T extends number | number[]>(\n props: AriaSliderProps<T>,\n state: SliderState,\n trackRef: RefObject<Element | null>\n): SliderAria {\n let {labelProps, fieldProps} = useLabel(props);\n\n let isVertical = props.orientation === 'vertical';\n\n // Attach id of the label to the state so it can be accessed by useSliderThumb.\n sliderData.set(state, {\n id: (labelProps.id ?? fieldProps.id)!,\n 'aria-describedby': props['aria-describedby'],\n 'aria-details': props['aria-details']\n });\n\n let {direction} = useLocale();\n\n let {addGlobalListener, removeGlobalListener} = useGlobalListeners();\n\n // When the user clicks or drags the track, we want the motion to set and drag the\n // closest thumb. Hence we also need to install useMove() on the track element.\n // Here, we keep track of which index is the \"closest\" to the drag start point.\n // It is set onMouseDown/onTouchDown; see trackProps below.\n const realTimeTrackDraggingIndex = useRef<number | null>(null);\n\n const reverseX = direction === 'rtl';\n const currentPosition = useRef<number | null>(null);\n const {moveProps} = useMove({\n onMoveStart() {\n currentPosition.current = null;\n },\n onMove({deltaX, deltaY}) {\n if (!trackRef.current) {\n return;\n }\n let {height, width} = trackRef.current.getBoundingClientRect();\n let size = isVertical ? height : width;\n\n if (currentPosition.current == null && realTimeTrackDraggingIndex.current != null) {\n currentPosition.current = state.getThumbPercent(realTimeTrackDraggingIndex.current) * size;\n }\n\n let delta = isVertical ? deltaY : deltaX;\n if (isVertical || reverseX) {\n delta = -delta;\n }\n\n currentPosition.current! += delta;\n\n if (realTimeTrackDraggingIndex.current != null && trackRef.current) {\n const percent = clamp(currentPosition.current! / size, 0, 1);\n state.setThumbPercent(realTimeTrackDraggingIndex.current, percent);\n }\n },\n onMoveEnd() {\n if (realTimeTrackDraggingIndex.current != null) {\n state.setThumbDragging(realTimeTrackDraggingIndex.current, false);\n realTimeTrackDraggingIndex.current = null;\n }\n }\n });\n\n let currentPointer = useRef<number | null | undefined>(undefined);\n let onDownTrack = (\n e: React.UIEvent,\n id: number | undefined,\n clientX: number,\n clientY: number\n ) => {\n // We only trigger track-dragging if the user clicks on the track itself and nothing is currently being dragged.\n if (\n trackRef.current &&\n !props.isDisabled &&\n state.values.every((_, i) => !state.isThumbDragging(i))\n ) {\n let {height, width, top, left} = trackRef.current.getBoundingClientRect();\n let size = isVertical ? height : width;\n // Find the closest thumb\n const trackPosition = isVertical ? top : left;\n const clickPosition = isVertical ? clientY : clientX;\n const offset = clickPosition - trackPosition;\n let percent = offset / size;\n if (direction === 'rtl' || isVertical) {\n percent = 1 - percent;\n }\n let value = state.getPercentValue(percent);\n\n // to find the closet thumb we split the array based on the first thumb position to the \"right/end\" of the click.\n let closestThumb;\n let split = state.values.findIndex(v => value - v < 0);\n if (split === 0) {\n // If the index is zero then the closetThumb is the first one\n closestThumb = split;\n } else if (split === -1) {\n // If no index is found they've clicked past all the thumbs\n closestThumb = state.values.length - 1;\n } else {\n let lastLeft = state.values[split - 1];\n let firstRight = state.values[split];\n // Pick the last left/start thumb, unless they are stacked on top of each other, then pick the right/end one\n if (Math.abs(lastLeft - value) < Math.abs(firstRight - value)) {\n closestThumb = split - 1;\n } else {\n closestThumb = split;\n }\n }\n\n // Confirm that the found closest thumb is editable, not disabled, and move it\n if (closestThumb >= 0 && state.isThumbEditable(closestThumb)) {\n // Don't unfocus anything\n e.preventDefault();\n\n realTimeTrackDraggingIndex.current = closestThumb;\n state.setFocusedThumb(closestThumb);\n currentPointer.current = id;\n\n state.setThumbDragging(realTimeTrackDraggingIndex.current!, true);\n state.setThumbValue(closestThumb, value);\n\n addGlobalListener(window, 'mouseup', onUpTrack, false);\n addGlobalListener(window, 'touchend', onUpTrack, false);\n addGlobalListener(window, 'pointerup', onUpTrack, false);\n } else {\n realTimeTrackDraggingIndex.current = null;\n }\n }\n };\n\n let onUpTrack = e => {\n let id = e.pointerId ?? e.changedTouches?.[0].identifier;\n if (id === currentPointer.current) {\n if (realTimeTrackDraggingIndex.current != null) {\n state.setThumbDragging(realTimeTrackDraggingIndex.current, false);\n realTimeTrackDraggingIndex.current = null;\n }\n\n removeGlobalListener(window, 'mouseup', onUpTrack, false);\n removeGlobalListener(window, 'touchend', onUpTrack, false);\n removeGlobalListener(window, 'pointerup', onUpTrack, false);\n }\n };\n\n if ('htmlFor' in labelProps && labelProps.htmlFor) {\n // Ideally the `for` attribute should point to the first thumb, but VoiceOver on iOS\n // causes this to override the `aria-labelledby` on the thumb. This causes the first\n // thumb to only be announced as the slider label rather than its individual name as well.\n // See https://bugs.webkit.org/show_bug.cgi?id=172464.\n delete labelProps.htmlFor;\n labelProps.onClick = () => {\n // Safari does not focus <input type=\"range\"> elements when clicking on an associated <label>,\n // so do it manually. In addition, make sure we show the focus ring.\n document.getElementById(getSliderThumbId(state, 0))?.focus();\n setInteractionModality('keyboard');\n };\n }\n\n return {\n labelProps,\n // The root element of the Slider will have role=\"group\" to group together\n // all the thumb inputs in the Slider. The label of the Slider will\n // be used to label the group.\n groupProps: {\n role: 'group',\n ...fieldProps\n },\n trackProps: mergeProps(\n {\n onMouseDown(e: React.MouseEvent) {\n if (e.button !== 0 || e.altKey || e.ctrlKey || e.metaKey) {\n return;\n }\n onDownTrack(e, undefined, e.clientX, e.clientY);\n },\n onPointerDown(e: React.PointerEvent) {\n if (e.pointerType === 'mouse' && (e.button !== 0 || e.altKey || e.ctrlKey || e.metaKey)) {\n return;\n }\n onDownTrack(e, e.pointerId, e.clientX, e.clientY);\n },\n onTouchStart(e: React.TouchEvent) {\n onDownTrack(\n e,\n e.changedTouches[0].identifier,\n e.changedTouches[0].clientX,\n e.changedTouches[0].clientY\n );\n },\n style: {\n position: 'relative',\n touchAction: 'none'\n }\n },\n moveProps\n ),\n outputProps: {\n htmlFor: state.values.map((_, index) => getSliderThumbId(state, index)).join(' '),\n 'aria-live': 'off'\n }\n };\n}\n"],"names":[],"version":3,"file":"useSlider.mjs.map"}
@@ -58,34 +58,36 @@ function $8dc698834b01506b$export$8d15029008292ae(opts, state) {
58
58
  ]);
59
59
  let reverseX = direction === 'rtl';
60
60
  let currentPosition = (0, $hI0kH$react.useRef)(null);
61
+ let keyboardUpdate = (cb)=>{
62
+ // remember to set this so that onChangeEnd is fired
63
+ state.setThumbDragging(index, true);
64
+ cb();
65
+ state.setThumbDragging(index, false);
66
+ };
61
67
  let { keyboardProps: keyboardProps } = (0, $6d2f10bb8b359da5$exports.useKeyboard)({
62
- onKeyDown (e) {
63
- let { getThumbMaxValue: getThumbMaxValue, getThumbMinValue: getThumbMinValue, decrementThumb: decrementThumb, incrementThumb: incrementThumb, setThumbValue: setThumbValue, setThumbDragging: setThumbDragging, pageSize: pageSize } = state;
64
- // these are the cases that useMove or useSlider don't handle
65
- if (!/^(PageUp|PageDown|Home|End)$/.test(e.key)) {
66
- e.continuePropagation();
67
- return;
68
- }
69
- // same handling as useMove, stopPropagation to prevent useSlider from handling the event as well.
70
- e.preventDefault();
71
- // remember to set this so that onChangeEnd is fired
72
- setThumbDragging(index, true);
73
- switch(e.key){
74
- case 'PageUp':
75
- incrementThumb(index, pageSize);
76
- break;
77
- case 'PageDown':
78
- decrementThumb(index, pageSize);
79
- break;
80
- case 'Home':
81
- setThumbValue(index, getThumbMinValue(index));
82
- break;
83
- case 'End':
84
- setThumbValue(index, getThumbMaxValue(index));
85
- break;
68
+ shortcuts: {
69
+ PageUp: ()=>{
70
+ return keyboardUpdate(()=>{
71
+ state.incrementThumb(index, state.pageSize);
72
+ });
73
+ },
74
+ PageDown: ()=>{
75
+ return keyboardUpdate(()=>{
76
+ state.decrementThumb(index, state.pageSize);
77
+ });
78
+ },
79
+ Home: ()=>{
80
+ return keyboardUpdate(()=>{
81
+ state.setThumbValue(index, state.getThumbMinValue(index));
82
+ });
83
+ },
84
+ End: ()=>{
85
+ return keyboardUpdate(()=>{
86
+ state.setThumbValue(index, state.getThumbMaxValue(index));
87
+ });
86
88
  }
87
- setThumbDragging(index, false);
88
- }
89
+ },
90
+ allowRepeats: true
89
91
  });
90
92
  let { moveProps: moveProps } = (0, $2304f84c457be372$exports.useMove)({
91
93
  onMoveStart () {
@@ -1 +1 @@
1
- {"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmGO,SAAS,yCAAe,IAA4B,EAAE,KAAkB;IAC7E,IAAI,SACF,QAAQ,eACR,UAAU,mBACV,eAAe,aACf,SAAS,YACT,QAAQ,YACR,QAAQ,eACR,cAAc,MAAM,WAAW,QAC/B,IAAI,QACJ,IAAI,EACL,GAAG;IAEJ,IAAI,aAAa,KAAK,UAAU,IAAI,MAAM,UAAU;IACpD,IAAI,aAAa,gBAAgB;IAEjC,IAAI,aAAC,SAAS,EAAC,GAAG,CAAA,GAAA,mCAAQ;IAC1B,IAAI,qBAAC,iBAAiB,wBAAE,oBAAoB,EAAC,GAAG,CAAA,GAAA,4CAAiB;IAEjE,IAAI,OAAO,CAAA,GAAA,oCAAS,EAAE,GAAG,CAAC;IAC1B,MAAM,cAAC,UAAU,cAAE,UAAU,EAAC,GAAG,CAAA,GAAA,kCAAO,EAAE;QACxC,GAAG,IAAI;QACP,IAAI,CAAA,GAAA,0CAAe,EAAE,OAAO;QAC5B,mBAAmB,GAAG,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,IAAI;IACvE;IAEA,MAAM,QAAQ,MAAM,MAAM,CAAC,MAAM;IAEjC,MAAM,aAAa,CAAA,GAAA,wBAAU,EAAE;QAC7B,IAAI,SAAS,OAAO,EAClB,CAAA,GAAA,+CAAoB,EAAE,SAAS,OAAO;IAE1C,GAAG;QAAC;KAAS;IAEb,MAAM,YAAY,MAAM,YAAY,KAAK;IAEzC,CAAA,GAAA,sBAAQ,EAAE;QACR,IAAI,WACF;IAEJ,GAAG;QAAC;QAAW;KAAW;IAE1B,IAAI,WAAW,cAAc;IAC7B,IAAI,kBAAkB,CAAA,GAAA,mBAAK,EAAU;IAErC,IAAI,iBAAC,aAAa,EAAC,GAAG,CAAA,GAAA,qCAAU,EAAE;QAChC,WAAU,CAAC;YACT,IAAI,oBACF,gBAAgB,oBAChB,gBAAgB,kBAChB,cAAc,kBACd,cAAc,iBACd,aAAa,oBACb,gBAAgB,YAChB,QAAQ,EACT,GAAG;YACJ,6DAA6D;YAC7D,IAAI,CAAC,+BAA+B,IAAI,CAAC,EAAE,GAAG,GAAG;gBAC/C,EAAE,mBAAmB;gBACrB;YACF;YACA,kGAAkG;YAClG,EAAE,cAAc;YAChB,oDAAoD;YACpD,iBAAiB,OAAO;YACxB,OAAQ,EAAE,GAAG;gBACX,KAAK;oBACH,eAAe,OAAO;oBACtB;gBACF,KAAK;oBACH,eAAe,OAAO;oBACtB;gBACF,KAAK;oBACH,cAAc,OAAO,iBAAiB;oBACtC;gBACF,KAAK;oBACH,cAAc,OAAO,iBAAiB;oBACtC;YACJ;YACA,iBAAiB,OAAO;QAC1B;IACF;IAEA,IAAI,aAAC,SAAS,EAAC,GAAG,CAAA,GAAA,iCAAM,EAAE;QACxB;YACE,gBAAgB,OAAO,GAAG;YAC1B,MAAM,gBAAgB,CAAC,OAAO;QAChC;QACA,QAAO,UAAC,MAAM,UAAE,MAAM,eAAE,WAAW,YAAE,QAAQ,EAAC;YAC5C,MAAM,mBAAC,eAAe,mBAAE,eAAe,kBAAE,cAAc,kBAAE,cAAc,QAAE,IAAI,YAAE,QAAQ,EAAC,GACtF;YACF,IAAI,CAAC,SAAS,OAAO,EACnB;YAEF,IAAI,SAAC,KAAK,UAAE,MAAM,EAAC,GAAG,SAAS,OAAO,CAAC,qBAAqB;YAC5D,IAAI,OAAO,aAAa,SAAS;YAEjC,IAAI,gBAAgB,OAAO,IAAI,MAC7B,gBAAgB,OAAO,GAAG,gBAAgB,SAAS;YAErD,IAAI,gBAAgB;gBAClB,IAAI,AAAC,SAAS,KAAK,YAAc,SAAS,KAAK,CAAC,YAAa,SAAS,GACpE,eAAe,OAAO,WAAW,WAAW;qBAE5C,eAAe,OAAO,WAAW,WAAW;mBAEzC;gBACL,IAAI,QAAQ,aAAa,SAAS;gBAClC,IAAI,cAAc,UAChB,QAAQ,CAAC;gBAGX,gBAAgB,OAAO,IAAI;gBAC3B,gBAAgB,OAAO,CAAA,GAAA,2CAAI,EAAE,gBAAgB,OAAO,GAAG,MAAM,GAAG;YAClE;QACF;QACA;YACE,MAAM,gBAAgB,CAAC,OAAO;QAChC;IACF;IAEA,kDAAkD;IAClD,MAAM,gBAAgB,CAAC,OAAO,CAAC;IAE/B,MAAM,kBAAC,cAAc,EAAC,GAAG,CAAA,GAAA,sCAAW,EAClC,CAAA,GAAA,oCAAS,EAAE,MAAM;QACf,SAAS,IAAM,MAAM,eAAe,CAAC;QACrC,QAAQ,IAAM,MAAM,eAAe,CAAC;IACtC,IACA;IAGF,IAAI,iBAAiB,CAAA,GAAA,mBAAK,EAAsB;IAChD,IAAI,SAAS,CAAC;QACZ;QACA,eAAe,OAAO,GAAG;QACzB,MAAM,gBAAgB,CAAC,OAAO;QAE9B,kBAAkB,QAAQ,WAAW,MAAM;QAC3C,kBAAkB,QAAQ,YAAY,MAAM;QAC5C,kBAAkB,QAAQ,aAAa,MAAM;IAC/C;IAEA,IAAI,OAAO,CAAA;QACT,IAAI,KAAK,EAAE,SAAS,IAAI,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC;QAC9C,IAAI,OAAO,eAAe,OAAO,EAAE;YACjC;YACA,MAAM,gBAAgB,CAAC,OAAO;YAC9B,qBAAqB,QAAQ,WAAW,MAAM;YAC9C,qBAAqB,QAAQ,YAAY,MAAM;YAC/C,qBAAqB,QAAQ,aAAa,MAAM;QAClD;IACF;IAEA,IAAI,gBAAgB,MAAM,eAAe,CAAC;IAC1C,IAAI,cAAc,cAAc,OAC9B,gBAAgB,IAAI;IAGtB,IAAI,eAAe,CAAC,aAChB,CAAA,GAAA,oCAAS,EAAE,eAAe,WAAW;QACnC,aAAa,CAAC;YACZ,IAAI,EAAE,MAAM,KAAK,KAAK,EAAE,MAAM,IAAI,EAAE,OAAO,IAAI,EAAE,OAAO,EACtD;YAEF;QACF;QACA,eAAe,CAAC;YACd,IAAI,EAAE,MAAM,KAAK,KAAK,EAAE,MAAM,IAAI,EAAE,OAAO,IAAI,EAAE,OAAO,EACtD;YAEF,OAAO,EAAE,SAAS;QACpB;QACA,cAAc,CAAC;YACb,OAAO,EAAE,cAAc,CAAC,EAAE,CAAC,UAAU;QACvC;IACF,KACA,CAAC;IAEL,CAAA,GAAA,sCAAW,EAAE,UAAU,MAAM,aAAa,CAAC,MAAM,EAAE,CAAA;QACjD,MAAM,aAAa,CAAC,OAAO;IAC7B;IAEA,sEAAsE;IACtE,sEAAsE;IACtE,oEAAoE;IACpE,oEAAoE;IACpE,OAAO;QACL,YAAY,CAAA,GAAA,oCAAS,EAAE,gBAAgB,YAAY;YACjD,MAAM;YACN,UAAU,CAAC,aAAa,IAAI;YAC5B,KAAK,MAAM,gBAAgB,CAAC;YAC5B,KAAK,MAAM,gBAAgB,CAAC;YAC5B,MAAM,MAAM,IAAI;YAChB,OAAO;kBACP;kBACA;YACA,UAAU;YACV,oBAAoB;YACpB,kBAAkB,MAAM,kBAAkB,CAAC;YAC3C,iBAAiB,cAAc;YAC/B,gBAAgB,aAAa,oBAAoB,aAAa;YAC9D,qBAAqB,IAAI,CAAC,oBAAoB;YAC9C,oBAAoB;gBAAC,IAAI,CAAC,mBAAmB;gBAAE,IAAI,CAAC,mBAAmB;aAAC,CACrE,MAAM,CAAC,SACP,IAAI,CAAC;YACR,gBAAgB;gBAAC,IAAI,CAAC,eAAe;gBAAE,IAAI,CAAC,eAAe;aAAC,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC;YAClF,UAAU,CAAC;gBACT,MAAM,aAAa,CAAC,OAAO,WAAW,CAAA,GAAA,wCAAa,EAAE,GAAG,KAAK;YAC/D;QACF;QACA,YAAY;YACV,GAAG,YAAY;YACf,OAAO;gBACL,UAAU;gBACV,CAAC,aAAa,QAAQ,OAAO,EAAE,GAAG,gBAAgB,IAAI,CAAC,CAAC;gBACxD,WAAW;gBACX,aAAa;YACf;QACF;oBACA;QACA,YAAY,MAAM,eAAe,CAAC;oBAClC;mBACA;IACF;AACF","sources":["packages/react-aria/src/slider/useSliderThumb.ts"],"sourcesContent":["import {\n AriaLabelingProps,\n AriaValidationProps,\n DOMAttributes,\n DOMProps,\n FocusableDOMProps,\n FocusableProps,\n InputDOMProps,\n LabelableProps,\n Orientation,\n RefObject,\n ValidationState\n} from '@react-types/shared';\nimport {clamp} from 'react-stately/private/utils/number';\nimport {focusWithoutScrolling} from '../utils/focusWithoutScrolling';\nimport {getEventTarget} from '../utils/shadowdom/DOMFunctions';\nimport {getSliderThumbId, sliderData} from './utils';\nimport {mergeProps} from '../utils/mergeProps';\nimport React, {\n ChangeEvent,\n InputHTMLAttributes,\n LabelHTMLAttributes,\n useCallback,\n useEffect,\n useRef\n} from 'react';\nimport {SliderState} from 'react-stately/useSliderState';\nimport {useFocusable} from '../interactions/useFocusable';\nimport {useFormReset} from '../utils/useFormReset';\nimport {useGlobalListeners} from '../utils/useGlobalListeners';\nimport {useKeyboard} from '../interactions/useKeyboard';\nimport {useLabel} from '../label/useLabel';\nimport {useLocale} from '../i18n/I18nProvider';\nimport {useMove} from '../interactions/useMove';\n\nexport interface SliderThumbProps extends FocusableProps, LabelableProps {\n /**\n * The orientation of the Slider.\n *\n * @deprecated - pass to the slider instead.\n * @default 'horizontal'\n */\n orientation?: Orientation;\n /** Whether the Thumb is disabled. */\n isDisabled?: boolean;\n /**\n * Index of the thumb within the slider.\n *\n * @default 0\n */\n index?: number;\n /** @deprecated */\n isRequired?: boolean;\n /** @deprecated */\n isInvalid?: boolean;\n /** @deprecated */\n validationState?: ValidationState;\n}\n\nexport interface AriaSliderThumbProps\n extends\n SliderThumbProps,\n DOMProps,\n Omit<FocusableDOMProps, 'excludeFromTabOrder'>,\n InputDOMProps,\n AriaLabelingProps,\n AriaValidationProps {}\n\nexport interface SliderThumbAria {\n /** Props for the root thumb element; handles the dragging motion. */\n thumbProps: DOMAttributes;\n\n /** Props for the visually hidden range input element. */\n inputProps: InputHTMLAttributes<HTMLInputElement>;\n\n /** Props for the label element for this thumb (optional). */\n labelProps: LabelHTMLAttributes<HTMLLabelElement>;\n\n /** Whether this thumb is currently being dragged. */\n isDragging: boolean;\n /** Whether the thumb is currently focused. */\n isFocused: boolean;\n /** Whether the thumb is disabled. */\n isDisabled: boolean;\n}\n\nexport interface AriaSliderThumbOptions extends AriaSliderThumbProps {\n /** A ref to the track element. */\n trackRef: RefObject<Element | null>;\n /** A ref to the thumb input element. */\n inputRef: RefObject<HTMLInputElement | null>;\n}\n\n/**\n * Provides behavior and accessibility for a thumb of a slider component.\n *\n * @param opts Options for this Slider thumb.\n * @param state Slider state, created via `useSliderState`.\n */\nexport function useSliderThumb(opts: AriaSliderThumbOptions, state: SliderState): SliderThumbAria {\n let {\n index = 0,\n isRequired,\n validationState,\n isInvalid,\n trackRef,\n inputRef,\n orientation = state.orientation,\n name,\n form\n } = opts;\n\n let isDisabled = opts.isDisabled || state.isDisabled;\n let isVertical = orientation === 'vertical';\n\n let {direction} = useLocale();\n let {addGlobalListener, removeGlobalListener} = useGlobalListeners();\n\n let data = sliderData.get(state)!;\n const {labelProps, fieldProps} = useLabel({\n ...opts,\n id: getSliderThumbId(state, index),\n 'aria-labelledby': `${data.id} ${opts['aria-labelledby'] ?? ''}`.trim()\n });\n\n const value = state.values[index];\n\n const focusInput = useCallback(() => {\n if (inputRef.current) {\n focusWithoutScrolling(inputRef.current);\n }\n }, [inputRef]);\n\n const isFocused = state.focusedThumb === index;\n\n useEffect(() => {\n if (isFocused) {\n focusInput();\n }\n }, [isFocused, focusInput]);\n\n let reverseX = direction === 'rtl';\n let currentPosition = useRef<number>(null);\n\n let {keyboardProps} = useKeyboard({\n onKeyDown(e) {\n let {\n getThumbMaxValue,\n getThumbMinValue,\n decrementThumb,\n incrementThumb,\n setThumbValue,\n setThumbDragging,\n pageSize\n } = state;\n // these are the cases that useMove or useSlider don't handle\n if (!/^(PageUp|PageDown|Home|End)$/.test(e.key)) {\n e.continuePropagation();\n return;\n }\n // same handling as useMove, stopPropagation to prevent useSlider from handling the event as well.\n e.preventDefault();\n // remember to set this so that onChangeEnd is fired\n setThumbDragging(index, true);\n switch (e.key) {\n case 'PageUp':\n incrementThumb(index, pageSize);\n break;\n case 'PageDown':\n decrementThumb(index, pageSize);\n break;\n case 'Home':\n setThumbValue(index, getThumbMinValue(index));\n break;\n case 'End':\n setThumbValue(index, getThumbMaxValue(index));\n break;\n }\n setThumbDragging(index, false);\n }\n });\n\n let {moveProps} = useMove({\n onMoveStart() {\n currentPosition.current = null;\n state.setThumbDragging(index, true);\n },\n onMove({deltaX, deltaY, pointerType, shiftKey}) {\n const {getThumbPercent, setThumbPercent, decrementThumb, incrementThumb, step, pageSize} =\n state;\n if (!trackRef.current) {\n return;\n }\n let {width, height} = trackRef.current.getBoundingClientRect();\n let size = isVertical ? height : width;\n\n if (currentPosition.current == null) {\n currentPosition.current = getThumbPercent(index) * size;\n }\n if (pointerType === 'keyboard') {\n if ((deltaX > 0 && reverseX) || (deltaX < 0 && !reverseX) || deltaY > 0) {\n decrementThumb(index, shiftKey ? pageSize : step);\n } else {\n incrementThumb(index, shiftKey ? pageSize : step);\n }\n } else {\n let delta = isVertical ? deltaY : deltaX;\n if (isVertical || reverseX) {\n delta = -delta;\n }\n\n currentPosition.current += delta;\n setThumbPercent(index, clamp(currentPosition.current / size, 0, 1));\n }\n },\n onMoveEnd() {\n state.setThumbDragging(index, false);\n }\n });\n\n // Immediately register editability with the state\n state.setThumbEditable(index, !isDisabled);\n\n const {focusableProps} = useFocusable(\n mergeProps(opts, {\n onFocus: () => state.setFocusedThumb(index),\n onBlur: () => state.setFocusedThumb(undefined)\n }),\n inputRef\n );\n\n let currentPointer = useRef<number | undefined>(undefined);\n let onDown = (id?: number) => {\n focusInput();\n currentPointer.current = id;\n state.setThumbDragging(index, true);\n\n addGlobalListener(window, 'mouseup', onUp, false);\n addGlobalListener(window, 'touchend', onUp, false);\n addGlobalListener(window, 'pointerup', onUp, false);\n };\n\n let onUp = e => {\n let id = e.pointerId ?? e.changedTouches?.[0].identifier;\n if (id === currentPointer.current) {\n focusInput();\n state.setThumbDragging(index, false);\n removeGlobalListener(window, 'mouseup', onUp, false);\n removeGlobalListener(window, 'touchend', onUp, false);\n removeGlobalListener(window, 'pointerup', onUp, false);\n }\n };\n\n let thumbPosition = state.getThumbPercent(index);\n if (isVertical || direction === 'rtl') {\n thumbPosition = 1 - thumbPosition;\n }\n\n let interactions = !isDisabled\n ? mergeProps(keyboardProps, moveProps, {\n onMouseDown: (e: React.MouseEvent) => {\n if (e.button !== 0 || e.altKey || e.ctrlKey || e.metaKey) {\n return;\n }\n onDown();\n },\n onPointerDown: (e: React.PointerEvent) => {\n if (e.button !== 0 || e.altKey || e.ctrlKey || e.metaKey) {\n return;\n }\n onDown(e.pointerId);\n },\n onTouchStart: (e: React.TouchEvent) => {\n onDown(e.changedTouches[0].identifier);\n }\n })\n : {};\n\n useFormReset(inputRef, state.defaultValues[index], v => {\n state.setThumbValue(index, v);\n });\n\n // We install mouse handlers for the drag motion on the thumb div, but\n // not the key handler for moving the thumb with the slider. Instead,\n // we focus the range input, and let the browser handle the keyboard\n // interactions; we then listen to input's onChange to update state.\n return {\n inputProps: mergeProps(focusableProps, fieldProps, {\n type: 'range',\n tabIndex: !isDisabled ? 0 : undefined,\n min: state.getThumbMinValue(index),\n max: state.getThumbMaxValue(index),\n step: state.step,\n value: value,\n name,\n form,\n disabled: isDisabled,\n 'aria-orientation': orientation,\n 'aria-valuetext': state.getThumbValueLabel(index),\n 'aria-required': isRequired || undefined,\n 'aria-invalid': isInvalid || validationState === 'invalid' || undefined,\n 'aria-errormessage': opts['aria-errormessage'],\n 'aria-describedby': [data['aria-describedby'], opts['aria-describedby']]\n .filter(Boolean)\n .join(' '),\n 'aria-details': [data['aria-details'], opts['aria-details']].filter(Boolean).join(' '),\n onChange: (e: ChangeEvent<HTMLInputElement>) => {\n state.setThumbValue(index, parseFloat(getEventTarget(e).value));\n }\n }),\n thumbProps: {\n ...interactions,\n style: {\n position: 'absolute',\n [isVertical ? 'top' : 'left']: `${thumbPosition * 100}%`,\n transform: 'translate(-50%, -50%)',\n touchAction: 'none'\n }\n },\n labelProps,\n isDragging: state.isThumbDragging(index),\n isDisabled,\n isFocused\n };\n}\n"],"names":[],"version":3,"file":"useSliderThumb.cjs.map"}
1
+ {"mappings":"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","sources":["packages/react-aria/src/slider/useSliderThumb.ts"],"sourcesContent":["import {\n AriaLabelingProps,\n AriaValidationProps,\n DOMAttributes,\n DOMProps,\n FocusableDOMProps,\n FocusableProps,\n InputDOMProps,\n LabelableProps,\n Orientation,\n RefObject,\n ValidationState\n} from '@react-types/shared';\nimport {clamp} from 'react-stately/private/utils/number';\nimport {focusWithoutScrolling} from '../utils/focusWithoutScrolling';\nimport {getEventTarget} from '../utils/shadowdom/DOMFunctions';\nimport {getSliderThumbId, sliderData} from './utils';\nimport {mergeProps} from '../utils/mergeProps';\nimport React, {\n ChangeEvent,\n InputHTMLAttributes,\n LabelHTMLAttributes,\n useCallback,\n useEffect,\n useRef\n} from 'react';\nimport {SliderState} from 'react-stately/useSliderState';\nimport {useFocusable} from '../interactions/useFocusable';\nimport {useFormReset} from '../utils/useFormReset';\nimport {useGlobalListeners} from '../utils/useGlobalListeners';\nimport {useKeyboard} from '../interactions/useKeyboard';\nimport {useLabel} from '../label/useLabel';\nimport {useLocale} from '../i18n/I18nProvider';\nimport {useMove} from '../interactions/useMove';\n\nexport interface SliderThumbProps extends FocusableProps, LabelableProps {\n /**\n * The orientation of the Slider.\n *\n * @deprecated - pass to the slider instead.\n * @default 'horizontal'\n */\n orientation?: Orientation;\n /** Whether the Thumb is disabled. */\n isDisabled?: boolean;\n /**\n * Index of the thumb within the slider.\n *\n * @default 0\n */\n index?: number;\n /** @deprecated */\n isRequired?: boolean;\n /** @deprecated */\n isInvalid?: boolean;\n /** @deprecated */\n validationState?: ValidationState;\n}\n\nexport interface AriaSliderThumbProps\n extends\n SliderThumbProps,\n DOMProps,\n Omit<FocusableDOMProps, 'excludeFromTabOrder'>,\n InputDOMProps,\n AriaLabelingProps,\n AriaValidationProps {}\n\nexport interface SliderThumbAria {\n /** Props for the root thumb element; handles the dragging motion. */\n thumbProps: DOMAttributes;\n\n /** Props for the visually hidden range input element. */\n inputProps: InputHTMLAttributes<HTMLInputElement>;\n\n /** Props for the label element for this thumb (optional). */\n labelProps: LabelHTMLAttributes<HTMLLabelElement>;\n\n /** Whether this thumb is currently being dragged. */\n isDragging: boolean;\n /** Whether the thumb is currently focused. */\n isFocused: boolean;\n /** Whether the thumb is disabled. */\n isDisabled: boolean;\n}\n\nexport interface AriaSliderThumbOptions extends AriaSliderThumbProps {\n /** A ref to the track element. */\n trackRef: RefObject<Element | null>;\n /** A ref to the thumb input element. */\n inputRef: RefObject<HTMLInputElement | null>;\n}\n\n/**\n * Provides behavior and accessibility for a thumb of a slider component.\n *\n * @param opts Options for this Slider thumb.\n * @param state Slider state, created via `useSliderState`.\n */\nexport function useSliderThumb(opts: AriaSliderThumbOptions, state: SliderState): SliderThumbAria {\n let {\n index = 0,\n isRequired,\n validationState,\n isInvalid,\n trackRef,\n inputRef,\n orientation = state.orientation,\n name,\n form\n } = opts;\n\n let isDisabled = opts.isDisabled || state.isDisabled;\n let isVertical = orientation === 'vertical';\n\n let {direction} = useLocale();\n let {addGlobalListener, removeGlobalListener} = useGlobalListeners();\n\n let data = sliderData.get(state)!;\n const {labelProps, fieldProps} = useLabel({\n ...opts,\n id: getSliderThumbId(state, index),\n 'aria-labelledby': `${data.id} ${opts['aria-labelledby'] ?? ''}`.trim()\n });\n\n const value = state.values[index];\n\n const focusInput = useCallback(() => {\n if (inputRef.current) {\n focusWithoutScrolling(inputRef.current);\n }\n }, [inputRef]);\n\n const isFocused = state.focusedThumb === index;\n\n useEffect(() => {\n if (isFocused) {\n focusInput();\n }\n }, [isFocused, focusInput]);\n\n let reverseX = direction === 'rtl';\n let currentPosition = useRef<number>(null);\n\n let keyboardUpdate = cb => {\n // remember to set this so that onChangeEnd is fired\n state.setThumbDragging(index, true);\n cb();\n state.setThumbDragging(index, false);\n };\n\n let {keyboardProps} = useKeyboard({\n shortcuts: {\n PageUp: () => {\n return keyboardUpdate(() => {\n state.incrementThumb(index, state.pageSize);\n });\n },\n PageDown: () => {\n return keyboardUpdate(() => {\n state.decrementThumb(index, state.pageSize);\n });\n },\n Home: () => {\n return keyboardUpdate(() => {\n state.setThumbValue(index, state.getThumbMinValue(index));\n });\n },\n End: () => {\n return keyboardUpdate(() => {\n state.setThumbValue(index, state.getThumbMaxValue(index));\n });\n }\n },\n allowRepeats: true\n });\n\n let {moveProps} = useMove({\n onMoveStart() {\n currentPosition.current = null;\n state.setThumbDragging(index, true);\n },\n onMove({deltaX, deltaY, pointerType, shiftKey}) {\n const {getThumbPercent, setThumbPercent, decrementThumb, incrementThumb, step, pageSize} =\n state;\n if (!trackRef.current) {\n return;\n }\n let {width, height} = trackRef.current.getBoundingClientRect();\n let size = isVertical ? height : width;\n\n if (currentPosition.current == null) {\n currentPosition.current = getThumbPercent(index) * size;\n }\n if (pointerType === 'keyboard') {\n if ((deltaX > 0 && reverseX) || (deltaX < 0 && !reverseX) || deltaY > 0) {\n decrementThumb(index, shiftKey ? pageSize : step);\n } else {\n incrementThumb(index, shiftKey ? pageSize : step);\n }\n } else {\n let delta = isVertical ? deltaY : deltaX;\n if (isVertical || reverseX) {\n delta = -delta;\n }\n\n currentPosition.current += delta;\n setThumbPercent(index, clamp(currentPosition.current / size, 0, 1));\n }\n },\n onMoveEnd() {\n state.setThumbDragging(index, false);\n }\n });\n\n // Immediately register editability with the state\n state.setThumbEditable(index, !isDisabled);\n\n const {focusableProps} = useFocusable(\n mergeProps(opts, {\n onFocus: () => state.setFocusedThumb(index),\n onBlur: () => state.setFocusedThumb(undefined)\n }),\n inputRef\n );\n\n let currentPointer = useRef<number | undefined>(undefined);\n let onDown = (id?: number) => {\n focusInput();\n currentPointer.current = id;\n state.setThumbDragging(index, true);\n\n addGlobalListener(window, 'mouseup', onUp, false);\n addGlobalListener(window, 'touchend', onUp, false);\n addGlobalListener(window, 'pointerup', onUp, false);\n };\n\n let onUp = e => {\n let id = e.pointerId ?? e.changedTouches?.[0].identifier;\n if (id === currentPointer.current) {\n focusInput();\n state.setThumbDragging(index, false);\n removeGlobalListener(window, 'mouseup', onUp, false);\n removeGlobalListener(window, 'touchend', onUp, false);\n removeGlobalListener(window, 'pointerup', onUp, false);\n }\n };\n\n let thumbPosition = state.getThumbPercent(index);\n if (isVertical || direction === 'rtl') {\n thumbPosition = 1 - thumbPosition;\n }\n\n let interactions = !isDisabled\n ? // oxlint-disable-next-line react/react-compiler\n mergeProps(keyboardProps, moveProps, {\n onMouseDown: (e: React.MouseEvent) => {\n if (e.button !== 0 || e.altKey || e.ctrlKey || e.metaKey) {\n return;\n }\n onDown();\n },\n onPointerDown: (e: React.PointerEvent) => {\n if (e.button !== 0 || e.altKey || e.ctrlKey || e.metaKey) {\n return;\n }\n onDown(e.pointerId);\n },\n onTouchStart: (e: React.TouchEvent) => {\n onDown(e.changedTouches[0].identifier);\n }\n })\n : {};\n\n useFormReset(inputRef, state.defaultValues[index], v => {\n state.setThumbValue(index, v);\n });\n\n // We install mouse handlers for the drag motion on the thumb div, but\n // not the key handler for moving the thumb with the slider. Instead,\n // we focus the range input, and let the browser handle the keyboard\n // interactions; we then listen to input's onChange to update state.\n return {\n inputProps: mergeProps(focusableProps, fieldProps, {\n type: 'range',\n tabIndex: !isDisabled ? 0 : undefined,\n min: state.getThumbMinValue(index),\n max: state.getThumbMaxValue(index),\n step: state.step,\n value: value,\n name,\n form,\n disabled: isDisabled,\n 'aria-orientation': orientation,\n 'aria-valuetext': state.getThumbValueLabel(index),\n 'aria-required': isRequired || undefined,\n 'aria-invalid': isInvalid || validationState === 'invalid' || undefined,\n 'aria-errormessage': opts['aria-errormessage'],\n 'aria-describedby': [data['aria-describedby'], opts['aria-describedby']]\n .filter(Boolean)\n .join(' '),\n 'aria-details': [data['aria-details'], opts['aria-details']].filter(Boolean).join(' '),\n onChange: (e: ChangeEvent<HTMLInputElement>) => {\n state.setThumbValue(index, parseFloat(getEventTarget(e).value));\n }\n }),\n thumbProps: {\n ...interactions,\n style: {\n position: 'absolute',\n [isVertical ? 'top' : 'left']: `${thumbPosition * 100}%`,\n transform: 'translate(-50%, -50%)',\n touchAction: 'none'\n }\n },\n labelProps,\n isDragging: state.isThumbDragging(index),\n isDisabled,\n isFocused\n };\n}\n"],"names":[],"version":3,"file":"useSliderThumb.cjs.map"}
@@ -53,34 +53,36 @@ function $299655936625c2f6$export$8d15029008292ae(opts, state) {
53
53
  ]);
54
54
  let reverseX = direction === 'rtl';
55
55
  let currentPosition = (0, $jbuYP$useRef)(null);
56
+ let keyboardUpdate = (cb)=>{
57
+ // remember to set this so that onChangeEnd is fired
58
+ state.setThumbDragging(index, true);
59
+ cb();
60
+ state.setThumbDragging(index, false);
61
+ };
56
62
  let { keyboardProps: keyboardProps } = (0, $bf74df7506f65576$export$8f71654801c2f7cd)({
57
- onKeyDown (e) {
58
- let { getThumbMaxValue: getThumbMaxValue, getThumbMinValue: getThumbMinValue, decrementThumb: decrementThumb, incrementThumb: incrementThumb, setThumbValue: setThumbValue, setThumbDragging: setThumbDragging, pageSize: pageSize } = state;
59
- // these are the cases that useMove or useSlider don't handle
60
- if (!/^(PageUp|PageDown|Home|End)$/.test(e.key)) {
61
- e.continuePropagation();
62
- return;
63
- }
64
- // same handling as useMove, stopPropagation to prevent useSlider from handling the event as well.
65
- e.preventDefault();
66
- // remember to set this so that onChangeEnd is fired
67
- setThumbDragging(index, true);
68
- switch(e.key){
69
- case 'PageUp':
70
- incrementThumb(index, pageSize);
71
- break;
72
- case 'PageDown':
73
- decrementThumb(index, pageSize);
74
- break;
75
- case 'Home':
76
- setThumbValue(index, getThumbMinValue(index));
77
- break;
78
- case 'End':
79
- setThumbValue(index, getThumbMaxValue(index));
80
- break;
63
+ shortcuts: {
64
+ PageUp: ()=>{
65
+ return keyboardUpdate(()=>{
66
+ state.incrementThumb(index, state.pageSize);
67
+ });
68
+ },
69
+ PageDown: ()=>{
70
+ return keyboardUpdate(()=>{
71
+ state.decrementThumb(index, state.pageSize);
72
+ });
73
+ },
74
+ Home: ()=>{
75
+ return keyboardUpdate(()=>{
76
+ state.setThumbValue(index, state.getThumbMinValue(index));
77
+ });
78
+ },
79
+ End: ()=>{
80
+ return keyboardUpdate(()=>{
81
+ state.setThumbValue(index, state.getThumbMaxValue(index));
82
+ });
81
83
  }
82
- setThumbDragging(index, false);
83
- }
84
+ },
85
+ allowRepeats: true
84
86
  });
85
87
  let { moveProps: moveProps } = (0, $e7c7f5ffbc8157af$export$36da96379f79f245)({
86
88
  onMoveStart () {
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/react-aria/src/slider/useSliderThumb.ts"],"sourcesContent":["import {\n AriaLabelingProps,\n AriaValidationProps,\n DOMAttributes,\n DOMProps,\n FocusableDOMProps,\n FocusableProps,\n InputDOMProps,\n LabelableProps,\n Orientation,\n RefObject,\n ValidationState\n} from '@react-types/shared';\nimport {clamp} from 'react-stately/private/utils/number';\nimport {focusWithoutScrolling} from '../utils/focusWithoutScrolling';\nimport {getEventTarget} from '../utils/shadowdom/DOMFunctions';\nimport {getSliderThumbId, sliderData} from './utils';\nimport {mergeProps} from '../utils/mergeProps';\nimport React, {\n ChangeEvent,\n InputHTMLAttributes,\n LabelHTMLAttributes,\n useCallback,\n useEffect,\n useRef\n} from 'react';\nimport {SliderState} from 'react-stately/useSliderState';\nimport {useFocusable} from '../interactions/useFocusable';\nimport {useFormReset} from '../utils/useFormReset';\nimport {useGlobalListeners} from '../utils/useGlobalListeners';\nimport {useKeyboard} from '../interactions/useKeyboard';\nimport {useLabel} from '../label/useLabel';\nimport {useLocale} from '../i18n/I18nProvider';\nimport {useMove} from '../interactions/useMove';\n\nexport interface SliderThumbProps extends FocusableProps, LabelableProps {\n /**\n * The orientation of the Slider.\n *\n * @deprecated - pass to the slider instead.\n * @default 'horizontal'\n */\n orientation?: Orientation;\n /** Whether the Thumb is disabled. */\n isDisabled?: boolean;\n /**\n * Index of the thumb within the slider.\n *\n * @default 0\n */\n index?: number;\n /** @deprecated */\n isRequired?: boolean;\n /** @deprecated */\n isInvalid?: boolean;\n /** @deprecated */\n validationState?: ValidationState;\n}\n\nexport interface AriaSliderThumbProps\n extends\n SliderThumbProps,\n DOMProps,\n Omit<FocusableDOMProps, 'excludeFromTabOrder'>,\n InputDOMProps,\n AriaLabelingProps,\n AriaValidationProps {}\n\nexport interface SliderThumbAria {\n /** Props for the root thumb element; handles the dragging motion. */\n thumbProps: DOMAttributes;\n\n /** Props for the visually hidden range input element. */\n inputProps: InputHTMLAttributes<HTMLInputElement>;\n\n /** Props for the label element for this thumb (optional). */\n labelProps: LabelHTMLAttributes<HTMLLabelElement>;\n\n /** Whether this thumb is currently being dragged. */\n isDragging: boolean;\n /** Whether the thumb is currently focused. */\n isFocused: boolean;\n /** Whether the thumb is disabled. */\n isDisabled: boolean;\n}\n\nexport interface AriaSliderThumbOptions extends AriaSliderThumbProps {\n /** A ref to the track element. */\n trackRef: RefObject<Element | null>;\n /** A ref to the thumb input element. */\n inputRef: RefObject<HTMLInputElement | null>;\n}\n\n/**\n * Provides behavior and accessibility for a thumb of a slider component.\n *\n * @param opts Options for this Slider thumb.\n * @param state Slider state, created via `useSliderState`.\n */\nexport function useSliderThumb(opts: AriaSliderThumbOptions, state: SliderState): SliderThumbAria {\n let {\n index = 0,\n isRequired,\n validationState,\n isInvalid,\n trackRef,\n inputRef,\n orientation = state.orientation,\n name,\n form\n } = opts;\n\n let isDisabled = opts.isDisabled || state.isDisabled;\n let isVertical = orientation === 'vertical';\n\n let {direction} = useLocale();\n let {addGlobalListener, removeGlobalListener} = useGlobalListeners();\n\n let data = sliderData.get(state)!;\n const {labelProps, fieldProps} = useLabel({\n ...opts,\n id: getSliderThumbId(state, index),\n 'aria-labelledby': `${data.id} ${opts['aria-labelledby'] ?? ''}`.trim()\n });\n\n const value = state.values[index];\n\n const focusInput = useCallback(() => {\n if (inputRef.current) {\n focusWithoutScrolling(inputRef.current);\n }\n }, [inputRef]);\n\n const isFocused = state.focusedThumb === index;\n\n useEffect(() => {\n if (isFocused) {\n focusInput();\n }\n }, [isFocused, focusInput]);\n\n let reverseX = direction === 'rtl';\n let currentPosition = useRef<number>(null);\n\n let {keyboardProps} = useKeyboard({\n onKeyDown(e) {\n let {\n getThumbMaxValue,\n getThumbMinValue,\n decrementThumb,\n incrementThumb,\n setThumbValue,\n setThumbDragging,\n pageSize\n } = state;\n // these are the cases that useMove or useSlider don't handle\n if (!/^(PageUp|PageDown|Home|End)$/.test(e.key)) {\n e.continuePropagation();\n return;\n }\n // same handling as useMove, stopPropagation to prevent useSlider from handling the event as well.\n e.preventDefault();\n // remember to set this so that onChangeEnd is fired\n setThumbDragging(index, true);\n switch (e.key) {\n case 'PageUp':\n incrementThumb(index, pageSize);\n break;\n case 'PageDown':\n decrementThumb(index, pageSize);\n break;\n case 'Home':\n setThumbValue(index, getThumbMinValue(index));\n break;\n case 'End':\n setThumbValue(index, getThumbMaxValue(index));\n break;\n }\n setThumbDragging(index, false);\n }\n });\n\n let {moveProps} = useMove({\n onMoveStart() {\n currentPosition.current = null;\n state.setThumbDragging(index, true);\n },\n onMove({deltaX, deltaY, pointerType, shiftKey}) {\n const {getThumbPercent, setThumbPercent, decrementThumb, incrementThumb, step, pageSize} =\n state;\n if (!trackRef.current) {\n return;\n }\n let {width, height} = trackRef.current.getBoundingClientRect();\n let size = isVertical ? height : width;\n\n if (currentPosition.current == null) {\n currentPosition.current = getThumbPercent(index) * size;\n }\n if (pointerType === 'keyboard') {\n if ((deltaX > 0 && reverseX) || (deltaX < 0 && !reverseX) || deltaY > 0) {\n decrementThumb(index, shiftKey ? pageSize : step);\n } else {\n incrementThumb(index, shiftKey ? pageSize : step);\n }\n } else {\n let delta = isVertical ? deltaY : deltaX;\n if (isVertical || reverseX) {\n delta = -delta;\n }\n\n currentPosition.current += delta;\n setThumbPercent(index, clamp(currentPosition.current / size, 0, 1));\n }\n },\n onMoveEnd() {\n state.setThumbDragging(index, false);\n }\n });\n\n // Immediately register editability with the state\n state.setThumbEditable(index, !isDisabled);\n\n const {focusableProps} = useFocusable(\n mergeProps(opts, {\n onFocus: () => state.setFocusedThumb(index),\n onBlur: () => state.setFocusedThumb(undefined)\n }),\n inputRef\n );\n\n let currentPointer = useRef<number | undefined>(undefined);\n let onDown = (id?: number) => {\n focusInput();\n currentPointer.current = id;\n state.setThumbDragging(index, true);\n\n addGlobalListener(window, 'mouseup', onUp, false);\n addGlobalListener(window, 'touchend', onUp, false);\n addGlobalListener(window, 'pointerup', onUp, false);\n };\n\n let onUp = e => {\n let id = e.pointerId ?? e.changedTouches?.[0].identifier;\n if (id === currentPointer.current) {\n focusInput();\n state.setThumbDragging(index, false);\n removeGlobalListener(window, 'mouseup', onUp, false);\n removeGlobalListener(window, 'touchend', onUp, false);\n removeGlobalListener(window, 'pointerup', onUp, false);\n }\n };\n\n let thumbPosition = state.getThumbPercent(index);\n if (isVertical || direction === 'rtl') {\n thumbPosition = 1 - thumbPosition;\n }\n\n let interactions = !isDisabled\n ? mergeProps(keyboardProps, moveProps, {\n onMouseDown: (e: React.MouseEvent) => {\n if (e.button !== 0 || e.altKey || e.ctrlKey || e.metaKey) {\n return;\n }\n onDown();\n },\n onPointerDown: (e: React.PointerEvent) => {\n if (e.button !== 0 || e.altKey || e.ctrlKey || e.metaKey) {\n return;\n }\n onDown(e.pointerId);\n },\n onTouchStart: (e: React.TouchEvent) => {\n onDown(e.changedTouches[0].identifier);\n }\n })\n : {};\n\n useFormReset(inputRef, state.defaultValues[index], v => {\n state.setThumbValue(index, v);\n });\n\n // We install mouse handlers for the drag motion on the thumb div, but\n // not the key handler for moving the thumb with the slider. Instead,\n // we focus the range input, and let the browser handle the keyboard\n // interactions; we then listen to input's onChange to update state.\n return {\n inputProps: mergeProps(focusableProps, fieldProps, {\n type: 'range',\n tabIndex: !isDisabled ? 0 : undefined,\n min: state.getThumbMinValue(index),\n max: state.getThumbMaxValue(index),\n step: state.step,\n value: value,\n name,\n form,\n disabled: isDisabled,\n 'aria-orientation': orientation,\n 'aria-valuetext': state.getThumbValueLabel(index),\n 'aria-required': isRequired || undefined,\n 'aria-invalid': isInvalid || validationState === 'invalid' || undefined,\n 'aria-errormessage': opts['aria-errormessage'],\n 'aria-describedby': [data['aria-describedby'], opts['aria-describedby']]\n .filter(Boolean)\n .join(' '),\n 'aria-details': [data['aria-details'], opts['aria-details']].filter(Boolean).join(' '),\n onChange: (e: ChangeEvent<HTMLInputElement>) => {\n state.setThumbValue(index, parseFloat(getEventTarget(e).value));\n }\n }),\n thumbProps: {\n ...interactions,\n style: {\n position: 'absolute',\n [isVertical ? 'top' : 'left']: `${thumbPosition * 100}%`,\n transform: 'translate(-50%, -50%)',\n touchAction: 'none'\n }\n },\n labelProps,\n isDragging: state.isThumbDragging(index),\n isDisabled,\n isFocused\n };\n}\n"],"names":[],"version":3,"file":"useSliderThumb.js.map"}
1
+ {"mappings":"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","sources":["packages/react-aria/src/slider/useSliderThumb.ts"],"sourcesContent":["import {\n AriaLabelingProps,\n AriaValidationProps,\n DOMAttributes,\n DOMProps,\n FocusableDOMProps,\n FocusableProps,\n InputDOMProps,\n LabelableProps,\n Orientation,\n RefObject,\n ValidationState\n} from '@react-types/shared';\nimport {clamp} from 'react-stately/private/utils/number';\nimport {focusWithoutScrolling} from '../utils/focusWithoutScrolling';\nimport {getEventTarget} from '../utils/shadowdom/DOMFunctions';\nimport {getSliderThumbId, sliderData} from './utils';\nimport {mergeProps} from '../utils/mergeProps';\nimport React, {\n ChangeEvent,\n InputHTMLAttributes,\n LabelHTMLAttributes,\n useCallback,\n useEffect,\n useRef\n} from 'react';\nimport {SliderState} from 'react-stately/useSliderState';\nimport {useFocusable} from '../interactions/useFocusable';\nimport {useFormReset} from '../utils/useFormReset';\nimport {useGlobalListeners} from '../utils/useGlobalListeners';\nimport {useKeyboard} from '../interactions/useKeyboard';\nimport {useLabel} from '../label/useLabel';\nimport {useLocale} from '../i18n/I18nProvider';\nimport {useMove} from '../interactions/useMove';\n\nexport interface SliderThumbProps extends FocusableProps, LabelableProps {\n /**\n * The orientation of the Slider.\n *\n * @deprecated - pass to the slider instead.\n * @default 'horizontal'\n */\n orientation?: Orientation;\n /** Whether the Thumb is disabled. */\n isDisabled?: boolean;\n /**\n * Index of the thumb within the slider.\n *\n * @default 0\n */\n index?: number;\n /** @deprecated */\n isRequired?: boolean;\n /** @deprecated */\n isInvalid?: boolean;\n /** @deprecated */\n validationState?: ValidationState;\n}\n\nexport interface AriaSliderThumbProps\n extends\n SliderThumbProps,\n DOMProps,\n Omit<FocusableDOMProps, 'excludeFromTabOrder'>,\n InputDOMProps,\n AriaLabelingProps,\n AriaValidationProps {}\n\nexport interface SliderThumbAria {\n /** Props for the root thumb element; handles the dragging motion. */\n thumbProps: DOMAttributes;\n\n /** Props for the visually hidden range input element. */\n inputProps: InputHTMLAttributes<HTMLInputElement>;\n\n /** Props for the label element for this thumb (optional). */\n labelProps: LabelHTMLAttributes<HTMLLabelElement>;\n\n /** Whether this thumb is currently being dragged. */\n isDragging: boolean;\n /** Whether the thumb is currently focused. */\n isFocused: boolean;\n /** Whether the thumb is disabled. */\n isDisabled: boolean;\n}\n\nexport interface AriaSliderThumbOptions extends AriaSliderThumbProps {\n /** A ref to the track element. */\n trackRef: RefObject<Element | null>;\n /** A ref to the thumb input element. */\n inputRef: RefObject<HTMLInputElement | null>;\n}\n\n/**\n * Provides behavior and accessibility for a thumb of a slider component.\n *\n * @param opts Options for this Slider thumb.\n * @param state Slider state, created via `useSliderState`.\n */\nexport function useSliderThumb(opts: AriaSliderThumbOptions, state: SliderState): SliderThumbAria {\n let {\n index = 0,\n isRequired,\n validationState,\n isInvalid,\n trackRef,\n inputRef,\n orientation = state.orientation,\n name,\n form\n } = opts;\n\n let isDisabled = opts.isDisabled || state.isDisabled;\n let isVertical = orientation === 'vertical';\n\n let {direction} = useLocale();\n let {addGlobalListener, removeGlobalListener} = useGlobalListeners();\n\n let data = sliderData.get(state)!;\n const {labelProps, fieldProps} = useLabel({\n ...opts,\n id: getSliderThumbId(state, index),\n 'aria-labelledby': `${data.id} ${opts['aria-labelledby'] ?? ''}`.trim()\n });\n\n const value = state.values[index];\n\n const focusInput = useCallback(() => {\n if (inputRef.current) {\n focusWithoutScrolling(inputRef.current);\n }\n }, [inputRef]);\n\n const isFocused = state.focusedThumb === index;\n\n useEffect(() => {\n if (isFocused) {\n focusInput();\n }\n }, [isFocused, focusInput]);\n\n let reverseX = direction === 'rtl';\n let currentPosition = useRef<number>(null);\n\n let keyboardUpdate = cb => {\n // remember to set this so that onChangeEnd is fired\n state.setThumbDragging(index, true);\n cb();\n state.setThumbDragging(index, false);\n };\n\n let {keyboardProps} = useKeyboard({\n shortcuts: {\n PageUp: () => {\n return keyboardUpdate(() => {\n state.incrementThumb(index, state.pageSize);\n });\n },\n PageDown: () => {\n return keyboardUpdate(() => {\n state.decrementThumb(index, state.pageSize);\n });\n },\n Home: () => {\n return keyboardUpdate(() => {\n state.setThumbValue(index, state.getThumbMinValue(index));\n });\n },\n End: () => {\n return keyboardUpdate(() => {\n state.setThumbValue(index, state.getThumbMaxValue(index));\n });\n }\n },\n allowRepeats: true\n });\n\n let {moveProps} = useMove({\n onMoveStart() {\n currentPosition.current = null;\n state.setThumbDragging(index, true);\n },\n onMove({deltaX, deltaY, pointerType, shiftKey}) {\n const {getThumbPercent, setThumbPercent, decrementThumb, incrementThumb, step, pageSize} =\n state;\n if (!trackRef.current) {\n return;\n }\n let {width, height} = trackRef.current.getBoundingClientRect();\n let size = isVertical ? height : width;\n\n if (currentPosition.current == null) {\n currentPosition.current = getThumbPercent(index) * size;\n }\n if (pointerType === 'keyboard') {\n if ((deltaX > 0 && reverseX) || (deltaX < 0 && !reverseX) || deltaY > 0) {\n decrementThumb(index, shiftKey ? pageSize : step);\n } else {\n incrementThumb(index, shiftKey ? pageSize : step);\n }\n } else {\n let delta = isVertical ? deltaY : deltaX;\n if (isVertical || reverseX) {\n delta = -delta;\n }\n\n currentPosition.current += delta;\n setThumbPercent(index, clamp(currentPosition.current / size, 0, 1));\n }\n },\n onMoveEnd() {\n state.setThumbDragging(index, false);\n }\n });\n\n // Immediately register editability with the state\n state.setThumbEditable(index, !isDisabled);\n\n const {focusableProps} = useFocusable(\n mergeProps(opts, {\n onFocus: () => state.setFocusedThumb(index),\n onBlur: () => state.setFocusedThumb(undefined)\n }),\n inputRef\n );\n\n let currentPointer = useRef<number | undefined>(undefined);\n let onDown = (id?: number) => {\n focusInput();\n currentPointer.current = id;\n state.setThumbDragging(index, true);\n\n addGlobalListener(window, 'mouseup', onUp, false);\n addGlobalListener(window, 'touchend', onUp, false);\n addGlobalListener(window, 'pointerup', onUp, false);\n };\n\n let onUp = e => {\n let id = e.pointerId ?? e.changedTouches?.[0].identifier;\n if (id === currentPointer.current) {\n focusInput();\n state.setThumbDragging(index, false);\n removeGlobalListener(window, 'mouseup', onUp, false);\n removeGlobalListener(window, 'touchend', onUp, false);\n removeGlobalListener(window, 'pointerup', onUp, false);\n }\n };\n\n let thumbPosition = state.getThumbPercent(index);\n if (isVertical || direction === 'rtl') {\n thumbPosition = 1 - thumbPosition;\n }\n\n let interactions = !isDisabled\n ? // oxlint-disable-next-line react/react-compiler\n mergeProps(keyboardProps, moveProps, {\n onMouseDown: (e: React.MouseEvent) => {\n if (e.button !== 0 || e.altKey || e.ctrlKey || e.metaKey) {\n return;\n }\n onDown();\n },\n onPointerDown: (e: React.PointerEvent) => {\n if (e.button !== 0 || e.altKey || e.ctrlKey || e.metaKey) {\n return;\n }\n onDown(e.pointerId);\n },\n onTouchStart: (e: React.TouchEvent) => {\n onDown(e.changedTouches[0].identifier);\n }\n })\n : {};\n\n useFormReset(inputRef, state.defaultValues[index], v => {\n state.setThumbValue(index, v);\n });\n\n // We install mouse handlers for the drag motion on the thumb div, but\n // not the key handler for moving the thumb with the slider. Instead,\n // we focus the range input, and let the browser handle the keyboard\n // interactions; we then listen to input's onChange to update state.\n return {\n inputProps: mergeProps(focusableProps, fieldProps, {\n type: 'range',\n tabIndex: !isDisabled ? 0 : undefined,\n min: state.getThumbMinValue(index),\n max: state.getThumbMaxValue(index),\n step: state.step,\n value: value,\n name,\n form,\n disabled: isDisabled,\n 'aria-orientation': orientation,\n 'aria-valuetext': state.getThumbValueLabel(index),\n 'aria-required': isRequired || undefined,\n 'aria-invalid': isInvalid || validationState === 'invalid' || undefined,\n 'aria-errormessage': opts['aria-errormessage'],\n 'aria-describedby': [data['aria-describedby'], opts['aria-describedby']]\n .filter(Boolean)\n .join(' '),\n 'aria-details': [data['aria-details'], opts['aria-details']].filter(Boolean).join(' '),\n onChange: (e: ChangeEvent<HTMLInputElement>) => {\n state.setThumbValue(index, parseFloat(getEventTarget(e).value));\n }\n }),\n thumbProps: {\n ...interactions,\n style: {\n position: 'absolute',\n [isVertical ? 'top' : 'left']: `${thumbPosition * 100}%`,\n transform: 'translate(-50%, -50%)',\n touchAction: 'none'\n }\n },\n labelProps,\n isDragging: state.isThumbDragging(index),\n isDisabled,\n isFocused\n };\n}\n"],"names":[],"version":3,"file":"useSliderThumb.js.map"}
@@ -52,34 +52,36 @@ function $4a5dd96ecb58ab11$export$8d15029008292ae(opts, state) {
52
52
  ]);
53
53
  let reverseX = direction === 'rtl';
54
54
  let currentPosition = (0, $fiiar$useRef)(null);
55
+ let keyboardUpdate = (cb)=>{
56
+ // remember to set this so that onChangeEnd is fired
57
+ state.setThumbDragging(index, true);
58
+ cb();
59
+ state.setThumbDragging(index, false);
60
+ };
55
61
  let { keyboardProps: keyboardProps } = (0, $8296dad1a4c5e0dc$export$8f71654801c2f7cd)({
56
- onKeyDown (e) {
57
- let { getThumbMaxValue: getThumbMaxValue, getThumbMinValue: getThumbMinValue, decrementThumb: decrementThumb, incrementThumb: incrementThumb, setThumbValue: setThumbValue, setThumbDragging: setThumbDragging, pageSize: pageSize } = state;
58
- // these are the cases that useMove or useSlider don't handle
59
- if (!/^(PageUp|PageDown|Home|End)$/.test(e.key)) {
60
- e.continuePropagation();
61
- return;
62
- }
63
- // same handling as useMove, stopPropagation to prevent useSlider from handling the event as well.
64
- e.preventDefault();
65
- // remember to set this so that onChangeEnd is fired
66
- setThumbDragging(index, true);
67
- switch(e.key){
68
- case 'PageUp':
69
- incrementThumb(index, pageSize);
70
- break;
71
- case 'PageDown':
72
- decrementThumb(index, pageSize);
73
- break;
74
- case 'Home':
75
- setThumbValue(index, getThumbMinValue(index));
76
- break;
77
- case 'End':
78
- setThumbValue(index, getThumbMaxValue(index));
79
- break;
62
+ shortcuts: {
63
+ PageUp: ()=>{
64
+ return keyboardUpdate(()=>{
65
+ state.incrementThumb(index, state.pageSize);
66
+ });
67
+ },
68
+ PageDown: ()=>{
69
+ return keyboardUpdate(()=>{
70
+ state.decrementThumb(index, state.pageSize);
71
+ });
72
+ },
73
+ Home: ()=>{
74
+ return keyboardUpdate(()=>{
75
+ state.setThumbValue(index, state.getThumbMinValue(index));
76
+ });
77
+ },
78
+ End: ()=>{
79
+ return keyboardUpdate(()=>{
80
+ state.setThumbValue(index, state.getThumbMaxValue(index));
81
+ });
80
82
  }
81
- setThumbDragging(index, false);
82
- }
83
+ },
84
+ allowRepeats: true
83
85
  });
84
86
  let { moveProps: moveProps } = (0, $1dfdc54e7eb53ba0$export$36da96379f79f245)({
85
87
  onMoveStart () {
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/react-aria/src/slider/useSliderThumb.ts"],"sourcesContent":["import {\n AriaLabelingProps,\n AriaValidationProps,\n DOMAttributes,\n DOMProps,\n FocusableDOMProps,\n FocusableProps,\n InputDOMProps,\n LabelableProps,\n Orientation,\n RefObject,\n ValidationState\n} from '@react-types/shared';\nimport {clamp} from 'react-stately/private/utils/number';\nimport {focusWithoutScrolling} from '../utils/focusWithoutScrolling';\nimport {getEventTarget} from '../utils/shadowdom/DOMFunctions';\nimport {getSliderThumbId, sliderData} from './utils';\nimport {mergeProps} from '../utils/mergeProps';\nimport React, {\n ChangeEvent,\n InputHTMLAttributes,\n LabelHTMLAttributes,\n useCallback,\n useEffect,\n useRef\n} from 'react';\nimport {SliderState} from 'react-stately/useSliderState';\nimport {useFocusable} from '../interactions/useFocusable';\nimport {useFormReset} from '../utils/useFormReset';\nimport {useGlobalListeners} from '../utils/useGlobalListeners';\nimport {useKeyboard} from '../interactions/useKeyboard';\nimport {useLabel} from '../label/useLabel';\nimport {useLocale} from '../i18n/I18nProvider';\nimport {useMove} from '../interactions/useMove';\n\nexport interface SliderThumbProps extends FocusableProps, LabelableProps {\n /**\n * The orientation of the Slider.\n *\n * @deprecated - pass to the slider instead.\n * @default 'horizontal'\n */\n orientation?: Orientation;\n /** Whether the Thumb is disabled. */\n isDisabled?: boolean;\n /**\n * Index of the thumb within the slider.\n *\n * @default 0\n */\n index?: number;\n /** @deprecated */\n isRequired?: boolean;\n /** @deprecated */\n isInvalid?: boolean;\n /** @deprecated */\n validationState?: ValidationState;\n}\n\nexport interface AriaSliderThumbProps\n extends\n SliderThumbProps,\n DOMProps,\n Omit<FocusableDOMProps, 'excludeFromTabOrder'>,\n InputDOMProps,\n AriaLabelingProps,\n AriaValidationProps {}\n\nexport interface SliderThumbAria {\n /** Props for the root thumb element; handles the dragging motion. */\n thumbProps: DOMAttributes;\n\n /** Props for the visually hidden range input element. */\n inputProps: InputHTMLAttributes<HTMLInputElement>;\n\n /** Props for the label element for this thumb (optional). */\n labelProps: LabelHTMLAttributes<HTMLLabelElement>;\n\n /** Whether this thumb is currently being dragged. */\n isDragging: boolean;\n /** Whether the thumb is currently focused. */\n isFocused: boolean;\n /** Whether the thumb is disabled. */\n isDisabled: boolean;\n}\n\nexport interface AriaSliderThumbOptions extends AriaSliderThumbProps {\n /** A ref to the track element. */\n trackRef: RefObject<Element | null>;\n /** A ref to the thumb input element. */\n inputRef: RefObject<HTMLInputElement | null>;\n}\n\n/**\n * Provides behavior and accessibility for a thumb of a slider component.\n *\n * @param opts Options for this Slider thumb.\n * @param state Slider state, created via `useSliderState`.\n */\nexport function useSliderThumb(opts: AriaSliderThumbOptions, state: SliderState): SliderThumbAria {\n let {\n index = 0,\n isRequired,\n validationState,\n isInvalid,\n trackRef,\n inputRef,\n orientation = state.orientation,\n name,\n form\n } = opts;\n\n let isDisabled = opts.isDisabled || state.isDisabled;\n let isVertical = orientation === 'vertical';\n\n let {direction} = useLocale();\n let {addGlobalListener, removeGlobalListener} = useGlobalListeners();\n\n let data = sliderData.get(state)!;\n const {labelProps, fieldProps} = useLabel({\n ...opts,\n id: getSliderThumbId(state, index),\n 'aria-labelledby': `${data.id} ${opts['aria-labelledby'] ?? ''}`.trim()\n });\n\n const value = state.values[index];\n\n const focusInput = useCallback(() => {\n if (inputRef.current) {\n focusWithoutScrolling(inputRef.current);\n }\n }, [inputRef]);\n\n const isFocused = state.focusedThumb === index;\n\n useEffect(() => {\n if (isFocused) {\n focusInput();\n }\n }, [isFocused, focusInput]);\n\n let reverseX = direction === 'rtl';\n let currentPosition = useRef<number>(null);\n\n let {keyboardProps} = useKeyboard({\n onKeyDown(e) {\n let {\n getThumbMaxValue,\n getThumbMinValue,\n decrementThumb,\n incrementThumb,\n setThumbValue,\n setThumbDragging,\n pageSize\n } = state;\n // these are the cases that useMove or useSlider don't handle\n if (!/^(PageUp|PageDown|Home|End)$/.test(e.key)) {\n e.continuePropagation();\n return;\n }\n // same handling as useMove, stopPropagation to prevent useSlider from handling the event as well.\n e.preventDefault();\n // remember to set this so that onChangeEnd is fired\n setThumbDragging(index, true);\n switch (e.key) {\n case 'PageUp':\n incrementThumb(index, pageSize);\n break;\n case 'PageDown':\n decrementThumb(index, pageSize);\n break;\n case 'Home':\n setThumbValue(index, getThumbMinValue(index));\n break;\n case 'End':\n setThumbValue(index, getThumbMaxValue(index));\n break;\n }\n setThumbDragging(index, false);\n }\n });\n\n let {moveProps} = useMove({\n onMoveStart() {\n currentPosition.current = null;\n state.setThumbDragging(index, true);\n },\n onMove({deltaX, deltaY, pointerType, shiftKey}) {\n const {getThumbPercent, setThumbPercent, decrementThumb, incrementThumb, step, pageSize} =\n state;\n if (!trackRef.current) {\n return;\n }\n let {width, height} = trackRef.current.getBoundingClientRect();\n let size = isVertical ? height : width;\n\n if (currentPosition.current == null) {\n currentPosition.current = getThumbPercent(index) * size;\n }\n if (pointerType === 'keyboard') {\n if ((deltaX > 0 && reverseX) || (deltaX < 0 && !reverseX) || deltaY > 0) {\n decrementThumb(index, shiftKey ? pageSize : step);\n } else {\n incrementThumb(index, shiftKey ? pageSize : step);\n }\n } else {\n let delta = isVertical ? deltaY : deltaX;\n if (isVertical || reverseX) {\n delta = -delta;\n }\n\n currentPosition.current += delta;\n setThumbPercent(index, clamp(currentPosition.current / size, 0, 1));\n }\n },\n onMoveEnd() {\n state.setThumbDragging(index, false);\n }\n });\n\n // Immediately register editability with the state\n state.setThumbEditable(index, !isDisabled);\n\n const {focusableProps} = useFocusable(\n mergeProps(opts, {\n onFocus: () => state.setFocusedThumb(index),\n onBlur: () => state.setFocusedThumb(undefined)\n }),\n inputRef\n );\n\n let currentPointer = useRef<number | undefined>(undefined);\n let onDown = (id?: number) => {\n focusInput();\n currentPointer.current = id;\n state.setThumbDragging(index, true);\n\n addGlobalListener(window, 'mouseup', onUp, false);\n addGlobalListener(window, 'touchend', onUp, false);\n addGlobalListener(window, 'pointerup', onUp, false);\n };\n\n let onUp = e => {\n let id = e.pointerId ?? e.changedTouches?.[0].identifier;\n if (id === currentPointer.current) {\n focusInput();\n state.setThumbDragging(index, false);\n removeGlobalListener(window, 'mouseup', onUp, false);\n removeGlobalListener(window, 'touchend', onUp, false);\n removeGlobalListener(window, 'pointerup', onUp, false);\n }\n };\n\n let thumbPosition = state.getThumbPercent(index);\n if (isVertical || direction === 'rtl') {\n thumbPosition = 1 - thumbPosition;\n }\n\n let interactions = !isDisabled\n ? mergeProps(keyboardProps, moveProps, {\n onMouseDown: (e: React.MouseEvent) => {\n if (e.button !== 0 || e.altKey || e.ctrlKey || e.metaKey) {\n return;\n }\n onDown();\n },\n onPointerDown: (e: React.PointerEvent) => {\n if (e.button !== 0 || e.altKey || e.ctrlKey || e.metaKey) {\n return;\n }\n onDown(e.pointerId);\n },\n onTouchStart: (e: React.TouchEvent) => {\n onDown(e.changedTouches[0].identifier);\n }\n })\n : {};\n\n useFormReset(inputRef, state.defaultValues[index], v => {\n state.setThumbValue(index, v);\n });\n\n // We install mouse handlers for the drag motion on the thumb div, but\n // not the key handler for moving the thumb with the slider. Instead,\n // we focus the range input, and let the browser handle the keyboard\n // interactions; we then listen to input's onChange to update state.\n return {\n inputProps: mergeProps(focusableProps, fieldProps, {\n type: 'range',\n tabIndex: !isDisabled ? 0 : undefined,\n min: state.getThumbMinValue(index),\n max: state.getThumbMaxValue(index),\n step: state.step,\n value: value,\n name,\n form,\n disabled: isDisabled,\n 'aria-orientation': orientation,\n 'aria-valuetext': state.getThumbValueLabel(index),\n 'aria-required': isRequired || undefined,\n 'aria-invalid': isInvalid || validationState === 'invalid' || undefined,\n 'aria-errormessage': opts['aria-errormessage'],\n 'aria-describedby': [data['aria-describedby'], opts['aria-describedby']]\n .filter(Boolean)\n .join(' '),\n 'aria-details': [data['aria-details'], opts['aria-details']].filter(Boolean).join(' '),\n onChange: (e: ChangeEvent<HTMLInputElement>) => {\n state.setThumbValue(index, parseFloat(getEventTarget(e).value));\n }\n }),\n thumbProps: {\n ...interactions,\n style: {\n position: 'absolute',\n [isVertical ? 'top' : 'left']: `${thumbPosition * 100}%`,\n transform: 'translate(-50%, -50%)',\n touchAction: 'none'\n }\n },\n labelProps,\n isDragging: state.isThumbDragging(index),\n isDisabled,\n isFocused\n };\n}\n"],"names":[],"version":3,"file":"useSliderThumb.mjs.map"}
1
+ {"mappings":"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","sources":["packages/react-aria/src/slider/useSliderThumb.ts"],"sourcesContent":["import {\n AriaLabelingProps,\n AriaValidationProps,\n DOMAttributes,\n DOMProps,\n FocusableDOMProps,\n FocusableProps,\n InputDOMProps,\n LabelableProps,\n Orientation,\n RefObject,\n ValidationState\n} from '@react-types/shared';\nimport {clamp} from 'react-stately/private/utils/number';\nimport {focusWithoutScrolling} from '../utils/focusWithoutScrolling';\nimport {getEventTarget} from '../utils/shadowdom/DOMFunctions';\nimport {getSliderThumbId, sliderData} from './utils';\nimport {mergeProps} from '../utils/mergeProps';\nimport React, {\n ChangeEvent,\n InputHTMLAttributes,\n LabelHTMLAttributes,\n useCallback,\n useEffect,\n useRef\n} from 'react';\nimport {SliderState} from 'react-stately/useSliderState';\nimport {useFocusable} from '../interactions/useFocusable';\nimport {useFormReset} from '../utils/useFormReset';\nimport {useGlobalListeners} from '../utils/useGlobalListeners';\nimport {useKeyboard} from '../interactions/useKeyboard';\nimport {useLabel} from '../label/useLabel';\nimport {useLocale} from '../i18n/I18nProvider';\nimport {useMove} from '../interactions/useMove';\n\nexport interface SliderThumbProps extends FocusableProps, LabelableProps {\n /**\n * The orientation of the Slider.\n *\n * @deprecated - pass to the slider instead.\n * @default 'horizontal'\n */\n orientation?: Orientation;\n /** Whether the Thumb is disabled. */\n isDisabled?: boolean;\n /**\n * Index of the thumb within the slider.\n *\n * @default 0\n */\n index?: number;\n /** @deprecated */\n isRequired?: boolean;\n /** @deprecated */\n isInvalid?: boolean;\n /** @deprecated */\n validationState?: ValidationState;\n}\n\nexport interface AriaSliderThumbProps\n extends\n SliderThumbProps,\n DOMProps,\n Omit<FocusableDOMProps, 'excludeFromTabOrder'>,\n InputDOMProps,\n AriaLabelingProps,\n AriaValidationProps {}\n\nexport interface SliderThumbAria {\n /** Props for the root thumb element; handles the dragging motion. */\n thumbProps: DOMAttributes;\n\n /** Props for the visually hidden range input element. */\n inputProps: InputHTMLAttributes<HTMLInputElement>;\n\n /** Props for the label element for this thumb (optional). */\n labelProps: LabelHTMLAttributes<HTMLLabelElement>;\n\n /** Whether this thumb is currently being dragged. */\n isDragging: boolean;\n /** Whether the thumb is currently focused. */\n isFocused: boolean;\n /** Whether the thumb is disabled. */\n isDisabled: boolean;\n}\n\nexport interface AriaSliderThumbOptions extends AriaSliderThumbProps {\n /** A ref to the track element. */\n trackRef: RefObject<Element | null>;\n /** A ref to the thumb input element. */\n inputRef: RefObject<HTMLInputElement | null>;\n}\n\n/**\n * Provides behavior and accessibility for a thumb of a slider component.\n *\n * @param opts Options for this Slider thumb.\n * @param state Slider state, created via `useSliderState`.\n */\nexport function useSliderThumb(opts: AriaSliderThumbOptions, state: SliderState): SliderThumbAria {\n let {\n index = 0,\n isRequired,\n validationState,\n isInvalid,\n trackRef,\n inputRef,\n orientation = state.orientation,\n name,\n form\n } = opts;\n\n let isDisabled = opts.isDisabled || state.isDisabled;\n let isVertical = orientation === 'vertical';\n\n let {direction} = useLocale();\n let {addGlobalListener, removeGlobalListener} = useGlobalListeners();\n\n let data = sliderData.get(state)!;\n const {labelProps, fieldProps} = useLabel({\n ...opts,\n id: getSliderThumbId(state, index),\n 'aria-labelledby': `${data.id} ${opts['aria-labelledby'] ?? ''}`.trim()\n });\n\n const value = state.values[index];\n\n const focusInput = useCallback(() => {\n if (inputRef.current) {\n focusWithoutScrolling(inputRef.current);\n }\n }, [inputRef]);\n\n const isFocused = state.focusedThumb === index;\n\n useEffect(() => {\n if (isFocused) {\n focusInput();\n }\n }, [isFocused, focusInput]);\n\n let reverseX = direction === 'rtl';\n let currentPosition = useRef<number>(null);\n\n let keyboardUpdate = cb => {\n // remember to set this so that onChangeEnd is fired\n state.setThumbDragging(index, true);\n cb();\n state.setThumbDragging(index, false);\n };\n\n let {keyboardProps} = useKeyboard({\n shortcuts: {\n PageUp: () => {\n return keyboardUpdate(() => {\n state.incrementThumb(index, state.pageSize);\n });\n },\n PageDown: () => {\n return keyboardUpdate(() => {\n state.decrementThumb(index, state.pageSize);\n });\n },\n Home: () => {\n return keyboardUpdate(() => {\n state.setThumbValue(index, state.getThumbMinValue(index));\n });\n },\n End: () => {\n return keyboardUpdate(() => {\n state.setThumbValue(index, state.getThumbMaxValue(index));\n });\n }\n },\n allowRepeats: true\n });\n\n let {moveProps} = useMove({\n onMoveStart() {\n currentPosition.current = null;\n state.setThumbDragging(index, true);\n },\n onMove({deltaX, deltaY, pointerType, shiftKey}) {\n const {getThumbPercent, setThumbPercent, decrementThumb, incrementThumb, step, pageSize} =\n state;\n if (!trackRef.current) {\n return;\n }\n let {width, height} = trackRef.current.getBoundingClientRect();\n let size = isVertical ? height : width;\n\n if (currentPosition.current == null) {\n currentPosition.current = getThumbPercent(index) * size;\n }\n if (pointerType === 'keyboard') {\n if ((deltaX > 0 && reverseX) || (deltaX < 0 && !reverseX) || deltaY > 0) {\n decrementThumb(index, shiftKey ? pageSize : step);\n } else {\n incrementThumb(index, shiftKey ? pageSize : step);\n }\n } else {\n let delta = isVertical ? deltaY : deltaX;\n if (isVertical || reverseX) {\n delta = -delta;\n }\n\n currentPosition.current += delta;\n setThumbPercent(index, clamp(currentPosition.current / size, 0, 1));\n }\n },\n onMoveEnd() {\n state.setThumbDragging(index, false);\n }\n });\n\n // Immediately register editability with the state\n state.setThumbEditable(index, !isDisabled);\n\n const {focusableProps} = useFocusable(\n mergeProps(opts, {\n onFocus: () => state.setFocusedThumb(index),\n onBlur: () => state.setFocusedThumb(undefined)\n }),\n inputRef\n );\n\n let currentPointer = useRef<number | undefined>(undefined);\n let onDown = (id?: number) => {\n focusInput();\n currentPointer.current = id;\n state.setThumbDragging(index, true);\n\n addGlobalListener(window, 'mouseup', onUp, false);\n addGlobalListener(window, 'touchend', onUp, false);\n addGlobalListener(window, 'pointerup', onUp, false);\n };\n\n let onUp = e => {\n let id = e.pointerId ?? e.changedTouches?.[0].identifier;\n if (id === currentPointer.current) {\n focusInput();\n state.setThumbDragging(index, false);\n removeGlobalListener(window, 'mouseup', onUp, false);\n removeGlobalListener(window, 'touchend', onUp, false);\n removeGlobalListener(window, 'pointerup', onUp, false);\n }\n };\n\n let thumbPosition = state.getThumbPercent(index);\n if (isVertical || direction === 'rtl') {\n thumbPosition = 1 - thumbPosition;\n }\n\n let interactions = !isDisabled\n ? // oxlint-disable-next-line react/react-compiler\n mergeProps(keyboardProps, moveProps, {\n onMouseDown: (e: React.MouseEvent) => {\n if (e.button !== 0 || e.altKey || e.ctrlKey || e.metaKey) {\n return;\n }\n onDown();\n },\n onPointerDown: (e: React.PointerEvent) => {\n if (e.button !== 0 || e.altKey || e.ctrlKey || e.metaKey) {\n return;\n }\n onDown(e.pointerId);\n },\n onTouchStart: (e: React.TouchEvent) => {\n onDown(e.changedTouches[0].identifier);\n }\n })\n : {};\n\n useFormReset(inputRef, state.defaultValues[index], v => {\n state.setThumbValue(index, v);\n });\n\n // We install mouse handlers for the drag motion on the thumb div, but\n // not the key handler for moving the thumb with the slider. Instead,\n // we focus the range input, and let the browser handle the keyboard\n // interactions; we then listen to input's onChange to update state.\n return {\n inputProps: mergeProps(focusableProps, fieldProps, {\n type: 'range',\n tabIndex: !isDisabled ? 0 : undefined,\n min: state.getThumbMinValue(index),\n max: state.getThumbMaxValue(index),\n step: state.step,\n value: value,\n name,\n form,\n disabled: isDisabled,\n 'aria-orientation': orientation,\n 'aria-valuetext': state.getThumbValueLabel(index),\n 'aria-required': isRequired || undefined,\n 'aria-invalid': isInvalid || validationState === 'invalid' || undefined,\n 'aria-errormessage': opts['aria-errormessage'],\n 'aria-describedby': [data['aria-describedby'], opts['aria-describedby']]\n .filter(Boolean)\n .join(' '),\n 'aria-details': [data['aria-details'], opts['aria-details']].filter(Boolean).join(' '),\n onChange: (e: ChangeEvent<HTMLInputElement>) => {\n state.setThumbValue(index, parseFloat(getEventTarget(e).value));\n }\n }),\n thumbProps: {\n ...interactions,\n style: {\n position: 'absolute',\n [isVertical ? 'top' : 'left']: `${thumbPosition * 100}%`,\n transform: 'translate(-50%, -50%)',\n touchAction: 'none'\n }\n },\n labelProps,\n isDragging: state.isThumbDragging(index),\n isDisabled,\n isFocused\n };\n}\n"],"names":[],"version":3,"file":"useSliderThumb.mjs.map"}
@@ -2,6 +2,7 @@ var $74b2c5b1e7ea9589$exports = require("../live-announcer/LiveAnnouncer.cjs");
2
2
  var $ef060905ca0063f8$exports = require("./intlStrings.cjs");
3
3
  var $d6e22460ce4d6b26$exports = require("../utils/useEffectEvent.cjs");
4
4
  var $04affd2086a7db64$exports = require("../utils/useGlobalListeners.cjs");
5
+ var $6d2f10bb8b359da5$exports = require("../interactions/useKeyboard.cjs");
5
6
  var $d4e8e26182baab6e$exports = require("../i18n/useLocalizedStringFormatter.cjs");
6
7
  var $i5stR$react = require("react");
7
8
 
@@ -31,6 +32,7 @@ $parcel$export(module.exports, "useSpinButton", function () { return $fcf004be7e
31
32
 
32
33
 
33
34
 
35
+
34
36
  const $fcf004be7e8533a5$var$noop = ()=>{};
35
37
  function $fcf004be7e8533a5$export$e908e06f4b8e3402(props) {
36
38
  const _async = (0, $i5stR$react.useRef)(undefined);
@@ -47,51 +49,62 @@ function $fcf004be7e8533a5$export$e908e06f4b8e3402(props) {
47
49
  (0, $i5stR$react.useEffect)(()=>{
48
50
  return ()=>clearAsyncEvent();
49
51
  }, []);
50
- let onKeyDown = (e)=>{
51
- if (e.ctrlKey || e.metaKey || e.shiftKey || e.altKey || isReadOnly || e.nativeEvent.isComposing) return;
52
- switch(e.key){
53
- case 'PageUp':
52
+ let { keyboardProps: keyboardProps } = (0, $6d2f10bb8b359da5$exports.useKeyboard)({
53
+ isDisabled: isDisabled || isReadOnly,
54
+ shortcuts: {
55
+ PageUp: ()=>{
54
56
  if (onIncrementPage) {
55
- e.preventDefault();
56
- onIncrementPage?.();
57
- break;
57
+ onIncrementPage();
58
+ return;
58
59
  }
59
- // fallthrough!
60
- case 'ArrowUp':
61
- case 'Up':
62
60
  if (onIncrement) {
63
- e.preventDefault();
64
- onIncrement?.();
61
+ onIncrement();
62
+ return;
63
+ }
64
+ return false;
65
+ },
66
+ ArrowUp: ()=>{
67
+ if (onIncrement) {
68
+ onIncrement();
69
+ return;
65
70
  }
66
- break;
67
- case 'PageDown':
71
+ return false;
72
+ },
73
+ PageDown: ()=>{
68
74
  if (onDecrementPage) {
69
- e.preventDefault();
70
- onDecrementPage?.();
71
- break;
75
+ onDecrementPage();
76
+ return;
72
77
  }
73
- // fallthrough
74
- case 'ArrowDown':
75
- case 'Down':
76
78
  if (onDecrement) {
77
- e.preventDefault();
78
- onDecrement?.();
79
+ onDecrement();
80
+ return;
81
+ }
82
+ return false;
83
+ },
84
+ ArrowDown: ()=>{
85
+ if (onDecrement) {
86
+ onDecrement();
87
+ return;
79
88
  }
80
- break;
81
- case 'Home':
89
+ return false;
90
+ },
91
+ Home: ()=>{
82
92
  if (onDecrementToMin) {
83
- e.preventDefault();
84
- onDecrementToMin?.();
93
+ onDecrementToMin();
94
+ return;
85
95
  }
86
- break;
87
- case 'End':
96
+ return false;
97
+ },
98
+ End: ()=>{
88
99
  if (onIncrementToMax) {
89
- e.preventDefault();
90
- onIncrementToMax?.();
100
+ onIncrementToMax();
101
+ return;
91
102
  }
92
- break;
93
- }
94
- };
103
+ return false;
104
+ }
105
+ },
106
+ allowRepeats: true
107
+ });
95
108
  let isFocused = (0, $i5stR$react.useRef)(false);
96
109
  let onFocus = ()=>{
97
110
  isFocused.current = true;
@@ -123,6 +136,7 @@ function $fcf004be7e8533a5$export$e908e06f4b8e3402(props) {
123
136
  const stepUpEvent = (0, $d6e22460ce4d6b26$exports.useEffectEvent)(()=>{
124
137
  if (maxValue === undefined || isNaN(maxValue) || value === undefined || isNaN(value) || value < maxValue) {
125
138
  onIncrementEvent();
139
+ // oxlint-disable-next-line react/react-compiler
126
140
  onIncrementPressStartEvent(60);
127
141
  }
128
142
  });
@@ -135,6 +149,7 @@ function $fcf004be7e8533a5$export$e908e06f4b8e3402(props) {
135
149
  const stepDownEvent = (0, $d6e22460ce4d6b26$exports.useEffectEvent)(()=>{
136
150
  if (minValue === undefined || isNaN(minValue) || value === undefined || isNaN(value) || value > minValue) {
137
151
  onDecrementEvent();
152
+ // oxlint-disable-next-line react/react-compiler
138
153
  onDecrementPressStartEvent(60);
139
154
  }
140
155
  });
@@ -179,7 +194,7 @@ function $fcf004be7e8533a5$export$e908e06f4b8e3402(props) {
179
194
  'aria-disabled': isDisabled || undefined,
180
195
  'aria-readonly': isReadOnly || undefined,
181
196
  'aria-required': isRequired || undefined,
182
- onKeyDown: onKeyDown,
197
+ ...keyboardProps,
183
198
  onFocus: onFocus,
184
199
  onBlur: onBlur
185
200
  },