react-aria 3.48.0 → 3.50.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1248) hide show
  1. package/dist/exports/CollectionBuilder.cjs.map +1 -1
  2. package/dist/exports/CollectionBuilder.js.map +1 -1
  3. package/dist/exports/CollectionBuilder.mjs.map +1 -1
  4. package/dist/exports/index.cjs +12 -0
  5. package/dist/exports/index.cjs.map +1 -1
  6. package/dist/exports/index.js +9 -1
  7. package/dist/exports/index.js.map +1 -1
  8. package/dist/exports/index.mjs +9 -1
  9. package/dist/exports/index.mjs.map +1 -1
  10. package/dist/exports/private/actiongroup/useActionGroup.cjs.map +1 -1
  11. package/dist/exports/private/actiongroup/useActionGroup.js.map +1 -1
  12. package/dist/exports/private/actiongroup/useActionGroup.mjs.map +1 -1
  13. package/dist/exports/private/actiongroup/useActionGroupItem.cjs.map +1 -1
  14. package/dist/exports/private/actiongroup/useActionGroupItem.js.map +1 -1
  15. package/dist/exports/private/actiongroup/useActionGroupItem.mjs.map +1 -1
  16. package/dist/exports/private/autocomplete/useSearchAutocomplete.cjs.map +1 -1
  17. package/dist/exports/private/autocomplete/useSearchAutocomplete.js.map +1 -1
  18. package/dist/exports/private/autocomplete/useSearchAutocomplete.mjs.map +1 -1
  19. package/dist/exports/private/collections/BaseCollection.cjs.map +1 -1
  20. package/dist/exports/private/collections/BaseCollection.js.map +1 -1
  21. package/dist/exports/private/collections/BaseCollection.mjs.map +1 -1
  22. package/dist/exports/private/collections/useCachedChildren.cjs.map +1 -1
  23. package/dist/exports/private/collections/useCachedChildren.js.map +1 -1
  24. package/dist/exports/private/collections/useCachedChildren.mjs.map +1 -1
  25. package/dist/exports/private/focus/FocusScope.cjs.map +1 -1
  26. package/dist/exports/private/focus/FocusScope.js.map +1 -1
  27. package/dist/exports/private/focus/FocusScope.mjs.map +1 -1
  28. package/dist/exports/private/focus/virtualFocus.cjs.map +1 -1
  29. package/dist/exports/private/focus/virtualFocus.js.map +1 -1
  30. package/dist/exports/private/focus/virtualFocus.mjs.map +1 -1
  31. package/dist/exports/private/grid/GridKeyboardDelegate.cjs.map +1 -1
  32. package/dist/exports/private/grid/GridKeyboardDelegate.js.map +1 -1
  33. package/dist/exports/private/grid/GridKeyboardDelegate.mjs.map +1 -1
  34. package/dist/exports/private/grid/useGridSelectionAnnouncement.cjs.map +1 -1
  35. package/dist/exports/private/grid/useGridSelectionAnnouncement.js.map +1 -1
  36. package/dist/exports/private/grid/useGridSelectionAnnouncement.mjs.map +1 -1
  37. package/dist/exports/private/grid/useGridSelectionCheckbox.cjs.map +1 -1
  38. package/dist/exports/private/grid/useGridSelectionCheckbox.js.map +1 -1
  39. package/dist/exports/private/grid/useGridSelectionCheckbox.mjs.map +1 -1
  40. package/dist/exports/private/grid/useHighlightSelectionDescription.cjs.map +1 -1
  41. package/dist/exports/private/grid/useHighlightSelectionDescription.js.map +1 -1
  42. package/dist/exports/private/grid/useHighlightSelectionDescription.mjs.map +1 -1
  43. package/dist/exports/private/interactions/useFocusVisible.cjs.map +1 -1
  44. package/dist/exports/private/interactions/useFocusVisible.js.map +1 -1
  45. package/dist/exports/private/interactions/useFocusVisible.mjs.map +1 -1
  46. package/dist/exports/private/interactions/useFocusable.cjs.map +1 -1
  47. package/dist/exports/private/interactions/useFocusable.js.map +1 -1
  48. package/dist/exports/private/interactions/useFocusable.mjs.map +1 -1
  49. package/dist/exports/private/landmark/useLandmark.cjs.map +1 -1
  50. package/dist/exports/private/landmark/useLandmark.js.map +1 -1
  51. package/dist/exports/private/landmark/useLandmark.mjs.map +1 -1
  52. package/dist/exports/private/live-announcer/LiveAnnouncer.cjs.map +1 -1
  53. package/dist/exports/private/live-announcer/LiveAnnouncer.js.map +1 -1
  54. package/dist/exports/private/live-announcer/LiveAnnouncer.mjs.map +1 -1
  55. package/dist/exports/private/overlays/useModal.cjs.map +1 -1
  56. package/dist/exports/private/overlays/useModal.js.map +1 -1
  57. package/dist/exports/private/overlays/useModal.mjs.map +1 -1
  58. package/dist/exports/private/selection/useSelectableCollection.cjs.map +1 -1
  59. package/dist/exports/private/selection/useSelectableCollection.js.map +1 -1
  60. package/dist/exports/private/selection/useSelectableCollection.mjs.map +1 -1
  61. package/dist/exports/private/selection/useSelectableItem.cjs.map +1 -1
  62. package/dist/exports/private/selection/useSelectableItem.js.map +1 -1
  63. package/dist/exports/private/selection/useSelectableItem.mjs.map +1 -1
  64. package/dist/exports/private/selection/useSelectableList.cjs.map +1 -1
  65. package/dist/exports/private/selection/useSelectableList.js.map +1 -1
  66. package/dist/exports/private/selection/useSelectableList.mjs.map +1 -1
  67. package/dist/exports/private/selection/useTypeSelect.cjs.map +1 -1
  68. package/dist/exports/private/selection/useTypeSelect.js.map +1 -1
  69. package/dist/exports/private/selection/useTypeSelect.mjs.map +1 -1
  70. package/dist/exports/private/spinbutton/useSpinButton.cjs.map +1 -1
  71. package/dist/exports/private/spinbutton/useSpinButton.js.map +1 -1
  72. package/dist/exports/private/spinbutton/useSpinButton.mjs.map +1 -1
  73. package/dist/exports/private/steplist/useStepList.cjs.map +1 -1
  74. package/dist/exports/private/steplist/useStepList.js.map +1 -1
  75. package/dist/exports/private/steplist/useStepList.mjs.map +1 -1
  76. package/dist/exports/private/steplist/useStepListItem.cjs.map +1 -1
  77. package/dist/exports/private/steplist/useStepListItem.js.map +1 -1
  78. package/dist/exports/private/steplist/useStepListItem.mjs.map +1 -1
  79. package/dist/exports/private/utils/openLink.cjs.map +1 -1
  80. package/dist/exports/private/utils/openLink.js.map +1 -1
  81. package/dist/exports/private/utils/openLink.mjs.map +1 -1
  82. package/dist/exports/private/utils/platform.cjs.map +1 -1
  83. package/dist/exports/private/utils/platform.js.map +1 -1
  84. package/dist/exports/private/utils/platform.mjs.map +1 -1
  85. package/dist/exports/private/utils/shadowdom/DOMFunctions.cjs.map +1 -1
  86. package/dist/exports/private/utils/shadowdom/DOMFunctions.js.map +1 -1
  87. package/dist/exports/private/utils/shadowdom/DOMFunctions.mjs.map +1 -1
  88. package/dist/exports/private/utils/shadowdom/ShadowTreeWalker.cjs.map +1 -1
  89. package/dist/exports/private/utils/shadowdom/ShadowTreeWalker.js.map +1 -1
  90. package/dist/exports/private/utils/shadowdom/ShadowTreeWalker.mjs.map +1 -1
  91. package/dist/exports/private/utils/useLoadMoreSentinel.cjs.map +1 -1
  92. package/dist/exports/private/utils/useLoadMoreSentinel.js.map +1 -1
  93. package/dist/exports/private/utils/useLoadMoreSentinel.mjs.map +1 -1
  94. package/dist/exports/private/virtualizer/useVirtualizerItem.cjs.map +1 -1
  95. package/dist/exports/private/virtualizer/useVirtualizerItem.js.map +1 -1
  96. package/dist/exports/private/virtualizer/useVirtualizerItem.mjs.map +1 -1
  97. package/dist/exports/private/virtualizer/utils.cjs.map +1 -1
  98. package/dist/exports/private/virtualizer/utils.js.map +1 -1
  99. package/dist/exports/private/virtualizer/utils.mjs.map +1 -1
  100. package/dist/exports/useAutocomplete.cjs.map +1 -1
  101. package/dist/exports/useAutocomplete.js.map +1 -1
  102. package/dist/exports/useAutocomplete.mjs.map +1 -1
  103. package/dist/exports/useBreadcrumbs.cjs.map +1 -1
  104. package/dist/exports/useBreadcrumbs.js.map +1 -1
  105. package/dist/exports/useBreadcrumbs.mjs.map +1 -1
  106. package/dist/exports/useButton.cjs.map +1 -1
  107. package/dist/exports/useButton.js.map +1 -1
  108. package/dist/exports/useButton.mjs.map +1 -1
  109. package/dist/exports/useCalendar.cjs +9 -0
  110. package/dist/exports/useCalendar.cjs.map +1 -1
  111. package/dist/exports/useCalendar.js +7 -1
  112. package/dist/exports/useCalendar.js.map +1 -1
  113. package/dist/exports/useCalendar.mjs +7 -1
  114. package/dist/exports/useCalendar.mjs.map +1 -1
  115. package/dist/exports/useClipboard.cjs.map +1 -1
  116. package/dist/exports/useClipboard.js.map +1 -1
  117. package/dist/exports/useClipboard.mjs.map +1 -1
  118. package/dist/exports/useColorArea.cjs.map +1 -1
  119. package/dist/exports/useColorArea.js.map +1 -1
  120. package/dist/exports/useColorArea.mjs.map +1 -1
  121. package/dist/exports/useColorField.cjs.map +1 -1
  122. package/dist/exports/useColorField.js.map +1 -1
  123. package/dist/exports/useColorField.mjs.map +1 -1
  124. package/dist/exports/useColorSlider.cjs.map +1 -1
  125. package/dist/exports/useColorSlider.js.map +1 -1
  126. package/dist/exports/useColorSlider.mjs.map +1 -1
  127. package/dist/exports/useColorWheel.cjs.map +1 -1
  128. package/dist/exports/useColorWheel.js.map +1 -1
  129. package/dist/exports/useColorWheel.mjs.map +1 -1
  130. package/dist/exports/useComboBox.cjs.map +1 -1
  131. package/dist/exports/useComboBox.js.map +1 -1
  132. package/dist/exports/useComboBox.mjs.map +1 -1
  133. package/dist/exports/useDateField.cjs.map +1 -1
  134. package/dist/exports/useDateField.js.map +1 -1
  135. package/dist/exports/useDateField.mjs.map +1 -1
  136. package/dist/exports/useDateRangePicker.cjs.map +1 -1
  137. package/dist/exports/useDateRangePicker.js.map +1 -1
  138. package/dist/exports/useDateRangePicker.mjs.map +1 -1
  139. package/dist/exports/useDisclosure.cjs +1 -1
  140. package/dist/exports/useDisclosure.cjs.map +1 -1
  141. package/dist/exports/useDisclosure.js +1 -1
  142. package/dist/exports/useDisclosure.js.map +1 -1
  143. package/dist/exports/useDisclosure.mjs +1 -1
  144. package/dist/exports/useDisclosure.mjs.map +1 -1
  145. package/dist/exports/useDrag.cjs.map +1 -1
  146. package/dist/exports/useDrag.js.map +1 -1
  147. package/dist/exports/useDrag.mjs.map +1 -1
  148. package/dist/exports/useDraggableCollection.cjs.map +1 -1
  149. package/dist/exports/useDraggableCollection.js.map +1 -1
  150. package/dist/exports/useDraggableCollection.mjs.map +1 -1
  151. package/dist/exports/useDrop.cjs.map +1 -1
  152. package/dist/exports/useDrop.js.map +1 -1
  153. package/dist/exports/useDrop.mjs.map +1 -1
  154. package/dist/exports/useDroppableCollection.cjs.map +1 -1
  155. package/dist/exports/useDroppableCollection.js.map +1 -1
  156. package/dist/exports/useDroppableCollection.mjs.map +1 -1
  157. package/dist/exports/useFocusable.cjs.map +1 -1
  158. package/dist/exports/useFocusable.js.map +1 -1
  159. package/dist/exports/useFocusable.mjs.map +1 -1
  160. package/dist/exports/useGridList.cjs.map +1 -1
  161. package/dist/exports/useGridList.js.map +1 -1
  162. package/dist/exports/useGridList.mjs.map +1 -1
  163. package/dist/exports/useInteractOutside.cjs.map +1 -1
  164. package/dist/exports/useInteractOutside.js.map +1 -1
  165. package/dist/exports/useInteractOutside.mjs.map +1 -1
  166. package/dist/exports/useLandmark.cjs.map +1 -1
  167. package/dist/exports/useLandmark.js.map +1 -1
  168. package/dist/exports/useLandmark.mjs.map +1 -1
  169. package/dist/exports/useListBox.cjs.map +1 -1
  170. package/dist/exports/useListBox.js.map +1 -1
  171. package/dist/exports/useListBox.mjs.map +1 -1
  172. package/dist/exports/useLocalizedStringFormatter.cjs.map +1 -1
  173. package/dist/exports/useLocalizedStringFormatter.js.map +1 -1
  174. package/dist/exports/useLocalizedStringFormatter.mjs.map +1 -1
  175. package/dist/exports/useMove.cjs.map +1 -1
  176. package/dist/exports/useMove.js.map +1 -1
  177. package/dist/exports/useMove.mjs.map +1 -1
  178. package/dist/exports/useOverlayPosition.cjs.map +1 -1
  179. package/dist/exports/useOverlayPosition.js.map +1 -1
  180. package/dist/exports/useOverlayPosition.mjs.map +1 -1
  181. package/dist/exports/useProgressBar.cjs.map +1 -1
  182. package/dist/exports/useProgressBar.js.map +1 -1
  183. package/dist/exports/useProgressBar.mjs.map +1 -1
  184. package/dist/exports/useRangeCalendar.cjs +15 -0
  185. package/dist/exports/useRangeCalendar.cjs.map +1 -1
  186. package/dist/exports/useRangeCalendar.js +11 -1
  187. package/dist/exports/useRangeCalendar.js.map +1 -1
  188. package/dist/exports/useRangeCalendar.mjs +11 -1
  189. package/dist/exports/useRangeCalendar.mjs.map +1 -1
  190. package/dist/exports/useSelect.cjs.map +1 -1
  191. package/dist/exports/useSelect.js.map +1 -1
  192. package/dist/exports/useSelect.mjs.map +1 -1
  193. package/dist/exports/useSlider.cjs.map +1 -1
  194. package/dist/exports/useSlider.js.map +1 -1
  195. package/dist/exports/useSlider.mjs.map +1 -1
  196. package/dist/exports/useTable.cjs.map +1 -1
  197. package/dist/exports/useTable.js.map +1 -1
  198. package/dist/exports/useTable.mjs.map +1 -1
  199. package/dist/exports/useTimeField.cjs.map +1 -1
  200. package/dist/exports/useTimeField.js.map +1 -1
  201. package/dist/exports/useTimeField.mjs.map +1 -1
  202. package/dist/exports/useToggleButton.cjs.map +1 -1
  203. package/dist/exports/useToggleButton.js.map +1 -1
  204. package/dist/exports/useToggleButton.mjs.map +1 -1
  205. package/dist/exports/useToggleButtonGroup.cjs.map +1 -1
  206. package/dist/exports/useToggleButtonGroup.js.map +1 -1
  207. package/dist/exports/useToggleButtonGroup.mjs.map +1 -1
  208. package/dist/exports/useTree.cjs.map +1 -1
  209. package/dist/exports/useTree.js.map +1 -1
  210. package/dist/exports/useTree.mjs.map +1 -1
  211. package/dist/private/actiongroup/useActionGroup.cjs +3 -3
  212. package/dist/private/actiongroup/useActionGroup.cjs.map +1 -1
  213. package/dist/private/actiongroup/useActionGroup.js +3 -3
  214. package/dist/private/actiongroup/useActionGroup.js.map +1 -1
  215. package/dist/private/actiongroup/useActionGroup.mjs +3 -3
  216. package/dist/private/actiongroup/useActionGroup.mjs.map +1 -1
  217. package/dist/private/actiongroup/useActionGroupItem.cjs +5 -4
  218. package/dist/private/actiongroup/useActionGroupItem.cjs.map +1 -1
  219. package/dist/private/actiongroup/useActionGroupItem.js +5 -4
  220. package/dist/private/actiongroup/useActionGroupItem.js.map +1 -1
  221. package/dist/private/actiongroup/useActionGroupItem.mjs +5 -4
  222. package/dist/private/actiongroup/useActionGroupItem.mjs.map +1 -1
  223. package/dist/private/aria-modal-polyfill/ariaModalPolyfill.cjs +7 -5
  224. package/dist/private/aria-modal-polyfill/ariaModalPolyfill.cjs.map +1 -1
  225. package/dist/private/aria-modal-polyfill/ariaModalPolyfill.js +7 -5
  226. package/dist/private/aria-modal-polyfill/ariaModalPolyfill.js.map +1 -1
  227. package/dist/private/aria-modal-polyfill/ariaModalPolyfill.mjs +7 -5
  228. package/dist/private/aria-modal-polyfill/ariaModalPolyfill.mjs.map +1 -1
  229. package/dist/private/autocomplete/useAutocomplete.cjs +16 -7
  230. package/dist/private/autocomplete/useAutocomplete.cjs.map +1 -1
  231. package/dist/private/autocomplete/useAutocomplete.js +16 -7
  232. package/dist/private/autocomplete/useAutocomplete.js.map +1 -1
  233. package/dist/private/autocomplete/useAutocomplete.mjs +16 -7
  234. package/dist/private/autocomplete/useAutocomplete.mjs.map +1 -1
  235. package/dist/private/autocomplete/useSearchAutocomplete.cjs.map +1 -1
  236. package/dist/private/autocomplete/useSearchAutocomplete.js.map +1 -1
  237. package/dist/private/autocomplete/useSearchAutocomplete.mjs.map +1 -1
  238. package/dist/private/breadcrumbs/useBreadcrumbItem.cjs.map +1 -1
  239. package/dist/private/breadcrumbs/useBreadcrumbItem.js.map +1 -1
  240. package/dist/private/breadcrumbs/useBreadcrumbItem.mjs.map +1 -1
  241. package/dist/private/breadcrumbs/useBreadcrumbs.cjs.map +1 -1
  242. package/dist/private/breadcrumbs/useBreadcrumbs.js.map +1 -1
  243. package/dist/private/breadcrumbs/useBreadcrumbs.mjs.map +1 -1
  244. package/dist/private/button/useButton.cjs.map +1 -1
  245. package/dist/private/button/useButton.js.map +1 -1
  246. package/dist/private/button/useButton.mjs.map +1 -1
  247. package/dist/private/button/useToggleButton.cjs.map +1 -1
  248. package/dist/private/button/useToggleButton.js.map +1 -1
  249. package/dist/private/button/useToggleButton.mjs.map +1 -1
  250. package/dist/private/button/useToggleButtonGroup.cjs.map +1 -1
  251. package/dist/private/button/useToggleButtonGroup.js.map +1 -1
  252. package/dist/private/button/useToggleButtonGroup.mjs.map +1 -1
  253. package/dist/private/calendar/useCalendar.cjs.map +1 -1
  254. package/dist/private/calendar/useCalendar.js.map +1 -1
  255. package/dist/private/calendar/useCalendar.mjs.map +1 -1
  256. package/dist/private/calendar/useCalendarBase.cjs.map +1 -1
  257. package/dist/private/calendar/useCalendarBase.js.map +1 -1
  258. package/dist/private/calendar/useCalendarBase.mjs.map +1 -1
  259. package/dist/private/calendar/useCalendarCell.cjs +10 -14
  260. package/dist/private/calendar/useCalendarCell.cjs.map +1 -1
  261. package/dist/private/calendar/useCalendarCell.js +10 -14
  262. package/dist/private/calendar/useCalendarCell.js.map +1 -1
  263. package/dist/private/calendar/useCalendarCell.mjs +10 -14
  264. package/dist/private/calendar/useCalendarCell.mjs.map +1 -1
  265. package/dist/private/calendar/useCalendarGrid.cjs +9 -5
  266. package/dist/private/calendar/useCalendarGrid.cjs.map +1 -1
  267. package/dist/private/calendar/useCalendarGrid.js +10 -6
  268. package/dist/private/calendar/useCalendarGrid.js.map +1 -1
  269. package/dist/private/calendar/useCalendarGrid.mjs +10 -6
  270. package/dist/private/calendar/useCalendarGrid.mjs.map +1 -1
  271. package/dist/private/calendar/useCalendarHeading.cjs +56 -0
  272. package/dist/private/calendar/useCalendarHeading.cjs.map +1 -0
  273. package/dist/private/calendar/useCalendarHeading.js +52 -0
  274. package/dist/private/calendar/useCalendarHeading.js.map +1 -0
  275. package/dist/private/calendar/useCalendarHeading.mjs +51 -0
  276. package/dist/private/calendar/useCalendarHeading.mjs.map +1 -0
  277. package/dist/private/calendar/useCalendarMonthPicker.cjs +66 -0
  278. package/dist/private/calendar/useCalendarMonthPicker.cjs.map +1 -0
  279. package/dist/private/calendar/useCalendarMonthPicker.js +61 -0
  280. package/dist/private/calendar/useCalendarMonthPicker.js.map +1 -0
  281. package/dist/private/calendar/useCalendarMonthPicker.mjs +61 -0
  282. package/dist/private/calendar/useCalendarMonthPicker.mjs.map +1 -0
  283. package/dist/private/calendar/useCalendarYearPicker.cjs +90 -0
  284. package/dist/private/calendar/useCalendarYearPicker.cjs.map +1 -0
  285. package/dist/private/calendar/useCalendarYearPicker.js +86 -0
  286. package/dist/private/calendar/useCalendarYearPicker.js.map +1 -0
  287. package/dist/private/calendar/useCalendarYearPicker.mjs +85 -0
  288. package/dist/private/calendar/useCalendarYearPicker.mjs.map +1 -0
  289. package/dist/private/calendar/useRangeCalendar.cjs +1 -1
  290. package/dist/private/calendar/useRangeCalendar.cjs.map +1 -1
  291. package/dist/private/calendar/useRangeCalendar.js +1 -1
  292. package/dist/private/calendar/useRangeCalendar.js.map +1 -1
  293. package/dist/private/calendar/useRangeCalendar.mjs +1 -1
  294. package/dist/private/calendar/useRangeCalendar.mjs.map +1 -1
  295. package/dist/private/calendar/utils.cjs +20 -4
  296. package/dist/private/calendar/utils.cjs.map +1 -1
  297. package/dist/private/calendar/utils.js +22 -5
  298. package/dist/private/calendar/utils.js.map +1 -1
  299. package/dist/private/calendar/utils.mjs +20 -4
  300. package/dist/private/calendar/utils.mjs.map +1 -1
  301. package/dist/private/checkbox/useCheckbox.cjs +6 -35
  302. package/dist/private/checkbox/useCheckbox.cjs.map +1 -1
  303. package/dist/private/checkbox/useCheckbox.js +6 -35
  304. package/dist/private/checkbox/useCheckbox.js.map +1 -1
  305. package/dist/private/checkbox/useCheckbox.mjs +6 -35
  306. package/dist/private/checkbox/useCheckbox.mjs.map +1 -1
  307. package/dist/private/checkbox/useCheckboxGroup.cjs.map +1 -1
  308. package/dist/private/checkbox/useCheckboxGroup.js.map +1 -1
  309. package/dist/private/checkbox/useCheckboxGroup.mjs.map +1 -1
  310. package/dist/private/checkbox/useCheckboxGroupItem.cjs +1 -1
  311. package/dist/private/checkbox/useCheckboxGroupItem.cjs.map +1 -1
  312. package/dist/private/checkbox/useCheckboxGroupItem.js +1 -1
  313. package/dist/private/checkbox/useCheckboxGroupItem.js.map +1 -1
  314. package/dist/private/checkbox/useCheckboxGroupItem.mjs +1 -1
  315. package/dist/private/checkbox/useCheckboxGroupItem.mjs.map +1 -1
  316. package/dist/private/checkbox/utils.cjs.map +1 -1
  317. package/dist/private/checkbox/utils.js.map +1 -1
  318. package/dist/private/checkbox/utils.mjs.map +1 -1
  319. package/dist/private/collections/BaseCollection.cjs +4 -4
  320. package/dist/private/collections/BaseCollection.cjs.map +1 -1
  321. package/dist/private/collections/BaseCollection.js +4 -4
  322. package/dist/private/collections/BaseCollection.js.map +1 -1
  323. package/dist/private/collections/BaseCollection.mjs +4 -4
  324. package/dist/private/collections/BaseCollection.mjs.map +1 -1
  325. package/dist/private/collections/CollectionBuilder.cjs +5 -3
  326. package/dist/private/collections/CollectionBuilder.cjs.map +1 -1
  327. package/dist/private/collections/CollectionBuilder.js +5 -3
  328. package/dist/private/collections/CollectionBuilder.js.map +1 -1
  329. package/dist/private/collections/CollectionBuilder.mjs +5 -3
  330. package/dist/private/collections/CollectionBuilder.mjs.map +1 -1
  331. package/dist/private/collections/Document.cjs.map +1 -1
  332. package/dist/private/collections/Document.js.map +1 -1
  333. package/dist/private/collections/Document.mjs.map +1 -1
  334. package/dist/private/collections/Hidden.cjs.map +1 -1
  335. package/dist/private/collections/Hidden.js.map +1 -1
  336. package/dist/private/collections/Hidden.mjs.map +1 -1
  337. package/dist/private/collections/useCachedChildren.cjs +29 -8
  338. package/dist/private/collections/useCachedChildren.cjs.map +1 -1
  339. package/dist/private/collections/useCachedChildren.js +29 -8
  340. package/dist/private/collections/useCachedChildren.js.map +1 -1
  341. package/dist/private/collections/useCachedChildren.mjs +29 -8
  342. package/dist/private/collections/useCachedChildren.mjs.map +1 -1
  343. package/dist/private/color/useColorArea.cjs.map +1 -1
  344. package/dist/private/color/useColorArea.js.map +1 -1
  345. package/dist/private/color/useColorArea.mjs.map +1 -1
  346. package/dist/private/color/useColorAreaGradient.cjs +1 -1
  347. package/dist/private/color/useColorAreaGradient.cjs.map +1 -1
  348. package/dist/private/color/useColorAreaGradient.js +1 -1
  349. package/dist/private/color/useColorAreaGradient.js.map +1 -1
  350. package/dist/private/color/useColorAreaGradient.mjs +1 -1
  351. package/dist/private/color/useColorAreaGradient.mjs.map +1 -1
  352. package/dist/private/color/useColorChannelField.cjs.map +1 -1
  353. package/dist/private/color/useColorChannelField.js.map +1 -1
  354. package/dist/private/color/useColorChannelField.mjs.map +1 -1
  355. package/dist/private/color/useColorField.cjs +1 -1
  356. package/dist/private/color/useColorField.cjs.map +1 -1
  357. package/dist/private/color/useColorField.js +1 -1
  358. package/dist/private/color/useColorField.js.map +1 -1
  359. package/dist/private/color/useColorField.mjs +1 -1
  360. package/dist/private/color/useColorField.mjs.map +1 -1
  361. package/dist/private/color/useColorSlider.cjs +2 -2
  362. package/dist/private/color/useColorSlider.cjs.map +1 -1
  363. package/dist/private/color/useColorSlider.js +2 -2
  364. package/dist/private/color/useColorSlider.js.map +1 -1
  365. package/dist/private/color/useColorSlider.mjs +2 -2
  366. package/dist/private/color/useColorSlider.mjs.map +1 -1
  367. package/dist/private/color/useColorSwatch.cjs.map +1 -1
  368. package/dist/private/color/useColorSwatch.js.map +1 -1
  369. package/dist/private/color/useColorSwatch.mjs.map +1 -1
  370. package/dist/private/color/useColorWheel.cjs.map +1 -1
  371. package/dist/private/color/useColorWheel.js.map +1 -1
  372. package/dist/private/color/useColorWheel.mjs.map +1 -1
  373. package/dist/private/combobox/useComboBox.cjs +5 -3
  374. package/dist/private/combobox/useComboBox.cjs.map +1 -1
  375. package/dist/private/combobox/useComboBox.js +5 -3
  376. package/dist/private/combobox/useComboBox.js.map +1 -1
  377. package/dist/private/combobox/useComboBox.mjs +5 -3
  378. package/dist/private/combobox/useComboBox.mjs.map +1 -1
  379. package/dist/private/datepicker/useDateField.cjs.map +1 -1
  380. package/dist/private/datepicker/useDateField.js.map +1 -1
  381. package/dist/private/datepicker/useDateField.mjs.map +1 -1
  382. package/dist/private/datepicker/useDatePicker.cjs.map +1 -1
  383. package/dist/private/datepicker/useDatePicker.js.map +1 -1
  384. package/dist/private/datepicker/useDatePicker.mjs.map +1 -1
  385. package/dist/private/datepicker/useDatePickerGroup.cjs.map +1 -1
  386. package/dist/private/datepicker/useDatePickerGroup.js.map +1 -1
  387. package/dist/private/datepicker/useDatePickerGroup.mjs.map +1 -1
  388. package/dist/private/datepicker/useDateRangePicker.cjs.map +1 -1
  389. package/dist/private/datepicker/useDateRangePicker.js.map +1 -1
  390. package/dist/private/datepicker/useDateRangePicker.mjs.map +1 -1
  391. package/dist/private/datepicker/useDateSegment.cjs +2 -2
  392. package/dist/private/datepicker/useDateSegment.cjs.map +1 -1
  393. package/dist/private/datepicker/useDateSegment.js +2 -2
  394. package/dist/private/datepicker/useDateSegment.js.map +1 -1
  395. package/dist/private/datepicker/useDateSegment.mjs +2 -2
  396. package/dist/private/datepicker/useDateSegment.mjs.map +1 -1
  397. package/dist/private/datepicker/useDisplayNames.cjs +1 -2
  398. package/dist/private/datepicker/useDisplayNames.cjs.map +1 -1
  399. package/dist/private/datepicker/useDisplayNames.js +1 -2
  400. package/dist/private/datepicker/useDisplayNames.js.map +1 -1
  401. package/dist/private/datepicker/useDisplayNames.mjs +1 -2
  402. package/dist/private/datepicker/useDisplayNames.mjs.map +1 -1
  403. package/dist/private/dialog/useDialog.cjs.map +1 -1
  404. package/dist/private/dialog/useDialog.js.map +1 -1
  405. package/dist/private/dialog/useDialog.mjs.map +1 -1
  406. package/dist/private/disclosure/useDisclosure.cjs.map +1 -1
  407. package/dist/private/disclosure/useDisclosure.js.map +1 -1
  408. package/dist/private/disclosure/useDisclosure.mjs.map +1 -1
  409. package/dist/private/dnd/DragManager.cjs +4 -1
  410. package/dist/private/dnd/DragManager.cjs.map +1 -1
  411. package/dist/private/dnd/DragManager.js +4 -1
  412. package/dist/private/dnd/DragManager.js.map +1 -1
  413. package/dist/private/dnd/DragManager.mjs +4 -1
  414. package/dist/private/dnd/DragManager.mjs.map +1 -1
  415. package/dist/private/dnd/DragPreview.cjs.map +1 -1
  416. package/dist/private/dnd/DragPreview.js.map +1 -1
  417. package/dist/private/dnd/DragPreview.mjs.map +1 -1
  418. package/dist/private/dnd/DropTargetKeyboardNavigation.cjs +16 -4
  419. package/dist/private/dnd/DropTargetKeyboardNavigation.cjs.map +1 -1
  420. package/dist/private/dnd/DropTargetKeyboardNavigation.js +16 -4
  421. package/dist/private/dnd/DropTargetKeyboardNavigation.js.map +1 -1
  422. package/dist/private/dnd/DropTargetKeyboardNavigation.mjs +16 -4
  423. package/dist/private/dnd/DropTargetKeyboardNavigation.mjs.map +1 -1
  424. package/dist/private/dnd/ListDropTargetDelegate.cjs.map +1 -1
  425. package/dist/private/dnd/ListDropTargetDelegate.js.map +1 -1
  426. package/dist/private/dnd/ListDropTargetDelegate.mjs.map +1 -1
  427. package/dist/private/dnd/constants.cjs.map +1 -1
  428. package/dist/private/dnd/constants.js.map +1 -1
  429. package/dist/private/dnd/constants.mjs.map +1 -1
  430. package/dist/private/dnd/useAutoScroll.cjs.map +1 -1
  431. package/dist/private/dnd/useAutoScroll.js.map +1 -1
  432. package/dist/private/dnd/useAutoScroll.mjs.map +1 -1
  433. package/dist/private/dnd/useClipboard.cjs.map +1 -1
  434. package/dist/private/dnd/useClipboard.js.map +1 -1
  435. package/dist/private/dnd/useClipboard.mjs.map +1 -1
  436. package/dist/private/dnd/useDrag.cjs.map +1 -1
  437. package/dist/private/dnd/useDrag.js.map +1 -1
  438. package/dist/private/dnd/useDrag.mjs.map +1 -1
  439. package/dist/private/dnd/useDraggableCollection.cjs.map +1 -1
  440. package/dist/private/dnd/useDraggableCollection.js.map +1 -1
  441. package/dist/private/dnd/useDraggableCollection.mjs.map +1 -1
  442. package/dist/private/dnd/useDraggableItem.cjs.map +1 -1
  443. package/dist/private/dnd/useDraggableItem.js.map +1 -1
  444. package/dist/private/dnd/useDraggableItem.mjs.map +1 -1
  445. package/dist/private/dnd/useDrop.cjs.map +1 -1
  446. package/dist/private/dnd/useDrop.js.map +1 -1
  447. package/dist/private/dnd/useDrop.mjs.map +1 -1
  448. package/dist/private/dnd/useDropIndicator.cjs.map +1 -1
  449. package/dist/private/dnd/useDropIndicator.js.map +1 -1
  450. package/dist/private/dnd/useDropIndicator.mjs.map +1 -1
  451. package/dist/private/dnd/useDroppableCollection.cjs.map +1 -1
  452. package/dist/private/dnd/useDroppableCollection.js.map +1 -1
  453. package/dist/private/dnd/useDroppableCollection.mjs.map +1 -1
  454. package/dist/private/dnd/useDroppableItem.cjs.map +1 -1
  455. package/dist/private/dnd/useDroppableItem.js.map +1 -1
  456. package/dist/private/dnd/useDroppableItem.mjs.map +1 -1
  457. package/dist/private/dnd/useVirtualDrop.cjs.map +1 -1
  458. package/dist/private/dnd/useVirtualDrop.js.map +1 -1
  459. package/dist/private/dnd/useVirtualDrop.mjs.map +1 -1
  460. package/dist/private/dnd/utils.cjs +14 -4
  461. package/dist/private/dnd/utils.cjs.map +1 -1
  462. package/dist/private/dnd/utils.js +14 -4
  463. package/dist/private/dnd/utils.js.map +1 -1
  464. package/dist/private/dnd/utils.mjs +14 -4
  465. package/dist/private/dnd/utils.mjs.map +1 -1
  466. package/dist/private/focus/FocusRing.cjs.map +1 -1
  467. package/dist/private/focus/FocusRing.js.map +1 -1
  468. package/dist/private/focus/FocusRing.mjs.map +1 -1
  469. package/dist/private/focus/FocusScope.cjs +4 -1
  470. package/dist/private/focus/FocusScope.cjs.map +1 -1
  471. package/dist/private/focus/FocusScope.js +4 -1
  472. package/dist/private/focus/FocusScope.js.map +1 -1
  473. package/dist/private/focus/FocusScope.mjs +4 -1
  474. package/dist/private/focus/FocusScope.mjs.map +1 -1
  475. package/dist/private/focus/useFocusRing.cjs.map +1 -1
  476. package/dist/private/focus/useFocusRing.js.map +1 -1
  477. package/dist/private/focus/useFocusRing.mjs.map +1 -1
  478. package/dist/private/focus/useHasTabbableChild.cjs.map +1 -1
  479. package/dist/private/focus/useHasTabbableChild.js.map +1 -1
  480. package/dist/private/focus/useHasTabbableChild.mjs.map +1 -1
  481. package/dist/private/form/useFormValidation.cjs +1 -1
  482. package/dist/private/form/useFormValidation.cjs.map +1 -1
  483. package/dist/private/form/useFormValidation.js +1 -1
  484. package/dist/private/form/useFormValidation.js.map +1 -1
  485. package/dist/private/form/useFormValidation.mjs +1 -1
  486. package/dist/private/form/useFormValidation.mjs.map +1 -1
  487. package/dist/private/grid/GridKeyboardDelegate.cjs +9 -9
  488. package/dist/private/grid/GridKeyboardDelegate.cjs.map +1 -1
  489. package/dist/private/grid/GridKeyboardDelegate.js +10 -10
  490. package/dist/private/grid/GridKeyboardDelegate.js.map +1 -1
  491. package/dist/private/grid/GridKeyboardDelegate.mjs +9 -9
  492. package/dist/private/grid/GridKeyboardDelegate.mjs.map +1 -1
  493. package/dist/private/grid/useGrid.cjs.map +1 -1
  494. package/dist/private/grid/useGrid.js.map +1 -1
  495. package/dist/private/grid/useGrid.mjs.map +1 -1
  496. package/dist/private/grid/useGridCell.cjs.map +1 -1
  497. package/dist/private/grid/useGridCell.js.map +1 -1
  498. package/dist/private/grid/useGridCell.mjs.map +1 -1
  499. package/dist/private/grid/useGridRow.cjs.map +1 -1
  500. package/dist/private/grid/useGridRow.js.map +1 -1
  501. package/dist/private/grid/useGridRow.mjs.map +1 -1
  502. package/dist/private/grid/useGridRowGroup.cjs.map +1 -1
  503. package/dist/private/grid/useGridRowGroup.js.map +1 -1
  504. package/dist/private/grid/useGridRowGroup.mjs.map +1 -1
  505. package/dist/private/grid/useGridSelectionAnnouncement.cjs.map +1 -1
  506. package/dist/private/grid/useGridSelectionAnnouncement.js.map +1 -1
  507. package/dist/private/grid/useGridSelectionAnnouncement.mjs.map +1 -1
  508. package/dist/private/grid/useGridSelectionCheckbox.cjs.map +1 -1
  509. package/dist/private/grid/useGridSelectionCheckbox.js.map +1 -1
  510. package/dist/private/grid/useGridSelectionCheckbox.mjs.map +1 -1
  511. package/dist/private/grid/useHighlightSelectionDescription.cjs.map +1 -1
  512. package/dist/private/grid/useHighlightSelectionDescription.js.map +1 -1
  513. package/dist/private/grid/useHighlightSelectionDescription.mjs.map +1 -1
  514. package/dist/private/grid/utils.cjs.map +1 -1
  515. package/dist/private/grid/utils.js.map +1 -1
  516. package/dist/private/grid/utils.mjs.map +1 -1
  517. package/dist/private/gridlist/useGridList.cjs +2 -1
  518. package/dist/private/gridlist/useGridList.cjs.map +1 -1
  519. package/dist/private/gridlist/useGridList.js +2 -1
  520. package/dist/private/gridlist/useGridList.js.map +1 -1
  521. package/dist/private/gridlist/useGridList.mjs +2 -1
  522. package/dist/private/gridlist/useGridList.mjs.map +1 -1
  523. package/dist/private/gridlist/useGridListItem.cjs +66 -23
  524. package/dist/private/gridlist/useGridListItem.cjs.map +1 -1
  525. package/dist/private/gridlist/useGridListItem.js +67 -23
  526. package/dist/private/gridlist/useGridListItem.js.map +1 -1
  527. package/dist/private/gridlist/useGridListItem.mjs +66 -23
  528. package/dist/private/gridlist/useGridListItem.mjs.map +1 -1
  529. package/dist/private/gridlist/useGridListSection.cjs +3 -1
  530. package/dist/private/gridlist/useGridListSection.cjs.map +1 -1
  531. package/dist/private/gridlist/useGridListSection.js +3 -1
  532. package/dist/private/gridlist/useGridListSection.js.map +1 -1
  533. package/dist/private/gridlist/useGridListSection.mjs +3 -1
  534. package/dist/private/gridlist/useGridListSection.mjs.map +1 -1
  535. package/dist/private/gridlist/useGridListSelectionCheckbox.cjs.map +1 -1
  536. package/dist/private/gridlist/useGridListSelectionCheckbox.js.map +1 -1
  537. package/dist/private/gridlist/useGridListSelectionCheckbox.mjs.map +1 -1
  538. package/dist/private/gridlist/utils.cjs.map +1 -1
  539. package/dist/private/gridlist/utils.js.map +1 -1
  540. package/dist/private/gridlist/utils.mjs.map +1 -1
  541. package/dist/private/i18n/I18nProvider.cjs.map +1 -1
  542. package/dist/private/i18n/I18nProvider.js.map +1 -1
  543. package/dist/private/i18n/I18nProvider.mjs.map +1 -1
  544. package/dist/private/i18n/server.cjs.map +1 -1
  545. package/dist/private/i18n/server.js.map +1 -1
  546. package/dist/private/i18n/server.mjs.map +1 -1
  547. package/dist/private/i18n/useCollator.cjs.map +1 -1
  548. package/dist/private/i18n/useCollator.js.map +1 -1
  549. package/dist/private/i18n/useCollator.mjs.map +1 -1
  550. package/dist/private/i18n/useDateFormatter.cjs.map +1 -1
  551. package/dist/private/i18n/useDateFormatter.js.map +1 -1
  552. package/dist/private/i18n/useDateFormatter.mjs.map +1 -1
  553. package/dist/private/i18n/useDefaultLocale.cjs +2 -1
  554. package/dist/private/i18n/useDefaultLocale.cjs.map +1 -1
  555. package/dist/private/i18n/useDefaultLocale.js +2 -1
  556. package/dist/private/i18n/useDefaultLocale.js.map +1 -1
  557. package/dist/private/i18n/useDefaultLocale.mjs +2 -1
  558. package/dist/private/i18n/useDefaultLocale.mjs.map +1 -1
  559. package/dist/private/i18n/useFilter.cjs.map +1 -1
  560. package/dist/private/i18n/useFilter.js.map +1 -1
  561. package/dist/private/i18n/useFilter.mjs.map +1 -1
  562. package/dist/private/i18n/useListFormatter.cjs.map +1 -1
  563. package/dist/private/i18n/useListFormatter.js.map +1 -1
  564. package/dist/private/i18n/useListFormatter.mjs.map +1 -1
  565. package/dist/private/i18n/useLocalizedStringFormatter.cjs.map +1 -1
  566. package/dist/private/i18n/useLocalizedStringFormatter.js.map +1 -1
  567. package/dist/private/i18n/useLocalizedStringFormatter.mjs.map +1 -1
  568. package/dist/private/i18n/useNumberFormatter.cjs.map +1 -1
  569. package/dist/private/i18n/useNumberFormatter.js.map +1 -1
  570. package/dist/private/i18n/useNumberFormatter.mjs.map +1 -1
  571. package/dist/private/i18n/utils.cjs +2 -2
  572. package/dist/private/i18n/utils.cjs.map +1 -1
  573. package/dist/private/i18n/utils.js +2 -2
  574. package/dist/private/i18n/utils.js.map +1 -1
  575. package/dist/private/i18n/utils.mjs +2 -2
  576. package/dist/private/i18n/utils.mjs.map +1 -1
  577. package/dist/private/interactions/PressResponder.cjs.map +1 -1
  578. package/dist/private/interactions/PressResponder.js.map +1 -1
  579. package/dist/private/interactions/PressResponder.mjs.map +1 -1
  580. package/dist/private/interactions/Pressable.cjs.map +1 -1
  581. package/dist/private/interactions/Pressable.js.map +1 -1
  582. package/dist/private/interactions/Pressable.mjs.map +1 -1
  583. package/dist/private/interactions/context.cjs.map +1 -1
  584. package/dist/private/interactions/context.js.map +1 -1
  585. package/dist/private/interactions/context.mjs.map +1 -1
  586. package/dist/private/interactions/createEventHandler.cjs +3 -0
  587. package/dist/private/interactions/createEventHandler.cjs.map +1 -1
  588. package/dist/private/interactions/createEventHandler.js +3 -0
  589. package/dist/private/interactions/createEventHandler.js.map +1 -1
  590. package/dist/private/interactions/createEventHandler.mjs +3 -0
  591. package/dist/private/interactions/createEventHandler.mjs.map +1 -1
  592. package/dist/private/interactions/focusSafely.cjs.map +1 -1
  593. package/dist/private/interactions/focusSafely.js.map +1 -1
  594. package/dist/private/interactions/focusSafely.mjs.map +1 -1
  595. package/dist/private/interactions/textSelection.cjs.map +1 -1
  596. package/dist/private/interactions/textSelection.js.map +1 -1
  597. package/dist/private/interactions/textSelection.mjs.map +1 -1
  598. package/dist/private/interactions/useFocus.cjs.map +1 -1
  599. package/dist/private/interactions/useFocus.js.map +1 -1
  600. package/dist/private/interactions/useFocus.mjs.map +1 -1
  601. package/dist/private/interactions/useFocusVisible.cjs +20 -8
  602. package/dist/private/interactions/useFocusVisible.cjs.map +1 -1
  603. package/dist/private/interactions/useFocusVisible.js +20 -8
  604. package/dist/private/interactions/useFocusVisible.js.map +1 -1
  605. package/dist/private/interactions/useFocusVisible.mjs +20 -8
  606. package/dist/private/interactions/useFocusVisible.mjs.map +1 -1
  607. package/dist/private/interactions/useFocusWithin.cjs.map +1 -1
  608. package/dist/private/interactions/useFocusWithin.js.map +1 -1
  609. package/dist/private/interactions/useFocusWithin.mjs.map +1 -1
  610. package/dist/private/interactions/useFocusable.cjs.map +1 -1
  611. package/dist/private/interactions/useFocusable.js.map +1 -1
  612. package/dist/private/interactions/useFocusable.mjs.map +1 -1
  613. package/dist/private/interactions/useHover.cjs.map +1 -1
  614. package/dist/private/interactions/useHover.js.map +1 -1
  615. package/dist/private/interactions/useHover.mjs.map +1 -1
  616. package/dist/private/interactions/useInteractOutside.cjs.map +1 -1
  617. package/dist/private/interactions/useInteractOutside.js.map +1 -1
  618. package/dist/private/interactions/useInteractOutside.mjs.map +1 -1
  619. package/dist/private/interactions/useKeyboard.cjs.map +1 -1
  620. package/dist/private/interactions/useKeyboard.js.map +1 -1
  621. package/dist/private/interactions/useKeyboard.mjs.map +1 -1
  622. package/dist/private/interactions/useLongPress.cjs.map +1 -1
  623. package/dist/private/interactions/useLongPress.js.map +1 -1
  624. package/dist/private/interactions/useLongPress.mjs.map +1 -1
  625. package/dist/private/interactions/useMove.cjs.map +1 -1
  626. package/dist/private/interactions/useMove.js.map +1 -1
  627. package/dist/private/interactions/useMove.mjs.map +1 -1
  628. package/dist/private/interactions/usePress.cjs +11 -0
  629. package/dist/private/interactions/usePress.cjs.map +1 -1
  630. package/dist/private/interactions/usePress.js +12 -1
  631. package/dist/private/interactions/usePress.js.map +1 -1
  632. package/dist/private/interactions/usePress.mjs +12 -1
  633. package/dist/private/interactions/usePress.mjs.map +1 -1
  634. package/dist/private/interactions/useScrollWheel.cjs.map +1 -1
  635. package/dist/private/interactions/useScrollWheel.js.map +1 -1
  636. package/dist/private/interactions/useScrollWheel.mjs.map +1 -1
  637. package/dist/private/interactions/utils.cjs.map +1 -1
  638. package/dist/private/interactions/utils.js.map +1 -1
  639. package/dist/private/interactions/utils.mjs.map +1 -1
  640. package/dist/private/intl/tag/en-US.cjs.map +1 -1
  641. package/dist/private/intl/tag/en-US.js.map +1 -1
  642. package/dist/private/intl/tag/en-US.mjs.map +1 -1
  643. package/dist/private/label/useField.cjs.map +1 -1
  644. package/dist/private/label/useField.js.map +1 -1
  645. package/dist/private/label/useField.mjs.map +1 -1
  646. package/dist/private/label/useLabel.cjs.map +1 -1
  647. package/dist/private/label/useLabel.js.map +1 -1
  648. package/dist/private/label/useLabel.mjs.map +1 -1
  649. package/dist/private/landmark/useLandmark.cjs +2 -1
  650. package/dist/private/landmark/useLandmark.cjs.map +1 -1
  651. package/dist/private/landmark/useLandmark.js +2 -1
  652. package/dist/private/landmark/useLandmark.js.map +1 -1
  653. package/dist/private/landmark/useLandmark.mjs +2 -1
  654. package/dist/private/landmark/useLandmark.mjs.map +1 -1
  655. package/dist/private/link/useLink.cjs.map +1 -1
  656. package/dist/private/link/useLink.js.map +1 -1
  657. package/dist/private/link/useLink.mjs.map +1 -1
  658. package/dist/private/listbox/useListBox.cjs.map +1 -1
  659. package/dist/private/listbox/useListBox.js.map +1 -1
  660. package/dist/private/listbox/useListBox.mjs.map +1 -1
  661. package/dist/private/listbox/useListBoxSection.cjs.map +1 -1
  662. package/dist/private/listbox/useListBoxSection.js.map +1 -1
  663. package/dist/private/listbox/useListBoxSection.mjs.map +1 -1
  664. package/dist/private/listbox/useOption.cjs.map +1 -1
  665. package/dist/private/listbox/useOption.js.map +1 -1
  666. package/dist/private/listbox/useOption.mjs.map +1 -1
  667. package/dist/private/listbox/utils.cjs.map +1 -1
  668. package/dist/private/listbox/utils.js.map +1 -1
  669. package/dist/private/listbox/utils.mjs.map +1 -1
  670. package/dist/private/live-announcer/LiveAnnouncer.cjs +2 -2
  671. package/dist/private/live-announcer/LiveAnnouncer.cjs.map +1 -1
  672. package/dist/private/live-announcer/LiveAnnouncer.js +2 -2
  673. package/dist/private/live-announcer/LiveAnnouncer.js.map +1 -1
  674. package/dist/private/live-announcer/LiveAnnouncer.mjs +2 -2
  675. package/dist/private/live-announcer/LiveAnnouncer.mjs.map +1 -1
  676. package/dist/private/menu/useMenu.cjs.map +1 -1
  677. package/dist/private/menu/useMenu.js.map +1 -1
  678. package/dist/private/menu/useMenu.mjs.map +1 -1
  679. package/dist/private/menu/useMenuItem.cjs +1 -1
  680. package/dist/private/menu/useMenuItem.cjs.map +1 -1
  681. package/dist/private/menu/useMenuItem.js +1 -1
  682. package/dist/private/menu/useMenuItem.js.map +1 -1
  683. package/dist/private/menu/useMenuItem.mjs +1 -1
  684. package/dist/private/menu/useMenuItem.mjs.map +1 -1
  685. package/dist/private/menu/useMenuSection.cjs.map +1 -1
  686. package/dist/private/menu/useMenuSection.js.map +1 -1
  687. package/dist/private/menu/useMenuSection.mjs.map +1 -1
  688. package/dist/private/menu/useMenuTrigger.cjs.map +1 -1
  689. package/dist/private/menu/useMenuTrigger.js.map +1 -1
  690. package/dist/private/menu/useMenuTrigger.mjs.map +1 -1
  691. package/dist/private/menu/useSafelyMouseToSubmenu.cjs.map +1 -1
  692. package/dist/private/menu/useSafelyMouseToSubmenu.js.map +1 -1
  693. package/dist/private/menu/useSafelyMouseToSubmenu.mjs.map +1 -1
  694. package/dist/private/menu/useSubmenuTrigger.cjs.map +1 -1
  695. package/dist/private/menu/useSubmenuTrigger.js.map +1 -1
  696. package/dist/private/menu/useSubmenuTrigger.mjs.map +1 -1
  697. package/dist/private/menu/utils.cjs.map +1 -1
  698. package/dist/private/menu/utils.js.map +1 -1
  699. package/dist/private/menu/utils.mjs.map +1 -1
  700. package/dist/private/meter/useMeter.cjs.map +1 -1
  701. package/dist/private/meter/useMeter.js.map +1 -1
  702. package/dist/private/meter/useMeter.mjs.map +1 -1
  703. package/dist/private/numberfield/useNumberField.cjs.map +1 -1
  704. package/dist/private/numberfield/useNumberField.js.map +1 -1
  705. package/dist/private/numberfield/useNumberField.mjs.map +1 -1
  706. package/dist/private/overlays/DismissButton.cjs.map +1 -1
  707. package/dist/private/overlays/DismissButton.js.map +1 -1
  708. package/dist/private/overlays/DismissButton.mjs.map +1 -1
  709. package/dist/private/overlays/Overlay.cjs.map +1 -1
  710. package/dist/private/overlays/Overlay.js.map +1 -1
  711. package/dist/private/overlays/Overlay.mjs.map +1 -1
  712. package/dist/private/overlays/PortalProvider.cjs.map +1 -1
  713. package/dist/private/overlays/PortalProvider.js.map +1 -1
  714. package/dist/private/overlays/PortalProvider.mjs.map +1 -1
  715. package/dist/private/overlays/ariaHideOutside.cjs.map +1 -1
  716. package/dist/private/overlays/ariaHideOutside.js.map +1 -1
  717. package/dist/private/overlays/ariaHideOutside.mjs.map +1 -1
  718. package/dist/private/overlays/calculatePosition.cjs +19 -20
  719. package/dist/private/overlays/calculatePosition.cjs.map +1 -1
  720. package/dist/private/overlays/calculatePosition.js +20 -21
  721. package/dist/private/overlays/calculatePosition.js.map +1 -1
  722. package/dist/private/overlays/calculatePosition.mjs +19 -20
  723. package/dist/private/overlays/calculatePosition.mjs.map +1 -1
  724. package/dist/private/overlays/useCloseOnScroll.cjs.map +1 -1
  725. package/dist/private/overlays/useCloseOnScroll.js.map +1 -1
  726. package/dist/private/overlays/useCloseOnScroll.mjs.map +1 -1
  727. package/dist/private/overlays/useModal.cjs.map +1 -1
  728. package/dist/private/overlays/useModal.js.map +1 -1
  729. package/dist/private/overlays/useModal.mjs.map +1 -1
  730. package/dist/private/overlays/useModalOverlay.cjs.map +1 -1
  731. package/dist/private/overlays/useModalOverlay.js.map +1 -1
  732. package/dist/private/overlays/useModalOverlay.mjs.map +1 -1
  733. package/dist/private/overlays/useOverlay.cjs.map +1 -1
  734. package/dist/private/overlays/useOverlay.js.map +1 -1
  735. package/dist/private/overlays/useOverlay.mjs.map +1 -1
  736. package/dist/private/overlays/useOverlayPosition.cjs +3 -2
  737. package/dist/private/overlays/useOverlayPosition.cjs.map +1 -1
  738. package/dist/private/overlays/useOverlayPosition.js +3 -2
  739. package/dist/private/overlays/useOverlayPosition.js.map +1 -1
  740. package/dist/private/overlays/useOverlayPosition.mjs +3 -2
  741. package/dist/private/overlays/useOverlayPosition.mjs.map +1 -1
  742. package/dist/private/overlays/useOverlayTrigger.cjs.map +1 -1
  743. package/dist/private/overlays/useOverlayTrigger.js.map +1 -1
  744. package/dist/private/overlays/useOverlayTrigger.mjs.map +1 -1
  745. package/dist/private/overlays/usePopover.cjs.map +1 -1
  746. package/dist/private/overlays/usePopover.js.map +1 -1
  747. package/dist/private/overlays/usePopover.mjs.map +1 -1
  748. package/dist/private/overlays/usePreventScroll.cjs.map +1 -1
  749. package/dist/private/overlays/usePreventScroll.js.map +1 -1
  750. package/dist/private/overlays/usePreventScroll.mjs.map +1 -1
  751. package/dist/private/progress/useProgressBar.cjs.map +1 -1
  752. package/dist/private/progress/useProgressBar.js.map +1 -1
  753. package/dist/private/progress/useProgressBar.mjs.map +1 -1
  754. package/dist/private/radio/useRadio.cjs +5 -0
  755. package/dist/private/radio/useRadio.cjs.map +1 -1
  756. package/dist/private/radio/useRadio.js +5 -0
  757. package/dist/private/radio/useRadio.js.map +1 -1
  758. package/dist/private/radio/useRadio.mjs +5 -0
  759. package/dist/private/radio/useRadio.mjs.map +1 -1
  760. package/dist/private/radio/useRadioGroup.cjs.map +1 -1
  761. package/dist/private/radio/useRadioGroup.js.map +1 -1
  762. package/dist/private/radio/useRadioGroup.mjs.map +1 -1
  763. package/dist/private/radio/utils.cjs.map +1 -1
  764. package/dist/private/radio/utils.js.map +1 -1
  765. package/dist/private/radio/utils.mjs.map +1 -1
  766. package/dist/private/searchfield/useSearchField.cjs.map +1 -1
  767. package/dist/private/searchfield/useSearchField.js.map +1 -1
  768. package/dist/private/searchfield/useSearchField.mjs.map +1 -1
  769. package/dist/private/select/HiddenSelect.cjs +2 -1
  770. package/dist/private/select/HiddenSelect.cjs.map +1 -1
  771. package/dist/private/select/HiddenSelect.js +2 -1
  772. package/dist/private/select/HiddenSelect.js.map +1 -1
  773. package/dist/private/select/HiddenSelect.mjs +2 -1
  774. package/dist/private/select/HiddenSelect.mjs.map +1 -1
  775. package/dist/private/select/useSelect.cjs +3 -4
  776. package/dist/private/select/useSelect.cjs.map +1 -1
  777. package/dist/private/select/useSelect.js +3 -4
  778. package/dist/private/select/useSelect.js.map +1 -1
  779. package/dist/private/select/useSelect.mjs +3 -4
  780. package/dist/private/select/useSelect.mjs.map +1 -1
  781. package/dist/private/selection/ListKeyboardDelegate.cjs +56 -28
  782. package/dist/private/selection/ListKeyboardDelegate.cjs.map +1 -1
  783. package/dist/private/selection/ListKeyboardDelegate.js +57 -29
  784. package/dist/private/selection/ListKeyboardDelegate.js.map +1 -1
  785. package/dist/private/selection/ListKeyboardDelegate.mjs +56 -28
  786. package/dist/private/selection/ListKeyboardDelegate.mjs.map +1 -1
  787. package/dist/private/selection/useSelectableCollection.cjs +21 -14
  788. package/dist/private/selection/useSelectableCollection.cjs.map +1 -1
  789. package/dist/private/selection/useSelectableCollection.js +27 -19
  790. package/dist/private/selection/useSelectableCollection.js.map +1 -1
  791. package/dist/private/selection/useSelectableCollection.mjs +21 -14
  792. package/dist/private/selection/useSelectableCollection.mjs.map +1 -1
  793. package/dist/private/selection/useSelectableItem.cjs.map +1 -1
  794. package/dist/private/selection/useSelectableItem.js.map +1 -1
  795. package/dist/private/selection/useSelectableItem.mjs.map +1 -1
  796. package/dist/private/selection/useSelectableList.cjs.map +1 -1
  797. package/dist/private/selection/useSelectableList.js.map +1 -1
  798. package/dist/private/selection/useSelectableList.mjs.map +1 -1
  799. package/dist/private/selection/useTypeSelect.cjs +50 -18
  800. package/dist/private/selection/useTypeSelect.cjs.map +1 -1
  801. package/dist/private/selection/useTypeSelect.js +51 -19
  802. package/dist/private/selection/useTypeSelect.js.map +1 -1
  803. package/dist/private/selection/useTypeSelect.mjs +51 -19
  804. package/dist/private/selection/useTypeSelect.mjs.map +1 -1
  805. package/dist/private/selection/utils.cjs.map +1 -1
  806. package/dist/private/selection/utils.js.map +1 -1
  807. package/dist/private/selection/utils.mjs.map +1 -1
  808. package/dist/private/separator/useSeparator.cjs.map +1 -1
  809. package/dist/private/separator/useSeparator.js.map +1 -1
  810. package/dist/private/separator/useSeparator.mjs.map +1 -1
  811. package/dist/private/slider/useSlider.cjs +4 -2
  812. package/dist/private/slider/useSlider.cjs.map +1 -1
  813. package/dist/private/slider/useSlider.js +4 -2
  814. package/dist/private/slider/useSlider.js.map +1 -1
  815. package/dist/private/slider/useSlider.mjs +4 -2
  816. package/dist/private/slider/useSlider.mjs.map +1 -1
  817. package/dist/private/slider/useSliderThumb.cjs.map +1 -1
  818. package/dist/private/slider/useSliderThumb.js.map +1 -1
  819. package/dist/private/slider/useSliderThumb.mjs.map +1 -1
  820. package/dist/private/slider/utils.cjs.map +1 -1
  821. package/dist/private/slider/utils.js.map +1 -1
  822. package/dist/private/slider/utils.mjs.map +1 -1
  823. package/dist/private/spinbutton/useSpinButton.cjs +2 -0
  824. package/dist/private/spinbutton/useSpinButton.cjs.map +1 -1
  825. package/dist/private/spinbutton/useSpinButton.js +2 -0
  826. package/dist/private/spinbutton/useSpinButton.js.map +1 -1
  827. package/dist/private/spinbutton/useSpinButton.mjs +2 -0
  828. package/dist/private/spinbutton/useSpinButton.mjs.map +1 -1
  829. package/dist/private/ssr/SSRProvider.cjs +6 -6
  830. package/dist/private/ssr/SSRProvider.cjs.map +1 -1
  831. package/dist/private/ssr/SSRProvider.js +6 -6
  832. package/dist/private/ssr/SSRProvider.js.map +1 -1
  833. package/dist/private/ssr/SSRProvider.mjs +6 -6
  834. package/dist/private/ssr/SSRProvider.mjs.map +1 -1
  835. package/dist/private/steplist/useStepList.cjs.map +1 -1
  836. package/dist/private/steplist/useStepList.js.map +1 -1
  837. package/dist/private/steplist/useStepList.mjs.map +1 -1
  838. package/dist/private/steplist/useStepListItem.cjs.map +1 -1
  839. package/dist/private/steplist/useStepListItem.js.map +1 -1
  840. package/dist/private/steplist/useStepListItem.mjs.map +1 -1
  841. package/dist/private/switch/useSwitch.cjs +2 -4
  842. package/dist/private/switch/useSwitch.cjs.map +1 -1
  843. package/dist/private/switch/useSwitch.js +2 -4
  844. package/dist/private/switch/useSwitch.js.map +1 -1
  845. package/dist/private/switch/useSwitch.mjs +2 -4
  846. package/dist/private/switch/useSwitch.mjs.map +1 -1
  847. package/dist/private/table/TableKeyboardDelegate.cjs +4 -4
  848. package/dist/private/table/TableKeyboardDelegate.cjs.map +1 -1
  849. package/dist/private/table/TableKeyboardDelegate.js +4 -4
  850. package/dist/private/table/TableKeyboardDelegate.js.map +1 -1
  851. package/dist/private/table/TableKeyboardDelegate.mjs +4 -4
  852. package/dist/private/table/TableKeyboardDelegate.mjs.map +1 -1
  853. package/dist/private/table/useTable.cjs.map +1 -1
  854. package/dist/private/table/useTable.js.map +1 -1
  855. package/dist/private/table/useTable.mjs.map +1 -1
  856. package/dist/private/table/useTableCell.cjs.map +1 -1
  857. package/dist/private/table/useTableCell.js.map +1 -1
  858. package/dist/private/table/useTableCell.mjs.map +1 -1
  859. package/dist/private/table/useTableColumnHeader.cjs.map +1 -1
  860. package/dist/private/table/useTableColumnHeader.js.map +1 -1
  861. package/dist/private/table/useTableColumnHeader.mjs.map +1 -1
  862. package/dist/private/table/useTableColumnResize.cjs +1 -1
  863. package/dist/private/table/useTableColumnResize.cjs.map +1 -1
  864. package/dist/private/table/useTableColumnResize.js +1 -1
  865. package/dist/private/table/useTableColumnResize.js.map +1 -1
  866. package/dist/private/table/useTableColumnResize.mjs +1 -1
  867. package/dist/private/table/useTableColumnResize.mjs.map +1 -1
  868. package/dist/private/table/useTableHeaderRow.cjs +2 -1
  869. package/dist/private/table/useTableHeaderRow.cjs.map +1 -1
  870. package/dist/private/table/useTableHeaderRow.js +2 -1
  871. package/dist/private/table/useTableHeaderRow.js.map +1 -1
  872. package/dist/private/table/useTableHeaderRow.mjs +2 -1
  873. package/dist/private/table/useTableHeaderRow.mjs.map +1 -1
  874. package/dist/private/table/useTableRow.cjs +2 -2
  875. package/dist/private/table/useTableRow.cjs.map +1 -1
  876. package/dist/private/table/useTableRow.js +2 -2
  877. package/dist/private/table/useTableRow.js.map +1 -1
  878. package/dist/private/table/useTableRow.mjs +2 -2
  879. package/dist/private/table/useTableRow.mjs.map +1 -1
  880. package/dist/private/table/useTableSelectionCheckbox.cjs.map +1 -1
  881. package/dist/private/table/useTableSelectionCheckbox.js.map +1 -1
  882. package/dist/private/table/useTableSelectionCheckbox.mjs.map +1 -1
  883. package/dist/private/table/utils.cjs.map +1 -1
  884. package/dist/private/table/utils.js.map +1 -1
  885. package/dist/private/table/utils.mjs.map +1 -1
  886. package/dist/private/tabs/TabsKeyboardDelegate.cjs +2 -2
  887. package/dist/private/tabs/TabsKeyboardDelegate.cjs.map +1 -1
  888. package/dist/private/tabs/TabsKeyboardDelegate.js +2 -2
  889. package/dist/private/tabs/TabsKeyboardDelegate.js.map +1 -1
  890. package/dist/private/tabs/TabsKeyboardDelegate.mjs +2 -2
  891. package/dist/private/tabs/TabsKeyboardDelegate.mjs.map +1 -1
  892. package/dist/private/tabs/useTab.cjs.map +1 -1
  893. package/dist/private/tabs/useTab.js.map +1 -1
  894. package/dist/private/tabs/useTab.mjs.map +1 -1
  895. package/dist/private/tabs/useTabList.cjs +10 -10
  896. package/dist/private/tabs/useTabList.cjs.map +1 -1
  897. package/dist/private/tabs/useTabList.js +10 -10
  898. package/dist/private/tabs/useTabList.js.map +1 -1
  899. package/dist/private/tabs/useTabList.mjs +10 -10
  900. package/dist/private/tabs/useTabList.mjs.map +1 -1
  901. package/dist/private/tabs/useTabPanel.cjs.map +1 -1
  902. package/dist/private/tabs/useTabPanel.js.map +1 -1
  903. package/dist/private/tabs/useTabPanel.mjs.map +1 -1
  904. package/dist/private/tabs/utils.cjs.map +1 -1
  905. package/dist/private/tabs/utils.js.map +1 -1
  906. package/dist/private/tabs/utils.mjs.map +1 -1
  907. package/dist/private/tag/useTag.cjs.map +1 -1
  908. package/dist/private/tag/useTag.js.map +1 -1
  909. package/dist/private/tag/useTag.mjs.map +1 -1
  910. package/dist/private/tag/useTagGroup.cjs.map +1 -1
  911. package/dist/private/tag/useTagGroup.js.map +1 -1
  912. package/dist/private/tag/useTagGroup.mjs.map +1 -1
  913. package/dist/private/textfield/useFormattedTextField.cjs.map +1 -1
  914. package/dist/private/textfield/useFormattedTextField.js.map +1 -1
  915. package/dist/private/textfield/useFormattedTextField.mjs.map +1 -1
  916. package/dist/private/textfield/useTextField.cjs.map +1 -1
  917. package/dist/private/textfield/useTextField.js.map +1 -1
  918. package/dist/private/textfield/useTextField.mjs.map +1 -1
  919. package/dist/private/toast/useToast.cjs +2 -1
  920. package/dist/private/toast/useToast.cjs.map +1 -1
  921. package/dist/private/toast/useToast.js +2 -1
  922. package/dist/private/toast/useToast.js.map +1 -1
  923. package/dist/private/toast/useToast.mjs +2 -1
  924. package/dist/private/toast/useToast.mjs.map +1 -1
  925. package/dist/private/toast/useToastRegion.cjs.map +1 -1
  926. package/dist/private/toast/useToastRegion.js.map +1 -1
  927. package/dist/private/toast/useToastRegion.mjs.map +1 -1
  928. package/dist/private/toggle/useToggle.cjs +70 -8
  929. package/dist/private/toggle/useToggle.cjs.map +1 -1
  930. package/dist/private/toggle/useToggle.js +70 -8
  931. package/dist/private/toggle/useToggle.js.map +1 -1
  932. package/dist/private/toggle/useToggle.mjs +70 -8
  933. package/dist/private/toggle/useToggle.mjs.map +1 -1
  934. package/dist/private/toolbar/useToolbar.cjs +0 -1
  935. package/dist/private/toolbar/useToolbar.cjs.map +1 -1
  936. package/dist/private/toolbar/useToolbar.js +0 -1
  937. package/dist/private/toolbar/useToolbar.js.map +1 -1
  938. package/dist/private/toolbar/useToolbar.mjs +0 -1
  939. package/dist/private/toolbar/useToolbar.mjs.map +1 -1
  940. package/dist/private/tooltip/useTooltip.cjs.map +1 -1
  941. package/dist/private/tooltip/useTooltip.js.map +1 -1
  942. package/dist/private/tooltip/useTooltip.mjs.map +1 -1
  943. package/dist/private/tooltip/useTooltipTrigger.cjs.map +1 -1
  944. package/dist/private/tooltip/useTooltipTrigger.js.map +1 -1
  945. package/dist/private/tooltip/useTooltipTrigger.mjs.map +1 -1
  946. package/dist/private/tree/useTree.cjs.map +1 -1
  947. package/dist/private/tree/useTree.js.map +1 -1
  948. package/dist/private/tree/useTree.mjs.map +1 -1
  949. package/dist/private/tree/useTreeItem.cjs.map +1 -1
  950. package/dist/private/tree/useTreeItem.js.map +1 -1
  951. package/dist/private/tree/useTreeItem.mjs.map +1 -1
  952. package/dist/private/utils/animation.cjs.map +1 -1
  953. package/dist/private/utils/animation.js.map +1 -1
  954. package/dist/private/utils/animation.mjs.map +1 -1
  955. package/dist/private/utils/domHelpers.cjs +2 -1
  956. package/dist/private/utils/domHelpers.cjs.map +1 -1
  957. package/dist/private/utils/domHelpers.js +2 -1
  958. package/dist/private/utils/domHelpers.js.map +1 -1
  959. package/dist/private/utils/domHelpers.mjs +2 -1
  960. package/dist/private/utils/domHelpers.mjs.map +1 -1
  961. package/dist/private/utils/filterDOMProps.cjs.map +1 -1
  962. package/dist/private/utils/filterDOMProps.js.map +1 -1
  963. package/dist/private/utils/filterDOMProps.mjs.map +1 -1
  964. package/dist/private/utils/focusWithoutScrolling.cjs.map +1 -1
  965. package/dist/private/utils/focusWithoutScrolling.js.map +1 -1
  966. package/dist/private/utils/focusWithoutScrolling.mjs.map +1 -1
  967. package/dist/private/utils/getNonce.cjs.map +1 -1
  968. package/dist/private/utils/getNonce.js.map +1 -1
  969. package/dist/private/utils/getNonce.mjs.map +1 -1
  970. package/dist/private/utils/getOffset.cjs.map +1 -1
  971. package/dist/private/utils/getOffset.js.map +1 -1
  972. package/dist/private/utils/getOffset.mjs.map +1 -1
  973. package/dist/private/utils/getScrollParent.cjs.map +1 -1
  974. package/dist/private/utils/getScrollParent.js.map +1 -1
  975. package/dist/private/utils/getScrollParent.mjs.map +1 -1
  976. package/dist/private/utils/getScrollParents.cjs +3 -2
  977. package/dist/private/utils/getScrollParents.cjs.map +1 -1
  978. package/dist/private/utils/getScrollParents.js +3 -2
  979. package/dist/private/utils/getScrollParents.js.map +1 -1
  980. package/dist/private/utils/getScrollParents.mjs +3 -2
  981. package/dist/private/utils/getScrollParents.mjs.map +1 -1
  982. package/dist/private/utils/isElementVisible.cjs +1 -1
  983. package/dist/private/utils/isElementVisible.cjs.map +1 -1
  984. package/dist/private/utils/isElementVisible.js +1 -1
  985. package/dist/private/utils/isElementVisible.js.map +1 -1
  986. package/dist/private/utils/isElementVisible.mjs +1 -1
  987. package/dist/private/utils/isElementVisible.mjs.map +1 -1
  988. package/dist/private/utils/isFocusable.cjs +3 -1
  989. package/dist/private/utils/isFocusable.cjs.map +1 -1
  990. package/dist/private/utils/isFocusable.js +3 -1
  991. package/dist/private/utils/isFocusable.js.map +1 -1
  992. package/dist/private/utils/isFocusable.mjs +3 -1
  993. package/dist/private/utils/isFocusable.mjs.map +1 -1
  994. package/dist/private/utils/isVirtualEvent.cjs.map +1 -1
  995. package/dist/private/utils/isVirtualEvent.js.map +1 -1
  996. package/dist/private/utils/isVirtualEvent.mjs.map +1 -1
  997. package/dist/private/utils/keyboard.cjs.map +1 -1
  998. package/dist/private/utils/keyboard.js.map +1 -1
  999. package/dist/private/utils/keyboard.mjs.map +1 -1
  1000. package/dist/private/utils/mergeProps.cjs.map +1 -1
  1001. package/dist/private/utils/mergeProps.js.map +1 -1
  1002. package/dist/private/utils/mergeProps.mjs.map +1 -1
  1003. package/dist/private/utils/mergeRefs.cjs.map +1 -1
  1004. package/dist/private/utils/mergeRefs.js.map +1 -1
  1005. package/dist/private/utils/mergeRefs.mjs.map +1 -1
  1006. package/dist/private/utils/openLink.cjs +12 -8
  1007. package/dist/private/utils/openLink.cjs.map +1 -1
  1008. package/dist/private/utils/openLink.js +12 -8
  1009. package/dist/private/utils/openLink.js.map +1 -1
  1010. package/dist/private/utils/openLink.mjs +12 -8
  1011. package/dist/private/utils/openLink.mjs.map +1 -1
  1012. package/dist/private/utils/platform.cjs.map +1 -1
  1013. package/dist/private/utils/platform.js.map +1 -1
  1014. package/dist/private/utils/platform.mjs.map +1 -1
  1015. package/dist/private/utils/scrollIntoView.cjs +21 -18
  1016. package/dist/private/utils/scrollIntoView.cjs.map +1 -1
  1017. package/dist/private/utils/scrollIntoView.js +21 -18
  1018. package/dist/private/utils/scrollIntoView.js.map +1 -1
  1019. package/dist/private/utils/scrollIntoView.mjs +21 -18
  1020. package/dist/private/utils/scrollIntoView.mjs.map +1 -1
  1021. package/dist/private/utils/shadowdom/DOMFunctions.cjs.map +1 -1
  1022. package/dist/private/utils/shadowdom/DOMFunctions.js.map +1 -1
  1023. package/dist/private/utils/shadowdom/DOMFunctions.mjs.map +1 -1
  1024. package/dist/private/utils/shadowdom/ShadowTreeWalker.cjs +6 -6
  1025. package/dist/private/utils/shadowdom/ShadowTreeWalker.cjs.map +1 -1
  1026. package/dist/private/utils/shadowdom/ShadowTreeWalker.js +6 -6
  1027. package/dist/private/utils/shadowdom/ShadowTreeWalker.js.map +1 -1
  1028. package/dist/private/utils/shadowdom/ShadowTreeWalker.mjs +6 -6
  1029. package/dist/private/utils/shadowdom/ShadowTreeWalker.mjs.map +1 -1
  1030. package/dist/private/utils/useDeepMemo.cjs +1 -1
  1031. package/dist/private/utils/useDeepMemo.cjs.map +1 -1
  1032. package/dist/private/utils/useDeepMemo.js +1 -1
  1033. package/dist/private/utils/useDeepMemo.js.map +1 -1
  1034. package/dist/private/utils/useDeepMemo.mjs +1 -1
  1035. package/dist/private/utils/useDeepMemo.mjs.map +1 -1
  1036. package/dist/private/utils/useDescription.cjs.map +1 -1
  1037. package/dist/private/utils/useDescription.js.map +1 -1
  1038. package/dist/private/utils/useDescription.mjs.map +1 -1
  1039. package/dist/private/utils/useDrag1D.cjs +1 -1
  1040. package/dist/private/utils/useDrag1D.cjs.map +1 -1
  1041. package/dist/private/utils/useDrag1D.js +1 -1
  1042. package/dist/private/utils/useDrag1D.js.map +1 -1
  1043. package/dist/private/utils/useDrag1D.mjs +1 -1
  1044. package/dist/private/utils/useDrag1D.mjs.map +1 -1
  1045. package/dist/private/utils/useFormReset.cjs.map +1 -1
  1046. package/dist/private/utils/useFormReset.js.map +1 -1
  1047. package/dist/private/utils/useFormReset.mjs.map +1 -1
  1048. package/dist/private/utils/useGlobalListeners.cjs.map +1 -1
  1049. package/dist/private/utils/useGlobalListeners.js.map +1 -1
  1050. package/dist/private/utils/useGlobalListeners.mjs.map +1 -1
  1051. package/dist/private/utils/useId.cjs.map +1 -1
  1052. package/dist/private/utils/useId.js.map +1 -1
  1053. package/dist/private/utils/useId.mjs.map +1 -1
  1054. package/dist/private/utils/useLabels.cjs.map +1 -1
  1055. package/dist/private/utils/useLabels.js.map +1 -1
  1056. package/dist/private/utils/useLabels.mjs.map +1 -1
  1057. package/dist/private/utils/useLayoutEffect.cjs.map +1 -1
  1058. package/dist/private/utils/useLayoutEffect.js.map +1 -1
  1059. package/dist/private/utils/useLayoutEffect.mjs.map +1 -1
  1060. package/dist/private/utils/useLoadMore.cjs.map +1 -1
  1061. package/dist/private/utils/useLoadMore.js.map +1 -1
  1062. package/dist/private/utils/useLoadMore.mjs.map +1 -1
  1063. package/dist/private/utils/useLoadMoreSentinel.cjs.map +1 -1
  1064. package/dist/private/utils/useLoadMoreSentinel.js.map +1 -1
  1065. package/dist/private/utils/useLoadMoreSentinel.mjs.map +1 -1
  1066. package/dist/private/utils/useObjectRef.cjs.map +1 -1
  1067. package/dist/private/utils/useObjectRef.js.map +1 -1
  1068. package/dist/private/utils/useObjectRef.mjs.map +1 -1
  1069. package/dist/private/utils/useResizeObserver.cjs.map +1 -1
  1070. package/dist/private/utils/useResizeObserver.js.map +1 -1
  1071. package/dist/private/utils/useResizeObserver.mjs.map +1 -1
  1072. package/dist/private/utils/useSlot.cjs +54 -0
  1073. package/dist/private/utils/useSlot.cjs.map +1 -0
  1074. package/dist/private/utils/useSlot.js +49 -0
  1075. package/dist/private/utils/useSlot.js.map +1 -0
  1076. package/dist/private/utils/useSlot.mjs +49 -0
  1077. package/dist/private/utils/useSlot.mjs.map +1 -0
  1078. package/dist/private/utils/useSyncRef.cjs +2 -1
  1079. package/dist/private/utils/useSyncRef.cjs.map +1 -1
  1080. package/dist/private/utils/useSyncRef.js +2 -1
  1081. package/dist/private/utils/useSyncRef.js.map +1 -1
  1082. package/dist/private/utils/useSyncRef.mjs +2 -1
  1083. package/dist/private/utils/useSyncRef.mjs.map +1 -1
  1084. package/dist/private/utils/useUpdateEffect.cjs.map +1 -1
  1085. package/dist/private/utils/useUpdateEffect.js.map +1 -1
  1086. package/dist/private/utils/useUpdateEffect.mjs.map +1 -1
  1087. package/dist/private/utils/useValueEffect.cjs.map +1 -1
  1088. package/dist/private/utils/useValueEffect.js.map +1 -1
  1089. package/dist/private/utils/useValueEffect.mjs.map +1 -1
  1090. package/dist/private/utils/useViewportSize.cjs +3 -1
  1091. package/dist/private/utils/useViewportSize.cjs.map +1 -1
  1092. package/dist/private/utils/useViewportSize.js +3 -1
  1093. package/dist/private/utils/useViewportSize.js.map +1 -1
  1094. package/dist/private/utils/useViewportSize.mjs +3 -1
  1095. package/dist/private/utils/useViewportSize.mjs.map +1 -1
  1096. package/dist/private/virtualizer/ScrollView.cjs +2 -2
  1097. package/dist/private/virtualizer/ScrollView.cjs.map +1 -1
  1098. package/dist/private/virtualizer/ScrollView.js +2 -2
  1099. package/dist/private/virtualizer/ScrollView.js.map +1 -1
  1100. package/dist/private/virtualizer/ScrollView.mjs +2 -2
  1101. package/dist/private/virtualizer/ScrollView.mjs.map +1 -1
  1102. package/dist/private/virtualizer/Virtualizer.cjs.map +1 -1
  1103. package/dist/private/virtualizer/Virtualizer.js.map +1 -1
  1104. package/dist/private/virtualizer/Virtualizer.mjs.map +1 -1
  1105. package/dist/private/virtualizer/VirtualizerItem.cjs.map +1 -1
  1106. package/dist/private/virtualizer/VirtualizerItem.js.map +1 -1
  1107. package/dist/private/virtualizer/VirtualizerItem.mjs.map +1 -1
  1108. package/dist/private/virtualizer/useVirtualizerItem.cjs.map +1 -1
  1109. package/dist/private/virtualizer/useVirtualizerItem.js.map +1 -1
  1110. package/dist/private/virtualizer/useVirtualizerItem.mjs.map +1 -1
  1111. package/dist/private/virtualizer/utils.cjs.map +1 -1
  1112. package/dist/private/virtualizer/utils.js.map +1 -1
  1113. package/dist/private/virtualizer/utils.mjs.map +1 -1
  1114. package/dist/private/visually-hidden/VisuallyHidden.cjs.map +1 -1
  1115. package/dist/private/visually-hidden/VisuallyHidden.js.map +1 -1
  1116. package/dist/private/visually-hidden/VisuallyHidden.mjs.map +1 -1
  1117. package/dist/types/exports/index.d.ts +7 -0
  1118. package/dist/types/exports/useCalendar.d.ts +6 -0
  1119. package/dist/types/exports/useRangeCalendar.d.ts +11 -0
  1120. package/dist/types/src/actiongroup/useActionGroup.d.ts +5 -1
  1121. package/dist/types/src/aria-modal-polyfill/ariaModalPolyfill.d.ts +2 -1
  1122. package/dist/types/src/autocomplete/useAutocomplete.d.ts +21 -9
  1123. package/dist/types/src/autocomplete/useSearchAutocomplete.d.ts +15 -8
  1124. package/dist/types/src/breadcrumbs/useBreadcrumbItem.d.ts +2 -0
  1125. package/dist/types/src/button/useButton.d.ts +25 -7
  1126. package/dist/types/src/button/useToggleButtonGroup.d.ts +1 -0
  1127. package/dist/types/src/calendar/useCalendar.d.ts +3 -3
  1128. package/dist/types/src/calendar/useCalendarBase.d.ts +2 -2
  1129. package/dist/types/src/calendar/useCalendarCell.d.ts +9 -8
  1130. package/dist/types/src/calendar/useCalendarGrid.d.ts +8 -4
  1131. package/dist/types/src/calendar/useCalendarHeading.d.ts +22 -0
  1132. package/dist/types/src/calendar/useCalendarMonthPicker.d.ts +22 -0
  1133. package/dist/types/src/calendar/useCalendarYearPicker.d.ts +32 -0
  1134. package/dist/types/src/calendar/useRangeCalendar.d.ts +5 -5
  1135. package/dist/types/src/calendar/utils.d.ts +3 -3
  1136. package/dist/types/src/checkbox/useCheckbox.d.ts +6 -1
  1137. package/dist/types/src/checkbox/useCheckboxGroup.d.ts +1 -0
  1138. package/dist/types/src/checkbox/useCheckboxGroupItem.d.ts +3 -2
  1139. package/dist/types/src/collections/CollectionBuilder.d.ts +8 -7
  1140. package/dist/types/src/collections/useCachedChildren.d.ts +1 -1
  1141. package/dist/types/src/color/useColorArea.d.ts +7 -4
  1142. package/dist/types/src/color/useColorChannelField.d.ts +2 -2
  1143. package/dist/types/src/combobox/useComboBox.d.ts +5 -3
  1144. package/dist/types/src/datepicker/useDateField.d.ts +2 -1
  1145. package/dist/types/src/datepicker/useDatePicker.d.ts +5 -3
  1146. package/dist/types/src/dialog/useDialog.d.ts +1 -0
  1147. package/dist/types/src/disclosure/useDisclosure.d.ts +1 -0
  1148. package/dist/types/src/dnd/ListDropTargetDelegate.d.ts +3 -0
  1149. package/dist/types/src/dnd/useDrag.d.ts +11 -4
  1150. package/dist/types/src/dnd/useDraggableCollection.d.ts +2 -2
  1151. package/dist/types/src/dnd/useDraggableItem.d.ts +7 -6
  1152. package/dist/types/src/dnd/useDrop.d.ts +5 -4
  1153. package/dist/types/src/dnd/useDroppableCollection.d.ts +2 -2
  1154. package/dist/types/src/dnd/utils.d.ts +3 -3
  1155. package/dist/types/src/focus/FocusRing.d.ts +1 -0
  1156. package/dist/types/src/focus/useFocusRing.d.ts +1 -0
  1157. package/dist/types/src/focus/useHasTabbableChild.d.ts +1 -0
  1158. package/dist/types/src/grid/GridKeyboardDelegate.d.ts +8 -4
  1159. package/dist/types/src/grid/useGrid.d.ts +12 -4
  1160. package/dist/types/src/grid/useGridCell.d.ts +11 -3
  1161. package/dist/types/src/grid/useGridRow.d.ts +7 -2
  1162. package/dist/types/src/grid/useGridSelectionAnnouncement.d.ts +3 -1
  1163. package/dist/types/src/grid/useGridSelectionCheckbox.d.ts +1 -0
  1164. package/dist/types/src/grid/useHighlightSelectionDescription.d.ts +1 -0
  1165. package/dist/types/src/gridlist/useGridList.d.ts +20 -5
  1166. package/dist/types/src/gridlist/useGridListItem.d.ts +5 -1
  1167. package/dist/types/src/gridlist/useGridListSection.d.ts +1 -0
  1168. package/dist/types/src/gridlist/useGridListSelectionCheckbox.d.ts +1 -0
  1169. package/dist/types/src/i18n/useCollator.d.ts +3 -2
  1170. package/dist/types/src/i18n/useDateFormatter.d.ts +3 -2
  1171. package/dist/types/src/i18n/useFilter.d.ts +3 -2
  1172. package/dist/types/src/i18n/useListFormatter.d.ts +3 -2
  1173. package/dist/types/src/i18n/useLocalizedStringFormatter.d.ts +3 -1
  1174. package/dist/types/src/i18n/useNumberFormatter.d.ts +3 -2
  1175. package/dist/types/src/i18n/utils.d.ts +2 -1
  1176. package/dist/types/src/interactions/createEventHandler.d.ts +2 -1
  1177. package/dist/types/src/interactions/useFocusVisible.d.ts +11 -9
  1178. package/dist/types/src/interactions/useLongPress.d.ts +3 -2
  1179. package/dist/types/src/interactions/utils.d.ts +4 -3
  1180. package/dist/types/src/label/useField.d.ts +3 -2
  1181. package/dist/types/src/label/useLabel.d.ts +2 -0
  1182. package/dist/types/src/landmark/useLandmark.d.ts +4 -1
  1183. package/dist/types/src/link/useLink.d.ts +1 -0
  1184. package/dist/types/src/listbox/useListBox.d.ts +8 -3
  1185. package/dist/types/src/listbox/useListBoxSection.d.ts +1 -0
  1186. package/dist/types/src/listbox/useOption.d.ts +7 -0
  1187. package/dist/types/src/menu/useMenu.d.ts +3 -1
  1188. package/dist/types/src/menu/useMenuItem.d.ts +10 -1
  1189. package/dist/types/src/menu/useMenuSection.d.ts +1 -0
  1190. package/dist/types/src/menu/useMenuTrigger.d.ts +1 -0
  1191. package/dist/types/src/menu/useSafelyMouseToSubmenu.d.ts +3 -2
  1192. package/dist/types/src/menu/useSubmenuTrigger.d.ts +7 -2
  1193. package/dist/types/src/menu/utils.d.ts +1 -1
  1194. package/dist/types/src/numberfield/useNumberField.d.ts +11 -4
  1195. package/dist/types/src/overlays/Overlay.d.ts +1 -0
  1196. package/dist/types/src/overlays/PortalProvider.d.ts +4 -1
  1197. package/dist/types/src/overlays/ariaHideOutside.d.ts +1 -0
  1198. package/dist/types/src/overlays/calculatePosition.d.ts +3 -1
  1199. package/dist/types/src/overlays/useModal.d.ts +8 -7
  1200. package/dist/types/src/overlays/useModalOverlay.d.ts +2 -0
  1201. package/dist/types/src/overlays/useOverlay.d.ts +2 -0
  1202. package/dist/types/src/overlays/useOverlayPosition.d.ts +18 -0
  1203. package/dist/types/src/progress/useProgressBar.d.ts +5 -1
  1204. package/dist/types/src/radio/useRadio.d.ts +4 -1
  1205. package/dist/types/src/radio/useRadioGroup.d.ts +1 -0
  1206. package/dist/types/src/searchfield/useSearchField.d.ts +7 -2
  1207. package/dist/types/src/select/HiddenSelect.d.ts +2 -1
  1208. package/dist/types/src/select/useSelect.d.ts +3 -1
  1209. package/dist/types/src/selection/ListKeyboardDelegate.d.ts +19 -6
  1210. package/dist/types/src/selection/useSelectableCollection.d.ts +17 -2
  1211. package/dist/types/src/selection/useSelectableItem.d.ts +9 -7
  1212. package/dist/types/src/selection/useSelectableList.d.ts +5 -2
  1213. package/dist/types/src/separator/useSeparator.d.ts +1 -0
  1214. package/dist/types/src/slider/useSlider.d.ts +5 -4
  1215. package/dist/types/src/slider/useSliderThumb.d.ts +3 -1
  1216. package/dist/types/src/switch/useSwitch.d.ts +14 -27
  1217. package/dist/types/src/table/TableKeyboardDelegate.d.ts +6 -2
  1218. package/dist/types/src/table/useTable.d.ts +8 -4
  1219. package/dist/types/src/table/useTableCell.d.ts +7 -2
  1220. package/dist/types/src/table/useTableColumnHeader.d.ts +9 -2
  1221. package/dist/types/src/table/useTableColumnResize.d.ts +12 -6
  1222. package/dist/types/src/table/useTableHeaderRow.d.ts +1 -0
  1223. package/dist/types/src/table/useTableRow.d.ts +1 -0
  1224. package/dist/types/src/table/useTableSelectionCheckbox.d.ts +2 -0
  1225. package/dist/types/src/tabs/useTabList.d.ts +2 -0
  1226. package/dist/types/src/tabs/useTabPanel.d.ts +2 -2
  1227. package/dist/types/src/tag/useTag.d.ts +1 -0
  1228. package/dist/types/src/tag/useTagGroup.d.ts +7 -3
  1229. package/dist/types/src/textfield/useTextField.d.ts +26 -11
  1230. package/dist/types/src/toast/useToast.d.ts +2 -2
  1231. package/dist/types/src/toast/useToastRegion.d.ts +5 -3
  1232. package/dist/types/src/toggle/useToggle.d.ts +8 -3
  1233. package/dist/types/src/toolbar/useToolbar.d.ts +2 -0
  1234. package/dist/types/src/tree/useTree.d.ts +5 -3
  1235. package/dist/types/src/tree/useTreeItem.d.ts +5 -1
  1236. package/dist/types/src/utils/filterDOMProps.d.ts +1 -0
  1237. package/dist/types/src/utils/getNonce.d.ts +3 -2
  1238. package/dist/types/src/utils/isElementVisible.d.ts +1 -0
  1239. package/dist/types/src/utils/mergeProps.d.ts +3 -2
  1240. package/dist/types/src/utils/scrollIntoView.d.ts +5 -3
  1241. package/dist/types/src/utils/shadowdom/DOMFunctions.d.ts +1 -0
  1242. package/dist/types/src/utils/useId.d.ts +2 -0
  1243. package/dist/types/src/utils/useLabels.d.ts +1 -0
  1244. package/dist/types/src/utils/useLoadMore.d.ts +6 -4
  1245. package/dist/types/src/utils/useLoadMoreSentinel.d.ts +5 -3
  1246. package/dist/types/src/utils/useSlot.d.ts +8 -0
  1247. package/dist/types/src/visually-hidden/VisuallyHidden.d.ts +1 -0
  1248. package/package.json +10 -8
@@ -1 +1 @@
1
- {"mappings":"AAAA;;;;;;;;;;CAUC,GAmBM,MAAM,4CAA+E,IAAI","sources":["packages/react-aria/src/grid/utils.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 type {IGridCollection as GridCollection} from 'react-stately/private/grid/GridCollection';\n\nimport type {GridState} from 'react-stately/private/grid/useGridState';\nimport type {Key, KeyboardDelegate} from '@react-types/shared';\n\ninterface GridMapShared {\n keyboardDelegate: KeyboardDelegate,\n actions: {\n onRowAction?: (key: Key) => void,\n onCellAction?: (key: Key) => void\n },\n shouldSelectOnPressUp?: boolean\n}\n\n// Used to share:\n// keyboard delegate between useGrid and useGridCell\n// onRowAction/onCellAction across hooks\nexport const gridMap: WeakMap<GridState<unknown, GridCollection<unknown>>, GridMapShared> = new WeakMap<GridState<unknown, GridCollection<unknown>>, GridMapShared>();\n"],"names":[],"version":3,"file":"utils.mjs.map"}
1
+ {"mappings":"AAAA;;;;;;;;;;CAUC,GAmBM,MAAM,4CAGT,IAAI","sources":["packages/react-aria/src/grid/utils.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 type {IGridCollection as GridCollection} from 'react-stately/private/grid/GridCollection';\n\nimport type {GridState} from 'react-stately/private/grid/useGridState';\nimport type {Key, KeyboardDelegate} from '@react-types/shared';\n\ninterface GridMapShared {\n keyboardDelegate: KeyboardDelegate;\n actions: {\n onRowAction?: (key: Key) => void;\n onCellAction?: (key: Key) => void;\n };\n shouldSelectOnPressUp?: boolean;\n}\n\n// Used to share:\n// keyboard delegate between useGrid and useGridCell\n// onRowAction/onCellAction across hooks\nexport const gridMap: WeakMap<\n GridState<unknown, GridCollection<unknown>>,\n GridMapShared\n> = new WeakMap<GridState<unknown, GridCollection<unknown>>, GridMapShared>();\n"],"names":[],"version":3,"file":"utils.mjs.map"}
@@ -47,7 +47,8 @@ function $9a37293f310f6644$export$664f9155035607eb(props, state, ref) {
47
47
  linkBehavior: linkBehavior,
48
48
  disallowTypeAhead: disallowTypeAhead,
49
49
  autoFocus: props.autoFocus,
50
- escapeKeyBehavior: escapeKeyBehavior
50
+ escapeKeyBehavior: escapeKeyBehavior,
51
+ UNSTABLE_focusOnEntry: props.UNSTABLE_focusOnEntry
51
52
  });
52
53
  let id = (0, $7ac82d1fee77eb8a$exports.useId)(props.id);
53
54
  (0, $daad9bac4699131f$exports.listMap).set(state, {
@@ -1 +1 @@
1
- {"mappings":";;;;;;;;;;;;;;;AAAA;;;;;;;;;;CAUC;;;;;;;;AA0GM,SAAS,0CAAe,KAA6B,EAAE,KAAmB,EAAE,GAAkC;IACnH,IAAI,iBACF,aAAa,oBACb,gBAAgB,kBAChB,cAAc,YACd,QAAQ,qBACR,iBAAiB,gBACjB,eAAe,sCACf,6BAA6B,4BAC7B,oBAAoB,yCACpB,qBAAqB,EACtB,GAAG;IAEJ,IAAI,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,kBAAkB,EACnD,QAAQ,IAAI,CAAC;IAGf,IAAI,aAAC,SAAS,EAAC,GAAG,CAAA,GAAA,2CAAgB,EAAE;QAClC,kBAAkB,MAAM,gBAAgB;QACxC,YAAY,MAAM,UAAU;QAC5B,cAAc,MAAM,YAAY;aAChC;0BACA;wBACA;uBACA;QACA,eAAe,MAAM,gBAAgB,CAAC,iBAAiB,KAAK;QAC5D,iBAAiB,MAAM,eAAe;sBACtC;2BACA;QACA,WAAW,MAAM,SAAS;2BAC1B;IACF;IAEA,IAAI,KAAK,CAAA,GAAA,+BAAI,EAAE,MAAM,EAAE;IACvB,CAAA,GAAA,iCAAM,EAAE,GAAG,CAAC,OAAO;YAAC;kBAAI;sBAAU;oCAAc;+BAA4B;IAAqB;IAEjG,IAAI,mBAAmB,CAAA,GAAA,0DAA+B,EAAE;QACtD,kBAAkB,MAAM,gBAAgB;QACxC,gBAAgB,CAAC,CAAC;IACpB;IAEA,IAAI,mBAAmB,CAAA,GAAA,6CAAkB,EAAE,KAAK;QAC9C,YAAY,MAAM,UAAU,CAAC,IAAI,KAAK;IACxC;IAEA,IAAI,WAAW,CAAA,GAAA,wCAAa,EAAE,OAAO;QAAC,WAAW;IAAI;IACrD,IAAI,YAA2B,CAAA,GAAA,oCAAS,EACtC,UACA;QACE,MAAM;YACN;QACA,wBAAwB,MAAM,gBAAgB,CAAC,aAAa,KAAK,aAAa,SAAS;IACzF,GACA,mGAAmG;IACnG,MAAM,UAAU,CAAC,IAAI,KAAK,IAAI;QAAC,UAAU,mBAAmB,KAAK;IAAC,IAAI,WACtE;IAGF,IAAI,eAAe;QACjB,SAAS,CAAC,gBAAgB,GAAG,MAAM,UAAU,CAAC,IAAI;QAClD,SAAS,CAAC,gBAAgB,GAAG;IAC/B;IAEA,CAAA,GAAA,sDAA2B,EAAE,CAAC,GAAG;IAEjC,OAAO;mBACL;IACF;AACF","sources":["packages/react-aria/src/gridlist/useGridList.ts"],"sourcesContent":["/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n AriaLabelingProps,\n CollectionBase,\n DisabledBehavior,\n DOMAttributes,\n DOMProps,\n FocusStrategy,\n Key,\n KeyboardDelegate,\n LayoutDelegate,\n MultipleSelection,\n RefObject\n} from '@react-types/shared';\nimport {filterDOMProps} from '../utils/filterDOMProps';\nimport {listMap} from './utils';\nimport {ListState} from 'react-stately/useListState';\nimport {mergeProps} from '../utils/mergeProps';\nimport {useGridSelectionAnnouncement} from '../grid/useGridSelectionAnnouncement';\nimport {useHasTabbableChild} from '../focus/useHasTabbableChild';\nimport {useHighlightSelectionDescription} from '../grid/useHighlightSelectionDescription';\nimport {useId} from '../utils/useId';\nimport {useSelectableList} from '../selection/useSelectableList';\n\nexport interface GridListProps<T> extends CollectionBase<T>, MultipleSelection {\n /** Whether to auto focus the gridlist or an option. */\n autoFocus?: boolean | FocusStrategy,\n /**\n * Handler that is called when a user performs an action on an item. The exact user event depends on\n * the collection's `selectionBehavior` prop and the interaction modality.\n */\n onAction?: (key: Key) => void,\n /**\n * Whether `disabledKeys` applies to all interactions, or only selection.\n * @default \"all\"\n */\n disabledBehavior?: DisabledBehavior,\n /** Whether selection should occur on press up instead of press down. */\n shouldSelectOnPressUp?: boolean\n}\n\nexport interface AriaGridListProps<T> extends GridListProps<T>, DOMProps, AriaLabelingProps {\n /**\n * Whether keyboard navigation to focusable elements within grid list items is\n * via the left/right arrow keys or the tab key.\n * @default 'arrow'\n */\n keyboardNavigationBehavior?: 'arrow' | 'tab',\n /**\n * Whether pressing the escape key should clear selection in the grid list or not.\n *\n * Most experiences should not modify this option as it eliminates a keyboard user's ability to\n * easily clear selection. Only use if the escape key is being handled externally or should not\n * trigger selection clearing contextually.\n * @default 'clearSelection'\n */\n escapeKeyBehavior?: 'clearSelection' | 'none'\n}\n\nexport interface AriaGridListOptions<T> extends Omit<AriaGridListProps<T>, 'children'> {\n /** Whether the list uses virtual scrolling. */\n isVirtualized?: boolean,\n /**\n * Whether typeahead navigation is disabled.\n * @default false\n */\n disallowTypeAhead?: boolean,\n /**\n * An optional keyboard delegate implementation for type to select,\n * to override the default.\n */\n keyboardDelegate?: KeyboardDelegate,\n /**\n * A delegate object that provides layout information for items in the collection.\n * By default this uses the DOM, but this can be overridden to implement things like\n * virtualized scrolling.\n */\n layoutDelegate?: LayoutDelegate,\n /**\n * Whether focus should wrap around when the end/start is reached.\n * @default false\n */\n shouldFocusWrap?: boolean,\n /**\n * The behavior of links in the collection.\n * - 'action': link behaves like onAction.\n * - 'selection': link follows selection interactions (e.g. if URL drives selection).\n * - 'override': links override all other interactions (link items are not selectable).\n * @default 'action'\n */\n linkBehavior?: 'action' | 'selection' | 'override'\n}\n\nexport interface GridListAria {\n /** Props for the grid element. */\n gridProps: DOMAttributes\n}\n\n/**\n * Provides the behavior and accessibility implementation for a list component with interactive children.\n * A grid list displays data in a single column and enables a user to navigate its contents via directional navigation keys.\n * @param props - Props for the list.\n * @param state - State for the list, as returned by `useListState`.\n * @param ref - The ref attached to the list element.\n */\nexport function useGridList<T>(props: AriaGridListOptions<T>, state: ListState<T>, ref: RefObject<HTMLElement | null>): GridListAria {\n let {\n isVirtualized,\n keyboardDelegate,\n layoutDelegate,\n onAction,\n disallowTypeAhead,\n linkBehavior = 'action',\n keyboardNavigationBehavior = 'arrow',\n escapeKeyBehavior = 'clearSelection',\n shouldSelectOnPressUp\n } = props;\n\n if (!props['aria-label'] && !props['aria-labelledby']) {\n console.warn('An aria-label or aria-labelledby prop is required for accessibility.');\n }\n\n let {listProps} = useSelectableList({\n selectionManager: state.selectionManager,\n collection: state.collection,\n disabledKeys: state.disabledKeys,\n ref,\n keyboardDelegate,\n layoutDelegate,\n isVirtualized,\n selectOnFocus: state.selectionManager.selectionBehavior === 'replace',\n shouldFocusWrap: props.shouldFocusWrap,\n linkBehavior,\n disallowTypeAhead,\n autoFocus: props.autoFocus,\n escapeKeyBehavior\n });\n\n let id = useId(props.id);\n listMap.set(state, {id, onAction, linkBehavior, keyboardNavigationBehavior, shouldSelectOnPressUp});\n\n let descriptionProps = useHighlightSelectionDescription({\n selectionManager: state.selectionManager,\n hasItemActions: !!onAction\n });\n\n let hasTabbableChild = useHasTabbableChild(ref, {\n isDisabled: state.collection.size !== 0\n });\n\n let domProps = filterDOMProps(props, {labelable: true});\n let gridProps: DOMAttributes = mergeProps(\n domProps,\n {\n role: 'grid',\n id,\n 'aria-multiselectable': state.selectionManager.selectionMode === 'multiple' ? 'true' : undefined\n },\n // If collection is empty, make sure the grid is tabbable unless there is a child tabbable element.\n state.collection.size === 0 ? {tabIndex: hasTabbableChild ? -1 : 0} : listProps,\n descriptionProps\n );\n\n if (isVirtualized) {\n gridProps['aria-rowcount'] = state.collection.size;\n gridProps['aria-colcount'] = 1;\n }\n\n useGridSelectionAnnouncement({}, state);\n\n return {\n gridProps\n };\n}\n"],"names":[],"version":3,"file":"useGridList.cjs.map"}
1
+ {"mappings":";;;;;;;;;;;;;;;AAAA;;;;;;;;;;CAUC;;;;;;;;AAyHM,SAAS,0CACd,KAA6B,EAC7B,KAAmB,EACnB,GAAkC;IAElC,IAAI,iBACF,aAAa,oBACb,gBAAgB,kBAChB,cAAc,YACd,QAAQ,qBACR,iBAAiB,gBACjB,eAAe,sCACf,6BAA6B,4BAC7B,oBAAoB,yCACpB,qBAAqB,EACtB,GAAG;IAEJ,IAAI,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,kBAAkB,EACnD,QAAQ,IAAI,CAAC;IAGf,IAAI,aAAC,SAAS,EAAC,GAAG,CAAA,GAAA,2CAAgB,EAAE;QAClC,kBAAkB,MAAM,gBAAgB;QACxC,YAAY,MAAM,UAAU;QAC5B,cAAc,MAAM,YAAY;aAChC;0BACA;wBACA;uBACA;QACA,eAAe,MAAM,gBAAgB,CAAC,iBAAiB,KAAK;QAC5D,iBAAiB,MAAM,eAAe;sBACtC;2BACA;QACA,WAAW,MAAM,SAAS;2BAC1B;QACA,uBAAuB,MAAM,qBAAqB;IACpD;IAEA,IAAI,KAAK,CAAA,GAAA,+BAAI,EAAE,MAAM,EAAE;IACvB,CAAA,GAAA,iCAAM,EAAE,GAAG,CAAC,OAAO;YACjB;kBACA;sBACA;oCACA;+BACA;IACF;IAEA,IAAI,mBAAmB,CAAA,GAAA,0DAA+B,EAAE;QACtD,kBAAkB,MAAM,gBAAgB;QACxC,gBAAgB,CAAC,CAAC;IACpB;IAEA,IAAI,mBAAmB,CAAA,GAAA,6CAAkB,EAAE,KAAK;QAC9C,YAAY,MAAM,UAAU,CAAC,IAAI,KAAK;IACxC;IAEA,IAAI,WAAW,CAAA,GAAA,wCAAa,EAAE,OAAO;QAAC,WAAW;IAAI;IACrD,IAAI,YAA2B,CAAA,GAAA,oCAAS,EACtC,UACA;QACE,MAAM;YACN;QACA,wBACE,MAAM,gBAAgB,CAAC,aAAa,KAAK,aAAa,SAAS;IACnE,GACA,mGAAmG;IACnG,MAAM,UAAU,CAAC,IAAI,KAAK,IAAI;QAAC,UAAU,mBAAmB,KAAK;IAAC,IAAI,WACtE;IAGF,IAAI,eAAe;QACjB,SAAS,CAAC,gBAAgB,GAAG,MAAM,UAAU,CAAC,IAAI;QAClD,SAAS,CAAC,gBAAgB,GAAG;IAC/B;IAEA,CAAA,GAAA,sDAA2B,EAAE,CAAC,GAAG;IAEjC,OAAO;mBACL;IACF;AACF","sources":["packages/react-aria/src/gridlist/useGridList.ts"],"sourcesContent":["/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n AriaLabelingProps,\n CollectionBase,\n DisabledBehavior,\n DOMAttributes,\n DOMProps,\n FocusStrategy,\n Key,\n KeyboardDelegate,\n LayoutDelegate,\n MultipleSelection,\n RefObject\n} from '@react-types/shared';\nimport {filterDOMProps} from '../utils/filterDOMProps';\nimport {listMap} from './utils';\nimport {ListState} from 'react-stately/useListState';\nimport {mergeProps} from '../utils/mergeProps';\nimport {useGridSelectionAnnouncement} from '../grid/useGridSelectionAnnouncement';\nimport {useHasTabbableChild} from '../focus/useHasTabbableChild';\nimport {useHighlightSelectionDescription} from '../grid/useHighlightSelectionDescription';\nimport {useId} from '../utils/useId';\nimport {useSelectableList} from '../selection/useSelectableList';\n\nexport interface GridListProps<T> extends CollectionBase<T>, MultipleSelection {\n /** Whether to auto focus the gridlist or an option. */\n autoFocus?: boolean | FocusStrategy;\n /**\n * Handler that is called when a user performs an action on an item. The exact user event depends\n * on the collection's `selectionBehavior` prop and the interaction modality.\n */\n onAction?: (key: Key) => void;\n /**\n * Whether `disabledKeys` applies to all interactions, or only selection.\n *\n * @default 'all'\n */\n disabledBehavior?: DisabledBehavior;\n /** Whether selection should occur on press up instead of press down. */\n shouldSelectOnPressUp?: boolean;\n}\n\nexport interface AriaGridListProps<T> extends GridListProps<T>, DOMProps, AriaLabelingProps {\n /**\n * Whether keyboard navigation to focusable elements within grid list items is\n * via the left/right arrow keys or the tab key.\n *\n * @default 'arrow'\n */\n keyboardNavigationBehavior?: 'arrow' | 'tab';\n /**\n * Whether pressing the escape key should clear selection in the grid list or not.\n *\n * Most experiences should not modify this option as it eliminates a keyboard user's ability to\n * easily clear selection. Only use if the escape key is being handled externally or should not\n * trigger selection clearing contextually.\n *\n * @default 'clearSelection'\n */\n escapeKeyBehavior?: 'clearSelection' | 'none';\n}\n\nexport interface AriaGridListOptions<T> extends Omit<AriaGridListProps<T>, 'children'> {\n /** Whether the list uses virtual scrolling. */\n isVirtualized?: boolean;\n /**\n * Whether typeahead navigation is disabled.\n *\n * @default false\n */\n disallowTypeAhead?: boolean;\n /**\n * An optional keyboard delegate implementation for type to select,\n * to override the default.\n */\n keyboardDelegate?: KeyboardDelegate;\n /**\n * A delegate object that provides layout information for items in the collection.\n * By default this uses the DOM, but this can be overridden to implement things like\n * virtualized scrolling.\n */\n layoutDelegate?: LayoutDelegate;\n /**\n * Whether focus should wrap around when the end/start is reached.\n *\n * @default false\n */\n shouldFocusWrap?: boolean;\n /**\n * The behavior of links in the collection.\n * - 'action': link behaves like onAction.\n * - 'selection': link follows selection interactions (e.g. if URL drives selection).\n * - 'override': links override all other interactions (link items are not selectable).\n *\n * @default 'action'\n */\n linkBehavior?: 'action' | 'selection' | 'override';\n /**\n * Which item in the collection to focus when tabbing into the collection. Overrides default\n * roving tab index like behavior.\n *\n * @private\n */\n UNSTABLE_focusOnEntry?: 'first' | 'last';\n}\n\nexport interface GridListAria {\n /** Props for the grid element. */\n gridProps: DOMAttributes;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a list component with interactive\n * children. A grid list displays data in a single column and enables a user to navigate its\n * contents via directional navigation keys.\n *\n * @param props - Props for the list.\n * @param state - State for the list, as returned by `useListState`.\n * @param ref - The ref attached to the list element.\n */\nexport function useGridList<T>(\n props: AriaGridListOptions<T>,\n state: ListState<T>,\n ref: RefObject<HTMLElement | null>\n): GridListAria {\n let {\n isVirtualized,\n keyboardDelegate,\n layoutDelegate,\n onAction,\n disallowTypeAhead,\n linkBehavior = 'action',\n keyboardNavigationBehavior = 'arrow',\n escapeKeyBehavior = 'clearSelection',\n shouldSelectOnPressUp\n } = props;\n\n if (!props['aria-label'] && !props['aria-labelledby']) {\n console.warn('An aria-label or aria-labelledby prop is required for accessibility.');\n }\n\n let {listProps} = useSelectableList({\n selectionManager: state.selectionManager,\n collection: state.collection,\n disabledKeys: state.disabledKeys,\n ref,\n keyboardDelegate,\n layoutDelegate,\n isVirtualized,\n selectOnFocus: state.selectionManager.selectionBehavior === 'replace',\n shouldFocusWrap: props.shouldFocusWrap,\n linkBehavior,\n disallowTypeAhead,\n autoFocus: props.autoFocus,\n escapeKeyBehavior,\n UNSTABLE_focusOnEntry: props.UNSTABLE_focusOnEntry\n });\n\n let id = useId(props.id);\n listMap.set(state, {\n id,\n onAction,\n linkBehavior,\n keyboardNavigationBehavior,\n shouldSelectOnPressUp\n });\n\n let descriptionProps = useHighlightSelectionDescription({\n selectionManager: state.selectionManager,\n hasItemActions: !!onAction\n });\n\n let hasTabbableChild = useHasTabbableChild(ref, {\n isDisabled: state.collection.size !== 0\n });\n\n let domProps = filterDOMProps(props, {labelable: true});\n let gridProps: DOMAttributes = mergeProps(\n domProps,\n {\n role: 'grid',\n id,\n 'aria-multiselectable':\n state.selectionManager.selectionMode === 'multiple' ? 'true' : undefined\n },\n // If collection is empty, make sure the grid is tabbable unless there is a child tabbable element.\n state.collection.size === 0 ? {tabIndex: hasTabbableChild ? -1 : 0} : listProps,\n descriptionProps\n );\n\n if (isVirtualized) {\n gridProps['aria-rowcount'] = state.collection.size;\n gridProps['aria-colcount'] = 1;\n }\n\n useGridSelectionAnnouncement({}, state);\n\n return {\n gridProps\n };\n}\n"],"names":[],"version":3,"file":"useGridList.cjs.map"}
@@ -41,7 +41,8 @@ function $386a4c16c0702f9d$export$664f9155035607eb(props, state, ref) {
41
41
  linkBehavior: linkBehavior,
42
42
  disallowTypeAhead: disallowTypeAhead,
43
43
  autoFocus: props.autoFocus,
44
- escapeKeyBehavior: escapeKeyBehavior
44
+ escapeKeyBehavior: escapeKeyBehavior,
45
+ UNSTABLE_focusOnEntry: props.UNSTABLE_focusOnEntry
45
46
  });
46
47
  let id = (0, $0292efe68908de6b$export$f680877a34711e37)(props.id);
47
48
  (0, $781ed2e01df48c52$export$5b9bb410392e3991).set(state, {
@@ -1 +1 @@
1
- {"mappings":";;;;;;;;;AAAA;;;;;;;;;;CAUC;;;;;;;;AA0GM,SAAS,0CAAe,KAA6B,EAAE,KAAmB,EAAE,GAAkC;IACnH,IAAI,iBACF,aAAa,oBACb,gBAAgB,kBAChB,cAAc,YACd,QAAQ,qBACR,iBAAiB,gBACjB,eAAe,sCACf,6BAA6B,4BAC7B,oBAAoB,yCACpB,qBAAqB,EACtB,GAAG;IAEJ,IAAI,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,kBAAkB,EACnD,QAAQ,IAAI,CAAC;IAGf,IAAI,aAAC,SAAS,EAAC,GAAG,CAAA,GAAA,yCAAgB,EAAE;QAClC,kBAAkB,MAAM,gBAAgB;QACxC,YAAY,MAAM,UAAU;QAC5B,cAAc,MAAM,YAAY;aAChC;0BACA;wBACA;uBACA;QACA,eAAe,MAAM,gBAAgB,CAAC,iBAAiB,KAAK;QAC5D,iBAAiB,MAAM,eAAe;sBACtC;2BACA;QACA,WAAW,MAAM,SAAS;2BAC1B;IACF;IAEA,IAAI,KAAK,CAAA,GAAA,yCAAI,EAAE,MAAM,EAAE;IACvB,CAAA,GAAA,yCAAM,EAAE,GAAG,CAAC,OAAO;YAAC;kBAAI;sBAAU;oCAAc;+BAA4B;IAAqB;IAEjG,IAAI,mBAAmB,CAAA,GAAA,yCAA+B,EAAE;QACtD,kBAAkB,MAAM,gBAAgB;QACxC,gBAAgB,CAAC,CAAC;IACpB;IAEA,IAAI,mBAAmB,CAAA,GAAA,yCAAkB,EAAE,KAAK;QAC9C,YAAY,MAAM,UAAU,CAAC,IAAI,KAAK;IACxC;IAEA,IAAI,WAAW,CAAA,GAAA,yCAAa,EAAE,OAAO;QAAC,WAAW;IAAI;IACrD,IAAI,YAA2B,CAAA,GAAA,yCAAS,EACtC,UACA;QACE,MAAM;YACN;QACA,wBAAwB,MAAM,gBAAgB,CAAC,aAAa,KAAK,aAAa,SAAS;IACzF,GACA,mGAAmG;IACnG,MAAM,UAAU,CAAC,IAAI,KAAK,IAAI;QAAC,UAAU,mBAAmB,KAAK;IAAC,IAAI,WACtE;IAGF,IAAI,eAAe;QACjB,SAAS,CAAC,gBAAgB,GAAG,MAAM,UAAU,CAAC,IAAI;QAClD,SAAS,CAAC,gBAAgB,GAAG;IAC/B;IAEA,CAAA,GAAA,yCAA2B,EAAE,CAAC,GAAG;IAEjC,OAAO;mBACL;IACF;AACF","sources":["packages/react-aria/src/gridlist/useGridList.ts"],"sourcesContent":["/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n AriaLabelingProps,\n CollectionBase,\n DisabledBehavior,\n DOMAttributes,\n DOMProps,\n FocusStrategy,\n Key,\n KeyboardDelegate,\n LayoutDelegate,\n MultipleSelection,\n RefObject\n} from '@react-types/shared';\nimport {filterDOMProps} from '../utils/filterDOMProps';\nimport {listMap} from './utils';\nimport {ListState} from 'react-stately/useListState';\nimport {mergeProps} from '../utils/mergeProps';\nimport {useGridSelectionAnnouncement} from '../grid/useGridSelectionAnnouncement';\nimport {useHasTabbableChild} from '../focus/useHasTabbableChild';\nimport {useHighlightSelectionDescription} from '../grid/useHighlightSelectionDescription';\nimport {useId} from '../utils/useId';\nimport {useSelectableList} from '../selection/useSelectableList';\n\nexport interface GridListProps<T> extends CollectionBase<T>, MultipleSelection {\n /** Whether to auto focus the gridlist or an option. */\n autoFocus?: boolean | FocusStrategy,\n /**\n * Handler that is called when a user performs an action on an item. The exact user event depends on\n * the collection's `selectionBehavior` prop and the interaction modality.\n */\n onAction?: (key: Key) => void,\n /**\n * Whether `disabledKeys` applies to all interactions, or only selection.\n * @default \"all\"\n */\n disabledBehavior?: DisabledBehavior,\n /** Whether selection should occur on press up instead of press down. */\n shouldSelectOnPressUp?: boolean\n}\n\nexport interface AriaGridListProps<T> extends GridListProps<T>, DOMProps, AriaLabelingProps {\n /**\n * Whether keyboard navigation to focusable elements within grid list items is\n * via the left/right arrow keys or the tab key.\n * @default 'arrow'\n */\n keyboardNavigationBehavior?: 'arrow' | 'tab',\n /**\n * Whether pressing the escape key should clear selection in the grid list or not.\n *\n * Most experiences should not modify this option as it eliminates a keyboard user's ability to\n * easily clear selection. Only use if the escape key is being handled externally or should not\n * trigger selection clearing contextually.\n * @default 'clearSelection'\n */\n escapeKeyBehavior?: 'clearSelection' | 'none'\n}\n\nexport interface AriaGridListOptions<T> extends Omit<AriaGridListProps<T>, 'children'> {\n /** Whether the list uses virtual scrolling. */\n isVirtualized?: boolean,\n /**\n * Whether typeahead navigation is disabled.\n * @default false\n */\n disallowTypeAhead?: boolean,\n /**\n * An optional keyboard delegate implementation for type to select,\n * to override the default.\n */\n keyboardDelegate?: KeyboardDelegate,\n /**\n * A delegate object that provides layout information for items in the collection.\n * By default this uses the DOM, but this can be overridden to implement things like\n * virtualized scrolling.\n */\n layoutDelegate?: LayoutDelegate,\n /**\n * Whether focus should wrap around when the end/start is reached.\n * @default false\n */\n shouldFocusWrap?: boolean,\n /**\n * The behavior of links in the collection.\n * - 'action': link behaves like onAction.\n * - 'selection': link follows selection interactions (e.g. if URL drives selection).\n * - 'override': links override all other interactions (link items are not selectable).\n * @default 'action'\n */\n linkBehavior?: 'action' | 'selection' | 'override'\n}\n\nexport interface GridListAria {\n /** Props for the grid element. */\n gridProps: DOMAttributes\n}\n\n/**\n * Provides the behavior and accessibility implementation for a list component with interactive children.\n * A grid list displays data in a single column and enables a user to navigate its contents via directional navigation keys.\n * @param props - Props for the list.\n * @param state - State for the list, as returned by `useListState`.\n * @param ref - The ref attached to the list element.\n */\nexport function useGridList<T>(props: AriaGridListOptions<T>, state: ListState<T>, ref: RefObject<HTMLElement | null>): GridListAria {\n let {\n isVirtualized,\n keyboardDelegate,\n layoutDelegate,\n onAction,\n disallowTypeAhead,\n linkBehavior = 'action',\n keyboardNavigationBehavior = 'arrow',\n escapeKeyBehavior = 'clearSelection',\n shouldSelectOnPressUp\n } = props;\n\n if (!props['aria-label'] && !props['aria-labelledby']) {\n console.warn('An aria-label or aria-labelledby prop is required for accessibility.');\n }\n\n let {listProps} = useSelectableList({\n selectionManager: state.selectionManager,\n collection: state.collection,\n disabledKeys: state.disabledKeys,\n ref,\n keyboardDelegate,\n layoutDelegate,\n isVirtualized,\n selectOnFocus: state.selectionManager.selectionBehavior === 'replace',\n shouldFocusWrap: props.shouldFocusWrap,\n linkBehavior,\n disallowTypeAhead,\n autoFocus: props.autoFocus,\n escapeKeyBehavior\n });\n\n let id = useId(props.id);\n listMap.set(state, {id, onAction, linkBehavior, keyboardNavigationBehavior, shouldSelectOnPressUp});\n\n let descriptionProps = useHighlightSelectionDescription({\n selectionManager: state.selectionManager,\n hasItemActions: !!onAction\n });\n\n let hasTabbableChild = useHasTabbableChild(ref, {\n isDisabled: state.collection.size !== 0\n });\n\n let domProps = filterDOMProps(props, {labelable: true});\n let gridProps: DOMAttributes = mergeProps(\n domProps,\n {\n role: 'grid',\n id,\n 'aria-multiselectable': state.selectionManager.selectionMode === 'multiple' ? 'true' : undefined\n },\n // If collection is empty, make sure the grid is tabbable unless there is a child tabbable element.\n state.collection.size === 0 ? {tabIndex: hasTabbableChild ? -1 : 0} : listProps,\n descriptionProps\n );\n\n if (isVirtualized) {\n gridProps['aria-rowcount'] = state.collection.size;\n gridProps['aria-colcount'] = 1;\n }\n\n useGridSelectionAnnouncement({}, state);\n\n return {\n gridProps\n };\n}\n"],"names":[],"version":3,"file":"useGridList.js.map"}
1
+ {"mappings":";;;;;;;;;AAAA;;;;;;;;;;CAUC;;;;;;;;AAyHM,SAAS,0CACd,KAA6B,EAC7B,KAAmB,EACnB,GAAkC;IAElC,IAAI,iBACF,aAAa,oBACb,gBAAgB,kBAChB,cAAc,YACd,QAAQ,qBACR,iBAAiB,gBACjB,eAAe,sCACf,6BAA6B,4BAC7B,oBAAoB,yCACpB,qBAAqB,EACtB,GAAG;IAEJ,IAAI,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,kBAAkB,EACnD,QAAQ,IAAI,CAAC;IAGf,IAAI,aAAC,SAAS,EAAC,GAAG,CAAA,GAAA,yCAAgB,EAAE;QAClC,kBAAkB,MAAM,gBAAgB;QACxC,YAAY,MAAM,UAAU;QAC5B,cAAc,MAAM,YAAY;aAChC;0BACA;wBACA;uBACA;QACA,eAAe,MAAM,gBAAgB,CAAC,iBAAiB,KAAK;QAC5D,iBAAiB,MAAM,eAAe;sBACtC;2BACA;QACA,WAAW,MAAM,SAAS;2BAC1B;QACA,uBAAuB,MAAM,qBAAqB;IACpD;IAEA,IAAI,KAAK,CAAA,GAAA,yCAAI,EAAE,MAAM,EAAE;IACvB,CAAA,GAAA,yCAAM,EAAE,GAAG,CAAC,OAAO;YACjB;kBACA;sBACA;oCACA;+BACA;IACF;IAEA,IAAI,mBAAmB,CAAA,GAAA,yCAA+B,EAAE;QACtD,kBAAkB,MAAM,gBAAgB;QACxC,gBAAgB,CAAC,CAAC;IACpB;IAEA,IAAI,mBAAmB,CAAA,GAAA,yCAAkB,EAAE,KAAK;QAC9C,YAAY,MAAM,UAAU,CAAC,IAAI,KAAK;IACxC;IAEA,IAAI,WAAW,CAAA,GAAA,yCAAa,EAAE,OAAO;QAAC,WAAW;IAAI;IACrD,IAAI,YAA2B,CAAA,GAAA,yCAAS,EACtC,UACA;QACE,MAAM;YACN;QACA,wBACE,MAAM,gBAAgB,CAAC,aAAa,KAAK,aAAa,SAAS;IACnE,GACA,mGAAmG;IACnG,MAAM,UAAU,CAAC,IAAI,KAAK,IAAI;QAAC,UAAU,mBAAmB,KAAK;IAAC,IAAI,WACtE;IAGF,IAAI,eAAe;QACjB,SAAS,CAAC,gBAAgB,GAAG,MAAM,UAAU,CAAC,IAAI;QAClD,SAAS,CAAC,gBAAgB,GAAG;IAC/B;IAEA,CAAA,GAAA,yCAA2B,EAAE,CAAC,GAAG;IAEjC,OAAO;mBACL;IACF;AACF","sources":["packages/react-aria/src/gridlist/useGridList.ts"],"sourcesContent":["/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n AriaLabelingProps,\n CollectionBase,\n DisabledBehavior,\n DOMAttributes,\n DOMProps,\n FocusStrategy,\n Key,\n KeyboardDelegate,\n LayoutDelegate,\n MultipleSelection,\n RefObject\n} from '@react-types/shared';\nimport {filterDOMProps} from '../utils/filterDOMProps';\nimport {listMap} from './utils';\nimport {ListState} from 'react-stately/useListState';\nimport {mergeProps} from '../utils/mergeProps';\nimport {useGridSelectionAnnouncement} from '../grid/useGridSelectionAnnouncement';\nimport {useHasTabbableChild} from '../focus/useHasTabbableChild';\nimport {useHighlightSelectionDescription} from '../grid/useHighlightSelectionDescription';\nimport {useId} from '../utils/useId';\nimport {useSelectableList} from '../selection/useSelectableList';\n\nexport interface GridListProps<T> extends CollectionBase<T>, MultipleSelection {\n /** Whether to auto focus the gridlist or an option. */\n autoFocus?: boolean | FocusStrategy;\n /**\n * Handler that is called when a user performs an action on an item. The exact user event depends\n * on the collection's `selectionBehavior` prop and the interaction modality.\n */\n onAction?: (key: Key) => void;\n /**\n * Whether `disabledKeys` applies to all interactions, or only selection.\n *\n * @default 'all'\n */\n disabledBehavior?: DisabledBehavior;\n /** Whether selection should occur on press up instead of press down. */\n shouldSelectOnPressUp?: boolean;\n}\n\nexport interface AriaGridListProps<T> extends GridListProps<T>, DOMProps, AriaLabelingProps {\n /**\n * Whether keyboard navigation to focusable elements within grid list items is\n * via the left/right arrow keys or the tab key.\n *\n * @default 'arrow'\n */\n keyboardNavigationBehavior?: 'arrow' | 'tab';\n /**\n * Whether pressing the escape key should clear selection in the grid list or not.\n *\n * Most experiences should not modify this option as it eliminates a keyboard user's ability to\n * easily clear selection. Only use if the escape key is being handled externally or should not\n * trigger selection clearing contextually.\n *\n * @default 'clearSelection'\n */\n escapeKeyBehavior?: 'clearSelection' | 'none';\n}\n\nexport interface AriaGridListOptions<T> extends Omit<AriaGridListProps<T>, 'children'> {\n /** Whether the list uses virtual scrolling. */\n isVirtualized?: boolean;\n /**\n * Whether typeahead navigation is disabled.\n *\n * @default false\n */\n disallowTypeAhead?: boolean;\n /**\n * An optional keyboard delegate implementation for type to select,\n * to override the default.\n */\n keyboardDelegate?: KeyboardDelegate;\n /**\n * A delegate object that provides layout information for items in the collection.\n * By default this uses the DOM, but this can be overridden to implement things like\n * virtualized scrolling.\n */\n layoutDelegate?: LayoutDelegate;\n /**\n * Whether focus should wrap around when the end/start is reached.\n *\n * @default false\n */\n shouldFocusWrap?: boolean;\n /**\n * The behavior of links in the collection.\n * - 'action': link behaves like onAction.\n * - 'selection': link follows selection interactions (e.g. if URL drives selection).\n * - 'override': links override all other interactions (link items are not selectable).\n *\n * @default 'action'\n */\n linkBehavior?: 'action' | 'selection' | 'override';\n /**\n * Which item in the collection to focus when tabbing into the collection. Overrides default\n * roving tab index like behavior.\n *\n * @private\n */\n UNSTABLE_focusOnEntry?: 'first' | 'last';\n}\n\nexport interface GridListAria {\n /** Props for the grid element. */\n gridProps: DOMAttributes;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a list component with interactive\n * children. A grid list displays data in a single column and enables a user to navigate its\n * contents via directional navigation keys.\n *\n * @param props - Props for the list.\n * @param state - State for the list, as returned by `useListState`.\n * @param ref - The ref attached to the list element.\n */\nexport function useGridList<T>(\n props: AriaGridListOptions<T>,\n state: ListState<T>,\n ref: RefObject<HTMLElement | null>\n): GridListAria {\n let {\n isVirtualized,\n keyboardDelegate,\n layoutDelegate,\n onAction,\n disallowTypeAhead,\n linkBehavior = 'action',\n keyboardNavigationBehavior = 'arrow',\n escapeKeyBehavior = 'clearSelection',\n shouldSelectOnPressUp\n } = props;\n\n if (!props['aria-label'] && !props['aria-labelledby']) {\n console.warn('An aria-label or aria-labelledby prop is required for accessibility.');\n }\n\n let {listProps} = useSelectableList({\n selectionManager: state.selectionManager,\n collection: state.collection,\n disabledKeys: state.disabledKeys,\n ref,\n keyboardDelegate,\n layoutDelegate,\n isVirtualized,\n selectOnFocus: state.selectionManager.selectionBehavior === 'replace',\n shouldFocusWrap: props.shouldFocusWrap,\n linkBehavior,\n disallowTypeAhead,\n autoFocus: props.autoFocus,\n escapeKeyBehavior,\n UNSTABLE_focusOnEntry: props.UNSTABLE_focusOnEntry\n });\n\n let id = useId(props.id);\n listMap.set(state, {\n id,\n onAction,\n linkBehavior,\n keyboardNavigationBehavior,\n shouldSelectOnPressUp\n });\n\n let descriptionProps = useHighlightSelectionDescription({\n selectionManager: state.selectionManager,\n hasItemActions: !!onAction\n });\n\n let hasTabbableChild = useHasTabbableChild(ref, {\n isDisabled: state.collection.size !== 0\n });\n\n let domProps = filterDOMProps(props, {labelable: true});\n let gridProps: DOMAttributes = mergeProps(\n domProps,\n {\n role: 'grid',\n id,\n 'aria-multiselectable':\n state.selectionManager.selectionMode === 'multiple' ? 'true' : undefined\n },\n // If collection is empty, make sure the grid is tabbable unless there is a child tabbable element.\n state.collection.size === 0 ? {tabIndex: hasTabbableChild ? -1 : 0} : listProps,\n descriptionProps\n );\n\n if (isVirtualized) {\n gridProps['aria-rowcount'] = state.collection.size;\n gridProps['aria-colcount'] = 1;\n }\n\n useGridSelectionAnnouncement({}, state);\n\n return {\n gridProps\n };\n}\n"],"names":[],"version":3,"file":"useGridList.js.map"}
@@ -41,7 +41,8 @@ function $34d813d3524a584a$export$664f9155035607eb(props, state, ref) {
41
41
  linkBehavior: linkBehavior,
42
42
  disallowTypeAhead: disallowTypeAhead,
43
43
  autoFocus: props.autoFocus,
44
- escapeKeyBehavior: escapeKeyBehavior
44
+ escapeKeyBehavior: escapeKeyBehavior,
45
+ UNSTABLE_focusOnEntry: props.UNSTABLE_focusOnEntry
45
46
  });
46
47
  let id = (0, $390e54f620492c70$export$f680877a34711e37)(props.id);
47
48
  (0, $c1c90317e8bffe4d$export$5b9bb410392e3991).set(state, {
@@ -1 +1 @@
1
- {"mappings":";;;;;;;;;AAAA;;;;;;;;;;CAUC;;;;;;;;AA0GM,SAAS,0CAAe,KAA6B,EAAE,KAAmB,EAAE,GAAkC;IACnH,IAAI,iBACF,aAAa,oBACb,gBAAgB,kBAChB,cAAc,YACd,QAAQ,qBACR,iBAAiB,gBACjB,eAAe,sCACf,6BAA6B,4BAC7B,oBAAoB,yCACpB,qBAAqB,EACtB,GAAG;IAEJ,IAAI,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,kBAAkB,EACnD,QAAQ,IAAI,CAAC;IAGf,IAAI,aAAC,SAAS,EAAC,GAAG,CAAA,GAAA,yCAAgB,EAAE;QAClC,kBAAkB,MAAM,gBAAgB;QACxC,YAAY,MAAM,UAAU;QAC5B,cAAc,MAAM,YAAY;aAChC;0BACA;wBACA;uBACA;QACA,eAAe,MAAM,gBAAgB,CAAC,iBAAiB,KAAK;QAC5D,iBAAiB,MAAM,eAAe;sBACtC;2BACA;QACA,WAAW,MAAM,SAAS;2BAC1B;IACF;IAEA,IAAI,KAAK,CAAA,GAAA,yCAAI,EAAE,MAAM,EAAE;IACvB,CAAA,GAAA,yCAAM,EAAE,GAAG,CAAC,OAAO;YAAC;kBAAI;sBAAU;oCAAc;+BAA4B;IAAqB;IAEjG,IAAI,mBAAmB,CAAA,GAAA,yCAA+B,EAAE;QACtD,kBAAkB,MAAM,gBAAgB;QACxC,gBAAgB,CAAC,CAAC;IACpB;IAEA,IAAI,mBAAmB,CAAA,GAAA,yCAAkB,EAAE,KAAK;QAC9C,YAAY,MAAM,UAAU,CAAC,IAAI,KAAK;IACxC;IAEA,IAAI,WAAW,CAAA,GAAA,yCAAa,EAAE,OAAO;QAAC,WAAW;IAAI;IACrD,IAAI,YAA2B,CAAA,GAAA,yCAAS,EACtC,UACA;QACE,MAAM;YACN;QACA,wBAAwB,MAAM,gBAAgB,CAAC,aAAa,KAAK,aAAa,SAAS;IACzF,GACA,mGAAmG;IACnG,MAAM,UAAU,CAAC,IAAI,KAAK,IAAI;QAAC,UAAU,mBAAmB,KAAK;IAAC,IAAI,WACtE;IAGF,IAAI,eAAe;QACjB,SAAS,CAAC,gBAAgB,GAAG,MAAM,UAAU,CAAC,IAAI;QAClD,SAAS,CAAC,gBAAgB,GAAG;IAC/B;IAEA,CAAA,GAAA,yCAA2B,EAAE,CAAC,GAAG;IAEjC,OAAO;mBACL;IACF;AACF","sources":["packages/react-aria/src/gridlist/useGridList.ts"],"sourcesContent":["/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n AriaLabelingProps,\n CollectionBase,\n DisabledBehavior,\n DOMAttributes,\n DOMProps,\n FocusStrategy,\n Key,\n KeyboardDelegate,\n LayoutDelegate,\n MultipleSelection,\n RefObject\n} from '@react-types/shared';\nimport {filterDOMProps} from '../utils/filterDOMProps';\nimport {listMap} from './utils';\nimport {ListState} from 'react-stately/useListState';\nimport {mergeProps} from '../utils/mergeProps';\nimport {useGridSelectionAnnouncement} from '../grid/useGridSelectionAnnouncement';\nimport {useHasTabbableChild} from '../focus/useHasTabbableChild';\nimport {useHighlightSelectionDescription} from '../grid/useHighlightSelectionDescription';\nimport {useId} from '../utils/useId';\nimport {useSelectableList} from '../selection/useSelectableList';\n\nexport interface GridListProps<T> extends CollectionBase<T>, MultipleSelection {\n /** Whether to auto focus the gridlist or an option. */\n autoFocus?: boolean | FocusStrategy,\n /**\n * Handler that is called when a user performs an action on an item. The exact user event depends on\n * the collection's `selectionBehavior` prop and the interaction modality.\n */\n onAction?: (key: Key) => void,\n /**\n * Whether `disabledKeys` applies to all interactions, or only selection.\n * @default \"all\"\n */\n disabledBehavior?: DisabledBehavior,\n /** Whether selection should occur on press up instead of press down. */\n shouldSelectOnPressUp?: boolean\n}\n\nexport interface AriaGridListProps<T> extends GridListProps<T>, DOMProps, AriaLabelingProps {\n /**\n * Whether keyboard navigation to focusable elements within grid list items is\n * via the left/right arrow keys or the tab key.\n * @default 'arrow'\n */\n keyboardNavigationBehavior?: 'arrow' | 'tab',\n /**\n * Whether pressing the escape key should clear selection in the grid list or not.\n *\n * Most experiences should not modify this option as it eliminates a keyboard user's ability to\n * easily clear selection. Only use if the escape key is being handled externally or should not\n * trigger selection clearing contextually.\n * @default 'clearSelection'\n */\n escapeKeyBehavior?: 'clearSelection' | 'none'\n}\n\nexport interface AriaGridListOptions<T> extends Omit<AriaGridListProps<T>, 'children'> {\n /** Whether the list uses virtual scrolling. */\n isVirtualized?: boolean,\n /**\n * Whether typeahead navigation is disabled.\n * @default false\n */\n disallowTypeAhead?: boolean,\n /**\n * An optional keyboard delegate implementation for type to select,\n * to override the default.\n */\n keyboardDelegate?: KeyboardDelegate,\n /**\n * A delegate object that provides layout information for items in the collection.\n * By default this uses the DOM, but this can be overridden to implement things like\n * virtualized scrolling.\n */\n layoutDelegate?: LayoutDelegate,\n /**\n * Whether focus should wrap around when the end/start is reached.\n * @default false\n */\n shouldFocusWrap?: boolean,\n /**\n * The behavior of links in the collection.\n * - 'action': link behaves like onAction.\n * - 'selection': link follows selection interactions (e.g. if URL drives selection).\n * - 'override': links override all other interactions (link items are not selectable).\n * @default 'action'\n */\n linkBehavior?: 'action' | 'selection' | 'override'\n}\n\nexport interface GridListAria {\n /** Props for the grid element. */\n gridProps: DOMAttributes\n}\n\n/**\n * Provides the behavior and accessibility implementation for a list component with interactive children.\n * A grid list displays data in a single column and enables a user to navigate its contents via directional navigation keys.\n * @param props - Props for the list.\n * @param state - State for the list, as returned by `useListState`.\n * @param ref - The ref attached to the list element.\n */\nexport function useGridList<T>(props: AriaGridListOptions<T>, state: ListState<T>, ref: RefObject<HTMLElement | null>): GridListAria {\n let {\n isVirtualized,\n keyboardDelegate,\n layoutDelegate,\n onAction,\n disallowTypeAhead,\n linkBehavior = 'action',\n keyboardNavigationBehavior = 'arrow',\n escapeKeyBehavior = 'clearSelection',\n shouldSelectOnPressUp\n } = props;\n\n if (!props['aria-label'] && !props['aria-labelledby']) {\n console.warn('An aria-label or aria-labelledby prop is required for accessibility.');\n }\n\n let {listProps} = useSelectableList({\n selectionManager: state.selectionManager,\n collection: state.collection,\n disabledKeys: state.disabledKeys,\n ref,\n keyboardDelegate,\n layoutDelegate,\n isVirtualized,\n selectOnFocus: state.selectionManager.selectionBehavior === 'replace',\n shouldFocusWrap: props.shouldFocusWrap,\n linkBehavior,\n disallowTypeAhead,\n autoFocus: props.autoFocus,\n escapeKeyBehavior\n });\n\n let id = useId(props.id);\n listMap.set(state, {id, onAction, linkBehavior, keyboardNavigationBehavior, shouldSelectOnPressUp});\n\n let descriptionProps = useHighlightSelectionDescription({\n selectionManager: state.selectionManager,\n hasItemActions: !!onAction\n });\n\n let hasTabbableChild = useHasTabbableChild(ref, {\n isDisabled: state.collection.size !== 0\n });\n\n let domProps = filterDOMProps(props, {labelable: true});\n let gridProps: DOMAttributes = mergeProps(\n domProps,\n {\n role: 'grid',\n id,\n 'aria-multiselectable': state.selectionManager.selectionMode === 'multiple' ? 'true' : undefined\n },\n // If collection is empty, make sure the grid is tabbable unless there is a child tabbable element.\n state.collection.size === 0 ? {tabIndex: hasTabbableChild ? -1 : 0} : listProps,\n descriptionProps\n );\n\n if (isVirtualized) {\n gridProps['aria-rowcount'] = state.collection.size;\n gridProps['aria-colcount'] = 1;\n }\n\n useGridSelectionAnnouncement({}, state);\n\n return {\n gridProps\n };\n}\n"],"names":[],"version":3,"file":"useGridList.mjs.map"}
1
+ {"mappings":";;;;;;;;;AAAA;;;;;;;;;;CAUC;;;;;;;;AAyHM,SAAS,0CACd,KAA6B,EAC7B,KAAmB,EACnB,GAAkC;IAElC,IAAI,iBACF,aAAa,oBACb,gBAAgB,kBAChB,cAAc,YACd,QAAQ,qBACR,iBAAiB,gBACjB,eAAe,sCACf,6BAA6B,4BAC7B,oBAAoB,yCACpB,qBAAqB,EACtB,GAAG;IAEJ,IAAI,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,kBAAkB,EACnD,QAAQ,IAAI,CAAC;IAGf,IAAI,aAAC,SAAS,EAAC,GAAG,CAAA,GAAA,yCAAgB,EAAE;QAClC,kBAAkB,MAAM,gBAAgB;QACxC,YAAY,MAAM,UAAU;QAC5B,cAAc,MAAM,YAAY;aAChC;0BACA;wBACA;uBACA;QACA,eAAe,MAAM,gBAAgB,CAAC,iBAAiB,KAAK;QAC5D,iBAAiB,MAAM,eAAe;sBACtC;2BACA;QACA,WAAW,MAAM,SAAS;2BAC1B;QACA,uBAAuB,MAAM,qBAAqB;IACpD;IAEA,IAAI,KAAK,CAAA,GAAA,yCAAI,EAAE,MAAM,EAAE;IACvB,CAAA,GAAA,yCAAM,EAAE,GAAG,CAAC,OAAO;YACjB;kBACA;sBACA;oCACA;+BACA;IACF;IAEA,IAAI,mBAAmB,CAAA,GAAA,yCAA+B,EAAE;QACtD,kBAAkB,MAAM,gBAAgB;QACxC,gBAAgB,CAAC,CAAC;IACpB;IAEA,IAAI,mBAAmB,CAAA,GAAA,yCAAkB,EAAE,KAAK;QAC9C,YAAY,MAAM,UAAU,CAAC,IAAI,KAAK;IACxC;IAEA,IAAI,WAAW,CAAA,GAAA,yCAAa,EAAE,OAAO;QAAC,WAAW;IAAI;IACrD,IAAI,YAA2B,CAAA,GAAA,yCAAS,EACtC,UACA;QACE,MAAM;YACN;QACA,wBACE,MAAM,gBAAgB,CAAC,aAAa,KAAK,aAAa,SAAS;IACnE,GACA,mGAAmG;IACnG,MAAM,UAAU,CAAC,IAAI,KAAK,IAAI;QAAC,UAAU,mBAAmB,KAAK;IAAC,IAAI,WACtE;IAGF,IAAI,eAAe;QACjB,SAAS,CAAC,gBAAgB,GAAG,MAAM,UAAU,CAAC,IAAI;QAClD,SAAS,CAAC,gBAAgB,GAAG;IAC/B;IAEA,CAAA,GAAA,yCAA2B,EAAE,CAAC,GAAG;IAEjC,OAAO;mBACL;IACF;AACF","sources":["packages/react-aria/src/gridlist/useGridList.ts"],"sourcesContent":["/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n AriaLabelingProps,\n CollectionBase,\n DisabledBehavior,\n DOMAttributes,\n DOMProps,\n FocusStrategy,\n Key,\n KeyboardDelegate,\n LayoutDelegate,\n MultipleSelection,\n RefObject\n} from '@react-types/shared';\nimport {filterDOMProps} from '../utils/filterDOMProps';\nimport {listMap} from './utils';\nimport {ListState} from 'react-stately/useListState';\nimport {mergeProps} from '../utils/mergeProps';\nimport {useGridSelectionAnnouncement} from '../grid/useGridSelectionAnnouncement';\nimport {useHasTabbableChild} from '../focus/useHasTabbableChild';\nimport {useHighlightSelectionDescription} from '../grid/useHighlightSelectionDescription';\nimport {useId} from '../utils/useId';\nimport {useSelectableList} from '../selection/useSelectableList';\n\nexport interface GridListProps<T> extends CollectionBase<T>, MultipleSelection {\n /** Whether to auto focus the gridlist or an option. */\n autoFocus?: boolean | FocusStrategy;\n /**\n * Handler that is called when a user performs an action on an item. The exact user event depends\n * on the collection's `selectionBehavior` prop and the interaction modality.\n */\n onAction?: (key: Key) => void;\n /**\n * Whether `disabledKeys` applies to all interactions, or only selection.\n *\n * @default 'all'\n */\n disabledBehavior?: DisabledBehavior;\n /** Whether selection should occur on press up instead of press down. */\n shouldSelectOnPressUp?: boolean;\n}\n\nexport interface AriaGridListProps<T> extends GridListProps<T>, DOMProps, AriaLabelingProps {\n /**\n * Whether keyboard navigation to focusable elements within grid list items is\n * via the left/right arrow keys or the tab key.\n *\n * @default 'arrow'\n */\n keyboardNavigationBehavior?: 'arrow' | 'tab';\n /**\n * Whether pressing the escape key should clear selection in the grid list or not.\n *\n * Most experiences should not modify this option as it eliminates a keyboard user's ability to\n * easily clear selection. Only use if the escape key is being handled externally or should not\n * trigger selection clearing contextually.\n *\n * @default 'clearSelection'\n */\n escapeKeyBehavior?: 'clearSelection' | 'none';\n}\n\nexport interface AriaGridListOptions<T> extends Omit<AriaGridListProps<T>, 'children'> {\n /** Whether the list uses virtual scrolling. */\n isVirtualized?: boolean;\n /**\n * Whether typeahead navigation is disabled.\n *\n * @default false\n */\n disallowTypeAhead?: boolean;\n /**\n * An optional keyboard delegate implementation for type to select,\n * to override the default.\n */\n keyboardDelegate?: KeyboardDelegate;\n /**\n * A delegate object that provides layout information for items in the collection.\n * By default this uses the DOM, but this can be overridden to implement things like\n * virtualized scrolling.\n */\n layoutDelegate?: LayoutDelegate;\n /**\n * Whether focus should wrap around when the end/start is reached.\n *\n * @default false\n */\n shouldFocusWrap?: boolean;\n /**\n * The behavior of links in the collection.\n * - 'action': link behaves like onAction.\n * - 'selection': link follows selection interactions (e.g. if URL drives selection).\n * - 'override': links override all other interactions (link items are not selectable).\n *\n * @default 'action'\n */\n linkBehavior?: 'action' | 'selection' | 'override';\n /**\n * Which item in the collection to focus when tabbing into the collection. Overrides default\n * roving tab index like behavior.\n *\n * @private\n */\n UNSTABLE_focusOnEntry?: 'first' | 'last';\n}\n\nexport interface GridListAria {\n /** Props for the grid element. */\n gridProps: DOMAttributes;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a list component with interactive\n * children. A grid list displays data in a single column and enables a user to navigate its\n * contents via directional navigation keys.\n *\n * @param props - Props for the list.\n * @param state - State for the list, as returned by `useListState`.\n * @param ref - The ref attached to the list element.\n */\nexport function useGridList<T>(\n props: AriaGridListOptions<T>,\n state: ListState<T>,\n ref: RefObject<HTMLElement | null>\n): GridListAria {\n let {\n isVirtualized,\n keyboardDelegate,\n layoutDelegate,\n onAction,\n disallowTypeAhead,\n linkBehavior = 'action',\n keyboardNavigationBehavior = 'arrow',\n escapeKeyBehavior = 'clearSelection',\n shouldSelectOnPressUp\n } = props;\n\n if (!props['aria-label'] && !props['aria-labelledby']) {\n console.warn('An aria-label or aria-labelledby prop is required for accessibility.');\n }\n\n let {listProps} = useSelectableList({\n selectionManager: state.selectionManager,\n collection: state.collection,\n disabledKeys: state.disabledKeys,\n ref,\n keyboardDelegate,\n layoutDelegate,\n isVirtualized,\n selectOnFocus: state.selectionManager.selectionBehavior === 'replace',\n shouldFocusWrap: props.shouldFocusWrap,\n linkBehavior,\n disallowTypeAhead,\n autoFocus: props.autoFocus,\n escapeKeyBehavior,\n UNSTABLE_focusOnEntry: props.UNSTABLE_focusOnEntry\n });\n\n let id = useId(props.id);\n listMap.set(state, {\n id,\n onAction,\n linkBehavior,\n keyboardNavigationBehavior,\n shouldSelectOnPressUp\n });\n\n let descriptionProps = useHighlightSelectionDescription({\n selectionManager: state.selectionManager,\n hasItemActions: !!onAction\n });\n\n let hasTabbableChild = useHasTabbableChild(ref, {\n isDisabled: state.collection.size !== 0\n });\n\n let domProps = filterDOMProps(props, {labelable: true});\n let gridProps: DOMAttributes = mergeProps(\n domProps,\n {\n role: 'grid',\n id,\n 'aria-multiselectable':\n state.selectionManager.selectionMode === 'multiple' ? 'true' : undefined\n },\n // If collection is empty, make sure the grid is tabbable unless there is a child tabbable element.\n state.collection.size === 0 ? {tabIndex: hasTabbableChild ? -1 : 0} : listProps,\n descriptionProps\n );\n\n if (isVirtualized) {\n gridProps['aria-rowcount'] = state.collection.size;\n gridProps['aria-colcount'] = 1;\n }\n\n useGridSelectionAnnouncement({}, state);\n\n return {\n gridProps\n };\n}\n"],"names":[],"version":3,"file":"useGridList.mjs.map"}
@@ -5,6 +5,7 @@ var $9fb4ac1cc58342cc$exports = require("../focus/FocusScope.cjs");
5
5
  var $daad9bac4699131f$exports = require("./utils.cjs");
6
6
  var $d865e4ff74ef4a73$exports = require("../utils/getScrollParent.cjs");
7
7
  var $d0df89f3abe2c2ca$exports = require("../interactions/useFocusVisible.cjs");
8
+ var $48f566b6becd50da$exports = require("../utils/isFocusable.cjs");
8
9
  var $89b39774f3b79dbb$exports = require("../utils/mergeProps.cjs");
9
10
  var $9a1324d6ffd8bbb0$exports = require("../utils/scrollIntoView.cjs");
10
11
  var $f38c7e3583533f40$exports = require("../selection/useSelectableItem.cjs");
@@ -43,12 +44,13 @@ $parcel$export(module.exports, "useGridListItem", function () { return $d07dc266
43
44
 
44
45
 
45
46
 
47
+
46
48
  const $d07dc266c3dc14c0$var$EXPANSION_KEYS = {
47
- 'expand': {
49
+ expand: {
48
50
  ltr: 'ArrowRight',
49
51
  rtl: 'ArrowLeft'
50
52
  },
51
- 'collapse': {
53
+ collapse: {
52
54
  ltr: 'ArrowLeft',
53
55
  rtl: 'ArrowRight'
54
56
  }
@@ -117,25 +119,7 @@ function $d07dc266c3dc14c0$export$9610e69494fadfd2(props, state, ref) {
117
119
  if (!(0, $da02ee888921bc9e$exports.nodeContains)(e.currentTarget, (0, $da02ee888921bc9e$exports.getEventTarget)(e)) || !ref.current || !activeElement) return;
118
120
  let walker = (0, $9fb4ac1cc58342cc$exports.getFocusableTreeWalker)(ref.current);
119
121
  walker.currentNode = activeElement;
120
- if ('expandedKeys' in state && activeElement === ref.current) {
121
- if (e.key === $d07dc266c3dc14c0$var$EXPANSION_KEYS['expand'][direction] && state.selectionManager.focusedKey === node.key && hasChildRows && !state.expandedKeys.has(node.key)) {
122
- state.toggleKey(node.key);
123
- e.stopPropagation();
124
- return;
125
- } else if (e.key === $d07dc266c3dc14c0$var$EXPANSION_KEYS['collapse'][direction] && state.selectionManager.focusedKey === node.key) {
126
- // If item is collapsible, collapse it; else move to parent
127
- if (hasChildRows && state.expandedKeys.has(node.key)) {
128
- state.toggleKey(node.key);
129
- e.stopPropagation();
130
- return;
131
- } else if (!state.expandedKeys.has(node.key) && node.parentKey) {
132
- // Item is a leaf or already collapsed, move focus to parent
133
- state.selectionManager.setFocusedKey(node.parentKey);
134
- e.stopPropagation();
135
- return;
136
- }
137
- }
138
- }
122
+ if ($d07dc266c3dc14c0$var$handleTreeExpansionKeys(e, state, node, hasChildRows, direction, activeElement, ref.current)) return;
139
123
  switch(e.key){
140
124
  case 'ArrowLeft':
141
125
  if (keyboardNavigationBehavior === 'arrow') {
@@ -160,6 +144,7 @@ function $d07dc266c3dc14c0$export$9610e69494fadfd2(props, state, ref) {
160
144
  } else {
161
145
  walker.currentNode = ref.current;
162
146
  let lastElement = $d07dc266c3dc14c0$var$last(walker);
147
+ // oxlint-disable-next-line max-depth
163
148
  if (lastElement) {
164
149
  (0, $4a053a4bf25e52fb$exports.focusSafely)(lastElement);
165
150
  (0, $9a1324d6ffd8bbb0$exports.scrollIntoViewport)(lastElement, {
@@ -191,6 +176,7 @@ function $d07dc266c3dc14c0$export$9610e69494fadfd2(props, state, ref) {
191
176
  } else {
192
177
  walker.currentNode = ref.current;
193
178
  let lastElement = $d07dc266c3dc14c0$var$last(walker);
179
+ // oxlint-disable-next-line max-depth
194
180
  if (lastElement) {
195
181
  (0, $4a053a4bf25e52fb$exports.focusSafely)(lastElement);
196
182
  (0, $9a1324d6ffd8bbb0$exports.scrollIntoViewport)(lastElement, {
@@ -230,6 +216,16 @@ function $d07dc266c3dc14c0$export$9610e69494fadfd2(props, state, ref) {
230
216
  let onKeyDown = (e)=>{
231
217
  let activeElement = (0, $da02ee888921bc9e$exports.getActiveElement)();
232
218
  if (!(0, $da02ee888921bc9e$exports.nodeContains)(e.currentTarget, (0, $da02ee888921bc9e$exports.getEventTarget)(e)) || !ref.current || !activeElement) return;
219
+ if (keyboardNavigationBehavior === 'tab') {
220
+ // Stop propagation for all events that originate from the children of the gridlist item since we don't want to trigger
221
+ // grid level interactions (row navigation/typeselect/etc)
222
+ // exception made for Tab since that needs to propagate to useSelectableCollection to tab out of the gridlist, might be others?
223
+ if ((0, $da02ee888921bc9e$exports.getEventTarget)(e) !== ref.current && e.key !== 'Tab') {
224
+ e.stopPropagation();
225
+ return;
226
+ }
227
+ if ($d07dc266c3dc14c0$var$handleTreeExpansionKeys(e, state, node, hasChildRows, direction, activeElement, ref.current)) return;
228
+ }
233
229
  switch(e.key){
234
230
  case 'Tab':
235
231
  if (keyboardNavigationBehavior === 'tab') {
@@ -257,8 +253,7 @@ function $d07dc266c3dc14c0$export$9610e69494fadfd2(props, state, ref) {
257
253
  // }
258
254
  let rowProps = (0, $89b39774f3b79dbb$exports.mergeProps)(itemProps, linkProps, {
259
255
  role: 'row',
260
- onKeyDownCapture: onKeyDownCapture,
261
- onKeyDown: onKeyDown,
256
+ onKeyDownCapture: keyboardNavigationBehavior === 'arrow' ? onKeyDownCapture : undefined,
262
257
  onFocus: onFocus,
263
258
  // 'aria-label': [(node.textValue || undefined), rowAnnouncement].filter(Boolean).join(', '),
264
259
  'aria-label': node['aria-label'] || node.textValue || undefined,
@@ -267,6 +262,33 @@ function $d07dc266c3dc14c0$export$9610e69494fadfd2(props, state, ref) {
267
262
  'aria-labelledby': descriptionId && (node['aria-label'] || node.textValue) ? `${(0, $daad9bac4699131f$exports.getRowId)(state, node.key)} ${descriptionId}` : undefined,
268
263
  id: (0, $daad9bac4699131f$exports.getRowId)(state, node.key)
269
264
  });
265
+ // we need to guard against space/enter triggering selection/row link via usePress (from itemProps) so check if propagation
266
+ // is stopped. this also fixes space not working in a textfield in a tree parent row
267
+ let baseOnKeyDown = rowProps.onKeyDown;
268
+ rowProps.onKeyDown = (e)=>{
269
+ onKeyDown(e);
270
+ if (!e.isPropagationStopped()) baseOnKeyDown?.(e);
271
+ };
272
+ // guard against presses triggering row selecition when they happen on elements within the row
273
+ // am currently assuming if it is tabbable it is interactive, but maybe can use a different kind of check
274
+ let baseOnPointerDown = rowProps.onPointerDown;
275
+ rowProps.onPointerDown = (e)=>{
276
+ let target = (0, $da02ee888921bc9e$exports.getEventTarget)(e);
277
+ if (target && target !== ref.current && (0, $48f566b6becd50da$exports.isTabbable)(target)) {
278
+ e.stopPropagation();
279
+ return;
280
+ }
281
+ baseOnPointerDown?.(e);
282
+ };
283
+ let baseOnMouseDown = rowProps.onMouseDown;
284
+ rowProps.onMouseDown = (e)=>{
285
+ let target = (0, $da02ee888921bc9e$exports.getEventTarget)(e);
286
+ if (target && target !== ref.current && (0, $48f566b6becd50da$exports.isTabbable)(target)) {
287
+ e.stopPropagation();
288
+ return;
289
+ }
290
+ baseOnMouseDown?.(e);
291
+ };
270
292
  if (isVirtualized) {
271
293
  let { collection: collection } = state;
272
294
  let nodes = [
@@ -293,6 +315,27 @@ function $d07dc266c3dc14c0$export$9610e69494fadfd2(props, state, ref) {
293
315
  ...itemStates
294
316
  };
295
317
  }
318
+ function $d07dc266c3dc14c0$var$handleTreeExpansionKeys(e, state, node, hasChildRows, direction, activeElement, rowRef) {
319
+ if (!('expandedKeys' in state) || activeElement !== rowRef) return false;
320
+ if (e.key === $d07dc266c3dc14c0$var$EXPANSION_KEYS['expand'][direction] && state.selectionManager.focusedKey === node.key && hasChildRows && !state.expandedKeys.has(node.key)) {
321
+ state.toggleKey(node.key);
322
+ e.stopPropagation();
323
+ return true;
324
+ } else if (e.key === $d07dc266c3dc14c0$var$EXPANSION_KEYS['collapse'][direction] && state.selectionManager.focusedKey === node.key) {
325
+ // If item is collapsible, collapse it; else move to parent
326
+ if (hasChildRows && state.expandedKeys.has(node.key)) {
327
+ state.toggleKey(node.key);
328
+ e.stopPropagation();
329
+ return true;
330
+ } else if (!state.expandedKeys.has(node.key) && node.parentKey && state.collection.getItem(node.parentKey)?.type === 'item') {
331
+ // Item is a leaf or already collapsed, move focus to parent
332
+ state.selectionManager.setFocusedKey(node.parentKey);
333
+ e.stopPropagation();
334
+ return true;
335
+ }
336
+ }
337
+ return false;
338
+ }
296
339
  function $d07dc266c3dc14c0$var$last(walker) {
297
340
  let next = null;
298
341
  let last = null;
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/react-aria/src/gridlist/useGridListItem.ts"],"sourcesContent":["/*\n * Copyright 2022 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 {chain} from '../utils/chain';\n\nimport {Collection, DOMAttributes, FocusableElement, Key, RefObject, Node as RSNode} from '@react-types/shared';\nimport {focusSafely} from '../interactions/focusSafely';\nimport {getActiveElement, getEventTarget, isFocusWithin, nodeContains} from '../utils/shadowdom/DOMFunctions';\nimport {getFocusableTreeWalker} from '../focus/FocusScope';\nimport {getRowId, listMap} from './utils';\nimport {getScrollParent} from '../utils/getScrollParent';\nimport {HTMLAttributes, KeyboardEvent as ReactKeyboardEvent, useRef} from 'react';\nimport {isFocusVisible} from '../interactions/useFocusVisible';\nimport type {ListState} from 'react-stately/useListState';\nimport {mergeProps} from '../utils/mergeProps';\nimport {scrollIntoViewport} from '../utils/scrollIntoView';\nimport {SelectableItemStates, useSelectableItem} from '../selection/useSelectableItem';\nimport type {TreeState} from 'react-stately/useTreeState';\nimport {useLocale} from '../i18n/I18nProvider';\nimport {useSlotId} from '../utils/useId';\nimport {useSyntheticLinkProps} from '../utils/openLink';\n\nexport interface AriaGridListItemOptions {\n /** An object representing the list item. Contains all the relevant information that makes up the list row. */\n node: RSNode<unknown>,\n /** Whether the list row is contained in a virtual scroller. */\n isVirtualized?: boolean,\n /** Whether selection should occur on press up instead of press down. */\n shouldSelectOnPressUp?: boolean,\n /** Whether this item has children, even if not loaded yet. */\n hasChildItems?: boolean\n}\n\nexport interface GridListItemAria extends SelectableItemStates {\n /** Props for the list row element. */\n rowProps: DOMAttributes,\n /** Props for the grid cell element within the list row. */\n gridCellProps: DOMAttributes,\n /** Props for the list item description element, if any. */\n descriptionProps: DOMAttributes\n}\n\nconst EXPANSION_KEYS = {\n 'expand': {\n ltr: 'ArrowRight',\n rtl: 'ArrowLeft'\n },\n 'collapse': {\n ltr: 'ArrowLeft',\n rtl: 'ArrowRight'\n }\n};\n\n/**\n * Provides the behavior and accessibility implementation for a row in a grid list.\n * @param props - Props for the row.\n * @param state - State of the parent list, as returned by `useListState`.\n * @param ref - The ref attached to the row element.\n */\nexport function useGridListItem<T>(props: AriaGridListItemOptions, state: ListState<T> | TreeState<T>, ref: RefObject<FocusableElement | null>): GridListItemAria {\n // Copied from useGridCell + some modifications to make it not so grid specific\n let {\n node,\n isVirtualized\n } = props;\n\n // let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-aria/gridlist');\n let {direction} = useLocale();\n let {onAction, linkBehavior, keyboardNavigationBehavior, shouldSelectOnPressUp} = listMap.get(state)!;\n let descriptionId = useSlotId();\n\n // We need to track the key of the item at the time it was last focused so that we force\n // focus to go to the item when the DOM node is reused for a different item in a virtualizer.\n let keyWhenFocused = useRef<Key | null>(null);\n let focus = () => {\n // Don't shift focus to the row if the active element is a element within the row already\n // (e.g. clicking on a row button)\n if (\n ref.current !== null &&\n ((keyWhenFocused.current != null && node.key !== keyWhenFocused.current) ||\n !isFocusWithin(ref.current))\n ) {\n focusSafely(ref.current);\n }\n };\n\n let treeGridRowProps: HTMLAttributes<HTMLElement> = {};\n let hasChildRows = props.hasChildItems;\n let hasLink = state.selectionManager.isLink(node.key);\n if (node != null && 'expandedKeys' in state) {\n // TODO: ideally node.hasChildNodes would be a way to tell if a row has child nodes, but the row's contents make it so that value is always\n // true...\n let children = state.collection.getChildren?.(node.key);\n hasChildRows = hasChildRows || [...(children ?? [])].length > 1;\n\n if (onAction == null && !hasLink && state.selectionManager.selectionMode === 'none' && hasChildRows) {\n onAction = () => state.toggleKey(node.key);\n }\n\n let isExpanded = hasChildRows ? state.expandedKeys.has(node.key) : undefined;\n let setSize = 1;\n let index = node.index;\n if (node.level >= 0 && node?.parentKey != null) {\n let parent = state.collection.getItem(node.parentKey);\n if (parent) {\n // siblings must exist because our original node exists\n let siblings = getDirectChildren(parent, state.collection);\n setSize = [...siblings].filter(row => row.type === 'item').length;\n if (index > 0 && siblings[0].type !== 'item') {\n index -= 1; // subtract one for the parent item's content node\n }\n }\n } else {\n setSize = [...state.collection].filter(row => row.level === 0 && row.type === 'item').length;\n }\n\n treeGridRowProps = {\n 'aria-expanded': isExpanded,\n 'aria-level': node.level + 1,\n 'aria-posinset': index + 1,\n 'aria-setsize': setSize\n };\n }\n\n let {itemProps, ...itemStates} = useSelectableItem({\n selectionManager: state.selectionManager,\n key: node.key,\n ref,\n isVirtualized,\n shouldSelectOnPressUp: props.shouldSelectOnPressUp || shouldSelectOnPressUp,\n onAction: onAction || node.props?.onAction ? chain(node.props?.onAction, onAction ? () => onAction(node.key) : undefined) : undefined,\n focus,\n linkBehavior\n });\n\n let onKeyDownCapture = (e: ReactKeyboardEvent) => {\n let activeElement = getActiveElement();\n if (!nodeContains(e.currentTarget, getEventTarget(e) as Element) || !ref.current || !activeElement) {\n return;\n }\n\n let walker = getFocusableTreeWalker(ref.current);\n walker.currentNode = activeElement;\n\n if ('expandedKeys' in state && activeElement === ref.current) {\n if ((e.key === EXPANSION_KEYS['expand'][direction]) && state.selectionManager.focusedKey === node.key && hasChildRows && !state.expandedKeys.has(node.key)) {\n state.toggleKey(node.key);\n e.stopPropagation();\n return;\n } else if ((e.key === EXPANSION_KEYS['collapse'][direction]) && state.selectionManager.focusedKey === node.key) {\n // If item is collapsible, collapse it; else move to parent\n if (hasChildRows && state.expandedKeys.has(node.key)) {\n state.toggleKey(node.key);\n e.stopPropagation();\n return;\n } else if (\n !state.expandedKeys.has(node.key) &&\n node.parentKey\n ) {\n // Item is a leaf or already collapsed, move focus to parent\n state.selectionManager.setFocusedKey(node.parentKey);\n e.stopPropagation();\n return;\n }\n }\n }\n\n switch (e.key) {\n case 'ArrowLeft': {\n if (keyboardNavigationBehavior === 'arrow') {\n // Find the next focusable element within the row.\n let focusable = direction === 'rtl'\n ? walker.nextNode() as FocusableElement\n : walker.previousNode() as FocusableElement;\n\n if (focusable) {\n e.preventDefault();\n e.stopPropagation();\n focusSafely(focusable);\n scrollIntoViewport(focusable, {containingElement: getScrollParent(ref.current)});\n } else {\n // If there is no next focusable child, then return focus back to the row\n e.preventDefault();\n e.stopPropagation();\n if (direction === 'rtl') {\n focusSafely(ref.current);\n scrollIntoViewport(ref.current, {containingElement: getScrollParent(ref.current)});\n } else {\n walker.currentNode = ref.current;\n let lastElement = last(walker);\n if (lastElement) {\n focusSafely(lastElement);\n scrollIntoViewport(lastElement, {containingElement: getScrollParent(ref.current)});\n }\n }\n }\n }\n break;\n }\n case 'ArrowRight': {\n if (keyboardNavigationBehavior === 'arrow') {\n let focusable = direction === 'rtl'\n ? walker.previousNode() as FocusableElement\n : walker.nextNode() as FocusableElement;\n\n if (focusable) {\n e.preventDefault();\n e.stopPropagation();\n focusSafely(focusable);\n scrollIntoViewport(focusable, {containingElement: getScrollParent(ref.current)});\n } else {\n e.preventDefault();\n e.stopPropagation();\n if (direction === 'ltr') {\n focusSafely(ref.current);\n scrollIntoViewport(ref.current, {containingElement: getScrollParent(ref.current)});\n } else {\n walker.currentNode = ref.current;\n let lastElement = last(walker);\n if (lastElement) {\n focusSafely(lastElement);\n scrollIntoViewport(lastElement, {containingElement: getScrollParent(ref.current)});\n }\n }\n }\n }\n break;\n }\n case 'ArrowUp':\n case 'ArrowDown':\n // Prevent this event from reaching row children, e.g. menu buttons. We want arrow keys to navigate\n // to the row above/below instead. We need to re-dispatch the event from a higher parent so it still\n // bubbles and gets handled by useSelectableCollection.\n if (!e.altKey && nodeContains(ref.current, getEventTarget(e) as Element)) {\n e.stopPropagation();\n e.preventDefault();\n ref.current.parentElement?.dispatchEvent(\n new KeyboardEvent(e.nativeEvent.type, e.nativeEvent)\n );\n }\n break;\n }\n };\n\n let onFocus = (e) => {\n keyWhenFocused.current = node.key;\n if (getEventTarget(e) !== ref.current) {\n // useSelectableItem only handles setting the focused key when\n // the focused element is the row itself. We also want to\n // set the focused key when a child element receives focus.\n // If focus is currently visible (e.g. the user is navigating with the keyboard),\n // then skip this. We want to restore focus to the previously focused row\n // in that case since the list should act like a single tab stop.\n if (!isFocusVisible()) {\n state.selectionManager.setFocusedKey(node.key);\n }\n return;\n }\n };\n\n let onKeyDown = (e) => {\n let activeElement = getActiveElement();\n if (!nodeContains(e.currentTarget, getEventTarget(e) as Element) || !ref.current || !activeElement) {\n return;\n }\n\n switch (e.key) {\n case 'Tab': {\n if (keyboardNavigationBehavior === 'tab') {\n // If there is another focusable element within this item, stop propagation so the tab key\n // is handled by the browser and not by useSelectableCollection (which would take us out of the list).\n let walker = getFocusableTreeWalker(ref.current, {tabbable: true});\n walker.currentNode = activeElement;\n let next = e.shiftKey ? walker.previousNode() : walker.nextNode();\n\n if (next) {\n e.stopPropagation();\n }\n }\n }\n }\n };\n\n let syntheticLinkProps = useSyntheticLinkProps(node.props);\n let linkProps = itemStates.hasAction ? syntheticLinkProps : {};\n // TODO: re-add when we get translations and fix this for iOS VO\n // let rowAnnouncement;\n // if (onAction) {\n // rowAnnouncement = stringFormatter.format('hasActionAnnouncement');\n // } else if (hasLink) {\n // rowAnnouncement = stringFormatter.format('hasLinkAnnouncement', {\n // link: node.props.href\n // });\n // }\n\n let rowProps: DOMAttributes = mergeProps(itemProps, linkProps, {\n role: 'row',\n onKeyDownCapture,\n onKeyDown,\n onFocus,\n // 'aria-label': [(node.textValue || undefined), rowAnnouncement].filter(Boolean).join(', '),\n 'aria-label': node['aria-label'] || node.textValue || undefined,\n 'aria-selected': state.selectionManager.canSelectItem(node.key) ? state.selectionManager.isSelected(node.key) : undefined,\n 'aria-disabled': state.selectionManager.isDisabled(node.key) || undefined,\n 'aria-labelledby': descriptionId && (node['aria-label'] || node.textValue) ? `${getRowId(state, node.key)} ${descriptionId}` : undefined,\n id: getRowId(state, node.key)\n });\n\n if (isVirtualized) {\n let {collection} = state;\n let nodes = [...collection];\n // TODO: refactor ListCollection to store an absolute index of a node's position?\n rowProps['aria-rowindex'] = nodes.find(node => node.type === 'section') ? [...collection.getKeys()].filter((key) => collection.getItem(key)?.type !== 'section').findIndex((key) => key === node.key) + 1 : node.index + 1;\n }\n\n let gridCellProps = {\n role: 'gridcell',\n 'aria-colindex': 1\n };\n\n // TODO: should isExpanded and hasChildRows be a item state that gets returned by the hook?\n return {\n rowProps: {...mergeProps(rowProps, treeGridRowProps)},\n gridCellProps,\n descriptionProps: {\n id: descriptionId\n },\n ...itemStates\n };\n}\n\nfunction last(walker: TreeWalker) {\n let next: FocusableElement | null = null;\n let last: FocusableElement | null = null;\n do {\n last = walker.lastChild() as FocusableElement | null;\n if (last) {\n next = last;\n }\n } while (last);\n return next;\n}\n\nfunction getDirectChildren<T>(parent: RSNode<T>, collection: Collection<RSNode<T>>) {\n // We can't assume that we can use firstChildKey because if a person builds a tree using hooks, they would not have access to that property (using type Node vs CollectionNode)\n // Instead, get all children and start at the first node (rather than just using firstChildKey) and only look at its siblings\n let children = collection.getChildren?.(parent.key);\n let childArray = children ? Array.from(children) : [];\n let node = childArray.length > 0 ? childArray[0] : null;\n let siblings: RSNode<T>[] = [];\n while (node) {\n siblings.push(node);\n node = node.nextKey != null ? collection.getItem(node.nextKey) : null;\n }\n return siblings;\n}\n"],"names":[],"version":3,"file":"useGridListItem.cjs.map"}
1
+ {"mappings":"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","sources":["packages/react-aria/src/gridlist/useGridListItem.ts"],"sourcesContent":["/*\n * Copyright 2022 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 {chain} from '../utils/chain';\nimport {\n Collection,\n DOMAttributes,\n FocusableElement,\n Key,\n RefObject,\n Node as RSNode\n} from '@react-types/shared';\nimport {focusSafely} from '../interactions/focusSafely';\nimport {\n getActiveElement,\n getEventTarget,\n isFocusWithin,\n nodeContains\n} from '../utils/shadowdom/DOMFunctions';\nimport {getFocusableTreeWalker} from '../focus/FocusScope';\nimport {getRowId, listMap} from './utils';\nimport {getScrollParent} from '../utils/getScrollParent';\nimport {\n HTMLAttributes,\n KeyboardEvent as ReactKeyboardEvent,\n MouseEvent as ReactMouseEvent,\n PointerEvent as ReactPointerEvent,\n useRef\n} from 'react';\nimport {isFocusVisible} from '../interactions/useFocusVisible';\nimport {isTabbable} from '../utils/isFocusable';\nimport type {ListState} from 'react-stately/useListState';\nimport {mergeProps} from '../utils/mergeProps';\nimport {scrollIntoViewport} from '../utils/scrollIntoView';\nimport {SelectableItemStates, useSelectableItem} from '../selection/useSelectableItem';\nimport type {TreeState} from 'react-stately/useTreeState';\nimport {useLocale} from '../i18n/I18nProvider';\nimport {useSlotId} from '../utils/useId';\nimport {useSyntheticLinkProps} from '../utils/openLink';\n\nexport interface AriaGridListItemOptions {\n /**\n * An object representing the list item. Contains all the relevant information that makes up the\n * list row.\n */\n node: RSNode<unknown>;\n /** Whether the list row is contained in a virtual scroller. */\n isVirtualized?: boolean;\n /** Whether selection should occur on press up instead of press down. */\n shouldSelectOnPressUp?: boolean;\n /** Whether this item has children, even if not loaded yet. */\n hasChildItems?: boolean;\n}\n\nexport interface GridListItemAria extends SelectableItemStates {\n /** Props for the list row element. */\n rowProps: DOMAttributes;\n /** Props for the grid cell element within the list row. */\n gridCellProps: DOMAttributes;\n /** Props for the list item description element, if any. */\n descriptionProps: DOMAttributes;\n}\n\nconst EXPANSION_KEYS = {\n expand: {\n ltr: 'ArrowRight',\n rtl: 'ArrowLeft'\n },\n collapse: {\n ltr: 'ArrowLeft',\n rtl: 'ArrowRight'\n }\n};\n\n/**\n * Provides the behavior and accessibility implementation for a row in a grid list.\n *\n * @param props - Props for the row.\n * @param state - State of the parent list, as returned by `useListState`.\n * @param ref - The ref attached to the row element.\n */\nexport function useGridListItem<T>(\n props: AriaGridListItemOptions,\n state: ListState<T> | TreeState<T>,\n ref: RefObject<FocusableElement | null>\n): GridListItemAria {\n // Copied from useGridCell + some modifications to make it not so grid specific\n let {node, isVirtualized} = props;\n\n // let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-aria/gridlist');\n let {direction} = useLocale();\n let {onAction, linkBehavior, keyboardNavigationBehavior, shouldSelectOnPressUp} =\n listMap.get(state)!;\n let descriptionId = useSlotId();\n\n // We need to track the key of the item at the time it was last focused so that we force\n // focus to go to the item when the DOM node is reused for a different item in a virtualizer.\n let keyWhenFocused = useRef<Key | null>(null);\n let focus = () => {\n // Don't shift focus to the row if the active element is a element within the row already\n // (e.g. clicking on a row button)\n if (\n ref.current !== null &&\n ((keyWhenFocused.current != null && node.key !== keyWhenFocused.current) ||\n !isFocusWithin(ref.current))\n ) {\n focusSafely(ref.current);\n }\n };\n\n let treeGridRowProps: HTMLAttributes<HTMLElement> = {};\n let hasChildRows = props.hasChildItems;\n let hasLink = state.selectionManager.isLink(node.key);\n if (node != null && 'expandedKeys' in state) {\n // TODO: ideally node.hasChildNodes would be a way to tell if a row has child nodes, but the row's contents make it so that value is always\n // true...\n let children = state.collection.getChildren?.(node.key);\n hasChildRows = hasChildRows || [...(children ?? [])].length > 1;\n\n if (\n onAction == null &&\n !hasLink &&\n state.selectionManager.selectionMode === 'none' &&\n hasChildRows\n ) {\n onAction = () => state.toggleKey(node.key);\n }\n\n let isExpanded = hasChildRows ? state.expandedKeys.has(node.key) : undefined;\n let setSize = 1;\n let index = node.index;\n if (node.level >= 0 && node?.parentKey != null) {\n let parent = state.collection.getItem(node.parentKey);\n if (parent) {\n // siblings must exist because our original node exists\n let siblings = getDirectChildren(parent, state.collection);\n setSize = [...siblings].filter(row => row.type === 'item').length;\n if (index > 0 && siblings[0].type !== 'item') {\n index -= 1; // subtract one for the parent item's content node\n }\n }\n } else {\n setSize = [...state.collection].filter(row => row.level === 0 && row.type === 'item').length;\n }\n\n treeGridRowProps = {\n 'aria-expanded': isExpanded,\n 'aria-level': node.level + 1,\n 'aria-posinset': index + 1,\n 'aria-setsize': setSize\n };\n }\n\n let {itemProps, ...itemStates} = useSelectableItem({\n selectionManager: state.selectionManager,\n key: node.key,\n ref,\n isVirtualized,\n shouldSelectOnPressUp: props.shouldSelectOnPressUp || shouldSelectOnPressUp,\n onAction:\n onAction || node.props?.onAction\n ? chain(node.props?.onAction, onAction ? () => onAction(node.key) : undefined)\n : undefined,\n focus,\n linkBehavior\n });\n\n let onKeyDownCapture = (e: ReactKeyboardEvent) => {\n let activeElement = getActiveElement();\n if (\n !nodeContains(e.currentTarget, getEventTarget(e) as Element) ||\n !ref.current ||\n !activeElement\n ) {\n return;\n }\n\n let walker = getFocusableTreeWalker(ref.current);\n walker.currentNode = activeElement;\n\n if (\n handleTreeExpansionKeys(e, state, node, hasChildRows, direction, activeElement, ref.current)\n ) {\n return;\n }\n\n switch (e.key) {\n case 'ArrowLeft': {\n if (keyboardNavigationBehavior === 'arrow') {\n // Find the next focusable element within the row.\n let focusable =\n direction === 'rtl'\n ? (walker.nextNode() as FocusableElement)\n : (walker.previousNode() as FocusableElement);\n\n if (focusable) {\n e.preventDefault();\n e.stopPropagation();\n focusSafely(focusable);\n scrollIntoViewport(focusable, {containingElement: getScrollParent(ref.current)});\n } else {\n // If there is no next focusable child, then return focus back to the row\n e.preventDefault();\n e.stopPropagation();\n if (direction === 'rtl') {\n focusSafely(ref.current);\n scrollIntoViewport(ref.current, {containingElement: getScrollParent(ref.current)});\n } else {\n walker.currentNode = ref.current;\n let lastElement = last(walker);\n // oxlint-disable-next-line max-depth\n if (lastElement) {\n focusSafely(lastElement);\n scrollIntoViewport(lastElement, {containingElement: getScrollParent(ref.current)});\n }\n }\n }\n }\n break;\n }\n case 'ArrowRight': {\n if (keyboardNavigationBehavior === 'arrow') {\n let focusable =\n direction === 'rtl'\n ? (walker.previousNode() as FocusableElement)\n : (walker.nextNode() as FocusableElement);\n\n if (focusable) {\n e.preventDefault();\n e.stopPropagation();\n focusSafely(focusable);\n scrollIntoViewport(focusable, {containingElement: getScrollParent(ref.current)});\n } else {\n e.preventDefault();\n e.stopPropagation();\n if (direction === 'ltr') {\n focusSafely(ref.current);\n scrollIntoViewport(ref.current, {containingElement: getScrollParent(ref.current)});\n } else {\n walker.currentNode = ref.current;\n let lastElement = last(walker);\n // oxlint-disable-next-line max-depth\n if (lastElement) {\n focusSafely(lastElement);\n scrollIntoViewport(lastElement, {containingElement: getScrollParent(ref.current)});\n }\n }\n }\n }\n break;\n }\n case 'ArrowUp':\n case 'ArrowDown':\n // Prevent this event from reaching row children, e.g. menu buttons. We want arrow keys to navigate\n // to the row above/below instead. We need to re-dispatch the event from a higher parent so it still\n // bubbles and gets handled by useSelectableCollection.\n if (!e.altKey && nodeContains(ref.current, getEventTarget(e) as Element)) {\n e.stopPropagation();\n e.preventDefault();\n ref.current.parentElement?.dispatchEvent(\n new KeyboardEvent(e.nativeEvent.type, e.nativeEvent)\n );\n }\n break;\n }\n };\n\n let onFocus = e => {\n keyWhenFocused.current = node.key;\n if (getEventTarget(e) !== ref.current) {\n // useSelectableItem only handles setting the focused key when\n // the focused element is the row itself. We also want to\n // set the focused key when a child element receives focus.\n // If focus is currently visible (e.g. the user is navigating with the keyboard),\n // then skip this. We want to restore focus to the previously focused row\n // in that case since the list should act like a single tab stop.\n if (!isFocusVisible()) {\n state.selectionManager.setFocusedKey(node.key);\n }\n return;\n }\n };\n\n let onKeyDown = (e: ReactKeyboardEvent) => {\n let activeElement = getActiveElement();\n if (\n !nodeContains(e.currentTarget, getEventTarget(e) as Element) ||\n !ref.current ||\n !activeElement\n ) {\n return;\n }\n\n if (keyboardNavigationBehavior === 'tab') {\n // Stop propagation for all events that originate from the children of the gridlist item since we don't want to trigger\n // grid level interactions (row navigation/typeselect/etc)\n // exception made for Tab since that needs to propagate to useSelectableCollection to tab out of the gridlist, might be others?\n if (getEventTarget(e) !== ref.current && e.key !== 'Tab') {\n e.stopPropagation();\n return;\n }\n\n if (\n handleTreeExpansionKeys(e, state, node, hasChildRows, direction, activeElement, ref.current)\n ) {\n return;\n }\n }\n\n switch (e.key) {\n case 'Tab': {\n if (keyboardNavigationBehavior === 'tab') {\n // If there is another focusable element within this item, stop propagation so the tab key\n // is handled by the browser and not by useSelectableCollection (which would take us out of the list).\n let walker = getFocusableTreeWalker(ref.current, {tabbable: true});\n walker.currentNode = activeElement;\n let next = e.shiftKey ? walker.previousNode() : walker.nextNode();\n\n if (next) {\n e.stopPropagation();\n }\n }\n }\n }\n };\n\n let syntheticLinkProps = useSyntheticLinkProps(node.props);\n let linkProps = itemStates.hasAction ? syntheticLinkProps : {};\n // TODO: re-add when we get translations and fix this for iOS VO\n // let rowAnnouncement;\n // if (onAction) {\n // rowAnnouncement = stringFormatter.format('hasActionAnnouncement');\n // } else if (hasLink) {\n // rowAnnouncement = stringFormatter.format('hasLinkAnnouncement', {\n // link: node.props.href\n // });\n // }\n\n let rowProps: DOMAttributes = mergeProps(itemProps, linkProps, {\n role: 'row',\n onKeyDownCapture: keyboardNavigationBehavior === 'arrow' ? onKeyDownCapture : undefined,\n onFocus,\n // 'aria-label': [(node.textValue || undefined), rowAnnouncement].filter(Boolean).join(', '),\n 'aria-label': node['aria-label'] || node.textValue || undefined,\n 'aria-selected': state.selectionManager.canSelectItem(node.key)\n ? state.selectionManager.isSelected(node.key)\n : undefined,\n 'aria-disabled': state.selectionManager.isDisabled(node.key) || undefined,\n 'aria-labelledby':\n descriptionId && (node['aria-label'] || node.textValue)\n ? `${getRowId(state, node.key)} ${descriptionId}`\n : undefined,\n id: getRowId(state, node.key)\n });\n\n // we need to guard against space/enter triggering selection/row link via usePress (from itemProps) so check if propagation\n // is stopped. this also fixes space not working in a textfield in a tree parent row\n let baseOnKeyDown = rowProps.onKeyDown;\n rowProps.onKeyDown = (e: ReactKeyboardEvent<FocusableElement>) => {\n onKeyDown(e as ReactKeyboardEvent);\n if (!e.isPropagationStopped()) {\n baseOnKeyDown?.(e);\n }\n };\n\n // guard against presses triggering row selecition when they happen on elements within the row\n // am currently assuming if it is tabbable it is interactive, but maybe can use a different kind of check\n let baseOnPointerDown = rowProps.onPointerDown;\n rowProps.onPointerDown = (e: ReactPointerEvent<FocusableElement>) => {\n let target = getEventTarget(e) as Element | null;\n if (target && target !== ref.current && isTabbable(target)) {\n e.stopPropagation();\n return;\n }\n baseOnPointerDown?.(e);\n };\n\n let baseOnMouseDown = rowProps.onMouseDown;\n rowProps.onMouseDown = (e: ReactMouseEvent<FocusableElement>) => {\n let target = getEventTarget(e) as Element | null;\n if (target && target !== ref.current && isTabbable(target)) {\n e.stopPropagation();\n return;\n }\n baseOnMouseDown?.(e);\n };\n\n if (isVirtualized) {\n let {collection} = state;\n let nodes = [...collection];\n // TODO: refactor ListCollection to store an absolute index of a node's position?\n rowProps['aria-rowindex'] = nodes.find(node => node.type === 'section')\n ? [...collection.getKeys()]\n .filter(key => collection.getItem(key)?.type !== 'section')\n .findIndex(key => key === node.key) + 1\n : node.index + 1;\n }\n\n let gridCellProps = {\n role: 'gridcell',\n 'aria-colindex': 1\n };\n\n // TODO: should isExpanded and hasChildRows be a item state that gets returned by the hook?\n return {\n rowProps: {...mergeProps(rowProps, treeGridRowProps)},\n gridCellProps,\n descriptionProps: {\n id: descriptionId\n },\n ...itemStates\n };\n}\n\nfunction handleTreeExpansionKeys<T>(\n e: ReactKeyboardEvent,\n state: ListState<T> | TreeState<T>,\n node: RSNode<unknown>,\n hasChildRows: boolean | undefined,\n direction: string,\n activeElement: Element | null,\n rowRef: FocusableElement | null\n): boolean {\n if (!('expandedKeys' in state) || activeElement !== rowRef) {\n return false;\n }\n if (\n e.key === EXPANSION_KEYS['expand'][direction] &&\n state.selectionManager.focusedKey === node.key &&\n hasChildRows &&\n !state.expandedKeys.has(node.key)\n ) {\n state.toggleKey(node.key);\n e.stopPropagation();\n return true;\n } else if (\n e.key === EXPANSION_KEYS['collapse'][direction] &&\n state.selectionManager.focusedKey === node.key\n ) {\n // If item is collapsible, collapse it; else move to parent\n if (hasChildRows && state.expandedKeys.has(node.key)) {\n state.toggleKey(node.key);\n e.stopPropagation();\n return true;\n } else if (\n !state.expandedKeys.has(node.key) &&\n node.parentKey &&\n state.collection.getItem(node.parentKey)?.type === 'item'\n ) {\n // Item is a leaf or already collapsed, move focus to parent\n state.selectionManager.setFocusedKey(node.parentKey);\n e.stopPropagation();\n return true;\n }\n }\n return false;\n}\n\nfunction last(walker: TreeWalker) {\n let next: FocusableElement | null = null;\n let last: FocusableElement | null = null;\n do {\n last = walker.lastChild() as FocusableElement | null;\n if (last) {\n next = last;\n }\n } while (last);\n return next;\n}\n\nfunction getDirectChildren<T>(parent: RSNode<T>, collection: Collection<RSNode<T>>) {\n // We can't assume that we can use firstChildKey because if a person builds a tree using hooks, they would not have access to that property (using type Node vs CollectionNode)\n // Instead, get all children and start at the first node (rather than just using firstChildKey) and only look at its siblings\n let children = collection.getChildren?.(parent.key);\n let childArray = children ? Array.from(children) : [];\n let node = childArray.length > 0 ? childArray[0] : null;\n let siblings: RSNode<T>[] = [];\n while (node) {\n siblings.push(node);\n node = node.nextKey != null ? collection.getItem(node.nextKey) : null;\n }\n return siblings;\n}\n"],"names":[],"version":3,"file":"useGridListItem.cjs.map"}
@@ -5,6 +5,7 @@ import {getFocusableTreeWalker as $903814aeb7d53b38$export$2d6ec8fc375ceafa} fro
5
5
  import {getRowId as $781ed2e01df48c52$export$f45c25170b9a99c2, listMap as $781ed2e01df48c52$export$5b9bb410392e3991} from "./utils.js";
6
6
  import {getScrollParent as $5b46e0a1626c2890$export$cfa2225e87938781} from "../utils/getScrollParent.js";
7
7
  import {isFocusVisible as $b50b1cc8a843ace7$export$b9b3dfddab17db27} from "../interactions/useFocusVisible.js";
8
+ import {isTabbable as $ee5e22534121197a$export$bebd5a1431fec25d} from "../utils/isFocusable.js";
8
9
  import {mergeProps as $64c36edd757dfa16$export$9d1611c77c2fe928} from "../utils/mergeProps.js";
9
10
  import {scrollIntoViewport as $6507765bd7f5ad94$export$c826860796309d1b} from "../utils/scrollIntoView.js";
10
11
  import {useSelectableItem as $0d8cf6a15fe85601$export$ecf600387e221c37} from "../selection/useSelectableItem.js";
@@ -37,12 +38,13 @@ import {useRef as $45hvd$useRef} from "react";
37
38
 
38
39
 
39
40
 
41
+
40
42
  const $7d08662b45460e3b$var$EXPANSION_KEYS = {
41
- 'expand': {
43
+ expand: {
42
44
  ltr: 'ArrowRight',
43
45
  rtl: 'ArrowLeft'
44
46
  },
45
- 'collapse': {
47
+ collapse: {
46
48
  ltr: 'ArrowLeft',
47
49
  rtl: 'ArrowRight'
48
50
  }
@@ -113,25 +115,7 @@ function $7d08662b45460e3b$export$9610e69494fadfd2(props, state, ref) {
113
115
  if (!(0, $d8ac7ed472840322$export$4282f70798064fe0)(e.currentTarget, (0, $d8ac7ed472840322$export$e58f029f0fbfdb29)(e)) || !ref.current || !activeElement) return;
114
116
  let walker = (0, $903814aeb7d53b38$export$2d6ec8fc375ceafa)(ref.current);
115
117
  walker.currentNode = activeElement;
116
- if ('expandedKeys' in state && activeElement === ref.current) {
117
- if (e.key === $7d08662b45460e3b$var$EXPANSION_KEYS['expand'][direction] && state.selectionManager.focusedKey === node.key && hasChildRows && !state.expandedKeys.has(node.key)) {
118
- state.toggleKey(node.key);
119
- e.stopPropagation();
120
- return;
121
- } else if (e.key === $7d08662b45460e3b$var$EXPANSION_KEYS['collapse'][direction] && state.selectionManager.focusedKey === node.key) {
122
- // If item is collapsible, collapse it; else move to parent
123
- if (hasChildRows && state.expandedKeys.has(node.key)) {
124
- state.toggleKey(node.key);
125
- e.stopPropagation();
126
- return;
127
- } else if (!state.expandedKeys.has(node.key) && node.parentKey) {
128
- // Item is a leaf or already collapsed, move focus to parent
129
- state.selectionManager.setFocusedKey(node.parentKey);
130
- e.stopPropagation();
131
- return;
132
- }
133
- }
134
- }
118
+ if ($7d08662b45460e3b$var$handleTreeExpansionKeys(e, state, node, hasChildRows, direction, activeElement, ref.current)) return;
135
119
  switch(e.key){
136
120
  case 'ArrowLeft':
137
121
  if (keyboardNavigationBehavior === 'arrow') {
@@ -156,6 +140,7 @@ function $7d08662b45460e3b$export$9610e69494fadfd2(props, state, ref) {
156
140
  } else {
157
141
  walker.currentNode = ref.current;
158
142
  let lastElement = $7d08662b45460e3b$var$last(walker);
143
+ // oxlint-disable-next-line max-depth
159
144
  if (lastElement) {
160
145
  (0, $56c81cdebdc6a696$export$80f3e147d781571c)(lastElement);
161
146
  (0, $6507765bd7f5ad94$export$c826860796309d1b)(lastElement, {
@@ -187,6 +172,7 @@ function $7d08662b45460e3b$export$9610e69494fadfd2(props, state, ref) {
187
172
  } else {
188
173
  walker.currentNode = ref.current;
189
174
  let lastElement = $7d08662b45460e3b$var$last(walker);
175
+ // oxlint-disable-next-line max-depth
190
176
  if (lastElement) {
191
177
  (0, $56c81cdebdc6a696$export$80f3e147d781571c)(lastElement);
192
178
  (0, $6507765bd7f5ad94$export$c826860796309d1b)(lastElement, {
@@ -227,6 +213,16 @@ function $7d08662b45460e3b$export$9610e69494fadfd2(props, state, ref) {
227
213
  let onKeyDown = (e)=>{
228
214
  let activeElement = (0, $d8ac7ed472840322$export$cd4e5573fbe2b576)();
229
215
  if (!(0, $d8ac7ed472840322$export$4282f70798064fe0)(e.currentTarget, (0, $d8ac7ed472840322$export$e58f029f0fbfdb29)(e)) || !ref.current || !activeElement) return;
216
+ if (keyboardNavigationBehavior === 'tab') {
217
+ // Stop propagation for all events that originate from the children of the gridlist item since we don't want to trigger
218
+ // grid level interactions (row navigation/typeselect/etc)
219
+ // exception made for Tab since that needs to propagate to useSelectableCollection to tab out of the gridlist, might be others?
220
+ if ((0, $d8ac7ed472840322$export$e58f029f0fbfdb29)(e) !== ref.current && e.key !== 'Tab') {
221
+ e.stopPropagation();
222
+ return;
223
+ }
224
+ if ($7d08662b45460e3b$var$handleTreeExpansionKeys(e, state, node, hasChildRows, direction, activeElement, ref.current)) return;
225
+ }
230
226
  switch(e.key){
231
227
  case 'Tab':
232
228
  if (keyboardNavigationBehavior === 'tab') {
@@ -254,8 +250,7 @@ function $7d08662b45460e3b$export$9610e69494fadfd2(props, state, ref) {
254
250
  // }
255
251
  let rowProps = (0, $64c36edd757dfa16$export$9d1611c77c2fe928)(itemProps, linkProps, {
256
252
  role: 'row',
257
- onKeyDownCapture: onKeyDownCapture,
258
- onKeyDown: onKeyDown,
253
+ onKeyDownCapture: keyboardNavigationBehavior === 'arrow' ? onKeyDownCapture : undefined,
259
254
  onFocus: onFocus,
260
255
  // 'aria-label': [(node.textValue || undefined), rowAnnouncement].filter(Boolean).join(', '),
261
256
  'aria-label': node['aria-label'] || node.textValue || undefined,
@@ -264,6 +259,33 @@ function $7d08662b45460e3b$export$9610e69494fadfd2(props, state, ref) {
264
259
  'aria-labelledby': descriptionId && (node['aria-label'] || node.textValue) ? `${(0, $781ed2e01df48c52$export$f45c25170b9a99c2)(state, node.key)} ${descriptionId}` : undefined,
265
260
  id: (0, $781ed2e01df48c52$export$f45c25170b9a99c2)(state, node.key)
266
261
  });
262
+ // we need to guard against space/enter triggering selection/row link via usePress (from itemProps) so check if propagation
263
+ // is stopped. this also fixes space not working in a textfield in a tree parent row
264
+ let baseOnKeyDown = rowProps.onKeyDown;
265
+ rowProps.onKeyDown = (e)=>{
266
+ onKeyDown(e);
267
+ if (!e.isPropagationStopped()) baseOnKeyDown === null || baseOnKeyDown === void 0 ? void 0 : baseOnKeyDown(e);
268
+ };
269
+ // guard against presses triggering row selecition when they happen on elements within the row
270
+ // am currently assuming if it is tabbable it is interactive, but maybe can use a different kind of check
271
+ let baseOnPointerDown = rowProps.onPointerDown;
272
+ rowProps.onPointerDown = (e)=>{
273
+ let target = (0, $d8ac7ed472840322$export$e58f029f0fbfdb29)(e);
274
+ if (target && target !== ref.current && (0, $ee5e22534121197a$export$bebd5a1431fec25d)(target)) {
275
+ e.stopPropagation();
276
+ return;
277
+ }
278
+ baseOnPointerDown === null || baseOnPointerDown === void 0 ? void 0 : baseOnPointerDown(e);
279
+ };
280
+ let baseOnMouseDown = rowProps.onMouseDown;
281
+ rowProps.onMouseDown = (e)=>{
282
+ let target = (0, $d8ac7ed472840322$export$e58f029f0fbfdb29)(e);
283
+ if (target && target !== ref.current && (0, $ee5e22534121197a$export$bebd5a1431fec25d)(target)) {
284
+ e.stopPropagation();
285
+ return;
286
+ }
287
+ baseOnMouseDown === null || baseOnMouseDown === void 0 ? void 0 : baseOnMouseDown(e);
288
+ };
267
289
  if (isVirtualized) {
268
290
  let { collection: collection } = state;
269
291
  let nodes = [
@@ -293,6 +315,28 @@ function $7d08662b45460e3b$export$9610e69494fadfd2(props, state, ref) {
293
315
  ...itemStates
294
316
  };
295
317
  }
318
+ function $7d08662b45460e3b$var$handleTreeExpansionKeys(e, state, node, hasChildRows, direction, activeElement, rowRef) {
319
+ if (!('expandedKeys' in state) || activeElement !== rowRef) return false;
320
+ if (e.key === $7d08662b45460e3b$var$EXPANSION_KEYS['expand'][direction] && state.selectionManager.focusedKey === node.key && hasChildRows && !state.expandedKeys.has(node.key)) {
321
+ state.toggleKey(node.key);
322
+ e.stopPropagation();
323
+ return true;
324
+ } else if (e.key === $7d08662b45460e3b$var$EXPANSION_KEYS['collapse'][direction] && state.selectionManager.focusedKey === node.key) {
325
+ var _state_collection_getItem;
326
+ // If item is collapsible, collapse it; else move to parent
327
+ if (hasChildRows && state.expandedKeys.has(node.key)) {
328
+ state.toggleKey(node.key);
329
+ e.stopPropagation();
330
+ return true;
331
+ } else if (!state.expandedKeys.has(node.key) && node.parentKey && ((_state_collection_getItem = state.collection.getItem(node.parentKey)) === null || _state_collection_getItem === void 0 ? void 0 : _state_collection_getItem.type) === 'item') {
332
+ // Item is a leaf or already collapsed, move focus to parent
333
+ state.selectionManager.setFocusedKey(node.parentKey);
334
+ e.stopPropagation();
335
+ return true;
336
+ }
337
+ }
338
+ return false;
339
+ }
296
340
  function $7d08662b45460e3b$var$last(walker) {
297
341
  let next = null;
298
342
  let last = null;