@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,297 +0,0 @@
1
- /**
2
- * Menu component for proyecto-viviana-ui
3
- *
4
- * Styled menu component built on top of solidaria-components.
5
- * Inspired by Spectrum 2's Menu component patterns.
6
- */
7
-
8
- import { type JSX, splitProps, createContext, useContext } from 'solid-js'
9
- import {
10
- Menu as HeadlessMenu,
11
- MenuItem as HeadlessMenuItem,
12
- MenuTrigger as HeadlessMenuTrigger,
13
- MenuButton as HeadlessMenuButton,
14
- type MenuProps as HeadlessMenuProps,
15
- type MenuItemProps as HeadlessMenuItemProps,
16
- type MenuTriggerProps as HeadlessMenuTriggerProps,
17
- type MenuButtonProps as HeadlessMenuButtonProps,
18
- type MenuRenderProps,
19
- type MenuItemRenderProps,
20
- type MenuTriggerRenderProps,
21
- } from '@proyecto-viviana/solidaria-components'
22
- import type { Key } from '@proyecto-viviana/solid-stately'
23
-
24
- // ============================================
25
- // SIZE CONTEXT
26
- // ============================================
27
-
28
- export type MenuSize = 'sm' | 'md' | 'lg'
29
-
30
- const MenuSizeContext = createContext<MenuSize>('md')
31
-
32
- // ============================================
33
- // TYPES
34
- // ============================================
35
-
36
- export interface MenuTriggerProps extends Omit<HeadlessMenuTriggerProps, 'class' | 'style'> {
37
- /** The size of the menu. */
38
- size?: MenuSize
39
- /** Additional CSS class name. */
40
- class?: string
41
- }
42
-
43
- export interface MenuButtonProps extends Omit<HeadlessMenuButtonProps, 'class' | 'style'> {
44
- /** Additional CSS class name. */
45
- class?: string
46
- /** Visual variant of the button. */
47
- variant?: 'primary' | 'secondary' | 'quiet'
48
- }
49
-
50
- export interface MenuProps<T> extends Omit<HeadlessMenuProps<T>, 'class' | 'style'> {
51
- /** Additional CSS class name. */
52
- class?: string
53
- }
54
-
55
- export interface MenuItemProps<T> extends Omit<HeadlessMenuItemProps<T>, 'class' | 'style'> {
56
- /** Additional CSS class name. */
57
- class?: string
58
- /**
59
- * Optional icon to display before the label.
60
- * Use a function returning JSX for SSR compatibility: `icon={() => <MyIcon />}`
61
- */
62
- icon?: () => JSX.Element
63
- /** Optional keyboard shortcut to display. */
64
- shortcut?: string
65
- /** Whether this is a destructive action. */
66
- isDestructive?: boolean
67
- }
68
-
69
- // ============================================
70
- // STYLES
71
- // ============================================
72
-
73
- const sizeStyles = {
74
- sm: {
75
- button: 'h-8 text-sm px-3 gap-2',
76
- menu: 'py-1',
77
- item: 'text-sm py-1.5 px-3 gap-2',
78
- icon: 'h-4 w-4',
79
- },
80
- md: {
81
- button: 'h-10 text-base px-4 gap-2',
82
- menu: 'py-1.5',
83
- item: 'text-base py-2 px-4 gap-3',
84
- icon: 'h-5 w-5',
85
- },
86
- lg: {
87
- button: 'h-12 text-lg px-5 gap-3',
88
- menu: 'py-2',
89
- item: 'text-lg py-2.5 px-5 gap-3',
90
- icon: 'h-6 w-6',
91
- },
92
- }
93
-
94
- const buttonVariants = {
95
- primary: 'bg-accent text-bg-500 border-accent hover:bg-accent-300 hover:border-accent-300',
96
- secondary: 'bg-bg-400 text-primary-200 border-primary-600 hover:bg-bg-300 hover:border-accent-300',
97
- quiet: 'bg-transparent text-primary-200 border-transparent hover:bg-bg-300',
98
- }
99
-
100
- // ============================================
101
- // MENU TRIGGER COMPONENT
102
- // ============================================
103
-
104
- /**
105
- * A menu trigger wraps a button and menu, handling the open/close state.
106
- */
107
- export function MenuTrigger(props: MenuTriggerProps): JSX.Element {
108
- const [local, headlessProps] = splitProps(props, ['size', 'class'])
109
- const size = local.size ?? 'md'
110
-
111
- return (
112
- <MenuSizeContext.Provider value={size}>
113
- <div class={`relative inline-block ${local.class ?? ''}`}>
114
- <HeadlessMenuTrigger {...headlessProps}>
115
- {props.children}
116
- </HeadlessMenuTrigger>
117
- </div>
118
- </MenuSizeContext.Provider>
119
- )
120
- }
121
-
122
- // ============================================
123
- // MENU BUTTON COMPONENT
124
- // ============================================
125
-
126
- /**
127
- * A button that opens a menu.
128
- * SSR-compatible - renders children and chevron icon directly without render props.
129
- */
130
- export function MenuButton(props: MenuButtonProps): JSX.Element {
131
- const [local, headlessProps] = splitProps(props, ['class', 'variant'])
132
- const size = useContext(MenuSizeContext)
133
- const sizeStyle = sizeStyles[size]
134
- const variant = local.variant ?? 'secondary'
135
- const customClass = local.class ?? ''
136
-
137
- const getClassName = (renderProps: MenuTriggerRenderProps): string => {
138
- const base = 'inline-flex items-center justify-center rounded-lg border-2 font-medium transition-all duration-200'
139
- const sizeClass = sizeStyle.button
140
- const variantClass = buttonVariants[variant]
141
-
142
- let stateClass: string
143
- if (renderProps.isDisabled) {
144
- stateClass = 'opacity-50 cursor-not-allowed'
145
- } else if (renderProps.isPressed) {
146
- stateClass = 'scale-95'
147
- } else {
148
- stateClass = 'cursor-pointer'
149
- }
150
-
151
- const focusClass = renderProps.isFocusVisible
152
- ? 'ring-2 ring-accent-300 ring-offset-2 ring-offset-bg-400'
153
- : ''
154
-
155
- return [base, sizeClass, variantClass, stateClass, focusClass, customClass].filter(Boolean).join(' ')
156
- }
157
-
158
- return (
159
- <HeadlessMenuButton
160
- {...headlessProps}
161
- class={getClassName}
162
- >
163
- {props.children as JSX.Element}
164
- {/* Chevron rotates via CSS based on data-open attribute */}
165
- <ChevronIcon class={`${sizeStyle.icon} transition-transform duration-200 data-open:rotate-180`} />
166
- </HeadlessMenuButton>
167
- )
168
- }
169
-
170
- // ============================================
171
- // MENU COMPONENT
172
- // ============================================
173
-
174
- /**
175
- * A menu displays a list of actions or options for the user to choose from.
176
- */
177
- export function Menu<T>(props: MenuProps<T>): JSX.Element {
178
- const [local, headlessProps] = splitProps(props, ['class'])
179
- const size = useContext(MenuSizeContext)
180
- const styles = () => sizeStyles[size]
181
- const customClass = local.class ?? ''
182
-
183
- const getClassName = (_renderProps: MenuRenderProps): string => {
184
- const base = 'absolute z-50 mt-1 min-w-[12rem] rounded-lg border-2 border-primary-600 bg-bg-400 shadow-lg overflow-hidden'
185
- const sizeClass = styles().menu
186
- return [base, sizeClass, customClass].filter(Boolean).join(' ')
187
- }
188
-
189
- return (
190
- <HeadlessMenu
191
- {...headlessProps}
192
- class={getClassName}
193
- children={props.children}
194
- />
195
- )
196
- }
197
-
198
- // ============================================
199
- // MENU ITEM COMPONENT
200
- // ============================================
201
-
202
- /**
203
- * An item in a menu.
204
- * SSR-compatible - renders icon, content, and shortcut directly without render props.
205
- */
206
- export function MenuItem<T>(props: MenuItemProps<T>): JSX.Element {
207
- const [local, headlessProps] = splitProps(props, ['class', 'icon', 'shortcut', 'isDestructive'])
208
- const size = useContext(MenuSizeContext)
209
- const sizeStyle = sizeStyles[size]
210
- const customClass = local.class ?? ''
211
-
212
- const getClassName = (renderProps: MenuItemRenderProps): string => {
213
- const base = 'flex items-center cursor-pointer transition-colors duration-150 outline-none'
214
- const sizeClass = sizeStyle.item
215
-
216
- let colorClass: string
217
- if (renderProps.isDisabled) {
218
- colorClass = 'text-primary-500 cursor-not-allowed'
219
- } else if (local.isDestructive) {
220
- if (renderProps.isFocused || renderProps.isHovered) {
221
- colorClass = 'bg-danger-400/20 text-danger-400'
222
- } else {
223
- colorClass = 'text-danger-400'
224
- }
225
- } else if (renderProps.isFocused || renderProps.isHovered) {
226
- colorClass = 'bg-bg-300 text-primary-100'
227
- } else {
228
- colorClass = 'text-primary-200'
229
- }
230
-
231
- const pressedClass = renderProps.isPressed ? 'bg-bg-200' : ''
232
-
233
- const focusClass = renderProps.isFocusVisible
234
- ? 'ring-2 ring-inset ring-accent-300'
235
- : ''
236
-
237
- return [base, sizeClass, colorClass, pressedClass, focusClass, customClass].filter(Boolean).join(' ')
238
- }
239
-
240
- return (
241
- <HeadlessMenuItem
242
- {...headlessProps}
243
- class={getClassName}
244
- >
245
- {local.icon && <span class={`shrink-0 ${sizeStyle.icon}`}>{local.icon()}</span>}
246
- <span class="flex-1">{props.children as JSX.Element}</span>
247
- {local.shortcut && <span class="text-primary-500 text-sm ml-auto">{local.shortcut}</span>}
248
- </HeadlessMenuItem>
249
- )
250
- }
251
-
252
- // ============================================
253
- // MENU SEPARATOR COMPONENT
254
- // ============================================
255
-
256
- export interface MenuSeparatorProps {
257
- /** Additional CSS class name. */
258
- class?: string
259
- }
260
-
261
- /**
262
- * A visual separator between menu items.
263
- */
264
- export function MenuSeparator(props: MenuSeparatorProps): JSX.Element {
265
- return (
266
- <li
267
- role="separator"
268
- class={`my-1 border-t border-primary-600 ${props.class ?? ''}`}
269
- />
270
- )
271
- }
272
-
273
- // ============================================
274
- // ICONS
275
- // ============================================
276
-
277
- function ChevronIcon(props: { class?: string }): JSX.Element {
278
- return (
279
- <svg
280
- class={props.class}
281
- fill="none"
282
- viewBox="0 0 24 24"
283
- stroke="currentColor"
284
- stroke-width="2"
285
- >
286
- <path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7" />
287
- </svg>
288
- )
289
- }
290
-
291
- // Attach sub-components for convenience
292
- Menu.Item = MenuItem
293
- Menu.Separator = MenuSeparator
294
- MenuTrigger.Button = MenuButton
295
-
296
- // Re-export Key type for convenience
297
- export type { Key }
@@ -1,163 +0,0 @@
1
- /**
2
- * Meter component for proyecto-viviana-ui
3
- *
4
- * Styled meter component built on top of the solidaria hook directly.
5
- * Meters represent a quantity within a known range (unlike progress bars which show progress toward a goal).
6
- */
7
-
8
- import { type JSX, splitProps, Show, createMemo } from 'solid-js';
9
- import { createMeter } from '@proyecto-viviana/solidaria';
10
-
11
- // ============================================
12
- // TYPES
13
- // ============================================
14
-
15
- export type MeterSize = 'sm' | 'md' | 'lg';
16
- export type MeterVariant = 'primary' | 'accent' | 'success' | 'warning' | 'danger' | 'info';
17
-
18
- export interface MeterProps {
19
- /** The current value (controlled). @default 0 */
20
- value?: number;
21
- /** The smallest value allowed. @default 0 */
22
- minValue?: number;
23
- /** The largest value allowed. @default 100 */
24
- maxValue?: number;
25
- /** The content to display as the value's label (e.g. "75 GB"). */
26
- valueLabel?: string;
27
- /** The size of the meter. @default 'md' */
28
- size?: MeterSize;
29
- /** The visual style variant. @default 'primary' */
30
- variant?: MeterVariant;
31
- /** The label to display above the meter. */
32
- label?: string;
33
- /** Whether to show the value text. @default true */
34
- showValueLabel?: boolean;
35
- /** Additional CSS class name. */
36
- class?: string;
37
- /** An accessibility label. */
38
- 'aria-label'?: string;
39
- }
40
-
41
- // ============================================
42
- // STYLES
43
- // ============================================
44
-
45
- const sizeStyles = {
46
- sm: {
47
- track: 'h-1',
48
- text: 'text-xs',
49
- },
50
- md: {
51
- track: 'h-2',
52
- text: 'text-sm',
53
- },
54
- lg: {
55
- track: 'h-3',
56
- text: 'text-base',
57
- },
58
- };
59
-
60
- const variantStyles = {
61
- primary: 'bg-primary-500',
62
- accent: 'bg-accent',
63
- success: 'bg-green-500',
64
- warning: 'bg-yellow-500',
65
- danger: 'bg-red-500',
66
- info: 'bg-blue-500',
67
- };
68
-
69
- // ============================================
70
- // UTILITIES
71
- // ============================================
72
-
73
- function clamp(value: number, min: number, max: number): number {
74
- return Math.min(Math.max(value, min), max);
75
- }
76
-
77
- // ============================================
78
- // METER COMPONENT
79
- // ============================================
80
-
81
- /**
82
- * Meters represent a quantity within a known range, or a fractional value.
83
- * Unlike progress bars, meters represent a current value rather than progress toward a goal.
84
- *
85
- * @example
86
- * ```tsx
87
- * // Storage usage meter
88
- * <Meter value={75} label="Storage space" valueLabel="75 GB of 100 GB" />
89
- *
90
- * // Battery level
91
- * <Meter value={25} variant="warning" label="Battery" />
92
- *
93
- * // CPU usage with dynamic color
94
- * <Meter value={cpuUsage} variant={cpuUsage > 80 ? 'danger' : 'success'} label="CPU" />
95
- * ```
96
- */
97
- export function Meter(props: MeterProps): JSX.Element {
98
- const [local, ariaProps] = splitProps(props, [
99
- 'size',
100
- 'variant',
101
- 'label',
102
- 'showValueLabel',
103
- 'class',
104
- ]);
105
-
106
- const size = () => local.size ?? 'md';
107
- const variant = () => local.variant ?? 'primary';
108
- const showValueLabel = () => local.showValueLabel ?? true;
109
-
110
- // Create meter aria props
111
- const meterAria = createMeter({
112
- get value() { return ariaProps.value; },
113
- get minValue() { return ariaProps.minValue; },
114
- get maxValue() { return ariaProps.maxValue; },
115
- get valueLabel() { return ariaProps.valueLabel; },
116
- get label() { return local.label; },
117
- get 'aria-label'() { return ariaProps['aria-label']; },
118
- });
119
-
120
- // Calculate percentage
121
- const percentage = createMemo(() => {
122
- const value = ariaProps.value ?? 0;
123
- const minValue = ariaProps.minValue ?? 0;
124
- const maxValue = ariaProps.maxValue ?? 100;
125
- const clampedValue = clamp(value, minValue, maxValue);
126
- return ((clampedValue - minValue) / (maxValue - minValue)) * 100;
127
- });
128
-
129
- // Get value text from aria props
130
- const valueText = () => meterAria.meterProps['aria-valuetext'] as string | undefined;
131
-
132
- const sizeConfig = () => sizeStyles[size()];
133
-
134
- return (
135
- <div
136
- {...meterAria.meterProps}
137
- class={`w-full ${local.class ?? ''}`}
138
- >
139
- {/* Label and value row */}
140
- <Show when={local.label || showValueLabel()}>
141
- <div class={`flex justify-between items-center mb-1 ${sizeConfig().text}`}>
142
- <Show when={local.label}>
143
- <span class="text-primary-200 font-medium">{local.label}</span>
144
- </Show>
145
- <Show when={showValueLabel()}>
146
- <span class="text-primary-300">{valueText()}</span>
147
- </Show>
148
- </div>
149
- </Show>
150
-
151
- {/* Track */}
152
- <div class={`w-full ${sizeConfig().track} bg-bg-300 rounded-full overflow-hidden`}>
153
- {/* Fill */}
154
- <div
155
- class={`h-full rounded-full transition-all duration-300 ${variantStyles[variant()]}`}
156
- style={{
157
- width: `${percentage()}%`,
158
- }}
159
- />
160
- </div>
161
- </div>
162
- );
163
- }