@proyecto-viviana/solidaria-components 0.5.0 → 0.7.0-rc.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 (561) hide show
  1. package/LICENSE-APACHE-2.0 +201 -0
  2. package/NOTICE +91 -0
  3. package/README.md +4 -7
  4. package/dist/ActionBar.d.ts +2 -10
  5. package/dist/ActionBar.d.ts.map +1 -1
  6. package/dist/ActionBar.js +95 -59
  7. package/dist/ActionBar.js.map +1 -1
  8. package/dist/ActionBar.jsx +42 -15
  9. package/dist/ActionBar.jsx.map +1 -1
  10. package/dist/ActionGroup.d.ts +1 -12
  11. package/dist/ActionGroup.d.ts.map +1 -1
  12. package/dist/ActionGroup.js +66 -44
  13. package/dist/ActionGroup.js.map +1 -1
  14. package/dist/ActionGroup.jsx +25 -10
  15. package/dist/ActionGroup.jsx.map +1 -1
  16. package/dist/Alert.d.ts +4 -1
  17. package/dist/Alert.d.ts.map +1 -1
  18. package/dist/Alert.js +25 -17
  19. package/dist/Alert.js.map +1 -1
  20. package/dist/Alert.jsx +9 -5
  21. package/dist/Alert.jsx.map +1 -1
  22. package/dist/Autocomplete.d.ts +2 -9
  23. package/dist/Autocomplete.d.ts.map +1 -1
  24. package/dist/Autocomplete.js +18 -5
  25. package/dist/Autocomplete.js.map +1 -1
  26. package/dist/Autocomplete.jsx +20 -7
  27. package/dist/Autocomplete.jsx.map +1 -1
  28. package/dist/Breadcrumbs.d.ts +2 -7
  29. package/dist/Breadcrumbs.d.ts.map +1 -1
  30. package/dist/Breadcrumbs.js +71 -51
  31. package/dist/Breadcrumbs.js.map +1 -1
  32. package/dist/Breadcrumbs.jsx +25 -12
  33. package/dist/Breadcrumbs.jsx.map +1 -1
  34. package/dist/Button.d.ts +1 -7
  35. package/dist/Button.d.ts.map +1 -1
  36. package/dist/Button.js +125 -72
  37. package/dist/Button.js.map +1 -1
  38. package/dist/Button.jsx +105 -43
  39. package/dist/Button.jsx.map +1 -1
  40. package/dist/Calendar.d.ts +1 -7
  41. package/dist/Calendar.d.ts.map +1 -1
  42. package/dist/Calendar.js +297 -221
  43. package/dist/Calendar.js.map +1 -1
  44. package/dist/Calendar.jsx +52 -32
  45. package/dist/Calendar.jsx.map +1 -1
  46. package/dist/CalendarPicker.d.ts +1 -10
  47. package/dist/CalendarPicker.d.ts.map +1 -1
  48. package/dist/CalendarPicker.js +12 -0
  49. package/dist/CalendarPicker.js.map +1 -1
  50. package/dist/CalendarPicker.jsx +12 -0
  51. package/dist/CalendarPicker.jsx.map +1 -1
  52. package/dist/Checkbox.d.ts +2 -7
  53. package/dist/Checkbox.d.ts.map +1 -1
  54. package/dist/Checkbox.js +332 -270
  55. package/dist/Checkbox.js.map +1 -1
  56. package/dist/Checkbox.jsx +70 -77
  57. package/dist/Checkbox.jsx.map +1 -1
  58. package/dist/Collection.d.ts +33 -7
  59. package/dist/Collection.d.ts.map +1 -1
  60. package/dist/Collection.js +128 -74
  61. package/dist/Collection.js.map +1 -1
  62. package/dist/Collection.jsx +46 -7
  63. package/dist/Collection.jsx.map +1 -1
  64. package/dist/Color.d.ts +15 -20
  65. package/dist/Color.d.ts.map +1 -1
  66. package/dist/Color.js +572 -334
  67. package/dist/Color.js.map +1 -1
  68. package/dist/Color.jsx +205 -85
  69. package/dist/Color.jsx.map +1 -1
  70. package/dist/ColorEditor.d.ts +3 -1
  71. package/dist/ColorEditor.d.ts.map +1 -1
  72. package/dist/ColorEditor.js +147 -124
  73. package/dist/ColorEditor.js.map +1 -1
  74. package/dist/ColorEditor.jsx +4 -1
  75. package/dist/ColorEditor.jsx.map +1 -1
  76. package/dist/ComboBox.d.ts +31 -10
  77. package/dist/ComboBox.d.ts.map +1 -1
  78. package/dist/ComboBox.js +539 -274
  79. package/dist/ComboBox.js.map +1 -1
  80. package/dist/ComboBox.jsx +213 -70
  81. package/dist/ComboBox.jsx.map +1 -1
  82. package/dist/ContextualHelpTrigger.d.ts +1 -7
  83. package/dist/ContextualHelpTrigger.d.ts.map +1 -1
  84. package/dist/ContextualHelpTrigger.js +102 -72
  85. package/dist/ContextualHelpTrigger.js.map +1 -1
  86. package/dist/ContextualHelpTrigger.jsx +36 -16
  87. package/dist/ContextualHelpTrigger.jsx.map +1 -1
  88. package/dist/DateField.d.ts +2 -7
  89. package/dist/DateField.d.ts.map +1 -1
  90. package/dist/DateField.js +0 -2
  91. package/dist/DateField.jsx +0 -2
  92. package/dist/DateField2.js +194 -179
  93. package/dist/DateField2.js.map +1 -1
  94. package/dist/DateField2.jsx +58 -55
  95. package/dist/DateField2.jsx.map +1 -1
  96. package/dist/DatePicker.d.ts +7 -7
  97. package/dist/DatePicker.d.ts.map +1 -1
  98. package/dist/DatePicker.js +2 -2
  99. package/dist/DatePicker.jsx +2 -2
  100. package/dist/DatePicker2.js +357 -435
  101. package/dist/DatePicker2.js.map +1 -1
  102. package/dist/DatePicker2.jsx +109 -178
  103. package/dist/DatePicker2.jsx.map +1 -1
  104. package/dist/DateRangePickerContext.d.ts +7 -0
  105. package/dist/DateRangePickerContext.d.ts.map +1 -1
  106. package/dist/Dialog.d.ts +4 -9
  107. package/dist/Dialog.d.ts.map +1 -1
  108. package/dist/Dialog.js +168 -101
  109. package/dist/Dialog.js.map +1 -1
  110. package/dist/Dialog.jsx +75 -27
  111. package/dist/Dialog.jsx.map +1 -1
  112. package/dist/Disclosure.d.ts +1 -9
  113. package/dist/Disclosure.d.ts.map +1 -1
  114. package/dist/Disclosure.js +121 -79
  115. package/dist/Disclosure.js.map +1 -1
  116. package/dist/Disclosure.jsx +32 -19
  117. package/dist/Disclosure.jsx.map +1 -1
  118. package/dist/DragAndDrop.d.ts +9 -6
  119. package/dist/DragAndDrop.d.ts.map +1 -1
  120. package/dist/DragAndDrop.js +37 -22
  121. package/dist/DragAndDrop.js.map +1 -1
  122. package/dist/DragAndDrop.jsx +20 -4
  123. package/dist/DragAndDrop.jsx.map +1 -1
  124. package/dist/DragPreview.d.ts +1 -1
  125. package/dist/DragPreview.d.ts.map +1 -1
  126. package/dist/DropZone.d.ts +1 -7
  127. package/dist/DropZone.d.ts.map +1 -1
  128. package/dist/DropZone.js +74 -40
  129. package/dist/DropZone.js.map +1 -1
  130. package/dist/DropZone.jsx +24 -8
  131. package/dist/DropZone.jsx.map +1 -1
  132. package/dist/ElementTag.d.ts +9 -20
  133. package/dist/ElementTag.d.ts.map +1 -1
  134. package/dist/ElementTag.js +8 -210
  135. package/dist/ElementTag.js.map +1 -1
  136. package/dist/ElementTag.jsx +8 -57
  137. package/dist/ElementTag.jsx.map +1 -1
  138. package/dist/FieldError.d.ts +8 -7
  139. package/dist/FieldError.d.ts.map +1 -1
  140. package/dist/FieldError.js +33 -13
  141. package/dist/FieldError.js.map +1 -1
  142. package/dist/FieldError.jsx +20 -5
  143. package/dist/FieldError.jsx.map +1 -1
  144. package/dist/FileTrigger.d.ts +1 -7
  145. package/dist/FileTrigger.d.ts.map +1 -1
  146. package/dist/FileTrigger.js +30 -12
  147. package/dist/FileTrigger.js.map +1 -1
  148. package/dist/FileTrigger.jsx +15 -2
  149. package/dist/FileTrigger.jsx.map +1 -1
  150. package/dist/Focusable.d.ts +2 -8
  151. package/dist/Focusable.d.ts.map +1 -1
  152. package/dist/Focusable.js +23 -6
  153. package/dist/Focusable.js.map +1 -1
  154. package/dist/Focusable.jsx +22 -5
  155. package/dist/Focusable.jsx.map +1 -1
  156. package/dist/Form.d.ts +9 -8
  157. package/dist/Form.d.ts.map +1 -1
  158. package/dist/Form.js +66 -43
  159. package/dist/Form.js.map +1 -1
  160. package/dist/Form.jsx +36 -16
  161. package/dist/Form.jsx.map +1 -1
  162. package/dist/GridList.d.ts +5 -10
  163. package/dist/GridList.d.ts.map +1 -1
  164. package/dist/GridList.js +372 -243
  165. package/dist/GridList.js.map +1 -1
  166. package/dist/GridList.jsx +177 -99
  167. package/dist/GridList.jsx.map +1 -1
  168. package/dist/HiddenDateInput.d.ts +1 -7
  169. package/dist/HiddenDateInput.d.ts.map +1 -1
  170. package/dist/Icon.d.ts +4 -1
  171. package/dist/Icon.d.ts.map +1 -1
  172. package/dist/Icon.js +41 -37
  173. package/dist/Icon.js.map +1 -1
  174. package/dist/Icon.jsx +7 -3
  175. package/dist/Icon.jsx.map +1 -1
  176. package/dist/Keyboard.d.ts +1 -7
  177. package/dist/Keyboard.d.ts.map +1 -1
  178. package/dist/Keyboard.js +24 -11
  179. package/dist/Keyboard.js.map +1 -1
  180. package/dist/Keyboard.jsx +15 -2
  181. package/dist/Keyboard.jsx.map +1 -1
  182. package/dist/Label.d.ts +20 -0
  183. package/dist/Label.d.ts.map +1 -0
  184. package/dist/Label.js +60 -0
  185. package/dist/Label.js.map +1 -0
  186. package/dist/Label.jsx +47 -0
  187. package/dist/Label.jsx.map +1 -0
  188. package/dist/Landmark.d.ts +4 -1
  189. package/dist/Landmark.d.ts.map +1 -1
  190. package/dist/Landmark.js +10 -4
  191. package/dist/Landmark.js.map +1 -1
  192. package/dist/Landmark.jsx +5 -1
  193. package/dist/Landmark.jsx.map +1 -1
  194. package/dist/Link.d.ts +2 -7
  195. package/dist/Link.d.ts.map +1 -1
  196. package/dist/Link.js +56 -36
  197. package/dist/Link.js.map +1 -1
  198. package/dist/Link.jsx +52 -10
  199. package/dist/Link.jsx.map +1 -1
  200. package/dist/ListBox.d.ts +17 -13
  201. package/dist/ListBox.d.ts.map +1 -1
  202. package/dist/ListBox.js +647 -348
  203. package/dist/ListBox.js.map +1 -1
  204. package/dist/ListBox.jsx +339 -236
  205. package/dist/ListBox.jsx.map +1 -1
  206. package/dist/ListDropTargetDelegate.d.ts +3 -0
  207. package/dist/ListDropTargetDelegate.d.ts.map +1 -1
  208. package/dist/Menu.d.ts +39 -30
  209. package/dist/Menu.d.ts.map +1 -1
  210. package/dist/Menu.js +547 -368
  211. package/dist/Menu.js.map +1 -1
  212. package/dist/Menu.jsx +328 -230
  213. package/dist/Menu.jsx.map +1 -1
  214. package/dist/Meter.d.ts +6 -13
  215. package/dist/Meter.d.ts.map +1 -1
  216. package/dist/Meter.js +55 -18
  217. package/dist/Meter.js.map +1 -1
  218. package/dist/Meter.jsx +33 -8
  219. package/dist/Meter.jsx.map +1 -1
  220. package/dist/Modal.d.ts +1 -7
  221. package/dist/Modal.d.ts.map +1 -1
  222. package/dist/Modal.js +104 -56
  223. package/dist/Modal.js.map +1 -1
  224. package/dist/Modal.jsx +68 -38
  225. package/dist/Modal.jsx.map +1 -1
  226. package/dist/NumberField.d.ts +4 -7
  227. package/dist/NumberField.d.ts.map +1 -1
  228. package/dist/NumberField.js +243 -124
  229. package/dist/NumberField.js.map +1 -1
  230. package/dist/NumberField.jsx +115 -26
  231. package/dist/NumberField.jsx.map +1 -1
  232. package/dist/Popover.d.ts +15 -7
  233. package/dist/Popover.d.ts.map +1 -1
  234. package/dist/Popover.js +370 -181
  235. package/dist/Popover.js.map +1 -1
  236. package/dist/Popover.jsx +215 -82
  237. package/dist/Popover.jsx.map +1 -1
  238. package/dist/Pressable.d.ts +2 -8
  239. package/dist/Pressable.d.ts.map +1 -1
  240. package/dist/Pressable.js +23 -6
  241. package/dist/Pressable.js.map +1 -1
  242. package/dist/Pressable.jsx +22 -5
  243. package/dist/Pressable.jsx.map +1 -1
  244. package/dist/PreviewTrigger.d.ts +24 -0
  245. package/dist/PreviewTrigger.d.ts.map +1 -0
  246. package/dist/PreviewTrigger.js +128 -0
  247. package/dist/PreviewTrigger.js.map +1 -0
  248. package/dist/PreviewTrigger.jsx +117 -0
  249. package/dist/PreviewTrigger.jsx.map +1 -0
  250. package/dist/ProgressBar.d.ts +1 -7
  251. package/dist/ProgressBar.d.ts.map +1 -1
  252. package/dist/ProgressBar.js +34 -14
  253. package/dist/ProgressBar.js.map +1 -1
  254. package/dist/ProgressBar.jsx +17 -3
  255. package/dist/ProgressBar.jsx.map +1 -1
  256. package/dist/RadioGroup.d.ts +2 -7
  257. package/dist/RadioGroup.d.ts.map +1 -1
  258. package/dist/RadioGroup.js +388 -269
  259. package/dist/RadioGroup.js.map +1 -1
  260. package/dist/RadioGroup.jsx +110 -99
  261. package/dist/RadioGroup.jsx.map +1 -1
  262. package/dist/RangeCalendar.d.ts +3 -7
  263. package/dist/RangeCalendar.d.ts.map +1 -1
  264. package/dist/RangeCalendar.js +271 -202
  265. package/dist/RangeCalendar.js.map +1 -1
  266. package/dist/RangeCalendar.jsx +56 -37
  267. package/dist/RangeCalendar.jsx.map +1 -1
  268. package/dist/RouterProvider.d.ts +3 -9
  269. package/dist/RouterProvider.d.ts.map +1 -1
  270. package/dist/RouterProvider.js +15 -14
  271. package/dist/RouterProvider.js.map +1 -1
  272. package/dist/RouterProvider.jsx +14 -13
  273. package/dist/RouterProvider.jsx.map +1 -1
  274. package/dist/SearchField.d.ts +4 -7
  275. package/dist/SearchField.d.ts.map +1 -1
  276. package/dist/SearchField.js +191 -164
  277. package/dist/SearchField.js.map +1 -1
  278. package/dist/SearchField.jsx +69 -62
  279. package/dist/SearchField.jsx.map +1 -1
  280. package/dist/Select.d.ts +5 -10
  281. package/dist/Select.d.ts.map +1 -1
  282. package/dist/Select.js +565 -359
  283. package/dist/Select.js.map +1 -1
  284. package/dist/Select.jsx +281 -161
  285. package/dist/Select.jsx.map +1 -1
  286. package/dist/SelectionIndicator.d.ts +1 -4
  287. package/dist/SelectionIndicator.d.ts.map +1 -1
  288. package/dist/SelectionIndicator.js +29 -13
  289. package/dist/SelectionIndicator.js.map +1 -1
  290. package/dist/SelectionIndicator.jsx +18 -4
  291. package/dist/SelectionIndicator.jsx.map +1 -1
  292. package/dist/Separator.d.ts +1 -7
  293. package/dist/Separator.d.ts.map +1 -1
  294. package/dist/Separator.js +22 -6
  295. package/dist/Separator.js.map +1 -1
  296. package/dist/Separator.jsx +16 -3
  297. package/dist/Separator.jsx.map +1 -1
  298. package/dist/SharedElementTransition.d.ts +1 -10
  299. package/dist/SharedElementTransition.d.ts.map +1 -1
  300. package/dist/SharedElementTransition.js +68 -40
  301. package/dist/SharedElementTransition.js.map +1 -1
  302. package/dist/SharedElementTransition.jsx +49 -25
  303. package/dist/SharedElementTransition.jsx.map +1 -1
  304. package/dist/Slider.d.ts +2 -8
  305. package/dist/Slider.d.ts.map +1 -1
  306. package/dist/Slider.js +155 -97
  307. package/dist/Slider.js.map +1 -1
  308. package/dist/Slider.jsx +25 -12
  309. package/dist/Slider.jsx.map +1 -1
  310. package/dist/StepList.d.ts +1 -7
  311. package/dist/StepList.d.ts.map +1 -1
  312. package/dist/StepList.js +112 -68
  313. package/dist/StepList.js.map +1 -1
  314. package/dist/StepList.jsx +58 -20
  315. package/dist/StepList.jsx.map +1 -1
  316. package/dist/Switch.d.ts +2 -9
  317. package/dist/Switch.d.ts.map +1 -1
  318. package/dist/Switch.js +164 -114
  319. package/dist/Switch.js.map +1 -1
  320. package/dist/Switch.jsx +26 -13
  321. package/dist/Switch.jsx.map +1 -1
  322. package/dist/Table.d.ts +2 -1
  323. package/dist/Table.d.ts.map +1 -1
  324. package/dist/Table.js +689 -592
  325. package/dist/Table.js.map +1 -1
  326. package/dist/Table.jsx +317 -237
  327. package/dist/Table.jsx.map +1 -1
  328. package/dist/Tabs.d.ts +2 -7
  329. package/dist/Tabs.d.ts.map +1 -1
  330. package/dist/Tabs.js +278 -293
  331. package/dist/Tabs.js.map +1 -1
  332. package/dist/Tabs.jsx +68 -66
  333. package/dist/Tabs.jsx.map +1 -1
  334. package/dist/TagGroup.d.ts +4 -11
  335. package/dist/TagGroup.d.ts.map +1 -1
  336. package/dist/TagGroup.js +153 -115
  337. package/dist/TagGroup.js.map +1 -1
  338. package/dist/TagGroup.jsx +37 -24
  339. package/dist/TagGroup.jsx.map +1 -1
  340. package/dist/Text.d.ts +3 -3
  341. package/dist/Text.d.ts.map +1 -1
  342. package/dist/Text.js +24 -7
  343. package/dist/Text.js.map +1 -1
  344. package/dist/Text.jsx +17 -5
  345. package/dist/Text.jsx.map +1 -1
  346. package/dist/TextField.d.ts +3 -16
  347. package/dist/TextField.d.ts.map +1 -1
  348. package/dist/TextField.js +104 -129
  349. package/dist/TextField.js.map +1 -1
  350. package/dist/TextField.jsx +76 -102
  351. package/dist/TextField.jsx.map +1 -1
  352. package/dist/TimeField.d.ts +2 -15
  353. package/dist/TimeField.d.ts.map +1 -1
  354. package/dist/TimeField.js +86 -102
  355. package/dist/TimeField.js.map +1 -1
  356. package/dist/TimeField.jsx +32 -49
  357. package/dist/TimeField.jsx.map +1 -1
  358. package/dist/Toast.d.ts +10 -13
  359. package/dist/Toast.d.ts.map +1 -1
  360. package/dist/Toast.js +209 -108
  361. package/dist/Toast.js.map +1 -1
  362. package/dist/Toast.jsx +127 -22
  363. package/dist/Toast.jsx.map +1 -1
  364. package/dist/ToggleButton.d.ts +1 -7
  365. package/dist/ToggleButton.d.ts.map +1 -1
  366. package/dist/ToggleButton.js +57 -35
  367. package/dist/ToggleButton.js.map +1 -1
  368. package/dist/ToggleButton.jsx +26 -12
  369. package/dist/ToggleButton.jsx.map +1 -1
  370. package/dist/ToggleButtonGroup.d.ts +1 -7
  371. package/dist/ToggleButtonGroup.d.ts.map +1 -1
  372. package/dist/ToggleButtonGroup.js +59 -44
  373. package/dist/ToggleButtonGroup.js.map +1 -1
  374. package/dist/ToggleButtonGroup.jsx +25 -12
  375. package/dist/ToggleButtonGroup.jsx.map +1 -1
  376. package/dist/TokenField.d.ts +52 -0
  377. package/dist/TokenField.d.ts.map +1 -0
  378. package/dist/TokenField.js +301 -0
  379. package/dist/TokenField.js.map +1 -0
  380. package/dist/TokenField.jsx +197 -0
  381. package/dist/TokenField.jsx.map +1 -0
  382. package/dist/Toolbar.d.ts +2 -7
  383. package/dist/Toolbar.d.ts.map +1 -1
  384. package/dist/Toolbar.js +35 -16
  385. package/dist/Toolbar.js.map +1 -1
  386. package/dist/Toolbar.jsx +15 -2
  387. package/dist/Toolbar.jsx.map +1 -1
  388. package/dist/Tooltip.d.ts +2 -7
  389. package/dist/Tooltip.d.ts.map +1 -1
  390. package/dist/Tooltip.js +105 -68
  391. package/dist/Tooltip.js.map +1 -1
  392. package/dist/Tooltip.jsx +60 -36
  393. package/dist/Tooltip.jsx.map +1 -1
  394. package/dist/Tree.d.ts +8 -11
  395. package/dist/Tree.d.ts.map +1 -1
  396. package/dist/Tree.js +486 -339
  397. package/dist/Tree.js.map +1 -1
  398. package/dist/Tree.jsx +155 -107
  399. package/dist/Tree.jsx.map +1 -1
  400. package/dist/Virtualizer.d.ts +39 -9
  401. package/dist/Virtualizer.d.ts.map +1 -1
  402. package/dist/Virtualizer.js +2 -2
  403. package/dist/Virtualizer.jsx +2 -2
  404. package/dist/Virtualizer2.js +491 -136
  405. package/dist/Virtualizer2.js.map +1 -1
  406. package/dist/Virtualizer2.jsx +455 -122
  407. package/dist/Virtualizer2.jsx.map +1 -1
  408. package/dist/VirtualizerLayouts.d.ts +55 -2
  409. package/dist/VirtualizerLayouts.d.ts.map +1 -1
  410. package/dist/VisuallyHidden.d.ts +4 -3
  411. package/dist/VisuallyHidden.d.ts.map +1 -1
  412. package/dist/VisuallyHidden.js +18 -11
  413. package/dist/VisuallyHidden.js.map +1 -1
  414. package/dist/VisuallyHidden.jsx +15 -9
  415. package/dist/VisuallyHidden.jsx.map +1 -1
  416. package/dist/contexts.d.ts +25 -0
  417. package/dist/contexts.d.ts.map +1 -1
  418. package/dist/contexts.js +3 -0
  419. package/dist/contexts.js.map +1 -1
  420. package/dist/contexts.jsx +3 -0
  421. package/dist/contexts.jsx.map +1 -1
  422. package/dist/index.d.ts +11 -9
  423. package/dist/index.d.ts.map +1 -1
  424. package/dist/index.js +14 -11
  425. package/dist/index.jsx +14 -11
  426. package/dist/intl/index.d.ts +16 -0
  427. package/dist/intl/index.d.ts.map +1 -0
  428. package/dist/intl.js +212 -0
  429. package/dist/intl.js.map +1 -0
  430. package/dist/intl.jsx +212 -0
  431. package/dist/intl.jsx.map +1 -0
  432. package/dist/useDragAndDrop.d.ts +4 -2
  433. package/dist/useDragAndDrop.d.ts.map +1 -1
  434. package/dist/useDragAndDrop2.js +39 -21
  435. package/dist/useDragAndDrop2.js.map +1 -1
  436. package/dist/useDragAndDrop2.jsx +39 -21
  437. package/dist/useDragAndDrop2.jsx.map +1 -1
  438. package/dist/utils.d.ts +28 -9
  439. package/dist/utils.d.ts.map +1 -1
  440. package/dist/utils.js +96 -24
  441. package/dist/utils.js.map +1 -1
  442. package/dist/utils.jsx +81 -24
  443. package/dist/utils.jsx.map +1 -1
  444. package/dist/virtualizer/Layout.d.ts +9 -0
  445. package/dist/virtualizer/Layout.d.ts.map +1 -1
  446. package/dist/virtualizer/Layout.js +23 -2
  447. package/dist/virtualizer/Layout.js.map +1 -1
  448. package/dist/virtualizer/Layout.jsx +23 -2
  449. package/dist/virtualizer/Layout.jsx.map +1 -1
  450. package/package.json +29 -10
  451. package/src/ActionBar.tsx +50 -24
  452. package/src/ActionGroup.tsx +31 -19
  453. package/src/Alert.tsx +10 -4
  454. package/src/Autocomplete.tsx +24 -15
  455. package/src/Breadcrumbs.tsx +32 -16
  456. package/src/Button.tsx +182 -67
  457. package/src/Calendar.tsx +65 -47
  458. package/src/CalendarPicker.tsx +16 -1
  459. package/src/Checkbox.tsx +84 -116
  460. package/src/Collection.tsx +84 -3
  461. package/src/Color.tsx +282 -104
  462. package/src/ColorEditor.tsx +5 -1
  463. package/src/ComboBox.tsx +384 -109
  464. package/src/ContextualHelpTrigger.tsx +47 -41
  465. package/src/DateField.tsx +74 -106
  466. package/src/DatePicker.tsx +156 -352
  467. package/src/DateRangePickerContext.tsx +8 -0
  468. package/src/Dialog.tsx +105 -38
  469. package/src/Disclosure.tsx +29 -19
  470. package/src/DragAndDrop.tsx +43 -8
  471. package/src/DragPreview.tsx +20 -1
  472. package/src/DropZone.tsx +32 -18
  473. package/src/ElementTag.tsx +14 -104
  474. package/src/FieldError.tsx +39 -7
  475. package/src/FileTrigger.tsx +18 -3
  476. package/src/Focusable.tsx +27 -6
  477. package/src/Form.tsx +57 -11
  478. package/src/GridList.tsx +233 -141
  479. package/src/HiddenDateInput.tsx +19 -3
  480. package/src/Icon.tsx +8 -2
  481. package/src/Keyboard.tsx +18 -2
  482. package/src/Label.tsx +77 -0
  483. package/src/Landmark.tsx +6 -1
  484. package/src/Link.tsx +65 -19
  485. package/src/ListBox.tsx +645 -468
  486. package/src/ListDropTargetDelegate.ts +4 -0
  487. package/src/Menu.tsx +512 -349
  488. package/src/Meter.tsx +42 -8
  489. package/src/Modal.tsx +85 -42
  490. package/src/NumberField.tsx +161 -48
  491. package/src/Popover.tsx +424 -148
  492. package/src/Pressable.tsx +27 -6
  493. package/src/PreviewTrigger.tsx +171 -0
  494. package/src/ProgressBar.tsx +25 -3
  495. package/src/RadioGroup.tsx +230 -161
  496. package/src/RangeCalendar.tsx +75 -63
  497. package/src/RouterProvider.tsx +24 -14
  498. package/src/SearchField.tsx +118 -121
  499. package/src/Select.tsx +454 -274
  500. package/src/SelectionIndicator.tsx +21 -3
  501. package/src/Separator.tsx +17 -1
  502. package/src/SharedElementTransition.tsx +115 -97
  503. package/src/Slider.tsx +35 -17
  504. package/src/StepList.tsx +71 -32
  505. package/src/Switch.tsx +45 -29
  506. package/src/Table.tsx +446 -380
  507. package/src/Tabs.tsx +132 -155
  508. package/src/TagGroup.tsx +53 -40
  509. package/src/Text.tsx +23 -6
  510. package/src/TextField.tsx +118 -159
  511. package/src/TimeField.tsx +34 -95
  512. package/src/Toast.tsx +141 -67
  513. package/src/ToggleButton.tsx +33 -15
  514. package/src/ToggleButtonGroup.tsx +27 -9
  515. package/src/TokenField.tsx +379 -0
  516. package/src/Toolbar.tsx +19 -9
  517. package/src/Tooltip.tsx +126 -84
  518. package/src/Tree.tsx +233 -173
  519. package/src/Virtualizer.tsx +400 -138
  520. package/src/VirtualizerLayouts.ts +211 -26
  521. package/src/VisuallyHidden.tsx +22 -8
  522. package/src/contexts.ts +13 -0
  523. package/src/index.ts +32 -11
  524. package/src/intl/ar-AE.json +6 -0
  525. package/src/intl/bg-BG.json +6 -0
  526. package/src/intl/cs-CZ.json +6 -0
  527. package/src/intl/da-DK.json +6 -0
  528. package/src/intl/de-DE.json +6 -0
  529. package/src/intl/el-GR.json +6 -0
  530. package/src/intl/en-US.json +6 -0
  531. package/src/intl/es-ES.json +6 -0
  532. package/src/intl/et-EE.json +6 -0
  533. package/src/intl/fi-FI.json +6 -0
  534. package/src/intl/fr-FR.json +6 -0
  535. package/src/intl/he-IL.json +6 -0
  536. package/src/intl/hr-HR.json +6 -0
  537. package/src/intl/hu-HU.json +6 -0
  538. package/src/intl/index.ts +125 -0
  539. package/src/intl/it-IT.json +6 -0
  540. package/src/intl/ja-JP.json +6 -0
  541. package/src/intl/ko-KR.json +6 -0
  542. package/src/intl/lt-LT.json +6 -0
  543. package/src/intl/lv-LV.json +6 -0
  544. package/src/intl/nb-NO.json +6 -0
  545. package/src/intl/nl-NL.json +6 -0
  546. package/src/intl/pl-PL.json +6 -0
  547. package/src/intl/pt-BR.json +6 -0
  548. package/src/intl/pt-PT.json +6 -0
  549. package/src/intl/ro-RO.json +6 -0
  550. package/src/intl/ru-RU.json +6 -0
  551. package/src/intl/sk-SK.json +6 -0
  552. package/src/intl/sl-SI.json +6 -0
  553. package/src/intl/sr-SP.json +6 -0
  554. package/src/intl/sv-SE.json +6 -0
  555. package/src/intl/tr-TR.json +6 -0
  556. package/src/intl/uk-UA.json +6 -0
  557. package/src/intl/zh-CN.json +6 -0
  558. package/src/intl/zh-TW.json +6 -0
  559. package/src/useDragAndDrop.ts +30 -32
  560. package/src/utils.tsx +124 -68
  561. package/src/virtualizer/Layout.ts +29 -0
package/dist/Dialog.js CHANGED
@@ -1,9 +1,24 @@
1
- import { DEFAULT_SLOT, filterDOMProps, useRenderProps } from "./utils.js";
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
+ // Ported to SolidJS for Proyecto Viviana; based on packages/react-aria-components/src/Dialog.tsx
13
+ import { DEFAULT_SLOT, Provider, filterDOMProps, useRenderProps } from "./utils.js";
2
14
  import { a as useOverlayTriggerState, i as useDialogTrigger, t as DialogTriggerContext } from "./contexts.js";
3
15
  import { ButtonContext } from "./Button.js";
4
- import { className, createComponent, effect, getNextElement, insert, mergeProps, runHydrationEvents, setAttribute, spread, template, use } from "solid-js/web";
5
- import { Match, Switch, createContext, createEffect, createMemo, createUniqueId, splitProps, useContext } from "solid-js";
6
- import { createDialog, createOverlayTrigger, focusSafely } from "@proyecto-viviana/solidaria";
16
+ import { TextContext } from "./Text.js";
17
+ import { OverlayContext } from "./Popover.js";
18
+ import { className, createComponent, effect, getNextElement, insert, readShallow, ref, runHydrationEvents, scope, setAttribute, spread, template } from "@solidjs/web";
19
+ import { Match, Switch, createContext, createMemo, createSignal, createTrackedEffect, createUniqueId, useContext } from "solid-js";
20
+ import { createDialog, createOverlayTrigger, focusSafely, useIsHidden } from "@proyecto-viviana/solidaria";
21
+ import { splitProps } from "@proyecto-viviana/solidaria/utils";
7
22
  import { createOverlayTriggerState } from "@proyecto-viviana/solid-stately";
8
23
  //#region src/Dialog.tsx
9
24
  /**
@@ -12,7 +27,13 @@ import { createOverlayTriggerState } from "@proyecto-viviana/solid-stately";
12
27
  * A headless dialog component that combines ARIA hooks.
13
28
  * Port of react-aria-components Dialog.
14
29
  */
15
- var _tmpl$ = /*#__PURE__*/ template(`<section>`), _tmpl$2 = /*#__PURE__*/ template(`<h1>`), _tmpl$3 = /*#__PURE__*/ template(`<h2>`), _tmpl$4 = /*#__PURE__*/ template(`<h3>`), _tmpl$5 = /*#__PURE__*/ template(`<h4>`), _tmpl$6 = /*#__PURE__*/ template(`<h5>`), _tmpl$7 = /*#__PURE__*/ template(`<h6>`);
30
+ var _tmpl$ = /* @__PURE__ */ template(`<section>`);
31
+ var _tmpl$2 = /* @__PURE__ */ template(`<h1>`);
32
+ var _tmpl$3 = /* @__PURE__ */ template(`<h2>`);
33
+ var _tmpl$4 = /* @__PURE__ */ template(`<h3>`);
34
+ var _tmpl$5 = /* @__PURE__ */ template(`<h4>`);
35
+ var _tmpl$6 = /* @__PURE__ */ template(`<h5>`);
36
+ var _tmpl$7 = /* @__PURE__ */ template(`<h6>`);
16
37
  const DialogContext = createContext(null);
17
38
  /**
18
39
  * A DialogTrigger opens a dialog when a trigger element is pressed.
@@ -33,11 +54,11 @@ function DialogTrigger(props) {
33
54
  },
34
55
  onOpenChange: local.onOpenChange
35
56
  });
36
- let triggerRef = null;
57
+ const [triggerRef, setTriggerElement] = createSignal(null);
37
58
  const triggerId = createUniqueId();
38
- const triggerAria = createOverlayTrigger({ type: "dialog" }, state, () => triggerRef);
59
+ const triggerAria = createOverlayTrigger({ type: "dialog" }, state, triggerRef);
39
60
  const restoreFocusToTrigger = () => {
40
- const trigger = triggerRef;
61
+ const trigger = triggerRef();
41
62
  if (!trigger?.isConnected) return;
42
63
  const win = trigger.ownerDocument.defaultView ?? window;
43
64
  win.requestAnimationFrame(() => {
@@ -61,21 +82,24 @@ function DialogTrigger(props) {
61
82
  const wasOpen = state.isOpen();
62
83
  state.toggle();
63
84
  if (wasOpen) restoreFocusToTrigger();
64
- }
85
+ },
86
+ point: state.point,
87
+ setPoint: state.setPoint
65
88
  };
66
89
  const setTriggerRef = (el) => {
67
90
  if (!el) return;
68
- if (!triggerRef || !triggerRef.isConnected) triggerRef = el;
91
+ if (!triggerRef()) setTriggerElement(el);
69
92
  };
70
93
  const contextValue = createMemo(() => ({
71
94
  state: stateWithFocusRestore,
72
- triggerRef: () => triggerRef,
95
+ triggerRef,
73
96
  setTriggerRef,
74
97
  triggerId,
75
98
  triggerProps: triggerAria.triggerProps,
76
99
  overlayProps: triggerAria.overlayProps
77
100
  }));
78
- return createComponent(DialogTriggerContext.Provider, {
101
+ if (useIsHidden()()) return null;
102
+ return createComponent(DialogTriggerContext, {
79
103
  get value() {
80
104
  return contextValue();
81
105
  },
@@ -100,8 +124,11 @@ function Dialog(props) {
100
124
  "aria-describedby"
101
125
  ]);
102
126
  let dialogRef;
127
+ const setDialogRef = (element) => {
128
+ dialogRef = element;
129
+ };
103
130
  const triggerContext = useContext(DialogTriggerContext);
104
- const { dialogProps, titleProps } = createDialog({
131
+ const { dialogProps, titleProps, contentProps } = createDialog({
105
132
  get role() {
106
133
  return ariaProps.role;
107
134
  },
@@ -117,6 +144,7 @@ function Dialog(props) {
117
144
  }, () => dialogRef);
118
145
  const titleId = () => titleProps()?.id;
119
146
  const overlayState = useOverlayTriggerState();
147
+ const overlayFocus = useContext(OverlayContext);
120
148
  const close = () => {
121
149
  local.onClose?.();
122
150
  if (overlayState) {
@@ -125,12 +153,14 @@ function Dialog(props) {
125
153
  }
126
154
  triggerContext?.state.close();
127
155
  };
128
- createEffect(() => {
129
- if (!dialogRef || ariaProps["aria-label"] || ariaProps["aria-labelledby"]) return;
130
- const labelledBy = dialogRef.getAttribute("aria-labelledby");
131
- if (labelledBy && dialogRef.ownerDocument.getElementById(labelledBy)) return;
132
- const trigger = triggerContext?.triggerRef();
133
- if (trigger?.id) dialogRef.setAttribute("aria-labelledby", trigger.id);
156
+ const ariaLabelledBy = () => {
157
+ const p = dialogProps();
158
+ if (p["aria-labelledby"]) return p["aria-labelledby"];
159
+ if (p["aria-label"]) return;
160
+ return triggerContext?.triggerRef()?.id ?? triggerContext?.triggerId;
161
+ };
162
+ createTrackedEffect(() => {
163
+ overlayFocus?.setContain(true);
134
164
  });
135
165
  const renderValues = createMemo(() => ({ close }));
136
166
  const renderProps = useRenderProps({
@@ -142,7 +172,7 @@ function Dialog(props) {
142
172
  defaultClassName: "solidaria-Dialog"
143
173
  }, renderValues);
144
174
  const domProps = createMemo(() => filterDOMProps(rest, { global: true }));
145
- return createComponent(DialogContext.Provider, {
175
+ return createComponent(DialogContext, {
146
176
  get value() {
147
177
  return {
148
178
  close,
@@ -151,24 +181,40 @@ function Dialog(props) {
151
181
  },
152
182
  get children() {
153
183
  var _el$ = getNextElement(_tmpl$);
154
- var _ref$ = dialogRef;
155
- typeof _ref$ === "function" ? use(_ref$, _el$) : dialogRef = _el$;
156
- spread(_el$, mergeProps(dialogProps, domProps, {
157
- get ["class"]() {
158
- return renderProps.class();
159
- },
160
- get style() {
161
- return renderProps.style();
184
+ ref(() => {
185
+ return setDialogRef;
186
+ }, _el$);
187
+ spread(_el$, [
188
+ () => {
189
+ return triggerContext?.overlayProps;
162
190
  },
163
- get slot() {
164
- return local.slot;
191
+ dialogProps,
192
+ domProps,
193
+ {
194
+ get "aria-labelledby"() {
195
+ return ariaLabelledBy();
196
+ },
197
+ get "class"() {
198
+ return renderProps.class();
199
+ },
200
+ get style() {
201
+ return renderProps.style();
202
+ },
203
+ get slot() {
204
+ return local.slot;
205
+ }
165
206
  }
166
- }), false, true);
167
- insert(_el$, createComponent(ButtonContext.Provider, {
168
- value: { slots: {
207
+ ], true);
208
+ insert(_el$, createComponent(Provider, {
209
+ values: [[TextContext, { slots: {
210
+ [DEFAULT_SLOT]: {},
211
+ get description() {
212
+ return contentProps();
213
+ }
214
+ } }], [ButtonContext, { slots: {
169
215
  [DEFAULT_SLOT]: {},
170
216
  close: { onPress: () => close() }
171
- } },
217
+ } }]],
172
218
  get children() {
173
219
  return renderProps.renderChildren();
174
220
  }
@@ -187,7 +233,10 @@ function Heading(props) {
187
233
  const level = () => props.level ?? 2;
188
234
  const id = () => dialogContext?.titleId;
189
235
  let headingRef;
190
- createEffect(() => {
236
+ const setHeadingRef = (element) => {
237
+ headingRef = element;
238
+ };
239
+ createTrackedEffect(() => {
191
240
  const el = headingRef;
192
241
  if (!el) return;
193
242
  const contextId = id();
@@ -208,17 +257,20 @@ function Heading(props) {
208
257
  },
209
258
  get children() {
210
259
  var _el$2 = getNextElement(_tmpl$2);
211
- var _ref$2 = headingRef;
212
- typeof _ref$2 === "function" ? use(_ref$2, _el$2) : headingRef = _el$2;
213
- insert(_el$2, () => props.children);
214
- effect((_p$) => {
215
- var _v$ = id(), _v$2 = props.class;
216
- _v$ !== _p$.e && setAttribute(_el$2, "id", _p$.e = _v$);
217
- _v$2 !== _p$.t && className(_el$2, _p$.t = _v$2);
218
- return _p$;
219
- }, {
220
- e: void 0,
221
- t: void 0
260
+ ref(() => {
261
+ return setHeadingRef;
262
+ }, _el$2);
263
+ insert(_el$2, scope(() => {
264
+ return props.children;
265
+ }));
266
+ effect(() => {
267
+ return {
268
+ e: id(),
269
+ t: readShallow(props.class)
270
+ };
271
+ }, ({ e, t }, _p$) => {
272
+ e !== _p$?.e && setAttribute(_el$2, "id", e);
273
+ className(_el$2, t, _p$?.t);
222
274
  });
223
275
  return _el$2;
224
276
  }
@@ -229,17 +281,20 @@ function Heading(props) {
229
281
  },
230
282
  get children() {
231
283
  var _el$3 = getNextElement(_tmpl$3);
232
- var _ref$3 = headingRef;
233
- typeof _ref$3 === "function" ? use(_ref$3, _el$3) : headingRef = _el$3;
234
- insert(_el$3, () => props.children);
235
- effect((_p$) => {
236
- var _v$3 = id(), _v$4 = props.class;
237
- _v$3 !== _p$.e && setAttribute(_el$3, "id", _p$.e = _v$3);
238
- _v$4 !== _p$.t && className(_el$3, _p$.t = _v$4);
239
- return _p$;
240
- }, {
241
- e: void 0,
242
- t: void 0
284
+ ref(() => {
285
+ return setHeadingRef;
286
+ }, _el$3);
287
+ insert(_el$3, scope(() => {
288
+ return props.children;
289
+ }));
290
+ effect(() => {
291
+ return {
292
+ e: id(),
293
+ t: readShallow(props.class)
294
+ };
295
+ }, ({ e, t }, _p$) => {
296
+ e !== _p$?.e && setAttribute(_el$3, "id", e);
297
+ className(_el$3, t, _p$?.t);
243
298
  });
244
299
  return _el$3;
245
300
  }
@@ -250,17 +305,20 @@ function Heading(props) {
250
305
  },
251
306
  get children() {
252
307
  var _el$4 = getNextElement(_tmpl$4);
253
- var _ref$4 = headingRef;
254
- typeof _ref$4 === "function" ? use(_ref$4, _el$4) : headingRef = _el$4;
255
- insert(_el$4, () => props.children);
256
- effect((_p$) => {
257
- var _v$5 = id(), _v$6 = props.class;
258
- _v$5 !== _p$.e && setAttribute(_el$4, "id", _p$.e = _v$5);
259
- _v$6 !== _p$.t && className(_el$4, _p$.t = _v$6);
260
- return _p$;
261
- }, {
262
- e: void 0,
263
- t: void 0
308
+ ref(() => {
309
+ return setHeadingRef;
310
+ }, _el$4);
311
+ insert(_el$4, scope(() => {
312
+ return props.children;
313
+ }));
314
+ effect(() => {
315
+ return {
316
+ e: id(),
317
+ t: readShallow(props.class)
318
+ };
319
+ }, ({ e, t }, _p$) => {
320
+ e !== _p$?.e && setAttribute(_el$4, "id", e);
321
+ className(_el$4, t, _p$?.t);
264
322
  });
265
323
  return _el$4;
266
324
  }
@@ -271,17 +329,20 @@ function Heading(props) {
271
329
  },
272
330
  get children() {
273
331
  var _el$5 = getNextElement(_tmpl$5);
274
- var _ref$5 = headingRef;
275
- typeof _ref$5 === "function" ? use(_ref$5, _el$5) : headingRef = _el$5;
276
- insert(_el$5, () => props.children);
277
- effect((_p$) => {
278
- var _v$7 = id(), _v$8 = props.class;
279
- _v$7 !== _p$.e && setAttribute(_el$5, "id", _p$.e = _v$7);
280
- _v$8 !== _p$.t && className(_el$5, _p$.t = _v$8);
281
- return _p$;
282
- }, {
283
- e: void 0,
284
- t: void 0
332
+ ref(() => {
333
+ return setHeadingRef;
334
+ }, _el$5);
335
+ insert(_el$5, scope(() => {
336
+ return props.children;
337
+ }));
338
+ effect(() => {
339
+ return {
340
+ e: id(),
341
+ t: readShallow(props.class)
342
+ };
343
+ }, ({ e, t }, _p$) => {
344
+ e !== _p$?.e && setAttribute(_el$5, "id", e);
345
+ className(_el$5, t, _p$?.t);
285
346
  });
286
347
  return _el$5;
287
348
  }
@@ -292,17 +353,20 @@ function Heading(props) {
292
353
  },
293
354
  get children() {
294
355
  var _el$6 = getNextElement(_tmpl$6);
295
- var _ref$6 = headingRef;
296
- typeof _ref$6 === "function" ? use(_ref$6, _el$6) : headingRef = _el$6;
297
- insert(_el$6, () => props.children);
298
- effect((_p$) => {
299
- var _v$9 = id(), _v$0 = props.class;
300
- _v$9 !== _p$.e && setAttribute(_el$6, "id", _p$.e = _v$9);
301
- _v$0 !== _p$.t && className(_el$6, _p$.t = _v$0);
302
- return _p$;
303
- }, {
304
- e: void 0,
305
- t: void 0
356
+ ref(() => {
357
+ return setHeadingRef;
358
+ }, _el$6);
359
+ insert(_el$6, scope(() => {
360
+ return props.children;
361
+ }));
362
+ effect(() => {
363
+ return {
364
+ e: id(),
365
+ t: readShallow(props.class)
366
+ };
367
+ }, ({ e, t }, _p$) => {
368
+ e !== _p$?.e && setAttribute(_el$6, "id", e);
369
+ className(_el$6, t, _p$?.t);
306
370
  });
307
371
  return _el$6;
308
372
  }
@@ -313,17 +377,20 @@ function Heading(props) {
313
377
  },
314
378
  get children() {
315
379
  var _el$7 = getNextElement(_tmpl$7);
316
- var _ref$7 = headingRef;
317
- typeof _ref$7 === "function" ? use(_ref$7, _el$7) : headingRef = _el$7;
318
- insert(_el$7, () => props.children);
319
- effect((_p$) => {
320
- var _v$1 = id(), _v$10 = props.class;
321
- _v$1 !== _p$.e && setAttribute(_el$7, "id", _p$.e = _v$1);
322
- _v$10 !== _p$.t && className(_el$7, _p$.t = _v$10);
323
- return _p$;
324
- }, {
325
- e: void 0,
326
- t: void 0
380
+ ref(() => {
381
+ return setHeadingRef;
382
+ }, _el$7);
383
+ insert(_el$7, scope(() => {
384
+ return props.children;
385
+ }));
386
+ effect(() => {
387
+ return {
388
+ e: id(),
389
+ t: readShallow(props.class)
390
+ };
391
+ }, ({ e, t }, _p$) => {
392
+ e !== _p$?.e && setAttribute(_el$7, "id", e);
393
+ className(_el$7, t, _p$?.t);
327
394
  });
328
395
  return _el$7;
329
396
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Dialog.js","names":["JSX","createContext","createEffect","createMemo","createUniqueId","splitProps","useContext","Switch","Match","createDialog","createOverlayTrigger","focusSafely","AriaDialogProps","createOverlayTriggerState","OverlayTriggerState","DialogTriggerContext","useOverlayTriggerState","ButtonContext","DEFAULT_SLOT","RenderChildren","ClassNameOrFunction","StyleOrFunction","SlotProps","useRenderProps","filterDOMProps","DialogRenderProps","close","DialogProps","Omit","children","class","style","onClose","DialogTriggerProps","Element","isOpen","defaultOpen","onOpenChange","DialogContextValue","titleId","DialogContext","useDialogTrigger","DialogTrigger","props","local","state","triggerRef","HTMLElement","triggerId","triggerAria","type","restoreFocusToTrigger","trigger","isConnected","win","ownerDocument","defaultView","window","requestAnimationFrame","stateWithFocusRestore","setOpen","open","toggle","wasOpen","setTriggerRef","el","contextValue","triggerProps","overlayProps","_$createComponent","Provider","value","Dialog","ariaProps","rest","dialogRef","triggerContext","dialogProps","titleProps","role","aria-label","aria-labelledby","aria-describedby","id","overlayState","labelledBy","getAttribute","getElementById","setAttribute","renderValues","renderProps","defaultClassName","domProps","Record","global","_el$","_$getNextElement","_tmpl$","_ref$","_$use","_$spread","_$mergeProps","slot","_$insert","slots","onPress","renderChildren","_$runHydrationEvents","HeadingProps","level","Heading","dialogContext","headingRef","HTMLHeadingElement","contextId","dialog","closest","when","_el$2","_tmpl$2","_ref$2","_$effect","_p$","_v$","_v$2","e","_$setAttribute","t","_$className","undefined","_el$3","_tmpl$3","_ref$3","_v$3","_v$4","_el$4","_tmpl$4","_ref$4","_v$5","_v$6","_el$5","_tmpl$5","_ref$5","_v$7","_v$8","_el$6","_tmpl$6","_ref$6","_v$9","_v$0","_el$7","_tmpl$7","_ref$7","_v$1","_v$10","DialogHeading"],"sources":["../src/Dialog.tsx"],"sourcesContent":["/**\n * Dialog component for solidaria-components\n *\n * A headless dialog component that combines ARIA hooks.\n * Port of react-aria-components Dialog.\n */\n\nimport {\n type JSX,\n createContext,\n createEffect,\n createMemo,\n createUniqueId,\n splitProps,\n useContext,\n Switch,\n Match,\n} from \"solid-js\";\nimport {\n createDialog,\n createOverlayTrigger,\n focusSafely,\n type AriaDialogProps,\n} from \"@proyecto-viviana/solidaria\";\nimport {\n createOverlayTriggerState,\n type OverlayTriggerState,\n} from \"@proyecto-viviana/solid-stately\";\nimport { DialogTriggerContext, useOverlayTriggerState } from \"./contexts\";\nimport { ButtonContext } from \"./Button\";\nimport {\n DEFAULT_SLOT,\n type RenderChildren,\n type ClassNameOrFunction,\n type StyleOrFunction,\n type SlotProps,\n useRenderProps,\n filterDOMProps,\n} from \"./utils\";\n\nexport interface DialogRenderProps {\n /** Function to close the dialog */\n close: () => void;\n}\n\nexport interface DialogProps extends Omit<AriaDialogProps, \"class\" | \"style\">, SlotProps {\n /** The children of the component - can be JSX or render function. */\n children?: RenderChildren<DialogRenderProps>;\n /** The CSS className for the element. */\n class?: ClassNameOrFunction<DialogRenderProps>;\n /** The inline style for the element. */\n style?: StyleOrFunction<DialogRenderProps>;\n /** Callback when dialog should close */\n onClose?: () => void;\n}\n\nexport interface DialogTriggerProps {\n /** The children - should include a trigger and modal/popover content. */\n children: JSX.Element;\n /** Whether the dialog is open (controlled). */\n isOpen?: boolean;\n /** Whether the dialog is open by default (uncontrolled). */\n defaultOpen?: boolean;\n /** Callback when open state changes. */\n onOpenChange?: (isOpen: boolean) => void;\n}\n\ninterface DialogContextValue {\n close: () => void;\n titleId?: string;\n}\n\nexport const DialogContext = createContext<DialogContextValue | null>(null);\n\nexport { DialogTriggerContext, useDialogTrigger } from \"./contexts\";\n\n/**\n * A DialogTrigger opens a dialog when a trigger element is pressed.\n * Children should include a trigger element (e.g. Button) and the dialog content.\n */\nexport function DialogTrigger(props: DialogTriggerProps): JSX.Element {\n const [local] = splitProps(props, [\"isOpen\", \"defaultOpen\", \"onOpenChange\"]);\n\n const state = createOverlayTriggerState({\n get isOpen() {\n return local.isOpen;\n },\n get defaultOpen() {\n return local.defaultOpen;\n },\n onOpenChange: local.onOpenChange,\n });\n\n let triggerRef: HTMLElement | null = null;\n const triggerId = createUniqueId();\n\n // Create overlay trigger props so registered trigger components can expose\n // the same expanded/controls relationship as React Aria DialogTrigger.\n const triggerAria = createOverlayTrigger({ type: \"dialog\" }, state, () => triggerRef);\n\n const restoreFocusToTrigger = () => {\n const trigger = triggerRef;\n if (!trigger?.isConnected) return;\n\n const win = trigger.ownerDocument.defaultView ?? window;\n win.requestAnimationFrame(() => {\n win.requestAnimationFrame(() => {\n if (trigger.isConnected && !state.isOpen()) {\n focusSafely(trigger);\n }\n });\n });\n };\n\n const stateWithFocusRestore: OverlayTriggerState = {\n isOpen: state.isOpen,\n setOpen: (isOpen) => {\n state.setOpen(isOpen);\n if (!isOpen) {\n restoreFocusToTrigger();\n }\n },\n open: state.open,\n close: () => {\n state.close();\n restoreFocusToTrigger();\n },\n toggle: () => {\n const wasOpen = state.isOpen();\n state.toggle();\n if (wasOpen) {\n restoreFocusToTrigger();\n }\n },\n };\n\n const setTriggerRef = (el: HTMLElement | null) => {\n if (!el) return;\n if (!triggerRef || !triggerRef.isConnected) {\n triggerRef = el;\n }\n };\n\n // Context value - memoized to avoid unnecessary re-renders\n const contextValue = createMemo(() => ({\n state: stateWithFocusRestore,\n triggerRef: () => triggerRef,\n setTriggerRef,\n triggerId,\n triggerProps: triggerAria.triggerProps,\n overlayProps: triggerAria.overlayProps,\n }));\n\n // In SolidJS, we simply render children directly within the provider\n return (\n <DialogTriggerContext.Provider value={contextValue()}>\n {props.children}\n </DialogTriggerContext.Provider>\n );\n}\n\n/**\n * A dialog is an overlay shown above other content in an application.\n */\nexport function Dialog(props: DialogProps): JSX.Element {\n const [local, ariaProps, rest] = splitProps(\n props,\n [\"class\", \"style\", \"slot\", \"onClose\"],\n [\"role\", \"aria-label\", \"aria-labelledby\", \"aria-describedby\"],\n );\n\n let dialogRef!: HTMLElement;\n\n // Get trigger context for aria-labelledby fallback\n const triggerContext = useContext(DialogTriggerContext);\n\n // createDialog returns dialogProps AND titleProps (with the id for the Heading)\n const { dialogProps, titleProps } = createDialog(\n {\n get role() {\n return ariaProps.role;\n },\n get \"aria-label\"() {\n return ariaProps[\"aria-label\"];\n },\n get \"aria-labelledby\"() {\n return ariaProps[\"aria-labelledby\"];\n },\n get \"aria-describedby\"() {\n return ariaProps[\"aria-describedby\"];\n },\n },\n () => dialogRef,\n );\n\n // Get titleId from titleProps - this links Dialog's aria-labelledby to Heading's id\n const titleId = () => titleProps()?.id as string | undefined;\n\n // Get close function from OverlayTriggerState context or onClose prop\n const overlayState = useOverlayTriggerState();\n\n const close = () => {\n local.onClose?.();\n if (overlayState) {\n overlayState.close();\n return;\n }\n triggerContext?.state.close();\n };\n\n createEffect(() => {\n if (!dialogRef || ariaProps[\"aria-label\"] || ariaProps[\"aria-labelledby\"]) return;\n const labelledBy = dialogRef.getAttribute(\"aria-labelledby\");\n if (labelledBy && dialogRef.ownerDocument.getElementById(labelledBy)) return;\n\n const trigger = triggerContext?.triggerRef();\n if (trigger?.id) {\n dialogRef.setAttribute(\"aria-labelledby\", trigger.id);\n }\n });\n\n const renderValues = createMemo<DialogRenderProps>(() => ({\n close,\n }));\n\n const renderProps = useRenderProps(\n {\n get children() {\n return props.children;\n },\n class: local.class,\n style: local.style,\n defaultClassName: \"solidaria-Dialog\",\n },\n renderValues,\n );\n\n const domProps = createMemo(() =>\n filterDOMProps(rest as Record<string, unknown>, { global: true }),\n );\n\n return (\n <DialogContext.Provider value={{ close, titleId: titleId() }}>\n <section\n {...dialogProps()}\n {...domProps()}\n ref={dialogRef}\n class={renderProps.class()}\n style={renderProps.style()}\n slot={local.slot}\n >\n <ButtonContext.Provider\n value={{ slots: { [DEFAULT_SLOT]: {}, close: { onPress: () => close() } } }}\n >\n {renderProps.renderChildren()}\n </ButtonContext.Provider>\n </section>\n </DialogContext.Provider>\n );\n}\n\nexport interface HeadingProps {\n /** The children of the heading. */\n children: JSX.Element;\n /** The CSS className. */\n class?: string;\n /** The heading level (1-6). Defaults to 2. */\n level?: 1 | 2 | 3 | 4 | 5 | 6;\n /** The slot to render into. */\n slot?: string;\n}\n\n/**\n * Heading element for dialog title.\n * When rendered inside a Dialog, automatically gets the titleProps.\n */\nexport function Heading(props: HeadingProps): JSX.Element {\n const dialogContext = useContext(DialogContext);\n const level = () => props.level ?? 2;\n const id = () => dialogContext?.titleId;\n let headingRef: HTMLHeadingElement | undefined;\n\n createEffect(() => {\n const el = headingRef;\n if (!el) return;\n\n const contextId = id();\n if (contextId) {\n el.id = contextId;\n return;\n }\n\n if (!el.id) {\n const dialog = el.closest('[role=\"dialog\"],[role=\"alertdialog\"]');\n const labelledBy = dialog?.getAttribute(\"aria-labelledby\");\n if (labelledBy && !el.ownerDocument.getElementById(labelledBy)) {\n el.id = labelledBy;\n }\n }\n });\n\n return (\n <Switch>\n <Match when={level() === 1}>\n <h1 ref={headingRef} id={id()} class={props.class}>\n {props.children}\n </h1>\n </Match>\n <Match when={level() === 2}>\n <h2 ref={headingRef} id={id()} class={props.class}>\n {props.children}\n </h2>\n </Match>\n <Match when={level() === 3}>\n <h3 ref={headingRef} id={id()} class={props.class}>\n {props.children}\n </h3>\n </Match>\n <Match when={level() === 4}>\n <h4 ref={headingRef} id={id()} class={props.class}>\n {props.children}\n </h4>\n </Match>\n <Match when={level() === 5}>\n <h5 ref={headingRef} id={id()} class={props.class}>\n {props.children}\n </h5>\n </Match>\n <Match when={level() === 6}>\n <h6 ref={headingRef} id={id()} class={props.class}>\n {props.children}\n </h6>\n </Match>\n </Switch>\n );\n}\n\n// Keep backward compatibility\nexport { Heading as DialogHeading };\n"],"mappings":"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"}
1
+ {"version":3,"file":"Dialog.js","names":["<DialogTriggerContext value={contextValue()}>{props.children}</DialogTriggerContext>","<DialogContext value={{ close, titleId: titleId() }}>\n <section\n {...triggerContext?.overlayProps}\n {...dialogProps()}\n {...domProps()}\n aria-labelledby={ariaLabelledBy()}\n ref={setDialogRef}\n class={renderProps.class()}\n style={renderProps.style()}\n slot={local.slot}\n >\n <Provider\n values={\n [\n [\n TextContext,\n {\n slots: {\n [DEFAULT_SLOT]: {},\n get description() {\n return contentProps();\n },\n },\n },\n ],\n [ButtonContext, { slots: { [DEFAULT_SLOT]: {}, close: { onPress: () => close() } } }],\n ] as Array<[Context<unknown>, unknown]>\n }\n >\n {renderProps.renderChildren()}\n </Provider>\n </section>\n </DialogContext>","ref={setDialogRef}","<Provider\n values={\n [\n [\n TextContext,\n {\n slots: {\n [DEFAULT_SLOT]: {},\n get description() {\n return contentProps();\n },\n },\n },\n ],\n [ButtonContext, { slots: { [DEFAULT_SLOT]: {}, close: { onPress: () => close() } } }],\n ] as Array<[Context<unknown>, unknown]>\n }\n >\n {renderProps.renderChildren()}\n </Provider>","values={\n [\n [\n TextContext,\n {\n slots: {\n [DEFAULT_SLOT]: {},\n get description() {\n return contentProps();\n },\n },\n },\n ],\n [ButtonContext, { slots: { [DEFAULT_SLOT]: {}, close: { onPress: () => close() } } }],\n ] as Array<[Context<unknown>, unknown]>\n }","<section\n {...triggerContext?.overlayProps}\n {...dialogProps()}\n {...domProps()}\n aria-labelledby={ariaLabelledBy()}\n ref={setDialogRef}\n class={renderProps.class()}\n style={renderProps.style()}\n slot={local.slot}\n >\n <Provider\n values={\n [\n [\n TextContext,\n {\n slots: {\n [DEFAULT_SLOT]: {},\n get description() {\n return contentProps();\n },\n },\n },\n ],\n [ButtonContext, { slots: { [DEFAULT_SLOT]: {}, close: { onPress: () => close() } } }],\n ] as Array<[Context<unknown>, unknown]>\n }\n >\n {renderProps.renderChildren()}\n </Provider>\n </section>","<Switch>\n <Match when={level() === 1}>\n <h1 ref={setHeadingRef} id={id()} class={props.class}>\n {props.children}\n </h1>\n </Match>\n <Match when={level() === 2}>\n <h2 ref={setHeadingRef} id={id()} class={props.class}>\n {props.children}\n </h2>\n </Match>\n <Match when={level() === 3}>\n <h3 ref={setHeadingRef} id={id()} class={props.class}>\n {props.children}\n </h3>\n </Match>\n <Match when={level() === 4}>\n <h4 ref={setHeadingRef} id={id()} class={props.class}>\n {props.children}\n </h4>\n </Match>\n <Match when={level() === 5}>\n <h5 ref={setHeadingRef} id={id()} class={props.class}>\n {props.children}\n </h5>\n </Match>\n <Match when={level() === 6}>\n <h6 ref={setHeadingRef} id={id()} class={props.class}>\n {props.children}\n </h6>\n </Match>\n </Switch>","<Match when={level() === 1}>\n <h1 ref={setHeadingRef} id={id()} class={props.class}>\n {props.children}\n </h1>\n </Match>","ref={setHeadingRef}","{props.children}","class={props.class}","<h1 ref={setHeadingRef} id={id()} class={props.class}>\n {props.children}\n </h1>","<Match when={level() === 2}>\n <h2 ref={setHeadingRef} id={id()} class={props.class}>\n {props.children}\n </h2>\n </Match>","<h2 ref={setHeadingRef} id={id()} class={props.class}>\n {props.children}\n </h2>","<Match when={level() === 3}>\n <h3 ref={setHeadingRef} id={id()} class={props.class}>\n {props.children}\n </h3>\n </Match>","<h3 ref={setHeadingRef} id={id()} class={props.class}>\n {props.children}\n </h3>","<Match when={level() === 4}>\n <h4 ref={setHeadingRef} id={id()} class={props.class}>\n {props.children}\n </h4>\n </Match>","<h4 ref={setHeadingRef} id={id()} class={props.class}>\n {props.children}\n </h4>","<Match when={level() === 5}>\n <h5 ref={setHeadingRef} id={id()} class={props.class}>\n {props.children}\n </h5>\n </Match>","<h5 ref={setHeadingRef} id={id()} class={props.class}>\n {props.children}\n </h5>","<Match when={level() === 6}>\n <h6 ref={setHeadingRef} id={id()} class={props.class}>\n {props.children}\n </h6>\n </Match>","<h6 ref={setHeadingRef} id={id()} class={props.class}>\n {props.children}\n </h6>"],"sources":["../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 */\n\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria-components/src/Dialog.tsx\n\n/**\n * Dialog component for solidaria-components\n *\n * A headless dialog component that combines ARIA hooks.\n * Port of react-aria-components Dialog.\n */\n\nimport {\n createContext,\n createEffect,\n createMemo,\n createSignal,\n createUniqueId,\n useContext,\n Switch,\n Match,\n createTrackedEffect,\n} from \"solid-js\";\nimport type { Context } from \"solid-js\";\nimport type { JSX } from \"@solidjs/web\";\nimport {\n createDialog,\n createOverlayTrigger,\n focusSafely,\n useIsHidden,\n type AriaDialogProps,\n} from \"@proyecto-viviana/solidaria\";\nimport {\n createOverlayTriggerState,\n type OverlayTriggerState,\n} from \"@proyecto-viviana/solid-stately\";\nimport { DialogTriggerContext, useOverlayTriggerState } from \"./contexts\";\nimport { OverlayContext } from \"./Popover\";\nimport { ButtonContext } from \"./Button\";\nimport { TextContext } from \"./Text\";\nimport { splitProps } from \"@proyecto-viviana/solidaria/utils\";\nimport {\n DEFAULT_SLOT,\n Provider,\n type RenderChildren,\n type ClassNameOrFunction,\n type StyleOrFunction,\n type SlotProps,\n useRenderProps,\n filterDOMProps,\n} from \"./utils\";\n\nexport interface DialogRenderProps {\n /** Function to close the dialog */\n close: () => void;\n}\n\nexport interface DialogProps extends Omit<AriaDialogProps, \"class\" | \"style\">, SlotProps {\n /** The children of the component - can be JSX or render function. */\n children?: RenderChildren<DialogRenderProps>;\n /** The CSS className for the element. */\n class?: ClassNameOrFunction<DialogRenderProps>;\n /** The inline style for the element. */\n style?: StyleOrFunction<DialogRenderProps>;\n /** Callback when dialog should close */\n onClose?: () => void;\n}\n\nexport interface DialogTriggerProps {\n /** The children - should include a trigger and modal/popover content. */\n children: JSX.Element;\n /** Whether the dialog is open (controlled). */\n isOpen?: boolean;\n /** Whether the dialog is open by default (uncontrolled). */\n defaultOpen?: boolean;\n /** Callback when open state changes. */\n onOpenChange?: (isOpen: boolean) => void;\n}\n\ninterface DialogContextValue {\n close: () => void;\n titleId?: string;\n}\n\nexport const DialogContext = createContext<DialogContextValue | null>(null);\n\nexport { DialogTriggerContext, useDialogTrigger } from \"./contexts\";\n\n/**\n * A DialogTrigger opens a dialog when a trigger element is pressed.\n * Children should include a trigger element (e.g. Button) and the dialog content.\n */\nexport function DialogTrigger(props: DialogTriggerProps): JSX.Element | null {\n const [local] = splitProps(props, [\"isOpen\", \"defaultOpen\", \"onOpenChange\"]);\n\n const state = createOverlayTriggerState({\n get isOpen() {\n return local.isOpen;\n },\n get defaultOpen() {\n return local.defaultOpen;\n },\n onOpenChange: local.onOpenChange,\n });\n\n // A signal, so a consumer reading `triggerRef()` (e.g. the dialog's\n // trigger-label fallback) re-reads once the trigger mounts.\n const [triggerRef, setTriggerElement] = createSignal<HTMLElement | null>(null);\n const triggerId = createUniqueId();\n\n // Create overlay trigger props so registered trigger components can expose\n // the same expanded/controls relationship as React Aria DialogTrigger.\n const triggerAria = createOverlayTrigger({ type: \"dialog\" }, state, triggerRef);\n\n const restoreFocusToTrigger = () => {\n const trigger = triggerRef();\n if (!trigger?.isConnected) return;\n\n const win = trigger.ownerDocument.defaultView ?? window;\n win.requestAnimationFrame(() => {\n win.requestAnimationFrame(() => {\n if (trigger.isConnected && !state.isOpen()) {\n focusSafely(trigger);\n }\n });\n });\n };\n\n const stateWithFocusRestore: OverlayTriggerState = {\n isOpen: state.isOpen,\n setOpen: (isOpen) => {\n state.setOpen(isOpen);\n if (!isOpen) {\n restoreFocusToTrigger();\n }\n },\n open: state.open,\n close: () => {\n state.close();\n restoreFocusToTrigger();\n },\n toggle: () => {\n const wasOpen = state.isOpen();\n state.toggle();\n if (wasOpen) {\n restoreFocusToTrigger();\n }\n },\n point: state.point,\n setPoint: state.setPoint,\n };\n\n const setTriggerRef = (el: HTMLElement | null) => {\n if (!el) return;\n // First registrant wins. Replacing a not-yet-connected trigger lets a later\n // CloseButton steal ownership during defaultOpen (both refs fire before\n // either node is in the document), then close+toggle reopens the dialog.\n if (!triggerRef()) {\n setTriggerElement(el);\n }\n };\n\n // Context value - memoized to avoid unnecessary re-renders\n const contextValue = createMemo(() => ({\n state: stateWithFocusRestore,\n triggerRef,\n setTriggerRef,\n triggerId,\n triggerProps: triggerAria.triggerProps,\n overlayProps: triggerAria.overlayProps,\n }));\n\n // If within a collection (e.g. Tabs), render nothing. Matches RAC DialogTrigger\n // (`useIsHidden()` early return) so a hidden collection pass does not leak a\n // duplicate trigger. Not using createHideableComponent: that also wraps a ref.\n const isHidden = useIsHidden();\n if (isHidden()) {\n return null;\n }\n\n // In SolidJS, we simply render children directly within the provider\n return <DialogTriggerContext value={contextValue()}>{props.children}</DialogTriggerContext>;\n}\n\n/**\n * A dialog is an overlay shown above other content in an application.\n */\nexport function Dialog(props: DialogProps): JSX.Element {\n const [local, ariaProps, rest] = splitProps(\n props,\n [\"class\", \"style\", \"slot\", \"onClose\"],\n [\"role\", \"aria-label\", \"aria-labelledby\", \"aria-describedby\"],\n );\n\n let dialogRef: HTMLElement | undefined;\n const setDialogRef = (element: HTMLElement) => {\n dialogRef = element;\n };\n\n // Get trigger context for aria-labelledby fallback\n const triggerContext = useContext(DialogTriggerContext);\n\n // createDialog returns the props that wire the dialog to its title and, for\n // alertdialogs, its description content.\n const { dialogProps, titleProps, contentProps } = createDialog(\n {\n get role() {\n return ariaProps.role;\n },\n get \"aria-label\"() {\n return ariaProps[\"aria-label\"];\n },\n get \"aria-labelledby\"() {\n return ariaProps[\"aria-labelledby\"];\n },\n get \"aria-describedby\"() {\n return ariaProps[\"aria-describedby\"];\n },\n },\n () => dialogRef,\n );\n\n // Get titleId from titleProps - this links Dialog's aria-labelledby to Heading's id\n const titleId = () => titleProps()?.id as string | undefined;\n\n // Get close function from OverlayTriggerState context or onClose prop\n const overlayState = useOverlayTriggerState();\n const overlayFocus = useContext(OverlayContext);\n\n const close = () => {\n local.onClose?.();\n if (overlayState) {\n overlayState.close();\n return;\n }\n triggerContext?.state.close();\n };\n\n // Label the dialog by its trigger when no title slot resolved. Mirrors RAC\n // `Dialog`: the trigger id arrives by context, so it is a fallback only and a\n // rendered title still wins. `createDialog`'s slot id clears itself when no\n // element takes it, which is what makes the fallback reachable.\n const ariaLabelledBy = () => {\n const p = dialogProps();\n if (p[\"aria-labelledby\"]) {\n return p[\"aria-labelledby\"] as string;\n }\n if (p[\"aria-label\"]) {\n return undefined;\n }\n return triggerContext?.triggerRef()?.id ?? triggerContext?.triggerId;\n };\n\n // RAC useDialog → useOverlayFocusContain: a nested Dialog still contains\n // focus when the parent Popover is not itself the dialog.\n createTrackedEffect(() => {\n overlayFocus?.setContain(true);\n });\n\n const renderValues = createMemo<DialogRenderProps>(() => ({\n close,\n }));\n\n const renderProps = useRenderProps(\n {\n get children() {\n return props.children;\n },\n class: local.class,\n style: local.style,\n defaultClassName: \"solidaria-Dialog\",\n },\n renderValues,\n );\n\n const domProps = createMemo(() =>\n filterDOMProps(rest as Record<string, unknown>, { global: true }),\n );\n\n return (\n <DialogContext value={{ close, titleId: titleId() }}>\n <section\n {...triggerContext?.overlayProps}\n {...dialogProps()}\n {...domProps()}\n aria-labelledby={ariaLabelledBy()}\n ref={setDialogRef}\n class={renderProps.class()}\n style={renderProps.style()}\n slot={local.slot}\n >\n <Provider\n values={\n [\n [\n TextContext,\n {\n slots: {\n [DEFAULT_SLOT]: {},\n get description() {\n return contentProps();\n },\n },\n },\n ],\n [ButtonContext, { slots: { [DEFAULT_SLOT]: {}, close: { onPress: () => close() } } }],\n ] as Array<[Context<unknown>, unknown]>\n }\n >\n {renderProps.renderChildren()}\n </Provider>\n </section>\n </DialogContext>\n );\n}\n\nexport interface HeadingProps {\n /** The children of the heading. */\n children: JSX.Element;\n /** The CSS className. */\n class?: string;\n /** The heading level (1-6). Defaults to 2. */\n level?: 1 | 2 | 3 | 4 | 5 | 6;\n /** The slot to render into. */\n slot?: string;\n}\n\n/**\n * Heading element for dialog title.\n * When rendered inside a Dialog, automatically gets the titleProps.\n */\nexport function Heading(props: HeadingProps): JSX.Element {\n const dialogContext = useContext(DialogContext);\n const level = () => props.level ?? 2;\n const id = () => dialogContext?.titleId;\n let headingRef: HTMLHeadingElement | undefined;\n const setHeadingRef = (element: HTMLHeadingElement) => {\n headingRef = element;\n };\n\n createTrackedEffect(() => {\n const el = headingRef;\n if (!el) return;\n\n const contextId = id();\n if (contextId) {\n el.id = contextId;\n return;\n }\n\n if (!el.id) {\n const dialog = el.closest('[role=\"dialog\"],[role=\"alertdialog\"]');\n const labelledBy = dialog?.getAttribute(\"aria-labelledby\");\n if (labelledBy && !el.ownerDocument.getElementById(labelledBy)) {\n el.id = labelledBy;\n }\n }\n });\n\n return (\n <Switch>\n <Match when={level() === 1}>\n <h1 ref={setHeadingRef} id={id()} class={props.class}>\n {props.children}\n </h1>\n </Match>\n <Match when={level() === 2}>\n <h2 ref={setHeadingRef} id={id()} class={props.class}>\n {props.children}\n </h2>\n </Match>\n <Match when={level() === 3}>\n <h3 ref={setHeadingRef} id={id()} class={props.class}>\n {props.children}\n </h3>\n </Match>\n <Match when={level() === 4}>\n <h4 ref={setHeadingRef} id={id()} class={props.class}>\n {props.children}\n </h4>\n </Match>\n <Match when={level() === 5}>\n <h5 ref={setHeadingRef} id={id()} class={props.class}>\n {props.children}\n </h5>\n </Match>\n <Match when={level() === 6}>\n <h6 ref={setHeadingRef} id={id()} class={props.class}>\n {props.children}\n </h6>\n </Match>\n </Switch>\n );\n}\n\n// Keep backward compatibility\nexport { Heading as DialogHeading };\n"],"mappings":"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"}