@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
@@ -8,17 +8,13 @@
8
8
  * Based on @react-aria/tag useTagGroup
9
9
  */
10
10
 
11
- import { createEffect, onCleanup } from 'solid-js';
12
- import { createLabel } from '../label/createLabel';
13
- import { filterDOMProps } from '../utils/filterDOMProps';
14
- import { mergeProps } from '../utils/mergeProps';
15
- import { createId } from '../ssr';
16
- import { access, type MaybeAccessor } from '../utils/reactivity';
17
- import type { ListState, Key } from '@proyecto-viviana/solid-stately';
18
-
19
- // ============================================
20
- // TYPES
21
- // ============================================
11
+ import { createEffect, onCleanup } from "solid-js";
12
+ import { createLabel } from "../label/createLabel";
13
+ import { filterDOMProps } from "../utils/filterDOMProps";
14
+ import { mergeProps } from "../utils/mergeProps";
15
+ import { createId } from "../ssr";
16
+ import { access, type MaybeAccessor } from "../utils/reactivity";
17
+ import type { ListState, Key } from "@proyecto-viviana/solid-stately";
22
18
 
23
19
  export interface AriaTagGroupProps {
24
20
  /** An ID for the tag group. */
@@ -28,11 +24,11 @@ export interface AriaTagGroupProps {
28
24
  /** The label for the tag group. */
29
25
  label?: string;
30
26
  /** An accessible label for the tag group when no visible label is provided. */
31
- 'aria-label'?: string;
27
+ "aria-label"?: string;
32
28
  /** The ID of an element that labels the tag group. */
33
- 'aria-labelledby'?: string;
29
+ "aria-labelledby"?: string;
34
30
  /** The ID of an element that describes the tag group. */
35
- 'aria-describedby'?: string;
31
+ "aria-describedby"?: string;
36
32
  /** A description of the tag group. */
37
33
  description?: string;
38
34
  /** An error message for the tag group. */
@@ -64,10 +60,6 @@ export function getTagGroupData(state: ListState): TagGroupData | undefined {
64
60
  return tagGroupData.get(state);
65
61
  }
66
62
 
67
- // ============================================
68
- // IMPLEMENTATION
69
- // ============================================
70
-
71
63
  /**
72
64
  * Provides the behavior and accessibility implementation for a tag group component.
73
65
  * A tag group is a focusable list of labels, categories, keywords, filters, or other items,
@@ -76,7 +68,7 @@ export function getTagGroupData(state: ListState): TagGroupData | undefined {
76
68
  export function createTagGroup<T>(
77
69
  props: MaybeAccessor<AriaTagGroupProps>,
78
70
  state: ListState<T>,
79
- _ref?: () => HTMLElement | null
71
+ _ref?: () => HTMLElement | null,
80
72
  ): TagGroupAria {
81
73
  const getProps = () => access(props);
82
74
  const id = createId(getProps().id);
@@ -84,30 +76,44 @@ export function createTagGroup<T>(
84
76
  const errorMessageId = createId();
85
77
  const getFallbackAriaLabel = () => {
86
78
  const p = getProps();
87
- return !p.label && !p['aria-label'] && !p['aria-labelledby'] ? 'Tag list' : undefined;
79
+ return !p.label && !p["aria-label"] && !p["aria-labelledby"] ? "Tag list" : undefined;
80
+ };
81
+ const sharedData: TagGroupData = {
82
+ id,
83
+ get onRemove() {
84
+ return getProps().onRemove;
85
+ },
88
86
  };
89
87
 
90
88
  // Filter DOM props
91
- const domProps = () => filterDOMProps(getProps() as unknown as Record<string, unknown>, { labelable: true });
89
+ const domProps = () =>
90
+ filterDOMProps(getProps() as unknown as Record<string, unknown>, { labelable: true });
92
91
 
93
92
  // Create label handling
94
93
  const { labelProps, fieldProps } = createLabel({
95
- get label() { return getProps().label; },
96
- get 'aria-label'() { return getProps()['aria-label'] ?? getFallbackAriaLabel(); },
97
- get 'aria-labelledby'() { return getProps()['aria-labelledby']; },
98
- labelElementType: 'span',
94
+ get label() {
95
+ return getProps().label;
96
+ },
97
+ get "aria-label"() {
98
+ return getProps()["aria-label"] ?? getFallbackAriaLabel();
99
+ },
100
+ get "aria-labelledby"() {
101
+ return getProps()["aria-labelledby"];
102
+ },
103
+ labelElementType: "span",
99
104
  });
100
105
 
101
- // Share data with child tags
106
+ // Share data with child tags before they create their aria state.
107
+ tagGroupData.set(state, sharedData);
108
+
109
+ // Clean up the shared state when the tag group owner is disposed.
102
110
  createEffect(() => {
103
- const p = getProps();
104
- tagGroupData.set(state, {
105
- id,
106
- onRemove: p.onRemove,
107
- });
111
+ tagGroupData.set(state, sharedData);
108
112
 
109
113
  onCleanup(() => {
110
- tagGroupData.delete(state);
114
+ if (tagGroupData.get(state) === sharedData) {
115
+ tagGroupData.delete(state);
116
+ }
111
117
  });
112
118
  });
113
119
 
@@ -115,8 +121,8 @@ export function createTagGroup<T>(
115
121
  const getAriaDescribedBy = () => {
116
122
  const p = getProps();
117
123
  const ids: string[] = [];
118
- if (p['aria-describedby']) {
119
- ids.push(p['aria-describedby']);
124
+ if (p["aria-describedby"]) {
125
+ ids.push(p["aria-describedby"]);
120
126
  }
121
127
  if (p.description) {
122
128
  ids.push(descriptionId);
@@ -124,7 +130,7 @@ export function createTagGroup<T>(
124
130
  if (p.errorMessage) {
125
131
  ids.push(errorMessageId);
126
132
  }
127
- return ids.length > 0 ? ids.join(' ') : undefined;
133
+ return ids.length > 0 ? ids.join(" ") : undefined;
128
134
  };
129
135
 
130
136
  return {
@@ -134,12 +140,12 @@ export function createTagGroup<T>(
134
140
 
135
141
  return mergeProps(domProps(), fieldProps as Record<string, unknown>, {
136
142
  id,
137
- role: hasItems ? 'listbox' : 'group',
138
- 'aria-multiselectable': hasItems && state.selectionMode() === 'multiple' ? true : undefined,
139
- 'aria-atomic': false,
140
- 'aria-relevant': 'additions',
141
- 'aria-describedby': getAriaDescribedBy(),
142
- 'aria-disabled': p.isDisabled || undefined,
143
+ role: hasItems ? "grid" : "group",
144
+ "aria-multiselectable": hasItems && state.selectionMode() === "multiple" ? true : undefined,
145
+ "aria-atomic": false,
146
+ "aria-relevant": "additions",
147
+ "aria-describedby": getAriaDescribedBy(),
148
+ "aria-disabled": p.isDisabled || undefined,
143
149
  });
144
150
  },
145
151
  get labelProps() {
package/src/tag/index.ts CHANGED
@@ -3,10 +3,6 @@ export {
3
3
  getTagGroupData,
4
4
  type AriaTagGroupProps,
5
5
  type TagGroupAria,
6
- } from './createTagGroup';
6
+ } from "./createTagGroup";
7
7
 
8
- export {
9
- createTag,
10
- type AriaTagProps,
11
- type TagAria,
12
- } from './createTag';
8
+ export { createTag, type AriaTagProps, type TagAria } from "./createTag";
@@ -6,17 +6,13 @@
6
6
  * This is a 1:1 port of @react-aria/textfield's useTextField hook.
7
7
  */
8
8
 
9
- import { JSX } from 'solid-js';
10
- import { createField, type AriaFieldProps, type FieldAria } from '../label';
11
- import { createFocusable, type FocusableProps } from '../interactions';
12
- import { mergeProps, filterDOMProps } from '../utils';
13
- import { type MaybeAccessor, access } from '../utils/reactivity';
9
+ import { JSX } from "solid-js";
10
+ import { createField, type AriaFieldProps, type FieldAria } from "../label";
11
+ import { createFocusable, type FocusableDOMProps, type FocusableProps } from "../interactions";
12
+ import { mergeProps, filterDOMProps } from "../utils";
13
+ import { type MaybeAccessor, access } from "../utils/reactivity";
14
14
 
15
- // ============================================
16
- // TYPES
17
- // ============================================
18
-
19
- export interface AriaTextFieldProps extends AriaFieldProps, FocusableProps {
15
+ export interface AriaTextFieldProps extends AriaFieldProps, FocusableProps, FocusableDOMProps {
20
16
  /** The current value (controlled). */
21
17
  value?: string;
22
18
  /** The default value (uncontrolled). */
@@ -29,12 +25,18 @@ export interface AriaTextFieldProps extends AriaFieldProps, FocusableProps {
29
25
  isReadOnly?: boolean;
30
26
  /** Whether the input is required. */
31
27
  isRequired?: boolean;
28
+ /** Whether to use native HTML form validation or ARIA validation semantics. */
29
+ validationBehavior?: "aria" | "native";
32
30
  /** The type of input to render. */
33
- type?: 'text' | 'search' | 'url' | 'tel' | 'email' | 'password' | string;
31
+ type?: "text" | "search" | "url" | "tel" | "email" | "password" | string;
34
32
  /** The input mode hint for virtual keyboards. */
35
- inputMode?: 'none' | 'text' | 'tel' | 'url' | 'email' | 'numeric' | 'decimal' | 'search';
33
+ inputMode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search";
34
+ /** Hint for the enter key action on virtual keyboards. */
35
+ enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send";
36
36
  /** The name of the input element, used when submitting an HTML form. */
37
37
  name?: string;
38
+ /** Associates the input with a form element by id. */
39
+ form?: string;
38
40
  /** Regex pattern to validate the input value. */
39
41
  pattern?: string;
40
42
  /** The maximum number of characters supported by the input. */
@@ -48,11 +50,11 @@ export interface AriaTextFieldProps extends AriaFieldProps, FocusableProps {
48
50
  /** Whether to enable auto correct. */
49
51
  autoCorrect?: string;
50
52
  /** Whether to enable spell check. */
51
- spellCheck?: 'true' | 'false';
53
+ spellCheck?: "true" | "false";
52
54
  /** Controls whether and how text input is automatically capitalized. */
53
- autoCapitalize?: 'off' | 'none' | 'on' | 'sentences' | 'words' | 'characters';
55
+ autoCapitalize?: "off" | "none" | "on" | "sentences" | "words" | "characters";
54
56
  /** The element type to use for the input. Defaults to 'input'. */
55
- inputElementType?: 'input' | 'textarea';
57
+ inputElementType?: "input" | "textarea";
56
58
 
57
59
  // Clipboard events
58
60
  onCopy?: JSX.EventHandler<HTMLInputElement | HTMLTextAreaElement, ClipboardEvent>;
@@ -72,17 +74,15 @@ export interface AriaTextFieldProps extends AriaFieldProps, FocusableProps {
72
74
  onInput?: JSX.EventHandler<HTMLInputElement | HTMLTextAreaElement, InputEvent>;
73
75
  }
74
76
 
75
- export interface TextFieldAria<T extends HTMLInputElement | HTMLTextAreaElement = HTMLInputElement> extends Omit<FieldAria, 'fieldProps'> {
77
+ export interface TextFieldAria<
78
+ T extends HTMLInputElement | HTMLTextAreaElement = HTMLInputElement,
79
+ > extends Omit<FieldAria, "fieldProps"> {
76
80
  /** Props for the input element. */
77
81
  inputProps: JSX.InputHTMLAttributes<T>;
78
82
  /** Whether the text field is invalid. */
79
83
  isInvalid: boolean;
80
84
  }
81
85
 
82
- // ============================================
83
- // IMPLEMENTATION
84
- // ============================================
85
-
86
86
  /**
87
87
  * Provides the behavior and accessibility implementation for a text field.
88
88
  * Text fields allow users to input text with a keyboard.
@@ -90,11 +90,26 @@ export interface TextFieldAria<T extends HTMLInputElement | HTMLTextAreaElement
90
90
  * @param props - Props for the text field.
91
91
  * @param ref - Optional ref callback for the input element.
92
92
  */
93
- export function createTextField<T extends HTMLInputElement | HTMLTextAreaElement = HTMLInputElement>(
94
- props: MaybeAccessor<AriaTextFieldProps>,
95
- ref?: (el: T) => void
96
- ): TextFieldAria<T> {
93
+ export function createTextField<
94
+ T extends HTMLInputElement | HTMLTextAreaElement = HTMLInputElement,
95
+ >(props: MaybeAccessor<AriaTextFieldProps>, ref?: (el: T) => void): TextFieldAria<T> {
97
96
  const getProps = () => access(props);
97
+ let lastInputValue: string | undefined;
98
+
99
+ const eventWithCurrentTarget = (
100
+ event: InputEvent,
101
+ element: HTMLInputElement | HTMLTextAreaElement,
102
+ ) =>
103
+ new Proxy(event, {
104
+ get(target, property, receiver) {
105
+ if (property === "target" || property === "currentTarget") {
106
+ return element;
107
+ }
108
+
109
+ const value = Reflect.get(target, property, receiver);
110
+ return typeof value === "function" ? value.bind(target) : value;
111
+ },
112
+ });
98
113
 
99
114
  // Get field accessibility props (label, description, error message)
100
115
  const { labelProps, fieldProps, descriptionProps, errorMessageProps } = createField(props);
@@ -108,41 +123,50 @@ export function createTextField<T extends HTMLInputElement | HTMLTextAreaElement
108
123
  get autoFocus() {
109
124
  return getProps().autoFocus;
110
125
  },
126
+ get excludeFromTabOrder() {
127
+ return getProps().excludeFromTabOrder;
128
+ },
111
129
  onFocus: getProps().onFocus,
112
130
  onBlur: getProps().onBlur,
113
131
  onFocusChange: getProps().onFocusChange,
114
132
  onKeyDown: getProps().onKeyDown,
115
133
  onKeyUp: getProps().onKeyUp,
116
134
  },
117
- ref as ((el: HTMLElement) => void) | undefined
135
+ ref as ((el: HTMLElement) => void) | undefined,
118
136
  );
119
137
 
120
138
  // Filter DOM props
121
- const getDomProps = () => filterDOMProps(getProps() as Record<string, unknown>, { labelable: true });
139
+ const getDomProps = () =>
140
+ filterDOMProps(getProps() as Record<string, unknown>, { labelable: true });
122
141
 
123
142
  // Build input props
124
143
  const getInputProps = (): JSX.InputHTMLAttributes<T> => {
125
144
  const p = getProps();
126
145
  const isInvalid = p.isInvalid ?? false;
127
- const isTextarea = p.inputElementType === 'textarea';
146
+ const isTextarea = p.inputElementType === "textarea";
147
+ const validationBehavior = p.validationBehavior ?? "native";
128
148
 
129
149
  return mergeProps(
130
150
  getDomProps(),
131
151
  {
132
152
  disabled: p.isDisabled,
133
153
  readOnly: p.isReadOnly,
134
- required: p.isRequired,
135
- 'aria-required': p.isRequired || undefined,
136
- 'aria-invalid': isInvalid || undefined,
137
- value: p.value ?? p.defaultValue ?? '',
154
+ required: validationBehavior === "native" && p.isRequired,
155
+ "aria-required": (validationBehavior === "aria" && p.isRequired) || undefined,
156
+ "aria-invalid": isInvalid || undefined,
157
+ value: p.value ?? p.defaultValue ?? "",
138
158
  onChange: (e: Event) => {
139
159
  const target = e.target as HTMLInputElement | HTMLTextAreaElement;
140
- p.onChange?.(target.value);
160
+ if (target.value !== lastInputValue) {
161
+ p.onChange?.(target.value);
162
+ }
141
163
  },
142
164
  // Don't include type and pattern for textarea elements
143
- type: isTextarea ? undefined : (p.type ?? 'text'),
165
+ type: isTextarea ? undefined : (p.type ?? "text"),
144
166
  inputMode: p.inputMode,
167
+ enterKeyHint: p.enterKeyHint,
145
168
  name: p.name,
169
+ form: p.form,
146
170
  pattern: isTextarea ? undefined : p.pattern,
147
171
  maxLength: p.maxLength,
148
172
  minLength: p.minLength,
@@ -167,10 +191,18 @@ export function createTextField<T extends HTMLInputElement | HTMLTextAreaElement
167
191
 
168
192
  // Input events
169
193
  onBeforeInput: p.onBeforeInput,
170
- onInput: p.onInput,
194
+ onInput: (e: InputEvent) => {
195
+ const target = e.target as HTMLInputElement | HTMLTextAreaElement;
196
+ const nextValue = target.value;
197
+ p.onInput?.(
198
+ eventWithCurrentTarget(e, target) as Parameters<NonNullable<typeof p.onInput>>[0],
199
+ );
200
+ lastInputValue = nextValue;
201
+ p.onChange?.(nextValue);
202
+ },
171
203
  },
172
204
  focusableProps as Record<string, unknown>,
173
- fieldProps as Record<string, unknown>
205
+ fieldProps as Record<string, unknown>,
174
206
  ) as JSX.InputHTMLAttributes<T>;
175
207
  };
176
208
 
@@ -1,5 +1 @@
1
- export {
2
- createTextField,
3
- type AriaTextFieldProps,
4
- type TextFieldAria,
5
- } from './createTextField';
1
+ export { createTextField, type AriaTextFieldProps, type TextFieldAria } from "./createTextField";
@@ -6,13 +6,9 @@
6
6
  * Port of @react-aria/toast useToast.
7
7
  */
8
8
 
9
- import { type JSX, createMemo } from 'solid-js';
10
- import { type QueuedToast, type ToastState } from '@proyecto-viviana/solid-stately';
11
- import { createId } from '../ssr';
12
-
13
- // ============================================
14
- // TYPES
15
- // ============================================
9
+ import { type JSX, createMemo } from "solid-js";
10
+ import { type QueuedToast, type ToastState } from "@proyecto-viviana/solid-stately";
11
+ import { createId } from "../ssr";
16
12
 
17
13
  export interface AriaToastProps<T> {
18
14
  /** The toast to display. */
@@ -38,10 +34,6 @@ export interface ToastAria {
38
34
  closeButtonProps: JSX.ButtonHTMLAttributes<HTMLButtonElement>;
39
35
  }
40
36
 
41
- // ============================================
42
- // IMPLEMENTATION
43
- // ============================================
44
-
45
37
  /**
46
38
  * Provides the accessibility implementation for a Toast component.
47
39
  *
@@ -83,19 +75,19 @@ export function createToast<T>(props: AriaToastProps<T>): ToastAria {
83
75
 
84
76
  // Toast container - role="alertdialog" for screen readers
85
77
  const toastProps = createMemo<JSX.HTMLAttributes<HTMLElement>>(() => ({
86
- role: 'alertdialog',
87
- 'aria-modal': 'false',
88
- 'aria-labelledby': hasTitle ? titleId : undefined,
89
- 'aria-describedby': hasDescription ? descriptionId : undefined,
90
- 'data-animation': props.toast.animation,
91
- 'data-key': props.toast.key,
78
+ role: "alertdialog",
79
+ "aria-modal": "false",
80
+ "aria-labelledby": hasTitle ? titleId : undefined,
81
+ "aria-describedby": hasDescription ? descriptionId : undefined,
82
+ "data-animation": props.toast.animation,
83
+ "data-key": props.toast.key,
92
84
  }));
93
85
 
94
86
  // Content area with role="alert" for immediate announcement
95
87
  const contentProps = createMemo<JSX.HTMLAttributes<HTMLElement>>(() => ({
96
- role: 'alert',
97
- 'aria-atomic': 'true',
98
- 'aria-live': 'assertive',
88
+ role: "alert",
89
+ "aria-atomic": "true",
90
+ "aria-live": "assertive",
99
91
  }));
100
92
 
101
93
  // Title props
@@ -110,15 +102,25 @@ export function createToast<T>(props: AriaToastProps<T>): ToastAria {
110
102
 
111
103
  // Close button
112
104
  const closeButtonProps = createMemo<JSX.ButtonHTMLAttributes<HTMLButtonElement>>(() => ({
113
- 'aria-label': 'Close',
105
+ "aria-label": "Close",
114
106
  onClick: close,
115
107
  }));
116
108
 
117
109
  return {
118
- get toastProps() { return toastProps(); },
119
- get contentProps() { return contentProps(); },
120
- get titleProps() { return titleProps(); },
121
- get descriptionProps() { return descriptionProps(); },
122
- get closeButtonProps() { return closeButtonProps(); },
110
+ get toastProps() {
111
+ return toastProps();
112
+ },
113
+ get contentProps() {
114
+ return contentProps();
115
+ },
116
+ get titleProps() {
117
+ return titleProps();
118
+ },
119
+ get descriptionProps() {
120
+ return descriptionProps();
121
+ },
122
+ get closeButtonProps() {
123
+ return closeButtonProps();
124
+ },
123
125
  };
124
126
  }