@proyecto-viviana/solidaria 0.3.0 → 0.4.1

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 (743) hide show
  1. package/dist/_chunk/DragManager.js +627 -0
  2. package/dist/_chunk/DragManager.js.map +1 -0
  3. package/dist/_chunk/DragManager.jsx +627 -0
  4. package/dist/_chunk/DragManager.jsx.map +1 -0
  5. package/dist/_chunk/FocusScope.js +400 -0
  6. package/dist/_chunk/FocusScope.js.map +1 -0
  7. package/dist/_chunk/FocusScope.jsx +375 -0
  8. package/dist/_chunk/FocusScope.jsx.map +1 -0
  9. package/dist/_chunk/actiongroup.js +141 -0
  10. package/dist/_chunk/actiongroup.js.map +1 -0
  11. package/dist/_chunk/actiongroup.jsx +141 -0
  12. package/dist/_chunk/actiongroup.jsx.map +1 -0
  13. package/dist/_chunk/announce.js +207 -0
  14. package/dist/_chunk/announce.js.map +1 -0
  15. package/dist/_chunk/announce.jsx +207 -0
  16. package/dist/_chunk/announce.jsx.map +1 -0
  17. package/dist/_chunk/ariaHideOutside.js +122 -0
  18. package/dist/_chunk/ariaHideOutside.js.map +1 -0
  19. package/dist/_chunk/ariaHideOutside.jsx +122 -0
  20. package/dist/_chunk/ariaHideOutside.jsx.map +1 -0
  21. package/dist/_chunk/autocomplete.js +244 -0
  22. package/dist/_chunk/autocomplete.js.map +1 -0
  23. package/dist/_chunk/autocomplete.jsx +244 -0
  24. package/dist/_chunk/autocomplete.jsx.map +1 -0
  25. package/dist/_chunk/breadcrumbs.js +121 -0
  26. package/dist/_chunk/breadcrumbs.js.map +1 -0
  27. package/dist/_chunk/breadcrumbs.jsx +121 -0
  28. package/dist/_chunk/breadcrumbs.jsx.map +1 -0
  29. package/dist/_chunk/button.js +275 -0
  30. package/dist/_chunk/button.js.map +1 -0
  31. package/dist/_chunk/button.jsx +275 -0
  32. package/dist/_chunk/button.jsx.map +1 -0
  33. package/dist/_chunk/calendar.js +1037 -0
  34. package/dist/_chunk/calendar.js.map +1 -0
  35. package/dist/_chunk/calendar.jsx +1037 -0
  36. package/dist/_chunk/calendar.jsx.map +1 -0
  37. package/dist/_chunk/checkbox.js +235 -0
  38. package/dist/_chunk/checkbox.js.map +1 -0
  39. package/dist/_chunk/checkbox.jsx +235 -0
  40. package/dist/_chunk/checkbox.jsx.map +1 -0
  41. package/dist/_chunk/color.js +1458 -0
  42. package/dist/_chunk/color.js.map +1 -0
  43. package/dist/_chunk/color.jsx +1458 -0
  44. package/dist/_chunk/color.jsx.map +1 -0
  45. package/dist/_chunk/combobox.js +1062 -0
  46. package/dist/_chunk/combobox.js.map +1 -0
  47. package/dist/_chunk/combobox.jsx +1062 -0
  48. package/dist/_chunk/combobox.jsx.map +1 -0
  49. package/dist/_chunk/constants.js +19 -0
  50. package/dist/_chunk/constants.js.map +1 -0
  51. package/dist/_chunk/constants.jsx +19 -0
  52. package/dist/_chunk/constants.jsx.map +1 -0
  53. package/dist/_chunk/createCollator.js +61 -0
  54. package/dist/_chunk/createCollator.js.map +1 -0
  55. package/dist/_chunk/createCollator.jsx +61 -0
  56. package/dist/_chunk/createCollator.jsx.map +1 -0
  57. package/dist/_chunk/createCollectionRowInteraction.js +133 -0
  58. package/dist/_chunk/createCollectionRowInteraction.js.map +1 -0
  59. package/dist/_chunk/createCollectionRowInteraction.jsx +133 -0
  60. package/dist/_chunk/createCollectionRowInteraction.jsx.map +1 -0
  61. package/dist/_chunk/createField.js +55 -0
  62. package/dist/_chunk/createField.js.map +1 -0
  63. package/dist/_chunk/createField.jsx +55 -0
  64. package/dist/_chunk/createField.jsx.map +1 -0
  65. package/dist/_chunk/createFocus.js +105 -0
  66. package/dist/_chunk/createFocus.js.map +1 -0
  67. package/dist/_chunk/createFocus.jsx +105 -0
  68. package/dist/_chunk/createFocus.jsx.map +1 -0
  69. package/dist/_chunk/createFocusRing.js +54 -0
  70. package/dist/_chunk/createFocusRing.js.map +1 -0
  71. package/dist/_chunk/createFocusRing.jsx +54 -0
  72. package/dist/_chunk/createFocusRing.jsx.map +1 -0
  73. package/dist/_chunk/createFocusWithin.js +120 -0
  74. package/dist/_chunk/createFocusWithin.js.map +1 -0
  75. package/dist/_chunk/createFocusWithin.jsx +120 -0
  76. package/dist/_chunk/createFocusWithin.jsx.map +1 -0
  77. package/dist/_chunk/createFocusable.js +131 -0
  78. package/dist/_chunk/createFocusable.js.map +1 -0
  79. package/dist/_chunk/createFocusable.jsx +131 -0
  80. package/dist/_chunk/createFocusable.jsx.map +1 -0
  81. package/dist/_chunk/createFormReset.js +39 -0
  82. package/dist/_chunk/createFormReset.js.map +1 -0
  83. package/dist/_chunk/createFormReset.jsx +39 -0
  84. package/dist/_chunk/createFormReset.jsx.map +1 -0
  85. package/dist/_chunk/createFormValidation.js +135 -0
  86. package/dist/_chunk/createFormValidation.js.map +1 -0
  87. package/dist/_chunk/createFormValidation.jsx +135 -0
  88. package/dist/_chunk/createFormValidation.jsx.map +1 -0
  89. package/dist/_chunk/createHover.js +131 -0
  90. package/dist/_chunk/createHover.js.map +1 -0
  91. package/dist/_chunk/createHover.jsx +131 -0
  92. package/dist/_chunk/createHover.jsx.map +1 -0
  93. package/dist/_chunk/createInteractionModality.js +268 -0
  94. package/dist/_chunk/createInteractionModality.js.map +1 -0
  95. package/dist/_chunk/createInteractionModality.jsx +268 -0
  96. package/dist/_chunk/createInteractionModality.jsx.map +1 -0
  97. package/dist/_chunk/createLabel.js +47 -0
  98. package/dist/_chunk/createLabel.js.map +1 -0
  99. package/dist/_chunk/createLabel.jsx +47 -0
  100. package/dist/_chunk/createLabel.jsx.map +1 -0
  101. package/dist/_chunk/createLabels.js +32 -0
  102. package/dist/_chunk/createLabels.js.map +1 -0
  103. package/dist/_chunk/createLabels.jsx +32 -0
  104. package/dist/_chunk/createLabels.jsx.map +1 -0
  105. package/dist/_chunk/createLandmark.js +198 -0
  106. package/dist/_chunk/createLandmark.js.map +1 -0
  107. package/dist/_chunk/createLandmark.jsx +198 -0
  108. package/dist/_chunk/createLandmark.jsx.map +1 -0
  109. package/dist/_chunk/createOverlay.js +327 -0
  110. package/dist/_chunk/createOverlay.js.map +1 -0
  111. package/dist/_chunk/createOverlay.jsx +327 -0
  112. package/dist/_chunk/createOverlay.jsx.map +1 -0
  113. package/dist/_chunk/createPress.js +526 -0
  114. package/dist/_chunk/createPress.js.map +1 -0
  115. package/dist/_chunk/createPress.jsx +526 -0
  116. package/dist/_chunk/createPress.jsx.map +1 -0
  117. package/dist/_chunk/createProgressBar.js +82 -0
  118. package/dist/_chunk/createProgressBar.js.map +1 -0
  119. package/dist/_chunk/createProgressBar.jsx +82 -0
  120. package/dist/_chunk/createProgressBar.jsx.map +1 -0
  121. package/dist/_chunk/createSelectableItem.js +302 -0
  122. package/dist/_chunk/createSelectableItem.js.map +1 -0
  123. package/dist/_chunk/createSelectableItem.jsx +302 -0
  124. package/dist/_chunk/createSelectableItem.jsx.map +1 -0
  125. package/dist/_chunk/createStringFormatter.js +61 -0
  126. package/dist/_chunk/createStringFormatter.js.map +1 -0
  127. package/dist/_chunk/createStringFormatter.jsx +61 -0
  128. package/dist/_chunk/createStringFormatter.jsx.map +1 -0
  129. package/dist/_chunk/createToggle.js +159 -0
  130. package/dist/_chunk/createToggle.js.map +1 -0
  131. package/dist/_chunk/createToggle.jsx +159 -0
  132. package/dist/_chunk/createToggle.jsx.map +1 -0
  133. package/dist/_chunk/createTypeSelect.js +125 -0
  134. package/dist/_chunk/createTypeSelect.js.map +1 -0
  135. package/dist/_chunk/createTypeSelect.jsx +125 -0
  136. package/dist/_chunk/createTypeSelect.jsx.map +1 -0
  137. package/dist/_chunk/datepicker.js +1706 -0
  138. package/dist/_chunk/datepicker.js.map +1 -0
  139. package/dist/_chunk/datepicker.jsx +1706 -0
  140. package/dist/_chunk/datepicker.jsx.map +1 -0
  141. package/dist/_chunk/dialog.js +62 -0
  142. package/dist/_chunk/dialog.js.map +1 -0
  143. package/dist/_chunk/dialog.jsx +62 -0
  144. package/dist/_chunk/dialog.jsx.map +1 -0
  145. package/dist/_chunk/disclosure.js +185 -0
  146. package/dist/_chunk/disclosure.js.map +1 -0
  147. package/dist/_chunk/disclosure.jsx +185 -0
  148. package/dist/_chunk/disclosure.jsx.map +1 -0
  149. package/dist/_chunk/dnd.js +2395 -0
  150. package/dist/_chunk/dnd.js.map +1 -0
  151. package/dist/_chunk/dnd.jsx +2395 -0
  152. package/dist/_chunk/dnd.jsx.map +1 -0
  153. package/dist/_chunk/env.js +87 -0
  154. package/dist/_chunk/env.js.map +1 -0
  155. package/dist/_chunk/env.jsx +87 -0
  156. package/dist/_chunk/env.jsx.map +1 -0
  157. package/dist/_chunk/filterDOMProps.js +82 -0
  158. package/dist/_chunk/filterDOMProps.js.map +1 -0
  159. package/dist/_chunk/filterDOMProps.jsx +82 -0
  160. package/dist/_chunk/filterDOMProps.jsx.map +1 -0
  161. package/dist/_chunk/focus.js +399 -0
  162. package/dist/_chunk/focus.js.map +1 -0
  163. package/dist/_chunk/focus.jsx +399 -0
  164. package/dist/_chunk/focus.jsx.map +1 -0
  165. package/dist/_chunk/focus2.js +631 -0
  166. package/dist/_chunk/focus2.js.map +1 -0
  167. package/dist/_chunk/focus2.jsx +631 -0
  168. package/dist/_chunk/focus2.jsx.map +1 -0
  169. package/dist/_chunk/grid.js +623 -0
  170. package/dist/_chunk/grid.js.map +1 -0
  171. package/dist/_chunk/grid.jsx +623 -0
  172. package/dist/_chunk/grid.jsx.map +1 -0
  173. package/dist/_chunk/gridlist.js +369 -0
  174. package/dist/_chunk/gridlist.js.map +1 -0
  175. package/dist/_chunk/gridlist.jsx +369 -0
  176. package/dist/_chunk/gridlist.jsx.map +1 -0
  177. package/dist/_chunk/i18n.js +199 -0
  178. package/dist/_chunk/i18n.js.map +1 -0
  179. package/dist/_chunk/i18n.jsx +199 -0
  180. package/dist/_chunk/i18n.jsx.map +1 -0
  181. package/dist/_chunk/interactions.js +331 -0
  182. package/dist/_chunk/interactions.js.map +1 -0
  183. package/dist/_chunk/interactions.jsx +325 -0
  184. package/dist/_chunk/interactions.jsx.map +1 -0
  185. package/dist/_chunk/link.js +97 -0
  186. package/dist/_chunk/link.js.map +1 -0
  187. package/dist/_chunk/link.jsx +97 -0
  188. package/dist/_chunk/link.jsx.map +1 -0
  189. package/dist/_chunk/listbox.js +356 -0
  190. package/dist/_chunk/listbox.js.map +1 -0
  191. package/dist/_chunk/listbox.jsx +356 -0
  192. package/dist/_chunk/listbox.jsx.map +1 -0
  193. package/dist/_chunk/locale.js +173 -0
  194. package/dist/_chunk/locale.js.map +1 -0
  195. package/dist/_chunk/locale.jsx +167 -0
  196. package/dist/_chunk/locale.jsx.map +1 -0
  197. package/dist/_chunk/menu.js +519 -0
  198. package/dist/_chunk/menu.js.map +1 -0
  199. package/dist/_chunk/menu.jsx +519 -0
  200. package/dist/_chunk/menu.jsx.map +1 -0
  201. package/dist/_chunk/meter.js +33 -0
  202. package/dist/_chunk/meter.js.map +1 -0
  203. package/dist/_chunk/meter.jsx +33 -0
  204. package/dist/_chunk/meter.jsx.map +1 -0
  205. package/dist/_chunk/numberfield.js +259 -0
  206. package/dist/_chunk/numberfield.js.map +1 -0
  207. package/dist/_chunk/numberfield.jsx +259 -0
  208. package/dist/_chunk/numberfield.jsx.map +1 -0
  209. package/dist/_chunk/overlays.js +186 -0
  210. package/dist/_chunk/overlays.js.map +1 -0
  211. package/dist/_chunk/overlays.jsx +162 -0
  212. package/dist/_chunk/overlays.jsx.map +1 -0
  213. package/dist/_chunk/popover.js +574 -0
  214. package/dist/_chunk/popover.js.map +1 -0
  215. package/dist/_chunk/popover.jsx +574 -0
  216. package/dist/_chunk/popover.jsx.map +1 -0
  217. package/dist/_chunk/radio.js +320 -0
  218. package/dist/_chunk/radio.js.map +1 -0
  219. package/dist/_chunk/radio.jsx +320 -0
  220. package/dist/_chunk/radio.jsx.map +1 -0
  221. package/dist/_chunk/reactivity.js +21 -0
  222. package/dist/_chunk/reactivity.js.map +1 -0
  223. package/dist/_chunk/reactivity.jsx +21 -0
  224. package/dist/_chunk/reactivity.jsx.map +1 -0
  225. package/dist/_chunk/searchfield.js +210 -0
  226. package/dist/_chunk/searchfield.js.map +1 -0
  227. package/dist/_chunk/searchfield.jsx +210 -0
  228. package/dist/_chunk/searchfield.jsx.map +1 -0
  229. package/dist/_chunk/select.js +406 -0
  230. package/dist/_chunk/select.js.map +1 -0
  231. package/dist/_chunk/select.jsx +397 -0
  232. package/dist/_chunk/select.jsx.map +1 -0
  233. package/dist/_chunk/selection.js +666 -0
  234. package/dist/_chunk/selection.js.map +1 -0
  235. package/dist/_chunk/selection.jsx +666 -0
  236. package/dist/_chunk/selection.jsx.map +1 -0
  237. package/dist/_chunk/separator.js +29 -0
  238. package/dist/_chunk/separator.js.map +1 -0
  239. package/dist/_chunk/separator.jsx +29 -0
  240. package/dist/_chunk/separator.jsx.map +1 -0
  241. package/dist/_chunk/slider.js +256 -0
  242. package/dist/_chunk/slider.js.map +1 -0
  243. package/dist/_chunk/slider.jsx +256 -0
  244. package/dist/_chunk/slider.jsx.map +1 -0
  245. package/dist/_chunk/spinbutton.js +153 -0
  246. package/dist/_chunk/spinbutton.js.map +1 -0
  247. package/dist/_chunk/spinbutton.jsx +153 -0
  248. package/dist/_chunk/spinbutton.jsx.map +1 -0
  249. package/dist/_chunk/steplist.js +66 -0
  250. package/dist/_chunk/steplist.js.map +1 -0
  251. package/dist/_chunk/steplist.jsx +66 -0
  252. package/dist/_chunk/steplist.jsx.map +1 -0
  253. package/dist/_chunk/switch.js +34 -0
  254. package/dist/_chunk/switch.js.map +1 -0
  255. package/dist/_chunk/switch.jsx +34 -0
  256. package/dist/_chunk/switch.jsx.map +1 -0
  257. package/dist/_chunk/table.js +1088 -0
  258. package/dist/_chunk/table.js.map +1 -0
  259. package/dist/_chunk/table.jsx +1088 -0
  260. package/dist/_chunk/table.jsx.map +1 -0
  261. package/dist/_chunk/tabs.js +263 -0
  262. package/dist/_chunk/tabs.js.map +1 -0
  263. package/dist/_chunk/tabs.jsx +263 -0
  264. package/dist/_chunk/tabs.jsx.map +1 -0
  265. package/dist/_chunk/tag.js +322 -0
  266. package/dist/_chunk/tag.js.map +1 -0
  267. package/dist/_chunk/tag.jsx +322 -0
  268. package/dist/_chunk/tag.jsx.map +1 -0
  269. package/dist/_chunk/textfield.js +110 -0
  270. package/dist/_chunk/textfield.js.map +1 -0
  271. package/dist/_chunk/textfield.jsx +110 -0
  272. package/dist/_chunk/textfield.jsx.map +1 -0
  273. package/dist/_chunk/toast.js +250 -0
  274. package/dist/_chunk/toast.js.map +1 -0
  275. package/dist/_chunk/toast.jsx +250 -0
  276. package/dist/_chunk/toast.jsx.map +1 -0
  277. package/dist/_chunk/toolbar.js +226 -0
  278. package/dist/_chunk/toolbar.js.map +1 -0
  279. package/dist/_chunk/toolbar.jsx +226 -0
  280. package/dist/_chunk/toolbar.jsx.map +1 -0
  281. package/dist/_chunk/tooltip.js +185 -0
  282. package/dist/_chunk/tooltip.js.map +1 -0
  283. package/dist/_chunk/tooltip.jsx +185 -0
  284. package/dist/_chunk/tooltip.jsx.map +1 -0
  285. package/dist/_chunk/tree.js +452 -0
  286. package/dist/_chunk/tree.js.map +1 -0
  287. package/dist/_chunk/tree.jsx +452 -0
  288. package/dist/_chunk/tree.jsx.map +1 -0
  289. package/dist/_chunk/utils.js +705 -0
  290. package/dist/_chunk/utils.js.map +1 -0
  291. package/dist/_chunk/utils.jsx +705 -0
  292. package/dist/_chunk/utils.jsx.map +1 -0
  293. package/dist/_chunk/visually-hidden.js +93 -0
  294. package/dist/_chunk/visually-hidden.js.map +1 -0
  295. package/dist/_chunk/visually-hidden.jsx +93 -0
  296. package/dist/_chunk/visually-hidden.jsx.map +1 -0
  297. package/dist/actiongroup/createActionGroup.d.ts.map +1 -1
  298. package/dist/actiongroup/index.js +2 -0
  299. package/dist/actiongroup/index.jsx +2 -0
  300. package/dist/autocomplete/createAutocomplete.d.ts +12 -7
  301. package/dist/autocomplete/createAutocomplete.d.ts.map +1 -1
  302. package/dist/autocomplete/index.js +2 -0
  303. package/dist/autocomplete/index.jsx +2 -0
  304. package/dist/breadcrumbs/createBreadcrumbs.d.ts.map +1 -1
  305. package/dist/breadcrumbs/index.js +2 -0
  306. package/dist/breadcrumbs/index.jsx +2 -0
  307. package/dist/button/createToggleButtonGroup.d.ts.map +1 -1
  308. package/dist/button/index.js +2 -0
  309. package/dist/button/index.jsx +2 -0
  310. package/dist/calendar/createCalendar.d.ts.map +1 -1
  311. package/dist/calendar/createCalendarCell.d.ts.map +1 -1
  312. package/dist/calendar/createCalendarGrid.d.ts.map +1 -1
  313. package/dist/calendar/createCalendarMonthPicker.d.ts +41 -0
  314. package/dist/calendar/createCalendarMonthPicker.d.ts.map +1 -0
  315. package/dist/calendar/createCalendarYearPicker.d.ts +49 -0
  316. package/dist/calendar/createCalendarYearPicker.d.ts.map +1 -0
  317. package/dist/calendar/createRangeCalendar.d.ts.map +1 -1
  318. package/dist/calendar/createRangeCalendarCell.d.ts.map +1 -1
  319. package/dist/calendar/index.d.ts +2 -0
  320. package/dist/calendar/index.d.ts.map +1 -1
  321. package/dist/calendar/index.js +2 -0
  322. package/dist/calendar/index.jsx +2 -0
  323. package/dist/calendar/intl/index.d.ts +1 -1
  324. package/dist/calendar/intl/index.d.ts.map +1 -1
  325. package/dist/calendar/utils.d.ts +4 -0
  326. package/dist/calendar/utils.d.ts.map +1 -1
  327. package/dist/checkbox/createCheckbox.d.ts +4 -0
  328. package/dist/checkbox/createCheckbox.d.ts.map +1 -1
  329. package/dist/checkbox/createCheckboxGroupItem.d.ts.map +1 -1
  330. package/dist/checkbox/index.js +2 -0
  331. package/dist/checkbox/index.jsx +2 -0
  332. package/dist/collections/index.js +160 -0
  333. package/dist/collections/index.js.map +1 -0
  334. package/dist/collections/index.jsx +160 -0
  335. package/dist/collections/index.jsx.map +1 -0
  336. package/dist/color/createColorArea.d.ts.map +1 -1
  337. package/dist/color/createColorField.d.ts.map +1 -1
  338. package/dist/color/createColorSlider.d.ts.map +1 -1
  339. package/dist/color/createColorSwatch.d.ts.map +1 -1
  340. package/dist/color/createColorWheel.d.ts.map +1 -1
  341. package/dist/color/index.js +2 -0
  342. package/dist/color/index.jsx +2 -0
  343. package/dist/color/intl/index.d.ts +30 -0
  344. package/dist/color/intl/index.d.ts.map +1 -0
  345. package/dist/combobox/createComboBox.d.ts.map +1 -1
  346. package/dist/combobox/index.js +2 -0
  347. package/dist/combobox/index.jsx +2 -0
  348. package/dist/combobox/intl/generated-locales.d.ts +16 -0
  349. package/dist/combobox/intl/generated-locales.d.ts.map +1 -0
  350. package/dist/combobox/intl/index.d.ts +2 -2
  351. package/dist/combobox/intl/index.d.ts.map +1 -1
  352. package/dist/datepicker/createDateField.d.ts +45 -23
  353. package/dist/datepicker/createDateField.d.ts.map +1 -1
  354. package/dist/datepicker/createDatePicker.d.ts +34 -6
  355. package/dist/datepicker/createDatePicker.d.ts.map +1 -1
  356. package/dist/datepicker/createDatePickerGroup.d.ts +13 -13
  357. package/dist/datepicker/createDatePickerGroup.d.ts.map +1 -1
  358. package/dist/datepicker/createDateRangePicker.d.ts +55 -7
  359. package/dist/datepicker/createDateRangePicker.d.ts.map +1 -1
  360. package/dist/datepicker/createDateSegment.d.ts +6 -15
  361. package/dist/datepicker/createDateSegment.d.ts.map +1 -1
  362. package/dist/datepicker/createDisplayNames.d.ts +17 -0
  363. package/dist/datepicker/createDisplayNames.d.ts.map +1 -0
  364. package/dist/datepicker/createTimeField.d.ts +12 -49
  365. package/dist/datepicker/createTimeField.d.ts.map +1 -1
  366. package/dist/datepicker/index.d.ts +3 -3
  367. package/dist/datepicker/index.d.ts.map +1 -1
  368. package/dist/datepicker/index.js +2 -0
  369. package/dist/datepicker/index.jsx +2 -0
  370. package/dist/datepicker/intl.d.ts +12 -0
  371. package/dist/datepicker/intl.d.ts.map +1 -0
  372. package/dist/dialog/index.js +2 -0
  373. package/dist/dialog/index.jsx +2 -0
  374. package/dist/disclosure/index.js +2 -0
  375. package/dist/disclosure/index.jsx +2 -0
  376. package/dist/dnd/DragManager.d.ts +86 -0
  377. package/dist/dnd/DragManager.d.ts.map +1 -0
  378. package/dist/dnd/DropTargetKeyboardNavigation.d.ts +42 -0
  379. package/dist/dnd/DropTargetKeyboardNavigation.d.ts.map +1 -0
  380. package/dist/dnd/createDrag.d.ts.map +1 -1
  381. package/dist/dnd/createDraggableCollection.d.ts.map +1 -1
  382. package/dist/dnd/createDraggableItem.d.ts +12 -7
  383. package/dist/dnd/createDraggableItem.d.ts.map +1 -1
  384. package/dist/dnd/createDroppableCollection.d.ts +7 -15
  385. package/dist/dnd/createDroppableCollection.d.ts.map +1 -1
  386. package/dist/dnd/index.d.ts +5 -1
  387. package/dist/dnd/index.d.ts.map +1 -1
  388. package/dist/dnd/index.js +3 -0
  389. package/dist/dnd/index.jsx +3 -0
  390. package/dist/dnd/intl/index.d.ts +39 -0
  391. package/dist/dnd/intl/index.d.ts.map +1 -0
  392. package/dist/dnd/utils.d.ts +7 -2
  393. package/dist/dnd/utils.d.ts.map +1 -1
  394. package/dist/focus/FocusScope.d.ts +7 -0
  395. package/dist/focus/FocusScope.d.ts.map +1 -1
  396. package/dist/focus/index.d.ts +2 -1
  397. package/dist/focus/index.d.ts.map +1 -1
  398. package/dist/focus/index.js +3 -0
  399. package/dist/focus/index.jsx +3 -0
  400. package/dist/focus/virtualFocus.d.ts +26 -0
  401. package/dist/focus/virtualFocus.d.ts.map +1 -0
  402. package/dist/form/createFormValidation.d.ts.map +1 -1
  403. package/dist/form/index.js +3 -0
  404. package/dist/form/index.jsx +3 -0
  405. package/dist/grid/index.js +2 -0
  406. package/dist/grid/index.jsx +2 -0
  407. package/dist/gridlist/createGridList.d.ts +7 -1
  408. package/dist/gridlist/createGridList.d.ts.map +1 -1
  409. package/dist/gridlist/createGridListItem.d.ts +1 -1
  410. package/dist/gridlist/createGridListItem.d.ts.map +1 -1
  411. package/dist/gridlist/createGridListSection.d.ts +15 -0
  412. package/dist/gridlist/createGridListSection.d.ts.map +1 -0
  413. package/dist/gridlist/index.d.ts +2 -1
  414. package/dist/gridlist/index.d.ts.map +1 -1
  415. package/dist/gridlist/index.js +2 -0
  416. package/dist/gridlist/index.jsx +2 -0
  417. package/dist/gridlist/types.d.ts +50 -0
  418. package/dist/gridlist/types.d.ts.map +1 -1
  419. package/dist/i18n/index.js +5 -0
  420. package/dist/i18n/index.jsx +5 -0
  421. package/dist/index.d.ts +10 -6
  422. package/dist/index.d.ts.map +1 -1
  423. package/dist/index.js +77 -18311
  424. package/dist/index.jsx +77 -18242
  425. package/dist/interactions/FocusableProvider.d.ts.map +1 -1
  426. package/dist/interactions/PressEvent.d.ts +11 -0
  427. package/dist/interactions/PressEvent.d.ts.map +1 -1
  428. package/dist/interactions/createFocus.d.ts.map +1 -1
  429. package/dist/interactions/createFocusWithin.d.ts.map +1 -1
  430. package/dist/interactions/createInteractionModality.d.ts +0 -1
  431. package/dist/interactions/createInteractionModality.d.ts.map +1 -1
  432. package/dist/interactions/createKeyboard.d.ts.map +1 -1
  433. package/dist/interactions/createPress.d.ts.map +1 -1
  434. package/dist/interactions/index.js +9 -0
  435. package/dist/interactions/index.jsx +9 -0
  436. package/dist/label/createLabels.d.ts.map +1 -1
  437. package/dist/label/index.js +4 -0
  438. package/dist/label/index.jsx +4 -0
  439. package/dist/landmark/index.js +2 -0
  440. package/dist/landmark/index.jsx +2 -0
  441. package/dist/link/index.js +2 -0
  442. package/dist/link/index.jsx +2 -0
  443. package/dist/listbox/createListBox.d.ts +37 -0
  444. package/dist/listbox/createListBox.d.ts.map +1 -1
  445. package/dist/listbox/createOption.d.ts +7 -1
  446. package/dist/listbox/createOption.d.ts.map +1 -1
  447. package/dist/listbox/index.js +2 -0
  448. package/dist/listbox/index.jsx +2 -0
  449. package/dist/live-announcer/index.js +2 -0
  450. package/dist/live-announcer/index.jsx +2 -0
  451. package/dist/menu/createMenu.d.ts +7 -4
  452. package/dist/menu/createMenu.d.ts.map +1 -1
  453. package/dist/menu/createMenuItem.d.ts +9 -1
  454. package/dist/menu/createMenuItem.d.ts.map +1 -1
  455. package/dist/menu/index.js +2 -0
  456. package/dist/menu/index.jsx +2 -0
  457. package/dist/meter/index.js +2 -0
  458. package/dist/meter/index.jsx +2 -0
  459. package/dist/numberfield/createNumberField.d.ts.map +1 -1
  460. package/dist/numberfield/index.js +2 -0
  461. package/dist/numberfield/index.jsx +2 -0
  462. package/dist/overlays/index.js +4 -0
  463. package/dist/overlays/index.jsx +4 -0
  464. package/dist/popover/calculatePosition.d.ts +2 -0
  465. package/dist/popover/calculatePosition.d.ts.map +1 -1
  466. package/dist/popover/createOverlayPosition.d.ts +8 -0
  467. package/dist/popover/createOverlayPosition.d.ts.map +1 -1
  468. package/dist/popover/index.js +2 -0
  469. package/dist/popover/index.jsx +2 -0
  470. package/dist/progress/index.js +2 -0
  471. package/dist/progress/index.jsx +2 -0
  472. package/dist/radio/createRadio.d.ts +2 -0
  473. package/dist/radio/createRadio.d.ts.map +1 -1
  474. package/dist/radio/index.js +2 -0
  475. package/dist/radio/index.jsx +2 -0
  476. package/dist/searchfield/index.js +2 -0
  477. package/dist/searchfield/index.jsx +2 -0
  478. package/dist/select/createSelect.d.ts +2 -0
  479. package/dist/select/createSelect.d.ts.map +1 -1
  480. package/dist/select/index.js +2 -0
  481. package/dist/select/index.jsx +2 -0
  482. package/dist/selection/DOMLayoutDelegate.d.ts +58 -0
  483. package/dist/selection/DOMLayoutDelegate.d.ts.map +1 -0
  484. package/dist/selection/ListKeyboardDelegate.d.ts +95 -0
  485. package/dist/selection/ListKeyboardDelegate.d.ts.map +1 -0
  486. package/dist/selection/constants.d.ts +15 -0
  487. package/dist/selection/constants.d.ts.map +1 -0
  488. package/dist/selection/createCollectionRowInteraction.d.ts +13 -0
  489. package/dist/selection/createCollectionRowInteraction.d.ts.map +1 -0
  490. package/dist/selection/createScrollIntoViewOnFocus.d.ts +31 -0
  491. package/dist/selection/createScrollIntoViewOnFocus.d.ts.map +1 -0
  492. package/dist/selection/createSelectableCollection.d.ts +69 -0
  493. package/dist/selection/createSelectableCollection.d.ts.map +1 -0
  494. package/dist/selection/createSelectableItem.d.ts +154 -0
  495. package/dist/selection/createSelectableItem.d.ts.map +1 -0
  496. package/dist/selection/createSelectableList.d.ts +43 -0
  497. package/dist/selection/createSelectableList.d.ts.map +1 -0
  498. package/dist/selection/createTypeSelect.d.ts.map +1 -1
  499. package/dist/selection/index.d.ts +9 -0
  500. package/dist/selection/index.d.ts.map +1 -1
  501. package/dist/selection/index.js +5 -0
  502. package/dist/selection/index.jsx +5 -0
  503. package/dist/selection/selectItem.d.ts +29 -0
  504. package/dist/selection/selectItem.d.ts.map +1 -0
  505. package/dist/selection/utils.d.ts +40 -0
  506. package/dist/selection/utils.d.ts.map +1 -0
  507. package/dist/separator/index.js +2 -0
  508. package/dist/separator/index.jsx +2 -0
  509. package/dist/slider/createSlider.d.ts.map +1 -1
  510. package/dist/slider/index.js +2 -0
  511. package/dist/slider/index.jsx +2 -0
  512. package/dist/spinbutton/createSpinButton.d.ts +41 -0
  513. package/dist/spinbutton/createSpinButton.d.ts.map +1 -0
  514. package/dist/spinbutton/index.d.ts +3 -0
  515. package/dist/spinbutton/index.d.ts.map +1 -0
  516. package/dist/spinbutton/index.js +2 -0
  517. package/dist/spinbutton/index.jsx +2 -0
  518. package/dist/spinbutton/intl.d.ts +5 -0
  519. package/dist/spinbutton/intl.d.ts.map +1 -0
  520. package/dist/ssr/index.d.ts +17 -0
  521. package/dist/ssr/index.d.ts.map +1 -1
  522. package/dist/ssr/index.js +299 -0
  523. package/dist/ssr/index.js.map +1 -0
  524. package/dist/ssr/index.jsx +292 -0
  525. package/dist/ssr/index.jsx.map +1 -0
  526. package/dist/steplist/index.js +2 -0
  527. package/dist/steplist/index.jsx +2 -0
  528. package/dist/switch/createSwitch.d.ts +4 -0
  529. package/dist/switch/createSwitch.d.ts.map +1 -1
  530. package/dist/switch/index.js +2 -0
  531. package/dist/switch/index.jsx +2 -0
  532. package/dist/table/createTable.d.ts.map +1 -1
  533. package/dist/table/createTableColumnHeader.d.ts.map +1 -1
  534. package/dist/table/createTableRow.d.ts +1 -1
  535. package/dist/table/createTableRow.d.ts.map +1 -1
  536. package/dist/table/createTableSelectAllCheckbox.d.ts.map +1 -1
  537. package/dist/table/createTableSelectionCheckbox.d.ts.map +1 -1
  538. package/dist/table/index.js +2 -0
  539. package/dist/table/index.jsx +2 -0
  540. package/dist/table/types.d.ts +35 -1
  541. package/dist/table/types.d.ts.map +1 -1
  542. package/dist/table/utils.d.ts +15 -0
  543. package/dist/table/utils.d.ts.map +1 -0
  544. package/dist/tabs/createTabs.d.ts +5 -3
  545. package/dist/tabs/createTabs.d.ts.map +1 -1
  546. package/dist/tabs/index.js +2 -0
  547. package/dist/tabs/index.jsx +2 -0
  548. package/dist/tag/createTag.d.ts +2 -0
  549. package/dist/tag/createTag.d.ts.map +1 -1
  550. package/dist/tag/createTagGroup.d.ts +7 -0
  551. package/dist/tag/createTagGroup.d.ts.map +1 -1
  552. package/dist/tag/index.js +2 -0
  553. package/dist/tag/index.jsx +2 -0
  554. package/dist/textfield/index.js +2 -0
  555. package/dist/textfield/index.jsx +2 -0
  556. package/dist/toast/createToast.d.ts.map +1 -1
  557. package/dist/toast/index.js +2 -0
  558. package/dist/toast/index.jsx +2 -0
  559. package/dist/toggle/createToggle.d.ts +4 -0
  560. package/dist/toggle/createToggle.d.ts.map +1 -1
  561. package/dist/toggle/index.js +3 -0
  562. package/dist/toggle/index.jsx +3 -0
  563. package/dist/toolbar/createToolbar.d.ts +1 -1
  564. package/dist/toolbar/createToolbar.d.ts.map +1 -1
  565. package/dist/toolbar/index.js +2 -0
  566. package/dist/toolbar/index.jsx +2 -0
  567. package/dist/tooltip/index.js +2 -0
  568. package/dist/tooltip/index.jsx +2 -0
  569. package/dist/tree/createTree.d.ts +5 -1
  570. package/dist/tree/createTree.d.ts.map +1 -1
  571. package/dist/tree/createTreeItem.d.ts +1 -1
  572. package/dist/tree/createTreeItem.d.ts.map +1 -1
  573. package/dist/tree/createTreeSelectionCheckbox.d.ts.map +1 -1
  574. package/dist/tree/index.js +2 -0
  575. package/dist/tree/index.jsx +2 -0
  576. package/dist/tree/types.d.ts +10 -0
  577. package/dist/tree/types.d.ts.map +1 -1
  578. package/dist/utils/animation.d.ts +60 -0
  579. package/dist/utils/animation.d.ts.map +1 -0
  580. package/dist/utils/dom.d.ts +49 -2
  581. package/dist/utils/dom.d.ts.map +1 -1
  582. package/dist/utils/index.d.ts +4 -1
  583. package/dist/utils/index.d.ts.map +1 -1
  584. package/dist/utils/index.js +6 -0
  585. package/dist/utils/index.jsx +6 -0
  586. package/dist/utils/keyboard.d.ts +17 -0
  587. package/dist/utils/keyboard.d.ts.map +1 -0
  588. package/dist/utils/mergeProps.d.ts.map +1 -1
  589. package/dist/utils/scrollIntoView.d.ts +30 -0
  590. package/dist/utils/scrollIntoView.d.ts.map +1 -0
  591. package/dist/visually-hidden/index.js +2 -0
  592. package/dist/visually-hidden/index.jsx +2 -0
  593. package/package.json +304 -3
  594. package/src/actiongroup/createActionGroup.ts +26 -109
  595. package/src/autocomplete/createAutocomplete.ts +202 -35
  596. package/src/breadcrumbs/createBreadcrumbs.ts +12 -4
  597. package/src/button/createToggleButtonGroup.ts +19 -14
  598. package/src/calendar/createCalendar.ts +5 -4
  599. package/src/calendar/createCalendarCell.ts +36 -5
  600. package/src/calendar/createCalendarGrid.ts +47 -12
  601. package/src/calendar/createCalendarMonthPicker.ts +105 -0
  602. package/src/calendar/createCalendarYearPicker.ts +144 -0
  603. package/src/calendar/createRangeCalendar.ts +27 -15
  604. package/src/calendar/createRangeCalendarCell.ts +17 -3
  605. package/src/calendar/index.ts +17 -0
  606. package/src/calendar/intl/index.ts +8 -0
  607. package/src/calendar/utils.ts +4 -0
  608. package/src/checkbox/createCheckbox.ts +10 -0
  609. package/src/checkbox/createCheckboxGroupItem.ts +12 -16
  610. package/src/color/createColorArea.ts +17 -10
  611. package/src/color/createColorField.ts +8 -1
  612. package/src/color/createColorSlider.ts +1 -2
  613. package/src/color/createColorSwatch.ts +4 -2
  614. package/src/color/createColorWheel.ts +0 -6
  615. package/src/color/intl/index.ts +316 -0
  616. package/src/combobox/createComboBox.ts +35 -4
  617. package/src/combobox/intl/generated-locales.ts +635 -0
  618. package/src/combobox/intl/index.ts +8 -2
  619. package/src/datepicker/createDateField.ts +228 -213
  620. package/src/datepicker/createDatePicker.ts +157 -146
  621. package/src/datepicker/createDatePickerGroup.ts +88 -82
  622. package/src/datepicker/createDateRangePicker.ts +230 -179
  623. package/src/datepicker/createDateSegment.ts +386 -384
  624. package/src/datepicker/createDisplayNames.ts +45 -0
  625. package/src/datepicker/createTimeField.ts +36 -129
  626. package/src/datepicker/index.ts +13 -14
  627. package/src/datepicker/intl.ts +633 -0
  628. package/src/dnd/DragManager.ts +693 -0
  629. package/src/dnd/DropTargetKeyboardNavigation.ts +337 -0
  630. package/src/dnd/createDrag.ts +31 -5
  631. package/src/dnd/createDraggableCollection.ts +33 -15
  632. package/src/dnd/createDraggableItem.ts +92 -5
  633. package/src/dnd/createDroppableCollection.ts +488 -371
  634. package/src/dnd/index.ts +11 -0
  635. package/src/dnd/intl/ar-AE.json +29 -0
  636. package/src/dnd/intl/bg-BG.json +29 -0
  637. package/src/dnd/intl/cs-CZ.json +29 -0
  638. package/src/dnd/intl/da-DK.json +29 -0
  639. package/src/dnd/intl/de-DE.json +29 -0
  640. package/src/dnd/intl/el-GR.json +29 -0
  641. package/src/dnd/intl/en-US.json +29 -0
  642. package/src/dnd/intl/es-ES.json +29 -0
  643. package/src/dnd/intl/et-EE.json +29 -0
  644. package/src/dnd/intl/fi-FI.json +29 -0
  645. package/src/dnd/intl/fr-FR.json +29 -0
  646. package/src/dnd/intl/he-IL.json +29 -0
  647. package/src/dnd/intl/hr-HR.json +29 -0
  648. package/src/dnd/intl/hu-HU.json +29 -0
  649. package/src/dnd/intl/index.ts +139 -0
  650. package/src/dnd/intl/it-IT.json +29 -0
  651. package/src/dnd/intl/ja-JP.json +29 -0
  652. package/src/dnd/intl/ko-KR.json +29 -0
  653. package/src/dnd/intl/lt-LT.json +29 -0
  654. package/src/dnd/intl/lv-LV.json +29 -0
  655. package/src/dnd/intl/nb-NO.json +29 -0
  656. package/src/dnd/intl/nl-NL.json +29 -0
  657. package/src/dnd/intl/pl-PL.json +29 -0
  658. package/src/dnd/intl/pt-BR.json +29 -0
  659. package/src/dnd/intl/pt-PT.json +29 -0
  660. package/src/dnd/intl/ro-RO.json +29 -0
  661. package/src/dnd/intl/ru-RU.json +29 -0
  662. package/src/dnd/intl/sk-SK.json +29 -0
  663. package/src/dnd/intl/sl-SI.json +29 -0
  664. package/src/dnd/intl/sr-SP.json +29 -0
  665. package/src/dnd/intl/sv-SE.json +29 -0
  666. package/src/dnd/intl/tr-TR.json +29 -0
  667. package/src/dnd/intl/uk-UA.json +29 -0
  668. package/src/dnd/intl/zh-CN.json +29 -0
  669. package/src/dnd/intl/zh-TW.json +29 -0
  670. package/src/dnd/utils.ts +63 -3
  671. package/src/focus/FocusScope.tsx +266 -24
  672. package/src/focus/index.ts +8 -0
  673. package/src/focus/virtualFocus.ts +55 -0
  674. package/src/form/createFormValidation.ts +8 -1
  675. package/src/gridlist/createGridList.ts +187 -48
  676. package/src/gridlist/createGridListItem.ts +87 -155
  677. package/src/gridlist/createGridListSection.ts +54 -0
  678. package/src/gridlist/index.ts +3 -0
  679. package/src/gridlist/types.ts +47 -0
  680. package/src/index.ts +51 -3
  681. package/src/interactions/FocusableProvider.tsx +11 -6
  682. package/src/interactions/PressEvent.ts +14 -0
  683. package/src/interactions/createFocus.ts +26 -21
  684. package/src/interactions/createFocusWithin.ts +23 -24
  685. package/src/interactions/createInteractionModality.ts +26 -15
  686. package/src/interactions/createKeyboard.ts +10 -0
  687. package/src/interactions/createPress.ts +29 -6
  688. package/src/label/createLabels.ts +7 -4
  689. package/src/listbox/createListBox.ts +203 -10
  690. package/src/listbox/createOption.ts +84 -74
  691. package/src/menu/createMenu.ts +93 -16
  692. package/src/menu/createMenuItem.ts +253 -41
  693. package/src/numberfield/createNumberField.ts +82 -14
  694. package/src/popover/calculatePosition.ts +19 -7
  695. package/src/popover/createOverlayPosition.ts +9 -0
  696. package/src/radio/createRadio.ts +19 -2
  697. package/src/select/createSelect.ts +41 -4
  698. package/src/selection/DOMLayoutDelegate.ts +102 -0
  699. package/src/selection/ListKeyboardDelegate.ts +398 -0
  700. package/src/selection/constants.ts +16 -0
  701. package/src/selection/createCollectionRowInteraction.ts +209 -0
  702. package/src/selection/createScrollIntoViewOnFocus.ts +65 -0
  703. package/src/selection/createSelectableCollection.ts +645 -0
  704. package/src/selection/createSelectableItem.ts +512 -0
  705. package/src/selection/createSelectableList.ts +93 -0
  706. package/src/selection/createTypeSelect.ts +112 -51
  707. package/src/selection/index.ts +31 -0
  708. package/src/selection/selectItem.ts +80 -0
  709. package/src/selection/utils.ts +82 -0
  710. package/src/slider/createSlider.ts +48 -1
  711. package/src/spinbutton/createSpinButton.ts +163 -0
  712. package/src/spinbutton/index.ts +10 -0
  713. package/src/spinbutton/intl.ts +115 -0
  714. package/src/ssr/index.tsx +31 -0
  715. package/src/switch/createSwitch.ts +10 -0
  716. package/src/table/createTable.ts +82 -27
  717. package/src/table/createTableColumnHeader.ts +10 -0
  718. package/src/table/createTableRow.ts +208 -203
  719. package/src/table/createTableSelectAllCheckbox.ts +3 -4
  720. package/src/table/createTableSelectionCheckbox.ts +24 -1
  721. package/src/table/types.ts +37 -1
  722. package/src/table/utils.ts +41 -0
  723. package/src/tabs/createTabs.ts +95 -24
  724. package/src/tag/createTag.ts +30 -36
  725. package/src/tag/createTagGroup.ts +92 -0
  726. package/src/toast/createToast.ts +1 -0
  727. package/src/toggle/createToggle.ts +20 -0
  728. package/src/toolbar/createToolbar.ts +43 -94
  729. package/src/tree/createTree.ts +165 -52
  730. package/src/tree/createTreeItem.ts +105 -120
  731. package/src/tree/createTreeSelectionCheckbox.ts +14 -1
  732. package/src/tree/types.ts +10 -0
  733. package/src/utils/animation.ts +243 -0
  734. package/src/utils/dom.ts +216 -25
  735. package/src/utils/index.ts +10 -0
  736. package/src/utils/keyboard.ts +25 -0
  737. package/src/utils/mergeProps.ts +8 -1
  738. package/src/utils/scrollIntoView.ts +181 -0
  739. package/dist/datepicker/createTimeSegment.d.ts +0 -29
  740. package/dist/datepicker/createTimeSegment.d.ts.map +0 -1
  741. package/dist/index.js.map +0 -1
  742. package/dist/index.jsx.map +0 -1
  743. package/src/datepicker/createTimeSegment.ts +0 -352
@@ -0,0 +1,105 @@
1
+ /**
2
+ * createCalendarMonthPicker hook for Solidaria
3
+ *
4
+ * Provides the behavior and accessibility implementation for a month picker
5
+ * within a calendar — a listbox/select that jumps the focused date to a chosen
6
+ * month of the focused year.
7
+ * Based on @react-aria/calendar useCalendarMonthPicker.
8
+ */
9
+
10
+ import { createMemo } from "solid-js";
11
+ import { DateFormatter, type CalendarDate } from "@internationalized/date";
12
+ import type { CalendarState, RangeCalendarState } from "@proyecto-viviana/solid-stately";
13
+ import { access, type MaybeAccessor } from "../utils/reactivity";
14
+ import { useLocale } from "../i18n";
15
+
16
+ type Key = string | number;
17
+
18
+ export interface CalendarMonthPickerProps {
19
+ /** The format of the month to display in the picker. @default 'short' */
20
+ format?: "numeric" | "2-digit" | "long" | "short" | "narrow";
21
+ }
22
+
23
+ export interface CalendarMonthPickerItem {
24
+ /** The 1-based month number, used as the item's key. */
25
+ id: number;
26
+ /** The first day of the month. */
27
+ date: CalendarDate;
28
+ /** The localized month name. */
29
+ formatted: string;
30
+ }
31
+
32
+ export interface CalendarMonthPickerAria {
33
+ /** An accessible label for the month picker. */
34
+ "aria-label": string;
35
+ /** The key of the currently focused month (its 1-based number). */
36
+ value: Key;
37
+ /** Handler that moves focus to the selected month. */
38
+ onChange: (key: Key | null) => void;
39
+ /** The list of selectable months in the focused year. */
40
+ items: CalendarMonthPickerItem[];
41
+ }
42
+
43
+ /**
44
+ * Provides the behavior and accessibility implementation for a month picker
45
+ * within a calendar.
46
+ */
47
+ export function createCalendarMonthPicker(
48
+ props: MaybeAccessor<CalendarMonthPickerProps>,
49
+ state: CalendarState | RangeCalendarState,
50
+ ): CalendarMonthPickerAria {
51
+ const getProps = () => access(props);
52
+ const locale = useLocale();
53
+
54
+ const formatter = createMemo(
55
+ () =>
56
+ new DateFormatter(locale().locale, {
57
+ month: getProps().format ?? "short",
58
+ calendar: state.focusedDate().calendar.identifier,
59
+ timeZone: state.timeZone,
60
+ }),
61
+ );
62
+
63
+ // Build the list of months in the focused year. The number of months can vary
64
+ // by year in some calendar systems (e.g. the Hebrew leap year), so derive it
65
+ // from the focused date rather than assuming twelve.
66
+ const items = createMemo<CalendarMonthPickerItem[]>(() => {
67
+ const focused = state.focusedDate();
68
+ const fmt = formatter();
69
+ const numMonths = focused.calendar.getMonthsInYear(focused);
70
+ const months: CalendarMonthPickerItem[] = [];
71
+ for (let i = 1; i <= numMonths; i++) {
72
+ const date = focused.set({ month: i });
73
+ // Calendars that offset their month numbering (e.g. fiscal calendars)
74
+ // expose getFormattableMonth to map back to the displayable month.
75
+ const displayDate = date.calendar.getFormattableMonth?.(date) ?? date;
76
+ months.push({
77
+ id: i,
78
+ date,
79
+ formatted: fmt.format(displayDate.toDate(state.timeZone)),
80
+ });
81
+ }
82
+ return months;
83
+ });
84
+
85
+ const ariaLabel = createMemo(
86
+ () => new Intl.DisplayNames(locale().locale, { type: "dateTimeField" }).of("month") ?? "month",
87
+ );
88
+
89
+ return {
90
+ get "aria-label"() {
91
+ return ariaLabel();
92
+ },
93
+ get value() {
94
+ return state.focusedDate().month;
95
+ },
96
+ onChange: (key) => {
97
+ if (key != null) {
98
+ state.setFocusedDate(items()[Number(key) - 1].date);
99
+ }
100
+ },
101
+ get items() {
102
+ return items();
103
+ },
104
+ };
105
+ }
@@ -0,0 +1,144 @@
1
+ /**
2
+ * createCalendarYearPicker hook for Solidaria
3
+ *
4
+ * Provides the behavior and accessibility implementation for a year picker
5
+ * within a calendar — a listbox/select that jumps the focused date to a chosen
6
+ * year within a sliding window centered on the focused year.
7
+ * Based on @react-aria/calendar useCalendarYearPicker.
8
+ */
9
+
10
+ import { createMemo } from "solid-js";
11
+ import {
12
+ DateFormatter,
13
+ isSameYear,
14
+ toCalendarDate,
15
+ type CalendarDate,
16
+ } from "@internationalized/date";
17
+ import type { CalendarState, RangeCalendarState } from "@proyecto-viviana/solid-stately";
18
+ import { access, type MaybeAccessor } from "../utils/reactivity";
19
+ import { useLocale } from "../i18n";
20
+
21
+ type Key = string | number;
22
+
23
+ export interface CalendarYearPickerFormatOptions {
24
+ /** The format of the year. @default 'numeric' */
25
+ year?: "numeric" | "2-digit";
26
+ /** The format of the era. */
27
+ era?: "long" | "short" | "narrow";
28
+ }
29
+
30
+ export interface CalendarYearPickerProps {
31
+ /** The number of years to display in the picker. @default 20 */
32
+ visibleYears?: number;
33
+ /** The format of the year/era to display. */
34
+ format?: CalendarYearPickerFormatOptions;
35
+ }
36
+
37
+ export interface CalendarYearPickerItem {
38
+ /** The index of the year within the visible window, used as the item's key. */
39
+ id: number;
40
+ /** The first day of the year. */
41
+ date: CalendarDate;
42
+ /** The localized year name. */
43
+ formatted: string;
44
+ }
45
+
46
+ export interface CalendarYearPickerAria {
47
+ /** An accessible label for the year picker. */
48
+ "aria-label": string;
49
+ /** The key of the currently focused year (its index in the visible window). */
50
+ value: Key;
51
+ /** Handler that moves focus to the selected year. */
52
+ onChange: (key: Key | null) => void;
53
+ /** The list of selectable years in the visible window. */
54
+ items: CalendarYearPickerItem[];
55
+ }
56
+
57
+ /**
58
+ * Provides the behavior and accessibility implementation for a year picker
59
+ * within a calendar.
60
+ */
61
+ export function createCalendarYearPicker(
62
+ props: MaybeAccessor<CalendarYearPickerProps>,
63
+ state: CalendarState | RangeCalendarState,
64
+ ): CalendarYearPickerAria {
65
+ const getProps = () => access(props);
66
+ const locale = useLocale();
67
+
68
+ const formatter = createMemo(() => {
69
+ const focused = state.focusedDate();
70
+ const format = getProps().format;
71
+ return new DateFormatter(locale().locale, {
72
+ year: format?.year ?? "numeric",
73
+ era:
74
+ format?.era ??
75
+ (focused.calendar.identifier === "gregory" && focused.era === "BC" ? "short" : undefined),
76
+ calendar: focused.calendar.identifier,
77
+ timeZone: state.timeZone,
78
+ });
79
+ });
80
+
81
+ // Compute a window of years centered on the focused year, then clamp it to the
82
+ // calendar's min/max so the picker never offers an out-of-range year.
83
+ const data = createMemo(() => {
84
+ const focused = state.focusedDate();
85
+ const fmt = formatter();
86
+ // Falsy coercion (not `??`) mirrors upstream `props.visibleYears || 20`, so a
87
+ // `0`/`NaN` visibleYears falls back to the default 20 rather than producing an
88
+ // empty window.
89
+ const visibleYears = getProps().visibleYears || 20;
90
+ let minDate = focused.subtract({ years: Math.floor(visibleYears / 2) });
91
+ let maxDate = focused.add({ years: Math.ceil(visibleYears / 2) - 1 });
92
+
93
+ const stateMax = state.maxValue();
94
+ const stateMin = state.minValue();
95
+ if (stateMax && maxDate.compare(stateMax) > 0) {
96
+ maxDate = toCalendarDate(stateMax);
97
+ minDate = maxDate.subtract({ years: visibleYears - 1 });
98
+ }
99
+ if (stateMin && minDate.compare(stateMin) < 0) {
100
+ minDate = toCalendarDate(stateMin);
101
+ maxDate = minDate.add({ years: visibleYears - 1 });
102
+ if (stateMax && maxDate.compare(stateMax) > 0) {
103
+ maxDate = toCalendarDate(stateMax);
104
+ }
105
+ }
106
+
107
+ const years: CalendarYearPickerItem[] = [];
108
+ let value: number = 0;
109
+ let date = minDate;
110
+ while (date.compare(maxDate) <= 0) {
111
+ if (isSameYear(date, focused)) {
112
+ value = years.length;
113
+ }
114
+ years.push({
115
+ id: years.length,
116
+ date,
117
+ formatted: fmt.format(date.toDate(state.timeZone)),
118
+ });
119
+ date = date.add({ years: 1 });
120
+ }
121
+ return { items: years, value };
122
+ });
123
+
124
+ const ariaLabel = createMemo(
125
+ () => new Intl.DisplayNames(locale().locale, { type: "dateTimeField" }).of("year") ?? "year",
126
+ );
127
+
128
+ return {
129
+ get "aria-label"() {
130
+ return ariaLabel();
131
+ },
132
+ get value() {
133
+ return data().value;
134
+ },
135
+ onChange: (key) => {
136
+ if (key != null) {
137
+ state.setFocusedDate(data().items[Number(key)].date);
138
+ }
139
+ },
140
+ get items() {
141
+ return data().items;
142
+ },
143
+ };
144
+ }
@@ -13,9 +13,9 @@ import type { RangeCalendarState } from "@proyecto-viviana/solid-stately";
13
13
  import {
14
14
  formatSelectedDateDescription,
15
15
  formatVisibleRangeDescription,
16
- getCalendarHookData,
17
16
  setCalendarHookData,
18
17
  } from "./utils";
18
+ import { formatCalendarLabel } from "./intl";
19
19
 
20
20
  export interface AriaRangeCalendarProps {
21
21
  /** An ID for the calendar. */
@@ -80,16 +80,30 @@ export function createRangeCalendar<T extends RangeCalendarState>(
80
80
  const selectedDateDescription = createMemo(() => formatSelectedDateDescription(state));
81
81
 
82
82
  const initialProps = getProps();
83
- const existingHookData = getCalendarHookData(state);
84
- setCalendarHookData(state, {
85
- errorMessageId:
86
- initialProps.errorMessage || initialProps.errorMessageId
87
- ? errorMessageId
88
- : existingHookData?.errorMessageId,
89
- get selectedDateDescription() {
90
- return selectedDateDescription();
91
- },
92
- });
83
+ // Gate the hook-data write on an identifying prop, mirroring createCalendar.
84
+ // The headless RangeCalendarButton re-invokes createRangeCalendar({}, state)
85
+ // to read prev/next button props from context; without this gate that bare
86
+ // call would clobber the ariaLabel / selectedDateDescription the owning
87
+ // RangeCalendar published, dropping the calendar label from every grid name.
88
+ if (
89
+ initialProps.id ||
90
+ initialProps["aria-label"] ||
91
+ initialProps["aria-labelledby"] ||
92
+ initialProps["aria-describedby"] ||
93
+ initialProps["aria-details"] ||
94
+ initialProps.errorMessage ||
95
+ initialProps.errorMessageId
96
+ ) {
97
+ setCalendarHookData(state, {
98
+ errorMessageId:
99
+ initialProps.errorMessage || initialProps.errorMessageId ? errorMessageId : undefined,
100
+ ariaLabel: initialProps["aria-label"],
101
+ ariaLabelledBy: initialProps["aria-labelledby"],
102
+ get selectedDateDescription() {
103
+ return selectedDateDescription();
104
+ },
105
+ });
106
+ }
93
107
 
94
108
  // Previous button props
95
109
  const prevButtonProps = createMemo(() => {
@@ -97,14 +111,13 @@ export function createRangeCalendar<T extends RangeCalendarState>(
97
111
  const isDisabled = p.isDisabled || state.isDisabled() || state.isPreviousVisibleRangeInvalid();
98
112
 
99
113
  return {
100
- "aria-label": "Previous month",
114
+ "aria-label": formatCalendarLabel(state.locale(), "previous"),
101
115
  onClick: () => {
102
116
  if (!isDisabled) {
103
117
  state.focusPreviousPage();
104
118
  }
105
119
  },
106
120
  disabled: isDisabled,
107
- tabIndex: -1,
108
121
  };
109
122
  });
110
123
 
@@ -114,14 +127,13 @@ export function createRangeCalendar<T extends RangeCalendarState>(
114
127
  const isDisabled = p.isDisabled || state.isDisabled() || state.isNextVisibleRangeInvalid();
115
128
 
116
129
  return {
117
- "aria-label": "Next month",
130
+ "aria-label": formatCalendarLabel(state.locale(), "next"),
118
131
  onClick: () => {
119
132
  if (!isDisabled) {
120
133
  state.focusNextPage();
121
134
  }
122
135
  },
123
136
  disabled: isDisabled,
124
- tabIndex: -1,
125
137
  };
126
138
  });
127
139
 
@@ -10,7 +10,12 @@ import { access, type MaybeAccessor } from "../utils/reactivity";
10
10
  import { focusSafely } from "../utils/focus";
11
11
  import { createDescription } from "../utils/createDescription";
12
12
  import type { RangeCalendarState, CalendarDate, DateValue } from "@proyecto-viviana/solid-stately";
13
- import { isToday as isTodayUtil, DateFormatter, getLocalTimeZone } from "@internationalized/date";
13
+ import {
14
+ isToday as isTodayUtil,
15
+ isSameDay,
16
+ DateFormatter,
17
+ getLocalTimeZone,
18
+ } from "@internationalized/date";
14
19
  import { getCalendarHookData, getEraFormat } from "./utils";
15
20
  import { formatCalendarLabel, formatCalendarPrompt } from "./intl";
16
21
 
@@ -71,7 +76,6 @@ export function createRangeCalendarCell<T extends RangeCalendarState>(
71
76
  const isSelected = createMemo(() => state.isSelected(date()));
72
77
  const isSelectionStart = createMemo(() => state.isSelectionStart(date()));
73
78
  const isSelectionEnd = createMemo(() => state.isSelectionEnd(date()));
74
- const isFocused = createMemo(() => state.isCellFocused(date()));
75
79
  const isInvalid = createMemo(() => {
76
80
  const range = state.highlightedRange();
77
81
  const d = date();
@@ -91,6 +95,11 @@ export function createRangeCalendarCell<T extends RangeCalendarState>(
91
95
  const isOutsideMonth = createMemo(() => {
92
96
  return getProps().isOutsideMonth ?? state.isOutsideVisibleRange(date());
93
97
  });
98
+ // Mirror @react-aria/calendar useCalendarCell: `isCellFocused(date) &&
99
+ // !isOutsideMonth`. isCellFocused is now gated on the calendar-level focus
100
+ // flag, so this drives the focusSafely effect + range-selection prompt (never
101
+ // on mount) — NOT the roving tabIndex, which tracks focusedDate directly.
102
+ const isFocused = createMemo(() => state.isCellFocused(date()) && !isOutsideMonth());
94
103
  const isToday = createMemo(() => isTodayUtil(date(), timeZone));
95
104
  const rangeSelectionPrompt = createMemo(() => {
96
105
  if (!isFocused() || state.isReadOnly() || !isSelectable()) {
@@ -199,7 +208,12 @@ export function createRangeCalendarCell<T extends RangeCalendarState>(
199
208
 
200
209
  return {
201
210
  role: "button",
202
- tabIndex: isFocused() ? 0 : -1,
211
+ // Roving tabbable cell = the focusedDate cell, ungated by calendar focus,
212
+ // mirroring @react-aria/calendar useCalendarCell
213
+ // (`tabIndex = isSameDay(date, state.focusedDate) ? 0 : -1`, undefined when
214
+ // disabled). Keeps one cell tabbable on mount without stealing focus, and
215
+ // prunes tabindex from disabled cells like upstream.
216
+ tabIndex: isDisabled() ? undefined : isSameDay(d, state.focusedDate()) ? 0 : -1,
203
217
  "aria-label": label,
204
218
  "aria-disabled": isDisabled() || isUnavailable() || undefined,
205
219
  "aria-invalid": isInvalid() || undefined,
@@ -1,6 +1,23 @@
1
1
  // Calendar
2
2
  export { createCalendar, type AriaCalendarProps, type CalendarAria } from "./createCalendar";
3
3
 
4
+ // Calendar Month Picker
5
+ export {
6
+ createCalendarMonthPicker,
7
+ type CalendarMonthPickerProps,
8
+ type CalendarMonthPickerItem,
9
+ type CalendarMonthPickerAria,
10
+ } from "./createCalendarMonthPicker";
11
+
12
+ // Calendar Year Picker
13
+ export {
14
+ createCalendarYearPicker,
15
+ type CalendarYearPickerProps,
16
+ type CalendarYearPickerFormatOptions,
17
+ type CalendarYearPickerItem,
18
+ type CalendarYearPickerAria,
19
+ } from "./createCalendarYearPicker";
20
+
4
21
  // Calendar Grid
5
22
  export {
6
23
  createCalendarGrid,
@@ -10,6 +10,8 @@ type CalendarLabelKey =
10
10
  | "dateSelected"
11
11
  | "maximumDate"
12
12
  | "minimumDate"
13
+ | "next"
14
+ | "previous"
13
15
  | "selectedDateDescription"
14
16
  | "selectedRangeDescription"
15
17
  | "todayDate"
@@ -169,6 +171,8 @@ const calendarLabelStrings: LocalizedStrings<CalendarLabelKey, CalendarLabelMess
169
171
  dateSelected: (args) => `${args?.date} selected`,
170
172
  maximumDate: "Last available date",
171
173
  minimumDate: "First available date",
174
+ next: "Next",
175
+ previous: "Previous",
172
176
  selectedDateDescription: (args) => `Selected Date: ${args?.date}`,
173
177
  selectedRangeDescription: (args) => `Selected Range: ${args?.dateRange}`,
174
178
  todayDate: (args) => `Today, ${args?.date}`,
@@ -181,6 +185,8 @@ const calendarLabelStrings: LocalizedStrings<CalendarLabelKey, CalendarLabelMess
181
185
  minimumDate: "Première date disponible",
182
186
  selectedDateDescription: (args) => `Date sélectionnée : ${args?.date}`,
183
187
  selectedRangeDescription: (args) => `Plage sélectionnée : ${args?.dateRange}`,
188
+ next: "Suivant",
189
+ previous: "Précédent",
184
190
  todayDate: (args) => `Aujourd'hui, ${args?.date}`,
185
191
  todayDateSelected: (args) => `Aujourd’hui, ${args?.date} sélectionné`,
186
192
  },
@@ -189,6 +195,8 @@ const calendarLabelStrings: LocalizedStrings<CalendarLabelKey, CalendarLabelMess
189
195
  dateSelected: (args) => `${args?.date} المحدد`,
190
196
  maximumDate: "آخر تاريخ متاح",
191
197
  minimumDate: "أول تاريخ متاح",
198
+ next: "التالي",
199
+ previous: "السابق",
192
200
  selectedDateDescription: (args) => `تاريخ محدد: ${args?.date}`,
193
201
  selectedRangeDescription: (args) => `المدى الزمني المحدد: ${args?.dateRange}`,
194
202
  todayDate: (args) => `اليوم، ${args?.date}`,
@@ -11,6 +11,10 @@ import { formatCalendarLabel } from "./intl";
11
11
  export interface CalendarHookData {
12
12
  errorMessageId?: string;
13
13
  selectedDateDescription?: string;
14
+ /** The calendar's accessible label, shared with each grid (mirrors @react-aria/calendar hookData.ariaLabel). */
15
+ ariaLabel?: string;
16
+ /** The id of an element labelling the calendar, shared with each grid (mirrors hookData.ariaLabelledBy). */
17
+ ariaLabelledBy?: string;
14
18
  }
15
19
 
16
20
  const hookData = new WeakMap<CalendarState | RangeCalendarState, CalendarHookData>();
@@ -37,6 +37,10 @@ export interface CheckboxAria {
37
37
  labelProps: JSX.LabelHTMLAttributes<HTMLLabelElement>;
38
38
  /** Props for the input element. */
39
39
  inputProps: JSX.InputHTMLAttributes<HTMLInputElement>;
40
+ /** Props for the checkbox description element, if any. */
41
+ descriptionProps: JSX.HTMLAttributes<HTMLElement>;
42
+ /** Props for the checkbox error message element, if any. */
43
+ errorMessageProps: JSX.HTMLAttributes<HTMLElement>;
40
44
  /** Whether the checkbox is selected. */
41
45
  isSelected: Accessor<boolean>;
42
46
  /** Whether the checkbox is in a pressed state. */
@@ -118,6 +122,12 @@ export function createCheckbox(
118
122
  required: isRequired && validationBehavior === "native",
119
123
  }) as JSX.InputHTMLAttributes<HTMLInputElement>;
120
124
  },
125
+ get descriptionProps() {
126
+ return toggleResult.descriptionProps;
127
+ },
128
+ get errorMessageProps() {
129
+ return toggleResult.errorMessageProps;
130
+ },
121
131
  isSelected,
122
132
  isPressed,
123
133
  isDisabled,
@@ -80,22 +80,18 @@ export function createCheckboxGroupItem(
80
80
  const baseInputProps = result.inputProps;
81
81
  const groupData = getGroupData();
82
82
 
83
- const describedByIds: string[] = [];
84
-
85
- const propsDescribedBy = getProps()["aria-describedby"];
86
- if (propsDescribedBy) {
87
- describedByIds.push(propsDescribedBy);
88
- }
89
-
90
- if (state.isInvalid && groupData?.errorMessageId) {
91
- describedByIds.push(groupData.errorMessageId);
92
- }
93
-
94
- if (groupData?.descriptionId) {
95
- describedByIds.push(groupData.descriptionId);
96
- }
97
-
98
- const ariaDescribedBy = describedByIds.length > 0 ? describedByIds.join(" ") : undefined;
83
+ // Mirror upstream useCheckboxGroupItem: keep the checkbox's own
84
+ // aria-describedby (its description/error slot ids from createCheckbox/
85
+ // createToggle, which already fold in the user's aria-describedby) and append
86
+ // the group's shared description/error ids.
87
+ const ariaDescribedBy =
88
+ [
89
+ baseInputProps["aria-describedby"],
90
+ state.isInvalid && groupData?.errorMessageId ? groupData.errorMessageId : null,
91
+ groupData?.descriptionId,
92
+ ]
93
+ .filter(Boolean)
94
+ .join(" ") || undefined;
99
95
 
100
96
  return {
101
97
  ...baseInputProps,
@@ -9,6 +9,7 @@ import type { Color, ColorAreaState, ColorChannel } from "@proyecto-viviana/soli
9
9
  import { parseColor } from "@proyecto-viviana/solid-stately";
10
10
  import { useLocale } from "../i18n";
11
11
  import { createId } from "../ssr";
12
+ import { createColorStringFormatter } from "./intl";
12
13
  import type { AriaColorAreaOptions, ColorAreaAria } from "./types";
13
14
 
14
15
  /**
@@ -22,6 +23,7 @@ export function createColorArea(
22
23
  const getProps = () => props();
23
24
  const getState = () => state();
24
25
  const locale = useLocale();
26
+ const stringFormatter = createColorStringFormatter();
25
27
  const isRTL = () => locale().direction === "rtl";
26
28
  const [focusedInput, setFocusedInput] = createSignal<"x" | "y" | null>(null);
27
29
  const [valueChangedViaKeyboard, setValueChangedViaKeyboard] = createSignal(false);
@@ -32,11 +34,18 @@ export function createColorArea(
32
34
  const xInputId = createId();
33
35
  const yInputId = createId();
34
36
 
35
- const colorPickerLabel = () => "Color picker";
37
+ const colorPickerLabel = () => stringFormatter().format("colorPicker");
36
38
  const colorInputLabel = () => {
37
39
  const ariaLabel = getProps()["aria-label"];
38
- return ariaLabel ? `${ariaLabel}, ${colorPickerLabel()}` : colorPickerLabel();
40
+ return ariaLabel
41
+ ? stringFormatter().format("colorInputLabel", {
42
+ label: ariaLabel,
43
+ channelLabel: colorPickerLabel(),
44
+ })
45
+ : colorPickerLabel();
39
46
  };
47
+ // Upstream joins the group label with a literal ", " (useColorArea.ts:488),
48
+ // NOT the colorInputLabel message.
40
49
  const colorAreaLabel = () => {
41
50
  const ariaLabel = getProps()["aria-label"];
42
51
  return ariaLabel ? `${ariaLabel}, ${colorPickerLabel()}` : undefined;
@@ -44,7 +53,10 @@ export function createColorArea(
44
53
  const formatChannelValueText = (channel: ColorChannel) => {
45
54
  const value = getState().getDisplayColor();
46
55
  const loc = locale().locale;
47
- return `${value.getChannelName(channel, loc)}: ${value.formatChannelValue(channel, loc)}`;
56
+ return stringFormatter().format("colorNameAndValue", {
57
+ name: value.getChannelName(channel, loc),
58
+ value: value.formatChannelValue(channel, loc),
59
+ });
48
60
  };
49
61
  const getAriaValueTextForChannel = (channel: ColorChannel) => {
50
62
  const s = getState();
@@ -355,7 +367,7 @@ export function createColorArea(
355
367
  type: "range",
356
368
  id: p.id ?? xInputId,
357
369
  "aria-label": colorInputLabel(),
358
- "aria-roledescription": "2D slider",
370
+ "aria-roledescription": stringFormatter().format("twoDimensionalSlider"),
359
371
  "aria-valuetext": getAriaValueTextForChannel(s.xChannel),
360
372
  "aria-orientation": "horizontal" as const,
361
373
  "aria-describedby": p["aria-describedby"],
@@ -375,11 +387,6 @@ export function createColorArea(
375
387
  onKeyDown,
376
388
  onInput: (e: Event) => updateFromInput(e, "x"),
377
389
  onChange: (e: Event) => updateFromInput(e, "x"),
378
- onBlur: () => {
379
- if (s.isDragging) {
380
- s.setDragging(false);
381
- }
382
- },
383
390
  tabIndex: !focusedInput() || focusedInput() === "x" ? undefined : -1,
384
391
  style: {
385
392
  position: "absolute" as const,
@@ -405,7 +412,7 @@ export function createColorArea(
405
412
  type: "range",
406
413
  id: p.id ?? yInputId,
407
414
  "aria-label": colorInputLabel(),
408
- "aria-roledescription": "2D slider",
415
+ "aria-roledescription": stringFormatter().format("twoDimensionalSlider"),
409
416
  "aria-valuetext": getAriaValueTextForChannel(s.yChannel),
410
417
  "aria-orientation": "vertical" as const,
411
418
  "aria-describedby": p["aria-describedby"],
@@ -134,7 +134,14 @@ export function createColorField(
134
134
  disabled: isDisabled(),
135
135
  readOnly: isReadOnly(),
136
136
  required: validationBehavior() === "native" ? required || undefined : undefined,
137
- tabIndex: p.excludeFromTabOrder ? -1 : undefined,
137
+ // Upstream routes the input through useFormattedTextField → useTextField →
138
+ // useFocusable, which ALWAYS sets a tabIndex ("so that Safari allows focusing
139
+ // native buttons and inputs"): `excludeFromTabOrder ? -1 : 0`, then `undefined`
140
+ // when disabled (useFocusable.mjs:65-66). We hand-roll inputProps, so replay that
141
+ // one focusable prop here — the port previously dropped the default `0`, so the
142
+ // rendered input carried no `tabindex` while React's carries `tabindex="0"` (a D5
143
+ // focus-trail divergence), exactly as createNumberField already replays it.
144
+ tabIndex: isDisabled() ? undefined : p.excludeFromTabOrder ? -1 : 0,
138
145
  autoComplete: "off",
139
146
  autoCorrect: "off",
140
147
  spellCheck: "false",
@@ -44,7 +44,7 @@ export function createColorSlider(
44
44
  const p = getProps();
45
45
  if (p.channelName) return p.channelName;
46
46
  const s = getState();
47
- return s.value.getChannelName(s.channel, "en-US");
47
+ return s.value.getChannelName(s.channel, locale().locale);
48
48
  });
49
49
 
50
50
  const orientation = () => getProps().orientation ?? "horizontal";
@@ -325,7 +325,6 @@ export function createColorSlider(
325
325
  const y = orientation() === "horizontal" ? 0.5 : 1 - percent;
326
326
 
327
327
  return {
328
- role: "presentation" as const,
329
328
  onKeyDown,
330
329
  style: {
331
330
  position: "absolute" as const,
@@ -9,6 +9,7 @@ import { normalizeColor } from "@proyecto-viviana/solid-stately";
9
9
  import { useLocale } from "../i18n";
10
10
  import { createId } from "../ssr";
11
11
  import { filterDOMProps } from "../utils/filterDOMProps";
12
+ import { createColorStringFormatter } from "./intl";
12
13
  import type { AriaColorSwatchOptions, ColorSwatchAria } from "./types";
13
14
 
14
15
  /**
@@ -17,6 +18,7 @@ import type { AriaColorSwatchOptions, ColorSwatchAria } from "./types";
17
18
  export function createColorSwatch(props: Accessor<AriaColorSwatchOptions>): ColorSwatchAria {
18
19
  const getProps = () => props();
19
20
  const locale = useLocale();
21
+ const stringFormatter = createColorStringFormatter();
20
22
  const generatedId = createId();
21
23
  const id = () => getProps().id ?? generatedId;
22
24
 
@@ -28,7 +30,7 @@ export function createColorSwatch(props: Accessor<AriaColorSwatchOptions>): Colo
28
30
 
29
31
  const resolvedColor = color();
30
32
  if (resolvedColor.getChannelValue("alpha") === 0) {
31
- return "transparent";
33
+ return stringFormatter().format("transparent");
32
34
  }
33
35
 
34
36
  return resolvedColor.getColorName(locale().locale);
@@ -44,7 +46,7 @@ export function createColorSwatch(props: Accessor<AriaColorSwatchOptions>): Colo
44
46
  id: id(),
45
47
  slot: p.slot,
46
48
  role: "img" as const,
47
- "aria-roledescription": "color swatch",
49
+ "aria-roledescription": stringFormatter().format("colorSwatch"),
48
50
  "aria-label": ariaLabel,
49
51
  "aria-labelledby": p["aria-labelledby"] ? `${id()} ${p["aria-labelledby"]}` : undefined,
50
52
  style: {