@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,453 +0,0 @@
1
- /**
2
- * SearchField component for proyecto-viviana-ui
3
- *
4
- * A styled search field component with clear button and search icon.
5
- * Built directly on solidaria hooks for full accessibility support.
6
- */
7
-
8
- import { type JSX, splitProps, mergeProps as solidMergeProps, Show } from 'solid-js'
9
- import {
10
- createSearchField,
11
- createFocusRing,
12
- createPress,
13
- createHover,
14
- type AriaSearchFieldProps,
15
- } from '@proyecto-viviana/solidaria'
16
- import {
17
- createSearchFieldState,
18
- } from '@proyecto-viviana/solid-stately'
19
-
20
- // ============================================
21
- // TYPES
22
- // ============================================
23
-
24
- export type SearchFieldSize = 'sm' | 'md' | 'lg'
25
- export type SearchFieldVariant = 'outline' | 'filled'
26
-
27
- export interface SearchFieldProps extends Omit<AriaSearchFieldProps, 'label'> {
28
- /** The size of the search field. */
29
- size?: SearchFieldSize
30
- /** The visual variant of the search field. */
31
- variant?: SearchFieldVariant
32
- /** Additional CSS class name. */
33
- class?: string
34
- /** Label text for the input. */
35
- label?: string
36
- /** Description text shown below the input. */
37
- description?: string
38
- /** Error message shown when invalid. */
39
- errorMessage?: string
40
- /** The current value (controlled). */
41
- value?: string
42
- /** The default value (uncontrolled). */
43
- defaultValue?: string
44
- /** Handler called when the value changes. */
45
- onChange?: (value: string) => void
46
- /** Handler called when the user submits the search. */
47
- onSubmit?: (value: string) => void
48
- /** Handler called when the field is cleared. */
49
- onClear?: () => void
50
- /** Whether to hide the search icon. */
51
- hideSearchIcon?: boolean
52
- }
53
-
54
- // ============================================
55
- // STYLES
56
- // ============================================
57
-
58
- const sizeStyles = {
59
- sm: {
60
- container: 'h-8',
61
- input: 'text-sm pl-8 pr-8',
62
- label: 'text-sm',
63
- description: 'text-xs',
64
- icon: 'w-4 h-4 left-2',
65
- clearButton: 'w-5 h-5 right-1.5',
66
- },
67
- md: {
68
- container: 'h-10',
69
- input: 'text-base pl-10 pr-10',
70
- label: 'text-sm',
71
- description: 'text-sm',
72
- icon: 'w-5 h-5 left-2.5',
73
- clearButton: 'w-6 h-6 right-2',
74
- },
75
- lg: {
76
- container: 'h-12',
77
- input: 'text-lg pl-12 pr-12',
78
- label: 'text-base',
79
- description: 'text-sm',
80
- icon: 'w-6 h-6 left-3',
81
- clearButton: 'w-7 h-7 right-2.5',
82
- },
83
- }
84
-
85
- // ============================================
86
- // ICONS
87
- // ============================================
88
-
89
- function SearchIcon(props: { class?: string }) {
90
- return (
91
- <svg
92
- class={props.class}
93
- viewBox="0 0 20 20"
94
- fill="none"
95
- stroke="currentColor"
96
- stroke-width="2"
97
- >
98
- <circle cx="8" cy="8" r="5" />
99
- <path d="M12 12L17 17" stroke-linecap="round" />
100
- </svg>
101
- )
102
- }
103
-
104
- function ClearIcon(props: { class?: string }) {
105
- return (
106
- <svg
107
- class={props.class}
108
- viewBox="0 0 16 16"
109
- fill="none"
110
- stroke="currentColor"
111
- stroke-width="2"
112
- >
113
- <path d="M4 4L12 12M12 4L4 12" stroke-linecap="round" />
114
- </svg>
115
- )
116
- }
117
-
118
- // ============================================
119
- // COMPONENT
120
- // ============================================
121
-
122
- /**
123
- * A search field allows users to enter and clear a search query.
124
- *
125
- * Built directly on solidaria hooks for full accessibility support.
126
- */
127
- export function SearchField(props: SearchFieldProps): JSX.Element {
128
- const defaultProps: Partial<SearchFieldProps> = {
129
- size: 'md',
130
- variant: 'outline',
131
- }
132
-
133
- const merged = solidMergeProps(defaultProps, props)
134
-
135
- const [local, stateProps, ariaProps] = splitProps(merged, [
136
- 'size',
137
- 'variant',
138
- 'class',
139
- 'label',
140
- 'description',
141
- 'errorMessage',
142
- 'hideSearchIcon',
143
- ], [
144
- 'value',
145
- 'defaultValue',
146
- 'onChange',
147
- 'onSubmit',
148
- 'onClear',
149
- ])
150
-
151
- const size = () => sizeStyles[local.size!]
152
-
153
- // Ref for input element
154
- let inputRef: HTMLInputElement | undefined
155
-
156
- // Create search field state
157
- const state = createSearchFieldState({
158
- get value() {
159
- return stateProps.value
160
- },
161
- get defaultValue() {
162
- return stateProps.defaultValue
163
- },
164
- get onChange() {
165
- return stateProps.onChange
166
- },
167
- })
168
-
169
- // Create search field aria props
170
- const searchFieldAria = createSearchField(
171
- {
172
- get label() {
173
- return local.label
174
- },
175
- get 'aria-label'() {
176
- return ariaProps['aria-label']
177
- },
178
- get 'aria-labelledby'() {
179
- return ariaProps['aria-labelledby']
180
- },
181
- get 'aria-describedby'() {
182
- return ariaProps['aria-describedby']
183
- },
184
- get isDisabled() {
185
- return ariaProps.isDisabled
186
- },
187
- get isReadOnly() {
188
- return ariaProps.isReadOnly
189
- },
190
- get isRequired() {
191
- return ariaProps.isRequired
192
- },
193
- get isInvalid() {
194
- return ariaProps.isInvalid
195
- },
196
- get description() {
197
- return local.description
198
- },
199
- get errorMessage() {
200
- return local.errorMessage
201
- },
202
- get placeholder() {
203
- return ariaProps.placeholder
204
- },
205
- get name() {
206
- return ariaProps.name
207
- },
208
- get autoFocus() {
209
- return ariaProps.autoFocus
210
- },
211
- get autoComplete() {
212
- return ariaProps.autoComplete
213
- },
214
- get maxLength() {
215
- return ariaProps.maxLength
216
- },
217
- get minLength() {
218
- return ariaProps.minLength
219
- },
220
- get pattern() {
221
- return ariaProps.pattern
222
- },
223
- get onSubmit() {
224
- return stateProps.onSubmit
225
- },
226
- get onClear() {
227
- return stateProps.onClear
228
- },
229
- },
230
- state,
231
- () => inputRef ?? null
232
- )
233
-
234
- // Create focus ring for input
235
- const { isFocused, isFocusVisible, focusProps } = createFocusRing()
236
-
237
- // Create hover for input
238
- const { isHovered, hoverProps } = createHover({
239
- get isDisabled() {
240
- return ariaProps.isDisabled
241
- },
242
- })
243
-
244
- // Clear button interactions
245
- const { isPressed: clearPressed, pressProps: clearPressProps } = createPress({
246
- get isDisabled() {
247
- return ariaProps.isDisabled || ariaProps.isReadOnly
248
- },
249
- onPress: () => {
250
- searchFieldAria.clearButtonProps.onClick()
251
- },
252
- })
253
-
254
- const { isHovered: clearHovered, hoverProps: clearHoverProps } = createHover({
255
- get isDisabled() {
256
- return ariaProps.isDisabled || ariaProps.isReadOnly
257
- },
258
- })
259
-
260
- // Compute classes
261
- const containerClasses = () => {
262
- const base = 'flex flex-col'
263
- const disabledClass = ariaProps.isDisabled ? 'opacity-60' : ''
264
- const custom = local.class || ''
265
- return [base, disabledClass, custom].filter(Boolean).join(' ')
266
- }
267
-
268
- const inputWrapperClasses = () => {
269
- const base = 'relative flex items-center'
270
- const sizeClass = size().container
271
- return [base, sizeClass].filter(Boolean).join(' ')
272
- }
273
-
274
- const inputClasses = () => {
275
- const base = 'w-full h-full rounded-md transition-all duration-200 outline-none'
276
- const sizeClass = size().input
277
-
278
- // Adjust padding based on search icon visibility
279
- const paddingClass = local.hideSearchIcon ? 'pl-3' : ''
280
-
281
- let variantClass: string
282
- if (local.variant === 'filled') {
283
- variantClass = 'bg-bg-200 border border-transparent'
284
- } else {
285
- variantClass = 'bg-transparent border border-bg-400'
286
- }
287
-
288
- let stateClass: string
289
- if (ariaProps.isDisabled) {
290
- stateClass = 'bg-bg-200 text-primary-500 cursor-not-allowed'
291
- } else if (ariaProps.isInvalid) {
292
- stateClass = 'border-danger-500 focus:border-danger-400 focus:ring-2 focus:ring-danger-400/20'
293
- } else {
294
- stateClass = 'text-primary-100 placeholder:text-primary-500 focus:border-accent focus:ring-2 focus:ring-accent/20'
295
- }
296
-
297
- const hoverClass = ariaProps.isDisabled ? '' : 'hover:border-accent-300'
298
-
299
- return [base, sizeClass, paddingClass, variantClass, stateClass, hoverClass].filter(Boolean).join(' ')
300
- }
301
-
302
- const searchIconClasses = () => {
303
- const base = 'absolute pointer-events-none text-primary-400'
304
- const sizeClass = size().icon
305
- const focusedClass = isFocused() ? 'text-accent' : ''
306
- return [base, sizeClass, focusedClass].filter(Boolean).join(' ')
307
- }
308
-
309
- const clearButtonClasses = () => {
310
- const base = 'absolute flex items-center justify-center rounded-md transition-all duration-150 select-none'
311
- const sizeClass = size().clearButton
312
-
313
- const isDisabled = ariaProps.isDisabled || ariaProps.isReadOnly
314
-
315
- let stateClass: string
316
- if (isDisabled) {
317
- stateClass = 'text-primary-600 cursor-not-allowed'
318
- } else if (clearPressed()) {
319
- stateClass = 'bg-bg-400 text-primary-100 scale-90'
320
- } else if (clearHovered()) {
321
- stateClass = 'bg-bg-300 text-primary-100'
322
- } else {
323
- stateClass = 'text-primary-400 hover:bg-bg-300 hover:text-primary-100'
324
- }
325
-
326
- return [base, sizeClass, stateClass].filter(Boolean).join(' ')
327
- }
328
-
329
- const labelClasses = () => {
330
- const base = 'block font-medium text-primary-200 mb-1'
331
- const sizeClass = size().label
332
- return [base, sizeClass].filter(Boolean).join(' ')
333
- }
334
-
335
- const descriptionClasses = () => {
336
- const base = 'mt-1 text-primary-400'
337
- const sizeClass = size().description
338
- return [base, sizeClass].filter(Boolean).join(' ')
339
- }
340
-
341
- const errorClasses = () => {
342
- const base = 'mt-1 text-danger-500'
343
- const sizeClass = size().description
344
- return [base, sizeClass].filter(Boolean).join(' ')
345
- }
346
-
347
- // Clean props helpers
348
- const cleanInputProps = () => {
349
- const { ref: _ref, ...rest } = searchFieldAria.inputProps as Record<string, unknown>
350
- return rest
351
- }
352
-
353
- const cleanFocusProps = () => {
354
- const { ref: _ref, ...rest } = focusProps as Record<string, unknown>
355
- return rest
356
- }
357
-
358
- const cleanHoverProps = () => {
359
- const { ref: _ref, ...rest } = hoverProps as Record<string, unknown>
360
- return rest
361
- }
362
-
363
- const cleanLabelProps = () => {
364
- const { ref: _ref, ...rest } = searchFieldAria.labelProps as Record<string, unknown>
365
- return rest
366
- }
367
-
368
- const cleanClearPressProps = () => {
369
- const { ref: _ref, ...rest } = clearPressProps as Record<string, unknown>
370
- return rest
371
- }
372
-
373
- const cleanClearHoverProps = () => {
374
- const { ref: _ref, ...rest } = clearHoverProps as Record<string, unknown>
375
- return rest
376
- }
377
-
378
- const isEmpty = () => state.value() === ''
379
-
380
- return (
381
- <div
382
- class={containerClasses()}
383
- data-empty={isEmpty() || undefined}
384
- data-disabled={ariaProps.isDisabled || undefined}
385
- data-invalid={ariaProps.isInvalid || undefined}
386
- >
387
- {/* Label */}
388
- <Show when={local.label}>
389
- <span {...cleanLabelProps()} class={labelClasses()}>
390
- {local.label}
391
- <Show when={ariaProps.isRequired}>
392
- <span class="text-danger-500 ml-1">*</span>
393
- </Show>
394
- </span>
395
- </Show>
396
-
397
- {/* Input Wrapper */}
398
- <div class={inputWrapperClasses()}>
399
- {/* Search Icon */}
400
- <Show when={!local.hideSearchIcon}>
401
- <SearchIcon class={searchIconClasses()} />
402
- </Show>
403
-
404
- {/* Input */}
405
- <input
406
- ref={inputRef}
407
- {...cleanInputProps()}
408
- {...cleanFocusProps()}
409
- {...cleanHoverProps()}
410
- class={inputClasses()}
411
- data-focused={isFocused() || undefined}
412
- data-focus-visible={isFocusVisible() || undefined}
413
- data-hovered={isHovered() || undefined}
414
- />
415
-
416
- {/* Clear Button */}
417
- <Show when={!isEmpty()}>
418
- <button
419
- type="button"
420
- aria-label={searchFieldAria.clearButtonProps['aria-label']}
421
- tabIndex={searchFieldAria.clearButtonProps.tabIndex}
422
- disabled={searchFieldAria.clearButtonProps.disabled}
423
- onMouseDown={searchFieldAria.clearButtonProps.onMouseDown}
424
- {...cleanClearPressProps()}
425
- {...cleanClearHoverProps()}
426
- class={clearButtonClasses()}
427
- data-pressed={clearPressed() || undefined}
428
- data-hovered={clearHovered() || undefined}
429
- >
430
- <ClearIcon class="w-3 h-3" />
431
- </button>
432
- </Show>
433
- </div>
434
-
435
- {/* Description */}
436
- <Show when={local.description && !ariaProps.isInvalid}>
437
- <span {...searchFieldAria.descriptionProps} class={descriptionClasses()}>
438
- {local.description}
439
- </span>
440
- </Show>
441
-
442
- {/* Error Message */}
443
- <Show when={ariaProps.isInvalid && local.errorMessage}>
444
- <span {...searchFieldAria.errorMessageProps} class={errorClasses()}>
445
- {local.errorMessage}
446
- </span>
447
- </Show>
448
- </div>
449
- )
450
- }
451
-
452
- // Re-export types
453
- export type { SearchFieldState } from '@proyecto-viviana/solid-stately'