@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
@@ -1,10 +1,4 @@
1
- /**
2
- * Collection composition primitives for solidaria-components.
3
- *
4
- * Foundational parity layer for React Spectrum-style composition:
5
- * Section / Header / Group.
6
- */
7
- import { type JSX } from "solid-js";
1
+ import type { JSX } from "@solidjs/web";
8
2
  import type { Key } from "@proyecto-viviana/solid-stately";
9
3
  import type { DragTypes, DropOperation, DropTarget } from "@proyecto-viviana/solid-stately";
10
4
  import { createLeafComponent, createBranchComponent, type CollectionProps as AriaCollectionProps, type CollectionBuilderProps as AriaCollectionBuilderProps } from "@proyecto-viviana/solidaria";
@@ -33,6 +27,14 @@ export interface CollectionRendererContextValue<T> {
33
27
  dropTargetDelegate?: CollectionDropTargetDelegate;
34
28
  /** Optional drop indicator renderer for DnD-aware collection paths. */
35
29
  renderDropIndicator?: (index: number, position: "before" | "after" | "on") => JSX.Element | undefined;
30
+ /**
31
+ * Root renderer for collection items. RAC `CollectionRenderer.CollectionRoot`
32
+ * (`Collection.tsx:196`). Virtualizer replaces this with a scroll-attached
33
+ * content wrapper (`react-aria-components/src/Virtualizer.tsx:99-151`).
34
+ */
35
+ CollectionRoot?: (props: CollectionRootProps<T>) => JSX.Element;
36
+ /** Branch renderer for nested collection items. RAC `CollectionBranch`. */
37
+ CollectionBranch?: (props: CollectionBranchProps<T>) => JSX.Element;
36
38
  }
37
39
  export type CollectionEntry<T> = T | CollectionSection<T>;
38
40
  export interface CollectionSection<T> {
@@ -89,11 +91,21 @@ export interface CollectionBranchProps<T> {
89
91
  export interface CollectionRootProps<T> {
90
92
  collection: Iterable<T>;
91
93
  persistedKeys?: Set<Key> | null;
94
+ /**
95
+ * The collection element that scrolls. RAC `CollectionRootProps.scrollRef`
96
+ * (`Collection.tsx:183`).
97
+ */
98
+ scrollRef?: () => HTMLElement | null | undefined;
92
99
  renderDropIndicator?: (target: {
93
100
  type: "item";
94
101
  key: Key;
95
102
  dropPosition: "before" | "after" | "on";
96
103
  }) => JSX.Element | undefined;
104
+ /**
105
+ * Rendered collection items. RAC CollectionRoot renders `node.render()` from
106
+ * the collection; Solid collections pass the already-composed item tree.
107
+ */
108
+ children?: JSX.Element;
97
109
  }
98
110
  export interface CollectionRenderer<T = unknown> {
99
111
  isVirtualized?: boolean;
@@ -109,12 +121,26 @@ export declare const GroupContext: import("solid-js").Context<Partial<GroupProps
109
121
  export declare const HeaderContext: import("solid-js").Context<Partial<HeaderProps> | null>;
110
122
  export declare const HeadingContext: import("solid-js").Context<Partial<HeaderProps> | null>;
111
123
  export declare function useCollectionRenderer<T>(): CollectionRendererContextValue<T> | null;
124
+ /** RAC collections always render `CollectionRoot` from the renderer context. */
125
+ export declare function useCollectionRoot<T>(): (props: CollectionRootProps<T>) => JSX.Element;
112
126
  export declare function isCollectionSection<T>(entry: CollectionEntry<T>): entry is CollectionSection<T>;
113
127
  export declare function flattenCollectionEntries<T>(entries: CollectionEntry<T>[]): T[];
114
128
  export declare const DefaultCollectionRenderer: CollectionRenderer<unknown>;
115
129
  export declare function CollectionBuilder<T>(props: AriaCollectionBuilderProps<T>): unknown;
116
130
  export declare function Collection<T>(props: AriaCollectionProps<T>): unknown;
117
131
  export { createLeafComponent, createBranchComponent };
132
+ /**
133
+ * RAC Collection renders `before` + item for every item, and `after` only when
134
+ * the next item in the same level is null (`renderAfterDropIndicators`). The
135
+ * `"on"` position is not a collection-level slot. Index-based hosts (ListBox,
136
+ * GridList, Menu, Table) use this helper so they do not fork the geometry.
137
+ */
138
+ export declare function renderCollectionDropSlots(options: {
139
+ index: number;
140
+ lastIndex: number;
141
+ renderDropIndicator?: (index: number, position: "before" | "after" | "on") => JSX.Element | undefined;
142
+ children: JSX.Element;
143
+ }): JSX.Element;
118
144
  /**
119
145
  * A semantic section wrapper for grouped collection content.
120
146
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Collection.d.ts","sourceRoot":"","sources":["../src/Collection.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Collection.d.ts","sourceRoot":"","sources":["../src/Collection.tsx"],"names":[],"mappings":"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"}
@@ -1,16 +1,34 @@
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/Collection.tsx
13
+ // Ported to SolidJS for Proyecto Viviana; based on packages/react-aria-components/src/Group.tsx
14
+ // Ported to SolidJS for Proyecto Viviana; based on packages/react-aria-components/src/Header.tsx
1
15
  import { filterDOMProps, useRenderProps } from "./utils.js";
2
- import { createComponent, getNextElement, insert, memo, mergeProps, runHydrationEvents, spread, template, use } from "solid-js/web";
3
- import { For, createContext, createMemo, splitProps, useContext } from "solid-js";
16
+ import { createComponent, getNextElement, insert, memo, ref, runHydrationEvents, scope, spread, template } from "@solidjs/web";
17
+ import { For, createContext, createMemo, useContext } from "solid-js";
4
18
  import { Collection as Collection$1, CollectionBuilder as CollectionBuilder$1, createBranchComponent, createLeafComponent } from "@proyecto-viviana/solidaria";
19
+ import { splitProps } from "@proyecto-viviana/solidaria/utils";
5
20
  //#region src/Collection.tsx
6
21
  /**
7
22
  * Collection composition primitives for solidaria-components.
8
23
  *
9
24
  * Foundational parity layer for React Spectrum-style composition:
10
- * Section / Header / Group.
25
+ * Section / Header / Group. Based on:
26
+ * - packages/react-aria-components/src/Collection.tsx
27
+ * - packages/react-aria-components/src/Group.tsx
28
+ * - packages/react-aria-components/src/Header.tsx
11
29
  */
12
- var _tmpl$ = /*#__PURE__*/ template(`<div>`);
13
- function assignRef(ref, el) {
30
+ var _tmpl$ = /* @__PURE__ */ template(`<div>`);
31
+ function assignRef$1(ref, el) {
14
32
  if (!ref) return;
15
33
  if (typeof ref === "function") ref(el);
16
34
  else ref.current = el;
@@ -24,6 +42,10 @@ const HeadingContext = createContext(null);
24
42
  function useCollectionRenderer() {
25
43
  return useContext(CollectionRendererContext);
26
44
  }
45
+ /** RAC collections always render `CollectionRoot` from the renderer context. */
46
+ function useCollectionRoot() {
47
+ return useCollectionRenderer()?.CollectionRoot ?? DefaultCollectionRenderer.CollectionRoot;
48
+ }
27
49
  function isCollectionSection(entry) {
28
50
  return typeof entry === "object" && entry !== null && Array.isArray(entry.items);
29
51
  }
@@ -34,30 +56,39 @@ function flattenCollectionEntries(entries) {
34
56
  return flattened;
35
57
  }
36
58
  function renderCollectionItems(collection, renderDropIndicator) {
59
+ const items = Array.from(collection);
60
+ let lastRenderableIndex = -1;
61
+ for (let i = 0; i < items.length; i++) if (items[i].type !== "content") lastRenderableIndex = i;
37
62
  return createComponent(For, {
38
- each: Array.from(collection),
63
+ each: items,
39
64
  children: (item, index) => {
40
65
  const node = item;
41
66
  if (node.type === "content") return [];
42
67
  const key = node.key ?? index();
68
+ const isLastInLevel = index() === lastRenderableIndex;
43
69
  return [
44
- memo(() => renderDropIndicator?.({
45
- type: "item",
46
- key,
47
- dropPosition: "before"
48
- })),
70
+ memo(() => {
71
+ return renderDropIndicator?.({
72
+ type: "item",
73
+ key,
74
+ dropPosition: "before"
75
+ });
76
+ }),
49
77
  item,
50
- memo(() => renderDropIndicator?.({
51
- type: "item",
52
- key,
53
- dropPosition: "after"
54
- }))
78
+ memo(() => {
79
+ return isLastInLevel ? renderDropIndicator?.({
80
+ type: "item",
81
+ key,
82
+ dropPosition: "after"
83
+ }) : null;
84
+ })
55
85
  ];
56
86
  }
57
87
  });
58
88
  }
59
89
  const DefaultCollectionRenderer = {
60
90
  CollectionRoot(props) {
91
+ if (props.children != null) return props.children;
61
92
  return renderCollectionItems(props.collection, props.renderDropIndicator);
62
93
  },
63
94
  CollectionBranch(props) {
@@ -71,6 +102,27 @@ function Collection(props) {
71
102
  return Collection$1(props);
72
103
  }
73
104
  /**
105
+ * RAC Collection renders `before` + item for every item, and `after` only when
106
+ * the next item in the same level is null (`renderAfterDropIndicators`). The
107
+ * `"on"` position is not a collection-level slot. Index-based hosts (ListBox,
108
+ * GridList, Menu, Table) use this helper so they do not fork the geometry.
109
+ */
110
+ function renderCollectionDropSlots(options) {
111
+ return [
112
+ memo(() => {
113
+ return options.renderDropIndicator?.(options.index, "before");
114
+ }),
115
+ memo(() => {
116
+ return options.children;
117
+ }),
118
+ memo(() => {
119
+ return memo(() => {
120
+ return options.index === options.lastIndex;
121
+ })() ? options.renderDropIndicator?.(options.index, "after") : null;
122
+ })
123
+ ];
124
+ }
125
+ /**
74
126
  * A semantic section wrapper for grouped collection content.
75
127
  */
76
128
  function Section(props) {
@@ -96,25 +148,27 @@ function Section(props) {
96
148
  defaultClassName: "solidaria-Section"
97
149
  }, renderValues);
98
150
  const filteredDomProps = createMemo(() => filterDOMProps(domProps, { global: true }));
99
- return (() => {
100
- var _el$ = getNextElement(_tmpl$);
101
- use((el) => assignRef(local.ref, el), _el$);
102
- spread(_el$, mergeProps(filteredDomProps, {
103
- get ["class"]() {
104
- return renderProps.class();
105
- },
106
- get style() {
107
- return renderProps.style();
108
- },
109
- get slot() {
110
- return local.slot;
111
- },
112
- "data-section": ""
113
- }), false, true);
114
- insert(_el$, () => renderProps.renderChildren());
115
- runHydrationEvents();
116
- return _el$;
117
- })();
151
+ var _el$ = getNextElement(_tmpl$);
152
+ ref(() => {
153
+ return (el) => assignRef$1(local.ref, el);
154
+ }, _el$);
155
+ spread(_el$, [filteredDomProps, {
156
+ get "class"() {
157
+ return renderProps.class();
158
+ },
159
+ get style() {
160
+ return renderProps.style();
161
+ },
162
+ get slot() {
163
+ return local.slot;
164
+ },
165
+ "data-section": true
166
+ }], true);
167
+ insert(_el$, scope(() => {
168
+ return renderProps.renderChildren();
169
+ }));
170
+ runHydrationEvents();
171
+ return _el$;
118
172
  }
119
173
  /**
120
174
  * A header/title primitive for collection sections.
@@ -136,25 +190,25 @@ function Header(props) {
136
190
  defaultClassName: "solidaria-Header"
137
191
  }, renderValues);
138
192
  const filteredDomProps = createMemo(() => filterDOMProps(domProps, { global: true }));
139
- return (() => {
140
- var _el$2 = getNextElement(_tmpl$);
141
- spread(_el$2, mergeProps(filteredDomProps, {
142
- "role": "heading",
143
- get ["class"]() {
144
- return renderProps.class();
145
- },
146
- get style() {
147
- return renderProps.style();
148
- },
149
- get slot() {
150
- return local.slot;
151
- },
152
- "data-header": ""
153
- }), false, true);
154
- insert(_el$2, () => renderProps.renderChildren());
155
- runHydrationEvents();
156
- return _el$2;
157
- })();
193
+ var _el$2 = getNextElement(_tmpl$);
194
+ spread(_el$2, [filteredDomProps, {
195
+ role: "heading",
196
+ get "class"() {
197
+ return renderProps.class();
198
+ },
199
+ get style() {
200
+ return renderProps.style();
201
+ },
202
+ get slot() {
203
+ return local.slot;
204
+ },
205
+ "data-header": true
206
+ }], true);
207
+ insert(_el$2, scope(() => {
208
+ return renderProps.renderChildren();
209
+ }));
210
+ runHydrationEvents();
211
+ return _el$2;
158
212
  }
159
213
  /**
160
214
  * A grouping primitive for section item containers.
@@ -176,27 +230,27 @@ function Group(props) {
176
230
  defaultClassName: "solidaria-Group"
177
231
  }, renderValues);
178
232
  const filteredDomProps = createMemo(() => filterDOMProps(domProps, { global: true }));
179
- return (() => {
180
- var _el$3 = getNextElement(_tmpl$);
181
- spread(_el$3, mergeProps(filteredDomProps, {
182
- "role": "group",
183
- get ["class"]() {
184
- return renderProps.class();
185
- },
186
- get style() {
187
- return renderProps.style();
188
- },
189
- get slot() {
190
- return local.slot;
191
- },
192
- "data-group": ""
193
- }), false, true);
194
- insert(_el$3, () => renderProps.renderChildren());
195
- runHydrationEvents();
196
- return _el$3;
197
- })();
233
+ var _el$3 = getNextElement(_tmpl$);
234
+ spread(_el$3, [filteredDomProps, {
235
+ role: "group",
236
+ get "class"() {
237
+ return renderProps.class();
238
+ },
239
+ get style() {
240
+ return renderProps.style();
241
+ },
242
+ get slot() {
243
+ return local.slot;
244
+ },
245
+ "data-group": true
246
+ }], true);
247
+ insert(_el$3, scope(() => {
248
+ return renderProps.renderChildren();
249
+ }));
250
+ runHydrationEvents();
251
+ return _el$3;
198
252
  }
199
253
  //#endregion
200
- export { Collection, CollectionBuilder, CollectionRendererContext, DefaultCollectionRenderer, Group, GroupContext, Header, HeaderContext, HeadingContext, Section, SectionContext, SelectableCollectionContext, createBranchComponent, createLeafComponent, flattenCollectionEntries, isCollectionSection, useCollectionRenderer };
254
+ export { Collection, CollectionBuilder, CollectionRendererContext, DefaultCollectionRenderer, Group, GroupContext, Header, HeaderContext, HeadingContext, Section, SectionContext, SelectableCollectionContext, createBranchComponent, createLeafComponent, flattenCollectionEntries, isCollectionSection, renderCollectionDropSlots, useCollectionRenderer, useCollectionRoot };
201
255
 
202
256
  //# sourceMappingURL=Collection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Collection.js","names":["JSX","createContext","createMemo","splitProps","useContext","For","Key","DragTypes","DropOperation","DropTarget","Collection","AriaCollection","CollectionBuilder","AriaCollectionBuilder","createLeafComponent","createBranchComponent","CollectionProps","AriaCollectionProps","CollectionBuilderProps","AriaCollectionBuilderProps","ClassNameOrFunction","StyleOrFunction","SlotProps","useRenderProps","filterDOMProps","CollectionPrimitiveRenderProps","hasChildren","RefLike","el","T","current","assignRef","ref","CollectionDropTargetDelegate","getDropTargetFromPoint","x","y","isValidDropTarget","target","getDropOperation","types","allowedOperations","getKeyboardNavigationTarget","direction","getKeyboardPageNavigationTarget","CollectionRendererContextValue","renderItem","item","Element","isVirtualized","layoutDelegate","dropTargetDelegate","renderDropIndicator","index","position","CollectionEntry","CollectionSection","key","title","items","SectionProps","children","HTMLDivElement","class","style","HeaderProps","GroupProps","SectionContextValue","name","render","props","className","CollectionBranchProps","collection","Iterable","parent","type","dropPosition","CollectionRootProps","persistedKeys","Set","CollectionRenderer","CollectionRoot","CollectionBranch","CollectionRendererContext","SelectableCollectionContext","SectionContext","GroupContext","Partial","HeaderContext","HeadingContext","useCollectionRenderer","isCollectionSection","entry","Array","isArray","flattenCollectionEntries","entries","flattened","push","renderCollectionItems","from","_$createComponent","each","node","_$memo","DefaultCollectionRenderer","Section","sectionContext","nodeEnv","globalThis","process","env","NODE_ENV","console","warn","local","domProps","renderValues","renderProps","defaultClassName","filteredDomProps","global","_el$","_$getNextElement","_tmpl$","_$use","_$spread","_$mergeProps","slot","_$insert","renderChildren","_$runHydrationEvents","Header","_el$2","Group","_el$3"],"sources":["../src/Collection.tsx"],"sourcesContent":["/**\n * Collection composition primitives for solidaria-components.\n *\n * Foundational parity layer for React Spectrum-style composition:\n * Section / Header / Group.\n */\n\nimport { type JSX, createContext, createMemo, splitProps, useContext, For } from \"solid-js\";\nimport type { Key } from \"@proyecto-viviana/solid-stately\";\nimport type { DragTypes, DropOperation, DropTarget } from \"@proyecto-viviana/solid-stately\";\nimport {\n Collection as AriaCollection,\n CollectionBuilder as AriaCollectionBuilder,\n createLeafComponent,\n createBranchComponent,\n type CollectionProps as AriaCollectionProps,\n type CollectionBuilderProps as AriaCollectionBuilderProps,\n} from \"@proyecto-viviana/solidaria\";\nimport {\n type ClassNameOrFunction,\n type StyleOrFunction,\n type SlotProps,\n useRenderProps,\n filterDOMProps,\n} from \"./utils\";\n\nexport interface CollectionPrimitiveRenderProps {\n /** Whether the primitive has visible children content. */\n hasChildren: boolean;\n}\n\ntype RefLike<T> = ((el: T) => void) | { current?: T | null } | undefined;\n\nfunction assignRef<T>(ref: RefLike<T>, el: T): void {\n if (!ref) return;\n if (typeof ref === \"function\") ref(el);\n else ref.current = el;\n}\n\nexport interface CollectionDropTargetDelegate {\n getDropTargetFromPoint(\n x: number,\n y: number,\n isValidDropTarget: (target: DropTarget) => boolean,\n ): DropTarget | null;\n getDropOperation(\n target: DropTarget,\n types: DragTypes,\n allowedOperations: DropOperation[],\n ): DropOperation;\n getKeyboardNavigationTarget?(\n target: DropTarget | null,\n direction: \"next\" | \"previous\",\n isValidDropTarget: (target: DropTarget) => boolean,\n ): DropTarget | null;\n getKeyboardPageNavigationTarget?(\n target: DropTarget | null,\n direction: \"next\" | \"previous\",\n isValidDropTarget: (target: DropTarget) => boolean,\n ): DropTarget | null;\n}\n\nexport interface CollectionRendererContextValue<T> {\n /** Render function used by collection parents to render each item node. */\n renderItem: (item: T) => JSX.Element;\n /** Whether collection rendering is currently virtualized. */\n isVirtualized?: boolean;\n /** Optional layout delegate used by virtualized renderers. */\n layoutDelegate?: unknown;\n /** Optional drop target delegate used by DnD-aware collection paths. */\n dropTargetDelegate?: CollectionDropTargetDelegate;\n /** Optional drop indicator renderer for DnD-aware collection paths. */\n renderDropIndicator?: (\n index: number,\n position: \"before\" | \"after\" | \"on\",\n ) => JSX.Element | undefined;\n}\n\nexport type CollectionEntry<T> = T | CollectionSection<T>;\n\nexport interface CollectionSection<T> {\n /** Optional unique key for the section wrapper. */\n key?: Key;\n /** Optional section header title. */\n title?: JSX.Element;\n /** Optional aria-label for section grouping. */\n \"aria-label\"?: string;\n /** Items contained in the section. */\n items: T[];\n}\n\nexport interface SectionProps extends SlotProps {\n /** Section contents, usually Header + Group/items. */\n children?: JSX.Element;\n /** Ref for the section element. */\n ref?: RefLike<HTMLDivElement>;\n /** The CSS className for the element. */\n class?: ClassNameOrFunction<CollectionPrimitiveRenderProps>;\n /** The inline style for the element. */\n style?: StyleOrFunction<CollectionPrimitiveRenderProps>;\n}\n\nexport interface HeaderProps extends SlotProps {\n /** Header contents, usually section title text. */\n children?: JSX.Element;\n /** Optional heading level when rendered as a heading role. */\n \"aria-level\"?: number;\n /** The CSS className for the element. */\n class?: ClassNameOrFunction<CollectionPrimitiveRenderProps>;\n /** The inline style for the element. */\n style?: StyleOrFunction<CollectionPrimitiveRenderProps>;\n}\n\nexport interface GroupProps extends SlotProps {\n /** Group contents, usually section items. */\n children?: JSX.Element;\n /** The CSS className for the element. */\n class?: ClassNameOrFunction<CollectionPrimitiveRenderProps>;\n /** The inline style for the element. */\n style?: StyleOrFunction<CollectionPrimitiveRenderProps>;\n}\n\ninterface SectionContextValue {\n name: string;\n render: (props: SectionProps, className?: string) => JSX.Element;\n}\n\nexport interface CollectionBranchProps<T> {\n collection: Iterable<T>;\n parent?: unknown;\n renderDropIndicator?: (target: {\n type: \"item\";\n key: Key;\n dropPosition: \"before\" | \"after\" | \"on\";\n }) => JSX.Element | undefined;\n}\n\nexport interface CollectionRootProps<T> {\n collection: Iterable<T>;\n persistedKeys?: Set<Key> | null;\n renderDropIndicator?: (target: {\n type: \"item\";\n key: Key;\n dropPosition: \"before\" | \"after\" | \"on\";\n }) => JSX.Element | undefined;\n}\n\nexport interface CollectionRenderer<T = unknown> {\n isVirtualized?: boolean;\n layoutDelegate?: unknown;\n dropTargetDelegate?: CollectionDropTargetDelegate;\n CollectionRoot: (props: CollectionRootProps<T>) => JSX.Element;\n CollectionBranch: (props: CollectionBranchProps<T>) => JSX.Element;\n}\n\nexport const CollectionRendererContext =\n createContext<CollectionRendererContextValue<unknown> | null>(null);\nexport const SelectableCollectionContext = CollectionRendererContext;\nexport const SectionContext = createContext<SectionContextValue | null>(null);\nexport const GroupContext = createContext<Partial<GroupProps> | null>(null);\nexport const HeaderContext = createContext<Partial<HeaderProps> | null>(null);\nexport const HeadingContext = createContext<Partial<HeaderProps> | null>(null);\n\nexport function useCollectionRenderer<T>(): CollectionRendererContextValue<T> | null {\n return useContext(CollectionRendererContext) as CollectionRendererContextValue<T> | null;\n}\n\nexport function isCollectionSection<T>(entry: CollectionEntry<T>): entry is CollectionSection<T> {\n return (\n typeof entry === \"object\" &&\n entry !== null &&\n Array.isArray((entry as CollectionSection<T>).items)\n );\n}\n\nexport function flattenCollectionEntries<T>(entries: CollectionEntry<T>[]): T[] {\n const flattened: T[] = [];\n for (const entry of entries) {\n if (isCollectionSection(entry)) flattened.push(...entry.items);\n else flattened.push(entry);\n }\n return flattened;\n}\n\nfunction renderCollectionItems<T>(\n collection: Iterable<T>,\n renderDropIndicator?: (target: {\n type: \"item\";\n key: Key;\n dropPosition: \"before\" | \"after\" | \"on\";\n }) => JSX.Element | undefined,\n): JSX.Element {\n const items = Array.from(collection);\n return (\n <For each={items}>\n {(item, index) => {\n const node = item as { type?: unknown; key?: Key };\n if (node.type === \"content\") {\n // Content rows are rendered by their owning item/section branch.\n return <></>;\n }\n const key = node.key ?? index();\n return (\n <>\n {renderDropIndicator?.({ type: \"item\", key, dropPosition: \"before\" })}\n {item as unknown as JSX.Element}\n {renderDropIndicator?.({ type: \"item\", key, dropPosition: \"after\" })}\n </>\n );\n }}\n </For>\n );\n}\n\nexport const DefaultCollectionRenderer: CollectionRenderer<unknown> = {\n CollectionRoot(props) {\n return renderCollectionItems(props.collection, props.renderDropIndicator);\n },\n CollectionBranch(props) {\n return renderCollectionItems(props.collection, props.renderDropIndicator);\n },\n};\n\nexport function CollectionBuilder<T>(props: AriaCollectionBuilderProps<T>): unknown {\n return AriaCollectionBuilder(props);\n}\n\nexport function Collection<T>(props: AriaCollectionProps<T>): unknown {\n return AriaCollection(props);\n}\n\nexport { createLeafComponent, createBranchComponent };\n\n/**\n * A semantic section wrapper for grouped collection content.\n */\nexport function Section(props: SectionProps): JSX.Element {\n const sectionContext = useContext(SectionContext);\n if (sectionContext) {\n const nodeEnv = (globalThis as { process?: { env?: { NODE_ENV?: string } } }).process?.env\n ?.NODE_ENV;\n if (nodeEnv !== \"production\") {\n console.warn(`<Section> is deprecated. Please use <${sectionContext.name}> instead.`);\n }\n return sectionContext.render(props, \"solidaria-Section\");\n }\n\n const [local, domProps] = splitProps(props, [\"children\", \"class\", \"style\", \"slot\", \"ref\"]);\n\n const renderValues = createMemo<CollectionPrimitiveRenderProps>(() => ({\n hasChildren: local.children != null,\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-Section\",\n },\n renderValues,\n );\n\n const filteredDomProps = createMemo(() => filterDOMProps(domProps, { global: true }));\n\n return (\n <div\n ref={(el) => assignRef(local.ref, el)}\n {...filteredDomProps()}\n class={renderProps.class()}\n style={renderProps.style()}\n slot={local.slot}\n data-section\n >\n {renderProps.renderChildren()}\n </div>\n );\n}\n\n/**\n * A header/title primitive for collection sections.\n */\nexport function Header(props: HeaderProps): JSX.Element {\n const [local, domProps] = splitProps(props, [\"children\", \"class\", \"style\", \"slot\"]);\n\n const renderValues = createMemo<CollectionPrimitiveRenderProps>(() => ({\n hasChildren: local.children != null,\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-Header\",\n },\n renderValues,\n );\n\n const filteredDomProps = createMemo(() => filterDOMProps(domProps, { global: true }));\n\n return (\n <div\n {...filteredDomProps()}\n role=\"heading\"\n class={renderProps.class()}\n style={renderProps.style()}\n slot={local.slot}\n data-header\n >\n {renderProps.renderChildren()}\n </div>\n );\n}\n\n/**\n * A grouping primitive for section item containers.\n */\nexport function Group(props: GroupProps): JSX.Element {\n const [local, domProps] = splitProps(props, [\"children\", \"class\", \"style\", \"slot\"]);\n\n const renderValues = createMemo<CollectionPrimitiveRenderProps>(() => ({\n hasChildren: local.children != null,\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-Group\",\n },\n renderValues,\n );\n\n const filteredDomProps = createMemo(() => filterDOMProps(domProps, { global: true }));\n\n return (\n <div\n {...filteredDomProps()}\n role=\"group\"\n class={renderProps.class()}\n style={renderProps.style()}\n slot={local.slot}\n data-group\n >\n {renderProps.renderChildren()}\n </div>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Collection.js","names":["<For each={items}>\n {(item, index) => {\n const node = item as { type?: unknown; key?: Key };\n if (node.type === \"content\") {\n // Content rows are rendered by their owning item/section branch.\n return <></>;\n }\n const key = node.key ?? index();\n const isLastInLevel = index() === lastRenderableIndex;\n return (\n <>\n {renderDropIndicator?.({ type: \"item\", key, dropPosition: \"before\" })}\n {item as unknown as JSX.Element}\n {isLastInLevel\n ? renderDropIndicator?.({ type: \"item\", key, dropPosition: \"after\" })\n : null}\n </>\n );\n }}\n </For>","each={items}","{renderDropIndicator?.({ type: \"item\", key, dropPosition: \"before\" })}","{isLastInLevel\n ? renderDropIndicator?.({ type: \"item\", key, dropPosition: \"after\" })\n : null}","{options.renderDropIndicator?.(options.index, \"before\")}","{options.children}","{options.index === options.lastIndex\n ? options.renderDropIndicator?.(options.index, \"after\")\n : null}","ref={(el) => assignRef(local.ref, el)}","{renderProps.renderChildren()}","<div\n ref={(el) => assignRef(local.ref, el)}\n {...filteredDomProps()}\n class={renderProps.class()}\n style={renderProps.style()}\n slot={local.slot}\n data-section\n >\n {renderProps.renderChildren()}\n </div>","role=\"heading\"","<div\n {...filteredDomProps()}\n role=\"heading\"\n class={renderProps.class()}\n style={renderProps.style()}\n slot={local.slot}\n data-header\n >\n {renderProps.renderChildren()}\n </div>","role=\"group\"","<div\n {...filteredDomProps()}\n role=\"group\"\n class={renderProps.class()}\n style={renderProps.style()}\n slot={local.slot}\n data-group\n >\n {renderProps.renderChildren()}\n </div>"],"sources":["../src/Collection.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/Collection.tsx\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria-components/src/Group.tsx\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria-components/src/Header.tsx\n\n/**\n * Collection composition primitives for solidaria-components.\n *\n * Foundational parity layer for React Spectrum-style composition:\n * Section / Header / Group. Based on:\n * - packages/react-aria-components/src/Collection.tsx\n * - packages/react-aria-components/src/Group.tsx\n * - packages/react-aria-components/src/Header.tsx\n */\n\nimport { createContext, createMemo, useContext, For } from \"solid-js\";\nimport type { JSX } from \"@solidjs/web\";\nimport type { Key } from \"@proyecto-viviana/solid-stately\";\nimport type { DragTypes, DropOperation, DropTarget } from \"@proyecto-viviana/solid-stately\";\nimport {\n Collection as AriaCollection,\n CollectionBuilder as AriaCollectionBuilder,\n createLeafComponent,\n createBranchComponent,\n type CollectionProps as AriaCollectionProps,\n type CollectionBuilderProps as AriaCollectionBuilderProps,\n} from \"@proyecto-viviana/solidaria\";\nimport { splitProps } from \"@proyecto-viviana/solidaria/utils\";\nimport {\n type ClassNameOrFunction,\n type StyleOrFunction,\n type SlotProps,\n useRenderProps,\n filterDOMProps,\n} from \"./utils\";\n\nexport interface CollectionPrimitiveRenderProps {\n /** Whether the primitive has visible children content. */\n hasChildren: boolean;\n}\n\ntype RefLike<T> = ((el: T) => void) | { current?: T | null } | undefined;\n\nfunction assignRef<T>(ref: RefLike<T>, el: T): void {\n if (!ref) return;\n if (typeof ref === \"function\") ref(el);\n else ref.current = el;\n}\n\nexport interface CollectionDropTargetDelegate {\n getDropTargetFromPoint(\n x: number,\n y: number,\n isValidDropTarget: (target: DropTarget) => boolean,\n ): DropTarget | null;\n getDropOperation(\n target: DropTarget,\n types: DragTypes,\n allowedOperations: DropOperation[],\n ): DropOperation;\n getKeyboardNavigationTarget?(\n target: DropTarget | null,\n direction: \"next\" | \"previous\",\n isValidDropTarget: (target: DropTarget) => boolean,\n ): DropTarget | null;\n getKeyboardPageNavigationTarget?(\n target: DropTarget | null,\n direction: \"next\" | \"previous\",\n isValidDropTarget: (target: DropTarget) => boolean,\n ): DropTarget | null;\n}\n\nexport interface CollectionRendererContextValue<T> {\n /** Render function used by collection parents to render each item node. */\n renderItem: (item: T) => JSX.Element;\n /** Whether collection rendering is currently virtualized. */\n isVirtualized?: boolean;\n /** Optional layout delegate used by virtualized renderers. */\n layoutDelegate?: unknown;\n /** Optional drop target delegate used by DnD-aware collection paths. */\n dropTargetDelegate?: CollectionDropTargetDelegate;\n /** Optional drop indicator renderer for DnD-aware collection paths. */\n renderDropIndicator?: (\n index: number,\n position: \"before\" | \"after\" | \"on\",\n ) => JSX.Element | undefined;\n /**\n * Root renderer for collection items. RAC `CollectionRenderer.CollectionRoot`\n * (`Collection.tsx:196`). Virtualizer replaces this with a scroll-attached\n * content wrapper (`react-aria-components/src/Virtualizer.tsx:99-151`).\n */\n CollectionRoot?: (props: CollectionRootProps<T>) => JSX.Element;\n /** Branch renderer for nested collection items. RAC `CollectionBranch`. */\n CollectionBranch?: (props: CollectionBranchProps<T>) => JSX.Element;\n}\n\nexport type CollectionEntry<T> = T | CollectionSection<T>;\n\nexport interface CollectionSection<T> {\n /** Optional unique key for the section wrapper. */\n key?: Key;\n /** Optional section header title. */\n title?: JSX.Element;\n /** Optional aria-label for section grouping. */\n \"aria-label\"?: string;\n /** Items contained in the section. */\n items: T[];\n}\n\nexport interface SectionProps extends SlotProps {\n /** Section contents, usually Header + Group/items. */\n children?: JSX.Element;\n /** Ref for the section element. */\n ref?: RefLike<HTMLDivElement>;\n /** The CSS className for the element. */\n class?: ClassNameOrFunction<CollectionPrimitiveRenderProps>;\n /** The inline style for the element. */\n style?: StyleOrFunction<CollectionPrimitiveRenderProps>;\n}\n\nexport interface HeaderProps extends SlotProps {\n /** Header contents, usually section title text. */\n children?: JSX.Element;\n /** Optional heading level when rendered as a heading role. */\n \"aria-level\"?: number;\n /** The CSS className for the element. */\n class?: ClassNameOrFunction<CollectionPrimitiveRenderProps>;\n /** The inline style for the element. */\n style?: StyleOrFunction<CollectionPrimitiveRenderProps>;\n}\n\nexport interface GroupProps extends SlotProps {\n /** Group contents, usually section items. */\n children?: JSX.Element;\n /** The CSS className for the element. */\n class?: ClassNameOrFunction<CollectionPrimitiveRenderProps>;\n /** The inline style for the element. */\n style?: StyleOrFunction<CollectionPrimitiveRenderProps>;\n}\n\ninterface SectionContextValue {\n name: string;\n render: (props: SectionProps, className?: string) => JSX.Element;\n}\n\nexport interface CollectionBranchProps<T> {\n collection: Iterable<T>;\n parent?: unknown;\n renderDropIndicator?: (target: {\n type: \"item\";\n key: Key;\n dropPosition: \"before\" | \"after\" | \"on\";\n }) => JSX.Element | undefined;\n}\n\nexport interface CollectionRootProps<T> {\n collection: Iterable<T>;\n persistedKeys?: Set<Key> | null;\n /**\n * The collection element that scrolls. RAC `CollectionRootProps.scrollRef`\n * (`Collection.tsx:183`).\n */\n scrollRef?: () => HTMLElement | null | undefined;\n renderDropIndicator?: (target: {\n type: \"item\";\n key: Key;\n dropPosition: \"before\" | \"after\" | \"on\";\n }) => JSX.Element | undefined;\n /**\n * Rendered collection items. RAC CollectionRoot renders `node.render()` from\n * the collection; Solid collections pass the already-composed item tree.\n */\n children?: JSX.Element;\n}\n\nexport interface CollectionRenderer<T = unknown> {\n isVirtualized?: boolean;\n layoutDelegate?: unknown;\n dropTargetDelegate?: CollectionDropTargetDelegate;\n CollectionRoot: (props: CollectionRootProps<T>) => JSX.Element;\n CollectionBranch: (props: CollectionBranchProps<T>) => JSX.Element;\n}\n\nexport const CollectionRendererContext =\n createContext<CollectionRendererContextValue<unknown> | null>(null);\nexport const SelectableCollectionContext = CollectionRendererContext;\nexport const SectionContext = createContext<SectionContextValue | null>(null);\nexport const GroupContext = createContext<Partial<GroupProps> | null>(null);\nexport const HeaderContext = createContext<Partial<HeaderProps> | null>(null);\nexport const HeadingContext = createContext<Partial<HeaderProps> | null>(null);\n\nexport function useCollectionRenderer<T>(): CollectionRendererContextValue<T> | null {\n return useContext(CollectionRendererContext) as CollectionRendererContextValue<T> | null;\n}\n\n/** RAC collections always render `CollectionRoot` from the renderer context. */\nexport function useCollectionRoot<T>(): (props: CollectionRootProps<T>) => JSX.Element {\n const renderer = useCollectionRenderer<T>();\n return renderer?.CollectionRoot ?? DefaultCollectionRenderer.CollectionRoot;\n}\n\nexport function isCollectionSection<T>(entry: CollectionEntry<T>): entry is CollectionSection<T> {\n return (\n typeof entry === \"object\" &&\n entry !== null &&\n Array.isArray((entry as CollectionSection<T>).items)\n );\n}\n\nexport function flattenCollectionEntries<T>(entries: CollectionEntry<T>[]): T[] {\n const flattened: T[] = [];\n for (const entry of entries) {\n if (isCollectionSection(entry)) flattened.push(...entry.items);\n else flattened.push(entry);\n }\n return flattened;\n}\n\nfunction renderCollectionItems<T>(\n collection: Iterable<T>,\n renderDropIndicator?: (target: {\n type: \"item\";\n key: Key;\n dropPosition: \"before\" | \"after\" | \"on\";\n }) => JSX.Element | undefined,\n): JSX.Element {\n const items = Array.from(collection);\n let lastRenderableIndex = -1;\n for (let i = 0; i < items.length; i++) {\n if ((items[i] as { type?: unknown }).type !== \"content\") {\n lastRenderableIndex = i;\n }\n }\n return (\n <For each={items}>\n {(item, index) => {\n const node = item as { type?: unknown; key?: Key };\n if (node.type === \"content\") {\n // Content rows are rendered by their owning item/section branch.\n return <></>;\n }\n const key = node.key ?? index();\n const isLastInLevel = index() === lastRenderableIndex;\n return (\n <>\n {renderDropIndicator?.({ type: \"item\", key, dropPosition: \"before\" })}\n {item as unknown as JSX.Element}\n {isLastInLevel\n ? renderDropIndicator?.({ type: \"item\", key, dropPosition: \"after\" })\n : null}\n </>\n );\n }}\n </For>\n );\n}\n\nexport const DefaultCollectionRenderer: CollectionRenderer<unknown> = {\n CollectionRoot(props) {\n if (props.children != null) return props.children;\n return renderCollectionItems(props.collection, props.renderDropIndicator);\n },\n CollectionBranch(props) {\n return renderCollectionItems(props.collection, props.renderDropIndicator);\n },\n};\n\nexport function CollectionBuilder<T>(props: AriaCollectionBuilderProps<T>): unknown {\n return AriaCollectionBuilder(props);\n}\n\nexport function Collection<T>(props: AriaCollectionProps<T>): unknown {\n return AriaCollection(props);\n}\n\nexport { createLeafComponent, createBranchComponent };\n\n/**\n * RAC Collection renders `before` + item for every item, and `after` only when\n * the next item in the same level is null (`renderAfterDropIndicators`). The\n * `\"on\"` position is not a collection-level slot. Index-based hosts (ListBox,\n * GridList, Menu, Table) use this helper so they do not fork the geometry.\n */\nexport function renderCollectionDropSlots(options: {\n index: number;\n lastIndex: number;\n renderDropIndicator?: (\n index: number,\n position: \"before\" | \"after\" | \"on\",\n ) => JSX.Element | undefined;\n children: JSX.Element;\n}): JSX.Element {\n return (\n <>\n {options.renderDropIndicator?.(options.index, \"before\")}\n {options.children}\n {options.index === options.lastIndex\n ? options.renderDropIndicator?.(options.index, \"after\")\n : null}\n </>\n );\n}\n\n/**\n * A semantic section wrapper for grouped collection content.\n */\nexport function Section(props: SectionProps): JSX.Element {\n const sectionContext = useContext(SectionContext);\n if (sectionContext) {\n const nodeEnv = (globalThis as { process?: { env?: { NODE_ENV?: string } } }).process?.env\n ?.NODE_ENV;\n if (nodeEnv !== \"production\") {\n console.warn(`<Section> is deprecated. Please use <${sectionContext.name}> instead.`);\n }\n return sectionContext.render(props, \"solidaria-Section\");\n }\n\n const [local, domProps] = splitProps(props, [\"children\", \"class\", \"style\", \"slot\", \"ref\"]);\n\n const renderValues = createMemo<CollectionPrimitiveRenderProps>(() => ({\n hasChildren: local.children != null,\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-Section\",\n },\n renderValues,\n );\n\n const filteredDomProps = createMemo(() => filterDOMProps(domProps, { global: true }));\n\n return (\n <div\n ref={(el) => assignRef(local.ref, el)}\n {...filteredDomProps()}\n class={renderProps.class()}\n style={renderProps.style()}\n slot={local.slot}\n data-section\n >\n {renderProps.renderChildren()}\n </div>\n );\n}\n\n/**\n * A header/title primitive for collection sections.\n */\nexport function Header(props: HeaderProps): JSX.Element {\n const [local, domProps] = splitProps(props, [\"children\", \"class\", \"style\", \"slot\"]);\n\n const renderValues = createMemo<CollectionPrimitiveRenderProps>(() => ({\n hasChildren: local.children != null,\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-Header\",\n },\n renderValues,\n );\n\n const filteredDomProps = createMemo(() => filterDOMProps(domProps, { global: true }));\n\n return (\n <div\n {...filteredDomProps()}\n role=\"heading\"\n class={renderProps.class()}\n style={renderProps.style()}\n slot={local.slot}\n data-header\n >\n {renderProps.renderChildren()}\n </div>\n );\n}\n\n/**\n * A grouping primitive for section item containers.\n */\nexport function Group(props: GroupProps): JSX.Element {\n const [local, domProps] = splitProps(props, [\"children\", \"class\", \"style\", \"slot\"]);\n\n const renderValues = createMemo<CollectionPrimitiveRenderProps>(() => ({\n hasChildren: local.children != null,\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-Group\",\n },\n renderValues,\n );\n\n const filteredDomProps = createMemo(() => filterDOMProps(domProps, { global: true }));\n\n return (\n <div\n {...filteredDomProps()}\n role=\"group\"\n class={renderProps.class()}\n style={renderProps.style()}\n slot={local.slot}\n data-group\n >\n {renderProps.renderChildren()}\n </div>\n );\n}\n"],"mappings":"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"}
@@ -1,14 +1,32 @@
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/Collection.tsx
13
+ // Ported to SolidJS for Proyecto Viviana; based on packages/react-aria-components/src/Group.tsx
14
+ // Ported to SolidJS for Proyecto Viviana; based on packages/react-aria-components/src/Header.tsx
1
15
  import { filterDOMProps, useRenderProps } from "./utils.jsx";
2
- import { For, createContext, createMemo, splitProps, useContext } from "solid-js";
16
+ import { For, createContext, createMemo, useContext } from "solid-js";
3
17
  import { Collection as Collection$1, CollectionBuilder as CollectionBuilder$1, createBranchComponent, createLeafComponent } from "@proyecto-viviana/solidaria";
18
+ import { splitProps } from "@proyecto-viviana/solidaria/utils";
4
19
  //#region src/Collection.tsx
5
20
  /**
6
21
  * Collection composition primitives for solidaria-components.
7
22
  *
8
23
  * Foundational parity layer for React Spectrum-style composition:
9
- * Section / Header / Group.
24
+ * Section / Header / Group. Based on:
25
+ * - packages/react-aria-components/src/Collection.tsx
26
+ * - packages/react-aria-components/src/Group.tsx
27
+ * - packages/react-aria-components/src/Header.tsx
10
28
  */
11
- function assignRef(ref, el) {
29
+ function assignRef$1(ref, el) {
12
30
  if (!ref) return;
13
31
  if (typeof ref === "function") ref(el);
14
32
  else ref.current = el;
@@ -22,6 +40,10 @@ const HeadingContext = createContext(null);
22
40
  function useCollectionRenderer() {
23
41
  return useContext(CollectionRendererContext);
24
42
  }
43
+ /** RAC collections always render `CollectionRoot` from the renderer context. */
44
+ function useCollectionRoot() {
45
+ return useCollectionRenderer()?.CollectionRoot ?? DefaultCollectionRenderer.CollectionRoot;
46
+ }
25
47
  function isCollectionSection(entry) {
26
48
  return typeof entry === "object" && entry !== null && Array.isArray(entry.items);
27
49
  }
@@ -33,11 +55,14 @@ function flattenCollectionEntries(entries) {
33
55
  }
34
56
  function renderCollectionItems(collection, renderDropIndicator) {
35
57
  const items = Array.from(collection);
58
+ let lastRenderableIndex = -1;
59
+ for (let i = 0; i < items.length; i++) if (items[i].type !== "content") lastRenderableIndex = i;
36
60
  return <For each={items}>
37
61
  {(item, index) => {
38
62
  const node = item;
39
63
  if (node.type === "content") return <></>;
40
64
  const key = node.key ?? index();
65
+ const isLastInLevel = index() === lastRenderableIndex;
41
66
  return <>
42
67
  {renderDropIndicator?.({
43
68
  type: "item",
@@ -45,17 +70,18 @@ function renderCollectionItems(collection, renderDropIndicator) {
45
70
  dropPosition: "before"
46
71
  })}
47
72
  {item}
48
- {renderDropIndicator?.({
73
+ {isLastInLevel ? renderDropIndicator?.({
49
74
  type: "item",
50
75
  key,
51
76
  dropPosition: "after"
52
- })}
77
+ }) : null}
53
78
  </>;
54
79
  }}
55
80
  </For>;
56
81
  }
57
82
  const DefaultCollectionRenderer = {
58
83
  CollectionRoot(props) {
84
+ if (props.children != null) return props.children;
59
85
  return renderCollectionItems(props.collection, props.renderDropIndicator);
60
86
  },
61
87
  CollectionBranch(props) {
@@ -69,6 +95,19 @@ function Collection(props) {
69
95
  return Collection$1(props);
70
96
  }
71
97
  /**
98
+ * RAC Collection renders `before` + item for every item, and `after` only when
99
+ * the next item in the same level is null (`renderAfterDropIndicators`). The
100
+ * `"on"` position is not a collection-level slot. Index-based hosts (ListBox,
101
+ * GridList, Menu, Table) use this helper so they do not fork the geometry.
102
+ */
103
+ function renderCollectionDropSlots(options) {
104
+ return <>
105
+ {options.renderDropIndicator?.(options.index, "before")}
106
+ {options.children}
107
+ {options.index === options.lastIndex ? options.renderDropIndicator?.(options.index, "after") : null}
108
+ </>;
109
+ }
110
+ /**
72
111
  * A semantic section wrapper for grouped collection content.
73
112
  */
74
113
  function Section(props) {
@@ -94,7 +133,7 @@ function Section(props) {
94
133
  defaultClassName: "solidaria-Section"
95
134
  }, renderValues);
96
135
  const filteredDomProps = createMemo(() => filterDOMProps(domProps, { global: true }));
97
- return <div ref={(el) => assignRef(local.ref, el)} {...filteredDomProps()} class={renderProps.class()} style={renderProps.style()} slot={local.slot} data-section>
136
+ return <div ref={(el) => assignRef$1(local.ref, el)} {...filteredDomProps()} class={renderProps.class()} style={renderProps.style()} slot={local.slot} data-section>
98
137
  {renderProps.renderChildren()}
99
138
  </div>;
100
139
  }
@@ -147,6 +186,6 @@ function Group(props) {
147
186
  </div>;
148
187
  }
149
188
  //#endregion
150
- export { Collection, CollectionBuilder, CollectionRendererContext, DefaultCollectionRenderer, Group, GroupContext, Header, HeaderContext, HeadingContext, Section, SectionContext, SelectableCollectionContext, createBranchComponent, createLeafComponent, flattenCollectionEntries, isCollectionSection, useCollectionRenderer };
189
+ export { Collection, CollectionBuilder, CollectionRendererContext, DefaultCollectionRenderer, Group, GroupContext, Header, HeaderContext, HeadingContext, Section, SectionContext, SelectableCollectionContext, createBranchComponent, createLeafComponent, flattenCollectionEntries, isCollectionSection, renderCollectionDropSlots, useCollectionRenderer, useCollectionRoot };
151
190
 
152
191
  //# sourceMappingURL=Collection.jsx.map