@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,267 @@
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 {AriaLabelingProps, forwardRefType, GlobalDOMAttributes, RefObject} from '@react-types/shared';
14
+ import {AriaPopoverProps, DismissButton, Overlay, PlacementAxis, PositionProps, useLocale, usePopover} from 'react-aria';
15
+ import {
16
+ ClassNameOrFunction,
17
+ ContextValue,
18
+ dom,
19
+ RenderProps,
20
+ SlotProps,
21
+ useContextProps,
22
+ useRenderProps
23
+ } from './utils';
24
+ import {filterDOMProps, isFocusWithin, mergeProps, useEnterAnimation, useExitAnimation, useLayoutEffect} from '@react-aria/utils';
25
+ import {focusSafely, getInteractionModality} from '@react-aria/interactions';
26
+ import {OverlayArrowContext} from './OverlayArrow';
27
+ import {OverlayTriggerProps, OverlayTriggerState, useOverlayTriggerState} from 'react-stately';
28
+ import {OverlayTriggerStateContext} from './Dialog';
29
+ import React, {Context, createContext, ForwardedRef, forwardRef, useContext, useEffect, useMemo, useRef, useState} from 'react';
30
+ import {useIsHidden} from '@react-aria/collections';
31
+
32
+ export interface PopoverProps extends Omit<PositionProps, 'isOpen'>, Omit<AriaPopoverProps, 'popoverRef' | 'triggerRef' | 'groupRef' | 'offset' | 'arrowSize'>, OverlayTriggerProps, RenderProps<PopoverRenderProps>, SlotProps, AriaLabelingProps, 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-Popover'
36
+ */
37
+ className?: ClassNameOrFunction<PopoverRenderProps>,
38
+ /**
39
+ * The name of the component that triggered the popover. This is reflected on the element
40
+ * as the `data-trigger` attribute, and can be used to provide specific
41
+ * styles for the popover depending on which element triggered it.
42
+ */
43
+ trigger?: string,
44
+ /**
45
+ * The ref for the element which the popover positions itself with respect to.
46
+ *
47
+ * When used within a trigger component such as DialogTrigger, MenuTrigger, Select, etc.,
48
+ * this is set automatically. It is only required when used standalone.
49
+ */
50
+ triggerRef?: RefObject<Element | null>,
51
+ /**
52
+ * Whether the popover is currently performing an entry animation.
53
+ */
54
+ isEntering?: boolean,
55
+ /**
56
+ * Whether the popover is currently performing an exit animation.
57
+ */
58
+ isExiting?: boolean,
59
+ /**
60
+ * The container element in which the overlay portal will be placed. This may have unknown behavior depending on where it is portalled to.
61
+ * @default document.body
62
+ * @deprecated - Use a parent UNSAFE_PortalProvider to set your portal container instead.
63
+ */
64
+ UNSTABLE_portalContainer?: Element,
65
+ /**
66
+ * The additional offset applied along the main axis between the element and its
67
+ * anchor element.
68
+ * @default 8
69
+ */
70
+ offset?: number
71
+ }
72
+
73
+ export interface PopoverRenderProps {
74
+ /**
75
+ * The name of the component that triggered the popover, e.g. "DialogTrigger" or "ComboBox".
76
+ * @selector [data-trigger="..."]
77
+ */
78
+ trigger: string | null,
79
+ /**
80
+ * The placement of the popover relative to the trigger.
81
+ * @selector [data-placement="left | right | top | bottom"]
82
+ */
83
+ placement: PlacementAxis | null,
84
+ /**
85
+ * Whether the popover is currently entering. Use this to apply animations.
86
+ * @selector [data-entering]
87
+ */
88
+ isEntering: boolean,
89
+ /**
90
+ * Whether the popover is currently exiting. Use this to apply animations.
91
+ * @selector [data-exiting]
92
+ */
93
+ isExiting: boolean
94
+ }
95
+
96
+ interface PopoverContextValue extends PopoverProps {
97
+ /** Contexts to clear. */
98
+ clearContexts?: Context<any>[]
99
+ }
100
+
101
+ export const PopoverContext = createContext<ContextValue<PopoverContextValue, HTMLElement>>(null);
102
+
103
+ // Stores a ref for the portal container for a group of popovers (e.g. submenus).
104
+ const PopoverGroupContext = createContext<RefObject<Element | null> | null>(null);
105
+
106
+ /**
107
+ * A popover is an overlay element positioned relative to a trigger.
108
+ */
109
+ export const Popover = /*#__PURE__*/ (forwardRef as forwardRefType)(function Popover(props: PopoverProps, ref: ForwardedRef<HTMLElement>) {
110
+ [props, ref] = useContextProps(props, ref, PopoverContext);
111
+ let contextState = useContext(OverlayTriggerStateContext);
112
+ let localState = useOverlayTriggerState(props);
113
+ let state = props.isOpen != null || props.defaultOpen != null || !contextState ? localState : contextState;
114
+ let isExiting = useExitAnimation(ref, state.isOpen) || props.isExiting || false;
115
+ let isHidden = useIsHidden();
116
+ let {direction} = useLocale();
117
+
118
+ // If we are in a hidden tree, we still need to preserve our children.
119
+ if (isHidden) {
120
+ let children = props.children;
121
+ if (typeof children === 'function') {
122
+ children = children({
123
+ trigger: props.trigger || null,
124
+ placement: 'bottom',
125
+ isEntering: false,
126
+ isExiting: false,
127
+ defaultChildren: null
128
+ });
129
+ }
130
+
131
+ return <>{children}</>;
132
+ }
133
+
134
+ if (state && !state.isOpen && !isExiting) {
135
+ return null;
136
+ }
137
+
138
+ return (
139
+ <PopoverInner
140
+ {...props}
141
+ triggerRef={props.triggerRef!}
142
+ state={state}
143
+ popoverRef={ref}
144
+ isExiting={isExiting}
145
+ dir={direction} />
146
+ );
147
+ });
148
+
149
+ interface PopoverInnerProps extends AriaPopoverProps, RenderProps<PopoverRenderProps>, SlotProps {
150
+ state: OverlayTriggerState,
151
+ isEntering?: boolean,
152
+ isExiting: boolean,
153
+ UNSTABLE_portalContainer?: Element,
154
+ trigger?: string,
155
+ dir?: 'ltr' | 'rtl',
156
+ clearContexts?: Context<any>[]
157
+ }
158
+
159
+ function PopoverInner({state, isExiting, UNSTABLE_portalContainer, clearContexts, ...props}: PopoverInnerProps) {
160
+ // Calculate the arrow size internally (and remove props.arrowSize from PopoverProps)
161
+ // Referenced from: packages/@react-spectrum/tooltip/src/TooltipTrigger.tsx
162
+ let arrowRef = useRef<HTMLDivElement>(null);
163
+ let containerRef = useRef<HTMLDivElement | null>(null);
164
+ let groupCtx = useContext(PopoverGroupContext);
165
+ let isSubPopover = groupCtx && props.trigger === 'SubmenuTrigger';
166
+
167
+ let {popoverProps, underlayProps, arrowProps, placement, triggerAnchorPoint} = usePopover({
168
+ ...props,
169
+ offset: props.offset ?? 8,
170
+ arrowRef,
171
+ // If this is a submenu/subdialog, use the root popover's container
172
+ // to detect outside interaction and add aria-hidden.
173
+ groupRef: isSubPopover ? groupCtx! : containerRef
174
+ }, state);
175
+
176
+ let ref = props.popoverRef as RefObject<HTMLDivElement | null>;
177
+ let isEntering = useEnterAnimation(ref, !!placement) || props.isEntering || false;
178
+ let renderProps = useRenderProps({
179
+ ...props,
180
+ defaultClassName: 'react-aria-Popover',
181
+ values: {
182
+ trigger: props.trigger || null,
183
+ placement,
184
+ isEntering,
185
+ isExiting
186
+ }
187
+ });
188
+
189
+ // Automatically render Popover with role=dialog except when isNonModal is true,
190
+ // or a dialog is already nested inside the popover.
191
+ let shouldBeDialog = !props.isNonModal || props.trigger === 'SubmenuTrigger';
192
+ let [isDialog, setDialog] = useState(false);
193
+ useLayoutEffect(() => {
194
+ if (ref.current) {
195
+ setDialog(shouldBeDialog && !ref.current.querySelector('[role=dialog]'));
196
+ }
197
+ }, [ref, shouldBeDialog]);
198
+
199
+ // Focus the popover itself on mount, unless a child element is already focused.
200
+ // Skip this for submenus since hovering a submenutrigger should keep focus on the trigger
201
+ useEffect(() => {
202
+ if (isDialog && (props.trigger !== 'SubmenuTrigger' || getInteractionModality() !== 'pointer') && ref.current && !isFocusWithin(ref.current)) {
203
+ focusSafely(ref.current);
204
+ }
205
+ }, [isDialog, ref, props.trigger]);
206
+
207
+ let children = useMemo(() => {
208
+ let children = renderProps.children;
209
+ if (clearContexts) {
210
+ for (let Context of clearContexts) {
211
+ children = <Context.Provider value={null}>{children}</Context.Provider>;
212
+ }
213
+ }
214
+ return children;
215
+ }, [renderProps.children, clearContexts]);
216
+
217
+ let style = {
218
+ ...popoverProps.style,
219
+ '--trigger-anchor-point': triggerAnchorPoint ? `${triggerAnchorPoint.x}px ${triggerAnchorPoint.y}px` : undefined,
220
+ ...renderProps.style
221
+ };
222
+
223
+ let overlay = (
224
+ <dom.div
225
+ {...mergeProps(filterDOMProps(props, {global: true}), popoverProps)}
226
+ {...renderProps}
227
+ role={isDialog ? 'dialog' : undefined}
228
+ tabIndex={isDialog ? -1 : undefined}
229
+ aria-label={props['aria-label']}
230
+ aria-labelledby={props['aria-labelledby']}
231
+ ref={ref}
232
+ slot={props.slot || undefined}
233
+ style={style}
234
+ dir={props.dir}
235
+ data-trigger={props.trigger}
236
+ data-placement={placement}
237
+ data-entering={isEntering || undefined}
238
+ data-exiting={isExiting || undefined}>
239
+ {!props.isNonModal && <DismissButton onDismiss={state.close} />}
240
+ <OverlayArrowContext.Provider value={{...arrowProps, placement, ref: arrowRef}}>
241
+ {children}
242
+ </OverlayArrowContext.Provider>
243
+ <DismissButton onDismiss={state.close} />
244
+ </dom.div>
245
+ );
246
+
247
+ // If this is a root popover, render an extra div to act as the portal container for submenus/subdialogs.
248
+ if (!isSubPopover) {
249
+ return (
250
+ <Overlay {...props} shouldContainFocus={isDialog} isExiting={isExiting} portalContainer={UNSTABLE_portalContainer}>
251
+ {!props.isNonModal && state.isOpen && <div data-testid="underlay" {...underlayProps} style={{position: 'fixed', inset: 0}} />}
252
+ <div ref={containerRef} style={{display: 'contents'}}>
253
+ <PopoverGroupContext.Provider value={containerRef}>
254
+ {overlay}
255
+ </PopoverGroupContext.Provider>
256
+ </div>
257
+ </Overlay>
258
+ );
259
+ }
260
+
261
+ // Submenus/subdialogs are mounted into the root popover's container.
262
+ return (
263
+ <Overlay {...props} shouldContainFocus={isDialog} isExiting={isExiting} portalContainer={UNSTABLE_portalContainer ?? groupCtx?.current ?? undefined}>
264
+ {overlay}
265
+ </Overlay>
266
+ );
267
+ }
@@ -0,0 +1,101 @@
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 {AriaProgressBarProps, useProgressBar} from 'react-aria';
14
+ import {clamp} from '@react-stately/utils';
15
+ import {
16
+ ClassNameOrFunction,
17
+ ContextValue,
18
+ dom,
19
+ RenderProps,
20
+ SlotProps,
21
+ useContextProps,
22
+ useRenderProps,
23
+ useSlot
24
+ } from './utils';
25
+ import {filterDOMProps, mergeProps} from '@react-aria/utils';
26
+ import {GlobalDOMAttributes} from '@react-types/shared';
27
+ import {LabelContext} from './Label';
28
+ import React, {createContext, ForwardedRef, forwardRef} from 'react';
29
+
30
+ export interface ProgressBarProps extends Omit<AriaProgressBarProps, 'label'>, RenderProps<ProgressBarRenderProps>, SlotProps, GlobalDOMAttributes<HTMLDivElement> {
31
+ /**
32
+ * 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.
33
+ * @default 'react-aria-ProgressBar'
34
+ */
35
+ className?: ClassNameOrFunction<ProgressBarRenderProps>
36
+ }
37
+
38
+ export interface ProgressBarRenderProps {
39
+ /**
40
+ * The value as a percentage between the minimum and maximum.
41
+ */
42
+ percentage: number | undefined,
43
+ /**
44
+ * A formatted version of the value.
45
+ * @selector [aria-valuetext]
46
+ */
47
+ valueText: string | undefined,
48
+ /**
49
+ * Whether the progress bar is indeterminate.
50
+ * @selector :not([aria-valuenow])
51
+ */
52
+ isIndeterminate: boolean
53
+ }
54
+
55
+ export const ProgressBarContext = createContext<ContextValue<ProgressBarProps, HTMLDivElement>>(null);
56
+
57
+ /**
58
+ * Progress bars show either determinate or indeterminate progress of an operation
59
+ * over time.
60
+ */
61
+ export const ProgressBar = forwardRef(function ProgressBar(props: ProgressBarProps, ref: ForwardedRef<HTMLDivElement>) {
62
+ [props, ref] = useContextProps(props, ref, ProgressBarContext);
63
+ let {
64
+ value = 0,
65
+ minValue = 0,
66
+ maxValue = 100,
67
+ isIndeterminate = false
68
+ } = props;
69
+ value = clamp(value, minValue, maxValue);
70
+
71
+ let [labelRef, label] = useSlot(
72
+ !props['aria-label'] && !props['aria-labelledby']
73
+ );
74
+ let {
75
+ progressBarProps,
76
+ labelProps
77
+ } = useProgressBar({...props, label});
78
+
79
+ // Calculate the width of the progress bar as a percentage
80
+ let percentage = isIndeterminate ? undefined : (value - minValue) / (maxValue - minValue) * 100;
81
+
82
+ let renderProps = useRenderProps({
83
+ ...props,
84
+ defaultClassName: 'react-aria-ProgressBar',
85
+ values: {
86
+ percentage,
87
+ valueText: progressBarProps['aria-valuetext'],
88
+ isIndeterminate
89
+ }
90
+ });
91
+
92
+ let DOMProps = filterDOMProps(props, {global: true});
93
+
94
+ return (
95
+ <dom.div {...mergeProps(DOMProps, renderProps, progressBarProps)} ref={ref} slot={props.slot || undefined}>
96
+ <LabelContext.Provider value={{...labelProps, ref: labelRef, elementType: 'span'}}>
97
+ {renderProps.children}
98
+ </LabelContext.Provider>
99
+ </dom.div>
100
+ );
101
+ });
@@ -0,0 +1,52 @@
1
+ /*
2
+ * Copyright 2024 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 {AriaLabelingProps, DOMProps, FocusableElement, FocusEvents, KeyboardEvents, Node, ValueBase} from '@react-types/shared';
14
+ import {AriaTextFieldProps} from '@react-aria/textfield';
15
+ import {CheckboxProps} from './Checkbox';
16
+ import {ColorAreaProps} from './ColorArea';
17
+ import {ColorFieldProps} from './ColorField';
18
+ import {ColorSliderProps} from './ColorSlider';
19
+ import {ColorWheelProps} from './ColorWheel';
20
+ import {ContextValue} from './utils';
21
+ import {createContext} from 'react';
22
+ import {HeadingProps} from './Heading';
23
+
24
+ // This file is a temporary workaround for a tree shaking issue in SWC (the minifier used by Parcel).
25
+ // These are the contexts consumed by React Spectrum components that don't use the implementation from RAC
26
+ // (they use hooks). When included in the same file as the implementation, Parcel includes both the context
27
+ // and implementation even if only the context is imported. We moved these contexts to a separate file so
28
+ // that the implementation does not get included in the bundle. This will be removed once the tree shaking
29
+ // issue is fixed.
30
+ export const CheckboxContext = createContext<ContextValue<CheckboxProps, HTMLLabelElement>>(null);
31
+ export const ColorAreaContext = createContext<ContextValue<Partial<ColorAreaProps>, HTMLDivElement>>(null);
32
+ export const ColorFieldContext = createContext<ContextValue<ColorFieldProps, HTMLDivElement>>(null);
33
+ export const ColorSliderContext = createContext<ContextValue<Partial<ColorSliderProps>, HTMLDivElement>>(null);
34
+ export const ColorWheelContext = createContext<ContextValue<Partial<ColorWheelProps>, HTMLDivElement>>(null);
35
+ export const HeadingContext = createContext<ContextValue<HeadingProps, HTMLHeadingElement>>({});
36
+
37
+ export interface SelectableCollectionContextValue<T> extends DOMProps, AriaLabelingProps {
38
+ filter?: (nodeTextValue: string, node: Node<T>) => boolean,
39
+ /** Whether the collection items should use virtual focus instead of being focused directly. */
40
+ shouldUseVirtualFocus?: boolean,
41
+ /** Whether typeahead is disabled. */
42
+ disallowTypeAhead?: boolean
43
+ }
44
+ interface FieldInputContextValue<T = FocusableElement> extends
45
+ DOMProps,
46
+ FocusEvents<T>,
47
+ KeyboardEvents,
48
+ Pick<ValueBase<string>, 'onChange' | 'value'>,
49
+ Pick<AriaTextFieldProps, 'enterKeyHint' | 'aria-controls' | 'aria-autocomplete' | 'aria-activedescendant' | 'spellCheck' | 'autoCorrect' | 'autoComplete'> {}
50
+
51
+ export const SelectableCollectionContext = createContext<ContextValue<SelectableCollectionContextValue<any>, HTMLElement>>(null);
52
+ export const FieldInputContext = createContext<ContextValue<FieldInputContextValue, FocusableElement>>(null);
@@ -0,0 +1,273 @@
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 {AriaRadioGroupProps, AriaRadioProps, HoverEvents, Orientation, useFocusRing, useHover, useRadio, useRadioGroup, VisuallyHidden} from 'react-aria';
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 {FieldErrorContext} from './FieldError';
29
+ import {filterDOMProps, mergeProps, mergeRefs, useObjectRef} from '@react-aria/utils';
30
+ import {FormContext} from './Form';
31
+ import {forwardRefType, GlobalDOMAttributes, RefObject} from '@react-types/shared';
32
+ import {LabelContext} from './Label';
33
+ import {RadioGroupState, useRadioGroupState} from 'react-stately';
34
+ import React, {createContext, ForwardedRef, forwardRef, useMemo} from 'react';
35
+ import {SelectionIndicatorContext} from './SelectionIndicator';
36
+ import {SharedElementTransition} from './SharedElementTransition';
37
+ import {TextContext} from './Text';
38
+
39
+ export interface RadioGroupProps extends Omit<AriaRadioGroupProps, 'children' | 'label' | 'description' | 'errorMessage' | 'validationState' | 'validationBehavior'>, RACValidation, RenderProps<RadioGroupRenderProps>, SlotProps, GlobalDOMAttributes<HTMLDivElement> {
40
+ /**
41
+ * 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.
42
+ * @default 'react-aria-RadioGroup'
43
+ */
44
+ className?: ClassNameOrFunction<RadioGroupRenderProps>
45
+ }
46
+ export interface RadioProps extends Omit<AriaRadioProps, 'children'>, HoverEvents, RenderProps<RadioRenderProps, 'label'>, SlotProps, Omit<GlobalDOMAttributes<HTMLLabelElement>, 'onClick'> {
47
+ /**
48
+ * 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.
49
+ * @default 'react-aria-Radio'
50
+ */
51
+ className?: ClassNameOrFunction<RadioRenderProps>,
52
+ /**
53
+ * A ref for the HTML input element.
54
+ */
55
+ inputRef?: RefObject<HTMLInputElement | null>
56
+ }
57
+
58
+ export interface RadioGroupRenderProps {
59
+ /**
60
+ * The orientation of the radio group.
61
+ * @selector [data-orientation="horizontal | vertical"]
62
+ */
63
+ orientation: Orientation,
64
+ /**
65
+ * Whether the radio group is disabled.
66
+ * @selector [data-disabled]
67
+ */
68
+ isDisabled: boolean,
69
+ /**
70
+ * Whether the radio group is read only.
71
+ * @selector [data-readonly]
72
+ */
73
+ isReadOnly: boolean,
74
+ /**
75
+ * Whether the radio group is required.
76
+ * @selector [data-required]
77
+ */
78
+ isRequired: boolean,
79
+ /**
80
+ * Whether the radio group is invalid.
81
+ * @selector [data-invalid]
82
+ */
83
+ isInvalid: boolean,
84
+ /**
85
+ * State of the radio group.
86
+ */
87
+ state: RadioGroupState
88
+ }
89
+
90
+ export interface RadioRenderProps {
91
+ /**
92
+ * Whether the radio is selected.
93
+ * @selector [data-selected]
94
+ */
95
+ isSelected: boolean,
96
+ /**
97
+ * Whether the radio is currently hovered with a mouse.
98
+ * @selector [data-hovered]
99
+ */
100
+ isHovered: boolean,
101
+ /**
102
+ * Whether the radio is currently in a pressed state.
103
+ * @selector [data-pressed]
104
+ */
105
+ isPressed: boolean,
106
+ /**
107
+ * Whether the radio is focused, either via a mouse or keyboard.
108
+ * @selector [data-focused]
109
+ */
110
+ isFocused: boolean,
111
+ /**
112
+ * Whether the radio is keyboard focused.
113
+ * @selector [data-focus-visible]
114
+ */
115
+ isFocusVisible: boolean,
116
+ /**
117
+ * Whether the radio is disabled.
118
+ * @selector [data-disabled]
119
+ */
120
+ isDisabled: boolean,
121
+ /**
122
+ * Whether the radio is read only.
123
+ * @selector [data-readonly]
124
+ */
125
+ isReadOnly: boolean,
126
+ /**
127
+ * Whether the radio is invalid.
128
+ * @selector [data-invalid]
129
+ */
130
+ isInvalid: boolean,
131
+ /**
132
+ * Whether the checkbox is required.
133
+ * @selector [data-required]
134
+ */
135
+ isRequired: boolean
136
+ }
137
+
138
+ export const RadioGroupContext = createContext<ContextValue<RadioGroupProps, HTMLDivElement>>(null);
139
+ export const RadioContext = createContext<ContextValue<Partial<RadioProps>, HTMLLabelElement>>(null);
140
+ export const RadioGroupStateContext = createContext<RadioGroupState | null>(null);
141
+
142
+ /**
143
+ * A radio group allows a user to select a single item from a list of mutually exclusive options.
144
+ */
145
+ export const RadioGroup = /*#__PURE__*/ (forwardRef as forwardRefType)(function RadioGroup(props: RadioGroupProps, ref: ForwardedRef<HTMLDivElement>) {
146
+ [props, ref] = useContextProps(props, ref, RadioGroupContext);
147
+ let {validationBehavior: formValidationBehavior} = useSlottedContext(FormContext) || {};
148
+ let validationBehavior = props.validationBehavior ?? formValidationBehavior ?? 'native';
149
+ let state = useRadioGroupState({
150
+ ...props,
151
+ validationBehavior
152
+ });
153
+
154
+ let [labelRef, label] = useSlot(
155
+ !props['aria-label'] && !props['aria-labelledby']
156
+ );
157
+ let {radioGroupProps, labelProps, descriptionProps, errorMessageProps, ...validation} = useRadioGroup({
158
+ ...props,
159
+ label,
160
+ validationBehavior
161
+ }, state);
162
+
163
+ let renderProps = useRenderProps({
164
+ ...props,
165
+ values: {
166
+ orientation: props.orientation || 'vertical',
167
+ isDisabled: state.isDisabled,
168
+ isReadOnly: state.isReadOnly,
169
+ isRequired: state.isRequired,
170
+ isInvalid: state.isInvalid,
171
+ state
172
+ },
173
+ defaultClassName: 'react-aria-RadioGroup'
174
+ });
175
+
176
+ let DOMProps = filterDOMProps(props, {global: true});
177
+
178
+ return (
179
+ <dom.div
180
+ {...mergeProps(DOMProps, renderProps, radioGroupProps)}
181
+ ref={ref}
182
+ slot={props.slot || undefined}
183
+ data-orientation={props.orientation || 'vertical'}
184
+ data-invalid={state.isInvalid || undefined}
185
+ data-disabled={state.isDisabled || undefined}
186
+ data-readonly={state.isReadOnly || undefined}
187
+ data-required={state.isRequired || undefined}>
188
+ <Provider
189
+ values={[
190
+ [RadioGroupStateContext, state],
191
+ [LabelContext, {...labelProps, ref: labelRef, elementType: 'span'}],
192
+ [TextContext, {
193
+ slots: {
194
+ description: descriptionProps,
195
+ errorMessage: errorMessageProps
196
+ }
197
+ }],
198
+ [FieldErrorContext, validation]
199
+ ]}>
200
+ <SharedElementTransition>
201
+ {renderProps.children}
202
+ </SharedElementTransition>
203
+ </Provider>
204
+ </dom.div>
205
+ );
206
+ });
207
+
208
+ /**
209
+ * A radio represents an individual option within a radio group.
210
+ */
211
+ export const Radio = /*#__PURE__*/ (forwardRef as forwardRefType)(function Radio(props: RadioProps, ref: ForwardedRef<HTMLLabelElement>) {
212
+ let {
213
+ inputRef: userProvidedInputRef = null,
214
+ ...otherProps
215
+ } = props;
216
+ [props, ref] = useContextProps(otherProps, ref, RadioContext);
217
+ let state = React.useContext(RadioGroupStateContext)!;
218
+ let inputRef = useObjectRef(useMemo(() => mergeRefs(userProvidedInputRef, props.inputRef !== undefined ? props.inputRef : null), [userProvidedInputRef, props.inputRef]));
219
+ let {labelProps, inputProps, isSelected, isDisabled, isPressed} = useRadio({
220
+ ...removeDataAttributes<RadioProps>(props),
221
+ // ReactNode type doesn't allow function children.
222
+ children: typeof props.children === 'function' ? true : props.children
223
+ }, state, inputRef);
224
+ let {isFocused, isFocusVisible, focusProps} = useFocusRing();
225
+ let interactionDisabled = isDisabled || state.isReadOnly;
226
+
227
+ let {hoverProps, isHovered} = useHover({
228
+ ...props,
229
+ isDisabled: interactionDisabled
230
+ });
231
+
232
+ let renderProps = useRenderProps({
233
+ ...props,
234
+ defaultClassName: 'react-aria-Radio',
235
+ values: {
236
+ isSelected,
237
+ isPressed,
238
+ isHovered,
239
+ isFocused,
240
+ isFocusVisible,
241
+ isDisabled,
242
+ isReadOnly: state.isReadOnly,
243
+ isInvalid: state.isInvalid,
244
+ isRequired: state.isRequired
245
+ }
246
+ });
247
+
248
+ let DOMProps = filterDOMProps(props, {global: true});
249
+ delete DOMProps.id;
250
+ delete DOMProps.onClick;
251
+
252
+ return (
253
+ <dom.label
254
+ {...mergeProps(DOMProps, labelProps, hoverProps, renderProps)}
255
+ ref={ref}
256
+ data-selected={isSelected || undefined}
257
+ data-pressed={isPressed || undefined}
258
+ data-hovered={isHovered || undefined}
259
+ data-focused={isFocused || undefined}
260
+ data-focus-visible={isFocusVisible || undefined}
261
+ data-disabled={isDisabled || undefined}
262
+ data-readonly={state.isReadOnly || undefined}
263
+ data-invalid={state.isInvalid || undefined}
264
+ data-required={state.isRequired || undefined}>
265
+ <VisuallyHidden elementType="span">
266
+ <input {...mergeProps(inputProps, focusProps)} ref={inputRef} />
267
+ </VisuallyHidden>
268
+ <SelectionIndicatorContext.Provider value={{isSelected}}>
269
+ {renderProps.children}
270
+ </SelectionIndicatorContext.Provider>
271
+ </dom.label>
272
+ );
273
+ });