react-aria 3.48.0 → 3.49.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 (1208) 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.map +1 -1
  230. package/dist/private/autocomplete/useAutocomplete.js.map +1 -1
  231. package/dist/private/autocomplete/useAutocomplete.mjs.map +1 -1
  232. package/dist/private/autocomplete/useSearchAutocomplete.cjs.map +1 -1
  233. package/dist/private/autocomplete/useSearchAutocomplete.js.map +1 -1
  234. package/dist/private/autocomplete/useSearchAutocomplete.mjs.map +1 -1
  235. package/dist/private/breadcrumbs/useBreadcrumbItem.cjs.map +1 -1
  236. package/dist/private/breadcrumbs/useBreadcrumbItem.js.map +1 -1
  237. package/dist/private/breadcrumbs/useBreadcrumbItem.mjs.map +1 -1
  238. package/dist/private/breadcrumbs/useBreadcrumbs.cjs.map +1 -1
  239. package/dist/private/breadcrumbs/useBreadcrumbs.js.map +1 -1
  240. package/dist/private/breadcrumbs/useBreadcrumbs.mjs.map +1 -1
  241. package/dist/private/button/useButton.cjs.map +1 -1
  242. package/dist/private/button/useButton.js.map +1 -1
  243. package/dist/private/button/useButton.mjs.map +1 -1
  244. package/dist/private/button/useToggleButton.cjs.map +1 -1
  245. package/dist/private/button/useToggleButton.js.map +1 -1
  246. package/dist/private/button/useToggleButton.mjs.map +1 -1
  247. package/dist/private/button/useToggleButtonGroup.cjs.map +1 -1
  248. package/dist/private/button/useToggleButtonGroup.js.map +1 -1
  249. package/dist/private/button/useToggleButtonGroup.mjs.map +1 -1
  250. package/dist/private/calendar/useCalendar.cjs.map +1 -1
  251. package/dist/private/calendar/useCalendar.js.map +1 -1
  252. package/dist/private/calendar/useCalendar.mjs.map +1 -1
  253. package/dist/private/calendar/useCalendarBase.cjs.map +1 -1
  254. package/dist/private/calendar/useCalendarBase.js.map +1 -1
  255. package/dist/private/calendar/useCalendarBase.mjs.map +1 -1
  256. package/dist/private/calendar/useCalendarCell.cjs +10 -14
  257. package/dist/private/calendar/useCalendarCell.cjs.map +1 -1
  258. package/dist/private/calendar/useCalendarCell.js +10 -14
  259. package/dist/private/calendar/useCalendarCell.js.map +1 -1
  260. package/dist/private/calendar/useCalendarCell.mjs +10 -14
  261. package/dist/private/calendar/useCalendarCell.mjs.map +1 -1
  262. package/dist/private/calendar/useCalendarGrid.cjs +9 -5
  263. package/dist/private/calendar/useCalendarGrid.cjs.map +1 -1
  264. package/dist/private/calendar/useCalendarGrid.js +10 -6
  265. package/dist/private/calendar/useCalendarGrid.js.map +1 -1
  266. package/dist/private/calendar/useCalendarGrid.mjs +10 -6
  267. package/dist/private/calendar/useCalendarGrid.mjs.map +1 -1
  268. package/dist/private/calendar/useCalendarHeading.cjs +56 -0
  269. package/dist/private/calendar/useCalendarHeading.cjs.map +1 -0
  270. package/dist/private/calendar/useCalendarHeading.js +52 -0
  271. package/dist/private/calendar/useCalendarHeading.js.map +1 -0
  272. package/dist/private/calendar/useCalendarHeading.mjs +51 -0
  273. package/dist/private/calendar/useCalendarHeading.mjs.map +1 -0
  274. package/dist/private/calendar/useCalendarMonthPicker.cjs +66 -0
  275. package/dist/private/calendar/useCalendarMonthPicker.cjs.map +1 -0
  276. package/dist/private/calendar/useCalendarMonthPicker.js +61 -0
  277. package/dist/private/calendar/useCalendarMonthPicker.js.map +1 -0
  278. package/dist/private/calendar/useCalendarMonthPicker.mjs +61 -0
  279. package/dist/private/calendar/useCalendarMonthPicker.mjs.map +1 -0
  280. package/dist/private/calendar/useCalendarYearPicker.cjs +90 -0
  281. package/dist/private/calendar/useCalendarYearPicker.cjs.map +1 -0
  282. package/dist/private/calendar/useCalendarYearPicker.js +86 -0
  283. package/dist/private/calendar/useCalendarYearPicker.js.map +1 -0
  284. package/dist/private/calendar/useCalendarYearPicker.mjs +85 -0
  285. package/dist/private/calendar/useCalendarYearPicker.mjs.map +1 -0
  286. package/dist/private/calendar/useRangeCalendar.cjs +1 -1
  287. package/dist/private/calendar/useRangeCalendar.cjs.map +1 -1
  288. package/dist/private/calendar/useRangeCalendar.js +1 -1
  289. package/dist/private/calendar/useRangeCalendar.js.map +1 -1
  290. package/dist/private/calendar/useRangeCalendar.mjs +1 -1
  291. package/dist/private/calendar/useRangeCalendar.mjs.map +1 -1
  292. package/dist/private/calendar/utils.cjs +20 -4
  293. package/dist/private/calendar/utils.cjs.map +1 -1
  294. package/dist/private/calendar/utils.js +22 -5
  295. package/dist/private/calendar/utils.js.map +1 -1
  296. package/dist/private/calendar/utils.mjs +20 -4
  297. package/dist/private/calendar/utils.mjs.map +1 -1
  298. package/dist/private/checkbox/useCheckbox.cjs +6 -35
  299. package/dist/private/checkbox/useCheckbox.cjs.map +1 -1
  300. package/dist/private/checkbox/useCheckbox.js +6 -35
  301. package/dist/private/checkbox/useCheckbox.js.map +1 -1
  302. package/dist/private/checkbox/useCheckbox.mjs +6 -35
  303. package/dist/private/checkbox/useCheckbox.mjs.map +1 -1
  304. package/dist/private/checkbox/useCheckboxGroup.cjs.map +1 -1
  305. package/dist/private/checkbox/useCheckboxGroup.js.map +1 -1
  306. package/dist/private/checkbox/useCheckboxGroup.mjs.map +1 -1
  307. package/dist/private/checkbox/useCheckboxGroupItem.cjs +1 -1
  308. package/dist/private/checkbox/useCheckboxGroupItem.cjs.map +1 -1
  309. package/dist/private/checkbox/useCheckboxGroupItem.js +1 -1
  310. package/dist/private/checkbox/useCheckboxGroupItem.js.map +1 -1
  311. package/dist/private/checkbox/useCheckboxGroupItem.mjs +1 -1
  312. package/dist/private/checkbox/useCheckboxGroupItem.mjs.map +1 -1
  313. package/dist/private/checkbox/utils.cjs.map +1 -1
  314. package/dist/private/checkbox/utils.js.map +1 -1
  315. package/dist/private/checkbox/utils.mjs.map +1 -1
  316. package/dist/private/collections/BaseCollection.cjs +4 -4
  317. package/dist/private/collections/BaseCollection.cjs.map +1 -1
  318. package/dist/private/collections/BaseCollection.js +4 -4
  319. package/dist/private/collections/BaseCollection.js.map +1 -1
  320. package/dist/private/collections/BaseCollection.mjs +4 -4
  321. package/dist/private/collections/BaseCollection.mjs.map +1 -1
  322. package/dist/private/collections/CollectionBuilder.cjs +5 -3
  323. package/dist/private/collections/CollectionBuilder.cjs.map +1 -1
  324. package/dist/private/collections/CollectionBuilder.js +5 -3
  325. package/dist/private/collections/CollectionBuilder.js.map +1 -1
  326. package/dist/private/collections/CollectionBuilder.mjs +5 -3
  327. package/dist/private/collections/CollectionBuilder.mjs.map +1 -1
  328. package/dist/private/collections/Document.cjs.map +1 -1
  329. package/dist/private/collections/Document.js.map +1 -1
  330. package/dist/private/collections/Document.mjs.map +1 -1
  331. package/dist/private/collections/Hidden.cjs.map +1 -1
  332. package/dist/private/collections/Hidden.js.map +1 -1
  333. package/dist/private/collections/Hidden.mjs.map +1 -1
  334. package/dist/private/collections/useCachedChildren.cjs +29 -8
  335. package/dist/private/collections/useCachedChildren.cjs.map +1 -1
  336. package/dist/private/collections/useCachedChildren.js +29 -8
  337. package/dist/private/collections/useCachedChildren.js.map +1 -1
  338. package/dist/private/collections/useCachedChildren.mjs +29 -8
  339. package/dist/private/collections/useCachedChildren.mjs.map +1 -1
  340. package/dist/private/color/useColorArea.cjs.map +1 -1
  341. package/dist/private/color/useColorArea.js.map +1 -1
  342. package/dist/private/color/useColorArea.mjs.map +1 -1
  343. package/dist/private/color/useColorAreaGradient.cjs +1 -1
  344. package/dist/private/color/useColorAreaGradient.cjs.map +1 -1
  345. package/dist/private/color/useColorAreaGradient.js +1 -1
  346. package/dist/private/color/useColorAreaGradient.js.map +1 -1
  347. package/dist/private/color/useColorAreaGradient.mjs +1 -1
  348. package/dist/private/color/useColorAreaGradient.mjs.map +1 -1
  349. package/dist/private/color/useColorChannelField.cjs.map +1 -1
  350. package/dist/private/color/useColorChannelField.js.map +1 -1
  351. package/dist/private/color/useColorChannelField.mjs.map +1 -1
  352. package/dist/private/color/useColorField.cjs +1 -1
  353. package/dist/private/color/useColorField.cjs.map +1 -1
  354. package/dist/private/color/useColorField.js +1 -1
  355. package/dist/private/color/useColorField.js.map +1 -1
  356. package/dist/private/color/useColorField.mjs +1 -1
  357. package/dist/private/color/useColorField.mjs.map +1 -1
  358. package/dist/private/color/useColorSlider.cjs +2 -2
  359. package/dist/private/color/useColorSlider.cjs.map +1 -1
  360. package/dist/private/color/useColorSlider.js +2 -2
  361. package/dist/private/color/useColorSlider.js.map +1 -1
  362. package/dist/private/color/useColorSlider.mjs +2 -2
  363. package/dist/private/color/useColorSlider.mjs.map +1 -1
  364. package/dist/private/color/useColorSwatch.cjs.map +1 -1
  365. package/dist/private/color/useColorSwatch.js.map +1 -1
  366. package/dist/private/color/useColorSwatch.mjs.map +1 -1
  367. package/dist/private/color/useColorWheel.cjs.map +1 -1
  368. package/dist/private/color/useColorWheel.js.map +1 -1
  369. package/dist/private/color/useColorWheel.mjs.map +1 -1
  370. package/dist/private/combobox/useComboBox.cjs +3 -3
  371. package/dist/private/combobox/useComboBox.cjs.map +1 -1
  372. package/dist/private/combobox/useComboBox.js +3 -3
  373. package/dist/private/combobox/useComboBox.js.map +1 -1
  374. package/dist/private/combobox/useComboBox.mjs +3 -3
  375. package/dist/private/combobox/useComboBox.mjs.map +1 -1
  376. package/dist/private/datepicker/useDateField.cjs.map +1 -1
  377. package/dist/private/datepicker/useDateField.js.map +1 -1
  378. package/dist/private/datepicker/useDateField.mjs.map +1 -1
  379. package/dist/private/datepicker/useDatePicker.cjs.map +1 -1
  380. package/dist/private/datepicker/useDatePicker.js.map +1 -1
  381. package/dist/private/datepicker/useDatePicker.mjs.map +1 -1
  382. package/dist/private/datepicker/useDatePickerGroup.cjs.map +1 -1
  383. package/dist/private/datepicker/useDatePickerGroup.js.map +1 -1
  384. package/dist/private/datepicker/useDatePickerGroup.mjs.map +1 -1
  385. package/dist/private/datepicker/useDateRangePicker.cjs.map +1 -1
  386. package/dist/private/datepicker/useDateRangePicker.js.map +1 -1
  387. package/dist/private/datepicker/useDateRangePicker.mjs.map +1 -1
  388. package/dist/private/datepicker/useDateSegment.cjs +2 -2
  389. package/dist/private/datepicker/useDateSegment.cjs.map +1 -1
  390. package/dist/private/datepicker/useDateSegment.js +2 -2
  391. package/dist/private/datepicker/useDateSegment.js.map +1 -1
  392. package/dist/private/datepicker/useDateSegment.mjs +2 -2
  393. package/dist/private/datepicker/useDateSegment.mjs.map +1 -1
  394. package/dist/private/datepicker/useDisplayNames.cjs.map +1 -1
  395. package/dist/private/datepicker/useDisplayNames.js.map +1 -1
  396. package/dist/private/datepicker/useDisplayNames.mjs.map +1 -1
  397. package/dist/private/dialog/useDialog.cjs.map +1 -1
  398. package/dist/private/dialog/useDialog.js.map +1 -1
  399. package/dist/private/dialog/useDialog.mjs.map +1 -1
  400. package/dist/private/disclosure/useDisclosure.cjs.map +1 -1
  401. package/dist/private/disclosure/useDisclosure.js.map +1 -1
  402. package/dist/private/disclosure/useDisclosure.mjs.map +1 -1
  403. package/dist/private/dnd/DragManager.cjs.map +1 -1
  404. package/dist/private/dnd/DragManager.js.map +1 -1
  405. package/dist/private/dnd/DragManager.mjs.map +1 -1
  406. package/dist/private/dnd/DragPreview.cjs.map +1 -1
  407. package/dist/private/dnd/DragPreview.js.map +1 -1
  408. package/dist/private/dnd/DragPreview.mjs.map +1 -1
  409. package/dist/private/dnd/DropTargetKeyboardNavigation.cjs +16 -4
  410. package/dist/private/dnd/DropTargetKeyboardNavigation.cjs.map +1 -1
  411. package/dist/private/dnd/DropTargetKeyboardNavigation.js +16 -4
  412. package/dist/private/dnd/DropTargetKeyboardNavigation.js.map +1 -1
  413. package/dist/private/dnd/DropTargetKeyboardNavigation.mjs +16 -4
  414. package/dist/private/dnd/DropTargetKeyboardNavigation.mjs.map +1 -1
  415. package/dist/private/dnd/ListDropTargetDelegate.cjs.map +1 -1
  416. package/dist/private/dnd/ListDropTargetDelegate.js.map +1 -1
  417. package/dist/private/dnd/ListDropTargetDelegate.mjs.map +1 -1
  418. package/dist/private/dnd/constants.cjs.map +1 -1
  419. package/dist/private/dnd/constants.js.map +1 -1
  420. package/dist/private/dnd/constants.mjs.map +1 -1
  421. package/dist/private/dnd/useAutoScroll.cjs.map +1 -1
  422. package/dist/private/dnd/useAutoScroll.js.map +1 -1
  423. package/dist/private/dnd/useAutoScroll.mjs.map +1 -1
  424. package/dist/private/dnd/useClipboard.cjs.map +1 -1
  425. package/dist/private/dnd/useClipboard.js.map +1 -1
  426. package/dist/private/dnd/useClipboard.mjs.map +1 -1
  427. package/dist/private/dnd/useDrag.cjs.map +1 -1
  428. package/dist/private/dnd/useDrag.js.map +1 -1
  429. package/dist/private/dnd/useDrag.mjs.map +1 -1
  430. package/dist/private/dnd/useDraggableCollection.cjs.map +1 -1
  431. package/dist/private/dnd/useDraggableCollection.js.map +1 -1
  432. package/dist/private/dnd/useDraggableCollection.mjs.map +1 -1
  433. package/dist/private/dnd/useDraggableItem.cjs.map +1 -1
  434. package/dist/private/dnd/useDraggableItem.js.map +1 -1
  435. package/dist/private/dnd/useDraggableItem.mjs.map +1 -1
  436. package/dist/private/dnd/useDrop.cjs.map +1 -1
  437. package/dist/private/dnd/useDrop.js.map +1 -1
  438. package/dist/private/dnd/useDrop.mjs.map +1 -1
  439. package/dist/private/dnd/useDropIndicator.cjs.map +1 -1
  440. package/dist/private/dnd/useDropIndicator.js.map +1 -1
  441. package/dist/private/dnd/useDropIndicator.mjs.map +1 -1
  442. package/dist/private/dnd/useDroppableCollection.cjs.map +1 -1
  443. package/dist/private/dnd/useDroppableCollection.js.map +1 -1
  444. package/dist/private/dnd/useDroppableCollection.mjs.map +1 -1
  445. package/dist/private/dnd/useDroppableItem.cjs.map +1 -1
  446. package/dist/private/dnd/useDroppableItem.js.map +1 -1
  447. package/dist/private/dnd/useDroppableItem.mjs.map +1 -1
  448. package/dist/private/dnd/useVirtualDrop.cjs.map +1 -1
  449. package/dist/private/dnd/useVirtualDrop.js.map +1 -1
  450. package/dist/private/dnd/useVirtualDrop.mjs.map +1 -1
  451. package/dist/private/dnd/utils.cjs +1 -1
  452. package/dist/private/dnd/utils.cjs.map +1 -1
  453. package/dist/private/dnd/utils.js +1 -1
  454. package/dist/private/dnd/utils.js.map +1 -1
  455. package/dist/private/dnd/utils.mjs +1 -1
  456. package/dist/private/dnd/utils.mjs.map +1 -1
  457. package/dist/private/focus/FocusRing.cjs.map +1 -1
  458. package/dist/private/focus/FocusRing.js.map +1 -1
  459. package/dist/private/focus/FocusRing.mjs.map +1 -1
  460. package/dist/private/focus/FocusScope.cjs +4 -1
  461. package/dist/private/focus/FocusScope.cjs.map +1 -1
  462. package/dist/private/focus/FocusScope.js +4 -1
  463. package/dist/private/focus/FocusScope.js.map +1 -1
  464. package/dist/private/focus/FocusScope.mjs +4 -1
  465. package/dist/private/focus/FocusScope.mjs.map +1 -1
  466. package/dist/private/focus/useFocusRing.cjs.map +1 -1
  467. package/dist/private/focus/useFocusRing.js.map +1 -1
  468. package/dist/private/focus/useFocusRing.mjs.map +1 -1
  469. package/dist/private/focus/useHasTabbableChild.cjs.map +1 -1
  470. package/dist/private/focus/useHasTabbableChild.js.map +1 -1
  471. package/dist/private/focus/useHasTabbableChild.mjs.map +1 -1
  472. package/dist/private/form/useFormValidation.cjs.map +1 -1
  473. package/dist/private/form/useFormValidation.js.map +1 -1
  474. package/dist/private/form/useFormValidation.mjs.map +1 -1
  475. package/dist/private/grid/GridKeyboardDelegate.cjs +9 -9
  476. package/dist/private/grid/GridKeyboardDelegate.cjs.map +1 -1
  477. package/dist/private/grid/GridKeyboardDelegate.js +10 -10
  478. package/dist/private/grid/GridKeyboardDelegate.js.map +1 -1
  479. package/dist/private/grid/GridKeyboardDelegate.mjs +9 -9
  480. package/dist/private/grid/GridKeyboardDelegate.mjs.map +1 -1
  481. package/dist/private/grid/useGrid.cjs.map +1 -1
  482. package/dist/private/grid/useGrid.js.map +1 -1
  483. package/dist/private/grid/useGrid.mjs.map +1 -1
  484. package/dist/private/grid/useGridCell.cjs.map +1 -1
  485. package/dist/private/grid/useGridCell.js.map +1 -1
  486. package/dist/private/grid/useGridCell.mjs.map +1 -1
  487. package/dist/private/grid/useGridRow.cjs.map +1 -1
  488. package/dist/private/grid/useGridRow.js.map +1 -1
  489. package/dist/private/grid/useGridRow.mjs.map +1 -1
  490. package/dist/private/grid/useGridRowGroup.cjs.map +1 -1
  491. package/dist/private/grid/useGridRowGroup.js.map +1 -1
  492. package/dist/private/grid/useGridRowGroup.mjs.map +1 -1
  493. package/dist/private/grid/useGridSelectionAnnouncement.cjs.map +1 -1
  494. package/dist/private/grid/useGridSelectionAnnouncement.js.map +1 -1
  495. package/dist/private/grid/useGridSelectionAnnouncement.mjs.map +1 -1
  496. package/dist/private/grid/useGridSelectionCheckbox.cjs.map +1 -1
  497. package/dist/private/grid/useGridSelectionCheckbox.js.map +1 -1
  498. package/dist/private/grid/useGridSelectionCheckbox.mjs.map +1 -1
  499. package/dist/private/grid/useHighlightSelectionDescription.cjs.map +1 -1
  500. package/dist/private/grid/useHighlightSelectionDescription.js.map +1 -1
  501. package/dist/private/grid/useHighlightSelectionDescription.mjs.map +1 -1
  502. package/dist/private/grid/utils.cjs.map +1 -1
  503. package/dist/private/grid/utils.js.map +1 -1
  504. package/dist/private/grid/utils.mjs.map +1 -1
  505. package/dist/private/gridlist/useGridList.cjs.map +1 -1
  506. package/dist/private/gridlist/useGridList.js.map +1 -1
  507. package/dist/private/gridlist/useGridList.mjs.map +1 -1
  508. package/dist/private/gridlist/useGridListItem.cjs +5 -3
  509. package/dist/private/gridlist/useGridListItem.cjs.map +1 -1
  510. package/dist/private/gridlist/useGridListItem.js +6 -3
  511. package/dist/private/gridlist/useGridListItem.js.map +1 -1
  512. package/dist/private/gridlist/useGridListItem.mjs +5 -3
  513. package/dist/private/gridlist/useGridListItem.mjs.map +1 -1
  514. package/dist/private/gridlist/useGridListSection.cjs +3 -1
  515. package/dist/private/gridlist/useGridListSection.cjs.map +1 -1
  516. package/dist/private/gridlist/useGridListSection.js +3 -1
  517. package/dist/private/gridlist/useGridListSection.js.map +1 -1
  518. package/dist/private/gridlist/useGridListSection.mjs +3 -1
  519. package/dist/private/gridlist/useGridListSection.mjs.map +1 -1
  520. package/dist/private/gridlist/useGridListSelectionCheckbox.cjs.map +1 -1
  521. package/dist/private/gridlist/useGridListSelectionCheckbox.js.map +1 -1
  522. package/dist/private/gridlist/useGridListSelectionCheckbox.mjs.map +1 -1
  523. package/dist/private/gridlist/utils.cjs.map +1 -1
  524. package/dist/private/gridlist/utils.js.map +1 -1
  525. package/dist/private/gridlist/utils.mjs.map +1 -1
  526. package/dist/private/i18n/I18nProvider.cjs.map +1 -1
  527. package/dist/private/i18n/I18nProvider.js.map +1 -1
  528. package/dist/private/i18n/I18nProvider.mjs.map +1 -1
  529. package/dist/private/i18n/server.cjs.map +1 -1
  530. package/dist/private/i18n/server.js.map +1 -1
  531. package/dist/private/i18n/server.mjs.map +1 -1
  532. package/dist/private/i18n/useCollator.cjs.map +1 -1
  533. package/dist/private/i18n/useCollator.js.map +1 -1
  534. package/dist/private/i18n/useCollator.mjs.map +1 -1
  535. package/dist/private/i18n/useDateFormatter.cjs.map +1 -1
  536. package/dist/private/i18n/useDateFormatter.js.map +1 -1
  537. package/dist/private/i18n/useDateFormatter.mjs.map +1 -1
  538. package/dist/private/i18n/useDefaultLocale.cjs +2 -1
  539. package/dist/private/i18n/useDefaultLocale.cjs.map +1 -1
  540. package/dist/private/i18n/useDefaultLocale.js +2 -1
  541. package/dist/private/i18n/useDefaultLocale.js.map +1 -1
  542. package/dist/private/i18n/useDefaultLocale.mjs +2 -1
  543. package/dist/private/i18n/useDefaultLocale.mjs.map +1 -1
  544. package/dist/private/i18n/useFilter.cjs.map +1 -1
  545. package/dist/private/i18n/useFilter.js.map +1 -1
  546. package/dist/private/i18n/useFilter.mjs.map +1 -1
  547. package/dist/private/i18n/useListFormatter.cjs.map +1 -1
  548. package/dist/private/i18n/useListFormatter.js.map +1 -1
  549. package/dist/private/i18n/useListFormatter.mjs.map +1 -1
  550. package/dist/private/i18n/useLocalizedStringFormatter.cjs.map +1 -1
  551. package/dist/private/i18n/useLocalizedStringFormatter.js.map +1 -1
  552. package/dist/private/i18n/useLocalizedStringFormatter.mjs.map +1 -1
  553. package/dist/private/i18n/useNumberFormatter.cjs.map +1 -1
  554. package/dist/private/i18n/useNumberFormatter.js.map +1 -1
  555. package/dist/private/i18n/useNumberFormatter.mjs.map +1 -1
  556. package/dist/private/i18n/utils.cjs +2 -2
  557. package/dist/private/i18n/utils.cjs.map +1 -1
  558. package/dist/private/i18n/utils.js +2 -2
  559. package/dist/private/i18n/utils.js.map +1 -1
  560. package/dist/private/i18n/utils.mjs +2 -2
  561. package/dist/private/i18n/utils.mjs.map +1 -1
  562. package/dist/private/interactions/PressResponder.cjs.map +1 -1
  563. package/dist/private/interactions/PressResponder.js.map +1 -1
  564. package/dist/private/interactions/PressResponder.mjs.map +1 -1
  565. package/dist/private/interactions/Pressable.cjs.map +1 -1
  566. package/dist/private/interactions/Pressable.js.map +1 -1
  567. package/dist/private/interactions/Pressable.mjs.map +1 -1
  568. package/dist/private/interactions/context.cjs.map +1 -1
  569. package/dist/private/interactions/context.js.map +1 -1
  570. package/dist/private/interactions/context.mjs.map +1 -1
  571. package/dist/private/interactions/createEventHandler.cjs.map +1 -1
  572. package/dist/private/interactions/createEventHandler.js.map +1 -1
  573. package/dist/private/interactions/createEventHandler.mjs.map +1 -1
  574. package/dist/private/interactions/focusSafely.cjs.map +1 -1
  575. package/dist/private/interactions/focusSafely.js.map +1 -1
  576. package/dist/private/interactions/focusSafely.mjs.map +1 -1
  577. package/dist/private/interactions/textSelection.cjs.map +1 -1
  578. package/dist/private/interactions/textSelection.js.map +1 -1
  579. package/dist/private/interactions/textSelection.mjs.map +1 -1
  580. package/dist/private/interactions/useFocus.cjs.map +1 -1
  581. package/dist/private/interactions/useFocus.js.map +1 -1
  582. package/dist/private/interactions/useFocus.mjs.map +1 -1
  583. package/dist/private/interactions/useFocusVisible.cjs +4 -3
  584. package/dist/private/interactions/useFocusVisible.cjs.map +1 -1
  585. package/dist/private/interactions/useFocusVisible.js +4 -3
  586. package/dist/private/interactions/useFocusVisible.js.map +1 -1
  587. package/dist/private/interactions/useFocusVisible.mjs +4 -3
  588. package/dist/private/interactions/useFocusVisible.mjs.map +1 -1
  589. package/dist/private/interactions/useFocusWithin.cjs.map +1 -1
  590. package/dist/private/interactions/useFocusWithin.js.map +1 -1
  591. package/dist/private/interactions/useFocusWithin.mjs.map +1 -1
  592. package/dist/private/interactions/useFocusable.cjs.map +1 -1
  593. package/dist/private/interactions/useFocusable.js.map +1 -1
  594. package/dist/private/interactions/useFocusable.mjs.map +1 -1
  595. package/dist/private/interactions/useHover.cjs.map +1 -1
  596. package/dist/private/interactions/useHover.js.map +1 -1
  597. package/dist/private/interactions/useHover.mjs.map +1 -1
  598. package/dist/private/interactions/useInteractOutside.cjs.map +1 -1
  599. package/dist/private/interactions/useInteractOutside.js.map +1 -1
  600. package/dist/private/interactions/useInteractOutside.mjs.map +1 -1
  601. package/dist/private/interactions/useKeyboard.cjs.map +1 -1
  602. package/dist/private/interactions/useKeyboard.js.map +1 -1
  603. package/dist/private/interactions/useKeyboard.mjs.map +1 -1
  604. package/dist/private/interactions/useLongPress.cjs.map +1 -1
  605. package/dist/private/interactions/useLongPress.js.map +1 -1
  606. package/dist/private/interactions/useLongPress.mjs.map +1 -1
  607. package/dist/private/interactions/useMove.cjs.map +1 -1
  608. package/dist/private/interactions/useMove.js.map +1 -1
  609. package/dist/private/interactions/useMove.mjs.map +1 -1
  610. package/dist/private/interactions/usePress.cjs +11 -0
  611. package/dist/private/interactions/usePress.cjs.map +1 -1
  612. package/dist/private/interactions/usePress.js +12 -1
  613. package/dist/private/interactions/usePress.js.map +1 -1
  614. package/dist/private/interactions/usePress.mjs +12 -1
  615. package/dist/private/interactions/usePress.mjs.map +1 -1
  616. package/dist/private/interactions/useScrollWheel.cjs.map +1 -1
  617. package/dist/private/interactions/useScrollWheel.js.map +1 -1
  618. package/dist/private/interactions/useScrollWheel.mjs.map +1 -1
  619. package/dist/private/interactions/utils.cjs.map +1 -1
  620. package/dist/private/interactions/utils.js.map +1 -1
  621. package/dist/private/interactions/utils.mjs.map +1 -1
  622. package/dist/private/intl/tag/en-US.cjs.map +1 -1
  623. package/dist/private/intl/tag/en-US.js.map +1 -1
  624. package/dist/private/intl/tag/en-US.mjs.map +1 -1
  625. package/dist/private/label/useField.cjs.map +1 -1
  626. package/dist/private/label/useField.js.map +1 -1
  627. package/dist/private/label/useField.mjs.map +1 -1
  628. package/dist/private/label/useLabel.cjs.map +1 -1
  629. package/dist/private/label/useLabel.js.map +1 -1
  630. package/dist/private/label/useLabel.mjs.map +1 -1
  631. package/dist/private/landmark/useLandmark.cjs +2 -1
  632. package/dist/private/landmark/useLandmark.cjs.map +1 -1
  633. package/dist/private/landmark/useLandmark.js +2 -1
  634. package/dist/private/landmark/useLandmark.js.map +1 -1
  635. package/dist/private/landmark/useLandmark.mjs +2 -1
  636. package/dist/private/landmark/useLandmark.mjs.map +1 -1
  637. package/dist/private/link/useLink.cjs.map +1 -1
  638. package/dist/private/link/useLink.js.map +1 -1
  639. package/dist/private/link/useLink.mjs.map +1 -1
  640. package/dist/private/listbox/useListBox.cjs.map +1 -1
  641. package/dist/private/listbox/useListBox.js.map +1 -1
  642. package/dist/private/listbox/useListBox.mjs.map +1 -1
  643. package/dist/private/listbox/useListBoxSection.cjs.map +1 -1
  644. package/dist/private/listbox/useListBoxSection.js.map +1 -1
  645. package/dist/private/listbox/useListBoxSection.mjs.map +1 -1
  646. package/dist/private/listbox/useOption.cjs.map +1 -1
  647. package/dist/private/listbox/useOption.js.map +1 -1
  648. package/dist/private/listbox/useOption.mjs.map +1 -1
  649. package/dist/private/listbox/utils.cjs.map +1 -1
  650. package/dist/private/listbox/utils.js.map +1 -1
  651. package/dist/private/listbox/utils.mjs.map +1 -1
  652. package/dist/private/live-announcer/LiveAnnouncer.cjs +2 -2
  653. package/dist/private/live-announcer/LiveAnnouncer.cjs.map +1 -1
  654. package/dist/private/live-announcer/LiveAnnouncer.js +2 -2
  655. package/dist/private/live-announcer/LiveAnnouncer.js.map +1 -1
  656. package/dist/private/live-announcer/LiveAnnouncer.mjs +2 -2
  657. package/dist/private/live-announcer/LiveAnnouncer.mjs.map +1 -1
  658. package/dist/private/menu/useMenu.cjs.map +1 -1
  659. package/dist/private/menu/useMenu.js.map +1 -1
  660. package/dist/private/menu/useMenu.mjs.map +1 -1
  661. package/dist/private/menu/useMenuItem.cjs.map +1 -1
  662. package/dist/private/menu/useMenuItem.js.map +1 -1
  663. package/dist/private/menu/useMenuItem.mjs.map +1 -1
  664. package/dist/private/menu/useMenuSection.cjs.map +1 -1
  665. package/dist/private/menu/useMenuSection.js.map +1 -1
  666. package/dist/private/menu/useMenuSection.mjs.map +1 -1
  667. package/dist/private/menu/useMenuTrigger.cjs.map +1 -1
  668. package/dist/private/menu/useMenuTrigger.js.map +1 -1
  669. package/dist/private/menu/useMenuTrigger.mjs.map +1 -1
  670. package/dist/private/menu/useSafelyMouseToSubmenu.cjs.map +1 -1
  671. package/dist/private/menu/useSafelyMouseToSubmenu.js.map +1 -1
  672. package/dist/private/menu/useSafelyMouseToSubmenu.mjs.map +1 -1
  673. package/dist/private/menu/useSubmenuTrigger.cjs.map +1 -1
  674. package/dist/private/menu/useSubmenuTrigger.js.map +1 -1
  675. package/dist/private/menu/useSubmenuTrigger.mjs.map +1 -1
  676. package/dist/private/menu/utils.cjs.map +1 -1
  677. package/dist/private/menu/utils.js.map +1 -1
  678. package/dist/private/menu/utils.mjs.map +1 -1
  679. package/dist/private/meter/useMeter.cjs.map +1 -1
  680. package/dist/private/meter/useMeter.js.map +1 -1
  681. package/dist/private/meter/useMeter.mjs.map +1 -1
  682. package/dist/private/numberfield/useNumberField.cjs.map +1 -1
  683. package/dist/private/numberfield/useNumberField.js.map +1 -1
  684. package/dist/private/numberfield/useNumberField.mjs.map +1 -1
  685. package/dist/private/overlays/DismissButton.cjs.map +1 -1
  686. package/dist/private/overlays/DismissButton.js.map +1 -1
  687. package/dist/private/overlays/DismissButton.mjs.map +1 -1
  688. package/dist/private/overlays/Overlay.cjs.map +1 -1
  689. package/dist/private/overlays/Overlay.js.map +1 -1
  690. package/dist/private/overlays/Overlay.mjs.map +1 -1
  691. package/dist/private/overlays/PortalProvider.cjs.map +1 -1
  692. package/dist/private/overlays/PortalProvider.js.map +1 -1
  693. package/dist/private/overlays/PortalProvider.mjs.map +1 -1
  694. package/dist/private/overlays/ariaHideOutside.cjs.map +1 -1
  695. package/dist/private/overlays/ariaHideOutside.js.map +1 -1
  696. package/dist/private/overlays/ariaHideOutside.mjs.map +1 -1
  697. package/dist/private/overlays/calculatePosition.cjs +12 -13
  698. package/dist/private/overlays/calculatePosition.cjs.map +1 -1
  699. package/dist/private/overlays/calculatePosition.js +13 -14
  700. package/dist/private/overlays/calculatePosition.js.map +1 -1
  701. package/dist/private/overlays/calculatePosition.mjs +12 -13
  702. package/dist/private/overlays/calculatePosition.mjs.map +1 -1
  703. package/dist/private/overlays/useCloseOnScroll.cjs.map +1 -1
  704. package/dist/private/overlays/useCloseOnScroll.js.map +1 -1
  705. package/dist/private/overlays/useCloseOnScroll.mjs.map +1 -1
  706. package/dist/private/overlays/useModal.cjs.map +1 -1
  707. package/dist/private/overlays/useModal.js.map +1 -1
  708. package/dist/private/overlays/useModal.mjs.map +1 -1
  709. package/dist/private/overlays/useModalOverlay.cjs.map +1 -1
  710. package/dist/private/overlays/useModalOverlay.js.map +1 -1
  711. package/dist/private/overlays/useModalOverlay.mjs.map +1 -1
  712. package/dist/private/overlays/useOverlay.cjs.map +1 -1
  713. package/dist/private/overlays/useOverlay.js.map +1 -1
  714. package/dist/private/overlays/useOverlay.mjs.map +1 -1
  715. package/dist/private/overlays/useOverlayPosition.cjs.map +1 -1
  716. package/dist/private/overlays/useOverlayPosition.js.map +1 -1
  717. package/dist/private/overlays/useOverlayPosition.mjs.map +1 -1
  718. package/dist/private/overlays/useOverlayTrigger.cjs.map +1 -1
  719. package/dist/private/overlays/useOverlayTrigger.js.map +1 -1
  720. package/dist/private/overlays/useOverlayTrigger.mjs.map +1 -1
  721. package/dist/private/overlays/usePopover.cjs.map +1 -1
  722. package/dist/private/overlays/usePopover.js.map +1 -1
  723. package/dist/private/overlays/usePopover.mjs.map +1 -1
  724. package/dist/private/overlays/usePreventScroll.cjs.map +1 -1
  725. package/dist/private/overlays/usePreventScroll.js.map +1 -1
  726. package/dist/private/overlays/usePreventScroll.mjs.map +1 -1
  727. package/dist/private/progress/useProgressBar.cjs.map +1 -1
  728. package/dist/private/progress/useProgressBar.js.map +1 -1
  729. package/dist/private/progress/useProgressBar.mjs.map +1 -1
  730. package/dist/private/radio/useRadio.cjs +5 -0
  731. package/dist/private/radio/useRadio.cjs.map +1 -1
  732. package/dist/private/radio/useRadio.js +5 -0
  733. package/dist/private/radio/useRadio.js.map +1 -1
  734. package/dist/private/radio/useRadio.mjs +5 -0
  735. package/dist/private/radio/useRadio.mjs.map +1 -1
  736. package/dist/private/radio/useRadioGroup.cjs.map +1 -1
  737. package/dist/private/radio/useRadioGroup.js.map +1 -1
  738. package/dist/private/radio/useRadioGroup.mjs.map +1 -1
  739. package/dist/private/radio/utils.cjs.map +1 -1
  740. package/dist/private/radio/utils.js.map +1 -1
  741. package/dist/private/radio/utils.mjs.map +1 -1
  742. package/dist/private/searchfield/useSearchField.cjs.map +1 -1
  743. package/dist/private/searchfield/useSearchField.js.map +1 -1
  744. package/dist/private/searchfield/useSearchField.mjs.map +1 -1
  745. package/dist/private/select/HiddenSelect.cjs +2 -1
  746. package/dist/private/select/HiddenSelect.cjs.map +1 -1
  747. package/dist/private/select/HiddenSelect.js +2 -1
  748. package/dist/private/select/HiddenSelect.js.map +1 -1
  749. package/dist/private/select/HiddenSelect.mjs +2 -1
  750. package/dist/private/select/HiddenSelect.mjs.map +1 -1
  751. package/dist/private/select/useSelect.cjs +2 -2
  752. package/dist/private/select/useSelect.cjs.map +1 -1
  753. package/dist/private/select/useSelect.js +2 -2
  754. package/dist/private/select/useSelect.js.map +1 -1
  755. package/dist/private/select/useSelect.mjs +2 -2
  756. package/dist/private/select/useSelect.mjs.map +1 -1
  757. package/dist/private/selection/ListKeyboardDelegate.cjs +25 -25
  758. package/dist/private/selection/ListKeyboardDelegate.cjs.map +1 -1
  759. package/dist/private/selection/ListKeyboardDelegate.js +26 -26
  760. package/dist/private/selection/ListKeyboardDelegate.js.map +1 -1
  761. package/dist/private/selection/ListKeyboardDelegate.mjs +25 -25
  762. package/dist/private/selection/ListKeyboardDelegate.mjs.map +1 -1
  763. package/dist/private/selection/useSelectableCollection.cjs +1 -0
  764. package/dist/private/selection/useSelectableCollection.cjs.map +1 -1
  765. package/dist/private/selection/useSelectableCollection.js +1 -0
  766. package/dist/private/selection/useSelectableCollection.js.map +1 -1
  767. package/dist/private/selection/useSelectableCollection.mjs +1 -0
  768. package/dist/private/selection/useSelectableCollection.mjs.map +1 -1
  769. package/dist/private/selection/useSelectableItem.cjs.map +1 -1
  770. package/dist/private/selection/useSelectableItem.js.map +1 -1
  771. package/dist/private/selection/useSelectableItem.mjs.map +1 -1
  772. package/dist/private/selection/useSelectableList.cjs.map +1 -1
  773. package/dist/private/selection/useSelectableList.js.map +1 -1
  774. package/dist/private/selection/useSelectableList.mjs.map +1 -1
  775. package/dist/private/selection/useTypeSelect.cjs.map +1 -1
  776. package/dist/private/selection/useTypeSelect.js.map +1 -1
  777. package/dist/private/selection/useTypeSelect.mjs.map +1 -1
  778. package/dist/private/selection/utils.cjs.map +1 -1
  779. package/dist/private/selection/utils.js.map +1 -1
  780. package/dist/private/selection/utils.mjs.map +1 -1
  781. package/dist/private/separator/useSeparator.cjs.map +1 -1
  782. package/dist/private/separator/useSeparator.js.map +1 -1
  783. package/dist/private/separator/useSeparator.mjs.map +1 -1
  784. package/dist/private/slider/useSlider.cjs +4 -2
  785. package/dist/private/slider/useSlider.cjs.map +1 -1
  786. package/dist/private/slider/useSlider.js +4 -2
  787. package/dist/private/slider/useSlider.js.map +1 -1
  788. package/dist/private/slider/useSlider.mjs +4 -2
  789. package/dist/private/slider/useSlider.mjs.map +1 -1
  790. package/dist/private/slider/useSliderThumb.cjs.map +1 -1
  791. package/dist/private/slider/useSliderThumb.js.map +1 -1
  792. package/dist/private/slider/useSliderThumb.mjs.map +1 -1
  793. package/dist/private/slider/utils.cjs.map +1 -1
  794. package/dist/private/slider/utils.js.map +1 -1
  795. package/dist/private/slider/utils.mjs.map +1 -1
  796. package/dist/private/spinbutton/useSpinButton.cjs +2 -0
  797. package/dist/private/spinbutton/useSpinButton.cjs.map +1 -1
  798. package/dist/private/spinbutton/useSpinButton.js +2 -0
  799. package/dist/private/spinbutton/useSpinButton.js.map +1 -1
  800. package/dist/private/spinbutton/useSpinButton.mjs +2 -0
  801. package/dist/private/spinbutton/useSpinButton.mjs.map +1 -1
  802. package/dist/private/ssr/SSRProvider.cjs +6 -6
  803. package/dist/private/ssr/SSRProvider.cjs.map +1 -1
  804. package/dist/private/ssr/SSRProvider.js +6 -6
  805. package/dist/private/ssr/SSRProvider.js.map +1 -1
  806. package/dist/private/ssr/SSRProvider.mjs +6 -6
  807. package/dist/private/ssr/SSRProvider.mjs.map +1 -1
  808. package/dist/private/steplist/useStepList.cjs.map +1 -1
  809. package/dist/private/steplist/useStepList.js.map +1 -1
  810. package/dist/private/steplist/useStepList.mjs.map +1 -1
  811. package/dist/private/steplist/useStepListItem.cjs.map +1 -1
  812. package/dist/private/steplist/useStepListItem.js.map +1 -1
  813. package/dist/private/steplist/useStepListItem.mjs.map +1 -1
  814. package/dist/private/switch/useSwitch.cjs +2 -4
  815. package/dist/private/switch/useSwitch.cjs.map +1 -1
  816. package/dist/private/switch/useSwitch.js +2 -4
  817. package/dist/private/switch/useSwitch.js.map +1 -1
  818. package/dist/private/switch/useSwitch.mjs +2 -4
  819. package/dist/private/switch/useSwitch.mjs.map +1 -1
  820. package/dist/private/table/TableKeyboardDelegate.cjs +4 -4
  821. package/dist/private/table/TableKeyboardDelegate.cjs.map +1 -1
  822. package/dist/private/table/TableKeyboardDelegate.js +4 -4
  823. package/dist/private/table/TableKeyboardDelegate.js.map +1 -1
  824. package/dist/private/table/TableKeyboardDelegate.mjs +4 -4
  825. package/dist/private/table/TableKeyboardDelegate.mjs.map +1 -1
  826. package/dist/private/table/useTable.cjs.map +1 -1
  827. package/dist/private/table/useTable.js.map +1 -1
  828. package/dist/private/table/useTable.mjs.map +1 -1
  829. package/dist/private/table/useTableCell.cjs.map +1 -1
  830. package/dist/private/table/useTableCell.js.map +1 -1
  831. package/dist/private/table/useTableCell.mjs.map +1 -1
  832. package/dist/private/table/useTableColumnHeader.cjs.map +1 -1
  833. package/dist/private/table/useTableColumnHeader.js.map +1 -1
  834. package/dist/private/table/useTableColumnHeader.mjs.map +1 -1
  835. package/dist/private/table/useTableColumnResize.cjs +1 -1
  836. package/dist/private/table/useTableColumnResize.cjs.map +1 -1
  837. package/dist/private/table/useTableColumnResize.js +1 -1
  838. package/dist/private/table/useTableColumnResize.js.map +1 -1
  839. package/dist/private/table/useTableColumnResize.mjs +1 -1
  840. package/dist/private/table/useTableColumnResize.mjs.map +1 -1
  841. package/dist/private/table/useTableHeaderRow.cjs +2 -1
  842. package/dist/private/table/useTableHeaderRow.cjs.map +1 -1
  843. package/dist/private/table/useTableHeaderRow.js +2 -1
  844. package/dist/private/table/useTableHeaderRow.js.map +1 -1
  845. package/dist/private/table/useTableHeaderRow.mjs +2 -1
  846. package/dist/private/table/useTableHeaderRow.mjs.map +1 -1
  847. package/dist/private/table/useTableRow.cjs +2 -2
  848. package/dist/private/table/useTableRow.cjs.map +1 -1
  849. package/dist/private/table/useTableRow.js +2 -2
  850. package/dist/private/table/useTableRow.js.map +1 -1
  851. package/dist/private/table/useTableRow.mjs +2 -2
  852. package/dist/private/table/useTableRow.mjs.map +1 -1
  853. package/dist/private/table/useTableSelectionCheckbox.cjs.map +1 -1
  854. package/dist/private/table/useTableSelectionCheckbox.js.map +1 -1
  855. package/dist/private/table/useTableSelectionCheckbox.mjs.map +1 -1
  856. package/dist/private/table/utils.cjs.map +1 -1
  857. package/dist/private/table/utils.js.map +1 -1
  858. package/dist/private/table/utils.mjs.map +1 -1
  859. package/dist/private/tabs/TabsKeyboardDelegate.cjs.map +1 -1
  860. package/dist/private/tabs/TabsKeyboardDelegate.js.map +1 -1
  861. package/dist/private/tabs/TabsKeyboardDelegate.mjs.map +1 -1
  862. package/dist/private/tabs/useTab.cjs.map +1 -1
  863. package/dist/private/tabs/useTab.js.map +1 -1
  864. package/dist/private/tabs/useTab.mjs.map +1 -1
  865. package/dist/private/tabs/useTabList.cjs +10 -10
  866. package/dist/private/tabs/useTabList.cjs.map +1 -1
  867. package/dist/private/tabs/useTabList.js +10 -10
  868. package/dist/private/tabs/useTabList.js.map +1 -1
  869. package/dist/private/tabs/useTabList.mjs +10 -10
  870. package/dist/private/tabs/useTabList.mjs.map +1 -1
  871. package/dist/private/tabs/useTabPanel.cjs.map +1 -1
  872. package/dist/private/tabs/useTabPanel.js.map +1 -1
  873. package/dist/private/tabs/useTabPanel.mjs.map +1 -1
  874. package/dist/private/tabs/utils.cjs.map +1 -1
  875. package/dist/private/tabs/utils.js.map +1 -1
  876. package/dist/private/tabs/utils.mjs.map +1 -1
  877. package/dist/private/tag/useTag.cjs.map +1 -1
  878. package/dist/private/tag/useTag.js.map +1 -1
  879. package/dist/private/tag/useTag.mjs.map +1 -1
  880. package/dist/private/tag/useTagGroup.cjs.map +1 -1
  881. package/dist/private/tag/useTagGroup.js.map +1 -1
  882. package/dist/private/tag/useTagGroup.mjs.map +1 -1
  883. package/dist/private/textfield/useFormattedTextField.cjs.map +1 -1
  884. package/dist/private/textfield/useFormattedTextField.js.map +1 -1
  885. package/dist/private/textfield/useFormattedTextField.mjs.map +1 -1
  886. package/dist/private/textfield/useTextField.cjs.map +1 -1
  887. package/dist/private/textfield/useTextField.js.map +1 -1
  888. package/dist/private/textfield/useTextField.mjs.map +1 -1
  889. package/dist/private/toast/useToast.cjs +2 -1
  890. package/dist/private/toast/useToast.cjs.map +1 -1
  891. package/dist/private/toast/useToast.js +2 -1
  892. package/dist/private/toast/useToast.js.map +1 -1
  893. package/dist/private/toast/useToast.mjs +2 -1
  894. package/dist/private/toast/useToast.mjs.map +1 -1
  895. package/dist/private/toast/useToastRegion.cjs.map +1 -1
  896. package/dist/private/toast/useToastRegion.js.map +1 -1
  897. package/dist/private/toast/useToastRegion.mjs.map +1 -1
  898. package/dist/private/toggle/useToggle.cjs +70 -8
  899. package/dist/private/toggle/useToggle.cjs.map +1 -1
  900. package/dist/private/toggle/useToggle.js +70 -8
  901. package/dist/private/toggle/useToggle.js.map +1 -1
  902. package/dist/private/toggle/useToggle.mjs +70 -8
  903. package/dist/private/toggle/useToggle.mjs.map +1 -1
  904. package/dist/private/toolbar/useToolbar.cjs.map +1 -1
  905. package/dist/private/toolbar/useToolbar.js.map +1 -1
  906. package/dist/private/toolbar/useToolbar.mjs.map +1 -1
  907. package/dist/private/tooltip/useTooltip.cjs.map +1 -1
  908. package/dist/private/tooltip/useTooltip.js.map +1 -1
  909. package/dist/private/tooltip/useTooltip.mjs.map +1 -1
  910. package/dist/private/tooltip/useTooltipTrigger.cjs.map +1 -1
  911. package/dist/private/tooltip/useTooltipTrigger.js.map +1 -1
  912. package/dist/private/tooltip/useTooltipTrigger.mjs.map +1 -1
  913. package/dist/private/tree/useTree.cjs.map +1 -1
  914. package/dist/private/tree/useTree.js.map +1 -1
  915. package/dist/private/tree/useTree.mjs.map +1 -1
  916. package/dist/private/tree/useTreeItem.cjs.map +1 -1
  917. package/dist/private/tree/useTreeItem.js.map +1 -1
  918. package/dist/private/tree/useTreeItem.mjs.map +1 -1
  919. package/dist/private/utils/animation.cjs.map +1 -1
  920. package/dist/private/utils/animation.js.map +1 -1
  921. package/dist/private/utils/animation.mjs.map +1 -1
  922. package/dist/private/utils/domHelpers.cjs +2 -1
  923. package/dist/private/utils/domHelpers.cjs.map +1 -1
  924. package/dist/private/utils/domHelpers.js +2 -1
  925. package/dist/private/utils/domHelpers.js.map +1 -1
  926. package/dist/private/utils/domHelpers.mjs +2 -1
  927. package/dist/private/utils/domHelpers.mjs.map +1 -1
  928. package/dist/private/utils/filterDOMProps.cjs.map +1 -1
  929. package/dist/private/utils/filterDOMProps.js.map +1 -1
  930. package/dist/private/utils/filterDOMProps.mjs.map +1 -1
  931. package/dist/private/utils/focusWithoutScrolling.cjs.map +1 -1
  932. package/dist/private/utils/focusWithoutScrolling.js.map +1 -1
  933. package/dist/private/utils/focusWithoutScrolling.mjs.map +1 -1
  934. package/dist/private/utils/getNonce.cjs.map +1 -1
  935. package/dist/private/utils/getNonce.js.map +1 -1
  936. package/dist/private/utils/getNonce.mjs.map +1 -1
  937. package/dist/private/utils/getOffset.cjs.map +1 -1
  938. package/dist/private/utils/getOffset.js.map +1 -1
  939. package/dist/private/utils/getOffset.mjs.map +1 -1
  940. package/dist/private/utils/getScrollParent.cjs.map +1 -1
  941. package/dist/private/utils/getScrollParent.js.map +1 -1
  942. package/dist/private/utils/getScrollParent.mjs.map +1 -1
  943. package/dist/private/utils/getScrollParents.cjs +3 -2
  944. package/dist/private/utils/getScrollParents.cjs.map +1 -1
  945. package/dist/private/utils/getScrollParents.js +3 -2
  946. package/dist/private/utils/getScrollParents.js.map +1 -1
  947. package/dist/private/utils/getScrollParents.mjs +3 -2
  948. package/dist/private/utils/getScrollParents.mjs.map +1 -1
  949. package/dist/private/utils/isElementVisible.cjs.map +1 -1
  950. package/dist/private/utils/isElementVisible.js.map +1 -1
  951. package/dist/private/utils/isElementVisible.mjs.map +1 -1
  952. package/dist/private/utils/isFocusable.cjs.map +1 -1
  953. package/dist/private/utils/isFocusable.js.map +1 -1
  954. package/dist/private/utils/isFocusable.mjs.map +1 -1
  955. package/dist/private/utils/isVirtualEvent.cjs.map +1 -1
  956. package/dist/private/utils/isVirtualEvent.js.map +1 -1
  957. package/dist/private/utils/isVirtualEvent.mjs.map +1 -1
  958. package/dist/private/utils/keyboard.cjs.map +1 -1
  959. package/dist/private/utils/keyboard.js.map +1 -1
  960. package/dist/private/utils/keyboard.mjs.map +1 -1
  961. package/dist/private/utils/mergeProps.cjs.map +1 -1
  962. package/dist/private/utils/mergeProps.js.map +1 -1
  963. package/dist/private/utils/mergeProps.mjs.map +1 -1
  964. package/dist/private/utils/mergeRefs.cjs.map +1 -1
  965. package/dist/private/utils/mergeRefs.js.map +1 -1
  966. package/dist/private/utils/mergeRefs.mjs.map +1 -1
  967. package/dist/private/utils/openLink.cjs +12 -8
  968. package/dist/private/utils/openLink.cjs.map +1 -1
  969. package/dist/private/utils/openLink.js +12 -8
  970. package/dist/private/utils/openLink.js.map +1 -1
  971. package/dist/private/utils/openLink.mjs +12 -8
  972. package/dist/private/utils/openLink.mjs.map +1 -1
  973. package/dist/private/utils/platform.cjs.map +1 -1
  974. package/dist/private/utils/platform.js.map +1 -1
  975. package/dist/private/utils/platform.mjs.map +1 -1
  976. package/dist/private/utils/scrollIntoView.cjs +21 -18
  977. package/dist/private/utils/scrollIntoView.cjs.map +1 -1
  978. package/dist/private/utils/scrollIntoView.js +21 -18
  979. package/dist/private/utils/scrollIntoView.js.map +1 -1
  980. package/dist/private/utils/scrollIntoView.mjs +21 -18
  981. package/dist/private/utils/scrollIntoView.mjs.map +1 -1
  982. package/dist/private/utils/shadowdom/DOMFunctions.cjs.map +1 -1
  983. package/dist/private/utils/shadowdom/DOMFunctions.js.map +1 -1
  984. package/dist/private/utils/shadowdom/DOMFunctions.mjs.map +1 -1
  985. package/dist/private/utils/shadowdom/ShadowTreeWalker.cjs +6 -6
  986. package/dist/private/utils/shadowdom/ShadowTreeWalker.cjs.map +1 -1
  987. package/dist/private/utils/shadowdom/ShadowTreeWalker.js +6 -6
  988. package/dist/private/utils/shadowdom/ShadowTreeWalker.js.map +1 -1
  989. package/dist/private/utils/shadowdom/ShadowTreeWalker.mjs +6 -6
  990. package/dist/private/utils/shadowdom/ShadowTreeWalker.mjs.map +1 -1
  991. package/dist/private/utils/useDeepMemo.cjs +1 -1
  992. package/dist/private/utils/useDeepMemo.cjs.map +1 -1
  993. package/dist/private/utils/useDeepMemo.js +1 -1
  994. package/dist/private/utils/useDeepMemo.js.map +1 -1
  995. package/dist/private/utils/useDeepMemo.mjs +1 -1
  996. package/dist/private/utils/useDeepMemo.mjs.map +1 -1
  997. package/dist/private/utils/useDescription.cjs.map +1 -1
  998. package/dist/private/utils/useDescription.js.map +1 -1
  999. package/dist/private/utils/useDescription.mjs.map +1 -1
  1000. package/dist/private/utils/useDrag1D.cjs +1 -1
  1001. package/dist/private/utils/useDrag1D.cjs.map +1 -1
  1002. package/dist/private/utils/useDrag1D.js +1 -1
  1003. package/dist/private/utils/useDrag1D.js.map +1 -1
  1004. package/dist/private/utils/useDrag1D.mjs +1 -1
  1005. package/dist/private/utils/useDrag1D.mjs.map +1 -1
  1006. package/dist/private/utils/useFormReset.cjs.map +1 -1
  1007. package/dist/private/utils/useFormReset.js.map +1 -1
  1008. package/dist/private/utils/useFormReset.mjs.map +1 -1
  1009. package/dist/private/utils/useGlobalListeners.cjs.map +1 -1
  1010. package/dist/private/utils/useGlobalListeners.js.map +1 -1
  1011. package/dist/private/utils/useGlobalListeners.mjs.map +1 -1
  1012. package/dist/private/utils/useId.cjs.map +1 -1
  1013. package/dist/private/utils/useId.js.map +1 -1
  1014. package/dist/private/utils/useId.mjs.map +1 -1
  1015. package/dist/private/utils/useLabels.cjs.map +1 -1
  1016. package/dist/private/utils/useLabels.js.map +1 -1
  1017. package/dist/private/utils/useLabels.mjs.map +1 -1
  1018. package/dist/private/utils/useLayoutEffect.cjs.map +1 -1
  1019. package/dist/private/utils/useLayoutEffect.js.map +1 -1
  1020. package/dist/private/utils/useLayoutEffect.mjs.map +1 -1
  1021. package/dist/private/utils/useLoadMore.cjs.map +1 -1
  1022. package/dist/private/utils/useLoadMore.js.map +1 -1
  1023. package/dist/private/utils/useLoadMore.mjs.map +1 -1
  1024. package/dist/private/utils/useLoadMoreSentinel.cjs.map +1 -1
  1025. package/dist/private/utils/useLoadMoreSentinel.js.map +1 -1
  1026. package/dist/private/utils/useLoadMoreSentinel.mjs.map +1 -1
  1027. package/dist/private/utils/useObjectRef.cjs.map +1 -1
  1028. package/dist/private/utils/useObjectRef.js.map +1 -1
  1029. package/dist/private/utils/useObjectRef.mjs.map +1 -1
  1030. package/dist/private/utils/useResizeObserver.cjs.map +1 -1
  1031. package/dist/private/utils/useResizeObserver.js.map +1 -1
  1032. package/dist/private/utils/useResizeObserver.mjs.map +1 -1
  1033. package/dist/private/utils/useSlot.cjs +54 -0
  1034. package/dist/private/utils/useSlot.cjs.map +1 -0
  1035. package/dist/private/utils/useSlot.js +49 -0
  1036. package/dist/private/utils/useSlot.js.map +1 -0
  1037. package/dist/private/utils/useSlot.mjs +49 -0
  1038. package/dist/private/utils/useSlot.mjs.map +1 -0
  1039. package/dist/private/utils/useSyncRef.cjs +2 -1
  1040. package/dist/private/utils/useSyncRef.cjs.map +1 -1
  1041. package/dist/private/utils/useSyncRef.js +2 -1
  1042. package/dist/private/utils/useSyncRef.js.map +1 -1
  1043. package/dist/private/utils/useSyncRef.mjs +2 -1
  1044. package/dist/private/utils/useSyncRef.mjs.map +1 -1
  1045. package/dist/private/utils/useUpdateEffect.cjs.map +1 -1
  1046. package/dist/private/utils/useUpdateEffect.js.map +1 -1
  1047. package/dist/private/utils/useUpdateEffect.mjs.map +1 -1
  1048. package/dist/private/utils/useValueEffect.cjs.map +1 -1
  1049. package/dist/private/utils/useValueEffect.js.map +1 -1
  1050. package/dist/private/utils/useValueEffect.mjs.map +1 -1
  1051. package/dist/private/utils/useViewportSize.cjs +3 -1
  1052. package/dist/private/utils/useViewportSize.cjs.map +1 -1
  1053. package/dist/private/utils/useViewportSize.js +3 -1
  1054. package/dist/private/utils/useViewportSize.js.map +1 -1
  1055. package/dist/private/utils/useViewportSize.mjs +3 -1
  1056. package/dist/private/utils/useViewportSize.mjs.map +1 -1
  1057. package/dist/private/virtualizer/ScrollView.cjs +2 -2
  1058. package/dist/private/virtualizer/ScrollView.cjs.map +1 -1
  1059. package/dist/private/virtualizer/ScrollView.js +2 -2
  1060. package/dist/private/virtualizer/ScrollView.js.map +1 -1
  1061. package/dist/private/virtualizer/ScrollView.mjs +2 -2
  1062. package/dist/private/virtualizer/ScrollView.mjs.map +1 -1
  1063. package/dist/private/virtualizer/Virtualizer.cjs.map +1 -1
  1064. package/dist/private/virtualizer/Virtualizer.js.map +1 -1
  1065. package/dist/private/virtualizer/Virtualizer.mjs.map +1 -1
  1066. package/dist/private/virtualizer/VirtualizerItem.cjs.map +1 -1
  1067. package/dist/private/virtualizer/VirtualizerItem.js.map +1 -1
  1068. package/dist/private/virtualizer/VirtualizerItem.mjs.map +1 -1
  1069. package/dist/private/virtualizer/useVirtualizerItem.cjs.map +1 -1
  1070. package/dist/private/virtualizer/useVirtualizerItem.js.map +1 -1
  1071. package/dist/private/virtualizer/useVirtualizerItem.mjs.map +1 -1
  1072. package/dist/private/virtualizer/utils.cjs.map +1 -1
  1073. package/dist/private/virtualizer/utils.js.map +1 -1
  1074. package/dist/private/virtualizer/utils.mjs.map +1 -1
  1075. package/dist/private/visually-hidden/VisuallyHidden.cjs.map +1 -1
  1076. package/dist/private/visually-hidden/VisuallyHidden.js.map +1 -1
  1077. package/dist/private/visually-hidden/VisuallyHidden.mjs.map +1 -1
  1078. package/dist/types/exports/index.d.ts +7 -0
  1079. package/dist/types/exports/useCalendar.d.ts +6 -0
  1080. package/dist/types/exports/useRangeCalendar.d.ts +11 -0
  1081. package/dist/types/src/actiongroup/useActionGroup.d.ts +5 -1
  1082. package/dist/types/src/aria-modal-polyfill/ariaModalPolyfill.d.ts +2 -1
  1083. package/dist/types/src/autocomplete/useAutocomplete.d.ts +21 -9
  1084. package/dist/types/src/autocomplete/useSearchAutocomplete.d.ts +15 -8
  1085. package/dist/types/src/breadcrumbs/useBreadcrumbItem.d.ts +2 -0
  1086. package/dist/types/src/button/useButton.d.ts +25 -7
  1087. package/dist/types/src/button/useToggleButtonGroup.d.ts +1 -0
  1088. package/dist/types/src/calendar/useCalendar.d.ts +3 -3
  1089. package/dist/types/src/calendar/useCalendarBase.d.ts +2 -2
  1090. package/dist/types/src/calendar/useCalendarCell.d.ts +9 -8
  1091. package/dist/types/src/calendar/useCalendarGrid.d.ts +8 -4
  1092. package/dist/types/src/calendar/useCalendarHeading.d.ts +22 -0
  1093. package/dist/types/src/calendar/useCalendarMonthPicker.d.ts +22 -0
  1094. package/dist/types/src/calendar/useCalendarYearPicker.d.ts +32 -0
  1095. package/dist/types/src/calendar/useRangeCalendar.d.ts +5 -5
  1096. package/dist/types/src/calendar/utils.d.ts +3 -3
  1097. package/dist/types/src/checkbox/useCheckbox.d.ts +6 -1
  1098. package/dist/types/src/checkbox/useCheckboxGroup.d.ts +1 -0
  1099. package/dist/types/src/checkbox/useCheckboxGroupItem.d.ts +3 -2
  1100. package/dist/types/src/collections/CollectionBuilder.d.ts +8 -7
  1101. package/dist/types/src/collections/useCachedChildren.d.ts +1 -1
  1102. package/dist/types/src/color/useColorArea.d.ts +7 -4
  1103. package/dist/types/src/color/useColorChannelField.d.ts +2 -2
  1104. package/dist/types/src/combobox/useComboBox.d.ts +5 -3
  1105. package/dist/types/src/datepicker/useDateField.d.ts +2 -1
  1106. package/dist/types/src/datepicker/useDatePicker.d.ts +5 -3
  1107. package/dist/types/src/dialog/useDialog.d.ts +1 -0
  1108. package/dist/types/src/disclosure/useDisclosure.d.ts +1 -0
  1109. package/dist/types/src/dnd/ListDropTargetDelegate.d.ts +3 -0
  1110. package/dist/types/src/dnd/useDrag.d.ts +11 -4
  1111. package/dist/types/src/dnd/useDraggableCollection.d.ts +2 -2
  1112. package/dist/types/src/dnd/useDraggableItem.d.ts +7 -6
  1113. package/dist/types/src/dnd/useDrop.d.ts +5 -4
  1114. package/dist/types/src/dnd/useDroppableCollection.d.ts +2 -2
  1115. package/dist/types/src/dnd/utils.d.ts +1 -1
  1116. package/dist/types/src/focus/FocusRing.d.ts +1 -0
  1117. package/dist/types/src/focus/useFocusRing.d.ts +1 -0
  1118. package/dist/types/src/focus/useHasTabbableChild.d.ts +1 -0
  1119. package/dist/types/src/grid/GridKeyboardDelegate.d.ts +8 -4
  1120. package/dist/types/src/grid/useGrid.d.ts +12 -4
  1121. package/dist/types/src/grid/useGridCell.d.ts +11 -3
  1122. package/dist/types/src/grid/useGridRow.d.ts +7 -2
  1123. package/dist/types/src/grid/useGridSelectionAnnouncement.d.ts +3 -1
  1124. package/dist/types/src/grid/useGridSelectionCheckbox.d.ts +1 -0
  1125. package/dist/types/src/grid/useHighlightSelectionDescription.d.ts +1 -0
  1126. package/dist/types/src/gridlist/useGridList.d.ts +13 -5
  1127. package/dist/types/src/gridlist/useGridListItem.d.ts +5 -1
  1128. package/dist/types/src/gridlist/useGridListSection.d.ts +1 -0
  1129. package/dist/types/src/gridlist/useGridListSelectionCheckbox.d.ts +1 -0
  1130. package/dist/types/src/i18n/useCollator.d.ts +3 -2
  1131. package/dist/types/src/i18n/useDateFormatter.d.ts +3 -2
  1132. package/dist/types/src/i18n/useFilter.d.ts +3 -2
  1133. package/dist/types/src/i18n/useListFormatter.d.ts +3 -2
  1134. package/dist/types/src/i18n/useLocalizedStringFormatter.d.ts +3 -1
  1135. package/dist/types/src/i18n/useNumberFormatter.d.ts +3 -2
  1136. package/dist/types/src/i18n/utils.d.ts +2 -1
  1137. package/dist/types/src/interactions/createEventHandler.d.ts +2 -1
  1138. package/dist/types/src/interactions/useFocusVisible.d.ts +11 -9
  1139. package/dist/types/src/interactions/useLongPress.d.ts +3 -2
  1140. package/dist/types/src/interactions/utils.d.ts +4 -3
  1141. package/dist/types/src/label/useField.d.ts +3 -2
  1142. package/dist/types/src/label/useLabel.d.ts +2 -0
  1143. package/dist/types/src/landmark/useLandmark.d.ts +4 -1
  1144. package/dist/types/src/link/useLink.d.ts +1 -0
  1145. package/dist/types/src/listbox/useListBox.d.ts +8 -3
  1146. package/dist/types/src/listbox/useListBoxSection.d.ts +1 -0
  1147. package/dist/types/src/listbox/useOption.d.ts +7 -0
  1148. package/dist/types/src/menu/useMenu.d.ts +2 -0
  1149. package/dist/types/src/menu/useMenuItem.d.ts +10 -1
  1150. package/dist/types/src/menu/useMenuSection.d.ts +1 -0
  1151. package/dist/types/src/menu/useMenuTrigger.d.ts +1 -0
  1152. package/dist/types/src/menu/useSafelyMouseToSubmenu.d.ts +3 -2
  1153. package/dist/types/src/menu/useSubmenuTrigger.d.ts +7 -2
  1154. package/dist/types/src/numberfield/useNumberField.d.ts +11 -4
  1155. package/dist/types/src/overlays/Overlay.d.ts +1 -0
  1156. package/dist/types/src/overlays/PortalProvider.d.ts +4 -1
  1157. package/dist/types/src/overlays/ariaHideOutside.d.ts +1 -0
  1158. package/dist/types/src/overlays/calculatePosition.d.ts +2 -1
  1159. package/dist/types/src/overlays/useModal.d.ts +8 -7
  1160. package/dist/types/src/overlays/useModalOverlay.d.ts +2 -0
  1161. package/dist/types/src/overlays/useOverlay.d.ts +2 -0
  1162. package/dist/types/src/overlays/useOverlayPosition.d.ts +10 -0
  1163. package/dist/types/src/progress/useProgressBar.d.ts +5 -1
  1164. package/dist/types/src/radio/useRadio.d.ts +4 -1
  1165. package/dist/types/src/radio/useRadioGroup.d.ts +1 -0
  1166. package/dist/types/src/searchfield/useSearchField.d.ts +7 -2
  1167. package/dist/types/src/select/HiddenSelect.d.ts +2 -1
  1168. package/dist/types/src/select/useSelect.d.ts +3 -1
  1169. package/dist/types/src/selection/ListKeyboardDelegate.d.ts +18 -6
  1170. package/dist/types/src/selection/useSelectableCollection.d.ts +10 -2
  1171. package/dist/types/src/selection/useSelectableItem.d.ts +9 -7
  1172. package/dist/types/src/selection/useSelectableList.d.ts +5 -2
  1173. package/dist/types/src/separator/useSeparator.d.ts +1 -0
  1174. package/dist/types/src/slider/useSlider.d.ts +5 -4
  1175. package/dist/types/src/slider/useSliderThumb.d.ts +3 -1
  1176. package/dist/types/src/switch/useSwitch.d.ts +14 -27
  1177. package/dist/types/src/table/TableKeyboardDelegate.d.ts +6 -2
  1178. package/dist/types/src/table/useTable.d.ts +8 -4
  1179. package/dist/types/src/table/useTableCell.d.ts +7 -2
  1180. package/dist/types/src/table/useTableColumnHeader.d.ts +9 -2
  1181. package/dist/types/src/table/useTableColumnResize.d.ts +12 -6
  1182. package/dist/types/src/table/useTableHeaderRow.d.ts +1 -0
  1183. package/dist/types/src/table/useTableRow.d.ts +1 -0
  1184. package/dist/types/src/table/useTableSelectionCheckbox.d.ts +2 -0
  1185. package/dist/types/src/tabs/useTabList.d.ts +2 -0
  1186. package/dist/types/src/tabs/useTabPanel.d.ts +2 -2
  1187. package/dist/types/src/tag/useTag.d.ts +1 -0
  1188. package/dist/types/src/tag/useTagGroup.d.ts +7 -3
  1189. package/dist/types/src/textfield/useTextField.d.ts +26 -11
  1190. package/dist/types/src/toast/useToast.d.ts +2 -2
  1191. package/dist/types/src/toast/useToastRegion.d.ts +5 -3
  1192. package/dist/types/src/toggle/useToggle.d.ts +8 -3
  1193. package/dist/types/src/toolbar/useToolbar.d.ts +2 -0
  1194. package/dist/types/src/tree/useTree.d.ts +4 -2
  1195. package/dist/types/src/tree/useTreeItem.d.ts +5 -1
  1196. package/dist/types/src/utils/filterDOMProps.d.ts +1 -0
  1197. package/dist/types/src/utils/getNonce.d.ts +3 -2
  1198. package/dist/types/src/utils/isElementVisible.d.ts +1 -0
  1199. package/dist/types/src/utils/mergeProps.d.ts +3 -2
  1200. package/dist/types/src/utils/scrollIntoView.d.ts +5 -3
  1201. package/dist/types/src/utils/shadowdom/DOMFunctions.d.ts +1 -0
  1202. package/dist/types/src/utils/useId.d.ts +2 -0
  1203. package/dist/types/src/utils/useLabels.d.ts +1 -0
  1204. package/dist/types/src/utils/useLoadMore.d.ts +6 -4
  1205. package/dist/types/src/utils/useLoadMoreSentinel.d.ts +5 -3
  1206. package/dist/types/src/utils/useSlot.d.ts +8 -0
  1207. package/dist/types/src/visually-hidden/VisuallyHidden.d.ts +1 -0
  1208. package/package.json +10 -8
@@ -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.mjs.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 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(\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.mjs.map"}
@@ -1 +1 @@
1
- {"mappings":";;;;;;;;;;;;;AAAA;;;;;;;;;;CAUC;;AAeM,MAAM,0DAEb,CAAA,GAAA,sCAAI,EAAE,UAAU,CAAC,SAAS,YAAY,KAAuB,EAAE,GAA6C;IAC1G,IAAI,SAAS,MAAM,QAAQ;IAC3B,IAAI,CAAC,UAAU,YAAY,GAAG,CAAA,GAAA,qBAAO,EAAsB;IAC3D,IAAI,SAAS,CAAA,GAAA,mBAAK,EAAyB;IAC3C,IAAI,MAAM,CAAA,GAAA,mBAAK,EAAwD;IAEvE,CAAA,GAAA,gCAAkB,EAAE,KAAK,IAAM,CAAC,OAAmB;YACjD,qFAAqF;YACrF,kGAAkG;YAElG,IAAI,SAAS,OAAO;YACpB,IAAI;YACJ,IAAI;YACJ,IAAI;YAEJ,IAAI,UAAU,OAAO,WAAW,YAAY,aAAa,QAAQ;gBAC/D,UAAU,OAAO,OAAO;gBACxB,UAAU,OAAO,CAAC;gBAClB,UAAU,OAAO,CAAC;YACpB,OACE,UAAU;YAGZ,CAAA,GAAA,yBAAQ,EAAE;gBACR,YAAY;YACd;YAEA,+CAA+C;YAC/C,SAAS,OAAO,OAAO,EAAE,SAAS;YAElC,kFAAkF;YAClF,IAAI,OAAO,GAAG,sBAAsB;gBAClC,YAAY;YACd;QACF,GAAG;QAAC;KAAO;IAEX,CAAA,GAAA,sBAAQ,EAAE;QACR,OAAO;YACL,IAAI,IAAI,OAAO,EACb,qBAAqB,IAAI,OAAO;QAEpC;IACF,GAAG,EAAE;IAEL,IAAI,CAAC,UACH,OAAO;IAGT,qBACE,0DAAC;QAAI,OAAO;YAAC,QAAQ;YAAM,UAAU;YAAS,KAAK;YAAG,MAAM;QAAO;QAAG,KAAK;OACxE;AAGP","sources":["packages/react-aria/src/dnd/DragPreview.tsx"],"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 {DragItem, DragPreviewRenderer} from '@react-types/shared';\nimport {flushSync} from 'react-dom';\nimport React, {ForwardedRef, JSX, useEffect, useImperativeHandle, useRef, useState} from 'react';\n\nexport interface DragPreviewProps {\n /**\n * A render function which returns a preview element, or an object containing the element\n * and a custom offset. If an object is returned, the provided `x` and `y` values will be\n * used as the drag preview offset instead of the default calculation.\n */\n children: (items: DragItem[]) => JSX.Element | {element: JSX.Element, x: number, y: number} | null\n}\n\nexport const DragPreview:\n React.ForwardRefExoticComponent<DragPreviewProps & React.RefAttributes<DragPreviewRenderer | null>> =\nReact.forwardRef(function DragPreview(props: DragPreviewProps, ref: ForwardedRef<DragPreviewRenderer | null>) {\n let render = props.children;\n let [children, setChildren] = useState<JSX.Element | null>(null);\n let domRef = useRef<HTMLDivElement | null>(null);\n let raf = useRef<ReturnType<typeof requestAnimationFrame> | undefined>(undefined);\n\n useImperativeHandle(ref, () => (items: DragItem[], callback: (node: HTMLElement | null, x?: number, y?: number) => void) => {\n // This will be called during the onDragStart event by useDrag. We need to render the\n // preview synchronously before this event returns so we can call event.dataTransfer.setDragImage.\n\n let result = render(items);\n let element: JSX.Element | null;\n let offsetX: number | undefined;\n let offsetY: number | undefined;\n\n if (result && typeof result === 'object' && 'element' in result) {\n element = result.element;\n offsetX = result.x;\n offsetY = result.y;\n } else {\n element = result as JSX.Element | null;\n }\n\n flushSync(() => {\n setChildren(element);\n });\n\n // Yield back to useDrag to set the drag image.\n callback(domRef.current, offsetX, offsetY);\n\n // Remove the preview from the DOM after a frame so the browser has time to paint.\n raf.current = requestAnimationFrame(() => {\n setChildren(null);\n });\n }, [render]);\n\n useEffect(() => {\n return () => {\n if (raf.current) {\n cancelAnimationFrame(raf.current);\n }\n };\n }, []);\n\n if (!children) {\n return null;\n }\n\n return (\n <div style={{zIndex: -100, position: 'fixed', top: 0, left: -100000}} ref={domRef}>\n {children}\n </div>\n );\n});\n"],"names":[],"version":3,"file":"DragPreview.cjs.map"}
1
+ {"mappings":";;;;;;;;;;;;;AAAA;;;;;;;;;;CAUC;;AAiBM,MAAM,0DAET,CAAA,GAAA,sCAAI,EAAE,UAAU,CAAC,SAAS,YAC5B,KAAuB,EACvB,GAA6C;IAE7C,IAAI,SAAS,MAAM,QAAQ;IAC3B,IAAI,CAAC,UAAU,YAAY,GAAG,CAAA,GAAA,qBAAO,EAAsB;IAC3D,IAAI,SAAS,CAAA,GAAA,mBAAK,EAAyB;IAC3C,IAAI,MAAM,CAAA,GAAA,mBAAK,EAAwD;IAEvE,CAAA,GAAA,gCAAkB,EAChB,KACA,IACE,CAAC,OAAmB;YAClB,qFAAqF;YACrF,kGAAkG;YAElG,IAAI,SAAS,OAAO;YACpB,IAAI;YACJ,IAAI;YACJ,IAAI;YAEJ,IAAI,UAAU,OAAO,WAAW,YAAY,aAAa,QAAQ;gBAC/D,UAAU,OAAO,OAAO;gBACxB,UAAU,OAAO,CAAC;gBAClB,UAAU,OAAO,CAAC;YACpB,OACE,UAAU;YAGZ,CAAA,GAAA,yBAAQ,EAAE;gBACR,YAAY;YACd;YAEA,+CAA+C;YAC/C,SAAS,OAAO,OAAO,EAAE,SAAS;YAElC,kFAAkF;YAClF,IAAI,OAAO,GAAG,sBAAsB;gBAClC,YAAY;YACd;QACF,GACF;QAAC;KAAO;IAGV,CAAA,GAAA,sBAAQ,EAAE;QACR,OAAO;YACL,IAAI,IAAI,OAAO,EACb,qBAAqB,IAAI,OAAO;QAEpC;IACF,GAAG,EAAE;IAEL,IAAI,CAAC,UACH,OAAO;IAGT,qBACE,0DAAC;QAAI,OAAO;YAAC,QAAQ;YAAM,UAAU;YAAS,KAAK;YAAG,MAAM;QAAO;QAAG,KAAK;OACxE;AAGP","sources":["packages/react-aria/src/dnd/DragPreview.tsx"],"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 {DragItem, DragPreviewRenderer} from '@react-types/shared';\nimport {flushSync} from 'react-dom';\nimport React, {ForwardedRef, JSX, useEffect, useImperativeHandle, useRef, useState} from 'react';\n\nexport interface DragPreviewProps {\n /**\n * A render function which returns a preview element, or an object containing the element\n * and a custom offset. If an object is returned, the provided `x` and `y` values will be\n * used as the drag preview offset instead of the default calculation.\n */\n children: (\n items: DragItem[]\n ) => JSX.Element | {element: JSX.Element; x: number; y: number} | null;\n}\n\nexport const DragPreview: React.ForwardRefExoticComponent<\n DragPreviewProps & React.RefAttributes<DragPreviewRenderer | null>\n> = React.forwardRef(function DragPreview(\n props: DragPreviewProps,\n ref: ForwardedRef<DragPreviewRenderer | null>\n) {\n let render = props.children;\n let [children, setChildren] = useState<JSX.Element | null>(null);\n let domRef = useRef<HTMLDivElement | null>(null);\n let raf = useRef<ReturnType<typeof requestAnimationFrame> | undefined>(undefined);\n\n useImperativeHandle(\n ref,\n () =>\n (items: DragItem[], callback: (node: HTMLElement | null, x?: number, y?: number) => void) => {\n // This will be called during the onDragStart event by useDrag. We need to render the\n // preview synchronously before this event returns so we can call event.dataTransfer.setDragImage.\n\n let result = render(items);\n let element: JSX.Element | null;\n let offsetX: number | undefined;\n let offsetY: number | undefined;\n\n if (result && typeof result === 'object' && 'element' in result) {\n element = result.element;\n offsetX = result.x;\n offsetY = result.y;\n } else {\n element = result as JSX.Element | null;\n }\n\n flushSync(() => {\n setChildren(element);\n });\n\n // Yield back to useDrag to set the drag image.\n callback(domRef.current, offsetX, offsetY);\n\n // Remove the preview from the DOM after a frame so the browser has time to paint.\n raf.current = requestAnimationFrame(() => {\n setChildren(null);\n });\n },\n [render]\n );\n\n useEffect(() => {\n return () => {\n if (raf.current) {\n cancelAnimationFrame(raf.current);\n }\n };\n }, []);\n\n if (!children) {\n return null;\n }\n\n return (\n <div style={{zIndex: -100, position: 'fixed', top: 0, left: -100000}} ref={domRef}>\n {children}\n </div>\n );\n});\n"],"names":[],"version":3,"file":"DragPreview.cjs.map"}
@@ -1 +1 @@
1
- {"mappings":";;;AAAA;;;;;;;;;;CAUC;;AAeM,MAAM,0DAEb,CAAA,GAAA,YAAI,EAAE,UAAU,CAAC,SAAS,YAAY,KAAuB,EAAE,GAA6C;IAC1G,IAAI,SAAS,MAAM,QAAQ;IAC3B,IAAI,CAAC,UAAU,YAAY,GAAG,CAAA,GAAA,eAAO,EAAsB;IAC3D,IAAI,SAAS,CAAA,GAAA,aAAK,EAAyB;IAC3C,IAAI,MAAM,CAAA,GAAA,aAAK,EAAwD;IAEvE,CAAA,GAAA,0BAAkB,EAAE,KAAK,IAAM,CAAC,OAAmB;YACjD,qFAAqF;YACrF,kGAAkG;YAElG,IAAI,SAAS,OAAO;YACpB,IAAI;YACJ,IAAI;YACJ,IAAI;YAEJ,IAAI,UAAU,OAAO,WAAW,YAAY,aAAa,QAAQ;gBAC/D,UAAU,OAAO,OAAO;gBACxB,UAAU,OAAO,CAAC;gBAClB,UAAU,OAAO,CAAC;YACpB,OACE,UAAU;YAGZ,CAAA,GAAA,gBAAQ,EAAE;gBACR,YAAY;YACd;YAEA,+CAA+C;YAC/C,SAAS,OAAO,OAAO,EAAE,SAAS;YAElC,kFAAkF;YAClF,IAAI,OAAO,GAAG,sBAAsB;gBAClC,YAAY;YACd;QACF,GAAG;QAAC;KAAO;IAEX,CAAA,GAAA,gBAAQ,EAAE;QACR,OAAO;YACL,IAAI,IAAI,OAAO,EACb,qBAAqB,IAAI,OAAO;QAEpC;IACF,GAAG,EAAE;IAEL,IAAI,CAAC,UACH,OAAO;IAGT,qBACE,gCAAC;QAAI,OAAO;YAAC,QAAQ;YAAM,UAAU;YAAS,KAAK;YAAG,MAAM;QAAO;QAAG,KAAK;OACxE;AAGP","sources":["packages/react-aria/src/dnd/DragPreview.tsx"],"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 {DragItem, DragPreviewRenderer} from '@react-types/shared';\nimport {flushSync} from 'react-dom';\nimport React, {ForwardedRef, JSX, useEffect, useImperativeHandle, useRef, useState} from 'react';\n\nexport interface DragPreviewProps {\n /**\n * A render function which returns a preview element, or an object containing the element\n * and a custom offset. If an object is returned, the provided `x` and `y` values will be\n * used as the drag preview offset instead of the default calculation.\n */\n children: (items: DragItem[]) => JSX.Element | {element: JSX.Element, x: number, y: number} | null\n}\n\nexport const DragPreview:\n React.ForwardRefExoticComponent<DragPreviewProps & React.RefAttributes<DragPreviewRenderer | null>> =\nReact.forwardRef(function DragPreview(props: DragPreviewProps, ref: ForwardedRef<DragPreviewRenderer | null>) {\n let render = props.children;\n let [children, setChildren] = useState<JSX.Element | null>(null);\n let domRef = useRef<HTMLDivElement | null>(null);\n let raf = useRef<ReturnType<typeof requestAnimationFrame> | undefined>(undefined);\n\n useImperativeHandle(ref, () => (items: DragItem[], callback: (node: HTMLElement | null, x?: number, y?: number) => void) => {\n // This will be called during the onDragStart event by useDrag. We need to render the\n // preview synchronously before this event returns so we can call event.dataTransfer.setDragImage.\n\n let result = render(items);\n let element: JSX.Element | null;\n let offsetX: number | undefined;\n let offsetY: number | undefined;\n\n if (result && typeof result === 'object' && 'element' in result) {\n element = result.element;\n offsetX = result.x;\n offsetY = result.y;\n } else {\n element = result as JSX.Element | null;\n }\n\n flushSync(() => {\n setChildren(element);\n });\n\n // Yield back to useDrag to set the drag image.\n callback(domRef.current, offsetX, offsetY);\n\n // Remove the preview from the DOM after a frame so the browser has time to paint.\n raf.current = requestAnimationFrame(() => {\n setChildren(null);\n });\n }, [render]);\n\n useEffect(() => {\n return () => {\n if (raf.current) {\n cancelAnimationFrame(raf.current);\n }\n };\n }, []);\n\n if (!children) {\n return null;\n }\n\n return (\n <div style={{zIndex: -100, position: 'fixed', top: 0, left: -100000}} ref={domRef}>\n {children}\n </div>\n );\n});\n"],"names":[],"version":3,"file":"DragPreview.js.map"}
1
+ {"mappings":";;;AAAA;;;;;;;;;;CAUC;;AAiBM,MAAM,0DAET,CAAA,GAAA,YAAI,EAAE,UAAU,CAAC,SAAS,YAC5B,KAAuB,EACvB,GAA6C;IAE7C,IAAI,SAAS,MAAM,QAAQ;IAC3B,IAAI,CAAC,UAAU,YAAY,GAAG,CAAA,GAAA,eAAO,EAAsB;IAC3D,IAAI,SAAS,CAAA,GAAA,aAAK,EAAyB;IAC3C,IAAI,MAAM,CAAA,GAAA,aAAK,EAAwD;IAEvE,CAAA,GAAA,0BAAkB,EAChB,KACA,IACE,CAAC,OAAmB;YAClB,qFAAqF;YACrF,kGAAkG;YAElG,IAAI,SAAS,OAAO;YACpB,IAAI;YACJ,IAAI;YACJ,IAAI;YAEJ,IAAI,UAAU,OAAO,WAAW,YAAY,aAAa,QAAQ;gBAC/D,UAAU,OAAO,OAAO;gBACxB,UAAU,OAAO,CAAC;gBAClB,UAAU,OAAO,CAAC;YACpB,OACE,UAAU;YAGZ,CAAA,GAAA,gBAAQ,EAAE;gBACR,YAAY;YACd;YAEA,+CAA+C;YAC/C,SAAS,OAAO,OAAO,EAAE,SAAS;YAElC,kFAAkF;YAClF,IAAI,OAAO,GAAG,sBAAsB;gBAClC,YAAY;YACd;QACF,GACF;QAAC;KAAO;IAGV,CAAA,GAAA,gBAAQ,EAAE;QACR,OAAO;YACL,IAAI,IAAI,OAAO,EACb,qBAAqB,IAAI,OAAO;QAEpC;IACF,GAAG,EAAE;IAEL,IAAI,CAAC,UACH,OAAO;IAGT,qBACE,gCAAC;QAAI,OAAO;YAAC,QAAQ;YAAM,UAAU;YAAS,KAAK;YAAG,MAAM;QAAO;QAAG,KAAK;OACxE;AAGP","sources":["packages/react-aria/src/dnd/DragPreview.tsx"],"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 {DragItem, DragPreviewRenderer} from '@react-types/shared';\nimport {flushSync} from 'react-dom';\nimport React, {ForwardedRef, JSX, useEffect, useImperativeHandle, useRef, useState} from 'react';\n\nexport interface DragPreviewProps {\n /**\n * A render function which returns a preview element, or an object containing the element\n * and a custom offset. If an object is returned, the provided `x` and `y` values will be\n * used as the drag preview offset instead of the default calculation.\n */\n children: (\n items: DragItem[]\n ) => JSX.Element | {element: JSX.Element; x: number; y: number} | null;\n}\n\nexport const DragPreview: React.ForwardRefExoticComponent<\n DragPreviewProps & React.RefAttributes<DragPreviewRenderer | null>\n> = React.forwardRef(function DragPreview(\n props: DragPreviewProps,\n ref: ForwardedRef<DragPreviewRenderer | null>\n) {\n let render = props.children;\n let [children, setChildren] = useState<JSX.Element | null>(null);\n let domRef = useRef<HTMLDivElement | null>(null);\n let raf = useRef<ReturnType<typeof requestAnimationFrame> | undefined>(undefined);\n\n useImperativeHandle(\n ref,\n () =>\n (items: DragItem[], callback: (node: HTMLElement | null, x?: number, y?: number) => void) => {\n // This will be called during the onDragStart event by useDrag. We need to render the\n // preview synchronously before this event returns so we can call event.dataTransfer.setDragImage.\n\n let result = render(items);\n let element: JSX.Element | null;\n let offsetX: number | undefined;\n let offsetY: number | undefined;\n\n if (result && typeof result === 'object' && 'element' in result) {\n element = result.element;\n offsetX = result.x;\n offsetY = result.y;\n } else {\n element = result as JSX.Element | null;\n }\n\n flushSync(() => {\n setChildren(element);\n });\n\n // Yield back to useDrag to set the drag image.\n callback(domRef.current, offsetX, offsetY);\n\n // Remove the preview from the DOM after a frame so the browser has time to paint.\n raf.current = requestAnimationFrame(() => {\n setChildren(null);\n });\n },\n [render]\n );\n\n useEffect(() => {\n return () => {\n if (raf.current) {\n cancelAnimationFrame(raf.current);\n }\n };\n }, []);\n\n if (!children) {\n return null;\n }\n\n return (\n <div style={{zIndex: -100, position: 'fixed', top: 0, left: -100000}} ref={domRef}>\n {children}\n </div>\n );\n});\n"],"names":[],"version":3,"file":"DragPreview.js.map"}
@@ -1 +1 @@
1
- {"mappings":";;;AAAA;;;;;;;;;;CAUC;;AAeM,MAAM,0DAEb,CAAA,GAAA,YAAI,EAAE,UAAU,CAAC,SAAS,YAAY,KAAuB,EAAE,GAA6C;IAC1G,IAAI,SAAS,MAAM,QAAQ;IAC3B,IAAI,CAAC,UAAU,YAAY,GAAG,CAAA,GAAA,eAAO,EAAsB;IAC3D,IAAI,SAAS,CAAA,GAAA,aAAK,EAAyB;IAC3C,IAAI,MAAM,CAAA,GAAA,aAAK,EAAwD;IAEvE,CAAA,GAAA,0BAAkB,EAAE,KAAK,IAAM,CAAC,OAAmB;YACjD,qFAAqF;YACrF,kGAAkG;YAElG,IAAI,SAAS,OAAO;YACpB,IAAI;YACJ,IAAI;YACJ,IAAI;YAEJ,IAAI,UAAU,OAAO,WAAW,YAAY,aAAa,QAAQ;gBAC/D,UAAU,OAAO,OAAO;gBACxB,UAAU,OAAO,CAAC;gBAClB,UAAU,OAAO,CAAC;YACpB,OACE,UAAU;YAGZ,CAAA,GAAA,gBAAQ,EAAE;gBACR,YAAY;YACd;YAEA,+CAA+C;YAC/C,SAAS,OAAO,OAAO,EAAE,SAAS;YAElC,kFAAkF;YAClF,IAAI,OAAO,GAAG,sBAAsB;gBAClC,YAAY;YACd;QACF,GAAG;QAAC;KAAO;IAEX,CAAA,GAAA,gBAAQ,EAAE;QACR,OAAO;YACL,IAAI,IAAI,OAAO,EACb,qBAAqB,IAAI,OAAO;QAEpC;IACF,GAAG,EAAE;IAEL,IAAI,CAAC,UACH,OAAO;IAGT,qBACE,gCAAC;QAAI,OAAO;YAAC,QAAQ;YAAM,UAAU;YAAS,KAAK;YAAG,MAAM;QAAO;QAAG,KAAK;OACxE;AAGP","sources":["packages/react-aria/src/dnd/DragPreview.tsx"],"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 {DragItem, DragPreviewRenderer} from '@react-types/shared';\nimport {flushSync} from 'react-dom';\nimport React, {ForwardedRef, JSX, useEffect, useImperativeHandle, useRef, useState} from 'react';\n\nexport interface DragPreviewProps {\n /**\n * A render function which returns a preview element, or an object containing the element\n * and a custom offset. If an object is returned, the provided `x` and `y` values will be\n * used as the drag preview offset instead of the default calculation.\n */\n children: (items: DragItem[]) => JSX.Element | {element: JSX.Element, x: number, y: number} | null\n}\n\nexport const DragPreview:\n React.ForwardRefExoticComponent<DragPreviewProps & React.RefAttributes<DragPreviewRenderer | null>> =\nReact.forwardRef(function DragPreview(props: DragPreviewProps, ref: ForwardedRef<DragPreviewRenderer | null>) {\n let render = props.children;\n let [children, setChildren] = useState<JSX.Element | null>(null);\n let domRef = useRef<HTMLDivElement | null>(null);\n let raf = useRef<ReturnType<typeof requestAnimationFrame> | undefined>(undefined);\n\n useImperativeHandle(ref, () => (items: DragItem[], callback: (node: HTMLElement | null, x?: number, y?: number) => void) => {\n // This will be called during the onDragStart event by useDrag. We need to render the\n // preview synchronously before this event returns so we can call event.dataTransfer.setDragImage.\n\n let result = render(items);\n let element: JSX.Element | null;\n let offsetX: number | undefined;\n let offsetY: number | undefined;\n\n if (result && typeof result === 'object' && 'element' in result) {\n element = result.element;\n offsetX = result.x;\n offsetY = result.y;\n } else {\n element = result as JSX.Element | null;\n }\n\n flushSync(() => {\n setChildren(element);\n });\n\n // Yield back to useDrag to set the drag image.\n callback(domRef.current, offsetX, offsetY);\n\n // Remove the preview from the DOM after a frame so the browser has time to paint.\n raf.current = requestAnimationFrame(() => {\n setChildren(null);\n });\n }, [render]);\n\n useEffect(() => {\n return () => {\n if (raf.current) {\n cancelAnimationFrame(raf.current);\n }\n };\n }, []);\n\n if (!children) {\n return null;\n }\n\n return (\n <div style={{zIndex: -100, position: 'fixed', top: 0, left: -100000}} ref={domRef}>\n {children}\n </div>\n );\n});\n"],"names":[],"version":3,"file":"DragPreview.mjs.map"}
1
+ {"mappings":";;;AAAA;;;;;;;;;;CAUC;;AAiBM,MAAM,0DAET,CAAA,GAAA,YAAI,EAAE,UAAU,CAAC,SAAS,YAC5B,KAAuB,EACvB,GAA6C;IAE7C,IAAI,SAAS,MAAM,QAAQ;IAC3B,IAAI,CAAC,UAAU,YAAY,GAAG,CAAA,GAAA,eAAO,EAAsB;IAC3D,IAAI,SAAS,CAAA,GAAA,aAAK,EAAyB;IAC3C,IAAI,MAAM,CAAA,GAAA,aAAK,EAAwD;IAEvE,CAAA,GAAA,0BAAkB,EAChB,KACA,IACE,CAAC,OAAmB;YAClB,qFAAqF;YACrF,kGAAkG;YAElG,IAAI,SAAS,OAAO;YACpB,IAAI;YACJ,IAAI;YACJ,IAAI;YAEJ,IAAI,UAAU,OAAO,WAAW,YAAY,aAAa,QAAQ;gBAC/D,UAAU,OAAO,OAAO;gBACxB,UAAU,OAAO,CAAC;gBAClB,UAAU,OAAO,CAAC;YACpB,OACE,UAAU;YAGZ,CAAA,GAAA,gBAAQ,EAAE;gBACR,YAAY;YACd;YAEA,+CAA+C;YAC/C,SAAS,OAAO,OAAO,EAAE,SAAS;YAElC,kFAAkF;YAClF,IAAI,OAAO,GAAG,sBAAsB;gBAClC,YAAY;YACd;QACF,GACF;QAAC;KAAO;IAGV,CAAA,GAAA,gBAAQ,EAAE;QACR,OAAO;YACL,IAAI,IAAI,OAAO,EACb,qBAAqB,IAAI,OAAO;QAEpC;IACF,GAAG,EAAE;IAEL,IAAI,CAAC,UACH,OAAO;IAGT,qBACE,gCAAC;QAAI,OAAO;YAAC,QAAQ;YAAM,UAAU;YAAS,KAAK;YAAG,MAAM;QAAO;QAAG,KAAK;OACxE;AAGP","sources":["packages/react-aria/src/dnd/DragPreview.tsx"],"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 {DragItem, DragPreviewRenderer} from '@react-types/shared';\nimport {flushSync} from 'react-dom';\nimport React, {ForwardedRef, JSX, useEffect, useImperativeHandle, useRef, useState} from 'react';\n\nexport interface DragPreviewProps {\n /**\n * A render function which returns a preview element, or an object containing the element\n * and a custom offset. If an object is returned, the provided `x` and `y` values will be\n * used as the drag preview offset instead of the default calculation.\n */\n children: (\n items: DragItem[]\n ) => JSX.Element | {element: JSX.Element; x: number; y: number} | null;\n}\n\nexport const DragPreview: React.ForwardRefExoticComponent<\n DragPreviewProps & React.RefAttributes<DragPreviewRenderer | null>\n> = React.forwardRef(function DragPreview(\n props: DragPreviewProps,\n ref: ForwardedRef<DragPreviewRenderer | null>\n) {\n let render = props.children;\n let [children, setChildren] = useState<JSX.Element | null>(null);\n let domRef = useRef<HTMLDivElement | null>(null);\n let raf = useRef<ReturnType<typeof requestAnimationFrame> | undefined>(undefined);\n\n useImperativeHandle(\n ref,\n () =>\n (items: DragItem[], callback: (node: HTMLElement | null, x?: number, y?: number) => void) => {\n // This will be called during the onDragStart event by useDrag. We need to render the\n // preview synchronously before this event returns so we can call event.dataTransfer.setDragImage.\n\n let result = render(items);\n let element: JSX.Element | null;\n let offsetX: number | undefined;\n let offsetY: number | undefined;\n\n if (result && typeof result === 'object' && 'element' in result) {\n element = result.element;\n offsetX = result.x;\n offsetY = result.y;\n } else {\n element = result as JSX.Element | null;\n }\n\n flushSync(() => {\n setChildren(element);\n });\n\n // Yield back to useDrag to set the drag image.\n callback(domRef.current, offsetX, offsetY);\n\n // Remove the preview from the DOM after a frame so the browser has time to paint.\n raf.current = requestAnimationFrame(() => {\n setChildren(null);\n });\n },\n [render]\n );\n\n useEffect(() => {\n return () => {\n if (raf.current) {\n cancelAnimationFrame(raf.current);\n }\n };\n }, []);\n\n if (!children) {\n return null;\n }\n\n return (\n <div style={{zIndex: -100, position: 'fixed', top: 0, left: -100000}} ref={domRef}>\n {children}\n </div>\n );\n});\n"],"names":[],"version":3,"file":"DragPreview.mjs.map"}
@@ -31,8 +31,14 @@ function $f052f021c3076f5b$var$nextDropTarget(keyboardDelegate, collection, targ
31
31
  }
32
32
  if (target.type === 'item') {
33
33
  let nextKey = null;
34
- if (horizontal) nextKey = horizontal === 'right' ? keyboardDelegate.getKeyRightOf?.(target.key) : keyboardDelegate.getKeyLeftOf?.(target.key);
35
- else nextKey = keyboardDelegate.getKeyBelow?.(target.key);
34
+ if (horizontal) nextKey = horizontal === 'right' ? keyboardDelegate.getKeyRightOf?.(target.key, {
35
+ includeDisabled: true
36
+ }) : keyboardDelegate.getKeyLeftOf?.(target.key, {
37
+ includeDisabled: true
38
+ });
39
+ else nextKey = keyboardDelegate.getKeyBelow?.(target.key, {
40
+ includeDisabled: true
41
+ });
36
42
  let nextCollectionKey = $f052f021c3076f5b$var$getNextItem(collection, target.key, (key)=>collection.getKeyAfter(key));
37
43
  // If the keyboard delegate did not move to the next key in the collection,
38
44
  // jump to that key with the same drop position. Otherwise, try the other
@@ -121,8 +127,14 @@ function $f052f021c3076f5b$var$previousDropTarget(keyboardDelegate, collection,
121
127
  }
122
128
  if (target.type === 'item') {
123
129
  let prevKey = null;
124
- if (horizontal) prevKey = horizontal === 'left' ? keyboardDelegate.getKeyLeftOf?.(target.key) : keyboardDelegate.getKeyRightOf?.(target.key);
125
- else prevKey = keyboardDelegate.getKeyAbove?.(target.key);
130
+ if (horizontal) prevKey = horizontal === 'left' ? keyboardDelegate.getKeyLeftOf?.(target.key, {
131
+ includeDisabled: true
132
+ }) : keyboardDelegate.getKeyRightOf?.(target.key, {
133
+ includeDisabled: true
134
+ });
135
+ else prevKey = keyboardDelegate.getKeyAbove?.(target.key, {
136
+ includeDisabled: true
137
+ });
126
138
  let prevCollectionKey = $f052f021c3076f5b$var$getNextItem(collection, target.key, (key)=>collection.getKeyBefore(key));
127
139
  // If the keyboard delegate did not move to the next key in the collection,
128
140
  // jump to that key with the same drop position. Otherwise, try the other
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/react-aria/src/dnd/DropTargetKeyboardNavigation.ts"],"sourcesContent":["import {Collection, DropTarget, Key, KeyboardDelegate, Node} from '@react-types/shared';\n\nexport function navigate(\n keyboardDelegate: KeyboardDelegate,\n collection: Collection<Node<unknown>>,\n target: DropTarget | null | undefined,\n direction: 'left' | 'right' | 'up' | 'down',\n rtl = false,\n wrap = false\n): DropTarget | null {\n switch (direction) {\n case 'left':\n return rtl\n ? nextDropTarget(keyboardDelegate, collection, target, wrap, 'left')\n : previousDropTarget(keyboardDelegate, collection, target, wrap, 'left');\n case 'right':\n return rtl\n ? previousDropTarget(keyboardDelegate, collection, target, wrap, 'right')\n : nextDropTarget(keyboardDelegate, collection, target, wrap, 'right');\n case 'up':\n return previousDropTarget(keyboardDelegate, collection, target, wrap);\n case 'down':\n return nextDropTarget(keyboardDelegate, collection, target, wrap);\n }\n}\n\nfunction nextDropTarget(\n keyboardDelegate: KeyboardDelegate,\n collection: Collection<Node<unknown>>,\n target: DropTarget | null | undefined,\n wrap = false,\n horizontal: 'left' | 'right' | null = null\n): DropTarget | null {\n if (!target) {\n return {\n type: 'root'\n };\n }\n\n if (target.type === 'root') {\n let nextKey = keyboardDelegate.getFirstKey?.() ?? null;\n if (nextKey != null) {\n return {\n type: 'item',\n key: nextKey,\n dropPosition: 'before'\n };\n }\n\n return null;\n }\n\n if (target.type === 'item') {\n let nextKey: Key | null | undefined = null;\n if (horizontal) {\n nextKey = horizontal === 'right' ? keyboardDelegate.getKeyRightOf?.(target.key) : keyboardDelegate.getKeyLeftOf?.(target.key);\n } else {\n nextKey = keyboardDelegate.getKeyBelow?.(target.key);\n }\n let nextCollectionKey = getNextItem(collection, target.key, key => collection.getKeyAfter(key));\n\n // If the keyboard delegate did not move to the next key in the collection,\n // jump to that key with the same drop position. Otherwise, try the other\n // drop positions on the current key first.\n if (nextKey != null && nextKey !== nextCollectionKey) {\n return {\n type: 'item',\n key: nextKey,\n dropPosition: target.dropPosition\n };\n }\n\n switch (target.dropPosition) {\n case 'before': {\n return {\n type: 'item',\n key: target.key,\n dropPosition: 'on'\n };\n }\n case 'on': {\n // If there are nested items, traverse to them prior to the \"after\" position of this target.\n // If the next key is on the same level, then its \"before\" position is equivalent to this item's \"after\" position.\n let targetNode = collection.getItem(target.key);\n let nextNode = nextKey != null ? collection.getItem(nextKey) : null;\n if (targetNode && nextNode && nextNode.level >= targetNode.level) {\n return {\n type: 'item',\n key: nextNode.key,\n dropPosition: 'before'\n };\n }\n\n return {\n type: 'item',\n key: target.key,\n dropPosition: 'after'\n };\n }\n case 'after': {\n // If this is the last sibling in a level, traverse to the parent.\n let targetNode = collection.getItem(target.key);\n let nextItemInSameLevel = targetNode?.nextKey != null ? collection.getItem(targetNode.nextKey) : null;\n while (nextItemInSameLevel != null && nextItemInSameLevel.type !== 'item') {\n nextItemInSameLevel = nextItemInSameLevel.nextKey != null ? collection.getItem(nextItemInSameLevel.nextKey) : null;\n }\n\n if (targetNode && nextItemInSameLevel == null && targetNode.parentKey != null) {\n // If the parent item has an item after it, use the \"before\" position.\n let parentNode = collection.getItem(targetNode.parentKey);\n const nextNode = parentNode?.nextKey != null ? collection.getItem(parentNode.nextKey) : null;\n if (nextNode?.type === 'item') {\n return {\n type: 'item',\n key: nextNode.key,\n dropPosition: 'before'\n };\n }\n\n if (parentNode?.type === 'item') {\n return {\n type: 'item',\n key: parentNode.key,\n dropPosition: 'after'\n };\n }\n }\n\n if (nextItemInSameLevel) {\n return {\n type: 'item',\n key: nextItemInSameLevel.key,\n dropPosition: 'on'\n };\n }\n }\n }\n }\n\n if (wrap) {\n return {\n type: 'root'\n };\n }\n\n return null;\n}\n\nfunction previousDropTarget(\n keyboardDelegate: KeyboardDelegate,\n collection: Collection<Node<unknown>>,\n target: DropTarget | null | undefined,\n wrap = false,\n horizontal: 'left' | 'right' | null = null\n): DropTarget | null {\n // Start after the last root-level item.\n if (!target || (wrap && target.type === 'root')) {\n // Keyboard delegate gets the deepest item but we want the shallowest.\n let prevKey: Key | null = null;\n let lastKey = keyboardDelegate.getLastKey?.();\n while (lastKey != null) {\n let node = collection.getItem(lastKey);\n if (node?.type !== 'item') {\n break;\n }\n prevKey = lastKey;\n lastKey = node?.parentKey;\n }\n\n if (prevKey != null) {\n return {\n type: 'item',\n key: prevKey,\n dropPosition: 'after'\n };\n }\n\n return null;\n }\n\n if (target.type === 'item') {\n let prevKey: Key | null | undefined = null;\n if (horizontal) {\n prevKey = horizontal === 'left' ? keyboardDelegate.getKeyLeftOf?.(target.key) : keyboardDelegate.getKeyRightOf?.(target.key);\n } else {\n prevKey = keyboardDelegate.getKeyAbove?.(target.key);\n }\n let prevCollectionKey = getNextItem(collection, target.key, key => collection.getKeyBefore(key));\n\n // If the keyboard delegate did not move to the next key in the collection,\n // jump to that key with the same drop position. Otherwise, try the other\n // drop positions on the current key first.\n if (prevKey != null && prevKey !== prevCollectionKey) {\n return {\n type: 'item',\n key: prevKey,\n dropPosition: target.dropPosition\n };\n }\n\n switch (target.dropPosition) {\n case 'before': {\n // Move after the last child of the previous item.\n let targetNode = collection.getItem(target.key);\n if (targetNode && targetNode.prevKey != null) {\n let lastChild = getLastChild(collection, targetNode.prevKey);\n if (lastChild) {\n return lastChild;\n }\n }\n\n if (prevKey != null) {\n return {\n type: 'item',\n key: prevKey,\n dropPosition: 'on'\n };\n }\n\n return {\n type: 'root'\n };\n }\n case 'on': {\n return {\n type: 'item',\n key: target.key,\n dropPosition: 'before'\n };\n }\n case 'after': {\n // Move after the last child of this item.\n let lastChild = getLastChild(collection, target.key);\n if (lastChild) {\n return lastChild;\n }\n\n return {\n type: 'item',\n key: target.key,\n dropPosition: 'on'\n };\n }\n }\n }\n\n if (target.type !== 'root') {\n return {\n type: 'root'\n };\n }\n\n return null;\n}\n\nfunction getLastChild(collection: Collection<Node<unknown>>, key: Key): DropTarget | null {\n // getChildNodes still returns child tree items even when the item is collapsed.\n // Checking if the next item has a greater level is a silly way to determine if the item is expanded.\n let targetNode = collection.getItem(key);\n let nextKey = getNextItem(collection, key, key => collection.getKeyAfter(key));\n let nextNode = nextKey != null ? collection.getItem(nextKey) : null;\n if (targetNode && nextNode && nextNode.level > targetNode.level) {\n let lastChild: Node<unknown> | null = null;\n if ('lastChildKey' in targetNode) {\n lastChild = targetNode.lastChildKey != null ? collection.getItem(targetNode.lastChildKey) : null;\n while (lastChild && lastChild.type !== 'item' && lastChild.prevKey != null) {\n lastChild = collection.getItem(lastChild.prevKey)!;\n }\n } else {\n lastChild = Array.from(targetNode.childNodes).findLast(item => item.type === 'item') || null;\n }\n\n if (lastChild) {\n return {\n type: 'item',\n key: lastChild.key,\n dropPosition: 'after'\n };\n }\n }\n\n return null;\n}\n\n// Find the next or previous item in a collection, skipping over other types of nodes (e.g. content).\nfunction getNextItem(collection: Collection<Node<unknown>>, key: Key, getNextKey: (key: Key) => Key | null): Key | null {\n let nextCollectionKey = getNextKey(key);\n let nextCollectionNode = nextCollectionKey != null ? collection.getItem(nextCollectionKey) : null;\n while (nextCollectionNode && nextCollectionNode.type !== 'item') {\n nextCollectionKey = getNextKey(nextCollectionNode.key);\n nextCollectionNode = nextCollectionKey != null ? collection.getItem(nextCollectionKey) : null;\n }\n return nextCollectionKey;\n}\n"],"names":[],"version":3,"file":"DropTargetKeyboardNavigation.cjs.map"}
1
+ {"mappings":"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","sources":["packages/react-aria/src/dnd/DropTargetKeyboardNavigation.ts"],"sourcesContent":["import {Collection, DropTarget, Key, KeyboardDelegate, Node} from '@react-types/shared';\n\nexport function navigate(\n keyboardDelegate: KeyboardDelegate,\n collection: Collection<Node<unknown>>,\n target: DropTarget | null | undefined,\n direction: 'left' | 'right' | 'up' | 'down',\n rtl = false,\n wrap = false\n): DropTarget | null {\n switch (direction) {\n case 'left':\n return rtl\n ? nextDropTarget(keyboardDelegate, collection, target, wrap, 'left')\n : previousDropTarget(keyboardDelegate, collection, target, wrap, 'left');\n case 'right':\n return rtl\n ? previousDropTarget(keyboardDelegate, collection, target, wrap, 'right')\n : nextDropTarget(keyboardDelegate, collection, target, wrap, 'right');\n case 'up':\n return previousDropTarget(keyboardDelegate, collection, target, wrap);\n case 'down':\n return nextDropTarget(keyboardDelegate, collection, target, wrap);\n }\n}\n\nfunction nextDropTarget(\n keyboardDelegate: KeyboardDelegate,\n collection: Collection<Node<unknown>>,\n target: DropTarget | null | undefined,\n wrap = false,\n horizontal: 'left' | 'right' | null = null\n): DropTarget | null {\n if (!target) {\n return {\n type: 'root'\n };\n }\n\n if (target.type === 'root') {\n let nextKey = keyboardDelegate.getFirstKey?.() ?? null;\n if (nextKey != null) {\n return {\n type: 'item',\n key: nextKey,\n dropPosition: 'before'\n };\n }\n\n return null;\n }\n\n if (target.type === 'item') {\n let nextKey: Key | null | undefined = null;\n if (horizontal) {\n nextKey =\n horizontal === 'right'\n ? keyboardDelegate.getKeyRightOf?.(target.key, {includeDisabled: true})\n : keyboardDelegate.getKeyLeftOf?.(target.key, {includeDisabled: true});\n } else {\n nextKey = keyboardDelegate.getKeyBelow?.(target.key, {includeDisabled: true});\n }\n let nextCollectionKey = getNextItem(collection, target.key, key => collection.getKeyAfter(key));\n\n // If the keyboard delegate did not move to the next key in the collection,\n // jump to that key with the same drop position. Otherwise, try the other\n // drop positions on the current key first.\n if (nextKey != null && nextKey !== nextCollectionKey) {\n return {\n type: 'item',\n key: nextKey,\n dropPosition: target.dropPosition\n };\n }\n\n switch (target.dropPosition) {\n case 'before': {\n return {\n type: 'item',\n key: target.key,\n dropPosition: 'on'\n };\n }\n case 'on': {\n // If there are nested items, traverse to them prior to the \"after\" position of this target.\n // If the next key is on the same level, then its \"before\" position is equivalent to this item's \"after\" position.\n let targetNode = collection.getItem(target.key);\n let nextNode = nextKey != null ? collection.getItem(nextKey) : null;\n if (targetNode && nextNode && nextNode.level >= targetNode.level) {\n return {\n type: 'item',\n key: nextNode.key,\n dropPosition: 'before'\n };\n }\n\n return {\n type: 'item',\n key: target.key,\n dropPosition: 'after'\n };\n }\n case 'after': {\n // If this is the last sibling in a level, traverse to the parent.\n let targetNode = collection.getItem(target.key);\n let nextItemInSameLevel =\n targetNode?.nextKey != null ? collection.getItem(targetNode.nextKey) : null;\n while (nextItemInSameLevel != null && nextItemInSameLevel.type !== 'item') {\n nextItemInSameLevel =\n nextItemInSameLevel.nextKey != null\n ? collection.getItem(nextItemInSameLevel.nextKey)\n : null;\n }\n\n if (targetNode && nextItemInSameLevel == null && targetNode.parentKey != null) {\n // If the parent item has an item after it, use the \"before\" position.\n let parentNode = collection.getItem(targetNode.parentKey);\n const nextNode =\n parentNode?.nextKey != null ? collection.getItem(parentNode.nextKey) : null;\n if (nextNode?.type === 'item') {\n return {\n type: 'item',\n key: nextNode.key,\n dropPosition: 'before'\n };\n }\n\n if (parentNode?.type === 'item') {\n return {\n type: 'item',\n key: parentNode.key,\n dropPosition: 'after'\n };\n }\n }\n\n if (nextItemInSameLevel) {\n return {\n type: 'item',\n key: nextItemInSameLevel.key,\n dropPosition: 'on'\n };\n }\n }\n }\n }\n\n if (wrap) {\n return {\n type: 'root'\n };\n }\n\n return null;\n}\n\nfunction previousDropTarget(\n keyboardDelegate: KeyboardDelegate,\n collection: Collection<Node<unknown>>,\n target: DropTarget | null | undefined,\n wrap = false,\n horizontal: 'left' | 'right' | null = null\n): DropTarget | null {\n // Start after the last root-level item.\n if (!target || (wrap && target.type === 'root')) {\n // Keyboard delegate gets the deepest item but we want the shallowest.\n let prevKey: Key | null = null;\n let lastKey = keyboardDelegate.getLastKey?.();\n while (lastKey != null) {\n let node = collection.getItem(lastKey);\n if (node?.type !== 'item') {\n break;\n }\n prevKey = lastKey;\n lastKey = node?.parentKey;\n }\n\n if (prevKey != null) {\n return {\n type: 'item',\n key: prevKey,\n dropPosition: 'after'\n };\n }\n\n return null;\n }\n\n if (target.type === 'item') {\n let prevKey: Key | null | undefined = null;\n if (horizontal) {\n prevKey =\n horizontal === 'left'\n ? keyboardDelegate.getKeyLeftOf?.(target.key, {includeDisabled: true})\n : keyboardDelegate.getKeyRightOf?.(target.key, {includeDisabled: true});\n } else {\n prevKey = keyboardDelegate.getKeyAbove?.(target.key, {includeDisabled: true});\n }\n let prevCollectionKey = getNextItem(collection, target.key, key =>\n collection.getKeyBefore(key)\n );\n\n // If the keyboard delegate did not move to the next key in the collection,\n // jump to that key with the same drop position. Otherwise, try the other\n // drop positions on the current key first.\n if (prevKey != null && prevKey !== prevCollectionKey) {\n return {\n type: 'item',\n key: prevKey,\n dropPosition: target.dropPosition\n };\n }\n\n switch (target.dropPosition) {\n case 'before': {\n // Move after the last child of the previous item.\n let targetNode = collection.getItem(target.key);\n if (targetNode && targetNode.prevKey != null) {\n let lastChild = getLastChild(collection, targetNode.prevKey);\n if (lastChild) {\n return lastChild;\n }\n }\n\n if (prevKey != null) {\n return {\n type: 'item',\n key: prevKey,\n dropPosition: 'on'\n };\n }\n\n return {\n type: 'root'\n };\n }\n case 'on': {\n return {\n type: 'item',\n key: target.key,\n dropPosition: 'before'\n };\n }\n case 'after': {\n // Move after the last child of this item.\n let lastChild = getLastChild(collection, target.key);\n if (lastChild) {\n return lastChild;\n }\n\n return {\n type: 'item',\n key: target.key,\n dropPosition: 'on'\n };\n }\n }\n }\n\n if (target.type !== 'root') {\n return {\n type: 'root'\n };\n }\n\n return null;\n}\n\nfunction getLastChild(collection: Collection<Node<unknown>>, key: Key): DropTarget | null {\n // getChildNodes still returns child tree items even when the item is collapsed.\n // Checking if the next item has a greater level is a silly way to determine if the item is expanded.\n let targetNode = collection.getItem(key);\n let nextKey = getNextItem(collection, key, key => collection.getKeyAfter(key));\n let nextNode = nextKey != null ? collection.getItem(nextKey) : null;\n if (targetNode && nextNode && nextNode.level > targetNode.level) {\n let lastChild: Node<unknown> | null = null;\n if ('lastChildKey' in targetNode) {\n lastChild =\n targetNode.lastChildKey != null ? collection.getItem(targetNode.lastChildKey) : null;\n while (lastChild && lastChild.type !== 'item' && lastChild.prevKey != null) {\n lastChild = collection.getItem(lastChild.prevKey)!;\n }\n } else {\n lastChild = Array.from(targetNode.childNodes).findLast(item => item.type === 'item') || null;\n }\n\n if (lastChild) {\n return {\n type: 'item',\n key: lastChild.key,\n dropPosition: 'after'\n };\n }\n }\n\n return null;\n}\n\n// Find the next or previous item in a collection, skipping over other types of nodes (e.g. content).\nfunction getNextItem(\n collection: Collection<Node<unknown>>,\n key: Key,\n getNextKey: (key: Key) => Key | null\n): Key | null {\n let nextCollectionKey = getNextKey(key);\n let nextCollectionNode = nextCollectionKey != null ? collection.getItem(nextCollectionKey) : null;\n while (nextCollectionNode && nextCollectionNode.type !== 'item') {\n nextCollectionKey = getNextKey(nextCollectionNode.key);\n nextCollectionNode = nextCollectionKey != null ? collection.getItem(nextCollectionKey) : null;\n }\n return nextCollectionKey;\n}\n"],"names":[],"version":3,"file":"DropTargetKeyboardNavigation.cjs.map"}
@@ -28,8 +28,14 @@ function $43485f2cf144fdea$var$nextDropTarget(keyboardDelegate, collection, targ
28
28
  if (target.type === 'item') {
29
29
  var _keyboardDelegate_getKeyRightOf, _keyboardDelegate_getKeyLeftOf, _keyboardDelegate_getKeyBelow;
30
30
  let nextKey = null;
31
- if (horizontal) nextKey = horizontal === 'right' ? (_keyboardDelegate_getKeyRightOf = keyboardDelegate.getKeyRightOf) === null || _keyboardDelegate_getKeyRightOf === void 0 ? void 0 : _keyboardDelegate_getKeyRightOf.call(keyboardDelegate, target.key) : (_keyboardDelegate_getKeyLeftOf = keyboardDelegate.getKeyLeftOf) === null || _keyboardDelegate_getKeyLeftOf === void 0 ? void 0 : _keyboardDelegate_getKeyLeftOf.call(keyboardDelegate, target.key);
32
- else nextKey = (_keyboardDelegate_getKeyBelow = keyboardDelegate.getKeyBelow) === null || _keyboardDelegate_getKeyBelow === void 0 ? void 0 : _keyboardDelegate_getKeyBelow.call(keyboardDelegate, target.key);
31
+ if (horizontal) nextKey = horizontal === 'right' ? (_keyboardDelegate_getKeyRightOf = keyboardDelegate.getKeyRightOf) === null || _keyboardDelegate_getKeyRightOf === void 0 ? void 0 : _keyboardDelegate_getKeyRightOf.call(keyboardDelegate, target.key, {
32
+ includeDisabled: true
33
+ }) : (_keyboardDelegate_getKeyLeftOf = keyboardDelegate.getKeyLeftOf) === null || _keyboardDelegate_getKeyLeftOf === void 0 ? void 0 : _keyboardDelegate_getKeyLeftOf.call(keyboardDelegate, target.key, {
34
+ includeDisabled: true
35
+ });
36
+ else nextKey = (_keyboardDelegate_getKeyBelow = keyboardDelegate.getKeyBelow) === null || _keyboardDelegate_getKeyBelow === void 0 ? void 0 : _keyboardDelegate_getKeyBelow.call(keyboardDelegate, target.key, {
37
+ includeDisabled: true
38
+ });
33
39
  let nextCollectionKey = $43485f2cf144fdea$var$getNextItem(collection, target.key, (key)=>collection.getKeyAfter(key));
34
40
  // If the keyboard delegate did not move to the next key in the collection,
35
41
  // jump to that key with the same drop position. Otherwise, try the other
@@ -120,8 +126,14 @@ function $43485f2cf144fdea$var$previousDropTarget(keyboardDelegate, collection,
120
126
  if (target.type === 'item') {
121
127
  var _keyboardDelegate_getKeyLeftOf, _keyboardDelegate_getKeyRightOf, _keyboardDelegate_getKeyAbove;
122
128
  let prevKey = null;
123
- if (horizontal) prevKey = horizontal === 'left' ? (_keyboardDelegate_getKeyLeftOf = keyboardDelegate.getKeyLeftOf) === null || _keyboardDelegate_getKeyLeftOf === void 0 ? void 0 : _keyboardDelegate_getKeyLeftOf.call(keyboardDelegate, target.key) : (_keyboardDelegate_getKeyRightOf = keyboardDelegate.getKeyRightOf) === null || _keyboardDelegate_getKeyRightOf === void 0 ? void 0 : _keyboardDelegate_getKeyRightOf.call(keyboardDelegate, target.key);
124
- else prevKey = (_keyboardDelegate_getKeyAbove = keyboardDelegate.getKeyAbove) === null || _keyboardDelegate_getKeyAbove === void 0 ? void 0 : _keyboardDelegate_getKeyAbove.call(keyboardDelegate, target.key);
129
+ if (horizontal) prevKey = horizontal === 'left' ? (_keyboardDelegate_getKeyLeftOf = keyboardDelegate.getKeyLeftOf) === null || _keyboardDelegate_getKeyLeftOf === void 0 ? void 0 : _keyboardDelegate_getKeyLeftOf.call(keyboardDelegate, target.key, {
130
+ includeDisabled: true
131
+ }) : (_keyboardDelegate_getKeyRightOf = keyboardDelegate.getKeyRightOf) === null || _keyboardDelegate_getKeyRightOf === void 0 ? void 0 : _keyboardDelegate_getKeyRightOf.call(keyboardDelegate, target.key, {
132
+ includeDisabled: true
133
+ });
134
+ else prevKey = (_keyboardDelegate_getKeyAbove = keyboardDelegate.getKeyAbove) === null || _keyboardDelegate_getKeyAbove === void 0 ? void 0 : _keyboardDelegate_getKeyAbove.call(keyboardDelegate, target.key, {
135
+ includeDisabled: true
136
+ });
125
137
  let prevCollectionKey = $43485f2cf144fdea$var$getNextItem(collection, target.key, (key)=>collection.getKeyBefore(key));
126
138
  // If the keyboard delegate did not move to the next key in the collection,
127
139
  // jump to that key with the same drop position. Otherwise, try the other
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/react-aria/src/dnd/DropTargetKeyboardNavigation.ts"],"sourcesContent":["import {Collection, DropTarget, Key, KeyboardDelegate, Node} from '@react-types/shared';\n\nexport function navigate(\n keyboardDelegate: KeyboardDelegate,\n collection: Collection<Node<unknown>>,\n target: DropTarget | null | undefined,\n direction: 'left' | 'right' | 'up' | 'down',\n rtl = false,\n wrap = false\n): DropTarget | null {\n switch (direction) {\n case 'left':\n return rtl\n ? nextDropTarget(keyboardDelegate, collection, target, wrap, 'left')\n : previousDropTarget(keyboardDelegate, collection, target, wrap, 'left');\n case 'right':\n return rtl\n ? previousDropTarget(keyboardDelegate, collection, target, wrap, 'right')\n : nextDropTarget(keyboardDelegate, collection, target, wrap, 'right');\n case 'up':\n return previousDropTarget(keyboardDelegate, collection, target, wrap);\n case 'down':\n return nextDropTarget(keyboardDelegate, collection, target, wrap);\n }\n}\n\nfunction nextDropTarget(\n keyboardDelegate: KeyboardDelegate,\n collection: Collection<Node<unknown>>,\n target: DropTarget | null | undefined,\n wrap = false,\n horizontal: 'left' | 'right' | null = null\n): DropTarget | null {\n if (!target) {\n return {\n type: 'root'\n };\n }\n\n if (target.type === 'root') {\n let nextKey = keyboardDelegate.getFirstKey?.() ?? null;\n if (nextKey != null) {\n return {\n type: 'item',\n key: nextKey,\n dropPosition: 'before'\n };\n }\n\n return null;\n }\n\n if (target.type === 'item') {\n let nextKey: Key | null | undefined = null;\n if (horizontal) {\n nextKey = horizontal === 'right' ? keyboardDelegate.getKeyRightOf?.(target.key) : keyboardDelegate.getKeyLeftOf?.(target.key);\n } else {\n nextKey = keyboardDelegate.getKeyBelow?.(target.key);\n }\n let nextCollectionKey = getNextItem(collection, target.key, key => collection.getKeyAfter(key));\n\n // If the keyboard delegate did not move to the next key in the collection,\n // jump to that key with the same drop position. Otherwise, try the other\n // drop positions on the current key first.\n if (nextKey != null && nextKey !== nextCollectionKey) {\n return {\n type: 'item',\n key: nextKey,\n dropPosition: target.dropPosition\n };\n }\n\n switch (target.dropPosition) {\n case 'before': {\n return {\n type: 'item',\n key: target.key,\n dropPosition: 'on'\n };\n }\n case 'on': {\n // If there are nested items, traverse to them prior to the \"after\" position of this target.\n // If the next key is on the same level, then its \"before\" position is equivalent to this item's \"after\" position.\n let targetNode = collection.getItem(target.key);\n let nextNode = nextKey != null ? collection.getItem(nextKey) : null;\n if (targetNode && nextNode && nextNode.level >= targetNode.level) {\n return {\n type: 'item',\n key: nextNode.key,\n dropPosition: 'before'\n };\n }\n\n return {\n type: 'item',\n key: target.key,\n dropPosition: 'after'\n };\n }\n case 'after': {\n // If this is the last sibling in a level, traverse to the parent.\n let targetNode = collection.getItem(target.key);\n let nextItemInSameLevel = targetNode?.nextKey != null ? collection.getItem(targetNode.nextKey) : null;\n while (nextItemInSameLevel != null && nextItemInSameLevel.type !== 'item') {\n nextItemInSameLevel = nextItemInSameLevel.nextKey != null ? collection.getItem(nextItemInSameLevel.nextKey) : null;\n }\n\n if (targetNode && nextItemInSameLevel == null && targetNode.parentKey != null) {\n // If the parent item has an item after it, use the \"before\" position.\n let parentNode = collection.getItem(targetNode.parentKey);\n const nextNode = parentNode?.nextKey != null ? collection.getItem(parentNode.nextKey) : null;\n if (nextNode?.type === 'item') {\n return {\n type: 'item',\n key: nextNode.key,\n dropPosition: 'before'\n };\n }\n\n if (parentNode?.type === 'item') {\n return {\n type: 'item',\n key: parentNode.key,\n dropPosition: 'after'\n };\n }\n }\n\n if (nextItemInSameLevel) {\n return {\n type: 'item',\n key: nextItemInSameLevel.key,\n dropPosition: 'on'\n };\n }\n }\n }\n }\n\n if (wrap) {\n return {\n type: 'root'\n };\n }\n\n return null;\n}\n\nfunction previousDropTarget(\n keyboardDelegate: KeyboardDelegate,\n collection: Collection<Node<unknown>>,\n target: DropTarget | null | undefined,\n wrap = false,\n horizontal: 'left' | 'right' | null = null\n): DropTarget | null {\n // Start after the last root-level item.\n if (!target || (wrap && target.type === 'root')) {\n // Keyboard delegate gets the deepest item but we want the shallowest.\n let prevKey: Key | null = null;\n let lastKey = keyboardDelegate.getLastKey?.();\n while (lastKey != null) {\n let node = collection.getItem(lastKey);\n if (node?.type !== 'item') {\n break;\n }\n prevKey = lastKey;\n lastKey = node?.parentKey;\n }\n\n if (prevKey != null) {\n return {\n type: 'item',\n key: prevKey,\n dropPosition: 'after'\n };\n }\n\n return null;\n }\n\n if (target.type === 'item') {\n let prevKey: Key | null | undefined = null;\n if (horizontal) {\n prevKey = horizontal === 'left' ? keyboardDelegate.getKeyLeftOf?.(target.key) : keyboardDelegate.getKeyRightOf?.(target.key);\n } else {\n prevKey = keyboardDelegate.getKeyAbove?.(target.key);\n }\n let prevCollectionKey = getNextItem(collection, target.key, key => collection.getKeyBefore(key));\n\n // If the keyboard delegate did not move to the next key in the collection,\n // jump to that key with the same drop position. Otherwise, try the other\n // drop positions on the current key first.\n if (prevKey != null && prevKey !== prevCollectionKey) {\n return {\n type: 'item',\n key: prevKey,\n dropPosition: target.dropPosition\n };\n }\n\n switch (target.dropPosition) {\n case 'before': {\n // Move after the last child of the previous item.\n let targetNode = collection.getItem(target.key);\n if (targetNode && targetNode.prevKey != null) {\n let lastChild = getLastChild(collection, targetNode.prevKey);\n if (lastChild) {\n return lastChild;\n }\n }\n\n if (prevKey != null) {\n return {\n type: 'item',\n key: prevKey,\n dropPosition: 'on'\n };\n }\n\n return {\n type: 'root'\n };\n }\n case 'on': {\n return {\n type: 'item',\n key: target.key,\n dropPosition: 'before'\n };\n }\n case 'after': {\n // Move after the last child of this item.\n let lastChild = getLastChild(collection, target.key);\n if (lastChild) {\n return lastChild;\n }\n\n return {\n type: 'item',\n key: target.key,\n dropPosition: 'on'\n };\n }\n }\n }\n\n if (target.type !== 'root') {\n return {\n type: 'root'\n };\n }\n\n return null;\n}\n\nfunction getLastChild(collection: Collection<Node<unknown>>, key: Key): DropTarget | null {\n // getChildNodes still returns child tree items even when the item is collapsed.\n // Checking if the next item has a greater level is a silly way to determine if the item is expanded.\n let targetNode = collection.getItem(key);\n let nextKey = getNextItem(collection, key, key => collection.getKeyAfter(key));\n let nextNode = nextKey != null ? collection.getItem(nextKey) : null;\n if (targetNode && nextNode && nextNode.level > targetNode.level) {\n let lastChild: Node<unknown> | null = null;\n if ('lastChildKey' in targetNode) {\n lastChild = targetNode.lastChildKey != null ? collection.getItem(targetNode.lastChildKey) : null;\n while (lastChild && lastChild.type !== 'item' && lastChild.prevKey != null) {\n lastChild = collection.getItem(lastChild.prevKey)!;\n }\n } else {\n lastChild = Array.from(targetNode.childNodes).findLast(item => item.type === 'item') || null;\n }\n\n if (lastChild) {\n return {\n type: 'item',\n key: lastChild.key,\n dropPosition: 'after'\n };\n }\n }\n\n return null;\n}\n\n// Find the next or previous item in a collection, skipping over other types of nodes (e.g. content).\nfunction getNextItem(collection: Collection<Node<unknown>>, key: Key, getNextKey: (key: Key) => Key | null): Key | null {\n let nextCollectionKey = getNextKey(key);\n let nextCollectionNode = nextCollectionKey != null ? collection.getItem(nextCollectionKey) : null;\n while (nextCollectionNode && nextCollectionNode.type !== 'item') {\n nextCollectionKey = getNextKey(nextCollectionNode.key);\n nextCollectionNode = nextCollectionKey != null ? collection.getItem(nextCollectionKey) : null;\n }\n return nextCollectionKey;\n}\n"],"names":[],"version":3,"file":"DropTargetKeyboardNavigation.js.map"}
1
+ {"mappings":"AAEO,SAAS,0CACd,gBAAkC,EAClC,UAAqC,EACrC,MAAqC,EACrC,SAA2C,EAC3C,MAAM,KAAK,EACX,OAAO,KAAK;IAEZ,OAAQ;QACN,KAAK;YACH,OAAO,MACH,qCAAe,kBAAkB,YAAY,QAAQ,MAAM,UAC3D,yCAAmB,kBAAkB,YAAY,QAAQ,MAAM;QACrE,KAAK;YACH,OAAO,MACH,yCAAmB,kBAAkB,YAAY,QAAQ,MAAM,WAC/D,qCAAe,kBAAkB,YAAY,QAAQ,MAAM;QACjE,KAAK;YACH,OAAO,yCAAmB,kBAAkB,YAAY,QAAQ;QAClE,KAAK;YACH,OAAO,qCAAe,kBAAkB,YAAY,QAAQ;IAChE;AACF;AAEA,SAAS,qCACP,gBAAkC,EAClC,UAAqC,EACrC,MAAqC,EACrC,OAAO,KAAK,EACZ,aAAsC,IAAI;IAE1C,IAAI,CAAC,QACH,OAAO;QACL,MAAM;IACR;IAGF,IAAI,OAAO,IAAI,KAAK,QAAQ;YACZ;YAAA;QAAd,IAAI,UAAU,CAAA,kCAAA,gCAAA,iBAAiB,WAAW,cAA5B,oDAAA,mCAAA,+BAAA,4CAAA,iCAAoC;QAClD,IAAI,WAAW,MACb,OAAO;YACL,MAAM;YACN,KAAK;YACL,cAAc;QAChB;QAGF,OAAO;IACT;IAEA,IAAI,OAAO,IAAI,KAAK,QAAQ;YAKlB,iCACA,gCAEI;QAPZ,IAAI,UAAkC;QACtC,IAAI,YACF,UACE,eAAe,WACX,kCAAA,iBAAiB,aAAa,cAA9B,sDAAA,qCAAA,kBAAiC,OAAO,GAAG,EAAE;YAAC,iBAAiB;QAAI,MACnE,iCAAA,iBAAiB,YAAY,cAA7B,qDAAA,oCAAA,kBAAgC,OAAO,GAAG,EAAE;YAAC,iBAAiB;QAAI;aAExE,WAAU,gCAAA,iBAAiB,WAAW,cAA5B,oDAAA,mCAAA,kBAA+B,OAAO,GAAG,EAAE;YAAC,iBAAiB;QAAI;QAE7E,IAAI,oBAAoB,kCAAY,YAAY,OAAO,GAAG,EAAE,CAAA,MAAO,WAAW,WAAW,CAAC;QAE1F,2EAA2E;QAC3E,yEAAyE;QACzE,2CAA2C;QAC3C,IAAI,WAAW,QAAQ,YAAY,mBACjC,OAAO;YACL,MAAM;YACN,KAAK;YACL,cAAc,OAAO,YAAY;QACnC;QAGF,OAAQ,OAAO,YAAY;YACzB,KAAK;gBACH,OAAO;oBACL,MAAM;oBACN,KAAK,OAAO,GAAG;oBACf,cAAc;gBAChB;YAEF,KAAK;gBAAM;oBACT,4FAA4F;oBAC5F,kHAAkH;oBAClH,IAAI,aAAa,WAAW,OAAO,CAAC,OAAO,GAAG;oBAC9C,IAAI,WAAW,WAAW,OAAO,WAAW,OAAO,CAAC,WAAW;oBAC/D,IAAI,cAAc,YAAY,SAAS,KAAK,IAAI,WAAW,KAAK,EAC9D,OAAO;wBACL,MAAM;wBACN,KAAK,SAAS,GAAG;wBACjB,cAAc;oBAChB;oBAGF,OAAO;wBACL,MAAM;wBACN,KAAK,OAAO,GAAG;wBACf,cAAc;oBAChB;gBACF;YACA,KAAK;gBAAS;oBACZ,kEAAkE;oBAClE,IAAI,aAAa,WAAW,OAAO,CAAC,OAAO,GAAG;oBAC9C,IAAI,sBACF,CAAA,uBAAA,iCAAA,WAAY,OAAO,KAAI,OAAO,WAAW,OAAO,CAAC,WAAW,OAAO,IAAI;oBACzE,MAAO,uBAAuB,QAAQ,oBAAoB,IAAI,KAAK,OACjE,sBACE,oBAAoB,OAAO,IAAI,OAC3B,WAAW,OAAO,CAAC,oBAAoB,OAAO,IAC9C;oBAGR,IAAI,cAAc,uBAAuB,QAAQ,WAAW,SAAS,IAAI,MAAM;wBAC7E,sEAAsE;wBACtE,IAAI,aAAa,WAAW,OAAO,CAAC,WAAW,SAAS;wBACxD,MAAM,WACJ,CAAA,uBAAA,iCAAA,WAAY,OAAO,KAAI,OAAO,WAAW,OAAO,CAAC,WAAW,OAAO,IAAI;wBACzE,IAAI,CAAA,qBAAA,+BAAA,SAAU,IAAI,MAAK,QACrB,OAAO;4BACL,MAAM;4BACN,KAAK,SAAS,GAAG;4BACjB,cAAc;wBAChB;wBAGF,IAAI,CAAA,uBAAA,iCAAA,WAAY,IAAI,MAAK,QACvB,OAAO;4BACL,MAAM;4BACN,KAAK,WAAW,GAAG;4BACnB,cAAc;wBAChB;oBAEJ;oBAEA,IAAI,qBACF,OAAO;wBACL,MAAM;wBACN,KAAK,oBAAoB,GAAG;wBAC5B,cAAc;oBAChB;gBAEJ;QACF;IACF;IAEA,IAAI,MACF,OAAO;QACL,MAAM;IACR;IAGF,OAAO;AACT;AAEA,SAAS,yCACP,gBAAkC,EAClC,UAAqC,EACrC,MAAqC,EACrC,OAAO,KAAK,EACZ,aAAsC,IAAI;IAE1C,wCAAwC;IACxC,IAAI,CAAC,UAAW,QAAQ,OAAO,IAAI,KAAK,QAAS;YAGjC;QAFd,sEAAsE;QACtE,IAAI,UAAsB;QAC1B,IAAI,WAAU,+BAAA,iBAAiB,UAAU,cAA3B,mDAAA,kCAAA;QACd,MAAO,WAAW,KAAM;YACtB,IAAI,OAAO,WAAW,OAAO,CAAC;YAC9B,IAAI,CAAA,iBAAA,2BAAA,KAAM,IAAI,MAAK,QACjB;YAEF,UAAU;YACV,UAAU,iBAAA,2BAAA,KAAM,SAAS;QAC3B;QAEA,IAAI,WAAW,MACb,OAAO;YACL,MAAM;YACN,KAAK;YACL,cAAc;QAChB;QAGF,OAAO;IACT;IAEA,IAAI,OAAO,IAAI,KAAK,QAAQ;YAKlB,gCACA,iCAEI;QAPZ,IAAI,UAAkC;QACtC,IAAI,YACF,UACE,eAAe,UACX,iCAAA,iBAAiB,YAAY,cAA7B,qDAAA,oCAAA,kBAAgC,OAAO,GAAG,EAAE;YAAC,iBAAiB;QAAI,MAClE,kCAAA,iBAAiB,aAAa,cAA9B,sDAAA,qCAAA,kBAAiC,OAAO,GAAG,EAAE;YAAC,iBAAiB;QAAI;aAEzE,WAAU,gCAAA,iBAAiB,WAAW,cAA5B,oDAAA,mCAAA,kBAA+B,OAAO,GAAG,EAAE;YAAC,iBAAiB;QAAI;QAE7E,IAAI,oBAAoB,kCAAY,YAAY,OAAO,GAAG,EAAE,CAAA,MAC1D,WAAW,YAAY,CAAC;QAG1B,2EAA2E;QAC3E,yEAAyE;QACzE,2CAA2C;QAC3C,IAAI,WAAW,QAAQ,YAAY,mBACjC,OAAO;YACL,MAAM;YACN,KAAK;YACL,cAAc,OAAO,YAAY;QACnC;QAGF,OAAQ,OAAO,YAAY;YACzB,KAAK;gBAAU;oBACb,kDAAkD;oBAClD,IAAI,aAAa,WAAW,OAAO,CAAC,OAAO,GAAG;oBAC9C,IAAI,cAAc,WAAW,OAAO,IAAI,MAAM;wBAC5C,IAAI,YAAY,mCAAa,YAAY,WAAW,OAAO;wBAC3D,IAAI,WACF,OAAO;oBAEX;oBAEA,IAAI,WAAW,MACb,OAAO;wBACL,MAAM;wBACN,KAAK;wBACL,cAAc;oBAChB;oBAGF,OAAO;wBACL,MAAM;oBACR;gBACF;YACA,KAAK;gBACH,OAAO;oBACL,MAAM;oBACN,KAAK,OAAO,GAAG;oBACf,cAAc;gBAChB;YAEF,KAAK;gBAAS;oBACZ,0CAA0C;oBAC1C,IAAI,YAAY,mCAAa,YAAY,OAAO,GAAG;oBACnD,IAAI,WACF,OAAO;oBAGT,OAAO;wBACL,MAAM;wBACN,KAAK,OAAO,GAAG;wBACf,cAAc;oBAChB;gBACF;QACF;IACF;IAEA,IAAI,OAAO,IAAI,KAAK,QAClB,OAAO;QACL,MAAM;IACR;IAGF,OAAO;AACT;AAEA,SAAS,mCAAa,UAAqC,EAAE,GAAQ;IACnE,gFAAgF;IAChF,qGAAqG;IACrG,IAAI,aAAa,WAAW,OAAO,CAAC;IACpC,IAAI,UAAU,kCAAY,YAAY,KAAK,CAAA,MAAO,WAAW,WAAW,CAAC;IACzE,IAAI,WAAW,WAAW,OAAO,WAAW,OAAO,CAAC,WAAW;IAC/D,IAAI,cAAc,YAAY,SAAS,KAAK,GAAG,WAAW,KAAK,EAAE;QAC/D,IAAI,YAAkC;QACtC,IAAI,kBAAkB,YAAY;YAChC,YACE,WAAW,YAAY,IAAI,OAAO,WAAW,OAAO,CAAC,WAAW,YAAY,IAAI;YAClF,MAAO,aAAa,UAAU,IAAI,KAAK,UAAU,UAAU,OAAO,IAAI,KACpE,YAAY,WAAW,OAAO,CAAC,UAAU,OAAO;QAEpD,OACE,YAAY,MAAM,IAAI,CAAC,WAAW,UAAU,EAAE,QAAQ,CAAC,CAAA,OAAQ,KAAK,IAAI,KAAK,WAAW;QAG1F,IAAI,WACF,OAAO;YACL,MAAM;YACN,KAAK,UAAU,GAAG;YAClB,cAAc;QAChB;IAEJ;IAEA,OAAO;AACT;AAEA,qGAAqG;AACrG,SAAS,kCACP,UAAqC,EACrC,GAAQ,EACR,UAAoC;IAEpC,IAAI,oBAAoB,WAAW;IACnC,IAAI,qBAAqB,qBAAqB,OAAO,WAAW,OAAO,CAAC,qBAAqB;IAC7F,MAAO,sBAAsB,mBAAmB,IAAI,KAAK,OAAQ;QAC/D,oBAAoB,WAAW,mBAAmB,GAAG;QACrD,qBAAqB,qBAAqB,OAAO,WAAW,OAAO,CAAC,qBAAqB;IAC3F;IACA,OAAO;AACT","sources":["packages/react-aria/src/dnd/DropTargetKeyboardNavigation.ts"],"sourcesContent":["import {Collection, DropTarget, Key, KeyboardDelegate, Node} from '@react-types/shared';\n\nexport function navigate(\n keyboardDelegate: KeyboardDelegate,\n collection: Collection<Node<unknown>>,\n target: DropTarget | null | undefined,\n direction: 'left' | 'right' | 'up' | 'down',\n rtl = false,\n wrap = false\n): DropTarget | null {\n switch (direction) {\n case 'left':\n return rtl\n ? nextDropTarget(keyboardDelegate, collection, target, wrap, 'left')\n : previousDropTarget(keyboardDelegate, collection, target, wrap, 'left');\n case 'right':\n return rtl\n ? previousDropTarget(keyboardDelegate, collection, target, wrap, 'right')\n : nextDropTarget(keyboardDelegate, collection, target, wrap, 'right');\n case 'up':\n return previousDropTarget(keyboardDelegate, collection, target, wrap);\n case 'down':\n return nextDropTarget(keyboardDelegate, collection, target, wrap);\n }\n}\n\nfunction nextDropTarget(\n keyboardDelegate: KeyboardDelegate,\n collection: Collection<Node<unknown>>,\n target: DropTarget | null | undefined,\n wrap = false,\n horizontal: 'left' | 'right' | null = null\n): DropTarget | null {\n if (!target) {\n return {\n type: 'root'\n };\n }\n\n if (target.type === 'root') {\n let nextKey = keyboardDelegate.getFirstKey?.() ?? null;\n if (nextKey != null) {\n return {\n type: 'item',\n key: nextKey,\n dropPosition: 'before'\n };\n }\n\n return null;\n }\n\n if (target.type === 'item') {\n let nextKey: Key | null | undefined = null;\n if (horizontal) {\n nextKey =\n horizontal === 'right'\n ? keyboardDelegate.getKeyRightOf?.(target.key, {includeDisabled: true})\n : keyboardDelegate.getKeyLeftOf?.(target.key, {includeDisabled: true});\n } else {\n nextKey = keyboardDelegate.getKeyBelow?.(target.key, {includeDisabled: true});\n }\n let nextCollectionKey = getNextItem(collection, target.key, key => collection.getKeyAfter(key));\n\n // If the keyboard delegate did not move to the next key in the collection,\n // jump to that key with the same drop position. Otherwise, try the other\n // drop positions on the current key first.\n if (nextKey != null && nextKey !== nextCollectionKey) {\n return {\n type: 'item',\n key: nextKey,\n dropPosition: target.dropPosition\n };\n }\n\n switch (target.dropPosition) {\n case 'before': {\n return {\n type: 'item',\n key: target.key,\n dropPosition: 'on'\n };\n }\n case 'on': {\n // If there are nested items, traverse to them prior to the \"after\" position of this target.\n // If the next key is on the same level, then its \"before\" position is equivalent to this item's \"after\" position.\n let targetNode = collection.getItem(target.key);\n let nextNode = nextKey != null ? collection.getItem(nextKey) : null;\n if (targetNode && nextNode && nextNode.level >= targetNode.level) {\n return {\n type: 'item',\n key: nextNode.key,\n dropPosition: 'before'\n };\n }\n\n return {\n type: 'item',\n key: target.key,\n dropPosition: 'after'\n };\n }\n case 'after': {\n // If this is the last sibling in a level, traverse to the parent.\n let targetNode = collection.getItem(target.key);\n let nextItemInSameLevel =\n targetNode?.nextKey != null ? collection.getItem(targetNode.nextKey) : null;\n while (nextItemInSameLevel != null && nextItemInSameLevel.type !== 'item') {\n nextItemInSameLevel =\n nextItemInSameLevel.nextKey != null\n ? collection.getItem(nextItemInSameLevel.nextKey)\n : null;\n }\n\n if (targetNode && nextItemInSameLevel == null && targetNode.parentKey != null) {\n // If the parent item has an item after it, use the \"before\" position.\n let parentNode = collection.getItem(targetNode.parentKey);\n const nextNode =\n parentNode?.nextKey != null ? collection.getItem(parentNode.nextKey) : null;\n if (nextNode?.type === 'item') {\n return {\n type: 'item',\n key: nextNode.key,\n dropPosition: 'before'\n };\n }\n\n if (parentNode?.type === 'item') {\n return {\n type: 'item',\n key: parentNode.key,\n dropPosition: 'after'\n };\n }\n }\n\n if (nextItemInSameLevel) {\n return {\n type: 'item',\n key: nextItemInSameLevel.key,\n dropPosition: 'on'\n };\n }\n }\n }\n }\n\n if (wrap) {\n return {\n type: 'root'\n };\n }\n\n return null;\n}\n\nfunction previousDropTarget(\n keyboardDelegate: KeyboardDelegate,\n collection: Collection<Node<unknown>>,\n target: DropTarget | null | undefined,\n wrap = false,\n horizontal: 'left' | 'right' | null = null\n): DropTarget | null {\n // Start after the last root-level item.\n if (!target || (wrap && target.type === 'root')) {\n // Keyboard delegate gets the deepest item but we want the shallowest.\n let prevKey: Key | null = null;\n let lastKey = keyboardDelegate.getLastKey?.();\n while (lastKey != null) {\n let node = collection.getItem(lastKey);\n if (node?.type !== 'item') {\n break;\n }\n prevKey = lastKey;\n lastKey = node?.parentKey;\n }\n\n if (prevKey != null) {\n return {\n type: 'item',\n key: prevKey,\n dropPosition: 'after'\n };\n }\n\n return null;\n }\n\n if (target.type === 'item') {\n let prevKey: Key | null | undefined = null;\n if (horizontal) {\n prevKey =\n horizontal === 'left'\n ? keyboardDelegate.getKeyLeftOf?.(target.key, {includeDisabled: true})\n : keyboardDelegate.getKeyRightOf?.(target.key, {includeDisabled: true});\n } else {\n prevKey = keyboardDelegate.getKeyAbove?.(target.key, {includeDisabled: true});\n }\n let prevCollectionKey = getNextItem(collection, target.key, key =>\n collection.getKeyBefore(key)\n );\n\n // If the keyboard delegate did not move to the next key in the collection,\n // jump to that key with the same drop position. Otherwise, try the other\n // drop positions on the current key first.\n if (prevKey != null && prevKey !== prevCollectionKey) {\n return {\n type: 'item',\n key: prevKey,\n dropPosition: target.dropPosition\n };\n }\n\n switch (target.dropPosition) {\n case 'before': {\n // Move after the last child of the previous item.\n let targetNode = collection.getItem(target.key);\n if (targetNode && targetNode.prevKey != null) {\n let lastChild = getLastChild(collection, targetNode.prevKey);\n if (lastChild) {\n return lastChild;\n }\n }\n\n if (prevKey != null) {\n return {\n type: 'item',\n key: prevKey,\n dropPosition: 'on'\n };\n }\n\n return {\n type: 'root'\n };\n }\n case 'on': {\n return {\n type: 'item',\n key: target.key,\n dropPosition: 'before'\n };\n }\n case 'after': {\n // Move after the last child of this item.\n let lastChild = getLastChild(collection, target.key);\n if (lastChild) {\n return lastChild;\n }\n\n return {\n type: 'item',\n key: target.key,\n dropPosition: 'on'\n };\n }\n }\n }\n\n if (target.type !== 'root') {\n return {\n type: 'root'\n };\n }\n\n return null;\n}\n\nfunction getLastChild(collection: Collection<Node<unknown>>, key: Key): DropTarget | null {\n // getChildNodes still returns child tree items even when the item is collapsed.\n // Checking if the next item has a greater level is a silly way to determine if the item is expanded.\n let targetNode = collection.getItem(key);\n let nextKey = getNextItem(collection, key, key => collection.getKeyAfter(key));\n let nextNode = nextKey != null ? collection.getItem(nextKey) : null;\n if (targetNode && nextNode && nextNode.level > targetNode.level) {\n let lastChild: Node<unknown> | null = null;\n if ('lastChildKey' in targetNode) {\n lastChild =\n targetNode.lastChildKey != null ? collection.getItem(targetNode.lastChildKey) : null;\n while (lastChild && lastChild.type !== 'item' && lastChild.prevKey != null) {\n lastChild = collection.getItem(lastChild.prevKey)!;\n }\n } else {\n lastChild = Array.from(targetNode.childNodes).findLast(item => item.type === 'item') || null;\n }\n\n if (lastChild) {\n return {\n type: 'item',\n key: lastChild.key,\n dropPosition: 'after'\n };\n }\n }\n\n return null;\n}\n\n// Find the next or previous item in a collection, skipping over other types of nodes (e.g. content).\nfunction getNextItem(\n collection: Collection<Node<unknown>>,\n key: Key,\n getNextKey: (key: Key) => Key | null\n): Key | null {\n let nextCollectionKey = getNextKey(key);\n let nextCollectionNode = nextCollectionKey != null ? collection.getItem(nextCollectionKey) : null;\n while (nextCollectionNode && nextCollectionNode.type !== 'item') {\n nextCollectionKey = getNextKey(nextCollectionNode.key);\n nextCollectionNode = nextCollectionKey != null ? collection.getItem(nextCollectionKey) : null;\n }\n return nextCollectionKey;\n}\n"],"names":[],"version":3,"file":"DropTargetKeyboardNavigation.js.map"}
@@ -25,8 +25,14 @@ function $4ba715d4c7df8887$var$nextDropTarget(keyboardDelegate, collection, targ
25
25
  }
26
26
  if (target.type === 'item') {
27
27
  let nextKey = null;
28
- if (horizontal) nextKey = horizontal === 'right' ? keyboardDelegate.getKeyRightOf?.(target.key) : keyboardDelegate.getKeyLeftOf?.(target.key);
29
- else nextKey = keyboardDelegate.getKeyBelow?.(target.key);
28
+ if (horizontal) nextKey = horizontal === 'right' ? keyboardDelegate.getKeyRightOf?.(target.key, {
29
+ includeDisabled: true
30
+ }) : keyboardDelegate.getKeyLeftOf?.(target.key, {
31
+ includeDisabled: true
32
+ });
33
+ else nextKey = keyboardDelegate.getKeyBelow?.(target.key, {
34
+ includeDisabled: true
35
+ });
30
36
  let nextCollectionKey = $4ba715d4c7df8887$var$getNextItem(collection, target.key, (key)=>collection.getKeyAfter(key));
31
37
  // If the keyboard delegate did not move to the next key in the collection,
32
38
  // jump to that key with the same drop position. Otherwise, try the other
@@ -115,8 +121,14 @@ function $4ba715d4c7df8887$var$previousDropTarget(keyboardDelegate, collection,
115
121
  }
116
122
  if (target.type === 'item') {
117
123
  let prevKey = null;
118
- if (horizontal) prevKey = horizontal === 'left' ? keyboardDelegate.getKeyLeftOf?.(target.key) : keyboardDelegate.getKeyRightOf?.(target.key);
119
- else prevKey = keyboardDelegate.getKeyAbove?.(target.key);
124
+ if (horizontal) prevKey = horizontal === 'left' ? keyboardDelegate.getKeyLeftOf?.(target.key, {
125
+ includeDisabled: true
126
+ }) : keyboardDelegate.getKeyRightOf?.(target.key, {
127
+ includeDisabled: true
128
+ });
129
+ else prevKey = keyboardDelegate.getKeyAbove?.(target.key, {
130
+ includeDisabled: true
131
+ });
120
132
  let prevCollectionKey = $4ba715d4c7df8887$var$getNextItem(collection, target.key, (key)=>collection.getKeyBefore(key));
121
133
  // If the keyboard delegate did not move to the next key in the collection,
122
134
  // jump to that key with the same drop position. Otherwise, try the other
@@ -1 +1 @@
1
- {"mappings":"AAEO,SAAS,0CACd,gBAAkC,EAClC,UAAqC,EACrC,MAAqC,EACrC,SAA2C,EAC3C,MAAM,KAAK,EACX,OAAO,KAAK;IAEZ,OAAQ;QACN,KAAK;YACH,OAAO,MACH,qCAAe,kBAAkB,YAAY,QAAQ,MAAM,UAC3D,yCAAmB,kBAAkB,YAAY,QAAQ,MAAM;QACrE,KAAK;YACH,OAAO,MACH,yCAAmB,kBAAkB,YAAY,QAAQ,MAAM,WAC/D,qCAAe,kBAAkB,YAAY,QAAQ,MAAM;QACjE,KAAK;YACH,OAAO,yCAAmB,kBAAkB,YAAY,QAAQ;QAClE,KAAK;YACH,OAAO,qCAAe,kBAAkB,YAAY,QAAQ;IAChE;AACF;AAEA,SAAS,qCACP,gBAAkC,EAClC,UAAqC,EACrC,MAAqC,EACrC,OAAO,KAAK,EACZ,aAAsC,IAAI;IAE1C,IAAI,CAAC,QACH,OAAO;QACL,MAAM;IACR;IAGF,IAAI,OAAO,IAAI,KAAK,QAAQ;QAC1B,IAAI,UAAU,iBAAiB,WAAW,QAAQ;QAClD,IAAI,WAAW,MACb,OAAO;YACL,MAAM;YACN,KAAK;YACL,cAAc;QAChB;QAGF,OAAO;IACT;IAEA,IAAI,OAAO,IAAI,KAAK,QAAQ;QAC1B,IAAI,UAAkC;QACtC,IAAI,YACF,UAAU,eAAe,UAAU,iBAAiB,aAAa,GAAG,OAAO,GAAG,IAAI,iBAAiB,YAAY,GAAG,OAAO,GAAG;aAE5H,UAAU,iBAAiB,WAAW,GAAG,OAAO,GAAG;QAErD,IAAI,oBAAoB,kCAAY,YAAY,OAAO,GAAG,EAAE,CAAA,MAAO,WAAW,WAAW,CAAC;QAE1F,2EAA2E;QAC3E,yEAAyE;QACzE,2CAA2C;QAC3C,IAAI,WAAW,QAAQ,YAAY,mBACjC,OAAO;YACL,MAAM;YACN,KAAK;YACL,cAAc,OAAO,YAAY;QACnC;QAGF,OAAQ,OAAO,YAAY;YACzB,KAAK;gBACH,OAAO;oBACL,MAAM;oBACN,KAAK,OAAO,GAAG;oBACf,cAAc;gBAChB;YAEF,KAAK;gBAAM;oBACT,4FAA4F;oBAC5F,kHAAkH;oBAClH,IAAI,aAAa,WAAW,OAAO,CAAC,OAAO,GAAG;oBAC9C,IAAI,WAAW,WAAW,OAAO,WAAW,OAAO,CAAC,WAAW;oBAC/D,IAAI,cAAc,YAAY,SAAS,KAAK,IAAI,WAAW,KAAK,EAC9D,OAAO;wBACL,MAAM;wBACN,KAAK,SAAS,GAAG;wBACjB,cAAc;oBAChB;oBAGF,OAAO;wBACL,MAAM;wBACN,KAAK,OAAO,GAAG;wBACf,cAAc;oBAChB;gBACF;YACA,KAAK;gBAAS;oBACZ,kEAAkE;oBAClE,IAAI,aAAa,WAAW,OAAO,CAAC,OAAO,GAAG;oBAC9C,IAAI,sBAAsB,YAAY,WAAW,OAAO,WAAW,OAAO,CAAC,WAAW,OAAO,IAAI;oBACjG,MAAO,uBAAuB,QAAQ,oBAAoB,IAAI,KAAK,OACjE,sBAAsB,oBAAoB,OAAO,IAAI,OAAO,WAAW,OAAO,CAAC,oBAAoB,OAAO,IAAI;oBAGhH,IAAI,cAAc,uBAAuB,QAAQ,WAAW,SAAS,IAAI,MAAM;wBAC7E,sEAAsE;wBACtE,IAAI,aAAa,WAAW,OAAO,CAAC,WAAW,SAAS;wBACxD,MAAM,WAAW,YAAY,WAAW,OAAO,WAAW,OAAO,CAAC,WAAW,OAAO,IAAI;wBACxF,IAAI,UAAU,SAAS,QACrB,OAAO;4BACL,MAAM;4BACN,KAAK,SAAS,GAAG;4BACjB,cAAc;wBAChB;wBAGF,IAAI,YAAY,SAAS,QACvB,OAAO;4BACL,MAAM;4BACN,KAAK,WAAW,GAAG;4BACnB,cAAc;wBAChB;oBAEJ;oBAEA,IAAI,qBACF,OAAO;wBACL,MAAM;wBACN,KAAK,oBAAoB,GAAG;wBAC5B,cAAc;oBAChB;gBAEJ;QACF;IACF;IAEA,IAAI,MACF,OAAO;QACL,MAAM;IACR;IAGF,OAAO;AACT;AAEA,SAAS,yCACP,gBAAkC,EAClC,UAAqC,EACrC,MAAqC,EACrC,OAAO,KAAK,EACZ,aAAsC,IAAI;IAE1C,wCAAwC;IACxC,IAAI,CAAC,UAAW,QAAQ,OAAO,IAAI,KAAK,QAAS;QAC/C,sEAAsE;QACtE,IAAI,UAAsB;QAC1B,IAAI,UAAU,iBAAiB,UAAU;QACzC,MAAO,WAAW,KAAM;YACtB,IAAI,OAAO,WAAW,OAAO,CAAC;YAC9B,IAAI,MAAM,SAAS,QACjB;YAEF,UAAU;YACV,UAAU,MAAM;QAClB;QAEA,IAAI,WAAW,MACb,OAAO;YACL,MAAM;YACN,KAAK;YACL,cAAc;QAChB;QAGF,OAAO;IACT;IAEA,IAAI,OAAO,IAAI,KAAK,QAAQ;QAC1B,IAAI,UAAkC;QACtC,IAAI,YACF,UAAU,eAAe,SAAS,iBAAiB,YAAY,GAAG,OAAO,GAAG,IAAI,iBAAiB,aAAa,GAAG,OAAO,GAAG;aAE3H,UAAU,iBAAiB,WAAW,GAAG,OAAO,GAAG;QAErD,IAAI,oBAAoB,kCAAY,YAAY,OAAO,GAAG,EAAE,CAAA,MAAO,WAAW,YAAY,CAAC;QAE3F,2EAA2E;QAC3E,yEAAyE;QACzE,2CAA2C;QAC3C,IAAI,WAAW,QAAQ,YAAY,mBACjC,OAAO;YACL,MAAM;YACN,KAAK;YACL,cAAc,OAAO,YAAY;QACnC;QAGF,OAAQ,OAAO,YAAY;YACzB,KAAK;gBAAU;oBACb,kDAAkD;oBAClD,IAAI,aAAa,WAAW,OAAO,CAAC,OAAO,GAAG;oBAC9C,IAAI,cAAc,WAAW,OAAO,IAAI,MAAM;wBAC5C,IAAI,YAAY,mCAAa,YAAY,WAAW,OAAO;wBAC3D,IAAI,WACF,OAAO;oBAEX;oBAEA,IAAI,WAAW,MACb,OAAO;wBACL,MAAM;wBACN,KAAK;wBACL,cAAc;oBAChB;oBAGF,OAAO;wBACL,MAAM;oBACR;gBACF;YACA,KAAK;gBACH,OAAO;oBACL,MAAM;oBACN,KAAK,OAAO,GAAG;oBACf,cAAc;gBAChB;YAEF,KAAK;gBAAS;oBACZ,0CAA0C;oBAC1C,IAAI,YAAY,mCAAa,YAAY,OAAO,GAAG;oBACnD,IAAI,WACF,OAAO;oBAGT,OAAO;wBACL,MAAM;wBACN,KAAK,OAAO,GAAG;wBACf,cAAc;oBAChB;gBACF;QACF;IACF;IAEA,IAAI,OAAO,IAAI,KAAK,QAClB,OAAO;QACL,MAAM;IACR;IAGF,OAAO;AACT;AAEA,SAAS,mCAAa,UAAqC,EAAE,GAAQ;IACnE,gFAAgF;IAChF,qGAAqG;IACrG,IAAI,aAAa,WAAW,OAAO,CAAC;IACpC,IAAI,UAAU,kCAAY,YAAY,KAAK,CAAA,MAAO,WAAW,WAAW,CAAC;IACzE,IAAI,WAAW,WAAW,OAAO,WAAW,OAAO,CAAC,WAAW;IAC/D,IAAI,cAAc,YAAY,SAAS,KAAK,GAAG,WAAW,KAAK,EAAE;QAC/D,IAAI,YAAkC;QACtC,IAAI,kBAAkB,YAAY;YAChC,YAAY,WAAW,YAAY,IAAI,OAAO,WAAW,OAAO,CAAC,WAAW,YAAY,IAAI;YAC5F,MAAO,aAAa,UAAU,IAAI,KAAK,UAAU,UAAU,OAAO,IAAI,KACpE,YAAY,WAAW,OAAO,CAAC,UAAU,OAAO;QAEpD,OACE,YAAY,MAAM,IAAI,CAAC,WAAW,UAAU,EAAE,QAAQ,CAAC,CAAA,OAAQ,KAAK,IAAI,KAAK,WAAW;QAG1F,IAAI,WACF,OAAO;YACL,MAAM;YACN,KAAK,UAAU,GAAG;YAClB,cAAc;QAChB;IAEJ;IAEA,OAAO;AACT;AAEA,qGAAqG;AACrG,SAAS,kCAAY,UAAqC,EAAE,GAAQ,EAAE,UAAoC;IACxG,IAAI,oBAAoB,WAAW;IACnC,IAAI,qBAAqB,qBAAqB,OAAO,WAAW,OAAO,CAAC,qBAAqB;IAC7F,MAAO,sBAAsB,mBAAmB,IAAI,KAAK,OAAQ;QAC/D,oBAAoB,WAAW,mBAAmB,GAAG;QACrD,qBAAqB,qBAAqB,OAAO,WAAW,OAAO,CAAC,qBAAqB;IAC3F;IACA,OAAO;AACT","sources":["packages/react-aria/src/dnd/DropTargetKeyboardNavigation.ts"],"sourcesContent":["import {Collection, DropTarget, Key, KeyboardDelegate, Node} from '@react-types/shared';\n\nexport function navigate(\n keyboardDelegate: KeyboardDelegate,\n collection: Collection<Node<unknown>>,\n target: DropTarget | null | undefined,\n direction: 'left' | 'right' | 'up' | 'down',\n rtl = false,\n wrap = false\n): DropTarget | null {\n switch (direction) {\n case 'left':\n return rtl\n ? nextDropTarget(keyboardDelegate, collection, target, wrap, 'left')\n : previousDropTarget(keyboardDelegate, collection, target, wrap, 'left');\n case 'right':\n return rtl\n ? previousDropTarget(keyboardDelegate, collection, target, wrap, 'right')\n : nextDropTarget(keyboardDelegate, collection, target, wrap, 'right');\n case 'up':\n return previousDropTarget(keyboardDelegate, collection, target, wrap);\n case 'down':\n return nextDropTarget(keyboardDelegate, collection, target, wrap);\n }\n}\n\nfunction nextDropTarget(\n keyboardDelegate: KeyboardDelegate,\n collection: Collection<Node<unknown>>,\n target: DropTarget | null | undefined,\n wrap = false,\n horizontal: 'left' | 'right' | null = null\n): DropTarget | null {\n if (!target) {\n return {\n type: 'root'\n };\n }\n\n if (target.type === 'root') {\n let nextKey = keyboardDelegate.getFirstKey?.() ?? null;\n if (nextKey != null) {\n return {\n type: 'item',\n key: nextKey,\n dropPosition: 'before'\n };\n }\n\n return null;\n }\n\n if (target.type === 'item') {\n let nextKey: Key | null | undefined = null;\n if (horizontal) {\n nextKey = horizontal === 'right' ? keyboardDelegate.getKeyRightOf?.(target.key) : keyboardDelegate.getKeyLeftOf?.(target.key);\n } else {\n nextKey = keyboardDelegate.getKeyBelow?.(target.key);\n }\n let nextCollectionKey = getNextItem(collection, target.key, key => collection.getKeyAfter(key));\n\n // If the keyboard delegate did not move to the next key in the collection,\n // jump to that key with the same drop position. Otherwise, try the other\n // drop positions on the current key first.\n if (nextKey != null && nextKey !== nextCollectionKey) {\n return {\n type: 'item',\n key: nextKey,\n dropPosition: target.dropPosition\n };\n }\n\n switch (target.dropPosition) {\n case 'before': {\n return {\n type: 'item',\n key: target.key,\n dropPosition: 'on'\n };\n }\n case 'on': {\n // If there are nested items, traverse to them prior to the \"after\" position of this target.\n // If the next key is on the same level, then its \"before\" position is equivalent to this item's \"after\" position.\n let targetNode = collection.getItem(target.key);\n let nextNode = nextKey != null ? collection.getItem(nextKey) : null;\n if (targetNode && nextNode && nextNode.level >= targetNode.level) {\n return {\n type: 'item',\n key: nextNode.key,\n dropPosition: 'before'\n };\n }\n\n return {\n type: 'item',\n key: target.key,\n dropPosition: 'after'\n };\n }\n case 'after': {\n // If this is the last sibling in a level, traverse to the parent.\n let targetNode = collection.getItem(target.key);\n let nextItemInSameLevel = targetNode?.nextKey != null ? collection.getItem(targetNode.nextKey) : null;\n while (nextItemInSameLevel != null && nextItemInSameLevel.type !== 'item') {\n nextItemInSameLevel = nextItemInSameLevel.nextKey != null ? collection.getItem(nextItemInSameLevel.nextKey) : null;\n }\n\n if (targetNode && nextItemInSameLevel == null && targetNode.parentKey != null) {\n // If the parent item has an item after it, use the \"before\" position.\n let parentNode = collection.getItem(targetNode.parentKey);\n const nextNode = parentNode?.nextKey != null ? collection.getItem(parentNode.nextKey) : null;\n if (nextNode?.type === 'item') {\n return {\n type: 'item',\n key: nextNode.key,\n dropPosition: 'before'\n };\n }\n\n if (parentNode?.type === 'item') {\n return {\n type: 'item',\n key: parentNode.key,\n dropPosition: 'after'\n };\n }\n }\n\n if (nextItemInSameLevel) {\n return {\n type: 'item',\n key: nextItemInSameLevel.key,\n dropPosition: 'on'\n };\n }\n }\n }\n }\n\n if (wrap) {\n return {\n type: 'root'\n };\n }\n\n return null;\n}\n\nfunction previousDropTarget(\n keyboardDelegate: KeyboardDelegate,\n collection: Collection<Node<unknown>>,\n target: DropTarget | null | undefined,\n wrap = false,\n horizontal: 'left' | 'right' | null = null\n): DropTarget | null {\n // Start after the last root-level item.\n if (!target || (wrap && target.type === 'root')) {\n // Keyboard delegate gets the deepest item but we want the shallowest.\n let prevKey: Key | null = null;\n let lastKey = keyboardDelegate.getLastKey?.();\n while (lastKey != null) {\n let node = collection.getItem(lastKey);\n if (node?.type !== 'item') {\n break;\n }\n prevKey = lastKey;\n lastKey = node?.parentKey;\n }\n\n if (prevKey != null) {\n return {\n type: 'item',\n key: prevKey,\n dropPosition: 'after'\n };\n }\n\n return null;\n }\n\n if (target.type === 'item') {\n let prevKey: Key | null | undefined = null;\n if (horizontal) {\n prevKey = horizontal === 'left' ? keyboardDelegate.getKeyLeftOf?.(target.key) : keyboardDelegate.getKeyRightOf?.(target.key);\n } else {\n prevKey = keyboardDelegate.getKeyAbove?.(target.key);\n }\n let prevCollectionKey = getNextItem(collection, target.key, key => collection.getKeyBefore(key));\n\n // If the keyboard delegate did not move to the next key in the collection,\n // jump to that key with the same drop position. Otherwise, try the other\n // drop positions on the current key first.\n if (prevKey != null && prevKey !== prevCollectionKey) {\n return {\n type: 'item',\n key: prevKey,\n dropPosition: target.dropPosition\n };\n }\n\n switch (target.dropPosition) {\n case 'before': {\n // Move after the last child of the previous item.\n let targetNode = collection.getItem(target.key);\n if (targetNode && targetNode.prevKey != null) {\n let lastChild = getLastChild(collection, targetNode.prevKey);\n if (lastChild) {\n return lastChild;\n }\n }\n\n if (prevKey != null) {\n return {\n type: 'item',\n key: prevKey,\n dropPosition: 'on'\n };\n }\n\n return {\n type: 'root'\n };\n }\n case 'on': {\n return {\n type: 'item',\n key: target.key,\n dropPosition: 'before'\n };\n }\n case 'after': {\n // Move after the last child of this item.\n let lastChild = getLastChild(collection, target.key);\n if (lastChild) {\n return lastChild;\n }\n\n return {\n type: 'item',\n key: target.key,\n dropPosition: 'on'\n };\n }\n }\n }\n\n if (target.type !== 'root') {\n return {\n type: 'root'\n };\n }\n\n return null;\n}\n\nfunction getLastChild(collection: Collection<Node<unknown>>, key: Key): DropTarget | null {\n // getChildNodes still returns child tree items even when the item is collapsed.\n // Checking if the next item has a greater level is a silly way to determine if the item is expanded.\n let targetNode = collection.getItem(key);\n let nextKey = getNextItem(collection, key, key => collection.getKeyAfter(key));\n let nextNode = nextKey != null ? collection.getItem(nextKey) : null;\n if (targetNode && nextNode && nextNode.level > targetNode.level) {\n let lastChild: Node<unknown> | null = null;\n if ('lastChildKey' in targetNode) {\n lastChild = targetNode.lastChildKey != null ? collection.getItem(targetNode.lastChildKey) : null;\n while (lastChild && lastChild.type !== 'item' && lastChild.prevKey != null) {\n lastChild = collection.getItem(lastChild.prevKey)!;\n }\n } else {\n lastChild = Array.from(targetNode.childNodes).findLast(item => item.type === 'item') || null;\n }\n\n if (lastChild) {\n return {\n type: 'item',\n key: lastChild.key,\n dropPosition: 'after'\n };\n }\n }\n\n return null;\n}\n\n// Find the next or previous item in a collection, skipping over other types of nodes (e.g. content).\nfunction getNextItem(collection: Collection<Node<unknown>>, key: Key, getNextKey: (key: Key) => Key | null): Key | null {\n let nextCollectionKey = getNextKey(key);\n let nextCollectionNode = nextCollectionKey != null ? collection.getItem(nextCollectionKey) : null;\n while (nextCollectionNode && nextCollectionNode.type !== 'item') {\n nextCollectionKey = getNextKey(nextCollectionNode.key);\n nextCollectionNode = nextCollectionKey != null ? collection.getItem(nextCollectionKey) : null;\n }\n return nextCollectionKey;\n}\n"],"names":[],"version":3,"file":"DropTargetKeyboardNavigation.mjs.map"}
1
+ {"mappings":"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","sources":["packages/react-aria/src/dnd/DropTargetKeyboardNavigation.ts"],"sourcesContent":["import {Collection, DropTarget, Key, KeyboardDelegate, Node} from '@react-types/shared';\n\nexport function navigate(\n keyboardDelegate: KeyboardDelegate,\n collection: Collection<Node<unknown>>,\n target: DropTarget | null | undefined,\n direction: 'left' | 'right' | 'up' | 'down',\n rtl = false,\n wrap = false\n): DropTarget | null {\n switch (direction) {\n case 'left':\n return rtl\n ? nextDropTarget(keyboardDelegate, collection, target, wrap, 'left')\n : previousDropTarget(keyboardDelegate, collection, target, wrap, 'left');\n case 'right':\n return rtl\n ? previousDropTarget(keyboardDelegate, collection, target, wrap, 'right')\n : nextDropTarget(keyboardDelegate, collection, target, wrap, 'right');\n case 'up':\n return previousDropTarget(keyboardDelegate, collection, target, wrap);\n case 'down':\n return nextDropTarget(keyboardDelegate, collection, target, wrap);\n }\n}\n\nfunction nextDropTarget(\n keyboardDelegate: KeyboardDelegate,\n collection: Collection<Node<unknown>>,\n target: DropTarget | null | undefined,\n wrap = false,\n horizontal: 'left' | 'right' | null = null\n): DropTarget | null {\n if (!target) {\n return {\n type: 'root'\n };\n }\n\n if (target.type === 'root') {\n let nextKey = keyboardDelegate.getFirstKey?.() ?? null;\n if (nextKey != null) {\n return {\n type: 'item',\n key: nextKey,\n dropPosition: 'before'\n };\n }\n\n return null;\n }\n\n if (target.type === 'item') {\n let nextKey: Key | null | undefined = null;\n if (horizontal) {\n nextKey =\n horizontal === 'right'\n ? keyboardDelegate.getKeyRightOf?.(target.key, {includeDisabled: true})\n : keyboardDelegate.getKeyLeftOf?.(target.key, {includeDisabled: true});\n } else {\n nextKey = keyboardDelegate.getKeyBelow?.(target.key, {includeDisabled: true});\n }\n let nextCollectionKey = getNextItem(collection, target.key, key => collection.getKeyAfter(key));\n\n // If the keyboard delegate did not move to the next key in the collection,\n // jump to that key with the same drop position. Otherwise, try the other\n // drop positions on the current key first.\n if (nextKey != null && nextKey !== nextCollectionKey) {\n return {\n type: 'item',\n key: nextKey,\n dropPosition: target.dropPosition\n };\n }\n\n switch (target.dropPosition) {\n case 'before': {\n return {\n type: 'item',\n key: target.key,\n dropPosition: 'on'\n };\n }\n case 'on': {\n // If there are nested items, traverse to them prior to the \"after\" position of this target.\n // If the next key is on the same level, then its \"before\" position is equivalent to this item's \"after\" position.\n let targetNode = collection.getItem(target.key);\n let nextNode = nextKey != null ? collection.getItem(nextKey) : null;\n if (targetNode && nextNode && nextNode.level >= targetNode.level) {\n return {\n type: 'item',\n key: nextNode.key,\n dropPosition: 'before'\n };\n }\n\n return {\n type: 'item',\n key: target.key,\n dropPosition: 'after'\n };\n }\n case 'after': {\n // If this is the last sibling in a level, traverse to the parent.\n let targetNode = collection.getItem(target.key);\n let nextItemInSameLevel =\n targetNode?.nextKey != null ? collection.getItem(targetNode.nextKey) : null;\n while (nextItemInSameLevel != null && nextItemInSameLevel.type !== 'item') {\n nextItemInSameLevel =\n nextItemInSameLevel.nextKey != null\n ? collection.getItem(nextItemInSameLevel.nextKey)\n : null;\n }\n\n if (targetNode && nextItemInSameLevel == null && targetNode.parentKey != null) {\n // If the parent item has an item after it, use the \"before\" position.\n let parentNode = collection.getItem(targetNode.parentKey);\n const nextNode =\n parentNode?.nextKey != null ? collection.getItem(parentNode.nextKey) : null;\n if (nextNode?.type === 'item') {\n return {\n type: 'item',\n key: nextNode.key,\n dropPosition: 'before'\n };\n }\n\n if (parentNode?.type === 'item') {\n return {\n type: 'item',\n key: parentNode.key,\n dropPosition: 'after'\n };\n }\n }\n\n if (nextItemInSameLevel) {\n return {\n type: 'item',\n key: nextItemInSameLevel.key,\n dropPosition: 'on'\n };\n }\n }\n }\n }\n\n if (wrap) {\n return {\n type: 'root'\n };\n }\n\n return null;\n}\n\nfunction previousDropTarget(\n keyboardDelegate: KeyboardDelegate,\n collection: Collection<Node<unknown>>,\n target: DropTarget | null | undefined,\n wrap = false,\n horizontal: 'left' | 'right' | null = null\n): DropTarget | null {\n // Start after the last root-level item.\n if (!target || (wrap && target.type === 'root')) {\n // Keyboard delegate gets the deepest item but we want the shallowest.\n let prevKey: Key | null = null;\n let lastKey = keyboardDelegate.getLastKey?.();\n while (lastKey != null) {\n let node = collection.getItem(lastKey);\n if (node?.type !== 'item') {\n break;\n }\n prevKey = lastKey;\n lastKey = node?.parentKey;\n }\n\n if (prevKey != null) {\n return {\n type: 'item',\n key: prevKey,\n dropPosition: 'after'\n };\n }\n\n return null;\n }\n\n if (target.type === 'item') {\n let prevKey: Key | null | undefined = null;\n if (horizontal) {\n prevKey =\n horizontal === 'left'\n ? keyboardDelegate.getKeyLeftOf?.(target.key, {includeDisabled: true})\n : keyboardDelegate.getKeyRightOf?.(target.key, {includeDisabled: true});\n } else {\n prevKey = keyboardDelegate.getKeyAbove?.(target.key, {includeDisabled: true});\n }\n let prevCollectionKey = getNextItem(collection, target.key, key =>\n collection.getKeyBefore(key)\n );\n\n // If the keyboard delegate did not move to the next key in the collection,\n // jump to that key with the same drop position. Otherwise, try the other\n // drop positions on the current key first.\n if (prevKey != null && prevKey !== prevCollectionKey) {\n return {\n type: 'item',\n key: prevKey,\n dropPosition: target.dropPosition\n };\n }\n\n switch (target.dropPosition) {\n case 'before': {\n // Move after the last child of the previous item.\n let targetNode = collection.getItem(target.key);\n if (targetNode && targetNode.prevKey != null) {\n let lastChild = getLastChild(collection, targetNode.prevKey);\n if (lastChild) {\n return lastChild;\n }\n }\n\n if (prevKey != null) {\n return {\n type: 'item',\n key: prevKey,\n dropPosition: 'on'\n };\n }\n\n return {\n type: 'root'\n };\n }\n case 'on': {\n return {\n type: 'item',\n key: target.key,\n dropPosition: 'before'\n };\n }\n case 'after': {\n // Move after the last child of this item.\n let lastChild = getLastChild(collection, target.key);\n if (lastChild) {\n return lastChild;\n }\n\n return {\n type: 'item',\n key: target.key,\n dropPosition: 'on'\n };\n }\n }\n }\n\n if (target.type !== 'root') {\n return {\n type: 'root'\n };\n }\n\n return null;\n}\n\nfunction getLastChild(collection: Collection<Node<unknown>>, key: Key): DropTarget | null {\n // getChildNodes still returns child tree items even when the item is collapsed.\n // Checking if the next item has a greater level is a silly way to determine if the item is expanded.\n let targetNode = collection.getItem(key);\n let nextKey = getNextItem(collection, key, key => collection.getKeyAfter(key));\n let nextNode = nextKey != null ? collection.getItem(nextKey) : null;\n if (targetNode && nextNode && nextNode.level > targetNode.level) {\n let lastChild: Node<unknown> | null = null;\n if ('lastChildKey' in targetNode) {\n lastChild =\n targetNode.lastChildKey != null ? collection.getItem(targetNode.lastChildKey) : null;\n while (lastChild && lastChild.type !== 'item' && lastChild.prevKey != null) {\n lastChild = collection.getItem(lastChild.prevKey)!;\n }\n } else {\n lastChild = Array.from(targetNode.childNodes).findLast(item => item.type === 'item') || null;\n }\n\n if (lastChild) {\n return {\n type: 'item',\n key: lastChild.key,\n dropPosition: 'after'\n };\n }\n }\n\n return null;\n}\n\n// Find the next or previous item in a collection, skipping over other types of nodes (e.g. content).\nfunction getNextItem(\n collection: Collection<Node<unknown>>,\n key: Key,\n getNextKey: (key: Key) => Key | null\n): Key | null {\n let nextCollectionKey = getNextKey(key);\n let nextCollectionNode = nextCollectionKey != null ? collection.getItem(nextCollectionKey) : null;\n while (nextCollectionNode && nextCollectionNode.type !== 'item') {\n nextCollectionKey = getNextKey(nextCollectionNode.key);\n nextCollectionNode = nextCollectionKey != null ? collection.getItem(nextCollectionKey) : null;\n }\n return nextCollectionKey;\n}\n"],"names":[],"version":3,"file":"DropTargetKeyboardNavigation.mjs.map"}