react-aria 3.50.0 → 3.52.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 (1224) hide show
  1. package/dist/exports/index.cjs +16 -0
  2. package/dist/exports/index.cjs.map +1 -1
  3. package/dist/exports/index.js +10 -2
  4. package/dist/exports/index.js.map +1 -1
  5. package/dist/exports/index.mjs +10 -2
  6. package/dist/exports/index.mjs.map +1 -1
  7. package/dist/exports/private/utils/domHelpers.cjs +2 -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/useFocusVisible.cjs +1 -0
  32. package/dist/exports/useFocusVisible.cjs.map +1 -1
  33. package/dist/exports/useFocusVisible.js +2 -2
  34. package/dist/exports/useFocusVisible.js.map +1 -1
  35. package/dist/exports/useFocusVisible.mjs +2 -2
  36. package/dist/exports/useFocusVisible.mjs.map +1 -1
  37. package/dist/exports/usePreviewTrigger.cjs +22 -0
  38. package/dist/exports/usePreviewTrigger.cjs.map +1 -0
  39. package/dist/exports/usePreviewTrigger.js +17 -0
  40. package/dist/exports/usePreviewTrigger.js.map +1 -0
  41. package/dist/exports/usePreviewTrigger.mjs +17 -0
  42. package/dist/exports/usePreviewTrigger.mjs.map +1 -0
  43. package/dist/exports/useTokenField.cjs +27 -0
  44. package/dist/exports/useTokenField.cjs.map +1 -0
  45. package/dist/exports/useTokenField.js +19 -0
  46. package/dist/exports/useTokenField.js.map +1 -0
  47. package/dist/exports/useTokenField.mjs +19 -0
  48. package/dist/exports/useTokenField.mjs.map +1 -0
  49. package/dist/private/actiongroup/useActionGroup.cjs +27 -20
  50. package/dist/private/actiongroup/useActionGroup.cjs.map +1 -1
  51. package/dist/private/actiongroup/useActionGroup.js +27 -20
  52. package/dist/private/actiongroup/useActionGroup.js.map +1 -1
  53. package/dist/private/actiongroup/useActionGroup.mjs +27 -20
  54. package/dist/private/actiongroup/useActionGroup.mjs.map +1 -1
  55. package/dist/private/autocomplete/useAutocomplete.cjs +2 -1
  56. package/dist/private/autocomplete/useAutocomplete.cjs.map +1 -1
  57. package/dist/private/autocomplete/useAutocomplete.js +2 -1
  58. package/dist/private/autocomplete/useAutocomplete.js.map +1 -1
  59. package/dist/private/autocomplete/useAutocomplete.mjs +2 -1
  60. package/dist/private/autocomplete/useAutocomplete.mjs.map +1 -1
  61. package/dist/private/breadcrumbs/useBreadcrumbItem.cjs +2 -0
  62. package/dist/private/breadcrumbs/useBreadcrumbItem.cjs.map +1 -1
  63. package/dist/private/breadcrumbs/useBreadcrumbItem.js +2 -0
  64. package/dist/private/breadcrumbs/useBreadcrumbItem.js.map +1 -1
  65. package/dist/private/breadcrumbs/useBreadcrumbItem.mjs +2 -0
  66. package/dist/private/breadcrumbs/useBreadcrumbItem.mjs.map +1 -1
  67. package/dist/private/button/useButton.cjs +2 -1
  68. package/dist/private/button/useButton.cjs.map +1 -1
  69. package/dist/private/button/useButton.js +2 -1
  70. package/dist/private/button/useButton.js.map +1 -1
  71. package/dist/private/button/useButton.mjs +2 -1
  72. package/dist/private/button/useButton.mjs.map +1 -1
  73. package/dist/private/button/useToggleButtonGroup.cjs +3 -0
  74. package/dist/private/button/useToggleButtonGroup.cjs.map +1 -1
  75. package/dist/private/button/useToggleButtonGroup.js +3 -0
  76. package/dist/private/button/useToggleButtonGroup.js.map +1 -1
  77. package/dist/private/button/useToggleButtonGroup.mjs +3 -0
  78. package/dist/private/button/useToggleButtonGroup.mjs.map +1 -1
  79. package/dist/private/calendar/useCalendarCell.cjs +3 -0
  80. package/dist/private/calendar/useCalendarCell.cjs.map +1 -1
  81. package/dist/private/calendar/useCalendarCell.js +3 -0
  82. package/dist/private/calendar/useCalendarCell.js.map +1 -1
  83. package/dist/private/calendar/useCalendarCell.mjs +3 -0
  84. package/dist/private/calendar/useCalendarCell.mjs.map +1 -1
  85. package/dist/private/calendar/useCalendarGrid.cjs +47 -52
  86. package/dist/private/calendar/useCalendarGrid.cjs.map +1 -1
  87. package/dist/private/calendar/useCalendarGrid.js +47 -52
  88. package/dist/private/calendar/useCalendarGrid.js.map +1 -1
  89. package/dist/private/calendar/useCalendarGrid.mjs +47 -52
  90. package/dist/private/calendar/useCalendarGrid.mjs.map +1 -1
  91. package/dist/private/calendar/useRangeCalendar.cjs +2 -1
  92. package/dist/private/calendar/useRangeCalendar.cjs.map +1 -1
  93. package/dist/private/calendar/useRangeCalendar.js +3 -2
  94. package/dist/private/calendar/useRangeCalendar.js.map +1 -1
  95. package/dist/private/calendar/useRangeCalendar.mjs +3 -2
  96. package/dist/private/calendar/useRangeCalendar.mjs.map +1 -1
  97. package/dist/private/collections/CollectionBuilder.cjs +8 -3
  98. package/dist/private/collections/CollectionBuilder.cjs.map +1 -1
  99. package/dist/private/collections/CollectionBuilder.js +8 -3
  100. package/dist/private/collections/CollectionBuilder.js.map +1 -1
  101. package/dist/private/collections/CollectionBuilder.mjs +8 -3
  102. package/dist/private/collections/CollectionBuilder.mjs.map +1 -1
  103. package/dist/private/collections/Document.cjs +4 -0
  104. package/dist/private/collections/Document.cjs.map +1 -1
  105. package/dist/private/collections/Document.js +4 -0
  106. package/dist/private/collections/Document.js.map +1 -1
  107. package/dist/private/collections/Document.mjs +4 -0
  108. package/dist/private/collections/Document.mjs.map +1 -1
  109. package/dist/private/collections/Hidden.cjs +1 -0
  110. package/dist/private/collections/Hidden.cjs.map +1 -1
  111. package/dist/private/collections/Hidden.js +1 -0
  112. package/dist/private/collections/Hidden.js.map +1 -1
  113. package/dist/private/collections/Hidden.mjs +1 -0
  114. package/dist/private/collections/Hidden.mjs.map +1 -1
  115. package/dist/private/collections/useCachedChildren.cjs +1 -0
  116. package/dist/private/collections/useCachedChildren.cjs.map +1 -1
  117. package/dist/private/collections/useCachedChildren.js +1 -0
  118. package/dist/private/collections/useCachedChildren.js.map +1 -1
  119. package/dist/private/collections/useCachedChildren.mjs +1 -0
  120. package/dist/private/collections/useCachedChildren.mjs.map +1 -1
  121. package/dist/private/color/useColorArea.cjs +31 -34
  122. package/dist/private/color/useColorArea.cjs.map +1 -1
  123. package/dist/private/color/useColorArea.js +31 -34
  124. package/dist/private/color/useColorArea.js.map +1 -1
  125. package/dist/private/color/useColorArea.mjs +31 -34
  126. package/dist/private/color/useColorArea.mjs.map +1 -1
  127. package/dist/private/color/useColorField.cjs +26 -4
  128. package/dist/private/color/useColorField.cjs.map +1 -1
  129. package/dist/private/color/useColorField.js +26 -4
  130. package/dist/private/color/useColorField.js.map +1 -1
  131. package/dist/private/color/useColorField.mjs +26 -4
  132. package/dist/private/color/useColorField.mjs.map +1 -1
  133. package/dist/private/color/useColorSlider.cjs +4 -2
  134. package/dist/private/color/useColorSlider.cjs.map +1 -1
  135. package/dist/private/color/useColorSlider.js +4 -2
  136. package/dist/private/color/useColorSlider.js.map +1 -1
  137. package/dist/private/color/useColorSlider.mjs +4 -2
  138. package/dist/private/color/useColorSlider.mjs.map +1 -1
  139. package/dist/private/color/useColorWheel.cjs +16 -23
  140. package/dist/private/color/useColorWheel.cjs.map +1 -1
  141. package/dist/private/color/useColorWheel.js +16 -23
  142. package/dist/private/color/useColorWheel.js.map +1 -1
  143. package/dist/private/color/useColorWheel.mjs +16 -23
  144. package/dist/private/color/useColorWheel.mjs.map +1 -1
  145. package/dist/private/combobox/useComboBox.cjs +93 -30
  146. package/dist/private/combobox/useComboBox.cjs.map +1 -1
  147. package/dist/private/combobox/useComboBox.js +94 -30
  148. package/dist/private/combobox/useComboBox.js.map +1 -1
  149. package/dist/private/combobox/useComboBox.mjs +93 -30
  150. package/dist/private/combobox/useComboBox.mjs.map +1 -1
  151. package/dist/private/datepicker/useDateField.cjs +3 -6
  152. package/dist/private/datepicker/useDateField.cjs.map +1 -1
  153. package/dist/private/datepicker/useDateField.js +3 -6
  154. package/dist/private/datepicker/useDateField.js.map +1 -1
  155. package/dist/private/datepicker/useDateField.mjs +3 -6
  156. package/dist/private/datepicker/useDateField.mjs.map +1 -1
  157. package/dist/private/datepicker/useDatePickerGroup.cjs +48 -27
  158. package/dist/private/datepicker/useDatePickerGroup.cjs.map +1 -1
  159. package/dist/private/datepicker/useDatePickerGroup.js +49 -28
  160. package/dist/private/datepicker/useDatePickerGroup.js.map +1 -1
  161. package/dist/private/datepicker/useDatePickerGroup.mjs +49 -28
  162. package/dist/private/datepicker/useDatePickerGroup.mjs.map +1 -1
  163. package/dist/private/datepicker/useDateSegment.cjs +21 -16
  164. package/dist/private/datepicker/useDateSegment.cjs.map +1 -1
  165. package/dist/private/datepicker/useDateSegment.js +22 -17
  166. package/dist/private/datepicker/useDateSegment.js.map +1 -1
  167. package/dist/private/datepicker/useDateSegment.mjs +22 -17
  168. package/dist/private/datepicker/useDateSegment.mjs.map +1 -1
  169. package/dist/private/dialog/useDialog.cjs +8 -1
  170. package/dist/private/dialog/useDialog.cjs.map +1 -1
  171. package/dist/private/dialog/useDialog.js +10 -1
  172. package/dist/private/dialog/useDialog.js.map +1 -1
  173. package/dist/private/dialog/useDialog.mjs +8 -1
  174. package/dist/private/dialog/useDialog.mjs.map +1 -1
  175. package/dist/private/dnd/DragManager.cjs +3 -1
  176. package/dist/private/dnd/DragManager.cjs.map +1 -1
  177. package/dist/private/dnd/DragManager.js +3 -1
  178. package/dist/private/dnd/DragManager.js.map +1 -1
  179. package/dist/private/dnd/DragManager.mjs +3 -1
  180. package/dist/private/dnd/DragManager.mjs.map +1 -1
  181. package/dist/private/dnd/useAutoScroll.cjs +3 -1
  182. package/dist/private/dnd/useAutoScroll.cjs.map +1 -1
  183. package/dist/private/dnd/useAutoScroll.js +3 -1
  184. package/dist/private/dnd/useAutoScroll.js.map +1 -1
  185. package/dist/private/dnd/useAutoScroll.mjs +3 -1
  186. package/dist/private/dnd/useAutoScroll.mjs.map +1 -1
  187. package/dist/private/dnd/useDrag.cjs +4 -1
  188. package/dist/private/dnd/useDrag.cjs.map +1 -1
  189. package/dist/private/dnd/useDrag.js +4 -1
  190. package/dist/private/dnd/useDrag.js.map +1 -1
  191. package/dist/private/dnd/useDrag.mjs +4 -1
  192. package/dist/private/dnd/useDrag.mjs.map +1 -1
  193. package/dist/private/dnd/useDraggableItem.cjs +4 -0
  194. package/dist/private/dnd/useDraggableItem.cjs.map +1 -1
  195. package/dist/private/dnd/useDraggableItem.js +4 -0
  196. package/dist/private/dnd/useDraggableItem.js.map +1 -1
  197. package/dist/private/dnd/useDraggableItem.mjs +4 -0
  198. package/dist/private/dnd/useDraggableItem.mjs.map +1 -1
  199. package/dist/private/dnd/useDroppableCollection.cjs +4 -0
  200. package/dist/private/dnd/useDroppableCollection.cjs.map +1 -1
  201. package/dist/private/dnd/useDroppableCollection.js +4 -0
  202. package/dist/private/dnd/useDroppableCollection.js.map +1 -1
  203. package/dist/private/dnd/useDroppableCollection.mjs +4 -0
  204. package/dist/private/dnd/useDroppableCollection.mjs.map +1 -1
  205. package/dist/private/focus/FocusScope.cjs +12 -5
  206. package/dist/private/focus/FocusScope.cjs.map +1 -1
  207. package/dist/private/focus/FocusScope.js +12 -6
  208. package/dist/private/focus/FocusScope.js.map +1 -1
  209. package/dist/private/focus/FocusScope.mjs +12 -5
  210. package/dist/private/focus/FocusScope.mjs.map +1 -1
  211. package/dist/private/focus/useFocusRing.cjs +2 -1
  212. package/dist/private/focus/useFocusRing.cjs.map +1 -1
  213. package/dist/private/focus/useFocusRing.js +2 -1
  214. package/dist/private/focus/useFocusRing.js.map +1 -1
  215. package/dist/private/focus/useFocusRing.mjs +2 -1
  216. package/dist/private/focus/useFocusRing.mjs.map +1 -1
  217. package/dist/private/form/useFormValidation.cjs +6 -0
  218. package/dist/private/form/useFormValidation.cjs.map +1 -1
  219. package/dist/private/form/useFormValidation.js +6 -0
  220. package/dist/private/form/useFormValidation.js.map +1 -1
  221. package/dist/private/form/useFormValidation.mjs +6 -0
  222. package/dist/private/form/useFormValidation.mjs.map +1 -1
  223. package/dist/private/grid/useGrid.cjs +3 -2
  224. package/dist/private/grid/useGrid.cjs.map +1 -1
  225. package/dist/private/grid/useGrid.js +3 -2
  226. package/dist/private/grid/useGrid.js.map +1 -1
  227. package/dist/private/grid/useGrid.mjs +3 -2
  228. package/dist/private/grid/useGrid.mjs.map +1 -1
  229. package/dist/private/grid/useGridCell.cjs +44 -8
  230. package/dist/private/grid/useGridCell.cjs.map +1 -1
  231. package/dist/private/grid/useGridCell.js +44 -8
  232. package/dist/private/grid/useGridCell.js.map +1 -1
  233. package/dist/private/grid/useGridCell.mjs +44 -8
  234. package/dist/private/grid/useGridCell.mjs.map +1 -1
  235. package/dist/private/grid/utils.cjs.map +1 -1
  236. package/dist/private/grid/utils.js.map +1 -1
  237. package/dist/private/grid/utils.mjs.map +1 -1
  238. package/dist/private/gridlist/useGridListItem.cjs +38 -30
  239. package/dist/private/gridlist/useGridListItem.cjs.map +1 -1
  240. package/dist/private/gridlist/useGridListItem.js +38 -30
  241. package/dist/private/gridlist/useGridListItem.js.map +1 -1
  242. package/dist/private/gridlist/useGridListItem.mjs +38 -30
  243. package/dist/private/gridlist/useGridListItem.mjs.map +1 -1
  244. package/dist/private/interactions/PressResponder.cjs +1 -0
  245. package/dist/private/interactions/PressResponder.cjs.map +1 -1
  246. package/dist/private/interactions/PressResponder.js +1 -0
  247. package/dist/private/interactions/PressResponder.js.map +1 -1
  248. package/dist/private/interactions/PressResponder.mjs +1 -0
  249. package/dist/private/interactions/PressResponder.mjs.map +1 -1
  250. package/dist/private/interactions/Pressable.cjs +1 -0
  251. package/dist/private/interactions/Pressable.cjs.map +1 -1
  252. package/dist/private/interactions/Pressable.js +1 -0
  253. package/dist/private/interactions/Pressable.js.map +1 -1
  254. package/dist/private/interactions/Pressable.mjs +1 -0
  255. package/dist/private/interactions/Pressable.mjs.map +1 -1
  256. package/dist/private/interactions/createEventHandler.cjs +3 -2
  257. package/dist/private/interactions/createEventHandler.cjs.map +1 -1
  258. package/dist/private/interactions/createEventHandler.js +3 -2
  259. package/dist/private/interactions/createEventHandler.js.map +1 -1
  260. package/dist/private/interactions/createEventHandler.mjs +3 -2
  261. package/dist/private/interactions/createEventHandler.mjs.map +1 -1
  262. package/dist/private/interactions/createKeyboardShortcutHandler.cjs +130 -0
  263. package/dist/private/interactions/createKeyboardShortcutHandler.cjs.map +1 -0
  264. package/dist/private/interactions/createKeyboardShortcutHandler.js +125 -0
  265. package/dist/private/interactions/createKeyboardShortcutHandler.js.map +1 -0
  266. package/dist/private/interactions/createKeyboardShortcutHandler.mjs +125 -0
  267. package/dist/private/interactions/createKeyboardShortcutHandler.mjs.map +1 -0
  268. package/dist/private/interactions/textSelection.cjs +2 -2
  269. package/dist/private/interactions/textSelection.cjs.map +1 -1
  270. package/dist/private/interactions/textSelection.js +3 -3
  271. package/dist/private/interactions/textSelection.js.map +1 -1
  272. package/dist/private/interactions/textSelection.mjs +3 -3
  273. package/dist/private/interactions/textSelection.mjs.map +1 -1
  274. package/dist/private/interactions/useContextMenu.cjs +104 -0
  275. package/dist/private/interactions/useContextMenu.cjs.map +1 -0
  276. package/dist/private/interactions/useContextMenu.js +99 -0
  277. package/dist/private/interactions/useContextMenu.js.map +1 -0
  278. package/dist/private/interactions/useContextMenu.mjs +99 -0
  279. package/dist/private/interactions/useContextMenu.mjs.map +1 -0
  280. package/dist/private/interactions/useFocusVisible.cjs +17 -5
  281. package/dist/private/interactions/useFocusVisible.cjs.map +1 -1
  282. package/dist/private/interactions/useFocusVisible.js +17 -5
  283. package/dist/private/interactions/useFocusVisible.js.map +1 -1
  284. package/dist/private/interactions/useFocusVisible.mjs +17 -5
  285. package/dist/private/interactions/useFocusVisible.mjs.map +1 -1
  286. package/dist/private/interactions/useFocusable.cjs +1 -0
  287. package/dist/private/interactions/useFocusable.cjs.map +1 -1
  288. package/dist/private/interactions/useFocusable.js +1 -0
  289. package/dist/private/interactions/useFocusable.js.map +1 -1
  290. package/dist/private/interactions/useFocusable.mjs +1 -0
  291. package/dist/private/interactions/useFocusable.mjs.map +1 -1
  292. package/dist/private/interactions/useHover.cjs +2 -1
  293. package/dist/private/interactions/useHover.cjs.map +1 -1
  294. package/dist/private/interactions/useHover.js +2 -1
  295. package/dist/private/interactions/useHover.js.map +1 -1
  296. package/dist/private/interactions/useHover.mjs +2 -1
  297. package/dist/private/interactions/useHover.mjs.map +1 -1
  298. package/dist/private/interactions/useKeyboard.cjs +46 -2
  299. package/dist/private/interactions/useKeyboard.cjs.map +1 -1
  300. package/dist/private/interactions/useKeyboard.js +48 -2
  301. package/dist/private/interactions/useKeyboard.js.map +1 -1
  302. package/dist/private/interactions/useKeyboard.mjs +46 -2
  303. package/dist/private/interactions/useKeyboard.mjs.map +1 -1
  304. package/dist/private/interactions/useLongPress.cjs +22 -22
  305. package/dist/private/interactions/useLongPress.cjs.map +1 -1
  306. package/dist/private/interactions/useLongPress.js +22 -22
  307. package/dist/private/interactions/useLongPress.js.map +1 -1
  308. package/dist/private/interactions/useLongPress.mjs +22 -22
  309. package/dist/private/interactions/useLongPress.mjs.map +1 -1
  310. package/dist/private/interactions/useMove.cjs +1 -8
  311. package/dist/private/interactions/useMove.cjs.map +1 -1
  312. package/dist/private/interactions/useMove.js +1 -8
  313. package/dist/private/interactions/useMove.js.map +1 -1
  314. package/dist/private/interactions/useMove.mjs +1 -8
  315. package/dist/private/interactions/useMove.mjs.map +1 -1
  316. package/dist/private/interactions/usePress.cjs +18 -33
  317. package/dist/private/interactions/usePress.cjs.map +1 -1
  318. package/dist/private/interactions/usePress.js +18 -33
  319. package/dist/private/interactions/usePress.js.map +1 -1
  320. package/dist/private/interactions/usePress.mjs +18 -33
  321. package/dist/private/interactions/usePress.mjs.map +1 -1
  322. package/dist/private/interactions/utils.cjs +24 -14
  323. package/dist/private/interactions/utils.cjs.map +1 -1
  324. package/dist/private/interactions/utils.js +26 -16
  325. package/dist/private/interactions/utils.js.map +1 -1
  326. package/dist/private/interactions/utils.mjs +26 -16
  327. package/dist/private/interactions/utils.mjs.map +1 -1
  328. package/dist/private/intl/combobox/fi-FI.cjs +5 -5
  329. package/dist/private/intl/combobox/fi-FI.cjs.map +1 -1
  330. package/dist/private/intl/combobox/fi-FI.js +5 -5
  331. package/dist/private/intl/combobox/fi-FI.js.map +1 -1
  332. package/dist/private/intl/combobox/fi-FI.mjs +5 -5
  333. package/dist/private/intl/combobox/fi-FI.mjs.map +1 -1
  334. package/dist/private/intl/previewtrigger/ar-AE.cjs +6 -0
  335. package/dist/private/intl/previewtrigger/ar-AE.cjs.map +1 -0
  336. package/dist/private/intl/previewtrigger/ar-AE.js +8 -0
  337. package/dist/private/intl/previewtrigger/ar-AE.js.map +1 -0
  338. package/dist/private/intl/previewtrigger/ar-AE.mjs +8 -0
  339. package/dist/private/intl/previewtrigger/ar-AE.mjs.map +1 -0
  340. package/dist/private/intl/previewtrigger/bg-BG.cjs +6 -0
  341. package/dist/private/intl/previewtrigger/bg-BG.cjs.map +1 -0
  342. package/dist/private/intl/previewtrigger/bg-BG.js +8 -0
  343. package/dist/private/intl/previewtrigger/bg-BG.js.map +1 -0
  344. package/dist/private/intl/previewtrigger/bg-BG.mjs +8 -0
  345. package/dist/private/intl/previewtrigger/bg-BG.mjs.map +1 -0
  346. package/dist/private/intl/previewtrigger/cs-CZ.cjs +6 -0
  347. package/dist/private/intl/previewtrigger/cs-CZ.cjs.map +1 -0
  348. package/dist/private/intl/previewtrigger/cs-CZ.js +8 -0
  349. package/dist/private/intl/previewtrigger/cs-CZ.js.map +1 -0
  350. package/dist/private/intl/previewtrigger/cs-CZ.mjs +8 -0
  351. package/dist/private/intl/previewtrigger/cs-CZ.mjs.map +1 -0
  352. package/dist/private/intl/previewtrigger/da-DK.cjs +6 -0
  353. package/dist/private/intl/previewtrigger/da-DK.cjs.map +1 -0
  354. package/dist/private/intl/previewtrigger/da-DK.js +8 -0
  355. package/dist/private/intl/previewtrigger/da-DK.js.map +1 -0
  356. package/dist/private/intl/previewtrigger/da-DK.mjs +8 -0
  357. package/dist/private/intl/previewtrigger/da-DK.mjs.map +1 -0
  358. package/dist/private/intl/previewtrigger/de-DE.cjs +6 -0
  359. package/dist/private/intl/previewtrigger/de-DE.cjs.map +1 -0
  360. package/dist/private/intl/previewtrigger/de-DE.js +8 -0
  361. package/dist/private/intl/previewtrigger/de-DE.js.map +1 -0
  362. package/dist/private/intl/previewtrigger/de-DE.mjs +8 -0
  363. package/dist/private/intl/previewtrigger/de-DE.mjs.map +1 -0
  364. package/dist/private/intl/previewtrigger/el-GR.cjs +6 -0
  365. package/dist/private/intl/previewtrigger/el-GR.cjs.map +1 -0
  366. package/dist/private/intl/previewtrigger/el-GR.js +8 -0
  367. package/dist/private/intl/previewtrigger/el-GR.js.map +1 -0
  368. package/dist/private/intl/previewtrigger/el-GR.mjs +8 -0
  369. package/dist/private/intl/previewtrigger/el-GR.mjs.map +1 -0
  370. package/dist/private/intl/previewtrigger/en-US.cjs +6 -0
  371. package/dist/private/intl/previewtrigger/en-US.cjs.map +1 -0
  372. package/dist/private/intl/previewtrigger/en-US.js +8 -0
  373. package/dist/private/intl/previewtrigger/en-US.js.map +1 -0
  374. package/dist/private/intl/previewtrigger/en-US.mjs +8 -0
  375. package/dist/private/intl/previewtrigger/en-US.mjs.map +1 -0
  376. package/dist/private/intl/previewtrigger/es-ES.cjs +6 -0
  377. package/dist/private/intl/previewtrigger/es-ES.cjs.map +1 -0
  378. package/dist/private/intl/previewtrigger/es-ES.js +8 -0
  379. package/dist/private/intl/previewtrigger/es-ES.js.map +1 -0
  380. package/dist/private/intl/previewtrigger/es-ES.mjs +8 -0
  381. package/dist/private/intl/previewtrigger/es-ES.mjs.map +1 -0
  382. package/dist/private/intl/previewtrigger/et-EE.cjs +6 -0
  383. package/dist/private/intl/previewtrigger/et-EE.cjs.map +1 -0
  384. package/dist/private/intl/previewtrigger/et-EE.js +8 -0
  385. package/dist/private/intl/previewtrigger/et-EE.js.map +1 -0
  386. package/dist/private/intl/previewtrigger/et-EE.mjs +8 -0
  387. package/dist/private/intl/previewtrigger/et-EE.mjs.map +1 -0
  388. package/dist/private/intl/previewtrigger/fi-FI.cjs +6 -0
  389. package/dist/private/intl/previewtrigger/fi-FI.cjs.map +1 -0
  390. package/dist/private/intl/previewtrigger/fi-FI.js +8 -0
  391. package/dist/private/intl/previewtrigger/fi-FI.js.map +1 -0
  392. package/dist/private/intl/previewtrigger/fi-FI.mjs +8 -0
  393. package/dist/private/intl/previewtrigger/fi-FI.mjs.map +1 -0
  394. package/dist/private/intl/previewtrigger/fr-FR.cjs +6 -0
  395. package/dist/private/intl/previewtrigger/fr-FR.cjs.map +1 -0
  396. package/dist/private/intl/previewtrigger/fr-FR.js +8 -0
  397. package/dist/private/intl/previewtrigger/fr-FR.js.map +1 -0
  398. package/dist/private/intl/previewtrigger/fr-FR.mjs +8 -0
  399. package/dist/private/intl/previewtrigger/fr-FR.mjs.map +1 -0
  400. package/dist/private/intl/previewtrigger/he-IL.cjs +6 -0
  401. package/dist/private/intl/previewtrigger/he-IL.cjs.map +1 -0
  402. package/dist/private/intl/previewtrigger/he-IL.js +8 -0
  403. package/dist/private/intl/previewtrigger/he-IL.js.map +1 -0
  404. package/dist/private/intl/previewtrigger/he-IL.mjs +8 -0
  405. package/dist/private/intl/previewtrigger/he-IL.mjs.map +1 -0
  406. package/dist/private/intl/previewtrigger/hr-HR.cjs +6 -0
  407. package/dist/private/intl/previewtrigger/hr-HR.cjs.map +1 -0
  408. package/dist/private/intl/previewtrigger/hr-HR.js +8 -0
  409. package/dist/private/intl/previewtrigger/hr-HR.js.map +1 -0
  410. package/dist/private/intl/previewtrigger/hr-HR.mjs +8 -0
  411. package/dist/private/intl/previewtrigger/hr-HR.mjs.map +1 -0
  412. package/dist/private/intl/previewtrigger/hu-HU.cjs +6 -0
  413. package/dist/private/intl/previewtrigger/hu-HU.cjs.map +1 -0
  414. package/dist/private/intl/previewtrigger/hu-HU.js +8 -0
  415. package/dist/private/intl/previewtrigger/hu-HU.js.map +1 -0
  416. package/dist/private/intl/previewtrigger/hu-HU.mjs +8 -0
  417. package/dist/private/intl/previewtrigger/hu-HU.mjs.map +1 -0
  418. package/dist/private/intl/previewtrigger/it-IT.cjs +6 -0
  419. package/dist/private/intl/previewtrigger/it-IT.cjs.map +1 -0
  420. package/dist/private/intl/previewtrigger/it-IT.js +8 -0
  421. package/dist/private/intl/previewtrigger/it-IT.js.map +1 -0
  422. package/dist/private/intl/previewtrigger/it-IT.mjs +8 -0
  423. package/dist/private/intl/previewtrigger/it-IT.mjs.map +1 -0
  424. package/dist/private/intl/previewtrigger/ja-JP.cjs +6 -0
  425. package/dist/private/intl/previewtrigger/ja-JP.cjs.map +1 -0
  426. package/dist/private/intl/previewtrigger/ja-JP.js +8 -0
  427. package/dist/private/intl/previewtrigger/ja-JP.js.map +1 -0
  428. package/dist/private/intl/previewtrigger/ja-JP.mjs +8 -0
  429. package/dist/private/intl/previewtrigger/ja-JP.mjs.map +1 -0
  430. package/dist/private/intl/previewtrigger/ko-KR.cjs +6 -0
  431. package/dist/private/intl/previewtrigger/ko-KR.cjs.map +1 -0
  432. package/dist/private/intl/previewtrigger/ko-KR.js +8 -0
  433. package/dist/private/intl/previewtrigger/ko-KR.js.map +1 -0
  434. package/dist/private/intl/previewtrigger/ko-KR.mjs +8 -0
  435. package/dist/private/intl/previewtrigger/ko-KR.mjs.map +1 -0
  436. package/dist/private/intl/previewtrigger/lt-LT.cjs +6 -0
  437. package/dist/private/intl/previewtrigger/lt-LT.cjs.map +1 -0
  438. package/dist/private/intl/previewtrigger/lt-LT.js +8 -0
  439. package/dist/private/intl/previewtrigger/lt-LT.js.map +1 -0
  440. package/dist/private/intl/previewtrigger/lt-LT.mjs +8 -0
  441. package/dist/private/intl/previewtrigger/lt-LT.mjs.map +1 -0
  442. package/dist/private/intl/previewtrigger/lv-LV.cjs +6 -0
  443. package/dist/private/intl/previewtrigger/lv-LV.cjs.map +1 -0
  444. package/dist/private/intl/previewtrigger/lv-LV.js +8 -0
  445. package/dist/private/intl/previewtrigger/lv-LV.js.map +1 -0
  446. package/dist/private/intl/previewtrigger/lv-LV.mjs +8 -0
  447. package/dist/private/intl/previewtrigger/lv-LV.mjs.map +1 -0
  448. package/dist/private/intl/previewtrigger/nb-NO.cjs +6 -0
  449. package/dist/private/intl/previewtrigger/nb-NO.cjs.map +1 -0
  450. package/dist/private/intl/previewtrigger/nb-NO.js +8 -0
  451. package/dist/private/intl/previewtrigger/nb-NO.js.map +1 -0
  452. package/dist/private/intl/previewtrigger/nb-NO.mjs +8 -0
  453. package/dist/private/intl/previewtrigger/nb-NO.mjs.map +1 -0
  454. package/dist/private/intl/previewtrigger/nl-NL.cjs +6 -0
  455. package/dist/private/intl/previewtrigger/nl-NL.cjs.map +1 -0
  456. package/dist/private/intl/previewtrigger/nl-NL.js +8 -0
  457. package/dist/private/intl/previewtrigger/nl-NL.js.map +1 -0
  458. package/dist/private/intl/previewtrigger/nl-NL.mjs +8 -0
  459. package/dist/private/intl/previewtrigger/nl-NL.mjs.map +1 -0
  460. package/dist/private/intl/previewtrigger/pl-PL.cjs +6 -0
  461. package/dist/private/intl/previewtrigger/pl-PL.cjs.map +1 -0
  462. package/dist/private/intl/previewtrigger/pl-PL.js +8 -0
  463. package/dist/private/intl/previewtrigger/pl-PL.js.map +1 -0
  464. package/dist/private/intl/previewtrigger/pl-PL.mjs +8 -0
  465. package/dist/private/intl/previewtrigger/pl-PL.mjs.map +1 -0
  466. package/dist/private/intl/previewtrigger/pt-BR.cjs +6 -0
  467. package/dist/private/intl/previewtrigger/pt-BR.cjs.map +1 -0
  468. package/dist/private/intl/previewtrigger/pt-BR.js +8 -0
  469. package/dist/private/intl/previewtrigger/pt-BR.js.map +1 -0
  470. package/dist/private/intl/previewtrigger/pt-BR.mjs +8 -0
  471. package/dist/private/intl/previewtrigger/pt-BR.mjs.map +1 -0
  472. package/dist/private/intl/previewtrigger/pt-PT.cjs +6 -0
  473. package/dist/private/intl/previewtrigger/pt-PT.cjs.map +1 -0
  474. package/dist/private/intl/previewtrigger/pt-PT.js +8 -0
  475. package/dist/private/intl/previewtrigger/pt-PT.js.map +1 -0
  476. package/dist/private/intl/previewtrigger/pt-PT.mjs +8 -0
  477. package/dist/private/intl/previewtrigger/pt-PT.mjs.map +1 -0
  478. package/dist/private/intl/previewtrigger/ro-RO.cjs +6 -0
  479. package/dist/private/intl/previewtrigger/ro-RO.cjs.map +1 -0
  480. package/dist/private/intl/previewtrigger/ro-RO.js +8 -0
  481. package/dist/private/intl/previewtrigger/ro-RO.js.map +1 -0
  482. package/dist/private/intl/previewtrigger/ro-RO.mjs +8 -0
  483. package/dist/private/intl/previewtrigger/ro-RO.mjs.map +1 -0
  484. package/dist/private/intl/previewtrigger/ru-RU.cjs +6 -0
  485. package/dist/private/intl/previewtrigger/ru-RU.cjs.map +1 -0
  486. package/dist/private/intl/previewtrigger/ru-RU.js +8 -0
  487. package/dist/private/intl/previewtrigger/ru-RU.js.map +1 -0
  488. package/dist/private/intl/previewtrigger/ru-RU.mjs +8 -0
  489. package/dist/private/intl/previewtrigger/ru-RU.mjs.map +1 -0
  490. package/dist/private/intl/previewtrigger/sk-SK.cjs +6 -0
  491. package/dist/private/intl/previewtrigger/sk-SK.cjs.map +1 -0
  492. package/dist/private/intl/previewtrigger/sk-SK.js +8 -0
  493. package/dist/private/intl/previewtrigger/sk-SK.js.map +1 -0
  494. package/dist/private/intl/previewtrigger/sk-SK.mjs +8 -0
  495. package/dist/private/intl/previewtrigger/sk-SK.mjs.map +1 -0
  496. package/dist/private/intl/previewtrigger/sl-SI.cjs +6 -0
  497. package/dist/private/intl/previewtrigger/sl-SI.cjs.map +1 -0
  498. package/dist/private/intl/previewtrigger/sl-SI.js +8 -0
  499. package/dist/private/intl/previewtrigger/sl-SI.js.map +1 -0
  500. package/dist/private/intl/previewtrigger/sl-SI.mjs +8 -0
  501. package/dist/private/intl/previewtrigger/sl-SI.mjs.map +1 -0
  502. package/dist/private/intl/previewtrigger/sr-SP.cjs +6 -0
  503. package/dist/private/intl/previewtrigger/sr-SP.cjs.map +1 -0
  504. package/dist/private/intl/previewtrigger/sr-SP.js +8 -0
  505. package/dist/private/intl/previewtrigger/sr-SP.js.map +1 -0
  506. package/dist/private/intl/previewtrigger/sr-SP.mjs +8 -0
  507. package/dist/private/intl/previewtrigger/sr-SP.mjs.map +1 -0
  508. package/dist/private/intl/previewtrigger/sv-SE.cjs +6 -0
  509. package/dist/private/intl/previewtrigger/sv-SE.cjs.map +1 -0
  510. package/dist/private/intl/previewtrigger/sv-SE.js +8 -0
  511. package/dist/private/intl/previewtrigger/sv-SE.js.map +1 -0
  512. package/dist/private/intl/previewtrigger/sv-SE.mjs +8 -0
  513. package/dist/private/intl/previewtrigger/sv-SE.mjs.map +1 -0
  514. package/dist/private/intl/previewtrigger/tr-TR.cjs +6 -0
  515. package/dist/private/intl/previewtrigger/tr-TR.cjs.map +1 -0
  516. package/dist/private/intl/previewtrigger/tr-TR.js +8 -0
  517. package/dist/private/intl/previewtrigger/tr-TR.js.map +1 -0
  518. package/dist/private/intl/previewtrigger/tr-TR.mjs +8 -0
  519. package/dist/private/intl/previewtrigger/tr-TR.mjs.map +1 -0
  520. package/dist/private/intl/previewtrigger/uk-UA.cjs +6 -0
  521. package/dist/private/intl/previewtrigger/uk-UA.cjs.map +1 -0
  522. package/dist/private/intl/previewtrigger/uk-UA.js +8 -0
  523. package/dist/private/intl/previewtrigger/uk-UA.js.map +1 -0
  524. package/dist/private/intl/previewtrigger/uk-UA.mjs +8 -0
  525. package/dist/private/intl/previewtrigger/uk-UA.mjs.map +1 -0
  526. package/dist/private/intl/previewtrigger/zh-CN.cjs +6 -0
  527. package/dist/private/intl/previewtrigger/zh-CN.cjs.map +1 -0
  528. package/dist/private/intl/previewtrigger/zh-CN.js +8 -0
  529. package/dist/private/intl/previewtrigger/zh-CN.js.map +1 -0
  530. package/dist/private/intl/previewtrigger/zh-CN.mjs +8 -0
  531. package/dist/private/intl/previewtrigger/zh-CN.mjs.map +1 -0
  532. package/dist/private/intl/previewtrigger/zh-TW.cjs +6 -0
  533. package/dist/private/intl/previewtrigger/zh-TW.cjs.map +1 -0
  534. package/dist/private/intl/previewtrigger/zh-TW.js +8 -0
  535. package/dist/private/intl/previewtrigger/zh-TW.js.map +1 -0
  536. package/dist/private/intl/previewtrigger/zh-TW.mjs +8 -0
  537. package/dist/private/intl/previewtrigger/zh-TW.mjs.map +1 -0
  538. package/dist/private/intl/table/ar-AE.cjs +3 -3
  539. package/dist/private/intl/table/ar-AE.cjs.map +1 -1
  540. package/dist/private/intl/table/ar-AE.js +3 -3
  541. package/dist/private/intl/table/ar-AE.js.map +1 -1
  542. package/dist/private/intl/table/ar-AE.mjs +3 -3
  543. package/dist/private/intl/table/ar-AE.mjs.map +1 -1
  544. package/dist/private/intl/table/bg-BG.cjs +3 -3
  545. package/dist/private/intl/table/bg-BG.cjs.map +1 -1
  546. package/dist/private/intl/table/bg-BG.js +3 -3
  547. package/dist/private/intl/table/bg-BG.js.map +1 -1
  548. package/dist/private/intl/table/bg-BG.mjs +3 -3
  549. package/dist/private/intl/table/bg-BG.mjs.map +1 -1
  550. package/dist/private/intl/table/cs-CZ.cjs +3 -3
  551. package/dist/private/intl/table/cs-CZ.cjs.map +1 -1
  552. package/dist/private/intl/table/cs-CZ.js +3 -3
  553. package/dist/private/intl/table/cs-CZ.js.map +1 -1
  554. package/dist/private/intl/table/cs-CZ.mjs +3 -3
  555. package/dist/private/intl/table/cs-CZ.mjs.map +1 -1
  556. package/dist/private/intl/table/da-DK.cjs +3 -3
  557. package/dist/private/intl/table/da-DK.cjs.map +1 -1
  558. package/dist/private/intl/table/da-DK.js +3 -3
  559. package/dist/private/intl/table/da-DK.js.map +1 -1
  560. package/dist/private/intl/table/da-DK.mjs +3 -3
  561. package/dist/private/intl/table/da-DK.mjs.map +1 -1
  562. package/dist/private/intl/table/de-DE.cjs +3 -3
  563. package/dist/private/intl/table/de-DE.cjs.map +1 -1
  564. package/dist/private/intl/table/de-DE.js +3 -3
  565. package/dist/private/intl/table/de-DE.js.map +1 -1
  566. package/dist/private/intl/table/de-DE.mjs +3 -3
  567. package/dist/private/intl/table/de-DE.mjs.map +1 -1
  568. package/dist/private/intl/table/el-GR.cjs +3 -3
  569. package/dist/private/intl/table/el-GR.cjs.map +1 -1
  570. package/dist/private/intl/table/el-GR.js +3 -3
  571. package/dist/private/intl/table/el-GR.js.map +1 -1
  572. package/dist/private/intl/table/el-GR.mjs +3 -3
  573. package/dist/private/intl/table/el-GR.mjs.map +1 -1
  574. package/dist/private/intl/table/es-ES.cjs +3 -3
  575. package/dist/private/intl/table/es-ES.cjs.map +1 -1
  576. package/dist/private/intl/table/es-ES.js +3 -3
  577. package/dist/private/intl/table/es-ES.js.map +1 -1
  578. package/dist/private/intl/table/es-ES.mjs +3 -3
  579. package/dist/private/intl/table/es-ES.mjs.map +1 -1
  580. package/dist/private/intl/table/et-EE.cjs +3 -3
  581. package/dist/private/intl/table/et-EE.cjs.map +1 -1
  582. package/dist/private/intl/table/et-EE.js +3 -3
  583. package/dist/private/intl/table/et-EE.js.map +1 -1
  584. package/dist/private/intl/table/et-EE.mjs +3 -3
  585. package/dist/private/intl/table/et-EE.mjs.map +1 -1
  586. package/dist/private/intl/table/fi-FI.cjs +3 -3
  587. package/dist/private/intl/table/fi-FI.cjs.map +1 -1
  588. package/dist/private/intl/table/fi-FI.js +3 -3
  589. package/dist/private/intl/table/fi-FI.js.map +1 -1
  590. package/dist/private/intl/table/fi-FI.mjs +3 -3
  591. package/dist/private/intl/table/fi-FI.mjs.map +1 -1
  592. package/dist/private/intl/table/fr-FR.cjs +3 -3
  593. package/dist/private/intl/table/fr-FR.cjs.map +1 -1
  594. package/dist/private/intl/table/fr-FR.js +3 -3
  595. package/dist/private/intl/table/fr-FR.js.map +1 -1
  596. package/dist/private/intl/table/fr-FR.mjs +3 -3
  597. package/dist/private/intl/table/fr-FR.mjs.map +1 -1
  598. package/dist/private/intl/table/he-IL.cjs +3 -3
  599. package/dist/private/intl/table/he-IL.cjs.map +1 -1
  600. package/dist/private/intl/table/he-IL.js +3 -3
  601. package/dist/private/intl/table/he-IL.js.map +1 -1
  602. package/dist/private/intl/table/he-IL.mjs +3 -3
  603. package/dist/private/intl/table/he-IL.mjs.map +1 -1
  604. package/dist/private/intl/table/hr-HR.cjs +3 -3
  605. package/dist/private/intl/table/hr-HR.cjs.map +1 -1
  606. package/dist/private/intl/table/hr-HR.js +3 -3
  607. package/dist/private/intl/table/hr-HR.js.map +1 -1
  608. package/dist/private/intl/table/hr-HR.mjs +3 -3
  609. package/dist/private/intl/table/hr-HR.mjs.map +1 -1
  610. package/dist/private/intl/table/hu-HU.cjs +3 -3
  611. package/dist/private/intl/table/hu-HU.cjs.map +1 -1
  612. package/dist/private/intl/table/hu-HU.js +3 -3
  613. package/dist/private/intl/table/hu-HU.js.map +1 -1
  614. package/dist/private/intl/table/hu-HU.mjs +3 -3
  615. package/dist/private/intl/table/hu-HU.mjs.map +1 -1
  616. package/dist/private/intl/table/it-IT.cjs +3 -3
  617. package/dist/private/intl/table/it-IT.cjs.map +1 -1
  618. package/dist/private/intl/table/it-IT.js +3 -3
  619. package/dist/private/intl/table/it-IT.js.map +1 -1
  620. package/dist/private/intl/table/it-IT.mjs +3 -3
  621. package/dist/private/intl/table/it-IT.mjs.map +1 -1
  622. package/dist/private/intl/table/ja-JP.cjs +3 -3
  623. package/dist/private/intl/table/ja-JP.cjs.map +1 -1
  624. package/dist/private/intl/table/ja-JP.js +3 -3
  625. package/dist/private/intl/table/ja-JP.js.map +1 -1
  626. package/dist/private/intl/table/ja-JP.mjs +3 -3
  627. package/dist/private/intl/table/ja-JP.mjs.map +1 -1
  628. package/dist/private/intl/table/ko-KR.cjs +3 -3
  629. package/dist/private/intl/table/ko-KR.cjs.map +1 -1
  630. package/dist/private/intl/table/ko-KR.js +3 -3
  631. package/dist/private/intl/table/ko-KR.js.map +1 -1
  632. package/dist/private/intl/table/ko-KR.mjs +3 -3
  633. package/dist/private/intl/table/ko-KR.mjs.map +1 -1
  634. package/dist/private/intl/table/lt-LT.cjs +3 -3
  635. package/dist/private/intl/table/lt-LT.cjs.map +1 -1
  636. package/dist/private/intl/table/lt-LT.js +3 -3
  637. package/dist/private/intl/table/lt-LT.js.map +1 -1
  638. package/dist/private/intl/table/lt-LT.mjs +3 -3
  639. package/dist/private/intl/table/lt-LT.mjs.map +1 -1
  640. package/dist/private/intl/table/lv-LV.cjs +3 -3
  641. package/dist/private/intl/table/lv-LV.cjs.map +1 -1
  642. package/dist/private/intl/table/lv-LV.js +3 -3
  643. package/dist/private/intl/table/lv-LV.js.map +1 -1
  644. package/dist/private/intl/table/lv-LV.mjs +3 -3
  645. package/dist/private/intl/table/lv-LV.mjs.map +1 -1
  646. package/dist/private/intl/table/nb-NO.cjs +3 -3
  647. package/dist/private/intl/table/nb-NO.cjs.map +1 -1
  648. package/dist/private/intl/table/nb-NO.js +3 -3
  649. package/dist/private/intl/table/nb-NO.js.map +1 -1
  650. package/dist/private/intl/table/nb-NO.mjs +3 -3
  651. package/dist/private/intl/table/nb-NO.mjs.map +1 -1
  652. package/dist/private/intl/table/nl-NL.cjs +3 -3
  653. package/dist/private/intl/table/nl-NL.cjs.map +1 -1
  654. package/dist/private/intl/table/nl-NL.js +3 -3
  655. package/dist/private/intl/table/nl-NL.js.map +1 -1
  656. package/dist/private/intl/table/nl-NL.mjs +3 -3
  657. package/dist/private/intl/table/nl-NL.mjs.map +1 -1
  658. package/dist/private/intl/table/pl-PL.cjs +3 -3
  659. package/dist/private/intl/table/pl-PL.cjs.map +1 -1
  660. package/dist/private/intl/table/pl-PL.js +3 -3
  661. package/dist/private/intl/table/pl-PL.js.map +1 -1
  662. package/dist/private/intl/table/pl-PL.mjs +3 -3
  663. package/dist/private/intl/table/pl-PL.mjs.map +1 -1
  664. package/dist/private/intl/table/pt-BR.cjs +3 -3
  665. package/dist/private/intl/table/pt-BR.cjs.map +1 -1
  666. package/dist/private/intl/table/pt-BR.js +3 -3
  667. package/dist/private/intl/table/pt-BR.js.map +1 -1
  668. package/dist/private/intl/table/pt-BR.mjs +3 -3
  669. package/dist/private/intl/table/pt-BR.mjs.map +1 -1
  670. package/dist/private/intl/table/pt-PT.cjs +3 -3
  671. package/dist/private/intl/table/pt-PT.cjs.map +1 -1
  672. package/dist/private/intl/table/pt-PT.js +3 -3
  673. package/dist/private/intl/table/pt-PT.js.map +1 -1
  674. package/dist/private/intl/table/pt-PT.mjs +3 -3
  675. package/dist/private/intl/table/pt-PT.mjs.map +1 -1
  676. package/dist/private/intl/table/ro-RO.cjs +3 -3
  677. package/dist/private/intl/table/ro-RO.cjs.map +1 -1
  678. package/dist/private/intl/table/ro-RO.js +3 -3
  679. package/dist/private/intl/table/ro-RO.js.map +1 -1
  680. package/dist/private/intl/table/ro-RO.mjs +3 -3
  681. package/dist/private/intl/table/ro-RO.mjs.map +1 -1
  682. package/dist/private/intl/table/ru-RU.cjs +3 -3
  683. package/dist/private/intl/table/ru-RU.cjs.map +1 -1
  684. package/dist/private/intl/table/ru-RU.js +3 -3
  685. package/dist/private/intl/table/ru-RU.js.map +1 -1
  686. package/dist/private/intl/table/ru-RU.mjs +3 -3
  687. package/dist/private/intl/table/ru-RU.mjs.map +1 -1
  688. package/dist/private/intl/table/sk-SK.cjs +3 -3
  689. package/dist/private/intl/table/sk-SK.cjs.map +1 -1
  690. package/dist/private/intl/table/sk-SK.js +3 -3
  691. package/dist/private/intl/table/sk-SK.js.map +1 -1
  692. package/dist/private/intl/table/sk-SK.mjs +3 -3
  693. package/dist/private/intl/table/sk-SK.mjs.map +1 -1
  694. package/dist/private/intl/table/sl-SI.cjs +3 -3
  695. package/dist/private/intl/table/sl-SI.cjs.map +1 -1
  696. package/dist/private/intl/table/sl-SI.js +3 -3
  697. package/dist/private/intl/table/sl-SI.js.map +1 -1
  698. package/dist/private/intl/table/sl-SI.mjs +3 -3
  699. package/dist/private/intl/table/sl-SI.mjs.map +1 -1
  700. package/dist/private/intl/table/sr-SP.cjs +3 -3
  701. package/dist/private/intl/table/sr-SP.cjs.map +1 -1
  702. package/dist/private/intl/table/sr-SP.js +3 -3
  703. package/dist/private/intl/table/sr-SP.js.map +1 -1
  704. package/dist/private/intl/table/sr-SP.mjs +3 -3
  705. package/dist/private/intl/table/sr-SP.mjs.map +1 -1
  706. package/dist/private/intl/table/sv-SE.cjs +3 -3
  707. package/dist/private/intl/table/sv-SE.cjs.map +1 -1
  708. package/dist/private/intl/table/sv-SE.js +3 -3
  709. package/dist/private/intl/table/sv-SE.js.map +1 -1
  710. package/dist/private/intl/table/sv-SE.mjs +3 -3
  711. package/dist/private/intl/table/sv-SE.mjs.map +1 -1
  712. package/dist/private/intl/table/tr-TR.cjs +3 -3
  713. package/dist/private/intl/table/tr-TR.cjs.map +1 -1
  714. package/dist/private/intl/table/tr-TR.js +3 -3
  715. package/dist/private/intl/table/tr-TR.js.map +1 -1
  716. package/dist/private/intl/table/tr-TR.mjs +3 -3
  717. package/dist/private/intl/table/tr-TR.mjs.map +1 -1
  718. package/dist/private/intl/table/uk-UA.cjs +3 -3
  719. package/dist/private/intl/table/uk-UA.cjs.map +1 -1
  720. package/dist/private/intl/table/uk-UA.js +3 -3
  721. package/dist/private/intl/table/uk-UA.js.map +1 -1
  722. package/dist/private/intl/table/uk-UA.mjs +3 -3
  723. package/dist/private/intl/table/uk-UA.mjs.map +1 -1
  724. package/dist/private/intl/table/zh-CN.cjs +4 -4
  725. package/dist/private/intl/table/zh-CN.cjs.map +1 -1
  726. package/dist/private/intl/table/zh-CN.js +4 -4
  727. package/dist/private/intl/table/zh-CN.js.map +1 -1
  728. package/dist/private/intl/table/zh-CN.mjs +4 -4
  729. package/dist/private/intl/table/zh-CN.mjs.map +1 -1
  730. package/dist/private/intl/table/zh-TW.cjs +3 -3
  731. package/dist/private/intl/table/zh-TW.cjs.map +1 -1
  732. package/dist/private/intl/table/zh-TW.js +3 -3
  733. package/dist/private/intl/table/zh-TW.js.map +1 -1
  734. package/dist/private/intl/table/zh-TW.mjs +3 -3
  735. package/dist/private/intl/table/zh-TW.mjs.map +1 -1
  736. package/dist/private/intl/tree/es-ES.cjs +1 -1
  737. package/dist/private/intl/tree/es-ES.cjs.map +1 -1
  738. package/dist/private/intl/tree/es-ES.js +1 -1
  739. package/dist/private/intl/tree/es-ES.js.map +1 -1
  740. package/dist/private/intl/tree/es-ES.mjs +1 -1
  741. package/dist/private/intl/tree/es-ES.mjs.map +1 -1
  742. package/dist/private/link/useLink.cjs +2 -1
  743. package/dist/private/link/useLink.cjs.map +1 -1
  744. package/dist/private/link/useLink.js +2 -1
  745. package/dist/private/link/useLink.js.map +1 -1
  746. package/dist/private/link/useLink.mjs +2 -1
  747. package/dist/private/link/useLink.mjs.map +1 -1
  748. package/dist/private/menu/useMenuItem.cjs +33 -33
  749. package/dist/private/menu/useMenuItem.cjs.map +1 -1
  750. package/dist/private/menu/useMenuItem.js +33 -33
  751. package/dist/private/menu/useMenuItem.js.map +1 -1
  752. package/dist/private/menu/useMenuItem.mjs +33 -33
  753. package/dist/private/menu/useMenuItem.mjs.map +1 -1
  754. package/dist/private/menu/useMenuTrigger.cjs +96 -30
  755. package/dist/private/menu/useMenuTrigger.cjs.map +1 -1
  756. package/dist/private/menu/useMenuTrigger.js +96 -30
  757. package/dist/private/menu/useMenuTrigger.js.map +1 -1
  758. package/dist/private/menu/useMenuTrigger.mjs +96 -30
  759. package/dist/private/menu/useMenuTrigger.mjs.map +1 -1
  760. package/dist/private/menu/useSubmenuTrigger.cjs +44 -36
  761. package/dist/private/menu/useSubmenuTrigger.cjs.map +1 -1
  762. package/dist/private/menu/useSubmenuTrigger.js +44 -36
  763. package/dist/private/menu/useSubmenuTrigger.js.map +1 -1
  764. package/dist/private/menu/useSubmenuTrigger.mjs +44 -36
  765. package/dist/private/menu/useSubmenuTrigger.mjs.map +1 -1
  766. package/dist/private/numberfield/useNumberField.cjs +24 -19
  767. package/dist/private/numberfield/useNumberField.cjs.map +1 -1
  768. package/dist/private/numberfield/useNumberField.js +24 -19
  769. package/dist/private/numberfield/useNumberField.js.map +1 -1
  770. package/dist/private/numberfield/useNumberField.mjs +24 -19
  771. package/dist/private/numberfield/useNumberField.mjs.map +1 -1
  772. package/dist/private/overlays/Overlay.cjs +5 -1
  773. package/dist/private/overlays/Overlay.cjs.map +1 -1
  774. package/dist/private/overlays/Overlay.js +5 -1
  775. package/dist/private/overlays/Overlay.js.map +1 -1
  776. package/dist/private/overlays/Overlay.mjs +5 -1
  777. package/dist/private/overlays/Overlay.mjs.map +1 -1
  778. package/dist/private/overlays/ariaHideOutside.cjs +12 -8
  779. package/dist/private/overlays/ariaHideOutside.cjs.map +1 -1
  780. package/dist/private/overlays/ariaHideOutside.js +13 -9
  781. package/dist/private/overlays/ariaHideOutside.js.map +1 -1
  782. package/dist/private/overlays/ariaHideOutside.mjs +13 -9
  783. package/dist/private/overlays/ariaHideOutside.mjs.map +1 -1
  784. package/dist/private/overlays/calculatePosition.cjs +3 -2
  785. package/dist/private/overlays/calculatePosition.cjs.map +1 -1
  786. package/dist/private/overlays/calculatePosition.js +5 -2
  787. package/dist/private/overlays/calculatePosition.js.map +1 -1
  788. package/dist/private/overlays/calculatePosition.mjs +3 -2
  789. package/dist/private/overlays/calculatePosition.mjs.map +1 -1
  790. package/dist/private/overlays/useCloseOnScroll.cjs +3 -4
  791. package/dist/private/overlays/useCloseOnScroll.cjs.map +1 -1
  792. package/dist/private/overlays/useCloseOnScroll.js +4 -5
  793. package/dist/private/overlays/useCloseOnScroll.js.map +1 -1
  794. package/dist/private/overlays/useCloseOnScroll.mjs +4 -5
  795. package/dist/private/overlays/useCloseOnScroll.mjs.map +1 -1
  796. package/dist/private/overlays/useOverlay.cjs +13 -7
  797. package/dist/private/overlays/useOverlay.cjs.map +1 -1
  798. package/dist/private/overlays/useOverlay.js +13 -7
  799. package/dist/private/overlays/useOverlay.js.map +1 -1
  800. package/dist/private/overlays/useOverlay.mjs +13 -7
  801. package/dist/private/overlays/useOverlay.mjs.map +1 -1
  802. package/dist/private/overlays/useOverlayPosition.cjs +11 -0
  803. package/dist/private/overlays/useOverlayPosition.cjs.map +1 -1
  804. package/dist/private/overlays/useOverlayPosition.js +12 -1
  805. package/dist/private/overlays/useOverlayPosition.js.map +1 -1
  806. package/dist/private/overlays/useOverlayPosition.mjs +12 -1
  807. package/dist/private/overlays/useOverlayPosition.mjs.map +1 -1
  808. package/dist/private/overlays/usePopover.cjs +6 -2
  809. package/dist/private/overlays/usePopover.cjs.map +1 -1
  810. package/dist/private/overlays/usePopover.js +7 -2
  811. package/dist/private/overlays/usePopover.js.map +1 -1
  812. package/dist/private/overlays/usePopover.mjs +6 -2
  813. package/dist/private/overlays/usePopover.mjs.map +1 -1
  814. package/dist/private/overlays/usePreventScroll.cjs +29 -40
  815. package/dist/private/overlays/usePreventScroll.cjs.map +1 -1
  816. package/dist/private/overlays/usePreventScroll.js +30 -41
  817. package/dist/private/overlays/usePreventScroll.js.map +1 -1
  818. package/dist/private/overlays/usePreventScroll.mjs +30 -41
  819. package/dist/private/overlays/usePreventScroll.mjs.map +1 -1
  820. package/dist/private/progress/useProgressBar.cjs +2 -1
  821. package/dist/private/progress/useProgressBar.cjs.map +1 -1
  822. package/dist/private/progress/useProgressBar.js +2 -1
  823. package/dist/private/progress/useProgressBar.js.map +1 -1
  824. package/dist/private/progress/useProgressBar.mjs +2 -1
  825. package/dist/private/progress/useProgressBar.mjs.map +1 -1
  826. package/dist/private/radio/useRadioGroup.cjs +26 -23
  827. package/dist/private/radio/useRadioGroup.cjs.map +1 -1
  828. package/dist/private/radio/useRadioGroup.js +26 -23
  829. package/dist/private/radio/useRadioGroup.js.map +1 -1
  830. package/dist/private/radio/useRadioGroup.mjs +26 -23
  831. package/dist/private/radio/useRadioGroup.mjs.map +1 -1
  832. package/dist/private/searchfield/useSearchField.cjs +28 -22
  833. package/dist/private/searchfield/useSearchField.cjs.map +1 -1
  834. package/dist/private/searchfield/useSearchField.js +28 -22
  835. package/dist/private/searchfield/useSearchField.js.map +1 -1
  836. package/dist/private/searchfield/useSearchField.mjs +28 -22
  837. package/dist/private/searchfield/useSearchField.mjs.map +1 -1
  838. package/dist/private/select/useSelect.cjs +21 -23
  839. package/dist/private/select/useSelect.cjs.map +1 -1
  840. package/dist/private/select/useSelect.js +23 -25
  841. package/dist/private/select/useSelect.js.map +1 -1
  842. package/dist/private/select/useSelect.mjs +21 -23
  843. package/dist/private/select/useSelect.mjs.map +1 -1
  844. package/dist/private/selection/useSelectableCollection.cjs +204 -146
  845. package/dist/private/selection/useSelectableCollection.cjs.map +1 -1
  846. package/dist/private/selection/useSelectableCollection.js +208 -150
  847. package/dist/private/selection/useSelectableCollection.js.map +1 -1
  848. package/dist/private/selection/useSelectableCollection.mjs +204 -146
  849. package/dist/private/selection/useSelectableCollection.mjs.map +1 -1
  850. package/dist/private/selection/useSelectableItem.cjs +58 -13
  851. package/dist/private/selection/useSelectableItem.cjs.map +1 -1
  852. package/dist/private/selection/useSelectableItem.js +58 -13
  853. package/dist/private/selection/useSelectableItem.js.map +1 -1
  854. package/dist/private/selection/useSelectableItem.mjs +58 -13
  855. package/dist/private/selection/useSelectableItem.mjs.map +1 -1
  856. package/dist/private/slider/useSlider.cjs.map +1 -1
  857. package/dist/private/slider/useSlider.js.map +1 -1
  858. package/dist/private/slider/useSlider.mjs.map +1 -1
  859. package/dist/private/slider/useSliderThumb.cjs +28 -26
  860. package/dist/private/slider/useSliderThumb.cjs.map +1 -1
  861. package/dist/private/slider/useSliderThumb.js +28 -26
  862. package/dist/private/slider/useSliderThumb.js.map +1 -1
  863. package/dist/private/slider/useSliderThumb.mjs +28 -26
  864. package/dist/private/slider/useSliderThumb.mjs.map +1 -1
  865. package/dist/private/spinbutton/useSpinButton.cjs +49 -34
  866. package/dist/private/spinbutton/useSpinButton.cjs.map +1 -1
  867. package/dist/private/spinbutton/useSpinButton.js +49 -34
  868. package/dist/private/spinbutton/useSpinButton.js.map +1 -1
  869. package/dist/private/spinbutton/useSpinButton.mjs +49 -34
  870. package/dist/private/spinbutton/useSpinButton.mjs.map +1 -1
  871. package/dist/private/ssr/SSRProvider.cjs +12 -3
  872. package/dist/private/ssr/SSRProvider.cjs.map +1 -1
  873. package/dist/private/ssr/SSRProvider.js +12 -3
  874. package/dist/private/ssr/SSRProvider.js.map +1 -1
  875. package/dist/private/ssr/SSRProvider.mjs +12 -3
  876. package/dist/private/ssr/SSRProvider.mjs.map +1 -1
  877. package/dist/private/steplist/useStepListItem.cjs +0 -9
  878. package/dist/private/steplist/useStepListItem.cjs.map +1 -1
  879. package/dist/private/steplist/useStepListItem.js +0 -10
  880. package/dist/private/steplist/useStepListItem.js.map +1 -1
  881. package/dist/private/steplist/useStepListItem.mjs +0 -9
  882. package/dist/private/steplist/useStepListItem.mjs.map +1 -1
  883. package/dist/private/table/useTable.cjs +4 -2
  884. package/dist/private/table/useTable.cjs.map +1 -1
  885. package/dist/private/table/useTable.js +4 -2
  886. package/dist/private/table/useTable.js.map +1 -1
  887. package/dist/private/table/useTable.mjs +4 -2
  888. package/dist/private/table/useTable.mjs.map +1 -1
  889. package/dist/private/table/useTableCell.cjs +2 -0
  890. package/dist/private/table/useTableCell.cjs.map +1 -1
  891. package/dist/private/table/useTableCell.js +2 -0
  892. package/dist/private/table/useTableCell.js.map +1 -1
  893. package/dist/private/table/useTableCell.mjs +2 -0
  894. package/dist/private/table/useTableCell.mjs.map +1 -1
  895. package/dist/private/table/useTableColumnHeader.cjs +2 -3
  896. package/dist/private/table/useTableColumnHeader.cjs.map +1 -1
  897. package/dist/private/table/useTableColumnHeader.js +2 -3
  898. package/dist/private/table/useTableColumnHeader.js.map +1 -1
  899. package/dist/private/table/useTableColumnHeader.mjs +2 -3
  900. package/dist/private/table/useTableColumnHeader.mjs.map +1 -1
  901. package/dist/private/table/useTableColumnResize.cjs +32 -14
  902. package/dist/private/table/useTableColumnResize.cjs.map +1 -1
  903. package/dist/private/table/useTableColumnResize.js +33 -15
  904. package/dist/private/table/useTableColumnResize.js.map +1 -1
  905. package/dist/private/table/useTableColumnResize.mjs +33 -15
  906. package/dist/private/table/useTableColumnResize.mjs.map +1 -1
  907. package/dist/private/table/useTableRow.cjs +4 -2
  908. package/dist/private/table/useTableRow.cjs.map +1 -1
  909. package/dist/private/table/useTableRow.js +4 -2
  910. package/dist/private/table/useTableRow.js.map +1 -1
  911. package/dist/private/table/useTableRow.mjs +4 -2
  912. package/dist/private/table/useTableRow.mjs.map +1 -1
  913. package/dist/private/tabs/TabsKeyboardDelegate.cjs +3 -1
  914. package/dist/private/tabs/TabsKeyboardDelegate.cjs.map +1 -1
  915. package/dist/private/tabs/TabsKeyboardDelegate.js +3 -1
  916. package/dist/private/tabs/TabsKeyboardDelegate.js.map +1 -1
  917. package/dist/private/tabs/TabsKeyboardDelegate.mjs +3 -1
  918. package/dist/private/tabs/TabsKeyboardDelegate.mjs.map +1 -1
  919. package/dist/private/tag/useTag.cjs +21 -11
  920. package/dist/private/tag/useTag.cjs.map +1 -1
  921. package/dist/private/tag/useTag.js +21 -11
  922. package/dist/private/tag/useTag.js.map +1 -1
  923. package/dist/private/tag/useTag.mjs +21 -11
  924. package/dist/private/tag/useTag.mjs.map +1 -1
  925. package/dist/private/textfield/useFormattedTextField.cjs +1 -0
  926. package/dist/private/textfield/useFormattedTextField.cjs.map +1 -1
  927. package/dist/private/textfield/useFormattedTextField.js +1 -0
  928. package/dist/private/textfield/useFormattedTextField.js.map +1 -1
  929. package/dist/private/textfield/useFormattedTextField.mjs +1 -0
  930. package/dist/private/textfield/useFormattedTextField.mjs.map +1 -1
  931. package/dist/private/toast/useToastRegion.cjs +5 -0
  932. package/dist/private/toast/useToastRegion.cjs.map +1 -1
  933. package/dist/private/toast/useToastRegion.js +5 -0
  934. package/dist/private/toast/useToastRegion.js.map +1 -1
  935. package/dist/private/toast/useToastRegion.mjs +5 -0
  936. package/dist/private/toast/useToastRegion.mjs.map +1 -1
  937. package/dist/private/toggle/useToggle.cjs +1 -0
  938. package/dist/private/toggle/useToggle.cjs.map +1 -1
  939. package/dist/private/toggle/useToggle.js +1 -0
  940. package/dist/private/toggle/useToggle.js.map +1 -1
  941. package/dist/private/toggle/useToggle.mjs +1 -0
  942. package/dist/private/toggle/useToggle.mjs.map +1 -1
  943. package/dist/private/tokenfield/useToken.cjs +61 -0
  944. package/dist/private/tokenfield/useToken.cjs.map +1 -0
  945. package/dist/private/tokenfield/useToken.js +57 -0
  946. package/dist/private/tokenfield/useToken.js.map +1 -0
  947. package/dist/private/tokenfield/useToken.mjs +56 -0
  948. package/dist/private/tokenfield/useToken.mjs.map +1 -0
  949. package/dist/private/tokenfield/useTokenField.cjs +663 -0
  950. package/dist/private/tokenfield/useTokenField.cjs.map +1 -0
  951. package/dist/private/tokenfield/useTokenField.js +667 -0
  952. package/dist/private/tokenfield/useTokenField.js.map +1 -0
  953. package/dist/private/tokenfield/useTokenField.mjs +655 -0
  954. package/dist/private/tokenfield/useTokenField.mjs.map +1 -0
  955. package/dist/private/toolbar/useToolbar.cjs +1 -0
  956. package/dist/private/toolbar/useToolbar.cjs.map +1 -1
  957. package/dist/private/toolbar/useToolbar.js +1 -0
  958. package/dist/private/toolbar/useToolbar.js.map +1 -1
  959. package/dist/private/toolbar/useToolbar.mjs +1 -0
  960. package/dist/private/toolbar/useToolbar.mjs.map +1 -1
  961. package/dist/private/tooltip/intlStrings.cjs +108 -0
  962. package/dist/private/tooltip/intlStrings.cjs.map +1 -0
  963. package/dist/private/tooltip/intlStrings.js +110 -0
  964. package/dist/private/tooltip/intlStrings.js.map +1 -0
  965. package/dist/private/tooltip/intlStrings.mjs +110 -0
  966. package/dist/private/tooltip/intlStrings.mjs.map +1 -0
  967. package/dist/private/tooltip/usePreviewTrigger.cjs +212 -0
  968. package/dist/private/tooltip/usePreviewTrigger.cjs.map +1 -0
  969. package/dist/private/tooltip/usePreviewTrigger.js +208 -0
  970. package/dist/private/tooltip/usePreviewTrigger.js.map +1 -0
  971. package/dist/private/tooltip/usePreviewTrigger.mjs +207 -0
  972. package/dist/private/tooltip/usePreviewTrigger.mjs.map +1 -0
  973. package/dist/private/tooltip/useSafeArea.cjs +134 -0
  974. package/dist/private/tooltip/useSafeArea.cjs.map +1 -0
  975. package/dist/private/tooltip/useSafeArea.js +130 -0
  976. package/dist/private/tooltip/useSafeArea.js.map +1 -0
  977. package/dist/private/tooltip/useSafeArea.mjs +129 -0
  978. package/dist/private/tooltip/useSafeArea.mjs.map +1 -0
  979. package/dist/private/tooltip/useTooltipTrigger.cjs +1 -0
  980. package/dist/private/tooltip/useTooltipTrigger.cjs.map +1 -1
  981. package/dist/private/tooltip/useTooltipTrigger.js +1 -0
  982. package/dist/private/tooltip/useTooltipTrigger.js.map +1 -1
  983. package/dist/private/tooltip/useTooltipTrigger.mjs +1 -0
  984. package/dist/private/tooltip/useTooltipTrigger.mjs.map +1 -1
  985. package/dist/private/tree/useTree.cjs +1 -0
  986. package/dist/private/tree/useTree.cjs.map +1 -1
  987. package/dist/private/tree/useTree.js +1 -0
  988. package/dist/private/tree/useTree.js.map +1 -1
  989. package/dist/private/tree/useTree.mjs +1 -0
  990. package/dist/private/tree/useTree.mjs.map +1 -1
  991. package/dist/private/utils/domHelpers.cjs +64 -12
  992. package/dist/private/utils/domHelpers.cjs.map +1 -1
  993. package/dist/private/utils/domHelpers.js +64 -14
  994. package/dist/private/utils/domHelpers.js.map +1 -1
  995. package/dist/private/utils/domHelpers.mjs +62 -13
  996. package/dist/private/utils/domHelpers.mjs.map +1 -1
  997. package/dist/private/utils/getMetaValue.cjs +36 -0
  998. package/dist/private/utils/getMetaValue.cjs.map +1 -0
  999. package/dist/private/utils/getMetaValue.js +31 -0
  1000. package/dist/private/utils/getMetaValue.js.map +1 -0
  1001. package/dist/private/utils/getMetaValue.mjs +31 -0
  1002. package/dist/private/utils/getMetaValue.mjs.map +1 -0
  1003. package/dist/private/utils/getNonce.cjs +6 -10
  1004. package/dist/private/utils/getNonce.cjs.map +1 -1
  1005. package/dist/private/utils/getNonce.js +7 -11
  1006. package/dist/private/utils/getNonce.js.map +1 -1
  1007. package/dist/private/utils/getNonce.mjs +7 -11
  1008. package/dist/private/utils/getNonce.mjs.map +1 -1
  1009. package/dist/private/utils/isVirtualEvent.cjs +1 -1
  1010. package/dist/private/utils/isVirtualEvent.cjs.map +1 -1
  1011. package/dist/private/utils/isVirtualEvent.js +1 -1
  1012. package/dist/private/utils/isVirtualEvent.js.map +1 -1
  1013. package/dist/private/utils/isVirtualEvent.mjs +1 -1
  1014. package/dist/private/utils/isVirtualEvent.mjs.map +1 -1
  1015. package/dist/private/utils/openLink.cjs +4 -2
  1016. package/dist/private/utils/openLink.cjs.map +1 -1
  1017. package/dist/private/utils/openLink.js +4 -2
  1018. package/dist/private/utils/openLink.js.map +1 -1
  1019. package/dist/private/utils/openLink.mjs +4 -2
  1020. package/dist/private/utils/openLink.mjs.map +1 -1
  1021. package/dist/private/utils/platform.cjs +8 -4
  1022. package/dist/private/utils/platform.cjs.map +1 -1
  1023. package/dist/private/utils/platform.js +7 -4
  1024. package/dist/private/utils/platform.js.map +1 -1
  1025. package/dist/private/utils/platform.mjs +7 -4
  1026. package/dist/private/utils/platform.mjs.map +1 -1
  1027. package/dist/private/utils/scrollIntoView.cjs +3 -3
  1028. package/dist/private/utils/scrollIntoView.cjs.map +1 -1
  1029. package/dist/private/utils/scrollIntoView.js +4 -4
  1030. package/dist/private/utils/scrollIntoView.js.map +1 -1
  1031. package/dist/private/utils/scrollIntoView.mjs +4 -4
  1032. package/dist/private/utils/scrollIntoView.mjs.map +1 -1
  1033. package/dist/private/utils/shadowdom/DOMFunctions.cjs +28 -1
  1034. package/dist/private/utils/shadowdom/DOMFunctions.cjs.map +1 -1
  1035. package/dist/private/utils/shadowdom/DOMFunctions.js +30 -2
  1036. package/dist/private/utils/shadowdom/DOMFunctions.js.map +1 -1
  1037. package/dist/private/utils/shadowdom/DOMFunctions.mjs +28 -2
  1038. package/dist/private/utils/shadowdom/DOMFunctions.mjs.map +1 -1
  1039. package/dist/private/utils/useDeepMemo.cjs +4 -1
  1040. package/dist/private/utils/useDeepMemo.cjs.map +1 -1
  1041. package/dist/private/utils/useDeepMemo.js +4 -1
  1042. package/dist/private/utils/useDeepMemo.js.map +1 -1
  1043. package/dist/private/utils/useDeepMemo.mjs +4 -1
  1044. package/dist/private/utils/useDeepMemo.mjs.map +1 -1
  1045. package/dist/private/utils/useDrag1D.cjs +2 -0
  1046. package/dist/private/utils/useDrag1D.cjs.map +1 -1
  1047. package/dist/private/utils/useDrag1D.js +2 -0
  1048. package/dist/private/utils/useDrag1D.js.map +1 -1
  1049. package/dist/private/utils/useDrag1D.mjs +2 -0
  1050. package/dist/private/utils/useDrag1D.mjs.map +1 -1
  1051. package/dist/private/utils/useEvent.cjs +7 -9
  1052. package/dist/private/utils/useEvent.cjs.map +1 -1
  1053. package/dist/private/utils/useEvent.js +7 -9
  1054. package/dist/private/utils/useEvent.js.map +1 -1
  1055. package/dist/private/utils/useEvent.mjs +7 -9
  1056. package/dist/private/utils/useEvent.mjs.map +1 -1
  1057. package/dist/private/utils/useFormReset.cjs +4 -0
  1058. package/dist/private/utils/useFormReset.cjs.map +1 -1
  1059. package/dist/private/utils/useFormReset.js +4 -0
  1060. package/dist/private/utils/useFormReset.js.map +1 -1
  1061. package/dist/private/utils/useFormReset.mjs +4 -0
  1062. package/dist/private/utils/useFormReset.mjs.map +1 -1
  1063. package/dist/private/utils/useId.cjs +23 -4
  1064. package/dist/private/utils/useId.cjs.map +1 -1
  1065. package/dist/private/utils/useId.js +23 -4
  1066. package/dist/private/utils/useId.js.map +1 -1
  1067. package/dist/private/utils/useId.mjs +23 -4
  1068. package/dist/private/utils/useId.mjs.map +1 -1
  1069. package/dist/private/utils/useLoadMoreSentinel.cjs +7 -3
  1070. package/dist/private/utils/useLoadMoreSentinel.cjs.map +1 -1
  1071. package/dist/private/utils/useLoadMoreSentinel.js +7 -3
  1072. package/dist/private/utils/useLoadMoreSentinel.js.map +1 -1
  1073. package/dist/private/utils/useLoadMoreSentinel.mjs +7 -3
  1074. package/dist/private/utils/useLoadMoreSentinel.mjs.map +1 -1
  1075. package/dist/private/utils/useObjectRef.cjs +3 -1
  1076. package/dist/private/utils/useObjectRef.cjs.map +1 -1
  1077. package/dist/private/utils/useObjectRef.js +3 -1
  1078. package/dist/private/utils/useObjectRef.js.map +1 -1
  1079. package/dist/private/utils/useObjectRef.mjs +3 -1
  1080. package/dist/private/utils/useObjectRef.mjs.map +1 -1
  1081. package/dist/private/utils/useSyncRef.cjs +2 -0
  1082. package/dist/private/utils/useSyncRef.cjs.map +1 -1
  1083. package/dist/private/utils/useSyncRef.js +2 -0
  1084. package/dist/private/utils/useSyncRef.js.map +1 -1
  1085. package/dist/private/utils/useSyncRef.mjs +2 -0
  1086. package/dist/private/utils/useSyncRef.mjs.map +1 -1
  1087. package/dist/private/utils/useViewportSize.cjs +3 -3
  1088. package/dist/private/utils/useViewportSize.cjs.map +1 -1
  1089. package/dist/private/utils/useViewportSize.js +4 -4
  1090. package/dist/private/utils/useViewportSize.js.map +1 -1
  1091. package/dist/private/utils/useViewportSize.mjs +4 -4
  1092. package/dist/private/utils/useViewportSize.mjs.map +1 -1
  1093. package/dist/private/virtualizer/ScrollView.cjs +7 -4
  1094. package/dist/private/virtualizer/ScrollView.cjs.map +1 -1
  1095. package/dist/private/virtualizer/ScrollView.js +8 -5
  1096. package/dist/private/virtualizer/ScrollView.js.map +1 -1
  1097. package/dist/private/virtualizer/ScrollView.mjs +8 -5
  1098. package/dist/private/virtualizer/ScrollView.mjs.map +1 -1
  1099. package/dist/private/virtualizer/VirtualizerItem.cjs +3 -2
  1100. package/dist/private/virtualizer/VirtualizerItem.cjs.map +1 -1
  1101. package/dist/private/virtualizer/VirtualizerItem.js +3 -2
  1102. package/dist/private/virtualizer/VirtualizerItem.js.map +1 -1
  1103. package/dist/private/virtualizer/VirtualizerItem.mjs +3 -2
  1104. package/dist/private/virtualizer/VirtualizerItem.mjs.map +1 -1
  1105. package/dist/private/virtualizer/useVirtualizerItem.cjs +35 -2
  1106. package/dist/private/virtualizer/useVirtualizerItem.cjs.map +1 -1
  1107. package/dist/private/virtualizer/useVirtualizerItem.js +36 -3
  1108. package/dist/private/virtualizer/useVirtualizerItem.js.map +1 -1
  1109. package/dist/private/virtualizer/useVirtualizerItem.mjs +36 -3
  1110. package/dist/private/virtualizer/useVirtualizerItem.mjs.map +1 -1
  1111. package/dist/private/visually-hidden/VisuallyHidden.cjs +2 -1
  1112. package/dist/private/visually-hidden/VisuallyHidden.cjs.map +1 -1
  1113. package/dist/private/visually-hidden/VisuallyHidden.js +2 -1
  1114. package/dist/private/visually-hidden/VisuallyHidden.js.map +1 -1
  1115. package/dist/private/visually-hidden/VisuallyHidden.mjs +2 -1
  1116. package/dist/private/visually-hidden/VisuallyHidden.mjs.map +1 -1
  1117. package/dist/types/exports/index.d.ts +11 -2
  1118. package/dist/types/exports/private/utils/domHelpers.d.ts +1 -1
  1119. package/dist/types/exports/private/utils/platform.d.ts +1 -1
  1120. package/dist/types/exports/private/utils/shadowdom/DOMFunctions.d.ts +1 -1
  1121. package/dist/types/exports/useContextMenu.d.ts +2 -0
  1122. package/dist/types/exports/useFocusVisible.d.ts +2 -1
  1123. package/dist/types/exports/usePreviewTrigger.d.ts +2 -0
  1124. package/dist/types/exports/useTokenField.d.ts +4 -0
  1125. package/dist/types/src/button/useToggleButtonGroup.d.ts +8 -0
  1126. package/dist/types/src/combobox/useComboBox.d.ts +7 -1
  1127. package/dist/types/src/dialog/useDialog.d.ts +2 -0
  1128. package/dist/types/src/grid/useGrid.d.ts +7 -0
  1129. package/dist/types/src/grid/useGridCell.d.ts +8 -1
  1130. package/dist/types/src/grid/utils.d.ts +1 -0
  1131. package/dist/types/src/gridlist/useGridListItem.d.ts +13 -0
  1132. package/dist/types/src/interactions/createKeyboardShortcutHandler.d.ts +56 -0
  1133. package/dist/types/src/interactions/useContextMenu.d.ts +21 -0
  1134. package/dist/types/src/interactions/useKeyboard.d.ts +7 -0
  1135. package/dist/types/src/interactions/useLongPress.d.ts +2 -0
  1136. package/dist/types/src/overlays/usePopover.d.ts +2 -1
  1137. package/dist/types/src/table/useTableCell.d.ts +12 -0
  1138. package/dist/types/src/table/useTableColumnHeader.d.ts +12 -0
  1139. package/dist/types/src/table/useTableColumnResize.d.ts +5 -0
  1140. package/dist/types/src/tokenfield/useToken.d.ts +14 -0
  1141. package/dist/types/src/tokenfield/useTokenField.d.ts +58 -0
  1142. package/dist/types/src/tooltip/usePreviewTrigger.d.ts +27 -0
  1143. package/dist/types/src/tooltip/useSafeArea.d.ts +26 -0
  1144. package/dist/types/src/utils/domHelpers.d.ts +24 -5
  1145. package/dist/types/src/utils/getMetaValue.d.ts +7 -0
  1146. package/dist/types/src/utils/platform.d.ts +1 -0
  1147. package/dist/types/src/utils/shadowdom/DOMFunctions.d.ts +11 -0
  1148. package/dist/types/src/utils/useEvent.d.ts +2 -2
  1149. package/dist/types/src/utils/useLoadMoreSentinel.d.ts +7 -0
  1150. package/dist/types/src/virtualizer/Virtualizer.d.ts +3 -3
  1151. package/dist/types/src/virtualizer/VirtualizerItem.d.ts +1 -0
  1152. package/dist/types/src/virtualizer/useVirtualizerItem.d.ts +1 -0
  1153. package/i18n/ar-AE.js +1 -1
  1154. package/i18n/ar-AE.mjs +1 -1
  1155. package/i18n/bg-BG.js +1 -1
  1156. package/i18n/bg-BG.mjs +1 -1
  1157. package/i18n/cs-CZ.js +1 -1
  1158. package/i18n/cs-CZ.mjs +1 -1
  1159. package/i18n/da-DK.js +1 -1
  1160. package/i18n/da-DK.mjs +1 -1
  1161. package/i18n/de-DE.js +1 -1
  1162. package/i18n/de-DE.mjs +1 -1
  1163. package/i18n/el-GR.js +1 -1
  1164. package/i18n/el-GR.mjs +1 -1
  1165. package/i18n/en-US.js +1 -1
  1166. package/i18n/en-US.mjs +1 -1
  1167. package/i18n/es-ES.js +1 -1
  1168. package/i18n/es-ES.mjs +1 -1
  1169. package/i18n/et-EE.js +1 -1
  1170. package/i18n/et-EE.mjs +1 -1
  1171. package/i18n/fi-FI.js +1 -1
  1172. package/i18n/fi-FI.mjs +1 -1
  1173. package/i18n/fr-FR.js +1 -1
  1174. package/i18n/fr-FR.mjs +1 -1
  1175. package/i18n/he-IL.js +1 -1
  1176. package/i18n/he-IL.mjs +1 -1
  1177. package/i18n/hr-HR.js +1 -1
  1178. package/i18n/hr-HR.mjs +1 -1
  1179. package/i18n/hu-HU.js +1 -1
  1180. package/i18n/hu-HU.mjs +1 -1
  1181. package/i18n/it-IT.js +1 -1
  1182. package/i18n/it-IT.mjs +1 -1
  1183. package/i18n/ja-JP.js +1 -1
  1184. package/i18n/ja-JP.mjs +1 -1
  1185. package/i18n/ko-KR.js +1 -1
  1186. package/i18n/ko-KR.mjs +1 -1
  1187. package/i18n/lt-LT.js +1 -1
  1188. package/i18n/lt-LT.mjs +1 -1
  1189. package/i18n/lv-LV.js +1 -1
  1190. package/i18n/lv-LV.mjs +1 -1
  1191. package/i18n/nb-NO.js +1 -1
  1192. package/i18n/nb-NO.mjs +1 -1
  1193. package/i18n/nl-NL.js +1 -1
  1194. package/i18n/nl-NL.mjs +1 -1
  1195. package/i18n/pl-PL.js +1 -1
  1196. package/i18n/pl-PL.mjs +1 -1
  1197. package/i18n/pt-BR.js +1 -1
  1198. package/i18n/pt-BR.mjs +1 -1
  1199. package/i18n/pt-PT.js +1 -1
  1200. package/i18n/pt-PT.mjs +1 -1
  1201. package/i18n/ro-RO.js +1 -1
  1202. package/i18n/ro-RO.mjs +1 -1
  1203. package/i18n/ru-RU.js +1 -1
  1204. package/i18n/ru-RU.mjs +1 -1
  1205. package/i18n/sk-SK.js +1 -1
  1206. package/i18n/sk-SK.mjs +1 -1
  1207. package/i18n/sl-SI.js +1 -1
  1208. package/i18n/sl-SI.mjs +1 -1
  1209. package/i18n/sr-SP.js +1 -1
  1210. package/i18n/sr-SP.mjs +1 -1
  1211. package/i18n/sv-SE.js +1 -1
  1212. package/i18n/sv-SE.mjs +1 -1
  1213. package/i18n/tr-TR.js +1 -1
  1214. package/i18n/tr-TR.mjs +1 -1
  1215. package/i18n/uk-UA.js +1 -1
  1216. package/i18n/uk-UA.mjs +1 -1
  1217. package/i18n/zh-CN.js +1 -1
  1218. package/i18n/zh-CN.mjs +1 -1
  1219. package/i18n/zh-TW.js +1 -1
  1220. package/i18n/zh-TW.mjs +1 -1
  1221. package/package.json +8 -7
  1222. package/useContextMenu/package.json +5 -0
  1223. package/usePreviewTrigger/package.json +5 -0
  1224. package/useTokenField/package.json +5 -0
@@ -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.cjs.map"}
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,iBAAiB,CAAA;QACnB,oDAAoD;QACpD,MAAM,gBAAgB,CAAC,OAAO;QAC9B;QACA,MAAM,gBAAgB,CAAC,OAAO;IAChC;IAEA,IAAI,iBAAC,aAAa,EAAC,GAAG,CAAA,GAAA,qCAAU,EAAE;QAChC,WAAW;YACT,QAAQ;gBACN,OAAO,eAAe;oBACpB,MAAM,cAAc,CAAC,OAAO,MAAM,QAAQ;gBAC5C;YACF;YACA,UAAU;gBACR,OAAO,eAAe;oBACpB,MAAM,cAAc,CAAC,OAAO,MAAM,QAAQ;gBAC5C;YACF;YACA,MAAM;gBACJ,OAAO,eAAe;oBACpB,MAAM,aAAa,CAAC,OAAO,MAAM,gBAAgB,CAAC;gBACpD;YACF;YACA,KAAK;gBACH,OAAO,eAAe;oBACpB,MAAM,aAAa,CAAC,OAAO,MAAM,gBAAgB,CAAC;gBACpD;YACF;QACF;QACA,cAAc;IAChB;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,aAEhB,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 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
  },
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/react-aria/src/spinbutton/useSpinButton.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 {announce, clearAnnouncer} from '../live-announcer/LiveAnnouncer';\n\nimport {AriaButtonProps} from '../button/useButton';\nimport {DOMAttributes, InputBase, RangeInputBase, Validation, ValueBase} from '@react-types/shared';\nimport intlMessages from '../../intl/spinbutton/*.json';\nimport {useCallback, useEffect, useRef, useState} from 'react';\nimport {useEffectEvent} from '../utils/useEffectEvent';\nimport {useGlobalListeners} from '../utils/useGlobalListeners';\nimport {useLocalizedStringFormatter} from '../i18n/useLocalizedStringFormatter';\n\nconst noop = () => {};\n\nexport interface SpinButtonProps\n extends InputBase, Validation<number>, ValueBase<number>, RangeInputBase<number> {\n textValue?: string;\n onIncrement?: () => void;\n onIncrementPage?: () => void;\n onDecrement?: () => void;\n onDecrementPage?: () => void;\n onDecrementToMin?: () => void;\n onIncrementToMax?: () => void;\n}\n\nexport interface SpinbuttonAria {\n spinButtonProps: DOMAttributes;\n incrementButtonProps: AriaButtonProps;\n decrementButtonProps: AriaButtonProps;\n}\n\nexport function useSpinButton(props: SpinButtonProps): SpinbuttonAria {\n const _async = useRef<number>(undefined);\n let {\n value,\n textValue,\n minValue,\n maxValue,\n isDisabled,\n isReadOnly,\n isRequired,\n onIncrement,\n onIncrementPage,\n onDecrement,\n onDecrementPage,\n onDecrementToMin,\n onIncrementToMax\n } = props;\n const stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-aria/spinbutton');\n\n let isSpinning = useRef(false);\n const clearAsync = useCallback(() => {\n clearTimeout(_async.current);\n isSpinning.current = false;\n }, []);\n const clearAsyncEvent = useEffectEvent(() => {\n clearAsync();\n });\n\n useEffect(() => {\n return () => clearAsyncEvent();\n }, []);\n\n let onKeyDown = e => {\n if (\n e.ctrlKey ||\n e.metaKey ||\n e.shiftKey ||\n e.altKey ||\n isReadOnly ||\n e.nativeEvent.isComposing\n ) {\n return;\n }\n\n switch (e.key) {\n case 'PageUp':\n if (onIncrementPage) {\n e.preventDefault();\n onIncrementPage?.();\n break;\n }\n // fallthrough!\n case 'ArrowUp':\n case 'Up':\n if (onIncrement) {\n e.preventDefault();\n onIncrement?.();\n }\n break;\n case 'PageDown':\n if (onDecrementPage) {\n e.preventDefault();\n onDecrementPage?.();\n break;\n }\n // fallthrough\n case 'ArrowDown':\n case 'Down':\n if (onDecrement) {\n e.preventDefault();\n onDecrement?.();\n }\n break;\n case 'Home':\n if (onDecrementToMin) {\n e.preventDefault();\n onDecrementToMin?.();\n }\n break;\n case 'End':\n if (onIncrementToMax) {\n e.preventDefault();\n onIncrementToMax?.();\n }\n break;\n }\n };\n\n let isFocused = useRef(false);\n let onFocus = () => {\n isFocused.current = true;\n };\n\n let onBlur = () => {\n isFocused.current = false;\n };\n\n // Replace Unicode hyphen-minus (U+002D) with minus sign (U+2212).\n // This ensures that macOS VoiceOver announces it as \"minus\" even with other characters between the minus sign\n // and the number (e.g. currency symbol). Otherwise it announces nothing because it assumes the character is a hyphen.\n // In addition, replace the empty string with the word \"Empty\" so that iOS VoiceOver does not read \"50%\" for an empty field.\n let ariaTextValue =\n textValue === ''\n ? stringFormatter.format('Empty')\n : (textValue || `${value}`).replace('-', '\\u2212');\n\n useEffect(() => {\n if (isFocused.current) {\n clearAnnouncer('assertive');\n announce(ariaTextValue, 'assertive');\n }\n }, [ariaTextValue]);\n\n // For touch users, if they move their finger like they're scrolling, we don't want to trigger a spin.\n let onPointerCancel = useCallback(() => {\n clearAsync();\n }, [clearAsync]);\n\n const onIncrementEvent = useEffectEvent(onIncrement ?? noop);\n const onDecrementEvent = useEffectEvent(onDecrement ?? noop);\n\n const stepUpEvent = useEffectEvent(() => {\n if (\n maxValue === undefined ||\n isNaN(maxValue) ||\n value === undefined ||\n isNaN(value) ||\n value < maxValue\n ) {\n onIncrementEvent();\n onIncrementPressStartEvent(60);\n }\n });\n\n const onIncrementPressStartEvent = useEffectEvent((initialStepDelay: number) => {\n clearAsyncEvent();\n isSpinning.current = true;\n // Start spinning after initial delay\n _async.current = window.setTimeout(stepUpEvent, initialStepDelay);\n });\n\n const stepDownEvent = useEffectEvent(() => {\n if (\n minValue === undefined ||\n isNaN(minValue) ||\n value === undefined ||\n isNaN(value) ||\n value > minValue\n ) {\n onDecrementEvent();\n onDecrementPressStartEvent(60);\n }\n });\n\n const onDecrementPressStartEvent = useEffectEvent((initialStepDelay: number) => {\n clearAsyncEvent();\n isSpinning.current = true;\n // Start spinning after initial delay\n _async.current = window.setTimeout(stepDownEvent, initialStepDelay);\n });\n\n let cancelContextMenu = e => {\n e.preventDefault();\n };\n\n let {addGlobalListener, removeAllGlobalListeners} = useGlobalListeners();\n\n // Tracks in touch if the press end event was preceded by a press up.\n // If it wasn't, then we know the finger left the button while still in contact with the screen.\n // This means that the user is trying to scroll or interact in some way that shouldn't trigger\n // an increment or decrement.\n let isUp = useRef(false);\n\n let [isIncrementPressed, setIsIncrementPressed] = useState<'touch' | 'mouse' | null>(null);\n useEffect(() => {\n if (isIncrementPressed === 'touch') {\n onIncrementPressStartEvent(600);\n } else if (isIncrementPressed) {\n onIncrementPressStartEvent(400);\n } else if (!isIncrementPressed) {\n clearAsyncEvent();\n }\n }, [isIncrementPressed]);\n\n let [isDecrementPressed, setIsDecrementPressed] = useState<'touch' | 'mouse' | null>(null);\n useEffect(() => {\n if (isDecrementPressed === 'touch') {\n onDecrementPressStartEvent(600);\n } else if (isDecrementPressed) {\n onDecrementPressStartEvent(400);\n } else if (!isDecrementPressed) {\n clearAsyncEvent();\n }\n }, [isDecrementPressed]);\n\n return {\n spinButtonProps: {\n role: 'spinbutton',\n 'aria-valuenow': value !== undefined && !isNaN(value) ? value : undefined,\n 'aria-valuetext': ariaTextValue,\n 'aria-valuemin': minValue,\n 'aria-valuemax': maxValue,\n 'aria-disabled': isDisabled || undefined,\n 'aria-readonly': isReadOnly || undefined,\n 'aria-required': isRequired || undefined,\n onKeyDown,\n onFocus,\n onBlur\n },\n incrementButtonProps: {\n onPressStart: e => {\n clearAsync();\n if (e.pointerType !== 'touch') {\n onIncrement?.();\n setIsIncrementPressed('mouse');\n } else {\n addGlobalListener(window, 'pointercancel', onPointerCancel, {capture: true});\n isUp.current = false;\n // For touch users, don't trigger a decrement on press start, we'll wait for the press end to trigger it if\n // the control isn't spinning.\n setIsIncrementPressed('touch');\n }\n addGlobalListener(window, 'contextmenu', cancelContextMenu);\n },\n onPressUp: e => {\n clearAsync();\n if (e.pointerType === 'touch') {\n isUp.current = true;\n }\n removeAllGlobalListeners();\n setIsIncrementPressed(null);\n },\n onPressEnd: e => {\n clearAsync();\n if (e.pointerType === 'touch') {\n if (!isSpinning.current && isUp.current) {\n onIncrement?.();\n }\n }\n isUp.current = false;\n setIsIncrementPressed(null);\n },\n onFocus,\n onBlur\n },\n decrementButtonProps: {\n onPressStart: e => {\n clearAsync();\n if (e.pointerType !== 'touch') {\n onDecrement?.();\n setIsDecrementPressed('mouse');\n } else {\n addGlobalListener(window, 'pointercancel', onPointerCancel, {capture: true});\n isUp.current = false;\n // For touch users, don't trigger a decrement on press start, we'll wait for the press end to trigger it if\n // the control isn't spinning.\n setIsDecrementPressed('touch');\n }\n },\n onPressUp: e => {\n clearAsync();\n if (e.pointerType === 'touch') {\n isUp.current = true;\n }\n removeAllGlobalListeners();\n setIsDecrementPressed(null);\n },\n onPressEnd: e => {\n clearAsync();\n if (e.pointerType === 'touch') {\n if (!isSpinning.current && isUp.current) {\n onDecrement?.();\n }\n }\n isUp.current = false;\n setIsDecrementPressed(null);\n },\n onFocus,\n onBlur\n }\n };\n}\n"],"names":[],"version":3,"file":"useSpinButton.cjs.map"}
1
+ {"mappings":"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","sources":["packages/react-aria/src/spinbutton/useSpinButton.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 {announce, clearAnnouncer} from '../live-announcer/LiveAnnouncer';\n\nimport {AriaButtonProps} from '../button/useButton';\nimport {DOMAttributes, InputBase, RangeInputBase, Validation, ValueBase} from '@react-types/shared';\nimport intlMessages from '../../intl/spinbutton/*.json';\nimport {useCallback, useEffect, useRef, useState} from 'react';\nimport {useEffectEvent} from '../utils/useEffectEvent';\nimport {useGlobalListeners} from '../utils/useGlobalListeners';\nimport {useKeyboard} from '../interactions/useKeyboard';\nimport {useLocalizedStringFormatter} from '../i18n/useLocalizedStringFormatter';\n\nconst noop = () => {};\n\nexport interface SpinButtonProps\n extends InputBase, Validation<number>, ValueBase<number>, RangeInputBase<number> {\n textValue?: string;\n onIncrement?: () => void;\n onIncrementPage?: () => void;\n onDecrement?: () => void;\n onDecrementPage?: () => void;\n onDecrementToMin?: () => void;\n onIncrementToMax?: () => void;\n}\n\nexport interface SpinbuttonAria {\n spinButtonProps: DOMAttributes;\n incrementButtonProps: AriaButtonProps;\n decrementButtonProps: AriaButtonProps;\n}\n\nexport function useSpinButton(props: SpinButtonProps): SpinbuttonAria {\n const _async = useRef<number>(undefined);\n let {\n value,\n textValue,\n minValue,\n maxValue,\n isDisabled,\n isReadOnly,\n isRequired,\n onIncrement,\n onIncrementPage,\n onDecrement,\n onDecrementPage,\n onDecrementToMin,\n onIncrementToMax\n } = props;\n const stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-aria/spinbutton');\n\n let isSpinning = useRef(false);\n const clearAsync = useCallback(() => {\n clearTimeout(_async.current);\n isSpinning.current = false;\n }, []);\n const clearAsyncEvent = useEffectEvent(() => {\n clearAsync();\n });\n\n useEffect(() => {\n return () => clearAsyncEvent();\n }, []);\n\n let {keyboardProps} = useKeyboard({\n isDisabled: isDisabled || isReadOnly,\n shortcuts: {\n PageUp: () => {\n if (onIncrementPage) {\n onIncrementPage();\n return;\n }\n if (onIncrement) {\n onIncrement();\n return;\n }\n return false;\n },\n ArrowUp: () => {\n if (onIncrement) {\n onIncrement();\n return;\n }\n return false;\n },\n PageDown: () => {\n if (onDecrementPage) {\n onDecrementPage();\n return;\n }\n if (onDecrement) {\n onDecrement();\n return;\n }\n return false;\n },\n ArrowDown: () => {\n if (onDecrement) {\n onDecrement();\n return;\n }\n return false;\n },\n Home: () => {\n if (onDecrementToMin) {\n onDecrementToMin();\n return;\n }\n return false;\n },\n End: () => {\n if (onIncrementToMax) {\n onIncrementToMax();\n return;\n }\n return false;\n }\n },\n allowRepeats: true\n });\n\n let isFocused = useRef(false);\n let onFocus = () => {\n isFocused.current = true;\n };\n\n let onBlur = () => {\n isFocused.current = false;\n };\n\n // Replace Unicode hyphen-minus (U+002D) with minus sign (U+2212).\n // This ensures that macOS VoiceOver announces it as \"minus\" even with other characters between the minus sign\n // and the number (e.g. currency symbol). Otherwise it announces nothing because it assumes the character is a hyphen.\n // In addition, replace the empty string with the word \"Empty\" so that iOS VoiceOver does not read \"50%\" for an empty field.\n let ariaTextValue =\n textValue === ''\n ? stringFormatter.format('Empty')\n : (textValue || `${value}`).replace('-', '\\u2212');\n\n useEffect(() => {\n if (isFocused.current) {\n clearAnnouncer('assertive');\n announce(ariaTextValue, 'assertive');\n }\n }, [ariaTextValue]);\n\n // For touch users, if they move their finger like they're scrolling, we don't want to trigger a spin.\n let onPointerCancel = useCallback(() => {\n clearAsync();\n }, [clearAsync]);\n\n const onIncrementEvent = useEffectEvent(onIncrement ?? noop);\n const onDecrementEvent = useEffectEvent(onDecrement ?? noop);\n\n const stepUpEvent = useEffectEvent(() => {\n if (\n maxValue === undefined ||\n isNaN(maxValue) ||\n value === undefined ||\n isNaN(value) ||\n value < maxValue\n ) {\n onIncrementEvent();\n // oxlint-disable-next-line react/react-compiler\n onIncrementPressStartEvent(60);\n }\n });\n\n const onIncrementPressStartEvent = useEffectEvent((initialStepDelay: number) => {\n clearAsyncEvent();\n isSpinning.current = true;\n // Start spinning after initial delay\n _async.current = window.setTimeout(stepUpEvent, initialStepDelay);\n });\n\n const stepDownEvent = useEffectEvent(() => {\n if (\n minValue === undefined ||\n isNaN(minValue) ||\n value === undefined ||\n isNaN(value) ||\n value > minValue\n ) {\n onDecrementEvent();\n // oxlint-disable-next-line react/react-compiler\n onDecrementPressStartEvent(60);\n }\n });\n\n const onDecrementPressStartEvent = useEffectEvent((initialStepDelay: number) => {\n clearAsyncEvent();\n isSpinning.current = true;\n // Start spinning after initial delay\n _async.current = window.setTimeout(stepDownEvent, initialStepDelay);\n });\n\n let cancelContextMenu = e => {\n e.preventDefault();\n };\n\n let {addGlobalListener, removeAllGlobalListeners} = useGlobalListeners();\n\n // Tracks in touch if the press end event was preceded by a press up.\n // If it wasn't, then we know the finger left the button while still in contact with the screen.\n // This means that the user is trying to scroll or interact in some way that shouldn't trigger\n // an increment or decrement.\n let isUp = useRef(false);\n\n let [isIncrementPressed, setIsIncrementPressed] = useState<'touch' | 'mouse' | null>(null);\n useEffect(() => {\n if (isIncrementPressed === 'touch') {\n onIncrementPressStartEvent(600);\n } else if (isIncrementPressed) {\n onIncrementPressStartEvent(400);\n } else if (!isIncrementPressed) {\n clearAsyncEvent();\n }\n }, [isIncrementPressed]);\n\n let [isDecrementPressed, setIsDecrementPressed] = useState<'touch' | 'mouse' | null>(null);\n useEffect(() => {\n if (isDecrementPressed === 'touch') {\n onDecrementPressStartEvent(600);\n } else if (isDecrementPressed) {\n onDecrementPressStartEvent(400);\n } else if (!isDecrementPressed) {\n clearAsyncEvent();\n }\n }, [isDecrementPressed]);\n\n return {\n spinButtonProps: {\n role: 'spinbutton',\n 'aria-valuenow': value !== undefined && !isNaN(value) ? value : undefined,\n 'aria-valuetext': ariaTextValue,\n 'aria-valuemin': minValue,\n 'aria-valuemax': maxValue,\n 'aria-disabled': isDisabled || undefined,\n 'aria-readonly': isReadOnly || undefined,\n 'aria-required': isRequired || undefined,\n ...keyboardProps,\n onFocus,\n onBlur\n },\n incrementButtonProps: {\n onPressStart: e => {\n clearAsync();\n if (e.pointerType !== 'touch') {\n onIncrement?.();\n setIsIncrementPressed('mouse');\n } else {\n addGlobalListener(window, 'pointercancel', onPointerCancel, {capture: true});\n isUp.current = false;\n // For touch users, don't trigger a decrement on press start, we'll wait for the press end to trigger it if\n // the control isn't spinning.\n setIsIncrementPressed('touch');\n }\n addGlobalListener(window, 'contextmenu', cancelContextMenu);\n },\n onPressUp: e => {\n clearAsync();\n if (e.pointerType === 'touch') {\n isUp.current = true;\n }\n removeAllGlobalListeners();\n setIsIncrementPressed(null);\n },\n onPressEnd: e => {\n clearAsync();\n if (e.pointerType === 'touch') {\n if (!isSpinning.current && isUp.current) {\n onIncrement?.();\n }\n }\n isUp.current = false;\n setIsIncrementPressed(null);\n },\n onFocus,\n onBlur\n },\n decrementButtonProps: {\n onPressStart: e => {\n clearAsync();\n if (e.pointerType !== 'touch') {\n onDecrement?.();\n setIsDecrementPressed('mouse');\n } else {\n addGlobalListener(window, 'pointercancel', onPointerCancel, {capture: true});\n isUp.current = false;\n // For touch users, don't trigger a decrement on press start, we'll wait for the press end to trigger it if\n // the control isn't spinning.\n setIsDecrementPressed('touch');\n }\n },\n onPressUp: e => {\n clearAsync();\n if (e.pointerType === 'touch') {\n isUp.current = true;\n }\n removeAllGlobalListeners();\n setIsDecrementPressed(null);\n },\n onPressEnd: e => {\n clearAsync();\n if (e.pointerType === 'touch') {\n if (!isSpinning.current && isUp.current) {\n onDecrement?.();\n }\n }\n isUp.current = false;\n setIsDecrementPressed(null);\n },\n onFocus,\n onBlur\n }\n };\n}\n"],"names":[],"version":3,"file":"useSpinButton.cjs.map"}