@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":"focus2.js","names":["createContext","useContext","createEffect","onCleanup","JSX","Accessor","ParentComponent","createSignal","onMount","isServer","getOwnerDocument","isFocusable","isTabbable","focusSafely","FocusScopeProps","children","Element","contain","restoreFocus","autoFocus","FocusManagerOptions","from","tabbable","wrap","accept","node","FocusManager","focusNext","opts","HTMLElement","focusPrevious","focusFirst","focusLast","FocusScopeContextValue","focusManager","scopeRef","FocusScopeContext","useFocusManager","getFocusableElements","scope","elements","filter","scopeElement","push","descendants","querySelectorAll","i","length","el","isElementInScope","element","some","contains","getActiveElement","doc","Document","activeElement","shadowRoot","ScopeRef","FocusScopeTreeNode","parent","Set","FocusScopeTree","root","fastMap","Map","constructor","set","getTreeNode","get","addTreeNode","parentNode","add","removeTreeNode","delete","child","traverse","Generator","focusScopeTree","isElementInChildScope","closest","FocusScope","props","_$memo","startRef","HTMLSpanElement","endRef","scopeElements","setScopeElements","parentScopeRef","nodeToRestore","getRestorableElement","body","documentElement","current","currentIndex","indexOf","nextIndex","nextElement","prevIndex","prevElement","lastElement","nodes","nextSibling","nodeType","Node","ELEMENT_NODE","scopeDoc","document","scopeActive","topActive","HTMLIFrameElement","contentDocument","focusedNode","onKeyDown","e","KeyboardEvent","key","altKey","ctrlKey","metaKey","firstElement","shiftKey","preventDefault","onFocusIn","FocusEvent","target","restoreRaf","onFocusOut","win","defaultView","window","cancelAnimationFrame","requestAnimationFrame","addEventListener","removeEventListener","focus","_$createComponent","Provider","value","_el$","_$getNextElement","_tmpl$","_ref$","_$use","_el$2","_tmpl$2","_ref$2"],"sources":["../../src/focus/FocusScope.tsx","../../src/focus/createFocusRestore.ts","../../src/focus/createVirtualFocus.ts","../../src/focus/createAutoFocus.ts"],"sourcesContent":["/**\n * FocusScope component for managing focus containment, restoration, and auto-focus.\n * Based on @react-aria/focus FocusScope.\n */\n\nimport {\n createContext,\n useContext,\n createEffect,\n onCleanup,\n type JSX,\n type Accessor,\n type ParentComponent,\n createSignal,\n onMount,\n} from \"solid-js\";\nimport { isServer } from \"solid-js/web\";\nimport { getOwnerDocument, isFocusable, isTabbable } from \"../utils\";\nimport { focusSafely } from \"../utils/focus\";\n\nexport interface FocusScopeProps {\n /** The contents of the focus scope. */\n children: JSX.Element;\n /**\n * Whether to contain focus inside the scope, so users cannot\n * move focus outside, for example in a modal dialog.\n */\n contain?: boolean;\n /**\n * Whether to restore focus back to the element that was focused\n * when the focus scope mounted, after the focus scope unmounts.\n */\n restoreFocus?: boolean;\n /** Whether to auto focus the first focusable element in the focus scope on mount. */\n autoFocus?: boolean;\n}\n\nexport interface FocusManagerOptions {\n /** The element to start searching from. The currently focused element by default. */\n from?: Element;\n /** Whether to only include tabbable elements, or all focusable elements. */\n tabbable?: boolean;\n /** Whether focus should wrap around when it reaches the end of the scope. */\n wrap?: boolean;\n /** A callback that determines whether the given element is focused. */\n accept?: (node: Element) => boolean;\n}\n\nexport interface FocusManager {\n /** Moves focus to the next focusable or tabbable element in the focus scope. */\n focusNext(opts?: FocusManagerOptions): HTMLElement | null;\n /** Moves focus to the previous focusable or tabbable element in the focus scope. */\n focusPrevious(opts?: FocusManagerOptions): HTMLElement | null;\n /** Moves focus to the first focusable or tabbable element in the focus scope. */\n focusFirst(opts?: FocusManagerOptions): HTMLElement | null;\n /** Moves focus to the last focusable or tabbable element in the focus scope. */\n focusLast(opts?: FocusManagerOptions): HTMLElement | null;\n}\n\ninterface FocusScopeContextValue {\n focusManager: FocusManager;\n scopeRef: Accessor<Element[]>;\n}\n\nconst FocusScopeContext = createContext<FocusScopeContextValue | null>(null);\n\n/**\n * Returns a FocusManager interface for the parent FocusScope.\n * A FocusManager can be used to programmatically move focus within\n * a FocusScope, e.g. in response to user events like keyboard navigation.\n */\nexport function useFocusManager(): FocusManager | undefined {\n return useContext(FocusScopeContext)?.focusManager;\n}\n\n/**\n * Gets all focusable elements within a scope.\n */\nfunction getFocusableElements(scope: Element[], tabbable = false): HTMLElement[] {\n const elements: HTMLElement[] = [];\n const filter = tabbable ? isTabbable : isFocusable;\n\n for (const scopeElement of scope) {\n // Check the element itself\n if (filter(scopeElement)) {\n elements.push(scopeElement as HTMLElement);\n }\n\n // Check all descendants\n const descendants = scopeElement.querySelectorAll(\"*\");\n for (let i = 0; i < descendants.length; i++) {\n const el = descendants[i];\n if (filter(el)) {\n elements.push(el as HTMLElement);\n }\n }\n }\n\n return elements;\n}\n\n/**\n * Checks if an element is within a scope.\n */\nfunction isElementInScope(element: Element | null, scope: Element[]): boolean {\n if (!element) return false;\n return scope.some((node) => node.contains(element));\n}\n\n/**\n * Gets the active element, accounting for shadow DOM.\n */\nfunction getActiveElement(doc: Document): Element | null {\n let activeElement = doc.activeElement;\n while (activeElement?.shadowRoot?.activeElement) {\n activeElement = activeElement.shadowRoot.activeElement;\n }\n return activeElement;\n}\n\n/**\n * A scope is identified by its (stable) scope-elements accessor; `null` is the\n * tree root. Mirrors @react-aria/focus's `ScopeRef`.\n */\ntype ScopeRef = Accessor<Element[]> | null;\n\ninterface FocusScopeTreeNode {\n scopeRef: ScopeRef;\n parent: FocusScopeTreeNode | null;\n children: Set<FocusScopeTreeNode>;\n}\n\n/**\n * A registry of the live FocusScopes and their parent/child relationships,\n * mirroring @react-aria/focus's `focusScopeTree`. The DOM tree alone can't\n * express scope nesting because a child scope (e.g. a menu opened from inside a\n * modal popover) is rendered in a portal, outside its parent scope's subtree.\n * The tree records that nesting so containment can recognize a portaled\n * descendant scope as \"inside\".\n */\nclass FocusScopeTree {\n root: FocusScopeTreeNode;\n private fastMap = new Map<ScopeRef, FocusScopeTreeNode>();\n\n constructor() {\n this.root = { scopeRef: null, parent: null, children: new Set() };\n this.fastMap.set(null, this.root);\n }\n\n getTreeNode(scopeRef: ScopeRef): FocusScopeTreeNode | undefined {\n return this.fastMap.get(scopeRef);\n }\n\n addTreeNode(scopeRef: ScopeRef, parent: ScopeRef): void {\n const parentNode = this.fastMap.get(parent) ?? this.root;\n const node: FocusScopeTreeNode = { scopeRef, parent: parentNode, children: new Set() };\n parentNode.children.add(node);\n this.fastMap.set(scopeRef, node);\n }\n\n removeTreeNode(scopeRef: ScopeRef): void {\n // never remove the root\n if (scopeRef === null) return;\n const node = this.fastMap.get(scopeRef);\n if (!node) return;\n const parentNode = node.parent;\n if (parentNode) {\n parentNode.children.delete(node);\n // Re-parent any children so a mid-tree unmount doesn't orphan descendants.\n for (const child of node.children) {\n child.parent = parentNode;\n parentNode.children.add(child);\n }\n }\n this.fastMap.delete(scopeRef);\n }\n\n // Pre-order depth-first; skips the null-scoped root, like upstream.\n *traverse(node: FocusScopeTreeNode = this.root): Generator<FocusScopeTreeNode> {\n if (node.scopeRef != null) {\n yield node;\n }\n for (const child of node.children) {\n yield* this.traverse(child);\n }\n }\n}\n\nconst focusScopeTree = new FocusScopeTree();\n\n/**\n * Whether the element is inside `scope` or any of its descendant scopes.\n *\n * `isElementInScope`'s `node.contains` already covers descendant scopes that\n * are DOM children, but not those rendered in a portal. Walking the scope\n * subtree closes that gap so focus moving into a portaled child scope still\n * counts as \"inside\". Mirrors @react-aria/focus's `isElementInChildScope`.\n */\nfunction isElementInChildScope(element: Element, scope: ScopeRef = null): boolean {\n // Always allow focus to move into a top-layer element (e.g. toasts).\n if (element instanceof Element && element.closest(\"[data-react-aria-top-layer]\")) {\n return true;\n }\n\n for (const node of focusScopeTree.traverse(focusScopeTree.getTreeNode(scope))) {\n if (node.scopeRef && isElementInScope(element, node.scopeRef())) {\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * A FocusScope manages focus for its descendants. It supports containing focus inside\n * the scope, restoring focus to the previously focused element on unmount, and auto\n * focusing children on mount. It also acts as a container for a programmatic focus\n * management interface that can be used to move focus forward and back in response\n * to user events.\n */\nexport const FocusScope: ParentComponent<FocusScopeProps> = (props) => {\n if (isServer) {\n return <>{props.children}</>;\n }\n\n let startRef: HTMLSpanElement | undefined;\n let endRef: HTMLSpanElement | undefined;\n const [scopeElements, setScopeElements] = createSignal<Element[]>([]);\n\n // The nearest enclosing FocusScope (through context, which Solid propagates\n // across portals) is this scope's parent in the focus-scope tree. Read it\n // before we shadow the context with our own provider below.\n const parentScopeRef = useContext(FocusScopeContext)?.scopeRef ?? null;\n\n // Store the element that was focused when the scope mounted\n let nodeToRestore: Element | null = null;\n\n const getRestorableElement = (element: Element | null, doc: Document): Element | null => {\n if (!element || element === doc.body || element === doc.documentElement) {\n return null;\n }\n return element;\n };\n\n // Create focus manager\n const focusManager: FocusManager = {\n focusNext(opts = {}) {\n const scope = scopeElements();\n if (scope.length === 0) return null;\n\n const { from, tabbable = true, wrap = false, accept } = opts;\n const elements = getFocusableElements(scope, tabbable).filter((el) => !accept || accept(el));\n const doc = getOwnerDocument(scope[0]);\n const current = from || getActiveElement(doc);\n\n if (!current || elements.length === 0) return null;\n\n const currentIndex = elements.indexOf(current as HTMLElement);\n let nextIndex = currentIndex + 1;\n\n if (nextIndex >= elements.length) {\n if (wrap) {\n nextIndex = 0;\n } else {\n return null;\n }\n }\n\n const nextElement = elements[nextIndex];\n if (nextElement) {\n focusSafely(nextElement);\n return nextElement;\n }\n\n return null;\n },\n\n focusPrevious(opts = {}) {\n const scope = scopeElements();\n if (scope.length === 0) return null;\n\n const { from, tabbable = true, wrap = false, accept } = opts;\n const elements = getFocusableElements(scope, tabbable).filter((el) => !accept || accept(el));\n const doc = getOwnerDocument(scope[0]);\n const current = from || getActiveElement(doc);\n\n if (!current || elements.length === 0) return null;\n\n const currentIndex = elements.indexOf(current as HTMLElement);\n let prevIndex = currentIndex - 1;\n\n if (prevIndex < 0) {\n if (wrap) {\n prevIndex = elements.length - 1;\n } else {\n return null;\n }\n }\n\n const prevElement = elements[prevIndex];\n if (prevElement) {\n focusSafely(prevElement);\n return prevElement;\n }\n\n return null;\n },\n\n focusFirst(opts = {}) {\n const scope = scopeElements();\n if (scope.length === 0) return null;\n\n const { tabbable = true, accept } = opts;\n const elements = getFocusableElements(scope, tabbable).filter((el) => !accept || accept(el));\n\n if (elements.length > 0) {\n focusSafely(elements[0]);\n return elements[0];\n }\n\n return null;\n },\n\n focusLast(opts = {}) {\n const scope = scopeElements();\n if (scope.length === 0) return null;\n\n const { tabbable = true, accept } = opts;\n const elements = getFocusableElements(scope, tabbable).filter((el) => !accept || accept(el));\n\n if (elements.length > 0) {\n const lastElement = elements[elements.length - 1];\n focusSafely(lastElement);\n return lastElement;\n }\n\n return null;\n },\n };\n\n // Collect scope elements after render\n onMount(() => {\n if (!startRef || !endRef) return;\n\n const nodes: Element[] = [];\n let node = startRef.nextSibling;\n while (node && node !== endRef) {\n if (node.nodeType === Node.ELEMENT_NODE) {\n nodes.push(node as Element);\n }\n node = node.nextSibling;\n }\n setScopeElements(nodes);\n });\n\n // Register this scope in the focus-scope tree so containment can recognize a\n // portaled descendant scope as \"inside\" it. The scope-elements accessor is a\n // stable identity, so it works as the tree key even before it's populated.\n onMount(() => {\n focusScopeTree.addTreeNode(scopeElements, parentScopeRef);\n });\n onCleanup(() => {\n focusScopeTree.removeTreeNode(scopeElements);\n });\n\n // Save the currently focused element for restoration (must happen before autoFocus/contain effects run).\n onMount(() => {\n if (!props.restoreFocus) return;\n\n // Focus can be in the main document, or inside this iframe's document.\n const scopeDoc = startRef ? getOwnerDocument(startRef) : document;\n const scopeActive = getActiveElement(scopeDoc);\n const topActive = getActiveElement(document);\n\n // If the scope is in an iframe and that iframe is currently focused, prefer the iframe document's active element.\n if (\n scopeDoc !== document &&\n document.activeElement instanceof HTMLIFrameElement &&\n document.activeElement.contentDocument === scopeDoc &&\n scopeActive &&\n scopeActive !== scopeDoc.body\n ) {\n nodeToRestore = getRestorableElement(scopeActive, scopeDoc);\n return;\n }\n\n nodeToRestore = getRestorableElement(topActive, document);\n });\n\n // Auto-focus first element\n createEffect(() => {\n if (!props.autoFocus) return;\n\n const scope = scopeElements();\n if (scope.length === 0) return;\n\n const doc = getOwnerDocument(scope[0]);\n const activeElement = getActiveElement(doc);\n\n // Only auto-focus if focus is not already inside the scope\n if (!isElementInScope(activeElement, scope)) {\n focusManager.focusFirst();\n }\n });\n\n // Focus containment\n createEffect(() => {\n if (!props.contain) return;\n\n const scope = scopeElements();\n if (scope.length === 0) return;\n\n const doc = getOwnerDocument(scope[0]);\n let focusedNode: Element | null = null;\n\n const onKeyDown = (e: KeyboardEvent) => {\n if (e.key !== \"Tab\" || e.altKey || e.ctrlKey || e.metaKey) {\n return;\n }\n\n const scope = scopeElements();\n const activeElement = getActiveElement(doc);\n if (!isElementInScope(activeElement, scope)) {\n return;\n }\n\n const elements = getFocusableElements(scope, true);\n if (elements.length === 0) return;\n\n const firstElement = elements[0];\n const lastElement = elements[elements.length - 1];\n\n if (e.shiftKey && activeElement === firstElement) {\n e.preventDefault();\n focusSafely(lastElement);\n } else if (!e.shiftKey && activeElement === lastElement) {\n e.preventDefault();\n focusSafely(firstElement);\n }\n };\n\n const onFocusIn = (e: FocusEvent) => {\n const scope = scopeElements();\n const target = e.target as Element;\n\n if (isElementInScope(target, scope)) {\n focusedNode = target;\n } else if (isElementInChildScope(target, scopeElements)) {\n // Focus moved into a descendant scope — e.g. a menu opened from inside\n // this modal popover, rendered in a portal outside this scope's DOM\n // subtree. Track it but don't pull focus back, which would tear the\n // nested overlay down.\n focusedNode = target;\n } else if (focusedNode) {\n // Focus escaped the scope, bring it back\n focusSafely(focusedNode as HTMLElement);\n } else {\n // No previous focus, focus first element\n focusManager.focusFirst();\n }\n };\n\n let restoreRaf: number | null = null;\n\n const onFocusOut = (e: FocusEvent) => {\n const target = e.target as Element;\n if (!isElementInScope(target, scopeElements())) return;\n\n // Focus left an element inside the scope. Wait a frame (like upstream's\n // onBlur) so a synchronous refocus elsewhere can settle; if focus ended\n // up outside every scope (e.g. blur() to body), pull it back.\n const win = doc.defaultView ?? window;\n if (restoreRaf != null) win.cancelAnimationFrame(restoreRaf);\n restoreRaf = win.requestAnimationFrame(() => {\n restoreRaf = null;\n const scope = scopeElements();\n const activeElement = getActiveElement(doc);\n if (\n activeElement &&\n (isElementInScope(activeElement, scope) ||\n isElementInChildScope(activeElement, scopeElements))\n ) {\n return;\n }\n\n if (doc.body.contains(target)) {\n focusedNode = target;\n focusSafely(target as HTMLElement);\n } else {\n focusManager.focusFirst();\n }\n });\n };\n\n doc.addEventListener(\"keydown\", onKeyDown, true);\n doc.addEventListener(\"focusin\", onFocusIn, true);\n doc.addEventListener(\"focusout\", onFocusOut, true);\n\n onCleanup(() => {\n doc.removeEventListener(\"keydown\", onKeyDown, true);\n doc.removeEventListener(\"focusin\", onFocusIn, true);\n doc.removeEventListener(\"focusout\", onFocusOut, true);\n if (restoreRaf != null) {\n (doc.defaultView ?? window).cancelAnimationFrame(restoreRaf);\n }\n });\n });\n\n // Restore focus on unmount\n onCleanup(() => {\n if (props.restoreFocus && nodeToRestore && (nodeToRestore as HTMLElement).focus) {\n const doc = getOwnerDocument(nodeToRestore as Element);\n const win = doc.defaultView ?? window;\n\n // Use requestAnimationFrame to ensure the element is still in the DOM\n win.requestAnimationFrame(() => {\n if (nodeToRestore && doc.body.contains(nodeToRestore as Node)) {\n (nodeToRestore as HTMLElement).focus();\n }\n });\n }\n });\n\n return (\n <FocusScopeContext.Provider value={{ focusManager, scopeRef: scopeElements }}>\n <span data-focus-scope-start hidden ref={startRef} />\n {props.children}\n <span data-focus-scope-end hidden ref={endRef} />\n </FocusScopeContext.Provider>\n );\n};\n\nexport default FocusScope;\n","/**\n * Focus restoration utilities for solidaria\n *\n * Provides enhanced focus restoration with retry logic, cross-scope tracking,\n * and safe restoration patterns.\n */\n\nimport { createEffect, onCleanup, onMount } from \"solid-js\";\nimport { isServer } from \"solid-js/web\";\nimport { getOwnerDocument } from \"../utils\";\nimport { focusSafely } from \"../utils/focus\";\n\nexport interface FocusRestoreOptions {\n /**\n * Whether to restore focus when the component unmounts.\n * @default true\n */\n restoreOnUnmount?: boolean;\n /**\n * Maximum number of retries if the element is not in the DOM.\n * @default 3\n */\n maxRetries?: number;\n /**\n * Delay between retries in milliseconds.\n * @default 50\n */\n retryDelay?: number;\n /**\n * Callback when focus is successfully restored.\n */\n onRestore?: (element: HTMLElement) => void;\n /**\n * Callback when focus restoration fails.\n */\n onRestoreFailed?: () => void;\n /**\n * Whether to prevent scrolling when restoring focus.\n * @default true\n */\n preventScroll?: boolean;\n}\n\nexport interface FocusRestoreResult {\n /**\n * Manually restore focus to the saved element.\n */\n restore: () => boolean;\n /**\n * Get the saved element (if any).\n */\n getSavedElement: () => HTMLElement | null;\n /**\n * Save the currently focused element.\n */\n saveCurrentFocus: () => void;\n /**\n * Clear the saved element without restoring.\n */\n clear: () => void;\n}\n\n// Stack to track focus history across scopes\nconst focusStack: HTMLElement[] = [];\n\n/**\n * Push an element onto the focus stack.\n */\nexport function pushFocusStack(element: HTMLElement): void {\n focusStack.push(element);\n}\n\n/**\n * Pop the last element from the focus stack.\n */\nexport function popFocusStack(): HTMLElement | undefined {\n return focusStack.pop();\n}\n\n/**\n * Get the current focus stack length.\n */\nexport function getFocusStackLength(): number {\n return focusStack.length;\n}\n\n/**\n * Clear the entire focus stack.\n */\nexport function clearFocusStack(): void {\n focusStack.length = 0;\n}\n\n/**\n * Gets the active element, accounting for shadow DOM.\n */\nfunction getActiveElement(doc: Document): HTMLElement | null {\n let activeElement = doc.activeElement as HTMLElement | null;\n while (activeElement?.shadowRoot?.activeElement) {\n activeElement = activeElement.shadowRoot.activeElement as HTMLElement;\n }\n return activeElement;\n}\n\n/**\n * Checks if an element is still valid for focus restoration.\n */\nfunction isValidForRestore(element: HTMLElement | null): boolean {\n if (!element) return false;\n if (!document.body.contains(element)) return false;\n if (element.hasAttribute(\"disabled\")) return false;\n if (element.getAttribute(\"aria-disabled\") === \"true\") return false;\n if (element.getAttribute(\"aria-hidden\") === \"true\") return false;\n return true;\n}\n\n/**\n * Attempts to restore focus with retries.\n */\nfunction tryRestoreFocus(\n element: HTMLElement | null,\n options: Required<\n Pick<\n FocusRestoreOptions,\n \"maxRetries\" | \"retryDelay\" | \"preventScroll\" | \"onRestore\" | \"onRestoreFailed\"\n >\n >,\n): void {\n const { maxRetries, retryDelay, preventScroll, onRestore, onRestoreFailed } = options;\n let attempts = 0;\n\n const attempt = () => {\n if (!element) {\n onRestoreFailed?.();\n return;\n }\n\n if (isValidForRestore(element)) {\n if (preventScroll) {\n focusSafely(element);\n } else {\n element.focus();\n }\n onRestore?.(element);\n return;\n }\n\n attempts++;\n if (attempts < maxRetries) {\n setTimeout(attempt, retryDelay);\n } else {\n onRestoreFailed?.();\n }\n };\n\n // Use requestAnimationFrame for the first attempt to ensure DOM is ready\n requestAnimationFrame(attempt);\n}\n\n/**\n * Creates a focus restoration manager.\n *\n * This hook saves the currently focused element when mounted and provides\n * methods to restore focus later, with retry logic for reliability.\n *\n * @example\n * ```tsx\n * function Modal(props) {\n * const focusRestore = createFocusRestore({\n * restoreOnUnmount: true,\n * onRestore: () => console.log('Focus restored'),\n * });\n *\n * return (\n * <div role=\"dialog\">\n * {props.children}\n * <button onClick={() => focusRestore.restore()}>\n * Close\n * </button>\n * </div>\n * );\n * }\n * ```\n *\n * @example\n * ```tsx\n * // Manual focus management\n * function Dropdown() {\n * const focusRestore = createFocusRestore({ restoreOnUnmount: false });\n *\n * const onOpen = () => {\n * focusRestore.saveCurrentFocus();\n * // Focus dropdown content\n * };\n *\n * const onClose = () => {\n * focusRestore.restore();\n * };\n *\n * return <div>...</div>;\n * }\n * ```\n */\nexport function createFocusRestore(options: FocusRestoreOptions = {}): FocusRestoreResult {\n const {\n restoreOnUnmount = true,\n maxRetries = 3,\n retryDelay = 50,\n onRestore,\n onRestoreFailed,\n preventScroll = true,\n } = options;\n\n // During SSR, return no-op functions\n if (isServer) {\n return {\n restore: () => false,\n getSavedElement: () => null,\n saveCurrentFocus: () => {},\n clear: () => {},\n };\n }\n\n let savedElement: HTMLElement | null = null;\n\n // Save focus on mount\n onMount(() => {\n saveCurrentFocus();\n });\n\n // Restore focus on cleanup\n onCleanup(() => {\n if (restoreOnUnmount && savedElement) {\n tryRestoreFocus(savedElement, {\n maxRetries,\n retryDelay,\n preventScroll,\n onRestore: onRestore ?? (() => {}),\n onRestoreFailed: onRestoreFailed ?? (() => {}),\n });\n }\n });\n\n function saveCurrentFocus(): void {\n const doc = typeof document !== \"undefined\" ? document : null;\n if (!doc) return;\n\n const active = getActiveElement(doc);\n if (active && active !== doc.body) {\n savedElement = active;\n pushFocusStack(active);\n }\n }\n\n function restore(): boolean {\n if (!savedElement) return false;\n\n if (isValidForRestore(savedElement)) {\n if (preventScroll) {\n focusSafely(savedElement);\n } else {\n savedElement.focus();\n }\n onRestore?.(savedElement);\n return true;\n }\n\n // Try the focus stack\n while (focusStack.length > 0) {\n const stackElement = popFocusStack();\n if (stackElement && isValidForRestore(stackElement)) {\n if (preventScroll) {\n focusSafely(stackElement);\n } else {\n stackElement.focus();\n }\n onRestore?.(stackElement);\n return true;\n }\n }\n\n onRestoreFailed?.();\n return false;\n }\n\n function getSavedElement(): HTMLElement | null {\n return savedElement;\n }\n\n function clear(): void {\n savedElement = null;\n }\n\n return {\n restore,\n getSavedElement,\n saveCurrentFocus,\n clear,\n };\n}\n","/**\n * Virtual focus management for solidaria\n *\n * Provides virtual focus for large collections where tracking DOM focus\n * on every item is impractical. Instead, a single element receives real\n * focus while aria-activedescendant indicates the virtually focused item.\n *\n * This is commonly used in:\n * - Virtualized lists (where not all items are in the DOM)\n * - Large trees\n * - Autocomplete/combobox suggestions\n * - Grid/table navigation\n */\n\nimport { type Accessor, createSignal, createEffect, onCleanup } from \"solid-js\";\nimport { isServer } from \"solid-js/web\";\n\nexport interface VirtualFocusOptions<T> {\n /**\n * The items in the collection.\n */\n items: Accessor<T[]>;\n /**\n * Function to get a unique key for each item.\n */\n getKey: (item: T) => string;\n /**\n * Function to check if an item is disabled.\n */\n isDisabled?: (item: T) => boolean;\n /**\n * Initial focused key.\n */\n defaultFocusedKey?: string;\n /**\n * Controlled focused key.\n */\n focusedKey?: Accessor<string | null>;\n /**\n * Callback when focused key changes.\n */\n onFocusChange?: (key: string | null) => void;\n /**\n * Whether to wrap focus at the edges.\n * @default true\n */\n wrap?: boolean;\n /**\n * Whether to loop through disabled items.\n * @default false\n */\n skipDisabled?: boolean;\n /**\n * Orientation for keyboard navigation.\n * @default 'vertical'\n */\n orientation?: \"horizontal\" | \"vertical\" | \"both\";\n}\n\nexport interface VirtualFocusResult<T> {\n /**\n * The currently focused key.\n */\n focusedKey: Accessor<string | null>;\n /**\n * The currently focused item (if any).\n */\n focusedItem: Accessor<T | null>;\n /**\n * Set the focused key.\n */\n setFocusedKey: (key: string | null) => void;\n /**\n * Move focus to the next item.\n */\n focusNext: () => void;\n /**\n * Move focus to the previous item.\n */\n focusPrevious: () => void;\n /**\n * Move focus to the first item.\n */\n focusFirst: () => void;\n /**\n * Move focus to the last item.\n */\n focusLast: () => void;\n /**\n * Move focus by a page (for large lists).\n */\n focusPageDown: (pageSize?: number) => void;\n /**\n * Move focus up by a page (for large lists).\n */\n focusPageUp: (pageSize?: number) => void;\n /**\n * Check if a key is the currently focused key.\n */\n isFocused: (key: string) => boolean;\n /**\n * Props to spread on the container element.\n */\n containerProps: {\n \"aria-activedescendant\": Accessor<string | undefined>;\n onKeyDown: (e: KeyboardEvent) => void;\n };\n /**\n * Get props for an item element.\n */\n getItemProps: (key: string) => {\n id: string;\n \"aria-selected\"?: boolean;\n };\n}\n\nconst DEFAULT_PAGE_SIZE = 10;\n\n/**\n * Creates virtual focus management for a collection.\n *\n * Virtual focus uses aria-activedescendant to indicate which item is\n * \"focused\" while keeping real DOM focus on a container element. This\n * is more performant for large collections and required for virtualized\n * lists where items may not be in the DOM.\n *\n * @example\n * ```tsx\n * function Listbox(props) {\n * const virtualFocus = createVirtualFocus({\n * items: () => props.items,\n * getKey: (item) => item.id,\n * isDisabled: (item) => item.disabled,\n * });\n *\n * return (\n * <ul\n * role=\"listbox\"\n * tabIndex={0}\n * aria-activedescendant={virtualFocus.containerProps['aria-activedescendant']()}\n * onKeyDown={virtualFocus.containerProps.onKeyDown}\n * >\n * <For each={props.items}>\n * {(item) => (\n * <li\n * {...virtualFocus.getItemProps(item.id)}\n * role=\"option\"\n * aria-selected={virtualFocus.isFocused(item.id)}\n * >\n * {item.name}\n * </li>\n * )}\n * </For>\n * </ul>\n * );\n * }\n * ```\n *\n * @example\n * ```tsx\n * // With controlled focus\n * function ControlledListbox() {\n * const [focusedKey, setFocusedKey] = createSignal<string | null>(null);\n *\n * const virtualFocus = createVirtualFocus({\n * items: () => items,\n * getKey: (item) => item.id,\n * focusedKey: focusedKey,\n * onFocusChange: setFocusedKey,\n * });\n *\n * return <ul>...</ul>;\n * }\n * ```\n */\nexport function createVirtualFocus<T>(options: VirtualFocusOptions<T>): VirtualFocusResult<T> {\n const {\n items,\n getKey,\n isDisabled = () => false,\n defaultFocusedKey,\n focusedKey: controlledFocusedKey,\n onFocusChange,\n wrap = true,\n skipDisabled = true,\n orientation = \"vertical\",\n } = options;\n\n // During SSR, return minimal implementation\n if (isServer) {\n const emptyAccessor = () => null;\n return {\n focusedKey: emptyAccessor,\n focusedItem: emptyAccessor,\n setFocusedKey: () => {},\n focusNext: () => {},\n focusPrevious: () => {},\n focusFirst: () => {},\n focusLast: () => {},\n focusPageDown: () => {},\n focusPageUp: () => {},\n isFocused: () => false,\n containerProps: {\n \"aria-activedescendant\": () => undefined,\n onKeyDown: () => {},\n },\n getItemProps: (key: string) => ({ id: `item-${key}` }),\n };\n }\n\n // Internal state for uncontrolled mode\n const [internalKey, setInternalKey] = createSignal<string | null>(defaultFocusedKey ?? null);\n\n // Use controlled or uncontrolled value\n const focusedKey = controlledFocusedKey ?? internalKey;\n\n const setFocusedKey = (key: string | null) => {\n if (controlledFocusedKey) {\n onFocusChange?.(key);\n } else {\n setInternalKey(key);\n onFocusChange?.(key);\n }\n };\n\n // Get focused item\n const focusedItem = (): T | null => {\n const key = focusedKey();\n if (!key) return null;\n return items().find((item) => getKey(item) === key) ?? null;\n };\n\n // Get valid items (not disabled if skipDisabled is true)\n const getValidItems = (): T[] => {\n if (!skipDisabled) return items();\n return items().filter((item) => !isDisabled(item));\n };\n\n // Get index of key in valid items\n const getKeyIndex = (key: string | null): number => {\n if (!key) return -1;\n const validItems = getValidItems();\n return validItems.findIndex((item) => getKey(item) === key);\n };\n\n // Focus by index\n const focusByIndex = (index: number): void => {\n const validItems = getValidItems();\n if (validItems.length === 0) return;\n\n let targetIndex = index;\n\n if (wrap) {\n targetIndex = ((index % validItems.length) + validItems.length) % validItems.length;\n } else {\n targetIndex = Math.max(0, Math.min(index, validItems.length - 1));\n }\n\n const item = validItems[targetIndex];\n if (item) {\n setFocusedKey(getKey(item));\n }\n };\n\n const focusNext = (): void => {\n const currentIndex = getKeyIndex(focusedKey());\n focusByIndex(currentIndex + 1);\n };\n\n const focusPrevious = (): void => {\n const currentIndex = getKeyIndex(focusedKey());\n if (currentIndex === -1) {\n focusByIndex(getValidItems().length - 1);\n } else {\n focusByIndex(currentIndex - 1);\n }\n };\n\n const focusFirst = (): void => {\n focusByIndex(0);\n };\n\n const focusLast = (): void => {\n focusByIndex(getValidItems().length - 1);\n };\n\n const focusPageDown = (pageSize: number = DEFAULT_PAGE_SIZE): void => {\n const currentIndex = getKeyIndex(focusedKey());\n focusByIndex(currentIndex + pageSize);\n };\n\n const focusPageUp = (pageSize: number = DEFAULT_PAGE_SIZE): void => {\n const currentIndex = getKeyIndex(focusedKey());\n if (currentIndex === -1) {\n focusByIndex(getValidItems().length - 1);\n } else {\n focusByIndex(currentIndex - pageSize);\n }\n };\n\n const isFocused = (key: string): boolean => {\n return focusedKey() === key;\n };\n\n // Keyboard handler\n const onKeyDown = (e: KeyboardEvent): void => {\n const isVertical = orientation === \"vertical\" || orientation === \"both\";\n const isHorizontal = orientation === \"horizontal\" || orientation === \"both\";\n\n switch (e.key) {\n case \"ArrowDown\":\n if (isVertical) {\n e.preventDefault();\n focusNext();\n }\n break;\n case \"ArrowUp\":\n if (isVertical) {\n e.preventDefault();\n focusPrevious();\n }\n break;\n case \"ArrowRight\":\n if (isHorizontal) {\n e.preventDefault();\n focusNext();\n }\n break;\n case \"ArrowLeft\":\n if (isHorizontal) {\n e.preventDefault();\n focusPrevious();\n }\n break;\n case \"Home\":\n e.preventDefault();\n focusFirst();\n break;\n case \"End\":\n e.preventDefault();\n focusLast();\n break;\n case \"PageDown\":\n e.preventDefault();\n focusPageDown();\n break;\n case \"PageUp\":\n e.preventDefault();\n focusPageUp();\n break;\n }\n };\n\n const containerProps = {\n \"aria-activedescendant\": () => {\n const key = focusedKey();\n return key ? `item-${key}` : undefined;\n },\n onKeyDown,\n };\n\n const getItemProps = (key: string) => ({\n id: `item-${key}`,\n });\n\n return {\n focusedKey,\n focusedItem,\n setFocusedKey,\n focusNext,\n focusPrevious,\n focusFirst,\n focusLast,\n focusPageDown,\n focusPageUp,\n isFocused,\n containerProps,\n getItemProps,\n };\n}\n","/**\n * Auto-focus management for solidaria\n *\n * Provides priority-based auto-focus with deferred execution\n * and conflict resolution for multiple auto-focus elements.\n */\n\nimport { createEffect, onCleanup, onMount } from \"solid-js\";\nimport { isServer } from \"solid-js/web\";\nimport { focusSafely } from \"../utils/focus\";\n\nexport interface AutoFocusOptions {\n /**\n * Whether auto-focus is enabled.\n * @default true\n */\n isEnabled?: boolean;\n /**\n * Priority level (higher = more important).\n * When multiple elements request auto-focus, the highest priority wins.\n * @default 0\n */\n priority?: number;\n /**\n * Delay in milliseconds before focusing.\n * Useful for animations or transitions.\n * @default 0\n */\n delay?: number;\n /**\n * Whether to focus even if another element is already focused.\n * @default false\n */\n force?: boolean;\n /**\n * Whether to prevent scrolling when focusing.\n * @default true\n */\n preventScroll?: boolean;\n /**\n * Callback when focus is applied.\n */\n onFocus?: (element: HTMLElement) => void;\n /**\n * Callback when focus is skipped (due to lower priority or other reasons).\n */\n onSkip?: () => void;\n}\n\nexport interface AutoFocusResult {\n /**\n * Manually trigger the auto-focus.\n */\n focus: () => void;\n /**\n * Cancel any pending auto-focus.\n */\n cancel: () => void;\n}\n\ninterface QueuedFocus {\n ref: () => HTMLElement | null | undefined;\n priority: number;\n delay: number;\n force: boolean;\n preventScroll: boolean;\n onFocus?: (element: HTMLElement) => void;\n onSkip?: () => void;\n}\n\n// Global queue for managing auto-focus requests\nlet autoFocusQueue: QueuedFocus[] = [];\nlet processingTimeout: ReturnType<typeof setTimeout> | null = null;\n\n/**\n * Process the auto-focus queue and focus the highest priority element.\n */\nfunction processAutoFocusQueue(): void {\n if (processingTimeout) {\n clearTimeout(processingTimeout);\n processingTimeout = null;\n }\n\n if (autoFocusQueue.length === 0) return;\n\n // Sort by priority (highest first)\n autoFocusQueue.sort((a, b) => b.priority - a.priority);\n\n // Get the highest priority item\n const winner = autoFocusQueue[0];\n const losers = autoFocusQueue.slice(1);\n\n // Clear the queue\n autoFocusQueue = [];\n\n // Notify losers\n for (const loser of losers) {\n loser.onSkip?.();\n }\n\n // Focus the winner\n const element = winner.ref();\n if (!element) {\n winner.onSkip?.();\n return;\n }\n\n // Check if we should focus\n const activeElement = document.activeElement;\n const shouldFocus =\n winner.force ||\n !activeElement ||\n activeElement === document.body ||\n activeElement === document.documentElement;\n\n if (!shouldFocus) {\n winner.onSkip?.();\n return;\n }\n\n // Apply focus with optional delay\n if (winner.delay > 0) {\n setTimeout(() => {\n const el = winner.ref();\n if (el && document.body.contains(el)) {\n if (winner.preventScroll) {\n focusSafely(el);\n } else {\n el.focus();\n }\n winner.onFocus?.(el);\n }\n }, winner.delay);\n } else {\n if (winner.preventScroll) {\n focusSafely(element);\n } else {\n element.focus();\n }\n winner.onFocus?.(element);\n }\n}\n\n/**\n * Queue an element for auto-focus.\n */\nfunction queueAutoFocus(item: QueuedFocus): void {\n autoFocusQueue.push(item);\n\n // Schedule processing on next frame to allow all components to register\n if (processingTimeout === null) {\n processingTimeout = setTimeout(processAutoFocusQueue, 0);\n }\n}\n\n/**\n * Remove an item from the auto-focus queue.\n */\nfunction removeFromQueue(ref: () => HTMLElement | null | undefined): void {\n autoFocusQueue = autoFocusQueue.filter((item) => item.ref !== ref);\n}\n\n/**\n * Creates auto-focus behavior for an element.\n *\n * This hook registers the element for auto-focus when mounted. If multiple\n * elements request auto-focus, the one with the highest priority wins.\n *\n * @param ref - Accessor for the element to focus\n * @param options - Auto-focus options\n *\n * @example\n * ```tsx\n * function Dialog(props) {\n * let contentRef: HTMLDivElement | undefined;\n *\n * createAutoFocus(() => contentRef, {\n * priority: 10, // High priority for dialogs\n * onFocus: () => console.log('Dialog focused'),\n * });\n *\n * return (\n * <div ref={contentRef} tabIndex={-1}>\n * {props.children}\n * </div>\n * );\n * }\n * ```\n *\n * @example\n * ```tsx\n * // With delay for animations\n * function AnimatedPanel() {\n * let panelRef: HTMLDivElement | undefined;\n *\n * createAutoFocus(() => panelRef, {\n * delay: 300, // Wait for animation\n * });\n *\n * return <div ref={panelRef} class=\"animated-panel\">...</div>;\n * }\n * ```\n *\n * @example\n * ```tsx\n * // Conditional auto-focus\n * function Input(props) {\n * let inputRef: HTMLInputElement | undefined;\n *\n * createAutoFocus(() => inputRef, {\n * isEnabled: props.autoFocus,\n * });\n *\n * return <input ref={inputRef} />;\n * }\n * ```\n */\nexport function createAutoFocus(\n ref: () => HTMLElement | null | undefined,\n options: AutoFocusOptions = {},\n): AutoFocusResult {\n const {\n isEnabled = true,\n priority = 0,\n delay = 0,\n force = false,\n preventScroll = true,\n onFocus,\n onSkip,\n } = options;\n\n // During SSR, return no-op functions\n if (isServer) {\n return {\n focus: () => {},\n cancel: () => {},\n };\n }\n\n let canceled = false;\n\n // Queue auto-focus on mount\n onMount(() => {\n if (!isEnabled || canceled) return;\n\n queueAutoFocus({\n ref,\n priority,\n delay,\n force,\n preventScroll,\n onFocus,\n onSkip,\n });\n });\n\n // Remove from queue on cleanup\n onCleanup(() => {\n removeFromQueue(ref);\n });\n\n const focus = (): void => {\n if (canceled) return;\n\n const element = ref();\n if (!element) return;\n\n if (preventScroll) {\n focusSafely(element);\n } else {\n element.focus();\n }\n onFocus?.(element);\n };\n\n const cancel = (): void => {\n canceled = true;\n removeFromQueue(ref);\n };\n\n return {\n focus,\n cancel,\n };\n}\n\n/**\n * Clears all pending auto-focus requests.\n * Useful for testing or when navigating away.\n */\nexport function clearAutoFocusQueue(): void {\n if (processingTimeout) {\n clearTimeout(processingTimeout);\n processingTimeout = null;\n }\n autoFocusQueue = [];\n}\n\n/**\n * Gets the current auto-focus queue length.\n * Useful for debugging.\n */\nexport function getAutoFocusQueueLength(): number {\n return autoFocusQueue.length;\n}\n"],"mappings":";;;;;;;;;AAgEA,MAAMoC,oBAAoBpC,cAA6C,IAAI;;;;;;AAO3E,SAAgBqC,kBAA4C;CAC1D,OAAOpC,WAAWmC,iBAAiB,CAAC,EAAEF;AACxC;;;;AAKA,SAASI,qBAAqBC,OAAkBjB,WAAW,OAAsB;CAC/E,MAAMkB,WAA0B,CAAA;CAChC,MAAMC,SAASnB,WAAWV,aAAaD;CAEvC,KAAK,MAAM+B,gBAAgBH,OAAO;EAEhC,IAAIE,OAAOC,YAAY,GACrBF,SAASG,KAAKD,YAA2B;EAI3C,MAAME,cAAcF,aAAaG,iBAAiB,GAAG;EACrD,KAAK,IAAIC,IAAI,GAAGA,IAAIF,YAAYG,QAAQD,KAAK;GAC3C,MAAME,KAAKJ,YAAYE;GACvB,IAAIL,OAAOO,EAAE,GACXR,SAASG,KAAKK,EAAiB;EAEnC;CACF;CAEA,OAAOR;AACT;;;;AAKA,SAASS,iBAAiBC,SAAyBX,OAA2B;CAC5E,IAAI,CAACW,SAAS,OAAO;CACrB,OAAOX,MAAMY,MAAM1B,SAASA,KAAK2B,SAASF,OAAO,CAAC;AACpD;;;;AAKA,SAASG,mBAAiBC,KAA+B;CACvD,IAAIE,gBAAgBF,IAAIE;CACxB,OAAOA,eAAeC,YAAYD,eAChCA,gBAAgBA,cAAcC,WAAWD;CAE3C,OAAOA;AACT;;;;;;;;;AAsBA,IAAMM,iBAAN,MAAqB;CACnBC;CACA,0BAAkB,IAAIE,IAAkC;CAExDC,cAAc;EACZ,KAAKH,OAAO;GAAE5B,UAAU;GAAMyB,QAAQ;GAAM7C,0BAAU,IAAI8C,IAAI;EAAE;EAChE,KAAKG,QAAQG,IAAI,MAAM,KAAKJ,IAAI;CAClC;CAEAK,YAAYjC,UAAoD;EAC9D,OAAO,KAAK6B,QAAQK,IAAIlC,QAAQ;CAClC;CAEAmC,YAAYnC,UAAoByB,QAAwB;EACtD,MAAMW,aAAa,KAAKP,QAAQK,IAAIT,MAAM,KAAK,KAAKG;EACpD,MAAMtC,OAA2B;GAAEU;GAAUyB,QAAQW;GAAYxD,0BAAU,IAAI8C,IAAI;EAAE;EACrFU,WAAWxD,SAASyD,IAAI/C,IAAI;EAC5B,KAAKuC,QAAQG,IAAIhC,UAAUV,IAAI;CACjC;CAEAgD,eAAetC,UAA0B;EAEvC,IAAIA,aAAa,MAAM;EACvB,MAAMV,OAAO,KAAKuC,QAAQK,IAAIlC,QAAQ;EACtC,IAAI,CAACV,MAAM;EACX,MAAM8C,aAAa9C,KAAKmC;EACxB,IAAIW,YAAY;GACdA,WAAWxD,SAAS2D,OAAOjD,IAAI;GAE/B,KAAK,MAAMkD,SAASlD,KAAKV,UAAU;IACjC4D,MAAMf,SAASW;IACfA,WAAWxD,SAASyD,IAAIG,KAAK;GAC/B;EACF;EACA,KAAKX,QAAQU,OAAOvC,QAAQ;CAC9B;CAGA,CAACyC,SAASnD,OAA2B,KAAKsC,MAAqC;EAC7E,IAAItC,KAAKU,YAAY,MACnB,MAAMV;EAER,KAAK,MAAMkD,SAASlD,KAAKV,UACvB,OAAO,KAAK6D,SAASD,KAAK;CAE9B;AACF;AAEA,MAAMG,iBAAiB,IAAIhB,eAAe;;;;;;;;;AAU1C,SAASiB,sBAAsB7B,SAAkBX,QAAkB,MAAe;CAEhF,IAAIW,mBAAmBlC,WAAWkC,QAAQ8B,QAAQ,6BAA6B,GAC7E,OAAO;CAGT,KAAK,MAAMvD,QAAQqD,eAAeF,SAASE,eAAeV,YAAY7B,KAAK,CAAC,GAC1E,IAAId,KAAKU,YAAYc,iBAAiBC,SAASzB,KAAKU,SAAS,CAAC,GAC5D,OAAO;CAIX,OAAO;AACT;;;;;;;;AASA,MAAa8C,cAAgDC,UAAU;CACrE,IAAIzE,UACF,OAAA0E,WAAUD,MAAMnE,QAAQ;CAG1B,IAAIqE;CACJ,IAAIE;CACJ,MAAM,CAACC,eAAeC,oBAAoBjF,aAAwB,CAAA,CAAE;CAKpE,MAAMkF,iBAAiBxF,WAAWmC,iBAAiB,CAAC,EAAED,YAAY;CAGlE,IAAIuD,gBAAgC;CAEpC,MAAMC,wBAAwBzC,SAAyBI,QAAkC;EACvF,IAAI,CAACJ,WAAWA,YAAYI,IAAIsC,QAAQ1C,YAAYI,IAAIuC,iBACtD,OAAO;EAET,OAAO3C;CACT;CAGA,MAAMhB,eAA6B;EACjCP,UAAUC,OAAO,CAAC,GAAG;GACnB,MAAMW,QAAQgD,cAAc;GAC5B,IAAIhD,MAAMQ,WAAW,GAAG,OAAO;GAE/B,MAAM,EAAE1B,MAAMC,WAAW,MAAMC,OAAO,OAAOC,WAAWI;GACxD,MAAMY,WAAWF,qBAAqBC,OAAOjB,QAAQ,CAAC,CAACmB,QAAQO,OAAO,CAACxB,UAAUA,OAAOwB,EAAE,CAAC;GAC3F,MAAMM,MAAM5C,iBAAiB6B,MAAM,EAAE;GACrC,MAAMuD,UAAUzE,QAAQgC,mBAAiBC,GAAG;GAE5C,IAAI,CAACwC,WAAWtD,SAASO,WAAW,GAAG,OAAO;GAG9C,IAAIkD,YADiBzD,SAASwD,QAAQF,OACtBC,IAAe;GAE/B,IAAIE,aAAazD,SAASO,QACxB,IAAIxB,MACF0E,YAAY;QAEZ,OAAO;GAIX,MAAMC,cAAc1D,SAASyD;GAC7B,IAAIC,aAAa;IACfrF,YAAYqF,WAAW;IACvB,OAAOA;GACT;GAEA,OAAO;EACT;EAEApE,cAAcF,OAAO,CAAC,GAAG;GACvB,MAAMW,QAAQgD,cAAc;GAC5B,IAAIhD,MAAMQ,WAAW,GAAG,OAAO;GAE/B,MAAM,EAAE1B,MAAMC,WAAW,MAAMC,OAAO,OAAOC,WAAWI;GACxD,MAAMY,WAAWF,qBAAqBC,OAAOjB,QAAQ,CAAC,CAACmB,QAAQO,OAAO,CAACxB,UAAUA,OAAOwB,EAAE,CAAC;GAC3F,MAAMM,MAAM5C,iBAAiB6B,MAAM,EAAE;GACrC,MAAMuD,UAAUzE,QAAQgC,mBAAiBC,GAAG;GAE5C,IAAI,CAACwC,WAAWtD,SAASO,WAAW,GAAG,OAAO;GAG9C,IAAIoD,YADiB3D,SAASwD,QAAQF,OACtBC,IAAe;GAE/B,IAAII,YAAY,GACd,IAAI5E,MACF4E,YAAY3D,SAASO,SAAS;QAE9B,OAAO;GAIX,MAAMqD,cAAc5D,SAAS2D;GAC7B,IAAIC,aAAa;IACfvF,YAAYuF,WAAW;IACvB,OAAOA;GACT;GAEA,OAAO;EACT;EAEArE,WAAWH,OAAO,CAAC,GAAG;GACpB,MAAMW,QAAQgD,cAAc;GAC5B,IAAIhD,MAAMQ,WAAW,GAAG,OAAO;GAE/B,MAAM,EAAEzB,WAAW,MAAME,WAAWI;GACpC,MAAMY,WAAWF,qBAAqBC,OAAOjB,QAAQ,CAAC,CAACmB,QAAQO,OAAO,CAACxB,UAAUA,OAAOwB,EAAE,CAAC;GAE3F,IAAIR,SAASO,SAAS,GAAG;IACvBlC,YAAY2B,SAAS,EAAE;IACvB,OAAOA,SAAS;GAClB;GAEA,OAAO;EACT;EAEAR,UAAUJ,OAAO,CAAC,GAAG;GACnB,MAAMW,QAAQgD,cAAc;GAC5B,IAAIhD,MAAMQ,WAAW,GAAG,OAAO;GAE/B,MAAM,EAAEzB,WAAW,MAAME,WAAWI;GACpC,MAAMY,WAAWF,qBAAqBC,OAAOjB,QAAQ,CAAC,CAACmB,QAAQO,OAAO,CAACxB,UAAUA,OAAOwB,EAAE,CAAC;GAE3F,IAAIR,SAASO,SAAS,GAAG;IACvB,MAAMsD,cAAc7D,SAASA,SAASO,SAAS;IAC/ClC,YAAYwF,WAAW;IACvB,OAAOA;GACT;GAEA,OAAO;EACT;CACF;CAGA7F,cAAc;EACZ,IAAI,CAAC4E,YAAY,CAACE,QAAQ;EAE1B,MAAMgB,QAAmB,CAAA;EACzB,IAAI7E,OAAO2D,SAASmB;EACpB,OAAO9E,QAAQA,SAAS6D,QAAQ;GAC9B,IAAI7D,KAAK+E,aAAaC,KAAKC,cACzBJ,MAAM3D,KAAKlB,IAAe;GAE5BA,OAAOA,KAAK8E;EACd;EACAf,iBAAiBc,KAAK;CACxB,CAAC;CAKD9F,cAAc;EACZsE,eAAeR,YAAYiB,eAAeE,cAAc;CAC1D,CAAC;CACDtF,gBAAgB;EACd2E,eAAeL,eAAec,aAAa;CAC7C,CAAC;CAGD/E,cAAc;EACZ,IAAI,CAAC0E,MAAMhE,cAAc;EAGzB,MAAMyF,WAAWvB,WAAW1E,iBAAiB0E,QAAQ,IAAIwB;EACzD,MAAMC,cAAcxD,mBAAiBsD,QAAQ;EAC7C,MAAMG,YAAYzD,mBAAiBuD,QAAQ;EAG3C,IACED,aAAaC,YACbA,SAASpD,yBAAyBuD,qBAClCH,SAASpD,cAAcwD,oBAAoBL,YAC3CE,eACAA,gBAAgBF,SAASf,MACzB;GACAF,gBAAgBC,qBAAqBkB,aAAaF,QAAQ;GAC1D;EACF;EAEAjB,gBAAgBC,qBAAqBmB,WAAWF,QAAQ;CAC1D,CAAC;CAGD1G,mBAAmB;EACjB,IAAI,CAACgF,MAAM/D,WAAW;EAEtB,MAAMoB,QAAQgD,cAAc;EAC5B,IAAIhD,MAAMQ,WAAW,GAAG;EAMxB,IAAI,CAACE,iBAHiBI,mBADV3C,iBAAiB6B,MAAM,EACIe,CAGjBE,GAAejB,KAAK,GACxCL,aAAaH,WAAW;CAE5B,CAAC;CAGD7B,mBAAmB;EACjB,IAAI,CAACgF,MAAMjE,SAAS;EAEpB,MAAMsB,QAAQgD,cAAc;EAC5B,IAAIhD,MAAMQ,WAAW,GAAG;EAExB,MAAMO,MAAM5C,iBAAiB6B,MAAM,EAAE;EACrC,IAAI0E,cAA8B;EAElC,MAAMC,aAAaC,MAAqB;GACtC,IAAIA,EAAEE,QAAQ,SAASF,EAAEG,UAAUH,EAAEI,WAAWJ,EAAEK,SAChD;GAGF,MAAMjF,QAAQgD,cAAc;GAC5B,MAAM/B,gBAAgBH,mBAAiBC,GAAG;GAC1C,IAAI,CAACL,iBAAiBO,eAAejB,KAAK,GACxC;GAGF,MAAMC,WAAWF,qBAAqBC,OAAO,IAAI;GACjD,IAAIC,SAASO,WAAW,GAAG;GAE3B,MAAM0E,eAAejF,SAAS;GAC9B,MAAM6D,cAAc7D,SAASA,SAASO,SAAS;GAE/C,IAAIoE,EAAEO,YAAYlE,kBAAkBiE,cAAc;IAChDN,EAAEQ,eAAe;IACjB9G,YAAYwF,WAAW;GACzB,OAAO,IAAI,CAACc,EAAEO,YAAYlE,kBAAkB6C,aAAa;IACvDc,EAAEQ,eAAe;IACjB9G,YAAY4G,YAAY;GAC1B;EACF;EAEA,MAAMG,aAAaT,MAAkB;GACnC,MAAM5E,QAAQgD,cAAc;GAC5B,MAAMuC,SAASX,EAAEW;GAEjB,IAAI7E,iBAAiB6E,QAAQvF,KAAK,GAChC0E,cAAca;QACT,IAAI/C,sBAAsB+C,QAAQvC,aAAa,GAKpD0B,cAAca;QACT,IAAIb,aAETpG,YAAYoG,WAA0B;QAGtC/E,aAAaH,WAAW;EAE5B;EAEA,IAAIgG,aAA4B;EAEhC,MAAMC,cAAcb,MAAkB;GACpC,MAAMW,SAASX,EAAEW;GACjB,IAAI,CAAC7E,iBAAiB6E,QAAQvC,cAAc,CAAC,GAAG;GAKhD,MAAM0C,MAAM3E,IAAI4E,eAAeC;GAC/B,IAAIJ,cAAc,MAAME,IAAIG,qBAAqBL,UAAU;GAC3DA,aAAaE,IAAII,4BAA4B;IAC3CN,aAAa;IACb,MAAMxF,QAAQgD,cAAc;IAC5B,MAAM/B,gBAAgBH,mBAAiBC,GAAG;IAC1C,IACEE,kBACCP,iBAAiBO,eAAejB,KAAK,KACpCwC,sBAAsBvB,eAAe+B,aAAa,IAEpD;IAGF,IAAIjC,IAAIsC,KAAKxC,SAAS0E,MAAM,GAAG;KAC7Bb,cAAca;KACdjH,YAAYiH,MAAqB;IACnC,OACE5F,aAAaH,WAAW;GAE5B,CAAC;EACH;EAEAuB,IAAIgF,iBAAiB,WAAWpB,WAAW,IAAI;EAC/C5D,IAAIgF,iBAAiB,WAAWV,WAAW,IAAI;EAC/CtE,IAAIgF,iBAAiB,YAAYN,YAAY,IAAI;EAEjD7H,gBAAgB;GACdmD,IAAIiF,oBAAoB,WAAWrB,WAAW,IAAI;GAClD5D,IAAIiF,oBAAoB,WAAWX,WAAW,IAAI;GAClDtE,IAAIiF,oBAAoB,YAAYP,YAAY,IAAI;GACpD,IAAID,cAAc,MAChB,CAACzE,IAAI4E,eAAeC,OAAAA,CAAQC,qBAAqBL,UAAU;EAE/D,CAAC;CACH,CAAC;CAGD5H,gBAAgB;EACd,IAAI+E,MAAMhE,gBAAgBwE,iBAAkBA,cAA8B8C,OAAO;GAC/E,MAAMlF,MAAM5C,iBAAiBgF,aAAwB;GAIrDuC,CAHY3E,IAAI4E,eAAeC,OAAAA,CAG3BE,4BAA4B;IAC9B,IAAI3C,iBAAiBpC,IAAIsC,KAAKxC,SAASsC,aAAqB,GAC1D,cAA+B8C,MAAM;GAEzC,CAAC;EACH;CACF,CAAC;CAED,OAAAC,gBACGrG,kBAAkBsG,UAAQ;EAACC,OAAO;GAAEzG;GAAcC,UAAUoD;EAAc;EAAC,IAAAxE,WAAA;GAAA,OAAA;WAAA;KAAA,IAAA6H,OAAAC,eAAAC,MAAA;KAAA,IAAAC,QACjC3D;KAAQ,OAAA2D,UAAA,aAAAC,IAAAD,OAAAH,IAAA,IAARxD,WAAQwD;KAAA,OAAAA;IAAA,EAAA,CAAA;IAAAzD,WAChDD,MAAMnE,QAAQ;WAAA;KAAA,IAAAkI,QAAAJ,eAAAK,OAAA;KAAA,IAAAC,SACwB7D;KAAM,OAAA6D,WAAA,aAAAH,IAAAG,QAAAF,KAAA,IAAN3D,SAAM2D;KAAA,OAAAA;IAAA,EAAA,CAAA;GAAA;EAAA;CAAA,CAAA;AAGnD;;;;;;;;;ACndA,MAAM,aAA4B,CAAC;;;;AAKnC,SAAgB,eAAe,SAA4B;CACzD,WAAW,KAAK,OAAO;AACzB;;;;AAKA,SAAgB,gBAAyC;CACvD,OAAO,WAAW,IAAI;AACxB;;;;AAKA,SAAgB,sBAA8B;CAC5C,OAAO,WAAW;AACpB;;;;AAKA,SAAgB,kBAAwB;CACtC,WAAW,SAAS;AACtB;;;;AAKA,SAAS,iBAAiB,KAAmC;CAC3D,IAAI,gBAAgB,IAAI;CACxB,OAAO,eAAe,YAAY,eAChC,gBAAgB,cAAc,WAAW;CAE3C,OAAO;AACT;;;;AAKA,SAAS,kBAAkB,SAAsC;CAC/D,IAAI,CAAC,SAAS,OAAO;CACrB,IAAI,CAAC,SAAS,KAAK,SAAS,OAAO,GAAG,OAAO;CAC7C,IAAI,QAAQ,aAAa,UAAU,GAAG,OAAO;CAC7C,IAAI,QAAQ,aAAa,eAAe,MAAM,QAAQ,OAAO;CAC7D,IAAI,QAAQ,aAAa,aAAa,MAAM,QAAQ,OAAO;CAC3D,OAAO;AACT;;;;AAKA,SAAS,gBACP,SACA,SAMM;CACN,MAAM,EAAE,YAAY,YAAY,eAAe,WAAW,oBAAoB;CAC9E,IAAI,WAAW;CAEf,MAAM,gBAAgB;EACpB,IAAI,CAAC,SAAS;GACZ,kBAAkB;GAClB;EACF;EAEA,IAAI,kBAAkB,OAAO,GAAG;GAC9B,IAAI,eACF,YAAY,OAAO;QAEnB,QAAQ,MAAM;GAEhB,YAAY,OAAO;GACnB;EACF;EAEA;EACA,IAAI,WAAW,YACb,WAAW,SAAS,UAAU;OAE9B,kBAAkB;CAEtB;CAGA,sBAAsB,OAAO;AAC/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8CA,SAAgB,mBAAmB,UAA+B,CAAC,GAAuB;CACxF,MAAM,EACJ,mBAAmB,MACnB,aAAa,GACb,aAAa,IACb,WACA,iBACA,gBAAgB,SACd;CAGJ,IAAI,UACF,OAAO;EACL,eAAe;EACf,uBAAuB;EACvB,wBAAwB,CAAC;EACzB,aAAa,CAAC;CAChB;CAGF,IAAI,eAAmC;CAGvC,cAAc;EACZ,iBAAiB;CACnB,CAAC;CAGD,gBAAgB;EACd,IAAI,oBAAoB,cACtB,gBAAgB,cAAc;GAC5B;GACA;GACA;GACA,WAAW,oBAAoB,CAAC;GAChC,iBAAiB,0BAA0B,CAAC;EAC9C,CAAC;CAEL,CAAC;CAED,SAAS,mBAAyB;EAChC,MAAM,MAAM,OAAO,aAAa,cAAc,WAAW;EACzD,IAAI,CAAC,KAAK;EAEV,MAAM,SAAS,iBAAiB,GAAG;EACnC,IAAI,UAAU,WAAW,IAAI,MAAM;GACjC,eAAe;GACf,eAAe,MAAM;EACvB;CACF;CAEA,SAAS,UAAmB;EAC1B,IAAI,CAAC,cAAc,OAAO;EAE1B,IAAI,kBAAkB,YAAY,GAAG;GACnC,IAAI,eACF,YAAY,YAAY;QAExB,aAAa,MAAM;GAErB,YAAY,YAAY;GACxB,OAAO;EACT;EAGA,OAAO,WAAW,SAAS,GAAG;GAC5B,MAAM,eAAe,cAAc;GACnC,IAAI,gBAAgB,kBAAkB,YAAY,GAAG;IACnD,IAAI,eACF,YAAY,YAAY;SAExB,aAAa,MAAM;IAErB,YAAY,YAAY;IACxB,OAAO;GACT;EACF;EAEA,kBAAkB;EAClB,OAAO;CACT;CAEA,SAAS,kBAAsC;EAC7C,OAAO;CACT;CAEA,SAAS,QAAc;EACrB,eAAe;CACjB;CAEA,OAAO;EACL;EACA;EACA;EACA;CACF;AACF;;;;;;;;;;;;;;;;ACvLA,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2D1B,SAAgB,mBAAsB,SAAwD;CAC5F,MAAM,EACJ,OACA,QACA,mBAAmB,OACnB,mBACA,YAAY,sBACZ,eACA,OAAO,MACP,eAAe,MACf,cAAc,eACZ;CAGJ,IAAI,UAAU;EACZ,MAAM,sBAAsB;EAC5B,OAAO;GACL,YAAY;GACZ,aAAa;GACb,qBAAqB,CAAC;GACtB,iBAAiB,CAAC;GAClB,qBAAqB,CAAC;GACtB,kBAAkB,CAAC;GACnB,iBAAiB,CAAC;GAClB,qBAAqB,CAAC;GACtB,mBAAmB,CAAC;GACpB,iBAAiB;GACjB,gBAAgB;IACd,+BAA+B,KAAA;IAC/B,iBAAiB,CAAC;GACpB;GACA,eAAe,SAAiB,EAAE,IAAI,QAAQ,MAAM;EACtD;CACF;CAGA,MAAM,CAAC,aAAa,kBAAkB,aAA4B,qBAAqB,IAAI;CAG3F,MAAM,aAAa,wBAAwB;CAE3C,MAAM,iBAAiB,QAAuB;EAC5C,IAAI,sBACF,gBAAgB,GAAG;OACd;GACL,eAAe,GAAG;GAClB,gBAAgB,GAAG;EACrB;CACF;CAGA,MAAM,oBAA8B;EAClC,MAAM,MAAM,WAAW;EACvB,IAAI,CAAC,KAAK,OAAO;EACjB,OAAO,MAAM,CAAC,CAAC,MAAM,SAAS,OAAO,IAAI,MAAM,GAAG,KAAK;CACzD;CAGA,MAAM,sBAA2B;EAC/B,IAAI,CAAC,cAAc,OAAO,MAAM;EAChC,OAAO,MAAM,CAAC,CAAC,QAAQ,SAAS,CAAC,WAAW,IAAI,CAAC;CACnD;CAGA,MAAM,eAAe,QAA+B;EAClD,IAAI,CAAC,KAAK,OAAO;EAEjB,OADmB,cACH,CAAC,CAAC,WAAW,SAAS,OAAO,IAAI,MAAM,GAAG;CAC5D;CAGA,MAAM,gBAAgB,UAAwB;EAC5C,MAAM,aAAa,cAAc;EACjC,IAAI,WAAW,WAAW,GAAG;EAE7B,IAAI,cAAc;EAElB,IAAI,MACF,eAAgB,QAAQ,WAAW,SAAU,WAAW,UAAU,WAAW;OAE7E,cAAc,KAAK,IAAI,GAAG,KAAK,IAAI,OAAO,WAAW,SAAS,CAAC,CAAC;EAGlE,MAAM,OAAO,WAAW;EACxB,IAAI,MACF,cAAc,OAAO,IAAI,CAAC;CAE9B;CAEA,MAAM,kBAAwB;EAE5B,aADqB,YAAY,WAAW,CACpB,IAAI,CAAC;CAC/B;CAEA,MAAM,sBAA4B;EAChC,MAAM,eAAe,YAAY,WAAW,CAAC;EAC7C,IAAI,iBAAiB,IACnB,aAAa,cAAc,CAAC,CAAC,SAAS,CAAC;OAEvC,aAAa,eAAe,CAAC;CAEjC;CAEA,MAAM,mBAAyB;EAC7B,aAAa,CAAC;CAChB;CAEA,MAAM,kBAAwB;EAC5B,aAAa,cAAc,CAAC,CAAC,SAAS,CAAC;CACzC;CAEA,MAAM,iBAAiB,WAAmB,sBAA4B;EAEpE,aADqB,YAAY,WAAW,CACpB,IAAI,QAAQ;CACtC;CAEA,MAAM,eAAe,WAAmB,sBAA4B;EAClE,MAAM,eAAe,YAAY,WAAW,CAAC;EAC7C,IAAI,iBAAiB,IACnB,aAAa,cAAc,CAAC,CAAC,SAAS,CAAC;OAEvC,aAAa,eAAe,QAAQ;CAExC;CAEA,MAAM,aAAa,QAAyB;EAC1C,OAAO,WAAW,MAAM;CAC1B;CAGA,MAAM,aAAa,MAA2B;EAC5C,MAAM,aAAa,gBAAgB,cAAc,gBAAgB;EACjE,MAAM,eAAe,gBAAgB,gBAAgB,gBAAgB;EAErE,QAAQ,EAAE,KAAV;GACE,KAAK;IACH,IAAI,YAAY;KACd,EAAE,eAAe;KACjB,UAAU;IACZ;IACA;GACF,KAAK;IACH,IAAI,YAAY;KACd,EAAE,eAAe;KACjB,cAAc;IAChB;IACA;GACF,KAAK;IACH,IAAI,cAAc;KAChB,EAAE,eAAe;KACjB,UAAU;IACZ;IACA;GACF,KAAK;IACH,IAAI,cAAc;KAChB,EAAE,eAAe;KACjB,cAAc;IAChB;IACA;GACF,KAAK;IACH,EAAE,eAAe;IACjB,WAAW;IACX;GACF,KAAK;IACH,EAAE,eAAe;IACjB,UAAU;IACV;GACF,KAAK;IACH,EAAE,eAAe;IACjB,cAAc;IACd;GACF,KAAK;IACH,EAAE,eAAe;IACjB,YAAY;IACZ;EACJ;CACF;CAEA,MAAM,iBAAiB;EACrB,+BAA+B;GAC7B,MAAM,MAAM,WAAW;GACvB,OAAO,MAAM,QAAQ,QAAQ,KAAA;EAC/B;EACA;CACF;CAEA,MAAM,gBAAgB,SAAiB,EACrC,IAAI,QAAQ,MACd;CAEA,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF;;;;;;;;;ACpTA,IAAI,iBAAgC,CAAC;AACrC,IAAI,oBAA0D;;;;AAK9D,SAAS,wBAA8B;CACrC,IAAI,mBAAmB;EACrB,aAAa,iBAAiB;EAC9B,oBAAoB;CACtB;CAEA,IAAI,eAAe,WAAW,GAAG;CAGjC,eAAe,MAAM,GAAG,MAAM,EAAE,WAAW,EAAE,QAAQ;CAGrD,MAAM,SAAS,eAAe;CAC9B,MAAM,SAAS,eAAe,MAAM,CAAC;CAGrC,iBAAiB,CAAC;CAGlB,KAAK,MAAM,SAAS,QAClB,MAAM,SAAS;CAIjB,MAAM,UAAU,OAAO,IAAI;CAC3B,IAAI,CAAC,SAAS;EACZ,OAAO,SAAS;EAChB;CACF;CAGA,MAAM,gBAAgB,SAAS;CAO/B,IAAI,EALF,OAAO,SACP,CAAC,iBACD,kBAAkB,SAAS,QAC3B,kBAAkB,SAAS,kBAEX;EAChB,OAAO,SAAS;EAChB;CACF;CAGA,IAAI,OAAO,QAAQ,GACjB,iBAAiB;EACf,MAAM,KAAK,OAAO,IAAI;EACtB,IAAI,MAAM,SAAS,KAAK,SAAS,EAAE,GAAG;GACpC,IAAI,OAAO,eACT,YAAY,EAAE;QAEd,GAAG,MAAM;GAEX,OAAO,UAAU,EAAE;EACrB;CACF,GAAG,OAAO,KAAK;MACV;EACL,IAAI,OAAO,eACT,YAAY,OAAO;OAEnB,QAAQ,MAAM;EAEhB,OAAO,UAAU,OAAO;CAC1B;AACF;;;;AAKA,SAAS,eAAe,MAAyB;CAC/C,eAAe,KAAK,IAAI;CAGxB,IAAI,sBAAsB,MACxB,oBAAoB,WAAW,uBAAuB,CAAC;AAE3D;;;;AAKA,SAAS,gBAAgB,KAAiD;CACxE,iBAAiB,eAAe,QAAQ,SAAS,KAAK,QAAQ,GAAG;AACnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyDA,SAAgB,gBACd,KACA,UAA4B,CAAC,GACZ;CACjB,MAAM,EACJ,YAAY,MACZ,WAAW,GACX,QAAQ,GACR,QAAQ,OACR,gBAAgB,MAChB,SACA,WACE;CAGJ,IAAI,UACF,OAAO;EACL,aAAa,CAAC;EACd,cAAc,CAAC;CACjB;CAGF,IAAI,WAAW;CAGf,cAAc;EACZ,IAAI,CAAC,aAAa,UAAU;EAE5B,eAAe;GACb;GACA;GACA;GACA;GACA;GACA;GACA;EACF,CAAC;CACH,CAAC;CAGD,gBAAgB;EACd,gBAAgB,GAAG;CACrB,CAAC;CAED,MAAM,cAAoB;EACxB,IAAI,UAAU;EAEd,MAAM,UAAU,IAAI;EACpB,IAAI,CAAC,SAAS;EAEd,IAAI,eACF,YAAY,OAAO;OAEnB,QAAQ,MAAM;EAEhB,UAAU,OAAO;CACnB;CAEA,MAAM,eAAqB;EACzB,WAAW;EACX,gBAAgB,GAAG;CACrB;CAEA,OAAO;EACL;EACA;CACF;AACF;;;;;AAMA,SAAgB,sBAA4B;CAC1C,IAAI,mBAAmB;EACrB,aAAa,iBAAiB;EAC9B,oBAAoB;CACtB;CACA,iBAAiB,CAAC;AACpB;;;;;AAMA,SAAgB,0BAAkC;CAChD,OAAO,eAAe;AACxB"}