@proyecto-viviana/ui 0.3.5 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (438) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +80 -157
  3. package/dist/ActionButton.d.ts +2 -0
  4. package/dist/ActionButton.d.ts.map +1 -0
  5. package/dist/ActionButton.js +1 -0
  6. package/dist/ActionButton.jsx +1 -0
  7. package/dist/ActionMenu.d.ts +2 -0
  8. package/dist/ActionMenu.d.ts.map +1 -0
  9. package/dist/ActionMenu.js +1 -0
  10. package/dist/ActionMenu.jsx +1 -0
  11. package/dist/Breadcrumbs.d.ts +2 -0
  12. package/dist/Breadcrumbs.d.ts.map +1 -0
  13. package/dist/Breadcrumbs.js +1 -0
  14. package/dist/Breadcrumbs.jsx +1 -0
  15. package/dist/Button.d.ts +2 -0
  16. package/dist/Button.d.ts.map +1 -0
  17. package/dist/Button.js +1 -0
  18. package/dist/Button.jsx +1 -0
  19. package/dist/Calendar.d.ts +2 -0
  20. package/dist/Calendar.d.ts.map +1 -0
  21. package/dist/Calendar.js +1 -0
  22. package/dist/Calendar.jsx +1 -0
  23. package/dist/CalendarCard.d.ts +2 -0
  24. package/dist/CalendarCard.d.ts.map +1 -0
  25. package/dist/CalendarCard.js +96 -0
  26. package/dist/CalendarCard.js.map +1 -0
  27. package/dist/CalendarCard.jsx +50 -0
  28. package/dist/CalendarCard.jsx.map +1 -0
  29. package/dist/Card.d.ts +2 -0
  30. package/dist/Card.d.ts.map +1 -0
  31. package/dist/Card.js +1 -0
  32. package/dist/Card.jsx +1 -0
  33. package/dist/CardView.d.ts +2 -0
  34. package/dist/CardView.d.ts.map +1 -0
  35. package/dist/CardView.js +1 -0
  36. package/dist/CardView.jsx +1 -0
  37. package/dist/CenterBaseline.d.ts +2 -0
  38. package/dist/CenterBaseline.d.ts.map +1 -0
  39. package/dist/CenterBaseline.js +1 -0
  40. package/dist/CenterBaseline.jsx +1 -0
  41. package/dist/Chip.d.ts +2 -0
  42. package/dist/Chip.d.ts.map +1 -0
  43. package/dist/Chip.js +2 -0
  44. package/dist/Chip.jsx +2 -0
  45. package/dist/ColorArea.d.ts +2 -0
  46. package/dist/ColorArea.d.ts.map +1 -0
  47. package/dist/ColorArea.js +1 -0
  48. package/dist/ColorArea.jsx +1 -0
  49. package/dist/ColorField.d.ts +2 -0
  50. package/dist/ColorField.d.ts.map +1 -0
  51. package/dist/ColorField.js +1 -0
  52. package/dist/ColorField.jsx +1 -0
  53. package/dist/ColorSlider.d.ts +2 -0
  54. package/dist/ColorSlider.d.ts.map +1 -0
  55. package/dist/ColorSlider.js +1 -0
  56. package/dist/ColorSlider.jsx +1 -0
  57. package/dist/ColorSwatch.d.ts +2 -0
  58. package/dist/ColorSwatch.d.ts.map +1 -0
  59. package/dist/ColorSwatch.js +1 -0
  60. package/dist/ColorSwatch.jsx +1 -0
  61. package/dist/ColorSwatchPicker.d.ts +2 -0
  62. package/dist/ColorSwatchPicker.d.ts.map +1 -0
  63. package/dist/ColorSwatchPicker.js +1 -0
  64. package/dist/ColorSwatchPicker.jsx +1 -0
  65. package/dist/ColorWheel.d.ts +2 -0
  66. package/dist/ColorWheel.d.ts.map +1 -0
  67. package/dist/ColorWheel.js +1 -0
  68. package/dist/ColorWheel.jsx +1 -0
  69. package/dist/ContrastIcon.d.ts +3 -0
  70. package/dist/ContrastIcon.d.ts.map +1 -0
  71. package/dist/ContrastIcon.js +3 -0
  72. package/dist/ContrastIcon.jsx +3 -0
  73. package/dist/Conversation.d.ts +2 -0
  74. package/dist/Conversation.d.ts.map +1 -0
  75. package/dist/Conversation.js +176 -0
  76. package/dist/Conversation.js.map +1 -0
  77. package/dist/Conversation.jsx +106 -0
  78. package/dist/Conversation.jsx.map +1 -0
  79. package/dist/Disclosure.d.ts +2 -0
  80. package/dist/Disclosure.d.ts.map +1 -0
  81. package/dist/Disclosure.js +1 -0
  82. package/dist/Disclosure.jsx +1 -0
  83. package/dist/EventCard.d.ts +2 -0
  84. package/dist/EventCard.d.ts.map +1 -0
  85. package/dist/EventCard.js +171 -0
  86. package/dist/EventCard.js.map +1 -0
  87. package/dist/EventCard.jsx +94 -0
  88. package/dist/EventCard.jsx.map +1 -0
  89. package/dist/FileTrigger.d.ts +2 -0
  90. package/dist/FileTrigger.d.ts.map +1 -0
  91. package/dist/FileTrigger.js +1 -0
  92. package/dist/FileTrigger.jsx +1 -0
  93. package/dist/GitHubIcon.d.ts +2 -0
  94. package/dist/GitHubIcon.d.ts.map +1 -0
  95. package/dist/GitHubIcon.js +1 -0
  96. package/dist/GitHubIcon.jsx +1 -0
  97. package/dist/LightenIcon.d.ts +3 -0
  98. package/dist/LightenIcon.d.ts.map +1 -0
  99. package/dist/LightenIcon.js +3 -0
  100. package/dist/LightenIcon.jsx +3 -0
  101. package/dist/LinkButton.d.ts +2 -0
  102. package/dist/LinkButton.d.ts.map +1 -0
  103. package/dist/LinkButton.js +1 -0
  104. package/dist/LinkButton.jsx +1 -0
  105. package/dist/ListView.d.ts +2 -0
  106. package/dist/ListView.d.ts.map +1 -0
  107. package/dist/ListView.js +1 -0
  108. package/dist/ListView.jsx +1 -0
  109. package/dist/Logo.d.ts +2 -0
  110. package/dist/Logo.d.ts.map +1 -0
  111. package/dist/Logo.js +116 -0
  112. package/dist/Logo.js.map +1 -0
  113. package/dist/Logo.jsx +101 -0
  114. package/dist/Logo.jsx.map +1 -0
  115. package/dist/Menu.d.ts +2 -0
  116. package/dist/Menu.d.ts.map +1 -0
  117. package/dist/Menu.js +1 -0
  118. package/dist/Menu.jsx +1 -0
  119. package/dist/PageLayout.d.ts +2 -0
  120. package/dist/PageLayout.d.ts.map +1 -0
  121. package/dist/PageLayout.js +31 -0
  122. package/dist/PageLayout.js.map +1 -0
  123. package/dist/PageLayout.jsx +23 -0
  124. package/dist/PageLayout.jsx.map +1 -0
  125. package/dist/Picker.d.ts +2 -0
  126. package/dist/Picker.d.ts.map +1 -0
  127. package/dist/Picker.js +1 -0
  128. package/dist/Picker.jsx +1 -0
  129. package/dist/ProfileCard.d.ts +2 -0
  130. package/dist/ProfileCard.d.ts.map +1 -0
  131. package/dist/ProfileCard.js +77 -0
  132. package/dist/ProfileCard.js.map +1 -0
  133. package/dist/ProfileCard.jsx +52 -0
  134. package/dist/ProfileCard.jsx.map +1 -0
  135. package/dist/ProjectCard.d.ts +2 -0
  136. package/dist/ProjectCard.d.ts.map +1 -0
  137. package/dist/ProjectCard.js +162 -0
  138. package/dist/ProjectCard.js.map +1 -0
  139. package/dist/ProjectCard.jsx +131 -0
  140. package/dist/ProjectCard.jsx.map +1 -0
  141. package/dist/Provider.d.ts +2 -0
  142. package/dist/Provider.d.ts.map +1 -0
  143. package/dist/Provider.js +1 -0
  144. package/dist/Provider.jsx +1 -0
  145. package/dist/RangeCalendar.d.ts +2 -0
  146. package/dist/RangeCalendar.d.ts.map +1 -0
  147. package/dist/RangeCalendar.js +1 -0
  148. package/dist/RangeCalendar.jsx +1 -0
  149. package/dist/SearchField.d.ts +2 -0
  150. package/dist/SearchField.d.ts.map +1 -0
  151. package/dist/SearchField.js +1 -0
  152. package/dist/SearchField.jsx +1 -0
  153. package/dist/SegmentedControl.d.ts +2 -0
  154. package/dist/SegmentedControl.d.ts.map +1 -0
  155. package/dist/SegmentedControl.js +1 -0
  156. package/dist/SegmentedControl.jsx +1 -0
  157. package/dist/Switch.d.ts +2 -0
  158. package/dist/Switch.d.ts.map +1 -0
  159. package/dist/Switch.js +1 -0
  160. package/dist/Switch.jsx +1 -0
  161. package/dist/Tabs.d.ts +2 -0
  162. package/dist/Tabs.d.ts.map +1 -0
  163. package/dist/Tabs.js +1 -0
  164. package/dist/Tabs.jsx +1 -0
  165. package/dist/TextArea.d.ts +2 -0
  166. package/dist/TextArea.d.ts.map +1 -0
  167. package/dist/TextArea.js +1 -0
  168. package/dist/TextArea.jsx +1 -0
  169. package/dist/TextField.d.ts +2 -0
  170. package/dist/TextField.d.ts.map +1 -0
  171. package/dist/TextField.js +1 -0
  172. package/dist/TextField.jsx +1 -0
  173. package/dist/TimelineItem.d.ts +2 -0
  174. package/dist/TimelineItem.d.ts.map +1 -0
  175. package/dist/TimelineItem.js +137 -0
  176. package/dist/TimelineItem.js.map +1 -0
  177. package/dist/TimelineItem.jsx +70 -0
  178. package/dist/TimelineItem.jsx.map +1 -0
  179. package/dist/TreeView.d.ts +2 -0
  180. package/dist/TreeView.d.ts.map +1 -0
  181. package/dist/TreeView.js +1 -0
  182. package/dist/TreeView.jsx +1 -0
  183. package/dist/chip2.js +82 -0
  184. package/dist/chip2.js.map +1 -0
  185. package/dist/chip2.jsx +68 -0
  186. package/dist/chip2.jsx.map +1 -0
  187. package/dist/components.css +2 -1077
  188. package/dist/custom/calendar-card/index.d.ts.map +1 -1
  189. package/dist/custom/chip/index.d.ts +2 -2
  190. package/dist/custom/chip/index.d.ts.map +1 -1
  191. package/dist/custom/conversation/index.d.ts +2 -2
  192. package/dist/custom/conversation/index.d.ts.map +1 -1
  193. package/dist/custom/event-card/index.d.ts +1 -1
  194. package/dist/custom/event-card/index.d.ts.map +1 -1
  195. package/dist/custom/header/index.d.ts +2 -6
  196. package/dist/custom/header/index.d.ts.map +1 -1
  197. package/dist/custom/lateral-nav/index.d.ts +1 -1
  198. package/dist/custom/lateral-nav/index.d.ts.map +1 -1
  199. package/dist/custom/logo/index.d.ts +1 -18
  200. package/dist/custom/logo/index.d.ts.map +1 -1
  201. package/dist/custom/nav-header/index.d.ts +2 -1
  202. package/dist/custom/nav-header/index.d.ts.map +1 -1
  203. package/dist/custom/page-layout/index.d.ts +1 -7
  204. package/dist/custom/page-layout/index.d.ts.map +1 -1
  205. package/dist/custom/profile-card/index.d.ts +1 -1
  206. package/dist/custom/profile-card/index.d.ts.map +1 -1
  207. package/dist/custom/project-card/index.d.ts +2 -13
  208. package/dist/custom/project-card/index.d.ts.map +1 -1
  209. package/dist/custom/timeline-item/index.d.ts +2 -2
  210. package/dist/custom/timeline-item/index.d.ts.map +1 -1
  211. package/dist/font-faces.css +1 -0
  212. package/dist/index.d.ts +1 -104
  213. package/dist/index.d.ts.map +1 -1
  214. package/dist/index.js +1 -8222
  215. package/dist/index.jsx +1 -0
  216. package/dist/style/runtime.d.ts +2 -0
  217. package/dist/style/runtime.d.ts.map +1 -0
  218. package/dist/style/runtime.js +1 -0
  219. package/dist/style/runtime.jsx +1 -0
  220. package/dist/style.d.ts +2 -0
  221. package/dist/style.d.ts.map +1 -0
  222. package/dist/style.js +1 -0
  223. package/dist/style.jsx +1 -0
  224. package/dist/styles.css +9 -450
  225. package/dist/theme.css +2 -101
  226. package/dist/vite.d.ts +16 -0
  227. package/dist/vite.d.ts.map +1 -0
  228. package/dist/vite.js +82 -0
  229. package/dist/vite.js.map +1 -0
  230. package/dist/vite.jsx +82 -0
  231. package/dist/vite.jsx.map +1 -0
  232. package/dist/viviana-tokens.css +318 -0
  233. package/package.json +300 -44
  234. package/src/ActionButton.ts +1 -0
  235. package/src/ActionMenu.ts +1 -0
  236. package/src/Breadcrumbs.ts +1 -0
  237. package/src/Button.ts +1 -0
  238. package/src/Calendar.ts +1 -0
  239. package/src/CalendarCard.ts +1 -0
  240. package/src/Card.ts +1 -0
  241. package/src/CardView.ts +1 -0
  242. package/src/CenterBaseline.ts +1 -0
  243. package/src/Chip.ts +1 -0
  244. package/src/ColorArea.ts +1 -0
  245. package/src/ColorField.ts +1 -0
  246. package/src/ColorSlider.ts +1 -0
  247. package/src/ColorSwatch.ts +1 -0
  248. package/src/ColorSwatchPicker.ts +1 -0
  249. package/src/ColorWheel.ts +1 -0
  250. package/src/ContrastIcon.ts +2 -0
  251. package/src/Conversation.ts +1 -0
  252. package/src/Disclosure.ts +1 -0
  253. package/src/EventCard.ts +1 -0
  254. package/src/FileTrigger.ts +1 -0
  255. package/src/GitHubIcon.ts +1 -0
  256. package/src/LightenIcon.ts +2 -0
  257. package/src/LinkButton.ts +1 -0
  258. package/src/ListView.ts +1 -0
  259. package/src/Logo.ts +1 -0
  260. package/src/Menu.ts +1 -0
  261. package/src/PageLayout.ts +1 -0
  262. package/src/Picker.ts +1 -0
  263. package/src/ProfileCard.ts +1 -0
  264. package/src/ProjectCard.ts +1 -0
  265. package/src/Provider.ts +1 -0
  266. package/src/RangeCalendar.ts +1 -0
  267. package/src/SearchField.ts +1 -0
  268. package/src/SegmentedControl.ts +1 -0
  269. package/src/Switch.ts +1 -0
  270. package/src/Tabs.ts +1 -0
  271. package/src/TextArea.ts +1 -0
  272. package/src/TextField.ts +1 -0
  273. package/src/TimelineItem.ts +1 -0
  274. package/src/TreeView.ts +1 -0
  275. package/src/components.css +2 -1077
  276. package/src/custom/calendar-card/index.tsx +108 -50
  277. package/src/custom/chip/index.tsx +63 -27
  278. package/src/custom/conversation/index.tsx +166 -55
  279. package/src/custom/event-card/index.tsx +195 -74
  280. package/src/custom/header/index.tsx +64 -33
  281. package/src/custom/lateral-nav/index.tsx +93 -38
  282. package/src/custom/logo/index.tsx +41 -39
  283. package/src/custom/nav-header/index.tsx +89 -25
  284. package/src/custom/page-layout/index.tsx +23 -19
  285. package/src/custom/profile-card/index.tsx +94 -35
  286. package/src/custom/project-card/index.tsx +57 -40
  287. package/src/custom/timeline-item/index.tsx +91 -48
  288. package/src/font-faces.css +1 -0
  289. package/src/index.ts +8 -322
  290. package/src/style/runtime.ts +2 -0
  291. package/src/style.ts +5 -0
  292. package/src/styles.css +6 -450
  293. package/src/theme.css +2 -101
  294. package/src/vite.ts +164 -0
  295. package/src/viviana-tokens.css +318 -0
  296. package/dist/alert/index.d.ts +0 -12
  297. package/dist/alert/index.d.ts.map +0 -1
  298. package/dist/autocomplete/index.d.ts +0 -89
  299. package/dist/autocomplete/index.d.ts.map +0 -1
  300. package/dist/avatar/index.d.ts +0 -17
  301. package/dist/avatar/index.d.ts.map +0 -1
  302. package/dist/badge/index.d.ts +0 -12
  303. package/dist/badge/index.d.ts.map +0 -1
  304. package/dist/breadcrumbs/index.d.ts +0 -38
  305. package/dist/breadcrumbs/index.d.ts.map +0 -1
  306. package/dist/button/Button.d.ts +0 -19
  307. package/dist/button/Button.d.ts.map +0 -1
  308. package/dist/button/index.d.ts +0 -3
  309. package/dist/button/index.d.ts.map +0 -1
  310. package/dist/button/types.d.ts +0 -23
  311. package/dist/button/types.d.ts.map +0 -1
  312. package/dist/calendar/DateField.d.ts +0 -47
  313. package/dist/calendar/DateField.d.ts.map +0 -1
  314. package/dist/calendar/DatePicker.d.ts +0 -48
  315. package/dist/calendar/DatePicker.d.ts.map +0 -1
  316. package/dist/calendar/RangeCalendar.d.ts +0 -42
  317. package/dist/calendar/RangeCalendar.d.ts.map +0 -1
  318. package/dist/calendar/TimeField.d.ts +0 -44
  319. package/dist/calendar/TimeField.d.ts.map +0 -1
  320. package/dist/calendar/index.d.ts +0 -50
  321. package/dist/calendar/index.d.ts.map +0 -1
  322. package/dist/checkbox/index.d.ts +0 -43
  323. package/dist/checkbox/index.d.ts.map +0 -1
  324. package/dist/color/index.d.ts +0 -228
  325. package/dist/color/index.d.ts.map +0 -1
  326. package/dist/combobox/index.d.ts +0 -81
  327. package/dist/combobox/index.d.ts.map +0 -1
  328. package/dist/dialog/Dialog.d.ts +0 -67
  329. package/dist/dialog/Dialog.d.ts.map +0 -1
  330. package/dist/dialog/index.d.ts +0 -3
  331. package/dist/dialog/index.d.ts.map +0 -1
  332. package/dist/disclosure/index.d.ts +0 -84
  333. package/dist/disclosure/index.d.ts.map +0 -1
  334. package/dist/gridlist/index.d.ts +0 -92
  335. package/dist/gridlist/index.d.ts.map +0 -1
  336. package/dist/icon/icons/GitHubIcon.d.ts +0 -7
  337. package/dist/icon/icons/GitHubIcon.d.ts.map +0 -1
  338. package/dist/icon/index.d.ts +0 -28
  339. package/dist/icon/index.d.ts.map +0 -1
  340. package/dist/index.js.map +0 -7
  341. package/dist/index.ssr.js +0 -6631
  342. package/dist/index.ssr.js.map +0 -7
  343. package/dist/landmark/index.d.ts +0 -83
  344. package/dist/landmark/index.d.ts.map +0 -1
  345. package/dist/link/index.d.ts +0 -39
  346. package/dist/link/index.d.ts.map +0 -1
  347. package/dist/listbox/index.d.ts +0 -47
  348. package/dist/listbox/index.d.ts.map +0 -1
  349. package/dist/menu/index.d.ts +0 -74
  350. package/dist/menu/index.d.ts.map +0 -1
  351. package/dist/meter/index.d.ts +0 -49
  352. package/dist/meter/index.d.ts.map +0 -1
  353. package/dist/numberfield/index.d.ts +0 -50
  354. package/dist/numberfield/index.d.ts.map +0 -1
  355. package/dist/popover/index.d.ts +0 -85
  356. package/dist/popover/index.d.ts.map +0 -1
  357. package/dist/progress-bar/index.d.ts +0 -49
  358. package/dist/progress-bar/index.d.ts.map +0 -1
  359. package/dist/radio/index.d.ts +0 -46
  360. package/dist/radio/index.d.ts.map +0 -1
  361. package/dist/searchfield/index.d.ts +0 -44
  362. package/dist/searchfield/index.d.ts.map +0 -1
  363. package/dist/select/index.d.ts +0 -72
  364. package/dist/select/index.d.ts.map +0 -1
  365. package/dist/separator/index.d.ts +0 -42
  366. package/dist/separator/index.d.ts.map +0 -1
  367. package/dist/slider/index.d.ts +0 -53
  368. package/dist/slider/index.d.ts.map +0 -1
  369. package/dist/switch/ToggleSwitch.d.ts +0 -28
  370. package/dist/switch/ToggleSwitch.d.ts.map +0 -1
  371. package/dist/switch/index.d.ts +0 -26
  372. package/dist/switch/index.d.ts.map +0 -1
  373. package/dist/table/index.d.ts +0 -140
  374. package/dist/table/index.d.ts.map +0 -1
  375. package/dist/tabs/index.d.ts +0 -56
  376. package/dist/tabs/index.d.ts.map +0 -1
  377. package/dist/tag-group/index.d.ts +0 -80
  378. package/dist/tag-group/index.d.ts.map +0 -1
  379. package/dist/test-utils/index.d.ts +0 -44
  380. package/dist/test-utils/index.d.ts.map +0 -1
  381. package/dist/textfield/index.d.ts +0 -31
  382. package/dist/textfield/index.d.ts.map +0 -1
  383. package/dist/toast/index.d.ts +0 -101
  384. package/dist/toast/index.d.ts.map +0 -1
  385. package/dist/toolbar/index.d.ts +0 -42
  386. package/dist/toolbar/index.d.ts.map +0 -1
  387. package/dist/tooltip/index.d.ts +0 -78
  388. package/dist/tooltip/index.d.ts.map +0 -1
  389. package/dist/tree/index.d.ts +0 -99
  390. package/dist/tree/index.d.ts.map +0 -1
  391. package/src/alert/index.tsx +0 -48
  392. package/src/assets/favicon.png +0 -0
  393. package/src/assets/fire.gif +0 -0
  394. package/src/autocomplete/index.tsx +0 -313
  395. package/src/avatar/index.tsx +0 -75
  396. package/src/badge/index.tsx +0 -43
  397. package/src/breadcrumbs/index.tsx +0 -207
  398. package/src/button/Button.tsx +0 -74
  399. package/src/button/index.ts +0 -2
  400. package/src/button/types.ts +0 -24
  401. package/src/calendar/DateField.tsx +0 -200
  402. package/src/calendar/DatePicker.tsx +0 -298
  403. package/src/calendar/RangeCalendar.tsx +0 -236
  404. package/src/calendar/TimeField.tsx +0 -196
  405. package/src/calendar/index.tsx +0 -223
  406. package/src/checkbox/index.tsx +0 -257
  407. package/src/color/index.tsx +0 -687
  408. package/src/combobox/index.tsx +0 -383
  409. package/src/dialog/Dialog.tsx +0 -260
  410. package/src/dialog/index.tsx +0 -3
  411. package/src/disclosure/index.tsx +0 -307
  412. package/src/gridlist/index.tsx +0 -403
  413. package/src/icon/icons/GitHubIcon.tsx +0 -20
  414. package/src/icon/index.tsx +0 -48
  415. package/src/landmark/index.tsx +0 -231
  416. package/src/link/index.tsx +0 -130
  417. package/src/listbox/index.tsx +0 -231
  418. package/src/menu/index.tsx +0 -297
  419. package/src/meter/index.tsx +0 -163
  420. package/src/numberfield/index.tsx +0 -482
  421. package/src/popover/index.tsx +0 -260
  422. package/src/progress-bar/index.tsx +0 -169
  423. package/src/radio/index.tsx +0 -173
  424. package/src/searchfield/index.tsx +0 -453
  425. package/src/select/index.tsx +0 -349
  426. package/src/separator/index.tsx +0 -141
  427. package/src/slider/index.tsx +0 -382
  428. package/src/switch/ToggleSwitch.tsx +0 -112
  429. package/src/switch/index.tsx +0 -90
  430. package/src/table/index.tsx +0 -531
  431. package/src/tabs/index.tsx +0 -273
  432. package/src/tag-group/index.tsx +0 -240
  433. package/src/test-utils/index.ts +0 -40
  434. package/src/textfield/index.tsx +0 -211
  435. package/src/toast/index.tsx +0 -324
  436. package/src/toolbar/index.tsx +0 -108
  437. package/src/tooltip/index.tsx +0 -197
  438. package/src/tree/index.tsx +0 -494
@@ -0,0 +1 @@
1
+ export * from "@proyecto-viviana/solid-spectrum/ColorField";
@@ -0,0 +1 @@
1
+ export * from "@proyecto-viviana/solid-spectrum/ColorField";
@@ -0,0 +1,2 @@
1
+ export * from "@proyecto-viviana/solid-spectrum/ColorSlider";
2
+ //# sourceMappingURL=ColorSlider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColorSlider.d.ts","sourceRoot":"","sources":["../src/ColorSlider.ts"],"names":[],"mappings":"AAAA,cAAc,8CAA8C,CAAC"}
@@ -0,0 +1 @@
1
+ export * from "@proyecto-viviana/solid-spectrum/ColorSlider";
@@ -0,0 +1 @@
1
+ export * from "@proyecto-viviana/solid-spectrum/ColorSlider";
@@ -0,0 +1,2 @@
1
+ export * from "@proyecto-viviana/solid-spectrum/ColorSwatch";
2
+ //# sourceMappingURL=ColorSwatch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColorSwatch.d.ts","sourceRoot":"","sources":["../src/ColorSwatch.ts"],"names":[],"mappings":"AAAA,cAAc,8CAA8C,CAAC"}
@@ -0,0 +1 @@
1
+ export * from "@proyecto-viviana/solid-spectrum/ColorSwatch";
@@ -0,0 +1 @@
1
+ export * from "@proyecto-viviana/solid-spectrum/ColorSwatch";
@@ -0,0 +1,2 @@
1
+ export * from "@proyecto-viviana/solid-spectrum/ColorSwatchPicker";
2
+ //# sourceMappingURL=ColorSwatchPicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColorSwatchPicker.d.ts","sourceRoot":"","sources":["../src/ColorSwatchPicker.ts"],"names":[],"mappings":"AAAA,cAAc,oDAAoD,CAAC"}
@@ -0,0 +1 @@
1
+ export * from "@proyecto-viviana/solid-spectrum/ColorSwatchPicker";
@@ -0,0 +1 @@
1
+ export * from "@proyecto-viviana/solid-spectrum/ColorSwatchPicker";
@@ -0,0 +1,2 @@
1
+ export * from "@proyecto-viviana/solid-spectrum/ColorWheel";
2
+ //# sourceMappingURL=ColorWheel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColorWheel.d.ts","sourceRoot":"","sources":["../src/ColorWheel.ts"],"names":[],"mappings":"AAAA,cAAc,6CAA6C,CAAC"}
@@ -0,0 +1 @@
1
+ export * from "@proyecto-viviana/solid-spectrum/ColorWheel";
@@ -0,0 +1 @@
1
+ export * from "@proyecto-viviana/solid-spectrum/ColorWheel";
@@ -0,0 +1,3 @@
1
+ export * from "@proyecto-viviana/solid-spectrum/ContrastIcon";
2
+ export { default } from "@proyecto-viviana/solid-spectrum/ContrastIcon";
3
+ //# sourceMappingURL=ContrastIcon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContrastIcon.d.ts","sourceRoot":"","sources":["../src/ContrastIcon.ts"],"names":[],"mappings":"AAAA,cAAc,+CAA+C,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,+CAA+C,CAAC"}
@@ -0,0 +1,3 @@
1
+ import ContrastIcon_default from "@proyecto-viviana/solid-spectrum/ContrastIcon";
2
+ export * from "@proyecto-viviana/solid-spectrum/ContrastIcon";
3
+ export { ContrastIcon_default as default };
@@ -0,0 +1,3 @@
1
+ import ContrastIcon_default from "@proyecto-viviana/solid-spectrum/ContrastIcon";
2
+ export * from "@proyecto-viviana/solid-spectrum/ContrastIcon";
3
+ export { ContrastIcon_default as default };
@@ -0,0 +1,2 @@
1
+ export * from "./custom/conversation";
2
+ //# sourceMappingURL=Conversation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Conversation.d.ts","sourceRoot":"","sources":["../src/Conversation.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,176 @@
1
+ import { Avatar } from "@proyecto-viviana/solid-spectrum";
2
+ import { className, createComponent, effect, getNextElement, getNextMarker, insert, memo, template } from "solid-js/web";
3
+ import { For, Show } from "solid-js";
4
+ import { Button } from "@proyecto-viviana/solidaria-components";
5
+ //#region src/custom/conversation/index.tsx
6
+ var _tmpl$ = /*#__PURE__*/ template(`<span class=" uk151 ucJ9TBTb151 ud3Euai151 uea151 ugb151 uhd151 uje151 u2NhKxcl151 uic151 -_6BNtrc-b151 vx151 xc151 _xa151 xfd151 _xfa151 xfX0cczbc151 _xfX0cczba151 _Fd151 _FnuYUweb151 pO550xe151 _va151">`), _tmpl$2 = /*#__PURE__*/ template(`<p class=" uk151 ucJ9TBTb151 ud3Euai151 uea151 ugb151 uhd151 uje151 u2NhKxcl151 uic151 -_6BNtrc-b151 vx151 xb151 _xa151 _Fd151 _FnuYUweb151 pO550xe151 _Nc151 Pc151 _Yb151 _7c151">`), _tmpl$3 = /*#__PURE__*/ template(`<div class=" sd151 _ta151 Ua151 qa151 _ub151 Na151"><div class=" sd151 eb151 _Ce151 Ue151 qe151"><span class=" uk151 ucJ9TBTb151 ud3Euai151 uea151 ugb151 uhd151 uje151 u2NhKxcl151 uic151 -_6BNtrc-c151 vx151 xd151 _xa151 xX0cczbc151 _xX0cczba151 _Fd151 _FnuYUweb151 pXDQpyb151 _Nc151 Pc151 _Yb151 _7c151"></span><!$><!/></div><!$><!/>`), _tmpl$4 = /*#__PURE__*/ template(`<span class=" sd151 eb151 _Ca151 _va151 Zm151 Fn151 og151 ng151 kg151 jg151 uk151 ucJ9TBTb151 ud3Euai151 uea151 ugb151 uhd151 uje151 u2NhKxcl151 uic151 -_6BNtrc-b151 vx151 xd151 _xa151 xX0cczbc151 _xX0cczba151 _Fd151 _FnuYUweb151 padAQ7151 gj1j4Pd151">`), _tmpl$5 = /*#__PURE__*/ template(`<span>`), _tmpl$6 = /*#__PURE__*/ template(`<div><div><p></p><!$><!/>`), _tmpl$7 = /*#__PURE__*/ template(`<div>`);
7
+ const preview = " sd151 eb151 Ug151 qg151 Za151 Te151 Qe151 Se151 Re151 oc151 nc151 kc151 jc151 _Wd151 ry151 g9151 _je151";
8
+ function ConversationPreview(props) {
9
+ return createComponent(Button, {
10
+ type: "button",
11
+ get ["class"]() {
12
+ return `${preview} ${props.class ?? ""}`;
13
+ },
14
+ onPress: () => props.onClick?.(),
15
+ get children() {
16
+ return [
17
+ createComponent(Avatar, {
18
+ get src() {
19
+ return props.user.avatar;
20
+ },
21
+ get alt() {
22
+ return props.user.name;
23
+ },
24
+ get online() {
25
+ return props.user.online;
26
+ },
27
+ size: "md"
28
+ }),
29
+ (() => {
30
+ var _el$ = getNextElement(_tmpl$3), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$5 = _el$3.nextSibling, [_el$6, _co$] = getNextMarker(_el$5.nextSibling), _el$8 = _el$2.nextSibling, [_el$9, _co$2] = getNextMarker(_el$8.nextSibling);
31
+ insert(_el$3, () => props.user.name);
32
+ insert(_el$2, createComponent(Show, {
33
+ get when() {
34
+ return props.timestamp;
35
+ },
36
+ get children() {
37
+ var _el$4 = getNextElement(_tmpl$);
38
+ insert(_el$4, () => props.timestamp);
39
+ return _el$4;
40
+ }
41
+ }), _el$6, _co$);
42
+ insert(_el$, createComponent(Show, {
43
+ get when() {
44
+ return props.lastMessage;
45
+ },
46
+ get children() {
47
+ var _el$7 = getNextElement(_tmpl$2);
48
+ insert(_el$7, () => props.lastMessage);
49
+ return _el$7;
50
+ }
51
+ }), _el$9, _co$2);
52
+ return _el$;
53
+ })(),
54
+ createComponent(Show, {
55
+ get when() {
56
+ return memo(() => !!props.unreadCount)() && props.unreadCount > 0;
57
+ },
58
+ get children() {
59
+ var _el$0 = getNextElement(_tmpl$4);
60
+ insert(_el$0, () => props.unreadCount);
61
+ return _el$0;
62
+ }
63
+ })
64
+ ];
65
+ }
66
+ });
67
+ }
68
+ const bubbleRow = function anonymous(props) {
69
+ let rules = " ";
70
+ rules += " sd151";
71
+ if (props.isUser) rules += " _Cb151";
72
+ else rules += " _Cg151";
73
+ return rules;
74
+ };
75
+ const bubble = function anonymous(props) {
76
+ let rules = " ";
77
+ rules += " sd151";
78
+ rules += " _ta151";
79
+ rules += " Ua151";
80
+ rules += " qa151";
81
+ rules += " LbmOfn151";
82
+ rules += " Sf151";
83
+ rules += " Rf151";
84
+ rules += " Tt151";
85
+ rules += " Qt151";
86
+ rules += " oc151";
87
+ rules += " nc151";
88
+ rules += " kc151";
89
+ rules += " jc151";
90
+ if (props.isUser) rules += " gj1j4Pd151";
91
+ else rules += " gg0eWE151";
92
+ if (props.isUser) rules += " padAQ7151";
93
+ else rules += " pXDQpyb151";
94
+ return rules;
95
+ };
96
+ const bubbleTime = function anonymous(props) {
97
+ let rules = " ";
98
+ rules += " uk151";
99
+ rules += " ucJ9TBTb151";
100
+ rules += " ud3Euai151";
101
+ rules += " uea151";
102
+ rules += " ugb151";
103
+ rules += " uhd151";
104
+ rules += " uje151";
105
+ rules += " u2NhKxcl151";
106
+ rules += " uic151";
107
+ rules += " -_6BNtrc-b151";
108
+ rules += " vx151";
109
+ rules += " xc151";
110
+ rules += " _xa151";
111
+ rules += " xfd151";
112
+ rules += " _xfa151";
113
+ rules += " xfX0cczbc151";
114
+ rules += " _xfX0cczba151";
115
+ rules += " _Fd151";
116
+ rules += " _FnuYUweb151";
117
+ if (props.isUser) rules += " padAQ7151";
118
+ else rules += " pO550xe151";
119
+ return rules;
120
+ };
121
+ function ConversationBubble(props) {
122
+ const isUser = () => props.sender === "user";
123
+ return (() => {
124
+ var _el$1 = getNextElement(_tmpl$6), _el$10 = _el$1.firstChild, _el$11 = _el$10.firstChild, _el$13 = _el$11.nextSibling, [_el$14, _co$3] = getNextMarker(_el$13.nextSibling);
125
+ insert(_el$11, () => props.content);
126
+ insert(_el$10, createComponent(Show, {
127
+ get when() {
128
+ return props.timestamp;
129
+ },
130
+ get children() {
131
+ var _el$12 = getNextElement(_tmpl$5);
132
+ insert(_el$12, () => props.timestamp);
133
+ effect(() => className(_el$12, bubbleTime({ isUser: isUser() })));
134
+ return _el$12;
135
+ }
136
+ }), _el$14, _co$3);
137
+ effect((_p$) => {
138
+ var _v$ = `${bubbleRow({ isUser: isUser() })} ${props.class ?? ""}`, _v$2 = bubble({ isUser: isUser() });
139
+ _v$ !== _p$.e && className(_el$1, _p$.e = _v$);
140
+ _v$2 !== _p$.t && className(_el$10, _p$.t = _v$2);
141
+ return _p$;
142
+ }, {
143
+ e: void 0,
144
+ t: void 0
145
+ });
146
+ return _el$1;
147
+ })();
148
+ }
149
+ const thread = " sd151 _ta151 Ue151 qe151 Tf151 Qf151 Sf151 Rf151";
150
+ function Conversation(props) {
151
+ return (() => {
152
+ var _el$15 = getNextElement(_tmpl$7);
153
+ insert(_el$15, createComponent(For, {
154
+ get each() {
155
+ return props.messages;
156
+ },
157
+ children: (message) => createComponent(ConversationBubble, {
158
+ get content() {
159
+ return message.content;
160
+ },
161
+ get sender() {
162
+ return message.sender;
163
+ },
164
+ get timestamp() {
165
+ return message.timestamp;
166
+ }
167
+ })
168
+ }));
169
+ effect(() => className(_el$15, `${thread} ${props.class ?? ""}`));
170
+ return _el$15;
171
+ })();
172
+ }
173
+ //#endregion
174
+ export { Conversation, ConversationBubble, ConversationPreview };
175
+
176
+ //# sourceMappingURL=Conversation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Conversation.js","names":[],"sources":["../src/custom/conversation/index.tsx"],"sourcesContent":["import { Show, For } from \"solid-js\";\nimport { Avatar } from \"@proyecto-viviana/solid-spectrum\";\nimport { Button as HeadlessButton } from \"@proyecto-viviana/solidaria-components\";\n// Styled via the S2 style() macro through viviana's own seam (../../style →\n// src/style.ts). A conversation preview row, message bubbles, and a thread\n// list, on the S2 spacing/radius ramps in Silapse colors.\nimport { style } from \"../../style\" with { type: \"macro\" };\n\nexport interface Message {\n id: string;\n content: string;\n sender: \"user\" | \"other\";\n timestamp?: string;\n}\n\nexport interface ConversationPreviewProps {\n user: {\n name: string;\n avatar?: string;\n online?: boolean;\n };\n lastMessage?: string;\n unreadCount?: number;\n timestamp?: string;\n onClick?: () => void;\n class?: string;\n}\n\nconst preview = style({\n display: \"flex\",\n alignItems: \"center\",\n gap: 12,\n width: \"full\",\n padding: 12,\n borderRadius: \"lg\",\n textAlign: \"start\",\n cursor: \"pointer\",\n backgroundColor: \"transparent\",\n borderStyle: \"none\",\n});\n\nconst previewBody = style({\n display: \"flex\",\n flexDirection: \"column\",\n gap: 2,\n flexGrow: 1,\n minWidth: 0,\n});\n\nconst previewTop = style({\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n gap: 8,\n});\n\nconst previewName = style({\n font: \"ui\",\n fontWeight: \"bold\",\n color: \"[var(--color-primary-100)]\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n});\n\nconst previewTime = style({\n font: \"detail-sm\",\n // `--color-text-muted` renders ~1.7:1 light / ~2.4:1 dark on the `bg-200`\n // panel (fails AA both modes); the flipping `--color-text` clears it. Muting\n // is carried by the smaller `detail-sm` size, not a sub-AA color.\n color: \"[var(--color-text)]\",\n flexShrink: 0,\n});\n\nconst previewMessage = style({\n font: \"ui-sm\",\n // `--color-text-secondary` renders 3.84:1 on the light `bg-200` panel (fails\n // the 4.5 small-text floor); the flipping `--color-text` clears both themes.\n color: \"[var(--color-text)]\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n});\n\nconst unread = style({\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flexShrink: 0,\n width: 20,\n height: 20,\n borderRadius: \"full\",\n font: \"detail-sm\",\n fontWeight: \"bold\",\n backgroundColor: \"[var(--color-accent)]\",\n // Text on the non-flipping pink `--color-accent` fill: the near-white\n // `--color-bg-400` gives only 2.74:1 in light mode (fail). `--color-grey-900`\n // (the darkest token) reaches ~5.2:1 light / ~6.1:1 dark — the Chip accent-fill\n // resolution.\n color: \"[var(--color-grey-900)]\",\n});\n\nexport function ConversationPreview(props: ConversationPreviewProps) {\n return (\n <HeadlessButton\n type=\"button\"\n class={`${preview} ${props.class ?? \"\"}`}\n onPress={() => props.onClick?.()}\n >\n <Avatar src={props.user.avatar} alt={props.user.name} online={props.user.online} size=\"md\" />\n <div class={previewBody}>\n <div class={previewTop}>\n <span class={previewName}>{props.user.name}</span>\n <Show when={props.timestamp}>\n <span class={previewTime}>{props.timestamp}</span>\n </Show>\n </div>\n <Show when={props.lastMessage}>\n <p class={previewMessage}>{props.lastMessage}</p>\n </Show>\n </div>\n <Show when={props.unreadCount && props.unreadCount > 0}>\n <span class={unread}>{props.unreadCount}</span>\n </Show>\n </HeadlessButton>\n );\n}\n\nexport interface ConversationBubbleProps {\n content: string;\n sender: \"user\" | \"other\";\n timestamp?: string;\n class?: string;\n}\n\nconst bubbleRow = style<{ isUser: boolean }>({\n display: \"flex\",\n justifyContent: { default: \"start\", isUser: \"end\" },\n});\n\nconst bubble = style<{ isUser: boolean }>({\n display: \"flex\",\n flexDirection: \"column\",\n gap: 2,\n maxWidth: \"[70%]\",\n paddingX: 16,\n paddingY: 8,\n borderRadius: \"lg\",\n backgroundColor: {\n default: \"[var(--color-bg-300)]\",\n isUser: \"[var(--color-accent)]\",\n },\n color: {\n // `other` bubble: `--color-primary-100` on the neutral `bg-300` fill (AA both\n // themes). `user` bubble text on the pink `--color-accent` fill: the near-white\n // `--color-bg-400` gives only 2.74:1 light (fail) → `--color-grey-900` (~5.2:1\n // light / ~6.1:1 dark), the Chip accent-fill resolution.\n default: \"[var(--color-primary-100)]\",\n isUser: \"[var(--color-grey-900)]\",\n },\n});\n\nconst bubbleTime = style<{ isUser: boolean }>({\n font: \"detail-sm\",\n color: {\n // `other` timestamp on `bg-300`: `--color-text-muted` fails AA both modes\n // (~2.2:1 light / ~2.8:1 dark) → the flipping `--color-text`. `user` timestamp\n // on the `--color-accent` fill: `--color-bg-300` gives 2.42:1 light (fail) →\n // `--color-grey-900` (matching the bubble body).\n default: \"[var(--color-text)]\",\n isUser: \"[var(--color-grey-900)]\",\n },\n});\n\nexport function ConversationBubble(props: ConversationBubbleProps) {\n const isUser = () => props.sender === \"user\";\n\n return (\n <div class={`${bubbleRow({ isUser: isUser() })} ${props.class ?? \"\"}`}>\n <div class={bubble({ isUser: isUser() })}>\n <p>{props.content}</p>\n <Show when={props.timestamp}>\n <span class={bubbleTime({ isUser: isUser() })}>{props.timestamp}</span>\n </Show>\n </div>\n </div>\n );\n}\n\nexport interface ConversationProps {\n messages: Message[];\n class?: string;\n}\n\nconst thread = style({\n display: \"flex\",\n flexDirection: \"column\",\n gap: 8,\n padding: 16,\n});\n\nexport function Conversation(props: ConversationProps) {\n return (\n <div class={`${thread} ${props.class ?? \"\"}`}>\n <For each={props.messages}>\n {(message) => (\n <ConversationBubble\n content={message.content}\n sender={message.sender}\n timestamp={message.timestamp}\n />\n )}\n </For>\n </div>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,106 @@
1
+ import { Avatar } from "@proyecto-viviana/solid-spectrum";
2
+ import { For, Show } from "solid-js";
3
+ import { Button } from "@proyecto-viviana/solidaria-components";
4
+ //#region src/custom/conversation/index.tsx
5
+ const preview = " sd151 eb151 Ug151 qg151 Za151 Te151 Qe151 Se151 Re151 oc151 nc151 kc151 jc151 _Wd151 ry151 g9151 _je151";
6
+ const previewBody = " sd151 _ta151 Ua151 qa151 _ub151 Na151";
7
+ const previewTop = " sd151 eb151 _Ce151 Ue151 qe151";
8
+ const previewName = " uk151 ucJ9TBTb151 ud3Euai151 uea151 ugb151 uhd151 uje151 u2NhKxcl151 uic151 -_6BNtrc-c151 vx151 xd151 _xa151 xX0cczbc151 _xX0cczba151 _Fd151 _FnuYUweb151 pXDQpyb151 _Nc151 Pc151 _Yb151 _7c151";
9
+ const previewTime = " uk151 ucJ9TBTb151 ud3Euai151 uea151 ugb151 uhd151 uje151 u2NhKxcl151 uic151 -_6BNtrc-b151 vx151 xc151 _xa151 xfd151 _xfa151 xfX0cczbc151 _xfX0cczba151 _Fd151 _FnuYUweb151 pO550xe151 _va151";
10
+ const previewMessage = " uk151 ucJ9TBTb151 ud3Euai151 uea151 ugb151 uhd151 uje151 u2NhKxcl151 uic151 -_6BNtrc-b151 vx151 xb151 _xa151 _Fd151 _FnuYUweb151 pO550xe151 _Nc151 Pc151 _Yb151 _7c151";
11
+ const unread = " sd151 eb151 _Ca151 _va151 Zm151 Fn151 og151 ng151 kg151 jg151 uk151 ucJ9TBTb151 ud3Euai151 uea151 ugb151 uhd151 uje151 u2NhKxcl151 uic151 -_6BNtrc-b151 vx151 xd151 _xa151 xX0cczbc151 _xX0cczba151 _Fd151 _FnuYUweb151 padAQ7151 gj1j4Pd151";
12
+ function ConversationPreview(props) {
13
+ return <Button type="button" class={`${preview} ${props.class ?? ""}`} onPress={() => props.onClick?.()}>
14
+ <Avatar src={props.user.avatar} alt={props.user.name} online={props.user.online} size="md" />
15
+ <div class={previewBody}>
16
+ <div class={previewTop}>
17
+ <span class={previewName}>{props.user.name}</span>
18
+ <Show when={props.timestamp}>
19
+ <span class={previewTime}>{props.timestamp}</span>
20
+ </Show>
21
+ </div>
22
+ <Show when={props.lastMessage}>
23
+ <p class={previewMessage}>{props.lastMessage}</p>
24
+ </Show>
25
+ </div>
26
+ <Show when={props.unreadCount && props.unreadCount > 0}>
27
+ <span class={unread}>{props.unreadCount}</span>
28
+ </Show>
29
+ </Button>;
30
+ }
31
+ const bubbleRow = function anonymous(props) {
32
+ let rules = " ";
33
+ rules += " sd151";
34
+ if (props.isUser) rules += " _Cb151";
35
+ else rules += " _Cg151";
36
+ return rules;
37
+ };
38
+ const bubble = function anonymous(props) {
39
+ let rules = " ";
40
+ rules += " sd151";
41
+ rules += " _ta151";
42
+ rules += " Ua151";
43
+ rules += " qa151";
44
+ rules += " LbmOfn151";
45
+ rules += " Sf151";
46
+ rules += " Rf151";
47
+ rules += " Tt151";
48
+ rules += " Qt151";
49
+ rules += " oc151";
50
+ rules += " nc151";
51
+ rules += " kc151";
52
+ rules += " jc151";
53
+ if (props.isUser) rules += " gj1j4Pd151";
54
+ else rules += " gg0eWE151";
55
+ if (props.isUser) rules += " padAQ7151";
56
+ else rules += " pXDQpyb151";
57
+ return rules;
58
+ };
59
+ const bubbleTime = function anonymous(props) {
60
+ let rules = " ";
61
+ rules += " uk151";
62
+ rules += " ucJ9TBTb151";
63
+ rules += " ud3Euai151";
64
+ rules += " uea151";
65
+ rules += " ugb151";
66
+ rules += " uhd151";
67
+ rules += " uje151";
68
+ rules += " u2NhKxcl151";
69
+ rules += " uic151";
70
+ rules += " -_6BNtrc-b151";
71
+ rules += " vx151";
72
+ rules += " xc151";
73
+ rules += " _xa151";
74
+ rules += " xfd151";
75
+ rules += " _xfa151";
76
+ rules += " xfX0cczbc151";
77
+ rules += " _xfX0cczba151";
78
+ rules += " _Fd151";
79
+ rules += " _FnuYUweb151";
80
+ if (props.isUser) rules += " padAQ7151";
81
+ else rules += " pO550xe151";
82
+ return rules;
83
+ };
84
+ function ConversationBubble(props) {
85
+ const isUser = () => props.sender === "user";
86
+ return <div class={`${bubbleRow({ isUser: isUser() })} ${props.class ?? ""}`}>
87
+ <div class={bubble({ isUser: isUser() })}>
88
+ <p>{props.content}</p>
89
+ <Show when={props.timestamp}>
90
+ <span class={bubbleTime({ isUser: isUser() })}>{props.timestamp}</span>
91
+ </Show>
92
+ </div>
93
+ </div>;
94
+ }
95
+ const thread = " sd151 _ta151 Ue151 qe151 Tf151 Qf151 Sf151 Rf151";
96
+ function Conversation(props) {
97
+ return <div class={`${thread} ${props.class ?? ""}`}>
98
+ <For each={props.messages}>
99
+ {(message) => <ConversationBubble content={message.content} sender={message.sender} timestamp={message.timestamp} />}
100
+ </For>
101
+ </div>;
102
+ }
103
+ //#endregion
104
+ export { Conversation, ConversationBubble, ConversationPreview };
105
+
106
+ //# sourceMappingURL=Conversation.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Conversation.jsx","names":[],"sources":["../src/custom/conversation/index.tsx"],"sourcesContent":["import { Show, For } from \"solid-js\";\nimport { Avatar } from \"@proyecto-viviana/solid-spectrum\";\nimport { Button as HeadlessButton } from \"@proyecto-viviana/solidaria-components\";\n// Styled via the S2 style() macro through viviana's own seam (../../style →\n// src/style.ts). A conversation preview row, message bubbles, and a thread\n// list, on the S2 spacing/radius ramps in Silapse colors.\nimport { style } from \"../../style\" with { type: \"macro\" };\n\nexport interface Message {\n id: string;\n content: string;\n sender: \"user\" | \"other\";\n timestamp?: string;\n}\n\nexport interface ConversationPreviewProps {\n user: {\n name: string;\n avatar?: string;\n online?: boolean;\n };\n lastMessage?: string;\n unreadCount?: number;\n timestamp?: string;\n onClick?: () => void;\n class?: string;\n}\n\nconst preview = style({\n display: \"flex\",\n alignItems: \"center\",\n gap: 12,\n width: \"full\",\n padding: 12,\n borderRadius: \"lg\",\n textAlign: \"start\",\n cursor: \"pointer\",\n backgroundColor: \"transparent\",\n borderStyle: \"none\",\n});\n\nconst previewBody = style({\n display: \"flex\",\n flexDirection: \"column\",\n gap: 2,\n flexGrow: 1,\n minWidth: 0,\n});\n\nconst previewTop = style({\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n gap: 8,\n});\n\nconst previewName = style({\n font: \"ui\",\n fontWeight: \"bold\",\n color: \"[var(--color-primary-100)]\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n});\n\nconst previewTime = style({\n font: \"detail-sm\",\n // `--color-text-muted` renders ~1.7:1 light / ~2.4:1 dark on the `bg-200`\n // panel (fails AA both modes); the flipping `--color-text` clears it. Muting\n // is carried by the smaller `detail-sm` size, not a sub-AA color.\n color: \"[var(--color-text)]\",\n flexShrink: 0,\n});\n\nconst previewMessage = style({\n font: \"ui-sm\",\n // `--color-text-secondary` renders 3.84:1 on the light `bg-200` panel (fails\n // the 4.5 small-text floor); the flipping `--color-text` clears both themes.\n color: \"[var(--color-text)]\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n});\n\nconst unread = style({\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flexShrink: 0,\n width: 20,\n height: 20,\n borderRadius: \"full\",\n font: \"detail-sm\",\n fontWeight: \"bold\",\n backgroundColor: \"[var(--color-accent)]\",\n // Text on the non-flipping pink `--color-accent` fill: the near-white\n // `--color-bg-400` gives only 2.74:1 in light mode (fail). `--color-grey-900`\n // (the darkest token) reaches ~5.2:1 light / ~6.1:1 dark — the Chip accent-fill\n // resolution.\n color: \"[var(--color-grey-900)]\",\n});\n\nexport function ConversationPreview(props: ConversationPreviewProps) {\n return (\n <HeadlessButton\n type=\"button\"\n class={`${preview} ${props.class ?? \"\"}`}\n onPress={() => props.onClick?.()}\n >\n <Avatar src={props.user.avatar} alt={props.user.name} online={props.user.online} size=\"md\" />\n <div class={previewBody}>\n <div class={previewTop}>\n <span class={previewName}>{props.user.name}</span>\n <Show when={props.timestamp}>\n <span class={previewTime}>{props.timestamp}</span>\n </Show>\n </div>\n <Show when={props.lastMessage}>\n <p class={previewMessage}>{props.lastMessage}</p>\n </Show>\n </div>\n <Show when={props.unreadCount && props.unreadCount > 0}>\n <span class={unread}>{props.unreadCount}</span>\n </Show>\n </HeadlessButton>\n );\n}\n\nexport interface ConversationBubbleProps {\n content: string;\n sender: \"user\" | \"other\";\n timestamp?: string;\n class?: string;\n}\n\nconst bubbleRow = style<{ isUser: boolean }>({\n display: \"flex\",\n justifyContent: { default: \"start\", isUser: \"end\" },\n});\n\nconst bubble = style<{ isUser: boolean }>({\n display: \"flex\",\n flexDirection: \"column\",\n gap: 2,\n maxWidth: \"[70%]\",\n paddingX: 16,\n paddingY: 8,\n borderRadius: \"lg\",\n backgroundColor: {\n default: \"[var(--color-bg-300)]\",\n isUser: \"[var(--color-accent)]\",\n },\n color: {\n // `other` bubble: `--color-primary-100` on the neutral `bg-300` fill (AA both\n // themes). `user` bubble text on the pink `--color-accent` fill: the near-white\n // `--color-bg-400` gives only 2.74:1 light (fail) → `--color-grey-900` (~5.2:1\n // light / ~6.1:1 dark), the Chip accent-fill resolution.\n default: \"[var(--color-primary-100)]\",\n isUser: \"[var(--color-grey-900)]\",\n },\n});\n\nconst bubbleTime = style<{ isUser: boolean }>({\n font: \"detail-sm\",\n color: {\n // `other` timestamp on `bg-300`: `--color-text-muted` fails AA both modes\n // (~2.2:1 light / ~2.8:1 dark) → the flipping `--color-text`. `user` timestamp\n // on the `--color-accent` fill: `--color-bg-300` gives 2.42:1 light (fail) →\n // `--color-grey-900` (matching the bubble body).\n default: \"[var(--color-text)]\",\n isUser: \"[var(--color-grey-900)]\",\n },\n});\n\nexport function ConversationBubble(props: ConversationBubbleProps) {\n const isUser = () => props.sender === \"user\";\n\n return (\n <div class={`${bubbleRow({ isUser: isUser() })} ${props.class ?? \"\"}`}>\n <div class={bubble({ isUser: isUser() })}>\n <p>{props.content}</p>\n <Show when={props.timestamp}>\n <span class={bubbleTime({ isUser: isUser() })}>{props.timestamp}</span>\n </Show>\n </div>\n </div>\n );\n}\n\nexport interface ConversationProps {\n messages: Message[];\n class?: string;\n}\n\nconst thread = style({\n display: \"flex\",\n flexDirection: \"column\",\n gap: 8,\n padding: 16,\n});\n\nexport function Conversation(props: ConversationProps) {\n return (\n <div class={`${thread} ${props.class ?? \"\"}`}>\n <For each={props.messages}>\n {(message) => (\n <ConversationBubble\n content={message.content}\n sender={message.sender}\n timestamp={message.timestamp}\n />\n )}\n </For>\n </div>\n );\n}\n"],"mappings":";;;;AA4BA,MAAM,UAAA;AAaN,MAAM,cAAA;AAQN,MAAM,aAAA;AAON,MAAM,cAAA;AASN,MAAM,cAAA;AASN,MAAM,iBAAA;AAUN,MAAM,SAAA;AAkBN,SAAgB,oBAAoB,OAA+B;CACjE,OAAO,CACJ,OACC,cACA,OAAO,GAAG,QAAQ,GAAG,MAAM,SAAS,MACpC,eAAe,MAAM,UAAO,GAC7B;MACC,CAAC,OAAO,KAAK,MAAM,KAAK,QAAQ,KAAK,MAAM,KAAK,MAAM,QAAQ,MAAM,KAAK,QAAQ,YAAY;MAC7F,CAAC,IAAI,OAAO,aAAa;QACvB,CAAC,IAAI,OAAO,YAAY;UACtB,CAAC,KAAK,OAAO,cAAc,MAAM,KAAK,KAAI,EAAG,KAAK;UAClD,CAAC,KAAK,MAAM,MAAM,WAAW;YAC3B,CAAC,KAAK,OAAO,cAAc,MAAM,UAAS,EAAG,KAAK;UACpD,EAAE,KAAK;QACT,EAAE,IAAI;QACN,CAAC,KAAK,MAAM,MAAM,aAAa;UAC7B,CAAC,EAAE,OAAO,iBAAiB,MAAM,YAAW,EAAG,EAAE;QACnD,EAAE,KAAK;MACT,EAAE,IAAI;MACN,CAAC,KAAK,MAAM,MAAM,eAAe,MAAM,cAAc,GAAG;QACtD,CAAC,KAAK,OAAO,SAAS,MAAM,YAAW,EAAG,KAAK;MACjD,EAAE,KAAK;IACT,EAAE;AAEN;AASA,MAAM,YAAA,SAAA,UAAA,OAAA;;;;;;;AAKN,MAAM,SAAA,SAAA,UAAA,OAAA;;;;;;;;;;;;;;;;;;;;;AAsBN,MAAM,aAAA,SAAA,UAAA,OAAA;;;;;;;;;;;;;;;;;;;;;;;;;AAYN,SAAgB,mBAAmB,OAA8B;CAC/D,MAAM,eAAe,MAAM,WAAW;CAEtC,OAAO,CACJ,IAAI,OAAO,GAAG,UAAU,EAAE,QAAQ,OAAA,EAAS,CAAA,EAAG,GAAG,MAAM,SAAS,MAAM;MACrE,CAAC,IAAI,OAAO,OAAO,EAAE,QAAQ,OAAA,EAAS,CAAA,GAAI;QACxC,CAAC,GAAG,MAAM,QAAO,EAAG,EAAE;QACtB,CAAC,KAAK,MAAM,MAAM,WAAW;UAC3B,CAAC,KAAK,OAAO,WAAW,EAAE,QAAQ,OAAA,EAAS,CAAA,IAAK,MAAM,UAAS,EAAG,KAAK;QACzE,EAAE,KAAK;MACT,EAAE,IAAI;IACR,EAAE;AAEN;AAOA,MAAM,SAAA;AAON,SAAgB,aAAa,OAAwB;CACnD,OAAO,CACJ,IAAI,OAAO,GAAG,OAAO,GAAG,MAAM,SAAS,MAAM;MAC5C,CAAC,IAAI,MAAM,MAAM,UAAU;UACvB,YAAY,CACX,mBACC,SAAS,QAAQ,SACjB,QAAQ,QAAQ,QAChB,WAAW,QAAQ,cAErB;MACJ,EAAE,IAAI;IACR,EAAE;AAEN"}
@@ -0,0 +1,2 @@
1
+ export * from "@proyecto-viviana/solid-spectrum/Disclosure";
2
+ //# sourceMappingURL=Disclosure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Disclosure.d.ts","sourceRoot":"","sources":["../src/Disclosure.ts"],"names":[],"mappings":"AAAA,cAAc,6CAA6C,CAAC"}
@@ -0,0 +1 @@
1
+ export * from "@proyecto-viviana/solid-spectrum/Disclosure";
@@ -0,0 +1 @@
1
+ export * from "@proyecto-viviana/solid-spectrum/Disclosure";
@@ -0,0 +1,2 @@
1
+ export * from "./custom/event-card";
2
+ //# sourceMappingURL=EventCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventCard.d.ts","sourceRoot":"","sources":["../src/EventCard.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,171 @@
1
+ /* empty css */
2
+ import { Avatar } from "@proyecto-viviana/solid-spectrum";
3
+ import { className, createComponent, effect, getNextElement, getNextMarker, insert, memo, setAttribute, template } from "solid-js/web";
4
+ import { For, Show } from "solid-js";
5
+ import { Button } from "@proyecto-viviana/solidaria-components";
6
+ //#region src/custom/event-card/index.tsx
7
+ var _tmpl$ = /*#__PURE__*/ template(`<img class=" _Pa151 WJ151 _zI151 ZC151 Fx151 _Ha151"alt>`), _tmpl$2 = /*#__PURE__*/ template(`<img class=" Za151 fu4qurc151 _Hb151">`), _tmpl$3 = /*#__PURE__*/ template(`<div class=" sd151 eb151 Ub151 qb151"><span class=" pO550xe151">@</span><span>`), _tmpl$4 = /*#__PURE__*/ template(`<div class=" sd151 eb151 Ub151 qb151"><span class=" pO550xe151">⏱</span><span>`), _tmpl$5 = /*#__PURE__*/ template(`<div class=" sd151 eb151 Ul151 ql151 uk151 ucJ9TBTb151 ud3Euai151 uea151 ugb151 uhd151 uje151 u2NhKxcl151 uic151 -_6BNtrc-b151 vx151 xb151 _xa151 _Fd151 _FnuYUweb151 pO550xe151"><!$><!/><!$><!/>`), _tmpl$6 = /*#__PURE__*/ template(`<span class=" uk151 ucJ9TBTb151 ud3Euai151 uea151 ugb151 uhd151 uje151 u2NhKxcl151 uic151 -_6BNtrc-b151 vx151 xb151 _xa151 _Fd151 _FnuYUweb151 pO550xe151">+<!$><!/> más`), _tmpl$7 = /*#__PURE__*/ template(`<div class=" sd151 eb151 Ue151 qe151"><div class=" sd151 eb151 Ub151 qb151"></div><!$><!/>`), _tmpl$8 = /*#__PURE__*/ template(`<div class=" sd151 Ue151 qe151">`), _tmpl$9 = /*#__PURE__*/ template(`<div><!$><!/><!$><!/><div class=" sd151 _ta151 Ug151 qg151 Tf151 Qf151 Sf151 Rf151"><h3 class=" uk151 ucJ9TBTb151 ud3Euai151 uea151 ugb151 uhd151 uje151 u2NhKxcl151 uic151 -_6BNtrc-g151 vx151 xe151 _xa151 xX0cczbd151 _xX0cczba151 xfe151 _xfa151 xfX0cczbd151 _xfX0cczba151 _Fd151 _FnuYUweb151 pH0v9Fe151"></h3><!$><!/><!$><!/><!$><!/>`), _tmpl$0 = /*#__PURE__*/ template(`<img class=" ZF151 Fz151 _va151 ob151 nb151 kb151 jb151 _Hb151">`), _tmpl$1 = /*#__PURE__*/ template(`<p class=" uk151 ucJ9TBTb151 ud3Euai151 uea151 ugb151 uhd151 uje151 u2NhKxcl151 uic151 -_6BNtrc-b151 vx151 xb151 _xa151 _Fd151 _FnuYUweb151 pxeCuqc151 _Nc151 Pc151 _Yb151 _7c151">`), _tmpl$10 = /*#__PURE__*/ template(`<div class=" sd151 _ta151 _ub151 Na151"><h4 class=" uk151 ucJ9TBTb151 ud3Euai151 uea151 ugb151 uhd151 uje151 u2NhKxcl151 uic151 -_6BNtrc-c151 vx151 xc151 _xa151 _Fd151 _FnuYUweb151 pXDQpyb151 _Nc151 Pc151 _Yb151 _7c151"></h4><!$><!/>`);
8
+ const card = " _Pc151 sd151 _ta151 _Nc151 Pc151 oe151 ne151 ke151 je151 gDE5VE151 _nLeasBb151";
9
+ function EventCard(props) {
10
+ const displayedAttendees = () => props.attendees?.slice(0, 3) ?? [];
11
+ const remainingCount = () => {
12
+ return (props.attendeeCount ?? props.attendees?.length ?? 0) - displayedAttendees().length;
13
+ };
14
+ return (() => {
15
+ var _el$ = getNextElement(_tmpl$9), _el$31 = _el$.firstChild, [_el$32, _co$8] = getNextMarker(_el$31.nextSibling), _el$33 = _el$32.nextSibling, [_el$34, _co$9] = getNextMarker(_el$33.nextSibling), _el$4 = _el$34.nextSibling, _el$5 = _el$4.firstChild, _el$25 = _el$5.nextSibling, [_el$26, _co$5] = getNextMarker(_el$25.nextSibling), _el$27 = _el$26.nextSibling, [_el$28, _co$6] = getNextMarker(_el$27.nextSibling), _el$29 = _el$28.nextSibling, [_el$30, _co$7] = getNextMarker(_el$29.nextSibling);
16
+ insert(_el$, createComponent(Show, {
17
+ get when() {
18
+ return props.decorationImage;
19
+ },
20
+ get children() {
21
+ var _el$2 = getNextElement(_tmpl$);
22
+ effect(() => setAttribute(_el$2, "src", props.decorationImage));
23
+ return _el$2;
24
+ }
25
+ }), _el$32, _co$8);
26
+ insert(_el$, createComponent(Show, {
27
+ get when() {
28
+ return props.image;
29
+ },
30
+ get children() {
31
+ var _el$3 = getNextElement(_tmpl$2);
32
+ effect((_p$) => {
33
+ var _v$ = props.image, _v$2 = props.title;
34
+ _v$ !== _p$.e && setAttribute(_el$3, "src", _p$.e = _v$);
35
+ _v$2 !== _p$.t && setAttribute(_el$3, "alt", _p$.t = _v$2);
36
+ return _p$;
37
+ }, {
38
+ e: void 0,
39
+ t: void 0
40
+ });
41
+ return _el$3;
42
+ }
43
+ }), _el$34, _co$9);
44
+ insert(_el$5, () => props.title);
45
+ insert(_el$4, createComponent(Show, {
46
+ get when() {
47
+ return props.date || props.author;
48
+ },
49
+ get children() {
50
+ var _el$6 = getNextElement(_tmpl$5), _el$11 = _el$6.firstChild, [_el$12, _co$] = getNextMarker(_el$11.nextSibling), _el$13 = _el$12.nextSibling, [_el$14, _co$2] = getNextMarker(_el$13.nextSibling);
51
+ insert(_el$6, createComponent(Show, {
52
+ get when() {
53
+ return props.author;
54
+ },
55
+ get children() {
56
+ var _el$7 = getNextElement(_tmpl$3), _el$9 = _el$7.firstChild.nextSibling;
57
+ insert(_el$9, () => props.author);
58
+ return _el$7;
59
+ }
60
+ }), _el$12, _co$);
61
+ insert(_el$6, createComponent(Show, {
62
+ get when() {
63
+ return props.date;
64
+ },
65
+ get children() {
66
+ var _el$0 = getNextElement(_tmpl$4), _el$10 = _el$0.firstChild.nextSibling;
67
+ insert(_el$10, () => props.date);
68
+ return _el$0;
69
+ }
70
+ }), _el$14, _co$2);
71
+ return _el$6;
72
+ }
73
+ }), _el$26, _co$5);
74
+ insert(_el$4, createComponent(Show, {
75
+ get when() {
76
+ return displayedAttendees().length > 0;
77
+ },
78
+ get children() {
79
+ var _el$15 = getNextElement(_tmpl$7), _el$16 = _el$15.firstChild, _el$22 = _el$16.nextSibling, [_el$23, _co$4] = getNextMarker(_el$22.nextSibling);
80
+ insert(_el$16, createComponent(For, {
81
+ get each() {
82
+ return displayedAttendees();
83
+ },
84
+ children: (attendee) => createComponent(Avatar, {
85
+ get src() {
86
+ return attendee.avatar;
87
+ },
88
+ get alt() {
89
+ return attendee.name;
90
+ },
91
+ size: "sm"
92
+ })
93
+ }));
94
+ insert(_el$15, createComponent(Show, {
95
+ get when() {
96
+ return remainingCount() > 0;
97
+ },
98
+ get children() {
99
+ var _el$17 = getNextElement(_tmpl$6), _el$20 = _el$17.firstChild.nextSibling, [_el$21, _co$3] = getNextMarker(_el$20.nextSibling);
100
+ _el$21.nextSibling;
101
+ insert(_el$17, remainingCount, _el$21, _co$3);
102
+ return _el$17;
103
+ }
104
+ }), _el$23, _co$4);
105
+ return _el$15;
106
+ }
107
+ }), _el$28, _co$6);
108
+ insert(_el$4, createComponent(Show, {
109
+ get when() {
110
+ return props.actions;
111
+ },
112
+ get children() {
113
+ var _el$24 = getNextElement(_tmpl$8);
114
+ insert(_el$24, (() => {
115
+ var _c$ = memo(() => typeof props.actions === "function");
116
+ return () => _c$() ? props.actions() : props.actions;
117
+ })());
118
+ return _el$24;
119
+ }
120
+ }), _el$30, _co$7);
121
+ effect(() => className(_el$, `${card} ${props.class ?? ""}`));
122
+ return _el$;
123
+ })();
124
+ }
125
+ const listItem = " sd151 eb151 Ug151 qg151 Za151 Tt151 Qt151 St151 Rt151 oc151 nc151 kc151 jc151 _Wd151 ry151 g9151 _je151";
126
+ function EventListItem(props) {
127
+ return createComponent(Button, {
128
+ get ["class"]() {
129
+ return `${listItem} ${props.class ?? ""}`;
130
+ },
131
+ onPress: () => props.onClick?.(),
132
+ get children() {
133
+ return [createComponent(Show, {
134
+ get when() {
135
+ return props.image;
136
+ },
137
+ get children() {
138
+ var _el$35 = getNextElement(_tmpl$0);
139
+ effect((_p$) => {
140
+ var _v$3 = props.image, _v$4 = props.title;
141
+ _v$3 !== _p$.e && setAttribute(_el$35, "src", _p$.e = _v$3);
142
+ _v$4 !== _p$.t && setAttribute(_el$35, "alt", _p$.t = _v$4);
143
+ return _p$;
144
+ }, {
145
+ e: void 0,
146
+ t: void 0
147
+ });
148
+ return _el$35;
149
+ }
150
+ }), (() => {
151
+ var _el$36 = getNextElement(_tmpl$10), _el$37 = _el$36.firstChild, _el$39 = _el$37.nextSibling, [_el$40, _co$0] = getNextMarker(_el$39.nextSibling);
152
+ insert(_el$37, () => props.title);
153
+ insert(_el$36, createComponent(Show, {
154
+ get when() {
155
+ return props.subtitle;
156
+ },
157
+ get children() {
158
+ var _el$38 = getNextElement(_tmpl$1);
159
+ insert(_el$38, () => props.subtitle);
160
+ return _el$38;
161
+ }
162
+ }), _el$40, _co$0);
163
+ return _el$36;
164
+ })()];
165
+ }
166
+ });
167
+ }
168
+ //#endregion
169
+ export { EventCard, EventListItem };
170
+
171
+ //# sourceMappingURL=EventCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventCard.js","names":[],"sources":["../src/custom/event-card/index.tsx"],"sourcesContent":["import type { JSX } from \"solid-js\";\nimport { Show, For } from \"solid-js\";\nimport { Avatar } from \"@proyecto-viviana/solid-spectrum\";\nimport { Button as HeadlessButton } from \"@proyecto-viviana/solidaria-components\";\n// Styled via the S2 style() macro through viviana's own seam (../../style →\n// src/style.ts). An event summary card (S2 Card shape: preview + content +\n// footer) plus a compact list-item variant, on the S2 ramps in Silapse colors.\nimport { style } from \"../../style\" with { type: \"macro\" };\n\nexport interface EventCardProps {\n title: string;\n image?: string;\n date?: string;\n author?: string;\n authorAvatar?: string;\n attendees?: { avatar?: string; name: string }[];\n attendeeCount?: number;\n decorationImage?: string;\n /**\n * Actions to display below the event.\n * Use a function returning JSX for SSR compatibility: `actions={() => <Button>...</Button>}`\n */\n actions?: JSX.Element | (() => JSX.Element);\n class?: string;\n}\n\nconst card = style({\n position: \"relative\",\n display: \"flex\",\n flexDirection: \"column\",\n overflow: \"hidden\",\n borderRadius: \"xl\",\n backgroundColor: \"[var(--color-bg-200)]\",\n boxShadow: \"elevated\",\n});\n\nconst decoration = style({\n position: \"absolute\",\n top: 8,\n insetEnd: 8,\n width: 32,\n height: 32,\n objectFit: \"contain\",\n});\n\nconst preview = style({\n width: \"full\",\n aspectRatio: \"16/9\",\n objectFit: \"cover\",\n});\n\nconst body = style({\n display: \"flex\",\n flexDirection: \"column\",\n gap: 12,\n padding: 16,\n});\n\nconst title = style({\n font: \"heading\",\n // WCAG AA fix: the title sits on the `--color-bg-200` card. `--color-accent`\n // (#df5c9a) is a fixed pink in BOTH themes, so it does not flip against a card\n // that is dark-grey in dark mode and light-blue in light mode — it read 4.48:1\n // dark / 1.89:1 light. `font: heading` renders 22px / weight 800, which is WCAG\n // large text via the BOLD path (≥18.66px && ≥700), NOT because it is ≥24px — so\n // the 3:1 large-text floor applies. `--color-accent-500` is the smallest ramp\n // step that flips with the theme (bright pink dark / deep magenta light) AND\n // clears 3:1 both ways (3.87:1 dark / 4.91:1 light), keeping the brand accent.\n color: \"[var(--color-accent-500)]\",\n});\n\nconst meta = style({\n display: \"flex\",\n alignItems: \"center\",\n gap: 16,\n font: \"ui-sm\",\n // WCAG AA fix: the meta text is small (`ui-sm`), so the 4.5:1 normal-text\n // floor applies. `--color-text-secondary` read only 3.84:1 on the light\n // `--color-bg-200` card; `--color-text` flips and clears 4.5:1 both ways\n // (15.33:1 dark / 7.53:1 light). Secondary de-emphasis rides on the smaller\n // `ui-sm` size rather than a sub-AA color.\n color: \"[var(--color-text)]\",\n});\n\nconst metaItem = style({\n display: \"flex\",\n alignItems: \"center\",\n gap: 4,\n});\n\nconst metaIcon = style({\n // WCAG AA fix: the meta glyphs (@ / ⏱) are small (inherit `ui-sm`), so the\n // 4.5:1 floor applies. `--color-accent` fails on the card (4.48:1 dark /\n // 1.89:1 light) and no pink ramp step clears 4.5:1 on both the dark-grey and\n // light-blue card, so the glyphs take the flipping `--color-text` like the\n // meta text they prefix.\n color: \"[var(--color-text)]\",\n});\n\nconst attendeesRow = style({\n display: \"flex\",\n alignItems: \"center\",\n gap: 8,\n});\n\nconst avatars = style({\n display: \"flex\",\n alignItems: \"center\",\n gap: 4,\n});\n\nconst more = style({\n font: \"ui-sm\",\n // WCAG AA fix: the \"+N más\" overflow count is small text on the same\n // `--color-bg-200` card as the meta, so it shares the same 3.84:1-light\n // failure and the same `--color-text` fix.\n color: \"[var(--color-text)]\",\n});\n\nconst actionRow = style({\n display: \"flex\",\n gap: 8,\n});\n\nexport function EventCard(props: EventCardProps) {\n const displayedAttendees = () => props.attendees?.slice(0, 3) ?? [];\n const remainingCount = () => {\n const total = props.attendeeCount ?? props.attendees?.length ?? 0;\n const displayed = displayedAttendees().length;\n return total - displayed;\n };\n\n return (\n <div class={`${card} ${props.class ?? \"\"}`}>\n <Show when={props.decorationImage}>\n <img class={decoration} src={props.decorationImage} alt=\"\" />\n </Show>\n\n <Show when={props.image}>\n <img class={preview} src={props.image} alt={props.title} />\n </Show>\n\n <div class={body}>\n <h3 class={title}>{props.title}</h3>\n\n <Show when={props.date || props.author}>\n <div class={meta}>\n <Show when={props.author}>\n <div class={metaItem}>\n <span class={metaIcon}>@</span>\n <span>{props.author}</span>\n </div>\n </Show>\n <Show when={props.date}>\n <div class={metaItem}>\n <span class={metaIcon}>⏱</span>\n <span>{props.date}</span>\n </div>\n </Show>\n </div>\n </Show>\n\n <Show when={displayedAttendees().length > 0}>\n <div class={attendeesRow}>\n <div class={avatars}>\n <For each={displayedAttendees()}>\n {(attendee) => <Avatar src={attendee.avatar} alt={attendee.name} size=\"sm\" />}\n </For>\n </div>\n <Show when={remainingCount() > 0}>\n <span class={more}>+{remainingCount()} más</span>\n </Show>\n </div>\n </Show>\n\n <Show when={props.actions}>\n <div class={actionRow}>\n {typeof props.actions === \"function\" ? props.actions() : props.actions}\n </div>\n </Show>\n </div>\n </div>\n );\n}\n\nexport interface EventListItemProps {\n title: string;\n image?: string;\n subtitle?: string;\n onClick?: () => void;\n class?: string;\n}\n\nconst listItem = style({\n display: \"flex\",\n alignItems: \"center\",\n gap: 12,\n width: \"full\",\n padding: 8,\n borderRadius: \"lg\",\n textAlign: \"start\",\n cursor: \"pointer\",\n backgroundColor: \"transparent\",\n borderStyle: \"none\",\n});\n\nconst thumb = style({\n width: 48,\n height: 48,\n flexShrink: 0,\n borderRadius: \"default\",\n objectFit: \"cover\",\n});\n\nconst listBody = style({\n display: \"flex\",\n flexDirection: \"column\",\n flexGrow: 1,\n minWidth: 0,\n});\n\nconst listTitle = style({\n font: \"ui\",\n fontWeight: \"medium\",\n color: \"[var(--color-primary-100)]\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n});\n\nconst listSubtitle = style({\n font: \"ui-sm\",\n color: \"[var(--color-text-secondary)]\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n});\n\nexport function EventListItem(props: EventListItemProps) {\n return (\n <HeadlessButton class={`${listItem} ${props.class ?? \"\"}`} onPress={() => props.onClick?.()}>\n <Show when={props.image}>\n <img class={thumb} src={props.image} alt={props.title} />\n </Show>\n <div class={listBody}>\n <h4 class={listTitle}>{props.title}</h4>\n <Show when={props.subtitle}>\n <p class={listSubtitle}>{props.subtitle}</p>\n </Show>\n </div>\n </HeadlessButton>\n );\n}\n"],"mappings":"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"}