@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
- * Pressable component for solidaria-components
3
- *
4
- * A render-prop component that wraps createPress + createFocusable
5
- * to make an element pressable. Port of React Aria's Pressable.
6
- */
7
- import { type JSX } from "solid-js";
1
+ import type { JSX } from "@solidjs/web";
8
2
  import { type CreatePressProps } from "@proyecto-viviana/solidaria";
9
3
  export interface PressableProps extends CreatePressProps {
10
4
  /** A single child element to make pressable. */
@@ -19,7 +13,7 @@ export interface PressableProps extends CreatePressProps {
19
13
  * @example
20
14
  * ```tsx
21
15
  * <Pressable onPress={() => console.log('pressed')}>
22
- * <div role="button" tabIndex={0}>Click me</div>
16
+ * <div role="button" tabindex={0}>Click me</div>
23
17
  * </Pressable>
24
18
  * ```
25
19
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Pressable.d.ts","sourceRoot":"","sources":["../src/Pressable.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,KAAK,GAAG,EAKT,MAAM,UAAU,CAAC;AAClB,OAAO,EAGL,KAAK,gBAAgB,EAEtB,MAAM,6BAA6B,CAAC;AAErC,MAAM,WAAW,cAAe,SAAQ,gBAAgB;IACtD,gDAAgD;IAChD,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;IACtB,oBAAoB;IACpB,GAAG,CAAC,EAAE,WAAW,GAAG,CAAC,CAAC,EAAE,EAAE,WAAW,KAAK,IAAI,CAAC,CAAC;CACjD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,GAAG,CAAC,OAAO,CAoE5D"}
1
+ {"version":3,"file":"Pressable.d.ts","sourceRoot":"","sources":["../src/Pressable.tsx"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAExC,OAAO,EAGL,KAAK,gBAAgB,EAEtB,MAAM,6BAA6B,CAAC;AAErC,MAAM,WAAW,cAAe,SAAQ,gBAAgB;IACtD,gDAAgD;IAChD,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;IACtB,oBAAoB;IACpB,GAAG,CAAC,EAAE,WAAW,GAAG,CAAC,CAAC,EAAE,EAAE,WAAW,KAAK,IAAI,CAAC,CAAC;CACjD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,GAAG,CAAC,OAAO,CA0E5D"}
package/dist/Pressable.js CHANGED
@@ -1,12 +1,25 @@
1
- import { memo } from "solid-js/web";
2
- import { children, createEffect, onCleanup, splitProps } from "solid-js";
1
+ /*
2
+ * Copyright 2020 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/interactions/Pressable.tsx
13
+ import { memo } from "@solidjs/web";
14
+ import { children, createTrackedEffect } from "solid-js";
3
15
  import { createFocusable, createPress } from "@proyecto-viviana/solidaria";
16
+ import { splitProps } from "@proyecto-viviana/solidaria/utils";
4
17
  //#region src/Pressable.tsx
5
18
  /**
6
19
  * Pressable component for solidaria-components
7
20
  *
8
21
  * A render-prop component that wraps createPress + createFocusable
9
- * to make an element pressable. Port of React Aria's Pressable.
22
+ * to make an element pressable.
10
23
  */
11
24
  /**
12
25
  * Makes its child element pressable and focusable.
@@ -15,7 +28,7 @@ import { createFocusable, createPress } from "@proyecto-viviana/solidaria";
15
28
  * @example
16
29
  * ```tsx
17
30
  * <Pressable onPress={() => console.log('pressed')}>
18
- * <div role="button" tabIndex={0}>Click me</div>
31
+ * <div role="button" tabindex={0}>Click me</div>
19
32
  * </Pressable>
20
33
  * ```
21
34
  */
@@ -25,7 +38,8 @@ function Pressable(props) {
25
38
  const { pressProps: domPressProps } = createPress(pressProps);
26
39
  const { focusableProps: domFocusableProps } = createFocusable(pressProps, () => ref);
27
40
  const resolved = children(() => local.children);
28
- createEffect(() => {
41
+ createTrackedEffect(() => {
42
+ const _s2Cleanups = [];
29
43
  const child = resolved();
30
44
  if (child instanceof HTMLElement) {
31
45
  ref = child;
@@ -56,10 +70,13 @@ function Pressable(props) {
56
70
  else child.setAttribute(key, String(value));
57
71
  }
58
72
  }
59
- onCleanup(() => {
73
+ _s2Cleanups.push(() => {
60
74
  for (const [eventName, listener] of listeners) child.removeEventListener(eventName, listener);
61
75
  });
62
76
  }
77
+ return () => {
78
+ for (const c of _s2Cleanups) c();
79
+ };
63
80
  });
64
81
  return memo(resolved);
65
82
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Pressable.js","names":["JSX","children","resolveChildren","createEffect","onCleanup","splitProps","createPress","createFocusable","CreatePressProps","CreateFocusableProps","PressableProps","Element","ref","HTMLElement","el","Pressable","props","local","pressProps","domPressProps","focusableProps","domFocusableProps","resolved","child","allProps","listeners","Array","EventListener","key","handler","Object","entries","startsWith","eventName","slice","toLowerCase","listener","addEventListener","push","value","hasAttribute","removeAttribute","tabIndex","Number","setAttribute","String","removeEventListener","_$memo"],"sources":["../src/Pressable.tsx"],"sourcesContent":["/**\n * Pressable component for solidaria-components\n *\n * A render-prop component that wraps createPress + createFocusable\n * to make an element pressable. Port of React Aria's Pressable.\n */\n\nimport {\n type JSX,\n children as resolveChildren,\n createEffect,\n onCleanup,\n splitProps,\n} from \"solid-js\";\nimport {\n createPress,\n createFocusable,\n type CreatePressProps,\n type CreateFocusableProps,\n} from \"@proyecto-viviana/solidaria\";\n\nexport interface PressableProps extends CreatePressProps {\n /** A single child element to make pressable. */\n children: JSX.Element;\n /** Ref callback. */\n ref?: HTMLElement | ((el: HTMLElement) => void);\n}\n\n/**\n * Makes its child element pressable and focusable.\n * Combines createPress and createFocusable for full interaction support.\n *\n * @example\n * ```tsx\n * <Pressable onPress={() => console.log('pressed')}>\n * <div role=\"button\" tabIndex={0}>Click me</div>\n * </Pressable>\n * ```\n */\nexport function Pressable(props: PressableProps): JSX.Element {\n const [local, pressProps] = splitProps(props, [\"children\", \"ref\"]);\n\n let ref!: HTMLElement;\n const { pressProps: domPressProps } = createPress(pressProps);\n const { focusableProps: domFocusableProps } = createFocusable(\n pressProps as CreateFocusableProps,\n () => ref,\n );\n\n const resolved = resolveChildren(() => local.children);\n\n createEffect(() => {\n const child = resolved() as HTMLElement;\n if (child instanceof HTMLElement) {\n ref = child;\n if (typeof local.ref === \"function\") {\n local.ref(child);\n }\n\n // Apply press props\n const allProps = { ...domFocusableProps, ...domPressProps };\n const listeners: Array<[string, EventListener]> = [];\n for (const [key, handler] of Object.entries(allProps)) {\n if (key.startsWith(\"on\") && typeof handler === \"function\") {\n const eventName = key.slice(2).toLowerCase();\n const listener = handler as EventListener;\n child.addEventListener(eventName, listener);\n listeners.push([eventName, listener]);\n }\n }\n\n // Apply non-event press/focusable props (e.g. tabIndex/data attrs).\n // Keep explicit child tabIndex to mirror mergeProps(child.props precedence).\n for (const [key, value] of Object.entries(allProps)) {\n if (key === \"ref\" || (key.startsWith(\"on\") && typeof value === \"function\")) continue;\n\n if (key === \"tabIndex\") {\n if (child.hasAttribute(\"tabindex\")) continue;\n if (value == null || value === false) {\n child.removeAttribute(\"tabindex\");\n } else {\n child.tabIndex = Number(value);\n }\n continue;\n }\n\n if (key.startsWith(\"aria-\") || key.startsWith(\"data-\") || key === \"id\" || key === \"role\") {\n if (child.hasAttribute(key)) continue;\n if (value == null || value === false) {\n child.removeAttribute(key);\n } else if (value === true) {\n child.setAttribute(key, \"\");\n } else {\n child.setAttribute(key, String(value));\n }\n }\n }\n\n onCleanup(() => {\n for (const [eventName, listener] of listeners) {\n child.removeEventListener(eventName, listener);\n }\n });\n }\n });\n\n return <>{resolved()}</>;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAuCA,SAAgBe,UAAUC,OAAoC;CAC5D,MAAM,CAACC,OAAOC,cAAcb,WAAWW,OAAO,CAAC,YAAY,KAAK,CAAC;CAEjE,IAAIJ;CACJ,MAAM,EAAEM,YAAYC,kBAAkBb,YAAYY,UAAU;CAC5D,MAAM,EAAEE,gBAAgBC,sBAAsBd,gBAC5CW,kBACMN,GACR;CAEA,MAAMU,WAAWpB,eAAsBe,MAAMhB,QAAQ;CAErDE,mBAAmB;EACjB,MAAMoB,QAAQD,SAAS;EACvB,IAAIC,iBAAiBV,aAAa;GAChCD,MAAMW;GACN,IAAI,OAAON,MAAML,QAAQ,YACvBK,MAAML,IAAIW,KAAK;GAIjB,MAAMC,WAAW;IAAE,GAAGH;IAAmB,GAAGF;GAAc;GAC1D,MAAMM,YAA4C,CAAA;GAClD,KAAK,MAAM,CAACG,KAAKC,YAAYC,OAAOC,QAAQP,QAAQ,GAClD,IAAII,IAAII,WAAW,IAAI,KAAK,OAAOH,YAAY,YAAY;IACzD,MAAMI,YAAYL,IAAIM,MAAM,CAAC,CAAC,CAACC,YAAY;IAC3C,MAAMC,WAAWP;IACjBN,MAAMc,iBAAiBJ,WAAWG,QAAQ;IAC1CX,UAAUa,KAAK,CAACL,WAAWG,QAAQ,CAAC;GACtC;GAKF,KAAK,MAAM,CAACR,KAAKW,UAAUT,OAAOC,QAAQP,QAAQ,GAAG;IACnD,IAAII,QAAQ,SAAUA,IAAII,WAAW,IAAI,KAAK,OAAOO,UAAU,YAAa;IAE5E,IAAIX,QAAQ,YAAY;KACtB,IAAIL,MAAMiB,aAAa,UAAU,GAAG;KACpC,IAAID,SAAS,QAAQA,UAAU,OAC7BhB,MAAMkB,gBAAgB,UAAU;UAEhClB,MAAMmB,WAAWC,OAAOJ,KAAK;KAE/B;IACF;IAEA,IAAIX,IAAII,WAAW,OAAO,KAAKJ,IAAII,WAAW,OAAO,KAAKJ,QAAQ,QAAQA,QAAQ,QAAQ;KACxF,IAAIL,MAAMiB,aAAaZ,GAAG,GAAG;KAC7B,IAAIW,SAAS,QAAQA,UAAU,OAC7BhB,MAAMkB,gBAAgBb,GAAG;UACpB,IAAIW,UAAU,MACnBhB,MAAMqB,aAAahB,KAAK,EAAE;UAE1BL,MAAMqB,aAAahB,KAAKiB,OAAON,KAAK,CAAC;IAEzC;GACF;GAEAnC,gBAAgB;IACd,KAAK,MAAM,CAAC6B,WAAWG,aAAaX,WAClCF,MAAMuB,oBAAoBb,WAAWG,QAAQ;GAEjD,CAAC;EACH;CACF,CAAC;CAED,OAAAW,KAAUzB,QAAQ;AACpB"}
1
+ {"version":3,"file":"Pressable.js","names":["{resolved()}"],"sources":["../src/Pressable.tsx"],"sourcesContent":["/*\n * Copyright 2020 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/interactions/Pressable.tsx\n\n/**\n * Pressable component for solidaria-components\n *\n * A render-prop component that wraps createPress + createFocusable\n * to make an element pressable.\n */\n\nimport {\n children as resolveChildren,\n createEffect,\n onCleanup,\n createTrackedEffect,\n} from \"solid-js\";\nimport type { JSX } from \"@solidjs/web\";\nimport { splitProps } from \"@proyecto-viviana/solidaria/utils\";\nimport {\n createPress,\n createFocusable,\n type CreatePressProps,\n type CreateFocusableProps,\n} from \"@proyecto-viviana/solidaria\";\n\nexport interface PressableProps extends CreatePressProps {\n /** A single child element to make pressable. */\n children: JSX.Element;\n /** Ref callback. */\n ref?: HTMLElement | ((el: HTMLElement) => void);\n}\n\n/**\n * Makes its child element pressable and focusable.\n * Combines createPress and createFocusable for full interaction support.\n *\n * @example\n * ```tsx\n * <Pressable onPress={() => console.log('pressed')}>\n * <div role=\"button\" tabindex={0}>Click me</div>\n * </Pressable>\n * ```\n */\nexport function Pressable(props: PressableProps): JSX.Element {\n const [local, pressProps] = splitProps(props, [\"children\", \"ref\"]);\n\n let ref!: HTMLElement;\n const { pressProps: domPressProps } = createPress(pressProps);\n const { focusableProps: domFocusableProps } = createFocusable(\n pressProps as CreateFocusableProps,\n () => ref,\n );\n\n const resolved = resolveChildren(() => local.children);\n\n createTrackedEffect(() => {\n const _s2Cleanups: Array<() => void> = [];\n\n const child = resolved() as HTMLElement;\n if (child instanceof HTMLElement) {\n ref = child;\n if (typeof local.ref === \"function\") {\n local.ref(child);\n }\n\n // Apply press props\n const allProps = { ...domFocusableProps, ...domPressProps };\n const listeners: Array<[string, EventListener]> = [];\n for (const [key, handler] of Object.entries(allProps)) {\n if (key.startsWith(\"on\") && typeof handler === \"function\") {\n const eventName = key.slice(2).toLowerCase();\n const listener = handler as EventListener;\n child.addEventListener(eventName, listener);\n listeners.push([eventName, listener]);\n }\n }\n\n // Apply non-event press/focusable props (e.g. tabIndex/data attrs).\n // Keep explicit child tabIndex to mirror mergeProps(child.props precedence).\n for (const [key, value] of Object.entries(allProps)) {\n if (key === \"ref\" || (key.startsWith(\"on\") && typeof value === \"function\")) continue;\n\n if (key === \"tabIndex\") {\n if (child.hasAttribute(\"tabindex\")) continue;\n if (value == null || value === false) {\n child.removeAttribute(\"tabindex\");\n } else {\n child.tabIndex = Number(value);\n }\n continue;\n }\n\n if (key.startsWith(\"aria-\") || key.startsWith(\"data-\") || key === \"id\" || key === \"role\") {\n if (child.hasAttribute(key)) continue;\n if (value == null || value === false) {\n child.removeAttribute(key);\n } else if (value === true) {\n child.setAttribute(key, \"\");\n } else {\n child.setAttribute(key, String(value));\n }\n }\n }\n\n _s2Cleanups.push(() => {\n for (const [eventName, listener] of listeners) {\n child.removeEventListener(eventName, listener);\n }\n });\n }\n\n return () => {\n for (const c of _s2Cleanups) c();\n };\n });\n\n return <>{resolved()}</>;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsDA,SAAgB,UAAU,OAAoC;CAC5D,MAAM,CAAC,OAAO,cAAc,WAAW,OAAO,CAAC,YAAY,KAAK,CAAC;CAEjE,IAAI;CACJ,MAAM,EAAE,YAAY,kBAAkB,YAAY,UAAU;CAC5D,MAAM,EAAE,gBAAgB,sBAAsB,gBAC5C,kBACM,GACR;CAEA,MAAM,WAAW,eAAsB,MAAM,QAAQ;CAErD,0BAA0B;EACxB,MAAM,cAAiC,CAAC;EAExC,MAAM,QAAQ,SAAS;EACvB,IAAI,iBAAiB,aAAa;GAChC,MAAM;GACN,IAAI,OAAO,MAAM,QAAQ,YACvB,MAAM,IAAI,KAAK;GAIjB,MAAM,WAAW;IAAE,GAAG;IAAmB,GAAG;GAAc;GAC1D,MAAM,YAA4C,CAAC;GACnD,KAAK,MAAM,CAAC,KAAK,YAAY,OAAO,QAAQ,QAAQ,GAClD,IAAI,IAAI,WAAW,IAAI,KAAK,OAAO,YAAY,YAAY;IACzD,MAAM,YAAY,IAAI,MAAM,CAAC,CAAC,CAAC,YAAY;IAC3C,MAAM,WAAW;IACjB,MAAM,iBAAiB,WAAW,QAAQ;IAC1C,UAAU,KAAK,CAAC,WAAW,QAAQ,CAAC;GACtC;GAKF,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,QAAQ,GAAG;IACnD,IAAI,QAAQ,SAAU,IAAI,WAAW,IAAI,KAAK,OAAO,UAAU,YAAa;IAE5E,IAAI,QAAQ,YAAY;KACtB,IAAI,MAAM,aAAa,UAAU,GAAG;KACpC,IAAI,SAAS,QAAQ,UAAU,OAC7B,MAAM,gBAAgB,UAAU;UAEhC,MAAM,WAAW,OAAO,KAAK;KAE/B;IACF;IAEA,IAAI,IAAI,WAAW,OAAO,KAAK,IAAI,WAAW,OAAO,KAAK,QAAQ,QAAQ,QAAQ,QAAQ;KACxF,IAAI,MAAM,aAAa,GAAG,GAAG;KAC7B,IAAI,SAAS,QAAQ,UAAU,OAC7B,MAAM,gBAAgB,GAAG;UACpB,IAAI,UAAU,MACnB,MAAM,aAAa,KAAK,EAAE;UAE1B,MAAM,aAAa,KAAK,OAAO,KAAK,CAAC;IAEzC;GACF;GAEA,YAAY,WAAW;IACrB,KAAK,MAAM,CAAC,WAAW,aAAa,WAClC,MAAM,oBAAoB,WAAW,QAAQ;GAEjD,CAAC;EACH;EAEA,aAAa;GACX,KAAK,MAAM,KAAK,aAAa,EAAE;EACjC;CACF,CAAC;CAED,OAASA,KAAC,QAAU;AACtB"}
@@ -1,11 +1,24 @@
1
- import { children, createEffect, onCleanup, splitProps } from "solid-js";
1
+ /*
2
+ * Copyright 2020 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/interactions/Pressable.tsx
13
+ import { children, createTrackedEffect } from "solid-js";
2
14
  import { createFocusable, createPress } from "@proyecto-viviana/solidaria";
15
+ import { splitProps } from "@proyecto-viviana/solidaria/utils";
3
16
  //#region src/Pressable.tsx
4
17
  /**
5
18
  * Pressable component for solidaria-components
6
19
  *
7
20
  * A render-prop component that wraps createPress + createFocusable
8
- * to make an element pressable. Port of React Aria's Pressable.
21
+ * to make an element pressable.
9
22
  */
10
23
  /**
11
24
  * Makes its child element pressable and focusable.
@@ -14,7 +27,7 @@ import { createFocusable, createPress } from "@proyecto-viviana/solidaria";
14
27
  * @example
15
28
  * ```tsx
16
29
  * <Pressable onPress={() => console.log('pressed')}>
17
- * <div role="button" tabIndex={0}>Click me</div>
30
+ * <div role="button" tabindex={0}>Click me</div>
18
31
  * </Pressable>
19
32
  * ```
20
33
  */
@@ -24,7 +37,8 @@ function Pressable(props) {
24
37
  const { pressProps: domPressProps } = createPress(pressProps);
25
38
  const { focusableProps: domFocusableProps } = createFocusable(pressProps, () => ref);
26
39
  const resolved = children(() => local.children);
27
- createEffect(() => {
40
+ createTrackedEffect(() => {
41
+ const _s2Cleanups = [];
28
42
  const child = resolved();
29
43
  if (child instanceof HTMLElement) {
30
44
  ref = child;
@@ -55,10 +69,13 @@ function Pressable(props) {
55
69
  else child.setAttribute(key, String(value));
56
70
  }
57
71
  }
58
- onCleanup(() => {
72
+ _s2Cleanups.push(() => {
59
73
  for (const [eventName, listener] of listeners) child.removeEventListener(eventName, listener);
60
74
  });
61
75
  }
76
+ return () => {
77
+ for (const c of _s2Cleanups) c();
78
+ };
62
79
  });
63
80
  return <>{resolved()}</>;
64
81
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Pressable.jsx","names":["resolveChildren"],"sources":["../src/Pressable.tsx"],"sourcesContent":["/**\n * Pressable component for solidaria-components\n *\n * A render-prop component that wraps createPress + createFocusable\n * to make an element pressable. Port of React Aria's Pressable.\n */\n\nimport {\n type JSX,\n children as resolveChildren,\n createEffect,\n onCleanup,\n splitProps,\n} from \"solid-js\";\nimport {\n createPress,\n createFocusable,\n type CreatePressProps,\n type CreateFocusableProps,\n} from \"@proyecto-viviana/solidaria\";\n\nexport interface PressableProps extends CreatePressProps {\n /** A single child element to make pressable. */\n children: JSX.Element;\n /** Ref callback. */\n ref?: HTMLElement | ((el: HTMLElement) => void);\n}\n\n/**\n * Makes its child element pressable and focusable.\n * Combines createPress and createFocusable for full interaction support.\n *\n * @example\n * ```tsx\n * <Pressable onPress={() => console.log('pressed')}>\n * <div role=\"button\" tabIndex={0}>Click me</div>\n * </Pressable>\n * ```\n */\nexport function Pressable(props: PressableProps): JSX.Element {\n const [local, pressProps] = splitProps(props, [\"children\", \"ref\"]);\n\n let ref!: HTMLElement;\n const { pressProps: domPressProps } = createPress(pressProps);\n const { focusableProps: domFocusableProps } = createFocusable(\n pressProps as CreateFocusableProps,\n () => ref,\n );\n\n const resolved = resolveChildren(() => local.children);\n\n createEffect(() => {\n const child = resolved() as HTMLElement;\n if (child instanceof HTMLElement) {\n ref = child;\n if (typeof local.ref === \"function\") {\n local.ref(child);\n }\n\n // Apply press props\n const allProps = { ...domFocusableProps, ...domPressProps };\n const listeners: Array<[string, EventListener]> = [];\n for (const [key, handler] of Object.entries(allProps)) {\n if (key.startsWith(\"on\") && typeof handler === \"function\") {\n const eventName = key.slice(2).toLowerCase();\n const listener = handler as EventListener;\n child.addEventListener(eventName, listener);\n listeners.push([eventName, listener]);\n }\n }\n\n // Apply non-event press/focusable props (e.g. tabIndex/data attrs).\n // Keep explicit child tabIndex to mirror mergeProps(child.props precedence).\n for (const [key, value] of Object.entries(allProps)) {\n if (key === \"ref\" || (key.startsWith(\"on\") && typeof value === \"function\")) continue;\n\n if (key === \"tabIndex\") {\n if (child.hasAttribute(\"tabindex\")) continue;\n if (value == null || value === false) {\n child.removeAttribute(\"tabindex\");\n } else {\n child.tabIndex = Number(value);\n }\n continue;\n }\n\n if (key.startsWith(\"aria-\") || key.startsWith(\"data-\") || key === \"id\" || key === \"role\") {\n if (child.hasAttribute(key)) continue;\n if (value == null || value === false) {\n child.removeAttribute(key);\n } else if (value === true) {\n child.setAttribute(key, \"\");\n } else {\n child.setAttribute(key, String(value));\n }\n }\n }\n\n onCleanup(() => {\n for (const [eventName, listener] of listeners) {\n child.removeEventListener(eventName, listener);\n }\n });\n }\n });\n\n return <>{resolved()}</>;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAuCA,SAAgB,UAAU,OAAoC;CAC5D,MAAM,CAAC,OAAO,cAAc,WAAW,OAAO,CAAC,YAAY,KAAK,CAAC;CAEjE,IAAI;CACJ,MAAM,EAAE,YAAY,kBAAkB,YAAY,UAAU;CAC5D,MAAM,EAAE,gBAAgB,sBAAsB,gBAC5C,kBACM,GACR;CAEA,MAAM,WAAWA,eAAsB,MAAM,QAAQ;CAErD,mBAAmB;EACjB,MAAM,QAAQ,SAAS;EACvB,IAAI,iBAAiB,aAAa;GAChC,MAAM;GACN,IAAI,OAAO,MAAM,QAAQ,YACvB,MAAM,IAAI,KAAK;GAIjB,MAAM,WAAW;IAAE,GAAG;IAAmB,GAAG;GAAc;GAC1D,MAAM,YAA4C,CAAC;GACnD,KAAK,MAAM,CAAC,KAAK,YAAY,OAAO,QAAQ,QAAQ,GAClD,IAAI,IAAI,WAAW,IAAI,KAAK,OAAO,YAAY,YAAY;IACzD,MAAM,YAAY,IAAI,MAAM,CAAC,CAAC,CAAC,YAAY;IAC3C,MAAM,WAAW;IACjB,MAAM,iBAAiB,WAAW,QAAQ;IAC1C,UAAU,KAAK,CAAC,WAAW,QAAQ,CAAC;GACtC;GAKF,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,QAAQ,GAAG;IACnD,IAAI,QAAQ,SAAU,IAAI,WAAW,IAAI,KAAK,OAAO,UAAU,YAAa;IAE5E,IAAI,QAAQ,YAAY;KACtB,IAAI,MAAM,aAAa,UAAU,GAAG;KACpC,IAAI,SAAS,QAAQ,UAAU,OAC7B,MAAM,gBAAgB,UAAU;UAEhC,MAAM,WAAW,OAAO,KAAK;KAE/B;IACF;IAEA,IAAI,IAAI,WAAW,OAAO,KAAK,IAAI,WAAW,OAAO,KAAK,QAAQ,QAAQ,QAAQ,QAAQ;KACxF,IAAI,MAAM,aAAa,GAAG,GAAG;KAC7B,IAAI,SAAS,QAAQ,UAAU,OAC7B,MAAM,gBAAgB,GAAG;UACpB,IAAI,UAAU,MACnB,MAAM,aAAa,KAAK,EAAE;UAE1B,MAAM,aAAa,KAAK,OAAO,KAAK,CAAC;IAEzC;GACF;GAEA,gBAAgB;IACd,KAAK,MAAM,CAAC,WAAW,aAAa,WAClC,MAAM,oBAAoB,WAAW,QAAQ;GAEjD,CAAC;EACH;CACF,CAAC;CAED,OAAO,GAAG,SAAS,EAAE;AACvB"}
1
+ {"version":3,"file":"Pressable.jsx","names":["resolveChildren"],"sources":["../src/Pressable.tsx"],"sourcesContent":["/*\n * Copyright 2020 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/interactions/Pressable.tsx\n\n/**\n * Pressable component for solidaria-components\n *\n * A render-prop component that wraps createPress + createFocusable\n * to make an element pressable.\n */\n\nimport {\n children as resolveChildren,\n createEffect,\n onCleanup,\n createTrackedEffect,\n} from \"solid-js\";\nimport type { JSX } from \"@solidjs/web\";\nimport { splitProps } from \"@proyecto-viviana/solidaria/utils\";\nimport {\n createPress,\n createFocusable,\n type CreatePressProps,\n type CreateFocusableProps,\n} from \"@proyecto-viviana/solidaria\";\n\nexport interface PressableProps extends CreatePressProps {\n /** A single child element to make pressable. */\n children: JSX.Element;\n /** Ref callback. */\n ref?: HTMLElement | ((el: HTMLElement) => void);\n}\n\n/**\n * Makes its child element pressable and focusable.\n * Combines createPress and createFocusable for full interaction support.\n *\n * @example\n * ```tsx\n * <Pressable onPress={() => console.log('pressed')}>\n * <div role=\"button\" tabindex={0}>Click me</div>\n * </Pressable>\n * ```\n */\nexport function Pressable(props: PressableProps): JSX.Element {\n const [local, pressProps] = splitProps(props, [\"children\", \"ref\"]);\n\n let ref!: HTMLElement;\n const { pressProps: domPressProps } = createPress(pressProps);\n const { focusableProps: domFocusableProps } = createFocusable(\n pressProps as CreateFocusableProps,\n () => ref,\n );\n\n const resolved = resolveChildren(() => local.children);\n\n createTrackedEffect(() => {\n const _s2Cleanups: Array<() => void> = [];\n\n const child = resolved() as HTMLElement;\n if (child instanceof HTMLElement) {\n ref = child;\n if (typeof local.ref === \"function\") {\n local.ref(child);\n }\n\n // Apply press props\n const allProps = { ...domFocusableProps, ...domPressProps };\n const listeners: Array<[string, EventListener]> = [];\n for (const [key, handler] of Object.entries(allProps)) {\n if (key.startsWith(\"on\") && typeof handler === \"function\") {\n const eventName = key.slice(2).toLowerCase();\n const listener = handler as EventListener;\n child.addEventListener(eventName, listener);\n listeners.push([eventName, listener]);\n }\n }\n\n // Apply non-event press/focusable props (e.g. tabIndex/data attrs).\n // Keep explicit child tabIndex to mirror mergeProps(child.props precedence).\n for (const [key, value] of Object.entries(allProps)) {\n if (key === \"ref\" || (key.startsWith(\"on\") && typeof value === \"function\")) continue;\n\n if (key === \"tabIndex\") {\n if (child.hasAttribute(\"tabindex\")) continue;\n if (value == null || value === false) {\n child.removeAttribute(\"tabindex\");\n } else {\n child.tabIndex = Number(value);\n }\n continue;\n }\n\n if (key.startsWith(\"aria-\") || key.startsWith(\"data-\") || key === \"id\" || key === \"role\") {\n if (child.hasAttribute(key)) continue;\n if (value == null || value === false) {\n child.removeAttribute(key);\n } else if (value === true) {\n child.setAttribute(key, \"\");\n } else {\n child.setAttribute(key, String(value));\n }\n }\n }\n\n _s2Cleanups.push(() => {\n for (const [eventName, listener] of listeners) {\n child.removeEventListener(eventName, listener);\n }\n });\n }\n\n return () => {\n for (const c of _s2Cleanups) c();\n };\n });\n\n return <>{resolved()}</>;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsDA,SAAgB,UAAU,OAAoC;CAC5D,MAAM,CAAC,OAAO,cAAc,WAAW,OAAO,CAAC,YAAY,KAAK,CAAC;CAEjE,IAAI;CACJ,MAAM,EAAE,YAAY,kBAAkB,YAAY,UAAU;CAC5D,MAAM,EAAE,gBAAgB,sBAAsB,gBAC5C,kBACM,GACR;CAEA,MAAM,WAAWA,eAAsB,MAAM,QAAQ;CAErD,0BAA0B;EACxB,MAAM,cAAiC,CAAC;EAExC,MAAM,QAAQ,SAAS;EACvB,IAAI,iBAAiB,aAAa;GAChC,MAAM;GACN,IAAI,OAAO,MAAM,QAAQ,YACvB,MAAM,IAAI,KAAK;GAIjB,MAAM,WAAW;IAAE,GAAG;IAAmB,GAAG;GAAc;GAC1D,MAAM,YAA4C,CAAC;GACnD,KAAK,MAAM,CAAC,KAAK,YAAY,OAAO,QAAQ,QAAQ,GAClD,IAAI,IAAI,WAAW,IAAI,KAAK,OAAO,YAAY,YAAY;IACzD,MAAM,YAAY,IAAI,MAAM,CAAC,CAAC,CAAC,YAAY;IAC3C,MAAM,WAAW;IACjB,MAAM,iBAAiB,WAAW,QAAQ;IAC1C,UAAU,KAAK,CAAC,WAAW,QAAQ,CAAC;GACtC;GAKF,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,QAAQ,GAAG;IACnD,IAAI,QAAQ,SAAU,IAAI,WAAW,IAAI,KAAK,OAAO,UAAU,YAAa;IAE5E,IAAI,QAAQ,YAAY;KACtB,IAAI,MAAM,aAAa,UAAU,GAAG;KACpC,IAAI,SAAS,QAAQ,UAAU,OAC7B,MAAM,gBAAgB,UAAU;UAEhC,MAAM,WAAW,OAAO,KAAK;KAE/B;IACF;IAEA,IAAI,IAAI,WAAW,OAAO,KAAK,IAAI,WAAW,OAAO,KAAK,QAAQ,QAAQ,QAAQ,QAAQ;KACxF,IAAI,MAAM,aAAa,GAAG,GAAG;KAC7B,IAAI,SAAS,QAAQ,UAAU,OAC7B,MAAM,gBAAgB,GAAG;UACpB,IAAI,UAAU,MACnB,MAAM,aAAa,KAAK,EAAE;UAE1B,MAAM,aAAa,KAAK,OAAO,KAAK,CAAC;IAEzC;GACF;GAEA,YAAY,WAAW;IACrB,KAAK,MAAM,CAAC,WAAW,aAAa,WAClC,MAAM,oBAAoB,WAAW,QAAQ;GAEjD,CAAC;EACH;EAEA,aAAa;GACX,KAAK,MAAM,KAAK,aAAa,EAAE;EACjC;CACF,CAAC;CAED,OAAO,GAAG,SAAS,EAAE;AACvB"}
@@ -0,0 +1,24 @@
1
+ import type { JSX } from "@solidjs/web";
2
+ import { type AriaPreviewTriggerProps } from "@proyecto-viviana/solidaria";
3
+ export interface PreviewTriggerProps extends AriaPreviewTriggerProps {
4
+ /** The trigger and Popover that make up the preview trigger. */
5
+ children: JSX.Element;
6
+ /**
7
+ * The delay time in milliseconds before the preview opens.
8
+ *
9
+ * @default 600
10
+ */
11
+ delay?: number;
12
+ /**
13
+ * The delay time in milliseconds before the preview closes.
14
+ *
15
+ * @default 200
16
+ */
17
+ closeDelay?: number;
18
+ }
19
+ /**
20
+ * A PreviewTrigger displays a non-modal popover on hover, focus, or long press. Unlike a tooltip,
21
+ * the popover may contain interactive content.
22
+ */
23
+ export declare function PreviewTrigger(props: PreviewTriggerProps): JSX.Element;
24
+ //# sourceMappingURL=PreviewTrigger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PreviewTrigger.d.ts","sourceRoot":"","sources":["../src/PreviewTrigger.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,6BAA6B,CAAC;AAUrC,MAAM,WAAW,mBAAoB,SAAQ,uBAAuB;IAClE,gEAAgE;IAChE,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;IACtB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,GAAG,CAAC,OAAO,CAkHtE"}
@@ -0,0 +1,128 @@
1
+ /*
2
+ * Copyright 2026 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/PreviewTrigger.tsx
13
+ import { Provider } from "./utils.js";
14
+ import { n as OverlayTriggerStateContext, r as PopoverTriggerContext } from "./contexts.js";
15
+ import { createComponent, mergeProps } from "@solidjs/web";
16
+ import { createSignal, createUniqueId } from "solid-js";
17
+ import { FocusableProvider, createPreviewTrigger } from "@proyecto-viviana/solidaria";
18
+ import { splitProps } from "@proyecto-viviana/solidaria/utils";
19
+ import { createTooltipTriggerState } from "@proyecto-viviana/solid-stately";
20
+ //#region src/PreviewTrigger.tsx
21
+ /**
22
+ * PreviewTrigger displays a non-modal popover on hover, focus, or long press.
23
+ */
24
+ /**
25
+ * A PreviewTrigger displays a non-modal popover on hover, focus, or long press. Unlike a tooltip,
26
+ * the popover may contain interactive content.
27
+ */
28
+ function PreviewTrigger(props) {
29
+ const [local, rest] = splitProps(props, [
30
+ "children",
31
+ "delay",
32
+ "closeDelay"
33
+ ]);
34
+ const state = createTooltipTriggerState({
35
+ get isOpen() {
36
+ return rest.isOpen;
37
+ },
38
+ get defaultOpen() {
39
+ return rest.defaultOpen;
40
+ },
41
+ onOpenChange: rest.onOpenChange,
42
+ get delay() {
43
+ return local.delay ?? 600;
44
+ },
45
+ get closeDelay() {
46
+ return local.closeDelay ?? 200;
47
+ },
48
+ get isDisabled() {
49
+ return rest.isDisabled;
50
+ }
51
+ });
52
+ const [triggerEl, setTriggerRef] = createSignal(null, { ownedWrite: true });
53
+ const [popoverEl, setPopoverRef] = createSignal(null, { ownedWrite: true });
54
+ const triggerId = createUniqueId();
55
+ const aria = createPreviewTrigger({
56
+ get isOpen() {
57
+ return rest.isOpen;
58
+ },
59
+ get defaultOpen() {
60
+ return rest.defaultOpen;
61
+ },
62
+ get isDisabled() {
63
+ return rest.isDisabled;
64
+ },
65
+ onOpenChange: rest.onOpenChange,
66
+ triggerRef: () => triggerEl(),
67
+ popoverRef: () => popoverEl()
68
+ }, state);
69
+ const overlayState = {
70
+ get isOpen() {
71
+ return state.isOpen();
72
+ },
73
+ open: () => state.open(),
74
+ close: () => state.close(true),
75
+ toggle: () => state.isOpen() ? state.close(true) : state.open(),
76
+ setOpen: (isOpen) => {
77
+ if (isOpen) state.open();
78
+ else state.close(true);
79
+ },
80
+ get point() {
81
+ return null;
82
+ },
83
+ setPoint: () => {}
84
+ };
85
+ return createComponent(Provider, {
86
+ get values() {
87
+ return [[OverlayTriggerStateContext, overlayState], [PopoverTriggerContext, {
88
+ state: {
89
+ isOpen: () => state.isOpen(),
90
+ open: () => state.open(),
91
+ close: () => state.close(true),
92
+ toggle: () => state.isOpen() ? state.close(true) : state.open(),
93
+ setOpen: overlayState.setOpen,
94
+ point: () => overlayState.point,
95
+ setPoint: overlayState.setPoint
96
+ },
97
+ triggerRef: () => triggerEl(),
98
+ setTriggerRef: (el) => {
99
+ if (!el) return;
100
+ setTriggerRef((current) => {
101
+ if (current && current.isConnected) return current;
102
+ return el;
103
+ });
104
+ },
105
+ triggerId,
106
+ triggerProps: aria.triggerProps,
107
+ overlayProps: aria.popoverProps,
108
+ trigger: "PreviewTrigger",
109
+ setOverlayRef: (el) => setPopoverRef(el),
110
+ shouldSkipAnimation: () => state.shouldSkipAnimation()
111
+ }]];
112
+ },
113
+ get children() {
114
+ return createComponent(FocusableProvider, mergeProps(() => {
115
+ return aria.triggerProps;
116
+ }, {
117
+ ref: setTriggerRef,
118
+ get children() {
119
+ return local.children;
120
+ }
121
+ }));
122
+ }
123
+ });
124
+ }
125
+ //#endregion
126
+ export { PreviewTrigger };
127
+
128
+ //# sourceMappingURL=PreviewTrigger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PreviewTrigger.js","names":["<Provider\n values={\n [\n [OverlayTriggerStateContext, overlayState],\n [\n PopoverTriggerContext,\n {\n state: {\n isOpen: () => state.isOpen(),\n open: () => state.open(),\n close: () => state.close(true),\n toggle: () => (state.isOpen() ? state.close(true) : state.open()),\n setOpen: overlayState.setOpen,\n point: () => overlayState.point,\n setPoint: overlayState.setPoint,\n },\n triggerRef: () => triggerEl(),\n setTriggerRef: (el: HTMLElement | null) => {\n if (!el) return;\n // First connected owner wins. A Button inside the preview would\n // otherwise steal the trigger ref (and the hover safe-area).\n setTriggerRef((current) => {\n if (current && current.isConnected) return current;\n return el;\n });\n },\n triggerId,\n triggerProps: aria.triggerProps as unknown as Record<string, unknown>,\n overlayProps: aria.popoverProps as unknown as Record<string, unknown>,\n trigger: \"PreviewTrigger\",\n setOverlayRef: (el: HTMLElement | null) => setPopoverRef(el),\n shouldSkipAnimation: () => state.shouldSkipAnimation(),\n },\n ],\n ] as Array<[Context<unknown>, unknown]>\n }\n >\n <FocusableProvider {...aria.triggerProps} ref={setTriggerRef}>\n {local.children}\n </FocusableProvider>\n </Provider>","<FocusableProvider {...aria.triggerProps} ref={setTriggerRef}>\n {local.children}\n </FocusableProvider>","ref={setTriggerRef}"],"sources":["../src/PreviewTrigger.tsx"],"sourcesContent":["/*\n * Copyright 2026 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/PreviewTrigger.tsx\n\n/**\n * PreviewTrigger displays a non-modal popover on hover, focus, or long press.\n */\n\nimport { createSignal, createUniqueId } from \"solid-js\";\nimport type { Context } from \"solid-js\";\nimport type { JSX } from \"@solidjs/web\";\nimport {\n FocusableProvider,\n createPreviewTrigger,\n type AriaPreviewTriggerProps,\n} from \"@proyecto-viviana/solidaria\";\nimport { createTooltipTriggerState } from \"@proyecto-viviana/solid-stately\";\nimport {\n OverlayTriggerStateContext,\n PopoverTriggerContext,\n type OverlayTriggerState,\n} from \"./contexts\";\nimport { Provider } from \"./utils\";\nimport { splitProps } from \"@proyecto-viviana/solidaria/utils\";\n\nexport interface PreviewTriggerProps extends AriaPreviewTriggerProps {\n /** The trigger and Popover that make up the preview trigger. */\n children: JSX.Element;\n /**\n * The delay time in milliseconds before the preview opens.\n *\n * @default 600\n */\n delay?: number;\n /**\n * The delay time in milliseconds before the preview closes.\n *\n * @default 200\n */\n closeDelay?: number;\n}\n\n/**\n * A PreviewTrigger displays a non-modal popover on hover, focus, or long press. Unlike a tooltip,\n * the popover may contain interactive content.\n */\nexport function PreviewTrigger(props: PreviewTriggerProps): JSX.Element {\n // Keep children out of the hook object. Spreading `props` instantiates\n // them in this component's hydration context on SSR only.\n const [local, rest] = splitProps(props, [\"children\", \"delay\", \"closeDelay\"]);\n\n const state = createTooltipTriggerState({\n get isOpen() {\n return rest.isOpen;\n },\n get defaultOpen() {\n return rest.defaultOpen;\n },\n onOpenChange: rest.onOpenChange,\n get delay() {\n return local.delay ?? 600;\n },\n get closeDelay() {\n return local.closeDelay ?? 200;\n },\n get isDisabled() {\n return rest.isDisabled;\n },\n });\n\n const [triggerEl, setTriggerRef] = createSignal<HTMLElement | null>(null, {\n ownedWrite: true,\n });\n const [popoverEl, setPopoverRef] = createSignal<HTMLElement | null>(null, {\n ownedWrite: true,\n });\n const triggerId = createUniqueId();\n\n const aria = createPreviewTrigger(\n {\n get isOpen() {\n return rest.isOpen;\n },\n get defaultOpen() {\n return rest.defaultOpen;\n },\n get isDisabled() {\n return rest.isDisabled;\n },\n onOpenChange: rest.onOpenChange,\n triggerRef: () => triggerEl(),\n popoverRef: () => popoverEl(),\n },\n state,\n );\n\n // RAC PreviewTrigger adapts TooltipTriggerState to OverlayTriggerState\n // (`PreviewTrigger.tsx:56-67`): setOpen, point, setPoint. Solid-local\n // PopoverTriggerContext is the trigger-wiring counterpart of RAC's\n // PopoverContext (our PopoverContext is placement/arrow, a different type).\n const overlayState: OverlayTriggerState = {\n get isOpen() {\n return state.isOpen();\n },\n open: () => state.open(),\n close: () => state.close(true),\n toggle: () => (state.isOpen() ? state.close(true) : state.open()),\n setOpen: (isOpen) => {\n if (isOpen) state.open();\n else state.close(true);\n },\n get point() {\n return null;\n },\n setPoint: () => {},\n };\n\n return (\n <Provider\n values={\n [\n [OverlayTriggerStateContext, overlayState],\n [\n PopoverTriggerContext,\n {\n state: {\n isOpen: () => state.isOpen(),\n open: () => state.open(),\n close: () => state.close(true),\n toggle: () => (state.isOpen() ? state.close(true) : state.open()),\n setOpen: overlayState.setOpen,\n point: () => overlayState.point,\n setPoint: overlayState.setPoint,\n },\n triggerRef: () => triggerEl(),\n setTriggerRef: (el: HTMLElement | null) => {\n if (!el) return;\n // First connected owner wins. A Button inside the preview would\n // otherwise steal the trigger ref (and the hover safe-area).\n setTriggerRef((current) => {\n if (current && current.isConnected) return current;\n return el;\n });\n },\n triggerId,\n triggerProps: aria.triggerProps as unknown as Record<string, unknown>,\n overlayProps: aria.popoverProps as unknown as Record<string, unknown>,\n trigger: \"PreviewTrigger\",\n setOverlayRef: (el: HTMLElement | null) => setPopoverRef(el),\n shouldSkipAnimation: () => state.shouldSkipAnimation(),\n },\n ],\n ] as Array<[Context<unknown>, unknown]>\n }\n >\n <FocusableProvider {...aria.triggerProps} ref={setTriggerRef}>\n {local.children}\n </FocusableProvider>\n </Provider>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAwDA,SAAgB,eAAe,OAAyC;CAGtE,MAAM,CAAC,OAAO,QAAQ,WAAW,OAAO;EAAC;EAAY;EAAS;CAAY,CAAC;CAE3E,MAAM,QAAQ,0BAA0B;EACtC,IAAI,SAAS;GACX,OAAO,KAAK;EACd;EACA,IAAI,cAAc;GAChB,OAAO,KAAK;EACd;EACA,cAAc,KAAK;EACnB,IAAI,QAAQ;GACV,OAAO,MAAM,SAAS;EACxB;EACA,IAAI,aAAa;GACf,OAAO,MAAM,cAAc;EAC7B;EACA,IAAI,aAAa;GACf,OAAO,KAAK;EACd;CACF,CAAC;CAED,MAAM,CAAC,WAAW,iBAAiB,aAAiC,MAAM,EACxE,YAAY,KACd,CAAC;CACD,MAAM,CAAC,WAAW,iBAAiB,aAAiC,MAAM,EACxE,YAAY,KACd,CAAC;CACD,MAAM,YAAY,eAAe;CAEjC,MAAM,OAAO,qBACX;EACE,IAAI,SAAS;GACX,OAAO,KAAK;EACd;EACA,IAAI,cAAc;GAChB,OAAO,KAAK;EACd;EACA,IAAI,aAAa;GACf,OAAO,KAAK;EACd;EACA,cAAc,KAAK;EACnB,kBAAkB,UAAU;EAC5B,kBAAkB,UAAU;CAC9B,GACA,KACF;CAMA,MAAM,eAAoC;EACxC,IAAI,SAAS;GACX,OAAO,MAAM,OAAO;EACtB;EACA,YAAY,MAAM,KAAK;EACvB,aAAa,MAAM,MAAM,IAAI;EAC7B,cAAe,MAAM,OAAO,IAAI,MAAM,MAAM,IAAI,IAAI,MAAM,KAAK;EAC/D,UAAU,WAAW;GACnB,IAAI,QAAQ,MAAM,KAAK;QAClB,MAAM,MAAM,IAAI;EACvB;EACA,IAAI,QAAQ;GACV,OAAO;EACT;EACA,gBAAgB,CAAC;CACnB;CAEA,OACEA,gBAAAA,UAAAA;EACE,IAAA,SAAA;GACE,OAAA,CACE,CAAC,4BAA4B,YAAY,GACzC,CACE,uBACA;IACE,OAAO;KACL,cAAc,MAAM,OAAO;KAC3B,YAAY,MAAM,KAAK;KACvB,aAAa,MAAM,MAAM,IAAI;KAC7B,cAAe,MAAM,OAAO,IAAI,MAAM,MAAM,IAAI,IAAI,MAAM,KAAK;KAC/D,SAAS,aAAa;KACtB,aAAa,aAAa;KAC1B,UAAU,aAAa;IACzB;IACA,kBAAkB,UAAU;IAC5B,gBAAgB,OAA2B;KACzC,IAAI,CAAC,IAAI;KAGT,eAAe,YAAY;MACzB,IAAI,WAAW,QAAQ,aAAa,OAAO;MAC3C,OAAO;KACT,CAAC;IACH;IACA;IACA,cAAc,KAAK;IACnB,cAAc,KAAK;IACnB,SAAS;IACT,gBAAgB,OAA2B,cAAc,EAAE;IAC3D,2BAA2B,MAAM,oBAAoB;GACvD,CACF,CACF;EACF;EAnCF,IAAA,WAAA;GAqCEC,OAAAA,gBAAAA,mBAAAA,iBAAmB;IAAI,OAAA,KAAK;GAAY,GAAxC;IAA0CC,KAAK;IAA/C,IAAA,WAAA;KACG,OAAA,MAAM;IACU;;EACX;;AAEd"}
@@ -0,0 +1,117 @@
1
+ /*
2
+ * Copyright 2026 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/PreviewTrigger.tsx
13
+ import { Provider } from "./utils.jsx";
14
+ import { n as OverlayTriggerStateContext, r as PopoverTriggerContext } from "./contexts.jsx";
15
+ import { createSignal, createUniqueId } from "solid-js";
16
+ import { FocusableProvider, createPreviewTrigger } from "@proyecto-viviana/solidaria";
17
+ import { splitProps } from "@proyecto-viviana/solidaria/utils";
18
+ import { createTooltipTriggerState } from "@proyecto-viviana/solid-stately";
19
+ //#region src/PreviewTrigger.tsx
20
+ /**
21
+ * PreviewTrigger displays a non-modal popover on hover, focus, or long press.
22
+ */
23
+ /**
24
+ * A PreviewTrigger displays a non-modal popover on hover, focus, or long press. Unlike a tooltip,
25
+ * the popover may contain interactive content.
26
+ */
27
+ function PreviewTrigger(props) {
28
+ const [local, rest] = splitProps(props, [
29
+ "children",
30
+ "delay",
31
+ "closeDelay"
32
+ ]);
33
+ const state = createTooltipTriggerState({
34
+ get isOpen() {
35
+ return rest.isOpen;
36
+ },
37
+ get defaultOpen() {
38
+ return rest.defaultOpen;
39
+ },
40
+ onOpenChange: rest.onOpenChange,
41
+ get delay() {
42
+ return local.delay ?? 600;
43
+ },
44
+ get closeDelay() {
45
+ return local.closeDelay ?? 200;
46
+ },
47
+ get isDisabled() {
48
+ return rest.isDisabled;
49
+ }
50
+ });
51
+ const [triggerEl, setTriggerRef] = createSignal(null, { ownedWrite: true });
52
+ const [popoverEl, setPopoverRef] = createSignal(null, { ownedWrite: true });
53
+ const triggerId = createUniqueId();
54
+ const aria = createPreviewTrigger({
55
+ get isOpen() {
56
+ return rest.isOpen;
57
+ },
58
+ get defaultOpen() {
59
+ return rest.defaultOpen;
60
+ },
61
+ get isDisabled() {
62
+ return rest.isDisabled;
63
+ },
64
+ onOpenChange: rest.onOpenChange,
65
+ triggerRef: () => triggerEl(),
66
+ popoverRef: () => popoverEl()
67
+ }, state);
68
+ const overlayState = {
69
+ get isOpen() {
70
+ return state.isOpen();
71
+ },
72
+ open: () => state.open(),
73
+ close: () => state.close(true),
74
+ toggle: () => state.isOpen() ? state.close(true) : state.open(),
75
+ setOpen: (isOpen) => {
76
+ if (isOpen) state.open();
77
+ else state.close(true);
78
+ },
79
+ get point() {
80
+ return null;
81
+ },
82
+ setPoint: () => {}
83
+ };
84
+ return <Provider values={[[OverlayTriggerStateContext, overlayState], [PopoverTriggerContext, {
85
+ state: {
86
+ isOpen: () => state.isOpen(),
87
+ open: () => state.open(),
88
+ close: () => state.close(true),
89
+ toggle: () => state.isOpen() ? state.close(true) : state.open(),
90
+ setOpen: overlayState.setOpen,
91
+ point: () => overlayState.point,
92
+ setPoint: overlayState.setPoint
93
+ },
94
+ triggerRef: () => triggerEl(),
95
+ setTriggerRef: (el) => {
96
+ if (!el) return;
97
+ setTriggerRef((current) => {
98
+ if (current && current.isConnected) return current;
99
+ return el;
100
+ });
101
+ },
102
+ triggerId,
103
+ triggerProps: aria.triggerProps,
104
+ overlayProps: aria.popoverProps,
105
+ trigger: "PreviewTrigger",
106
+ setOverlayRef: (el) => setPopoverRef(el),
107
+ shouldSkipAnimation: () => state.shouldSkipAnimation()
108
+ }]]}>
109
+ <FocusableProvider {...aria.triggerProps} ref={setTriggerRef}>
110
+ {local.children}
111
+ </FocusableProvider>
112
+ </Provider>;
113
+ }
114
+ //#endregion
115
+ export { PreviewTrigger };
116
+
117
+ //# sourceMappingURL=PreviewTrigger.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PreviewTrigger.jsx","names":[],"sources":["../src/PreviewTrigger.tsx"],"sourcesContent":["/*\n * Copyright 2026 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/PreviewTrigger.tsx\n\n/**\n * PreviewTrigger displays a non-modal popover on hover, focus, or long press.\n */\n\nimport { createSignal, createUniqueId } from \"solid-js\";\nimport type { Context } from \"solid-js\";\nimport type { JSX } from \"@solidjs/web\";\nimport {\n FocusableProvider,\n createPreviewTrigger,\n type AriaPreviewTriggerProps,\n} from \"@proyecto-viviana/solidaria\";\nimport { createTooltipTriggerState } from \"@proyecto-viviana/solid-stately\";\nimport {\n OverlayTriggerStateContext,\n PopoverTriggerContext,\n type OverlayTriggerState,\n} from \"./contexts\";\nimport { Provider } from \"./utils\";\nimport { splitProps } from \"@proyecto-viviana/solidaria/utils\";\n\nexport interface PreviewTriggerProps extends AriaPreviewTriggerProps {\n /** The trigger and Popover that make up the preview trigger. */\n children: JSX.Element;\n /**\n * The delay time in milliseconds before the preview opens.\n *\n * @default 600\n */\n delay?: number;\n /**\n * The delay time in milliseconds before the preview closes.\n *\n * @default 200\n */\n closeDelay?: number;\n}\n\n/**\n * A PreviewTrigger displays a non-modal popover on hover, focus, or long press. Unlike a tooltip,\n * the popover may contain interactive content.\n */\nexport function PreviewTrigger(props: PreviewTriggerProps): JSX.Element {\n // Keep children out of the hook object. Spreading `props` instantiates\n // them in this component's hydration context on SSR only.\n const [local, rest] = splitProps(props, [\"children\", \"delay\", \"closeDelay\"]);\n\n const state = createTooltipTriggerState({\n get isOpen() {\n return rest.isOpen;\n },\n get defaultOpen() {\n return rest.defaultOpen;\n },\n onOpenChange: rest.onOpenChange,\n get delay() {\n return local.delay ?? 600;\n },\n get closeDelay() {\n return local.closeDelay ?? 200;\n },\n get isDisabled() {\n return rest.isDisabled;\n },\n });\n\n const [triggerEl, setTriggerRef] = createSignal<HTMLElement | null>(null, {\n ownedWrite: true,\n });\n const [popoverEl, setPopoverRef] = createSignal<HTMLElement | null>(null, {\n ownedWrite: true,\n });\n const triggerId = createUniqueId();\n\n const aria = createPreviewTrigger(\n {\n get isOpen() {\n return rest.isOpen;\n },\n get defaultOpen() {\n return rest.defaultOpen;\n },\n get isDisabled() {\n return rest.isDisabled;\n },\n onOpenChange: rest.onOpenChange,\n triggerRef: () => triggerEl(),\n popoverRef: () => popoverEl(),\n },\n state,\n );\n\n // RAC PreviewTrigger adapts TooltipTriggerState to OverlayTriggerState\n // (`PreviewTrigger.tsx:56-67`): setOpen, point, setPoint. Solid-local\n // PopoverTriggerContext is the trigger-wiring counterpart of RAC's\n // PopoverContext (our PopoverContext is placement/arrow, a different type).\n const overlayState: OverlayTriggerState = {\n get isOpen() {\n return state.isOpen();\n },\n open: () => state.open(),\n close: () => state.close(true),\n toggle: () => (state.isOpen() ? state.close(true) : state.open()),\n setOpen: (isOpen) => {\n if (isOpen) state.open();\n else state.close(true);\n },\n get point() {\n return null;\n },\n setPoint: () => {},\n };\n\n return (\n <Provider\n values={\n [\n [OverlayTriggerStateContext, overlayState],\n [\n PopoverTriggerContext,\n {\n state: {\n isOpen: () => state.isOpen(),\n open: () => state.open(),\n close: () => state.close(true),\n toggle: () => (state.isOpen() ? state.close(true) : state.open()),\n setOpen: overlayState.setOpen,\n point: () => overlayState.point,\n setPoint: overlayState.setPoint,\n },\n triggerRef: () => triggerEl(),\n setTriggerRef: (el: HTMLElement | null) => {\n if (!el) return;\n // First connected owner wins. A Button inside the preview would\n // otherwise steal the trigger ref (and the hover safe-area).\n setTriggerRef((current) => {\n if (current && current.isConnected) return current;\n return el;\n });\n },\n triggerId,\n triggerProps: aria.triggerProps as unknown as Record<string, unknown>,\n overlayProps: aria.popoverProps as unknown as Record<string, unknown>,\n trigger: \"PreviewTrigger\",\n setOverlayRef: (el: HTMLElement | null) => setPopoverRef(el),\n shouldSkipAnimation: () => state.shouldSkipAnimation(),\n },\n ],\n ] as Array<[Context<unknown>, unknown]>\n }\n >\n <FocusableProvider {...aria.triggerProps} ref={setTriggerRef}>\n {local.children}\n </FocusableProvider>\n </Provider>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAwDA,SAAgB,eAAe,OAAyC;CAGtE,MAAM,CAAC,OAAO,QAAQ,WAAW,OAAO;EAAC;EAAY;EAAS;CAAY,CAAC;CAE3E,MAAM,QAAQ,0BAA0B;EACtC,IAAI,SAAS;GACX,OAAO,KAAK;EACd;EACA,IAAI,cAAc;GAChB,OAAO,KAAK;EACd;EACA,cAAc,KAAK;EACnB,IAAI,QAAQ;GACV,OAAO,MAAM,SAAS;EACxB;EACA,IAAI,aAAa;GACf,OAAO,MAAM,cAAc;EAC7B;EACA,IAAI,aAAa;GACf,OAAO,KAAK;EACd;CACF,CAAC;CAED,MAAM,CAAC,WAAW,iBAAiB,aAAiC,MAAM,EACxE,YAAY,KACd,CAAC;CACD,MAAM,CAAC,WAAW,iBAAiB,aAAiC,MAAM,EACxE,YAAY,KACd,CAAC;CACD,MAAM,YAAY,eAAe;CAEjC,MAAM,OAAO,qBACX;EACE,IAAI,SAAS;GACX,OAAO,KAAK;EACd;EACA,IAAI,cAAc;GAChB,OAAO,KAAK;EACd;EACA,IAAI,aAAa;GACf,OAAO,KAAK;EACd;EACA,cAAc,KAAK;EACnB,kBAAkB,UAAU;EAC5B,kBAAkB,UAAU;CAC9B,GACA,KACF;CAMA,MAAM,eAAoC;EACxC,IAAI,SAAS;GACX,OAAO,MAAM,OAAO;EACtB;EACA,YAAY,MAAM,KAAK;EACvB,aAAa,MAAM,MAAM,IAAI;EAC7B,cAAe,MAAM,OAAO,IAAI,MAAM,MAAM,IAAI,IAAI,MAAM,KAAK;EAC/D,UAAU,WAAW;GACnB,IAAI,QAAQ,MAAM,KAAK;QAClB,MAAM,MAAM,IAAI;EACvB;EACA,IAAI,QAAQ;GACV,OAAO;EACT;EACA,gBAAgB,CAAC;CACnB;CAEA,OACE,CAAC,SACC,QACE,CACE,CAAC,4BAA4B,YAAY,GACzC,CACE,uBACA;EACE,OAAO;GACL,cAAc,MAAM,OAAO;GAC3B,YAAY,MAAM,KAAK;GACvB,aAAa,MAAM,MAAM,IAAI;GAC7B,cAAe,MAAM,OAAO,IAAI,MAAM,MAAM,IAAI,IAAI,MAAM,KAAK;GAC/D,SAAS,aAAa;GACtB,aAAa,aAAa;GAC1B,UAAU,aAAa;EACzB;EACA,kBAAkB,UAAU;EAC5B,gBAAgB,OAA2B;GACzC,IAAI,CAAC,IAAI;GAGT,eAAe,YAAY;IACzB,IAAI,WAAW,QAAQ,aAAa,OAAO;IAC3C,OAAO;GACT,CAAC;EACH;EACA;EACA,cAAc,KAAK;EACnB,cAAc,KAAK;EACnB,SAAS;EACT,gBAAgB,OAA2B,cAAc,EAAE;EAC3D,2BAA2B,MAAM,oBAAoB;CACvD,CACF,CACF,GAEH;MACC,CAAC,sBAAsB,KAAK,cAAc,KAAK,eAAe;SAC3D,MAAM,SAAS;MAClB,EAAE,kBAAkB;IACtB,EAAE;AAEN"}
@@ -1,10 +1,4 @@
1
- /**
2
- * ProgressBar component for solidaria-components
3
- *
4
- * Pre-wired headless progress bar component that combines aria hooks.
5
- * Port of react-aria-components/src/ProgressBar.tsx
6
- */
7
- import { type JSX } from "solid-js";
1
+ import type { JSX } from "@solidjs/web";
8
2
  import { type AriaProgressBarProps } from "@proyecto-viviana/solidaria";
9
3
  import { type RenderChildren, type ClassNameOrFunction, type StyleOrFunction, type SlotProps } from "./utils";
10
4
  export interface ProgressBarRenderProps {
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressBar.d.ts","sourceRoot":"","sources":["../src/ProgressBar.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,GAAG,EAAiE,MAAM,UAAU,CAAC;AACnG,OAAO,EAAqB,KAAK,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAC3F,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,SAAS,EAGf,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,sBAAsB;IACrC,yEAAyE;IACzE,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,wCAAwC;IACxC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,iDAAiD;IACjD,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAiB,SAAQ,oBAAoB,EAAE,SAAS;IACvE,sBAAsB;IACtB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,yFAAyF;IACzF,QAAQ,CAAC,EAAE,cAAc,CAAC,sBAAsB,CAAC,CAAC;IAClD,yCAAyC;IACzC,KAAK,CAAC,EAAE,mBAAmB,CAAC,sBAAsB,CAAC,CAAC;IACpD,wCAAwC;IACxC,KAAK,CAAC,EAAE,eAAe,CAAC,sBAAsB,CAAC,CAAC;CACjD;AAED,eAAO,MAAM,kBAAkB,qDAA+C,CAAC;AAW/E;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,GAAG,CAAC,OAAO,CA4FhE"}
1
+ {"version":3,"file":"ProgressBar.d.ts","sourceRoot":"","sources":["../src/ProgressBar.tsx"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,SAAS,EAGf,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,sBAAsB;IACrC,yEAAyE;IACzE,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,wCAAwC;IACxC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,iDAAiD;IACjD,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAiB,SAAQ,oBAAoB,EAAE,SAAS;IACvE,sBAAsB;IACtB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,yFAAyF;IACzF,QAAQ,CAAC,EAAE,cAAc,CAAC,sBAAsB,CAAC,CAAC;IAClD,yCAAyC;IACzC,KAAK,CAAC,EAAE,mBAAmB,CAAC,sBAAsB,CAAC,CAAC;IACpD,wCAAwC;IACxC,KAAK,CAAC,EAAE,eAAe,CAAC,sBAAsB,CAAC,CAAC;CACjD;AAED,eAAO,MAAM,kBAAkB,qDAA+C,CAAC;AAW/E;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,GAAG,CAAC,OAAO,CA8FhE"}
@@ -1,7 +1,20 @@
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/ProgressBar.tsx
1
13
  import { filterDOMProps, useRenderProps } from "./utils.js";
2
- import { getNextElement, insert, mergeProps, runHydrationEvents, spread, template } from "solid-js/web";
3
- import { createContext, createMemo, mergeProps as mergeProps$1, splitProps, useContext } from "solid-js";
4
- import { createProgressBar } from "@proyecto-viviana/solidaria";
14
+ import { getNextElement, insert, runHydrationEvents, scope, spread, template } from "@solidjs/web";
15
+ import { createContext, createMemo, useContext } from "solid-js";
16
+ import { createProgressBar, mergeProps as mergeProps$1 } from "@proyecto-viviana/solidaria";
17
+ import { splitProps } from "@proyecto-viviana/solidaria/utils";
5
18
  //#region src/ProgressBar.tsx
6
19
  /**
7
20
  * ProgressBar component for solidaria-components
@@ -9,7 +22,7 @@ import { createProgressBar } from "@proyecto-viviana/solidaria";
9
22
  * Pre-wired headless progress bar component that combines aria hooks.
10
23
  * Port of react-aria-components/src/ProgressBar.tsx
11
24
  */
12
- var _tmpl$ = /*#__PURE__*/ template(`<div>`);
25
+ var _tmpl$ = /* @__PURE__ */ template(`<div>`);
13
26
  const ProgressBarContext = createContext(null);
14
27
  function clamp(value, min, max) {
15
28
  return Math.min(Math.max(value, min), max);
@@ -37,7 +50,8 @@ function getSafeRange(min, max) {
37
50
  */
38
51
  function ProgressBar(props) {
39
52
  const contextProps = useContext(ProgressBarContext);
40
- const [local, ariaProps] = splitProps(contextProps ? mergeProps$1(contextProps, props) : props, [
53
+ const mergedProps = contextProps ? mergeProps$1(contextProps, props) : props;
54
+ const [local, ariaProps] = splitProps(mergedProps, [
41
55
  "children",
42
56
  "class",
43
57
  "style",
@@ -106,10 +120,14 @@ function ProgressBar(props) {
106
120
  defaultClassName: "solidaria-ProgressBar"
107
121
  }, renderValues);
108
122
  const domProps = createMemo(() => filterDOMProps(ariaProps, { global: true }));
109
- return (() => {
110
- var _el$ = getNextElement(_tmpl$);
111
- spread(_el$, mergeProps(domProps, () => progressAria.progressBarProps, {
112
- get ["class"]() {
123
+ var _el$ = getNextElement(_tmpl$);
124
+ spread(_el$, [
125
+ domProps,
126
+ () => {
127
+ return progressAria.progressBarProps;
128
+ },
129
+ {
130
+ get "class"() {
113
131
  return renderProps.class();
114
132
  },
115
133
  get style() {
@@ -118,11 +136,13 @@ function ProgressBar(props) {
118
136
  get slot() {
119
137
  return local.slot;
120
138
  }
121
- }), false, true);
122
- insert(_el$, () => renderProps.renderChildren());
123
- runHydrationEvents();
124
- return _el$;
125
- })();
139
+ }
140
+ ], true);
141
+ insert(_el$, scope(() => {
142
+ return renderProps.renderChildren();
143
+ }));
144
+ runHydrationEvents();
145
+ return _el$;
126
146
  }
127
147
  //#endregion
128
148
  export { ProgressBar, ProgressBarContext };