@proyecto-viviana/solidaria 0.2.8 → 0.4.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 (976) hide show
  1. package/README.md +31 -236
  2. package/dist/_chunk/actiongroup.js +207 -0
  3. package/dist/_chunk/actiongroup.js.map +1 -0
  4. package/dist/_chunk/actiongroup.jsx +207 -0
  5. package/dist/_chunk/actiongroup.jsx.map +1 -0
  6. package/dist/_chunk/ariaHideOutside.js +122 -0
  7. package/dist/_chunk/ariaHideOutside.js.map +1 -0
  8. package/dist/_chunk/ariaHideOutside.jsx +122 -0
  9. package/dist/_chunk/ariaHideOutside.jsx.map +1 -0
  10. package/dist/_chunk/autocomplete.js +196 -0
  11. package/dist/_chunk/autocomplete.js.map +1 -0
  12. package/dist/_chunk/autocomplete.jsx +196 -0
  13. package/dist/_chunk/autocomplete.jsx.map +1 -0
  14. package/dist/_chunk/breadcrumbs.js +119 -0
  15. package/dist/_chunk/breadcrumbs.js.map +1 -0
  16. package/dist/_chunk/breadcrumbs.jsx +119 -0
  17. package/dist/_chunk/breadcrumbs.jsx.map +1 -0
  18. package/dist/_chunk/button.js +276 -0
  19. package/dist/_chunk/button.js.map +1 -0
  20. package/dist/_chunk/button.jsx +276 -0
  21. package/dist/_chunk/button.jsx.map +1 -0
  22. package/dist/_chunk/calendar.js +1036 -0
  23. package/dist/_chunk/calendar.js.map +1 -0
  24. package/dist/_chunk/calendar.jsx +1036 -0
  25. package/dist/_chunk/calendar.jsx.map +1 -0
  26. package/dist/_chunk/checkbox.js +234 -0
  27. package/dist/_chunk/checkbox.js.map +1 -0
  28. package/dist/_chunk/checkbox.jsx +234 -0
  29. package/dist/_chunk/checkbox.jsx.map +1 -0
  30. package/dist/_chunk/color.js +1174 -0
  31. package/dist/_chunk/color.js.map +1 -0
  32. package/dist/_chunk/color.jsx +1174 -0
  33. package/dist/_chunk/color.jsx.map +1 -0
  34. package/dist/_chunk/combobox.js +436 -0
  35. package/dist/_chunk/combobox.js.map +1 -0
  36. package/dist/_chunk/combobox.jsx +436 -0
  37. package/dist/_chunk/combobox.jsx.map +1 -0
  38. package/dist/_chunk/createCollator.js +229 -0
  39. package/dist/_chunk/createCollator.js.map +1 -0
  40. package/dist/_chunk/createCollator.jsx +223 -0
  41. package/dist/_chunk/createCollator.jsx.map +1 -0
  42. package/dist/_chunk/createCollectionRowInteraction.js +133 -0
  43. package/dist/_chunk/createCollectionRowInteraction.js.map +1 -0
  44. package/dist/_chunk/createCollectionRowInteraction.jsx +133 -0
  45. package/dist/_chunk/createCollectionRowInteraction.jsx.map +1 -0
  46. package/dist/_chunk/createField.js +54 -0
  47. package/dist/_chunk/createField.js.map +1 -0
  48. package/dist/_chunk/createField.jsx +54 -0
  49. package/dist/_chunk/createField.jsx.map +1 -0
  50. package/dist/_chunk/createFocus.js +101 -0
  51. package/dist/_chunk/createFocus.js.map +1 -0
  52. package/dist/_chunk/createFocus.jsx +101 -0
  53. package/dist/_chunk/createFocus.jsx.map +1 -0
  54. package/dist/_chunk/createFocusRing.js +54 -0
  55. package/dist/_chunk/createFocusRing.js.map +1 -0
  56. package/dist/_chunk/createFocusRing.jsx +54 -0
  57. package/dist/_chunk/createFocusRing.jsx.map +1 -0
  58. package/dist/_chunk/createFocusWithin.js +121 -0
  59. package/dist/_chunk/createFocusWithin.js.map +1 -0
  60. package/dist/_chunk/createFocusWithin.jsx +121 -0
  61. package/dist/_chunk/createFocusWithin.jsx.map +1 -0
  62. package/dist/_chunk/createFocusable.js +131 -0
  63. package/dist/_chunk/createFocusable.js.map +1 -0
  64. package/dist/_chunk/createFocusable.jsx +131 -0
  65. package/dist/_chunk/createFocusable.jsx.map +1 -0
  66. package/dist/_chunk/createFormValidation.js +135 -0
  67. package/dist/_chunk/createFormValidation.js.map +1 -0
  68. package/dist/_chunk/createFormValidation.jsx +135 -0
  69. package/dist/_chunk/createFormValidation.jsx.map +1 -0
  70. package/dist/_chunk/createHover.js +130 -0
  71. package/dist/_chunk/createHover.js.map +1 -0
  72. package/dist/_chunk/createHover.jsx +130 -0
  73. package/dist/_chunk/createHover.jsx.map +1 -0
  74. package/dist/_chunk/createInteractionModality.js +269 -0
  75. package/dist/_chunk/createInteractionModality.js.map +1 -0
  76. package/dist/_chunk/createInteractionModality.jsx +269 -0
  77. package/dist/_chunk/createInteractionModality.jsx.map +1 -0
  78. package/dist/_chunk/createLabel.js +46 -0
  79. package/dist/_chunk/createLabel.js.map +1 -0
  80. package/dist/_chunk/createLabel.jsx +46 -0
  81. package/dist/_chunk/createLabel.jsx.map +1 -0
  82. package/dist/_chunk/createLabels.js +31 -0
  83. package/dist/_chunk/createLabels.js.map +1 -0
  84. package/dist/_chunk/createLabels.jsx +31 -0
  85. package/dist/_chunk/createLabels.jsx.map +1 -0
  86. package/dist/_chunk/createLandmark.js +198 -0
  87. package/dist/_chunk/createLandmark.js.map +1 -0
  88. package/dist/_chunk/createLandmark.jsx +198 -0
  89. package/dist/_chunk/createLandmark.jsx.map +1 -0
  90. package/dist/_chunk/createLongPress.js +91 -0
  91. package/dist/_chunk/createLongPress.js.map +1 -0
  92. package/dist/_chunk/createLongPress.jsx +91 -0
  93. package/dist/_chunk/createLongPress.jsx.map +1 -0
  94. package/dist/_chunk/createOverlay.js +327 -0
  95. package/dist/_chunk/createOverlay.js.map +1 -0
  96. package/dist/_chunk/createOverlay.jsx +327 -0
  97. package/dist/_chunk/createOverlay.jsx.map +1 -0
  98. package/dist/_chunk/createPress.js +526 -0
  99. package/dist/_chunk/createPress.js.map +1 -0
  100. package/dist/_chunk/createPress.jsx +526 -0
  101. package/dist/_chunk/createPress.jsx.map +1 -0
  102. package/dist/_chunk/createProgressBar.js +81 -0
  103. package/dist/_chunk/createProgressBar.js.map +1 -0
  104. package/dist/_chunk/createProgressBar.jsx +81 -0
  105. package/dist/_chunk/createProgressBar.jsx.map +1 -0
  106. package/dist/_chunk/createSelectableItem.js +298 -0
  107. package/dist/_chunk/createSelectableItem.js.map +1 -0
  108. package/dist/_chunk/createSelectableItem.jsx +298 -0
  109. package/dist/_chunk/createSelectableItem.jsx.map +1 -0
  110. package/dist/_chunk/createToggle.js +158 -0
  111. package/dist/_chunk/createToggle.js.map +1 -0
  112. package/dist/_chunk/createToggle.jsx +158 -0
  113. package/dist/_chunk/createToggle.jsx.map +1 -0
  114. package/dist/_chunk/createTypeSelect.js +125 -0
  115. package/dist/_chunk/createTypeSelect.js.map +1 -0
  116. package/dist/_chunk/createTypeSelect.jsx +125 -0
  117. package/dist/_chunk/createTypeSelect.jsx.map +1 -0
  118. package/dist/_chunk/datepicker.js +1393 -0
  119. package/dist/_chunk/datepicker.js.map +1 -0
  120. package/dist/_chunk/datepicker.jsx +1393 -0
  121. package/dist/_chunk/datepicker.jsx.map +1 -0
  122. package/dist/_chunk/dialog.js +62 -0
  123. package/dist/_chunk/dialog.js.map +1 -0
  124. package/dist/_chunk/dialog.jsx +62 -0
  125. package/dist/_chunk/dialog.jsx.map +1 -0
  126. package/dist/_chunk/disclosure.js +185 -0
  127. package/dist/_chunk/disclosure.js.map +1 -0
  128. package/dist/_chunk/disclosure.jsx +185 -0
  129. package/dist/_chunk/disclosure.jsx.map +1 -0
  130. package/dist/_chunk/dnd.js +1304 -0
  131. package/dist/_chunk/dnd.js.map +1 -0
  132. package/dist/_chunk/dnd.jsx +1304 -0
  133. package/dist/_chunk/dnd.jsx.map +1 -0
  134. package/dist/_chunk/env.js +105 -0
  135. package/dist/_chunk/env.js.map +1 -0
  136. package/dist/_chunk/env.jsx +105 -0
  137. package/dist/_chunk/env.jsx.map +1 -0
  138. package/dist/_chunk/filterDOMProps.js +82 -0
  139. package/dist/_chunk/filterDOMProps.js.map +1 -0
  140. package/dist/_chunk/filterDOMProps.jsx +82 -0
  141. package/dist/_chunk/filterDOMProps.jsx.map +1 -0
  142. package/dist/_chunk/focus.js +399 -0
  143. package/dist/_chunk/focus.js.map +1 -0
  144. package/dist/_chunk/focus.jsx +399 -0
  145. package/dist/_chunk/focus.jsx.map +1 -0
  146. package/dist/_chunk/focus2.js +895 -0
  147. package/dist/_chunk/focus2.js.map +1 -0
  148. package/dist/_chunk/focus2.jsx +870 -0
  149. package/dist/_chunk/focus2.jsx.map +1 -0
  150. package/dist/_chunk/form.js +39 -0
  151. package/dist/_chunk/form.js.map +1 -0
  152. package/dist/_chunk/form.jsx +39 -0
  153. package/dist/_chunk/form.jsx.map +1 -0
  154. package/dist/_chunk/grid.js +623 -0
  155. package/dist/_chunk/grid.js.map +1 -0
  156. package/dist/_chunk/grid.jsx +623 -0
  157. package/dist/_chunk/grid.jsx.map +1 -0
  158. package/dist/_chunk/gridlist.js +364 -0
  159. package/dist/_chunk/gridlist.js.map +1 -0
  160. package/dist/_chunk/gridlist.jsx +364 -0
  161. package/dist/_chunk/gridlist.jsx.map +1 -0
  162. package/dist/_chunk/i18n.js +254 -0
  163. package/dist/_chunk/i18n.js.map +1 -0
  164. package/dist/_chunk/i18n.jsx +254 -0
  165. package/dist/_chunk/i18n.jsx.map +1 -0
  166. package/dist/_chunk/interactions.js +241 -0
  167. package/dist/_chunk/interactions.js.map +1 -0
  168. package/dist/_chunk/interactions.jsx +237 -0
  169. package/dist/_chunk/interactions.jsx.map +1 -0
  170. package/dist/_chunk/link.js +96 -0
  171. package/dist/_chunk/link.js.map +1 -0
  172. package/dist/_chunk/link.jsx +96 -0
  173. package/dist/_chunk/link.jsx.map +1 -0
  174. package/dist/_chunk/listbox.js +324 -0
  175. package/dist/_chunk/listbox.js.map +1 -0
  176. package/dist/_chunk/listbox.jsx +324 -0
  177. package/dist/_chunk/listbox.jsx.map +1 -0
  178. package/dist/_chunk/live-announcer.js +207 -0
  179. package/dist/_chunk/live-announcer.js.map +1 -0
  180. package/dist/_chunk/live-announcer.jsx +207 -0
  181. package/dist/_chunk/live-announcer.jsx.map +1 -0
  182. package/dist/_chunk/menu.js +518 -0
  183. package/dist/_chunk/menu.js.map +1 -0
  184. package/dist/_chunk/menu.jsx +518 -0
  185. package/dist/_chunk/menu.jsx.map +1 -0
  186. package/dist/_chunk/meter.js +33 -0
  187. package/dist/_chunk/meter.js.map +1 -0
  188. package/dist/_chunk/meter.jsx +33 -0
  189. package/dist/_chunk/meter.jsx.map +1 -0
  190. package/dist/_chunk/numberfield.js +258 -0
  191. package/dist/_chunk/numberfield.js.map +1 -0
  192. package/dist/_chunk/numberfield.jsx +258 -0
  193. package/dist/_chunk/numberfield.jsx.map +1 -0
  194. package/dist/_chunk/overlays.js +186 -0
  195. package/dist/_chunk/overlays.js.map +1 -0
  196. package/dist/_chunk/overlays.jsx +162 -0
  197. package/dist/_chunk/overlays.jsx.map +1 -0
  198. package/dist/_chunk/popover.js +574 -0
  199. package/dist/_chunk/popover.js.map +1 -0
  200. package/dist/_chunk/popover.jsx +574 -0
  201. package/dist/_chunk/popover.jsx.map +1 -0
  202. package/dist/_chunk/radio.js +319 -0
  203. package/dist/_chunk/radio.js.map +1 -0
  204. package/dist/_chunk/radio.jsx +319 -0
  205. package/dist/_chunk/radio.jsx.map +1 -0
  206. package/dist/_chunk/searchfield.js +209 -0
  207. package/dist/_chunk/searchfield.js.map +1 -0
  208. package/dist/_chunk/searchfield.jsx +209 -0
  209. package/dist/_chunk/searchfield.jsx.map +1 -0
  210. package/dist/_chunk/select.js +403 -0
  211. package/dist/_chunk/select.js.map +1 -0
  212. package/dist/_chunk/select.jsx +394 -0
  213. package/dist/_chunk/select.jsx.map +1 -0
  214. package/dist/_chunk/selection.js +679 -0
  215. package/dist/_chunk/selection.js.map +1 -0
  216. package/dist/_chunk/selection.jsx +679 -0
  217. package/dist/_chunk/selection.jsx.map +1 -0
  218. package/dist/_chunk/separator.js +29 -0
  219. package/dist/_chunk/separator.js.map +1 -0
  220. package/dist/_chunk/separator.jsx +29 -0
  221. package/dist/_chunk/separator.jsx.map +1 -0
  222. package/dist/_chunk/slider.js +255 -0
  223. package/dist/_chunk/slider.js.map +1 -0
  224. package/dist/_chunk/slider.jsx +255 -0
  225. package/dist/_chunk/slider.jsx.map +1 -0
  226. package/dist/_chunk/steplist.js +66 -0
  227. package/dist/_chunk/steplist.js.map +1 -0
  228. package/dist/_chunk/steplist.jsx +66 -0
  229. package/dist/_chunk/steplist.jsx.map +1 -0
  230. package/dist/_chunk/switch.js +34 -0
  231. package/dist/_chunk/switch.js.map +1 -0
  232. package/dist/_chunk/switch.jsx +34 -0
  233. package/dist/_chunk/switch.jsx.map +1 -0
  234. package/dist/_chunk/table.js +1051 -0
  235. package/dist/_chunk/table.js.map +1 -0
  236. package/dist/_chunk/table.jsx +1051 -0
  237. package/dist/_chunk/table.jsx.map +1 -0
  238. package/dist/_chunk/tabs.js +260 -0
  239. package/dist/_chunk/tabs.js.map +1 -0
  240. package/dist/_chunk/tabs.jsx +260 -0
  241. package/dist/_chunk/tabs.jsx.map +1 -0
  242. package/dist/_chunk/tag.js +286 -0
  243. package/dist/_chunk/tag.js.map +1 -0
  244. package/dist/_chunk/tag.jsx +286 -0
  245. package/dist/_chunk/tag.jsx.map +1 -0
  246. package/dist/_chunk/textfield.js +109 -0
  247. package/dist/_chunk/textfield.js.map +1 -0
  248. package/dist/_chunk/textfield.jsx +109 -0
  249. package/dist/_chunk/textfield.jsx.map +1 -0
  250. package/dist/_chunk/toast.js +250 -0
  251. package/dist/_chunk/toast.js.map +1 -0
  252. package/dist/_chunk/toast.jsx +250 -0
  253. package/dist/_chunk/toast.jsx.map +1 -0
  254. package/dist/_chunk/toolbar.js +258 -0
  255. package/dist/_chunk/toolbar.js.map +1 -0
  256. package/dist/_chunk/toolbar.jsx +258 -0
  257. package/dist/_chunk/toolbar.jsx.map +1 -0
  258. package/dist/_chunk/tooltip.js +185 -0
  259. package/dist/_chunk/tooltip.js.map +1 -0
  260. package/dist/_chunk/tooltip.jsx +185 -0
  261. package/dist/_chunk/tooltip.jsx.map +1 -0
  262. package/dist/_chunk/tree.js +424 -0
  263. package/dist/_chunk/tree.js.map +1 -0
  264. package/dist/_chunk/tree.jsx +424 -0
  265. package/dist/_chunk/tree.jsx.map +1 -0
  266. package/dist/_chunk/utils.js +665 -0
  267. package/dist/_chunk/utils.js.map +1 -0
  268. package/dist/_chunk/utils.jsx +665 -0
  269. package/dist/_chunk/utils.jsx.map +1 -0
  270. package/dist/_chunk/visually-hidden.js +92 -0
  271. package/dist/_chunk/visually-hidden.js.map +1 -0
  272. package/dist/_chunk/visually-hidden.jsx +92 -0
  273. package/dist/_chunk/visually-hidden.jsx.map +1 -0
  274. package/dist/actiongroup/createActionGroup.d.ts +5 -5
  275. package/dist/actiongroup/createActionGroup.d.ts.map +1 -1
  276. package/dist/actiongroup/index.d.ts +1 -1
  277. package/dist/actiongroup/index.js +2 -0
  278. package/dist/actiongroup/index.jsx +2 -0
  279. package/dist/autocomplete/createAutocomplete.d.ts +12 -10
  280. package/dist/autocomplete/createAutocomplete.d.ts.map +1 -1
  281. package/dist/autocomplete/index.d.ts +1 -1
  282. package/dist/autocomplete/index.d.ts.map +1 -1
  283. package/dist/autocomplete/index.js +2 -0
  284. package/dist/autocomplete/index.jsx +2 -0
  285. package/dist/breadcrumbs/createBreadcrumbs.d.ts +9 -7
  286. package/dist/breadcrumbs/createBreadcrumbs.d.ts.map +1 -1
  287. package/dist/breadcrumbs/index.d.ts +1 -1
  288. package/dist/breadcrumbs/index.js +2 -0
  289. package/dist/breadcrumbs/index.jsx +2 -0
  290. package/dist/button/createButton.d.ts +1 -1
  291. package/dist/button/createButton.d.ts.map +1 -1
  292. package/dist/button/createToggleButton.d.ts +3 -3
  293. package/dist/button/createToggleButtonGroup.d.ts +7 -7
  294. package/dist/button/createToggleButtonGroup.d.ts.map +1 -1
  295. package/dist/button/index.d.ts +6 -6
  296. package/dist/button/index.d.ts.map +1 -1
  297. package/dist/button/index.js +2 -0
  298. package/dist/button/index.jsx +2 -0
  299. package/dist/button/types.d.ts +18 -12
  300. package/dist/button/types.d.ts.map +1 -1
  301. package/dist/calendar/createCalendar.d.ts +15 -5
  302. package/dist/calendar/createCalendar.d.ts.map +1 -1
  303. package/dist/calendar/createCalendarCell.d.ts +6 -2
  304. package/dist/calendar/createCalendarCell.d.ts.map +1 -1
  305. package/dist/calendar/createCalendarGrid.d.ts +4 -4
  306. package/dist/calendar/createCalendarGrid.d.ts.map +1 -1
  307. package/dist/calendar/createCalendarMonthPicker.d.ts +41 -0
  308. package/dist/calendar/createCalendarMonthPicker.d.ts.map +1 -0
  309. package/dist/calendar/createCalendarYearPicker.d.ts +49 -0
  310. package/dist/calendar/createCalendarYearPicker.d.ts.map +1 -0
  311. package/dist/calendar/createRangeCalendar.d.ts +15 -5
  312. package/dist/calendar/createRangeCalendar.d.ts.map +1 -1
  313. package/dist/calendar/createRangeCalendarCell.d.ts +4 -2
  314. package/dist/calendar/createRangeCalendarCell.d.ts.map +1 -1
  315. package/dist/calendar/index.d.ts +7 -5
  316. package/dist/calendar/index.d.ts.map +1 -1
  317. package/dist/calendar/index.js +2 -0
  318. package/dist/calendar/index.jsx +2 -0
  319. package/dist/calendar/intl/index.d.ts +12 -0
  320. package/dist/calendar/intl/index.d.ts.map +1 -0
  321. package/dist/calendar/utils.d.ts +16 -0
  322. package/dist/calendar/utils.d.ts.map +1 -0
  323. package/dist/checkbox/createCheckbox.d.ts +10 -6
  324. package/dist/checkbox/createCheckbox.d.ts.map +1 -1
  325. package/dist/checkbox/createCheckboxGroup.d.ts +7 -7
  326. package/dist/checkbox/createCheckboxGroup.d.ts.map +1 -1
  327. package/dist/checkbox/createCheckboxGroupItem.d.ts +4 -4
  328. package/dist/checkbox/createCheckboxGroupItem.d.ts.map +1 -1
  329. package/dist/checkbox/createCheckboxGroupState.d.ts +2 -2
  330. package/dist/checkbox/createCheckboxGroupState.d.ts.map +1 -1
  331. package/dist/checkbox/index.d.ts +8 -8
  332. package/dist/checkbox/index.d.ts.map +1 -1
  333. package/dist/checkbox/index.js +2 -0
  334. package/dist/checkbox/index.jsx +2 -0
  335. package/dist/collections/index.d.ts +3 -3
  336. package/dist/collections/index.d.ts.map +1 -1
  337. package/dist/collections/index.js +160 -0
  338. package/dist/collections/index.js.map +1 -0
  339. package/dist/collections/index.jsx +160 -0
  340. package/dist/collections/index.jsx.map +1 -0
  341. package/dist/color/createColorArea.d.ts +3 -3
  342. package/dist/color/createColorArea.d.ts.map +1 -1
  343. package/dist/color/createColorField.d.ts +4 -4
  344. package/dist/color/createColorField.d.ts.map +1 -1
  345. package/dist/color/createColorSlider.d.ts +4 -4
  346. package/dist/color/createColorSlider.d.ts.map +1 -1
  347. package/dist/color/createColorSwatch.d.ts +2 -2
  348. package/dist/color/createColorSwatch.d.ts.map +1 -1
  349. package/dist/color/createColorWheel.d.ts +3 -3
  350. package/dist/color/createColorWheel.d.ts.map +1 -1
  351. package/dist/color/index.d.ts +6 -6
  352. package/dist/color/index.js +2 -0
  353. package/dist/color/index.jsx +2 -0
  354. package/dist/color/types.d.ts +98 -16
  355. package/dist/color/types.d.ts.map +1 -1
  356. package/dist/combobox/createComboBox.d.ts +10 -7
  357. package/dist/combobox/createComboBox.d.ts.map +1 -1
  358. package/dist/combobox/index.d.ts +1 -1
  359. package/dist/combobox/index.js +2 -0
  360. package/dist/combobox/index.jsx +2 -0
  361. package/dist/combobox/intl/index.d.ts +1 -1
  362. package/dist/datepicker/createDateField.d.ts +18 -6
  363. package/dist/datepicker/createDateField.d.ts.map +1 -1
  364. package/dist/datepicker/createDatePicker.d.ts +51 -5
  365. package/dist/datepicker/createDatePicker.d.ts.map +1 -1
  366. package/dist/datepicker/createDatePickerGroup.d.ts +19 -0
  367. package/dist/datepicker/createDatePickerGroup.d.ts.map +1 -0
  368. package/dist/datepicker/createDateRangePicker.d.ts +8 -6
  369. package/dist/datepicker/createDateRangePicker.d.ts.map +1 -1
  370. package/dist/datepicker/createDateSegment.d.ts +10 -2
  371. package/dist/datepicker/createDateSegment.d.ts.map +1 -1
  372. package/dist/datepicker/createTimeField.d.ts +11 -5
  373. package/dist/datepicker/createTimeField.d.ts.map +1 -1
  374. package/dist/datepicker/createTimeSegment.d.ts +2 -2
  375. package/dist/datepicker/createTimeSegment.d.ts.map +1 -1
  376. package/dist/datepicker/index.d.ts +7 -6
  377. package/dist/datepicker/index.d.ts.map +1 -1
  378. package/dist/datepicker/index.js +2 -0
  379. package/dist/datepicker/index.jsx +2 -0
  380. package/dist/dialog/createDialog.d.ts +5 -5
  381. package/dist/dialog/createDialog.d.ts.map +1 -1
  382. package/dist/dialog/index.d.ts +2 -2
  383. package/dist/dialog/index.d.ts.map +1 -1
  384. package/dist/dialog/index.js +2 -0
  385. package/dist/dialog/index.jsx +2 -0
  386. package/dist/dialog/types.d.ts +4 -4
  387. package/dist/disclosure/createDisclosure.d.ts +5 -2
  388. package/dist/disclosure/createDisclosure.d.ts.map +1 -1
  389. package/dist/disclosure/createDisclosureGroup.d.ts +4 -4
  390. package/dist/disclosure/createDisclosureGroup.d.ts.map +1 -1
  391. package/dist/disclosure/index.d.ts +2 -2
  392. package/dist/disclosure/index.js +2 -0
  393. package/dist/disclosure/index.jsx +2 -0
  394. package/dist/dnd/createDrag.d.ts +2 -2
  395. package/dist/dnd/createDrag.d.ts.map +1 -1
  396. package/dist/dnd/createDraggableCollection.d.ts +2 -2
  397. package/dist/dnd/createDraggableItem.d.ts +3 -3
  398. package/dist/dnd/createDraggableItem.d.ts.map +1 -1
  399. package/dist/dnd/createDrop.d.ts +2 -2
  400. package/dist/dnd/createDrop.d.ts.map +1 -1
  401. package/dist/dnd/createDroppableCollection.d.ts +26 -6
  402. package/dist/dnd/createDroppableCollection.d.ts.map +1 -1
  403. package/dist/dnd/createDroppableItem.d.ts +3 -3
  404. package/dist/dnd/index.d.ts +12 -12
  405. package/dist/dnd/index.d.ts.map +1 -1
  406. package/dist/dnd/index.js +2 -0
  407. package/dist/dnd/index.jsx +2 -0
  408. package/dist/dnd/types.d.ts +2 -2
  409. package/dist/dnd/types.d.ts.map +1 -1
  410. package/dist/dnd/utils.d.ts +2 -2
  411. package/dist/dnd/utils.d.ts.map +1 -1
  412. package/dist/focus/FocusScope.d.ts +1 -1
  413. package/dist/focus/FocusScope.d.ts.map +1 -1
  414. package/dist/focus/createAutoFocus.d.ts.map +1 -1
  415. package/dist/focus/createFocusRestore.d.ts.map +1 -1
  416. package/dist/focus/createVirtualFocus.d.ts +4 -4
  417. package/dist/focus/createVirtualFocus.d.ts.map +1 -1
  418. package/dist/focus/index.d.ts +4 -4
  419. package/dist/focus/index.d.ts.map +1 -1
  420. package/dist/focus/index.js +2 -0
  421. package/dist/focus/index.jsx +2 -0
  422. package/dist/form/createFormReset.d.ts +1 -1
  423. package/dist/form/createFormValidation.d.ts +3 -3
  424. package/dist/form/createFormValidation.d.ts.map +1 -1
  425. package/dist/form/index.d.ts +2 -2
  426. package/dist/form/index.d.ts.map +1 -1
  427. package/dist/form/index.js +3 -0
  428. package/dist/form/index.jsx +3 -0
  429. package/dist/grid/GridKeyboardDelegate.d.ts +5 -5
  430. package/dist/grid/createGrid.d.ts +3 -3
  431. package/dist/grid/createGridCell.d.ts +3 -3
  432. package/dist/grid/createGridRow.d.ts +3 -3
  433. package/dist/grid/index.d.ts +5 -5
  434. package/dist/grid/index.js +2 -0
  435. package/dist/grid/index.jsx +2 -0
  436. package/dist/grid/types.d.ts +8 -8
  437. package/dist/gridlist/createGridList.d.ts +12 -4
  438. package/dist/gridlist/createGridList.d.ts.map +1 -1
  439. package/dist/gridlist/createGridListItem.d.ts +4 -4
  440. package/dist/gridlist/createGridListItem.d.ts.map +1 -1
  441. package/dist/gridlist/createGridListSection.d.ts +15 -0
  442. package/dist/gridlist/createGridListSection.d.ts.map +1 -0
  443. package/dist/gridlist/createGridListSelectionCheckbox.d.ts +3 -3
  444. package/dist/gridlist/createGridListSelectionCheckbox.d.ts.map +1 -1
  445. package/dist/gridlist/index.d.ts +5 -4
  446. package/dist/gridlist/index.d.ts.map +1 -1
  447. package/dist/gridlist/index.js +2 -0
  448. package/dist/gridlist/index.jsx +2 -0
  449. package/dist/gridlist/types.d.ts +61 -7
  450. package/dist/gridlist/types.d.ts.map +1 -1
  451. package/dist/i18n/createCollator.d.ts.map +1 -1
  452. package/dist/i18n/createDateFormatter.d.ts.map +1 -1
  453. package/dist/i18n/createFilter.d.ts.map +1 -1
  454. package/dist/i18n/createNumberFormatter.d.ts +1 -1
  455. package/dist/i18n/createNumberFormatter.d.ts.map +1 -1
  456. package/dist/i18n/createStringFormatter.d.ts +2 -2
  457. package/dist/i18n/createStringFormatter.d.ts.map +1 -1
  458. package/dist/i18n/index.d.ts +8 -8
  459. package/dist/i18n/index.d.ts.map +1 -1
  460. package/dist/i18n/index.js +3 -0
  461. package/dist/i18n/index.jsx +3 -0
  462. package/dist/i18n/locale.d.ts +2 -2
  463. package/dist/i18n/locale.d.ts.map +1 -1
  464. package/dist/i18n/utils.d.ts.map +1 -1
  465. package/dist/index.d.ts +56 -51
  466. package/dist/index.d.ts.map +1 -1
  467. package/dist/index.js +71 -17119
  468. package/dist/index.jsx +71 -0
  469. package/dist/interactions/FocusableProvider.d.ts +2 -2
  470. package/dist/interactions/FocusableProvider.d.ts.map +1 -1
  471. package/dist/interactions/PressEvent.d.ts +13 -2
  472. package/dist/interactions/PressEvent.d.ts.map +1 -1
  473. package/dist/interactions/createFocus.d.ts +1 -1
  474. package/dist/interactions/createFocus.d.ts.map +1 -1
  475. package/dist/interactions/createFocusRing.d.ts +1 -1
  476. package/dist/interactions/createFocusRing.d.ts.map +1 -1
  477. package/dist/interactions/createFocusWithin.d.ts +1 -1
  478. package/dist/interactions/createFocusWithin.d.ts.map +1 -1
  479. package/dist/interactions/createFocusable.d.ts +3 -3
  480. package/dist/interactions/createFocusable.d.ts.map +1 -1
  481. package/dist/interactions/createHover.d.ts +5 -5
  482. package/dist/interactions/createHover.d.ts.map +1 -1
  483. package/dist/interactions/createInteractionModality.d.ts +3 -4
  484. package/dist/interactions/createInteractionModality.d.ts.map +1 -1
  485. package/dist/interactions/createKeyboard.d.ts +1 -1
  486. package/dist/interactions/createKeyboard.d.ts.map +1 -1
  487. package/dist/interactions/createLongPress.d.ts +5 -5
  488. package/dist/interactions/createMove.d.ts +5 -5
  489. package/dist/interactions/createMove.d.ts.map +1 -1
  490. package/dist/interactions/createPress.d.ts +4 -4
  491. package/dist/interactions/createPress.d.ts.map +1 -1
  492. package/dist/interactions/index.d.ts +12 -12
  493. package/dist/interactions/index.d.ts.map +1 -1
  494. package/dist/interactions/index.js +10 -0
  495. package/dist/interactions/index.jsx +10 -0
  496. package/dist/label/createField.d.ts +4 -4
  497. package/dist/label/createField.d.ts.map +1 -1
  498. package/dist/label/createLabel.d.ts +7 -7
  499. package/dist/label/createLabel.d.ts.map +1 -1
  500. package/dist/label/createLabels.d.ts +1 -1
  501. package/dist/label/createLabels.d.ts.map +1 -1
  502. package/dist/label/index.d.ts +5 -5
  503. package/dist/label/index.js +4 -0
  504. package/dist/label/index.jsx +4 -0
  505. package/dist/landmark/createLandmark.d.ts +5 -5
  506. package/dist/landmark/createLandmark.d.ts.map +1 -1
  507. package/dist/landmark/index.d.ts +1 -1
  508. package/dist/landmark/index.js +2 -0
  509. package/dist/landmark/index.jsx +2 -0
  510. package/dist/link/createLink.d.ts +14 -8
  511. package/dist/link/createLink.d.ts.map +1 -1
  512. package/dist/link/index.d.ts +1 -1
  513. package/dist/link/index.js +2 -0
  514. package/dist/link/index.jsx +2 -0
  515. package/dist/listbox/createListBox.d.ts +48 -6
  516. package/dist/listbox/createListBox.d.ts.map +1 -1
  517. package/dist/listbox/createOption.d.ts +27 -4
  518. package/dist/listbox/createOption.d.ts.map +1 -1
  519. package/dist/listbox/index.d.ts +2 -2
  520. package/dist/listbox/index.d.ts.map +1 -1
  521. package/dist/listbox/index.js +2 -0
  522. package/dist/listbox/index.jsx +2 -0
  523. package/dist/live-announcer/announce.d.ts +2 -2
  524. package/dist/live-announcer/announce.d.ts.map +1 -1
  525. package/dist/live-announcer/index.d.ts +1 -1
  526. package/dist/live-announcer/index.js +2 -0
  527. package/dist/live-announcer/index.jsx +2 -0
  528. package/dist/menu/createMenu.d.ts +14 -11
  529. package/dist/menu/createMenu.d.ts.map +1 -1
  530. package/dist/menu/createMenuItem.d.ts +25 -5
  531. package/dist/menu/createMenuItem.d.ts.map +1 -1
  532. package/dist/menu/createMenuTrigger.d.ts +4 -4
  533. package/dist/menu/index.d.ts +3 -3
  534. package/dist/menu/index.d.ts.map +1 -1
  535. package/dist/menu/index.js +2 -0
  536. package/dist/menu/index.jsx +2 -0
  537. package/dist/meter/createMeter.d.ts +6 -6
  538. package/dist/meter/createMeter.d.ts.map +1 -1
  539. package/dist/meter/index.d.ts +1 -1
  540. package/dist/meter/index.js +2 -0
  541. package/dist/meter/index.jsx +2 -0
  542. package/dist/numberfield/createNumberField.d.ts +9 -8
  543. package/dist/numberfield/createNumberField.d.ts.map +1 -1
  544. package/dist/numberfield/index.d.ts +1 -1
  545. package/dist/numberfield/index.js +2 -0
  546. package/dist/numberfield/index.jsx +2 -0
  547. package/dist/overlays/ariaHideOutside.d.ts.map +1 -1
  548. package/dist/overlays/createModal.d.ts +3 -3
  549. package/dist/overlays/createModal.d.ts.map +1 -1
  550. package/dist/overlays/createOverlay.d.ts +1 -1
  551. package/dist/overlays/createOverlay.d.ts.map +1 -1
  552. package/dist/overlays/createOverlayTrigger.d.ts +6 -6
  553. package/dist/overlays/index.d.ts +6 -6
  554. package/dist/overlays/index.d.ts.map +1 -1
  555. package/dist/overlays/index.js +4 -0
  556. package/dist/overlays/index.jsx +4 -0
  557. package/dist/popover/calculatePosition.d.ts +6 -4
  558. package/dist/popover/calculatePosition.d.ts.map +1 -1
  559. package/dist/popover/createOverlayPosition.d.ts +11 -3
  560. package/dist/popover/createOverlayPosition.d.ts.map +1 -1
  561. package/dist/popover/createPopover.d.ts +4 -4
  562. package/dist/popover/createPopover.d.ts.map +1 -1
  563. package/dist/popover/index.d.ts +3 -3
  564. package/dist/popover/index.js +2 -0
  565. package/dist/popover/index.jsx +2 -0
  566. package/dist/progress/createProgressBar.d.ts +7 -5
  567. package/dist/progress/createProgressBar.d.ts.map +1 -1
  568. package/dist/progress/index.d.ts +1 -1
  569. package/dist/progress/index.js +2 -0
  570. package/dist/progress/index.jsx +2 -0
  571. package/dist/radio/createRadio.d.ts +9 -7
  572. package/dist/radio/createRadio.d.ts.map +1 -1
  573. package/dist/radio/createRadioGroup.d.ts +10 -10
  574. package/dist/radio/createRadioGroup.d.ts.map +1 -1
  575. package/dist/radio/createRadioGroupState.d.ts +3 -3
  576. package/dist/radio/createRadioGroupState.d.ts.map +1 -1
  577. package/dist/radio/index.d.ts +3 -3
  578. package/dist/radio/index.d.ts.map +1 -1
  579. package/dist/radio/index.js +2 -0
  580. package/dist/radio/index.jsx +2 -0
  581. package/dist/searchfield/createSearchField.d.ts +7 -7
  582. package/dist/searchfield/createSearchField.d.ts.map +1 -1
  583. package/dist/searchfield/index.d.ts +2 -2
  584. package/dist/searchfield/index.js +2 -0
  585. package/dist/searchfield/index.jsx +2 -0
  586. package/dist/select/createHiddenSelect.d.ts +4 -4
  587. package/dist/select/createHiddenSelect.d.ts.map +1 -1
  588. package/dist/select/createSelect.d.ts +14 -6
  589. package/dist/select/createSelect.d.ts.map +1 -1
  590. package/dist/select/index.d.ts +2 -2
  591. package/dist/select/index.d.ts.map +1 -1
  592. package/dist/select/index.js +2 -0
  593. package/dist/select/index.jsx +2 -0
  594. package/dist/selection/DOMLayoutDelegate.d.ts +58 -0
  595. package/dist/selection/DOMLayoutDelegate.d.ts.map +1 -0
  596. package/dist/selection/ListKeyboardDelegate.d.ts +95 -0
  597. package/dist/selection/ListKeyboardDelegate.d.ts.map +1 -0
  598. package/dist/selection/constants.d.ts +15 -0
  599. package/dist/selection/constants.d.ts.map +1 -0
  600. package/dist/selection/createCollectionRowInteraction.d.ts +13 -0
  601. package/dist/selection/createCollectionRowInteraction.d.ts.map +1 -0
  602. package/dist/selection/createScrollIntoViewOnFocus.d.ts +31 -0
  603. package/dist/selection/createScrollIntoViewOnFocus.d.ts.map +1 -0
  604. package/dist/selection/createSelectableCollection.d.ts +69 -0
  605. package/dist/selection/createSelectableCollection.d.ts.map +1 -0
  606. package/dist/selection/createSelectableItem.d.ts +154 -0
  607. package/dist/selection/createSelectableItem.d.ts.map +1 -0
  608. package/dist/selection/createSelectableList.d.ts +43 -0
  609. package/dist/selection/createSelectableList.d.ts.map +1 -0
  610. package/dist/selection/createTypeSelect.d.ts +2 -2
  611. package/dist/selection/createTypeSelect.d.ts.map +1 -1
  612. package/dist/selection/index.d.ts +10 -1
  613. package/dist/selection/index.d.ts.map +1 -1
  614. package/dist/selection/index.js +4 -0
  615. package/dist/selection/index.jsx +4 -0
  616. package/dist/selection/selectItem.d.ts +29 -0
  617. package/dist/selection/selectItem.d.ts.map +1 -0
  618. package/dist/selection/utils.d.ts +40 -0
  619. package/dist/selection/utils.d.ts.map +1 -0
  620. package/dist/separator/createSeparator.d.ts +9 -5
  621. package/dist/separator/createSeparator.d.ts.map +1 -1
  622. package/dist/separator/index.d.ts +1 -1
  623. package/dist/separator/index.js +2 -0
  624. package/dist/separator/index.jsx +2 -0
  625. package/dist/slider/createSlider.d.ts +11 -7
  626. package/dist/slider/createSlider.d.ts.map +1 -1
  627. package/dist/slider/index.d.ts +2 -2
  628. package/dist/slider/index.js +2 -0
  629. package/dist/slider/index.jsx +2 -0
  630. package/dist/ssr/index.d.ts +18 -1
  631. package/dist/ssr/index.d.ts.map +1 -1
  632. package/dist/ssr/index.js +299 -0
  633. package/dist/ssr/index.js.map +1 -0
  634. package/dist/ssr/index.jsx +292 -0
  635. package/dist/ssr/index.jsx.map +1 -0
  636. package/dist/steplist/createStepList.d.ts +36 -0
  637. package/dist/steplist/createStepList.d.ts.map +1 -0
  638. package/dist/steplist/index.d.ts +2 -0
  639. package/dist/steplist/index.d.ts.map +1 -0
  640. package/dist/steplist/index.js +2 -0
  641. package/dist/steplist/index.jsx +2 -0
  642. package/dist/switch/createSwitch.d.ts +10 -4
  643. package/dist/switch/createSwitch.d.ts.map +1 -1
  644. package/dist/switch/index.d.ts +1 -1
  645. package/dist/switch/index.js +2 -0
  646. package/dist/switch/index.jsx +2 -0
  647. package/dist/table/createTable.d.ts +3 -3
  648. package/dist/table/createTable.d.ts.map +1 -1
  649. package/dist/table/createTableCell.d.ts +3 -3
  650. package/dist/table/createTableCell.d.ts.map +1 -1
  651. package/dist/table/createTableColumnHeader.d.ts +3 -3
  652. package/dist/table/createTableColumnHeader.d.ts.map +1 -1
  653. package/dist/table/createTableColumnResize.d.ts +41 -0
  654. package/dist/table/createTableColumnResize.d.ts.map +1 -0
  655. package/dist/table/createTableHeaderRow.d.ts +3 -3
  656. package/dist/table/createTableRow.d.ts +4 -4
  657. package/dist/table/createTableRow.d.ts.map +1 -1
  658. package/dist/table/createTableRowGroup.d.ts +2 -2
  659. package/dist/table/createTableRowGroup.d.ts.map +1 -1
  660. package/dist/table/createTableSelectAllCheckbox.d.ts +3 -3
  661. package/dist/table/createTableSelectionCheckbox.d.ts +3 -3
  662. package/dist/table/index.d.ts +11 -9
  663. package/dist/table/index.d.ts.map +1 -1
  664. package/dist/table/index.js +2 -0
  665. package/dist/table/index.jsx +2 -0
  666. package/dist/table/types.d.ts +41 -7
  667. package/dist/table/types.d.ts.map +1 -1
  668. package/dist/tabs/createTabs.d.ts +32 -28
  669. package/dist/tabs/createTabs.d.ts.map +1 -1
  670. package/dist/tabs/index.d.ts +1 -1
  671. package/dist/tabs/index.js +2 -0
  672. package/dist/tabs/index.jsx +2 -0
  673. package/dist/tag/createTag.d.ts +4 -2
  674. package/dist/tag/createTag.d.ts.map +1 -1
  675. package/dist/tag/createTagGroup.d.ts +5 -5
  676. package/dist/tag/createTagGroup.d.ts.map +1 -1
  677. package/dist/tag/index.d.ts +2 -2
  678. package/dist/tag/index.d.ts.map +1 -1
  679. package/dist/tag/index.js +2 -0
  680. package/dist/tag/index.jsx +2 -0
  681. package/dist/textfield/createTextField.d.ts +17 -11
  682. package/dist/textfield/createTextField.d.ts.map +1 -1
  683. package/dist/textfield/index.d.ts +1 -1
  684. package/dist/textfield/index.d.ts.map +1 -1
  685. package/dist/textfield/index.js +2 -0
  686. package/dist/textfield/index.jsx +2 -0
  687. package/dist/toast/createToast.d.ts +2 -2
  688. package/dist/toast/createToast.d.ts.map +1 -1
  689. package/dist/toast/createToastRegion.d.ts +5 -3
  690. package/dist/toast/createToastRegion.d.ts.map +1 -1
  691. package/dist/toast/index.d.ts +2 -2
  692. package/dist/toast/index.d.ts.map +1 -1
  693. package/dist/toast/index.js +2 -0
  694. package/dist/toast/index.jsx +2 -0
  695. package/dist/toggle/createToggle.d.ts +13 -9
  696. package/dist/toggle/createToggle.d.ts.map +1 -1
  697. package/dist/toggle/createToggleState.d.ts +2 -2
  698. package/dist/toggle/createToggleState.d.ts.map +1 -1
  699. package/dist/toggle/index.d.ts +4 -4
  700. package/dist/toggle/index.d.ts.map +1 -1
  701. package/dist/toggle/index.js +3 -0
  702. package/dist/toggle/index.jsx +3 -0
  703. package/dist/toolbar/createToolbar.d.ts +9 -9
  704. package/dist/toolbar/createToolbar.d.ts.map +1 -1
  705. package/dist/toolbar/index.d.ts +1 -1
  706. package/dist/toolbar/index.d.ts.map +1 -1
  707. package/dist/toolbar/index.js +2 -0
  708. package/dist/toolbar/index.jsx +2 -0
  709. package/dist/tooltip/createTooltip.d.ts +5 -5
  710. package/dist/tooltip/createTooltip.d.ts.map +1 -1
  711. package/dist/tooltip/createTooltipTrigger.d.ts +10 -5
  712. package/dist/tooltip/createTooltipTrigger.d.ts.map +1 -1
  713. package/dist/tooltip/index.d.ts +2 -2
  714. package/dist/tooltip/index.js +2 -0
  715. package/dist/tooltip/index.jsx +2 -0
  716. package/dist/tree/createTree.d.ts +8 -4
  717. package/dist/tree/createTree.d.ts.map +1 -1
  718. package/dist/tree/createTreeItem.d.ts +4 -4
  719. package/dist/tree/createTreeItem.d.ts.map +1 -1
  720. package/dist/tree/createTreeSelectionCheckbox.d.ts +3 -3
  721. package/dist/tree/createTreeSelectionCheckbox.d.ts.map +1 -1
  722. package/dist/tree/index.d.ts +4 -4
  723. package/dist/tree/index.js +2 -0
  724. package/dist/tree/index.jsx +2 -0
  725. package/dist/tree/types.d.ts +20 -6
  726. package/dist/tree/types.d.ts.map +1 -1
  727. package/dist/utils/animation.d.ts +60 -0
  728. package/dist/utils/animation.d.ts.map +1 -0
  729. package/dist/utils/createDescription.d.ts +2 -2
  730. package/dist/utils/createDescription.d.ts.map +1 -1
  731. package/dist/utils/dom.d.ts +48 -2
  732. package/dist/utils/dom.d.ts.map +1 -1
  733. package/dist/utils/env.d.ts.map +1 -1
  734. package/dist/utils/focus.d.ts +1 -1
  735. package/dist/utils/focus.d.ts.map +1 -1
  736. package/dist/utils/geometry.d.ts.map +1 -1
  737. package/dist/utils/index.d.ts +15 -12
  738. package/dist/utils/index.d.ts.map +1 -1
  739. package/dist/utils/index.js +5 -0
  740. package/dist/utils/index.jsx +5 -0
  741. package/dist/utils/keyboard.d.ts +17 -0
  742. package/dist/utils/keyboard.d.ts.map +1 -0
  743. package/dist/utils/mergeProps.d.ts.map +1 -1
  744. package/dist/utils/reactivity.d.ts +1 -1
  745. package/dist/utils/scrollIntoView.d.ts +30 -0
  746. package/dist/utils/scrollIntoView.d.ts.map +1 -0
  747. package/dist/visually-hidden/createVisuallyHidden.d.ts +2 -2
  748. package/dist/visually-hidden/createVisuallyHidden.d.ts.map +1 -1
  749. package/dist/visually-hidden/index.d.ts +1 -1
  750. package/dist/visually-hidden/index.js +2 -0
  751. package/dist/visually-hidden/index.jsx +2 -0
  752. package/package.json +334 -33
  753. package/src/actiongroup/createActionGroup.ts +101 -91
  754. package/src/actiongroup/index.ts +1 -1
  755. package/src/autocomplete/createAutocomplete.ts +177 -148
  756. package/src/autocomplete/index.ts +1 -1
  757. package/src/breadcrumbs/createBreadcrumbs.ts +33 -42
  758. package/src/breadcrumbs/index.ts +1 -1
  759. package/src/button/createButton.ts +102 -73
  760. package/src/button/createToggleButton.ts +10 -10
  761. package/src/button/createToggleButtonGroup.ts +25 -32
  762. package/src/button/index.ts +6 -9
  763. package/src/button/types.ts +18 -12
  764. package/src/calendar/createCalendar.ts +64 -29
  765. package/src/calendar/createCalendarCell.ts +115 -46
  766. package/src/calendar/createCalendarGrid.ts +97 -41
  767. package/src/calendar/createCalendarMonthPicker.ts +105 -0
  768. package/src/calendar/createCalendarYearPicker.ts +144 -0
  769. package/src/calendar/createRangeCalendar.ts +68 -31
  770. package/src/calendar/createRangeCalendarCell.ts +92 -31
  771. package/src/calendar/index.ts +21 -8
  772. package/src/calendar/intl/index.ts +210 -0
  773. package/src/calendar/utils.ts +231 -0
  774. package/src/checkbox/createCheckbox.ts +23 -21
  775. package/src/checkbox/createCheckboxGroup.ts +68 -44
  776. package/src/checkbox/createCheckboxGroupItem.ts +26 -41
  777. package/src/checkbox/createCheckboxGroupState.ts +3 -22
  778. package/src/checkbox/index.ts +8 -10
  779. package/src/collections/index.ts +33 -29
  780. package/src/color/createColorArea.ts +232 -154
  781. package/src/color/createColorField.ts +107 -58
  782. package/src/color/createColorSlider.ts +231 -73
  783. package/src/color/createColorSwatch.ts +38 -13
  784. package/src/color/createColorWheel.ts +208 -83
  785. package/src/color/index.ts +6 -6
  786. package/src/color/types.ts +98 -16
  787. package/src/combobox/createComboBox.ts +157 -100
  788. package/src/combobox/index.ts +1 -1
  789. package/src/combobox/intl/index.ts +5 -5
  790. package/src/datepicker/createDateField.ts +192 -39
  791. package/src/datepicker/createDatePicker.ts +260 -67
  792. package/src/datepicker/createDatePickerGroup.ts +149 -0
  793. package/src/datepicker/createDateRangePicker.ts +105 -57
  794. package/src/datepicker/createDateSegment.ts +188 -96
  795. package/src/datepicker/createTimeField.ts +38 -34
  796. package/src/datepicker/createTimeSegment.ts +67 -85
  797. package/src/datepicker/index.ts +13 -14
  798. package/src/dialog/createDialog.ts +45 -38
  799. package/src/dialog/index.ts +2 -2
  800. package/src/dialog/types.ts +4 -4
  801. package/src/disclosure/createDisclosure.ts +138 -33
  802. package/src/disclosure/createDisclosureGroup.ts +8 -21
  803. package/src/disclosure/index.ts +2 -2
  804. package/src/dnd/createDrag.ts +19 -25
  805. package/src/dnd/createDraggableCollection.ts +4 -4
  806. package/src/dnd/createDraggableItem.ts +20 -19
  807. package/src/dnd/createDrop.ts +42 -51
  808. package/src/dnd/createDroppableCollection.ts +293 -173
  809. package/src/dnd/createDroppableItem.ts +34 -34
  810. package/src/dnd/index.ts +23 -12
  811. package/src/dnd/types.ts +4 -7
  812. package/src/dnd/utils.ts +58 -47
  813. package/src/focus/FocusScope.tsx +301 -176
  814. package/src/focus/createAutoFocus.ts +4 -20
  815. package/src/focus/createFocusRestore.ts +15 -28
  816. package/src/focus/createVirtualFocus.ts +20 -36
  817. package/src/focus/index.ts +4 -8
  818. package/src/form/createFormReset.ts +4 -4
  819. package/src/form/createFormValidation.ts +23 -39
  820. package/src/form/index.ts +2 -5
  821. package/src/grid/GridKeyboardDelegate.ts +30 -30
  822. package/src/grid/createGrid.ts +36 -36
  823. package/src/grid/createGridCell.ts +18 -18
  824. package/src/grid/createGridRow.ts +14 -14
  825. package/src/grid/index.ts +5 -5
  826. package/src/grid/types.ts +8 -8
  827. package/src/gridlist/createGridList.ts +172 -64
  828. package/src/gridlist/createGridListItem.ts +98 -121
  829. package/src/gridlist/createGridListSection.ts +54 -0
  830. package/src/gridlist/createGridListSelectionCheckbox.ts +12 -9
  831. package/src/gridlist/index.ts +7 -4
  832. package/src/gridlist/types.ts +58 -7
  833. package/src/i18n/createCollator.ts +5 -18
  834. package/src/i18n/createDateFormatter.ts +5 -13
  835. package/src/i18n/createFilter.ts +11 -24
  836. package/src/i18n/createNumberFormatter.ts +4 -6
  837. package/src/i18n/createStringFormatter.ts +19 -15
  838. package/src/i18n/index.ts +8 -11
  839. package/src/i18n/locale.tsx +15 -40
  840. package/src/i18n/utils.ts +35 -39
  841. package/src/index.ts +111 -172
  842. package/src/interactions/FocusableProvider.tsx +3 -7
  843. package/src/interactions/PressEvent.ts +18 -4
  844. package/src/interactions/createFocus.ts +12 -8
  845. package/src/interactions/createFocusRing.ts +21 -19
  846. package/src/interactions/createFocusWithin.ts +20 -13
  847. package/src/interactions/createFocusable.ts +15 -16
  848. package/src/interactions/createHover.ts +70 -55
  849. package/src/interactions/createInteractionModality.ts +96 -94
  850. package/src/interactions/createKeyboard.ts +12 -2
  851. package/src/interactions/createLongPress.ts +23 -23
  852. package/src/interactions/createMove.ts +72 -62
  853. package/src/interactions/createPress.ts +192 -92
  854. package/src/interactions/index.ts +24 -16
  855. package/src/label/createField.ts +18 -19
  856. package/src/label/createLabel.ts +18 -30
  857. package/src/label/createLabels.ts +8 -12
  858. package/src/label/index.ts +5 -5
  859. package/src/landmark/createLandmark.ts +30 -51
  860. package/src/landmark/index.ts +1 -1
  861. package/src/link/createLink.ts +83 -56
  862. package/src/link/index.ts +1 -1
  863. package/src/listbox/createListBox.ts +198 -66
  864. package/src/listbox/createOption.ts +112 -71
  865. package/src/listbox/index.ts +2 -6
  866. package/src/live-announcer/announce.ts +44 -71
  867. package/src/live-announcer/index.ts +1 -1
  868. package/src/menu/createMenu.ts +171 -65
  869. package/src/menu/createMenuItem.ts +315 -51
  870. package/src/menu/createMenuTrigger.ts +15 -15
  871. package/src/menu/index.ts +3 -12
  872. package/src/meter/createMeter.ts +7 -15
  873. package/src/meter/index.ts +1 -1
  874. package/src/numberfield/createNumberField.ts +205 -80
  875. package/src/numberfield/index.ts +1 -1
  876. package/src/overlays/ariaHideOutside.ts +14 -10
  877. package/src/overlays/createInteractOutside.ts +21 -18
  878. package/src/overlays/createModal.tsx +17 -17
  879. package/src/overlays/createOverlay.ts +38 -8
  880. package/src/overlays/createOverlayTrigger.ts +16 -16
  881. package/src/overlays/createPreventScroll.ts +46 -24
  882. package/src/overlays/index.ts +6 -17
  883. package/src/popover/calculatePosition.ts +134 -124
  884. package/src/popover/createOverlayPosition.ts +55 -40
  885. package/src/popover/createPopover.ts +42 -17
  886. package/src/popover/index.ts +3 -3
  887. package/src/progress/createProgressBar.ts +31 -32
  888. package/src/progress/index.ts +1 -1
  889. package/src/radio/createRadio.ts +114 -75
  890. package/src/radio/createRadioGroup.ts +83 -77
  891. package/src/radio/createRadioGroupState.ts +7 -31
  892. package/src/radio/index.ts +3 -8
  893. package/src/searchfield/createSearchField.ts +57 -29
  894. package/src/searchfield/index.ts +2 -2
  895. package/src/select/createHiddenSelect.tsx +57 -44
  896. package/src/select/createSelect.ts +146 -73
  897. package/src/select/index.ts +2 -7
  898. package/src/selection/DOMLayoutDelegate.ts +102 -0
  899. package/src/selection/ListKeyboardDelegate.ts +398 -0
  900. package/src/selection/constants.ts +16 -0
  901. package/src/selection/createCollectionRowInteraction.ts +209 -0
  902. package/src/selection/createScrollIntoViewOnFocus.ts +65 -0
  903. package/src/selection/createSelectableCollection.ts +645 -0
  904. package/src/selection/createSelectableItem.ts +498 -0
  905. package/src/selection/createSelectableList.ts +93 -0
  906. package/src/selection/createTypeSelect.ts +120 -59
  907. package/src/selection/index.ts +32 -1
  908. package/src/selection/selectItem.ts +80 -0
  909. package/src/selection/utils.ts +82 -0
  910. package/src/separator/createSeparator.ts +20 -25
  911. package/src/separator/index.ts +1 -1
  912. package/src/slider/createSlider.ts +128 -112
  913. package/src/slider/index.ts +2 -2
  914. package/src/ssr/index.tsx +38 -46
  915. package/src/steplist/createStepList.ts +106 -0
  916. package/src/steplist/index.ts +8 -0
  917. package/src/switch/createSwitch.ts +19 -14
  918. package/src/switch/index.ts +1 -1
  919. package/src/table/createTable.ts +192 -95
  920. package/src/table/createTableCell.ts +17 -16
  921. package/src/table/createTableColumnHeader.ts +67 -20
  922. package/src/table/createTableColumnResize.ts +256 -0
  923. package/src/table/createTableHeaderRow.ts +7 -7
  924. package/src/table/createTableRow.ts +206 -91
  925. package/src/table/createTableRowGroup.ts +5 -7
  926. package/src/table/createTableSelectAllCheckbox.ts +14 -14
  927. package/src/table/createTableSelectionCheckbox.ts +8 -8
  928. package/src/table/index.ts +14 -9
  929. package/src/table/types.ts +43 -7
  930. package/src/tabs/createTabs.ts +123 -111
  931. package/src/tabs/index.ts +1 -1
  932. package/src/tag/createTag.ts +57 -50
  933. package/src/tag/createTagGroup.ts +47 -41
  934. package/src/tag/index.ts +2 -6
  935. package/src/textfield/createTextField.ts +67 -35
  936. package/src/textfield/index.ts +1 -5
  937. package/src/toast/createToast.ts +29 -26
  938. package/src/toast/createToastRegion.ts +169 -26
  939. package/src/toast/index.ts +2 -6
  940. package/src/toggle/createToggle.ts +115 -53
  941. package/src/toggle/createToggleState.ts +2 -10
  942. package/src/toggle/index.ts +4 -5
  943. package/src/toolbar/createToolbar.ts +214 -230
  944. package/src/toolbar/index.ts +1 -1
  945. package/src/tooltip/createTooltip.ts +11 -24
  946. package/src/tooltip/createTooltipTrigger.ts +61 -49
  947. package/src/tooltip/index.ts +2 -2
  948. package/src/tree/createTree.ts +128 -72
  949. package/src/tree/createTreeItem.ts +120 -135
  950. package/src/tree/createTreeSelectionCheckbox.ts +11 -8
  951. package/src/tree/index.ts +4 -4
  952. package/src/tree/types.ts +20 -6
  953. package/src/utils/animation.ts +151 -0
  954. package/src/utils/createDescription.ts +6 -23
  955. package/src/utils/dom.ts +265 -68
  956. package/src/utils/env.ts +9 -11
  957. package/src/utils/events.ts +7 -7
  958. package/src/utils/filterDOMProps.ts +49 -49
  959. package/src/utils/focus.ts +60 -68
  960. package/src/utils/geometry.ts +1 -4
  961. package/src/utils/globalListeners.ts +9 -9
  962. package/src/utils/index.ts +20 -22
  963. package/src/utils/keyboard.ts +25 -0
  964. package/src/utils/mergeProps.ts +49 -15
  965. package/src/utils/platform.ts +2 -2
  966. package/src/utils/reactivity.ts +3 -3
  967. package/src/utils/scrollIntoView.ts +181 -0
  968. package/src/utils/textSelection.ts +16 -16
  969. package/src/visually-hidden/createVisuallyHidden.ts +16 -28
  970. package/src/visually-hidden/index.ts +1 -1
  971. package/dist/i18n/NumberFormatter.d.ts +0 -43
  972. package/dist/i18n/NumberFormatter.d.ts.map +0 -1
  973. package/dist/index.js.map +0 -1
  974. package/dist/index.ssr.js +0 -17082
  975. package/dist/index.ssr.js.map +0 -1
  976. package/src/i18n/NumberFormatter.ts +0 -266
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid.jsx","names":[],"sources":["../../src/grid/GridKeyboardDelegate.ts","../../src/grid/createGrid.ts","../../src/grid/createGridRow.ts","../../src/grid/createGridCell.ts"],"sourcesContent":["/**\n * GridKeyboardDelegate - Handles keyboard navigation in a grid.\n * Based on @react-aria/grid/GridKeyboardDelegate.\n */\n\nimport type { GridCollection, GridNode, Key } from \"@proyecto-viviana/solid-stately\";\nimport type { KeyboardDelegate } from \"./types\";\nimport type { Accessor } from \"solid-js\";\n\nexport interface GridKeyboardDelegateOptions<T> {\n /** The grid collection. */\n collection: GridCollection<T>;\n /** Set of disabled keys. */\n disabledKeys: Set<Key>;\n /** Ref to the grid element. */\n ref: Accessor<HTMLElement | null>;\n /** Focus mode: row or cell. */\n focusMode: \"row\" | \"cell\";\n /** Text direction (ltr or rtl). */\n direction: \"ltr\" | \"rtl\";\n}\n\n/**\n * A keyboard delegate that handles navigation in a grid.\n */\nexport class GridKeyboardDelegate<T> implements KeyboardDelegate {\n private collection: GridCollection<T>;\n private disabledKeys: Set<Key>;\n private ref: Accessor<HTMLElement | null>;\n private focusMode: \"row\" | \"cell\";\n private direction: \"ltr\" | \"rtl\";\n\n constructor(options: GridKeyboardDelegateOptions<T>) {\n this.collection = options.collection;\n this.disabledKeys = options.disabledKeys;\n this.ref = options.ref;\n this.focusMode = options.focusMode;\n this.direction = options.direction;\n }\n\n /**\n * Check if a key is disabled.\n */\n private isDisabled(key: Key): boolean {\n return this.disabledKeys.has(key);\n }\n\n /**\n * Get the parent row key for a cell.\n */\n private getRowKey(key: Key): Key | null {\n const item = this.collection.getItem(key);\n if (!item) return null;\n\n if (item.type === \"item\") {\n return key;\n }\n\n if (item.type === \"cell\" && item.parentKey != null) {\n return item.parentKey;\n }\n\n return null;\n }\n\n /**\n * Get all body rows (excluding header rows).\n */\n private getBodyRows(): GridNode<T>[] {\n return this.collection.rows.filter((row) => row.type === \"item\");\n }\n\n /**\n * Get the first non-disabled key.\n */\n getFirstKey(fromKey?: Key, global?: boolean): Key | null {\n const rows = this.getBodyRows();\n\n if (this.focusMode === \"row\" || global) {\n // Find first non-disabled row\n for (const row of rows) {\n if (!this.isDisabled(row.key)) {\n return row.key;\n }\n }\n return null;\n }\n\n // Cell focus mode - get first cell of current row or first row\n if (fromKey != null) {\n const rowKey = this.getRowKey(fromKey);\n if (rowKey != null) {\n const children = [...this.collection.getChildren(rowKey)];\n if (children.length > 0) {\n return children[0].key;\n }\n }\n }\n\n // Fall back to first cell of first row\n if (rows.length > 0) {\n const children = [...this.collection.getChildren(rows[0].key)];\n if (children.length > 0) {\n return children[0].key;\n }\n }\n\n return null;\n }\n\n /**\n * Get the last non-disabled key.\n */\n getLastKey(fromKey?: Key, global?: boolean): Key | null {\n const rows = this.getBodyRows();\n\n if (this.focusMode === \"row\" || global) {\n // Find last non-disabled row\n for (let i = rows.length - 1; i >= 0; i--) {\n if (!this.isDisabled(rows[i].key)) {\n return rows[i].key;\n }\n }\n return null;\n }\n\n // Cell focus mode - get last cell of current row or last row\n if (fromKey != null) {\n const rowKey = this.getRowKey(fromKey);\n if (rowKey != null) {\n const children = [...this.collection.getChildren(rowKey)];\n if (children.length > 0) {\n return children[children.length - 1].key;\n }\n }\n }\n\n // Fall back to last cell of last row\n if (rows.length > 0) {\n const children = [...this.collection.getChildren(rows[rows.length - 1].key)];\n if (children.length > 0) {\n return children[children.length - 1].key;\n }\n }\n\n return null;\n }\n\n /**\n * Get the key above the current key.\n */\n getKeyAbove(key: Key): Key | null {\n const item = this.collection.getItem(key);\n if (!item) return null;\n\n const rows = this.getBodyRows();\n\n if (this.focusMode === \"row\" || item.type === \"item\") {\n // Find the row and get the previous one\n const rowKey = item.type === \"item\" ? key : item.parentKey;\n const rowIndex = rows.findIndex((r) => r.key === rowKey);\n\n if (rowIndex > 0) {\n // Find previous non-disabled row\n for (let i = rowIndex - 1; i >= 0; i--) {\n if (!this.isDisabled(rows[i].key)) {\n return rows[i].key;\n }\n }\n }\n return null;\n }\n\n // Cell focus mode - get cell in same column of previous row\n if (item.type === \"cell\" && item.parentKey != null) {\n const rowIndex = rows.findIndex((r) => r.key === item.parentKey);\n const colIndex = item.column ?? item.index;\n\n if (rowIndex > 0) {\n for (let i = rowIndex - 1; i >= 0; i--) {\n if (!this.isDisabled(rows[i].key)) {\n const children = [...this.collection.getChildren(rows[i].key)];\n const targetCol = Math.min(colIndex, children.length - 1);\n if (targetCol >= 0) {\n return children[targetCol].key;\n }\n }\n }\n }\n }\n\n return null;\n }\n\n /**\n * Get the key below the current key.\n */\n getKeyBelow(key: Key): Key | null {\n const item = this.collection.getItem(key);\n if (!item) return null;\n\n const rows = this.getBodyRows();\n\n if (this.focusMode === \"row\" || item.type === \"item\") {\n // Find the row and get the next one\n const rowKey = item.type === \"item\" ? key : item.parentKey;\n const rowIndex = rows.findIndex((r) => r.key === rowKey);\n\n if (rowIndex >= 0 && rowIndex < rows.length - 1) {\n // Find next non-disabled row\n for (let i = rowIndex + 1; i < rows.length; i++) {\n if (!this.isDisabled(rows[i].key)) {\n return rows[i].key;\n }\n }\n }\n return null;\n }\n\n // Cell focus mode - get cell in same column of next row\n if (item.type === \"cell\" && item.parentKey != null) {\n const rowIndex = rows.findIndex((r) => r.key === item.parentKey);\n const colIndex = item.column ?? item.index;\n\n if (rowIndex >= 0 && rowIndex < rows.length - 1) {\n for (let i = rowIndex + 1; i < rows.length; i++) {\n if (!this.isDisabled(rows[i].key)) {\n const children = [...this.collection.getChildren(rows[i].key)];\n const targetCol = Math.min(colIndex, children.length - 1);\n if (targetCol >= 0) {\n return children[targetCol].key;\n }\n }\n }\n }\n }\n\n return null;\n }\n\n /**\n * Get the key to the left of the current key.\n */\n getKeyLeftOf(key: Key): Key | null {\n const item = this.collection.getItem(key);\n if (!item) return null;\n\n // In row focus mode, left/right might not be meaningful\n if (this.focusMode === \"row\") {\n return null;\n }\n\n if (item.type === \"cell\" && item.parentKey != null) {\n const children = [...this.collection.getChildren(item.parentKey)];\n const colIndex = children.findIndex((c) => c.key === key);\n\n if (this.direction === \"rtl\") {\n // RTL: left moves to higher index\n if (colIndex < children.length - 1) {\n return children[colIndex + 1].key;\n }\n } else {\n // LTR: left moves to lower index\n if (colIndex > 0) {\n return children[colIndex - 1].key;\n }\n }\n }\n\n return null;\n }\n\n /**\n * Get the key to the right of the current key.\n */\n getKeyRightOf(key: Key): Key | null {\n const item = this.collection.getItem(key);\n if (!item) return null;\n\n // In row focus mode, left/right might not be meaningful\n if (this.focusMode === \"row\") {\n return null;\n }\n\n if (item.type === \"cell\" && item.parentKey != null) {\n const children = [...this.collection.getChildren(item.parentKey)];\n const colIndex = children.findIndex((c) => c.key === key);\n\n if (this.direction === \"rtl\") {\n // RTL: right moves to lower index\n if (colIndex > 0) {\n return children[colIndex - 1].key;\n }\n } else {\n // LTR: right moves to higher index\n if (colIndex < children.length - 1) {\n return children[colIndex + 1].key;\n }\n }\n }\n\n return null;\n }\n\n /**\n * Get the key for page up.\n */\n getKeyPageAbove(key: Key): Key | null {\n const el = this.ref();\n if (!el) return null;\n\n const item = this.collection.getItem(key);\n if (!item) return null;\n\n const rows = this.getBodyRows();\n const rowKey = this.getRowKey(key);\n const rowIndex = rows.findIndex((r) => r.key === rowKey);\n\n if (rowIndex < 0) return null;\n\n // Calculate how many rows fit in a page (rough estimate)\n const rowHeight = el.scrollHeight / rows.length;\n const pageSize = Math.max(1, Math.floor(el.clientHeight / rowHeight));\n\n const targetIndex = Math.max(0, rowIndex - pageSize);\n\n // Find first non-disabled row at or before target\n for (let i = targetIndex; i >= 0; i--) {\n if (!this.isDisabled(rows[i].key)) {\n if (this.focusMode === \"row\" || item.type === \"item\") {\n return rows[i].key;\n }\n\n // Cell focus mode - return cell at same column\n const colIndex = item.type === \"cell\" ? (item.column ?? item.index) : 0;\n const children = [...this.collection.getChildren(rows[i].key)];\n const targetCol = Math.min(colIndex, children.length - 1);\n if (targetCol >= 0) {\n return children[targetCol].key;\n }\n }\n }\n\n return null;\n }\n\n /**\n * Get the key for page down.\n */\n getKeyPageBelow(key: Key): Key | null {\n const el = this.ref();\n if (!el) return null;\n\n const item = this.collection.getItem(key);\n if (!item) return null;\n\n const rows = this.getBodyRows();\n const rowKey = this.getRowKey(key);\n const rowIndex = rows.findIndex((r) => r.key === rowKey);\n\n if (rowIndex < 0) return null;\n\n // Calculate how many rows fit in a page (rough estimate)\n const rowHeight = el.scrollHeight / rows.length;\n const pageSize = Math.max(1, Math.floor(el.clientHeight / rowHeight));\n\n const targetIndex = Math.min(rows.length - 1, rowIndex + pageSize);\n\n // Find first non-disabled row at or after target\n for (let i = targetIndex; i < rows.length; i++) {\n if (!this.isDisabled(rows[i].key)) {\n if (this.focusMode === \"row\" || item.type === \"item\") {\n return rows[i].key;\n }\n\n // Cell focus mode - return cell at same column\n const colIndex = item.type === \"cell\" ? (item.column ?? item.index) : 0;\n const children = [...this.collection.getChildren(rows[i].key)];\n const targetCol = Math.min(colIndex, children.length - 1);\n if (targetCol >= 0) {\n return children[targetCol].key;\n }\n }\n }\n\n return null;\n }\n\n /**\n * Get the key that matches the search string.\n */\n getKeyForSearch(search: string, fromKey?: Key): Key | null {\n const searchLower = search.toLowerCase();\n const rows = this.getBodyRows();\n\n let startIndex = 0;\n if (fromKey != null) {\n const rowKey = this.getRowKey(fromKey);\n const idx = rows.findIndex((r) => r.key === rowKey);\n if (idx >= 0) {\n startIndex = idx + 1;\n }\n }\n\n // Search from startIndex to end\n for (let i = startIndex; i < rows.length; i++) {\n const row = rows[i];\n if (!this.isDisabled(row.key)) {\n const textValue = row.textValue?.toLowerCase() ?? \"\";\n if (textValue.startsWith(searchLower)) {\n return row.key;\n }\n }\n }\n\n // Wrap around and search from beginning\n for (let i = 0; i < startIndex; i++) {\n const row = rows[i];\n if (!this.isDisabled(row.key)) {\n const textValue = row.textValue?.toLowerCase() ?? \"\";\n if (textValue.startsWith(searchLower)) {\n return row.key;\n }\n }\n }\n\n return null;\n }\n}\n","/**\n * createGrid - Provides accessibility for a grid component.\n * Based on @react-aria/grid/useGrid.\n */\n\nimport { createMemo, createSignal, type Accessor } from \"solid-js\";\nimport type { JSX } from \"solid-js\";\nimport { createId } from \"@proyecto-viviana/solid-stately\";\nimport type { GridState, GridCollection, Key } from \"@proyecto-viviana/solid-stately\";\nimport type { GridProps, GridAria, KeyboardDelegate } from \"./types\";\nimport { GridKeyboardDelegate } from \"./GridKeyboardDelegate\";\nimport { useLocale } from \"../i18n\";\n\n// Global map to store grid metadata for child components\nconst gridMap = new WeakMap<\n object,\n {\n keyboardDelegate: KeyboardDelegate;\n actions: { onRowAction?: (key: Key) => void; onCellAction?: (key: Key) => void };\n shouldSelectOnPressUp?: boolean;\n }\n>();\n\n/**\n * Get the grid metadata for child components.\n */\nexport function getGridData<T>(state: GridState<T, GridCollection<T>>) {\n return gridMap.get(state);\n}\n\n/**\n * Creates accessibility props for a grid component.\n * A grid displays data in rows and columns and enables navigation via arrow keys.\n */\nexport function createGrid<T extends object>(\n props: Accessor<GridProps>,\n state: Accessor<GridState<T, GridCollection<T>>>,\n ref: Accessor<HTMLElement | null>,\n): GridAria {\n const id = createId(props().id);\n const locale = useLocale();\n\n // Track focused state\n const [_isFocused, setIsFocused] = createSignal(false);\n\n // Create keyboard delegate\n const keyboardDelegate = createMemo(() => {\n const p = props();\n const s = state();\n\n if (p.keyboardDelegate) {\n return p.keyboardDelegate;\n }\n\n return new GridKeyboardDelegate({\n collection: s.collection,\n disabledKeys: s.disabledKeys,\n ref,\n focusMode: p.focusMode ?? \"row\",\n direction: locale().direction,\n });\n });\n\n // Store metadata for child components\n const storeGridData = () => {\n const s = state();\n const p = props();\n gridMap.set(s, {\n keyboardDelegate: keyboardDelegate(),\n actions: {\n onRowAction: p.onRowAction,\n onCellAction: p.onCellAction,\n },\n shouldSelectOnPressUp: p.shouldSelectOnPressUp,\n });\n };\n\n // Update grid data whenever state changes\n createMemo(() => {\n storeGridData();\n });\n\n // Keyboard navigation handler\n const onKeyDown = (e: KeyboardEvent) => {\n const s = state();\n const p = props();\n const delegate = keyboardDelegate();\n\n if (s.isKeyboardNavigationDisabled) {\n return;\n }\n\n const focusedKey = s.focusedKey;\n if (focusedKey == null) {\n // If nothing is focused, focus the first item\n if (e.key === \"ArrowDown\" || e.key === \"ArrowUp\" || e.key === \"Home\" || e.key === \"End\") {\n const firstKey = delegate.getFirstKey?.();\n if (firstKey != null) {\n e.preventDefault();\n s.setFocusedKey(firstKey);\n }\n }\n return;\n }\n\n let nextKey: Key | null = null;\n\n switch (e.key) {\n case \"ArrowDown\":\n nextKey = delegate.getKeyBelow?.(focusedKey) ?? null;\n break;\n case \"ArrowUp\":\n nextKey = delegate.getKeyAbove?.(focusedKey) ?? null;\n break;\n case \"ArrowLeft\":\n nextKey = delegate.getKeyLeftOf?.(focusedKey) ?? null;\n break;\n case \"ArrowRight\":\n nextKey = delegate.getKeyRightOf?.(focusedKey) ?? null;\n break;\n case \"Home\":\n if (e.ctrlKey) {\n nextKey = delegate.getFirstKey?.() ?? null;\n } else {\n // Go to first cell in row - for now just use first key\n nextKey = delegate.getFirstKey?.(focusedKey) ?? null;\n }\n break;\n case \"End\":\n if (e.ctrlKey) {\n nextKey = delegate.getLastKey?.() ?? null;\n } else {\n // Go to last cell in row - for now just use last key\n nextKey = delegate.getLastKey?.(focusedKey) ?? null;\n }\n break;\n case \"PageDown\":\n nextKey = delegate.getKeyPageBelow?.(focusedKey) ?? null;\n break;\n case \"PageUp\":\n nextKey = delegate.getKeyPageAbove?.(focusedKey) ?? null;\n break;\n case \"Escape\":\n if (p.escapeKeyBehavior !== \"none\") {\n s.clearSelection();\n }\n return;\n case \"a\":\n if (e.ctrlKey || e.metaKey) {\n e.preventDefault();\n if (s.selectionMode === \"multiple\") {\n s.selectAll();\n }\n }\n return;\n case \" \":\n case \"Enter\":\n e.preventDefault();\n // Toggle selection or trigger action\n if (s.selectionMode !== \"none\") {\n if (e.shiftKey && s.selectionMode === \"multiple\") {\n s.extendSelection(focusedKey);\n } else {\n s.toggleSelection(focusedKey);\n }\n }\n return;\n default:\n // Type to select\n if (!p.disallowTypeAhead && e.key.length === 1 && !e.ctrlKey && !e.metaKey && !e.altKey) {\n const key = delegate.getKeyForSearch?.(e.key, focusedKey);\n if (key != null) {\n e.preventDefault();\n s.setFocusedKey(key);\n }\n }\n return;\n }\n\n if (nextKey != null) {\n e.preventDefault();\n s.setFocusedKey(nextKey);\n\n // Handle shift+arrow for range selection\n if (e.shiftKey && s.selectionMode === \"multiple\") {\n s.extendSelection(nextKey);\n }\n }\n };\n\n // Focus handling\n const onFocus = (e: FocusEvent) => {\n const s = state();\n const el = ref();\n\n if (!el?.contains(e.target as Element)) {\n return;\n }\n\n if (!s.isFocused) {\n s.setFocused(true);\n setIsFocused(true);\n\n // If no key is focused, focus the first one\n if (s.focusedKey == null) {\n const firstKey = keyboardDelegate().getFirstKey?.();\n if (firstKey != null) {\n s.setFocusedKey(firstKey);\n }\n }\n }\n };\n\n const onBlur = (e: FocusEvent) => {\n const s = state();\n const el = ref();\n\n // Only blur if focus is leaving the grid entirely\n if (el && !el.contains(e.relatedTarget as Element)) {\n s.setFocused(false);\n setIsFocused(false);\n }\n };\n\n // Warn if no label is provided\n createMemo(() => {\n const p = props();\n if (!p[\"aria-label\"] && !p[\"aria-labelledby\"]) {\n console.warn(\"Grid: An aria-label or aria-labelledby prop is required for accessibility.\");\n }\n });\n\n const gridProps = createMemo(() => {\n const p = props();\n const s = state();\n\n const baseProps: Record<string, unknown> = {\n role: \"grid\",\n id,\n \"aria-label\": p[\"aria-label\"],\n \"aria-labelledby\": p[\"aria-labelledby\"],\n \"aria-describedby\": p[\"aria-describedby\"],\n \"aria-multiselectable\": s.selectionMode === \"multiple\" ? \"true\" : undefined,\n tabIndex: s.collection.size === 0 ? 0 : -1,\n onKeyDown,\n onFocus,\n onBlur,\n };\n\n if (p.isVirtualized) {\n baseProps[\"aria-rowcount\"] = s.collection.rowCount;\n baseProps[\"aria-colcount\"] = s.collection.columnCount;\n }\n\n return baseProps as JSX.HTMLAttributes<HTMLElement>;\n });\n\n return {\n get gridProps() {\n return gridProps();\n },\n };\n}\n","/**\n * createGridRow - Provides accessibility for a grid row.\n * Based on @react-aria/grid/useGridRow.\n */\n\nimport { createMemo, createSignal, type Accessor } from \"solid-js\";\nimport type { JSX } from \"solid-js\";\nimport type { GridState, GridCollection } from \"@proyecto-viviana/solid-stately\";\nimport type { GridRowProps, GridRowAria } from \"./types\";\nimport { getGridData } from \"./createGrid\";\n\n/**\n * Creates accessibility props for a grid row.\n */\nexport function createGridRow<T extends object>(\n props: Accessor<GridRowProps>,\n state: Accessor<GridState<T, GridCollection<T>>>,\n _ref: Accessor<HTMLElement | null>,\n): GridRowAria {\n const [isPressed, setIsPressed] = createSignal(false);\n\n const isSelected = createMemo(() => {\n const s = state();\n const p = props();\n return s.isSelected(p.key);\n });\n\n const isDisabled = createMemo(() => {\n const s = state();\n const p = props();\n return s.isDisabled(p.key);\n });\n\n const isFocused = createMemo(() => {\n const s = state();\n const p = props();\n return s.focusedKey === p.key;\n });\n\n // Handle click/press for selection\n const onClick = (e: MouseEvent) => {\n const s = state();\n const p = props();\n\n if (isDisabled()) return;\n\n // Get grid metadata for actions\n const gridData = getGridData(s);\n const onRowAction = gridData?.actions.onRowAction;\n\n // Handle selection\n if (s.selectionMode !== \"none\") {\n if (e.shiftKey && s.selectionMode === \"multiple\") {\n s.extendSelection(p.key);\n } else if (e.ctrlKey || e.metaKey) {\n s.toggleSelection(p.key);\n } else {\n // Replace selection\n s.replaceSelection(p.key);\n }\n }\n\n // Call action handler\n if (onRowAction) {\n onRowAction(p.key);\n }\n\n if (p.onAction) {\n p.onAction();\n }\n };\n\n const onKeyDown = (e: KeyboardEvent) => {\n const s = state();\n const p = props();\n\n if (isDisabled()) return;\n\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n\n // Get grid metadata for actions\n const gridData = getGridData(s);\n const onRowAction = gridData?.actions.onRowAction;\n\n // Handle selection\n if (s.selectionMode !== \"none\") {\n s.toggleSelection(p.key);\n }\n\n // Call action handler\n if (onRowAction) {\n onRowAction(p.key);\n }\n\n if (p.onAction) {\n p.onAction();\n }\n }\n };\n\n const onFocus = () => {\n const s = state();\n const p = props();\n s.setFocusedKey(p.key);\n };\n\n const onPointerDown = () => {\n setIsPressed(true);\n };\n\n const onPointerUp = () => {\n setIsPressed(false);\n };\n\n const rowProps = createMemo(() => {\n const s = state();\n const p = props();\n\n const baseProps: Record<string, unknown> = {\n role: \"row\",\n \"aria-selected\": s.selectionMode !== \"none\" ? isSelected() : undefined,\n \"aria-disabled\": isDisabled() || undefined,\n tabIndex: isFocused() ? 0 : -1,\n onClick,\n onKeyDown,\n onFocus,\n onPointerDown,\n onPointerUp,\n };\n\n if (p.isVirtualized && p.index != null) {\n baseProps[\"aria-rowindex\"] = p.index + 1; // aria-rowindex is 1-based\n }\n\n return baseProps as JSX.HTMLAttributes<HTMLElement>;\n });\n\n return {\n get rowProps() {\n return rowProps();\n },\n get isSelected() {\n return isSelected();\n },\n get isDisabled() {\n return isDisabled();\n },\n get isPressed() {\n return isPressed();\n },\n };\n}\n","/**\n * createGridCell - Provides accessibility for a grid cell.\n * Based on @react-aria/grid/useGridCell.\n */\n\nimport { createMemo, createSignal, type Accessor } from \"solid-js\";\nimport type { JSX } from \"solid-js\";\nimport type { GridState, GridCollection } from \"@proyecto-viviana/solid-stately\";\nimport type { GridCellProps, GridCellAria } from \"./types\";\nimport { getGridData } from \"./createGrid\";\n\n/**\n * Creates accessibility props for a grid cell.\n */\nexport function createGridCell<T extends object>(\n props: Accessor<GridCellProps>,\n state: Accessor<GridState<T, GridCollection<T>>>,\n _ref: Accessor<HTMLElement | null>,\n): GridCellAria {\n const [isPressed, setIsPressed] = createSignal(false);\n\n const isSelected = createMemo(() => {\n const s = state();\n const p = props();\n // Check if parent row is selected\n const node = s.collection.getItem(p.key);\n if (node?.parentKey != null) {\n return s.isSelected(node.parentKey);\n }\n return false;\n });\n\n const isDisabled = createMemo(() => {\n const s = state();\n const p = props();\n // Check if parent row is disabled\n const node = s.collection.getItem(p.key);\n if (node?.parentKey != null) {\n return s.isDisabled(node.parentKey);\n }\n return false;\n });\n\n const isFocused = createMemo(() => {\n const s = state();\n const p = props();\n return s.focusedKey === p.key;\n });\n\n // Handle click/press for cell actions\n const onClick = (e: MouseEvent) => {\n const s = state();\n const p = props();\n\n if (isDisabled()) return;\n\n // Get grid metadata for actions\n const gridData = getGridData(s);\n const onCellAction = gridData?.actions.onCellAction;\n\n // Get parent row key for selection\n const node = s.collection.getItem(p.key);\n const rowKey = node?.parentKey;\n\n // Handle selection on parent row\n if (rowKey != null && s.selectionMode !== \"none\") {\n if (e.shiftKey && s.selectionMode === \"multiple\") {\n s.extendSelection(rowKey);\n } else if (e.ctrlKey || e.metaKey) {\n s.toggleSelection(rowKey);\n } else {\n // Replace selection\n s.replaceSelection(rowKey);\n }\n }\n\n // Call cell action handler\n if (onCellAction) {\n onCellAction(p.key);\n }\n\n if (p.onAction) {\n p.onAction();\n }\n };\n\n const onKeyDown = (e: KeyboardEvent) => {\n const s = state();\n const p = props();\n\n if (isDisabled()) return;\n\n // Enter or Space triggers cell action\n if (e.key === \"Enter\" || e.key === \" \") {\n // Only handle if there's an action to trigger\n const gridData = getGridData(s);\n const onCellAction = gridData?.actions.onCellAction;\n\n if (onCellAction || p.onAction) {\n e.preventDefault();\n\n if (onCellAction) {\n onCellAction(p.key);\n }\n\n if (p.onAction) {\n p.onAction();\n }\n }\n }\n };\n\n const onFocus = () => {\n const s = state();\n const p = props();\n s.setFocusedKey(p.key);\n };\n\n const onPointerDown = () => {\n setIsPressed(true);\n };\n\n const onPointerUp = () => {\n setIsPressed(false);\n };\n\n const cellProps = createMemo(() => {\n const s = state();\n const p = props();\n const node = s.collection.getItem(p.key);\n\n // Determine the role based on node type\n let role: string = \"gridcell\";\n if (node?.type === \"rowheader\") {\n role = \"rowheader\";\n } else if (node?.type === \"column\") {\n role = \"columnheader\";\n }\n\n const baseProps: Record<string, unknown> = {\n role,\n \"aria-disabled\": isDisabled() || undefined,\n \"aria-selected\": s.selectionMode !== \"none\" ? isSelected() : undefined,\n tabIndex: isFocused() ? 0 : -1,\n onClick,\n onKeyDown,\n onFocus,\n onPointerDown,\n onPointerUp,\n };\n\n // Add column index for virtualized grids\n if (p.isVirtualized && node?.column != null) {\n baseProps[\"aria-colindex\"] = node.column + 1; // aria-colindex is 1-based\n }\n\n // Add colspan if present\n if (node?.colspan != null && node.colspan > 1) {\n baseProps[\"aria-colspan\"] = node.colspan;\n }\n\n return baseProps as JSX.HTMLAttributes<HTMLElement>;\n });\n\n return {\n get cellProps() {\n return cellProps();\n },\n get isSelected() {\n return isSelected();\n },\n get isDisabled() {\n return isDisabled();\n },\n get isPressed() {\n return isPressed();\n },\n get isFocused() {\n return isFocused();\n },\n };\n}\n"],"mappings":"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"}
@@ -0,0 +1,364 @@
1
+ import { o as mergeProps } from "./env.js";
2
+ import { S as scrollIntoViewport } from "./utils.js";
3
+ import { o as getInteractionModality } from "./createInteractionModality.js";
4
+ import { createId as createId$1, createSlotId } from "../ssr/index.js";
5
+ import { t as createLabels } from "./createLabels.js";
6
+ import { n as createSelectableItem } from "./createSelectableItem.js";
7
+ import { t as mergeCollectionRowInteractionProps } from "./createCollectionRowInteraction.js";
8
+ import { createEffect, createMemo } from "solid-js";
9
+ import { createId } from "@proyecto-viviana/solid-stately";
10
+ //#region src/gridlist/createGridList.ts
11
+ /**
12
+ * createGridList - Provides accessibility for a grid list.
13
+ * Based on @react-aria/gridlist/useGridList.
14
+ */
15
+ /**
16
+ * WeakMap to store grid list data for child components to access.
17
+ */
18
+ const gridListDataMap = /* @__PURE__ */ new WeakMap();
19
+ /**
20
+ * Gets the grid list data for a given state.
21
+ */
22
+ function getGridListData(state) {
23
+ return gridListDataMap.get(state);
24
+ }
25
+ /**
26
+ * Whether a key should be skipped during keyboard navigation. Disabled keys only
27
+ * block navigation under `disabledBehavior: "all"` (the default); under
28
+ * `"selection"` they remain focusable (selection is still blocked elsewhere).
29
+ * Mirrors `ListKeyboardDelegate.isDisabled` in React Aria.
30
+ */
31
+ function isNavigationDisabled(state, key) {
32
+ return state.isDisabled(key) && state.disabledBehavior === "all";
33
+ }
34
+ /**
35
+ * Walks from `startKey` via `step` until reaching a navigable (not
36
+ * navigation-disabled) key, mirroring React Aria's
37
+ * `ListKeyboardDelegate.findNextNonDisabled`. The next/previous lookups and the
38
+ * `getFirstKey`/`getLastKey` boundaries all funnel through this so arrow keys,
39
+ * Home and End land on enabled rows only.
40
+ */
41
+ function findNextNavigableKey(state, startKey, step) {
42
+ let key = startKey;
43
+ while (key != null && isNavigationDisabled(state, key)) key = step(key);
44
+ return key;
45
+ }
46
+ /**
47
+ * Creates accessibility props for a grid list.
48
+ */
49
+ function createGridList(props, state, ref) {
50
+ const gridListId = props().id ?? createId();
51
+ const gridListData = {
52
+ gridListId,
53
+ get selectionBehavior() {
54
+ return props().selectionBehavior ?? "replace";
55
+ },
56
+ get shouldSelectOnPressUp() {
57
+ return props().shouldSelectOnPressUp ?? false;
58
+ },
59
+ get keyboardNavigationBehavior() {
60
+ return props().keyboardNavigationBehavior ?? "arrow";
61
+ },
62
+ get direction() {
63
+ return props().direction ?? "ltr";
64
+ },
65
+ actions: { get onAction() {
66
+ return props().onAction;
67
+ } }
68
+ };
69
+ gridListDataMap.set(state(), gridListData);
70
+ const onKeyDown = (e) => {
71
+ const s = state();
72
+ const p = props();
73
+ const collection = s.collection;
74
+ const focusedKey = s.focusedKey;
75
+ if (p.isDisabled) return;
76
+ switch (e.key) {
77
+ case "ArrowDown": {
78
+ e.preventDefault();
79
+ const nextKey = focusedKey != null ? findNextNavigableKey(s, collection.getKeyAfter(focusedKey), (k) => collection.getKeyAfter(k)) : findNextNavigableKey(s, collection.getFirstKey(), (k) => collection.getKeyAfter(k));
80
+ if (nextKey != null) s.setFocusedKey(nextKey);
81
+ break;
82
+ }
83
+ case "ArrowUp": {
84
+ e.preventDefault();
85
+ const prevKey = focusedKey != null ? findNextNavigableKey(s, collection.getKeyBefore(focusedKey), (k) => collection.getKeyBefore(k)) : findNextNavigableKey(s, collection.getLastKey(), (k) => collection.getKeyBefore(k));
86
+ if (prevKey != null) s.setFocusedKey(prevKey);
87
+ break;
88
+ }
89
+ case "ArrowRight":
90
+ case "ArrowLeft": {
91
+ if (p.orientation !== "horizontal") break;
92
+ e.preventDefault();
93
+ const isRtl = p.direction === "rtl";
94
+ const step = (e.key === "ArrowRight" ? !isRtl : isRtl) ? (k) => collection.getKeyAfter(k) : (k) => collection.getKeyBefore(k);
95
+ const nextKey = focusedKey != null ? findNextNavigableKey(s, step(focusedKey), step) : findNextNavigableKey(s, collection.getFirstKey(), (k) => collection.getKeyAfter(k));
96
+ if (nextKey != null) s.setFocusedKey(nextKey);
97
+ break;
98
+ }
99
+ case "Home": {
100
+ e.preventDefault();
101
+ const firstKey = findNextNavigableKey(s, collection.getFirstKey(), (k) => collection.getKeyAfter(k));
102
+ if (firstKey != null) s.setFocusedKey(firstKey);
103
+ break;
104
+ }
105
+ case "End": {
106
+ e.preventDefault();
107
+ const lastKey = findNextNavigableKey(s, collection.getLastKey(), (k) => collection.getKeyBefore(k));
108
+ if (lastKey != null) s.setFocusedKey(lastKey);
109
+ break;
110
+ }
111
+ case "a":
112
+ case "A":
113
+ if ((e.ctrlKey || e.metaKey) && s.selectionMode === "multiple") {
114
+ e.preventDefault();
115
+ s.selectAll();
116
+ }
117
+ break;
118
+ case "Escape":
119
+ if (s.selectionMode !== "none") {
120
+ e.preventDefault();
121
+ s.clearSelection();
122
+ }
123
+ break;
124
+ }
125
+ };
126
+ const onFocus = () => {
127
+ const s = state();
128
+ s.setFocused(true);
129
+ if (s.focusedKey == null) {
130
+ const firstKey = findNextNavigableKey(s, s.collection.getFirstKey(), (k) => s.collection.getKeyAfter(k));
131
+ if (firstKey != null) s.setFocusedKey(firstKey);
132
+ }
133
+ };
134
+ const onBlur = () => {
135
+ state().setFocused(false);
136
+ };
137
+ createEffect(() => {
138
+ const key = state().focusedKey;
139
+ const el = ref();
140
+ if (!el || key == null) return;
141
+ const active = document.activeElement;
142
+ if (!active || active !== el && !el.contains(active)) return;
143
+ const target = el.querySelector(`[data-key="${key}"]`);
144
+ if (target && target !== active) {
145
+ target.focus();
146
+ if (getInteractionModality() !== "pointer") scrollIntoViewport(target, { containingElement: el });
147
+ }
148
+ });
149
+ const gridProps = createMemo(() => {
150
+ const p = props();
151
+ const s = state();
152
+ const baseProps = {
153
+ role: "grid",
154
+ id: gridListId,
155
+ "aria-label": p["aria-label"],
156
+ "aria-labelledby": p["aria-labelledby"],
157
+ "aria-describedby": p["aria-describedby"],
158
+ "aria-multiselectable": s.selectionMode === "multiple" ? true : void 0,
159
+ "aria-disabled": p.isDisabled || void 0,
160
+ tabIndex: p.isDisabled ? void 0 : 0,
161
+ onKeyDown,
162
+ onFocus,
163
+ onBlur
164
+ };
165
+ if (p.isVirtualized) baseProps["aria-rowcount"] = s.collection.rowCount;
166
+ return baseProps;
167
+ });
168
+ return { get gridProps() {
169
+ return gridProps();
170
+ } };
171
+ }
172
+ //#endregion
173
+ //#region src/gridlist/createGridListItem.ts
174
+ /**
175
+ * createGridListItem - Provides accessibility for a grid list item.
176
+ * Based on @react-aria/gridlist/useGridListItem.
177
+ */
178
+ /**
179
+ * Creates accessibility props for a grid list item.
180
+ */
181
+ function createGridListItem(props, state, ref) {
182
+ const isSelected = createMemo(() => {
183
+ const s = state();
184
+ const p = props();
185
+ return s.isSelected(p.node.key);
186
+ });
187
+ const selectableItem = createSelectableItem(() => {
188
+ const s = state();
189
+ const p = props();
190
+ const gridListData = getGridListData(s);
191
+ const onAction = gridListData?.actions.onAction;
192
+ return {
193
+ key: p.node.key,
194
+ id: `${gridListData?.gridListId ?? "gridlist"}-row-${String(p.node.key)}`,
195
+ isVirtualized: p.isVirtualized,
196
+ shouldSelectOnPressUp: gridListData?.shouldSelectOnPressUp ?? false,
197
+ onAction: onAction || p.onAction ? () => {
198
+ p.onAction?.();
199
+ onAction?.(p.node.key);
200
+ } : void 0
201
+ };
202
+ }, {
203
+ collection: () => state().collection,
204
+ isFocused: () => state().isFocused,
205
+ setFocused: (focused) => state().setFocused(focused),
206
+ focusedKey: () => state().focusedKey,
207
+ childFocusStrategy: () => state().childFocusStrategy,
208
+ setFocusedKey: (key, strategy) => state().setFocusedKey(key, strategy),
209
+ selectionMode: () => state().selectionMode,
210
+ selectionBehavior: () => props().selectionBehavior ?? state().selectionBehavior,
211
+ disallowEmptySelection: () => state().disallowEmptySelection,
212
+ selectedKeys: () => state().selectedKeys,
213
+ disabledKeys: () => state().disabledKeys,
214
+ disabledBehavior: () => state().disabledBehavior,
215
+ isEmpty: () => {
216
+ const keys = state().selectedKeys;
217
+ return keys !== "all" && keys.size === 0;
218
+ },
219
+ isSelectAll: () => state().selectedKeys === "all",
220
+ isSelected: (key) => state().isSelected(key),
221
+ isDisabled: (key) => {
222
+ const s = state();
223
+ const item = s.collection.getItem(key);
224
+ return s.disabledBehavior === "all" && s.isDisabled(key) && item?.props?.disabledBehavior !== "selection";
225
+ },
226
+ canSelectItem: (key) => {
227
+ const s = state();
228
+ return s.selectionMode !== "none" && !s.isDisabled(key);
229
+ },
230
+ setSelectionBehavior: (behavior) => state().setSelectionBehavior(behavior),
231
+ toggleSelection: (key) => state().toggleSelection(key),
232
+ replaceSelection: (key) => state().replaceSelection(key),
233
+ setSelectedKeys: (keys) => state().setSelectedKeys(keys),
234
+ selectAll: () => state().selectAll(),
235
+ clearSelection: () => state().clearSelection(),
236
+ toggleSelectAll: () => state().toggleSelectAll(),
237
+ extendSelection: (toKey, _collection) => state().extendSelection(toKey)
238
+ }, ref);
239
+ const rowProps = createMemo(() => {
240
+ const s = state();
241
+ const p = props();
242
+ const node = p.node;
243
+ const baseProps = {
244
+ role: "row",
245
+ "aria-selected": s.selectionMode !== "none" ? isSelected() : void 0,
246
+ "aria-disabled": selectableItem.isDisabled() || void 0
247
+ };
248
+ if (p.isVirtualized && node.rowIndex != null) baseProps["aria-rowindex"] = node.rowIndex + 1;
249
+ const gridListData = getGridListData(s);
250
+ return mergeCollectionRowInteractionProps(mergeProps(selectableItem.itemProps, baseProps), {
251
+ ref,
252
+ keyboardNavigationBehavior: () => gridListData?.keyboardNavigationBehavior ?? "arrow",
253
+ direction: () => gridListData?.direction ?? "ltr"
254
+ });
255
+ });
256
+ const gridCellProps = createMemo(() => {
257
+ return { role: "gridcell" };
258
+ });
259
+ return {
260
+ get rowProps() {
261
+ return rowProps();
262
+ },
263
+ get gridCellProps() {
264
+ return gridCellProps();
265
+ },
266
+ get isSelected() {
267
+ return isSelected();
268
+ },
269
+ get isDisabled() {
270
+ return selectableItem.isDisabled();
271
+ },
272
+ get isPressed() {
273
+ return selectableItem.isPressed();
274
+ }
275
+ };
276
+ }
277
+ //#endregion
278
+ //#region src/gridlist/createGridListSelectionCheckbox.ts
279
+ /**
280
+ * createGridListSelectionCheckbox - Provides accessibility for a grid list item selection checkbox.
281
+ * Based on @react-aria/gridlist.
282
+ */
283
+ /**
284
+ * Creates accessibility props for a grid list item selection checkbox.
285
+ */
286
+ function createGridListSelectionCheckbox(props, state) {
287
+ const checkboxId = createId();
288
+ const isSelected = createMemo(() => {
289
+ const s = state();
290
+ const p = props();
291
+ return s.isSelected(p.key);
292
+ });
293
+ const isDisabled = createMemo(() => {
294
+ const s = state();
295
+ const p = props();
296
+ return s.isDisabled(p.key);
297
+ });
298
+ const onChange = () => {
299
+ const s = state();
300
+ const p = props();
301
+ if (!isDisabled()) s.toggleSelection(p.key);
302
+ };
303
+ const checkboxProps = createMemo(() => {
304
+ return {
305
+ id: checkboxId,
306
+ type: "checkbox",
307
+ checked: isSelected(),
308
+ disabled: isDisabled(),
309
+ onChange,
310
+ "aria-label": "Select"
311
+ };
312
+ });
313
+ return { get checkboxProps() {
314
+ return checkboxProps();
315
+ } };
316
+ }
317
+ //#endregion
318
+ //#region src/gridlist/createGridListSection.ts
319
+ /**
320
+ * createGridListSection - Provides accessibility for a grid list section.
321
+ * Based on @react-aria/gridlist/useGridListSection.
322
+ */
323
+ /**
324
+ * Creates accessibility props for a grid list section.
325
+ *
326
+ * Mirrors upstream `useGridListSection`: a section is a `role="rowgroup"`
327
+ * wrapper whose optional header renders as `role="row"` › `role="rowheader"`.
328
+ * The `aria-labelledby` of the wrapper points at the header's id via a slot id
329
+ * that resolves to `undefined` when no header is rendered.
330
+ */
331
+ function createGridListSection(props) {
332
+ const headingId = createSlotId();
333
+ const rowGroupId = createId$1();
334
+ const labelProps = createMemo(() => createLabels({
335
+ id: rowGroupId,
336
+ "aria-label": props["aria-label"],
337
+ "aria-labelledby": headingId()
338
+ }));
339
+ return {
340
+ rowProps: { role: "row" },
341
+ rowHeaderProps: {
342
+ get id() {
343
+ return headingId();
344
+ },
345
+ role: "rowheader"
346
+ },
347
+ rowGroupProps: {
348
+ role: "rowgroup",
349
+ get id() {
350
+ return labelProps().id;
351
+ },
352
+ get "aria-label"() {
353
+ return labelProps()["aria-label"];
354
+ },
355
+ get "aria-labelledby"() {
356
+ return labelProps()["aria-labelledby"];
357
+ }
358
+ }
359
+ };
360
+ }
361
+ //#endregion
362
+ export { getGridListData as a, createGridList as i, createGridListSelectionCheckbox as n, createGridListItem as r, createGridListSection as t };
363
+
364
+ //# sourceMappingURL=gridlist.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gridlist.js","names":["createId"],"sources":["../../src/gridlist/createGridList.ts","../../src/gridlist/createGridListItem.ts","../../src/gridlist/createGridListSelectionCheckbox.ts","../../src/gridlist/createGridListSection.ts"],"sourcesContent":["/**\n * createGridList - Provides accessibility for a grid list.\n * Based on @react-aria/gridlist/useGridList.\n */\n\nimport { createMemo, createEffect, type Accessor } from \"solid-js\";\nimport type { JSX } from \"solid-js\";\nimport { createId } from \"@proyecto-viviana/solid-stately\";\nimport type { GridState, GridCollection, Key } from \"@proyecto-viviana/solid-stately\";\nimport type { AriaGridListProps, GridListAria } from \"./types\";\nimport { scrollIntoViewport } from \"../utils\";\nimport { getInteractionModality } from \"../interactions/createInteractionModality\";\n\n/**\n * Metadata stored for a grid list instance.\n */\ninterface GridListData {\n /** The generated ID for the grid list. */\n gridListId: string;\n /** How selection should behave when pressing an item. */\n selectionBehavior: \"replace\" | \"toggle\";\n /** Whether row selection should occur on press up. */\n shouldSelectOnPressUp: boolean;\n /** How keyboard navigation behaves within row children. */\n keyboardNavigationBehavior: \"arrow\" | \"tab\";\n /** Text direction for row-child arrow navigation. */\n direction: \"ltr\" | \"rtl\";\n /** Actions registered for the grid list. */\n actions: {\n onAction?: (key: Key) => void;\n };\n}\n\n/**\n * WeakMap to store grid list data for child components to access.\n */\nconst gridListDataMap = new WeakMap<object, GridListData>();\n\n/**\n * Gets the grid list data for a given state.\n */\nexport function getGridListData<T extends object, C extends GridCollection<T>>(\n state: GridState<T, C>,\n): GridListData | undefined {\n return gridListDataMap.get(state);\n}\n\n/**\n * Whether a key should be skipped during keyboard navigation. Disabled keys only\n * block navigation under `disabledBehavior: \"all\"` (the default); under\n * `\"selection\"` they remain focusable (selection is still blocked elsewhere).\n * Mirrors `ListKeyboardDelegate.isDisabled` in React Aria.\n */\nfunction isNavigationDisabled<T extends object, C extends GridCollection<T>>(\n state: GridState<T, C>,\n key: Key,\n): boolean {\n return state.isDisabled(key) && state.disabledBehavior === \"all\";\n}\n\n/**\n * Walks from `startKey` via `step` until reaching a navigable (not\n * navigation-disabled) key, mirroring React Aria's\n * `ListKeyboardDelegate.findNextNonDisabled`. The next/previous lookups and the\n * `getFirstKey`/`getLastKey` boundaries all funnel through this so arrow keys,\n * Home and End land on enabled rows only.\n */\nfunction findNextNavigableKey<T extends object, C extends GridCollection<T>>(\n state: GridState<T, C>,\n startKey: Key | null,\n step: (key: Key) => Key | null,\n): Key | null {\n let key = startKey;\n while (key != null && isNavigationDisabled(state, key)) {\n key = step(key);\n }\n return key;\n}\n\n/**\n * Creates accessibility props for a grid list.\n */\nexport function createGridList<T extends object, C extends GridCollection<T> = GridCollection<T>>(\n props: Accessor<AriaGridListProps>,\n state: Accessor<GridState<T, C>>,\n ref: Accessor<HTMLElement | null>,\n): GridListAria {\n // Generate a unique ID for the grid list\n const gridListId = props().id ?? createId();\n\n // Store grid list data for child components\n const gridListData: GridListData = {\n gridListId,\n get selectionBehavior() {\n return props().selectionBehavior ?? \"replace\";\n },\n get shouldSelectOnPressUp() {\n return props().shouldSelectOnPressUp ?? false;\n },\n get keyboardNavigationBehavior() {\n return props().keyboardNavigationBehavior ?? \"arrow\";\n },\n get direction() {\n return props().direction ?? \"ltr\";\n },\n actions: {\n get onAction() {\n return props().onAction;\n },\n },\n };\n\n // Store in WeakMap using the state as key\n gridListDataMap.set(state(), gridListData);\n\n // Handle keyboard navigation\n const onKeyDown = (e: KeyboardEvent) => {\n const s = state();\n const p = props();\n const collection = s.collection;\n const focusedKey = s.focusedKey;\n\n if (p.isDisabled) return;\n\n switch (e.key) {\n case \"ArrowDown\": {\n e.preventDefault();\n const nextKey =\n focusedKey != null\n ? findNextNavigableKey(s, collection.getKeyAfter(focusedKey), (k) =>\n collection.getKeyAfter(k),\n )\n : findNextNavigableKey(s, collection.getFirstKey(), (k) => collection.getKeyAfter(k));\n if (nextKey != null) {\n s.setFocusedKey(nextKey);\n }\n break;\n }\n case \"ArrowUp\": {\n e.preventDefault();\n const prevKey =\n focusedKey != null\n ? findNextNavigableKey(s, collection.getKeyBefore(focusedKey), (k) =>\n collection.getKeyBefore(k),\n )\n : findNextNavigableKey(s, collection.getLastKey(), (k) => collection.getKeyBefore(k));\n if (prevKey != null) {\n s.setFocusedKey(prevKey);\n }\n break;\n }\n case \"ArrowRight\":\n case \"ArrowLeft\": {\n // Horizontal orientation promotes the inline axis to the primary\n // navigation axis. Upstream's ListKeyboardDelegate strips\n // getKeyLeftOf/getKeyRightOf for a vertical stack, so Left/Right stay\n // no-ops there; in a horizontal stack they move prev/next, flipped\n // under RTL (Right=next, Left=prev in LTR).\n if (p.orientation !== \"horizontal\") break;\n e.preventDefault();\n const isRtl = p.direction === \"rtl\";\n const forward = e.key === \"ArrowRight\" ? !isRtl : isRtl;\n const step = forward\n ? (k: Key) => collection.getKeyAfter(k)\n : (k: Key) => collection.getKeyBefore(k);\n const nextKey =\n focusedKey != null\n ? findNextNavigableKey(s, step(focusedKey), step)\n : findNextNavigableKey(s, collection.getFirstKey(), (k) => collection.getKeyAfter(k));\n if (nextKey != null) {\n s.setFocusedKey(nextKey);\n }\n break;\n }\n case \"Home\": {\n e.preventDefault();\n const firstKey = findNextNavigableKey(s, collection.getFirstKey(), (k) =>\n collection.getKeyAfter(k),\n );\n if (firstKey != null) {\n s.setFocusedKey(firstKey);\n }\n break;\n }\n case \"End\": {\n e.preventDefault();\n const lastKey = findNextNavigableKey(s, collection.getLastKey(), (k) =>\n collection.getKeyBefore(k),\n );\n if (lastKey != null) {\n s.setFocusedKey(lastKey);\n }\n break;\n }\n case \"a\":\n case \"A\": {\n if ((e.ctrlKey || e.metaKey) && s.selectionMode === \"multiple\") {\n e.preventDefault();\n s.selectAll();\n }\n break;\n }\n // Space (toggle selection) and Enter (onAction) are intentionally absent\n // here. Upstream's useSelectableCollection has no Space/Enter case — the\n // focused item owns both, via useSelectableItem. We follow browser focus\n // onto the focused row (the effect below), so the row's own handlers in\n // createGridListItem fire. Handling them here too would double-toggle a\n // focused row, because Solid delegates keydown and bubbles the row event\n // up to this grid handler.\n case \"Escape\": {\n if (s.selectionMode !== \"none\") {\n e.preventDefault();\n s.clearSelection();\n }\n break;\n }\n }\n };\n\n const onFocus = () => {\n const s = state();\n s.setFocused(true);\n\n // If nothing is focused, focus the first navigable item\n if (s.focusedKey == null) {\n const firstKey = findNextNavigableKey(s, s.collection.getFirstKey(), (k) =>\n s.collection.getKeyAfter(k),\n );\n if (firstKey != null) {\n s.setFocusedKey(firstKey);\n }\n }\n };\n\n const onBlur = () => {\n const s = state();\n s.setFocused(false);\n };\n\n // Mirror React Aria's useSelectableCollection: once the roving tabindex for the\n // focused key has been committed to the DOM, move browser focus onto that row\n // from a post-commit effect, looking it up by its stable data-key rather than by\n // transient tabindex. Selection and activation live on the row\n // (createGridListItem) to match upstream, so keyboard nav has to carry focus\n // there for the row's Space/Enter handlers to act on.\n createEffect(() => {\n const s = state();\n const key = s.focusedKey;\n const el = ref();\n if (!el || key == null) {\n return;\n }\n\n // Only manage focus while it already lives inside the grid — i.e. the user is\n // navigating with the keyboard. Gate on the physical position of browser focus\n // rather than the grid's logical isFocused signal: focus can land directly on a\n // row (a pointer click) without ever firing the grid's own focus handler, and\n // the contains() check keeps us from yanking focus back from elsewhere on the\n // page when the focused key changes from a background interaction.\n const active = document.activeElement;\n if (!active || (active !== el && !el.contains(active))) {\n return;\n }\n\n const target = el.querySelector<HTMLElement>(`[data-key=\"${key}\"]`);\n if (target && target !== active) {\n target.focus();\n\n // Reveal the newly focused row when navigating with the keyboard, mirroring\n // useSelectableCollection. Pointer-driven focus changes should not shift the\n // scroll position under the user's finger.\n if (getInteractionModality() !== \"pointer\") {\n scrollIntoViewport(target, { containingElement: el });\n }\n }\n });\n\n const gridProps = createMemo(() => {\n const p = props();\n const s = state();\n\n const baseProps: Record<string, unknown> = {\n role: \"grid\",\n id: gridListId,\n \"aria-label\": p[\"aria-label\"],\n \"aria-labelledby\": p[\"aria-labelledby\"],\n \"aria-describedby\": p[\"aria-describedby\"],\n \"aria-multiselectable\": s.selectionMode === \"multiple\" ? true : undefined,\n \"aria-disabled\": p.isDisabled || undefined,\n tabIndex: p.isDisabled ? undefined : 0,\n onKeyDown,\n onFocus,\n onBlur,\n };\n\n // Add row count for virtualized lists\n if (p.isVirtualized) {\n baseProps[\"aria-rowcount\"] = s.collection.rowCount;\n }\n\n return baseProps as JSX.HTMLAttributes<HTMLElement>;\n });\n\n return {\n get gridProps() {\n return gridProps();\n },\n };\n}\n","/**\n * createGridListItem - Provides accessibility for a grid list item.\n * Based on @react-aria/gridlist/useGridListItem.\n */\n\nimport { createMemo, type Accessor } from \"solid-js\";\nimport type { JSX } from \"solid-js\";\nimport type {\n Collection,\n GridState,\n GridCollection,\n Key,\n Selection,\n} from \"@proyecto-viviana/solid-stately\";\nimport type { AriaGridListItemProps, GridListItemAria } from \"./types\";\nimport { getGridListData } from \"./createGridList\";\nimport { createSelectableItem, type SelectableItemState } from \"../selection/createSelectableItem\";\nimport { mergeCollectionRowInteractionProps } from \"../selection/createCollectionRowInteraction\";\nimport { mergeProps } from \"../utils/mergeProps\";\n\n/**\n * Creates accessibility props for a grid list item.\n */\nexport function createGridListItem<\n T extends object,\n C extends GridCollection<T> = GridCollection<T>,\n>(\n props: Accessor<AriaGridListItemProps>,\n state: Accessor<GridState<T, C>>,\n ref: Accessor<HTMLElement | null>,\n): GridListItemAria {\n const isSelected = createMemo(() => {\n const s = state();\n const p = props();\n return s.isSelected(p.node.key);\n });\n\n const selectableState: SelectableItemState<T> = {\n collection: () => state().collection as unknown as Collection<T>,\n isFocused: () => state().isFocused,\n setFocused: (focused: boolean) => state().setFocused(focused),\n focusedKey: () => state().focusedKey,\n childFocusStrategy: () => state().childFocusStrategy,\n setFocusedKey: (key: Key | null, strategy) => state().setFocusedKey(key, strategy),\n selectionMode: () => state().selectionMode,\n selectionBehavior: () => props().selectionBehavior ?? state().selectionBehavior,\n disallowEmptySelection: () => state().disallowEmptySelection,\n selectedKeys: () => state().selectedKeys as Selection,\n disabledKeys: () => state().disabledKeys,\n disabledBehavior: () => state().disabledBehavior,\n isEmpty: () => {\n const keys = state().selectedKeys;\n return keys !== \"all\" && keys.size === 0;\n },\n isSelectAll: () => state().selectedKeys === \"all\",\n isSelected: (key: Key) => state().isSelected(key),\n isDisabled: (key: Key) => {\n const s = state();\n const item = s.collection.getItem(key);\n return (\n s.disabledBehavior === \"all\" &&\n s.isDisabled(key) &&\n item?.props?.disabledBehavior !== \"selection\"\n );\n },\n canSelectItem: (key: Key) => {\n const s = state();\n return s.selectionMode !== \"none\" && !s.isDisabled(key);\n },\n setSelectionBehavior: (behavior) => state().setSelectionBehavior(behavior),\n toggleSelection: (key: Key) => state().toggleSelection(key),\n replaceSelection: (key: Key) => state().replaceSelection(key),\n setSelectedKeys: (keys: Iterable<Key>) => state().setSelectedKeys(keys),\n selectAll: () => state().selectAll(),\n clearSelection: () => state().clearSelection(),\n toggleSelectAll: () => state().toggleSelectAll(),\n extendSelection: (toKey: Key, _collection: Collection<T>) => state().extendSelection(toKey),\n };\n\n const selectableItem = createSelectableItem<T>(\n () => {\n const s = state();\n const p = props();\n const gridListData = getGridListData(s);\n const onAction = gridListData?.actions.onAction;\n\n return {\n key: p.node.key,\n id: `${gridListData?.gridListId ?? \"gridlist\"}-row-${String(p.node.key)}`,\n isVirtualized: p.isVirtualized,\n shouldSelectOnPressUp: gridListData?.shouldSelectOnPressUp ?? false,\n onAction:\n onAction || p.onAction\n ? () => {\n p.onAction?.();\n onAction?.(p.node.key);\n }\n : undefined,\n };\n },\n selectableState,\n ref,\n );\n\n const rowProps = createMemo(() => {\n const s = state();\n const p = props();\n const node = p.node;\n\n const baseProps: Record<string, unknown> = {\n role: \"row\",\n \"aria-selected\": s.selectionMode !== \"none\" ? isSelected() : undefined,\n \"aria-disabled\": selectableItem.isDisabled() || undefined,\n };\n\n // Add aria-rowindex for virtualized lists\n if (p.isVirtualized && node.rowIndex != null) {\n baseProps[\"aria-rowindex\"] = node.rowIndex + 1; // 1-based\n }\n\n const gridListData = getGridListData(s);\n const mergedProps = mergeProps<JSX.HTMLAttributes<HTMLElement>>(\n selectableItem.itemProps,\n baseProps,\n );\n\n return mergeCollectionRowInteractionProps(mergedProps, {\n ref,\n keyboardNavigationBehavior: () => gridListData?.keyboardNavigationBehavior ?? \"arrow\",\n direction: () => gridListData?.direction ?? \"ltr\",\n });\n });\n\n const gridCellProps = createMemo(() => {\n return {\n role: \"gridcell\",\n } as JSX.HTMLAttributes<HTMLDivElement>;\n });\n\n return {\n get rowProps() {\n return rowProps();\n },\n get gridCellProps() {\n return gridCellProps();\n },\n get isSelected() {\n return isSelected();\n },\n get isDisabled() {\n return selectableItem.isDisabled();\n },\n get isPressed() {\n return selectableItem.isPressed();\n },\n };\n}\n","/**\n * createGridListSelectionCheckbox - Provides accessibility for a grid list item selection checkbox.\n * Based on @react-aria/gridlist.\n */\n\nimport { createMemo, type Accessor } from \"solid-js\";\nimport type { JSX } from \"solid-js\";\nimport { createId } from \"@proyecto-viviana/solid-stately\";\nimport type { GridState, GridCollection } from \"@proyecto-viviana/solid-stately\";\nimport type { AriaGridListSelectionCheckboxProps, GridListSelectionCheckboxAria } from \"./types\";\n\n/**\n * Creates accessibility props for a grid list item selection checkbox.\n */\nexport function createGridListSelectionCheckbox<\n T extends object,\n C extends GridCollection<T> = GridCollection<T>,\n>(\n props: Accessor<AriaGridListSelectionCheckboxProps>,\n state: Accessor<GridState<T, C>>,\n): GridListSelectionCheckboxAria {\n const checkboxId = createId();\n\n const isSelected = createMemo(() => {\n const s = state();\n const p = props();\n return s.isSelected(p.key);\n });\n\n const isDisabled = createMemo(() => {\n const s = state();\n const p = props();\n return s.isDisabled(p.key);\n });\n\n const onChange = () => {\n const s = state();\n const p = props();\n if (!isDisabled()) {\n s.toggleSelection(p.key);\n }\n };\n\n const checkboxProps = createMemo(() => {\n const baseProps: Record<string, unknown> = {\n id: checkboxId,\n type: \"checkbox\",\n checked: isSelected(),\n disabled: isDisabled(),\n onChange,\n \"aria-label\": \"Select\",\n };\n\n return baseProps as JSX.InputHTMLAttributes<HTMLInputElement>;\n });\n\n return {\n get checkboxProps() {\n return checkboxProps();\n },\n };\n}\n","/**\n * createGridListSection - Provides accessibility for a grid list section.\n * Based on @react-aria/gridlist/useGridListSection.\n */\n\nimport { createMemo } from \"solid-js\";\nimport { createId, createSlotId } from \"../ssr\";\nimport { createLabels } from \"../label/createLabels\";\nimport type { AriaGridListSectionProps, GridListSectionAria } from \"./types\";\n\n/**\n * Creates accessibility props for a grid list section.\n *\n * Mirrors upstream `useGridListSection`: a section is a `role=\"rowgroup\"`\n * wrapper whose optional header renders as `role=\"row\"` › `role=\"rowheader\"`.\n * The `aria-labelledby` of the wrapper points at the header's id via a slot id\n * that resolves to `undefined` when no header is rendered.\n */\nexport function createGridListSection(props: AriaGridListSectionProps): GridListSectionAria {\n const headingId = createSlotId();\n // Stable id for the rowgroup so `createLabels` does not regenerate one each\n // time the slot id resolves (it short-circuits on a provided id).\n const rowGroupId = createId();\n\n const labelProps = createMemo(() =>\n createLabels({\n id: rowGroupId,\n \"aria-label\": props[\"aria-label\"],\n \"aria-labelledby\": headingId(),\n }),\n );\n\n return {\n rowProps: { role: \"row\" },\n rowHeaderProps: {\n get id() {\n return headingId();\n },\n role: \"rowheader\",\n },\n rowGroupProps: {\n role: \"rowgroup\",\n get id() {\n return labelProps().id;\n },\n get \"aria-label\"() {\n return labelProps()[\"aria-label\"];\n },\n get \"aria-labelledby\"() {\n return labelProps()[\"aria-labelledby\"];\n },\n },\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAoCA,MAAM,kCAAkB,IAAI,QAA8B;;;;AAK1D,SAAgB,gBACd,OAC0B;CAC1B,OAAO,gBAAgB,IAAI,KAAK;AAClC;;;;;;;AAQA,SAAS,qBACP,OACA,KACS;CACT,OAAO,MAAM,WAAW,GAAG,KAAK,MAAM,qBAAqB;AAC7D;;;;;;;;AASA,SAAS,qBACP,OACA,UACA,MACY;CACZ,IAAI,MAAM;CACV,OAAO,OAAO,QAAQ,qBAAqB,OAAO,GAAG,GACnD,MAAM,KAAK,GAAG;CAEhB,OAAO;AACT;;;;AAKA,SAAgB,eACd,OACA,OACA,KACc;CAEd,MAAM,aAAa,MAAM,CAAC,CAAC,MAAM,SAAS;CAG1C,MAAM,eAA6B;EACjC;EACA,IAAI,oBAAoB;GACtB,OAAO,MAAM,CAAC,CAAC,qBAAqB;EACtC;EACA,IAAI,wBAAwB;GAC1B,OAAO,MAAM,CAAC,CAAC,yBAAyB;EAC1C;EACA,IAAI,6BAA6B;GAC/B,OAAO,MAAM,CAAC,CAAC,8BAA8B;EAC/C;EACA,IAAI,YAAY;GACd,OAAO,MAAM,CAAC,CAAC,aAAa;EAC9B;EACA,SAAS,EACP,IAAI,WAAW;GACb,OAAO,MAAM,CAAC,CAAC;EACjB,EACF;CACF;CAGA,gBAAgB,IAAI,MAAM,GAAG,YAAY;CAGzC,MAAM,aAAa,MAAqB;EACtC,MAAM,IAAI,MAAM;EAChB,MAAM,IAAI,MAAM;EAChB,MAAM,aAAa,EAAE;EACrB,MAAM,aAAa,EAAE;EAErB,IAAI,EAAE,YAAY;EAElB,QAAQ,EAAE,KAAV;GACE,KAAK,aAAa;IAChB,EAAE,eAAe;IACjB,MAAM,UACJ,cAAc,OACV,qBAAqB,GAAG,WAAW,YAAY,UAAU,IAAI,MAC3D,WAAW,YAAY,CAAC,CAC1B,IACA,qBAAqB,GAAG,WAAW,YAAY,IAAI,MAAM,WAAW,YAAY,CAAC,CAAC;IACxF,IAAI,WAAW,MACb,EAAE,cAAc,OAAO;IAEzB;GACF;GACA,KAAK,WAAW;IACd,EAAE,eAAe;IACjB,MAAM,UACJ,cAAc,OACV,qBAAqB,GAAG,WAAW,aAAa,UAAU,IAAI,MAC5D,WAAW,aAAa,CAAC,CAC3B,IACA,qBAAqB,GAAG,WAAW,WAAW,IAAI,MAAM,WAAW,aAAa,CAAC,CAAC;IACxF,IAAI,WAAW,MACb,EAAE,cAAc,OAAO;IAEzB;GACF;GACA,KAAK;GACL,KAAK,aAAa;IAMhB,IAAI,EAAE,gBAAgB,cAAc;IACpC,EAAE,eAAe;IACjB,MAAM,QAAQ,EAAE,cAAc;IAE9B,MAAM,QADU,EAAE,QAAQ,eAAe,CAAC,QAAQ,UAE7C,MAAW,WAAW,YAAY,CAAC,KACnC,MAAW,WAAW,aAAa,CAAC;IACzC,MAAM,UACJ,cAAc,OACV,qBAAqB,GAAG,KAAK,UAAU,GAAG,IAAI,IAC9C,qBAAqB,GAAG,WAAW,YAAY,IAAI,MAAM,WAAW,YAAY,CAAC,CAAC;IACxF,IAAI,WAAW,MACb,EAAE,cAAc,OAAO;IAEzB;GACF;GACA,KAAK,QAAQ;IACX,EAAE,eAAe;IACjB,MAAM,WAAW,qBAAqB,GAAG,WAAW,YAAY,IAAI,MAClE,WAAW,YAAY,CAAC,CAC1B;IACA,IAAI,YAAY,MACd,EAAE,cAAc,QAAQ;IAE1B;GACF;GACA,KAAK,OAAO;IACV,EAAE,eAAe;IACjB,MAAM,UAAU,qBAAqB,GAAG,WAAW,WAAW,IAAI,MAChE,WAAW,aAAa,CAAC,CAC3B;IACA,IAAI,WAAW,MACb,EAAE,cAAc,OAAO;IAEzB;GACF;GACA,KAAK;GACL,KAAK;IACH,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,kBAAkB,YAAY;KAC9D,EAAE,eAAe;KACjB,EAAE,UAAU;IACd;IACA;GASF,KAAK;IACH,IAAI,EAAE,kBAAkB,QAAQ;KAC9B,EAAE,eAAe;KACjB,EAAE,eAAe;IACnB;IACA;EAEJ;CACF;CAEA,MAAM,gBAAgB;EACpB,MAAM,IAAI,MAAM;EAChB,EAAE,WAAW,IAAI;EAGjB,IAAI,EAAE,cAAc,MAAM;GACxB,MAAM,WAAW,qBAAqB,GAAG,EAAE,WAAW,YAAY,IAAI,MACpE,EAAE,WAAW,YAAY,CAAC,CAC5B;GACA,IAAI,YAAY,MACd,EAAE,cAAc,QAAQ;EAE5B;CACF;CAEA,MAAM,eAAe;EAEnB,MAAA,CAAC,CAAC,WAAW,KAAK;CACpB;CAQA,mBAAmB;EAEjB,MAAM,MADI,MACE,CAAC,CAAC;EACd,MAAM,KAAK,IAAI;EACf,IAAI,CAAC,MAAM,OAAO,MAChB;EASF,MAAM,SAAS,SAAS;EACxB,IAAI,CAAC,UAAW,WAAW,MAAM,CAAC,GAAG,SAAS,MAAM,GAClD;EAGF,MAAM,SAAS,GAAG,cAA2B,cAAc,IAAI,GAAG;EAClE,IAAI,UAAU,WAAW,QAAQ;GAC/B,OAAO,MAAM;GAKb,IAAI,uBAAuB,MAAM,WAC/B,mBAAmB,QAAQ,EAAE,mBAAmB,GAAG,CAAC;EAExD;CACF,CAAC;CAED,MAAM,YAAY,iBAAiB;EACjC,MAAM,IAAI,MAAM;EAChB,MAAM,IAAI,MAAM;EAEhB,MAAM,YAAqC;GACzC,MAAM;GACN,IAAI;GACJ,cAAc,EAAE;GAChB,mBAAmB,EAAE;GACrB,oBAAoB,EAAE;GACtB,wBAAwB,EAAE,kBAAkB,aAAa,OAAO,KAAA;GAChE,iBAAiB,EAAE,cAAc,KAAA;GACjC,UAAU,EAAE,aAAa,KAAA,IAAY;GACrC;GACA;GACA;EACF;EAGA,IAAI,EAAE,eACJ,UAAU,mBAAmB,EAAE,WAAW;EAG5C,OAAO;CACT,CAAC;CAED,OAAO,EACL,IAAI,YAAY;EACd,OAAO,UAAU;CACnB,EACF;AACF;;;;;;;;;;AC7RA,SAAgB,mBAId,OACA,OACA,KACkB;CAClB,MAAM,aAAa,iBAAiB;EAClC,MAAM,IAAI,MAAM;EAChB,MAAM,IAAI,MAAM;EAChB,OAAO,EAAE,WAAW,EAAE,KAAK,GAAG;CAChC,CAAC;CA4CD,MAAM,iBAAiB,2BACf;EACJ,MAAM,IAAI,MAAM;EAChB,MAAM,IAAI,MAAM;EAChB,MAAM,eAAe,gBAAgB,CAAC;EACtC,MAAM,WAAW,cAAc,QAAQ;EAEvC,OAAO;GACL,KAAK,EAAE,KAAK;GACZ,IAAI,GAAG,cAAc,cAAc,WAAW,OAAO,OAAO,EAAE,KAAK,GAAG;GACtE,eAAe,EAAE;GACjB,uBAAuB,cAAc,yBAAyB;GAC9D,UACE,YAAY,EAAE,iBACJ;IACJ,EAAE,WAAW;IACb,WAAW,EAAE,KAAK,GAAG;GACvB,IACA,KAAA;EACR;CACF,GACA;EA9DA,kBAAkB,MAAM,CAAC,CAAC;EAC1B,iBAAiB,MAAM,CAAC,CAAC;EACzB,aAAa,YAAqB,MAAM,CAAC,CAAC,WAAW,OAAO;EAC5D,kBAAkB,MAAM,CAAC,CAAC;EAC1B,0BAA0B,MAAM,CAAC,CAAC;EAClC,gBAAgB,KAAiB,aAAa,MAAM,CAAC,CAAC,cAAc,KAAK,QAAQ;EACjF,qBAAqB,MAAM,CAAC,CAAC;EAC7B,yBAAyB,MAAM,CAAC,CAAC,qBAAqB,MAAM,CAAC,CAAC;EAC9D,8BAA8B,MAAM,CAAC,CAAC;EACtC,oBAAoB,MAAM,CAAC,CAAC;EAC5B,oBAAoB,MAAM,CAAC,CAAC;EAC5B,wBAAwB,MAAM,CAAC,CAAC;EAChC,eAAe;GACb,MAAM,OAAO,MAAM,CAAC,CAAC;GACrB,OAAO,SAAS,SAAS,KAAK,SAAS;EACzC;EACA,mBAAmB,MAAM,CAAC,CAAC,iBAAiB;EAC5C,aAAa,QAAa,MAAM,CAAC,CAAC,WAAW,GAAG;EAChD,aAAa,QAAa;GACxB,MAAM,IAAI,MAAM;GAChB,MAAM,OAAO,EAAE,WAAW,QAAQ,GAAG;GACrC,OACE,EAAE,qBAAqB,SACvB,EAAE,WAAW,GAAG,KAChB,MAAM,OAAO,qBAAqB;EAEtC;EACA,gBAAgB,QAAa;GAC3B,MAAM,IAAI,MAAM;GAChB,OAAO,EAAE,kBAAkB,UAAU,CAAC,EAAE,WAAW,GAAG;EACxD;EACA,uBAAuB,aAAa,MAAM,CAAC,CAAC,qBAAqB,QAAQ;EACzE,kBAAkB,QAAa,MAAM,CAAC,CAAC,gBAAgB,GAAG;EAC1D,mBAAmB,QAAa,MAAM,CAAC,CAAC,iBAAiB,GAAG;EAC5D,kBAAkB,SAAwB,MAAM,CAAC,CAAC,gBAAgB,IAAI;EACtE,iBAAiB,MAAM,CAAC,CAAC,UAAU;EACnC,sBAAsB,MAAM,CAAC,CAAC,eAAe;EAC7C,uBAAuB,MAAM,CAAC,CAAC,gBAAgB;EAC/C,kBAAkB,OAAY,gBAA+B,MAAM,CAAC,CAAC,gBAAgB,KAAK;CAwB5E,GACd,GACF;CAEA,MAAM,WAAW,iBAAiB;EAChC,MAAM,IAAI,MAAM;EAChB,MAAM,IAAI,MAAM;EAChB,MAAM,OAAO,EAAE;EAEf,MAAM,YAAqC;GACzC,MAAM;GACN,iBAAiB,EAAE,kBAAkB,SAAS,WAAW,IAAI,KAAA;GAC7D,iBAAiB,eAAe,WAAW,KAAK,KAAA;EAClD;EAGA,IAAI,EAAE,iBAAiB,KAAK,YAAY,MACtC,UAAU,mBAAmB,KAAK,WAAW;EAG/C,MAAM,eAAe,gBAAgB,CAAC;EAMtC,OAAO,mCALa,WAClB,eAAe,WACf,SAGkD,GAAG;GACrD;GACA,kCAAkC,cAAc,8BAA8B;GAC9E,iBAAiB,cAAc,aAAa;EAC9C,CAAC;CACH,CAAC;CAED,MAAM,gBAAgB,iBAAiB;EACrC,OAAO,EACL,MAAM,WACR;CACF,CAAC;CAED,OAAO;EACL,IAAI,WAAW;GACb,OAAO,SAAS;EAClB;EACA,IAAI,gBAAgB;GAClB,OAAO,cAAc;EACvB;EACA,IAAI,aAAa;GACf,OAAO,WAAW;EACpB;EACA,IAAI,aAAa;GACf,OAAO,eAAe,WAAW;EACnC;EACA,IAAI,YAAY;GACd,OAAO,eAAe,UAAU;EAClC;CACF;AACF;;;;;;;;;;AC9IA,SAAgB,gCAId,OACA,OAC+B;CAC/B,MAAM,aAAa,SAAS;CAE5B,MAAM,aAAa,iBAAiB;EAClC,MAAM,IAAI,MAAM;EAChB,MAAM,IAAI,MAAM;EAChB,OAAO,EAAE,WAAW,EAAE,GAAG;CAC3B,CAAC;CAED,MAAM,aAAa,iBAAiB;EAClC,MAAM,IAAI,MAAM;EAChB,MAAM,IAAI,MAAM;EAChB,OAAO,EAAE,WAAW,EAAE,GAAG;CAC3B,CAAC;CAED,MAAM,iBAAiB;EACrB,MAAM,IAAI,MAAM;EAChB,MAAM,IAAI,MAAM;EAChB,IAAI,CAAC,WAAW,GACd,EAAE,gBAAgB,EAAE,GAAG;CAE3B;CAEA,MAAM,gBAAgB,iBAAiB;EAUrC,OAAO;GARL,IAAI;GACJ,MAAM;GACN,SAAS,WAAW;GACpB,UAAU,WAAW;GACrB;GACA,cAAc;EAGD;CACjB,CAAC;CAED,OAAO,EACL,IAAI,gBAAgB;EAClB,OAAO,cAAc;CACvB,EACF;AACF;;;;;;;;;;;;;;;AC3CA,SAAgB,sBAAsB,OAAsD;CAC1F,MAAM,YAAY,aAAa;CAG/B,MAAM,aAAaA,WAAS;CAE5B,MAAM,aAAa,iBACjB,aAAa;EACX,IAAI;EACJ,cAAc,MAAM;EACpB,mBAAmB,UAAU;CAC/B,CAAC,CACH;CAEA,OAAO;EACL,UAAU,EAAE,MAAM,MAAM;EACxB,gBAAgB;GACd,IAAI,KAAK;IACP,OAAO,UAAU;GACnB;GACA,MAAM;EACR;EACA,eAAe;GACb,MAAM;GACN,IAAI,KAAK;IACP,OAAO,WAAW,CAAC,CAAC;GACtB;GACA,IAAI,eAAe;IACjB,OAAO,WAAW,CAAC,CAAC;GACtB;GACA,IAAI,oBAAoB;IACtB,OAAO,WAAW,CAAC,CAAC;GACtB;EACF;CACF;AACF"}