react-aria 3.49.0 → 3.51.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1301) hide show
  1. package/dist/exports/index.cjs +15 -0
  2. package/dist/exports/index.cjs.map +1 -1
  3. package/dist/exports/index.js +9 -1
  4. package/dist/exports/index.js.map +1 -1
  5. package/dist/exports/index.mjs +9 -1
  6. package/dist/exports/index.mjs.map +1 -1
  7. package/dist/exports/private/utils/domHelpers.cjs +1 -0
  8. package/dist/exports/private/utils/domHelpers.cjs.map +1 -1
  9. package/dist/exports/private/utils/domHelpers.js +2 -2
  10. package/dist/exports/private/utils/domHelpers.js.map +1 -1
  11. package/dist/exports/private/utils/domHelpers.mjs +2 -2
  12. package/dist/exports/private/utils/domHelpers.mjs.map +1 -1
  13. package/dist/exports/private/utils/platform.cjs +1 -0
  14. package/dist/exports/private/utils/platform.cjs.map +1 -1
  15. package/dist/exports/private/utils/platform.js +2 -2
  16. package/dist/exports/private/utils/platform.js.map +1 -1
  17. package/dist/exports/private/utils/platform.mjs +2 -2
  18. package/dist/exports/private/utils/platform.mjs.map +1 -1
  19. package/dist/exports/private/utils/shadowdom/DOMFunctions.cjs +1 -0
  20. package/dist/exports/private/utils/shadowdom/DOMFunctions.cjs.map +1 -1
  21. package/dist/exports/private/utils/shadowdom/DOMFunctions.js +2 -2
  22. package/dist/exports/private/utils/shadowdom/DOMFunctions.js.map +1 -1
  23. package/dist/exports/private/utils/shadowdom/DOMFunctions.mjs +2 -2
  24. package/dist/exports/private/utils/shadowdom/DOMFunctions.mjs.map +1 -1
  25. package/dist/exports/useContextMenu.cjs +22 -0
  26. package/dist/exports/useContextMenu.cjs.map +1 -0
  27. package/dist/exports/useContextMenu.js +17 -0
  28. package/dist/exports/useContextMenu.js.map +1 -0
  29. package/dist/exports/useContextMenu.mjs +17 -0
  30. package/dist/exports/useContextMenu.mjs.map +1 -0
  31. package/dist/exports/usePreviewTrigger.cjs +22 -0
  32. package/dist/exports/usePreviewTrigger.cjs.map +1 -0
  33. package/dist/exports/usePreviewTrigger.js +17 -0
  34. package/dist/exports/usePreviewTrigger.js.map +1 -0
  35. package/dist/exports/usePreviewTrigger.mjs +17 -0
  36. package/dist/exports/usePreviewTrigger.mjs.map +1 -0
  37. package/dist/exports/useTokenField.cjs +27 -0
  38. package/dist/exports/useTokenField.cjs.map +1 -0
  39. package/dist/exports/useTokenField.js +19 -0
  40. package/dist/exports/useTokenField.js.map +1 -0
  41. package/dist/exports/useTokenField.mjs +19 -0
  42. package/dist/exports/useTokenField.mjs.map +1 -0
  43. package/dist/private/actiongroup/useActionGroup.cjs +24 -19
  44. package/dist/private/actiongroup/useActionGroup.cjs.map +1 -1
  45. package/dist/private/actiongroup/useActionGroup.js +24 -19
  46. package/dist/private/actiongroup/useActionGroup.js.map +1 -1
  47. package/dist/private/actiongroup/useActionGroup.mjs +24 -19
  48. package/dist/private/actiongroup/useActionGroup.mjs.map +1 -1
  49. package/dist/private/autocomplete/useAutocomplete.cjs +18 -8
  50. package/dist/private/autocomplete/useAutocomplete.cjs.map +1 -1
  51. package/dist/private/autocomplete/useAutocomplete.js +18 -8
  52. package/dist/private/autocomplete/useAutocomplete.js.map +1 -1
  53. package/dist/private/autocomplete/useAutocomplete.mjs +18 -8
  54. package/dist/private/autocomplete/useAutocomplete.mjs.map +1 -1
  55. package/dist/private/breadcrumbs/useBreadcrumbItem.cjs +2 -0
  56. package/dist/private/breadcrumbs/useBreadcrumbItem.cjs.map +1 -1
  57. package/dist/private/breadcrumbs/useBreadcrumbItem.js +2 -0
  58. package/dist/private/breadcrumbs/useBreadcrumbItem.js.map +1 -1
  59. package/dist/private/breadcrumbs/useBreadcrumbItem.mjs +2 -0
  60. package/dist/private/breadcrumbs/useBreadcrumbItem.mjs.map +1 -1
  61. package/dist/private/breadcrumbs/useBreadcrumbs.cjs.map +1 -1
  62. package/dist/private/breadcrumbs/useBreadcrumbs.js.map +1 -1
  63. package/dist/private/breadcrumbs/useBreadcrumbs.mjs.map +1 -1
  64. package/dist/private/button/useButton.cjs +2 -1
  65. package/dist/private/button/useButton.cjs.map +1 -1
  66. package/dist/private/button/useButton.js +2 -1
  67. package/dist/private/button/useButton.js.map +1 -1
  68. package/dist/private/button/useButton.mjs +2 -1
  69. package/dist/private/button/useButton.mjs.map +1 -1
  70. package/dist/private/button/useToggleButtonGroup.cjs +3 -0
  71. package/dist/private/button/useToggleButtonGroup.cjs.map +1 -1
  72. package/dist/private/button/useToggleButtonGroup.js +3 -0
  73. package/dist/private/button/useToggleButtonGroup.js.map +1 -1
  74. package/dist/private/button/useToggleButtonGroup.mjs +3 -0
  75. package/dist/private/button/useToggleButtonGroup.mjs.map +1 -1
  76. package/dist/private/calendar/useCalendarBase.cjs.map +1 -1
  77. package/dist/private/calendar/useCalendarBase.js.map +1 -1
  78. package/dist/private/calendar/useCalendarBase.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/useCalendarYearPicker.cjs +4 -4
  92. package/dist/private/calendar/useCalendarYearPicker.cjs.map +1 -1
  93. package/dist/private/calendar/useCalendarYearPicker.js +4 -4
  94. package/dist/private/calendar/useCalendarYearPicker.js.map +1 -1
  95. package/dist/private/calendar/useCalendarYearPicker.mjs +4 -4
  96. package/dist/private/calendar/useCalendarYearPicker.mjs.map +1 -1
  97. package/dist/private/calendar/useRangeCalendar.cjs +1 -0
  98. package/dist/private/calendar/useRangeCalendar.cjs.map +1 -1
  99. package/dist/private/calendar/useRangeCalendar.js +1 -0
  100. package/dist/private/calendar/useRangeCalendar.js.map +1 -1
  101. package/dist/private/calendar/useRangeCalendar.mjs +1 -0
  102. package/dist/private/calendar/useRangeCalendar.mjs.map +1 -1
  103. package/dist/private/calendar/utils.cjs.map +1 -1
  104. package/dist/private/calendar/utils.js.map +1 -1
  105. package/dist/private/calendar/utils.mjs.map +1 -1
  106. package/dist/private/collections/CollectionBuilder.cjs +8 -3
  107. package/dist/private/collections/CollectionBuilder.cjs.map +1 -1
  108. package/dist/private/collections/CollectionBuilder.js +8 -3
  109. package/dist/private/collections/CollectionBuilder.js.map +1 -1
  110. package/dist/private/collections/CollectionBuilder.mjs +8 -3
  111. package/dist/private/collections/CollectionBuilder.mjs.map +1 -1
  112. package/dist/private/collections/Document.cjs +4 -0
  113. package/dist/private/collections/Document.cjs.map +1 -1
  114. package/dist/private/collections/Document.js +4 -0
  115. package/dist/private/collections/Document.js.map +1 -1
  116. package/dist/private/collections/Document.mjs +4 -0
  117. package/dist/private/collections/Document.mjs.map +1 -1
  118. package/dist/private/collections/Hidden.cjs +1 -0
  119. package/dist/private/collections/Hidden.cjs.map +1 -1
  120. package/dist/private/collections/Hidden.js +1 -0
  121. package/dist/private/collections/Hidden.js.map +1 -1
  122. package/dist/private/collections/Hidden.mjs +1 -0
  123. package/dist/private/collections/Hidden.mjs.map +1 -1
  124. package/dist/private/collections/useCachedChildren.cjs +1 -0
  125. package/dist/private/collections/useCachedChildren.cjs.map +1 -1
  126. package/dist/private/collections/useCachedChildren.js +1 -0
  127. package/dist/private/collections/useCachedChildren.js.map +1 -1
  128. package/dist/private/collections/useCachedChildren.mjs +1 -0
  129. package/dist/private/collections/useCachedChildren.mjs.map +1 -1
  130. package/dist/private/color/useColorArea.cjs +31 -34
  131. package/dist/private/color/useColorArea.cjs.map +1 -1
  132. package/dist/private/color/useColorArea.js +31 -34
  133. package/dist/private/color/useColorArea.js.map +1 -1
  134. package/dist/private/color/useColorArea.mjs +31 -34
  135. package/dist/private/color/useColorArea.mjs.map +1 -1
  136. package/dist/private/color/useColorSlider.cjs +4 -2
  137. package/dist/private/color/useColorSlider.cjs.map +1 -1
  138. package/dist/private/color/useColorSlider.js +4 -2
  139. package/dist/private/color/useColorSlider.js.map +1 -1
  140. package/dist/private/color/useColorSlider.mjs +4 -2
  141. package/dist/private/color/useColorSlider.mjs.map +1 -1
  142. package/dist/private/color/useColorSwatch.cjs.map +1 -1
  143. package/dist/private/color/useColorSwatch.js.map +1 -1
  144. package/dist/private/color/useColorSwatch.mjs.map +1 -1
  145. package/dist/private/color/useColorWheel.cjs +16 -23
  146. package/dist/private/color/useColorWheel.cjs.map +1 -1
  147. package/dist/private/color/useColorWheel.js +16 -23
  148. package/dist/private/color/useColorWheel.js.map +1 -1
  149. package/dist/private/color/useColorWheel.mjs +16 -23
  150. package/dist/private/color/useColorWheel.mjs.map +1 -1
  151. package/dist/private/combobox/useComboBox.cjs +93 -28
  152. package/dist/private/combobox/useComboBox.cjs.map +1 -1
  153. package/dist/private/combobox/useComboBox.js +94 -28
  154. package/dist/private/combobox/useComboBox.js.map +1 -1
  155. package/dist/private/combobox/useComboBox.mjs +93 -28
  156. package/dist/private/combobox/useComboBox.mjs.map +1 -1
  157. package/dist/private/datepicker/useDateField.cjs +3 -6
  158. package/dist/private/datepicker/useDateField.cjs.map +1 -1
  159. package/dist/private/datepicker/useDateField.js +3 -6
  160. package/dist/private/datepicker/useDateField.js.map +1 -1
  161. package/dist/private/datepicker/useDateField.mjs +3 -6
  162. package/dist/private/datepicker/useDateField.mjs.map +1 -1
  163. package/dist/private/datepicker/useDatePicker.cjs.map +1 -1
  164. package/dist/private/datepicker/useDatePicker.js.map +1 -1
  165. package/dist/private/datepicker/useDatePicker.mjs.map +1 -1
  166. package/dist/private/datepicker/useDatePickerGroup.cjs +48 -27
  167. package/dist/private/datepicker/useDatePickerGroup.cjs.map +1 -1
  168. package/dist/private/datepicker/useDatePickerGroup.js +49 -28
  169. package/dist/private/datepicker/useDatePickerGroup.js.map +1 -1
  170. package/dist/private/datepicker/useDatePickerGroup.mjs +49 -28
  171. package/dist/private/datepicker/useDatePickerGroup.mjs.map +1 -1
  172. package/dist/private/datepicker/useDateRangePicker.cjs.map +1 -1
  173. package/dist/private/datepicker/useDateRangePicker.js.map +1 -1
  174. package/dist/private/datepicker/useDateRangePicker.mjs.map +1 -1
  175. package/dist/private/datepicker/useDateSegment.cjs +21 -16
  176. package/dist/private/datepicker/useDateSegment.cjs.map +1 -1
  177. package/dist/private/datepicker/useDateSegment.js +22 -17
  178. package/dist/private/datepicker/useDateSegment.js.map +1 -1
  179. package/dist/private/datepicker/useDateSegment.mjs +22 -17
  180. package/dist/private/datepicker/useDateSegment.mjs.map +1 -1
  181. package/dist/private/datepicker/useDisplayNames.cjs +1 -2
  182. package/dist/private/datepicker/useDisplayNames.cjs.map +1 -1
  183. package/dist/private/datepicker/useDisplayNames.js +1 -2
  184. package/dist/private/datepicker/useDisplayNames.js.map +1 -1
  185. package/dist/private/datepicker/useDisplayNames.mjs +1 -2
  186. package/dist/private/datepicker/useDisplayNames.mjs.map +1 -1
  187. package/dist/private/dialog/useDialog.cjs +8 -1
  188. package/dist/private/dialog/useDialog.cjs.map +1 -1
  189. package/dist/private/dialog/useDialog.js +10 -1
  190. package/dist/private/dialog/useDialog.js.map +1 -1
  191. package/dist/private/dialog/useDialog.mjs +8 -1
  192. package/dist/private/dialog/useDialog.mjs.map +1 -1
  193. package/dist/private/dnd/DragManager.cjs +7 -2
  194. package/dist/private/dnd/DragManager.cjs.map +1 -1
  195. package/dist/private/dnd/DragManager.js +7 -2
  196. package/dist/private/dnd/DragManager.js.map +1 -1
  197. package/dist/private/dnd/DragManager.mjs +7 -2
  198. package/dist/private/dnd/DragManager.mjs.map +1 -1
  199. package/dist/private/dnd/useAutoScroll.cjs +3 -1
  200. package/dist/private/dnd/useAutoScroll.cjs.map +1 -1
  201. package/dist/private/dnd/useAutoScroll.js +3 -1
  202. package/dist/private/dnd/useAutoScroll.js.map +1 -1
  203. package/dist/private/dnd/useAutoScroll.mjs +3 -1
  204. package/dist/private/dnd/useAutoScroll.mjs.map +1 -1
  205. package/dist/private/dnd/useDrag.cjs +4 -1
  206. package/dist/private/dnd/useDrag.cjs.map +1 -1
  207. package/dist/private/dnd/useDrag.js +4 -1
  208. package/dist/private/dnd/useDrag.js.map +1 -1
  209. package/dist/private/dnd/useDrag.mjs +4 -1
  210. package/dist/private/dnd/useDrag.mjs.map +1 -1
  211. package/dist/private/dnd/useDraggableItem.cjs +4 -0
  212. package/dist/private/dnd/useDraggableItem.cjs.map +1 -1
  213. package/dist/private/dnd/useDraggableItem.js +4 -0
  214. package/dist/private/dnd/useDraggableItem.js.map +1 -1
  215. package/dist/private/dnd/useDraggableItem.mjs +4 -0
  216. package/dist/private/dnd/useDraggableItem.mjs.map +1 -1
  217. package/dist/private/dnd/useDropIndicator.cjs.map +1 -1
  218. package/dist/private/dnd/useDropIndicator.js.map +1 -1
  219. package/dist/private/dnd/useDropIndicator.mjs.map +1 -1
  220. package/dist/private/dnd/useDroppableCollection.cjs +4 -0
  221. package/dist/private/dnd/useDroppableCollection.cjs.map +1 -1
  222. package/dist/private/dnd/useDroppableCollection.js +4 -0
  223. package/dist/private/dnd/useDroppableCollection.js.map +1 -1
  224. package/dist/private/dnd/useDroppableCollection.mjs +4 -0
  225. package/dist/private/dnd/useDroppableCollection.mjs.map +1 -1
  226. package/dist/private/dnd/useVirtualDrop.cjs.map +1 -1
  227. package/dist/private/dnd/useVirtualDrop.js.map +1 -1
  228. package/dist/private/dnd/useVirtualDrop.mjs.map +1 -1
  229. package/dist/private/dnd/utils.cjs +13 -3
  230. package/dist/private/dnd/utils.cjs.map +1 -1
  231. package/dist/private/dnd/utils.js +13 -3
  232. package/dist/private/dnd/utils.js.map +1 -1
  233. package/dist/private/dnd/utils.mjs +13 -3
  234. package/dist/private/dnd/utils.mjs.map +1 -1
  235. package/dist/private/focus/FocusScope.cjs +5 -3
  236. package/dist/private/focus/FocusScope.cjs.map +1 -1
  237. package/dist/private/focus/FocusScope.js +5 -4
  238. package/dist/private/focus/FocusScope.js.map +1 -1
  239. package/dist/private/focus/FocusScope.mjs +5 -3
  240. package/dist/private/focus/FocusScope.mjs.map +1 -1
  241. package/dist/private/focus/useFocusRing.cjs +2 -1
  242. package/dist/private/focus/useFocusRing.cjs.map +1 -1
  243. package/dist/private/focus/useFocusRing.js +2 -1
  244. package/dist/private/focus/useFocusRing.js.map +1 -1
  245. package/dist/private/focus/useFocusRing.mjs +2 -1
  246. package/dist/private/focus/useFocusRing.mjs.map +1 -1
  247. package/dist/private/form/useFormValidation.cjs +7 -1
  248. package/dist/private/form/useFormValidation.cjs.map +1 -1
  249. package/dist/private/form/useFormValidation.js +7 -1
  250. package/dist/private/form/useFormValidation.js.map +1 -1
  251. package/dist/private/form/useFormValidation.mjs +7 -1
  252. package/dist/private/form/useFormValidation.mjs.map +1 -1
  253. package/dist/private/grid/useGrid.cjs +3 -2
  254. package/dist/private/grid/useGrid.cjs.map +1 -1
  255. package/dist/private/grid/useGrid.js +3 -2
  256. package/dist/private/grid/useGrid.js.map +1 -1
  257. package/dist/private/grid/useGrid.mjs +3 -2
  258. package/dist/private/grid/useGrid.mjs.map +1 -1
  259. package/dist/private/grid/useGridCell.cjs +44 -8
  260. package/dist/private/grid/useGridCell.cjs.map +1 -1
  261. package/dist/private/grid/useGridCell.js +44 -8
  262. package/dist/private/grid/useGridCell.js.map +1 -1
  263. package/dist/private/grid/useGridCell.mjs +44 -8
  264. package/dist/private/grid/useGridCell.mjs.map +1 -1
  265. package/dist/private/grid/useGridSelectionAnnouncement.cjs.map +1 -1
  266. package/dist/private/grid/useGridSelectionAnnouncement.js.map +1 -1
  267. package/dist/private/grid/useGridSelectionAnnouncement.mjs.map +1 -1
  268. package/dist/private/grid/useGridSelectionCheckbox.cjs.map +1 -1
  269. package/dist/private/grid/useGridSelectionCheckbox.js.map +1 -1
  270. package/dist/private/grid/useGridSelectionCheckbox.mjs.map +1 -1
  271. package/dist/private/grid/useHighlightSelectionDescription.cjs.map +1 -1
  272. package/dist/private/grid/useHighlightSelectionDescription.js.map +1 -1
  273. package/dist/private/grid/useHighlightSelectionDescription.mjs.map +1 -1
  274. package/dist/private/grid/utils.cjs.map +1 -1
  275. package/dist/private/grid/utils.js.map +1 -1
  276. package/dist/private/grid/utils.mjs.map +1 -1
  277. package/dist/private/gridlist/useGridList.cjs +2 -1
  278. package/dist/private/gridlist/useGridList.cjs.map +1 -1
  279. package/dist/private/gridlist/useGridList.js +2 -1
  280. package/dist/private/gridlist/useGridList.js.map +1 -1
  281. package/dist/private/gridlist/useGridList.mjs +2 -1
  282. package/dist/private/gridlist/useGridList.mjs.map +1 -1
  283. package/dist/private/gridlist/useGridListItem.cjs +74 -25
  284. package/dist/private/gridlist/useGridListItem.cjs.map +1 -1
  285. package/dist/private/gridlist/useGridListItem.js +75 -26
  286. package/dist/private/gridlist/useGridListItem.js.map +1 -1
  287. package/dist/private/gridlist/useGridListItem.mjs +74 -25
  288. package/dist/private/gridlist/useGridListItem.mjs.map +1 -1
  289. package/dist/private/interactions/PressResponder.cjs +1 -0
  290. package/dist/private/interactions/PressResponder.cjs.map +1 -1
  291. package/dist/private/interactions/PressResponder.js +1 -0
  292. package/dist/private/interactions/PressResponder.js.map +1 -1
  293. package/dist/private/interactions/PressResponder.mjs +1 -0
  294. package/dist/private/interactions/PressResponder.mjs.map +1 -1
  295. package/dist/private/interactions/Pressable.cjs +1 -0
  296. package/dist/private/interactions/Pressable.cjs.map +1 -1
  297. package/dist/private/interactions/Pressable.js +1 -0
  298. package/dist/private/interactions/Pressable.js.map +1 -1
  299. package/dist/private/interactions/Pressable.mjs +1 -0
  300. package/dist/private/interactions/Pressable.mjs.map +1 -1
  301. package/dist/private/interactions/createEventHandler.cjs +6 -2
  302. package/dist/private/interactions/createEventHandler.cjs.map +1 -1
  303. package/dist/private/interactions/createEventHandler.js +6 -2
  304. package/dist/private/interactions/createEventHandler.js.map +1 -1
  305. package/dist/private/interactions/createEventHandler.mjs +6 -2
  306. package/dist/private/interactions/createEventHandler.mjs.map +1 -1
  307. package/dist/private/interactions/createKeyboardShortcutHandler.cjs +130 -0
  308. package/dist/private/interactions/createKeyboardShortcutHandler.cjs.map +1 -0
  309. package/dist/private/interactions/createKeyboardShortcutHandler.js +125 -0
  310. package/dist/private/interactions/createKeyboardShortcutHandler.js.map +1 -0
  311. package/dist/private/interactions/createKeyboardShortcutHandler.mjs +125 -0
  312. package/dist/private/interactions/createKeyboardShortcutHandler.mjs.map +1 -0
  313. package/dist/private/interactions/textSelection.cjs +2 -2
  314. package/dist/private/interactions/textSelection.cjs.map +1 -1
  315. package/dist/private/interactions/textSelection.js +3 -3
  316. package/dist/private/interactions/textSelection.js.map +1 -1
  317. package/dist/private/interactions/textSelection.mjs +3 -3
  318. package/dist/private/interactions/textSelection.mjs.map +1 -1
  319. package/dist/private/interactions/useContextMenu.cjs +104 -0
  320. package/dist/private/interactions/useContextMenu.cjs.map +1 -0
  321. package/dist/private/interactions/useContextMenu.js +99 -0
  322. package/dist/private/interactions/useContextMenu.js.map +1 -0
  323. package/dist/private/interactions/useContextMenu.mjs +99 -0
  324. package/dist/private/interactions/useContextMenu.mjs.map +1 -0
  325. package/dist/private/interactions/useFocusVisible.cjs +18 -7
  326. package/dist/private/interactions/useFocusVisible.cjs.map +1 -1
  327. package/dist/private/interactions/useFocusVisible.js +18 -7
  328. package/dist/private/interactions/useFocusVisible.js.map +1 -1
  329. package/dist/private/interactions/useFocusVisible.mjs +18 -7
  330. package/dist/private/interactions/useFocusVisible.mjs.map +1 -1
  331. package/dist/private/interactions/useFocusable.cjs +1 -0
  332. package/dist/private/interactions/useFocusable.cjs.map +1 -1
  333. package/dist/private/interactions/useFocusable.js +1 -0
  334. package/dist/private/interactions/useFocusable.js.map +1 -1
  335. package/dist/private/interactions/useFocusable.mjs +1 -0
  336. package/dist/private/interactions/useFocusable.mjs.map +1 -1
  337. package/dist/private/interactions/useHover.cjs +2 -1
  338. package/dist/private/interactions/useHover.cjs.map +1 -1
  339. package/dist/private/interactions/useHover.js +2 -1
  340. package/dist/private/interactions/useHover.js.map +1 -1
  341. package/dist/private/interactions/useHover.mjs +2 -1
  342. package/dist/private/interactions/useHover.mjs.map +1 -1
  343. package/dist/private/interactions/useKeyboard.cjs +46 -2
  344. package/dist/private/interactions/useKeyboard.cjs.map +1 -1
  345. package/dist/private/interactions/useKeyboard.js +48 -2
  346. package/dist/private/interactions/useKeyboard.js.map +1 -1
  347. package/dist/private/interactions/useKeyboard.mjs +46 -2
  348. package/dist/private/interactions/useKeyboard.mjs.map +1 -1
  349. package/dist/private/interactions/useLongPress.cjs +22 -22
  350. package/dist/private/interactions/useLongPress.cjs.map +1 -1
  351. package/dist/private/interactions/useLongPress.js +22 -22
  352. package/dist/private/interactions/useLongPress.js.map +1 -1
  353. package/dist/private/interactions/useLongPress.mjs +22 -22
  354. package/dist/private/interactions/useLongPress.mjs.map +1 -1
  355. package/dist/private/interactions/useMove.cjs +1 -8
  356. package/dist/private/interactions/useMove.cjs.map +1 -1
  357. package/dist/private/interactions/useMove.js +1 -8
  358. package/dist/private/interactions/useMove.js.map +1 -1
  359. package/dist/private/interactions/useMove.mjs +1 -8
  360. package/dist/private/interactions/useMove.mjs.map +1 -1
  361. package/dist/private/interactions/usePress.cjs +18 -33
  362. package/dist/private/interactions/usePress.cjs.map +1 -1
  363. package/dist/private/interactions/usePress.js +18 -33
  364. package/dist/private/interactions/usePress.js.map +1 -1
  365. package/dist/private/interactions/usePress.mjs +18 -33
  366. package/dist/private/interactions/usePress.mjs.map +1 -1
  367. package/dist/private/interactions/utils.cjs +10 -10
  368. package/dist/private/interactions/utils.cjs.map +1 -1
  369. package/dist/private/interactions/utils.js +10 -10
  370. package/dist/private/interactions/utils.js.map +1 -1
  371. package/dist/private/interactions/utils.mjs +10 -10
  372. package/dist/private/interactions/utils.mjs.map +1 -1
  373. package/dist/private/intl/combobox/fi-FI.cjs +5 -5
  374. package/dist/private/intl/combobox/fi-FI.cjs.map +1 -1
  375. package/dist/private/intl/combobox/fi-FI.js +5 -5
  376. package/dist/private/intl/combobox/fi-FI.js.map +1 -1
  377. package/dist/private/intl/combobox/fi-FI.mjs +5 -5
  378. package/dist/private/intl/combobox/fi-FI.mjs.map +1 -1
  379. package/dist/private/intl/previewtrigger/ar-AE.cjs +6 -0
  380. package/dist/private/intl/previewtrigger/ar-AE.cjs.map +1 -0
  381. package/dist/private/intl/previewtrigger/ar-AE.js +8 -0
  382. package/dist/private/intl/previewtrigger/ar-AE.js.map +1 -0
  383. package/dist/private/intl/previewtrigger/ar-AE.mjs +8 -0
  384. package/dist/private/intl/previewtrigger/ar-AE.mjs.map +1 -0
  385. package/dist/private/intl/previewtrigger/bg-BG.cjs +6 -0
  386. package/dist/private/intl/previewtrigger/bg-BG.cjs.map +1 -0
  387. package/dist/private/intl/previewtrigger/bg-BG.js +8 -0
  388. package/dist/private/intl/previewtrigger/bg-BG.js.map +1 -0
  389. package/dist/private/intl/previewtrigger/bg-BG.mjs +8 -0
  390. package/dist/private/intl/previewtrigger/bg-BG.mjs.map +1 -0
  391. package/dist/private/intl/previewtrigger/cs-CZ.cjs +6 -0
  392. package/dist/private/intl/previewtrigger/cs-CZ.cjs.map +1 -0
  393. package/dist/private/intl/previewtrigger/cs-CZ.js +8 -0
  394. package/dist/private/intl/previewtrigger/cs-CZ.js.map +1 -0
  395. package/dist/private/intl/previewtrigger/cs-CZ.mjs +8 -0
  396. package/dist/private/intl/previewtrigger/cs-CZ.mjs.map +1 -0
  397. package/dist/private/intl/previewtrigger/da-DK.cjs +6 -0
  398. package/dist/private/intl/previewtrigger/da-DK.cjs.map +1 -0
  399. package/dist/private/intl/previewtrigger/da-DK.js +8 -0
  400. package/dist/private/intl/previewtrigger/da-DK.js.map +1 -0
  401. package/dist/private/intl/previewtrigger/da-DK.mjs +8 -0
  402. package/dist/private/intl/previewtrigger/da-DK.mjs.map +1 -0
  403. package/dist/private/intl/previewtrigger/de-DE.cjs +6 -0
  404. package/dist/private/intl/previewtrigger/de-DE.cjs.map +1 -0
  405. package/dist/private/intl/previewtrigger/de-DE.js +8 -0
  406. package/dist/private/intl/previewtrigger/de-DE.js.map +1 -0
  407. package/dist/private/intl/previewtrigger/de-DE.mjs +8 -0
  408. package/dist/private/intl/previewtrigger/de-DE.mjs.map +1 -0
  409. package/dist/private/intl/previewtrigger/el-GR.cjs +6 -0
  410. package/dist/private/intl/previewtrigger/el-GR.cjs.map +1 -0
  411. package/dist/private/intl/previewtrigger/el-GR.js +8 -0
  412. package/dist/private/intl/previewtrigger/el-GR.js.map +1 -0
  413. package/dist/private/intl/previewtrigger/el-GR.mjs +8 -0
  414. package/dist/private/intl/previewtrigger/el-GR.mjs.map +1 -0
  415. package/dist/private/intl/previewtrigger/en-US.cjs +6 -0
  416. package/dist/private/intl/previewtrigger/en-US.cjs.map +1 -0
  417. package/dist/private/intl/previewtrigger/en-US.js +8 -0
  418. package/dist/private/intl/previewtrigger/en-US.js.map +1 -0
  419. package/dist/private/intl/previewtrigger/en-US.mjs +8 -0
  420. package/dist/private/intl/previewtrigger/en-US.mjs.map +1 -0
  421. package/dist/private/intl/previewtrigger/es-ES.cjs +6 -0
  422. package/dist/private/intl/previewtrigger/es-ES.cjs.map +1 -0
  423. package/dist/private/intl/previewtrigger/es-ES.js +8 -0
  424. package/dist/private/intl/previewtrigger/es-ES.js.map +1 -0
  425. package/dist/private/intl/previewtrigger/es-ES.mjs +8 -0
  426. package/dist/private/intl/previewtrigger/es-ES.mjs.map +1 -0
  427. package/dist/private/intl/previewtrigger/et-EE.cjs +6 -0
  428. package/dist/private/intl/previewtrigger/et-EE.cjs.map +1 -0
  429. package/dist/private/intl/previewtrigger/et-EE.js +8 -0
  430. package/dist/private/intl/previewtrigger/et-EE.js.map +1 -0
  431. package/dist/private/intl/previewtrigger/et-EE.mjs +8 -0
  432. package/dist/private/intl/previewtrigger/et-EE.mjs.map +1 -0
  433. package/dist/private/intl/previewtrigger/fi-FI.cjs +6 -0
  434. package/dist/private/intl/previewtrigger/fi-FI.cjs.map +1 -0
  435. package/dist/private/intl/previewtrigger/fi-FI.js +8 -0
  436. package/dist/private/intl/previewtrigger/fi-FI.js.map +1 -0
  437. package/dist/private/intl/previewtrigger/fi-FI.mjs +8 -0
  438. package/dist/private/intl/previewtrigger/fi-FI.mjs.map +1 -0
  439. package/dist/private/intl/previewtrigger/fr-FR.cjs +6 -0
  440. package/dist/private/intl/previewtrigger/fr-FR.cjs.map +1 -0
  441. package/dist/private/intl/previewtrigger/fr-FR.js +8 -0
  442. package/dist/private/intl/previewtrigger/fr-FR.js.map +1 -0
  443. package/dist/private/intl/previewtrigger/fr-FR.mjs +8 -0
  444. package/dist/private/intl/previewtrigger/fr-FR.mjs.map +1 -0
  445. package/dist/private/intl/previewtrigger/he-IL.cjs +6 -0
  446. package/dist/private/intl/previewtrigger/he-IL.cjs.map +1 -0
  447. package/dist/private/intl/previewtrigger/he-IL.js +8 -0
  448. package/dist/private/intl/previewtrigger/he-IL.js.map +1 -0
  449. package/dist/private/intl/previewtrigger/he-IL.mjs +8 -0
  450. package/dist/private/intl/previewtrigger/he-IL.mjs.map +1 -0
  451. package/dist/private/intl/previewtrigger/hr-HR.cjs +6 -0
  452. package/dist/private/intl/previewtrigger/hr-HR.cjs.map +1 -0
  453. package/dist/private/intl/previewtrigger/hr-HR.js +8 -0
  454. package/dist/private/intl/previewtrigger/hr-HR.js.map +1 -0
  455. package/dist/private/intl/previewtrigger/hr-HR.mjs +8 -0
  456. package/dist/private/intl/previewtrigger/hr-HR.mjs.map +1 -0
  457. package/dist/private/intl/previewtrigger/hu-HU.cjs +6 -0
  458. package/dist/private/intl/previewtrigger/hu-HU.cjs.map +1 -0
  459. package/dist/private/intl/previewtrigger/hu-HU.js +8 -0
  460. package/dist/private/intl/previewtrigger/hu-HU.js.map +1 -0
  461. package/dist/private/intl/previewtrigger/hu-HU.mjs +8 -0
  462. package/dist/private/intl/previewtrigger/hu-HU.mjs.map +1 -0
  463. package/dist/private/intl/previewtrigger/it-IT.cjs +6 -0
  464. package/dist/private/intl/previewtrigger/it-IT.cjs.map +1 -0
  465. package/dist/private/intl/previewtrigger/it-IT.js +8 -0
  466. package/dist/private/intl/previewtrigger/it-IT.js.map +1 -0
  467. package/dist/private/intl/previewtrigger/it-IT.mjs +8 -0
  468. package/dist/private/intl/previewtrigger/it-IT.mjs.map +1 -0
  469. package/dist/private/intl/previewtrigger/ja-JP.cjs +6 -0
  470. package/dist/private/intl/previewtrigger/ja-JP.cjs.map +1 -0
  471. package/dist/private/intl/previewtrigger/ja-JP.js +8 -0
  472. package/dist/private/intl/previewtrigger/ja-JP.js.map +1 -0
  473. package/dist/private/intl/previewtrigger/ja-JP.mjs +8 -0
  474. package/dist/private/intl/previewtrigger/ja-JP.mjs.map +1 -0
  475. package/dist/private/intl/previewtrigger/ko-KR.cjs +6 -0
  476. package/dist/private/intl/previewtrigger/ko-KR.cjs.map +1 -0
  477. package/dist/private/intl/previewtrigger/ko-KR.js +8 -0
  478. package/dist/private/intl/previewtrigger/ko-KR.js.map +1 -0
  479. package/dist/private/intl/previewtrigger/ko-KR.mjs +8 -0
  480. package/dist/private/intl/previewtrigger/ko-KR.mjs.map +1 -0
  481. package/dist/private/intl/previewtrigger/lt-LT.cjs +6 -0
  482. package/dist/private/intl/previewtrigger/lt-LT.cjs.map +1 -0
  483. package/dist/private/intl/previewtrigger/lt-LT.js +8 -0
  484. package/dist/private/intl/previewtrigger/lt-LT.js.map +1 -0
  485. package/dist/private/intl/previewtrigger/lt-LT.mjs +8 -0
  486. package/dist/private/intl/previewtrigger/lt-LT.mjs.map +1 -0
  487. package/dist/private/intl/previewtrigger/lv-LV.cjs +6 -0
  488. package/dist/private/intl/previewtrigger/lv-LV.cjs.map +1 -0
  489. package/dist/private/intl/previewtrigger/lv-LV.js +8 -0
  490. package/dist/private/intl/previewtrigger/lv-LV.js.map +1 -0
  491. package/dist/private/intl/previewtrigger/lv-LV.mjs +8 -0
  492. package/dist/private/intl/previewtrigger/lv-LV.mjs.map +1 -0
  493. package/dist/private/intl/previewtrigger/nb-NO.cjs +6 -0
  494. package/dist/private/intl/previewtrigger/nb-NO.cjs.map +1 -0
  495. package/dist/private/intl/previewtrigger/nb-NO.js +8 -0
  496. package/dist/private/intl/previewtrigger/nb-NO.js.map +1 -0
  497. package/dist/private/intl/previewtrigger/nb-NO.mjs +8 -0
  498. package/dist/private/intl/previewtrigger/nb-NO.mjs.map +1 -0
  499. package/dist/private/intl/previewtrigger/nl-NL.cjs +6 -0
  500. package/dist/private/intl/previewtrigger/nl-NL.cjs.map +1 -0
  501. package/dist/private/intl/previewtrigger/nl-NL.js +8 -0
  502. package/dist/private/intl/previewtrigger/nl-NL.js.map +1 -0
  503. package/dist/private/intl/previewtrigger/nl-NL.mjs +8 -0
  504. package/dist/private/intl/previewtrigger/nl-NL.mjs.map +1 -0
  505. package/dist/private/intl/previewtrigger/pl-PL.cjs +6 -0
  506. package/dist/private/intl/previewtrigger/pl-PL.cjs.map +1 -0
  507. package/dist/private/intl/previewtrigger/pl-PL.js +8 -0
  508. package/dist/private/intl/previewtrigger/pl-PL.js.map +1 -0
  509. package/dist/private/intl/previewtrigger/pl-PL.mjs +8 -0
  510. package/dist/private/intl/previewtrigger/pl-PL.mjs.map +1 -0
  511. package/dist/private/intl/previewtrigger/pt-BR.cjs +6 -0
  512. package/dist/private/intl/previewtrigger/pt-BR.cjs.map +1 -0
  513. package/dist/private/intl/previewtrigger/pt-BR.js +8 -0
  514. package/dist/private/intl/previewtrigger/pt-BR.js.map +1 -0
  515. package/dist/private/intl/previewtrigger/pt-BR.mjs +8 -0
  516. package/dist/private/intl/previewtrigger/pt-BR.mjs.map +1 -0
  517. package/dist/private/intl/previewtrigger/pt-PT.cjs +6 -0
  518. package/dist/private/intl/previewtrigger/pt-PT.cjs.map +1 -0
  519. package/dist/private/intl/previewtrigger/pt-PT.js +8 -0
  520. package/dist/private/intl/previewtrigger/pt-PT.js.map +1 -0
  521. package/dist/private/intl/previewtrigger/pt-PT.mjs +8 -0
  522. package/dist/private/intl/previewtrigger/pt-PT.mjs.map +1 -0
  523. package/dist/private/intl/previewtrigger/ro-RO.cjs +6 -0
  524. package/dist/private/intl/previewtrigger/ro-RO.cjs.map +1 -0
  525. package/dist/private/intl/previewtrigger/ro-RO.js +8 -0
  526. package/dist/private/intl/previewtrigger/ro-RO.js.map +1 -0
  527. package/dist/private/intl/previewtrigger/ro-RO.mjs +8 -0
  528. package/dist/private/intl/previewtrigger/ro-RO.mjs.map +1 -0
  529. package/dist/private/intl/previewtrigger/ru-RU.cjs +6 -0
  530. package/dist/private/intl/previewtrigger/ru-RU.cjs.map +1 -0
  531. package/dist/private/intl/previewtrigger/ru-RU.js +8 -0
  532. package/dist/private/intl/previewtrigger/ru-RU.js.map +1 -0
  533. package/dist/private/intl/previewtrigger/ru-RU.mjs +8 -0
  534. package/dist/private/intl/previewtrigger/ru-RU.mjs.map +1 -0
  535. package/dist/private/intl/previewtrigger/sk-SK.cjs +6 -0
  536. package/dist/private/intl/previewtrigger/sk-SK.cjs.map +1 -0
  537. package/dist/private/intl/previewtrigger/sk-SK.js +8 -0
  538. package/dist/private/intl/previewtrigger/sk-SK.js.map +1 -0
  539. package/dist/private/intl/previewtrigger/sk-SK.mjs +8 -0
  540. package/dist/private/intl/previewtrigger/sk-SK.mjs.map +1 -0
  541. package/dist/private/intl/previewtrigger/sl-SI.cjs +6 -0
  542. package/dist/private/intl/previewtrigger/sl-SI.cjs.map +1 -0
  543. package/dist/private/intl/previewtrigger/sl-SI.js +8 -0
  544. package/dist/private/intl/previewtrigger/sl-SI.js.map +1 -0
  545. package/dist/private/intl/previewtrigger/sl-SI.mjs +8 -0
  546. package/dist/private/intl/previewtrigger/sl-SI.mjs.map +1 -0
  547. package/dist/private/intl/previewtrigger/sr-SP.cjs +6 -0
  548. package/dist/private/intl/previewtrigger/sr-SP.cjs.map +1 -0
  549. package/dist/private/intl/previewtrigger/sr-SP.js +8 -0
  550. package/dist/private/intl/previewtrigger/sr-SP.js.map +1 -0
  551. package/dist/private/intl/previewtrigger/sr-SP.mjs +8 -0
  552. package/dist/private/intl/previewtrigger/sr-SP.mjs.map +1 -0
  553. package/dist/private/intl/previewtrigger/sv-SE.cjs +6 -0
  554. package/dist/private/intl/previewtrigger/sv-SE.cjs.map +1 -0
  555. package/dist/private/intl/previewtrigger/sv-SE.js +8 -0
  556. package/dist/private/intl/previewtrigger/sv-SE.js.map +1 -0
  557. package/dist/private/intl/previewtrigger/sv-SE.mjs +8 -0
  558. package/dist/private/intl/previewtrigger/sv-SE.mjs.map +1 -0
  559. package/dist/private/intl/previewtrigger/tr-TR.cjs +6 -0
  560. package/dist/private/intl/previewtrigger/tr-TR.cjs.map +1 -0
  561. package/dist/private/intl/previewtrigger/tr-TR.js +8 -0
  562. package/dist/private/intl/previewtrigger/tr-TR.js.map +1 -0
  563. package/dist/private/intl/previewtrigger/tr-TR.mjs +8 -0
  564. package/dist/private/intl/previewtrigger/tr-TR.mjs.map +1 -0
  565. package/dist/private/intl/previewtrigger/uk-UA.cjs +6 -0
  566. package/dist/private/intl/previewtrigger/uk-UA.cjs.map +1 -0
  567. package/dist/private/intl/previewtrigger/uk-UA.js +8 -0
  568. package/dist/private/intl/previewtrigger/uk-UA.js.map +1 -0
  569. package/dist/private/intl/previewtrigger/uk-UA.mjs +8 -0
  570. package/dist/private/intl/previewtrigger/uk-UA.mjs.map +1 -0
  571. package/dist/private/intl/previewtrigger/zh-CN.cjs +6 -0
  572. package/dist/private/intl/previewtrigger/zh-CN.cjs.map +1 -0
  573. package/dist/private/intl/previewtrigger/zh-CN.js +8 -0
  574. package/dist/private/intl/previewtrigger/zh-CN.js.map +1 -0
  575. package/dist/private/intl/previewtrigger/zh-CN.mjs +8 -0
  576. package/dist/private/intl/previewtrigger/zh-CN.mjs.map +1 -0
  577. package/dist/private/intl/previewtrigger/zh-TW.cjs +6 -0
  578. package/dist/private/intl/previewtrigger/zh-TW.cjs.map +1 -0
  579. package/dist/private/intl/previewtrigger/zh-TW.js +8 -0
  580. package/dist/private/intl/previewtrigger/zh-TW.js.map +1 -0
  581. package/dist/private/intl/previewtrigger/zh-TW.mjs +8 -0
  582. package/dist/private/intl/previewtrigger/zh-TW.mjs.map +1 -0
  583. package/dist/private/intl/table/ar-AE.cjs +3 -3
  584. package/dist/private/intl/table/ar-AE.cjs.map +1 -1
  585. package/dist/private/intl/table/ar-AE.js +3 -3
  586. package/dist/private/intl/table/ar-AE.js.map +1 -1
  587. package/dist/private/intl/table/ar-AE.mjs +3 -3
  588. package/dist/private/intl/table/ar-AE.mjs.map +1 -1
  589. package/dist/private/intl/table/bg-BG.cjs +3 -3
  590. package/dist/private/intl/table/bg-BG.cjs.map +1 -1
  591. package/dist/private/intl/table/bg-BG.js +3 -3
  592. package/dist/private/intl/table/bg-BG.js.map +1 -1
  593. package/dist/private/intl/table/bg-BG.mjs +3 -3
  594. package/dist/private/intl/table/bg-BG.mjs.map +1 -1
  595. package/dist/private/intl/table/cs-CZ.cjs +3 -3
  596. package/dist/private/intl/table/cs-CZ.cjs.map +1 -1
  597. package/dist/private/intl/table/cs-CZ.js +3 -3
  598. package/dist/private/intl/table/cs-CZ.js.map +1 -1
  599. package/dist/private/intl/table/cs-CZ.mjs +3 -3
  600. package/dist/private/intl/table/cs-CZ.mjs.map +1 -1
  601. package/dist/private/intl/table/da-DK.cjs +3 -3
  602. package/dist/private/intl/table/da-DK.cjs.map +1 -1
  603. package/dist/private/intl/table/da-DK.js +3 -3
  604. package/dist/private/intl/table/da-DK.js.map +1 -1
  605. package/dist/private/intl/table/da-DK.mjs +3 -3
  606. package/dist/private/intl/table/da-DK.mjs.map +1 -1
  607. package/dist/private/intl/table/de-DE.cjs +3 -3
  608. package/dist/private/intl/table/de-DE.cjs.map +1 -1
  609. package/dist/private/intl/table/de-DE.js +3 -3
  610. package/dist/private/intl/table/de-DE.js.map +1 -1
  611. package/dist/private/intl/table/de-DE.mjs +3 -3
  612. package/dist/private/intl/table/de-DE.mjs.map +1 -1
  613. package/dist/private/intl/table/el-GR.cjs +3 -3
  614. package/dist/private/intl/table/el-GR.cjs.map +1 -1
  615. package/dist/private/intl/table/el-GR.js +3 -3
  616. package/dist/private/intl/table/el-GR.js.map +1 -1
  617. package/dist/private/intl/table/el-GR.mjs +3 -3
  618. package/dist/private/intl/table/el-GR.mjs.map +1 -1
  619. package/dist/private/intl/table/es-ES.cjs +3 -3
  620. package/dist/private/intl/table/es-ES.cjs.map +1 -1
  621. package/dist/private/intl/table/es-ES.js +3 -3
  622. package/dist/private/intl/table/es-ES.js.map +1 -1
  623. package/dist/private/intl/table/es-ES.mjs +3 -3
  624. package/dist/private/intl/table/es-ES.mjs.map +1 -1
  625. package/dist/private/intl/table/et-EE.cjs +3 -3
  626. package/dist/private/intl/table/et-EE.cjs.map +1 -1
  627. package/dist/private/intl/table/et-EE.js +3 -3
  628. package/dist/private/intl/table/et-EE.js.map +1 -1
  629. package/dist/private/intl/table/et-EE.mjs +3 -3
  630. package/dist/private/intl/table/et-EE.mjs.map +1 -1
  631. package/dist/private/intl/table/fi-FI.cjs +3 -3
  632. package/dist/private/intl/table/fi-FI.cjs.map +1 -1
  633. package/dist/private/intl/table/fi-FI.js +3 -3
  634. package/dist/private/intl/table/fi-FI.js.map +1 -1
  635. package/dist/private/intl/table/fi-FI.mjs +3 -3
  636. package/dist/private/intl/table/fi-FI.mjs.map +1 -1
  637. package/dist/private/intl/table/fr-FR.cjs +3 -3
  638. package/dist/private/intl/table/fr-FR.cjs.map +1 -1
  639. package/dist/private/intl/table/fr-FR.js +3 -3
  640. package/dist/private/intl/table/fr-FR.js.map +1 -1
  641. package/dist/private/intl/table/fr-FR.mjs +3 -3
  642. package/dist/private/intl/table/fr-FR.mjs.map +1 -1
  643. package/dist/private/intl/table/he-IL.cjs +3 -3
  644. package/dist/private/intl/table/he-IL.cjs.map +1 -1
  645. package/dist/private/intl/table/he-IL.js +3 -3
  646. package/dist/private/intl/table/he-IL.js.map +1 -1
  647. package/dist/private/intl/table/he-IL.mjs +3 -3
  648. package/dist/private/intl/table/he-IL.mjs.map +1 -1
  649. package/dist/private/intl/table/hr-HR.cjs +3 -3
  650. package/dist/private/intl/table/hr-HR.cjs.map +1 -1
  651. package/dist/private/intl/table/hr-HR.js +3 -3
  652. package/dist/private/intl/table/hr-HR.js.map +1 -1
  653. package/dist/private/intl/table/hr-HR.mjs +3 -3
  654. package/dist/private/intl/table/hr-HR.mjs.map +1 -1
  655. package/dist/private/intl/table/hu-HU.cjs +3 -3
  656. package/dist/private/intl/table/hu-HU.cjs.map +1 -1
  657. package/dist/private/intl/table/hu-HU.js +3 -3
  658. package/dist/private/intl/table/hu-HU.js.map +1 -1
  659. package/dist/private/intl/table/hu-HU.mjs +3 -3
  660. package/dist/private/intl/table/hu-HU.mjs.map +1 -1
  661. package/dist/private/intl/table/it-IT.cjs +3 -3
  662. package/dist/private/intl/table/it-IT.cjs.map +1 -1
  663. package/dist/private/intl/table/it-IT.js +3 -3
  664. package/dist/private/intl/table/it-IT.js.map +1 -1
  665. package/dist/private/intl/table/it-IT.mjs +3 -3
  666. package/dist/private/intl/table/it-IT.mjs.map +1 -1
  667. package/dist/private/intl/table/ja-JP.cjs +3 -3
  668. package/dist/private/intl/table/ja-JP.cjs.map +1 -1
  669. package/dist/private/intl/table/ja-JP.js +3 -3
  670. package/dist/private/intl/table/ja-JP.js.map +1 -1
  671. package/dist/private/intl/table/ja-JP.mjs +3 -3
  672. package/dist/private/intl/table/ja-JP.mjs.map +1 -1
  673. package/dist/private/intl/table/ko-KR.cjs +3 -3
  674. package/dist/private/intl/table/ko-KR.cjs.map +1 -1
  675. package/dist/private/intl/table/ko-KR.js +3 -3
  676. package/dist/private/intl/table/ko-KR.js.map +1 -1
  677. package/dist/private/intl/table/ko-KR.mjs +3 -3
  678. package/dist/private/intl/table/ko-KR.mjs.map +1 -1
  679. package/dist/private/intl/table/lt-LT.cjs +3 -3
  680. package/dist/private/intl/table/lt-LT.cjs.map +1 -1
  681. package/dist/private/intl/table/lt-LT.js +3 -3
  682. package/dist/private/intl/table/lt-LT.js.map +1 -1
  683. package/dist/private/intl/table/lt-LT.mjs +3 -3
  684. package/dist/private/intl/table/lt-LT.mjs.map +1 -1
  685. package/dist/private/intl/table/lv-LV.cjs +3 -3
  686. package/dist/private/intl/table/lv-LV.cjs.map +1 -1
  687. package/dist/private/intl/table/lv-LV.js +3 -3
  688. package/dist/private/intl/table/lv-LV.js.map +1 -1
  689. package/dist/private/intl/table/lv-LV.mjs +3 -3
  690. package/dist/private/intl/table/lv-LV.mjs.map +1 -1
  691. package/dist/private/intl/table/nb-NO.cjs +3 -3
  692. package/dist/private/intl/table/nb-NO.cjs.map +1 -1
  693. package/dist/private/intl/table/nb-NO.js +3 -3
  694. package/dist/private/intl/table/nb-NO.js.map +1 -1
  695. package/dist/private/intl/table/nb-NO.mjs +3 -3
  696. package/dist/private/intl/table/nb-NO.mjs.map +1 -1
  697. package/dist/private/intl/table/nl-NL.cjs +3 -3
  698. package/dist/private/intl/table/nl-NL.cjs.map +1 -1
  699. package/dist/private/intl/table/nl-NL.js +3 -3
  700. package/dist/private/intl/table/nl-NL.js.map +1 -1
  701. package/dist/private/intl/table/nl-NL.mjs +3 -3
  702. package/dist/private/intl/table/nl-NL.mjs.map +1 -1
  703. package/dist/private/intl/table/pl-PL.cjs +3 -3
  704. package/dist/private/intl/table/pl-PL.cjs.map +1 -1
  705. package/dist/private/intl/table/pl-PL.js +3 -3
  706. package/dist/private/intl/table/pl-PL.js.map +1 -1
  707. package/dist/private/intl/table/pl-PL.mjs +3 -3
  708. package/dist/private/intl/table/pl-PL.mjs.map +1 -1
  709. package/dist/private/intl/table/pt-BR.cjs +3 -3
  710. package/dist/private/intl/table/pt-BR.cjs.map +1 -1
  711. package/dist/private/intl/table/pt-BR.js +3 -3
  712. package/dist/private/intl/table/pt-BR.js.map +1 -1
  713. package/dist/private/intl/table/pt-BR.mjs +3 -3
  714. package/dist/private/intl/table/pt-BR.mjs.map +1 -1
  715. package/dist/private/intl/table/pt-PT.cjs +3 -3
  716. package/dist/private/intl/table/pt-PT.cjs.map +1 -1
  717. package/dist/private/intl/table/pt-PT.js +3 -3
  718. package/dist/private/intl/table/pt-PT.js.map +1 -1
  719. package/dist/private/intl/table/pt-PT.mjs +3 -3
  720. package/dist/private/intl/table/pt-PT.mjs.map +1 -1
  721. package/dist/private/intl/table/ro-RO.cjs +3 -3
  722. package/dist/private/intl/table/ro-RO.cjs.map +1 -1
  723. package/dist/private/intl/table/ro-RO.js +3 -3
  724. package/dist/private/intl/table/ro-RO.js.map +1 -1
  725. package/dist/private/intl/table/ro-RO.mjs +3 -3
  726. package/dist/private/intl/table/ro-RO.mjs.map +1 -1
  727. package/dist/private/intl/table/ru-RU.cjs +3 -3
  728. package/dist/private/intl/table/ru-RU.cjs.map +1 -1
  729. package/dist/private/intl/table/ru-RU.js +3 -3
  730. package/dist/private/intl/table/ru-RU.js.map +1 -1
  731. package/dist/private/intl/table/ru-RU.mjs +3 -3
  732. package/dist/private/intl/table/ru-RU.mjs.map +1 -1
  733. package/dist/private/intl/table/sk-SK.cjs +3 -3
  734. package/dist/private/intl/table/sk-SK.cjs.map +1 -1
  735. package/dist/private/intl/table/sk-SK.js +3 -3
  736. package/dist/private/intl/table/sk-SK.js.map +1 -1
  737. package/dist/private/intl/table/sk-SK.mjs +3 -3
  738. package/dist/private/intl/table/sk-SK.mjs.map +1 -1
  739. package/dist/private/intl/table/sl-SI.cjs +3 -3
  740. package/dist/private/intl/table/sl-SI.cjs.map +1 -1
  741. package/dist/private/intl/table/sl-SI.js +3 -3
  742. package/dist/private/intl/table/sl-SI.js.map +1 -1
  743. package/dist/private/intl/table/sl-SI.mjs +3 -3
  744. package/dist/private/intl/table/sl-SI.mjs.map +1 -1
  745. package/dist/private/intl/table/sr-SP.cjs +3 -3
  746. package/dist/private/intl/table/sr-SP.cjs.map +1 -1
  747. package/dist/private/intl/table/sr-SP.js +3 -3
  748. package/dist/private/intl/table/sr-SP.js.map +1 -1
  749. package/dist/private/intl/table/sr-SP.mjs +3 -3
  750. package/dist/private/intl/table/sr-SP.mjs.map +1 -1
  751. package/dist/private/intl/table/sv-SE.cjs +3 -3
  752. package/dist/private/intl/table/sv-SE.cjs.map +1 -1
  753. package/dist/private/intl/table/sv-SE.js +3 -3
  754. package/dist/private/intl/table/sv-SE.js.map +1 -1
  755. package/dist/private/intl/table/sv-SE.mjs +3 -3
  756. package/dist/private/intl/table/sv-SE.mjs.map +1 -1
  757. package/dist/private/intl/table/tr-TR.cjs +3 -3
  758. package/dist/private/intl/table/tr-TR.cjs.map +1 -1
  759. package/dist/private/intl/table/tr-TR.js +3 -3
  760. package/dist/private/intl/table/tr-TR.js.map +1 -1
  761. package/dist/private/intl/table/tr-TR.mjs +3 -3
  762. package/dist/private/intl/table/tr-TR.mjs.map +1 -1
  763. package/dist/private/intl/table/uk-UA.cjs +3 -3
  764. package/dist/private/intl/table/uk-UA.cjs.map +1 -1
  765. package/dist/private/intl/table/uk-UA.js +3 -3
  766. package/dist/private/intl/table/uk-UA.js.map +1 -1
  767. package/dist/private/intl/table/uk-UA.mjs +3 -3
  768. package/dist/private/intl/table/uk-UA.mjs.map +1 -1
  769. package/dist/private/intl/table/zh-CN.cjs +4 -4
  770. package/dist/private/intl/table/zh-CN.cjs.map +1 -1
  771. package/dist/private/intl/table/zh-CN.js +4 -4
  772. package/dist/private/intl/table/zh-CN.js.map +1 -1
  773. package/dist/private/intl/table/zh-CN.mjs +4 -4
  774. package/dist/private/intl/table/zh-CN.mjs.map +1 -1
  775. package/dist/private/intl/table/zh-TW.cjs +3 -3
  776. package/dist/private/intl/table/zh-TW.cjs.map +1 -1
  777. package/dist/private/intl/table/zh-TW.js +3 -3
  778. package/dist/private/intl/table/zh-TW.js.map +1 -1
  779. package/dist/private/intl/table/zh-TW.mjs +3 -3
  780. package/dist/private/intl/table/zh-TW.mjs.map +1 -1
  781. package/dist/private/intl/tree/es-ES.cjs +1 -1
  782. package/dist/private/intl/tree/es-ES.cjs.map +1 -1
  783. package/dist/private/intl/tree/es-ES.js +1 -1
  784. package/dist/private/intl/tree/es-ES.js.map +1 -1
  785. package/dist/private/intl/tree/es-ES.mjs +1 -1
  786. package/dist/private/intl/tree/es-ES.mjs.map +1 -1
  787. package/dist/private/link/useLink.cjs +2 -1
  788. package/dist/private/link/useLink.cjs.map +1 -1
  789. package/dist/private/link/useLink.js +2 -1
  790. package/dist/private/link/useLink.js.map +1 -1
  791. package/dist/private/link/useLink.mjs +2 -1
  792. package/dist/private/link/useLink.mjs.map +1 -1
  793. package/dist/private/menu/useMenu.cjs.map +1 -1
  794. package/dist/private/menu/useMenu.js.map +1 -1
  795. package/dist/private/menu/useMenu.mjs.map +1 -1
  796. package/dist/private/menu/useMenuItem.cjs +34 -34
  797. package/dist/private/menu/useMenuItem.cjs.map +1 -1
  798. package/dist/private/menu/useMenuItem.js +34 -34
  799. package/dist/private/menu/useMenuItem.js.map +1 -1
  800. package/dist/private/menu/useMenuItem.mjs +34 -34
  801. package/dist/private/menu/useMenuItem.mjs.map +1 -1
  802. package/dist/private/menu/useMenuTrigger.cjs +96 -30
  803. package/dist/private/menu/useMenuTrigger.cjs.map +1 -1
  804. package/dist/private/menu/useMenuTrigger.js +96 -30
  805. package/dist/private/menu/useMenuTrigger.js.map +1 -1
  806. package/dist/private/menu/useMenuTrigger.mjs +96 -30
  807. package/dist/private/menu/useMenuTrigger.mjs.map +1 -1
  808. package/dist/private/menu/useSubmenuTrigger.cjs +44 -36
  809. package/dist/private/menu/useSubmenuTrigger.cjs.map +1 -1
  810. package/dist/private/menu/useSubmenuTrigger.js +44 -36
  811. package/dist/private/menu/useSubmenuTrigger.js.map +1 -1
  812. package/dist/private/menu/useSubmenuTrigger.mjs +44 -36
  813. package/dist/private/menu/useSubmenuTrigger.mjs.map +1 -1
  814. package/dist/private/menu/utils.cjs.map +1 -1
  815. package/dist/private/menu/utils.js.map +1 -1
  816. package/dist/private/menu/utils.mjs.map +1 -1
  817. package/dist/private/numberfield/useNumberField.cjs +24 -19
  818. package/dist/private/numberfield/useNumberField.cjs.map +1 -1
  819. package/dist/private/numberfield/useNumberField.js +24 -19
  820. package/dist/private/numberfield/useNumberField.js.map +1 -1
  821. package/dist/private/numberfield/useNumberField.mjs +24 -19
  822. package/dist/private/numberfield/useNumberField.mjs.map +1 -1
  823. package/dist/private/overlays/DismissButton.cjs.map +1 -1
  824. package/dist/private/overlays/DismissButton.js.map +1 -1
  825. package/dist/private/overlays/DismissButton.mjs.map +1 -1
  826. package/dist/private/overlays/Overlay.cjs +5 -1
  827. package/dist/private/overlays/Overlay.cjs.map +1 -1
  828. package/dist/private/overlays/Overlay.js +5 -1
  829. package/dist/private/overlays/Overlay.js.map +1 -1
  830. package/dist/private/overlays/Overlay.mjs +5 -1
  831. package/dist/private/overlays/Overlay.mjs.map +1 -1
  832. package/dist/private/overlays/ariaHideOutside.cjs +12 -8
  833. package/dist/private/overlays/ariaHideOutside.cjs.map +1 -1
  834. package/dist/private/overlays/ariaHideOutside.js +13 -9
  835. package/dist/private/overlays/ariaHideOutside.js.map +1 -1
  836. package/dist/private/overlays/ariaHideOutside.mjs +13 -9
  837. package/dist/private/overlays/ariaHideOutside.mjs.map +1 -1
  838. package/dist/private/overlays/calculatePosition.cjs +7 -7
  839. package/dist/private/overlays/calculatePosition.cjs.map +1 -1
  840. package/dist/private/overlays/calculatePosition.js +7 -7
  841. package/dist/private/overlays/calculatePosition.js.map +1 -1
  842. package/dist/private/overlays/calculatePosition.mjs +7 -7
  843. package/dist/private/overlays/calculatePosition.mjs.map +1 -1
  844. package/dist/private/overlays/useCloseOnScroll.cjs +3 -4
  845. package/dist/private/overlays/useCloseOnScroll.cjs.map +1 -1
  846. package/dist/private/overlays/useCloseOnScroll.js +4 -5
  847. package/dist/private/overlays/useCloseOnScroll.js.map +1 -1
  848. package/dist/private/overlays/useCloseOnScroll.mjs +4 -5
  849. package/dist/private/overlays/useCloseOnScroll.mjs.map +1 -1
  850. package/dist/private/overlays/useOverlay.cjs +13 -7
  851. package/dist/private/overlays/useOverlay.cjs.map +1 -1
  852. package/dist/private/overlays/useOverlay.js +13 -7
  853. package/dist/private/overlays/useOverlay.js.map +1 -1
  854. package/dist/private/overlays/useOverlay.mjs +13 -7
  855. package/dist/private/overlays/useOverlay.mjs.map +1 -1
  856. package/dist/private/overlays/useOverlayPosition.cjs +9 -2
  857. package/dist/private/overlays/useOverlayPosition.cjs.map +1 -1
  858. package/dist/private/overlays/useOverlayPosition.js +9 -2
  859. package/dist/private/overlays/useOverlayPosition.js.map +1 -1
  860. package/dist/private/overlays/useOverlayPosition.mjs +9 -2
  861. package/dist/private/overlays/useOverlayPosition.mjs.map +1 -1
  862. package/dist/private/overlays/usePopover.cjs +6 -2
  863. package/dist/private/overlays/usePopover.cjs.map +1 -1
  864. package/dist/private/overlays/usePopover.js +7 -2
  865. package/dist/private/overlays/usePopover.js.map +1 -1
  866. package/dist/private/overlays/usePopover.mjs +6 -2
  867. package/dist/private/overlays/usePopover.mjs.map +1 -1
  868. package/dist/private/overlays/usePreventScroll.cjs +2 -5
  869. package/dist/private/overlays/usePreventScroll.cjs.map +1 -1
  870. package/dist/private/overlays/usePreventScroll.js +3 -6
  871. package/dist/private/overlays/usePreventScroll.js.map +1 -1
  872. package/dist/private/overlays/usePreventScroll.mjs +3 -6
  873. package/dist/private/overlays/usePreventScroll.mjs.map +1 -1
  874. package/dist/private/progress/useProgressBar.cjs +2 -1
  875. package/dist/private/progress/useProgressBar.cjs.map +1 -1
  876. package/dist/private/progress/useProgressBar.js +2 -1
  877. package/dist/private/progress/useProgressBar.js.map +1 -1
  878. package/dist/private/progress/useProgressBar.mjs +2 -1
  879. package/dist/private/progress/useProgressBar.mjs.map +1 -1
  880. package/dist/private/radio/useRadioGroup.cjs +26 -23
  881. package/dist/private/radio/useRadioGroup.cjs.map +1 -1
  882. package/dist/private/radio/useRadioGroup.js +26 -23
  883. package/dist/private/radio/useRadioGroup.js.map +1 -1
  884. package/dist/private/radio/useRadioGroup.mjs +26 -23
  885. package/dist/private/radio/useRadioGroup.mjs.map +1 -1
  886. package/dist/private/searchfield/useSearchField.cjs +28 -22
  887. package/dist/private/searchfield/useSearchField.cjs.map +1 -1
  888. package/dist/private/searchfield/useSearchField.js +28 -22
  889. package/dist/private/searchfield/useSearchField.js.map +1 -1
  890. package/dist/private/searchfield/useSearchField.mjs +28 -22
  891. package/dist/private/searchfield/useSearchField.mjs.map +1 -1
  892. package/dist/private/select/useSelect.cjs +22 -25
  893. package/dist/private/select/useSelect.cjs.map +1 -1
  894. package/dist/private/select/useSelect.js +24 -27
  895. package/dist/private/select/useSelect.js.map +1 -1
  896. package/dist/private/select/useSelect.mjs +22 -25
  897. package/dist/private/select/useSelect.mjs.map +1 -1
  898. package/dist/private/selection/ListKeyboardDelegate.cjs +31 -3
  899. package/dist/private/selection/ListKeyboardDelegate.cjs.map +1 -1
  900. package/dist/private/selection/ListKeyboardDelegate.js +31 -3
  901. package/dist/private/selection/ListKeyboardDelegate.js.map +1 -1
  902. package/dist/private/selection/ListKeyboardDelegate.mjs +31 -3
  903. package/dist/private/selection/ListKeyboardDelegate.mjs.map +1 -1
  904. package/dist/private/selection/useSelectableCollection.cjs +222 -159
  905. package/dist/private/selection/useSelectableCollection.cjs.map +1 -1
  906. package/dist/private/selection/useSelectableCollection.js +232 -168
  907. package/dist/private/selection/useSelectableCollection.js.map +1 -1
  908. package/dist/private/selection/useSelectableCollection.mjs +222 -159
  909. package/dist/private/selection/useSelectableCollection.mjs.map +1 -1
  910. package/dist/private/selection/useSelectableItem.cjs +58 -13
  911. package/dist/private/selection/useSelectableItem.cjs.map +1 -1
  912. package/dist/private/selection/useSelectableItem.js +58 -13
  913. package/dist/private/selection/useSelectableItem.js.map +1 -1
  914. package/dist/private/selection/useSelectableItem.mjs +58 -13
  915. package/dist/private/selection/useSelectableItem.mjs.map +1 -1
  916. package/dist/private/selection/useTypeSelect.cjs +50 -18
  917. package/dist/private/selection/useTypeSelect.cjs.map +1 -1
  918. package/dist/private/selection/useTypeSelect.js +51 -19
  919. package/dist/private/selection/useTypeSelect.js.map +1 -1
  920. package/dist/private/selection/useTypeSelect.mjs +51 -19
  921. package/dist/private/selection/useTypeSelect.mjs.map +1 -1
  922. package/dist/private/slider/useSlider.cjs.map +1 -1
  923. package/dist/private/slider/useSlider.js.map +1 -1
  924. package/dist/private/slider/useSlider.mjs.map +1 -1
  925. package/dist/private/slider/useSliderThumb.cjs +28 -26
  926. package/dist/private/slider/useSliderThumb.cjs.map +1 -1
  927. package/dist/private/slider/useSliderThumb.js +28 -26
  928. package/dist/private/slider/useSliderThumb.js.map +1 -1
  929. package/dist/private/slider/useSliderThumb.mjs +28 -26
  930. package/dist/private/slider/useSliderThumb.mjs.map +1 -1
  931. package/dist/private/spinbutton/useSpinButton.cjs +49 -34
  932. package/dist/private/spinbutton/useSpinButton.cjs.map +1 -1
  933. package/dist/private/spinbutton/useSpinButton.js +49 -34
  934. package/dist/private/spinbutton/useSpinButton.js.map +1 -1
  935. package/dist/private/spinbutton/useSpinButton.mjs +49 -34
  936. package/dist/private/spinbutton/useSpinButton.mjs.map +1 -1
  937. package/dist/private/ssr/SSRProvider.cjs +12 -3
  938. package/dist/private/ssr/SSRProvider.cjs.map +1 -1
  939. package/dist/private/ssr/SSRProvider.js +12 -3
  940. package/dist/private/ssr/SSRProvider.js.map +1 -1
  941. package/dist/private/ssr/SSRProvider.mjs +12 -3
  942. package/dist/private/ssr/SSRProvider.mjs.map +1 -1
  943. package/dist/private/steplist/useStepList.cjs.map +1 -1
  944. package/dist/private/steplist/useStepList.js.map +1 -1
  945. package/dist/private/steplist/useStepList.mjs.map +1 -1
  946. package/dist/private/steplist/useStepListItem.cjs +0 -9
  947. package/dist/private/steplist/useStepListItem.cjs.map +1 -1
  948. package/dist/private/steplist/useStepListItem.js +0 -10
  949. package/dist/private/steplist/useStepListItem.js.map +1 -1
  950. package/dist/private/steplist/useStepListItem.mjs +0 -9
  951. package/dist/private/steplist/useStepListItem.mjs.map +1 -1
  952. package/dist/private/table/useTable.cjs +4 -2
  953. package/dist/private/table/useTable.cjs.map +1 -1
  954. package/dist/private/table/useTable.js +4 -2
  955. package/dist/private/table/useTable.js.map +1 -1
  956. package/dist/private/table/useTable.mjs +4 -2
  957. package/dist/private/table/useTable.mjs.map +1 -1
  958. package/dist/private/table/useTableCell.cjs +2 -0
  959. package/dist/private/table/useTableCell.cjs.map +1 -1
  960. package/dist/private/table/useTableCell.js +2 -0
  961. package/dist/private/table/useTableCell.js.map +1 -1
  962. package/dist/private/table/useTableCell.mjs +2 -0
  963. package/dist/private/table/useTableCell.mjs.map +1 -1
  964. package/dist/private/table/useTableColumnHeader.cjs +2 -3
  965. package/dist/private/table/useTableColumnHeader.cjs.map +1 -1
  966. package/dist/private/table/useTableColumnHeader.js +2 -3
  967. package/dist/private/table/useTableColumnHeader.js.map +1 -1
  968. package/dist/private/table/useTableColumnHeader.mjs +2 -3
  969. package/dist/private/table/useTableColumnHeader.mjs.map +1 -1
  970. package/dist/private/table/useTableColumnResize.cjs +32 -14
  971. package/dist/private/table/useTableColumnResize.cjs.map +1 -1
  972. package/dist/private/table/useTableColumnResize.js +33 -15
  973. package/dist/private/table/useTableColumnResize.js.map +1 -1
  974. package/dist/private/table/useTableColumnResize.mjs +33 -15
  975. package/dist/private/table/useTableColumnResize.mjs.map +1 -1
  976. package/dist/private/table/useTableRow.cjs +4 -2
  977. package/dist/private/table/useTableRow.cjs.map +1 -1
  978. package/dist/private/table/useTableRow.js +4 -2
  979. package/dist/private/table/useTableRow.js.map +1 -1
  980. package/dist/private/table/useTableRow.mjs +4 -2
  981. package/dist/private/table/useTableRow.mjs.map +1 -1
  982. package/dist/private/table/useTableSelectionCheckbox.cjs.map +1 -1
  983. package/dist/private/table/useTableSelectionCheckbox.js.map +1 -1
  984. package/dist/private/table/useTableSelectionCheckbox.mjs.map +1 -1
  985. package/dist/private/tabs/TabsKeyboardDelegate.cjs +2 -2
  986. package/dist/private/tabs/TabsKeyboardDelegate.cjs.map +1 -1
  987. package/dist/private/tabs/TabsKeyboardDelegate.js +2 -2
  988. package/dist/private/tabs/TabsKeyboardDelegate.js.map +1 -1
  989. package/dist/private/tabs/TabsKeyboardDelegate.mjs +2 -2
  990. package/dist/private/tabs/TabsKeyboardDelegate.mjs.map +1 -1
  991. package/dist/private/tag/useTag.cjs +21 -11
  992. package/dist/private/tag/useTag.cjs.map +1 -1
  993. package/dist/private/tag/useTag.js +21 -11
  994. package/dist/private/tag/useTag.js.map +1 -1
  995. package/dist/private/tag/useTag.mjs +21 -11
  996. package/dist/private/tag/useTag.mjs.map +1 -1
  997. package/dist/private/textfield/useFormattedTextField.cjs +1 -0
  998. package/dist/private/textfield/useFormattedTextField.cjs.map +1 -1
  999. package/dist/private/textfield/useFormattedTextField.js +1 -0
  1000. package/dist/private/textfield/useFormattedTextField.js.map +1 -1
  1001. package/dist/private/textfield/useFormattedTextField.mjs +1 -0
  1002. package/dist/private/textfield/useFormattedTextField.mjs.map +1 -1
  1003. package/dist/private/toast/useToast.cjs.map +1 -1
  1004. package/dist/private/toast/useToast.js.map +1 -1
  1005. package/dist/private/toast/useToast.mjs.map +1 -1
  1006. package/dist/private/toast/useToastRegion.cjs +5 -0
  1007. package/dist/private/toast/useToastRegion.cjs.map +1 -1
  1008. package/dist/private/toast/useToastRegion.js +5 -0
  1009. package/dist/private/toast/useToastRegion.js.map +1 -1
  1010. package/dist/private/toast/useToastRegion.mjs +5 -0
  1011. package/dist/private/toast/useToastRegion.mjs.map +1 -1
  1012. package/dist/private/toggle/useToggle.cjs +1 -0
  1013. package/dist/private/toggle/useToggle.cjs.map +1 -1
  1014. package/dist/private/toggle/useToggle.js +1 -0
  1015. package/dist/private/toggle/useToggle.js.map +1 -1
  1016. package/dist/private/toggle/useToggle.mjs +1 -0
  1017. package/dist/private/toggle/useToggle.mjs.map +1 -1
  1018. package/dist/private/tokenfield/useToken.cjs +46 -0
  1019. package/dist/private/tokenfield/useToken.cjs.map +1 -0
  1020. package/dist/private/tokenfield/useToken.js +41 -0
  1021. package/dist/private/tokenfield/useToken.js.map +1 -0
  1022. package/dist/private/tokenfield/useToken.mjs +41 -0
  1023. package/dist/private/tokenfield/useToken.mjs.map +1 -0
  1024. package/dist/private/tokenfield/useTokenField.cjs +587 -0
  1025. package/dist/private/tokenfield/useTokenField.cjs.map +1 -0
  1026. package/dist/private/tokenfield/useTokenField.js +590 -0
  1027. package/dist/private/tokenfield/useTokenField.js.map +1 -0
  1028. package/dist/private/tokenfield/useTokenField.mjs +579 -0
  1029. package/dist/private/tokenfield/useTokenField.mjs.map +1 -0
  1030. package/dist/private/toolbar/useToolbar.cjs +1 -1
  1031. package/dist/private/toolbar/useToolbar.cjs.map +1 -1
  1032. package/dist/private/toolbar/useToolbar.js +1 -1
  1033. package/dist/private/toolbar/useToolbar.js.map +1 -1
  1034. package/dist/private/toolbar/useToolbar.mjs +1 -1
  1035. package/dist/private/toolbar/useToolbar.mjs.map +1 -1
  1036. package/dist/private/tooltip/intlStrings.cjs +108 -0
  1037. package/dist/private/tooltip/intlStrings.cjs.map +1 -0
  1038. package/dist/private/tooltip/intlStrings.js +110 -0
  1039. package/dist/private/tooltip/intlStrings.js.map +1 -0
  1040. package/dist/private/tooltip/intlStrings.mjs +110 -0
  1041. package/dist/private/tooltip/intlStrings.mjs.map +1 -0
  1042. package/dist/private/tooltip/usePreviewTrigger.cjs +212 -0
  1043. package/dist/private/tooltip/usePreviewTrigger.cjs.map +1 -0
  1044. package/dist/private/tooltip/usePreviewTrigger.js +208 -0
  1045. package/dist/private/tooltip/usePreviewTrigger.js.map +1 -0
  1046. package/dist/private/tooltip/usePreviewTrigger.mjs +207 -0
  1047. package/dist/private/tooltip/usePreviewTrigger.mjs.map +1 -0
  1048. package/dist/private/tooltip/useSafeArea.cjs +134 -0
  1049. package/dist/private/tooltip/useSafeArea.cjs.map +1 -0
  1050. package/dist/private/tooltip/useSafeArea.js +130 -0
  1051. package/dist/private/tooltip/useSafeArea.js.map +1 -0
  1052. package/dist/private/tooltip/useSafeArea.mjs +129 -0
  1053. package/dist/private/tooltip/useSafeArea.mjs.map +1 -0
  1054. package/dist/private/tooltip/useTooltipTrigger.cjs +1 -0
  1055. package/dist/private/tooltip/useTooltipTrigger.cjs.map +1 -1
  1056. package/dist/private/tooltip/useTooltipTrigger.js +1 -0
  1057. package/dist/private/tooltip/useTooltipTrigger.js.map +1 -1
  1058. package/dist/private/tooltip/useTooltipTrigger.mjs +1 -0
  1059. package/dist/private/tooltip/useTooltipTrigger.mjs.map +1 -1
  1060. package/dist/private/tree/useTree.cjs +1 -0
  1061. package/dist/private/tree/useTree.cjs.map +1 -1
  1062. package/dist/private/tree/useTree.js +1 -0
  1063. package/dist/private/tree/useTree.js.map +1 -1
  1064. package/dist/private/tree/useTree.mjs +1 -0
  1065. package/dist/private/tree/useTree.mjs.map +1 -1
  1066. package/dist/private/tree/useTreeItem.cjs.map +1 -1
  1067. package/dist/private/tree/useTreeItem.js.map +1 -1
  1068. package/dist/private/tree/useTreeItem.mjs.map +1 -1
  1069. package/dist/private/utils/domHelpers.cjs +43 -12
  1070. package/dist/private/utils/domHelpers.cjs.map +1 -1
  1071. package/dist/private/utils/domHelpers.js +45 -14
  1072. package/dist/private/utils/domHelpers.js.map +1 -1
  1073. package/dist/private/utils/domHelpers.mjs +43 -13
  1074. package/dist/private/utils/domHelpers.mjs.map +1 -1
  1075. package/dist/private/utils/isElementVisible.cjs +1 -1
  1076. package/dist/private/utils/isElementVisible.cjs.map +1 -1
  1077. package/dist/private/utils/isElementVisible.js +1 -1
  1078. package/dist/private/utils/isElementVisible.js.map +1 -1
  1079. package/dist/private/utils/isElementVisible.mjs +1 -1
  1080. package/dist/private/utils/isElementVisible.mjs.map +1 -1
  1081. package/dist/private/utils/isFocusable.cjs +3 -1
  1082. package/dist/private/utils/isFocusable.cjs.map +1 -1
  1083. package/dist/private/utils/isFocusable.js +3 -1
  1084. package/dist/private/utils/isFocusable.js.map +1 -1
  1085. package/dist/private/utils/isFocusable.mjs +3 -1
  1086. package/dist/private/utils/isFocusable.mjs.map +1 -1
  1087. package/dist/private/utils/isVirtualEvent.cjs +1 -1
  1088. package/dist/private/utils/isVirtualEvent.cjs.map +1 -1
  1089. package/dist/private/utils/isVirtualEvent.js +1 -1
  1090. package/dist/private/utils/isVirtualEvent.js.map +1 -1
  1091. package/dist/private/utils/isVirtualEvent.mjs +1 -1
  1092. package/dist/private/utils/isVirtualEvent.mjs.map +1 -1
  1093. package/dist/private/utils/openLink.cjs +4 -2
  1094. package/dist/private/utils/openLink.cjs.map +1 -1
  1095. package/dist/private/utils/openLink.js +4 -2
  1096. package/dist/private/utils/openLink.js.map +1 -1
  1097. package/dist/private/utils/openLink.mjs +4 -2
  1098. package/dist/private/utils/openLink.mjs.map +1 -1
  1099. package/dist/private/utils/platform.cjs +8 -4
  1100. package/dist/private/utils/platform.cjs.map +1 -1
  1101. package/dist/private/utils/platform.js +7 -4
  1102. package/dist/private/utils/platform.js.map +1 -1
  1103. package/dist/private/utils/platform.mjs +7 -4
  1104. package/dist/private/utils/platform.mjs.map +1 -1
  1105. package/dist/private/utils/scrollIntoView.cjs +3 -3
  1106. package/dist/private/utils/scrollIntoView.cjs.map +1 -1
  1107. package/dist/private/utils/scrollIntoView.js +4 -4
  1108. package/dist/private/utils/scrollIntoView.js.map +1 -1
  1109. package/dist/private/utils/scrollIntoView.mjs +4 -4
  1110. package/dist/private/utils/scrollIntoView.mjs.map +1 -1
  1111. package/dist/private/utils/shadowdom/DOMFunctions.cjs +28 -1
  1112. package/dist/private/utils/shadowdom/DOMFunctions.cjs.map +1 -1
  1113. package/dist/private/utils/shadowdom/DOMFunctions.js +30 -2
  1114. package/dist/private/utils/shadowdom/DOMFunctions.js.map +1 -1
  1115. package/dist/private/utils/shadowdom/DOMFunctions.mjs +28 -2
  1116. package/dist/private/utils/shadowdom/DOMFunctions.mjs.map +1 -1
  1117. package/dist/private/utils/useDeepMemo.cjs +4 -1
  1118. package/dist/private/utils/useDeepMemo.cjs.map +1 -1
  1119. package/dist/private/utils/useDeepMemo.js +4 -1
  1120. package/dist/private/utils/useDeepMemo.js.map +1 -1
  1121. package/dist/private/utils/useDeepMemo.mjs +4 -1
  1122. package/dist/private/utils/useDeepMemo.mjs.map +1 -1
  1123. package/dist/private/utils/useDrag1D.cjs +2 -0
  1124. package/dist/private/utils/useDrag1D.cjs.map +1 -1
  1125. package/dist/private/utils/useDrag1D.js +2 -0
  1126. package/dist/private/utils/useDrag1D.js.map +1 -1
  1127. package/dist/private/utils/useDrag1D.mjs +2 -0
  1128. package/dist/private/utils/useDrag1D.mjs.map +1 -1
  1129. package/dist/private/utils/useFormReset.cjs +4 -0
  1130. package/dist/private/utils/useFormReset.cjs.map +1 -1
  1131. package/dist/private/utils/useFormReset.js +4 -0
  1132. package/dist/private/utils/useFormReset.js.map +1 -1
  1133. package/dist/private/utils/useFormReset.mjs +4 -0
  1134. package/dist/private/utils/useFormReset.mjs.map +1 -1
  1135. package/dist/private/utils/useId.cjs +23 -4
  1136. package/dist/private/utils/useId.cjs.map +1 -1
  1137. package/dist/private/utils/useId.js +23 -4
  1138. package/dist/private/utils/useId.js.map +1 -1
  1139. package/dist/private/utils/useId.mjs +23 -4
  1140. package/dist/private/utils/useId.mjs.map +1 -1
  1141. package/dist/private/utils/useLoadMoreSentinel.cjs +7 -3
  1142. package/dist/private/utils/useLoadMoreSentinel.cjs.map +1 -1
  1143. package/dist/private/utils/useLoadMoreSentinel.js +7 -3
  1144. package/dist/private/utils/useLoadMoreSentinel.js.map +1 -1
  1145. package/dist/private/utils/useLoadMoreSentinel.mjs +7 -3
  1146. package/dist/private/utils/useLoadMoreSentinel.mjs.map +1 -1
  1147. package/dist/private/utils/useObjectRef.cjs +3 -1
  1148. package/dist/private/utils/useObjectRef.cjs.map +1 -1
  1149. package/dist/private/utils/useObjectRef.js +3 -1
  1150. package/dist/private/utils/useObjectRef.js.map +1 -1
  1151. package/dist/private/utils/useObjectRef.mjs +3 -1
  1152. package/dist/private/utils/useObjectRef.mjs.map +1 -1
  1153. package/dist/private/utils/useSyncRef.cjs +2 -0
  1154. package/dist/private/utils/useSyncRef.cjs.map +1 -1
  1155. package/dist/private/utils/useSyncRef.js +2 -0
  1156. package/dist/private/utils/useSyncRef.js.map +1 -1
  1157. package/dist/private/utils/useSyncRef.mjs +2 -0
  1158. package/dist/private/utils/useSyncRef.mjs.map +1 -1
  1159. package/dist/private/utils/useViewportSize.cjs +3 -3
  1160. package/dist/private/utils/useViewportSize.cjs.map +1 -1
  1161. package/dist/private/utils/useViewportSize.js +4 -4
  1162. package/dist/private/utils/useViewportSize.js.map +1 -1
  1163. package/dist/private/utils/useViewportSize.mjs +4 -4
  1164. package/dist/private/utils/useViewportSize.mjs.map +1 -1
  1165. package/dist/private/virtualizer/ScrollView.cjs +7 -4
  1166. package/dist/private/virtualizer/ScrollView.cjs.map +1 -1
  1167. package/dist/private/virtualizer/ScrollView.js +8 -5
  1168. package/dist/private/virtualizer/ScrollView.js.map +1 -1
  1169. package/dist/private/virtualizer/ScrollView.mjs +8 -5
  1170. package/dist/private/virtualizer/ScrollView.mjs.map +1 -1
  1171. package/dist/private/virtualizer/VirtualizerItem.cjs +3 -2
  1172. package/dist/private/virtualizer/VirtualizerItem.cjs.map +1 -1
  1173. package/dist/private/virtualizer/VirtualizerItem.js +3 -2
  1174. package/dist/private/virtualizer/VirtualizerItem.js.map +1 -1
  1175. package/dist/private/virtualizer/VirtualizerItem.mjs +3 -2
  1176. package/dist/private/virtualizer/VirtualizerItem.mjs.map +1 -1
  1177. package/dist/private/virtualizer/useVirtualizerItem.cjs +35 -2
  1178. package/dist/private/virtualizer/useVirtualizerItem.cjs.map +1 -1
  1179. package/dist/private/virtualizer/useVirtualizerItem.js +36 -3
  1180. package/dist/private/virtualizer/useVirtualizerItem.js.map +1 -1
  1181. package/dist/private/virtualizer/useVirtualizerItem.mjs +36 -3
  1182. package/dist/private/virtualizer/useVirtualizerItem.mjs.map +1 -1
  1183. package/dist/private/visually-hidden/VisuallyHidden.cjs +2 -1
  1184. package/dist/private/visually-hidden/VisuallyHidden.cjs.map +1 -1
  1185. package/dist/private/visually-hidden/VisuallyHidden.js +2 -1
  1186. package/dist/private/visually-hidden/VisuallyHidden.js.map +1 -1
  1187. package/dist/private/visually-hidden/VisuallyHidden.mjs +2 -1
  1188. package/dist/private/visually-hidden/VisuallyHidden.mjs.map +1 -1
  1189. package/dist/types/exports/index.d.ts +9 -0
  1190. package/dist/types/exports/private/utils/domHelpers.d.ts +1 -1
  1191. package/dist/types/exports/private/utils/platform.d.ts +1 -1
  1192. package/dist/types/exports/private/utils/shadowdom/DOMFunctions.d.ts +1 -1
  1193. package/dist/types/exports/useContextMenu.d.ts +2 -0
  1194. package/dist/types/exports/usePreviewTrigger.d.ts +2 -0
  1195. package/dist/types/exports/useTokenField.d.ts +4 -0
  1196. package/dist/types/src/button/useToggleButtonGroup.d.ts +8 -0
  1197. package/dist/types/src/combobox/useComboBox.d.ts +7 -1
  1198. package/dist/types/src/dialog/useDialog.d.ts +2 -0
  1199. package/dist/types/src/dnd/utils.d.ts +2 -2
  1200. package/dist/types/src/grid/useGrid.d.ts +7 -0
  1201. package/dist/types/src/grid/useGridCell.d.ts +8 -1
  1202. package/dist/types/src/grid/utils.d.ts +1 -0
  1203. package/dist/types/src/gridlist/useGridList.d.ts +7 -0
  1204. package/dist/types/src/gridlist/useGridListItem.d.ts +13 -0
  1205. package/dist/types/src/interactions/createKeyboardShortcutHandler.d.ts +56 -0
  1206. package/dist/types/src/interactions/useContextMenu.d.ts +21 -0
  1207. package/dist/types/src/interactions/useKeyboard.d.ts +7 -0
  1208. package/dist/types/src/interactions/useLongPress.d.ts +2 -0
  1209. package/dist/types/src/menu/useMenu.d.ts +1 -1
  1210. package/dist/types/src/menu/utils.d.ts +1 -1
  1211. package/dist/types/src/overlays/calculatePosition.d.ts +1 -0
  1212. package/dist/types/src/overlays/useOverlayPosition.d.ts +8 -0
  1213. package/dist/types/src/overlays/usePopover.d.ts +2 -1
  1214. package/dist/types/src/selection/ListKeyboardDelegate.d.ts +1 -0
  1215. package/dist/types/src/selection/useSelectableCollection.d.ts +7 -0
  1216. package/dist/types/src/table/useTableCell.d.ts +12 -0
  1217. package/dist/types/src/table/useTableColumnHeader.d.ts +12 -0
  1218. package/dist/types/src/table/useTableColumnResize.d.ts +5 -0
  1219. package/dist/types/src/tokenfield/useToken.d.ts +14 -0
  1220. package/dist/types/src/tokenfield/useTokenField.d.ts +57 -0
  1221. package/dist/types/src/tooltip/usePreviewTrigger.d.ts +27 -0
  1222. package/dist/types/src/tooltip/useSafeArea.d.ts +26 -0
  1223. package/dist/types/src/tree/useTree.d.ts +1 -1
  1224. package/dist/types/src/utils/domHelpers.d.ts +20 -5
  1225. package/dist/types/src/utils/platform.d.ts +1 -0
  1226. package/dist/types/src/utils/shadowdom/DOMFunctions.d.ts +11 -0
  1227. package/dist/types/src/utils/useLoadMoreSentinel.d.ts +7 -0
  1228. package/dist/types/src/virtualizer/VirtualizerItem.d.ts +1 -0
  1229. package/dist/types/src/virtualizer/useVirtualizerItem.d.ts +1 -0
  1230. package/i18n/ar-AE.js +1 -1
  1231. package/i18n/ar-AE.mjs +1 -1
  1232. package/i18n/bg-BG.js +1 -1
  1233. package/i18n/bg-BG.mjs +1 -1
  1234. package/i18n/cs-CZ.js +1 -1
  1235. package/i18n/cs-CZ.mjs +1 -1
  1236. package/i18n/da-DK.js +1 -1
  1237. package/i18n/da-DK.mjs +1 -1
  1238. package/i18n/de-DE.js +1 -1
  1239. package/i18n/de-DE.mjs +1 -1
  1240. package/i18n/el-GR.js +1 -1
  1241. package/i18n/el-GR.mjs +1 -1
  1242. package/i18n/en-US.js +1 -1
  1243. package/i18n/en-US.mjs +1 -1
  1244. package/i18n/es-ES.js +1 -1
  1245. package/i18n/es-ES.mjs +1 -1
  1246. package/i18n/et-EE.js +1 -1
  1247. package/i18n/et-EE.mjs +1 -1
  1248. package/i18n/fi-FI.js +1 -1
  1249. package/i18n/fi-FI.mjs +1 -1
  1250. package/i18n/fr-FR.js +1 -1
  1251. package/i18n/fr-FR.mjs +1 -1
  1252. package/i18n/he-IL.js +1 -1
  1253. package/i18n/he-IL.mjs +1 -1
  1254. package/i18n/hr-HR.js +1 -1
  1255. package/i18n/hr-HR.mjs +1 -1
  1256. package/i18n/hu-HU.js +1 -1
  1257. package/i18n/hu-HU.mjs +1 -1
  1258. package/i18n/it-IT.js +1 -1
  1259. package/i18n/it-IT.mjs +1 -1
  1260. package/i18n/ja-JP.js +1 -1
  1261. package/i18n/ja-JP.mjs +1 -1
  1262. package/i18n/ko-KR.js +1 -1
  1263. package/i18n/ko-KR.mjs +1 -1
  1264. package/i18n/lt-LT.js +1 -1
  1265. package/i18n/lt-LT.mjs +1 -1
  1266. package/i18n/lv-LV.js +1 -1
  1267. package/i18n/lv-LV.mjs +1 -1
  1268. package/i18n/nb-NO.js +1 -1
  1269. package/i18n/nb-NO.mjs +1 -1
  1270. package/i18n/nl-NL.js +1 -1
  1271. package/i18n/nl-NL.mjs +1 -1
  1272. package/i18n/pl-PL.js +1 -1
  1273. package/i18n/pl-PL.mjs +1 -1
  1274. package/i18n/pt-BR.js +1 -1
  1275. package/i18n/pt-BR.mjs +1 -1
  1276. package/i18n/pt-PT.js +1 -1
  1277. package/i18n/pt-PT.mjs +1 -1
  1278. package/i18n/ro-RO.js +1 -1
  1279. package/i18n/ro-RO.mjs +1 -1
  1280. package/i18n/ru-RU.js +1 -1
  1281. package/i18n/ru-RU.mjs +1 -1
  1282. package/i18n/sk-SK.js +1 -1
  1283. package/i18n/sk-SK.mjs +1 -1
  1284. package/i18n/sl-SI.js +1 -1
  1285. package/i18n/sl-SI.mjs +1 -1
  1286. package/i18n/sr-SP.js +1 -1
  1287. package/i18n/sr-SP.mjs +1 -1
  1288. package/i18n/sv-SE.js +1 -1
  1289. package/i18n/sv-SE.mjs +1 -1
  1290. package/i18n/tr-TR.js +1 -1
  1291. package/i18n/tr-TR.mjs +1 -1
  1292. package/i18n/uk-UA.js +1 -1
  1293. package/i18n/uk-UA.mjs +1 -1
  1294. package/i18n/zh-CN.js +1 -1
  1295. package/i18n/zh-CN.mjs +1 -1
  1296. package/i18n/zh-TW.js +1 -1
  1297. package/i18n/zh-TW.mjs +1 -1
  1298. package/package.json +6 -6
  1299. package/useContextMenu/package.json +5 -0
  1300. package/usePreviewTrigger/package.json +5 -0
  1301. package/useTokenField/package.json +5 -0
@@ -98,6 +98,7 @@ function $1ee97da2e501f1cb$export$b8cbbb20a51697de(props, state, ref) {
98
98
  if (removedFocusedToastIndex > -1) {
99
99
  // In pointer modality, move focus out of the toast region.
100
100
  // Otherwise auto-dismiss timers will appear "stuck".
101
+ // oxlint-disable-next-line react/react-compiler
101
102
  if ((0, $d0df89f3abe2c2ca$exports.getInteractionModality)() === 'pointer' && lastFocused.current?.isConnected) (0, $4b9e9ed3f006ad27$exports.focusWithoutScrolling)(lastFocused.current);
102
103
  else {
103
104
  let i = 0;
@@ -130,11 +131,13 @@ function $1ee97da2e501f1cb$export$b8cbbb20a51697de(props, state, ref) {
130
131
  let { focusWithinProps: focusWithinProps } = (0, $b4f85e31b7b8044c$exports.useFocusWithin)({
131
132
  onFocusWithin: (e)=>{
132
133
  isFocused.current = true;
134
+ // oxlint-disable-next-line react/react-compiler
133
135
  lastFocused.current = e.relatedTarget;
134
136
  updateTimers();
135
137
  },
136
138
  onBlurWithin: ()=>{
137
139
  isFocused.current = false;
140
+ // oxlint-disable-next-line react/react-compiler
138
141
  lastFocused.current = null;
139
142
  updateTimers();
140
143
  }
@@ -148,6 +151,7 @@ function $1ee97da2e501f1cb$export$b8cbbb20a51697de(props, state, ref) {
148
151
  if (state.visibleToasts.length === 0 && lastFocused.current?.isConnected) {
149
152
  if ((0, $d0df89f3abe2c2ca$exports.getInteractionModality)() === 'pointer') (0, $4b9e9ed3f006ad27$exports.focusWithoutScrolling)(lastFocused.current);
150
153
  else lastFocused.current.focus();
154
+ // oxlint-disable-next-line react/react-compiler
151
155
  lastFocused.current = null;
152
156
  }
153
157
  }, [
@@ -166,6 +170,7 @@ function $1ee97da2e501f1cb$export$b8cbbb20a51697de(props, state, ref) {
166
170
  ref
167
171
  ]);
168
172
  return {
173
+ // oxlint-disable-next-line react/react-compiler
169
174
  regionProps: (0, $89b39774f3b79dbb$exports.mergeProps)(landmarkProps, hoverProps, focusWithinProps, {
170
175
  tabIndex: -1,
171
176
  // Mark the toast region as a "top layer", so that it:
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/react-aria/src/toast/useToastRegion.ts"],"sourcesContent":["/*\n * Copyright 2025 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, FocusableElement, RefObject} from '@react-types/shared';\nimport {focusWithoutScrolling} from '../utils/focusWithoutScrolling';\nimport {getEventTarget} from '../utils/shadowdom/DOMFunctions';\nimport {getInteractionModality} from '../interactions/useFocusVisible';\nimport intlMessages from '../../intl/toast/*.json';\nimport {mergeProps} from '../utils/mergeProps';\nimport {ToastState} from 'react-stately/useToastState';\nimport {useCallback, useEffect, useRef} from 'react';\n// @ts-ignore\nimport {useFocusWithin} from '../interactions/useFocusWithin';\nimport {useHover} from '../interactions/useHover';\nimport {useLandmark} from '../landmark/useLandmark';\nimport {useLayoutEffect} from '../utils/useLayoutEffect';\nimport {useLocalizedStringFormatter} from '../i18n/useLocalizedStringFormatter';\n\nexport interface AriaToastRegionProps extends AriaLabelingProps {\n /**\n * An accessibility label for the toast region.\n *\n * @default 'Notifications'\n */\n 'aria-label'?: string;\n}\n\nexport interface ToastRegionAria {\n /** Props for the landmark region element. */\n regionProps: DOMAttributes;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a toast region containing one or more\n * toasts. Toasts display brief, temporary notifications of actions, errors, or other events in an\n * application.\n */\nexport function useToastRegion<T>(\n props: AriaToastRegionProps,\n state: ToastState<T>,\n ref: RefObject<HTMLElement | null>\n): ToastRegionAria {\n let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-aria/toast');\n let {landmarkProps} = useLandmark(\n {\n role: 'region',\n 'aria-label':\n props['aria-label'] ||\n stringFormatter.format('notifications', {count: state.visibleToasts.length})\n },\n ref\n );\n\n let isHovered = useRef(false);\n let isFocused = useRef(false);\n let updateTimers = useCallback(() => {\n if (isHovered.current || isFocused.current) {\n state.pauseAll();\n } else {\n state.resumeAll();\n }\n }, [state]);\n\n let {hoverProps} = useHover({\n onHoverStart: () => {\n isHovered.current = true;\n updateTimers();\n },\n onHoverEnd: () => {\n isHovered.current = false;\n updateTimers();\n }\n });\n\n // Manage focus within the toast region.\n // If a focused containing toast is removed, move focus to the next toast, or the previous toast if there is no next toast.\n let toasts = useRef<FocusableElement[]>([]);\n let prevVisibleToasts = useRef(state.visibleToasts);\n let focusedToast = useRef<number | null>(null);\n useLayoutEffect(() => {\n // If no toast has focus, then don't do anything.\n if (focusedToast.current === -1 || state.visibleToasts.length === 0 || !ref.current) {\n toasts.current = [];\n prevVisibleToasts.current = state.visibleToasts;\n return;\n }\n toasts.current = [\n ...ref.current.querySelectorAll('[role=\"alertdialog\"]')\n ] as FocusableElement[];\n // If the visible toasts haven't changed, we don't need to do anything.\n if (\n prevVisibleToasts.current.length === state.visibleToasts.length &&\n state.visibleToasts.every((t, i) => t.key === prevVisibleToasts.current[i].key)\n ) {\n prevVisibleToasts.current = state.visibleToasts;\n return;\n }\n // Get a list of all toasts by index and add info if they are removed.\n let allToasts = prevVisibleToasts.current.map((t, i) => ({\n ...t,\n i,\n isRemoved: !state.visibleToasts.some(t2 => t.key === t2.key)\n }));\n\n let removedFocusedToastIndex = allToasts.findIndex(\n t => t.i === focusedToast.current && t.isRemoved\n );\n\n // If the focused toast was removed, focus the next or previous toast.\n if (removedFocusedToastIndex > -1) {\n // In pointer modality, move focus out of the toast region.\n // Otherwise auto-dismiss timers will appear \"stuck\".\n if (getInteractionModality() === 'pointer' && lastFocused.current?.isConnected) {\n focusWithoutScrolling(lastFocused.current);\n } else {\n let i = 0;\n let nextToast;\n let prevToast;\n while (i <= removedFocusedToastIndex) {\n if (!allToasts[i].isRemoved) {\n prevToast = Math.max(0, i - 1);\n }\n i++;\n }\n while (i < allToasts.length) {\n if (!allToasts[i].isRemoved) {\n nextToast = i - 1;\n break;\n }\n i++;\n }\n\n // in the case where it's one toast at a time, both will be undefined, but we know the index must be 0\n if (prevToast === undefined && nextToast === undefined) {\n prevToast = 0;\n }\n\n // prioritize going to newer toasts\n if (prevToast >= 0 && prevToast < toasts.current.length) {\n focusWithoutScrolling(toasts.current[prevToast]);\n } else if (nextToast >= 0 && nextToast < toasts.current.length) {\n focusWithoutScrolling(toasts.current[nextToast]);\n }\n }\n }\n\n prevVisibleToasts.current = state.visibleToasts;\n }, [state.visibleToasts, ref]);\n\n let lastFocused = useRef<FocusableElement | null>(null);\n let {focusWithinProps} = useFocusWithin({\n onFocusWithin: e => {\n isFocused.current = true;\n lastFocused.current = e.relatedTarget as FocusableElement;\n updateTimers();\n },\n onBlurWithin: () => {\n isFocused.current = false;\n lastFocused.current = null;\n updateTimers();\n }\n });\n\n // When the number of visible toasts becomes 0 or the region unmounts,\n // restore focus to the last element that had focus before the user moved focus\n // into the region. FocusScope restore focus doesn't update whenever the focus\n // moves in, it only happens once, so we correct it.\n // Because we're in a hook, we can't control if the user unmounts or not.\n useEffect(() => {\n if (state.visibleToasts.length === 0 && lastFocused.current?.isConnected) {\n if (getInteractionModality() === 'pointer') {\n focusWithoutScrolling(lastFocused.current);\n } else {\n lastFocused.current.focus();\n }\n lastFocused.current = null;\n }\n }, [ref, state.visibleToasts.length]);\n\n useEffect(() => {\n return () => {\n if (lastFocused.current?.isConnected) {\n if (getInteractionModality() === 'pointer') {\n focusWithoutScrolling(lastFocused.current);\n } else {\n lastFocused.current.focus();\n }\n lastFocused.current = null;\n }\n };\n }, [ref]);\n\n return {\n regionProps: mergeProps(landmarkProps, hoverProps, focusWithinProps, {\n tabIndex: -1,\n // Mark the toast region as a \"top layer\", so that it:\n // - is not aria-hidden when opening an overlay\n // - allows focus even outside a containing focus scope\n // - doesn’t dismiss overlays when clicking on it, even though it is outside\n // @ts-ignore\n 'data-react-aria-top-layer': true,\n // listen to focus events separate from focuswithin because that will only fire once\n // and we need to follow all focus changes\n onFocus: e => {\n let target = (getEventTarget(e) as Element).closest('[role=\"alertdialog\"]');\n focusedToast.current = toasts.current.findIndex(t => t === target);\n },\n onBlur: () => {\n focusedToast.current = -1;\n }\n })\n };\n}\n"],"names":[],"version":3,"file":"useToastRegion.cjs.map"}
1
+ {"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;CAUC;;;;;;;;;;;AAmCM,SAAS,0CACd,KAA2B,EAC3B,KAAoB,EACpB,GAAkC;IAElC,IAAI,kBAAkB,CAAA,GAAA,qDAA0B,EAAE,CAAA,GAAA,mDAAW,GAAG;IAChE,IAAI,iBAAC,aAAa,EAAC,GAAG,CAAA,GAAA,qCAAU,EAC9B;QACE,MAAM;QACN,cACE,KAAK,CAAC,aAAa,IACnB,gBAAgB,MAAM,CAAC,iBAAiB;YAAC,OAAO,MAAM,aAAa,CAAC,MAAM;QAAA;IAC9E,GACA;IAGF,IAAI,YAAY,CAAA,GAAA,mBAAK,EAAE;IACvB,IAAI,YAAY,CAAA,GAAA,mBAAK,EAAE;IACvB,IAAI,eAAe,CAAA,GAAA,wBAAU,EAAE;QAC7B,IAAI,UAAU,OAAO,IAAI,UAAU,OAAO,EACxC,MAAM,QAAQ;aAEd,MAAM,SAAS;IAEnB,GAAG;QAAC;KAAM;IAEV,IAAI,cAAC,UAAU,EAAC,GAAG,CAAA,GAAA,kCAAO,EAAE;QAC1B,cAAc;YACZ,UAAU,OAAO,GAAG;YACpB;QACF;QACA,YAAY;YACV,UAAU,OAAO,GAAG;YACpB;QACF;IACF;IAEA,wCAAwC;IACxC,2HAA2H;IAC3H,IAAI,SAAS,CAAA,GAAA,mBAAK,EAAsB,EAAE;IAC1C,IAAI,oBAAoB,CAAA,GAAA,mBAAK,EAAE,MAAM,aAAa;IAClD,IAAI,eAAe,CAAA,GAAA,mBAAK,EAAiB;IACzC,CAAA,GAAA,yCAAc,EAAE;QACd,iDAAiD;QACjD,IAAI,aAAa,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI,OAAO,EAAE;YACnF,OAAO,OAAO,GAAG,EAAE;YACnB,kBAAkB,OAAO,GAAG,MAAM,aAAa;YAC/C;QACF;QACA,OAAO,OAAO,GAAG;eACZ,IAAI,OAAO,CAAC,gBAAgB,CAAC;SACjC;QACD,uEAAuE;QACvE,IACE,kBAAkB,OAAO,CAAC,MAAM,KAAK,MAAM,aAAa,CAAC,MAAM,IAC/D,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,IAAM,EAAE,GAAG,KAAK,kBAAkB,OAAO,CAAC,EAAE,CAAC,GAAG,GAC9E;YACA,kBAAkB,OAAO,GAAG,MAAM,aAAa;YAC/C;QACF;QACA,sEAAsE;QACtE,IAAI,YAAY,kBAAkB,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,IAAO,CAAA;gBACvD,GAAG,CAAC;mBACJ;gBACA,WAAW,CAAC,MAAM,aAAa,CAAC,IAAI,CAAC,CAAA,KAAM,EAAE,GAAG,KAAK,GAAG,GAAG;YAC7D,CAAA;QAEA,IAAI,2BAA2B,UAAU,SAAS,CAChD,CAAA,IAAK,EAAE,CAAC,KAAK,aAAa,OAAO,IAAI,EAAE,SAAS;QAGlD,sEAAsE;QACtE,IAAI,2BAA2B;YAC7B,2DAA2D;YAC3D,qDAAqD;YACrD,gDAAgD;YAChD,IAAI,CAAA,GAAA,gDAAqB,QAAQ,aAAa,YAAY,OAAO,EAAE,aACjE,CAAA,GAAA,+CAAoB,EAAE,YAAY,OAAO;iBACpC;gBACL,IAAI,IAAI;gBACR,IAAI;gBACJ,IAAI;gBACJ,MAAO,KAAK,yBAA0B;oBACpC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,EACzB,YAAY,KAAK,GAAG,CAAC,GAAG,IAAI;oBAE9B;gBACF;gBACA,MAAO,IAAI,UAAU,MAAM,CAAE;oBAC3B,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE;wBAC3B,YAAY,IAAI;wBAChB;oBACF;oBACA;gBACF;gBAEA,sGAAsG;gBACtG,IAAI,cAAc,aAAa,cAAc,WAC3C,YAAY;gBAGd,mCAAmC;gBACnC,IAAI,aAAa,KAAK,YAAY,OAAO,OAAO,CAAC,MAAM,EACrD,CAAA,GAAA,+CAAoB,EAAE,OAAO,OAAO,CAAC,UAAU;qBAC1C,IAAI,aAAa,KAAK,YAAY,OAAO,OAAO,CAAC,MAAM,EAC5D,CAAA,GAAA,+CAAoB,EAAE,OAAO,OAAO,CAAC,UAAU;YAEnD;;QAGF,kBAAkB,OAAO,GAAG,MAAM,aAAa;IACjD,GAAG;QAAC,MAAM,aAAa;QAAE;KAAI;IAE7B,IAAI,cAAc,CAAA,GAAA,mBAAK,EAA2B;IAClD,IAAI,oBAAC,gBAAgB,EAAC,GAAG,CAAA,GAAA,wCAAa,EAAE;QACtC,eAAe,CAAA;YACb,UAAU,OAAO,GAAG;YACpB,gDAAgD;YAChD,YAAY,OAAO,GAAG,EAAE,aAAa;YACrC;QACF;QACA,cAAc;YACZ,UAAU,OAAO,GAAG;YACpB,gDAAgD;YAChD,YAAY,OAAO,GAAG;YACtB;QACF;IACF;IAEA,sEAAsE;IACtE,+EAA+E;IAC/E,8EAA8E;IAC9E,oDAAoD;IACpD,yEAAyE;IACzE,CAAA,GAAA,sBAAQ,EAAE;QACR,IAAI,MAAM,aAAa,CAAC,MAAM,KAAK,KAAK,YAAY,OAAO,EAAE,aAAa;YACxE,IAAI,CAAA,GAAA,gDAAqB,QAAQ,WAC/B,CAAA,GAAA,+CAAoB,EAAE,YAAY,OAAO;iBAEzC,YAAY,OAAO,CAAC,KAAK;YAE3B,gDAAgD;YAChD,YAAY,OAAO,GAAG;QACxB;IACF,GAAG;QAAC;QAAK,MAAM,aAAa,CAAC,MAAM;KAAC;IAEpC,CAAA,GAAA,sBAAQ,EAAE;QACR,OAAO;YACL,IAAI,YAAY,OAAO,EAAE,aAAa;gBACpC,IAAI,CAAA,GAAA,gDAAqB,QAAQ,WAC/B,CAAA,GAAA,+CAAoB,EAAE,YAAY,OAAO;qBAEzC,YAAY,OAAO,CAAC,KAAK;gBAE3B,YAAY,OAAO,GAAG;YACxB;QACF;IACF,GAAG;QAAC;KAAI;IAER,OAAO;QACL,gDAAgD;QAChD,aAAa,CAAA,GAAA,oCAAS,EAAE,eAAe,YAAY,kBAAkB;YACnE,UAAU;YACV,sDAAsD;YACtD,iDAAiD;YACjD,yDAAyD;YACzD,8EAA8E;YAC9E,aAAa;YACb,6BAA6B;YAC7B,oFAAoF;YACpF,0CAA0C;YAC1C,SAAS,CAAA;gBACP,IAAI,SAAS,AAAC,CAAA,GAAA,wCAAa,EAAE,GAAe,OAAO,CAAC;gBACpD,aAAa,OAAO,GAAG,OAAO,OAAO,CAAC,SAAS,CAAC,CAAA,IAAK,MAAM;YAC7D;YACA,QAAQ;gBACN,aAAa,OAAO,GAAG;YACzB;QACF;IACF;AACF","sources":["packages/react-aria/src/toast/useToastRegion.ts"],"sourcesContent":["/*\n * Copyright 2025 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, FocusableElement, RefObject} from '@react-types/shared';\nimport {focusWithoutScrolling} from '../utils/focusWithoutScrolling';\nimport {getEventTarget} from '../utils/shadowdom/DOMFunctions';\nimport {getInteractionModality} from '../interactions/useFocusVisible';\nimport intlMessages from '../../intl/toast/*.json';\nimport {mergeProps} from '../utils/mergeProps';\nimport {ToastState} from 'react-stately/useToastState';\nimport {useCallback, useEffect, useRef} from 'react';\nimport {useFocusWithin} from '../interactions/useFocusWithin';\nimport {useHover} from '../interactions/useHover';\nimport {useLandmark} from '../landmark/useLandmark';\nimport {useLayoutEffect} from '../utils/useLayoutEffect';\nimport {useLocalizedStringFormatter} from '../i18n/useLocalizedStringFormatter';\n\nexport interface AriaToastRegionProps extends AriaLabelingProps {\n /**\n * An accessibility label for the toast region.\n *\n * @default 'Notifications'\n */\n 'aria-label'?: string;\n}\n\nexport interface ToastRegionAria {\n /** Props for the landmark region element. */\n regionProps: DOMAttributes;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a toast region containing one or more\n * toasts. Toasts display brief, temporary notifications of actions, errors, or other events in an\n * application.\n */\nexport function useToastRegion<T>(\n props: AriaToastRegionProps,\n state: ToastState<T>,\n ref: RefObject<HTMLElement | null>\n): ToastRegionAria {\n let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-aria/toast');\n let {landmarkProps} = useLandmark(\n {\n role: 'region',\n 'aria-label':\n props['aria-label'] ||\n stringFormatter.format('notifications', {count: state.visibleToasts.length})\n },\n ref\n );\n\n let isHovered = useRef(false);\n let isFocused = useRef(false);\n let updateTimers = useCallback(() => {\n if (isHovered.current || isFocused.current) {\n state.pauseAll();\n } else {\n state.resumeAll();\n }\n }, [state]);\n\n let {hoverProps} = useHover({\n onHoverStart: () => {\n isHovered.current = true;\n updateTimers();\n },\n onHoverEnd: () => {\n isHovered.current = false;\n updateTimers();\n }\n });\n\n // Manage focus within the toast region.\n // If a focused containing toast is removed, move focus to the next toast, or the previous toast if there is no next toast.\n let toasts = useRef<FocusableElement[]>([]);\n let prevVisibleToasts = useRef(state.visibleToasts);\n let focusedToast = useRef<number | null>(null);\n useLayoutEffect(() => {\n // If no toast has focus, then don't do anything.\n if (focusedToast.current === -1 || state.visibleToasts.length === 0 || !ref.current) {\n toasts.current = [];\n prevVisibleToasts.current = state.visibleToasts;\n return;\n }\n toasts.current = [\n ...ref.current.querySelectorAll('[role=\"alertdialog\"]')\n ] as FocusableElement[];\n // If the visible toasts haven't changed, we don't need to do anything.\n if (\n prevVisibleToasts.current.length === state.visibleToasts.length &&\n state.visibleToasts.every((t, i) => t.key === prevVisibleToasts.current[i].key)\n ) {\n prevVisibleToasts.current = state.visibleToasts;\n return;\n }\n // Get a list of all toasts by index and add info if they are removed.\n let allToasts = prevVisibleToasts.current.map((t, i) => ({\n ...t,\n i,\n isRemoved: !state.visibleToasts.some(t2 => t.key === t2.key)\n }));\n\n let removedFocusedToastIndex = allToasts.findIndex(\n t => t.i === focusedToast.current && t.isRemoved\n );\n\n // If the focused toast was removed, focus the next or previous toast.\n if (removedFocusedToastIndex > -1) {\n // In pointer modality, move focus out of the toast region.\n // Otherwise auto-dismiss timers will appear \"stuck\".\n // oxlint-disable-next-line react/react-compiler\n if (getInteractionModality() === 'pointer' && lastFocused.current?.isConnected) {\n focusWithoutScrolling(lastFocused.current);\n } else {\n let i = 0;\n let nextToast;\n let prevToast;\n while (i <= removedFocusedToastIndex) {\n if (!allToasts[i].isRemoved) {\n prevToast = Math.max(0, i - 1);\n }\n i++;\n }\n while (i < allToasts.length) {\n if (!allToasts[i].isRemoved) {\n nextToast = i - 1;\n break;\n }\n i++;\n }\n\n // in the case where it's one toast at a time, both will be undefined, but we know the index must be 0\n if (prevToast === undefined && nextToast === undefined) {\n prevToast = 0;\n }\n\n // prioritize going to newer toasts\n if (prevToast >= 0 && prevToast < toasts.current.length) {\n focusWithoutScrolling(toasts.current[prevToast]);\n } else if (nextToast >= 0 && nextToast < toasts.current.length) {\n focusWithoutScrolling(toasts.current[nextToast]);\n }\n }\n }\n\n prevVisibleToasts.current = state.visibleToasts;\n }, [state.visibleToasts, ref]);\n\n let lastFocused = useRef<FocusableElement | null>(null);\n let {focusWithinProps} = useFocusWithin({\n onFocusWithin: e => {\n isFocused.current = true;\n // oxlint-disable-next-line react/react-compiler\n lastFocused.current = e.relatedTarget as FocusableElement;\n updateTimers();\n },\n onBlurWithin: () => {\n isFocused.current = false;\n // oxlint-disable-next-line react/react-compiler\n lastFocused.current = null;\n updateTimers();\n }\n });\n\n // When the number of visible toasts becomes 0 or the region unmounts,\n // restore focus to the last element that had focus before the user moved focus\n // into the region. FocusScope restore focus doesn't update whenever the focus\n // moves in, it only happens once, so we correct it.\n // Because we're in a hook, we can't control if the user unmounts or not.\n useEffect(() => {\n if (state.visibleToasts.length === 0 && lastFocused.current?.isConnected) {\n if (getInteractionModality() === 'pointer') {\n focusWithoutScrolling(lastFocused.current);\n } else {\n lastFocused.current.focus();\n }\n // oxlint-disable-next-line react/react-compiler\n lastFocused.current = null;\n }\n }, [ref, state.visibleToasts.length]);\n\n useEffect(() => {\n return () => {\n if (lastFocused.current?.isConnected) {\n if (getInteractionModality() === 'pointer') {\n focusWithoutScrolling(lastFocused.current);\n } else {\n lastFocused.current.focus();\n }\n lastFocused.current = null;\n }\n };\n }, [ref]);\n\n return {\n // oxlint-disable-next-line react/react-compiler\n regionProps: mergeProps(landmarkProps, hoverProps, focusWithinProps, {\n tabIndex: -1,\n // Mark the toast region as a \"top layer\", so that it:\n // - is not aria-hidden when opening an overlay\n // - allows focus even outside a containing focus scope\n // - doesn’t dismiss overlays when clicking on it, even though it is outside\n // @ts-ignore\n 'data-react-aria-top-layer': true,\n // listen to focus events separate from focuswithin because that will only fire once\n // and we need to follow all focus changes\n onFocus: e => {\n let target = (getEventTarget(e) as Element).closest('[role=\"alertdialog\"]');\n focusedToast.current = toasts.current.findIndex(t => t === target);\n },\n onBlur: () => {\n focusedToast.current = -1;\n }\n })\n };\n}\n"],"names":[],"version":3,"file":"useToastRegion.cjs.map"}
@@ -93,6 +93,7 @@ function $2f53e21dd3e47e8e$export$b8cbbb20a51697de(props, state, ref) {
93
93
  var _lastFocused_current;
94
94
  // In pointer modality, move focus out of the toast region.
95
95
  // Otherwise auto-dismiss timers will appear "stuck".
96
+ // oxlint-disable-next-line react/react-compiler
96
97
  if ((0, $b50b1cc8a843ace7$export$630ff653c5ada6a9)() === 'pointer' && ((_lastFocused_current = lastFocused.current) === null || _lastFocused_current === void 0 ? void 0 : _lastFocused_current.isConnected)) (0, $d559d872031c749f$export$de79e2c695e052f3)(lastFocused.current);
97
98
  else {
98
99
  let i = 0;
@@ -125,11 +126,13 @@ function $2f53e21dd3e47e8e$export$b8cbbb20a51697de(props, state, ref) {
125
126
  let { focusWithinProps: focusWithinProps } = (0, $b842b95ed9b5d4d5$export$420e68273165f4ec)({
126
127
  onFocusWithin: (e)=>{
127
128
  isFocused.current = true;
129
+ // oxlint-disable-next-line react/react-compiler
128
130
  lastFocused.current = e.relatedTarget;
129
131
  updateTimers();
130
132
  },
131
133
  onBlurWithin: ()=>{
132
134
  isFocused.current = false;
135
+ // oxlint-disable-next-line react/react-compiler
133
136
  lastFocused.current = null;
134
137
  updateTimers();
135
138
  }
@@ -144,6 +147,7 @@ function $2f53e21dd3e47e8e$export$b8cbbb20a51697de(props, state, ref) {
144
147
  if (state.visibleToasts.length === 0 && ((_lastFocused_current = lastFocused.current) === null || _lastFocused_current === void 0 ? void 0 : _lastFocused_current.isConnected)) {
145
148
  if ((0, $b50b1cc8a843ace7$export$630ff653c5ada6a9)() === 'pointer') (0, $d559d872031c749f$export$de79e2c695e052f3)(lastFocused.current);
146
149
  else lastFocused.current.focus();
150
+ // oxlint-disable-next-line react/react-compiler
147
151
  lastFocused.current = null;
148
152
  }
149
153
  }, [
@@ -163,6 +167,7 @@ function $2f53e21dd3e47e8e$export$b8cbbb20a51697de(props, state, ref) {
163
167
  ref
164
168
  ]);
165
169
  return {
170
+ // oxlint-disable-next-line react/react-compiler
166
171
  regionProps: (0, $64c36edd757dfa16$export$9d1611c77c2fe928)(landmarkProps, hoverProps, focusWithinProps, {
167
172
  tabIndex: -1,
168
173
  // Mark the toast region as a "top layer", so that it:
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/react-aria/src/toast/useToastRegion.ts"],"sourcesContent":["/*\n * Copyright 2025 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, FocusableElement, RefObject} from '@react-types/shared';\nimport {focusWithoutScrolling} from '../utils/focusWithoutScrolling';\nimport {getEventTarget} from '../utils/shadowdom/DOMFunctions';\nimport {getInteractionModality} from '../interactions/useFocusVisible';\nimport intlMessages from '../../intl/toast/*.json';\nimport {mergeProps} from '../utils/mergeProps';\nimport {ToastState} from 'react-stately/useToastState';\nimport {useCallback, useEffect, useRef} from 'react';\n// @ts-ignore\nimport {useFocusWithin} from '../interactions/useFocusWithin';\nimport {useHover} from '../interactions/useHover';\nimport {useLandmark} from '../landmark/useLandmark';\nimport {useLayoutEffect} from '../utils/useLayoutEffect';\nimport {useLocalizedStringFormatter} from '../i18n/useLocalizedStringFormatter';\n\nexport interface AriaToastRegionProps extends AriaLabelingProps {\n /**\n * An accessibility label for the toast region.\n *\n * @default 'Notifications'\n */\n 'aria-label'?: string;\n}\n\nexport interface ToastRegionAria {\n /** Props for the landmark region element. */\n regionProps: DOMAttributes;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a toast region containing one or more\n * toasts. Toasts display brief, temporary notifications of actions, errors, or other events in an\n * application.\n */\nexport function useToastRegion<T>(\n props: AriaToastRegionProps,\n state: ToastState<T>,\n ref: RefObject<HTMLElement | null>\n): ToastRegionAria {\n let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-aria/toast');\n let {landmarkProps} = useLandmark(\n {\n role: 'region',\n 'aria-label':\n props['aria-label'] ||\n stringFormatter.format('notifications', {count: state.visibleToasts.length})\n },\n ref\n );\n\n let isHovered = useRef(false);\n let isFocused = useRef(false);\n let updateTimers = useCallback(() => {\n if (isHovered.current || isFocused.current) {\n state.pauseAll();\n } else {\n state.resumeAll();\n }\n }, [state]);\n\n let {hoverProps} = useHover({\n onHoverStart: () => {\n isHovered.current = true;\n updateTimers();\n },\n onHoverEnd: () => {\n isHovered.current = false;\n updateTimers();\n }\n });\n\n // Manage focus within the toast region.\n // If a focused containing toast is removed, move focus to the next toast, or the previous toast if there is no next toast.\n let toasts = useRef<FocusableElement[]>([]);\n let prevVisibleToasts = useRef(state.visibleToasts);\n let focusedToast = useRef<number | null>(null);\n useLayoutEffect(() => {\n // If no toast has focus, then don't do anything.\n if (focusedToast.current === -1 || state.visibleToasts.length === 0 || !ref.current) {\n toasts.current = [];\n prevVisibleToasts.current = state.visibleToasts;\n return;\n }\n toasts.current = [\n ...ref.current.querySelectorAll('[role=\"alertdialog\"]')\n ] as FocusableElement[];\n // If the visible toasts haven't changed, we don't need to do anything.\n if (\n prevVisibleToasts.current.length === state.visibleToasts.length &&\n state.visibleToasts.every((t, i) => t.key === prevVisibleToasts.current[i].key)\n ) {\n prevVisibleToasts.current = state.visibleToasts;\n return;\n }\n // Get a list of all toasts by index and add info if they are removed.\n let allToasts = prevVisibleToasts.current.map((t, i) => ({\n ...t,\n i,\n isRemoved: !state.visibleToasts.some(t2 => t.key === t2.key)\n }));\n\n let removedFocusedToastIndex = allToasts.findIndex(\n t => t.i === focusedToast.current && t.isRemoved\n );\n\n // If the focused toast was removed, focus the next or previous toast.\n if (removedFocusedToastIndex > -1) {\n // In pointer modality, move focus out of the toast region.\n // Otherwise auto-dismiss timers will appear \"stuck\".\n if (getInteractionModality() === 'pointer' && lastFocused.current?.isConnected) {\n focusWithoutScrolling(lastFocused.current);\n } else {\n let i = 0;\n let nextToast;\n let prevToast;\n while (i <= removedFocusedToastIndex) {\n if (!allToasts[i].isRemoved) {\n prevToast = Math.max(0, i - 1);\n }\n i++;\n }\n while (i < allToasts.length) {\n if (!allToasts[i].isRemoved) {\n nextToast = i - 1;\n break;\n }\n i++;\n }\n\n // in the case where it's one toast at a time, both will be undefined, but we know the index must be 0\n if (prevToast === undefined && nextToast === undefined) {\n prevToast = 0;\n }\n\n // prioritize going to newer toasts\n if (prevToast >= 0 && prevToast < toasts.current.length) {\n focusWithoutScrolling(toasts.current[prevToast]);\n } else if (nextToast >= 0 && nextToast < toasts.current.length) {\n focusWithoutScrolling(toasts.current[nextToast]);\n }\n }\n }\n\n prevVisibleToasts.current = state.visibleToasts;\n }, [state.visibleToasts, ref]);\n\n let lastFocused = useRef<FocusableElement | null>(null);\n let {focusWithinProps} = useFocusWithin({\n onFocusWithin: e => {\n isFocused.current = true;\n lastFocused.current = e.relatedTarget as FocusableElement;\n updateTimers();\n },\n onBlurWithin: () => {\n isFocused.current = false;\n lastFocused.current = null;\n updateTimers();\n }\n });\n\n // When the number of visible toasts becomes 0 or the region unmounts,\n // restore focus to the last element that had focus before the user moved focus\n // into the region. FocusScope restore focus doesn't update whenever the focus\n // moves in, it only happens once, so we correct it.\n // Because we're in a hook, we can't control if the user unmounts or not.\n useEffect(() => {\n if (state.visibleToasts.length === 0 && lastFocused.current?.isConnected) {\n if (getInteractionModality() === 'pointer') {\n focusWithoutScrolling(lastFocused.current);\n } else {\n lastFocused.current.focus();\n }\n lastFocused.current = null;\n }\n }, [ref, state.visibleToasts.length]);\n\n useEffect(() => {\n return () => {\n if (lastFocused.current?.isConnected) {\n if (getInteractionModality() === 'pointer') {\n focusWithoutScrolling(lastFocused.current);\n } else {\n lastFocused.current.focus();\n }\n lastFocused.current = null;\n }\n };\n }, [ref]);\n\n return {\n regionProps: mergeProps(landmarkProps, hoverProps, focusWithinProps, {\n tabIndex: -1,\n // Mark the toast region as a \"top layer\", so that it:\n // - is not aria-hidden when opening an overlay\n // - allows focus even outside a containing focus scope\n // - doesn’t dismiss overlays when clicking on it, even though it is outside\n // @ts-ignore\n 'data-react-aria-top-layer': true,\n // listen to focus events separate from focuswithin because that will only fire once\n // and we need to follow all focus changes\n onFocus: e => {\n let target = (getEventTarget(e) as Element).closest('[role=\"alertdialog\"]');\n focusedToast.current = toasts.current.findIndex(t => t === target);\n },\n onBlur: () => {\n focusedToast.current = -1;\n }\n })\n };\n}\n"],"names":[],"version":3,"file":"useToastRegion.js.map"}
1
+ {"mappings":"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","sources":["packages/react-aria/src/toast/useToastRegion.ts"],"sourcesContent":["/*\n * Copyright 2025 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, FocusableElement, RefObject} from '@react-types/shared';\nimport {focusWithoutScrolling} from '../utils/focusWithoutScrolling';\nimport {getEventTarget} from '../utils/shadowdom/DOMFunctions';\nimport {getInteractionModality} from '../interactions/useFocusVisible';\nimport intlMessages from '../../intl/toast/*.json';\nimport {mergeProps} from '../utils/mergeProps';\nimport {ToastState} from 'react-stately/useToastState';\nimport {useCallback, useEffect, useRef} from 'react';\nimport {useFocusWithin} from '../interactions/useFocusWithin';\nimport {useHover} from '../interactions/useHover';\nimport {useLandmark} from '../landmark/useLandmark';\nimport {useLayoutEffect} from '../utils/useLayoutEffect';\nimport {useLocalizedStringFormatter} from '../i18n/useLocalizedStringFormatter';\n\nexport interface AriaToastRegionProps extends AriaLabelingProps {\n /**\n * An accessibility label for the toast region.\n *\n * @default 'Notifications'\n */\n 'aria-label'?: string;\n}\n\nexport interface ToastRegionAria {\n /** Props for the landmark region element. */\n regionProps: DOMAttributes;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a toast region containing one or more\n * toasts. Toasts display brief, temporary notifications of actions, errors, or other events in an\n * application.\n */\nexport function useToastRegion<T>(\n props: AriaToastRegionProps,\n state: ToastState<T>,\n ref: RefObject<HTMLElement | null>\n): ToastRegionAria {\n let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-aria/toast');\n let {landmarkProps} = useLandmark(\n {\n role: 'region',\n 'aria-label':\n props['aria-label'] ||\n stringFormatter.format('notifications', {count: state.visibleToasts.length})\n },\n ref\n );\n\n let isHovered = useRef(false);\n let isFocused = useRef(false);\n let updateTimers = useCallback(() => {\n if (isHovered.current || isFocused.current) {\n state.pauseAll();\n } else {\n state.resumeAll();\n }\n }, [state]);\n\n let {hoverProps} = useHover({\n onHoverStart: () => {\n isHovered.current = true;\n updateTimers();\n },\n onHoverEnd: () => {\n isHovered.current = false;\n updateTimers();\n }\n });\n\n // Manage focus within the toast region.\n // If a focused containing toast is removed, move focus to the next toast, or the previous toast if there is no next toast.\n let toasts = useRef<FocusableElement[]>([]);\n let prevVisibleToasts = useRef(state.visibleToasts);\n let focusedToast = useRef<number | null>(null);\n useLayoutEffect(() => {\n // If no toast has focus, then don't do anything.\n if (focusedToast.current === -1 || state.visibleToasts.length === 0 || !ref.current) {\n toasts.current = [];\n prevVisibleToasts.current = state.visibleToasts;\n return;\n }\n toasts.current = [\n ...ref.current.querySelectorAll('[role=\"alertdialog\"]')\n ] as FocusableElement[];\n // If the visible toasts haven't changed, we don't need to do anything.\n if (\n prevVisibleToasts.current.length === state.visibleToasts.length &&\n state.visibleToasts.every((t, i) => t.key === prevVisibleToasts.current[i].key)\n ) {\n prevVisibleToasts.current = state.visibleToasts;\n return;\n }\n // Get a list of all toasts by index and add info if they are removed.\n let allToasts = prevVisibleToasts.current.map((t, i) => ({\n ...t,\n i,\n isRemoved: !state.visibleToasts.some(t2 => t.key === t2.key)\n }));\n\n let removedFocusedToastIndex = allToasts.findIndex(\n t => t.i === focusedToast.current && t.isRemoved\n );\n\n // If the focused toast was removed, focus the next or previous toast.\n if (removedFocusedToastIndex > -1) {\n // In pointer modality, move focus out of the toast region.\n // Otherwise auto-dismiss timers will appear \"stuck\".\n // oxlint-disable-next-line react/react-compiler\n if (getInteractionModality() === 'pointer' && lastFocused.current?.isConnected) {\n focusWithoutScrolling(lastFocused.current);\n } else {\n let i = 0;\n let nextToast;\n let prevToast;\n while (i <= removedFocusedToastIndex) {\n if (!allToasts[i].isRemoved) {\n prevToast = Math.max(0, i - 1);\n }\n i++;\n }\n while (i < allToasts.length) {\n if (!allToasts[i].isRemoved) {\n nextToast = i - 1;\n break;\n }\n i++;\n }\n\n // in the case where it's one toast at a time, both will be undefined, but we know the index must be 0\n if (prevToast === undefined && nextToast === undefined) {\n prevToast = 0;\n }\n\n // prioritize going to newer toasts\n if (prevToast >= 0 && prevToast < toasts.current.length) {\n focusWithoutScrolling(toasts.current[prevToast]);\n } else if (nextToast >= 0 && nextToast < toasts.current.length) {\n focusWithoutScrolling(toasts.current[nextToast]);\n }\n }\n }\n\n prevVisibleToasts.current = state.visibleToasts;\n }, [state.visibleToasts, ref]);\n\n let lastFocused = useRef<FocusableElement | null>(null);\n let {focusWithinProps} = useFocusWithin({\n onFocusWithin: e => {\n isFocused.current = true;\n // oxlint-disable-next-line react/react-compiler\n lastFocused.current = e.relatedTarget as FocusableElement;\n updateTimers();\n },\n onBlurWithin: () => {\n isFocused.current = false;\n // oxlint-disable-next-line react/react-compiler\n lastFocused.current = null;\n updateTimers();\n }\n });\n\n // When the number of visible toasts becomes 0 or the region unmounts,\n // restore focus to the last element that had focus before the user moved focus\n // into the region. FocusScope restore focus doesn't update whenever the focus\n // moves in, it only happens once, so we correct it.\n // Because we're in a hook, we can't control if the user unmounts or not.\n useEffect(() => {\n if (state.visibleToasts.length === 0 && lastFocused.current?.isConnected) {\n if (getInteractionModality() === 'pointer') {\n focusWithoutScrolling(lastFocused.current);\n } else {\n lastFocused.current.focus();\n }\n // oxlint-disable-next-line react/react-compiler\n lastFocused.current = null;\n }\n }, [ref, state.visibleToasts.length]);\n\n useEffect(() => {\n return () => {\n if (lastFocused.current?.isConnected) {\n if (getInteractionModality() === 'pointer') {\n focusWithoutScrolling(lastFocused.current);\n } else {\n lastFocused.current.focus();\n }\n lastFocused.current = null;\n }\n };\n }, [ref]);\n\n return {\n // oxlint-disable-next-line react/react-compiler\n regionProps: mergeProps(landmarkProps, hoverProps, focusWithinProps, {\n tabIndex: -1,\n // Mark the toast region as a \"top layer\", so that it:\n // - is not aria-hidden when opening an overlay\n // - allows focus even outside a containing focus scope\n // - doesn’t dismiss overlays when clicking on it, even though it is outside\n // @ts-ignore\n 'data-react-aria-top-layer': true,\n // listen to focus events separate from focuswithin because that will only fire once\n // and we need to follow all focus changes\n onFocus: e => {\n let target = (getEventTarget(e) as Element).closest('[role=\"alertdialog\"]');\n focusedToast.current = toasts.current.findIndex(t => t === target);\n },\n onBlur: () => {\n focusedToast.current = -1;\n }\n })\n };\n}\n"],"names":[],"version":3,"file":"useToastRegion.js.map"}
@@ -92,6 +92,7 @@ function $17a75c27599f3197$export$b8cbbb20a51697de(props, state, ref) {
92
92
  if (removedFocusedToastIndex > -1) {
93
93
  // In pointer modality, move focus out of the toast region.
94
94
  // Otherwise auto-dismiss timers will appear "stuck".
95
+ // oxlint-disable-next-line react/react-compiler
95
96
  if ((0, $8f5a2122b0992be3$export$630ff653c5ada6a9)() === 'pointer' && lastFocused.current?.isConnected) (0, $1969ac565cfec8d0$export$de79e2c695e052f3)(lastFocused.current);
96
97
  else {
97
98
  let i = 0;
@@ -124,11 +125,13 @@ function $17a75c27599f3197$export$b8cbbb20a51697de(props, state, ref) {
124
125
  let { focusWithinProps: focusWithinProps } = (0, $2c9edc598a03d523$export$420e68273165f4ec)({
125
126
  onFocusWithin: (e)=>{
126
127
  isFocused.current = true;
128
+ // oxlint-disable-next-line react/react-compiler
127
129
  lastFocused.current = e.relatedTarget;
128
130
  updateTimers();
129
131
  },
130
132
  onBlurWithin: ()=>{
131
133
  isFocused.current = false;
134
+ // oxlint-disable-next-line react/react-compiler
132
135
  lastFocused.current = null;
133
136
  updateTimers();
134
137
  }
@@ -142,6 +145,7 @@ function $17a75c27599f3197$export$b8cbbb20a51697de(props, state, ref) {
142
145
  if (state.visibleToasts.length === 0 && lastFocused.current?.isConnected) {
143
146
  if ((0, $8f5a2122b0992be3$export$630ff653c5ada6a9)() === 'pointer') (0, $1969ac565cfec8d0$export$de79e2c695e052f3)(lastFocused.current);
144
147
  else lastFocused.current.focus();
148
+ // oxlint-disable-next-line react/react-compiler
145
149
  lastFocused.current = null;
146
150
  }
147
151
  }, [
@@ -160,6 +164,7 @@ function $17a75c27599f3197$export$b8cbbb20a51697de(props, state, ref) {
160
164
  ref
161
165
  ]);
162
166
  return {
167
+ // oxlint-disable-next-line react/react-compiler
163
168
  regionProps: (0, $bbaa08b3cd72f041$export$9d1611c77c2fe928)(landmarkProps, hoverProps, focusWithinProps, {
164
169
  tabIndex: -1,
165
170
  // Mark the toast region as a "top layer", so that it:
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/react-aria/src/toast/useToastRegion.ts"],"sourcesContent":["/*\n * Copyright 2025 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, FocusableElement, RefObject} from '@react-types/shared';\nimport {focusWithoutScrolling} from '../utils/focusWithoutScrolling';\nimport {getEventTarget} from '../utils/shadowdom/DOMFunctions';\nimport {getInteractionModality} from '../interactions/useFocusVisible';\nimport intlMessages from '../../intl/toast/*.json';\nimport {mergeProps} from '../utils/mergeProps';\nimport {ToastState} from 'react-stately/useToastState';\nimport {useCallback, useEffect, useRef} from 'react';\n// @ts-ignore\nimport {useFocusWithin} from '../interactions/useFocusWithin';\nimport {useHover} from '../interactions/useHover';\nimport {useLandmark} from '../landmark/useLandmark';\nimport {useLayoutEffect} from '../utils/useLayoutEffect';\nimport {useLocalizedStringFormatter} from '../i18n/useLocalizedStringFormatter';\n\nexport interface AriaToastRegionProps extends AriaLabelingProps {\n /**\n * An accessibility label for the toast region.\n *\n * @default 'Notifications'\n */\n 'aria-label'?: string;\n}\n\nexport interface ToastRegionAria {\n /** Props for the landmark region element. */\n regionProps: DOMAttributes;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a toast region containing one or more\n * toasts. Toasts display brief, temporary notifications of actions, errors, or other events in an\n * application.\n */\nexport function useToastRegion<T>(\n props: AriaToastRegionProps,\n state: ToastState<T>,\n ref: RefObject<HTMLElement | null>\n): ToastRegionAria {\n let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-aria/toast');\n let {landmarkProps} = useLandmark(\n {\n role: 'region',\n 'aria-label':\n props['aria-label'] ||\n stringFormatter.format('notifications', {count: state.visibleToasts.length})\n },\n ref\n );\n\n let isHovered = useRef(false);\n let isFocused = useRef(false);\n let updateTimers = useCallback(() => {\n if (isHovered.current || isFocused.current) {\n state.pauseAll();\n } else {\n state.resumeAll();\n }\n }, [state]);\n\n let {hoverProps} = useHover({\n onHoverStart: () => {\n isHovered.current = true;\n updateTimers();\n },\n onHoverEnd: () => {\n isHovered.current = false;\n updateTimers();\n }\n });\n\n // Manage focus within the toast region.\n // If a focused containing toast is removed, move focus to the next toast, or the previous toast if there is no next toast.\n let toasts = useRef<FocusableElement[]>([]);\n let prevVisibleToasts = useRef(state.visibleToasts);\n let focusedToast = useRef<number | null>(null);\n useLayoutEffect(() => {\n // If no toast has focus, then don't do anything.\n if (focusedToast.current === -1 || state.visibleToasts.length === 0 || !ref.current) {\n toasts.current = [];\n prevVisibleToasts.current = state.visibleToasts;\n return;\n }\n toasts.current = [\n ...ref.current.querySelectorAll('[role=\"alertdialog\"]')\n ] as FocusableElement[];\n // If the visible toasts haven't changed, we don't need to do anything.\n if (\n prevVisibleToasts.current.length === state.visibleToasts.length &&\n state.visibleToasts.every((t, i) => t.key === prevVisibleToasts.current[i].key)\n ) {\n prevVisibleToasts.current = state.visibleToasts;\n return;\n }\n // Get a list of all toasts by index and add info if they are removed.\n let allToasts = prevVisibleToasts.current.map((t, i) => ({\n ...t,\n i,\n isRemoved: !state.visibleToasts.some(t2 => t.key === t2.key)\n }));\n\n let removedFocusedToastIndex = allToasts.findIndex(\n t => t.i === focusedToast.current && t.isRemoved\n );\n\n // If the focused toast was removed, focus the next or previous toast.\n if (removedFocusedToastIndex > -1) {\n // In pointer modality, move focus out of the toast region.\n // Otherwise auto-dismiss timers will appear \"stuck\".\n if (getInteractionModality() === 'pointer' && lastFocused.current?.isConnected) {\n focusWithoutScrolling(lastFocused.current);\n } else {\n let i = 0;\n let nextToast;\n let prevToast;\n while (i <= removedFocusedToastIndex) {\n if (!allToasts[i].isRemoved) {\n prevToast = Math.max(0, i - 1);\n }\n i++;\n }\n while (i < allToasts.length) {\n if (!allToasts[i].isRemoved) {\n nextToast = i - 1;\n break;\n }\n i++;\n }\n\n // in the case where it's one toast at a time, both will be undefined, but we know the index must be 0\n if (prevToast === undefined && nextToast === undefined) {\n prevToast = 0;\n }\n\n // prioritize going to newer toasts\n if (prevToast >= 0 && prevToast < toasts.current.length) {\n focusWithoutScrolling(toasts.current[prevToast]);\n } else if (nextToast >= 0 && nextToast < toasts.current.length) {\n focusWithoutScrolling(toasts.current[nextToast]);\n }\n }\n }\n\n prevVisibleToasts.current = state.visibleToasts;\n }, [state.visibleToasts, ref]);\n\n let lastFocused = useRef<FocusableElement | null>(null);\n let {focusWithinProps} = useFocusWithin({\n onFocusWithin: e => {\n isFocused.current = true;\n lastFocused.current = e.relatedTarget as FocusableElement;\n updateTimers();\n },\n onBlurWithin: () => {\n isFocused.current = false;\n lastFocused.current = null;\n updateTimers();\n }\n });\n\n // When the number of visible toasts becomes 0 or the region unmounts,\n // restore focus to the last element that had focus before the user moved focus\n // into the region. FocusScope restore focus doesn't update whenever the focus\n // moves in, it only happens once, so we correct it.\n // Because we're in a hook, we can't control if the user unmounts or not.\n useEffect(() => {\n if (state.visibleToasts.length === 0 && lastFocused.current?.isConnected) {\n if (getInteractionModality() === 'pointer') {\n focusWithoutScrolling(lastFocused.current);\n } else {\n lastFocused.current.focus();\n }\n lastFocused.current = null;\n }\n }, [ref, state.visibleToasts.length]);\n\n useEffect(() => {\n return () => {\n if (lastFocused.current?.isConnected) {\n if (getInteractionModality() === 'pointer') {\n focusWithoutScrolling(lastFocused.current);\n } else {\n lastFocused.current.focus();\n }\n lastFocused.current = null;\n }\n };\n }, [ref]);\n\n return {\n regionProps: mergeProps(landmarkProps, hoverProps, focusWithinProps, {\n tabIndex: -1,\n // Mark the toast region as a \"top layer\", so that it:\n // - is not aria-hidden when opening an overlay\n // - allows focus even outside a containing focus scope\n // - doesn’t dismiss overlays when clicking on it, even though it is outside\n // @ts-ignore\n 'data-react-aria-top-layer': true,\n // listen to focus events separate from focuswithin because that will only fire once\n // and we need to follow all focus changes\n onFocus: e => {\n let target = (getEventTarget(e) as Element).closest('[role=\"alertdialog\"]');\n focusedToast.current = toasts.current.findIndex(t => t === target);\n },\n onBlur: () => {\n focusedToast.current = -1;\n }\n })\n };\n}\n"],"names":[],"version":3,"file":"useToastRegion.mjs.map"}
1
+ {"mappings":"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","sources":["packages/react-aria/src/toast/useToastRegion.ts"],"sourcesContent":["/*\n * Copyright 2025 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, FocusableElement, RefObject} from '@react-types/shared';\nimport {focusWithoutScrolling} from '../utils/focusWithoutScrolling';\nimport {getEventTarget} from '../utils/shadowdom/DOMFunctions';\nimport {getInteractionModality} from '../interactions/useFocusVisible';\nimport intlMessages from '../../intl/toast/*.json';\nimport {mergeProps} from '../utils/mergeProps';\nimport {ToastState} from 'react-stately/useToastState';\nimport {useCallback, useEffect, useRef} from 'react';\nimport {useFocusWithin} from '../interactions/useFocusWithin';\nimport {useHover} from '../interactions/useHover';\nimport {useLandmark} from '../landmark/useLandmark';\nimport {useLayoutEffect} from '../utils/useLayoutEffect';\nimport {useLocalizedStringFormatter} from '../i18n/useLocalizedStringFormatter';\n\nexport interface AriaToastRegionProps extends AriaLabelingProps {\n /**\n * An accessibility label for the toast region.\n *\n * @default 'Notifications'\n */\n 'aria-label'?: string;\n}\n\nexport interface ToastRegionAria {\n /** Props for the landmark region element. */\n regionProps: DOMAttributes;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a toast region containing one or more\n * toasts. Toasts display brief, temporary notifications of actions, errors, or other events in an\n * application.\n */\nexport function useToastRegion<T>(\n props: AriaToastRegionProps,\n state: ToastState<T>,\n ref: RefObject<HTMLElement | null>\n): ToastRegionAria {\n let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-aria/toast');\n let {landmarkProps} = useLandmark(\n {\n role: 'region',\n 'aria-label':\n props['aria-label'] ||\n stringFormatter.format('notifications', {count: state.visibleToasts.length})\n },\n ref\n );\n\n let isHovered = useRef(false);\n let isFocused = useRef(false);\n let updateTimers = useCallback(() => {\n if (isHovered.current || isFocused.current) {\n state.pauseAll();\n } else {\n state.resumeAll();\n }\n }, [state]);\n\n let {hoverProps} = useHover({\n onHoverStart: () => {\n isHovered.current = true;\n updateTimers();\n },\n onHoverEnd: () => {\n isHovered.current = false;\n updateTimers();\n }\n });\n\n // Manage focus within the toast region.\n // If a focused containing toast is removed, move focus to the next toast, or the previous toast if there is no next toast.\n let toasts = useRef<FocusableElement[]>([]);\n let prevVisibleToasts = useRef(state.visibleToasts);\n let focusedToast = useRef<number | null>(null);\n useLayoutEffect(() => {\n // If no toast has focus, then don't do anything.\n if (focusedToast.current === -1 || state.visibleToasts.length === 0 || !ref.current) {\n toasts.current = [];\n prevVisibleToasts.current = state.visibleToasts;\n return;\n }\n toasts.current = [\n ...ref.current.querySelectorAll('[role=\"alertdialog\"]')\n ] as FocusableElement[];\n // If the visible toasts haven't changed, we don't need to do anything.\n if (\n prevVisibleToasts.current.length === state.visibleToasts.length &&\n state.visibleToasts.every((t, i) => t.key === prevVisibleToasts.current[i].key)\n ) {\n prevVisibleToasts.current = state.visibleToasts;\n return;\n }\n // Get a list of all toasts by index and add info if they are removed.\n let allToasts = prevVisibleToasts.current.map((t, i) => ({\n ...t,\n i,\n isRemoved: !state.visibleToasts.some(t2 => t.key === t2.key)\n }));\n\n let removedFocusedToastIndex = allToasts.findIndex(\n t => t.i === focusedToast.current && t.isRemoved\n );\n\n // If the focused toast was removed, focus the next or previous toast.\n if (removedFocusedToastIndex > -1) {\n // In pointer modality, move focus out of the toast region.\n // Otherwise auto-dismiss timers will appear \"stuck\".\n // oxlint-disable-next-line react/react-compiler\n if (getInteractionModality() === 'pointer' && lastFocused.current?.isConnected) {\n focusWithoutScrolling(lastFocused.current);\n } else {\n let i = 0;\n let nextToast;\n let prevToast;\n while (i <= removedFocusedToastIndex) {\n if (!allToasts[i].isRemoved) {\n prevToast = Math.max(0, i - 1);\n }\n i++;\n }\n while (i < allToasts.length) {\n if (!allToasts[i].isRemoved) {\n nextToast = i - 1;\n break;\n }\n i++;\n }\n\n // in the case where it's one toast at a time, both will be undefined, but we know the index must be 0\n if (prevToast === undefined && nextToast === undefined) {\n prevToast = 0;\n }\n\n // prioritize going to newer toasts\n if (prevToast >= 0 && prevToast < toasts.current.length) {\n focusWithoutScrolling(toasts.current[prevToast]);\n } else if (nextToast >= 0 && nextToast < toasts.current.length) {\n focusWithoutScrolling(toasts.current[nextToast]);\n }\n }\n }\n\n prevVisibleToasts.current = state.visibleToasts;\n }, [state.visibleToasts, ref]);\n\n let lastFocused = useRef<FocusableElement | null>(null);\n let {focusWithinProps} = useFocusWithin({\n onFocusWithin: e => {\n isFocused.current = true;\n // oxlint-disable-next-line react/react-compiler\n lastFocused.current = e.relatedTarget as FocusableElement;\n updateTimers();\n },\n onBlurWithin: () => {\n isFocused.current = false;\n // oxlint-disable-next-line react/react-compiler\n lastFocused.current = null;\n updateTimers();\n }\n });\n\n // When the number of visible toasts becomes 0 or the region unmounts,\n // restore focus to the last element that had focus before the user moved focus\n // into the region. FocusScope restore focus doesn't update whenever the focus\n // moves in, it only happens once, so we correct it.\n // Because we're in a hook, we can't control if the user unmounts or not.\n useEffect(() => {\n if (state.visibleToasts.length === 0 && lastFocused.current?.isConnected) {\n if (getInteractionModality() === 'pointer') {\n focusWithoutScrolling(lastFocused.current);\n } else {\n lastFocused.current.focus();\n }\n // oxlint-disable-next-line react/react-compiler\n lastFocused.current = null;\n }\n }, [ref, state.visibleToasts.length]);\n\n useEffect(() => {\n return () => {\n if (lastFocused.current?.isConnected) {\n if (getInteractionModality() === 'pointer') {\n focusWithoutScrolling(lastFocused.current);\n } else {\n lastFocused.current.focus();\n }\n lastFocused.current = null;\n }\n };\n }, [ref]);\n\n return {\n // oxlint-disable-next-line react/react-compiler\n regionProps: mergeProps(landmarkProps, hoverProps, focusWithinProps, {\n tabIndex: -1,\n // Mark the toast region as a \"top layer\", so that it:\n // - is not aria-hidden when opening an overlay\n // - allows focus even outside a containing focus scope\n // - doesn’t dismiss overlays when clicking on it, even though it is outside\n // @ts-ignore\n 'data-react-aria-top-layer': true,\n // listen to focus events separate from focuswithin because that will only fire once\n // and we need to follow all focus changes\n onFocus: e => {\n let target = (getEventTarget(e) as Element).closest('[role=\"alertdialog\"]');\n focusedToast.current = toasts.current.findIndex(t => t === target);\n },\n onBlur: () => {\n focusedToast.current = -1;\n }\n })\n };\n}\n"],"names":[],"version":3,"file":"useToastRegion.mjs.map"}
@@ -104,6 +104,7 @@ function $da48c5f79caabf8f$export$cbe85ee05b554577(props, state, ref) {
104
104
  ref.current?.focus();
105
105
  // @ts-expect-error
106
106
  let { [(0, $72SEL$reactstatelyprivateformuseFormValidationState.privateValidationStateProp)]: groupValidationState } = props;
107
+ // oxlint-disable-next-line react/react-compiler
107
108
  let { commitValidation: commitValidation } = groupValidationState ? groupValidationState : validationState;
108
109
  commitValidation();
109
110
  },
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/react-aria/src/toggle/useToggle.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 DOMAttributesWithRef,\n FocusableDOMProps,\n InputDOMProps,\n PressEvents,\n RefObject,\n ValidationResult\n} from '@react-types/shared';\nimport {ChangeEventHandler, InputHTMLAttributes, LabelHTMLAttributes, useState} from 'react';\nimport {filterDOMProps} from '../utils/filterDOMProps';\nimport {getEventTarget} from '../utils/shadowdom/DOMFunctions';\nimport {mergeProps} from '../utils/mergeProps';\nimport {\n privateValidationStateProp,\n useFormValidationState\n} from 'react-stately/private/form/useFormValidationState';\nimport {ToggleProps, ToggleState} from 'react-stately/useToggleState';\nimport {useFocusable} from '../interactions/useFocusable';\nimport {useFormReset} from '../utils/useFormReset';\nimport {useFormValidation} from '../form/useFormValidation';\nimport {usePress} from '../interactions/usePress';\nimport {useSlotId2} from '../utils/useSlot';\n\nexport interface AriaToggleProps\n extends\n ToggleProps,\n FocusableDOMProps,\n AriaLabelingProps,\n AriaValidationProps,\n InputDOMProps,\n PressEvents {\n /**\n * Identifies the element (or elements) whose contents or presence are controlled by the current\n * element.\n */\n 'aria-controls'?: string;\n}\n\nexport interface ToggleAria extends ValidationResult {\n /** Props to be spread on the label element. */\n labelProps: LabelHTMLAttributes<HTMLLabelElement>;\n /** Props to be spread on the input element. */\n inputProps: InputHTMLAttributes<HTMLInputElement>;\n /** Props for the checkbox description element, if any. */\n descriptionProps: DOMAttributesWithRef<HTMLElement>;\n /** Props for the checkbox error message element, if any. */\n errorMessageProps: DOMAttributesWithRef<HTMLElement>;\n /** Whether the toggle is selected. */\n isSelected: boolean;\n /** Whether the toggle is in a pressed state. */\n isPressed: boolean;\n /** Whether the toggle is disabled. */\n isDisabled: boolean;\n /** Whether the toggle is read only. */\n isReadOnly: boolean;\n /** Whether the toggle is invalid. */\n isInvalid: boolean;\n}\n\n/**\n * Handles interactions for toggle elements, e.g. Checkboxes and Switches.\n */\nexport function useToggle(\n props: AriaToggleProps,\n state: ToggleState,\n ref: RefObject<HTMLInputElement | null>\n): ToggleAria {\n let {\n isDisabled = false,\n isReadOnly = false,\n value,\n name,\n form,\n children,\n isRequired,\n validationBehavior = 'aria',\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n 'aria-describedby': ariaDescribedby,\n onPressStart,\n onPressEnd,\n onPressChange,\n onPress,\n onPressUp,\n onClick\n } = props;\n\n // Create validation state here because it doesn't make sense to add to general useToggleState.\n let validationState = useFormValidationState({...props, value: state.isSelected});\n let {isInvalid, validationErrors, validationDetails} = validationState.displayValidation;\n\n useFormValidation(props, validationState, ref);\n\n let onChange: ChangeEventHandler<HTMLInputElement> = e => {\n // since we spread props on label, onChange will end up there as well as in here.\n // so we have to stop propagation at the lowest level that we care about\n e.stopPropagation();\n state.setSelected(getEventTarget(e).checked);\n };\n\n let hasChildren = children != null;\n let hasAriaLabel = ariaLabel != null || ariaLabelledby != null;\n if (!hasChildren && !hasAriaLabel && process.env.NODE_ENV !== 'production') {\n console.warn(\n 'If you do not provide children, you must specify an aria-label for accessibility'\n );\n }\n\n // Handle press state for keyboard interactions and cases where labelProps is not used.\n let {pressProps, isPressed} = usePress({\n onPressStart,\n onPressEnd,\n onPressChange,\n onPress,\n onPressUp,\n onClick,\n isDisabled\n });\n\n // Handle press state on the label.\n let [isLabelPressed, setLabelPressed] = useState(false);\n let {pressProps: labelProps} = usePress({\n onPressStart(e) {\n // Keyboard interactions are handled directly on the input.\n if (e.pointerType === 'keyboard' || e.pointerType === 'virtual') {\n e.continuePropagation();\n return;\n }\n\n onPressStart?.(e);\n onPressChange?.(true);\n setLabelPressed(true);\n },\n onPressEnd(e) {\n // Keyboard interactions are handled directly on the input.\n if (e.pointerType === 'keyboard' || e.pointerType === 'virtual') {\n e.continuePropagation();\n return;\n }\n\n onPressEnd?.(e);\n onPressChange?.(false);\n setLabelPressed(false);\n },\n onPressUp(e) {\n if (e.pointerType === 'keyboard' || e.pointerType === 'virtual') {\n e.continuePropagation();\n return;\n }\n\n onPressUp?.(e);\n },\n onClick,\n onPress(e) {\n if (e.pointerType === 'keyboard' || e.pointerType === 'virtual') {\n e.continuePropagation();\n return;\n }\n\n onPress?.(e);\n state.toggle();\n ref.current?.focus();\n\n // @ts-expect-error\n let {[privateValidationStateProp]: groupValidationState} = props;\n\n let {commitValidation} = groupValidationState ? groupValidationState : validationState;\n\n commitValidation();\n },\n isDisabled: isDisabled || isReadOnly\n });\n\n let {focusableProps} = useFocusable(props, ref);\n let interactions = mergeProps(pressProps, focusableProps);\n let domProps = filterDOMProps(props, {labelable: true});\n\n useFormReset(ref, state.defaultSelected, state.setSelected);\n\n // Copied from useField because we don't want the label behavior that provides.\n let descriptionProps = useSlotId2();\n let errorMessageProps = useSlotId2();\n\n return {\n labelProps: mergeProps(labelProps, {onClick: e => e.preventDefault()}),\n inputProps: mergeProps(domProps, {\n checked: state.isSelected,\n 'aria-required': (isRequired && validationBehavior === 'aria') || undefined,\n required: isRequired && validationBehavior === 'native',\n 'aria-invalid': isInvalid || props.validationState === 'invalid' || undefined,\n 'aria-errormessage': props['aria-errormessage'],\n 'aria-controls': props['aria-controls'],\n 'aria-readonly': isReadOnly || undefined,\n 'aria-describedby':\n [descriptionProps.id, errorMessageProps.id, ariaDescribedby].filter(Boolean).join(' ') ||\n undefined,\n onChange,\n disabled: isDisabled,\n ...(value == null ? {} : {value}),\n name,\n form,\n type: 'checkbox',\n ...interactions\n }),\n descriptionProps,\n errorMessageProps,\n isSelected: state.isSelected,\n isPressed: isPressed || isLabelPressed,\n isDisabled,\n isReadOnly,\n isInvalid: isInvalid || props.validationState === 'invalid',\n validationErrors,\n validationDetails\n };\n}\n"],"names":[],"version":3,"file":"useToggle.cjs.map"}
1
+ {"mappings":"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","sources":["packages/react-aria/src/toggle/useToggle.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 DOMAttributesWithRef,\n FocusableDOMProps,\n InputDOMProps,\n PressEvents,\n RefObject,\n ValidationResult\n} from '@react-types/shared';\nimport {ChangeEventHandler, InputHTMLAttributes, LabelHTMLAttributes, useState} from 'react';\nimport {filterDOMProps} from '../utils/filterDOMProps';\nimport {getEventTarget} from '../utils/shadowdom/DOMFunctions';\nimport {mergeProps} from '../utils/mergeProps';\nimport {\n privateValidationStateProp,\n useFormValidationState\n} from 'react-stately/private/form/useFormValidationState';\nimport {ToggleProps, ToggleState} from 'react-stately/useToggleState';\nimport {useFocusable} from '../interactions/useFocusable';\nimport {useFormReset} from '../utils/useFormReset';\nimport {useFormValidation} from '../form/useFormValidation';\nimport {usePress} from '../interactions/usePress';\nimport {useSlotId2} from '../utils/useSlot';\n\nexport interface AriaToggleProps\n extends\n ToggleProps,\n FocusableDOMProps,\n AriaLabelingProps,\n AriaValidationProps,\n InputDOMProps,\n PressEvents {\n /**\n * Identifies the element (or elements) whose contents or presence are controlled by the current\n * element.\n */\n 'aria-controls'?: string;\n}\n\nexport interface ToggleAria extends ValidationResult {\n /** Props to be spread on the label element. */\n labelProps: LabelHTMLAttributes<HTMLLabelElement>;\n /** Props to be spread on the input element. */\n inputProps: InputHTMLAttributes<HTMLInputElement>;\n /** Props for the checkbox description element, if any. */\n descriptionProps: DOMAttributesWithRef<HTMLElement>;\n /** Props for the checkbox error message element, if any. */\n errorMessageProps: DOMAttributesWithRef<HTMLElement>;\n /** Whether the toggle is selected. */\n isSelected: boolean;\n /** Whether the toggle is in a pressed state. */\n isPressed: boolean;\n /** Whether the toggle is disabled. */\n isDisabled: boolean;\n /** Whether the toggle is read only. */\n isReadOnly: boolean;\n /** Whether the toggle is invalid. */\n isInvalid: boolean;\n}\n\n/**\n * Handles interactions for toggle elements, e.g. Checkboxes and Switches.\n */\nexport function useToggle(\n props: AriaToggleProps,\n state: ToggleState,\n ref: RefObject<HTMLInputElement | null>\n): ToggleAria {\n let {\n isDisabled = false,\n isReadOnly = false,\n value,\n name,\n form,\n children,\n isRequired,\n validationBehavior = 'aria',\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n 'aria-describedby': ariaDescribedby,\n onPressStart,\n onPressEnd,\n onPressChange,\n onPress,\n onPressUp,\n onClick\n } = props;\n\n // Create validation state here because it doesn't make sense to add to general useToggleState.\n let validationState = useFormValidationState({...props, value: state.isSelected});\n let {isInvalid, validationErrors, validationDetails} = validationState.displayValidation;\n\n useFormValidation(props, validationState, ref);\n\n let onChange: ChangeEventHandler<HTMLInputElement> = e => {\n // since we spread props on label, onChange will end up there as well as in here.\n // so we have to stop propagation at the lowest level that we care about\n e.stopPropagation();\n state.setSelected(getEventTarget(e).checked);\n };\n\n let hasChildren = children != null;\n let hasAriaLabel = ariaLabel != null || ariaLabelledby != null;\n if (!hasChildren && !hasAriaLabel && process.env.NODE_ENV !== 'production') {\n console.warn(\n 'If you do not provide children, you must specify an aria-label for accessibility'\n );\n }\n\n // Handle press state for keyboard interactions and cases where labelProps is not used.\n let {pressProps, isPressed} = usePress({\n onPressStart,\n onPressEnd,\n onPressChange,\n onPress,\n onPressUp,\n onClick,\n isDisabled\n });\n\n // Handle press state on the label.\n let [isLabelPressed, setLabelPressed] = useState(false);\n let {pressProps: labelProps} = usePress({\n onPressStart(e) {\n // Keyboard interactions are handled directly on the input.\n if (e.pointerType === 'keyboard' || e.pointerType === 'virtual') {\n e.continuePropagation();\n return;\n }\n\n onPressStart?.(e);\n onPressChange?.(true);\n setLabelPressed(true);\n },\n onPressEnd(e) {\n // Keyboard interactions are handled directly on the input.\n if (e.pointerType === 'keyboard' || e.pointerType === 'virtual') {\n e.continuePropagation();\n return;\n }\n\n onPressEnd?.(e);\n onPressChange?.(false);\n setLabelPressed(false);\n },\n onPressUp(e) {\n if (e.pointerType === 'keyboard' || e.pointerType === 'virtual') {\n e.continuePropagation();\n return;\n }\n\n onPressUp?.(e);\n },\n onClick,\n onPress(e) {\n if (e.pointerType === 'keyboard' || e.pointerType === 'virtual') {\n e.continuePropagation();\n return;\n }\n\n onPress?.(e);\n state.toggle();\n ref.current?.focus();\n\n // @ts-expect-error\n let {[privateValidationStateProp]: groupValidationState} = props;\n\n // oxlint-disable-next-line react/react-compiler\n let {commitValidation} = groupValidationState ? groupValidationState : validationState;\n\n commitValidation();\n },\n isDisabled: isDisabled || isReadOnly\n });\n\n let {focusableProps} = useFocusable(props, ref);\n let interactions = mergeProps(pressProps, focusableProps);\n let domProps = filterDOMProps(props, {labelable: true});\n\n useFormReset(ref, state.defaultSelected, state.setSelected);\n\n // Copied from useField because we don't want the label behavior that provides.\n let descriptionProps = useSlotId2();\n let errorMessageProps = useSlotId2();\n\n return {\n labelProps: mergeProps(labelProps, {onClick: e => e.preventDefault()}),\n inputProps: mergeProps(domProps, {\n checked: state.isSelected,\n 'aria-required': (isRequired && validationBehavior === 'aria') || undefined,\n required: isRequired && validationBehavior === 'native',\n 'aria-invalid': isInvalid || props.validationState === 'invalid' || undefined,\n 'aria-errormessage': props['aria-errormessage'],\n 'aria-controls': props['aria-controls'],\n 'aria-readonly': isReadOnly || undefined,\n 'aria-describedby':\n [descriptionProps.id, errorMessageProps.id, ariaDescribedby].filter(Boolean).join(' ') ||\n undefined,\n onChange,\n disabled: isDisabled,\n ...(value == null ? {} : {value}),\n name,\n form,\n type: 'checkbox',\n ...interactions\n }),\n descriptionProps,\n errorMessageProps,\n isSelected: state.isSelected,\n isPressed: isPressed || isLabelPressed,\n isDisabled,\n isReadOnly,\n isInvalid: isInvalid || props.validationState === 'invalid',\n validationErrors,\n validationDetails\n };\n}\n"],"names":[],"version":3,"file":"useToggle.cjs.map"}
@@ -99,6 +99,7 @@ function $02953ddad5f95ac5$export$cbe85ee05b554577(props, state, ref) {
99
99
  (_ref_current = ref.current) === null || _ref_current === void 0 ? void 0 : _ref_current.focus();
100
100
  // @ts-expect-error
101
101
  let { [(0, $2yVP5$privateValidationStateProp)]: groupValidationState } = props;
102
+ // oxlint-disable-next-line react/react-compiler
102
103
  let { commitValidation: commitValidation } = groupValidationState ? groupValidationState : validationState;
103
104
  commitValidation();
104
105
  },
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/react-aria/src/toggle/useToggle.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 DOMAttributesWithRef,\n FocusableDOMProps,\n InputDOMProps,\n PressEvents,\n RefObject,\n ValidationResult\n} from '@react-types/shared';\nimport {ChangeEventHandler, InputHTMLAttributes, LabelHTMLAttributes, useState} from 'react';\nimport {filterDOMProps} from '../utils/filterDOMProps';\nimport {getEventTarget} from '../utils/shadowdom/DOMFunctions';\nimport {mergeProps} from '../utils/mergeProps';\nimport {\n privateValidationStateProp,\n useFormValidationState\n} from 'react-stately/private/form/useFormValidationState';\nimport {ToggleProps, ToggleState} from 'react-stately/useToggleState';\nimport {useFocusable} from '../interactions/useFocusable';\nimport {useFormReset} from '../utils/useFormReset';\nimport {useFormValidation} from '../form/useFormValidation';\nimport {usePress} from '../interactions/usePress';\nimport {useSlotId2} from '../utils/useSlot';\n\nexport interface AriaToggleProps\n extends\n ToggleProps,\n FocusableDOMProps,\n AriaLabelingProps,\n AriaValidationProps,\n InputDOMProps,\n PressEvents {\n /**\n * Identifies the element (or elements) whose contents or presence are controlled by the current\n * element.\n */\n 'aria-controls'?: string;\n}\n\nexport interface ToggleAria extends ValidationResult {\n /** Props to be spread on the label element. */\n labelProps: LabelHTMLAttributes<HTMLLabelElement>;\n /** Props to be spread on the input element. */\n inputProps: InputHTMLAttributes<HTMLInputElement>;\n /** Props for the checkbox description element, if any. */\n descriptionProps: DOMAttributesWithRef<HTMLElement>;\n /** Props for the checkbox error message element, if any. */\n errorMessageProps: DOMAttributesWithRef<HTMLElement>;\n /** Whether the toggle is selected. */\n isSelected: boolean;\n /** Whether the toggle is in a pressed state. */\n isPressed: boolean;\n /** Whether the toggle is disabled. */\n isDisabled: boolean;\n /** Whether the toggle is read only. */\n isReadOnly: boolean;\n /** Whether the toggle is invalid. */\n isInvalid: boolean;\n}\n\n/**\n * Handles interactions for toggle elements, e.g. Checkboxes and Switches.\n */\nexport function useToggle(\n props: AriaToggleProps,\n state: ToggleState,\n ref: RefObject<HTMLInputElement | null>\n): ToggleAria {\n let {\n isDisabled = false,\n isReadOnly = false,\n value,\n name,\n form,\n children,\n isRequired,\n validationBehavior = 'aria',\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n 'aria-describedby': ariaDescribedby,\n onPressStart,\n onPressEnd,\n onPressChange,\n onPress,\n onPressUp,\n onClick\n } = props;\n\n // Create validation state here because it doesn't make sense to add to general useToggleState.\n let validationState = useFormValidationState({...props, value: state.isSelected});\n let {isInvalid, validationErrors, validationDetails} = validationState.displayValidation;\n\n useFormValidation(props, validationState, ref);\n\n let onChange: ChangeEventHandler<HTMLInputElement> = e => {\n // since we spread props on label, onChange will end up there as well as in here.\n // so we have to stop propagation at the lowest level that we care about\n e.stopPropagation();\n state.setSelected(getEventTarget(e).checked);\n };\n\n let hasChildren = children != null;\n let hasAriaLabel = ariaLabel != null || ariaLabelledby != null;\n if (!hasChildren && !hasAriaLabel && process.env.NODE_ENV !== 'production') {\n console.warn(\n 'If you do not provide children, you must specify an aria-label for accessibility'\n );\n }\n\n // Handle press state for keyboard interactions and cases where labelProps is not used.\n let {pressProps, isPressed} = usePress({\n onPressStart,\n onPressEnd,\n onPressChange,\n onPress,\n onPressUp,\n onClick,\n isDisabled\n });\n\n // Handle press state on the label.\n let [isLabelPressed, setLabelPressed] = useState(false);\n let {pressProps: labelProps} = usePress({\n onPressStart(e) {\n // Keyboard interactions are handled directly on the input.\n if (e.pointerType === 'keyboard' || e.pointerType === 'virtual') {\n e.continuePropagation();\n return;\n }\n\n onPressStart?.(e);\n onPressChange?.(true);\n setLabelPressed(true);\n },\n onPressEnd(e) {\n // Keyboard interactions are handled directly on the input.\n if (e.pointerType === 'keyboard' || e.pointerType === 'virtual') {\n e.continuePropagation();\n return;\n }\n\n onPressEnd?.(e);\n onPressChange?.(false);\n setLabelPressed(false);\n },\n onPressUp(e) {\n if (e.pointerType === 'keyboard' || e.pointerType === 'virtual') {\n e.continuePropagation();\n return;\n }\n\n onPressUp?.(e);\n },\n onClick,\n onPress(e) {\n if (e.pointerType === 'keyboard' || e.pointerType === 'virtual') {\n e.continuePropagation();\n return;\n }\n\n onPress?.(e);\n state.toggle();\n ref.current?.focus();\n\n // @ts-expect-error\n let {[privateValidationStateProp]: groupValidationState} = props;\n\n let {commitValidation} = groupValidationState ? groupValidationState : validationState;\n\n commitValidation();\n },\n isDisabled: isDisabled || isReadOnly\n });\n\n let {focusableProps} = useFocusable(props, ref);\n let interactions = mergeProps(pressProps, focusableProps);\n let domProps = filterDOMProps(props, {labelable: true});\n\n useFormReset(ref, state.defaultSelected, state.setSelected);\n\n // Copied from useField because we don't want the label behavior that provides.\n let descriptionProps = useSlotId2();\n let errorMessageProps = useSlotId2();\n\n return {\n labelProps: mergeProps(labelProps, {onClick: e => e.preventDefault()}),\n inputProps: mergeProps(domProps, {\n checked: state.isSelected,\n 'aria-required': (isRequired && validationBehavior === 'aria') || undefined,\n required: isRequired && validationBehavior === 'native',\n 'aria-invalid': isInvalid || props.validationState === 'invalid' || undefined,\n 'aria-errormessage': props['aria-errormessage'],\n 'aria-controls': props['aria-controls'],\n 'aria-readonly': isReadOnly || undefined,\n 'aria-describedby':\n [descriptionProps.id, errorMessageProps.id, ariaDescribedby].filter(Boolean).join(' ') ||\n undefined,\n onChange,\n disabled: isDisabled,\n ...(value == null ? {} : {value}),\n name,\n form,\n type: 'checkbox',\n ...interactions\n }),\n descriptionProps,\n errorMessageProps,\n isSelected: state.isSelected,\n isPressed: isPressed || isLabelPressed,\n isDisabled,\n isReadOnly,\n isInvalid: isInvalid || props.validationState === 'invalid',\n validationErrors,\n validationDetails\n };\n}\n"],"names":[],"version":3,"file":"useToggle.js.map"}
1
+ {"mappings":";;;;;;;;;;;AAAA;;;;;;;;;;CAUC;;;;;;;;;;AAkEM,SAAS,0CACd,KAAsB,EACtB,KAAkB,EAClB,GAAuC;IAEvC,IAAI,cACF,aAAa,mBACb,aAAa,cACb,KAAK,QACL,IAAI,QACJ,IAAI,YACJ,QAAQ,cACR,UAAU,sBACV,qBAAqB,QACrB,cAAc,SAAS,EACvB,mBAAmB,cAAc,EACjC,oBAAoB,eAAe,gBACnC,YAAY,cACZ,UAAU,iBACV,aAAa,WACb,OAAO,aACP,SAAS,WACT,OAAO,EACR,GAAG;IAEJ,+FAA+F;IAC/F,IAAI,kBAAkB,CAAA,GAAA,6BAAqB,EAAE;QAAC,GAAG,KAAK;QAAE,OAAO,MAAM,UAAU;IAAA;IAC/E,IAAI,aAAC,SAAS,oBAAE,gBAAgB,qBAAE,iBAAiB,EAAC,GAAG,gBAAgB,iBAAiB;IAExF,CAAA,GAAA,yCAAgB,EAAE,OAAO,iBAAiB;IAE1C,IAAI,WAAiD,CAAA;QACnD,iFAAiF;QACjF,wEAAwE;QACxE,EAAE,eAAe;QACjB,MAAM,WAAW,CAAC,CAAA,GAAA,yCAAa,EAAE,GAAG,OAAO;IAC7C;IAEA,IAAI,cAAc,YAAY;IAC9B,IAAI,eAAe,aAAa,QAAQ,kBAAkB;IAC1D,IAAI,CAAC,eAAe,CAAC,gBAAgB,QAAQ,GAAG,CAAC,QAAQ,KAAK,cAC5D,QAAQ,IAAI,CACV;IAIJ,uFAAuF;IACvF,IAAI,cAAC,UAAU,aAAE,SAAS,EAAC,GAAG,CAAA,GAAA,yCAAO,EAAE;sBACrC;oBACA;uBACA;iBACA;mBACA;iBACA;oBACA;IACF;IAEA,mCAAmC;IACnC,IAAI,CAAC,gBAAgB,gBAAgB,GAAG,CAAA,GAAA,eAAO,EAAE;IACjD,IAAI,EAAC,YAAY,UAAU,EAAC,GAAG,CAAA,GAAA,yCAAO,EAAE;QACtC,cAAa,CAAC;YACZ,2DAA2D;YAC3D,IAAI,EAAE,WAAW,KAAK,cAAc,EAAE,WAAW,KAAK,WAAW;gBAC/D,EAAE,mBAAmB;gBACrB;YACF;YAEA,yBAAA,mCAAA,aAAe;YACf,0BAAA,oCAAA,cAAgB;YAChB,gBAAgB;QAClB;QACA,YAAW,CAAC;YACV,2DAA2D;YAC3D,IAAI,EAAE,WAAW,KAAK,cAAc,EAAE,WAAW,KAAK,WAAW;gBAC/D,EAAE,mBAAmB;gBACrB;YACF;YAEA,uBAAA,iCAAA,WAAa;YACb,0BAAA,oCAAA,cAAgB;YAChB,gBAAgB;QAClB;QACA,WAAU,CAAC;YACT,IAAI,EAAE,WAAW,KAAK,cAAc,EAAE,WAAW,KAAK,WAAW;gBAC/D,EAAE,mBAAmB;gBACrB;YACF;YAEA,sBAAA,gCAAA,UAAY;QACd;iBACA;QACA,SAAQ,CAAC;gBAQP;YAPA,IAAI,EAAE,WAAW,KAAK,cAAc,EAAE,WAAW,KAAK,WAAW;gBAC/D,EAAE,mBAAmB;gBACrB;YACF;YAEA,oBAAA,8BAAA,QAAU;YACV,MAAM,MAAM;aACZ,eAAA,IAAI,OAAO,cAAX,mCAAA,aAAa,KAAK;YAElB,mBAAmB;YACnB,IAAI,EAAC,CAAC,CAAA,GAAA,iCAAyB,EAAE,EAAE,oBAAoB,EAAC,GAAG;YAE3D,gDAAgD;YAChD,IAAI,oBAAC,gBAAgB,EAAC,GAAG,uBAAuB,uBAAuB;YAEvE;QACF;QACA,YAAY,cAAc;IAC5B;IAEA,IAAI,kBAAC,cAAc,EAAC,GAAG,CAAA,GAAA,yCAAW,EAAE,OAAO;IAC3C,IAAI,eAAe,CAAA,GAAA,yCAAS,EAAE,YAAY;IAC1C,IAAI,WAAW,CAAA,GAAA,yCAAa,EAAE,OAAO;QAAC,WAAW;IAAI;IAErD,CAAA,GAAA,yCAAW,EAAE,KAAK,MAAM,eAAe,EAAE,MAAM,WAAW;IAE1D,+EAA+E;IAC/E,IAAI,mBAAmB,CAAA,GAAA,yCAAS;IAChC,IAAI,oBAAoB,CAAA,GAAA,yCAAS;IAEjC,OAAO;QACL,YAAY,CAAA,GAAA,yCAAS,EAAE,YAAY;YAAC,SAAS,CAAA,IAAK,EAAE,cAAc;QAAE;QACpE,YAAY,CAAA,GAAA,yCAAS,EAAE,UAAU;YAC/B,SAAS,MAAM,UAAU;YACzB,iBAAiB,AAAC,cAAc,uBAAuB,UAAW;YAClE,UAAU,cAAc,uBAAuB;YAC/C,gBAAgB,aAAa,MAAM,eAAe,KAAK,aAAa;YACpE,qBAAqB,KAAK,CAAC,oBAAoB;YAC/C,iBAAiB,KAAK,CAAC,gBAAgB;YACvC,iBAAiB,cAAc;YAC/B,oBACE;gBAAC,iBAAiB,EAAE;gBAAE,kBAAkB,EAAE;gBAAE;aAAgB,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,QAClF;sBACF;YACA,UAAU;YACV,GAAI,SAAS,OAAO,CAAC,IAAI;uBAAC;YAAK,CAAC;kBAChC;kBACA;YACA,MAAM;YACN,GAAG,YAAY;QACjB;0BACA;2BACA;QACA,YAAY,MAAM,UAAU;QAC5B,WAAW,aAAa;oBACxB;oBACA;QACA,WAAW,aAAa,MAAM,eAAe,KAAK;0BAClD;2BACA;IACF;AACF","sources":["packages/react-aria/src/toggle/useToggle.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 DOMAttributesWithRef,\n FocusableDOMProps,\n InputDOMProps,\n PressEvents,\n RefObject,\n ValidationResult\n} from '@react-types/shared';\nimport {ChangeEventHandler, InputHTMLAttributes, LabelHTMLAttributes, useState} from 'react';\nimport {filterDOMProps} from '../utils/filterDOMProps';\nimport {getEventTarget} from '../utils/shadowdom/DOMFunctions';\nimport {mergeProps} from '../utils/mergeProps';\nimport {\n privateValidationStateProp,\n useFormValidationState\n} from 'react-stately/private/form/useFormValidationState';\nimport {ToggleProps, ToggleState} from 'react-stately/useToggleState';\nimport {useFocusable} from '../interactions/useFocusable';\nimport {useFormReset} from '../utils/useFormReset';\nimport {useFormValidation} from '../form/useFormValidation';\nimport {usePress} from '../interactions/usePress';\nimport {useSlotId2} from '../utils/useSlot';\n\nexport interface AriaToggleProps\n extends\n ToggleProps,\n FocusableDOMProps,\n AriaLabelingProps,\n AriaValidationProps,\n InputDOMProps,\n PressEvents {\n /**\n * Identifies the element (or elements) whose contents or presence are controlled by the current\n * element.\n */\n 'aria-controls'?: string;\n}\n\nexport interface ToggleAria extends ValidationResult {\n /** Props to be spread on the label element. */\n labelProps: LabelHTMLAttributes<HTMLLabelElement>;\n /** Props to be spread on the input element. */\n inputProps: InputHTMLAttributes<HTMLInputElement>;\n /** Props for the checkbox description element, if any. */\n descriptionProps: DOMAttributesWithRef<HTMLElement>;\n /** Props for the checkbox error message element, if any. */\n errorMessageProps: DOMAttributesWithRef<HTMLElement>;\n /** Whether the toggle is selected. */\n isSelected: boolean;\n /** Whether the toggle is in a pressed state. */\n isPressed: boolean;\n /** Whether the toggle is disabled. */\n isDisabled: boolean;\n /** Whether the toggle is read only. */\n isReadOnly: boolean;\n /** Whether the toggle is invalid. */\n isInvalid: boolean;\n}\n\n/**\n * Handles interactions for toggle elements, e.g. Checkboxes and Switches.\n */\nexport function useToggle(\n props: AriaToggleProps,\n state: ToggleState,\n ref: RefObject<HTMLInputElement | null>\n): ToggleAria {\n let {\n isDisabled = false,\n isReadOnly = false,\n value,\n name,\n form,\n children,\n isRequired,\n validationBehavior = 'aria',\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n 'aria-describedby': ariaDescribedby,\n onPressStart,\n onPressEnd,\n onPressChange,\n onPress,\n onPressUp,\n onClick\n } = props;\n\n // Create validation state here because it doesn't make sense to add to general useToggleState.\n let validationState = useFormValidationState({...props, value: state.isSelected});\n let {isInvalid, validationErrors, validationDetails} = validationState.displayValidation;\n\n useFormValidation(props, validationState, ref);\n\n let onChange: ChangeEventHandler<HTMLInputElement> = e => {\n // since we spread props on label, onChange will end up there as well as in here.\n // so we have to stop propagation at the lowest level that we care about\n e.stopPropagation();\n state.setSelected(getEventTarget(e).checked);\n };\n\n let hasChildren = children != null;\n let hasAriaLabel = ariaLabel != null || ariaLabelledby != null;\n if (!hasChildren && !hasAriaLabel && process.env.NODE_ENV !== 'production') {\n console.warn(\n 'If you do not provide children, you must specify an aria-label for accessibility'\n );\n }\n\n // Handle press state for keyboard interactions and cases where labelProps is not used.\n let {pressProps, isPressed} = usePress({\n onPressStart,\n onPressEnd,\n onPressChange,\n onPress,\n onPressUp,\n onClick,\n isDisabled\n });\n\n // Handle press state on the label.\n let [isLabelPressed, setLabelPressed] = useState(false);\n let {pressProps: labelProps} = usePress({\n onPressStart(e) {\n // Keyboard interactions are handled directly on the input.\n if (e.pointerType === 'keyboard' || e.pointerType === 'virtual') {\n e.continuePropagation();\n return;\n }\n\n onPressStart?.(e);\n onPressChange?.(true);\n setLabelPressed(true);\n },\n onPressEnd(e) {\n // Keyboard interactions are handled directly on the input.\n if (e.pointerType === 'keyboard' || e.pointerType === 'virtual') {\n e.continuePropagation();\n return;\n }\n\n onPressEnd?.(e);\n onPressChange?.(false);\n setLabelPressed(false);\n },\n onPressUp(e) {\n if (e.pointerType === 'keyboard' || e.pointerType === 'virtual') {\n e.continuePropagation();\n return;\n }\n\n onPressUp?.(e);\n },\n onClick,\n onPress(e) {\n if (e.pointerType === 'keyboard' || e.pointerType === 'virtual') {\n e.continuePropagation();\n return;\n }\n\n onPress?.(e);\n state.toggle();\n ref.current?.focus();\n\n // @ts-expect-error\n let {[privateValidationStateProp]: groupValidationState} = props;\n\n // oxlint-disable-next-line react/react-compiler\n let {commitValidation} = groupValidationState ? groupValidationState : validationState;\n\n commitValidation();\n },\n isDisabled: isDisabled || isReadOnly\n });\n\n let {focusableProps} = useFocusable(props, ref);\n let interactions = mergeProps(pressProps, focusableProps);\n let domProps = filterDOMProps(props, {labelable: true});\n\n useFormReset(ref, state.defaultSelected, state.setSelected);\n\n // Copied from useField because we don't want the label behavior that provides.\n let descriptionProps = useSlotId2();\n let errorMessageProps = useSlotId2();\n\n return {\n labelProps: mergeProps(labelProps, {onClick: e => e.preventDefault()}),\n inputProps: mergeProps(domProps, {\n checked: state.isSelected,\n 'aria-required': (isRequired && validationBehavior === 'aria') || undefined,\n required: isRequired && validationBehavior === 'native',\n 'aria-invalid': isInvalid || props.validationState === 'invalid' || undefined,\n 'aria-errormessage': props['aria-errormessage'],\n 'aria-controls': props['aria-controls'],\n 'aria-readonly': isReadOnly || undefined,\n 'aria-describedby':\n [descriptionProps.id, errorMessageProps.id, ariaDescribedby].filter(Boolean).join(' ') ||\n undefined,\n onChange,\n disabled: isDisabled,\n ...(value == null ? {} : {value}),\n name,\n form,\n type: 'checkbox',\n ...interactions\n }),\n descriptionProps,\n errorMessageProps,\n isSelected: state.isSelected,\n isPressed: isPressed || isLabelPressed,\n isDisabled,\n isReadOnly,\n isInvalid: isInvalid || props.validationState === 'invalid',\n validationErrors,\n validationDetails\n };\n}\n"],"names":[],"version":3,"file":"useToggle.js.map"}
@@ -98,6 +98,7 @@ function $876b6f32ca5a04c3$export$cbe85ee05b554577(props, state, ref) {
98
98
  ref.current?.focus();
99
99
  // @ts-expect-error
100
100
  let { [(0, $jQnU8$privateValidationStateProp)]: groupValidationState } = props;
101
+ // oxlint-disable-next-line react/react-compiler
101
102
  let { commitValidation: commitValidation } = groupValidationState ? groupValidationState : validationState;
102
103
  commitValidation();
103
104
  },
@@ -1 +1 @@
1
- {"mappings":";;;;;;;;;;;AAAA;;;;;;;;;;CAUC;;;;;;;;;;AAkEM,SAAS,0CACd,KAAsB,EACtB,KAAkB,EAClB,GAAuC;IAEvC,IAAI,cACF,aAAa,mBACb,aAAa,cACb,KAAK,QACL,IAAI,QACJ,IAAI,YACJ,QAAQ,cACR,UAAU,sBACV,qBAAqB,QACrB,cAAc,SAAS,EACvB,mBAAmB,cAAc,EACjC,oBAAoB,eAAe,gBACnC,YAAY,cACZ,UAAU,iBACV,aAAa,WACb,OAAO,aACP,SAAS,WACT,OAAO,EACR,GAAG;IAEJ,+FAA+F;IAC/F,IAAI,kBAAkB,CAAA,GAAA,6BAAqB,EAAE;QAAC,GAAG,KAAK;QAAE,OAAO,MAAM,UAAU;IAAA;IAC/E,IAAI,aAAC,SAAS,oBAAE,gBAAgB,qBAAE,iBAAiB,EAAC,GAAG,gBAAgB,iBAAiB;IAExF,CAAA,GAAA,yCAAgB,EAAE,OAAO,iBAAiB;IAE1C,IAAI,WAAiD,CAAA;QACnD,iFAAiF;QACjF,wEAAwE;QACxE,EAAE,eAAe;QACjB,MAAM,WAAW,CAAC,CAAA,GAAA,yCAAa,EAAE,GAAG,OAAO;IAC7C;IAEA,IAAI,cAAc,YAAY;IAC9B,IAAI,eAAe,aAAa,QAAQ,kBAAkB;IAC1D,IAAI,CAAC,eAAe,CAAC,gBAAgB,QAAQ,GAAG,CAAC,QAAQ,KAAK,cAC5D,QAAQ,IAAI,CACV;IAIJ,uFAAuF;IACvF,IAAI,cAAC,UAAU,aAAE,SAAS,EAAC,GAAG,CAAA,GAAA,yCAAO,EAAE;sBACrC;oBACA;uBACA;iBACA;mBACA;iBACA;oBACA;IACF;IAEA,mCAAmC;IACnC,IAAI,CAAC,gBAAgB,gBAAgB,GAAG,CAAA,GAAA,eAAO,EAAE;IACjD,IAAI,EAAC,YAAY,UAAU,EAAC,GAAG,CAAA,GAAA,yCAAO,EAAE;QACtC,cAAa,CAAC;YACZ,2DAA2D;YAC3D,IAAI,EAAE,WAAW,KAAK,cAAc,EAAE,WAAW,KAAK,WAAW;gBAC/D,EAAE,mBAAmB;gBACrB;YACF;YAEA,eAAe;YACf,gBAAgB;YAChB,gBAAgB;QAClB;QACA,YAAW,CAAC;YACV,2DAA2D;YAC3D,IAAI,EAAE,WAAW,KAAK,cAAc,EAAE,WAAW,KAAK,WAAW;gBAC/D,EAAE,mBAAmB;gBACrB;YACF;YAEA,aAAa;YACb,gBAAgB;YAChB,gBAAgB;QAClB;QACA,WAAU,CAAC;YACT,IAAI,EAAE,WAAW,KAAK,cAAc,EAAE,WAAW,KAAK,WAAW;gBAC/D,EAAE,mBAAmB;gBACrB;YACF;YAEA,YAAY;QACd;iBACA;QACA,SAAQ,CAAC;YACP,IAAI,EAAE,WAAW,KAAK,cAAc,EAAE,WAAW,KAAK,WAAW;gBAC/D,EAAE,mBAAmB;gBACrB;YACF;YAEA,UAAU;YACV,MAAM,MAAM;YACZ,IAAI,OAAO,EAAE;YAEb,mBAAmB;YACnB,IAAI,EAAC,CAAC,CAAA,GAAA,iCAAyB,EAAE,EAAE,oBAAoB,EAAC,GAAG;YAE3D,IAAI,oBAAC,gBAAgB,EAAC,GAAG,uBAAuB,uBAAuB;YAEvE;QACF;QACA,YAAY,cAAc;IAC5B;IAEA,IAAI,kBAAC,cAAc,EAAC,GAAG,CAAA,GAAA,yCAAW,EAAE,OAAO;IAC3C,IAAI,eAAe,CAAA,GAAA,yCAAS,EAAE,YAAY;IAC1C,IAAI,WAAW,CAAA,GAAA,yCAAa,EAAE,OAAO;QAAC,WAAW;IAAI;IAErD,CAAA,GAAA,yCAAW,EAAE,KAAK,MAAM,eAAe,EAAE,MAAM,WAAW;IAE1D,+EAA+E;IAC/E,IAAI,mBAAmB,CAAA,GAAA,yCAAS;IAChC,IAAI,oBAAoB,CAAA,GAAA,yCAAS;IAEjC,OAAO;QACL,YAAY,CAAA,GAAA,yCAAS,EAAE,YAAY;YAAC,SAAS,CAAA,IAAK,EAAE,cAAc;QAAE;QACpE,YAAY,CAAA,GAAA,yCAAS,EAAE,UAAU;YAC/B,SAAS,MAAM,UAAU;YACzB,iBAAiB,AAAC,cAAc,uBAAuB,UAAW;YAClE,UAAU,cAAc,uBAAuB;YAC/C,gBAAgB,aAAa,MAAM,eAAe,KAAK,aAAa;YACpE,qBAAqB,KAAK,CAAC,oBAAoB;YAC/C,iBAAiB,KAAK,CAAC,gBAAgB;YACvC,iBAAiB,cAAc;YAC/B,oBACE;gBAAC,iBAAiB,EAAE;gBAAE,kBAAkB,EAAE;gBAAE;aAAgB,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,QAClF;sBACF;YACA,UAAU;YACV,GAAI,SAAS,OAAO,CAAC,IAAI;uBAAC;YAAK,CAAC;kBAChC;kBACA;YACA,MAAM;YACN,GAAG,YAAY;QACjB;0BACA;2BACA;QACA,YAAY,MAAM,UAAU;QAC5B,WAAW,aAAa;oBACxB;oBACA;QACA,WAAW,aAAa,MAAM,eAAe,KAAK;0BAClD;2BACA;IACF;AACF","sources":["packages/react-aria/src/toggle/useToggle.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 DOMAttributesWithRef,\n FocusableDOMProps,\n InputDOMProps,\n PressEvents,\n RefObject,\n ValidationResult\n} from '@react-types/shared';\nimport {ChangeEventHandler, InputHTMLAttributes, LabelHTMLAttributes, useState} from 'react';\nimport {filterDOMProps} from '../utils/filterDOMProps';\nimport {getEventTarget} from '../utils/shadowdom/DOMFunctions';\nimport {mergeProps} from '../utils/mergeProps';\nimport {\n privateValidationStateProp,\n useFormValidationState\n} from 'react-stately/private/form/useFormValidationState';\nimport {ToggleProps, ToggleState} from 'react-stately/useToggleState';\nimport {useFocusable} from '../interactions/useFocusable';\nimport {useFormReset} from '../utils/useFormReset';\nimport {useFormValidation} from '../form/useFormValidation';\nimport {usePress} from '../interactions/usePress';\nimport {useSlotId2} from '../utils/useSlot';\n\nexport interface AriaToggleProps\n extends\n ToggleProps,\n FocusableDOMProps,\n AriaLabelingProps,\n AriaValidationProps,\n InputDOMProps,\n PressEvents {\n /**\n * Identifies the element (or elements) whose contents or presence are controlled by the current\n * element.\n */\n 'aria-controls'?: string;\n}\n\nexport interface ToggleAria extends ValidationResult {\n /** Props to be spread on the label element. */\n labelProps: LabelHTMLAttributes<HTMLLabelElement>;\n /** Props to be spread on the input element. */\n inputProps: InputHTMLAttributes<HTMLInputElement>;\n /** Props for the checkbox description element, if any. */\n descriptionProps: DOMAttributesWithRef<HTMLElement>;\n /** Props for the checkbox error message element, if any. */\n errorMessageProps: DOMAttributesWithRef<HTMLElement>;\n /** Whether the toggle is selected. */\n isSelected: boolean;\n /** Whether the toggle is in a pressed state. */\n isPressed: boolean;\n /** Whether the toggle is disabled. */\n isDisabled: boolean;\n /** Whether the toggle is read only. */\n isReadOnly: boolean;\n /** Whether the toggle is invalid. */\n isInvalid: boolean;\n}\n\n/**\n * Handles interactions for toggle elements, e.g. Checkboxes and Switches.\n */\nexport function useToggle(\n props: AriaToggleProps,\n state: ToggleState,\n ref: RefObject<HTMLInputElement | null>\n): ToggleAria {\n let {\n isDisabled = false,\n isReadOnly = false,\n value,\n name,\n form,\n children,\n isRequired,\n validationBehavior = 'aria',\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n 'aria-describedby': ariaDescribedby,\n onPressStart,\n onPressEnd,\n onPressChange,\n onPress,\n onPressUp,\n onClick\n } = props;\n\n // Create validation state here because it doesn't make sense to add to general useToggleState.\n let validationState = useFormValidationState({...props, value: state.isSelected});\n let {isInvalid, validationErrors, validationDetails} = validationState.displayValidation;\n\n useFormValidation(props, validationState, ref);\n\n let onChange: ChangeEventHandler<HTMLInputElement> = e => {\n // since we spread props on label, onChange will end up there as well as in here.\n // so we have to stop propagation at the lowest level that we care about\n e.stopPropagation();\n state.setSelected(getEventTarget(e).checked);\n };\n\n let hasChildren = children != null;\n let hasAriaLabel = ariaLabel != null || ariaLabelledby != null;\n if (!hasChildren && !hasAriaLabel && process.env.NODE_ENV !== 'production') {\n console.warn(\n 'If you do not provide children, you must specify an aria-label for accessibility'\n );\n }\n\n // Handle press state for keyboard interactions and cases where labelProps is not used.\n let {pressProps, isPressed} = usePress({\n onPressStart,\n onPressEnd,\n onPressChange,\n onPress,\n onPressUp,\n onClick,\n isDisabled\n });\n\n // Handle press state on the label.\n let [isLabelPressed, setLabelPressed] = useState(false);\n let {pressProps: labelProps} = usePress({\n onPressStart(e) {\n // Keyboard interactions are handled directly on the input.\n if (e.pointerType === 'keyboard' || e.pointerType === 'virtual') {\n e.continuePropagation();\n return;\n }\n\n onPressStart?.(e);\n onPressChange?.(true);\n setLabelPressed(true);\n },\n onPressEnd(e) {\n // Keyboard interactions are handled directly on the input.\n if (e.pointerType === 'keyboard' || e.pointerType === 'virtual') {\n e.continuePropagation();\n return;\n }\n\n onPressEnd?.(e);\n onPressChange?.(false);\n setLabelPressed(false);\n },\n onPressUp(e) {\n if (e.pointerType === 'keyboard' || e.pointerType === 'virtual') {\n e.continuePropagation();\n return;\n }\n\n onPressUp?.(e);\n },\n onClick,\n onPress(e) {\n if (e.pointerType === 'keyboard' || e.pointerType === 'virtual') {\n e.continuePropagation();\n return;\n }\n\n onPress?.(e);\n state.toggle();\n ref.current?.focus();\n\n // @ts-expect-error\n let {[privateValidationStateProp]: groupValidationState} = props;\n\n let {commitValidation} = groupValidationState ? groupValidationState : validationState;\n\n commitValidation();\n },\n isDisabled: isDisabled || isReadOnly\n });\n\n let {focusableProps} = useFocusable(props, ref);\n let interactions = mergeProps(pressProps, focusableProps);\n let domProps = filterDOMProps(props, {labelable: true});\n\n useFormReset(ref, state.defaultSelected, state.setSelected);\n\n // Copied from useField because we don't want the label behavior that provides.\n let descriptionProps = useSlotId2();\n let errorMessageProps = useSlotId2();\n\n return {\n labelProps: mergeProps(labelProps, {onClick: e => e.preventDefault()}),\n inputProps: mergeProps(domProps, {\n checked: state.isSelected,\n 'aria-required': (isRequired && validationBehavior === 'aria') || undefined,\n required: isRequired && validationBehavior === 'native',\n 'aria-invalid': isInvalid || props.validationState === 'invalid' || undefined,\n 'aria-errormessage': props['aria-errormessage'],\n 'aria-controls': props['aria-controls'],\n 'aria-readonly': isReadOnly || undefined,\n 'aria-describedby':\n [descriptionProps.id, errorMessageProps.id, ariaDescribedby].filter(Boolean).join(' ') ||\n undefined,\n onChange,\n disabled: isDisabled,\n ...(value == null ? {} : {value}),\n name,\n form,\n type: 'checkbox',\n ...interactions\n }),\n descriptionProps,\n errorMessageProps,\n isSelected: state.isSelected,\n isPressed: isPressed || isLabelPressed,\n isDisabled,\n isReadOnly,\n isInvalid: isInvalid || props.validationState === 'invalid',\n validationErrors,\n validationDetails\n };\n}\n"],"names":[],"version":3,"file":"useToggle.mjs.map"}
1
+ {"mappings":"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","sources":["packages/react-aria/src/toggle/useToggle.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 DOMAttributesWithRef,\n FocusableDOMProps,\n InputDOMProps,\n PressEvents,\n RefObject,\n ValidationResult\n} from '@react-types/shared';\nimport {ChangeEventHandler, InputHTMLAttributes, LabelHTMLAttributes, useState} from 'react';\nimport {filterDOMProps} from '../utils/filterDOMProps';\nimport {getEventTarget} from '../utils/shadowdom/DOMFunctions';\nimport {mergeProps} from '../utils/mergeProps';\nimport {\n privateValidationStateProp,\n useFormValidationState\n} from 'react-stately/private/form/useFormValidationState';\nimport {ToggleProps, ToggleState} from 'react-stately/useToggleState';\nimport {useFocusable} from '../interactions/useFocusable';\nimport {useFormReset} from '../utils/useFormReset';\nimport {useFormValidation} from '../form/useFormValidation';\nimport {usePress} from '../interactions/usePress';\nimport {useSlotId2} from '../utils/useSlot';\n\nexport interface AriaToggleProps\n extends\n ToggleProps,\n FocusableDOMProps,\n AriaLabelingProps,\n AriaValidationProps,\n InputDOMProps,\n PressEvents {\n /**\n * Identifies the element (or elements) whose contents or presence are controlled by the current\n * element.\n */\n 'aria-controls'?: string;\n}\n\nexport interface ToggleAria extends ValidationResult {\n /** Props to be spread on the label element. */\n labelProps: LabelHTMLAttributes<HTMLLabelElement>;\n /** Props to be spread on the input element. */\n inputProps: InputHTMLAttributes<HTMLInputElement>;\n /** Props for the checkbox description element, if any. */\n descriptionProps: DOMAttributesWithRef<HTMLElement>;\n /** Props for the checkbox error message element, if any. */\n errorMessageProps: DOMAttributesWithRef<HTMLElement>;\n /** Whether the toggle is selected. */\n isSelected: boolean;\n /** Whether the toggle is in a pressed state. */\n isPressed: boolean;\n /** Whether the toggle is disabled. */\n isDisabled: boolean;\n /** Whether the toggle is read only. */\n isReadOnly: boolean;\n /** Whether the toggle is invalid. */\n isInvalid: boolean;\n}\n\n/**\n * Handles interactions for toggle elements, e.g. Checkboxes and Switches.\n */\nexport function useToggle(\n props: AriaToggleProps,\n state: ToggleState,\n ref: RefObject<HTMLInputElement | null>\n): ToggleAria {\n let {\n isDisabled = false,\n isReadOnly = false,\n value,\n name,\n form,\n children,\n isRequired,\n validationBehavior = 'aria',\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n 'aria-describedby': ariaDescribedby,\n onPressStart,\n onPressEnd,\n onPressChange,\n onPress,\n onPressUp,\n onClick\n } = props;\n\n // Create validation state here because it doesn't make sense to add to general useToggleState.\n let validationState = useFormValidationState({...props, value: state.isSelected});\n let {isInvalid, validationErrors, validationDetails} = validationState.displayValidation;\n\n useFormValidation(props, validationState, ref);\n\n let onChange: ChangeEventHandler<HTMLInputElement> = e => {\n // since we spread props on label, onChange will end up there as well as in here.\n // so we have to stop propagation at the lowest level that we care about\n e.stopPropagation();\n state.setSelected(getEventTarget(e).checked);\n };\n\n let hasChildren = children != null;\n let hasAriaLabel = ariaLabel != null || ariaLabelledby != null;\n if (!hasChildren && !hasAriaLabel && process.env.NODE_ENV !== 'production') {\n console.warn(\n 'If you do not provide children, you must specify an aria-label for accessibility'\n );\n }\n\n // Handle press state for keyboard interactions and cases where labelProps is not used.\n let {pressProps, isPressed} = usePress({\n onPressStart,\n onPressEnd,\n onPressChange,\n onPress,\n onPressUp,\n onClick,\n isDisabled\n });\n\n // Handle press state on the label.\n let [isLabelPressed, setLabelPressed] = useState(false);\n let {pressProps: labelProps} = usePress({\n onPressStart(e) {\n // Keyboard interactions are handled directly on the input.\n if (e.pointerType === 'keyboard' || e.pointerType === 'virtual') {\n e.continuePropagation();\n return;\n }\n\n onPressStart?.(e);\n onPressChange?.(true);\n setLabelPressed(true);\n },\n onPressEnd(e) {\n // Keyboard interactions are handled directly on the input.\n if (e.pointerType === 'keyboard' || e.pointerType === 'virtual') {\n e.continuePropagation();\n return;\n }\n\n onPressEnd?.(e);\n onPressChange?.(false);\n setLabelPressed(false);\n },\n onPressUp(e) {\n if (e.pointerType === 'keyboard' || e.pointerType === 'virtual') {\n e.continuePropagation();\n return;\n }\n\n onPressUp?.(e);\n },\n onClick,\n onPress(e) {\n if (e.pointerType === 'keyboard' || e.pointerType === 'virtual') {\n e.continuePropagation();\n return;\n }\n\n onPress?.(e);\n state.toggle();\n ref.current?.focus();\n\n // @ts-expect-error\n let {[privateValidationStateProp]: groupValidationState} = props;\n\n // oxlint-disable-next-line react/react-compiler\n let {commitValidation} = groupValidationState ? groupValidationState : validationState;\n\n commitValidation();\n },\n isDisabled: isDisabled || isReadOnly\n });\n\n let {focusableProps} = useFocusable(props, ref);\n let interactions = mergeProps(pressProps, focusableProps);\n let domProps = filterDOMProps(props, {labelable: true});\n\n useFormReset(ref, state.defaultSelected, state.setSelected);\n\n // Copied from useField because we don't want the label behavior that provides.\n let descriptionProps = useSlotId2();\n let errorMessageProps = useSlotId2();\n\n return {\n labelProps: mergeProps(labelProps, {onClick: e => e.preventDefault()}),\n inputProps: mergeProps(domProps, {\n checked: state.isSelected,\n 'aria-required': (isRequired && validationBehavior === 'aria') || undefined,\n required: isRequired && validationBehavior === 'native',\n 'aria-invalid': isInvalid || props.validationState === 'invalid' || undefined,\n 'aria-errormessage': props['aria-errormessage'],\n 'aria-controls': props['aria-controls'],\n 'aria-readonly': isReadOnly || undefined,\n 'aria-describedby':\n [descriptionProps.id, errorMessageProps.id, ariaDescribedby].filter(Boolean).join(' ') ||\n undefined,\n onChange,\n disabled: isDisabled,\n ...(value == null ? {} : {value}),\n name,\n form,\n type: 'checkbox',\n ...interactions\n }),\n descriptionProps,\n errorMessageProps,\n isSelected: state.isSelected,\n isPressed: isPressed || isLabelPressed,\n isDisabled,\n isReadOnly,\n isInvalid: isInvalid || props.validationState === 'invalid',\n validationErrors,\n validationDetails\n };\n}\n"],"names":[],"version":3,"file":"useToggle.mjs.map"}
@@ -0,0 +1,46 @@
1
+ var $6e76e65001bbcda2$exports = require("../utils/useEvent.cjs");
2
+ var $TNch7$react = require("react");
3
+
4
+
5
+ function $parcel$export(e, n, v, s) {
6
+ Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
7
+ }
8
+
9
+ $parcel$export(module.exports, "useToken", function () { return $a3b6a59b8fbd0941$export$31dcd79391e423fe; });
10
+ /*
11
+ * Copyright 2026 Adobe. All rights reserved.
12
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
13
+ * you may not use this file except in compliance with the License. You may obtain a copy
14
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
15
+ *
16
+ * Unless required by applicable law or agreed to in writing, software distributed under
17
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
18
+ * OF ANY KIND, either express or implied. See the License for the specific language
19
+ * governing
20
+ */
21
+
22
+ function $a3b6a59b8fbd0941$export$31dcd79391e423fe(// Unused but matches the normal signature.
23
+ _props, _state, ref) {
24
+ let [isSelected, setSelected] = (0, $TNch7$react.useState)(false);
25
+ (0, $6e76e65001bbcda2$exports.useEvent)((0, $TNch7$react.useRef)(typeof document !== 'undefined' ? document : null), 'selectionchange', ()=>{
26
+ let selection = window.getSelection();
27
+ if (!selection || selection.rangeCount === 0 || !ref.current) return;
28
+ let range = selection.getRangeAt(0);
29
+ if (!range.collapsed && range.intersectsNode(ref.current)) setSelected(true);
30
+ else setSelected(false);
31
+ });
32
+ return {
33
+ tokenProps: {
34
+ contentEditable: false,
35
+ suppressContentEditableWarning: true,
36
+ style: {
37
+ userSelect: 'all',
38
+ WebkitUserSelect: 'all'
39
+ }
40
+ },
41
+ isSelected: isSelected
42
+ };
43
+ }
44
+
45
+
46
+ //# sourceMappingURL=useToken.cjs.map
@@ -0,0 +1 @@
1
+ {"mappings":";;;;;;;;;AAAA;;;;;;;;;;CAUC;;AAkBM,SAAS,0CACd,2CAA2C;AAC3C,MAAkB,EAClB,MAAW,EACX,GAAsC;IAEtC,IAAI,CAAC,YAAY,YAAY,GAAG,CAAA,GAAA,qBAAO,EAAE;IAEzC,CAAA,GAAA,kCAAO,EAAE,CAAA,GAAA,mBAAK,EAAE,OAAO,aAAa,cAAc,WAAW,OAAO,mBAAmB;QACrF,IAAI,YAAY,OAAO,YAAY;QACnC,IAAI,CAAC,aAAa,UAAU,UAAU,KAAK,KAAK,CAAC,IAAI,OAAO,EAC1D;QAGF,IAAI,QAAQ,UAAU,UAAU,CAAC;QACjC,IAAI,CAAC,MAAM,SAAS,IAAI,MAAM,cAAc,CAAC,IAAI,OAAO,GACtD,YAAY;aAEZ,YAAY;IAEhB;IAEA,OAAO;QACL,YAAY;YACV,iBAAiB;YACjB,gCAAgC;YAChC,OAAO;gBACL,YAAY;gBACZ,kBAAkB;YACpB;QACF;oBACA;IACF;AACF","sources":["packages/react-aria/src/tokenfield/useToken.ts"],"sourcesContent":["/*\n * Copyright 2026 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\n */\n\nimport {HTMLAttributes, RefObject, useRef, useState} from 'react';\nimport {useEvent} from '../utils/useEvent';\n\nexport interface TokenProps {}\n\nexport interface TokenAria {\n /** Props for the token element. */\n tokenProps: HTMLAttributes<HTMLSpanElement>;\n /** Whether the token is currently selected. */\n isSelected: boolean;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a token within a token field.\n * A token field allows users to enter text with inline tokens.\n */\nexport function useToken(\n // Unused but matches the normal signature.\n _props: TokenProps,\n _state: any,\n ref: RefObject<HTMLSpanElement | null>\n): TokenAria {\n let [isSelected, setSelected] = useState(false);\n\n useEvent(useRef(typeof document !== 'undefined' ? document : null), 'selectionchange', () => {\n let selection = window.getSelection();\n if (!selection || selection.rangeCount === 0 || !ref.current) {\n return;\n }\n\n let range = selection.getRangeAt(0);\n if (!range.collapsed && range.intersectsNode(ref.current)) {\n setSelected(true);\n } else {\n setSelected(false);\n }\n });\n\n return {\n tokenProps: {\n contentEditable: false,\n suppressContentEditableWarning: true,\n style: {\n userSelect: 'all',\n WebkitUserSelect: 'all'\n }\n },\n isSelected\n };\n}\n"],"names":[],"version":3,"file":"useToken.cjs.map"}
@@ -0,0 +1,41 @@
1
+ import {useEvent as $c3cab330536504ec$export$90fc3a17d93f704c} from "../utils/useEvent.js";
2
+ import {useState as $bIBdX$useState, useRef as $bIBdX$useRef} from "react";
3
+
4
+ /*
5
+ * Copyright 2026 Adobe. All rights reserved.
6
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
7
+ * you may not use this file except in compliance with the License. You may obtain a copy
8
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software distributed under
11
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
12
+ * OF ANY KIND, either express or implied. See the License for the specific language
13
+ * governing
14
+ */
15
+
16
+ function $a06747c3f56c51df$export$31dcd79391e423fe(// Unused but matches the normal signature.
17
+ _props, _state, ref) {
18
+ let [isSelected, setSelected] = (0, $bIBdX$useState)(false);
19
+ (0, $c3cab330536504ec$export$90fc3a17d93f704c)((0, $bIBdX$useRef)(typeof document !== 'undefined' ? document : null), 'selectionchange', ()=>{
20
+ let selection = window.getSelection();
21
+ if (!selection || selection.rangeCount === 0 || !ref.current) return;
22
+ let range = selection.getRangeAt(0);
23
+ if (!range.collapsed && range.intersectsNode(ref.current)) setSelected(true);
24
+ else setSelected(false);
25
+ });
26
+ return {
27
+ tokenProps: {
28
+ contentEditable: false,
29
+ suppressContentEditableWarning: true,
30
+ style: {
31
+ userSelect: 'all',
32
+ WebkitUserSelect: 'all'
33
+ }
34
+ },
35
+ isSelected: isSelected
36
+ };
37
+ }
38
+
39
+
40
+ export {$a06747c3f56c51df$export$31dcd79391e423fe as useToken};
41
+ //# sourceMappingURL=useToken.js.map
@@ -0,0 +1 @@
1
+ {"mappings":";;;AAAA;;;;;;;;;;CAUC;;AAkBM,SAAS,0CACd,2CAA2C;AAC3C,MAAkB,EAClB,MAAW,EACX,GAAsC;IAEtC,IAAI,CAAC,YAAY,YAAY,GAAG,CAAA,GAAA,eAAO,EAAE;IAEzC,CAAA,GAAA,yCAAO,EAAE,CAAA,GAAA,aAAK,EAAE,OAAO,aAAa,cAAc,WAAW,OAAO,mBAAmB;QACrF,IAAI,YAAY,OAAO,YAAY;QACnC,IAAI,CAAC,aAAa,UAAU,UAAU,KAAK,KAAK,CAAC,IAAI,OAAO,EAC1D;QAGF,IAAI,QAAQ,UAAU,UAAU,CAAC;QACjC,IAAI,CAAC,MAAM,SAAS,IAAI,MAAM,cAAc,CAAC,IAAI,OAAO,GACtD,YAAY;aAEZ,YAAY;IAEhB;IAEA,OAAO;QACL,YAAY;YACV,iBAAiB;YACjB,gCAAgC;YAChC,OAAO;gBACL,YAAY;gBACZ,kBAAkB;YACpB;QACF;oBACA;IACF;AACF","sources":["packages/react-aria/src/tokenfield/useToken.ts"],"sourcesContent":["/*\n * Copyright 2026 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\n */\n\nimport {HTMLAttributes, RefObject, useRef, useState} from 'react';\nimport {useEvent} from '../utils/useEvent';\n\nexport interface TokenProps {}\n\nexport interface TokenAria {\n /** Props for the token element. */\n tokenProps: HTMLAttributes<HTMLSpanElement>;\n /** Whether the token is currently selected. */\n isSelected: boolean;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a token within a token field.\n * A token field allows users to enter text with inline tokens.\n */\nexport function useToken(\n // Unused but matches the normal signature.\n _props: TokenProps,\n _state: any,\n ref: RefObject<HTMLSpanElement | null>\n): TokenAria {\n let [isSelected, setSelected] = useState(false);\n\n useEvent(useRef(typeof document !== 'undefined' ? document : null), 'selectionchange', () => {\n let selection = window.getSelection();\n if (!selection || selection.rangeCount === 0 || !ref.current) {\n return;\n }\n\n let range = selection.getRangeAt(0);\n if (!range.collapsed && range.intersectsNode(ref.current)) {\n setSelected(true);\n } else {\n setSelected(false);\n }\n });\n\n return {\n tokenProps: {\n contentEditable: false,\n suppressContentEditableWarning: true,\n style: {\n userSelect: 'all',\n WebkitUserSelect: 'all'\n }\n },\n isSelected\n };\n}\n"],"names":[],"version":3,"file":"useToken.js.map"}