@proyecto-viviana/solidaria 0.2.8 → 0.3.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 (548) hide show
  1. package/README.md +31 -236
  2. package/dist/actiongroup/createActionGroup.d.ts +5 -5
  3. package/dist/actiongroup/createActionGroup.d.ts.map +1 -1
  4. package/dist/actiongroup/index.d.ts +1 -1
  5. package/dist/autocomplete/createAutocomplete.d.ts +10 -10
  6. package/dist/autocomplete/createAutocomplete.d.ts.map +1 -1
  7. package/dist/autocomplete/index.d.ts +1 -1
  8. package/dist/autocomplete/index.d.ts.map +1 -1
  9. package/dist/breadcrumbs/createBreadcrumbs.d.ts +9 -7
  10. package/dist/breadcrumbs/createBreadcrumbs.d.ts.map +1 -1
  11. package/dist/breadcrumbs/index.d.ts +1 -1
  12. package/dist/button/createButton.d.ts +1 -1
  13. package/dist/button/createButton.d.ts.map +1 -1
  14. package/dist/button/createToggleButton.d.ts +3 -3
  15. package/dist/button/createToggleButtonGroup.d.ts +7 -7
  16. package/dist/button/createToggleButtonGroup.d.ts.map +1 -1
  17. package/dist/button/index.d.ts +6 -6
  18. package/dist/button/index.d.ts.map +1 -1
  19. package/dist/button/types.d.ts +18 -12
  20. package/dist/button/types.d.ts.map +1 -1
  21. package/dist/calendar/createCalendar.d.ts +15 -5
  22. package/dist/calendar/createCalendar.d.ts.map +1 -1
  23. package/dist/calendar/createCalendarCell.d.ts +6 -2
  24. package/dist/calendar/createCalendarCell.d.ts.map +1 -1
  25. package/dist/calendar/createCalendarGrid.d.ts +4 -4
  26. package/dist/calendar/createCalendarGrid.d.ts.map +1 -1
  27. package/dist/calendar/createRangeCalendar.d.ts +15 -5
  28. package/dist/calendar/createRangeCalendar.d.ts.map +1 -1
  29. package/dist/calendar/createRangeCalendarCell.d.ts +4 -2
  30. package/dist/calendar/createRangeCalendarCell.d.ts.map +1 -1
  31. package/dist/calendar/index.d.ts +5 -5
  32. package/dist/calendar/index.d.ts.map +1 -1
  33. package/dist/calendar/intl/index.d.ts +12 -0
  34. package/dist/calendar/intl/index.d.ts.map +1 -0
  35. package/dist/calendar/utils.d.ts +12 -0
  36. package/dist/calendar/utils.d.ts.map +1 -0
  37. package/dist/checkbox/createCheckbox.d.ts +6 -6
  38. package/dist/checkbox/createCheckbox.d.ts.map +1 -1
  39. package/dist/checkbox/createCheckboxGroup.d.ts +7 -7
  40. package/dist/checkbox/createCheckboxGroup.d.ts.map +1 -1
  41. package/dist/checkbox/createCheckboxGroupItem.d.ts +4 -4
  42. package/dist/checkbox/createCheckboxGroupItem.d.ts.map +1 -1
  43. package/dist/checkbox/createCheckboxGroupState.d.ts +2 -2
  44. package/dist/checkbox/createCheckboxGroupState.d.ts.map +1 -1
  45. package/dist/checkbox/index.d.ts +8 -8
  46. package/dist/checkbox/index.d.ts.map +1 -1
  47. package/dist/collections/index.d.ts +3 -3
  48. package/dist/collections/index.d.ts.map +1 -1
  49. package/dist/color/createColorArea.d.ts +3 -3
  50. package/dist/color/createColorArea.d.ts.map +1 -1
  51. package/dist/color/createColorField.d.ts +4 -4
  52. package/dist/color/createColorField.d.ts.map +1 -1
  53. package/dist/color/createColorSlider.d.ts +4 -4
  54. package/dist/color/createColorSlider.d.ts.map +1 -1
  55. package/dist/color/createColorSwatch.d.ts +2 -2
  56. package/dist/color/createColorSwatch.d.ts.map +1 -1
  57. package/dist/color/createColorWheel.d.ts +3 -3
  58. package/dist/color/createColorWheel.d.ts.map +1 -1
  59. package/dist/color/index.d.ts +6 -6
  60. package/dist/color/types.d.ts +98 -16
  61. package/dist/color/types.d.ts.map +1 -1
  62. package/dist/combobox/createComboBox.d.ts +10 -7
  63. package/dist/combobox/createComboBox.d.ts.map +1 -1
  64. package/dist/combobox/index.d.ts +1 -1
  65. package/dist/combobox/intl/index.d.ts +1 -1
  66. package/dist/datepicker/createDateField.d.ts +18 -6
  67. package/dist/datepicker/createDateField.d.ts.map +1 -1
  68. package/dist/datepicker/createDatePicker.d.ts +51 -5
  69. package/dist/datepicker/createDatePicker.d.ts.map +1 -1
  70. package/dist/datepicker/createDatePickerGroup.d.ts +19 -0
  71. package/dist/datepicker/createDatePickerGroup.d.ts.map +1 -0
  72. package/dist/datepicker/createDateRangePicker.d.ts +8 -6
  73. package/dist/datepicker/createDateRangePicker.d.ts.map +1 -1
  74. package/dist/datepicker/createDateSegment.d.ts +10 -2
  75. package/dist/datepicker/createDateSegment.d.ts.map +1 -1
  76. package/dist/datepicker/createTimeField.d.ts +11 -5
  77. package/dist/datepicker/createTimeField.d.ts.map +1 -1
  78. package/dist/datepicker/createTimeSegment.d.ts +2 -2
  79. package/dist/datepicker/createTimeSegment.d.ts.map +1 -1
  80. package/dist/datepicker/index.d.ts +7 -6
  81. package/dist/datepicker/index.d.ts.map +1 -1
  82. package/dist/dialog/createDialog.d.ts +5 -5
  83. package/dist/dialog/createDialog.d.ts.map +1 -1
  84. package/dist/dialog/index.d.ts +2 -2
  85. package/dist/dialog/index.d.ts.map +1 -1
  86. package/dist/dialog/types.d.ts +4 -4
  87. package/dist/disclosure/createDisclosure.d.ts +5 -2
  88. package/dist/disclosure/createDisclosure.d.ts.map +1 -1
  89. package/dist/disclosure/createDisclosureGroup.d.ts +4 -4
  90. package/dist/disclosure/createDisclosureGroup.d.ts.map +1 -1
  91. package/dist/disclosure/index.d.ts +2 -2
  92. package/dist/dnd/createDrag.d.ts +2 -2
  93. package/dist/dnd/createDrag.d.ts.map +1 -1
  94. package/dist/dnd/createDraggableCollection.d.ts +2 -2
  95. package/dist/dnd/createDraggableItem.d.ts +3 -3
  96. package/dist/dnd/createDraggableItem.d.ts.map +1 -1
  97. package/dist/dnd/createDrop.d.ts +2 -2
  98. package/dist/dnd/createDrop.d.ts.map +1 -1
  99. package/dist/dnd/createDroppableCollection.d.ts +26 -6
  100. package/dist/dnd/createDroppableCollection.d.ts.map +1 -1
  101. package/dist/dnd/createDroppableItem.d.ts +3 -3
  102. package/dist/dnd/index.d.ts +12 -12
  103. package/dist/dnd/index.d.ts.map +1 -1
  104. package/dist/dnd/types.d.ts +2 -2
  105. package/dist/dnd/types.d.ts.map +1 -1
  106. package/dist/dnd/utils.d.ts +1 -1
  107. package/dist/dnd/utils.d.ts.map +1 -1
  108. package/dist/focus/FocusScope.d.ts +1 -1
  109. package/dist/focus/FocusScope.d.ts.map +1 -1
  110. package/dist/focus/createAutoFocus.d.ts.map +1 -1
  111. package/dist/focus/createFocusRestore.d.ts.map +1 -1
  112. package/dist/focus/createVirtualFocus.d.ts +4 -4
  113. package/dist/focus/createVirtualFocus.d.ts.map +1 -1
  114. package/dist/focus/index.d.ts +4 -4
  115. package/dist/focus/index.d.ts.map +1 -1
  116. package/dist/form/createFormReset.d.ts +1 -1
  117. package/dist/form/createFormValidation.d.ts +3 -3
  118. package/dist/form/createFormValidation.d.ts.map +1 -1
  119. package/dist/form/index.d.ts +2 -2
  120. package/dist/form/index.d.ts.map +1 -1
  121. package/dist/grid/GridKeyboardDelegate.d.ts +5 -5
  122. package/dist/grid/createGrid.d.ts +3 -3
  123. package/dist/grid/createGridCell.d.ts +3 -3
  124. package/dist/grid/createGridRow.d.ts +3 -3
  125. package/dist/grid/index.d.ts +5 -5
  126. package/dist/grid/types.d.ts +8 -8
  127. package/dist/gridlist/createGridList.d.ts +6 -4
  128. package/dist/gridlist/createGridList.d.ts.map +1 -1
  129. package/dist/gridlist/createGridListItem.d.ts +4 -4
  130. package/dist/gridlist/createGridListItem.d.ts.map +1 -1
  131. package/dist/gridlist/createGridListSelectionCheckbox.d.ts +3 -3
  132. package/dist/gridlist/createGridListSelectionCheckbox.d.ts.map +1 -1
  133. package/dist/gridlist/index.d.ts +4 -4
  134. package/dist/gridlist/types.d.ts +11 -7
  135. package/dist/gridlist/types.d.ts.map +1 -1
  136. package/dist/i18n/createCollator.d.ts.map +1 -1
  137. package/dist/i18n/createDateFormatter.d.ts.map +1 -1
  138. package/dist/i18n/createFilter.d.ts.map +1 -1
  139. package/dist/i18n/createNumberFormatter.d.ts +1 -1
  140. package/dist/i18n/createNumberFormatter.d.ts.map +1 -1
  141. package/dist/i18n/createStringFormatter.d.ts +2 -2
  142. package/dist/i18n/createStringFormatter.d.ts.map +1 -1
  143. package/dist/i18n/index.d.ts +8 -8
  144. package/dist/i18n/index.d.ts.map +1 -1
  145. package/dist/i18n/locale.d.ts +2 -2
  146. package/dist/i18n/locale.d.ts.map +1 -1
  147. package/dist/i18n/utils.d.ts.map +1 -1
  148. package/dist/index.d.ts +52 -51
  149. package/dist/index.d.ts.map +1 -1
  150. package/dist/index.js +18012 -16820
  151. package/dist/index.js.map +1 -1
  152. package/dist/index.jsx +18242 -0
  153. package/dist/index.jsx.map +1 -0
  154. package/dist/interactions/FocusableProvider.d.ts +2 -2
  155. package/dist/interactions/FocusableProvider.d.ts.map +1 -1
  156. package/dist/interactions/PressEvent.d.ts +2 -2
  157. package/dist/interactions/createFocus.d.ts +1 -1
  158. package/dist/interactions/createFocus.d.ts.map +1 -1
  159. package/dist/interactions/createFocusRing.d.ts +1 -1
  160. package/dist/interactions/createFocusRing.d.ts.map +1 -1
  161. package/dist/interactions/createFocusWithin.d.ts +1 -1
  162. package/dist/interactions/createFocusWithin.d.ts.map +1 -1
  163. package/dist/interactions/createFocusable.d.ts +3 -3
  164. package/dist/interactions/createFocusable.d.ts.map +1 -1
  165. package/dist/interactions/createHover.d.ts +5 -5
  166. package/dist/interactions/createHover.d.ts.map +1 -1
  167. package/dist/interactions/createInteractionModality.d.ts +3 -3
  168. package/dist/interactions/createInteractionModality.d.ts.map +1 -1
  169. package/dist/interactions/createKeyboard.d.ts +1 -1
  170. package/dist/interactions/createLongPress.d.ts +5 -5
  171. package/dist/interactions/createMove.d.ts +5 -5
  172. package/dist/interactions/createMove.d.ts.map +1 -1
  173. package/dist/interactions/createPress.d.ts +4 -4
  174. package/dist/interactions/createPress.d.ts.map +1 -1
  175. package/dist/interactions/index.d.ts +12 -12
  176. package/dist/interactions/index.d.ts.map +1 -1
  177. package/dist/label/createField.d.ts +4 -4
  178. package/dist/label/createField.d.ts.map +1 -1
  179. package/dist/label/createLabel.d.ts +7 -7
  180. package/dist/label/createLabel.d.ts.map +1 -1
  181. package/dist/label/createLabels.d.ts +1 -1
  182. package/dist/label/createLabels.d.ts.map +1 -1
  183. package/dist/label/index.d.ts +5 -5
  184. package/dist/landmark/createLandmark.d.ts +5 -5
  185. package/dist/landmark/createLandmark.d.ts.map +1 -1
  186. package/dist/landmark/index.d.ts +1 -1
  187. package/dist/link/createLink.d.ts +14 -8
  188. package/dist/link/createLink.d.ts.map +1 -1
  189. package/dist/link/index.d.ts +1 -1
  190. package/dist/listbox/createListBox.d.ts +11 -6
  191. package/dist/listbox/createListBox.d.ts.map +1 -1
  192. package/dist/listbox/createOption.d.ts +21 -4
  193. package/dist/listbox/createOption.d.ts.map +1 -1
  194. package/dist/listbox/index.d.ts +2 -2
  195. package/dist/listbox/index.d.ts.map +1 -1
  196. package/dist/live-announcer/announce.d.ts +2 -2
  197. package/dist/live-announcer/announce.d.ts.map +1 -1
  198. package/dist/live-announcer/index.d.ts +1 -1
  199. package/dist/menu/createMenu.d.ts +7 -7
  200. package/dist/menu/createMenu.d.ts.map +1 -1
  201. package/dist/menu/createMenuItem.d.ts +16 -4
  202. package/dist/menu/createMenuItem.d.ts.map +1 -1
  203. package/dist/menu/createMenuTrigger.d.ts +4 -4
  204. package/dist/menu/index.d.ts +3 -3
  205. package/dist/menu/index.d.ts.map +1 -1
  206. package/dist/meter/createMeter.d.ts +6 -6
  207. package/dist/meter/createMeter.d.ts.map +1 -1
  208. package/dist/meter/index.d.ts +1 -1
  209. package/dist/numberfield/createNumberField.d.ts +9 -8
  210. package/dist/numberfield/createNumberField.d.ts.map +1 -1
  211. package/dist/numberfield/index.d.ts +1 -1
  212. package/dist/overlays/ariaHideOutside.d.ts.map +1 -1
  213. package/dist/overlays/createModal.d.ts +3 -3
  214. package/dist/overlays/createModal.d.ts.map +1 -1
  215. package/dist/overlays/createOverlay.d.ts +1 -1
  216. package/dist/overlays/createOverlay.d.ts.map +1 -1
  217. package/dist/overlays/createOverlayTrigger.d.ts +6 -6
  218. package/dist/overlays/index.d.ts +6 -6
  219. package/dist/overlays/index.d.ts.map +1 -1
  220. package/dist/popover/calculatePosition.d.ts +4 -4
  221. package/dist/popover/calculatePosition.d.ts.map +1 -1
  222. package/dist/popover/createOverlayPosition.d.ts +3 -3
  223. package/dist/popover/createOverlayPosition.d.ts.map +1 -1
  224. package/dist/popover/createPopover.d.ts +4 -4
  225. package/dist/popover/createPopover.d.ts.map +1 -1
  226. package/dist/popover/index.d.ts +3 -3
  227. package/dist/progress/createProgressBar.d.ts +7 -5
  228. package/dist/progress/createProgressBar.d.ts.map +1 -1
  229. package/dist/progress/index.d.ts +1 -1
  230. package/dist/radio/createRadio.d.ts +7 -7
  231. package/dist/radio/createRadio.d.ts.map +1 -1
  232. package/dist/radio/createRadioGroup.d.ts +10 -10
  233. package/dist/radio/createRadioGroup.d.ts.map +1 -1
  234. package/dist/radio/createRadioGroupState.d.ts +3 -3
  235. package/dist/radio/createRadioGroupState.d.ts.map +1 -1
  236. package/dist/radio/index.d.ts +3 -3
  237. package/dist/radio/index.d.ts.map +1 -1
  238. package/dist/searchfield/createSearchField.d.ts +7 -7
  239. package/dist/searchfield/createSearchField.d.ts.map +1 -1
  240. package/dist/searchfield/index.d.ts +2 -2
  241. package/dist/select/createHiddenSelect.d.ts +4 -4
  242. package/dist/select/createHiddenSelect.d.ts.map +1 -1
  243. package/dist/select/createSelect.d.ts +14 -6
  244. package/dist/select/createSelect.d.ts.map +1 -1
  245. package/dist/select/index.d.ts +2 -2
  246. package/dist/select/index.d.ts.map +1 -1
  247. package/dist/selection/createTypeSelect.d.ts +2 -2
  248. package/dist/selection/index.d.ts +1 -1
  249. package/dist/separator/createSeparator.d.ts +9 -5
  250. package/dist/separator/createSeparator.d.ts.map +1 -1
  251. package/dist/separator/index.d.ts +1 -1
  252. package/dist/slider/createSlider.d.ts +11 -7
  253. package/dist/slider/createSlider.d.ts.map +1 -1
  254. package/dist/slider/index.d.ts +2 -2
  255. package/dist/ssr/index.d.ts +1 -1
  256. package/dist/ssr/index.d.ts.map +1 -1
  257. package/dist/steplist/createStepList.d.ts +36 -0
  258. package/dist/steplist/createStepList.d.ts.map +1 -0
  259. package/dist/steplist/index.d.ts +2 -0
  260. package/dist/steplist/index.d.ts.map +1 -0
  261. package/dist/switch/createSwitch.d.ts +6 -4
  262. package/dist/switch/createSwitch.d.ts.map +1 -1
  263. package/dist/switch/index.d.ts +1 -1
  264. package/dist/table/createTable.d.ts +3 -3
  265. package/dist/table/createTable.d.ts.map +1 -1
  266. package/dist/table/createTableCell.d.ts +3 -3
  267. package/dist/table/createTableCell.d.ts.map +1 -1
  268. package/dist/table/createTableColumnHeader.d.ts +3 -3
  269. package/dist/table/createTableColumnHeader.d.ts.map +1 -1
  270. package/dist/table/createTableColumnResize.d.ts +41 -0
  271. package/dist/table/createTableColumnResize.d.ts.map +1 -0
  272. package/dist/table/createTableHeaderRow.d.ts +3 -3
  273. package/dist/table/createTableRow.d.ts +3 -3
  274. package/dist/table/createTableRow.d.ts.map +1 -1
  275. package/dist/table/createTableRowGroup.d.ts +2 -2
  276. package/dist/table/createTableRowGroup.d.ts.map +1 -1
  277. package/dist/table/createTableSelectAllCheckbox.d.ts +3 -3
  278. package/dist/table/createTableSelectAllCheckbox.d.ts.map +1 -1
  279. package/dist/table/createTableSelectionCheckbox.d.ts +3 -3
  280. package/dist/table/index.d.ts +11 -9
  281. package/dist/table/index.d.ts.map +1 -1
  282. package/dist/table/types.d.ts +15 -7
  283. package/dist/table/types.d.ts.map +1 -1
  284. package/dist/tabs/createTabs.d.ts +28 -25
  285. package/dist/tabs/createTabs.d.ts.map +1 -1
  286. package/dist/tabs/index.d.ts +1 -1
  287. package/dist/tag/createTag.d.ts +2 -2
  288. package/dist/tag/createTag.d.ts.map +1 -1
  289. package/dist/tag/createTagGroup.d.ts +5 -5
  290. package/dist/tag/createTagGroup.d.ts.map +1 -1
  291. package/dist/tag/index.d.ts +2 -2
  292. package/dist/tag/index.d.ts.map +1 -1
  293. package/dist/textfield/createTextField.d.ts +17 -11
  294. package/dist/textfield/createTextField.d.ts.map +1 -1
  295. package/dist/textfield/index.d.ts +1 -1
  296. package/dist/textfield/index.d.ts.map +1 -1
  297. package/dist/toast/createToast.d.ts +2 -2
  298. package/dist/toast/createToast.d.ts.map +1 -1
  299. package/dist/toast/createToastRegion.d.ts +5 -3
  300. package/dist/toast/createToastRegion.d.ts.map +1 -1
  301. package/dist/toast/index.d.ts +2 -2
  302. package/dist/toast/index.d.ts.map +1 -1
  303. package/dist/toggle/createToggle.d.ts +9 -9
  304. package/dist/toggle/createToggle.d.ts.map +1 -1
  305. package/dist/toggle/createToggleState.d.ts +2 -2
  306. package/dist/toggle/createToggleState.d.ts.map +1 -1
  307. package/dist/toggle/index.d.ts +4 -4
  308. package/dist/toggle/index.d.ts.map +1 -1
  309. package/dist/toolbar/createToolbar.d.ts +9 -9
  310. package/dist/toolbar/createToolbar.d.ts.map +1 -1
  311. package/dist/toolbar/index.d.ts +1 -1
  312. package/dist/toolbar/index.d.ts.map +1 -1
  313. package/dist/tooltip/createTooltip.d.ts +5 -5
  314. package/dist/tooltip/createTooltip.d.ts.map +1 -1
  315. package/dist/tooltip/createTooltipTrigger.d.ts +10 -5
  316. package/dist/tooltip/createTooltipTrigger.d.ts.map +1 -1
  317. package/dist/tooltip/index.d.ts +2 -2
  318. package/dist/tree/createTree.d.ts +3 -3
  319. package/dist/tree/createTree.d.ts.map +1 -1
  320. package/dist/tree/createTreeItem.d.ts +4 -4
  321. package/dist/tree/createTreeItem.d.ts.map +1 -1
  322. package/dist/tree/createTreeSelectionCheckbox.d.ts +3 -3
  323. package/dist/tree/createTreeSelectionCheckbox.d.ts.map +1 -1
  324. package/dist/tree/index.d.ts +4 -4
  325. package/dist/tree/types.d.ts +10 -6
  326. package/dist/tree/types.d.ts.map +1 -1
  327. package/dist/utils/createDescription.d.ts +2 -2
  328. package/dist/utils/createDescription.d.ts.map +1 -1
  329. package/dist/utils/dom.d.ts.map +1 -1
  330. package/dist/utils/env.d.ts.map +1 -1
  331. package/dist/utils/focus.d.ts +1 -1
  332. package/dist/utils/focus.d.ts.map +1 -1
  333. package/dist/utils/geometry.d.ts.map +1 -1
  334. package/dist/utils/index.d.ts +12 -12
  335. package/dist/utils/index.d.ts.map +1 -1
  336. package/dist/utils/mergeProps.d.ts.map +1 -1
  337. package/dist/utils/reactivity.d.ts +1 -1
  338. package/dist/visually-hidden/createVisuallyHidden.d.ts +2 -2
  339. package/dist/visually-hidden/createVisuallyHidden.d.ts.map +1 -1
  340. package/dist/visually-hidden/index.d.ts +1 -1
  341. package/package.json +32 -32
  342. package/src/actiongroup/createActionGroup.ts +101 -91
  343. package/src/actiongroup/index.ts +1 -1
  344. package/src/autocomplete/createAutocomplete.ts +117 -134
  345. package/src/autocomplete/index.ts +1 -1
  346. package/src/breadcrumbs/createBreadcrumbs.ts +33 -42
  347. package/src/breadcrumbs/index.ts +1 -1
  348. package/src/button/createButton.ts +102 -73
  349. package/src/button/createToggleButton.ts +10 -10
  350. package/src/button/createToggleButtonGroup.ts +25 -32
  351. package/src/button/index.ts +6 -9
  352. package/src/button/types.ts +18 -12
  353. package/src/calendar/createCalendar.ts +62 -29
  354. package/src/calendar/createCalendarCell.ts +98 -46
  355. package/src/calendar/createCalendarGrid.ts +57 -35
  356. package/src/calendar/createRangeCalendar.ts +66 -31
  357. package/src/calendar/createRangeCalendarCell.ts +92 -31
  358. package/src/calendar/index.ts +5 -9
  359. package/src/calendar/intl/index.ts +210 -0
  360. package/src/calendar/utils.ts +227 -0
  361. package/src/checkbox/createCheckbox.ts +13 -21
  362. package/src/checkbox/createCheckboxGroup.ts +68 -44
  363. package/src/checkbox/createCheckboxGroupItem.ts +16 -27
  364. package/src/checkbox/createCheckboxGroupState.ts +3 -22
  365. package/src/checkbox/index.ts +8 -10
  366. package/src/collections/index.ts +33 -29
  367. package/src/color/createColorArea.ts +232 -154
  368. package/src/color/createColorField.ts +107 -58
  369. package/src/color/createColorSlider.ts +231 -73
  370. package/src/color/createColorSwatch.ts +38 -13
  371. package/src/color/createColorWheel.ts +208 -83
  372. package/src/color/index.ts +6 -6
  373. package/src/color/types.ts +98 -16
  374. package/src/combobox/createComboBox.ts +157 -100
  375. package/src/combobox/index.ts +1 -1
  376. package/src/combobox/intl/index.ts +5 -5
  377. package/src/datepicker/createDateField.ts +192 -39
  378. package/src/datepicker/createDatePicker.ts +260 -67
  379. package/src/datepicker/createDatePickerGroup.ts +149 -0
  380. package/src/datepicker/createDateRangePicker.ts +105 -57
  381. package/src/datepicker/createDateSegment.ts +183 -96
  382. package/src/datepicker/createTimeField.ts +38 -34
  383. package/src/datepicker/createTimeSegment.ts +67 -85
  384. package/src/datepicker/index.ts +13 -14
  385. package/src/dialog/createDialog.ts +45 -38
  386. package/src/dialog/index.ts +2 -2
  387. package/src/dialog/types.ts +4 -4
  388. package/src/disclosure/createDisclosure.ts +138 -33
  389. package/src/disclosure/createDisclosureGroup.ts +8 -21
  390. package/src/disclosure/index.ts +2 -2
  391. package/src/dnd/createDrag.ts +19 -25
  392. package/src/dnd/createDraggableCollection.ts +4 -4
  393. package/src/dnd/createDraggableItem.ts +20 -19
  394. package/src/dnd/createDrop.ts +42 -51
  395. package/src/dnd/createDroppableCollection.ts +290 -173
  396. package/src/dnd/createDroppableItem.ts +34 -34
  397. package/src/dnd/index.ts +23 -12
  398. package/src/dnd/types.ts +4 -7
  399. package/src/dnd/utils.ts +36 -49
  400. package/src/focus/FocusScope.tsx +155 -164
  401. package/src/focus/createAutoFocus.ts +4 -20
  402. package/src/focus/createFocusRestore.ts +15 -28
  403. package/src/focus/createVirtualFocus.ts +20 -36
  404. package/src/focus/index.ts +4 -8
  405. package/src/form/createFormReset.ts +4 -4
  406. package/src/form/createFormValidation.ts +20 -43
  407. package/src/form/index.ts +2 -5
  408. package/src/grid/GridKeyboardDelegate.ts +30 -30
  409. package/src/grid/createGrid.ts +36 -36
  410. package/src/grid/createGridCell.ts +18 -18
  411. package/src/grid/createGridRow.ts +14 -14
  412. package/src/grid/index.ts +5 -5
  413. package/src/grid/types.ts +8 -8
  414. package/src/gridlist/createGridList.ts +34 -29
  415. package/src/gridlist/createGridListItem.ts +68 -23
  416. package/src/gridlist/createGridListSelectionCheckbox.ts +12 -9
  417. package/src/gridlist/index.ts +4 -4
  418. package/src/gridlist/types.ts +11 -7
  419. package/src/i18n/createCollator.ts +5 -18
  420. package/src/i18n/createDateFormatter.ts +5 -13
  421. package/src/i18n/createFilter.ts +11 -24
  422. package/src/i18n/createNumberFormatter.ts +4 -6
  423. package/src/i18n/createStringFormatter.ts +19 -15
  424. package/src/i18n/index.ts +8 -11
  425. package/src/i18n/locale.tsx +15 -40
  426. package/src/i18n/utils.ts +35 -39
  427. package/src/index.ts +68 -169
  428. package/src/interactions/FocusableProvider.tsx +3 -7
  429. package/src/interactions/PressEvent.ts +4 -4
  430. package/src/interactions/createFocus.ts +12 -8
  431. package/src/interactions/createFocusRing.ts +21 -19
  432. package/src/interactions/createFocusWithin.ts +20 -13
  433. package/src/interactions/createFocusable.ts +15 -16
  434. package/src/interactions/createHover.ts +70 -55
  435. package/src/interactions/createInteractionModality.ts +75 -82
  436. package/src/interactions/createKeyboard.ts +2 -2
  437. package/src/interactions/createLongPress.ts +23 -23
  438. package/src/interactions/createMove.ts +72 -62
  439. package/src/interactions/createPress.ts +164 -87
  440. package/src/interactions/index.ts +24 -16
  441. package/src/label/createField.ts +18 -19
  442. package/src/label/createLabel.ts +18 -30
  443. package/src/label/createLabels.ts +8 -12
  444. package/src/label/index.ts +5 -5
  445. package/src/landmark/createLandmark.ts +30 -51
  446. package/src/landmark/index.ts +1 -1
  447. package/src/link/createLink.ts +83 -56
  448. package/src/link/index.ts +1 -1
  449. package/src/listbox/createListBox.ts +69 -58
  450. package/src/listbox/createOption.ts +83 -37
  451. package/src/listbox/index.ts +2 -6
  452. package/src/live-announcer/announce.ts +44 -71
  453. package/src/live-announcer/index.ts +1 -1
  454. package/src/menu/createMenu.ts +79 -50
  455. package/src/menu/createMenuItem.ts +79 -27
  456. package/src/menu/createMenuTrigger.ts +15 -15
  457. package/src/menu/index.ts +3 -12
  458. package/src/meter/createMeter.ts +7 -15
  459. package/src/meter/index.ts +1 -1
  460. package/src/numberfield/createNumberField.ts +138 -81
  461. package/src/numberfield/index.ts +1 -1
  462. package/src/overlays/ariaHideOutside.ts +14 -10
  463. package/src/overlays/createInteractOutside.ts +21 -18
  464. package/src/overlays/createModal.tsx +17 -17
  465. package/src/overlays/createOverlay.ts +38 -8
  466. package/src/overlays/createOverlayTrigger.ts +16 -16
  467. package/src/overlays/createPreventScroll.ts +46 -24
  468. package/src/overlays/index.ts +6 -17
  469. package/src/popover/calculatePosition.ts +115 -117
  470. package/src/popover/createOverlayPosition.ts +46 -40
  471. package/src/popover/createPopover.ts +42 -17
  472. package/src/popover/index.ts +3 -3
  473. package/src/progress/createProgressBar.ts +31 -32
  474. package/src/progress/index.ts +1 -1
  475. package/src/radio/createRadio.ts +95 -73
  476. package/src/radio/createRadioGroup.ts +83 -77
  477. package/src/radio/createRadioGroupState.ts +7 -31
  478. package/src/radio/index.ts +3 -8
  479. package/src/searchfield/createSearchField.ts +57 -29
  480. package/src/searchfield/index.ts +2 -2
  481. package/src/select/createHiddenSelect.tsx +57 -44
  482. package/src/select/createSelect.ts +128 -71
  483. package/src/select/index.ts +2 -7
  484. package/src/selection/createTypeSelect.ts +11 -11
  485. package/src/selection/index.ts +1 -1
  486. package/src/separator/createSeparator.ts +20 -25
  487. package/src/separator/index.ts +1 -1
  488. package/src/slider/createSlider.ts +93 -124
  489. package/src/slider/index.ts +2 -2
  490. package/src/ssr/index.tsx +8 -47
  491. package/src/steplist/createStepList.ts +106 -0
  492. package/src/steplist/index.ts +8 -0
  493. package/src/switch/createSwitch.ts +9 -14
  494. package/src/switch/index.ts +1 -1
  495. package/src/table/createTable.ts +152 -85
  496. package/src/table/createTableCell.ts +17 -16
  497. package/src/table/createTableColumnHeader.ts +67 -20
  498. package/src/table/createTableColumnResize.ts +256 -0
  499. package/src/table/createTableHeaderRow.ts +7 -7
  500. package/src/table/createTableRow.ts +149 -29
  501. package/src/table/createTableRowGroup.ts +5 -7
  502. package/src/table/createTableSelectAllCheckbox.ts +12 -11
  503. package/src/table/createTableSelectionCheckbox.ts +8 -8
  504. package/src/table/index.ts +14 -9
  505. package/src/table/types.ts +15 -7
  506. package/src/tabs/createTabs.ts +74 -92
  507. package/src/tabs/index.ts +1 -1
  508. package/src/tag/createTag.ts +52 -50
  509. package/src/tag/createTagGroup.ts +47 -41
  510. package/src/tag/index.ts +2 -6
  511. package/src/textfield/createTextField.ts +67 -35
  512. package/src/textfield/index.ts +1 -5
  513. package/src/toast/createToast.ts +28 -26
  514. package/src/toast/createToastRegion.ts +169 -26
  515. package/src/toast/index.ts +2 -6
  516. package/src/toggle/createToggle.ts +95 -53
  517. package/src/toggle/createToggleState.ts +2 -10
  518. package/src/toggle/index.ts +4 -5
  519. package/src/toolbar/createToolbar.ts +193 -210
  520. package/src/toolbar/index.ts +1 -1
  521. package/src/tooltip/createTooltip.ts +11 -24
  522. package/src/tooltip/createTooltipTrigger.ts +61 -49
  523. package/src/tooltip/index.ts +2 -2
  524. package/src/tree/createTree.ts +35 -37
  525. package/src/tree/createTreeItem.ts +29 -29
  526. package/src/tree/createTreeSelectionCheckbox.ts +11 -8
  527. package/src/tree/index.ts +4 -4
  528. package/src/tree/types.ts +10 -6
  529. package/src/utils/createDescription.ts +6 -23
  530. package/src/utils/dom.ts +61 -54
  531. package/src/utils/env.ts +9 -11
  532. package/src/utils/events.ts +7 -7
  533. package/src/utils/filterDOMProps.ts +49 -49
  534. package/src/utils/focus.ts +60 -68
  535. package/src/utils/geometry.ts +1 -4
  536. package/src/utils/globalListeners.ts +9 -9
  537. package/src/utils/index.ts +12 -22
  538. package/src/utils/mergeProps.ts +42 -15
  539. package/src/utils/platform.ts +2 -2
  540. package/src/utils/reactivity.ts +3 -3
  541. package/src/utils/textSelection.ts +16 -16
  542. package/src/visually-hidden/createVisuallyHidden.ts +16 -28
  543. package/src/visually-hidden/index.ts +1 -1
  544. package/dist/i18n/NumberFormatter.d.ts +0 -43
  545. package/dist/i18n/NumberFormatter.d.ts.map +0 -1
  546. package/dist/index.ssr.js +0 -17082
  547. package/dist/index.ssr.js.map +0 -1
  548. package/src/i18n/NumberFormatter.ts +0 -266
@@ -4,15 +4,15 @@
4
4
  * Based on @react-aria/slider useSlider.
5
5
  */
6
6
 
7
- import { type JSX, onCleanup, onMount } from 'solid-js';
8
- import { createLabel } from '../label/createLabel';
9
- import { createFocusRing } from '../interactions/createFocusRing';
10
- import { filterDOMProps } from '../utils/filterDOMProps';
11
- import { mergeProps } from '../utils/mergeProps';
12
- import { createId } from '../ssr';
13
- import { access, type MaybeAccessor } from '../utils/reactivity';
14
- import type { SliderState, SliderOrientation } from '@proyecto-viviana/solid-stately';
15
- import { useLocale } from '../i18n';
7
+ import { type JSX, onCleanup, onMount } from "solid-js";
8
+ import { createLabel } from "../label/createLabel";
9
+ import { createFocusRing } from "../interactions/createFocusRing";
10
+ import { filterDOMProps } from "../utils/filterDOMProps";
11
+ import { focusWithoutScrolling } from "../utils/focus";
12
+ import { mergeProps } from "../utils/mergeProps";
13
+ import { createId } from "../ssr";
14
+ import { access, type MaybeAccessor } from "../utils/reactivity";
15
+ import type { SliderState, SliderOrientation } from "@proyecto-viviana/solid-stately";
16
16
 
17
17
  export interface AriaSliderProps {
18
18
  /** An ID for the slider. */
@@ -22,13 +22,17 @@ export interface AriaSliderProps {
22
22
  /** The label for the slider. */
23
23
  label?: JSX.Element;
24
24
  /** An accessible label for the slider when no visible label is provided. */
25
- 'aria-label'?: string;
25
+ "aria-label"?: string;
26
26
  /** The ID of an element that labels the slider. */
27
- 'aria-labelledby'?: string;
27
+ "aria-labelledby"?: string;
28
28
  /** The ID of an element that describes the slider. */
29
- 'aria-describedby'?: string;
29
+ "aria-describedby"?: string;
30
30
  /** The orientation of the slider. */
31
31
  orientation?: SliderOrientation;
32
+ /** The name for the form input. */
33
+ name?: string;
34
+ /** The form element this input belongs to. */
35
+ form?: string;
32
36
  }
33
37
 
34
38
  export interface SliderAria {
@@ -52,11 +56,11 @@ export interface SliderAria {
52
56
  export function createSlider(
53
57
  props: MaybeAccessor<AriaSliderProps>,
54
58
  state: SliderState,
55
- trackRef?: () => HTMLElement | null
59
+ trackRef?: () => HTMLElement | null,
60
+ inputRef?: () => HTMLInputElement | null,
56
61
  ): SliderAria {
57
62
  const getProps = () => access(props);
58
63
  const id = createId(getProps().id);
59
- const locale = useLocale();
60
64
 
61
65
  // Generate IDs for associated elements
62
66
  const inputId = `${id}-input`;
@@ -74,13 +78,13 @@ export function createSlider(
74
78
  get label() {
75
79
  return getProps().label;
76
80
  },
77
- get 'aria-label'() {
78
- return getProps()['aria-label'];
81
+ get "aria-label"() {
82
+ return getProps()["aria-label"];
79
83
  },
80
- get 'aria-labelledby'() {
81
- return getProps()['aria-labelledby'];
84
+ get "aria-labelledby"() {
85
+ return getProps()["aria-labelledby"];
82
86
  },
83
- labelElementType: 'span',
87
+ labelElementType: "span",
84
88
  });
85
89
 
86
90
  // Focus ring for keyboard focus styling
@@ -97,7 +101,7 @@ export function createSlider(
97
101
  if (!track) return 0;
98
102
 
99
103
  const rect = track.getBoundingClientRect();
100
- const isVertical = state.orientation === 'vertical';
104
+ const isVertical = state.orientation === "vertical";
101
105
 
102
106
  let position: number;
103
107
  if (isVertical) {
@@ -123,6 +127,7 @@ export function createSlider(
123
127
 
124
128
  const percent = getPositionFromPointer(e.clientX, e.clientY);
125
129
  state.setValuePercent(percent);
130
+ focusWithoutScrolling(inputRef?.() ?? null);
126
131
  state.setDragging(true);
127
132
  };
128
133
 
@@ -144,56 +149,28 @@ export function createSlider(
144
149
  }
145
150
 
146
151
  currentPointerId = null;
152
+ focusWithoutScrolling(inputRef?.() ?? null);
147
153
  state.setDragging(false);
148
154
  };
149
155
 
150
- // Keyboard navigation for thumb
156
+ // Keyboard navigation that is not consistently handled by the native range input.
151
157
  const onThumbKeyDown = (e: KeyboardEvent) => {
152
158
  if (state.isDisabled) return;
153
159
 
154
- const isVertical = state.orientation === 'vertical';
155
- const isRTL = locale().direction === 'rtl';
156
- const shouldIncrementOnArrowRight = !isVertical && !isRTL;
157
- const shouldIncrementOnArrowLeft = !isVertical && isRTL;
158
-
159
160
  switch (e.key) {
160
- case 'ArrowRight':
161
- case 'ArrowUp':
162
- e.preventDefault();
163
- if (
164
- (e.key === 'ArrowRight' && shouldIncrementOnArrowRight) ||
165
- (e.key === 'ArrowUp' && isVertical)
166
- ) {
167
- state.increment();
168
- } else {
169
- state.decrement();
170
- }
171
- break;
172
- case 'ArrowLeft':
173
- case 'ArrowDown':
174
- e.preventDefault();
175
- if (
176
- (e.key === 'ArrowLeft' && shouldIncrementOnArrowLeft) ||
177
- (e.key === 'ArrowDown' && isVertical)
178
- ) {
179
- state.increment();
180
- } else {
181
- state.decrement();
182
- }
183
- break;
184
- case 'PageUp':
161
+ case "PageUp":
185
162
  e.preventDefault();
186
163
  state.increment(state.pageStep / state.step);
187
164
  break;
188
- case 'PageDown':
165
+ case "PageDown":
189
166
  e.preventDefault();
190
167
  state.decrement(state.pageStep / state.step);
191
168
  break;
192
- case 'Home':
169
+ case "Home":
193
170
  e.preventDefault();
194
171
  state.setValue(state.minValue);
195
172
  break;
196
- case 'End':
173
+ case "End":
197
174
  e.preventDefault();
198
175
  state.setValue(state.maxValue);
199
176
  break;
@@ -216,6 +193,7 @@ export function createSlider(
216
193
  e.preventDefault();
217
194
  e.stopPropagation(); // Prevent track from also handling
218
195
  currentPointerId = e.pointerId;
196
+ focusWithoutScrolling(inputRef?.() ?? null);
219
197
 
220
198
  // Capture pointer on document for smooth dragging
221
199
  document.body.setPointerCapture(e.pointerId);
@@ -241,27 +219,28 @@ export function createSlider(
241
219
  }
242
220
 
243
221
  currentPointerId = null;
222
+ focusWithoutScrolling(inputRef?.() ?? null);
244
223
  state.setDragging(false);
245
224
  };
246
225
 
247
226
  // Set up global listeners on mount (client-side only)
248
227
  onMount(() => {
249
- if (typeof document === 'undefined') return;
228
+ if (typeof document === "undefined") return;
250
229
 
251
- document.addEventListener('pointermove', onDocumentPointerMove);
252
- document.addEventListener('pointerup', onDocumentPointerUp);
253
- document.addEventListener('pointercancel', onDocumentPointerUp);
230
+ document.addEventListener("pointermove", onDocumentPointerMove);
231
+ document.addEventListener("pointerup", onDocumentPointerUp);
232
+ document.addEventListener("pointercancel", onDocumentPointerUp);
254
233
 
255
234
  // Cleanup when component unmounts
256
235
  onCleanup(() => {
257
- document.removeEventListener('pointermove', onDocumentPointerMove);
258
- document.removeEventListener('pointerup', onDocumentPointerUp);
259
- document.removeEventListener('pointercancel', onDocumentPointerUp);
236
+ document.removeEventListener("pointermove", onDocumentPointerMove);
237
+ document.removeEventListener("pointerup", onDocumentPointerUp);
238
+ document.removeEventListener("pointercancel", onDocumentPointerUp);
260
239
  });
261
240
  });
262
241
 
263
- const labelledBy = () => (fieldProps as { 'aria-labelledby'?: string })['aria-labelledby'];
264
- const ariaLabel = () => (fieldProps as { 'aria-label'?: string })['aria-label'];
242
+ const labelledBy = () => (fieldProps as { "aria-labelledby"?: string })["aria-labelledby"];
243
+ const ariaLabel = () => (fieldProps as { "aria-label"?: string })["aria-label"];
265
244
 
266
245
  return {
267
246
  get labelProps() {
@@ -272,10 +251,10 @@ export function createSlider(
272
251
  domProps(),
273
252
  fieldProps as Record<string, unknown>,
274
253
  {
275
- role: 'group',
276
- 'data-disabled': state.isDisabled || undefined,
277
- 'data-orientation': state.orientation,
278
- } as Record<string, unknown>
254
+ role: "group",
255
+ "data-disabled": state.isDisabled || undefined,
256
+ "data-orientation": state.orientation,
257
+ } as Record<string, unknown>,
279
258
  ) as JSX.HTMLAttributes<HTMLElement>;
280
259
  },
281
260
  get trackProps() {
@@ -285,79 +264,69 @@ export function createSlider(
285
264
  onPointerUp: onTrackPointerUp,
286
265
  onPointerCancel: onTrackPointerUp,
287
266
  style: {
288
- position: 'relative',
289
- 'touch-action': 'none',
267
+ position: "relative",
268
+ "touch-action": "none",
290
269
  },
291
- 'data-disabled': state.isDisabled || undefined,
292
- 'data-orientation': state.orientation,
293
- 'data-dragging': state.isDragging() || undefined,
270
+ "data-disabled": state.isDisabled || undefined,
271
+ "data-orientation": state.orientation,
272
+ "data-dragging": state.isDragging() || undefined,
294
273
  } as JSX.HTMLAttributes<HTMLElement>;
295
274
  },
296
275
  get thumbProps() {
297
276
  const percent = state.getValuePercent();
298
- const isVertical = state.orientation === 'vertical';
277
+ const isVertical = state.orientation === "vertical";
278
+
279
+ return {
280
+ onPointerDown: onThumbPointerDown,
281
+ onKeyDown: onThumbKeyDown,
282
+ style: {
283
+ position: "absolute",
284
+ [isVertical ? "bottom" : "left"]: `${percent * 100}%`,
285
+ transform: isVertical ? "translateY(50%)" : "translateX(-50%)",
286
+ "touch-action": "none",
287
+ },
288
+ "data-disabled": state.isDisabled || undefined,
289
+ "data-dragging": state.isDragging() || undefined,
290
+ } as JSX.HTMLAttributes<HTMLElement>;
291
+ },
292
+ get inputProps() {
293
+ const p = getProps();
299
294
 
300
295
  return mergeProps(
301
296
  focusProps as Record<string, unknown>,
302
297
  {
303
- role: 'slider',
298
+ type: "range",
299
+ id: inputId,
300
+ min: state.minValue,
301
+ max: state.maxValue,
302
+ step: state.step,
303
+ value: state.value(),
304
+ name: p.name,
305
+ form: p.form,
306
+ disabled: state.isDisabled,
307
+ "aria-orientation": state.orientation,
308
+ "aria-valuetext": state.getFormattedValue(),
309
+ "aria-labelledby": labelledBy(),
310
+ "aria-label": labelledBy() ? undefined : ariaLabel(),
304
311
  tabIndex: state.isDisabled ? undefined : 0,
305
- 'aria-valuemin': state.minValue,
306
- 'aria-valuemax': state.maxValue,
307
- 'aria-valuenow': state.value(),
308
- 'aria-valuetext': state.getFormattedValue(),
309
- 'aria-orientation': state.orientation,
310
- 'aria-disabled': state.isDisabled || undefined,
311
- 'aria-labelledby': labelledBy(),
312
- 'aria-label': labelledBy() ? undefined : ariaLabel(),
313
- onPointerDown: onThumbPointerDown,
314
- onKeyDown: onThumbKeyDown,
312
+ onInput: (e: Event) => {
313
+ const target = e.target as HTMLInputElement;
314
+ state.setValue(parseFloat(target.value));
315
+ },
316
+ onChange: (e: Event) => {
317
+ const target = e.target as HTMLInputElement;
318
+ state.setValue(parseFloat(target.value));
319
+ },
315
320
  onFocus,
316
321
  onBlur,
317
- style: {
318
- position: 'absolute',
319
- [isVertical ? 'bottom' : 'left']: `${percent * 100}%`,
320
- transform: isVertical ? 'translateY(50%)' : 'translateX(-50%)',
321
- },
322
- 'data-disabled': state.isDisabled || undefined,
323
- 'data-dragging': state.isDragging() || undefined,
324
- 'data-focus-visible': isFocusVisible() || undefined,
325
- } as Record<string, unknown>
326
- ) as JSX.HTMLAttributes<HTMLElement>;
327
- },
328
- get inputProps() {
329
- return {
330
- type: 'range',
331
- id: inputId,
332
- min: state.minValue,
333
- max: state.maxValue,
334
- step: state.step,
335
- value: state.value(),
336
- disabled: state.isDisabled,
337
- 'aria-hidden': true,
338
- tabIndex: -1,
339
- style: {
340
- position: 'absolute',
341
- width: '1px',
342
- height: '1px',
343
- padding: '0',
344
- margin: '-1px',
345
- overflow: 'hidden',
346
- clip: 'rect(0, 0, 0, 0)',
347
- 'white-space': 'nowrap',
348
- border: '0',
349
- },
350
- onChange: (e: Event) => {
351
- const target = e.target as HTMLInputElement;
352
- state.setValue(parseFloat(target.value));
353
- },
354
- } as JSX.InputHTMLAttributes<HTMLInputElement>;
322
+ } as Record<string, unknown>,
323
+ ) as JSX.InputHTMLAttributes<HTMLInputElement>;
355
324
  },
356
325
  get outputProps() {
357
326
  return {
358
327
  id: outputId,
359
- 'for': inputId,
360
- 'aria-live': 'off',
328
+ for: inputId,
329
+ "aria-live": "off",
361
330
  } as JSX.HTMLAttributes<HTMLElement>;
362
331
  },
363
332
  };
@@ -1,2 +1,2 @@
1
- export { createSlider } from './createSlider';
2
- export type { AriaSliderProps, SliderAria } from './createSlider';
1
+ export { createSlider } from "./createSlider";
2
+ export type { AriaSliderProps, SliderAria } from "./createSlider";
package/src/ssr/index.tsx CHANGED
@@ -18,12 +18,8 @@ import {
18
18
  onMount,
19
19
  useContext,
20
20
  createUniqueId,
21
- } from 'solid-js';
22
- import { isServer } from 'solid-js/web';
23
-
24
- // ============================================
25
- // TYPES
26
- // ============================================
21
+ } from "solid-js";
22
+ import { isServer } from "solid-js/web";
27
23
 
28
24
  export interface SSRProviderProps extends ParentProps {}
29
25
 
@@ -34,19 +30,11 @@ export interface SSRContextValue {
34
30
  prefix: string;
35
31
  }
36
32
 
37
- // ============================================
38
- // CONTEXT
39
- // ============================================
40
-
41
33
  const SSRContext = createContext<SSRContextValue>({
42
34
  isSSR: isServer,
43
- prefix: '',
35
+ prefix: "",
44
36
  });
45
37
 
46
- // ============================================
47
- // BASIC UTILITIES
48
- // ============================================
49
-
50
38
  /**
51
39
  * Returns whether the component is currently being server side rendered.
52
40
  * Can be used to delay browser-specific rendering until after hydration.
@@ -92,10 +80,6 @@ export function createId(defaultId?: string): string {
92
80
  return ctx.prefix ? `solidaria-${ctx.prefix}-${uniqueId}` : `solidaria-${uniqueId}`;
93
81
  }
94
82
 
95
- // ============================================
96
- // SSR PROVIDER
97
- // ============================================
98
-
99
83
  /**
100
84
  * Provides SSR context to the component tree.
101
85
  *
@@ -130,17 +114,9 @@ export function SSRProvider(props: SSRProviderProps & { prefix?: string }): JSX.
130
114
  : parentContext.prefix,
131
115
  }));
132
116
 
133
- return (
134
- <SSRContext.Provider value={value()}>
135
- {props.children}
136
- </SSRContext.Provider>
137
- );
117
+ return <SSRContext.Provider value={value()}>{props.children}</SSRContext.Provider>;
138
118
  }
139
119
 
140
- // ============================================
141
- // HYDRATION STATE
142
- // ============================================
143
-
144
120
  /**
145
121
  * Tracks whether the component is currently hydrating.
146
122
  *
@@ -204,10 +180,6 @@ export function useIsSSR(): Accessor<boolean> {
204
180
  return createHydrationState();
205
181
  }
206
182
 
207
- // ============================================
208
- // SAFE BROWSER EFFECTS
209
- // ============================================
210
-
211
183
  /**
212
184
  * Creates an effect that only runs on the client after hydration.
213
185
  * This is a convenience wrapper that ensures browser-specific code
@@ -234,7 +206,7 @@ export function createBrowserEffect(fn: () => void | (() => void)): void {
234
206
 
235
207
  createEffect(() => {
236
208
  const cleanup = fn();
237
- if (typeof cleanup === 'function') {
209
+ if (typeof cleanup === "function") {
238
210
  onCleanup(cleanup);
239
211
  }
240
212
  });
@@ -259,10 +231,7 @@ export function createBrowserEffect(fn: () => void | (() => void)): void {
259
231
  * }
260
232
  * ```
261
233
  */
262
- export function createBrowserValue<T>(
263
- fn: () => T,
264
- fallback: T
265
- ): Accessor<T> {
234
+ export function createBrowserValue<T>(fn: () => T, fallback: T): Accessor<T> {
266
235
  if (isServer) {
267
236
  return () => fallback;
268
237
  }
@@ -276,10 +245,6 @@ export function createBrowserValue<T>(
276
245
  return value;
277
246
  }
278
247
 
279
- // ============================================
280
- // WINDOW/DOCUMENT SAFE ACCESS
281
- // ============================================
282
-
283
248
  /**
284
249
  * Returns the window object if available, or undefined during SSR.
285
250
  * Useful for accessing browser globals safely.
@@ -293,7 +258,7 @@ export function createBrowserValue<T>(
293
258
  * ```
294
259
  */
295
260
  export function getWindow(): Window | undefined {
296
- if (typeof window !== 'undefined') {
261
+ if (typeof window !== "undefined") {
297
262
  return window;
298
263
  }
299
264
  return undefined;
@@ -312,7 +277,7 @@ export function getWindow(): Window | undefined {
312
277
  * ```
313
278
  */
314
279
  export function getDocument(): Document | undefined {
315
- if (typeof document !== 'undefined') {
280
+ if (typeof document !== "undefined") {
316
281
  return document;
317
282
  }
318
283
  return undefined;
@@ -336,10 +301,6 @@ export function getOwnerWindow(el: Element | null | undefined): Window | undefin
336
301
  return getOwnerDocument(el)?.defaultView ?? getWindow();
337
302
  }
338
303
 
339
- // ============================================
340
- // PORTAL HELPERS
341
- // ============================================
342
-
343
304
  /**
344
305
  * Gets the appropriate container for portals, with SSR safety.
345
306
  * Returns the specified container, or document.body on the client,
@@ -0,0 +1,106 @@
1
+ /**
2
+ * ARIA hooks for StepList components.
3
+ * Provides accessible step list and step item props.
4
+ */
5
+
6
+ import type { JSX } from "solid-js";
7
+ import type { StepListState } from "@proyecto-viviana/solid-stately";
8
+ import type { Key } from "@proyecto-viviana/solid-stately";
9
+
10
+ export interface AriaStepListProps {
11
+ /** Accessible label for the step list. */
12
+ "aria-label"?: string;
13
+ /** ID of element that labels the step list. */
14
+ "aria-labelledby"?: string;
15
+ }
16
+
17
+ export interface StepListAria {
18
+ /** Props for the step list container element. */
19
+ stepListProps: JSX.HTMLAttributes<HTMLOListElement>;
20
+ }
21
+
22
+ /**
23
+ * Creates ARIA props for a step list container.
24
+ */
25
+ export function createStepList(props: AriaStepListProps, _state: StepListState): StepListAria {
26
+ return {
27
+ stepListProps: {
28
+ get "aria-label"() {
29
+ return props["aria-label"] ?? "Step List";
30
+ },
31
+ get "aria-labelledby"() {
32
+ return props["aria-labelledby"];
33
+ },
34
+ },
35
+ };
36
+ }
37
+
38
+ export interface AriaStepProps {
39
+ /** The key of this step. */
40
+ key: Key;
41
+ }
42
+
43
+ export interface StepAria {
44
+ /** Props for the step element (anchor/link). */
45
+ stepProps: JSX.HTMLAttributes<HTMLAnchorElement>;
46
+ /** Accessible text describing the step state. */
47
+ stepStateText: string;
48
+ }
49
+
50
+ /**
51
+ * Creates ARIA props for an individual step within a step list.
52
+ */
53
+ export function createStep(props: AriaStepProps, state: StepListState): StepAria {
54
+ const isSelected = () => state.selectedKey() === props.key;
55
+ const isCompleted = () => state.isCompleted(props.key);
56
+ const selectable = () => state.isSelectable(props.key);
57
+
58
+ const getStepStateText = (): string => {
59
+ if (isSelected()) return "Current";
60
+ if (isCompleted()) return "Completed";
61
+ return "Not completed";
62
+ };
63
+
64
+ const handleClick: JSX.EventHandler<HTMLAnchorElement, MouseEvent> = (e) => {
65
+ e.preventDefault();
66
+ if (selectable()) {
67
+ state.setSelectedKey(props.key);
68
+ }
69
+ };
70
+
71
+ const handleKeyDown: JSX.EventHandler<HTMLAnchorElement, KeyboardEvent> = (e) => {
72
+ // Prevent arrow key scrolling — tab order handles navigation
73
+ if (e.key === "ArrowUp" || e.key === "ArrowDown") {
74
+ e.preventDefault();
75
+ return;
76
+ }
77
+ if (e.key === "Enter" || e.key === " ") {
78
+ e.preventDefault();
79
+ if (selectable()) {
80
+ state.setSelectedKey(props.key);
81
+ }
82
+ }
83
+ };
84
+
85
+ return {
86
+ get stepProps() {
87
+ return {
88
+ role: "link" as const,
89
+ get "aria-current"() {
90
+ return isSelected() ? ("step" as const) : undefined;
91
+ },
92
+ get "aria-disabled"() {
93
+ return !selectable() ? true : undefined;
94
+ },
95
+ get tabIndex() {
96
+ return selectable() ? 0 : undefined;
97
+ },
98
+ onClick: handleClick,
99
+ onKeyDown: handleKeyDown,
100
+ };
101
+ },
102
+ get stepStateText() {
103
+ return getStepStateText();
104
+ },
105
+ };
106
+ }
@@ -0,0 +1,8 @@
1
+ export {
2
+ createStepList,
3
+ createStep,
4
+ type AriaStepListProps,
5
+ type StepListAria,
6
+ type AriaStepProps,
7
+ type StepAria,
8
+ } from "./createStepList";
@@ -7,14 +7,10 @@
7
7
  * This is a 1:1 port of @react-aria/switch's useSwitch hook.
8
8
  */
9
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
- // ============================================
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";
18
14
 
19
15
  export interface AriaSwitchProps extends AriaToggleProps {
20
16
  // Switch uses the same props as toggle
@@ -33,12 +29,10 @@ export interface SwitchAria {
33
29
  isDisabled: boolean;
34
30
  /** Whether the switch is read only. */
35
31
  isReadOnly: boolean;
32
+ /** Whether the switch is invalid. */
33
+ isInvalid: boolean;
36
34
  }
37
35
 
38
- // ============================================
39
- // IMPLEMENTATION
40
- // ============================================
41
-
42
36
  /**
43
37
  * Provides the behavior and accessibility implementation for a switch component.
44
38
  * A switch is similar to a checkbox, but represents on/off values as opposed to selection.
@@ -46,7 +40,7 @@ export interface SwitchAria {
46
40
  export function createSwitch(
47
41
  props: MaybeAccessor<AriaSwitchProps>,
48
42
  state: ToggleState,
49
- ref: () => HTMLInputElement | null
43
+ ref: () => HTMLInputElement | null,
50
44
  ): SwitchAria {
51
45
  // Don't destructure inputProps - it's a getter that needs to be evaluated each time
52
46
  const toggle = createToggle(props, state, ref);
@@ -58,7 +52,7 @@ export function createSwitch(
58
52
  const baseProps = toggle.inputProps;
59
53
  return {
60
54
  ...baseProps,
61
- role: 'switch' as const,
55
+ role: "switch" as const,
62
56
  checked: toggle.isSelected(),
63
57
  };
64
58
  },
@@ -66,5 +60,6 @@ export function createSwitch(
66
60
  isPressed: toggle.isPressed,
67
61
  isDisabled: toggle.isDisabled,
68
62
  isReadOnly: toggle.isReadOnly,
63
+ isInvalid: toggle.isInvalid,
69
64
  };
70
65
  }
@@ -1 +1 @@
1
- export { createSwitch, type AriaSwitchProps, type SwitchAria } from './createSwitch';
1
+ export { createSwitch, type AriaSwitchProps, type SwitchAria } from "./createSwitch";