@proyecto-viviana/solidaria 0.1.3 → 0.2.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 (580) hide show
  1. package/dist/index.d.ts +6135 -50
  2. package/dist/index.js +485 -1120
  3. package/dist/{index.ssr.js → index.jsx} +89 -143
  4. package/package.json +7 -9
  5. package/dist/autocomplete/createAutocomplete.d.ts +0 -109
  6. package/dist/autocomplete/createAutocomplete.d.ts.map +0 -1
  7. package/dist/autocomplete/index.d.ts +0 -2
  8. package/dist/autocomplete/index.d.ts.map +0 -1
  9. package/dist/breadcrumbs/createBreadcrumbs.d.ts +0 -43
  10. package/dist/breadcrumbs/createBreadcrumbs.d.ts.map +0 -1
  11. package/dist/breadcrumbs/index.d.ts +0 -2
  12. package/dist/breadcrumbs/index.d.ts.map +0 -1
  13. package/dist/button/createButton.d.ts +0 -29
  14. package/dist/button/createButton.d.ts.map +0 -1
  15. package/dist/button/createToggleButton.d.ts +0 -41
  16. package/dist/button/createToggleButton.d.ts.map +0 -1
  17. package/dist/button/index.d.ts +0 -5
  18. package/dist/button/index.d.ts.map +0 -1
  19. package/dist/button/types.d.ts +0 -77
  20. package/dist/button/types.d.ts.map +0 -1
  21. package/dist/calendar/createCalendar.d.ts +0 -41
  22. package/dist/calendar/createCalendar.d.ts.map +0 -1
  23. package/dist/calendar/createCalendarCell.d.ts +0 -41
  24. package/dist/calendar/createCalendarCell.d.ts.map +0 -1
  25. package/dist/calendar/createCalendarGrid.d.ts +0 -29
  26. package/dist/calendar/createCalendarGrid.d.ts.map +0 -1
  27. package/dist/calendar/createRangeCalendar.d.ts +0 -39
  28. package/dist/calendar/createRangeCalendar.d.ts.map +0 -1
  29. package/dist/calendar/createRangeCalendarCell.d.ts +0 -45
  30. package/dist/calendar/createRangeCalendarCell.d.ts.map +0 -1
  31. package/dist/calendar/index.d.ts +0 -6
  32. package/dist/calendar/index.d.ts.map +0 -1
  33. package/dist/checkbox/createCheckbox.d.ts +0 -56
  34. package/dist/checkbox/createCheckbox.d.ts.map +0 -1
  35. package/dist/checkbox/createCheckboxGroup.d.ts +0 -53
  36. package/dist/checkbox/createCheckboxGroup.d.ts.map +0 -1
  37. package/dist/checkbox/createCheckboxGroupItem.d.ts +0 -25
  38. package/dist/checkbox/createCheckboxGroupItem.d.ts.map +0 -1
  39. package/dist/checkbox/createCheckboxGroupState.d.ts +0 -71
  40. package/dist/checkbox/createCheckboxGroupState.d.ts.map +0 -1
  41. package/dist/checkbox/index.d.ts +0 -9
  42. package/dist/checkbox/index.d.ts.map +0 -1
  43. package/dist/color/createColorArea.d.ts +0 -13
  44. package/dist/color/createColorArea.d.ts.map +0 -1
  45. package/dist/color/createColorField.d.ts +0 -13
  46. package/dist/color/createColorField.d.ts.map +0 -1
  47. package/dist/color/createColorSlider.d.ts +0 -13
  48. package/dist/color/createColorSlider.d.ts.map +0 -1
  49. package/dist/color/createColorSwatch.d.ts +0 -12
  50. package/dist/color/createColorSwatch.d.ts.map +0 -1
  51. package/dist/color/createColorWheel.d.ts +0 -13
  52. package/dist/color/createColorWheel.d.ts.map +0 -1
  53. package/dist/color/index.d.ts +0 -10
  54. package/dist/color/index.d.ts.map +0 -1
  55. package/dist/color/types.d.ts +0 -106
  56. package/dist/color/types.d.ts.map +0 -1
  57. package/dist/combobox/createComboBox.d.ts +0 -77
  58. package/dist/combobox/createComboBox.d.ts.map +0 -1
  59. package/dist/combobox/index.d.ts +0 -2
  60. package/dist/combobox/index.d.ts.map +0 -1
  61. package/dist/combobox/intl/index.d.ts +0 -14
  62. package/dist/combobox/intl/index.d.ts.map +0 -1
  63. package/dist/datepicker/createDateField.d.ts +0 -51
  64. package/dist/datepicker/createDateField.d.ts.map +0 -1
  65. package/dist/datepicker/createDatePicker.d.ts +0 -65
  66. package/dist/datepicker/createDatePicker.d.ts.map +0 -1
  67. package/dist/datepicker/createDateSegment.d.ts +0 -29
  68. package/dist/datepicker/createDateSegment.d.ts.map +0 -1
  69. package/dist/datepicker/createTimeField.d.ts +0 -51
  70. package/dist/datepicker/createTimeField.d.ts.map +0 -1
  71. package/dist/datepicker/index.d.ts +0 -5
  72. package/dist/datepicker/index.d.ts.map +0 -1
  73. package/dist/dialog/createDialog.d.ts +0 -25
  74. package/dist/dialog/createDialog.d.ts.map +0 -1
  75. package/dist/dialog/index.d.ts +0 -3
  76. package/dist/dialog/index.d.ts.map +0 -1
  77. package/dist/dialog/types.d.ts +0 -18
  78. package/dist/dialog/types.d.ts.map +0 -1
  79. package/dist/disclosure/createDisclosure.d.ts +0 -52
  80. package/dist/disclosure/createDisclosure.d.ts.map +0 -1
  81. package/dist/disclosure/createDisclosureGroup.d.ts +0 -39
  82. package/dist/disclosure/createDisclosureGroup.d.ts.map +0 -1
  83. package/dist/disclosure/index.d.ts +0 -3
  84. package/dist/disclosure/index.d.ts.map +0 -1
  85. package/dist/dnd/createDrag.d.ts +0 -16
  86. package/dist/dnd/createDrag.d.ts.map +0 -1
  87. package/dist/dnd/createDraggableCollection.d.ts +0 -27
  88. package/dist/dnd/createDraggableCollection.d.ts.map +0 -1
  89. package/dist/dnd/createDraggableItem.d.ts +0 -37
  90. package/dist/dnd/createDraggableItem.d.ts.map +0 -1
  91. package/dist/dnd/createDrop.d.ts +0 -16
  92. package/dist/dnd/createDrop.d.ts.map +0 -1
  93. package/dist/dnd/createDroppableCollection.d.ts +0 -76
  94. package/dist/dnd/createDroppableCollection.d.ts.map +0 -1
  95. package/dist/dnd/createDroppableItem.d.ts +0 -31
  96. package/dist/dnd/createDroppableItem.d.ts.map +0 -1
  97. package/dist/dnd/index.d.ts +0 -18
  98. package/dist/dnd/index.d.ts.map +0 -1
  99. package/dist/dnd/types.d.ts +0 -66
  100. package/dist/dnd/types.d.ts.map +0 -1
  101. package/dist/dnd/utils.d.ts +0 -57
  102. package/dist/dnd/utils.d.ts.map +0 -1
  103. package/dist/focus/FocusScope.d.ts +0 -57
  104. package/dist/focus/FocusScope.d.ts.map +0 -1
  105. package/dist/focus/createAutoFocus.d.ts +0 -120
  106. package/dist/focus/createAutoFocus.d.ts.map +0 -1
  107. package/dist/focus/createFocusRestore.d.ts +0 -116
  108. package/dist/focus/createFocusRestore.d.ts.map +0 -1
  109. package/dist/focus/createVirtualFocus.d.ts +0 -170
  110. package/dist/focus/createVirtualFocus.d.ts.map +0 -1
  111. package/dist/focus/index.d.ts +0 -5
  112. package/dist/focus/index.d.ts.map +0 -1
  113. package/dist/form/createFormReset.d.ts +0 -27
  114. package/dist/form/createFormReset.d.ts.map +0 -1
  115. package/dist/form/createFormValidation.d.ts +0 -56
  116. package/dist/form/createFormValidation.d.ts.map +0 -1
  117. package/dist/form/index.d.ts +0 -3
  118. package/dist/form/index.d.ts.map +0 -1
  119. package/dist/grid/GridKeyboardDelegate.d.ts +0 -79
  120. package/dist/grid/GridKeyboardDelegate.d.ts.map +0 -1
  121. package/dist/grid/createGrid.d.ts +0 -24
  122. package/dist/grid/createGrid.d.ts.map +0 -1
  123. package/dist/grid/createGridCell.d.ts +0 -12
  124. package/dist/grid/createGridCell.d.ts.map +0 -1
  125. package/dist/grid/createGridRow.d.ts +0 -12
  126. package/dist/grid/createGridRow.d.ts.map +0 -1
  127. package/dist/grid/index.d.ts +0 -10
  128. package/dist/grid/index.d.ts.map +0 -1
  129. package/dist/grid/types.d.ts +0 -126
  130. package/dist/grid/types.d.ts.map +0 -1
  131. package/dist/gridlist/createGridList.d.ts +0 -28
  132. package/dist/gridlist/createGridList.d.ts.map +0 -1
  133. package/dist/gridlist/createGridListItem.d.ts +0 -12
  134. package/dist/gridlist/createGridListItem.d.ts.map +0 -1
  135. package/dist/gridlist/createGridListSelectionCheckbox.d.ts +0 -12
  136. package/dist/gridlist/createGridListSelectionCheckbox.d.ts.map +0 -1
  137. package/dist/gridlist/index.d.ts +0 -8
  138. package/dist/gridlist/index.d.ts.map +0 -1
  139. package/dist/gridlist/types.d.ts +0 -75
  140. package/dist/gridlist/types.d.ts.map +0 -1
  141. package/dist/i18n/NumberFormatter.d.ts +0 -43
  142. package/dist/i18n/NumberFormatter.d.ts.map +0 -1
  143. package/dist/i18n/createCollator.d.ts +0 -41
  144. package/dist/i18n/createCollator.d.ts.map +0 -1
  145. package/dist/i18n/createDateFormatter.d.ts +0 -45
  146. package/dist/i18n/createDateFormatter.d.ts.map +0 -1
  147. package/dist/i18n/createFilter.d.ts +0 -57
  148. package/dist/i18n/createFilter.d.ts.map +0 -1
  149. package/dist/i18n/createNumberFormatter.d.ts +0 -43
  150. package/dist/i18n/createNumberFormatter.d.ts.map +0 -1
  151. package/dist/i18n/createStringFormatter.d.ts +0 -42
  152. package/dist/i18n/createStringFormatter.d.ts.map +0 -1
  153. package/dist/i18n/index.d.ts +0 -9
  154. package/dist/i18n/index.d.ts.map +0 -1
  155. package/dist/i18n/locale.d.ts +0 -66
  156. package/dist/i18n/locale.d.ts.map +0 -1
  157. package/dist/i18n/utils.d.ts +0 -17
  158. package/dist/i18n/utils.d.ts.map +0 -1
  159. package/dist/index.d.ts.map +0 -1
  160. package/dist/index.js.map +0 -7
  161. package/dist/index.ssr.js.map +0 -7
  162. package/dist/interactions/FocusableProvider.d.ts +0 -26
  163. package/dist/interactions/FocusableProvider.d.ts.map +0 -1
  164. package/dist/interactions/PressEvent.d.ts +0 -73
  165. package/dist/interactions/PressEvent.d.ts.map +0 -1
  166. package/dist/interactions/createFocus.d.ts +0 -31
  167. package/dist/interactions/createFocus.d.ts.map +0 -1
  168. package/dist/interactions/createFocusRing.d.ts +0 -37
  169. package/dist/interactions/createFocusRing.d.ts.map +0 -1
  170. package/dist/interactions/createFocusWithin.d.ts +0 -27
  171. package/dist/interactions/createFocusWithin.d.ts.map +0 -1
  172. package/dist/interactions/createFocusable.d.ts +0 -65
  173. package/dist/interactions/createFocusable.d.ts.map +0 -1
  174. package/dist/interactions/createHover.d.ts +0 -43
  175. package/dist/interactions/createHover.d.ts.map +0 -1
  176. package/dist/interactions/createInteractionModality.d.ts +0 -73
  177. package/dist/interactions/createInteractionModality.d.ts.map +0 -1
  178. package/dist/interactions/createKeyboard.d.ts +0 -35
  179. package/dist/interactions/createKeyboard.d.ts.map +0 -1
  180. package/dist/interactions/createLongPress.d.ts +0 -63
  181. package/dist/interactions/createLongPress.d.ts.map +0 -1
  182. package/dist/interactions/createMove.d.ts +0 -40
  183. package/dist/interactions/createMove.d.ts.map +0 -1
  184. package/dist/interactions/createPress.d.ts +0 -55
  185. package/dist/interactions/createPress.d.ts.map +0 -1
  186. package/dist/interactions/index.d.ts +0 -13
  187. package/dist/interactions/index.d.ts.map +0 -1
  188. package/dist/label/createField.d.ts +0 -51
  189. package/dist/label/createField.d.ts.map +0 -1
  190. package/dist/label/createLabel.d.ts +0 -49
  191. package/dist/label/createLabel.d.ts.map +0 -1
  192. package/dist/label/createLabels.d.ts +0 -16
  193. package/dist/label/createLabels.d.ts.map +0 -1
  194. package/dist/label/index.d.ts +0 -6
  195. package/dist/label/index.d.ts.map +0 -1
  196. package/dist/landmark/createLandmark.d.ts +0 -79
  197. package/dist/landmark/createLandmark.d.ts.map +0 -1
  198. package/dist/landmark/index.d.ts +0 -2
  199. package/dist/landmark/index.d.ts.map +0 -1
  200. package/dist/link/createLink.d.ts +0 -65
  201. package/dist/link/createLink.d.ts.map +0 -1
  202. package/dist/link/index.d.ts +0 -2
  203. package/dist/link/index.d.ts.map +0 -1
  204. package/dist/listbox/createListBox.d.ts +0 -58
  205. package/dist/listbox/createListBox.d.ts.map +0 -1
  206. package/dist/listbox/createOption.d.ts +0 -42
  207. package/dist/listbox/createOption.d.ts.map +0 -1
  208. package/dist/listbox/index.d.ts +0 -3
  209. package/dist/listbox/index.d.ts.map +0 -1
  210. package/dist/live-announcer/announce.d.ts +0 -113
  211. package/dist/live-announcer/announce.d.ts.map +0 -1
  212. package/dist/live-announcer/index.d.ts +0 -2
  213. package/dist/live-announcer/index.d.ts.map +0 -1
  214. package/dist/menu/createMenu.d.ts +0 -57
  215. package/dist/menu/createMenu.d.ts.map +0 -1
  216. package/dist/menu/createMenuItem.d.ts +0 -42
  217. package/dist/menu/createMenuItem.d.ts.map +0 -1
  218. package/dist/menu/createMenuTrigger.d.ts +0 -29
  219. package/dist/menu/createMenuTrigger.d.ts.map +0 -1
  220. package/dist/menu/index.d.ts +0 -4
  221. package/dist/menu/index.d.ts.map +0 -1
  222. package/dist/meter/createMeter.d.ts +0 -44
  223. package/dist/meter/createMeter.d.ts.map +0 -1
  224. package/dist/meter/index.d.ts +0 -2
  225. package/dist/meter/index.d.ts.map +0 -1
  226. package/dist/numberfield/createNumberField.d.ts +0 -56
  227. package/dist/numberfield/createNumberField.d.ts.map +0 -1
  228. package/dist/numberfield/index.d.ts +0 -2
  229. package/dist/numberfield/index.d.ts.map +0 -1
  230. package/dist/overlays/ariaHideOutside.d.ts +0 -25
  231. package/dist/overlays/ariaHideOutside.d.ts.map +0 -1
  232. package/dist/overlays/createInteractOutside.d.ts +0 -20
  233. package/dist/overlays/createInteractOutside.d.ts.map +0 -1
  234. package/dist/overlays/createModal.d.ts +0 -70
  235. package/dist/overlays/createModal.d.ts.map +0 -1
  236. package/dist/overlays/createOverlay.d.ts +0 -43
  237. package/dist/overlays/createOverlay.d.ts.map +0 -1
  238. package/dist/overlays/createOverlayTrigger.d.ts +0 -30
  239. package/dist/overlays/createOverlayTrigger.d.ts.map +0 -1
  240. package/dist/overlays/createPreventScroll.d.ts +0 -15
  241. package/dist/overlays/createPreventScroll.d.ts.map +0 -1
  242. package/dist/overlays/index.d.ts +0 -7
  243. package/dist/overlays/index.d.ts.map +0 -1
  244. package/dist/popover/calculatePosition.d.ts +0 -67
  245. package/dist/popover/calculatePosition.d.ts.map +0 -1
  246. package/dist/popover/createOverlayPosition.d.ts +0 -109
  247. package/dist/popover/createOverlayPosition.d.ts.map +0 -1
  248. package/dist/popover/createPopover.d.ts +0 -88
  249. package/dist/popover/createPopover.d.ts.map +0 -1
  250. package/dist/popover/index.d.ts +0 -4
  251. package/dist/popover/index.d.ts.map +0 -1
  252. package/dist/progress/createProgressBar.d.ts +0 -47
  253. package/dist/progress/createProgressBar.d.ts.map +0 -1
  254. package/dist/progress/index.d.ts +0 -2
  255. package/dist/progress/index.d.ts.map +0 -1
  256. package/dist/radio/createRadio.d.ts +0 -68
  257. package/dist/radio/createRadio.d.ts.map +0 -1
  258. package/dist/radio/createRadioGroup.d.ts +0 -85
  259. package/dist/radio/createRadioGroup.d.ts.map +0 -1
  260. package/dist/radio/createRadioGroupState.d.ts +0 -77
  261. package/dist/radio/createRadioGroupState.d.ts.map +0 -1
  262. package/dist/radio/index.d.ts +0 -4
  263. package/dist/radio/index.d.ts.map +0 -1
  264. package/dist/searchfield/createSearchField.d.ts +0 -32
  265. package/dist/searchfield/createSearchField.d.ts.map +0 -1
  266. package/dist/searchfield/index.d.ts +0 -3
  267. package/dist/searchfield/index.d.ts.map +0 -1
  268. package/dist/select/createHiddenSelect.d.ts +0 -69
  269. package/dist/select/createHiddenSelect.d.ts.map +0 -1
  270. package/dist/select/createSelect.d.ts +0 -70
  271. package/dist/select/createSelect.d.ts.map +0 -1
  272. package/dist/select/index.d.ts +0 -3
  273. package/dist/select/index.d.ts.map +0 -1
  274. package/dist/selection/createTypeSelect.d.ts +0 -43
  275. package/dist/selection/createTypeSelect.d.ts.map +0 -1
  276. package/dist/selection/index.d.ts +0 -6
  277. package/dist/selection/index.d.ts.map +0 -1
  278. package/dist/separator/createSeparator.d.ts +0 -38
  279. package/dist/separator/createSeparator.d.ts.map +0 -1
  280. package/dist/separator/index.d.ts +0 -2
  281. package/dist/separator/index.d.ts.map +0 -1
  282. package/dist/slider/createSlider.d.ts +0 -43
  283. package/dist/slider/createSlider.d.ts.map +0 -1
  284. package/dist/slider/index.d.ts +0 -3
  285. package/dist/slider/index.d.ts.map +0 -1
  286. package/dist/ssr/index.d.ts +0 -221
  287. package/dist/ssr/index.d.ts.map +0 -1
  288. package/dist/switch/createSwitch.d.ts +0 -34
  289. package/dist/switch/createSwitch.d.ts.map +0 -1
  290. package/dist/switch/index.d.ts +0 -2
  291. package/dist/switch/index.d.ts.map +0 -1
  292. package/dist/table/createTable.d.ts +0 -24
  293. package/dist/table/createTable.d.ts.map +0 -1
  294. package/dist/table/createTableCell.d.ts +0 -12
  295. package/dist/table/createTableCell.d.ts.map +0 -1
  296. package/dist/table/createTableColumnHeader.d.ts +0 -12
  297. package/dist/table/createTableColumnHeader.d.ts.map +0 -1
  298. package/dist/table/createTableHeaderRow.d.ts +0 -12
  299. package/dist/table/createTableHeaderRow.d.ts.map +0 -1
  300. package/dist/table/createTableRow.d.ts +0 -12
  301. package/dist/table/createTableRow.d.ts.map +0 -1
  302. package/dist/table/createTableRowGroup.d.ts +0 -11
  303. package/dist/table/createTableRowGroup.d.ts.map +0 -1
  304. package/dist/table/createTableSelectAllCheckbox.d.ts +0 -12
  305. package/dist/table/createTableSelectAllCheckbox.d.ts.map +0 -1
  306. package/dist/table/createTableSelectionCheckbox.d.ts +0 -12
  307. package/dist/table/createTableSelectionCheckbox.d.ts.map +0 -1
  308. package/dist/table/index.d.ts +0 -14
  309. package/dist/table/index.d.ts.map +0 -1
  310. package/dist/table/types.d.ts +0 -150
  311. package/dist/table/types.d.ts.map +0 -1
  312. package/dist/tabs/createTabs.d.ts +0 -123
  313. package/dist/tabs/createTabs.d.ts.map +0 -1
  314. package/dist/tabs/index.d.ts +0 -2
  315. package/dist/tabs/index.d.ts.map +0 -1
  316. package/dist/tag/createTag.d.ts +0 -42
  317. package/dist/tag/createTag.d.ts.map +0 -1
  318. package/dist/tag/createTagGroup.d.ts +0 -54
  319. package/dist/tag/createTagGroup.d.ts.map +0 -1
  320. package/dist/tag/index.d.ts +0 -3
  321. package/dist/tag/index.d.ts.map +0 -1
  322. package/dist/textfield/createTextField.d.ts +0 -73
  323. package/dist/textfield/createTextField.d.ts.map +0 -1
  324. package/dist/textfield/index.d.ts +0 -2
  325. package/dist/textfield/index.d.ts.map +0 -1
  326. package/dist/toast/createToast.d.ts +0 -58
  327. package/dist/toast/createToast.d.ts.map +0 -1
  328. package/dist/toast/createToastRegion.d.ts +0 -49
  329. package/dist/toast/createToastRegion.d.ts.map +0 -1
  330. package/dist/toast/index.d.ts +0 -3
  331. package/dist/toast/index.d.ts.map +0 -1
  332. package/dist/toggle/createToggle.d.ts +0 -94
  333. package/dist/toggle/createToggle.d.ts.map +0 -1
  334. package/dist/toggle/createToggleState.d.ts +0 -34
  335. package/dist/toggle/createToggleState.d.ts.map +0 -1
  336. package/dist/toggle/index.d.ts +0 -5
  337. package/dist/toggle/index.d.ts.map +0 -1
  338. package/dist/toolbar/createToolbar.d.ts +0 -49
  339. package/dist/toolbar/createToolbar.d.ts.map +0 -1
  340. package/dist/toolbar/index.d.ts +0 -2
  341. package/dist/toolbar/index.d.ts.map +0 -1
  342. package/dist/tooltip/createTooltip.d.ts +0 -48
  343. package/dist/tooltip/createTooltip.d.ts.map +0 -1
  344. package/dist/tooltip/createTooltipTrigger.d.ts +0 -64
  345. package/dist/tooltip/createTooltipTrigger.d.ts.map +0 -1
  346. package/dist/tooltip/index.d.ts +0 -3
  347. package/dist/tooltip/index.d.ts.map +0 -1
  348. package/dist/tree/createTree.d.ts +0 -28
  349. package/dist/tree/createTree.d.ts.map +0 -1
  350. package/dist/tree/createTreeItem.d.ts +0 -12
  351. package/dist/tree/createTreeItem.d.ts.map +0 -1
  352. package/dist/tree/createTreeSelectionCheckbox.d.ts +0 -12
  353. package/dist/tree/createTreeSelectionCheckbox.d.ts.map +0 -1
  354. package/dist/tree/index.d.ts +0 -8
  355. package/dist/tree/index.d.ts.map +0 -1
  356. package/dist/tree/types.d.ts +0 -81
  357. package/dist/tree/types.d.ts.map +0 -1
  358. package/dist/utils/createDescription.d.ts +0 -56
  359. package/dist/utils/createDescription.d.ts.map +0 -1
  360. package/dist/utils/dom.d.ts +0 -68
  361. package/dist/utils/dom.d.ts.map +0 -1
  362. package/dist/utils/env.d.ts +0 -18
  363. package/dist/utils/env.d.ts.map +0 -1
  364. package/dist/utils/events.d.ts +0 -29
  365. package/dist/utils/events.d.ts.map +0 -1
  366. package/dist/utils/filterDOMProps.d.ts +0 -29
  367. package/dist/utils/filterDOMProps.d.ts.map +0 -1
  368. package/dist/utils/focus.d.ts +0 -20
  369. package/dist/utils/focus.d.ts.map +0 -1
  370. package/dist/utils/geometry.d.ts +0 -40
  371. package/dist/utils/geometry.d.ts.map +0 -1
  372. package/dist/utils/globalListeners.d.ts +0 -36
  373. package/dist/utils/globalListeners.d.ts.map +0 -1
  374. package/dist/utils/index.d.ts +0 -13
  375. package/dist/utils/index.d.ts.map +0 -1
  376. package/dist/utils/mergeProps.d.ts +0 -11
  377. package/dist/utils/mergeProps.d.ts.map +0 -1
  378. package/dist/utils/platform.d.ts +0 -14
  379. package/dist/utils/platform.d.ts.map +0 -1
  380. package/dist/utils/reactivity.d.ts +0 -28
  381. package/dist/utils/reactivity.d.ts.map +0 -1
  382. package/dist/utils/textSelection.d.ts +0 -19
  383. package/dist/utils/textSelection.d.ts.map +0 -1
  384. package/dist/visually-hidden/createVisuallyHidden.d.ts +0 -60
  385. package/dist/visually-hidden/createVisuallyHidden.d.ts.map +0 -1
  386. package/dist/visually-hidden/index.d.ts +0 -2
  387. package/dist/visually-hidden/index.d.ts.map +0 -1
  388. package/src/autocomplete/createAutocomplete.ts +0 -341
  389. package/src/autocomplete/index.ts +0 -9
  390. package/src/breadcrumbs/createBreadcrumbs.ts +0 -196
  391. package/src/breadcrumbs/index.ts +0 -8
  392. package/src/button/createButton.ts +0 -142
  393. package/src/button/createToggleButton.ts +0 -101
  394. package/src/button/index.ts +0 -4
  395. package/src/button/types.ts +0 -78
  396. package/src/calendar/createCalendar.ts +0 -138
  397. package/src/calendar/createCalendarCell.ts +0 -187
  398. package/src/calendar/createCalendarGrid.ts +0 -140
  399. package/src/calendar/createRangeCalendar.ts +0 -136
  400. package/src/calendar/createRangeCalendarCell.ts +0 -186
  401. package/src/calendar/index.ts +0 -34
  402. package/src/checkbox/createCheckbox.ts +0 -135
  403. package/src/checkbox/createCheckboxGroup.ts +0 -137
  404. package/src/checkbox/createCheckboxGroupItem.ts +0 -117
  405. package/src/checkbox/createCheckboxGroupState.ts +0 -193
  406. package/src/checkbox/index.ts +0 -13
  407. package/src/color/createColorArea.ts +0 -314
  408. package/src/color/createColorField.ts +0 -137
  409. package/src/color/createColorSlider.ts +0 -197
  410. package/src/color/createColorSwatch.ts +0 -40
  411. package/src/color/createColorWheel.ts +0 -208
  412. package/src/color/index.ts +0 -24
  413. package/src/color/types.ts +0 -116
  414. package/src/combobox/createComboBox.ts +0 -647
  415. package/src/combobox/index.ts +0 -6
  416. package/src/combobox/intl/en-US.json +0 -7
  417. package/src/combobox/intl/es-ES.json +0 -7
  418. package/src/combobox/intl/index.ts +0 -23
  419. package/src/datepicker/createDateField.ts +0 -154
  420. package/src/datepicker/createDatePicker.ts +0 -206
  421. package/src/datepicker/createDateSegment.ts +0 -229
  422. package/src/datepicker/createTimeField.ts +0 -154
  423. package/src/datepicker/index.ts +0 -28
  424. package/src/dialog/createDialog.ts +0 -120
  425. package/src/dialog/index.ts +0 -2
  426. package/src/dialog/types.ts +0 -19
  427. package/src/disclosure/createDisclosure.ts +0 -131
  428. package/src/disclosure/createDisclosureGroup.ts +0 -62
  429. package/src/disclosure/index.ts +0 -11
  430. package/src/dnd/createDrag.ts +0 -209
  431. package/src/dnd/createDraggableCollection.ts +0 -63
  432. package/src/dnd/createDraggableItem.ts +0 -243
  433. package/src/dnd/createDrop.ts +0 -321
  434. package/src/dnd/createDroppableCollection.ts +0 -293
  435. package/src/dnd/createDroppableItem.ts +0 -213
  436. package/src/dnd/index.ts +0 -47
  437. package/src/dnd/types.ts +0 -89
  438. package/src/dnd/utils.ts +0 -294
  439. package/src/focus/FocusScope.tsx +0 -408
  440. package/src/focus/createAutoFocus.ts +0 -321
  441. package/src/focus/createFocusRestore.ts +0 -313
  442. package/src/focus/createVirtualFocus.ts +0 -396
  443. package/src/focus/index.ts +0 -35
  444. package/src/form/createFormReset.ts +0 -51
  445. package/src/form/createFormValidation.ts +0 -224
  446. package/src/form/index.ts +0 -11
  447. package/src/grid/GridKeyboardDelegate.ts +0 -429
  448. package/src/grid/createGrid.ts +0 -261
  449. package/src/grid/createGridCell.ts +0 -182
  450. package/src/grid/createGridRow.ts +0 -153
  451. package/src/grid/index.ts +0 -18
  452. package/src/grid/types.ts +0 -133
  453. package/src/gridlist/createGridList.ts +0 -185
  454. package/src/gridlist/createGridListItem.ts +0 -180
  455. package/src/gridlist/createGridListSelectionCheckbox.ts +0 -59
  456. package/src/gridlist/index.ts +0 -16
  457. package/src/gridlist/types.ts +0 -81
  458. package/src/i18n/NumberFormatter.ts +0 -266
  459. package/src/i18n/createCollator.ts +0 -79
  460. package/src/i18n/createDateFormatter.ts +0 -83
  461. package/src/i18n/createFilter.ts +0 -131
  462. package/src/i18n/createNumberFormatter.ts +0 -52
  463. package/src/i18n/createStringFormatter.ts +0 -87
  464. package/src/i18n/index.ts +0 -40
  465. package/src/i18n/locale.tsx +0 -188
  466. package/src/i18n/utils.ts +0 -99
  467. package/src/index.ts +0 -670
  468. package/src/interactions/FocusableProvider.tsx +0 -44
  469. package/src/interactions/PressEvent.ts +0 -124
  470. package/src/interactions/createFocus.ts +0 -163
  471. package/src/interactions/createFocusRing.ts +0 -89
  472. package/src/interactions/createFocusWithin.ts +0 -206
  473. package/src/interactions/createFocusable.ts +0 -168
  474. package/src/interactions/createHover.ts +0 -254
  475. package/src/interactions/createInteractionModality.ts +0 -424
  476. package/src/interactions/createKeyboard.ts +0 -82
  477. package/src/interactions/createLongPress.ts +0 -174
  478. package/src/interactions/createMove.ts +0 -289
  479. package/src/interactions/createPress.ts +0 -834
  480. package/src/interactions/index.ts +0 -78
  481. package/src/label/createField.ts +0 -145
  482. package/src/label/createLabel.ts +0 -117
  483. package/src/label/createLabels.ts +0 -50
  484. package/src/label/index.ts +0 -19
  485. package/src/landmark/createLandmark.ts +0 -377
  486. package/src/landmark/index.ts +0 -8
  487. package/src/link/createLink.ts +0 -182
  488. package/src/link/index.ts +0 -1
  489. package/src/listbox/createListBox.ts +0 -269
  490. package/src/listbox/createOption.ts +0 -151
  491. package/src/listbox/index.ts +0 -12
  492. package/src/live-announcer/announce.ts +0 -322
  493. package/src/live-announcer/index.ts +0 -9
  494. package/src/menu/createMenu.ts +0 -396
  495. package/src/menu/createMenuItem.ts +0 -149
  496. package/src/menu/createMenuTrigger.ts +0 -88
  497. package/src/menu/index.ts +0 -18
  498. package/src/meter/createMeter.ts +0 -75
  499. package/src/meter/index.ts +0 -1
  500. package/src/numberfield/createNumberField.ts +0 -268
  501. package/src/numberfield/index.ts +0 -5
  502. package/src/overlays/ariaHideOutside.ts +0 -219
  503. package/src/overlays/createInteractOutside.ts +0 -149
  504. package/src/overlays/createModal.tsx +0 -202
  505. package/src/overlays/createOverlay.ts +0 -155
  506. package/src/overlays/createOverlayTrigger.ts +0 -85
  507. package/src/overlays/createPreventScroll.ts +0 -266
  508. package/src/overlays/index.ts +0 -44
  509. package/src/popover/calculatePosition.ts +0 -766
  510. package/src/popover/createOverlayPosition.ts +0 -356
  511. package/src/popover/createPopover.ts +0 -170
  512. package/src/popover/index.ts +0 -24
  513. package/src/progress/createProgressBar.ts +0 -128
  514. package/src/progress/index.ts +0 -5
  515. package/src/radio/createRadio.ts +0 -287
  516. package/src/radio/createRadioGroup.ts +0 -189
  517. package/src/radio/createRadioGroupState.ts +0 -201
  518. package/src/radio/index.ts +0 -23
  519. package/src/searchfield/createSearchField.ts +0 -186
  520. package/src/searchfield/index.ts +0 -2
  521. package/src/select/createHiddenSelect.tsx +0 -236
  522. package/src/select/createSelect.ts +0 -395
  523. package/src/select/index.ts +0 -14
  524. package/src/selection/createTypeSelect.ts +0 -201
  525. package/src/selection/index.ts +0 -6
  526. package/src/separator/createSeparator.ts +0 -82
  527. package/src/separator/index.ts +0 -6
  528. package/src/slider/createSlider.ts +0 -349
  529. package/src/slider/index.ts +0 -2
  530. package/src/ssr/index.tsx +0 -370
  531. package/src/switch/createSwitch.ts +0 -70
  532. package/src/switch/index.ts +0 -1
  533. package/src/table/createTable.ts +0 -526
  534. package/src/table/createTableCell.ts +0 -147
  535. package/src/table/createTableColumnHeader.ts +0 -115
  536. package/src/table/createTableHeaderRow.ts +0 -40
  537. package/src/table/createTableRow.ts +0 -155
  538. package/src/table/createTableRowGroup.ts +0 -32
  539. package/src/table/createTableSelectAllCheckbox.ts +0 -73
  540. package/src/table/createTableSelectionCheckbox.ts +0 -59
  541. package/src/table/index.ts +0 -30
  542. package/src/table/types.ts +0 -165
  543. package/src/tabs/createTabs.ts +0 -472
  544. package/src/tabs/index.ts +0 -14
  545. package/src/tag/createTag.ts +0 -194
  546. package/src/tag/createTagGroup.ts +0 -154
  547. package/src/tag/index.ts +0 -12
  548. package/src/textfield/createTextField.ts +0 -198
  549. package/src/textfield/index.ts +0 -5
  550. package/src/toast/createToast.ts +0 -118
  551. package/src/toast/createToastRegion.ts +0 -100
  552. package/src/toast/index.ts +0 -11
  553. package/src/toggle/createToggle.ts +0 -223
  554. package/src/toggle/createToggleState.ts +0 -94
  555. package/src/toggle/index.ts +0 -7
  556. package/src/toolbar/createToolbar.ts +0 -368
  557. package/src/toolbar/index.ts +0 -6
  558. package/src/tooltip/createTooltip.ts +0 -79
  559. package/src/tooltip/createTooltipTrigger.ts +0 -222
  560. package/src/tooltip/index.ts +0 -6
  561. package/src/tree/createTree.ts +0 -246
  562. package/src/tree/createTreeItem.ts +0 -233
  563. package/src/tree/createTreeSelectionCheckbox.ts +0 -68
  564. package/src/tree/index.ts +0 -16
  565. package/src/tree/types.ts +0 -87
  566. package/src/utils/createDescription.ts +0 -137
  567. package/src/utils/dom.ts +0 -327
  568. package/src/utils/env.ts +0 -54
  569. package/src/utils/events.ts +0 -106
  570. package/src/utils/filterDOMProps.ts +0 -116
  571. package/src/utils/focus.ts +0 -151
  572. package/src/utils/geometry.ts +0 -115
  573. package/src/utils/globalListeners.ts +0 -142
  574. package/src/utils/index.ts +0 -80
  575. package/src/utils/mergeProps.ts +0 -52
  576. package/src/utils/platform.ts +0 -52
  577. package/src/utils/reactivity.ts +0 -36
  578. package/src/utils/textSelection.ts +0 -114
  579. package/src/visually-hidden/createVisuallyHidden.ts +0 -124
  580. package/src/visually-hidden/index.ts +0 -6
@@ -1,408 +0,0 @@
1
- /**
2
- * FocusScope component for managing focus containment, restoration, and auto-focus.
3
- * Based on @react-aria/focus FocusScope.
4
- */
5
-
6
- import {
7
- createContext,
8
- useContext,
9
- createEffect,
10
- onCleanup,
11
- type JSX,
12
- type Accessor,
13
- type ParentComponent,
14
- createSignal,
15
- onMount,
16
- } from 'solid-js'
17
- import { isServer } from 'solid-js/web'
18
- import { getOwnerDocument, isFocusable } from '../utils'
19
- import { focusSafely } from '../utils/focus'
20
-
21
- // ============================================
22
- // TYPES
23
- // ============================================
24
-
25
- export interface FocusScopeProps {
26
- /** The contents of the focus scope. */
27
- children: JSX.Element
28
- /**
29
- * Whether to contain focus inside the scope, so users cannot
30
- * move focus outside, for example in a modal dialog.
31
- */
32
- contain?: boolean
33
- /**
34
- * Whether to restore focus back to the element that was focused
35
- * when the focus scope mounted, after the focus scope unmounts.
36
- */
37
- restoreFocus?: boolean
38
- /** Whether to auto focus the first focusable element in the focus scope on mount. */
39
- autoFocus?: boolean
40
- }
41
-
42
- export interface FocusManagerOptions {
43
- /** The element to start searching from. The currently focused element by default. */
44
- from?: Element
45
- /** Whether to only include tabbable elements, or all focusable elements. */
46
- tabbable?: boolean
47
- /** Whether focus should wrap around when it reaches the end of the scope. */
48
- wrap?: boolean
49
- /** A callback that determines whether the given element is focused. */
50
- accept?: (node: Element) => boolean
51
- }
52
-
53
- export interface FocusManager {
54
- /** Moves focus to the next focusable or tabbable element in the focus scope. */
55
- focusNext(opts?: FocusManagerOptions): HTMLElement | null
56
- /** Moves focus to the previous focusable or tabbable element in the focus scope. */
57
- focusPrevious(opts?: FocusManagerOptions): HTMLElement | null
58
- /** Moves focus to the first focusable or tabbable element in the focus scope. */
59
- focusFirst(opts?: FocusManagerOptions): HTMLElement | null
60
- /** Moves focus to the last focusable or tabbable element in the focus scope. */
61
- focusLast(opts?: FocusManagerOptions): HTMLElement | null
62
- }
63
-
64
- // ============================================
65
- // CONTEXT
66
- // ============================================
67
-
68
- interface FocusScopeContextValue {
69
- focusManager: FocusManager
70
- scopeRef: Accessor<Element[]>
71
- }
72
-
73
- const FocusScopeContext = createContext<FocusScopeContextValue | null>(null)
74
-
75
- /**
76
- * Returns a FocusManager interface for the parent FocusScope.
77
- * A FocusManager can be used to programmatically move focus within
78
- * a FocusScope, e.g. in response to user events like keyboard navigation.
79
- */
80
- export function useFocusManager(): FocusManager | undefined {
81
- return useContext(FocusScopeContext)?.focusManager
82
- }
83
-
84
- // ============================================
85
- // UTILITIES
86
- // ============================================
87
-
88
- /**
89
- * Checks if an element is tabbable (focusable via Tab key).
90
- */
91
- function isTabbable(element: Element): boolean {
92
- if (!isFocusable(element)) {
93
- return false
94
- }
95
-
96
- // Check tabIndex
97
- const tabIndex = element.getAttribute('tabindex')
98
- if (tabIndex != null) {
99
- return parseInt(tabIndex, 10) >= 0
100
- }
101
-
102
- return true
103
- }
104
-
105
- /**
106
- * Gets all focusable elements within a scope.
107
- */
108
- function getFocusableElements(scope: Element[], tabbable = false): HTMLElement[] {
109
- const elements: HTMLElement[] = []
110
- const filter = tabbable ? isTabbable : isFocusable
111
-
112
- for (const scopeElement of scope) {
113
- // Check the element itself
114
- if (filter(scopeElement)) {
115
- elements.push(scopeElement as HTMLElement)
116
- }
117
-
118
- // Check all descendants
119
- const descendants = scopeElement.querySelectorAll('*')
120
- for (let i = 0; i < descendants.length; i++) {
121
- const el = descendants[i]
122
- if (filter(el)) {
123
- elements.push(el as HTMLElement)
124
- }
125
- }
126
- }
127
-
128
- return elements
129
- }
130
-
131
- /**
132
- * Checks if an element is within a scope.
133
- */
134
- function isElementInScope(element: Element | null, scope: Element[]): boolean {
135
- if (!element) return false
136
- return scope.some(node => node.contains(element))
137
- }
138
-
139
- /**
140
- * Gets the active element, accounting for shadow DOM.
141
- */
142
- function getActiveElement(doc: Document): Element | null {
143
- let activeElement = doc.activeElement
144
- while (activeElement?.shadowRoot?.activeElement) {
145
- activeElement = activeElement.shadowRoot.activeElement
146
- }
147
- return activeElement
148
- }
149
-
150
- // ============================================
151
- // FOCUS SCOPE COMPONENT
152
- // ============================================
153
-
154
- /**
155
- * A FocusScope manages focus for its descendants. It supports containing focus inside
156
- * the scope, restoring focus to the previously focused element on unmount, and auto
157
- * focusing children on mount. It also acts as a container for a programmatic focus
158
- * management interface that can be used to move focus forward and back in response
159
- * to user events.
160
- */
161
- export const FocusScope: ParentComponent<FocusScopeProps> = (props) => {
162
- if (isServer) {
163
- return <>{props.children}</>
164
- }
165
-
166
- let startRef: HTMLSpanElement | undefined
167
- let endRef: HTMLSpanElement | undefined
168
- const [scopeElements, setScopeElements] = createSignal<Element[]>([])
169
-
170
- // Store the element that was focused when the scope mounted
171
- let nodeToRestore: Element | null = null
172
-
173
- // Create focus manager
174
- const focusManager: FocusManager = {
175
- focusNext(opts = {}) {
176
- const scope = scopeElements()
177
- if (scope.length === 0) return null
178
-
179
- const { from, tabbable = true, wrap = false, accept } = opts
180
- const elements = getFocusableElements(scope, tabbable).filter(el => !accept || accept(el))
181
- const doc = getOwnerDocument(scope[0])
182
- const current = from || getActiveElement(doc)
183
-
184
- if (!current || elements.length === 0) return null
185
-
186
- const currentIndex = elements.indexOf(current as HTMLElement)
187
- let nextIndex = currentIndex + 1
188
-
189
- if (nextIndex >= elements.length) {
190
- if (wrap) {
191
- nextIndex = 0
192
- } else {
193
- return null
194
- }
195
- }
196
-
197
- const nextElement = elements[nextIndex]
198
- if (nextElement) {
199
- focusSafely(nextElement)
200
- return nextElement
201
- }
202
-
203
- return null
204
- },
205
-
206
- focusPrevious(opts = {}) {
207
- const scope = scopeElements()
208
- if (scope.length === 0) return null
209
-
210
- const { from, tabbable = true, wrap = false, accept } = opts
211
- const elements = getFocusableElements(scope, tabbable).filter(el => !accept || accept(el))
212
- const doc = getOwnerDocument(scope[0])
213
- const current = from || getActiveElement(doc)
214
-
215
- if (!current || elements.length === 0) return null
216
-
217
- const currentIndex = elements.indexOf(current as HTMLElement)
218
- let prevIndex = currentIndex - 1
219
-
220
- if (prevIndex < 0) {
221
- if (wrap) {
222
- prevIndex = elements.length - 1
223
- } else {
224
- return null
225
- }
226
- }
227
-
228
- const prevElement = elements[prevIndex]
229
- if (prevElement) {
230
- focusSafely(prevElement)
231
- return prevElement
232
- }
233
-
234
- return null
235
- },
236
-
237
- focusFirst(opts = {}) {
238
- const scope = scopeElements()
239
- if (scope.length === 0) return null
240
-
241
- const { tabbable = true, accept } = opts
242
- const elements = getFocusableElements(scope, tabbable).filter(el => !accept || accept(el))
243
-
244
- if (elements.length > 0) {
245
- focusSafely(elements[0])
246
- return elements[0]
247
- }
248
-
249
- return null
250
- },
251
-
252
- focusLast(opts = {}) {
253
- const scope = scopeElements()
254
- if (scope.length === 0) return null
255
-
256
- const { tabbable = true, accept } = opts
257
- const elements = getFocusableElements(scope, tabbable).filter(el => !accept || accept(el))
258
-
259
- if (elements.length > 0) {
260
- const lastElement = elements[elements.length - 1]
261
- focusSafely(lastElement)
262
- return lastElement
263
- }
264
-
265
- return null
266
- },
267
- }
268
-
269
- // Collect scope elements after render
270
- onMount(() => {
271
- if (!startRef || !endRef) return
272
-
273
- const nodes: Element[] = []
274
- let node = startRef.nextSibling
275
- while (node && node !== endRef) {
276
- if (node.nodeType === Node.ELEMENT_NODE) {
277
- nodes.push(node as Element)
278
- }
279
- node = node.nextSibling
280
- }
281
- setScopeElements(nodes)
282
- })
283
-
284
- // Save the currently focused element for restoration (must happen before autoFocus/contain effects run).
285
- onMount(() => {
286
- if (!props.restoreFocus) return
287
-
288
- // Focus can be in the main document, or inside this iframe's document.
289
- const scopeDoc = startRef ? getOwnerDocument(startRef) : document
290
- const scopeActive = getActiveElement(scopeDoc)
291
- const topActive = getActiveElement(document)
292
-
293
- // If the scope is in an iframe and that iframe is currently focused, prefer the iframe document's active element.
294
- if (
295
- scopeDoc !== document &&
296
- document.activeElement instanceof HTMLIFrameElement &&
297
- document.activeElement.contentDocument === scopeDoc &&
298
- scopeActive &&
299
- scopeActive !== scopeDoc.body
300
- ) {
301
- nodeToRestore = scopeActive
302
- return
303
- }
304
-
305
- nodeToRestore = topActive
306
- })
307
-
308
- // Auto-focus first element
309
- createEffect(() => {
310
- if (!props.autoFocus) return
311
-
312
- const scope = scopeElements()
313
- if (scope.length === 0) return
314
-
315
- const doc = getOwnerDocument(scope[0])
316
- const activeElement = getActiveElement(doc)
317
-
318
- // Only auto-focus if focus is not already inside the scope
319
- if (!isElementInScope(activeElement, scope)) {
320
- focusManager.focusFirst()
321
- }
322
- })
323
-
324
- // Focus containment
325
- createEffect(() => {
326
- if (!props.contain) return
327
-
328
- const scope = scopeElements()
329
- if (scope.length === 0) return
330
-
331
- const doc = getOwnerDocument(scope[0])
332
- let focusedNode: Element | null = null
333
-
334
- const onKeyDown = (e: KeyboardEvent) => {
335
- if (e.key !== 'Tab' || e.altKey || e.ctrlKey || e.metaKey) {
336
- return
337
- }
338
-
339
- const scope = scopeElements()
340
- const activeElement = getActiveElement(doc)
341
- if (!isElementInScope(activeElement, scope)) {
342
- return
343
- }
344
-
345
- const elements = getFocusableElements(scope, true)
346
- if (elements.length === 0) return
347
-
348
- const firstElement = elements[0]
349
- const lastElement = elements[elements.length - 1]
350
-
351
- if (e.shiftKey && activeElement === firstElement) {
352
- e.preventDefault()
353
- focusSafely(lastElement)
354
- } else if (!e.shiftKey && activeElement === lastElement) {
355
- e.preventDefault()
356
- focusSafely(firstElement)
357
- }
358
- }
359
-
360
- const onFocusIn = (e: FocusEvent) => {
361
- const scope = scopeElements()
362
- const target = e.target as Element
363
-
364
- if (isElementInScope(target, scope)) {
365
- focusedNode = target
366
- } else if (focusedNode) {
367
- // Focus escaped the scope, bring it back
368
- focusSafely(focusedNode as HTMLElement)
369
- } else {
370
- // No previous focus, focus first element
371
- focusManager.focusFirst()
372
- }
373
- }
374
-
375
- doc.addEventListener('keydown', onKeyDown, true)
376
- doc.addEventListener('focusin', onFocusIn, true)
377
-
378
- onCleanup(() => {
379
- doc.removeEventListener('keydown', onKeyDown, true)
380
- doc.removeEventListener('focusin', onFocusIn, true)
381
- })
382
- })
383
-
384
- // Restore focus on unmount
385
- onCleanup(() => {
386
- if (props.restoreFocus && nodeToRestore && (nodeToRestore as HTMLElement).focus) {
387
- const doc = getOwnerDocument(nodeToRestore as Element)
388
- const win = doc.defaultView ?? window
389
-
390
- // Use requestAnimationFrame to ensure the element is still in the DOM
391
- win.requestAnimationFrame(() => {
392
- if (nodeToRestore && doc.body.contains(nodeToRestore as Node)) {
393
- ;(nodeToRestore as HTMLElement).focus()
394
- }
395
- })
396
- }
397
- })
398
-
399
- return (
400
- <FocusScopeContext.Provider value={{ focusManager, scopeRef: scopeElements }}>
401
- <span data-focus-scope-start hidden ref={startRef} />
402
- {props.children}
403
- <span data-focus-scope-end hidden ref={endRef} />
404
- </FocusScopeContext.Provider>
405
- )
406
- }
407
-
408
- export default FocusScope
@@ -1,321 +0,0 @@
1
- /**
2
- * Auto-focus management for solidaria
3
- *
4
- * Provides priority-based auto-focus with deferred execution
5
- * and conflict resolution for multiple auto-focus elements.
6
- */
7
-
8
- import { createEffect, onCleanup, onMount } from 'solid-js';
9
- import { isServer } from 'solid-js/web';
10
- import { focusSafely } from '../utils/focus';
11
-
12
- // ============================================
13
- // TYPES
14
- // ============================================
15
-
16
- export interface AutoFocusOptions {
17
- /**
18
- * Whether auto-focus is enabled.
19
- * @default true
20
- */
21
- isEnabled?: boolean;
22
- /**
23
- * Priority level (higher = more important).
24
- * When multiple elements request auto-focus, the highest priority wins.
25
- * @default 0
26
- */
27
- priority?: number;
28
- /**
29
- * Delay in milliseconds before focusing.
30
- * Useful for animations or transitions.
31
- * @default 0
32
- */
33
- delay?: number;
34
- /**
35
- * Whether to focus even if another element is already focused.
36
- * @default false
37
- */
38
- force?: boolean;
39
- /**
40
- * Whether to prevent scrolling when focusing.
41
- * @default true
42
- */
43
- preventScroll?: boolean;
44
- /**
45
- * Callback when focus is applied.
46
- */
47
- onFocus?: (element: HTMLElement) => void;
48
- /**
49
- * Callback when focus is skipped (due to lower priority or other reasons).
50
- */
51
- onSkip?: () => void;
52
- }
53
-
54
- export interface AutoFocusResult {
55
- /**
56
- * Manually trigger the auto-focus.
57
- */
58
- focus: () => void;
59
- /**
60
- * Cancel any pending auto-focus.
61
- */
62
- cancel: () => void;
63
- }
64
-
65
- // ============================================
66
- // AUTO-FOCUS QUEUE
67
- // ============================================
68
-
69
- interface QueuedFocus {
70
- ref: () => HTMLElement | null | undefined;
71
- priority: number;
72
- delay: number;
73
- force: boolean;
74
- preventScroll: boolean;
75
- onFocus?: (element: HTMLElement) => void;
76
- onSkip?: () => void;
77
- }
78
-
79
- // Global queue for managing auto-focus requests
80
- let autoFocusQueue: QueuedFocus[] = [];
81
- let processingTimeout: ReturnType<typeof setTimeout> | null = null;
82
-
83
- /**
84
- * Process the auto-focus queue and focus the highest priority element.
85
- */
86
- function processAutoFocusQueue(): void {
87
- if (processingTimeout) {
88
- clearTimeout(processingTimeout);
89
- processingTimeout = null;
90
- }
91
-
92
- if (autoFocusQueue.length === 0) return;
93
-
94
- // Sort by priority (highest first)
95
- autoFocusQueue.sort((a, b) => b.priority - a.priority);
96
-
97
- // Get the highest priority item
98
- const winner = autoFocusQueue[0];
99
- const losers = autoFocusQueue.slice(1);
100
-
101
- // Clear the queue
102
- autoFocusQueue = [];
103
-
104
- // Notify losers
105
- for (const loser of losers) {
106
- loser.onSkip?.();
107
- }
108
-
109
- // Focus the winner
110
- const element = winner.ref();
111
- if (!element) {
112
- winner.onSkip?.();
113
- return;
114
- }
115
-
116
- // Check if we should focus
117
- const activeElement = document.activeElement;
118
- const shouldFocus =
119
- winner.force ||
120
- !activeElement ||
121
- activeElement === document.body ||
122
- activeElement === document.documentElement;
123
-
124
- if (!shouldFocus) {
125
- winner.onSkip?.();
126
- return;
127
- }
128
-
129
- // Apply focus with optional delay
130
- if (winner.delay > 0) {
131
- setTimeout(() => {
132
- const el = winner.ref();
133
- if (el && document.body.contains(el)) {
134
- if (winner.preventScroll) {
135
- focusSafely(el);
136
- } else {
137
- el.focus();
138
- }
139
- winner.onFocus?.(el);
140
- }
141
- }, winner.delay);
142
- } else {
143
- if (winner.preventScroll) {
144
- focusSafely(element);
145
- } else {
146
- element.focus();
147
- }
148
- winner.onFocus?.(element);
149
- }
150
- }
151
-
152
- /**
153
- * Queue an element for auto-focus.
154
- */
155
- function queueAutoFocus(item: QueuedFocus): void {
156
- autoFocusQueue.push(item);
157
-
158
- // Schedule processing on next frame to allow all components to register
159
- if (processingTimeout === null) {
160
- processingTimeout = setTimeout(processAutoFocusQueue, 0);
161
- }
162
- }
163
-
164
- /**
165
- * Remove an item from the auto-focus queue.
166
- */
167
- function removeFromQueue(ref: () => HTMLElement | null | undefined): void {
168
- autoFocusQueue = autoFocusQueue.filter((item) => item.ref !== ref);
169
- }
170
-
171
- // ============================================
172
- // HOOK
173
- // ============================================
174
-
175
- /**
176
- * Creates auto-focus behavior for an element.
177
- *
178
- * This hook registers the element for auto-focus when mounted. If multiple
179
- * elements request auto-focus, the one with the highest priority wins.
180
- *
181
- * @param ref - Accessor for the element to focus
182
- * @param options - Auto-focus options
183
- *
184
- * @example
185
- * ```tsx
186
- * function Dialog(props) {
187
- * let contentRef: HTMLDivElement | undefined;
188
- *
189
- * createAutoFocus(() => contentRef, {
190
- * priority: 10, // High priority for dialogs
191
- * onFocus: () => console.log('Dialog focused'),
192
- * });
193
- *
194
- * return (
195
- * <div ref={contentRef} tabIndex={-1}>
196
- * {props.children}
197
- * </div>
198
- * );
199
- * }
200
- * ```
201
- *
202
- * @example
203
- * ```tsx
204
- * // With delay for animations
205
- * function AnimatedPanel() {
206
- * let panelRef: HTMLDivElement | undefined;
207
- *
208
- * createAutoFocus(() => panelRef, {
209
- * delay: 300, // Wait for animation
210
- * });
211
- *
212
- * return <div ref={panelRef} class="animated-panel">...</div>;
213
- * }
214
- * ```
215
- *
216
- * @example
217
- * ```tsx
218
- * // Conditional auto-focus
219
- * function Input(props) {
220
- * let inputRef: HTMLInputElement | undefined;
221
- *
222
- * createAutoFocus(() => inputRef, {
223
- * isEnabled: props.autoFocus,
224
- * });
225
- *
226
- * return <input ref={inputRef} />;
227
- * }
228
- * ```
229
- */
230
- export function createAutoFocus(
231
- ref: () => HTMLElement | null | undefined,
232
- options: AutoFocusOptions = {}
233
- ): AutoFocusResult {
234
- const {
235
- isEnabled = true,
236
- priority = 0,
237
- delay = 0,
238
- force = false,
239
- preventScroll = true,
240
- onFocus,
241
- onSkip,
242
- } = options;
243
-
244
- // During SSR, return no-op functions
245
- if (isServer) {
246
- return {
247
- focus: () => {},
248
- cancel: () => {},
249
- };
250
- }
251
-
252
- let canceled = false;
253
-
254
- // Queue auto-focus on mount
255
- onMount(() => {
256
- if (!isEnabled || canceled) return;
257
-
258
- queueAutoFocus({
259
- ref,
260
- priority,
261
- delay,
262
- force,
263
- preventScroll,
264
- onFocus,
265
- onSkip,
266
- });
267
- });
268
-
269
- // Remove from queue on cleanup
270
- onCleanup(() => {
271
- removeFromQueue(ref);
272
- });
273
-
274
- const focus = (): void => {
275
- if (canceled) return;
276
-
277
- const element = ref();
278
- if (!element) return;
279
-
280
- if (preventScroll) {
281
- focusSafely(element);
282
- } else {
283
- element.focus();
284
- }
285
- onFocus?.(element);
286
- };
287
-
288
- const cancel = (): void => {
289
- canceled = true;
290
- removeFromQueue(ref);
291
- };
292
-
293
- return {
294
- focus,
295
- cancel,
296
- };
297
- }
298
-
299
- // ============================================
300
- // UTILITIES
301
- // ============================================
302
-
303
- /**
304
- * Clears all pending auto-focus requests.
305
- * Useful for testing or when navigating away.
306
- */
307
- export function clearAutoFocusQueue(): void {
308
- if (processingTimeout) {
309
- clearTimeout(processingTimeout);
310
- processingTimeout = null;
311
- }
312
- autoFocusQueue = [];
313
- }
314
-
315
- /**
316
- * Gets the current auto-focus queue length.
317
- * Useful for debugging.
318
- */
319
- export function getAutoFocusQueueLength(): number {
320
- return autoFocusQueue.length;
321
- }