@proyecto-viviana/solidaria-components 0.3.2 → 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 (398) hide show
  1. package/dist/ActionBar.js +184 -0
  2. package/dist/ActionBar.js.map +1 -0
  3. package/dist/ActionBar.jsx +128 -0
  4. package/dist/ActionBar.jsx.map +1 -0
  5. package/dist/ActionGroup.js +179 -0
  6. package/dist/ActionGroup.js.map +1 -0
  7. package/dist/ActionGroup.jsx +129 -0
  8. package/dist/ActionGroup.jsx.map +1 -0
  9. package/dist/Alert.js +111 -0
  10. package/dist/Alert.js.map +1 -0
  11. package/dist/Alert.jsx +82 -0
  12. package/dist/Alert.jsx.map +1 -0
  13. package/dist/Autocomplete.js +130 -0
  14. package/dist/Autocomplete.js.map +1 -0
  15. package/dist/Autocomplete.jsx +116 -0
  16. package/dist/Autocomplete.jsx.map +1 -0
  17. package/dist/Breadcrumbs.d.ts.map +1 -1
  18. package/dist/Breadcrumbs.js +334 -0
  19. package/dist/Breadcrumbs.js.map +1 -0
  20. package/dist/Breadcrumbs.jsx +266 -0
  21. package/dist/Breadcrumbs.jsx.map +1 -0
  22. package/dist/Button.d.ts.map +1 -1
  23. package/dist/Button.js +348 -0
  24. package/dist/Button.js.map +1 -0
  25. package/dist/Button.jsx +314 -0
  26. package/dist/Button.jsx.map +1 -0
  27. package/dist/Calendar.d.ts +4 -4
  28. package/dist/Calendar.d.ts.map +1 -1
  29. package/dist/Calendar.js +538 -0
  30. package/dist/Calendar.js.map +1 -0
  31. package/dist/Calendar.jsx +333 -0
  32. package/dist/Calendar.jsx.map +1 -0
  33. package/dist/CalendarPicker.d.ts +33 -0
  34. package/dist/CalendarPicker.d.ts.map +1 -0
  35. package/dist/CalendarPicker.js +44 -0
  36. package/dist/CalendarPicker.js.map +1 -0
  37. package/dist/CalendarPicker.jsx +44 -0
  38. package/dist/CalendarPicker.jsx.map +1 -0
  39. package/dist/Checkbox.d.ts +83 -4
  40. package/dist/Checkbox.d.ts.map +1 -1
  41. package/dist/Checkbox.js +923 -0
  42. package/dist/Checkbox.js.map +1 -0
  43. package/dist/Checkbox.jsx +707 -0
  44. package/dist/Checkbox.jsx.map +1 -0
  45. package/dist/Collection.d.ts.map +1 -1
  46. package/dist/Collection.js +202 -0
  47. package/dist/Collection.js.map +1 -0
  48. package/dist/Collection.jsx +152 -0
  49. package/dist/Collection.jsx.map +1 -0
  50. package/dist/Color.d.ts.map +1 -1
  51. package/dist/Color.js +1720 -0
  52. package/dist/Color.js.map +1 -0
  53. package/dist/Color.jsx +1344 -0
  54. package/dist/Color.jsx.map +1 -0
  55. package/dist/ColorEditor.js +208 -0
  56. package/dist/ColorEditor.js.map +1 -0
  57. package/dist/ColorEditor.jsx +120 -0
  58. package/dist/ColorEditor.jsx.map +1 -0
  59. package/dist/ComboBox.d.ts +4 -4
  60. package/dist/ComboBox.d.ts.map +1 -1
  61. package/dist/ComboBox.js +992 -0
  62. package/dist/ComboBox.js.map +1 -0
  63. package/dist/ComboBox.jsx +714 -0
  64. package/dist/ComboBox.jsx.map +1 -0
  65. package/dist/ContextualHelpTrigger.js +146 -0
  66. package/dist/ContextualHelpTrigger.js.map +1 -0
  67. package/dist/ContextualHelpTrigger.jsx +109 -0
  68. package/dist/ContextualHelpTrigger.jsx.map +1 -0
  69. package/dist/DateField.d.ts +3 -3
  70. package/dist/DateField.d.ts.map +1 -1
  71. package/dist/DateField.js +4 -0
  72. package/dist/DateField.jsx +4 -0
  73. package/dist/DateField2.js +499 -0
  74. package/dist/DateField2.js.map +1 -0
  75. package/dist/DateField2.jsx +317 -0
  76. package/dist/DateField2.jsx.map +1 -0
  77. package/dist/DatePicker.d.ts +4 -4
  78. package/dist/DatePicker.d.ts.map +1 -1
  79. package/dist/DatePicker.js +991 -0
  80. package/dist/DatePicker.js.map +1 -0
  81. package/dist/DatePicker.jsx +682 -0
  82. package/dist/DatePicker.jsx.map +1 -0
  83. package/dist/Dialog.d.ts.map +1 -1
  84. package/dist/Dialog.js +337 -0
  85. package/dist/Dialog.js.map +1 -0
  86. package/dist/Dialog.jsx +192 -0
  87. package/dist/Dialog.jsx.map +1 -0
  88. package/dist/Disclosure.d.ts.map +1 -1
  89. package/dist/Disclosure.js +328 -0
  90. package/dist/Disclosure.js.map +1 -0
  91. package/dist/Disclosure.jsx +230 -0
  92. package/dist/Disclosure.jsx.map +1 -0
  93. package/dist/DragAndDrop.d.ts.map +1 -1
  94. package/dist/DragAndDrop.js +176 -0
  95. package/dist/DragAndDrop.js.map +1 -0
  96. package/dist/DragAndDrop.jsx +160 -0
  97. package/dist/DragAndDrop.jsx.map +1 -0
  98. package/dist/DropZone.d.ts.map +1 -1
  99. package/dist/DropZone.js +189 -0
  100. package/dist/DropZone.js.map +1 -0
  101. package/dist/DropZone.jsx +144 -0
  102. package/dist/DropZone.jsx.map +1 -0
  103. package/dist/FieldError.js +66 -0
  104. package/dist/FieldError.js.map +1 -0
  105. package/dist/FieldError.jsx +47 -0
  106. package/dist/FieldError.jsx.map +1 -0
  107. package/dist/FileTrigger.js +79 -0
  108. package/dist/FileTrigger.js.map +1 -0
  109. package/dist/FileTrigger.jsx +49 -0
  110. package/dist/FileTrigger.jsx.map +1 -0
  111. package/dist/Focusable.js +70 -0
  112. package/dist/Focusable.js.map +1 -0
  113. package/dist/Focusable.jsx +69 -0
  114. package/dist/Focusable.jsx.map +1 -0
  115. package/dist/Form.js +99 -0
  116. package/dist/Form.js.map +1 -0
  117. package/dist/Form.jsx +73 -0
  118. package/dist/Form.jsx.map +1 -0
  119. package/dist/GridList.d.ts +34 -2
  120. package/dist/GridList.d.ts.map +1 -1
  121. package/dist/GridList.js +723 -0
  122. package/dist/GridList.js.map +1 -0
  123. package/dist/GridList.jsx +552 -0
  124. package/dist/GridList.jsx.map +1 -0
  125. package/dist/HiddenTimeInput.js +104 -0
  126. package/dist/HiddenTimeInput.js.map +1 -0
  127. package/dist/HiddenTimeInput.jsx +69 -0
  128. package/dist/HiddenTimeInput.jsx.map +1 -0
  129. package/dist/Icon.d.ts.map +1 -1
  130. package/dist/Icon.js +127 -0
  131. package/dist/Icon.js.map +1 -0
  132. package/dist/Icon.jsx +72 -0
  133. package/dist/Icon.jsx.map +1 -0
  134. package/dist/Keyboard.js +30 -0
  135. package/dist/Keyboard.js.map +1 -0
  136. package/dist/Keyboard.jsx +24 -0
  137. package/dist/Keyboard.jsx.map +1 -0
  138. package/dist/Landmark.js +134 -0
  139. package/dist/Landmark.js.map +1 -0
  140. package/dist/Landmark.jsx +118 -0
  141. package/dist/Landmark.jsx.map +1 -0
  142. package/dist/Link.d.ts.map +1 -1
  143. package/dist/Link.js +219 -0
  144. package/dist/Link.js.map +1 -0
  145. package/dist/Link.jsx +189 -0
  146. package/dist/Link.jsx.map +1 -0
  147. package/dist/ListBox.d.ts.map +1 -1
  148. package/dist/ListBox.js +670 -0
  149. package/dist/ListBox.js.map +1 -0
  150. package/dist/ListBox.jsx +508 -0
  151. package/dist/ListBox.jsx.map +1 -0
  152. package/dist/Menu.d.ts +27 -9
  153. package/dist/Menu.d.ts.map +1 -1
  154. package/dist/Menu.js +1254 -0
  155. package/dist/Menu.js.map +1 -0
  156. package/dist/Menu.jsx +1042 -0
  157. package/dist/Menu.jsx.map +1 -0
  158. package/dist/Meter.d.ts.map +1 -1
  159. package/dist/Meter.js +123 -0
  160. package/dist/Meter.js.map +1 -0
  161. package/dist/Meter.jsx +107 -0
  162. package/dist/Meter.jsx.map +1 -0
  163. package/dist/Modal.d.ts.map +1 -1
  164. package/dist/Modal.js +380 -0
  165. package/dist/Modal.js.map +1 -0
  166. package/dist/Modal.jsx +314 -0
  167. package/dist/Modal.jsx.map +1 -0
  168. package/dist/NumberField.d.ts +3 -3
  169. package/dist/NumberField.d.ts.map +1 -1
  170. package/dist/NumberField.js +573 -0
  171. package/dist/NumberField.js.map +1 -0
  172. package/dist/NumberField.jsx +443 -0
  173. package/dist/NumberField.jsx.map +1 -0
  174. package/dist/Popover.d.ts +10 -2
  175. package/dist/Popover.d.ts.map +1 -1
  176. package/dist/Popover.js +464 -0
  177. package/dist/Popover.js.map +1 -0
  178. package/dist/Popover.jsx +333 -0
  179. package/dist/Popover.jsx.map +1 -0
  180. package/dist/Pressable.js +69 -0
  181. package/dist/Pressable.js.map +1 -0
  182. package/dist/Pressable.jsx +68 -0
  183. package/dist/Pressable.jsx.map +1 -0
  184. package/dist/ProgressBar.d.ts.map +1 -1
  185. package/dist/ProgressBar.js +130 -0
  186. package/dist/ProgressBar.js.map +1 -0
  187. package/dist/ProgressBar.jsx +114 -0
  188. package/dist/ProgressBar.jsx.map +1 -0
  189. package/dist/RadioGroup.d.ts +82 -4
  190. package/dist/RadioGroup.d.ts.map +1 -1
  191. package/dist/RadioGroup.js +931 -0
  192. package/dist/RadioGroup.js.map +1 -0
  193. package/dist/RadioGroup.jsx +681 -0
  194. package/dist/RadioGroup.jsx.map +1 -0
  195. package/dist/RangeCalendar.d.ts.map +1 -1
  196. package/dist/RangeCalendar.js +410 -0
  197. package/dist/RangeCalendar.js.map +1 -0
  198. package/dist/RangeCalendar.jsx +253 -0
  199. package/dist/RangeCalendar.jsx.map +1 -0
  200. package/dist/RouterProvider.js +118 -0
  201. package/dist/RouterProvider.js.map +1 -0
  202. package/dist/RouterProvider.jsx +112 -0
  203. package/dist/RouterProvider.jsx.map +1 -0
  204. package/dist/SearchField.d.ts +2 -2
  205. package/dist/SearchField.d.ts.map +1 -1
  206. package/dist/SearchField.js +643 -0
  207. package/dist/SearchField.js.map +1 -0
  208. package/dist/SearchField.jsx +526 -0
  209. package/dist/SearchField.jsx.map +1 -0
  210. package/dist/Select.d.ts.map +1 -1
  211. package/dist/Select.js +1031 -0
  212. package/dist/Select.js.map +1 -0
  213. package/dist/Select.jsx +744 -0
  214. package/dist/Select.jsx.map +1 -0
  215. package/dist/SelectionIndicator.d.ts.map +1 -1
  216. package/dist/SelectionIndicator.js +86 -0
  217. package/dist/SelectionIndicator.js.map +1 -0
  218. package/dist/SelectionIndicator.jsx +50 -0
  219. package/dist/SelectionIndicator.jsx.map +1 -0
  220. package/dist/Separator.js +97 -0
  221. package/dist/Separator.js.map +1 -0
  222. package/dist/Separator.jsx +85 -0
  223. package/dist/Separator.jsx.map +1 -0
  224. package/dist/SharedElementTransition.d.ts.map +1 -1
  225. package/dist/SharedElementTransition.js +165 -0
  226. package/dist/SharedElementTransition.js.map +1 -0
  227. package/dist/SharedElementTransition.jsx +138 -0
  228. package/dist/SharedElementTransition.jsx.map +1 -0
  229. package/dist/Slider.d.ts +33 -1
  230. package/dist/Slider.d.ts.map +1 -1
  231. package/dist/Slider.js +515 -0
  232. package/dist/Slider.js.map +1 -0
  233. package/dist/Slider.jsx +403 -0
  234. package/dist/Slider.jsx.map +1 -0
  235. package/dist/StepList.js +198 -0
  236. package/dist/StepList.js.map +1 -0
  237. package/dist/StepList.jsx +141 -0
  238. package/dist/StepList.jsx.map +1 -0
  239. package/dist/Switch.d.ts +65 -2
  240. package/dist/Switch.d.ts.map +1 -1
  241. package/dist/Switch.js +534 -0
  242. package/dist/Switch.js.map +1 -0
  243. package/dist/Switch.jsx +393 -0
  244. package/dist/Switch.jsx.map +1 -0
  245. package/dist/Table.d.ts +48 -0
  246. package/dist/Table.d.ts.map +1 -1
  247. package/dist/Table.js +1759 -0
  248. package/dist/Table.js.map +1 -0
  249. package/dist/Table.jsx +1348 -0
  250. package/dist/Table.jsx.map +1 -0
  251. package/dist/Tabs.d.ts +0 -4
  252. package/dist/Tabs.d.ts.map +1 -1
  253. package/dist/Tabs.js +595 -0
  254. package/dist/Tabs.js.map +1 -0
  255. package/dist/Tabs.jsx +367 -0
  256. package/dist/Tabs.jsx.map +1 -0
  257. package/dist/TagGroup.d.ts.map +1 -1
  258. package/dist/TagGroup.js +378 -0
  259. package/dist/TagGroup.js.map +1 -0
  260. package/dist/TagGroup.jsx +270 -0
  261. package/dist/TagGroup.jsx.map +1 -0
  262. package/dist/Text.d.ts +18 -6
  263. package/dist/Text.d.ts.map +1 -1
  264. package/dist/Text.js +42 -0
  265. package/dist/Text.js.map +1 -0
  266. package/dist/Text.jsx +35 -0
  267. package/dist/Text.jsx.map +1 -0
  268. package/dist/TextField.d.ts +6 -6
  269. package/dist/TextField.d.ts.map +1 -1
  270. package/dist/TextField.js +436 -0
  271. package/dist/TextField.js.map +1 -0
  272. package/dist/TextField.jsx +403 -0
  273. package/dist/TextField.jsx.map +1 -0
  274. package/dist/TimeField.d.ts +3 -3
  275. package/dist/TimeField.d.ts.map +1 -1
  276. package/dist/TimeField.js +372 -0
  277. package/dist/TimeField.js.map +1 -0
  278. package/dist/TimeField.jsx +224 -0
  279. package/dist/TimeField.jsx.map +1 -0
  280. package/dist/Toast.d.ts +14 -0
  281. package/dist/Toast.d.ts.map +1 -1
  282. package/dist/Toast.js +551 -0
  283. package/dist/Toast.js.map +1 -0
  284. package/dist/Toast.jsx +361 -0
  285. package/dist/Toast.jsx.map +1 -0
  286. package/dist/ToggleButton.d.ts.map +1 -1
  287. package/dist/ToggleButton.js +123 -0
  288. package/dist/ToggleButton.js.map +1 -0
  289. package/dist/ToggleButton.jsx +88 -0
  290. package/dist/ToggleButton.jsx.map +1 -0
  291. package/dist/ToggleButtonGroup.d.ts.map +1 -1
  292. package/dist/ToggleButtonGroup.js +114 -0
  293. package/dist/ToggleButtonGroup.js.map +1 -0
  294. package/dist/ToggleButtonGroup.jsx +85 -0
  295. package/dist/ToggleButtonGroup.jsx.map +1 -0
  296. package/dist/Toolbar.js +112 -0
  297. package/dist/Toolbar.js.map +1 -0
  298. package/dist/Toolbar.jsx +92 -0
  299. package/dist/Toolbar.jsx.map +1 -0
  300. package/dist/Tooltip.d.ts.map +1 -1
  301. package/dist/Tooltip.js +539 -0
  302. package/dist/Tooltip.js.map +1 -0
  303. package/dist/Tooltip.jsx +465 -0
  304. package/dist/Tooltip.jsx.map +1 -0
  305. package/dist/Tree.d.ts +14 -2
  306. package/dist/Tree.d.ts.map +1 -1
  307. package/dist/Tree.js +1424 -0
  308. package/dist/Tree.js.map +1 -0
  309. package/dist/Tree.jsx +1172 -0
  310. package/dist/Tree.jsx.map +1 -0
  311. package/dist/Virtualizer.d.ts +16 -2
  312. package/dist/Virtualizer.d.ts.map +1 -1
  313. package/dist/Virtualizer.js +2 -0
  314. package/dist/Virtualizer.jsx +2 -0
  315. package/dist/Virtualizer2.js +751 -0
  316. package/dist/Virtualizer2.js.map +1 -0
  317. package/dist/Virtualizer2.jsx +730 -0
  318. package/dist/Virtualizer2.jsx.map +1 -0
  319. package/dist/VirtualizerLayouts.d.ts +18 -0
  320. package/dist/VirtualizerLayouts.d.ts.map +1 -1
  321. package/dist/VisuallyHidden.js +42 -0
  322. package/dist/VisuallyHidden.js.map +1 -0
  323. package/dist/VisuallyHidden.jsx +35 -0
  324. package/dist/VisuallyHidden.jsx.map +1 -0
  325. package/dist/contexts.js +33 -0
  326. package/dist/contexts.js.map +1 -0
  327. package/dist/contexts.jsx +33 -0
  328. package/dist/contexts.jsx.map +1 -0
  329. package/dist/index.d.ts +7 -6
  330. package/dist/index.d.ts.map +1 -1
  331. package/dist/index.js +70 -23932
  332. package/dist/index.jsx +70 -18337
  333. package/dist/useDragAndDrop.js +2 -0
  334. package/dist/useDragAndDrop.jsx +2 -0
  335. package/dist/useDragAndDrop2.js +395 -0
  336. package/dist/useDragAndDrop2.js.map +1 -0
  337. package/dist/useDragAndDrop2.jsx +395 -0
  338. package/dist/useDragAndDrop2.jsx.map +1 -0
  339. package/dist/utils.d.ts +83 -11
  340. package/dist/utils.d.ts.map +1 -1
  341. package/dist/utils.js +285 -0
  342. package/dist/utils.js.map +1 -0
  343. package/dist/utils.jsx +277 -0
  344. package/dist/utils.jsx.map +1 -0
  345. package/dist/virtualizer/Layout.js +144 -0
  346. package/dist/virtualizer/Layout.js.map +1 -0
  347. package/dist/virtualizer/Layout.jsx +144 -0
  348. package/dist/virtualizer/Layout.jsx.map +1 -0
  349. package/package.json +401 -4
  350. package/src/Breadcrumbs.tsx +3 -1
  351. package/src/Button.tsx +22 -2
  352. package/src/Calendar.tsx +27 -10
  353. package/src/CalendarPicker.tsx +73 -0
  354. package/src/Checkbox.tsx +539 -3
  355. package/src/Collection.tsx +9 -3
  356. package/src/Color.tsx +42 -14
  357. package/src/ComboBox.tsx +50 -6
  358. package/src/DateField.tsx +20 -2
  359. package/src/DatePicker.tsx +57 -5
  360. package/src/Dialog.tsx +13 -5
  361. package/src/Disclosure.tsx +3 -1
  362. package/src/DragAndDrop.tsx +3 -1
  363. package/src/DropZone.tsx +3 -1
  364. package/src/GridList.tsx +125 -24
  365. package/src/Icon.tsx +3 -1
  366. package/src/Link.tsx +3 -1
  367. package/src/ListBox.tsx +31 -4
  368. package/src/Menu.tsx +252 -128
  369. package/src/Meter.tsx +3 -1
  370. package/src/Modal.tsx +100 -52
  371. package/src/NumberField.tsx +51 -8
  372. package/src/Popover.tsx +40 -10
  373. package/src/ProgressBar.tsx +3 -1
  374. package/src/RadioGroup.tsx +468 -4
  375. package/src/RangeCalendar.tsx +3 -1
  376. package/src/SearchField.tsx +27 -3
  377. package/src/Select.tsx +22 -7
  378. package/src/SelectionIndicator.tsx +3 -1
  379. package/src/SharedElementTransition.tsx +3 -1
  380. package/src/Slider.tsx +159 -13
  381. package/src/Switch.tsx +395 -2
  382. package/src/Table.tsx +409 -95
  383. package/src/Tabs.tsx +16 -45
  384. package/src/TagGroup.tsx +3 -1
  385. package/src/Text.tsx +31 -10
  386. package/src/TextField.tsx +43 -5
  387. package/src/TimeField.tsx +20 -2
  388. package/src/Toast.tsx +79 -14
  389. package/src/ToggleButton.tsx +3 -1
  390. package/src/ToggleButtonGroup.tsx +3 -1
  391. package/src/Tooltip.tsx +3 -1
  392. package/src/Tree.tsx +77 -9
  393. package/src/Virtualizer.tsx +180 -31
  394. package/src/VirtualizerLayouts.ts +45 -10
  395. package/src/index.ts +50 -0
  396. package/src/utils.tsx +243 -27
  397. package/dist/index.js.map +0 -1
  398. package/dist/index.jsx.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@proyecto-viviana/solidaria-components",
3
- "version": "0.3.2",
3
+ "version": "0.4.0",
4
4
  "description": "Pre-wired headless components for SolidJS - port of react-aria-components",
5
5
  "keywords": [
6
6
  "accessibility",
@@ -31,15 +31,412 @@
31
31
  "solid": "./dist/index.jsx",
32
32
  "import": "./dist/index.js",
33
33
  "default": "./dist/index.js"
34
- }
34
+ },
35
+ "./ActionBar": {
36
+ "types": "./dist/ActionBar.d.ts",
37
+ "solid": "./dist/ActionBar.jsx",
38
+ "import": "./dist/ActionBar.js",
39
+ "default": "./dist/ActionBar.js"
40
+ },
41
+ "./ActionGroup": {
42
+ "types": "./dist/ActionGroup.d.ts",
43
+ "solid": "./dist/ActionGroup.jsx",
44
+ "import": "./dist/ActionGroup.js",
45
+ "default": "./dist/ActionGroup.js"
46
+ },
47
+ "./Alert": {
48
+ "types": "./dist/Alert.d.ts",
49
+ "solid": "./dist/Alert.jsx",
50
+ "import": "./dist/Alert.js",
51
+ "default": "./dist/Alert.js"
52
+ },
53
+ "./Autocomplete": {
54
+ "types": "./dist/Autocomplete.d.ts",
55
+ "solid": "./dist/Autocomplete.jsx",
56
+ "import": "./dist/Autocomplete.js",
57
+ "default": "./dist/Autocomplete.js"
58
+ },
59
+ "./Breadcrumbs": {
60
+ "types": "./dist/Breadcrumbs.d.ts",
61
+ "solid": "./dist/Breadcrumbs.jsx",
62
+ "import": "./dist/Breadcrumbs.js",
63
+ "default": "./dist/Breadcrumbs.js"
64
+ },
65
+ "./Button": {
66
+ "types": "./dist/Button.d.ts",
67
+ "solid": "./dist/Button.jsx",
68
+ "import": "./dist/Button.js",
69
+ "default": "./dist/Button.js"
70
+ },
71
+ "./Calendar": {
72
+ "types": "./dist/Calendar.d.ts",
73
+ "solid": "./dist/Calendar.jsx",
74
+ "import": "./dist/Calendar.js",
75
+ "default": "./dist/Calendar.js"
76
+ },
77
+ "./CalendarPicker": {
78
+ "types": "./dist/CalendarPicker.d.ts",
79
+ "solid": "./dist/CalendarPicker.jsx",
80
+ "import": "./dist/CalendarPicker.js",
81
+ "default": "./dist/CalendarPicker.js"
82
+ },
83
+ "./Checkbox": {
84
+ "types": "./dist/Checkbox.d.ts",
85
+ "solid": "./dist/Checkbox.jsx",
86
+ "import": "./dist/Checkbox.js",
87
+ "default": "./dist/Checkbox.js"
88
+ },
89
+ "./Collection": {
90
+ "types": "./dist/Collection.d.ts",
91
+ "solid": "./dist/Collection.jsx",
92
+ "import": "./dist/Collection.js",
93
+ "default": "./dist/Collection.js"
94
+ },
95
+ "./Color": {
96
+ "types": "./dist/Color.d.ts",
97
+ "solid": "./dist/Color.jsx",
98
+ "import": "./dist/Color.js",
99
+ "default": "./dist/Color.js"
100
+ },
101
+ "./ColorEditor": {
102
+ "types": "./dist/ColorEditor.d.ts",
103
+ "solid": "./dist/ColorEditor.jsx",
104
+ "import": "./dist/ColorEditor.js",
105
+ "default": "./dist/ColorEditor.js"
106
+ },
107
+ "./ComboBox": {
108
+ "types": "./dist/ComboBox.d.ts",
109
+ "solid": "./dist/ComboBox.jsx",
110
+ "import": "./dist/ComboBox.js",
111
+ "default": "./dist/ComboBox.js"
112
+ },
113
+ "./ContextualHelpTrigger": {
114
+ "types": "./dist/ContextualHelpTrigger.d.ts",
115
+ "solid": "./dist/ContextualHelpTrigger.jsx",
116
+ "import": "./dist/ContextualHelpTrigger.js",
117
+ "default": "./dist/ContextualHelpTrigger.js"
118
+ },
119
+ "./DateField": {
120
+ "types": "./dist/DateField.d.ts",
121
+ "solid": "./dist/DateField.jsx",
122
+ "import": "./dist/DateField.js",
123
+ "default": "./dist/DateField.js"
124
+ },
125
+ "./DatePicker": {
126
+ "types": "./dist/DatePicker.d.ts",
127
+ "solid": "./dist/DatePicker.jsx",
128
+ "import": "./dist/DatePicker.js",
129
+ "default": "./dist/DatePicker.js"
130
+ },
131
+ "./Dialog": {
132
+ "types": "./dist/Dialog.d.ts",
133
+ "solid": "./dist/Dialog.jsx",
134
+ "import": "./dist/Dialog.js",
135
+ "default": "./dist/Dialog.js"
136
+ },
137
+ "./Disclosure": {
138
+ "types": "./dist/Disclosure.d.ts",
139
+ "solid": "./dist/Disclosure.jsx",
140
+ "import": "./dist/Disclosure.js",
141
+ "default": "./dist/Disclosure.js"
142
+ },
143
+ "./DragAndDrop": {
144
+ "types": "./dist/DragAndDrop.d.ts",
145
+ "solid": "./dist/DragAndDrop.jsx",
146
+ "import": "./dist/DragAndDrop.js",
147
+ "default": "./dist/DragAndDrop.js"
148
+ },
149
+ "./DropZone": {
150
+ "types": "./dist/DropZone.d.ts",
151
+ "solid": "./dist/DropZone.jsx",
152
+ "import": "./dist/DropZone.js",
153
+ "default": "./dist/DropZone.js"
154
+ },
155
+ "./FieldError": {
156
+ "types": "./dist/FieldError.d.ts",
157
+ "solid": "./dist/FieldError.jsx",
158
+ "import": "./dist/FieldError.js",
159
+ "default": "./dist/FieldError.js"
160
+ },
161
+ "./FileTrigger": {
162
+ "types": "./dist/FileTrigger.d.ts",
163
+ "solid": "./dist/FileTrigger.jsx",
164
+ "import": "./dist/FileTrigger.js",
165
+ "default": "./dist/FileTrigger.js"
166
+ },
167
+ "./Focusable": {
168
+ "types": "./dist/Focusable.d.ts",
169
+ "solid": "./dist/Focusable.jsx",
170
+ "import": "./dist/Focusable.js",
171
+ "default": "./dist/Focusable.js"
172
+ },
173
+ "./Form": {
174
+ "types": "./dist/Form.d.ts",
175
+ "solid": "./dist/Form.jsx",
176
+ "import": "./dist/Form.js",
177
+ "default": "./dist/Form.js"
178
+ },
179
+ "./GridList": {
180
+ "types": "./dist/GridList.d.ts",
181
+ "solid": "./dist/GridList.jsx",
182
+ "import": "./dist/GridList.js",
183
+ "default": "./dist/GridList.js"
184
+ },
185
+ "./HiddenTimeInput": {
186
+ "types": "./dist/HiddenTimeInput.d.ts",
187
+ "solid": "./dist/HiddenTimeInput.jsx",
188
+ "import": "./dist/HiddenTimeInput.js",
189
+ "default": "./dist/HiddenTimeInput.js"
190
+ },
191
+ "./Icon": {
192
+ "types": "./dist/Icon.d.ts",
193
+ "solid": "./dist/Icon.jsx",
194
+ "import": "./dist/Icon.js",
195
+ "default": "./dist/Icon.js"
196
+ },
197
+ "./Keyboard": {
198
+ "types": "./dist/Keyboard.d.ts",
199
+ "solid": "./dist/Keyboard.jsx",
200
+ "import": "./dist/Keyboard.js",
201
+ "default": "./dist/Keyboard.js"
202
+ },
203
+ "./Landmark": {
204
+ "types": "./dist/Landmark.d.ts",
205
+ "solid": "./dist/Landmark.jsx",
206
+ "import": "./dist/Landmark.js",
207
+ "default": "./dist/Landmark.js"
208
+ },
209
+ "./Link": {
210
+ "types": "./dist/Link.d.ts",
211
+ "solid": "./dist/Link.jsx",
212
+ "import": "./dist/Link.js",
213
+ "default": "./dist/Link.js"
214
+ },
215
+ "./ListBox": {
216
+ "types": "./dist/ListBox.d.ts",
217
+ "solid": "./dist/ListBox.jsx",
218
+ "import": "./dist/ListBox.js",
219
+ "default": "./dist/ListBox.js"
220
+ },
221
+ "./Menu": {
222
+ "types": "./dist/Menu.d.ts",
223
+ "solid": "./dist/Menu.jsx",
224
+ "import": "./dist/Menu.js",
225
+ "default": "./dist/Menu.js"
226
+ },
227
+ "./Meter": {
228
+ "types": "./dist/Meter.d.ts",
229
+ "solid": "./dist/Meter.jsx",
230
+ "import": "./dist/Meter.js",
231
+ "default": "./dist/Meter.js"
232
+ },
233
+ "./Modal": {
234
+ "types": "./dist/Modal.d.ts",
235
+ "solid": "./dist/Modal.jsx",
236
+ "import": "./dist/Modal.js",
237
+ "default": "./dist/Modal.js"
238
+ },
239
+ "./NumberField": {
240
+ "types": "./dist/NumberField.d.ts",
241
+ "solid": "./dist/NumberField.jsx",
242
+ "import": "./dist/NumberField.js",
243
+ "default": "./dist/NumberField.js"
244
+ },
245
+ "./Popover": {
246
+ "types": "./dist/Popover.d.ts",
247
+ "solid": "./dist/Popover.jsx",
248
+ "import": "./dist/Popover.js",
249
+ "default": "./dist/Popover.js"
250
+ },
251
+ "./Pressable": {
252
+ "types": "./dist/Pressable.d.ts",
253
+ "solid": "./dist/Pressable.jsx",
254
+ "import": "./dist/Pressable.js",
255
+ "default": "./dist/Pressable.js"
256
+ },
257
+ "./ProgressBar": {
258
+ "types": "./dist/ProgressBar.d.ts",
259
+ "solid": "./dist/ProgressBar.jsx",
260
+ "import": "./dist/ProgressBar.js",
261
+ "default": "./dist/ProgressBar.js"
262
+ },
263
+ "./RadioGroup": {
264
+ "types": "./dist/RadioGroup.d.ts",
265
+ "solid": "./dist/RadioGroup.jsx",
266
+ "import": "./dist/RadioGroup.js",
267
+ "default": "./dist/RadioGroup.js"
268
+ },
269
+ "./RangeCalendar": {
270
+ "types": "./dist/RangeCalendar.d.ts",
271
+ "solid": "./dist/RangeCalendar.jsx",
272
+ "import": "./dist/RangeCalendar.js",
273
+ "default": "./dist/RangeCalendar.js"
274
+ },
275
+ "./RouterProvider": {
276
+ "types": "./dist/RouterProvider.d.ts",
277
+ "solid": "./dist/RouterProvider.jsx",
278
+ "import": "./dist/RouterProvider.js",
279
+ "default": "./dist/RouterProvider.js"
280
+ },
281
+ "./SearchField": {
282
+ "types": "./dist/SearchField.d.ts",
283
+ "solid": "./dist/SearchField.jsx",
284
+ "import": "./dist/SearchField.js",
285
+ "default": "./dist/SearchField.js"
286
+ },
287
+ "./Select": {
288
+ "types": "./dist/Select.d.ts",
289
+ "solid": "./dist/Select.jsx",
290
+ "import": "./dist/Select.js",
291
+ "default": "./dist/Select.js"
292
+ },
293
+ "./SelectionIndicator": {
294
+ "types": "./dist/SelectionIndicator.d.ts",
295
+ "solid": "./dist/SelectionIndicator.jsx",
296
+ "import": "./dist/SelectionIndicator.js",
297
+ "default": "./dist/SelectionIndicator.js"
298
+ },
299
+ "./Separator": {
300
+ "types": "./dist/Separator.d.ts",
301
+ "solid": "./dist/Separator.jsx",
302
+ "import": "./dist/Separator.js",
303
+ "default": "./dist/Separator.js"
304
+ },
305
+ "./SharedElementTransition": {
306
+ "types": "./dist/SharedElementTransition.d.ts",
307
+ "solid": "./dist/SharedElementTransition.jsx",
308
+ "import": "./dist/SharedElementTransition.js",
309
+ "default": "./dist/SharedElementTransition.js"
310
+ },
311
+ "./Slider": {
312
+ "types": "./dist/Slider.d.ts",
313
+ "solid": "./dist/Slider.jsx",
314
+ "import": "./dist/Slider.js",
315
+ "default": "./dist/Slider.js"
316
+ },
317
+ "./StepList": {
318
+ "types": "./dist/StepList.d.ts",
319
+ "solid": "./dist/StepList.jsx",
320
+ "import": "./dist/StepList.js",
321
+ "default": "./dist/StepList.js"
322
+ },
323
+ "./Switch": {
324
+ "types": "./dist/Switch.d.ts",
325
+ "solid": "./dist/Switch.jsx",
326
+ "import": "./dist/Switch.js",
327
+ "default": "./dist/Switch.js"
328
+ },
329
+ "./Table": {
330
+ "types": "./dist/Table.d.ts",
331
+ "solid": "./dist/Table.jsx",
332
+ "import": "./dist/Table.js",
333
+ "default": "./dist/Table.js"
334
+ },
335
+ "./Tabs": {
336
+ "types": "./dist/Tabs.d.ts",
337
+ "solid": "./dist/Tabs.jsx",
338
+ "import": "./dist/Tabs.js",
339
+ "default": "./dist/Tabs.js"
340
+ },
341
+ "./TagGroup": {
342
+ "types": "./dist/TagGroup.d.ts",
343
+ "solid": "./dist/TagGroup.jsx",
344
+ "import": "./dist/TagGroup.js",
345
+ "default": "./dist/TagGroup.js"
346
+ },
347
+ "./Text": {
348
+ "types": "./dist/Text.d.ts",
349
+ "solid": "./dist/Text.jsx",
350
+ "import": "./dist/Text.js",
351
+ "default": "./dist/Text.js"
352
+ },
353
+ "./TextField": {
354
+ "types": "./dist/TextField.d.ts",
355
+ "solid": "./dist/TextField.jsx",
356
+ "import": "./dist/TextField.js",
357
+ "default": "./dist/TextField.js"
358
+ },
359
+ "./TimeField": {
360
+ "types": "./dist/TimeField.d.ts",
361
+ "solid": "./dist/TimeField.jsx",
362
+ "import": "./dist/TimeField.js",
363
+ "default": "./dist/TimeField.js"
364
+ },
365
+ "./Toast": {
366
+ "types": "./dist/Toast.d.ts",
367
+ "solid": "./dist/Toast.jsx",
368
+ "import": "./dist/Toast.js",
369
+ "default": "./dist/Toast.js"
370
+ },
371
+ "./ToggleButton": {
372
+ "types": "./dist/ToggleButton.d.ts",
373
+ "solid": "./dist/ToggleButton.jsx",
374
+ "import": "./dist/ToggleButton.js",
375
+ "default": "./dist/ToggleButton.js"
376
+ },
377
+ "./ToggleButtonGroup": {
378
+ "types": "./dist/ToggleButtonGroup.d.ts",
379
+ "solid": "./dist/ToggleButtonGroup.jsx",
380
+ "import": "./dist/ToggleButtonGroup.js",
381
+ "default": "./dist/ToggleButtonGroup.js"
382
+ },
383
+ "./Toolbar": {
384
+ "types": "./dist/Toolbar.d.ts",
385
+ "solid": "./dist/Toolbar.jsx",
386
+ "import": "./dist/Toolbar.js",
387
+ "default": "./dist/Toolbar.js"
388
+ },
389
+ "./Tooltip": {
390
+ "types": "./dist/Tooltip.d.ts",
391
+ "solid": "./dist/Tooltip.jsx",
392
+ "import": "./dist/Tooltip.js",
393
+ "default": "./dist/Tooltip.js"
394
+ },
395
+ "./Tree": {
396
+ "types": "./dist/Tree.d.ts",
397
+ "solid": "./dist/Tree.jsx",
398
+ "import": "./dist/Tree.js",
399
+ "default": "./dist/Tree.js"
400
+ },
401
+ "./Virtualizer": {
402
+ "types": "./dist/Virtualizer.d.ts",
403
+ "solid": "./dist/Virtualizer.jsx",
404
+ "import": "./dist/Virtualizer.js",
405
+ "default": "./dist/Virtualizer.js"
406
+ },
407
+ "./VisuallyHidden": {
408
+ "types": "./dist/VisuallyHidden.d.ts",
409
+ "solid": "./dist/VisuallyHidden.jsx",
410
+ "import": "./dist/VisuallyHidden.js",
411
+ "default": "./dist/VisuallyHidden.js"
412
+ },
413
+ "./useDragAndDrop": {
414
+ "types": "./dist/useDragAndDrop.d.ts",
415
+ "solid": "./dist/useDragAndDrop.jsx",
416
+ "import": "./dist/useDragAndDrop.js",
417
+ "default": "./dist/useDragAndDrop.js"
418
+ },
419
+ "./utils": {
420
+ "types": "./dist/utils.d.ts",
421
+ "solid": "./dist/utils.jsx",
422
+ "import": "./dist/utils.js",
423
+ "default": "./dist/utils.js"
424
+ },
425
+ "./virtualizer/Layout": {
426
+ "types": "./dist/virtualizer/Layout.d.ts",
427
+ "solid": "./dist/virtualizer/Layout.jsx",
428
+ "import": "./dist/virtualizer/Layout.js",
429
+ "default": "./dist/virtualizer/Layout.js"
430
+ },
431
+ "./package.json": "./package.json"
35
432
  },
36
433
  "publishConfig": {
37
434
  "access": "public"
38
435
  },
39
436
  "dependencies": {
40
437
  "@internationalized/date": "^3.8.0",
41
- "@proyecto-viviana/solid-stately": "0.3.0",
42
- "@proyecto-viviana/solidaria": "0.3.0"
438
+ "@proyecto-viviana/solid-stately": "0.4.0",
439
+ "@proyecto-viviana/solidaria": "0.4.0"
43
440
  },
44
441
  "devDependencies": {
45
442
  "solid-js": "^1.9.11"
@@ -380,7 +380,9 @@ export function BreadcrumbItem(props: BreadcrumbItemProps): JSX.Element {
380
380
 
381
381
  const renderProps = useRenderProps(
382
382
  {
383
- children: props.children,
383
+ get children() {
384
+ return props.children;
385
+ },
384
386
  class: local.class,
385
387
  style: local.style,
386
388
  defaultClassName: "solidaria-BreadcrumbItem",
package/src/Button.tsx CHANGED
@@ -36,6 +36,12 @@ import {
36
36
  import { DialogTriggerContext, PopoverTriggerContext } from "./contexts";
37
37
  import { ProgressBarContext } from "./ProgressBar";
38
38
 
39
+ // Events preserved when `isPending` is true (for tooltips and other overlays),
40
+ // mirroring RAC Button's `PRESERVED_EVENT_PATTERN`. Every other `on*` handler
41
+ // is stripped so a pending-but-focusable button cannot be activated.
42
+ const pendingPreservedEventPattern =
43
+ /Focus|Blur|Hover|Pointer(Enter|Leave|Over|Out)|Mouse(Enter|Leave|Over|Out)/;
44
+
39
45
  type RefLike<T> = ((el: T) => void) | { current?: T | null } | undefined;
40
46
 
41
47
  function assignRef<T>(ref: RefLike<T>, el: T): void {
@@ -294,8 +300,17 @@ export function Button(props: ButtonProps): JSX.Element {
294
300
  get onClick() {
295
301
  return resolvePending() ? undefined : ariaProps.onClick;
296
302
  },
303
+ // Mirror React Aria's RAC `Button`: `useButton` is called with the base
304
+ // `isDisabled` WITHOUT `isPending`, so a pending-focusable button stays a
305
+ // non-disabled native `<button>` — keeping `useFocusable`'s always-on
306
+ // `tabIndex={0}` (the Safari focus workaround) and no native `disabled`
307
+ // attribute. The pending "disabled" semantics are layered ON TOP:
308
+ // `aria-disabled="true"` below and `disablePendingInteractions` stripping
309
+ // the press handlers post-hoc (RAC's `useDisableInteractions`). Folding
310
+ // `isPending` in here instead would make the focusable hook drop
311
+ // `tabIndex`, diverging from upstream's pending button (D4).
297
312
  get isDisabled() {
298
- return resolveDisabled() || resolvePending();
313
+ return resolveDisabled();
299
314
  },
300
315
  }),
301
316
  );
@@ -447,7 +462,12 @@ export function Button(props: ButtonProps): JSX.Element {
447
462
 
448
463
  const next = { ...props };
449
464
  for (const key of Object.keys(next)) {
450
- if (key.startsWith("on") && !key.includes("Focus") && !key.includes("Blur")) {
465
+ // Mirror RAC's `useDisableInteractions`: when pending, strip every event
466
+ // handler except the ones overlays/tooltips still need — focus/blur,
467
+ // hover, and pointer/mouse enter-leave-over-out. Press handlers
468
+ // (click/pointerdown/keydown/…) are removed so the focusable button
469
+ // cannot be activated while pending.
470
+ if (key.startsWith("on") && !pendingPreservedEventPattern.test(key)) {
451
471
  next[key] = undefined;
452
472
  }
453
473
  }
package/src/Calendar.tsx CHANGED
@@ -30,6 +30,7 @@ import {
30
30
  createCalendarState,
31
31
  type CalendarState,
32
32
  type CalendarStateProps,
33
+ type CalendarSelectionMode,
33
34
  type CalendarDate,
34
35
  type DateValue,
35
36
  endOfMonth,
@@ -69,10 +70,13 @@ export interface CalendarRenderProps {
69
70
  isInvalid: boolean;
70
71
  }
71
72
 
72
- export interface CalendarProps<T extends DateValue = DateValue>
73
+ export interface CalendarProps<
74
+ T extends DateValue = DateValue,
75
+ M extends CalendarSelectionMode = "single",
76
+ >
73
77
  extends
74
78
  Omit<AriaCalendarProps, "id" | "isDisabled" | "isReadOnly">,
75
- Omit<CalendarStateProps<T>, "locale">,
79
+ Omit<CalendarStateProps<T, M>, "locale">,
76
80
  SlotProps {
77
81
  /** The children of the component. */
78
82
  children?: JSX.Element;
@@ -207,7 +211,10 @@ export function useCalendarContext(): CalendarState<DateValue> {
207
211
  * </Calendar>
208
212
  * ```
209
213
  */
210
- export function Calendar<T extends DateValue = CalendarDate>(props: CalendarProps<T>): JSX.Element {
214
+ export function Calendar<
215
+ T extends DateValue = CalendarDate,
216
+ M extends CalendarSelectionMode = "single",
217
+ >(props: CalendarProps<T, M>): JSX.Element {
211
218
  const inheritedState = useContext(CalendarContext);
212
219
 
213
220
  // Use hydration-safe pattern for client-only rendering
@@ -227,9 +234,10 @@ export function Calendar<T extends DateValue = CalendarDate>(props: CalendarProp
227
234
  );
228
235
  }
229
236
 
230
- function CalendarWithState<T extends DateValue = CalendarDate>(
231
- props: CalendarProps<T> & { state: CalendarState<DateValue> },
232
- ): JSX.Element {
237
+ function CalendarWithState<
238
+ T extends DateValue = CalendarDate,
239
+ M extends CalendarSelectionMode = "single",
240
+ >(props: CalendarProps<T, M> & { state: CalendarState<DateValue> }): JSX.Element {
233
241
  const [local, stateProps, rest] = splitProps(
234
242
  props,
235
243
  ["children", "class", "style", "slot", "state", "ref"],
@@ -237,6 +245,7 @@ function CalendarWithState<T extends DateValue = CalendarDate>(
237
245
  "value",
238
246
  "defaultValue",
239
247
  "onChange",
248
+ "selectionMode",
240
249
  "minValue",
241
250
  "maxValue",
242
251
  "isDisabled",
@@ -303,7 +312,10 @@ function CalendarWithState<T extends DateValue = CalendarDate>(
303
312
  /**
304
313
  * Internal Calendar component that renders after client mount.
305
314
  */
306
- function CalendarInner<T extends DateValue = CalendarDate>(props: CalendarProps<T>): JSX.Element {
315
+ function CalendarInner<
316
+ T extends DateValue = CalendarDate,
317
+ M extends CalendarSelectionMode = "single",
318
+ >(props: CalendarProps<T, M>): JSX.Element {
307
319
  const [local, stateProps, rest] = splitProps(
308
320
  props,
309
321
  ["children", "class", "style", "slot", "ref"],
@@ -311,6 +323,7 @@ function CalendarInner<T extends DateValue = CalendarDate>(props: CalendarProps<
311
323
  "value",
312
324
  "defaultValue",
313
325
  "onChange",
326
+ "selectionMode",
314
327
  "minValue",
315
328
  "maxValue",
316
329
  "isDisabled",
@@ -333,7 +346,7 @@ function CalendarInner<T extends DateValue = CalendarDate>(props: CalendarProps<
333
346
  );
334
347
 
335
348
  // Create calendar state
336
- const state = createCalendarState(stateProps);
349
+ const state = createCalendarState<T, M>(stateProps);
337
350
 
338
351
  // Create calendar ARIA props
339
352
  const calendarAria = createCalendar(
@@ -398,7 +411,9 @@ export function CalendarHeading(props: CalendarHeadingProps): JSX.Element {
398
411
  }));
399
412
  const renderProps = useRenderProps(
400
413
  {
401
- children: props.children,
414
+ get children() {
415
+ return props.children;
416
+ },
402
417
  class: props.class,
403
418
  style: props.style,
404
419
  defaultClassName: "solidaria-CalendarHeading",
@@ -625,7 +640,9 @@ export function CalendarCell(props: CalendarCellProps): JSX.Element {
625
640
 
626
641
  const renderProps = useRenderProps(
627
642
  {
628
- children: props.children,
643
+ get children() {
644
+ return props.children;
645
+ },
629
646
  class: props.class,
630
647
  style: props.style,
631
648
  defaultClassName: "solidaria-CalendarCell",
@@ -0,0 +1,73 @@
1
+ /**
2
+ * CalendarMonthPicker / CalendarYearPicker components for solidaria-components
3
+ *
4
+ * Headless month/year "jump-to" pickers shared by Calendar and RangeCalendar.
5
+ * Each reads whichever calendar state context is present and renders through a
6
+ * child function, mirroring the single context-agnostic components upstream.
7
+ * Port of react-aria-components/src/Calendar.tsx (CalendarMonthPicker /
8
+ * CalendarYearPicker).
9
+ */
10
+
11
+ import { type JSX, useContext } from "solid-js";
12
+
13
+ import {
14
+ createCalendarMonthPicker,
15
+ createCalendarYearPicker,
16
+ type CalendarMonthPickerProps as AriaCalendarMonthPickerProps,
17
+ type CalendarMonthPickerAria,
18
+ type CalendarYearPickerProps as AriaCalendarYearPickerProps,
19
+ type CalendarYearPickerAria,
20
+ } from "@proyecto-viviana/solidaria";
21
+
22
+ import { CalendarContext } from "./Calendar";
23
+ import { RangeCalendarContext } from "./RangeCalendar";
24
+
25
+ export type {
26
+ CalendarMonthPickerAria,
27
+ CalendarMonthPickerItem,
28
+ CalendarYearPickerAria,
29
+ CalendarYearPickerItem,
30
+ CalendarYearPickerFormatOptions,
31
+ } from "@proyecto-viviana/solidaria";
32
+
33
+ export interface CalendarMonthPickerProps extends AriaCalendarMonthPickerProps {
34
+ /** A function that renders the month picker from its accessible props. */
35
+ children: (renderProps: CalendarMonthPickerAria) => JSX.Element;
36
+ }
37
+
38
+ /**
39
+ * A CalendarMonthPicker renders the list of months in the focused year so the
40
+ * user can jump the calendar's focus to a different month. It works within both
41
+ * a Calendar and a RangeCalendar.
42
+ */
43
+ export function CalendarMonthPicker(props: CalendarMonthPickerProps): JSX.Element {
44
+ const calendarState = useContext(CalendarContext);
45
+ const rangeCalendarState = useContext(RangeCalendarContext);
46
+ const state = calendarState ?? rangeCalendarState;
47
+ if (!state) {
48
+ throw new Error("CalendarMonthPicker must be used within a Calendar or RangeCalendar");
49
+ }
50
+ const aria = createCalendarMonthPicker(props, state);
51
+ return props.children(aria);
52
+ }
53
+
54
+ export interface CalendarYearPickerProps extends AriaCalendarYearPickerProps {
55
+ /** A function that renders the year picker from its accessible props. */
56
+ children: (renderProps: CalendarYearPickerAria) => JSX.Element;
57
+ }
58
+
59
+ /**
60
+ * A CalendarYearPicker renders a sliding window of years so the user can jump
61
+ * the calendar's focus to a different year. It works within both a Calendar and
62
+ * a RangeCalendar.
63
+ */
64
+ export function CalendarYearPicker(props: CalendarYearPickerProps): JSX.Element {
65
+ const calendarState = useContext(CalendarContext);
66
+ const rangeCalendarState = useContext(RangeCalendarContext);
67
+ const state = calendarState ?? rangeCalendarState;
68
+ if (!state) {
69
+ throw new Error("CalendarYearPicker must be used within a Calendar or RangeCalendar");
70
+ }
71
+ const aria = createCalendarYearPicker(props, state);
72
+ return props.children(aria);
73
+ }