@proyecto-viviana/solidaria 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (566) hide show
  1. package/dist/_chunk/actiongroup.js +207 -0
  2. package/dist/_chunk/actiongroup.js.map +1 -0
  3. package/dist/_chunk/actiongroup.jsx +207 -0
  4. package/dist/_chunk/actiongroup.jsx.map +1 -0
  5. package/dist/_chunk/ariaHideOutside.js +122 -0
  6. package/dist/_chunk/ariaHideOutside.js.map +1 -0
  7. package/dist/_chunk/ariaHideOutside.jsx +122 -0
  8. package/dist/_chunk/ariaHideOutside.jsx.map +1 -0
  9. package/dist/_chunk/autocomplete.js +196 -0
  10. package/dist/_chunk/autocomplete.js.map +1 -0
  11. package/dist/_chunk/autocomplete.jsx +196 -0
  12. package/dist/_chunk/autocomplete.jsx.map +1 -0
  13. package/dist/_chunk/breadcrumbs.js +119 -0
  14. package/dist/_chunk/breadcrumbs.js.map +1 -0
  15. package/dist/_chunk/breadcrumbs.jsx +119 -0
  16. package/dist/_chunk/breadcrumbs.jsx.map +1 -0
  17. package/dist/_chunk/button.js +276 -0
  18. package/dist/_chunk/button.js.map +1 -0
  19. package/dist/_chunk/button.jsx +276 -0
  20. package/dist/_chunk/button.jsx.map +1 -0
  21. package/dist/_chunk/calendar.js +1036 -0
  22. package/dist/_chunk/calendar.js.map +1 -0
  23. package/dist/_chunk/calendar.jsx +1036 -0
  24. package/dist/_chunk/calendar.jsx.map +1 -0
  25. package/dist/_chunk/checkbox.js +234 -0
  26. package/dist/_chunk/checkbox.js.map +1 -0
  27. package/dist/_chunk/checkbox.jsx +234 -0
  28. package/dist/_chunk/checkbox.jsx.map +1 -0
  29. package/dist/_chunk/color.js +1174 -0
  30. package/dist/_chunk/color.js.map +1 -0
  31. package/dist/_chunk/color.jsx +1174 -0
  32. package/dist/_chunk/color.jsx.map +1 -0
  33. package/dist/_chunk/combobox.js +436 -0
  34. package/dist/_chunk/combobox.js.map +1 -0
  35. package/dist/_chunk/combobox.jsx +436 -0
  36. package/dist/_chunk/combobox.jsx.map +1 -0
  37. package/dist/_chunk/createCollator.js +229 -0
  38. package/dist/_chunk/createCollator.js.map +1 -0
  39. package/dist/_chunk/createCollator.jsx +223 -0
  40. package/dist/_chunk/createCollator.jsx.map +1 -0
  41. package/dist/_chunk/createCollectionRowInteraction.js +133 -0
  42. package/dist/_chunk/createCollectionRowInteraction.js.map +1 -0
  43. package/dist/_chunk/createCollectionRowInteraction.jsx +133 -0
  44. package/dist/_chunk/createCollectionRowInteraction.jsx.map +1 -0
  45. package/dist/_chunk/createField.js +54 -0
  46. package/dist/_chunk/createField.js.map +1 -0
  47. package/dist/_chunk/createField.jsx +54 -0
  48. package/dist/_chunk/createField.jsx.map +1 -0
  49. package/dist/_chunk/createFocus.js +101 -0
  50. package/dist/_chunk/createFocus.js.map +1 -0
  51. package/dist/_chunk/createFocus.jsx +101 -0
  52. package/dist/_chunk/createFocus.jsx.map +1 -0
  53. package/dist/_chunk/createFocusRing.js +54 -0
  54. package/dist/_chunk/createFocusRing.js.map +1 -0
  55. package/dist/_chunk/createFocusRing.jsx +54 -0
  56. package/dist/_chunk/createFocusRing.jsx.map +1 -0
  57. package/dist/_chunk/createFocusWithin.js +121 -0
  58. package/dist/_chunk/createFocusWithin.js.map +1 -0
  59. package/dist/_chunk/createFocusWithin.jsx +121 -0
  60. package/dist/_chunk/createFocusWithin.jsx.map +1 -0
  61. package/dist/_chunk/createFocusable.js +131 -0
  62. package/dist/_chunk/createFocusable.js.map +1 -0
  63. package/dist/_chunk/createFocusable.jsx +131 -0
  64. package/dist/_chunk/createFocusable.jsx.map +1 -0
  65. package/dist/_chunk/createFormValidation.js +135 -0
  66. package/dist/_chunk/createFormValidation.js.map +1 -0
  67. package/dist/_chunk/createFormValidation.jsx +135 -0
  68. package/dist/_chunk/createFormValidation.jsx.map +1 -0
  69. package/dist/_chunk/createHover.js +130 -0
  70. package/dist/_chunk/createHover.js.map +1 -0
  71. package/dist/_chunk/createHover.jsx +130 -0
  72. package/dist/_chunk/createHover.jsx.map +1 -0
  73. package/dist/_chunk/createInteractionModality.js +269 -0
  74. package/dist/_chunk/createInteractionModality.js.map +1 -0
  75. package/dist/_chunk/createInteractionModality.jsx +269 -0
  76. package/dist/_chunk/createInteractionModality.jsx.map +1 -0
  77. package/dist/_chunk/createLabel.js +46 -0
  78. package/dist/_chunk/createLabel.js.map +1 -0
  79. package/dist/_chunk/createLabel.jsx +46 -0
  80. package/dist/_chunk/createLabel.jsx.map +1 -0
  81. package/dist/_chunk/createLabels.js +31 -0
  82. package/dist/_chunk/createLabels.js.map +1 -0
  83. package/dist/_chunk/createLabels.jsx +31 -0
  84. package/dist/_chunk/createLabels.jsx.map +1 -0
  85. package/dist/_chunk/createLandmark.js +198 -0
  86. package/dist/_chunk/createLandmark.js.map +1 -0
  87. package/dist/_chunk/createLandmark.jsx +198 -0
  88. package/dist/_chunk/createLandmark.jsx.map +1 -0
  89. package/dist/_chunk/createLongPress.js +91 -0
  90. package/dist/_chunk/createLongPress.js.map +1 -0
  91. package/dist/_chunk/createLongPress.jsx +91 -0
  92. package/dist/_chunk/createLongPress.jsx.map +1 -0
  93. package/dist/_chunk/createOverlay.js +327 -0
  94. package/dist/_chunk/createOverlay.js.map +1 -0
  95. package/dist/_chunk/createOverlay.jsx +327 -0
  96. package/dist/_chunk/createOverlay.jsx.map +1 -0
  97. package/dist/_chunk/createPress.js +526 -0
  98. package/dist/_chunk/createPress.js.map +1 -0
  99. package/dist/_chunk/createPress.jsx +526 -0
  100. package/dist/_chunk/createPress.jsx.map +1 -0
  101. package/dist/_chunk/createProgressBar.js +81 -0
  102. package/dist/_chunk/createProgressBar.js.map +1 -0
  103. package/dist/_chunk/createProgressBar.jsx +81 -0
  104. package/dist/_chunk/createProgressBar.jsx.map +1 -0
  105. package/dist/_chunk/createSelectableItem.js +298 -0
  106. package/dist/_chunk/createSelectableItem.js.map +1 -0
  107. package/dist/_chunk/createSelectableItem.jsx +298 -0
  108. package/dist/_chunk/createSelectableItem.jsx.map +1 -0
  109. package/dist/_chunk/createToggle.js +158 -0
  110. package/dist/_chunk/createToggle.js.map +1 -0
  111. package/dist/_chunk/createToggle.jsx +158 -0
  112. package/dist/_chunk/createToggle.jsx.map +1 -0
  113. package/dist/_chunk/createTypeSelect.js +125 -0
  114. package/dist/_chunk/createTypeSelect.js.map +1 -0
  115. package/dist/_chunk/createTypeSelect.jsx +125 -0
  116. package/dist/_chunk/createTypeSelect.jsx.map +1 -0
  117. package/dist/_chunk/datepicker.js +1393 -0
  118. package/dist/_chunk/datepicker.js.map +1 -0
  119. package/dist/_chunk/datepicker.jsx +1393 -0
  120. package/dist/_chunk/datepicker.jsx.map +1 -0
  121. package/dist/_chunk/dialog.js +62 -0
  122. package/dist/_chunk/dialog.js.map +1 -0
  123. package/dist/_chunk/dialog.jsx +62 -0
  124. package/dist/_chunk/dialog.jsx.map +1 -0
  125. package/dist/_chunk/disclosure.js +185 -0
  126. package/dist/_chunk/disclosure.js.map +1 -0
  127. package/dist/_chunk/disclosure.jsx +185 -0
  128. package/dist/_chunk/disclosure.jsx.map +1 -0
  129. package/dist/_chunk/dnd.js +1304 -0
  130. package/dist/_chunk/dnd.js.map +1 -0
  131. package/dist/_chunk/dnd.jsx +1304 -0
  132. package/dist/_chunk/dnd.jsx.map +1 -0
  133. package/dist/_chunk/env.js +105 -0
  134. package/dist/_chunk/env.js.map +1 -0
  135. package/dist/_chunk/env.jsx +105 -0
  136. package/dist/_chunk/env.jsx.map +1 -0
  137. package/dist/_chunk/filterDOMProps.js +82 -0
  138. package/dist/_chunk/filterDOMProps.js.map +1 -0
  139. package/dist/_chunk/filterDOMProps.jsx +82 -0
  140. package/dist/_chunk/filterDOMProps.jsx.map +1 -0
  141. package/dist/_chunk/focus.js +399 -0
  142. package/dist/_chunk/focus.js.map +1 -0
  143. package/dist/_chunk/focus.jsx +399 -0
  144. package/dist/_chunk/focus.jsx.map +1 -0
  145. package/dist/_chunk/focus2.js +895 -0
  146. package/dist/_chunk/focus2.js.map +1 -0
  147. package/dist/_chunk/focus2.jsx +870 -0
  148. package/dist/_chunk/focus2.jsx.map +1 -0
  149. package/dist/_chunk/form.js +39 -0
  150. package/dist/_chunk/form.js.map +1 -0
  151. package/dist/_chunk/form.jsx +39 -0
  152. package/dist/_chunk/form.jsx.map +1 -0
  153. package/dist/_chunk/grid.js +623 -0
  154. package/dist/_chunk/grid.js.map +1 -0
  155. package/dist/_chunk/grid.jsx +623 -0
  156. package/dist/_chunk/grid.jsx.map +1 -0
  157. package/dist/_chunk/gridlist.js +364 -0
  158. package/dist/_chunk/gridlist.js.map +1 -0
  159. package/dist/_chunk/gridlist.jsx +364 -0
  160. package/dist/_chunk/gridlist.jsx.map +1 -0
  161. package/dist/_chunk/i18n.js +254 -0
  162. package/dist/_chunk/i18n.js.map +1 -0
  163. package/dist/_chunk/i18n.jsx +254 -0
  164. package/dist/_chunk/i18n.jsx.map +1 -0
  165. package/dist/_chunk/interactions.js +241 -0
  166. package/dist/_chunk/interactions.js.map +1 -0
  167. package/dist/_chunk/interactions.jsx +237 -0
  168. package/dist/_chunk/interactions.jsx.map +1 -0
  169. package/dist/_chunk/link.js +96 -0
  170. package/dist/_chunk/link.js.map +1 -0
  171. package/dist/_chunk/link.jsx +96 -0
  172. package/dist/_chunk/link.jsx.map +1 -0
  173. package/dist/_chunk/listbox.js +324 -0
  174. package/dist/_chunk/listbox.js.map +1 -0
  175. package/dist/_chunk/listbox.jsx +324 -0
  176. package/dist/_chunk/listbox.jsx.map +1 -0
  177. package/dist/_chunk/live-announcer.js +207 -0
  178. package/dist/_chunk/live-announcer.js.map +1 -0
  179. package/dist/_chunk/live-announcer.jsx +207 -0
  180. package/dist/_chunk/live-announcer.jsx.map +1 -0
  181. package/dist/_chunk/menu.js +518 -0
  182. package/dist/_chunk/menu.js.map +1 -0
  183. package/dist/_chunk/menu.jsx +518 -0
  184. package/dist/_chunk/menu.jsx.map +1 -0
  185. package/dist/_chunk/meter.js +33 -0
  186. package/dist/_chunk/meter.js.map +1 -0
  187. package/dist/_chunk/meter.jsx +33 -0
  188. package/dist/_chunk/meter.jsx.map +1 -0
  189. package/dist/_chunk/numberfield.js +258 -0
  190. package/dist/_chunk/numberfield.js.map +1 -0
  191. package/dist/_chunk/numberfield.jsx +258 -0
  192. package/dist/_chunk/numberfield.jsx.map +1 -0
  193. package/dist/_chunk/overlays.js +186 -0
  194. package/dist/_chunk/overlays.js.map +1 -0
  195. package/dist/_chunk/overlays.jsx +162 -0
  196. package/dist/_chunk/overlays.jsx.map +1 -0
  197. package/dist/_chunk/popover.js +574 -0
  198. package/dist/_chunk/popover.js.map +1 -0
  199. package/dist/_chunk/popover.jsx +574 -0
  200. package/dist/_chunk/popover.jsx.map +1 -0
  201. package/dist/_chunk/radio.js +319 -0
  202. package/dist/_chunk/radio.js.map +1 -0
  203. package/dist/_chunk/radio.jsx +319 -0
  204. package/dist/_chunk/radio.jsx.map +1 -0
  205. package/dist/_chunk/searchfield.js +209 -0
  206. package/dist/_chunk/searchfield.js.map +1 -0
  207. package/dist/_chunk/searchfield.jsx +209 -0
  208. package/dist/_chunk/searchfield.jsx.map +1 -0
  209. package/dist/_chunk/select.js +403 -0
  210. package/dist/_chunk/select.js.map +1 -0
  211. package/dist/_chunk/select.jsx +394 -0
  212. package/dist/_chunk/select.jsx.map +1 -0
  213. package/dist/_chunk/selection.js +679 -0
  214. package/dist/_chunk/selection.js.map +1 -0
  215. package/dist/_chunk/selection.jsx +679 -0
  216. package/dist/_chunk/selection.jsx.map +1 -0
  217. package/dist/_chunk/separator.js +29 -0
  218. package/dist/_chunk/separator.js.map +1 -0
  219. package/dist/_chunk/separator.jsx +29 -0
  220. package/dist/_chunk/separator.jsx.map +1 -0
  221. package/dist/_chunk/slider.js +255 -0
  222. package/dist/_chunk/slider.js.map +1 -0
  223. package/dist/_chunk/slider.jsx +255 -0
  224. package/dist/_chunk/slider.jsx.map +1 -0
  225. package/dist/_chunk/steplist.js +66 -0
  226. package/dist/_chunk/steplist.js.map +1 -0
  227. package/dist/_chunk/steplist.jsx +66 -0
  228. package/dist/_chunk/steplist.jsx.map +1 -0
  229. package/dist/_chunk/switch.js +34 -0
  230. package/dist/_chunk/switch.js.map +1 -0
  231. package/dist/_chunk/switch.jsx +34 -0
  232. package/dist/_chunk/switch.jsx.map +1 -0
  233. package/dist/_chunk/table.js +1051 -0
  234. package/dist/_chunk/table.js.map +1 -0
  235. package/dist/_chunk/table.jsx +1051 -0
  236. package/dist/_chunk/table.jsx.map +1 -0
  237. package/dist/_chunk/tabs.js +260 -0
  238. package/dist/_chunk/tabs.js.map +1 -0
  239. package/dist/_chunk/tabs.jsx +260 -0
  240. package/dist/_chunk/tabs.jsx.map +1 -0
  241. package/dist/_chunk/tag.js +286 -0
  242. package/dist/_chunk/tag.js.map +1 -0
  243. package/dist/_chunk/tag.jsx +286 -0
  244. package/dist/_chunk/tag.jsx.map +1 -0
  245. package/dist/_chunk/textfield.js +109 -0
  246. package/dist/_chunk/textfield.js.map +1 -0
  247. package/dist/_chunk/textfield.jsx +109 -0
  248. package/dist/_chunk/textfield.jsx.map +1 -0
  249. package/dist/_chunk/toast.js +250 -0
  250. package/dist/_chunk/toast.js.map +1 -0
  251. package/dist/_chunk/toast.jsx +250 -0
  252. package/dist/_chunk/toast.jsx.map +1 -0
  253. package/dist/_chunk/toolbar.js +258 -0
  254. package/dist/_chunk/toolbar.js.map +1 -0
  255. package/dist/_chunk/toolbar.jsx +258 -0
  256. package/dist/_chunk/toolbar.jsx.map +1 -0
  257. package/dist/_chunk/tooltip.js +185 -0
  258. package/dist/_chunk/tooltip.js.map +1 -0
  259. package/dist/_chunk/tooltip.jsx +185 -0
  260. package/dist/_chunk/tooltip.jsx.map +1 -0
  261. package/dist/_chunk/tree.js +424 -0
  262. package/dist/_chunk/tree.js.map +1 -0
  263. package/dist/_chunk/tree.jsx +424 -0
  264. package/dist/_chunk/tree.jsx.map +1 -0
  265. package/dist/_chunk/utils.js +665 -0
  266. package/dist/_chunk/utils.js.map +1 -0
  267. package/dist/_chunk/utils.jsx +665 -0
  268. package/dist/_chunk/utils.jsx.map +1 -0
  269. package/dist/_chunk/visually-hidden.js +92 -0
  270. package/dist/_chunk/visually-hidden.js.map +1 -0
  271. package/dist/_chunk/visually-hidden.jsx +92 -0
  272. package/dist/_chunk/visually-hidden.jsx.map +1 -0
  273. package/dist/actiongroup/index.js +2 -0
  274. package/dist/actiongroup/index.jsx +2 -0
  275. package/dist/autocomplete/createAutocomplete.d.ts +2 -0
  276. package/dist/autocomplete/createAutocomplete.d.ts.map +1 -1
  277. package/dist/autocomplete/index.js +2 -0
  278. package/dist/autocomplete/index.jsx +2 -0
  279. package/dist/breadcrumbs/index.js +2 -0
  280. package/dist/breadcrumbs/index.jsx +2 -0
  281. package/dist/button/index.js +2 -0
  282. package/dist/button/index.jsx +2 -0
  283. package/dist/calendar/createCalendar.d.ts.map +1 -1
  284. package/dist/calendar/createCalendarCell.d.ts.map +1 -1
  285. package/dist/calendar/createCalendarGrid.d.ts.map +1 -1
  286. package/dist/calendar/createCalendarMonthPicker.d.ts +41 -0
  287. package/dist/calendar/createCalendarMonthPicker.d.ts.map +1 -0
  288. package/dist/calendar/createCalendarYearPicker.d.ts +49 -0
  289. package/dist/calendar/createCalendarYearPicker.d.ts.map +1 -0
  290. package/dist/calendar/createRangeCalendar.d.ts.map +1 -1
  291. package/dist/calendar/index.d.ts +2 -0
  292. package/dist/calendar/index.d.ts.map +1 -1
  293. package/dist/calendar/index.js +2 -0
  294. package/dist/calendar/index.jsx +2 -0
  295. package/dist/calendar/utils.d.ts +4 -0
  296. package/dist/calendar/utils.d.ts.map +1 -1
  297. package/dist/checkbox/createCheckbox.d.ts +4 -0
  298. package/dist/checkbox/createCheckbox.d.ts.map +1 -1
  299. package/dist/checkbox/createCheckboxGroupItem.d.ts.map +1 -1
  300. package/dist/checkbox/index.js +2 -0
  301. package/dist/checkbox/index.jsx +2 -0
  302. package/dist/collections/index.js +160 -0
  303. package/dist/collections/index.js.map +1 -0
  304. package/dist/collections/index.jsx +160 -0
  305. package/dist/collections/index.jsx.map +1 -0
  306. package/dist/color/index.js +2 -0
  307. package/dist/color/index.jsx +2 -0
  308. package/dist/combobox/index.js +2 -0
  309. package/dist/combobox/index.jsx +2 -0
  310. package/dist/datepicker/createDateSegment.d.ts.map +1 -1
  311. package/dist/datepicker/index.js +2 -0
  312. package/dist/datepicker/index.jsx +2 -0
  313. package/dist/dialog/index.js +2 -0
  314. package/dist/dialog/index.jsx +2 -0
  315. package/dist/disclosure/index.js +2 -0
  316. package/dist/disclosure/index.jsx +2 -0
  317. package/dist/dnd/createDroppableCollection.d.ts.map +1 -1
  318. package/dist/dnd/index.js +2 -0
  319. package/dist/dnd/index.jsx +2 -0
  320. package/dist/dnd/utils.d.ts +2 -2
  321. package/dist/dnd/utils.d.ts.map +1 -1
  322. package/dist/focus/FocusScope.d.ts.map +1 -1
  323. package/dist/focus/index.js +2 -0
  324. package/dist/focus/index.jsx +2 -0
  325. package/dist/form/createFormValidation.d.ts.map +1 -1
  326. package/dist/form/index.js +3 -0
  327. package/dist/form/index.jsx +3 -0
  328. package/dist/grid/index.js +2 -0
  329. package/dist/grid/index.jsx +2 -0
  330. package/dist/gridlist/createGridList.d.ts +7 -1
  331. package/dist/gridlist/createGridList.d.ts.map +1 -1
  332. package/dist/gridlist/createGridListItem.d.ts +1 -1
  333. package/dist/gridlist/createGridListItem.d.ts.map +1 -1
  334. package/dist/gridlist/createGridListSection.d.ts +15 -0
  335. package/dist/gridlist/createGridListSection.d.ts.map +1 -0
  336. package/dist/gridlist/index.d.ts +2 -1
  337. package/dist/gridlist/index.d.ts.map +1 -1
  338. package/dist/gridlist/index.js +2 -0
  339. package/dist/gridlist/index.jsx +2 -0
  340. package/dist/gridlist/types.d.ts +50 -0
  341. package/dist/gridlist/types.d.ts.map +1 -1
  342. package/dist/i18n/index.js +3 -0
  343. package/dist/i18n/index.jsx +3 -0
  344. package/dist/index.d.ts +7 -3
  345. package/dist/index.d.ts.map +1 -1
  346. package/dist/index.js +71 -18311
  347. package/dist/index.jsx +71 -18242
  348. package/dist/interactions/PressEvent.d.ts +11 -0
  349. package/dist/interactions/PressEvent.d.ts.map +1 -1
  350. package/dist/interactions/createInteractionModality.d.ts +0 -1
  351. package/dist/interactions/createInteractionModality.d.ts.map +1 -1
  352. package/dist/interactions/createKeyboard.d.ts.map +1 -1
  353. package/dist/interactions/createPress.d.ts.map +1 -1
  354. package/dist/interactions/index.js +10 -0
  355. package/dist/interactions/index.jsx +10 -0
  356. package/dist/label/index.js +4 -0
  357. package/dist/label/index.jsx +4 -0
  358. package/dist/landmark/index.js +2 -0
  359. package/dist/landmark/index.jsx +2 -0
  360. package/dist/link/index.js +2 -0
  361. package/dist/link/index.jsx +2 -0
  362. package/dist/listbox/createListBox.d.ts +37 -0
  363. package/dist/listbox/createListBox.d.ts.map +1 -1
  364. package/dist/listbox/createOption.d.ts +6 -0
  365. package/dist/listbox/createOption.d.ts.map +1 -1
  366. package/dist/listbox/index.js +2 -0
  367. package/dist/listbox/index.jsx +2 -0
  368. package/dist/live-announcer/index.js +2 -0
  369. package/dist/live-announcer/index.jsx +2 -0
  370. package/dist/menu/createMenu.d.ts +7 -4
  371. package/dist/menu/createMenu.d.ts.map +1 -1
  372. package/dist/menu/createMenuItem.d.ts +9 -1
  373. package/dist/menu/createMenuItem.d.ts.map +1 -1
  374. package/dist/menu/index.js +2 -0
  375. package/dist/menu/index.jsx +2 -0
  376. package/dist/meter/index.js +2 -0
  377. package/dist/meter/index.jsx +2 -0
  378. package/dist/numberfield/createNumberField.d.ts.map +1 -1
  379. package/dist/numberfield/index.js +2 -0
  380. package/dist/numberfield/index.jsx +2 -0
  381. package/dist/overlays/index.js +4 -0
  382. package/dist/overlays/index.jsx +4 -0
  383. package/dist/popover/calculatePosition.d.ts +2 -0
  384. package/dist/popover/calculatePosition.d.ts.map +1 -1
  385. package/dist/popover/createOverlayPosition.d.ts +8 -0
  386. package/dist/popover/createOverlayPosition.d.ts.map +1 -1
  387. package/dist/popover/index.js +2 -0
  388. package/dist/popover/index.jsx +2 -0
  389. package/dist/progress/index.js +2 -0
  390. package/dist/progress/index.jsx +2 -0
  391. package/dist/radio/createRadio.d.ts +2 -0
  392. package/dist/radio/createRadio.d.ts.map +1 -1
  393. package/dist/radio/index.js +2 -0
  394. package/dist/radio/index.jsx +2 -0
  395. package/dist/searchfield/index.js +2 -0
  396. package/dist/searchfield/index.jsx +2 -0
  397. package/dist/select/createSelect.d.ts.map +1 -1
  398. package/dist/select/index.js +2 -0
  399. package/dist/select/index.jsx +2 -0
  400. package/dist/selection/DOMLayoutDelegate.d.ts +58 -0
  401. package/dist/selection/DOMLayoutDelegate.d.ts.map +1 -0
  402. package/dist/selection/ListKeyboardDelegate.d.ts +95 -0
  403. package/dist/selection/ListKeyboardDelegate.d.ts.map +1 -0
  404. package/dist/selection/constants.d.ts +15 -0
  405. package/dist/selection/constants.d.ts.map +1 -0
  406. package/dist/selection/createCollectionRowInteraction.d.ts +13 -0
  407. package/dist/selection/createCollectionRowInteraction.d.ts.map +1 -0
  408. package/dist/selection/createScrollIntoViewOnFocus.d.ts +31 -0
  409. package/dist/selection/createScrollIntoViewOnFocus.d.ts.map +1 -0
  410. package/dist/selection/createSelectableCollection.d.ts +69 -0
  411. package/dist/selection/createSelectableCollection.d.ts.map +1 -0
  412. package/dist/selection/createSelectableItem.d.ts +154 -0
  413. package/dist/selection/createSelectableItem.d.ts.map +1 -0
  414. package/dist/selection/createSelectableList.d.ts +43 -0
  415. package/dist/selection/createSelectableList.d.ts.map +1 -0
  416. package/dist/selection/createTypeSelect.d.ts.map +1 -1
  417. package/dist/selection/index.d.ts +9 -0
  418. package/dist/selection/index.d.ts.map +1 -1
  419. package/dist/selection/index.js +4 -0
  420. package/dist/selection/index.jsx +4 -0
  421. package/dist/selection/selectItem.d.ts +29 -0
  422. package/dist/selection/selectItem.d.ts.map +1 -0
  423. package/dist/selection/utils.d.ts +40 -0
  424. package/dist/selection/utils.d.ts.map +1 -0
  425. package/dist/separator/index.js +2 -0
  426. package/dist/separator/index.jsx +2 -0
  427. package/dist/slider/createSlider.d.ts.map +1 -1
  428. package/dist/slider/index.js +2 -0
  429. package/dist/slider/index.jsx +2 -0
  430. package/dist/ssr/index.d.ts +17 -0
  431. package/dist/ssr/index.d.ts.map +1 -1
  432. package/dist/ssr/index.js +299 -0
  433. package/dist/ssr/index.js.map +1 -0
  434. package/dist/ssr/index.jsx +292 -0
  435. package/dist/ssr/index.jsx.map +1 -0
  436. package/dist/steplist/index.js +2 -0
  437. package/dist/steplist/index.jsx +2 -0
  438. package/dist/switch/createSwitch.d.ts +4 -0
  439. package/dist/switch/createSwitch.d.ts.map +1 -1
  440. package/dist/switch/index.js +2 -0
  441. package/dist/switch/index.jsx +2 -0
  442. package/dist/table/createTable.d.ts.map +1 -1
  443. package/dist/table/createTableRow.d.ts +1 -1
  444. package/dist/table/createTableRow.d.ts.map +1 -1
  445. package/dist/table/createTableSelectAllCheckbox.d.ts.map +1 -1
  446. package/dist/table/index.js +2 -0
  447. package/dist/table/index.jsx +2 -0
  448. package/dist/table/types.d.ts +27 -1
  449. package/dist/table/types.d.ts.map +1 -1
  450. package/dist/tabs/createTabs.d.ts +4 -3
  451. package/dist/tabs/createTabs.d.ts.map +1 -1
  452. package/dist/tabs/index.js +2 -0
  453. package/dist/tabs/index.jsx +2 -0
  454. package/dist/tag/createTag.d.ts +2 -0
  455. package/dist/tag/createTag.d.ts.map +1 -1
  456. package/dist/tag/index.js +2 -0
  457. package/dist/tag/index.jsx +2 -0
  458. package/dist/textfield/index.js +2 -0
  459. package/dist/textfield/index.jsx +2 -0
  460. package/dist/toast/createToast.d.ts.map +1 -1
  461. package/dist/toast/index.js +2 -0
  462. package/dist/toast/index.jsx +2 -0
  463. package/dist/toggle/createToggle.d.ts +4 -0
  464. package/dist/toggle/createToggle.d.ts.map +1 -1
  465. package/dist/toggle/index.js +3 -0
  466. package/dist/toggle/index.jsx +3 -0
  467. package/dist/toolbar/createToolbar.d.ts +1 -1
  468. package/dist/toolbar/createToolbar.d.ts.map +1 -1
  469. package/dist/toolbar/index.js +2 -0
  470. package/dist/toolbar/index.jsx +2 -0
  471. package/dist/tooltip/index.js +2 -0
  472. package/dist/tooltip/index.jsx +2 -0
  473. package/dist/tree/createTree.d.ts +5 -1
  474. package/dist/tree/createTree.d.ts.map +1 -1
  475. package/dist/tree/createTreeItem.d.ts +1 -1
  476. package/dist/tree/createTreeItem.d.ts.map +1 -1
  477. package/dist/tree/index.js +2 -0
  478. package/dist/tree/index.jsx +2 -0
  479. package/dist/tree/types.d.ts +10 -0
  480. package/dist/tree/types.d.ts.map +1 -1
  481. package/dist/utils/animation.d.ts +60 -0
  482. package/dist/utils/animation.d.ts.map +1 -0
  483. package/dist/utils/dom.d.ts +48 -2
  484. package/dist/utils/dom.d.ts.map +1 -1
  485. package/dist/utils/index.d.ts +4 -1
  486. package/dist/utils/index.d.ts.map +1 -1
  487. package/dist/utils/index.js +5 -0
  488. package/dist/utils/index.jsx +5 -0
  489. package/dist/utils/keyboard.d.ts +17 -0
  490. package/dist/utils/keyboard.d.ts.map +1 -0
  491. package/dist/utils/mergeProps.d.ts.map +1 -1
  492. package/dist/utils/scrollIntoView.d.ts +30 -0
  493. package/dist/utils/scrollIntoView.d.ts.map +1 -0
  494. package/dist/visually-hidden/index.js +2 -0
  495. package/dist/visually-hidden/index.jsx +2 -0
  496. package/package.json +304 -3
  497. package/src/autocomplete/createAutocomplete.ts +67 -21
  498. package/src/calendar/createCalendar.ts +2 -0
  499. package/src/calendar/createCalendarCell.ts +19 -2
  500. package/src/calendar/createCalendarGrid.ts +43 -9
  501. package/src/calendar/createCalendarMonthPicker.ts +105 -0
  502. package/src/calendar/createCalendarYearPicker.ts +144 -0
  503. package/src/calendar/createRangeCalendar.ts +2 -0
  504. package/src/calendar/index.ts +17 -0
  505. package/src/calendar/utils.ts +4 -0
  506. package/src/checkbox/createCheckbox.ts +10 -0
  507. package/src/checkbox/createCheckboxGroupItem.ts +12 -16
  508. package/src/datepicker/createDateSegment.ts +6 -1
  509. package/src/dnd/createDroppableCollection.ts +4 -1
  510. package/src/dnd/utils.ts +27 -3
  511. package/src/focus/FocusScope.tsx +152 -18
  512. package/src/form/createFormValidation.ts +8 -1
  513. package/src/gridlist/createGridList.ts +145 -42
  514. package/src/gridlist/createGridListItem.ts +87 -155
  515. package/src/gridlist/createGridListSection.ts +54 -0
  516. package/src/gridlist/index.ts +3 -0
  517. package/src/gridlist/types.ts +47 -0
  518. package/src/index.ts +40 -0
  519. package/src/interactions/PressEvent.ts +14 -0
  520. package/src/interactions/createInteractionModality.ts +21 -12
  521. package/src/interactions/createKeyboard.ts +10 -0
  522. package/src/interactions/createPress.ts +29 -6
  523. package/src/listbox/createListBox.ts +129 -8
  524. package/src/listbox/createOption.ts +68 -73
  525. package/src/menu/createMenu.ts +93 -16
  526. package/src/menu/createMenuItem.ts +253 -41
  527. package/src/numberfield/createNumberField.ts +82 -14
  528. package/src/popover/calculatePosition.ts +19 -7
  529. package/src/popover/createOverlayPosition.ts +9 -0
  530. package/src/radio/createRadio.ts +19 -2
  531. package/src/select/createSelect.ts +18 -2
  532. package/src/selection/DOMLayoutDelegate.ts +102 -0
  533. package/src/selection/ListKeyboardDelegate.ts +398 -0
  534. package/src/selection/constants.ts +16 -0
  535. package/src/selection/createCollectionRowInteraction.ts +209 -0
  536. package/src/selection/createScrollIntoViewOnFocus.ts +65 -0
  537. package/src/selection/createSelectableCollection.ts +645 -0
  538. package/src/selection/createSelectableItem.ts +498 -0
  539. package/src/selection/createSelectableList.ts +93 -0
  540. package/src/selection/createTypeSelect.ts +112 -51
  541. package/src/selection/index.ts +31 -0
  542. package/src/selection/selectItem.ts +80 -0
  543. package/src/selection/utils.ts +82 -0
  544. package/src/slider/createSlider.ts +48 -1
  545. package/src/ssr/index.tsx +31 -0
  546. package/src/switch/createSwitch.ts +10 -0
  547. package/src/table/createTable.ts +56 -26
  548. package/src/table/createTableRow.ts +198 -203
  549. package/src/table/createTableSelectAllCheckbox.ts +3 -4
  550. package/src/table/types.ts +29 -1
  551. package/src/tabs/createTabs.ts +50 -20
  552. package/src/tag/createTag.ts +9 -4
  553. package/src/toast/createToast.ts +1 -0
  554. package/src/toggle/createToggle.ts +20 -0
  555. package/src/toolbar/createToolbar.ts +43 -42
  556. package/src/tree/createTree.ts +100 -42
  557. package/src/tree/createTreeItem.ts +105 -120
  558. package/src/tree/types.ts +10 -0
  559. package/src/utils/animation.ts +151 -0
  560. package/src/utils/dom.ts +215 -25
  561. package/src/utils/index.ts +8 -0
  562. package/src/utils/keyboard.ts +25 -0
  563. package/src/utils/mergeProps.ts +8 -1
  564. package/src/utils/scrollIntoView.ts +181 -0
  565. package/dist/index.js.map +0 -1
  566. package/dist/index.jsx.map +0 -1
@@ -0,0 +1,1036 @@
1
+ import { i as access, o as mergeProps } from "./env.jsx";
2
+ import { S as scrollIntoViewport, i as createDescription } from "./utils.jsx";
3
+ import { l as getScrollParent, t as focusSafely } from "./focus.jsx";
4
+ import { o as getInteractionModality } from "./createInteractionModality.jsx";
5
+ import { t as createFocusRing } from "./createFocusRing.jsx";
6
+ import { a as useLocale } from "./createCollator.jsx";
7
+ import { createId } from "../ssr/index.jsx";
8
+ import { createEffect, createMemo, createSignal } from "solid-js";
9
+ import { LocalizedStringDictionary, LocalizedStringFormatter } from "@internationalized/string";
10
+ import { DateFormatter, endOfMonth, getLocalTimeZone, isSameDay, isSameYear, isToday, startOfMonth, startOfWeek, toCalendarDate, today } from "@internationalized/date";
11
+ //#region src/calendar/intl/index.ts
12
+ const calendarPromptDictionary = new LocalizedStringDictionary({
13
+ "ar-AE": {
14
+ startRangeSelectionPrompt: "انقر لبدء عملية تحديد نطاق التاريخ",
15
+ finishRangeSelectionPrompt: "انقر لإنهاء عملية تحديد نطاق التاريخ"
16
+ },
17
+ "bg-BG": {
18
+ startRangeSelectionPrompt: "Натиснете, за да пристъпите към избора на времеви интервал",
19
+ finishRangeSelectionPrompt: "Натиснете, за да довършите избора на времеви интервал"
20
+ },
21
+ "cs-CZ": {
22
+ startRangeSelectionPrompt: "Kliknutím zahájíte výběr rozsahu dat",
23
+ finishRangeSelectionPrompt: "Kliknutím dokončíte výběr rozsahu dat"
24
+ },
25
+ "da-DK": {
26
+ startRangeSelectionPrompt: "Klik for at starte valg af datoområde",
27
+ finishRangeSelectionPrompt: "Klik for at fuldføre valg af datoområde"
28
+ },
29
+ "de-DE": {
30
+ startRangeSelectionPrompt: "Klicken, um die Auswahl des Datumsbereichs zu beginnen",
31
+ finishRangeSelectionPrompt: "Klicken, um die Auswahl des Datumsbereichs zu beenden"
32
+ },
33
+ "el-GR": {
34
+ startRangeSelectionPrompt: "Κάντε κλικ για να ξεκινήσετε την επιλογή εύρους ημερομηνιών",
35
+ finishRangeSelectionPrompt: "Κάντε κλικ για να ολοκληρώσετε την επιλογή εύρους ημερομηνιών"
36
+ },
37
+ "en-US": {
38
+ startRangeSelectionPrompt: "Click to start selecting date range",
39
+ finishRangeSelectionPrompt: "Click to finish selecting date range"
40
+ },
41
+ "es-ES": {
42
+ startRangeSelectionPrompt: "Haga clic para comenzar a seleccionar un rango de fechas",
43
+ finishRangeSelectionPrompt: "Haga clic para terminar de seleccionar rango de fechas"
44
+ },
45
+ "et-EE": {
46
+ startRangeSelectionPrompt: "Klõpsake kuupäevavahemiku valimiseks",
47
+ finishRangeSelectionPrompt: "Klõpsake kuupäevavahemiku valimise lõpetamiseks"
48
+ },
49
+ "fi-FI": {
50
+ startRangeSelectionPrompt: "Aloita päivämääräalueen valinta napsauttamalla tätä.",
51
+ finishRangeSelectionPrompt: "Lopeta päivämääräalueen valinta napsauttamalla tätä."
52
+ },
53
+ "fr-FR": {
54
+ startRangeSelectionPrompt: "Cliquer pour commencer à sélectionner la plage de dates",
55
+ finishRangeSelectionPrompt: "Cliquer pour finir de sélectionner la plage de dates"
56
+ },
57
+ "he-IL": {
58
+ startRangeSelectionPrompt: "לחץ כדי להתחיל בבחירת טווח התאריכים",
59
+ finishRangeSelectionPrompt: "חץ כדי לסיים את בחירת טווח התאריכים"
60
+ },
61
+ "hr-HR": {
62
+ startRangeSelectionPrompt: "Kliknite da započnete raspon odabranih datuma",
63
+ finishRangeSelectionPrompt: "Kliknite da dovršite raspon odabranih datuma"
64
+ },
65
+ "hu-HU": {
66
+ startRangeSelectionPrompt: "Kattintson a dátumtartomány kijelölésének indításához",
67
+ finishRangeSelectionPrompt: "Kattintson a dátumtartomány kijelölésének befejezéséhez"
68
+ },
69
+ "it-IT": {
70
+ startRangeSelectionPrompt: "Fai clic per selezionare l’intervallo di date",
71
+ finishRangeSelectionPrompt: "Fai clic per completare la selezione dell’intervallo di date"
72
+ },
73
+ "ja-JP": {
74
+ startRangeSelectionPrompt: "クリックして日付範囲の選択を開始",
75
+ finishRangeSelectionPrompt: "クリックして日付範囲の選択を終了"
76
+ },
77
+ "ko-KR": {
78
+ startRangeSelectionPrompt: "날짜 범위 선택을 시작하려면 클릭하십시오.",
79
+ finishRangeSelectionPrompt: "날짜 범위 선택을 완료하려면 클릭하십시오."
80
+ },
81
+ "lt-LT": {
82
+ startRangeSelectionPrompt: "Spustelėkite, kad pradėtumėte pasirinkti datų intervalą",
83
+ finishRangeSelectionPrompt: "Spustelėkite, kad baigtumėte pasirinkti datų intervalą"
84
+ },
85
+ "lv-LV": {
86
+ startRangeSelectionPrompt: "Noklikšķiniet, lai sāktu datumu diapazona atlasi",
87
+ finishRangeSelectionPrompt: "Noklikšķiniet, lai pabeigtu datumu diapazona atlasi"
88
+ },
89
+ "nb-NO": {
90
+ startRangeSelectionPrompt: "Klikk for å starte valg av datoområde",
91
+ finishRangeSelectionPrompt: "Klikk for å fullføre valg av datoområde"
92
+ },
93
+ "nl-NL": {
94
+ startRangeSelectionPrompt: "Klik om het datumbereik te selecteren",
95
+ finishRangeSelectionPrompt: "Klik om de selectie van het datumbereik te voltooien"
96
+ },
97
+ "pl-PL": {
98
+ startRangeSelectionPrompt: "Kliknij, aby rozpocząć wybór zakresu dat",
99
+ finishRangeSelectionPrompt: "Kliknij, aby zakończyć wybór zakresu dat"
100
+ },
101
+ "pt-BR": {
102
+ startRangeSelectionPrompt: "Clique para iniciar a seleção do intervalo de datas",
103
+ finishRangeSelectionPrompt: "Clique para concluir a seleção do intervalo de datas"
104
+ },
105
+ "pt-PT": {
106
+ startRangeSelectionPrompt: "Clique para começar a selecionar o intervalo de datas",
107
+ finishRangeSelectionPrompt: "Clique para terminar de selecionar o intervalo de datas"
108
+ },
109
+ "ro-RO": {
110
+ startRangeSelectionPrompt: "Apăsaţi pentru a începe selecţia razei pentru dată",
111
+ finishRangeSelectionPrompt: "Apăsaţi pentru a finaliza selecţia razei pentru dată"
112
+ },
113
+ "ru-RU": {
114
+ startRangeSelectionPrompt: "Щелкните, чтобы начать выбор диапазона дат",
115
+ finishRangeSelectionPrompt: "Щелкните, чтобы завершить выбор диапазона дат"
116
+ },
117
+ "sk-SK": {
118
+ startRangeSelectionPrompt: "Kliknutím spustíte výber rozsahu dátumov",
119
+ finishRangeSelectionPrompt: "Kliknutím dokončíte výber rozsahu dátumov"
120
+ },
121
+ "sl-SI": {
122
+ startRangeSelectionPrompt: "Kliknite za začetek izbire datumskega obsega",
123
+ finishRangeSelectionPrompt: "Kliknite za dokončanje izbire datumskega obsega"
124
+ },
125
+ "sr-SP": {
126
+ startRangeSelectionPrompt: "Kliknite da započnete opseg izabranih datuma",
127
+ finishRangeSelectionPrompt: "Kliknite da dovršite opseg izabranih datuma"
128
+ },
129
+ "sv-SE": {
130
+ startRangeSelectionPrompt: "Klicka för att välja datumintervall",
131
+ finishRangeSelectionPrompt: "Klicka för att avsluta val av datumintervall"
132
+ },
133
+ "tr-TR": {
134
+ startRangeSelectionPrompt: "Tarih aralığı seçimini başlatmak için tıklayın",
135
+ finishRangeSelectionPrompt: "Tarih aralığı seçimini tamamlamak için tıklayın"
136
+ },
137
+ "uk-UA": {
138
+ startRangeSelectionPrompt: "Натисніть, щоб почати вибір діапазону дат",
139
+ finishRangeSelectionPrompt: "Натисніть, щоб завершити вибір діапазону дат"
140
+ },
141
+ "zh-CN": {
142
+ startRangeSelectionPrompt: "单击以开始选择日期范围",
143
+ finishRangeSelectionPrompt: "单击以完成选择日期范围"
144
+ },
145
+ "zh-TW": {
146
+ startRangeSelectionPrompt: "按一下以開始選取日期範圍",
147
+ finishRangeSelectionPrompt: "按一下以完成選取日期範圍"
148
+ }
149
+ });
150
+ const calendarLabelDictionary = new LocalizedStringDictionary({
151
+ "en-US": {
152
+ dateRange: (args) => `${args?.startDate} to ${args?.endDate}`,
153
+ dateSelected: (args) => `${args?.date} selected`,
154
+ maximumDate: "Last available date",
155
+ minimumDate: "First available date",
156
+ selectedDateDescription: (args) => `Selected Date: ${args?.date}`,
157
+ selectedRangeDescription: (args) => `Selected Range: ${args?.dateRange}`,
158
+ todayDate: (args) => `Today, ${args?.date}`,
159
+ todayDateSelected: (args) => `Today, ${args?.date} selected`
160
+ },
161
+ "fr-FR": {
162
+ dateRange: (args) => `${args?.startDate} à ${args?.endDate}`,
163
+ dateSelected: (args) => `${args?.date} sélectionné`,
164
+ maximumDate: "Dernière date disponible",
165
+ minimumDate: "Première date disponible",
166
+ selectedDateDescription: (args) => `Date sélectionnée : ${args?.date}`,
167
+ selectedRangeDescription: (args) => `Plage sélectionnée : ${args?.dateRange}`,
168
+ todayDate: (args) => `Aujourd'hui, ${args?.date}`,
169
+ todayDateSelected: (args) => `Aujourd’hui, ${args?.date} sélectionné`
170
+ },
171
+ "ar-AE": {
172
+ dateRange: (args) => `${args?.startDate} إلى ${args?.endDate}`,
173
+ dateSelected: (args) => `${args?.date} المحدد`,
174
+ maximumDate: "آخر تاريخ متاح",
175
+ minimumDate: "أول تاريخ متاح",
176
+ selectedDateDescription: (args) => `تاريخ محدد: ${args?.date}`,
177
+ selectedRangeDescription: (args) => `المدى الزمني المحدد: ${args?.dateRange}`,
178
+ todayDate: (args) => `اليوم، ${args?.date}`,
179
+ todayDateSelected: (args) => `اليوم، ${args?.date} محدد`
180
+ }
181
+ });
182
+ function formatCalendarPrompt(locale, key) {
183
+ return new LocalizedStringFormatter(locale, calendarPromptDictionary).format(key);
184
+ }
185
+ function formatCalendarLabel(locale, key, variables) {
186
+ return new LocalizedStringFormatter(locale, calendarLabelDictionary).format(key, variables);
187
+ }
188
+ //#endregion
189
+ //#region src/calendar/utils.ts
190
+ const hookData = /* @__PURE__ */ new WeakMap();
191
+ function setCalendarHookData(state, data) {
192
+ hookData.set(state, data);
193
+ }
194
+ function getCalendarHookData(state) {
195
+ return hookData.get(state);
196
+ }
197
+ function getEraFormat(date) {
198
+ return date?.calendar.identifier === "gregory" && date.era === "BC" ? "short" : void 0;
199
+ }
200
+ function formatVisibleRangeDescription(startDate, endDate, timeZone, locale) {
201
+ const era = getEraFormat(startDate) || getEraFormat(endDate);
202
+ const monthFormatter = new DateFormatter(locale, {
203
+ month: "long",
204
+ year: "numeric",
205
+ era,
206
+ calendar: startDate.calendar.identifier,
207
+ timeZone
208
+ });
209
+ const dateFormatter = new DateFormatter(locale, {
210
+ month: "long",
211
+ year: "numeric",
212
+ day: "numeric",
213
+ era,
214
+ calendar: startDate.calendar.identifier,
215
+ timeZone
216
+ });
217
+ if (isSameDay(startDate, startOfMonth(startDate))) {
218
+ const startMonth = startDate.calendar.getFormattableMonth?.(startDate) ?? startDate;
219
+ const endMonth = endDate.calendar.getFormattableMonth?.(endDate) ?? endDate;
220
+ if (isSameDay(endDate, endOfMonth(startDate))) return monthFormatter.format(startMonth.toDate(timeZone));
221
+ if (isSameDay(endDate, endOfMonth(endDate))) return formatRange(monthFormatter, startMonth, endMonth, timeZone);
222
+ }
223
+ return formatRange(dateFormatter, startDate, endDate, timeZone);
224
+ }
225
+ function formatSelectedDateDescription(state) {
226
+ const locale = state.locale();
227
+ const timeZone = state.timeZone;
228
+ let start;
229
+ let end;
230
+ if ("highlightedRange" in state) {
231
+ const range = state.highlightedRange();
232
+ start = range?.start;
233
+ end = range?.end;
234
+ } else {
235
+ const value = state.value();
236
+ start = value ?? void 0;
237
+ end = value ?? void 0;
238
+ }
239
+ if (("anchorDate" in state ? state.anchorDate() : null) || !start || !end) return "";
240
+ const dateFormatter = new DateFormatter(locale, {
241
+ weekday: "long",
242
+ month: "long",
243
+ year: "numeric",
244
+ day: "numeric",
245
+ era: getEraFormat(start) || getEraFormat(end),
246
+ timeZone
247
+ });
248
+ if (isSameDay(start, end)) return formatCalendarLabel(locale, "selectedDateDescription", { date: dateFormatter.format(start.toDate(timeZone)) });
249
+ return formatCalendarLabel(locale, "selectedRangeDescription", { dateRange: formatLabelRange(dateFormatter, start, end, timeZone, locale) });
250
+ }
251
+ function formatRange(dateFormatter, startDate, endDate, timeZone) {
252
+ const formatter = dateFormatter;
253
+ const start = startDate.toDate(timeZone);
254
+ const end = endDate.toDate(timeZone);
255
+ if (!formatter.formatRangeToParts) return `${dateFormatter.format(start)} to ${dateFormatter.format(end)}`;
256
+ const parts = formatter.formatRangeToParts(start, end);
257
+ let separatorIndex = -1;
258
+ for (let i = 0; i < parts.length; i++) {
259
+ const part = parts[i];
260
+ if (part?.source === "shared" && part.type === "literal") separatorIndex = i;
261
+ else if (part?.source === "endRange") break;
262
+ }
263
+ if (separatorIndex < 0) return `${dateFormatter.format(start)} to ${dateFormatter.format(end)}`;
264
+ let startValue = "";
265
+ let endValue = "";
266
+ for (let i = 0; i < parts.length; i++) {
267
+ const part = parts[i];
268
+ if (!part) continue;
269
+ if (i < separatorIndex) startValue += part.value;
270
+ else if (i > separatorIndex) endValue += part.value;
271
+ }
272
+ return `${startValue} to ${endValue}`;
273
+ }
274
+ function formatLabelRange(dateFormatter, startDate, endDate, timeZone, locale) {
275
+ const formatter = dateFormatter;
276
+ const start = startDate.toDate(timeZone);
277
+ const end = endDate.toDate(timeZone);
278
+ if (!formatter.formatRangeToParts) return formatCalendarLabel(locale, "dateRange", {
279
+ startDate: dateFormatter.format(start),
280
+ endDate: dateFormatter.format(end)
281
+ });
282
+ const parts = formatter.formatRangeToParts(start, end);
283
+ let separatorIndex = -1;
284
+ for (let i = 0; i < parts.length; i++) {
285
+ const part = parts[i];
286
+ if (part?.source === "shared" && part.type === "literal") separatorIndex = i;
287
+ else if (part?.source === "endRange") break;
288
+ }
289
+ if (separatorIndex < 0) return formatCalendarLabel(locale, "dateRange", {
290
+ startDate: dateFormatter.format(start),
291
+ endDate: dateFormatter.format(end)
292
+ });
293
+ let startValue = "";
294
+ let endValue = "";
295
+ for (let i = 0; i < parts.length; i++) {
296
+ const part = parts[i];
297
+ if (!part) continue;
298
+ if (i < separatorIndex) startValue += part.value;
299
+ else if (i > separatorIndex) endValue += part.value;
300
+ }
301
+ return formatCalendarLabel(locale, "dateRange", {
302
+ startDate: startValue,
303
+ endDate: endValue
304
+ });
305
+ }
306
+ //#endregion
307
+ //#region src/calendar/createCalendar.ts
308
+ /**
309
+ * createCalendar hook for Solidaria
310
+ *
311
+ * Provides the behavior and accessibility implementation for a calendar component.
312
+ * Based on @react-aria/calendar useCalendar
313
+ */
314
+ /**
315
+ * Provides the behavior and accessibility implementation for a calendar component.
316
+ */
317
+ function createCalendar(props, state) {
318
+ const getProps = () => access(props);
319
+ const id = createId(getProps().id);
320
+ const titleId = createId();
321
+ const errorMessageId = createId(getProps().errorMessageId);
322
+ const title = createMemo(() => state.title());
323
+ const visibleRangeDescription = createMemo(() => {
324
+ const range = state.visibleRange();
325
+ return formatVisibleRangeDescription(range.start, range.end, state.timeZone, state.locale());
326
+ });
327
+ const calendarLabel = createMemo(() => {
328
+ return [getProps()["aria-label"], visibleRangeDescription()].filter(Boolean).join(", ");
329
+ });
330
+ const initialProps = getProps();
331
+ if (initialProps.id || initialProps["aria-label"] || initialProps["aria-labelledby"] || initialProps["aria-describedby"] || initialProps["aria-details"] || initialProps.errorMessage || initialProps.errorMessageId) setCalendarHookData(state, {
332
+ errorMessageId: initialProps.errorMessage || initialProps.errorMessageId ? errorMessageId : void 0,
333
+ ariaLabel: initialProps["aria-label"],
334
+ ariaLabelledBy: initialProps["aria-labelledby"]
335
+ });
336
+ const prevButtonProps = createMemo(() => {
337
+ const isDisabled = getProps().isDisabled || state.isDisabled();
338
+ return {
339
+ "aria-label": "Previous month",
340
+ onClick: () => {
341
+ if (!isDisabled) state.focusPreviousPage();
342
+ },
343
+ disabled: isDisabled,
344
+ tabIndex: -1
345
+ };
346
+ });
347
+ const nextButtonProps = createMemo(() => {
348
+ const isDisabled = getProps().isDisabled || state.isDisabled();
349
+ return {
350
+ "aria-label": "Next month",
351
+ onClick: () => {
352
+ if (!isDisabled) state.focusNextPage();
353
+ },
354
+ disabled: isDisabled,
355
+ tabIndex: -1
356
+ };
357
+ });
358
+ const titleProps = createMemo(() => ({
359
+ id: titleId,
360
+ "aria-live": "polite"
361
+ }));
362
+ const errorMessageProps = createMemo(() => ({ id: errorMessageId }));
363
+ const calendarProps = createMemo(() => {
364
+ const p = getProps();
365
+ return mergeProps({
366
+ id,
367
+ role: "application",
368
+ "aria-labelledby": p["aria-labelledby"],
369
+ "aria-label": calendarLabel(),
370
+ "aria-describedby": p["aria-describedby"],
371
+ "aria-details": p["aria-details"]
372
+ });
373
+ });
374
+ return {
375
+ get calendarProps() {
376
+ return calendarProps();
377
+ },
378
+ get prevButtonProps() {
379
+ return prevButtonProps();
380
+ },
381
+ get nextButtonProps() {
382
+ return nextButtonProps();
383
+ },
384
+ get titleProps() {
385
+ return titleProps();
386
+ },
387
+ get errorMessageProps() {
388
+ return errorMessageProps();
389
+ },
390
+ get title() {
391
+ return title();
392
+ }
393
+ };
394
+ }
395
+ //#endregion
396
+ //#region src/calendar/createCalendarMonthPicker.ts
397
+ /**
398
+ * createCalendarMonthPicker hook for Solidaria
399
+ *
400
+ * Provides the behavior and accessibility implementation for a month picker
401
+ * within a calendar — a listbox/select that jumps the focused date to a chosen
402
+ * month of the focused year.
403
+ * Based on @react-aria/calendar useCalendarMonthPicker.
404
+ */
405
+ /**
406
+ * Provides the behavior and accessibility implementation for a month picker
407
+ * within a calendar.
408
+ */
409
+ function createCalendarMonthPicker(props, state) {
410
+ const getProps = () => access(props);
411
+ const locale = useLocale();
412
+ const formatter = createMemo(() => new DateFormatter(locale().locale, {
413
+ month: getProps().format ?? "short",
414
+ calendar: state.focusedDate().calendar.identifier,
415
+ timeZone: state.timeZone
416
+ }));
417
+ const items = createMemo(() => {
418
+ const focused = state.focusedDate();
419
+ const fmt = formatter();
420
+ const numMonths = focused.calendar.getMonthsInYear(focused);
421
+ const months = [];
422
+ for (let i = 1; i <= numMonths; i++) {
423
+ const date = focused.set({ month: i });
424
+ const displayDate = date.calendar.getFormattableMonth?.(date) ?? date;
425
+ months.push({
426
+ id: i,
427
+ date,
428
+ formatted: fmt.format(displayDate.toDate(state.timeZone))
429
+ });
430
+ }
431
+ return months;
432
+ });
433
+ const ariaLabel = createMemo(() => new Intl.DisplayNames(locale().locale, { type: "dateTimeField" }).of("month") ?? "month");
434
+ return {
435
+ get "aria-label"() {
436
+ return ariaLabel();
437
+ },
438
+ get value() {
439
+ return state.focusedDate().month;
440
+ },
441
+ onChange: (key) => {
442
+ if (key != null) state.setFocusedDate(items()[Number(key) - 1].date);
443
+ },
444
+ get items() {
445
+ return items();
446
+ }
447
+ };
448
+ }
449
+ //#endregion
450
+ //#region src/calendar/createCalendarYearPicker.ts
451
+ /**
452
+ * createCalendarYearPicker hook for Solidaria
453
+ *
454
+ * Provides the behavior and accessibility implementation for a year picker
455
+ * within a calendar — a listbox/select that jumps the focused date to a chosen
456
+ * year within a sliding window centered on the focused year.
457
+ * Based on @react-aria/calendar useCalendarYearPicker.
458
+ */
459
+ /**
460
+ * Provides the behavior and accessibility implementation for a year picker
461
+ * within a calendar.
462
+ */
463
+ function createCalendarYearPicker(props, state) {
464
+ const getProps = () => access(props);
465
+ const locale = useLocale();
466
+ const formatter = createMemo(() => {
467
+ const focused = state.focusedDate();
468
+ const format = getProps().format;
469
+ return new DateFormatter(locale().locale, {
470
+ year: format?.year ?? "numeric",
471
+ era: format?.era ?? (focused.calendar.identifier === "gregory" && focused.era === "BC" ? "short" : void 0),
472
+ calendar: focused.calendar.identifier,
473
+ timeZone: state.timeZone
474
+ });
475
+ });
476
+ const data = createMemo(() => {
477
+ const focused = state.focusedDate();
478
+ const fmt = formatter();
479
+ const visibleYears = getProps().visibleYears || 20;
480
+ let minDate = focused.subtract({ years: Math.floor(visibleYears / 2) });
481
+ let maxDate = focused.add({ years: Math.ceil(visibleYears / 2) - 1 });
482
+ const stateMax = state.maxValue();
483
+ const stateMin = state.minValue();
484
+ if (stateMax && maxDate.compare(stateMax) > 0) {
485
+ maxDate = toCalendarDate(stateMax);
486
+ minDate = maxDate.subtract({ years: visibleYears - 1 });
487
+ }
488
+ if (stateMin && minDate.compare(stateMin) < 0) {
489
+ minDate = toCalendarDate(stateMin);
490
+ maxDate = minDate.add({ years: visibleYears - 1 });
491
+ if (stateMax && maxDate.compare(stateMax) > 0) maxDate = toCalendarDate(stateMax);
492
+ }
493
+ const years = [];
494
+ let value = 0;
495
+ let date = minDate;
496
+ while (date.compare(maxDate) <= 0) {
497
+ if (isSameYear(date, focused)) value = years.length;
498
+ years.push({
499
+ id: years.length,
500
+ date,
501
+ formatted: fmt.format(date.toDate(state.timeZone))
502
+ });
503
+ date = date.add({ years: 1 });
504
+ }
505
+ return {
506
+ items: years,
507
+ value
508
+ };
509
+ });
510
+ const ariaLabel = createMemo(() => new Intl.DisplayNames(locale().locale, { type: "dateTimeField" }).of("year") ?? "year");
511
+ return {
512
+ get "aria-label"() {
513
+ return ariaLabel();
514
+ },
515
+ get value() {
516
+ return data().value;
517
+ },
518
+ onChange: (key) => {
519
+ if (key != null) state.setFocusedDate(data().items[Number(key)].date);
520
+ },
521
+ get items() {
522
+ return data().items;
523
+ }
524
+ };
525
+ }
526
+ //#endregion
527
+ //#region src/calendar/createCalendarGrid.ts
528
+ /**
529
+ * createCalendarGrid hook for Solidaria
530
+ *
531
+ * Provides the behavior and accessibility implementation for a calendar grid.
532
+ * Based on @react-aria/calendar useCalendarGrid
533
+ */
534
+ /**
535
+ * Provides the behavior and accessibility implementation for a calendar grid.
536
+ */
537
+ function createCalendarGrid(props, state, ref) {
538
+ const weekDays = createMemo(() => {
539
+ const gridProps = access(props);
540
+ const formatter = new DateFormatter(state.locale(), {
541
+ weekday: gridProps.weekdayStyle ?? "narrow",
542
+ timeZone: state.timeZone
543
+ });
544
+ const weekStart = startOfWeek(today(state.timeZone), state.locale(), state.firstDayOfWeek());
545
+ return Array.from({ length: 7 }, (_, index) => formatter.format(weekStart.add({ days: index }).toDate(state.timeZone)));
546
+ });
547
+ const isRTL = () => {
548
+ const scopedDirection = (ref?.())?.closest("[dir]")?.getAttribute("dir");
549
+ const documentDirection = typeof document !== "undefined" ? document.dir : "";
550
+ return (scopedDirection ?? documentDirection) === "rtl";
551
+ };
552
+ const handleKeyDown = (e) => {
553
+ if (state.isDisabled()) return;
554
+ switch (e.key) {
555
+ case "ArrowLeft":
556
+ e.preventDefault();
557
+ e.stopPropagation();
558
+ if (isRTL()) state.focusNextDay();
559
+ else state.focusPreviousDay();
560
+ break;
561
+ case "ArrowRight":
562
+ e.preventDefault();
563
+ e.stopPropagation();
564
+ if (isRTL()) state.focusPreviousDay();
565
+ else state.focusNextDay();
566
+ break;
567
+ case "ArrowUp":
568
+ e.preventDefault();
569
+ e.stopPropagation();
570
+ state.focusPreviousWeek();
571
+ break;
572
+ case "ArrowDown":
573
+ e.preventDefault();
574
+ e.stopPropagation();
575
+ state.focusNextWeek();
576
+ break;
577
+ case "PageUp":
578
+ e.preventDefault();
579
+ e.stopPropagation();
580
+ if (e.shiftKey) state.focusPreviousSection();
581
+ else state.setFocusedDate(state.focusedDate().subtract({ months: 1 }));
582
+ break;
583
+ case "PageDown":
584
+ e.preventDefault();
585
+ e.stopPropagation();
586
+ if (e.shiftKey) state.focusNextSection();
587
+ else state.setFocusedDate(state.focusedDate().add({ months: 1 }));
588
+ break;
589
+ case "Home":
590
+ e.preventDefault();
591
+ e.stopPropagation();
592
+ state.focusPageStart();
593
+ break;
594
+ case "End":
595
+ e.preventDefault();
596
+ e.stopPropagation();
597
+ state.focusPageEnd();
598
+ break;
599
+ case "Enter":
600
+ case " ":
601
+ e.preventDefault();
602
+ state.selectFocusedDate();
603
+ break;
604
+ case "Escape":
605
+ if ("anchorDate" in state && typeof state.anchorDate === "function" && state.anchorDate() && "setAnchorDate" in state && typeof state.setAnchorDate === "function") {
606
+ e.preventDefault();
607
+ e.stopPropagation();
608
+ state.setAnchorDate(null);
609
+ if ("setDragging" in state && typeof state.setDragging === "function") state.setDragging(false);
610
+ }
611
+ break;
612
+ }
613
+ };
614
+ const isMultiSelectable = () => {
615
+ if ("highlightedRange" in state) return true;
616
+ return "selectionMode" in state && typeof state.selectionMode === "function" && state.selectionMode() === "multiple";
617
+ };
618
+ const visibleRangeDescription = createMemo(() => {
619
+ const gridProps = access(props);
620
+ return formatVisibleRangeDescription(gridProps.startDate ?? state.visibleRange().start, gridProps.endDate ?? state.visibleRange().end, state.timeZone, state.locale());
621
+ });
622
+ const gridProps = createMemo(() => {
623
+ const data = getCalendarHookData(state);
624
+ return {
625
+ role: "grid",
626
+ "aria-label": [data?.ariaLabel, visibleRangeDescription()].filter(Boolean).join(", ") || void 0,
627
+ "aria-labelledby": data?.ariaLabelledBy,
628
+ "aria-readonly": state.isReadOnly() || void 0,
629
+ "aria-disabled": state.isDisabled() || void 0,
630
+ "aria-multiselectable": isMultiSelectable() || void 0,
631
+ tabIndex: state.isFocused() ? 0 : -1,
632
+ onFocus: () => state.setFocused(true),
633
+ onBlur: () => state.setFocused(false),
634
+ onKeyDown: handleKeyDown
635
+ };
636
+ });
637
+ const headerProps = createMemo(() => ({}));
638
+ return {
639
+ get gridProps() {
640
+ return gridProps();
641
+ },
642
+ get headerProps() {
643
+ return headerProps();
644
+ },
645
+ get weekDays() {
646
+ return weekDays();
647
+ }
648
+ };
649
+ }
650
+ //#endregion
651
+ //#region src/calendar/createCalendarCell.ts
652
+ /**
653
+ * createCalendarCell hook for Solidaria
654
+ *
655
+ * Provides the behavior and accessibility implementation for a calendar cell.
656
+ * Based on @react-aria/calendar useCalendarCell
657
+ */
658
+ /**
659
+ * Provides the behavior and accessibility implementation for a calendar cell.
660
+ */
661
+ function createCalendarCell(props, state, ref) {
662
+ const getProps = () => access(props);
663
+ const [isPressed, setIsPressed] = createSignal(false);
664
+ const { focusProps, isFocusVisible: isRingFocusVisible } = createFocusRing();
665
+ const timeZone = getLocalTimeZone();
666
+ const inheritedLocale = useLocale();
667
+ const stateWithLocale = state;
668
+ const locale = () => stateWithLocale.locale?.() ?? inheritedLocale().locale;
669
+ let ignoreNextClick = false;
670
+ const date = createMemo(() => getProps().date);
671
+ const isSelected = createMemo(() => state.isSelected(date()));
672
+ const isFocused = createMemo(() => state.isCellFocused(date()));
673
+ const isInvalid = createMemo(() => state.isValueInvalid() && isSelected());
674
+ const isDisabled = createMemo(() => {
675
+ return getProps().isDisabled || state.isCellDisabled(date());
676
+ });
677
+ const isUnavailable = createMemo(() => state.isCellUnavailable(date()));
678
+ const isOutsideMonth = createMemo(() => getProps().isOutsideMonth ?? state.isOutsideVisibleRange(date()));
679
+ const isToday$2 = createMemo(() => isToday(date(), timeZone));
680
+ const isCellFocusVisible = createMemo(() => isFocused() && isRingFocusVisible() && getInteractionModality() !== null);
681
+ const formattedDate = createMemo(() => {
682
+ const d = date();
683
+ return new DateFormatter(locale(), {
684
+ day: "numeric",
685
+ timeZone,
686
+ calendar: d.calendar.identifier
687
+ }).formatToParts(d.toDate(timeZone)).find((part) => part.type === "day")?.value ?? d.day.toString();
688
+ });
689
+ const handlePointerDown = (e) => {
690
+ if (!isDisabled() && !isUnavailable()) {
691
+ setIsPressed(true);
692
+ state.selectDate(date());
693
+ ignoreNextClick = true;
694
+ e.preventDefault();
695
+ }
696
+ };
697
+ const handleClick = () => {
698
+ if (ignoreNextClick) {
699
+ ignoreNextClick = false;
700
+ return;
701
+ }
702
+ if (!isDisabled() && !isUnavailable()) state.selectDate(date());
703
+ };
704
+ const handlePointerUp = () => {
705
+ setIsPressed(false);
706
+ };
707
+ createEffect(() => {
708
+ const element = ref?.();
709
+ if (element && isFocused()) {
710
+ focusSafely(element);
711
+ if (getInteractionModality() !== "pointer" && document.activeElement === element) scrollIntoViewport(element, { containingElement: getScrollParent(element) });
712
+ }
713
+ });
714
+ const cellProps = createMemo(() => ({
715
+ role: "gridcell",
716
+ "aria-disabled": isDisabled() || isUnavailable() || void 0,
717
+ "aria-selected": isSelected() || void 0,
718
+ "aria-invalid": isInvalid() || void 0
719
+ }));
720
+ const buttonProps = createMemo(() => {
721
+ const d = date();
722
+ let label = new DateFormatter(locale(), {
723
+ weekday: "long",
724
+ year: "numeric",
725
+ month: "long",
726
+ day: "numeric",
727
+ calendar: d.calendar.identifier
728
+ }).format(d.toDate(timeZone));
729
+ if (isToday$2()) label = formatCalendarLabel(locale(), isSelected() ? "todayDateSelected" : "todayDate", { date: label });
730
+ else if (isSelected()) label = formatCalendarLabel(locale(), "dateSelected", { date: label });
731
+ const errorMessageId = getCalendarHookData(state)?.errorMessageId;
732
+ return mergeProps(focusProps, {
733
+ role: "button",
734
+ tabIndex: isFocused() ? 0 : -1,
735
+ "aria-label": label,
736
+ "aria-disabled": isDisabled() || isUnavailable() || void 0,
737
+ "aria-invalid": isInvalid() || void 0,
738
+ "aria-describedby": isInvalid() ? errorMessageId : void 0,
739
+ "aria-pressed": isPressed() || void 0,
740
+ "data-focus-visible": isCellFocusVisible() || void 0,
741
+ disabled: isDisabled() || isUnavailable(),
742
+ onClick: handleClick,
743
+ onPointerDown: handlePointerDown,
744
+ onPointerUp: handlePointerUp,
745
+ onPointerLeave: handlePointerUp,
746
+ onFocus: () => {
747
+ if (!state.isCellFocused(d)) state.setFocusedDate(d);
748
+ state.setFocused(true);
749
+ }
750
+ });
751
+ });
752
+ return {
753
+ get cellProps() {
754
+ return cellProps();
755
+ },
756
+ get buttonProps() {
757
+ return buttonProps();
758
+ },
759
+ get isSelected() {
760
+ return isSelected();
761
+ },
762
+ get isFocused() {
763
+ return isFocused();
764
+ },
765
+ get isFocusVisible() {
766
+ return isCellFocusVisible();
767
+ },
768
+ get isDisabled() {
769
+ return isDisabled();
770
+ },
771
+ get isUnavailable() {
772
+ return isUnavailable();
773
+ },
774
+ get isInvalid() {
775
+ return isInvalid();
776
+ },
777
+ get isOutsideMonth() {
778
+ return isOutsideMonth();
779
+ },
780
+ get isToday() {
781
+ return isToday$2();
782
+ },
783
+ get isPressed() {
784
+ return isPressed();
785
+ },
786
+ get formattedDate() {
787
+ return formattedDate();
788
+ }
789
+ };
790
+ }
791
+ //#endregion
792
+ //#region src/calendar/createRangeCalendar.ts
793
+ /**
794
+ * createRangeCalendar hook for Solidaria
795
+ *
796
+ * Provides the behavior and accessibility implementation for a range calendar component.
797
+ * Based on @react-aria/calendar useRangeCalendar
798
+ */
799
+ /**
800
+ * Provides the behavior and accessibility implementation for a range calendar component.
801
+ */
802
+ function createRangeCalendar(props, state) {
803
+ const getProps = () => access(props);
804
+ const id = createId(getProps().id);
805
+ const titleId = createId();
806
+ const errorMessageId = createId(getProps().errorMessageId);
807
+ const title = createMemo(() => state.title());
808
+ const visibleRangeDescription = createMemo(() => {
809
+ const range = state.visibleRange();
810
+ return formatVisibleRangeDescription(range.start, range.end, state.timeZone, state.locale());
811
+ });
812
+ const calendarLabel = createMemo(() => {
813
+ return [getProps()["aria-label"], visibleRangeDescription()].filter(Boolean).join(", ");
814
+ });
815
+ const selectedDateDescription = createMemo(() => formatSelectedDateDescription(state));
816
+ const initialProps = getProps();
817
+ const existingHookData = getCalendarHookData(state);
818
+ setCalendarHookData(state, {
819
+ errorMessageId: initialProps.errorMessage || initialProps.errorMessageId ? errorMessageId : existingHookData?.errorMessageId,
820
+ ariaLabel: initialProps["aria-label"],
821
+ ariaLabelledBy: initialProps["aria-labelledby"],
822
+ get selectedDateDescription() {
823
+ return selectedDateDescription();
824
+ }
825
+ });
826
+ const prevButtonProps = createMemo(() => {
827
+ const isDisabled = getProps().isDisabled || state.isDisabled() || state.isPreviousVisibleRangeInvalid();
828
+ return {
829
+ "aria-label": "Previous month",
830
+ onClick: () => {
831
+ if (!isDisabled) state.focusPreviousPage();
832
+ },
833
+ disabled: isDisabled,
834
+ tabIndex: -1
835
+ };
836
+ });
837
+ const nextButtonProps = createMemo(() => {
838
+ const isDisabled = getProps().isDisabled || state.isDisabled() || state.isNextVisibleRangeInvalid();
839
+ return {
840
+ "aria-label": "Next month",
841
+ onClick: () => {
842
+ if (!isDisabled) state.focusNextPage();
843
+ },
844
+ disabled: isDisabled,
845
+ tabIndex: -1
846
+ };
847
+ });
848
+ const titleProps = createMemo(() => ({
849
+ id: titleId,
850
+ "aria-live": "polite"
851
+ }));
852
+ const errorMessageProps = createMemo(() => ({ id: errorMessageId }));
853
+ const calendarProps = createMemo(() => {
854
+ const p = getProps();
855
+ return mergeProps({
856
+ id,
857
+ role: "application",
858
+ "aria-labelledby": p["aria-labelledby"],
859
+ "aria-label": calendarLabel(),
860
+ "aria-describedby": p["aria-describedby"],
861
+ "aria-details": p["aria-details"]
862
+ });
863
+ });
864
+ return {
865
+ get calendarProps() {
866
+ return calendarProps();
867
+ },
868
+ get prevButtonProps() {
869
+ return prevButtonProps();
870
+ },
871
+ get nextButtonProps() {
872
+ return nextButtonProps();
873
+ },
874
+ get titleProps() {
875
+ return titleProps();
876
+ },
877
+ get errorMessageProps() {
878
+ return errorMessageProps();
879
+ },
880
+ get title() {
881
+ return title();
882
+ }
883
+ };
884
+ }
885
+ //#endregion
886
+ //#region src/calendar/createRangeCalendarCell.ts
887
+ /**
888
+ * createRangeCalendarCell hook for Solidaria
889
+ *
890
+ * Provides the behavior and accessibility implementation for a range calendar cell.
891
+ * Based on @react-aria/calendar useCalendarCell (with range support)
892
+ */
893
+ /**
894
+ * Provides the behavior and accessibility implementation for a range calendar cell.
895
+ */
896
+ function createRangeCalendarCell(props, state, ref) {
897
+ const getProps = () => access(props);
898
+ const [isPressed, setIsPressed] = createSignal(false);
899
+ const timeZone = getLocalTimeZone();
900
+ const date = createMemo(() => getProps().date);
901
+ const isSelected = createMemo(() => state.isSelected(date()));
902
+ const isSelectionStart = createMemo(() => state.isSelectionStart(date()));
903
+ const isSelectionEnd = createMemo(() => state.isSelectionEnd(date()));
904
+ const isFocused = createMemo(() => state.isCellFocused(date()));
905
+ const isInvalid = createMemo(() => {
906
+ const range = state.highlightedRange();
907
+ const d = date();
908
+ return state.isValueInvalid() && !state.anchorDate() && !!range && d.compare(range.start) >= 0 && d.compare(range.end) <= 0;
909
+ });
910
+ const isDisabled = createMemo(() => {
911
+ return getProps().isDisabled || state.isCellDisabled(date());
912
+ });
913
+ const isUnavailable = createMemo(() => state.isCellUnavailable(date()));
914
+ const isSelectable = createMemo(() => !isDisabled() && !isUnavailable());
915
+ const isOutsideMonth = createMemo(() => {
916
+ return getProps().isOutsideMonth ?? state.isOutsideVisibleRange(date());
917
+ });
918
+ const isToday$1 = createMemo(() => isToday(date(), timeZone));
919
+ const descriptionProps = createDescription(createMemo(() => {
920
+ if (!isFocused() || state.isReadOnly() || !isSelectable()) return;
921
+ return formatCalendarPrompt(state.locale(), state.anchorDate() ? "finishRangeSelectionPrompt" : "startRangeSelectionPrompt");
922
+ }));
923
+ const formattedDate = createMemo(() => {
924
+ return date().day.toString();
925
+ });
926
+ const handlePointerDown = (e) => {
927
+ if (isSelectable()) {
928
+ setIsPressed(true);
929
+ state.selectDate(date());
930
+ e.preventDefault();
931
+ }
932
+ };
933
+ const handleClick = () => {
934
+ if (isSelectable()) state.selectDate(date());
935
+ };
936
+ const handlePointerUp = () => {
937
+ setIsPressed(false);
938
+ };
939
+ const handlePointerEnter = () => {
940
+ if (state.isDragging() && isSelectable()) state.setFocusedDate(date());
941
+ };
942
+ createEffect(() => {
943
+ const element = ref?.();
944
+ if (element && isFocused()) focusSafely(element);
945
+ });
946
+ const cellProps = createMemo(() => ({
947
+ role: "gridcell",
948
+ "aria-disabled": isDisabled() || isUnavailable() || void 0,
949
+ "aria-selected": isSelected() || void 0,
950
+ "aria-invalid": isInvalid() || void 0
951
+ }));
952
+ const buttonProps = createMemo(() => {
953
+ const d = date();
954
+ const formatter = new DateFormatter(state.locale(), {
955
+ weekday: "long",
956
+ year: "numeric",
957
+ month: "long",
958
+ day: "numeric",
959
+ era: getEraFormat(d),
960
+ calendar: d.calendar.identifier,
961
+ timeZone
962
+ });
963
+ const hookData = getCalendarHookData(state);
964
+ let label = "";
965
+ if (hookData?.selectedDateDescription && !state.anchorDate() && state.value() && (state.isSelectionStart(d) || state.isSelectionEnd(d))) label = `${hookData.selectedDateDescription}, `;
966
+ label += formatter.format(d.toDate(timeZone));
967
+ if (isToday$1()) label = formatCalendarLabel(state.locale(), isSelected() ? "todayDateSelected" : "todayDate", { date: label });
968
+ else if (isSelected()) label = formatCalendarLabel(state.locale(), "dateSelected", { date: label });
969
+ const errorMessageId = hookData?.errorMessageId;
970
+ const describedByIds = [isInvalid() ? errorMessageId : void 0, descriptionProps["aria-describedby"]].filter(Boolean);
971
+ return {
972
+ role: "button",
973
+ tabIndex: isFocused() ? 0 : -1,
974
+ "aria-label": label,
975
+ "aria-disabled": isDisabled() || isUnavailable() || void 0,
976
+ "aria-invalid": isInvalid() || void 0,
977
+ "aria-describedby": describedByIds.length ? describedByIds.join(" ") : void 0,
978
+ "aria-pressed": isPressed() || void 0,
979
+ disabled: isDisabled() || isUnavailable(),
980
+ onClick: handleClick,
981
+ onPointerDown: handlePointerDown,
982
+ onPointerUp: handlePointerUp,
983
+ onPointerLeave: handlePointerUp,
984
+ onPointerEnter: handlePointerEnter,
985
+ onFocus: () => {
986
+ if (!state.isCellFocused(d)) state.setFocusedDate(d);
987
+ state.setFocused(true);
988
+ }
989
+ };
990
+ });
991
+ return {
992
+ get cellProps() {
993
+ return cellProps();
994
+ },
995
+ get buttonProps() {
996
+ return buttonProps();
997
+ },
998
+ get isSelected() {
999
+ return isSelected();
1000
+ },
1001
+ get isSelectionStart() {
1002
+ return isSelectionStart();
1003
+ },
1004
+ get isSelectionEnd() {
1005
+ return isSelectionEnd();
1006
+ },
1007
+ get isFocused() {
1008
+ return isFocused();
1009
+ },
1010
+ get isDisabled() {
1011
+ return isDisabled();
1012
+ },
1013
+ get isUnavailable() {
1014
+ return isUnavailable();
1015
+ },
1016
+ get isInvalid() {
1017
+ return isInvalid();
1018
+ },
1019
+ get isOutsideMonth() {
1020
+ return isOutsideMonth();
1021
+ },
1022
+ get isToday() {
1023
+ return isToday$1();
1024
+ },
1025
+ get isPressed() {
1026
+ return isPressed();
1027
+ },
1028
+ get formattedDate() {
1029
+ return formattedDate();
1030
+ }
1031
+ };
1032
+ }
1033
+ //#endregion
1034
+ export { createCalendarYearPicker as a, createCalendarGrid as i, createRangeCalendar as n, createCalendarMonthPicker as o, createCalendarCell as r, createCalendar as s, createRangeCalendarCell as t };
1035
+
1036
+ //# sourceMappingURL=calendar.jsx.map