react-aria-components 1.4.1 → 1.6.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 (413) hide show
  1. package/README.md +1 -1
  2. package/dist/Autocomplete.main.js +80 -0
  3. package/dist/Autocomplete.main.js.map +1 -0
  4. package/dist/Autocomplete.mjs +68 -0
  5. package/dist/Autocomplete.module.js +68 -0
  6. package/dist/Autocomplete.module.js.map +1 -0
  7. package/dist/Breadcrumbs.main.js +4 -7
  8. package/dist/Breadcrumbs.main.js.map +1 -1
  9. package/dist/Breadcrumbs.mjs +5 -8
  10. package/dist/Breadcrumbs.module.js +5 -8
  11. package/dist/Breadcrumbs.module.js.map +1 -1
  12. package/dist/Button.main.js +5 -5
  13. package/dist/Button.main.js.map +1 -1
  14. package/dist/Button.mjs +5 -5
  15. package/dist/Button.module.js +5 -5
  16. package/dist/Button.module.js.map +1 -1
  17. package/dist/Calendar.main.js +29 -28
  18. package/dist/Calendar.main.js.map +1 -1
  19. package/dist/Calendar.mjs +30 -29
  20. package/dist/Calendar.module.js +30 -29
  21. package/dist/Calendar.module.js.map +1 -1
  22. package/dist/Checkbox.main.js +5 -12
  23. package/dist/Checkbox.main.js.map +1 -1
  24. package/dist/Checkbox.mjs +6 -13
  25. package/dist/Checkbox.module.js +6 -13
  26. package/dist/Checkbox.module.js.map +1 -1
  27. package/dist/Collection.main.js +3 -2
  28. package/dist/Collection.main.js.map +1 -1
  29. package/dist/Collection.mjs +3 -2
  30. package/dist/Collection.module.js +3 -2
  31. package/dist/Collection.module.js.map +1 -1
  32. package/dist/ColorArea.main.js +2 -5
  33. package/dist/ColorArea.main.js.map +1 -1
  34. package/dist/ColorArea.mjs +3 -6
  35. package/dist/ColorArea.module.js +3 -6
  36. package/dist/ColorArea.module.js.map +1 -1
  37. package/dist/ColorField.main.js +2 -5
  38. package/dist/ColorField.main.js.map +1 -1
  39. package/dist/ColorField.mjs +2 -5
  40. package/dist/ColorField.module.js +2 -5
  41. package/dist/ColorField.module.js.map +1 -1
  42. package/dist/ColorSlider.main.js +2 -5
  43. package/dist/ColorSlider.main.js.map +1 -1
  44. package/dist/ColorSlider.mjs +2 -5
  45. package/dist/ColorSlider.module.js +2 -5
  46. package/dist/ColorSlider.module.js.map +1 -1
  47. package/dist/ColorSwatch.main.js +2 -5
  48. package/dist/ColorSwatch.main.js.map +1 -1
  49. package/dist/ColorSwatch.mjs +2 -5
  50. package/dist/ColorSwatch.module.js +2 -5
  51. package/dist/ColorSwatch.module.js.map +1 -1
  52. package/dist/ColorSwatchPicker.main.js +4 -8
  53. package/dist/ColorSwatchPicker.main.js.map +1 -1
  54. package/dist/ColorSwatchPicker.mjs +5 -9
  55. package/dist/ColorSwatchPicker.module.js +5 -9
  56. package/dist/ColorSwatchPicker.module.js.map +1 -1
  57. package/dist/ColorThumb.main.js +2 -5
  58. package/dist/ColorThumb.main.js.map +1 -1
  59. package/dist/ColorThumb.mjs +3 -6
  60. package/dist/ColorThumb.module.js +3 -6
  61. package/dist/ColorThumb.module.js.map +1 -1
  62. package/dist/ColorWheel.main.js +5 -11
  63. package/dist/ColorWheel.main.js.map +1 -1
  64. package/dist/ColorWheel.mjs +6 -12
  65. package/dist/ColorWheel.module.js +6 -12
  66. package/dist/ColorWheel.module.js.map +1 -1
  67. package/dist/ComboBox.main.js +4 -7
  68. package/dist/ComboBox.main.js.map +1 -1
  69. package/dist/ComboBox.mjs +5 -8
  70. package/dist/ComboBox.module.js +5 -8
  71. package/dist/ComboBox.module.js.map +1 -1
  72. package/dist/DateField.main.js +8 -23
  73. package/dist/DateField.main.js.map +1 -1
  74. package/dist/DateField.mjs +9 -24
  75. package/dist/DateField.module.js +9 -24
  76. package/dist/DateField.module.js.map +1 -1
  77. package/dist/DatePicker.main.js +4 -11
  78. package/dist/DatePicker.main.js.map +1 -1
  79. package/dist/DatePicker.mjs +5 -12
  80. package/dist/DatePicker.module.js +5 -12
  81. package/dist/DatePicker.module.js.map +1 -1
  82. package/dist/Dialog.main.js +36 -15
  83. package/dist/Dialog.main.js.map +1 -1
  84. package/dist/Dialog.mjs +39 -18
  85. package/dist/Dialog.module.js +39 -18
  86. package/dist/Dialog.module.js.map +1 -1
  87. package/dist/Disclosure.main.js +8 -16
  88. package/dist/Disclosure.main.js.map +1 -1
  89. package/dist/Disclosure.mjs +8 -16
  90. package/dist/Disclosure.module.js +8 -16
  91. package/dist/Disclosure.module.js.map +1 -1
  92. package/dist/DragAndDrop.main.js +3 -6
  93. package/dist/DragAndDrop.main.js.map +1 -1
  94. package/dist/DragAndDrop.mjs +4 -7
  95. package/dist/DragAndDrop.module.js +4 -7
  96. package/dist/DragAndDrop.module.js.map +1 -1
  97. package/dist/DropZone.main.js +2 -5
  98. package/dist/DropZone.main.js.map +1 -1
  99. package/dist/DropZone.mjs +3 -6
  100. package/dist/DropZone.module.js +3 -6
  101. package/dist/DropZone.module.js.map +1 -1
  102. package/dist/FieldError.main.js +2 -5
  103. package/dist/FieldError.main.js.map +1 -1
  104. package/dist/FieldError.mjs +3 -6
  105. package/dist/FieldError.module.js +3 -6
  106. package/dist/FieldError.module.js.map +1 -1
  107. package/dist/FileTrigger.main.js +2 -5
  108. package/dist/FileTrigger.main.js.map +1 -1
  109. package/dist/FileTrigger.mjs +2 -5
  110. package/dist/FileTrigger.module.js +2 -5
  111. package/dist/FileTrigger.module.js.map +1 -1
  112. package/dist/Form.main.js +2 -6
  113. package/dist/Form.main.js.map +1 -1
  114. package/dist/Form.mjs +2 -6
  115. package/dist/Form.module.js +2 -6
  116. package/dist/Form.module.js.map +1 -1
  117. package/dist/GridList.main.js +3 -6
  118. package/dist/GridList.main.js.map +1 -1
  119. package/dist/GridList.mjs +4 -7
  120. package/dist/GridList.module.js +4 -7
  121. package/dist/GridList.module.js.map +1 -1
  122. package/dist/Group.main.js +2 -5
  123. package/dist/Group.main.js.map +1 -1
  124. package/dist/Group.mjs +2 -5
  125. package/dist/Group.module.js +2 -5
  126. package/dist/Group.module.js.map +1 -1
  127. package/dist/Heading.main.js +2 -3
  128. package/dist/Heading.main.js.map +1 -1
  129. package/dist/Heading.mjs +2 -3
  130. package/dist/Heading.module.js +2 -3
  131. package/dist/Heading.module.js.map +1 -1
  132. package/dist/Input.main.js +2 -5
  133. package/dist/Input.main.js.map +1 -1
  134. package/dist/Input.mjs +2 -5
  135. package/dist/Input.module.js +2 -5
  136. package/dist/Input.module.js.map +1 -1
  137. package/dist/Keyboard.main.js +2 -3
  138. package/dist/Keyboard.main.js.map +1 -1
  139. package/dist/Keyboard.mjs +2 -3
  140. package/dist/Keyboard.module.js +2 -3
  141. package/dist/Keyboard.module.js.map +1 -1
  142. package/dist/Label.main.js +2 -3
  143. package/dist/Label.main.js.map +1 -1
  144. package/dist/Label.mjs +2 -3
  145. package/dist/Label.module.js +2 -3
  146. package/dist/Label.module.js.map +1 -1
  147. package/dist/Link.main.js +2 -6
  148. package/dist/Link.main.js.map +1 -1
  149. package/dist/Link.mjs +2 -6
  150. package/dist/Link.module.js +2 -6
  151. package/dist/Link.module.js.map +1 -1
  152. package/dist/ListBox.main.js +25 -9
  153. package/dist/ListBox.main.js.map +1 -1
  154. package/dist/ListBox.mjs +28 -13
  155. package/dist/ListBox.module.js +28 -13
  156. package/dist/ListBox.module.js.map +1 -1
  157. package/dist/Menu.main.js +84 -65
  158. package/dist/Menu.main.js.map +1 -1
  159. package/dist/Menu.mjs +87 -69
  160. package/dist/Menu.module.js +87 -69
  161. package/dist/Menu.module.js.map +1 -1
  162. package/dist/Meter.main.js +2 -5
  163. package/dist/Meter.main.js.map +1 -1
  164. package/dist/Meter.mjs +2 -5
  165. package/dist/Meter.module.js +2 -5
  166. package/dist/Meter.module.js.map +1 -1
  167. package/dist/Modal.main.js +7 -10
  168. package/dist/Modal.main.js.map +1 -1
  169. package/dist/Modal.mjs +10 -13
  170. package/dist/Modal.module.js +10 -13
  171. package/dist/Modal.module.js.map +1 -1
  172. package/dist/NumberField.main.js +2 -5
  173. package/dist/NumberField.main.js.map +1 -1
  174. package/dist/NumberField.mjs +3 -6
  175. package/dist/NumberField.module.js +3 -6
  176. package/dist/NumberField.module.js.map +1 -1
  177. package/dist/OverlayArrow.main.js +3 -7
  178. package/dist/OverlayArrow.main.js.map +1 -1
  179. package/dist/OverlayArrow.mjs +3 -7
  180. package/dist/OverlayArrow.module.js +3 -7
  181. package/dist/OverlayArrow.module.js.map +1 -1
  182. package/dist/Popover.main.js +5 -7
  183. package/dist/Popover.main.js.map +1 -1
  184. package/dist/Popover.mjs +8 -10
  185. package/dist/Popover.module.js +8 -10
  186. package/dist/Popover.module.js.map +1 -1
  187. package/dist/ProgressBar.main.js +2 -6
  188. package/dist/ProgressBar.main.js.map +1 -1
  189. package/dist/ProgressBar.mjs +2 -6
  190. package/dist/ProgressBar.module.js +2 -6
  191. package/dist/ProgressBar.module.js.map +1 -1
  192. package/dist/RadioGroup.main.js +4 -10
  193. package/dist/RadioGroup.main.js.map +1 -1
  194. package/dist/RadioGroup.mjs +4 -10
  195. package/dist/RadioGroup.module.js +4 -10
  196. package/dist/RadioGroup.module.js.map +1 -1
  197. package/dist/SearchField.main.js +6 -8
  198. package/dist/SearchField.main.js.map +1 -1
  199. package/dist/SearchField.mjs +8 -10
  200. package/dist/SearchField.module.js +8 -10
  201. package/dist/SearchField.module.js.map +1 -1
  202. package/dist/Select.main.js +6 -12
  203. package/dist/Select.main.js.map +1 -1
  204. package/dist/Select.mjs +7 -13
  205. package/dist/Select.module.js +7 -13
  206. package/dist/Select.module.js.map +1 -1
  207. package/dist/Slider.main.js +8 -20
  208. package/dist/Slider.main.js.map +1 -1
  209. package/dist/Slider.mjs +9 -21
  210. package/dist/Slider.module.js +9 -21
  211. package/dist/Slider.module.js.map +1 -1
  212. package/dist/Switch.main.js +2 -5
  213. package/dist/Switch.main.js.map +1 -1
  214. package/dist/Switch.mjs +2 -5
  215. package/dist/Switch.module.js +2 -5
  216. package/dist/Switch.module.js.map +1 -1
  217. package/dist/Table.main.js +9 -22
  218. package/dist/Table.main.js.map +1 -1
  219. package/dist/Table.mjs +10 -23
  220. package/dist/Table.module.js +10 -23
  221. package/dist/Table.module.js.map +1 -1
  222. package/dist/Tabs.main.js +9 -17
  223. package/dist/Tabs.main.js.map +1 -1
  224. package/dist/Tabs.mjs +11 -19
  225. package/dist/Tabs.module.js +11 -19
  226. package/dist/Tabs.module.js.map +1 -1
  227. package/dist/TagGroup.main.js +4 -10
  228. package/dist/TagGroup.main.js.map +1 -1
  229. package/dist/TagGroup.mjs +5 -11
  230. package/dist/TagGroup.module.js +5 -11
  231. package/dist/TagGroup.module.js.map +1 -1
  232. package/dist/Text.main.js +2 -3
  233. package/dist/Text.main.js.map +1 -1
  234. package/dist/Text.mjs +2 -3
  235. package/dist/Text.module.js +2 -3
  236. package/dist/Text.module.js.map +1 -1
  237. package/dist/TextArea.main.js +2 -5
  238. package/dist/TextArea.main.js.map +1 -1
  239. package/dist/TextArea.mjs +2 -5
  240. package/dist/TextArea.module.js +2 -5
  241. package/dist/TextArea.module.js.map +1 -1
  242. package/dist/TextField.main.js +9 -9
  243. package/dist/TextField.main.js.map +1 -1
  244. package/dist/TextField.mjs +11 -11
  245. package/dist/TextField.module.js +11 -11
  246. package/dist/TextField.module.js.map +1 -1
  247. package/dist/ToggleButton.main.js +22 -10
  248. package/dist/ToggleButton.main.js.map +1 -1
  249. package/dist/ToggleButton.mjs +24 -12
  250. package/dist/ToggleButton.module.js +24 -12
  251. package/dist/ToggleButton.module.js.map +1 -1
  252. package/dist/ToggleButtonGroup.main.js +59 -0
  253. package/dist/ToggleButtonGroup.main.js.map +1 -0
  254. package/dist/ToggleButtonGroup.mjs +48 -0
  255. package/dist/ToggleButtonGroup.module.js +48 -0
  256. package/dist/ToggleButtonGroup.module.js.map +1 -0
  257. package/dist/Toolbar.main.js +2 -6
  258. package/dist/Toolbar.main.js.map +1 -1
  259. package/dist/Toolbar.mjs +2 -6
  260. package/dist/Toolbar.module.js +2 -6
  261. package/dist/Toolbar.module.js.map +1 -1
  262. package/dist/Tooltip.main.js +7 -9
  263. package/dist/Tooltip.main.js.map +1 -1
  264. package/dist/Tooltip.mjs +10 -12
  265. package/dist/Tooltip.module.js +10 -12
  266. package/dist/Tooltip.module.js.map +1 -1
  267. package/dist/Tree.main.js +2 -6
  268. package/dist/Tree.main.js.map +1 -1
  269. package/dist/Tree.mjs +3 -7
  270. package/dist/Tree.module.js +3 -7
  271. package/dist/Tree.module.js.map +1 -1
  272. package/dist/Virtualizer.main.js.map +1 -1
  273. package/dist/Virtualizer.module.js.map +1 -1
  274. package/dist/import.mjs +8 -4
  275. package/dist/main.js +16 -3
  276. package/dist/main.js.map +1 -1
  277. package/dist/module.js +8 -4
  278. package/dist/module.js.map +1 -1
  279. package/dist/types.d.ts +371 -324
  280. package/dist/types.d.ts.map +1 -1
  281. package/dist/utils.main.js +0 -61
  282. package/dist/utils.main.js.map +1 -1
  283. package/dist/utils.mjs +1 -60
  284. package/dist/utils.module.js +1 -60
  285. package/dist/utils.module.js.map +1 -1
  286. package/i18n/ar-AE.js +1 -1
  287. package/i18n/ar-AE.mjs +1 -1
  288. package/i18n/bg-BG.js +1 -1
  289. package/i18n/bg-BG.mjs +1 -1
  290. package/i18n/cs-CZ.js +1 -1
  291. package/i18n/cs-CZ.mjs +1 -1
  292. package/i18n/da-DK.js +1 -1
  293. package/i18n/da-DK.mjs +1 -1
  294. package/i18n/de-DE.js +1 -1
  295. package/i18n/de-DE.mjs +1 -1
  296. package/i18n/el-GR.js +1 -1
  297. package/i18n/el-GR.mjs +1 -1
  298. package/i18n/en-US.js +1 -1
  299. package/i18n/en-US.mjs +1 -1
  300. package/i18n/es-ES.js +1 -1
  301. package/i18n/es-ES.mjs +1 -1
  302. package/i18n/et-EE.js +1 -1
  303. package/i18n/et-EE.mjs +1 -1
  304. package/i18n/fi-FI.js +1 -1
  305. package/i18n/fi-FI.mjs +1 -1
  306. package/i18n/fr-FR.js +1 -1
  307. package/i18n/fr-FR.mjs +1 -1
  308. package/i18n/he-IL.js +1 -1
  309. package/i18n/he-IL.mjs +1 -1
  310. package/i18n/hr-HR.js +1 -1
  311. package/i18n/hr-HR.mjs +1 -1
  312. package/i18n/hu-HU.js +1 -1
  313. package/i18n/hu-HU.mjs +1 -1
  314. package/i18n/index.js +1 -1
  315. package/i18n/index.mjs +1 -1
  316. package/i18n/it-IT.js +1 -1
  317. package/i18n/it-IT.mjs +1 -1
  318. package/i18n/ja-JP.js +1 -1
  319. package/i18n/ja-JP.mjs +1 -1
  320. package/i18n/ko-KR.js +1 -1
  321. package/i18n/ko-KR.mjs +1 -1
  322. package/i18n/lt-LT.js +1 -1
  323. package/i18n/lt-LT.mjs +1 -1
  324. package/i18n/lv-LV.js +1 -1
  325. package/i18n/lv-LV.mjs +1 -1
  326. package/i18n/nb-NO.js +1 -1
  327. package/i18n/nb-NO.mjs +1 -1
  328. package/i18n/nl-NL.js +1 -1
  329. package/i18n/nl-NL.mjs +1 -1
  330. package/i18n/pl-PL.js +1 -1
  331. package/i18n/pl-PL.mjs +1 -1
  332. package/i18n/pt-BR.js +1 -1
  333. package/i18n/pt-BR.mjs +1 -1
  334. package/i18n/pt-PT.js +1 -1
  335. package/i18n/pt-PT.mjs +1 -1
  336. package/i18n/ro-RO.js +1 -1
  337. package/i18n/ro-RO.mjs +1 -1
  338. package/i18n/ru-RU.js +1 -1
  339. package/i18n/ru-RU.mjs +1 -1
  340. package/i18n/sk-SK.js +1 -1
  341. package/i18n/sk-SK.mjs +1 -1
  342. package/i18n/sl-SI.js +1 -1
  343. package/i18n/sl-SI.mjs +1 -1
  344. package/i18n/sr-SP.js +1 -1
  345. package/i18n/sr-SP.mjs +1 -1
  346. package/i18n/sv-SE.js +1 -1
  347. package/i18n/sv-SE.mjs +1 -1
  348. package/i18n/tr-TR.js +1 -1
  349. package/i18n/tr-TR.mjs +1 -1
  350. package/i18n/uk-UA.js +1 -1
  351. package/i18n/uk-UA.mjs +1 -1
  352. package/i18n/zh-CN.js +1 -1
  353. package/i18n/zh-CN.mjs +1 -1
  354. package/i18n/zh-TW.js +1 -1
  355. package/i18n/zh-TW.mjs +1 -1
  356. package/package.json +35 -33
  357. package/src/Autocomplete.tsx +71 -0
  358. package/src/Breadcrumbs.tsx +5 -8
  359. package/src/Button.tsx +8 -8
  360. package/src/Calendar.tsx +35 -39
  361. package/src/Checkbox.tsx +11 -17
  362. package/src/Collection.tsx +7 -4
  363. package/src/ColorArea.tsx +5 -8
  364. package/src/ColorField.tsx +5 -8
  365. package/src/ColorSlider.tsx +5 -8
  366. package/src/ColorSwatch.tsx +5 -8
  367. package/src/ColorSwatchPicker.tsx +7 -13
  368. package/src/ColorThumb.tsx +5 -8
  369. package/src/ColorWheel.tsx +10 -16
  370. package/src/ComboBox.tsx +5 -8
  371. package/src/DateField.tsx +21 -33
  372. package/src/DatePicker.tsx +9 -15
  373. package/src/Dialog.tsx +34 -22
  374. package/src/Disclosure.tsx +28 -29
  375. package/src/DragAndDrop.tsx +7 -10
  376. package/src/DropZone.tsx +5 -8
  377. package/src/FieldError.tsx +5 -8
  378. package/src/FileTrigger.tsx +5 -8
  379. package/src/Form.tsx +6 -9
  380. package/src/GridList.tsx +7 -9
  381. package/src/Group.tsx +5 -8
  382. package/src/Heading.tsx +2 -5
  383. package/src/Input.tsx +5 -8
  384. package/src/Keyboard.tsx +2 -5
  385. package/src/Label.tsx +2 -5
  386. package/src/Link.tsx +6 -9
  387. package/src/ListBox.tsx +24 -15
  388. package/src/Menu.tsx +88 -58
  389. package/src/Meter.tsx +5 -8
  390. package/src/Modal.tsx +7 -10
  391. package/src/NumberField.tsx +5 -8
  392. package/src/OverlayArrow.tsx +11 -12
  393. package/src/Popover.tsx +9 -12
  394. package/src/ProgressBar.tsx +6 -9
  395. package/src/RadioGroup.tsx +10 -16
  396. package/src/SearchField.tsx +9 -11
  397. package/src/Select.tsx +13 -18
  398. package/src/Slider.tsx +20 -32
  399. package/src/Switch.tsx +5 -8
  400. package/src/Table.tsx +12 -21
  401. package/src/Tabs.tsx +18 -25
  402. package/src/TagGroup.tsx +8 -14
  403. package/src/Text.tsx +2 -5
  404. package/src/TextArea.tsx +5 -7
  405. package/src/TextField.tsx +11 -13
  406. package/src/ToggleButton.tsx +31 -17
  407. package/src/ToggleButtonGroup.tsx +65 -0
  408. package/src/Toolbar.tsx +6 -9
  409. package/src/Tooltip.tsx +11 -13
  410. package/src/Tree.tsx +6 -9
  411. package/src/Virtualizer.tsx +2 -2
  412. package/src/index.ts +11 -7
  413. package/src/utils.tsx +0 -71
@@ -12,7 +12,7 @@ import {TextContext as $514c0188e459b4c0$export$9afb8bc826b033ea} from "./Text.m
12
12
  import {useDatePicker as $8nhma$useDatePicker, useFocusRing as $8nhma$useFocusRing, useDateRangePicker as $8nhma$useDateRangePicker} from "react-aria";
13
13
  import {useDatePickerState as $8nhma$useDatePickerState, useDateRangePickerState as $8nhma$useDateRangePickerState} from "react-stately";
14
14
  import {useResizeObserver as $8nhma$useResizeObserver, filterDOMProps as $8nhma$filterDOMProps} from "@react-aria/utils";
15
- import $8nhma$react, {createContext as $8nhma$createContext, useRef as $8nhma$useRef, useState as $8nhma$useState, useCallback as $8nhma$useCallback, forwardRef as $8nhma$forwardRef} from "react";
15
+ import $8nhma$react, {createContext as $8nhma$createContext, forwardRef as $8nhma$forwardRef, useRef as $8nhma$useRef, useState as $8nhma$useState, useCallback as $8nhma$useCallback} from "react";
16
16
 
17
17
  /*
18
18
  * Copyright 2022 Adobe. All rights reserved.
@@ -43,7 +43,7 @@ const $06d5b8ec9ee5d538$export$cf316c7f3b44c11e = /*#__PURE__*/ (0, $8nhma$creat
43
43
  const $06d5b8ec9ee5d538$export$8282edba42ee28a = /*#__PURE__*/ (0, $8nhma$createContext)(null);
44
44
  const $06d5b8ec9ee5d538$export$50a10c048fdcdee9 = /*#__PURE__*/ (0, $8nhma$createContext)(null);
45
45
  const $06d5b8ec9ee5d538$export$80d7ae1f804790be = /*#__PURE__*/ (0, $8nhma$createContext)(null);
46
- function $06d5b8ec9ee5d538$var$DatePicker(props, ref) {
46
+ const $06d5b8ec9ee5d538$export$5109c6dd95d8fb00 = /*#__PURE__*/ (0, $8nhma$forwardRef)(function DatePicker(props, ref) {
47
47
  [props, ref] = (0, $64fa3d84918910a7$export$29f1550f4b0d4415)(props, ref, $06d5b8ec9ee5d538$export$cf316c7f3b44c11e);
48
48
  let { validationBehavior: formValidationBehavior } = (0, $64fa3d84918910a7$export$fabf2dc03a41866e)((0, $d3e0e05bdfcf66bd$export$c24727297075ec6a)) || {};
49
49
  var _props_validationBehavior, _ref;
@@ -167,11 +167,8 @@ function $06d5b8ec9ee5d538$var$DatePicker(props, ref) {
167
167
  "data-disabled": props.isDisabled || undefined,
168
168
  "data-open": state.isOpen || undefined
169
169
  }));
170
- }
171
- /**
172
- * A date picker combines a DateField and a Calendar popover to allow users to enter or select a date and time value.
173
- */ const $06d5b8ec9ee5d538$export$5109c6dd95d8fb00 = /*#__PURE__*/ (0, $8nhma$forwardRef)($06d5b8ec9ee5d538$var$DatePicker);
174
- function $06d5b8ec9ee5d538$var$DateRangePicker(props, ref) {
170
+ });
171
+ const $06d5b8ec9ee5d538$export$17334619f3ac2224 = /*#__PURE__*/ (0, $8nhma$forwardRef)(function DateRangePicker(props, ref) {
175
172
  [props, ref] = (0, $64fa3d84918910a7$export$29f1550f4b0d4415)(props, ref, $06d5b8ec9ee5d538$export$8282edba42ee28a);
176
173
  let { validationBehavior: formValidationBehavior } = (0, $64fa3d84918910a7$export$fabf2dc03a41866e)((0, $d3e0e05bdfcf66bd$export$c24727297075ec6a)) || {};
177
174
  var _props_validationBehavior, _ref;
@@ -300,11 +297,7 @@ function $06d5b8ec9ee5d538$var$DateRangePicker(props, ref) {
300
297
  "data-disabled": props.isDisabled || undefined,
301
298
  "data-open": state.isOpen || undefined
302
299
  }));
303
- }
304
- /**
305
- * A date range picker combines two DateFields and a RangeCalendar popover to allow
306
- * users to enter or select a date and time range.
307
- */ const $06d5b8ec9ee5d538$export$17334619f3ac2224 = /*#__PURE__*/ (0, $8nhma$forwardRef)($06d5b8ec9ee5d538$var$DateRangePicker);
300
+ });
308
301
 
309
302
 
310
303
  export {$06d5b8ec9ee5d538$export$cf316c7f3b44c11e as DatePickerContext, $06d5b8ec9ee5d538$export$8282edba42ee28a as DateRangePickerContext, $06d5b8ec9ee5d538$export$50a10c048fdcdee9 as DatePickerStateContext, $06d5b8ec9ee5d538$export$80d7ae1f804790be as DateRangePickerStateContext, $06d5b8ec9ee5d538$export$5109c6dd95d8fb00 as DatePicker, $06d5b8ec9ee5d538$export$17334619f3ac2224 as DateRangePicker};
@@ -12,7 +12,7 @@ import {TextContext as $514c0188e459b4c0$export$9afb8bc826b033ea} from "./Text.m
12
12
  import {useDatePicker as $8nhma$useDatePicker, useFocusRing as $8nhma$useFocusRing, useDateRangePicker as $8nhma$useDateRangePicker} from "react-aria";
13
13
  import {useDatePickerState as $8nhma$useDatePickerState, useDateRangePickerState as $8nhma$useDateRangePickerState} from "react-stately";
14
14
  import {useResizeObserver as $8nhma$useResizeObserver, filterDOMProps as $8nhma$filterDOMProps} from "@react-aria/utils";
15
- import $8nhma$react, {createContext as $8nhma$createContext, useRef as $8nhma$useRef, useState as $8nhma$useState, useCallback as $8nhma$useCallback, forwardRef as $8nhma$forwardRef} from "react";
15
+ import $8nhma$react, {createContext as $8nhma$createContext, forwardRef as $8nhma$forwardRef, useRef as $8nhma$useRef, useState as $8nhma$useState, useCallback as $8nhma$useCallback} from "react";
16
16
 
17
17
  /*
18
18
  * Copyright 2022 Adobe. All rights reserved.
@@ -43,7 +43,7 @@ const $06d5b8ec9ee5d538$export$cf316c7f3b44c11e = /*#__PURE__*/ (0, $8nhma$creat
43
43
  const $06d5b8ec9ee5d538$export$8282edba42ee28a = /*#__PURE__*/ (0, $8nhma$createContext)(null);
44
44
  const $06d5b8ec9ee5d538$export$50a10c048fdcdee9 = /*#__PURE__*/ (0, $8nhma$createContext)(null);
45
45
  const $06d5b8ec9ee5d538$export$80d7ae1f804790be = /*#__PURE__*/ (0, $8nhma$createContext)(null);
46
- function $06d5b8ec9ee5d538$var$DatePicker(props, ref) {
46
+ const $06d5b8ec9ee5d538$export$5109c6dd95d8fb00 = /*#__PURE__*/ (0, $8nhma$forwardRef)(function DatePicker(props, ref) {
47
47
  [props, ref] = (0, $64fa3d84918910a7$export$29f1550f4b0d4415)(props, ref, $06d5b8ec9ee5d538$export$cf316c7f3b44c11e);
48
48
  let { validationBehavior: formValidationBehavior } = (0, $64fa3d84918910a7$export$fabf2dc03a41866e)((0, $d3e0e05bdfcf66bd$export$c24727297075ec6a)) || {};
49
49
  var _props_validationBehavior, _ref;
@@ -167,11 +167,8 @@ function $06d5b8ec9ee5d538$var$DatePicker(props, ref) {
167
167
  "data-disabled": props.isDisabled || undefined,
168
168
  "data-open": state.isOpen || undefined
169
169
  }));
170
- }
171
- /**
172
- * A date picker combines a DateField and a Calendar popover to allow users to enter or select a date and time value.
173
- */ const $06d5b8ec9ee5d538$export$5109c6dd95d8fb00 = /*#__PURE__*/ (0, $8nhma$forwardRef)($06d5b8ec9ee5d538$var$DatePicker);
174
- function $06d5b8ec9ee5d538$var$DateRangePicker(props, ref) {
170
+ });
171
+ const $06d5b8ec9ee5d538$export$17334619f3ac2224 = /*#__PURE__*/ (0, $8nhma$forwardRef)(function DateRangePicker(props, ref) {
175
172
  [props, ref] = (0, $64fa3d84918910a7$export$29f1550f4b0d4415)(props, ref, $06d5b8ec9ee5d538$export$8282edba42ee28a);
176
173
  let { validationBehavior: formValidationBehavior } = (0, $64fa3d84918910a7$export$fabf2dc03a41866e)((0, $d3e0e05bdfcf66bd$export$c24727297075ec6a)) || {};
177
174
  var _props_validationBehavior, _ref;
@@ -300,11 +297,7 @@ function $06d5b8ec9ee5d538$var$DateRangePicker(props, ref) {
300
297
  "data-disabled": props.isDisabled || undefined,
301
298
  "data-open": state.isOpen || undefined
302
299
  }));
303
- }
304
- /**
305
- * A date range picker combines two DateFields and a RangeCalendar popover to allow
306
- * users to enter or select a date and time range.
307
- */ const $06d5b8ec9ee5d538$export$17334619f3ac2224 = /*#__PURE__*/ (0, $8nhma$forwardRef)($06d5b8ec9ee5d538$var$DateRangePicker);
300
+ });
308
301
 
309
302
 
310
303
  export {$06d5b8ec9ee5d538$export$cf316c7f3b44c11e as DatePickerContext, $06d5b8ec9ee5d538$export$8282edba42ee28a as DateRangePickerContext, $06d5b8ec9ee5d538$export$50a10c048fdcdee9 as DatePickerStateContext, $06d5b8ec9ee5d538$export$80d7ae1f804790be as DateRangePickerStateContext, $06d5b8ec9ee5d538$export$5109c6dd95d8fb00 as DatePicker, $06d5b8ec9ee5d538$export$17334619f3ac2224 as DateRangePicker};
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/react-aria-components/src/DatePicker.tsx"],"sourcesContent":["/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport {AriaDatePickerProps, AriaDateRangePickerProps, DateValue, useDatePicker, useDateRangePicker, useFocusRing} from 'react-aria';\nimport {ButtonContext} from './Button';\nimport {CalendarContext, RangeCalendarContext} from './Calendar';\nimport {ContextValue, Provider, RACValidation, removeDataAttributes, RenderProps, SlotProps, useContextProps, useRenderProps, useSlot, useSlottedContext} from './utils';\nimport {DateFieldContext} from './DateField';\nimport {DatePickerState, DatePickerStateOptions, DateRangePickerState, DateRangePickerStateOptions, useDatePickerState, useDateRangePickerState} from 'react-stately';\nimport {DialogContext, OverlayTriggerStateContext} from './Dialog';\nimport {FieldErrorContext} from './FieldError';\nimport {filterDOMProps, useResizeObserver} from '@react-aria/utils';\nimport {FormContext} from './Form';\nimport {forwardRefType} from '@react-types/shared';\nimport {GroupContext} from './Group';\nimport {LabelContext} from './Label';\nimport {PopoverContext} from './Popover';\nimport React, {createContext, ForwardedRef, forwardRef, useCallback, useRef, useState} from 'react';\nimport {TextContext} from './Text';\n\nexport interface DatePickerRenderProps {\n /**\n * Whether an element within the date picker is focused, either via a mouse or keyboard.\n * @selector [data-focus-within]\n */\n isFocusWithin: boolean,\n /**\n * Whether an element within the date picker is keyboard focused.\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean,\n /**\n * Whether the date picker is disabled.\n * @selector [data-disabled]\n */\n isDisabled: boolean,\n /**\n * Whether the date picker is invalid.\n * @selector [data-invalid]\n */\n isInvalid: boolean,\n /**\n * Whether the date picker's popover is currently open.\n * @selector [data-open]\n */\n isOpen: boolean,\n /**\n * State of the date picker.\n */\n state: DatePickerState\n}\nexport interface DateRangePickerRenderProps extends Omit<DatePickerRenderProps, 'state'> {\n /**\n * State of the date range picker.\n */\n state: DateRangePickerState\n}\n\nexport interface DatePickerProps<T extends DateValue> extends Omit<AriaDatePickerProps<T>, 'label' | 'description' | 'errorMessage' | 'validationState' | 'validationBehavior'>, Pick<DatePickerStateOptions<T>, 'shouldCloseOnSelect'>, RACValidation, RenderProps<DatePickerRenderProps>, SlotProps {}\nexport interface DateRangePickerProps<T extends DateValue> extends Omit<AriaDateRangePickerProps<T>, 'label' | 'description' | 'errorMessage' | 'validationState' | 'validationBehavior'>, Pick<DateRangePickerStateOptions<T>, 'shouldCloseOnSelect'>, RACValidation, RenderProps<DateRangePickerRenderProps>, SlotProps {}\n\nexport const DatePickerContext = createContext<ContextValue<DatePickerProps<any>, HTMLDivElement>>(null);\nexport const DateRangePickerContext = createContext<ContextValue<DateRangePickerProps<any>, HTMLDivElement>>(null);\nexport const DatePickerStateContext = createContext<DatePickerState | null>(null);\nexport const DateRangePickerStateContext = createContext<DateRangePickerState | null>(null);\n\nfunction DatePicker<T extends DateValue>(props: DatePickerProps<T>, ref: ForwardedRef<HTMLDivElement>) {\n [props, ref] = useContextProps(props, ref, DatePickerContext);\n let {validationBehavior: formValidationBehavior} = useSlottedContext(FormContext) || {};\n let validationBehavior = props.validationBehavior ?? formValidationBehavior ?? 'native';\n let state = useDatePickerState({\n ...props,\n validationBehavior\n });\n\n let groupRef = useRef<HTMLDivElement>(null);\n let [labelRef, label] = useSlot();\n let {\n groupProps,\n labelProps,\n fieldProps,\n buttonProps,\n dialogProps,\n calendarProps,\n descriptionProps,\n errorMessageProps,\n ...validation\n } = useDatePicker({\n ...removeDataAttributes(props),\n label,\n validationBehavior\n }, state, groupRef);\n\n // Allows calendar width to match input group\n let [groupWidth, setGroupWidth] = useState<string | null>(null);\n let onResize = useCallback(() => {\n if (groupRef.current) {\n setGroupWidth(groupRef.current.offsetWidth + 'px');\n }\n }, []);\n\n useResizeObserver({\n ref: groupRef,\n onResize: onResize\n });\n\n let {focusProps, isFocused, isFocusVisible} = useFocusRing({within: true});\n let renderProps = useRenderProps({\n ...props,\n values: {\n state,\n isFocusWithin: isFocused,\n isFocusVisible,\n isDisabled: props.isDisabled || false,\n isInvalid: state.isInvalid,\n isOpen: state.isOpen\n },\n defaultClassName: 'react-aria-DatePicker'\n });\n\n let DOMProps = filterDOMProps(props);\n delete DOMProps.id;\n\n return (\n <Provider\n values={[\n [DatePickerStateContext, state],\n [GroupContext, {...groupProps, ref: groupRef, isInvalid: state.isInvalid}],\n [DateFieldContext, fieldProps],\n [ButtonContext, {...buttonProps, isPressed: state.isOpen}],\n [LabelContext, {...labelProps, ref: labelRef, elementType: 'span'}],\n [CalendarContext, calendarProps],\n [OverlayTriggerStateContext, state],\n [PopoverContext, {\n trigger: 'DatePicker',\n triggerRef: groupRef,\n placement: 'bottom start',\n style: {'--trigger-width': groupWidth} as React.CSSProperties\n }],\n [DialogContext, dialogProps],\n [TextContext, {\n slots: {\n description: descriptionProps,\n errorMessage: errorMessageProps\n }\n }],\n [FieldErrorContext, validation]\n ]}>\n <div\n {...focusProps}\n {...DOMProps}\n {...renderProps}\n ref={ref}\n slot={props.slot || undefined}\n data-focus-within={isFocused || undefined}\n data-invalid={state.isInvalid || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-disabled={props.isDisabled || undefined}\n data-open={state.isOpen || undefined} />\n </Provider>\n );\n}\n\n/**\n * A date picker combines a DateField and a Calendar popover to allow users to enter or select a date and time value.\n */\nconst _DatePicker = /*#__PURE__*/ (forwardRef as forwardRefType)(DatePicker);\nexport {_DatePicker as DatePicker};\n\nfunction DateRangePicker<T extends DateValue>(props: DateRangePickerProps<T>, ref: ForwardedRef<HTMLDivElement>) {\n [props, ref] = useContextProps(props, ref, DateRangePickerContext);\n let {validationBehavior: formValidationBehavior} = useSlottedContext(FormContext) || {};\n let validationBehavior = props.validationBehavior ?? formValidationBehavior ?? 'native';\n let state = useDateRangePickerState({\n ...props,\n validationBehavior\n });\n\n let groupRef = useRef<HTMLDivElement>(null);\n let [labelRef, label] = useSlot();\n let {\n groupProps,\n labelProps,\n startFieldProps,\n endFieldProps,\n buttonProps,\n dialogProps,\n calendarProps,\n descriptionProps,\n errorMessageProps,\n ...validation\n } = useDateRangePicker({\n ...removeDataAttributes(props),\n label,\n validationBehavior\n }, state, groupRef);\n\n // Allows calendar width to match input group\n let [groupWidth, setGroupWidth] = useState<string | null>(null);\n let onResize = useCallback(() => {\n if (groupRef.current) {\n setGroupWidth(groupRef.current.offsetWidth + 'px');\n }\n }, []);\n\n useResizeObserver({\n ref: groupRef,\n onResize: onResize\n });\n\n let {focusProps, isFocused, isFocusVisible} = useFocusRing({within: true});\n let renderProps = useRenderProps({\n ...props,\n values: {\n state,\n isFocusWithin: isFocused,\n isFocusVisible,\n isDisabled: props.isDisabled || false,\n isInvalid: state.isInvalid,\n isOpen: state.isOpen\n },\n defaultClassName: 'react-aria-DateRangePicker'\n });\n\n let DOMProps = filterDOMProps(props);\n delete DOMProps.id;\n\n return (\n <Provider\n values={[\n [DateRangePickerStateContext, state],\n [GroupContext, {...groupProps, ref: groupRef, isInvalid: state.isInvalid}],\n [ButtonContext, {...buttonProps, isPressed: state.isOpen}],\n [LabelContext, {...labelProps, ref: labelRef, elementType: 'span'}],\n [RangeCalendarContext, calendarProps],\n [OverlayTriggerStateContext, state],\n [PopoverContext, {\n trigger: 'DateRangePicker',\n triggerRef: groupRef,\n placement: 'bottom start',\n style: {'--trigger-width': groupWidth} as React.CSSProperties\n }],\n [DialogContext, dialogProps],\n [DateFieldContext, {\n slots: {\n start: startFieldProps,\n end: endFieldProps\n }\n }],\n [TextContext, {\n slots: {\n description: descriptionProps,\n errorMessage: errorMessageProps\n }\n }],\n [FieldErrorContext, validation]\n ]}>\n <div\n {...focusProps}\n {...DOMProps}\n {...renderProps}\n ref={ref}\n slot={props.slot || undefined}\n data-focus-within={isFocused || undefined}\n data-invalid={state.isInvalid || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-disabled={props.isDisabled || undefined}\n data-open={state.isOpen || undefined} />\n </Provider>\n );\n}\n\n/**\n * A date range picker combines two DateFields and a RangeCalendar popover to allow\n * users to enter or select a date and time range.\n */\nconst _DateRangePicker = /*#__PURE__*/ (forwardRef as forwardRefType)(DateRangePicker);\nexport {_DateRangePicker as DateRangePicker};\n"],"names":[],"version":3,"file":"DatePicker.module.js.map"}
1
+ {"mappings":"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","sources":["packages/react-aria-components/src/DatePicker.tsx"],"sourcesContent":["/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport {AriaDatePickerProps, AriaDateRangePickerProps, DateValue, useDatePicker, useDateRangePicker, useFocusRing} from 'react-aria';\nimport {ButtonContext} from './Button';\nimport {CalendarContext, RangeCalendarContext} from './Calendar';\nimport {ContextValue, Provider, RACValidation, removeDataAttributes, RenderProps, SlotProps, useContextProps, useRenderProps, useSlot, useSlottedContext} from './utils';\nimport {DateFieldContext} from './DateField';\nimport {DatePickerState, DatePickerStateOptions, DateRangePickerState, DateRangePickerStateOptions, useDatePickerState, useDateRangePickerState} from 'react-stately';\nimport {DialogContext, OverlayTriggerStateContext} from './Dialog';\nimport {FieldErrorContext} from './FieldError';\nimport {filterDOMProps, useResizeObserver} from '@react-aria/utils';\nimport {FormContext} from './Form';\nimport {forwardRefType} from '@react-types/shared';\nimport {GroupContext} from './Group';\nimport {LabelContext} from './Label';\nimport {PopoverContext} from './Popover';\nimport React, {createContext, ForwardedRef, forwardRef, useCallback, useRef, useState} from 'react';\nimport {TextContext} from './Text';\n\nexport interface DatePickerRenderProps {\n /**\n * Whether an element within the date picker is focused, either via a mouse or keyboard.\n * @selector [data-focus-within]\n */\n isFocusWithin: boolean,\n /**\n * Whether an element within the date picker is keyboard focused.\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean,\n /**\n * Whether the date picker is disabled.\n * @selector [data-disabled]\n */\n isDisabled: boolean,\n /**\n * Whether the date picker is invalid.\n * @selector [data-invalid]\n */\n isInvalid: boolean,\n /**\n * Whether the date picker's popover is currently open.\n * @selector [data-open]\n */\n isOpen: boolean,\n /**\n * State of the date picker.\n */\n state: DatePickerState\n}\nexport interface DateRangePickerRenderProps extends Omit<DatePickerRenderProps, 'state'> {\n /**\n * State of the date range picker.\n */\n state: DateRangePickerState\n}\n\nexport interface DatePickerProps<T extends DateValue> extends Omit<AriaDatePickerProps<T>, 'label' | 'description' | 'errorMessage' | 'validationState' | 'validationBehavior'>, Pick<DatePickerStateOptions<T>, 'shouldCloseOnSelect'>, RACValidation, RenderProps<DatePickerRenderProps>, SlotProps {}\nexport interface DateRangePickerProps<T extends DateValue> extends Omit<AriaDateRangePickerProps<T>, 'label' | 'description' | 'errorMessage' | 'validationState' | 'validationBehavior'>, Pick<DateRangePickerStateOptions<T>, 'shouldCloseOnSelect'>, RACValidation, RenderProps<DateRangePickerRenderProps>, SlotProps {}\n\nexport const DatePickerContext = createContext<ContextValue<DatePickerProps<any>, HTMLDivElement>>(null);\nexport const DateRangePickerContext = createContext<ContextValue<DateRangePickerProps<any>, HTMLDivElement>>(null);\nexport const DatePickerStateContext = createContext<DatePickerState | null>(null);\nexport const DateRangePickerStateContext = createContext<DateRangePickerState | null>(null);\n\n/**\n * A date picker combines a DateField and a Calendar popover to allow users to enter or select a date and time value.\n */\nexport const DatePicker = /*#__PURE__*/ (forwardRef as forwardRefType)(function DatePicker<T extends DateValue>(props: DatePickerProps<T>, ref: ForwardedRef<HTMLDivElement>) {\n [props, ref] = useContextProps(props, ref, DatePickerContext);\n let {validationBehavior: formValidationBehavior} = useSlottedContext(FormContext) || {};\n let validationBehavior = props.validationBehavior ?? formValidationBehavior ?? 'native';\n let state = useDatePickerState({\n ...props,\n validationBehavior\n });\n\n let groupRef = useRef<HTMLDivElement>(null);\n let [labelRef, label] = useSlot();\n let {\n groupProps,\n labelProps,\n fieldProps,\n buttonProps,\n dialogProps,\n calendarProps,\n descriptionProps,\n errorMessageProps,\n ...validation\n } = useDatePicker({\n ...removeDataAttributes(props),\n label,\n validationBehavior\n }, state, groupRef);\n\n // Allows calendar width to match input group\n let [groupWidth, setGroupWidth] = useState<string | null>(null);\n let onResize = useCallback(() => {\n if (groupRef.current) {\n setGroupWidth(groupRef.current.offsetWidth + 'px');\n }\n }, []);\n\n useResizeObserver({\n ref: groupRef,\n onResize: onResize\n });\n\n let {focusProps, isFocused, isFocusVisible} = useFocusRing({within: true});\n let renderProps = useRenderProps({\n ...props,\n values: {\n state,\n isFocusWithin: isFocused,\n isFocusVisible,\n isDisabled: props.isDisabled || false,\n isInvalid: state.isInvalid,\n isOpen: state.isOpen\n },\n defaultClassName: 'react-aria-DatePicker'\n });\n\n let DOMProps = filterDOMProps(props);\n delete DOMProps.id;\n\n return (\n <Provider\n values={[\n [DatePickerStateContext, state],\n [GroupContext, {...groupProps, ref: groupRef, isInvalid: state.isInvalid}],\n [DateFieldContext, fieldProps],\n [ButtonContext, {...buttonProps, isPressed: state.isOpen}],\n [LabelContext, {...labelProps, ref: labelRef, elementType: 'span'}],\n [CalendarContext, calendarProps],\n [OverlayTriggerStateContext, state],\n [PopoverContext, {\n trigger: 'DatePicker',\n triggerRef: groupRef,\n placement: 'bottom start',\n style: {'--trigger-width': groupWidth} as React.CSSProperties\n }],\n [DialogContext, dialogProps],\n [TextContext, {\n slots: {\n description: descriptionProps,\n errorMessage: errorMessageProps\n }\n }],\n [FieldErrorContext, validation]\n ]}>\n <div\n {...focusProps}\n {...DOMProps}\n {...renderProps}\n ref={ref}\n slot={props.slot || undefined}\n data-focus-within={isFocused || undefined}\n data-invalid={state.isInvalid || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-disabled={props.isDisabled || undefined}\n data-open={state.isOpen || undefined} />\n </Provider>\n );\n});\n\n/**\n * A date range picker combines two DateFields and a RangeCalendar popover to allow\n * users to enter or select a date and time range.\n */\nexport const DateRangePicker = /*#__PURE__*/ (forwardRef as forwardRefType)(function DateRangePicker<T extends DateValue>(props: DateRangePickerProps<T>, ref: ForwardedRef<HTMLDivElement>) {\n [props, ref] = useContextProps(props, ref, DateRangePickerContext);\n let {validationBehavior: formValidationBehavior} = useSlottedContext(FormContext) || {};\n let validationBehavior = props.validationBehavior ?? formValidationBehavior ?? 'native';\n let state = useDateRangePickerState({\n ...props,\n validationBehavior\n });\n\n let groupRef = useRef<HTMLDivElement>(null);\n let [labelRef, label] = useSlot();\n let {\n groupProps,\n labelProps,\n startFieldProps,\n endFieldProps,\n buttonProps,\n dialogProps,\n calendarProps,\n descriptionProps,\n errorMessageProps,\n ...validation\n } = useDateRangePicker({\n ...removeDataAttributes(props),\n label,\n validationBehavior\n }, state, groupRef);\n\n // Allows calendar width to match input group\n let [groupWidth, setGroupWidth] = useState<string | null>(null);\n let onResize = useCallback(() => {\n if (groupRef.current) {\n setGroupWidth(groupRef.current.offsetWidth + 'px');\n }\n }, []);\n\n useResizeObserver({\n ref: groupRef,\n onResize: onResize\n });\n\n let {focusProps, isFocused, isFocusVisible} = useFocusRing({within: true});\n let renderProps = useRenderProps({\n ...props,\n values: {\n state,\n isFocusWithin: isFocused,\n isFocusVisible,\n isDisabled: props.isDisabled || false,\n isInvalid: state.isInvalid,\n isOpen: state.isOpen\n },\n defaultClassName: 'react-aria-DateRangePicker'\n });\n\n let DOMProps = filterDOMProps(props);\n delete DOMProps.id;\n\n return (\n <Provider\n values={[\n [DateRangePickerStateContext, state],\n [GroupContext, {...groupProps, ref: groupRef, isInvalid: state.isInvalid}],\n [ButtonContext, {...buttonProps, isPressed: state.isOpen}],\n [LabelContext, {...labelProps, ref: labelRef, elementType: 'span'}],\n [RangeCalendarContext, calendarProps],\n [OverlayTriggerStateContext, state],\n [PopoverContext, {\n trigger: 'DateRangePicker',\n triggerRef: groupRef,\n placement: 'bottom start',\n style: {'--trigger-width': groupWidth} as React.CSSProperties\n }],\n [DialogContext, dialogProps],\n [DateFieldContext, {\n slots: {\n start: startFieldProps,\n end: endFieldProps\n }\n }],\n [TextContext, {\n slots: {\n description: descriptionProps,\n errorMessage: errorMessageProps\n }\n }],\n [FieldErrorContext, validation]\n ]}>\n <div\n {...focusProps}\n {...DOMProps}\n {...renderProps}\n ref={ref}\n slot={props.slot || undefined}\n data-focus-within={isFocused || undefined}\n data-invalid={state.isInvalid || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-disabled={props.isDisabled || undefined}\n data-open={state.isOpen || undefined} />\n </Provider>\n );\n});\n"],"names":[],"version":3,"file":"DatePicker.module.js.map"}
@@ -1,6 +1,8 @@
1
+ var $b856e6788a7ea5bf$exports = require("./Button.main.js");
1
2
  var $c5ccf687772c0422$exports = require("./utils.main.js");
2
3
  var $525402dfec7da5bc$exports = require("./RSPContexts.main.js");
3
4
  var $61e2b7078adb18bc$exports = require("./Popover.main.js");
5
+ var $a8f6e7d095d1cc86$exports = require("./Menu.main.js");
4
6
  var $03da9$reactaria = require("react-aria");
5
7
  var $03da9$reactariautils = require("@react-aria/utils");
6
8
  var $03da9$reactstately = require("react-stately");
@@ -38,10 +40,14 @@ $parcel$export(module.exports, "Dialog", () => $2979ab89b336194b$export$3ddf2d17
38
40
 
39
41
 
40
42
 
43
+
44
+
41
45
  const $2979ab89b336194b$export$8b93a07348a7730c = /*#__PURE__*/ (0, $03da9$react.createContext)(null);
42
46
  const $2979ab89b336194b$export$d2f961adcb0afbe = /*#__PURE__*/ (0, $03da9$react.createContext)(null);
43
47
  function $2979ab89b336194b$export$2e1e1122cf0cba88(props) {
44
- let state = (0, $03da9$reactstately.useOverlayTriggerState)(props);
48
+ // Use useMenuTriggerState instead of useOverlayTriggerState in case a menu is embedded in the dialog.
49
+ // This is needed to handle submenus.
50
+ let state = (0, $03da9$reactstately.useMenuTriggerState)(props);
45
51
  let buttonRef = (0, $03da9$react.useRef)(null);
46
52
  let { triggerProps: triggerProps, overlayProps: overlayProps } = (0, $03da9$reactaria.useOverlayTrigger)({
47
53
  type: 'dialog'
@@ -58,6 +64,10 @@ function $2979ab89b336194b$export$2e1e1122cf0cba88(props) {
58
64
  $2979ab89b336194b$export$d2f961adcb0afbe,
59
65
  state
60
66
  ],
67
+ [
68
+ (0, $a8f6e7d095d1cc86$exports.RootMenuTriggerStateContext),
69
+ state
70
+ ],
61
71
  [
62
72
  $2979ab89b336194b$export$8b93a07348a7730c,
63
73
  overlayProps
@@ -76,7 +86,7 @@ function $2979ab89b336194b$export$2e1e1122cf0cba88(props) {
76
86
  isPressed: state.isOpen
77
87
  }, props.children));
78
88
  }
79
- function $2979ab89b336194b$var$Dialog(props, ref) {
89
+ const $2979ab89b336194b$export$3ddf2d174ce01153 = /*#__PURE__*/ (0, $03da9$react.forwardRef)(function Dialog(props, ref) {
80
90
  let originalAriaLabelledby = props['aria-labelledby'];
81
91
  [props, ref] = (0, $c5ccf687772c0422$exports.useContextProps)(props, ref, $2979ab89b336194b$export$8b93a07348a7730c);
82
92
  let { dialogProps: dialogProps, titleProps: titleProps } = (0, $03da9$reactaria.useDialog)({
@@ -86,24 +96,27 @@ function $2979ab89b336194b$var$Dialog(props, ref) {
86
96
  'aria-labelledby': originalAriaLabelledby
87
97
  }, ref);
88
98
  let state = (0, $03da9$react.useContext)($2979ab89b336194b$export$d2f961adcb0afbe);
89
- let children = props.children;
90
- if (typeof children === 'function') children = children({
91
- close: (state === null || state === void 0 ? void 0 : state.close) || (()=>{})
92
- });
93
99
  if (!dialogProps['aria-label'] && !dialogProps['aria-labelledby']) {
94
100
  // If aria-labelledby exists on props, we know it came from context.
95
101
  // Use that as a fallback in case there is no title slot.
96
102
  if (props['aria-labelledby']) dialogProps['aria-labelledby'] = props['aria-labelledby'];
97
103
  else console.warn('If a Dialog does not contain a <Heading slot="title">, it must have an aria-label or aria-labelledby attribute for accessibility.');
98
104
  }
99
- var _props_className;
105
+ let renderProps = (0, $c5ccf687772c0422$exports.useRenderProps)({
106
+ defaultClassName: 'react-aria-Dialog',
107
+ className: props.className,
108
+ style: props.style,
109
+ children: props.children,
110
+ values: {
111
+ close: (state === null || state === void 0 ? void 0 : state.close) || (()=>{})
112
+ }
113
+ });
100
114
  return /*#__PURE__*/ (0, ($parcel$interopDefault($03da9$react))).createElement("section", {
101
115
  ...(0, $03da9$reactariautils.filterDOMProps)(props),
102
116
  ...dialogProps,
117
+ ...renderProps,
103
118
  ref: ref,
104
- slot: props.slot || undefined,
105
- style: props.style,
106
- className: (_props_className = props.className) !== null && _props_className !== void 0 ? _props_className : 'react-aria-Dialog'
119
+ slot: props.slot || undefined
107
120
  }, /*#__PURE__*/ (0, ($parcel$interopDefault($03da9$react))).createElement((0, $c5ccf687772c0422$exports.Provider), {
108
121
  values: [
109
122
  [
@@ -117,13 +130,21 @@ function $2979ab89b336194b$var$Dialog(props, ref) {
117
130
  }
118
131
  }
119
132
  }
133
+ ],
134
+ [
135
+ (0, $b856e6788a7ea5bf$exports.ButtonContext),
136
+ {
137
+ slots: {
138
+ [(0, $c5ccf687772c0422$exports.DEFAULT_SLOT)]: {},
139
+ close: {
140
+ onPress: ()=>state === null || state === void 0 ? void 0 : state.close()
141
+ }
142
+ }
143
+ }
120
144
  ]
121
145
  ]
122
- }, children));
123
- }
124
- /**
125
- * A dialog is an overlay shown above other content in an application.
126
- */ const $2979ab89b336194b$export$3ddf2d174ce01153 = /*#__PURE__*/ (0, $03da9$react.forwardRef)($2979ab89b336194b$var$Dialog);
146
+ }, renderProps.children));
147
+ });
127
148
 
128
149
 
129
150
  //# sourceMappingURL=Dialog.main.js.map
@@ -1 +1 @@
1
- {"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;CAUC;;;;;;;;AAwBM,MAAM,0DAAgB,CAAA,GAAA,0BAAY,EAA0C;AAC5E,MAAM,yDAA6B,CAAA,GAAA,0BAAY,EAA8B;AAK7E,SAAS,0CAAc,KAAyB;IACrD,IAAI,QAAQ,CAAA,GAAA,0CAAqB,EAAE;IAEnC,IAAI,YAAY,CAAA,GAAA,mBAAK,EAAqB;IAC1C,IAAI,gBAAC,YAAY,gBAAE,YAAY,EAAC,GAAG,CAAA,GAAA,kCAAgB,EAAE;QAAC,MAAM;IAAQ,GAAG,OAAO;IAE9E,uEAAuE;IACvE,+EAA+E;IAC/E,0EAA0E;IAC1E,qDAAqD;IACrD,aAAa,EAAE,GAAG,CAAA,GAAA,sBAAI;IACtB,YAAY,CAAC,kBAAkB,GAAG,aAAa,EAAE;IAEjD,qBACE,0DAAC,CAAA,GAAA,kCAAO;QACN,QAAQ;YACN;gBAAC;gBAA4B;aAAM;YACnC;gBAAC;gBAAe;aAAa;YAC7B;gBAAC,CAAA,GAAA,wCAAa;gBAAG;oBAAC,SAAS;oBAAiB,YAAY;gBAAS;aAAE;SACpE;qBACD,0DAAC,CAAA,GAAA,2CAAa;QAAG,GAAG,YAAY;QAAE,KAAK;QAAW,WAAW,MAAM,MAAM;OACtE,MAAM,QAAQ;AAIvB;AAEA,SAAS,6BAAO,KAAkB,EAAE,GAA8B;IAChE,IAAI,yBAAyB,KAAK,CAAC,kBAAkB;IACrD,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,OAAO,KAAK;IAC3C,IAAI,eAAC,WAAW,cAAE,UAAU,EAAC,GAAG,CAAA,GAAA,0BAAQ,EAAE;QACxC,GAAG,KAAK;QACR,qDAAqD;QACrD,uCAAuC;QACvC,mBAAmB;IACrB,GAAG;IACH,IAAI,QAAQ,CAAA,GAAA,uBAAS,EAAE;IAEvB,IAAI,WAAW,MAAM,QAAQ;IAC7B,IAAI,OAAO,aAAa,YACtB,WAAW,SAAS;QAClB,OAAO,CAAA,kBAAA,4BAAA,MAAO,KAAK,KAAK,CAAA,KAAO,CAAA;IACjC;IAGF,IAAI,CAAC,WAAW,CAAC,aAAa,IAAI,CAAC,WAAW,CAAC,kBAAkB;QAC/D,oEAAoE;QACpE,yDAAyD;QACzD,IAAI,KAAK,CAAC,kBAAkB,EAC1B,WAAW,CAAC,kBAAkB,GAAG,KAAK,CAAC,kBAAkB;aAEzD,QAAQ,IAAI,CAAC;;QAWF;IAPf,qBACE,0DAAC;QACE,GAAG,CAAA,GAAA,oCAAa,EAAE,MAAM;QACxB,GAAG,WAAW;QACf,KAAK;QACL,MAAM,MAAM,IAAI,IAAI;QACpB,OAAO,MAAM,KAAK;QAClB,WAAW,CAAA,mBAAA,MAAM,SAAS,cAAf,8BAAA,mBAAmB;qBAC9B,0DAAC,CAAA,GAAA,kCAAO;QACN,QAAQ;YACN;gBAAC,CAAA,GAAA,wCAAa;gBAAG;oBACf,OAAO;wBACL,CAAC,CAAA,GAAA,sCAAW,EAAE,EAAE,CAAC;wBACjB,OAAO;4BAAC,GAAG,UAAU;4BAAE,OAAO;wBAAC;oBACjC;gBACF;aAAE;SACH;OACA;AAIT;AAEA;;CAEC,GACD,MAAM,4CAAwB,AAAd,WAAW,GAAI,CAAA,GAAA,uBAAS,EAAqB","sources":["packages/react-aria-components/src/Dialog.tsx"],"sourcesContent":["/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport {AriaDialogProps, useDialog, useId, useOverlayTrigger} from 'react-aria';\nimport {ContextValue, DEFAULT_SLOT, Provider, SlotProps, StyleProps, useContextProps} from './utils';\nimport {filterDOMProps} from '@react-aria/utils';\nimport {forwardRefType} from '@react-types/shared';\nimport {HeadingContext} from './RSPContexts';\nimport {OverlayTriggerProps, OverlayTriggerState, useOverlayTriggerState} from 'react-stately';\nimport {PopoverContext} from './Popover';\nimport {PressResponder} from '@react-aria/interactions';\nimport React, {createContext, ForwardedRef, forwardRef, ReactNode, useContext, useRef} from 'react';\n\nexport interface DialogTriggerProps extends OverlayTriggerProps {\n children: ReactNode\n}\n\ninterface DialogRenderProps {\n close: () => void\n}\n\nexport interface DialogProps extends AriaDialogProps, StyleProps, SlotProps {\n /** Children of the dialog. A function may be provided to access a function to close the dialog. */\n children?: ReactNode | ((opts: DialogRenderProps) => ReactNode)\n}\n\nexport const DialogContext = createContext<ContextValue<DialogProps, HTMLElement>>(null);\nexport const OverlayTriggerStateContext = createContext<OverlayTriggerState | null>(null);\n\n/**\n * A DialogTrigger opens a dialog when a trigger element is pressed.\n */\nexport function DialogTrigger(props: DialogTriggerProps) {\n let state = useOverlayTriggerState(props);\n\n let buttonRef = useRef<HTMLButtonElement>(null);\n let {triggerProps, overlayProps} = useOverlayTrigger({type: 'dialog'}, state, buttonRef);\n\n // Label dialog by the trigger as a fallback if there is no title slot.\n // This is done in RAC instead of hooks because otherwise we cannot distinguish\n // between context and props. Normally aria-labelledby overrides the title\n // but when sent by context we want the title to win.\n triggerProps.id = useId();\n overlayProps['aria-labelledby'] = triggerProps.id;\n\n return (\n <Provider\n values={[\n [OverlayTriggerStateContext, state],\n [DialogContext, overlayProps],\n [PopoverContext, {trigger: 'DialogTrigger', triggerRef: buttonRef}]\n ]}>\n <PressResponder {...triggerProps} ref={buttonRef} isPressed={state.isOpen}>\n {props.children}\n </PressResponder>\n </Provider>\n );\n}\n\nfunction Dialog(props: DialogProps, ref: ForwardedRef<HTMLElement>) {\n let originalAriaLabelledby = props['aria-labelledby'];\n [props, ref] = useContextProps(props, ref, DialogContext);\n let {dialogProps, titleProps} = useDialog({\n ...props,\n // Only pass aria-labelledby from props, not context.\n // Context is used as a fallback below.\n 'aria-labelledby': originalAriaLabelledby\n }, ref);\n let state = useContext(OverlayTriggerStateContext);\n\n let children = props.children;\n if (typeof children === 'function') {\n children = children({\n close: state?.close || (() => {})\n });\n }\n\n if (!dialogProps['aria-label'] && !dialogProps['aria-labelledby']) {\n // If aria-labelledby exists on props, we know it came from context.\n // Use that as a fallback in case there is no title slot.\n if (props['aria-labelledby']) {\n dialogProps['aria-labelledby'] = props['aria-labelledby'];\n } else {\n console.warn('If a Dialog does not contain a <Heading slot=\"title\">, it must have an aria-label or aria-labelledby attribute for accessibility.');\n }\n }\n\n return (\n <section\n {...filterDOMProps(props)}\n {...dialogProps}\n ref={ref}\n slot={props.slot || undefined}\n style={props.style}\n className={props.className ?? 'react-aria-Dialog'}>\n <Provider\n values={[\n [HeadingContext, {\n slots: {\n [DEFAULT_SLOT]: {},\n title: {...titleProps, level: 2}\n }\n }]\n ]}>\n {children}\n </Provider>\n </section>\n );\n}\n\n/**\n * A dialog is an overlay shown above other content in an application.\n */\nconst _Dialog = /*#__PURE__*/ (forwardRef as forwardRefType)(Dialog);\nexport {_Dialog as Dialog};\n"],"names":[],"version":3,"file":"Dialog.main.js.map"}
1
+ {"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;CAUC;;;;;;;;;;AA0BM,MAAM,0DAAgB,CAAA,GAAA,0BAAY,EAA0C;AAC5E,MAAM,yDAA6B,CAAA,GAAA,0BAAY,EAA8B;AAK7E,SAAS,0CAAc,KAAyB;IACrD,sGAAsG;IACtG,qCAAqC;IACrC,IAAI,QAAQ,CAAA,GAAA,uCAAkB,EAAE;IAEhC,IAAI,YAAY,CAAA,GAAA,mBAAK,EAAqB;IAC1C,IAAI,gBAAC,YAAY,gBAAE,YAAY,EAAC,GAAG,CAAA,GAAA,kCAAgB,EAAE;QAAC,MAAM;IAAQ,GAAG,OAAO;IAE9E,uEAAuE;IACvE,+EAA+E;IAC/E,0EAA0E;IAC1E,qDAAqD;IACrD,aAAa,EAAE,GAAG,CAAA,GAAA,sBAAI;IACtB,YAAY,CAAC,kBAAkB,GAAG,aAAa,EAAE;IAEjD,qBACE,0DAAC,CAAA,GAAA,kCAAO;QACN,QAAQ;YACN;gBAAC;gBAA4B;aAAM;YACnC;gBAAC,CAAA,GAAA,qDAA0B;gBAAG;aAAM;YACpC;gBAAC;gBAAe;aAAa;YAC7B;gBAAC,CAAA,GAAA,wCAAa;gBAAG;oBAAC,SAAS;oBAAiB,YAAY;gBAAS;aAAE;SACpE;qBACD,0DAAC,CAAA,GAAA,2CAAa;QAAG,GAAG,YAAY;QAAE,KAAK;QAAW,WAAW,MAAM,MAAM;OACtE,MAAM,QAAQ;AAIvB;AAKO,MAAM,4CAAuB,AAAd,WAAW,GAAI,CAAA,GAAA,uBAAS,EAAqB,SAAS,OAAO,KAAkB,EAAE,GAA8B;IACnI,IAAI,yBAAyB,KAAK,CAAC,kBAAkB;IACrD,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,OAAO,KAAK;IAC3C,IAAI,eAAC,WAAW,cAAE,UAAU,EAAC,GAAG,CAAA,GAAA,0BAAQ,EAAE;QACxC,GAAG,KAAK;QACR,qDAAqD;QACrD,uCAAuC;QACvC,mBAAmB;IACrB,GAAG;IACH,IAAI,QAAQ,CAAA,GAAA,uBAAS,EAAE;IAEvB,IAAI,CAAC,WAAW,CAAC,aAAa,IAAI,CAAC,WAAW,CAAC,kBAAkB;QAC/D,oEAAoE;QACpE,yDAAyD;QACzD,IAAI,KAAK,CAAC,kBAAkB,EAC1B,WAAW,CAAC,kBAAkB,GAAG,KAAK,CAAC,kBAAkB;aAEzD,QAAQ,IAAI,CAAC;;IAIjB,IAAI,cAAc,CAAA,GAAA,wCAAa,EAAE;QAC/B,kBAAkB;QAClB,WAAW,MAAM,SAAS;QAC1B,OAAO,MAAM,KAAK;QAClB,UAAU,MAAM,QAAQ;QACxB,QAAQ;YACN,OAAO,CAAA,kBAAA,4BAAA,MAAO,KAAK,KAAK,CAAA,KAAO,CAAA;QACjC;IACF;IAEA,qBACE,0DAAC;QACE,GAAG,CAAA,GAAA,oCAAa,EAAE,MAAM;QACxB,GAAG,WAAW;QACd,GAAG,WAAW;QACf,KAAK;QACL,MAAM,MAAM,IAAI,IAAI;qBACpB,0DAAC,CAAA,GAAA,kCAAO;QACN,QAAQ;YACN;gBAAC,CAAA,GAAA,wCAAa;gBAAG;oBACf,OAAO;wBACL,CAAC,CAAA,GAAA,sCAAW,EAAE,EAAE,CAAC;wBACjB,OAAO;4BAAC,GAAG,UAAU;4BAAE,OAAO;wBAAC;oBACjC;gBACF;aAAE;YACF;gBAAC,CAAA,GAAA,uCAAY;gBAAG;oBACd,OAAO;wBACL,CAAC,CAAA,GAAA,sCAAW,EAAE,EAAE,CAAC;wBACjB,OAAO;4BACL,SAAS,IAAM,kBAAA,4BAAA,MAAO,KAAK;wBAC7B;oBACF;gBACF;aAAE;SACH;OACA,YAAY,QAAQ;AAI7B","sources":["packages/react-aria-components/src/Dialog.tsx"],"sourcesContent":["/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport {AriaDialogProps, useDialog, useId, useOverlayTrigger} from 'react-aria';\nimport {ButtonContext} from './Button';\nimport {ContextValue, DEFAULT_SLOT, Provider, SlotProps, StyleProps, useContextProps, useRenderProps} from './utils';\nimport {filterDOMProps} from '@react-aria/utils';\nimport {forwardRefType} from '@react-types/shared';\nimport {HeadingContext} from './RSPContexts';\nimport {OverlayTriggerProps, OverlayTriggerState, useMenuTriggerState} from 'react-stately';\nimport {PopoverContext} from './Popover';\nimport {PressResponder} from '@react-aria/interactions';\nimport React, {createContext, ForwardedRef, forwardRef, ReactNode, useContext, useRef} from 'react';\nimport {RootMenuTriggerStateContext} from './Menu';\n\nexport interface DialogTriggerProps extends OverlayTriggerProps {\n children: ReactNode\n}\n\ninterface DialogRenderProps {\n close: () => void\n}\n\nexport interface DialogProps extends AriaDialogProps, StyleProps, SlotProps {\n /** Children of the dialog. A function may be provided to access a function to close the dialog. */\n children?: ReactNode | ((opts: DialogRenderProps) => ReactNode)\n}\n\nexport const DialogContext = createContext<ContextValue<DialogProps, HTMLElement>>(null);\nexport const OverlayTriggerStateContext = createContext<OverlayTriggerState | null>(null);\n\n/**\n * A DialogTrigger opens a dialog when a trigger element is pressed.\n */\nexport function DialogTrigger(props: DialogTriggerProps) {\n // Use useMenuTriggerState instead of useOverlayTriggerState in case a menu is embedded in the dialog.\n // This is needed to handle submenus.\n let state = useMenuTriggerState(props);\n\n let buttonRef = useRef<HTMLButtonElement>(null);\n let {triggerProps, overlayProps} = useOverlayTrigger({type: 'dialog'}, state, buttonRef);\n\n // Label dialog by the trigger as a fallback if there is no title slot.\n // This is done in RAC instead of hooks because otherwise we cannot distinguish\n // between context and props. Normally aria-labelledby overrides the title\n // but when sent by context we want the title to win.\n triggerProps.id = useId();\n overlayProps['aria-labelledby'] = triggerProps.id;\n\n return (\n <Provider\n values={[\n [OverlayTriggerStateContext, state],\n [RootMenuTriggerStateContext, state],\n [DialogContext, overlayProps],\n [PopoverContext, {trigger: 'DialogTrigger', triggerRef: buttonRef}]\n ]}>\n <PressResponder {...triggerProps} ref={buttonRef} isPressed={state.isOpen}>\n {props.children}\n </PressResponder>\n </Provider>\n );\n}\n\n/**\n * A dialog is an overlay shown above other content in an application.\n */\nexport const Dialog = /*#__PURE__*/ (forwardRef as forwardRefType)(function Dialog(props: DialogProps, ref: ForwardedRef<HTMLElement>) {\n let originalAriaLabelledby = props['aria-labelledby'];\n [props, ref] = useContextProps(props, ref, DialogContext);\n let {dialogProps, titleProps} = useDialog({\n ...props,\n // Only pass aria-labelledby from props, not context.\n // Context is used as a fallback below.\n 'aria-labelledby': originalAriaLabelledby\n }, ref);\n let state = useContext(OverlayTriggerStateContext);\n\n if (!dialogProps['aria-label'] && !dialogProps['aria-labelledby']) {\n // If aria-labelledby exists on props, we know it came from context.\n // Use that as a fallback in case there is no title slot.\n if (props['aria-labelledby']) {\n dialogProps['aria-labelledby'] = props['aria-labelledby'];\n } else {\n console.warn('If a Dialog does not contain a <Heading slot=\"title\">, it must have an aria-label or aria-labelledby attribute for accessibility.');\n }\n }\n\n let renderProps = useRenderProps({\n defaultClassName: 'react-aria-Dialog',\n className: props.className,\n style: props.style,\n children: props.children,\n values: {\n close: state?.close || (() => {})\n }\n });\n\n return (\n <section\n {...filterDOMProps(props)}\n {...dialogProps}\n {...renderProps}\n ref={ref}\n slot={props.slot || undefined}>\n <Provider\n values={[\n [HeadingContext, {\n slots: {\n [DEFAULT_SLOT]: {},\n title: {...titleProps, level: 2}\n }\n }],\n [ButtonContext, {\n slots: {\n [DEFAULT_SLOT]: {},\n close: {\n onPress: () => state?.close()\n }\n }\n }]\n ]}>\n {renderProps.children}\n </Provider>\n </section>\n );\n});\n"],"names":[],"version":3,"file":"Dialog.main.js.map"}
package/dist/Dialog.mjs CHANGED
@@ -1,11 +1,13 @@
1
- import {DEFAULT_SLOT as $64fa3d84918910a7$export$c62b8e45d58ddad9, Provider as $64fa3d84918910a7$export$2881499e37b75b9a, useContextProps as $64fa3d84918910a7$export$29f1550f4b0d4415} from "./utils.mjs";
1
+ import {ButtonContext as $d2b4bc8c273e7be6$export$24d547caef80ccd1} from "./Button.mjs";
2
+ import {DEFAULT_SLOT as $64fa3d84918910a7$export$c62b8e45d58ddad9, Provider as $64fa3d84918910a7$export$2881499e37b75b9a, useContextProps as $64fa3d84918910a7$export$29f1550f4b0d4415, useRenderProps as $64fa3d84918910a7$export$4d86445c2cf5e3} from "./utils.mjs";
2
3
  import {HeadingContext as $4e85f108e88277b8$export$d688439359537581} from "./RSPContexts.mjs";
3
4
  import {PopoverContext as $07b14b47974efb58$export$9b9a0cd73afb7ca4} from "./Popover.mjs";
5
+ import {RootMenuTriggerStateContext as $3674c52c6b3c5bce$export$795aec4671cbae19} from "./Menu.mjs";
4
6
  import {useOverlayTrigger as $6IYYA$useOverlayTrigger, useId as $6IYYA$useId, useDialog as $6IYYA$useDialog} from "react-aria";
5
7
  import {filterDOMProps as $6IYYA$filterDOMProps} from "@react-aria/utils";
6
- import {useOverlayTriggerState as $6IYYA$useOverlayTriggerState} from "react-stately";
8
+ import {useMenuTriggerState as $6IYYA$useMenuTriggerState} from "react-stately";
7
9
  import {PressResponder as $6IYYA$PressResponder} from "@react-aria/interactions";
8
- import $6IYYA$react, {createContext as $6IYYA$createContext, useRef as $6IYYA$useRef, useContext as $6IYYA$useContext, forwardRef as $6IYYA$forwardRef} from "react";
10
+ import $6IYYA$react, {createContext as $6IYYA$createContext, useRef as $6IYYA$useRef, forwardRef as $6IYYA$forwardRef, useContext as $6IYYA$useContext} from "react";
9
11
 
10
12
  /*
11
13
  * Copyright 2022 Adobe. All rights reserved.
@@ -25,10 +27,14 @@ import $6IYYA$react, {createContext as $6IYYA$createContext, useRef as $6IYYA$us
25
27
 
26
28
 
27
29
 
30
+
31
+
28
32
  const $de32f1b87079253c$export$8b93a07348a7730c = /*#__PURE__*/ (0, $6IYYA$createContext)(null);
29
33
  const $de32f1b87079253c$export$d2f961adcb0afbe = /*#__PURE__*/ (0, $6IYYA$createContext)(null);
30
34
  function $de32f1b87079253c$export$2e1e1122cf0cba88(props) {
31
- let state = (0, $6IYYA$useOverlayTriggerState)(props);
35
+ // Use useMenuTriggerState instead of useOverlayTriggerState in case a menu is embedded in the dialog.
36
+ // This is needed to handle submenus.
37
+ let state = (0, $6IYYA$useMenuTriggerState)(props);
32
38
  let buttonRef = (0, $6IYYA$useRef)(null);
33
39
  let { triggerProps: triggerProps, overlayProps: overlayProps } = (0, $6IYYA$useOverlayTrigger)({
34
40
  type: 'dialog'
@@ -45,6 +51,10 @@ function $de32f1b87079253c$export$2e1e1122cf0cba88(props) {
45
51
  $de32f1b87079253c$export$d2f961adcb0afbe,
46
52
  state
47
53
  ],
54
+ [
55
+ (0, $3674c52c6b3c5bce$export$795aec4671cbae19),
56
+ state
57
+ ],
48
58
  [
49
59
  $de32f1b87079253c$export$8b93a07348a7730c,
50
60
  overlayProps
@@ -63,7 +73,7 @@ function $de32f1b87079253c$export$2e1e1122cf0cba88(props) {
63
73
  isPressed: state.isOpen
64
74
  }, props.children));
65
75
  }
66
- function $de32f1b87079253c$var$Dialog(props, ref) {
76
+ const $de32f1b87079253c$export$3ddf2d174ce01153 = /*#__PURE__*/ (0, $6IYYA$forwardRef)(function Dialog(props, ref) {
67
77
  let originalAriaLabelledby = props['aria-labelledby'];
68
78
  [props, ref] = (0, $64fa3d84918910a7$export$29f1550f4b0d4415)(props, ref, $de32f1b87079253c$export$8b93a07348a7730c);
69
79
  let { dialogProps: dialogProps, titleProps: titleProps } = (0, $6IYYA$useDialog)({
@@ -73,24 +83,27 @@ function $de32f1b87079253c$var$Dialog(props, ref) {
73
83
  'aria-labelledby': originalAriaLabelledby
74
84
  }, ref);
75
85
  let state = (0, $6IYYA$useContext)($de32f1b87079253c$export$d2f961adcb0afbe);
76
- let children = props.children;
77
- if (typeof children === 'function') children = children({
78
- close: (state === null || state === void 0 ? void 0 : state.close) || (()=>{})
79
- });
80
86
  if (!dialogProps['aria-label'] && !dialogProps['aria-labelledby']) {
81
87
  // If aria-labelledby exists on props, we know it came from context.
82
88
  // Use that as a fallback in case there is no title slot.
83
89
  if (props['aria-labelledby']) dialogProps['aria-labelledby'] = props['aria-labelledby'];
84
90
  else console.warn('If a Dialog does not contain a <Heading slot="title">, it must have an aria-label or aria-labelledby attribute for accessibility.');
85
91
  }
86
- var _props_className;
92
+ let renderProps = (0, $64fa3d84918910a7$export$4d86445c2cf5e3)({
93
+ defaultClassName: 'react-aria-Dialog',
94
+ className: props.className,
95
+ style: props.style,
96
+ children: props.children,
97
+ values: {
98
+ close: (state === null || state === void 0 ? void 0 : state.close) || (()=>{})
99
+ }
100
+ });
87
101
  return /*#__PURE__*/ (0, $6IYYA$react).createElement("section", {
88
102
  ...(0, $6IYYA$filterDOMProps)(props),
89
103
  ...dialogProps,
104
+ ...renderProps,
90
105
  ref: ref,
91
- slot: props.slot || undefined,
92
- style: props.style,
93
- className: (_props_className = props.className) !== null && _props_className !== void 0 ? _props_className : 'react-aria-Dialog'
106
+ slot: props.slot || undefined
94
107
  }, /*#__PURE__*/ (0, $6IYYA$react).createElement((0, $64fa3d84918910a7$export$2881499e37b75b9a), {
95
108
  values: [
96
109
  [
@@ -104,13 +117,21 @@ function $de32f1b87079253c$var$Dialog(props, ref) {
104
117
  }
105
118
  }
106
119
  }
120
+ ],
121
+ [
122
+ (0, $d2b4bc8c273e7be6$export$24d547caef80ccd1),
123
+ {
124
+ slots: {
125
+ [(0, $64fa3d84918910a7$export$c62b8e45d58ddad9)]: {},
126
+ close: {
127
+ onPress: ()=>state === null || state === void 0 ? void 0 : state.close()
128
+ }
129
+ }
130
+ }
107
131
  ]
108
132
  ]
109
- }, children));
110
- }
111
- /**
112
- * A dialog is an overlay shown above other content in an application.
113
- */ const $de32f1b87079253c$export$3ddf2d174ce01153 = /*#__PURE__*/ (0, $6IYYA$forwardRef)($de32f1b87079253c$var$Dialog);
133
+ }, renderProps.children));
134
+ });
114
135
 
115
136
 
116
137
  export {$de32f1b87079253c$export$8b93a07348a7730c as DialogContext, $de32f1b87079253c$export$d2f961adcb0afbe as OverlayTriggerStateContext, $de32f1b87079253c$export$2e1e1122cf0cba88 as DialogTrigger, $de32f1b87079253c$export$3ddf2d174ce01153 as Dialog};
@@ -1,11 +1,13 @@
1
- import {DEFAULT_SLOT as $64fa3d84918910a7$export$c62b8e45d58ddad9, Provider as $64fa3d84918910a7$export$2881499e37b75b9a, useContextProps as $64fa3d84918910a7$export$29f1550f4b0d4415} from "./utils.module.js";
1
+ import {ButtonContext as $d2b4bc8c273e7be6$export$24d547caef80ccd1} from "./Button.module.js";
2
+ import {DEFAULT_SLOT as $64fa3d84918910a7$export$c62b8e45d58ddad9, Provider as $64fa3d84918910a7$export$2881499e37b75b9a, useContextProps as $64fa3d84918910a7$export$29f1550f4b0d4415, useRenderProps as $64fa3d84918910a7$export$4d86445c2cf5e3} from "./utils.module.js";
2
3
  import {HeadingContext as $4e85f108e88277b8$export$d688439359537581} from "./RSPContexts.module.js";
3
4
  import {PopoverContext as $07b14b47974efb58$export$9b9a0cd73afb7ca4} from "./Popover.module.js";
5
+ import {RootMenuTriggerStateContext as $3674c52c6b3c5bce$export$795aec4671cbae19} from "./Menu.module.js";
4
6
  import {useOverlayTrigger as $6IYYA$useOverlayTrigger, useId as $6IYYA$useId, useDialog as $6IYYA$useDialog} from "react-aria";
5
7
  import {filterDOMProps as $6IYYA$filterDOMProps} from "@react-aria/utils";
6
- import {useOverlayTriggerState as $6IYYA$useOverlayTriggerState} from "react-stately";
8
+ import {useMenuTriggerState as $6IYYA$useMenuTriggerState} from "react-stately";
7
9
  import {PressResponder as $6IYYA$PressResponder} from "@react-aria/interactions";
8
- import $6IYYA$react, {createContext as $6IYYA$createContext, useRef as $6IYYA$useRef, useContext as $6IYYA$useContext, forwardRef as $6IYYA$forwardRef} from "react";
10
+ import $6IYYA$react, {createContext as $6IYYA$createContext, useRef as $6IYYA$useRef, forwardRef as $6IYYA$forwardRef, useContext as $6IYYA$useContext} from "react";
9
11
 
10
12
  /*
11
13
  * Copyright 2022 Adobe. All rights reserved.
@@ -25,10 +27,14 @@ import $6IYYA$react, {createContext as $6IYYA$createContext, useRef as $6IYYA$us
25
27
 
26
28
 
27
29
 
30
+
31
+
28
32
  const $de32f1b87079253c$export$8b93a07348a7730c = /*#__PURE__*/ (0, $6IYYA$createContext)(null);
29
33
  const $de32f1b87079253c$export$d2f961adcb0afbe = /*#__PURE__*/ (0, $6IYYA$createContext)(null);
30
34
  function $de32f1b87079253c$export$2e1e1122cf0cba88(props) {
31
- let state = (0, $6IYYA$useOverlayTriggerState)(props);
35
+ // Use useMenuTriggerState instead of useOverlayTriggerState in case a menu is embedded in the dialog.
36
+ // This is needed to handle submenus.
37
+ let state = (0, $6IYYA$useMenuTriggerState)(props);
32
38
  let buttonRef = (0, $6IYYA$useRef)(null);
33
39
  let { triggerProps: triggerProps, overlayProps: overlayProps } = (0, $6IYYA$useOverlayTrigger)({
34
40
  type: 'dialog'
@@ -45,6 +51,10 @@ function $de32f1b87079253c$export$2e1e1122cf0cba88(props) {
45
51
  $de32f1b87079253c$export$d2f961adcb0afbe,
46
52
  state
47
53
  ],
54
+ [
55
+ (0, $3674c52c6b3c5bce$export$795aec4671cbae19),
56
+ state
57
+ ],
48
58
  [
49
59
  $de32f1b87079253c$export$8b93a07348a7730c,
50
60
  overlayProps
@@ -63,7 +73,7 @@ function $de32f1b87079253c$export$2e1e1122cf0cba88(props) {
63
73
  isPressed: state.isOpen
64
74
  }, props.children));
65
75
  }
66
- function $de32f1b87079253c$var$Dialog(props, ref) {
76
+ const $de32f1b87079253c$export$3ddf2d174ce01153 = /*#__PURE__*/ (0, $6IYYA$forwardRef)(function Dialog(props, ref) {
67
77
  let originalAriaLabelledby = props['aria-labelledby'];
68
78
  [props, ref] = (0, $64fa3d84918910a7$export$29f1550f4b0d4415)(props, ref, $de32f1b87079253c$export$8b93a07348a7730c);
69
79
  let { dialogProps: dialogProps, titleProps: titleProps } = (0, $6IYYA$useDialog)({
@@ -73,24 +83,27 @@ function $de32f1b87079253c$var$Dialog(props, ref) {
73
83
  'aria-labelledby': originalAriaLabelledby
74
84
  }, ref);
75
85
  let state = (0, $6IYYA$useContext)($de32f1b87079253c$export$d2f961adcb0afbe);
76
- let children = props.children;
77
- if (typeof children === 'function') children = children({
78
- close: (state === null || state === void 0 ? void 0 : state.close) || (()=>{})
79
- });
80
86
  if (!dialogProps['aria-label'] && !dialogProps['aria-labelledby']) {
81
87
  // If aria-labelledby exists on props, we know it came from context.
82
88
  // Use that as a fallback in case there is no title slot.
83
89
  if (props['aria-labelledby']) dialogProps['aria-labelledby'] = props['aria-labelledby'];
84
90
  else console.warn('If a Dialog does not contain a <Heading slot="title">, it must have an aria-label or aria-labelledby attribute for accessibility.');
85
91
  }
86
- var _props_className;
92
+ let renderProps = (0, $64fa3d84918910a7$export$4d86445c2cf5e3)({
93
+ defaultClassName: 'react-aria-Dialog',
94
+ className: props.className,
95
+ style: props.style,
96
+ children: props.children,
97
+ values: {
98
+ close: (state === null || state === void 0 ? void 0 : state.close) || (()=>{})
99
+ }
100
+ });
87
101
  return /*#__PURE__*/ (0, $6IYYA$react).createElement("section", {
88
102
  ...(0, $6IYYA$filterDOMProps)(props),
89
103
  ...dialogProps,
104
+ ...renderProps,
90
105
  ref: ref,
91
- slot: props.slot || undefined,
92
- style: props.style,
93
- className: (_props_className = props.className) !== null && _props_className !== void 0 ? _props_className : 'react-aria-Dialog'
106
+ slot: props.slot || undefined
94
107
  }, /*#__PURE__*/ (0, $6IYYA$react).createElement((0, $64fa3d84918910a7$export$2881499e37b75b9a), {
95
108
  values: [
96
109
  [
@@ -104,13 +117,21 @@ function $de32f1b87079253c$var$Dialog(props, ref) {
104
117
  }
105
118
  }
106
119
  }
120
+ ],
121
+ [
122
+ (0, $d2b4bc8c273e7be6$export$24d547caef80ccd1),
123
+ {
124
+ slots: {
125
+ [(0, $64fa3d84918910a7$export$c62b8e45d58ddad9)]: {},
126
+ close: {
127
+ onPress: ()=>state === null || state === void 0 ? void 0 : state.close()
128
+ }
129
+ }
130
+ }
107
131
  ]
108
132
  ]
109
- }, children));
110
- }
111
- /**
112
- * A dialog is an overlay shown above other content in an application.
113
- */ const $de32f1b87079253c$export$3ddf2d174ce01153 = /*#__PURE__*/ (0, $6IYYA$forwardRef)($de32f1b87079253c$var$Dialog);
133
+ }, renderProps.children));
134
+ });
114
135
 
115
136
 
116
137
  export {$de32f1b87079253c$export$8b93a07348a7730c as DialogContext, $de32f1b87079253c$export$d2f961adcb0afbe as OverlayTriggerStateContext, $de32f1b87079253c$export$2e1e1122cf0cba88 as DialogTrigger, $de32f1b87079253c$export$3ddf2d174ce01153 as Dialog};
@@ -1 +1 @@
1
- {"mappings":";;;;;;;;;AAAA;;;;;;;;;;CAUC;;;;;;;;AAwBM,MAAM,0DAAgB,CAAA,GAAA,oBAAY,EAA0C;AAC5E,MAAM,yDAA6B,CAAA,GAAA,oBAAY,EAA8B;AAK7E,SAAS,0CAAc,KAAyB;IACrD,IAAI,QAAQ,CAAA,GAAA,6BAAqB,EAAE;IAEnC,IAAI,YAAY,CAAA,GAAA,aAAK,EAAqB;IAC1C,IAAI,gBAAC,YAAY,gBAAE,YAAY,EAAC,GAAG,CAAA,GAAA,wBAAgB,EAAE;QAAC,MAAM;IAAQ,GAAG,OAAO;IAE9E,uEAAuE;IACvE,+EAA+E;IAC/E,0EAA0E;IAC1E,qDAAqD;IACrD,aAAa,EAAE,GAAG,CAAA,GAAA,YAAI;IACtB,YAAY,CAAC,kBAAkB,GAAG,aAAa,EAAE;IAEjD,qBACE,gCAAC,CAAA,GAAA,yCAAO;QACN,QAAQ;YACN;gBAAC;gBAA4B;aAAM;YACnC;gBAAC;gBAAe;aAAa;YAC7B;gBAAC,CAAA,GAAA,yCAAa;gBAAG;oBAAC,SAAS;oBAAiB,YAAY;gBAAS;aAAE;SACpE;qBACD,gCAAC,CAAA,GAAA,qBAAa;QAAG,GAAG,YAAY;QAAE,KAAK;QAAW,WAAW,MAAM,MAAM;OACtE,MAAM,QAAQ;AAIvB;AAEA,SAAS,6BAAO,KAAkB,EAAE,GAA8B;IAChE,IAAI,yBAAyB,KAAK,CAAC,kBAAkB;IACrD,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,OAAO,KAAK;IAC3C,IAAI,eAAC,WAAW,cAAE,UAAU,EAAC,GAAG,CAAA,GAAA,gBAAQ,EAAE;QACxC,GAAG,KAAK;QACR,qDAAqD;QACrD,uCAAuC;QACvC,mBAAmB;IACrB,GAAG;IACH,IAAI,QAAQ,CAAA,GAAA,iBAAS,EAAE;IAEvB,IAAI,WAAW,MAAM,QAAQ;IAC7B,IAAI,OAAO,aAAa,YACtB,WAAW,SAAS;QAClB,OAAO,CAAA,kBAAA,4BAAA,MAAO,KAAK,KAAK,CAAA,KAAO,CAAA;IACjC;IAGF,IAAI,CAAC,WAAW,CAAC,aAAa,IAAI,CAAC,WAAW,CAAC,kBAAkB;QAC/D,oEAAoE;QACpE,yDAAyD;QACzD,IAAI,KAAK,CAAC,kBAAkB,EAC1B,WAAW,CAAC,kBAAkB,GAAG,KAAK,CAAC,kBAAkB;aAEzD,QAAQ,IAAI,CAAC;;QAWF;IAPf,qBACE,gCAAC;QACE,GAAG,CAAA,GAAA,qBAAa,EAAE,MAAM;QACxB,GAAG,WAAW;QACf,KAAK;QACL,MAAM,MAAM,IAAI,IAAI;QACpB,OAAO,MAAM,KAAK;QAClB,WAAW,CAAA,mBAAA,MAAM,SAAS,cAAf,8BAAA,mBAAmB;qBAC9B,gCAAC,CAAA,GAAA,yCAAO;QACN,QAAQ;YACN;gBAAC,CAAA,GAAA,yCAAa;gBAAG;oBACf,OAAO;wBACL,CAAC,CAAA,GAAA,yCAAW,EAAE,EAAE,CAAC;wBACjB,OAAO;4BAAC,GAAG,UAAU;4BAAE,OAAO;wBAAC;oBACjC;gBACF;aAAE;SACH;OACA;AAIT;AAEA;;CAEC,GACD,MAAM,4CAAwB,AAAd,WAAW,GAAI,CAAA,GAAA,iBAAS,EAAqB","sources":["packages/react-aria-components/src/Dialog.tsx"],"sourcesContent":["/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport {AriaDialogProps, useDialog, useId, useOverlayTrigger} from 'react-aria';\nimport {ContextValue, DEFAULT_SLOT, Provider, SlotProps, StyleProps, useContextProps} from './utils';\nimport {filterDOMProps} from '@react-aria/utils';\nimport {forwardRefType} from '@react-types/shared';\nimport {HeadingContext} from './RSPContexts';\nimport {OverlayTriggerProps, OverlayTriggerState, useOverlayTriggerState} from 'react-stately';\nimport {PopoverContext} from './Popover';\nimport {PressResponder} from '@react-aria/interactions';\nimport React, {createContext, ForwardedRef, forwardRef, ReactNode, useContext, useRef} from 'react';\n\nexport interface DialogTriggerProps extends OverlayTriggerProps {\n children: ReactNode\n}\n\ninterface DialogRenderProps {\n close: () => void\n}\n\nexport interface DialogProps extends AriaDialogProps, StyleProps, SlotProps {\n /** Children of the dialog. A function may be provided to access a function to close the dialog. */\n children?: ReactNode | ((opts: DialogRenderProps) => ReactNode)\n}\n\nexport const DialogContext = createContext<ContextValue<DialogProps, HTMLElement>>(null);\nexport const OverlayTriggerStateContext = createContext<OverlayTriggerState | null>(null);\n\n/**\n * A DialogTrigger opens a dialog when a trigger element is pressed.\n */\nexport function DialogTrigger(props: DialogTriggerProps) {\n let state = useOverlayTriggerState(props);\n\n let buttonRef = useRef<HTMLButtonElement>(null);\n let {triggerProps, overlayProps} = useOverlayTrigger({type: 'dialog'}, state, buttonRef);\n\n // Label dialog by the trigger as a fallback if there is no title slot.\n // This is done in RAC instead of hooks because otherwise we cannot distinguish\n // between context and props. Normally aria-labelledby overrides the title\n // but when sent by context we want the title to win.\n triggerProps.id = useId();\n overlayProps['aria-labelledby'] = triggerProps.id;\n\n return (\n <Provider\n values={[\n [OverlayTriggerStateContext, state],\n [DialogContext, overlayProps],\n [PopoverContext, {trigger: 'DialogTrigger', triggerRef: buttonRef}]\n ]}>\n <PressResponder {...triggerProps} ref={buttonRef} isPressed={state.isOpen}>\n {props.children}\n </PressResponder>\n </Provider>\n );\n}\n\nfunction Dialog(props: DialogProps, ref: ForwardedRef<HTMLElement>) {\n let originalAriaLabelledby = props['aria-labelledby'];\n [props, ref] = useContextProps(props, ref, DialogContext);\n let {dialogProps, titleProps} = useDialog({\n ...props,\n // Only pass aria-labelledby from props, not context.\n // Context is used as a fallback below.\n 'aria-labelledby': originalAriaLabelledby\n }, ref);\n let state = useContext(OverlayTriggerStateContext);\n\n let children = props.children;\n if (typeof children === 'function') {\n children = children({\n close: state?.close || (() => {})\n });\n }\n\n if (!dialogProps['aria-label'] && !dialogProps['aria-labelledby']) {\n // If aria-labelledby exists on props, we know it came from context.\n // Use that as a fallback in case there is no title slot.\n if (props['aria-labelledby']) {\n dialogProps['aria-labelledby'] = props['aria-labelledby'];\n } else {\n console.warn('If a Dialog does not contain a <Heading slot=\"title\">, it must have an aria-label or aria-labelledby attribute for accessibility.');\n }\n }\n\n return (\n <section\n {...filterDOMProps(props)}\n {...dialogProps}\n ref={ref}\n slot={props.slot || undefined}\n style={props.style}\n className={props.className ?? 'react-aria-Dialog'}>\n <Provider\n values={[\n [HeadingContext, {\n slots: {\n [DEFAULT_SLOT]: {},\n title: {...titleProps, level: 2}\n }\n }]\n ]}>\n {children}\n </Provider>\n </section>\n );\n}\n\n/**\n * A dialog is an overlay shown above other content in an application.\n */\nconst _Dialog = /*#__PURE__*/ (forwardRef as forwardRefType)(Dialog);\nexport {_Dialog as Dialog};\n"],"names":[],"version":3,"file":"Dialog.module.js.map"}
1
+ {"mappings":";;;;;;;;;;;AAAA;;;;;;;;;;CAUC;;;;;;;;;;AA0BM,MAAM,0DAAgB,CAAA,GAAA,oBAAY,EAA0C;AAC5E,MAAM,yDAA6B,CAAA,GAAA,oBAAY,EAA8B;AAK7E,SAAS,0CAAc,KAAyB;IACrD,sGAAsG;IACtG,qCAAqC;IACrC,IAAI,QAAQ,CAAA,GAAA,0BAAkB,EAAE;IAEhC,IAAI,YAAY,CAAA,GAAA,aAAK,EAAqB;IAC1C,IAAI,gBAAC,YAAY,gBAAE,YAAY,EAAC,GAAG,CAAA,GAAA,wBAAgB,EAAE;QAAC,MAAM;IAAQ,GAAG,OAAO;IAE9E,uEAAuE;IACvE,+EAA+E;IAC/E,0EAA0E;IAC1E,qDAAqD;IACrD,aAAa,EAAE,GAAG,CAAA,GAAA,YAAI;IACtB,YAAY,CAAC,kBAAkB,GAAG,aAAa,EAAE;IAEjD,qBACE,gCAAC,CAAA,GAAA,yCAAO;QACN,QAAQ;YACN;gBAAC;gBAA4B;aAAM;YACnC;gBAAC,CAAA,GAAA,yCAA0B;gBAAG;aAAM;YACpC;gBAAC;gBAAe;aAAa;YAC7B;gBAAC,CAAA,GAAA,yCAAa;gBAAG;oBAAC,SAAS;oBAAiB,YAAY;gBAAS;aAAE;SACpE;qBACD,gCAAC,CAAA,GAAA,qBAAa;QAAG,GAAG,YAAY;QAAE,KAAK;QAAW,WAAW,MAAM,MAAM;OACtE,MAAM,QAAQ;AAIvB;AAKO,MAAM,4CAAuB,AAAd,WAAW,GAAI,CAAA,GAAA,iBAAS,EAAqB,SAAS,OAAO,KAAkB,EAAE,GAA8B;IACnI,IAAI,yBAAyB,KAAK,CAAC,kBAAkB;IACrD,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,OAAO,KAAK;IAC3C,IAAI,eAAC,WAAW,cAAE,UAAU,EAAC,GAAG,CAAA,GAAA,gBAAQ,EAAE;QACxC,GAAG,KAAK;QACR,qDAAqD;QACrD,uCAAuC;QACvC,mBAAmB;IACrB,GAAG;IACH,IAAI,QAAQ,CAAA,GAAA,iBAAS,EAAE;IAEvB,IAAI,CAAC,WAAW,CAAC,aAAa,IAAI,CAAC,WAAW,CAAC,kBAAkB;QAC/D,oEAAoE;QACpE,yDAAyD;QACzD,IAAI,KAAK,CAAC,kBAAkB,EAC1B,WAAW,CAAC,kBAAkB,GAAG,KAAK,CAAC,kBAAkB;aAEzD,QAAQ,IAAI,CAAC;;IAIjB,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,kBAAkB;QAClB,WAAW,MAAM,SAAS;QAC1B,OAAO,MAAM,KAAK;QAClB,UAAU,MAAM,QAAQ;QACxB,QAAQ;YACN,OAAO,CAAA,kBAAA,4BAAA,MAAO,KAAK,KAAK,CAAA,KAAO,CAAA;QACjC;IACF;IAEA,qBACE,gCAAC;QACE,GAAG,CAAA,GAAA,qBAAa,EAAE,MAAM;QACxB,GAAG,WAAW;QACd,GAAG,WAAW;QACf,KAAK;QACL,MAAM,MAAM,IAAI,IAAI;qBACpB,gCAAC,CAAA,GAAA,yCAAO;QACN,QAAQ;YACN;gBAAC,CAAA,GAAA,yCAAa;gBAAG;oBACf,OAAO;wBACL,CAAC,CAAA,GAAA,yCAAW,EAAE,EAAE,CAAC;wBACjB,OAAO;4BAAC,GAAG,UAAU;4BAAE,OAAO;wBAAC;oBACjC;gBACF;aAAE;YACF;gBAAC,CAAA,GAAA,yCAAY;gBAAG;oBACd,OAAO;wBACL,CAAC,CAAA,GAAA,yCAAW,EAAE,EAAE,CAAC;wBACjB,OAAO;4BACL,SAAS,IAAM,kBAAA,4BAAA,MAAO,KAAK;wBAC7B;oBACF;gBACF;aAAE;SACH;OACA,YAAY,QAAQ;AAI7B","sources":["packages/react-aria-components/src/Dialog.tsx"],"sourcesContent":["/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport {AriaDialogProps, useDialog, useId, useOverlayTrigger} from 'react-aria';\nimport {ButtonContext} from './Button';\nimport {ContextValue, DEFAULT_SLOT, Provider, SlotProps, StyleProps, useContextProps, useRenderProps} from './utils';\nimport {filterDOMProps} from '@react-aria/utils';\nimport {forwardRefType} from '@react-types/shared';\nimport {HeadingContext} from './RSPContexts';\nimport {OverlayTriggerProps, OverlayTriggerState, useMenuTriggerState} from 'react-stately';\nimport {PopoverContext} from './Popover';\nimport {PressResponder} from '@react-aria/interactions';\nimport React, {createContext, ForwardedRef, forwardRef, ReactNode, useContext, useRef} from 'react';\nimport {RootMenuTriggerStateContext} from './Menu';\n\nexport interface DialogTriggerProps extends OverlayTriggerProps {\n children: ReactNode\n}\n\ninterface DialogRenderProps {\n close: () => void\n}\n\nexport interface DialogProps extends AriaDialogProps, StyleProps, SlotProps {\n /** Children of the dialog. A function may be provided to access a function to close the dialog. */\n children?: ReactNode | ((opts: DialogRenderProps) => ReactNode)\n}\n\nexport const DialogContext = createContext<ContextValue<DialogProps, HTMLElement>>(null);\nexport const OverlayTriggerStateContext = createContext<OverlayTriggerState | null>(null);\n\n/**\n * A DialogTrigger opens a dialog when a trigger element is pressed.\n */\nexport function DialogTrigger(props: DialogTriggerProps) {\n // Use useMenuTriggerState instead of useOverlayTriggerState in case a menu is embedded in the dialog.\n // This is needed to handle submenus.\n let state = useMenuTriggerState(props);\n\n let buttonRef = useRef<HTMLButtonElement>(null);\n let {triggerProps, overlayProps} = useOverlayTrigger({type: 'dialog'}, state, buttonRef);\n\n // Label dialog by the trigger as a fallback if there is no title slot.\n // This is done in RAC instead of hooks because otherwise we cannot distinguish\n // between context and props. Normally aria-labelledby overrides the title\n // but when sent by context we want the title to win.\n triggerProps.id = useId();\n overlayProps['aria-labelledby'] = triggerProps.id;\n\n return (\n <Provider\n values={[\n [OverlayTriggerStateContext, state],\n [RootMenuTriggerStateContext, state],\n [DialogContext, overlayProps],\n [PopoverContext, {trigger: 'DialogTrigger', triggerRef: buttonRef}]\n ]}>\n <PressResponder {...triggerProps} ref={buttonRef} isPressed={state.isOpen}>\n {props.children}\n </PressResponder>\n </Provider>\n );\n}\n\n/**\n * A dialog is an overlay shown above other content in an application.\n */\nexport const Dialog = /*#__PURE__*/ (forwardRef as forwardRefType)(function Dialog(props: DialogProps, ref: ForwardedRef<HTMLElement>) {\n let originalAriaLabelledby = props['aria-labelledby'];\n [props, ref] = useContextProps(props, ref, DialogContext);\n let {dialogProps, titleProps} = useDialog({\n ...props,\n // Only pass aria-labelledby from props, not context.\n // Context is used as a fallback below.\n 'aria-labelledby': originalAriaLabelledby\n }, ref);\n let state = useContext(OverlayTriggerStateContext);\n\n if (!dialogProps['aria-label'] && !dialogProps['aria-labelledby']) {\n // If aria-labelledby exists on props, we know it came from context.\n // Use that as a fallback in case there is no title slot.\n if (props['aria-labelledby']) {\n dialogProps['aria-labelledby'] = props['aria-labelledby'];\n } else {\n console.warn('If a Dialog does not contain a <Heading slot=\"title\">, it must have an aria-label or aria-labelledby attribute for accessibility.');\n }\n }\n\n let renderProps = useRenderProps({\n defaultClassName: 'react-aria-Dialog',\n className: props.className,\n style: props.style,\n children: props.children,\n values: {\n close: state?.close || (() => {})\n }\n });\n\n return (\n <section\n {...filterDOMProps(props)}\n {...dialogProps}\n {...renderProps}\n ref={ref}\n slot={props.slot || undefined}>\n <Provider\n values={[\n [HeadingContext, {\n slots: {\n [DEFAULT_SLOT]: {},\n title: {...titleProps, level: 2}\n }\n }],\n [ButtonContext, {\n slots: {\n [DEFAULT_SLOT]: {},\n close: {\n onPress: () => state?.close()\n }\n }\n }]\n ]}>\n {renderProps.children}\n </Provider>\n </section>\n );\n});\n"],"names":[],"version":3,"file":"Dialog.module.js.map"}