@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
@@ -7,13 +7,9 @@
7
7
  * This is a 1:1 port of @react-stately/radio's useRadioGroupState.
8
8
  */
9
9
 
10
- import { createSignal, Accessor, untrack } from 'solid-js';
11
- import { type MaybeAccessor, access } from '../utils/reactivity';
12
- import { createId } from '../ssr';
13
-
14
- // ============================================
15
- // TYPES
16
- // ============================================
10
+ import { createSignal, Accessor, untrack } from "solid-js";
11
+ import { type MaybeAccessor, access } from "../utils/reactivity";
12
+ import { createId } from "../ssr";
17
13
 
18
14
  export interface RadioGroupProps {
19
15
  /** The current selected value (controlled). */
@@ -37,7 +33,7 @@ export interface RadioGroupProps {
37
33
  /** The label for the radio group. */
38
34
  label?: string;
39
35
  /** Orientation of the radio group. */
40
- orientation?: 'horizontal' | 'vertical';
36
+ orientation?: "horizontal" | "vertical";
41
37
  /** Handler that is called when the radio group receives focus. */
42
38
  onFocus?: (e: FocusEvent) => void;
43
39
  /** Handler that is called when the radio group loses focus. */
@@ -78,10 +74,6 @@ export interface RadioGroupState {
78
74
  setLastFocusedValue(value: string | null): void;
79
75
  }
80
76
 
81
- // ============================================
82
- // INTERNAL: SolidJS-specific sync mechanism
83
- // ============================================
84
-
85
77
  /**
86
78
  * Internal WeakMap to store sync version accessors for each radio group state.
87
79
  * This is used by createRadio to trigger DOM sync when native radio behavior
@@ -92,31 +84,23 @@ export interface RadioGroupState {
92
84
  */
93
85
  export const radioGroupSyncVersion: WeakMap<RadioGroupState, Accessor<number>> = new WeakMap();
94
86
 
95
- // ============================================
96
- // IMPLEMENTATION
97
- // ============================================
98
-
99
87
  /**
100
88
  * Provides state management for a radio group component.
101
89
  * Provides a name for the group, and manages selection and focus state.
102
90
  */
103
- export function createRadioGroupState(
104
- props: MaybeAccessor<RadioGroupProps> = {}
105
- ): RadioGroupState {
91
+ export function createRadioGroupState(props: MaybeAccessor<RadioGroupProps> = {}): RadioGroupState {
106
92
  const getProps = () => access(props);
107
93
 
108
94
  // Get initial props using untrack to avoid setting up dependencies
109
95
  // This ensures we capture the initial defaultValue without reactivity issues
110
96
  const initialProps = untrack(() => getProps());
111
97
 
112
- // Generate name - preserved for backward compatibility
113
- // React Aria now generates the name instead of stately
98
+ // Preserved for backward compatibility. React Aria now generates the name instead of stately.
114
99
  const name = initialProps.name || `radio-group-${createId()}`;
115
100
 
116
- // Create internal signal for uncontrolled mode
117
101
  // Initialize with defaultValue only (not value, which is for controlled mode)
118
102
  const [internalValue, setInternalValue] = createSignal<string | null>(
119
- initialProps.defaultValue ?? null
103
+ initialProps.defaultValue ?? null,
120
104
  );
121
105
  const [lastFocusedValue, setLastFocusedValueInternal] = createSignal<string | null>(null);
122
106
 
@@ -125,26 +109,20 @@ export function createRadioGroupState(
125
109
  // from our reactive state (e.g., clicking a radio unchecks siblings in the DOM)
126
110
  const [syncVersion, setSyncVersion] = createSignal(0);
127
111
 
128
- // Determine if controlled - must be reactive to handle dynamic props
129
112
  const isControlled = () => getProps().value !== undefined;
130
113
 
131
- // Get current value - reactive for both controlled and uncontrolled modes
132
114
  const selectedValue: Accessor<string | null> = () => {
133
115
  const p = getProps();
134
- // In controlled mode, always read from props.value reactively
135
- // In uncontrolled mode, read from internal signal
136
116
  if (p.value !== undefined) {
137
117
  return p.value ?? null;
138
118
  }
139
119
  return internalValue();
140
120
  };
141
121
 
142
- // Check if invalid
143
122
  const isInvalid = () => {
144
123
  return getProps().isInvalid ?? false;
145
124
  };
146
125
 
147
- // Set value
148
126
  function setSelectedValue(value: string | null): void {
149
127
  const p = getProps();
150
128
  if (p.isReadOnly || p.isDisabled) {
@@ -167,7 +145,6 @@ export function createRadioGroupState(
167
145
  }
168
146
  }
169
147
 
170
- // Set last focused value
171
148
  function setLastFocusedValue(value: string | null): void {
172
149
  setLastFocusedValueInternal(value);
173
150
  }
@@ -193,7 +170,6 @@ export function createRadioGroupState(
193
170
  },
194
171
  };
195
172
 
196
- // Store syncVersion in internal WeakMap (not part of public API)
197
173
  // This maintains API parity with React-Aria while supporting SolidJS's reactivity needs
198
174
  radioGroupSyncVersion.set(state, syncVersion);
199
175
 
@@ -1,10 +1,9 @@
1
- // Re-export state from solid-stately
2
1
  export {
3
2
  createRadioGroupState,
4
3
  radioGroupSyncVersion,
5
4
  type RadioGroupProps,
6
5
  type RadioGroupState,
7
- } from '@proyecto-viviana/solid-stately';
6
+ } from "@proyecto-viviana/solid-stately";
8
7
 
9
8
  // ARIA hooks (solidaria-specific)
10
9
  // Radio Group
@@ -13,11 +12,7 @@ export {
13
12
  radioGroupData,
14
13
  type AriaRadioGroupProps,
15
14
  type RadioGroupAria,
16
- } from './createRadioGroup';
15
+ } from "./createRadioGroup";
17
16
 
18
17
  // Radio
19
- export {
20
- createRadio,
21
- type AriaRadioProps,
22
- type RadioAria,
23
- } from './createRadio';
18
+ export { createRadio, type AriaRadioProps, type RadioAria } from "./createRadio";
@@ -4,25 +4,25 @@
4
4
  * Based on @react-aria/searchfield useSearchField.
5
5
  */
6
6
 
7
- import { type JSX } from 'solid-js';
8
- import { createTextField, type AriaTextFieldProps, type TextFieldAria } from '../textfield';
9
- import { mergeProps } from '../utils';
10
- import { type MaybeAccessor, access } from '../utils/reactivity';
11
- import type { SearchFieldState } from '@proyecto-viviana/solid-stately';
7
+ import { type JSX } from "solid-js";
8
+ import { createTextField, type AriaTextFieldProps, type TextFieldAria } from "../textfield";
9
+ import { mergeProps } from "../utils";
10
+ import { type MaybeAccessor, access } from "../utils/reactivity";
11
+ import type { SearchFieldState } from "@proyecto-viviana/solid-stately";
12
12
 
13
- export interface AriaSearchFieldProps extends Omit<AriaTextFieldProps, 'type'> {
13
+ export interface AriaSearchFieldProps extends AriaTextFieldProps {
14
14
  /** Handler that is called when the user submits the search (pressing Enter). */
15
15
  onSubmit?: (value: string) => void;
16
16
  /** Handler that is called when the clear button is pressed or Escape clears the field. */
17
17
  onClear?: () => void;
18
18
  }
19
19
 
20
- export interface SearchFieldAria extends Omit<TextFieldAria, 'inputProps'> {
20
+ export interface SearchFieldAria extends Omit<TextFieldAria, "inputProps"> {
21
21
  /** Props for the input element. */
22
22
  inputProps: JSX.InputHTMLAttributes<HTMLInputElement>;
23
23
  /** Props for the clear button. */
24
24
  clearButtonProps: {
25
- 'aria-label': string;
25
+ "aria-label": string;
26
26
  tabIndex: number;
27
27
  disabled?: boolean;
28
28
  onMouseDown: (e: MouseEvent) => void;
@@ -36,10 +36,19 @@ export interface SearchFieldAria extends Omit<TextFieldAria, 'inputProps'> {
36
36
  export function createSearchField(
37
37
  props: MaybeAccessor<AriaSearchFieldProps>,
38
38
  state: SearchFieldState,
39
- inputRef?: () => HTMLInputElement | null
39
+ inputRef?: () => HTMLInputElement | null,
40
40
  ): SearchFieldAria {
41
41
  const getProps = () => access(props);
42
42
 
43
+ const setValue = (value: string) => {
44
+ if (state.value() === value) {
45
+ return;
46
+ }
47
+
48
+ state.setValue(value);
49
+ getProps().onChange?.(value);
50
+ };
51
+
43
52
  // Use createTextField for the base implementation
44
53
  const textFieldAria = createTextField({
45
54
  get value() {
@@ -60,14 +69,14 @@ export function createSearchField(
60
69
  get label() {
61
70
  return getProps().label;
62
71
  },
63
- get 'aria-label'() {
64
- return getProps()['aria-label'];
72
+ get "aria-label"() {
73
+ return getProps()["aria-label"];
65
74
  },
66
- get 'aria-labelledby'() {
67
- return getProps()['aria-labelledby'];
75
+ get "aria-labelledby"() {
76
+ return getProps()["aria-labelledby"];
68
77
  },
69
- get 'aria-describedby'() {
70
- return getProps()['aria-describedby'];
78
+ get "aria-describedby"() {
79
+ return getProps()["aria-describedby"];
71
80
  },
72
81
  get description() {
73
82
  return getProps().description;
@@ -81,15 +90,30 @@ export function createSearchField(
81
90
  get name() {
82
91
  return getProps().name;
83
92
  },
93
+ get form() {
94
+ return getProps().form;
95
+ },
96
+ get validationBehavior() {
97
+ return getProps().validationBehavior ?? "native";
98
+ },
99
+ get type() {
100
+ return getProps().type ?? "search";
101
+ },
84
102
  get autoFocus() {
85
103
  return getProps().autoFocus;
86
104
  },
105
+ get excludeFromTabOrder() {
106
+ return getProps().excludeFromTabOrder;
107
+ },
87
108
  get autoComplete() {
88
109
  return getProps().autoComplete;
89
110
  },
90
111
  get inputMode() {
91
112
  return getProps().inputMode;
92
113
  },
114
+ get enterKeyHint() {
115
+ return getProps().enterKeyHint;
116
+ },
93
117
  get autoCorrect() {
94
118
  return getProps().autoCorrect;
95
119
  },
@@ -150,11 +174,7 @@ export function createSearchField(
150
174
  get onInput() {
151
175
  return getProps().onInput;
152
176
  },
153
- type: 'search',
154
- onChange: (value: string) => {
155
- state.setValue(value);
156
- getProps().onChange?.(value);
157
- },
177
+ onChange: setValue,
158
178
  });
159
179
 
160
180
  // Handle keyboard events for search field
@@ -162,26 +182,30 @@ export function createSearchField(
162
182
  const p = getProps();
163
183
 
164
184
  if (p.isDisabled || p.isReadOnly) {
165
- if (e.key === 'Enter') {
185
+ if (e.key === "Enter") {
166
186
  e.preventDefault();
167
187
  }
168
188
  return;
169
189
  }
170
190
 
171
- if (e.key === 'Enter' && p.onSubmit) {
191
+ if (e.key === "Enter" && p.onSubmit) {
172
192
  e.preventDefault();
173
193
  p.onSubmit(state.value());
174
194
  }
175
195
 
176
- if (e.key === 'Escape') {
196
+ if (e.key === "Escape") {
177
197
  const currentValue = state.value();
178
- const inputValue = inputRef?.()?.value ?? '';
198
+ const inputValue = inputRef?.()?.value ?? "";
179
199
 
180
200
  // Only clear if there's a value
181
- if (currentValue !== '' || inputValue !== '') {
201
+ if (currentValue !== "" || inputValue !== "") {
182
202
  e.preventDefault();
183
203
  e.stopPropagation();
184
- state.setValue('');
204
+ const input = inputRef?.();
205
+ if (input) {
206
+ input.value = "";
207
+ }
208
+ setValue("");
185
209
  p.onClear?.();
186
210
  }
187
211
  }
@@ -191,7 +215,11 @@ export function createSearchField(
191
215
  const onClearButtonClick = () => {
192
216
  const p = getProps();
193
217
  if (p.isDisabled || p.isReadOnly) return;
194
- state.setValue('');
218
+ const input = inputRef?.();
219
+ if (input) {
220
+ input.value = "";
221
+ }
222
+ setValue("");
195
223
  p.onClear?.();
196
224
  // Focus the input after clearing
197
225
  inputRef?.()?.focus();
@@ -213,7 +241,7 @@ export function createSearchField(
213
241
  // Clear defaultValue since it's handled by state
214
242
  defaultValue: undefined,
215
243
  } as Record<string, unknown>,
216
- textFieldAria.inputProps as Record<string, unknown>
244
+ textFieldAria.inputProps as Record<string, unknown>,
217
245
  ) as JSX.InputHTMLAttributes<HTMLInputElement>;
218
246
  },
219
247
  get clearButtonProps() {
@@ -221,7 +249,7 @@ export function createSearchField(
221
249
  const isDisabled = p.isDisabled || p.isReadOnly;
222
250
 
223
251
  return {
224
- 'aria-label': 'Clear search',
252
+ "aria-label": "Clear search",
225
253
  tabIndex: -1, // Exclude from tab order
226
254
  disabled: isDisabled,
227
255
  onMouseDown: onClearButtonMouseDown,
@@ -1,2 +1,2 @@
1
- export { createSearchField } from './createSearchField';
2
- export type { AriaSearchFieldProps, SearchFieldAria } from './createSearchField';
1
+ export { createSearchField } from "./createSearchField";
2
+ export type { AriaSearchFieldProps, SearchFieldAria } from "./createSearchField";
@@ -3,12 +3,12 @@
3
3
  * Based on @react-aria/select useHiddenSelect.
4
4
  */
5
5
 
6
- import { type JSX, type Accessor, For, createEffect, onCleanup } from 'solid-js';
7
- import { access, type MaybeAccessor } from '../utils/reactivity';
8
- import { createFormValidation } from '../form/createFormValidation';
9
- import type { SelectState, Key, FormValidationState } from '@proyecto-viviana/solid-stately';
6
+ import { type JSX, type Accessor, For, createEffect, onCleanup } from "solid-js";
7
+ import { access, type MaybeAccessor } from "../utils/reactivity";
8
+ import { createFormValidation } from "../form/createFormValidation";
9
+ import type { SelectState, Key, FormValidationState } from "@proyecto-viviana/solid-stately";
10
10
 
11
- export type ValidationBehavior = 'aria' | 'native';
11
+ export type ValidationBehavior = "aria" | "native";
12
12
 
13
13
  export interface AriaHiddenSelectProps<T> {
14
14
  /** The state object for the select. */
@@ -45,7 +45,7 @@ export interface HiddenSelectAria {
45
45
  * This is used for native form submission and accessibility on mobile devices.
46
46
  */
47
47
  export function createHiddenSelect<T>(
48
- props: MaybeAccessor<AriaHiddenSelectProps<T>>
48
+ props: MaybeAccessor<AriaHiddenSelectProps<T>>,
49
49
  ): HiddenSelectAria {
50
50
  const getProps = () => access(props);
51
51
 
@@ -66,17 +66,17 @@ export function createHiddenSelect<T>(
66
66
  p.state.setSelectedKey(defaultKey);
67
67
  };
68
68
 
69
- form.addEventListener('reset', handleReset);
69
+ form.addEventListener("reset", handleReset);
70
70
 
71
71
  onCleanup(() => {
72
- form.removeEventListener('reset', handleReset);
72
+ form.removeEventListener("reset", handleReset);
73
73
  });
74
74
  });
75
75
 
76
76
  // Set up form validation handler for native validation
77
77
  createEffect(() => {
78
78
  const p = getProps();
79
- if (!selectRef || p.validationBehavior !== 'native' || !p.validationState) return;
79
+ if (!selectRef || p.validationBehavior !== "native" || !p.validationState) return;
80
80
 
81
81
  createFormValidation(
82
82
  {
@@ -84,31 +84,39 @@ export function createHiddenSelect<T>(
84
84
  focus: () => p.triggerRef?.()?.focus(),
85
85
  },
86
86
  p.validationState,
87
- () => selectRef
87
+ () => selectRef,
88
88
  );
89
89
  });
90
90
 
91
91
  return {
92
92
  get containerProps() {
93
93
  return {
94
- 'aria-hidden': true,
95
- 'data-a11y-ignore': 'aria-hidden-focus',
94
+ "aria-hidden": true,
95
+ "data-a11y-ignore": "aria-hidden-focus",
96
96
  } as JSX.HTMLAttributes<HTMLDivElement>;
97
97
  },
98
98
  get selectProps() {
99
99
  const p = getProps();
100
100
  const state = p.state;
101
101
  const selectedKey = state.selectedKey();
102
- const selectedKeys = typeof state.selectedKeys === 'function'
103
- ? state.selectedKeys()
104
- : (selectedKey != null ? new Set([selectedKey]) : new Set<Key>());
105
- const validationBehavior = p.validationBehavior ?? 'aria';
106
- const isMultiple = typeof state.selectionMode === 'function' && state.selectionMode() === 'multiple';
102
+ const selectedKeys =
103
+ typeof state.selectedKeys === "function"
104
+ ? state.selectedKeys()
105
+ : selectedKey != null
106
+ ? new Set([selectedKey])
107
+ : new Set<Key>();
108
+ const validationBehavior = p.validationBehavior ?? "aria";
109
+ const isMultiple =
110
+ typeof state.selectionMode === "function" && state.selectionMode() === "multiple";
107
111
  const multipleValue =
108
- selectedKeys === 'all' ? Array.from(state.collection()).map((item) => String(item.key)) : Array.from(selectedKeys).map(String);
112
+ selectedKeys === "all"
113
+ ? Array.from(state.collection()).map((item) => String(item.key))
114
+ : Array.from(selectedKeys).map(String);
109
115
 
110
116
  return {
111
- ref: (el: HTMLSelectElement) => { selectRef = el; },
117
+ ref: (el: HTMLSelectElement) => {
118
+ selectRef = el;
119
+ },
112
120
  tabIndex: -1,
113
121
  autoComplete: p.autoComplete,
114
122
  disabled: p.isDisabled ?? state.isDisabled,
@@ -116,12 +124,12 @@ export function createHiddenSelect<T>(
116
124
  name: p.name,
117
125
  form: p.form,
118
126
  // Add required attribute for native form validation
119
- required: validationBehavior === 'native' && p.isRequired,
120
- value: isMultiple ? multipleValue : (selectedKey != null ? String(selectedKey) : ''),
127
+ required: validationBehavior === "native" && p.isRequired,
128
+ value: isMultiple ? multipleValue : selectedKey != null ? String(selectedKey) : "",
121
129
  onChange: (e: Event) => {
122
130
  const target = e.target as HTMLSelectElement;
123
131
  if (isMultiple) {
124
- if (typeof state.setSelectedKeys === 'function') {
132
+ if (typeof state.setSelectedKeys === "function") {
125
133
  state.setSelectedKeys(Array.from(target.selectedOptions).map((o) => o.value as Key));
126
134
  } else {
127
135
  const first = target.selectedOptions[0]?.value;
@@ -132,18 +140,18 @@ export function createHiddenSelect<T>(
132
140
  }
133
141
  },
134
142
  style: {
135
- position: 'absolute',
143
+ position: "absolute",
136
144
  top: 0,
137
145
  left: 0,
138
- width: '100%',
139
- height: '100%',
146
+ width: "100%",
147
+ height: "100%",
140
148
  opacity: 0,
141
- 'font-size': '16px', // Prevents zoom on iOS
142
- border: 'none',
143
- cursor: 'default',
149
+ "font-size": "16px", // Prevents zoom on iOS
150
+ border: "none",
151
+ cursor: "default",
144
152
  margin: 0,
145
153
  padding: 0,
146
- 'pointer-events': 'none',
154
+ "pointer-events": "none",
147
155
  },
148
156
  } as JSX.SelectHTMLAttributes<HTMLSelectElement>;
149
157
  },
@@ -151,20 +159,20 @@ export function createHiddenSelect<T>(
151
159
  const p = getProps();
152
160
  const state = p.state;
153
161
  const selectedKey = state.selectedKey();
154
- const validationBehavior = p.validationBehavior ?? 'aria';
162
+ const validationBehavior = p.validationBehavior ?? "aria";
155
163
 
156
164
  // For native validation with required, use type="text" with display:none
157
165
  // so the browser will validate it on form submit
158
- const useTextInput = validationBehavior === 'native' && p.isRequired;
166
+ const useTextInput = validationBehavior === "native" && p.isRequired;
159
167
 
160
168
  return {
161
- type: useTextInput ? 'text' : 'hidden',
169
+ type: useTextInput ? "text" : "hidden",
162
170
  name: p.name,
163
171
  form: p.form,
164
- value: selectedKey != null ? String(selectedKey) : '',
172
+ value: selectedKey != null ? String(selectedKey) : "",
165
173
  disabled: p.isDisabled ?? state.isDisabled,
166
174
  required: useTextInput ? p.isRequired : undefined,
167
- style: useTextInput ? { display: 'none' } : undefined,
175
+ style: useTextInput ? { display: "none" } : undefined,
168
176
  } as JSX.InputHTMLAttributes<HTMLInputElement>;
169
177
  },
170
178
  };
@@ -230,11 +238,14 @@ export function HiddenSelect<T>(props: HiddenSelectProps<T>): JSX.Element {
230
238
 
231
239
  const collection = () => props.state.collection();
232
240
  const selectedKey = () => props.state.selectedKey();
233
- const selectedKeys = () => typeof props.state.selectedKeys === 'function'
234
- ? props.state.selectedKeys()
235
- : (selectedKey() != null ? new Set([selectedKey() as Key]) : new Set<Key>());
236
- const isMultiple = () => typeof props.state.selectionMode === 'function'
237
- && props.state.selectionMode() === 'multiple';
241
+ const selectedKeys = () =>
242
+ typeof props.state.selectedKeys === "function"
243
+ ? props.state.selectedKeys()
244
+ : selectedKey() != null
245
+ ? new Set([selectedKey() as Key])
246
+ : new Set<Key>();
247
+ const isMultiple = () =>
248
+ typeof props.state.selectionMode === "function" && props.state.selectionMode() === "multiple";
238
249
 
239
250
  return (
240
251
  <div {...containerProps}>
@@ -246,11 +257,13 @@ export function HiddenSelect<T>(props: HiddenSelectProps<T>): JSX.Element {
246
257
  {(item) => (
247
258
  <option
248
259
  value={String(item.key)}
249
- selected={isMultiple()
250
- ? selectedKeys() === 'all'
251
- ? true
252
- : (selectedKeys() as Set<Key>).has(item.key)
253
- : item.key === selectedKey()}
260
+ selected={
261
+ isMultiple()
262
+ ? selectedKeys() === "all"
263
+ ? true
264
+ : (selectedKeys() as Set<Key>).has(item.key)
265
+ : item.key === selectedKey()
266
+ }
254
267
  >
255
268
  {item.textValue}
256
269
  </option>