@proyecto-viviana/solidaria 0.2.8 → 0.4.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 (976) hide show
  1. package/README.md +31 -236
  2. package/dist/_chunk/actiongroup.js +207 -0
  3. package/dist/_chunk/actiongroup.js.map +1 -0
  4. package/dist/_chunk/actiongroup.jsx +207 -0
  5. package/dist/_chunk/actiongroup.jsx.map +1 -0
  6. package/dist/_chunk/ariaHideOutside.js +122 -0
  7. package/dist/_chunk/ariaHideOutside.js.map +1 -0
  8. package/dist/_chunk/ariaHideOutside.jsx +122 -0
  9. package/dist/_chunk/ariaHideOutside.jsx.map +1 -0
  10. package/dist/_chunk/autocomplete.js +196 -0
  11. package/dist/_chunk/autocomplete.js.map +1 -0
  12. package/dist/_chunk/autocomplete.jsx +196 -0
  13. package/dist/_chunk/autocomplete.jsx.map +1 -0
  14. package/dist/_chunk/breadcrumbs.js +119 -0
  15. package/dist/_chunk/breadcrumbs.js.map +1 -0
  16. package/dist/_chunk/breadcrumbs.jsx +119 -0
  17. package/dist/_chunk/breadcrumbs.jsx.map +1 -0
  18. package/dist/_chunk/button.js +276 -0
  19. package/dist/_chunk/button.js.map +1 -0
  20. package/dist/_chunk/button.jsx +276 -0
  21. package/dist/_chunk/button.jsx.map +1 -0
  22. package/dist/_chunk/calendar.js +1036 -0
  23. package/dist/_chunk/calendar.js.map +1 -0
  24. package/dist/_chunk/calendar.jsx +1036 -0
  25. package/dist/_chunk/calendar.jsx.map +1 -0
  26. package/dist/_chunk/checkbox.js +234 -0
  27. package/dist/_chunk/checkbox.js.map +1 -0
  28. package/dist/_chunk/checkbox.jsx +234 -0
  29. package/dist/_chunk/checkbox.jsx.map +1 -0
  30. package/dist/_chunk/color.js +1174 -0
  31. package/dist/_chunk/color.js.map +1 -0
  32. package/dist/_chunk/color.jsx +1174 -0
  33. package/dist/_chunk/color.jsx.map +1 -0
  34. package/dist/_chunk/combobox.js +436 -0
  35. package/dist/_chunk/combobox.js.map +1 -0
  36. package/dist/_chunk/combobox.jsx +436 -0
  37. package/dist/_chunk/combobox.jsx.map +1 -0
  38. package/dist/_chunk/createCollator.js +229 -0
  39. package/dist/_chunk/createCollator.js.map +1 -0
  40. package/dist/_chunk/createCollator.jsx +223 -0
  41. package/dist/_chunk/createCollator.jsx.map +1 -0
  42. package/dist/_chunk/createCollectionRowInteraction.js +133 -0
  43. package/dist/_chunk/createCollectionRowInteraction.js.map +1 -0
  44. package/dist/_chunk/createCollectionRowInteraction.jsx +133 -0
  45. package/dist/_chunk/createCollectionRowInteraction.jsx.map +1 -0
  46. package/dist/_chunk/createField.js +54 -0
  47. package/dist/_chunk/createField.js.map +1 -0
  48. package/dist/_chunk/createField.jsx +54 -0
  49. package/dist/_chunk/createField.jsx.map +1 -0
  50. package/dist/_chunk/createFocus.js +101 -0
  51. package/dist/_chunk/createFocus.js.map +1 -0
  52. package/dist/_chunk/createFocus.jsx +101 -0
  53. package/dist/_chunk/createFocus.jsx.map +1 -0
  54. package/dist/_chunk/createFocusRing.js +54 -0
  55. package/dist/_chunk/createFocusRing.js.map +1 -0
  56. package/dist/_chunk/createFocusRing.jsx +54 -0
  57. package/dist/_chunk/createFocusRing.jsx.map +1 -0
  58. package/dist/_chunk/createFocusWithin.js +121 -0
  59. package/dist/_chunk/createFocusWithin.js.map +1 -0
  60. package/dist/_chunk/createFocusWithin.jsx +121 -0
  61. package/dist/_chunk/createFocusWithin.jsx.map +1 -0
  62. package/dist/_chunk/createFocusable.js +131 -0
  63. package/dist/_chunk/createFocusable.js.map +1 -0
  64. package/dist/_chunk/createFocusable.jsx +131 -0
  65. package/dist/_chunk/createFocusable.jsx.map +1 -0
  66. package/dist/_chunk/createFormValidation.js +135 -0
  67. package/dist/_chunk/createFormValidation.js.map +1 -0
  68. package/dist/_chunk/createFormValidation.jsx +135 -0
  69. package/dist/_chunk/createFormValidation.jsx.map +1 -0
  70. package/dist/_chunk/createHover.js +130 -0
  71. package/dist/_chunk/createHover.js.map +1 -0
  72. package/dist/_chunk/createHover.jsx +130 -0
  73. package/dist/_chunk/createHover.jsx.map +1 -0
  74. package/dist/_chunk/createInteractionModality.js +269 -0
  75. package/dist/_chunk/createInteractionModality.js.map +1 -0
  76. package/dist/_chunk/createInteractionModality.jsx +269 -0
  77. package/dist/_chunk/createInteractionModality.jsx.map +1 -0
  78. package/dist/_chunk/createLabel.js +46 -0
  79. package/dist/_chunk/createLabel.js.map +1 -0
  80. package/dist/_chunk/createLabel.jsx +46 -0
  81. package/dist/_chunk/createLabel.jsx.map +1 -0
  82. package/dist/_chunk/createLabels.js +31 -0
  83. package/dist/_chunk/createLabels.js.map +1 -0
  84. package/dist/_chunk/createLabels.jsx +31 -0
  85. package/dist/_chunk/createLabels.jsx.map +1 -0
  86. package/dist/_chunk/createLandmark.js +198 -0
  87. package/dist/_chunk/createLandmark.js.map +1 -0
  88. package/dist/_chunk/createLandmark.jsx +198 -0
  89. package/dist/_chunk/createLandmark.jsx.map +1 -0
  90. package/dist/_chunk/createLongPress.js +91 -0
  91. package/dist/_chunk/createLongPress.js.map +1 -0
  92. package/dist/_chunk/createLongPress.jsx +91 -0
  93. package/dist/_chunk/createLongPress.jsx.map +1 -0
  94. package/dist/_chunk/createOverlay.js +327 -0
  95. package/dist/_chunk/createOverlay.js.map +1 -0
  96. package/dist/_chunk/createOverlay.jsx +327 -0
  97. package/dist/_chunk/createOverlay.jsx.map +1 -0
  98. package/dist/_chunk/createPress.js +526 -0
  99. package/dist/_chunk/createPress.js.map +1 -0
  100. package/dist/_chunk/createPress.jsx +526 -0
  101. package/dist/_chunk/createPress.jsx.map +1 -0
  102. package/dist/_chunk/createProgressBar.js +81 -0
  103. package/dist/_chunk/createProgressBar.js.map +1 -0
  104. package/dist/_chunk/createProgressBar.jsx +81 -0
  105. package/dist/_chunk/createProgressBar.jsx.map +1 -0
  106. package/dist/_chunk/createSelectableItem.js +298 -0
  107. package/dist/_chunk/createSelectableItem.js.map +1 -0
  108. package/dist/_chunk/createSelectableItem.jsx +298 -0
  109. package/dist/_chunk/createSelectableItem.jsx.map +1 -0
  110. package/dist/_chunk/createToggle.js +158 -0
  111. package/dist/_chunk/createToggle.js.map +1 -0
  112. package/dist/_chunk/createToggle.jsx +158 -0
  113. package/dist/_chunk/createToggle.jsx.map +1 -0
  114. package/dist/_chunk/createTypeSelect.js +125 -0
  115. package/dist/_chunk/createTypeSelect.js.map +1 -0
  116. package/dist/_chunk/createTypeSelect.jsx +125 -0
  117. package/dist/_chunk/createTypeSelect.jsx.map +1 -0
  118. package/dist/_chunk/datepicker.js +1393 -0
  119. package/dist/_chunk/datepicker.js.map +1 -0
  120. package/dist/_chunk/datepicker.jsx +1393 -0
  121. package/dist/_chunk/datepicker.jsx.map +1 -0
  122. package/dist/_chunk/dialog.js +62 -0
  123. package/dist/_chunk/dialog.js.map +1 -0
  124. package/dist/_chunk/dialog.jsx +62 -0
  125. package/dist/_chunk/dialog.jsx.map +1 -0
  126. package/dist/_chunk/disclosure.js +185 -0
  127. package/dist/_chunk/disclosure.js.map +1 -0
  128. package/dist/_chunk/disclosure.jsx +185 -0
  129. package/dist/_chunk/disclosure.jsx.map +1 -0
  130. package/dist/_chunk/dnd.js +1304 -0
  131. package/dist/_chunk/dnd.js.map +1 -0
  132. package/dist/_chunk/dnd.jsx +1304 -0
  133. package/dist/_chunk/dnd.jsx.map +1 -0
  134. package/dist/_chunk/env.js +105 -0
  135. package/dist/_chunk/env.js.map +1 -0
  136. package/dist/_chunk/env.jsx +105 -0
  137. package/dist/_chunk/env.jsx.map +1 -0
  138. package/dist/_chunk/filterDOMProps.js +82 -0
  139. package/dist/_chunk/filterDOMProps.js.map +1 -0
  140. package/dist/_chunk/filterDOMProps.jsx +82 -0
  141. package/dist/_chunk/filterDOMProps.jsx.map +1 -0
  142. package/dist/_chunk/focus.js +399 -0
  143. package/dist/_chunk/focus.js.map +1 -0
  144. package/dist/_chunk/focus.jsx +399 -0
  145. package/dist/_chunk/focus.jsx.map +1 -0
  146. package/dist/_chunk/focus2.js +895 -0
  147. package/dist/_chunk/focus2.js.map +1 -0
  148. package/dist/_chunk/focus2.jsx +870 -0
  149. package/dist/_chunk/focus2.jsx.map +1 -0
  150. package/dist/_chunk/form.js +39 -0
  151. package/dist/_chunk/form.js.map +1 -0
  152. package/dist/_chunk/form.jsx +39 -0
  153. package/dist/_chunk/form.jsx.map +1 -0
  154. package/dist/_chunk/grid.js +623 -0
  155. package/dist/_chunk/grid.js.map +1 -0
  156. package/dist/_chunk/grid.jsx +623 -0
  157. package/dist/_chunk/grid.jsx.map +1 -0
  158. package/dist/_chunk/gridlist.js +364 -0
  159. package/dist/_chunk/gridlist.js.map +1 -0
  160. package/dist/_chunk/gridlist.jsx +364 -0
  161. package/dist/_chunk/gridlist.jsx.map +1 -0
  162. package/dist/_chunk/i18n.js +254 -0
  163. package/dist/_chunk/i18n.js.map +1 -0
  164. package/dist/_chunk/i18n.jsx +254 -0
  165. package/dist/_chunk/i18n.jsx.map +1 -0
  166. package/dist/_chunk/interactions.js +241 -0
  167. package/dist/_chunk/interactions.js.map +1 -0
  168. package/dist/_chunk/interactions.jsx +237 -0
  169. package/dist/_chunk/interactions.jsx.map +1 -0
  170. package/dist/_chunk/link.js +96 -0
  171. package/dist/_chunk/link.js.map +1 -0
  172. package/dist/_chunk/link.jsx +96 -0
  173. package/dist/_chunk/link.jsx.map +1 -0
  174. package/dist/_chunk/listbox.js +324 -0
  175. package/dist/_chunk/listbox.js.map +1 -0
  176. package/dist/_chunk/listbox.jsx +324 -0
  177. package/dist/_chunk/listbox.jsx.map +1 -0
  178. package/dist/_chunk/live-announcer.js +207 -0
  179. package/dist/_chunk/live-announcer.js.map +1 -0
  180. package/dist/_chunk/live-announcer.jsx +207 -0
  181. package/dist/_chunk/live-announcer.jsx.map +1 -0
  182. package/dist/_chunk/menu.js +518 -0
  183. package/dist/_chunk/menu.js.map +1 -0
  184. package/dist/_chunk/menu.jsx +518 -0
  185. package/dist/_chunk/menu.jsx.map +1 -0
  186. package/dist/_chunk/meter.js +33 -0
  187. package/dist/_chunk/meter.js.map +1 -0
  188. package/dist/_chunk/meter.jsx +33 -0
  189. package/dist/_chunk/meter.jsx.map +1 -0
  190. package/dist/_chunk/numberfield.js +258 -0
  191. package/dist/_chunk/numberfield.js.map +1 -0
  192. package/dist/_chunk/numberfield.jsx +258 -0
  193. package/dist/_chunk/numberfield.jsx.map +1 -0
  194. package/dist/_chunk/overlays.js +186 -0
  195. package/dist/_chunk/overlays.js.map +1 -0
  196. package/dist/_chunk/overlays.jsx +162 -0
  197. package/dist/_chunk/overlays.jsx.map +1 -0
  198. package/dist/_chunk/popover.js +574 -0
  199. package/dist/_chunk/popover.js.map +1 -0
  200. package/dist/_chunk/popover.jsx +574 -0
  201. package/dist/_chunk/popover.jsx.map +1 -0
  202. package/dist/_chunk/radio.js +319 -0
  203. package/dist/_chunk/radio.js.map +1 -0
  204. package/dist/_chunk/radio.jsx +319 -0
  205. package/dist/_chunk/radio.jsx.map +1 -0
  206. package/dist/_chunk/searchfield.js +209 -0
  207. package/dist/_chunk/searchfield.js.map +1 -0
  208. package/dist/_chunk/searchfield.jsx +209 -0
  209. package/dist/_chunk/searchfield.jsx.map +1 -0
  210. package/dist/_chunk/select.js +403 -0
  211. package/dist/_chunk/select.js.map +1 -0
  212. package/dist/_chunk/select.jsx +394 -0
  213. package/dist/_chunk/select.jsx.map +1 -0
  214. package/dist/_chunk/selection.js +679 -0
  215. package/dist/_chunk/selection.js.map +1 -0
  216. package/dist/_chunk/selection.jsx +679 -0
  217. package/dist/_chunk/selection.jsx.map +1 -0
  218. package/dist/_chunk/separator.js +29 -0
  219. package/dist/_chunk/separator.js.map +1 -0
  220. package/dist/_chunk/separator.jsx +29 -0
  221. package/dist/_chunk/separator.jsx.map +1 -0
  222. package/dist/_chunk/slider.js +255 -0
  223. package/dist/_chunk/slider.js.map +1 -0
  224. package/dist/_chunk/slider.jsx +255 -0
  225. package/dist/_chunk/slider.jsx.map +1 -0
  226. package/dist/_chunk/steplist.js +66 -0
  227. package/dist/_chunk/steplist.js.map +1 -0
  228. package/dist/_chunk/steplist.jsx +66 -0
  229. package/dist/_chunk/steplist.jsx.map +1 -0
  230. package/dist/_chunk/switch.js +34 -0
  231. package/dist/_chunk/switch.js.map +1 -0
  232. package/dist/_chunk/switch.jsx +34 -0
  233. package/dist/_chunk/switch.jsx.map +1 -0
  234. package/dist/_chunk/table.js +1051 -0
  235. package/dist/_chunk/table.js.map +1 -0
  236. package/dist/_chunk/table.jsx +1051 -0
  237. package/dist/_chunk/table.jsx.map +1 -0
  238. package/dist/_chunk/tabs.js +260 -0
  239. package/dist/_chunk/tabs.js.map +1 -0
  240. package/dist/_chunk/tabs.jsx +260 -0
  241. package/dist/_chunk/tabs.jsx.map +1 -0
  242. package/dist/_chunk/tag.js +286 -0
  243. package/dist/_chunk/tag.js.map +1 -0
  244. package/dist/_chunk/tag.jsx +286 -0
  245. package/dist/_chunk/tag.jsx.map +1 -0
  246. package/dist/_chunk/textfield.js +109 -0
  247. package/dist/_chunk/textfield.js.map +1 -0
  248. package/dist/_chunk/textfield.jsx +109 -0
  249. package/dist/_chunk/textfield.jsx.map +1 -0
  250. package/dist/_chunk/toast.js +250 -0
  251. package/dist/_chunk/toast.js.map +1 -0
  252. package/dist/_chunk/toast.jsx +250 -0
  253. package/dist/_chunk/toast.jsx.map +1 -0
  254. package/dist/_chunk/toolbar.js +258 -0
  255. package/dist/_chunk/toolbar.js.map +1 -0
  256. package/dist/_chunk/toolbar.jsx +258 -0
  257. package/dist/_chunk/toolbar.jsx.map +1 -0
  258. package/dist/_chunk/tooltip.js +185 -0
  259. package/dist/_chunk/tooltip.js.map +1 -0
  260. package/dist/_chunk/tooltip.jsx +185 -0
  261. package/dist/_chunk/tooltip.jsx.map +1 -0
  262. package/dist/_chunk/tree.js +424 -0
  263. package/dist/_chunk/tree.js.map +1 -0
  264. package/dist/_chunk/tree.jsx +424 -0
  265. package/dist/_chunk/tree.jsx.map +1 -0
  266. package/dist/_chunk/utils.js +665 -0
  267. package/dist/_chunk/utils.js.map +1 -0
  268. package/dist/_chunk/utils.jsx +665 -0
  269. package/dist/_chunk/utils.jsx.map +1 -0
  270. package/dist/_chunk/visually-hidden.js +92 -0
  271. package/dist/_chunk/visually-hidden.js.map +1 -0
  272. package/dist/_chunk/visually-hidden.jsx +92 -0
  273. package/dist/_chunk/visually-hidden.jsx.map +1 -0
  274. package/dist/actiongroup/createActionGroup.d.ts +5 -5
  275. package/dist/actiongroup/createActionGroup.d.ts.map +1 -1
  276. package/dist/actiongroup/index.d.ts +1 -1
  277. package/dist/actiongroup/index.js +2 -0
  278. package/dist/actiongroup/index.jsx +2 -0
  279. package/dist/autocomplete/createAutocomplete.d.ts +12 -10
  280. package/dist/autocomplete/createAutocomplete.d.ts.map +1 -1
  281. package/dist/autocomplete/index.d.ts +1 -1
  282. package/dist/autocomplete/index.d.ts.map +1 -1
  283. package/dist/autocomplete/index.js +2 -0
  284. package/dist/autocomplete/index.jsx +2 -0
  285. package/dist/breadcrumbs/createBreadcrumbs.d.ts +9 -7
  286. package/dist/breadcrumbs/createBreadcrumbs.d.ts.map +1 -1
  287. package/dist/breadcrumbs/index.d.ts +1 -1
  288. package/dist/breadcrumbs/index.js +2 -0
  289. package/dist/breadcrumbs/index.jsx +2 -0
  290. package/dist/button/createButton.d.ts +1 -1
  291. package/dist/button/createButton.d.ts.map +1 -1
  292. package/dist/button/createToggleButton.d.ts +3 -3
  293. package/dist/button/createToggleButtonGroup.d.ts +7 -7
  294. package/dist/button/createToggleButtonGroup.d.ts.map +1 -1
  295. package/dist/button/index.d.ts +6 -6
  296. package/dist/button/index.d.ts.map +1 -1
  297. package/dist/button/index.js +2 -0
  298. package/dist/button/index.jsx +2 -0
  299. package/dist/button/types.d.ts +18 -12
  300. package/dist/button/types.d.ts.map +1 -1
  301. package/dist/calendar/createCalendar.d.ts +15 -5
  302. package/dist/calendar/createCalendar.d.ts.map +1 -1
  303. package/dist/calendar/createCalendarCell.d.ts +6 -2
  304. package/dist/calendar/createCalendarCell.d.ts.map +1 -1
  305. package/dist/calendar/createCalendarGrid.d.ts +4 -4
  306. package/dist/calendar/createCalendarGrid.d.ts.map +1 -1
  307. package/dist/calendar/createCalendarMonthPicker.d.ts +41 -0
  308. package/dist/calendar/createCalendarMonthPicker.d.ts.map +1 -0
  309. package/dist/calendar/createCalendarYearPicker.d.ts +49 -0
  310. package/dist/calendar/createCalendarYearPicker.d.ts.map +1 -0
  311. package/dist/calendar/createRangeCalendar.d.ts +15 -5
  312. package/dist/calendar/createRangeCalendar.d.ts.map +1 -1
  313. package/dist/calendar/createRangeCalendarCell.d.ts +4 -2
  314. package/dist/calendar/createRangeCalendarCell.d.ts.map +1 -1
  315. package/dist/calendar/index.d.ts +7 -5
  316. package/dist/calendar/index.d.ts.map +1 -1
  317. package/dist/calendar/index.js +2 -0
  318. package/dist/calendar/index.jsx +2 -0
  319. package/dist/calendar/intl/index.d.ts +12 -0
  320. package/dist/calendar/intl/index.d.ts.map +1 -0
  321. package/dist/calendar/utils.d.ts +16 -0
  322. package/dist/calendar/utils.d.ts.map +1 -0
  323. package/dist/checkbox/createCheckbox.d.ts +10 -6
  324. package/dist/checkbox/createCheckbox.d.ts.map +1 -1
  325. package/dist/checkbox/createCheckboxGroup.d.ts +7 -7
  326. package/dist/checkbox/createCheckboxGroup.d.ts.map +1 -1
  327. package/dist/checkbox/createCheckboxGroupItem.d.ts +4 -4
  328. package/dist/checkbox/createCheckboxGroupItem.d.ts.map +1 -1
  329. package/dist/checkbox/createCheckboxGroupState.d.ts +2 -2
  330. package/dist/checkbox/createCheckboxGroupState.d.ts.map +1 -1
  331. package/dist/checkbox/index.d.ts +8 -8
  332. package/dist/checkbox/index.d.ts.map +1 -1
  333. package/dist/checkbox/index.js +2 -0
  334. package/dist/checkbox/index.jsx +2 -0
  335. package/dist/collections/index.d.ts +3 -3
  336. package/dist/collections/index.d.ts.map +1 -1
  337. package/dist/collections/index.js +160 -0
  338. package/dist/collections/index.js.map +1 -0
  339. package/dist/collections/index.jsx +160 -0
  340. package/dist/collections/index.jsx.map +1 -0
  341. package/dist/color/createColorArea.d.ts +3 -3
  342. package/dist/color/createColorArea.d.ts.map +1 -1
  343. package/dist/color/createColorField.d.ts +4 -4
  344. package/dist/color/createColorField.d.ts.map +1 -1
  345. package/dist/color/createColorSlider.d.ts +4 -4
  346. package/dist/color/createColorSlider.d.ts.map +1 -1
  347. package/dist/color/createColorSwatch.d.ts +2 -2
  348. package/dist/color/createColorSwatch.d.ts.map +1 -1
  349. package/dist/color/createColorWheel.d.ts +3 -3
  350. package/dist/color/createColorWheel.d.ts.map +1 -1
  351. package/dist/color/index.d.ts +6 -6
  352. package/dist/color/index.js +2 -0
  353. package/dist/color/index.jsx +2 -0
  354. package/dist/color/types.d.ts +98 -16
  355. package/dist/color/types.d.ts.map +1 -1
  356. package/dist/combobox/createComboBox.d.ts +10 -7
  357. package/dist/combobox/createComboBox.d.ts.map +1 -1
  358. package/dist/combobox/index.d.ts +1 -1
  359. package/dist/combobox/index.js +2 -0
  360. package/dist/combobox/index.jsx +2 -0
  361. package/dist/combobox/intl/index.d.ts +1 -1
  362. package/dist/datepicker/createDateField.d.ts +18 -6
  363. package/dist/datepicker/createDateField.d.ts.map +1 -1
  364. package/dist/datepicker/createDatePicker.d.ts +51 -5
  365. package/dist/datepicker/createDatePicker.d.ts.map +1 -1
  366. package/dist/datepicker/createDatePickerGroup.d.ts +19 -0
  367. package/dist/datepicker/createDatePickerGroup.d.ts.map +1 -0
  368. package/dist/datepicker/createDateRangePicker.d.ts +8 -6
  369. package/dist/datepicker/createDateRangePicker.d.ts.map +1 -1
  370. package/dist/datepicker/createDateSegment.d.ts +10 -2
  371. package/dist/datepicker/createDateSegment.d.ts.map +1 -1
  372. package/dist/datepicker/createTimeField.d.ts +11 -5
  373. package/dist/datepicker/createTimeField.d.ts.map +1 -1
  374. package/dist/datepicker/createTimeSegment.d.ts +2 -2
  375. package/dist/datepicker/createTimeSegment.d.ts.map +1 -1
  376. package/dist/datepicker/index.d.ts +7 -6
  377. package/dist/datepicker/index.d.ts.map +1 -1
  378. package/dist/datepicker/index.js +2 -0
  379. package/dist/datepicker/index.jsx +2 -0
  380. package/dist/dialog/createDialog.d.ts +5 -5
  381. package/dist/dialog/createDialog.d.ts.map +1 -1
  382. package/dist/dialog/index.d.ts +2 -2
  383. package/dist/dialog/index.d.ts.map +1 -1
  384. package/dist/dialog/index.js +2 -0
  385. package/dist/dialog/index.jsx +2 -0
  386. package/dist/dialog/types.d.ts +4 -4
  387. package/dist/disclosure/createDisclosure.d.ts +5 -2
  388. package/dist/disclosure/createDisclosure.d.ts.map +1 -1
  389. package/dist/disclosure/createDisclosureGroup.d.ts +4 -4
  390. package/dist/disclosure/createDisclosureGroup.d.ts.map +1 -1
  391. package/dist/disclosure/index.d.ts +2 -2
  392. package/dist/disclosure/index.js +2 -0
  393. package/dist/disclosure/index.jsx +2 -0
  394. package/dist/dnd/createDrag.d.ts +2 -2
  395. package/dist/dnd/createDrag.d.ts.map +1 -1
  396. package/dist/dnd/createDraggableCollection.d.ts +2 -2
  397. package/dist/dnd/createDraggableItem.d.ts +3 -3
  398. package/dist/dnd/createDraggableItem.d.ts.map +1 -1
  399. package/dist/dnd/createDrop.d.ts +2 -2
  400. package/dist/dnd/createDrop.d.ts.map +1 -1
  401. package/dist/dnd/createDroppableCollection.d.ts +26 -6
  402. package/dist/dnd/createDroppableCollection.d.ts.map +1 -1
  403. package/dist/dnd/createDroppableItem.d.ts +3 -3
  404. package/dist/dnd/index.d.ts +12 -12
  405. package/dist/dnd/index.d.ts.map +1 -1
  406. package/dist/dnd/index.js +2 -0
  407. package/dist/dnd/index.jsx +2 -0
  408. package/dist/dnd/types.d.ts +2 -2
  409. package/dist/dnd/types.d.ts.map +1 -1
  410. package/dist/dnd/utils.d.ts +2 -2
  411. package/dist/dnd/utils.d.ts.map +1 -1
  412. package/dist/focus/FocusScope.d.ts +1 -1
  413. package/dist/focus/FocusScope.d.ts.map +1 -1
  414. package/dist/focus/createAutoFocus.d.ts.map +1 -1
  415. package/dist/focus/createFocusRestore.d.ts.map +1 -1
  416. package/dist/focus/createVirtualFocus.d.ts +4 -4
  417. package/dist/focus/createVirtualFocus.d.ts.map +1 -1
  418. package/dist/focus/index.d.ts +4 -4
  419. package/dist/focus/index.d.ts.map +1 -1
  420. package/dist/focus/index.js +2 -0
  421. package/dist/focus/index.jsx +2 -0
  422. package/dist/form/createFormReset.d.ts +1 -1
  423. package/dist/form/createFormValidation.d.ts +3 -3
  424. package/dist/form/createFormValidation.d.ts.map +1 -1
  425. package/dist/form/index.d.ts +2 -2
  426. package/dist/form/index.d.ts.map +1 -1
  427. package/dist/form/index.js +3 -0
  428. package/dist/form/index.jsx +3 -0
  429. package/dist/grid/GridKeyboardDelegate.d.ts +5 -5
  430. package/dist/grid/createGrid.d.ts +3 -3
  431. package/dist/grid/createGridCell.d.ts +3 -3
  432. package/dist/grid/createGridRow.d.ts +3 -3
  433. package/dist/grid/index.d.ts +5 -5
  434. package/dist/grid/index.js +2 -0
  435. package/dist/grid/index.jsx +2 -0
  436. package/dist/grid/types.d.ts +8 -8
  437. package/dist/gridlist/createGridList.d.ts +12 -4
  438. package/dist/gridlist/createGridList.d.ts.map +1 -1
  439. package/dist/gridlist/createGridListItem.d.ts +4 -4
  440. package/dist/gridlist/createGridListItem.d.ts.map +1 -1
  441. package/dist/gridlist/createGridListSection.d.ts +15 -0
  442. package/dist/gridlist/createGridListSection.d.ts.map +1 -0
  443. package/dist/gridlist/createGridListSelectionCheckbox.d.ts +3 -3
  444. package/dist/gridlist/createGridListSelectionCheckbox.d.ts.map +1 -1
  445. package/dist/gridlist/index.d.ts +5 -4
  446. package/dist/gridlist/index.d.ts.map +1 -1
  447. package/dist/gridlist/index.js +2 -0
  448. package/dist/gridlist/index.jsx +2 -0
  449. package/dist/gridlist/types.d.ts +61 -7
  450. package/dist/gridlist/types.d.ts.map +1 -1
  451. package/dist/i18n/createCollator.d.ts.map +1 -1
  452. package/dist/i18n/createDateFormatter.d.ts.map +1 -1
  453. package/dist/i18n/createFilter.d.ts.map +1 -1
  454. package/dist/i18n/createNumberFormatter.d.ts +1 -1
  455. package/dist/i18n/createNumberFormatter.d.ts.map +1 -1
  456. package/dist/i18n/createStringFormatter.d.ts +2 -2
  457. package/dist/i18n/createStringFormatter.d.ts.map +1 -1
  458. package/dist/i18n/index.d.ts +8 -8
  459. package/dist/i18n/index.d.ts.map +1 -1
  460. package/dist/i18n/index.js +3 -0
  461. package/dist/i18n/index.jsx +3 -0
  462. package/dist/i18n/locale.d.ts +2 -2
  463. package/dist/i18n/locale.d.ts.map +1 -1
  464. package/dist/i18n/utils.d.ts.map +1 -1
  465. package/dist/index.d.ts +56 -51
  466. package/dist/index.d.ts.map +1 -1
  467. package/dist/index.js +71 -17119
  468. package/dist/index.jsx +71 -0
  469. package/dist/interactions/FocusableProvider.d.ts +2 -2
  470. package/dist/interactions/FocusableProvider.d.ts.map +1 -1
  471. package/dist/interactions/PressEvent.d.ts +13 -2
  472. package/dist/interactions/PressEvent.d.ts.map +1 -1
  473. package/dist/interactions/createFocus.d.ts +1 -1
  474. package/dist/interactions/createFocus.d.ts.map +1 -1
  475. package/dist/interactions/createFocusRing.d.ts +1 -1
  476. package/dist/interactions/createFocusRing.d.ts.map +1 -1
  477. package/dist/interactions/createFocusWithin.d.ts +1 -1
  478. package/dist/interactions/createFocusWithin.d.ts.map +1 -1
  479. package/dist/interactions/createFocusable.d.ts +3 -3
  480. package/dist/interactions/createFocusable.d.ts.map +1 -1
  481. package/dist/interactions/createHover.d.ts +5 -5
  482. package/dist/interactions/createHover.d.ts.map +1 -1
  483. package/dist/interactions/createInteractionModality.d.ts +3 -4
  484. package/dist/interactions/createInteractionModality.d.ts.map +1 -1
  485. package/dist/interactions/createKeyboard.d.ts +1 -1
  486. package/dist/interactions/createKeyboard.d.ts.map +1 -1
  487. package/dist/interactions/createLongPress.d.ts +5 -5
  488. package/dist/interactions/createMove.d.ts +5 -5
  489. package/dist/interactions/createMove.d.ts.map +1 -1
  490. package/dist/interactions/createPress.d.ts +4 -4
  491. package/dist/interactions/createPress.d.ts.map +1 -1
  492. package/dist/interactions/index.d.ts +12 -12
  493. package/dist/interactions/index.d.ts.map +1 -1
  494. package/dist/interactions/index.js +10 -0
  495. package/dist/interactions/index.jsx +10 -0
  496. package/dist/label/createField.d.ts +4 -4
  497. package/dist/label/createField.d.ts.map +1 -1
  498. package/dist/label/createLabel.d.ts +7 -7
  499. package/dist/label/createLabel.d.ts.map +1 -1
  500. package/dist/label/createLabels.d.ts +1 -1
  501. package/dist/label/createLabels.d.ts.map +1 -1
  502. package/dist/label/index.d.ts +5 -5
  503. package/dist/label/index.js +4 -0
  504. package/dist/label/index.jsx +4 -0
  505. package/dist/landmark/createLandmark.d.ts +5 -5
  506. package/dist/landmark/createLandmark.d.ts.map +1 -1
  507. package/dist/landmark/index.d.ts +1 -1
  508. package/dist/landmark/index.js +2 -0
  509. package/dist/landmark/index.jsx +2 -0
  510. package/dist/link/createLink.d.ts +14 -8
  511. package/dist/link/createLink.d.ts.map +1 -1
  512. package/dist/link/index.d.ts +1 -1
  513. package/dist/link/index.js +2 -0
  514. package/dist/link/index.jsx +2 -0
  515. package/dist/listbox/createListBox.d.ts +48 -6
  516. package/dist/listbox/createListBox.d.ts.map +1 -1
  517. package/dist/listbox/createOption.d.ts +27 -4
  518. package/dist/listbox/createOption.d.ts.map +1 -1
  519. package/dist/listbox/index.d.ts +2 -2
  520. package/dist/listbox/index.d.ts.map +1 -1
  521. package/dist/listbox/index.js +2 -0
  522. package/dist/listbox/index.jsx +2 -0
  523. package/dist/live-announcer/announce.d.ts +2 -2
  524. package/dist/live-announcer/announce.d.ts.map +1 -1
  525. package/dist/live-announcer/index.d.ts +1 -1
  526. package/dist/live-announcer/index.js +2 -0
  527. package/dist/live-announcer/index.jsx +2 -0
  528. package/dist/menu/createMenu.d.ts +14 -11
  529. package/dist/menu/createMenu.d.ts.map +1 -1
  530. package/dist/menu/createMenuItem.d.ts +25 -5
  531. package/dist/menu/createMenuItem.d.ts.map +1 -1
  532. package/dist/menu/createMenuTrigger.d.ts +4 -4
  533. package/dist/menu/index.d.ts +3 -3
  534. package/dist/menu/index.d.ts.map +1 -1
  535. package/dist/menu/index.js +2 -0
  536. package/dist/menu/index.jsx +2 -0
  537. package/dist/meter/createMeter.d.ts +6 -6
  538. package/dist/meter/createMeter.d.ts.map +1 -1
  539. package/dist/meter/index.d.ts +1 -1
  540. package/dist/meter/index.js +2 -0
  541. package/dist/meter/index.jsx +2 -0
  542. package/dist/numberfield/createNumberField.d.ts +9 -8
  543. package/dist/numberfield/createNumberField.d.ts.map +1 -1
  544. package/dist/numberfield/index.d.ts +1 -1
  545. package/dist/numberfield/index.js +2 -0
  546. package/dist/numberfield/index.jsx +2 -0
  547. package/dist/overlays/ariaHideOutside.d.ts.map +1 -1
  548. package/dist/overlays/createModal.d.ts +3 -3
  549. package/dist/overlays/createModal.d.ts.map +1 -1
  550. package/dist/overlays/createOverlay.d.ts +1 -1
  551. package/dist/overlays/createOverlay.d.ts.map +1 -1
  552. package/dist/overlays/createOverlayTrigger.d.ts +6 -6
  553. package/dist/overlays/index.d.ts +6 -6
  554. package/dist/overlays/index.d.ts.map +1 -1
  555. package/dist/overlays/index.js +4 -0
  556. package/dist/overlays/index.jsx +4 -0
  557. package/dist/popover/calculatePosition.d.ts +6 -4
  558. package/dist/popover/calculatePosition.d.ts.map +1 -1
  559. package/dist/popover/createOverlayPosition.d.ts +11 -3
  560. package/dist/popover/createOverlayPosition.d.ts.map +1 -1
  561. package/dist/popover/createPopover.d.ts +4 -4
  562. package/dist/popover/createPopover.d.ts.map +1 -1
  563. package/dist/popover/index.d.ts +3 -3
  564. package/dist/popover/index.js +2 -0
  565. package/dist/popover/index.jsx +2 -0
  566. package/dist/progress/createProgressBar.d.ts +7 -5
  567. package/dist/progress/createProgressBar.d.ts.map +1 -1
  568. package/dist/progress/index.d.ts +1 -1
  569. package/dist/progress/index.js +2 -0
  570. package/dist/progress/index.jsx +2 -0
  571. package/dist/radio/createRadio.d.ts +9 -7
  572. package/dist/radio/createRadio.d.ts.map +1 -1
  573. package/dist/radio/createRadioGroup.d.ts +10 -10
  574. package/dist/radio/createRadioGroup.d.ts.map +1 -1
  575. package/dist/radio/createRadioGroupState.d.ts +3 -3
  576. package/dist/radio/createRadioGroupState.d.ts.map +1 -1
  577. package/dist/radio/index.d.ts +3 -3
  578. package/dist/radio/index.d.ts.map +1 -1
  579. package/dist/radio/index.js +2 -0
  580. package/dist/radio/index.jsx +2 -0
  581. package/dist/searchfield/createSearchField.d.ts +7 -7
  582. package/dist/searchfield/createSearchField.d.ts.map +1 -1
  583. package/dist/searchfield/index.d.ts +2 -2
  584. package/dist/searchfield/index.js +2 -0
  585. package/dist/searchfield/index.jsx +2 -0
  586. package/dist/select/createHiddenSelect.d.ts +4 -4
  587. package/dist/select/createHiddenSelect.d.ts.map +1 -1
  588. package/dist/select/createSelect.d.ts +14 -6
  589. package/dist/select/createSelect.d.ts.map +1 -1
  590. package/dist/select/index.d.ts +2 -2
  591. package/dist/select/index.d.ts.map +1 -1
  592. package/dist/select/index.js +2 -0
  593. package/dist/select/index.jsx +2 -0
  594. package/dist/selection/DOMLayoutDelegate.d.ts +58 -0
  595. package/dist/selection/DOMLayoutDelegate.d.ts.map +1 -0
  596. package/dist/selection/ListKeyboardDelegate.d.ts +95 -0
  597. package/dist/selection/ListKeyboardDelegate.d.ts.map +1 -0
  598. package/dist/selection/constants.d.ts +15 -0
  599. package/dist/selection/constants.d.ts.map +1 -0
  600. package/dist/selection/createCollectionRowInteraction.d.ts +13 -0
  601. package/dist/selection/createCollectionRowInteraction.d.ts.map +1 -0
  602. package/dist/selection/createScrollIntoViewOnFocus.d.ts +31 -0
  603. package/dist/selection/createScrollIntoViewOnFocus.d.ts.map +1 -0
  604. package/dist/selection/createSelectableCollection.d.ts +69 -0
  605. package/dist/selection/createSelectableCollection.d.ts.map +1 -0
  606. package/dist/selection/createSelectableItem.d.ts +154 -0
  607. package/dist/selection/createSelectableItem.d.ts.map +1 -0
  608. package/dist/selection/createSelectableList.d.ts +43 -0
  609. package/dist/selection/createSelectableList.d.ts.map +1 -0
  610. package/dist/selection/createTypeSelect.d.ts +2 -2
  611. package/dist/selection/createTypeSelect.d.ts.map +1 -1
  612. package/dist/selection/index.d.ts +10 -1
  613. package/dist/selection/index.d.ts.map +1 -1
  614. package/dist/selection/index.js +4 -0
  615. package/dist/selection/index.jsx +4 -0
  616. package/dist/selection/selectItem.d.ts +29 -0
  617. package/dist/selection/selectItem.d.ts.map +1 -0
  618. package/dist/selection/utils.d.ts +40 -0
  619. package/dist/selection/utils.d.ts.map +1 -0
  620. package/dist/separator/createSeparator.d.ts +9 -5
  621. package/dist/separator/createSeparator.d.ts.map +1 -1
  622. package/dist/separator/index.d.ts +1 -1
  623. package/dist/separator/index.js +2 -0
  624. package/dist/separator/index.jsx +2 -0
  625. package/dist/slider/createSlider.d.ts +11 -7
  626. package/dist/slider/createSlider.d.ts.map +1 -1
  627. package/dist/slider/index.d.ts +2 -2
  628. package/dist/slider/index.js +2 -0
  629. package/dist/slider/index.jsx +2 -0
  630. package/dist/ssr/index.d.ts +18 -1
  631. package/dist/ssr/index.d.ts.map +1 -1
  632. package/dist/ssr/index.js +299 -0
  633. package/dist/ssr/index.js.map +1 -0
  634. package/dist/ssr/index.jsx +292 -0
  635. package/dist/ssr/index.jsx.map +1 -0
  636. package/dist/steplist/createStepList.d.ts +36 -0
  637. package/dist/steplist/createStepList.d.ts.map +1 -0
  638. package/dist/steplist/index.d.ts +2 -0
  639. package/dist/steplist/index.d.ts.map +1 -0
  640. package/dist/steplist/index.js +2 -0
  641. package/dist/steplist/index.jsx +2 -0
  642. package/dist/switch/createSwitch.d.ts +10 -4
  643. package/dist/switch/createSwitch.d.ts.map +1 -1
  644. package/dist/switch/index.d.ts +1 -1
  645. package/dist/switch/index.js +2 -0
  646. package/dist/switch/index.jsx +2 -0
  647. package/dist/table/createTable.d.ts +3 -3
  648. package/dist/table/createTable.d.ts.map +1 -1
  649. package/dist/table/createTableCell.d.ts +3 -3
  650. package/dist/table/createTableCell.d.ts.map +1 -1
  651. package/dist/table/createTableColumnHeader.d.ts +3 -3
  652. package/dist/table/createTableColumnHeader.d.ts.map +1 -1
  653. package/dist/table/createTableColumnResize.d.ts +41 -0
  654. package/dist/table/createTableColumnResize.d.ts.map +1 -0
  655. package/dist/table/createTableHeaderRow.d.ts +3 -3
  656. package/dist/table/createTableRow.d.ts +4 -4
  657. package/dist/table/createTableRow.d.ts.map +1 -1
  658. package/dist/table/createTableRowGroup.d.ts +2 -2
  659. package/dist/table/createTableRowGroup.d.ts.map +1 -1
  660. package/dist/table/createTableSelectAllCheckbox.d.ts +3 -3
  661. package/dist/table/createTableSelectionCheckbox.d.ts +3 -3
  662. package/dist/table/index.d.ts +11 -9
  663. package/dist/table/index.d.ts.map +1 -1
  664. package/dist/table/index.js +2 -0
  665. package/dist/table/index.jsx +2 -0
  666. package/dist/table/types.d.ts +41 -7
  667. package/dist/table/types.d.ts.map +1 -1
  668. package/dist/tabs/createTabs.d.ts +32 -28
  669. package/dist/tabs/createTabs.d.ts.map +1 -1
  670. package/dist/tabs/index.d.ts +1 -1
  671. package/dist/tabs/index.js +2 -0
  672. package/dist/tabs/index.jsx +2 -0
  673. package/dist/tag/createTag.d.ts +4 -2
  674. package/dist/tag/createTag.d.ts.map +1 -1
  675. package/dist/tag/createTagGroup.d.ts +5 -5
  676. package/dist/tag/createTagGroup.d.ts.map +1 -1
  677. package/dist/tag/index.d.ts +2 -2
  678. package/dist/tag/index.d.ts.map +1 -1
  679. package/dist/tag/index.js +2 -0
  680. package/dist/tag/index.jsx +2 -0
  681. package/dist/textfield/createTextField.d.ts +17 -11
  682. package/dist/textfield/createTextField.d.ts.map +1 -1
  683. package/dist/textfield/index.d.ts +1 -1
  684. package/dist/textfield/index.d.ts.map +1 -1
  685. package/dist/textfield/index.js +2 -0
  686. package/dist/textfield/index.jsx +2 -0
  687. package/dist/toast/createToast.d.ts +2 -2
  688. package/dist/toast/createToast.d.ts.map +1 -1
  689. package/dist/toast/createToastRegion.d.ts +5 -3
  690. package/dist/toast/createToastRegion.d.ts.map +1 -1
  691. package/dist/toast/index.d.ts +2 -2
  692. package/dist/toast/index.d.ts.map +1 -1
  693. package/dist/toast/index.js +2 -0
  694. package/dist/toast/index.jsx +2 -0
  695. package/dist/toggle/createToggle.d.ts +13 -9
  696. package/dist/toggle/createToggle.d.ts.map +1 -1
  697. package/dist/toggle/createToggleState.d.ts +2 -2
  698. package/dist/toggle/createToggleState.d.ts.map +1 -1
  699. package/dist/toggle/index.d.ts +4 -4
  700. package/dist/toggle/index.d.ts.map +1 -1
  701. package/dist/toggle/index.js +3 -0
  702. package/dist/toggle/index.jsx +3 -0
  703. package/dist/toolbar/createToolbar.d.ts +9 -9
  704. package/dist/toolbar/createToolbar.d.ts.map +1 -1
  705. package/dist/toolbar/index.d.ts +1 -1
  706. package/dist/toolbar/index.d.ts.map +1 -1
  707. package/dist/toolbar/index.js +2 -0
  708. package/dist/toolbar/index.jsx +2 -0
  709. package/dist/tooltip/createTooltip.d.ts +5 -5
  710. package/dist/tooltip/createTooltip.d.ts.map +1 -1
  711. package/dist/tooltip/createTooltipTrigger.d.ts +10 -5
  712. package/dist/tooltip/createTooltipTrigger.d.ts.map +1 -1
  713. package/dist/tooltip/index.d.ts +2 -2
  714. package/dist/tooltip/index.js +2 -0
  715. package/dist/tooltip/index.jsx +2 -0
  716. package/dist/tree/createTree.d.ts +8 -4
  717. package/dist/tree/createTree.d.ts.map +1 -1
  718. package/dist/tree/createTreeItem.d.ts +4 -4
  719. package/dist/tree/createTreeItem.d.ts.map +1 -1
  720. package/dist/tree/createTreeSelectionCheckbox.d.ts +3 -3
  721. package/dist/tree/createTreeSelectionCheckbox.d.ts.map +1 -1
  722. package/dist/tree/index.d.ts +4 -4
  723. package/dist/tree/index.js +2 -0
  724. package/dist/tree/index.jsx +2 -0
  725. package/dist/tree/types.d.ts +20 -6
  726. package/dist/tree/types.d.ts.map +1 -1
  727. package/dist/utils/animation.d.ts +60 -0
  728. package/dist/utils/animation.d.ts.map +1 -0
  729. package/dist/utils/createDescription.d.ts +2 -2
  730. package/dist/utils/createDescription.d.ts.map +1 -1
  731. package/dist/utils/dom.d.ts +48 -2
  732. package/dist/utils/dom.d.ts.map +1 -1
  733. package/dist/utils/env.d.ts.map +1 -1
  734. package/dist/utils/focus.d.ts +1 -1
  735. package/dist/utils/focus.d.ts.map +1 -1
  736. package/dist/utils/geometry.d.ts.map +1 -1
  737. package/dist/utils/index.d.ts +15 -12
  738. package/dist/utils/index.d.ts.map +1 -1
  739. package/dist/utils/index.js +5 -0
  740. package/dist/utils/index.jsx +5 -0
  741. package/dist/utils/keyboard.d.ts +17 -0
  742. package/dist/utils/keyboard.d.ts.map +1 -0
  743. package/dist/utils/mergeProps.d.ts.map +1 -1
  744. package/dist/utils/reactivity.d.ts +1 -1
  745. package/dist/utils/scrollIntoView.d.ts +30 -0
  746. package/dist/utils/scrollIntoView.d.ts.map +1 -0
  747. package/dist/visually-hidden/createVisuallyHidden.d.ts +2 -2
  748. package/dist/visually-hidden/createVisuallyHidden.d.ts.map +1 -1
  749. package/dist/visually-hidden/index.d.ts +1 -1
  750. package/dist/visually-hidden/index.js +2 -0
  751. package/dist/visually-hidden/index.jsx +2 -0
  752. package/package.json +334 -33
  753. package/src/actiongroup/createActionGroup.ts +101 -91
  754. package/src/actiongroup/index.ts +1 -1
  755. package/src/autocomplete/createAutocomplete.ts +177 -148
  756. package/src/autocomplete/index.ts +1 -1
  757. package/src/breadcrumbs/createBreadcrumbs.ts +33 -42
  758. package/src/breadcrumbs/index.ts +1 -1
  759. package/src/button/createButton.ts +102 -73
  760. package/src/button/createToggleButton.ts +10 -10
  761. package/src/button/createToggleButtonGroup.ts +25 -32
  762. package/src/button/index.ts +6 -9
  763. package/src/button/types.ts +18 -12
  764. package/src/calendar/createCalendar.ts +64 -29
  765. package/src/calendar/createCalendarCell.ts +115 -46
  766. package/src/calendar/createCalendarGrid.ts +97 -41
  767. package/src/calendar/createCalendarMonthPicker.ts +105 -0
  768. package/src/calendar/createCalendarYearPicker.ts +144 -0
  769. package/src/calendar/createRangeCalendar.ts +68 -31
  770. package/src/calendar/createRangeCalendarCell.ts +92 -31
  771. package/src/calendar/index.ts +21 -8
  772. package/src/calendar/intl/index.ts +210 -0
  773. package/src/calendar/utils.ts +231 -0
  774. package/src/checkbox/createCheckbox.ts +23 -21
  775. package/src/checkbox/createCheckboxGroup.ts +68 -44
  776. package/src/checkbox/createCheckboxGroupItem.ts +26 -41
  777. package/src/checkbox/createCheckboxGroupState.ts +3 -22
  778. package/src/checkbox/index.ts +8 -10
  779. package/src/collections/index.ts +33 -29
  780. package/src/color/createColorArea.ts +232 -154
  781. package/src/color/createColorField.ts +107 -58
  782. package/src/color/createColorSlider.ts +231 -73
  783. package/src/color/createColorSwatch.ts +38 -13
  784. package/src/color/createColorWheel.ts +208 -83
  785. package/src/color/index.ts +6 -6
  786. package/src/color/types.ts +98 -16
  787. package/src/combobox/createComboBox.ts +157 -100
  788. package/src/combobox/index.ts +1 -1
  789. package/src/combobox/intl/index.ts +5 -5
  790. package/src/datepicker/createDateField.ts +192 -39
  791. package/src/datepicker/createDatePicker.ts +260 -67
  792. package/src/datepicker/createDatePickerGroup.ts +149 -0
  793. package/src/datepicker/createDateRangePicker.ts +105 -57
  794. package/src/datepicker/createDateSegment.ts +188 -96
  795. package/src/datepicker/createTimeField.ts +38 -34
  796. package/src/datepicker/createTimeSegment.ts +67 -85
  797. package/src/datepicker/index.ts +13 -14
  798. package/src/dialog/createDialog.ts +45 -38
  799. package/src/dialog/index.ts +2 -2
  800. package/src/dialog/types.ts +4 -4
  801. package/src/disclosure/createDisclosure.ts +138 -33
  802. package/src/disclosure/createDisclosureGroup.ts +8 -21
  803. package/src/disclosure/index.ts +2 -2
  804. package/src/dnd/createDrag.ts +19 -25
  805. package/src/dnd/createDraggableCollection.ts +4 -4
  806. package/src/dnd/createDraggableItem.ts +20 -19
  807. package/src/dnd/createDrop.ts +42 -51
  808. package/src/dnd/createDroppableCollection.ts +293 -173
  809. package/src/dnd/createDroppableItem.ts +34 -34
  810. package/src/dnd/index.ts +23 -12
  811. package/src/dnd/types.ts +4 -7
  812. package/src/dnd/utils.ts +58 -47
  813. package/src/focus/FocusScope.tsx +301 -176
  814. package/src/focus/createAutoFocus.ts +4 -20
  815. package/src/focus/createFocusRestore.ts +15 -28
  816. package/src/focus/createVirtualFocus.ts +20 -36
  817. package/src/focus/index.ts +4 -8
  818. package/src/form/createFormReset.ts +4 -4
  819. package/src/form/createFormValidation.ts +23 -39
  820. package/src/form/index.ts +2 -5
  821. package/src/grid/GridKeyboardDelegate.ts +30 -30
  822. package/src/grid/createGrid.ts +36 -36
  823. package/src/grid/createGridCell.ts +18 -18
  824. package/src/grid/createGridRow.ts +14 -14
  825. package/src/grid/index.ts +5 -5
  826. package/src/grid/types.ts +8 -8
  827. package/src/gridlist/createGridList.ts +172 -64
  828. package/src/gridlist/createGridListItem.ts +98 -121
  829. package/src/gridlist/createGridListSection.ts +54 -0
  830. package/src/gridlist/createGridListSelectionCheckbox.ts +12 -9
  831. package/src/gridlist/index.ts +7 -4
  832. package/src/gridlist/types.ts +58 -7
  833. package/src/i18n/createCollator.ts +5 -18
  834. package/src/i18n/createDateFormatter.ts +5 -13
  835. package/src/i18n/createFilter.ts +11 -24
  836. package/src/i18n/createNumberFormatter.ts +4 -6
  837. package/src/i18n/createStringFormatter.ts +19 -15
  838. package/src/i18n/index.ts +8 -11
  839. package/src/i18n/locale.tsx +15 -40
  840. package/src/i18n/utils.ts +35 -39
  841. package/src/index.ts +111 -172
  842. package/src/interactions/FocusableProvider.tsx +3 -7
  843. package/src/interactions/PressEvent.ts +18 -4
  844. package/src/interactions/createFocus.ts +12 -8
  845. package/src/interactions/createFocusRing.ts +21 -19
  846. package/src/interactions/createFocusWithin.ts +20 -13
  847. package/src/interactions/createFocusable.ts +15 -16
  848. package/src/interactions/createHover.ts +70 -55
  849. package/src/interactions/createInteractionModality.ts +96 -94
  850. package/src/interactions/createKeyboard.ts +12 -2
  851. package/src/interactions/createLongPress.ts +23 -23
  852. package/src/interactions/createMove.ts +72 -62
  853. package/src/interactions/createPress.ts +192 -92
  854. package/src/interactions/index.ts +24 -16
  855. package/src/label/createField.ts +18 -19
  856. package/src/label/createLabel.ts +18 -30
  857. package/src/label/createLabels.ts +8 -12
  858. package/src/label/index.ts +5 -5
  859. package/src/landmark/createLandmark.ts +30 -51
  860. package/src/landmark/index.ts +1 -1
  861. package/src/link/createLink.ts +83 -56
  862. package/src/link/index.ts +1 -1
  863. package/src/listbox/createListBox.ts +198 -66
  864. package/src/listbox/createOption.ts +112 -71
  865. package/src/listbox/index.ts +2 -6
  866. package/src/live-announcer/announce.ts +44 -71
  867. package/src/live-announcer/index.ts +1 -1
  868. package/src/menu/createMenu.ts +171 -65
  869. package/src/menu/createMenuItem.ts +315 -51
  870. package/src/menu/createMenuTrigger.ts +15 -15
  871. package/src/menu/index.ts +3 -12
  872. package/src/meter/createMeter.ts +7 -15
  873. package/src/meter/index.ts +1 -1
  874. package/src/numberfield/createNumberField.ts +205 -80
  875. package/src/numberfield/index.ts +1 -1
  876. package/src/overlays/ariaHideOutside.ts +14 -10
  877. package/src/overlays/createInteractOutside.ts +21 -18
  878. package/src/overlays/createModal.tsx +17 -17
  879. package/src/overlays/createOverlay.ts +38 -8
  880. package/src/overlays/createOverlayTrigger.ts +16 -16
  881. package/src/overlays/createPreventScroll.ts +46 -24
  882. package/src/overlays/index.ts +6 -17
  883. package/src/popover/calculatePosition.ts +134 -124
  884. package/src/popover/createOverlayPosition.ts +55 -40
  885. package/src/popover/createPopover.ts +42 -17
  886. package/src/popover/index.ts +3 -3
  887. package/src/progress/createProgressBar.ts +31 -32
  888. package/src/progress/index.ts +1 -1
  889. package/src/radio/createRadio.ts +114 -75
  890. package/src/radio/createRadioGroup.ts +83 -77
  891. package/src/radio/createRadioGroupState.ts +7 -31
  892. package/src/radio/index.ts +3 -8
  893. package/src/searchfield/createSearchField.ts +57 -29
  894. package/src/searchfield/index.ts +2 -2
  895. package/src/select/createHiddenSelect.tsx +57 -44
  896. package/src/select/createSelect.ts +146 -73
  897. package/src/select/index.ts +2 -7
  898. package/src/selection/DOMLayoutDelegate.ts +102 -0
  899. package/src/selection/ListKeyboardDelegate.ts +398 -0
  900. package/src/selection/constants.ts +16 -0
  901. package/src/selection/createCollectionRowInteraction.ts +209 -0
  902. package/src/selection/createScrollIntoViewOnFocus.ts +65 -0
  903. package/src/selection/createSelectableCollection.ts +645 -0
  904. package/src/selection/createSelectableItem.ts +498 -0
  905. package/src/selection/createSelectableList.ts +93 -0
  906. package/src/selection/createTypeSelect.ts +120 -59
  907. package/src/selection/index.ts +32 -1
  908. package/src/selection/selectItem.ts +80 -0
  909. package/src/selection/utils.ts +82 -0
  910. package/src/separator/createSeparator.ts +20 -25
  911. package/src/separator/index.ts +1 -1
  912. package/src/slider/createSlider.ts +128 -112
  913. package/src/slider/index.ts +2 -2
  914. package/src/ssr/index.tsx +38 -46
  915. package/src/steplist/createStepList.ts +106 -0
  916. package/src/steplist/index.ts +8 -0
  917. package/src/switch/createSwitch.ts +19 -14
  918. package/src/switch/index.ts +1 -1
  919. package/src/table/createTable.ts +192 -95
  920. package/src/table/createTableCell.ts +17 -16
  921. package/src/table/createTableColumnHeader.ts +67 -20
  922. package/src/table/createTableColumnResize.ts +256 -0
  923. package/src/table/createTableHeaderRow.ts +7 -7
  924. package/src/table/createTableRow.ts +206 -91
  925. package/src/table/createTableRowGroup.ts +5 -7
  926. package/src/table/createTableSelectAllCheckbox.ts +14 -14
  927. package/src/table/createTableSelectionCheckbox.ts +8 -8
  928. package/src/table/index.ts +14 -9
  929. package/src/table/types.ts +43 -7
  930. package/src/tabs/createTabs.ts +123 -111
  931. package/src/tabs/index.ts +1 -1
  932. package/src/tag/createTag.ts +57 -50
  933. package/src/tag/createTagGroup.ts +47 -41
  934. package/src/tag/index.ts +2 -6
  935. package/src/textfield/createTextField.ts +67 -35
  936. package/src/textfield/index.ts +1 -5
  937. package/src/toast/createToast.ts +29 -26
  938. package/src/toast/createToastRegion.ts +169 -26
  939. package/src/toast/index.ts +2 -6
  940. package/src/toggle/createToggle.ts +115 -53
  941. package/src/toggle/createToggleState.ts +2 -10
  942. package/src/toggle/index.ts +4 -5
  943. package/src/toolbar/createToolbar.ts +214 -230
  944. package/src/toolbar/index.ts +1 -1
  945. package/src/tooltip/createTooltip.ts +11 -24
  946. package/src/tooltip/createTooltipTrigger.ts +61 -49
  947. package/src/tooltip/index.ts +2 -2
  948. package/src/tree/createTree.ts +128 -72
  949. package/src/tree/createTreeItem.ts +120 -135
  950. package/src/tree/createTreeSelectionCheckbox.ts +11 -8
  951. package/src/tree/index.ts +4 -4
  952. package/src/tree/types.ts +20 -6
  953. package/src/utils/animation.ts +151 -0
  954. package/src/utils/createDescription.ts +6 -23
  955. package/src/utils/dom.ts +265 -68
  956. package/src/utils/env.ts +9 -11
  957. package/src/utils/events.ts +7 -7
  958. package/src/utils/filterDOMProps.ts +49 -49
  959. package/src/utils/focus.ts +60 -68
  960. package/src/utils/geometry.ts +1 -4
  961. package/src/utils/globalListeners.ts +9 -9
  962. package/src/utils/index.ts +20 -22
  963. package/src/utils/keyboard.ts +25 -0
  964. package/src/utils/mergeProps.ts +49 -15
  965. package/src/utils/platform.ts +2 -2
  966. package/src/utils/reactivity.ts +3 -3
  967. package/src/utils/scrollIntoView.ts +181 -0
  968. package/src/utils/textSelection.ts +16 -16
  969. package/src/visually-hidden/createVisuallyHidden.ts +16 -28
  970. package/src/visually-hidden/index.ts +1 -1
  971. package/dist/i18n/NumberFormatter.d.ts +0 -43
  972. package/dist/i18n/NumberFormatter.d.ts.map +0 -1
  973. package/dist/index.js.map +0 -1
  974. package/dist/index.ssr.js +0 -17082
  975. package/dist/index.ssr.js.map +0 -1
  976. package/src/i18n/NumberFormatter.ts +0 -266
@@ -0,0 +1,286 @@
1
+ import { t as createPress } from "./createPress.jsx";
2
+ import { i as access, o as mergeProps } from "./env.jsx";
3
+ import { t as filterDOMProps } from "./filterDOMProps.jsx";
4
+ import { n as createFocusable } from "./createFocusable.jsx";
5
+ import { createId } from "../ssr/index.jsx";
6
+ import { t as createLabel } from "./createLabel.jsx";
7
+ import { createEffect, createMemo, onCleanup } from "solid-js";
8
+ //#region src/tag/createTagGroup.ts
9
+ /**
10
+ * TagGroup hook for Solidaria
11
+ *
12
+ * Provides the behavior and accessibility implementation for a tag group component.
13
+ * A tag group is a focusable list of labels, categories, keywords, filters, or other items,
14
+ * with support for keyboard navigation, selection, and removal.
15
+ *
16
+ * Based on @react-aria/tag useTagGroup
17
+ */
18
+ const tagGroupData = /* @__PURE__ */ new WeakMap();
19
+ function getTagGroupData(state) {
20
+ return tagGroupData.get(state);
21
+ }
22
+ /**
23
+ * Provides the behavior and accessibility implementation for a tag group component.
24
+ * A tag group is a focusable list of labels, categories, keywords, filters, or other items,
25
+ * with support for keyboard navigation, selection, and removal.
26
+ */
27
+ function createTagGroup(props, state, _ref) {
28
+ const getProps = () => access(props);
29
+ const id = createId(getProps().id);
30
+ const descriptionId = createId();
31
+ const errorMessageId = createId();
32
+ const getFallbackAriaLabel = () => {
33
+ const p = getProps();
34
+ return !p.label && !p["aria-label"] && !p["aria-labelledby"] ? "Tag list" : void 0;
35
+ };
36
+ const sharedData = {
37
+ id,
38
+ get onRemove() {
39
+ return getProps().onRemove;
40
+ }
41
+ };
42
+ const domProps = () => filterDOMProps(getProps(), { labelable: true });
43
+ const { labelProps, fieldProps } = createLabel({
44
+ get label() {
45
+ return getProps().label;
46
+ },
47
+ get "aria-label"() {
48
+ return getProps()["aria-label"] ?? getFallbackAriaLabel();
49
+ },
50
+ get "aria-labelledby"() {
51
+ return getProps()["aria-labelledby"];
52
+ },
53
+ labelElementType: "span"
54
+ });
55
+ tagGroupData.set(state, sharedData);
56
+ createEffect(() => {
57
+ tagGroupData.set(state, sharedData);
58
+ onCleanup(() => {
59
+ if (tagGroupData.get(state) === sharedData) tagGroupData.delete(state);
60
+ });
61
+ });
62
+ const getAriaDescribedBy = () => {
63
+ const p = getProps();
64
+ const ids = [];
65
+ if (p["aria-describedby"]) ids.push(p["aria-describedby"]);
66
+ if (p.description) ids.push(descriptionId);
67
+ if (p.errorMessage) ids.push(errorMessageId);
68
+ return ids.length > 0 ? ids.join(" ") : void 0;
69
+ };
70
+ return {
71
+ get gridProps() {
72
+ const p = getProps();
73
+ const hasItems = state.collection().size > 0;
74
+ return mergeProps(domProps(), fieldProps, {
75
+ id,
76
+ role: hasItems ? "grid" : "group",
77
+ "aria-multiselectable": hasItems && state.selectionMode() === "multiple" ? true : void 0,
78
+ "aria-atomic": false,
79
+ "aria-relevant": "additions",
80
+ "aria-describedby": getAriaDescribedBy(),
81
+ "aria-disabled": p.isDisabled || void 0
82
+ });
83
+ },
84
+ get labelProps() {
85
+ return labelProps;
86
+ },
87
+ get descriptionProps() {
88
+ return { id: descriptionId };
89
+ },
90
+ get errorMessageProps() {
91
+ return { id: errorMessageId };
92
+ }
93
+ };
94
+ }
95
+ //#endregion
96
+ //#region src/tag/createTag.ts
97
+ /**
98
+ * Tag hook for Solidaria
99
+ *
100
+ * Provides the behavior and accessibility implementation for a tag component.
101
+ * Tags are individual items within a TagGroup.
102
+ *
103
+ * Based on @react-aria/tag useTag
104
+ */
105
+ /**
106
+ * Provides the behavior and accessibility implementation for a tag component.
107
+ * Tags are individual items within a TagGroup.
108
+ */
109
+ function createTag(props, state, ref) {
110
+ const getProps = () => access(props);
111
+ const rowId = createId();
112
+ const cellId = createId();
113
+ const removeButtonId = createId();
114
+ const getData = () => getTagGroupData(state);
115
+ const key = () => getProps().key;
116
+ const isDisabled = createMemo(() => {
117
+ return getProps().isDisabled || state.isDisabled(key());
118
+ });
119
+ const isSelected = createMemo(() => {
120
+ return state.isSelected(key());
121
+ });
122
+ const isSelectable = createMemo(() => state.selectionMode() !== "none");
123
+ const isFocused = createMemo(() => {
124
+ return state.focusedKey() === key();
125
+ });
126
+ const getFirstFocusableKey = () => {
127
+ const collection = state.collection();
128
+ let candidate = collection.getFirstKey();
129
+ while (candidate != null && state.isDisabled(candidate)) candidate = collection.getKeyAfter(candidate);
130
+ return candidate;
131
+ };
132
+ const getLastFocusableKey = () => {
133
+ const collection = state.collection();
134
+ let candidate = collection.getLastKey();
135
+ while (candidate != null && state.isDisabled(candidate)) candidate = collection.getKeyBefore(candidate);
136
+ return candidate;
137
+ };
138
+ const getNextFocusableKey = (fromKey) => {
139
+ const collection = state.collection();
140
+ let candidate = collection.getKeyAfter(fromKey);
141
+ while (candidate != null && state.isDisabled(candidate)) candidate = collection.getKeyAfter(candidate);
142
+ if (candidate != null) return candidate;
143
+ return getFirstFocusableKey();
144
+ };
145
+ const getPreviousFocusableKey = (fromKey) => {
146
+ const collection = state.collection();
147
+ let candidate = collection.getKeyBefore(fromKey);
148
+ while (candidate != null && state.isDisabled(candidate)) candidate = collection.getKeyBefore(candidate);
149
+ if (candidate != null) return candidate;
150
+ return getLastFocusableKey();
151
+ };
152
+ const focusKey = (nextKey) => {
153
+ if (nextKey == null) return;
154
+ state.setFocusedKey(nextKey);
155
+ const currentElement = ref();
156
+ if (!currentElement) return;
157
+ if (nextKey === key()) {
158
+ currentElement.focus();
159
+ return;
160
+ }
161
+ const tagList = currentElement.parentElement;
162
+ if (!tagList) return;
163
+ Array.from(tagList.querySelectorAll("[role=\"option\"], [role=\"row\"]")).find((el) => el.getAttribute("data-key") === String(nextKey))?.focus();
164
+ };
165
+ const { pressProps, isPressed } = createPress({
166
+ isDisabled,
167
+ onPress: () => {
168
+ if (!isDisabled()) {
169
+ state.setFocusedKey(key());
170
+ state.toggleSelection(key());
171
+ }
172
+ }
173
+ });
174
+ const { focusableProps } = createFocusable({
175
+ isDisabled,
176
+ onFocus: () => {
177
+ state.setFocusedKey(key());
178
+ }
179
+ }, ref);
180
+ const handleKeyDown = (e) => {
181
+ if (isDisabled()) return;
182
+ switch (e.key) {
183
+ case "ArrowRight":
184
+ case "ArrowDown":
185
+ e.preventDefault();
186
+ focusKey(getNextFocusableKey(key()));
187
+ return;
188
+ case "ArrowLeft":
189
+ case "ArrowUp":
190
+ e.preventDefault();
191
+ focusKey(getPreviousFocusableKey(key()));
192
+ return;
193
+ case "Home":
194
+ e.preventDefault();
195
+ focusKey(getFirstFocusableKey());
196
+ return;
197
+ case "End":
198
+ e.preventDefault();
199
+ focusKey(getLastFocusableKey());
200
+ return;
201
+ default: break;
202
+ }
203
+ if (e.key === "Delete" || e.key === "Backspace") {
204
+ e.preventDefault();
205
+ const data = getData();
206
+ if (data?.onRemove) if (isSelected()) {
207
+ const selection = state.selectedKeys();
208
+ const keysToRemove = selection === "all" ? new Set(Array.from(state.collection()).map((item) => item.key)) : new Set(selection);
209
+ data.onRemove(keysToRemove);
210
+ } else data.onRemove(new Set([key()]));
211
+ }
212
+ };
213
+ const tabIndex = createMemo(() => {
214
+ if (isDisabled()) return -1;
215
+ if (isFocused()) return 0;
216
+ if (state.focusedKey() !== null) return -1;
217
+ const collection = state.collection();
218
+ let defaultTabStop = null;
219
+ if (state.selectionMode() !== "none") {
220
+ for (const item of collection) if (!state.isDisabled(item.key) && state.isSelected(item.key)) {
221
+ defaultTabStop = item.key;
222
+ break;
223
+ }
224
+ }
225
+ if (defaultTabStop == null) defaultTabStop = getFirstFocusableKey();
226
+ if (key() === defaultTabStop) return 0;
227
+ return -1;
228
+ });
229
+ const domProps = () => filterDOMProps(getProps());
230
+ const allowsRemoving = createMemo(() => {
231
+ return !!getData()?.onRemove;
232
+ });
233
+ const rootRole = createMemo(() => getProps().role ?? "option");
234
+ return {
235
+ get rowProps() {
236
+ return mergeProps(domProps(), focusableProps, pressProps, {
237
+ id: rowId,
238
+ role: rootRole(),
239
+ tabIndex: tabIndex(),
240
+ "data-key": String(key()),
241
+ "aria-label": getProps().textValue,
242
+ "aria-selected": isSelectable() ? isSelected() : void 0,
243
+ "aria-disabled": isDisabled() || void 0,
244
+ onKeyDown: handleKeyDown
245
+ });
246
+ },
247
+ get gridCellProps() {
248
+ return {
249
+ id: cellId,
250
+ role: "gridcell",
251
+ "aria-describedby": allowsRemoving() ? removeButtonId : void 0
252
+ };
253
+ },
254
+ get removeButtonProps() {
255
+ const data = getData();
256
+ return {
257
+ id: removeButtonId,
258
+ "aria-label": "Remove",
259
+ "aria-labelledby": `${removeButtonId} ${rowId}`,
260
+ isDisabled: isDisabled(),
261
+ onPress: () => {
262
+ if (data?.onRemove && !isDisabled()) data.onRemove(new Set([key()]));
263
+ }
264
+ };
265
+ },
266
+ get allowsRemoving() {
267
+ return allowsRemoving();
268
+ },
269
+ get isSelected() {
270
+ return isSelected();
271
+ },
272
+ get isDisabled() {
273
+ return isDisabled();
274
+ },
275
+ get isFocused() {
276
+ return isFocused();
277
+ },
278
+ get isPressed() {
279
+ return isPressed();
280
+ }
281
+ };
282
+ }
283
+ //#endregion
284
+ export { createTagGroup as n, getTagGroupData as r, createTag as t };
285
+
286
+ //# sourceMappingURL=tag.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tag.jsx","names":[],"sources":["../../src/tag/createTagGroup.ts","../../src/tag/createTag.ts"],"sourcesContent":["/**\n * TagGroup hook for Solidaria\n *\n * Provides the behavior and accessibility implementation for a tag group component.\n * A tag group is a focusable list of labels, categories, keywords, filters, or other items,\n * with support for keyboard navigation, selection, and removal.\n *\n * Based on @react-aria/tag useTagGroup\n */\n\nimport { createEffect, onCleanup } from \"solid-js\";\nimport { createLabel } from \"../label/createLabel\";\nimport { filterDOMProps } from \"../utils/filterDOMProps\";\nimport { mergeProps } from \"../utils/mergeProps\";\nimport { createId } from \"../ssr\";\nimport { access, type MaybeAccessor } from \"../utils/reactivity\";\nimport type { ListState, Key } from \"@proyecto-viviana/solid-stately\";\n\nexport interface AriaTagGroupProps {\n /** An ID for the tag group. */\n id?: string;\n /** Whether the tag group is disabled. */\n isDisabled?: boolean;\n /** The label for the tag group. */\n label?: string;\n /** An accessible label for the tag group when no visible label is provided. */\n \"aria-label\"?: string;\n /** The ID of an element that labels the tag group. */\n \"aria-labelledby\"?: string;\n /** The ID of an element that describes the tag group. */\n \"aria-describedby\"?: string;\n /** A description of the tag group. */\n description?: string;\n /** An error message for the tag group. */\n errorMessage?: string;\n /** Handler that is called when a user removes a tag. */\n onRemove?: (keys: Set<Key>) => void;\n}\n\nexport interface TagGroupAria {\n /** Props for the tag group container element. */\n gridProps: Record<string, unknown>;\n /** Props for the tag group's visible label (if any). */\n labelProps: Record<string, unknown>;\n /** Props for the tag group description element, if any. */\n descriptionProps: Record<string, unknown>;\n /** Props for the tag group error message element, if any. */\n errorMessageProps: Record<string, unknown>;\n}\n\n// Shared data between tag group and tags\nconst tagGroupData = new WeakMap<object, TagGroupData>();\n\ninterface TagGroupData {\n id: string;\n onRemove?: (keys: Set<Key>) => void;\n}\n\nexport function getTagGroupData(state: ListState): TagGroupData | undefined {\n return tagGroupData.get(state);\n}\n\n/**\n * Provides the behavior and accessibility implementation for a tag group component.\n * A tag group is a focusable list of labels, categories, keywords, filters, or other items,\n * with support for keyboard navigation, selection, and removal.\n */\nexport function createTagGroup<T>(\n props: MaybeAccessor<AriaTagGroupProps>,\n state: ListState<T>,\n _ref?: () => HTMLElement | null,\n): TagGroupAria {\n const getProps = () => access(props);\n const id = createId(getProps().id);\n const descriptionId = createId();\n const errorMessageId = createId();\n const getFallbackAriaLabel = () => {\n const p = getProps();\n return !p.label && !p[\"aria-label\"] && !p[\"aria-labelledby\"] ? \"Tag list\" : undefined;\n };\n const sharedData: TagGroupData = {\n id,\n get onRemove() {\n return getProps().onRemove;\n },\n };\n\n // Filter DOM props\n const domProps = () =>\n filterDOMProps(getProps() as unknown as Record<string, unknown>, { labelable: true });\n\n // Create label handling\n const { labelProps, fieldProps } = createLabel({\n get label() {\n return getProps().label;\n },\n get \"aria-label\"() {\n return getProps()[\"aria-label\"] ?? getFallbackAriaLabel();\n },\n get \"aria-labelledby\"() {\n return getProps()[\"aria-labelledby\"];\n },\n labelElementType: \"span\",\n });\n\n // Share data with child tags before they create their aria state.\n tagGroupData.set(state, sharedData);\n\n // Clean up the shared state when the tag group owner is disposed.\n createEffect(() => {\n tagGroupData.set(state, sharedData);\n\n onCleanup(() => {\n if (tagGroupData.get(state) === sharedData) {\n tagGroupData.delete(state);\n }\n });\n });\n\n // Build aria-describedby\n const getAriaDescribedBy = () => {\n const p = getProps();\n const ids: string[] = [];\n if (p[\"aria-describedby\"]) {\n ids.push(p[\"aria-describedby\"]);\n }\n if (p.description) {\n ids.push(descriptionId);\n }\n if (p.errorMessage) {\n ids.push(errorMessageId);\n }\n return ids.length > 0 ? ids.join(\" \") : undefined;\n };\n\n return {\n get gridProps() {\n const p = getProps();\n const hasItems = state.collection().size > 0;\n\n return mergeProps(domProps(), fieldProps as Record<string, unknown>, {\n id,\n role: hasItems ? \"grid\" : \"group\",\n \"aria-multiselectable\": hasItems && state.selectionMode() === \"multiple\" ? true : undefined,\n \"aria-atomic\": false,\n \"aria-relevant\": \"additions\",\n \"aria-describedby\": getAriaDescribedBy(),\n \"aria-disabled\": p.isDisabled || undefined,\n });\n },\n get labelProps() {\n return labelProps as Record<string, unknown>;\n },\n get descriptionProps() {\n return {\n id: descriptionId,\n };\n },\n get errorMessageProps() {\n return {\n id: errorMessageId,\n };\n },\n };\n}\n","/**\n * Tag hook for Solidaria\n *\n * Provides the behavior and accessibility implementation for a tag component.\n * Tags are individual items within a TagGroup.\n *\n * Based on @react-aria/tag useTag\n */\n\nimport { createMemo } from \"solid-js\";\nimport { createFocusable } from \"../interactions/createFocusable\";\nimport { createPress } from \"../interactions/createPress\";\nimport { filterDOMProps } from \"../utils/filterDOMProps\";\nimport { mergeProps } from \"../utils/mergeProps\";\nimport { createId } from \"../ssr\";\nimport { access, type MaybeAccessor } from \"../utils/reactivity\";\nimport { getTagGroupData } from \"./createTagGroup\";\nimport type { ListState, Key } from \"@proyecto-viviana/solid-stately\";\n\nexport interface AriaTagProps {\n /** The unique key for this tag. */\n key: Key;\n /** The role for the tag root. Components use row semantics inside a grid. */\n role?: \"option\" | \"row\";\n /** Whether the tag is disabled. */\n isDisabled?: boolean;\n /** A text value for the tag used for accessibility. */\n textValue?: string;\n}\n\nexport interface TagAria {\n /** Props for the tag row element. */\n rowProps: Record<string, unknown>;\n /** Props for the tag cell element. */\n gridCellProps: Record<string, unknown>;\n /** Props for the tag remove button. */\n removeButtonProps: Record<string, unknown>;\n /** Whether the tag can be removed. */\n allowsRemoving: boolean;\n /** Whether the tag is selected. */\n isSelected: boolean;\n /** Whether the tag is disabled. */\n isDisabled: boolean;\n /** Whether the tag is focused. */\n isFocused: boolean;\n /** Whether the tag is pressed. */\n isPressed: boolean;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a tag component.\n * Tags are individual items within a TagGroup.\n */\nexport function createTag<T>(\n props: MaybeAccessor<AriaTagProps>,\n state: ListState<T>,\n ref: () => HTMLElement | null,\n): TagAria {\n const getProps = () => access(props);\n const rowId = createId();\n const cellId = createId();\n const removeButtonId = createId();\n\n // Get shared data from tag group\n const getData = () => getTagGroupData(state);\n\n // Get key\n const key = () => getProps().key;\n\n // Compute states\n const isDisabled = createMemo(() => {\n const p = getProps();\n return p.isDisabled || state.isDisabled(key());\n });\n\n const isSelected = createMemo(() => {\n return state.isSelected(key());\n });\n\n const isSelectable = createMemo(() => state.selectionMode() !== \"none\");\n\n const isFocused = createMemo(() => {\n return state.focusedKey() === key();\n });\n\n const getFirstFocusableKey = (): Key | null => {\n const collection = state.collection();\n let candidate = collection.getFirstKey();\n while (candidate != null && state.isDisabled(candidate)) {\n candidate = collection.getKeyAfter(candidate);\n }\n return candidate;\n };\n\n const getLastFocusableKey = (): Key | null => {\n const collection = state.collection();\n let candidate = collection.getLastKey();\n while (candidate != null && state.isDisabled(candidate)) {\n candidate = collection.getKeyBefore(candidate);\n }\n return candidate;\n };\n\n const getNextFocusableKey = (fromKey: Key): Key | null => {\n const collection = state.collection();\n let candidate = collection.getKeyAfter(fromKey);\n while (candidate != null && state.isDisabled(candidate)) {\n candidate = collection.getKeyAfter(candidate);\n }\n\n if (candidate != null) {\n return candidate;\n }\n\n return getFirstFocusableKey();\n };\n\n const getPreviousFocusableKey = (fromKey: Key): Key | null => {\n const collection = state.collection();\n let candidate = collection.getKeyBefore(fromKey);\n while (candidate != null && state.isDisabled(candidate)) {\n candidate = collection.getKeyBefore(candidate);\n }\n\n if (candidate != null) {\n return candidate;\n }\n\n return getLastFocusableKey();\n };\n\n const focusKey = (nextKey: Key | null) => {\n if (nextKey == null) {\n return;\n }\n\n state.setFocusedKey(nextKey);\n const currentElement = ref();\n\n if (!currentElement) {\n return;\n }\n\n if (nextKey === key()) {\n currentElement.focus();\n return;\n }\n\n const tagList = currentElement.parentElement;\n if (!tagList) {\n return;\n }\n\n const nextTag = Array.from(\n tagList.querySelectorAll<HTMLElement>('[role=\"option\"], [role=\"row\"]'),\n ).find((el) => el.getAttribute(\"data-key\") === String(nextKey));\n\n nextTag?.focus();\n };\n\n // Handle press for selection\n const { pressProps, isPressed } = createPress({\n isDisabled,\n onPress: () => {\n if (!isDisabled()) {\n state.setFocusedKey(key());\n state.toggleSelection(key());\n }\n },\n });\n\n // Handle focusable\n const { focusableProps } = createFocusable(\n {\n isDisabled,\n onFocus: () => {\n state.setFocusedKey(key());\n },\n },\n ref,\n );\n\n // Handle keyboard for navigation and removal\n const handleKeyDown = (e: KeyboardEvent) => {\n if (isDisabled()) return;\n\n switch (e.key) {\n case \"ArrowRight\":\n case \"ArrowDown\":\n e.preventDefault();\n focusKey(getNextFocusableKey(key()));\n return;\n case \"ArrowLeft\":\n case \"ArrowUp\":\n e.preventDefault();\n focusKey(getPreviousFocusableKey(key()));\n return;\n case \"Home\":\n e.preventDefault();\n focusKey(getFirstFocusableKey());\n return;\n case \"End\":\n e.preventDefault();\n focusKey(getLastFocusableKey());\n return;\n default:\n break;\n }\n\n if (e.key === \"Delete\" || e.key === \"Backspace\") {\n e.preventDefault();\n const data = getData();\n if (data?.onRemove) {\n // Remove selected keys if this tag is selected, otherwise just this tag\n if (isSelected()) {\n const selection = state.selectedKeys();\n const keysToRemove =\n selection === \"all\"\n ? new Set(Array.from(state.collection()).map((item) => (item as { key: Key }).key))\n : new Set(selection);\n data.onRemove(keysToRemove);\n } else {\n data.onRemove(new Set([key()]));\n }\n }\n }\n };\n\n // Compute tabIndex\n const tabIndex = createMemo(() => {\n if (isDisabled()) return -1;\n\n if (isFocused()) {\n return 0;\n }\n\n if (state.focusedKey() !== null) {\n return -1;\n }\n\n const collection = state.collection();\n let defaultTabStop: Key | null = null;\n\n if (state.selectionMode() !== \"none\") {\n for (const item of collection) {\n if (!state.isDisabled(item.key) && state.isSelected(item.key)) {\n defaultTabStop = item.key;\n break;\n }\n }\n }\n\n if (defaultTabStop == null) {\n defaultTabStop = getFirstFocusableKey();\n }\n\n if (key() === defaultTabStop) {\n return 0;\n }\n\n return -1;\n });\n\n // Filter DOM props\n const domProps = () => filterDOMProps(getProps() as unknown as Record<string, unknown>);\n\n // Check if removal is allowed\n const allowsRemoving = createMemo(() => {\n const data = getData();\n return !!data?.onRemove;\n });\n\n const rootRole = createMemo(() => getProps().role ?? \"option\");\n\n return {\n get rowProps() {\n return mergeProps(\n domProps(),\n focusableProps as Record<string, unknown>,\n pressProps as Record<string, unknown>,\n {\n id: rowId,\n role: rootRole(),\n tabIndex: tabIndex(),\n \"data-key\": String(key()),\n \"aria-label\": getProps().textValue,\n \"aria-selected\": isSelectable() ? isSelected() : undefined,\n \"aria-disabled\": isDisabled() || undefined,\n onKeyDown: handleKeyDown,\n },\n );\n },\n get gridCellProps() {\n return {\n id: cellId,\n role: \"gridcell\",\n \"aria-describedby\": allowsRemoving() ? removeButtonId : undefined,\n };\n },\n get removeButtonProps() {\n const data = getData();\n return {\n id: removeButtonId,\n \"aria-label\": \"Remove\",\n \"aria-labelledby\": `${removeButtonId} ${rowId}`,\n isDisabled: isDisabled(),\n onPress: () => {\n if (data?.onRemove && !isDisabled()) {\n data.onRemove(new Set([key()]));\n }\n },\n };\n },\n get allowsRemoving() {\n return allowsRemoving();\n },\n get isSelected() {\n return isSelected();\n },\n get isDisabled() {\n return isDisabled();\n },\n get isFocused() {\n return isFocused();\n },\n get isPressed() {\n return isPressed();\n },\n };\n}\n"],"mappings":"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"}
@@ -0,0 +1,109 @@
1
+ import { i as access, o as mergeProps } from "./env.js";
2
+ import { t as filterDOMProps } from "./filterDOMProps.js";
3
+ import { n as createFocusable } from "./createFocusable.js";
4
+ import { t as createField } from "./createField.js";
5
+ //#region src/textfield/createTextField.ts
6
+ /**
7
+ * Provides the behavior and accessibility implementation for a text field.
8
+ * Text fields allow users to input text with a keyboard.
9
+ *
10
+ * @param props - Props for the text field.
11
+ * @param ref - Optional ref callback for the input element.
12
+ */
13
+ function createTextField(props, ref) {
14
+ const getProps = () => access(props);
15
+ let lastInputValue;
16
+ const eventWithCurrentTarget = (event, element) => new Proxy(event, { get(target, property, receiver) {
17
+ if (property === "target" || property === "currentTarget") return element;
18
+ const value = Reflect.get(target, property, receiver);
19
+ return typeof value === "function" ? value.bind(target) : value;
20
+ } });
21
+ const { labelProps, fieldProps, descriptionProps, errorMessageProps } = createField(props);
22
+ const { focusableProps } = createFocusable({
23
+ get isDisabled() {
24
+ return getProps().isDisabled;
25
+ },
26
+ get autoFocus() {
27
+ return getProps().autoFocus;
28
+ },
29
+ get excludeFromTabOrder() {
30
+ return getProps().excludeFromTabOrder;
31
+ },
32
+ onFocus: getProps().onFocus,
33
+ onBlur: getProps().onBlur,
34
+ onFocusChange: getProps().onFocusChange,
35
+ onKeyDown: getProps().onKeyDown,
36
+ onKeyUp: getProps().onKeyUp
37
+ }, ref);
38
+ const getDomProps = () => filterDOMProps(getProps(), { labelable: true });
39
+ const getInputProps = () => {
40
+ const p = getProps();
41
+ const isInvalid = p.isInvalid ?? false;
42
+ const isTextarea = p.inputElementType === "textarea";
43
+ const validationBehavior = p.validationBehavior ?? "native";
44
+ return mergeProps(getDomProps(), {
45
+ disabled: p.isDisabled,
46
+ readOnly: p.isReadOnly,
47
+ required: validationBehavior === "native" && p.isRequired,
48
+ "aria-required": validationBehavior === "aria" && p.isRequired || void 0,
49
+ "aria-invalid": isInvalid || void 0,
50
+ value: p.value ?? p.defaultValue ?? "",
51
+ onChange: (e) => {
52
+ const target = e.target;
53
+ if (target.value !== lastInputValue) p.onChange?.(target.value);
54
+ },
55
+ type: isTextarea ? void 0 : p.type ?? "text",
56
+ inputMode: p.inputMode,
57
+ enterKeyHint: p.enterKeyHint,
58
+ name: p.name,
59
+ form: p.form,
60
+ pattern: isTextarea ? void 0 : p.pattern,
61
+ maxLength: p.maxLength,
62
+ minLength: p.minLength,
63
+ placeholder: p.placeholder,
64
+ autoComplete: p.autoComplete,
65
+ autoCorrect: p.autoCorrect,
66
+ autoCapitalize: p.autoCapitalize,
67
+ spellCheck: p.spellCheck,
68
+ onCopy: p.onCopy,
69
+ onCut: p.onCut,
70
+ onPaste: p.onPaste,
71
+ onCompositionStart: p.onCompositionStart,
72
+ onCompositionEnd: p.onCompositionEnd,
73
+ onCompositionUpdate: p.onCompositionUpdate,
74
+ onSelect: p.onSelect,
75
+ onBeforeInput: p.onBeforeInput,
76
+ onInput: (e) => {
77
+ const target = e.target;
78
+ const nextValue = target.value;
79
+ p.onInput?.(eventWithCurrentTarget(e, target));
80
+ lastInputValue = nextValue;
81
+ p.onChange?.(nextValue);
82
+ }
83
+ }, focusableProps, fieldProps);
84
+ };
85
+ const getIsInvalid = () => {
86
+ return getProps().isInvalid ?? false;
87
+ };
88
+ return {
89
+ get labelProps() {
90
+ return labelProps;
91
+ },
92
+ get inputProps() {
93
+ return getInputProps();
94
+ },
95
+ get descriptionProps() {
96
+ return descriptionProps;
97
+ },
98
+ get errorMessageProps() {
99
+ return errorMessageProps;
100
+ },
101
+ get isInvalid() {
102
+ return getIsInvalid();
103
+ }
104
+ };
105
+ }
106
+ //#endregion
107
+ export { createTextField as t };
108
+
109
+ //# sourceMappingURL=textfield.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textfield.js","names":[],"sources":["../../src/textfield/createTextField.ts"],"sourcesContent":["/**\n * TextField hook for Solidaria\n *\n * Provides the behavior and accessibility implementation for a text field.\n *\n * This is a 1:1 port of @react-aria/textfield's useTextField hook.\n */\n\nimport { JSX } from \"solid-js\";\nimport { createField, type AriaFieldProps, type FieldAria } from \"../label\";\nimport { createFocusable, type FocusableDOMProps, type FocusableProps } from \"../interactions\";\nimport { mergeProps, filterDOMProps } from \"../utils\";\nimport { type MaybeAccessor, access } from \"../utils/reactivity\";\n\nexport interface AriaTextFieldProps extends AriaFieldProps, FocusableProps, FocusableDOMProps {\n /** The current value (controlled). */\n value?: string;\n /** The default value (uncontrolled). */\n defaultValue?: string;\n /** Handler that is called when the value changes. */\n onChange?: (value: string) => void;\n /** Whether the input is disabled. */\n isDisabled?: boolean;\n /** Whether the input is read only. */\n isReadOnly?: boolean;\n /** Whether the input is required. */\n isRequired?: boolean;\n /** Whether to use native HTML form validation or ARIA validation semantics. */\n validationBehavior?: \"aria\" | \"native\";\n /** The type of input to render. */\n type?: \"text\" | \"search\" | \"url\" | \"tel\" | \"email\" | \"password\" | string;\n /** The input mode hint for virtual keyboards. */\n inputMode?: \"none\" | \"text\" | \"tel\" | \"url\" | \"email\" | \"numeric\" | \"decimal\" | \"search\";\n /** Hint for the enter key action on virtual keyboards. */\n enterKeyHint?: \"enter\" | \"done\" | \"go\" | \"next\" | \"previous\" | \"search\" | \"send\";\n /** The name of the input element, used when submitting an HTML form. */\n name?: string;\n /** Associates the input with a form element by id. */\n form?: string;\n /** Regex pattern to validate the input value. */\n pattern?: string;\n /** The maximum number of characters supported by the input. */\n maxLength?: number;\n /** The minimum number of characters required by the input. */\n minLength?: number;\n /** Placeholder text for the input. */\n placeholder?: string;\n /** Whether to enable auto complete. */\n autoComplete?: string;\n /** Whether to enable auto correct. */\n autoCorrect?: string;\n /** Whether to enable spell check. */\n spellCheck?: \"true\" | \"false\";\n /** Controls whether and how text input is automatically capitalized. */\n autoCapitalize?: \"off\" | \"none\" | \"on\" | \"sentences\" | \"words\" | \"characters\";\n /** The element type to use for the input. Defaults to 'input'. */\n inputElementType?: \"input\" | \"textarea\";\n\n // Clipboard events\n onCopy?: JSX.EventHandler<HTMLInputElement | HTMLTextAreaElement, ClipboardEvent>;\n onCut?: JSX.EventHandler<HTMLInputElement | HTMLTextAreaElement, ClipboardEvent>;\n onPaste?: JSX.EventHandler<HTMLInputElement | HTMLTextAreaElement, ClipboardEvent>;\n\n // Composition events\n onCompositionStart?: JSX.EventHandler<HTMLInputElement | HTMLTextAreaElement, CompositionEvent>;\n onCompositionEnd?: JSX.EventHandler<HTMLInputElement | HTMLTextAreaElement, CompositionEvent>;\n onCompositionUpdate?: JSX.EventHandler<HTMLInputElement | HTMLTextAreaElement, CompositionEvent>;\n\n // Selection events\n onSelect?: JSX.EventHandler<HTMLInputElement | HTMLTextAreaElement, Event>;\n\n // Input events\n onBeforeInput?: JSX.EventHandler<HTMLInputElement | HTMLTextAreaElement, InputEvent>;\n onInput?: JSX.EventHandler<HTMLInputElement | HTMLTextAreaElement, InputEvent>;\n}\n\nexport interface TextFieldAria<\n T extends HTMLInputElement | HTMLTextAreaElement = HTMLInputElement,\n> extends Omit<FieldAria, \"fieldProps\"> {\n /** Props for the input element. */\n inputProps: JSX.InputHTMLAttributes<T>;\n /** Whether the text field is invalid. */\n isInvalid: boolean;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a text field.\n * Text fields allow users to input text with a keyboard.\n *\n * @param props - Props for the text field.\n * @param ref - Optional ref callback for the input element.\n */\nexport function createTextField<\n T extends HTMLInputElement | HTMLTextAreaElement = HTMLInputElement,\n>(props: MaybeAccessor<AriaTextFieldProps>, ref?: (el: T) => void): TextFieldAria<T> {\n const getProps = () => access(props);\n let lastInputValue: string | undefined;\n\n const eventWithCurrentTarget = (\n event: InputEvent,\n element: HTMLInputElement | HTMLTextAreaElement,\n ) =>\n new Proxy(event, {\n get(target, property, receiver) {\n if (property === \"target\" || property === \"currentTarget\") {\n return element;\n }\n\n const value = Reflect.get(target, property, receiver);\n return typeof value === \"function\" ? value.bind(target) : value;\n },\n });\n\n // Get field accessibility props (label, description, error message)\n const { labelProps, fieldProps, descriptionProps, errorMessageProps } = createField(props);\n\n // Get focusable props\n const { focusableProps } = createFocusable(\n {\n get isDisabled() {\n return getProps().isDisabled;\n },\n get autoFocus() {\n return getProps().autoFocus;\n },\n get excludeFromTabOrder() {\n return getProps().excludeFromTabOrder;\n },\n onFocus: getProps().onFocus,\n onBlur: getProps().onBlur,\n onFocusChange: getProps().onFocusChange,\n onKeyDown: getProps().onKeyDown,\n onKeyUp: getProps().onKeyUp,\n },\n ref as ((el: HTMLElement) => void) | undefined,\n );\n\n // Filter DOM props\n const getDomProps = () =>\n filterDOMProps(getProps() as Record<string, unknown>, { labelable: true });\n\n // Build input props\n const getInputProps = (): JSX.InputHTMLAttributes<T> => {\n const p = getProps();\n const isInvalid = p.isInvalid ?? false;\n const isTextarea = p.inputElementType === \"textarea\";\n const validationBehavior = p.validationBehavior ?? \"native\";\n\n return mergeProps(\n getDomProps(),\n {\n disabled: p.isDisabled,\n readOnly: p.isReadOnly,\n required: validationBehavior === \"native\" && p.isRequired,\n \"aria-required\": (validationBehavior === \"aria\" && p.isRequired) || undefined,\n \"aria-invalid\": isInvalid || undefined,\n value: p.value ?? p.defaultValue ?? \"\",\n onChange: (e: Event) => {\n const target = e.target as HTMLInputElement | HTMLTextAreaElement;\n if (target.value !== lastInputValue) {\n p.onChange?.(target.value);\n }\n },\n // Don't include type and pattern for textarea elements\n type: isTextarea ? undefined : (p.type ?? \"text\"),\n inputMode: p.inputMode,\n enterKeyHint: p.enterKeyHint,\n name: p.name,\n form: p.form,\n pattern: isTextarea ? undefined : p.pattern,\n maxLength: p.maxLength,\n minLength: p.minLength,\n placeholder: p.placeholder,\n autoComplete: p.autoComplete,\n autoCorrect: p.autoCorrect,\n autoCapitalize: p.autoCapitalize,\n spellCheck: p.spellCheck,\n\n // Clipboard events\n onCopy: p.onCopy,\n onCut: p.onCut,\n onPaste: p.onPaste,\n\n // Composition events\n onCompositionStart: p.onCompositionStart,\n onCompositionEnd: p.onCompositionEnd,\n onCompositionUpdate: p.onCompositionUpdate,\n\n // Selection events\n onSelect: p.onSelect,\n\n // Input events\n onBeforeInput: p.onBeforeInput,\n onInput: (e: InputEvent) => {\n const target = e.target as HTMLInputElement | HTMLTextAreaElement;\n const nextValue = target.value;\n p.onInput?.(\n eventWithCurrentTarget(e, target) as Parameters<NonNullable<typeof p.onInput>>[0],\n );\n lastInputValue = nextValue;\n p.onChange?.(nextValue);\n },\n },\n focusableProps as Record<string, unknown>,\n fieldProps as Record<string, unknown>,\n ) as JSX.InputHTMLAttributes<T>;\n };\n\n const getIsInvalid = () => {\n return getProps().isInvalid ?? false;\n };\n\n return {\n get labelProps() {\n return labelProps;\n },\n get inputProps() {\n return getInputProps();\n },\n get descriptionProps() {\n return descriptionProps;\n },\n get errorMessageProps() {\n return errorMessageProps;\n },\n get isInvalid() {\n return getIsInvalid();\n },\n };\n}\n"],"mappings":";;;;;;;;;;;;AA4FA,SAAgB,gBAEd,OAA0C,KAAyC;CACnF,MAAM,iBAAiB,OAAO,KAAK;CACnC,IAAI;CAEJ,MAAM,0BACJ,OACA,YAEA,IAAI,MAAM,OAAO,EACf,IAAI,QAAQ,UAAU,UAAU;EAC9B,IAAI,aAAa,YAAY,aAAa,iBACxC,OAAO;EAGT,MAAM,QAAQ,QAAQ,IAAI,QAAQ,UAAU,QAAQ;EACpD,OAAO,OAAO,UAAU,aAAa,MAAM,KAAK,MAAM,IAAI;CAC5D,EACF,CAAC;CAGH,MAAM,EAAE,YAAY,YAAY,kBAAkB,sBAAsB,YAAY,KAAK;CAGzF,MAAM,EAAE,mBAAmB,gBACzB;EACE,IAAI,aAAa;GACf,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,IAAI,YAAY;GACd,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,IAAI,sBAAsB;GACxB,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,SAAS,SAAS,CAAC,CAAC;EACpB,QAAQ,SAAS,CAAC,CAAC;EACnB,eAAe,SAAS,CAAC,CAAC;EAC1B,WAAW,SAAS,CAAC,CAAC;EACtB,SAAS,SAAS,CAAC,CAAC;CACtB,GACA,GACF;CAGA,MAAM,oBACJ,eAAe,SAAS,GAA8B,EAAE,WAAW,KAAK,CAAC;CAG3E,MAAM,sBAAkD;EACtD,MAAM,IAAI,SAAS;EACnB,MAAM,YAAY,EAAE,aAAa;EACjC,MAAM,aAAa,EAAE,qBAAqB;EAC1C,MAAM,qBAAqB,EAAE,sBAAsB;EAEnD,OAAO,WACL,YAAY,GACZ;GACE,UAAU,EAAE;GACZ,UAAU,EAAE;GACZ,UAAU,uBAAuB,YAAY,EAAE;GAC/C,iBAAkB,uBAAuB,UAAU,EAAE,cAAe,KAAA;GACpE,gBAAgB,aAAa,KAAA;GAC7B,OAAO,EAAE,SAAS,EAAE,gBAAgB;GACpC,WAAW,MAAa;IACtB,MAAM,SAAS,EAAE;IACjB,IAAI,OAAO,UAAU,gBACnB,EAAE,WAAW,OAAO,KAAK;GAE7B;GAEA,MAAM,aAAa,KAAA,IAAa,EAAE,QAAQ;GAC1C,WAAW,EAAE;GACb,cAAc,EAAE;GAChB,MAAM,EAAE;GACR,MAAM,EAAE;GACR,SAAS,aAAa,KAAA,IAAY,EAAE;GACpC,WAAW,EAAE;GACb,WAAW,EAAE;GACb,aAAa,EAAE;GACf,cAAc,EAAE;GAChB,aAAa,EAAE;GACf,gBAAgB,EAAE;GAClB,YAAY,EAAE;GAGd,QAAQ,EAAE;GACV,OAAO,EAAE;GACT,SAAS,EAAE;GAGX,oBAAoB,EAAE;GACtB,kBAAkB,EAAE;GACpB,qBAAqB,EAAE;GAGvB,UAAU,EAAE;GAGZ,eAAe,EAAE;GACjB,UAAU,MAAkB;IAC1B,MAAM,SAAS,EAAE;IACjB,MAAM,YAAY,OAAO;IACzB,EAAE,UACA,uBAAuB,GAAG,MAAM,CAClC;IACA,iBAAiB;IACjB,EAAE,WAAW,SAAS;GACxB;EACF,GACA,gBACA,UACF;CACF;CAEA,MAAM,qBAAqB;EACzB,OAAO,SAAS,CAAC,CAAC,aAAa;CACjC;CAEA,OAAO;EACL,IAAI,aAAa;GACf,OAAO;EACT;EACA,IAAI,aAAa;GACf,OAAO,cAAc;EACvB;EACA,IAAI,mBAAmB;GACrB,OAAO;EACT;EACA,IAAI,oBAAoB;GACtB,OAAO;EACT;EACA,IAAI,YAAY;GACd,OAAO,aAAa;EACtB;CACF;AACF"}
@@ -0,0 +1,109 @@
1
+ import { i as access, o as mergeProps } from "./env.jsx";
2
+ import { t as filterDOMProps } from "./filterDOMProps.jsx";
3
+ import { n as createFocusable } from "./createFocusable.jsx";
4
+ import { t as createField } from "./createField.jsx";
5
+ //#region src/textfield/createTextField.ts
6
+ /**
7
+ * Provides the behavior and accessibility implementation for a text field.
8
+ * Text fields allow users to input text with a keyboard.
9
+ *
10
+ * @param props - Props for the text field.
11
+ * @param ref - Optional ref callback for the input element.
12
+ */
13
+ function createTextField(props, ref) {
14
+ const getProps = () => access(props);
15
+ let lastInputValue;
16
+ const eventWithCurrentTarget = (event, element) => new Proxy(event, { get(target, property, receiver) {
17
+ if (property === "target" || property === "currentTarget") return element;
18
+ const value = Reflect.get(target, property, receiver);
19
+ return typeof value === "function" ? value.bind(target) : value;
20
+ } });
21
+ const { labelProps, fieldProps, descriptionProps, errorMessageProps } = createField(props);
22
+ const { focusableProps } = createFocusable({
23
+ get isDisabled() {
24
+ return getProps().isDisabled;
25
+ },
26
+ get autoFocus() {
27
+ return getProps().autoFocus;
28
+ },
29
+ get excludeFromTabOrder() {
30
+ return getProps().excludeFromTabOrder;
31
+ },
32
+ onFocus: getProps().onFocus,
33
+ onBlur: getProps().onBlur,
34
+ onFocusChange: getProps().onFocusChange,
35
+ onKeyDown: getProps().onKeyDown,
36
+ onKeyUp: getProps().onKeyUp
37
+ }, ref);
38
+ const getDomProps = () => filterDOMProps(getProps(), { labelable: true });
39
+ const getInputProps = () => {
40
+ const p = getProps();
41
+ const isInvalid = p.isInvalid ?? false;
42
+ const isTextarea = p.inputElementType === "textarea";
43
+ const validationBehavior = p.validationBehavior ?? "native";
44
+ return mergeProps(getDomProps(), {
45
+ disabled: p.isDisabled,
46
+ readOnly: p.isReadOnly,
47
+ required: validationBehavior === "native" && p.isRequired,
48
+ "aria-required": validationBehavior === "aria" && p.isRequired || void 0,
49
+ "aria-invalid": isInvalid || void 0,
50
+ value: p.value ?? p.defaultValue ?? "",
51
+ onChange: (e) => {
52
+ const target = e.target;
53
+ if (target.value !== lastInputValue) p.onChange?.(target.value);
54
+ },
55
+ type: isTextarea ? void 0 : p.type ?? "text",
56
+ inputMode: p.inputMode,
57
+ enterKeyHint: p.enterKeyHint,
58
+ name: p.name,
59
+ form: p.form,
60
+ pattern: isTextarea ? void 0 : p.pattern,
61
+ maxLength: p.maxLength,
62
+ minLength: p.minLength,
63
+ placeholder: p.placeholder,
64
+ autoComplete: p.autoComplete,
65
+ autoCorrect: p.autoCorrect,
66
+ autoCapitalize: p.autoCapitalize,
67
+ spellCheck: p.spellCheck,
68
+ onCopy: p.onCopy,
69
+ onCut: p.onCut,
70
+ onPaste: p.onPaste,
71
+ onCompositionStart: p.onCompositionStart,
72
+ onCompositionEnd: p.onCompositionEnd,
73
+ onCompositionUpdate: p.onCompositionUpdate,
74
+ onSelect: p.onSelect,
75
+ onBeforeInput: p.onBeforeInput,
76
+ onInput: (e) => {
77
+ const target = e.target;
78
+ const nextValue = target.value;
79
+ p.onInput?.(eventWithCurrentTarget(e, target));
80
+ lastInputValue = nextValue;
81
+ p.onChange?.(nextValue);
82
+ }
83
+ }, focusableProps, fieldProps);
84
+ };
85
+ const getIsInvalid = () => {
86
+ return getProps().isInvalid ?? false;
87
+ };
88
+ return {
89
+ get labelProps() {
90
+ return labelProps;
91
+ },
92
+ get inputProps() {
93
+ return getInputProps();
94
+ },
95
+ get descriptionProps() {
96
+ return descriptionProps;
97
+ },
98
+ get errorMessageProps() {
99
+ return errorMessageProps;
100
+ },
101
+ get isInvalid() {
102
+ return getIsInvalid();
103
+ }
104
+ };
105
+ }
106
+ //#endregion
107
+ export { createTextField as t };
108
+
109
+ //# sourceMappingURL=textfield.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textfield.jsx","names":[],"sources":["../../src/textfield/createTextField.ts"],"sourcesContent":["/**\n * TextField hook for Solidaria\n *\n * Provides the behavior and accessibility implementation for a text field.\n *\n * This is a 1:1 port of @react-aria/textfield's useTextField hook.\n */\n\nimport { JSX } from \"solid-js\";\nimport { createField, type AriaFieldProps, type FieldAria } from \"../label\";\nimport { createFocusable, type FocusableDOMProps, type FocusableProps } from \"../interactions\";\nimport { mergeProps, filterDOMProps } from \"../utils\";\nimport { type MaybeAccessor, access } from \"../utils/reactivity\";\n\nexport interface AriaTextFieldProps extends AriaFieldProps, FocusableProps, FocusableDOMProps {\n /** The current value (controlled). */\n value?: string;\n /** The default value (uncontrolled). */\n defaultValue?: string;\n /** Handler that is called when the value changes. */\n onChange?: (value: string) => void;\n /** Whether the input is disabled. */\n isDisabled?: boolean;\n /** Whether the input is read only. */\n isReadOnly?: boolean;\n /** Whether the input is required. */\n isRequired?: boolean;\n /** Whether to use native HTML form validation or ARIA validation semantics. */\n validationBehavior?: \"aria\" | \"native\";\n /** The type of input to render. */\n type?: \"text\" | \"search\" | \"url\" | \"tel\" | \"email\" | \"password\" | string;\n /** The input mode hint for virtual keyboards. */\n inputMode?: \"none\" | \"text\" | \"tel\" | \"url\" | \"email\" | \"numeric\" | \"decimal\" | \"search\";\n /** Hint for the enter key action on virtual keyboards. */\n enterKeyHint?: \"enter\" | \"done\" | \"go\" | \"next\" | \"previous\" | \"search\" | \"send\";\n /** The name of the input element, used when submitting an HTML form. */\n name?: string;\n /** Associates the input with a form element by id. */\n form?: string;\n /** Regex pattern to validate the input value. */\n pattern?: string;\n /** The maximum number of characters supported by the input. */\n maxLength?: number;\n /** The minimum number of characters required by the input. */\n minLength?: number;\n /** Placeholder text for the input. */\n placeholder?: string;\n /** Whether to enable auto complete. */\n autoComplete?: string;\n /** Whether to enable auto correct. */\n autoCorrect?: string;\n /** Whether to enable spell check. */\n spellCheck?: \"true\" | \"false\";\n /** Controls whether and how text input is automatically capitalized. */\n autoCapitalize?: \"off\" | \"none\" | \"on\" | \"sentences\" | \"words\" | \"characters\";\n /** The element type to use for the input. Defaults to 'input'. */\n inputElementType?: \"input\" | \"textarea\";\n\n // Clipboard events\n onCopy?: JSX.EventHandler<HTMLInputElement | HTMLTextAreaElement, ClipboardEvent>;\n onCut?: JSX.EventHandler<HTMLInputElement | HTMLTextAreaElement, ClipboardEvent>;\n onPaste?: JSX.EventHandler<HTMLInputElement | HTMLTextAreaElement, ClipboardEvent>;\n\n // Composition events\n onCompositionStart?: JSX.EventHandler<HTMLInputElement | HTMLTextAreaElement, CompositionEvent>;\n onCompositionEnd?: JSX.EventHandler<HTMLInputElement | HTMLTextAreaElement, CompositionEvent>;\n onCompositionUpdate?: JSX.EventHandler<HTMLInputElement | HTMLTextAreaElement, CompositionEvent>;\n\n // Selection events\n onSelect?: JSX.EventHandler<HTMLInputElement | HTMLTextAreaElement, Event>;\n\n // Input events\n onBeforeInput?: JSX.EventHandler<HTMLInputElement | HTMLTextAreaElement, InputEvent>;\n onInput?: JSX.EventHandler<HTMLInputElement | HTMLTextAreaElement, InputEvent>;\n}\n\nexport interface TextFieldAria<\n T extends HTMLInputElement | HTMLTextAreaElement = HTMLInputElement,\n> extends Omit<FieldAria, \"fieldProps\"> {\n /** Props for the input element. */\n inputProps: JSX.InputHTMLAttributes<T>;\n /** Whether the text field is invalid. */\n isInvalid: boolean;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a text field.\n * Text fields allow users to input text with a keyboard.\n *\n * @param props - Props for the text field.\n * @param ref - Optional ref callback for the input element.\n */\nexport function createTextField<\n T extends HTMLInputElement | HTMLTextAreaElement = HTMLInputElement,\n>(props: MaybeAccessor<AriaTextFieldProps>, ref?: (el: T) => void): TextFieldAria<T> {\n const getProps = () => access(props);\n let lastInputValue: string | undefined;\n\n const eventWithCurrentTarget = (\n event: InputEvent,\n element: HTMLInputElement | HTMLTextAreaElement,\n ) =>\n new Proxy(event, {\n get(target, property, receiver) {\n if (property === \"target\" || property === \"currentTarget\") {\n return element;\n }\n\n const value = Reflect.get(target, property, receiver);\n return typeof value === \"function\" ? value.bind(target) : value;\n },\n });\n\n // Get field accessibility props (label, description, error message)\n const { labelProps, fieldProps, descriptionProps, errorMessageProps } = createField(props);\n\n // Get focusable props\n const { focusableProps } = createFocusable(\n {\n get isDisabled() {\n return getProps().isDisabled;\n },\n get autoFocus() {\n return getProps().autoFocus;\n },\n get excludeFromTabOrder() {\n return getProps().excludeFromTabOrder;\n },\n onFocus: getProps().onFocus,\n onBlur: getProps().onBlur,\n onFocusChange: getProps().onFocusChange,\n onKeyDown: getProps().onKeyDown,\n onKeyUp: getProps().onKeyUp,\n },\n ref as ((el: HTMLElement) => void) | undefined,\n );\n\n // Filter DOM props\n const getDomProps = () =>\n filterDOMProps(getProps() as Record<string, unknown>, { labelable: true });\n\n // Build input props\n const getInputProps = (): JSX.InputHTMLAttributes<T> => {\n const p = getProps();\n const isInvalid = p.isInvalid ?? false;\n const isTextarea = p.inputElementType === \"textarea\";\n const validationBehavior = p.validationBehavior ?? \"native\";\n\n return mergeProps(\n getDomProps(),\n {\n disabled: p.isDisabled,\n readOnly: p.isReadOnly,\n required: validationBehavior === \"native\" && p.isRequired,\n \"aria-required\": (validationBehavior === \"aria\" && p.isRequired) || undefined,\n \"aria-invalid\": isInvalid || undefined,\n value: p.value ?? p.defaultValue ?? \"\",\n onChange: (e: Event) => {\n const target = e.target as HTMLInputElement | HTMLTextAreaElement;\n if (target.value !== lastInputValue) {\n p.onChange?.(target.value);\n }\n },\n // Don't include type and pattern for textarea elements\n type: isTextarea ? undefined : (p.type ?? \"text\"),\n inputMode: p.inputMode,\n enterKeyHint: p.enterKeyHint,\n name: p.name,\n form: p.form,\n pattern: isTextarea ? undefined : p.pattern,\n maxLength: p.maxLength,\n minLength: p.minLength,\n placeholder: p.placeholder,\n autoComplete: p.autoComplete,\n autoCorrect: p.autoCorrect,\n autoCapitalize: p.autoCapitalize,\n spellCheck: p.spellCheck,\n\n // Clipboard events\n onCopy: p.onCopy,\n onCut: p.onCut,\n onPaste: p.onPaste,\n\n // Composition events\n onCompositionStart: p.onCompositionStart,\n onCompositionEnd: p.onCompositionEnd,\n onCompositionUpdate: p.onCompositionUpdate,\n\n // Selection events\n onSelect: p.onSelect,\n\n // Input events\n onBeforeInput: p.onBeforeInput,\n onInput: (e: InputEvent) => {\n const target = e.target as HTMLInputElement | HTMLTextAreaElement;\n const nextValue = target.value;\n p.onInput?.(\n eventWithCurrentTarget(e, target) as Parameters<NonNullable<typeof p.onInput>>[0],\n );\n lastInputValue = nextValue;\n p.onChange?.(nextValue);\n },\n },\n focusableProps as Record<string, unknown>,\n fieldProps as Record<string, unknown>,\n ) as JSX.InputHTMLAttributes<T>;\n };\n\n const getIsInvalid = () => {\n return getProps().isInvalid ?? false;\n };\n\n return {\n get labelProps() {\n return labelProps;\n },\n get inputProps() {\n return getInputProps();\n },\n get descriptionProps() {\n return descriptionProps;\n },\n get errorMessageProps() {\n return errorMessageProps;\n },\n get isInvalid() {\n return getIsInvalid();\n },\n };\n}\n"],"mappings":";;;;;;;;;;;;AA4FA,SAAgB,gBAEd,OAA0C,KAAyC;CACnF,MAAM,iBAAiB,OAAO,KAAK;CACnC,IAAI;CAEJ,MAAM,0BACJ,OACA,YAEA,IAAI,MAAM,OAAO,EACf,IAAI,QAAQ,UAAU,UAAU;EAC9B,IAAI,aAAa,YAAY,aAAa,iBACxC,OAAO;EAGT,MAAM,QAAQ,QAAQ,IAAI,QAAQ,UAAU,QAAQ;EACpD,OAAO,OAAO,UAAU,aAAa,MAAM,KAAK,MAAM,IAAI;CAC5D,EACF,CAAC;CAGH,MAAM,EAAE,YAAY,YAAY,kBAAkB,sBAAsB,YAAY,KAAK;CAGzF,MAAM,EAAE,mBAAmB,gBACzB;EACE,IAAI,aAAa;GACf,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,IAAI,YAAY;GACd,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,IAAI,sBAAsB;GACxB,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,SAAS,SAAS,CAAC,CAAC;EACpB,QAAQ,SAAS,CAAC,CAAC;EACnB,eAAe,SAAS,CAAC,CAAC;EAC1B,WAAW,SAAS,CAAC,CAAC;EACtB,SAAS,SAAS,CAAC,CAAC;CACtB,GACA,GACF;CAGA,MAAM,oBACJ,eAAe,SAAS,GAA8B,EAAE,WAAW,KAAK,CAAC;CAG3E,MAAM,sBAAkD;EACtD,MAAM,IAAI,SAAS;EACnB,MAAM,YAAY,EAAE,aAAa;EACjC,MAAM,aAAa,EAAE,qBAAqB;EAC1C,MAAM,qBAAqB,EAAE,sBAAsB;EAEnD,OAAO,WACL,YAAY,GACZ;GACE,UAAU,EAAE;GACZ,UAAU,EAAE;GACZ,UAAU,uBAAuB,YAAY,EAAE;GAC/C,iBAAkB,uBAAuB,UAAU,EAAE,cAAe,KAAA;GACpE,gBAAgB,aAAa,KAAA;GAC7B,OAAO,EAAE,SAAS,EAAE,gBAAgB;GACpC,WAAW,MAAa;IACtB,MAAM,SAAS,EAAE;IACjB,IAAI,OAAO,UAAU,gBACnB,EAAE,WAAW,OAAO,KAAK;GAE7B;GAEA,MAAM,aAAa,KAAA,IAAa,EAAE,QAAQ;GAC1C,WAAW,EAAE;GACb,cAAc,EAAE;GAChB,MAAM,EAAE;GACR,MAAM,EAAE;GACR,SAAS,aAAa,KAAA,IAAY,EAAE;GACpC,WAAW,EAAE;GACb,WAAW,EAAE;GACb,aAAa,EAAE;GACf,cAAc,EAAE;GAChB,aAAa,EAAE;GACf,gBAAgB,EAAE;GAClB,YAAY,EAAE;GAGd,QAAQ,EAAE;GACV,OAAO,EAAE;GACT,SAAS,EAAE;GAGX,oBAAoB,EAAE;GACtB,kBAAkB,EAAE;GACpB,qBAAqB,EAAE;GAGvB,UAAU,EAAE;GAGZ,eAAe,EAAE;GACjB,UAAU,MAAkB;IAC1B,MAAM,SAAS,EAAE;IACjB,MAAM,YAAY,OAAO;IACzB,EAAE,UACA,uBAAuB,GAAG,MAAM,CAClC;IACA,iBAAiB;IACjB,EAAE,WAAW,SAAS;GACxB;EACF,GACA,gBACA,UACF;CACF;CAEA,MAAM,qBAAqB;EACzB,OAAO,SAAS,CAAC,CAAC,aAAa;CACjC;CAEA,OAAO;EACL,IAAI,aAAa;GACf,OAAO;EACT;EACA,IAAI,aAAa;GACf,OAAO,cAAc;EACvB;EACA,IAAI,mBAAmB;GACrB,OAAO;EACT;EACA,IAAI,oBAAoB;GACtB,OAAO;EACT;EACA,IAAI,YAAY;GACd,OAAO,aAAa;EACtB;CACF;AACF"}