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/color/useColorArea.ts"],"sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps, DOMAttributes, DOMProps, RefObject} from '@react-types/shared';\nimport {ColorAreaProps, ColorAreaState} from 'react-stately/useColorAreaState';\nimport {ColorChannel} from 'react-stately/Color';\nimport {focusWithoutScrolling} from '../utils/focusWithoutScrolling';\nimport intlMessages from '../../intl/color/*.json';\nimport {isAndroid, isIOS} from '../utils/platform';\nimport {mergeProps} from '../utils/mergeProps';\nimport React, {ChangeEvent, InputHTMLAttributes, useCallback, useRef, useState} from 'react';\nimport {useColorAreaGradient} from './useColorAreaGradient';\nimport {useFocus} from '../interactions/useFocus';\nimport {useFocusWithin} from '../interactions/useFocusWithin';\nimport {useFormReset} from '../utils/useFormReset';\nimport {useGlobalListeners} from '../utils/useGlobalListeners';\nimport {useKeyboard} from '../interactions/useKeyboard';\nimport {useLabels} from '../utils/useLabels';\nimport {useLocale} from '../i18n/I18nProvider';\nimport {useLocalizedStringFormatter} from '../i18n/useLocalizedStringFormatter';\nimport {useMove} from '../interactions/useMove';\nimport {useVisuallyHidden} from '../visually-hidden/VisuallyHidden';\n\nexport interface AriaColorAreaProps extends ColorAreaProps, DOMProps, AriaLabelingProps {\n /**\n * The name of the x channel input element, used when submitting an HTML form. See\n * [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#htmlattrdefname).\n */\n xName?: string;\n /**\n * The name of the y channel input element, used when submitting an HTML form. See\n * [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#htmlattrdefname).\n */\n yName?: string;\n /**\n * The `<form>` element to associate the ColorArea with.\n * The value of this attribute must be the id of a `<form>` in the same document.\n * See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/input#form).\n */\n form?: string;\n}\n\nexport interface ColorAreaAria {\n /** Props for the color area container element. */\n colorAreaProps: DOMAttributes;\n /** Props for the thumb element. */\n thumbProps: DOMAttributes;\n /** Props for the visually hidden horizontal range input element. */\n xInputProps: InputHTMLAttributes<HTMLInputElement>;\n /** Props for the visually hidden vertical range input element. */\n yInputProps: InputHTMLAttributes<HTMLInputElement>;\n}\n\nexport interface AriaColorAreaOptions extends AriaColorAreaProps {\n /** A ref to the input that represents the x axis of the color area. */\n inputXRef: RefObject<HTMLInputElement | null>;\n /** A ref to the input that represents the y axis of the color area. */\n inputYRef: RefObject<HTMLInputElement | null>;\n /** A ref to the color area containing element. */\n containerRef: RefObject<Element | null>;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a color area component. Color area\n * allows users to adjust two channels of an RGB, HSL or HSB color value against a two-dimensional\n * gradient background.\n */\nexport function useColorArea(props: AriaColorAreaOptions, state: ColorAreaState): ColorAreaAria {\n let {\n isDisabled,\n inputXRef,\n inputYRef,\n containerRef,\n 'aria-label': ariaLabel,\n xName,\n yName,\n form\n } = props;\n let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-aria/color');\n\n let {addGlobalListener, removeGlobalListener} = useGlobalListeners();\n\n let {direction, locale} = useLocale();\n\n let [focusedInput, setFocusedInput] = useState<'x' | 'y' | null>(null);\n let focusInput = useCallback(\n (inputRef: RefObject<HTMLInputElement | null> = inputXRef) => {\n if (inputRef.current) {\n focusWithoutScrolling(inputRef.current);\n }\n },\n [inputXRef]\n );\n\n useFormReset(inputXRef, state.defaultValue, state.setValue);\n\n let [valueChangedViaKeyboard, setValueChangedViaKeyboard] = useState(false);\n let [valueChangedViaInputChangeEvent, setValueChangedViaInputChangeEvent] = useState(false);\n let {xChannel, yChannel, zChannel} = state.channels;\n let xChannelStep = state.xChannelStep;\n let yChannelStep = state.yChannelStep;\n\n let currentPosition = useRef<{x: number; y: number} | null>(null);\n\n let {keyboardProps} = useKeyboard({\n onKeyDown(e) {\n // these are the cases that useMove doesn't handle\n if (!/^(PageUp|PageDown|Home|End)$/.test(e.key)) {\n e.continuePropagation();\n return;\n }\n // same handling as useMove, don't need to stop propagation, useKeyboard will do that for us\n e.preventDefault();\n // remember to set this and unset it so that onChangeEnd is fired\n state.setDragging(true);\n setValueChangedViaKeyboard(true);\n let dir;\n switch (e.key) {\n case 'PageUp':\n state.incrementY(state.yChannelPageStep);\n dir = 'y';\n break;\n case 'PageDown':\n state.decrementY(state.yChannelPageStep);\n dir = 'y';\n break;\n case 'Home':\n direction === 'rtl'\n ? state.incrementX(state.xChannelPageStep)\n : state.decrementX(state.xChannelPageStep);\n dir = 'x';\n break;\n case 'End':\n direction === 'rtl'\n ? state.decrementX(state.xChannelPageStep)\n : state.incrementX(state.xChannelPageStep);\n dir = 'x';\n break;\n }\n state.setDragging(false);\n if (dir) {\n let input = dir === 'x' ? inputXRef : inputYRef;\n focusInput(input);\n setFocusedInput(dir);\n }\n }\n });\n\n let moveHandler = {\n onMoveStart() {\n currentPosition.current = null;\n state.setDragging(true);\n },\n onMove({deltaX, deltaY, pointerType, shiftKey}) {\n let {\n incrementX,\n decrementX,\n incrementY,\n decrementY,\n xChannelPageStep,\n xChannelStep,\n yChannelPageStep,\n yChannelStep,\n getThumbPosition,\n setColorFromPoint\n } = state;\n if (currentPosition.current == null) {\n currentPosition.current = getThumbPosition();\n }\n let {width, height} = containerRef.current?.getBoundingClientRect() || {width: 0, height: 0};\n let valueChanged = deltaX !== 0 || deltaY !== 0;\n if (pointerType === 'keyboard') {\n let deltaXValue =\n shiftKey && xChannelPageStep > xChannelStep ? xChannelPageStep : xChannelStep;\n let deltaYValue =\n shiftKey && yChannelPageStep > yChannelStep ? yChannelPageStep : yChannelStep;\n if ((deltaX > 0 && direction === 'ltr') || (deltaX < 0 && direction === 'rtl')) {\n incrementX(deltaXValue);\n } else if ((deltaX < 0 && direction === 'ltr') || (deltaX > 0 && direction === 'rtl')) {\n decrementX(deltaXValue);\n } else if (deltaY > 0) {\n decrementY(deltaYValue);\n } else if (deltaY < 0) {\n incrementY(deltaYValue);\n }\n setValueChangedViaKeyboard(valueChanged);\n // set the focused input based on which axis has the greater delta\n focusedInput = valueChanged && Math.abs(deltaY) > Math.abs(deltaX) ? 'y' : 'x';\n setFocusedInput(focusedInput);\n } else {\n currentPosition.current.x += ((direction === 'rtl' ? -1 : 1) * deltaX) / width;\n currentPosition.current.y += deltaY / height;\n setColorFromPoint(currentPosition.current.x, currentPosition.current.y);\n }\n },\n onMoveEnd() {\n isOnColorArea.current = false;\n state.setDragging(false);\n let input = focusedInput === 'x' ? inputXRef : inputYRef;\n focusInput(input);\n }\n };\n let {moveProps: movePropsThumb} = useMove(moveHandler);\n\n let {focusWithinProps} = useFocusWithin({\n onFocusWithinChange: (focusWithin: boolean) => {\n if (!focusWithin) {\n setValueChangedViaKeyboard(false);\n setValueChangedViaInputChangeEvent(false);\n }\n }\n });\n\n let currentPointer = useRef<number | null | undefined>(undefined);\n let isOnColorArea = useRef<boolean>(false);\n let {moveProps: movePropsContainer} = useMove({\n onMoveStart() {\n if (isOnColorArea.current) {\n moveHandler.onMoveStart();\n }\n },\n onMove(e) {\n if (isOnColorArea.current) {\n moveHandler.onMove(e);\n }\n },\n onMoveEnd() {\n if (isOnColorArea.current) {\n moveHandler.onMoveEnd();\n }\n }\n });\n\n let onThumbDown = (id: number | null | undefined) => {\n if (!state.isDragging) {\n currentPointer.current = id;\n setValueChangedViaKeyboard(false);\n focusInput();\n state.setDragging(true);\n if (typeof PointerEvent !== 'undefined') {\n addGlobalListener(window, 'pointerup', onThumbUp, false);\n } else {\n addGlobalListener(window, 'mouseup', onThumbUp, false);\n addGlobalListener(window, 'touchend', onThumbUp, false);\n }\n }\n };\n\n let onThumbUp = e => {\n let id = e.pointerId ?? e.changedTouches?.[0].identifier;\n if (id === currentPointer.current) {\n setValueChangedViaKeyboard(false);\n focusInput();\n state.setDragging(false);\n currentPointer.current = undefined;\n isOnColorArea.current = false;\n\n if (typeof PointerEvent !== 'undefined') {\n removeGlobalListener(window, 'pointerup', onThumbUp, false);\n } else {\n removeGlobalListener(window, 'mouseup', onThumbUp, false);\n removeGlobalListener(window, 'touchend', onThumbUp, false);\n }\n }\n };\n\n let onColorAreaDown = (\n colorArea: Element,\n id: number | null | undefined,\n clientX: number,\n clientY: number\n ) => {\n let rect = colorArea.getBoundingClientRect();\n let {width, height} = rect;\n let x = (clientX - rect.x) / width;\n let y = (clientY - rect.y) / height;\n if (direction === 'rtl') {\n x = 1 - x;\n }\n if (\n x >= 0 &&\n x <= 1 &&\n y >= 0 &&\n y <= 1 &&\n !state.isDragging &&\n currentPointer.current === undefined\n ) {\n isOnColorArea.current = true;\n setValueChangedViaKeyboard(false);\n currentPointer.current = id;\n state.setColorFromPoint(x, y);\n\n focusInput();\n state.setDragging(true);\n\n if (typeof PointerEvent !== 'undefined') {\n addGlobalListener(window, 'pointerup', onColorAreaUp, false);\n } else {\n addGlobalListener(window, 'mouseup', onColorAreaUp, false);\n addGlobalListener(window, 'touchend', onColorAreaUp, false);\n }\n }\n };\n\n let onColorAreaUp = e => {\n let id = e.pointerId ?? e.changedTouches?.[0].identifier;\n if (isOnColorArea.current && id === currentPointer.current) {\n isOnColorArea.current = false;\n setValueChangedViaKeyboard(false);\n currentPointer.current = undefined;\n state.setDragging(false);\n focusInput();\n\n if (typeof PointerEvent !== 'undefined') {\n removeGlobalListener(window, 'pointerup', onColorAreaUp, false);\n } else {\n removeGlobalListener(window, 'mouseup', onColorAreaUp, false);\n removeGlobalListener(window, 'touchend', onColorAreaUp, false);\n }\n }\n };\n\n let colorAreaInteractions = isDisabled\n ? {}\n : mergeProps(\n {\n ...(typeof PointerEvent !== 'undefined'\n ? {\n onPointerDown: (e: React.PointerEvent) => {\n if (\n e.pointerType === 'mouse' &&\n (e.button !== 0 || e.altKey || e.ctrlKey || e.metaKey)\n ) {\n return;\n }\n onColorAreaDown(e.currentTarget, e.pointerId, e.clientX, e.clientY);\n }\n }\n : {\n onMouseDown: (e: React.MouseEvent) => {\n if (e.button !== 0 || e.altKey || e.ctrlKey || e.metaKey) {\n return;\n }\n onColorAreaDown(e.currentTarget, undefined, e.clientX, e.clientY);\n },\n onTouchStart: (e: React.TouchEvent) => {\n onColorAreaDown(\n e.currentTarget,\n e.changedTouches[0].identifier,\n e.changedTouches[0].clientX,\n e.changedTouches[0].clientY\n );\n }\n })\n },\n movePropsContainer\n );\n\n let thumbInteractions = isDisabled\n ? {}\n : mergeProps(\n {\n ...(typeof PointerEvent !== 'undefined'\n ? {\n onPointerDown: (e: React.PointerEvent) => {\n if (\n e.pointerType === 'mouse' &&\n (e.button !== 0 || e.altKey || e.ctrlKey || e.metaKey)\n ) {\n return;\n }\n onThumbDown(e.pointerId);\n }\n }\n : {\n onMouseDown: (e: React.MouseEvent) => {\n if (e.button !== 0 || e.altKey || e.ctrlKey || e.metaKey) {\n return;\n }\n onThumbDown(undefined);\n },\n onTouchStart: (e: React.TouchEvent) => {\n onThumbDown(e.changedTouches[0].identifier);\n }\n })\n },\n focusWithinProps,\n keyboardProps,\n movePropsThumb\n );\n\n let {focusProps: xInputFocusProps} = useFocus({\n onFocus: () => {\n setFocusedInput('x');\n }\n });\n\n let {focusProps: yInputFocusProps} = useFocus({\n onFocus: () => {\n setFocusedInput('y');\n }\n });\n\n const onChange = (e: ChangeEvent<HTMLInputElement>) => {\n const {target} = e;\n setValueChangedViaInputChangeEvent(true);\n if (target === inputXRef.current) {\n state.setXValue(parseFloat(target.value));\n } else if (target === inputYRef.current) {\n state.setYValue(parseFloat(target.value));\n }\n };\n\n let isMobile = isIOS() || isAndroid();\n\n let value = state.getDisplayColor();\n const getAriaValueTextForChannel = useCallback(\n (channel: ColorChannel) => {\n const isAfterInput = valueChangedViaInputChangeEvent || valueChangedViaKeyboard;\n return `${\n isAfterInput\n ? stringFormatter.format('colorNameAndValue', {\n name: value.getChannelName(channel, locale),\n value: value.formatChannelValue(channel, locale)\n })\n : [\n stringFormatter.format('colorNameAndValue', {\n name: value.getChannelName(channel, locale),\n value: value.formatChannelValue(channel, locale)\n }),\n stringFormatter.format('colorNameAndValue', {\n name: value.getChannelName(channel === yChannel ? xChannel : yChannel, locale),\n value: value.formatChannelValue(channel === yChannel ? xChannel : yChannel, locale)\n }),\n stringFormatter.format('colorNameAndValue', {\n name: value.getChannelName(zChannel, locale),\n value: value.formatChannelValue(zChannel, locale)\n })\n ].join(', ')\n }, ${value.getColorName(locale)}`;\n },\n [\n locale,\n value,\n stringFormatter,\n valueChangedViaInputChangeEvent,\n valueChangedViaKeyboard,\n xChannel,\n yChannel,\n zChannel\n ]\n );\n\n let colorPickerLabel = stringFormatter.format('colorPicker');\n\n let xInputLabellingProps = useLabels({\n ...props,\n 'aria-label': ariaLabel\n ? stringFormatter.format('colorInputLabel', {\n label: ariaLabel,\n channelLabel: colorPickerLabel\n })\n : colorPickerLabel\n });\n\n let yInputLabellingProps = useLabels({\n ...props,\n 'aria-label': ariaLabel\n ? stringFormatter.format('colorInputLabel', {\n label: ariaLabel,\n channelLabel: colorPickerLabel\n })\n : colorPickerLabel\n });\n\n let colorAreaLabellingProps = useLabels(\n {\n ...props,\n 'aria-label': ariaLabel ? `${ariaLabel}, ${colorPickerLabel}` : undefined\n },\n isMobile ? colorPickerLabel : undefined\n );\n\n let ariaRoleDescription = stringFormatter.format('twoDimensionalSlider');\n\n let {visuallyHiddenProps} = useVisuallyHidden({\n style: {\n opacity: '0.0001',\n width: '100%',\n height: '100%',\n pointerEvents: 'none'\n }\n });\n\n let {colorAreaStyleProps, thumbStyleProps} = useColorAreaGradient({\n direction,\n state,\n xChannel,\n yChannel,\n zChannel\n });\n\n return {\n colorAreaProps: {\n ...colorAreaLabellingProps,\n ...colorAreaInteractions,\n ...colorAreaStyleProps,\n role: 'group'\n },\n thumbProps: {\n ...thumbInteractions,\n ...thumbStyleProps,\n role: 'presentation'\n },\n xInputProps: {\n ...xInputLabellingProps,\n ...visuallyHiddenProps,\n ...xInputFocusProps,\n type: 'range',\n min: state.value.getChannelRange(xChannel).minValue,\n max: state.value.getChannelRange(xChannel).maxValue,\n step: xChannelStep,\n 'aria-roledescription': ariaRoleDescription,\n 'aria-valuetext': getAriaValueTextForChannel(xChannel),\n 'aria-orientation': 'horizontal',\n 'aria-describedby': props['aria-describedby'],\n 'aria-details': props['aria-details'],\n disabled: isDisabled,\n value: state.value.getChannelValue(xChannel),\n name: xName,\n form,\n tabIndex: isMobile || !focusedInput || focusedInput === 'x' ? undefined : -1,\n /*\n So that only a single \"2d slider\" control shows up when listing form elements for screen readers,\n add aria-hidden=\"true\" to the unfocused control when the value has not changed via the keyboard,\n but remove aria-hidden to reveal the input for each channel when the value has changed with the keyboard.\n */\n 'aria-hidden':\n isMobile || !focusedInput || focusedInput === 'x' || valueChangedViaKeyboard\n ? undefined\n : 'true',\n onChange\n },\n yInputProps: {\n ...yInputLabellingProps,\n ...visuallyHiddenProps,\n ...yInputFocusProps,\n type: 'range',\n min: state.value.getChannelRange(yChannel).minValue,\n max: state.value.getChannelRange(yChannel).maxValue,\n step: yChannelStep,\n 'aria-roledescription': ariaRoleDescription,\n 'aria-valuetext': getAriaValueTextForChannel(yChannel),\n 'aria-orientation': 'vertical',\n 'aria-describedby': props['aria-describedby'],\n 'aria-details': props['aria-details'],\n disabled: isDisabled,\n value: state.value.getChannelValue(yChannel),\n name: yName,\n form,\n tabIndex: isMobile || focusedInput === 'y' ? undefined : -1,\n /*\n So that only a single \"2d slider\" control shows up when listing form elements for screen readers,\n add aria-hidden=\"true\" to the unfocused input when the value has not changed via the keyboard,\n but remove aria-hidden to reveal the input for each channel when the value has changed with the keyboard.\n */\n 'aria-hidden':\n isMobile || focusedInput === 'y' || valueChangedViaKeyboard ? undefined : 'true',\n onChange\n }\n };\n}\n"],"names":[],"version":3,"file":"useColorArea.js.map"}
1
+ {"mappings":"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","sources":["packages/react-aria/src/color/useColorArea.ts"],"sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps, DOMAttributes, DOMProps, RefObject} from '@react-types/shared';\nimport {ColorAreaProps, ColorAreaState} from 'react-stately/useColorAreaState';\nimport {ColorChannel} from 'react-stately/Color';\nimport {focusWithoutScrolling} from '../utils/focusWithoutScrolling';\nimport intlMessages from '../../intl/color/*.json';\nimport {isAndroid, isIOS} from '../utils/platform';\nimport {mergeProps} from '../utils/mergeProps';\nimport React, {ChangeEvent, InputHTMLAttributes, useCallback, useRef, useState} from 'react';\nimport {useColorAreaGradient} from './useColorAreaGradient';\nimport {useFocus} from '../interactions/useFocus';\nimport {useFocusWithin} from '../interactions/useFocusWithin';\nimport {useFormReset} from '../utils/useFormReset';\nimport {useGlobalListeners} from '../utils/useGlobalListeners';\nimport {useKeyboard} from '../interactions/useKeyboard';\nimport {useLabels} from '../utils/useLabels';\nimport {useLocale} from '../i18n/I18nProvider';\nimport {useLocalizedStringFormatter} from '../i18n/useLocalizedStringFormatter';\nimport {useMove} from '../interactions/useMove';\nimport {useVisuallyHidden} from '../visually-hidden/VisuallyHidden';\n\nexport interface AriaColorAreaProps extends ColorAreaProps, DOMProps, AriaLabelingProps {\n /**\n * The name of the x channel input element, used when submitting an HTML form. See\n * [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#htmlattrdefname).\n */\n xName?: string;\n /**\n * The name of the y channel input element, used when submitting an HTML form. See\n * [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#htmlattrdefname).\n */\n yName?: string;\n /**\n * The `<form>` element to associate the ColorArea with.\n * The value of this attribute must be the id of a `<form>` in the same document.\n * See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/input#form).\n */\n form?: string;\n}\n\nexport interface ColorAreaAria {\n /** Props for the color area container element. */\n colorAreaProps: DOMAttributes;\n /** Props for the thumb element. */\n thumbProps: DOMAttributes;\n /** Props for the visually hidden horizontal range input element. */\n xInputProps: InputHTMLAttributes<HTMLInputElement>;\n /** Props for the visually hidden vertical range input element. */\n yInputProps: InputHTMLAttributes<HTMLInputElement>;\n}\n\nexport interface AriaColorAreaOptions extends AriaColorAreaProps {\n /** A ref to the input that represents the x axis of the color area. */\n inputXRef: RefObject<HTMLInputElement | null>;\n /** A ref to the input that represents the y axis of the color area. */\n inputYRef: RefObject<HTMLInputElement | null>;\n /** A ref to the color area containing element. */\n containerRef: RefObject<Element | null>;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a color area component. Color area\n * allows users to adjust two channels of an RGB, HSL or HSB color value against a two-dimensional\n * gradient background.\n */\nexport function useColorArea(props: AriaColorAreaOptions, state: ColorAreaState): ColorAreaAria {\n let {\n isDisabled,\n inputXRef,\n inputYRef,\n containerRef,\n 'aria-label': ariaLabel,\n xName,\n yName,\n form\n } = props;\n let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-aria/color');\n\n let {addGlobalListener, removeGlobalListener} = useGlobalListeners();\n\n let {direction, locale} = useLocale();\n\n let [focusedInput, setFocusedInput] = useState<'x' | 'y' | null>(null);\n let focusInput = useCallback(\n (inputRef: RefObject<HTMLInputElement | null> = inputXRef) => {\n if (inputRef.current) {\n focusWithoutScrolling(inputRef.current);\n }\n },\n [inputXRef]\n );\n\n useFormReset(inputXRef, state.defaultValue, state.setValue);\n\n let [valueChangedViaKeyboard, setValueChangedViaKeyboard] = useState(false);\n let [valueChangedViaInputChangeEvent, setValueChangedViaInputChangeEvent] = useState(false);\n let {xChannel, yChannel, zChannel} = state.channels;\n let xChannelStep = state.xChannelStep;\n let yChannelStep = state.yChannelStep;\n\n let currentPosition = useRef<{x: number; y: number} | null>(null);\n\n let keyboardUpdate = (cb, inputRef: RefObject<HTMLInputElement | null>, input: 'x' | 'y') => {\n state.setDragging(true);\n setValueChangedViaKeyboard(true);\n cb();\n state.setDragging(false);\n focusInput(inputRef);\n setFocusedInput(input);\n };\n\n let {keyboardProps} = useKeyboard({\n shortcuts: {\n PageUp: () => {\n return keyboardUpdate(\n () => {\n state.incrementY(state.yChannelPageStep);\n },\n inputYRef,\n 'y'\n );\n },\n PageDown: () => {\n return keyboardUpdate(\n () => {\n state.decrementY(state.yChannelPageStep);\n },\n inputYRef,\n 'y'\n );\n },\n Home: () => {\n return keyboardUpdate(\n () => {\n direction === 'rtl'\n ? state.incrementX(state.xChannelPageStep)\n : state.decrementX(state.xChannelPageStep);\n },\n inputXRef,\n 'x'\n );\n },\n End: () => {\n return keyboardUpdate(\n () => {\n direction === 'rtl'\n ? state.decrementX(state.xChannelPageStep)\n : state.incrementX(state.xChannelPageStep);\n },\n inputXRef,\n 'x'\n );\n }\n },\n allowRepeats: true\n });\n\n let moveHandler = {\n onMoveStart() {\n currentPosition.current = null;\n state.setDragging(true);\n },\n onMove({deltaX, deltaY, pointerType, shiftKey}) {\n let {\n incrementX,\n decrementX,\n incrementY,\n decrementY,\n xChannelPageStep,\n xChannelStep,\n yChannelPageStep,\n yChannelStep,\n getThumbPosition,\n setColorFromPoint\n } = state;\n if (currentPosition.current == null) {\n currentPosition.current = getThumbPosition();\n }\n let {width, height} = containerRef.current?.getBoundingClientRect() || {width: 0, height: 0};\n let valueChanged = deltaX !== 0 || deltaY !== 0;\n if (pointerType === 'keyboard') {\n let deltaXValue =\n shiftKey && xChannelPageStep > xChannelStep ? xChannelPageStep : xChannelStep;\n let deltaYValue =\n shiftKey && yChannelPageStep > yChannelStep ? yChannelPageStep : yChannelStep;\n if ((deltaX > 0 && direction === 'ltr') || (deltaX < 0 && direction === 'rtl')) {\n incrementX(deltaXValue);\n } else if ((deltaX < 0 && direction === 'ltr') || (deltaX > 0 && direction === 'rtl')) {\n decrementX(deltaXValue);\n } else if (deltaY > 0) {\n decrementY(deltaYValue);\n } else if (deltaY < 0) {\n incrementY(deltaYValue);\n }\n setValueChangedViaKeyboard(valueChanged);\n // set the focused input based on which axis has the greater delta\n // oxlint-disable-next-line react/react-compiler\n focusedInput = valueChanged && Math.abs(deltaY) > Math.abs(deltaX) ? 'y' : 'x';\n setFocusedInput(focusedInput);\n } else {\n currentPosition.current.x += ((direction === 'rtl' ? -1 : 1) * deltaX) / width;\n currentPosition.current.y += deltaY / height;\n setColorFromPoint(currentPosition.current.x, currentPosition.current.y);\n }\n },\n onMoveEnd() {\n isOnColorArea.current = false;\n state.setDragging(false);\n let input = focusedInput === 'x' ? inputXRef : inputYRef;\n focusInput(input);\n }\n };\n let {moveProps: movePropsThumb} = useMove(moveHandler);\n\n let {focusWithinProps} = useFocusWithin({\n onFocusWithinChange: (focusWithin: boolean) => {\n if (!focusWithin) {\n setValueChangedViaKeyboard(false);\n setValueChangedViaInputChangeEvent(false);\n }\n }\n });\n\n let currentPointer = useRef<number | null | undefined>(undefined);\n let isOnColorArea = useRef<boolean>(false);\n let {moveProps: movePropsContainer} = useMove({\n onMoveStart() {\n if (isOnColorArea.current) {\n moveHandler.onMoveStart();\n }\n },\n onMove(e) {\n if (isOnColorArea.current) {\n moveHandler.onMove(e);\n }\n },\n onMoveEnd() {\n if (isOnColorArea.current) {\n moveHandler.onMoveEnd();\n }\n }\n });\n\n let onThumbDown = (id: number | null | undefined) => {\n if (!state.isDragging) {\n currentPointer.current = id;\n setValueChangedViaKeyboard(false);\n focusInput();\n state.setDragging(true);\n if (typeof PointerEvent !== 'undefined') {\n addGlobalListener(window, 'pointerup', onThumbUp, false);\n } else {\n addGlobalListener(window, 'mouseup', onThumbUp, false);\n addGlobalListener(window, 'touchend', onThumbUp, false);\n }\n }\n };\n\n let onThumbUp = e => {\n let id = e.pointerId ?? e.changedTouches?.[0].identifier;\n if (id === currentPointer.current) {\n setValueChangedViaKeyboard(false);\n focusInput();\n state.setDragging(false);\n currentPointer.current = undefined;\n isOnColorArea.current = false;\n\n if (typeof PointerEvent !== 'undefined') {\n removeGlobalListener(window, 'pointerup', onThumbUp, false);\n } else {\n removeGlobalListener(window, 'mouseup', onThumbUp, false);\n removeGlobalListener(window, 'touchend', onThumbUp, false);\n }\n }\n };\n\n let onColorAreaDown = (\n colorArea: Element,\n id: number | null | undefined,\n clientX: number,\n clientY: number\n ) => {\n let rect = colorArea.getBoundingClientRect();\n let {width, height} = rect;\n let x = (clientX - rect.x) / width;\n let y = (clientY - rect.y) / height;\n if (direction === 'rtl') {\n x = 1 - x;\n }\n if (\n x >= 0 &&\n x <= 1 &&\n y >= 0 &&\n y <= 1 &&\n !state.isDragging &&\n currentPointer.current === undefined\n ) {\n isOnColorArea.current = true;\n setValueChangedViaKeyboard(false);\n currentPointer.current = id;\n state.setColorFromPoint(x, y);\n\n focusInput();\n state.setDragging(true);\n\n if (typeof PointerEvent !== 'undefined') {\n addGlobalListener(window, 'pointerup', onColorAreaUp, false);\n } else {\n addGlobalListener(window, 'mouseup', onColorAreaUp, false);\n addGlobalListener(window, 'touchend', onColorAreaUp, false);\n }\n }\n };\n\n let onColorAreaUp = e => {\n let id = e.pointerId ?? e.changedTouches?.[0].identifier;\n if (isOnColorArea.current && id === currentPointer.current) {\n isOnColorArea.current = false;\n setValueChangedViaKeyboard(false);\n currentPointer.current = undefined;\n state.setDragging(false);\n focusInput();\n\n if (typeof PointerEvent !== 'undefined') {\n removeGlobalListener(window, 'pointerup', onColorAreaUp, false);\n } else {\n removeGlobalListener(window, 'mouseup', onColorAreaUp, false);\n removeGlobalListener(window, 'touchend', onColorAreaUp, false);\n }\n }\n };\n\n let colorAreaInteractions = isDisabled\n ? {}\n : mergeProps(\n // oxlint-disable-next-line react/react-compiler\n {\n ...(typeof PointerEvent !== 'undefined'\n ? {\n onPointerDown: (e: React.PointerEvent) => {\n if (\n e.pointerType === 'mouse' &&\n (e.button !== 0 || e.altKey || e.ctrlKey || e.metaKey)\n ) {\n return;\n }\n onColorAreaDown(e.currentTarget, e.pointerId, e.clientX, e.clientY);\n }\n }\n : {\n onMouseDown: (e: React.MouseEvent) => {\n if (e.button !== 0 || e.altKey || e.ctrlKey || e.metaKey) {\n return;\n }\n onColorAreaDown(e.currentTarget, undefined, e.clientX, e.clientY);\n },\n onTouchStart: (e: React.TouchEvent) => {\n onColorAreaDown(\n e.currentTarget,\n e.changedTouches[0].identifier,\n e.changedTouches[0].clientX,\n e.changedTouches[0].clientY\n );\n }\n })\n },\n movePropsContainer\n );\n\n let thumbInteractions = isDisabled\n ? {}\n : mergeProps(\n // oxlint-disable-next-line react/react-compiler\n {\n ...(typeof PointerEvent !== 'undefined'\n ? {\n onPointerDown: (e: React.PointerEvent) => {\n if (\n e.pointerType === 'mouse' &&\n (e.button !== 0 || e.altKey || e.ctrlKey || e.metaKey)\n ) {\n return;\n }\n onThumbDown(e.pointerId);\n }\n }\n : {\n onMouseDown: (e: React.MouseEvent) => {\n if (e.button !== 0 || e.altKey || e.ctrlKey || e.metaKey) {\n return;\n }\n onThumbDown(undefined);\n },\n onTouchStart: (e: React.TouchEvent) => {\n onThumbDown(e.changedTouches[0].identifier);\n }\n })\n },\n focusWithinProps,\n keyboardProps,\n movePropsThumb\n );\n\n let {focusProps: xInputFocusProps} = useFocus({\n onFocus: () => {\n setFocusedInput('x');\n }\n });\n\n let {focusProps: yInputFocusProps} = useFocus({\n onFocus: () => {\n setFocusedInput('y');\n }\n });\n\n const onChange = (e: ChangeEvent<HTMLInputElement>) => {\n const {target} = e;\n setValueChangedViaInputChangeEvent(true);\n if (target === inputXRef.current) {\n state.setXValue(parseFloat(target.value));\n } else if (target === inputYRef.current) {\n state.setYValue(parseFloat(target.value));\n }\n };\n\n let isMobile = isIOS() || isAndroid();\n\n let value = state.getDisplayColor();\n const getAriaValueTextForChannel = useCallback(\n (channel: ColorChannel) => {\n const isAfterInput = valueChangedViaInputChangeEvent || valueChangedViaKeyboard;\n return `${\n isAfterInput\n ? stringFormatter.format('colorNameAndValue', {\n name: value.getChannelName(channel, locale),\n value: value.formatChannelValue(channel, locale)\n })\n : [\n stringFormatter.format('colorNameAndValue', {\n name: value.getChannelName(channel, locale),\n value: value.formatChannelValue(channel, locale)\n }),\n stringFormatter.format('colorNameAndValue', {\n name: value.getChannelName(channel === yChannel ? xChannel : yChannel, locale),\n value: value.formatChannelValue(channel === yChannel ? xChannel : yChannel, locale)\n }),\n stringFormatter.format('colorNameAndValue', {\n name: value.getChannelName(zChannel, locale),\n value: value.formatChannelValue(zChannel, locale)\n })\n ].join(', ')\n }, ${value.getColorName(locale)}`;\n },\n [\n locale,\n value,\n stringFormatter,\n valueChangedViaInputChangeEvent,\n valueChangedViaKeyboard,\n xChannel,\n yChannel,\n zChannel\n ]\n );\n\n let colorPickerLabel = stringFormatter.format('colorPicker');\n\n let xInputLabellingProps = useLabels({\n ...props,\n 'aria-label': ariaLabel\n ? stringFormatter.format('colorInputLabel', {\n label: ariaLabel,\n channelLabel: colorPickerLabel\n })\n : colorPickerLabel\n });\n\n let yInputLabellingProps = useLabels({\n ...props,\n 'aria-label': ariaLabel\n ? stringFormatter.format('colorInputLabel', {\n label: ariaLabel,\n channelLabel: colorPickerLabel\n })\n : colorPickerLabel\n });\n\n let colorAreaLabellingProps = useLabels(\n {\n ...props,\n 'aria-label': ariaLabel ? `${ariaLabel}, ${colorPickerLabel}` : undefined\n },\n isMobile ? colorPickerLabel : undefined\n );\n\n let ariaRoleDescription = stringFormatter.format('twoDimensionalSlider');\n\n let {visuallyHiddenProps} = useVisuallyHidden({\n style: {\n opacity: '0.0001',\n width: '100%',\n height: '100%',\n pointerEvents: 'none'\n }\n });\n\n let {colorAreaStyleProps, thumbStyleProps} = useColorAreaGradient({\n direction,\n state,\n xChannel,\n yChannel,\n zChannel\n });\n\n return {\n colorAreaProps: {\n ...colorAreaLabellingProps,\n ...colorAreaInteractions,\n ...colorAreaStyleProps,\n role: 'group'\n },\n thumbProps: {\n ...thumbInteractions,\n ...thumbStyleProps,\n role: 'presentation'\n },\n xInputProps: {\n ...xInputLabellingProps,\n ...visuallyHiddenProps,\n ...xInputFocusProps,\n type: 'range',\n min: state.value.getChannelRange(xChannel).minValue,\n max: state.value.getChannelRange(xChannel).maxValue,\n step: xChannelStep,\n 'aria-roledescription': ariaRoleDescription,\n 'aria-valuetext': getAriaValueTextForChannel(xChannel),\n 'aria-orientation': 'horizontal',\n 'aria-describedby': props['aria-describedby'],\n 'aria-details': props['aria-details'],\n disabled: isDisabled,\n value: state.value.getChannelValue(xChannel),\n name: xName,\n form,\n tabIndex: isMobile || !focusedInput || focusedInput === 'x' ? undefined : -1,\n /*\n So that only a single \"2d slider\" control shows up when listing form elements for screen readers,\n add aria-hidden=\"true\" to the unfocused control when the value has not changed via the keyboard,\n but remove aria-hidden to reveal the input for each channel when the value has changed with the keyboard.\n */\n 'aria-hidden':\n isMobile || !focusedInput || focusedInput === 'x' || valueChangedViaKeyboard\n ? undefined\n : 'true',\n onChange\n },\n yInputProps: {\n ...yInputLabellingProps,\n ...visuallyHiddenProps,\n ...yInputFocusProps,\n type: 'range',\n min: state.value.getChannelRange(yChannel).minValue,\n max: state.value.getChannelRange(yChannel).maxValue,\n step: yChannelStep,\n 'aria-roledescription': ariaRoleDescription,\n 'aria-valuetext': getAriaValueTextForChannel(yChannel),\n 'aria-orientation': 'vertical',\n 'aria-describedby': props['aria-describedby'],\n 'aria-details': props['aria-details'],\n disabled: isDisabled,\n value: state.value.getChannelValue(yChannel),\n name: yName,\n form,\n tabIndex: isMobile || focusedInput === 'y' ? undefined : -1,\n /*\n So that only a single \"2d slider\" control shows up when listing form elements for screen readers,\n add aria-hidden=\"true\" to the unfocused input when the value has not changed via the keyboard,\n but remove aria-hidden to reveal the input for each channel when the value has changed with the keyboard.\n */\n 'aria-hidden':\n isMobile || focusedInput === 'y' || valueChangedViaKeyboard ? undefined : 'true',\n onChange\n }\n };\n}\n"],"names":[],"version":3,"file":"useColorArea.js.map"}
@@ -63,44 +63,38 @@ function $12db0b624ec2ac09$export$2f92a7a615a014f6(props, state) {
63
63
  let xChannelStep = state.xChannelStep;
64
64
  let yChannelStep = state.yChannelStep;
65
65
  let currentPosition = (0, $U6XIH$useRef)(null);
66
+ let keyboardUpdate = (cb, inputRef, input)=>{
67
+ state.setDragging(true);
68
+ setValueChangedViaKeyboard(true);
69
+ cb();
70
+ state.setDragging(false);
71
+ focusInput(inputRef);
72
+ setFocusedInput(input);
73
+ };
66
74
  let { keyboardProps: keyboardProps } = (0, $8296dad1a4c5e0dc$export$8f71654801c2f7cd)({
67
- onKeyDown (e) {
68
- // these are the cases that useMove doesn't handle
69
- if (!/^(PageUp|PageDown|Home|End)$/.test(e.key)) {
70
- e.continuePropagation();
71
- return;
72
- }
73
- // same handling as useMove, don't need to stop propagation, useKeyboard will do that for us
74
- e.preventDefault();
75
- // remember to set this and unset it so that onChangeEnd is fired
76
- state.setDragging(true);
77
- setValueChangedViaKeyboard(true);
78
- let dir;
79
- switch(e.key){
80
- case 'PageUp':
75
+ shortcuts: {
76
+ PageUp: ()=>{
77
+ return keyboardUpdate(()=>{
81
78
  state.incrementY(state.yChannelPageStep);
82
- dir = 'y';
83
- break;
84
- case 'PageDown':
79
+ }, inputYRef, 'y');
80
+ },
81
+ PageDown: ()=>{
82
+ return keyboardUpdate(()=>{
85
83
  state.decrementY(state.yChannelPageStep);
86
- dir = 'y';
87
- break;
88
- case 'Home':
84
+ }, inputYRef, 'y');
85
+ },
86
+ Home: ()=>{
87
+ return keyboardUpdate(()=>{
89
88
  direction === 'rtl' ? state.incrementX(state.xChannelPageStep) : state.decrementX(state.xChannelPageStep);
90
- dir = 'x';
91
- break;
92
- case 'End':
89
+ }, inputXRef, 'x');
90
+ },
91
+ End: ()=>{
92
+ return keyboardUpdate(()=>{
93
93
  direction === 'rtl' ? state.decrementX(state.xChannelPageStep) : state.incrementX(state.xChannelPageStep);
94
- dir = 'x';
95
- break;
96
- }
97
- state.setDragging(false);
98
- if (dir) {
99
- let input = dir === 'x' ? inputXRef : inputYRef;
100
- focusInput(input);
101
- setFocusedInput(dir);
94
+ }, inputXRef, 'x');
102
95
  }
103
- }
96
+ },
97
+ allowRepeats: true
104
98
  });
105
99
  let moveHandler = {
106
100
  onMoveStart () {
@@ -124,6 +118,7 @@ function $12db0b624ec2ac09$export$2f92a7a615a014f6(props, state) {
124
118
  else if (deltaY < 0) incrementY(deltaYValue);
125
119
  setValueChangedViaKeyboard(valueChanged);
126
120
  // set the focused input based on which axis has the greater delta
121
+ // oxlint-disable-next-line react/react-compiler
127
122
  focusedInput = valueChanged && Math.abs(deltaY) > Math.abs(deltaX) ? 'y' : 'x';
128
123
  setFocusedInput(focusedInput);
129
124
  } else {
@@ -224,7 +219,8 @@ function $12db0b624ec2ac09$export$2f92a7a615a014f6(props, state) {
224
219
  }
225
220
  }
226
221
  };
227
- let colorAreaInteractions = isDisabled ? {} : (0, $bbaa08b3cd72f041$export$9d1611c77c2fe928)({
222
+ let colorAreaInteractions = isDisabled ? {} : (0, $bbaa08b3cd72f041$export$9d1611c77c2fe928)(// oxlint-disable-next-line react/react-compiler
223
+ {
228
224
  ...typeof PointerEvent !== 'undefined' ? {
229
225
  onPointerDown: (e)=>{
230
226
  if (e.pointerType === 'mouse' && (e.button !== 0 || e.altKey || e.ctrlKey || e.metaKey)) return;
@@ -240,7 +236,8 @@ function $12db0b624ec2ac09$export$2f92a7a615a014f6(props, state) {
240
236
  }
241
237
  }
242
238
  }, movePropsContainer);
243
- let thumbInteractions = isDisabled ? {} : (0, $bbaa08b3cd72f041$export$9d1611c77c2fe928)({
239
+ let thumbInteractions = isDisabled ? {} : (0, $bbaa08b3cd72f041$export$9d1611c77c2fe928)(// oxlint-disable-next-line react/react-compiler
240
+ {
244
241
  ...typeof PointerEvent !== 'undefined' ? {
245
242
  onPointerDown: (e)=>{
246
243
  if (e.pointerType === 'mouse' && (e.button !== 0 || e.altKey || e.ctrlKey || e.metaKey)) return;
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/react-aria/src/color/useColorArea.ts"],"sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps, DOMAttributes, DOMProps, RefObject} from '@react-types/shared';\nimport {ColorAreaProps, ColorAreaState} from 'react-stately/useColorAreaState';\nimport {ColorChannel} from 'react-stately/Color';\nimport {focusWithoutScrolling} from '../utils/focusWithoutScrolling';\nimport intlMessages from '../../intl/color/*.json';\nimport {isAndroid, isIOS} from '../utils/platform';\nimport {mergeProps} from '../utils/mergeProps';\nimport React, {ChangeEvent, InputHTMLAttributes, useCallback, useRef, useState} from 'react';\nimport {useColorAreaGradient} from './useColorAreaGradient';\nimport {useFocus} from '../interactions/useFocus';\nimport {useFocusWithin} from '../interactions/useFocusWithin';\nimport {useFormReset} from '../utils/useFormReset';\nimport {useGlobalListeners} from '../utils/useGlobalListeners';\nimport {useKeyboard} from '../interactions/useKeyboard';\nimport {useLabels} from '../utils/useLabels';\nimport {useLocale} from '../i18n/I18nProvider';\nimport {useLocalizedStringFormatter} from '../i18n/useLocalizedStringFormatter';\nimport {useMove} from '../interactions/useMove';\nimport {useVisuallyHidden} from '../visually-hidden/VisuallyHidden';\n\nexport interface AriaColorAreaProps extends ColorAreaProps, DOMProps, AriaLabelingProps {\n /**\n * The name of the x channel input element, used when submitting an HTML form. See\n * [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#htmlattrdefname).\n */\n xName?: string;\n /**\n * The name of the y channel input element, used when submitting an HTML form. See\n * [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#htmlattrdefname).\n */\n yName?: string;\n /**\n * The `<form>` element to associate the ColorArea with.\n * The value of this attribute must be the id of a `<form>` in the same document.\n * See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/input#form).\n */\n form?: string;\n}\n\nexport interface ColorAreaAria {\n /** Props for the color area container element. */\n colorAreaProps: DOMAttributes;\n /** Props for the thumb element. */\n thumbProps: DOMAttributes;\n /** Props for the visually hidden horizontal range input element. */\n xInputProps: InputHTMLAttributes<HTMLInputElement>;\n /** Props for the visually hidden vertical range input element. */\n yInputProps: InputHTMLAttributes<HTMLInputElement>;\n}\n\nexport interface AriaColorAreaOptions extends AriaColorAreaProps {\n /** A ref to the input that represents the x axis of the color area. */\n inputXRef: RefObject<HTMLInputElement | null>;\n /** A ref to the input that represents the y axis of the color area. */\n inputYRef: RefObject<HTMLInputElement | null>;\n /** A ref to the color area containing element. */\n containerRef: RefObject<Element | null>;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a color area component. Color area\n * allows users to adjust two channels of an RGB, HSL or HSB color value against a two-dimensional\n * gradient background.\n */\nexport function useColorArea(props: AriaColorAreaOptions, state: ColorAreaState): ColorAreaAria {\n let {\n isDisabled,\n inputXRef,\n inputYRef,\n containerRef,\n 'aria-label': ariaLabel,\n xName,\n yName,\n form\n } = props;\n let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-aria/color');\n\n let {addGlobalListener, removeGlobalListener} = useGlobalListeners();\n\n let {direction, locale} = useLocale();\n\n let [focusedInput, setFocusedInput] = useState<'x' | 'y' | null>(null);\n let focusInput = useCallback(\n (inputRef: RefObject<HTMLInputElement | null> = inputXRef) => {\n if (inputRef.current) {\n focusWithoutScrolling(inputRef.current);\n }\n },\n [inputXRef]\n );\n\n useFormReset(inputXRef, state.defaultValue, state.setValue);\n\n let [valueChangedViaKeyboard, setValueChangedViaKeyboard] = useState(false);\n let [valueChangedViaInputChangeEvent, setValueChangedViaInputChangeEvent] = useState(false);\n let {xChannel, yChannel, zChannel} = state.channels;\n let xChannelStep = state.xChannelStep;\n let yChannelStep = state.yChannelStep;\n\n let currentPosition = useRef<{x: number; y: number} | null>(null);\n\n let {keyboardProps} = useKeyboard({\n onKeyDown(e) {\n // these are the cases that useMove doesn't handle\n if (!/^(PageUp|PageDown|Home|End)$/.test(e.key)) {\n e.continuePropagation();\n return;\n }\n // same handling as useMove, don't need to stop propagation, useKeyboard will do that for us\n e.preventDefault();\n // remember to set this and unset it so that onChangeEnd is fired\n state.setDragging(true);\n setValueChangedViaKeyboard(true);\n let dir;\n switch (e.key) {\n case 'PageUp':\n state.incrementY(state.yChannelPageStep);\n dir = 'y';\n break;\n case 'PageDown':\n state.decrementY(state.yChannelPageStep);\n dir = 'y';\n break;\n case 'Home':\n direction === 'rtl'\n ? state.incrementX(state.xChannelPageStep)\n : state.decrementX(state.xChannelPageStep);\n dir = 'x';\n break;\n case 'End':\n direction === 'rtl'\n ? state.decrementX(state.xChannelPageStep)\n : state.incrementX(state.xChannelPageStep);\n dir = 'x';\n break;\n }\n state.setDragging(false);\n if (dir) {\n let input = dir === 'x' ? inputXRef : inputYRef;\n focusInput(input);\n setFocusedInput(dir);\n }\n }\n });\n\n let moveHandler = {\n onMoveStart() {\n currentPosition.current = null;\n state.setDragging(true);\n },\n onMove({deltaX, deltaY, pointerType, shiftKey}) {\n let {\n incrementX,\n decrementX,\n incrementY,\n decrementY,\n xChannelPageStep,\n xChannelStep,\n yChannelPageStep,\n yChannelStep,\n getThumbPosition,\n setColorFromPoint\n } = state;\n if (currentPosition.current == null) {\n currentPosition.current = getThumbPosition();\n }\n let {width, height} = containerRef.current?.getBoundingClientRect() || {width: 0, height: 0};\n let valueChanged = deltaX !== 0 || deltaY !== 0;\n if (pointerType === 'keyboard') {\n let deltaXValue =\n shiftKey && xChannelPageStep > xChannelStep ? xChannelPageStep : xChannelStep;\n let deltaYValue =\n shiftKey && yChannelPageStep > yChannelStep ? yChannelPageStep : yChannelStep;\n if ((deltaX > 0 && direction === 'ltr') || (deltaX < 0 && direction === 'rtl')) {\n incrementX(deltaXValue);\n } else if ((deltaX < 0 && direction === 'ltr') || (deltaX > 0 && direction === 'rtl')) {\n decrementX(deltaXValue);\n } else if (deltaY > 0) {\n decrementY(deltaYValue);\n } else if (deltaY < 0) {\n incrementY(deltaYValue);\n }\n setValueChangedViaKeyboard(valueChanged);\n // set the focused input based on which axis has the greater delta\n focusedInput = valueChanged && Math.abs(deltaY) > Math.abs(deltaX) ? 'y' : 'x';\n setFocusedInput(focusedInput);\n } else {\n currentPosition.current.x += ((direction === 'rtl' ? -1 : 1) * deltaX) / width;\n currentPosition.current.y += deltaY / height;\n setColorFromPoint(currentPosition.current.x, currentPosition.current.y);\n }\n },\n onMoveEnd() {\n isOnColorArea.current = false;\n state.setDragging(false);\n let input = focusedInput === 'x' ? inputXRef : inputYRef;\n focusInput(input);\n }\n };\n let {moveProps: movePropsThumb} = useMove(moveHandler);\n\n let {focusWithinProps} = useFocusWithin({\n onFocusWithinChange: (focusWithin: boolean) => {\n if (!focusWithin) {\n setValueChangedViaKeyboard(false);\n setValueChangedViaInputChangeEvent(false);\n }\n }\n });\n\n let currentPointer = useRef<number | null | undefined>(undefined);\n let isOnColorArea = useRef<boolean>(false);\n let {moveProps: movePropsContainer} = useMove({\n onMoveStart() {\n if (isOnColorArea.current) {\n moveHandler.onMoveStart();\n }\n },\n onMove(e) {\n if (isOnColorArea.current) {\n moveHandler.onMove(e);\n }\n },\n onMoveEnd() {\n if (isOnColorArea.current) {\n moveHandler.onMoveEnd();\n }\n }\n });\n\n let onThumbDown = (id: number | null | undefined) => {\n if (!state.isDragging) {\n currentPointer.current = id;\n setValueChangedViaKeyboard(false);\n focusInput();\n state.setDragging(true);\n if (typeof PointerEvent !== 'undefined') {\n addGlobalListener(window, 'pointerup', onThumbUp, false);\n } else {\n addGlobalListener(window, 'mouseup', onThumbUp, false);\n addGlobalListener(window, 'touchend', onThumbUp, false);\n }\n }\n };\n\n let onThumbUp = e => {\n let id = e.pointerId ?? e.changedTouches?.[0].identifier;\n if (id === currentPointer.current) {\n setValueChangedViaKeyboard(false);\n focusInput();\n state.setDragging(false);\n currentPointer.current = undefined;\n isOnColorArea.current = false;\n\n if (typeof PointerEvent !== 'undefined') {\n removeGlobalListener(window, 'pointerup', onThumbUp, false);\n } else {\n removeGlobalListener(window, 'mouseup', onThumbUp, false);\n removeGlobalListener(window, 'touchend', onThumbUp, false);\n }\n }\n };\n\n let onColorAreaDown = (\n colorArea: Element,\n id: number | null | undefined,\n clientX: number,\n clientY: number\n ) => {\n let rect = colorArea.getBoundingClientRect();\n let {width, height} = rect;\n let x = (clientX - rect.x) / width;\n let y = (clientY - rect.y) / height;\n if (direction === 'rtl') {\n x = 1 - x;\n }\n if (\n x >= 0 &&\n x <= 1 &&\n y >= 0 &&\n y <= 1 &&\n !state.isDragging &&\n currentPointer.current === undefined\n ) {\n isOnColorArea.current = true;\n setValueChangedViaKeyboard(false);\n currentPointer.current = id;\n state.setColorFromPoint(x, y);\n\n focusInput();\n state.setDragging(true);\n\n if (typeof PointerEvent !== 'undefined') {\n addGlobalListener(window, 'pointerup', onColorAreaUp, false);\n } else {\n addGlobalListener(window, 'mouseup', onColorAreaUp, false);\n addGlobalListener(window, 'touchend', onColorAreaUp, false);\n }\n }\n };\n\n let onColorAreaUp = e => {\n let id = e.pointerId ?? e.changedTouches?.[0].identifier;\n if (isOnColorArea.current && id === currentPointer.current) {\n isOnColorArea.current = false;\n setValueChangedViaKeyboard(false);\n currentPointer.current = undefined;\n state.setDragging(false);\n focusInput();\n\n if (typeof PointerEvent !== 'undefined') {\n removeGlobalListener(window, 'pointerup', onColorAreaUp, false);\n } else {\n removeGlobalListener(window, 'mouseup', onColorAreaUp, false);\n removeGlobalListener(window, 'touchend', onColorAreaUp, false);\n }\n }\n };\n\n let colorAreaInteractions = isDisabled\n ? {}\n : mergeProps(\n {\n ...(typeof PointerEvent !== 'undefined'\n ? {\n onPointerDown: (e: React.PointerEvent) => {\n if (\n e.pointerType === 'mouse' &&\n (e.button !== 0 || e.altKey || e.ctrlKey || e.metaKey)\n ) {\n return;\n }\n onColorAreaDown(e.currentTarget, e.pointerId, e.clientX, e.clientY);\n }\n }\n : {\n onMouseDown: (e: React.MouseEvent) => {\n if (e.button !== 0 || e.altKey || e.ctrlKey || e.metaKey) {\n return;\n }\n onColorAreaDown(e.currentTarget, undefined, e.clientX, e.clientY);\n },\n onTouchStart: (e: React.TouchEvent) => {\n onColorAreaDown(\n e.currentTarget,\n e.changedTouches[0].identifier,\n e.changedTouches[0].clientX,\n e.changedTouches[0].clientY\n );\n }\n })\n },\n movePropsContainer\n );\n\n let thumbInteractions = isDisabled\n ? {}\n : mergeProps(\n {\n ...(typeof PointerEvent !== 'undefined'\n ? {\n onPointerDown: (e: React.PointerEvent) => {\n if (\n e.pointerType === 'mouse' &&\n (e.button !== 0 || e.altKey || e.ctrlKey || e.metaKey)\n ) {\n return;\n }\n onThumbDown(e.pointerId);\n }\n }\n : {\n onMouseDown: (e: React.MouseEvent) => {\n if (e.button !== 0 || e.altKey || e.ctrlKey || e.metaKey) {\n return;\n }\n onThumbDown(undefined);\n },\n onTouchStart: (e: React.TouchEvent) => {\n onThumbDown(e.changedTouches[0].identifier);\n }\n })\n },\n focusWithinProps,\n keyboardProps,\n movePropsThumb\n );\n\n let {focusProps: xInputFocusProps} = useFocus({\n onFocus: () => {\n setFocusedInput('x');\n }\n });\n\n let {focusProps: yInputFocusProps} = useFocus({\n onFocus: () => {\n setFocusedInput('y');\n }\n });\n\n const onChange = (e: ChangeEvent<HTMLInputElement>) => {\n const {target} = e;\n setValueChangedViaInputChangeEvent(true);\n if (target === inputXRef.current) {\n state.setXValue(parseFloat(target.value));\n } else if (target === inputYRef.current) {\n state.setYValue(parseFloat(target.value));\n }\n };\n\n let isMobile = isIOS() || isAndroid();\n\n let value = state.getDisplayColor();\n const getAriaValueTextForChannel = useCallback(\n (channel: ColorChannel) => {\n const isAfterInput = valueChangedViaInputChangeEvent || valueChangedViaKeyboard;\n return `${\n isAfterInput\n ? stringFormatter.format('colorNameAndValue', {\n name: value.getChannelName(channel, locale),\n value: value.formatChannelValue(channel, locale)\n })\n : [\n stringFormatter.format('colorNameAndValue', {\n name: value.getChannelName(channel, locale),\n value: value.formatChannelValue(channel, locale)\n }),\n stringFormatter.format('colorNameAndValue', {\n name: value.getChannelName(channel === yChannel ? xChannel : yChannel, locale),\n value: value.formatChannelValue(channel === yChannel ? xChannel : yChannel, locale)\n }),\n stringFormatter.format('colorNameAndValue', {\n name: value.getChannelName(zChannel, locale),\n value: value.formatChannelValue(zChannel, locale)\n })\n ].join(', ')\n }, ${value.getColorName(locale)}`;\n },\n [\n locale,\n value,\n stringFormatter,\n valueChangedViaInputChangeEvent,\n valueChangedViaKeyboard,\n xChannel,\n yChannel,\n zChannel\n ]\n );\n\n let colorPickerLabel = stringFormatter.format('colorPicker');\n\n let xInputLabellingProps = useLabels({\n ...props,\n 'aria-label': ariaLabel\n ? stringFormatter.format('colorInputLabel', {\n label: ariaLabel,\n channelLabel: colorPickerLabel\n })\n : colorPickerLabel\n });\n\n let yInputLabellingProps = useLabels({\n ...props,\n 'aria-label': ariaLabel\n ? stringFormatter.format('colorInputLabel', {\n label: ariaLabel,\n channelLabel: colorPickerLabel\n })\n : colorPickerLabel\n });\n\n let colorAreaLabellingProps = useLabels(\n {\n ...props,\n 'aria-label': ariaLabel ? `${ariaLabel}, ${colorPickerLabel}` : undefined\n },\n isMobile ? colorPickerLabel : undefined\n );\n\n let ariaRoleDescription = stringFormatter.format('twoDimensionalSlider');\n\n let {visuallyHiddenProps} = useVisuallyHidden({\n style: {\n opacity: '0.0001',\n width: '100%',\n height: '100%',\n pointerEvents: 'none'\n }\n });\n\n let {colorAreaStyleProps, thumbStyleProps} = useColorAreaGradient({\n direction,\n state,\n xChannel,\n yChannel,\n zChannel\n });\n\n return {\n colorAreaProps: {\n ...colorAreaLabellingProps,\n ...colorAreaInteractions,\n ...colorAreaStyleProps,\n role: 'group'\n },\n thumbProps: {\n ...thumbInteractions,\n ...thumbStyleProps,\n role: 'presentation'\n },\n xInputProps: {\n ...xInputLabellingProps,\n ...visuallyHiddenProps,\n ...xInputFocusProps,\n type: 'range',\n min: state.value.getChannelRange(xChannel).minValue,\n max: state.value.getChannelRange(xChannel).maxValue,\n step: xChannelStep,\n 'aria-roledescription': ariaRoleDescription,\n 'aria-valuetext': getAriaValueTextForChannel(xChannel),\n 'aria-orientation': 'horizontal',\n 'aria-describedby': props['aria-describedby'],\n 'aria-details': props['aria-details'],\n disabled: isDisabled,\n value: state.value.getChannelValue(xChannel),\n name: xName,\n form,\n tabIndex: isMobile || !focusedInput || focusedInput === 'x' ? undefined : -1,\n /*\n So that only a single \"2d slider\" control shows up when listing form elements for screen readers,\n add aria-hidden=\"true\" to the unfocused control when the value has not changed via the keyboard,\n but remove aria-hidden to reveal the input for each channel when the value has changed with the keyboard.\n */\n 'aria-hidden':\n isMobile || !focusedInput || focusedInput === 'x' || valueChangedViaKeyboard\n ? undefined\n : 'true',\n onChange\n },\n yInputProps: {\n ...yInputLabellingProps,\n ...visuallyHiddenProps,\n ...yInputFocusProps,\n type: 'range',\n min: state.value.getChannelRange(yChannel).minValue,\n max: state.value.getChannelRange(yChannel).maxValue,\n step: yChannelStep,\n 'aria-roledescription': ariaRoleDescription,\n 'aria-valuetext': getAriaValueTextForChannel(yChannel),\n 'aria-orientation': 'vertical',\n 'aria-describedby': props['aria-describedby'],\n 'aria-details': props['aria-details'],\n disabled: isDisabled,\n value: state.value.getChannelValue(yChannel),\n name: yName,\n form,\n tabIndex: isMobile || focusedInput === 'y' ? undefined : -1,\n /*\n So that only a single \"2d slider\" control shows up when listing form elements for screen readers,\n add aria-hidden=\"true\" to the unfocused input when the value has not changed via the keyboard,\n but remove aria-hidden to reveal the input for each channel when the value has changed with the keyboard.\n */\n 'aria-hidden':\n isMobile || focusedInput === 'y' || valueChangedViaKeyboard ? undefined : 'true',\n onChange\n }\n };\n}\n"],"names":[],"version":3,"file":"useColorArea.mjs.map"}
1
+ {"mappings":"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","sources":["packages/react-aria/src/color/useColorArea.ts"],"sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps, DOMAttributes, DOMProps, RefObject} from '@react-types/shared';\nimport {ColorAreaProps, ColorAreaState} from 'react-stately/useColorAreaState';\nimport {ColorChannel} from 'react-stately/Color';\nimport {focusWithoutScrolling} from '../utils/focusWithoutScrolling';\nimport intlMessages from '../../intl/color/*.json';\nimport {isAndroid, isIOS} from '../utils/platform';\nimport {mergeProps} from '../utils/mergeProps';\nimport React, {ChangeEvent, InputHTMLAttributes, useCallback, useRef, useState} from 'react';\nimport {useColorAreaGradient} from './useColorAreaGradient';\nimport {useFocus} from '../interactions/useFocus';\nimport {useFocusWithin} from '../interactions/useFocusWithin';\nimport {useFormReset} from '../utils/useFormReset';\nimport {useGlobalListeners} from '../utils/useGlobalListeners';\nimport {useKeyboard} from '../interactions/useKeyboard';\nimport {useLabels} from '../utils/useLabels';\nimport {useLocale} from '../i18n/I18nProvider';\nimport {useLocalizedStringFormatter} from '../i18n/useLocalizedStringFormatter';\nimport {useMove} from '../interactions/useMove';\nimport {useVisuallyHidden} from '../visually-hidden/VisuallyHidden';\n\nexport interface AriaColorAreaProps extends ColorAreaProps, DOMProps, AriaLabelingProps {\n /**\n * The name of the x channel input element, used when submitting an HTML form. See\n * [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#htmlattrdefname).\n */\n xName?: string;\n /**\n * The name of the y channel input element, used when submitting an HTML form. See\n * [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#htmlattrdefname).\n */\n yName?: string;\n /**\n * The `<form>` element to associate the ColorArea with.\n * The value of this attribute must be the id of a `<form>` in the same document.\n * See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/input#form).\n */\n form?: string;\n}\n\nexport interface ColorAreaAria {\n /** Props for the color area container element. */\n colorAreaProps: DOMAttributes;\n /** Props for the thumb element. */\n thumbProps: DOMAttributes;\n /** Props for the visually hidden horizontal range input element. */\n xInputProps: InputHTMLAttributes<HTMLInputElement>;\n /** Props for the visually hidden vertical range input element. */\n yInputProps: InputHTMLAttributes<HTMLInputElement>;\n}\n\nexport interface AriaColorAreaOptions extends AriaColorAreaProps {\n /** A ref to the input that represents the x axis of the color area. */\n inputXRef: RefObject<HTMLInputElement | null>;\n /** A ref to the input that represents the y axis of the color area. */\n inputYRef: RefObject<HTMLInputElement | null>;\n /** A ref to the color area containing element. */\n containerRef: RefObject<Element | null>;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a color area component. Color area\n * allows users to adjust two channels of an RGB, HSL or HSB color value against a two-dimensional\n * gradient background.\n */\nexport function useColorArea(props: AriaColorAreaOptions, state: ColorAreaState): ColorAreaAria {\n let {\n isDisabled,\n inputXRef,\n inputYRef,\n containerRef,\n 'aria-label': ariaLabel,\n xName,\n yName,\n form\n } = props;\n let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-aria/color');\n\n let {addGlobalListener, removeGlobalListener} = useGlobalListeners();\n\n let {direction, locale} = useLocale();\n\n let [focusedInput, setFocusedInput] = useState<'x' | 'y' | null>(null);\n let focusInput = useCallback(\n (inputRef: RefObject<HTMLInputElement | null> = inputXRef) => {\n if (inputRef.current) {\n focusWithoutScrolling(inputRef.current);\n }\n },\n [inputXRef]\n );\n\n useFormReset(inputXRef, state.defaultValue, state.setValue);\n\n let [valueChangedViaKeyboard, setValueChangedViaKeyboard] = useState(false);\n let [valueChangedViaInputChangeEvent, setValueChangedViaInputChangeEvent] = useState(false);\n let {xChannel, yChannel, zChannel} = state.channels;\n let xChannelStep = state.xChannelStep;\n let yChannelStep = state.yChannelStep;\n\n let currentPosition = useRef<{x: number; y: number} | null>(null);\n\n let keyboardUpdate = (cb, inputRef: RefObject<HTMLInputElement | null>, input: 'x' | 'y') => {\n state.setDragging(true);\n setValueChangedViaKeyboard(true);\n cb();\n state.setDragging(false);\n focusInput(inputRef);\n setFocusedInput(input);\n };\n\n let {keyboardProps} = useKeyboard({\n shortcuts: {\n PageUp: () => {\n return keyboardUpdate(\n () => {\n state.incrementY(state.yChannelPageStep);\n },\n inputYRef,\n 'y'\n );\n },\n PageDown: () => {\n return keyboardUpdate(\n () => {\n state.decrementY(state.yChannelPageStep);\n },\n inputYRef,\n 'y'\n );\n },\n Home: () => {\n return keyboardUpdate(\n () => {\n direction === 'rtl'\n ? state.incrementX(state.xChannelPageStep)\n : state.decrementX(state.xChannelPageStep);\n },\n inputXRef,\n 'x'\n );\n },\n End: () => {\n return keyboardUpdate(\n () => {\n direction === 'rtl'\n ? state.decrementX(state.xChannelPageStep)\n : state.incrementX(state.xChannelPageStep);\n },\n inputXRef,\n 'x'\n );\n }\n },\n allowRepeats: true\n });\n\n let moveHandler = {\n onMoveStart() {\n currentPosition.current = null;\n state.setDragging(true);\n },\n onMove({deltaX, deltaY, pointerType, shiftKey}) {\n let {\n incrementX,\n decrementX,\n incrementY,\n decrementY,\n xChannelPageStep,\n xChannelStep,\n yChannelPageStep,\n yChannelStep,\n getThumbPosition,\n setColorFromPoint\n } = state;\n if (currentPosition.current == null) {\n currentPosition.current = getThumbPosition();\n }\n let {width, height} = containerRef.current?.getBoundingClientRect() || {width: 0, height: 0};\n let valueChanged = deltaX !== 0 || deltaY !== 0;\n if (pointerType === 'keyboard') {\n let deltaXValue =\n shiftKey && xChannelPageStep > xChannelStep ? xChannelPageStep : xChannelStep;\n let deltaYValue =\n shiftKey && yChannelPageStep > yChannelStep ? yChannelPageStep : yChannelStep;\n if ((deltaX > 0 && direction === 'ltr') || (deltaX < 0 && direction === 'rtl')) {\n incrementX(deltaXValue);\n } else if ((deltaX < 0 && direction === 'ltr') || (deltaX > 0 && direction === 'rtl')) {\n decrementX(deltaXValue);\n } else if (deltaY > 0) {\n decrementY(deltaYValue);\n } else if (deltaY < 0) {\n incrementY(deltaYValue);\n }\n setValueChangedViaKeyboard(valueChanged);\n // set the focused input based on which axis has the greater delta\n // oxlint-disable-next-line react/react-compiler\n focusedInput = valueChanged && Math.abs(deltaY) > Math.abs(deltaX) ? 'y' : 'x';\n setFocusedInput(focusedInput);\n } else {\n currentPosition.current.x += ((direction === 'rtl' ? -1 : 1) * deltaX) / width;\n currentPosition.current.y += deltaY / height;\n setColorFromPoint(currentPosition.current.x, currentPosition.current.y);\n }\n },\n onMoveEnd() {\n isOnColorArea.current = false;\n state.setDragging(false);\n let input = focusedInput === 'x' ? inputXRef : inputYRef;\n focusInput(input);\n }\n };\n let {moveProps: movePropsThumb} = useMove(moveHandler);\n\n let {focusWithinProps} = useFocusWithin({\n onFocusWithinChange: (focusWithin: boolean) => {\n if (!focusWithin) {\n setValueChangedViaKeyboard(false);\n setValueChangedViaInputChangeEvent(false);\n }\n }\n });\n\n let currentPointer = useRef<number | null | undefined>(undefined);\n let isOnColorArea = useRef<boolean>(false);\n let {moveProps: movePropsContainer} = useMove({\n onMoveStart() {\n if (isOnColorArea.current) {\n moveHandler.onMoveStart();\n }\n },\n onMove(e) {\n if (isOnColorArea.current) {\n moveHandler.onMove(e);\n }\n },\n onMoveEnd() {\n if (isOnColorArea.current) {\n moveHandler.onMoveEnd();\n }\n }\n });\n\n let onThumbDown = (id: number | null | undefined) => {\n if (!state.isDragging) {\n currentPointer.current = id;\n setValueChangedViaKeyboard(false);\n focusInput();\n state.setDragging(true);\n if (typeof PointerEvent !== 'undefined') {\n addGlobalListener(window, 'pointerup', onThumbUp, false);\n } else {\n addGlobalListener(window, 'mouseup', onThumbUp, false);\n addGlobalListener(window, 'touchend', onThumbUp, false);\n }\n }\n };\n\n let onThumbUp = e => {\n let id = e.pointerId ?? e.changedTouches?.[0].identifier;\n if (id === currentPointer.current) {\n setValueChangedViaKeyboard(false);\n focusInput();\n state.setDragging(false);\n currentPointer.current = undefined;\n isOnColorArea.current = false;\n\n if (typeof PointerEvent !== 'undefined') {\n removeGlobalListener(window, 'pointerup', onThumbUp, false);\n } else {\n removeGlobalListener(window, 'mouseup', onThumbUp, false);\n removeGlobalListener(window, 'touchend', onThumbUp, false);\n }\n }\n };\n\n let onColorAreaDown = (\n colorArea: Element,\n id: number | null | undefined,\n clientX: number,\n clientY: number\n ) => {\n let rect = colorArea.getBoundingClientRect();\n let {width, height} = rect;\n let x = (clientX - rect.x) / width;\n let y = (clientY - rect.y) / height;\n if (direction === 'rtl') {\n x = 1 - x;\n }\n if (\n x >= 0 &&\n x <= 1 &&\n y >= 0 &&\n y <= 1 &&\n !state.isDragging &&\n currentPointer.current === undefined\n ) {\n isOnColorArea.current = true;\n setValueChangedViaKeyboard(false);\n currentPointer.current = id;\n state.setColorFromPoint(x, y);\n\n focusInput();\n state.setDragging(true);\n\n if (typeof PointerEvent !== 'undefined') {\n addGlobalListener(window, 'pointerup', onColorAreaUp, false);\n } else {\n addGlobalListener(window, 'mouseup', onColorAreaUp, false);\n addGlobalListener(window, 'touchend', onColorAreaUp, false);\n }\n }\n };\n\n let onColorAreaUp = e => {\n let id = e.pointerId ?? e.changedTouches?.[0].identifier;\n if (isOnColorArea.current && id === currentPointer.current) {\n isOnColorArea.current = false;\n setValueChangedViaKeyboard(false);\n currentPointer.current = undefined;\n state.setDragging(false);\n focusInput();\n\n if (typeof PointerEvent !== 'undefined') {\n removeGlobalListener(window, 'pointerup', onColorAreaUp, false);\n } else {\n removeGlobalListener(window, 'mouseup', onColorAreaUp, false);\n removeGlobalListener(window, 'touchend', onColorAreaUp, false);\n }\n }\n };\n\n let colorAreaInteractions = isDisabled\n ? {}\n : mergeProps(\n // oxlint-disable-next-line react/react-compiler\n {\n ...(typeof PointerEvent !== 'undefined'\n ? {\n onPointerDown: (e: React.PointerEvent) => {\n if (\n e.pointerType === 'mouse' &&\n (e.button !== 0 || e.altKey || e.ctrlKey || e.metaKey)\n ) {\n return;\n }\n onColorAreaDown(e.currentTarget, e.pointerId, e.clientX, e.clientY);\n }\n }\n : {\n onMouseDown: (e: React.MouseEvent) => {\n if (e.button !== 0 || e.altKey || e.ctrlKey || e.metaKey) {\n return;\n }\n onColorAreaDown(e.currentTarget, undefined, e.clientX, e.clientY);\n },\n onTouchStart: (e: React.TouchEvent) => {\n onColorAreaDown(\n e.currentTarget,\n e.changedTouches[0].identifier,\n e.changedTouches[0].clientX,\n e.changedTouches[0].clientY\n );\n }\n })\n },\n movePropsContainer\n );\n\n let thumbInteractions = isDisabled\n ? {}\n : mergeProps(\n // oxlint-disable-next-line react/react-compiler\n {\n ...(typeof PointerEvent !== 'undefined'\n ? {\n onPointerDown: (e: React.PointerEvent) => {\n if (\n e.pointerType === 'mouse' &&\n (e.button !== 0 || e.altKey || e.ctrlKey || e.metaKey)\n ) {\n return;\n }\n onThumbDown(e.pointerId);\n }\n }\n : {\n onMouseDown: (e: React.MouseEvent) => {\n if (e.button !== 0 || e.altKey || e.ctrlKey || e.metaKey) {\n return;\n }\n onThumbDown(undefined);\n },\n onTouchStart: (e: React.TouchEvent) => {\n onThumbDown(e.changedTouches[0].identifier);\n }\n })\n },\n focusWithinProps,\n keyboardProps,\n movePropsThumb\n );\n\n let {focusProps: xInputFocusProps} = useFocus({\n onFocus: () => {\n setFocusedInput('x');\n }\n });\n\n let {focusProps: yInputFocusProps} = useFocus({\n onFocus: () => {\n setFocusedInput('y');\n }\n });\n\n const onChange = (e: ChangeEvent<HTMLInputElement>) => {\n const {target} = e;\n setValueChangedViaInputChangeEvent(true);\n if (target === inputXRef.current) {\n state.setXValue(parseFloat(target.value));\n } else if (target === inputYRef.current) {\n state.setYValue(parseFloat(target.value));\n }\n };\n\n let isMobile = isIOS() || isAndroid();\n\n let value = state.getDisplayColor();\n const getAriaValueTextForChannel = useCallback(\n (channel: ColorChannel) => {\n const isAfterInput = valueChangedViaInputChangeEvent || valueChangedViaKeyboard;\n return `${\n isAfterInput\n ? stringFormatter.format('colorNameAndValue', {\n name: value.getChannelName(channel, locale),\n value: value.formatChannelValue(channel, locale)\n })\n : [\n stringFormatter.format('colorNameAndValue', {\n name: value.getChannelName(channel, locale),\n value: value.formatChannelValue(channel, locale)\n }),\n stringFormatter.format('colorNameAndValue', {\n name: value.getChannelName(channel === yChannel ? xChannel : yChannel, locale),\n value: value.formatChannelValue(channel === yChannel ? xChannel : yChannel, locale)\n }),\n stringFormatter.format('colorNameAndValue', {\n name: value.getChannelName(zChannel, locale),\n value: value.formatChannelValue(zChannel, locale)\n })\n ].join(', ')\n }, ${value.getColorName(locale)}`;\n },\n [\n locale,\n value,\n stringFormatter,\n valueChangedViaInputChangeEvent,\n valueChangedViaKeyboard,\n xChannel,\n yChannel,\n zChannel\n ]\n );\n\n let colorPickerLabel = stringFormatter.format('colorPicker');\n\n let xInputLabellingProps = useLabels({\n ...props,\n 'aria-label': ariaLabel\n ? stringFormatter.format('colorInputLabel', {\n label: ariaLabel,\n channelLabel: colorPickerLabel\n })\n : colorPickerLabel\n });\n\n let yInputLabellingProps = useLabels({\n ...props,\n 'aria-label': ariaLabel\n ? stringFormatter.format('colorInputLabel', {\n label: ariaLabel,\n channelLabel: colorPickerLabel\n })\n : colorPickerLabel\n });\n\n let colorAreaLabellingProps = useLabels(\n {\n ...props,\n 'aria-label': ariaLabel ? `${ariaLabel}, ${colorPickerLabel}` : undefined\n },\n isMobile ? colorPickerLabel : undefined\n );\n\n let ariaRoleDescription = stringFormatter.format('twoDimensionalSlider');\n\n let {visuallyHiddenProps} = useVisuallyHidden({\n style: {\n opacity: '0.0001',\n width: '100%',\n height: '100%',\n pointerEvents: 'none'\n }\n });\n\n let {colorAreaStyleProps, thumbStyleProps} = useColorAreaGradient({\n direction,\n state,\n xChannel,\n yChannel,\n zChannel\n });\n\n return {\n colorAreaProps: {\n ...colorAreaLabellingProps,\n ...colorAreaInteractions,\n ...colorAreaStyleProps,\n role: 'group'\n },\n thumbProps: {\n ...thumbInteractions,\n ...thumbStyleProps,\n role: 'presentation'\n },\n xInputProps: {\n ...xInputLabellingProps,\n ...visuallyHiddenProps,\n ...xInputFocusProps,\n type: 'range',\n min: state.value.getChannelRange(xChannel).minValue,\n max: state.value.getChannelRange(xChannel).maxValue,\n step: xChannelStep,\n 'aria-roledescription': ariaRoleDescription,\n 'aria-valuetext': getAriaValueTextForChannel(xChannel),\n 'aria-orientation': 'horizontal',\n 'aria-describedby': props['aria-describedby'],\n 'aria-details': props['aria-details'],\n disabled: isDisabled,\n value: state.value.getChannelValue(xChannel),\n name: xName,\n form,\n tabIndex: isMobile || !focusedInput || focusedInput === 'x' ? undefined : -1,\n /*\n So that only a single \"2d slider\" control shows up when listing form elements for screen readers,\n add aria-hidden=\"true\" to the unfocused control when the value has not changed via the keyboard,\n but remove aria-hidden to reveal the input for each channel when the value has changed with the keyboard.\n */\n 'aria-hidden':\n isMobile || !focusedInput || focusedInput === 'x' || valueChangedViaKeyboard\n ? undefined\n : 'true',\n onChange\n },\n yInputProps: {\n ...yInputLabellingProps,\n ...visuallyHiddenProps,\n ...yInputFocusProps,\n type: 'range',\n min: state.value.getChannelRange(yChannel).minValue,\n max: state.value.getChannelRange(yChannel).maxValue,\n step: yChannelStep,\n 'aria-roledescription': ariaRoleDescription,\n 'aria-valuetext': getAriaValueTextForChannel(yChannel),\n 'aria-orientation': 'vertical',\n 'aria-describedby': props['aria-describedby'],\n 'aria-details': props['aria-details'],\n disabled: isDisabled,\n value: state.value.getChannelValue(yChannel),\n name: yName,\n form,\n tabIndex: isMobile || focusedInput === 'y' ? undefined : -1,\n /*\n So that only a single \"2d slider\" control shows up when listing form elements for screen readers,\n add aria-hidden=\"true\" to the unfocused input when the value has not changed via the keyboard,\n but remove aria-hidden to reveal the input for each channel when the value has changed with the keyboard.\n */\n 'aria-hidden':\n isMobile || focusedInput === 'y' || valueChangedViaKeyboard ? undefined : 'true',\n onChange\n }\n };\n}\n"],"names":[],"version":3,"file":"useColorArea.mjs.map"}
@@ -3,8 +3,10 @@ var $b4f85e31b7b8044c$exports = require("../interactions/useFocusWithin.cjs");
3
3
  var $7619b0bd43420560$exports = require("../textfield/useFormattedTextField.cjs");
4
4
  var $bbab3903416f8d01$exports = require("../utils/useFormReset.cjs");
5
5
  var $7ac82d1fee77eb8a$exports = require("../utils/useId.cjs");
6
+ var $6d2f10bb8b359da5$exports = require("../interactions/useKeyboard.cjs");
6
7
  var $c162bca8afbf554a$exports = require("../interactions/useScrollWheel.cjs");
7
8
  var $fcf004be7e8533a5$exports = require("../spinbutton/useSpinButton.cjs");
9
+ var $iXcTC$reactdom = require("react-dom");
8
10
  var $iXcTC$react = require("react");
9
11
  var $iXcTC$reactstatelyprivateformuseFormValidationState = require("react-stately/private/form/useFormValidationState");
10
12
 
@@ -33,9 +35,11 @@ $parcel$export(module.exports, "useColorField", function () { return $00801e87d3
33
35
 
34
36
 
35
37
 
38
+
39
+
36
40
  function $00801e87d3dfcae5$export$77e32ca575a28fdf(props, state, ref) {
37
- let { isDisabled: isDisabled, isReadOnly: isReadOnly, isRequired: isRequired, isWheelDisabled: isWheelDisabled, validationBehavior: validationBehavior = 'aria' } = props;
38
- let { colorValue: colorValue, inputValue: inputValue, increment: increment, decrement: decrement, incrementToMax: incrementToMax, decrementToMin: decrementToMin, commit: commit } = state;
41
+ let { isDisabled: isDisabled, isReadOnly: isReadOnly, isRequired: isRequired, isWheelDisabled: isWheelDisabled, validationBehavior: validationBehavior = 'aria', onKeyDown: onKeyDown, onKeyUp: onKeyUp } = props;
42
+ let { colorValue: colorValue, inputValue: inputValue, increment: increment, decrement: decrement, incrementToMax: incrementToMax, decrementToMin: decrementToMin, commit: commit, commitValidation: commitValidation } = state;
39
43
  let inputId = (0, $7ac82d1fee77eb8a$exports.useId)();
40
44
  let { spinButtonProps: spinButtonProps } = (0, $fcf004be7e8533a5$exports.useSpinButton)({
41
45
  isDisabled: isDisabled,
@@ -69,6 +73,22 @@ function $00801e87d3dfcae5$export$77e32ca575a28fdf(props, state, ref) {
69
73
  onScroll: onWheel,
70
74
  isDisabled: scrollingDisabled
71
75
  }, ref);
76
+ let { keyboardProps: keyboardProps } = (0, $6d2f10bb8b359da5$exports.useKeyboard)({
77
+ isDisabled: isDisabled || isReadOnly,
78
+ shortcuts: {
79
+ Enter: ()=>{
80
+ (0, $iXcTC$reactdom.flushSync)(()=>{
81
+ commit();
82
+ });
83
+ commitValidation();
84
+ return {
85
+ shouldPreventDefault: false
86
+ };
87
+ }
88
+ },
89
+ onKeyDown: onKeyDown,
90
+ onKeyUp: onKeyUp
91
+ });
72
92
  let onChange = (value)=>{
73
93
  if (state.validate(value)) state.setInputValue(value);
74
94
  };
@@ -83,10 +103,12 @@ function $00801e87d3dfcae5$export$77e32ca575a28fdf(props, state, ref) {
83
103
  [(0, $iXcTC$reactstatelyprivateformuseFormValidationState.privateValidationStateProp)]: state,
84
104
  type: 'text',
85
105
  autoComplete: 'off',
86
- onChange: onChange
106
+ onChange: onChange,
107
+ onKeyDown: undefined,
108
+ onKeyUp: undefined
87
109
  }, state, ref);
88
110
  (0, $bbab3903416f8d01$exports.useFormReset)(ref, state.defaultColorValue, state.setColorValue);
89
- inputProps = (0, $89b39774f3b79dbb$exports.mergeProps)(inputProps, spinButtonProps, focusWithinProps, {
111
+ inputProps = (0, $89b39774f3b79dbb$exports.mergeProps)(keyboardProps, inputProps, spinButtonProps, focusWithinProps, {
90
112
  role: 'textbox',
91
113
  'aria-valuemax': null,
92
114
  'aria-valuemin': null,
@@ -1 +1 @@
1
- {"mappings":";;;;;;;;;;;;;;;;AAAA;;;;;;;;;;CAUC;;;;;;;;;AAyDM,SAAS,0CACd,KAA0B,EAC1B,KAAsB,EACtB,GAAuC;IAEvC,IAAI,cAAC,UAAU,cAAE,UAAU,cAAE,UAAU,mBAAE,eAAe,sBAAE,qBAAqB,QAAO,GAAG;IAEzF,IAAI,cAAC,UAAU,cAAE,UAAU,aAAE,SAAS,aAAE,SAAS,kBAAE,cAAc,kBAAE,cAAc,UAAE,MAAM,EAAC,GACxF;IAEF,IAAI,UAAU,CAAA,GAAA,+BAAI;IAClB,IAAI,mBAAC,eAAe,EAAC,GAAG,CAAA,GAAA,uCAAY,EAAE;oBACpC;oBACA;oBACA;QACA,UAAU;QACV,UAAU;QACV,aAAa;QACb,kBAAkB;QAClB,aAAa;QACb,kBAAkB;QAClB,OAAO,aAAa,WAAW,QAAQ,KAAK;QAC5C,WAAW,aAAa,WAAW,QAAQ,CAAC,SAAS;IACvD;IAEA,IAAI,CAAC,aAAa,eAAe,GAAG,CAAA,GAAA,qBAAO,EAAE;IAC7C,IAAI,oBAAC,gBAAgB,EAAC,GAAG,CAAA,GAAA,wCAAa,EAAE;oBAAC;QAAY,qBAAqB;IAAc;IAExF,IAAI,UAAU,CAAA,GAAA,wBAAU,EACtB,CAAA;QACE,IAAI,KAAK,GAAG,CAAC,EAAE,MAAM,KAAK,KAAK,GAAG,CAAC,EAAE,MAAM,GACzC;QAEF,IAAI,EAAE,MAAM,GAAG,GACb;aACK,IAAI,EAAE,MAAM,GAAG,GACpB;IAEJ,GACA;QAAC;QAAW;KAAU;IAExB,mEAAmE;IACnE,IAAI,oBAAoB,mBAAmB,cAAc,cAAc,CAAC;IACxE,CAAA,GAAA,wCAAa,EAAE;QAAC,UAAU;QAAS,YAAY;IAAiB,GAAG;IAEnE,IAAI,WAAW,CAAA;QACb,IAAI,MAAM,QAAQ,CAAC,QACjB,MAAM,aAAa,CAAC;IAExB;IAEA,IAAI,cAAC,UAAU,EAAE,GAAG,YAAW,GAAG,CAAA,GAAA,+CAAoB,EACpD;QACE,GAAG,KAAK;QACR,IAAI;QACJ,OAAO;QACP,iFAAiF;QACjF,oCAAoC;QACpC,cAAc;QACd,UAAU;QACV,CAAC,CAAA,GAAA,+EAAyB,EAAE,EAAE;QAC9B,MAAM;QACN,cAAc;kBACd;IACF,GACA,OACA;IAGF,CAAA,GAAA,sCAAW,EAAE,KAAK,MAAM,iBAAiB,EAAE,MAAM,aAAa;IAE9D,aAAa,CAAA,GAAA,oCAAS,EAAE,YAAY,iBAAiB,kBAAkB;QACrE,MAAM;QACN,iBAAiB;QACjB,iBAAiB;QACjB,iBAAiB;QACjB,kBAAkB;QAClB,aAAa;QACb,YAAY;QACZ,QAAQ;IACV;IAEA,IAAI,uBAAuB,UACzB,UAAU,CAAC,gBAAgB,GAAG;IAGhC,OAAO;oBACL;QACA,GAAG,UAAU;IACf;AACF","sources":["packages/react-aria/src/color/useColorField.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 {\n AriaLabelingProps,\n AriaValidationProps,\n DOMAttributes,\n FocusableDOMProps,\n TextInputDOMProps,\n ValidationResult\n} from '@react-types/shared';\nimport {ColorFieldProps, ColorFieldState} from 'react-stately/useColorFieldState';\nimport {InputHTMLAttributes, LabelHTMLAttributes, RefObject, useCallback, useState} from 'react';\nimport {mergeProps} from '../utils/mergeProps';\nimport {privateValidationStateProp} from 'react-stately/private/form/useFormValidationState';\nimport {useFocusWithin} from '../interactions/useFocusWithin';\nimport {useFormattedTextField} from '../textfield/useFormattedTextField';\nimport {useFormReset} from '../utils/useFormReset';\nimport {useId} from '../utils/useId';\nimport {useScrollWheel} from '../interactions/useScrollWheel';\nimport {useSpinButton} from '../spinbutton/useSpinButton';\n\nexport interface AriaColorFieldProps\n extends\n ColorFieldProps,\n AriaLabelingProps,\n FocusableDOMProps,\n Omit<\n TextInputDOMProps,\n | 'minLength'\n | 'maxLength'\n | 'pattern'\n | 'type'\n | 'inputMode'\n | 'autoComplete'\n | 'autoCorrect'\n | 'spellCheck'\n >,\n AriaValidationProps {\n /** Enables or disables changing the value with scroll. */\n isWheelDisabled?: boolean;\n}\n\nexport interface ColorFieldAria extends ValidationResult {\n /** Props for the label element. */\n labelProps: LabelHTMLAttributes<HTMLLabelElement>;\n /** Props for the input element. */\n inputProps: InputHTMLAttributes<HTMLInputElement>;\n /** Props for the text field's description element, if any. */\n descriptionProps: DOMAttributes;\n /** Props for the text field's error message element, if any. */\n errorMessageProps: DOMAttributes;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a color field component.\n * Color fields allow users to enter and adjust a hex color value.\n */\nexport function useColorField(\n props: AriaColorFieldProps,\n state: ColorFieldState,\n ref: RefObject<HTMLInputElement | null>\n): ColorFieldAria {\n let {isDisabled, isReadOnly, isRequired, isWheelDisabled, validationBehavior = 'aria'} = props;\n\n let {colorValue, inputValue, increment, decrement, incrementToMax, decrementToMin, commit} =\n state;\n\n let inputId = useId();\n let {spinButtonProps} = useSpinButton({\n isDisabled,\n isReadOnly,\n isRequired,\n maxValue: 0xffffff,\n minValue: 0,\n onIncrement: increment,\n onIncrementToMax: incrementToMax,\n onDecrement: decrement,\n onDecrementToMin: decrementToMin,\n value: colorValue ? colorValue.toHexInt() : undefined,\n textValue: colorValue ? colorValue.toString('hex') : undefined\n });\n\n let [focusWithin, setFocusWithin] = useState(false);\n let {focusWithinProps} = useFocusWithin({isDisabled, onFocusWithinChange: setFocusWithin});\n\n let onWheel = useCallback(\n e => {\n if (Math.abs(e.deltaY) <= Math.abs(e.deltaX)) {\n return;\n }\n if (e.deltaY > 0) {\n increment();\n } else if (e.deltaY < 0) {\n decrement();\n }\n },\n [decrement, increment]\n );\n // If the input isn't supposed to receive input, disable scrolling.\n let scrollingDisabled = isWheelDisabled || isDisabled || isReadOnly || !focusWithin;\n useScrollWheel({onScroll: onWheel, isDisabled: scrollingDisabled}, ref);\n\n let onChange = value => {\n if (state.validate(value)) {\n state.setInputValue(value);\n }\n };\n\n let {inputProps, ...otherProps} = useFormattedTextField(\n {\n ...props,\n id: inputId,\n value: inputValue,\n // Intentionally invalid value that will be ignored by onChange during form reset\n // This is handled separately below.\n defaultValue: '!',\n validate: undefined,\n [privateValidationStateProp]: state,\n type: 'text',\n autoComplete: 'off',\n onChange\n },\n state,\n ref\n );\n\n useFormReset(ref, state.defaultColorValue, state.setColorValue);\n\n inputProps = mergeProps(inputProps, spinButtonProps, focusWithinProps, {\n role: 'textbox',\n 'aria-valuemax': null,\n 'aria-valuemin': null,\n 'aria-valuenow': null,\n 'aria-valuetext': null,\n autoCorrect: 'off',\n spellCheck: 'false',\n onBlur: commit\n });\n\n if (validationBehavior === 'native') {\n inputProps['aria-required'] = undefined;\n }\n\n return {\n inputProps,\n ...otherProps\n };\n}\n"],"names":[],"version":3,"file":"useColorField.cjs.map"}
1
+ {"mappings":";;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;CAUC;;;;;;;;;;;AA2DM,SAAS,0CACd,KAA0B,EAC1B,KAAsB,EACtB,GAAuC;IAEvC,IAAI,cACF,UAAU,cACV,UAAU,cACV,UAAU,mBACV,eAAe,sBACf,qBAAqB,mBACrB,SAAS,WACT,OAAO,EACR,GAAG;IAEJ,IAAI,cACF,UAAU,cACV,UAAU,aACV,SAAS,aACT,SAAS,kBACT,cAAc,kBACd,cAAc,UACd,MAAM,oBACN,gBAAgB,EACjB,GAAG;IAEJ,IAAI,UAAU,CAAA,GAAA,+BAAI;IAClB,IAAI,mBAAC,eAAe,EAAC,GAAG,CAAA,GAAA,uCAAY,EAAE;oBACpC;oBACA;oBACA;QACA,UAAU;QACV,UAAU;QACV,aAAa;QACb,kBAAkB;QAClB,aAAa;QACb,kBAAkB;QAClB,OAAO,aAAa,WAAW,QAAQ,KAAK;QAC5C,WAAW,aAAa,WAAW,QAAQ,CAAC,SAAS;IACvD;IAEA,IAAI,CAAC,aAAa,eAAe,GAAG,CAAA,GAAA,qBAAO,EAAE;IAC7C,IAAI,oBAAC,gBAAgB,EAAC,GAAG,CAAA,GAAA,wCAAa,EAAE;oBAAC;QAAY,qBAAqB;IAAc;IAExF,IAAI,UAAU,CAAA,GAAA,wBAAU,EACtB,CAAA;QACE,IAAI,KAAK,GAAG,CAAC,EAAE,MAAM,KAAK,KAAK,GAAG,CAAC,EAAE,MAAM,GACzC;QAEF,IAAI,EAAE,MAAM,GAAG,GACb;aACK,IAAI,EAAE,MAAM,GAAG,GACpB;IAEJ,GACA;QAAC;QAAW;KAAU;IAExB,mEAAmE;IACnE,IAAI,oBAAoB,mBAAmB,cAAc,cAAc,CAAC;IACxE,CAAA,GAAA,wCAAa,EAAE;QAAC,UAAU;QAAS,YAAY;IAAiB,GAAG;IAEnE,IAAI,iBAAC,aAAa,EAAC,GAAG,CAAA,GAAA,qCAAU,EAAE;QAChC,YAAY,cAAc;QAC1B,WAAW;YACT,OAAO;gBACL,CAAA,GAAA,yBAAQ,EAAE;oBACR;gBACF;gBACA;gBACA,OAAO;oBAAC,sBAAsB;gBAAK;YACrC;QACF;mBACA;iBACA;IACF;IAEA,IAAI,WAAW,CAAA;QACb,IAAI,MAAM,QAAQ,CAAC,QACjB,MAAM,aAAa,CAAC;IAExB;IAEA,IAAI,cAAC,UAAU,EAAE,GAAG,YAAW,GAAG,CAAA,GAAA,+CAAoB,EACpD;QACE,GAAG,KAAK;QACR,IAAI;QACJ,OAAO;QACP,iFAAiF;QACjF,oCAAoC;QACpC,cAAc;QACd,UAAU;QACV,CAAC,CAAA,GAAA,+EAAyB,EAAE,EAAE;QAC9B,MAAM;QACN,cAAc;kBACd;QACA,WAAW;QACX,SAAS;IACX,GACA,OACA;IAGF,CAAA,GAAA,sCAAW,EAAE,KAAK,MAAM,iBAAiB,EAAE,MAAM,aAAa;IAE9D,aAAa,CAAA,GAAA,oCAAS,EAAE,eAAe,YAAY,iBAAiB,kBAAkB;QACpF,MAAM;QACN,iBAAiB;QACjB,iBAAiB;QACjB,iBAAiB;QACjB,kBAAkB;QAClB,aAAa;QACb,YAAY;QACZ,QAAQ;IACV;IAEA,IAAI,uBAAuB,UACzB,UAAU,CAAC,gBAAgB,GAAG;IAGhC,OAAO;oBACL;QACA,GAAG,UAAU;IACf;AACF","sources":["packages/react-aria/src/color/useColorField.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 {\n AriaLabelingProps,\n AriaValidationProps,\n DOMAttributes,\n FocusableDOMProps,\n TextInputDOMProps,\n ValidationResult\n} from '@react-types/shared';\nimport {ColorFieldProps, ColorFieldState} from 'react-stately/useColorFieldState';\nimport {flushSync} from 'react-dom';\nimport {InputHTMLAttributes, LabelHTMLAttributes, RefObject, useCallback, useState} from 'react';\nimport {mergeProps} from '../utils/mergeProps';\nimport {privateValidationStateProp} from 'react-stately/private/form/useFormValidationState';\nimport {useFocusWithin} from '../interactions/useFocusWithin';\nimport {useFormattedTextField} from '../textfield/useFormattedTextField';\nimport {useFormReset} from '../utils/useFormReset';\nimport {useId} from '../utils/useId';\nimport {useKeyboard} from '../interactions/useKeyboard';\nimport {useScrollWheel} from '../interactions/useScrollWheel';\nimport {useSpinButton} from '../spinbutton/useSpinButton';\n\nexport interface AriaColorFieldProps\n extends\n ColorFieldProps,\n AriaLabelingProps,\n FocusableDOMProps,\n Omit<\n TextInputDOMProps,\n | 'minLength'\n | 'maxLength'\n | 'pattern'\n | 'type'\n | 'inputMode'\n | 'autoComplete'\n | 'autoCorrect'\n | 'spellCheck'\n >,\n AriaValidationProps {\n /** Enables or disables changing the value with scroll. */\n isWheelDisabled?: boolean;\n}\n\nexport interface ColorFieldAria extends ValidationResult {\n /** Props for the label element. */\n labelProps: LabelHTMLAttributes<HTMLLabelElement>;\n /** Props for the input element. */\n inputProps: InputHTMLAttributes<HTMLInputElement>;\n /** Props for the text field's description element, if any. */\n descriptionProps: DOMAttributes;\n /** Props for the text field's error message element, if any. */\n errorMessageProps: DOMAttributes;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a color field component.\n * Color fields allow users to enter and adjust a hex color value.\n */\nexport function useColorField(\n props: AriaColorFieldProps,\n state: ColorFieldState,\n ref: RefObject<HTMLInputElement | null>\n): ColorFieldAria {\n let {\n isDisabled,\n isReadOnly,\n isRequired,\n isWheelDisabled,\n validationBehavior = 'aria',\n onKeyDown,\n onKeyUp\n } = props;\n\n let {\n colorValue,\n inputValue,\n increment,\n decrement,\n incrementToMax,\n decrementToMin,\n commit,\n commitValidation\n } = state;\n\n let inputId = useId();\n let {spinButtonProps} = useSpinButton({\n isDisabled,\n isReadOnly,\n isRequired,\n maxValue: 0xffffff,\n minValue: 0,\n onIncrement: increment,\n onIncrementToMax: incrementToMax,\n onDecrement: decrement,\n onDecrementToMin: decrementToMin,\n value: colorValue ? colorValue.toHexInt() : undefined,\n textValue: colorValue ? colorValue.toString('hex') : undefined\n });\n\n let [focusWithin, setFocusWithin] = useState(false);\n let {focusWithinProps} = useFocusWithin({isDisabled, onFocusWithinChange: setFocusWithin});\n\n let onWheel = useCallback(\n e => {\n if (Math.abs(e.deltaY) <= Math.abs(e.deltaX)) {\n return;\n }\n if (e.deltaY > 0) {\n increment();\n } else if (e.deltaY < 0) {\n decrement();\n }\n },\n [decrement, increment]\n );\n // If the input isn't supposed to receive input, disable scrolling.\n let scrollingDisabled = isWheelDisabled || isDisabled || isReadOnly || !focusWithin;\n useScrollWheel({onScroll: onWheel, isDisabled: scrollingDisabled}, ref);\n\n let {keyboardProps} = useKeyboard({\n isDisabled: isDisabled || isReadOnly,\n shortcuts: {\n Enter: () => {\n flushSync(() => {\n commit();\n });\n commitValidation();\n return {shouldPreventDefault: false};\n }\n },\n onKeyDown,\n onKeyUp\n });\n\n let onChange = value => {\n if (state.validate(value)) {\n state.setInputValue(value);\n }\n };\n\n let {inputProps, ...otherProps} = useFormattedTextField(\n {\n ...props,\n id: inputId,\n value: inputValue,\n // Intentionally invalid value that will be ignored by onChange during form reset\n // This is handled separately below.\n defaultValue: '!',\n validate: undefined,\n [privateValidationStateProp]: state,\n type: 'text',\n autoComplete: 'off',\n onChange,\n onKeyDown: undefined,\n onKeyUp: undefined\n },\n state,\n ref\n );\n\n useFormReset(ref, state.defaultColorValue, state.setColorValue);\n\n inputProps = mergeProps(keyboardProps, inputProps, spinButtonProps, focusWithinProps, {\n role: 'textbox',\n 'aria-valuemax': null,\n 'aria-valuemin': null,\n 'aria-valuenow': null,\n 'aria-valuetext': null,\n autoCorrect: 'off',\n spellCheck: 'false',\n onBlur: commit\n });\n\n if (validationBehavior === 'native') {\n inputProps['aria-required'] = undefined;\n }\n\n return {\n inputProps,\n ...otherProps\n };\n}\n"],"names":[],"version":3,"file":"useColorField.cjs.map"}
@@ -3,8 +3,10 @@ import {useFocusWithin as $b842b95ed9b5d4d5$export$420e68273165f4ec} from "../in
3
3
  import {useFormattedTextField as $a97100a6dd40f368$export$4f384c9210e583c3} from "../textfield/useFormattedTextField.js";
4
4
  import {useFormReset as $5dfd40f1661a7fc3$export$5add1d006293d136} from "../utils/useFormReset.js";
5
5
  import {useId as $0292efe68908de6b$export$f680877a34711e37} from "../utils/useId.js";
6
+ import {useKeyboard as $bf74df7506f65576$export$8f71654801c2f7cd} from "../interactions/useKeyboard.js";
6
7
  import {useScrollWheel as $387080635b69cb2d$export$2123ff2b87c81ca} from "../interactions/useScrollWheel.js";
7
8
  import {useSpinButton as $b36f0efc8d77b16f$export$e908e06f4b8e3402} from "../spinbutton/useSpinButton.js";
9
+ import {flushSync as $j4wZN$flushSync} from "react-dom";
8
10
  import {useState as $j4wZN$useState, useCallback as $j4wZN$useCallback} from "react";
9
11
  import {privateValidationStateProp as $j4wZN$privateValidationStateProp} from "react-stately/private/form/useFormValidationState";
10
12
 
@@ -27,9 +29,11 @@ import {privateValidationStateProp as $j4wZN$privateValidationStateProp} from "r
27
29
 
28
30
 
29
31
 
32
+
33
+
30
34
  function $23951a0914b6cb31$export$77e32ca575a28fdf(props, state, ref) {
31
- let { isDisabled: isDisabled, isReadOnly: isReadOnly, isRequired: isRequired, isWheelDisabled: isWheelDisabled, validationBehavior: validationBehavior = 'aria' } = props;
32
- let { colorValue: colorValue, inputValue: inputValue, increment: increment, decrement: decrement, incrementToMax: incrementToMax, decrementToMin: decrementToMin, commit: commit } = state;
35
+ let { isDisabled: isDisabled, isReadOnly: isReadOnly, isRequired: isRequired, isWheelDisabled: isWheelDisabled, validationBehavior: validationBehavior = 'aria', onKeyDown: onKeyDown, onKeyUp: onKeyUp } = props;
36
+ let { colorValue: colorValue, inputValue: inputValue, increment: increment, decrement: decrement, incrementToMax: incrementToMax, decrementToMin: decrementToMin, commit: commit, commitValidation: commitValidation } = state;
33
37
  let inputId = (0, $0292efe68908de6b$export$f680877a34711e37)();
34
38
  let { spinButtonProps: spinButtonProps } = (0, $b36f0efc8d77b16f$export$e908e06f4b8e3402)({
35
39
  isDisabled: isDisabled,
@@ -63,6 +67,22 @@ function $23951a0914b6cb31$export$77e32ca575a28fdf(props, state, ref) {
63
67
  onScroll: onWheel,
64
68
  isDisabled: scrollingDisabled
65
69
  }, ref);
70
+ let { keyboardProps: keyboardProps } = (0, $bf74df7506f65576$export$8f71654801c2f7cd)({
71
+ isDisabled: isDisabled || isReadOnly,
72
+ shortcuts: {
73
+ Enter: ()=>{
74
+ (0, $j4wZN$flushSync)(()=>{
75
+ commit();
76
+ });
77
+ commitValidation();
78
+ return {
79
+ shouldPreventDefault: false
80
+ };
81
+ }
82
+ },
83
+ onKeyDown: onKeyDown,
84
+ onKeyUp: onKeyUp
85
+ });
66
86
  let onChange = (value)=>{
67
87
  if (state.validate(value)) state.setInputValue(value);
68
88
  };
@@ -77,10 +97,12 @@ function $23951a0914b6cb31$export$77e32ca575a28fdf(props, state, ref) {
77
97
  [(0, $j4wZN$privateValidationStateProp)]: state,
78
98
  type: 'text',
79
99
  autoComplete: 'off',
80
- onChange: onChange
100
+ onChange: onChange,
101
+ onKeyDown: undefined,
102
+ onKeyUp: undefined
81
103
  }, state, ref);
82
104
  (0, $5dfd40f1661a7fc3$export$5add1d006293d136)(ref, state.defaultColorValue, state.setColorValue);
83
- inputProps = (0, $64c36edd757dfa16$export$9d1611c77c2fe928)(inputProps, spinButtonProps, focusWithinProps, {
105
+ inputProps = (0, $64c36edd757dfa16$export$9d1611c77c2fe928)(keyboardProps, inputProps, spinButtonProps, focusWithinProps, {
84
106
  role: 'textbox',
85
107
  'aria-valuemax': null,
86
108
  'aria-valuemin': null,
@@ -1 +1 @@
1
- {"mappings":";;;;;;;;;;AAAA;;;;;;;;;;CAUC;;;;;;;;;AAyDM,SAAS,0CACd,KAA0B,EAC1B,KAAsB,EACtB,GAAuC;IAEvC,IAAI,cAAC,UAAU,cAAE,UAAU,cAAE,UAAU,mBAAE,eAAe,sBAAE,qBAAqB,QAAO,GAAG;IAEzF,IAAI,cAAC,UAAU,cAAE,UAAU,aAAE,SAAS,aAAE,SAAS,kBAAE,cAAc,kBAAE,cAAc,UAAE,MAAM,EAAC,GACxF;IAEF,IAAI,UAAU,CAAA,GAAA,yCAAI;IAClB,IAAI,mBAAC,eAAe,EAAC,GAAG,CAAA,GAAA,yCAAY,EAAE;oBACpC;oBACA;oBACA;QACA,UAAU;QACV,UAAU;QACV,aAAa;QACb,kBAAkB;QAClB,aAAa;QACb,kBAAkB;QAClB,OAAO,aAAa,WAAW,QAAQ,KAAK;QAC5C,WAAW,aAAa,WAAW,QAAQ,CAAC,SAAS;IACvD;IAEA,IAAI,CAAC,aAAa,eAAe,GAAG,CAAA,GAAA,eAAO,EAAE;IAC7C,IAAI,oBAAC,gBAAgB,EAAC,GAAG,CAAA,GAAA,yCAAa,EAAE;oBAAC;QAAY,qBAAqB;IAAc;IAExF,IAAI,UAAU,CAAA,GAAA,kBAAU,EACtB,CAAA;QACE,IAAI,KAAK,GAAG,CAAC,EAAE,MAAM,KAAK,KAAK,GAAG,CAAC,EAAE,MAAM,GACzC;QAEF,IAAI,EAAE,MAAM,GAAG,GACb;aACK,IAAI,EAAE,MAAM,GAAG,GACpB;IAEJ,GACA;QAAC;QAAW;KAAU;IAExB,mEAAmE;IACnE,IAAI,oBAAoB,mBAAmB,cAAc,cAAc,CAAC;IACxE,CAAA,GAAA,wCAAa,EAAE;QAAC,UAAU;QAAS,YAAY;IAAiB,GAAG;IAEnE,IAAI,WAAW,CAAA;QACb,IAAI,MAAM,QAAQ,CAAC,QACjB,MAAM,aAAa,CAAC;IAExB;IAEA,IAAI,cAAC,UAAU,EAAE,GAAG,YAAW,GAAG,CAAA,GAAA,yCAAoB,EACpD;QACE,GAAG,KAAK;QACR,IAAI;QACJ,OAAO;QACP,iFAAiF;QACjF,oCAAoC;QACpC,cAAc;QACd,UAAU;QACV,CAAC,CAAA,GAAA,iCAAyB,EAAE,EAAE;QAC9B,MAAM;QACN,cAAc;kBACd;IACF,GACA,OACA;IAGF,CAAA,GAAA,yCAAW,EAAE,KAAK,MAAM,iBAAiB,EAAE,MAAM,aAAa;IAE9D,aAAa,CAAA,GAAA,yCAAS,EAAE,YAAY,iBAAiB,kBAAkB;QACrE,MAAM;QACN,iBAAiB;QACjB,iBAAiB;QACjB,iBAAiB;QACjB,kBAAkB;QAClB,aAAa;QACb,YAAY;QACZ,QAAQ;IACV;IAEA,IAAI,uBAAuB,UACzB,UAAU,CAAC,gBAAgB,GAAG;IAGhC,OAAO;oBACL;QACA,GAAG,UAAU;IACf;AACF","sources":["packages/react-aria/src/color/useColorField.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 {\n AriaLabelingProps,\n AriaValidationProps,\n DOMAttributes,\n FocusableDOMProps,\n TextInputDOMProps,\n ValidationResult\n} from '@react-types/shared';\nimport {ColorFieldProps, ColorFieldState} from 'react-stately/useColorFieldState';\nimport {InputHTMLAttributes, LabelHTMLAttributes, RefObject, useCallback, useState} from 'react';\nimport {mergeProps} from '../utils/mergeProps';\nimport {privateValidationStateProp} from 'react-stately/private/form/useFormValidationState';\nimport {useFocusWithin} from '../interactions/useFocusWithin';\nimport {useFormattedTextField} from '../textfield/useFormattedTextField';\nimport {useFormReset} from '../utils/useFormReset';\nimport {useId} from '../utils/useId';\nimport {useScrollWheel} from '../interactions/useScrollWheel';\nimport {useSpinButton} from '../spinbutton/useSpinButton';\n\nexport interface AriaColorFieldProps\n extends\n ColorFieldProps,\n AriaLabelingProps,\n FocusableDOMProps,\n Omit<\n TextInputDOMProps,\n | 'minLength'\n | 'maxLength'\n | 'pattern'\n | 'type'\n | 'inputMode'\n | 'autoComplete'\n | 'autoCorrect'\n | 'spellCheck'\n >,\n AriaValidationProps {\n /** Enables or disables changing the value with scroll. */\n isWheelDisabled?: boolean;\n}\n\nexport interface ColorFieldAria extends ValidationResult {\n /** Props for the label element. */\n labelProps: LabelHTMLAttributes<HTMLLabelElement>;\n /** Props for the input element. */\n inputProps: InputHTMLAttributes<HTMLInputElement>;\n /** Props for the text field's description element, if any. */\n descriptionProps: DOMAttributes;\n /** Props for the text field's error message element, if any. */\n errorMessageProps: DOMAttributes;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a color field component.\n * Color fields allow users to enter and adjust a hex color value.\n */\nexport function useColorField(\n props: AriaColorFieldProps,\n state: ColorFieldState,\n ref: RefObject<HTMLInputElement | null>\n): ColorFieldAria {\n let {isDisabled, isReadOnly, isRequired, isWheelDisabled, validationBehavior = 'aria'} = props;\n\n let {colorValue, inputValue, increment, decrement, incrementToMax, decrementToMin, commit} =\n state;\n\n let inputId = useId();\n let {spinButtonProps} = useSpinButton({\n isDisabled,\n isReadOnly,\n isRequired,\n maxValue: 0xffffff,\n minValue: 0,\n onIncrement: increment,\n onIncrementToMax: incrementToMax,\n onDecrement: decrement,\n onDecrementToMin: decrementToMin,\n value: colorValue ? colorValue.toHexInt() : undefined,\n textValue: colorValue ? colorValue.toString('hex') : undefined\n });\n\n let [focusWithin, setFocusWithin] = useState(false);\n let {focusWithinProps} = useFocusWithin({isDisabled, onFocusWithinChange: setFocusWithin});\n\n let onWheel = useCallback(\n e => {\n if (Math.abs(e.deltaY) <= Math.abs(e.deltaX)) {\n return;\n }\n if (e.deltaY > 0) {\n increment();\n } else if (e.deltaY < 0) {\n decrement();\n }\n },\n [decrement, increment]\n );\n // If the input isn't supposed to receive input, disable scrolling.\n let scrollingDisabled = isWheelDisabled || isDisabled || isReadOnly || !focusWithin;\n useScrollWheel({onScroll: onWheel, isDisabled: scrollingDisabled}, ref);\n\n let onChange = value => {\n if (state.validate(value)) {\n state.setInputValue(value);\n }\n };\n\n let {inputProps, ...otherProps} = useFormattedTextField(\n {\n ...props,\n id: inputId,\n value: inputValue,\n // Intentionally invalid value that will be ignored by onChange during form reset\n // This is handled separately below.\n defaultValue: '!',\n validate: undefined,\n [privateValidationStateProp]: state,\n type: 'text',\n autoComplete: 'off',\n onChange\n },\n state,\n ref\n );\n\n useFormReset(ref, state.defaultColorValue, state.setColorValue);\n\n inputProps = mergeProps(inputProps, spinButtonProps, focusWithinProps, {\n role: 'textbox',\n 'aria-valuemax': null,\n 'aria-valuemin': null,\n 'aria-valuenow': null,\n 'aria-valuetext': null,\n autoCorrect: 'off',\n spellCheck: 'false',\n onBlur: commit\n });\n\n if (validationBehavior === 'native') {\n inputProps['aria-required'] = undefined;\n }\n\n return {\n inputProps,\n ...otherProps\n };\n}\n"],"names":[],"version":3,"file":"useColorField.js.map"}
1
+ {"mappings":";;;;;;;;;;;;AAAA;;;;;;;;;;CAUC;;;;;;;;;;;AA2DM,SAAS,0CACd,KAA0B,EAC1B,KAAsB,EACtB,GAAuC;IAEvC,IAAI,cACF,UAAU,cACV,UAAU,cACV,UAAU,mBACV,eAAe,sBACf,qBAAqB,mBACrB,SAAS,WACT,OAAO,EACR,GAAG;IAEJ,IAAI,cACF,UAAU,cACV,UAAU,aACV,SAAS,aACT,SAAS,kBACT,cAAc,kBACd,cAAc,UACd,MAAM,oBACN,gBAAgB,EACjB,GAAG;IAEJ,IAAI,UAAU,CAAA,GAAA,yCAAI;IAClB,IAAI,mBAAC,eAAe,EAAC,GAAG,CAAA,GAAA,yCAAY,EAAE;oBACpC;oBACA;oBACA;QACA,UAAU;QACV,UAAU;QACV,aAAa;QACb,kBAAkB;QAClB,aAAa;QACb,kBAAkB;QAClB,OAAO,aAAa,WAAW,QAAQ,KAAK;QAC5C,WAAW,aAAa,WAAW,QAAQ,CAAC,SAAS;IACvD;IAEA,IAAI,CAAC,aAAa,eAAe,GAAG,CAAA,GAAA,eAAO,EAAE;IAC7C,IAAI,oBAAC,gBAAgB,EAAC,GAAG,CAAA,GAAA,yCAAa,EAAE;oBAAC;QAAY,qBAAqB;IAAc;IAExF,IAAI,UAAU,CAAA,GAAA,kBAAU,EACtB,CAAA;QACE,IAAI,KAAK,GAAG,CAAC,EAAE,MAAM,KAAK,KAAK,GAAG,CAAC,EAAE,MAAM,GACzC;QAEF,IAAI,EAAE,MAAM,GAAG,GACb;aACK,IAAI,EAAE,MAAM,GAAG,GACpB;IAEJ,GACA;QAAC;QAAW;KAAU;IAExB,mEAAmE;IACnE,IAAI,oBAAoB,mBAAmB,cAAc,cAAc,CAAC;IACxE,CAAA,GAAA,wCAAa,EAAE;QAAC,UAAU;QAAS,YAAY;IAAiB,GAAG;IAEnE,IAAI,iBAAC,aAAa,EAAC,GAAG,CAAA,GAAA,yCAAU,EAAE;QAChC,YAAY,cAAc;QAC1B,WAAW;YACT,OAAO;gBACL,CAAA,GAAA,gBAAQ,EAAE;oBACR;gBACF;gBACA;gBACA,OAAO;oBAAC,sBAAsB;gBAAK;YACrC;QACF;mBACA;iBACA;IACF;IAEA,IAAI,WAAW,CAAA;QACb,IAAI,MAAM,QAAQ,CAAC,QACjB,MAAM,aAAa,CAAC;IAExB;IAEA,IAAI,cAAC,UAAU,EAAE,GAAG,YAAW,GAAG,CAAA,GAAA,yCAAoB,EACpD;QACE,GAAG,KAAK;QACR,IAAI;QACJ,OAAO;QACP,iFAAiF;QACjF,oCAAoC;QACpC,cAAc;QACd,UAAU;QACV,CAAC,CAAA,GAAA,iCAAyB,EAAE,EAAE;QAC9B,MAAM;QACN,cAAc;kBACd;QACA,WAAW;QACX,SAAS;IACX,GACA,OACA;IAGF,CAAA,GAAA,yCAAW,EAAE,KAAK,MAAM,iBAAiB,EAAE,MAAM,aAAa;IAE9D,aAAa,CAAA,GAAA,yCAAS,EAAE,eAAe,YAAY,iBAAiB,kBAAkB;QACpF,MAAM;QACN,iBAAiB;QACjB,iBAAiB;QACjB,iBAAiB;QACjB,kBAAkB;QAClB,aAAa;QACb,YAAY;QACZ,QAAQ;IACV;IAEA,IAAI,uBAAuB,UACzB,UAAU,CAAC,gBAAgB,GAAG;IAGhC,OAAO;oBACL;QACA,GAAG,UAAU;IACf;AACF","sources":["packages/react-aria/src/color/useColorField.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 {\n AriaLabelingProps,\n AriaValidationProps,\n DOMAttributes,\n FocusableDOMProps,\n TextInputDOMProps,\n ValidationResult\n} from '@react-types/shared';\nimport {ColorFieldProps, ColorFieldState} from 'react-stately/useColorFieldState';\nimport {flushSync} from 'react-dom';\nimport {InputHTMLAttributes, LabelHTMLAttributes, RefObject, useCallback, useState} from 'react';\nimport {mergeProps} from '../utils/mergeProps';\nimport {privateValidationStateProp} from 'react-stately/private/form/useFormValidationState';\nimport {useFocusWithin} from '../interactions/useFocusWithin';\nimport {useFormattedTextField} from '../textfield/useFormattedTextField';\nimport {useFormReset} from '../utils/useFormReset';\nimport {useId} from '../utils/useId';\nimport {useKeyboard} from '../interactions/useKeyboard';\nimport {useScrollWheel} from '../interactions/useScrollWheel';\nimport {useSpinButton} from '../spinbutton/useSpinButton';\n\nexport interface AriaColorFieldProps\n extends\n ColorFieldProps,\n AriaLabelingProps,\n FocusableDOMProps,\n Omit<\n TextInputDOMProps,\n | 'minLength'\n | 'maxLength'\n | 'pattern'\n | 'type'\n | 'inputMode'\n | 'autoComplete'\n | 'autoCorrect'\n | 'spellCheck'\n >,\n AriaValidationProps {\n /** Enables or disables changing the value with scroll. */\n isWheelDisabled?: boolean;\n}\n\nexport interface ColorFieldAria extends ValidationResult {\n /** Props for the label element. */\n labelProps: LabelHTMLAttributes<HTMLLabelElement>;\n /** Props for the input element. */\n inputProps: InputHTMLAttributes<HTMLInputElement>;\n /** Props for the text field's description element, if any. */\n descriptionProps: DOMAttributes;\n /** Props for the text field's error message element, if any. */\n errorMessageProps: DOMAttributes;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a color field component.\n * Color fields allow users to enter and adjust a hex color value.\n */\nexport function useColorField(\n props: AriaColorFieldProps,\n state: ColorFieldState,\n ref: RefObject<HTMLInputElement | null>\n): ColorFieldAria {\n let {\n isDisabled,\n isReadOnly,\n isRequired,\n isWheelDisabled,\n validationBehavior = 'aria',\n onKeyDown,\n onKeyUp\n } = props;\n\n let {\n colorValue,\n inputValue,\n increment,\n decrement,\n incrementToMax,\n decrementToMin,\n commit,\n commitValidation\n } = state;\n\n let inputId = useId();\n let {spinButtonProps} = useSpinButton({\n isDisabled,\n isReadOnly,\n isRequired,\n maxValue: 0xffffff,\n minValue: 0,\n onIncrement: increment,\n onIncrementToMax: incrementToMax,\n onDecrement: decrement,\n onDecrementToMin: decrementToMin,\n value: colorValue ? colorValue.toHexInt() : undefined,\n textValue: colorValue ? colorValue.toString('hex') : undefined\n });\n\n let [focusWithin, setFocusWithin] = useState(false);\n let {focusWithinProps} = useFocusWithin({isDisabled, onFocusWithinChange: setFocusWithin});\n\n let onWheel = useCallback(\n e => {\n if (Math.abs(e.deltaY) <= Math.abs(e.deltaX)) {\n return;\n }\n if (e.deltaY > 0) {\n increment();\n } else if (e.deltaY < 0) {\n decrement();\n }\n },\n [decrement, increment]\n );\n // If the input isn't supposed to receive input, disable scrolling.\n let scrollingDisabled = isWheelDisabled || isDisabled || isReadOnly || !focusWithin;\n useScrollWheel({onScroll: onWheel, isDisabled: scrollingDisabled}, ref);\n\n let {keyboardProps} = useKeyboard({\n isDisabled: isDisabled || isReadOnly,\n shortcuts: {\n Enter: () => {\n flushSync(() => {\n commit();\n });\n commitValidation();\n return {shouldPreventDefault: false};\n }\n },\n onKeyDown,\n onKeyUp\n });\n\n let onChange = value => {\n if (state.validate(value)) {\n state.setInputValue(value);\n }\n };\n\n let {inputProps, ...otherProps} = useFormattedTextField(\n {\n ...props,\n id: inputId,\n value: inputValue,\n // Intentionally invalid value that will be ignored by onChange during form reset\n // This is handled separately below.\n defaultValue: '!',\n validate: undefined,\n [privateValidationStateProp]: state,\n type: 'text',\n autoComplete: 'off',\n onChange,\n onKeyDown: undefined,\n onKeyUp: undefined\n },\n state,\n ref\n );\n\n useFormReset(ref, state.defaultColorValue, state.setColorValue);\n\n inputProps = mergeProps(keyboardProps, inputProps, spinButtonProps, focusWithinProps, {\n role: 'textbox',\n 'aria-valuemax': null,\n 'aria-valuemin': null,\n 'aria-valuenow': null,\n 'aria-valuetext': null,\n autoCorrect: 'off',\n spellCheck: 'false',\n onBlur: commit\n });\n\n if (validationBehavior === 'native') {\n inputProps['aria-required'] = undefined;\n }\n\n return {\n inputProps,\n ...otherProps\n };\n}\n"],"names":[],"version":3,"file":"useColorField.js.map"}