@proyecto-viviana/ui 0.3.5 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +97 -0
  26. package/dist/CalendarCard.js.map +1 -0
  27. package/dist/CalendarCard.jsx +51 -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 +177 -0
  76. package/dist/Conversation.js.map +1 -0
  77. package/dist/Conversation.jsx +107 -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 +173 -0
  86. package/dist/EventCard.js.map +1 -0
  87. package/dist/EventCard.jsx +96 -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 +78 -0
  132. package/dist/ProfileCard.js.map +1 -0
  133. package/dist/ProfileCard.jsx +53 -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 +164 -0
  138. package/dist/ProjectCard.js.map +1 -0
  139. package/dist/ProjectCard.jsx +133 -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 +15 -0
  227. package/dist/vite.d.ts.map +1 -0
  228. package/dist/vite.js +74 -0
  229. package/dist/vite.js.map +1 -0
  230. package/dist/vite.jsx +74 -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 +99 -50
  277. package/src/custom/chip/index.tsx +59 -27
  278. package/src/custom/conversation/index.tsx +149 -55
  279. package/src/custom/event-card/index.tsx +174 -74
  280. package/src/custom/header/index.tsx +64 -33
  281. package/src/custom/lateral-nav/index.tsx +84 -38
  282. package/src/custom/logo/index.tsx +34 -39
  283. package/src/custom/nav-header/index.tsx +81 -25
  284. package/src/custom/page-layout/index.tsx +23 -19
  285. package/src/custom/profile-card/index.tsx +85 -35
  286. package/src/custom/project-card/index.tsx +57 -40
  287. package/src/custom/timeline-item/index.tsx +83 -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 +152 -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,687 +0,0 @@
1
- /**
2
- * Color components for proyecto-viviana-ui
3
- *
4
- * Styled color picker components built on top of solidaria-components.
5
- * Inspired by Spectrum 2's color picker patterns.
6
- */
7
-
8
- import { type JSX, splitProps, createContext, useContext, Show } from 'solid-js'
9
- import {
10
- ColorSlider as HeadlessColorSlider,
11
- ColorSliderTrack as HeadlessColorSliderTrack,
12
- ColorSliderThumb as HeadlessColorSliderThumb,
13
- ColorArea as HeadlessColorArea,
14
- ColorAreaGradient as HeadlessColorAreaGradient,
15
- ColorAreaThumb as HeadlessColorAreaThumb,
16
- ColorWheel as HeadlessColorWheel,
17
- ColorWheelTrack as HeadlessColorWheelTrack,
18
- ColorWheelThumb as HeadlessColorWheelThumb,
19
- ColorField as HeadlessColorField,
20
- ColorFieldInput as HeadlessColorFieldInput,
21
- ColorSwatch as HeadlessColorSwatch,
22
- type ColorSliderProps as HeadlessColorSliderProps,
23
- type ColorAreaProps as HeadlessColorAreaProps,
24
- type ColorWheelProps as HeadlessColorWheelProps,
25
- type ColorFieldProps as HeadlessColorFieldProps,
26
- type ColorSwatchProps as HeadlessColorSwatchProps,
27
- type ColorSliderRenderProps,
28
- type ColorSliderTrackRenderProps,
29
- type ColorSliderThumbRenderProps,
30
- type ColorAreaRenderProps,
31
- type ColorAreaThumbRenderProps,
32
- type ColorWheelRenderProps,
33
- type ColorWheelThumbRenderProps,
34
- type ColorFieldRenderProps,
35
- type ColorSwatchRenderProps,
36
- } from '@proyecto-viviana/solidaria-components'
37
- import type { Color, ColorChannel, ColorFormat } from '@proyecto-viviana/solid-stately'
38
-
39
- // ============================================
40
- // SIZE CONTEXT
41
- // ============================================
42
-
43
- export type ColorSize = 'sm' | 'md' | 'lg'
44
-
45
- interface ColorContextValue {
46
- size: ColorSize
47
- }
48
-
49
- const ColorSizeContext = createContext<ColorContextValue>({ size: 'md' })
50
-
51
- // ============================================
52
- // STYLES
53
- // ============================================
54
-
55
- const sizeStyles = {
56
- sm: {
57
- slider: {
58
- track: 'h-4 rounded',
59
- thumb: 'w-4 h-4',
60
- label: 'text-sm',
61
- },
62
- area: {
63
- container: 'w-48 h-48',
64
- thumb: 'w-4 h-4',
65
- },
66
- wheel: {
67
- container: 'w-48 h-48',
68
- track: 'stroke-[16px]',
69
- thumb: 'w-4 h-4',
70
- },
71
- field: {
72
- input: 'h-8 text-sm px-2',
73
- label: 'text-sm',
74
- },
75
- swatch: 'w-8 h-8',
76
- },
77
- md: {
78
- slider: {
79
- track: 'h-6 rounded-md',
80
- thumb: 'w-5 h-5',
81
- label: 'text-base',
82
- },
83
- area: {
84
- container: 'w-64 h-64',
85
- thumb: 'w-5 h-5',
86
- },
87
- wheel: {
88
- container: 'w-64 h-64',
89
- track: 'stroke-[20px]',
90
- thumb: 'w-5 h-5',
91
- },
92
- field: {
93
- input: 'h-10 text-base px-3',
94
- label: 'text-base',
95
- },
96
- swatch: 'w-10 h-10',
97
- },
98
- lg: {
99
- slider: {
100
- track: 'h-8 rounded-lg',
101
- thumb: 'w-6 h-6',
102
- label: 'text-lg',
103
- },
104
- area: {
105
- container: 'w-80 h-80',
106
- thumb: 'w-6 h-6',
107
- },
108
- wheel: {
109
- container: 'w-80 h-80',
110
- track: 'stroke-[24px]',
111
- thumb: 'w-6 h-6',
112
- },
113
- field: {
114
- input: 'h-12 text-lg px-4',
115
- label: 'text-lg',
116
- },
117
- swatch: 'w-12 h-12',
118
- },
119
- }
120
-
121
- // ============================================
122
- // COLOR SLIDER
123
- // ============================================
124
-
125
- export interface ColorSliderProps extends Omit<HeadlessColorSliderProps, 'class' | 'style' | 'children'> {
126
- /** The size of the color slider. */
127
- size?: ColorSize
128
- /** Additional CSS class name. */
129
- class?: string
130
- /** Show the current value. */
131
- showValue?: boolean
132
- }
133
-
134
- /**
135
- * A color slider allows users to adjust a single color channel.
136
- *
137
- * @example
138
- * ```tsx
139
- * const [color, setColor] = createSignal(parseColor('hsl(0, 100%, 50%)'))
140
- *
141
- * <ColorSlider
142
- * channel="hue"
143
- * value={color()}
144
- * onChange={setColor}
145
- * label="Hue"
146
- * />
147
- * ```
148
- */
149
- export function ColorSlider(props: ColorSliderProps): JSX.Element {
150
- const [local, headlessProps] = splitProps(props, ['size', 'class', 'showValue'])
151
-
152
- const size = () => local.size ?? 'md'
153
- const styles = () => sizeStyles[size()]
154
- const customClass = local.class ?? ''
155
-
156
- const getClassName = (renderProps: ColorSliderRenderProps): string => {
157
- const base = 'flex flex-col gap-1.5'
158
- let stateClass = ''
159
- if (renderProps.isDisabled) {
160
- stateClass = 'opacity-50'
161
- }
162
- return [base, stateClass, customClass].filter(Boolean).join(' ')
163
- }
164
-
165
- const contextValue = () => ({ size: size() })
166
-
167
- return (
168
- <ColorSizeContext.Provider value={contextValue()}>
169
- <HeadlessColorSlider {...headlessProps} class={getClassName}>
170
- {(renderProps: ColorSliderRenderProps) => (
171
- <>
172
- <div class="flex items-center justify-between">
173
- <Show when={headlessProps.label}>
174
- <span class={`text-primary-200 font-medium ${styles().slider.label}`}>
175
- {headlessProps.label}
176
- </span>
177
- </Show>
178
- <Show when={local.showValue}>
179
- <span class={`text-primary-400 ${styles().slider.label}`}>
180
- {Math.round(renderProps.value)}
181
- </span>
182
- </Show>
183
- </div>
184
- <ColorSliderTrack>
185
- {() => <ColorSliderThumb />}
186
- </ColorSliderTrack>
187
- </>
188
- )}
189
- </HeadlessColorSlider>
190
- </ColorSizeContext.Provider>
191
- )
192
- }
193
-
194
- /**
195
- * The track component for a color slider.
196
- */
197
- export function ColorSliderTrack(props: { children?: JSX.Element | (() => JSX.Element); class?: string }): JSX.Element {
198
- const context = useContext(ColorSizeContext)
199
- const styles = sizeStyles[context.size]
200
- const customClass = props.class ?? ''
201
-
202
- const getClassName = (renderProps: ColorSliderTrackRenderProps): string => {
203
- const base = `relative ${styles.slider.track} shadow-inner border border-bg-300`
204
- const dragClass = renderProps.isDragging ? 'cursor-grabbing' : 'cursor-pointer'
205
- return [base, dragClass, customClass].filter(Boolean).join(' ')
206
- }
207
-
208
- return (
209
- <HeadlessColorSliderTrack class={getClassName}>
210
- {props.children}
211
- </HeadlessColorSliderTrack>
212
- )
213
- }
214
-
215
- /**
216
- * The thumb component for a color slider.
217
- */
218
- export function ColorSliderThumb(props: { class?: string }): JSX.Element {
219
- const context = useContext(ColorSizeContext)
220
- const styles = sizeStyles[context.size]
221
- const customClass = props.class ?? ''
222
-
223
- const getClassName = (renderProps: ColorSliderThumbRenderProps): string => {
224
- const base = `${styles.slider.thumb} rounded-full border-2 border-white shadow-md cursor-grab`
225
- const dragClass = renderProps.isDragging ? 'cursor-grabbing scale-110' : ''
226
- const focusClass = renderProps.isFocusVisible ? 'ring-2 ring-accent-300 ring-offset-2' : ''
227
- const disabledClass = renderProps.isDisabled ? 'cursor-not-allowed' : ''
228
- return [base, dragClass, focusClass, disabledClass, customClass].filter(Boolean).join(' ')
229
- }
230
-
231
- return <HeadlessColorSliderThumb class={getClassName} />
232
- }
233
-
234
- // ============================================
235
- // COLOR AREA
236
- // ============================================
237
-
238
- export interface ColorAreaProps extends Omit<HeadlessColorAreaProps, 'class' | 'style' | 'children'> {
239
- /** The size of the color area. */
240
- size?: ColorSize
241
- /** Additional CSS class name. */
242
- class?: string
243
- }
244
-
245
- /**
246
- * A color area allows users to select a color by dragging in a 2D gradient.
247
- *
248
- * @example
249
- * ```tsx
250
- * const [color, setColor] = createSignal(parseColor('hsl(0, 100%, 50%)'))
251
- *
252
- * <ColorArea
253
- * value={color()}
254
- * onChange={setColor}
255
- * xChannel="saturation"
256
- * yChannel="lightness"
257
- * />
258
- * ```
259
- */
260
- export function ColorArea(props: ColorAreaProps): JSX.Element {
261
- const [local, headlessProps] = splitProps(props, ['size', 'class'])
262
-
263
- const size = () => local.size ?? 'md'
264
- const styles = () => sizeStyles[size()]
265
- const customClass = local.class ?? ''
266
-
267
- const getClassName = (renderProps: ColorAreaRenderProps): string => {
268
- const base = `relative ${styles().area.container} rounded-lg overflow-hidden border border-bg-300 shadow-inner`
269
- let stateClass = ''
270
- if (renderProps.isDisabled) {
271
- stateClass = 'opacity-50 cursor-not-allowed'
272
- }
273
- return [base, stateClass, customClass].filter(Boolean).join(' ')
274
- }
275
-
276
- const contextValue = () => ({ size: size() })
277
-
278
- return (
279
- <ColorSizeContext.Provider value={contextValue()}>
280
- <HeadlessColorArea {...headlessProps} class={getClassName}>
281
- {() => (
282
- <>
283
- <ColorAreaGradient />
284
- <ColorAreaThumb />
285
- </>
286
- )}
287
- </HeadlessColorArea>
288
- </ColorSizeContext.Provider>
289
- )
290
- }
291
-
292
- /**
293
- * The gradient background for a color area.
294
- */
295
- export function ColorAreaGradient(props: { class?: string }): JSX.Element {
296
- const customClass = props.class ?? ''
297
- const className = `absolute inset-0 ${customClass}`
298
-
299
- return <HeadlessColorAreaGradient class={className} />
300
- }
301
-
302
- /**
303
- * The thumb component for a color area.
304
- */
305
- export function ColorAreaThumb(props: { class?: string }): JSX.Element {
306
- const context = useContext(ColorSizeContext)
307
- const styles = sizeStyles[context.size]
308
- const customClass = props.class ?? ''
309
-
310
- const getClassName = (renderProps: ColorAreaThumbRenderProps): string => {
311
- const base = `${styles.area.thumb} rounded-full border-2 border-white shadow-md cursor-grab`
312
- const dragClass = renderProps.isDragging ? 'cursor-grabbing scale-110' : ''
313
- const focusClass = renderProps.isFocusVisible ? 'ring-2 ring-accent-300 ring-offset-2' : ''
314
- const disabledClass = renderProps.isDisabled ? 'cursor-not-allowed' : ''
315
- return [base, dragClass, focusClass, disabledClass, customClass].filter(Boolean).join(' ')
316
- }
317
-
318
- return <HeadlessColorAreaThumb class={getClassName} />
319
- }
320
-
321
- // ============================================
322
- // COLOR WHEEL
323
- // ============================================
324
-
325
- export interface ColorWheelProps extends Omit<HeadlessColorWheelProps, 'class' | 'style' | 'children'> {
326
- /** The size of the color wheel. */
327
- size?: ColorSize
328
- /** Additional CSS class name. */
329
- class?: string
330
- }
331
-
332
- /**
333
- * A color wheel allows users to select a hue by dragging around a circular track.
334
- *
335
- * @example
336
- * ```tsx
337
- * const [color, setColor] = createSignal(parseColor('hsl(0, 100%, 50%)'))
338
- *
339
- * <ColorWheel
340
- * value={color()}
341
- * onChange={setColor}
342
- * />
343
- * ```
344
- */
345
- export function ColorWheel(props: ColorWheelProps): JSX.Element {
346
- const [local, headlessProps] = splitProps(props, ['size', 'class'])
347
-
348
- const size = () => local.size ?? 'md'
349
- const styles = () => sizeStyles[size()]
350
- const customClass = local.class ?? ''
351
-
352
- const getClassName = (renderProps: ColorWheelRenderProps): string => {
353
- const base = `relative ${styles().wheel.container}`
354
- let stateClass = ''
355
- if (renderProps.isDisabled) {
356
- stateClass = 'opacity-50 cursor-not-allowed'
357
- }
358
- return [base, stateClass, customClass].filter(Boolean).join(' ')
359
- }
360
-
361
- const contextValue = () => ({ size: size() })
362
-
363
- return (
364
- <ColorSizeContext.Provider value={contextValue()}>
365
- <HeadlessColorWheel {...headlessProps} class={getClassName}>
366
- {() => (
367
- <>
368
- <ColorWheelTrack />
369
- <ColorWheelThumb />
370
- </>
371
- )}
372
- </HeadlessColorWheel>
373
- </ColorSizeContext.Provider>
374
- )
375
- }
376
-
377
- /**
378
- * The circular track for a color wheel.
379
- */
380
- export function ColorWheelTrack(props: { class?: string }): JSX.Element {
381
- const context = useContext(ColorSizeContext)
382
- const styles = sizeStyles[context.size]
383
- const customClass = props.class ?? ''
384
-
385
- const className = `${styles.wheel.track} ${customClass}`
386
-
387
- return <HeadlessColorWheelTrack class={className} />
388
- }
389
-
390
- /**
391
- * The thumb component for a color wheel.
392
- */
393
- export function ColorWheelThumb(props: { class?: string }): JSX.Element {
394
- const context = useContext(ColorSizeContext)
395
- const styles = sizeStyles[context.size]
396
- const customClass = props.class ?? ''
397
-
398
- const getClassName = (renderProps: ColorWheelThumbRenderProps): string => {
399
- const base = `${styles.wheel.thumb} rounded-full border-2 border-white shadow-md cursor-grab`
400
- const dragClass = renderProps.isDragging ? 'cursor-grabbing scale-110' : ''
401
- const focusClass = renderProps.isFocusVisible ? 'ring-2 ring-accent-300 ring-offset-2' : ''
402
- const disabledClass = renderProps.isDisabled ? 'cursor-not-allowed' : ''
403
- return [base, dragClass, focusClass, disabledClass, customClass].filter(Boolean).join(' ')
404
- }
405
-
406
- return <HeadlessColorWheelThumb class={getClassName} />
407
- }
408
-
409
- // ============================================
410
- // COLOR FIELD
411
- // ============================================
412
-
413
- export interface ColorFieldProps extends Omit<HeadlessColorFieldProps, 'class' | 'style' | 'children'> {
414
- /** The size of the color field. */
415
- size?: ColorSize
416
- /** Additional CSS class name. */
417
- class?: string
418
- /** Description text below the input. */
419
- description?: string
420
- /** Error message to display. */
421
- errorMessage?: string
422
- }
423
-
424
- /**
425
- * A color field allows users to enter a color value as text.
426
- *
427
- * @example
428
- * ```tsx
429
- * const [color, setColor] = createSignal(parseColor('#ff0000'))
430
- *
431
- * <ColorField
432
- * value={color()}
433
- * onChange={setColor}
434
- * label="Color"
435
- * />
436
- * ```
437
- */
438
- export function ColorField(props: ColorFieldProps): JSX.Element {
439
- const [local, headlessProps] = splitProps(props, [
440
- 'size',
441
- 'class',
442
- 'description',
443
- 'errorMessage',
444
- ])
445
-
446
- const size = () => local.size ?? 'md'
447
- const styles = () => sizeStyles[size()]
448
- const customClass = local.class ?? ''
449
-
450
- const getClassName = (renderProps: ColorFieldRenderProps): string => {
451
- const base = 'flex flex-col gap-1.5'
452
- let stateClass = ''
453
- if (renderProps.isDisabled) {
454
- stateClass = 'opacity-50'
455
- }
456
- return [base, stateClass, customClass].filter(Boolean).join(' ')
457
- }
458
-
459
- const contextValue = () => ({ size: size() })
460
-
461
- return (
462
- <ColorSizeContext.Provider value={contextValue()}>
463
- <HeadlessColorField {...headlessProps} class={getClassName}>
464
- {() => (
465
- <>
466
- <Show when={headlessProps.label}>
467
- <span class={`text-primary-200 font-medium ${styles().field.label}`}>
468
- {headlessProps.label}
469
- </span>
470
- </Show>
471
- <ColorFieldInput isInvalid={!!local.errorMessage} />
472
- <Show when={local.description && !local.errorMessage}>
473
- <span class="text-primary-400 text-sm">{local.description}</span>
474
- </Show>
475
- <Show when={local.errorMessage}>
476
- <span class="text-danger-400 text-sm">{local.errorMessage}</span>
477
- </Show>
478
- </>
479
- )}
480
- </HeadlessColorField>
481
- </ColorSizeContext.Provider>
482
- )
483
- }
484
-
485
- /**
486
- * The input component for a color field.
487
- */
488
- export function ColorFieldInput(props: { class?: string; isInvalid?: boolean }): JSX.Element {
489
- const context = useContext(ColorSizeContext)
490
- const styles = sizeStyles[context.size]
491
- const customClass = props.class ?? ''
492
-
493
- const base = `${styles.field.input} w-full rounded-md border bg-bg-400 text-primary-200 placeholder:text-primary-500 focus:outline-none focus:ring-2 focus:ring-accent-300`
494
- const borderClass = props.isInvalid
495
- ? 'border-danger-400'
496
- : 'border-bg-300 focus:border-accent-300'
497
- const className = [base, borderClass, customClass].filter(Boolean).join(' ')
498
-
499
- return <HeadlessColorFieldInput class={className} />
500
- }
501
-
502
- // ============================================
503
- // COLOR SWATCH
504
- // ============================================
505
-
506
- export interface ColorSwatchProps extends Omit<HeadlessColorSwatchProps, 'class' | 'style'> {
507
- /** The size of the color swatch. */
508
- size?: ColorSize
509
- /** Additional CSS class name. */
510
- class?: string
511
- /** Whether the swatch is selectable. */
512
- isSelectable?: boolean
513
- /** Whether the swatch is selected. */
514
- isSelected?: boolean
515
- /** Handler called when the swatch is clicked. */
516
- onClick?: () => void
517
- }
518
-
519
- /**
520
- * A color swatch displays a color sample.
521
- *
522
- * @example
523
- * ```tsx
524
- * <ColorSwatch color={parseColor('#ff0000')} />
525
- *
526
- * // Selectable swatch
527
- * <ColorSwatch
528
- * color={parseColor('#00ff00')}
529
- * isSelectable
530
- * isSelected={selectedColor === '#00ff00'}
531
- * onClick={() => setSelectedColor('#00ff00')}
532
- * />
533
- * ```
534
- */
535
- export function ColorSwatch(props: ColorSwatchProps): JSX.Element {
536
- const [local, headlessProps] = splitProps(props, [
537
- 'size',
538
- 'class',
539
- 'isSelectable',
540
- 'isSelected',
541
- 'onClick',
542
- ])
543
-
544
- const size = () => local.size ?? 'md'
545
- const styles = () => sizeStyles[size()]
546
- const customClass = local.class ?? ''
547
-
548
- const getClassName = (_renderProps: ColorSwatchRenderProps): string => {
549
- const base = `${styles().swatch} rounded-md border border-bg-300 shadow-sm`
550
- const selectableClass = local.isSelectable
551
- ? 'cursor-pointer hover:scale-105 transition-transform'
552
- : ''
553
- const selectedClass = local.isSelected
554
- ? 'ring-2 ring-accent-300 ring-offset-2 ring-offset-bg-400'
555
- : ''
556
- return [base, selectableClass, selectedClass, customClass].filter(Boolean).join(' ')
557
- }
558
-
559
- const handleClick = () => {
560
- if (local.isSelectable && local.onClick) {
561
- local.onClick()
562
- }
563
- }
564
-
565
- return (
566
- <div onClick={handleClick}>
567
- <HeadlessColorSwatch {...headlessProps} class={getClassName} />
568
- </div>
569
- )
570
- }
571
-
572
- // ============================================
573
- // COLOR PICKER (Composite Component)
574
- // ============================================
575
-
576
- export interface ColorPickerProps {
577
- /** The current color value (controlled). */
578
- value?: Color | string
579
- /** The default color value (uncontrolled). */
580
- defaultValue?: Color | string
581
- /** Handler called when the color changes. */
582
- onChange?: (color: Color) => void
583
- /** The size of the picker. */
584
- size?: ColorSize
585
- /** Additional CSS class name. */
586
- class?: string
587
- /** Whether the picker is disabled. */
588
- isDisabled?: boolean
589
- /** A label for the picker. */
590
- label?: string
591
- /** Whether to show the hex input field. */
592
- showInput?: boolean
593
- /** Whether to show channel sliders. */
594
- showSliders?: boolean
595
- }
596
-
597
- /**
598
- * A complete color picker component with area, sliders, and input.
599
- *
600
- * @example
601
- * ```tsx
602
- * const [color, setColor] = createSignal(parseColor('hsl(0, 100%, 50%)'))
603
- *
604
- * <ColorPicker
605
- * value={color()}
606
- * onChange={setColor}
607
- * label="Pick a color"
608
- * showInput
609
- * showSliders
610
- * />
611
- * ```
612
- */
613
- export function ColorPicker(props: ColorPickerProps): JSX.Element {
614
- const size = () => props.size ?? 'md'
615
- const styles = () => sizeStyles[size()]
616
-
617
- return (
618
- <div class={`flex flex-col gap-4 ${props.class ?? ''}`}>
619
- <Show when={props.label}>
620
- <span class={`text-primary-200 font-medium ${styles().field.label}`}>
621
- {props.label}
622
- </span>
623
- </Show>
624
-
625
- <ColorArea
626
- value={props.value}
627
- defaultValue={props.defaultValue}
628
- onChange={props.onChange}
629
- xChannel="saturation"
630
- yChannel="lightness"
631
- size={size()}
632
- isDisabled={props.isDisabled}
633
- />
634
-
635
- <Show when={props.showSliders !== false}>
636
- <ColorSlider
637
- value={props.value}
638
- defaultValue={props.defaultValue}
639
- onChange={props.onChange}
640
- channel="hue"
641
- label="Hue"
642
- size={size()}
643
- showValue
644
- isDisabled={props.isDisabled}
645
- />
646
-
647
- <ColorSlider
648
- value={props.value}
649
- defaultValue={props.defaultValue}
650
- onChange={props.onChange}
651
- channel="alpha"
652
- label="Alpha"
653
- size={size()}
654
- showValue
655
- isDisabled={props.isDisabled}
656
- />
657
- </Show>
658
-
659
- <Show when={props.showInput}>
660
- <ColorField
661
- value={props.value}
662
- defaultValue={props.defaultValue}
663
- onChange={(color) => {
664
- if (color && props.onChange) {
665
- props.onChange(color)
666
- }
667
- }}
668
- label="Hex"
669
- size={size()}
670
- isDisabled={props.isDisabled}
671
- />
672
- </Show>
673
- </div>
674
- )
675
- }
676
-
677
- // Attach sub-components for convenience
678
- ColorSlider.Track = ColorSliderTrack
679
- ColorSlider.Thumb = ColorSliderThumb
680
- ColorArea.Gradient = ColorAreaGradient
681
- ColorArea.Thumb = ColorAreaThumb
682
- ColorWheel.Track = ColorWheelTrack
683
- ColorWheel.Thumb = ColorWheelThumb
684
- ColorField.Input = ColorFieldInput
685
-
686
- // Re-export types for convenience
687
- export type { Color, ColorChannel, ColorFormat }