@proyecto-viviana/solidaria 0.4.0 → 0.4.2

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 (480) hide show
  1. package/dist/_chunk/DragManager.js +627 -0
  2. package/dist/_chunk/DragManager.js.map +1 -0
  3. package/dist/_chunk/DragManager.jsx +627 -0
  4. package/dist/_chunk/DragManager.jsx.map +1 -0
  5. package/dist/_chunk/FocusScope.js +400 -0
  6. package/dist/_chunk/FocusScope.js.map +1 -0
  7. package/dist/_chunk/FocusScope.jsx +375 -0
  8. package/dist/_chunk/FocusScope.jsx.map +1 -0
  9. package/dist/_chunk/actiongroup.js +13 -79
  10. package/dist/_chunk/actiongroup.js.map +1 -1
  11. package/dist/_chunk/actiongroup.jsx +13 -79
  12. package/dist/_chunk/actiongroup.jsx.map +1 -1
  13. package/dist/_chunk/{live-announcer.js → announce.js} +1 -1
  14. package/dist/_chunk/announce.js.map +1 -0
  15. package/dist/_chunk/{live-announcer.jsx → announce.jsx} +1 -1
  16. package/dist/_chunk/announce.jsx.map +1 -0
  17. package/dist/_chunk/autocomplete.js +56 -8
  18. package/dist/_chunk/autocomplete.js.map +1 -1
  19. package/dist/_chunk/autocomplete.jsx +56 -8
  20. package/dist/_chunk/autocomplete.jsx.map +1 -1
  21. package/dist/_chunk/breadcrumbs.js +6 -4
  22. package/dist/_chunk/breadcrumbs.js.map +1 -1
  23. package/dist/_chunk/breadcrumbs.jsx +6 -4
  24. package/dist/_chunk/breadcrumbs.jsx.map +1 -1
  25. package/dist/_chunk/button.js +8 -9
  26. package/dist/_chunk/button.js.map +1 -1
  27. package/dist/_chunk/button.jsx +8 -9
  28. package/dist/_chunk/button.jsx.map +1 -1
  29. package/dist/_chunk/calendar.js +27 -26
  30. package/dist/_chunk/calendar.js.map +1 -1
  31. package/dist/_chunk/calendar.jsx +27 -26
  32. package/dist/_chunk/calendar.jsx.map +1 -1
  33. package/dist/_chunk/checkbox.js +5 -4
  34. package/dist/_chunk/checkbox.js.map +1 -1
  35. package/dist/_chunk/checkbox.jsx +5 -4
  36. package/dist/_chunk/checkbox.jsx.map +1 -1
  37. package/dist/_chunk/color.js +302 -18
  38. package/dist/_chunk/color.js.map +1 -1
  39. package/dist/_chunk/color.jsx +302 -18
  40. package/dist/_chunk/color.jsx.map +1 -1
  41. package/dist/_chunk/combobox.js +638 -12
  42. package/dist/_chunk/combobox.js.map +1 -1
  43. package/dist/_chunk/combobox.jsx +638 -12
  44. package/dist/_chunk/combobox.jsx.map +1 -1
  45. package/dist/_chunk/constants.js +19 -0
  46. package/dist/_chunk/constants.js.map +1 -0
  47. package/dist/_chunk/constants.jsx +19 -0
  48. package/dist/_chunk/constants.jsx.map +1 -0
  49. package/dist/_chunk/createCollator.js +3 -171
  50. package/dist/_chunk/createCollator.js.map +1 -1
  51. package/dist/_chunk/createCollator.jsx +3 -165
  52. package/dist/_chunk/createCollator.jsx.map +1 -1
  53. package/dist/_chunk/createField.js +2 -1
  54. package/dist/_chunk/createField.js.map +1 -1
  55. package/dist/_chunk/createField.jsx +2 -1
  56. package/dist/_chunk/createField.jsx.map +1 -1
  57. package/dist/_chunk/createFocus.js +12 -8
  58. package/dist/_chunk/createFocus.js.map +1 -1
  59. package/dist/_chunk/createFocus.jsx +12 -8
  60. package/dist/_chunk/createFocus.jsx.map +1 -1
  61. package/dist/_chunk/createFocusWithin.js +12 -13
  62. package/dist/_chunk/createFocusWithin.js.map +1 -1
  63. package/dist/_chunk/createFocusWithin.jsx +12 -13
  64. package/dist/_chunk/createFocusWithin.jsx.map +1 -1
  65. package/dist/_chunk/createFocusable.js +3 -3
  66. package/dist/_chunk/createFocusable.js.map +1 -1
  67. package/dist/_chunk/createFocusable.jsx +3 -3
  68. package/dist/_chunk/createFocusable.jsx.map +1 -1
  69. package/dist/_chunk/{form.js → createFormReset.js} +1 -1
  70. package/dist/_chunk/createFormReset.js.map +1 -0
  71. package/dist/_chunk/{form.jsx → createFormReset.jsx} +1 -1
  72. package/dist/_chunk/createFormReset.jsx.map +1 -0
  73. package/dist/_chunk/createHover.js +2 -1
  74. package/dist/_chunk/createHover.js.map +1 -1
  75. package/dist/_chunk/createHover.jsx +2 -1
  76. package/dist/_chunk/createHover.jsx.map +1 -1
  77. package/dist/_chunk/createInteractionModality.js +2 -3
  78. package/dist/_chunk/createInteractionModality.js.map +1 -1
  79. package/dist/_chunk/createInteractionModality.jsx +2 -3
  80. package/dist/_chunk/createInteractionModality.jsx.map +1 -1
  81. package/dist/_chunk/createLabel.js +2 -1
  82. package/dist/_chunk/createLabel.js.map +1 -1
  83. package/dist/_chunk/createLabel.jsx +2 -1
  84. package/dist/_chunk/createLabel.jsx.map +1 -1
  85. package/dist/_chunk/createLabels.js +3 -2
  86. package/dist/_chunk/createLabels.js.map +1 -1
  87. package/dist/_chunk/createLabels.jsx +3 -2
  88. package/dist/_chunk/createLabels.jsx.map +1 -1
  89. package/dist/_chunk/createLandmark.js +1 -1
  90. package/dist/_chunk/createLandmark.jsx +1 -1
  91. package/dist/_chunk/createProgressBar.js +2 -1
  92. package/dist/_chunk/createProgressBar.js.map +1 -1
  93. package/dist/_chunk/createProgressBar.jsx +2 -1
  94. package/dist/_chunk/createProgressBar.jsx.map +1 -1
  95. package/dist/_chunk/createSelectableItem.js +7 -3
  96. package/dist/_chunk/createSelectableItem.js.map +1 -1
  97. package/dist/_chunk/createSelectableItem.jsx +7 -3
  98. package/dist/_chunk/createSelectableItem.jsx.map +1 -1
  99. package/dist/_chunk/createStringFormatter.js +61 -0
  100. package/dist/_chunk/createStringFormatter.js.map +1 -0
  101. package/dist/_chunk/createStringFormatter.jsx +61 -0
  102. package/dist/_chunk/createStringFormatter.jsx.map +1 -0
  103. package/dist/_chunk/createToggle.js +5 -4
  104. package/dist/_chunk/createToggle.js.map +1 -1
  105. package/dist/_chunk/createToggle.jsx +5 -4
  106. package/dist/_chunk/createToggle.jsx.map +1 -1
  107. package/dist/_chunk/datepicker.js +1413 -1100
  108. package/dist/_chunk/datepicker.js.map +1 -1
  109. package/dist/_chunk/datepicker.jsx +1413 -1100
  110. package/dist/_chunk/datepicker.jsx.map +1 -1
  111. package/dist/_chunk/disclosure.js +2 -2
  112. package/dist/_chunk/disclosure.js.map +1 -1
  113. package/dist/_chunk/disclosure.jsx +2 -2
  114. package/dist/_chunk/disclosure.jsx.map +1 -1
  115. package/dist/_chunk/dnd.js +1586 -495
  116. package/dist/_chunk/dnd.js.map +1 -1
  117. package/dist/_chunk/dnd.jsx +1586 -495
  118. package/dist/_chunk/dnd.jsx.map +1 -1
  119. package/dist/_chunk/env.js +1 -19
  120. package/dist/_chunk/env.js.map +1 -1
  121. package/dist/_chunk/env.jsx +1 -19
  122. package/dist/_chunk/env.jsx.map +1 -1
  123. package/dist/_chunk/focus.js +1 -1
  124. package/dist/_chunk/focus.js.map +1 -1
  125. package/dist/_chunk/focus.jsx +1 -1
  126. package/dist/_chunk/focus.jsx.map +1 -1
  127. package/dist/_chunk/focus2.js +54 -318
  128. package/dist/_chunk/focus2.js.map +1 -1
  129. package/dist/_chunk/focus2.jsx +53 -292
  130. package/dist/_chunk/focus2.jsx.map +1 -1
  131. package/dist/_chunk/grid.js +1 -1
  132. package/dist/_chunk/grid.jsx +1 -1
  133. package/dist/_chunk/gridlist.js +14 -9
  134. package/dist/_chunk/gridlist.js.map +1 -1
  135. package/dist/_chunk/gridlist.jsx +14 -9
  136. package/dist/_chunk/gridlist.jsx.map +1 -1
  137. package/dist/_chunk/i18n.js +3 -58
  138. package/dist/_chunk/i18n.js.map +1 -1
  139. package/dist/_chunk/i18n.jsx +3 -58
  140. package/dist/_chunk/i18n.jsx.map +1 -1
  141. package/dist/_chunk/interactions.js +99 -9
  142. package/dist/_chunk/interactions.js.map +1 -1
  143. package/dist/_chunk/interactions.jsx +97 -9
  144. package/dist/_chunk/interactions.jsx.map +1 -1
  145. package/dist/_chunk/link.js +2 -1
  146. package/dist/_chunk/link.js.map +1 -1
  147. package/dist/_chunk/link.jsx +2 -1
  148. package/dist/_chunk/link.jsx.map +1 -1
  149. package/dist/_chunk/listbox.js +42 -10
  150. package/dist/_chunk/listbox.js.map +1 -1
  151. package/dist/_chunk/listbox.jsx +42 -10
  152. package/dist/_chunk/listbox.jsx.map +1 -1
  153. package/dist/_chunk/locale.js +173 -0
  154. package/dist/_chunk/locale.js.map +1 -0
  155. package/dist/_chunk/locale.jsx +167 -0
  156. package/dist/_chunk/locale.jsx.map +1 -0
  157. package/dist/_chunk/menu.js +5 -4
  158. package/dist/_chunk/menu.js.map +1 -1
  159. package/dist/_chunk/menu.jsx +5 -4
  160. package/dist/_chunk/menu.jsx.map +1 -1
  161. package/dist/_chunk/numberfield.js +3 -2
  162. package/dist/_chunk/numberfield.js.map +1 -1
  163. package/dist/_chunk/numberfield.jsx +3 -2
  164. package/dist/_chunk/numberfield.jsx.map +1 -1
  165. package/dist/_chunk/overlays.js +1 -1
  166. package/dist/_chunk/overlays.jsx +1 -1
  167. package/dist/_chunk/popover.js +3 -3
  168. package/dist/_chunk/popover.js.map +1 -1
  169. package/dist/_chunk/popover.jsx +3 -3
  170. package/dist/_chunk/popover.jsx.map +1 -1
  171. package/dist/_chunk/radio.js +7 -6
  172. package/dist/_chunk/radio.js.map +1 -1
  173. package/dist/_chunk/radio.jsx +7 -6
  174. package/dist/_chunk/radio.jsx.map +1 -1
  175. package/dist/_chunk/reactivity.js +21 -0
  176. package/dist/_chunk/reactivity.js.map +1 -0
  177. package/dist/_chunk/reactivity.jsx +21 -0
  178. package/dist/_chunk/reactivity.jsx.map +1 -0
  179. package/dist/_chunk/searchfield.js +2 -1
  180. package/dist/_chunk/searchfield.js.map +1 -1
  181. package/dist/_chunk/searchfield.jsx +2 -1
  182. package/dist/_chunk/searchfield.jsx.map +1 -1
  183. package/dist/_chunk/select.js +8 -5
  184. package/dist/_chunk/select.js.map +1 -1
  185. package/dist/_chunk/select.jsx +8 -5
  186. package/dist/_chunk/select.jsx.map +1 -1
  187. package/dist/_chunk/selection.js +8 -21
  188. package/dist/_chunk/selection.js.map +1 -1
  189. package/dist/_chunk/selection.jsx +8 -21
  190. package/dist/_chunk/selection.jsx.map +1 -1
  191. package/dist/_chunk/separator.js +1 -1
  192. package/dist/_chunk/separator.jsx +1 -1
  193. package/dist/_chunk/slider.js +5 -4
  194. package/dist/_chunk/slider.js.map +1 -1
  195. package/dist/_chunk/slider.jsx +5 -4
  196. package/dist/_chunk/slider.jsx.map +1 -1
  197. package/dist/_chunk/spinbutton.js +153 -0
  198. package/dist/_chunk/spinbutton.js.map +1 -0
  199. package/dist/_chunk/spinbutton.jsx +153 -0
  200. package/dist/_chunk/spinbutton.jsx.map +1 -0
  201. package/dist/_chunk/table.js +45 -8
  202. package/dist/_chunk/table.js.map +1 -1
  203. package/dist/_chunk/table.jsx +45 -8
  204. package/dist/_chunk/table.jsx.map +1 -1
  205. package/dist/_chunk/tabs.js +11 -8
  206. package/dist/_chunk/tabs.js.map +1 -1
  207. package/dist/_chunk/tabs.jsx +11 -8
  208. package/dist/_chunk/tabs.jsx.map +1 -1
  209. package/dist/_chunk/tag.js +54 -18
  210. package/dist/_chunk/tag.js.map +1 -1
  211. package/dist/_chunk/tag.jsx +54 -18
  212. package/dist/_chunk/tag.jsx.map +1 -1
  213. package/dist/_chunk/textfield.js +2 -1
  214. package/dist/_chunk/textfield.js.map +1 -1
  215. package/dist/_chunk/textfield.jsx +2 -1
  216. package/dist/_chunk/textfield.jsx.map +1 -1
  217. package/dist/_chunk/toolbar.js +4 -36
  218. package/dist/_chunk/toolbar.js.map +1 -1
  219. package/dist/_chunk/toolbar.jsx +4 -36
  220. package/dist/_chunk/toolbar.jsx.map +1 -1
  221. package/dist/_chunk/tooltip.js +2 -2
  222. package/dist/_chunk/tooltip.js.map +1 -1
  223. package/dist/_chunk/tooltip.jsx +2 -2
  224. package/dist/_chunk/tooltip.jsx.map +1 -1
  225. package/dist/_chunk/tree.js +42 -14
  226. package/dist/_chunk/tree.js.map +1 -1
  227. package/dist/_chunk/tree.jsx +42 -14
  228. package/dist/_chunk/tree.jsx.map +1 -1
  229. package/dist/_chunk/utils.js +59 -19
  230. package/dist/_chunk/utils.js.map +1 -1
  231. package/dist/_chunk/utils.jsx +59 -19
  232. package/dist/_chunk/utils.jsx.map +1 -1
  233. package/dist/_chunk/visually-hidden.js +3 -2
  234. package/dist/_chunk/visually-hidden.js.map +1 -1
  235. package/dist/_chunk/visually-hidden.jsx +3 -2
  236. package/dist/_chunk/visually-hidden.jsx.map +1 -1
  237. package/dist/actiongroup/createActionGroup.d.ts.map +1 -1
  238. package/dist/autocomplete/createAutocomplete.d.ts +10 -7
  239. package/dist/autocomplete/createAutocomplete.d.ts.map +1 -1
  240. package/dist/breadcrumbs/createBreadcrumbs.d.ts.map +1 -1
  241. package/dist/button/createToggleButtonGroup.d.ts.map +1 -1
  242. package/dist/calendar/createCalendar.d.ts.map +1 -1
  243. package/dist/calendar/createCalendarCell.d.ts.map +1 -1
  244. package/dist/calendar/createCalendarGrid.d.ts.map +1 -1
  245. package/dist/calendar/createRangeCalendar.d.ts.map +1 -1
  246. package/dist/calendar/createRangeCalendarCell.d.ts.map +1 -1
  247. package/dist/calendar/intl/index.d.ts +1 -1
  248. package/dist/calendar/intl/index.d.ts.map +1 -1
  249. package/dist/collections/index.js +1 -1
  250. package/dist/collections/index.jsx +1 -1
  251. package/dist/color/createColorArea.d.ts.map +1 -1
  252. package/dist/color/createColorField.d.ts.map +1 -1
  253. package/dist/color/createColorSlider.d.ts.map +1 -1
  254. package/dist/color/createColorSwatch.d.ts.map +1 -1
  255. package/dist/color/createColorWheel.d.ts.map +1 -1
  256. package/dist/color/intl/index.d.ts +30 -0
  257. package/dist/color/intl/index.d.ts.map +1 -0
  258. package/dist/combobox/createComboBox.d.ts.map +1 -1
  259. package/dist/combobox/intl/generated-locales.d.ts +16 -0
  260. package/dist/combobox/intl/generated-locales.d.ts.map +1 -0
  261. package/dist/combobox/intl/index.d.ts +2 -2
  262. package/dist/combobox/intl/index.d.ts.map +1 -1
  263. package/dist/datepicker/createDateField.d.ts +45 -23
  264. package/dist/datepicker/createDateField.d.ts.map +1 -1
  265. package/dist/datepicker/createDatePicker.d.ts +34 -6
  266. package/dist/datepicker/createDatePicker.d.ts.map +1 -1
  267. package/dist/datepicker/createDatePickerGroup.d.ts +13 -13
  268. package/dist/datepicker/createDatePickerGroup.d.ts.map +1 -1
  269. package/dist/datepicker/createDateRangePicker.d.ts +55 -7
  270. package/dist/datepicker/createDateRangePicker.d.ts.map +1 -1
  271. package/dist/datepicker/createDateSegment.d.ts +6 -15
  272. package/dist/datepicker/createDateSegment.d.ts.map +1 -1
  273. package/dist/datepicker/createDisplayNames.d.ts +17 -0
  274. package/dist/datepicker/createDisplayNames.d.ts.map +1 -0
  275. package/dist/datepicker/createTimeField.d.ts +12 -49
  276. package/dist/datepicker/createTimeField.d.ts.map +1 -1
  277. package/dist/datepicker/index.d.ts +3 -3
  278. package/dist/datepicker/index.d.ts.map +1 -1
  279. package/dist/datepicker/index.js +2 -2
  280. package/dist/datepicker/index.jsx +2 -2
  281. package/dist/datepicker/intl.d.ts +12 -0
  282. package/dist/datepicker/intl.d.ts.map +1 -0
  283. package/dist/dnd/DragManager.d.ts +86 -0
  284. package/dist/dnd/DragManager.d.ts.map +1 -0
  285. package/dist/dnd/DropTargetKeyboardNavigation.d.ts +42 -0
  286. package/dist/dnd/DropTargetKeyboardNavigation.d.ts.map +1 -0
  287. package/dist/dnd/createDrag.d.ts.map +1 -1
  288. package/dist/dnd/createDraggableCollection.d.ts.map +1 -1
  289. package/dist/dnd/createDraggableItem.d.ts +12 -7
  290. package/dist/dnd/createDraggableItem.d.ts.map +1 -1
  291. package/dist/dnd/createDroppableCollection.d.ts +7 -15
  292. package/dist/dnd/createDroppableCollection.d.ts.map +1 -1
  293. package/dist/dnd/index.d.ts +5 -1
  294. package/dist/dnd/index.d.ts.map +1 -1
  295. package/dist/dnd/index.js +3 -2
  296. package/dist/dnd/index.jsx +3 -2
  297. package/dist/dnd/intl/index.d.ts +39 -0
  298. package/dist/dnd/intl/index.d.ts.map +1 -0
  299. package/dist/dnd/utils.d.ts +5 -0
  300. package/dist/dnd/utils.d.ts.map +1 -1
  301. package/dist/focus/FocusScope.d.ts +7 -0
  302. package/dist/focus/FocusScope.d.ts.map +1 -1
  303. package/dist/focus/index.d.ts +2 -1
  304. package/dist/focus/index.d.ts.map +1 -1
  305. package/dist/focus/index.js +3 -2
  306. package/dist/focus/index.jsx +3 -2
  307. package/dist/focus/virtualFocus.d.ts +26 -0
  308. package/dist/focus/virtualFocus.d.ts.map +1 -0
  309. package/dist/form/index.js +1 -1
  310. package/dist/form/index.jsx +1 -1
  311. package/dist/gridlist/createGridList.d.ts.map +1 -1
  312. package/dist/i18n/index.js +4 -2
  313. package/dist/i18n/index.jsx +4 -2
  314. package/dist/index.d.ts +3 -3
  315. package/dist/index.d.ts.map +1 -1
  316. package/dist/index.js +18 -12
  317. package/dist/index.jsx +18 -12
  318. package/dist/interactions/FocusableProvider.d.ts.map +1 -1
  319. package/dist/interactions/createFocus.d.ts.map +1 -1
  320. package/dist/interactions/createFocusWithin.d.ts.map +1 -1
  321. package/dist/interactions/createInteractionModality.d.ts.map +1 -1
  322. package/dist/interactions/index.js +1 -2
  323. package/dist/interactions/index.jsx +1 -2
  324. package/dist/label/createLabels.d.ts.map +1 -1
  325. package/dist/listbox/createListBox.d.ts.map +1 -1
  326. package/dist/listbox/createOption.d.ts +1 -1
  327. package/dist/listbox/createOption.d.ts.map +1 -1
  328. package/dist/live-announcer/index.js +1 -1
  329. package/dist/live-announcer/index.jsx +1 -1
  330. package/dist/select/createSelect.d.ts +2 -0
  331. package/dist/select/createSelect.d.ts.map +1 -1
  332. package/dist/selection/createSelectableItem.d.ts.map +1 -1
  333. package/dist/selection/index.js +2 -1
  334. package/dist/selection/index.jsx +2 -1
  335. package/dist/spinbutton/createSpinButton.d.ts +41 -0
  336. package/dist/spinbutton/createSpinButton.d.ts.map +1 -0
  337. package/dist/spinbutton/index.d.ts +3 -0
  338. package/dist/spinbutton/index.d.ts.map +1 -0
  339. package/dist/spinbutton/index.js +2 -0
  340. package/dist/spinbutton/index.jsx +2 -0
  341. package/dist/spinbutton/intl.d.ts +5 -0
  342. package/dist/spinbutton/intl.d.ts.map +1 -0
  343. package/dist/table/createTable.d.ts.map +1 -1
  344. package/dist/table/createTableColumnHeader.d.ts.map +1 -1
  345. package/dist/table/createTableRow.d.ts.map +1 -1
  346. package/dist/table/createTableSelectionCheckbox.d.ts.map +1 -1
  347. package/dist/table/types.d.ts +8 -0
  348. package/dist/table/types.d.ts.map +1 -1
  349. package/dist/table/utils.d.ts +15 -0
  350. package/dist/table/utils.d.ts.map +1 -0
  351. package/dist/tabs/createTabs.d.ts +1 -0
  352. package/dist/tabs/createTabs.d.ts.map +1 -1
  353. package/dist/tag/createTag.d.ts.map +1 -1
  354. package/dist/tag/createTagGroup.d.ts +7 -0
  355. package/dist/tag/createTagGroup.d.ts.map +1 -1
  356. package/dist/toolbar/createToolbar.d.ts.map +1 -1
  357. package/dist/tree/createTree.d.ts.map +1 -1
  358. package/dist/tree/createTreeSelectionCheckbox.d.ts.map +1 -1
  359. package/dist/utils/animation.d.ts.map +1 -1
  360. package/dist/utils/dom.d.ts +1 -0
  361. package/dist/utils/dom.d.ts.map +1 -1
  362. package/dist/utils/index.d.ts +1 -1
  363. package/dist/utils/index.d.ts.map +1 -1
  364. package/dist/utils/index.js +4 -3
  365. package/dist/utils/index.jsx +4 -3
  366. package/package.json +2 -2
  367. package/src/actiongroup/createActionGroup.ts +26 -109
  368. package/src/autocomplete/createAutocomplete.ts +136 -15
  369. package/src/breadcrumbs/createBreadcrumbs.ts +12 -4
  370. package/src/button/createToggleButtonGroup.ts +19 -14
  371. package/src/calendar/createCalendar.ts +3 -4
  372. package/src/calendar/createCalendarCell.ts +17 -3
  373. package/src/calendar/createCalendarGrid.ts +5 -4
  374. package/src/calendar/createRangeCalendar.ts +27 -17
  375. package/src/calendar/createRangeCalendarCell.ts +17 -3
  376. package/src/calendar/intl/index.ts +8 -0
  377. package/src/color/createColorArea.ts +17 -10
  378. package/src/color/createColorField.ts +8 -1
  379. package/src/color/createColorSlider.ts +1 -2
  380. package/src/color/createColorSwatch.ts +4 -2
  381. package/src/color/createColorWheel.ts +0 -6
  382. package/src/color/intl/index.ts +316 -0
  383. package/src/combobox/createComboBox.ts +35 -4
  384. package/src/combobox/intl/generated-locales.ts +635 -0
  385. package/src/combobox/intl/index.ts +8 -2
  386. package/src/datepicker/createDateField.ts +228 -213
  387. package/src/datepicker/createDatePicker.ts +157 -146
  388. package/src/datepicker/createDatePickerGroup.ts +88 -82
  389. package/src/datepicker/createDateRangePicker.ts +230 -179
  390. package/src/datepicker/createDateSegment.ts +386 -389
  391. package/src/datepicker/createDisplayNames.ts +45 -0
  392. package/src/datepicker/createTimeField.ts +36 -129
  393. package/src/datepicker/index.ts +13 -14
  394. package/src/datepicker/intl.ts +633 -0
  395. package/src/dnd/DragManager.ts +693 -0
  396. package/src/dnd/DropTargetKeyboardNavigation.ts +337 -0
  397. package/src/dnd/createDrag.ts +31 -5
  398. package/src/dnd/createDraggableCollection.ts +33 -15
  399. package/src/dnd/createDraggableItem.ts +92 -5
  400. package/src/dnd/createDroppableCollection.ts +487 -373
  401. package/src/dnd/index.ts +11 -0
  402. package/src/dnd/intl/ar-AE.json +29 -0
  403. package/src/dnd/intl/bg-BG.json +29 -0
  404. package/src/dnd/intl/cs-CZ.json +29 -0
  405. package/src/dnd/intl/da-DK.json +29 -0
  406. package/src/dnd/intl/de-DE.json +29 -0
  407. package/src/dnd/intl/el-GR.json +29 -0
  408. package/src/dnd/intl/en-US.json +29 -0
  409. package/src/dnd/intl/es-ES.json +29 -0
  410. package/src/dnd/intl/et-EE.json +29 -0
  411. package/src/dnd/intl/fi-FI.json +29 -0
  412. package/src/dnd/intl/fr-FR.json +29 -0
  413. package/src/dnd/intl/he-IL.json +29 -0
  414. package/src/dnd/intl/hr-HR.json +29 -0
  415. package/src/dnd/intl/hu-HU.json +29 -0
  416. package/src/dnd/intl/index.ts +139 -0
  417. package/src/dnd/intl/it-IT.json +29 -0
  418. package/src/dnd/intl/ja-JP.json +29 -0
  419. package/src/dnd/intl/ko-KR.json +29 -0
  420. package/src/dnd/intl/lt-LT.json +29 -0
  421. package/src/dnd/intl/lv-LV.json +29 -0
  422. package/src/dnd/intl/nb-NO.json +29 -0
  423. package/src/dnd/intl/nl-NL.json +29 -0
  424. package/src/dnd/intl/pl-PL.json +29 -0
  425. package/src/dnd/intl/pt-BR.json +29 -0
  426. package/src/dnd/intl/pt-PT.json +29 -0
  427. package/src/dnd/intl/ro-RO.json +29 -0
  428. package/src/dnd/intl/ru-RU.json +29 -0
  429. package/src/dnd/intl/sk-SK.json +29 -0
  430. package/src/dnd/intl/sl-SI.json +29 -0
  431. package/src/dnd/intl/sr-SP.json +29 -0
  432. package/src/dnd/intl/sv-SE.json +29 -0
  433. package/src/dnd/intl/tr-TR.json +29 -0
  434. package/src/dnd/intl/uk-UA.json +29 -0
  435. package/src/dnd/intl/zh-CN.json +29 -0
  436. package/src/dnd/intl/zh-TW.json +29 -0
  437. package/src/dnd/utils.ts +36 -0
  438. package/src/focus/FocusScope.tsx +120 -12
  439. package/src/focus/index.ts +8 -0
  440. package/src/focus/virtualFocus.ts +55 -0
  441. package/src/gridlist/createGridList.ts +52 -16
  442. package/src/index.ts +11 -3
  443. package/src/interactions/FocusableProvider.tsx +11 -6
  444. package/src/interactions/createFocus.ts +26 -21
  445. package/src/interactions/createFocusWithin.ts +23 -24
  446. package/src/interactions/createInteractionModality.ts +5 -3
  447. package/src/label/createLabels.ts +7 -4
  448. package/src/listbox/createListBox.ts +74 -2
  449. package/src/listbox/createOption.ts +16 -1
  450. package/src/select/createSelect.ts +23 -2
  451. package/src/selection/createSelectableItem.ts +14 -0
  452. package/src/spinbutton/createSpinButton.ts +163 -0
  453. package/src/spinbutton/index.ts +10 -0
  454. package/src/spinbutton/intl.ts +115 -0
  455. package/src/table/createTable.ts +26 -1
  456. package/src/table/createTableColumnHeader.ts +10 -0
  457. package/src/table/createTableRow.ts +10 -0
  458. package/src/table/createTableSelectionCheckbox.ts +24 -1
  459. package/src/table/types.ts +8 -0
  460. package/src/table/utils.ts +41 -0
  461. package/src/tabs/createTabs.ts +53 -12
  462. package/src/tag/createTag.ts +21 -32
  463. package/src/tag/createTagGroup.ts +92 -0
  464. package/src/toolbar/createToolbar.ts +6 -58
  465. package/src/tree/createTree.ts +69 -14
  466. package/src/tree/createTreeSelectionCheckbox.ts +14 -1
  467. package/src/utils/animation.ts +119 -27
  468. package/src/utils/dom.ts +3 -2
  469. package/src/utils/index.ts +2 -0
  470. package/dist/_chunk/createLongPress.js +0 -91
  471. package/dist/_chunk/createLongPress.js.map +0 -1
  472. package/dist/_chunk/createLongPress.jsx +0 -91
  473. package/dist/_chunk/createLongPress.jsx.map +0 -1
  474. package/dist/_chunk/form.js.map +0 -1
  475. package/dist/_chunk/form.jsx.map +0 -1
  476. package/dist/_chunk/live-announcer.js.map +0 -1
  477. package/dist/_chunk/live-announcer.jsx.map +0 -1
  478. package/dist/datepicker/createTimeSegment.d.ts +0 -29
  479. package/dist/datepicker/createTimeSegment.d.ts.map +0 -1
  480. package/src/datepicker/createTimeSegment.ts +0 -352
@@ -1 +1 @@
1
- {"version":3,"file":"disclosure.js","names":[],"sources":["../../src/disclosure/createDisclosure.ts","../../src/disclosure/createDisclosureGroup.ts"],"sourcesContent":["/**\n * createDisclosure hook for Solidaria\n *\n * Provides the behavior and accessibility implementation for a disclosure component.\n *\n * Port of @react-aria/disclosure useDisclosure.\n */\n\nimport { type JSX, createEffect, onCleanup } from \"solid-js\";\nimport { type DisclosureState } from \"@proyecto-viviana/solid-stately\";\nimport { createId, canUseDOM } from \"../ssr\";\nimport { createPress } from \"../interactions/createPress\";\nimport { mergeProps } from \"../utils/mergeProps\";\n\nexport interface AriaDisclosureProps {\n /** Whether the disclosure is disabled. */\n isDisabled?: boolean;\n}\n\nexport interface DisclosureAria {\n /** Props for the disclosure trigger button. */\n buttonProps: JSX.ButtonHTMLAttributes<HTMLButtonElement>;\n /** Props for the disclosure panel. */\n panelProps: JSX.HTMLAttributes<HTMLElement>;\n /** Whether the disclosure trigger is currently pressed. */\n isPressed: () => boolean;\n}\n\nexport function getDisclosurePanelHiddenAttribute(\n isExpanded: boolean,\n hasDOM = canUseDOM,\n): true | undefined {\n return hasDOM ? undefined : !isExpanded || undefined;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a disclosure component.\n *\n * A disclosure is a widget that can be toggled to show or hide content.\n * It consists of a trigger button and a panel.\n *\n * @example\n * ```tsx\n * import { createDisclosure } from 'solidaria';\n * import { createDisclosureState } from 'solid-stately';\n *\n * function Disclosure(props) {\n * const state = createDisclosureState(props);\n * let panelRef;\n * const { buttonProps, panelProps } = createDisclosure(\n * { get isDisabled() { return props.isDisabled; } },\n * state,\n * () => panelRef\n * );\n *\n * return (\n * <div>\n * <button {...buttonProps}>Toggle</button>\n * <div {...panelProps} ref={panelRef}>\n * {props.children}\n * </div>\n * </div>\n * );\n * }\n * ```\n */\nexport function createDisclosure(\n props: AriaDisclosureProps | (() => AriaDisclosureProps),\n state: DisclosureState,\n panelRef: () => HTMLElement | null,\n): DisclosureAria {\n // Handle both plain object and accessor function patterns\n const getProps = typeof props === \"function\" ? props : () => props;\n\n const triggerId = createId();\n const panelId = createId();\n\n let raf: number | null = null;\n let isExpandedRef: boolean | null = null;\n\n const requestFrame = (callback: FrameRequestCallback): number => {\n if (typeof requestAnimationFrame === \"function\") {\n return requestAnimationFrame(callback);\n }\n\n return window.setTimeout(() => callback(performance.now()), 16);\n };\n\n const cancelFrame = (id: number) => {\n if (typeof cancelAnimationFrame === \"function\") {\n cancelAnimationFrame(id);\n } else {\n window.clearTimeout(id);\n }\n };\n\n const cancelPendingRaf = () => {\n if (raf != null && canUseDOM) {\n cancelFrame(raf);\n raf = null;\n }\n };\n\n const setPanelSize = (panel: HTMLElement, width: string, height: string) => {\n panel.style.setProperty(\"--disclosure-panel-width\", width);\n panel.style.setProperty(\"--disclosure-panel-height\", height);\n };\n\n const getPanelAnimations = (panel: HTMLElement): Animation[] => {\n return typeof panel.getAnimations === \"function\" ? panel.getAnimations() : [];\n };\n\n // Handle browser find-in-page reveal for collapsed panels.\n createEffect(() => {\n if (!canUseDOM) return;\n\n const panel = panelRef();\n if (!panel) return;\n\n const handleBeforeMatch = () => {\n cancelPendingRaf();\n raf = requestFrame(() => {\n if (panelRef() === panel) {\n panel.setAttribute(\"hidden\", \"until-found\");\n }\n raf = null;\n });\n\n state.toggle();\n };\n\n panel.addEventListener(\"beforematch\", handleBeforeMatch);\n onCleanup(() => {\n panel.removeEventListener(\"beforematch\", handleBeforeMatch);\n });\n });\n\n // Handle panel visibility and animation sizing.\n createEffect(() => {\n if (!canUseDOM) return;\n\n const panel = panelRef();\n if (!panel) return;\n\n const isExpanded = state.isExpanded();\n cancelPendingRaf();\n\n if (isExpandedRef === null || typeof panel.getAnimations !== \"function\") {\n if (isExpanded) {\n panel.removeAttribute(\"hidden\");\n setPanelSize(panel, \"auto\", \"auto\");\n } else {\n panel.setAttribute(\"hidden\", \"until-found\");\n setPanelSize(panel, \"0px\", \"0px\");\n }\n } else if (isExpanded !== isExpandedRef) {\n if (isExpanded) {\n panel.removeAttribute(\"hidden\");\n setPanelSize(panel, `${panel.scrollWidth}px`, `${panel.scrollHeight}px`);\n\n Promise.all(getPanelAnimations(panel).map((animation) => animation.finished))\n .then(() => {\n if (panelRef() === panel && state.isExpanded()) {\n setPanelSize(panel, \"auto\", \"auto\");\n }\n })\n .catch(() => {});\n } else {\n setPanelSize(panel, `${panel.scrollWidth}px`, `${panel.scrollHeight}px`);\n\n // Force style recalculation before animating to zero.\n window.getComputedStyle(panel).height;\n\n setPanelSize(panel, \"0px\", \"0px\");\n\n Promise.all(getPanelAnimations(panel).map((animation) => animation.finished))\n .then(() => {\n if (panelRef() === panel && !state.isExpanded()) {\n panel.setAttribute(\"hidden\", \"until-found\");\n }\n })\n .catch(() => {});\n }\n }\n\n isExpandedRef = isExpanded;\n });\n\n onCleanup(cancelPendingRaf);\n\n // Use createPress for proper interaction handling (matches Select/Menu pattern)\n const { pressProps, isPressed } = createPress({\n get isDisabled() {\n return getProps().isDisabled;\n },\n onPressStart(event) {\n if (event.pointerType === \"keyboard\") {\n state.toggle();\n }\n },\n onPress(event) {\n if (event.pointerType !== \"keyboard\") {\n state.toggle();\n }\n },\n });\n\n return {\n isPressed,\n // Button props - merge with pressProps for consistent interaction handling\n // Using getter (not createMemo) to match createSelect pattern\n get buttonProps(): JSX.ButtonHTMLAttributes<HTMLButtonElement> {\n const p = getProps();\n return mergeProps(\n pressProps as Record<string, unknown>,\n {\n id: triggerId,\n type: \"button\",\n \"aria-expanded\": state.isExpanded(),\n \"aria-controls\": panelId,\n disabled: p.isDisabled,\n } as Record<string, unknown>,\n ) as JSX.ButtonHTMLAttributes<HTMLButtonElement>;\n },\n // Panel props\n get panelProps(): JSX.HTMLAttributes<HTMLElement> {\n return {\n id: panelId,\n role: \"group\",\n \"aria-labelledby\": triggerId,\n \"aria-hidden\": !state.isExpanded(),\n hidden: getDisclosurePanelHiddenAttribute(state.isExpanded()),\n };\n },\n };\n}\n","/**\n * createDisclosureGroup hook for Solidaria\n *\n * Provides accessibility implementation for a group of disclosures (accordion).\n *\n * Port of @react-aria/disclosure.\n */\n\nimport { type JSX } from \"solid-js\";\nimport { type DisclosureGroupState } from \"@proyecto-viviana/solid-stately\";\nimport { type MaybeAccessor } from \"../utils/reactivity\";\n\nexport interface AriaDisclosureGroupProps {\n /** Whether the disclosure group is disabled. */\n isDisabled?: boolean;\n}\n\nexport interface DisclosureGroupAria {\n /** Props for the disclosure group container. */\n groupProps: JSX.HTMLAttributes<HTMLElement>;\n}\n\n/**\n * Provides accessibility implementation for a group of disclosures (accordion).\n *\n * @example\n * ```tsx\n * import { createDisclosureGroup } from 'solidaria';\n * import { createDisclosureGroupState } from 'solid-stately';\n *\n * function Accordion(props) {\n * const state = createDisclosureGroupState(props);\n * const { groupProps } = createDisclosureGroup(props, state);\n *\n * return (\n * <div {...groupProps}>\n * {props.children}\n * </div>\n * );\n * }\n * ```\n */\nexport function createDisclosureGroup(\n _props: MaybeAccessor<AriaDisclosureGroupProps>,\n _state: DisclosureGroupState,\n): DisclosureGroupAria {\n return {\n get groupProps() {\n return {};\n },\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"disclosure.js","names":["mergeProps"],"sources":["../../src/disclosure/createDisclosure.ts","../../src/disclosure/createDisclosureGroup.ts"],"sourcesContent":["/**\n * createDisclosure hook for Solidaria\n *\n * Provides the behavior and accessibility implementation for a disclosure component.\n *\n * Port of @react-aria/disclosure useDisclosure.\n */\n\nimport { type JSX, createEffect, onCleanup } from \"solid-js\";\nimport { type DisclosureState } from \"@proyecto-viviana/solid-stately\";\nimport { createId, canUseDOM } from \"../ssr\";\nimport { createPress } from \"../interactions/createPress\";\nimport { mergeProps } from \"../utils/mergeProps\";\n\nexport interface AriaDisclosureProps {\n /** Whether the disclosure is disabled. */\n isDisabled?: boolean;\n}\n\nexport interface DisclosureAria {\n /** Props for the disclosure trigger button. */\n buttonProps: JSX.ButtonHTMLAttributes<HTMLButtonElement>;\n /** Props for the disclosure panel. */\n panelProps: JSX.HTMLAttributes<HTMLElement>;\n /** Whether the disclosure trigger is currently pressed. */\n isPressed: () => boolean;\n}\n\nexport function getDisclosurePanelHiddenAttribute(\n isExpanded: boolean,\n hasDOM = canUseDOM,\n): true | undefined {\n return hasDOM ? undefined : !isExpanded || undefined;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a disclosure component.\n *\n * A disclosure is a widget that can be toggled to show or hide content.\n * It consists of a trigger button and a panel.\n *\n * @example\n * ```tsx\n * import { createDisclosure } from 'solidaria';\n * import { createDisclosureState } from 'solid-stately';\n *\n * function Disclosure(props) {\n * const state = createDisclosureState(props);\n * let panelRef;\n * const { buttonProps, panelProps } = createDisclosure(\n * { get isDisabled() { return props.isDisabled; } },\n * state,\n * () => panelRef\n * );\n *\n * return (\n * <div>\n * <button {...buttonProps}>Toggle</button>\n * <div {...panelProps} ref={panelRef}>\n * {props.children}\n * </div>\n * </div>\n * );\n * }\n * ```\n */\nexport function createDisclosure(\n props: AriaDisclosureProps | (() => AriaDisclosureProps),\n state: DisclosureState,\n panelRef: () => HTMLElement | null,\n): DisclosureAria {\n // Handle both plain object and accessor function patterns\n const getProps = typeof props === \"function\" ? props : () => props;\n\n const triggerId = createId();\n const panelId = createId();\n\n let raf: number | null = null;\n let isExpandedRef: boolean | null = null;\n\n const requestFrame = (callback: FrameRequestCallback): number => {\n if (typeof requestAnimationFrame === \"function\") {\n return requestAnimationFrame(callback);\n }\n\n return window.setTimeout(() => callback(performance.now()), 16);\n };\n\n const cancelFrame = (id: number) => {\n if (typeof cancelAnimationFrame === \"function\") {\n cancelAnimationFrame(id);\n } else {\n window.clearTimeout(id);\n }\n };\n\n const cancelPendingRaf = () => {\n if (raf != null && canUseDOM) {\n cancelFrame(raf);\n raf = null;\n }\n };\n\n const setPanelSize = (panel: HTMLElement, width: string, height: string) => {\n panel.style.setProperty(\"--disclosure-panel-width\", width);\n panel.style.setProperty(\"--disclosure-panel-height\", height);\n };\n\n const getPanelAnimations = (panel: HTMLElement): Animation[] => {\n return typeof panel.getAnimations === \"function\" ? panel.getAnimations() : [];\n };\n\n // Handle browser find-in-page reveal for collapsed panels.\n createEffect(() => {\n if (!canUseDOM) return;\n\n const panel = panelRef();\n if (!panel) return;\n\n const handleBeforeMatch = () => {\n cancelPendingRaf();\n raf = requestFrame(() => {\n if (panelRef() === panel) {\n panel.setAttribute(\"hidden\", \"until-found\");\n }\n raf = null;\n });\n\n state.toggle();\n };\n\n panel.addEventListener(\"beforematch\", handleBeforeMatch);\n onCleanup(() => {\n panel.removeEventListener(\"beforematch\", handleBeforeMatch);\n });\n });\n\n // Handle panel visibility and animation sizing.\n createEffect(() => {\n if (!canUseDOM) return;\n\n const panel = panelRef();\n if (!panel) return;\n\n const isExpanded = state.isExpanded();\n cancelPendingRaf();\n\n if (isExpandedRef === null || typeof panel.getAnimations !== \"function\") {\n if (isExpanded) {\n panel.removeAttribute(\"hidden\");\n setPanelSize(panel, \"auto\", \"auto\");\n } else {\n panel.setAttribute(\"hidden\", \"until-found\");\n setPanelSize(panel, \"0px\", \"0px\");\n }\n } else if (isExpanded !== isExpandedRef) {\n if (isExpanded) {\n panel.removeAttribute(\"hidden\");\n setPanelSize(panel, `${panel.scrollWidth}px`, `${panel.scrollHeight}px`);\n\n Promise.all(getPanelAnimations(panel).map((animation) => animation.finished))\n .then(() => {\n if (panelRef() === panel && state.isExpanded()) {\n setPanelSize(panel, \"auto\", \"auto\");\n }\n })\n .catch(() => {});\n } else {\n setPanelSize(panel, `${panel.scrollWidth}px`, `${panel.scrollHeight}px`);\n\n // Force style recalculation before animating to zero.\n window.getComputedStyle(panel).height;\n\n setPanelSize(panel, \"0px\", \"0px\");\n\n Promise.all(getPanelAnimations(panel).map((animation) => animation.finished))\n .then(() => {\n if (panelRef() === panel && !state.isExpanded()) {\n panel.setAttribute(\"hidden\", \"until-found\");\n }\n })\n .catch(() => {});\n }\n }\n\n isExpandedRef = isExpanded;\n });\n\n onCleanup(cancelPendingRaf);\n\n // Use createPress for proper interaction handling (matches Select/Menu pattern)\n const { pressProps, isPressed } = createPress({\n get isDisabled() {\n return getProps().isDisabled;\n },\n onPressStart(event) {\n if (event.pointerType === \"keyboard\") {\n state.toggle();\n }\n },\n onPress(event) {\n if (event.pointerType !== \"keyboard\") {\n state.toggle();\n }\n },\n });\n\n return {\n isPressed,\n // Button props - merge with pressProps for consistent interaction handling\n // Using getter (not createMemo) to match createSelect pattern\n get buttonProps(): JSX.ButtonHTMLAttributes<HTMLButtonElement> {\n const p = getProps();\n return mergeProps(\n pressProps as Record<string, unknown>,\n {\n id: triggerId,\n type: \"button\",\n \"aria-expanded\": state.isExpanded(),\n \"aria-controls\": panelId,\n disabled: p.isDisabled,\n } as Record<string, unknown>,\n ) as JSX.ButtonHTMLAttributes<HTMLButtonElement>;\n },\n // Panel props\n get panelProps(): JSX.HTMLAttributes<HTMLElement> {\n return {\n id: panelId,\n role: \"group\",\n \"aria-labelledby\": triggerId,\n \"aria-hidden\": !state.isExpanded(),\n hidden: getDisclosurePanelHiddenAttribute(state.isExpanded()),\n };\n },\n };\n}\n","/**\n * createDisclosureGroup hook for Solidaria\n *\n * Provides accessibility implementation for a group of disclosures (accordion).\n *\n * Port of @react-aria/disclosure.\n */\n\nimport { type JSX } from \"solid-js\";\nimport { type DisclosureGroupState } from \"@proyecto-viviana/solid-stately\";\nimport { type MaybeAccessor } from \"../utils/reactivity\";\n\nexport interface AriaDisclosureGroupProps {\n /** Whether the disclosure group is disabled. */\n isDisabled?: boolean;\n}\n\nexport interface DisclosureGroupAria {\n /** Props for the disclosure group container. */\n groupProps: JSX.HTMLAttributes<HTMLElement>;\n}\n\n/**\n * Provides accessibility implementation for a group of disclosures (accordion).\n *\n * @example\n * ```tsx\n * import { createDisclosureGroup } from 'solidaria';\n * import { createDisclosureGroupState } from 'solid-stately';\n *\n * function Accordion(props) {\n * const state = createDisclosureGroupState(props);\n * const { groupProps } = createDisclosureGroup(props, state);\n *\n * return (\n * <div {...groupProps}>\n * {props.children}\n * </div>\n * );\n * }\n * ```\n */\nexport function createDisclosureGroup(\n _props: MaybeAccessor<AriaDisclosureGroupProps>,\n _state: DisclosureGroupState,\n): DisclosureGroupAria {\n return {\n get groupProps() {\n return {};\n },\n };\n}\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { t as createPress } from "./createPress.jsx";
2
- import { o as mergeProps } from "./env.jsx";
2
+ import { i as mergeProps$1 } from "./env.jsx";
3
3
  import { canUseDOM, createId } from "../ssr/index.jsx";
4
4
  import { createEffect, onCleanup } from "solid-js";
5
5
  //#region src/disclosure/createDisclosure.ts
@@ -133,7 +133,7 @@ function createDisclosure(props, state, panelRef) {
133
133
  isPressed,
134
134
  get buttonProps() {
135
135
  const p = getProps();
136
- return mergeProps(pressProps, {
136
+ return mergeProps$1(pressProps, {
137
137
  id: triggerId,
138
138
  type: "button",
139
139
  "aria-expanded": state.isExpanded(),
@@ -1 +1 @@
1
- {"version":3,"file":"disclosure.jsx","names":[],"sources":["../../src/disclosure/createDisclosure.ts","../../src/disclosure/createDisclosureGroup.ts"],"sourcesContent":["/**\n * createDisclosure hook for Solidaria\n *\n * Provides the behavior and accessibility implementation for a disclosure component.\n *\n * Port of @react-aria/disclosure useDisclosure.\n */\n\nimport { type JSX, createEffect, onCleanup } from \"solid-js\";\nimport { type DisclosureState } from \"@proyecto-viviana/solid-stately\";\nimport { createId, canUseDOM } from \"../ssr\";\nimport { createPress } from \"../interactions/createPress\";\nimport { mergeProps } from \"../utils/mergeProps\";\n\nexport interface AriaDisclosureProps {\n /** Whether the disclosure is disabled. */\n isDisabled?: boolean;\n}\n\nexport interface DisclosureAria {\n /** Props for the disclosure trigger button. */\n buttonProps: JSX.ButtonHTMLAttributes<HTMLButtonElement>;\n /** Props for the disclosure panel. */\n panelProps: JSX.HTMLAttributes<HTMLElement>;\n /** Whether the disclosure trigger is currently pressed. */\n isPressed: () => boolean;\n}\n\nexport function getDisclosurePanelHiddenAttribute(\n isExpanded: boolean,\n hasDOM = canUseDOM,\n): true | undefined {\n return hasDOM ? undefined : !isExpanded || undefined;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a disclosure component.\n *\n * A disclosure is a widget that can be toggled to show or hide content.\n * It consists of a trigger button and a panel.\n *\n * @example\n * ```tsx\n * import { createDisclosure } from 'solidaria';\n * import { createDisclosureState } from 'solid-stately';\n *\n * function Disclosure(props) {\n * const state = createDisclosureState(props);\n * let panelRef;\n * const { buttonProps, panelProps } = createDisclosure(\n * { get isDisabled() { return props.isDisabled; } },\n * state,\n * () => panelRef\n * );\n *\n * return (\n * <div>\n * <button {...buttonProps}>Toggle</button>\n * <div {...panelProps} ref={panelRef}>\n * {props.children}\n * </div>\n * </div>\n * );\n * }\n * ```\n */\nexport function createDisclosure(\n props: AriaDisclosureProps | (() => AriaDisclosureProps),\n state: DisclosureState,\n panelRef: () => HTMLElement | null,\n): DisclosureAria {\n // Handle both plain object and accessor function patterns\n const getProps = typeof props === \"function\" ? props : () => props;\n\n const triggerId = createId();\n const panelId = createId();\n\n let raf: number | null = null;\n let isExpandedRef: boolean | null = null;\n\n const requestFrame = (callback: FrameRequestCallback): number => {\n if (typeof requestAnimationFrame === \"function\") {\n return requestAnimationFrame(callback);\n }\n\n return window.setTimeout(() => callback(performance.now()), 16);\n };\n\n const cancelFrame = (id: number) => {\n if (typeof cancelAnimationFrame === \"function\") {\n cancelAnimationFrame(id);\n } else {\n window.clearTimeout(id);\n }\n };\n\n const cancelPendingRaf = () => {\n if (raf != null && canUseDOM) {\n cancelFrame(raf);\n raf = null;\n }\n };\n\n const setPanelSize = (panel: HTMLElement, width: string, height: string) => {\n panel.style.setProperty(\"--disclosure-panel-width\", width);\n panel.style.setProperty(\"--disclosure-panel-height\", height);\n };\n\n const getPanelAnimations = (panel: HTMLElement): Animation[] => {\n return typeof panel.getAnimations === \"function\" ? panel.getAnimations() : [];\n };\n\n // Handle browser find-in-page reveal for collapsed panels.\n createEffect(() => {\n if (!canUseDOM) return;\n\n const panel = panelRef();\n if (!panel) return;\n\n const handleBeforeMatch = () => {\n cancelPendingRaf();\n raf = requestFrame(() => {\n if (panelRef() === panel) {\n panel.setAttribute(\"hidden\", \"until-found\");\n }\n raf = null;\n });\n\n state.toggle();\n };\n\n panel.addEventListener(\"beforematch\", handleBeforeMatch);\n onCleanup(() => {\n panel.removeEventListener(\"beforematch\", handleBeforeMatch);\n });\n });\n\n // Handle panel visibility and animation sizing.\n createEffect(() => {\n if (!canUseDOM) return;\n\n const panel = panelRef();\n if (!panel) return;\n\n const isExpanded = state.isExpanded();\n cancelPendingRaf();\n\n if (isExpandedRef === null || typeof panel.getAnimations !== \"function\") {\n if (isExpanded) {\n panel.removeAttribute(\"hidden\");\n setPanelSize(panel, \"auto\", \"auto\");\n } else {\n panel.setAttribute(\"hidden\", \"until-found\");\n setPanelSize(panel, \"0px\", \"0px\");\n }\n } else if (isExpanded !== isExpandedRef) {\n if (isExpanded) {\n panel.removeAttribute(\"hidden\");\n setPanelSize(panel, `${panel.scrollWidth}px`, `${panel.scrollHeight}px`);\n\n Promise.all(getPanelAnimations(panel).map((animation) => animation.finished))\n .then(() => {\n if (panelRef() === panel && state.isExpanded()) {\n setPanelSize(panel, \"auto\", \"auto\");\n }\n })\n .catch(() => {});\n } else {\n setPanelSize(panel, `${panel.scrollWidth}px`, `${panel.scrollHeight}px`);\n\n // Force style recalculation before animating to zero.\n window.getComputedStyle(panel).height;\n\n setPanelSize(panel, \"0px\", \"0px\");\n\n Promise.all(getPanelAnimations(panel).map((animation) => animation.finished))\n .then(() => {\n if (panelRef() === panel && !state.isExpanded()) {\n panel.setAttribute(\"hidden\", \"until-found\");\n }\n })\n .catch(() => {});\n }\n }\n\n isExpandedRef = isExpanded;\n });\n\n onCleanup(cancelPendingRaf);\n\n // Use createPress for proper interaction handling (matches Select/Menu pattern)\n const { pressProps, isPressed } = createPress({\n get isDisabled() {\n return getProps().isDisabled;\n },\n onPressStart(event) {\n if (event.pointerType === \"keyboard\") {\n state.toggle();\n }\n },\n onPress(event) {\n if (event.pointerType !== \"keyboard\") {\n state.toggle();\n }\n },\n });\n\n return {\n isPressed,\n // Button props - merge with pressProps for consistent interaction handling\n // Using getter (not createMemo) to match createSelect pattern\n get buttonProps(): JSX.ButtonHTMLAttributes<HTMLButtonElement> {\n const p = getProps();\n return mergeProps(\n pressProps as Record<string, unknown>,\n {\n id: triggerId,\n type: \"button\",\n \"aria-expanded\": state.isExpanded(),\n \"aria-controls\": panelId,\n disabled: p.isDisabled,\n } as Record<string, unknown>,\n ) as JSX.ButtonHTMLAttributes<HTMLButtonElement>;\n },\n // Panel props\n get panelProps(): JSX.HTMLAttributes<HTMLElement> {\n return {\n id: panelId,\n role: \"group\",\n \"aria-labelledby\": triggerId,\n \"aria-hidden\": !state.isExpanded(),\n hidden: getDisclosurePanelHiddenAttribute(state.isExpanded()),\n };\n },\n };\n}\n","/**\n * createDisclosureGroup hook for Solidaria\n *\n * Provides accessibility implementation for a group of disclosures (accordion).\n *\n * Port of @react-aria/disclosure.\n */\n\nimport { type JSX } from \"solid-js\";\nimport { type DisclosureGroupState } from \"@proyecto-viviana/solid-stately\";\nimport { type MaybeAccessor } from \"../utils/reactivity\";\n\nexport interface AriaDisclosureGroupProps {\n /** Whether the disclosure group is disabled. */\n isDisabled?: boolean;\n}\n\nexport interface DisclosureGroupAria {\n /** Props for the disclosure group container. */\n groupProps: JSX.HTMLAttributes<HTMLElement>;\n}\n\n/**\n * Provides accessibility implementation for a group of disclosures (accordion).\n *\n * @example\n * ```tsx\n * import { createDisclosureGroup } from 'solidaria';\n * import { createDisclosureGroupState } from 'solid-stately';\n *\n * function Accordion(props) {\n * const state = createDisclosureGroupState(props);\n * const { groupProps } = createDisclosureGroup(props, state);\n *\n * return (\n * <div {...groupProps}>\n * {props.children}\n * </div>\n * );\n * }\n * ```\n */\nexport function createDisclosureGroup(\n _props: MaybeAccessor<AriaDisclosureGroupProps>,\n _state: DisclosureGroupState,\n): DisclosureGroupAria {\n return {\n get groupProps() {\n return {};\n },\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"disclosure.jsx","names":["mergeProps"],"sources":["../../src/disclosure/createDisclosure.ts","../../src/disclosure/createDisclosureGroup.ts"],"sourcesContent":["/**\n * createDisclosure hook for Solidaria\n *\n * Provides the behavior and accessibility implementation for a disclosure component.\n *\n * Port of @react-aria/disclosure useDisclosure.\n */\n\nimport { type JSX, createEffect, onCleanup } from \"solid-js\";\nimport { type DisclosureState } from \"@proyecto-viviana/solid-stately\";\nimport { createId, canUseDOM } from \"../ssr\";\nimport { createPress } from \"../interactions/createPress\";\nimport { mergeProps } from \"../utils/mergeProps\";\n\nexport interface AriaDisclosureProps {\n /** Whether the disclosure is disabled. */\n isDisabled?: boolean;\n}\n\nexport interface DisclosureAria {\n /** Props for the disclosure trigger button. */\n buttonProps: JSX.ButtonHTMLAttributes<HTMLButtonElement>;\n /** Props for the disclosure panel. */\n panelProps: JSX.HTMLAttributes<HTMLElement>;\n /** Whether the disclosure trigger is currently pressed. */\n isPressed: () => boolean;\n}\n\nexport function getDisclosurePanelHiddenAttribute(\n isExpanded: boolean,\n hasDOM = canUseDOM,\n): true | undefined {\n return hasDOM ? undefined : !isExpanded || undefined;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a disclosure component.\n *\n * A disclosure is a widget that can be toggled to show or hide content.\n * It consists of a trigger button and a panel.\n *\n * @example\n * ```tsx\n * import { createDisclosure } from 'solidaria';\n * import { createDisclosureState } from 'solid-stately';\n *\n * function Disclosure(props) {\n * const state = createDisclosureState(props);\n * let panelRef;\n * const { buttonProps, panelProps } = createDisclosure(\n * { get isDisabled() { return props.isDisabled; } },\n * state,\n * () => panelRef\n * );\n *\n * return (\n * <div>\n * <button {...buttonProps}>Toggle</button>\n * <div {...panelProps} ref={panelRef}>\n * {props.children}\n * </div>\n * </div>\n * );\n * }\n * ```\n */\nexport function createDisclosure(\n props: AriaDisclosureProps | (() => AriaDisclosureProps),\n state: DisclosureState,\n panelRef: () => HTMLElement | null,\n): DisclosureAria {\n // Handle both plain object and accessor function patterns\n const getProps = typeof props === \"function\" ? props : () => props;\n\n const triggerId = createId();\n const panelId = createId();\n\n let raf: number | null = null;\n let isExpandedRef: boolean | null = null;\n\n const requestFrame = (callback: FrameRequestCallback): number => {\n if (typeof requestAnimationFrame === \"function\") {\n return requestAnimationFrame(callback);\n }\n\n return window.setTimeout(() => callback(performance.now()), 16);\n };\n\n const cancelFrame = (id: number) => {\n if (typeof cancelAnimationFrame === \"function\") {\n cancelAnimationFrame(id);\n } else {\n window.clearTimeout(id);\n }\n };\n\n const cancelPendingRaf = () => {\n if (raf != null && canUseDOM) {\n cancelFrame(raf);\n raf = null;\n }\n };\n\n const setPanelSize = (panel: HTMLElement, width: string, height: string) => {\n panel.style.setProperty(\"--disclosure-panel-width\", width);\n panel.style.setProperty(\"--disclosure-panel-height\", height);\n };\n\n const getPanelAnimations = (panel: HTMLElement): Animation[] => {\n return typeof panel.getAnimations === \"function\" ? panel.getAnimations() : [];\n };\n\n // Handle browser find-in-page reveal for collapsed panels.\n createEffect(() => {\n if (!canUseDOM) return;\n\n const panel = panelRef();\n if (!panel) return;\n\n const handleBeforeMatch = () => {\n cancelPendingRaf();\n raf = requestFrame(() => {\n if (panelRef() === panel) {\n panel.setAttribute(\"hidden\", \"until-found\");\n }\n raf = null;\n });\n\n state.toggle();\n };\n\n panel.addEventListener(\"beforematch\", handleBeforeMatch);\n onCleanup(() => {\n panel.removeEventListener(\"beforematch\", handleBeforeMatch);\n });\n });\n\n // Handle panel visibility and animation sizing.\n createEffect(() => {\n if (!canUseDOM) return;\n\n const panel = panelRef();\n if (!panel) return;\n\n const isExpanded = state.isExpanded();\n cancelPendingRaf();\n\n if (isExpandedRef === null || typeof panel.getAnimations !== \"function\") {\n if (isExpanded) {\n panel.removeAttribute(\"hidden\");\n setPanelSize(panel, \"auto\", \"auto\");\n } else {\n panel.setAttribute(\"hidden\", \"until-found\");\n setPanelSize(panel, \"0px\", \"0px\");\n }\n } else if (isExpanded !== isExpandedRef) {\n if (isExpanded) {\n panel.removeAttribute(\"hidden\");\n setPanelSize(panel, `${panel.scrollWidth}px`, `${panel.scrollHeight}px`);\n\n Promise.all(getPanelAnimations(panel).map((animation) => animation.finished))\n .then(() => {\n if (panelRef() === panel && state.isExpanded()) {\n setPanelSize(panel, \"auto\", \"auto\");\n }\n })\n .catch(() => {});\n } else {\n setPanelSize(panel, `${panel.scrollWidth}px`, `${panel.scrollHeight}px`);\n\n // Force style recalculation before animating to zero.\n window.getComputedStyle(panel).height;\n\n setPanelSize(panel, \"0px\", \"0px\");\n\n Promise.all(getPanelAnimations(panel).map((animation) => animation.finished))\n .then(() => {\n if (panelRef() === panel && !state.isExpanded()) {\n panel.setAttribute(\"hidden\", \"until-found\");\n }\n })\n .catch(() => {});\n }\n }\n\n isExpandedRef = isExpanded;\n });\n\n onCleanup(cancelPendingRaf);\n\n // Use createPress for proper interaction handling (matches Select/Menu pattern)\n const { pressProps, isPressed } = createPress({\n get isDisabled() {\n return getProps().isDisabled;\n },\n onPressStart(event) {\n if (event.pointerType === \"keyboard\") {\n state.toggle();\n }\n },\n onPress(event) {\n if (event.pointerType !== \"keyboard\") {\n state.toggle();\n }\n },\n });\n\n return {\n isPressed,\n // Button props - merge with pressProps for consistent interaction handling\n // Using getter (not createMemo) to match createSelect pattern\n get buttonProps(): JSX.ButtonHTMLAttributes<HTMLButtonElement> {\n const p = getProps();\n return mergeProps(\n pressProps as Record<string, unknown>,\n {\n id: triggerId,\n type: \"button\",\n \"aria-expanded\": state.isExpanded(),\n \"aria-controls\": panelId,\n disabled: p.isDisabled,\n } as Record<string, unknown>,\n ) as JSX.ButtonHTMLAttributes<HTMLButtonElement>;\n },\n // Panel props\n get panelProps(): JSX.HTMLAttributes<HTMLElement> {\n return {\n id: panelId,\n role: \"group\",\n \"aria-labelledby\": triggerId,\n \"aria-hidden\": !state.isExpanded(),\n hidden: getDisclosurePanelHiddenAttribute(state.isExpanded()),\n };\n },\n };\n}\n","/**\n * createDisclosureGroup hook for Solidaria\n *\n * Provides accessibility implementation for a group of disclosures (accordion).\n *\n * Port of @react-aria/disclosure.\n */\n\nimport { type JSX } from \"solid-js\";\nimport { type DisclosureGroupState } from \"@proyecto-viviana/solid-stately\";\nimport { type MaybeAccessor } from \"../utils/reactivity\";\n\nexport interface AriaDisclosureGroupProps {\n /** Whether the disclosure group is disabled. */\n isDisabled?: boolean;\n}\n\nexport interface DisclosureGroupAria {\n /** Props for the disclosure group container. */\n groupProps: JSX.HTMLAttributes<HTMLElement>;\n}\n\n/**\n * Provides accessibility implementation for a group of disclosures (accordion).\n *\n * @example\n * ```tsx\n * import { createDisclosureGroup } from 'solidaria';\n * import { createDisclosureGroupState } from 'solid-stately';\n *\n * function Accordion(props) {\n * const state = createDisclosureGroupState(props);\n * const { groupProps } = createDisclosureGroup(props, state);\n *\n * return (\n * <div {...groupProps}>\n * {props.children}\n * </div>\n * );\n * }\n * ```\n */\nexport function createDisclosureGroup(\n _props: MaybeAccessor<AriaDisclosureGroupProps>,\n _state: DisclosureGroupState,\n): DisclosureGroupAria {\n return {\n get groupProps() {\n return {};\n },\n };\n}\n"],"mappings":"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"}