@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":"selection.js","names":[],"sources":["../../src/selection/createScrollIntoViewOnFocus.ts","../../src/selection/constants.ts","../../src/selection/DOMLayoutDelegate.ts","../../src/selection/ListKeyboardDelegate.ts","../../src/selection/createSelectableCollection.ts","../../src/selection/createSelectableList.ts"],"sourcesContent":["/**\n * Reveals the virtually-focused collection item when the focused key changes via\n * keyboard navigation.\n *\n * Mirrors the focused-key scroll effect in @react-aria/selection's\n * `useSelectableCollection`. Activedescendant collections (ListBox / Menu /\n * ComboBox) keep real DOM focus on the container and point at the active item\n * with `aria-activedescendant`, so the browser never natively scrolls the\n * focused option into view the way a roving-tabindex collection would. This\n * effect restores that behavior through our `scrollIntoViewport` util.\n */\n\nimport { createEffect } from \"solid-js\";\nimport { isServer } from \"solid-js/web\";\nimport type { Key } from \"@proyecto-viviana/solid-stately\";\nimport { getInteractionModality } from \"../interactions/createInteractionModality\";\nimport { scrollIntoViewport } from \"../utils\";\n\nexport interface ScrollIntoViewOnFocusOptions {\n /** The currently focused collection key. */\n focusedKey: () => Key | null;\n /** The collection element, which is also the scroll container. */\n ref: () => HTMLElement | null | undefined;\n /**\n * Whether the collection is the active focus target. When this returns false\n * the scroll is suppressed so a background focused-key change can't move the\n * page. Mirrors upstream's `manager.isFocused` gate. Defaults to always active.\n */\n isActive?: () => boolean;\n /**\n * Resolves the DOM element for a focused key within `root`. Defaults to a\n * `[data-key]` lookup, which every collection item carries.\n */\n getItemElement?: (root: HTMLElement, key: Key) => HTMLElement | null;\n}\n\nexport function createScrollIntoViewOnFocus(options: ScrollIntoViewOnFocusOptions): void {\n if (isServer) return;\n\n const getItemElement =\n options.getItemElement ??\n ((root, key) => root.querySelector<HTMLElement>(`[data-key=\"${key}\"]`));\n\n createEffect(() => {\n const key = options.focusedKey();\n if (key == null) return;\n if (options.isActive && !options.isActive()) return;\n // Pointer-driven focus changes (e.g. hovering an option) shouldn't yank the\n // scroll position under the user's cursor — only reveal on keyboard nav.\n // Matches the modality gate `createTable` uses for its real-focus rows.\n if (getInteractionModality() === \"pointer\") return;\n\n const root = options.ref();\n if (!root) return;\n\n // Defer a microtask so a virtualizer that force-renders the focused item has\n // committed it to the DOM before we measure and scroll it into view.\n queueMicrotask(() => {\n const element = getItemElement(root, key);\n if (element) {\n scrollIntoViewport(element, { containingElement: root });\n }\n });\n });\n}\n","/**\n * Custom DOM event names used to drive virtual focus into a selectable\n * collection from an outside controller (e.g. an Autocomplete input). Mirrors\n * @react-aria/selection's `utils/constants` (`FOCUS_EVENT` / `CLEAR_FOCUS_EVENT`).\n *\n * Canonical home is here, in the selection layer, because the collection is the\n * consumer that listens for them. A controller that wants to move virtual focus\n * (the deferred autocomplete-collection bridge) dispatches these onto the\n * collection ref.\n */\n\n/** Dispatched onto a collection to focus it (optionally its first item). */\nexport const FOCUS_EVENT = \"react-aria-focus\";\n\n/** Dispatched onto a collection to blur it (optionally clearing the focused key). */\nexport const CLEAR_FOCUS_EVENT = \"react-aria-clear-focus\";\n","/**\n * DOMLayoutDelegate - reads layout information for collection items directly\n * from the DOM, used by {@link ListKeyboardDelegate} for page up/down\n * navigation. Based on @react-aria/selection's `DOMLayoutDelegate`.\n *\n * React → Solid adaptation: the layout delegate captures a Solid ref accessor\n * (`() => HTMLElement | null`) instead of a React `RefObject`; everything else\n * is a faithful port.\n */\n\nimport type { Accessor } from \"solid-js\";\nimport type { Key } from \"@proyecto-viviana/solid-stately\";\nimport { getItemElement } from \"./utils\";\n\n/** A rectangle in the collection's scroll coordinate space. */\nexport interface Rect {\n x: number;\n y: number;\n width: number;\n height: number;\n}\n\n/** The size of the collection's scrollable content. */\nexport interface Size {\n width: number;\n height: number;\n}\n\n/**\n * Provides layout information about the items in a collection. By default this\n * is read from the DOM (see {@link DOMLayoutDelegate}), but a virtualized\n * collection can supply its own implementation. Mirrors @react-types/shared's\n * `LayoutDelegate`, scoped to the members that selection navigation consumes.\n */\nexport interface LayoutDelegate {\n /** Returns the rectangle for the item with the given key, in scroll coordinates. */\n getItemRect(key: Key): Rect | null;\n /** Returns the total size of the scrollable content. */\n getContentSize(): Size;\n /** Returns the currently visible rectangle (the scroll viewport). */\n getVisibleRect(): Rect;\n /** Returns the keys between two keys (inclusive), if known without walking the collection. */\n getKeyRange?(from: Key, to: Key): Key[];\n /** Returns the key spatially to the left of the given key, if known. */\n getKeyLeftOf?(key: Key): Key | null;\n /** Returns the key spatially to the right of the given key, if known. */\n getKeyRightOf?(key: Key): Key | null;\n /** Returns the key spatially above the given key, if known. */\n getKeyAbove?(key: Key): Key | null;\n /** Returns the key spatially below the given key, if known. */\n getKeyBelow?(key: Key): Key | null;\n}\n\n/**\n * A {@link LayoutDelegate} that measures items via the DOM.\n */\nexport class DOMLayoutDelegate implements LayoutDelegate {\n private ref: Accessor<HTMLElement | null>;\n\n constructor(ref: Accessor<HTMLElement | null>) {\n this.ref = ref;\n }\n\n getItemRect(key: Key): Rect | null {\n const container = this.ref();\n if (!container) {\n return null;\n }\n const item = key != null ? getItemElement(this.ref, key) : null;\n if (!item) {\n return null;\n }\n\n const containerRect = container.getBoundingClientRect();\n const itemRect = item.getBoundingClientRect();\n\n return {\n x: itemRect.left - containerRect.left - container.clientLeft + container.scrollLeft,\n y: itemRect.top - containerRect.top - container.clientTop + container.scrollTop,\n width: itemRect.width,\n height: itemRect.height,\n };\n }\n\n getContentSize(): Size {\n const container = this.ref();\n return {\n width: container?.scrollWidth ?? 0,\n height: container?.scrollHeight ?? 0,\n };\n }\n\n getVisibleRect(): Rect {\n const container = this.ref();\n return {\n x: container?.scrollLeft ?? 0,\n y: container?.scrollTop ?? 0,\n width: container?.clientWidth ?? 0,\n height: container?.clientHeight ?? 0,\n };\n }\n}\n","/**\n * ListKeyboardDelegate - keyboard navigation for a list/stack collection.\n * Based on @react-aria/selection's `ListKeyboardDelegate`.\n *\n * React → Solid adaptations (faithful to upstream behavior):\n * - The ref is a Solid accessor (`() => HTMLElement | null`) rather than a\n * React `RefObject`; `this.ref()` replaces `this.ref.current`.\n * - Only the options-object constructor is kept. Upstream also retains a legacy\n * positional overload for old `useSelectableCollection` callers; we have none.\n * - `getKeyLeftOf` / `getKeyRightOf` are still removed for a vertical stack\n * (so `delegate.getKeyLeftOf` is `undefined`, exactly as upstream), which the\n * selectable-collection handler relies on to no-op Left/Right.\n * - Disabled resolution reads our node shape: per-item disabled lives on the\n * top-level `node.isDisabled` (and is also funneled into `disabledKeys`),\n * while upstream reads `node.props.isDisabled`. We check both so the delegate\n * is correct whether constructed from a manager or directly in a test.\n */\n\nimport type { Accessor } from \"solid-js\";\nimport type {\n Collection,\n CollectionNode,\n DisabledBehavior,\n Key,\n} from \"@proyecto-viviana/solid-stately\";\nimport type { KeyboardDelegate } from \"../grid/types\";\nimport { isScrollable } from \"../utils/dom\";\nimport { getItemElement } from \"./utils\";\nimport { DOMLayoutDelegate, type LayoutDelegate, type Rect } from \"./DOMLayoutDelegate\";\n\n/** The primary orientation of a list's items. */\nexport type Orientation = \"horizontal\" | \"vertical\";\n/** Text direction. */\nexport type Direction = \"ltr\" | \"rtl\";\n\nexport interface ListKeyboardDelegateOptions<T> {\n /** The collection to navigate. */\n collection: Collection<T>;\n /** A Solid ref accessor to the collection element. */\n ref: Accessor<HTMLElement | null>;\n /** A locale-aware collator used for typeahead search. */\n collator?: Intl.Collator;\n /** The layout of the items: a 1D `stack` (default) or a 2D `grid`. */\n layout?: \"stack\" | \"grid\";\n /** The primary orientation of the items. @default 'vertical' */\n orientation?: Orientation;\n /** The text direction. */\n direction?: Direction;\n /** The item keys that are disabled. */\n disabledKeys?: Set<Key>;\n /** Whether disabled items are skipped by navigation. @default 'all' */\n disabledBehavior?: DisabledBehavior;\n /** A delegate providing layout information (defaults to a DOM-backed one). */\n layoutDelegate?: LayoutDelegate;\n}\n\n/**\n * A keyboard delegate that handles navigation within a list/stack collection.\n */\nexport class ListKeyboardDelegate<T> implements KeyboardDelegate {\n private collection: Collection<T>;\n private disabledKeys: Set<Key>;\n private disabledBehavior: DisabledBehavior;\n private ref: Accessor<HTMLElement | null>;\n private collator: Intl.Collator | undefined;\n private layout: \"stack\" | \"grid\";\n private orientation: Orientation;\n private direction: Direction | undefined;\n private layoutDelegate: LayoutDelegate;\n\n /** Present unless this is a vertical stack (mirrors upstream's method deletion). */\n getKeyLeftOf?: (key: Key, options?: { includeDisabled?: boolean }) => Key | null;\n /** Present unless this is a vertical stack (mirrors upstream's method deletion). */\n getKeyRightOf?: (key: Key, options?: { includeDisabled?: boolean }) => Key | null;\n\n constructor(options: ListKeyboardDelegateOptions<T>) {\n this.collection = options.collection;\n this.ref = options.ref;\n this.collator = options.collator;\n this.disabledKeys = options.disabledKeys ?? new Set();\n this.disabledBehavior = options.disabledBehavior ?? \"all\";\n this.orientation = options.orientation ?? \"vertical\";\n this.direction = options.direction;\n this.layout = options.layout ?? \"stack\";\n this.layoutDelegate = options.layoutDelegate ?? new DOMLayoutDelegate(options.ref);\n\n // For anything but a vertical stack, expose the left/right methods. Leaving\n // them undefined for a vertical stack matches upstream, which deletes them so\n // the selectable-collection handler treats Left/Right as no-ops.\n if (!(this.layout === \"stack\" && this.orientation === \"vertical\")) {\n this.getKeyLeftOf = (key, opts) => this.computeKeyLeftOf(key, opts);\n this.getKeyRightOf = (key, opts) => this.computeKeyRightOf(key, opts);\n }\n }\n\n private isDisabled(item: CollectionNode<T>): boolean {\n return (\n this.disabledBehavior === \"all\" &&\n (item.props?.isDisabled === true ||\n item.isDisabled === true ||\n this.disabledKeys.has(item.key)) &&\n item.props?.disabledBehavior !== \"selection\"\n );\n }\n\n private findNextNonDisabled(\n key: Key | null,\n getNext: (key: Key) => Key | null,\n includeDisabled = false,\n ): Key | null {\n let nextKey = key;\n while (nextKey != null) {\n const item = this.collection.getItem(nextKey);\n if (item?.type === \"item\" && (includeDisabled || !this.isDisabled(item))) {\n return nextKey;\n }\n\n nextKey = getNext(nextKey);\n }\n\n return null;\n }\n\n getNextKey(key: Key, options?: { includeDisabled?: boolean }): Key | null {\n let nextKey: Key | null = key;\n nextKey = this.collection.getKeyAfter(nextKey);\n return this.findNextNonDisabled(\n nextKey,\n (k) => this.collection.getKeyAfter(k),\n options?.includeDisabled,\n );\n }\n\n getPreviousKey(key: Key, options?: { includeDisabled?: boolean }): Key | null {\n let nextKey: Key | null = key;\n nextKey = this.collection.getKeyBefore(nextKey);\n return this.findNextNonDisabled(\n nextKey,\n (k) => this.collection.getKeyBefore(k),\n options?.includeDisabled,\n );\n }\n\n private findKey(\n key: Key,\n nextKey: (key: Key) => Key | null,\n shouldSkip: (prevRect: Rect, itemRect: Rect) => boolean,\n ): Key | null {\n let tempKey: Key | null = key;\n let itemRect = this.layoutDelegate.getItemRect(tempKey);\n if (!itemRect || tempKey == null) {\n return null;\n }\n\n // Find the item above or below in the same column.\n const prevRect = itemRect;\n do {\n tempKey = nextKey(tempKey);\n if (tempKey == null) {\n break;\n }\n itemRect = this.layoutDelegate.getItemRect(tempKey);\n } while (itemRect && shouldSkip(prevRect, itemRect) && tempKey != null);\n\n return tempKey;\n }\n\n private isSameRow(prevRect: Rect, itemRect: Rect): boolean {\n return prevRect.y === itemRect.y || prevRect.x !== itemRect.x;\n }\n\n private isSameColumn(prevRect: Rect, itemRect: Rect): boolean {\n return prevRect.x === itemRect.x || prevRect.y !== itemRect.y;\n }\n\n // Checks whether the next/prev key is spatially above/below the current key.\n // If not, we are in a reversed (column-reverse) layout and need to flip.\n private isReversed(key: Key): boolean {\n const nextKey = this.getNextKey(key);\n const currentEl = getItemElement(this.ref, key);\n if (nextKey != null) {\n const nextEl = getItemElement(this.ref, nextKey);\n if (!currentEl || !nextEl) {\n return false;\n }\n return currentEl.getBoundingClientRect().top > nextEl.getBoundingClientRect().top;\n }\n const prevKey = this.getPreviousKey(key);\n if (prevKey != null) {\n const prevEl = getItemElement(this.ref, prevKey);\n if (!currentEl || !prevEl) {\n return false;\n }\n return prevEl.getBoundingClientRect().top > currentEl.getBoundingClientRect().top;\n }\n return false;\n }\n\n getKeyBelow(key: Key, options?: { includeDisabled?: boolean }): Key | null {\n if (this.layout === \"grid\" && this.orientation === \"vertical\") {\n return this.findKey(key, (k) => this.getNextKey(k, options), this.isSameRow);\n } else if (this.orientation === \"vertical\") {\n return this.isReversed(key)\n ? this.getPreviousKey(key, options)\n : this.getNextKey(key, options);\n } else {\n return this.getNextKey(key, options);\n }\n }\n\n getKeyAbove(key: Key, options?: { includeDisabled?: boolean }): Key | null {\n if (this.layout === \"grid\" && this.orientation === \"vertical\") {\n return this.findKey(key, (k) => this.getPreviousKey(k, options), this.isSameRow);\n } else if (this.orientation === \"vertical\") {\n return this.isReversed(key)\n ? this.getNextKey(key, options)\n : this.getPreviousKey(key, options);\n } else {\n return this.getPreviousKey(key, options);\n }\n }\n\n private getNextColumn(\n key: Key,\n right: boolean,\n options?: { includeDisabled?: boolean },\n ): Key | null {\n return right ? this.getPreviousKey(key, options) : this.getNextKey(key, options);\n }\n\n private computeKeyRightOf(key: Key, options?: { includeDisabled?: boolean }): Key | null {\n const method = this.direction === \"ltr\" ? \"getKeyRightOf\" : \"getKeyLeftOf\";\n const layoutMethod = this.layoutDelegate[method];\n if (layoutMethod) {\n const next = layoutMethod.call(this.layoutDelegate, key);\n return this.findNextNonDisabled(\n next,\n (k) => this.layoutDelegate[method]?.call(this.layoutDelegate, k) ?? null,\n options?.includeDisabled,\n );\n }\n\n if (this.layout === \"grid\") {\n if (this.orientation === \"vertical\") {\n return this.getNextColumn(key, this.direction === \"rtl\", options);\n } else {\n return this.findKey(\n key,\n (k) => this.getNextColumn(k, this.direction === \"rtl\", options),\n this.isSameColumn,\n );\n }\n } else if (this.orientation === \"horizontal\") {\n return this.getNextColumn(key, this.direction === \"rtl\", options);\n }\n\n return null;\n }\n\n private computeKeyLeftOf(key: Key, options?: { includeDisabled?: boolean }): Key | null {\n const method = this.direction === \"ltr\" ? \"getKeyLeftOf\" : \"getKeyRightOf\";\n const layoutMethod = this.layoutDelegate[method];\n if (layoutMethod) {\n const next = layoutMethod.call(this.layoutDelegate, key);\n return this.findNextNonDisabled(\n next,\n (k) => this.layoutDelegate[method]?.call(this.layoutDelegate, k) ?? null,\n options?.includeDisabled,\n );\n }\n\n if (this.layout === \"grid\") {\n if (this.orientation === \"vertical\") {\n return this.getNextColumn(key, this.direction === \"ltr\", options);\n } else {\n return this.findKey(\n key,\n (k) => this.getNextColumn(k, this.direction === \"ltr\", options),\n this.isSameColumn,\n );\n }\n } else if (this.orientation === \"horizontal\") {\n return this.getNextColumn(key, this.direction === \"ltr\", options);\n }\n\n return null;\n }\n\n getFirstKey(): Key | null {\n const key = this.collection.getFirstKey();\n return this.findNextNonDisabled(key, (k) => this.collection.getKeyAfter(k));\n }\n\n getLastKey(): Key | null {\n const key = this.collection.getLastKey();\n return this.findNextNonDisabled(key, (k) => this.collection.getKeyBefore(k));\n }\n\n getKeyPageAbove(key: Key): Key | null {\n const menu = this.ref();\n let itemRect = this.layoutDelegate.getItemRect(key);\n if (!itemRect) {\n return null;\n }\n\n const reversed = this.isReversed(key);\n if (menu && !isScrollable(menu)) {\n return this.getFirstKey();\n }\n\n let nextKey: Key | null = key;\n if (this.orientation === \"horizontal\") {\n const pageX = Math.max(\n 0,\n itemRect.x + itemRect.width - this.layoutDelegate.getVisibleRect().width,\n );\n\n while (itemRect && itemRect.x > pageX && nextKey != null) {\n nextKey = this.getKeyAbove(nextKey);\n itemRect = nextKey == null ? null : this.layoutDelegate.getItemRect(nextKey);\n }\n } else {\n const visibleRect = this.layoutDelegate.getVisibleRect();\n // Column-reverse makes y negative for items, so use current pos - height instead.\n const pageY = reversed\n ? itemRect.y - visibleRect.height\n : Math.max(0, itemRect.y + itemRect.height - visibleRect.height);\n\n while (itemRect && itemRect.y > pageY && nextKey != null) {\n nextKey = this.getKeyAbove(nextKey);\n itemRect = nextKey == null ? null : this.layoutDelegate.getItemRect(nextKey);\n }\n }\n\n return nextKey ?? (reversed ? this.getLastKey() : this.getFirstKey());\n }\n\n getKeyPageBelow(key: Key): Key | null {\n const menu = this.ref();\n let itemRect = this.layoutDelegate.getItemRect(key);\n if (!itemRect) {\n return null;\n }\n\n const reversed = this.isReversed(key);\n if (menu && !isScrollable(menu)) {\n return this.getLastKey();\n }\n\n let nextKey: Key | null = key;\n if (this.orientation === \"horizontal\") {\n const pageX = Math.min(\n this.layoutDelegate.getContentSize().width,\n itemRect.x - itemRect.width + this.layoutDelegate.getVisibleRect().width,\n );\n\n while (itemRect && itemRect.x < pageX && nextKey != null) {\n nextKey = this.getKeyBelow(nextKey);\n itemRect = nextKey == null ? null : this.layoutDelegate.getItemRect(nextKey);\n }\n } else {\n const pageY = Math.min(\n this.layoutDelegate.getContentSize().height,\n itemRect.y - itemRect.height + this.layoutDelegate.getVisibleRect().height,\n );\n\n while (itemRect && itemRect.y < pageY && nextKey != null) {\n nextKey = this.getKeyBelow(nextKey);\n itemRect = nextKey == null ? null : this.layoutDelegate.getItemRect(nextKey);\n }\n }\n\n return nextKey ?? (reversed ? this.getFirstKey() : this.getLastKey());\n }\n\n getKeyForSearch(search: string, fromKey?: Key): Key | null {\n if (!this.collator) {\n return null;\n }\n\n const collection = this.collection;\n let key = fromKey ?? this.getFirstKey();\n while (key != null) {\n const item = collection.getItem(key);\n if (!item) {\n return null;\n }\n const substring = item.textValue.slice(0, search.length);\n if (item.textValue && this.collator.compare(substring, search) === 0) {\n return key;\n }\n\n key = this.getNextKey(key);\n }\n\n return null;\n }\n}\n","/**\n * createSelectableCollection - keyboard, focus, and selection interactions for a\n * selectable collection. Based on @react-aria/selection's\n * `useSelectableCollection`.\n *\n * React → Solid adaptations (faithful to upstream behavior):\n * - `ref` / `scrollRef` are Solid accessors; `keyboardDelegate` may be an\n * accessor so a recreated delegate stays current.\n * - Per-render React effects become `createEffect`s that read the manager's\n * reactive getters: the autofocus and scroll-into-view effects track\n * `isFocused` / `focusedKey` / `collection.size` and run when those change.\n * `useUpdateLayoutEffect` (skip-first) maps to `on(..., { defer: true })`.\n * - Plain closure variables replace `useRef` (a Solid component body runs once).\n * - React's bubbling `onFocus` / `onBlur` are `onFocusIn` / `onFocusOut`\n * (the native bubbling focus events) here.\n * - The link branch opens the anchor directly (we have no router abstraction)\n * and needs no `flushSync` — `setFocusedKey` is synchronous and the keyed\n * item element already exists in the DOM.\n * - Virtual-focus cursor movement (`moveVirtualFocus` / `dispatchVirtualFocus`)\n * is not yet modeled — a documented gap, consistent with createSelectableItem.\n * The focused-key bookkeeping around it is preserved.\n */\n\nimport { createEffect, on, onCleanup, type JSX } from \"solid-js\";\nimport type { FocusStrategy, Key, SelectionManager } from \"@proyecto-viviana/solid-stately\";\nimport type { KeyboardDelegate } from \"../grid/types\";\nimport { access, type MaybeAccessor } from \"../utils/reactivity\";\nimport { mergeProps } from \"../utils/mergeProps\";\nimport {\n getActiveElement,\n getEventTarget,\n getFocusableTreeWalker,\n isFocusWithin,\n isTabbable,\n nodeContains,\n openLink,\n} from \"../utils/dom\";\nimport { focusSafely, focusWithoutScrolling } from \"../utils/focus\";\nimport { scrollIntoView, scrollIntoViewport } from \"../utils/scrollIntoView\";\nimport { getInteractionModality } from \"../interactions/createInteractionModality\";\nimport { isCtrlKeyPressed } from \"../utils/keyboard\";\nimport { useLocale } from \"../i18n\";\nimport { createTypeSelect } from \"./createTypeSelect\";\nimport { getItemElement, isNonContiguousSelectionModifier, registerCollectionId } from \"./utils\";\nimport { CLEAR_FOCUS_EVENT, FOCUS_EVENT } from \"./constants\";\n\nexport interface CreateSelectableCollectionOptions<T = unknown> {\n /** An interface for reading and updating multiple selection state. */\n selectionManager: SelectionManager<T>;\n /** A delegate object that implements behavior for keyboard focus movement. */\n keyboardDelegate: MaybeAccessor<KeyboardDelegate>;\n /** The ref accessor attached to the element representing the collection. */\n ref: () => HTMLElement | null;\n /** Whether the collection or one of its items should be auto-focused. @default false */\n autoFocus?: boolean | FocusStrategy;\n /** Whether focus should wrap around when the end/start is reached. @default false */\n shouldFocusWrap?: boolean;\n /** Whether the collection allows empty selection. @default false */\n disallowEmptySelection?: boolean;\n /** Whether the user can select all items via keyboard shortcut. @default false */\n disallowSelectAll?: boolean;\n /** Whether Escape clears selection. @default 'clearSelection' */\n escapeKeyBehavior?: \"clearSelection\" | \"none\";\n /** Whether selection should occur automatically on focus. @default selectionBehavior === 'replace' */\n selectOnFocus?: boolean;\n /** Whether typeahead is disabled. @default false */\n disallowTypeAhead?: boolean;\n /** Whether the collection items use virtual focus instead of being focused directly. */\n shouldUseVirtualFocus?: boolean;\n /** Whether navigation through the Tab key is enabled. */\n allowsTabNavigation?: boolean;\n /** Whether the collection items are contained in a virtual scroller. */\n isVirtualized?: boolean;\n /** The ref accessor attached to the scrollable body. Defaults to the collection ref. */\n scrollRef?: () => HTMLElement | null;\n /** The behavior of links in the collection. @default 'action' */\n linkBehavior?: \"action\" | \"selection\" | \"override\";\n /** Which item to focus when tabbing into the collection. @private */\n UNSTABLE_focusOnEntry?: \"first\" | \"last\";\n}\n\nexport interface SelectableCollectionAria {\n /** Props for the collection element. */\n collectionProps: JSX.HTMLAttributes<HTMLElement>;\n}\n\n/**\n * Handles interactions with selectable collections.\n */\nexport function createSelectableCollection<T = unknown>(\n options: CreateSelectableCollectionOptions<T>,\n): SelectableCollectionAria {\n const manager = options.selectionManager;\n const delegate = (): KeyboardDelegate => access(options.keyboardDelegate);\n const ref = options.ref;\n const scrollRef = options.scrollRef ?? ref;\n const autoFocus = options.autoFocus ?? false;\n const shouldFocusWrap = options.shouldFocusWrap ?? false;\n const disallowEmptySelection = options.disallowEmptySelection ?? false;\n const disallowSelectAll = options.disallowSelectAll ?? false;\n const escapeKeyBehavior = options.escapeKeyBehavior ?? \"clearSelection\";\n const disallowTypeAhead = options.disallowTypeAhead ?? false;\n const shouldUseVirtualFocus = options.shouldUseVirtualFocus ?? false;\n const allowsTabNavigation = options.allowsTabNavigation ?? false;\n const linkBehavior = options.linkBehavior ?? \"action\";\n const focusOnEntry = options.UNSTABLE_focusOnEntry;\n\n // Read at call time so a long-press toggling selectionBehavior is reflected.\n const selectOnFocus = (): boolean =>\n options.selectOnFocus ?? manager.selectionBehavior === \"replace\";\n\n const locale = useLocale();\n const direction = (): \"ltr\" | \"rtl\" => locale().direction;\n\n const onKeyDown = (e: KeyboardEvent) => {\n const d = delegate();\n // Prevent option + tab from doing anything since it doesn't move focus to\n // the cells, only buttons/checkboxes.\n if (e.altKey && e.key === \"Tab\") {\n e.preventDefault();\n }\n\n // Keyboard events bubble through portals. Don't handle keyboard events for\n // elements outside the collection (e.g. menus).\n const root = ref();\n if (!root || !nodeContains(root, getEventTarget(e) as Element)) {\n return;\n }\n\n const navigateToKey = (key: Key | undefined | null, childFocus?: FocusStrategy) => {\n if (key == null) {\n return;\n }\n\n if (\n manager.isLink(key) &&\n linkBehavior === \"selection\" &&\n selectOnFocus() &&\n !isNonContiguousSelectionModifier(e)\n ) {\n manager.setFocusedKey(key, childFocus);\n const item = getItemElement(ref, key);\n if (item instanceof HTMLAnchorElement) {\n openLink(item, e);\n }\n return;\n }\n\n manager.setFocusedKey(key, childFocus);\n\n if (manager.isLink(key) && linkBehavior === \"override\") {\n return;\n }\n\n if (e.shiftKey && manager.selectionMode === \"multiple\") {\n manager.extendSelection(key);\n } else if (selectOnFocus() && !isNonContiguousSelectionModifier(e)) {\n manager.replaceSelection(key);\n }\n };\n\n switch (e.key) {\n case \"ArrowDown\": {\n if (d.getKeyBelow) {\n let nextKey =\n manager.focusedKey != null ? d.getKeyBelow(manager.focusedKey) : d.getFirstKey?.();\n if (nextKey == null && shouldFocusWrap) {\n nextKey = d.getFirstKey?.(manager.focusedKey ?? undefined);\n }\n if (nextKey != null) {\n e.preventDefault();\n navigateToKey(nextKey);\n }\n }\n break;\n }\n case \"ArrowUp\": {\n if (d.getKeyAbove) {\n let nextKey =\n manager.focusedKey != null ? d.getKeyAbove(manager.focusedKey) : d.getLastKey?.();\n if (nextKey == null && shouldFocusWrap) {\n nextKey = d.getLastKey?.(manager.focusedKey ?? undefined);\n }\n if (nextKey != null) {\n e.preventDefault();\n navigateToKey(nextKey);\n }\n }\n break;\n }\n case \"ArrowLeft\": {\n if (d.getKeyLeftOf) {\n let nextKey =\n manager.focusedKey != null ? d.getKeyLeftOf(manager.focusedKey) : d.getFirstKey?.();\n if (nextKey == null && shouldFocusWrap) {\n nextKey =\n direction() === \"rtl\"\n ? d.getFirstKey?.(manager.focusedKey ?? undefined)\n : d.getLastKey?.(manager.focusedKey ?? undefined);\n }\n if (nextKey != null) {\n e.preventDefault();\n navigateToKey(nextKey, direction() === \"rtl\" ? \"first\" : \"last\");\n }\n }\n break;\n }\n case \"ArrowRight\": {\n if (d.getKeyRightOf) {\n let nextKey =\n manager.focusedKey != null ? d.getKeyRightOf(manager.focusedKey) : d.getFirstKey?.();\n if (nextKey == null && shouldFocusWrap) {\n nextKey =\n direction() === \"rtl\"\n ? d.getLastKey?.(manager.focusedKey ?? undefined)\n : d.getFirstKey?.(manager.focusedKey ?? undefined);\n }\n if (nextKey != null) {\n e.preventDefault();\n navigateToKey(nextKey, direction() === \"rtl\" ? \"last\" : \"first\");\n }\n }\n break;\n }\n case \"Home\":\n if (d.getFirstKey) {\n if (manager.focusedKey == null && e.shiftKey) {\n return;\n }\n\n e.preventDefault();\n const firstKey = d.getFirstKey(manager.focusedKey ?? undefined, isCtrlKeyPressed(e));\n manager.setFocusedKey(firstKey);\n if (firstKey != null) {\n if (isCtrlKeyPressed(e) && e.shiftKey && manager.selectionMode === \"multiple\") {\n manager.extendSelection(firstKey);\n } else if (selectOnFocus()) {\n manager.replaceSelection(firstKey);\n }\n }\n }\n break;\n case \"End\":\n if (d.getLastKey) {\n if (manager.focusedKey == null && e.shiftKey) {\n return;\n }\n e.preventDefault();\n const lastKey = d.getLastKey(manager.focusedKey ?? undefined, isCtrlKeyPressed(e));\n manager.setFocusedKey(lastKey);\n if (lastKey != null) {\n if (isCtrlKeyPressed(e) && e.shiftKey && manager.selectionMode === \"multiple\") {\n manager.extendSelection(lastKey);\n } else if (selectOnFocus()) {\n manager.replaceSelection(lastKey);\n }\n }\n }\n break;\n case \"PageDown\":\n if (d.getKeyPageBelow && manager.focusedKey != null) {\n const nextKey = d.getKeyPageBelow(manager.focusedKey);\n if (nextKey != null) {\n e.preventDefault();\n navigateToKey(nextKey);\n }\n }\n break;\n case \"PageUp\":\n if (d.getKeyPageAbove && manager.focusedKey != null) {\n const nextKey = d.getKeyPageAbove(manager.focusedKey);\n if (nextKey != null) {\n e.preventDefault();\n navigateToKey(nextKey);\n }\n }\n break;\n case \"a\":\n if (\n isCtrlKeyPressed(e) &&\n manager.selectionMode === \"multiple\" &&\n disallowSelectAll !== true\n ) {\n e.preventDefault();\n manager.selectAll();\n }\n break;\n case \"Escape\":\n if (\n escapeKeyBehavior === \"clearSelection\" &&\n !disallowEmptySelection &&\n manager.selectedKeys.size !== 0\n ) {\n e.stopPropagation();\n e.preventDefault();\n manager.clearSelection();\n }\n break;\n case \"Tab\": {\n if (!allowsTabNavigation) {\n // There may be elements that are \"tabbable\" inside a collection (e.g.\n // a button in a grid cell). Collections are a single tab stop with\n // internal arrow-key navigation, so on Tab we move focus to the\n // first/last tabbable element so the browser default continues from\n // there rather than the currently focused item.\n if (e.shiftKey) {\n root.focus();\n } else {\n const walker = getFocusableTreeWalker(root, { tabbable: true });\n let next: HTMLElement | undefined;\n let last: Node | null;\n do {\n last = walker.lastChild();\n if (last) {\n next = last as HTMLElement;\n }\n } while (last);\n\n const activeElement = getActiveElement();\n if (next && (!isFocusWithin(next) || (activeElement && !isTabbable(activeElement)))) {\n focusWithoutScrolling(next);\n }\n }\n break;\n }\n }\n }\n };\n\n // Store the scroll position so we can restore it later.\n const scrollPos = { top: 0, left: 0 };\n addRefListener(scrollRef, \"scroll\", () => {\n const sr = scrollRef();\n scrollPos.top = sr?.scrollTop ?? 0;\n scrollPos.left = sr?.scrollLeft ?? 0;\n });\n\n const onFocusIn = (e: FocusEvent) => {\n const currentTarget = e.currentTarget as Element;\n if (manager.isFocused) {\n // If a focus event bubbled through a portal, reset focus state.\n if (!nodeContains(currentTarget, getEventTarget(e) as Node)) {\n manager.setFocused(false);\n }\n return;\n }\n\n // Focus events can bubble through portals. Ignore these events.\n if (!nodeContains(currentTarget, getEventTarget(e) as Node)) {\n return;\n }\n\n const modality = getInteractionModality();\n manager.setFocused(true);\n const navigate = (key: Key | undefined | null) => {\n if (key != null) {\n manager.setFocusedKey(key);\n if (selectOnFocus() && !manager.isSelected(key)) {\n manager.replaceSelection(key);\n }\n }\n };\n\n if (focusOnEntry && (modality === \"keyboard\" || modality === \"virtual\")) {\n navigate(focusOnEntry === \"first\" ? delegate().getFirstKey?.() : delegate().getLastKey?.());\n } else if (manager.focusedKey == null) {\n // If the user hasn't yet interacted with the collection there will be no\n // focusedKey set. Detect whether the user is tabbing forward or backward\n // and focus the first or last item accordingly.\n const relatedTarget = e.relatedTarget as Element | null;\n if (\n relatedTarget &&\n currentTarget.compareDocumentPosition(relatedTarget) & Node.DOCUMENT_POSITION_FOLLOWING\n ) {\n navigate(manager.lastSelectedKey ?? delegate().getLastKey?.());\n } else {\n navigate(manager.firstSelectedKey ?? delegate().getFirstKey?.());\n }\n } else if (scrollRef()) {\n // Restore the scroll position to what it was before.\n const sr = scrollRef()!;\n sr.scrollTop = scrollPos.top;\n sr.scrollLeft = scrollPos.left;\n }\n\n if (manager.focusedKey != null && scrollRef()) {\n // Refocus and scroll the focused item into view if it exists within the\n // scrollable region.\n const element = getItemElement(ref, manager.focusedKey);\n if (element instanceof HTMLElement) {\n // Prevents a flash of focus on the first/last element, or the collection.\n if (!isFocusWithin(element) && !shouldUseVirtualFocus) {\n focusWithoutScrolling(element);\n }\n\n if (modality === \"keyboard\" || (focusOnEntry && modality === \"virtual\")) {\n scrollIntoViewport(element, { containingElement: ref()! });\n }\n }\n }\n };\n\n const onFocusOut = (e: FocusEvent) => {\n const currentTarget = e.currentTarget as Element;\n // Don't set blurred and then focused again if moving focus within the collection.\n if (!nodeContains(currentTarget, e.relatedTarget as Node)) {\n manager.setFocused(false);\n }\n };\n\n // Whether to auto-focus the first item once the collection updates (used by\n // virtual focus / autocomplete as the user types).\n let shouldVirtualFocusFirst = false;\n\n if (shouldUseVirtualFocus) {\n addRefListener(ref, FOCUS_EVENT, (e: Event) => {\n const detail = (e as CustomEvent).detail;\n e.stopPropagation();\n manager.setFocused(true);\n // If the user is typing forwards, autofocus the first option in the list.\n if (detail?.focusStrategy === \"first\") {\n shouldVirtualFocusFirst = true;\n }\n });\n\n addRefListener(ref, CLEAR_FOCUS_EVENT, (e: Event) => {\n e.stopPropagation();\n manager.setFocused(false);\n if ((e as CustomEvent).detail?.clearFocusKey) {\n manager.setFocusedKey(null);\n }\n });\n }\n\n // Update active descendant (skip-first; runs on [firstKey, collection.size]).\n createEffect(\n on(\n () => [delegate().getFirstKey?.() ?? null, manager.collection.size] as const,\n ([firstKey]) => {\n if (!shouldVirtualFocusFirst) {\n return;\n }\n if (firstKey == null) {\n // No focusable items: clear the virtual-focus intent once the\n // collection is settled. We don't move an AT cursor here (the\n // moveVirtualFocus / dispatchVirtualFocus gap noted above).\n if (manager.collection.size > 0) {\n shouldVirtualFocusFirst = false;\n }\n } else {\n manager.setFocusedKey(firstKey);\n shouldVirtualFocusFirst = false;\n }\n },\n { defer: true },\n ),\n );\n\n // Reset the focus-first flag if the focused key changed by any other means.\n createEffect(\n on(\n () => manager.focusedKey,\n () => {\n if (manager.collection.size > 0) {\n shouldVirtualFocusFirst = false;\n }\n },\n { defer: true },\n ),\n );\n\n // Auto-focus the collection (or its first/last/selected item) on mount, once\n // the collection has items. Re-runs as the collection size changes.\n let autoFocusActive = autoFocus !== false;\n let didAutoFocus = false;\n createEffect(() => {\n const size = manager.collection.size;\n const selectedKeys = manager.selectedKeys;\n if (!autoFocusActive) {\n return;\n }\n\n let focusedKey: Key | null = null;\n if (autoFocus === \"first\") {\n focusedKey = delegate().getFirstKey?.() ?? null;\n }\n if (autoFocus === \"last\") {\n focusedKey = delegate().getLastKey?.() ?? null;\n }\n\n // If there are any selected keys, make the first selectable one the focus target.\n if (selectedKeys.size) {\n for (const key of selectedKeys) {\n if (manager.canSelectItem(key)) {\n focusedKey = key;\n break;\n }\n }\n }\n\n manager.setFocused(true);\n manager.setFocusedKey(focusedKey);\n\n // If no default focus key is selected, focus the collection itself.\n const root = ref();\n if (focusedKey == null && !shouldUseVirtualFocus && root) {\n focusSafely(root);\n }\n\n // Wait until the collection has items to finish auto-focusing.\n if (size > 0) {\n autoFocusActive = false;\n didAutoFocus = true;\n }\n });\n\n // Scroll the focused element into view when the focusedKey changes.\n let lastFocusedKey = manager.focusedKey;\n let raf: number | null = null;\n createEffect(() => {\n const isFocused = manager.isFocused;\n const focusedKey = manager.focusedKey;\n const root = ref();\n const sr = scrollRef();\n if (\n isFocused &&\n focusedKey != null &&\n (focusedKey !== lastFocusedKey || didAutoFocus) &&\n sr &&\n root\n ) {\n const modality = getInteractionModality();\n const element = getItemElement(ref, focusedKey);\n if (!(element instanceof HTMLElement)) {\n // The element wasn't found yet (e.g. a virtualizer hasn't rendered it).\n // Return without updating bookkeeping so we retry on the next change.\n return;\n }\n\n if (modality === \"keyboard\" || didAutoFocus) {\n if (raf != null) {\n cancelAnimationFrame(raf);\n }\n\n raf = requestAnimationFrame(() => {\n const scrollEl = scrollRef();\n if (scrollEl) {\n scrollIntoView(scrollEl, element);\n // Avoid scroll in iOS VO, since it may cause an overlay to close.\n if (modality !== \"virtual\") {\n scrollIntoViewport(element, { containingElement: ref()! });\n }\n }\n });\n }\n }\n\n // If the focused key became null (e.g. the last item was deleted), focus the\n // whole collection.\n if (\n !shouldUseVirtualFocus &&\n isFocused &&\n focusedKey == null &&\n lastFocusedKey != null &&\n root\n ) {\n focusSafely(root);\n }\n\n lastFocusedKey = focusedKey;\n didAutoFocus = false;\n });\n\n onCleanup(() => {\n if (raf != null) {\n cancelAnimationFrame(raf);\n }\n });\n\n // Intercept FocusScope restoration since virtualized collections can reuse DOM nodes.\n addRefListener(ref, \"react-aria-focus-scope-restore\", (e: Event) => {\n e.preventDefault();\n manager.setFocused(true);\n });\n\n const onMouseDown = (e: MouseEvent) => {\n // Ignore events that bubbled through portals.\n if (scrollRef() === getEventTarget(e)) {\n // Prevent focus going to the collection when clicking on the scrollbar.\n e.preventDefault();\n }\n };\n\n const { typeSelectProps } = createTypeSelect<T>({\n collection: () => manager.collection,\n focusedKey: () => manager.focusedKey,\n onFocusedKeyChange: (key) => manager.setFocusedKey(key),\n isKeyDisabled: (key) => manager.isDisabled(key),\n });\n\n // A stable id shared with this collection's items (keyed by the manager) so\n // getItemElement can scope a query by `data-collection`.\n const collectionId = registerCollectionId(manager);\n\n return {\n get collectionProps(): JSX.HTMLAttributes<HTMLElement> {\n let tabIndex: number | undefined;\n if (!shouldUseVirtualFocus) {\n tabIndex = manager.focusedKey == null ? 0 : -1;\n }\n\n let handlers: Record<string, unknown> = {\n onKeyDown,\n onFocusIn,\n onFocusOut,\n onMouseDown,\n };\n\n if (!disallowTypeAhead) {\n handlers = mergeProps(typeSelectProps as Record<string, unknown>, handlers);\n }\n\n return mergeProps(handlers, {\n tabIndex,\n \"data-collection\": collectionId,\n }) as JSX.HTMLAttributes<HTMLElement>;\n },\n };\n}\n\n/** Attaches `type` to the element from `ref`, re-binding when the element changes. */\nfunction addRefListener(\n ref: () => HTMLElement | null,\n type: string,\n handler: (e: Event) => void,\n): void {\n createEffect(() => {\n const el = ref();\n if (!el) {\n return;\n }\n el.addEventListener(type, handler);\n onCleanup(() => el.removeEventListener(type, handler));\n });\n}\n","/**\n * createSelectableList - keyboard navigation and selection for a list collection.\n * Based on @react-aria/selection's `useSelectableList`.\n *\n * React → Solid adaptations (faithful to upstream behavior):\n * - `ref` / `scrollRef` are Solid accessors.\n * - The default `ListKeyboardDelegate` is built inside a `createMemo` so it is\n * recreated whenever the collection, disabled keys, disabled behavior, or\n * collator change (the house convention — the delegate stores those as plain\n * values; see {@link ListKeyboardDelegate}). This is the Solid equivalent of\n * upstream's `useMemo` keyed on the same inputs.\n * - Upstream takes `collection` and `disabledKeys` as separate props; our\n * SelectionManager already exposes them as reactive getters\n * (`manager.collection`, `manager.disabledKeys`, `manager.disabledBehavior`),\n * so the delegate is derived from the manager — a single source of truth.\n * A `layoutDelegate` may still be supplied for virtualized collections.\n */\n\nimport { createMemo } from \"solid-js\";\nimport type { KeyboardDelegate } from \"../grid/types\";\nimport { access, type MaybeAccessor } from \"../utils/reactivity\";\nimport { createCollator } from \"../i18n\";\nimport { ListKeyboardDelegate } from \"./ListKeyboardDelegate\";\nimport type { LayoutDelegate } from \"./DOMLayoutDelegate\";\nimport {\n createSelectableCollection,\n type CreateSelectableCollectionOptions,\n type SelectableCollectionAria,\n} from \"./createSelectableCollection\";\n\nexport interface CreateSelectableListOptions<T = unknown> extends Omit<\n CreateSelectableCollectionOptions<T>,\n \"keyboardDelegate\"\n> {\n /**\n * A delegate object that implements behavior for keyboard focus movement.\n * Defaults to a {@link ListKeyboardDelegate} derived from the selection manager.\n */\n keyboardDelegate?: MaybeAccessor<KeyboardDelegate>;\n /**\n * A delegate object that provides layout information for items in the\n * collection. Supply this for virtualized collections; by default layout is\n * read from the DOM.\n */\n layoutDelegate?: LayoutDelegate;\n}\n\nexport interface SelectableListAria {\n /** Props for the list element. */\n listProps: SelectableCollectionAria[\"collectionProps\"];\n}\n\n/**\n * Handles interactions with a selectable list collection.\n */\nexport function createSelectableList<T = unknown>(\n options: CreateSelectableListOptions<T>,\n): SelectableListAria {\n const manager = options.selectionManager;\n\n // By default, a ListKeyboardDelegate is provided which queries layout\n // information from the DOM (e.g. for page up/page down). When virtualized, a\n // layoutDelegate is passed in to override that.\n const collator = createCollator({ usage: \"search\", sensitivity: \"base\" });\n const keyboardDelegate = createMemo<KeyboardDelegate>(() => {\n if (options.keyboardDelegate != null) {\n return access(options.keyboardDelegate);\n }\n return new ListKeyboardDelegate<T>({\n collection: manager.collection,\n disabledKeys: manager.disabledKeys,\n disabledBehavior: manager.disabledBehavior,\n ref: options.ref,\n collator: collator(),\n layoutDelegate: options.layoutDelegate,\n });\n });\n\n const collection = createSelectableCollection<T>({\n ...options,\n keyboardDelegate,\n });\n\n // Forward `collectionProps` as a getter rather than destructuring it: it is a\n // recomputed-per-access getter (the Solid equivalent of React re-rendering the\n // hook), so the roving `tabIndex` stays reactive to the focused key. Reading it\n // into a local would freeze it at its first value.\n return {\n get listProps() {\n return collection.collectionProps;\n },\n };\n}\n"],"mappings":"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"}