react-aria 3.48.0 → 3.50.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 (1248) hide show
  1. package/dist/exports/CollectionBuilder.cjs.map +1 -1
  2. package/dist/exports/CollectionBuilder.js.map +1 -1
  3. package/dist/exports/CollectionBuilder.mjs.map +1 -1
  4. package/dist/exports/index.cjs +12 -0
  5. package/dist/exports/index.cjs.map +1 -1
  6. package/dist/exports/index.js +9 -1
  7. package/dist/exports/index.js.map +1 -1
  8. package/dist/exports/index.mjs +9 -1
  9. package/dist/exports/index.mjs.map +1 -1
  10. package/dist/exports/private/actiongroup/useActionGroup.cjs.map +1 -1
  11. package/dist/exports/private/actiongroup/useActionGroup.js.map +1 -1
  12. package/dist/exports/private/actiongroup/useActionGroup.mjs.map +1 -1
  13. package/dist/exports/private/actiongroup/useActionGroupItem.cjs.map +1 -1
  14. package/dist/exports/private/actiongroup/useActionGroupItem.js.map +1 -1
  15. package/dist/exports/private/actiongroup/useActionGroupItem.mjs.map +1 -1
  16. package/dist/exports/private/autocomplete/useSearchAutocomplete.cjs.map +1 -1
  17. package/dist/exports/private/autocomplete/useSearchAutocomplete.js.map +1 -1
  18. package/dist/exports/private/autocomplete/useSearchAutocomplete.mjs.map +1 -1
  19. package/dist/exports/private/collections/BaseCollection.cjs.map +1 -1
  20. package/dist/exports/private/collections/BaseCollection.js.map +1 -1
  21. package/dist/exports/private/collections/BaseCollection.mjs.map +1 -1
  22. package/dist/exports/private/collections/useCachedChildren.cjs.map +1 -1
  23. package/dist/exports/private/collections/useCachedChildren.js.map +1 -1
  24. package/dist/exports/private/collections/useCachedChildren.mjs.map +1 -1
  25. package/dist/exports/private/focus/FocusScope.cjs.map +1 -1
  26. package/dist/exports/private/focus/FocusScope.js.map +1 -1
  27. package/dist/exports/private/focus/FocusScope.mjs.map +1 -1
  28. package/dist/exports/private/focus/virtualFocus.cjs.map +1 -1
  29. package/dist/exports/private/focus/virtualFocus.js.map +1 -1
  30. package/dist/exports/private/focus/virtualFocus.mjs.map +1 -1
  31. package/dist/exports/private/grid/GridKeyboardDelegate.cjs.map +1 -1
  32. package/dist/exports/private/grid/GridKeyboardDelegate.js.map +1 -1
  33. package/dist/exports/private/grid/GridKeyboardDelegate.mjs.map +1 -1
  34. package/dist/exports/private/grid/useGridSelectionAnnouncement.cjs.map +1 -1
  35. package/dist/exports/private/grid/useGridSelectionAnnouncement.js.map +1 -1
  36. package/dist/exports/private/grid/useGridSelectionAnnouncement.mjs.map +1 -1
  37. package/dist/exports/private/grid/useGridSelectionCheckbox.cjs.map +1 -1
  38. package/dist/exports/private/grid/useGridSelectionCheckbox.js.map +1 -1
  39. package/dist/exports/private/grid/useGridSelectionCheckbox.mjs.map +1 -1
  40. package/dist/exports/private/grid/useHighlightSelectionDescription.cjs.map +1 -1
  41. package/dist/exports/private/grid/useHighlightSelectionDescription.js.map +1 -1
  42. package/dist/exports/private/grid/useHighlightSelectionDescription.mjs.map +1 -1
  43. package/dist/exports/private/interactions/useFocusVisible.cjs.map +1 -1
  44. package/dist/exports/private/interactions/useFocusVisible.js.map +1 -1
  45. package/dist/exports/private/interactions/useFocusVisible.mjs.map +1 -1
  46. package/dist/exports/private/interactions/useFocusable.cjs.map +1 -1
  47. package/dist/exports/private/interactions/useFocusable.js.map +1 -1
  48. package/dist/exports/private/interactions/useFocusable.mjs.map +1 -1
  49. package/dist/exports/private/landmark/useLandmark.cjs.map +1 -1
  50. package/dist/exports/private/landmark/useLandmark.js.map +1 -1
  51. package/dist/exports/private/landmark/useLandmark.mjs.map +1 -1
  52. package/dist/exports/private/live-announcer/LiveAnnouncer.cjs.map +1 -1
  53. package/dist/exports/private/live-announcer/LiveAnnouncer.js.map +1 -1
  54. package/dist/exports/private/live-announcer/LiveAnnouncer.mjs.map +1 -1
  55. package/dist/exports/private/overlays/useModal.cjs.map +1 -1
  56. package/dist/exports/private/overlays/useModal.js.map +1 -1
  57. package/dist/exports/private/overlays/useModal.mjs.map +1 -1
  58. package/dist/exports/private/selection/useSelectableCollection.cjs.map +1 -1
  59. package/dist/exports/private/selection/useSelectableCollection.js.map +1 -1
  60. package/dist/exports/private/selection/useSelectableCollection.mjs.map +1 -1
  61. package/dist/exports/private/selection/useSelectableItem.cjs.map +1 -1
  62. package/dist/exports/private/selection/useSelectableItem.js.map +1 -1
  63. package/dist/exports/private/selection/useSelectableItem.mjs.map +1 -1
  64. package/dist/exports/private/selection/useSelectableList.cjs.map +1 -1
  65. package/dist/exports/private/selection/useSelectableList.js.map +1 -1
  66. package/dist/exports/private/selection/useSelectableList.mjs.map +1 -1
  67. package/dist/exports/private/selection/useTypeSelect.cjs.map +1 -1
  68. package/dist/exports/private/selection/useTypeSelect.js.map +1 -1
  69. package/dist/exports/private/selection/useTypeSelect.mjs.map +1 -1
  70. package/dist/exports/private/spinbutton/useSpinButton.cjs.map +1 -1
  71. package/dist/exports/private/spinbutton/useSpinButton.js.map +1 -1
  72. package/dist/exports/private/spinbutton/useSpinButton.mjs.map +1 -1
  73. package/dist/exports/private/steplist/useStepList.cjs.map +1 -1
  74. package/dist/exports/private/steplist/useStepList.js.map +1 -1
  75. package/dist/exports/private/steplist/useStepList.mjs.map +1 -1
  76. package/dist/exports/private/steplist/useStepListItem.cjs.map +1 -1
  77. package/dist/exports/private/steplist/useStepListItem.js.map +1 -1
  78. package/dist/exports/private/steplist/useStepListItem.mjs.map +1 -1
  79. package/dist/exports/private/utils/openLink.cjs.map +1 -1
  80. package/dist/exports/private/utils/openLink.js.map +1 -1
  81. package/dist/exports/private/utils/openLink.mjs.map +1 -1
  82. package/dist/exports/private/utils/platform.cjs.map +1 -1
  83. package/dist/exports/private/utils/platform.js.map +1 -1
  84. package/dist/exports/private/utils/platform.mjs.map +1 -1
  85. package/dist/exports/private/utils/shadowdom/DOMFunctions.cjs.map +1 -1
  86. package/dist/exports/private/utils/shadowdom/DOMFunctions.js.map +1 -1
  87. package/dist/exports/private/utils/shadowdom/DOMFunctions.mjs.map +1 -1
  88. package/dist/exports/private/utils/shadowdom/ShadowTreeWalker.cjs.map +1 -1
  89. package/dist/exports/private/utils/shadowdom/ShadowTreeWalker.js.map +1 -1
  90. package/dist/exports/private/utils/shadowdom/ShadowTreeWalker.mjs.map +1 -1
  91. package/dist/exports/private/utils/useLoadMoreSentinel.cjs.map +1 -1
  92. package/dist/exports/private/utils/useLoadMoreSentinel.js.map +1 -1
  93. package/dist/exports/private/utils/useLoadMoreSentinel.mjs.map +1 -1
  94. package/dist/exports/private/virtualizer/useVirtualizerItem.cjs.map +1 -1
  95. package/dist/exports/private/virtualizer/useVirtualizerItem.js.map +1 -1
  96. package/dist/exports/private/virtualizer/useVirtualizerItem.mjs.map +1 -1
  97. package/dist/exports/private/virtualizer/utils.cjs.map +1 -1
  98. package/dist/exports/private/virtualizer/utils.js.map +1 -1
  99. package/dist/exports/private/virtualizer/utils.mjs.map +1 -1
  100. package/dist/exports/useAutocomplete.cjs.map +1 -1
  101. package/dist/exports/useAutocomplete.js.map +1 -1
  102. package/dist/exports/useAutocomplete.mjs.map +1 -1
  103. package/dist/exports/useBreadcrumbs.cjs.map +1 -1
  104. package/dist/exports/useBreadcrumbs.js.map +1 -1
  105. package/dist/exports/useBreadcrumbs.mjs.map +1 -1
  106. package/dist/exports/useButton.cjs.map +1 -1
  107. package/dist/exports/useButton.js.map +1 -1
  108. package/dist/exports/useButton.mjs.map +1 -1
  109. package/dist/exports/useCalendar.cjs +9 -0
  110. package/dist/exports/useCalendar.cjs.map +1 -1
  111. package/dist/exports/useCalendar.js +7 -1
  112. package/dist/exports/useCalendar.js.map +1 -1
  113. package/dist/exports/useCalendar.mjs +7 -1
  114. package/dist/exports/useCalendar.mjs.map +1 -1
  115. package/dist/exports/useClipboard.cjs.map +1 -1
  116. package/dist/exports/useClipboard.js.map +1 -1
  117. package/dist/exports/useClipboard.mjs.map +1 -1
  118. package/dist/exports/useColorArea.cjs.map +1 -1
  119. package/dist/exports/useColorArea.js.map +1 -1
  120. package/dist/exports/useColorArea.mjs.map +1 -1
  121. package/dist/exports/useColorField.cjs.map +1 -1
  122. package/dist/exports/useColorField.js.map +1 -1
  123. package/dist/exports/useColorField.mjs.map +1 -1
  124. package/dist/exports/useColorSlider.cjs.map +1 -1
  125. package/dist/exports/useColorSlider.js.map +1 -1
  126. package/dist/exports/useColorSlider.mjs.map +1 -1
  127. package/dist/exports/useColorWheel.cjs.map +1 -1
  128. package/dist/exports/useColorWheel.js.map +1 -1
  129. package/dist/exports/useColorWheel.mjs.map +1 -1
  130. package/dist/exports/useComboBox.cjs.map +1 -1
  131. package/dist/exports/useComboBox.js.map +1 -1
  132. package/dist/exports/useComboBox.mjs.map +1 -1
  133. package/dist/exports/useDateField.cjs.map +1 -1
  134. package/dist/exports/useDateField.js.map +1 -1
  135. package/dist/exports/useDateField.mjs.map +1 -1
  136. package/dist/exports/useDateRangePicker.cjs.map +1 -1
  137. package/dist/exports/useDateRangePicker.js.map +1 -1
  138. package/dist/exports/useDateRangePicker.mjs.map +1 -1
  139. package/dist/exports/useDisclosure.cjs +1 -1
  140. package/dist/exports/useDisclosure.cjs.map +1 -1
  141. package/dist/exports/useDisclosure.js +1 -1
  142. package/dist/exports/useDisclosure.js.map +1 -1
  143. package/dist/exports/useDisclosure.mjs +1 -1
  144. package/dist/exports/useDisclosure.mjs.map +1 -1
  145. package/dist/exports/useDrag.cjs.map +1 -1
  146. package/dist/exports/useDrag.js.map +1 -1
  147. package/dist/exports/useDrag.mjs.map +1 -1
  148. package/dist/exports/useDraggableCollection.cjs.map +1 -1
  149. package/dist/exports/useDraggableCollection.js.map +1 -1
  150. package/dist/exports/useDraggableCollection.mjs.map +1 -1
  151. package/dist/exports/useDrop.cjs.map +1 -1
  152. package/dist/exports/useDrop.js.map +1 -1
  153. package/dist/exports/useDrop.mjs.map +1 -1
  154. package/dist/exports/useDroppableCollection.cjs.map +1 -1
  155. package/dist/exports/useDroppableCollection.js.map +1 -1
  156. package/dist/exports/useDroppableCollection.mjs.map +1 -1
  157. package/dist/exports/useFocusable.cjs.map +1 -1
  158. package/dist/exports/useFocusable.js.map +1 -1
  159. package/dist/exports/useFocusable.mjs.map +1 -1
  160. package/dist/exports/useGridList.cjs.map +1 -1
  161. package/dist/exports/useGridList.js.map +1 -1
  162. package/dist/exports/useGridList.mjs.map +1 -1
  163. package/dist/exports/useInteractOutside.cjs.map +1 -1
  164. package/dist/exports/useInteractOutside.js.map +1 -1
  165. package/dist/exports/useInteractOutside.mjs.map +1 -1
  166. package/dist/exports/useLandmark.cjs.map +1 -1
  167. package/dist/exports/useLandmark.js.map +1 -1
  168. package/dist/exports/useLandmark.mjs.map +1 -1
  169. package/dist/exports/useListBox.cjs.map +1 -1
  170. package/dist/exports/useListBox.js.map +1 -1
  171. package/dist/exports/useListBox.mjs.map +1 -1
  172. package/dist/exports/useLocalizedStringFormatter.cjs.map +1 -1
  173. package/dist/exports/useLocalizedStringFormatter.js.map +1 -1
  174. package/dist/exports/useLocalizedStringFormatter.mjs.map +1 -1
  175. package/dist/exports/useMove.cjs.map +1 -1
  176. package/dist/exports/useMove.js.map +1 -1
  177. package/dist/exports/useMove.mjs.map +1 -1
  178. package/dist/exports/useOverlayPosition.cjs.map +1 -1
  179. package/dist/exports/useOverlayPosition.js.map +1 -1
  180. package/dist/exports/useOverlayPosition.mjs.map +1 -1
  181. package/dist/exports/useProgressBar.cjs.map +1 -1
  182. package/dist/exports/useProgressBar.js.map +1 -1
  183. package/dist/exports/useProgressBar.mjs.map +1 -1
  184. package/dist/exports/useRangeCalendar.cjs +15 -0
  185. package/dist/exports/useRangeCalendar.cjs.map +1 -1
  186. package/dist/exports/useRangeCalendar.js +11 -1
  187. package/dist/exports/useRangeCalendar.js.map +1 -1
  188. package/dist/exports/useRangeCalendar.mjs +11 -1
  189. package/dist/exports/useRangeCalendar.mjs.map +1 -1
  190. package/dist/exports/useSelect.cjs.map +1 -1
  191. package/dist/exports/useSelect.js.map +1 -1
  192. package/dist/exports/useSelect.mjs.map +1 -1
  193. package/dist/exports/useSlider.cjs.map +1 -1
  194. package/dist/exports/useSlider.js.map +1 -1
  195. package/dist/exports/useSlider.mjs.map +1 -1
  196. package/dist/exports/useTable.cjs.map +1 -1
  197. package/dist/exports/useTable.js.map +1 -1
  198. package/dist/exports/useTable.mjs.map +1 -1
  199. package/dist/exports/useTimeField.cjs.map +1 -1
  200. package/dist/exports/useTimeField.js.map +1 -1
  201. package/dist/exports/useTimeField.mjs.map +1 -1
  202. package/dist/exports/useToggleButton.cjs.map +1 -1
  203. package/dist/exports/useToggleButton.js.map +1 -1
  204. package/dist/exports/useToggleButton.mjs.map +1 -1
  205. package/dist/exports/useToggleButtonGroup.cjs.map +1 -1
  206. package/dist/exports/useToggleButtonGroup.js.map +1 -1
  207. package/dist/exports/useToggleButtonGroup.mjs.map +1 -1
  208. package/dist/exports/useTree.cjs.map +1 -1
  209. package/dist/exports/useTree.js.map +1 -1
  210. package/dist/exports/useTree.mjs.map +1 -1
  211. package/dist/private/actiongroup/useActionGroup.cjs +3 -3
  212. package/dist/private/actiongroup/useActionGroup.cjs.map +1 -1
  213. package/dist/private/actiongroup/useActionGroup.js +3 -3
  214. package/dist/private/actiongroup/useActionGroup.js.map +1 -1
  215. package/dist/private/actiongroup/useActionGroup.mjs +3 -3
  216. package/dist/private/actiongroup/useActionGroup.mjs.map +1 -1
  217. package/dist/private/actiongroup/useActionGroupItem.cjs +5 -4
  218. package/dist/private/actiongroup/useActionGroupItem.cjs.map +1 -1
  219. package/dist/private/actiongroup/useActionGroupItem.js +5 -4
  220. package/dist/private/actiongroup/useActionGroupItem.js.map +1 -1
  221. package/dist/private/actiongroup/useActionGroupItem.mjs +5 -4
  222. package/dist/private/actiongroup/useActionGroupItem.mjs.map +1 -1
  223. package/dist/private/aria-modal-polyfill/ariaModalPolyfill.cjs +7 -5
  224. package/dist/private/aria-modal-polyfill/ariaModalPolyfill.cjs.map +1 -1
  225. package/dist/private/aria-modal-polyfill/ariaModalPolyfill.js +7 -5
  226. package/dist/private/aria-modal-polyfill/ariaModalPolyfill.js.map +1 -1
  227. package/dist/private/aria-modal-polyfill/ariaModalPolyfill.mjs +7 -5
  228. package/dist/private/aria-modal-polyfill/ariaModalPolyfill.mjs.map +1 -1
  229. package/dist/private/autocomplete/useAutocomplete.cjs +16 -7
  230. package/dist/private/autocomplete/useAutocomplete.cjs.map +1 -1
  231. package/dist/private/autocomplete/useAutocomplete.js +16 -7
  232. package/dist/private/autocomplete/useAutocomplete.js.map +1 -1
  233. package/dist/private/autocomplete/useAutocomplete.mjs +16 -7
  234. package/dist/private/autocomplete/useAutocomplete.mjs.map +1 -1
  235. package/dist/private/autocomplete/useSearchAutocomplete.cjs.map +1 -1
  236. package/dist/private/autocomplete/useSearchAutocomplete.js.map +1 -1
  237. package/dist/private/autocomplete/useSearchAutocomplete.mjs.map +1 -1
  238. package/dist/private/breadcrumbs/useBreadcrumbItem.cjs.map +1 -1
  239. package/dist/private/breadcrumbs/useBreadcrumbItem.js.map +1 -1
  240. package/dist/private/breadcrumbs/useBreadcrumbItem.mjs.map +1 -1
  241. package/dist/private/breadcrumbs/useBreadcrumbs.cjs.map +1 -1
  242. package/dist/private/breadcrumbs/useBreadcrumbs.js.map +1 -1
  243. package/dist/private/breadcrumbs/useBreadcrumbs.mjs.map +1 -1
  244. package/dist/private/button/useButton.cjs.map +1 -1
  245. package/dist/private/button/useButton.js.map +1 -1
  246. package/dist/private/button/useButton.mjs.map +1 -1
  247. package/dist/private/button/useToggleButton.cjs.map +1 -1
  248. package/dist/private/button/useToggleButton.js.map +1 -1
  249. package/dist/private/button/useToggleButton.mjs.map +1 -1
  250. package/dist/private/button/useToggleButtonGroup.cjs.map +1 -1
  251. package/dist/private/button/useToggleButtonGroup.js.map +1 -1
  252. package/dist/private/button/useToggleButtonGroup.mjs.map +1 -1
  253. package/dist/private/calendar/useCalendar.cjs.map +1 -1
  254. package/dist/private/calendar/useCalendar.js.map +1 -1
  255. package/dist/private/calendar/useCalendar.mjs.map +1 -1
  256. package/dist/private/calendar/useCalendarBase.cjs.map +1 -1
  257. package/dist/private/calendar/useCalendarBase.js.map +1 -1
  258. package/dist/private/calendar/useCalendarBase.mjs.map +1 -1
  259. package/dist/private/calendar/useCalendarCell.cjs +10 -14
  260. package/dist/private/calendar/useCalendarCell.cjs.map +1 -1
  261. package/dist/private/calendar/useCalendarCell.js +10 -14
  262. package/dist/private/calendar/useCalendarCell.js.map +1 -1
  263. package/dist/private/calendar/useCalendarCell.mjs +10 -14
  264. package/dist/private/calendar/useCalendarCell.mjs.map +1 -1
  265. package/dist/private/calendar/useCalendarGrid.cjs +9 -5
  266. package/dist/private/calendar/useCalendarGrid.cjs.map +1 -1
  267. package/dist/private/calendar/useCalendarGrid.js +10 -6
  268. package/dist/private/calendar/useCalendarGrid.js.map +1 -1
  269. package/dist/private/calendar/useCalendarGrid.mjs +10 -6
  270. package/dist/private/calendar/useCalendarGrid.mjs.map +1 -1
  271. package/dist/private/calendar/useCalendarHeading.cjs +56 -0
  272. package/dist/private/calendar/useCalendarHeading.cjs.map +1 -0
  273. package/dist/private/calendar/useCalendarHeading.js +52 -0
  274. package/dist/private/calendar/useCalendarHeading.js.map +1 -0
  275. package/dist/private/calendar/useCalendarHeading.mjs +51 -0
  276. package/dist/private/calendar/useCalendarHeading.mjs.map +1 -0
  277. package/dist/private/calendar/useCalendarMonthPicker.cjs +66 -0
  278. package/dist/private/calendar/useCalendarMonthPicker.cjs.map +1 -0
  279. package/dist/private/calendar/useCalendarMonthPicker.js +61 -0
  280. package/dist/private/calendar/useCalendarMonthPicker.js.map +1 -0
  281. package/dist/private/calendar/useCalendarMonthPicker.mjs +61 -0
  282. package/dist/private/calendar/useCalendarMonthPicker.mjs.map +1 -0
  283. package/dist/private/calendar/useCalendarYearPicker.cjs +90 -0
  284. package/dist/private/calendar/useCalendarYearPicker.cjs.map +1 -0
  285. package/dist/private/calendar/useCalendarYearPicker.js +86 -0
  286. package/dist/private/calendar/useCalendarYearPicker.js.map +1 -0
  287. package/dist/private/calendar/useCalendarYearPicker.mjs +85 -0
  288. package/dist/private/calendar/useCalendarYearPicker.mjs.map +1 -0
  289. package/dist/private/calendar/useRangeCalendar.cjs +1 -1
  290. package/dist/private/calendar/useRangeCalendar.cjs.map +1 -1
  291. package/dist/private/calendar/useRangeCalendar.js +1 -1
  292. package/dist/private/calendar/useRangeCalendar.js.map +1 -1
  293. package/dist/private/calendar/useRangeCalendar.mjs +1 -1
  294. package/dist/private/calendar/useRangeCalendar.mjs.map +1 -1
  295. package/dist/private/calendar/utils.cjs +20 -4
  296. package/dist/private/calendar/utils.cjs.map +1 -1
  297. package/dist/private/calendar/utils.js +22 -5
  298. package/dist/private/calendar/utils.js.map +1 -1
  299. package/dist/private/calendar/utils.mjs +20 -4
  300. package/dist/private/calendar/utils.mjs.map +1 -1
  301. package/dist/private/checkbox/useCheckbox.cjs +6 -35
  302. package/dist/private/checkbox/useCheckbox.cjs.map +1 -1
  303. package/dist/private/checkbox/useCheckbox.js +6 -35
  304. package/dist/private/checkbox/useCheckbox.js.map +1 -1
  305. package/dist/private/checkbox/useCheckbox.mjs +6 -35
  306. package/dist/private/checkbox/useCheckbox.mjs.map +1 -1
  307. package/dist/private/checkbox/useCheckboxGroup.cjs.map +1 -1
  308. package/dist/private/checkbox/useCheckboxGroup.js.map +1 -1
  309. package/dist/private/checkbox/useCheckboxGroup.mjs.map +1 -1
  310. package/dist/private/checkbox/useCheckboxGroupItem.cjs +1 -1
  311. package/dist/private/checkbox/useCheckboxGroupItem.cjs.map +1 -1
  312. package/dist/private/checkbox/useCheckboxGroupItem.js +1 -1
  313. package/dist/private/checkbox/useCheckboxGroupItem.js.map +1 -1
  314. package/dist/private/checkbox/useCheckboxGroupItem.mjs +1 -1
  315. package/dist/private/checkbox/useCheckboxGroupItem.mjs.map +1 -1
  316. package/dist/private/checkbox/utils.cjs.map +1 -1
  317. package/dist/private/checkbox/utils.js.map +1 -1
  318. package/dist/private/checkbox/utils.mjs.map +1 -1
  319. package/dist/private/collections/BaseCollection.cjs +4 -4
  320. package/dist/private/collections/BaseCollection.cjs.map +1 -1
  321. package/dist/private/collections/BaseCollection.js +4 -4
  322. package/dist/private/collections/BaseCollection.js.map +1 -1
  323. package/dist/private/collections/BaseCollection.mjs +4 -4
  324. package/dist/private/collections/BaseCollection.mjs.map +1 -1
  325. package/dist/private/collections/CollectionBuilder.cjs +5 -3
  326. package/dist/private/collections/CollectionBuilder.cjs.map +1 -1
  327. package/dist/private/collections/CollectionBuilder.js +5 -3
  328. package/dist/private/collections/CollectionBuilder.js.map +1 -1
  329. package/dist/private/collections/CollectionBuilder.mjs +5 -3
  330. package/dist/private/collections/CollectionBuilder.mjs.map +1 -1
  331. package/dist/private/collections/Document.cjs.map +1 -1
  332. package/dist/private/collections/Document.js.map +1 -1
  333. package/dist/private/collections/Document.mjs.map +1 -1
  334. package/dist/private/collections/Hidden.cjs.map +1 -1
  335. package/dist/private/collections/Hidden.js.map +1 -1
  336. package/dist/private/collections/Hidden.mjs.map +1 -1
  337. package/dist/private/collections/useCachedChildren.cjs +29 -8
  338. package/dist/private/collections/useCachedChildren.cjs.map +1 -1
  339. package/dist/private/collections/useCachedChildren.js +29 -8
  340. package/dist/private/collections/useCachedChildren.js.map +1 -1
  341. package/dist/private/collections/useCachedChildren.mjs +29 -8
  342. package/dist/private/collections/useCachedChildren.mjs.map +1 -1
  343. package/dist/private/color/useColorArea.cjs.map +1 -1
  344. package/dist/private/color/useColorArea.js.map +1 -1
  345. package/dist/private/color/useColorArea.mjs.map +1 -1
  346. package/dist/private/color/useColorAreaGradient.cjs +1 -1
  347. package/dist/private/color/useColorAreaGradient.cjs.map +1 -1
  348. package/dist/private/color/useColorAreaGradient.js +1 -1
  349. package/dist/private/color/useColorAreaGradient.js.map +1 -1
  350. package/dist/private/color/useColorAreaGradient.mjs +1 -1
  351. package/dist/private/color/useColorAreaGradient.mjs.map +1 -1
  352. package/dist/private/color/useColorChannelField.cjs.map +1 -1
  353. package/dist/private/color/useColorChannelField.js.map +1 -1
  354. package/dist/private/color/useColorChannelField.mjs.map +1 -1
  355. package/dist/private/color/useColorField.cjs +1 -1
  356. package/dist/private/color/useColorField.cjs.map +1 -1
  357. package/dist/private/color/useColorField.js +1 -1
  358. package/dist/private/color/useColorField.js.map +1 -1
  359. package/dist/private/color/useColorField.mjs +1 -1
  360. package/dist/private/color/useColorField.mjs.map +1 -1
  361. package/dist/private/color/useColorSlider.cjs +2 -2
  362. package/dist/private/color/useColorSlider.cjs.map +1 -1
  363. package/dist/private/color/useColorSlider.js +2 -2
  364. package/dist/private/color/useColorSlider.js.map +1 -1
  365. package/dist/private/color/useColorSlider.mjs +2 -2
  366. package/dist/private/color/useColorSlider.mjs.map +1 -1
  367. package/dist/private/color/useColorSwatch.cjs.map +1 -1
  368. package/dist/private/color/useColorSwatch.js.map +1 -1
  369. package/dist/private/color/useColorSwatch.mjs.map +1 -1
  370. package/dist/private/color/useColorWheel.cjs.map +1 -1
  371. package/dist/private/color/useColorWheel.js.map +1 -1
  372. package/dist/private/color/useColorWheel.mjs.map +1 -1
  373. package/dist/private/combobox/useComboBox.cjs +5 -3
  374. package/dist/private/combobox/useComboBox.cjs.map +1 -1
  375. package/dist/private/combobox/useComboBox.js +5 -3
  376. package/dist/private/combobox/useComboBox.js.map +1 -1
  377. package/dist/private/combobox/useComboBox.mjs +5 -3
  378. package/dist/private/combobox/useComboBox.mjs.map +1 -1
  379. package/dist/private/datepicker/useDateField.cjs.map +1 -1
  380. package/dist/private/datepicker/useDateField.js.map +1 -1
  381. package/dist/private/datepicker/useDateField.mjs.map +1 -1
  382. package/dist/private/datepicker/useDatePicker.cjs.map +1 -1
  383. package/dist/private/datepicker/useDatePicker.js.map +1 -1
  384. package/dist/private/datepicker/useDatePicker.mjs.map +1 -1
  385. package/dist/private/datepicker/useDatePickerGroup.cjs.map +1 -1
  386. package/dist/private/datepicker/useDatePickerGroup.js.map +1 -1
  387. package/dist/private/datepicker/useDatePickerGroup.mjs.map +1 -1
  388. package/dist/private/datepicker/useDateRangePicker.cjs.map +1 -1
  389. package/dist/private/datepicker/useDateRangePicker.js.map +1 -1
  390. package/dist/private/datepicker/useDateRangePicker.mjs.map +1 -1
  391. package/dist/private/datepicker/useDateSegment.cjs +2 -2
  392. package/dist/private/datepicker/useDateSegment.cjs.map +1 -1
  393. package/dist/private/datepicker/useDateSegment.js +2 -2
  394. package/dist/private/datepicker/useDateSegment.js.map +1 -1
  395. package/dist/private/datepicker/useDateSegment.mjs +2 -2
  396. package/dist/private/datepicker/useDateSegment.mjs.map +1 -1
  397. package/dist/private/datepicker/useDisplayNames.cjs +1 -2
  398. package/dist/private/datepicker/useDisplayNames.cjs.map +1 -1
  399. package/dist/private/datepicker/useDisplayNames.js +1 -2
  400. package/dist/private/datepicker/useDisplayNames.js.map +1 -1
  401. package/dist/private/datepicker/useDisplayNames.mjs +1 -2
  402. package/dist/private/datepicker/useDisplayNames.mjs.map +1 -1
  403. package/dist/private/dialog/useDialog.cjs.map +1 -1
  404. package/dist/private/dialog/useDialog.js.map +1 -1
  405. package/dist/private/dialog/useDialog.mjs.map +1 -1
  406. package/dist/private/disclosure/useDisclosure.cjs.map +1 -1
  407. package/dist/private/disclosure/useDisclosure.js.map +1 -1
  408. package/dist/private/disclosure/useDisclosure.mjs.map +1 -1
  409. package/dist/private/dnd/DragManager.cjs +4 -1
  410. package/dist/private/dnd/DragManager.cjs.map +1 -1
  411. package/dist/private/dnd/DragManager.js +4 -1
  412. package/dist/private/dnd/DragManager.js.map +1 -1
  413. package/dist/private/dnd/DragManager.mjs +4 -1
  414. package/dist/private/dnd/DragManager.mjs.map +1 -1
  415. package/dist/private/dnd/DragPreview.cjs.map +1 -1
  416. package/dist/private/dnd/DragPreview.js.map +1 -1
  417. package/dist/private/dnd/DragPreview.mjs.map +1 -1
  418. package/dist/private/dnd/DropTargetKeyboardNavigation.cjs +16 -4
  419. package/dist/private/dnd/DropTargetKeyboardNavigation.cjs.map +1 -1
  420. package/dist/private/dnd/DropTargetKeyboardNavigation.js +16 -4
  421. package/dist/private/dnd/DropTargetKeyboardNavigation.js.map +1 -1
  422. package/dist/private/dnd/DropTargetKeyboardNavigation.mjs +16 -4
  423. package/dist/private/dnd/DropTargetKeyboardNavigation.mjs.map +1 -1
  424. package/dist/private/dnd/ListDropTargetDelegate.cjs.map +1 -1
  425. package/dist/private/dnd/ListDropTargetDelegate.js.map +1 -1
  426. package/dist/private/dnd/ListDropTargetDelegate.mjs.map +1 -1
  427. package/dist/private/dnd/constants.cjs.map +1 -1
  428. package/dist/private/dnd/constants.js.map +1 -1
  429. package/dist/private/dnd/constants.mjs.map +1 -1
  430. package/dist/private/dnd/useAutoScroll.cjs.map +1 -1
  431. package/dist/private/dnd/useAutoScroll.js.map +1 -1
  432. package/dist/private/dnd/useAutoScroll.mjs.map +1 -1
  433. package/dist/private/dnd/useClipboard.cjs.map +1 -1
  434. package/dist/private/dnd/useClipboard.js.map +1 -1
  435. package/dist/private/dnd/useClipboard.mjs.map +1 -1
  436. package/dist/private/dnd/useDrag.cjs.map +1 -1
  437. package/dist/private/dnd/useDrag.js.map +1 -1
  438. package/dist/private/dnd/useDrag.mjs.map +1 -1
  439. package/dist/private/dnd/useDraggableCollection.cjs.map +1 -1
  440. package/dist/private/dnd/useDraggableCollection.js.map +1 -1
  441. package/dist/private/dnd/useDraggableCollection.mjs.map +1 -1
  442. package/dist/private/dnd/useDraggableItem.cjs.map +1 -1
  443. package/dist/private/dnd/useDraggableItem.js.map +1 -1
  444. package/dist/private/dnd/useDraggableItem.mjs.map +1 -1
  445. package/dist/private/dnd/useDrop.cjs.map +1 -1
  446. package/dist/private/dnd/useDrop.js.map +1 -1
  447. package/dist/private/dnd/useDrop.mjs.map +1 -1
  448. package/dist/private/dnd/useDropIndicator.cjs.map +1 -1
  449. package/dist/private/dnd/useDropIndicator.js.map +1 -1
  450. package/dist/private/dnd/useDropIndicator.mjs.map +1 -1
  451. package/dist/private/dnd/useDroppableCollection.cjs.map +1 -1
  452. package/dist/private/dnd/useDroppableCollection.js.map +1 -1
  453. package/dist/private/dnd/useDroppableCollection.mjs.map +1 -1
  454. package/dist/private/dnd/useDroppableItem.cjs.map +1 -1
  455. package/dist/private/dnd/useDroppableItem.js.map +1 -1
  456. package/dist/private/dnd/useDroppableItem.mjs.map +1 -1
  457. package/dist/private/dnd/useVirtualDrop.cjs.map +1 -1
  458. package/dist/private/dnd/useVirtualDrop.js.map +1 -1
  459. package/dist/private/dnd/useVirtualDrop.mjs.map +1 -1
  460. package/dist/private/dnd/utils.cjs +14 -4
  461. package/dist/private/dnd/utils.cjs.map +1 -1
  462. package/dist/private/dnd/utils.js +14 -4
  463. package/dist/private/dnd/utils.js.map +1 -1
  464. package/dist/private/dnd/utils.mjs +14 -4
  465. package/dist/private/dnd/utils.mjs.map +1 -1
  466. package/dist/private/focus/FocusRing.cjs.map +1 -1
  467. package/dist/private/focus/FocusRing.js.map +1 -1
  468. package/dist/private/focus/FocusRing.mjs.map +1 -1
  469. package/dist/private/focus/FocusScope.cjs +4 -1
  470. package/dist/private/focus/FocusScope.cjs.map +1 -1
  471. package/dist/private/focus/FocusScope.js +4 -1
  472. package/dist/private/focus/FocusScope.js.map +1 -1
  473. package/dist/private/focus/FocusScope.mjs +4 -1
  474. package/dist/private/focus/FocusScope.mjs.map +1 -1
  475. package/dist/private/focus/useFocusRing.cjs.map +1 -1
  476. package/dist/private/focus/useFocusRing.js.map +1 -1
  477. package/dist/private/focus/useFocusRing.mjs.map +1 -1
  478. package/dist/private/focus/useHasTabbableChild.cjs.map +1 -1
  479. package/dist/private/focus/useHasTabbableChild.js.map +1 -1
  480. package/dist/private/focus/useHasTabbableChild.mjs.map +1 -1
  481. package/dist/private/form/useFormValidation.cjs +1 -1
  482. package/dist/private/form/useFormValidation.cjs.map +1 -1
  483. package/dist/private/form/useFormValidation.js +1 -1
  484. package/dist/private/form/useFormValidation.js.map +1 -1
  485. package/dist/private/form/useFormValidation.mjs +1 -1
  486. package/dist/private/form/useFormValidation.mjs.map +1 -1
  487. package/dist/private/grid/GridKeyboardDelegate.cjs +9 -9
  488. package/dist/private/grid/GridKeyboardDelegate.cjs.map +1 -1
  489. package/dist/private/grid/GridKeyboardDelegate.js +10 -10
  490. package/dist/private/grid/GridKeyboardDelegate.js.map +1 -1
  491. package/dist/private/grid/GridKeyboardDelegate.mjs +9 -9
  492. package/dist/private/grid/GridKeyboardDelegate.mjs.map +1 -1
  493. package/dist/private/grid/useGrid.cjs.map +1 -1
  494. package/dist/private/grid/useGrid.js.map +1 -1
  495. package/dist/private/grid/useGrid.mjs.map +1 -1
  496. package/dist/private/grid/useGridCell.cjs.map +1 -1
  497. package/dist/private/grid/useGridCell.js.map +1 -1
  498. package/dist/private/grid/useGridCell.mjs.map +1 -1
  499. package/dist/private/grid/useGridRow.cjs.map +1 -1
  500. package/dist/private/grid/useGridRow.js.map +1 -1
  501. package/dist/private/grid/useGridRow.mjs.map +1 -1
  502. package/dist/private/grid/useGridRowGroup.cjs.map +1 -1
  503. package/dist/private/grid/useGridRowGroup.js.map +1 -1
  504. package/dist/private/grid/useGridRowGroup.mjs.map +1 -1
  505. package/dist/private/grid/useGridSelectionAnnouncement.cjs.map +1 -1
  506. package/dist/private/grid/useGridSelectionAnnouncement.js.map +1 -1
  507. package/dist/private/grid/useGridSelectionAnnouncement.mjs.map +1 -1
  508. package/dist/private/grid/useGridSelectionCheckbox.cjs.map +1 -1
  509. package/dist/private/grid/useGridSelectionCheckbox.js.map +1 -1
  510. package/dist/private/grid/useGridSelectionCheckbox.mjs.map +1 -1
  511. package/dist/private/grid/useHighlightSelectionDescription.cjs.map +1 -1
  512. package/dist/private/grid/useHighlightSelectionDescription.js.map +1 -1
  513. package/dist/private/grid/useHighlightSelectionDescription.mjs.map +1 -1
  514. package/dist/private/grid/utils.cjs.map +1 -1
  515. package/dist/private/grid/utils.js.map +1 -1
  516. package/dist/private/grid/utils.mjs.map +1 -1
  517. package/dist/private/gridlist/useGridList.cjs +2 -1
  518. package/dist/private/gridlist/useGridList.cjs.map +1 -1
  519. package/dist/private/gridlist/useGridList.js +2 -1
  520. package/dist/private/gridlist/useGridList.js.map +1 -1
  521. package/dist/private/gridlist/useGridList.mjs +2 -1
  522. package/dist/private/gridlist/useGridList.mjs.map +1 -1
  523. package/dist/private/gridlist/useGridListItem.cjs +66 -23
  524. package/dist/private/gridlist/useGridListItem.cjs.map +1 -1
  525. package/dist/private/gridlist/useGridListItem.js +67 -23
  526. package/dist/private/gridlist/useGridListItem.js.map +1 -1
  527. package/dist/private/gridlist/useGridListItem.mjs +66 -23
  528. package/dist/private/gridlist/useGridListItem.mjs.map +1 -1
  529. package/dist/private/gridlist/useGridListSection.cjs +3 -1
  530. package/dist/private/gridlist/useGridListSection.cjs.map +1 -1
  531. package/dist/private/gridlist/useGridListSection.js +3 -1
  532. package/dist/private/gridlist/useGridListSection.js.map +1 -1
  533. package/dist/private/gridlist/useGridListSection.mjs +3 -1
  534. package/dist/private/gridlist/useGridListSection.mjs.map +1 -1
  535. package/dist/private/gridlist/useGridListSelectionCheckbox.cjs.map +1 -1
  536. package/dist/private/gridlist/useGridListSelectionCheckbox.js.map +1 -1
  537. package/dist/private/gridlist/useGridListSelectionCheckbox.mjs.map +1 -1
  538. package/dist/private/gridlist/utils.cjs.map +1 -1
  539. package/dist/private/gridlist/utils.js.map +1 -1
  540. package/dist/private/gridlist/utils.mjs.map +1 -1
  541. package/dist/private/i18n/I18nProvider.cjs.map +1 -1
  542. package/dist/private/i18n/I18nProvider.js.map +1 -1
  543. package/dist/private/i18n/I18nProvider.mjs.map +1 -1
  544. package/dist/private/i18n/server.cjs.map +1 -1
  545. package/dist/private/i18n/server.js.map +1 -1
  546. package/dist/private/i18n/server.mjs.map +1 -1
  547. package/dist/private/i18n/useCollator.cjs.map +1 -1
  548. package/dist/private/i18n/useCollator.js.map +1 -1
  549. package/dist/private/i18n/useCollator.mjs.map +1 -1
  550. package/dist/private/i18n/useDateFormatter.cjs.map +1 -1
  551. package/dist/private/i18n/useDateFormatter.js.map +1 -1
  552. package/dist/private/i18n/useDateFormatter.mjs.map +1 -1
  553. package/dist/private/i18n/useDefaultLocale.cjs +2 -1
  554. package/dist/private/i18n/useDefaultLocale.cjs.map +1 -1
  555. package/dist/private/i18n/useDefaultLocale.js +2 -1
  556. package/dist/private/i18n/useDefaultLocale.js.map +1 -1
  557. package/dist/private/i18n/useDefaultLocale.mjs +2 -1
  558. package/dist/private/i18n/useDefaultLocale.mjs.map +1 -1
  559. package/dist/private/i18n/useFilter.cjs.map +1 -1
  560. package/dist/private/i18n/useFilter.js.map +1 -1
  561. package/dist/private/i18n/useFilter.mjs.map +1 -1
  562. package/dist/private/i18n/useListFormatter.cjs.map +1 -1
  563. package/dist/private/i18n/useListFormatter.js.map +1 -1
  564. package/dist/private/i18n/useListFormatter.mjs.map +1 -1
  565. package/dist/private/i18n/useLocalizedStringFormatter.cjs.map +1 -1
  566. package/dist/private/i18n/useLocalizedStringFormatter.js.map +1 -1
  567. package/dist/private/i18n/useLocalizedStringFormatter.mjs.map +1 -1
  568. package/dist/private/i18n/useNumberFormatter.cjs.map +1 -1
  569. package/dist/private/i18n/useNumberFormatter.js.map +1 -1
  570. package/dist/private/i18n/useNumberFormatter.mjs.map +1 -1
  571. package/dist/private/i18n/utils.cjs +2 -2
  572. package/dist/private/i18n/utils.cjs.map +1 -1
  573. package/dist/private/i18n/utils.js +2 -2
  574. package/dist/private/i18n/utils.js.map +1 -1
  575. package/dist/private/i18n/utils.mjs +2 -2
  576. package/dist/private/i18n/utils.mjs.map +1 -1
  577. package/dist/private/interactions/PressResponder.cjs.map +1 -1
  578. package/dist/private/interactions/PressResponder.js.map +1 -1
  579. package/dist/private/interactions/PressResponder.mjs.map +1 -1
  580. package/dist/private/interactions/Pressable.cjs.map +1 -1
  581. package/dist/private/interactions/Pressable.js.map +1 -1
  582. package/dist/private/interactions/Pressable.mjs.map +1 -1
  583. package/dist/private/interactions/context.cjs.map +1 -1
  584. package/dist/private/interactions/context.js.map +1 -1
  585. package/dist/private/interactions/context.mjs.map +1 -1
  586. package/dist/private/interactions/createEventHandler.cjs +3 -0
  587. package/dist/private/interactions/createEventHandler.cjs.map +1 -1
  588. package/dist/private/interactions/createEventHandler.js +3 -0
  589. package/dist/private/interactions/createEventHandler.js.map +1 -1
  590. package/dist/private/interactions/createEventHandler.mjs +3 -0
  591. package/dist/private/interactions/createEventHandler.mjs.map +1 -1
  592. package/dist/private/interactions/focusSafely.cjs.map +1 -1
  593. package/dist/private/interactions/focusSafely.js.map +1 -1
  594. package/dist/private/interactions/focusSafely.mjs.map +1 -1
  595. package/dist/private/interactions/textSelection.cjs.map +1 -1
  596. package/dist/private/interactions/textSelection.js.map +1 -1
  597. package/dist/private/interactions/textSelection.mjs.map +1 -1
  598. package/dist/private/interactions/useFocus.cjs.map +1 -1
  599. package/dist/private/interactions/useFocus.js.map +1 -1
  600. package/dist/private/interactions/useFocus.mjs.map +1 -1
  601. package/dist/private/interactions/useFocusVisible.cjs +20 -8
  602. package/dist/private/interactions/useFocusVisible.cjs.map +1 -1
  603. package/dist/private/interactions/useFocusVisible.js +20 -8
  604. package/dist/private/interactions/useFocusVisible.js.map +1 -1
  605. package/dist/private/interactions/useFocusVisible.mjs +20 -8
  606. package/dist/private/interactions/useFocusVisible.mjs.map +1 -1
  607. package/dist/private/interactions/useFocusWithin.cjs.map +1 -1
  608. package/dist/private/interactions/useFocusWithin.js.map +1 -1
  609. package/dist/private/interactions/useFocusWithin.mjs.map +1 -1
  610. package/dist/private/interactions/useFocusable.cjs.map +1 -1
  611. package/dist/private/interactions/useFocusable.js.map +1 -1
  612. package/dist/private/interactions/useFocusable.mjs.map +1 -1
  613. package/dist/private/interactions/useHover.cjs.map +1 -1
  614. package/dist/private/interactions/useHover.js.map +1 -1
  615. package/dist/private/interactions/useHover.mjs.map +1 -1
  616. package/dist/private/interactions/useInteractOutside.cjs.map +1 -1
  617. package/dist/private/interactions/useInteractOutside.js.map +1 -1
  618. package/dist/private/interactions/useInteractOutside.mjs.map +1 -1
  619. package/dist/private/interactions/useKeyboard.cjs.map +1 -1
  620. package/dist/private/interactions/useKeyboard.js.map +1 -1
  621. package/dist/private/interactions/useKeyboard.mjs.map +1 -1
  622. package/dist/private/interactions/useLongPress.cjs.map +1 -1
  623. package/dist/private/interactions/useLongPress.js.map +1 -1
  624. package/dist/private/interactions/useLongPress.mjs.map +1 -1
  625. package/dist/private/interactions/useMove.cjs.map +1 -1
  626. package/dist/private/interactions/useMove.js.map +1 -1
  627. package/dist/private/interactions/useMove.mjs.map +1 -1
  628. package/dist/private/interactions/usePress.cjs +11 -0
  629. package/dist/private/interactions/usePress.cjs.map +1 -1
  630. package/dist/private/interactions/usePress.js +12 -1
  631. package/dist/private/interactions/usePress.js.map +1 -1
  632. package/dist/private/interactions/usePress.mjs +12 -1
  633. package/dist/private/interactions/usePress.mjs.map +1 -1
  634. package/dist/private/interactions/useScrollWheel.cjs.map +1 -1
  635. package/dist/private/interactions/useScrollWheel.js.map +1 -1
  636. package/dist/private/interactions/useScrollWheel.mjs.map +1 -1
  637. package/dist/private/interactions/utils.cjs.map +1 -1
  638. package/dist/private/interactions/utils.js.map +1 -1
  639. package/dist/private/interactions/utils.mjs.map +1 -1
  640. package/dist/private/intl/tag/en-US.cjs.map +1 -1
  641. package/dist/private/intl/tag/en-US.js.map +1 -1
  642. package/dist/private/intl/tag/en-US.mjs.map +1 -1
  643. package/dist/private/label/useField.cjs.map +1 -1
  644. package/dist/private/label/useField.js.map +1 -1
  645. package/dist/private/label/useField.mjs.map +1 -1
  646. package/dist/private/label/useLabel.cjs.map +1 -1
  647. package/dist/private/label/useLabel.js.map +1 -1
  648. package/dist/private/label/useLabel.mjs.map +1 -1
  649. package/dist/private/landmark/useLandmark.cjs +2 -1
  650. package/dist/private/landmark/useLandmark.cjs.map +1 -1
  651. package/dist/private/landmark/useLandmark.js +2 -1
  652. package/dist/private/landmark/useLandmark.js.map +1 -1
  653. package/dist/private/landmark/useLandmark.mjs +2 -1
  654. package/dist/private/landmark/useLandmark.mjs.map +1 -1
  655. package/dist/private/link/useLink.cjs.map +1 -1
  656. package/dist/private/link/useLink.js.map +1 -1
  657. package/dist/private/link/useLink.mjs.map +1 -1
  658. package/dist/private/listbox/useListBox.cjs.map +1 -1
  659. package/dist/private/listbox/useListBox.js.map +1 -1
  660. package/dist/private/listbox/useListBox.mjs.map +1 -1
  661. package/dist/private/listbox/useListBoxSection.cjs.map +1 -1
  662. package/dist/private/listbox/useListBoxSection.js.map +1 -1
  663. package/dist/private/listbox/useListBoxSection.mjs.map +1 -1
  664. package/dist/private/listbox/useOption.cjs.map +1 -1
  665. package/dist/private/listbox/useOption.js.map +1 -1
  666. package/dist/private/listbox/useOption.mjs.map +1 -1
  667. package/dist/private/listbox/utils.cjs.map +1 -1
  668. package/dist/private/listbox/utils.js.map +1 -1
  669. package/dist/private/listbox/utils.mjs.map +1 -1
  670. package/dist/private/live-announcer/LiveAnnouncer.cjs +2 -2
  671. package/dist/private/live-announcer/LiveAnnouncer.cjs.map +1 -1
  672. package/dist/private/live-announcer/LiveAnnouncer.js +2 -2
  673. package/dist/private/live-announcer/LiveAnnouncer.js.map +1 -1
  674. package/dist/private/live-announcer/LiveAnnouncer.mjs +2 -2
  675. package/dist/private/live-announcer/LiveAnnouncer.mjs.map +1 -1
  676. package/dist/private/menu/useMenu.cjs.map +1 -1
  677. package/dist/private/menu/useMenu.js.map +1 -1
  678. package/dist/private/menu/useMenu.mjs.map +1 -1
  679. package/dist/private/menu/useMenuItem.cjs +1 -1
  680. package/dist/private/menu/useMenuItem.cjs.map +1 -1
  681. package/dist/private/menu/useMenuItem.js +1 -1
  682. package/dist/private/menu/useMenuItem.js.map +1 -1
  683. package/dist/private/menu/useMenuItem.mjs +1 -1
  684. package/dist/private/menu/useMenuItem.mjs.map +1 -1
  685. package/dist/private/menu/useMenuSection.cjs.map +1 -1
  686. package/dist/private/menu/useMenuSection.js.map +1 -1
  687. package/dist/private/menu/useMenuSection.mjs.map +1 -1
  688. package/dist/private/menu/useMenuTrigger.cjs.map +1 -1
  689. package/dist/private/menu/useMenuTrigger.js.map +1 -1
  690. package/dist/private/menu/useMenuTrigger.mjs.map +1 -1
  691. package/dist/private/menu/useSafelyMouseToSubmenu.cjs.map +1 -1
  692. package/dist/private/menu/useSafelyMouseToSubmenu.js.map +1 -1
  693. package/dist/private/menu/useSafelyMouseToSubmenu.mjs.map +1 -1
  694. package/dist/private/menu/useSubmenuTrigger.cjs.map +1 -1
  695. package/dist/private/menu/useSubmenuTrigger.js.map +1 -1
  696. package/dist/private/menu/useSubmenuTrigger.mjs.map +1 -1
  697. package/dist/private/menu/utils.cjs.map +1 -1
  698. package/dist/private/menu/utils.js.map +1 -1
  699. package/dist/private/menu/utils.mjs.map +1 -1
  700. package/dist/private/meter/useMeter.cjs.map +1 -1
  701. package/dist/private/meter/useMeter.js.map +1 -1
  702. package/dist/private/meter/useMeter.mjs.map +1 -1
  703. package/dist/private/numberfield/useNumberField.cjs.map +1 -1
  704. package/dist/private/numberfield/useNumberField.js.map +1 -1
  705. package/dist/private/numberfield/useNumberField.mjs.map +1 -1
  706. package/dist/private/overlays/DismissButton.cjs.map +1 -1
  707. package/dist/private/overlays/DismissButton.js.map +1 -1
  708. package/dist/private/overlays/DismissButton.mjs.map +1 -1
  709. package/dist/private/overlays/Overlay.cjs.map +1 -1
  710. package/dist/private/overlays/Overlay.js.map +1 -1
  711. package/dist/private/overlays/Overlay.mjs.map +1 -1
  712. package/dist/private/overlays/PortalProvider.cjs.map +1 -1
  713. package/dist/private/overlays/PortalProvider.js.map +1 -1
  714. package/dist/private/overlays/PortalProvider.mjs.map +1 -1
  715. package/dist/private/overlays/ariaHideOutside.cjs.map +1 -1
  716. package/dist/private/overlays/ariaHideOutside.js.map +1 -1
  717. package/dist/private/overlays/ariaHideOutside.mjs.map +1 -1
  718. package/dist/private/overlays/calculatePosition.cjs +19 -20
  719. package/dist/private/overlays/calculatePosition.cjs.map +1 -1
  720. package/dist/private/overlays/calculatePosition.js +20 -21
  721. package/dist/private/overlays/calculatePosition.js.map +1 -1
  722. package/dist/private/overlays/calculatePosition.mjs +19 -20
  723. package/dist/private/overlays/calculatePosition.mjs.map +1 -1
  724. package/dist/private/overlays/useCloseOnScroll.cjs.map +1 -1
  725. package/dist/private/overlays/useCloseOnScroll.js.map +1 -1
  726. package/dist/private/overlays/useCloseOnScroll.mjs.map +1 -1
  727. package/dist/private/overlays/useModal.cjs.map +1 -1
  728. package/dist/private/overlays/useModal.js.map +1 -1
  729. package/dist/private/overlays/useModal.mjs.map +1 -1
  730. package/dist/private/overlays/useModalOverlay.cjs.map +1 -1
  731. package/dist/private/overlays/useModalOverlay.js.map +1 -1
  732. package/dist/private/overlays/useModalOverlay.mjs.map +1 -1
  733. package/dist/private/overlays/useOverlay.cjs.map +1 -1
  734. package/dist/private/overlays/useOverlay.js.map +1 -1
  735. package/dist/private/overlays/useOverlay.mjs.map +1 -1
  736. package/dist/private/overlays/useOverlayPosition.cjs +3 -2
  737. package/dist/private/overlays/useOverlayPosition.cjs.map +1 -1
  738. package/dist/private/overlays/useOverlayPosition.js +3 -2
  739. package/dist/private/overlays/useOverlayPosition.js.map +1 -1
  740. package/dist/private/overlays/useOverlayPosition.mjs +3 -2
  741. package/dist/private/overlays/useOverlayPosition.mjs.map +1 -1
  742. package/dist/private/overlays/useOverlayTrigger.cjs.map +1 -1
  743. package/dist/private/overlays/useOverlayTrigger.js.map +1 -1
  744. package/dist/private/overlays/useOverlayTrigger.mjs.map +1 -1
  745. package/dist/private/overlays/usePopover.cjs.map +1 -1
  746. package/dist/private/overlays/usePopover.js.map +1 -1
  747. package/dist/private/overlays/usePopover.mjs.map +1 -1
  748. package/dist/private/overlays/usePreventScroll.cjs.map +1 -1
  749. package/dist/private/overlays/usePreventScroll.js.map +1 -1
  750. package/dist/private/overlays/usePreventScroll.mjs.map +1 -1
  751. package/dist/private/progress/useProgressBar.cjs.map +1 -1
  752. package/dist/private/progress/useProgressBar.js.map +1 -1
  753. package/dist/private/progress/useProgressBar.mjs.map +1 -1
  754. package/dist/private/radio/useRadio.cjs +5 -0
  755. package/dist/private/radio/useRadio.cjs.map +1 -1
  756. package/dist/private/radio/useRadio.js +5 -0
  757. package/dist/private/radio/useRadio.js.map +1 -1
  758. package/dist/private/radio/useRadio.mjs +5 -0
  759. package/dist/private/radio/useRadio.mjs.map +1 -1
  760. package/dist/private/radio/useRadioGroup.cjs.map +1 -1
  761. package/dist/private/radio/useRadioGroup.js.map +1 -1
  762. package/dist/private/radio/useRadioGroup.mjs.map +1 -1
  763. package/dist/private/radio/utils.cjs.map +1 -1
  764. package/dist/private/radio/utils.js.map +1 -1
  765. package/dist/private/radio/utils.mjs.map +1 -1
  766. package/dist/private/searchfield/useSearchField.cjs.map +1 -1
  767. package/dist/private/searchfield/useSearchField.js.map +1 -1
  768. package/dist/private/searchfield/useSearchField.mjs.map +1 -1
  769. package/dist/private/select/HiddenSelect.cjs +2 -1
  770. package/dist/private/select/HiddenSelect.cjs.map +1 -1
  771. package/dist/private/select/HiddenSelect.js +2 -1
  772. package/dist/private/select/HiddenSelect.js.map +1 -1
  773. package/dist/private/select/HiddenSelect.mjs +2 -1
  774. package/dist/private/select/HiddenSelect.mjs.map +1 -1
  775. package/dist/private/select/useSelect.cjs +3 -4
  776. package/dist/private/select/useSelect.cjs.map +1 -1
  777. package/dist/private/select/useSelect.js +3 -4
  778. package/dist/private/select/useSelect.js.map +1 -1
  779. package/dist/private/select/useSelect.mjs +3 -4
  780. package/dist/private/select/useSelect.mjs.map +1 -1
  781. package/dist/private/selection/ListKeyboardDelegate.cjs +56 -28
  782. package/dist/private/selection/ListKeyboardDelegate.cjs.map +1 -1
  783. package/dist/private/selection/ListKeyboardDelegate.js +57 -29
  784. package/dist/private/selection/ListKeyboardDelegate.js.map +1 -1
  785. package/dist/private/selection/ListKeyboardDelegate.mjs +56 -28
  786. package/dist/private/selection/ListKeyboardDelegate.mjs.map +1 -1
  787. package/dist/private/selection/useSelectableCollection.cjs +21 -14
  788. package/dist/private/selection/useSelectableCollection.cjs.map +1 -1
  789. package/dist/private/selection/useSelectableCollection.js +27 -19
  790. package/dist/private/selection/useSelectableCollection.js.map +1 -1
  791. package/dist/private/selection/useSelectableCollection.mjs +21 -14
  792. package/dist/private/selection/useSelectableCollection.mjs.map +1 -1
  793. package/dist/private/selection/useSelectableItem.cjs.map +1 -1
  794. package/dist/private/selection/useSelectableItem.js.map +1 -1
  795. package/dist/private/selection/useSelectableItem.mjs.map +1 -1
  796. package/dist/private/selection/useSelectableList.cjs.map +1 -1
  797. package/dist/private/selection/useSelectableList.js.map +1 -1
  798. package/dist/private/selection/useSelectableList.mjs.map +1 -1
  799. package/dist/private/selection/useTypeSelect.cjs +50 -18
  800. package/dist/private/selection/useTypeSelect.cjs.map +1 -1
  801. package/dist/private/selection/useTypeSelect.js +51 -19
  802. package/dist/private/selection/useTypeSelect.js.map +1 -1
  803. package/dist/private/selection/useTypeSelect.mjs +51 -19
  804. package/dist/private/selection/useTypeSelect.mjs.map +1 -1
  805. package/dist/private/selection/utils.cjs.map +1 -1
  806. package/dist/private/selection/utils.js.map +1 -1
  807. package/dist/private/selection/utils.mjs.map +1 -1
  808. package/dist/private/separator/useSeparator.cjs.map +1 -1
  809. package/dist/private/separator/useSeparator.js.map +1 -1
  810. package/dist/private/separator/useSeparator.mjs.map +1 -1
  811. package/dist/private/slider/useSlider.cjs +4 -2
  812. package/dist/private/slider/useSlider.cjs.map +1 -1
  813. package/dist/private/slider/useSlider.js +4 -2
  814. package/dist/private/slider/useSlider.js.map +1 -1
  815. package/dist/private/slider/useSlider.mjs +4 -2
  816. package/dist/private/slider/useSlider.mjs.map +1 -1
  817. package/dist/private/slider/useSliderThumb.cjs.map +1 -1
  818. package/dist/private/slider/useSliderThumb.js.map +1 -1
  819. package/dist/private/slider/useSliderThumb.mjs.map +1 -1
  820. package/dist/private/slider/utils.cjs.map +1 -1
  821. package/dist/private/slider/utils.js.map +1 -1
  822. package/dist/private/slider/utils.mjs.map +1 -1
  823. package/dist/private/spinbutton/useSpinButton.cjs +2 -0
  824. package/dist/private/spinbutton/useSpinButton.cjs.map +1 -1
  825. package/dist/private/spinbutton/useSpinButton.js +2 -0
  826. package/dist/private/spinbutton/useSpinButton.js.map +1 -1
  827. package/dist/private/spinbutton/useSpinButton.mjs +2 -0
  828. package/dist/private/spinbutton/useSpinButton.mjs.map +1 -1
  829. package/dist/private/ssr/SSRProvider.cjs +6 -6
  830. package/dist/private/ssr/SSRProvider.cjs.map +1 -1
  831. package/dist/private/ssr/SSRProvider.js +6 -6
  832. package/dist/private/ssr/SSRProvider.js.map +1 -1
  833. package/dist/private/ssr/SSRProvider.mjs +6 -6
  834. package/dist/private/ssr/SSRProvider.mjs.map +1 -1
  835. package/dist/private/steplist/useStepList.cjs.map +1 -1
  836. package/dist/private/steplist/useStepList.js.map +1 -1
  837. package/dist/private/steplist/useStepList.mjs.map +1 -1
  838. package/dist/private/steplist/useStepListItem.cjs.map +1 -1
  839. package/dist/private/steplist/useStepListItem.js.map +1 -1
  840. package/dist/private/steplist/useStepListItem.mjs.map +1 -1
  841. package/dist/private/switch/useSwitch.cjs +2 -4
  842. package/dist/private/switch/useSwitch.cjs.map +1 -1
  843. package/dist/private/switch/useSwitch.js +2 -4
  844. package/dist/private/switch/useSwitch.js.map +1 -1
  845. package/dist/private/switch/useSwitch.mjs +2 -4
  846. package/dist/private/switch/useSwitch.mjs.map +1 -1
  847. package/dist/private/table/TableKeyboardDelegate.cjs +4 -4
  848. package/dist/private/table/TableKeyboardDelegate.cjs.map +1 -1
  849. package/dist/private/table/TableKeyboardDelegate.js +4 -4
  850. package/dist/private/table/TableKeyboardDelegate.js.map +1 -1
  851. package/dist/private/table/TableKeyboardDelegate.mjs +4 -4
  852. package/dist/private/table/TableKeyboardDelegate.mjs.map +1 -1
  853. package/dist/private/table/useTable.cjs.map +1 -1
  854. package/dist/private/table/useTable.js.map +1 -1
  855. package/dist/private/table/useTable.mjs.map +1 -1
  856. package/dist/private/table/useTableCell.cjs.map +1 -1
  857. package/dist/private/table/useTableCell.js.map +1 -1
  858. package/dist/private/table/useTableCell.mjs.map +1 -1
  859. package/dist/private/table/useTableColumnHeader.cjs.map +1 -1
  860. package/dist/private/table/useTableColumnHeader.js.map +1 -1
  861. package/dist/private/table/useTableColumnHeader.mjs.map +1 -1
  862. package/dist/private/table/useTableColumnResize.cjs +1 -1
  863. package/dist/private/table/useTableColumnResize.cjs.map +1 -1
  864. package/dist/private/table/useTableColumnResize.js +1 -1
  865. package/dist/private/table/useTableColumnResize.js.map +1 -1
  866. package/dist/private/table/useTableColumnResize.mjs +1 -1
  867. package/dist/private/table/useTableColumnResize.mjs.map +1 -1
  868. package/dist/private/table/useTableHeaderRow.cjs +2 -1
  869. package/dist/private/table/useTableHeaderRow.cjs.map +1 -1
  870. package/dist/private/table/useTableHeaderRow.js +2 -1
  871. package/dist/private/table/useTableHeaderRow.js.map +1 -1
  872. package/dist/private/table/useTableHeaderRow.mjs +2 -1
  873. package/dist/private/table/useTableHeaderRow.mjs.map +1 -1
  874. package/dist/private/table/useTableRow.cjs +2 -2
  875. package/dist/private/table/useTableRow.cjs.map +1 -1
  876. package/dist/private/table/useTableRow.js +2 -2
  877. package/dist/private/table/useTableRow.js.map +1 -1
  878. package/dist/private/table/useTableRow.mjs +2 -2
  879. package/dist/private/table/useTableRow.mjs.map +1 -1
  880. package/dist/private/table/useTableSelectionCheckbox.cjs.map +1 -1
  881. package/dist/private/table/useTableSelectionCheckbox.js.map +1 -1
  882. package/dist/private/table/useTableSelectionCheckbox.mjs.map +1 -1
  883. package/dist/private/table/utils.cjs.map +1 -1
  884. package/dist/private/table/utils.js.map +1 -1
  885. package/dist/private/table/utils.mjs.map +1 -1
  886. package/dist/private/tabs/TabsKeyboardDelegate.cjs +2 -2
  887. package/dist/private/tabs/TabsKeyboardDelegate.cjs.map +1 -1
  888. package/dist/private/tabs/TabsKeyboardDelegate.js +2 -2
  889. package/dist/private/tabs/TabsKeyboardDelegate.js.map +1 -1
  890. package/dist/private/tabs/TabsKeyboardDelegate.mjs +2 -2
  891. package/dist/private/tabs/TabsKeyboardDelegate.mjs.map +1 -1
  892. package/dist/private/tabs/useTab.cjs.map +1 -1
  893. package/dist/private/tabs/useTab.js.map +1 -1
  894. package/dist/private/tabs/useTab.mjs.map +1 -1
  895. package/dist/private/tabs/useTabList.cjs +10 -10
  896. package/dist/private/tabs/useTabList.cjs.map +1 -1
  897. package/dist/private/tabs/useTabList.js +10 -10
  898. package/dist/private/tabs/useTabList.js.map +1 -1
  899. package/dist/private/tabs/useTabList.mjs +10 -10
  900. package/dist/private/tabs/useTabList.mjs.map +1 -1
  901. package/dist/private/tabs/useTabPanel.cjs.map +1 -1
  902. package/dist/private/tabs/useTabPanel.js.map +1 -1
  903. package/dist/private/tabs/useTabPanel.mjs.map +1 -1
  904. package/dist/private/tabs/utils.cjs.map +1 -1
  905. package/dist/private/tabs/utils.js.map +1 -1
  906. package/dist/private/tabs/utils.mjs.map +1 -1
  907. package/dist/private/tag/useTag.cjs.map +1 -1
  908. package/dist/private/tag/useTag.js.map +1 -1
  909. package/dist/private/tag/useTag.mjs.map +1 -1
  910. package/dist/private/tag/useTagGroup.cjs.map +1 -1
  911. package/dist/private/tag/useTagGroup.js.map +1 -1
  912. package/dist/private/tag/useTagGroup.mjs.map +1 -1
  913. package/dist/private/textfield/useFormattedTextField.cjs.map +1 -1
  914. package/dist/private/textfield/useFormattedTextField.js.map +1 -1
  915. package/dist/private/textfield/useFormattedTextField.mjs.map +1 -1
  916. package/dist/private/textfield/useTextField.cjs.map +1 -1
  917. package/dist/private/textfield/useTextField.js.map +1 -1
  918. package/dist/private/textfield/useTextField.mjs.map +1 -1
  919. package/dist/private/toast/useToast.cjs +2 -1
  920. package/dist/private/toast/useToast.cjs.map +1 -1
  921. package/dist/private/toast/useToast.js +2 -1
  922. package/dist/private/toast/useToast.js.map +1 -1
  923. package/dist/private/toast/useToast.mjs +2 -1
  924. package/dist/private/toast/useToast.mjs.map +1 -1
  925. package/dist/private/toast/useToastRegion.cjs.map +1 -1
  926. package/dist/private/toast/useToastRegion.js.map +1 -1
  927. package/dist/private/toast/useToastRegion.mjs.map +1 -1
  928. package/dist/private/toggle/useToggle.cjs +70 -8
  929. package/dist/private/toggle/useToggle.cjs.map +1 -1
  930. package/dist/private/toggle/useToggle.js +70 -8
  931. package/dist/private/toggle/useToggle.js.map +1 -1
  932. package/dist/private/toggle/useToggle.mjs +70 -8
  933. package/dist/private/toggle/useToggle.mjs.map +1 -1
  934. package/dist/private/toolbar/useToolbar.cjs +0 -1
  935. package/dist/private/toolbar/useToolbar.cjs.map +1 -1
  936. package/dist/private/toolbar/useToolbar.js +0 -1
  937. package/dist/private/toolbar/useToolbar.js.map +1 -1
  938. package/dist/private/toolbar/useToolbar.mjs +0 -1
  939. package/dist/private/toolbar/useToolbar.mjs.map +1 -1
  940. package/dist/private/tooltip/useTooltip.cjs.map +1 -1
  941. package/dist/private/tooltip/useTooltip.js.map +1 -1
  942. package/dist/private/tooltip/useTooltip.mjs.map +1 -1
  943. package/dist/private/tooltip/useTooltipTrigger.cjs.map +1 -1
  944. package/dist/private/tooltip/useTooltipTrigger.js.map +1 -1
  945. package/dist/private/tooltip/useTooltipTrigger.mjs.map +1 -1
  946. package/dist/private/tree/useTree.cjs.map +1 -1
  947. package/dist/private/tree/useTree.js.map +1 -1
  948. package/dist/private/tree/useTree.mjs.map +1 -1
  949. package/dist/private/tree/useTreeItem.cjs.map +1 -1
  950. package/dist/private/tree/useTreeItem.js.map +1 -1
  951. package/dist/private/tree/useTreeItem.mjs.map +1 -1
  952. package/dist/private/utils/animation.cjs.map +1 -1
  953. package/dist/private/utils/animation.js.map +1 -1
  954. package/dist/private/utils/animation.mjs.map +1 -1
  955. package/dist/private/utils/domHelpers.cjs +2 -1
  956. package/dist/private/utils/domHelpers.cjs.map +1 -1
  957. package/dist/private/utils/domHelpers.js +2 -1
  958. package/dist/private/utils/domHelpers.js.map +1 -1
  959. package/dist/private/utils/domHelpers.mjs +2 -1
  960. package/dist/private/utils/domHelpers.mjs.map +1 -1
  961. package/dist/private/utils/filterDOMProps.cjs.map +1 -1
  962. package/dist/private/utils/filterDOMProps.js.map +1 -1
  963. package/dist/private/utils/filterDOMProps.mjs.map +1 -1
  964. package/dist/private/utils/focusWithoutScrolling.cjs.map +1 -1
  965. package/dist/private/utils/focusWithoutScrolling.js.map +1 -1
  966. package/dist/private/utils/focusWithoutScrolling.mjs.map +1 -1
  967. package/dist/private/utils/getNonce.cjs.map +1 -1
  968. package/dist/private/utils/getNonce.js.map +1 -1
  969. package/dist/private/utils/getNonce.mjs.map +1 -1
  970. package/dist/private/utils/getOffset.cjs.map +1 -1
  971. package/dist/private/utils/getOffset.js.map +1 -1
  972. package/dist/private/utils/getOffset.mjs.map +1 -1
  973. package/dist/private/utils/getScrollParent.cjs.map +1 -1
  974. package/dist/private/utils/getScrollParent.js.map +1 -1
  975. package/dist/private/utils/getScrollParent.mjs.map +1 -1
  976. package/dist/private/utils/getScrollParents.cjs +3 -2
  977. package/dist/private/utils/getScrollParents.cjs.map +1 -1
  978. package/dist/private/utils/getScrollParents.js +3 -2
  979. package/dist/private/utils/getScrollParents.js.map +1 -1
  980. package/dist/private/utils/getScrollParents.mjs +3 -2
  981. package/dist/private/utils/getScrollParents.mjs.map +1 -1
  982. package/dist/private/utils/isElementVisible.cjs +1 -1
  983. package/dist/private/utils/isElementVisible.cjs.map +1 -1
  984. package/dist/private/utils/isElementVisible.js +1 -1
  985. package/dist/private/utils/isElementVisible.js.map +1 -1
  986. package/dist/private/utils/isElementVisible.mjs +1 -1
  987. package/dist/private/utils/isElementVisible.mjs.map +1 -1
  988. package/dist/private/utils/isFocusable.cjs +3 -1
  989. package/dist/private/utils/isFocusable.cjs.map +1 -1
  990. package/dist/private/utils/isFocusable.js +3 -1
  991. package/dist/private/utils/isFocusable.js.map +1 -1
  992. package/dist/private/utils/isFocusable.mjs +3 -1
  993. package/dist/private/utils/isFocusable.mjs.map +1 -1
  994. package/dist/private/utils/isVirtualEvent.cjs.map +1 -1
  995. package/dist/private/utils/isVirtualEvent.js.map +1 -1
  996. package/dist/private/utils/isVirtualEvent.mjs.map +1 -1
  997. package/dist/private/utils/keyboard.cjs.map +1 -1
  998. package/dist/private/utils/keyboard.js.map +1 -1
  999. package/dist/private/utils/keyboard.mjs.map +1 -1
  1000. package/dist/private/utils/mergeProps.cjs.map +1 -1
  1001. package/dist/private/utils/mergeProps.js.map +1 -1
  1002. package/dist/private/utils/mergeProps.mjs.map +1 -1
  1003. package/dist/private/utils/mergeRefs.cjs.map +1 -1
  1004. package/dist/private/utils/mergeRefs.js.map +1 -1
  1005. package/dist/private/utils/mergeRefs.mjs.map +1 -1
  1006. package/dist/private/utils/openLink.cjs +12 -8
  1007. package/dist/private/utils/openLink.cjs.map +1 -1
  1008. package/dist/private/utils/openLink.js +12 -8
  1009. package/dist/private/utils/openLink.js.map +1 -1
  1010. package/dist/private/utils/openLink.mjs +12 -8
  1011. package/dist/private/utils/openLink.mjs.map +1 -1
  1012. package/dist/private/utils/platform.cjs.map +1 -1
  1013. package/dist/private/utils/platform.js.map +1 -1
  1014. package/dist/private/utils/platform.mjs.map +1 -1
  1015. package/dist/private/utils/scrollIntoView.cjs +21 -18
  1016. package/dist/private/utils/scrollIntoView.cjs.map +1 -1
  1017. package/dist/private/utils/scrollIntoView.js +21 -18
  1018. package/dist/private/utils/scrollIntoView.js.map +1 -1
  1019. package/dist/private/utils/scrollIntoView.mjs +21 -18
  1020. package/dist/private/utils/scrollIntoView.mjs.map +1 -1
  1021. package/dist/private/utils/shadowdom/DOMFunctions.cjs.map +1 -1
  1022. package/dist/private/utils/shadowdom/DOMFunctions.js.map +1 -1
  1023. package/dist/private/utils/shadowdom/DOMFunctions.mjs.map +1 -1
  1024. package/dist/private/utils/shadowdom/ShadowTreeWalker.cjs +6 -6
  1025. package/dist/private/utils/shadowdom/ShadowTreeWalker.cjs.map +1 -1
  1026. package/dist/private/utils/shadowdom/ShadowTreeWalker.js +6 -6
  1027. package/dist/private/utils/shadowdom/ShadowTreeWalker.js.map +1 -1
  1028. package/dist/private/utils/shadowdom/ShadowTreeWalker.mjs +6 -6
  1029. package/dist/private/utils/shadowdom/ShadowTreeWalker.mjs.map +1 -1
  1030. package/dist/private/utils/useDeepMemo.cjs +1 -1
  1031. package/dist/private/utils/useDeepMemo.cjs.map +1 -1
  1032. package/dist/private/utils/useDeepMemo.js +1 -1
  1033. package/dist/private/utils/useDeepMemo.js.map +1 -1
  1034. package/dist/private/utils/useDeepMemo.mjs +1 -1
  1035. package/dist/private/utils/useDeepMemo.mjs.map +1 -1
  1036. package/dist/private/utils/useDescription.cjs.map +1 -1
  1037. package/dist/private/utils/useDescription.js.map +1 -1
  1038. package/dist/private/utils/useDescription.mjs.map +1 -1
  1039. package/dist/private/utils/useDrag1D.cjs +1 -1
  1040. package/dist/private/utils/useDrag1D.cjs.map +1 -1
  1041. package/dist/private/utils/useDrag1D.js +1 -1
  1042. package/dist/private/utils/useDrag1D.js.map +1 -1
  1043. package/dist/private/utils/useDrag1D.mjs +1 -1
  1044. package/dist/private/utils/useDrag1D.mjs.map +1 -1
  1045. package/dist/private/utils/useFormReset.cjs.map +1 -1
  1046. package/dist/private/utils/useFormReset.js.map +1 -1
  1047. package/dist/private/utils/useFormReset.mjs.map +1 -1
  1048. package/dist/private/utils/useGlobalListeners.cjs.map +1 -1
  1049. package/dist/private/utils/useGlobalListeners.js.map +1 -1
  1050. package/dist/private/utils/useGlobalListeners.mjs.map +1 -1
  1051. package/dist/private/utils/useId.cjs.map +1 -1
  1052. package/dist/private/utils/useId.js.map +1 -1
  1053. package/dist/private/utils/useId.mjs.map +1 -1
  1054. package/dist/private/utils/useLabels.cjs.map +1 -1
  1055. package/dist/private/utils/useLabels.js.map +1 -1
  1056. package/dist/private/utils/useLabels.mjs.map +1 -1
  1057. package/dist/private/utils/useLayoutEffect.cjs.map +1 -1
  1058. package/dist/private/utils/useLayoutEffect.js.map +1 -1
  1059. package/dist/private/utils/useLayoutEffect.mjs.map +1 -1
  1060. package/dist/private/utils/useLoadMore.cjs.map +1 -1
  1061. package/dist/private/utils/useLoadMore.js.map +1 -1
  1062. package/dist/private/utils/useLoadMore.mjs.map +1 -1
  1063. package/dist/private/utils/useLoadMoreSentinel.cjs.map +1 -1
  1064. package/dist/private/utils/useLoadMoreSentinel.js.map +1 -1
  1065. package/dist/private/utils/useLoadMoreSentinel.mjs.map +1 -1
  1066. package/dist/private/utils/useObjectRef.cjs.map +1 -1
  1067. package/dist/private/utils/useObjectRef.js.map +1 -1
  1068. package/dist/private/utils/useObjectRef.mjs.map +1 -1
  1069. package/dist/private/utils/useResizeObserver.cjs.map +1 -1
  1070. package/dist/private/utils/useResizeObserver.js.map +1 -1
  1071. package/dist/private/utils/useResizeObserver.mjs.map +1 -1
  1072. package/dist/private/utils/useSlot.cjs +54 -0
  1073. package/dist/private/utils/useSlot.cjs.map +1 -0
  1074. package/dist/private/utils/useSlot.js +49 -0
  1075. package/dist/private/utils/useSlot.js.map +1 -0
  1076. package/dist/private/utils/useSlot.mjs +49 -0
  1077. package/dist/private/utils/useSlot.mjs.map +1 -0
  1078. package/dist/private/utils/useSyncRef.cjs +2 -1
  1079. package/dist/private/utils/useSyncRef.cjs.map +1 -1
  1080. package/dist/private/utils/useSyncRef.js +2 -1
  1081. package/dist/private/utils/useSyncRef.js.map +1 -1
  1082. package/dist/private/utils/useSyncRef.mjs +2 -1
  1083. package/dist/private/utils/useSyncRef.mjs.map +1 -1
  1084. package/dist/private/utils/useUpdateEffect.cjs.map +1 -1
  1085. package/dist/private/utils/useUpdateEffect.js.map +1 -1
  1086. package/dist/private/utils/useUpdateEffect.mjs.map +1 -1
  1087. package/dist/private/utils/useValueEffect.cjs.map +1 -1
  1088. package/dist/private/utils/useValueEffect.js.map +1 -1
  1089. package/dist/private/utils/useValueEffect.mjs.map +1 -1
  1090. package/dist/private/utils/useViewportSize.cjs +3 -1
  1091. package/dist/private/utils/useViewportSize.cjs.map +1 -1
  1092. package/dist/private/utils/useViewportSize.js +3 -1
  1093. package/dist/private/utils/useViewportSize.js.map +1 -1
  1094. package/dist/private/utils/useViewportSize.mjs +3 -1
  1095. package/dist/private/utils/useViewportSize.mjs.map +1 -1
  1096. package/dist/private/virtualizer/ScrollView.cjs +2 -2
  1097. package/dist/private/virtualizer/ScrollView.cjs.map +1 -1
  1098. package/dist/private/virtualizer/ScrollView.js +2 -2
  1099. package/dist/private/virtualizer/ScrollView.js.map +1 -1
  1100. package/dist/private/virtualizer/ScrollView.mjs +2 -2
  1101. package/dist/private/virtualizer/ScrollView.mjs.map +1 -1
  1102. package/dist/private/virtualizer/Virtualizer.cjs.map +1 -1
  1103. package/dist/private/virtualizer/Virtualizer.js.map +1 -1
  1104. package/dist/private/virtualizer/Virtualizer.mjs.map +1 -1
  1105. package/dist/private/virtualizer/VirtualizerItem.cjs.map +1 -1
  1106. package/dist/private/virtualizer/VirtualizerItem.js.map +1 -1
  1107. package/dist/private/virtualizer/VirtualizerItem.mjs.map +1 -1
  1108. package/dist/private/virtualizer/useVirtualizerItem.cjs.map +1 -1
  1109. package/dist/private/virtualizer/useVirtualizerItem.js.map +1 -1
  1110. package/dist/private/virtualizer/useVirtualizerItem.mjs.map +1 -1
  1111. package/dist/private/virtualizer/utils.cjs.map +1 -1
  1112. package/dist/private/virtualizer/utils.js.map +1 -1
  1113. package/dist/private/virtualizer/utils.mjs.map +1 -1
  1114. package/dist/private/visually-hidden/VisuallyHidden.cjs.map +1 -1
  1115. package/dist/private/visually-hidden/VisuallyHidden.js.map +1 -1
  1116. package/dist/private/visually-hidden/VisuallyHidden.mjs.map +1 -1
  1117. package/dist/types/exports/index.d.ts +7 -0
  1118. package/dist/types/exports/useCalendar.d.ts +6 -0
  1119. package/dist/types/exports/useRangeCalendar.d.ts +11 -0
  1120. package/dist/types/src/actiongroup/useActionGroup.d.ts +5 -1
  1121. package/dist/types/src/aria-modal-polyfill/ariaModalPolyfill.d.ts +2 -1
  1122. package/dist/types/src/autocomplete/useAutocomplete.d.ts +21 -9
  1123. package/dist/types/src/autocomplete/useSearchAutocomplete.d.ts +15 -8
  1124. package/dist/types/src/breadcrumbs/useBreadcrumbItem.d.ts +2 -0
  1125. package/dist/types/src/button/useButton.d.ts +25 -7
  1126. package/dist/types/src/button/useToggleButtonGroup.d.ts +1 -0
  1127. package/dist/types/src/calendar/useCalendar.d.ts +3 -3
  1128. package/dist/types/src/calendar/useCalendarBase.d.ts +2 -2
  1129. package/dist/types/src/calendar/useCalendarCell.d.ts +9 -8
  1130. package/dist/types/src/calendar/useCalendarGrid.d.ts +8 -4
  1131. package/dist/types/src/calendar/useCalendarHeading.d.ts +22 -0
  1132. package/dist/types/src/calendar/useCalendarMonthPicker.d.ts +22 -0
  1133. package/dist/types/src/calendar/useCalendarYearPicker.d.ts +32 -0
  1134. package/dist/types/src/calendar/useRangeCalendar.d.ts +5 -5
  1135. package/dist/types/src/calendar/utils.d.ts +3 -3
  1136. package/dist/types/src/checkbox/useCheckbox.d.ts +6 -1
  1137. package/dist/types/src/checkbox/useCheckboxGroup.d.ts +1 -0
  1138. package/dist/types/src/checkbox/useCheckboxGroupItem.d.ts +3 -2
  1139. package/dist/types/src/collections/CollectionBuilder.d.ts +8 -7
  1140. package/dist/types/src/collections/useCachedChildren.d.ts +1 -1
  1141. package/dist/types/src/color/useColorArea.d.ts +7 -4
  1142. package/dist/types/src/color/useColorChannelField.d.ts +2 -2
  1143. package/dist/types/src/combobox/useComboBox.d.ts +5 -3
  1144. package/dist/types/src/datepicker/useDateField.d.ts +2 -1
  1145. package/dist/types/src/datepicker/useDatePicker.d.ts +5 -3
  1146. package/dist/types/src/dialog/useDialog.d.ts +1 -0
  1147. package/dist/types/src/disclosure/useDisclosure.d.ts +1 -0
  1148. package/dist/types/src/dnd/ListDropTargetDelegate.d.ts +3 -0
  1149. package/dist/types/src/dnd/useDrag.d.ts +11 -4
  1150. package/dist/types/src/dnd/useDraggableCollection.d.ts +2 -2
  1151. package/dist/types/src/dnd/useDraggableItem.d.ts +7 -6
  1152. package/dist/types/src/dnd/useDrop.d.ts +5 -4
  1153. package/dist/types/src/dnd/useDroppableCollection.d.ts +2 -2
  1154. package/dist/types/src/dnd/utils.d.ts +3 -3
  1155. package/dist/types/src/focus/FocusRing.d.ts +1 -0
  1156. package/dist/types/src/focus/useFocusRing.d.ts +1 -0
  1157. package/dist/types/src/focus/useHasTabbableChild.d.ts +1 -0
  1158. package/dist/types/src/grid/GridKeyboardDelegate.d.ts +8 -4
  1159. package/dist/types/src/grid/useGrid.d.ts +12 -4
  1160. package/dist/types/src/grid/useGridCell.d.ts +11 -3
  1161. package/dist/types/src/grid/useGridRow.d.ts +7 -2
  1162. package/dist/types/src/grid/useGridSelectionAnnouncement.d.ts +3 -1
  1163. package/dist/types/src/grid/useGridSelectionCheckbox.d.ts +1 -0
  1164. package/dist/types/src/grid/useHighlightSelectionDescription.d.ts +1 -0
  1165. package/dist/types/src/gridlist/useGridList.d.ts +20 -5
  1166. package/dist/types/src/gridlist/useGridListItem.d.ts +5 -1
  1167. package/dist/types/src/gridlist/useGridListSection.d.ts +1 -0
  1168. package/dist/types/src/gridlist/useGridListSelectionCheckbox.d.ts +1 -0
  1169. package/dist/types/src/i18n/useCollator.d.ts +3 -2
  1170. package/dist/types/src/i18n/useDateFormatter.d.ts +3 -2
  1171. package/dist/types/src/i18n/useFilter.d.ts +3 -2
  1172. package/dist/types/src/i18n/useListFormatter.d.ts +3 -2
  1173. package/dist/types/src/i18n/useLocalizedStringFormatter.d.ts +3 -1
  1174. package/dist/types/src/i18n/useNumberFormatter.d.ts +3 -2
  1175. package/dist/types/src/i18n/utils.d.ts +2 -1
  1176. package/dist/types/src/interactions/createEventHandler.d.ts +2 -1
  1177. package/dist/types/src/interactions/useFocusVisible.d.ts +11 -9
  1178. package/dist/types/src/interactions/useLongPress.d.ts +3 -2
  1179. package/dist/types/src/interactions/utils.d.ts +4 -3
  1180. package/dist/types/src/label/useField.d.ts +3 -2
  1181. package/dist/types/src/label/useLabel.d.ts +2 -0
  1182. package/dist/types/src/landmark/useLandmark.d.ts +4 -1
  1183. package/dist/types/src/link/useLink.d.ts +1 -0
  1184. package/dist/types/src/listbox/useListBox.d.ts +8 -3
  1185. package/dist/types/src/listbox/useListBoxSection.d.ts +1 -0
  1186. package/dist/types/src/listbox/useOption.d.ts +7 -0
  1187. package/dist/types/src/menu/useMenu.d.ts +3 -1
  1188. package/dist/types/src/menu/useMenuItem.d.ts +10 -1
  1189. package/dist/types/src/menu/useMenuSection.d.ts +1 -0
  1190. package/dist/types/src/menu/useMenuTrigger.d.ts +1 -0
  1191. package/dist/types/src/menu/useSafelyMouseToSubmenu.d.ts +3 -2
  1192. package/dist/types/src/menu/useSubmenuTrigger.d.ts +7 -2
  1193. package/dist/types/src/menu/utils.d.ts +1 -1
  1194. package/dist/types/src/numberfield/useNumberField.d.ts +11 -4
  1195. package/dist/types/src/overlays/Overlay.d.ts +1 -0
  1196. package/dist/types/src/overlays/PortalProvider.d.ts +4 -1
  1197. package/dist/types/src/overlays/ariaHideOutside.d.ts +1 -0
  1198. package/dist/types/src/overlays/calculatePosition.d.ts +3 -1
  1199. package/dist/types/src/overlays/useModal.d.ts +8 -7
  1200. package/dist/types/src/overlays/useModalOverlay.d.ts +2 -0
  1201. package/dist/types/src/overlays/useOverlay.d.ts +2 -0
  1202. package/dist/types/src/overlays/useOverlayPosition.d.ts +18 -0
  1203. package/dist/types/src/progress/useProgressBar.d.ts +5 -1
  1204. package/dist/types/src/radio/useRadio.d.ts +4 -1
  1205. package/dist/types/src/radio/useRadioGroup.d.ts +1 -0
  1206. package/dist/types/src/searchfield/useSearchField.d.ts +7 -2
  1207. package/dist/types/src/select/HiddenSelect.d.ts +2 -1
  1208. package/dist/types/src/select/useSelect.d.ts +3 -1
  1209. package/dist/types/src/selection/ListKeyboardDelegate.d.ts +19 -6
  1210. package/dist/types/src/selection/useSelectableCollection.d.ts +17 -2
  1211. package/dist/types/src/selection/useSelectableItem.d.ts +9 -7
  1212. package/dist/types/src/selection/useSelectableList.d.ts +5 -2
  1213. package/dist/types/src/separator/useSeparator.d.ts +1 -0
  1214. package/dist/types/src/slider/useSlider.d.ts +5 -4
  1215. package/dist/types/src/slider/useSliderThumb.d.ts +3 -1
  1216. package/dist/types/src/switch/useSwitch.d.ts +14 -27
  1217. package/dist/types/src/table/TableKeyboardDelegate.d.ts +6 -2
  1218. package/dist/types/src/table/useTable.d.ts +8 -4
  1219. package/dist/types/src/table/useTableCell.d.ts +7 -2
  1220. package/dist/types/src/table/useTableColumnHeader.d.ts +9 -2
  1221. package/dist/types/src/table/useTableColumnResize.d.ts +12 -6
  1222. package/dist/types/src/table/useTableHeaderRow.d.ts +1 -0
  1223. package/dist/types/src/table/useTableRow.d.ts +1 -0
  1224. package/dist/types/src/table/useTableSelectionCheckbox.d.ts +2 -0
  1225. package/dist/types/src/tabs/useTabList.d.ts +2 -0
  1226. package/dist/types/src/tabs/useTabPanel.d.ts +2 -2
  1227. package/dist/types/src/tag/useTag.d.ts +1 -0
  1228. package/dist/types/src/tag/useTagGroup.d.ts +7 -3
  1229. package/dist/types/src/textfield/useTextField.d.ts +26 -11
  1230. package/dist/types/src/toast/useToast.d.ts +2 -2
  1231. package/dist/types/src/toast/useToastRegion.d.ts +5 -3
  1232. package/dist/types/src/toggle/useToggle.d.ts +8 -3
  1233. package/dist/types/src/toolbar/useToolbar.d.ts +2 -0
  1234. package/dist/types/src/tree/useTree.d.ts +5 -3
  1235. package/dist/types/src/tree/useTreeItem.d.ts +5 -1
  1236. package/dist/types/src/utils/filterDOMProps.d.ts +1 -0
  1237. package/dist/types/src/utils/getNonce.d.ts +3 -2
  1238. package/dist/types/src/utils/isElementVisible.d.ts +1 -0
  1239. package/dist/types/src/utils/mergeProps.d.ts +3 -2
  1240. package/dist/types/src/utils/scrollIntoView.d.ts +5 -3
  1241. package/dist/types/src/utils/shadowdom/DOMFunctions.d.ts +1 -0
  1242. package/dist/types/src/utils/useId.d.ts +2 -0
  1243. package/dist/types/src/utils/useLabels.d.ts +1 -0
  1244. package/dist/types/src/utils/useLoadMore.d.ts +6 -4
  1245. package/dist/types/src/utils/useLoadMoreSentinel.d.ts +5 -3
  1246. package/dist/types/src/utils/useSlot.d.ts +8 -0
  1247. package/dist/types/src/visually-hidden/VisuallyHidden.d.ts +1 -0
  1248. package/package.json +10 -8
@@ -1 +1 @@
1
- {"mappings":";;;;;;;;;;;;;AAAA;;;;;;;;;;CAUC;;;;;;AA8BM,SAAS,0CAAU,KAAsB,EAAE,GAAuC;IACvF,IAAI,QACF,OAAO,UACR,GAAG;IACJ,IAAI,UAA8B,CAAA,GAAA,mCAAQ;IAC1C,UAAU,KAAK,CAAC,aAAa,GAAG,YAAY;IAE5C,IAAI,eAAe,CAAA,GAAA,mBAAK,EAAE;IAE1B,+EAA+E;IAC/E,CAAA,GAAA,sBAAQ,EAAE;QACR,IAAI,IAAI,OAAO,IAAI,CAAC,CAAA,GAAA,uCAAY,EAAE,IAAI,OAAO,GAAG;YAC9C,CAAA,GAAA,qCAAU,EAAE,IAAI,OAAO;YAEvB,iEAAiE;YACjE,qEAAqE;YACrE,mEAAmE;YACnE,IAAI,UAAU,WAAW;gBACvB,2EAA2E;gBAC3E,IAAI,CAAA,GAAA,0CAAe,QAAQ,IAAI,OAAO,IAAI,CAAA,GAAA,0CAAe,QAAQ,SAAS,IAAI,EAAE;oBAC9E,aAAa,OAAO,GAAG;oBACvB,IAAI,IAAI,OAAO,EAAE;wBACf,IAAI,OAAO,CAAC,IAAI;wBAChB,CAAA,GAAA,qCAAU,EAAE,IAAI,OAAO;oBACzB;oBACA,aAAa,OAAO,GAAG;gBACzB;YACF,GAAG;YAEH,OAAO;gBACL,aAAa;YACf;QACF;IACF,GAAG;QAAC;KAAI;IAER,CAAA,GAAA,gDAAqB;IAErB,0DAA0D;IAC1D,2EAA2E;IAC3E,sEAAsE;IACtE,4CAA4C;IAC5C,uEAAuE;IACvE,sEAAsE;IACtE,IAAI,YAAY,CAAA,GAAA,mBAAK,EAAE;IACvB,CAAA,GAAA,sBAAQ,EAAE;QACR,IAAI,QAAQ,GAAG,CAAC,QAAQ,KAAK,gBAAgB,CAAC,UAAU,OAAO,IAAI,IAAI,OAAO,EAAE;YAC9E,IAAI,KAAK,IAAI,OAAO;YACpB,IAAI,eAAe,GAAG,YAAY,CAAC;YACnC,IAAI,oBAAoB,GAAG,YAAY,CAAC;YACxC,IAAI,CAAC,gBAAgB,CAAC,mBAAmB;gBACvC,QAAQ,IAAI,CACV;gBAGF,UAAU,OAAO,GAAG;YACtB;QACF;IACF;IAEA,sGAAsG;IACtG,qFAAqF;IACrF,sDAAsD;IACtD,qGAAqG;IACrG,gDAAgD;IAChD,OAAO;QACL,aAAa;YACX,GAAG,CAAA,GAAA,wCAAa,EAAE,OAAO;gBAAC,WAAW;YAAI,EAAE;kBAC3C;YACA,UAAU;YACV,mBAAmB,KAAK,CAAC,kBAAkB,IAAI;YAC/C,gEAAgE;YAChE,iEAAiE;YACjE,0DAA0D;YAC1D,QAAQ,CAAA;gBACN,IAAI,aAAa,OAAO,EACtB,EAAE,eAAe;YAErB;QACF;QACA,YAAY;YACV,IAAI;QACN;IACF;AACF","sources":["packages/react-aria/src/dialog/useDialog.ts"],"sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps, DOMAttributes, DOMProps, FocusableElement, RefObject} from '@react-types/shared';\nimport {filterDOMProps} from '../utils/filterDOMProps';\nimport {focusSafely} from '../interactions/focusSafely';\nimport {getActiveElement, isFocusWithin} from '../utils/shadowdom/DOMFunctions';\nimport {useEffect, useRef} from 'react';\nimport {useOverlayFocusContain} from '../overlays/Overlay';\nimport {useSlotId} from '../utils/useId';\n\nexport interface AriaDialogProps extends DOMProps, AriaLabelingProps {\n /**\n * The accessibility role for the dialog.\n * @default 'dialog'\n */\n role?: 'dialog' | 'alertdialog'\n}\n\nexport interface DialogAria {\n /** Props for the dialog container element. */\n dialogProps: DOMAttributes,\n\n /** Props for the dialog title element. */\n titleProps: DOMAttributes\n}\n\n/**\n * Provides the behavior and accessibility implementation for a dialog component.\n * A dialog is an overlay shown above other content in an application.\n */\nexport function useDialog(props: AriaDialogProps, ref: RefObject<FocusableElement | null>): DialogAria {\n let {\n role = 'dialog'\n } = props;\n let titleId: string | undefined = useSlotId();\n titleId = props['aria-label'] ? undefined : titleId;\n\n let isRefocusing = useRef(false);\n\n // Focus the dialog itself on mount, unless a child element is already focused.\n useEffect(() => {\n if (ref.current && !isFocusWithin(ref.current)) {\n focusSafely(ref.current);\n\n // Safari on iOS does not move the VoiceOver cursor to the dialog\n // or announce that it has opened until it has rendered. A workaround\n // is to wait for half a second, then blur and re-focus the dialog.\n let timeout = setTimeout(() => {\n // Check that the dialog is still focused, or focused was lost to the body.\n if (getActiveElement() === ref.current || getActiveElement() === document.body) {\n isRefocusing.current = true;\n if (ref.current) {\n ref.current.blur();\n focusSafely(ref.current);\n }\n isRefocusing.current = false;\n }\n }, 500);\n\n return () => {\n clearTimeout(timeout);\n };\n }\n }, [ref]);\n\n useOverlayFocusContain();\n\n // Warn in dev mode if the dialog has no accessible title.\n // This catches a common mistake where useDialog and useOverlayTriggerState\n // are used in the same component, causing the title element to not be\n // in the DOM when useSlotId queries for it.\n // Check the DOM element directly since aria-labelledby may be added by\n // wrapper components (e.g. RAC Dialog uses trigger ID as a fallback).\n let hasWarned = useRef(false);\n useEffect(() => {\n if (process.env.NODE_ENV !== 'production' && !hasWarned.current && ref.current) {\n let el = ref.current;\n let hasAriaLabel = el.hasAttribute('aria-label');\n let hasAriaLabelledby = el.hasAttribute('aria-labelledby');\n if (!hasAriaLabel && !hasAriaLabelledby) {\n console.warn(\n 'A dialog must have a title for accessibility. ' +\n 'Either provide an aria-label or aria-labelledby prop, or render a heading element inside the dialog.'\n );\n hasWarned.current = true;\n }\n }\n });\n\n // We do not use aria-modal due to a Safari bug which forces the first focusable element to be focused\n // on mount when inside an iframe, no matter which element we programmatically focus.\n // See https://bugs.webkit.org/show_bug.cgi?id=211934.\n // useModal sets aria-hidden on all elements outside the dialog, so the dialog will behave as a modal\n // even without aria-modal on the dialog itself.\n return {\n dialogProps: {\n ...filterDOMProps(props, {labelable: true}),\n role,\n tabIndex: -1,\n 'aria-labelledby': props['aria-labelledby'] || titleId,\n // Prevent blur events from reaching useOverlay, which may cause\n // popovers to close. Since focus is contained within the dialog,\n // we don't want this to occur due to the above useEffect.\n onBlur: e => {\n if (isRefocusing.current) {\n e.stopPropagation();\n }\n }\n },\n titleProps: {\n id: titleId\n }\n };\n}\n"],"names":[],"version":3,"file":"useDialog.cjs.map"}
1
+ {"mappings":";;;;;;;;;;;;;AAAA;;;;;;;;;;CAUC;;;;;;AAqCM,SAAS,0CACd,KAAsB,EACtB,GAAuC;IAEvC,IAAI,QAAC,OAAO,UAAS,GAAG;IACxB,IAAI,UAA8B,CAAA,GAAA,mCAAQ;IAC1C,UAAU,KAAK,CAAC,aAAa,GAAG,YAAY;IAE5C,IAAI,eAAe,CAAA,GAAA,mBAAK,EAAE;IAE1B,+EAA+E;IAC/E,CAAA,GAAA,sBAAQ,EAAE;QACR,IAAI,IAAI,OAAO,IAAI,CAAC,CAAA,GAAA,uCAAY,EAAE,IAAI,OAAO,GAAG;YAC9C,CAAA,GAAA,qCAAU,EAAE,IAAI,OAAO;YAEvB,iEAAiE;YACjE,qEAAqE;YACrE,mEAAmE;YACnE,IAAI,UAAU,WAAW;gBACvB,2EAA2E;gBAC3E,IAAI,CAAA,GAAA,0CAAe,QAAQ,IAAI,OAAO,IAAI,CAAA,GAAA,0CAAe,QAAQ,SAAS,IAAI,EAAE;oBAC9E,aAAa,OAAO,GAAG;oBACvB,IAAI,IAAI,OAAO,EAAE;wBACf,IAAI,OAAO,CAAC,IAAI;wBAChB,CAAA,GAAA,qCAAU,EAAE,IAAI,OAAO;oBACzB;oBACA,aAAa,OAAO,GAAG;gBACzB;YACF,GAAG;YAEH,OAAO;gBACL,aAAa;YACf;QACF;IACF,GAAG;QAAC;KAAI;IAER,CAAA,GAAA,gDAAqB;IAErB,0DAA0D;IAC1D,2EAA2E;IAC3E,sEAAsE;IACtE,4CAA4C;IAC5C,uEAAuE;IACvE,sEAAsE;IACtE,IAAI,YAAY,CAAA,GAAA,mBAAK,EAAE;IACvB,CAAA,GAAA,sBAAQ,EAAE;QACR,IAAI,QAAQ,GAAG,CAAC,QAAQ,KAAK,gBAAgB,CAAC,UAAU,OAAO,IAAI,IAAI,OAAO,EAAE;YAC9E,IAAI,KAAK,IAAI,OAAO;YACpB,IAAI,eAAe,GAAG,YAAY,CAAC;YACnC,IAAI,oBAAoB,GAAG,YAAY,CAAC;YACxC,IAAI,CAAC,gBAAgB,CAAC,mBAAmB;gBACvC,QAAQ,IAAI,CACV;gBAGF,UAAU,OAAO,GAAG;YACtB;QACF;IACF;IAEA,sGAAsG;IACtG,qFAAqF;IACrF,sDAAsD;IACtD,qGAAqG;IACrG,gDAAgD;IAChD,OAAO;QACL,aAAa;YACX,GAAG,CAAA,GAAA,wCAAa,EAAE,OAAO;gBAAC,WAAW;YAAI,EAAE;kBAC3C;YACA,UAAU;YACV,mBAAmB,KAAK,CAAC,kBAAkB,IAAI;YAC/C,gEAAgE;YAChE,iEAAiE;YACjE,0DAA0D;YAC1D,QAAQ,CAAA;gBACN,IAAI,aAAa,OAAO,EACtB,EAAE,eAAe;YAErB;QACF;QACA,YAAY;YACV,IAAI;QACN;IACF;AACF","sources":["packages/react-aria/src/dialog/useDialog.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 DOMAttributes,\n DOMProps,\n FocusableElement,\n RefObject\n} from '@react-types/shared';\nimport {filterDOMProps} from '../utils/filterDOMProps';\nimport {focusSafely} from '../interactions/focusSafely';\nimport {getActiveElement, isFocusWithin} from '../utils/shadowdom/DOMFunctions';\nimport {useEffect, useRef} from 'react';\nimport {useOverlayFocusContain} from '../overlays/Overlay';\nimport {useSlotId} from '../utils/useId';\n\nexport interface AriaDialogProps extends DOMProps, AriaLabelingProps {\n /**\n * The accessibility role for the dialog.\n *\n * @default 'dialog'\n */\n role?: 'dialog' | 'alertdialog';\n}\n\nexport interface DialogAria {\n /** Props for the dialog container element. */\n dialogProps: DOMAttributes;\n\n /** Props for the dialog title element. */\n titleProps: DOMAttributes;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a dialog component.\n * A dialog is an overlay shown above other content in an application.\n */\nexport function useDialog(\n props: AriaDialogProps,\n ref: RefObject<FocusableElement | null>\n): DialogAria {\n let {role = 'dialog'} = props;\n let titleId: string | undefined = useSlotId();\n titleId = props['aria-label'] ? undefined : titleId;\n\n let isRefocusing = useRef(false);\n\n // Focus the dialog itself on mount, unless a child element is already focused.\n useEffect(() => {\n if (ref.current && !isFocusWithin(ref.current)) {\n focusSafely(ref.current);\n\n // Safari on iOS does not move the VoiceOver cursor to the dialog\n // or announce that it has opened until it has rendered. A workaround\n // is to wait for half a second, then blur and re-focus the dialog.\n let timeout = setTimeout(() => {\n // Check that the dialog is still focused, or focused was lost to the body.\n if (getActiveElement() === ref.current || getActiveElement() === document.body) {\n isRefocusing.current = true;\n if (ref.current) {\n ref.current.blur();\n focusSafely(ref.current);\n }\n isRefocusing.current = false;\n }\n }, 500);\n\n return () => {\n clearTimeout(timeout);\n };\n }\n }, [ref]);\n\n useOverlayFocusContain();\n\n // Warn in dev mode if the dialog has no accessible title.\n // This catches a common mistake where useDialog and useOverlayTriggerState\n // are used in the same component, causing the title element to not be\n // in the DOM when useSlotId queries for it.\n // Check the DOM element directly since aria-labelledby may be added by\n // wrapper components (e.g. RAC Dialog uses trigger ID as a fallback).\n let hasWarned = useRef(false);\n useEffect(() => {\n if (process.env.NODE_ENV !== 'production' && !hasWarned.current && ref.current) {\n let el = ref.current;\n let hasAriaLabel = el.hasAttribute('aria-label');\n let hasAriaLabelledby = el.hasAttribute('aria-labelledby');\n if (!hasAriaLabel && !hasAriaLabelledby) {\n console.warn(\n 'A dialog must have a title for accessibility. ' +\n 'Either provide an aria-label or aria-labelledby prop, or render a heading element inside the dialog.'\n );\n hasWarned.current = true;\n }\n }\n });\n\n // We do not use aria-modal due to a Safari bug which forces the first focusable element to be focused\n // on mount when inside an iframe, no matter which element we programmatically focus.\n // See https://bugs.webkit.org/show_bug.cgi?id=211934.\n // useModal sets aria-hidden on all elements outside the dialog, so the dialog will behave as a modal\n // even without aria-modal on the dialog itself.\n return {\n dialogProps: {\n ...filterDOMProps(props, {labelable: true}),\n role,\n tabIndex: -1,\n 'aria-labelledby': props['aria-labelledby'] || titleId,\n // Prevent blur events from reaching useOverlay, which may cause\n // popovers to close. Since focus is contained within the dialog,\n // we don't want this to occur due to the above useEffect.\n onBlur: e => {\n if (isRefocusing.current) {\n e.stopPropagation();\n }\n }\n },\n titleProps: {\n id: titleId\n }\n };\n}\n"],"names":[],"version":3,"file":"useDialog.cjs.map"}
@@ -1 +1 @@
1
- {"mappings":";;;;;;;AAAA;;;;;;;;;;CAUC;;;;;;AA8BM,SAAS,0CAAU,KAAsB,EAAE,GAAuC;IACvF,IAAI,QACF,OAAO,UACR,GAAG;IACJ,IAAI,UAA8B,CAAA,GAAA,yCAAQ;IAC1C,UAAU,KAAK,CAAC,aAAa,GAAG,YAAY;IAE5C,IAAI,eAAe,CAAA,GAAA,aAAK,EAAE;IAE1B,+EAA+E;IAC/E,CAAA,GAAA,gBAAQ,EAAE;QACR,IAAI,IAAI,OAAO,IAAI,CAAC,CAAA,GAAA,yCAAY,EAAE,IAAI,OAAO,GAAG;YAC9C,CAAA,GAAA,yCAAU,EAAE,IAAI,OAAO;YAEvB,iEAAiE;YACjE,qEAAqE;YACrE,mEAAmE;YACnE,IAAI,UAAU,WAAW;gBACvB,2EAA2E;gBAC3E,IAAI,CAAA,GAAA,yCAAe,QAAQ,IAAI,OAAO,IAAI,CAAA,GAAA,yCAAe,QAAQ,SAAS,IAAI,EAAE;oBAC9E,aAAa,OAAO,GAAG;oBACvB,IAAI,IAAI,OAAO,EAAE;wBACf,IAAI,OAAO,CAAC,IAAI;wBAChB,CAAA,GAAA,yCAAU,EAAE,IAAI,OAAO;oBACzB;oBACA,aAAa,OAAO,GAAG;gBACzB;YACF,GAAG;YAEH,OAAO;gBACL,aAAa;YACf;QACF;IACF,GAAG;QAAC;KAAI;IAER,CAAA,GAAA,yCAAqB;IAErB,0DAA0D;IAC1D,2EAA2E;IAC3E,sEAAsE;IACtE,4CAA4C;IAC5C,uEAAuE;IACvE,sEAAsE;IACtE,IAAI,YAAY,CAAA,GAAA,aAAK,EAAE;IACvB,CAAA,GAAA,gBAAQ,EAAE;QACR,IAAI,QAAQ,GAAG,CAAC,QAAQ,KAAK,gBAAgB,CAAC,UAAU,OAAO,IAAI,IAAI,OAAO,EAAE;YAC9E,IAAI,KAAK,IAAI,OAAO;YACpB,IAAI,eAAe,GAAG,YAAY,CAAC;YACnC,IAAI,oBAAoB,GAAG,YAAY,CAAC;YACxC,IAAI,CAAC,gBAAgB,CAAC,mBAAmB;gBACvC,QAAQ,IAAI,CACV;gBAGF,UAAU,OAAO,GAAG;YACtB;QACF;IACF;IAEA,sGAAsG;IACtG,qFAAqF;IACrF,sDAAsD;IACtD,qGAAqG;IACrG,gDAAgD;IAChD,OAAO;QACL,aAAa;YACX,GAAG,CAAA,GAAA,yCAAa,EAAE,OAAO;gBAAC,WAAW;YAAI,EAAE;kBAC3C;YACA,UAAU;YACV,mBAAmB,KAAK,CAAC,kBAAkB,IAAI;YAC/C,gEAAgE;YAChE,iEAAiE;YACjE,0DAA0D;YAC1D,QAAQ,CAAA;gBACN,IAAI,aAAa,OAAO,EACtB,EAAE,eAAe;YAErB;QACF;QACA,YAAY;YACV,IAAI;QACN;IACF;AACF","sources":["packages/react-aria/src/dialog/useDialog.ts"],"sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps, DOMAttributes, DOMProps, FocusableElement, RefObject} from '@react-types/shared';\nimport {filterDOMProps} from '../utils/filterDOMProps';\nimport {focusSafely} from '../interactions/focusSafely';\nimport {getActiveElement, isFocusWithin} from '../utils/shadowdom/DOMFunctions';\nimport {useEffect, useRef} from 'react';\nimport {useOverlayFocusContain} from '../overlays/Overlay';\nimport {useSlotId} from '../utils/useId';\n\nexport interface AriaDialogProps extends DOMProps, AriaLabelingProps {\n /**\n * The accessibility role for the dialog.\n * @default 'dialog'\n */\n role?: 'dialog' | 'alertdialog'\n}\n\nexport interface DialogAria {\n /** Props for the dialog container element. */\n dialogProps: DOMAttributes,\n\n /** Props for the dialog title element. */\n titleProps: DOMAttributes\n}\n\n/**\n * Provides the behavior and accessibility implementation for a dialog component.\n * A dialog is an overlay shown above other content in an application.\n */\nexport function useDialog(props: AriaDialogProps, ref: RefObject<FocusableElement | null>): DialogAria {\n let {\n role = 'dialog'\n } = props;\n let titleId: string | undefined = useSlotId();\n titleId = props['aria-label'] ? undefined : titleId;\n\n let isRefocusing = useRef(false);\n\n // Focus the dialog itself on mount, unless a child element is already focused.\n useEffect(() => {\n if (ref.current && !isFocusWithin(ref.current)) {\n focusSafely(ref.current);\n\n // Safari on iOS does not move the VoiceOver cursor to the dialog\n // or announce that it has opened until it has rendered. A workaround\n // is to wait for half a second, then blur and re-focus the dialog.\n let timeout = setTimeout(() => {\n // Check that the dialog is still focused, or focused was lost to the body.\n if (getActiveElement() === ref.current || getActiveElement() === document.body) {\n isRefocusing.current = true;\n if (ref.current) {\n ref.current.blur();\n focusSafely(ref.current);\n }\n isRefocusing.current = false;\n }\n }, 500);\n\n return () => {\n clearTimeout(timeout);\n };\n }\n }, [ref]);\n\n useOverlayFocusContain();\n\n // Warn in dev mode if the dialog has no accessible title.\n // This catches a common mistake where useDialog and useOverlayTriggerState\n // are used in the same component, causing the title element to not be\n // in the DOM when useSlotId queries for it.\n // Check the DOM element directly since aria-labelledby may be added by\n // wrapper components (e.g. RAC Dialog uses trigger ID as a fallback).\n let hasWarned = useRef(false);\n useEffect(() => {\n if (process.env.NODE_ENV !== 'production' && !hasWarned.current && ref.current) {\n let el = ref.current;\n let hasAriaLabel = el.hasAttribute('aria-label');\n let hasAriaLabelledby = el.hasAttribute('aria-labelledby');\n if (!hasAriaLabel && !hasAriaLabelledby) {\n console.warn(\n 'A dialog must have a title for accessibility. ' +\n 'Either provide an aria-label or aria-labelledby prop, or render a heading element inside the dialog.'\n );\n hasWarned.current = true;\n }\n }\n });\n\n // We do not use aria-modal due to a Safari bug which forces the first focusable element to be focused\n // on mount when inside an iframe, no matter which element we programmatically focus.\n // See https://bugs.webkit.org/show_bug.cgi?id=211934.\n // useModal sets aria-hidden on all elements outside the dialog, so the dialog will behave as a modal\n // even without aria-modal on the dialog itself.\n return {\n dialogProps: {\n ...filterDOMProps(props, {labelable: true}),\n role,\n tabIndex: -1,\n 'aria-labelledby': props['aria-labelledby'] || titleId,\n // Prevent blur events from reaching useOverlay, which may cause\n // popovers to close. Since focus is contained within the dialog,\n // we don't want this to occur due to the above useEffect.\n onBlur: e => {\n if (isRefocusing.current) {\n e.stopPropagation();\n }\n }\n },\n titleProps: {\n id: titleId\n }\n };\n}\n"],"names":[],"version":3,"file":"useDialog.js.map"}
1
+ {"mappings":";;;;;;;AAAA;;;;;;;;;;CAUC;;;;;;AAqCM,SAAS,0CACd,KAAsB,EACtB,GAAuC;IAEvC,IAAI,QAAC,OAAO,UAAS,GAAG;IACxB,IAAI,UAA8B,CAAA,GAAA,yCAAQ;IAC1C,UAAU,KAAK,CAAC,aAAa,GAAG,YAAY;IAE5C,IAAI,eAAe,CAAA,GAAA,aAAK,EAAE;IAE1B,+EAA+E;IAC/E,CAAA,GAAA,gBAAQ,EAAE;QACR,IAAI,IAAI,OAAO,IAAI,CAAC,CAAA,GAAA,yCAAY,EAAE,IAAI,OAAO,GAAG;YAC9C,CAAA,GAAA,yCAAU,EAAE,IAAI,OAAO;YAEvB,iEAAiE;YACjE,qEAAqE;YACrE,mEAAmE;YACnE,IAAI,UAAU,WAAW;gBACvB,2EAA2E;gBAC3E,IAAI,CAAA,GAAA,yCAAe,QAAQ,IAAI,OAAO,IAAI,CAAA,GAAA,yCAAe,QAAQ,SAAS,IAAI,EAAE;oBAC9E,aAAa,OAAO,GAAG;oBACvB,IAAI,IAAI,OAAO,EAAE;wBACf,IAAI,OAAO,CAAC,IAAI;wBAChB,CAAA,GAAA,yCAAU,EAAE,IAAI,OAAO;oBACzB;oBACA,aAAa,OAAO,GAAG;gBACzB;YACF,GAAG;YAEH,OAAO;gBACL,aAAa;YACf;QACF;IACF,GAAG;QAAC;KAAI;IAER,CAAA,GAAA,yCAAqB;IAErB,0DAA0D;IAC1D,2EAA2E;IAC3E,sEAAsE;IACtE,4CAA4C;IAC5C,uEAAuE;IACvE,sEAAsE;IACtE,IAAI,YAAY,CAAA,GAAA,aAAK,EAAE;IACvB,CAAA,GAAA,gBAAQ,EAAE;QACR,IAAI,QAAQ,GAAG,CAAC,QAAQ,KAAK,gBAAgB,CAAC,UAAU,OAAO,IAAI,IAAI,OAAO,EAAE;YAC9E,IAAI,KAAK,IAAI,OAAO;YACpB,IAAI,eAAe,GAAG,YAAY,CAAC;YACnC,IAAI,oBAAoB,GAAG,YAAY,CAAC;YACxC,IAAI,CAAC,gBAAgB,CAAC,mBAAmB;gBACvC,QAAQ,IAAI,CACV;gBAGF,UAAU,OAAO,GAAG;YACtB;QACF;IACF;IAEA,sGAAsG;IACtG,qFAAqF;IACrF,sDAAsD;IACtD,qGAAqG;IACrG,gDAAgD;IAChD,OAAO;QACL,aAAa;YACX,GAAG,CAAA,GAAA,yCAAa,EAAE,OAAO;gBAAC,WAAW;YAAI,EAAE;kBAC3C;YACA,UAAU;YACV,mBAAmB,KAAK,CAAC,kBAAkB,IAAI;YAC/C,gEAAgE;YAChE,iEAAiE;YACjE,0DAA0D;YAC1D,QAAQ,CAAA;gBACN,IAAI,aAAa,OAAO,EACtB,EAAE,eAAe;YAErB;QACF;QACA,YAAY;YACV,IAAI;QACN;IACF;AACF","sources":["packages/react-aria/src/dialog/useDialog.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 DOMAttributes,\n DOMProps,\n FocusableElement,\n RefObject\n} from '@react-types/shared';\nimport {filterDOMProps} from '../utils/filterDOMProps';\nimport {focusSafely} from '../interactions/focusSafely';\nimport {getActiveElement, isFocusWithin} from '../utils/shadowdom/DOMFunctions';\nimport {useEffect, useRef} from 'react';\nimport {useOverlayFocusContain} from '../overlays/Overlay';\nimport {useSlotId} from '../utils/useId';\n\nexport interface AriaDialogProps extends DOMProps, AriaLabelingProps {\n /**\n * The accessibility role for the dialog.\n *\n * @default 'dialog'\n */\n role?: 'dialog' | 'alertdialog';\n}\n\nexport interface DialogAria {\n /** Props for the dialog container element. */\n dialogProps: DOMAttributes;\n\n /** Props for the dialog title element. */\n titleProps: DOMAttributes;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a dialog component.\n * A dialog is an overlay shown above other content in an application.\n */\nexport function useDialog(\n props: AriaDialogProps,\n ref: RefObject<FocusableElement | null>\n): DialogAria {\n let {role = 'dialog'} = props;\n let titleId: string | undefined = useSlotId();\n titleId = props['aria-label'] ? undefined : titleId;\n\n let isRefocusing = useRef(false);\n\n // Focus the dialog itself on mount, unless a child element is already focused.\n useEffect(() => {\n if (ref.current && !isFocusWithin(ref.current)) {\n focusSafely(ref.current);\n\n // Safari on iOS does not move the VoiceOver cursor to the dialog\n // or announce that it has opened until it has rendered. A workaround\n // is to wait for half a second, then blur and re-focus the dialog.\n let timeout = setTimeout(() => {\n // Check that the dialog is still focused, or focused was lost to the body.\n if (getActiveElement() === ref.current || getActiveElement() === document.body) {\n isRefocusing.current = true;\n if (ref.current) {\n ref.current.blur();\n focusSafely(ref.current);\n }\n isRefocusing.current = false;\n }\n }, 500);\n\n return () => {\n clearTimeout(timeout);\n };\n }\n }, [ref]);\n\n useOverlayFocusContain();\n\n // Warn in dev mode if the dialog has no accessible title.\n // This catches a common mistake where useDialog and useOverlayTriggerState\n // are used in the same component, causing the title element to not be\n // in the DOM when useSlotId queries for it.\n // Check the DOM element directly since aria-labelledby may be added by\n // wrapper components (e.g. RAC Dialog uses trigger ID as a fallback).\n let hasWarned = useRef(false);\n useEffect(() => {\n if (process.env.NODE_ENV !== 'production' && !hasWarned.current && ref.current) {\n let el = ref.current;\n let hasAriaLabel = el.hasAttribute('aria-label');\n let hasAriaLabelledby = el.hasAttribute('aria-labelledby');\n if (!hasAriaLabel && !hasAriaLabelledby) {\n console.warn(\n 'A dialog must have a title for accessibility. ' +\n 'Either provide an aria-label or aria-labelledby prop, or render a heading element inside the dialog.'\n );\n hasWarned.current = true;\n }\n }\n });\n\n // We do not use aria-modal due to a Safari bug which forces the first focusable element to be focused\n // on mount when inside an iframe, no matter which element we programmatically focus.\n // See https://bugs.webkit.org/show_bug.cgi?id=211934.\n // useModal sets aria-hidden on all elements outside the dialog, so the dialog will behave as a modal\n // even without aria-modal on the dialog itself.\n return {\n dialogProps: {\n ...filterDOMProps(props, {labelable: true}),\n role,\n tabIndex: -1,\n 'aria-labelledby': props['aria-labelledby'] || titleId,\n // Prevent blur events from reaching useOverlay, which may cause\n // popovers to close. Since focus is contained within the dialog,\n // we don't want this to occur due to the above useEffect.\n onBlur: e => {\n if (isRefocusing.current) {\n e.stopPropagation();\n }\n }\n },\n titleProps: {\n id: titleId\n }\n };\n}\n"],"names":[],"version":3,"file":"useDialog.js.map"}
@@ -1 +1 @@
1
- {"mappings":";;;;;;;AAAA;;;;;;;;;;CAUC;;;;;;AA8BM,SAAS,0CAAU,KAAsB,EAAE,GAAuC;IACvF,IAAI,QACF,OAAO,UACR,GAAG;IACJ,IAAI,UAA8B,CAAA,GAAA,yCAAQ;IAC1C,UAAU,KAAK,CAAC,aAAa,GAAG,YAAY;IAE5C,IAAI,eAAe,CAAA,GAAA,aAAK,EAAE;IAE1B,+EAA+E;IAC/E,CAAA,GAAA,gBAAQ,EAAE;QACR,IAAI,IAAI,OAAO,IAAI,CAAC,CAAA,GAAA,yCAAY,EAAE,IAAI,OAAO,GAAG;YAC9C,CAAA,GAAA,yCAAU,EAAE,IAAI,OAAO;YAEvB,iEAAiE;YACjE,qEAAqE;YACrE,mEAAmE;YACnE,IAAI,UAAU,WAAW;gBACvB,2EAA2E;gBAC3E,IAAI,CAAA,GAAA,yCAAe,QAAQ,IAAI,OAAO,IAAI,CAAA,GAAA,yCAAe,QAAQ,SAAS,IAAI,EAAE;oBAC9E,aAAa,OAAO,GAAG;oBACvB,IAAI,IAAI,OAAO,EAAE;wBACf,IAAI,OAAO,CAAC,IAAI;wBAChB,CAAA,GAAA,yCAAU,EAAE,IAAI,OAAO;oBACzB;oBACA,aAAa,OAAO,GAAG;gBACzB;YACF,GAAG;YAEH,OAAO;gBACL,aAAa;YACf;QACF;IACF,GAAG;QAAC;KAAI;IAER,CAAA,GAAA,yCAAqB;IAErB,0DAA0D;IAC1D,2EAA2E;IAC3E,sEAAsE;IACtE,4CAA4C;IAC5C,uEAAuE;IACvE,sEAAsE;IACtE,IAAI,YAAY,CAAA,GAAA,aAAK,EAAE;IACvB,CAAA,GAAA,gBAAQ,EAAE;QACR,IAAI,QAAQ,GAAG,CAAC,QAAQ,KAAK,gBAAgB,CAAC,UAAU,OAAO,IAAI,IAAI,OAAO,EAAE;YAC9E,IAAI,KAAK,IAAI,OAAO;YACpB,IAAI,eAAe,GAAG,YAAY,CAAC;YACnC,IAAI,oBAAoB,GAAG,YAAY,CAAC;YACxC,IAAI,CAAC,gBAAgB,CAAC,mBAAmB;gBACvC,QAAQ,IAAI,CACV;gBAGF,UAAU,OAAO,GAAG;YACtB;QACF;IACF;IAEA,sGAAsG;IACtG,qFAAqF;IACrF,sDAAsD;IACtD,qGAAqG;IACrG,gDAAgD;IAChD,OAAO;QACL,aAAa;YACX,GAAG,CAAA,GAAA,yCAAa,EAAE,OAAO;gBAAC,WAAW;YAAI,EAAE;kBAC3C;YACA,UAAU;YACV,mBAAmB,KAAK,CAAC,kBAAkB,IAAI;YAC/C,gEAAgE;YAChE,iEAAiE;YACjE,0DAA0D;YAC1D,QAAQ,CAAA;gBACN,IAAI,aAAa,OAAO,EACtB,EAAE,eAAe;YAErB;QACF;QACA,YAAY;YACV,IAAI;QACN;IACF;AACF","sources":["packages/react-aria/src/dialog/useDialog.ts"],"sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps, DOMAttributes, DOMProps, FocusableElement, RefObject} from '@react-types/shared';\nimport {filterDOMProps} from '../utils/filterDOMProps';\nimport {focusSafely} from '../interactions/focusSafely';\nimport {getActiveElement, isFocusWithin} from '../utils/shadowdom/DOMFunctions';\nimport {useEffect, useRef} from 'react';\nimport {useOverlayFocusContain} from '../overlays/Overlay';\nimport {useSlotId} from '../utils/useId';\n\nexport interface AriaDialogProps extends DOMProps, AriaLabelingProps {\n /**\n * The accessibility role for the dialog.\n * @default 'dialog'\n */\n role?: 'dialog' | 'alertdialog'\n}\n\nexport interface DialogAria {\n /** Props for the dialog container element. */\n dialogProps: DOMAttributes,\n\n /** Props for the dialog title element. */\n titleProps: DOMAttributes\n}\n\n/**\n * Provides the behavior and accessibility implementation for a dialog component.\n * A dialog is an overlay shown above other content in an application.\n */\nexport function useDialog(props: AriaDialogProps, ref: RefObject<FocusableElement | null>): DialogAria {\n let {\n role = 'dialog'\n } = props;\n let titleId: string | undefined = useSlotId();\n titleId = props['aria-label'] ? undefined : titleId;\n\n let isRefocusing = useRef(false);\n\n // Focus the dialog itself on mount, unless a child element is already focused.\n useEffect(() => {\n if (ref.current && !isFocusWithin(ref.current)) {\n focusSafely(ref.current);\n\n // Safari on iOS does not move the VoiceOver cursor to the dialog\n // or announce that it has opened until it has rendered. A workaround\n // is to wait for half a second, then blur and re-focus the dialog.\n let timeout = setTimeout(() => {\n // Check that the dialog is still focused, or focused was lost to the body.\n if (getActiveElement() === ref.current || getActiveElement() === document.body) {\n isRefocusing.current = true;\n if (ref.current) {\n ref.current.blur();\n focusSafely(ref.current);\n }\n isRefocusing.current = false;\n }\n }, 500);\n\n return () => {\n clearTimeout(timeout);\n };\n }\n }, [ref]);\n\n useOverlayFocusContain();\n\n // Warn in dev mode if the dialog has no accessible title.\n // This catches a common mistake where useDialog and useOverlayTriggerState\n // are used in the same component, causing the title element to not be\n // in the DOM when useSlotId queries for it.\n // Check the DOM element directly since aria-labelledby may be added by\n // wrapper components (e.g. RAC Dialog uses trigger ID as a fallback).\n let hasWarned = useRef(false);\n useEffect(() => {\n if (process.env.NODE_ENV !== 'production' && !hasWarned.current && ref.current) {\n let el = ref.current;\n let hasAriaLabel = el.hasAttribute('aria-label');\n let hasAriaLabelledby = el.hasAttribute('aria-labelledby');\n if (!hasAriaLabel && !hasAriaLabelledby) {\n console.warn(\n 'A dialog must have a title for accessibility. ' +\n 'Either provide an aria-label or aria-labelledby prop, or render a heading element inside the dialog.'\n );\n hasWarned.current = true;\n }\n }\n });\n\n // We do not use aria-modal due to a Safari bug which forces the first focusable element to be focused\n // on mount when inside an iframe, no matter which element we programmatically focus.\n // See https://bugs.webkit.org/show_bug.cgi?id=211934.\n // useModal sets aria-hidden on all elements outside the dialog, so the dialog will behave as a modal\n // even without aria-modal on the dialog itself.\n return {\n dialogProps: {\n ...filterDOMProps(props, {labelable: true}),\n role,\n tabIndex: -1,\n 'aria-labelledby': props['aria-labelledby'] || titleId,\n // Prevent blur events from reaching useOverlay, which may cause\n // popovers to close. Since focus is contained within the dialog,\n // we don't want this to occur due to the above useEffect.\n onBlur: e => {\n if (isRefocusing.current) {\n e.stopPropagation();\n }\n }\n },\n titleProps: {\n id: titleId\n }\n };\n}\n"],"names":[],"version":3,"file":"useDialog.mjs.map"}
1
+ {"mappings":";;;;;;;AAAA;;;;;;;;;;CAUC;;;;;;AAqCM,SAAS,0CACd,KAAsB,EACtB,GAAuC;IAEvC,IAAI,QAAC,OAAO,UAAS,GAAG;IACxB,IAAI,UAA8B,CAAA,GAAA,yCAAQ;IAC1C,UAAU,KAAK,CAAC,aAAa,GAAG,YAAY;IAE5C,IAAI,eAAe,CAAA,GAAA,aAAK,EAAE;IAE1B,+EAA+E;IAC/E,CAAA,GAAA,gBAAQ,EAAE;QACR,IAAI,IAAI,OAAO,IAAI,CAAC,CAAA,GAAA,yCAAY,EAAE,IAAI,OAAO,GAAG;YAC9C,CAAA,GAAA,yCAAU,EAAE,IAAI,OAAO;YAEvB,iEAAiE;YACjE,qEAAqE;YACrE,mEAAmE;YACnE,IAAI,UAAU,WAAW;gBACvB,2EAA2E;gBAC3E,IAAI,CAAA,GAAA,yCAAe,QAAQ,IAAI,OAAO,IAAI,CAAA,GAAA,yCAAe,QAAQ,SAAS,IAAI,EAAE;oBAC9E,aAAa,OAAO,GAAG;oBACvB,IAAI,IAAI,OAAO,EAAE;wBACf,IAAI,OAAO,CAAC,IAAI;wBAChB,CAAA,GAAA,yCAAU,EAAE,IAAI,OAAO;oBACzB;oBACA,aAAa,OAAO,GAAG;gBACzB;YACF,GAAG;YAEH,OAAO;gBACL,aAAa;YACf;QACF;IACF,GAAG;QAAC;KAAI;IAER,CAAA,GAAA,yCAAqB;IAErB,0DAA0D;IAC1D,2EAA2E;IAC3E,sEAAsE;IACtE,4CAA4C;IAC5C,uEAAuE;IACvE,sEAAsE;IACtE,IAAI,YAAY,CAAA,GAAA,aAAK,EAAE;IACvB,CAAA,GAAA,gBAAQ,EAAE;QACR,IAAI,QAAQ,GAAG,CAAC,QAAQ,KAAK,gBAAgB,CAAC,UAAU,OAAO,IAAI,IAAI,OAAO,EAAE;YAC9E,IAAI,KAAK,IAAI,OAAO;YACpB,IAAI,eAAe,GAAG,YAAY,CAAC;YACnC,IAAI,oBAAoB,GAAG,YAAY,CAAC;YACxC,IAAI,CAAC,gBAAgB,CAAC,mBAAmB;gBACvC,QAAQ,IAAI,CACV;gBAGF,UAAU,OAAO,GAAG;YACtB;QACF;IACF;IAEA,sGAAsG;IACtG,qFAAqF;IACrF,sDAAsD;IACtD,qGAAqG;IACrG,gDAAgD;IAChD,OAAO;QACL,aAAa;YACX,GAAG,CAAA,GAAA,yCAAa,EAAE,OAAO;gBAAC,WAAW;YAAI,EAAE;kBAC3C;YACA,UAAU;YACV,mBAAmB,KAAK,CAAC,kBAAkB,IAAI;YAC/C,gEAAgE;YAChE,iEAAiE;YACjE,0DAA0D;YAC1D,QAAQ,CAAA;gBACN,IAAI,aAAa,OAAO,EACtB,EAAE,eAAe;YAErB;QACF;QACA,YAAY;YACV,IAAI;QACN;IACF;AACF","sources":["packages/react-aria/src/dialog/useDialog.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 DOMAttributes,\n DOMProps,\n FocusableElement,\n RefObject\n} from '@react-types/shared';\nimport {filterDOMProps} from '../utils/filterDOMProps';\nimport {focusSafely} from '../interactions/focusSafely';\nimport {getActiveElement, isFocusWithin} from '../utils/shadowdom/DOMFunctions';\nimport {useEffect, useRef} from 'react';\nimport {useOverlayFocusContain} from '../overlays/Overlay';\nimport {useSlotId} from '../utils/useId';\n\nexport interface AriaDialogProps extends DOMProps, AriaLabelingProps {\n /**\n * The accessibility role for the dialog.\n *\n * @default 'dialog'\n */\n role?: 'dialog' | 'alertdialog';\n}\n\nexport interface DialogAria {\n /** Props for the dialog container element. */\n dialogProps: DOMAttributes;\n\n /** Props for the dialog title element. */\n titleProps: DOMAttributes;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a dialog component.\n * A dialog is an overlay shown above other content in an application.\n */\nexport function useDialog(\n props: AriaDialogProps,\n ref: RefObject<FocusableElement | null>\n): DialogAria {\n let {role = 'dialog'} = props;\n let titleId: string | undefined = useSlotId();\n titleId = props['aria-label'] ? undefined : titleId;\n\n let isRefocusing = useRef(false);\n\n // Focus the dialog itself on mount, unless a child element is already focused.\n useEffect(() => {\n if (ref.current && !isFocusWithin(ref.current)) {\n focusSafely(ref.current);\n\n // Safari on iOS does not move the VoiceOver cursor to the dialog\n // or announce that it has opened until it has rendered. A workaround\n // is to wait for half a second, then blur and re-focus the dialog.\n let timeout = setTimeout(() => {\n // Check that the dialog is still focused, or focused was lost to the body.\n if (getActiveElement() === ref.current || getActiveElement() === document.body) {\n isRefocusing.current = true;\n if (ref.current) {\n ref.current.blur();\n focusSafely(ref.current);\n }\n isRefocusing.current = false;\n }\n }, 500);\n\n return () => {\n clearTimeout(timeout);\n };\n }\n }, [ref]);\n\n useOverlayFocusContain();\n\n // Warn in dev mode if the dialog has no accessible title.\n // This catches a common mistake where useDialog and useOverlayTriggerState\n // are used in the same component, causing the title element to not be\n // in the DOM when useSlotId queries for it.\n // Check the DOM element directly since aria-labelledby may be added by\n // wrapper components (e.g. RAC Dialog uses trigger ID as a fallback).\n let hasWarned = useRef(false);\n useEffect(() => {\n if (process.env.NODE_ENV !== 'production' && !hasWarned.current && ref.current) {\n let el = ref.current;\n let hasAriaLabel = el.hasAttribute('aria-label');\n let hasAriaLabelledby = el.hasAttribute('aria-labelledby');\n if (!hasAriaLabel && !hasAriaLabelledby) {\n console.warn(\n 'A dialog must have a title for accessibility. ' +\n 'Either provide an aria-label or aria-labelledby prop, or render a heading element inside the dialog.'\n );\n hasWarned.current = true;\n }\n }\n });\n\n // We do not use aria-modal due to a Safari bug which forces the first focusable element to be focused\n // on mount when inside an iframe, no matter which element we programmatically focus.\n // See https://bugs.webkit.org/show_bug.cgi?id=211934.\n // useModal sets aria-hidden on all elements outside the dialog, so the dialog will behave as a modal\n // even without aria-modal on the dialog itself.\n return {\n dialogProps: {\n ...filterDOMProps(props, {labelable: true}),\n role,\n tabIndex: -1,\n 'aria-labelledby': props['aria-labelledby'] || titleId,\n // Prevent blur events from reaching useOverlay, which may cause\n // popovers to close. Since focus is contained within the dialog,\n // we don't want this to occur due to the above useEffect.\n onBlur: e => {\n if (isRefocusing.current) {\n e.stopPropagation();\n }\n }\n },\n titleProps: {\n id: titleId\n }\n };\n}\n"],"names":[],"version":3,"file":"useDialog.mjs.map"}
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/react-aria/src/disclosure/useDisclosure.ts"],"sourcesContent":["/*\n * Copyright 2024 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 {AriaButtonProps} from '../button/useButton';\n\nimport {DisclosureState} from 'react-stately/useDisclosureState';\nimport {flushSync} from 'react-dom';\nimport {HTMLAttributes, RefObject, useCallback, useEffect, useRef} from 'react';\nimport {useEvent} from '../utils/useEvent';\nimport {useId} from '../utils/useId';\nimport {useIsSSR} from '../ssr/SSRProvider';\nimport {useLayoutEffect} from '../utils/useLayoutEffect';\n\nexport interface AriaDisclosureProps {\n /** Whether the disclosure is disabled. */\n isDisabled?: boolean,\n /** Handler that is called when the disclosure's expanded state changes. */\n onExpandedChange?: (isExpanded: boolean) => void,\n /** Whether the disclosure is expanded (controlled). */\n isExpanded?: boolean,\n /** Whether the disclosure is expanded by default (uncontrolled). */\n defaultExpanded?: boolean\n}\n\nexport interface DisclosureAria {\n /** Props for the disclosure button. */\n buttonProps: AriaButtonProps,\n /** Props for the disclosure panel. */\n panelProps: HTMLAttributes<HTMLElement>\n}\n\n/**\n * Provides the behavior and accessibility implementation for a disclosure component.\n * @param props - Props for the disclosure.\n * @param state - State for the disclosure, as returned by `useDisclosureState`.\n * @param ref - A ref for the disclosure panel.\n */\nexport function useDisclosure(props: AriaDisclosureProps, state: DisclosureState, ref: RefObject<HTMLElement | null>): DisclosureAria {\n let {\n isDisabled\n } = props;\n let triggerId = useId();\n let panelId = useId();\n let isSSR = useIsSSR();\n\n let raf = useRef<number | null>(null);\n\n let handleBeforeMatch = useCallback(() => {\n // Wait a frame to revert browser's removal of hidden attribute\n raf.current = requestAnimationFrame(() => {\n if (ref.current) {\n ref.current.setAttribute('hidden', 'until-found');\n }\n });\n // Force sync state update\n flushSync(() => {\n state.toggle();\n });\n }, [ref, state]);\n\n // @ts-ignore https://github.com/facebook/react/pull/24741\n useEvent(ref, 'beforematch', handleBeforeMatch);\n\n let isExpandedRef = useRef<boolean | null>(null);\n useLayoutEffect(() => {\n // Cancel any pending RAF to prevent stale updates\n if (raf.current) {\n cancelAnimationFrame(raf.current);\n }\n if (ref.current && !isSSR) {\n let panel = ref.current;\n\n if (isExpandedRef.current == null || typeof panel.getAnimations !== 'function') {\n // On initial render (and in tests), set attributes without animation.\n if (state.isExpanded) {\n panel.removeAttribute('hidden');\n panel.style.setProperty('--disclosure-panel-width', 'auto');\n panel.style.setProperty('--disclosure-panel-height', 'auto');\n } else {\n panel.setAttribute('hidden', 'until-found');\n panel.style.setProperty('--disclosure-panel-width', '0px');\n panel.style.setProperty('--disclosure-panel-height', '0px');\n }\n } else if (state.isExpanded !== isExpandedRef.current) {\n if (state.isExpanded) {\n panel.removeAttribute('hidden');\n\n // Set the width and height as pixels so they can be animated.\n panel.style.setProperty('--disclosure-panel-width', panel.scrollWidth + 'px');\n panel.style.setProperty('--disclosure-panel-height', panel.scrollHeight + 'px');\n\n Promise.all(panel.getAnimations().map(a => a.finished))\n .then(() => {\n // After the animations complete, switch back to auto so the content can resize.\n panel.style.setProperty('--disclosure-panel-width', 'auto');\n panel.style.setProperty('--disclosure-panel-height', 'auto');\n })\n .catch(() => {});\n } else {\n panel.style.setProperty('--disclosure-panel-width', panel.scrollWidth + 'px');\n panel.style.setProperty('--disclosure-panel-height', panel.scrollHeight + 'px');\n\n // Force style re-calculation to trigger animations.\n window.getComputedStyle(panel).height;\n\n // Animate to zero size.\n panel.style.setProperty('--disclosure-panel-width', '0px');\n panel.style.setProperty('--disclosure-panel-height', '0px');\n\n // Wait for animations to apply the hidden attribute.\n Promise.all(panel.getAnimations().map(a => a.finished))\n .then(() => panel.setAttribute('hidden', 'until-found'))\n .catch(() => {});\n }\n }\n\n isExpandedRef.current = state.isExpanded;\n }\n }, [isDisabled, ref, state.isExpanded, isSSR]);\n\n useEffect(() => {\n return () => {\n if (raf.current) {\n cancelAnimationFrame(raf.current);\n }\n };\n }, []);\n\n return {\n buttonProps: {\n id: triggerId,\n 'aria-expanded': state.isExpanded,\n 'aria-controls': panelId,\n onPress: (e) => {\n if (!isDisabled && e.pointerType !== 'keyboard') {\n state.toggle();\n }\n },\n isDisabled,\n onPressStart(e) {\n if (e.pointerType === 'keyboard' && !isDisabled) {\n state.toggle();\n }\n }\n },\n panelProps: {\n id: panelId,\n // This can be overridden at the panel element level.\n role: 'group',\n 'aria-labelledby': triggerId,\n 'aria-hidden': !state.isExpanded,\n hidden: isSSR ? !state.isExpanded : undefined\n }\n };\n}\n"],"names":[],"version":3,"file":"useDisclosure.cjs.map"}
1
+ {"mappings":"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","sources":["packages/react-aria/src/disclosure/useDisclosure.ts"],"sourcesContent":["/*\n * Copyright 2024 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 {AriaButtonProps} from '../button/useButton';\n\nimport {DisclosureState} from 'react-stately/useDisclosureState';\nimport {flushSync} from 'react-dom';\nimport {HTMLAttributes, RefObject, useCallback, useEffect, useRef} from 'react';\nimport {useEvent} from '../utils/useEvent';\nimport {useId} from '../utils/useId';\nimport {useIsSSR} from '../ssr/SSRProvider';\nimport {useLayoutEffect} from '../utils/useLayoutEffect';\n\nexport interface AriaDisclosureProps {\n /** Whether the disclosure is disabled. */\n isDisabled?: boolean;\n /** Handler that is called when the disclosure's expanded state changes. */\n onExpandedChange?: (isExpanded: boolean) => void;\n /** Whether the disclosure is expanded (controlled). */\n isExpanded?: boolean;\n /** Whether the disclosure is expanded by default (uncontrolled). */\n defaultExpanded?: boolean;\n}\n\nexport interface DisclosureAria {\n /** Props for the disclosure button. */\n buttonProps: AriaButtonProps;\n /** Props for the disclosure panel. */\n panelProps: HTMLAttributes<HTMLElement>;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a disclosure component.\n *\n * @param props - Props for the disclosure.\n * @param state - State for the disclosure, as returned by `useDisclosureState`.\n * @param ref - A ref for the disclosure panel.\n */\nexport function useDisclosure(\n props: AriaDisclosureProps,\n state: DisclosureState,\n ref: RefObject<HTMLElement | null>\n): DisclosureAria {\n let {isDisabled} = props;\n let triggerId = useId();\n let panelId = useId();\n let isSSR = useIsSSR();\n\n let raf = useRef<number | null>(null);\n\n let handleBeforeMatch = useCallback(() => {\n // Wait a frame to revert browser's removal of hidden attribute\n raf.current = requestAnimationFrame(() => {\n if (ref.current) {\n ref.current.setAttribute('hidden', 'until-found');\n }\n });\n // Force sync state update\n flushSync(() => {\n state.toggle();\n });\n }, [ref, state]);\n\n // @ts-ignore https://github.com/facebook/react/pull/24741\n useEvent(ref, 'beforematch', handleBeforeMatch);\n\n let isExpandedRef = useRef<boolean | null>(null);\n useLayoutEffect(() => {\n // Cancel any pending RAF to prevent stale updates\n if (raf.current) {\n cancelAnimationFrame(raf.current);\n }\n if (ref.current && !isSSR) {\n let panel = ref.current;\n\n if (isExpandedRef.current == null || typeof panel.getAnimations !== 'function') {\n // On initial render (and in tests), set attributes without animation.\n if (state.isExpanded) {\n panel.removeAttribute('hidden');\n panel.style.setProperty('--disclosure-panel-width', 'auto');\n panel.style.setProperty('--disclosure-panel-height', 'auto');\n } else {\n panel.setAttribute('hidden', 'until-found');\n panel.style.setProperty('--disclosure-panel-width', '0px');\n panel.style.setProperty('--disclosure-panel-height', '0px');\n }\n } else if (state.isExpanded !== isExpandedRef.current) {\n if (state.isExpanded) {\n panel.removeAttribute('hidden');\n\n // Set the width and height as pixels so they can be animated.\n panel.style.setProperty('--disclosure-panel-width', panel.scrollWidth + 'px');\n panel.style.setProperty('--disclosure-panel-height', panel.scrollHeight + 'px');\n\n Promise.all(panel.getAnimations().map(a => a.finished))\n .then(() => {\n // After the animations complete, switch back to auto so the content can resize.\n panel.style.setProperty('--disclosure-panel-width', 'auto');\n panel.style.setProperty('--disclosure-panel-height', 'auto');\n })\n .catch(() => {});\n } else {\n panel.style.setProperty('--disclosure-panel-width', panel.scrollWidth + 'px');\n panel.style.setProperty('--disclosure-panel-height', panel.scrollHeight + 'px');\n\n // Force style re-calculation to trigger animations.\n window.getComputedStyle(panel).height;\n\n // Animate to zero size.\n panel.style.setProperty('--disclosure-panel-width', '0px');\n panel.style.setProperty('--disclosure-panel-height', '0px');\n\n // Wait for animations to apply the hidden attribute.\n Promise.all(panel.getAnimations().map(a => a.finished))\n .then(() => panel.setAttribute('hidden', 'until-found'))\n .catch(() => {});\n }\n }\n\n isExpandedRef.current = state.isExpanded;\n }\n }, [isDisabled, ref, state.isExpanded, isSSR]);\n\n useEffect(() => {\n return () => {\n if (raf.current) {\n cancelAnimationFrame(raf.current);\n }\n };\n }, []);\n\n return {\n buttonProps: {\n id: triggerId,\n 'aria-expanded': state.isExpanded,\n 'aria-controls': panelId,\n onPress: e => {\n if (!isDisabled && e.pointerType !== 'keyboard') {\n state.toggle();\n }\n },\n isDisabled,\n onPressStart(e) {\n if (e.pointerType === 'keyboard' && !isDisabled) {\n state.toggle();\n }\n }\n },\n panelProps: {\n id: panelId,\n // This can be overridden at the panel element level.\n role: 'group',\n 'aria-labelledby': triggerId,\n 'aria-hidden': !state.isExpanded,\n hidden: isSSR ? !state.isExpanded : undefined\n }\n };\n}\n"],"names":[],"version":3,"file":"useDisclosure.cjs.map"}
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/react-aria/src/disclosure/useDisclosure.ts"],"sourcesContent":["/*\n * Copyright 2024 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 {AriaButtonProps} from '../button/useButton';\n\nimport {DisclosureState} from 'react-stately/useDisclosureState';\nimport {flushSync} from 'react-dom';\nimport {HTMLAttributes, RefObject, useCallback, useEffect, useRef} from 'react';\nimport {useEvent} from '../utils/useEvent';\nimport {useId} from '../utils/useId';\nimport {useIsSSR} from '../ssr/SSRProvider';\nimport {useLayoutEffect} from '../utils/useLayoutEffect';\n\nexport interface AriaDisclosureProps {\n /** Whether the disclosure is disabled. */\n isDisabled?: boolean,\n /** Handler that is called when the disclosure's expanded state changes. */\n onExpandedChange?: (isExpanded: boolean) => void,\n /** Whether the disclosure is expanded (controlled). */\n isExpanded?: boolean,\n /** Whether the disclosure is expanded by default (uncontrolled). */\n defaultExpanded?: boolean\n}\n\nexport interface DisclosureAria {\n /** Props for the disclosure button. */\n buttonProps: AriaButtonProps,\n /** Props for the disclosure panel. */\n panelProps: HTMLAttributes<HTMLElement>\n}\n\n/**\n * Provides the behavior and accessibility implementation for a disclosure component.\n * @param props - Props for the disclosure.\n * @param state - State for the disclosure, as returned by `useDisclosureState`.\n * @param ref - A ref for the disclosure panel.\n */\nexport function useDisclosure(props: AriaDisclosureProps, state: DisclosureState, ref: RefObject<HTMLElement | null>): DisclosureAria {\n let {\n isDisabled\n } = props;\n let triggerId = useId();\n let panelId = useId();\n let isSSR = useIsSSR();\n\n let raf = useRef<number | null>(null);\n\n let handleBeforeMatch = useCallback(() => {\n // Wait a frame to revert browser's removal of hidden attribute\n raf.current = requestAnimationFrame(() => {\n if (ref.current) {\n ref.current.setAttribute('hidden', 'until-found');\n }\n });\n // Force sync state update\n flushSync(() => {\n state.toggle();\n });\n }, [ref, state]);\n\n // @ts-ignore https://github.com/facebook/react/pull/24741\n useEvent(ref, 'beforematch', handleBeforeMatch);\n\n let isExpandedRef = useRef<boolean | null>(null);\n useLayoutEffect(() => {\n // Cancel any pending RAF to prevent stale updates\n if (raf.current) {\n cancelAnimationFrame(raf.current);\n }\n if (ref.current && !isSSR) {\n let panel = ref.current;\n\n if (isExpandedRef.current == null || typeof panel.getAnimations !== 'function') {\n // On initial render (and in tests), set attributes without animation.\n if (state.isExpanded) {\n panel.removeAttribute('hidden');\n panel.style.setProperty('--disclosure-panel-width', 'auto');\n panel.style.setProperty('--disclosure-panel-height', 'auto');\n } else {\n panel.setAttribute('hidden', 'until-found');\n panel.style.setProperty('--disclosure-panel-width', '0px');\n panel.style.setProperty('--disclosure-panel-height', '0px');\n }\n } else if (state.isExpanded !== isExpandedRef.current) {\n if (state.isExpanded) {\n panel.removeAttribute('hidden');\n\n // Set the width and height as pixels so they can be animated.\n panel.style.setProperty('--disclosure-panel-width', panel.scrollWidth + 'px');\n panel.style.setProperty('--disclosure-panel-height', panel.scrollHeight + 'px');\n\n Promise.all(panel.getAnimations().map(a => a.finished))\n .then(() => {\n // After the animations complete, switch back to auto so the content can resize.\n panel.style.setProperty('--disclosure-panel-width', 'auto');\n panel.style.setProperty('--disclosure-panel-height', 'auto');\n })\n .catch(() => {});\n } else {\n panel.style.setProperty('--disclosure-panel-width', panel.scrollWidth + 'px');\n panel.style.setProperty('--disclosure-panel-height', panel.scrollHeight + 'px');\n\n // Force style re-calculation to trigger animations.\n window.getComputedStyle(panel).height;\n\n // Animate to zero size.\n panel.style.setProperty('--disclosure-panel-width', '0px');\n panel.style.setProperty('--disclosure-panel-height', '0px');\n\n // Wait for animations to apply the hidden attribute.\n Promise.all(panel.getAnimations().map(a => a.finished))\n .then(() => panel.setAttribute('hidden', 'until-found'))\n .catch(() => {});\n }\n }\n\n isExpandedRef.current = state.isExpanded;\n }\n }, [isDisabled, ref, state.isExpanded, isSSR]);\n\n useEffect(() => {\n return () => {\n if (raf.current) {\n cancelAnimationFrame(raf.current);\n }\n };\n }, []);\n\n return {\n buttonProps: {\n id: triggerId,\n 'aria-expanded': state.isExpanded,\n 'aria-controls': panelId,\n onPress: (e) => {\n if (!isDisabled && e.pointerType !== 'keyboard') {\n state.toggle();\n }\n },\n isDisabled,\n onPressStart(e) {\n if (e.pointerType === 'keyboard' && !isDisabled) {\n state.toggle();\n }\n }\n },\n panelProps: {\n id: panelId,\n // This can be overridden at the panel element level.\n role: 'group',\n 'aria-labelledby': triggerId,\n 'aria-hidden': !state.isExpanded,\n hidden: isSSR ? !state.isExpanded : undefined\n }\n };\n}\n"],"names":[],"version":3,"file":"useDisclosure.js.map"}
1
+ {"mappings":";;;;;;;AAAA;;;;;;;;;;CAUC;;;;;;AAqCM,SAAS,0CACd,KAA0B,EAC1B,KAAsB,EACtB,GAAkC;IAElC,IAAI,cAAC,UAAU,EAAC,GAAG;IACnB,IAAI,YAAY,CAAA,GAAA,yCAAI;IACpB,IAAI,UAAU,CAAA,GAAA,yCAAI;IAClB,IAAI,QAAQ,CAAA,GAAA,yCAAO;IAEnB,IAAI,MAAM,CAAA,GAAA,aAAK,EAAiB;IAEhC,IAAI,oBAAoB,CAAA,GAAA,kBAAU,EAAE;QAClC,+DAA+D;QAC/D,IAAI,OAAO,GAAG,sBAAsB;YAClC,IAAI,IAAI,OAAO,EACb,IAAI,OAAO,CAAC,YAAY,CAAC,UAAU;QAEvC;QACA,0BAA0B;QAC1B,CAAA,GAAA,gBAAQ,EAAE;YACR,MAAM,MAAM;QACd;IACF,GAAG;QAAC;QAAK;KAAM;IAEf,0DAA0D;IAC1D,CAAA,GAAA,yCAAO,EAAE,KAAK,eAAe;IAE7B,IAAI,gBAAgB,CAAA,GAAA,aAAK,EAAkB;IAC3C,CAAA,GAAA,yCAAc,EAAE;QACd,kDAAkD;QAClD,IAAI,IAAI,OAAO,EACb,qBAAqB,IAAI,OAAO;QAElC,IAAI,IAAI,OAAO,IAAI,CAAC,OAAO;YACzB,IAAI,QAAQ,IAAI,OAAO;YAEvB,IAAI,cAAc,OAAO,IAAI,QAAQ,OAAO,MAAM,aAAa,KAAK;gBAClE,sEAAsE;gBACtE,IAAI,MAAM,UAAU,EAAE;oBACpB,MAAM,eAAe,CAAC;oBACtB,MAAM,KAAK,CAAC,WAAW,CAAC,4BAA4B;oBACpD,MAAM,KAAK,CAAC,WAAW,CAAC,6BAA6B;gBACvD,OAAO;oBACL,MAAM,YAAY,CAAC,UAAU;oBAC7B,MAAM,KAAK,CAAC,WAAW,CAAC,4BAA4B;oBACpD,MAAM,KAAK,CAAC,WAAW,CAAC,6BAA6B;gBACvD;mBACK,IAAI,MAAM,UAAU,KAAK,cAAc,OAAO;gBACnD,IAAI,MAAM,UAAU,EAAE;oBACpB,MAAM,eAAe,CAAC;oBAEtB,8DAA8D;oBAC9D,MAAM,KAAK,CAAC,WAAW,CAAC,4BAA4B,MAAM,WAAW,GAAG;oBACxE,MAAM,KAAK,CAAC,WAAW,CAAC,6BAA6B,MAAM,YAAY,GAAG;oBAE1E,QAAQ,GAAG,CAAC,MAAM,aAAa,GAAG,GAAG,CAAC,CAAA,IAAK,EAAE,QAAQ,GAClD,IAAI,CAAC;wBACJ,gFAAgF;wBAChF,MAAM,KAAK,CAAC,WAAW,CAAC,4BAA4B;wBACpD,MAAM,KAAK,CAAC,WAAW,CAAC,6BAA6B;oBACvD,GACC,KAAK,CAAC,KAAO;gBAClB,OAAO;oBACL,MAAM,KAAK,CAAC,WAAW,CAAC,4BAA4B,MAAM,WAAW,GAAG;oBACxE,MAAM,KAAK,CAAC,WAAW,CAAC,6BAA6B,MAAM,YAAY,GAAG;oBAE1E,oDAAoD;oBACpD,OAAO,gBAAgB,CAAC,OAAO,MAAM;oBAErC,wBAAwB;oBACxB,MAAM,KAAK,CAAC,WAAW,CAAC,4BAA4B;oBACpD,MAAM,KAAK,CAAC,WAAW,CAAC,6BAA6B;oBAErD,qDAAqD;oBACrD,QAAQ,GAAG,CAAC,MAAM,aAAa,GAAG,GAAG,CAAC,CAAA,IAAK,EAAE,QAAQ,GAClD,IAAI,CAAC,IAAM,MAAM,YAAY,CAAC,UAAU,gBACxC,KAAK,CAAC,KAAO;gBAClB;;YAGF,cAAc,OAAO,GAAG,MAAM,UAAU;QAC1C;IACF,GAAG;QAAC;QAAY;QAAK,MAAM,UAAU;QAAE;KAAM;IAE7C,CAAA,GAAA,gBAAQ,EAAE;QACR,OAAO;YACL,IAAI,IAAI,OAAO,EACb,qBAAqB,IAAI,OAAO;QAEpC;IACF,GAAG,EAAE;IAEL,OAAO;QACL,aAAa;YACX,IAAI;YACJ,iBAAiB,MAAM,UAAU;YACjC,iBAAiB;YACjB,SAAS,CAAA;gBACP,IAAI,CAAC,cAAc,EAAE,WAAW,KAAK,YACnC,MAAM,MAAM;YAEhB;wBACA;YACA,cAAa,CAAC;gBACZ,IAAI,EAAE,WAAW,KAAK,cAAc,CAAC,YACnC,MAAM,MAAM;YAEhB;QACF;QACA,YAAY;YACV,IAAI;YACJ,qDAAqD;YACrD,MAAM;YACN,mBAAmB;YACnB,eAAe,CAAC,MAAM,UAAU;YAChC,QAAQ,QAAQ,CAAC,MAAM,UAAU,GAAG;QACtC;IACF;AACF","sources":["packages/react-aria/src/disclosure/useDisclosure.ts"],"sourcesContent":["/*\n * Copyright 2024 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 {AriaButtonProps} from '../button/useButton';\n\nimport {DisclosureState} from 'react-stately/useDisclosureState';\nimport {flushSync} from 'react-dom';\nimport {HTMLAttributes, RefObject, useCallback, useEffect, useRef} from 'react';\nimport {useEvent} from '../utils/useEvent';\nimport {useId} from '../utils/useId';\nimport {useIsSSR} from '../ssr/SSRProvider';\nimport {useLayoutEffect} from '../utils/useLayoutEffect';\n\nexport interface AriaDisclosureProps {\n /** Whether the disclosure is disabled. */\n isDisabled?: boolean;\n /** Handler that is called when the disclosure's expanded state changes. */\n onExpandedChange?: (isExpanded: boolean) => void;\n /** Whether the disclosure is expanded (controlled). */\n isExpanded?: boolean;\n /** Whether the disclosure is expanded by default (uncontrolled). */\n defaultExpanded?: boolean;\n}\n\nexport interface DisclosureAria {\n /** Props for the disclosure button. */\n buttonProps: AriaButtonProps;\n /** Props for the disclosure panel. */\n panelProps: HTMLAttributes<HTMLElement>;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a disclosure component.\n *\n * @param props - Props for the disclosure.\n * @param state - State for the disclosure, as returned by `useDisclosureState`.\n * @param ref - A ref for the disclosure panel.\n */\nexport function useDisclosure(\n props: AriaDisclosureProps,\n state: DisclosureState,\n ref: RefObject<HTMLElement | null>\n): DisclosureAria {\n let {isDisabled} = props;\n let triggerId = useId();\n let panelId = useId();\n let isSSR = useIsSSR();\n\n let raf = useRef<number | null>(null);\n\n let handleBeforeMatch = useCallback(() => {\n // Wait a frame to revert browser's removal of hidden attribute\n raf.current = requestAnimationFrame(() => {\n if (ref.current) {\n ref.current.setAttribute('hidden', 'until-found');\n }\n });\n // Force sync state update\n flushSync(() => {\n state.toggle();\n });\n }, [ref, state]);\n\n // @ts-ignore https://github.com/facebook/react/pull/24741\n useEvent(ref, 'beforematch', handleBeforeMatch);\n\n let isExpandedRef = useRef<boolean | null>(null);\n useLayoutEffect(() => {\n // Cancel any pending RAF to prevent stale updates\n if (raf.current) {\n cancelAnimationFrame(raf.current);\n }\n if (ref.current && !isSSR) {\n let panel = ref.current;\n\n if (isExpandedRef.current == null || typeof panel.getAnimations !== 'function') {\n // On initial render (and in tests), set attributes without animation.\n if (state.isExpanded) {\n panel.removeAttribute('hidden');\n panel.style.setProperty('--disclosure-panel-width', 'auto');\n panel.style.setProperty('--disclosure-panel-height', 'auto');\n } else {\n panel.setAttribute('hidden', 'until-found');\n panel.style.setProperty('--disclosure-panel-width', '0px');\n panel.style.setProperty('--disclosure-panel-height', '0px');\n }\n } else if (state.isExpanded !== isExpandedRef.current) {\n if (state.isExpanded) {\n panel.removeAttribute('hidden');\n\n // Set the width and height as pixels so they can be animated.\n panel.style.setProperty('--disclosure-panel-width', panel.scrollWidth + 'px');\n panel.style.setProperty('--disclosure-panel-height', panel.scrollHeight + 'px');\n\n Promise.all(panel.getAnimations().map(a => a.finished))\n .then(() => {\n // After the animations complete, switch back to auto so the content can resize.\n panel.style.setProperty('--disclosure-panel-width', 'auto');\n panel.style.setProperty('--disclosure-panel-height', 'auto');\n })\n .catch(() => {});\n } else {\n panel.style.setProperty('--disclosure-panel-width', panel.scrollWidth + 'px');\n panel.style.setProperty('--disclosure-panel-height', panel.scrollHeight + 'px');\n\n // Force style re-calculation to trigger animations.\n window.getComputedStyle(panel).height;\n\n // Animate to zero size.\n panel.style.setProperty('--disclosure-panel-width', '0px');\n panel.style.setProperty('--disclosure-panel-height', '0px');\n\n // Wait for animations to apply the hidden attribute.\n Promise.all(panel.getAnimations().map(a => a.finished))\n .then(() => panel.setAttribute('hidden', 'until-found'))\n .catch(() => {});\n }\n }\n\n isExpandedRef.current = state.isExpanded;\n }\n }, [isDisabled, ref, state.isExpanded, isSSR]);\n\n useEffect(() => {\n return () => {\n if (raf.current) {\n cancelAnimationFrame(raf.current);\n }\n };\n }, []);\n\n return {\n buttonProps: {\n id: triggerId,\n 'aria-expanded': state.isExpanded,\n 'aria-controls': panelId,\n onPress: e => {\n if (!isDisabled && e.pointerType !== 'keyboard') {\n state.toggle();\n }\n },\n isDisabled,\n onPressStart(e) {\n if (e.pointerType === 'keyboard' && !isDisabled) {\n state.toggle();\n }\n }\n },\n panelProps: {\n id: panelId,\n // This can be overridden at the panel element level.\n role: 'group',\n 'aria-labelledby': triggerId,\n 'aria-hidden': !state.isExpanded,\n hidden: isSSR ? !state.isExpanded : undefined\n }\n };\n}\n"],"names":[],"version":3,"file":"useDisclosure.js.map"}
@@ -1 +1 @@
1
- {"mappings":";;;;;;;AAAA;;;;;;;;;;CAUC;;;;;;AAoCM,SAAS,0CAAc,KAA0B,EAAE,KAAsB,EAAE,GAAkC;IAClH,IAAI,cACF,UAAU,EACX,GAAG;IACJ,IAAI,YAAY,CAAA,GAAA,yCAAI;IACpB,IAAI,UAAU,CAAA,GAAA,yCAAI;IAClB,IAAI,QAAQ,CAAA,GAAA,yCAAO;IAEnB,IAAI,MAAM,CAAA,GAAA,aAAK,EAAiB;IAEhC,IAAI,oBAAoB,CAAA,GAAA,kBAAU,EAAE;QAClC,+DAA+D;QAC/D,IAAI,OAAO,GAAG,sBAAsB;YAClC,IAAI,IAAI,OAAO,EACb,IAAI,OAAO,CAAC,YAAY,CAAC,UAAU;QAEvC;QACA,0BAA0B;QAC1B,CAAA,GAAA,gBAAQ,EAAE;YACR,MAAM,MAAM;QACd;IACF,GAAG;QAAC;QAAK;KAAM;IAEf,0DAA0D;IAC1D,CAAA,GAAA,yCAAO,EAAE,KAAK,eAAe;IAE7B,IAAI,gBAAgB,CAAA,GAAA,aAAK,EAAkB;IAC3C,CAAA,GAAA,yCAAc,EAAE;QACd,kDAAkD;QAClD,IAAI,IAAI,OAAO,EACb,qBAAqB,IAAI,OAAO;QAElC,IAAI,IAAI,OAAO,IAAI,CAAC,OAAO;YACzB,IAAI,QAAQ,IAAI,OAAO;YAEvB,IAAI,cAAc,OAAO,IAAI,QAAQ,OAAO,MAAM,aAAa,KAAK;gBAClE,sEAAsE;gBACtE,IAAI,MAAM,UAAU,EAAE;oBACpB,MAAM,eAAe,CAAC;oBACtB,MAAM,KAAK,CAAC,WAAW,CAAC,4BAA4B;oBACpD,MAAM,KAAK,CAAC,WAAW,CAAC,6BAA6B;gBACvD,OAAO;oBACL,MAAM,YAAY,CAAC,UAAU;oBAC7B,MAAM,KAAK,CAAC,WAAW,CAAC,4BAA4B;oBACpD,MAAM,KAAK,CAAC,WAAW,CAAC,6BAA6B;gBACvD;mBACK,IAAI,MAAM,UAAU,KAAK,cAAc,OAAO;gBACnD,IAAI,MAAM,UAAU,EAAE;oBACpB,MAAM,eAAe,CAAC;oBAEtB,8DAA8D;oBAC9D,MAAM,KAAK,CAAC,WAAW,CAAC,4BAA4B,MAAM,WAAW,GAAG;oBACxE,MAAM,KAAK,CAAC,WAAW,CAAC,6BAA6B,MAAM,YAAY,GAAG;oBAE1E,QAAQ,GAAG,CAAC,MAAM,aAAa,GAAG,GAAG,CAAC,CAAA,IAAK,EAAE,QAAQ,GAClD,IAAI,CAAC;wBACJ,gFAAgF;wBAChF,MAAM,KAAK,CAAC,WAAW,CAAC,4BAA4B;wBACpD,MAAM,KAAK,CAAC,WAAW,CAAC,6BAA6B;oBACvD,GACC,KAAK,CAAC,KAAO;gBAClB,OAAO;oBACL,MAAM,KAAK,CAAC,WAAW,CAAC,4BAA4B,MAAM,WAAW,GAAG;oBACxE,MAAM,KAAK,CAAC,WAAW,CAAC,6BAA6B,MAAM,YAAY,GAAG;oBAE1E,oDAAoD;oBACpD,OAAO,gBAAgB,CAAC,OAAO,MAAM;oBAErC,wBAAwB;oBACxB,MAAM,KAAK,CAAC,WAAW,CAAC,4BAA4B;oBACpD,MAAM,KAAK,CAAC,WAAW,CAAC,6BAA6B;oBAErD,qDAAqD;oBACrD,QAAQ,GAAG,CAAC,MAAM,aAAa,GAAG,GAAG,CAAC,CAAA,IAAK,EAAE,QAAQ,GAClD,IAAI,CAAC,IAAM,MAAM,YAAY,CAAC,UAAU,gBACxC,KAAK,CAAC,KAAO;gBAClB;;YAGF,cAAc,OAAO,GAAG,MAAM,UAAU;QAC1C;IACF,GAAG;QAAC;QAAY;QAAK,MAAM,UAAU;QAAE;KAAM;IAE7C,CAAA,GAAA,gBAAQ,EAAE;QACR,OAAO;YACL,IAAI,IAAI,OAAO,EACb,qBAAqB,IAAI,OAAO;QAEpC;IACF,GAAG,EAAE;IAEL,OAAO;QACL,aAAa;YACX,IAAI;YACJ,iBAAiB,MAAM,UAAU;YACjC,iBAAiB;YACjB,SAAS,CAAC;gBACR,IAAI,CAAC,cAAc,EAAE,WAAW,KAAK,YACnC,MAAM,MAAM;YAEhB;wBACA;YACA,cAAa,CAAC;gBACZ,IAAI,EAAE,WAAW,KAAK,cAAc,CAAC,YACnC,MAAM,MAAM;YAEhB;QACF;QACA,YAAY;YACV,IAAI;YACJ,qDAAqD;YACrD,MAAM;YACN,mBAAmB;YACnB,eAAe,CAAC,MAAM,UAAU;YAChC,QAAQ,QAAQ,CAAC,MAAM,UAAU,GAAG;QACtC;IACF;AACF","sources":["packages/react-aria/src/disclosure/useDisclosure.ts"],"sourcesContent":["/*\n * Copyright 2024 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 {AriaButtonProps} from '../button/useButton';\n\nimport {DisclosureState} from 'react-stately/useDisclosureState';\nimport {flushSync} from 'react-dom';\nimport {HTMLAttributes, RefObject, useCallback, useEffect, useRef} from 'react';\nimport {useEvent} from '../utils/useEvent';\nimport {useId} from '../utils/useId';\nimport {useIsSSR} from '../ssr/SSRProvider';\nimport {useLayoutEffect} from '../utils/useLayoutEffect';\n\nexport interface AriaDisclosureProps {\n /** Whether the disclosure is disabled. */\n isDisabled?: boolean,\n /** Handler that is called when the disclosure's expanded state changes. */\n onExpandedChange?: (isExpanded: boolean) => void,\n /** Whether the disclosure is expanded (controlled). */\n isExpanded?: boolean,\n /** Whether the disclosure is expanded by default (uncontrolled). */\n defaultExpanded?: boolean\n}\n\nexport interface DisclosureAria {\n /** Props for the disclosure button. */\n buttonProps: AriaButtonProps,\n /** Props for the disclosure panel. */\n panelProps: HTMLAttributes<HTMLElement>\n}\n\n/**\n * Provides the behavior and accessibility implementation for a disclosure component.\n * @param props - Props for the disclosure.\n * @param state - State for the disclosure, as returned by `useDisclosureState`.\n * @param ref - A ref for the disclosure panel.\n */\nexport function useDisclosure(props: AriaDisclosureProps, state: DisclosureState, ref: RefObject<HTMLElement | null>): DisclosureAria {\n let {\n isDisabled\n } = props;\n let triggerId = useId();\n let panelId = useId();\n let isSSR = useIsSSR();\n\n let raf = useRef<number | null>(null);\n\n let handleBeforeMatch = useCallback(() => {\n // Wait a frame to revert browser's removal of hidden attribute\n raf.current = requestAnimationFrame(() => {\n if (ref.current) {\n ref.current.setAttribute('hidden', 'until-found');\n }\n });\n // Force sync state update\n flushSync(() => {\n state.toggle();\n });\n }, [ref, state]);\n\n // @ts-ignore https://github.com/facebook/react/pull/24741\n useEvent(ref, 'beforematch', handleBeforeMatch);\n\n let isExpandedRef = useRef<boolean | null>(null);\n useLayoutEffect(() => {\n // Cancel any pending RAF to prevent stale updates\n if (raf.current) {\n cancelAnimationFrame(raf.current);\n }\n if (ref.current && !isSSR) {\n let panel = ref.current;\n\n if (isExpandedRef.current == null || typeof panel.getAnimations !== 'function') {\n // On initial render (and in tests), set attributes without animation.\n if (state.isExpanded) {\n panel.removeAttribute('hidden');\n panel.style.setProperty('--disclosure-panel-width', 'auto');\n panel.style.setProperty('--disclosure-panel-height', 'auto');\n } else {\n panel.setAttribute('hidden', 'until-found');\n panel.style.setProperty('--disclosure-panel-width', '0px');\n panel.style.setProperty('--disclosure-panel-height', '0px');\n }\n } else if (state.isExpanded !== isExpandedRef.current) {\n if (state.isExpanded) {\n panel.removeAttribute('hidden');\n\n // Set the width and height as pixels so they can be animated.\n panel.style.setProperty('--disclosure-panel-width', panel.scrollWidth + 'px');\n panel.style.setProperty('--disclosure-panel-height', panel.scrollHeight + 'px');\n\n Promise.all(panel.getAnimations().map(a => a.finished))\n .then(() => {\n // After the animations complete, switch back to auto so the content can resize.\n panel.style.setProperty('--disclosure-panel-width', 'auto');\n panel.style.setProperty('--disclosure-panel-height', 'auto');\n })\n .catch(() => {});\n } else {\n panel.style.setProperty('--disclosure-panel-width', panel.scrollWidth + 'px');\n panel.style.setProperty('--disclosure-panel-height', panel.scrollHeight + 'px');\n\n // Force style re-calculation to trigger animations.\n window.getComputedStyle(panel).height;\n\n // Animate to zero size.\n panel.style.setProperty('--disclosure-panel-width', '0px');\n panel.style.setProperty('--disclosure-panel-height', '0px');\n\n // Wait for animations to apply the hidden attribute.\n Promise.all(panel.getAnimations().map(a => a.finished))\n .then(() => panel.setAttribute('hidden', 'until-found'))\n .catch(() => {});\n }\n }\n\n isExpandedRef.current = state.isExpanded;\n }\n }, [isDisabled, ref, state.isExpanded, isSSR]);\n\n useEffect(() => {\n return () => {\n if (raf.current) {\n cancelAnimationFrame(raf.current);\n }\n };\n }, []);\n\n return {\n buttonProps: {\n id: triggerId,\n 'aria-expanded': state.isExpanded,\n 'aria-controls': panelId,\n onPress: (e) => {\n if (!isDisabled && e.pointerType !== 'keyboard') {\n state.toggle();\n }\n },\n isDisabled,\n onPressStart(e) {\n if (e.pointerType === 'keyboard' && !isDisabled) {\n state.toggle();\n }\n }\n },\n panelProps: {\n id: panelId,\n // This can be overridden at the panel element level.\n role: 'group',\n 'aria-labelledby': triggerId,\n 'aria-hidden': !state.isExpanded,\n hidden: isSSR ? !state.isExpanded : undefined\n }\n };\n}\n"],"names":[],"version":3,"file":"useDisclosure.mjs.map"}
1
+ {"mappings":"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","sources":["packages/react-aria/src/disclosure/useDisclosure.ts"],"sourcesContent":["/*\n * Copyright 2024 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 {AriaButtonProps} from '../button/useButton';\n\nimport {DisclosureState} from 'react-stately/useDisclosureState';\nimport {flushSync} from 'react-dom';\nimport {HTMLAttributes, RefObject, useCallback, useEffect, useRef} from 'react';\nimport {useEvent} from '../utils/useEvent';\nimport {useId} from '../utils/useId';\nimport {useIsSSR} from '../ssr/SSRProvider';\nimport {useLayoutEffect} from '../utils/useLayoutEffect';\n\nexport interface AriaDisclosureProps {\n /** Whether the disclosure is disabled. */\n isDisabled?: boolean;\n /** Handler that is called when the disclosure's expanded state changes. */\n onExpandedChange?: (isExpanded: boolean) => void;\n /** Whether the disclosure is expanded (controlled). */\n isExpanded?: boolean;\n /** Whether the disclosure is expanded by default (uncontrolled). */\n defaultExpanded?: boolean;\n}\n\nexport interface DisclosureAria {\n /** Props for the disclosure button. */\n buttonProps: AriaButtonProps;\n /** Props for the disclosure panel. */\n panelProps: HTMLAttributes<HTMLElement>;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a disclosure component.\n *\n * @param props - Props for the disclosure.\n * @param state - State for the disclosure, as returned by `useDisclosureState`.\n * @param ref - A ref for the disclosure panel.\n */\nexport function useDisclosure(\n props: AriaDisclosureProps,\n state: DisclosureState,\n ref: RefObject<HTMLElement | null>\n): DisclosureAria {\n let {isDisabled} = props;\n let triggerId = useId();\n let panelId = useId();\n let isSSR = useIsSSR();\n\n let raf = useRef<number | null>(null);\n\n let handleBeforeMatch = useCallback(() => {\n // Wait a frame to revert browser's removal of hidden attribute\n raf.current = requestAnimationFrame(() => {\n if (ref.current) {\n ref.current.setAttribute('hidden', 'until-found');\n }\n });\n // Force sync state update\n flushSync(() => {\n state.toggle();\n });\n }, [ref, state]);\n\n // @ts-ignore https://github.com/facebook/react/pull/24741\n useEvent(ref, 'beforematch', handleBeforeMatch);\n\n let isExpandedRef = useRef<boolean | null>(null);\n useLayoutEffect(() => {\n // Cancel any pending RAF to prevent stale updates\n if (raf.current) {\n cancelAnimationFrame(raf.current);\n }\n if (ref.current && !isSSR) {\n let panel = ref.current;\n\n if (isExpandedRef.current == null || typeof panel.getAnimations !== 'function') {\n // On initial render (and in tests), set attributes without animation.\n if (state.isExpanded) {\n panel.removeAttribute('hidden');\n panel.style.setProperty('--disclosure-panel-width', 'auto');\n panel.style.setProperty('--disclosure-panel-height', 'auto');\n } else {\n panel.setAttribute('hidden', 'until-found');\n panel.style.setProperty('--disclosure-panel-width', '0px');\n panel.style.setProperty('--disclosure-panel-height', '0px');\n }\n } else if (state.isExpanded !== isExpandedRef.current) {\n if (state.isExpanded) {\n panel.removeAttribute('hidden');\n\n // Set the width and height as pixels so they can be animated.\n panel.style.setProperty('--disclosure-panel-width', panel.scrollWidth + 'px');\n panel.style.setProperty('--disclosure-panel-height', panel.scrollHeight + 'px');\n\n Promise.all(panel.getAnimations().map(a => a.finished))\n .then(() => {\n // After the animations complete, switch back to auto so the content can resize.\n panel.style.setProperty('--disclosure-panel-width', 'auto');\n panel.style.setProperty('--disclosure-panel-height', 'auto');\n })\n .catch(() => {});\n } else {\n panel.style.setProperty('--disclosure-panel-width', panel.scrollWidth + 'px');\n panel.style.setProperty('--disclosure-panel-height', panel.scrollHeight + 'px');\n\n // Force style re-calculation to trigger animations.\n window.getComputedStyle(panel).height;\n\n // Animate to zero size.\n panel.style.setProperty('--disclosure-panel-width', '0px');\n panel.style.setProperty('--disclosure-panel-height', '0px');\n\n // Wait for animations to apply the hidden attribute.\n Promise.all(panel.getAnimations().map(a => a.finished))\n .then(() => panel.setAttribute('hidden', 'until-found'))\n .catch(() => {});\n }\n }\n\n isExpandedRef.current = state.isExpanded;\n }\n }, [isDisabled, ref, state.isExpanded, isSSR]);\n\n useEffect(() => {\n return () => {\n if (raf.current) {\n cancelAnimationFrame(raf.current);\n }\n };\n }, []);\n\n return {\n buttonProps: {\n id: triggerId,\n 'aria-expanded': state.isExpanded,\n 'aria-controls': panelId,\n onPress: e => {\n if (!isDisabled && e.pointerType !== 'keyboard') {\n state.toggle();\n }\n },\n isDisabled,\n onPressStart(e) {\n if (e.pointerType === 'keyboard' && !isDisabled) {\n state.toggle();\n }\n }\n },\n panelProps: {\n id: panelId,\n // This can be overridden at the panel element level.\n role: 'group',\n 'aria-labelledby': triggerId,\n 'aria-hidden': !state.isExpanded,\n hidden: isSSR ? !state.isExpanded : undefined\n }\n };\n}\n"],"names":[],"version":3,"file":"useDisclosure.mjs.map"}
@@ -206,7 +206,10 @@ class $7394b2797bc2343d$var$DragSession {
206
206
  }
207
207
  onBlur(e) {
208
208
  let activateButton = this.getCurrentActivateButton();
209
- if (e.relatedTarget === activateButton) {
209
+ // Guard activateButton non-null so this doesn't trip on the case where
210
+ // there's no activate button and the focused element loses focus to nothing
211
+ // (browsers and jsdom 26+ both set relatedTarget to null in that case).
212
+ if (activateButton && e.relatedTarget === activateButton) {
210
213
  this.cancelEvent(e);
211
214
  return;
212
215
  }
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/react-aria/src/dnd/DragManager.ts"],"sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {announce} from '../live-announcer/LiveAnnouncer';\n\nimport {ariaHideOutside} from '../overlays/ariaHideOutside';\nimport {DragEndEvent, DragItem, DropActivateEvent, DropEnterEvent, DropEvent, DropExitEvent, DropItem, DropOperation, DropTarget as DroppableCollectionTarget, FocusableElement} from '@react-types/shared';\nimport {getActiveElement, getEventTarget, nodeContains} from '../utils/shadowdom/DOMFunctions';\nimport {getDragModality, getTypes} from './utils';\nimport {isVirtualClick, isVirtualPointerEvent} from '../utils/isVirtualEvent';\nimport type {LocalizedStringFormatter} from '@internationalized/string';\nimport {RefObject, useEffect, useState} from 'react';\n\nlet dropTargets = new Map<Element, DropTarget>();\nlet dropItems = new Map<Element, DroppableItem>();\nlet dragSession: DragSession | null = null;\nlet subscriptions = new Set<() => void>();\n\ninterface DropTarget {\n element: FocusableElement,\n preventFocusOnDrop?: boolean,\n getDropOperation?: (types: Set<string>, allowedOperations: DropOperation[]) => DropOperation,\n onDropEnter?: (e: DropEnterEvent, dragTarget: DragTarget) => void,\n onDropExit?: (e: DropExitEvent) => void,\n onDropTargetEnter?: (target: DroppableCollectionTarget | null) => void,\n onDropActivate?: (e: DropActivateEvent, target: DroppableCollectionTarget | null) => void,\n onDrop?: (e: DropEvent, target: DroppableCollectionTarget | null) => void,\n onKeyDown?: (e: KeyboardEvent, dragTarget: DragTarget) => void,\n activateButtonRef?: RefObject<FocusableElement | null>\n}\n\nexport function registerDropTarget(target: DropTarget) {\n dropTargets.set(target.element, target);\n dragSession?.updateValidDropTargets();\n return (): void => {\n dropTargets.delete(target.element);\n dragSession?.updateValidDropTargets();\n };\n}\n\ninterface DroppableItem {\n element: FocusableElement,\n target: DroppableCollectionTarget,\n getDropOperation?: (types: Set<string>, allowedOperations: DropOperation[]) => DropOperation,\n activateButtonRef?: RefObject<FocusableElement | null>\n}\n\nexport function registerDropItem(item: DroppableItem) {\n dropItems.set(item.element, item);\n return (): void => {\n dropItems.delete(item.element);\n };\n}\n\ninterface DragTarget {\n element: FocusableElement,\n items: DragItem[],\n allowedDropOperations: DropOperation[],\n onDragEnd?: (e: DragEndEvent) => void\n}\n\nexport function beginDragging(target: DragTarget, stringFormatter: LocalizedStringFormatter): void {\n if (dragSession) {\n throw new Error('Cannot begin dragging while already dragging');\n }\n\n dragSession = new DragSession(target, stringFormatter);\n requestAnimationFrame(() => {\n if (dragSession) {\n dragSession.setup();\n if (getDragModality() === 'keyboard') {\n dragSession.next();\n }\n }\n });\n\n for (let cb of subscriptions) {\n cb();\n }\n}\n\nexport function useDragSession(): DragSession | null {\n let [session, setSession] = useState(dragSession);\n\n useEffect(() => {\n let cb = () => setSession(dragSession);\n subscriptions.add(cb);\n return () => {\n subscriptions.delete(cb);\n };\n }, []);\n\n return session;\n}\n\n/** @private */\nexport function isVirtualDragging(): boolean {\n return !!dragSession;\n}\n\nfunction endDragging() {\n dragSession = null;\n for (let cb of subscriptions) {\n cb();\n }\n}\n\nexport function isValidDropTarget(element: Element): boolean {\n for (let target of dropTargets.keys()) {\n if (nodeContains(target, element)) {\n return true;\n }\n }\n\n return false;\n}\n\nconst CANCELED_EVENTS = [\n 'pointerdown',\n 'pointermove',\n 'pointerenter',\n 'pointerleave',\n 'pointerover',\n 'pointerout',\n 'pointerup',\n 'mousedown',\n 'mousemove',\n 'mouseenter',\n 'mouseleave',\n 'mouseover',\n 'mouseout',\n 'mouseup',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'focusin',\n 'focusout'\n];\n\nconst CLICK_EVENTS = [\n 'pointerup',\n 'mouseup',\n 'touchend'\n];\n\nconst MESSAGES = {\n keyboard: 'dragStartedKeyboard',\n touch: 'dragStartedTouch',\n virtual: 'dragStartedVirtual'\n};\n\nclass DragSession {\n dragTarget: DragTarget;\n validDropTargets: DropTarget[] = [];\n currentDropTarget: DropTarget | null = null;\n currentDropItem: DroppableItem | null = null;\n dropOperation: DropOperation | null = null;\n private mutationObserver: MutationObserver | null = null;\n private restoreAriaHidden: (() => void) | null = null;\n private stringFormatter: LocalizedStringFormatter;\n private isVirtualClick: boolean = false;\n private initialFocused: boolean;\n\n constructor(target: DragTarget, stringFormatter: LocalizedStringFormatter) {\n this.dragTarget = target;\n this.stringFormatter = stringFormatter;\n\n this.onKeyDown = this.onKeyDown.bind(this);\n this.onKeyUp = this.onKeyUp.bind(this);\n this.onFocus = this.onFocus.bind(this);\n this.onBlur = this.onBlur.bind(this);\n this.onClick = this.onClick.bind(this);\n this.onPointerDown = this.onPointerDown.bind(this);\n this.cancelEvent = this.cancelEvent.bind(this);\n this.initialFocused = false;\n }\n\n setup(): void {\n document.addEventListener('keydown', this.onKeyDown, true);\n document.addEventListener('keyup', this.onKeyUp, true);\n window.addEventListener('focus', this.onFocus, true);\n window.addEventListener('blur', this.onBlur, true);\n document.addEventListener('click', this.onClick, true);\n document.addEventListener('pointerdown', this.onPointerDown, true);\n\n for (let event of CANCELED_EVENTS) {\n document.addEventListener(event, this.cancelEvent, true);\n }\n\n this.mutationObserver = new MutationObserver(() =>\n this.updateValidDropTargets()\n );\n this.updateValidDropTargets();\n\n announce(this.stringFormatter.format(MESSAGES[getDragModality()]));\n }\n\n teardown(): void {\n document.removeEventListener('keydown', this.onKeyDown, true);\n document.removeEventListener('keyup', this.onKeyUp, true);\n window.removeEventListener('focus', this.onFocus, true);\n window.removeEventListener('blur', this.onBlur, true);\n document.removeEventListener('click', this.onClick, true);\n document.removeEventListener('pointerdown', this.onPointerDown, true);\n\n for (let event of CANCELED_EVENTS) {\n document.removeEventListener(event, this.cancelEvent, true);\n }\n\n this.mutationObserver?.disconnect();\n this.restoreAriaHidden?.();\n }\n\n onKeyDown(e: KeyboardEvent): void {\n this.cancelEvent(e);\n\n if (e.key === 'Escape') {\n this.cancel();\n return;\n }\n\n if (e.key === 'Tab' && !(e.metaKey || e.altKey || e.ctrlKey)) {\n if (e.shiftKey) {\n this.previous();\n } else {\n this.next();\n }\n }\n\n if (typeof this.currentDropTarget?.onKeyDown === 'function') {\n this.currentDropTarget.onKeyDown(e, this.dragTarget);\n }\n }\n\n onKeyUp(e: KeyboardEvent): void {\n this.cancelEvent(e);\n\n if (e.key === 'Enter') {\n if (e.altKey || nodeContains(this.getCurrentActivateButton(), getEventTarget(e) as Node)) {\n this.activate(this.currentDropTarget, this.currentDropItem);\n } else {\n this.drop();\n }\n }\n }\n\n getCurrentActivateButton(): FocusableElement | null {\n return this.currentDropItem?.activateButtonRef?.current ?? this.currentDropTarget?.activateButtonRef?.current ?? null;\n }\n\n onFocus(e: FocusEvent): void {\n let activateButton = this.getCurrentActivateButton();\n let eventTarget = getEventTarget(e);\n if (eventTarget === activateButton) {\n // TODO: canceling this breaks the focus ring. Revisit when we support tabbing.\n this.cancelEvent(e);\n return;\n }\n\n // Prevent focus events, except to the original drag target.\n if (eventTarget !== this.dragTarget.element) {\n this.cancelEvent(e);\n }\n\n // Ignore focus events on the window/document (JSDOM). Will be handled in onBlur, below.\n if (!(eventTarget instanceof HTMLElement) || eventTarget === this.dragTarget.element) {\n return;\n }\n\n let dropTarget =\n this.validDropTargets.find(target => target.element === eventTarget) ||\n this.validDropTargets.find(target => nodeContains(target.element, eventTarget));\n\n if (!dropTarget) {\n // if (e.target === activateButton) {\n // activateButton.focus();\n // }\n if (this.currentDropTarget) {\n this.currentDropTarget.element.focus();\n } else {\n this.dragTarget.element.focus();\n }\n return;\n }\n\n let item = dropItems.get(eventTarget);\n if (dropTarget) {\n this.setCurrentDropTarget(dropTarget, item);\n }\n }\n\n onBlur(e: FocusEvent): void {\n let activateButton = this.getCurrentActivateButton();\n if (e.relatedTarget === activateButton) {\n this.cancelEvent(e);\n return;\n }\n\n if (getEventTarget(e) !== this.dragTarget.element) {\n this.cancelEvent(e);\n }\n\n // If nothing is gaining focus, or e.relatedTarget is the window/document (JSDOM),\n // restore focus back to the current drop target if any, or the original drag target.\n if (!e.relatedTarget || !(e.relatedTarget instanceof HTMLElement)) {\n if (this.currentDropTarget) {\n this.currentDropTarget.element.focus();\n } else {\n this.dragTarget.element.focus();\n }\n }\n }\n\n onClick(e: MouseEvent): void {\n this.cancelEvent(e);\n if (isVirtualClick(e) || this.isVirtualClick) {\n let dropElements = dropItems.values();\n let eventTarget = getEventTarget(e) as HTMLElement;\n let item = [...dropElements].find(item => item.element === eventTarget || nodeContains(item.activateButtonRef?.current, eventTarget));\n let dropTarget = this.validDropTargets.find(target => nodeContains(target.element, eventTarget));\n let activateButton = item?.activateButtonRef?.current ?? dropTarget?.activateButtonRef?.current;\n if (nodeContains(activateButton, eventTarget) && dropTarget) {\n this.activate(dropTarget, item);\n return;\n }\n\n if (getEventTarget(e) === this.dragTarget.element) {\n this.cancel();\n return;\n }\n\n if (dropTarget) {\n this.setCurrentDropTarget(dropTarget, item);\n this.drop(item);\n }\n }\n }\n\n onPointerDown(e: PointerEvent): void {\n // Android Talkback double tap has e.detail = 1 for onClick. Detect the virtual click in onPointerDown before onClick fires\n // so we can properly perform cancel and drop operations.\n this.cancelEvent(e);\n this.isVirtualClick = isVirtualPointerEvent(e);\n }\n\n cancelEvent(e: Event): void {\n // Allow focusin and focusout on the drag target so focus ring works properly.\n let eventTarget = getEventTarget(e);\n if ((e.type === 'focusin' || e.type === 'focusout') && (eventTarget === this.dragTarget?.element || eventTarget === this.getCurrentActivateButton())) {\n return;\n }\n\n // Allow default for events that might cancel a click event\n if (!CLICK_EVENTS.includes(e.type)) {\n e.preventDefault();\n }\n\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n\n updateValidDropTargets(): void {\n if (!this.mutationObserver) {\n return;\n }\n\n this.mutationObserver.disconnect();\n if (this.restoreAriaHidden) {\n this.restoreAriaHidden();\n }\n\n this.validDropTargets = findValidDropTargets(this.dragTarget);\n\n // Shuffle drop target order based on starting drag target.\n if (this.validDropTargets.length > 0) {\n let nearestIndex = this.findNearestDropTarget();\n this.validDropTargets = [\n ...this.validDropTargets.slice(nearestIndex),\n ...this.validDropTargets.slice(0, nearestIndex)\n ];\n }\n\n if (this.currentDropTarget && !this.validDropTargets.includes(this.currentDropTarget)) {\n this.setCurrentDropTarget(this.validDropTargets[0]);\n }\n\n // Find valid drop items within collections\n let types = getTypes(this.dragTarget.items);\n let validDropItems = [...dropItems.values()].filter(item => {\n if (typeof item.getDropOperation === 'function') {\n return item.getDropOperation(types, this.dragTarget.allowedDropOperations) !== 'cancel';\n }\n\n return true;\n });\n\n // Filter out drop targets that contain valid items. We don't want to stop hiding elements\n // other than the drop items that exist inside the collection.\n let visibleDropTargets = this.validDropTargets.filter(target =>\n !validDropItems.some(item => nodeContains(target.element, item.element))\n );\n\n this.restoreAriaHidden = ariaHideOutside([\n this.dragTarget.element,\n ...validDropItems.flatMap(item => item.activateButtonRef?.current ? [item.element, item.activateButtonRef?.current] : [item.element]),\n ...visibleDropTargets.flatMap(target => target.activateButtonRef?.current ? [target.element, target.activateButtonRef?.current] : [target.element])\n ], {shouldUseInert: true});\n\n this.mutationObserver.observe(document.body, {subtree: true, attributes: true, attributeFilter: ['aria-hidden', 'inert']});\n }\n\n next(): void {\n // TODO: Allow tabbing to the activate button. Revisit once we fix the focus ring.\n // For now, the activate button is reachable by screen readers and ArrowLeft/ArrowRight\n // is usable specifically by Tree. Will need tabbing for other components.\n // let activateButton = this.getCurrentActivateButton();\n // if (activateButton && document.activeElement !== activateButton) {\n // activateButton.focus();\n // return;\n // }\n\n if (!this.currentDropTarget) {\n this.setCurrentDropTarget(this.validDropTargets[0]);\n return;\n }\n\n let index = this.validDropTargets.indexOf(this.currentDropTarget);\n if (index < 0) {\n this.setCurrentDropTarget(this.validDropTargets[0]);\n return;\n }\n\n // If we've reached the end of the valid drop targets, cycle back to the original drag target.\n // This lets the user cancel the drag in case they don't have an Escape key (e.g. iPad keyboard case).\n if (index === this.validDropTargets.length - 1) {\n if (!this.dragTarget.element.closest('[aria-hidden=\"true\"], [inert]')) {\n this.setCurrentDropTarget(null);\n this.dragTarget.element.focus();\n } else {\n this.setCurrentDropTarget(this.validDropTargets[0]);\n }\n } else {\n this.setCurrentDropTarget(this.validDropTargets[index + 1]);\n }\n }\n\n previous(): void {\n // let activateButton = this.getCurrentActivateButton();\n // if (activateButton && document.activeElement === activateButton) {\n // let target = this.currentDropItem ?? this.currentDropTarget;\n // if (target) {\n // target.element.focus();\n // return;\n // }\n // }\n\n if (!this.currentDropTarget) {\n this.setCurrentDropTarget(this.validDropTargets[this.validDropTargets.length - 1]);\n return;\n }\n\n let index = this.validDropTargets.indexOf(this.currentDropTarget);\n if (index < 0) {\n this.setCurrentDropTarget(this.validDropTargets[this.validDropTargets.length - 1]);\n return;\n }\n\n // If we've reached the start of the valid drop targets, cycle back to the original drag target.\n // This lets the user cancel the drag in case they don't have an Escape key (e.g. iPad keyboard case).\n if (index === 0) {\n if (!this.dragTarget.element.closest('[aria-hidden=\"true\"], [inert]')) {\n this.setCurrentDropTarget(null);\n this.dragTarget.element.focus();\n } else {\n this.setCurrentDropTarget(this.validDropTargets[this.validDropTargets.length - 1]);\n }\n } else {\n this.setCurrentDropTarget(this.validDropTargets[index - 1]);\n }\n }\n\n findNearestDropTarget(): number {\n let dragTargetRect = this.dragTarget.element.getBoundingClientRect();\n\n let minDistance = Infinity;\n let nearest = -1;\n for (let i = 0; i < this.validDropTargets.length; i++) {\n let dropTarget = this.validDropTargets[i];\n let rect = dropTarget.element.getBoundingClientRect();\n let dx = rect.left - dragTargetRect.left;\n let dy = rect.top - dragTargetRect.top;\n let dist = (dx * dx) + (dy * dy);\n if (dist < minDistance) {\n minDistance = dist;\n nearest = i;\n }\n }\n\n return nearest;\n }\n\n setCurrentDropTarget(dropTarget: DropTarget | null, item?: DroppableItem): void {\n if (dropTarget !== this.currentDropTarget) {\n if (this.currentDropTarget && typeof this.currentDropTarget.onDropExit === 'function') {\n let rect = this.currentDropTarget.element.getBoundingClientRect();\n this.currentDropTarget.onDropExit({\n type: 'dropexit',\n x: rect.left + (rect.width / 2),\n y: rect.top + (rect.height / 2)\n });\n }\n\n this.currentDropTarget = dropTarget;\n\n if (dropTarget) {\n if (typeof dropTarget.onDropEnter === 'function') {\n let rect = dropTarget.element.getBoundingClientRect();\n dropTarget.onDropEnter({\n type: 'dropenter',\n x: rect.left + (rect.width / 2),\n y: rect.top + (rect.height / 2)\n }, this.dragTarget);\n }\n\n if (!item) {\n dropTarget?.element.focus();\n }\n }\n }\n\n if (item != null && item !== this.currentDropItem) {\n if (this.currentDropTarget && typeof this.currentDropTarget.onDropTargetEnter === 'function') {\n this.currentDropTarget.onDropTargetEnter(item.target);\n }\n item.element.focus();\n this.currentDropItem = item;\n\n // Announce first drop target after drag start announcement finishes.\n // Otherwise, it will never get announced because drag start announcement is assertive.\n if (!this.initialFocused) {\n let label = item?.element.getAttribute('aria-label');\n if (label) {\n announce(label, 'polite');\n }\n this.initialFocused = true;\n }\n }\n }\n\n end(): void {\n this.teardown();\n endDragging();\n\n if (typeof this.dragTarget.onDragEnd === 'function') {\n let target = this.currentDropTarget && this.dropOperation !== 'cancel' ? this.currentDropTarget : this.dragTarget;\n let rect = target.element.getBoundingClientRect();\n this.dragTarget.onDragEnd({\n type: 'dragend',\n x: rect.x + (rect.width / 2),\n y: rect.y + (rect.height / 2),\n dropOperation: this.dropOperation || 'cancel'\n });\n }\n\n if (this.currentDropTarget && !this.currentDropTarget.preventFocusOnDrop) {\n // Re-trigger focus event on active element, since it will not have received it during dragging (see cancelEvent).\n // This corrects state such as whether focus ring should appear.\n // useDroppableCollection handles this itself, so this is only for standalone drop zones.\n getActiveElement()?.dispatchEvent(new FocusEvent('focusin', {bubbles: true}));\n }\n\n this.setCurrentDropTarget(null);\n }\n\n cancel(): void {\n this.setCurrentDropTarget(null);\n this.end();\n if (!this.dragTarget.element.closest('[aria-hidden=\"true\"], [inert]')) {\n this.dragTarget.element.focus();\n }\n\n // Re-trigger focus event on active element, since it will not have received it during dragging (see cancelEvent).\n getActiveElement()?.dispatchEvent(new FocusEvent('focusin', {bubbles: true}));\n\n announce(this.stringFormatter.format('dropCanceled'));\n }\n\n drop(item?: DroppableItem): void {\n if (!this.currentDropTarget) {\n this.cancel();\n return;\n }\n\n if (typeof item?.getDropOperation === 'function') {\n let types = getTypes(this.dragTarget.items);\n this.dropOperation = item.getDropOperation(types, this.dragTarget.allowedDropOperations);\n } else if (typeof this.currentDropTarget.getDropOperation === 'function') {\n let types = getTypes(this.dragTarget.items);\n this.dropOperation = this.currentDropTarget.getDropOperation(types, this.dragTarget.allowedDropOperations);\n } else {\n // TODO: show menu ??\n this.dropOperation = this.dragTarget.allowedDropOperations[0];\n }\n\n if (typeof this.currentDropTarget.onDrop === 'function') {\n let items: DropItem[] = this.dragTarget.items.map(item => ({\n kind: 'text',\n types: new Set(Object.keys(item)),\n getText: (type: string) => Promise.resolve(item[type])\n }));\n\n let rect = this.currentDropTarget.element.getBoundingClientRect();\n this.currentDropTarget.onDrop({\n type: 'drop',\n x: rect.left + (rect.width / 2),\n y: rect.top + (rect.height / 2),\n items,\n dropOperation: this.dropOperation\n }, item?.target ?? null);\n }\n\n this.end();\n announce(this.stringFormatter.format('dropComplete'));\n }\n\n activate(dropTarget: DropTarget | null, dropItem: DroppableItem | null | undefined): void {\n if (dropTarget && typeof dropTarget.onDropActivate === 'function') {\n let target = dropItem?.target ?? null;\n let rect = dropTarget.element.getBoundingClientRect();\n dropTarget.onDropActivate({\n type: 'dropactivate',\n x: rect.left + (rect.width / 2),\n y: rect.top + (rect.height / 2)\n }, target);\n }\n }\n}\n\nfunction findValidDropTargets(options: DragTarget) {\n let types = getTypes(options.items);\n return [...dropTargets.values()].filter(target => {\n if (target.element.closest('[aria-hidden=\"true\"], [inert]')) {\n return false;\n }\n\n if (typeof target.getDropOperation === 'function') {\n return target.getDropOperation(types, options.allowedDropOperations) !== 'cancel';\n }\n\n return true;\n });\n}\n"],"names":[],"version":3,"file":"DragManager.cjs.map"}
1
+ {"mappings":"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","sources":["packages/react-aria/src/dnd/DragManager.ts"],"sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {announce} from '../live-announcer/LiveAnnouncer';\n\nimport {ariaHideOutside} from '../overlays/ariaHideOutside';\nimport {\n DragEndEvent,\n DragItem,\n DropActivateEvent,\n DropEnterEvent,\n DropEvent,\n DropExitEvent,\n DropItem,\n DropOperation,\n DropTarget as DroppableCollectionTarget,\n FocusableElement\n} from '@react-types/shared';\nimport {getActiveElement, getEventTarget, nodeContains} from '../utils/shadowdom/DOMFunctions';\nimport {getDragModality, getTypes} from './utils';\nimport {isVirtualClick, isVirtualPointerEvent} from '../utils/isVirtualEvent';\nimport type {LocalizedStringFormatter} from '@internationalized/string';\nimport {RefObject, useEffect, useState} from 'react';\n\nlet dropTargets = new Map<Element, DropTarget>();\nlet dropItems = new Map<Element, DroppableItem>();\nlet dragSession: DragSession | null = null;\nlet subscriptions = new Set<() => void>();\n\ninterface DropTarget {\n element: FocusableElement;\n preventFocusOnDrop?: boolean;\n getDropOperation?: (types: Set<string>, allowedOperations: DropOperation[]) => DropOperation;\n onDropEnter?: (e: DropEnterEvent, dragTarget: DragTarget) => void;\n onDropExit?: (e: DropExitEvent) => void;\n onDropTargetEnter?: (target: DroppableCollectionTarget | null) => void;\n onDropActivate?: (e: DropActivateEvent, target: DroppableCollectionTarget | null) => void;\n onDrop?: (e: DropEvent, target: DroppableCollectionTarget | null) => void;\n onKeyDown?: (e: KeyboardEvent, dragTarget: DragTarget) => void;\n activateButtonRef?: RefObject<FocusableElement | null>;\n}\n\nexport function registerDropTarget(target: DropTarget) {\n dropTargets.set(target.element, target);\n dragSession?.updateValidDropTargets();\n return (): void => {\n dropTargets.delete(target.element);\n dragSession?.updateValidDropTargets();\n };\n}\n\ninterface DroppableItem {\n element: FocusableElement;\n target: DroppableCollectionTarget;\n getDropOperation?: (types: Set<string>, allowedOperations: DropOperation[]) => DropOperation;\n activateButtonRef?: RefObject<FocusableElement | null>;\n}\n\nexport function registerDropItem(item: DroppableItem) {\n dropItems.set(item.element, item);\n return (): void => {\n dropItems.delete(item.element);\n };\n}\n\ninterface DragTarget {\n element: FocusableElement;\n items: DragItem[];\n allowedDropOperations: DropOperation[];\n onDragEnd?: (e: DragEndEvent) => void;\n}\n\nexport function beginDragging(target: DragTarget, stringFormatter: LocalizedStringFormatter): void {\n if (dragSession) {\n throw new Error('Cannot begin dragging while already dragging');\n }\n\n dragSession = new DragSession(target, stringFormatter);\n requestAnimationFrame(() => {\n if (dragSession) {\n dragSession.setup();\n if (getDragModality() === 'keyboard') {\n dragSession.next();\n }\n }\n });\n\n for (let cb of subscriptions) {\n cb();\n }\n}\n\nexport function useDragSession(): DragSession | null {\n let [session, setSession] = useState(dragSession);\n\n useEffect(() => {\n let cb = () => setSession(dragSession);\n subscriptions.add(cb);\n return () => {\n subscriptions.delete(cb);\n };\n }, []);\n\n return session;\n}\n\n/** @private */\nexport function isVirtualDragging(): boolean {\n return !!dragSession;\n}\n\nfunction endDragging() {\n dragSession = null;\n for (let cb of subscriptions) {\n cb();\n }\n}\n\nexport function isValidDropTarget(element: Element): boolean {\n for (let target of dropTargets.keys()) {\n if (nodeContains(target, element)) {\n return true;\n }\n }\n\n return false;\n}\n\nconst CANCELED_EVENTS = [\n 'pointerdown',\n 'pointermove',\n 'pointerenter',\n 'pointerleave',\n 'pointerover',\n 'pointerout',\n 'pointerup',\n 'mousedown',\n 'mousemove',\n 'mouseenter',\n 'mouseleave',\n 'mouseover',\n 'mouseout',\n 'mouseup',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'focusin',\n 'focusout'\n];\n\nconst CLICK_EVENTS = ['pointerup', 'mouseup', 'touchend'];\n\nconst MESSAGES = {\n keyboard: 'dragStartedKeyboard',\n touch: 'dragStartedTouch',\n virtual: 'dragStartedVirtual'\n};\n\nclass DragSession {\n dragTarget: DragTarget;\n validDropTargets: DropTarget[] = [];\n currentDropTarget: DropTarget | null = null;\n currentDropItem: DroppableItem | null = null;\n dropOperation: DropOperation | null = null;\n private mutationObserver: MutationObserver | null = null;\n private restoreAriaHidden: (() => void) | null = null;\n private stringFormatter: LocalizedStringFormatter;\n private isVirtualClick: boolean = false;\n private initialFocused: boolean;\n\n constructor(target: DragTarget, stringFormatter: LocalizedStringFormatter) {\n this.dragTarget = target;\n this.stringFormatter = stringFormatter;\n\n this.onKeyDown = this.onKeyDown.bind(this);\n this.onKeyUp = this.onKeyUp.bind(this);\n this.onFocus = this.onFocus.bind(this);\n this.onBlur = this.onBlur.bind(this);\n this.onClick = this.onClick.bind(this);\n this.onPointerDown = this.onPointerDown.bind(this);\n this.cancelEvent = this.cancelEvent.bind(this);\n this.initialFocused = false;\n }\n\n setup(): void {\n document.addEventListener('keydown', this.onKeyDown, true);\n document.addEventListener('keyup', this.onKeyUp, true);\n window.addEventListener('focus', this.onFocus, true);\n window.addEventListener('blur', this.onBlur, true);\n document.addEventListener('click', this.onClick, true);\n document.addEventListener('pointerdown', this.onPointerDown, true);\n\n for (let event of CANCELED_EVENTS) {\n document.addEventListener(event, this.cancelEvent, true);\n }\n\n this.mutationObserver = new MutationObserver(() => this.updateValidDropTargets());\n this.updateValidDropTargets();\n\n announce(this.stringFormatter.format(MESSAGES[getDragModality()]));\n }\n\n teardown(): void {\n document.removeEventListener('keydown', this.onKeyDown, true);\n document.removeEventListener('keyup', this.onKeyUp, true);\n window.removeEventListener('focus', this.onFocus, true);\n window.removeEventListener('blur', this.onBlur, true);\n document.removeEventListener('click', this.onClick, true);\n document.removeEventListener('pointerdown', this.onPointerDown, true);\n\n for (let event of CANCELED_EVENTS) {\n document.removeEventListener(event, this.cancelEvent, true);\n }\n\n this.mutationObserver?.disconnect();\n this.restoreAriaHidden?.();\n }\n\n onKeyDown(e: KeyboardEvent): void {\n this.cancelEvent(e);\n\n if (e.key === 'Escape') {\n this.cancel();\n return;\n }\n\n if (e.key === 'Tab' && !(e.metaKey || e.altKey || e.ctrlKey)) {\n if (e.shiftKey) {\n this.previous();\n } else {\n this.next();\n }\n }\n\n if (typeof this.currentDropTarget?.onKeyDown === 'function') {\n this.currentDropTarget.onKeyDown(e, this.dragTarget);\n }\n }\n\n onKeyUp(e: KeyboardEvent): void {\n this.cancelEvent(e);\n\n if (e.key === 'Enter') {\n if (e.altKey || nodeContains(this.getCurrentActivateButton(), getEventTarget(e) as Node)) {\n this.activate(this.currentDropTarget, this.currentDropItem);\n } else {\n this.drop();\n }\n }\n }\n\n getCurrentActivateButton(): FocusableElement | null {\n return (\n this.currentDropItem?.activateButtonRef?.current ??\n this.currentDropTarget?.activateButtonRef?.current ??\n null\n );\n }\n\n onFocus(e: FocusEvent): void {\n let activateButton = this.getCurrentActivateButton();\n let eventTarget = getEventTarget(e);\n if (eventTarget === activateButton) {\n // TODO: canceling this breaks the focus ring. Revisit when we support tabbing.\n this.cancelEvent(e);\n return;\n }\n\n // Prevent focus events, except to the original drag target.\n if (eventTarget !== this.dragTarget.element) {\n this.cancelEvent(e);\n }\n\n // Ignore focus events on the window/document (JSDOM). Will be handled in onBlur, below.\n if (!(eventTarget instanceof HTMLElement) || eventTarget === this.dragTarget.element) {\n return;\n }\n\n let dropTarget =\n this.validDropTargets.find(target => target.element === eventTarget) ||\n this.validDropTargets.find(target => nodeContains(target.element, eventTarget));\n\n if (!dropTarget) {\n // if (e.target === activateButton) {\n // activateButton.focus();\n // }\n if (this.currentDropTarget) {\n this.currentDropTarget.element.focus();\n } else {\n this.dragTarget.element.focus();\n }\n return;\n }\n\n let item = dropItems.get(eventTarget);\n if (dropTarget) {\n this.setCurrentDropTarget(dropTarget, item);\n }\n }\n\n onBlur(e: FocusEvent): void {\n let activateButton = this.getCurrentActivateButton();\n // Guard activateButton non-null so this doesn't trip on the case where\n // there's no activate button and the focused element loses focus to nothing\n // (browsers and jsdom 26+ both set relatedTarget to null in that case).\n if (activateButton && e.relatedTarget === activateButton) {\n this.cancelEvent(e);\n return;\n }\n\n if (getEventTarget(e) !== this.dragTarget.element) {\n this.cancelEvent(e);\n }\n\n // If nothing is gaining focus, or e.relatedTarget is the window/document (JSDOM),\n // restore focus back to the current drop target if any, or the original drag target.\n if (!e.relatedTarget || !(e.relatedTarget instanceof HTMLElement)) {\n if (this.currentDropTarget) {\n this.currentDropTarget.element.focus();\n } else {\n this.dragTarget.element.focus();\n }\n }\n }\n\n onClick(e: MouseEvent): void {\n this.cancelEvent(e);\n if (isVirtualClick(e) || this.isVirtualClick) {\n let dropElements = dropItems.values();\n let eventTarget = getEventTarget(e) as HTMLElement;\n let item = [...dropElements].find(\n item =>\n item.element === eventTarget || nodeContains(item.activateButtonRef?.current, eventTarget)\n );\n let dropTarget = this.validDropTargets.find(target =>\n nodeContains(target.element, eventTarget)\n );\n let activateButton =\n item?.activateButtonRef?.current ?? dropTarget?.activateButtonRef?.current;\n if (nodeContains(activateButton, eventTarget) && dropTarget) {\n this.activate(dropTarget, item);\n return;\n }\n\n if (getEventTarget(e) === this.dragTarget.element) {\n this.cancel();\n return;\n }\n\n if (dropTarget) {\n this.setCurrentDropTarget(dropTarget, item);\n this.drop(item);\n }\n }\n }\n\n onPointerDown(e: PointerEvent): void {\n // Android Talkback double tap has e.detail = 1 for onClick. Detect the virtual click in onPointerDown before onClick fires\n // so we can properly perform cancel and drop operations.\n this.cancelEvent(e);\n this.isVirtualClick = isVirtualPointerEvent(e);\n }\n\n cancelEvent(e: Event): void {\n // Allow focusin and focusout on the drag target so focus ring works properly.\n let eventTarget = getEventTarget(e);\n if (\n (e.type === 'focusin' || e.type === 'focusout') &&\n (eventTarget === this.dragTarget?.element || eventTarget === this.getCurrentActivateButton())\n ) {\n return;\n }\n\n // Allow default for events that might cancel a click event\n if (!CLICK_EVENTS.includes(e.type)) {\n e.preventDefault();\n }\n\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n\n updateValidDropTargets(): void {\n if (!this.mutationObserver) {\n return;\n }\n\n this.mutationObserver.disconnect();\n if (this.restoreAriaHidden) {\n this.restoreAriaHidden();\n }\n\n this.validDropTargets = findValidDropTargets(this.dragTarget);\n\n // Shuffle drop target order based on starting drag target.\n if (this.validDropTargets.length > 0) {\n let nearestIndex = this.findNearestDropTarget();\n this.validDropTargets = [\n ...this.validDropTargets.slice(nearestIndex),\n ...this.validDropTargets.slice(0, nearestIndex)\n ];\n }\n\n if (this.currentDropTarget && !this.validDropTargets.includes(this.currentDropTarget)) {\n this.setCurrentDropTarget(this.validDropTargets[0]);\n }\n\n // Find valid drop items within collections\n let types = getTypes(this.dragTarget.items);\n let validDropItems = [...dropItems.values()].filter(item => {\n if (typeof item.getDropOperation === 'function') {\n return item.getDropOperation(types, this.dragTarget.allowedDropOperations) !== 'cancel';\n }\n\n return true;\n });\n\n // Filter out drop targets that contain valid items. We don't want to stop hiding elements\n // other than the drop items that exist inside the collection.\n let visibleDropTargets = this.validDropTargets.filter(\n target => !validDropItems.some(item => nodeContains(target.element, item.element))\n );\n\n this.restoreAriaHidden = ariaHideOutside(\n [\n this.dragTarget.element,\n ...validDropItems.flatMap(item =>\n item.activateButtonRef?.current\n ? [item.element, item.activateButtonRef?.current]\n : [item.element]\n ),\n ...visibleDropTargets.flatMap(target =>\n target.activateButtonRef?.current\n ? [target.element, target.activateButtonRef?.current]\n : [target.element]\n )\n ],\n {shouldUseInert: true}\n );\n\n this.mutationObserver.observe(document.body, {\n subtree: true,\n attributes: true,\n attributeFilter: ['aria-hidden', 'inert']\n });\n }\n\n next(): void {\n // TODO: Allow tabbing to the activate button. Revisit once we fix the focus ring.\n // For now, the activate button is reachable by screen readers and ArrowLeft/ArrowRight\n // is usable specifically by Tree. Will need tabbing for other components.\n // let activateButton = this.getCurrentActivateButton();\n // if (activateButton && document.activeElement !== activateButton) {\n // activateButton.focus();\n // return;\n // }\n\n if (!this.currentDropTarget) {\n this.setCurrentDropTarget(this.validDropTargets[0]);\n return;\n }\n\n let index = this.validDropTargets.indexOf(this.currentDropTarget);\n if (index < 0) {\n this.setCurrentDropTarget(this.validDropTargets[0]);\n return;\n }\n\n // If we've reached the end of the valid drop targets, cycle back to the original drag target.\n // This lets the user cancel the drag in case they don't have an Escape key (e.g. iPad keyboard case).\n if (index === this.validDropTargets.length - 1) {\n if (!this.dragTarget.element.closest('[aria-hidden=\"true\"], [inert]')) {\n this.setCurrentDropTarget(null);\n this.dragTarget.element.focus();\n } else {\n this.setCurrentDropTarget(this.validDropTargets[0]);\n }\n } else {\n this.setCurrentDropTarget(this.validDropTargets[index + 1]);\n }\n }\n\n previous(): void {\n // let activateButton = this.getCurrentActivateButton();\n // if (activateButton && document.activeElement === activateButton) {\n // let target = this.currentDropItem ?? this.currentDropTarget;\n // if (target) {\n // target.element.focus();\n // return;\n // }\n // }\n\n if (!this.currentDropTarget) {\n this.setCurrentDropTarget(this.validDropTargets[this.validDropTargets.length - 1]);\n return;\n }\n\n let index = this.validDropTargets.indexOf(this.currentDropTarget);\n if (index < 0) {\n this.setCurrentDropTarget(this.validDropTargets[this.validDropTargets.length - 1]);\n return;\n }\n\n // If we've reached the start of the valid drop targets, cycle back to the original drag target.\n // This lets the user cancel the drag in case they don't have an Escape key (e.g. iPad keyboard case).\n if (index === 0) {\n if (!this.dragTarget.element.closest('[aria-hidden=\"true\"], [inert]')) {\n this.setCurrentDropTarget(null);\n this.dragTarget.element.focus();\n } else {\n this.setCurrentDropTarget(this.validDropTargets[this.validDropTargets.length - 1]);\n }\n } else {\n this.setCurrentDropTarget(this.validDropTargets[index - 1]);\n }\n }\n\n findNearestDropTarget(): number {\n let dragTargetRect = this.dragTarget.element.getBoundingClientRect();\n\n let minDistance = Infinity;\n let nearest = -1;\n for (let i = 0; i < this.validDropTargets.length; i++) {\n let dropTarget = this.validDropTargets[i];\n let rect = dropTarget.element.getBoundingClientRect();\n let dx = rect.left - dragTargetRect.left;\n let dy = rect.top - dragTargetRect.top;\n let dist = dx * dx + dy * dy;\n if (dist < minDistance) {\n minDistance = dist;\n nearest = i;\n }\n }\n\n return nearest;\n }\n\n setCurrentDropTarget(dropTarget: DropTarget | null, item?: DroppableItem): void {\n if (dropTarget !== this.currentDropTarget) {\n if (this.currentDropTarget && typeof this.currentDropTarget.onDropExit === 'function') {\n let rect = this.currentDropTarget.element.getBoundingClientRect();\n this.currentDropTarget.onDropExit({\n type: 'dropexit',\n x: rect.left + rect.width / 2,\n y: rect.top + rect.height / 2\n });\n }\n\n this.currentDropTarget = dropTarget;\n\n if (dropTarget) {\n if (typeof dropTarget.onDropEnter === 'function') {\n let rect = dropTarget.element.getBoundingClientRect();\n dropTarget.onDropEnter(\n {\n type: 'dropenter',\n x: rect.left + rect.width / 2,\n y: rect.top + rect.height / 2\n },\n this.dragTarget\n );\n }\n\n if (!item) {\n dropTarget?.element.focus();\n }\n }\n }\n\n if (item != null && item !== this.currentDropItem) {\n if (\n this.currentDropTarget &&\n typeof this.currentDropTarget.onDropTargetEnter === 'function'\n ) {\n this.currentDropTarget.onDropTargetEnter(item.target);\n }\n item.element.focus();\n this.currentDropItem = item;\n\n // Announce first drop target after drag start announcement finishes.\n // Otherwise, it will never get announced because drag start announcement is assertive.\n if (!this.initialFocused) {\n let label = item?.element.getAttribute('aria-label');\n if (label) {\n announce(label, 'polite');\n }\n this.initialFocused = true;\n }\n }\n }\n\n end(): void {\n this.teardown();\n endDragging();\n\n if (typeof this.dragTarget.onDragEnd === 'function') {\n let target =\n this.currentDropTarget && this.dropOperation !== 'cancel'\n ? this.currentDropTarget\n : this.dragTarget;\n let rect = target.element.getBoundingClientRect();\n this.dragTarget.onDragEnd({\n type: 'dragend',\n x: rect.x + rect.width / 2,\n y: rect.y + rect.height / 2,\n dropOperation: this.dropOperation || 'cancel'\n });\n }\n\n if (this.currentDropTarget && !this.currentDropTarget.preventFocusOnDrop) {\n // Re-trigger focus event on active element, since it will not have received it during dragging (see cancelEvent).\n // This corrects state such as whether focus ring should appear.\n // useDroppableCollection handles this itself, so this is only for standalone drop zones.\n getActiveElement()?.dispatchEvent(new FocusEvent('focusin', {bubbles: true}));\n }\n\n this.setCurrentDropTarget(null);\n }\n\n cancel(): void {\n this.setCurrentDropTarget(null);\n this.end();\n if (!this.dragTarget.element.closest('[aria-hidden=\"true\"], [inert]')) {\n this.dragTarget.element.focus();\n }\n\n // Re-trigger focus event on active element, since it will not have received it during dragging (see cancelEvent).\n getActiveElement()?.dispatchEvent(new FocusEvent('focusin', {bubbles: true}));\n\n announce(this.stringFormatter.format('dropCanceled'));\n }\n\n drop(item?: DroppableItem): void {\n if (!this.currentDropTarget) {\n this.cancel();\n return;\n }\n\n if (typeof item?.getDropOperation === 'function') {\n let types = getTypes(this.dragTarget.items);\n this.dropOperation = item.getDropOperation(types, this.dragTarget.allowedDropOperations);\n } else if (typeof this.currentDropTarget.getDropOperation === 'function') {\n let types = getTypes(this.dragTarget.items);\n this.dropOperation = this.currentDropTarget.getDropOperation(\n types,\n this.dragTarget.allowedDropOperations\n );\n } else {\n // TODO: show menu ??\n this.dropOperation = this.dragTarget.allowedDropOperations[0];\n }\n\n if (typeof this.currentDropTarget.onDrop === 'function') {\n let items: DropItem[] = this.dragTarget.items.map(item => ({\n kind: 'text',\n types: new Set(Object.keys(item)),\n getText: (type: string) => Promise.resolve(item[type])\n }));\n\n let rect = this.currentDropTarget.element.getBoundingClientRect();\n this.currentDropTarget.onDrop(\n {\n type: 'drop',\n x: rect.left + rect.width / 2,\n y: rect.top + rect.height / 2,\n items,\n dropOperation: this.dropOperation\n },\n item?.target ?? null\n );\n }\n\n this.end();\n announce(this.stringFormatter.format('dropComplete'));\n }\n\n activate(dropTarget: DropTarget | null, dropItem: DroppableItem | null | undefined): void {\n if (dropTarget && typeof dropTarget.onDropActivate === 'function') {\n let target = dropItem?.target ?? null;\n let rect = dropTarget.element.getBoundingClientRect();\n dropTarget.onDropActivate(\n {\n type: 'dropactivate',\n x: rect.left + rect.width / 2,\n y: rect.top + rect.height / 2\n },\n target\n );\n }\n }\n}\n\nfunction findValidDropTargets(options: DragTarget) {\n let types = getTypes(options.items);\n return [...dropTargets.values()].filter(target => {\n if (target.element.closest('[aria-hidden=\"true\"], [inert]')) {\n return false;\n }\n\n if (typeof target.getDropOperation === 'function') {\n return target.getDropOperation(types, options.allowedDropOperations) !== 'cancel';\n }\n\n return true;\n });\n}\n"],"names":[],"version":3,"file":"DragManager.cjs.map"}
@@ -181,7 +181,10 @@ class $e1cd17e16f360ff6$var$DragSession {
181
181
  }
182
182
  onBlur(e) {
183
183
  let activateButton = this.getCurrentActivateButton();
184
- if (e.relatedTarget === activateButton) {
184
+ // Guard activateButton non-null so this doesn't trip on the case where
185
+ // there's no activate button and the focused element loses focus to nothing
186
+ // (browsers and jsdom 26+ both set relatedTarget to null in that case).
187
+ if (activateButton && e.relatedTarget === activateButton) {
185
188
  this.cancelEvent(e);
186
189
  return;
187
190
  }