@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,108 @@
1
+ import {ClassNameOrFunction, dom, RenderProps, useRenderProps} from './utils';
2
+ import {Color} from 'react-stately';
3
+ import {filterDOMProps} from '@react-aria/utils';
4
+ import {GlobalDOMAttributes, HoverEvents, RefObject} from '@react-types/shared';
5
+ import {mergeProps, useFocusRing, useHover} from 'react-aria';
6
+ import React, {createContext, ForwardedRef, forwardRef, HTMLAttributes, InputHTMLAttributes, useContext} from 'react';
7
+
8
+ interface ColorState {
9
+ getDisplayColor(): Color,
10
+ isDragging: boolean
11
+ }
12
+
13
+ interface InternalColorThumbContextValue {
14
+ state: ColorState,
15
+ thumbProps: HTMLAttributes<HTMLElement>,
16
+ inputXRef: RefObject<HTMLInputElement | null>,
17
+ inputYRef?: RefObject<HTMLInputElement | null>,
18
+ xInputProps: InputHTMLAttributes<HTMLInputElement>,
19
+ yInputProps?: InputHTMLAttributes<HTMLInputElement>,
20
+ isDisabled?: boolean
21
+ }
22
+
23
+ export const InternalColorThumbContext = createContext<InternalColorThumbContextValue | null>(null);
24
+
25
+ export interface ColorThumbRenderProps {
26
+ /**
27
+ * The selected color, excluding the alpha channel.
28
+ */
29
+ color: Color,
30
+ /**
31
+ * Whether this thumb is currently being dragged.
32
+ * @selector [data-dragging]
33
+ */
34
+ isDragging: boolean,
35
+ /**
36
+ * Whether the thumb is currently hovered with a mouse.
37
+ * @selector [data-hovered]
38
+ */
39
+ isHovered: boolean,
40
+ /**
41
+ * Whether the thumb is currently focused.
42
+ * @selector [data-focused]
43
+ */
44
+ isFocused: boolean,
45
+ /**
46
+ * Whether the thumb is keyboard focused.
47
+ * @selector [data-focus-visible]
48
+ */
49
+ isFocusVisible: boolean,
50
+ /**
51
+ * Whether the thumb is disabled.
52
+ * @selector [data-disabled]
53
+ */
54
+ isDisabled: boolean
55
+ }
56
+
57
+ export interface ColorThumbProps extends HoverEvents, RenderProps<ColorThumbRenderProps>, GlobalDOMAttributes<HTMLDivElement> {
58
+ /**
59
+ * 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.
60
+ * @default 'react-aria-ColorThumb'
61
+ */
62
+ className?: ClassNameOrFunction<ColorThumbRenderProps>
63
+ }
64
+
65
+ /**
66
+ * A color thumb appears within a ColorArea, ColorSlider, or ColorWheel and allows a user to drag to adjust the color value.
67
+ */
68
+ export const ColorThumb = forwardRef(function ColorThumb(props: ColorThumbProps, ref: ForwardedRef<HTMLDivElement>) {
69
+ let {state, thumbProps, inputXRef, inputYRef, xInputProps, yInputProps, isDisabled = false} = useContext(InternalColorThumbContext)!;
70
+ let {focusProps, isFocused, isFocusVisible} = useFocusRing();
71
+ let {hoverProps, isHovered} = useHover(props);
72
+
73
+ let renderProps = useRenderProps({
74
+ ...props,
75
+ defaultClassName: 'react-aria-ColorThumb',
76
+ defaultStyle: {
77
+ ...thumbProps.style,
78
+ backgroundColor: state.getDisplayColor().toString()
79
+ },
80
+ values: {
81
+ color: state.getDisplayColor(),
82
+ isHovered,
83
+ isDragging: state.isDragging,
84
+ isFocused,
85
+ isFocusVisible,
86
+ isDisabled
87
+ }
88
+ });
89
+
90
+ let DOMProps = filterDOMProps(props, {global: true});
91
+ delete DOMProps.id;
92
+
93
+ return (
94
+ <dom.div
95
+ {...mergeProps(thumbProps, hoverProps, DOMProps)}
96
+ {...renderProps}
97
+ ref={ref}
98
+ data-hovered={isHovered || undefined}
99
+ data-dragging={state.isDragging || undefined}
100
+ data-focused={isFocused || undefined}
101
+ data-focus-visible={isFocusVisible || undefined}
102
+ data-disabled={isDisabled || undefined}>
103
+ <input ref={inputXRef} {...xInputProps} {...focusProps} />
104
+ {yInputProps && <input ref={inputYRef} {...yInputProps} {...focusProps} />}
105
+ {renderProps.children}
106
+ </dom.div>
107
+ );
108
+ });
@@ -0,0 +1,122 @@
1
+ import {AriaColorWheelOptions, useColorWheel} from 'react-aria';
2
+ import {
3
+ ClassNameOrFunction,
4
+ ContextValue,
5
+ dom,
6
+ Provider,
7
+ RenderProps,
8
+ SlotProps,
9
+ StyleRenderProps,
10
+ useContextProps,
11
+ useRenderProps
12
+ } from './utils';
13
+ import {ColorWheelContext} from './RSPContexts';
14
+ import {ColorWheelState, useColorWheelState} from 'react-stately';
15
+ import {filterDOMProps} from '@react-aria/utils';
16
+ import {GlobalDOMAttributes} from '@react-types/shared';
17
+ import {InternalColorThumbContext} from './ColorThumb';
18
+ import React, {createContext, ForwardedRef, forwardRef, HTMLAttributes, useContext, useRef} from 'react';
19
+
20
+ export interface ColorWheelRenderProps {
21
+ /**
22
+ * Whether the color wheel is disabled.
23
+ * @selector [data-disabled]
24
+ */
25
+ isDisabled: boolean,
26
+ /**
27
+ * State of the color wheel.
28
+ */
29
+ state: ColorWheelState
30
+ }
31
+
32
+ export interface ColorWheelProps extends AriaColorWheelOptions, RenderProps<ColorWheelRenderProps>, SlotProps, GlobalDOMAttributes<HTMLDivElement> {
33
+ /**
34
+ * 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.
35
+ * @default 'react-aria-ColorWheel'
36
+ */
37
+ className?: ClassNameOrFunction<ColorWheelRenderProps>
38
+ }
39
+
40
+ export const ColorWheelStateContext = createContext<ColorWheelState | null>(null);
41
+
42
+ /**
43
+ * A color wheel allows users to adjust the hue of an HSL or HSB color value on a circular track.
44
+ */
45
+ export const ColorWheel = forwardRef(function ColorWheel(props: ColorWheelProps, ref: ForwardedRef<HTMLDivElement>) {
46
+ [props, ref] = useContextProps(props, ref, ColorWheelContext);
47
+ let state = useColorWheelState(props);
48
+ let inputRef = useRef(null);
49
+ let {trackProps, inputProps, thumbProps} = useColorWheel(props, state, inputRef);
50
+
51
+ let renderProps = useRenderProps({
52
+ ...props,
53
+ values: {
54
+ state,
55
+ isDisabled: props.isDisabled || false
56
+ },
57
+ defaultClassName: 'react-aria-ColorWheel',
58
+ defaultStyle: {
59
+ position: 'relative'
60
+ }
61
+ });
62
+
63
+ let DOMProps = filterDOMProps(props, {global: true});
64
+ delete DOMProps.id;
65
+
66
+ return (
67
+ <dom.div
68
+ {...DOMProps}
69
+ {...renderProps}
70
+ ref={ref}
71
+ slot={props.slot || undefined}
72
+ data-disabled={props.isDisabled || undefined}>
73
+ <Provider
74
+ values={[
75
+ [ColorWheelStateContext, state],
76
+ [ColorWheelTrackContext, trackProps],
77
+ [InternalColorThumbContext, {state, thumbProps, inputXRef: inputRef, xInputProps: inputProps, isDisabled: props.isDisabled}]
78
+ ]}>
79
+ {renderProps.children}
80
+ </Provider>
81
+ </dom.div>
82
+ );
83
+ });
84
+
85
+ export interface ColorWheelTrackRenderProps extends ColorWheelRenderProps {}
86
+ export interface ColorWheelTrackProps extends StyleRenderProps<ColorWheelTrackRenderProps>, GlobalDOMAttributes<HTMLDivElement> {
87
+ /**
88
+ * 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.
89
+ * @default 'react-aria-ColorWheelTrack'
90
+ */
91
+ className?: ClassNameOrFunction<ColorWheelTrackRenderProps>
92
+ }
93
+ interface ColorWheelTrackContextValue extends Omit<HTMLAttributes<HTMLElement>, 'children' | 'className' | 'style'>, StyleRenderProps<ColorWheelTrackRenderProps> {}
94
+
95
+ export const ColorWheelTrackContext = createContext<ContextValue<ColorWheelTrackContextValue, HTMLDivElement>>(null);
96
+
97
+ /**
98
+ * A color wheel track renders a circular gradient track.
99
+ */
100
+ export const ColorWheelTrack = forwardRef(function ColorWheelTrack(props: ColorWheelTrackProps, ref: ForwardedRef<HTMLDivElement>) {
101
+ [props, ref] = useContextProps(props, ref, ColorWheelTrackContext);
102
+ let state = useContext(ColorWheelStateContext)!;
103
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
104
+ let {className, style, ...rest} = props;
105
+
106
+ let renderProps = useRenderProps({
107
+ ...props,
108
+ defaultClassName: 'react-aria-ColorWheelTrack',
109
+ values: {
110
+ isDisabled: state.isDisabled,
111
+ state
112
+ }
113
+ });
114
+
115
+ return (
116
+ <dom.div
117
+ {...rest}
118
+ {...renderProps}
119
+ ref={ref}
120
+ data-disabled={state.isDisabled || undefined} />
121
+ );
122
+ });
@@ -0,0 +1,325 @@
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 {AriaComboBoxProps, useComboBox, useFilter, useListFormatter} from 'react-aria';
13
+ import {ButtonContext} from './Button';
14
+ import {
15
+ ClassNameOrFunction,
16
+ ContextValue,
17
+ dom,
18
+ Provider,
19
+ RACValidation,
20
+ removeDataAttributes,
21
+ RenderProps,
22
+ SlotProps,
23
+ useContextProps,
24
+ useRenderProps,
25
+ useSlot,
26
+ useSlottedContext
27
+ } from './utils';
28
+ import {Collection, ComboBoxState, Node, useComboBoxState} from 'react-stately';
29
+ import {CollectionBuilder, createHideableComponent} from '@react-aria/collections';
30
+ import {FieldErrorContext} from './FieldError';
31
+ import {filterDOMProps, useResizeObserver} from '@react-aria/utils';
32
+ import {FormContext} from './Form';
33
+ import {forwardRefType, GlobalDOMAttributes, Key, RefObject} from '@react-types/shared';
34
+ import {GroupContext} from './Group';
35
+ import {InputContext} from './Input';
36
+ import {LabelContext} from './Label';
37
+ import {ListBoxContext, ListStateContext} from './ListBox';
38
+ import {OverlayTriggerStateContext} from './Dialog';
39
+ import {PopoverContext} from './Popover';
40
+ import React, {createContext, ForwardedRef, forwardRef, HTMLAttributes, ReactElement, ReactNode, useCallback, useContext, useMemo, useRef, useState} from 'react';
41
+ import {TextContext} from './Text';
42
+
43
+ type SelectionMode = 'single' | 'multiple';
44
+
45
+ export interface ComboBoxRenderProps {
46
+ /**
47
+ * Whether the combobox is currently open.
48
+ * @selector [data-open]
49
+ */
50
+ isOpen: boolean,
51
+ /**
52
+ * Whether the combobox is disabled.
53
+ * @selector [data-disabled]
54
+ */
55
+ isDisabled: boolean,
56
+ /**
57
+ * Whether the combobox is invalid.
58
+ * @selector [data-invalid]
59
+ */
60
+ isInvalid: boolean,
61
+ /**
62
+ * Whether the combobox is required.
63
+ * @selector [data-required]
64
+ */
65
+ isRequired: boolean
66
+ }
67
+
68
+ export interface ComboBoxProps<T extends object, M extends SelectionMode = 'single'> extends Omit<AriaComboBoxProps<T, M>, 'children' | 'placeholder' | 'label' | 'description' | 'errorMessage' | 'validationState' | 'validationBehavior'>, RACValidation, RenderProps<ComboBoxRenderProps>, SlotProps, GlobalDOMAttributes<HTMLDivElement> {
69
+ /**
70
+ * 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.
71
+ * @default 'react-aria-ComboBox'
72
+ */
73
+ className?: ClassNameOrFunction<ComboBoxRenderProps>,
74
+ /** The filter function used to determine if a option should be included in the combo box list. */
75
+ defaultFilter?: (textValue: string, inputValue: string) => boolean,
76
+ /**
77
+ * Whether the text or key of the selected item is submitted as part of an HTML form.
78
+ * When `allowsCustomValue` is `true`, this option does not apply and the text is always submitted.
79
+ * @default 'key'
80
+ */
81
+ formValue?: 'text' | 'key',
82
+ /** Whether the combo box allows the menu to be open when the collection is empty. */
83
+ allowsEmptyCollection?: boolean
84
+ }
85
+
86
+ export const ComboBoxContext = createContext<ContextValue<ComboBoxProps<any, SelectionMode>, HTMLDivElement>>(null);
87
+ export const ComboBoxStateContext = createContext<ComboBoxState<any, SelectionMode> | null>(null);
88
+
89
+ /**
90
+ * A combo box combines a text input with a listbox, allowing users to filter a list of options to items matching a query.
91
+ */
92
+ export const ComboBox = /*#__PURE__*/ (forwardRef as forwardRefType)(function ComboBox<T extends object, M extends SelectionMode = 'single'>(props: ComboBoxProps<T, M>, ref: ForwardedRef<HTMLDivElement>) {
93
+ [props, ref] = useContextProps(props, ref, ComboBoxContext);
94
+ let {children, isDisabled = false, isInvalid = false, isRequired = false} = props;
95
+ let content = useMemo(() => (
96
+ <ListBoxContext.Provider value={{items: props.items ?? props.defaultItems}}>
97
+ {typeof children === 'function'
98
+ ? children({
99
+ isOpen: false,
100
+ isDisabled,
101
+ isInvalid,
102
+ isRequired,
103
+ defaultChildren: null
104
+ })
105
+ : children}
106
+ </ListBoxContext.Provider>
107
+ ), [children, isDisabled, isInvalid, isRequired, props.items, props.defaultItems]);
108
+
109
+ return (
110
+ <CollectionBuilder content={content}>
111
+ {collection => <ComboBoxInner props={props} collection={collection} comboBoxRef={ref} />}
112
+ </CollectionBuilder>
113
+ );
114
+ });
115
+
116
+ // Contexts to clear inside the popover.
117
+ const CLEAR_CONTEXTS = [LabelContext, ButtonContext, InputContext, GroupContext, TextContext];
118
+
119
+ interface ComboBoxInnerProps<T extends object> {
120
+ props: ComboBoxProps<T, SelectionMode>,
121
+ collection: Collection<Node<T>>,
122
+ comboBoxRef: RefObject<HTMLDivElement | null>
123
+ }
124
+
125
+ function ComboBoxInner<T extends object>({props, collection, comboBoxRef: ref}: ComboBoxInnerProps<T>) {
126
+ let {
127
+ name,
128
+ formValue = 'key',
129
+ allowsCustomValue
130
+ } = props;
131
+ if (allowsCustomValue) {
132
+ formValue = 'text';
133
+ }
134
+
135
+ let {validationBehavior: formValidationBehavior} = useSlottedContext(FormContext) || {};
136
+ let validationBehavior = props.validationBehavior ?? formValidationBehavior ?? 'native';
137
+ let {contains} = useFilter({sensitivity: 'base'});
138
+ let state = useComboBoxState({
139
+ ...props,
140
+ defaultFilter: props.defaultFilter || contains,
141
+ // If props.items isn't provided, rely on collection filtering (aka listbox.items is provided or defaultItems provided to Combobox)
142
+ items: props.items,
143
+ children: undefined,
144
+ collection,
145
+ validationBehavior
146
+ });
147
+
148
+ let buttonRef = useRef<HTMLButtonElement>(null);
149
+ let inputRef = useRef<HTMLInputElement>(null);
150
+ let listBoxRef = useRef<HTMLDivElement>(null);
151
+ let popoverRef = useRef<HTMLDivElement>(null);
152
+ let [labelRef, label] = useSlot(
153
+ !props['aria-label'] && !props['aria-labelledby']
154
+ );
155
+ let {
156
+ buttonProps,
157
+ inputProps,
158
+ listBoxProps,
159
+ labelProps,
160
+ descriptionProps,
161
+ errorMessageProps,
162
+ valueProps,
163
+ ...validation
164
+ } = useComboBox({
165
+ ...removeDataAttributes(props),
166
+ label,
167
+ inputRef,
168
+ buttonRef,
169
+ listBoxRef,
170
+ popoverRef,
171
+ name: formValue === 'text' ? name : undefined,
172
+ validationBehavior
173
+ }, state);
174
+
175
+ // Make menu width match input + button
176
+ let [menuWidth, setMenuWidth] = useState<string | null>(null);
177
+ let onResize = useCallback(() => {
178
+ if (inputRef.current) {
179
+ let buttonRect = buttonRef.current?.getBoundingClientRect();
180
+ let inputRect = inputRef.current.getBoundingClientRect();
181
+ let minX = buttonRect ? Math.min(buttonRect.left, inputRect.left) : inputRect.left;
182
+ let maxX = buttonRect ? Math.max(buttonRect.right, inputRect.right) : inputRect.right;
183
+ setMenuWidth((maxX - minX) + 'px');
184
+ }
185
+ }, [buttonRef, inputRef, setMenuWidth]);
186
+
187
+ useResizeObserver({
188
+ ref: inputRef,
189
+ onResize: onResize
190
+ });
191
+
192
+ // Only expose a subset of state to renderProps function to avoid infinite render loop
193
+ let renderPropsState = useMemo(() => ({
194
+ isOpen: state.isOpen,
195
+ isDisabled: props.isDisabled || false,
196
+ isInvalid: validation.isInvalid || false,
197
+ isRequired: props.isRequired || false
198
+ }), [state.isOpen, props.isDisabled, validation.isInvalid, props.isRequired]);
199
+
200
+ let renderProps = useRenderProps({
201
+ ...props,
202
+ values: renderPropsState,
203
+ defaultClassName: 'react-aria-ComboBox'
204
+ });
205
+
206
+ let DOMProps = filterDOMProps(props, {global: true});
207
+ delete DOMProps.id;
208
+
209
+ let inputs: ReactElement[] = [];
210
+ if (name && formValue === 'key') {
211
+ let values: (Key | null)[] = Array.isArray(state.value) ? state.value : [state.value];
212
+ if (values.length === 0) {
213
+ values = [null];
214
+ }
215
+
216
+ inputs = values.map((value, i) => (
217
+ <input key={i} type="hidden" name={name} form={props.form} value={value ?? ''} />
218
+ ));
219
+ }
220
+
221
+ return (
222
+ <Provider
223
+ values={[
224
+ [ComboBoxStateContext, state],
225
+ [LabelContext, {...labelProps, ref: labelRef}],
226
+ [ButtonContext, {...buttonProps, ref: buttonRef, isPressed: state.isOpen}],
227
+ [InputContext, {...inputProps, ref: inputRef}],
228
+ [OverlayTriggerStateContext, state],
229
+ [PopoverContext, {
230
+ ref: popoverRef,
231
+ triggerRef: inputRef,
232
+ scrollRef: listBoxRef,
233
+ placement: 'bottom start',
234
+ isNonModal: true,
235
+ trigger: 'ComboBox',
236
+ style: {'--trigger-width': menuWidth} as React.CSSProperties,
237
+ clearContexts: CLEAR_CONTEXTS
238
+ }],
239
+ [ListBoxContext, {...listBoxProps, ref: listBoxRef}],
240
+ [ListStateContext, state],
241
+ [TextContext, {
242
+ slots: {
243
+ description: descriptionProps,
244
+ errorMessage: errorMessageProps
245
+ }
246
+ }],
247
+ [GroupContext, {isInvalid: validation.isInvalid, isDisabled: props.isDisabled || false}],
248
+ [FieldErrorContext, validation],
249
+ [ComboBoxValueContext, valueProps]
250
+ ]}>
251
+ <dom.div
252
+ {...DOMProps}
253
+ {...renderProps}
254
+ ref={ref}
255
+ slot={props.slot || undefined}
256
+ data-focused={state.isFocused || undefined}
257
+ data-open={state.isOpen || undefined}
258
+ data-disabled={props.isDisabled || undefined}
259
+ data-invalid={validation.isInvalid || undefined}
260
+ data-required={props.isRequired || undefined}>
261
+ {renderProps.children}
262
+ {inputs}
263
+ </dom.div>
264
+ </Provider>
265
+ );
266
+ }
267
+
268
+ export interface ComboBoxValueRenderProps<T> {
269
+ /**
270
+ * Whether the value is a placeholder.
271
+ * @selector [data-placeholder]
272
+ */
273
+ isPlaceholder: boolean,
274
+ /** The object values of the currently selected items. */
275
+ selectedItems: (T | null)[],
276
+ /** The textValue of the currently selected items. */
277
+ selectedText: string,
278
+ /** The state of the ComboBox. */
279
+ state: ComboBoxState<T, 'single' | 'multiple'>
280
+ }
281
+
282
+ export interface ComboBoxValueProps<T extends object> extends Omit<HTMLAttributes<HTMLElement>, keyof RenderProps<unknown>>, RenderProps<ComboBoxValueRenderProps<T>, 'div'> {
283
+ /**
284
+ * 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.
285
+ * @default 'react-aria-ComboBoxValue'
286
+ */
287
+ className?: ClassNameOrFunction<ComboBoxValueRenderProps<T>>,
288
+ /** A value to display when no items are selected. */
289
+ placeholder?: ReactNode
290
+ }
291
+
292
+ export const ComboBoxValueContext = createContext<ContextValue<ComboBoxValueProps<any>, HTMLDivElement>>(null);
293
+
294
+ /**
295
+ * ComboBoxValue renders the selected values of a ComboBox, or a placeholder if no value is selected.
296
+ * By default, the items are rendered as a comma separated list. Use the render function to customize this.
297
+ */
298
+ export const ComboBoxValue = /*#__PURE__*/ createHideableComponent(function ComboBoxValue<T extends object>(props: ComboBoxValueProps<T>, ref: ForwardedRef<HTMLDivElement>) {
299
+ [props, ref] = useContextProps(props, ref, ComboBoxValueContext);
300
+ let state = useContext(ComboBoxStateContext)!;
301
+ let formatter = useListFormatter();
302
+ let selectedText = useMemo(() => formatter.format(state.selectedItems.map(item => item?.textValue || '').filter(v => v !== '')), [formatter, state.selectedItems]);
303
+
304
+ let renderProps = useRenderProps({
305
+ ...props,
306
+ defaultChildren: selectedText || props.placeholder,
307
+ defaultClassName: 'react-aria-ComboBoxValue',
308
+ values: {
309
+ selectedItems: useMemo(() => state.selectedItems.map(item => item.value as T ?? null), [state.selectedItems]),
310
+ selectedText,
311
+ isPlaceholder: state.selectedItems.length === 0,
312
+ state
313
+ }
314
+ });
315
+
316
+ let DOMProps = filterDOMProps(props, {global: true});
317
+
318
+ return (
319
+ <dom.div
320
+ ref={ref}
321
+ {...DOMProps}
322
+ {...renderProps}
323
+ data-placeholder={state.selectedItems.length === 0 || undefined} />
324
+ );
325
+ });