@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,152 @@
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
+
13
+ import {AriaSearchFieldProps, useSearchField} from 'react-aria';
14
+ import {ButtonContext} from './Button';
15
+ import {
16
+ ClassNameOrFunction,
17
+ ContextValue,
18
+ dom,
19
+ Provider,
20
+ RACValidation,
21
+ removeDataAttributes,
22
+ RenderProps,
23
+ SlotProps,
24
+ useContextProps,
25
+ useRenderProps,
26
+ useSlot,
27
+ useSlottedContext
28
+ } from './utils';
29
+ import {createHideableComponent} from '@react-aria/collections';
30
+ import {FieldErrorContext} from './FieldError';
31
+ import {FieldInputContext} from './RSPContexts';
32
+ import {filterDOMProps} from '@react-aria/utils';
33
+ import {FormContext} from './Form';
34
+ import {GlobalDOMAttributes} from '@react-types/shared';
35
+ import {GroupContext} from './Group';
36
+ import {InputContext} from './Input';
37
+ import {LabelContext} from './Label';
38
+ import React, {createContext, ForwardedRef, useRef} from 'react';
39
+ import {SearchFieldState, useSearchFieldState} from 'react-stately';
40
+ import {TextContext} from './Text';
41
+
42
+ export interface SearchFieldRenderProps {
43
+ /**
44
+ * Whether the search field is empty.
45
+ * @selector [data-empty]
46
+ */
47
+ isEmpty: boolean,
48
+ /**
49
+ * Whether the search field is disabled.
50
+ * @selector [data-disabled]
51
+ */
52
+ isDisabled: boolean,
53
+ /**
54
+ * Whether the search field is invalid.
55
+ * @selector [data-invalid]
56
+ */
57
+ isInvalid: boolean,
58
+ /**
59
+ * Whether the search field is read only.
60
+ * @selector [data-readonly]
61
+ */
62
+ isReadOnly: boolean,
63
+ /**
64
+ * Whether the search field is required.
65
+ * @selector [data-required]
66
+ */
67
+ isRequired: boolean,
68
+ /**
69
+ * State of the search field.
70
+ */
71
+ state: SearchFieldState
72
+ }
73
+
74
+ export interface SearchFieldProps extends Omit<AriaSearchFieldProps, 'label' | 'placeholder' | 'description' | 'errorMessage' | 'validationState' | 'validationBehavior'>, RACValidation, RenderProps<SearchFieldRenderProps>, SlotProps, GlobalDOMAttributes<HTMLDivElement> {
75
+ /**
76
+ * 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.
77
+ * @default 'react-aria-SearchField'
78
+ */
79
+ className?: ClassNameOrFunction<SearchFieldRenderProps>
80
+ }
81
+
82
+ export const SearchFieldContext = createContext<ContextValue<SearchFieldProps, HTMLDivElement>>(null);
83
+
84
+ /**
85
+ * A search field allows a user to enter and clear a search query.
86
+ */
87
+ export const SearchField = /*#__PURE__*/ createHideableComponent(function SearchField(props: SearchFieldProps, ref: ForwardedRef<HTMLDivElement>) {
88
+ [props, ref] = useContextProps(props, ref, SearchFieldContext);
89
+ let {validationBehavior: formValidationBehavior} = useSlottedContext(FormContext) || {};
90
+ let validationBehavior = props.validationBehavior ?? formValidationBehavior ?? 'native';
91
+ let inputRef = useRef<HTMLInputElement>(null);
92
+ [props, inputRef as unknown] = useContextProps(props, inputRef, FieldInputContext);
93
+ let [labelRef, label] = useSlot(
94
+ !props['aria-label'] && !props['aria-labelledby']
95
+ );
96
+ let state = useSearchFieldState({
97
+ ...props,
98
+ validationBehavior
99
+ });
100
+
101
+ let {labelProps, inputProps, clearButtonProps, descriptionProps, errorMessageProps, ...validation} = useSearchField({
102
+ ...removeDataAttributes(props),
103
+ label,
104
+ validationBehavior
105
+ }, state, inputRef);
106
+
107
+ let renderProps = useRenderProps({
108
+ ...props,
109
+ values: {
110
+ isEmpty: state.value === '',
111
+ isDisabled: props.isDisabled || false,
112
+ isInvalid: validation.isInvalid || false,
113
+ isReadOnly: props.isReadOnly || false,
114
+ isRequired: props.isRequired || false,
115
+ state
116
+ },
117
+ defaultClassName: 'react-aria-SearchField'
118
+ });
119
+
120
+ let DOMProps = filterDOMProps(props, {global: true});
121
+ delete DOMProps.id;
122
+
123
+ return (
124
+ <dom.div
125
+ {...DOMProps}
126
+ {...renderProps}
127
+ ref={ref}
128
+ slot={props.slot || undefined}
129
+ data-empty={state.value === '' || undefined}
130
+ data-disabled={props.isDisabled || undefined}
131
+ data-invalid={validation.isInvalid || undefined}
132
+ data-readonly={props.isReadOnly || undefined}
133
+ data-required={props.isRequired || undefined}>
134
+ <Provider
135
+ values={[
136
+ [LabelContext, {...labelProps, ref: labelRef}],
137
+ [InputContext, {...inputProps, ref: inputRef}],
138
+ [ButtonContext, clearButtonProps],
139
+ [TextContext, {
140
+ slots: {
141
+ description: descriptionProps,
142
+ errorMessage: errorMessageProps
143
+ }
144
+ }],
145
+ [GroupContext, {isInvalid: validation.isInvalid, isDisabled: props.isDisabled || false}],
146
+ [FieldErrorContext, validation]
147
+ ]}>
148
+ {renderProps.children}
149
+ </Provider>
150
+ </dom.div>
151
+ );
152
+ });
package/src/Select.tsx ADDED
@@ -0,0 +1,356 @@
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
+
13
+ import {AriaSelectProps, HiddenSelect, useFocusRing, useListFormatter, useLocalizedStringFormatter, useSelect} from 'react-aria';
14
+ import {ButtonContext} from './Button';
15
+ import {
16
+ ClassNameOrFunction,
17
+ ContextValue,
18
+ dom,
19
+ Provider,
20
+ RACValidation,
21
+ removeDataAttributes,
22
+ RenderProps,
23
+ SlotProps,
24
+ useContextProps,
25
+ useRenderProps,
26
+ useSlot,
27
+ useSlottedContext
28
+ } from './utils';
29
+ import {Collection, Node, SelectState, useSelectState} from 'react-stately';
30
+ import {CollectionBuilder, createHideableComponent} from '@react-aria/collections';
31
+ import {FieldErrorContext} from './FieldError';
32
+ import {filterDOMProps, mergeProps, useResizeObserver} from '@react-aria/utils';
33
+ import {FormContext} from './Form';
34
+ import {forwardRefType, GlobalDOMAttributes} from '@react-types/shared';
35
+ // @ts-ignore
36
+ import intlMessages from '../intl/*.json';
37
+ import {ItemRenderProps} from './Collection';
38
+ import {LabelContext} from './Label';
39
+ import {ListBoxContext, ListStateContext} from './ListBox';
40
+ import {OverlayTriggerStateContext} from './Dialog';
41
+ import {PopoverContext} from './Popover';
42
+ import React, {createContext, ForwardedRef, forwardRef, Fragment, HTMLAttributes, ReactNode, useCallback, useContext, useMemo, useRef, useState} from 'react';
43
+ import {TextContext} from './Text';
44
+
45
+ type SelectionMode = 'single' | 'multiple';
46
+
47
+ export interface SelectRenderProps {
48
+ /**
49
+ * Whether the select is focused, either via a mouse or keyboard.
50
+ * @selector [data-focused]
51
+ */
52
+ isFocused: boolean,
53
+ /**
54
+ * Whether the select is keyboard focused.
55
+ * @selector [data-focus-visible]
56
+ */
57
+ isFocusVisible: boolean,
58
+ /**
59
+ * Whether the select is disabled.
60
+ * @selector [data-disabled]
61
+ */
62
+ isDisabled: boolean,
63
+ /**
64
+ * Whether the select is currently open.
65
+ * @selector [data-open]
66
+ */
67
+ isOpen: boolean,
68
+ /**
69
+ * Whether the select is invalid.
70
+ * @selector [data-invalid]
71
+ */
72
+ isInvalid: boolean,
73
+ /**
74
+ * Whether the select is required.
75
+ * @selector [data-required]
76
+ */
77
+ isRequired: boolean
78
+ }
79
+
80
+ export interface SelectProps<T extends object = {}, M extends SelectionMode = 'single'> extends Omit<AriaSelectProps<T, M>, 'children' | 'label' | 'description' | 'errorMessage' | 'validationState' | 'validationBehavior' | 'items'>, RACValidation, RenderProps<SelectRenderProps>, SlotProps, GlobalDOMAttributes<HTMLDivElement> {
81
+ /**
82
+ * 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.
83
+ * @default 'react-aria-Select'
84
+ */
85
+ className?: ClassNameOrFunction<SelectRenderProps>,
86
+ /**
87
+ * Temporary text that occupies the select when it is empty.
88
+ * @default 'Select an item' (localized)
89
+ */
90
+ placeholder?: string
91
+ }
92
+
93
+ export const SelectContext = createContext<ContextValue<SelectProps<any, SelectionMode>, HTMLDivElement>>(null);
94
+ export const SelectStateContext = createContext<SelectState<unknown, SelectionMode> | null>(null);
95
+
96
+ /**
97
+ * A select displays a collapsible list of options and allows a user to select one of them.
98
+ */
99
+ export const Select = /*#__PURE__*/ (forwardRef as forwardRefType)(function Select<T extends object = {}, M extends SelectionMode = 'single'>(props: SelectProps<T, M>, ref: ForwardedRef<HTMLDivElement>) {
100
+ [props, ref] = useContextProps(props, ref, SelectContext);
101
+ let {children, isDisabled = false, isInvalid = false, isRequired = false} = props;
102
+ let content = useMemo(() => (
103
+ typeof children === 'function'
104
+ ? children({
105
+ isOpen: false,
106
+ isDisabled,
107
+ isInvalid,
108
+ isRequired,
109
+ isFocused: false,
110
+ isFocusVisible: false,
111
+ defaultChildren: null
112
+ })
113
+ : children
114
+ ), [children, isDisabled, isInvalid, isRequired]);
115
+
116
+ return (
117
+ <CollectionBuilder content={content}>
118
+ {collection => <SelectInner props={props} collection={collection} selectRef={ref} />}
119
+ </CollectionBuilder>
120
+ );
121
+ });
122
+
123
+ // Contexts to clear inside the popover.
124
+ const CLEAR_CONTEXTS = [LabelContext, ButtonContext, TextContext];
125
+
126
+ interface SelectInnerProps<T extends object> {
127
+ props: SelectProps<T, SelectionMode>,
128
+ selectRef: ForwardedRef<HTMLDivElement>,
129
+ collection: Collection<Node<T>>
130
+ }
131
+
132
+ function SelectInner<T extends object>({props, selectRef: ref, collection}: SelectInnerProps<T>) {
133
+ let {validationBehavior: formValidationBehavior} = useSlottedContext(FormContext) || {};
134
+ let validationBehavior = props.validationBehavior ?? formValidationBehavior ?? 'native';
135
+ let state = useSelectState({
136
+ ...props,
137
+ collection,
138
+ children: undefined,
139
+ validationBehavior
140
+ });
141
+
142
+ let {isFocusVisible, focusProps} = useFocusRing({within: true});
143
+
144
+ // Get props for child elements from useSelect
145
+ let buttonRef = useRef<HTMLButtonElement>(null);
146
+ let [labelRef, label] = useSlot(
147
+ !props['aria-label'] && !props['aria-labelledby']
148
+ );
149
+ let {
150
+ labelProps,
151
+ triggerProps,
152
+ valueProps,
153
+ menuProps,
154
+ descriptionProps,
155
+ errorMessageProps,
156
+ hiddenSelectProps,
157
+ ...validation
158
+ } = useSelect({
159
+ ...removeDataAttributes(props),
160
+ label,
161
+ validationBehavior
162
+ }, state, buttonRef);
163
+
164
+ // Make menu width match input + button
165
+ let [buttonWidth, setButtonWidth] = useState<string | null>(null);
166
+ let onResize = useCallback(() => {
167
+ if (buttonRef.current) {
168
+ setButtonWidth(buttonRef.current.offsetWidth + 'px');
169
+ }
170
+ }, [buttonRef]);
171
+
172
+ useResizeObserver({
173
+ ref: buttonRef,
174
+ onResize: onResize
175
+ });
176
+
177
+ // Only expose a subset of state to renderProps function to avoid infinite render loop
178
+ let renderPropsState = useMemo(() => ({
179
+ isOpen: state.isOpen,
180
+ isFocused: state.isFocused,
181
+ isFocusVisible,
182
+ isDisabled: props.isDisabled || false,
183
+ isInvalid: validation.isInvalid || false,
184
+ isRequired: props.isRequired || false
185
+ }), [state.isOpen, state.isFocused, isFocusVisible, props.isDisabled, validation.isInvalid, props.isRequired]);
186
+
187
+ let renderProps = useRenderProps({
188
+ ...props,
189
+ values: renderPropsState,
190
+ defaultClassName: 'react-aria-Select'
191
+ });
192
+
193
+ let DOMProps = filterDOMProps(props, {global: true});
194
+ delete DOMProps.id;
195
+
196
+ let scrollRef = useRef(null);
197
+
198
+ return (
199
+ <Provider
200
+ values={[
201
+ [SelectContext, props],
202
+ [SelectStateContext, state],
203
+ [SelectValueContext, valueProps],
204
+ [LabelContext, {...labelProps, ref: labelRef, elementType: 'span'}],
205
+ [ButtonContext, {...triggerProps, ref: buttonRef, isPressed: state.isOpen, autoFocus: props.autoFocus}],
206
+ [OverlayTriggerStateContext, state],
207
+ [PopoverContext, {
208
+ trigger: 'Select',
209
+ triggerRef: buttonRef,
210
+ scrollRef,
211
+ placement: 'bottom start',
212
+ style: {'--trigger-width': buttonWidth} as React.CSSProperties,
213
+ 'aria-labelledby': menuProps['aria-labelledby'],
214
+ clearContexts: CLEAR_CONTEXTS
215
+ }],
216
+ [ListBoxContext, {...menuProps, ref: scrollRef}],
217
+ [ListStateContext, state],
218
+ [TextContext, {
219
+ slots: {
220
+ description: descriptionProps,
221
+ errorMessage: errorMessageProps
222
+ }
223
+ }],
224
+ [FieldErrorContext, validation]
225
+ ]}>
226
+ <dom.div
227
+ {...mergeProps(DOMProps, renderProps, focusProps)}
228
+ ref={ref}
229
+ slot={props.slot || undefined}
230
+ data-focused={state.isFocused || undefined}
231
+ data-focus-visible={isFocusVisible || undefined}
232
+ data-open={state.isOpen || undefined}
233
+ data-disabled={props.isDisabled || undefined}
234
+ data-invalid={validation.isInvalid || undefined}
235
+ data-required={props.isRequired || undefined}>
236
+ {renderProps.children}
237
+ <HiddenSelect
238
+ {...hiddenSelectProps}
239
+ autoComplete={props.autoComplete} />
240
+ </dom.div>
241
+ </Provider>
242
+ );
243
+ }
244
+
245
+ export interface SelectValueRenderProps<T> {
246
+ /**
247
+ * Whether the value is a placeholder.
248
+ * @selector [data-placeholder]
249
+ */
250
+ isPlaceholder: boolean,
251
+ /**
252
+ * The object value of the first selected item.
253
+ * @deprecated
254
+ */
255
+ selectedItem: T | null,
256
+ /** The object values of the currently selected items. */
257
+ selectedItems: (T | null)[],
258
+ /** The textValue of the currently selected items. */
259
+ selectedText: string,
260
+ /** The state of the select. */
261
+ state: SelectState<T, 'single' | 'multiple'>
262
+ }
263
+
264
+ export interface SelectValueProps<T extends object> extends Omit<HTMLAttributes<HTMLElement>, keyof RenderProps<unknown>>, RenderProps<SelectValueRenderProps<T>, 'span'> {
265
+ /**
266
+ * 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.
267
+ * @default 'react-aria-SelectValue'
268
+ */
269
+ className?: ClassNameOrFunction<SelectValueRenderProps<T>>
270
+ }
271
+
272
+ export const SelectValueContext = createContext<ContextValue<SelectValueProps<any>, HTMLSpanElement>>(null);
273
+
274
+ /**
275
+ * SelectValue renders the current value of a Select, or a placeholder if no value is selected.
276
+ * It is usually placed within the button element.
277
+ */
278
+ export const SelectValue = /*#__PURE__*/ createHideableComponent(function SelectValue<T extends object>(props: SelectValueProps<T>, ref: ForwardedRef<HTMLSpanElement>) {
279
+ [props, ref] = useContextProps(props, ref, SelectValueContext);
280
+ let state = useContext(SelectStateContext)! as SelectState<T, 'single' | 'multiple'>;
281
+ let {placeholder} = useSlottedContext(SelectContext)!;
282
+ let rendered = state.selectedItems.map((item) => {
283
+ let rendered = item.props?.children;
284
+ // If the selected item has a function as a child, we need to call it to render to React.JSX.
285
+ if (typeof rendered === 'function') {
286
+ let fn = rendered as (s: ItemRenderProps) => ReactNode;
287
+ rendered = fn({
288
+ isHovered: false,
289
+ isPressed: false,
290
+ isSelected: false,
291
+ isFocused: false,
292
+ isFocusVisible: false,
293
+ isDisabled: false,
294
+ selectionMode: 'single',
295
+ selectionBehavior: 'toggle'
296
+ });
297
+ }
298
+
299
+ return rendered;
300
+ });
301
+
302
+ let formatter = useListFormatter();
303
+ let textValue = useMemo(() => state.selectedItems.map(item => item?.textValue), [state.selectedItems]);
304
+ let selectionMode = state.selectionManager.selectionMode;
305
+ let selectedText = useMemo(() => (
306
+ selectionMode === 'single'
307
+ ? textValue[0] ?? ''
308
+ : formatter.format(textValue)
309
+ ), [selectionMode, formatter, textValue]);
310
+
311
+ let defaultChildren = useMemo(() => {
312
+ if (selectionMode === 'single') {
313
+ return rendered[0];
314
+ }
315
+
316
+ let parts = formatter.formatToParts(textValue);
317
+ if (parts.length === 0) {
318
+ return null;
319
+ }
320
+
321
+ let index = 0;
322
+ return parts.map(part => {
323
+ if (part.type === 'element') {
324
+ return <Fragment key={index}>{rendered[index++]}</Fragment>;
325
+ } else {
326
+ return part.value;
327
+ }
328
+ });
329
+ }, [selectionMode, formatter, textValue, rendered]);
330
+
331
+ let stringFormatter = useLocalizedStringFormatter(intlMessages, 'react-aria-components');
332
+
333
+ let renderProps = useRenderProps({
334
+ ...props,
335
+ defaultChildren: defaultChildren ?? placeholder ?? stringFormatter.format('selectPlaceholder'),
336
+ defaultClassName: 'react-aria-SelectValue',
337
+ values: {
338
+ selectedItem: state.selectedItems[0]?.value as T ?? null,
339
+ selectedItems: useMemo(() => state.selectedItems.map(item => item.value as T ?? null), [state.selectedItems]),
340
+ selectedText,
341
+ isPlaceholder: state.selectedItems.length === 0,
342
+ state
343
+ }
344
+ });
345
+
346
+ let DOMProps = filterDOMProps(props, {global: true});
347
+
348
+ return (
349
+ <dom.span ref={ref} {...DOMProps} {...renderProps} data-placeholder={state.selectedItems.length === 0 || undefined}>
350
+ {/* clear description and error message slots */}
351
+ <TextContext.Provider value={undefined}>
352
+ {renderProps.children}
353
+ </TextContext.Provider>
354
+ </dom.span>
355
+ );
356
+ });
@@ -0,0 +1,46 @@
1
+ /*
2
+ * Copyright 2025 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
+
13
+ import {ClassNameOrFunction, ContextValue, useContextProps} from './utils';
14
+ import React, {createContext, ForwardedRef, forwardRef} from 'react';
15
+ import {SharedElement, SharedElementPropsBase, SharedElementRenderProps} from './SharedElementTransition';
16
+
17
+ export interface SelectionIndicatorProps extends SharedElementPropsBase {
18
+ /**
19
+ * 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.
20
+ * @default 'react-aria-SelectionIndicator'
21
+ */
22
+ className?: ClassNameOrFunction<SharedElementRenderProps>,
23
+ /** Whether the SelectionIndicator is visible. This is usually set automatically by the parent component. */
24
+ isSelected?: boolean
25
+ }
26
+
27
+ export const SelectionIndicatorContext = createContext<ContextValue<SelectionIndicatorProps, HTMLDivElement>>({
28
+ isSelected: false
29
+ });
30
+
31
+
32
+ /**
33
+ * An animated indicator of selection state within a group of items.
34
+ */
35
+ export const SelectionIndicator = forwardRef(function SelectionIndicator(props: SelectionIndicatorProps, ref: ForwardedRef<HTMLDivElement>) {
36
+ [props, ref] = useContextProps(props, ref, SelectionIndicatorContext);
37
+ let {isSelected, ...otherProps} = props;
38
+ return (
39
+ <SharedElement
40
+ {...otherProps}
41
+ ref={ref}
42
+ className={props.className || 'react-aria-SelectionIndicator'}
43
+ name="SelectionIndicator"
44
+ isVisible={isSelected} />
45
+ );
46
+ });
@@ -0,0 +1,76 @@
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
+
13
+ import {SeparatorProps as AriaSeparatorProps, useSeparator} from 'react-aria';
14
+ import {BaseCollection, CollectionNode, createLeafComponent} from '@react-aria/collections';
15
+ import {ContextValue, dom, DOMRenderProps, SlotProps, StyleProps, useContextProps} from './utils';
16
+ import {filterDOMProps, mergeProps} from '@react-aria/utils';
17
+ import {GlobalDOMAttributes} from '@react-types/shared';
18
+ import React, {createContext, ForwardedRef} from 'react';
19
+
20
+ export interface SeparatorProps extends AriaSeparatorProps, StyleProps, SlotProps, DOMRenderProps<'hr' | 'div', undefined>, GlobalDOMAttributes<HTMLElement> {
21
+ /**
22
+ * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the element.
23
+ * @default 'react-aria-Separator'
24
+ */
25
+ className?: string
26
+ }
27
+
28
+ export const SeparatorContext = createContext<ContextValue<SeparatorProps, HTMLElement>>({});
29
+
30
+ export class SeparatorNode extends CollectionNode<any> {
31
+ static readonly type = 'separator';
32
+
33
+ filter(collection: BaseCollection<any>, newCollection: BaseCollection<any>): CollectionNode<any> | null {
34
+ let prevItem = newCollection.getItem(this.prevKey!);
35
+ if (prevItem && prevItem.type !== 'separator') {
36
+ let clone = this.clone();
37
+ newCollection.addDescendants(clone, collection);
38
+ return clone;
39
+ }
40
+
41
+ return null;
42
+ }
43
+ }
44
+
45
+ /**
46
+ * A separator is a visual divider between two groups of content, e.g. groups of menu items or sections of a page.
47
+ */
48
+ export const Separator = /*#__PURE__*/ createLeafComponent(SeparatorNode, function Separator(props: SeparatorProps, ref: ForwardedRef<HTMLElement>) {
49
+ [props, ref] = useContextProps(props, ref, SeparatorContext);
50
+
51
+ let {elementType, orientation, style, className, slot, ...otherProps} = props;
52
+ let Element = elementType || 'hr';
53
+ if (Element === 'hr' && orientation === 'vertical') {
54
+ Element = 'div';
55
+ }
56
+
57
+ let ElementType = dom[Element];
58
+
59
+ let {separatorProps} = useSeparator({
60
+ ...otherProps,
61
+ elementType,
62
+ orientation
63
+ });
64
+
65
+ let DOMProps = filterDOMProps(props, {global: true});
66
+
67
+ return (
68
+ <ElementType
69
+ render={props.render}
70
+ {...mergeProps(DOMProps, separatorProps)}
71
+ style={style}
72
+ className={className ?? 'react-aria-Separator'}
73
+ ref={ref}
74
+ slot={slot || undefined} />
75
+ );
76
+ });