@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
@@ -1,58 +1,60 @@
1
- import { JSX } from "solid-js";
1
+ import type { JSX } from "solid-js";
2
+ // Styled via the S2 style() macro through viviana's own seam (../../style →
3
+ // src/style.ts). A clean two-word wordmark: the S2 title ramp sizes it; Silapse
4
+ // colors paint it (primary + accent). `inverted` swaps which word takes accent.
5
+ import { style } from "../../style" with { type: "macro" };
2
6
 
3
7
  export type LogoSize = "sm" | "md" | "lg" | "xl";
4
8
 
5
9
  export interface LogoProps {
6
- /** First word (light weight, muted color) */
7
10
  firstWord?: string;
8
- /** Second word (bold, with 3D effect) */
9
11
  secondWord?: string;
10
- /** Size variant of the logo */
11
12
  size?: LogoSize;
12
- /** Invert the styles (first word gets 3D effect, second word is muted) */
13
13
  inverted?: boolean;
14
- /** Additional CSS classes */
15
14
  class?: string;
16
15
  }
17
16
 
18
- /**
19
- * Two-word logo with retro synthwave 3D effect.
20
- * First word is light/muted, second word has bold styling with pink 3D shadow.
21
- *
22
- * @example
23
- * // Default usage
24
- * <Logo />
25
- *
26
- * @example
27
- * // Custom text
28
- * <Logo firstWord="My" secondWord="Brand" size="lg" />
29
- */
30
- export function Logo(props: LogoProps): JSX.Element {
31
- const sizeClass = () => {
32
- switch (props.size) {
33
- case "sm":
34
- return "vui-logo--sm";
35
- case "lg":
36
- return "vui-logo--lg";
37
- case "xl":
38
- return "vui-logo--xl";
39
- case "md":
40
- default:
41
- return "vui-logo--md";
42
- }
43
- };
17
+ const wordmark = style<{ size: LogoSize }>({
18
+ display: "inline-flex",
19
+ alignItems: "baseline",
20
+ columnGap: 8,
21
+ whiteSpace: "nowrap",
22
+ font: {
23
+ size: {
24
+ sm: "title-sm",
25
+ md: "title",
26
+ lg: "title-xl",
27
+ xl: "title-3xl",
28
+ },
29
+ },
30
+ fontWeight: "black",
31
+ });
32
+
33
+ const word = style<{ tone: "primary" | "accent" }>({
34
+ color: {
35
+ tone: {
36
+ primary: "[var(--color-primary-100)]",
37
+ // `--color-accent` (#df5c9a) is the SAME non-flipping pink in both themes;
38
+ // on the light `--color-bg-200` panel the wordmark reads only 1.89:1 (fails
39
+ // even the 3:1 large-text floor the `black`-weight `title-xl` earns). No
40
+ // single non-flipping shade clears a near-white AND a near-black panel, so
41
+ // the accent word takes the *flipping* `--color-accent-500` (dark #d84a8f /
42
+ // light #8a1e4a) → 3.86:1 dark / 4.91:1 light — clearing the large-text
43
+ // floor in both themes while keeping the two-tone wordmark identity.
44
+ accent: "[var(--color-accent-500)]",
45
+ },
46
+ },
47
+ });
44
48
 
49
+ export function Logo(props: LogoProps): JSX.Element {
45
50
  const firstWord = () => props.firstWord ?? "Proyecto";
46
51
  const secondWord = () => props.secondWord ?? "Viviana";
52
+ const inverted = () => props.inverted ?? false;
47
53
 
48
54
  return (
49
- <span class={`vui-logo ${sizeClass()} ${props.inverted ? "vui-logo--inverted" : ""} ${props.class ?? ""}`}>
50
- <span class="vui-logo__first" data-text={props.inverted ? firstWord() : undefined}>
51
- {firstWord()}
52
- </span>
53
- <span class="vui-logo__second" data-text={props.inverted ? undefined : secondWord()}>
54
- {secondWord()}
55
- </span>
55
+ <span class={`${wordmark({ size: props.size ?? "md" })} ${props.class ?? ""}`}>
56
+ <span class={word({ tone: inverted() ? "accent" : "primary" })}>{firstWord()}</span>
57
+ <span class={word({ tone: inverted() ? "primary" : "accent" })}>{secondWord()}</span>
56
58
  </span>
57
59
  );
58
60
  }
@@ -1,42 +1,106 @@
1
- import type { JSX } from 'solid-js'
2
- import { Show } from 'solid-js'
1
+ import type { JSX } from "solid-js";
2
+ import { Show } from "solid-js";
3
+ import { Button as HeadlessButton } from "@proyecto-viviana/solidaria-components";
4
+ // Styled via the S2 style() macro through viviana's own seam (../../style →
5
+ // src/style.ts). A nav bar with an accent bottom rule, a logo/wordmark slot,
6
+ // and trailing actions, on the S2 ramps in Silapse colors.
7
+ import { style } from "../../style" with { type: "macro" };
3
8
 
4
9
  export interface NavHeaderProps {
5
- logo?: string
6
- logoAlt?: string
7
- logoText?: string
8
- children?: JSX.Element
9
- menuIcon?: JSX.Element
10
- onMenuClick?: () => void
11
- class?: string
10
+ logo?: string;
11
+ logoAlt?: string;
12
+ logoText?: string;
13
+ children?: JSX.Element;
14
+ menuIcon?: JSX.Element;
15
+ onMenuClick?: () => void;
16
+ menuAriaLabel?: string;
17
+ class?: string;
12
18
  }
13
19
 
20
+ const bar = style({
21
+ display: "flex",
22
+ alignItems: "center",
23
+ height: 70,
24
+ backgroundColor: "[var(--color-bg-400)]",
25
+ borderBottomWidth: 4,
26
+ borderStyle: "solid",
27
+ borderColor: "[var(--color-accent)]",
28
+ });
29
+
30
+ const lead = style({
31
+ display: "flex",
32
+ alignItems: "center",
33
+ paddingStart: 32,
34
+ });
35
+
36
+ const logoText = style({
37
+ display: "flex",
38
+ alignItems: "center",
39
+ font: "title-xl",
40
+ fontWeight: "normal",
41
+ // WCAG AA fix: the wordmark sits on the `--color-bg-400` bar. `--color-primary-700`
42
+ // is a non-flipping brand fill (light blue in light mode, dark blue in dark mode) —
43
+ // the SAME direction as the bar, so it read only 2.10:1 light / 2.92:1 dark. The
44
+ // rendered `title-xl` measures under 24px, so WCAG scores it as normal text (4.5:1
45
+ // floor, not the 3:1 large-text exception). `--color-primary-500` is the smallest
46
+ // ramp step that flips with the theme (dark-on-light / light-on-dark) AND clears
47
+ // 4.5:1, lifting the wordmark to 5.37:1 light / 7.00:1 dark while keeping a prominent
48
+ // brand blue.
49
+ color: "[var(--color-primary-500)]",
50
+ });
51
+
52
+ const logoImage = style({
53
+ height: 42,
54
+ width: "auto",
55
+ });
56
+
57
+ const trail = style({
58
+ display: "flex",
59
+ alignItems: "center",
60
+ justifyContent: "end",
61
+ flexGrow: 1,
62
+ gap: 12,
63
+ paddingEnd: 32,
64
+ });
65
+
66
+ const menuButton = style({
67
+ display: "flex",
68
+ alignItems: "center",
69
+ justifyContent: "center",
70
+ cursor: "pointer",
71
+ backgroundColor: "transparent",
72
+ borderStyle: "none",
73
+ color: "[var(--color-primary-200)]",
74
+ });
75
+
14
76
  export function NavHeader(props: NavHeaderProps) {
15
77
  return (
16
- <nav class={`flex items-center bg-bg-400 h-[70px] border-b-4 border-accent-500 ${props.class ?? ''}`}>
17
- <div class="pl-1 md:pl-8 flex items-center">
18
- <Show when={props.logo} fallback={
19
- <Show when={props.logoText}>
20
- <span class="text-[34px] font-light text-primary-700 flex items-center">
21
- {props.logoText}
22
- </span>
23
- </Show>
24
- }>
25
- <img src={props.logo} alt={props.logoAlt ?? 'Logo'} class="h-[42px] w-auto" />
78
+ <nav class={`${bar} ${props.class ?? ""}`}>
79
+ <div class={lead}>
80
+ <Show
81
+ when={props.logo}
82
+ fallback={
83
+ <Show when={props.logoText}>
84
+ <span class={logoText}>{props.logoText}</span>
85
+ </Show>
86
+ }
87
+ >
88
+ <img class={logoImage} src={props.logo} alt={props.logoAlt ?? "Logo"} />
26
89
  </Show>
27
90
  </div>
28
91
 
29
- <div class="flex-1 flex justify-end items-center pr-1 md:pr-8">
92
+ <div class={trail}>
30
93
  {props.children}
31
94
  <Show when={props.menuIcon}>
32
- <button
33
- class="md:hidden flex items-center justify-center"
34
- onClick={props.onMenuClick}
95
+ <HeadlessButton
96
+ class={menuButton}
97
+ onPress={() => props.onMenuClick?.()}
98
+ aria-label={props.menuAriaLabel ?? "Open menu"}
35
99
  >
36
100
  {props.menuIcon}
37
- </button>
101
+ </HeadlessButton>
38
102
  </Show>
39
103
  </div>
40
104
  </nav>
41
- )
105
+ );
42
106
  }
@@ -1,29 +1,33 @@
1
- import { JSX, splitProps } from 'solid-js'
1
+ import { type JSX, splitProps } from "solid-js";
2
+ // Styled via the S2 style() macro through viviana's own seam (../../style →
3
+ // src/style.ts). A full-height page shell painted in Silapse surface/text
4
+ // colors; `withHeader` reserves top space so a fixed header doesn't overlap.
5
+ import { style } from "../../style" with { type: "macro" };
2
6
 
3
7
  export interface PageLayoutProps extends JSX.HTMLAttributes<HTMLDivElement> {
4
- /** Content of the page */
5
- children: JSX.Element
6
- /** Add padding-top to account for fixed header (use for non-landing pages) */
7
- withHeader?: boolean
8
+ children: JSX.Element;
9
+ withHeader?: boolean;
8
10
  }
9
11
 
10
- /**
11
- * PageLayout provides consistent page structure with proper background and font styling.
12
- * Use this as the root wrapper for all pages.
13
- */
14
- export function PageLayout(props: PageLayoutProps) {
15
- const [local, rest] = splitProps(props, ['class', 'withHeader'])
12
+ const page = style<{ isWithHeader: boolean }>({
13
+ display: "flex",
14
+ flexDirection: "column",
15
+ minHeight: "screen",
16
+ width: "full",
17
+ backgroundColor: "[var(--color-background)]",
18
+ color: "[var(--color-text)]",
19
+ paddingTop: { isWithHeader: 64 },
20
+ });
16
21
 
17
- const classes = () => {
18
- const base = 'vui-page'
19
- const header = local.withHeader ? 'vui-page--with-header' : ''
20
- const custom = local.class ?? ''
21
- return [base, header, custom].filter(Boolean).join(' ')
22
- }
22
+ export function PageLayout(props: PageLayoutProps) {
23
+ const [local, rest] = splitProps(props, ["class", "withHeader"]);
23
24
 
24
25
  return (
25
- <div class={classes()} {...rest}>
26
+ <div
27
+ class={`${page({ isWithHeader: local.withHeader ?? false })} ${local.class ?? ""}`}
28
+ {...rest}
29
+ >
26
30
  {props.children}
27
31
  </div>
28
- )
32
+ );
29
33
  }
@@ -1,64 +1,123 @@
1
- import type { JSX } from 'solid-js'
2
- import { Show } from 'solid-js'
3
- import { Avatar } from '../../avatar'
1
+ import type { JSX } from "solid-js";
2
+ import { Show } from "solid-js";
3
+ import { Avatar } from "@proyecto-viviana/solid-spectrum";
4
+ // Styled via the S2 style() macro through viviana's own seam (../../style →
5
+ // src/style.ts). Mirrors S2's UserCard shape (avatar + title/description +
6
+ // footer actions) on the S2 spacing/radius/elevation ramps, in Silapse colors.
7
+ import { style } from "../../style" with { type: "macro" };
4
8
 
5
9
  export interface ProfileCardProps {
6
- username: string
7
- avatar?: string
8
- bio?: string
9
- followers?: number
10
- following?: number
10
+ username: string;
11
+ avatar?: string;
12
+ bio?: string;
13
+ followers?: number;
14
+ following?: number;
11
15
  /**
12
16
  * Actions to display below the profile.
13
17
  * Use a function returning JSX for SSR compatibility: `actions={() => <Button>...</Button>}`
14
18
  */
15
- actions?: JSX.Element | (() => JSX.Element)
16
- class?: string
19
+ actions?: JSX.Element | (() => JSX.Element);
20
+ class?: string;
17
21
  }
18
22
 
23
+ const card = style({
24
+ display: "flex",
25
+ flexDirection: "column",
26
+ gap: 16,
27
+ padding: 16,
28
+ borderRadius: "lg",
29
+ backgroundColor: "[var(--color-bg-200)]",
30
+ boxShadow: "elevated",
31
+ });
32
+
33
+ const head = style({
34
+ display: "flex",
35
+ alignItems: "start",
36
+ gap: 16,
37
+ });
38
+
39
+ const info = style({
40
+ display: "flex",
41
+ flexDirection: "column",
42
+ gap: 4,
43
+ flexGrow: 1,
44
+ minWidth: 0,
45
+ });
46
+
47
+ const name = style({
48
+ font: "heading-sm",
49
+ color: "[var(--color-primary-100)]",
50
+ overflow: "hidden",
51
+ textOverflow: "ellipsis",
52
+ whiteSpace: "nowrap",
53
+ });
54
+
55
+ const bio = style({
56
+ font: "ui-sm",
57
+ // WCAG AA fix: the bio is small text (`ui-sm`) on the `--color-bg-200` card, so
58
+ // the 4.5:1 floor applies. `--color-text-secondary` read only 3.84:1 on the
59
+ // light-blue card (5.86:1 dark); `--color-text` flips and clears 4.5:1 both
60
+ // ways (15.33:1 dark / 7.53:1 light). The bio stays visually secondary to the
61
+ // `heading-sm` name through its smaller size, not a sub-AA color.
62
+ color: "[var(--color-text)]",
63
+ });
64
+
65
+ const stats = style({
66
+ display: "flex",
67
+ gap: 16,
68
+ font: "ui-sm",
69
+ // WCAG AA fix: the stat connector words ("seguidores" / "siguiendo") share the
70
+ // bio's 3.84:1-light failure on the `--color-bg-200` card and take the same
71
+ // flipping `--color-text`. (The stat VALUES are `--color-primary-100`, which
72
+ // already clears AA — 13.47:1 dark / 10.37:1 light.)
73
+ color: "[var(--color-text)]",
74
+ });
75
+
76
+ const statValue = style({
77
+ fontWeight: "bold",
78
+ color: "[var(--color-primary-100)]",
79
+ });
80
+
81
+ const actionRow = style({
82
+ display: "flex",
83
+ gap: 8,
84
+ });
85
+
19
86
  export function ProfileCard(props: ProfileCardProps) {
20
87
  const formatNumber = (num: number) => {
21
- if (num >= 1000000) return `${(num / 1000000).toFixed(1)}M`
22
- if (num >= 1000) return `${(num / 1000).toFixed(1)}K`
23
- return num.toString()
24
- }
88
+ if (num >= 1000000) return `${(num / 1000000).toFixed(1)}M`;
89
+ if (num >= 1000) return `${(num / 1000).toFixed(1)}K`;
90
+ return num.toString();
91
+ };
25
92
 
26
93
  return (
27
- <div class={`bg-bg-200 rounded-xl p-4 ${props.class ?? ''}`}>
28
- <div class="flex items-start gap-4">
94
+ <div class={`${card} ${props.class ?? ""}`}>
95
+ <div class={head}>
29
96
  <Avatar src={props.avatar} alt={props.username} size="lg" />
30
- <div class="flex-1 min-w-0">
31
- <h3 class="font-semibold text-primary-100 text-lg truncate">
32
- {props.username}
33
- </h3>
97
+ <div class={info}>
98
+ <h3 class={name}>{props.username}</h3>
34
99
  <Show when={props.bio}>
35
- <p class="text-primary-300 text-sm mt-1 line-clamp-2">{props.bio}</p>
100
+ <p class={bio}>{props.bio}</p>
36
101
  </Show>
37
- <div class="flex gap-4 mt-2 text-sm">
102
+ <div class={stats}>
38
103
  <Show when={props.followers !== undefined}>
39
- <span class="text-primary-300">
40
- <span class="font-semibold text-primary-100">
41
- {formatNumber(props.followers!)}
42
- </span>{' '}
43
- seguidores
104
+ <span>
105
+ <span class={statValue}>{formatNumber(props.followers!)}</span> seguidores
44
106
  </span>
45
107
  </Show>
46
108
  <Show when={props.following !== undefined}>
47
- <span class="text-primary-300">
48
- <span class="font-semibold text-primary-100">
49
- {formatNumber(props.following!)}
50
- </span>{' '}
51
- siguiendo
109
+ <span>
110
+ <span class={statValue}>{formatNumber(props.following!)}</span> siguiendo
52
111
  </span>
53
112
  </Show>
54
113
  </div>
55
114
  </div>
56
115
  </div>
57
116
  <Show when={props.actions}>
58
- <div class="mt-4 flex gap-2">
59
- {typeof props.actions === 'function' ? props.actions() : props.actions}
117
+ <div class={actionRow}>
118
+ {typeof props.actions === "function" ? props.actions() : props.actions}
60
119
  </div>
61
120
  </Show>
62
121
  </div>
63
- )
122
+ );
64
123
  }
@@ -1,59 +1,76 @@
1
- import type { JSX } from 'solid-js'
1
+ import type { JSX } from "solid-js";
2
+ // Styled via the S2 style() macro through viviana's own seam (../../style →
3
+ // src/style.ts). A square logo/preview tile with a caption, sized by the S2
4
+ // spacing + type ramps and painted in Silapse colors. `inactive` dims it;
5
+ // `href` turns the whole card into a link.
6
+ import { style } from "../../style" with { type: "macro" };
2
7
 
3
- export type ProjectCardSize = 'sm' | 'md' | 'lg'
8
+ export type ProjectCardSize = "sm" | "md" | "lg";
4
9
 
5
10
  export interface ProjectCardProps {
6
- /** Project name shown in tooltip on hover */
7
- name: string
8
- /** Image source for the project logo */
9
- imageSrc: string
10
- /** Alt text for the image */
11
- imageAlt?: string
12
- /** Optional link to the project */
13
- href?: string
14
- /** Size of the card */
15
- size?: ProjectCardSize
16
- /** Whether the project is inactive/greyed out */
17
- inactive?: boolean
18
- /** Additional CSS class */
19
- class?: string
11
+ name: string;
12
+ imageSrc: string;
13
+ imageAlt?: string;
14
+ href?: string;
15
+ size?: ProjectCardSize;
16
+ inactive?: boolean;
17
+ class?: string;
20
18
  }
21
19
 
22
- /**
23
- * Project card with logo and hover tooltip.
24
- * Used for showcasing ecosystem projects.
25
- */
20
+ const card = style<{ size: ProjectCardSize; isInactive: boolean }>({
21
+ display: "flex",
22
+ flexDirection: "column",
23
+ alignItems: "center",
24
+ gap: 8,
25
+ width: "full",
26
+ borderRadius: "lg",
27
+ borderWidth: 1,
28
+ borderStyle: "solid",
29
+ borderColor: "[var(--color-border)]",
30
+ backgroundColor: "[var(--color-bg-200)]",
31
+ color: "[var(--color-primary-100)]",
32
+ textDecoration: "none",
33
+ padding: { size: { sm: 12, md: 16, lg: 20 } },
34
+ opacity: { default: 1, isInactive: 0.5 },
35
+ });
36
+
37
+ const image = style({
38
+ width: "full",
39
+ aspectRatio: "square",
40
+ objectFit: "contain",
41
+ borderRadius: "sm",
42
+ });
43
+
44
+ const caption = style<{ size: ProjectCardSize }>({
45
+ width: "full",
46
+ textAlign: "center",
47
+ overflow: "hidden",
48
+ textOverflow: "ellipsis",
49
+ whiteSpace: "nowrap",
50
+ font: { size: { sm: "ui-sm", md: "ui", lg: "ui-lg" } },
51
+ color: "[var(--color-primary-200)]",
52
+ });
53
+
26
54
  export function ProjectCard(props: ProjectCardProps): JSX.Element {
27
- const size = () => props.size ?? 'sm'
28
- const inactive = () => props.inactive ?? false
55
+ const size = () => props.size ?? "sm";
56
+ const inactive = () => props.inactive ?? false;
29
57
 
30
58
  const cardContent = () => (
31
59
  <>
32
- <div class="vui-project-card__tooltip">
33
- <span>{props.name}</span>
34
- </div>
35
- <img
36
- class="vui-project-card__image"
37
- src={props.imageSrc}
38
- alt={props.imageAlt ?? props.name}
39
- />
60
+ <img class={image} src={props.imageSrc} alt={props.imageAlt ?? props.name} />
61
+ <span class={caption({ size: size() })}>{props.name}</span>
40
62
  </>
41
- )
63
+ );
42
64
 
43
- const cardClasses = () =>
44
- `vui-project-card vui-project-card--${size()} ${inactive() ? 'vui-project-card--inactive' : ''} ${props.class ?? ''}`
65
+ const classes = () => `${card({ size: size(), isInactive: inactive() })} ${props.class ?? ""}`;
45
66
 
46
67
  if (props.href) {
47
68
  return (
48
- <a href={props.href} target="_blank" rel="noopener noreferrer" class={cardClasses()}>
69
+ <a href={props.href} target="_blank" rel="noopener noreferrer" class={classes()}>
49
70
  {cardContent()}
50
71
  </a>
51
- )
72
+ );
52
73
  }
53
74
 
54
- return (
55
- <div class={cardClasses()}>
56
- {cardContent()}
57
- </div>
58
- )
75
+ return <div class={classes()}>{cardContent()}</div>;
59
76
  }