@proyecto-viviana/solidaria-components 0.5.1 → 0.7.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (655) hide show
  1. package/LICENSE-APACHE-2.0 +201 -0
  2. package/NOTICE +91 -0
  3. package/README.md +57 -34
  4. package/dist/ActionBar.d.ts +2 -10
  5. package/dist/ActionBar.d.ts.map +1 -1
  6. package/dist/ActionBar.js +95 -59
  7. package/dist/ActionBar.js.map +1 -1
  8. package/dist/ActionBar.jsx +42 -15
  9. package/dist/ActionBar.jsx.map +1 -1
  10. package/dist/ActionGroup.d.ts +1 -12
  11. package/dist/ActionGroup.d.ts.map +1 -1
  12. package/dist/ActionGroup.js +66 -44
  13. package/dist/ActionGroup.js.map +1 -1
  14. package/dist/ActionGroup.jsx +25 -10
  15. package/dist/ActionGroup.jsx.map +1 -1
  16. package/dist/Alert.d.ts +4 -1
  17. package/dist/Alert.d.ts.map +1 -1
  18. package/dist/Alert.js +20 -17
  19. package/dist/Alert.js.map +1 -1
  20. package/dist/Alert.jsx +10 -6
  21. package/dist/Alert.jsx.map +1 -1
  22. package/dist/Autocomplete.d.ts +2 -9
  23. package/dist/Autocomplete.d.ts.map +1 -1
  24. package/dist/Autocomplete.js +19 -6
  25. package/dist/Autocomplete.js.map +1 -1
  26. package/dist/Autocomplete.jsx +21 -8
  27. package/dist/Autocomplete.jsx.map +1 -1
  28. package/dist/Breadcrumbs.d.ts +2 -1
  29. package/dist/Breadcrumbs.d.ts.map +1 -1
  30. package/dist/Breadcrumbs.js +152 -59
  31. package/dist/Breadcrumbs.js.map +1 -1
  32. package/dist/Breadcrumbs.jsx +99 -19
  33. package/dist/Breadcrumbs.jsx.map +1 -1
  34. package/dist/Button.d.ts +1 -7
  35. package/dist/Button.d.ts.map +1 -1
  36. package/dist/Button.js +144 -79
  37. package/dist/Button.js.map +1 -1
  38. package/dist/Button.jsx +124 -50
  39. package/dist/Button.jsx.map +1 -1
  40. package/dist/Calendar.d.ts +9 -7
  41. package/dist/Calendar.d.ts.map +1 -1
  42. package/dist/Calendar.js +321 -228
  43. package/dist/Calendar.js.map +1 -1
  44. package/dist/Calendar.jsx +74 -41
  45. package/dist/Calendar.jsx.map +1 -1
  46. package/dist/CalendarPicker.d.ts +1 -10
  47. package/dist/CalendarPicker.d.ts.map +1 -1
  48. package/dist/CalendarPicker.js +12 -0
  49. package/dist/CalendarPicker.js.map +1 -1
  50. package/dist/CalendarPicker.jsx +12 -0
  51. package/dist/CalendarPicker.jsx.map +1 -1
  52. package/dist/Checkbox.d.ts +3 -19
  53. package/dist/Checkbox.d.ts.map +1 -1
  54. package/dist/Checkbox.js +422 -317
  55. package/dist/Checkbox.js.map +1 -1
  56. package/dist/Checkbox.jsx +150 -131
  57. package/dist/Checkbox.jsx.map +1 -1
  58. package/dist/Collection.d.ts +152 -6
  59. package/dist/Collection.d.ts.map +1 -1
  60. package/dist/Collection.js +245 -78
  61. package/dist/Collection.js.map +1 -1
  62. package/dist/Collection.jsx +150 -12
  63. package/dist/Collection.jsx.map +1 -1
  64. package/dist/Color.d.ts +8 -572
  65. package/dist/Color.d.ts.map +1 -1
  66. package/dist/Color.js +8 -1717
  67. package/dist/Color.jsx +8 -1340
  68. package/dist/ColorArea.d.ts +104 -0
  69. package/dist/ColorArea.d.ts.map +1 -0
  70. package/dist/ColorArea.js +382 -0
  71. package/dist/ColorArea.js.map +1 -0
  72. package/dist/ColorArea.jsx +286 -0
  73. package/dist/ColorArea.jsx.map +1 -0
  74. package/dist/ColorEditor.d.ts +3 -1
  75. package/dist/ColorEditor.d.ts.map +1 -1
  76. package/dist/ColorEditor.js +147 -125
  77. package/dist/ColorEditor.js.map +1 -1
  78. package/dist/ColorEditor.jsx +12 -6
  79. package/dist/ColorEditor.jsx.map +1 -1
  80. package/dist/ColorField.d.ts +89 -0
  81. package/dist/ColorField.d.ts.map +1 -0
  82. package/dist/ColorField.js +395 -0
  83. package/dist/ColorField.js.map +1 -0
  84. package/dist/ColorField.jsx +280 -0
  85. package/dist/ColorField.jsx.map +1 -0
  86. package/dist/ColorPicker.d.ts +33 -0
  87. package/dist/ColorPicker.d.ts.map +1 -0
  88. package/dist/ColorPicker.js +86 -0
  89. package/dist/ColorPicker.js.map +1 -0
  90. package/dist/ColorPicker.jsx +67 -0
  91. package/dist/ColorPicker.jsx.map +1 -0
  92. package/dist/ColorSlider.d.ts +145 -0
  93. package/dist/ColorSlider.d.ts.map +1 -0
  94. package/dist/ColorSlider.js +444 -0
  95. package/dist/ColorSlider.js.map +1 -0
  96. package/dist/ColorSlider.jsx +319 -0
  97. package/dist/ColorSlider.jsx.map +1 -0
  98. package/dist/ColorSwatch.d.ts +37 -0
  99. package/dist/ColorSwatch.d.ts.map +1 -0
  100. package/dist/ColorSwatch.js +101 -0
  101. package/dist/ColorSwatch.js.map +1 -0
  102. package/dist/ColorSwatch.jsx +84 -0
  103. package/dist/ColorSwatch.jsx.map +1 -0
  104. package/dist/ColorSwatchPicker.d.ts +82 -0
  105. package/dist/ColorSwatchPicker.d.ts.map +1 -0
  106. package/dist/ColorSwatchPicker.js +364 -0
  107. package/dist/ColorSwatchPicker.js.map +1 -0
  108. package/dist/ColorSwatchPicker.jsx +314 -0
  109. package/dist/ColorSwatchPicker.jsx.map +1 -0
  110. package/dist/ColorThumb.d.ts +16 -0
  111. package/dist/ColorThumb.d.ts.map +1 -0
  112. package/dist/ColorThumb.js +14 -0
  113. package/dist/ColorThumb.jsx +14 -0
  114. package/dist/ColorWheel.d.ts +103 -0
  115. package/dist/ColorWheel.d.ts.map +1 -0
  116. package/dist/ColorWheel.js +312 -0
  117. package/dist/ColorWheel.js.map +1 -0
  118. package/dist/ColorWheel.jsx +224 -0
  119. package/dist/ColorWheel.jsx.map +1 -0
  120. package/dist/ComboBox.d.ts +68 -32
  121. package/dist/ComboBox.d.ts.map +1 -1
  122. package/dist/ComboBox.js +564 -292
  123. package/dist/ComboBox.js.map +1 -1
  124. package/dist/ComboBox.jsx +235 -89
  125. package/dist/ComboBox.jsx.map +1 -1
  126. package/dist/ContextualHelpTrigger.d.ts +1 -7
  127. package/dist/ContextualHelpTrigger.d.ts.map +1 -1
  128. package/dist/ContextualHelpTrigger.js +104 -86
  129. package/dist/ContextualHelpTrigger.js.map +1 -1
  130. package/dist/ContextualHelpTrigger.jsx +38 -30
  131. package/dist/ContextualHelpTrigger.jsx.map +1 -1
  132. package/dist/DateField.d.ts +15 -9
  133. package/dist/DateField.d.ts.map +1 -1
  134. package/dist/DateField.js +0 -2
  135. package/dist/DateField.jsx +0 -2
  136. package/dist/DateField2.js +262 -196
  137. package/dist/DateField2.js.map +1 -1
  138. package/dist/DateField2.jsx +114 -74
  139. package/dist/DateField2.jsx.map +1 -1
  140. package/dist/DatePicker.d.ts +13 -34
  141. package/dist/DatePicker.d.ts.map +1 -1
  142. package/dist/DatePicker.js +3 -2
  143. package/dist/DatePicker.jsx +3 -2
  144. package/dist/DatePicker2.js +671 -512
  145. package/dist/DatePicker2.js.map +1 -1
  146. package/dist/DatePicker2.jsx +342 -222
  147. package/dist/DatePicker2.jsx.map +1 -1
  148. package/dist/DateRangePickerContext.d.ts +7 -0
  149. package/dist/DateRangePickerContext.d.ts.map +1 -1
  150. package/dist/Dialog.d.ts +6 -25
  151. package/dist/Dialog.d.ts.map +1 -1
  152. package/dist/Dialog.js +181 -232
  153. package/dist/Dialog.js.map +1 -1
  154. package/dist/Dialog.jsx +138 -98
  155. package/dist/Dialog.jsx.map +1 -1
  156. package/dist/Disclosure.d.ts +1 -9
  157. package/dist/Disclosure.d.ts.map +1 -1
  158. package/dist/Disclosure.js +167 -92
  159. package/dist/Disclosure.js.map +1 -1
  160. package/dist/Disclosure.jsx +62 -22
  161. package/dist/Disclosure.jsx.map +1 -1
  162. package/dist/DragAndDrop.d.ts +9 -6
  163. package/dist/DragAndDrop.d.ts.map +1 -1
  164. package/dist/DragAndDrop.js +40 -23
  165. package/dist/DragAndDrop.js.map +1 -1
  166. package/dist/DragAndDrop.jsx +23 -5
  167. package/dist/DragAndDrop.jsx.map +1 -1
  168. package/dist/DragPreview.d.ts +1 -1
  169. package/dist/DragPreview.d.ts.map +1 -1
  170. package/dist/DropZone.d.ts +4 -3
  171. package/dist/DropZone.d.ts.map +1 -1
  172. package/dist/DropZone.js +107 -57
  173. package/dist/DropZone.js.map +1 -1
  174. package/dist/DropZone.jsx +49 -13
  175. package/dist/DropZone.jsx.map +1 -1
  176. package/dist/ElementTag.d.ts +9 -20
  177. package/dist/ElementTag.d.ts.map +1 -1
  178. package/dist/ElementTag.js +8 -210
  179. package/dist/ElementTag.js.map +1 -1
  180. package/dist/ElementTag.jsx +8 -57
  181. package/dist/ElementTag.jsx.map +1 -1
  182. package/dist/FieldError.d.ts +8 -7
  183. package/dist/FieldError.d.ts.map +1 -1
  184. package/dist/FieldError.js +33 -13
  185. package/dist/FieldError.js.map +1 -1
  186. package/dist/FieldError.jsx +20 -5
  187. package/dist/FieldError.jsx.map +1 -1
  188. package/dist/FileTrigger.d.ts +1 -7
  189. package/dist/FileTrigger.d.ts.map +1 -1
  190. package/dist/FileTrigger.js +69 -17
  191. package/dist/FileTrigger.js.map +1 -1
  192. package/dist/FileTrigger.jsx +49 -3
  193. package/dist/FileTrigger.jsx.map +1 -1
  194. package/dist/Focusable.d.ts +2 -8
  195. package/dist/Focusable.d.ts.map +1 -1
  196. package/dist/Focusable.js +23 -6
  197. package/dist/Focusable.js.map +1 -1
  198. package/dist/Focusable.jsx +22 -5
  199. package/dist/Focusable.jsx.map +1 -1
  200. package/dist/Form.d.ts +9 -8
  201. package/dist/Form.d.ts.map +1 -1
  202. package/dist/Form.js +82 -42
  203. package/dist/Form.js.map +1 -1
  204. package/dist/Form.jsx +52 -17
  205. package/dist/Form.jsx.map +1 -1
  206. package/dist/GridList.d.ts +65 -37
  207. package/dist/GridList.d.ts.map +1 -1
  208. package/dist/GridList.js +512 -277
  209. package/dist/GridList.js.map +1 -1
  210. package/dist/GridList.jsx +307 -134
  211. package/dist/GridList.jsx.map +1 -1
  212. package/dist/Heading.d.ts +15 -0
  213. package/dist/Heading.d.ts.map +1 -0
  214. package/dist/Heading.js +55 -0
  215. package/dist/Heading.js.map +1 -0
  216. package/dist/Heading.jsx +40 -0
  217. package/dist/Heading.jsx.map +1 -0
  218. package/dist/HiddenDateInput.d.ts +1 -7
  219. package/dist/HiddenDateInput.d.ts.map +1 -1
  220. package/dist/Icon.d.ts +4 -1
  221. package/dist/Icon.d.ts.map +1 -1
  222. package/dist/Icon.js +55 -38
  223. package/dist/Icon.js.map +1 -1
  224. package/dist/Icon.jsx +12 -4
  225. package/dist/Icon.jsx.map +1 -1
  226. package/dist/Keyboard.d.ts +1 -7
  227. package/dist/Keyboard.d.ts.map +1 -1
  228. package/dist/Keyboard.js +24 -11
  229. package/dist/Keyboard.js.map +1 -1
  230. package/dist/Keyboard.jsx +15 -2
  231. package/dist/Keyboard.jsx.map +1 -1
  232. package/dist/Label.d.ts +20 -0
  233. package/dist/Label.d.ts.map +1 -0
  234. package/dist/Label.js +60 -0
  235. package/dist/Label.js.map +1 -0
  236. package/dist/Label.jsx +47 -0
  237. package/dist/Label.jsx.map +1 -0
  238. package/dist/Landmark.d.ts +4 -1
  239. package/dist/Landmark.d.ts.map +1 -1
  240. package/dist/Landmark.js +10 -4
  241. package/dist/Landmark.js.map +1 -1
  242. package/dist/Landmark.jsx +5 -1
  243. package/dist/Landmark.jsx.map +1 -1
  244. package/dist/Link.d.ts +4 -7
  245. package/dist/Link.d.ts.map +1 -1
  246. package/dist/Link.js +80 -47
  247. package/dist/Link.js.map +1 -1
  248. package/dist/Link.jsx +76 -21
  249. package/dist/Link.jsx.map +1 -1
  250. package/dist/ListBox.d.ts +62 -33
  251. package/dist/ListBox.d.ts.map +1 -1
  252. package/dist/ListBox.js +858 -411
  253. package/dist/ListBox.js.map +1 -1
  254. package/dist/ListBox.jsx +478 -268
  255. package/dist/ListBox.jsx.map +1 -1
  256. package/dist/ListDropTargetDelegate.d.ts +3 -0
  257. package/dist/ListDropTargetDelegate.d.ts.map +1 -1
  258. package/dist/Menu.d.ts +51 -34
  259. package/dist/Menu.d.ts.map +1 -1
  260. package/dist/Menu.js +808 -427
  261. package/dist/Menu.js.map +1 -1
  262. package/dist/Menu.jsx +570 -296
  263. package/dist/Menu.jsx.map +1 -1
  264. package/dist/Meter.d.ts +6 -13
  265. package/dist/Meter.d.ts.map +1 -1
  266. package/dist/Meter.js +55 -18
  267. package/dist/Meter.js.map +1 -1
  268. package/dist/Meter.jsx +33 -8
  269. package/dist/Meter.jsx.map +1 -1
  270. package/dist/Modal.d.ts +1 -7
  271. package/dist/Modal.d.ts.map +1 -1
  272. package/dist/Modal.js +106 -74
  273. package/dist/Modal.js.map +1 -1
  274. package/dist/Modal.jsx +68 -57
  275. package/dist/Modal.jsx.map +1 -1
  276. package/dist/NumberField.d.ts +6 -9
  277. package/dist/NumberField.d.ts.map +1 -1
  278. package/dist/NumberField.js +344 -136
  279. package/dist/NumberField.js.map +1 -1
  280. package/dist/NumberField.jsx +194 -38
  281. package/dist/NumberField.jsx.map +1 -1
  282. package/dist/Popover.d.ts +21 -7
  283. package/dist/Popover.d.ts.map +1 -1
  284. package/dist/Popover.js +392 -192
  285. package/dist/Popover.js.map +1 -1
  286. package/dist/Popover.jsx +237 -93
  287. package/dist/Popover.jsx.map +1 -1
  288. package/dist/Pressable.d.ts +2 -8
  289. package/dist/Pressable.d.ts.map +1 -1
  290. package/dist/Pressable.js +23 -6
  291. package/dist/Pressable.js.map +1 -1
  292. package/dist/Pressable.jsx +22 -5
  293. package/dist/Pressable.jsx.map +1 -1
  294. package/dist/PreviewTrigger.d.ts +24 -0
  295. package/dist/PreviewTrigger.d.ts.map +1 -0
  296. package/dist/PreviewTrigger.js +128 -0
  297. package/dist/PreviewTrigger.js.map +1 -0
  298. package/dist/PreviewTrigger.jsx +117 -0
  299. package/dist/PreviewTrigger.jsx.map +1 -0
  300. package/dist/ProgressBar.d.ts +1 -7
  301. package/dist/ProgressBar.d.ts.map +1 -1
  302. package/dist/ProgressBar.js +49 -16
  303. package/dist/ProgressBar.js.map +1 -1
  304. package/dist/ProgressBar.jsx +30 -6
  305. package/dist/ProgressBar.jsx.map +1 -1
  306. package/dist/RadioGroup.d.ts +4 -20
  307. package/dist/RadioGroup.d.ts.map +1 -1
  308. package/dist/RadioGroup.js +459 -338
  309. package/dist/RadioGroup.js.map +1 -1
  310. package/dist/RadioGroup.jsx +186 -153
  311. package/dist/RadioGroup.jsx.map +1 -1
  312. package/dist/RangeCalendar.d.ts +11 -7
  313. package/dist/RangeCalendar.d.ts.map +1 -1
  314. package/dist/RangeCalendar.js +299 -208
  315. package/dist/RangeCalendar.js.map +1 -1
  316. package/dist/RangeCalendar.jsx +79 -47
  317. package/dist/RangeCalendar.jsx.map +1 -1
  318. package/dist/RouterProvider.d.ts +17 -69
  319. package/dist/RouterProvider.d.ts.map +1 -1
  320. package/dist/RouterProvider.js +12 -116
  321. package/dist/RouterProvider.jsx +12 -110
  322. package/dist/SearchField.d.ts +5 -8
  323. package/dist/SearchField.d.ts.map +1 -1
  324. package/dist/SearchField.js +212 -181
  325. package/dist/SearchField.js.map +1 -1
  326. package/dist/SearchField.jsx +94 -78
  327. package/dist/SearchField.jsx.map +1 -1
  328. package/dist/Select.d.ts +73 -36
  329. package/dist/Select.d.ts.map +1 -1
  330. package/dist/Select.js +700 -453
  331. package/dist/Select.js.map +1 -1
  332. package/dist/Select.jsx +356 -237
  333. package/dist/Select.jsx.map +1 -1
  334. package/dist/SelectionIndicator.d.ts +1 -4
  335. package/dist/SelectionIndicator.d.ts.map +1 -1
  336. package/dist/SelectionIndicator.js +29 -13
  337. package/dist/SelectionIndicator.js.map +1 -1
  338. package/dist/SelectionIndicator.jsx +18 -4
  339. package/dist/SelectionIndicator.jsx.map +1 -1
  340. package/dist/Separator.d.ts +3 -9
  341. package/dist/Separator.d.ts.map +1 -1
  342. package/dist/Separator.js +24 -12
  343. package/dist/Separator.js.map +1 -1
  344. package/dist/Separator.jsx +18 -9
  345. package/dist/Separator.jsx.map +1 -1
  346. package/dist/SharedElementTransition.d.ts +1 -10
  347. package/dist/SharedElementTransition.d.ts.map +1 -1
  348. package/dist/SharedElementTransition.js +68 -40
  349. package/dist/SharedElementTransition.js.map +1 -1
  350. package/dist/SharedElementTransition.jsx +49 -25
  351. package/dist/SharedElementTransition.jsx.map +1 -1
  352. package/dist/Slider.d.ts +25 -26
  353. package/dist/Slider.d.ts.map +1 -1
  354. package/dist/Slider.js +324 -167
  355. package/dist/Slider.js.map +1 -1
  356. package/dist/Slider.jsx +195 -93
  357. package/dist/Slider.jsx.map +1 -1
  358. package/dist/StepList.d.ts +2 -8
  359. package/dist/StepList.d.ts.map +1 -1
  360. package/dist/StepList.js +121 -75
  361. package/dist/StepList.js.map +1 -1
  362. package/dist/StepList.jsx +67 -27
  363. package/dist/StepList.jsx.map +1 -1
  364. package/dist/Switch.d.ts +17 -11
  365. package/dist/Switch.d.ts.map +1 -1
  366. package/dist/Switch.js +213 -128
  367. package/dist/Switch.js.map +1 -1
  368. package/dist/Switch.jsx +68 -31
  369. package/dist/Switch.jsx.map +1 -1
  370. package/dist/Table.d.ts +21 -2
  371. package/dist/Table.d.ts.map +1 -1
  372. package/dist/Table.js +938 -638
  373. package/dist/Table.js.map +1 -1
  374. package/dist/Table.jsx +537 -259
  375. package/dist/Table.jsx.map +1 -1
  376. package/dist/Tabs.d.ts +2 -7
  377. package/dist/Tabs.d.ts.map +1 -1
  378. package/dist/Tabs.js +322 -300
  379. package/dist/Tabs.js.map +1 -1
  380. package/dist/Tabs.jsx +106 -67
  381. package/dist/Tabs.jsx.map +1 -1
  382. package/dist/TagGroup.d.ts +32 -22
  383. package/dist/TagGroup.d.ts.map +1 -1
  384. package/dist/TagGroup.js +377 -136
  385. package/dist/TagGroup.js.map +1 -1
  386. package/dist/TagGroup.jsx +220 -53
  387. package/dist/TagGroup.jsx.map +1 -1
  388. package/dist/Text.d.ts +3 -3
  389. package/dist/Text.d.ts.map +1 -1
  390. package/dist/Text.js +38 -8
  391. package/dist/Text.js.map +1 -1
  392. package/dist/Text.jsx +27 -5
  393. package/dist/Text.jsx.map +1 -1
  394. package/dist/TextField.d.ts +4 -17
  395. package/dist/TextField.d.ts.map +1 -1
  396. package/dist/TextField.js +116 -142
  397. package/dist/TextField.js.map +1 -1
  398. package/dist/TextField.jsx +88 -115
  399. package/dist/TextField.jsx.map +1 -1
  400. package/dist/TimeField.d.ts +3 -16
  401. package/dist/TimeField.d.ts.map +1 -1
  402. package/dist/TimeField.js +121 -107
  403. package/dist/TimeField.js.map +1 -1
  404. package/dist/TimeField.jsx +67 -54
  405. package/dist/TimeField.jsx.map +1 -1
  406. package/dist/Toast.d.ts +27 -14
  407. package/dist/Toast.d.ts.map +1 -1
  408. package/dist/Toast.js +273 -113
  409. package/dist/Toast.js.map +1 -1
  410. package/dist/Toast.jsx +182 -32
  411. package/dist/Toast.jsx.map +1 -1
  412. package/dist/ToggleButton.d.ts +1 -7
  413. package/dist/ToggleButton.d.ts.map +1 -1
  414. package/dist/ToggleButton.js +75 -35
  415. package/dist/ToggleButton.js.map +1 -1
  416. package/dist/ToggleButton.jsx +39 -13
  417. package/dist/ToggleButton.jsx.map +1 -1
  418. package/dist/ToggleButtonGroup.d.ts +1 -7
  419. package/dist/ToggleButtonGroup.d.ts.map +1 -1
  420. package/dist/ToggleButtonGroup.js +59 -44
  421. package/dist/ToggleButtonGroup.js.map +1 -1
  422. package/dist/ToggleButtonGroup.jsx +25 -12
  423. package/dist/ToggleButtonGroup.jsx.map +1 -1
  424. package/dist/TokenField.d.ts +54 -0
  425. package/dist/TokenField.d.ts.map +1 -0
  426. package/dist/TokenField.js +374 -0
  427. package/dist/TokenField.js.map +1 -0
  428. package/dist/TokenField.jsx +272 -0
  429. package/dist/TokenField.jsx.map +1 -0
  430. package/dist/Toolbar.d.ts +2 -7
  431. package/dist/Toolbar.d.ts.map +1 -1
  432. package/dist/Toolbar.js +37 -22
  433. package/dist/Toolbar.js.map +1 -1
  434. package/dist/Toolbar.jsx +17 -8
  435. package/dist/Toolbar.jsx.map +1 -1
  436. package/dist/Tooltip.d.ts +2 -7
  437. package/dist/Tooltip.d.ts.map +1 -1
  438. package/dist/Tooltip.js +128 -78
  439. package/dist/Tooltip.js.map +1 -1
  440. package/dist/Tooltip.jsx +83 -46
  441. package/dist/Tooltip.jsx.map +1 -1
  442. package/dist/Tree.d.ts +85 -39
  443. package/dist/Tree.d.ts.map +1 -1
  444. package/dist/Tree.js +926 -414
  445. package/dist/Tree.js.map +1 -1
  446. package/dist/Tree.jsx +450 -195
  447. package/dist/Tree.jsx.map +1 -1
  448. package/dist/Virtualizer.d.ts +41 -10
  449. package/dist/Virtualizer.d.ts.map +1 -1
  450. package/dist/Virtualizer.js +2 -2
  451. package/dist/Virtualizer.jsx +2 -2
  452. package/dist/Virtualizer2.js +554 -144
  453. package/dist/Virtualizer2.js.map +1 -1
  454. package/dist/Virtualizer2.jsx +516 -124
  455. package/dist/Virtualizer2.jsx.map +1 -1
  456. package/dist/VirtualizerLayouts.d.ts +55 -2
  457. package/dist/VirtualizerLayouts.d.ts.map +1 -1
  458. package/dist/VisuallyHidden.d.ts +4 -3
  459. package/dist/VisuallyHidden.d.ts.map +1 -1
  460. package/dist/VisuallyHidden.js +18 -11
  461. package/dist/VisuallyHidden.js.map +1 -1
  462. package/dist/VisuallyHidden.jsx +15 -9
  463. package/dist/VisuallyHidden.jsx.map +1 -1
  464. package/dist/calendarHeadingTitle.d.ts +14 -0
  465. package/dist/calendarHeadingTitle.d.ts.map +1 -0
  466. package/dist/calendarHeadingTitle.js +23 -0
  467. package/dist/calendarHeadingTitle.js.map +1 -0
  468. package/dist/calendarHeadingTitle.jsx +23 -0
  469. package/dist/calendarHeadingTitle.jsx.map +1 -0
  470. package/dist/contexts.d.ts +31 -1
  471. package/dist/contexts.d.ts.map +1 -1
  472. package/dist/contexts.js +9 -1
  473. package/dist/contexts.js.map +1 -1
  474. package/dist/contexts.jsx +9 -1
  475. package/dist/contexts.jsx.map +1 -1
  476. package/dist/fileTriggerContext.d.ts +5 -0
  477. package/dist/fileTriggerContext.d.ts.map +1 -0
  478. package/dist/fileTriggerContext.js +7 -0
  479. package/dist/fileTriggerContext.js.map +1 -0
  480. package/dist/fileTriggerContext.jsx +7 -0
  481. package/dist/fileTriggerContext.jsx.map +1 -0
  482. package/dist/index.d.ts +27 -15
  483. package/dist/index.d.ts.map +1 -1
  484. package/dist/index.js +30 -18
  485. package/dist/index.jsx +30 -18
  486. package/dist/intl/index.d.ts +16 -0
  487. package/dist/intl/index.d.ts.map +1 -0
  488. package/dist/intl.js +212 -0
  489. package/dist/intl.js.map +1 -0
  490. package/dist/intl.jsx +212 -0
  491. package/dist/intl.jsx.map +1 -0
  492. package/dist/loadMoreSentinel.d.ts +7 -0
  493. package/dist/loadMoreSentinel.d.ts.map +1 -0
  494. package/dist/loadMoreSentinel.js +30 -0
  495. package/dist/loadMoreSentinel.js.map +1 -0
  496. package/dist/loadMoreSentinel.jsx +30 -0
  497. package/dist/loadMoreSentinel.jsx.map +1 -0
  498. package/dist/slots.d.ts +35 -0
  499. package/dist/slots.d.ts.map +1 -0
  500. package/dist/slots.js +66 -0
  501. package/dist/slots.js.map +1 -0
  502. package/dist/slots.jsx +66 -0
  503. package/dist/slots.jsx.map +1 -0
  504. package/dist/staticSelectCollection.d.ts +2 -0
  505. package/dist/staticSelectCollection.d.ts.map +1 -0
  506. package/dist/staticSelectCollection.js +2 -0
  507. package/dist/staticSelectCollection.jsx +2 -0
  508. package/dist/useDragAndDrop.d.ts +6 -2
  509. package/dist/useDragAndDrop.d.ts.map +1 -1
  510. package/dist/useDragAndDrop2.js +39 -21
  511. package/dist/useDragAndDrop2.js.map +1 -1
  512. package/dist/useDragAndDrop2.jsx +39 -21
  513. package/dist/useDragAndDrop2.jsx.map +1 -1
  514. package/dist/utils.d.ts +49 -9
  515. package/dist/utils.d.ts.map +1 -1
  516. package/dist/utils.js +119 -24
  517. package/dist/utils.js.map +1 -1
  518. package/dist/utils.jsx +110 -24
  519. package/dist/utils.jsx.map +1 -1
  520. package/dist/virtualizer/Layout.d.ts +12 -2
  521. package/dist/virtualizer/Layout.d.ts.map +1 -1
  522. package/dist/virtualizer/Layout.js +23 -2
  523. package/dist/virtualizer/Layout.js.map +1 -1
  524. package/dist/virtualizer/Layout.jsx +23 -2
  525. package/dist/virtualizer/Layout.jsx.map +1 -1
  526. package/package.json +87 -10
  527. package/src/ActionBar.tsx +50 -24
  528. package/src/ActionGroup.tsx +30 -19
  529. package/src/Alert.tsx +12 -7
  530. package/src/Autocomplete.tsx +25 -16
  531. package/src/Breadcrumbs.tsx +139 -24
  532. package/src/Button.tsx +214 -76
  533. package/src/Calendar.tsx +120 -61
  534. package/src/CalendarPicker.tsx +16 -1
  535. package/src/Checkbox.tsx +205 -227
  536. package/src/Collection.tsx +334 -12
  537. package/src/Color.tsx +8 -2454
  538. package/src/ColorArea.tsx +479 -0
  539. package/src/ColorEditor.tsx +9 -9
  540. package/src/ColorField.tsx +471 -0
  541. package/src/ColorPicker.tsx +126 -0
  542. package/src/ColorSlider.tsx +562 -0
  543. package/src/ColorSwatch.tsx +129 -0
  544. package/src/ColorSwatchPicker.tsx +623 -0
  545. package/src/ColorThumb.tsx +19 -0
  546. package/src/ColorWheel.tsx +398 -0
  547. package/src/ComboBox.tsx +471 -173
  548. package/src/ContextualHelpTrigger.tsx +49 -65
  549. package/src/DateField.tsx +174 -131
  550. package/src/DatePicker.tsx +501 -376
  551. package/src/DateRangePickerContext.tsx +8 -0
  552. package/src/Dialog.tsx +224 -162
  553. package/src/Disclosure.tsx +85 -34
  554. package/src/DragAndDrop.tsx +51 -9
  555. package/src/DragPreview.tsx +20 -1
  556. package/src/DropZone.tsx +77 -42
  557. package/src/ElementTag.tsx +14 -104
  558. package/src/FieldError.tsx +39 -7
  559. package/src/FileTrigger.tsx +71 -4
  560. package/src/Focusable.tsx +27 -11
  561. package/src/Form.tsx +64 -15
  562. package/src/GridList.tsx +478 -214
  563. package/src/Heading.tsx +59 -0
  564. package/src/HiddenDateInput.tsx +19 -3
  565. package/src/Icon.tsx +19 -4
  566. package/src/Keyboard.tsx +18 -2
  567. package/src/Label.tsx +77 -0
  568. package/src/Landmark.tsx +6 -1
  569. package/src/Link.tsx +103 -30
  570. package/src/ListBox.tsx +924 -530
  571. package/src/ListDropTargetDelegate.ts +4 -0
  572. package/src/Menu.tsx +883 -465
  573. package/src/Meter.tsx +42 -8
  574. package/src/Modal.tsx +89 -80
  575. package/src/NumberField.tsx +267 -66
  576. package/src/Popover.tsx +454 -156
  577. package/src/Pressable.tsx +27 -11
  578. package/src/PreviewTrigger.tsx +171 -0
  579. package/src/ProgressBar.tsx +41 -5
  580. package/src/RadioGroup.tsx +358 -278
  581. package/src/RangeCalendar.tsx +130 -77
  582. package/src/RouterProvider.tsx +33 -215
  583. package/src/SearchField.tsx +157 -136
  584. package/src/Select.tsx +689 -453
  585. package/src/SelectionIndicator.tsx +21 -3
  586. package/src/Separator.tsx +22 -14
  587. package/src/SharedElementTransition.tsx +67 -46
  588. package/src/Slider.tsx +296 -120
  589. package/src/StepList.tsx +88 -38
  590. package/src/Switch.tsx +127 -51
  591. package/src/Table.tsx +842 -479
  592. package/src/Tabs.tsx +186 -156
  593. package/src/TagGroup.tsx +377 -90
  594. package/src/Text.tsx +39 -7
  595. package/src/TextField.tsx +136 -173
  596. package/src/TimeField.tsx +90 -93
  597. package/src/Toast.tsx +238 -82
  598. package/src/ToggleButton.tsx +60 -17
  599. package/src/ToggleButtonGroup.tsx +27 -9
  600. package/src/TokenField.tsx +502 -0
  601. package/src/Toolbar.tsx +21 -17
  602. package/src/Tooltip.tsx +157 -99
  603. package/src/Tree.tsx +888 -360
  604. package/src/Virtualizer.tsx +501 -148
  605. package/src/VirtualizerLayouts.ts +211 -26
  606. package/src/VisuallyHidden.tsx +22 -8
  607. package/src/calendarHeadingTitle.ts +37 -0
  608. package/src/contexts.ts +23 -1
  609. package/src/fileTriggerContext.ts +8 -0
  610. package/src/index.ts +98 -22
  611. package/src/intl/ar-AE.json +6 -0
  612. package/src/intl/bg-BG.json +6 -0
  613. package/src/intl/cs-CZ.json +6 -0
  614. package/src/intl/da-DK.json +6 -0
  615. package/src/intl/de-DE.json +6 -0
  616. package/src/intl/el-GR.json +6 -0
  617. package/src/intl/en-US.json +6 -0
  618. package/src/intl/es-ES.json +6 -0
  619. package/src/intl/et-EE.json +6 -0
  620. package/src/intl/fi-FI.json +6 -0
  621. package/src/intl/fr-FR.json +6 -0
  622. package/src/intl/he-IL.json +6 -0
  623. package/src/intl/hr-HR.json +6 -0
  624. package/src/intl/hu-HU.json +6 -0
  625. package/src/intl/index.ts +125 -0
  626. package/src/intl/it-IT.json +6 -0
  627. package/src/intl/ja-JP.json +6 -0
  628. package/src/intl/ko-KR.json +6 -0
  629. package/src/intl/lt-LT.json +6 -0
  630. package/src/intl/lv-LV.json +6 -0
  631. package/src/intl/nb-NO.json +6 -0
  632. package/src/intl/nl-NL.json +6 -0
  633. package/src/intl/pl-PL.json +6 -0
  634. package/src/intl/pt-BR.json +6 -0
  635. package/src/intl/pt-PT.json +6 -0
  636. package/src/intl/ro-RO.json +6 -0
  637. package/src/intl/ru-RU.json +6 -0
  638. package/src/intl/sk-SK.json +6 -0
  639. package/src/intl/sl-SI.json +6 -0
  640. package/src/intl/sr-SP.json +6 -0
  641. package/src/intl/sv-SE.json +6 -0
  642. package/src/intl/tr-TR.json +6 -0
  643. package/src/intl/uk-UA.json +6 -0
  644. package/src/intl/zh-CN.json +6 -0
  645. package/src/intl/zh-TW.json +6 -0
  646. package/src/loadMoreSentinel.ts +31 -0
  647. package/src/slots.tsx +103 -0
  648. package/src/staticSelectCollection.tsx +25 -0
  649. package/src/useDragAndDrop.ts +35 -33
  650. package/src/utils.tsx +178 -67
  651. package/src/virtualizer/Layout.ts +32 -2
  652. package/dist/Color.js.map +0 -1
  653. package/dist/Color.jsx.map +0 -1
  654. package/dist/RouterProvider.js.map +0 -1
  655. package/dist/RouterProvider.jsx.map +0 -1
package/src/DateField.tsx CHANGED
@@ -1,3 +1,30 @@
1
+ /*
2
+ * Copyright 2022 Adobe. All rights reserved.
3
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License. You may obtain a copy
5
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+ *
7
+ * Unless required by applicable law or agreed to in writing, software distributed under
8
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
+ * OF ANY KIND, either express or implied. See the License for the specific language
10
+ * governing permissions and limitations under the License.
11
+ */
12
+
13
+ /*
14
+ * Copyright 2025 Adobe. All rights reserved.
15
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
16
+ * you may not use this file except in compliance with the License. You may obtain a copy
17
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
18
+ *
19
+ * Unless required by applicable law or agreed to in writing, software distributed under
20
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
21
+ * OF ANY KIND, either express or implied. See the License for the specific language
22
+ * governing permissions and limitations under the License.
23
+ */
24
+
25
+ // Ported to SolidJS for Proyecto Viviana; based on packages/react-aria-components/src/DateField.tsx
26
+ // Ported to SolidJS for Proyecto Viviana; based on packages/react-aria-components/src/HiddenDateInput.tsx
27
+
1
28
  /**
2
29
  * DateField component for solidaria-components
3
30
  *
@@ -6,18 +33,16 @@
6
33
  */
7
34
 
8
35
  import {
9
- type JSX,
10
- type Context,
11
36
  createContext,
12
- createEffect,
13
37
  createMemo,
14
38
  createSignal,
15
- onCleanup,
16
- splitProps,
17
39
  useContext,
18
- Index,
40
+ For,
19
41
  Show,
42
+ createTrackedEffect,
20
43
  } from "solid-js";
44
+ import type { Context } from "solid-js";
45
+ import type { JSX } from "@solidjs/web";
21
46
  import {
22
47
  createDateField,
23
48
  createDateSegment,
@@ -50,11 +75,15 @@ import {
50
75
  type SlotProps,
51
76
  useRenderProps,
52
77
  dataAttr,
53
- useIsHydrated,
54
78
  Provider,
79
+ callEventHandler,
80
+ useSlot,
55
81
  } from "./utils";
82
+ import { LabelContext, type LabelProps } from "./Label";
56
83
  import { TextContext } from "./Text";
57
- import { FormContext, type FormProps } from "./Form";
84
+ import { FieldErrorContext, type FieldErrorContextValue } from "./FieldError";
85
+ import { FormContext, resolveValidationBehavior, type FormProps } from "./Form";
86
+ import { splitProps } from "@proyecto-viviana/solidaria/utils";
58
87
  import {
59
88
  DateRangePickerContext,
60
89
  type DateRangePickerFieldContextValue,
@@ -73,8 +102,11 @@ export interface DateFieldRenderProps {
73
102
 
74
103
  export interface DateFieldProps<T extends DateValue = DateValue>
75
104
  extends
76
- Omit<AriaDateFieldProps, "id" | "isDisabled" | "isReadOnly" | "isRequired">,
77
- Omit<DateFieldStateProps<T>, "locale">,
105
+ Omit<
106
+ AriaDateFieldProps,
107
+ "id" | "isDisabled" | "isReadOnly" | "isRequired" | "description" | "errorMessage"
108
+ >,
109
+ Omit<DateFieldStateProps<T>, "locale" | "description" | "errorMessage">,
78
110
  SlotProps {
79
111
  /** The children of the component. */
80
112
  children?: JSX.Element | ((segment: DateSegmentType) => JSX.Element);
@@ -87,9 +119,20 @@ export interface DateFieldProps<T extends DateValue = DateValue>
87
119
  }
88
120
 
89
121
  export interface DateInputRenderProps {
122
+ /** Whether the input is hovered with a pointer. */
123
+ isHovered: boolean;
124
+ /** Whether an element within the input is focused. */
125
+ isFocusWithin: boolean;
126
+ /** Whether an element within the input is keyboard focused. */
127
+ isFocusVisible: boolean;
90
128
  /** Whether the input is disabled. */
91
129
  isDisabled: boolean;
92
- /** Whether the input is focused. */
130
+ /** Whether the input is invalid. */
131
+ isInvalid: boolean;
132
+ /**
133
+ * Whether an element within the input is focused.
134
+ * Same signal as `isFocusWithin`. The group stamps `data-focus-within`.
135
+ */
93
136
  isFocused: boolean;
94
137
  }
95
138
 
@@ -153,53 +196,6 @@ export interface DateFieldContextValue {
153
196
  export const DateFieldContext = createContext<DateFieldContextValue | null>(null);
154
197
  export const DateFieldStateContext = createContext<DateFieldState<DateValue> | null>(null);
155
198
 
156
- function withFormValidationBehavior<P extends object>(props: P, formContext: FormProps | null): P {
157
- if (!formContext?.validationBehavior) {
158
- return props;
159
- }
160
-
161
- return new Proxy(props, {
162
- get(target, property, receiver) {
163
- const localValue = Reflect.get(target, property, receiver);
164
- if (property === "validationBehavior" && localValue === undefined) {
165
- return formContext.validationBehavior;
166
- }
167
-
168
- return localValue;
169
- },
170
- has(target, property) {
171
- return (
172
- Reflect.has(target, property) ||
173
- (property === "validationBehavior" && formContext.validationBehavior !== undefined)
174
- );
175
- },
176
- ownKeys(target) {
177
- const keys = new Set(Reflect.ownKeys(target));
178
- if (formContext.validationBehavior !== undefined) {
179
- keys.add("validationBehavior");
180
- }
181
-
182
- return Array.from(keys);
183
- },
184
- getOwnPropertyDescriptor(target, property) {
185
- const descriptor = Reflect.getOwnPropertyDescriptor(target, property);
186
- if (descriptor) {
187
- return descriptor;
188
- }
189
-
190
- if (property === "validationBehavior" && formContext.validationBehavior !== undefined) {
191
- return {
192
- enumerable: true,
193
- configurable: true,
194
- get: () => formContext.validationBehavior,
195
- };
196
- }
197
-
198
- return undefined;
199
- },
200
- });
201
- }
202
-
203
199
  export function useDateFieldContext(): DateFieldContextValue {
204
200
  const context = useContext(DateFieldContext);
205
201
  if (!context) {
@@ -209,7 +205,7 @@ export function useDateFieldContext(): DateFieldContextValue {
209
205
  }
210
206
 
211
207
  function useDateInputContext(
212
- slot?: string,
208
+ slot?: string | JSX.RemoveAttribute,
213
209
  ): DateFieldContextValue | DateRangePickerFieldContextValue {
214
210
  const dateFieldContext = useContext(DateFieldContext);
215
211
  if (dateFieldContext) {
@@ -243,20 +239,7 @@ function useDateInputContext(
243
239
  export function DateField<T extends DateValue = CalendarDate>(
244
240
  props: DateFieldProps<T>,
245
241
  ): JSX.Element {
246
- // Use hydration-safe pattern for client-only rendering
247
- const isHydrated = useIsHydrated();
248
- const formContext = useContext(FormContext);
249
-
250
- return (
251
- <Show
252
- when={isHydrated()}
253
- fallback={
254
- <div class="solidaria-DateField solidaria-DateField--placeholder" aria-hidden="true" />
255
- }
256
- >
257
- <DateFieldInner {...props} __formContext={formContext} />
258
- </Show>
259
- );
242
+ return <DateFieldInner {...props} />;
260
243
  }
261
244
 
262
245
  type DateFieldInnerProps<T extends DateValue = DateValue> = DateFieldProps<T> & {
@@ -270,9 +253,8 @@ function DateFieldInner<T extends DateValue = CalendarDate>(
270
253
  props: DateFieldInnerProps<T>,
271
254
  ): JSX.Element {
272
255
  const formContext = props.__formContext ?? useContext(FormContext);
273
- const mergedProps = withFormValidationBehavior(props, formContext);
274
256
  const [local, stateProps, rest] = splitProps(
275
- mergedProps,
257
+ props,
276
258
  ["children", "class", "style", "slot", "__formContext"],
277
259
  [
278
260
  "value",
@@ -293,8 +275,6 @@ function DateFieldInner<T extends DateValue = CalendarDate>(
293
275
  "validationState",
294
276
  "validationBehavior",
295
277
  "validate",
296
- "description",
297
- "errorMessage",
298
278
  "isDateUnavailable",
299
279
  ],
300
280
  );
@@ -309,9 +289,25 @@ function DateFieldInner<T extends DateValue = CalendarDate>(
309
289
 
310
290
  const state = createDateFieldState(stateProps);
311
291
 
292
+ const hasExplicitName = () =>
293
+ Boolean(
294
+ (rest as Record<string, unknown>)["aria-label"] ||
295
+ (rest as Record<string, unknown>)["aria-labelledby"],
296
+ );
297
+ const stringLabel = (): string | undefined => {
298
+ const label = (rest as Record<string, unknown>).label;
299
+ return typeof label === "string" && label !== "" ? label : undefined;
300
+ };
301
+ // A string label names the field through DateFieldLabel. Slot detection
302
+ // starts only when that string and an explicit aria name are both absent.
303
+ const [labelRef, hasLabel] = useSlot(!hasExplicitName() && stringLabel() === undefined);
304
+
312
305
  const fieldAria = createDateField(
313
306
  () => ({
314
307
  ...(rest as Record<string, unknown>),
308
+ // Keep a string label for DateFieldLabel. An explicit aria name wins over
309
+ // a child Label. Otherwise the slot flag tells createLabel a label exists.
310
+ label: stringLabel() ?? (hasExplicitName() ? undefined : hasLabel()),
315
311
  // RAC threads the same props into both useDateFieldState and useDateField;
316
312
  // these live in `stateProps` here, so forward them so the field hook can
317
313
  // build aria-disabled and the native validation <input> (type/required).
@@ -320,12 +316,8 @@ function DateFieldInner<T extends DateValue = CalendarDate>(
320
316
  isReadOnly: access(stateProps.isReadOnly),
321
317
  isRequired: access(stateProps.isRequired),
322
318
  // Mirror RAC DateField: validationBehavior ?? formValidationBehavior ??
323
- // 'native'. withFormValidationBehavior already folds the form default into
324
- // stateProps.validationBehavior; the last `?? 'native'` is the standalone
325
- // default that flips the hidden input to type="text".
326
- validationBehavior: stateProps.validationBehavior ?? "native",
327
- description: stateProps.description,
328
- errorMessage: stateProps.errorMessage,
319
+ // 'native'.
320
+ validationBehavior: resolveValidationBehavior(stateProps.validationBehavior, formContext),
329
321
  // Form-reset + native constraint validation are wired onto this input by
330
322
  // createDateField (see its createFormReset/createFormValidation calls),
331
323
  // exactly as RAC's useDateField wires them onto props.inputRef.
@@ -362,9 +354,34 @@ function DateFieldInner<T extends DateValue = CalendarDate>(
362
354
  },
363
355
  };
364
356
 
357
+ const fieldValidation = createMemo(() => ({
358
+ isInvalid: fieldAria.isInvalid,
359
+ validationErrors: fieldAria.validationErrors,
360
+ validationDetails: fieldAria.validationDetails,
361
+ }));
362
+ const fieldErrorContext: FieldErrorContextValue = {
363
+ get validation() {
364
+ return fieldValidation();
365
+ },
366
+ get errorMessageProps() {
367
+ return fieldAria.errorMessageProps;
368
+ },
369
+ };
370
+
371
+ const labelContextValue: LabelProps = {
372
+ get id() {
373
+ if (hasExplicitName() || stringLabel() !== undefined || !hasLabel()) {
374
+ return undefined;
375
+ }
376
+ return fieldAria.labelProps.id as string | undefined;
377
+ },
378
+ ref: labelRef,
379
+ elementType: "span",
380
+ };
381
+
365
382
  return (
366
- <DateFieldStateContext.Provider value={state as unknown as DateFieldState<DateValue>}>
367
- <DateFieldContext.Provider
383
+ <DateFieldStateContext value={state as unknown as DateFieldState<DateValue>}>
384
+ <DateFieldContext
368
385
  value={{
369
386
  state: state as unknown as DateFieldState<DateValue>,
370
387
  // Read through getters so consumers see the LIVE memo values, not a
@@ -409,14 +426,22 @@ function DateFieldInner<T extends DateValue = CalendarDate>(
409
426
  data-required={dataAttr(state.isRequired())}
410
427
  data-invalid={dataAttr(state.isInvalid())}
411
428
  >
412
- <Provider values={[[TextContext, textSlots]] as Array<[Context<unknown>, unknown]>}>
429
+ <Provider
430
+ values={
431
+ [
432
+ [TextContext, textSlots],
433
+ [FieldErrorContext, fieldErrorContext],
434
+ [LabelContext, labelContextValue],
435
+ ] as Array<[Context<unknown>, unknown]>
436
+ }
437
+ >
413
438
  {local.children as JSX.Element}
414
439
  </Provider>
415
440
  </div>
416
441
  {/*
417
442
  RAC renders <HiddenDateInput> UNCONDITIONALLY at the DateField root
418
443
  (react-aria-components DateField.mjs). It is NOT a validation input — it
419
- is a clipped, aria-hidden, tabIndex={-1} native date input that mirrors
444
+ is a clipped, aria-hidden, tabindex={-1} native date input that mirrors
420
445
  the value for browser autofill. Its `form=""` detaches it from form
421
446
  submission (the DateInput's <Input> above is what submits), so it never
422
447
  double-counts in FormData. It renders regardless of `name` — hence no
@@ -429,8 +454,8 @@ function DateFieldInner<T extends DateValue = CalendarDate>(
429
454
  isDisabled={state.isDisabled()}
430
455
  state={state as unknown as DateFieldState<DateValue>}
431
456
  />
432
- </DateFieldContext.Provider>
433
- </DateFieldStateContext.Provider>
457
+ </DateFieldContext>
458
+ </DateFieldStateContext>
434
459
  );
435
460
  }
436
461
 
@@ -447,12 +472,14 @@ interface RootHiddenDateInputProps {
447
472
 
448
473
  /**
449
474
  * The always-rendered hidden date input at the DateField root — a faithful port
450
- * of react-aria-components' HiddenDateInput (private/HiddenDateInput.mjs). It is
451
- * NOT a validation input: it is a clipped, aria-hidden, tabIndex={-1} native
475
+ * of react-aria-components/src/HiddenDateInput.tsx. It is NOT a validation
476
+ * input: it is a clipped, aria-hidden, tabindex={-1} native
452
477
  * date input that mirrors the current value for browser autofill. `form=""`
453
478
  * detaches it from form submission (the DateInput's <Input> submits), so it
454
479
  * never double-counts in FormData. RAC renders it unconditionally, which is why
455
480
  * it appears as the trailing tabindex="-1" element in the focus trail.
481
+ * `data-react-aria-prevent-focus` keeps FocusScope off the wrapper, and
482
+ * `data-a11y-ignore="aria-hidden-focus"` skips the aria-hidden focusable warning.
456
483
  */
457
484
  function RootHiddenDateInput(props: RootHiddenDateInputProps): JSX.Element {
458
485
  // RAC uses useVisuallyHidden with position:fixed/top:0/left:0 to keep the
@@ -510,10 +537,12 @@ function RootHiddenDateInput(props: RootHiddenDateInputProps): JSX.Element {
510
537
  <div
511
538
  {...(visuallyHiddenProps() as unknown as Record<string, unknown>)}
512
539
  aria-hidden="true"
540
+ data-a11y-ignore="aria-hidden-focus"
541
+ data-react-aria-prevent-focus="true"
513
542
  data-testid="hidden-dateinput-container"
514
543
  >
515
544
  <input
516
- tabIndex={-1}
545
+ tabindex={-1}
517
546
  autocomplete={props.autoComplete}
518
547
  disabled={props.isDisabled}
519
548
  type={inputType()}
@@ -533,11 +562,23 @@ function RootHiddenDateInput(props: RootHiddenDateInputProps): JSX.Element {
533
562
  export function DateInput(props: DateInputProps): JSX.Element {
534
563
  const context = useDateInputContext(props.slot);
535
564
  const { state, aria } = context;
536
- const [isFocused, setIsFocused] = createSignal(false);
537
565
  const [inputRef, setInputRef] = createSignal<HTMLDivElement | null>(null);
566
+ // Pin DateInput renders Group, which tracks hover and focus within.
567
+ // createFocusRing already exposes the within handlers as onFocusIn/onFocusOut.
568
+ // Read them as plain functions so mergeProps chains them onto the field's
569
+ // own focus-within (value snapshot and validation commit). A later getter
570
+ // would replace that handler.
571
+ const { isFocused, isFocusVisible, focusProps } = createFocusRing({ within: true });
572
+ const { isHovered, hoverProps } = createHover(() => ({
573
+ isDisabled: state.isDisabled(),
574
+ }));
538
575
 
539
576
  const renderValues = createMemo<DateInputRenderProps>(() => ({
577
+ isHovered: isHovered(),
578
+ isFocusWithin: isFocused(),
579
+ isFocusVisible: isFocusVisible(),
540
580
  isDisabled: state.isDisabled(),
581
+ isInvalid: state.isInvalid(),
541
582
  isFocused: isFocused(),
542
583
  }));
543
584
 
@@ -550,47 +591,54 @@ export function DateInput(props: DateInputProps): JSX.Element {
550
591
  renderValues,
551
592
  );
552
593
 
553
- // The group props (role="group", aria-labelledby, unicode-bidi:isolate,
554
- // arrow-key nav, focus-within handlers) carry the field's own `style` and
555
- // focus handlers. Merge — not clobber — so the group keeps its unicode-bidi
556
- // isolation and the local isFocused signal chains onto the field's
557
- // focusWithin handlers. Solid onFocus/onBlur do not bubble, so track focus
558
- // via onFocusIn/onFocusOut.
559
- const inputDivProps = createMemo(() =>
560
- mergeProps(aria.inputProps, {
561
- onFocusIn: () => setIsFocused(true),
562
- onFocusOut: () => setIsFocused(false),
594
+ const inputDivProps = createMemo(() => {
595
+ const ring = focusProps as {
596
+ onFocusIn?: (event: FocusEvent) => void;
597
+ onFocusOut?: (event: FocusEvent) => void;
598
+ };
599
+ return mergeProps(aria.inputProps, hoverProps, {
600
+ onFocusIn: ring.onFocusIn,
601
+ onFocusOut: ring.onFocusOut,
563
602
  style: renderProps.style(),
564
- }),
565
- );
603
+ });
604
+ });
605
+
606
+ createTrackedEffect(() => {
607
+ const _s2Cleanups: Array<() => void> = [];
566
608
 
567
- createEffect(() => {
568
609
  const element = inputRef();
569
610
  const handler = props.onPointerDownCapture;
570
611
  if (!element || !handler) return;
571
612
 
572
- const listener = (event: PointerEvent) =>
573
- (handler as unknown as (event: PointerEvent) => void)(event);
613
+ const listener = (event: PointerEvent) => callEventHandler(handler, event);
574
614
  element.addEventListener("pointerdown", listener, { capture: true });
575
- onCleanup(() => element.removeEventListener("pointerdown", listener, { capture: true }));
615
+ _s2Cleanups.push(() => element.removeEventListener("pointerdown", listener, { capture: true }));
616
+
617
+ return () => {
618
+ for (const c of _s2Cleanups) c();
619
+ };
576
620
  });
577
621
 
578
622
  return (
579
- <DateFieldContext.Provider value={context as DateFieldContextValue}>
623
+ <DateFieldContext value={context as DateFieldContextValue}>
580
624
  <div
581
625
  ref={setInputRef}
582
626
  {...inputDivProps()}
583
627
  class={renderProps.class()}
584
628
  data-disabled={dataAttr(state.isDisabled())}
585
- data-focused={dataAttr(isFocused())}
629
+ data-invalid={dataAttr(state.isInvalid())}
630
+ data-readonly={dataAttr(state.isReadOnly())}
631
+ data-hovered={dataAttr(isHovered())}
632
+ data-focus-within={dataAttr(isFocused())}
633
+ data-focus-visible={dataAttr(isFocusVisible())}
586
634
  >
587
635
  {/*
588
- <Index> keys by position, not identity, so each DateSegment instance
589
- stays alive across keystrokes (state.segments() re-mints segment
590
- objects every edit). A stable Proxy forwards property reads to the
591
- live per-index accessor so the child stays reactive.
636
+ <For keyed={false}> keys by position, not identity, so each DateSegment
637
+ instance stays alive across keystrokes (state.segments() re-mints
638
+ segment objects every edit). A stable Proxy forwards property reads to
639
+ the live per-index accessor so the child stays reactive.
592
640
  */}
593
- <Index each={state.segments()}>
641
+ <For each={state.segments()} keyed={false}>
594
642
  {(segment) => {
595
643
  const liveSegment = new Proxy({} as DateSegmentType, {
596
644
  get: (_t, key) => (segment() as unknown as Record<PropertyKey, unknown>)[key],
@@ -598,7 +646,7 @@ export function DateInput(props: DateInputProps): JSX.Element {
598
646
  });
599
647
  return props.children?.(liveSegment);
600
648
  }}
601
- </Index>
649
+ </For>
602
650
  </div>
603
651
  {/*
604
652
  The hidden validation input, sibling of the group — mirrors RAC's
@@ -614,7 +662,7 @@ export function DateInput(props: DateInputProps): JSX.Element {
614
662
  <input {...(hiddenInputProps() as JSX.InputHTMLAttributes<HTMLInputElement>)} />
615
663
  )}
616
664
  </Show>
617
- </DateFieldContext.Provider>
665
+ </DateFieldContext>
618
666
  );
619
667
  }
620
668
 
@@ -668,12 +716,7 @@ export function DateSegment(props: DateSegmentProps): JSX.Element {
668
716
  );
669
717
 
670
718
  // Determine children content - avoid Show for SSR hydration compatibility
671
- const getChildren = () => {
672
- if (typeof props.children === "function") {
673
- return renderProps.renderChildren();
674
- }
675
- return props.segment.text;
676
- };
719
+ const getChildren = () => renderProps.renderChildren() ?? props.segment.text;
677
720
 
678
721
  // Mirror upstream's `mergeProps(filterDOMProps(otherProps), segmentProps,
679
722
  // focusProps, hoverProps)`: the segment's behavior/style props (caretColor +
@@ -695,14 +738,14 @@ export function DateSegment(props: DateSegmentProps): JSX.Element {
695
738
  ref={setSegmentRef}
696
739
  {...segmentElementProps()}
697
740
  class={renderProps.class()}
698
- data-placeholder={props.segment.isPlaceholder || undefined}
699
- data-invalid={state.isInvalid() || undefined}
700
- data-readonly={state.isReadOnly() || undefined}
701
- data-disabled={state.isDisabled() || undefined}
741
+ data-placeholder={dataAttr(props.segment.isPlaceholder)}
742
+ data-invalid={dataAttr(state.isInvalid())}
743
+ data-readonly={dataAttr(state.isReadOnly())}
744
+ data-disabled={dataAttr(state.isDisabled())}
702
745
  data-type={props.segment.type}
703
- data-hovered={isHovered() || undefined}
704
- data-focused={isFocused() || undefined}
705
- data-focus-visible={isFocusVisible() || undefined}
746
+ data-hovered={dataAttr(isHovered())}
747
+ data-focused={dataAttr(isFocused())}
748
+ data-focus-visible={dataAttr(isFocusVisible())}
706
749
  >
707
750
  {getChildren()}
708
751
  </span>