@depup/react-aria-components 1.16.0-depup.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 (661) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +31 -0
  3. package/changes.json +10 -0
  4. package/dist/Autocomplete.main.js +78 -0
  5. package/dist/Autocomplete.main.js.map +1 -0
  6. package/dist/Autocomplete.mjs +67 -0
  7. package/dist/Autocomplete.module.js +67 -0
  8. package/dist/Autocomplete.module.js.map +1 -0
  9. package/dist/Breadcrumbs.main.js +103 -0
  10. package/dist/Breadcrumbs.main.js.map +1 -0
  11. package/dist/Breadcrumbs.mjs +92 -0
  12. package/dist/Breadcrumbs.module.js +92 -0
  13. package/dist/Breadcrumbs.module.js.map +1 -0
  14. package/dist/Button.main.js +123 -0
  15. package/dist/Button.main.js.map +1 -0
  16. package/dist/Button.mjs +113 -0
  17. package/dist/Button.module.js +113 -0
  18. package/dist/Button.module.js.map +1 -0
  19. package/dist/Calendar.main.js +364 -0
  20. package/dist/Calendar.main.js.map +1 -0
  21. package/dist/Calendar.mjs +345 -0
  22. package/dist/Calendar.module.js +345 -0
  23. package/dist/Calendar.module.js.map +1 -0
  24. package/dist/Checkbox.main.js +188 -0
  25. package/dist/Checkbox.main.js.map +1 -0
  26. package/dist/Checkbox.mjs +176 -0
  27. package/dist/Checkbox.module.js +176 -0
  28. package/dist/Checkbox.module.js.map +1 -0
  29. package/dist/Collection.main.js +105 -0
  30. package/dist/Collection.main.js.map +1 -0
  31. package/dist/Collection.mjs +91 -0
  32. package/dist/Collection.module.js +91 -0
  33. package/dist/Collection.module.js.map +1 -0
  34. package/dist/ColorArea.main.js +80 -0
  35. package/dist/ColorArea.main.js.map +1 -0
  36. package/dist/ColorArea.mjs +70 -0
  37. package/dist/ColorArea.module.js +70 -0
  38. package/dist/ColorArea.module.js.map +1 -0
  39. package/dist/ColorField.main.js +168 -0
  40. package/dist/ColorField.main.js.map +1 -0
  41. package/dist/ColorField.mjs +158 -0
  42. package/dist/ColorField.module.js +158 -0
  43. package/dist/ColorField.module.js.map +1 -0
  44. package/dist/ColorPicker.main.js +102 -0
  45. package/dist/ColorPicker.main.js.map +1 -0
  46. package/dist/ColorPicker.mjs +91 -0
  47. package/dist/ColorPicker.module.js +91 -0
  48. package/dist/ColorPicker.module.js.map +1 -0
  49. package/dist/ColorSlider.main.js +112 -0
  50. package/dist/ColorSlider.main.js.map +1 -0
  51. package/dist/ColorSlider.mjs +102 -0
  52. package/dist/ColorSlider.module.js +102 -0
  53. package/dist/ColorSlider.module.js.map +1 -0
  54. package/dist/ColorSwatch.main.js +44 -0
  55. package/dist/ColorSwatch.main.js.map +1 -0
  56. package/dist/ColorSwatch.mjs +34 -0
  57. package/dist/ColorSwatch.module.js +34 -0
  58. package/dist/ColorSwatch.module.js.map +1 -0
  59. package/dist/ColorSwatchPicker.main.js +102 -0
  60. package/dist/ColorSwatchPicker.main.js.map +1 -0
  61. package/dist/ColorSwatchPicker.mjs +95 -0
  62. package/dist/ColorSwatchPicker.module.js +95 -0
  63. package/dist/ColorSwatchPicker.module.js.map +1 -0
  64. package/dist/ColorThumb.main.js +67 -0
  65. package/dist/ColorThumb.main.js.map +1 -0
  66. package/dist/ColorThumb.mjs +57 -0
  67. package/dist/ColorThumb.module.js +57 -0
  68. package/dist/ColorThumb.module.js.map +1 -0
  69. package/dist/ColorWheel.main.js +102 -0
  70. package/dist/ColorWheel.main.js.map +1 -0
  71. package/dist/ColorWheel.mjs +90 -0
  72. package/dist/ColorWheel.module.js +90 -0
  73. package/dist/ColorWheel.module.js.map +1 -0
  74. package/dist/ComboBox.main.js +322 -0
  75. package/dist/ComboBox.main.js.map +1 -0
  76. package/dist/ComboBox.mjs +309 -0
  77. package/dist/ComboBox.module.js +309 -0
  78. package/dist/ComboBox.module.js.map +1 -0
  79. package/dist/DateField.main.js +361 -0
  80. package/dist/DateField.main.js.map +1 -0
  81. package/dist/DateField.mjs +345 -0
  82. package/dist/DateField.module.js +345 -0
  83. package/dist/DateField.module.js.map +1 -0
  84. package/dist/DatePicker.main.js +342 -0
  85. package/dist/DatePicker.main.js.map +1 -0
  86. package/dist/DatePicker.mjs +328 -0
  87. package/dist/DatePicker.module.js +328 -0
  88. package/dist/DatePicker.module.js.map +1 -0
  89. package/dist/Dialog.main.js +167 -0
  90. package/dist/Dialog.main.js.map +1 -0
  91. package/dist/Dialog.mjs +155 -0
  92. package/dist/Dialog.module.js +155 -0
  93. package/dist/Dialog.module.js.map +1 -0
  94. package/dist/Disclosure.main.js +171 -0
  95. package/dist/Disclosure.main.js.map +1 -0
  96. package/dist/Disclosure.mjs +157 -0
  97. package/dist/Disclosure.module.js +157 -0
  98. package/dist/Disclosure.module.js.map +1 -0
  99. package/dist/DragAndDrop.main.js +103 -0
  100. package/dist/DragAndDrop.main.js.map +1 -0
  101. package/dist/DragAndDrop.mjs +90 -0
  102. package/dist/DragAndDrop.module.js +90 -0
  103. package/dist/DragAndDrop.module.js.map +1 -0
  104. package/dist/DropZone.main.js +127 -0
  105. package/dist/DropZone.main.js.map +1 -0
  106. package/dist/DropZone.mjs +121 -0
  107. package/dist/DropZone.module.js +121 -0
  108. package/dist/DropZone.module.js.map +1 -0
  109. package/dist/FieldError.main.js +61 -0
  110. package/dist/FieldError.main.js.map +1 -0
  111. package/dist/FieldError.mjs +51 -0
  112. package/dist/FieldError.module.js +51 -0
  113. package/dist/FieldError.module.js.map +1 -0
  114. package/dist/FileTrigger.main.js +60 -0
  115. package/dist/FileTrigger.main.js.map +1 -0
  116. package/dist/FileTrigger.mjs +51 -0
  117. package/dist/FileTrigger.module.js +51 -0
  118. package/dist/FileTrigger.module.js.map +1 -0
  119. package/dist/Form.main.js +49 -0
  120. package/dist/Form.main.js.map +1 -0
  121. package/dist/Form.mjs +39 -0
  122. package/dist/Form.module.js +39 -0
  123. package/dist/Form.module.js.map +1 -0
  124. package/dist/GridList.main.js +589 -0
  125. package/dist/GridList.main.js.map +1 -0
  126. package/dist/GridList.mjs +573 -0
  127. package/dist/GridList.module.js +573 -0
  128. package/dist/GridList.module.js.map +1 -0
  129. package/dist/Group.main.js +72 -0
  130. package/dist/Group.main.js.map +1 -0
  131. package/dist/Group.mjs +62 -0
  132. package/dist/Group.module.js +62 -0
  133. package/dist/Group.module.js.map +1 -0
  134. package/dist/Header.main.js +40 -0
  135. package/dist/Header.main.js.map +1 -0
  136. package/dist/Header.mjs +30 -0
  137. package/dist/Header.module.js +30 -0
  138. package/dist/Header.module.js.map +1 -0
  139. package/dist/Heading.main.js +40 -0
  140. package/dist/Heading.main.js.map +1 -0
  141. package/dist/Heading.mjs +31 -0
  142. package/dist/Heading.module.js +31 -0
  143. package/dist/Heading.module.js.map +1 -0
  144. package/dist/HiddenDateInput.main.js +126 -0
  145. package/dist/HiddenDateInput.main.js.map +1 -0
  146. package/dist/HiddenDateInput.mjs +117 -0
  147. package/dist/HiddenDateInput.module.js +117 -0
  148. package/dist/HiddenDateInput.module.js.map +1 -0
  149. package/dist/Input.main.js +72 -0
  150. package/dist/Input.main.js.map +1 -0
  151. package/dist/Input.mjs +62 -0
  152. package/dist/Input.module.js +62 -0
  153. package/dist/Input.module.js.map +1 -0
  154. package/dist/Keyboard.main.js +38 -0
  155. package/dist/Keyboard.main.js.map +1 -0
  156. package/dist/Keyboard.mjs +28 -0
  157. package/dist/Keyboard.module.js +28 -0
  158. package/dist/Keyboard.module.js.map +1 -0
  159. package/dist/Label.main.js +43 -0
  160. package/dist/Label.main.js.map +1 -0
  161. package/dist/Label.mjs +33 -0
  162. package/dist/Label.module.js +33 -0
  163. package/dist/Label.module.js.map +1 -0
  164. package/dist/Link.main.js +72 -0
  165. package/dist/Link.main.js.map +1 -0
  166. package/dist/Link.mjs +62 -0
  167. package/dist/Link.module.js +62 -0
  168. package/dist/Link.module.js.map +1 -0
  169. package/dist/ListBox.main.js +477 -0
  170. package/dist/ListBox.main.js.map +1 -0
  171. package/dist/ListBox.mjs +463 -0
  172. package/dist/ListBox.module.js +463 -0
  173. package/dist/ListBox.module.js.map +1 -0
  174. package/dist/Menu.main.js +459 -0
  175. package/dist/Menu.main.js.map +1 -0
  176. package/dist/Menu.mjs +443 -0
  177. package/dist/Menu.module.js +443 -0
  178. package/dist/Menu.module.js.map +1 -0
  179. package/dist/Meter.main.js +72 -0
  180. package/dist/Meter.main.js.map +1 -0
  181. package/dist/Meter.mjs +62 -0
  182. package/dist/Meter.module.js +62 -0
  183. package/dist/Meter.module.js.map +1 -0
  184. package/dist/Modal.main.js +191 -0
  185. package/dist/Modal.main.js.map +1 -0
  186. package/dist/Modal.mjs +180 -0
  187. package/dist/Modal.module.js +180 -0
  188. package/dist/Modal.module.js.map +1 -0
  189. package/dist/NumberField.main.js +147 -0
  190. package/dist/NumberField.main.js.map +1 -0
  191. package/dist/NumberField.mjs +136 -0
  192. package/dist/NumberField.module.js +136 -0
  193. package/dist/NumberField.module.js.map +1 -0
  194. package/dist/OverlayArrow.main.js +64 -0
  195. package/dist/OverlayArrow.main.js.map +1 -0
  196. package/dist/OverlayArrow.mjs +54 -0
  197. package/dist/OverlayArrow.module.js +54 -0
  198. package/dist/OverlayArrow.module.js.map +1 -0
  199. package/dist/Popover.main.js +196 -0
  200. package/dist/Popover.main.js.map +1 -0
  201. package/dist/Popover.mjs +186 -0
  202. package/dist/Popover.module.js +186 -0
  203. package/dist/Popover.module.js.map +1 -0
  204. package/dist/ProgressBar.main.js +73 -0
  205. package/dist/ProgressBar.main.js.map +1 -0
  206. package/dist/ProgressBar.mjs +63 -0
  207. package/dist/ProgressBar.module.js +63 -0
  208. package/dist/ProgressBar.module.js.map +1 -0
  209. package/dist/RSPContexts.main.js +37 -0
  210. package/dist/RSPContexts.main.js.map +1 -0
  211. package/dist/RSPContexts.mjs +25 -0
  212. package/dist/RSPContexts.module.js +25 -0
  213. package/dist/RSPContexts.module.js.map +1 -0
  214. package/dist/RadioGroup.main.js +184 -0
  215. package/dist/RadioGroup.main.js.map +1 -0
  216. package/dist/RadioGroup.mjs +171 -0
  217. package/dist/RadioGroup.module.js +171 -0
  218. package/dist/RadioGroup.module.js.map +1 -0
  219. package/dist/SearchField.main.js +140 -0
  220. package/dist/SearchField.main.js.map +1 -0
  221. package/dist/SearchField.mjs +130 -0
  222. package/dist/SearchField.module.js +130 -0
  223. package/dist/SearchField.module.js.map +1 -0
  224. package/dist/Select.main.js +324 -0
  225. package/dist/Select.main.js.map +1 -0
  226. package/dist/Select.mjs +315 -0
  227. package/dist/Select.module.js +315 -0
  228. package/dist/Select.module.js.map +1 -0
  229. package/dist/SelectionIndicator.main.js +45 -0
  230. package/dist/SelectionIndicator.main.js.map +1 -0
  231. package/dist/SelectionIndicator.mjs +35 -0
  232. package/dist/SelectionIndicator.module.js +35 -0
  233. package/dist/SelectionIndicator.module.js.map +1 -0
  234. package/dist/Separator.main.js +71 -0
  235. package/dist/Separator.main.js.map +1 -0
  236. package/dist/Separator.mjs +61 -0
  237. package/dist/Separator.module.js +61 -0
  238. package/dist/Separator.module.js.map +1 -0
  239. package/dist/SharedElementTransition.main.js +140 -0
  240. package/dist/SharedElementTransition.main.js.map +1 -0
  241. package/dist/SharedElementTransition.mjs +130 -0
  242. package/dist/SharedElementTransition.module.js +130 -0
  243. package/dist/SharedElementTransition.module.js.map +1 -0
  244. package/dist/Slider.main.js +220 -0
  245. package/dist/Slider.main.js.map +1 -0
  246. package/dist/Slider.mjs +204 -0
  247. package/dist/Slider.module.js +204 -0
  248. package/dist/Slider.module.js.map +1 -0
  249. package/dist/Switch.main.js +89 -0
  250. package/dist/Switch.main.js.map +1 -0
  251. package/dist/Switch.mjs +79 -0
  252. package/dist/Switch.module.js +79 -0
  253. package/dist/Switch.module.js.map +1 -0
  254. package/dist/Table.main.js +1171 -0
  255. package/dist/Table.main.js.map +1 -0
  256. package/dist/Table.mjs +1154 -0
  257. package/dist/Table.module.js +1154 -0
  258. package/dist/Table.module.js.map +1 -0
  259. package/dist/TableLayout.main.js +38 -0
  260. package/dist/TableLayout.main.js.map +1 -0
  261. package/dist/TableLayout.mjs +33 -0
  262. package/dist/TableLayout.module.js +33 -0
  263. package/dist/TableLayout.module.js.map +1 -0
  264. package/dist/Tabs.main.js +330 -0
  265. package/dist/Tabs.main.js.map +1 -0
  266. package/dist/Tabs.mjs +315 -0
  267. package/dist/Tabs.module.js +315 -0
  268. package/dist/Tabs.module.js.map +1 -0
  269. package/dist/TagGroup.main.js +255 -0
  270. package/dist/TagGroup.main.js.map +1 -0
  271. package/dist/TagGroup.mjs +242 -0
  272. package/dist/TagGroup.module.js +242 -0
  273. package/dist/TagGroup.module.js.map +1 -0
  274. package/dist/Text.main.js +41 -0
  275. package/dist/Text.main.js.map +1 -0
  276. package/dist/Text.mjs +31 -0
  277. package/dist/Text.module.js +31 -0
  278. package/dist/Text.module.js.map +1 -0
  279. package/dist/TextArea.main.js +57 -0
  280. package/dist/TextArea.main.js.map +1 -0
  281. package/dist/TextArea.mjs +47 -0
  282. package/dist/TextArea.module.js +47 -0
  283. package/dist/TextArea.module.js.map +1 -0
  284. package/dist/TextField.main.js +145 -0
  285. package/dist/TextField.main.js.map +1 -0
  286. package/dist/TextField.mjs +135 -0
  287. package/dist/TextField.module.js +135 -0
  288. package/dist/TextField.module.js.map +1 -0
  289. package/dist/Toast.main.js +183 -0
  290. package/dist/Toast.main.js.map +1 -0
  291. package/dist/Toast.mjs +170 -0
  292. package/dist/Toast.module.js +170 -0
  293. package/dist/Toast.module.js.map +1 -0
  294. package/dist/ToggleButton.main.js +96 -0
  295. package/dist/ToggleButton.main.js.map +1 -0
  296. package/dist/ToggleButton.mjs +86 -0
  297. package/dist/ToggleButton.module.js +86 -0
  298. package/dist/ToggleButton.module.js.map +1 -0
  299. package/dist/ToggleButtonGroup.main.js +66 -0
  300. package/dist/ToggleButtonGroup.main.js.map +1 -0
  301. package/dist/ToggleButtonGroup.mjs +55 -0
  302. package/dist/ToggleButtonGroup.module.js +55 -0
  303. package/dist/ToggleButtonGroup.module.js.map +1 -0
  304. package/dist/Toolbar.main.js +55 -0
  305. package/dist/Toolbar.main.js.map +1 -0
  306. package/dist/Toolbar.mjs +45 -0
  307. package/dist/Toolbar.module.js +45 -0
  308. package/dist/Toolbar.module.js.map +1 -0
  309. package/dist/Tooltip.main.js +132 -0
  310. package/dist/Tooltip.main.js.map +1 -0
  311. package/dist/Tooltip.mjs +120 -0
  312. package/dist/Tooltip.module.js +120 -0
  313. package/dist/Tooltip.module.js.map +1 -0
  314. package/dist/Tree.main.js +834 -0
  315. package/dist/Tree.main.js.map +1 -0
  316. package/dist/Tree.mjs +818 -0
  317. package/dist/Tree.module.js +818 -0
  318. package/dist/Tree.module.js.map +1 -0
  319. package/dist/TreeDropTargetDelegate.main.js +216 -0
  320. package/dist/TreeDropTargetDelegate.main.js.map +1 -0
  321. package/dist/TreeDropTargetDelegate.mjs +211 -0
  322. package/dist/TreeDropTargetDelegate.module.js +211 -0
  323. package/dist/TreeDropTargetDelegate.module.js.map +1 -0
  324. package/dist/Virtualizer.main.js +135 -0
  325. package/dist/Virtualizer.main.js.map +1 -0
  326. package/dist/Virtualizer.mjs +126 -0
  327. package/dist/Virtualizer.module.js +126 -0
  328. package/dist/Virtualizer.module.js.map +1 -0
  329. package/dist/ar-AE.main.js +9 -0
  330. package/dist/ar-AE.main.js.map +1 -0
  331. package/dist/ar-AE.mjs +11 -0
  332. package/dist/ar-AE.module.js +11 -0
  333. package/dist/ar-AE.module.js.map +1 -0
  334. package/dist/bg-BG.main.js +9 -0
  335. package/dist/bg-BG.main.js.map +1 -0
  336. package/dist/bg-BG.mjs +11 -0
  337. package/dist/bg-BG.module.js +11 -0
  338. package/dist/bg-BG.module.js.map +1 -0
  339. package/dist/cs-CZ.main.js +9 -0
  340. package/dist/cs-CZ.main.js.map +1 -0
  341. package/dist/cs-CZ.mjs +11 -0
  342. package/dist/cs-CZ.module.js +11 -0
  343. package/dist/cs-CZ.module.js.map +1 -0
  344. package/dist/da-DK.main.js +9 -0
  345. package/dist/da-DK.main.js.map +1 -0
  346. package/dist/da-DK.mjs +11 -0
  347. package/dist/da-DK.module.js +11 -0
  348. package/dist/da-DK.module.js.map +1 -0
  349. package/dist/de-DE.main.js +9 -0
  350. package/dist/de-DE.main.js.map +1 -0
  351. package/dist/de-DE.mjs +11 -0
  352. package/dist/de-DE.module.js +11 -0
  353. package/dist/de-DE.module.js.map +1 -0
  354. package/dist/el-GR.main.js +9 -0
  355. package/dist/el-GR.main.js.map +1 -0
  356. package/dist/el-GR.mjs +11 -0
  357. package/dist/el-GR.module.js +11 -0
  358. package/dist/el-GR.module.js.map +1 -0
  359. package/dist/en-US.main.js +9 -0
  360. package/dist/en-US.main.js.map +1 -0
  361. package/dist/en-US.mjs +11 -0
  362. package/dist/en-US.module.js +11 -0
  363. package/dist/en-US.module.js.map +1 -0
  364. package/dist/es-ES.main.js +9 -0
  365. package/dist/es-ES.main.js.map +1 -0
  366. package/dist/es-ES.mjs +11 -0
  367. package/dist/es-ES.module.js +11 -0
  368. package/dist/es-ES.module.js.map +1 -0
  369. package/dist/et-EE.main.js +9 -0
  370. package/dist/et-EE.main.js.map +1 -0
  371. package/dist/et-EE.mjs +11 -0
  372. package/dist/et-EE.module.js +11 -0
  373. package/dist/et-EE.module.js.map +1 -0
  374. package/dist/fi-FI.main.js +9 -0
  375. package/dist/fi-FI.main.js.map +1 -0
  376. package/dist/fi-FI.mjs +11 -0
  377. package/dist/fi-FI.module.js +11 -0
  378. package/dist/fi-FI.module.js.map +1 -0
  379. package/dist/fr-FR.main.js +9 -0
  380. package/dist/fr-FR.main.js.map +1 -0
  381. package/dist/fr-FR.mjs +11 -0
  382. package/dist/fr-FR.module.js +11 -0
  383. package/dist/fr-FR.module.js.map +1 -0
  384. package/dist/he-IL.main.js +9 -0
  385. package/dist/he-IL.main.js.map +1 -0
  386. package/dist/he-IL.mjs +11 -0
  387. package/dist/he-IL.module.js +11 -0
  388. package/dist/he-IL.module.js.map +1 -0
  389. package/dist/hr-HR.main.js +9 -0
  390. package/dist/hr-HR.main.js.map +1 -0
  391. package/dist/hr-HR.mjs +11 -0
  392. package/dist/hr-HR.module.js +11 -0
  393. package/dist/hr-HR.module.js.map +1 -0
  394. package/dist/hu-HU.main.js +9 -0
  395. package/dist/hu-HU.main.js.map +1 -0
  396. package/dist/hu-HU.mjs +11 -0
  397. package/dist/hu-HU.module.js +11 -0
  398. package/dist/hu-HU.module.js.map +1 -0
  399. package/dist/import.mjs +161 -0
  400. package/dist/intlStrings.main.js +108 -0
  401. package/dist/intlStrings.main.js.map +1 -0
  402. package/dist/intlStrings.mjs +110 -0
  403. package/dist/intlStrings.module.js +110 -0
  404. package/dist/intlStrings.module.js.map +1 -0
  405. package/dist/it-IT.main.js +9 -0
  406. package/dist/it-IT.main.js.map +1 -0
  407. package/dist/it-IT.mjs +11 -0
  408. package/dist/it-IT.module.js +11 -0
  409. package/dist/it-IT.module.js.map +1 -0
  410. package/dist/ja-JP.main.js +9 -0
  411. package/dist/ja-JP.main.js.map +1 -0
  412. package/dist/ja-JP.mjs +11 -0
  413. package/dist/ja-JP.module.js +11 -0
  414. package/dist/ja-JP.module.js.map +1 -0
  415. package/dist/ko-KR.main.js +9 -0
  416. package/dist/ko-KR.main.js.map +1 -0
  417. package/dist/ko-KR.mjs +11 -0
  418. package/dist/ko-KR.module.js +11 -0
  419. package/dist/ko-KR.module.js.map +1 -0
  420. package/dist/lt-LT.main.js +9 -0
  421. package/dist/lt-LT.main.js.map +1 -0
  422. package/dist/lt-LT.mjs +11 -0
  423. package/dist/lt-LT.module.js +11 -0
  424. package/dist/lt-LT.module.js.map +1 -0
  425. package/dist/lv-LV.main.js +9 -0
  426. package/dist/lv-LV.main.js.map +1 -0
  427. package/dist/lv-LV.mjs +11 -0
  428. package/dist/lv-LV.module.js +11 -0
  429. package/dist/lv-LV.module.js.map +1 -0
  430. package/dist/main.js +430 -0
  431. package/dist/main.js.map +1 -0
  432. package/dist/module.js +161 -0
  433. package/dist/module.js.map +1 -0
  434. package/dist/nb-NO.main.js +9 -0
  435. package/dist/nb-NO.main.js.map +1 -0
  436. package/dist/nb-NO.mjs +11 -0
  437. package/dist/nb-NO.module.js +11 -0
  438. package/dist/nb-NO.module.js.map +1 -0
  439. package/dist/nl-NL.main.js +9 -0
  440. package/dist/nl-NL.main.js.map +1 -0
  441. package/dist/nl-NL.mjs +11 -0
  442. package/dist/nl-NL.module.js +11 -0
  443. package/dist/nl-NL.module.js.map +1 -0
  444. package/dist/pl-PL.main.js +9 -0
  445. package/dist/pl-PL.main.js.map +1 -0
  446. package/dist/pl-PL.mjs +11 -0
  447. package/dist/pl-PL.module.js +11 -0
  448. package/dist/pl-PL.module.js.map +1 -0
  449. package/dist/pt-BR.main.js +9 -0
  450. package/dist/pt-BR.main.js.map +1 -0
  451. package/dist/pt-BR.mjs +11 -0
  452. package/dist/pt-BR.module.js +11 -0
  453. package/dist/pt-BR.module.js.map +1 -0
  454. package/dist/pt-PT.main.js +9 -0
  455. package/dist/pt-PT.main.js.map +1 -0
  456. package/dist/pt-PT.mjs +11 -0
  457. package/dist/pt-PT.module.js +11 -0
  458. package/dist/pt-PT.module.js.map +1 -0
  459. package/dist/ro-RO.main.js +9 -0
  460. package/dist/ro-RO.main.js.map +1 -0
  461. package/dist/ro-RO.mjs +11 -0
  462. package/dist/ro-RO.module.js +11 -0
  463. package/dist/ro-RO.module.js.map +1 -0
  464. package/dist/ru-RU.main.js +9 -0
  465. package/dist/ru-RU.main.js.map +1 -0
  466. package/dist/ru-RU.mjs +11 -0
  467. package/dist/ru-RU.module.js +11 -0
  468. package/dist/ru-RU.module.js.map +1 -0
  469. package/dist/sk-SK.main.js +9 -0
  470. package/dist/sk-SK.main.js.map +1 -0
  471. package/dist/sk-SK.mjs +11 -0
  472. package/dist/sk-SK.module.js +11 -0
  473. package/dist/sk-SK.module.js.map +1 -0
  474. package/dist/sl-SI.main.js +9 -0
  475. package/dist/sl-SI.main.js.map +1 -0
  476. package/dist/sl-SI.mjs +11 -0
  477. package/dist/sl-SI.module.js +11 -0
  478. package/dist/sl-SI.module.js.map +1 -0
  479. package/dist/sr-SP.main.js +9 -0
  480. package/dist/sr-SP.main.js.map +1 -0
  481. package/dist/sr-SP.mjs +11 -0
  482. package/dist/sr-SP.module.js +11 -0
  483. package/dist/sr-SP.module.js.map +1 -0
  484. package/dist/sv-SE.main.js +9 -0
  485. package/dist/sv-SE.main.js.map +1 -0
  486. package/dist/sv-SE.mjs +11 -0
  487. package/dist/sv-SE.module.js +11 -0
  488. package/dist/sv-SE.module.js.map +1 -0
  489. package/dist/tr-TR.main.js +9 -0
  490. package/dist/tr-TR.main.js.map +1 -0
  491. package/dist/tr-TR.mjs +11 -0
  492. package/dist/tr-TR.module.js +11 -0
  493. package/dist/tr-TR.module.js.map +1 -0
  494. package/dist/types.d.ts +3764 -0
  495. package/dist/types.d.ts.map +1 -0
  496. package/dist/uk-UA.main.js +9 -0
  497. package/dist/uk-UA.main.js.map +1 -0
  498. package/dist/uk-UA.mjs +11 -0
  499. package/dist/uk-UA.module.js +11 -0
  500. package/dist/uk-UA.module.js.map +1 -0
  501. package/dist/useDragAndDrop.main.js +74 -0
  502. package/dist/useDragAndDrop.main.js.map +1 -0
  503. package/dist/useDragAndDrop.mjs +69 -0
  504. package/dist/useDragAndDrop.module.js +69 -0
  505. package/dist/useDragAndDrop.module.js.map +1 -0
  506. package/dist/utils.main.js +205 -0
  507. package/dist/utils.main.js.map +1 -0
  508. package/dist/utils.mjs +188 -0
  509. package/dist/utils.module.js +188 -0
  510. package/dist/utils.module.js.map +1 -0
  511. package/dist/zh-CN.main.js +9 -0
  512. package/dist/zh-CN.main.js.map +1 -0
  513. package/dist/zh-CN.mjs +11 -0
  514. package/dist/zh-CN.module.js +11 -0
  515. package/dist/zh-CN.module.js.map +1 -0
  516. package/dist/zh-TW.main.js +9 -0
  517. package/dist/zh-TW.main.js.map +1 -0
  518. package/dist/zh-TW.mjs +11 -0
  519. package/dist/zh-TW.module.js +11 -0
  520. package/dist/zh-TW.module.js.map +1 -0
  521. package/i18n/ar-AE.js +1 -0
  522. package/i18n/ar-AE.mjs +1 -0
  523. package/i18n/bg-BG.js +1 -0
  524. package/i18n/bg-BG.mjs +1 -0
  525. package/i18n/cs-CZ.js +1 -0
  526. package/i18n/cs-CZ.mjs +1 -0
  527. package/i18n/da-DK.js +1 -0
  528. package/i18n/da-DK.mjs +1 -0
  529. package/i18n/de-DE.js +1 -0
  530. package/i18n/de-DE.mjs +1 -0
  531. package/i18n/el-GR.js +1 -0
  532. package/i18n/el-GR.mjs +1 -0
  533. package/i18n/en-US.js +1 -0
  534. package/i18n/en-US.mjs +1 -0
  535. package/i18n/es-ES.js +1 -0
  536. package/i18n/es-ES.mjs +1 -0
  537. package/i18n/et-EE.js +1 -0
  538. package/i18n/et-EE.mjs +1 -0
  539. package/i18n/fi-FI.js +1 -0
  540. package/i18n/fi-FI.mjs +1 -0
  541. package/i18n/fr-FR.js +1 -0
  542. package/i18n/fr-FR.mjs +1 -0
  543. package/i18n/he-IL.js +1 -0
  544. package/i18n/he-IL.mjs +1 -0
  545. package/i18n/hr-HR.js +1 -0
  546. package/i18n/hr-HR.mjs +1 -0
  547. package/i18n/hu-HU.js +1 -0
  548. package/i18n/hu-HU.mjs +1 -0
  549. package/i18n/index.d.ts +13 -0
  550. package/i18n/index.js +118 -0
  551. package/i18n/index.mjs +115 -0
  552. package/i18n/it-IT.js +1 -0
  553. package/i18n/it-IT.mjs +1 -0
  554. package/i18n/ja-JP.js +1 -0
  555. package/i18n/ja-JP.mjs +1 -0
  556. package/i18n/ko-KR.js +1 -0
  557. package/i18n/ko-KR.mjs +1 -0
  558. package/i18n/lang.d.ts +7 -0
  559. package/i18n/lt-LT.js +1 -0
  560. package/i18n/lt-LT.mjs +1 -0
  561. package/i18n/lv-LV.js +1 -0
  562. package/i18n/lv-LV.mjs +1 -0
  563. package/i18n/nb-NO.js +1 -0
  564. package/i18n/nb-NO.mjs +1 -0
  565. package/i18n/nl-NL.js +1 -0
  566. package/i18n/nl-NL.mjs +1 -0
  567. package/i18n/pl-PL.js +1 -0
  568. package/i18n/pl-PL.mjs +1 -0
  569. package/i18n/pt-BR.js +1 -0
  570. package/i18n/pt-BR.mjs +1 -0
  571. package/i18n/pt-PT.js +1 -0
  572. package/i18n/pt-PT.mjs +1 -0
  573. package/i18n/ro-RO.js +1 -0
  574. package/i18n/ro-RO.mjs +1 -0
  575. package/i18n/ru-RU.js +1 -0
  576. package/i18n/ru-RU.mjs +1 -0
  577. package/i18n/sk-SK.js +1 -0
  578. package/i18n/sk-SK.mjs +1 -0
  579. package/i18n/sl-SI.js +1 -0
  580. package/i18n/sl-SI.mjs +1 -0
  581. package/i18n/sr-SP.js +1 -0
  582. package/i18n/sr-SP.mjs +1 -0
  583. package/i18n/sv-SE.js +1 -0
  584. package/i18n/sv-SE.mjs +1 -0
  585. package/i18n/tr-TR.js +1 -0
  586. package/i18n/tr-TR.mjs +1 -0
  587. package/i18n/uk-UA.js +1 -0
  588. package/i18n/uk-UA.mjs +1 -0
  589. package/i18n/zh-CN.js +1 -0
  590. package/i18n/zh-CN.mjs +1 -0
  591. package/i18n/zh-TW.js +1 -0
  592. package/i18n/zh-TW.mjs +1 -0
  593. package/package.json +105 -0
  594. package/src/Autocomplete.tsx +64 -0
  595. package/src/Breadcrumbs.tsx +137 -0
  596. package/src/Button.tsx +185 -0
  597. package/src/Calendar.tsx +620 -0
  598. package/src/Checkbox.tsx +282 -0
  599. package/src/Collection.tsx +225 -0
  600. package/src/ColorArea.tsx +89 -0
  601. package/src/ColorField.tsx +243 -0
  602. package/src/ColorPicker.tsx +63 -0
  603. package/src/ColorSlider.tsx +110 -0
  604. package/src/ColorSwatch.tsx +54 -0
  605. package/src/ColorSwatchPicker.tsx +125 -0
  606. package/src/ColorThumb.tsx +108 -0
  607. package/src/ColorWheel.tsx +122 -0
  608. package/src/ComboBox.tsx +325 -0
  609. package/src/DateField.tsx +425 -0
  610. package/src/DatePicker.tsx +334 -0
  611. package/src/Dialog.tsx +159 -0
  612. package/src/Disclosure.tsx +259 -0
  613. package/src/DragAndDrop.tsx +115 -0
  614. package/src/DropZone.tsx +145 -0
  615. package/src/FieldError.tsx +57 -0
  616. package/src/FileTrigger.tsx +79 -0
  617. package/src/Form.tsx +52 -0
  618. package/src/GridList.tsx +678 -0
  619. package/src/Group.tsx +114 -0
  620. package/src/Header.tsx +28 -0
  621. package/src/Heading.tsx +31 -0
  622. package/src/HiddenDateInput.tsx +152 -0
  623. package/src/Input.tsx +113 -0
  624. package/src/Keyboard.tsx +23 -0
  625. package/src/Label.tsx +29 -0
  626. package/src/Link.tsx +115 -0
  627. package/src/ListBox.tsx +577 -0
  628. package/src/Menu.tsx +496 -0
  629. package/src/Meter.tsx +93 -0
  630. package/src/Modal.tsx +262 -0
  631. package/src/NumberField.tsx +152 -0
  632. package/src/OverlayArrow.tsx +91 -0
  633. package/src/Popover.tsx +267 -0
  634. package/src/ProgressBar.tsx +101 -0
  635. package/src/RSPContexts.ts +52 -0
  636. package/src/RadioGroup.tsx +273 -0
  637. package/src/SearchField.tsx +152 -0
  638. package/src/Select.tsx +356 -0
  639. package/src/SelectionIndicator.tsx +46 -0
  640. package/src/Separator.tsx +76 -0
  641. package/src/SharedElementTransition.tsx +186 -0
  642. package/src/Slider.tsx +310 -0
  643. package/src/Switch.tsx +146 -0
  644. package/src/Table.tsx +1597 -0
  645. package/src/TableLayout.ts +28 -0
  646. package/src/Tabs.tsx +495 -0
  647. package/src/TagGroup.tsx +310 -0
  648. package/src/Text.tsx +28 -0
  649. package/src/TextArea.tsx +65 -0
  650. package/src/TextField.tsx +148 -0
  651. package/src/Toast.tsx +248 -0
  652. package/src/ToggleButton.tsx +103 -0
  653. package/src/ToggleButtonGroup.tsx +90 -0
  654. package/src/Toolbar.tsx +69 -0
  655. package/src/Tooltip.tsx +187 -0
  656. package/src/Tree.tsx +1066 -0
  657. package/src/TreeDropTargetDelegate.ts +308 -0
  658. package/src/Virtualizer.tsx +174 -0
  659. package/src/index.ts +160 -0
  660. package/src/useDragAndDrop.tsx +150 -0
  661. package/src/utils.tsx +351 -0
@@ -0,0 +1,678 @@
1
+ /*
2
+ * Copyright 2022 Adobe. All rights reserved.
3
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License. You may obtain a copy
5
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+ *
7
+ * Unless required by applicable law or agreed to in writing, software distributed under
8
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
+ * OF ANY KIND, either express or implied. See the License for the specific language
10
+ * governing permissions and limitations under the License.
11
+ */
12
+ import {AriaGridListProps, DraggableItemResult, DragPreviewRenderer, DropIndicatorAria, DroppableCollectionResult, FocusScope, ListKeyboardDelegate, mergeProps, useCollator, useFocusRing, useGridList, useGridListItem, useGridListSection, useGridListSelectionCheckbox, useHover, useLocale, useVisuallyHidden} from 'react-aria';
13
+ import {ButtonContext} from './Button';
14
+ import {CheckboxContext, FieldInputContext, SelectableCollectionContext, SelectableCollectionContextValue} from './RSPContexts';
15
+ import {
16
+ ClassNameOrFunction,
17
+ ContextValue,
18
+ DEFAULT_SLOT,
19
+ dom,
20
+ DOMProps,
21
+ DOMRenderProps,
22
+ Provider,
23
+ RenderProps,
24
+ SlotProps,
25
+ StyleProps,
26
+ StyleRenderProps,
27
+ useContextProps,
28
+ useRenderProps
29
+ } from './utils';
30
+ import {Collection, CollectionBuilder, createBranchComponent, createLeafComponent, HeaderNode, ItemNode, LoaderNode, SectionNode} from '@react-aria/collections';
31
+ import {CollectionProps, CollectionRendererContext, DefaultCollectionRenderer, ItemRenderProps, SectionProps} from './Collection';
32
+ import {DragAndDropContext, DropIndicatorContext, DropIndicatorProps, useDndPersistedKeys, useRenderDropIndicator} from './DragAndDrop';
33
+ import {DragAndDropHooks} from './useDragAndDrop';
34
+ import {DraggableCollectionState, DroppableCollectionState, Collection as ICollection, ListState, Node, SelectionBehavior, UNSTABLE_useFilteredListState, useListState} from 'react-stately';
35
+ import {filterDOMProps, inertValue, LoadMoreSentinelProps, useLoadMoreSentinel, useObjectRef} from '@react-aria/utils';
36
+ import {forwardRefType, GlobalDOMAttributes, HoverEvents, Key, LinkDOMProps, PressEvents, RefObject} from '@react-types/shared';
37
+ import {ListStateContext} from './ListBox';
38
+ import React, {createContext, ForwardedRef, forwardRef, HTMLAttributes, JSX, ReactNode, useContext, useEffect, useMemo, useRef} from 'react';
39
+ import {SelectionIndicatorContext} from './SelectionIndicator';
40
+ import {SharedElementTransition} from './SharedElementTransition';
41
+ import {TextContext} from './Text';
42
+
43
+ export interface GridListRenderProps {
44
+ /**
45
+ * Whether the list has no items and should display its empty state.
46
+ * @selector [data-empty]
47
+ */
48
+ isEmpty: boolean,
49
+ /**
50
+ * Whether the grid list is currently focused.
51
+ * @selector [data-focused]
52
+ */
53
+ isFocused: boolean,
54
+ /**
55
+ * Whether the grid list is currently keyboard focused.
56
+ * @selector [data-focus-visible]
57
+ */
58
+ isFocusVisible: boolean,
59
+ /**
60
+ * Whether the grid list is currently the active drop target.
61
+ * @selector [data-drop-target]
62
+ */
63
+ isDropTarget: boolean,
64
+ /**
65
+ * Whether the items are arranged in a stack or grid.
66
+ * @selector [data-layout="stack | grid"]
67
+ */
68
+ layout: 'stack' | 'grid',
69
+ /**
70
+ * State of the grid list.
71
+ */
72
+ state: ListState<unknown>
73
+ }
74
+
75
+ export interface GridListProps<T> extends Omit<AriaGridListProps<T>, 'children'>, CollectionProps<T>, StyleRenderProps<GridListRenderProps>, SlotProps, GlobalDOMAttributes<HTMLDivElement> {
76
+ /**
77
+ * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the element. A function may be provided to compute the class based on component state.
78
+ * @default 'react-aria-GridList'
79
+ */
80
+ className?: ClassNameOrFunction<GridListRenderProps>,
81
+ /**
82
+ * Whether typeahead navigation is disabled.
83
+ * @default false
84
+ */
85
+ disallowTypeAhead?: boolean,
86
+ /**
87
+ * How multiple selection should behave in the collection.
88
+ * @default "toggle"
89
+ */
90
+ selectionBehavior?: SelectionBehavior,
91
+ /** The drag and drop hooks returned by `useDragAndDrop` used to enable drag and drop behavior for the GridList. */
92
+ dragAndDropHooks?: DragAndDropHooks<NoInfer<T>>,
93
+ /** Provides content to display when there are no items in the list. */
94
+ renderEmptyState?: (props: GridListRenderProps) => ReactNode,
95
+ /**
96
+ * Whether the items are arranged in a stack or grid.
97
+ * @default 'stack'
98
+ */
99
+ layout?: 'stack' | 'grid'
100
+ }
101
+
102
+
103
+ export const GridListContext = createContext<ContextValue<GridListProps<any>, HTMLDivElement>>(null);
104
+
105
+ /**
106
+ * A grid list displays a list of interactive items, with support for keyboard navigation,
107
+ * single or multiple selection, and row actions.
108
+ */
109
+ export const GridList = /*#__PURE__*/ (forwardRef as forwardRefType)(function GridList<T extends object>(props: GridListProps<T>, ref: ForwardedRef<HTMLDivElement>) {
110
+ // Render the portal first so that we have the collection by the time we render the DOM in SSR.
111
+ [props, ref] = useContextProps(props, ref, GridListContext);
112
+
113
+ return (
114
+ <CollectionBuilder content={<Collection {...props} />}>
115
+ {collection => <GridListInner props={props} collection={collection} gridListRef={ref} />}
116
+ </CollectionBuilder>
117
+ );
118
+ });
119
+
120
+ interface GridListInnerProps<T extends object> {
121
+ props: GridListProps<T> & SelectableCollectionContextValue<T>,
122
+ collection: ICollection<Node<object>>,
123
+ gridListRef: RefObject<HTMLElement | null>
124
+ }
125
+
126
+ function GridListInner<T extends object>({props, collection, gridListRef: ref}: GridListInnerProps<T>) {
127
+ [props, ref] = useContextProps(props, ref, SelectableCollectionContext);
128
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
129
+ let {shouldUseVirtualFocus, filter, disallowTypeAhead, ...DOMCollectionProps} = props;
130
+ let {dragAndDropHooks, keyboardNavigationBehavior = 'arrow', layout = 'stack'} = props;
131
+ let {CollectionRoot, isVirtualized, layoutDelegate, dropTargetDelegate: ctxDropTargetDelegate} = useContext(CollectionRendererContext);
132
+ let gridlistState = useListState({
133
+ ...DOMCollectionProps,
134
+ collection,
135
+ children: undefined,
136
+ layoutDelegate
137
+ });
138
+
139
+ let filteredState = UNSTABLE_useFilteredListState(gridlistState as ListState<T>, filter);
140
+ let collator = useCollator({usage: 'search', sensitivity: 'base'});
141
+ let {disabledBehavior, disabledKeys} = filteredState.selectionManager;
142
+ let {direction} = useLocale();
143
+ let keyboardDelegate = useMemo(() => (
144
+ new ListKeyboardDelegate({
145
+ collection: filteredState.collection,
146
+ collator,
147
+ ref,
148
+ disabledKeys,
149
+ disabledBehavior,
150
+ layoutDelegate,
151
+ layout,
152
+ direction
153
+ })
154
+ ), [filteredState.collection, ref, layout, disabledKeys, disabledBehavior, layoutDelegate, collator, direction]);
155
+
156
+ let {gridProps} = useGridList({
157
+ ...DOMCollectionProps,
158
+ keyboardDelegate,
159
+ // Only tab navigation is supported in grid layout.
160
+ keyboardNavigationBehavior: layout === 'grid' ? 'tab' : keyboardNavigationBehavior,
161
+ isVirtualized,
162
+ shouldSelectOnPressUp: props.shouldSelectOnPressUp,
163
+ disallowTypeAhead
164
+ }, filteredState, ref);
165
+
166
+ let selectionManager = filteredState.selectionManager;
167
+ let isListDraggable = !!dragAndDropHooks?.useDraggableCollectionState;
168
+ let isListDroppable = !!dragAndDropHooks?.useDroppableCollectionState;
169
+ let dragHooksProvided = useRef(isListDraggable);
170
+ let dropHooksProvided = useRef(isListDroppable);
171
+ useEffect(() => {
172
+ if (process.env.NODE_ENV === 'production') {
173
+ return;
174
+ }
175
+ if (dragHooksProvided.current !== isListDraggable) {
176
+ console.warn('Drag hooks were provided during one render, but not another. This should be avoided as it may produce unexpected behavior.');
177
+ }
178
+ if (dropHooksProvided.current !== isListDroppable) {
179
+ console.warn('Drop hooks were provided during one render, but not another. This should be avoided as it may produce unexpected behavior.');
180
+ }
181
+ }, [isListDraggable, isListDroppable]);
182
+
183
+ let dragState: DraggableCollectionState | undefined = undefined;
184
+ let dropState: DroppableCollectionState | undefined = undefined;
185
+ let droppableCollection: DroppableCollectionResult | undefined = undefined;
186
+ let isRootDropTarget = false;
187
+ let dragPreview: JSX.Element | null = null;
188
+ let preview = useRef<DragPreviewRenderer>(null);
189
+
190
+ if (isListDraggable && dragAndDropHooks) {
191
+ dragState = dragAndDropHooks.useDraggableCollectionState!({
192
+ collection: filteredState.collection,
193
+ selectionManager,
194
+ preview: dragAndDropHooks.renderDragPreview ? preview : undefined
195
+ });
196
+ dragAndDropHooks.useDraggableCollection!({}, dragState, ref);
197
+
198
+ let DragPreview = dragAndDropHooks.DragPreview!;
199
+ dragPreview = dragAndDropHooks.renderDragPreview
200
+ ? <DragPreview ref={preview}>{dragAndDropHooks.renderDragPreview}</DragPreview>
201
+ : null;
202
+ }
203
+
204
+ if (isListDroppable && dragAndDropHooks) {
205
+ dropState = dragAndDropHooks.useDroppableCollectionState!({
206
+ collection: filteredState.collection,
207
+ selectionManager
208
+ });
209
+
210
+ let keyboardDelegate = new ListKeyboardDelegate({
211
+ collection: filteredState.collection,
212
+ disabledKeys: selectionManager.disabledKeys,
213
+ disabledBehavior: selectionManager.disabledBehavior,
214
+ ref
215
+ });
216
+ let dropTargetDelegate = dragAndDropHooks.dropTargetDelegate || ctxDropTargetDelegate || new dragAndDropHooks.ListDropTargetDelegate(collection, ref, {layout, direction});
217
+ droppableCollection = dragAndDropHooks.useDroppableCollection!({
218
+ keyboardDelegate,
219
+ dropTargetDelegate
220
+ }, dropState, ref);
221
+
222
+ isRootDropTarget = dropState.isDropTarget({type: 'root'});
223
+ }
224
+
225
+ let {focusProps, isFocused, isFocusVisible} = useFocusRing();
226
+ let isEmpty = filteredState.collection.size === 0;
227
+ let renderValues = {
228
+ isDropTarget: isRootDropTarget,
229
+ isEmpty,
230
+ isFocused,
231
+ isFocusVisible,
232
+ layout,
233
+ state: filteredState
234
+ };
235
+ let renderProps = useRenderProps({
236
+ ...props,
237
+ children: undefined,
238
+ defaultClassName: 'react-aria-GridList',
239
+ values: renderValues
240
+ });
241
+
242
+ let emptyState: ReactNode = null;
243
+ let emptyStatePropOverrides: HTMLAttributes<HTMLElement> | null = null;
244
+
245
+ if (isEmpty && props.renderEmptyState) {
246
+ let content = props.renderEmptyState(renderValues);
247
+ emptyState = (
248
+ <div role="row" aria-rowindex={1} style={{display: 'contents'}}>
249
+ <div role="gridcell" style={{display: 'contents'}}>
250
+ {content}
251
+ </div>
252
+ </div>
253
+ );
254
+ }
255
+
256
+ let DOMProps = filterDOMProps(props, {global: true});
257
+
258
+ return (
259
+ <FocusScope>
260
+ <dom.div
261
+ {...mergeProps(DOMProps, renderProps, gridProps, focusProps, droppableCollection?.collectionProps, emptyStatePropOverrides)}
262
+ ref={ref as RefObject<HTMLDivElement>}
263
+ slot={props.slot || undefined}
264
+ onScroll={props.onScroll}
265
+ data-drop-target={isRootDropTarget || undefined}
266
+ data-empty={isEmpty || undefined}
267
+ data-focused={isFocused || undefined}
268
+ data-focus-visible={isFocusVisible || undefined}
269
+ data-layout={layout}>
270
+ <Provider
271
+ values={[
272
+ [ListStateContext, filteredState],
273
+ [DragAndDropContext, {dragAndDropHooks, dragState, dropState}],
274
+ [DropIndicatorContext, {render: GridListDropIndicatorWrapper}]
275
+ ]}>
276
+ {isListDroppable && <RootDropIndicator />}
277
+ <SharedElementTransition>
278
+ <CollectionRoot
279
+ collection={filteredState.collection}
280
+ scrollRef={ref}
281
+ persistedKeys={useDndPersistedKeys(selectionManager, dragAndDropHooks, dropState)}
282
+ renderDropIndicator={useRenderDropIndicator(dragAndDropHooks, dropState)} />
283
+ </SharedElementTransition>
284
+ </Provider>
285
+ {emptyState}
286
+ {dragPreview}
287
+ </dom.div>
288
+ </FocusScope>
289
+ );
290
+ }
291
+
292
+ export interface GridListItemRenderProps extends ItemRenderProps {
293
+ /** The unique id of the item. */
294
+ id?: Key,
295
+ /**
296
+ * State of the grid list.
297
+ */
298
+ state: ListState<unknown>
299
+ }
300
+
301
+ export interface GridListItemProps<T = object> extends RenderProps<GridListItemRenderProps>, LinkDOMProps, HoverEvents, PressEvents, Omit<GlobalDOMAttributes<HTMLDivElement>, 'onClick'> {
302
+ /**
303
+ * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the element. A function may be provided to compute the class based on component state.
304
+ * @default 'react-aria-GridListItem'
305
+ */
306
+ className?: ClassNameOrFunction<GridListItemRenderProps>,
307
+ /** The unique id of the item. */
308
+ id?: Key,
309
+ /** The object value that this item represents. When using dynamic collections, this is set automatically. */
310
+ value?: T,
311
+ /** A string representation of the item's contents, used for features like typeahead. */
312
+ textValue?: string,
313
+ /** Whether the item is disabled. */
314
+ isDisabled?: boolean,
315
+ /**
316
+ * Handler that is called when a user performs an action on the item. The exact user event depends on
317
+ * the collection's `selectionBehavior` prop and the interaction modality.
318
+ */
319
+ onAction?: () => void
320
+ }
321
+
322
+ /**
323
+ * A GridListItem represents an individual item in a GridList.
324
+ */
325
+ export const GridListItem = /*#__PURE__*/ createLeafComponent(ItemNode, function GridListItem<T extends object>(props: GridListItemProps<T>, forwardedRef: ForwardedRef<HTMLDivElement>, item: Node<T>) {
326
+ let state = useContext(ListStateContext)!;
327
+ let {dragAndDropHooks, dragState, dropState} = useContext(DragAndDropContext);
328
+ let ref = useObjectRef<HTMLDivElement>(forwardedRef);
329
+ let {isVirtualized} = useContext(CollectionRendererContext);
330
+ let {rowProps, gridCellProps, descriptionProps, ...states} = useGridListItem(
331
+ {
332
+ node: item,
333
+ shouldSelectOnPressUp: !!dragState,
334
+ isVirtualized
335
+ },
336
+ state,
337
+ ref
338
+ );
339
+
340
+ let {hoverProps, isHovered} = useHover({
341
+ isDisabled: !states.allowsSelection && !states.hasAction,
342
+ onHoverStart: item.props.onHoverStart,
343
+ onHoverChange: item.props.onHoverChange,
344
+ onHoverEnd: item.props.onHoverEnd
345
+ });
346
+
347
+ let {isFocusVisible, focusProps} = useFocusRing();
348
+ let {checkboxProps} = useGridListSelectionCheckbox(
349
+ {key: item.key},
350
+ state
351
+ );
352
+
353
+ let buttonProps = state.selectionManager.disabledBehavior === 'all' && states.isDisabled ? {isDisabled: true} : {};
354
+
355
+ let draggableItem: DraggableItemResult | null = null;
356
+ if (dragState && dragAndDropHooks) {
357
+ draggableItem = dragAndDropHooks.useDraggableItem!({key: item.key, hasDragButton: true}, dragState);
358
+ }
359
+
360
+ let dropIndicator: DropIndicatorAria | null = null;
361
+ let dropIndicatorRef = useRef<HTMLDivElement>(null);
362
+ let {visuallyHiddenProps} = useVisuallyHidden();
363
+ if (dropState && dragAndDropHooks) {
364
+ dropIndicator = dragAndDropHooks.useDropIndicator!({
365
+ target: {type: 'item', key: item.key, dropPosition: 'on'}
366
+ }, dropState, dropIndicatorRef);
367
+ }
368
+
369
+ let isDragging = dragState && dragState.isDragging(item.key);
370
+ let renderProps = useRenderProps({
371
+ ...props,
372
+ id: undefined,
373
+ children: item.rendered,
374
+ defaultClassName: 'react-aria-GridListItem',
375
+ values: {
376
+ ...states,
377
+ isHovered,
378
+ isFocusVisible,
379
+ selectionMode: state.selectionManager.selectionMode,
380
+ selectionBehavior: state.selectionManager.selectionBehavior,
381
+ allowsDragging: !!dragState,
382
+ isDragging,
383
+ isDropTarget: dropIndicator?.isDropTarget,
384
+ id: item.key,
385
+ state
386
+ }
387
+ });
388
+
389
+ let dragButtonRef = useRef<HTMLButtonElement>(null);
390
+ useEffect(() => {
391
+ if (dragState && !dragButtonRef.current) {
392
+ console.warn('Draggable items in a GridList must contain a <Button slot="drag"> element so that keyboard and screen reader users can drag them.');
393
+ }
394
+ // eslint-disable-next-line
395
+ }, []);
396
+
397
+ useEffect(() => {
398
+ if (!item.textValue && process.env.NODE_ENV !== 'production') {
399
+ console.warn('A `textValue` prop is required for <GridListItem> elements with non-plain text children in order to support accessibility features such as type to select.');
400
+ }
401
+ }, [item.textValue]);
402
+
403
+ let DOMProps = filterDOMProps(props as any, {global: true});
404
+ delete DOMProps.id;
405
+ delete DOMProps.onClick;
406
+
407
+ return (
408
+ <>
409
+ {dropIndicator && !dropIndicator.isHidden &&
410
+ <div role="row" style={{position: 'absolute'}}>
411
+ <div role="gridcell">
412
+ <div role="button" {...visuallyHiddenProps} {...dropIndicator?.dropIndicatorProps} ref={dropIndicatorRef} />
413
+ </div>
414
+ </div>
415
+ }
416
+ <dom.div
417
+ {...mergeProps(DOMProps, renderProps, rowProps, focusProps, hoverProps, draggableItem?.dragProps)}
418
+ ref={ref}
419
+ data-selected={states.isSelected || undefined}
420
+ data-disabled={states.isDisabled || undefined}
421
+ data-hovered={isHovered || undefined}
422
+ data-focused={states.isFocused || undefined}
423
+ data-focus-visible={isFocusVisible || undefined}
424
+ data-pressed={states.isPressed || undefined}
425
+ data-allows-dragging={!!dragState || undefined}
426
+ data-dragging={isDragging || undefined}
427
+ data-drop-target={dropIndicator?.isDropTarget || undefined}
428
+ data-selection-mode={state.selectionManager.selectionMode === 'none' ? undefined : state.selectionManager.selectionMode}>
429
+ <div {...gridCellProps} style={{display: 'contents'}}>
430
+ <Provider
431
+ values={[
432
+ [CheckboxContext, {
433
+ slots: {
434
+ [DEFAULT_SLOT]: {},
435
+ selection: checkboxProps
436
+ }
437
+ }],
438
+ [ButtonContext, {
439
+ slots: {
440
+ [DEFAULT_SLOT]: buttonProps,
441
+ drag: {
442
+ ...draggableItem?.dragButtonProps,
443
+ ref: dragButtonRef,
444
+ style: {
445
+ pointerEvents: 'none'
446
+ }
447
+ }
448
+ }
449
+ }],
450
+ [TextContext, {
451
+ slots: {
452
+ [DEFAULT_SLOT]: {},
453
+ description: descriptionProps
454
+ }
455
+ }],
456
+ [CollectionRendererContext, DefaultCollectionRenderer],
457
+ [ListStateContext, null],
458
+ [SelectableCollectionContext, null],
459
+ [FieldInputContext, null],
460
+ [SelectionIndicatorContext, {isSelected: states.isSelected}]
461
+ ]}>
462
+ {renderProps.children}
463
+ </Provider>
464
+ </div>
465
+ </dom.div>
466
+ </>
467
+ );
468
+ });
469
+
470
+ function GridListDropIndicatorWrapper(props: DropIndicatorProps, ref: ForwardedRef<HTMLElement>) {
471
+ ref = useObjectRef(ref);
472
+ let {dragAndDropHooks, dropState} = useContext(DragAndDropContext);
473
+ let buttonRef = useRef<HTMLDivElement>(null);
474
+ let {dropIndicatorProps, isHidden, isDropTarget} = dragAndDropHooks!.useDropIndicator!(
475
+ props,
476
+ dropState!,
477
+ buttonRef
478
+ );
479
+
480
+ if (isHidden) {
481
+ return null;
482
+ }
483
+
484
+ return (
485
+ <GridListDropIndicatorForwardRef {...props} dropIndicatorProps={dropIndicatorProps} isDropTarget={isDropTarget} buttonRef={buttonRef} ref={ref} />
486
+ );
487
+ }
488
+
489
+ interface GridListDropIndicatorProps extends DropIndicatorProps {
490
+ dropIndicatorProps: React.HTMLAttributes<HTMLElement>,
491
+ isDropTarget: boolean,
492
+ buttonRef: RefObject<HTMLDivElement | null>
493
+ }
494
+
495
+ function GridListDropIndicator(props: GridListDropIndicatorProps, ref: ForwardedRef<HTMLElement>) {
496
+ let {
497
+ dropIndicatorProps,
498
+ isDropTarget,
499
+ buttonRef,
500
+ ...otherProps
501
+ } = props;
502
+
503
+ let {visuallyHiddenProps} = useVisuallyHidden();
504
+ let renderProps = useRenderProps({
505
+ ...otherProps,
506
+ defaultClassName: 'react-aria-DropIndicator',
507
+ values: {
508
+ isDropTarget
509
+ }
510
+ });
511
+
512
+ return (
513
+ <dom.div
514
+ {...renderProps}
515
+ role="row"
516
+ ref={ref as RefObject<HTMLDivElement | null>}
517
+ data-drop-target={isDropTarget || undefined}>
518
+ <div role="gridcell">
519
+ <div {...visuallyHiddenProps} role="button" {...dropIndicatorProps} ref={buttonRef} />
520
+ {renderProps.children}
521
+ </div>
522
+ </dom.div>
523
+ );
524
+ }
525
+
526
+ const GridListDropIndicatorForwardRef = forwardRef(GridListDropIndicator);
527
+
528
+ function RootDropIndicator() {
529
+ let {dragAndDropHooks, dropState} = useContext(DragAndDropContext);
530
+ let ref = useRef<HTMLDivElement>(null);
531
+ let {dropIndicatorProps} = dragAndDropHooks!.useDropIndicator!({
532
+ target: {type: 'root'}
533
+ }, dropState!, ref);
534
+ let isDropTarget = dropState!.isDropTarget({type: 'root'});
535
+ let {visuallyHiddenProps} = useVisuallyHidden();
536
+
537
+ if (!isDropTarget && dropIndicatorProps['aria-hidden']) {
538
+ return null;
539
+ }
540
+
541
+ return (
542
+ <div role="row" aria-hidden={dropIndicatorProps['aria-hidden']} style={{position: 'absolute'}}>
543
+ <div role="gridcell">
544
+ <div role="button" {...visuallyHiddenProps} {...dropIndicatorProps} ref={ref} />
545
+ </div>
546
+ </div>
547
+ );
548
+ }
549
+
550
+ export interface GridListLoadMoreItemProps extends Omit<LoadMoreSentinelProps, 'collection'>, StyleProps, DOMRenderProps<'div', undefined>, GlobalDOMAttributes<HTMLDivElement> {
551
+ /**
552
+ * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the element.
553
+ * @default 'react-aria-GridListLoadMoreItem'
554
+ */
555
+ className?: string,
556
+ /**
557
+ * The load more spinner to render when loading additional items.
558
+ */
559
+ children?: ReactNode,
560
+ /**
561
+ * Whether or not the loading spinner should be rendered or not.
562
+ */
563
+ isLoading?: boolean
564
+ }
565
+
566
+ export const GridListLoadMoreItem = createLeafComponent(LoaderNode, function GridListLoadingIndicator(props: GridListLoadMoreItemProps, ref: ForwardedRef<HTMLDivElement>, item: Node<object>) {
567
+ let state = useContext(ListStateContext)!;
568
+ let {isVirtualized} = useContext(CollectionRendererContext);
569
+ let {isLoading, onLoadMore, scrollOffset, ...otherProps} = props;
570
+
571
+ let sentinelRef = useRef(null);
572
+ let memoedLoadMoreProps = useMemo(() => ({
573
+ onLoadMore,
574
+ collection: state?.collection,
575
+ sentinelRef,
576
+ scrollOffset
577
+ }), [onLoadMore, scrollOffset, state?.collection]);
578
+ useLoadMoreSentinel(memoedLoadMoreProps, sentinelRef);
579
+
580
+ let renderProps = useRenderProps({
581
+ ...otherProps,
582
+ id: undefined,
583
+ children: item.rendered,
584
+ defaultClassName: 'react-aria-GridListLoadingIndicator',
585
+ values: undefined
586
+ });
587
+ // For now don't include aria-posinset and aria-setsize on loader since they aren't keyboard focusable
588
+ // Arguably shouldn't include them ever since it might be confusing to the user to include the loaders as part of the
589
+ // item count
590
+
591
+ return (
592
+ <>
593
+ {/* Alway render the sentinel. For now onus is on the user for styling when using flex + gap (this would introduce a gap even though it doesn't take room) */}
594
+ {/* @ts-ignore - compatibility with React < 19 */}
595
+ <div style={{position: 'relative', width: 0, height: 0}} inert={inertValue(true)} >
596
+ <div data-testid="loadMoreSentinel" ref={sentinelRef} style={{position: 'absolute', height: 1, width: 1}} />
597
+ </div>
598
+ {isLoading && renderProps.children && (
599
+ <dom.div
600
+ {...renderProps}
601
+ {...filterDOMProps(props, {global: true})}
602
+ role="row"
603
+ ref={ref}>
604
+ <div
605
+ aria-colindex={isVirtualized ? 1 : undefined}
606
+ role="gridcell">
607
+ {renderProps.children}
608
+ </div>
609
+ </dom.div>
610
+ )}
611
+ </>
612
+ );
613
+ });
614
+
615
+ export interface GridListSectionProps<T> extends SectionProps<T>, DOMRenderProps<'div', undefined> {
616
+ /**
617
+ * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the element.
618
+ * @default 'react-aria-GridListSection'
619
+ */
620
+ className?: string
621
+ }
622
+
623
+ /**
624
+ * A GridListSection represents a section within a GridList.
625
+ */
626
+ export const GridListSection = /*#__PURE__*/ createBranchComponent(SectionNode, <T extends object>(props: GridListSectionProps<T>, ref: ForwardedRef<HTMLDivElement>, item: Node<T>) => {
627
+ let state = useContext(ListStateContext)!;
628
+ let {CollectionBranch} = useContext(CollectionRendererContext);
629
+ let headingRef = useRef(null);
630
+ ref = useObjectRef<HTMLDivElement>(ref);
631
+ let {rowHeaderProps, rowProps, rowGroupProps} = useGridListSection({
632
+ 'aria-label': props['aria-label'] ?? undefined
633
+ }, state, ref);
634
+ let renderProps = useRenderProps({
635
+ ...props,
636
+ id: undefined,
637
+ children: undefined,
638
+ defaultClassName: 'react-aria-GridListSection',
639
+ values: undefined
640
+ });
641
+
642
+ let DOMProps = filterDOMProps(props as any, {global: true});
643
+ delete DOMProps.id;
644
+
645
+ return (
646
+ <dom.div
647
+ {...mergeProps(DOMProps, renderProps, rowGroupProps)}
648
+ ref={ref}>
649
+ <Provider
650
+ values={[
651
+ [GridListHeaderContext, {...rowProps, ref: headingRef}],
652
+ [GridListHeaderInnerContext, {...rowHeaderProps}]
653
+ ]}>
654
+ <CollectionBranch
655
+ collection={state.collection}
656
+ parent={item} />
657
+ </Provider>
658
+ </dom.div>
659
+ );
660
+ });
661
+
662
+ export interface GridListHeaderProps extends DOMRenderProps<'div', undefined>, DOMProps, GlobalDOMAttributes<HTMLElement> {}
663
+
664
+ export const GridListHeaderContext = createContext<ContextValue<GridListHeaderProps, HTMLDivElement>>({});
665
+ export const GridListHeaderInnerContext = createContext<HTMLAttributes<HTMLElement> | null>(null);
666
+
667
+ export const GridListHeader = /*#__PURE__*/ createLeafComponent(HeaderNode, function Header(props: GridListHeaderProps, ref: ForwardedRef<HTMLDivElement>) {
668
+ [props, ref] = useContextProps(props, ref, GridListHeaderContext);
669
+ let rowHeaderProps = useContext(GridListHeaderInnerContext);
670
+
671
+ return (
672
+ <dom.div render={props.render} className="react-aria-GridListHeader" ref={ref} {...props}>
673
+ <div {...rowHeaderProps} style={{display: 'contents'}}>
674
+ {props.children}
675
+ </div>
676
+ </dom.div>
677
+ );
678
+ });