@zentauri-ui/zentauri-components 1.6.3 → 1.7.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 (578) hide show
  1. package/README.md +40 -6
  2. package/cli/cli.integration.test.ts +8 -0
  3. package/cli/index.mjs +47 -1
  4. package/cli/registry.json +2 -0
  5. package/dist/charts/area.js +11 -10
  6. package/dist/charts/area.js.map +1 -1
  7. package/dist/charts/area.mjs +4 -3
  8. package/dist/charts/area.mjs.map +1 -1
  9. package/dist/charts/bar.js +10 -9
  10. package/dist/charts/bar.js.map +1 -1
  11. package/dist/charts/bar.mjs +4 -3
  12. package/dist/charts/bar.mjs.map +1 -1
  13. package/dist/charts/bubble.js +10 -9
  14. package/dist/charts/bubble.js.map +1 -1
  15. package/dist/charts/bubble.mjs +4 -3
  16. package/dist/charts/bubble.mjs.map +1 -1
  17. package/dist/charts/line.js +10 -9
  18. package/dist/charts/line.js.map +1 -1
  19. package/dist/charts/line.mjs +4 -3
  20. package/dist/charts/line.mjs.map +1 -1
  21. package/dist/charts/pie.js +6 -5
  22. package/dist/charts/pie.js.map +1 -1
  23. package/dist/charts/pie.mjs +3 -2
  24. package/dist/charts/pie.mjs.map +1 -1
  25. package/dist/charts/shared/chart-frame.d.ts.map +1 -1
  26. package/dist/{chunk-QSIJKHC5.mjs → chunk-4XVNQ7IY.mjs} +223 -214
  27. package/dist/chunk-4XVNQ7IY.mjs.map +1 -0
  28. package/dist/chunk-4ZKBLVQX.js +248 -0
  29. package/dist/chunk-4ZKBLVQX.js.map +1 -0
  30. package/dist/chunk-6QQUQLPB.js +107 -0
  31. package/dist/chunk-6QQUQLPB.js.map +1 -0
  32. package/dist/chunk-ABOZ5QIX.js +84 -0
  33. package/dist/chunk-ABOZ5QIX.js.map +1 -0
  34. package/dist/chunk-ACGVDY5J.mjs +220 -0
  35. package/dist/chunk-ACGVDY5J.mjs.map +1 -0
  36. package/dist/{chunk-PPVJ4INP.mjs → chunk-ASJQP53L.mjs} +3 -3
  37. package/dist/{chunk-PPVJ4INP.mjs.map → chunk-ASJQP53L.mjs.map} +1 -1
  38. package/dist/{chunk-D55YIHBN.js → chunk-BTJYXKCW.js} +223 -214
  39. package/dist/chunk-BTJYXKCW.js.map +1 -0
  40. package/dist/{chunk-MM3P52WS.js → chunk-CL55KGDF.js} +56 -52
  41. package/dist/chunk-CL55KGDF.js.map +1 -0
  42. package/dist/chunk-CSFLMMAT.mjs +198 -0
  43. package/dist/chunk-CSFLMMAT.mjs.map +1 -0
  44. package/dist/chunk-EDARAO7X.js +206 -0
  45. package/dist/chunk-EDARAO7X.js.map +1 -0
  46. package/dist/chunk-EIRCCTNA.js +175 -0
  47. package/dist/chunk-EIRCCTNA.js.map +1 -0
  48. package/dist/chunk-EN4VLNBF.js +197 -0
  49. package/dist/chunk-EN4VLNBF.js.map +1 -0
  50. package/dist/chunk-FHLZH3PB.mjs +326 -0
  51. package/dist/chunk-FHLZH3PB.mjs.map +1 -0
  52. package/dist/chunk-FXYPRPAT.mjs +35 -0
  53. package/dist/chunk-FXYPRPAT.mjs.map +1 -0
  54. package/dist/{chunk-SPX2QDIB.mjs → chunk-G2WARVAM.mjs} +8 -4
  55. package/dist/chunk-G2WARVAM.mjs.map +1 -0
  56. package/dist/chunk-HCGSEPOD.mjs +196 -0
  57. package/dist/chunk-HCGSEPOD.mjs.map +1 -0
  58. package/dist/chunk-HDO5ZM2S.mjs +82 -0
  59. package/dist/chunk-HDO5ZM2S.mjs.map +1 -0
  60. package/dist/chunk-HMNIH3KJ.mjs +277 -0
  61. package/dist/chunk-HMNIH3KJ.mjs.map +1 -0
  62. package/dist/chunk-HNLQXHSQ.mjs +263 -0
  63. package/dist/chunk-HNLQXHSQ.mjs.map +1 -0
  64. package/dist/{chunk-M6FS7X54.mjs → chunk-ITVMSCOJ.mjs} +56 -52
  65. package/dist/chunk-ITVMSCOJ.mjs.map +1 -0
  66. package/dist/chunk-K6IZANTI.mjs +80 -0
  67. package/dist/chunk-K6IZANTI.mjs.map +1 -0
  68. package/dist/chunk-K7TCW5PJ.js +338 -0
  69. package/dist/chunk-K7TCW5PJ.js.map +1 -0
  70. package/dist/chunk-KTGV76M3.mjs +325 -0
  71. package/dist/chunk-KTGV76M3.mjs.map +1 -0
  72. package/dist/chunk-MTTXLC2V.mjs +100 -0
  73. package/dist/chunk-MTTXLC2V.mjs.map +1 -0
  74. package/dist/{chunk-JOMSI4WH.js → chunk-NFEA5TN2.js} +52 -47
  75. package/dist/chunk-NFEA5TN2.js.map +1 -0
  76. package/dist/chunk-NHQ3S4Y6.mjs +282 -0
  77. package/dist/chunk-NHQ3S4Y6.mjs.map +1 -0
  78. package/dist/{chunk-OVTWPGMW.mjs → chunk-NMQAHUYA.mjs} +52 -47
  79. package/dist/chunk-NMQAHUYA.mjs.map +1 -0
  80. package/dist/{chunk-MWR5DIA5.mjs → chunk-OULU7OC4.mjs} +3 -3
  81. package/dist/{chunk-MWR5DIA5.mjs.map → chunk-OULU7OC4.mjs.map} +1 -1
  82. package/dist/chunk-OZHETX4J.mjs +169 -0
  83. package/dist/chunk-OZHETX4J.mjs.map +1 -0
  84. package/dist/chunk-OZMSE44N.mjs +235 -0
  85. package/dist/chunk-OZMSE44N.mjs.map +1 -0
  86. package/dist/chunk-P5WLYJ2C.mjs +272 -0
  87. package/dist/chunk-P5WLYJ2C.mjs.map +1 -0
  88. package/dist/chunk-PHEUJ4EF.js +84 -0
  89. package/dist/chunk-PHEUJ4EF.js.map +1 -0
  90. package/dist/chunk-PMWRJ2KS.mjs +192 -0
  91. package/dist/chunk-PMWRJ2KS.mjs.map +1 -0
  92. package/dist/chunk-PR4QXFJT.js +132 -0
  93. package/dist/chunk-PR4QXFJT.js.map +1 -0
  94. package/dist/chunk-QAJOE3HJ.js +281 -0
  95. package/dist/chunk-QAJOE3HJ.js.map +1 -0
  96. package/dist/chunk-QBPVJH4P.mjs +128 -0
  97. package/dist/chunk-QBPVJH4P.mjs.map +1 -0
  98. package/dist/{chunk-MTJRPLMG.js → chunk-QNUDODDX.js} +8 -4
  99. package/dist/chunk-QNUDODDX.js.map +1 -0
  100. package/dist/{chunk-DO2LEXUY.js → chunk-QQ6F4LZK.js} +5 -5
  101. package/dist/{chunk-DO2LEXUY.js.map → chunk-QQ6F4LZK.js.map} +1 -1
  102. package/dist/chunk-QXHS3HHZ.mjs +340 -0
  103. package/dist/chunk-QXHS3HHZ.mjs.map +1 -0
  104. package/dist/chunk-QYLTKBH7.js +338 -0
  105. package/dist/chunk-QYLTKBH7.js.map +1 -0
  106. package/dist/chunk-TTTYW3TR.js +207 -0
  107. package/dist/chunk-TTTYW3TR.js.map +1 -0
  108. package/dist/chunk-W3QRRWQX.js +37 -0
  109. package/dist/chunk-W3QRRWQX.js.map +1 -0
  110. package/dist/chunk-WPXQHWPV.js +232 -0
  111. package/dist/chunk-WPXQHWPV.js.map +1 -0
  112. package/dist/chunk-XRDVD2EN.js +288 -0
  113. package/dist/chunk-XRDVD2EN.js.map +1 -0
  114. package/dist/chunk-XYEMP4K7.js +273 -0
  115. package/dist/chunk-XYEMP4K7.js.map +1 -0
  116. package/dist/chunk-YAO62VH2.js +342 -0
  117. package/dist/chunk-YAO62VH2.js.map +1 -0
  118. package/dist/{chunk-PVTTWOYV.js → chunk-Z6S36PDD.js} +7 -7
  119. package/dist/{chunk-PVTTWOYV.js.map → chunk-Z6S36PDD.js.map} +1 -1
  120. package/dist/chunk-ZYKJC5HH.js +296 -0
  121. package/dist/chunk-ZYKJC5HH.js.map +1 -0
  122. package/dist/design-system/accordion.d.ts +70 -0
  123. package/dist/design-system/accordion.d.ts.map +1 -0
  124. package/dist/design-system/alert.d.ts +39 -0
  125. package/dist/design-system/alert.d.ts.map +1 -0
  126. package/dist/design-system/avatar.d.ts +36 -0
  127. package/dist/design-system/avatar.d.ts.map +1 -0
  128. package/dist/design-system/badge.d.ts +71 -0
  129. package/dist/design-system/badge.d.ts.map +1 -0
  130. package/dist/design-system/breadcrumb.d.ts +27 -0
  131. package/dist/design-system/breadcrumb.d.ts.map +1 -0
  132. package/dist/design-system/button.d.ts +48 -0
  133. package/dist/design-system/button.d.ts.map +1 -0
  134. package/dist/design-system/card.d.ts +65 -0
  135. package/dist/design-system/card.d.ts.map +1 -0
  136. package/dist/design-system/checkbox.d.ts +32 -0
  137. package/dist/design-system/checkbox.d.ts.map +1 -0
  138. package/dist/design-system/divider.d.ts +45 -0
  139. package/dist/design-system/divider.d.ts.map +1 -0
  140. package/dist/design-system/drawer.d.ts +67 -0
  141. package/dist/design-system/drawer.d.ts.map +1 -0
  142. package/dist/design-system/dropdown.d.ts +79 -0
  143. package/dist/design-system/dropdown.d.ts.map +1 -0
  144. package/dist/design-system/dynamic-stepper.d.ts +29 -0
  145. package/dist/design-system/dynamic-stepper.d.ts.map +1 -0
  146. package/dist/design-system/empty-state.d.ts +29 -0
  147. package/dist/design-system/empty-state.d.ts.map +1 -0
  148. package/dist/design-system/file-upload.d.ts +19 -0
  149. package/dist/design-system/file-upload.d.ts.map +1 -0
  150. package/dist/design-system/index.d.ts +32 -0
  151. package/dist/design-system/index.d.ts.map +1 -0
  152. package/dist/design-system/inputs.d.ts +31 -0
  153. package/dist/design-system/inputs.d.ts.map +1 -0
  154. package/dist/design-system/modal.d.ts +66 -0
  155. package/dist/design-system/modal.d.ts.map +1 -0
  156. package/dist/design-system/pagination.d.ts +65 -0
  157. package/dist/design-system/pagination.d.ts.map +1 -0
  158. package/dist/design-system/progress.d.ts +57 -0
  159. package/dist/design-system/progress.d.ts.map +1 -0
  160. package/dist/design-system/radio-group.d.ts +37 -0
  161. package/dist/design-system/radio-group.d.ts.map +1 -0
  162. package/dist/design-system/select.d.ts +92 -0
  163. package/dist/design-system/select.d.ts.map +1 -0
  164. package/dist/design-system/skeleton.d.ts +104 -0
  165. package/dist/design-system/skeleton.d.ts.map +1 -0
  166. package/dist/design-system/slider.d.ts +44 -0
  167. package/dist/design-system/slider.d.ts.map +1 -0
  168. package/dist/design-system/spinner.d.ts +39 -0
  169. package/dist/design-system/spinner.d.ts.map +1 -0
  170. package/dist/design-system/stepper.d.ts +42 -0
  171. package/dist/design-system/stepper.d.ts.map +1 -0
  172. package/dist/design-system/table.d.ts +77 -0
  173. package/dist/design-system/table.d.ts.map +1 -0
  174. package/dist/design-system/tabs.d.ts +49 -0
  175. package/dist/design-system/tabs.d.ts.map +1 -0
  176. package/dist/design-system/toast.d.ts +43 -0
  177. package/dist/design-system/toast.d.ts.map +1 -0
  178. package/dist/design-system/toggle.d.ts +73 -0
  179. package/dist/design-system/toggle.d.ts.map +1 -0
  180. package/dist/design-system/tokens.d.ts +15 -0
  181. package/dist/design-system/tokens.d.ts.map +1 -0
  182. package/dist/design-system/tooltip.d.ts +41 -0
  183. package/dist/design-system/tooltip.d.ts.map +1 -0
  184. package/dist/design-system/typography.d.ts +42 -0
  185. package/dist/design-system/typography.d.ts.map +1 -0
  186. package/dist/hooks/useResizeObserver.js +6 -31
  187. package/dist/hooks/useResizeObserver.js.map +1 -1
  188. package/dist/hooks/useResizeObserver.mjs +1 -33
  189. package/dist/hooks/useResizeObserver.mjs.map +1 -1
  190. package/dist/ui/accordion/animated.js +7 -7
  191. package/dist/ui/accordion/animated.mjs +2 -2
  192. package/dist/ui/accordion/variants.d.ts +5 -5
  193. package/dist/ui/accordion/variants.d.ts.map +1 -1
  194. package/dist/ui/accordion.js +9 -9
  195. package/dist/ui/accordion.mjs +2 -2
  196. package/dist/ui/alert/animated.js +2 -2
  197. package/dist/ui/alert/animated.mjs +1 -1
  198. package/dist/ui/alert/variants.d.ts +4 -4
  199. package/dist/ui/alert/variants.d.ts.map +1 -1
  200. package/dist/ui/alert.js +10 -10
  201. package/dist/ui/alert.mjs +2 -2
  202. package/dist/ui/avatar/animated.js +5 -5
  203. package/dist/ui/avatar/animated.mjs +2 -2
  204. package/dist/ui/avatar/variants.d.ts +1 -1
  205. package/dist/ui/avatar/variants.d.ts.map +1 -1
  206. package/dist/ui/avatar.js +9 -9
  207. package/dist/ui/avatar.mjs +2 -2
  208. package/dist/ui/badge/animated.js +2 -2
  209. package/dist/ui/badge/animated.mjs +1 -1
  210. package/dist/ui/badge/variants.d.ts +29 -32
  211. package/dist/ui/badge/variants.d.ts.map +1 -1
  212. package/dist/ui/badge.js +4 -4
  213. package/dist/ui/badge.mjs +2 -2
  214. package/dist/ui/breadcrumb/variants.d.ts +1 -1
  215. package/dist/ui/breadcrumb/variants.d.ts.map +1 -1
  216. package/dist/ui/breadcrumb.js +42 -40
  217. package/dist/ui/breadcrumb.js.map +1 -1
  218. package/dist/ui/breadcrumb.mjs +42 -40
  219. package/dist/ui/breadcrumb.mjs.map +1 -1
  220. package/dist/ui/buttons/animated.js +3 -3
  221. package/dist/ui/buttons/animated.mjs +1 -1
  222. package/dist/ui/buttons/variants.d.ts +2 -2
  223. package/dist/ui/buttons/variants.d.ts.map +1 -1
  224. package/dist/ui/buttons.js +4 -4
  225. package/dist/ui/buttons.mjs +2 -2
  226. package/dist/ui/card/animated.js +7 -7
  227. package/dist/ui/card/animated.mjs +2 -2
  228. package/dist/ui/card/variants.d.ts +7 -7
  229. package/dist/ui/card/variants.d.ts.map +1 -1
  230. package/dist/ui/card.js +12 -12
  231. package/dist/ui/card.mjs +2 -2
  232. package/dist/ui/checkbox/animated/animations.d.ts +32 -0
  233. package/dist/ui/checkbox/animated/animations.d.ts.map +1 -0
  234. package/dist/ui/checkbox/animated/checkbox-animated.d.ts +6 -0
  235. package/dist/ui/checkbox/animated/checkbox-animated.d.ts.map +1 -0
  236. package/dist/ui/checkbox/animated/index.d.ts +4 -0
  237. package/dist/ui/checkbox/animated/index.d.ts.map +1 -0
  238. package/dist/ui/checkbox/animated/types.d.ts +8 -0
  239. package/dist/ui/checkbox/animated/types.d.ts.map +1 -0
  240. package/dist/ui/checkbox/animated.js +153 -0
  241. package/dist/ui/checkbox/animated.js.map +1 -0
  242. package/dist/ui/checkbox/animated.mjs +150 -0
  243. package/dist/ui/checkbox/animated.mjs.map +1 -0
  244. package/dist/ui/checkbox/checkbox-base.d.ts +6 -0
  245. package/dist/ui/checkbox/checkbox-base.d.ts.map +1 -0
  246. package/dist/ui/checkbox/checkbox.d.ts +6 -0
  247. package/dist/ui/checkbox/checkbox.d.ts.map +1 -0
  248. package/dist/ui/checkbox/index.d.ts +4 -0
  249. package/dist/ui/checkbox/index.d.ts.map +1 -0
  250. package/dist/ui/checkbox/types.d.ts +19 -0
  251. package/dist/ui/checkbox/types.d.ts.map +1 -0
  252. package/dist/ui/checkbox/variants.d.ts +11 -0
  253. package/dist/ui/checkbox/variants.d.ts.map +1 -0
  254. package/dist/ui/checkbox.js +150 -0
  255. package/dist/ui/checkbox.js.map +1 -0
  256. package/dist/ui/checkbox.mjs +137 -0
  257. package/dist/ui/checkbox.mjs.map +1 -0
  258. package/dist/ui/divider/animated.js +2 -2
  259. package/dist/ui/divider/animated.mjs +1 -1
  260. package/dist/ui/divider/variants.d.ts +4 -4
  261. package/dist/ui/divider/variants.d.ts.map +1 -1
  262. package/dist/ui/divider.js +6 -6
  263. package/dist/ui/divider.mjs +2 -2
  264. package/dist/ui/drawer/animated.js +11 -11
  265. package/dist/ui/drawer/animated.mjs +2 -2
  266. package/dist/ui/drawer/variants.d.ts +1 -1
  267. package/dist/ui/drawer/variants.d.ts.map +1 -1
  268. package/dist/ui/drawer.js +11 -11
  269. package/dist/ui/drawer.mjs +1 -1
  270. package/dist/ui/dropdown/variants.d.ts +4 -4
  271. package/dist/ui/dropdown/variants.d.ts.map +1 -1
  272. package/dist/ui/dropdown.js +106 -104
  273. package/dist/ui/dropdown.js.map +1 -1
  274. package/dist/ui/dropdown.mjs +106 -104
  275. package/dist/ui/dropdown.mjs.map +1 -1
  276. package/dist/ui/dynamic-stepper/variants.d.ts +5 -9
  277. package/dist/ui/dynamic-stepper/variants.d.ts.map +1 -1
  278. package/dist/ui/dynamic-stepper.js +100 -93
  279. package/dist/ui/dynamic-stepper.js.map +1 -1
  280. package/dist/ui/dynamic-stepper.mjs +98 -91
  281. package/dist/ui/dynamic-stepper.mjs.map +1 -1
  282. package/dist/ui/empty-state/animated.js +2 -2
  283. package/dist/ui/empty-state/animated.mjs +1 -1
  284. package/dist/ui/empty-state/variants.d.ts +3 -3
  285. package/dist/ui/empty-state/variants.d.ts.map +1 -1
  286. package/dist/ui/empty-state.js +10 -10
  287. package/dist/ui/empty-state.mjs +2 -2
  288. package/dist/ui/file-upload/variants.d.ts.map +1 -1
  289. package/dist/ui/file-upload.js +28 -26
  290. package/dist/ui/file-upload.js.map +1 -1
  291. package/dist/ui/file-upload.mjs +28 -26
  292. package/dist/ui/file-upload.mjs.map +1 -1
  293. package/dist/ui/inputs/animated.js +3 -3
  294. package/dist/ui/inputs/animated.mjs +1 -1
  295. package/dist/ui/inputs/variants.d.ts +1 -1
  296. package/dist/ui/inputs/variants.d.ts.map +1 -1
  297. package/dist/ui/inputs.js +4 -4
  298. package/dist/ui/inputs.mjs +2 -2
  299. package/dist/ui/modal/animated.js +4 -4
  300. package/dist/ui/modal/animated.mjs +1 -1
  301. package/dist/ui/modal/variants.d.ts +1 -1
  302. package/dist/ui/modal/variants.d.ts.map +1 -1
  303. package/dist/ui/modal.js +12 -12
  304. package/dist/ui/modal.mjs +2 -2
  305. package/dist/ui/pagination/variants.d.ts +3 -7
  306. package/dist/ui/pagination/variants.d.ts.map +1 -1
  307. package/dist/ui/pagination.js +84 -84
  308. package/dist/ui/pagination.js.map +1 -1
  309. package/dist/ui/pagination.mjs +81 -81
  310. package/dist/ui/pagination.mjs.map +1 -1
  311. package/dist/ui/progress/animated.js +8 -8
  312. package/dist/ui/progress/animated.mjs +2 -2
  313. package/dist/ui/progress/variants.d.ts +3 -3
  314. package/dist/ui/progress/variants.d.ts.map +1 -1
  315. package/dist/ui/progress.js +9 -9
  316. package/dist/ui/progress.mjs +2 -2
  317. package/dist/ui/radio-group/animated/animations.d.ts +32 -0
  318. package/dist/ui/radio-group/animated/animations.d.ts.map +1 -0
  319. package/dist/ui/radio-group/animated/index.d.ts +4 -0
  320. package/dist/ui/radio-group/animated/index.d.ts.map +1 -0
  321. package/dist/ui/radio-group/animated/radio-group-animated.d.ts +10 -0
  322. package/dist/ui/radio-group/animated/radio-group-animated.d.ts.map +1 -0
  323. package/dist/ui/radio-group/animated/types.d.ts +11 -0
  324. package/dist/ui/radio-group/animated/types.d.ts.map +1 -0
  325. package/dist/ui/radio-group/animated.js +177 -0
  326. package/dist/ui/radio-group/animated.js.map +1 -0
  327. package/dist/ui/radio-group/animated.mjs +173 -0
  328. package/dist/ui/radio-group/animated.mjs.map +1 -0
  329. package/dist/ui/radio-group/index.d.ts +4 -0
  330. package/dist/ui/radio-group/index.d.ts.map +1 -0
  331. package/dist/ui/radio-group/radio-group-context.d.ts +13 -0
  332. package/dist/ui/radio-group/radio-group-context.d.ts.map +1 -0
  333. package/dist/ui/radio-group/radio-group.d.ts +10 -0
  334. package/dist/ui/radio-group/radio-group.d.ts.map +1 -0
  335. package/dist/ui/radio-group/types.d.ts +26 -0
  336. package/dist/ui/radio-group/types.d.ts.map +1 -0
  337. package/dist/ui/radio-group/variants.d.ts +14 -0
  338. package/dist/ui/radio-group/variants.d.ts.map +1 -0
  339. package/dist/ui/radio-group.js +171 -0
  340. package/dist/ui/radio-group.js.map +1 -0
  341. package/dist/ui/radio-group.mjs +153 -0
  342. package/dist/ui/radio-group.mjs.map +1 -0
  343. package/dist/ui/search.js +2 -2
  344. package/dist/ui/search.mjs +1 -1
  345. package/dist/ui/select/variants.d.ts +6 -6
  346. package/dist/ui/select/variants.d.ts.map +1 -1
  347. package/dist/ui/select.js +122 -123
  348. package/dist/ui/select.js.map +1 -1
  349. package/dist/ui/select.mjs +122 -123
  350. package/dist/ui/select.mjs.map +1 -1
  351. package/dist/ui/skeleton/animated.js +8 -8
  352. package/dist/ui/skeleton/animated.mjs +1 -1
  353. package/dist/ui/skeleton/variants.d.ts +5 -4
  354. package/dist/ui/skeleton/variants.d.ts.map +1 -1
  355. package/dist/ui/skeleton.js +9 -9
  356. package/dist/ui/skeleton.mjs +1 -1
  357. package/dist/ui/slider/variants.d.ts +3 -3
  358. package/dist/ui/slider/variants.d.ts.map +1 -1
  359. package/dist/ui/slider.js +69 -67
  360. package/dist/ui/slider.js.map +1 -1
  361. package/dist/ui/slider.mjs +69 -67
  362. package/dist/ui/slider.mjs.map +1 -1
  363. package/dist/ui/spinner/animated/variants.d.ts +2 -2
  364. package/dist/ui/spinner/animated/variants.d.ts.map +1 -1
  365. package/dist/ui/spinner/animated.js +44 -38
  366. package/dist/ui/spinner/animated.js.map +1 -1
  367. package/dist/ui/spinner/animated.mjs +44 -38
  368. package/dist/ui/spinner/animated.mjs.map +1 -1
  369. package/dist/ui/stepper/variants.d.ts +1 -1
  370. package/dist/ui/stepper/variants.d.ts.map +1 -1
  371. package/dist/ui/stepper.js +57 -50
  372. package/dist/ui/stepper.js.map +1 -1
  373. package/dist/ui/stepper.mjs +57 -50
  374. package/dist/ui/stepper.mjs.map +1 -1
  375. package/dist/ui/table/animated.js +8 -8
  376. package/dist/ui/table/animated.mjs +2 -2
  377. package/dist/ui/table/variants.d.ts +2 -2
  378. package/dist/ui/table/variants.d.ts.map +1 -1
  379. package/dist/ui/table.js +14 -14
  380. package/dist/ui/table.mjs +1 -1
  381. package/dist/ui/tabs/animated.js +2 -2
  382. package/dist/ui/tabs/animated.mjs +1 -1
  383. package/dist/ui/tabs/variants.d.ts +2 -2
  384. package/dist/ui/tabs/variants.d.ts.map +1 -1
  385. package/dist/ui/tabs.js +9 -9
  386. package/dist/ui/tabs.mjs +1 -1
  387. package/dist/ui/toast/animated.js +7 -7
  388. package/dist/ui/toast/animated.mjs +1 -1
  389. package/dist/ui/toast/variants.d.ts +3 -3
  390. package/dist/ui/toast/variants.d.ts.map +1 -1
  391. package/dist/ui/toast.js +12 -12
  392. package/dist/ui/toast.mjs +1 -1
  393. package/dist/ui/toggle/animated/toggle-animated.d.ts.map +1 -1
  394. package/dist/ui/toggle/animated.js +13 -6
  395. package/dist/ui/toggle/animated.js.map +1 -1
  396. package/dist/ui/toggle/animated.mjs +12 -5
  397. package/dist/ui/toggle/animated.mjs.map +1 -1
  398. package/dist/ui/toggle/toggle-base.d.ts +2 -0
  399. package/dist/ui/toggle/toggle-base.d.ts.map +1 -1
  400. package/dist/ui/toggle/variants.d.ts +4 -4
  401. package/dist/ui/toggle/variants.d.ts.map +1 -1
  402. package/dist/ui/toggle.js +5 -94
  403. package/dist/ui/toggle.js.map +1 -1
  404. package/dist/ui/toggle.mjs +4 -93
  405. package/dist/ui/toggle.mjs.map +1 -1
  406. package/dist/ui/tooltip/animated.js +3 -3
  407. package/dist/ui/tooltip/animated.mjs +1 -1
  408. package/dist/ui/tooltip/variants.d.ts +3 -3
  409. package/dist/ui/tooltip/variants.d.ts.map +1 -1
  410. package/dist/ui/tooltip.js +7 -7
  411. package/dist/ui/tooltip.mjs +1 -1
  412. package/dist/ui/typography/variants.d.ts +1 -3
  413. package/dist/ui/typography/variants.d.ts.map +1 -1
  414. package/dist/ui/typography.js +51 -41
  415. package/dist/ui/typography.js.map +1 -1
  416. package/dist/ui/typography.mjs +51 -41
  417. package/dist/ui/typography.mjs.map +1 -1
  418. package/package.json +2 -1
  419. package/src/charts/shared/chart-frame.tsx +19 -8
  420. package/src/design-system/accordion.ts +111 -0
  421. package/src/design-system/alert.ts +64 -0
  422. package/src/design-system/avatar.ts +61 -0
  423. package/src/design-system/badge.ts +85 -0
  424. package/src/design-system/breadcrumb.ts +45 -0
  425. package/src/design-system/button.ts +81 -0
  426. package/src/design-system/card.ts +104 -0
  427. package/src/design-system/checkbox.ts +47 -0
  428. package/src/design-system/divider.ts +73 -0
  429. package/src/design-system/drawer.ts +111 -0
  430. package/src/design-system/dropdown.ts +130 -0
  431. package/src/design-system/dynamic-stepper.ts +218 -0
  432. package/src/design-system/empty-state.ts +39 -0
  433. package/src/design-system/file-upload.ts +30 -0
  434. package/src/design-system/index.ts +31 -0
  435. package/src/design-system/inputs.ts +74 -0
  436. package/src/design-system/modal.ts +110 -0
  437. package/src/design-system/pagination.ts +92 -0
  438. package/src/design-system/progress.ts +86 -0
  439. package/src/design-system/radio-group.ts +54 -0
  440. package/src/design-system/select.ts +155 -0
  441. package/src/design-system/skeleton.ts +129 -0
  442. package/src/design-system/slider.ts +70 -0
  443. package/src/design-system/spinner.ts +59 -0
  444. package/src/design-system/stepper.ts +66 -0
  445. package/src/design-system/table.ts +115 -0
  446. package/src/design-system/tabs.ts +73 -0
  447. package/src/design-system/toast.ts +69 -0
  448. package/src/design-system/toggle.ts +120 -0
  449. package/src/design-system/tokens.ts +22 -0
  450. package/src/design-system/tooltip.ts +63 -0
  451. package/src/design-system/typography.ts +64 -0
  452. package/src/ui/accordion/variants.ts +24 -106
  453. package/src/ui/alert/alert.test.tsx +1 -1
  454. package/src/ui/alert/variants.ts +25 -77
  455. package/src/ui/avatar/variants.ts +21 -66
  456. package/src/ui/badge/badge.test.tsx +1 -1
  457. package/src/ui/badge/variants.ts +28 -89
  458. package/src/ui/breadcrumb/variants.ts +24 -40
  459. package/src/ui/buttons/button.test.tsx +25 -5
  460. package/src/ui/buttons/variants.ts +15 -84
  461. package/src/ui/card/card.test.tsx +1 -1
  462. package/src/ui/card/variants.ts +46 -121
  463. package/src/ui/checkbox/animated/animations.ts +12 -0
  464. package/src/ui/checkbox/animated/checkbox-animated.tsx +145 -0
  465. package/src/ui/checkbox/animated/index.ts +9 -0
  466. package/src/ui/checkbox/animated/types.ts +9 -0
  467. package/src/ui/checkbox/checkbox-base.tsx +134 -0
  468. package/src/ui/checkbox/checkbox.test.tsx +53 -0
  469. package/src/ui/checkbox/checkbox.tsx +8 -0
  470. package/src/ui/checkbox/index.ts +15 -0
  471. package/src/ui/checkbox/types.ts +40 -0
  472. package/src/ui/checkbox/variants.ts +50 -0
  473. package/src/ui/divider/variants.ts +32 -70
  474. package/src/ui/drawer/drawer-base.tsx +1 -1
  475. package/src/ui/drawer/variants.ts +41 -132
  476. package/src/ui/dropdown/variants.ts +36 -142
  477. package/src/ui/dynamic-stepper/variants.ts +32 -216
  478. package/src/ui/empty-state/variants.ts +29 -44
  479. package/src/ui/file-upload/variants.ts +12 -36
  480. package/src/ui/inputs/input.test.tsx +11 -11
  481. package/src/ui/inputs/variants.ts +308 -371
  482. package/src/ui/modal/variants.ts +29 -120
  483. package/src/ui/pagination/pagination.test.tsx +1 -1
  484. package/src/ui/pagination/variants.ts +22 -95
  485. package/src/ui/progress/variants.ts +41 -112
  486. package/src/ui/radio-group/animated/animations.ts +12 -0
  487. package/src/ui/radio-group/animated/index.ts +10 -0
  488. package/src/ui/radio-group/animated/radio-group-animated.tsx +173 -0
  489. package/src/ui/radio-group/animated/types.ts +13 -0
  490. package/src/ui/radio-group/index.ts +19 -0
  491. package/src/ui/radio-group/radio-group-context.ts +23 -0
  492. package/src/ui/radio-group/radio-group.test.tsx +61 -0
  493. package/src/ui/radio-group/radio-group.tsx +159 -0
  494. package/src/ui/radio-group/types.ts +62 -0
  495. package/src/ui/radio-group/variants.ts +61 -0
  496. package/src/ui/select/variants.ts +40 -165
  497. package/src/ui/skeleton/variants.ts +154 -250
  498. package/src/ui/slider/variants.ts +34 -67
  499. package/src/ui/spinner/animated/variants.ts +10 -39
  500. package/src/ui/stepper/stepper.test.tsx +12 -4
  501. package/src/ui/stepper/variants.ts +23 -68
  502. package/src/ui/table/variants.ts +36 -106
  503. package/src/ui/tabs/variants.ts +26 -73
  504. package/src/ui/toast/variants.ts +24 -75
  505. package/src/ui/toggle/animated/toggle-animated.tsx +14 -4
  506. package/src/ui/toggle/toggle-base.tsx +3 -7
  507. package/src/ui/toggle/variants.ts +27 -111
  508. package/src/ui/tooltip/variants.ts +18 -57
  509. package/src/ui/typography/typography.test.tsx +1 -1
  510. package/src/ui/typography/variants.ts +17 -54
  511. package/dist/chunk-25EAVVGS.mjs +0 -267
  512. package/dist/chunk-25EAVVGS.mjs.map +0 -1
  513. package/dist/chunk-4F56BLZQ.js +0 -336
  514. package/dist/chunk-4F56BLZQ.js.map +0 -1
  515. package/dist/chunk-4PZIDDC6.js +0 -279
  516. package/dist/chunk-4PZIDDC6.js.map +0 -1
  517. package/dist/chunk-73RHHGIA.mjs +0 -197
  518. package/dist/chunk-73RHHGIA.mjs.map +0 -1
  519. package/dist/chunk-746CV3AN.js +0 -246
  520. package/dist/chunk-746CV3AN.js.map +0 -1
  521. package/dist/chunk-CFTDAGKD.js +0 -130
  522. package/dist/chunk-CFTDAGKD.js.map +0 -1
  523. package/dist/chunk-CXNDE4VC.js +0 -273
  524. package/dist/chunk-CXNDE4VC.js.map +0 -1
  525. package/dist/chunk-D55YIHBN.js.map +0 -1
  526. package/dist/chunk-EU63V22F.mjs +0 -126
  527. package/dist/chunk-EU63V22F.mjs.map +0 -1
  528. package/dist/chunk-EZS47EZW.mjs +0 -70
  529. package/dist/chunk-EZS47EZW.mjs.map +0 -1
  530. package/dist/chunk-GHJN3Z3V.js +0 -292
  531. package/dist/chunk-GHJN3Z3V.js.map +0 -1
  532. package/dist/chunk-GIC3J6HR.mjs +0 -196
  533. package/dist/chunk-GIC3J6HR.mjs.map +0 -1
  534. package/dist/chunk-GPAUYUM3.js +0 -232
  535. package/dist/chunk-GPAUYUM3.js.map +0 -1
  536. package/dist/chunk-HARD4NMB.mjs +0 -268
  537. package/dist/chunk-HARD4NMB.mjs.map +0 -1
  538. package/dist/chunk-HV7LVRK3.js +0 -277
  539. package/dist/chunk-HV7LVRK3.js.map +0 -1
  540. package/dist/chunk-JE6B3DHW.mjs +0 -220
  541. package/dist/chunk-JE6B3DHW.mjs.map +0 -1
  542. package/dist/chunk-JOMSI4WH.js.map +0 -1
  543. package/dist/chunk-KA5MORDC.js +0 -336
  544. package/dist/chunk-KA5MORDC.js.map +0 -1
  545. package/dist/chunk-M6FS7X54.mjs.map +0 -1
  546. package/dist/chunk-MM3P52WS.js.map +0 -1
  547. package/dist/chunk-MTJRPLMG.js.map +0 -1
  548. package/dist/chunk-OB6TYS5Q.js +0 -205
  549. package/dist/chunk-OB6TYS5Q.js.map +0 -1
  550. package/dist/chunk-OHST7AHC.mjs +0 -99
  551. package/dist/chunk-OHST7AHC.mjs.map +0 -1
  552. package/dist/chunk-OVTWPGMW.mjs.map +0 -1
  553. package/dist/chunk-OZ4SFJ3S.mjs +0 -264
  554. package/dist/chunk-OZ4SFJ3S.mjs.map +0 -1
  555. package/dist/chunk-PSIAOIXJ.mjs +0 -278
  556. package/dist/chunk-PSIAOIXJ.mjs.map +0 -1
  557. package/dist/chunk-QNF4JPFP.js +0 -339
  558. package/dist/chunk-QNF4JPFP.js.map +0 -1
  559. package/dist/chunk-QSIJKHC5.mjs.map +0 -1
  560. package/dist/chunk-QWC2QBRJ.js +0 -175
  561. package/dist/chunk-QWC2QBRJ.js.map +0 -1
  562. package/dist/chunk-RFFGQYDQ.mjs +0 -337
  563. package/dist/chunk-RFFGQYDQ.mjs.map +0 -1
  564. package/dist/chunk-S5H2OMTZ.mjs +0 -233
  565. package/dist/chunk-S5H2OMTZ.mjs.map +0 -1
  566. package/dist/chunk-SPX2QDIB.mjs.map +0 -1
  567. package/dist/chunk-TIPNRH26.js +0 -102
  568. package/dist/chunk-TIPNRH26.js.map +0 -1
  569. package/dist/chunk-V2PEOBAT.mjs +0 -324
  570. package/dist/chunk-V2PEOBAT.mjs.map +0 -1
  571. package/dist/chunk-V3XNH7Y4.mjs +0 -169
  572. package/dist/chunk-V3XNH7Y4.mjs.map +0 -1
  573. package/dist/chunk-VGWA26BN.js +0 -72
  574. package/dist/chunk-VGWA26BN.js.map +0 -1
  575. package/dist/chunk-WNLDXBS6.mjs +0 -323
  576. package/dist/chunk-WNLDXBS6.mjs.map +0 -1
  577. package/dist/chunk-YIO7DFUA.js +0 -207
  578. package/dist/chunk-YIO7DFUA.js.map +0 -1
@@ -1,72 +1,27 @@
1
1
  import { cva } from "class-variance-authority";
2
2
 
3
- export const avatarVariants = cva(
4
- "relative flex shrink-0 overflow-hidden rounded-full border border-black/10 dark:border-white/10 text-slate-700 dark:text-slate-200",
5
- {
6
- variants: {
7
- appearance: {
8
- default:
9
- "border-black/10 dark:border-white/10 bg-black/10 dark:bg-white/10 text-slate-700 dark:text-slate-200",
10
- muted:
11
- "border-black/40 bg-slate-50 dark:border-white/10 dark:bg-slate-950/40 text-slate-700 dark:text-slate-200",
12
- sky: "border-sky-800 dark:border-sky-600 bg-sky-100/50 dark:bg-sky-600/[0.03] text-slate-700 dark:text-slate-200",
13
- rose: "border-rose-800 dark:border-rose-600 bg-rose-100/50 dark:bg-rose-600/[0.03] text-slate-700 dark:text-slate-200",
14
- purple:
15
- "border-purple-800 dark:border-purple-600 bg-purple-100/50 dark:bg-purple-600/[0.03] text-slate-700 dark:text-slate-200",
16
- pink: "border-pink-800 dark:border-pink-600 bg-pink-100/50 dark:bg-pink-600/[0.03] text-slate-700 dark:text-slate-200",
17
- orange:
18
- "border-orange-800 dark:border-orange-600 bg-orange-100/50 dark:bg-orange-600/[0.03] text-slate-700 dark:text-slate-200",
19
- yellow:
20
- "border-yellow-800 dark:border-yellow-600 bg-yellow-100/50 dark:bg-yellow-600/[0.03] text-slate-700 dark:text-slate-200",
21
- teal: "border-teal-800 dark:border-teal-600 bg-teal-100/50 dark:bg-teal-600/[0.03] text-slate-700 dark:text-slate-200",
22
- indigo:
23
- "border-indigo-800 dark:border-indigo-600 bg-indigo-100/50 dark:bg-indigo-600/[0.03] text-slate-700 dark:text-slate-200",
24
- emerald:
25
- "border-emerald-800 dark:border-emerald-600 bg-emerald-100/50 dark:bg-emerald-600/[0.03] text-slate-700 dark:text-slate-200",
26
- gray: "border-gray-800 dark:border-gray-600 bg-gray-100/50 dark:bg-gray-600/[0.03] text-slate-700 dark:text-slate-200",
27
- amber:
28
- "border-amber-800 dark:border-amber-600 bg-amber-100/50 dark:bg-amber-600/[0.03] text-slate-700 dark:text-slate-200",
29
- violet:
30
- "border-violet-800 dark:border-violet-600 bg-violet-100/50 dark:bg-violet-600/[0.03] text-slate-700 dark:text-slate-200",
31
- "gradient-blue":
32
- "bg-linear-to-r from-blue-500 dark:from-blue-600 to-purple-500 dark:to-purple-600 backdrop-blur-xl text-slate-700 dark:text-slate-200",
33
- "gradient-green":
34
- "bg-linear-to-r from-green-500 dark:from-green-600 to-lime-500 dark:to-lime-600 backdrop-blur-xl text-slate-700 dark:text-slate-200",
35
- "gradient-red":
36
- "bg-linear-to-r from-red-500 dark:from-red-600 to-pink-500 dark:to-pink-600 backdrop-blur-xl text-slate-700 dark:text-slate-200",
37
- "gradient-yellow":
38
- "bg-linear-to-r from-yellow-500 dark:from-yellow-600 to-orange-500 dark:to-orange-600 backdrop-blur-xl text-slate-700 dark:text-slate-200",
39
- "gradient-purple":
40
- "bg-linear-to-r from-purple-500 dark:from-purple-600 to-pink-500 dark:to-pink-600 backdrop-blur-xl text-slate-700 dark:text-slate-200",
41
- "gradient-teal":
42
- "bg-linear-to-r from-teal-500 dark:from-teal-600 to-cyan-500 dark:to-cyan-600 backdrop-blur-xl text-slate-700 dark:text-slate-200",
43
- "gradient-indigo":
44
- "bg-linear-to-r from-indigo-500 dark:from-indigo-600 to-purple-500 dark:to-purple-600 backdrop-blur-xl text-slate-700 dark:text-slate-200",
45
- "gradient-pink":
46
- "bg-linear-to-r from-pink-500 dark:from-pink-600 to-rose-500 dark:to-rose-600 backdrop-blur-xl text-slate-700 dark:text-slate-200",
47
- "gradient-orange":
48
- "bg-linear-to-r from-orange-500 dark:from-orange-600 to-red-500 dark:to-red-600 backdrop-blur-xl text-slate-700 dark:text-slate-200",
49
- },
50
- size: {
51
- sm: "size-8 text-xs",
52
- md: "size-10 text-sm",
53
- lg: "size-12 text-base",
54
- xl: "size-16 text-lg",
55
- },
56
- },
57
- defaultVariants: {
58
- size: "md",
59
- appearance: "default",
60
- },
3
+ import {
4
+ zuiAvatarAppearances,
5
+ zuiAvatarBase,
6
+ zuiAvatarFallbackBase,
7
+ zuiAvatarGroupBase,
8
+ zuiAvatarImageBase,
9
+ zuiAvatarSizes,
10
+ } from "../../design-system/avatar";
11
+
12
+ export const avatarVariants = cva(zuiAvatarBase, {
13
+ variants: {
14
+ appearance: zuiAvatarAppearances,
15
+ size: zuiAvatarSizes,
16
+ },
17
+ defaultVariants: {
18
+ size: "md",
19
+ appearance: "default",
61
20
  },
62
- );
21
+ });
63
22
 
64
- export const avatarImageVariants = cva("aspect-square size-full object-cover");
23
+ export const avatarImageVariants = cva(zuiAvatarImageBase);
65
24
 
66
- export const avatarFallbackVariants = cva(
67
- "flex size-full items-center justify-center bg-slate-200 dark:bg-slate-800 font-medium text-slate-800 dark:text-slate-100",
68
- );
25
+ export const avatarFallbackVariants = cva(zuiAvatarFallbackBase);
69
26
 
70
- export const avatarGroupVariants = cva(
71
- "flex items-center [&_[data-slot=avatar]]:-ml-2 [&_[data-slot=avatar]]:ring-2 [&_[data-slot=avatar]]:ring-white dark:[&_[data-slot=avatar]]:ring-slate-950 [&_[data-slot=avatar]]:first:ml-0",
72
- );
27
+ export const avatarGroupVariants = cva(zuiAvatarGroupBase);
@@ -20,7 +20,7 @@ describe("Badge", () => {
20
20
  it("should apply secondary appearance", () => {
21
21
  render(<Badge appearance="secondary">S</Badge>);
22
22
  const root = document.querySelector('[data-slot="badge"]') as HTMLElement;
23
- expect(root.className).toMatch(/bg-slate-800/);
23
+ expect(root.className).toMatch(/--zui-badge-secondary-bg/);
24
24
  });
25
25
 
26
26
  it("should call onClose when closable", async () => {
@@ -1,96 +1,35 @@
1
1
  import { cva } from "class-variance-authority";
2
2
 
3
- /**
4
- * Tailwind class maps mirroring `buttons/variants.ts` appearance tokens.
5
- * Reused by primitives that should stay visually aligned with Button.
6
- */
7
- export const buttonLikeSolidAppearances = {
8
- default:
9
- "bg-slate-900 dark:bg-slate-50 text-slate-50 dark:text-slate-950 shadow-[0_1px_2px_rgba(15,23,42,0.08)] dark:shadow-[0_1px_2px_rgba(15,23,42,0.12)]",
10
- secondary: "bg-slate-200 dark:bg-slate-800 text-slate-900 dark:text-slate-50",
11
- destructive: "bg-rose-500 dark:bg-rose-700 text-slate-900 dark:text-white",
12
- outline:
13
- "border border-black/10 dark:border-white/10 bg-black/5 dark:bg-white/5 text-slate-900 dark:text-slate-50",
14
- ghost: "bg-transparent text-slate-700 dark:text-slate-200",
15
- glass:
16
- "border border-black/15 dark:border-white/15 bg-black/10 dark:bg-white/10 text-slate-900 dark:text-white backdrop-blur-md",
17
- emerald: "bg-emerald-500 dark:bg-emerald-800 text-slate-100 dark:text-white",
18
- indigo: "bg-indigo-800 dark:bg-indigo-600 text-slate-100 dark:text-white",
19
- purple: "bg-purple-800 dark:bg-purple-600 text-slate-100 dark:text-white",
20
- pink: "bg-pink-800 dark:bg-pink-600 text-slate-100 dark:text-white",
21
- rose: "bg-rose-500 dark:bg-rose-700 text-slate-100 dark:text-white",
22
- sky: "bg-sky-500 dark:bg-sky-700 text-slate-100 dark:text-white",
23
- teal: "bg-teal-500 dark:bg-teal-700 text-slate-100 dark:text-white",
24
- yellow: "bg-yellow-500 dark:bg-yellow-800 text-slate-100 dark:text-white",
25
- orange: "bg-orange-500 dark:bg-orange-800 text-slate-100 dark:text-white",
26
- "gradient-blue":
27
- "bg-linear-to-r from-blue-800 dark:from-blue-600 to-purple-800 dark:to-purple-600 text-slate-100 dark:text-white",
28
- "gradient-green":
29
- "bg-linear-to-r from-green-800 dark:from-green-600 to-lime-800 dark:to-lime-600 text-slate-100 dark:text-white",
30
- "gradient-red":
31
- "bg-linear-to-r from-red-800 dark:from-red-600 to-pink-800 dark:to-pink-600 text-slate-100 dark:text-white",
32
- "gradient-yellow":
33
- "bg-linear-to-r from-yellow-800 dark:from-yellow-600 to-orange-800 dark:to-orange-600 text-slate-100 dark:text-white",
34
- "gradient-purple":
35
- "bg-linear-to-r from-purple-800 dark:from-purple-600 to-pink-800 dark:to-pink-600 text-slate-100 dark:text-white",
36
- "gradient-teal":
37
- "bg-linear-to-r from-teal-800 dark:from-teal-600 to-cyan-800 dark:to-cyan-600 text-slate-100 dark:text-white",
38
- "gradient-indigo":
39
- "bg-linear-to-r from-indigo-800 dark:from-indigo-600 to-purple-800 dark:to-purple-600 text-slate-100 dark:text-white",
40
- "gradient-pink":
41
- "bg-linear-to-r from-pink-800 dark:from-pink-600 to-rose-800 dark:to-rose-600 text-slate-100 dark:text-white",
42
- "gradient-orange":
43
- "bg-linear-to-r from-orange-800 dark:from-orange-600 to-red-800 dark:to-red-600 text-slate-100 dark:text-white",
44
- } as const;
3
+ import {
4
+ zuiBadgeAppearances,
5
+ zuiBadgeBase,
6
+ zuiBadgeCloseButtonBase,
7
+ zuiBadgeCloseButtonSizes,
8
+ zuiBadgeShapes,
9
+ zuiBadgeSizes,
10
+ zuiButtonLikeSolidAppearances,
11
+ type ZuiButtonLikeSolidAppearance,
12
+ } from "../../design-system/badge";
45
13
 
46
- export type ButtonLikeSolidAppearance = keyof typeof buttonLikeSolidAppearances;
14
+ export const buttonLikeSolidAppearances = zuiButtonLikeSolidAppearances;
15
+ export type ButtonLikeSolidAppearance = ZuiButtonLikeSolidAppearance;
47
16
 
48
- const badgeAppearances = {
49
- ...buttonLikeSolidAppearances,
50
- outline:
51
- "border border-black/15 dark:border-white/15 bg-transparent text-slate-700 dark:text-slate-200 shadow-none",
52
- ghost: "bg-transparent text-slate-600 dark:text-slate-300 shadow-none",
53
- } as const;
54
-
55
- export const badgeVariants = cva(
56
- [
57
- "inline-flex max-w-full items-center justify-center gap-1 font-medium",
58
- "whitespace-nowrap ring-offset-slate-50 dark:ring-offset-slate-950 transition-colors",
59
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-slate-600 dark:focus-visible:ring-slate-300 focus-visible:ring-offset-2",
60
- "select-none",
61
- ],
62
- {
63
- variants: {
64
- appearance: badgeAppearances,
65
- size: {
66
- sm: "h-6 min-h-6 px-2 text-[0.65rem] leading-none",
67
- md: "h-7 min-h-7 px-2.5 text-xs leading-none",
68
- lg: "h-8 min-h-8 px-3 text-sm leading-none",
69
- },
70
- shape: {
71
- pill: "rounded-full",
72
- square: "rounded-md",
73
- dot: "h-2.5 min-h-2.5 w-2.5 min-w-2.5 rounded-full p-0 px-0 text-[0]",
74
- },
75
- },
76
- defaultVariants: {
77
- appearance: "default",
78
- size: "md",
79
- shape: "pill",
80
- },
17
+ export const badgeVariants = cva(zuiBadgeBase, {
18
+ variants: {
19
+ appearance: zuiBadgeAppearances,
20
+ size: zuiBadgeSizes,
21
+ shape: zuiBadgeShapes,
22
+ },
23
+ defaultVariants: {
24
+ appearance: "default",
25
+ size: "md",
26
+ shape: "pill",
81
27
  },
82
- );
28
+ });
83
29
 
84
- export const badgeCloseButtonVariants = cva(
85
- "inline-flex shrink-0 items-center justify-center rounded-md p-0.5 text-current transition focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-black/40 dark:focus-visible:ring-white/40",
86
- {
87
- variants: {
88
- size: {
89
- sm: "size-4",
90
- md: "size-5",
91
- lg: "size-6",
92
- },
93
- },
94
- defaultVariants: { size: "md" },
30
+ export const badgeCloseButtonVariants = cva(zuiBadgeCloseButtonBase, {
31
+ variants: {
32
+ size: zuiBadgeCloseButtonSizes,
95
33
  },
96
- );
34
+ defaultVariants: { size: "md" },
35
+ });
@@ -1,54 +1,38 @@
1
1
  import { cva } from "class-variance-authority";
2
2
 
3
- export const breadcrumbNavVariants = cva("text-sm", {
3
+ import {
4
+ zuiBreadcrumbAppearances,
5
+ zuiBreadcrumbItemBase,
6
+ zuiBreadcrumbLinkBase,
7
+ zuiBreadcrumbListBase,
8
+ zuiBreadcrumbNavBase,
9
+ zuiBreadcrumbPageBase,
10
+ zuiBreadcrumbSeparatorBase,
11
+ zuiBreadcrumbSeparatorSizes,
12
+ } from "../../design-system/breadcrumb";
13
+
14
+ export const breadcrumbNavVariants = cva(zuiBreadcrumbNavBase, {
4
15
  variants: {
5
- appearance: {
6
- default: "text-slate-600 dark:text-slate-300",
7
- muted: "text-slate-500 dark:text-slate-400",
8
- sky: "text-sky-800 dark:text-sky-600",
9
- rose: "text-rose-800 dark:text-rose-600",
10
- purple: "text-purple-800 dark:text-purple-600",
11
- pink: "text-pink-800 dark:text-pink-600",
12
- orange: "text-orange-800 dark:text-orange-600",
13
- yellow: "text-yellow-800 dark:text-yellow-600",
14
- teal: "text-teal-800 dark:text-teal-600",
15
- indigo: "text-indigo-800 dark:text-indigo-600",
16
- emerald: "text-emerald-800 dark:text-emerald-600",
17
- gray: "text-gray-800 dark:text-gray-600",
18
- amber: "text-amber-800 dark:text-amber-600",
19
- violet: "text-violet-800 dark:text-violet-600",
20
- },
16
+ appearance: zuiBreadcrumbAppearances,
21
17
  },
22
18
  defaultVariants: {
23
19
  appearance: "default",
24
20
  },
25
21
  });
26
22
 
27
- export const breadcrumbListVariants = cva(
28
- "flex flex-wrap items-center gap-1.5",
29
- );
23
+ export const breadcrumbListVariants = cva(zuiBreadcrumbListBase);
30
24
 
31
- export const breadcrumbItemVariants = cva("inline-flex items-center gap-1.5");
25
+ export const breadcrumbItemVariants = cva(zuiBreadcrumbItemBase);
32
26
 
33
- export const breadcrumbLinkVariants = cva(
34
- "rounded-md focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-black/30 dark:focus-visible:ring-white/30 focus-visible:ring-offset-2 focus-visible:ring-offset-slate-50 dark:focus-visible:ring-offset-slate-950",
35
- );
27
+ export const breadcrumbLinkVariants = cva(zuiBreadcrumbLinkBase);
36
28
 
37
- export const breadcrumbPageVariants = cva(
38
- "font-medium text-slate-800 dark:text-slate-100",
39
- );
29
+ export const breadcrumbPageVariants = cva(zuiBreadcrumbPageBase);
40
30
 
41
- export const breadcrumbSeparatorVariants = cva(
42
- "select-none text-slate-400 dark:text-slate-600",
43
- {
44
- variants: {
45
- size: {
46
- sm: "text-xs",
47
- md: "text-sm",
48
- },
49
- },
50
- defaultVariants: {
51
- size: "md",
52
- },
31
+ export const breadcrumbSeparatorVariants = cva(zuiBreadcrumbSeparatorBase, {
32
+ variants: {
33
+ size: zuiBreadcrumbSeparatorSizes,
53
34
  },
54
- );
35
+ defaultVariants: {
36
+ size: "md",
37
+ },
38
+ });
@@ -111,7 +111,7 @@ describe("Button (component library)", () => {
111
111
  expect(
112
112
  root.className,
113
113
  "Default appearance must include the default surface token classes",
114
- ).toMatch(/bg-slate-50/);
114
+ ).toMatch(/--zui-button-default-bg/);
115
115
  });
116
116
 
117
117
  it("should apply secondary appearance when appearance='secondary'", () => {
@@ -120,7 +120,7 @@ describe("Button (component library)", () => {
120
120
  expect(
121
121
  root.className,
122
122
  "Secondary appearance must switch to the slate surface recipe",
123
- ).toMatch(/bg-slate-800/);
123
+ ).toMatch(/--zui-button-secondary-bg/);
124
124
  });
125
125
 
126
126
  it("should apply destructive appearance when appearance='destructive'", () => {
@@ -129,7 +129,7 @@ describe("Button (component library)", () => {
129
129
  expect(
130
130
  root.className,
131
131
  "Destructive appearance must surface danger styling",
132
- ).toMatch(/bg-rose-700/);
132
+ ).toMatch(/--zui-button-destructive-bg/);
133
133
  });
134
134
 
135
135
  it("should apply outline appearance when appearance='outline'", () => {
@@ -138,7 +138,7 @@ describe("Button (component library)", () => {
138
138
  expect(
139
139
  root.className,
140
140
  "Outline appearance must include border and translucent surface classes",
141
- ).toMatch(/border-white\/10/);
141
+ ).toMatch(/--zui-button-outline-border/);
142
142
  });
143
143
 
144
144
  it("should apply gradient appearance tokens for gradient presets", () => {
@@ -148,6 +148,10 @@ describe("Button (component library)", () => {
148
148
  root.className,
149
149
  "Gradient-blue appearance must include directional gradient utilities",
150
150
  ).toMatch(/bg-linear-to-r/);
151
+ expect(
152
+ root.className,
153
+ "Gradient-blue appearance must expose gradient color variables",
154
+ ).toMatch(/--zui-button-gradient-blue-from/);
151
155
  });
152
156
  });
153
157
 
@@ -198,12 +202,28 @@ describe("Button (component library)", () => {
198
202
  expect(
199
203
  root.className,
200
204
  "Consumer class names must not replace variant output",
201
- ).toMatch(/bg-slate-800/);
205
+ ).toMatch(/--zui-button-secondary-bg/);
202
206
  expect(
203
207
  root.className,
204
208
  "Consumer class names must be appended for Tailwind overrides",
205
209
  ).toMatch(/my-custom-trigger/);
206
210
  });
211
+
212
+ it("should allow consumers to override button CSS variables without changing variant props", () => {
213
+ render(
214
+ <Button
215
+ className="[--zui-button-secondary-bg:#123456]"
216
+ appearance="secondary"
217
+ >
218
+ Branded
219
+ </Button>,
220
+ );
221
+ const root = getButtonSlot();
222
+ expect(
223
+ root.className,
224
+ "Appearance API should stay stable while CSS variables remain overrideable",
225
+ ).toMatch(/--zui-button-secondary-bg:#123456/);
226
+ });
207
227
  });
208
228
 
209
229
  describe("props: disabled state", () => {
@@ -1,87 +1,18 @@
1
1
  import { cva } from "class-variance-authority";
2
2
 
3
- export const buttonVariants = cva(
4
- [
5
- "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-xl",
6
- "text-sm font-medium ring-offset-slate-50 dark:ring-offset-slate-950 transition-colors",
7
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-slate-600 dark:focus-visible:ring-slate-300 focus-visible:ring-offset-2",
8
- "disabled:pointer-events-none disabled:opacity-50",
9
- "select-none",
10
- ],
11
- {
12
- variants: {
13
- appearance: {
14
- default:
15
- "bg-slate-900 dark:bg-slate-50 text-slate-50 dark:text-slate-950 shadow-[0_1px_2px_rgba(15,23,42,0.08)] dark:shadow-[0_1px_2px_rgba(15,23,42,0.12)] hover:bg-black dark:hover:bg-white",
16
- secondary:
17
- "bg-slate-200 dark:bg-slate-800 text-slate-900 dark:text-slate-50 hover:bg-slate-300 dark:hover:bg-slate-700",
18
- destructive:
19
- "bg-rose-500 dark:bg-rose-700 text-white hover:bg-rose-500 dark:hover:bg-rose-800",
20
- outline:
21
- "border border-black/10 dark:border-white/10 bg-black/5 dark:bg-white/5 text-slate-900 dark:text-slate-50 hover:bg-black/10 dark:hover:bg-white/10",
22
- ghost:
23
- "bg-transparent text-slate-700 dark:text-slate-200 hover:bg-black/5 dark:hover:bg-white/5",
24
- link: "bg-transparent text-cyan-700 dark:text-cyan-300 underline-offset-4 hover:underline",
25
- glass:
26
- "border border-black/15 dark:border-white/15 bg-black/10 dark:bg-white/10 text-slate-900 dark:text-white backdrop-blur-md hover:bg-black/15 dark:hover:bg-white/15",
27
- emerald:
28
- "bg-emerald-500 dark:bg-emerald-800 text-white hover:bg-emerald-500 dark:hover:bg-emerald-900",
29
- indigo:
30
- "bg-indigo-800 dark:bg-indigo-600 text-white hover:bg-indigo-800 dark:hover:bg-indigo-600",
31
- purple:
32
- "bg-purple-800 dark:bg-purple-600 text-white hover:bg-purple-800 dark:hover:bg-purple-600",
33
- pink: "bg-pink-800 dark:bg-pink-600 text-white hover:bg-pink-800 dark:hover:bg-pink-600",
34
- rose: "bg-rose-800 dark:bg-rose-600 text-white hover:bg-rose-800 dark:hover:bg-rose-600",
35
- sky: "bg-sky-500 dark:bg-sky-700 text-white hover:bg-sky-500 dark:hover:bg-sky-800",
36
- teal: "bg-teal-500 dark:bg-teal-700 text-white hover:bg-teal-500 dark:hover:bg-teal-800",
37
- yellow:
38
- "bg-yellow-500 dark:bg-yellow-800 text-white hover:bg-yellow-500 dark:hover:bg-yellow-900",
39
- orange:
40
- "bg-orange-500 dark:bg-orange-800 text-white hover:bg-orange-500 dark:hover:bg-orange-900",
41
- gray: "bg-gray-500 dark:bg-gray-700 text-white hover:bg-gray-500 dark:hover:bg-gray-800",
42
- amber:
43
- "bg-amber-500 dark:bg-amber-800 text-white hover:bg-amber-500 dark:hover:bg-amber-900",
44
- violet:
45
- "bg-violet-800 dark:bg-violet-600 text-white hover:bg-violet-800 dark:hover:bg-violet-600",
46
- "gradient-blue":
47
- "bg-linear-to-r from-blue-800 dark:from-blue-600 to-purple-800 dark:to-purple-600 text-white hover:from-blue-800 dark:hover:from-blue-600 hover:to-purple-800 dark:hover:to-purple-600",
48
- "gradient-green":
49
- "bg-linear-to-r from-green-800 dark:from-green-600 to-lime-800 dark:to-lime-600 text-white hover:from-green-800 dark:hover:from-green-600 hover:to-lime-800 dark:hover:to-lime-600",
50
- "gradient-red":
51
- "bg-linear-to-r from-red-800 dark:from-red-600 to-pink-800 dark:to-pink-600 text-white hover:from-red-800 dark:hover:from-red-600 hover:to-pink-800 dark:hover:to-pink-600",
52
- "gradient-yellow":
53
- "bg-linear-to-r from-yellow-800 dark:from-yellow-600 to-orange-800 dark:to-orange-600 text-white hover:from-yellow-800 dark:hover:from-yellow-600 hover:to-orange-800 dark:hover:to-orange-600",
54
- "gradient-purple":
55
- "bg-linear-to-r from-purple-800 dark:from-purple-600 to-pink-800 dark:to-pink-600 text-white hover:from-purple-800 dark:hover:from-purple-600 hover:to-pink-800 dark:hover:to-pink-600",
56
- "gradient-teal":
57
- "bg-linear-to-r from-teal-800 dark:from-teal-600 to-cyan-800 dark:to-cyan-600 text-white hover:from-teal-800 dark:hover:from-teal-600 hover:to-cyan-800 dark:hover:to-cyan-600",
58
- "gradient-indigo":
59
- "bg-linear-to-r from-indigo-800 dark:from-indigo-600 to-purple-800 dark:to-purple-600 text-white hover:from-indigo-800 dark:hover:from-indigo-600 hover:to-purple-800 dark:hover:to-purple-600",
60
- "gradient-pink":
61
- "bg-linear-to-r from-pink-800 dark:from-pink-600 to-rose-800 dark:to-rose-600 text-white hover:from-pink-800 dark:hover:from-pink-600 hover:to-rose-800 dark:hover:to-rose-600",
62
- "gradient-orange":
63
- "bg-linear-to-r from-orange-800 dark:from-orange-600 to-red-800 dark:to-red-600 text-white hover:from-orange-800 dark:hover:from-orange-600 hover:to-red-800 dark:hover:to-red-600",
64
- },
65
- size: {
66
- sm: "h-7 md:h-9 px-3 text-xs",
67
- md: "h-9 md:h-11 px-4",
68
- lg: "h-10 md:h-12 px-5 text-base",
69
- xl: "h-12 md:h-14 px-6 text-lg",
70
- "2xl": "h-14 md:h-16 px-6 md:px-8 text-xl",
71
- "3xl": "h-16 md:h-18 px-8 md:px-10 text-2xl",
72
- "4xl": "h-18 md:h-20 px-10 md:px-12 text-2xl",
73
- "5xl": "h-20 md:h-22 px-12 md:px-14 text-2xl",
74
- "6xl": "h-22 md:h-24 px-14 md:px-16 text-2xl",
75
- "7xl": "h-24 md:h-26 px-16 md:px-18 text-2xl",
76
- "8xl": "h-26 md:h-28 px-20 text-2xl",
77
- "9xl": "h-24 md:h-30 px-18 md:px-22 text-2xl",
78
- "10xl": "h-26 md:h-32 px-20 md:px-24 text-2xl",
79
- icon: "h-10 w-10",
80
- },
81
- },
82
- defaultVariants: {
83
- appearance: "default",
84
- size: "md",
85
- },
3
+ import {
4
+ zuiButtonAppearances,
5
+ zuiButtonBase,
6
+ zuiButtonSizes,
7
+ } from "../../design-system";
8
+
9
+ export const buttonVariants = cva(zuiButtonBase, {
10
+ variants: {
11
+ appearance: zuiButtonAppearances,
12
+ size: zuiButtonSizes,
13
+ },
14
+ defaultVariants: {
15
+ appearance: "default",
16
+ size: "md",
86
17
  },
87
- );
18
+ });
@@ -42,7 +42,7 @@ describe("Card", () => {
42
42
 
43
43
  it("should apply default appearance classes", () => {
44
44
  render(<Card>Inner</Card>);
45
- expect(getCardRoot().className).toMatch(/border-white\/10/);
45
+ expect(getCardRoot().className).toMatch(/--zui-card-default-border/);
46
46
  });
47
47
 
48
48
  it("should apply glass appearance when requested", () => {