@proyecto-viviana/solidaria-components 0.5.0 → 0.7.0-rc.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 (561) hide show
  1. package/LICENSE-APACHE-2.0 +201 -0
  2. package/NOTICE +91 -0
  3. package/README.md +4 -7
  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 +25 -17
  19. package/dist/Alert.js.map +1 -1
  20. package/dist/Alert.jsx +9 -5
  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 +18 -5
  25. package/dist/Autocomplete.js.map +1 -1
  26. package/dist/Autocomplete.jsx +20 -7
  27. package/dist/Autocomplete.jsx.map +1 -1
  28. package/dist/Breadcrumbs.d.ts +2 -7
  29. package/dist/Breadcrumbs.d.ts.map +1 -1
  30. package/dist/Breadcrumbs.js +71 -51
  31. package/dist/Breadcrumbs.js.map +1 -1
  32. package/dist/Breadcrumbs.jsx +25 -12
  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 +125 -72
  37. package/dist/Button.js.map +1 -1
  38. package/dist/Button.jsx +105 -43
  39. package/dist/Button.jsx.map +1 -1
  40. package/dist/Calendar.d.ts +1 -7
  41. package/dist/Calendar.d.ts.map +1 -1
  42. package/dist/Calendar.js +297 -221
  43. package/dist/Calendar.js.map +1 -1
  44. package/dist/Calendar.jsx +52 -32
  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 +2 -7
  53. package/dist/Checkbox.d.ts.map +1 -1
  54. package/dist/Checkbox.js +332 -270
  55. package/dist/Checkbox.js.map +1 -1
  56. package/dist/Checkbox.jsx +70 -77
  57. package/dist/Checkbox.jsx.map +1 -1
  58. package/dist/Collection.d.ts +33 -7
  59. package/dist/Collection.d.ts.map +1 -1
  60. package/dist/Collection.js +128 -74
  61. package/dist/Collection.js.map +1 -1
  62. package/dist/Collection.jsx +46 -7
  63. package/dist/Collection.jsx.map +1 -1
  64. package/dist/Color.d.ts +15 -20
  65. package/dist/Color.d.ts.map +1 -1
  66. package/dist/Color.js +572 -334
  67. package/dist/Color.js.map +1 -1
  68. package/dist/Color.jsx +205 -85
  69. package/dist/Color.jsx.map +1 -1
  70. package/dist/ColorEditor.d.ts +3 -1
  71. package/dist/ColorEditor.d.ts.map +1 -1
  72. package/dist/ColorEditor.js +147 -124
  73. package/dist/ColorEditor.js.map +1 -1
  74. package/dist/ColorEditor.jsx +4 -1
  75. package/dist/ColorEditor.jsx.map +1 -1
  76. package/dist/ComboBox.d.ts +31 -10
  77. package/dist/ComboBox.d.ts.map +1 -1
  78. package/dist/ComboBox.js +539 -274
  79. package/dist/ComboBox.js.map +1 -1
  80. package/dist/ComboBox.jsx +213 -70
  81. package/dist/ComboBox.jsx.map +1 -1
  82. package/dist/ContextualHelpTrigger.d.ts +1 -7
  83. package/dist/ContextualHelpTrigger.d.ts.map +1 -1
  84. package/dist/ContextualHelpTrigger.js +102 -72
  85. package/dist/ContextualHelpTrigger.js.map +1 -1
  86. package/dist/ContextualHelpTrigger.jsx +36 -16
  87. package/dist/ContextualHelpTrigger.jsx.map +1 -1
  88. package/dist/DateField.d.ts +2 -7
  89. package/dist/DateField.d.ts.map +1 -1
  90. package/dist/DateField.js +0 -2
  91. package/dist/DateField.jsx +0 -2
  92. package/dist/DateField2.js +194 -179
  93. package/dist/DateField2.js.map +1 -1
  94. package/dist/DateField2.jsx +58 -55
  95. package/dist/DateField2.jsx.map +1 -1
  96. package/dist/DatePicker.d.ts +7 -7
  97. package/dist/DatePicker.d.ts.map +1 -1
  98. package/dist/DatePicker.js +2 -2
  99. package/dist/DatePicker.jsx +2 -2
  100. package/dist/DatePicker2.js +357 -435
  101. package/dist/DatePicker2.js.map +1 -1
  102. package/dist/DatePicker2.jsx +109 -178
  103. package/dist/DatePicker2.jsx.map +1 -1
  104. package/dist/DateRangePickerContext.d.ts +7 -0
  105. package/dist/DateRangePickerContext.d.ts.map +1 -1
  106. package/dist/Dialog.d.ts +4 -9
  107. package/dist/Dialog.d.ts.map +1 -1
  108. package/dist/Dialog.js +168 -101
  109. package/dist/Dialog.js.map +1 -1
  110. package/dist/Dialog.jsx +75 -27
  111. package/dist/Dialog.jsx.map +1 -1
  112. package/dist/Disclosure.d.ts +1 -9
  113. package/dist/Disclosure.d.ts.map +1 -1
  114. package/dist/Disclosure.js +121 -79
  115. package/dist/Disclosure.js.map +1 -1
  116. package/dist/Disclosure.jsx +32 -19
  117. package/dist/Disclosure.jsx.map +1 -1
  118. package/dist/DragAndDrop.d.ts +9 -6
  119. package/dist/DragAndDrop.d.ts.map +1 -1
  120. package/dist/DragAndDrop.js +37 -22
  121. package/dist/DragAndDrop.js.map +1 -1
  122. package/dist/DragAndDrop.jsx +20 -4
  123. package/dist/DragAndDrop.jsx.map +1 -1
  124. package/dist/DragPreview.d.ts +1 -1
  125. package/dist/DragPreview.d.ts.map +1 -1
  126. package/dist/DropZone.d.ts +1 -7
  127. package/dist/DropZone.d.ts.map +1 -1
  128. package/dist/DropZone.js +74 -40
  129. package/dist/DropZone.js.map +1 -1
  130. package/dist/DropZone.jsx +24 -8
  131. package/dist/DropZone.jsx.map +1 -1
  132. package/dist/ElementTag.d.ts +9 -20
  133. package/dist/ElementTag.d.ts.map +1 -1
  134. package/dist/ElementTag.js +8 -210
  135. package/dist/ElementTag.js.map +1 -1
  136. package/dist/ElementTag.jsx +8 -57
  137. package/dist/ElementTag.jsx.map +1 -1
  138. package/dist/FieldError.d.ts +8 -7
  139. package/dist/FieldError.d.ts.map +1 -1
  140. package/dist/FieldError.js +33 -13
  141. package/dist/FieldError.js.map +1 -1
  142. package/dist/FieldError.jsx +20 -5
  143. package/dist/FieldError.jsx.map +1 -1
  144. package/dist/FileTrigger.d.ts +1 -7
  145. package/dist/FileTrigger.d.ts.map +1 -1
  146. package/dist/FileTrigger.js +30 -12
  147. package/dist/FileTrigger.js.map +1 -1
  148. package/dist/FileTrigger.jsx +15 -2
  149. package/dist/FileTrigger.jsx.map +1 -1
  150. package/dist/Focusable.d.ts +2 -8
  151. package/dist/Focusable.d.ts.map +1 -1
  152. package/dist/Focusable.js +23 -6
  153. package/dist/Focusable.js.map +1 -1
  154. package/dist/Focusable.jsx +22 -5
  155. package/dist/Focusable.jsx.map +1 -1
  156. package/dist/Form.d.ts +9 -8
  157. package/dist/Form.d.ts.map +1 -1
  158. package/dist/Form.js +66 -43
  159. package/dist/Form.js.map +1 -1
  160. package/dist/Form.jsx +36 -16
  161. package/dist/Form.jsx.map +1 -1
  162. package/dist/GridList.d.ts +5 -10
  163. package/dist/GridList.d.ts.map +1 -1
  164. package/dist/GridList.js +372 -243
  165. package/dist/GridList.js.map +1 -1
  166. package/dist/GridList.jsx +177 -99
  167. package/dist/GridList.jsx.map +1 -1
  168. package/dist/HiddenDateInput.d.ts +1 -7
  169. package/dist/HiddenDateInput.d.ts.map +1 -1
  170. package/dist/Icon.d.ts +4 -1
  171. package/dist/Icon.d.ts.map +1 -1
  172. package/dist/Icon.js +41 -37
  173. package/dist/Icon.js.map +1 -1
  174. package/dist/Icon.jsx +7 -3
  175. package/dist/Icon.jsx.map +1 -1
  176. package/dist/Keyboard.d.ts +1 -7
  177. package/dist/Keyboard.d.ts.map +1 -1
  178. package/dist/Keyboard.js +24 -11
  179. package/dist/Keyboard.js.map +1 -1
  180. package/dist/Keyboard.jsx +15 -2
  181. package/dist/Keyboard.jsx.map +1 -1
  182. package/dist/Label.d.ts +20 -0
  183. package/dist/Label.d.ts.map +1 -0
  184. package/dist/Label.js +60 -0
  185. package/dist/Label.js.map +1 -0
  186. package/dist/Label.jsx +47 -0
  187. package/dist/Label.jsx.map +1 -0
  188. package/dist/Landmark.d.ts +4 -1
  189. package/dist/Landmark.d.ts.map +1 -1
  190. package/dist/Landmark.js +10 -4
  191. package/dist/Landmark.js.map +1 -1
  192. package/dist/Landmark.jsx +5 -1
  193. package/dist/Landmark.jsx.map +1 -1
  194. package/dist/Link.d.ts +2 -7
  195. package/dist/Link.d.ts.map +1 -1
  196. package/dist/Link.js +56 -36
  197. package/dist/Link.js.map +1 -1
  198. package/dist/Link.jsx +52 -10
  199. package/dist/Link.jsx.map +1 -1
  200. package/dist/ListBox.d.ts +17 -13
  201. package/dist/ListBox.d.ts.map +1 -1
  202. package/dist/ListBox.js +647 -348
  203. package/dist/ListBox.js.map +1 -1
  204. package/dist/ListBox.jsx +339 -236
  205. package/dist/ListBox.jsx.map +1 -1
  206. package/dist/ListDropTargetDelegate.d.ts +3 -0
  207. package/dist/ListDropTargetDelegate.d.ts.map +1 -1
  208. package/dist/Menu.d.ts +39 -30
  209. package/dist/Menu.d.ts.map +1 -1
  210. package/dist/Menu.js +547 -368
  211. package/dist/Menu.js.map +1 -1
  212. package/dist/Menu.jsx +328 -230
  213. package/dist/Menu.jsx.map +1 -1
  214. package/dist/Meter.d.ts +6 -13
  215. package/dist/Meter.d.ts.map +1 -1
  216. package/dist/Meter.js +55 -18
  217. package/dist/Meter.js.map +1 -1
  218. package/dist/Meter.jsx +33 -8
  219. package/dist/Meter.jsx.map +1 -1
  220. package/dist/Modal.d.ts +1 -7
  221. package/dist/Modal.d.ts.map +1 -1
  222. package/dist/Modal.js +104 -56
  223. package/dist/Modal.js.map +1 -1
  224. package/dist/Modal.jsx +68 -38
  225. package/dist/Modal.jsx.map +1 -1
  226. package/dist/NumberField.d.ts +4 -7
  227. package/dist/NumberField.d.ts.map +1 -1
  228. package/dist/NumberField.js +243 -124
  229. package/dist/NumberField.js.map +1 -1
  230. package/dist/NumberField.jsx +115 -26
  231. package/dist/NumberField.jsx.map +1 -1
  232. package/dist/Popover.d.ts +15 -7
  233. package/dist/Popover.d.ts.map +1 -1
  234. package/dist/Popover.js +370 -181
  235. package/dist/Popover.js.map +1 -1
  236. package/dist/Popover.jsx +215 -82
  237. package/dist/Popover.jsx.map +1 -1
  238. package/dist/Pressable.d.ts +2 -8
  239. package/dist/Pressable.d.ts.map +1 -1
  240. package/dist/Pressable.js +23 -6
  241. package/dist/Pressable.js.map +1 -1
  242. package/dist/Pressable.jsx +22 -5
  243. package/dist/Pressable.jsx.map +1 -1
  244. package/dist/PreviewTrigger.d.ts +24 -0
  245. package/dist/PreviewTrigger.d.ts.map +1 -0
  246. package/dist/PreviewTrigger.js +128 -0
  247. package/dist/PreviewTrigger.js.map +1 -0
  248. package/dist/PreviewTrigger.jsx +117 -0
  249. package/dist/PreviewTrigger.jsx.map +1 -0
  250. package/dist/ProgressBar.d.ts +1 -7
  251. package/dist/ProgressBar.d.ts.map +1 -1
  252. package/dist/ProgressBar.js +34 -14
  253. package/dist/ProgressBar.js.map +1 -1
  254. package/dist/ProgressBar.jsx +17 -3
  255. package/dist/ProgressBar.jsx.map +1 -1
  256. package/dist/RadioGroup.d.ts +2 -7
  257. package/dist/RadioGroup.d.ts.map +1 -1
  258. package/dist/RadioGroup.js +388 -269
  259. package/dist/RadioGroup.js.map +1 -1
  260. package/dist/RadioGroup.jsx +110 -99
  261. package/dist/RadioGroup.jsx.map +1 -1
  262. package/dist/RangeCalendar.d.ts +3 -7
  263. package/dist/RangeCalendar.d.ts.map +1 -1
  264. package/dist/RangeCalendar.js +271 -202
  265. package/dist/RangeCalendar.js.map +1 -1
  266. package/dist/RangeCalendar.jsx +56 -37
  267. package/dist/RangeCalendar.jsx.map +1 -1
  268. package/dist/RouterProvider.d.ts +3 -9
  269. package/dist/RouterProvider.d.ts.map +1 -1
  270. package/dist/RouterProvider.js +15 -14
  271. package/dist/RouterProvider.js.map +1 -1
  272. package/dist/RouterProvider.jsx +14 -13
  273. package/dist/RouterProvider.jsx.map +1 -1
  274. package/dist/SearchField.d.ts +4 -7
  275. package/dist/SearchField.d.ts.map +1 -1
  276. package/dist/SearchField.js +191 -164
  277. package/dist/SearchField.js.map +1 -1
  278. package/dist/SearchField.jsx +69 -62
  279. package/dist/SearchField.jsx.map +1 -1
  280. package/dist/Select.d.ts +5 -10
  281. package/dist/Select.d.ts.map +1 -1
  282. package/dist/Select.js +565 -359
  283. package/dist/Select.js.map +1 -1
  284. package/dist/Select.jsx +281 -161
  285. package/dist/Select.jsx.map +1 -1
  286. package/dist/SelectionIndicator.d.ts +1 -4
  287. package/dist/SelectionIndicator.d.ts.map +1 -1
  288. package/dist/SelectionIndicator.js +29 -13
  289. package/dist/SelectionIndicator.js.map +1 -1
  290. package/dist/SelectionIndicator.jsx +18 -4
  291. package/dist/SelectionIndicator.jsx.map +1 -1
  292. package/dist/Separator.d.ts +1 -7
  293. package/dist/Separator.d.ts.map +1 -1
  294. package/dist/Separator.js +22 -6
  295. package/dist/Separator.js.map +1 -1
  296. package/dist/Separator.jsx +16 -3
  297. package/dist/Separator.jsx.map +1 -1
  298. package/dist/SharedElementTransition.d.ts +1 -10
  299. package/dist/SharedElementTransition.d.ts.map +1 -1
  300. package/dist/SharedElementTransition.js +68 -40
  301. package/dist/SharedElementTransition.js.map +1 -1
  302. package/dist/SharedElementTransition.jsx +49 -25
  303. package/dist/SharedElementTransition.jsx.map +1 -1
  304. package/dist/Slider.d.ts +2 -8
  305. package/dist/Slider.d.ts.map +1 -1
  306. package/dist/Slider.js +155 -97
  307. package/dist/Slider.js.map +1 -1
  308. package/dist/Slider.jsx +25 -12
  309. package/dist/Slider.jsx.map +1 -1
  310. package/dist/StepList.d.ts +1 -7
  311. package/dist/StepList.d.ts.map +1 -1
  312. package/dist/StepList.js +112 -68
  313. package/dist/StepList.js.map +1 -1
  314. package/dist/StepList.jsx +58 -20
  315. package/dist/StepList.jsx.map +1 -1
  316. package/dist/Switch.d.ts +2 -9
  317. package/dist/Switch.d.ts.map +1 -1
  318. package/dist/Switch.js +164 -114
  319. package/dist/Switch.js.map +1 -1
  320. package/dist/Switch.jsx +26 -13
  321. package/dist/Switch.jsx.map +1 -1
  322. package/dist/Table.d.ts +2 -1
  323. package/dist/Table.d.ts.map +1 -1
  324. package/dist/Table.js +689 -592
  325. package/dist/Table.js.map +1 -1
  326. package/dist/Table.jsx +317 -237
  327. package/dist/Table.jsx.map +1 -1
  328. package/dist/Tabs.d.ts +2 -7
  329. package/dist/Tabs.d.ts.map +1 -1
  330. package/dist/Tabs.js +278 -293
  331. package/dist/Tabs.js.map +1 -1
  332. package/dist/Tabs.jsx +68 -66
  333. package/dist/Tabs.jsx.map +1 -1
  334. package/dist/TagGroup.d.ts +4 -11
  335. package/dist/TagGroup.d.ts.map +1 -1
  336. package/dist/TagGroup.js +153 -115
  337. package/dist/TagGroup.js.map +1 -1
  338. package/dist/TagGroup.jsx +37 -24
  339. package/dist/TagGroup.jsx.map +1 -1
  340. package/dist/Text.d.ts +3 -3
  341. package/dist/Text.d.ts.map +1 -1
  342. package/dist/Text.js +24 -7
  343. package/dist/Text.js.map +1 -1
  344. package/dist/Text.jsx +17 -5
  345. package/dist/Text.jsx.map +1 -1
  346. package/dist/TextField.d.ts +3 -16
  347. package/dist/TextField.d.ts.map +1 -1
  348. package/dist/TextField.js +104 -129
  349. package/dist/TextField.js.map +1 -1
  350. package/dist/TextField.jsx +76 -102
  351. package/dist/TextField.jsx.map +1 -1
  352. package/dist/TimeField.d.ts +2 -15
  353. package/dist/TimeField.d.ts.map +1 -1
  354. package/dist/TimeField.js +86 -102
  355. package/dist/TimeField.js.map +1 -1
  356. package/dist/TimeField.jsx +32 -49
  357. package/dist/TimeField.jsx.map +1 -1
  358. package/dist/Toast.d.ts +10 -13
  359. package/dist/Toast.d.ts.map +1 -1
  360. package/dist/Toast.js +209 -108
  361. package/dist/Toast.js.map +1 -1
  362. package/dist/Toast.jsx +127 -22
  363. package/dist/Toast.jsx.map +1 -1
  364. package/dist/ToggleButton.d.ts +1 -7
  365. package/dist/ToggleButton.d.ts.map +1 -1
  366. package/dist/ToggleButton.js +57 -35
  367. package/dist/ToggleButton.js.map +1 -1
  368. package/dist/ToggleButton.jsx +26 -12
  369. package/dist/ToggleButton.jsx.map +1 -1
  370. package/dist/ToggleButtonGroup.d.ts +1 -7
  371. package/dist/ToggleButtonGroup.d.ts.map +1 -1
  372. package/dist/ToggleButtonGroup.js +59 -44
  373. package/dist/ToggleButtonGroup.js.map +1 -1
  374. package/dist/ToggleButtonGroup.jsx +25 -12
  375. package/dist/ToggleButtonGroup.jsx.map +1 -1
  376. package/dist/TokenField.d.ts +52 -0
  377. package/dist/TokenField.d.ts.map +1 -0
  378. package/dist/TokenField.js +301 -0
  379. package/dist/TokenField.js.map +1 -0
  380. package/dist/TokenField.jsx +197 -0
  381. package/dist/TokenField.jsx.map +1 -0
  382. package/dist/Toolbar.d.ts +2 -7
  383. package/dist/Toolbar.d.ts.map +1 -1
  384. package/dist/Toolbar.js +35 -16
  385. package/dist/Toolbar.js.map +1 -1
  386. package/dist/Toolbar.jsx +15 -2
  387. package/dist/Toolbar.jsx.map +1 -1
  388. package/dist/Tooltip.d.ts +2 -7
  389. package/dist/Tooltip.d.ts.map +1 -1
  390. package/dist/Tooltip.js +105 -68
  391. package/dist/Tooltip.js.map +1 -1
  392. package/dist/Tooltip.jsx +60 -36
  393. package/dist/Tooltip.jsx.map +1 -1
  394. package/dist/Tree.d.ts +8 -11
  395. package/dist/Tree.d.ts.map +1 -1
  396. package/dist/Tree.js +486 -339
  397. package/dist/Tree.js.map +1 -1
  398. package/dist/Tree.jsx +155 -107
  399. package/dist/Tree.jsx.map +1 -1
  400. package/dist/Virtualizer.d.ts +39 -9
  401. package/dist/Virtualizer.d.ts.map +1 -1
  402. package/dist/Virtualizer.js +2 -2
  403. package/dist/Virtualizer.jsx +2 -2
  404. package/dist/Virtualizer2.js +491 -136
  405. package/dist/Virtualizer2.js.map +1 -1
  406. package/dist/Virtualizer2.jsx +455 -122
  407. package/dist/Virtualizer2.jsx.map +1 -1
  408. package/dist/VirtualizerLayouts.d.ts +55 -2
  409. package/dist/VirtualizerLayouts.d.ts.map +1 -1
  410. package/dist/VisuallyHidden.d.ts +4 -3
  411. package/dist/VisuallyHidden.d.ts.map +1 -1
  412. package/dist/VisuallyHidden.js +18 -11
  413. package/dist/VisuallyHidden.js.map +1 -1
  414. package/dist/VisuallyHidden.jsx +15 -9
  415. package/dist/VisuallyHidden.jsx.map +1 -1
  416. package/dist/contexts.d.ts +25 -0
  417. package/dist/contexts.d.ts.map +1 -1
  418. package/dist/contexts.js +3 -0
  419. package/dist/contexts.js.map +1 -1
  420. package/dist/contexts.jsx +3 -0
  421. package/dist/contexts.jsx.map +1 -1
  422. package/dist/index.d.ts +11 -9
  423. package/dist/index.d.ts.map +1 -1
  424. package/dist/index.js +14 -11
  425. package/dist/index.jsx +14 -11
  426. package/dist/intl/index.d.ts +16 -0
  427. package/dist/intl/index.d.ts.map +1 -0
  428. package/dist/intl.js +212 -0
  429. package/dist/intl.js.map +1 -0
  430. package/dist/intl.jsx +212 -0
  431. package/dist/intl.jsx.map +1 -0
  432. package/dist/useDragAndDrop.d.ts +4 -2
  433. package/dist/useDragAndDrop.d.ts.map +1 -1
  434. package/dist/useDragAndDrop2.js +39 -21
  435. package/dist/useDragAndDrop2.js.map +1 -1
  436. package/dist/useDragAndDrop2.jsx +39 -21
  437. package/dist/useDragAndDrop2.jsx.map +1 -1
  438. package/dist/utils.d.ts +28 -9
  439. package/dist/utils.d.ts.map +1 -1
  440. package/dist/utils.js +96 -24
  441. package/dist/utils.js.map +1 -1
  442. package/dist/utils.jsx +81 -24
  443. package/dist/utils.jsx.map +1 -1
  444. package/dist/virtualizer/Layout.d.ts +9 -0
  445. package/dist/virtualizer/Layout.d.ts.map +1 -1
  446. package/dist/virtualizer/Layout.js +23 -2
  447. package/dist/virtualizer/Layout.js.map +1 -1
  448. package/dist/virtualizer/Layout.jsx +23 -2
  449. package/dist/virtualizer/Layout.jsx.map +1 -1
  450. package/package.json +29 -10
  451. package/src/ActionBar.tsx +50 -24
  452. package/src/ActionGroup.tsx +31 -19
  453. package/src/Alert.tsx +10 -4
  454. package/src/Autocomplete.tsx +24 -15
  455. package/src/Breadcrumbs.tsx +32 -16
  456. package/src/Button.tsx +182 -67
  457. package/src/Calendar.tsx +65 -47
  458. package/src/CalendarPicker.tsx +16 -1
  459. package/src/Checkbox.tsx +84 -116
  460. package/src/Collection.tsx +84 -3
  461. package/src/Color.tsx +282 -104
  462. package/src/ColorEditor.tsx +5 -1
  463. package/src/ComboBox.tsx +384 -109
  464. package/src/ContextualHelpTrigger.tsx +47 -41
  465. package/src/DateField.tsx +74 -106
  466. package/src/DatePicker.tsx +156 -352
  467. package/src/DateRangePickerContext.tsx +8 -0
  468. package/src/Dialog.tsx +105 -38
  469. package/src/Disclosure.tsx +29 -19
  470. package/src/DragAndDrop.tsx +43 -8
  471. package/src/DragPreview.tsx +20 -1
  472. package/src/DropZone.tsx +32 -18
  473. package/src/ElementTag.tsx +14 -104
  474. package/src/FieldError.tsx +39 -7
  475. package/src/FileTrigger.tsx +18 -3
  476. package/src/Focusable.tsx +27 -6
  477. package/src/Form.tsx +57 -11
  478. package/src/GridList.tsx +233 -141
  479. package/src/HiddenDateInput.tsx +19 -3
  480. package/src/Icon.tsx +8 -2
  481. package/src/Keyboard.tsx +18 -2
  482. package/src/Label.tsx +77 -0
  483. package/src/Landmark.tsx +6 -1
  484. package/src/Link.tsx +65 -19
  485. package/src/ListBox.tsx +645 -468
  486. package/src/ListDropTargetDelegate.ts +4 -0
  487. package/src/Menu.tsx +512 -349
  488. package/src/Meter.tsx +42 -8
  489. package/src/Modal.tsx +85 -42
  490. package/src/NumberField.tsx +161 -48
  491. package/src/Popover.tsx +424 -148
  492. package/src/Pressable.tsx +27 -6
  493. package/src/PreviewTrigger.tsx +171 -0
  494. package/src/ProgressBar.tsx +25 -3
  495. package/src/RadioGroup.tsx +230 -161
  496. package/src/RangeCalendar.tsx +75 -63
  497. package/src/RouterProvider.tsx +24 -14
  498. package/src/SearchField.tsx +118 -121
  499. package/src/Select.tsx +454 -274
  500. package/src/SelectionIndicator.tsx +21 -3
  501. package/src/Separator.tsx +17 -1
  502. package/src/SharedElementTransition.tsx +115 -97
  503. package/src/Slider.tsx +35 -17
  504. package/src/StepList.tsx +71 -32
  505. package/src/Switch.tsx +45 -29
  506. package/src/Table.tsx +446 -380
  507. package/src/Tabs.tsx +132 -155
  508. package/src/TagGroup.tsx +53 -40
  509. package/src/Text.tsx +23 -6
  510. package/src/TextField.tsx +118 -159
  511. package/src/TimeField.tsx +34 -95
  512. package/src/Toast.tsx +141 -67
  513. package/src/ToggleButton.tsx +33 -15
  514. package/src/ToggleButtonGroup.tsx +27 -9
  515. package/src/TokenField.tsx +379 -0
  516. package/src/Toolbar.tsx +19 -9
  517. package/src/Tooltip.tsx +126 -84
  518. package/src/Tree.tsx +233 -173
  519. package/src/Virtualizer.tsx +400 -138
  520. package/src/VirtualizerLayouts.ts +211 -26
  521. package/src/VisuallyHidden.tsx +22 -8
  522. package/src/contexts.ts +13 -0
  523. package/src/index.ts +32 -11
  524. package/src/intl/ar-AE.json +6 -0
  525. package/src/intl/bg-BG.json +6 -0
  526. package/src/intl/cs-CZ.json +6 -0
  527. package/src/intl/da-DK.json +6 -0
  528. package/src/intl/de-DE.json +6 -0
  529. package/src/intl/el-GR.json +6 -0
  530. package/src/intl/en-US.json +6 -0
  531. package/src/intl/es-ES.json +6 -0
  532. package/src/intl/et-EE.json +6 -0
  533. package/src/intl/fi-FI.json +6 -0
  534. package/src/intl/fr-FR.json +6 -0
  535. package/src/intl/he-IL.json +6 -0
  536. package/src/intl/hr-HR.json +6 -0
  537. package/src/intl/hu-HU.json +6 -0
  538. package/src/intl/index.ts +125 -0
  539. package/src/intl/it-IT.json +6 -0
  540. package/src/intl/ja-JP.json +6 -0
  541. package/src/intl/ko-KR.json +6 -0
  542. package/src/intl/lt-LT.json +6 -0
  543. package/src/intl/lv-LV.json +6 -0
  544. package/src/intl/nb-NO.json +6 -0
  545. package/src/intl/nl-NL.json +6 -0
  546. package/src/intl/pl-PL.json +6 -0
  547. package/src/intl/pt-BR.json +6 -0
  548. package/src/intl/pt-PT.json +6 -0
  549. package/src/intl/ro-RO.json +6 -0
  550. package/src/intl/ru-RU.json +6 -0
  551. package/src/intl/sk-SK.json +6 -0
  552. package/src/intl/sl-SI.json +6 -0
  553. package/src/intl/sr-SP.json +6 -0
  554. package/src/intl/sv-SE.json +6 -0
  555. package/src/intl/tr-TR.json +6 -0
  556. package/src/intl/uk-UA.json +6 -0
  557. package/src/intl/zh-CN.json +6 -0
  558. package/src/intl/zh-TW.json +6 -0
  559. package/src/useDragAndDrop.ts +30 -32
  560. package/src/utils.tsx +124 -68
  561. package/src/virtualizer/Layout.ts +29 -0
package/dist/TextField.js CHANGED
@@ -1,11 +1,25 @@
1
- import { Provider, filterDOMProps, useRenderProps } from "./utils.js";
2
- import { FieldErrorContext } from "./FieldError.js";
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
+ // Ported to SolidJS for Proyecto Viviana; based on packages/react-aria-components/src/TextField.tsx
13
+ import { Provider, dataAttr, filterDOMProps, useRenderProps, useSlot } from "./utils.js";
3
14
  import { TextContext } from "./Text.js";
4
- import { FormContext } from "./Form.js";
5
- import { createComponent, getNextElement, insert, memo, mergeProps, runHydrationEvents, spread, template, use } from "solid-js/web";
6
- import { createContext, createEffect, createMemo, createSignal, onCleanup, onMount, splitProps, untrack, useContext } from "solid-js";
7
- import { createFocusRing, createHover, createTextField, mergeProps as mergeProps$2 } from "@proyecto-viviana/solidaria";
8
- import { VALID_VALIDITY_STATE, createTextFieldState } from "@proyecto-viviana/solid-stately";
15
+ import { FieldErrorContext } from "./FieldError.js";
16
+ import { FormContext, resolveValidationBehavior } from "./Form.js";
17
+ import { n as LabelContext, t as Label } from "./Label.js";
18
+ import { createComponent, getNextElement, insert, memo, ref, runHydrationEvents, spread, template } from "@solidjs/web";
19
+ import { createContext, createEffect, createMemo, createSignal, onCleanup, onSettled, untrack, useContext } from "solid-js";
20
+ import { createFocusRing, createHover, createTextField, mergeProps as mergeProps$1 } from "@proyecto-viviana/solidaria";
21
+ import { assignRef, attrString, splitProps } from "@proyecto-viviana/solidaria/utils";
22
+ import { createTextFieldState } from "@proyecto-viviana/solid-stately";
9
23
  //#region src/TextField.tsx
10
24
  /**
11
25
  * TextField component for solidaria-components
@@ -13,76 +27,13 @@ import { VALID_VALIDITY_STATE, createTextFieldState } from "@proyecto-viviana/so
13
27
  * A pre-wired headless text field that combines state + aria hooks.
14
28
  * Port of react-aria-components/src/TextField.tsx
15
29
  */
16
- var _tmpl$ = /*#__PURE__*/ template(`<label>`), _tmpl$2 = /*#__PURE__*/ template(`<input>`), _tmpl$3 = /*#__PURE__*/ template(`<textarea>`), _tmpl$4 = /*#__PURE__*/ template(`<div>`);
30
+ var _tmpl$ = /* @__PURE__ */ template(`<input>`);
31
+ var _tmpl$2 = /* @__PURE__ */ template(`<textarea>`);
32
+ var _tmpl$3 = /* @__PURE__ */ template(`<div>`);
17
33
  const TextFieldContext = createContext(null);
18
- const LabelContext = TextFieldContext;
19
34
  const InputContext = TextFieldContext;
20
35
  const TextAreaContext = TextFieldContext;
21
36
  const FieldInputContext = TextFieldContext;
22
- function withFormValidationBehavior(props, formContext) {
23
- if (!formContext?.validationBehavior) return props;
24
- return new Proxy(props, {
25
- get(target, property, receiver) {
26
- const localValue = Reflect.get(target, property, receiver);
27
- if (property === "validationBehavior" && localValue === void 0) return formContext.validationBehavior;
28
- return localValue;
29
- },
30
- has(target, property) {
31
- return Reflect.has(target, property) || property === "validationBehavior" && formContext.validationBehavior !== void 0;
32
- },
33
- ownKeys(target) {
34
- const keys = new Set(Reflect.ownKeys(target));
35
- if (formContext.validationBehavior !== void 0) keys.add("validationBehavior");
36
- return Array.from(keys);
37
- },
38
- getOwnPropertyDescriptor(target, property) {
39
- const descriptor = Reflect.getOwnPropertyDescriptor(target, property);
40
- if (descriptor) return descriptor;
41
- if (property === "validationBehavior" && formContext.validationBehavior !== void 0) return {
42
- enumerable: true,
43
- configurable: true,
44
- get: () => formContext.validationBehavior
45
- };
46
- }
47
- });
48
- }
49
- /**
50
- * A label element that automatically wires up to the parent TextField context.
51
- * This enables the proper htmlFor/id relationship between label and input.
52
- */
53
- function Label(props) {
54
- const context = useContext(TextFieldContext);
55
- const localDOMProps = () => {
56
- const result = {};
57
- const propsRecord = props;
58
- for (const key in propsRecord) if (key !== "children") result[key] = propsRecord[key];
59
- return result;
60
- };
61
- const mergedProps = () => {
62
- const localProps = localDOMProps();
63
- if (context) {
64
- const { ref: _ref, ...contextLabelProps } = context.labelProps ?? {};
65
- const merged = {
66
- ...contextLabelProps,
67
- ...context.inputId ? { for: context.inputId } : {},
68
- ...localProps
69
- };
70
- if (merged.class == null) merged.class = "solidaria-Label";
71
- return merged;
72
- }
73
- return localProps.class == null ? {
74
- ...localProps,
75
- class: "solidaria-Label"
76
- } : localProps;
77
- };
78
- return (() => {
79
- var _el$ = getNextElement(_tmpl$);
80
- spread(_el$, mergeProps(mergedProps), false, true);
81
- insert(_el$, () => props.children);
82
- runHydrationEvents();
83
- return _el$;
84
- })();
85
- }
86
37
  function eventWithCurrentTarget(event, element) {
87
38
  return new Proxy(event, { get(target, property, receiver) {
88
39
  if (property === "target" || property === "currentTarget") return element;
@@ -103,8 +54,9 @@ function clearDelegatedTextEntryHandlers(element) {
103
54
  function Input(props) {
104
55
  const context = useContext(TextFieldContext);
105
56
  let inputElement;
106
- createEffect(() => {
107
- context?.setInputId?.(props.id);
57
+ const contextInputRef = context?.inputProps?.ref;
58
+ createEffect(() => attrString(props.id), (id) => {
59
+ context?.setInputId?.(id);
108
60
  });
109
61
  onCleanup(() => {
110
62
  context?.setInputId?.(void 0);
@@ -124,7 +76,7 @@ function Input(props) {
124
76
  class: "solidaria-Input"
125
77
  } : props;
126
78
  };
127
- onMount(() => {
79
+ onSettled(() => {
128
80
  const element = inputElement;
129
81
  if (!element) return;
130
82
  const inputHandler = (event) => {
@@ -142,22 +94,22 @@ function Input(props) {
142
94
  element.addEventListener("input", inputHandler);
143
95
  element.addEventListener("change", changeHandler);
144
96
  clearDelegatedTextEntryHandlers(element);
145
- onCleanup(() => {
97
+ return () => {
146
98
  element.removeEventListener("input", inputHandler);
147
99
  element.removeEventListener("change", changeHandler);
148
- });
100
+ };
149
101
  });
150
- return (() => {
151
- var _el$2 = getNextElement(_tmpl$2);
152
- use((element) => {
102
+ var _el$ = getNextElement(_tmpl$);
103
+ ref(() => {
104
+ return (element) => {
153
105
  inputElement = element;
154
- const ref = props.ref;
155
- if (typeof ref === "function") ref(element);
156
- }, _el$2);
157
- spread(_el$2, mergeProps(mergedProps), false, false);
158
- runHydrationEvents();
159
- return _el$2;
160
- })();
106
+ assignRef(contextInputRef, element);
107
+ assignRef(props.ref, element);
108
+ };
109
+ }, _el$);
110
+ spread(_el$, mergedProps, false);
111
+ runHydrationEvents();
112
+ return _el$;
161
113
  }
162
114
  /**
163
115
  * A textarea element that automatically wires up to the parent TextField context.
@@ -167,8 +119,9 @@ function Input(props) {
167
119
  function TextArea(props) {
168
120
  const context = useContext(TextFieldContext);
169
121
  let textAreaElement;
170
- createEffect(() => {
171
- context?.setInputId?.(props.id);
122
+ const contextInputRef = context?.inputProps?.ref;
123
+ createEffect(() => attrString(props.id), (id) => {
124
+ context?.setInputId?.(id);
172
125
  });
173
126
  onCleanup(() => {
174
127
  context?.setInputId?.(void 0);
@@ -188,7 +141,7 @@ function TextArea(props) {
188
141
  class: "solidaria-TextArea"
189
142
  } : props;
190
143
  };
191
- onMount(() => {
144
+ onSettled(() => {
192
145
  const element = textAreaElement;
193
146
  if (!element) return;
194
147
  const inputHandler = (event) => {
@@ -206,22 +159,22 @@ function TextArea(props) {
206
159
  element.addEventListener("input", inputHandler);
207
160
  element.addEventListener("change", changeHandler);
208
161
  clearDelegatedTextEntryHandlers(element);
209
- onCleanup(() => {
162
+ return () => {
210
163
  element.removeEventListener("input", inputHandler);
211
164
  element.removeEventListener("change", changeHandler);
212
- });
165
+ };
213
166
  });
214
- return (() => {
215
- var _el$3 = getNextElement(_tmpl$3);
216
- use((element) => {
167
+ var _el$2 = getNextElement(_tmpl$2);
168
+ ref(() => {
169
+ return (element) => {
217
170
  textAreaElement = element;
218
- const ref = props.ref;
219
- if (typeof ref === "function") ref(element);
220
- }, _el$3);
221
- spread(_el$3, mergeProps(mergedProps), false, false);
222
- runHydrationEvents();
223
- return _el$3;
224
- })();
171
+ assignRef(contextInputRef, element);
172
+ assignRef(props.ref, element);
173
+ };
174
+ }, _el$2);
175
+ spread(_el$2, mergedProps, false);
176
+ runHydrationEvents();
177
+ return _el$2;
225
178
  }
226
179
  /**
227
180
  * A text field allows a user to enter a plain text value with a keyboard.
@@ -244,13 +197,14 @@ function TextArea(props) {
244
197
  function TextField(props) {
245
198
  const formContext = useContext(FormContext);
246
199
  const contextProps = useContext(TextFieldContext);
247
- const contextSlotProps = contextProps?.slots?.[props.slot ?? "default"];
200
+ const contextSlotProps = contextProps?.slots?.[typeof props.slot === "string" ? props.slot : "default"];
248
201
  const contextBaseProps = createMemo(() => {
249
202
  if (!contextProps) return {};
250
203
  const { labelProps: _labelProps, inputProps: _inputProps, descriptionProps: _descriptionProps, errorMessageProps: _errorMessageProps, isInvalid: _isInvalid, slots: _slots, setInputId: _setInputId, ...rest } = contextProps;
251
204
  return rest;
252
205
  });
253
- const [local, ariaProps] = splitProps(withFormValidationBehavior(contextProps ? mergeProps$2(contextBaseProps(), contextSlotProps ?? {}, props) : props, formContext), [
206
+ const baseProps = contextProps ? mergeProps$1(contextBaseProps(), contextSlotProps ?? {}, props) : props;
207
+ const [local, ariaProps] = splitProps(baseProps, [
254
208
  "children",
255
209
  "class",
256
210
  "style",
@@ -273,8 +227,11 @@ function TextField(props) {
273
227
  for (const key in ariaProps) if (!key.startsWith("data-")) clean[key] = ariaProps[key];
274
228
  return clean;
275
229
  });
230
+ const [labelRef, hasLabel] = useSlot(!ariaProps["aria-label"] && !ariaProps["aria-labelledby"]);
276
231
  const textFieldAria = createTextField(() => ({
277
232
  ...inputAriaProps(),
233
+ validationBehavior: resolveValidationBehavior(ariaProps.validationBehavior, formContext),
234
+ label: hasLabel(),
278
235
  value: state.value(),
279
236
  onChange: state.setValue
280
237
  }));
@@ -337,15 +294,12 @@ function TextField(props) {
337
294
  };
338
295
  const fieldValidation = createMemo(() => {
339
296
  const isInvalid = textFieldAria.isInvalid;
297
+ const validationErrors = textFieldAria.validationErrors;
340
298
  const errorMessage = ariaProps.errorMessage;
341
299
  return {
342
300
  isInvalid,
343
- validationErrors: isInvalid && typeof errorMessage === "string" ? [errorMessage] : [],
344
- validationDetails: isInvalid ? {
345
- ...VALID_VALIDITY_STATE,
346
- customError: true,
347
- valid: false
348
- } : VALID_VALIDITY_STATE
301
+ validationErrors: isInvalid && validationErrors.length === 0 && typeof errorMessage === "string" ? [errorMessage] : validationErrors,
302
+ validationDetails: textFieldAria.validationDetails
349
303
  };
350
304
  });
351
305
  const fieldErrorContext = {
@@ -361,7 +315,7 @@ function TextField(props) {
361
315
  return textFieldAria.labelProps;
362
316
  },
363
317
  get inputProps() {
364
- return mergeProps$2(textFieldAria.inputProps, focusProps);
318
+ return mergeProps$1(textFieldAria.inputProps, focusProps);
365
319
  },
366
320
  get descriptionProps() {
367
321
  return textFieldAria.descriptionProps;
@@ -379,6 +333,20 @@ function TextField(props) {
379
333
  setInputIdOverride(id);
380
334
  }
381
335
  };
336
+ const labelContextValue = {
337
+ ref: labelRef,
338
+ get id() {
339
+ return textFieldAria.labelProps.id;
340
+ },
341
+ get htmlFor() {
342
+ const labelProps = textFieldAria.labelProps;
343
+ return inputIdOverride() ?? labelProps.htmlFor ?? labelProps.for;
344
+ },
345
+ get for() {
346
+ const labelProps = textFieldAria.labelProps;
347
+ return inputIdOverride() ?? labelProps.htmlFor ?? labelProps.for;
348
+ }
349
+ };
382
350
  const FieldChildren = () => untrack(() => {
383
351
  const children = local.children;
384
352
  return typeof children === "function" ? children(childRenderValues) : children;
@@ -403,31 +371,38 @@ function TextField(props) {
403
371
  class: renderProps.class(),
404
372
  style: renderProps.style(),
405
373
  slot: local.slot,
406
- "data-disabled": ariaProps.isDisabled || void 0,
407
- "data-invalid": textFieldAria.isInvalid || void 0,
408
- "data-readonly": ariaProps.isReadOnly || void 0,
409
- "data-required": ariaProps.isRequired || void 0,
410
- "data-hovered": isHovered() || void 0,
411
- "data-focused": isFocused() || void 0,
412
- "data-focus-visible": isFocusVisible() || void 0
374
+ "data-disabled": dataAttr(!!ariaProps.isDisabled),
375
+ "data-invalid": dataAttr(!!textFieldAria.isInvalid),
376
+ "data-readonly": dataAttr(!!ariaProps.isReadOnly),
377
+ "data-required": dataAttr(!!ariaProps.isRequired),
378
+ "data-hovered": dataAttr(isHovered()),
379
+ "data-focused": dataAttr(isFocused()),
380
+ "data-focus-visible": dataAttr(isFocusVisible())
413
381
  });
414
382
  const customRootProps = () => ({
415
383
  ...rootProps(),
416
384
  children: createComponent(FieldChildrenSlotted, {})
417
385
  });
418
- return createComponent(FieldErrorContext.Provider, {
386
+ return createComponent(FieldErrorContext, {
419
387
  value: fieldErrorContext,
420
388
  get children() {
421
- return createComponent(TextFieldContext.Provider, {
422
- value: contextValue,
389
+ return createComponent(LabelContext, {
390
+ value: labelContextValue,
423
391
  get children() {
424
- return memo(() => !!local.render)() ? local.render(customRootProps(), renderValues()) : (() => {
425
- var _el$4 = getNextElement(_tmpl$4);
426
- spread(_el$4, mergeProps(rootProps), false, true);
427
- insert(_el$4, createComponent(FieldChildrenSlotted, {}));
428
- runHydrationEvents();
429
- return _el$4;
430
- })();
392
+ return createComponent(TextFieldContext, {
393
+ value: contextValue,
394
+ get children() {
395
+ return memo(() => {
396
+ return !!local.render;
397
+ })() ? local.render(customRootProps(), renderValues()) : (() => {
398
+ var _el$3 = getNextElement(_tmpl$3);
399
+ spread(_el$3, rootProps, true);
400
+ insert(_el$3, createComponent(FieldChildrenSlotted, {}));
401
+ runHydrationEvents();
402
+ return _el$3;
403
+ })();
404
+ }
405
+ });
431
406
  }
432
407
  });
433
408
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TextField.js","names":["JSX","Context","createContext","useContext","createMemo","createSignal","createEffect","onCleanup","onMount","splitProps","untrack","createTextField","createFocusRing","createHover","mergeProps","AriaTextFieldProps","createTextFieldState","VALID_VALIDITY_STATE","ValidationResult","FormContext","FormProps","FieldErrorContext","FieldErrorContextValue","RenderChildren","ClassNameOrFunction","StyleOrFunction","SlotProps","useRenderProps","filterDOMProps","Provider","TextContext","TextFieldRenderProps","isDisabled","isInvalid","isReadOnly","isRequired","isHovered","isFocused","isFocusVisible","TextFieldProps","Omit","children","class","style","render","props","HTMLAttributes","HTMLDivElement","renderProps","Element","TextFieldContextValue","labelProps","LabelHTMLAttributes","HTMLLabelElement","inputProps","InputHTMLAttributes","HTMLInputElement","descriptionProps","HTMLElement","errorMessageProps","slots","Record","inputId","setInputId","id","TextFieldContext","LabelContext","InputContext","TextAreaContext","FieldInputContext","withFormValidationBehavior","formContext","validationBehavior","Proxy","get","target","property","receiver","localValue","Reflect","undefined","has","ownKeys","keys","Set","add","Array","from","getOwnPropertyDescriptor","descriptor","enumerable","configurable","LabelProps","Label","context","localDOMProps","result","propsRecord","key","mergedProps","localProps","ref","_ref","contextLabelProps","merged","for","_el$","_$getNextElement","_tmpl$","_$spread","_$mergeProps","_$insert","_$runHydrationEvents","InputProps","eventWithCurrentTarget","event","Event","element","T","value","bind","clearDelegatedTextEntryHandlers","delegatedElement","$$input","$$change","Input","inputElement","contextInputProps","inputHandler","handler","onInput","EventHandler","InputEvent","currentTarget","stopPropagation","changeHandler","onChange","addEventListener","removeEventListener","_el$2","_tmpl$2","_$use","TextAreaProps","TextareaHTMLAttributes","HTMLTextAreaElement","TextArea","textAreaElement","type","_type","_el$3","_tmpl$3","TextField","contextProps","contextSlotProps","slot","contextBaseProps","_labelProps","_inputProps","_descriptionProps","_errorMessageProps","_isInvalid","_slots","_setInputId","rest","baseProps","local","ariaProps","state","defaultValue","inputAriaProps","clean","startsWith","textFieldAria","setValue","focusProps","hoverProps","inputIdOverride","setInputIdOverride","renderValues","defaultClassName","childRenderValues","domProps","filtered","global","events","cleanHoverProps","fieldValidation","errorMessage","validationErrors","validationDetails","customError","valid","fieldErrorContext","validation","contextValue","FieldChildren","textSlots","description","FieldChildrenSlotted","_$createComponent","values","rootProps","customRootProps","_$memo","_el$4","_tmpl$4"],"sources":["../src/TextField.tsx"],"sourcesContent":["/**\n * TextField component for solidaria-components\n *\n * A pre-wired headless text field that combines state + aria hooks.\n * Port of react-aria-components/src/TextField.tsx\n */\n\nimport {\n type JSX,\n type Context,\n createContext,\n useContext,\n createMemo,\n createSignal,\n createEffect,\n onCleanup,\n onMount,\n splitProps,\n untrack,\n} from \"solid-js\";\nimport {\n createTextField,\n createFocusRing,\n createHover,\n mergeProps,\n type AriaTextFieldProps,\n} from \"@proyecto-viviana/solidaria\";\nimport {\n createTextFieldState,\n VALID_VALIDITY_STATE,\n type ValidationResult,\n} from \"@proyecto-viviana/solid-stately\";\nimport { FormContext, type FormProps } from \"./Form\";\nimport { FieldErrorContext, type FieldErrorContextValue } from \"./FieldError\";\nimport {\n type RenderChildren,\n type ClassNameOrFunction,\n type StyleOrFunction,\n type SlotProps,\n useRenderProps,\n filterDOMProps,\n Provider,\n} from \"./utils\";\nimport { TextContext } from \"./Text\";\n\nexport interface TextFieldRenderProps {\n /** Whether the text field is disabled. */\n isDisabled: boolean;\n /** Whether the value is invalid. */\n isInvalid: boolean;\n /** Whether the text field is read only. */\n isReadOnly: boolean;\n /** Whether the text field is required. */\n isRequired: boolean;\n /** Whether the text field is currently hovered with a mouse. */\n isHovered: boolean;\n /** Whether the text field is focused, either via a mouse or keyboard. */\n isFocused: boolean;\n /** Whether the text field is keyboard focused. */\n isFocusVisible: boolean;\n}\n\nexport interface TextFieldProps extends Omit<AriaTextFieldProps, \"children\">, SlotProps {\n /** The children of the component. A function may be provided to receive render props. */\n children?: RenderChildren<TextFieldRenderProps>;\n /** The CSS className for the element. */\n class?: ClassNameOrFunction<TextFieldRenderProps>;\n /** The inline style for the element. */\n style?: StyleOrFunction<TextFieldRenderProps>;\n /** Custom renderer for the outer text field element. */\n render?: (\n props: JSX.HTMLAttributes<HTMLDivElement>,\n renderProps: TextFieldRenderProps,\n ) => JSX.Element;\n}\n\nexport interface TextFieldContextValue {\n labelProps?: JSX.LabelHTMLAttributes<HTMLLabelElement>;\n inputProps?: JSX.InputHTMLAttributes<HTMLInputElement>;\n descriptionProps?: JSX.HTMLAttributes<HTMLElement>;\n errorMessageProps?: JSX.HTMLAttributes<HTMLElement>;\n isInvalid?: boolean;\n slots?: Record<string, TextFieldProps>;\n inputId?: string;\n setInputId?: (id: string | undefined) => void;\n}\n\nexport const TextFieldContext = createContext<TextFieldContextValue | null>(null);\nexport const LabelContext = TextFieldContext;\nexport const InputContext = TextFieldContext;\nexport const TextAreaContext = TextFieldContext;\nexport const FieldInputContext = TextFieldContext;\n\nfunction withFormValidationBehavior(\n props: TextFieldProps,\n formContext: FormProps | null,\n): TextFieldProps {\n if (!formContext?.validationBehavior) {\n return props;\n }\n\n return new Proxy(props, {\n get(target, property, receiver) {\n const localValue = Reflect.get(target, property, receiver);\n if (property === \"validationBehavior\" && localValue === undefined) {\n return formContext.validationBehavior;\n }\n\n return localValue;\n },\n has(target, property) {\n return (\n Reflect.has(target, property) ||\n (property === \"validationBehavior\" && formContext.validationBehavior !== undefined)\n );\n },\n ownKeys(target) {\n const keys = new Set(Reflect.ownKeys(target));\n if (formContext.validationBehavior !== undefined) {\n keys.add(\"validationBehavior\");\n }\n\n return Array.from(keys);\n },\n getOwnPropertyDescriptor(target, property) {\n const descriptor = Reflect.getOwnPropertyDescriptor(target, property);\n if (descriptor) {\n return descriptor;\n }\n\n if (property === \"validationBehavior\" && formContext.validationBehavior !== undefined) {\n return {\n enumerable: true,\n configurable: true,\n get: () => formContext.validationBehavior,\n };\n }\n\n return undefined;\n },\n });\n}\n\nexport interface LabelProps extends JSX.LabelHTMLAttributes<HTMLLabelElement> {\n children?: JSX.Element;\n}\n\n/**\n * A label element that automatically wires up to the parent TextField context.\n * This enables the proper htmlFor/id relationship between label and input.\n */\nexport function Label(props: LabelProps): JSX.Element {\n const context = useContext(TextFieldContext);\n\n const localDOMProps = () => {\n const result: Record<string, unknown> = {};\n const propsRecord = props as Record<string, unknown>;\n\n for (const key in propsRecord) {\n if (key !== \"children\") {\n result[key] = propsRecord[key];\n }\n }\n return result;\n };\n\n // Merge context labelProps with local props (local props take precedence)\n const mergedProps = () => {\n const localProps = localDOMProps();\n if (context) {\n const { ref: _ref, ...contextLabelProps } = (context.labelProps ?? {}) as Record<\n string,\n unknown\n >;\n const merged = {\n ...contextLabelProps,\n ...(context.inputId ? { for: context.inputId } : {}),\n ...localProps,\n } as Record<string, unknown>;\n if (merged.class == null) {\n merged.class = \"solidaria-Label\";\n }\n return merged;\n }\n return localProps.class == null ? { ...localProps, class: \"solidaria-Label\" } : localProps;\n };\n\n return <label {...mergedProps()}>{props.children}</label>;\n}\n\nexport interface InputProps extends Omit<JSX.InputHTMLAttributes<HTMLInputElement>, \"children\"> {}\n\nfunction eventWithCurrentTarget<T extends HTMLElement>(event: Event, element: T): Event {\n return new Proxy(event, {\n get(target, property, receiver) {\n if (property === \"target\" || property === \"currentTarget\") {\n return element;\n }\n\n const value = Reflect.get(target, property, receiver);\n return typeof value === \"function\" ? value.bind(target) : value;\n },\n });\n}\n\nfunction clearDelegatedTextEntryHandlers(element: HTMLElement) {\n const delegatedElement = element as HTMLElement & {\n $$input?: unknown;\n $$change?: unknown;\n };\n delete delegatedElement.$$input;\n delete delegatedElement.$$change;\n}\n\n/**\n * An input element that automatically wires up to the parent TextField context.\n * This enables focus tracking, validation, and accessibility props to flow from\n * the TextField to the actual input element.\n */\nexport function Input(props: InputProps): JSX.Element {\n const context = useContext(TextFieldContext);\n let inputElement: HTMLInputElement | undefined;\n\n createEffect(() => {\n context?.setInputId?.(props.id);\n });\n\n onCleanup(() => {\n context?.setInputId?.(undefined);\n });\n\n // Merge context inputProps with local props (local props take precedence)\n const mergedProps = () => {\n if (context) {\n // Remove ref from context props to avoid conflicts\n const { ref: _ref, ...contextInputProps } = (context.inputProps ?? {}) as Record<\n string,\n unknown\n >;\n const merged = { ...contextInputProps, ...props } as Record<string, unknown>;\n if (merged.class == null) {\n merged.class = \"solidaria-Input\";\n }\n return merged;\n }\n return props.class == null ? { ...props, class: \"solidaria-Input\" } : props;\n };\n\n onMount(() => {\n const element = inputElement;\n if (!element) {\n return;\n }\n\n const inputHandler = (event: Event) => {\n const handler = mergedProps().onInput as\n | JSX.EventHandler<HTMLInputElement, InputEvent>\n | undefined;\n handler?.(\n eventWithCurrentTarget(event, element) as InputEvent & {\n currentTarget: HTMLInputElement;\n target: Element;\n },\n );\n clearDelegatedTextEntryHandlers(element);\n event.stopPropagation();\n };\n const changeHandler = (event: Event) => {\n const handler = mergedProps().onChange as\n | JSX.EventHandler<HTMLInputElement, Event>\n | undefined;\n handler?.(\n eventWithCurrentTarget(event, element) as Event & {\n currentTarget: HTMLInputElement;\n target: Element;\n },\n );\n clearDelegatedTextEntryHandlers(element);\n event.stopPropagation();\n };\n\n element.addEventListener(\"input\", inputHandler);\n element.addEventListener(\"change\", changeHandler);\n clearDelegatedTextEntryHandlers(element);\n onCleanup(() => {\n element.removeEventListener(\"input\", inputHandler);\n element.removeEventListener(\"change\", changeHandler);\n });\n });\n\n return (\n <input\n {...mergedProps()}\n ref={(element) => {\n inputElement = element;\n const ref = props.ref;\n if (typeof ref === \"function\") {\n ref(element);\n }\n }}\n />\n );\n}\n\nexport interface TextAreaProps extends Omit<\n JSX.TextareaHTMLAttributes<HTMLTextAreaElement>,\n \"children\"\n> {}\n\n/**\n * A textarea element that automatically wires up to the parent TextField context.\n * This enables focus tracking, validation, and accessibility props to flow from\n * the TextField to the actual textarea element.\n */\nexport function TextArea(props: TextAreaProps): JSX.Element {\n const context = useContext(TextFieldContext);\n let textAreaElement: HTMLTextAreaElement | undefined;\n\n createEffect(() => {\n context?.setInputId?.(props.id);\n });\n\n onCleanup(() => {\n context?.setInputId?.(undefined);\n });\n\n // Merge context inputProps with local props (local props take precedence)\n // Note: TextArea uses inputProps from context since it's an input variant\n const mergedProps = () => {\n if (context) {\n const {\n ref: _ref,\n type: _type,\n ...contextInputProps\n } = (context.inputProps ?? {}) as Record<string, unknown>;\n const merged = { ...contextInputProps, ...props } as Record<string, unknown>;\n if (merged.class == null) {\n merged.class = \"solidaria-TextArea\";\n }\n return merged;\n }\n return props.class == null ? { ...props, class: \"solidaria-TextArea\" } : props;\n };\n\n onMount(() => {\n const element = textAreaElement;\n if (!element) {\n return;\n }\n\n const inputHandler = (event: Event) => {\n const handler = mergedProps().onInput as\n | JSX.EventHandler<HTMLTextAreaElement, InputEvent>\n | undefined;\n handler?.(\n eventWithCurrentTarget(event, element) as InputEvent & {\n currentTarget: HTMLTextAreaElement;\n target: Element;\n },\n );\n clearDelegatedTextEntryHandlers(element);\n event.stopPropagation();\n };\n const changeHandler = (event: Event) => {\n const handler = mergedProps().onChange as\n | JSX.EventHandler<HTMLTextAreaElement, Event>\n | undefined;\n handler?.(\n eventWithCurrentTarget(event, element) as Event & {\n currentTarget: HTMLTextAreaElement;\n target: Element;\n },\n );\n clearDelegatedTextEntryHandlers(element);\n event.stopPropagation();\n };\n\n element.addEventListener(\"input\", inputHandler);\n element.addEventListener(\"change\", changeHandler);\n clearDelegatedTextEntryHandlers(element);\n onCleanup(() => {\n element.removeEventListener(\"input\", inputHandler);\n element.removeEventListener(\"change\", changeHandler);\n });\n });\n\n return (\n <textarea\n {...mergedProps()}\n ref={(element) => {\n textAreaElement = element;\n const ref = props.ref;\n if (typeof ref === \"function\") {\n ref(element);\n }\n }}\n />\n );\n}\n\n/**\n * A text field allows a user to enter a plain text value with a keyboard.\n *\n * This is a headless component that provides accessibility and state management.\n * Style it using the render props pattern or data attributes.\n *\n * @example\n * ```tsx\n * <TextField>\n * {({ isInvalid }) => (\n * <>\n * <Label>Email</Label>\n * <Input class={isInvalid ? 'border-red-500' : 'border-gray-300'} />\n * </>\n * )}\n * </TextField>\n * ```\n */\nexport function TextField(props: TextFieldProps): JSX.Element {\n const formContext = useContext(FormContext);\n const contextProps = useContext(TextFieldContext);\n const contextSlotProps = contextProps?.slots?.[props.slot ?? \"default\"];\n const contextBaseProps = createMemo<TextFieldProps>(() => {\n if (!contextProps) return {};\n const {\n labelProps: _labelProps,\n inputProps: _inputProps,\n descriptionProps: _descriptionProps,\n errorMessageProps: _errorMessageProps,\n isInvalid: _isInvalid,\n slots: _slots,\n setInputId: _setInputId,\n ...rest\n } = contextProps;\n return rest as TextFieldProps;\n });\n const baseProps = (\n contextProps ? mergeProps(contextBaseProps(), contextSlotProps ?? {}, props) : props\n ) as TextFieldProps;\n const mergedProps = withFormValidationBehavior(baseProps, formContext);\n\n const [local, ariaProps] = splitProps(mergedProps, [\n \"children\",\n \"class\",\n \"style\",\n \"render\",\n \"slot\",\n ]);\n\n // Use getters to ensure props are read lazily inside reactive contexts\n const state = createTextFieldState({\n get value() {\n return ariaProps.value;\n },\n get defaultValue() {\n return ariaProps.defaultValue;\n },\n get onChange() {\n return ariaProps.onChange;\n },\n });\n\n const inputAriaProps = createMemo(() => {\n const clean: Record<string, unknown> = {};\n for (const key in ariaProps as Record<string, unknown>) {\n if (!key.startsWith(\"data-\")) {\n clean[key] = (ariaProps as Record<string, unknown>)[key];\n }\n }\n return clean as typeof ariaProps;\n });\n\n const textFieldAria = createTextField(() => ({\n ...inputAriaProps(),\n value: state.value(),\n onChange: state.setValue,\n }));\n\n const { isFocused, isFocusVisible, focusProps } = createFocusRing();\n\n const { isHovered, hoverProps } = createHover({\n get isDisabled() {\n return ariaProps.isDisabled;\n },\n });\n const [inputIdOverride, setInputIdOverride] = createSignal<string | undefined>();\n\n const renderValues = createMemo<TextFieldRenderProps>(() => ({\n isDisabled: ariaProps.isDisabled || false,\n isInvalid: textFieldAria.isInvalid,\n isReadOnly: ariaProps.isReadOnly || false,\n isRequired: ariaProps.isRequired || false,\n isHovered: isHovered(),\n isFocused: isFocused(),\n isFocusVisible: isFocusVisible(),\n }));\n\n const renderProps = useRenderProps(\n {\n get children() {\n return local.children;\n },\n class: local.class,\n style: local.style,\n defaultClassName: \"solidaria-TextField\",\n },\n renderValues,\n );\n const childRenderValues: TextFieldRenderProps = {\n get isDisabled() {\n return ariaProps.isDisabled || false;\n },\n get isInvalid() {\n return textFieldAria.isInvalid;\n },\n get isReadOnly() {\n return ariaProps.isReadOnly || false;\n },\n get isRequired() {\n return ariaProps.isRequired || false;\n },\n get isHovered() {\n return isHovered();\n },\n get isFocused() {\n return isFocused();\n },\n get isFocusVisible() {\n return isFocusVisible();\n },\n };\n\n const domProps = createMemo(() => {\n const filtered = filterDOMProps(ariaProps, { global: true, events: false });\n delete (filtered as Record<string, unknown>).id;\n return filtered;\n });\n\n const cleanHoverProps = () => {\n const { ref: _ref, ...rest } = hoverProps as Record<string, unknown>;\n return rest;\n };\n\n // Context value for sub-components.\n // Use property getters so sub-components always read the latest aria/focus state.\n const fieldValidation = createMemo<ValidationResult>(() => {\n const isInvalid = textFieldAria.isInvalid;\n const errorMessage = ariaProps.errorMessage;\n const validationErrors = isInvalid && typeof errorMessage === \"string\" ? [errorMessage] : [];\n\n return {\n isInvalid,\n validationErrors,\n validationDetails: isInvalid\n ? { ...VALID_VALIDITY_STATE, customError: true, valid: false }\n : VALID_VALIDITY_STATE,\n };\n });\n const fieldErrorContext: FieldErrorContextValue = {\n get validation() {\n return fieldValidation();\n },\n get errorMessageProps() {\n return textFieldAria.errorMessageProps as JSX.HTMLAttributes<HTMLElement>;\n },\n };\n const contextValue: TextFieldContextValue = {\n get labelProps() {\n return textFieldAria.labelProps as JSX.LabelHTMLAttributes<HTMLLabelElement>;\n },\n get inputProps() {\n return mergeProps(\n textFieldAria.inputProps as Record<string, unknown>,\n focusProps as Record<string, unknown>,\n ) as JSX.InputHTMLAttributes<HTMLInputElement>;\n },\n get descriptionProps() {\n return textFieldAria.descriptionProps as JSX.HTMLAttributes<HTMLElement>;\n },\n get errorMessageProps() {\n return textFieldAria.errorMessageProps as JSX.HTMLAttributes<HTMLElement>;\n },\n get isInvalid() {\n return textFieldAria.isInvalid;\n },\n // Deterministic at render (createTextField generates it via createUniqueId),\n // so the Label's `for` is stable across SSR + hydration. A signal set from an\n // onMount effect would flip undefined->id post-mount and re-execute the Label\n // template — crashing hydration if the re-run lands mid-hydration (dev).\n get inputId() {\n return inputIdOverride() ?? (textFieldAria.inputProps as { id?: string }).id;\n },\n setInputId(id: string | undefined) {\n setInputIdOverride(id);\n },\n };\n // Resolve the render-prop children ONCE (untracked). Re-invoking it on a\n // reactive update re-clones its templates; if that lands mid-hydration it\n // throws a Hydration Mismatch (worst in dev, where slow unbundled modules widen\n // the hydration window). The children carry their own fine-grained reactivity\n // (render-value getters + <Show>s), so they update without being re-created.\n const FieldChildren = () =>\n untrack(() => {\n const children = local.children;\n return typeof children === \"function\" ? children(childRenderValues) : children;\n });\n // Provide the description / errorMessage props as `TextContext` slots (mirrors\n // react-aria-components' TextField), so a `<Text slot=\"description\">` /\n // `<Text slot=\"errorMessage\">` child picks up the `id` its `aria-describedby`\n // references. Additive: existing consumers reading these off `TextFieldContext`\n // are unaffected.\n const textSlots = {\n slots: {\n get description() {\n return textFieldAria.descriptionProps as JSX.HTMLAttributes<HTMLElement>;\n },\n get errorMessage() {\n return textFieldAria.errorMessageProps as JSX.HTMLAttributes<HTMLElement>;\n },\n },\n };\n const FieldChildrenSlotted = () => (\n <Provider values={[[TextContext, textSlots]] as Array<[Context<unknown>, unknown]>}>\n <FieldChildren />\n </Provider>\n );\n const rootProps = () =>\n ({\n ...domProps(),\n ...cleanHoverProps(),\n class: renderProps.class(),\n style: renderProps.style(),\n slot: local.slot,\n \"data-disabled\": ariaProps.isDisabled || undefined,\n \"data-invalid\": textFieldAria.isInvalid || undefined,\n \"data-readonly\": ariaProps.isReadOnly || undefined,\n \"data-required\": ariaProps.isRequired || undefined,\n \"data-hovered\": isHovered() || undefined,\n \"data-focused\": isFocused() || undefined,\n \"data-focus-visible\": isFocusVisible() || undefined,\n }) as JSX.HTMLAttributes<HTMLDivElement>;\n const customRootProps = () =>\n ({\n ...rootProps(),\n children: <FieldChildrenSlotted />,\n }) as JSX.HTMLAttributes<HTMLDivElement>;\n\n return (\n <FieldErrorContext.Provider value={fieldErrorContext}>\n <TextFieldContext.Provider value={contextValue}>\n {local.render ? (\n local.render(customRootProps(), renderValues())\n ) : (\n <div {...rootProps()}>\n <FieldChildrenSlotted />\n </div>\n )}\n </TextFieldContext.Provider>\n </FieldErrorContext.Provider>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"TextField.js","names":["ref={(element) => {\n inputElement = element;\n assignRef(contextInputRef, element);\n assignRef(props.ref, element);\n }}","<input\n {...mergedProps()}\n ref={(element) => {\n inputElement = element;\n assignRef(contextInputRef, element);\n assignRef(props.ref, element);\n }}\n />","ref={(element) => {\n textAreaElement = element;\n assignRef(contextInputRef, element);\n assignRef(props.ref, element);\n }}","<textarea\n {...mergedProps()}\n ref={(element) => {\n textAreaElement = element;\n assignRef(contextInputRef, element);\n assignRef(props.ref, element);\n }}\n />","<Provider values={[[TextContext, textSlots]] as Array<[Context<unknown>, unknown]>}>\n <FieldChildren />\n </Provider>","values={[[TextContext, textSlots]] as Array<[Context<unknown>, unknown]>}","<FieldChildren />","<FieldChildrenSlotted />","<FieldErrorContext value={fieldErrorContext}>\n <LabelContext value={labelContextValue}>\n <TextFieldContext value={contextValue}>\n {local.render ? (\n local.render(customRootProps(), renderValues())\n ) : (\n <div {...rootProps()}>\n <FieldChildrenSlotted />\n </div>\n )}\n </TextFieldContext>\n </LabelContext>\n </FieldErrorContext>","value={fieldErrorContext}","<LabelContext value={labelContextValue}>\n <TextFieldContext value={contextValue}>\n {local.render ? (\n local.render(customRootProps(), renderValues())\n ) : (\n <div {...rootProps()}>\n <FieldChildrenSlotted />\n </div>\n )}\n </TextFieldContext>\n </LabelContext>","value={labelContextValue}","<TextFieldContext value={contextValue}>\n {local.render ? (\n local.render(customRootProps(), renderValues())\n ) : (\n <div {...rootProps()}>\n <FieldChildrenSlotted />\n </div>\n )}\n </TextFieldContext>","value={contextValue}","{local.render ? (\n local.render(customRootProps(), renderValues())\n ) : (\n <div {...rootProps()}>\n <FieldChildrenSlotted />\n </div>\n )}"],"sources":["../src/TextField.tsx"],"sourcesContent":["/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria-components/src/TextField.tsx\n\n/**\n * TextField component for solidaria-components\n *\n * A pre-wired headless text field that combines state + aria hooks.\n * Port of react-aria-components/src/TextField.tsx\n */\n\nimport {\n createContext,\n useContext,\n createMemo,\n createSignal,\n createEffect,\n onCleanup,\n onSettled,\n untrack,\n} from \"solid-js\";\nimport type { Context } from \"solid-js\";\nimport type { JSX } from \"@solidjs/web\";\nimport {\n createTextField,\n createFocusRing,\n createHover,\n mergeProps,\n type AriaTextFieldProps,\n} from \"@proyecto-viviana/solidaria\";\nimport { createTextFieldState, type ValidationResult } from \"@proyecto-viviana/solid-stately\";\nimport { FormContext, resolveValidationBehavior } from \"./Form\";\nimport { FieldErrorContext, type FieldErrorContextValue } from \"./FieldError\";\nimport {\n type RenderChildren,\n type ClassNameOrFunction,\n type StyleOrFunction,\n type SlotProps,\n useRenderProps,\n filterDOMProps,\n Provider,\n useSlot,\n dataAttr,\n} from \"./utils\";\nimport { TextContext } from \"./Text\";\nimport { LabelContext, type LabelProps } from \"./Label\";\nimport { assignRef, attrString, splitProps, type RefLike } from \"@proyecto-viviana/solidaria/utils\";\n\nexport interface TextFieldRenderProps {\n /** Whether the text field is disabled. */\n isDisabled: boolean;\n /** Whether the value is invalid. */\n isInvalid: boolean;\n /** Whether the text field is read only. */\n isReadOnly: boolean;\n /** Whether the text field is required. */\n isRequired: boolean;\n /** Whether the text field is currently hovered with a mouse. */\n isHovered: boolean;\n /** Whether the text field is focused, either via a mouse or keyboard. */\n isFocused: boolean;\n /** Whether the text field is keyboard focused. */\n isFocusVisible: boolean;\n}\n\nexport interface TextFieldProps extends Omit<AriaTextFieldProps, \"children\">, SlotProps {\n /** The children of the component. A function may be provided to receive render props. */\n children?: RenderChildren<TextFieldRenderProps>;\n /** The CSS className for the element. */\n class?: ClassNameOrFunction<TextFieldRenderProps>;\n /** The inline style for the element. */\n style?: StyleOrFunction<TextFieldRenderProps>;\n /** Custom renderer for the outer text field element. */\n render?: (\n props: JSX.HTMLAttributes<HTMLDivElement>,\n renderProps: TextFieldRenderProps,\n ) => JSX.Element;\n}\n\nexport interface TextFieldContextValue {\n labelProps?: JSX.LabelHTMLAttributes<HTMLLabelElement>;\n inputProps?: JSX.InputHTMLAttributes<HTMLInputElement>;\n descriptionProps?: JSX.HTMLAttributes<HTMLElement>;\n errorMessageProps?: JSX.HTMLAttributes<HTMLElement>;\n isInvalid?: boolean;\n slots?: Record<string, TextFieldProps>;\n inputId?: string;\n setInputId?: (id: string | undefined) => void;\n}\n\nexport const TextFieldContext = createContext<TextFieldContextValue | null>(null);\nexport const InputContext = TextFieldContext;\nexport const TextAreaContext = TextFieldContext;\nexport const FieldInputContext = TextFieldContext;\n\nexport interface InputProps extends Omit<JSX.InputHTMLAttributes<HTMLInputElement>, \"children\"> {}\n\nfunction eventWithCurrentTarget<T extends HTMLElement>(event: Event, element: T): Event {\n return new Proxy(event, {\n get(target, property, receiver) {\n if (property === \"target\" || property === \"currentTarget\") {\n return element;\n }\n\n const value = Reflect.get(target, property, receiver);\n return typeof value === \"function\" ? value.bind(target) : value;\n },\n });\n}\n\nfunction clearDelegatedTextEntryHandlers(element: HTMLElement) {\n const delegatedElement = element as HTMLElement & {\n $$input?: unknown;\n $$change?: unknown;\n };\n delete delegatedElement.$$input;\n delete delegatedElement.$$change;\n}\n\n/**\n * An input element that automatically wires up to the parent TextField context.\n * This enables focus tracking, validation, and accessibility props to flow from\n * the TextField to the actual input element.\n */\nexport function Input(props: InputProps): JSX.Element {\n const context = useContext(TextFieldContext);\n let inputElement: HTMLInputElement | undefined;\n // Resolved here, in the component body, not in the ref callback below: Solid 2\n // applies element refs through `runWithOwner(null, …)`, so a `context.inputProps`\n // read from inside the callback runs with no owner. A styled register may put a\n // proxy on that context whose `inputProps` getter re-runs caller thunks (#545),\n // and anything ownerless those thunks reach throws.\n const contextInputRef = context?.inputProps?.ref as RefLike<HTMLInputElement>;\n\n createEffect(\n () => attrString(props.id),\n (id) => {\n context?.setInputId?.(id);\n },\n );\n\n onCleanup(() => {\n context?.setInputId?.(undefined);\n });\n\n // Merge context inputProps with local props (local props take precedence)\n const mergedProps = () => {\n if (context) {\n // Remove ref from context props to avoid conflicts\n const { ref: _ref, ...contextInputProps } = (context.inputProps ?? {}) as Record<\n string,\n unknown\n >;\n const merged = { ...contextInputProps, ...props } as Record<string, unknown>;\n if (merged.class == null) {\n merged.class = \"solidaria-Input\";\n }\n return merged;\n }\n return props.class == null ? { ...props, class: \"solidaria-Input\" } : props;\n };\n\n onSettled(() => {\n const element = inputElement;\n if (!element) {\n return;\n }\n\n const inputHandler = (event: Event) => {\n const handler = mergedProps().onInput as\n | JSX.EventHandler<HTMLInputElement, InputEvent>\n | undefined;\n handler?.(\n eventWithCurrentTarget(event, element) as InputEvent & {\n currentTarget: HTMLInputElement;\n target: Element;\n },\n );\n clearDelegatedTextEntryHandlers(element);\n event.stopPropagation();\n };\n const changeHandler = (event: Event) => {\n const handler = mergedProps().onChange as\n | JSX.EventHandler<HTMLInputElement, Event>\n | undefined;\n handler?.(\n eventWithCurrentTarget(event, element) as Event & {\n currentTarget: HTMLInputElement;\n target: Element;\n },\n );\n clearDelegatedTextEntryHandlers(element);\n event.stopPropagation();\n };\n\n element.addEventListener(\"input\", inputHandler);\n element.addEventListener(\"change\", changeHandler);\n clearDelegatedTextEntryHandlers(element);\n return () => {\n element.removeEventListener(\"input\", inputHandler);\n element.removeEventListener(\"change\", changeHandler);\n };\n });\n\n return (\n <input\n {...mergedProps()}\n ref={(element) => {\n inputElement = element;\n assignRef(contextInputRef, element);\n assignRef(props.ref, element);\n }}\n />\n );\n}\n\nexport interface TextAreaProps extends Omit<\n JSX.TextareaHTMLAttributes<HTMLTextAreaElement>,\n \"children\"\n> {}\n\n/**\n * A textarea element that automatically wires up to the parent TextField context.\n * This enables focus tracking, validation, and accessibility props to flow from\n * the TextField to the actual textarea element.\n */\nexport function TextArea(props: TextAreaProps): JSX.Element {\n const context = useContext(TextFieldContext);\n let textAreaElement: HTMLTextAreaElement | undefined;\n // Resolved in the component body, not in the ref callback: see `Input` above.\n const contextInputRef = context?.inputProps?.ref as RefLike<HTMLTextAreaElement>;\n\n createEffect(\n () => attrString(props.id),\n (id) => {\n context?.setInputId?.(id);\n },\n );\n\n onCleanup(() => {\n context?.setInputId?.(undefined);\n });\n\n // Merge context inputProps with local props (local props take precedence)\n // Note: TextArea uses inputProps from context since it's an input variant\n const mergedProps = () => {\n if (context) {\n const {\n ref: _ref,\n type: _type,\n ...contextInputProps\n } = (context.inputProps ?? {}) as Record<string, unknown>;\n const merged = { ...contextInputProps, ...props } as Record<string, unknown>;\n if (merged.class == null) {\n merged.class = \"solidaria-TextArea\";\n }\n return merged;\n }\n return props.class == null ? { ...props, class: \"solidaria-TextArea\" } : props;\n };\n\n onSettled(() => {\n const element = textAreaElement;\n if (!element) {\n return;\n }\n\n const inputHandler = (event: Event) => {\n const handler = mergedProps().onInput as\n | JSX.EventHandler<HTMLTextAreaElement, InputEvent>\n | undefined;\n handler?.(\n eventWithCurrentTarget(event, element) as InputEvent & {\n currentTarget: HTMLTextAreaElement;\n target: Element;\n },\n );\n clearDelegatedTextEntryHandlers(element);\n event.stopPropagation();\n };\n const changeHandler = (event: Event) => {\n const handler = mergedProps().onChange as\n | JSX.EventHandler<HTMLTextAreaElement, Event>\n | undefined;\n handler?.(\n eventWithCurrentTarget(event, element) as Event & {\n currentTarget: HTMLTextAreaElement;\n target: Element;\n },\n );\n clearDelegatedTextEntryHandlers(element);\n event.stopPropagation();\n };\n\n element.addEventListener(\"input\", inputHandler);\n element.addEventListener(\"change\", changeHandler);\n clearDelegatedTextEntryHandlers(element);\n return () => {\n element.removeEventListener(\"input\", inputHandler);\n element.removeEventListener(\"change\", changeHandler);\n };\n });\n\n return (\n <textarea\n {...mergedProps()}\n ref={(element) => {\n textAreaElement = element;\n assignRef(contextInputRef, element);\n assignRef(props.ref, element);\n }}\n />\n );\n}\n\n/**\n * A text field allows a user to enter a plain text value with a keyboard.\n *\n * This is a headless component that provides accessibility and state management.\n * Style it using the render props pattern or data attributes.\n *\n * @example\n * ```tsx\n * <TextField>\n * {({ isInvalid }) => (\n * <>\n * <Label>Email</Label>\n * <Input class={isInvalid ? 'border-red-500' : 'border-gray-300'} />\n * </>\n * )}\n * </TextField>\n * ```\n */\nexport function TextField(props: TextFieldProps): JSX.Element {\n const formContext = useContext(FormContext);\n const contextProps = useContext(TextFieldContext);\n const contextSlotProps =\n contextProps?.slots?.[typeof props.slot === \"string\" ? props.slot : \"default\"];\n const contextBaseProps = createMemo<TextFieldProps>(() => {\n if (!contextProps) return {};\n const {\n labelProps: _labelProps,\n inputProps: _inputProps,\n descriptionProps: _descriptionProps,\n errorMessageProps: _errorMessageProps,\n isInvalid: _isInvalid,\n slots: _slots,\n setInputId: _setInputId,\n ...rest\n } = contextProps;\n return rest as TextFieldProps;\n });\n const baseProps = (\n contextProps ? mergeProps(contextBaseProps(), contextSlotProps ?? {}, props) : props\n ) as TextFieldProps;\n const [local, ariaProps] = splitProps(baseProps, [\n \"children\",\n \"class\",\n \"style\",\n \"render\",\n \"slot\",\n ]);\n\n // Use getters to ensure props are read lazily inside reactive contexts\n const state = createTextFieldState({\n get value() {\n return ariaProps.value;\n },\n get defaultValue() {\n return ariaProps.defaultValue;\n },\n get onChange() {\n return ariaProps.onChange;\n },\n });\n\n const inputAriaProps = createMemo(() => {\n const clean: Record<string, unknown> = {};\n for (const key in ariaProps as Record<string, unknown>) {\n if (!key.startsWith(\"data-\")) {\n clean[key] = (ariaProps as Record<string, unknown>)[key];\n }\n }\n return clean as typeof ariaProps;\n });\n\n // RAC `TextField` reports whether a slotted `<Label>` actually mounted, and\n // `useLabel` only mints `labelProps`/`aria-labelledby` when it did\n // (`useLabel.ts:52`). Without this the canonical\n // `<TextField><Label/><Input/></TextField>` renders an input with no\n // accessible name.\n const [labelRef, hasLabel] = useSlot(!ariaProps[\"aria-label\"] && !ariaProps[\"aria-labelledby\"]);\n\n const textFieldAria = createTextField(() => ({\n ...inputAriaProps(),\n validationBehavior: resolveValidationBehavior(ariaProps.validationBehavior, formContext),\n label: hasLabel(),\n value: state.value(),\n onChange: state.setValue,\n }));\n\n const { isFocused, isFocusVisible, focusProps } = createFocusRing();\n\n const { isHovered, hoverProps } = createHover({\n get isDisabled() {\n return ariaProps.isDisabled;\n },\n });\n const [inputIdOverride, setInputIdOverride] = createSignal<string | undefined>();\n\n const renderValues = createMemo<TextFieldRenderProps>(() => ({\n isDisabled: ariaProps.isDisabled || false,\n isInvalid: textFieldAria.isInvalid,\n isReadOnly: ariaProps.isReadOnly || false,\n isRequired: ariaProps.isRequired || false,\n isHovered: isHovered(),\n isFocused: isFocused(),\n isFocusVisible: isFocusVisible(),\n }));\n\n const renderProps = useRenderProps(\n {\n get children() {\n return local.children;\n },\n class: local.class,\n style: local.style,\n defaultClassName: \"solidaria-TextField\",\n },\n renderValues,\n );\n const childRenderValues: TextFieldRenderProps = {\n get isDisabled() {\n return ariaProps.isDisabled || false;\n },\n get isInvalid() {\n return textFieldAria.isInvalid;\n },\n get isReadOnly() {\n return ariaProps.isReadOnly || false;\n },\n get isRequired() {\n return ariaProps.isRequired || false;\n },\n get isHovered() {\n return isHovered();\n },\n get isFocused() {\n return isFocused();\n },\n get isFocusVisible() {\n return isFocusVisible();\n },\n };\n\n const domProps = createMemo(() => {\n const filtered = filterDOMProps(ariaProps, { global: true, events: false });\n delete (filtered as Record<string, unknown>).id;\n return filtered;\n });\n\n const cleanHoverProps = () => {\n const { ref: _ref, ...rest } = hoverProps as Record<string, unknown>;\n return rest;\n };\n\n // RAC TextField passes useTextField's `{isInvalid, validationErrors,\n // validationDetails}` into FieldErrorContext (`TextField.tsx:181`). The\n // `errorMessage` prop is omitted at that layer; keep it as a fallback so a\n // string errorMessage still fills FieldError's default children.\n const fieldValidation = createMemo<ValidationResult>(() => {\n const isInvalid = textFieldAria.isInvalid;\n const validationErrors = textFieldAria.validationErrors;\n const errorMessage = ariaProps.errorMessage;\n return {\n isInvalid,\n validationErrors:\n isInvalid && validationErrors.length === 0 && typeof errorMessage === \"string\"\n ? [errorMessage]\n : validationErrors,\n validationDetails: textFieldAria.validationDetails,\n };\n });\n const fieldErrorContext: FieldErrorContextValue = {\n get validation() {\n return fieldValidation();\n },\n get errorMessageProps() {\n return textFieldAria.errorMessageProps as JSX.HTMLAttributes<HTMLElement>;\n },\n };\n const contextValue: TextFieldContextValue = {\n get labelProps() {\n return textFieldAria.labelProps as JSX.LabelHTMLAttributes<HTMLLabelElement>;\n },\n get inputProps() {\n return mergeProps(\n textFieldAria.inputProps as Record<string, unknown>,\n focusProps as Record<string, unknown>,\n ) as JSX.InputHTMLAttributes<HTMLInputElement>;\n },\n get descriptionProps() {\n return textFieldAria.descriptionProps as JSX.HTMLAttributes<HTMLElement>;\n },\n get errorMessageProps() {\n return textFieldAria.errorMessageProps as JSX.HTMLAttributes<HTMLElement>;\n },\n get isInvalid() {\n return textFieldAria.isInvalid;\n },\n // Deterministic at render (createTextField generates it via createUniqueId),\n // so the Label's `for` is stable across SSR + hydration. A signal set from an\n // onMount effect would flip undefined->id post-mount and re-execute the Label\n // template — crashing hydration if the re-run lands mid-hydration (dev).\n get inputId() {\n return inputIdOverride() ?? (textFieldAria.inputProps as { id?: string }).id;\n },\n setInputId(id: string | undefined) {\n setInputIdOverride(id);\n },\n };\n const labelContextValue: LabelProps = {\n ref: labelRef,\n get id() {\n return (textFieldAria.labelProps as JSX.LabelHTMLAttributes<HTMLLabelElement>).id;\n },\n get htmlFor() {\n const labelProps = textFieldAria.labelProps as JSX.LabelHTMLAttributes<HTMLLabelElement> & {\n htmlFor?: string;\n for?: string;\n };\n return inputIdOverride() ?? labelProps.htmlFor ?? labelProps.for;\n },\n get for() {\n const labelProps = textFieldAria.labelProps as JSX.LabelHTMLAttributes<HTMLLabelElement> & {\n htmlFor?: string;\n for?: string;\n };\n return inputIdOverride() ?? labelProps.htmlFor ?? labelProps.for;\n },\n };\n // Resolve the render-prop children ONCE (untracked). Re-invoking it on a\n // reactive update re-clones its templates; if that lands mid-hydration it\n // throws a Hydration Mismatch (worst in dev, where slow unbundled modules widen\n // the hydration window). The children carry their own fine-grained reactivity\n // (render-value getters + <Show>s), so they update without being re-created.\n const FieldChildren = () =>\n untrack(() => {\n const children = local.children;\n return typeof children === \"function\" ? children(childRenderValues) : children;\n });\n // Provide the description / errorMessage props as `TextContext` slots (mirrors\n // react-aria-components' TextField), so a `<Text slot=\"description\">` /\n // `<Text slot=\"errorMessage\">` child picks up the `id` its `aria-describedby`\n // references. Additive: existing consumers reading these off `TextFieldContext`\n // are unaffected.\n const textSlots = {\n slots: {\n get description() {\n return textFieldAria.descriptionProps as JSX.HTMLAttributes<HTMLElement>;\n },\n get errorMessage() {\n return textFieldAria.errorMessageProps as JSX.HTMLAttributes<HTMLElement>;\n },\n },\n };\n const FieldChildrenSlotted = () => (\n <Provider values={[[TextContext, textSlots]] as Array<[Context<unknown>, unknown]>}>\n <FieldChildren />\n </Provider>\n );\n const rootProps = () =>\n ({\n ...domProps(),\n ...cleanHoverProps(),\n class: renderProps.class(),\n style: renderProps.style(),\n slot: local.slot,\n \"data-disabled\": dataAttr(!!ariaProps.isDisabled),\n \"data-invalid\": dataAttr(!!textFieldAria.isInvalid),\n \"data-readonly\": dataAttr(!!ariaProps.isReadOnly),\n \"data-required\": dataAttr(!!ariaProps.isRequired),\n \"data-hovered\": dataAttr(isHovered()),\n \"data-focused\": dataAttr(isFocused()),\n \"data-focus-visible\": dataAttr(isFocusVisible()),\n }) as JSX.HTMLAttributes<HTMLDivElement>;\n const customRootProps = () =>\n ({\n ...rootProps(),\n children: <FieldChildrenSlotted />,\n }) as JSX.HTMLAttributes<HTMLDivElement>;\n\n return (\n <FieldErrorContext value={fieldErrorContext}>\n <LabelContext value={labelContextValue}>\n <TextFieldContext value={contextValue}>\n {local.render ? (\n local.render(customRootProps(), renderValues())\n ) : (\n <div {...rootProps()}>\n <FieldChildrenSlotted />\n </div>\n )}\n </TextFieldContext>\n </LabelContext>\n </FieldErrorContext>\n );\n}\n\nexport { Label, LabelContext, type LabelProps } from \"./Label\";\n"],"mappings":"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"}