@proyecto-viviana/solidaria 0.4.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 (480) 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 +13 -79
  10. package/dist/_chunk/actiongroup.js.map +1 -1
  11. package/dist/_chunk/actiongroup.jsx +13 -79
  12. package/dist/_chunk/actiongroup.jsx.map +1 -1
  13. package/dist/_chunk/{live-announcer.js → announce.js} +1 -1
  14. package/dist/_chunk/announce.js.map +1 -0
  15. package/dist/_chunk/{live-announcer.jsx → announce.jsx} +1 -1
  16. package/dist/_chunk/announce.jsx.map +1 -0
  17. package/dist/_chunk/autocomplete.js +56 -8
  18. package/dist/_chunk/autocomplete.js.map +1 -1
  19. package/dist/_chunk/autocomplete.jsx +56 -8
  20. package/dist/_chunk/autocomplete.jsx.map +1 -1
  21. package/dist/_chunk/breadcrumbs.js +6 -4
  22. package/dist/_chunk/breadcrumbs.js.map +1 -1
  23. package/dist/_chunk/breadcrumbs.jsx +6 -4
  24. package/dist/_chunk/breadcrumbs.jsx.map +1 -1
  25. package/dist/_chunk/button.js +8 -9
  26. package/dist/_chunk/button.js.map +1 -1
  27. package/dist/_chunk/button.jsx +8 -9
  28. package/dist/_chunk/button.jsx.map +1 -1
  29. package/dist/_chunk/calendar.js +27 -26
  30. package/dist/_chunk/calendar.js.map +1 -1
  31. package/dist/_chunk/calendar.jsx +27 -26
  32. package/dist/_chunk/calendar.jsx.map +1 -1
  33. package/dist/_chunk/checkbox.js +5 -4
  34. package/dist/_chunk/checkbox.js.map +1 -1
  35. package/dist/_chunk/checkbox.jsx +5 -4
  36. package/dist/_chunk/checkbox.jsx.map +1 -1
  37. package/dist/_chunk/color.js +302 -18
  38. package/dist/_chunk/color.js.map +1 -1
  39. package/dist/_chunk/color.jsx +302 -18
  40. package/dist/_chunk/color.jsx.map +1 -1
  41. package/dist/_chunk/combobox.js +638 -12
  42. package/dist/_chunk/combobox.js.map +1 -1
  43. package/dist/_chunk/combobox.jsx +638 -12
  44. package/dist/_chunk/combobox.jsx.map +1 -1
  45. package/dist/_chunk/constants.js +19 -0
  46. package/dist/_chunk/constants.js.map +1 -0
  47. package/dist/_chunk/constants.jsx +19 -0
  48. package/dist/_chunk/constants.jsx.map +1 -0
  49. package/dist/_chunk/createCollator.js +3 -171
  50. package/dist/_chunk/createCollator.js.map +1 -1
  51. package/dist/_chunk/createCollator.jsx +3 -165
  52. package/dist/_chunk/createCollator.jsx.map +1 -1
  53. package/dist/_chunk/createField.js +2 -1
  54. package/dist/_chunk/createField.js.map +1 -1
  55. package/dist/_chunk/createField.jsx +2 -1
  56. package/dist/_chunk/createField.jsx.map +1 -1
  57. package/dist/_chunk/createFocus.js +12 -8
  58. package/dist/_chunk/createFocus.js.map +1 -1
  59. package/dist/_chunk/createFocus.jsx +12 -8
  60. package/dist/_chunk/createFocus.jsx.map +1 -1
  61. package/dist/_chunk/createFocusWithin.js +12 -13
  62. package/dist/_chunk/createFocusWithin.js.map +1 -1
  63. package/dist/_chunk/createFocusWithin.jsx +12 -13
  64. package/dist/_chunk/createFocusWithin.jsx.map +1 -1
  65. package/dist/_chunk/createFocusable.js +3 -3
  66. package/dist/_chunk/createFocusable.js.map +1 -1
  67. package/dist/_chunk/createFocusable.jsx +3 -3
  68. package/dist/_chunk/createFocusable.jsx.map +1 -1
  69. package/dist/_chunk/{form.js → createFormReset.js} +1 -1
  70. package/dist/_chunk/createFormReset.js.map +1 -0
  71. package/dist/_chunk/{form.jsx → createFormReset.jsx} +1 -1
  72. package/dist/_chunk/createFormReset.jsx.map +1 -0
  73. package/dist/_chunk/createHover.js +2 -1
  74. package/dist/_chunk/createHover.js.map +1 -1
  75. package/dist/_chunk/createHover.jsx +2 -1
  76. package/dist/_chunk/createHover.jsx.map +1 -1
  77. package/dist/_chunk/createInteractionModality.js +2 -3
  78. package/dist/_chunk/createInteractionModality.js.map +1 -1
  79. package/dist/_chunk/createInteractionModality.jsx +2 -3
  80. package/dist/_chunk/createInteractionModality.jsx.map +1 -1
  81. package/dist/_chunk/createLabel.js +2 -1
  82. package/dist/_chunk/createLabel.js.map +1 -1
  83. package/dist/_chunk/createLabel.jsx +2 -1
  84. package/dist/_chunk/createLabel.jsx.map +1 -1
  85. package/dist/_chunk/createLabels.js +3 -2
  86. package/dist/_chunk/createLabels.js.map +1 -1
  87. package/dist/_chunk/createLabels.jsx +3 -2
  88. package/dist/_chunk/createLabels.jsx.map +1 -1
  89. package/dist/_chunk/createLandmark.js +1 -1
  90. package/dist/_chunk/createLandmark.jsx +1 -1
  91. package/dist/_chunk/createProgressBar.js +2 -1
  92. package/dist/_chunk/createProgressBar.js.map +1 -1
  93. package/dist/_chunk/createProgressBar.jsx +2 -1
  94. package/dist/_chunk/createProgressBar.jsx.map +1 -1
  95. package/dist/_chunk/createSelectableItem.js +7 -3
  96. package/dist/_chunk/createSelectableItem.js.map +1 -1
  97. package/dist/_chunk/createSelectableItem.jsx +7 -3
  98. package/dist/_chunk/createSelectableItem.jsx.map +1 -1
  99. package/dist/_chunk/createStringFormatter.js +61 -0
  100. package/dist/_chunk/createStringFormatter.js.map +1 -0
  101. package/dist/_chunk/createStringFormatter.jsx +61 -0
  102. package/dist/_chunk/createStringFormatter.jsx.map +1 -0
  103. package/dist/_chunk/createToggle.js +5 -4
  104. package/dist/_chunk/createToggle.js.map +1 -1
  105. package/dist/_chunk/createToggle.jsx +5 -4
  106. package/dist/_chunk/createToggle.jsx.map +1 -1
  107. package/dist/_chunk/datepicker.js +1413 -1100
  108. package/dist/_chunk/datepicker.js.map +1 -1
  109. package/dist/_chunk/datepicker.jsx +1413 -1100
  110. package/dist/_chunk/datepicker.jsx.map +1 -1
  111. package/dist/_chunk/disclosure.js +2 -2
  112. package/dist/_chunk/disclosure.js.map +1 -1
  113. package/dist/_chunk/disclosure.jsx +2 -2
  114. package/dist/_chunk/disclosure.jsx.map +1 -1
  115. package/dist/_chunk/dnd.js +1586 -495
  116. package/dist/_chunk/dnd.js.map +1 -1
  117. package/dist/_chunk/dnd.jsx +1586 -495
  118. package/dist/_chunk/dnd.jsx.map +1 -1
  119. package/dist/_chunk/env.js +1 -19
  120. package/dist/_chunk/env.js.map +1 -1
  121. package/dist/_chunk/env.jsx +1 -19
  122. package/dist/_chunk/env.jsx.map +1 -1
  123. package/dist/_chunk/focus.js +1 -1
  124. package/dist/_chunk/focus.js.map +1 -1
  125. package/dist/_chunk/focus.jsx +1 -1
  126. package/dist/_chunk/focus.jsx.map +1 -1
  127. package/dist/_chunk/focus2.js +54 -318
  128. package/dist/_chunk/focus2.js.map +1 -1
  129. package/dist/_chunk/focus2.jsx +53 -292
  130. package/dist/_chunk/focus2.jsx.map +1 -1
  131. package/dist/_chunk/grid.js +1 -1
  132. package/dist/_chunk/grid.jsx +1 -1
  133. package/dist/_chunk/gridlist.js +14 -9
  134. package/dist/_chunk/gridlist.js.map +1 -1
  135. package/dist/_chunk/gridlist.jsx +14 -9
  136. package/dist/_chunk/gridlist.jsx.map +1 -1
  137. package/dist/_chunk/i18n.js +3 -58
  138. package/dist/_chunk/i18n.js.map +1 -1
  139. package/dist/_chunk/i18n.jsx +3 -58
  140. package/dist/_chunk/i18n.jsx.map +1 -1
  141. package/dist/_chunk/interactions.js +99 -9
  142. package/dist/_chunk/interactions.js.map +1 -1
  143. package/dist/_chunk/interactions.jsx +97 -9
  144. package/dist/_chunk/interactions.jsx.map +1 -1
  145. package/dist/_chunk/link.js +2 -1
  146. package/dist/_chunk/link.js.map +1 -1
  147. package/dist/_chunk/link.jsx +2 -1
  148. package/dist/_chunk/link.jsx.map +1 -1
  149. package/dist/_chunk/listbox.js +42 -10
  150. package/dist/_chunk/listbox.js.map +1 -1
  151. package/dist/_chunk/listbox.jsx +42 -10
  152. package/dist/_chunk/listbox.jsx.map +1 -1
  153. package/dist/_chunk/locale.js +173 -0
  154. package/dist/_chunk/locale.js.map +1 -0
  155. package/dist/_chunk/locale.jsx +167 -0
  156. package/dist/_chunk/locale.jsx.map +1 -0
  157. package/dist/_chunk/menu.js +5 -4
  158. package/dist/_chunk/menu.js.map +1 -1
  159. package/dist/_chunk/menu.jsx +5 -4
  160. package/dist/_chunk/menu.jsx.map +1 -1
  161. package/dist/_chunk/numberfield.js +3 -2
  162. package/dist/_chunk/numberfield.js.map +1 -1
  163. package/dist/_chunk/numberfield.jsx +3 -2
  164. package/dist/_chunk/numberfield.jsx.map +1 -1
  165. package/dist/_chunk/overlays.js +1 -1
  166. package/dist/_chunk/overlays.jsx +1 -1
  167. package/dist/_chunk/popover.js +3 -3
  168. package/dist/_chunk/popover.js.map +1 -1
  169. package/dist/_chunk/popover.jsx +3 -3
  170. package/dist/_chunk/popover.jsx.map +1 -1
  171. package/dist/_chunk/radio.js +7 -6
  172. package/dist/_chunk/radio.js.map +1 -1
  173. package/dist/_chunk/radio.jsx +7 -6
  174. package/dist/_chunk/radio.jsx.map +1 -1
  175. package/dist/_chunk/reactivity.js +21 -0
  176. package/dist/_chunk/reactivity.js.map +1 -0
  177. package/dist/_chunk/reactivity.jsx +21 -0
  178. package/dist/_chunk/reactivity.jsx.map +1 -0
  179. package/dist/_chunk/searchfield.js +2 -1
  180. package/dist/_chunk/searchfield.js.map +1 -1
  181. package/dist/_chunk/searchfield.jsx +2 -1
  182. package/dist/_chunk/searchfield.jsx.map +1 -1
  183. package/dist/_chunk/select.js +8 -5
  184. package/dist/_chunk/select.js.map +1 -1
  185. package/dist/_chunk/select.jsx +8 -5
  186. package/dist/_chunk/select.jsx.map +1 -1
  187. package/dist/_chunk/selection.js +8 -21
  188. package/dist/_chunk/selection.js.map +1 -1
  189. package/dist/_chunk/selection.jsx +8 -21
  190. package/dist/_chunk/selection.jsx.map +1 -1
  191. package/dist/_chunk/separator.js +1 -1
  192. package/dist/_chunk/separator.jsx +1 -1
  193. package/dist/_chunk/slider.js +5 -4
  194. package/dist/_chunk/slider.js.map +1 -1
  195. package/dist/_chunk/slider.jsx +5 -4
  196. package/dist/_chunk/slider.jsx.map +1 -1
  197. package/dist/_chunk/spinbutton.js +153 -0
  198. package/dist/_chunk/spinbutton.js.map +1 -0
  199. package/dist/_chunk/spinbutton.jsx +153 -0
  200. package/dist/_chunk/spinbutton.jsx.map +1 -0
  201. package/dist/_chunk/table.js +45 -8
  202. package/dist/_chunk/table.js.map +1 -1
  203. package/dist/_chunk/table.jsx +45 -8
  204. package/dist/_chunk/table.jsx.map +1 -1
  205. package/dist/_chunk/tabs.js +11 -8
  206. package/dist/_chunk/tabs.js.map +1 -1
  207. package/dist/_chunk/tabs.jsx +11 -8
  208. package/dist/_chunk/tabs.jsx.map +1 -1
  209. package/dist/_chunk/tag.js +54 -18
  210. package/dist/_chunk/tag.js.map +1 -1
  211. package/dist/_chunk/tag.jsx +54 -18
  212. package/dist/_chunk/tag.jsx.map +1 -1
  213. package/dist/_chunk/textfield.js +2 -1
  214. package/dist/_chunk/textfield.js.map +1 -1
  215. package/dist/_chunk/textfield.jsx +2 -1
  216. package/dist/_chunk/textfield.jsx.map +1 -1
  217. package/dist/_chunk/toolbar.js +4 -36
  218. package/dist/_chunk/toolbar.js.map +1 -1
  219. package/dist/_chunk/toolbar.jsx +4 -36
  220. package/dist/_chunk/toolbar.jsx.map +1 -1
  221. package/dist/_chunk/tooltip.js +2 -2
  222. package/dist/_chunk/tooltip.js.map +1 -1
  223. package/dist/_chunk/tooltip.jsx +2 -2
  224. package/dist/_chunk/tooltip.jsx.map +1 -1
  225. package/dist/_chunk/tree.js +42 -14
  226. package/dist/_chunk/tree.js.map +1 -1
  227. package/dist/_chunk/tree.jsx +42 -14
  228. package/dist/_chunk/tree.jsx.map +1 -1
  229. package/dist/_chunk/utils.js +59 -19
  230. package/dist/_chunk/utils.js.map +1 -1
  231. package/dist/_chunk/utils.jsx +59 -19
  232. package/dist/_chunk/utils.jsx.map +1 -1
  233. package/dist/_chunk/visually-hidden.js +3 -2
  234. package/dist/_chunk/visually-hidden.js.map +1 -1
  235. package/dist/_chunk/visually-hidden.jsx +3 -2
  236. package/dist/_chunk/visually-hidden.jsx.map +1 -1
  237. package/dist/actiongroup/createActionGroup.d.ts.map +1 -1
  238. package/dist/autocomplete/createAutocomplete.d.ts +10 -7
  239. package/dist/autocomplete/createAutocomplete.d.ts.map +1 -1
  240. package/dist/breadcrumbs/createBreadcrumbs.d.ts.map +1 -1
  241. package/dist/button/createToggleButtonGroup.d.ts.map +1 -1
  242. package/dist/calendar/createCalendar.d.ts.map +1 -1
  243. package/dist/calendar/createCalendarCell.d.ts.map +1 -1
  244. package/dist/calendar/createCalendarGrid.d.ts.map +1 -1
  245. package/dist/calendar/createRangeCalendar.d.ts.map +1 -1
  246. package/dist/calendar/createRangeCalendarCell.d.ts.map +1 -1
  247. package/dist/calendar/intl/index.d.ts +1 -1
  248. package/dist/calendar/intl/index.d.ts.map +1 -1
  249. package/dist/collections/index.js +1 -1
  250. package/dist/collections/index.jsx +1 -1
  251. package/dist/color/createColorArea.d.ts.map +1 -1
  252. package/dist/color/createColorField.d.ts.map +1 -1
  253. package/dist/color/createColorSlider.d.ts.map +1 -1
  254. package/dist/color/createColorSwatch.d.ts.map +1 -1
  255. package/dist/color/createColorWheel.d.ts.map +1 -1
  256. package/dist/color/intl/index.d.ts +30 -0
  257. package/dist/color/intl/index.d.ts.map +1 -0
  258. package/dist/combobox/createComboBox.d.ts.map +1 -1
  259. package/dist/combobox/intl/generated-locales.d.ts +16 -0
  260. package/dist/combobox/intl/generated-locales.d.ts.map +1 -0
  261. package/dist/combobox/intl/index.d.ts +2 -2
  262. package/dist/combobox/intl/index.d.ts.map +1 -1
  263. package/dist/datepicker/createDateField.d.ts +45 -23
  264. package/dist/datepicker/createDateField.d.ts.map +1 -1
  265. package/dist/datepicker/createDatePicker.d.ts +34 -6
  266. package/dist/datepicker/createDatePicker.d.ts.map +1 -1
  267. package/dist/datepicker/createDatePickerGroup.d.ts +13 -13
  268. package/dist/datepicker/createDatePickerGroup.d.ts.map +1 -1
  269. package/dist/datepicker/createDateRangePicker.d.ts +55 -7
  270. package/dist/datepicker/createDateRangePicker.d.ts.map +1 -1
  271. package/dist/datepicker/createDateSegment.d.ts +6 -15
  272. package/dist/datepicker/createDateSegment.d.ts.map +1 -1
  273. package/dist/datepicker/createDisplayNames.d.ts +17 -0
  274. package/dist/datepicker/createDisplayNames.d.ts.map +1 -0
  275. package/dist/datepicker/createTimeField.d.ts +12 -49
  276. package/dist/datepicker/createTimeField.d.ts.map +1 -1
  277. package/dist/datepicker/index.d.ts +3 -3
  278. package/dist/datepicker/index.d.ts.map +1 -1
  279. package/dist/datepicker/index.js +2 -2
  280. package/dist/datepicker/index.jsx +2 -2
  281. package/dist/datepicker/intl.d.ts +12 -0
  282. package/dist/datepicker/intl.d.ts.map +1 -0
  283. package/dist/dnd/DragManager.d.ts +86 -0
  284. package/dist/dnd/DragManager.d.ts.map +1 -0
  285. package/dist/dnd/DropTargetKeyboardNavigation.d.ts +42 -0
  286. package/dist/dnd/DropTargetKeyboardNavigation.d.ts.map +1 -0
  287. package/dist/dnd/createDrag.d.ts.map +1 -1
  288. package/dist/dnd/createDraggableCollection.d.ts.map +1 -1
  289. package/dist/dnd/createDraggableItem.d.ts +12 -7
  290. package/dist/dnd/createDraggableItem.d.ts.map +1 -1
  291. package/dist/dnd/createDroppableCollection.d.ts +7 -15
  292. package/dist/dnd/createDroppableCollection.d.ts.map +1 -1
  293. package/dist/dnd/index.d.ts +5 -1
  294. package/dist/dnd/index.d.ts.map +1 -1
  295. package/dist/dnd/index.js +3 -2
  296. package/dist/dnd/index.jsx +3 -2
  297. package/dist/dnd/intl/index.d.ts +39 -0
  298. package/dist/dnd/intl/index.d.ts.map +1 -0
  299. package/dist/dnd/utils.d.ts +5 -0
  300. package/dist/dnd/utils.d.ts.map +1 -1
  301. package/dist/focus/FocusScope.d.ts +7 -0
  302. package/dist/focus/FocusScope.d.ts.map +1 -1
  303. package/dist/focus/index.d.ts +2 -1
  304. package/dist/focus/index.d.ts.map +1 -1
  305. package/dist/focus/index.js +3 -2
  306. package/dist/focus/index.jsx +3 -2
  307. package/dist/focus/virtualFocus.d.ts +26 -0
  308. package/dist/focus/virtualFocus.d.ts.map +1 -0
  309. package/dist/form/index.js +1 -1
  310. package/dist/form/index.jsx +1 -1
  311. package/dist/gridlist/createGridList.d.ts.map +1 -1
  312. package/dist/i18n/index.js +4 -2
  313. package/dist/i18n/index.jsx +4 -2
  314. package/dist/index.d.ts +3 -3
  315. package/dist/index.d.ts.map +1 -1
  316. package/dist/index.js +18 -12
  317. package/dist/index.jsx +18 -12
  318. package/dist/interactions/FocusableProvider.d.ts.map +1 -1
  319. package/dist/interactions/createFocus.d.ts.map +1 -1
  320. package/dist/interactions/createFocusWithin.d.ts.map +1 -1
  321. package/dist/interactions/createInteractionModality.d.ts.map +1 -1
  322. package/dist/interactions/index.js +1 -2
  323. package/dist/interactions/index.jsx +1 -2
  324. package/dist/label/createLabels.d.ts.map +1 -1
  325. package/dist/listbox/createListBox.d.ts.map +1 -1
  326. package/dist/listbox/createOption.d.ts +1 -1
  327. package/dist/listbox/createOption.d.ts.map +1 -1
  328. package/dist/live-announcer/index.js +1 -1
  329. package/dist/live-announcer/index.jsx +1 -1
  330. package/dist/select/createSelect.d.ts +2 -0
  331. package/dist/select/createSelect.d.ts.map +1 -1
  332. package/dist/selection/createSelectableItem.d.ts.map +1 -1
  333. package/dist/selection/index.js +2 -1
  334. package/dist/selection/index.jsx +2 -1
  335. package/dist/spinbutton/createSpinButton.d.ts +41 -0
  336. package/dist/spinbutton/createSpinButton.d.ts.map +1 -0
  337. package/dist/spinbutton/index.d.ts +3 -0
  338. package/dist/spinbutton/index.d.ts.map +1 -0
  339. package/dist/spinbutton/index.js +2 -0
  340. package/dist/spinbutton/index.jsx +2 -0
  341. package/dist/spinbutton/intl.d.ts +5 -0
  342. package/dist/spinbutton/intl.d.ts.map +1 -0
  343. package/dist/table/createTable.d.ts.map +1 -1
  344. package/dist/table/createTableColumnHeader.d.ts.map +1 -1
  345. package/dist/table/createTableRow.d.ts.map +1 -1
  346. package/dist/table/createTableSelectionCheckbox.d.ts.map +1 -1
  347. package/dist/table/types.d.ts +8 -0
  348. package/dist/table/types.d.ts.map +1 -1
  349. package/dist/table/utils.d.ts +15 -0
  350. package/dist/table/utils.d.ts.map +1 -0
  351. package/dist/tabs/createTabs.d.ts +1 -0
  352. package/dist/tabs/createTabs.d.ts.map +1 -1
  353. package/dist/tag/createTag.d.ts.map +1 -1
  354. package/dist/tag/createTagGroup.d.ts +7 -0
  355. package/dist/tag/createTagGroup.d.ts.map +1 -1
  356. package/dist/toolbar/createToolbar.d.ts.map +1 -1
  357. package/dist/tree/createTree.d.ts.map +1 -1
  358. package/dist/tree/createTreeSelectionCheckbox.d.ts.map +1 -1
  359. package/dist/utils/animation.d.ts.map +1 -1
  360. package/dist/utils/dom.d.ts +1 -0
  361. package/dist/utils/dom.d.ts.map +1 -1
  362. package/dist/utils/index.d.ts +1 -1
  363. package/dist/utils/index.d.ts.map +1 -1
  364. package/dist/utils/index.js +4 -3
  365. package/dist/utils/index.jsx +4 -3
  366. package/package.json +2 -2
  367. package/src/actiongroup/createActionGroup.ts +26 -109
  368. package/src/autocomplete/createAutocomplete.ts +136 -15
  369. package/src/breadcrumbs/createBreadcrumbs.ts +12 -4
  370. package/src/button/createToggleButtonGroup.ts +19 -14
  371. package/src/calendar/createCalendar.ts +3 -4
  372. package/src/calendar/createCalendarCell.ts +17 -3
  373. package/src/calendar/createCalendarGrid.ts +5 -4
  374. package/src/calendar/createRangeCalendar.ts +27 -17
  375. package/src/calendar/createRangeCalendarCell.ts +17 -3
  376. package/src/calendar/intl/index.ts +8 -0
  377. package/src/color/createColorArea.ts +17 -10
  378. package/src/color/createColorField.ts +8 -1
  379. package/src/color/createColorSlider.ts +1 -2
  380. package/src/color/createColorSwatch.ts +4 -2
  381. package/src/color/createColorWheel.ts +0 -6
  382. package/src/color/intl/index.ts +316 -0
  383. package/src/combobox/createComboBox.ts +35 -4
  384. package/src/combobox/intl/generated-locales.ts +635 -0
  385. package/src/combobox/intl/index.ts +8 -2
  386. package/src/datepicker/createDateField.ts +228 -213
  387. package/src/datepicker/createDatePicker.ts +157 -146
  388. package/src/datepicker/createDatePickerGroup.ts +88 -82
  389. package/src/datepicker/createDateRangePicker.ts +230 -179
  390. package/src/datepicker/createDateSegment.ts +386 -389
  391. package/src/datepicker/createDisplayNames.ts +45 -0
  392. package/src/datepicker/createTimeField.ts +36 -129
  393. package/src/datepicker/index.ts +13 -14
  394. package/src/datepicker/intl.ts +633 -0
  395. package/src/dnd/DragManager.ts +693 -0
  396. package/src/dnd/DropTargetKeyboardNavigation.ts +337 -0
  397. package/src/dnd/createDrag.ts +31 -5
  398. package/src/dnd/createDraggableCollection.ts +33 -15
  399. package/src/dnd/createDraggableItem.ts +92 -5
  400. package/src/dnd/createDroppableCollection.ts +487 -373
  401. package/src/dnd/index.ts +11 -0
  402. package/src/dnd/intl/ar-AE.json +29 -0
  403. package/src/dnd/intl/bg-BG.json +29 -0
  404. package/src/dnd/intl/cs-CZ.json +29 -0
  405. package/src/dnd/intl/da-DK.json +29 -0
  406. package/src/dnd/intl/de-DE.json +29 -0
  407. package/src/dnd/intl/el-GR.json +29 -0
  408. package/src/dnd/intl/en-US.json +29 -0
  409. package/src/dnd/intl/es-ES.json +29 -0
  410. package/src/dnd/intl/et-EE.json +29 -0
  411. package/src/dnd/intl/fi-FI.json +29 -0
  412. package/src/dnd/intl/fr-FR.json +29 -0
  413. package/src/dnd/intl/he-IL.json +29 -0
  414. package/src/dnd/intl/hr-HR.json +29 -0
  415. package/src/dnd/intl/hu-HU.json +29 -0
  416. package/src/dnd/intl/index.ts +139 -0
  417. package/src/dnd/intl/it-IT.json +29 -0
  418. package/src/dnd/intl/ja-JP.json +29 -0
  419. package/src/dnd/intl/ko-KR.json +29 -0
  420. package/src/dnd/intl/lt-LT.json +29 -0
  421. package/src/dnd/intl/lv-LV.json +29 -0
  422. package/src/dnd/intl/nb-NO.json +29 -0
  423. package/src/dnd/intl/nl-NL.json +29 -0
  424. package/src/dnd/intl/pl-PL.json +29 -0
  425. package/src/dnd/intl/pt-BR.json +29 -0
  426. package/src/dnd/intl/pt-PT.json +29 -0
  427. package/src/dnd/intl/ro-RO.json +29 -0
  428. package/src/dnd/intl/ru-RU.json +29 -0
  429. package/src/dnd/intl/sk-SK.json +29 -0
  430. package/src/dnd/intl/sl-SI.json +29 -0
  431. package/src/dnd/intl/sr-SP.json +29 -0
  432. package/src/dnd/intl/sv-SE.json +29 -0
  433. package/src/dnd/intl/tr-TR.json +29 -0
  434. package/src/dnd/intl/uk-UA.json +29 -0
  435. package/src/dnd/intl/zh-CN.json +29 -0
  436. package/src/dnd/intl/zh-TW.json +29 -0
  437. package/src/dnd/utils.ts +36 -0
  438. package/src/focus/FocusScope.tsx +120 -12
  439. package/src/focus/index.ts +8 -0
  440. package/src/focus/virtualFocus.ts +55 -0
  441. package/src/gridlist/createGridList.ts +52 -16
  442. package/src/index.ts +11 -3
  443. package/src/interactions/FocusableProvider.tsx +11 -6
  444. package/src/interactions/createFocus.ts +26 -21
  445. package/src/interactions/createFocusWithin.ts +23 -24
  446. package/src/interactions/createInteractionModality.ts +5 -3
  447. package/src/label/createLabels.ts +7 -4
  448. package/src/listbox/createListBox.ts +74 -2
  449. package/src/listbox/createOption.ts +16 -1
  450. package/src/select/createSelect.ts +23 -2
  451. package/src/selection/createSelectableItem.ts +14 -0
  452. package/src/spinbutton/createSpinButton.ts +163 -0
  453. package/src/spinbutton/index.ts +10 -0
  454. package/src/spinbutton/intl.ts +115 -0
  455. package/src/table/createTable.ts +26 -1
  456. package/src/table/createTableColumnHeader.ts +10 -0
  457. package/src/table/createTableRow.ts +10 -0
  458. package/src/table/createTableSelectionCheckbox.ts +24 -1
  459. package/src/table/types.ts +8 -0
  460. package/src/table/utils.ts +41 -0
  461. package/src/tabs/createTabs.ts +53 -12
  462. package/src/tag/createTag.ts +21 -32
  463. package/src/tag/createTagGroup.ts +92 -0
  464. package/src/toolbar/createToolbar.ts +6 -58
  465. package/src/tree/createTree.ts +69 -14
  466. package/src/tree/createTreeSelectionCheckbox.ts +14 -1
  467. package/src/utils/animation.ts +119 -27
  468. package/src/utils/dom.ts +3 -2
  469. package/src/utils/index.ts +2 -0
  470. package/dist/_chunk/createLongPress.js +0 -91
  471. package/dist/_chunk/createLongPress.js.map +0 -1
  472. package/dist/_chunk/createLongPress.jsx +0 -91
  473. package/dist/_chunk/createLongPress.jsx.map +0 -1
  474. package/dist/_chunk/form.js.map +0 -1
  475. package/dist/_chunk/form.jsx.map +0 -1
  476. package/dist/_chunk/live-announcer.js.map +0 -1
  477. package/dist/_chunk/live-announcer.jsx.map +0 -1
  478. package/dist/datepicker/createTimeSegment.d.ts +0 -29
  479. package/dist/datepicker/createTimeSegment.d.ts.map +0 -1
  480. package/src/datepicker/createTimeSegment.ts +0 -352
@@ -0,0 +1,153 @@
1
+ import { t as access } from "./reactivity.js";
2
+ import { n as createStringFormatter } from "./createStringFormatter.js";
3
+ import { n as clearAnnouncer, t as announce } from "./announce.js";
4
+ import { createEffect, createMemo } from "solid-js";
5
+ import { LocalizedStringDictionary } from "@internationalized/string";
6
+ //#region src/spinbutton/intl.ts
7
+ const spinButtonStrings = {
8
+ "ar-AE": { "Empty": `\u{641}\u{627}\u{631}\u{63A}` },
9
+ "bg-BG": { "Empty": `\u{418}\u{437}\u{43F}\u{440}\u{430}\u{437}\u{43D}\u{438}` },
10
+ "cs-CZ": { "Empty": `Pr\xe1zdn\xe9` },
11
+ "da-DK": { "Empty": `Tom` },
12
+ "de-DE": { "Empty": `Leer` },
13
+ "el-GR": { "Empty": `\u{386}\u{3B4}\u{3B5}\u{3B9}\u{3BF}` },
14
+ "en-US": { "Empty": `Empty` },
15
+ "es-ES": { "Empty": `Vac\xedo` },
16
+ "et-EE": { "Empty": `T\xfchjenda` },
17
+ "fi-FI": { "Empty": `Tyhj\xe4` },
18
+ "fr-FR": { "Empty": `Vide` },
19
+ "he-IL": { "Empty": `\u{5E8}\u{5D9}\u{5E7}` },
20
+ "hr-HR": { "Empty": `Prazno` },
21
+ "hu-HU": { "Empty": `\xdcres` },
22
+ "it-IT": { "Empty": `Vuoto` },
23
+ "ja-JP": { "Empty": `\u{7A7A}` },
24
+ "ko-KR": { "Empty": `\u{BE44}\u{C5B4} \u{C788}\u{C74C}` },
25
+ "lt-LT": { "Empty": `Tu\u{161}\u{10D}ias` },
26
+ "lv-LV": { "Empty": `Tuk\u{161}s` },
27
+ "nb-NO": { "Empty": `Tom` },
28
+ "nl-NL": { "Empty": `Leeg` },
29
+ "pl-PL": { "Empty": `Pusty` },
30
+ "pt-BR": { "Empty": `Vazio` },
31
+ "pt-PT": { "Empty": `Vazio` },
32
+ "ro-RO": { "Empty": `Gol` },
33
+ "ru-RU": { "Empty": `\u{41D}\u{435} \u{437}\u{430}\u{43F}\u{43E}\u{43B}\u{43D}\u{435}\u{43D}\u{43E}` },
34
+ "sk-SK": { "Empty": `Pr\xe1zdne` },
35
+ "sl-SI": { "Empty": `Prazen` },
36
+ "sr-SP": { "Empty": `Prazno` },
37
+ "sv-SE": { "Empty": `Tomt` },
38
+ "tr-TR": { "Empty": `Bo\u{15F}` },
39
+ "uk-UA": { "Empty": `\u{41F}\u{443}\u{441}\u{442}\u{43E}` },
40
+ "zh-CN": { "Empty": `\u{7A7A}` },
41
+ "zh-TW": { "Empty": `\u{7A7A}\u{767D}` }
42
+ };
43
+ const spinButtonDictionary = new LocalizedStringDictionary(spinButtonStrings);
44
+ //#endregion
45
+ //#region src/spinbutton/createSpinButton.ts
46
+ /**
47
+ * createSpinButton hook for Solidaria
48
+ *
49
+ * Provides the ARIA spinbutton props and live-region announcement behaviour for
50
+ * a single spinbutton (e.g. a date-field segment). Port of the keyboard/announce
51
+ * portion of @react-aria/spinbutton `useSpinButton`. The pointer press-and-hold
52
+ * button machinery (increment/decrement buttons) is intentionally omitted — date
53
+ * segments drive value changes through the keyboard only.
54
+ */
55
+ /**
56
+ * Provides the behaviour and accessibility implementation for a spinbutton.
57
+ */
58
+ function createSpinButton(props) {
59
+ const getProps = () => access(props);
60
+ const stringFormatter = createStringFormatter(spinButtonStrings, "@react-aria/spinbutton");
61
+ const onKeyDown = (e) => {
62
+ const p = getProps();
63
+ if (e.ctrlKey || e.metaKey || e.shiftKey || e.altKey || p.isReadOnly || e.isComposing) return;
64
+ switch (e.key) {
65
+ case "PageUp":
66
+ if (p.onIncrementPage) {
67
+ e.preventDefault();
68
+ p.onIncrementPage();
69
+ } else if (p.onIncrement) {
70
+ e.preventDefault();
71
+ p.onIncrement();
72
+ }
73
+ break;
74
+ case "ArrowUp":
75
+ case "Up":
76
+ if (p.onIncrement) {
77
+ e.preventDefault();
78
+ p.onIncrement();
79
+ }
80
+ break;
81
+ case "PageDown":
82
+ if (p.onDecrementPage) {
83
+ e.preventDefault();
84
+ p.onDecrementPage();
85
+ } else if (p.onDecrement) {
86
+ e.preventDefault();
87
+ p.onDecrement();
88
+ }
89
+ break;
90
+ case "ArrowDown":
91
+ case "Down":
92
+ if (p.onDecrement) {
93
+ e.preventDefault();
94
+ p.onDecrement();
95
+ }
96
+ break;
97
+ case "Home":
98
+ if (p.onDecrementToMin) {
99
+ e.preventDefault();
100
+ p.onDecrementToMin();
101
+ }
102
+ break;
103
+ case "End":
104
+ if (p.onIncrementToMax) {
105
+ e.preventDefault();
106
+ p.onIncrementToMax();
107
+ }
108
+ break;
109
+ }
110
+ };
111
+ let isFocused = false;
112
+ const onFocus = () => {
113
+ isFocused = true;
114
+ };
115
+ const onBlur = () => {
116
+ isFocused = false;
117
+ };
118
+ const ariaTextValue = createMemo(() => {
119
+ const p = getProps();
120
+ return p.textValue === "" ? stringFormatter().format("Empty") : (p.textValue || `${p.value}`).replace("-", "−");
121
+ });
122
+ createEffect(() => {
123
+ const value = ariaTextValue();
124
+ if (isFocused) {
125
+ clearAnnouncer("assertive");
126
+ announce(value, "assertive");
127
+ }
128
+ });
129
+ const spinButtonProps = createMemo(() => {
130
+ const p = getProps();
131
+ const value = p.value;
132
+ return {
133
+ role: "spinbutton",
134
+ "aria-valuenow": value !== void 0 && !isNaN(value) ? value : void 0,
135
+ "aria-valuetext": ariaTextValue(),
136
+ "aria-valuemin": p.minValue,
137
+ "aria-valuemax": p.maxValue,
138
+ "aria-disabled": p.isDisabled || void 0,
139
+ "aria-readonly": p.isReadOnly || void 0,
140
+ "aria-required": p.isRequired || void 0,
141
+ onKeyDown,
142
+ onFocus,
143
+ onBlur
144
+ };
145
+ });
146
+ return { get spinButtonProps() {
147
+ return spinButtonProps();
148
+ } };
149
+ }
150
+ //#endregion
151
+ export { spinButtonDictionary as n, spinButtonStrings as r, createSpinButton as t };
152
+
153
+ //# sourceMappingURL=spinbutton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spinbutton.js","names":[],"sources":["../../src/spinbutton/intl.ts","../../src/spinbutton/createSpinButton.ts"],"sourcesContent":["// Spinbutton announcement catalog, ported verbatim from @react-aria/spinbutton's\n// intl/*.json (34 locales). Keep in sync with the vendored react-spectrum source on\n// every pin bump.\nimport { LocalizedStringDictionary } from \"@internationalized/string\";\n\nexport type SpinButtonStringKey = \"Empty\";\n\nexport const spinButtonStrings: Record<string, Record<SpinButtonStringKey, string>> = {\n \"ar-AE\": {\n \"Empty\": `\\u{641}\\u{627}\\u{631}\\u{63A}`\n },\n \"bg-BG\": {\n \"Empty\": `\\u{418}\\u{437}\\u{43F}\\u{440}\\u{430}\\u{437}\\u{43D}\\u{438}`\n },\n \"cs-CZ\": {\n \"Empty\": `Pr\\xe1zdn\\xe9`\n },\n \"da-DK\": {\n \"Empty\": `Tom`\n },\n \"de-DE\": {\n \"Empty\": `Leer`\n },\n \"el-GR\": {\n \"Empty\": `\\u{386}\\u{3B4}\\u{3B5}\\u{3B9}\\u{3BF}`\n },\n \"en-US\": {\n \"Empty\": `Empty`\n },\n \"es-ES\": {\n \"Empty\": `Vac\\xedo`\n },\n \"et-EE\": {\n \"Empty\": `T\\xfchjenda`\n },\n \"fi-FI\": {\n \"Empty\": `Tyhj\\xe4`\n },\n \"fr-FR\": {\n \"Empty\": `Vide`\n },\n \"he-IL\": {\n \"Empty\": `\\u{5E8}\\u{5D9}\\u{5E7}`\n },\n \"hr-HR\": {\n \"Empty\": `Prazno`\n },\n \"hu-HU\": {\n \"Empty\": `\\xdcres`\n },\n \"it-IT\": {\n \"Empty\": `Vuoto`\n },\n \"ja-JP\": {\n \"Empty\": `\\u{7A7A}`\n },\n \"ko-KR\": {\n \"Empty\": `\\u{BE44}\\u{C5B4} \\u{C788}\\u{C74C}`\n },\n \"lt-LT\": {\n \"Empty\": `Tu\\u{161}\\u{10D}ias`\n },\n \"lv-LV\": {\n \"Empty\": `Tuk\\u{161}s`\n },\n \"nb-NO\": {\n \"Empty\": `Tom`\n },\n \"nl-NL\": {\n \"Empty\": `Leeg`\n },\n \"pl-PL\": {\n \"Empty\": `Pusty`\n },\n \"pt-BR\": {\n \"Empty\": `Vazio`\n },\n \"pt-PT\": {\n \"Empty\": `Vazio`\n },\n \"ro-RO\": {\n \"Empty\": `Gol`\n },\n \"ru-RU\": {\n \"Empty\": `\\u{41D}\\u{435} \\u{437}\\u{430}\\u{43F}\\u{43E}\\u{43B}\\u{43D}\\u{435}\\u{43D}\\u{43E}`\n },\n \"sk-SK\": {\n \"Empty\": `Pr\\xe1zdne`\n },\n \"sl-SI\": {\n \"Empty\": `Prazen`\n },\n \"sr-SP\": {\n \"Empty\": `Prazno`\n },\n \"sv-SE\": {\n \"Empty\": `Tomt`\n },\n \"tr-TR\": {\n \"Empty\": `Bo\\u{15F}`\n },\n \"uk-UA\": {\n \"Empty\": `\\u{41F}\\u{443}\\u{441}\\u{442}\\u{43E}`\n },\n \"zh-CN\": {\n \"Empty\": `\\u{7A7A}`\n },\n \"zh-TW\": {\n \"Empty\": `\\u{7A7A}\\u{767D}`\n },\n};\n\nexport const spinButtonDictionary = new LocalizedStringDictionary<SpinButtonStringKey, string>(\n spinButtonStrings,\n);\n","/**\n * createSpinButton hook for Solidaria\n *\n * Provides the ARIA spinbutton props and live-region announcement behaviour for\n * a single spinbutton (e.g. a date-field segment). Port of the keyboard/announce\n * portion of @react-aria/spinbutton `useSpinButton`. The pointer press-and-hold\n * button machinery (increment/decrement buttons) is intentionally omitted — date\n * segments drive value changes through the keyboard only.\n */\n\nimport { createMemo, createEffect } from \"solid-js\";\nimport { access, type MaybeAccessor } from \"../utils/reactivity\";\nimport { createStringFormatter } from \"../i18n\";\nimport { announce, clearAnnouncer } from \"../live-announcer\";\nimport { spinButtonStrings, type SpinButtonStringKey } from \"./intl\";\n\nexport interface SpinButtonProps {\n /** The current value of the spinbutton. */\n value?: number;\n /** A human-readable text alternative for the value. */\n textValue?: string;\n /** The smallest value allowed. */\n minValue?: number;\n /** The largest value allowed. */\n maxValue?: number;\n /** Whether the spinbutton is disabled. */\n isDisabled?: boolean;\n /** Whether the spinbutton is read only. */\n isReadOnly?: boolean;\n /** Whether the spinbutton is required. */\n isRequired?: boolean;\n onIncrement?: () => void;\n onIncrementPage?: () => void;\n onDecrement?: () => void;\n onDecrementPage?: () => void;\n onDecrementToMin?: () => void;\n onIncrementToMax?: () => void;\n}\n\nexport interface SpinButtonAria {\n /** Props for the spinbutton element. */\n spinButtonProps: Record<string, unknown>;\n}\n\n/**\n * Provides the behaviour and accessibility implementation for a spinbutton.\n */\nexport function createSpinButton(props: MaybeAccessor<SpinButtonProps>): SpinButtonAria {\n const getProps = () => access(props);\n const stringFormatter = createStringFormatter<SpinButtonStringKey>(\n spinButtonStrings,\n \"@react-aria/spinbutton\",\n );\n\n const onKeyDown = (e: KeyboardEvent) => {\n const p = getProps();\n if (e.ctrlKey || e.metaKey || e.shiftKey || e.altKey || p.isReadOnly || e.isComposing) {\n return;\n }\n\n switch (e.key) {\n // Upstream deliberately falls through PageUp → ArrowUp when no page\n // handler exists; our tsconfig forbids lexical fallthrough, so the\n // PageUp case mirrors that branch inline instead.\n case \"PageUp\":\n if (p.onIncrementPage) {\n e.preventDefault();\n p.onIncrementPage();\n } else if (p.onIncrement) {\n e.preventDefault();\n p.onIncrement();\n }\n break;\n case \"ArrowUp\":\n case \"Up\":\n if (p.onIncrement) {\n e.preventDefault();\n p.onIncrement();\n }\n break;\n // Same faithful fallthrough as PageUp, mirrored inline (PageDown → ArrowDown).\n case \"PageDown\":\n if (p.onDecrementPage) {\n e.preventDefault();\n p.onDecrementPage();\n } else if (p.onDecrement) {\n e.preventDefault();\n p.onDecrement();\n }\n break;\n case \"ArrowDown\":\n case \"Down\":\n if (p.onDecrement) {\n e.preventDefault();\n p.onDecrement();\n }\n break;\n case \"Home\":\n if (p.onDecrementToMin) {\n e.preventDefault();\n p.onDecrementToMin();\n }\n break;\n case \"End\":\n if (p.onIncrementToMax) {\n e.preventDefault();\n p.onIncrementToMax();\n }\n break;\n }\n };\n\n // Non-reactive focus flag — matches upstream's `isFocused` ref. Toggling it must\n // NOT re-run the announce effect; only a change in `ariaTextValue` announces.\n let isFocused = false;\n const onFocus = () => {\n isFocused = true;\n };\n const onBlur = () => {\n isFocused = false;\n };\n\n // Replace Unicode hyphen-minus (U+002D) with minus sign (U+2212) so VoiceOver\n // announces it as \"minus\". Replace the empty string with the word \"Empty\".\n const ariaTextValue = createMemo(() => {\n const p = getProps();\n return p.textValue === \"\"\n ? stringFormatter().format(\"Empty\")\n : (p.textValue || `${p.value}`).replace(\"-\", \"−\");\n });\n\n createEffect(() => {\n const value = ariaTextValue();\n if (isFocused) {\n clearAnnouncer(\"assertive\");\n announce(value, \"assertive\");\n }\n });\n\n const spinButtonProps = createMemo(() => {\n const p = getProps();\n const value = p.value;\n return {\n role: \"spinbutton\",\n \"aria-valuenow\": value !== undefined && !isNaN(value) ? value : undefined,\n \"aria-valuetext\": ariaTextValue(),\n \"aria-valuemin\": p.minValue,\n \"aria-valuemax\": p.maxValue,\n \"aria-disabled\": p.isDisabled || undefined,\n \"aria-readonly\": p.isReadOnly || undefined,\n \"aria-required\": p.isRequired || undefined,\n onKeyDown,\n onFocus,\n onBlur,\n };\n });\n\n return {\n get spinButtonProps() {\n return spinButtonProps();\n },\n };\n}\n"],"mappings":";;;;;;AAOA,MAAa,oBAAyE;CACpF,SAAS,EACT,SAAS,+BACT;CACA,SAAS,EACT,SAAS,2DACT;CACA,SAAS,EACT,SAAS,gBACT;CACA,SAAS,EACT,SAAS,MACT;CACA,SAAS,EACT,SAAS,OACT;CACA,SAAS,EACT,SAAS,sCACT;CACA,SAAS,EACT,SAAS,QACT;CACA,SAAS,EACT,SAAS,WACT;CACA,SAAS,EACT,SAAS,cACT;CACA,SAAS,EACT,SAAS,WACT;CACA,SAAS,EACT,SAAS,OACT;CACA,SAAS,EACT,SAAS,wBACT;CACA,SAAS,EACT,SAAS,SACT;CACA,SAAS,EACT,SAAS,UACT;CACA,SAAS,EACT,SAAS,QACT;CACA,SAAS,EACT,SAAS,WACT;CACA,SAAS,EACT,SAAS,oCACT;CACA,SAAS,EACT,SAAS,sBACT;CACA,SAAS,EACT,SAAS,cACT;CACA,SAAS,EACT,SAAS,MACT;CACA,SAAS,EACT,SAAS,OACT;CACA,SAAS,EACT,SAAS,QACT;CACA,SAAS,EACT,SAAS,QACT;CACA,SAAS,EACT,SAAS,QACT;CACA,SAAS,EACT,SAAS,MACT;CACA,SAAS,EACT,SAAS,iFACT;CACA,SAAS,EACT,SAAS,aACT;CACA,SAAS,EACT,SAAS,SACT;CACA,SAAS,EACT,SAAS,SACT;CACA,SAAS,EACT,SAAS,OACT;CACA,SAAS,EACT,SAAS,YACT;CACA,SAAS,EACT,SAAS,sCACT;CACA,SAAS,EACT,SAAS,WACT;CACA,SAAS,EACT,SAAS,mBACT;AACF;AAEA,MAAa,uBAAuB,IAAI,0BACtC,iBACF;;;;;;;;;;;;;;;ACnEA,SAAgB,iBAAiB,OAAuD;CACtF,MAAM,iBAAiB,OAAO,KAAK;CACnC,MAAM,kBAAkB,sBACtB,mBACA,wBACF;CAEA,MAAM,aAAa,MAAqB;EACtC,MAAM,IAAI,SAAS;EACnB,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,aACxE;EAGF,QAAQ,EAAE,KAAV;GAIE,KAAK;IACH,IAAI,EAAE,iBAAiB;KACrB,EAAE,eAAe;KACjB,EAAE,gBAAgB;IACpB,OAAO,IAAI,EAAE,aAAa;KACxB,EAAE,eAAe;KACjB,EAAE,YAAY;IAChB;IACA;GACF,KAAK;GACL,KAAK;IACH,IAAI,EAAE,aAAa;KACjB,EAAE,eAAe;KACjB,EAAE,YAAY;IAChB;IACA;GAEF,KAAK;IACH,IAAI,EAAE,iBAAiB;KACrB,EAAE,eAAe;KACjB,EAAE,gBAAgB;IACpB,OAAO,IAAI,EAAE,aAAa;KACxB,EAAE,eAAe;KACjB,EAAE,YAAY;IAChB;IACA;GACF,KAAK;GACL,KAAK;IACH,IAAI,EAAE,aAAa;KACjB,EAAE,eAAe;KACjB,EAAE,YAAY;IAChB;IACA;GACF,KAAK;IACH,IAAI,EAAE,kBAAkB;KACtB,EAAE,eAAe;KACjB,EAAE,iBAAiB;IACrB;IACA;GACF,KAAK;IACH,IAAI,EAAE,kBAAkB;KACtB,EAAE,eAAe;KACjB,EAAE,iBAAiB;IACrB;IACA;EACJ;CACF;CAIA,IAAI,YAAY;CAChB,MAAM,gBAAgB;EACpB,YAAY;CACd;CACA,MAAM,eAAe;EACnB,YAAY;CACd;CAIA,MAAM,gBAAgB,iBAAiB;EACrC,MAAM,IAAI,SAAS;EACnB,OAAO,EAAE,cAAc,KACnB,gBAAgB,CAAC,CAAC,OAAO,OAAO,KAC/B,EAAE,aAAa,GAAG,EAAE,QAAA,CAAS,QAAQ,KAAK,GAAG;CACpD,CAAC;CAED,mBAAmB;EACjB,MAAM,QAAQ,cAAc;EAC5B,IAAI,WAAW;GACb,eAAe,WAAW;GAC1B,SAAS,OAAO,WAAW;EAC7B;CACF,CAAC;CAED,MAAM,kBAAkB,iBAAiB;EACvC,MAAM,IAAI,SAAS;EACnB,MAAM,QAAQ,EAAE;EAChB,OAAO;GACL,MAAM;GACN,iBAAiB,UAAU,KAAA,KAAa,CAAC,MAAM,KAAK,IAAI,QAAQ,KAAA;GAChE,kBAAkB,cAAc;GAChC,iBAAiB,EAAE;GACnB,iBAAiB,EAAE;GACnB,iBAAiB,EAAE,cAAc,KAAA;GACjC,iBAAiB,EAAE,cAAc,KAAA;GACjC,iBAAiB,EAAE,cAAc,KAAA;GACjC;GACA;GACA;EACF;CACF,CAAC;CAED,OAAO,EACL,IAAI,kBAAkB;EACpB,OAAO,gBAAgB;CACzB,EACF;AACF"}
@@ -0,0 +1,153 @@
1
+ import { t as access } from "./reactivity.jsx";
2
+ import { n as createStringFormatter } from "./createStringFormatter.jsx";
3
+ import { n as clearAnnouncer, t as announce } from "./announce.jsx";
4
+ import { createEffect, createMemo } from "solid-js";
5
+ import { LocalizedStringDictionary } from "@internationalized/string";
6
+ //#region src/spinbutton/intl.ts
7
+ const spinButtonStrings = {
8
+ "ar-AE": { "Empty": `\u{641}\u{627}\u{631}\u{63A}` },
9
+ "bg-BG": { "Empty": `\u{418}\u{437}\u{43F}\u{440}\u{430}\u{437}\u{43D}\u{438}` },
10
+ "cs-CZ": { "Empty": `Pr\xe1zdn\xe9` },
11
+ "da-DK": { "Empty": `Tom` },
12
+ "de-DE": { "Empty": `Leer` },
13
+ "el-GR": { "Empty": `\u{386}\u{3B4}\u{3B5}\u{3B9}\u{3BF}` },
14
+ "en-US": { "Empty": `Empty` },
15
+ "es-ES": { "Empty": `Vac\xedo` },
16
+ "et-EE": { "Empty": `T\xfchjenda` },
17
+ "fi-FI": { "Empty": `Tyhj\xe4` },
18
+ "fr-FR": { "Empty": `Vide` },
19
+ "he-IL": { "Empty": `\u{5E8}\u{5D9}\u{5E7}` },
20
+ "hr-HR": { "Empty": `Prazno` },
21
+ "hu-HU": { "Empty": `\xdcres` },
22
+ "it-IT": { "Empty": `Vuoto` },
23
+ "ja-JP": { "Empty": `\u{7A7A}` },
24
+ "ko-KR": { "Empty": `\u{BE44}\u{C5B4} \u{C788}\u{C74C}` },
25
+ "lt-LT": { "Empty": `Tu\u{161}\u{10D}ias` },
26
+ "lv-LV": { "Empty": `Tuk\u{161}s` },
27
+ "nb-NO": { "Empty": `Tom` },
28
+ "nl-NL": { "Empty": `Leeg` },
29
+ "pl-PL": { "Empty": `Pusty` },
30
+ "pt-BR": { "Empty": `Vazio` },
31
+ "pt-PT": { "Empty": `Vazio` },
32
+ "ro-RO": { "Empty": `Gol` },
33
+ "ru-RU": { "Empty": `\u{41D}\u{435} \u{437}\u{430}\u{43F}\u{43E}\u{43B}\u{43D}\u{435}\u{43D}\u{43E}` },
34
+ "sk-SK": { "Empty": `Pr\xe1zdne` },
35
+ "sl-SI": { "Empty": `Prazen` },
36
+ "sr-SP": { "Empty": `Prazno` },
37
+ "sv-SE": { "Empty": `Tomt` },
38
+ "tr-TR": { "Empty": `Bo\u{15F}` },
39
+ "uk-UA": { "Empty": `\u{41F}\u{443}\u{441}\u{442}\u{43E}` },
40
+ "zh-CN": { "Empty": `\u{7A7A}` },
41
+ "zh-TW": { "Empty": `\u{7A7A}\u{767D}` }
42
+ };
43
+ const spinButtonDictionary = new LocalizedStringDictionary(spinButtonStrings);
44
+ //#endregion
45
+ //#region src/spinbutton/createSpinButton.ts
46
+ /**
47
+ * createSpinButton hook for Solidaria
48
+ *
49
+ * Provides the ARIA spinbutton props and live-region announcement behaviour for
50
+ * a single spinbutton (e.g. a date-field segment). Port of the keyboard/announce
51
+ * portion of @react-aria/spinbutton `useSpinButton`. The pointer press-and-hold
52
+ * button machinery (increment/decrement buttons) is intentionally omitted — date
53
+ * segments drive value changes through the keyboard only.
54
+ */
55
+ /**
56
+ * Provides the behaviour and accessibility implementation for a spinbutton.
57
+ */
58
+ function createSpinButton(props) {
59
+ const getProps = () => access(props);
60
+ const stringFormatter = createStringFormatter(spinButtonStrings, "@react-aria/spinbutton");
61
+ const onKeyDown = (e) => {
62
+ const p = getProps();
63
+ if (e.ctrlKey || e.metaKey || e.shiftKey || e.altKey || p.isReadOnly || e.isComposing) return;
64
+ switch (e.key) {
65
+ case "PageUp":
66
+ if (p.onIncrementPage) {
67
+ e.preventDefault();
68
+ p.onIncrementPage();
69
+ } else if (p.onIncrement) {
70
+ e.preventDefault();
71
+ p.onIncrement();
72
+ }
73
+ break;
74
+ case "ArrowUp":
75
+ case "Up":
76
+ if (p.onIncrement) {
77
+ e.preventDefault();
78
+ p.onIncrement();
79
+ }
80
+ break;
81
+ case "PageDown":
82
+ if (p.onDecrementPage) {
83
+ e.preventDefault();
84
+ p.onDecrementPage();
85
+ } else if (p.onDecrement) {
86
+ e.preventDefault();
87
+ p.onDecrement();
88
+ }
89
+ break;
90
+ case "ArrowDown":
91
+ case "Down":
92
+ if (p.onDecrement) {
93
+ e.preventDefault();
94
+ p.onDecrement();
95
+ }
96
+ break;
97
+ case "Home":
98
+ if (p.onDecrementToMin) {
99
+ e.preventDefault();
100
+ p.onDecrementToMin();
101
+ }
102
+ break;
103
+ case "End":
104
+ if (p.onIncrementToMax) {
105
+ e.preventDefault();
106
+ p.onIncrementToMax();
107
+ }
108
+ break;
109
+ }
110
+ };
111
+ let isFocused = false;
112
+ const onFocus = () => {
113
+ isFocused = true;
114
+ };
115
+ const onBlur = () => {
116
+ isFocused = false;
117
+ };
118
+ const ariaTextValue = createMemo(() => {
119
+ const p = getProps();
120
+ return p.textValue === "" ? stringFormatter().format("Empty") : (p.textValue || `${p.value}`).replace("-", "−");
121
+ });
122
+ createEffect(() => {
123
+ const value = ariaTextValue();
124
+ if (isFocused) {
125
+ clearAnnouncer("assertive");
126
+ announce(value, "assertive");
127
+ }
128
+ });
129
+ const spinButtonProps = createMemo(() => {
130
+ const p = getProps();
131
+ const value = p.value;
132
+ return {
133
+ role: "spinbutton",
134
+ "aria-valuenow": value !== void 0 && !isNaN(value) ? value : void 0,
135
+ "aria-valuetext": ariaTextValue(),
136
+ "aria-valuemin": p.minValue,
137
+ "aria-valuemax": p.maxValue,
138
+ "aria-disabled": p.isDisabled || void 0,
139
+ "aria-readonly": p.isReadOnly || void 0,
140
+ "aria-required": p.isRequired || void 0,
141
+ onKeyDown,
142
+ onFocus,
143
+ onBlur
144
+ };
145
+ });
146
+ return { get spinButtonProps() {
147
+ return spinButtonProps();
148
+ } };
149
+ }
150
+ //#endregion
151
+ export { spinButtonDictionary as n, spinButtonStrings as r, createSpinButton as t };
152
+
153
+ //# sourceMappingURL=spinbutton.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spinbutton.jsx","names":[],"sources":["../../src/spinbutton/intl.ts","../../src/spinbutton/createSpinButton.ts"],"sourcesContent":["// Spinbutton announcement catalog, ported verbatim from @react-aria/spinbutton's\n// intl/*.json (34 locales). Keep in sync with the vendored react-spectrum source on\n// every pin bump.\nimport { LocalizedStringDictionary } from \"@internationalized/string\";\n\nexport type SpinButtonStringKey = \"Empty\";\n\nexport const spinButtonStrings: Record<string, Record<SpinButtonStringKey, string>> = {\n \"ar-AE\": {\n \"Empty\": `\\u{641}\\u{627}\\u{631}\\u{63A}`\n },\n \"bg-BG\": {\n \"Empty\": `\\u{418}\\u{437}\\u{43F}\\u{440}\\u{430}\\u{437}\\u{43D}\\u{438}`\n },\n \"cs-CZ\": {\n \"Empty\": `Pr\\xe1zdn\\xe9`\n },\n \"da-DK\": {\n \"Empty\": `Tom`\n },\n \"de-DE\": {\n \"Empty\": `Leer`\n },\n \"el-GR\": {\n \"Empty\": `\\u{386}\\u{3B4}\\u{3B5}\\u{3B9}\\u{3BF}`\n },\n \"en-US\": {\n \"Empty\": `Empty`\n },\n \"es-ES\": {\n \"Empty\": `Vac\\xedo`\n },\n \"et-EE\": {\n \"Empty\": `T\\xfchjenda`\n },\n \"fi-FI\": {\n \"Empty\": `Tyhj\\xe4`\n },\n \"fr-FR\": {\n \"Empty\": `Vide`\n },\n \"he-IL\": {\n \"Empty\": `\\u{5E8}\\u{5D9}\\u{5E7}`\n },\n \"hr-HR\": {\n \"Empty\": `Prazno`\n },\n \"hu-HU\": {\n \"Empty\": `\\xdcres`\n },\n \"it-IT\": {\n \"Empty\": `Vuoto`\n },\n \"ja-JP\": {\n \"Empty\": `\\u{7A7A}`\n },\n \"ko-KR\": {\n \"Empty\": `\\u{BE44}\\u{C5B4} \\u{C788}\\u{C74C}`\n },\n \"lt-LT\": {\n \"Empty\": `Tu\\u{161}\\u{10D}ias`\n },\n \"lv-LV\": {\n \"Empty\": `Tuk\\u{161}s`\n },\n \"nb-NO\": {\n \"Empty\": `Tom`\n },\n \"nl-NL\": {\n \"Empty\": `Leeg`\n },\n \"pl-PL\": {\n \"Empty\": `Pusty`\n },\n \"pt-BR\": {\n \"Empty\": `Vazio`\n },\n \"pt-PT\": {\n \"Empty\": `Vazio`\n },\n \"ro-RO\": {\n \"Empty\": `Gol`\n },\n \"ru-RU\": {\n \"Empty\": `\\u{41D}\\u{435} \\u{437}\\u{430}\\u{43F}\\u{43E}\\u{43B}\\u{43D}\\u{435}\\u{43D}\\u{43E}`\n },\n \"sk-SK\": {\n \"Empty\": `Pr\\xe1zdne`\n },\n \"sl-SI\": {\n \"Empty\": `Prazen`\n },\n \"sr-SP\": {\n \"Empty\": `Prazno`\n },\n \"sv-SE\": {\n \"Empty\": `Tomt`\n },\n \"tr-TR\": {\n \"Empty\": `Bo\\u{15F}`\n },\n \"uk-UA\": {\n \"Empty\": `\\u{41F}\\u{443}\\u{441}\\u{442}\\u{43E}`\n },\n \"zh-CN\": {\n \"Empty\": `\\u{7A7A}`\n },\n \"zh-TW\": {\n \"Empty\": `\\u{7A7A}\\u{767D}`\n },\n};\n\nexport const spinButtonDictionary = new LocalizedStringDictionary<SpinButtonStringKey, string>(\n spinButtonStrings,\n);\n","/**\n * createSpinButton hook for Solidaria\n *\n * Provides the ARIA spinbutton props and live-region announcement behaviour for\n * a single spinbutton (e.g. a date-field segment). Port of the keyboard/announce\n * portion of @react-aria/spinbutton `useSpinButton`. The pointer press-and-hold\n * button machinery (increment/decrement buttons) is intentionally omitted — date\n * segments drive value changes through the keyboard only.\n */\n\nimport { createMemo, createEffect } from \"solid-js\";\nimport { access, type MaybeAccessor } from \"../utils/reactivity\";\nimport { createStringFormatter } from \"../i18n\";\nimport { announce, clearAnnouncer } from \"../live-announcer\";\nimport { spinButtonStrings, type SpinButtonStringKey } from \"./intl\";\n\nexport interface SpinButtonProps {\n /** The current value of the spinbutton. */\n value?: number;\n /** A human-readable text alternative for the value. */\n textValue?: string;\n /** The smallest value allowed. */\n minValue?: number;\n /** The largest value allowed. */\n maxValue?: number;\n /** Whether the spinbutton is disabled. */\n isDisabled?: boolean;\n /** Whether the spinbutton is read only. */\n isReadOnly?: boolean;\n /** Whether the spinbutton is required. */\n isRequired?: boolean;\n onIncrement?: () => void;\n onIncrementPage?: () => void;\n onDecrement?: () => void;\n onDecrementPage?: () => void;\n onDecrementToMin?: () => void;\n onIncrementToMax?: () => void;\n}\n\nexport interface SpinButtonAria {\n /** Props for the spinbutton element. */\n spinButtonProps: Record<string, unknown>;\n}\n\n/**\n * Provides the behaviour and accessibility implementation for a spinbutton.\n */\nexport function createSpinButton(props: MaybeAccessor<SpinButtonProps>): SpinButtonAria {\n const getProps = () => access(props);\n const stringFormatter = createStringFormatter<SpinButtonStringKey>(\n spinButtonStrings,\n \"@react-aria/spinbutton\",\n );\n\n const onKeyDown = (e: KeyboardEvent) => {\n const p = getProps();\n if (e.ctrlKey || e.metaKey || e.shiftKey || e.altKey || p.isReadOnly || e.isComposing) {\n return;\n }\n\n switch (e.key) {\n // Upstream deliberately falls through PageUp → ArrowUp when no page\n // handler exists; our tsconfig forbids lexical fallthrough, so the\n // PageUp case mirrors that branch inline instead.\n case \"PageUp\":\n if (p.onIncrementPage) {\n e.preventDefault();\n p.onIncrementPage();\n } else if (p.onIncrement) {\n e.preventDefault();\n p.onIncrement();\n }\n break;\n case \"ArrowUp\":\n case \"Up\":\n if (p.onIncrement) {\n e.preventDefault();\n p.onIncrement();\n }\n break;\n // Same faithful fallthrough as PageUp, mirrored inline (PageDown → ArrowDown).\n case \"PageDown\":\n if (p.onDecrementPage) {\n e.preventDefault();\n p.onDecrementPage();\n } else if (p.onDecrement) {\n e.preventDefault();\n p.onDecrement();\n }\n break;\n case \"ArrowDown\":\n case \"Down\":\n if (p.onDecrement) {\n e.preventDefault();\n p.onDecrement();\n }\n break;\n case \"Home\":\n if (p.onDecrementToMin) {\n e.preventDefault();\n p.onDecrementToMin();\n }\n break;\n case \"End\":\n if (p.onIncrementToMax) {\n e.preventDefault();\n p.onIncrementToMax();\n }\n break;\n }\n };\n\n // Non-reactive focus flag — matches upstream's `isFocused` ref. Toggling it must\n // NOT re-run the announce effect; only a change in `ariaTextValue` announces.\n let isFocused = false;\n const onFocus = () => {\n isFocused = true;\n };\n const onBlur = () => {\n isFocused = false;\n };\n\n // Replace Unicode hyphen-minus (U+002D) with minus sign (U+2212) so VoiceOver\n // announces it as \"minus\". Replace the empty string with the word \"Empty\".\n const ariaTextValue = createMemo(() => {\n const p = getProps();\n return p.textValue === \"\"\n ? stringFormatter().format(\"Empty\")\n : (p.textValue || `${p.value}`).replace(\"-\", \"−\");\n });\n\n createEffect(() => {\n const value = ariaTextValue();\n if (isFocused) {\n clearAnnouncer(\"assertive\");\n announce(value, \"assertive\");\n }\n });\n\n const spinButtonProps = createMemo(() => {\n const p = getProps();\n const value = p.value;\n return {\n role: \"spinbutton\",\n \"aria-valuenow\": value !== undefined && !isNaN(value) ? value : undefined,\n \"aria-valuetext\": ariaTextValue(),\n \"aria-valuemin\": p.minValue,\n \"aria-valuemax\": p.maxValue,\n \"aria-disabled\": p.isDisabled || undefined,\n \"aria-readonly\": p.isReadOnly || undefined,\n \"aria-required\": p.isRequired || undefined,\n onKeyDown,\n onFocus,\n onBlur,\n };\n });\n\n return {\n get spinButtonProps() {\n return spinButtonProps();\n },\n };\n}\n"],"mappings":";;;;;;AAOA,MAAa,oBAAyE;CACpF,SAAS,EACT,SAAS,+BACT;CACA,SAAS,EACT,SAAS,2DACT;CACA,SAAS,EACT,SAAS,gBACT;CACA,SAAS,EACT,SAAS,MACT;CACA,SAAS,EACT,SAAS,OACT;CACA,SAAS,EACT,SAAS,sCACT;CACA,SAAS,EACT,SAAS,QACT;CACA,SAAS,EACT,SAAS,WACT;CACA,SAAS,EACT,SAAS,cACT;CACA,SAAS,EACT,SAAS,WACT;CACA,SAAS,EACT,SAAS,OACT;CACA,SAAS,EACT,SAAS,wBACT;CACA,SAAS,EACT,SAAS,SACT;CACA,SAAS,EACT,SAAS,UACT;CACA,SAAS,EACT,SAAS,QACT;CACA,SAAS,EACT,SAAS,WACT;CACA,SAAS,EACT,SAAS,oCACT;CACA,SAAS,EACT,SAAS,sBACT;CACA,SAAS,EACT,SAAS,cACT;CACA,SAAS,EACT,SAAS,MACT;CACA,SAAS,EACT,SAAS,OACT;CACA,SAAS,EACT,SAAS,QACT;CACA,SAAS,EACT,SAAS,QACT;CACA,SAAS,EACT,SAAS,QACT;CACA,SAAS,EACT,SAAS,MACT;CACA,SAAS,EACT,SAAS,iFACT;CACA,SAAS,EACT,SAAS,aACT;CACA,SAAS,EACT,SAAS,SACT;CACA,SAAS,EACT,SAAS,SACT;CACA,SAAS,EACT,SAAS,OACT;CACA,SAAS,EACT,SAAS,YACT;CACA,SAAS,EACT,SAAS,sCACT;CACA,SAAS,EACT,SAAS,WACT;CACA,SAAS,EACT,SAAS,mBACT;AACF;AAEA,MAAa,uBAAuB,IAAI,0BACtC,iBACF;;;;;;;;;;;;;;;ACnEA,SAAgB,iBAAiB,OAAuD;CACtF,MAAM,iBAAiB,OAAO,KAAK;CACnC,MAAM,kBAAkB,sBACtB,mBACA,wBACF;CAEA,MAAM,aAAa,MAAqB;EACtC,MAAM,IAAI,SAAS;EACnB,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,aACxE;EAGF,QAAQ,EAAE,KAAV;GAIE,KAAK;IACH,IAAI,EAAE,iBAAiB;KACrB,EAAE,eAAe;KACjB,EAAE,gBAAgB;IACpB,OAAO,IAAI,EAAE,aAAa;KACxB,EAAE,eAAe;KACjB,EAAE,YAAY;IAChB;IACA;GACF,KAAK;GACL,KAAK;IACH,IAAI,EAAE,aAAa;KACjB,EAAE,eAAe;KACjB,EAAE,YAAY;IAChB;IACA;GAEF,KAAK;IACH,IAAI,EAAE,iBAAiB;KACrB,EAAE,eAAe;KACjB,EAAE,gBAAgB;IACpB,OAAO,IAAI,EAAE,aAAa;KACxB,EAAE,eAAe;KACjB,EAAE,YAAY;IAChB;IACA;GACF,KAAK;GACL,KAAK;IACH,IAAI,EAAE,aAAa;KACjB,EAAE,eAAe;KACjB,EAAE,YAAY;IAChB;IACA;GACF,KAAK;IACH,IAAI,EAAE,kBAAkB;KACtB,EAAE,eAAe;KACjB,EAAE,iBAAiB;IACrB;IACA;GACF,KAAK;IACH,IAAI,EAAE,kBAAkB;KACtB,EAAE,eAAe;KACjB,EAAE,iBAAiB;IACrB;IACA;EACJ;CACF;CAIA,IAAI,YAAY;CAChB,MAAM,gBAAgB;EACpB,YAAY;CACd;CACA,MAAM,eAAe;EACnB,YAAY;CACd;CAIA,MAAM,gBAAgB,iBAAiB;EACrC,MAAM,IAAI,SAAS;EACnB,OAAO,EAAE,cAAc,KACnB,gBAAgB,CAAC,CAAC,OAAO,OAAO,KAC/B,EAAE,aAAa,GAAG,EAAE,QAAA,CAAS,QAAQ,KAAK,GAAG;CACpD,CAAC;CAED,mBAAmB;EACjB,MAAM,QAAQ,cAAc;EAC5B,IAAI,WAAW;GACb,eAAe,WAAW;GAC1B,SAAS,OAAO,WAAW;EAC7B;CACF,CAAC;CAED,MAAM,kBAAkB,iBAAiB;EACvC,MAAM,IAAI,SAAS;EACnB,MAAM,QAAQ,EAAE;EAChB,OAAO;GACL,MAAM;GACN,iBAAiB,UAAU,KAAA,KAAa,CAAC,MAAM,KAAK,IAAI,QAAQ,KAAA;GAChE,kBAAkB,cAAc;GAChC,iBAAiB,EAAE;GACnB,iBAAiB,EAAE;GACnB,iBAAiB,EAAE,cAAc,KAAA;GACjC,iBAAiB,EAAE,cAAc,KAAA;GACjC,iBAAiB,EAAE,cAAc,KAAA;GACjC;GACA;GACA;EACF;CACF,CAAC;CAED,OAAO,EACL,IAAI,kBAAkB;EACpB,OAAO,gBAAgB;CACzB,EACF;AACF"}
@@ -1,9 +1,9 @@
1
- import { o as mergeProps } from "./env.js";
2
- import { S as scrollIntoViewport } from "./utils.js";
1
+ import { i as mergeProps$1 } from "./env.js";
2
+ import { S as scrollIntoViewport, i as createDescription } from "./utils.js";
3
3
  import { o as getInteractionModality } from "./createInteractionModality.js";
4
- import { a as useLocale } from "./createCollator.js";
4
+ import { i as useLocale } from "./locale.js";
5
5
  import { n as createSelectableItem } from "./createSelectableItem.js";
6
- import { t as announce } from "./live-announcer.js";
6
+ import { t as announce } from "./announce.js";
7
7
  import { createEffect, createMemo, createSignal, on } from "solid-js";
8
8
  import { createId } from "@proyecto-viviana/solid-stately";
9
9
  //#region src/table/createTable.ts
@@ -316,15 +316,25 @@ function createTable(props, state, ref) {
316
316
  const p = props();
317
317
  if (!p["aria-label"] && !p["aria-labelledby"]) console.warn("Table: An aria-label or aria-labelledby prop is required for accessibility.");
318
318
  });
319
+ const sortDescription = () => {
320
+ const s = state();
321
+ const descriptor = s.sortDescriptor;
322
+ const column = descriptor?.column;
323
+ const direction = descriptor?.direction;
324
+ if (!direction || column == null) return;
325
+ return `sorted by column ${s.collection.columns.find((c) => c.key === column)?.textValue ?? ""} in ${direction} order`;
326
+ };
327
+ const sortDescriptionProps = createDescription(sortDescription);
319
328
  const gridProps = createMemo(() => {
320
329
  const p = props();
321
330
  const s = state();
331
+ const describedBy = [sortDescriptionProps["aria-describedby"], p["aria-describedby"]].filter(Boolean).join(" ") || void 0;
322
332
  const baseProps = {
323
333
  role: "grid",
324
334
  id,
325
335
  "aria-label": p["aria-label"],
326
336
  "aria-labelledby": p["aria-labelledby"],
327
- "aria-describedby": p["aria-describedby"],
337
+ "aria-describedby": describedBy,
328
338
  "aria-multiselectable": s.selectionMode === "multiple" ? "true" : void 0,
329
339
  tabIndex: 0,
330
340
  onKeyDown,
@@ -380,6 +390,7 @@ function createTableColumnHeader(props, state, _ref) {
380
390
  const p = props();
381
391
  return s.focusedKey === p.node.key;
382
392
  });
393
+ const sortDescriptionProps = createDescription(() => props().allowsSorting ? "sortable column" : void 0);
383
394
  const sortColumn = () => {
384
395
  const s = state();
385
396
  const p = props();
@@ -447,6 +458,7 @@ function createTableColumnHeader(props, state, _ref) {
447
458
  role: "columnheader",
448
459
  id: tableData ? `${tableData.tableId}-${node.key}` : void 0,
449
460
  "aria-sort": ariaSort,
461
+ "aria-describedby": sortDescriptionProps["aria-describedby"],
450
462
  tabIndex: isFocused() ? 0 : -1,
451
463
  onFocus
452
464
  };
@@ -471,6 +483,24 @@ function createTableColumnHeader(props, state, _ref) {
471
483
  } };
472
484
  }
473
485
  //#endregion
486
+ //#region src/table/utils.ts
487
+ /**
488
+ * A row is labelled by its row-header cells. Mirrors `@react-aria/table`'s
489
+ * `getRowLabelledBy`, which joins `getCellId(state, rowKey, columnKey)` across
490
+ * `collection.rowHeaderColumnKeys`. We resolve the actual rowheader cell node
491
+ * and rebuild the exact id string `createTableCell` puts on the element
492
+ * (`${tableId}-${parentKey}-${cellKey}`) so the reference always matches a real
493
+ * element, regardless of the cell-key scheme.
494
+ */
495
+ function getRowLabelledBy(state, rowKey) {
496
+ const tableId = getTableData(state)?.tableId ?? "table";
497
+ const collection = state.collection;
498
+ return [...collection.rowHeaderColumnKeys].map((columnKey) => {
499
+ const cell = collection.getCell?.(rowKey, columnKey);
500
+ return cell?.parentKey != null ? `${tableId}-${String(cell.parentKey)}-${String(cell.key)}` : null;
501
+ }).filter((id) => id != null).join(" ");
502
+ }
503
+ //#endregion
474
504
  //#region src/table/createTableRow.ts
475
505
  /**
476
506
  * createTableRow - Provides accessibility for a table row.
@@ -621,6 +651,8 @@ function createTableRow(props, state, ref) {
621
651
  "aria-selected": s.selectionMode !== "none" ? isSelected() : void 0,
622
652
  "aria-disabled": isDisabled() || void 0
623
653
  };
654
+ const labelledBy = getRowLabelledBy(s, node.key);
655
+ if (labelledBy) baseProps["aria-labelledby"] = labelledBy;
624
656
  if (s.treeColumn != null) {
625
657
  const { posinset, setsize } = siblingInfo();
626
658
  baseProps["aria-expanded"] = hasChildRows() ? isExpanded() : void 0;
@@ -630,7 +662,7 @@ function createTableRow(props, state, ref) {
630
662
  baseProps.onKeyDown = onTreeGridKeyDown;
631
663
  }
632
664
  if (p.isVirtualized && s.treeColumn == null && node.rowIndex != null) baseProps["aria-rowindex"] = node.rowIndex + 1;
633
- return mergeProps(selectableItem.itemProps, baseProps);
665
+ return mergeProps$1(selectableItem.itemProps, baseProps);
634
666
  });
635
667
  const onExpandPress = () => {
636
668
  const s = state();
@@ -797,7 +829,9 @@ function createTableSelectionCheckbox(props, state) {
797
829
  const isDisabled = createMemo(() => {
798
830
  const s = state();
799
831
  const p = props();
800
- return s.isDisabled(p.key);
832
+ if (s.selectionMode === "none" || s.disabledKeys.has(p.key) || p.isRowDisabled) return true;
833
+ const item = s.collection.getItem(p.key);
834
+ return !item || !!item.isDisabled || !!item.props?.isDisabled;
801
835
  });
802
836
  const onChange = () => {
803
837
  const s = state();
@@ -805,13 +839,16 @@ function createTableSelectionCheckbox(props, state) {
805
839
  if (!isDisabled()) s.toggleSelection(p.key);
806
840
  };
807
841
  const checkboxProps = createMemo(() => {
842
+ const s = state();
843
+ const p = props();
808
844
  return {
809
845
  id: checkboxId,
810
846
  type: "checkbox",
811
847
  checked: isSelected(),
812
848
  disabled: isDisabled(),
813
849
  onChange,
814
- "aria-label": "Select"
850
+ "aria-label": "Select",
851
+ "aria-labelledby": `${checkboxId} ${getRowLabelledBy(s, p.key)}`
815
852
  };
816
853
  });
817
854
  return { get checkboxProps() {