@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,256 @@
1
+ import { i as mergeProps$1 } from "./env.jsx";
2
+ import { t as filterDOMProps } from "./filterDOMProps.jsx";
3
+ import { t as access } from "./reactivity.jsx";
4
+ import { n as focusWithoutScrolling } from "./focus.jsx";
5
+ import { t as createFocusRing } from "./createFocusRing.jsx";
6
+ import { i as useLocale } from "./locale.jsx";
7
+ import { createId } from "../ssr/index.jsx";
8
+ import { t as createLabel } from "./createLabel.jsx";
9
+ import { onCleanup, onMount } from "solid-js";
10
+ //#region src/slider/createSlider.ts
11
+ /**
12
+ * Provides the behavior and accessibility implementation for a slider component.
13
+ * A slider allows users to select a value from a range.
14
+ * Based on @react-aria/slider useSlider.
15
+ */
16
+ /**
17
+ * Provides the behavior and accessibility implementation for a slider.
18
+ */
19
+ function createSlider(props, state, trackRef, inputRef) {
20
+ const getProps = () => access(props);
21
+ const id = createId(getProps().id);
22
+ const locale = useLocale();
23
+ const inputId = `${id}-input`;
24
+ const outputId = `${id}-output`;
25
+ const domProps = () => filterDOMProps(getProps(), { labelable: true });
26
+ const { labelProps, fieldProps } = createLabel({
27
+ get id() {
28
+ return inputId;
29
+ },
30
+ get label() {
31
+ return getProps().label;
32
+ },
33
+ get "aria-label"() {
34
+ return getProps()["aria-label"];
35
+ },
36
+ get "aria-labelledby"() {
37
+ return getProps()["aria-labelledby"];
38
+ },
39
+ labelElementType: "span"
40
+ });
41
+ const { isFocusVisible, focusProps } = createFocusRing({ within: true });
42
+ let currentPointerId = null;
43
+ const getPositionFromPointer = (clientX, clientY) => {
44
+ const track = trackRef?.();
45
+ if (!track) return 0;
46
+ const rect = track.getBoundingClientRect();
47
+ const isVertical = state.orientation === "vertical";
48
+ let position;
49
+ if (isVertical) position = (rect.bottom - clientY) / rect.height;
50
+ else position = (clientX - rect.left) / rect.width;
51
+ return Math.max(0, Math.min(1, position));
52
+ };
53
+ const onTrackPointerDown = (e) => {
54
+ if (state.isDisabled || e.button !== 0) return;
55
+ e.preventDefault();
56
+ currentPointerId = e.pointerId;
57
+ const track = trackRef?.();
58
+ if (track) track.setPointerCapture(e.pointerId);
59
+ const percent = getPositionFromPointer(e.clientX, e.clientY);
60
+ state.setValuePercent(percent);
61
+ focusWithoutScrolling(inputRef?.() ?? null);
62
+ state.setDragging(true);
63
+ };
64
+ const onTrackPointerMove = (e) => {
65
+ if (!state.isDragging() || e.pointerId !== currentPointerId) return;
66
+ const percent = getPositionFromPointer(e.clientX, e.clientY);
67
+ state.setValuePercent(percent);
68
+ };
69
+ const onTrackPointerUp = (e) => {
70
+ if (e.pointerId !== currentPointerId) return;
71
+ const track = trackRef?.();
72
+ if (track) track.releasePointerCapture(e.pointerId);
73
+ currentPointerId = null;
74
+ focusWithoutScrolling(inputRef?.() ?? null);
75
+ state.setDragging(false);
76
+ };
77
+ const onThumbKeyDown = (e) => {
78
+ if (state.isDisabled) return;
79
+ switch (e.key) {
80
+ case "ArrowRight":
81
+ e.preventDefault();
82
+ if (state.orientation === "horizontal" && locale().direction === "rtl") state.decrement();
83
+ else state.increment();
84
+ break;
85
+ case "ArrowLeft":
86
+ e.preventDefault();
87
+ if (state.orientation === "horizontal" && locale().direction === "rtl") state.increment();
88
+ else state.decrement();
89
+ break;
90
+ case "ArrowUp":
91
+ e.preventDefault();
92
+ if (state.orientation === "vertical") state.increment();
93
+ else state.decrement();
94
+ break;
95
+ case "ArrowDown":
96
+ e.preventDefault();
97
+ if (state.orientation === "vertical") state.decrement();
98
+ else state.increment();
99
+ break;
100
+ case "PageUp":
101
+ e.preventDefault();
102
+ state.increment(state.pageStep / state.step);
103
+ break;
104
+ case "PageDown":
105
+ e.preventDefault();
106
+ state.decrement(state.pageStep / state.step);
107
+ break;
108
+ case "Home":
109
+ e.preventDefault();
110
+ state.setValue(state.minValue);
111
+ break;
112
+ case "End":
113
+ e.preventDefault();
114
+ state.setValue(state.maxValue);
115
+ break;
116
+ }
117
+ };
118
+ const onFocus = () => {
119
+ state.setFocused(true);
120
+ };
121
+ const onBlur = () => {
122
+ state.setFocused(false);
123
+ };
124
+ const onThumbPointerDown = (e) => {
125
+ if (state.isDisabled || e.button !== 0) return;
126
+ e.preventDefault();
127
+ e.stopPropagation();
128
+ currentPointerId = e.pointerId;
129
+ focusWithoutScrolling(inputRef?.() ?? null);
130
+ document.body.setPointerCapture(e.pointerId);
131
+ state.setDragging(true);
132
+ };
133
+ const onDocumentPointerMove = (e) => {
134
+ if (!state.isDragging() || e.pointerId !== currentPointerId) return;
135
+ const percent = getPositionFromPointer(e.clientX, e.clientY);
136
+ state.setValuePercent(percent);
137
+ };
138
+ const onDocumentPointerUp = (e) => {
139
+ if (e.pointerId !== currentPointerId) return;
140
+ try {
141
+ document.body.releasePointerCapture(e.pointerId);
142
+ } catch {}
143
+ currentPointerId = null;
144
+ focusWithoutScrolling(inputRef?.() ?? null);
145
+ state.setDragging(false);
146
+ };
147
+ onMount(() => {
148
+ if (typeof document === "undefined") return;
149
+ document.addEventListener("pointermove", onDocumentPointerMove);
150
+ document.addEventListener("pointerup", onDocumentPointerUp);
151
+ document.addEventListener("pointercancel", onDocumentPointerUp);
152
+ onCleanup(() => {
153
+ document.removeEventListener("pointermove", onDocumentPointerMove);
154
+ document.removeEventListener("pointerup", onDocumentPointerUp);
155
+ document.removeEventListener("pointercancel", onDocumentPointerUp);
156
+ });
157
+ });
158
+ const labelledBy = () => fieldProps["aria-labelledby"];
159
+ const ariaLabel = () => fieldProps["aria-label"];
160
+ return {
161
+ get labelProps() {
162
+ return labelProps;
163
+ },
164
+ get groupProps() {
165
+ return mergeProps$1(domProps(), fieldProps, {
166
+ role: "group",
167
+ "data-disabled": state.isDisabled || void 0,
168
+ "data-orientation": state.orientation
169
+ });
170
+ },
171
+ get trackProps() {
172
+ return {
173
+ onPointerDown: onTrackPointerDown,
174
+ onPointerMove: onTrackPointerMove,
175
+ onPointerUp: onTrackPointerUp,
176
+ onPointerCancel: onTrackPointerUp,
177
+ style: {
178
+ position: "relative",
179
+ "touch-action": "none"
180
+ },
181
+ "data-disabled": state.isDisabled || void 0,
182
+ "data-orientation": state.orientation,
183
+ "data-dragging": state.isDragging() || void 0
184
+ };
185
+ },
186
+ get thumbProps() {
187
+ const percent = state.getValuePercent();
188
+ const isVertical = state.orientation === "vertical";
189
+ return {
190
+ role: "slider",
191
+ "aria-valuemin": state.minValue,
192
+ "aria-valuemax": state.maxValue,
193
+ "aria-valuenow": state.value(),
194
+ "aria-valuetext": state.getFormattedValue(),
195
+ "aria-orientation": state.orientation,
196
+ "aria-disabled": state.isDisabled || void 0,
197
+ "aria-labelledby": labelledBy(),
198
+ "aria-label": labelledBy() ? void 0 : ariaLabel(),
199
+ tabIndex: state.isDisabled ? void 0 : 0,
200
+ onPointerDown: onThumbPointerDown,
201
+ onKeyDown: onThumbKeyDown,
202
+ onFocus,
203
+ onBlur,
204
+ style: {
205
+ position: "absolute",
206
+ [isVertical ? "bottom" : "left"]: `${percent * 100}%`,
207
+ transform: isVertical ? "translateY(50%)" : "translateX(-50%)",
208
+ "touch-action": "none"
209
+ },
210
+ "data-disabled": state.isDisabled || void 0,
211
+ "data-dragging": state.isDragging() || void 0
212
+ };
213
+ },
214
+ get inputProps() {
215
+ const p = getProps();
216
+ return mergeProps$1(focusProps, {
217
+ type: "range",
218
+ id: inputId,
219
+ "aria-hidden": true,
220
+ min: state.minValue,
221
+ max: state.maxValue,
222
+ step: state.step,
223
+ value: state.value(),
224
+ name: p.name,
225
+ form: p.form,
226
+ disabled: state.isDisabled,
227
+ "aria-orientation": state.orientation,
228
+ "aria-valuetext": state.getFormattedValue(),
229
+ "aria-labelledby": labelledBy(),
230
+ "aria-label": labelledBy() ? void 0 : ariaLabel(),
231
+ tabIndex: -1,
232
+ onInput: (e) => {
233
+ const target = e.target;
234
+ state.setValue(parseFloat(target.value));
235
+ },
236
+ onChange: (e) => {
237
+ const target = e.target;
238
+ state.setValue(parseFloat(target.value));
239
+ },
240
+ onFocus,
241
+ onBlur
242
+ });
243
+ },
244
+ get outputProps() {
245
+ return {
246
+ id: outputId,
247
+ for: inputId,
248
+ "aria-live": "off"
249
+ };
250
+ }
251
+ };
252
+ }
253
+ //#endregion
254
+ export { createSlider as t };
255
+
256
+ //# sourceMappingURL=slider.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slider.jsx","names":["mergeProps"],"sources":["../../src/slider/createSlider.ts"],"sourcesContent":["/**\n * Provides the behavior and accessibility implementation for a slider component.\n * A slider allows users to select a value from a range.\n * Based on @react-aria/slider useSlider.\n */\n\nimport { type JSX, onCleanup, onMount } from \"solid-js\";\nimport { createLabel } from \"../label/createLabel\";\nimport { createFocusRing } from \"../interactions/createFocusRing\";\nimport { filterDOMProps } from \"../utils/filterDOMProps\";\nimport { focusWithoutScrolling } from \"../utils/focus\";\nimport { mergeProps } from \"../utils/mergeProps\";\nimport { createId } from \"../ssr\";\nimport { useLocale } from \"../i18n\";\nimport { access, type MaybeAccessor } from \"../utils/reactivity\";\nimport type { SliderState, SliderOrientation } from \"@proyecto-viviana/solid-stately\";\n\nexport interface AriaSliderProps {\n /** An ID for the slider. */\n id?: string;\n /** Whether the slider is disabled. */\n isDisabled?: boolean;\n /** The label for the slider. */\n label?: JSX.Element;\n /** An accessible label for the slider when no visible label is provided. */\n \"aria-label\"?: string;\n /** The ID of an element that labels the slider. */\n \"aria-labelledby\"?: string;\n /** The ID of an element that describes the slider. */\n \"aria-describedby\"?: string;\n /** The orientation of the slider. */\n orientation?: SliderOrientation;\n /** The name for the form input. */\n name?: string;\n /** The form element this input belongs to. */\n form?: string;\n}\n\nexport interface SliderAria {\n /** Props for the label element. */\n labelProps: JSX.HTMLAttributes<HTMLElement>;\n /** Props for the root group element. */\n groupProps: JSX.HTMLAttributes<HTMLElement>;\n /** Props for the track element. */\n trackProps: JSX.HTMLAttributes<HTMLElement>;\n /** Props for the thumb element. */\n thumbProps: JSX.HTMLAttributes<HTMLElement>;\n /** Props for the hidden input element. */\n inputProps: JSX.InputHTMLAttributes<HTMLInputElement>;\n /** Props for the output element (showing current value). */\n outputProps: JSX.HTMLAttributes<HTMLElement>;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a slider.\n */\nexport function createSlider(\n props: MaybeAccessor<AriaSliderProps>,\n state: SliderState,\n trackRef?: () => HTMLElement | null,\n inputRef?: () => HTMLInputElement | null,\n): SliderAria {\n const getProps = () => access(props);\n const id = createId(getProps().id);\n const locale = useLocale();\n\n // Generate IDs for associated elements\n const inputId = `${id}-input`;\n const outputId = `${id}-output`;\n\n // Filter DOM props\n const domProps = () =>\n filterDOMProps(getProps() as unknown as Record<string, unknown>, { labelable: true });\n\n // Label handling\n const { labelProps, fieldProps } = createLabel({\n get id() {\n return inputId;\n },\n get label() {\n return getProps().label;\n },\n get \"aria-label\"() {\n return getProps()[\"aria-label\"];\n },\n get \"aria-labelledby\"() {\n return getProps()[\"aria-labelledby\"];\n },\n labelElementType: \"span\",\n });\n\n // Focus ring for keyboard focus styling\n const { isFocusVisible, focusProps } = createFocusRing({\n within: true,\n });\n\n // Track pointer state for drag handling\n let currentPointerId: number | null = null;\n\n // Calculate position from pointer event\n const getPositionFromPointer = (clientX: number, clientY: number): number => {\n const track = trackRef?.();\n if (!track) return 0;\n\n const rect = track.getBoundingClientRect();\n const isVertical = state.orientation === \"vertical\";\n\n let position: number;\n if (isVertical) {\n position = (rect.bottom - clientY) / rect.height;\n } else {\n position = (clientX - rect.left) / rect.width;\n }\n\n return Math.max(0, Math.min(1, position));\n };\n\n // Handle pointer down on track\n const onTrackPointerDown = (e: PointerEvent) => {\n if (state.isDisabled || e.button !== 0) return;\n\n e.preventDefault();\n currentPointerId = e.pointerId;\n\n const track = trackRef?.();\n if (track) {\n track.setPointerCapture(e.pointerId);\n }\n\n const percent = getPositionFromPointer(e.clientX, e.clientY);\n state.setValuePercent(percent);\n focusWithoutScrolling(inputRef?.() ?? null);\n state.setDragging(true);\n };\n\n // Handle pointer move for dragging\n const onTrackPointerMove = (e: PointerEvent) => {\n if (!state.isDragging() || e.pointerId !== currentPointerId) return;\n\n const percent = getPositionFromPointer(e.clientX, e.clientY);\n state.setValuePercent(percent);\n };\n\n // Handle pointer up to end drag\n const onTrackPointerUp = (e: PointerEvent) => {\n if (e.pointerId !== currentPointerId) return;\n\n const track = trackRef?.();\n if (track) {\n track.releasePointerCapture(e.pointerId);\n }\n\n currentPointerId = null;\n focusWithoutScrolling(inputRef?.() ?? null);\n state.setDragging(false);\n };\n\n // Keyboard navigation that is not consistently handled by the native range input.\n const onThumbKeyDown = (e: KeyboardEvent) => {\n if (state.isDisabled) return;\n\n switch (e.key) {\n case \"ArrowRight\":\n e.preventDefault();\n if (state.orientation === \"horizontal\" && locale().direction === \"rtl\") {\n state.decrement();\n } else {\n state.increment();\n }\n break;\n case \"ArrowLeft\":\n e.preventDefault();\n if (state.orientation === \"horizontal\" && locale().direction === \"rtl\") {\n state.increment();\n } else {\n state.decrement();\n }\n break;\n case \"ArrowUp\":\n e.preventDefault();\n if (state.orientation === \"vertical\") {\n state.increment();\n } else {\n state.decrement();\n }\n break;\n case \"ArrowDown\":\n e.preventDefault();\n if (state.orientation === \"vertical\") {\n state.decrement();\n } else {\n state.increment();\n }\n break;\n case \"PageUp\":\n e.preventDefault();\n state.increment(state.pageStep / state.step);\n break;\n case \"PageDown\":\n e.preventDefault();\n state.decrement(state.pageStep / state.step);\n break;\n case \"Home\":\n e.preventDefault();\n state.setValue(state.minValue);\n break;\n case \"End\":\n e.preventDefault();\n state.setValue(state.maxValue);\n break;\n }\n };\n\n // Handle focus events\n const onFocus = () => {\n state.setFocused(true);\n };\n\n const onBlur = () => {\n state.setFocused(false);\n };\n\n // Handle pointer down on thumb (for direct thumb dragging)\n const onThumbPointerDown = (e: PointerEvent) => {\n if (state.isDisabled || e.button !== 0) return;\n\n e.preventDefault();\n e.stopPropagation(); // Prevent track from also handling\n currentPointerId = e.pointerId;\n focusWithoutScrolling(inputRef?.() ?? null);\n\n // Capture pointer on document for smooth dragging\n document.body.setPointerCapture(e.pointerId);\n state.setDragging(true);\n };\n\n // Global pointer move handler for thumb dragging\n const onDocumentPointerMove = (e: PointerEvent) => {\n if (!state.isDragging() || e.pointerId !== currentPointerId) return;\n\n const percent = getPositionFromPointer(e.clientX, e.clientY);\n state.setValuePercent(percent);\n };\n\n // Global pointer up handler\n const onDocumentPointerUp = (e: PointerEvent) => {\n if (e.pointerId !== currentPointerId) return;\n\n try {\n document.body.releasePointerCapture(e.pointerId);\n } catch {\n // Ignore if capture was already released\n }\n\n currentPointerId = null;\n focusWithoutScrolling(inputRef?.() ?? null);\n state.setDragging(false);\n };\n\n // Set up global listeners on mount (client-side only)\n onMount(() => {\n if (typeof document === \"undefined\") return;\n\n document.addEventListener(\"pointermove\", onDocumentPointerMove);\n document.addEventListener(\"pointerup\", onDocumentPointerUp);\n document.addEventListener(\"pointercancel\", onDocumentPointerUp);\n\n // Cleanup when component unmounts\n onCleanup(() => {\n document.removeEventListener(\"pointermove\", onDocumentPointerMove);\n document.removeEventListener(\"pointerup\", onDocumentPointerUp);\n document.removeEventListener(\"pointercancel\", onDocumentPointerUp);\n });\n });\n\n const labelledBy = () => (fieldProps as { \"aria-labelledby\"?: string })[\"aria-labelledby\"];\n const ariaLabel = () => (fieldProps as { \"aria-label\"?: string })[\"aria-label\"];\n\n return {\n get labelProps() {\n return labelProps as JSX.HTMLAttributes<HTMLElement>;\n },\n get groupProps() {\n return mergeProps(\n domProps(),\n fieldProps as Record<string, unknown>,\n {\n role: \"group\",\n \"data-disabled\": state.isDisabled || undefined,\n \"data-orientation\": state.orientation,\n } as Record<string, unknown>,\n ) as JSX.HTMLAttributes<HTMLElement>;\n },\n get trackProps() {\n return {\n onPointerDown: onTrackPointerDown,\n onPointerMove: onTrackPointerMove,\n onPointerUp: onTrackPointerUp,\n onPointerCancel: onTrackPointerUp,\n style: {\n position: \"relative\",\n \"touch-action\": \"none\",\n },\n \"data-disabled\": state.isDisabled || undefined,\n \"data-orientation\": state.orientation,\n \"data-dragging\": state.isDragging() || undefined,\n } as JSX.HTMLAttributes<HTMLElement>;\n },\n get thumbProps() {\n const percent = state.getValuePercent();\n const isVertical = state.orientation === \"vertical\";\n\n return {\n role: \"slider\",\n \"aria-valuemin\": state.minValue,\n \"aria-valuemax\": state.maxValue,\n \"aria-valuenow\": state.value(),\n \"aria-valuetext\": state.getFormattedValue(),\n \"aria-orientation\": state.orientation,\n \"aria-disabled\": state.isDisabled || undefined,\n \"aria-labelledby\": labelledBy(),\n \"aria-label\": labelledBy() ? undefined : ariaLabel(),\n tabIndex: state.isDisabled ? undefined : 0,\n onPointerDown: onThumbPointerDown,\n onKeyDown: onThumbKeyDown,\n onFocus,\n onBlur,\n style: {\n position: \"absolute\",\n [isVertical ? \"bottom\" : \"left\"]: `${percent * 100}%`,\n transform: isVertical ? \"translateY(50%)\" : \"translateX(-50%)\",\n \"touch-action\": \"none\",\n },\n \"data-disabled\": state.isDisabled || undefined,\n \"data-dragging\": state.isDragging() || undefined,\n } as JSX.HTMLAttributes<HTMLElement>;\n },\n get inputProps() {\n const p = getProps();\n\n return mergeProps(\n focusProps as Record<string, unknown>,\n {\n type: \"range\",\n id: inputId,\n \"aria-hidden\": true,\n min: state.minValue,\n max: state.maxValue,\n step: state.step,\n value: state.value(),\n name: p.name,\n form: p.form,\n disabled: state.isDisabled,\n \"aria-orientation\": state.orientation,\n \"aria-valuetext\": state.getFormattedValue(),\n \"aria-labelledby\": labelledBy(),\n \"aria-label\": labelledBy() ? undefined : ariaLabel(),\n tabIndex: -1,\n onInput: (e: Event) => {\n const target = e.target as HTMLInputElement;\n state.setValue(parseFloat(target.value));\n },\n onChange: (e: Event) => {\n const target = e.target as HTMLInputElement;\n state.setValue(parseFloat(target.value));\n },\n onFocus,\n onBlur,\n } as Record<string, unknown>,\n ) as JSX.InputHTMLAttributes<HTMLInputElement>;\n },\n get outputProps() {\n return {\n id: outputId,\n for: inputId,\n \"aria-live\": \"off\",\n } as JSX.HTMLAttributes<HTMLElement>;\n },\n };\n}\n"],"mappings":"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"}
@@ -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"}