@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/StepList.js CHANGED
@@ -1,16 +1,35 @@
1
- import { filterDOMProps, useRenderProps } from "./utils.js";
2
- import { addEventListener, createComponent, delegateEvents, effect, getNextElement, insert, mergeProps, runHydrationEvents, setAttribute, spread, template } from "solid-js/web";
3
- import { For, createContext, createMemo, splitProps, useContext } from "solid-js";
1
+ /*
2
+ * Copyright 2023 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/src/steplist/useStepList.ts
13
+ // Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/steplist/useStepListItem.ts
14
+ // Ported to SolidJS for Proyecto Viviana; based on packages/react-stately/src/steplist/useStepListState.ts
15
+ import { attrTrue, dataAttr, filterDOMProps, useRenderProps } from "./utils.js";
16
+ import { createComponent, delegateEvents, effect, getNextElement, insert, runHydrationEvents, scope, setAttribute, spread, template } from "@solidjs/web";
17
+ import { For, createContext, createMemo, useContext } from "solid-js";
4
18
  import { createStepList } from "@proyecto-viviana/solidaria";
19
+ import { splitProps } from "@proyecto-viviana/solidaria/utils";
5
20
  import { createStepListState } from "@proyecto-viviana/solid-stately";
6
21
  //#region src/StepList.tsx
7
22
  /**
8
23
  * StepList component for solidaria-components
9
24
  *
10
25
  * A pre-wired headless step list component that combines state + aria hooks.
11
- * Renders an ordered list of steps with completion tracking.
26
+ * Renders an ordered list of steps with completion tracking. Based on:
27
+ * - packages/react-aria/src/steplist/useStepList.ts
28
+ * - packages/react-aria/src/steplist/useStepListItem.ts
29
+ * - packages/react-stately/src/steplist/useStepListState.ts
12
30
  */
13
- var _tmpl$ = /*#__PURE__*/ template(`<ol>`), _tmpl$2 = /*#__PURE__*/ template(`<li><a role=link>`);
31
+ var _tmpl$ = /* @__PURE__ */ template(`<ol>`);
32
+ var _tmpl$2 = /* @__PURE__ */ template(`<li><a role=link>`);
14
33
  const StepListStateContext = createContext(null);
15
34
  const StepListContext = createContext(null);
16
35
  function useStepListState() {
@@ -37,18 +56,38 @@ function StepList(props) {
37
56
  "class",
38
57
  "style"
39
58
  ], ["aria-label", "aria-labelledby"]);
40
- const state = createStepListState(createMemo(() => ({
41
- items: local.items,
42
- selectedKey: local.selectedKey,
43
- defaultSelectedKey: local.defaultSelectedKey,
44
- onSelectionChange: local.onSelectionChange,
45
- lastCompletedStep: local.lastCompletedStep,
46
- defaultLastCompletedStep: local.defaultLastCompletedStep,
47
- onLastCompletedStepChange: local.onLastCompletedStepChange,
48
- isDisabled: local.isDisabled,
49
- isReadOnly: local.isReadOnly,
50
- disabledKeys: local.disabledKeys
51
- }))());
59
+ const state = createStepListState({
60
+ get items() {
61
+ return local.items;
62
+ },
63
+ get selectedKey() {
64
+ return local.selectedKey;
65
+ },
66
+ get defaultSelectedKey() {
67
+ return local.defaultSelectedKey;
68
+ },
69
+ get onSelectionChange() {
70
+ return local.onSelectionChange;
71
+ },
72
+ get lastCompletedStep() {
73
+ return local.lastCompletedStep;
74
+ },
75
+ get defaultLastCompletedStep() {
76
+ return local.defaultLastCompletedStep;
77
+ },
78
+ get onLastCompletedStepChange() {
79
+ return local.onLastCompletedStepChange;
80
+ },
81
+ get isDisabled() {
82
+ return local.isDisabled;
83
+ },
84
+ get isReadOnly() {
85
+ return local.isReadOnly;
86
+ },
87
+ get disabledKeys() {
88
+ return local.disabledKeys;
89
+ }
90
+ });
52
91
  const { stepListProps } = createStepList({
53
92
  get "aria-label"() {
54
93
  return ariaProps["aria-label"];
@@ -64,21 +103,25 @@ function StepList(props) {
64
103
  defaultClassName: "solidaria-StepList"
65
104
  }, renderValues);
66
105
  const domProps = createMemo(() => filterDOMProps(domRest, { global: true }));
67
- return createComponent(StepListStateContext.Provider, {
106
+ return createComponent(StepListStateContext, {
68
107
  value: state,
69
108
  get children() {
70
109
  var _el$ = getNextElement(_tmpl$);
71
- spread(_el$, mergeProps(stepListProps, domProps, {
72
- get ["class"]() {
73
- return renderProps.class();
74
- },
75
- get style() {
76
- return renderProps.style();
77
- },
78
- get ["data-disabled"]() {
79
- return state.isDisabled() || void 0;
110
+ spread(_el$, [
111
+ stepListProps,
112
+ domProps,
113
+ {
114
+ get "class"() {
115
+ return renderProps.class();
116
+ },
117
+ get style() {
118
+ return renderProps.style();
119
+ },
120
+ get "data-disabled"() {
121
+ return dataAttr(state.isDisabled());
122
+ }
80
123
  }
81
- }), false, true);
124
+ ], true);
82
125
  insert(_el$, createComponent(For, {
83
126
  get each() {
84
127
  return local.items;
@@ -144,47 +187,48 @@ function Step(props) {
144
187
  if (selectable()) state.setSelectedKey(local.item.key);
145
188
  }
146
189
  };
147
- return (() => {
148
- var _el$2 = getNextElement(_tmpl$2), _el$3 = _el$2.firstChild;
149
- spread(_el$2, mergeProps(domProps, {
150
- get ["class"]() {
151
- return local.class;
152
- },
153
- get style() {
154
- return local.style;
155
- },
156
- get ["data-selected"]() {
157
- return isSelected() || void 0;
158
- },
159
- get ["data-completed"]() {
160
- return isCompleted() || void 0;
161
- },
162
- get ["data-disabled"]() {
163
- return !selectable() || void 0;
164
- },
165
- get ["data-selectable"]() {
166
- return selectable() || void 0;
167
- }
168
- }), false, true);
169
- addEventListener(_el$3, "keydown", handleKeyDown);
170
- _el$3.$$click = handleClick;
171
- insert(_el$3, () => local.children);
172
- effect((_p$) => {
173
- var _v$ = isSelected() ? "step" : void 0, _v$2 = !selectable() ? true : void 0, _v$3 = selectable() ? 0 : void 0;
174
- _v$ !== _p$.e && setAttribute(_el$3, "aria-current", _p$.e = _v$);
175
- _v$2 !== _p$.t && setAttribute(_el$3, "aria-disabled", _p$.t = _v$2);
176
- _v$3 !== _p$.a && setAttribute(_el$3, "tabindex", _p$.a = _v$3);
177
- return _p$;
178
- }, {
179
- e: void 0,
180
- t: void 0,
181
- a: void 0
182
- });
183
- runHydrationEvents();
184
- return _el$2;
185
- })();
190
+ var _el$2 = getNextElement(_tmpl$2);
191
+ var _el$3 = _el$2.firstChild;
192
+ spread(_el$2, [domProps, {
193
+ get "class"() {
194
+ return local.class;
195
+ },
196
+ get style() {
197
+ return local.style;
198
+ },
199
+ get "data-selected"() {
200
+ return dataAttr(isSelected());
201
+ },
202
+ get "data-completed"() {
203
+ return dataAttr(isCompleted());
204
+ },
205
+ get "data-disabled"() {
206
+ return dataAttr(!selectable());
207
+ },
208
+ get "data-selectable"() {
209
+ return dataAttr(selectable());
210
+ }
211
+ }], true);
212
+ _el$3._$$keydown = handleKeyDown;
213
+ _el$3._$$click = handleClick;
214
+ insert(_el$3, scope(() => {
215
+ return local.children;
216
+ }));
217
+ effect(() => {
218
+ return {
219
+ e: isSelected() ? "step" : void 0,
220
+ t: attrTrue(!selectable()),
221
+ a: selectable() ? 0 : void 0
222
+ };
223
+ }, ({ e, t, a }, _p$) => {
224
+ e !== _p$?.e && setAttribute(_el$3, "aria-current", e);
225
+ t !== _p$?.t && setAttribute(_el$3, "aria-disabled", t);
226
+ a !== _p$?.a && setAttribute(_el$3, "tabindex", a);
227
+ });
228
+ runHydrationEvents();
229
+ return _el$2;
186
230
  }
187
- delegateEvents(["click"]);
231
+ delegateEvents(["click", "keydown"]);
188
232
  //#endregion
189
233
  export { Step, StepList, StepListContext, StepListStateContext, useStepListState };
190
234
 
@@ -1 +1 @@
1
- {"version":3,"file":"StepList.js","names":["JSX","createContext","createMemo","splitProps","useContext","For","createStepListState","StepListState","StepListStateProps","Key","createStepList","AriaStepListProps","ClassNameOrFunction","StyleOrFunction","useRenderProps","filterDOMProps","StepListItemRenderProps","isSelected","isCompleted","isDisabled","isSelectable","stepNumber","stepStateText","StepListRenderProps","StepListProps","key","label","items","T","selectedKey","defaultSelectedKey","onSelectionChange","lastCompletedStep","defaultLastCompletedStep","onLastCompletedStepChange","isReadOnly","disabledKeys","Iterable","children","item","state","Element","class","style","StepProps","CSSProperties","StepListStateContext","StepListContext","useStepListState","ctx","Error","StepList","props","local","ariaProps","domRest","stateProps","stepListProps","aria-label","aria-labelledby","renderValues","renderProps","defaultClassName","domProps","Record","global","_$createComponent","Provider","value","_el$","_$getNextElement","_tmpl$","_$spread","_$mergeProps","data-disabled","undefined","_$insert","each","index","_$runHydrationEvents","Step","selectable","handleClick","e","MouseEvent","preventDefault","setSelectedKey","handleKeyDown","KeyboardEvent","_el$2","_tmpl$2","_el$3","firstChild","data-selected","data-completed","data-selectable","_$addEventListener","$$click","_$effect","_p$","_v$","_v$2","_v$3","_$setAttribute","t","a","_$delegateEvents"],"sources":["../src/StepList.tsx"],"sourcesContent":["/**\n * StepList component for solidaria-components\n *\n * A pre-wired headless step list component that combines state + aria hooks.\n * Renders an ordered list of steps with completion tracking.\n */\n\nimport { type JSX, createContext, createMemo, splitProps, useContext, For } from \"solid-js\";\nimport {\n createStepListState,\n type StepListState,\n type StepListStateProps,\n type Key,\n} from \"@proyecto-viviana/solid-stately\";\nimport { createStepList, type AriaStepListProps } from \"@proyecto-viviana/solidaria\";\nimport {\n type ClassNameOrFunction,\n type StyleOrFunction,\n useRenderProps,\n filterDOMProps,\n} from \"./utils\";\n\nexport interface StepListItemRenderProps {\n /** Whether this step is currently selected. */\n isSelected: boolean;\n /** Whether this step is completed. */\n isCompleted: boolean;\n /** Whether this step is disabled. */\n isDisabled: boolean;\n /** Whether this step can be selected. */\n isSelectable: boolean;\n /** The 1-based step number. */\n stepNumber: number;\n /** Accessible text describing the step state. */\n stepStateText: string;\n}\n\nexport interface StepListRenderProps {\n /** Whether the step list is disabled. */\n isDisabled: boolean;\n}\n\nexport interface StepListProps<T extends { key: Key; label: string }> extends AriaStepListProps {\n /** The step items. */\n items: T[];\n /** The currently selected step key (controlled). */\n selectedKey?: Key;\n /** The default selected step key (uncontrolled). */\n defaultSelectedKey?: Key;\n /** Called when the selected step changes. */\n onSelectionChange?: (key: Key) => void;\n /** The last completed step key (controlled). */\n lastCompletedStep?: Key;\n /** The default last completed step key (uncontrolled). */\n defaultLastCompletedStep?: Key;\n /** Called when last completed step changes. */\n onLastCompletedStepChange?: (key: Key | null) => void;\n /** Whether all steps are disabled. */\n isDisabled?: boolean;\n /** Whether all steps are read-only. */\n isReadOnly?: boolean;\n /** Keys of individually disabled steps. */\n disabledKeys?: Iterable<Key>;\n /** Render function for each step item. */\n children: (item: T, state: StepListItemRenderProps) => JSX.Element;\n /** The CSS className for the element. */\n class?: ClassNameOrFunction<StepListRenderProps>;\n /** The inline style for the element. */\n style?: StyleOrFunction<StepListRenderProps>;\n}\n\nexport interface StepProps {\n /** The step item. */\n item: { key: Key; label: string };\n /** The 1-based step number. */\n stepNumber: number;\n /** The children to render inside the step. */\n children?: JSX.Element;\n /** The CSS className for the element. */\n class?: string;\n /** The inline style for the element. */\n style?: JSX.CSSProperties;\n}\n\nexport const StepListStateContext = createContext<StepListState | null>(null);\nexport const StepListContext = createContext<{} | null>(null);\n\nexport function useStepListState(): StepListState {\n const ctx = useContext(StepListStateContext);\n if (!ctx) throw new Error(\"useStepListState must be used within a StepList\");\n return ctx;\n}\n\n/**\n * StepList displays a sequence of steps with completion tracking and selection.\n */\nexport function StepList<T extends { key: Key; label: string }>(\n props: StepListProps<T>,\n): JSX.Element {\n const [local, ariaProps, domRest] = splitProps(\n props,\n [\n \"items\",\n \"selectedKey\",\n \"defaultSelectedKey\",\n \"onSelectionChange\",\n \"lastCompletedStep\",\n \"defaultLastCompletedStep\",\n \"onLastCompletedStepChange\",\n \"isDisabled\",\n \"isReadOnly\",\n \"disabledKeys\",\n \"children\",\n \"class\",\n \"style\",\n ],\n [\"aria-label\", \"aria-labelledby\"],\n );\n\n const stateProps = createMemo<StepListStateProps>(() => ({\n items: local.items,\n selectedKey: local.selectedKey,\n defaultSelectedKey: local.defaultSelectedKey,\n onSelectionChange: local.onSelectionChange,\n lastCompletedStep: local.lastCompletedStep,\n defaultLastCompletedStep: local.defaultLastCompletedStep,\n onLastCompletedStepChange: local.onLastCompletedStepChange,\n isDisabled: local.isDisabled,\n isReadOnly: local.isReadOnly,\n disabledKeys: local.disabledKeys,\n }));\n\n const state = createStepListState(stateProps());\n\n // Create ARIA props\n const { stepListProps } = createStepList(\n {\n get \"aria-label\"() {\n return ariaProps[\"aria-label\"];\n },\n get \"aria-labelledby\"() {\n return ariaProps[\"aria-labelledby\"];\n },\n },\n state,\n );\n\n const renderValues = createMemo<StepListRenderProps>(() => ({\n isDisabled: state.isDisabled(),\n }));\n\n const renderProps = useRenderProps(\n {\n class: local.class,\n style: local.style,\n defaultClassName: \"solidaria-StepList\",\n },\n renderValues,\n );\n\n const domProps = createMemo(() =>\n filterDOMProps(domRest as Record<string, unknown>, { global: true }),\n );\n\n return (\n <StepListStateContext.Provider value={state}>\n <ol\n {...stepListProps}\n {...domProps()}\n class={renderProps.class()}\n style={renderProps.style()}\n data-disabled={state.isDisabled() || undefined}\n >\n <For each={local.items}>\n {(item, index) => {\n const stepNumber = () => index() + 1;\n\n // Build render props as a static snapshot for the initial render.\n const renderProps: StepListItemRenderProps = {\n get isSelected() {\n return state.selectedKey() === item.key;\n },\n get isCompleted() {\n return state.isCompleted(item.key);\n },\n get isDisabled() {\n return state.isDisabled() || !state.isSelectable(item.key);\n },\n get isSelectable() {\n return state.isSelectable(item.key);\n },\n get stepNumber() {\n return stepNumber();\n },\n get stepStateText() {\n if (state.selectedKey() === item.key) return \"Current\";\n if (state.isCompleted(item.key)) return \"Completed\";\n return \"Not completed\";\n },\n };\n\n return local.children(item, renderProps);\n }}\n </For>\n </ol>\n </StepListStateContext.Provider>\n );\n}\n\n/**\n * Step represents an individual step within a StepList.\n * Renders as an `<li>` wrapping an `<a>` with accessible step props.\n */\nexport function Step(props: StepProps): JSX.Element {\n const [local, domProps] = splitProps(props, [\"item\", \"stepNumber\", \"children\", \"class\", \"style\"]);\n\n const state = useStepListState();\n\n const isSelected = () => state.selectedKey() === local.item.key;\n const isCompleted = () => state.isCompleted(local.item.key);\n const selectable = () => state.isSelectable(local.item.key);\n\n const handleClick = (e: MouseEvent) => {\n e.preventDefault();\n if (selectable()) {\n state.setSelectedKey(local.item.key);\n }\n };\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === \"ArrowUp\" || e.key === \"ArrowDown\") {\n e.preventDefault();\n return;\n }\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n if (selectable()) {\n state.setSelectedKey(local.item.key);\n }\n }\n };\n\n return (\n <li\n {...domProps}\n class={local.class}\n style={local.style}\n data-selected={isSelected() || undefined}\n data-completed={isCompleted() || undefined}\n data-disabled={!selectable() || undefined}\n data-selectable={selectable() || undefined}\n >\n <a\n role=\"link\"\n aria-current={isSelected() ? \"step\" : undefined}\n aria-disabled={!selectable() ? true : undefined}\n tabIndex={selectable() ? 0 : undefined}\n onClick={handleClick}\n on:keydown={handleKeyDown}\n >\n {local.children}\n </a>\n </li>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"StepList.js","names":["<StepListStateContext value={state}>\n <ol\n {...stepListProps}\n {...domProps()}\n class={renderProps.class()}\n style={renderProps.style()}\n data-disabled={dataAttr(state.isDisabled())}\n >\n <For each={local.items}>\n {(item, index) => {\n const stepNumber = () => index() + 1;\n\n // Build render props as a static snapshot for the initial render.\n const renderProps: StepListItemRenderProps = {\n get isSelected() {\n return state.selectedKey() === item.key;\n },\n get isCompleted() {\n return state.isCompleted(item.key);\n },\n get isDisabled() {\n return state.isDisabled() || !state.isSelectable(item.key);\n },\n get isSelectable() {\n return state.isSelectable(item.key);\n },\n get stepNumber() {\n return stepNumber();\n },\n get stepStateText() {\n if (state.selectedKey() === item.key) return \"Current\";\n if (state.isCompleted(item.key)) return \"Completed\";\n return \"Not completed\";\n },\n };\n\n return local.children(item, renderProps);\n }}\n </For>\n </ol>\n </StepListStateContext>","value={state}","<For each={local.items}>\n {(item, index) => {\n const stepNumber = () => index() + 1;\n\n // Build render props as a static snapshot for the initial render.\n const renderProps: StepListItemRenderProps = {\n get isSelected() {\n return state.selectedKey() === item.key;\n },\n get isCompleted() {\n return state.isCompleted(item.key);\n },\n get isDisabled() {\n return state.isDisabled() || !state.isSelectable(item.key);\n },\n get isSelectable() {\n return state.isSelectable(item.key);\n },\n get stepNumber() {\n return stepNumber();\n },\n get stepStateText() {\n if (state.selectedKey() === item.key) return \"Current\";\n if (state.isCompleted(item.key)) return \"Completed\";\n return \"Not completed\";\n },\n };\n\n return local.children(item, renderProps);\n }}\n </For>","<ol\n {...stepListProps}\n {...domProps()}\n class={renderProps.class()}\n style={renderProps.style()}\n data-disabled={dataAttr(state.isDisabled())}\n >\n <For each={local.items}>\n {(item, index) => {\n const stepNumber = () => index() + 1;\n\n // Build render props as a static snapshot for the initial render.\n const renderProps: StepListItemRenderProps = {\n get isSelected() {\n return state.selectedKey() === item.key;\n },\n get isCompleted() {\n return state.isCompleted(item.key);\n },\n get isDisabled() {\n return state.isDisabled() || !state.isSelectable(item.key);\n },\n get isSelectable() {\n return state.isSelectable(item.key);\n },\n get stepNumber() {\n return stepNumber();\n },\n get stepStateText() {\n if (state.selectedKey() === item.key) return \"Current\";\n if (state.isCompleted(item.key)) return \"Completed\";\n return \"Not completed\";\n },\n };\n\n return local.children(item, renderProps);\n }}\n </For>\n </ol>","{local.children}","aria-disabled={attrTrue(!selectable())}","tabindex={selectable() ? 0 : undefined}","<li\n {...domProps}\n class={local.class}\n style={local.style}\n data-selected={dataAttr(isSelected())}\n data-completed={dataAttr(isCompleted())}\n data-disabled={dataAttr(!selectable())}\n data-selectable={dataAttr(selectable())}\n >\n <a\n role=\"link\"\n aria-current={isSelected() ? \"step\" : undefined}\n aria-disabled={attrTrue(!selectable())}\n tabindex={selectable() ? 0 : undefined}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n {local.children}\n </a>\n </li>"],"sources":["../src/StepList.tsx"],"sourcesContent":["/*\n * Copyright 2023 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/src/steplist/useStepList.ts\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/steplist/useStepListItem.ts\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-stately/src/steplist/useStepListState.ts\n\n/**\n * StepList component for solidaria-components\n *\n * A pre-wired headless step list component that combines state + aria hooks.\n * Renders an ordered list of steps with completion tracking. Based on:\n * - packages/react-aria/src/steplist/useStepList.ts\n * - packages/react-aria/src/steplist/useStepListItem.ts\n * - packages/react-stately/src/steplist/useStepListState.ts\n */\n\nimport { createContext, createMemo, useContext, For } from \"solid-js\";\nimport type { JSX } from \"@solidjs/web\";\nimport { createStepListState, type StepListState, type Key } from \"@proyecto-viviana/solid-stately\";\nimport { createStepList, type AriaStepListProps } from \"@proyecto-viviana/solidaria\";\nimport { splitProps } from \"@proyecto-viviana/solidaria/utils\";\nimport {\n type ClassNameOrFunction,\n type StyleOrFunction,\n useRenderProps,\n filterDOMProps,\n dataAttr,\n attrTrue,\n} from \"./utils\";\n\nexport interface StepListItemRenderProps {\n /** Whether this step is currently selected. */\n isSelected: boolean;\n /** Whether this step is completed. */\n isCompleted: boolean;\n /** Whether this step is disabled. */\n isDisabled: boolean;\n /** Whether this step can be selected. */\n isSelectable: boolean;\n /** The 1-based step number. */\n stepNumber: number;\n /** Accessible text describing the step state. */\n stepStateText: string;\n}\n\nexport interface StepListRenderProps {\n /** Whether the step list is disabled. */\n isDisabled: boolean;\n}\n\nexport interface StepListProps<T extends { key: Key; label: string }> extends AriaStepListProps {\n /** The step items. */\n items: T[];\n /** The currently selected step key (controlled). */\n selectedKey?: Key;\n /** The default selected step key (uncontrolled). */\n defaultSelectedKey?: Key;\n /** Called when the selected step changes. */\n onSelectionChange?: (key: Key) => void;\n /** The last completed step key (controlled). */\n lastCompletedStep?: Key;\n /** The default last completed step key (uncontrolled). */\n defaultLastCompletedStep?: Key;\n /** Called when last completed step changes. */\n onLastCompletedStepChange?: (key: Key | null) => void;\n /** Whether all steps are disabled. */\n isDisabled?: boolean;\n /** Whether all steps are read-only. */\n isReadOnly?: boolean;\n /** Keys of individually disabled steps. */\n disabledKeys?: Iterable<Key>;\n /** Render function for each step item. */\n children: (item: T, state: StepListItemRenderProps) => JSX.Element;\n /** The CSS className for the element. */\n class?: ClassNameOrFunction<StepListRenderProps>;\n /** The inline style for the element. */\n style?: StyleOrFunction<StepListRenderProps>;\n}\n\nexport interface StepProps {\n /** The step item. */\n item: { key: Key; label: string };\n /** The 1-based step number. */\n stepNumber: number;\n /** The children to render inside the step. */\n children?: JSX.Element;\n /** The CSS className for the element. */\n class?: string;\n /** The inline style for the element. */\n style?: JSX.CSSProperties;\n}\n\nexport const StepListStateContext = createContext<StepListState | null>(null);\nexport const StepListContext = createContext<{} | null>(null);\n\nexport function useStepListState(): StepListState {\n const ctx = useContext(StepListStateContext);\n if (!ctx) throw new Error(\"useStepListState must be used within a StepList\");\n return ctx;\n}\n\n/**\n * StepList displays a sequence of steps with completion tracking and selection.\n */\nexport function StepList<T extends { key: Key; label: string }>(\n props: StepListProps<T>,\n): JSX.Element {\n const [local, ariaProps, domRest] = splitProps(\n props,\n [\n \"items\",\n \"selectedKey\",\n \"defaultSelectedKey\",\n \"onSelectionChange\",\n \"lastCompletedStep\",\n \"defaultLastCompletedStep\",\n \"onLastCompletedStepChange\",\n \"isDisabled\",\n \"isReadOnly\",\n \"disabledKeys\",\n \"children\",\n \"class\",\n \"style\",\n ],\n [\"aria-label\", \"aria-labelledby\"],\n );\n\n // Staying-mounted getters. `createMemo(() => ({ isDisabled: local.isDisabled }))`\n // then `stateProps()` is a one-shot snapshot; createStepListState re-reads\n // props.isDisabled / isReadOnly / disabledKeys only if those names stay live.\n const state = createStepListState({\n get items() {\n return local.items;\n },\n get selectedKey() {\n return local.selectedKey;\n },\n get defaultSelectedKey() {\n return local.defaultSelectedKey;\n },\n get onSelectionChange() {\n return local.onSelectionChange;\n },\n get lastCompletedStep() {\n return local.lastCompletedStep;\n },\n get defaultLastCompletedStep() {\n return local.defaultLastCompletedStep;\n },\n get onLastCompletedStepChange() {\n return local.onLastCompletedStepChange;\n },\n get isDisabled() {\n return local.isDisabled;\n },\n get isReadOnly() {\n return local.isReadOnly;\n },\n get disabledKeys() {\n return local.disabledKeys;\n },\n });\n\n // Create ARIA props\n const { stepListProps } = createStepList(\n {\n get \"aria-label\"() {\n return ariaProps[\"aria-label\"];\n },\n get \"aria-labelledby\"() {\n return ariaProps[\"aria-labelledby\"];\n },\n },\n state,\n );\n\n const renderValues = createMemo<StepListRenderProps>(() => ({\n isDisabled: state.isDisabled(),\n }));\n\n const renderProps = useRenderProps(\n {\n class: local.class,\n style: local.style,\n defaultClassName: \"solidaria-StepList\",\n },\n renderValues,\n );\n\n const domProps = createMemo(() =>\n filterDOMProps(domRest as Record<string, unknown>, { global: true }),\n );\n\n return (\n <StepListStateContext value={state}>\n <ol\n {...stepListProps}\n {...domProps()}\n class={renderProps.class()}\n style={renderProps.style()}\n data-disabled={dataAttr(state.isDisabled())}\n >\n <For each={local.items}>\n {(item, index) => {\n const stepNumber = () => index() + 1;\n\n // Build render props as a static snapshot for the initial render.\n const renderProps: StepListItemRenderProps = {\n get isSelected() {\n return state.selectedKey() === item.key;\n },\n get isCompleted() {\n return state.isCompleted(item.key);\n },\n get isDisabled() {\n return state.isDisabled() || !state.isSelectable(item.key);\n },\n get isSelectable() {\n return state.isSelectable(item.key);\n },\n get stepNumber() {\n return stepNumber();\n },\n get stepStateText() {\n if (state.selectedKey() === item.key) return \"Current\";\n if (state.isCompleted(item.key)) return \"Completed\";\n return \"Not completed\";\n },\n };\n\n return local.children(item, renderProps);\n }}\n </For>\n </ol>\n </StepListStateContext>\n );\n}\n\n/**\n * Step represents an individual step within a StepList.\n * Renders as an `<li>` wrapping an `<a>` with accessible step props.\n */\nexport function Step(props: StepProps): JSX.Element {\n const [local, domProps] = splitProps(props, [\"item\", \"stepNumber\", \"children\", \"class\", \"style\"]);\n\n const state = useStepListState();\n\n const isSelected = () => state.selectedKey() === local.item.key;\n const isCompleted = () => state.isCompleted(local.item.key);\n const selectable = () => state.isSelectable(local.item.key);\n\n const handleClick = (e: MouseEvent) => {\n e.preventDefault();\n if (selectable()) {\n state.setSelectedKey(local.item.key);\n }\n };\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === \"ArrowUp\" || e.key === \"ArrowDown\") {\n e.preventDefault();\n return;\n }\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n if (selectable()) {\n state.setSelectedKey(local.item.key);\n }\n }\n };\n\n return (\n <li\n {...domProps}\n class={local.class}\n style={local.style}\n data-selected={dataAttr(isSelected())}\n data-completed={dataAttr(isCompleted())}\n data-disabled={dataAttr(!selectable())}\n data-selectable={dataAttr(selectable())}\n >\n <a\n role=\"link\"\n aria-current={isSelected() ? \"step\" : undefined}\n aria-disabled={attrTrue(!selectable())}\n tabindex={selectable() ? 0 : undefined}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n {local.children}\n </a>\n </li>\n );\n}\n"],"mappings":"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"}
package/dist/StepList.jsx CHANGED
@@ -1,13 +1,31 @@
1
- import { filterDOMProps, useRenderProps } from "./utils.jsx";
2
- import { For, createContext, createMemo, splitProps, useContext } from "solid-js";
1
+ /*
2
+ * Copyright 2023 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/src/steplist/useStepList.ts
13
+ // Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/steplist/useStepListItem.ts
14
+ // Ported to SolidJS for Proyecto Viviana; based on packages/react-stately/src/steplist/useStepListState.ts
15
+ import { attrTrue, dataAttr, filterDOMProps, useRenderProps } from "./utils.jsx";
16
+ import { For, createContext, createMemo, useContext } from "solid-js";
3
17
  import { createStepList } from "@proyecto-viviana/solidaria";
18
+ import { splitProps } from "@proyecto-viviana/solidaria/utils";
4
19
  import { createStepListState } from "@proyecto-viviana/solid-stately";
5
20
  //#region src/StepList.tsx
6
21
  /**
7
22
  * StepList component for solidaria-components
8
23
  *
9
24
  * A pre-wired headless step list component that combines state + aria hooks.
10
- * Renders an ordered list of steps with completion tracking.
25
+ * Renders an ordered list of steps with completion tracking. Based on:
26
+ * - packages/react-aria/src/steplist/useStepList.ts
27
+ * - packages/react-aria/src/steplist/useStepListItem.ts
28
+ * - packages/react-stately/src/steplist/useStepListState.ts
11
29
  */
12
30
  const StepListStateContext = createContext(null);
13
31
  const StepListContext = createContext(null);
@@ -35,18 +53,38 @@ function StepList(props) {
35
53
  "class",
36
54
  "style"
37
55
  ], ["aria-label", "aria-labelledby"]);
38
- const state = createStepListState(createMemo(() => ({
39
- items: local.items,
40
- selectedKey: local.selectedKey,
41
- defaultSelectedKey: local.defaultSelectedKey,
42
- onSelectionChange: local.onSelectionChange,
43
- lastCompletedStep: local.lastCompletedStep,
44
- defaultLastCompletedStep: local.defaultLastCompletedStep,
45
- onLastCompletedStepChange: local.onLastCompletedStepChange,
46
- isDisabled: local.isDisabled,
47
- isReadOnly: local.isReadOnly,
48
- disabledKeys: local.disabledKeys
49
- }))());
56
+ const state = createStepListState({
57
+ get items() {
58
+ return local.items;
59
+ },
60
+ get selectedKey() {
61
+ return local.selectedKey;
62
+ },
63
+ get defaultSelectedKey() {
64
+ return local.defaultSelectedKey;
65
+ },
66
+ get onSelectionChange() {
67
+ return local.onSelectionChange;
68
+ },
69
+ get lastCompletedStep() {
70
+ return local.lastCompletedStep;
71
+ },
72
+ get defaultLastCompletedStep() {
73
+ return local.defaultLastCompletedStep;
74
+ },
75
+ get onLastCompletedStepChange() {
76
+ return local.onLastCompletedStepChange;
77
+ },
78
+ get isDisabled() {
79
+ return local.isDisabled;
80
+ },
81
+ get isReadOnly() {
82
+ return local.isReadOnly;
83
+ },
84
+ get disabledKeys() {
85
+ return local.disabledKeys;
86
+ }
87
+ });
50
88
  const { stepListProps } = createStepList({
51
89
  get "aria-label"() {
52
90
  return ariaProps["aria-label"];
@@ -62,8 +100,8 @@ function StepList(props) {
62
100
  defaultClassName: "solidaria-StepList"
63
101
  }, renderValues);
64
102
  const domProps = createMemo(() => filterDOMProps(domRest, { global: true }));
65
- return <StepListStateContext.Provider value={state}>
66
- <ol {...stepListProps} {...domProps()} class={renderProps.class()} style={renderProps.style()} data-disabled={state.isDisabled() || void 0}>
103
+ return <StepListStateContext value={state}>
104
+ <ol {...stepListProps} {...domProps()} class={renderProps.class()} style={renderProps.style()} data-disabled={dataAttr(state.isDisabled())}>
67
105
  <For each={local.items}>
68
106
  {(item, index) => {
69
107
  const stepNumber = () => index() + 1;
@@ -92,7 +130,7 @@ function StepList(props) {
92
130
  }}
93
131
  </For>
94
132
  </ol>
95
- </StepListStateContext.Provider>;
133
+ </StepListStateContext>;
96
134
  }
97
135
  /**
98
136
  * Step represents an individual step within a StepList.
@@ -124,8 +162,8 @@ function Step(props) {
124
162
  if (selectable()) state.setSelectedKey(local.item.key);
125
163
  }
126
164
  };
127
- return <li {...domProps} class={local.class} style={local.style} data-selected={isSelected() || void 0} data-completed={isCompleted() || void 0} data-disabled={!selectable() || void 0} data-selectable={selectable() || void 0}>
128
- <a role="link" aria-current={isSelected() ? "step" : void 0} aria-disabled={!selectable() ? true : void 0} tabIndex={selectable() ? 0 : void 0} onClick={handleClick} on:keydown={handleKeyDown}>
165
+ return <li {...domProps} class={local.class} style={local.style} data-selected={dataAttr(isSelected())} data-completed={dataAttr(isCompleted())} data-disabled={dataAttr(!selectable())} data-selectable={dataAttr(selectable())}>
166
+ <a role="link" aria-current={isSelected() ? "step" : void 0} aria-disabled={attrTrue(!selectable())} tabindex={selectable() ? 0 : void 0} onClick={handleClick} onKeyDown={handleKeyDown}>
129
167
  {local.children}
130
168
  </a>
131
169
  </li>;
@@ -1 +1 @@
1
- {"version":3,"file":"StepList.jsx","names":[],"sources":["../src/StepList.tsx"],"sourcesContent":["/**\n * StepList component for solidaria-components\n *\n * A pre-wired headless step list component that combines state + aria hooks.\n * Renders an ordered list of steps with completion tracking.\n */\n\nimport { type JSX, createContext, createMemo, splitProps, useContext, For } from \"solid-js\";\nimport {\n createStepListState,\n type StepListState,\n type StepListStateProps,\n type Key,\n} from \"@proyecto-viviana/solid-stately\";\nimport { createStepList, type AriaStepListProps } from \"@proyecto-viviana/solidaria\";\nimport {\n type ClassNameOrFunction,\n type StyleOrFunction,\n useRenderProps,\n filterDOMProps,\n} from \"./utils\";\n\nexport interface StepListItemRenderProps {\n /** Whether this step is currently selected. */\n isSelected: boolean;\n /** Whether this step is completed. */\n isCompleted: boolean;\n /** Whether this step is disabled. */\n isDisabled: boolean;\n /** Whether this step can be selected. */\n isSelectable: boolean;\n /** The 1-based step number. */\n stepNumber: number;\n /** Accessible text describing the step state. */\n stepStateText: string;\n}\n\nexport interface StepListRenderProps {\n /** Whether the step list is disabled. */\n isDisabled: boolean;\n}\n\nexport interface StepListProps<T extends { key: Key; label: string }> extends AriaStepListProps {\n /** The step items. */\n items: T[];\n /** The currently selected step key (controlled). */\n selectedKey?: Key;\n /** The default selected step key (uncontrolled). */\n defaultSelectedKey?: Key;\n /** Called when the selected step changes. */\n onSelectionChange?: (key: Key) => void;\n /** The last completed step key (controlled). */\n lastCompletedStep?: Key;\n /** The default last completed step key (uncontrolled). */\n defaultLastCompletedStep?: Key;\n /** Called when last completed step changes. */\n onLastCompletedStepChange?: (key: Key | null) => void;\n /** Whether all steps are disabled. */\n isDisabled?: boolean;\n /** Whether all steps are read-only. */\n isReadOnly?: boolean;\n /** Keys of individually disabled steps. */\n disabledKeys?: Iterable<Key>;\n /** Render function for each step item. */\n children: (item: T, state: StepListItemRenderProps) => JSX.Element;\n /** The CSS className for the element. */\n class?: ClassNameOrFunction<StepListRenderProps>;\n /** The inline style for the element. */\n style?: StyleOrFunction<StepListRenderProps>;\n}\n\nexport interface StepProps {\n /** The step item. */\n item: { key: Key; label: string };\n /** The 1-based step number. */\n stepNumber: number;\n /** The children to render inside the step. */\n children?: JSX.Element;\n /** The CSS className for the element. */\n class?: string;\n /** The inline style for the element. */\n style?: JSX.CSSProperties;\n}\n\nexport const StepListStateContext = createContext<StepListState | null>(null);\nexport const StepListContext = createContext<{} | null>(null);\n\nexport function useStepListState(): StepListState {\n const ctx = useContext(StepListStateContext);\n if (!ctx) throw new Error(\"useStepListState must be used within a StepList\");\n return ctx;\n}\n\n/**\n * StepList displays a sequence of steps with completion tracking and selection.\n */\nexport function StepList<T extends { key: Key; label: string }>(\n props: StepListProps<T>,\n): JSX.Element {\n const [local, ariaProps, domRest] = splitProps(\n props,\n [\n \"items\",\n \"selectedKey\",\n \"defaultSelectedKey\",\n \"onSelectionChange\",\n \"lastCompletedStep\",\n \"defaultLastCompletedStep\",\n \"onLastCompletedStepChange\",\n \"isDisabled\",\n \"isReadOnly\",\n \"disabledKeys\",\n \"children\",\n \"class\",\n \"style\",\n ],\n [\"aria-label\", \"aria-labelledby\"],\n );\n\n const stateProps = createMemo<StepListStateProps>(() => ({\n items: local.items,\n selectedKey: local.selectedKey,\n defaultSelectedKey: local.defaultSelectedKey,\n onSelectionChange: local.onSelectionChange,\n lastCompletedStep: local.lastCompletedStep,\n defaultLastCompletedStep: local.defaultLastCompletedStep,\n onLastCompletedStepChange: local.onLastCompletedStepChange,\n isDisabled: local.isDisabled,\n isReadOnly: local.isReadOnly,\n disabledKeys: local.disabledKeys,\n }));\n\n const state = createStepListState(stateProps());\n\n // Create ARIA props\n const { stepListProps } = createStepList(\n {\n get \"aria-label\"() {\n return ariaProps[\"aria-label\"];\n },\n get \"aria-labelledby\"() {\n return ariaProps[\"aria-labelledby\"];\n },\n },\n state,\n );\n\n const renderValues = createMemo<StepListRenderProps>(() => ({\n isDisabled: state.isDisabled(),\n }));\n\n const renderProps = useRenderProps(\n {\n class: local.class,\n style: local.style,\n defaultClassName: \"solidaria-StepList\",\n },\n renderValues,\n );\n\n const domProps = createMemo(() =>\n filterDOMProps(domRest as Record<string, unknown>, { global: true }),\n );\n\n return (\n <StepListStateContext.Provider value={state}>\n <ol\n {...stepListProps}\n {...domProps()}\n class={renderProps.class()}\n style={renderProps.style()}\n data-disabled={state.isDisabled() || undefined}\n >\n <For each={local.items}>\n {(item, index) => {\n const stepNumber = () => index() + 1;\n\n // Build render props as a static snapshot for the initial render.\n const renderProps: StepListItemRenderProps = {\n get isSelected() {\n return state.selectedKey() === item.key;\n },\n get isCompleted() {\n return state.isCompleted(item.key);\n },\n get isDisabled() {\n return state.isDisabled() || !state.isSelectable(item.key);\n },\n get isSelectable() {\n return state.isSelectable(item.key);\n },\n get stepNumber() {\n return stepNumber();\n },\n get stepStateText() {\n if (state.selectedKey() === item.key) return \"Current\";\n if (state.isCompleted(item.key)) return \"Completed\";\n return \"Not completed\";\n },\n };\n\n return local.children(item, renderProps);\n }}\n </For>\n </ol>\n </StepListStateContext.Provider>\n );\n}\n\n/**\n * Step represents an individual step within a StepList.\n * Renders as an `<li>` wrapping an `<a>` with accessible step props.\n */\nexport function Step(props: StepProps): JSX.Element {\n const [local, domProps] = splitProps(props, [\"item\", \"stepNumber\", \"children\", \"class\", \"style\"]);\n\n const state = useStepListState();\n\n const isSelected = () => state.selectedKey() === local.item.key;\n const isCompleted = () => state.isCompleted(local.item.key);\n const selectable = () => state.isSelectable(local.item.key);\n\n const handleClick = (e: MouseEvent) => {\n e.preventDefault();\n if (selectable()) {\n state.setSelectedKey(local.item.key);\n }\n };\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === \"ArrowUp\" || e.key === \"ArrowDown\") {\n e.preventDefault();\n return;\n }\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n if (selectable()) {\n state.setSelectedKey(local.item.key);\n }\n }\n };\n\n return (\n <li\n {...domProps}\n class={local.class}\n style={local.style}\n data-selected={isSelected() || undefined}\n data-completed={isCompleted() || undefined}\n data-disabled={!selectable() || undefined}\n data-selectable={selectable() || undefined}\n >\n <a\n role=\"link\"\n aria-current={isSelected() ? \"step\" : undefined}\n aria-disabled={!selectable() ? true : undefined}\n tabIndex={selectable() ? 0 : undefined}\n onClick={handleClick}\n on:keydown={handleKeyDown}\n >\n {local.children}\n </a>\n </li>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"StepList.jsx","names":[],"sources":["../src/StepList.tsx"],"sourcesContent":["/*\n * Copyright 2023 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/src/steplist/useStepList.ts\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/steplist/useStepListItem.ts\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-stately/src/steplist/useStepListState.ts\n\n/**\n * StepList component for solidaria-components\n *\n * A pre-wired headless step list component that combines state + aria hooks.\n * Renders an ordered list of steps with completion tracking. Based on:\n * - packages/react-aria/src/steplist/useStepList.ts\n * - packages/react-aria/src/steplist/useStepListItem.ts\n * - packages/react-stately/src/steplist/useStepListState.ts\n */\n\nimport { createContext, createMemo, useContext, For } from \"solid-js\";\nimport type { JSX } from \"@solidjs/web\";\nimport { createStepListState, type StepListState, type Key } from \"@proyecto-viviana/solid-stately\";\nimport { createStepList, type AriaStepListProps } from \"@proyecto-viviana/solidaria\";\nimport { splitProps } from \"@proyecto-viviana/solidaria/utils\";\nimport {\n type ClassNameOrFunction,\n type StyleOrFunction,\n useRenderProps,\n filterDOMProps,\n dataAttr,\n attrTrue,\n} from \"./utils\";\n\nexport interface StepListItemRenderProps {\n /** Whether this step is currently selected. */\n isSelected: boolean;\n /** Whether this step is completed. */\n isCompleted: boolean;\n /** Whether this step is disabled. */\n isDisabled: boolean;\n /** Whether this step can be selected. */\n isSelectable: boolean;\n /** The 1-based step number. */\n stepNumber: number;\n /** Accessible text describing the step state. */\n stepStateText: string;\n}\n\nexport interface StepListRenderProps {\n /** Whether the step list is disabled. */\n isDisabled: boolean;\n}\n\nexport interface StepListProps<T extends { key: Key; label: string }> extends AriaStepListProps {\n /** The step items. */\n items: T[];\n /** The currently selected step key (controlled). */\n selectedKey?: Key;\n /** The default selected step key (uncontrolled). */\n defaultSelectedKey?: Key;\n /** Called when the selected step changes. */\n onSelectionChange?: (key: Key) => void;\n /** The last completed step key (controlled). */\n lastCompletedStep?: Key;\n /** The default last completed step key (uncontrolled). */\n defaultLastCompletedStep?: Key;\n /** Called when last completed step changes. */\n onLastCompletedStepChange?: (key: Key | null) => void;\n /** Whether all steps are disabled. */\n isDisabled?: boolean;\n /** Whether all steps are read-only. */\n isReadOnly?: boolean;\n /** Keys of individually disabled steps. */\n disabledKeys?: Iterable<Key>;\n /** Render function for each step item. */\n children: (item: T, state: StepListItemRenderProps) => JSX.Element;\n /** The CSS className for the element. */\n class?: ClassNameOrFunction<StepListRenderProps>;\n /** The inline style for the element. */\n style?: StyleOrFunction<StepListRenderProps>;\n}\n\nexport interface StepProps {\n /** The step item. */\n item: { key: Key; label: string };\n /** The 1-based step number. */\n stepNumber: number;\n /** The children to render inside the step. */\n children?: JSX.Element;\n /** The CSS className for the element. */\n class?: string;\n /** The inline style for the element. */\n style?: JSX.CSSProperties;\n}\n\nexport const StepListStateContext = createContext<StepListState | null>(null);\nexport const StepListContext = createContext<{} | null>(null);\n\nexport function useStepListState(): StepListState {\n const ctx = useContext(StepListStateContext);\n if (!ctx) throw new Error(\"useStepListState must be used within a StepList\");\n return ctx;\n}\n\n/**\n * StepList displays a sequence of steps with completion tracking and selection.\n */\nexport function StepList<T extends { key: Key; label: string }>(\n props: StepListProps<T>,\n): JSX.Element {\n const [local, ariaProps, domRest] = splitProps(\n props,\n [\n \"items\",\n \"selectedKey\",\n \"defaultSelectedKey\",\n \"onSelectionChange\",\n \"lastCompletedStep\",\n \"defaultLastCompletedStep\",\n \"onLastCompletedStepChange\",\n \"isDisabled\",\n \"isReadOnly\",\n \"disabledKeys\",\n \"children\",\n \"class\",\n \"style\",\n ],\n [\"aria-label\", \"aria-labelledby\"],\n );\n\n // Staying-mounted getters. `createMemo(() => ({ isDisabled: local.isDisabled }))`\n // then `stateProps()` is a one-shot snapshot; createStepListState re-reads\n // props.isDisabled / isReadOnly / disabledKeys only if those names stay live.\n const state = createStepListState({\n get items() {\n return local.items;\n },\n get selectedKey() {\n return local.selectedKey;\n },\n get defaultSelectedKey() {\n return local.defaultSelectedKey;\n },\n get onSelectionChange() {\n return local.onSelectionChange;\n },\n get lastCompletedStep() {\n return local.lastCompletedStep;\n },\n get defaultLastCompletedStep() {\n return local.defaultLastCompletedStep;\n },\n get onLastCompletedStepChange() {\n return local.onLastCompletedStepChange;\n },\n get isDisabled() {\n return local.isDisabled;\n },\n get isReadOnly() {\n return local.isReadOnly;\n },\n get disabledKeys() {\n return local.disabledKeys;\n },\n });\n\n // Create ARIA props\n const { stepListProps } = createStepList(\n {\n get \"aria-label\"() {\n return ariaProps[\"aria-label\"];\n },\n get \"aria-labelledby\"() {\n return ariaProps[\"aria-labelledby\"];\n },\n },\n state,\n );\n\n const renderValues = createMemo<StepListRenderProps>(() => ({\n isDisabled: state.isDisabled(),\n }));\n\n const renderProps = useRenderProps(\n {\n class: local.class,\n style: local.style,\n defaultClassName: \"solidaria-StepList\",\n },\n renderValues,\n );\n\n const domProps = createMemo(() =>\n filterDOMProps(domRest as Record<string, unknown>, { global: true }),\n );\n\n return (\n <StepListStateContext value={state}>\n <ol\n {...stepListProps}\n {...domProps()}\n class={renderProps.class()}\n style={renderProps.style()}\n data-disabled={dataAttr(state.isDisabled())}\n >\n <For each={local.items}>\n {(item, index) => {\n const stepNumber = () => index() + 1;\n\n // Build render props as a static snapshot for the initial render.\n const renderProps: StepListItemRenderProps = {\n get isSelected() {\n return state.selectedKey() === item.key;\n },\n get isCompleted() {\n return state.isCompleted(item.key);\n },\n get isDisabled() {\n return state.isDisabled() || !state.isSelectable(item.key);\n },\n get isSelectable() {\n return state.isSelectable(item.key);\n },\n get stepNumber() {\n return stepNumber();\n },\n get stepStateText() {\n if (state.selectedKey() === item.key) return \"Current\";\n if (state.isCompleted(item.key)) return \"Completed\";\n return \"Not completed\";\n },\n };\n\n return local.children(item, renderProps);\n }}\n </For>\n </ol>\n </StepListStateContext>\n );\n}\n\n/**\n * Step represents an individual step within a StepList.\n * Renders as an `<li>` wrapping an `<a>` with accessible step props.\n */\nexport function Step(props: StepProps): JSX.Element {\n const [local, domProps] = splitProps(props, [\"item\", \"stepNumber\", \"children\", \"class\", \"style\"]);\n\n const state = useStepListState();\n\n const isSelected = () => state.selectedKey() === local.item.key;\n const isCompleted = () => state.isCompleted(local.item.key);\n const selectable = () => state.isSelectable(local.item.key);\n\n const handleClick = (e: MouseEvent) => {\n e.preventDefault();\n if (selectable()) {\n state.setSelectedKey(local.item.key);\n }\n };\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === \"ArrowUp\" || e.key === \"ArrowDown\") {\n e.preventDefault();\n return;\n }\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n if (selectable()) {\n state.setSelectedKey(local.item.key);\n }\n }\n };\n\n return (\n <li\n {...domProps}\n class={local.class}\n style={local.style}\n data-selected={dataAttr(isSelected())}\n data-completed={dataAttr(isCompleted())}\n data-disabled={dataAttr(!selectable())}\n data-selectable={dataAttr(selectable())}\n >\n <a\n role=\"link\"\n aria-current={isSelected() ? \"step\" : undefined}\n aria-disabled={attrTrue(!selectable())}\n tabindex={selectable() ? 0 : undefined}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n {local.children}\n </a>\n </li>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsGA,MAAa,uBAAuB,cAAoC,IAAI;AAC5E,MAAa,kBAAkB,cAAyB,IAAI;AAE5D,SAAgB,mBAAkC;CAChD,MAAM,MAAM,WAAW,oBAAoB;CAC3C,IAAI,CAAC,KAAK,MAAM,IAAI,MAAM,iDAAiD;CAC3E,OAAO;AACT;;;;AAKA,SAAgB,SACd,OACa;CACb,MAAM,CAAC,OAAO,WAAW,WAAW,WAClC,OACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,GACA,CAAC,cAAc,iBAAiB,CAClC;CAKA,MAAM,QAAQ,oBAAoB;EAChC,IAAI,QAAQ;GACV,OAAO,MAAM;EACf;EACA,IAAI,cAAc;GAChB,OAAO,MAAM;EACf;EACA,IAAI,qBAAqB;GACvB,OAAO,MAAM;EACf;EACA,IAAI,oBAAoB;GACtB,OAAO,MAAM;EACf;EACA,IAAI,oBAAoB;GACtB,OAAO,MAAM;EACf;EACA,IAAI,2BAA2B;GAC7B,OAAO,MAAM;EACf;EACA,IAAI,4BAA4B;GAC9B,OAAO,MAAM;EACf;EACA,IAAI,aAAa;GACf,OAAO,MAAM;EACf;EACA,IAAI,aAAa;GACf,OAAO,MAAM;EACf;EACA,IAAI,eAAe;GACjB,OAAO,MAAM;EACf;CACF,CAAC;CAGD,MAAM,EAAE,kBAAkB,eACxB;EACE,IAAI,eAAe;GACjB,OAAO,UAAU;EACnB;EACA,IAAI,oBAAoB;GACtB,OAAO,UAAU;EACnB;CACF,GACA,KACF;CAEA,MAAM,eAAe,kBAAuC,EAC1D,YAAY,MAAM,WAAW,EAC/B,EAAE;CAEF,MAAM,cAAc,eAClB;EACE,OAAO,MAAM;EACb,OAAO,MAAM;EACb,kBAAkB;CACpB,GACA,YACF;CAEA,MAAM,WAAW,iBACf,eAAe,SAAoC,EAAE,QAAQ,KAAK,CAAC,CACrE;CAEA,OACE,CAAC,qBAAqB,OAAO,OAAO;MAClC,CAAC,OACK,mBACA,SAAS,GACb,OAAO,YAAY,MAAM,GACzB,OAAO,YAAY,MAAM,GACzB,eAAe,SAAS,MAAM,WAAW,CAAC,GAC3C;QACC,CAAC,IAAI,MAAM,MAAM,OAAO;YACpB,MAAM,UAAU;EAChB,MAAM,mBAAmB,MAAM,IAAI;EA0BnC,OAAO,MAAM,SAAS,MAAM;GAtB1B,IAAI,aAAa;IACf,OAAO,MAAM,YAAY,MAAM,KAAK;GACtC;GACA,IAAI,cAAc;IAChB,OAAO,MAAM,YAAY,KAAK,GAAG;GACnC;GACA,IAAI,aAAa;IACf,OAAO,MAAM,WAAW,KAAK,CAAC,MAAM,aAAa,KAAK,GAAG;GAC3D;GACA,IAAI,eAAe;IACjB,OAAO,MAAM,aAAa,KAAK,GAAG;GACpC;GACA,IAAI,aAAa;IACf,OAAO,WAAW;GACpB;GACA,IAAI,gBAAgB;IAClB,IAAI,MAAM,YAAY,MAAM,KAAK,KAAK,OAAO;IAC7C,IAAI,MAAM,YAAY,KAAK,GAAG,GAAG,OAAO;IACxC,OAAO;GACT;EAGoC,CAAC;CACzC,EAAE;QACJ,EAAE,IAAI;MACR,EAAE,GAAG;IACP,EAAE;AAEN;;;;;AAMA,SAAgB,KAAK,OAA+B;CAClD,MAAM,CAAC,OAAO,YAAY,WAAW,OAAO;EAAC;EAAQ;EAAc;EAAY;EAAS;CAAO,CAAC;CAEhG,MAAM,QAAQ,iBAAiB;CAE/B,MAAM,mBAAmB,MAAM,YAAY,MAAM,MAAM,KAAK;CAC5D,MAAM,oBAAoB,MAAM,YAAY,MAAM,KAAK,GAAG;CAC1D,MAAM,mBAAmB,MAAM,aAAa,MAAM,KAAK,GAAG;CAE1D,MAAM,eAAe,MAAkB;EACrC,EAAE,eAAe;EACjB,IAAI,WAAW,GACb,MAAM,eAAe,MAAM,KAAK,GAAG;CAEvC;CAEA,MAAM,iBAAiB,MAAqB;EAC1C,IAAI,EAAE,QAAQ,aAAa,EAAE,QAAQ,aAAa;GAChD,EAAE,eAAe;GACjB;EACF;EACA,IAAI,EAAE,QAAQ,WAAW,EAAE,QAAQ,KAAK;GACtC,EAAE,eAAe;GACjB,IAAI,WAAW,GACb,MAAM,eAAe,MAAM,KAAK,GAAG;EAEvC;CACF;CAEA,OACE,CAAC,OACK,UACJ,OAAO,MAAM,OACb,OAAO,MAAM,OACb,eAAe,SAAS,WAAW,CAAC,GACpC,gBAAgB,SAAS,YAAY,CAAC,GACtC,eAAe,SAAS,CAAC,WAAW,CAAC,GACrC,iBAAiB,SAAS,WAAW,CAAC,GACvC;MACC,CAAC,EACC,YACA,cAAc,WAAW,IAAI,SAAS,KAAA,GACtC,eAAe,SAAS,CAAC,WAAW,CAAC,GACrC,UAAU,WAAW,IAAI,IAAI,KAAA,GAC7B,SAAS,aACT,WAAW,eACZ;SACE,MAAM,SAAS;MAClB,EAAE,EAAE;IACN,EAAE;AAEN"}
package/dist/Switch.d.ts CHANGED
@@ -1,12 +1,5 @@
1
- /**
2
- * ToggleSwitch component for solidaria-components
3
- *
4
- * A pre-wired headless switch that combines state + aria hooks.
5
- * Port of react-aria-components/src/Switch.tsx
6
- *
7
- * Named "ToggleSwitch" to avoid conflict with SolidJS's built-in Switch component.
8
- */
9
- import { type JSX, type Context } from "solid-js";
1
+ import type { Context } from "solid-js";
2
+ import type { JSX } from "@solidjs/web";
10
3
  import { type AriaSwitchProps } from "@proyecto-viviana/solidaria";
11
4
  import { type ToggleState } from "@proyecto-viviana/solid-stately";
12
5
  import { type RenderChildren, type ClassNameOrFunction, type StyleOrFunction, type SlotProps } from "./utils";
@@ -1 +1 @@
1
- {"version":3,"file":"Switch.d.ts","sourceRoot":"","sources":["../src/Switch.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Switch.d.ts","sourceRoot":"","sources":["../src/Switch.tsx"],"names":[],"mappings":"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"}