@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.jsx CHANGED
@@ -1,8 +1,23 @@
1
- import { DEFAULT_SLOT, filterDOMProps, useRenderProps } from "./utils.jsx";
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.jsx";
2
14
  import { a as useOverlayTriggerState, i as useDialogTrigger, t as DialogTriggerContext } from "./contexts.jsx";
3
15
  import { ButtonContext } from "./Button.jsx";
4
- import { Match, Switch, createContext, createEffect, createMemo, createUniqueId, splitProps, useContext } from "solid-js";
5
- import { createDialog, createOverlayTrigger, focusSafely } from "@proyecto-viviana/solidaria";
16
+ import { TextContext } from "./Text.jsx";
17
+ import { OverlayContext } from "./Popover.jsx";
18
+ import { Match, Switch, createContext, createMemo, createSignal, createTrackedEffect, createUniqueId, useContext } from "solid-js";
19
+ import { createDialog, createOverlayTrigger, focusSafely, useIsHidden } from "@proyecto-viviana/solidaria";
20
+ import { splitProps } from "@proyecto-viviana/solidaria/utils";
6
21
  import { createOverlayTriggerState } from "@proyecto-viviana/solid-stately";
7
22
  //#region src/Dialog.tsx
8
23
  /**
@@ -31,11 +46,11 @@ function DialogTrigger(props) {
31
46
  },
32
47
  onOpenChange: local.onOpenChange
33
48
  });
34
- let triggerRef = null;
49
+ const [triggerRef, setTriggerElement] = createSignal(null);
35
50
  const triggerId = createUniqueId();
36
- const triggerAria = createOverlayTrigger({ type: "dialog" }, state, () => triggerRef);
51
+ const triggerAria = createOverlayTrigger({ type: "dialog" }, state, triggerRef);
37
52
  const restoreFocusToTrigger = () => {
38
- const trigger = triggerRef;
53
+ const trigger = triggerRef();
39
54
  if (!trigger?.isConnected) return;
40
55
  const win = trigger.ownerDocument.defaultView ?? window;
41
56
  win.requestAnimationFrame(() => {
@@ -59,23 +74,24 @@ function DialogTrigger(props) {
59
74
  const wasOpen = state.isOpen();
60
75
  state.toggle();
61
76
  if (wasOpen) restoreFocusToTrigger();
62
- }
77
+ },
78
+ point: state.point,
79
+ setPoint: state.setPoint
63
80
  };
64
81
  const setTriggerRef = (el) => {
65
82
  if (!el) return;
66
- if (!triggerRef || !triggerRef.isConnected) triggerRef = el;
83
+ if (!triggerRef()) setTriggerElement(el);
67
84
  };
68
85
  const contextValue = createMemo(() => ({
69
86
  state: stateWithFocusRestore,
70
- triggerRef: () => triggerRef,
87
+ triggerRef,
71
88
  setTriggerRef,
72
89
  triggerId,
73
90
  triggerProps: triggerAria.triggerProps,
74
91
  overlayProps: triggerAria.overlayProps
75
92
  }));
76
- return <DialogTriggerContext.Provider value={contextValue()}>
77
- {props.children}
78
- </DialogTriggerContext.Provider>;
93
+ if (useIsHidden()()) return null;
94
+ return <DialogTriggerContext value={contextValue()}>{props.children}</DialogTriggerContext>;
79
95
  }
80
96
  /**
81
97
  * A dialog is an overlay shown above other content in an application.
@@ -93,8 +109,11 @@ function Dialog(props) {
93
109
  "aria-describedby"
94
110
  ]);
95
111
  let dialogRef;
112
+ const setDialogRef = (element) => {
113
+ dialogRef = element;
114
+ };
96
115
  const triggerContext = useContext(DialogTriggerContext);
97
- const { dialogProps, titleProps } = createDialog({
116
+ const { dialogProps, titleProps, contentProps } = createDialog({
98
117
  get role() {
99
118
  return ariaProps.role;
100
119
  },
@@ -110,6 +129,7 @@ function Dialog(props) {
110
129
  }, () => dialogRef);
111
130
  const titleId = () => titleProps()?.id;
112
131
  const overlayState = useOverlayTriggerState();
132
+ const overlayFocus = useContext(OverlayContext);
113
133
  const close = () => {
114
134
  local.onClose?.();
115
135
  if (overlayState) {
@@ -118,7 +138,15 @@ function Dialog(props) {
118
138
  }
119
139
  triggerContext?.state.close();
120
140
  };
121
- createEffect(() => {});
141
+ const ariaLabelledBy = () => {
142
+ const p = dialogProps();
143
+ if (p["aria-labelledby"]) return p["aria-labelledby"];
144
+ if (p["aria-label"]) return;
145
+ return triggerContext?.triggerRef()?.id ?? triggerContext?.triggerId;
146
+ };
147
+ createTrackedEffect(() => {
148
+ overlayFocus?.setContain(true);
149
+ });
122
150
  const renderValues = createMemo(() => ({ close }));
123
151
  const renderProps = useRenderProps({
124
152
  get children() {
@@ -129,19 +157,24 @@ function Dialog(props) {
129
157
  defaultClassName: "solidaria-Dialog"
130
158
  }, renderValues);
131
159
  const domProps = createMemo(() => filterDOMProps(rest, { global: true }));
132
- return <DialogContext.Provider value={{
160
+ return <DialogContext value={{
133
161
  close,
134
162
  titleId: titleId()
135
163
  }}>
136
- <section {...dialogProps()} {...domProps()} ref={dialogRef} class={renderProps.class()} style={renderProps.style()} slot={local.slot}>
137
- <ButtonContext.Provider value={{ slots: {
164
+ <section {...triggerContext?.overlayProps} {...dialogProps()} {...domProps()} aria-labelledby={ariaLabelledBy()} ref={setDialogRef} class={renderProps.class()} style={renderProps.style()} slot={local.slot}>
165
+ <Provider values={[[TextContext, { slots: {
166
+ [DEFAULT_SLOT]: {},
167
+ get description() {
168
+ return contentProps();
169
+ }
170
+ } }], [ButtonContext, { slots: {
138
171
  [DEFAULT_SLOT]: {},
139
172
  close: { onPress: () => close() }
140
- } }}>
173
+ } }]]}>
141
174
  {renderProps.renderChildren()}
142
- </ButtonContext.Provider>
175
+ </Provider>
143
176
  </section>
144
- </DialogContext.Provider>;
177
+ </DialogContext>;
145
178
  }
146
179
  /**
147
180
  * Heading element for dialog title.
@@ -152,35 +185,50 @@ function Heading(props) {
152
185
  const level = () => props.level ?? 2;
153
186
  const id = () => dialogContext?.titleId;
154
187
  let headingRef;
155
- createEffect(() => {});
188
+ const setHeadingRef = (element) => {
189
+ headingRef = element;
190
+ };
191
+ createTrackedEffect(() => {
192
+ const el = headingRef;
193
+ if (!el) return;
194
+ const contextId = id();
195
+ if (contextId) {
196
+ el.id = contextId;
197
+ return;
198
+ }
199
+ if (!el.id) {
200
+ const labelledBy = el.closest("[role=\"dialog\"],[role=\"alertdialog\"]")?.getAttribute("aria-labelledby");
201
+ if (labelledBy && !el.ownerDocument.getElementById(labelledBy)) el.id = labelledBy;
202
+ }
203
+ });
156
204
  return <Switch>
157
205
  <Match when={level() === 1}>
158
- <h1 ref={headingRef} id={id()} class={props.class}>
206
+ <h1 ref={setHeadingRef} id={id()} class={props.class}>
159
207
  {props.children}
160
208
  </h1>
161
209
  </Match>
162
210
  <Match when={level() === 2}>
163
- <h2 ref={headingRef} id={id()} class={props.class}>
211
+ <h2 ref={setHeadingRef} id={id()} class={props.class}>
164
212
  {props.children}
165
213
  </h2>
166
214
  </Match>
167
215
  <Match when={level() === 3}>
168
- <h3 ref={headingRef} id={id()} class={props.class}>
216
+ <h3 ref={setHeadingRef} id={id()} class={props.class}>
169
217
  {props.children}
170
218
  </h3>
171
219
  </Match>
172
220
  <Match when={level() === 4}>
173
- <h4 ref={headingRef} id={id()} class={props.class}>
221
+ <h4 ref={setHeadingRef} id={id()} class={props.class}>
174
222
  {props.children}
175
223
  </h4>
176
224
  </Match>
177
225
  <Match when={level() === 5}>
178
- <h5 ref={headingRef} id={id()} class={props.class}>
226
+ <h5 ref={setHeadingRef} id={id()} class={props.class}>
179
227
  {props.children}
180
228
  </h5>
181
229
  </Match>
182
230
  <Match when={level() === 6}>
183
- <h6 ref={headingRef} id={id()} class={props.class}>
231
+ <h6 ref={setHeadingRef} id={id()} class={props.class}>
184
232
  {props.children}
185
233
  </h6>
186
234
  </Match>
@@ -1 +1 @@
1
- {"version":3,"file":"Dialog.jsx","names":[],"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.jsx","names":[],"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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"}
@@ -1,12 +1,4 @@
1
- /**
2
- * Disclosure and Accordion components for solidaria-components
3
- *
4
- * Disclosure is a widget that can be toggled to show or hide content.
5
- * Accordion (DisclosureGroup) manages multiple disclosures with optional single-expand.
6
- *
7
- * Port of react-aria-components Disclosure.
8
- */
9
- import { type JSX } from "solid-js";
1
+ import type { JSX } from "@solidjs/web";
10
2
  import { type DisclosureState, type DisclosureGroupState, type DisclosureStateProps, type DisclosureGroupStateProps } from "@proyecto-viviana/solid-stately";
11
3
  import { type RenderChildren, type ClassNameOrFunction, type StyleOrFunction } from "./utils";
12
4
  type RefLike<T> = T | ((el: T) => void) | {
@@ -1 +1 @@
1
- {"version":3,"file":"Disclosure.d.ts","sourceRoot":"","sources":["../src/Disclosure.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Disclosure.d.ts","sourceRoot":"","sources":["../src/Disclosure.tsx"],"names":[],"mappings":"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"}
@@ -1,7 +1,20 @@
1
- import { dataAttr, filterDOMProps, useRenderProps } from "./utils.js";
2
- import { createComponent, getNextElement, insert, mergeProps, runHydrationEvents, spread, template, use } from "solid-js/web";
3
- import { createContext, createMemo, createSignal, splitProps, useContext } from "solid-js";
4
- import { createDisclosure, createDisclosureGroup, createFocusRing, mergeProps as mergeProps$2 } from "@proyecto-viviana/solidaria";
1
+ /*
2
+ * Copyright 2024 Adobe. All rights reserved.
3
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License. You may obtain a copy
5
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+ *
7
+ * Unless required by applicable law or agreed to in writing, software distributed under
8
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
+ * OF ANY KIND, either express or implied. See the License for the specific language
10
+ * governing permissions and limitations under the License.
11
+ */
12
+ // Ported to SolidJS for Proyecto Viviana; based on packages/react-aria-components/src/Disclosure.tsx
13
+ import { coerceDomRecord, dataAttr, filterDOMProps, useRenderProps } from "./utils.js";
14
+ import { createComponent, getNextElement, insert, ref, runHydrationEvents, scope, spread, template } from "@solidjs/web";
15
+ import { createContext, createMemo, createSignal, useContext } from "solid-js";
16
+ import { createDisclosure, createDisclosureGroup, createFocusRing, mergeProps as mergeProps$1 } from "@proyecto-viviana/solidaria";
17
+ import { splitProps } from "@proyecto-viviana/solidaria/utils";
5
18
  import { createDisclosureGroupState, createDisclosureState } from "@proyecto-viviana/solid-stately";
6
19
  //#region src/Disclosure.tsx
7
20
  /**
@@ -12,8 +25,9 @@ import { createDisclosureGroupState, createDisclosureState } from "@proyecto-viv
12
25
  *
13
26
  * Port of react-aria-components Disclosure.
14
27
  */
15
- var _tmpl$ = /*#__PURE__*/ template(`<div>`), _tmpl$2 = /*#__PURE__*/ template(`<button>`);
16
- function assignRef(ref, el) {
28
+ var _tmpl$ = /* @__PURE__ */ template(`<div>`);
29
+ var _tmpl$2 = /* @__PURE__ */ template(`<button>`);
30
+ function assignRef$1(ref, el) {
17
31
  if (!ref) return;
18
32
  if (typeof ref === "function") ref(el);
19
33
  else if (typeof ref === "object" && "current" in ref) ref.current = el;
@@ -74,26 +88,34 @@ function DisclosureGroup(props) {
74
88
  const domProps = createMemo(() => filterDOMProps(rest, { global: true }));
75
89
  const contextValue = { state };
76
90
  const { ref: _ref, ...cleanGroupProps } = groupProps;
77
- return createComponent(DisclosureGroupStateContext.Provider, {
91
+ return createComponent(DisclosureGroupStateContext, {
78
92
  value: state,
79
93
  get children() {
80
- return createComponent(DisclosureGroupContext.Provider, {
94
+ return createComponent(DisclosureGroupContext, {
81
95
  value: contextValue,
82
96
  get children() {
83
97
  var _el$ = getNextElement(_tmpl$);
84
- use((el) => assignRef(local.ref, el), _el$);
85
- spread(_el$, mergeProps(domProps, cleanGroupProps, {
86
- get ["class"]() {
87
- return renderProps.class();
88
- },
89
- get style() {
90
- return renderProps.style();
91
- },
92
- get ["data-disabled"]() {
93
- return dataAttr(state.isDisabled);
98
+ ref(() => {
99
+ return (el) => assignRef$1(local.ref, el);
100
+ }, _el$);
101
+ spread(_el$, [
102
+ domProps,
103
+ cleanGroupProps,
104
+ {
105
+ get "class"() {
106
+ return renderProps.class();
107
+ },
108
+ get style() {
109
+ return renderProps.style();
110
+ },
111
+ get "data-disabled"() {
112
+ return dataAttr(state.isDisabled);
113
+ }
94
114
  }
95
- }), false, true);
96
- insert(_el$, () => props.children);
115
+ ], true);
116
+ insert(_el$, scope(() => {
117
+ return props.children;
118
+ }));
97
119
  runHydrationEvents();
98
120
  return _el$;
99
121
  }
@@ -163,35 +185,41 @@ function Disclosure(props) {
163
185
  const setPanelRef = (el) => {
164
186
  setPanelRefSignal(el);
165
187
  };
166
- return createComponent(DisclosureStateContext.Provider, {
188
+ return createComponent(DisclosureStateContext, {
167
189
  value: state,
168
190
  get children() {
169
- return createComponent(DisclosureContext.Provider, {
191
+ return createComponent(DisclosureContext, {
170
192
  value: contextValue,
171
193
  get children() {
172
- return createComponent(DisclosurePanelRefContext.Provider, {
194
+ return createComponent(DisclosurePanelRefContext, {
173
195
  value: setPanelRef,
174
196
  get children() {
175
197
  var _el$2 = getNextElement(_tmpl$);
176
- use((el) => assignRef(local.ref, el), _el$2);
177
- spread(_el$2, mergeProps(() => mergeProps$2(domProps(), focusWithinProps), {
178
- get ["class"]() {
198
+ ref(() => {
199
+ return (el) => assignRef$1(local.ref, el);
200
+ }, _el$2);
201
+ spread(_el$2, [() => {
202
+ return mergeProps$1(domProps(), focusWithinProps);
203
+ }, {
204
+ get "class"() {
179
205
  return renderProps.class();
180
206
  },
181
207
  get style() {
182
208
  return renderProps.style();
183
209
  },
184
- get ["data-expanded"]() {
210
+ get "data-expanded"() {
185
211
  return dataAttr(state.isExpanded());
186
212
  },
187
- get ["data-disabled"]() {
213
+ get "data-disabled"() {
188
214
  return dataAttr(isDisabled());
189
215
  },
190
- get ["data-focus-visible-within"]() {
216
+ get "data-focus-visible-within"() {
191
217
  return dataAttr(isFocusVisibleWithin());
192
218
  }
193
- }), false, true);
194
- insert(_el$2, () => props.children);
219
+ }], true);
220
+ insert(_el$2, scope(() => {
221
+ return props.children;
222
+ }));
195
223
  runHydrationEvents();
196
224
  return _el$2;
197
225
  }
@@ -227,40 +255,44 @@ function DisclosureTrigger(props) {
227
255
  const { ref: _ref, ...rest } = focusProps;
228
256
  return rest;
229
257
  };
230
- return (() => {
231
- var _el$3 = getNextElement(_tmpl$2);
232
- use((el) => assignRef(local.ref, el), _el$3);
233
- spread(_el$3, mergeProps(() => mergeProps$2(domProps(), getButtonProps(), cleanFocusProps()), {
234
- "type": "button",
235
- get tabindex() {
236
- return isDisabled() ? void 0 : 0;
237
- },
238
- get ["class"]() {
239
- return local.class;
240
- },
241
- get style() {
242
- return local.style;
243
- },
244
- get ["data-expanded"]() {
245
- return dataAttr(isExpanded());
246
- },
247
- get ["data-disabled"]() {
248
- return dataAttr(isDisabled());
249
- },
250
- get ["data-pressed"]() {
251
- return dataAttr(disclosureAria.isPressed());
252
- },
253
- get ["data-focused"]() {
254
- return dataAttr(isFocused());
255
- },
256
- get ["data-focus-visible"]() {
257
- return dataAttr(isFocusVisible());
258
- }
259
- }), false, true);
260
- insert(_el$3, () => local.children);
261
- runHydrationEvents();
262
- return _el$3;
263
- })();
258
+ var _el$3 = getNextElement(_tmpl$2);
259
+ ref(() => {
260
+ return (el) => assignRef$1(local.ref, el);
261
+ }, _el$3);
262
+ spread(_el$3, [() => {
263
+ return mergeProps$1(domProps(), getButtonProps(), cleanFocusProps());
264
+ }, {
265
+ type: "button",
266
+ get tabindex() {
267
+ return isDisabled() ? void 0 : 0;
268
+ },
269
+ get "class"() {
270
+ return local.class;
271
+ },
272
+ get style() {
273
+ return local.style;
274
+ },
275
+ get "data-expanded"() {
276
+ return dataAttr(isExpanded());
277
+ },
278
+ get "data-disabled"() {
279
+ return dataAttr(isDisabled());
280
+ },
281
+ get "data-pressed"() {
282
+ return dataAttr(disclosureAria.isPressed());
283
+ },
284
+ get "data-focused"() {
285
+ return dataAttr(isFocused());
286
+ },
287
+ get "data-focus-visible"() {
288
+ return dataAttr(isFocusVisible());
289
+ }
290
+ }], true);
291
+ insert(_el$3, scope(() => {
292
+ return local.children;
293
+ }));
294
+ runHydrationEvents();
295
+ return _el$3;
264
296
  }
265
297
  /**
266
298
  * DisclosurePanel contains the content that is shown/hidden.
@@ -297,33 +329,43 @@ function DisclosurePanel(props) {
297
329
  const { ref: _ref, ...rest } = context.disclosureAria.panelProps;
298
330
  return rest;
299
331
  };
300
- return (() => {
301
- var _el$4 = getNextElement(_tmpl$);
302
- use((el) => {
332
+ var _el$4 = getNextElement(_tmpl$);
333
+ ref(() => {
334
+ return (el) => {
303
335
  panelRefSetter?.(el);
304
- assignRef(local.ref, el);
305
- }, _el$4);
306
- spread(_el$4, mergeProps(() => mergeProps$2(domProps(), focusWithinProps), getPanelProps, {
336
+ assignRef$1(local.ref, el);
337
+ };
338
+ }, _el$4);
339
+ spread(_el$4, [
340
+ () => {
341
+ return mergeProps$1(domProps(), focusWithinProps);
342
+ },
343
+ () => {
344
+ return coerceDomRecord(getPanelProps());
345
+ },
346
+ {
307
347
  get role() {
308
348
  return local.role ?? "group";
309
349
  },
310
- get ["class"]() {
350
+ get "class"() {
311
351
  return renderProps.class();
312
352
  },
313
353
  get style() {
314
354
  return renderProps.style();
315
355
  },
316
- get ["data-expanded"]() {
356
+ get "data-expanded"() {
317
357
  return dataAttr(isExpanded());
318
358
  },
319
- get ["data-focus-visible-within"]() {
359
+ get "data-focus-visible-within"() {
320
360
  return dataAttr(isFocusVisibleWithin());
321
361
  }
322
- }), false, true);
323
- insert(_el$4, () => renderProps.renderChildren());
324
- runHydrationEvents();
325
- return _el$4;
326
- })();
362
+ }
363
+ ], true);
364
+ insert(_el$4, scope(() => {
365
+ return renderProps.renderChildren();
366
+ }));
367
+ runHydrationEvents();
368
+ return _el$4;
327
369
  }
328
370
  //#endregion
329
371
  export { Disclosure, DisclosureContext, DisclosureGroup, DisclosureGroupContext, DisclosureGroupStateContext, DisclosurePanel, DisclosureStateContext, DisclosureTrigger, useDisclosureContext, useDisclosureGroupContext };