@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,70 +0,0 @@
1
- /**
2
- * Switch hook for Solidaria
3
- *
4
- * Provides the behavior and accessibility implementation for a switch component.
5
- * A switch is similar to a checkbox, but represents on/off values as opposed to selection.
6
- *
7
- * This is a 1:1 port of @react-aria/switch's useSwitch hook.
8
- */
9
-
10
- import { JSX, Accessor } from 'solid-js';
11
- import { createToggle, type AriaToggleProps } from '../toggle/createToggle';
12
- import { type ToggleState } from '@proyecto-viviana/solid-stately';
13
- import { type MaybeAccessor } from '../utils/reactivity';
14
-
15
- // ============================================
16
- // TYPES
17
- // ============================================
18
-
19
- export interface AriaSwitchProps extends AriaToggleProps {
20
- // Switch uses the same props as toggle
21
- }
22
-
23
- export interface SwitchAria {
24
- /** Props for the label wrapper element. */
25
- labelProps: JSX.LabelHTMLAttributes<HTMLLabelElement>;
26
- /** Props for the input element. */
27
- inputProps: JSX.InputHTMLAttributes<HTMLInputElement>;
28
- /** Whether the switch is selected. */
29
- isSelected: Accessor<boolean>;
30
- /** Whether the switch is in a pressed state. */
31
- isPressed: Accessor<boolean>;
32
- /** Whether the switch is disabled. */
33
- isDisabled: boolean;
34
- /** Whether the switch is read only. */
35
- isReadOnly: boolean;
36
- }
37
-
38
- // ============================================
39
- // IMPLEMENTATION
40
- // ============================================
41
-
42
- /**
43
- * Provides the behavior and accessibility implementation for a switch component.
44
- * A switch is similar to a checkbox, but represents on/off values as opposed to selection.
45
- */
46
- export function createSwitch(
47
- props: MaybeAccessor<AriaSwitchProps>,
48
- state: ToggleState,
49
- ref: () => HTMLInputElement | null
50
- ): SwitchAria {
51
- // Don't destructure inputProps - it's a getter that needs to be evaluated each time
52
- const toggle = createToggle(props, state, ref);
53
-
54
- return {
55
- labelProps: toggle.labelProps,
56
- get inputProps() {
57
- // Access toggle.inputProps (the getter) each time to get fresh values
58
- const baseProps = toggle.inputProps;
59
- return {
60
- ...baseProps,
61
- role: 'switch' as const,
62
- checked: toggle.isSelected(),
63
- };
64
- },
65
- isSelected: toggle.isSelected,
66
- isPressed: toggle.isPressed,
67
- isDisabled: toggle.isDisabled,
68
- isReadOnly: toggle.isReadOnly,
69
- };
70
- }
@@ -1 +0,0 @@
1
- export { createSwitch, type AriaSwitchProps, type SwitchAria } from './createSwitch';
@@ -1,526 +0,0 @@
1
- /**
2
- * createTable - Provides accessibility for a table component.
3
- * Based on @react-aria/table/useTable.
4
- */
5
-
6
- import { createMemo, createEffect, on, type Accessor } from 'solid-js';
7
- import type { JSX } from 'solid-js';
8
- import { createId } from '@proyecto-viviana/solid-stately';
9
- import type { TableState, TableCollection, Key, GridNode } from '@proyecto-viviana/solid-stately';
10
- import type { AriaTableProps, TableAria } from './types';
11
- import { useLocale } from '../i18n';
12
- import { announce } from '../live-announcer';
13
-
14
- // Global map to store table metadata for child components
15
- const tableMap = new WeakMap<
16
- object,
17
- {
18
- tableId: string;
19
- actions: { onRowAction?: (key: Key) => void; onCellAction?: (key: Key) => void };
20
- shouldSelectOnPressUp?: boolean;
21
- focusMode?: 'row' | 'cell';
22
- }
23
- >();
24
-
25
- /**
26
- * Get the table metadata for child components.
27
- */
28
- export function getTableData<T>(state: TableState<T, TableCollection<T>>) {
29
- return tableMap.get(state);
30
- }
31
-
32
- /**
33
- * Helper to get cells from a row by iterating children
34
- */
35
- function getChildCells<T>(collection: TableCollection<T>, rowKey: Key): GridNode<T>[] {
36
- const children = collection.getChildren(rowKey);
37
- return [...children].filter(node => node.type === 'cell' || node.type === 'rowheader');
38
- }
39
-
40
- /**
41
- * Helper to get cell at specific index in a row
42
- */
43
- function getCellAtIndex<T>(collection: TableCollection<T>, rowKey: Key, index: number): GridNode<T> | null {
44
- const cells = getChildCells(collection, rowKey);
45
- return cells[index] ?? null;
46
- }
47
-
48
- /**
49
- * Helper to check if a node is a cell
50
- */
51
- function isCell<T>(node: GridNode<T> | null): boolean {
52
- return node?.type === 'cell' || node?.type === 'rowheader';
53
- }
54
-
55
- /**
56
- * Helper to check if a node is a row
57
- */
58
- function isRow<T>(node: GridNode<T> | null): boolean {
59
- return node?.type === 'item';
60
- }
61
-
62
- /**
63
- * Creates accessibility props for a table component.
64
- */
65
- export function createTable<T extends object>(
66
- props: Accessor<AriaTableProps>,
67
- state: Accessor<TableState<T, TableCollection<T>>>,
68
- ref: Accessor<HTMLTableElement | null>
69
- ): TableAria {
70
- const id = createId(props().id);
71
- const locale = useLocale();
72
-
73
- // Track previous sort descriptor for announcements
74
- let prevSortDescriptor: { column: Key; direction: 'ascending' | 'descending' } | null = null;
75
- let isFirstRender = true;
76
-
77
- // Store metadata for child components
78
- const storeTableData = () => {
79
- const s = state();
80
- const p = props();
81
- tableMap.set(s, {
82
- tableId: id,
83
- actions: {
84
- onRowAction: p.onRowAction,
85
- onCellAction: p.onCellAction,
86
- },
87
- shouldSelectOnPressUp: p.shouldSelectOnPressUp,
88
- focusMode: p.focusMode,
89
- });
90
- };
91
-
92
- // Update table data whenever props/state changes
93
- createMemo(() => {
94
- storeTableData();
95
- });
96
-
97
- // Announce sort changes (only after initial render)
98
- createEffect(on(
99
- () => state().sortDescriptor,
100
- (sortDescriptor) => {
101
- if (isFirstRender) {
102
- isFirstRender = false;
103
- prevSortDescriptor = sortDescriptor;
104
- return;
105
- }
106
-
107
- if (sortDescriptor && (
108
- sortDescriptor.column !== prevSortDescriptor?.column ||
109
- sortDescriptor.direction !== prevSortDescriptor?.direction
110
- )) {
111
- const collection = state().collection;
112
- const column = collection.columns.find(c => c.key === sortDescriptor.column);
113
- const columnName = column?.textValue ?? String(sortDescriptor.column);
114
- const directionText = sortDescriptor.direction === 'ascending' ? 'ascending' : 'descending';
115
-
116
- announce(`Sorted by ${columnName}, ${directionText}`, 'assertive', 500);
117
- }
118
-
119
- prevSortDescriptor = sortDescriptor;
120
- }
121
- ));
122
-
123
- // Keyboard navigation handler with full 2D navigation
124
- const onKeyDown = (e: KeyboardEvent) => {
125
- const s = state();
126
- const collection = s.collection;
127
- const p = props();
128
- const focusMode = p.focusMode ?? 'row';
129
- const isRTL = locale().direction === 'rtl';
130
-
131
- if (s.isKeyboardNavigationDisabled) {
132
- return;
133
- }
134
-
135
- const focusedKey = s.focusedKey;
136
- if (focusedKey == null) {
137
- // If nothing is focused, focus the first item
138
- if (e.key === 'ArrowDown' || e.key === 'ArrowUp' || e.key === 'Home' || e.key === 'End') {
139
- const firstKey = collection.getFirstKey();
140
- if (firstKey != null) {
141
- e.preventDefault();
142
- s.setFocusedKey(firstKey);
143
- }
144
- }
145
- return;
146
- }
147
-
148
- const focusedItem = collection.getItem(focusedKey);
149
- if (!focusedItem) return;
150
-
151
- let nextKey: Key | null = null;
152
-
153
- switch (e.key) {
154
- case 'ArrowDown': {
155
- e.preventDefault();
156
- // If focused on a cell, move to the same column in the next row
157
- if (isCell(focusedItem) && focusedItem.parentKey != null) {
158
- const nextRowKey = collection.getKeyAfter(focusedItem.parentKey);
159
- if (nextRowKey != null) {
160
- const cellIndex = focusedItem.index;
161
- const nextCell = getCellAtIndex(collection, nextRowKey, cellIndex);
162
- nextKey = nextCell?.key ?? nextRowKey;
163
- }
164
- } else {
165
- // Move to next row
166
- nextKey = collection.getKeyAfter(focusedKey);
167
- }
168
- break;
169
- }
170
-
171
- case 'ArrowUp': {
172
- e.preventDefault();
173
- // If focused on a cell, move to the same column in the previous row
174
- if (isCell(focusedItem) && focusedItem.parentKey != null) {
175
- const prevRowKey = collection.getKeyBefore(focusedItem.parentKey);
176
- if (prevRowKey != null) {
177
- const cellIndex = focusedItem.index;
178
- const prevCell = getCellAtIndex(collection, prevRowKey, cellIndex);
179
- nextKey = prevCell?.key ?? prevRowKey;
180
- }
181
- } else {
182
- // Move to previous row
183
- nextKey = collection.getKeyBefore(focusedKey);
184
- }
185
- break;
186
- }
187
-
188
- case 'ArrowRight': {
189
- e.preventDefault();
190
- const goNext = !isRTL;
191
-
192
- if (isRow(focusedItem)) {
193
- // If on a row, go to the first/last cell
194
- const cells = getChildCells(collection, focusedKey);
195
- if (cells.length > 0) {
196
- nextKey = goNext ? cells[0].key : cells[cells.length - 1].key;
197
- }
198
- } else if (isCell(focusedItem) && focusedItem.parentKey != null) {
199
- // If on a cell, go to the next/prev cell
200
- const cells = getChildCells(collection, focusedItem.parentKey);
201
- const currentIndex = focusedItem.index;
202
- const targetIndex = goNext ? currentIndex + 1 : currentIndex - 1;
203
-
204
- if (targetIndex >= 0 && targetIndex < cells.length) {
205
- nextKey = cells[targetIndex].key;
206
- } else if (focusMode === 'row') {
207
- // Wrap to row
208
- nextKey = focusedItem.parentKey;
209
- } else {
210
- // Wrap to first/last cell
211
- nextKey = goNext ? cells[0].key : cells[cells.length - 1].key;
212
- }
213
- }
214
- break;
215
- }
216
-
217
- case 'ArrowLeft': {
218
- e.preventDefault();
219
- const goNext = isRTL;
220
-
221
- if (isRow(focusedItem)) {
222
- // If on a row, go to the last/first cell
223
- const cells = getChildCells(collection, focusedKey);
224
- if (cells.length > 0) {
225
- nextKey = goNext ? cells[0].key : cells[cells.length - 1].key;
226
- }
227
- } else if (isCell(focusedItem) && focusedItem.parentKey != null) {
228
- // If on a cell, go to the prev/next cell
229
- const cells = getChildCells(collection, focusedItem.parentKey);
230
- const currentIndex = focusedItem.index;
231
- const targetIndex = goNext ? currentIndex + 1 : currentIndex - 1;
232
-
233
- if (targetIndex >= 0 && targetIndex < cells.length) {
234
- nextKey = cells[targetIndex].key;
235
- } else if (focusMode === 'row') {
236
- // Wrap to row
237
- nextKey = focusedItem.parentKey;
238
- } else {
239
- // Wrap to first/last cell
240
- nextKey = goNext ? cells[0].key : cells[cells.length - 1].key;
241
- }
242
- }
243
- break;
244
- }
245
-
246
- case 'Home': {
247
- e.preventDefault();
248
- if (e.ctrlKey) {
249
- // Ctrl+Home: Go to first row/cell
250
- const firstRowKey = collection.getFirstKey();
251
- if (firstRowKey != null) {
252
- if (isCell(focusedItem) || focusMode === 'cell') {
253
- const cells = getChildCells(collection, firstRowKey);
254
- nextKey = cells[0]?.key ?? firstRowKey;
255
- } else {
256
- nextKey = firstRowKey;
257
- }
258
- }
259
- } else if (isCell(focusedItem) && focusedItem.parentKey != null) {
260
- // Home: Go to first cell in current row
261
- const cells = getChildCells(collection, focusedItem.parentKey);
262
- nextKey = cells[0]?.key ?? null;
263
- } else {
264
- // On row: go to first row
265
- nextKey = collection.getFirstKey();
266
- }
267
- break;
268
- }
269
-
270
- case 'End': {
271
- e.preventDefault();
272
- if (e.ctrlKey) {
273
- // Ctrl+End: Go to last row/cell
274
- const lastRowKey = collection.getLastKey();
275
- if (lastRowKey != null) {
276
- if (isCell(focusedItem) || focusMode === 'cell') {
277
- const cells = getChildCells(collection, lastRowKey);
278
- nextKey = cells[cells.length - 1]?.key ?? lastRowKey;
279
- } else {
280
- nextKey = lastRowKey;
281
- }
282
- }
283
- } else if (isCell(focusedItem) && focusedItem.parentKey != null) {
284
- // End: Go to last cell in current row
285
- const cells = getChildCells(collection, focusedItem.parentKey);
286
- nextKey = cells[cells.length - 1]?.key ?? null;
287
- } else {
288
- // On row: go to last row
289
- nextKey = collection.getLastKey();
290
- }
291
- break;
292
- }
293
-
294
- case 'PageDown': {
295
- e.preventDefault();
296
- // Move down by roughly a page (using DOM measurements if available)
297
- const el = ref();
298
- if (el) {
299
- const visibleHeight = el.clientHeight;
300
- let currentKey: Key | null = focusedKey;
301
- let traveled = 0;
302
-
303
- // If on a cell, start from the parent row
304
- if (isCell(focusedItem) && focusedItem.parentKey != null) {
305
- currentKey = focusedItem.parentKey;
306
- }
307
-
308
- // Move down until we've traveled approximately one page
309
- while (currentKey != null && traveled < visibleHeight) {
310
- const next = collection.getKeyAfter(currentKey);
311
- if (next == null) break;
312
-
313
- // Estimate row height (default to 40px if we can't measure)
314
- const rowElement = el.querySelector(`[data-key="${currentKey}"]`);
315
- traveled += rowElement?.clientHeight ?? 40;
316
- currentKey = next;
317
- }
318
-
319
- if (currentKey != null) {
320
- // If we started on a cell, focus the same column in the new row
321
- if (isCell(focusedItem)) {
322
- const cellIndex = focusedItem.index;
323
- const targetCell = getCellAtIndex(collection, currentKey, cellIndex);
324
- nextKey = targetCell?.key ?? currentKey;
325
- } else {
326
- nextKey = currentKey;
327
- }
328
- }
329
- } else {
330
- // Fallback: move 10 rows
331
- let count = 10;
332
- let current: Key | null = isCell(focusedItem) && focusedItem.parentKey != null
333
- ? focusedItem.parentKey
334
- : focusedKey;
335
- while (count > 0 && current != null) {
336
- const next = collection.getKeyAfter(current);
337
- if (next == null) break;
338
- current = next;
339
- count--;
340
- }
341
- if (current != null && isCell(focusedItem)) {
342
- const targetCell = getCellAtIndex(collection, current, focusedItem.index);
343
- nextKey = targetCell?.key ?? current;
344
- } else {
345
- nextKey = current;
346
- }
347
- }
348
- break;
349
- }
350
-
351
- case 'PageUp': {
352
- e.preventDefault();
353
- // Move up by roughly a page
354
- const el = ref();
355
- if (el) {
356
- const visibleHeight = el.clientHeight;
357
- let currentKey: Key | null = focusedKey;
358
- let traveled = 0;
359
-
360
- // If on a cell, start from the parent row
361
- if (isCell(focusedItem) && focusedItem.parentKey != null) {
362
- currentKey = focusedItem.parentKey;
363
- }
364
-
365
- // Move up until we've traveled approximately one page
366
- while (currentKey != null && traveled < visibleHeight) {
367
- const prev = collection.getKeyBefore(currentKey);
368
- if (prev == null) break;
369
-
370
- const rowElement = el.querySelector(`[data-key="${currentKey}"]`);
371
- traveled += rowElement?.clientHeight ?? 40;
372
- currentKey = prev;
373
- }
374
-
375
- if (currentKey != null) {
376
- if (isCell(focusedItem)) {
377
- const cellIndex = focusedItem.index;
378
- const targetCell = getCellAtIndex(collection, currentKey, cellIndex);
379
- nextKey = targetCell?.key ?? currentKey;
380
- } else {
381
- nextKey = currentKey;
382
- }
383
- }
384
- } else {
385
- // Fallback: move 10 rows
386
- let count = 10;
387
- let current: Key | null = isCell(focusedItem) && focusedItem.parentKey != null
388
- ? focusedItem.parentKey
389
- : focusedKey;
390
- while (count > 0 && current != null) {
391
- const prev = collection.getKeyBefore(current);
392
- if (prev == null) break;
393
- current = prev;
394
- count--;
395
- }
396
- if (current != null && isCell(focusedItem)) {
397
- const targetCell = getCellAtIndex(collection, current, focusedItem.index);
398
- nextKey = targetCell?.key ?? current;
399
- } else {
400
- nextKey = current;
401
- }
402
- }
403
- break;
404
- }
405
-
406
- case 'Escape':
407
- s.clearSelection();
408
- return;
409
-
410
- case 'a':
411
- if (e.ctrlKey || e.metaKey) {
412
- e.preventDefault();
413
- if (s.selectionMode === 'multiple') {
414
- s.selectAll();
415
- }
416
- }
417
- return;
418
-
419
- case ' ':
420
- case 'Enter':
421
- e.preventDefault();
422
- // Toggle selection or trigger action
423
- if (s.selectionMode !== 'none') {
424
- // For cells, select the parent row
425
- const keyToSelect = isCell(focusedItem) && focusedItem.parentKey != null
426
- ? focusedItem.parentKey
427
- : focusedKey;
428
-
429
- if (e.shiftKey && s.selectionMode === 'multiple') {
430
- s.extendSelection(keyToSelect);
431
- } else {
432
- s.toggleSelection(keyToSelect);
433
- }
434
- }
435
- return;
436
-
437
- default:
438
- return;
439
- }
440
-
441
- if (nextKey != null) {
442
- s.setFocusedKey(nextKey);
443
-
444
- // Handle shift+arrow for range selection
445
- if (e.shiftKey && s.selectionMode === 'multiple') {
446
- // For cells, select the parent row
447
- const focusedNode = collection.getItem(nextKey);
448
- const keyToSelect = focusedNode && isCell(focusedNode) && focusedNode.parentKey != null
449
- ? focusedNode.parentKey
450
- : nextKey;
451
- s.extendSelection(keyToSelect);
452
- }
453
- }
454
- };
455
-
456
- // Focus handling
457
- const onFocus = (e: FocusEvent) => {
458
- const s = state();
459
- const el = ref();
460
-
461
- if (!el?.contains(e.target as Element)) {
462
- return;
463
- }
464
-
465
- if (!s.isFocused) {
466
- s.setFocused(true);
467
-
468
- // If no key is focused, focus the first one
469
- if (s.focusedKey == null) {
470
- const firstKey = s.collection.getFirstKey();
471
- if (firstKey != null) {
472
- s.setFocusedKey(firstKey);
473
- }
474
- }
475
- }
476
- };
477
-
478
- const onBlur = (e: FocusEvent) => {
479
- const s = state();
480
- const el = ref();
481
-
482
- // Only blur if focus is leaving the table entirely
483
- if (el && !el.contains(e.relatedTarget as Element)) {
484
- s.setFocused(false);
485
- }
486
- };
487
-
488
- // Warn if no label is provided
489
- createMemo(() => {
490
- const p = props();
491
- if (!p['aria-label'] && !p['aria-labelledby']) {
492
- console.warn('Table: An aria-label or aria-labelledby prop is required for accessibility.');
493
- }
494
- });
495
-
496
- const gridProps = createMemo(() => {
497
- const p = props();
498
- const s = state();
499
-
500
- const baseProps: Record<string, unknown> = {
501
- role: 'grid',
502
- id,
503
- 'aria-label': p['aria-label'],
504
- 'aria-labelledby': p['aria-labelledby'],
505
- 'aria-describedby': p['aria-describedby'],
506
- 'aria-multiselectable': s.selectionMode === 'multiple' ? 'true' : undefined,
507
- tabIndex: s.collection.size === 0 ? 0 : -1,
508
- onKeyDown,
509
- onFocus,
510
- onBlur,
511
- };
512
-
513
- if (p.isVirtualized) {
514
- baseProps['aria-rowcount'] = s.collection.rowCount;
515
- baseProps['aria-colcount'] = s.collection.columnCount;
516
- }
517
-
518
- return baseProps as JSX.HTMLAttributes<HTMLTableElement>;
519
- });
520
-
521
- return {
522
- get gridProps() {
523
- return gridProps();
524
- },
525
- };
526
- }