@zentauri-ui/zentauri-components 1.5.22 → 1.6.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 (394) hide show
  1. package/README.md +136 -70
  2. package/cli/registry.json +2 -0
  3. package/dist/charts/area.js.map +1 -1
  4. package/dist/charts/area.mjs.map +1 -1
  5. package/dist/charts/bubble/Bubble.d.ts.map +1 -1
  6. package/dist/charts/bubble.js.map +1 -1
  7. package/dist/charts/bubble.mjs.map +1 -1
  8. package/dist/charts/pie/Pie.d.ts.map +1 -1
  9. package/dist/charts/pie.js +20 -2
  10. package/dist/charts/pie.js.map +1 -1
  11. package/dist/charts/pie.mjs +20 -2
  12. package/dist/charts/pie.mjs.map +1 -1
  13. package/dist/charts/shared/types.d.ts.map +1 -1
  14. package/dist/{chunk-G3LEYBRV.mjs → chunk-25EAVVGS.mjs} +61 -58
  15. package/dist/chunk-25EAVVGS.mjs.map +1 -0
  16. package/dist/{chunk-BCZIYH53.js → chunk-3OXIZ4ZO.js} +28 -28
  17. package/dist/chunk-3OXIZ4ZO.js.map +1 -0
  18. package/dist/chunk-3PC7XLJX.js +102 -0
  19. package/dist/chunk-3PC7XLJX.js.map +1 -0
  20. package/dist/chunk-4ECCMHAX.mjs +323 -0
  21. package/dist/chunk-4ECCMHAX.mjs.map +1 -0
  22. package/dist/chunk-4MPNRGUA.mjs +65 -0
  23. package/dist/chunk-4MPNRGUA.mjs.map +1 -0
  24. package/dist/{chunk-Y745GQR2.js → chunk-4PZIDDC6.js} +45 -45
  25. package/dist/chunk-4PZIDDC6.js.map +1 -0
  26. package/dist/{chunk-PWL5WD34.js → chunk-662PJBZD.js} +27 -26
  27. package/dist/chunk-662PJBZD.js.map +1 -0
  28. package/dist/{chunk-TINHLHCN.mjs → chunk-73RHHGIA.mjs} +39 -36
  29. package/dist/chunk-73RHHGIA.mjs.map +1 -0
  30. package/dist/{chunk-OLEMP2HL.js → chunk-746CV3AN.js} +29 -36
  31. package/dist/chunk-746CV3AN.js.map +1 -0
  32. package/dist/{chunk-AUGLZ3AN.js → chunk-BMFPUQZC.js} +50 -50
  33. package/dist/chunk-BMFPUQZC.js.map +1 -0
  34. package/dist/chunk-CFTDAGKD.js +130 -0
  35. package/dist/chunk-CFTDAGKD.js.map +1 -0
  36. package/dist/{chunk-N2OAI2HN.js → chunk-D55YIHBN.js} +15 -15
  37. package/dist/chunk-D55YIHBN.js.map +1 -0
  38. package/dist/chunk-DO2LEXUY.js +62 -0
  39. package/dist/chunk-DO2LEXUY.js.map +1 -0
  40. package/dist/chunk-EU63V22F.mjs +126 -0
  41. package/dist/chunk-EU63V22F.mjs.map +1 -0
  42. package/dist/chunk-EZS47EZW.mjs +70 -0
  43. package/dist/chunk-EZS47EZW.mjs.map +1 -0
  44. package/dist/{chunk-E4FZY7O2.js → chunk-GHJN3Z3V.js} +48 -48
  45. package/dist/chunk-GHJN3Z3V.js.map +1 -0
  46. package/dist/{chunk-MTLLJFUI.mjs → chunk-GIC3J6HR.mjs} +28 -28
  47. package/dist/chunk-GIC3J6HR.mjs.map +1 -0
  48. package/dist/{chunk-C5L465FW.mjs → chunk-HARD4NMB.mjs} +45 -45
  49. package/dist/chunk-HARD4NMB.mjs.map +1 -0
  50. package/dist/{chunk-2VQJ6OIL.js → chunk-HPN7H5ZM.js} +2 -2
  51. package/dist/{chunk-2VQJ6OIL.js.map → chunk-HPN7H5ZM.js.map} +1 -1
  52. package/dist/{chunk-YTRGRHEB.js → chunk-HV7LVRK3.js} +61 -58
  53. package/dist/chunk-HV7LVRK3.js.map +1 -0
  54. package/dist/{chunk-Q5B44QW7.js → chunk-J4LG43O2.js} +51 -51
  55. package/dist/chunk-J4LG43O2.js.map +1 -0
  56. package/dist/{chunk-ZYZJ74XB.mjs → chunk-J5QJEKY2.mjs} +28 -28
  57. package/dist/chunk-J5QJEKY2.mjs.map +1 -0
  58. package/dist/{chunk-7TLKLMBM.js → chunk-JOMSI4WH.js} +18 -15
  59. package/dist/chunk-JOMSI4WH.js.map +1 -0
  60. package/dist/{chunk-ZBBFOMSJ.mjs → chunk-M6FS7X54.mjs} +22 -22
  61. package/dist/chunk-M6FS7X54.mjs.map +1 -0
  62. package/dist/{chunk-JUDMPOCI.js → chunk-MM3P52WS.js} +22 -22
  63. package/dist/chunk-MM3P52WS.js.map +1 -0
  64. package/dist/chunk-N6B35KWW.mjs +3 -0
  65. package/dist/chunk-N6B35KWW.mjs.map +1 -0
  66. package/dist/{chunk-73VCO5TE.mjs → chunk-NWOE2TZN.mjs} +2 -2
  67. package/dist/{chunk-73VCO5TE.mjs.map → chunk-NWOE2TZN.mjs.map} +1 -1
  68. package/dist/{chunk-UWA23DUC.js → chunk-OB6TYS5Q.js} +28 -28
  69. package/dist/chunk-OB6TYS5Q.js.map +1 -0
  70. package/dist/{chunk-QZTEFGZF.mjs → chunk-OVTWPGMW.mjs} +18 -15
  71. package/dist/chunk-OVTWPGMW.mjs.map +1 -0
  72. package/dist/chunk-PPVJ4INP.mjs +60 -0
  73. package/dist/chunk-PPVJ4INP.mjs.map +1 -0
  74. package/dist/{chunk-LN77JJTY.mjs → chunk-PSIAOIXJ.mjs} +48 -48
  75. package/dist/chunk-PSIAOIXJ.mjs.map +1 -0
  76. package/dist/chunk-QNF4JPFP.js +339 -0
  77. package/dist/chunk-QNF4JPFP.js.map +1 -0
  78. package/dist/{chunk-A6KMZ5ZS.mjs → chunk-QSIJKHC5.mjs} +15 -15
  79. package/dist/chunk-QSIJKHC5.mjs.map +1 -0
  80. package/dist/chunk-RFFGQYDQ.mjs +337 -0
  81. package/dist/chunk-RFFGQYDQ.mjs.map +1 -0
  82. package/dist/chunk-RGOMHX4G.js +4 -0
  83. package/dist/chunk-RGOMHX4G.js.map +1 -0
  84. package/dist/{chunk-INMNX3HQ.mjs → chunk-S5H2OMTZ.mjs} +29 -36
  85. package/dist/chunk-S5H2OMTZ.mjs.map +1 -0
  86. package/dist/{chunk-JBAUEGYD.mjs → chunk-TFWKF3DR.mjs} +51 -51
  87. package/dist/chunk-TFWKF3DR.mjs.map +1 -0
  88. package/dist/chunk-VGWA26BN.js +72 -0
  89. package/dist/chunk-VGWA26BN.js.map +1 -0
  90. package/dist/chunk-VMCOX3Z2.js +67 -0
  91. package/dist/chunk-VMCOX3Z2.js.map +1 -0
  92. package/dist/chunk-Y3AHRRNM.mjs +99 -0
  93. package/dist/chunk-Y3AHRRNM.mjs.map +1 -0
  94. package/dist/{chunk-TJUNN2PT.mjs → chunk-YD3LVW7V.mjs} +27 -26
  95. package/dist/chunk-YD3LVW7V.mjs.map +1 -0
  96. package/dist/{chunk-AD2LA3XN.js → chunk-YIO7DFUA.js} +39 -36
  97. package/dist/chunk-YIO7DFUA.js.map +1 -0
  98. package/dist/chunk-YRTGORVB.js +232 -0
  99. package/dist/chunk-YRTGORVB.js.map +1 -0
  100. package/dist/chunk-Z7QK472J.mjs +220 -0
  101. package/dist/chunk-Z7QK472J.mjs.map +1 -0
  102. package/dist/hooks/useControllableState.js +3 -2
  103. package/dist/hooks/useControllableState.mjs +2 -1
  104. package/dist/hooks/useDisclosure.js +3 -2
  105. package/dist/hooks/useDisclosure.js.map +1 -1
  106. package/dist/hooks/useDisclosure.mjs +2 -1
  107. package/dist/hooks/useDisclosure.mjs.map +1 -1
  108. package/dist/hooks/useDynamicStepper/index.d.ts +2 -0
  109. package/dist/hooks/useDynamicStepper/index.d.ts.map +1 -0
  110. package/dist/hooks/useDynamicStepper/useDynamicStepper.d.ts +9 -0
  111. package/dist/hooks/useDynamicStepper/useDynamicStepper.d.ts.map +1 -0
  112. package/dist/hooks/useDynamicStepper.js +14 -0
  113. package/dist/hooks/useDynamicStepper.js.map +1 -0
  114. package/dist/hooks/useDynamicStepper.mjs +5 -0
  115. package/dist/hooks/useDynamicStepper.mjs.map +1 -0
  116. package/dist/ui/accordion/animated.js +7 -7
  117. package/dist/ui/accordion/animated.mjs +2 -2
  118. package/dist/ui/accordion/variants.d.ts.map +1 -1
  119. package/dist/ui/accordion.js +9 -9
  120. package/dist/ui/accordion.mjs +2 -2
  121. package/dist/ui/alert/animated.js +2 -2
  122. package/dist/ui/alert/animated.mjs +1 -1
  123. package/dist/ui/alert/variants.d.ts.map +1 -1
  124. package/dist/ui/alert.js +10 -10
  125. package/dist/ui/alert.mjs +2 -2
  126. package/dist/ui/avatar/animated.js +5 -5
  127. package/dist/ui/avatar/animated.mjs +2 -2
  128. package/dist/ui/avatar/variants.d.ts.map +1 -1
  129. package/dist/ui/avatar.js +9 -9
  130. package/dist/ui/avatar.mjs +2 -2
  131. package/dist/ui/badge/animated.js +2 -2
  132. package/dist/ui/badge/animated.mjs +1 -1
  133. package/dist/ui/badge/variants.d.ts +24 -24
  134. package/dist/ui/badge/variants.d.ts.map +1 -1
  135. package/dist/ui/badge.js +4 -4
  136. package/dist/ui/badge.mjs +2 -2
  137. package/dist/ui/breadcrumb/variants.d.ts.map +1 -1
  138. package/dist/ui/breadcrumb.js +30 -25
  139. package/dist/ui/breadcrumb.js.map +1 -1
  140. package/dist/ui/breadcrumb.mjs +30 -25
  141. package/dist/ui/breadcrumb.mjs.map +1 -1
  142. package/dist/ui/buttons/animated.js +3 -3
  143. package/dist/ui/buttons/animated.mjs +1 -1
  144. package/dist/ui/buttons/variants.d.ts.map +1 -1
  145. package/dist/ui/buttons.js +9 -57
  146. package/dist/ui/buttons.js.map +1 -1
  147. package/dist/ui/buttons.mjs +3 -59
  148. package/dist/ui/buttons.mjs.map +1 -1
  149. package/dist/ui/card/animated.js +7 -7
  150. package/dist/ui/card/animated.mjs +2 -2
  151. package/dist/ui/card/variants.d.ts.map +1 -1
  152. package/dist/ui/card.js +12 -12
  153. package/dist/ui/card.mjs +2 -2
  154. package/dist/ui/divider/animated.js +2 -2
  155. package/dist/ui/divider/animated.mjs +1 -1
  156. package/dist/ui/divider.js +6 -6
  157. package/dist/ui/divider.mjs +2 -2
  158. package/dist/ui/drawer/animated.js +11 -11
  159. package/dist/ui/drawer/animated.mjs +2 -2
  160. package/dist/ui/drawer/variants.d.ts.map +1 -1
  161. package/dist/ui/drawer.js +11 -11
  162. package/dist/ui/drawer.mjs +1 -1
  163. package/dist/ui/dropdown/variants.d.ts.map +1 -1
  164. package/dist/ui/dropdown.js +52 -52
  165. package/dist/ui/dropdown.js.map +1 -1
  166. package/dist/ui/dropdown.mjs +52 -52
  167. package/dist/ui/dropdown.mjs.map +1 -1
  168. package/dist/ui/dynamic-stepper/dynamic-stepper.d.ts +6 -0
  169. package/dist/ui/dynamic-stepper/dynamic-stepper.d.ts.map +1 -0
  170. package/dist/ui/dynamic-stepper/index.d.ts +5 -0
  171. package/dist/ui/dynamic-stepper/index.d.ts.map +1 -0
  172. package/dist/ui/dynamic-stepper/types.d.ts +61 -0
  173. package/dist/ui/dynamic-stepper/types.d.ts.map +1 -0
  174. package/dist/ui/dynamic-stepper/variants.d.ts +21 -0
  175. package/dist/ui/dynamic-stepper/variants.d.ts.map +1 -0
  176. package/dist/ui/dynamic-stepper.js +315 -0
  177. package/dist/ui/dynamic-stepper.js.map +1 -0
  178. package/dist/ui/dynamic-stepper.mjs +308 -0
  179. package/dist/ui/dynamic-stepper.mjs.map +1 -0
  180. package/dist/ui/empty-state/animated.js +2 -2
  181. package/dist/ui/empty-state/animated.mjs +1 -1
  182. package/dist/ui/empty-state/variants.d.ts.map +1 -1
  183. package/dist/ui/empty-state.js +10 -10
  184. package/dist/ui/empty-state.mjs +2 -2
  185. package/dist/ui/file-upload/file-upload.d.ts.map +1 -1
  186. package/dist/ui/file-upload/variants.d.ts.map +1 -1
  187. package/dist/ui/file-upload.js +18 -18
  188. package/dist/ui/file-upload.js.map +1 -1
  189. package/dist/ui/file-upload.mjs +18 -18
  190. package/dist/ui/file-upload.mjs.map +1 -1
  191. package/dist/ui/inputs/animated.js +3 -3
  192. package/dist/ui/inputs/animated.mjs +1 -1
  193. package/dist/ui/inputs/types.d.ts +1 -1
  194. package/dist/ui/inputs/types.d.ts.map +1 -1
  195. package/dist/ui/inputs/variants.d.ts +1 -1
  196. package/dist/ui/inputs/variants.d.ts.map +1 -1
  197. package/dist/ui/inputs.js +4 -4
  198. package/dist/ui/inputs.mjs +2 -2
  199. package/dist/ui/modal/animated.js +4 -4
  200. package/dist/ui/modal/animated.mjs +1 -1
  201. package/dist/ui/modal/variants.d.ts.map +1 -1
  202. package/dist/ui/modal.js +12 -12
  203. package/dist/ui/modal.mjs +2 -2
  204. package/dist/ui/pagination/pagination.d.ts +5 -16
  205. package/dist/ui/pagination/pagination.d.ts.map +1 -1
  206. package/dist/ui/pagination/types.d.ts +2 -2
  207. package/dist/ui/pagination/types.d.ts.map +1 -1
  208. package/dist/ui/pagination/variants.d.ts.map +1 -1
  209. package/dist/ui/pagination.js +200 -209
  210. package/dist/ui/pagination.js.map +1 -1
  211. package/dist/ui/pagination.mjs +201 -210
  212. package/dist/ui/pagination.mjs.map +1 -1
  213. package/dist/ui/progress/animated.js +8 -8
  214. package/dist/ui/progress/animated.mjs +2 -2
  215. package/dist/ui/progress/variants.d.ts.map +1 -1
  216. package/dist/ui/progress.js +9 -9
  217. package/dist/ui/progress.mjs +2 -2
  218. package/dist/ui/search/search-bar.d.ts.map +1 -1
  219. package/dist/ui/search/search-suggestion-list.d.ts.map +1 -1
  220. package/dist/ui/search.js +10 -9
  221. package/dist/ui/search.js.map +1 -1
  222. package/dist/ui/search.mjs +9 -8
  223. package/dist/ui/search.mjs.map +1 -1
  224. package/dist/ui/select/variants.d.ts.map +1 -1
  225. package/dist/ui/select.js +66 -66
  226. package/dist/ui/select.js.map +1 -1
  227. package/dist/ui/select.mjs +66 -66
  228. package/dist/ui/select.mjs.map +1 -1
  229. package/dist/ui/skeleton/animated.js +8 -8
  230. package/dist/ui/skeleton/animated.mjs +1 -1
  231. package/dist/ui/skeleton/variants.d.ts.map +1 -1
  232. package/dist/ui/skeleton.js +9 -9
  233. package/dist/ui/skeleton.mjs +1 -1
  234. package/dist/ui/slider.js +25 -25
  235. package/dist/ui/slider.js.map +1 -1
  236. package/dist/ui/slider.mjs +25 -25
  237. package/dist/ui/slider.mjs.map +1 -1
  238. package/dist/ui/spinner/animated.js +22 -22
  239. package/dist/ui/spinner/animated.js.map +1 -1
  240. package/dist/ui/spinner/animated.mjs +22 -22
  241. package/dist/ui/spinner/animated.mjs.map +1 -1
  242. package/dist/ui/stepper/stepper.d.ts.map +1 -1
  243. package/dist/ui/stepper/variants.d.ts.map +1 -1
  244. package/dist/ui/stepper.js +29 -26
  245. package/dist/ui/stepper.js.map +1 -1
  246. package/dist/ui/stepper.mjs +29 -26
  247. package/dist/ui/stepper.mjs.map +1 -1
  248. package/dist/ui/table/animated.js +8 -8
  249. package/dist/ui/table/animated.mjs +2 -2
  250. package/dist/ui/table/variants.d.ts.map +1 -1
  251. package/dist/ui/table.js +14 -14
  252. package/dist/ui/table.mjs +1 -1
  253. package/dist/ui/tabs/animated.js +2 -2
  254. package/dist/ui/tabs/animated.mjs +1 -1
  255. package/dist/ui/tabs/variants.d.ts.map +1 -1
  256. package/dist/ui/tabs.js +9 -9
  257. package/dist/ui/tabs.mjs +1 -1
  258. package/dist/ui/toast/animated.js +7 -7
  259. package/dist/ui/toast/animated.mjs +1 -1
  260. package/dist/ui/toast/toast-base.d.ts.map +1 -1
  261. package/dist/ui/toast/variants.d.ts.map +1 -1
  262. package/dist/ui/toast.js +12 -12
  263. package/dist/ui/toast.mjs +1 -1
  264. package/dist/ui/toggle/animated/toggle-animated.d.ts.map +1 -1
  265. package/dist/ui/toggle/animated.js +5 -4
  266. package/dist/ui/toggle/animated.js.map +1 -1
  267. package/dist/ui/toggle/animated.mjs +4 -3
  268. package/dist/ui/toggle/animated.mjs.map +1 -1
  269. package/dist/ui/toggle/toggle-base.d.ts.map +1 -1
  270. package/dist/ui/toggle/variants.d.ts +1 -0
  271. package/dist/ui/toggle/variants.d.ts.map +1 -1
  272. package/dist/ui/toggle.js +8 -7
  273. package/dist/ui/toggle.js.map +1 -1
  274. package/dist/ui/toggle.mjs +6 -5
  275. package/dist/ui/toggle.mjs.map +1 -1
  276. package/dist/ui/tooltip/animated.js +3 -3
  277. package/dist/ui/tooltip/animated.mjs +1 -1
  278. package/dist/ui/tooltip/variants.d.ts.map +1 -1
  279. package/dist/ui/tooltip.js +7 -7
  280. package/dist/ui/tooltip.mjs +1 -1
  281. package/dist/ui/typography/blockquote-base.d.ts.map +1 -1
  282. package/dist/ui/typography/code-block-base.d.ts.map +1 -1
  283. package/dist/ui/typography/heading-base.d.ts.map +1 -1
  284. package/dist/ui/typography/inline-code-base.d.ts.map +1 -1
  285. package/dist/ui/typography/variants.d.ts.map +1 -1
  286. package/dist/ui/typography.js +19 -19
  287. package/dist/ui/typography.js.map +1 -1
  288. package/dist/ui/typography.mjs +19 -19
  289. package/dist/ui/typography.mjs.map +1 -1
  290. package/package.json +4 -3
  291. package/src/charts/area/Area.tsx +1 -1
  292. package/src/charts/bubble/Bubble.tsx +10 -2
  293. package/src/charts/pie/Pie.tsx +22 -3
  294. package/src/charts/shared/types.ts +1 -1
  295. package/src/hooks/useDynamicStepper/index.ts +1 -0
  296. package/src/hooks/useDynamicStepper/useDynamicStepper.test.ts +107 -0
  297. package/src/hooks/useDynamicStepper/useDynamicStepper.ts +85 -0
  298. package/src/ui/accordion/variants.ts +55 -43
  299. package/src/ui/alert/variants.ts +45 -32
  300. package/src/ui/avatar/variants.ts +34 -26
  301. package/src/ui/badge/variants.ts +42 -29
  302. package/src/ui/breadcrumb/variants.ts +30 -25
  303. package/src/ui/buttons/variants.ts +40 -30
  304. package/src/ui/card/variants.ts +49 -39
  305. package/src/ui/divider/variants.ts +26 -26
  306. package/src/ui/drawer/drawer-base.tsx +1 -1
  307. package/src/ui/drawer/variants.ts +64 -48
  308. package/src/ui/dropdown/dropdown.tsx +1 -1
  309. package/src/ui/dropdown/variants.ts +63 -52
  310. package/src/ui/dynamic-stepper/dynamic-stepper.test.tsx +113 -0
  311. package/src/ui/dynamic-stepper/dynamic-stepper.tsx +173 -0
  312. package/src/ui/dynamic-stepper/index.ts +22 -0
  313. package/src/ui/dynamic-stepper/types.ts +85 -0
  314. package/src/ui/dynamic-stepper/variants.ts +247 -0
  315. package/src/ui/empty-state/variants.ts +14 -11
  316. package/src/ui/file-upload/file-upload.tsx +5 -3
  317. package/src/ui/file-upload/variants.ts +16 -15
  318. package/src/ui/inputs/types.ts +1 -1
  319. package/src/ui/inputs/variants.ts +106 -47
  320. package/src/ui/modal/modal-base.tsx +1 -1
  321. package/src/ui/modal/variants.ts +64 -47
  322. package/src/ui/pagination/pagination.tsx +186 -197
  323. package/src/ui/pagination/types.ts +2 -5
  324. package/src/ui/pagination/variants.ts +31 -28
  325. package/src/ui/progress/variants.ts +79 -65
  326. package/src/ui/search/search-bar.tsx +2 -1
  327. package/src/ui/search/search-suggestion-list.tsx +7 -5
  328. package/src/ui/select/variants.ts +72 -66
  329. package/src/ui/skeleton/variants.ts +22 -13
  330. package/src/ui/slider/variants.ts +25 -25
  331. package/src/ui/spinner/animated/variants.ts +22 -22
  332. package/src/ui/stepper/stepper.tsx +5 -2
  333. package/src/ui/stepper/variants.ts +25 -24
  334. package/src/ui/table/table-base.tsx +1 -1
  335. package/src/ui/table/variants.ts +53 -45
  336. package/src/ui/tabs/variants.ts +38 -23
  337. package/src/ui/toast/toast-base.tsx +1 -4
  338. package/src/ui/toast/variants.ts +33 -26
  339. package/src/ui/toggle/animated/toggle-animated.tsx +3 -2
  340. package/src/ui/toggle/toggle-base.tsx +4 -3
  341. package/src/ui/toggle/variants.ts +60 -28
  342. package/src/ui/tooltip/variants.ts +21 -20
  343. package/src/ui/typography/blockquote-base.tsx +0 -2
  344. package/src/ui/typography/code-block-base.tsx +1 -3
  345. package/src/ui/typography/heading-base.tsx +0 -2
  346. package/src/ui/typography/inline-code-base.tsx +0 -2
  347. package/src/ui/typography/variants.ts +21 -18
  348. package/dist/chunk-2BAMNRAL.mjs +0 -323
  349. package/dist/chunk-2BAMNRAL.mjs.map +0 -1
  350. package/dist/chunk-5TV7EL3H.mjs +0 -70
  351. package/dist/chunk-5TV7EL3H.mjs.map +0 -1
  352. package/dist/chunk-7TLKLMBM.js.map +0 -1
  353. package/dist/chunk-A6KMZ5ZS.mjs.map +0 -1
  354. package/dist/chunk-AD2LA3XN.js.map +0 -1
  355. package/dist/chunk-AOEI4V3W.mjs +0 -286
  356. package/dist/chunk-AOEI4V3W.mjs.map +0 -1
  357. package/dist/chunk-AUGLZ3AN.js.map +0 -1
  358. package/dist/chunk-BCZIYH53.js.map +0 -1
  359. package/dist/chunk-C5L465FW.mjs.map +0 -1
  360. package/dist/chunk-E4FZY7O2.js.map +0 -1
  361. package/dist/chunk-FQBMIZH2.mjs +0 -217
  362. package/dist/chunk-FQBMIZH2.mjs.map +0 -1
  363. package/dist/chunk-G3LEYBRV.mjs.map +0 -1
  364. package/dist/chunk-I6GR234Z.mjs +0 -126
  365. package/dist/chunk-I6GR234Z.mjs.map +0 -1
  366. package/dist/chunk-INMNX3HQ.mjs.map +0 -1
  367. package/dist/chunk-JBAUEGYD.mjs.map +0 -1
  368. package/dist/chunk-JQ5TIJ4F.mjs +0 -68
  369. package/dist/chunk-JQ5TIJ4F.mjs.map +0 -1
  370. package/dist/chunk-JUDMPOCI.js.map +0 -1
  371. package/dist/chunk-LN77JJTY.mjs.map +0 -1
  372. package/dist/chunk-MCOQHXRW.js +0 -130
  373. package/dist/chunk-MCOQHXRW.js.map +0 -1
  374. package/dist/chunk-MTLLJFUI.mjs.map +0 -1
  375. package/dist/chunk-N2OAI2HN.js.map +0 -1
  376. package/dist/chunk-OB4KJZK2.js +0 -72
  377. package/dist/chunk-OB4KJZK2.js.map +0 -1
  378. package/dist/chunk-OLEMP2HL.js.map +0 -1
  379. package/dist/chunk-PWL5WD34.js.map +0 -1
  380. package/dist/chunk-Q5B44QW7.js.map +0 -1
  381. package/dist/chunk-QZKMFSH5.js +0 -288
  382. package/dist/chunk-QZKMFSH5.js.map +0 -1
  383. package/dist/chunk-QZTEFGZF.mjs.map +0 -1
  384. package/dist/chunk-S7WKFNPT.js +0 -229
  385. package/dist/chunk-S7WKFNPT.js.map +0 -1
  386. package/dist/chunk-TINHLHCN.mjs.map +0 -1
  387. package/dist/chunk-TJUNN2PT.mjs.map +0 -1
  388. package/dist/chunk-UWA23DUC.js.map +0 -1
  389. package/dist/chunk-X22LLJL6.js +0 -71
  390. package/dist/chunk-X22LLJL6.js.map +0 -1
  391. package/dist/chunk-Y745GQR2.js.map +0 -1
  392. package/dist/chunk-YTRGRHEB.js.map +0 -1
  393. package/dist/chunk-ZBBFOMSJ.mjs.map +0 -1
  394. package/dist/chunk-ZYZJ74XB.mjs.map +0 -1
@@ -0,0 +1,107 @@
1
+ import { act, renderHook } from "@testing-library/react";
2
+ import { describe, expect, it, vi } from "vitest";
3
+
4
+ import { useDynamicStepper } from "./useDynamicStepper";
5
+
6
+ describe("useDynamicStepper", () => {
7
+ it("should use internal state when uncontrolled", () => {
8
+ const { result } = renderHook(() =>
9
+ useDynamicStepper({ stepCount: 3, defaultActiveStep: 1 }),
10
+ );
11
+ expect(result.current.activeStep).toBe(1);
12
+ expect(result.current.canGoPrevious).toBe(true);
13
+ expect(result.current.canGoNext).toBe(true);
14
+ act(() => {
15
+ result.current.goNext();
16
+ });
17
+ expect(result.current.activeStep).toBe(2);
18
+ act(() => {
19
+ result.current.goPrevious();
20
+ });
21
+ expect(result.current.activeStep).toBe(1);
22
+ });
23
+
24
+ it("should clamp defaultActiveStep when uncontrolled", () => {
25
+ const { result } = renderHook(() =>
26
+ useDynamicStepper({ stepCount: 2, defaultActiveStep: 99 }),
27
+ );
28
+ expect(result.current.activeStep).toBe(1);
29
+ });
30
+
31
+ it("should not navigate past bounds", () => {
32
+ const { result } = renderHook(() =>
33
+ useDynamicStepper({ stepCount: 2, defaultActiveStep: 0 }),
34
+ );
35
+ expect(result.current.canGoPrevious).toBe(false);
36
+ act(() => {
37
+ result.current.goPrevious();
38
+ });
39
+ expect(result.current.activeStep).toBe(0);
40
+ act(() => {
41
+ result.current.goNext();
42
+ });
43
+ act(() => {
44
+ result.current.goNext();
45
+ });
46
+ expect(result.current.activeStep).toBe(1);
47
+ expect(result.current.canGoNext).toBe(false);
48
+ });
49
+
50
+ it("should respect controlled activeStep", () => {
51
+ const { result, rerender } = renderHook(
52
+ ({ step }: { step: number }) =>
53
+ useDynamicStepper({ stepCount: 3, activeStep: step }),
54
+ { initialProps: { step: 0 } },
55
+ );
56
+ expect(result.current.activeStep).toBe(0);
57
+ rerender({ step: 2 });
58
+ expect(result.current.activeStep).toBe(2);
59
+ });
60
+
61
+ it("should call onActiveStepChange when navigating uncontrolled", () => {
62
+ const onActiveStepChange = vi.fn();
63
+ const onNext = vi.fn();
64
+ const { result } = renderHook(() =>
65
+ useDynamicStepper({
66
+ stepCount: 3,
67
+ defaultActiveStep: 0,
68
+ onActiveStepChange,
69
+ onNext,
70
+ }),
71
+ );
72
+ act(() => {
73
+ result.current.goNext();
74
+ });
75
+ expect(onActiveStepChange).toHaveBeenCalledWith(1);
76
+ expect(onNext).toHaveBeenCalledWith(1);
77
+ });
78
+
79
+ it("should call onPrevious when going back", () => {
80
+ const onPrevious = vi.fn();
81
+ const { result } = renderHook(() =>
82
+ useDynamicStepper({
83
+ stepCount: 3,
84
+ defaultActiveStep: 1,
85
+ onPrevious,
86
+ }),
87
+ );
88
+ act(() => {
89
+ result.current.goPrevious();
90
+ });
91
+ expect(onPrevious).toHaveBeenCalledWith(0);
92
+ });
93
+
94
+ it("should expose safe flags when stepCount is zero", () => {
95
+ const { result } = renderHook(() =>
96
+ useDynamicStepper({ stepCount: 0, defaultActiveStep: 0 }),
97
+ );
98
+ expect(result.current.activeStep).toBe(0);
99
+ expect(result.current.canGoPrevious).toBe(false);
100
+ expect(result.current.canGoNext).toBe(false);
101
+ act(() => {
102
+ result.current.goNext();
103
+ result.current.goPrevious();
104
+ });
105
+ expect(result.current.activeStep).toBe(0);
106
+ });
107
+ });
@@ -0,0 +1,85 @@
1
+ "use client";
2
+
3
+ import { useCallback, useMemo } from "react";
4
+
5
+ import { useControllableState } from "../useControllableState/useControllableState";
6
+
7
+ import type {
8
+ UseDynamicStepperParams,
9
+ UseDynamicStepperResult,
10
+ } from "../../ui/dynamic-stepper/types";
11
+
12
+ function clampDynamicStepperIndex(index: number, stepCount: number): number {
13
+ if (stepCount <= 0) {
14
+ return 0;
15
+ }
16
+ return Math.min(Math.max(index, 0), stepCount - 1);
17
+ }
18
+
19
+ /**
20
+ * Headless multi-step index with prev/next navigation.
21
+ *
22
+ * @param params.stepCount - Number of steps (0-based count semantics via indices).
23
+ * @returns Active step, setter, navigation helpers, and boundary flags.
24
+ */
25
+ export function useDynamicStepper({
26
+ stepCount,
27
+ activeStep: activeStepProp,
28
+ defaultActiveStep = 0,
29
+ onActiveStepChange,
30
+ onPrevious,
31
+ onNext,
32
+ }: UseDynamicStepperParams): UseDynamicStepperResult {
33
+ const [storedStep, setStoredStep] = useControllableState<number>({
34
+ value: activeStepProp,
35
+ defaultValue: clampDynamicStepperIndex(defaultActiveStep, stepCount),
36
+ onChange: onActiveStepChange,
37
+ });
38
+
39
+ const activeStep = useMemo(
40
+ () => clampDynamicStepperIndex(storedStep, stepCount),
41
+ [storedStep, stepCount],
42
+ );
43
+
44
+ const canGoPrevious = stepCount > 0 && activeStep > 0;
45
+ const canGoNext = stepCount > 0 && activeStep < stepCount - 1;
46
+
47
+ const setActiveStep = useCallback(
48
+ (next: number | ((prev: number) => number)) => {
49
+ const resolved =
50
+ typeof next === "function"
51
+ ? (next as (prev: number) => number)(activeStep)
52
+ : next;
53
+ setStoredStep(clampDynamicStepperIndex(resolved, stepCount));
54
+ },
55
+ [activeStep, setStoredStep, stepCount],
56
+ );
57
+
58
+ const goPrevious = useCallback(() => {
59
+ if (!canGoPrevious) {
60
+ return;
61
+ }
62
+ const nextStep = clampDynamicStepperIndex(activeStep - 1, stepCount);
63
+ setStoredStep(nextStep);
64
+ onPrevious?.(nextStep);
65
+ }, [activeStep, canGoPrevious, onPrevious, setStoredStep, stepCount]);
66
+
67
+ const goNext = useCallback(() => {
68
+ if (!canGoNext) {
69
+ return;
70
+ }
71
+ const nextStep = clampDynamicStepperIndex(activeStep + 1, stepCount);
72
+ setStoredStep(nextStep);
73
+ onNext?.(nextStep);
74
+ }, [activeStep, canGoNext, onNext, setStoredStep, stepCount]);
75
+
76
+ return {
77
+ activeStep,
78
+ setActiveStep,
79
+ goPrevious,
80
+ goNext,
81
+ canGoPrevious,
82
+ canGoNext,
83
+ stepCount,
84
+ };
85
+ }
@@ -3,39 +3,45 @@ import { cva } from "class-variance-authority";
3
3
  export const accordionVariants = cva("w-full", {
4
4
  variants: {
5
5
  appearance: {
6
- default: "divide-y divide-white/10 rounded-xl border border-white/10",
7
- outline: "divide-y divide-white/10 rounded-xl border border-white/15",
8
- ghost: "divide-y divide-white/5",
6
+ default:
7
+ "divide-y divide-black/10 dark:divide-white/10 rounded-xl border border-black/10 dark:border-white/10",
8
+ outline:
9
+ "divide-y divide-black/10 dark:divide-white/10 rounded-xl border border-black/15 dark:border-white/15",
10
+ ghost: "divide-y divide-black/5 dark:divide-white/5",
9
11
  card: "space-y-2",
10
12
  separated: "space-y-3",
11
- sky: "divide-y divide-sky-600 rounded-xl border border-sky-600",
12
- rose: "divide-y divide-rose-600 rounded-xl border border-rose-600",
13
- purple: "divide-y divide-purple-600 rounded-xl border border-purple-600",
14
- pink: "divide-y divide-pink-600 rounded-xl border border-pink-600",
15
- orange: "divide-y divide-orange-600 rounded-xl border border-orange-600",
16
- yellow: "divide-y divide-yellow-600 rounded-xl border border-yellow-600",
17
- teal: "divide-y divide-teal-600 rounded-xl border border-teal-600",
18
- indigo: "divide-y divide-indigo-600 rounded-xl border border-indigo-600",
13
+ sky: "divide-y divide-sky-800 dark:divide-sky-600 rounded-xl border border-sky-800 dark:border-sky-600",
14
+ rose: "divide-y divide-rose-800 dark:divide-rose-600 rounded-xl border border-rose-800 dark:border-rose-600",
15
+ purple:
16
+ "divide-y divide-purple-800 dark:divide-purple-600 rounded-xl border border-purple-800 dark:border-purple-600",
17
+ pink: "divide-y divide-pink-800 dark:divide-pink-600 rounded-xl border border-pink-800 dark:border-pink-600",
18
+ orange:
19
+ "divide-y divide-orange-800 dark:divide-orange-600 rounded-xl border border-orange-800 dark:border-orange-600",
20
+ yellow:
21
+ "divide-y divide-yellow-800 dark:divide-yellow-600 rounded-xl border border-yellow-800 dark:border-yellow-600",
22
+ teal: "divide-y divide-teal-800 dark:divide-teal-600 rounded-xl border border-teal-800 dark:border-teal-600",
23
+ indigo:
24
+ "divide-y divide-indigo-800 dark:divide-indigo-600 rounded-xl border border-indigo-800 dark:border-indigo-600",
19
25
  emerald:
20
- "divide-y divide-emerald-600 rounded-xl border border-emerald-600",
26
+ "divide-y divide-emerald-800 dark:divide-emerald-600 rounded-xl border border-emerald-800 dark:border-emerald-600",
21
27
  "gradient-blue":
22
- "divide-y divide-blue-600 rounded-xl border border-blue-600",
28
+ "divide-y divide-blue-800 dark:divide-blue-600 rounded-xl border border-blue-800 dark:border-blue-600",
23
29
  "gradient-green":
24
- "divide-y divide-green-600 rounded-xl border border-green-600",
30
+ "divide-y divide-green-800 dark:divide-green-600 rounded-xl border border-green-800 dark:border-green-600",
25
31
  "gradient-red":
26
- "divide-y divide-red-600 rounded-xl border border-red-600",
32
+ "divide-y divide-red-800 dark:divide-red-600 rounded-xl border border-red-800 dark:border-red-600",
27
33
  "gradient-yellow":
28
- "divide-y divide-yellow-600 rounded-xl border border-yellow-600",
34
+ "divide-y divide-yellow-800 dark:divide-yellow-600 rounded-xl border border-yellow-800 dark:border-yellow-600",
29
35
  "gradient-purple":
30
- "divide-y divide-purple-600 rounded-xl border border-purple-600",
36
+ "divide-y divide-purple-800 dark:divide-purple-600 rounded-xl border border-purple-800 dark:border-purple-600",
31
37
  "gradient-teal":
32
- "divide-y divide-teal-600 rounded-xl border border-teal-600",
38
+ "divide-y divide-teal-800 dark:divide-teal-600 rounded-xl border border-teal-800 dark:border-teal-600",
33
39
  "gradient-indigo":
34
- "divide-y divide-indigo-600 rounded-xl border border-indigo-600",
40
+ "divide-y divide-indigo-800 dark:divide-indigo-600 rounded-xl border border-indigo-800 dark:border-indigo-600",
35
41
  "gradient-pink":
36
- "divide-y divide-pink-600 rounded-xl border border-pink-600",
42
+ "divide-y divide-pink-800 dark:divide-pink-600 rounded-xl border border-pink-800 dark:border-pink-600",
37
43
  "gradient-orange":
38
- "divide-y divide-orange-600 rounded-xl border border-orange-600",
44
+ "divide-y divide-orange-800 dark:divide-orange-600 rounded-xl border border-orange-800 dark:border-orange-600",
39
45
  },
40
46
  size: {
41
47
  sm: "px-3 py-2 text-sm",
@@ -49,48 +55,54 @@ export const accordionVariants = cva("w-full", {
49
55
  },
50
56
  });
51
57
 
52
- export const accordionItemVariants = cva("", {
58
+ export const accordionItemVariants = cva("text-slate-900 dark:text-slate-200", {
53
59
  variants: {
54
60
  appearance: {
55
61
  default: "",
56
62
  outline: "",
57
63
  ghost: "",
58
- card: "rounded-xl border border-white/10 bg-white/[0.03] p-2",
59
- separated: "rounded-xl border border-white/10 bg-slate-950/40 p-2",
60
- sky: "rounded-xl border border-sky-600 bg-sky-600/[0.03] p-2",
61
- rose: "rounded-xl border border-rose-600 bg-rose-600/[0.03] p-2",
62
- purple: "rounded-xl border border-purple-600 bg-purple-600/[0.03] p-2",
63
- pink: "rounded-xl border border-pink-600 bg-pink-600/[0.03] p-2",
64
- orange: "rounded-xl border border-orange-600 bg-orange-600/[0.03] p-2",
65
- yellow: "rounded-xl border border-yellow-600 bg-yellow-600/[0.03] p-2",
66
- teal: "rounded-xl border border-teal-600 bg-teal-600/[0.03] p-2",
67
- indigo: "rounded-xl border border-indigo-600 bg-indigo-600/[0.03] p-2",
68
- emerald: "rounded-xl border border-emerald-600 bg-emerald-600/[0.03] p-2",
64
+ card: "rounded-xl border border-black/10 bg-black/5 p-2",
65
+ separated:
66
+ "rounded-xl border border-black/10 dark:border-white/10 bg-slate-50/40 dark:bg-slate-950/40 p-2",
67
+ sky: "rounded-xl border border-sky-800 dark:border-sky-600 bg-sky-100/50 dark:bg-sky-600/[0.03] p-2",
68
+ rose: "rounded-xl border border-rose-800 dark:border-rose-600 bg-rose-100/50 dark:bg-rose-600/[0.03] p-2",
69
+ purple:
70
+ "rounded-xl border border-purple-800 dark:border-purple-600 bg-purple-100/50 dark:bg-purple-600/[0.03] p-2",
71
+ pink: "rounded-xl border border-pink-800 dark:border-pink-600 bg-pink-100/50 dark:bg-pink-600/[0.03] p-2",
72
+ orange:
73
+ "rounded-xl border border-orange-800 dark:border-orange-600 bg-orange-100/50 dark:bg-orange-600/[0.03] p-2",
74
+ yellow:
75
+ "rounded-xl border border-yellow-800 dark:border-yellow-600 bg-yellow-100/50 dark:bg-yellow-600/[0.03] p-2",
76
+ teal: "rounded-xl border border-teal-800 dark:border-teal-600 bg-teal-100/50 dark:bg-teal-600/[0.03] p-2",
77
+ indigo:
78
+ "rounded-xl border border-indigo-800 dark:border-indigo-600 bg-indigo-100/50 dark:bg-indigo-600/[0.03] p-2",
79
+ emerald:
80
+ "rounded-xl border border-emerald-800 dark:border-emerald-600 bg-emerald-100/50 dark:bg-emerald-600/[0.03] p-2",
69
81
  "gradient-blue":
70
- "rounded-xl bg-linear-to-r from-blue-600 to-purple-600/[0.03] p-2 text-white",
82
+ "rounded-xl bg-linear-to-r from-blue-300 dark:from-blue-600 to-purple-300 dark:to-purple-600 p-2",
71
83
  "gradient-green":
72
- "rounded-xl bg-linear-to-r from-green-600 to-lime-600/[0.03] p-2 text-white",
84
+ "rounded-xl bg-linear-to-r from-green-300 dark:from-green-600 to-lime-300 dark:to-lime-600 p-2",
73
85
  "gradient-red":
74
- "rounded-xl bg-linear-to-r from-red-600 to-pink-600/[0.03] p-2 text-white",
86
+ "rounded-xl bg-linear-to-r from-red-300 dark:from-red-600 to-pink-300 dark:to-pink-600 p-2",
75
87
  "gradient-yellow":
76
- "rounded-xl bg-linear-to-r from-yellow-600 to-orange-600/[0.03] p-2 text-white",
88
+ "rounded-xl bg-linear-to-r from-yellow-300 dark:from-yellow-600 to-orange-300 dark:to-orange-600 p-2",
77
89
  "gradient-purple":
78
- "rounded-xl bg-linear-to-r from-purple-600 to-pink-600/[0.03] p-2 text-white",
90
+ "rounded-xl bg-linear-to-r from-purple-300 dark:from-purple-600 to-pink-300 dark:to-pink-600 p-2",
79
91
  "gradient-teal":
80
- "rounded-xl bg-linear-to-r from-teal-600 to-cyan-600/[0.03] p-2 text-white",
92
+ "rounded-xl bg-linear-to-r from-teal-300 dark:from-teal-600 to-cyan-300 dark:to-cyan-600 p-2",
81
93
  "gradient-indigo":
82
- "rounded-xl bg-linear-to-r from-indigo-600 to-purple-600/[0.03] p-2 text-white",
94
+ "rounded-xl bg-linear-to-r from-indigo-300 dark:from-indigo-600 to-purple-300 dark:to-purple-600 p-2",
83
95
  "gradient-pink":
84
- "rounded-xl bg-linear-to-r from-pink-600 to-rose-600/[0.03] p-2 text-white",
96
+ "rounded-xl bg-linear-to-r from-pink-300 dark:from-pink-600 to-rose-300 dark:to-rose-600 p-2",
85
97
  "gradient-orange":
86
- "rounded-xl bg-linear-to-r from-orange-600 to-red-600/[0.03] p-2 text-white",
98
+ "rounded-xl bg-linear-to-r from-orange-300 dark:from-orange-600 to-red-300 dark:to-red-600 p-2",
87
99
  },
88
100
  },
89
101
  defaultVariants: { appearance: "default" },
90
102
  });
91
103
 
92
104
  export const accordionTriggerVariants = cva(
93
- "flex w-full items-center justify-between gap-3 py-3 text-left font-medium text-slate-50 outline-none transition hover:text-white focus-visible:ring-2 focus-visible:ring-white/30",
105
+ "flex w-full items-center justify-between gap-3 py-3 text-left font-medium text-slate-800 dark:text-slate-200 outline-none transition hover:text-slate-900 dark:hover:text-white focus-visible:ring-2 focus-visible:ring-black/30 dark:focus-visible:ring-white/30",
94
106
  {
95
107
  variants: {
96
108
  size: {
@@ -1,42 +1,52 @@
1
1
  import { cva } from "class-variance-authority";
2
2
 
3
3
  export const alertVariants = cva(
4
- "relative flex w-full gap-3 border text-sm ring-offset-slate-950 transition-colors",
4
+ "relative flex w-full gap-3 border text-sm ring-offset-slate-50 dark:ring-offset-slate-950 transition-colors",
5
5
  {
6
6
  variants: {
7
7
  appearance: {
8
- default: "border-white/10 bg-white/5 text-slate-50",
9
- success: "border-emerald-500/40 bg-emerald-500/10 text-emerald-50",
10
- warning: "border-amber-500/40 bg-amber-500/10 text-amber-50",
11
- error: "border-rose-500/50 bg-rose-500/10 text-rose-50",
12
- info: "border-sky-500/40 bg-sky-500/10 text-sky-50",
13
- ghost: "border-transparent bg-transparent text-slate-200",
14
- purple: "border-purple-600 bg-purple-950/70 backdrop-blur-xl",
15
- pink: "border-pink-600 bg-pink-950/70 backdrop-blur-xl",
16
- orange: "border-orange-600 bg-orange-950/70 backdrop-blur-xl",
17
- yellow: "border-yellow-600 bg-yellow-950/70 backdrop-blur-xl",
18
- teal: "border-teal-600 bg-teal-950/70 backdrop-blur-xl",
19
- indigo: "border-indigo-600 bg-indigo-950/70 backdrop-blur-xl",
20
- gray: "border-gray-600 bg-gray-950/70 backdrop-blur-xl",
21
- violet: "border-violet-600 bg-violet-950/70 backdrop-blur-xl",
8
+ default:
9
+ "border-black/10 dark:border-white/10 bg-black/5 dark:bg-white/5 text-slate-900 dark:text-slate-50",
10
+ success:
11
+ "border-emerald-500/40 bg-emerald-500/10 text-emerald-950 dark:text-emerald-50",
12
+ warning:
13
+ "border-amber-500/40 bg-amber-500/10 text-amber-950 dark:text-amber-50",
14
+ error:
15
+ "border-rose-500/50 bg-rose-500/10 text-rose-950 dark:text-rose-50",
16
+ info: "border-sky-500/40 bg-sky-500/10 text-sky-950 dark:text-sky-50",
17
+ ghost:
18
+ "border-transparent bg-transparent text-slate-700 dark:text-slate-200",
19
+ purple:
20
+ "border-purple-800 dark:border-purple-600 bg-purple-50 dark:bg-purple-950/70 backdrop-blur-xl text-slate-900 dark:text-slate-50",
21
+ pink: "border-pink-800 dark:border-pink-600 bg-pink-50 dark:bg-pink-950/70 backdrop-blur-xl text-slate-900 dark:text-slate-50",
22
+ orange:
23
+ "border-orange-800 dark:border-orange-600 bg-orange-50 dark:bg-orange-950/70 backdrop-blur-xl text-slate-900 dark:text-slate-50",
24
+ yellow:
25
+ "border-yellow-800 dark:border-yellow-600 bg-yellow-50 dark:bg-yellow-950/70 backdrop-blur-xl text-slate-900 dark:text-slate-50",
26
+ teal: "border-teal-800 dark:border-teal-600 bg-teal-50 dark:bg-teal-950/70 backdrop-blur-xl text-slate-900 dark:text-slate-50",
27
+ indigo:
28
+ "border-indigo-800 dark:border-indigo-600 bg-indigo-50 dark:bg-indigo-950/70 backdrop-blur-xl text-slate-900 dark:text-slate-50",
29
+ gray: "border-gray-800 dark:border-gray-600 bg-gray-50 dark:bg-gray-950/70 backdrop-blur-xl text-slate-900 dark:text-slate-50",
30
+ violet:
31
+ "border-violet-800 dark:border-violet-600 bg-violet-50 dark:bg-violet-950/70 backdrop-blur-xl text-slate-900 dark:text-slate-50",
22
32
  "gradient-blue":
23
- "border-blue-600 bg-linear-to-r from-blue-950/70 to-purple-950/70 backdrop-blur-xl",
33
+ "border-blue-800 dark:border-blue-600 bg-linear-to-r from-blue-50 dark:from-blue-950/70 to-purple-50 dark:to-purple-950/70 backdrop-blur-xl text-slate-900 dark:text-slate-50",
24
34
  "gradient-green":
25
- "border-green-600 bg-linear-to-r from-green-950/70 to-lime-950/70 backdrop-blur-xl",
35
+ "border-green-800 dark:border-green-600 bg-linear-to-r from-green-50 dark:from-green-950/70 to-lime-50 dark:to-lime-950/70 backdrop-blur-xl text-slate-900 dark:text-slate-50",
26
36
  "gradient-red":
27
- "border-red-600 bg-linear-to-r from-red-950/70 to-pink-950/70 backdrop-blur-xl",
37
+ "border-red-800 dark:border-red-600 bg-linear-to-r from-red-50 dark:from-red-950/70 to-pink-50 dark:to-pink-950/70 backdrop-blur-xl text-slate-900 dark:text-slate-50",
28
38
  "gradient-yellow":
29
- "border-yellow-600 bg-linear-to-r from-yellow-950/70 to-orange-950/70 backdrop-blur-xl",
39
+ "border-yellow-800 dark:border-yellow-600 bg-linear-to-r from-yellow-50 dark:from-yellow-950/70 to-orange-50 dark:to-orange-950/70 backdrop-blur-xl text-slate-900 dark:text-slate-50",
30
40
  "gradient-purple":
31
- "border-purple-600 bg-linear-to-r from-purple-950/70 to-pink-950/70 backdrop-blur-xl",
41
+ "border-purple-800 dark:border-purple-600 bg-linear-to-r from-purple-50 dark:from-purple-950/70 to-pink-50 dark:to-pink-950/70 backdrop-blur-xl text-slate-900 dark:text-slate-50",
32
42
  "gradient-teal":
33
- "border-teal-600 bg-linear-to-r from-teal-950/70 to-cyan-950/70 backdrop-blur-xl",
43
+ "border-teal-800 dark:border-teal-600 bg-linear-to-r from-teal-50 dark:from-teal-950/70 to-cyan-50 dark:to-cyan-950/70 backdrop-blur-xl text-slate-900 dark:text-slate-50",
34
44
  "gradient-indigo":
35
- "border-indigo-600 bg-linear-to-r from-indigo-950/70 to-purple-950/70 backdrop-blur-xl",
45
+ "border-indigo-800 dark:border-indigo-600 bg-linear-to-r from-indigo-50 dark:from-indigo-950/70 to-purple-50 dark:to-purple-950/70 backdrop-blur-xl text-slate-900 dark:text-slate-50",
36
46
  "gradient-pink":
37
- "border-pink-600 bg-linear-to-r from-pink-950/70 to-rose-950/70 backdrop-blur-xl",
47
+ "border-pink-800 dark:border-pink-600 bg-linear-to-r from-pink-50 dark:from-pink-950/70 to-rose-50 dark:to-rose-950/70 backdrop-blur-xl text-slate-900 dark:text-slate-50",
38
48
  "gradient-orange":
39
- "border-orange-600 bg-linear-to-r from-orange-950/70 to-red-950/70 backdrop-blur-xl",
49
+ "border-orange-800 dark:border-orange-600 bg-linear-to-r from-orange-50 dark:from-orange-950/70 to-red-50 dark:to-red-950/70 backdrop-blur-xl text-slate-900 dark:text-slate-50",
40
50
  },
41
51
  size: {
42
52
  sm: "rounded-lg p-3",
@@ -62,13 +72,16 @@ export const alertTitleVariants = cva("font-semibold leading-tight", {
62
72
  defaultVariants: { size: "md" },
63
73
  });
64
74
 
65
- export const alertDescriptionVariants = cva("text-slate-300", {
66
- variants: {
67
- size: {
68
- sm: "text-xs md:text-sm",
69
- md: "text-xs md:text-sm",
70
- lg: "text-xs md:text-sm",
75
+ export const alertDescriptionVariants = cva(
76
+ "text-slate-600 dark:text-slate-300",
77
+ {
78
+ variants: {
79
+ size: {
80
+ sm: "text-xs md:text-sm",
81
+ md: "text-xs md:text-sm",
82
+ lg: "text-xs md:text-sm",
83
+ },
71
84
  },
85
+ defaultVariants: { size: "md" },
72
86
  },
73
- defaultVariants: { size: "md" },
74
- });
87
+ );
@@ -1,43 +1,51 @@
1
1
  import { cva } from "class-variance-authority";
2
2
 
3
3
  export const avatarVariants = cva(
4
- "relative flex shrink-0 overflow-hidden rounded-full border border-white/10 bg-white/10 text-slate-200",
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
5
  {
6
6
  variants: {
7
7
  appearance: {
8
- default: "border-white/10 bg-white/10 text-slate-200",
8
+ default:
9
+ "border-black/10 dark:border-white/10 bg-black/10 dark:bg-white/10 text-slate-700 dark:text-slate-200",
9
10
  muted:
10
- "border-black/40 bg-slate-950 dark:border-white/10 dark:bg-slate-950/40 text-slate-200",
11
- sky: "border-sky-600 bg-sky-600/[0.03] text-slate-200",
12
- rose: "border-rose-600 bg-rose-600/[0.03] text-slate-200",
13
- purple: "border-purple-600 bg-purple-600/[0.03] text-slate-200",
14
- pink: "border-pink-600 bg-pink-600/[0.03] text-slate-200",
15
- orange: "border-orange-600 bg-orange-600/[0.03] text-slate-200",
16
- yellow: "border-yellow-600 bg-yellow-600/[0.03] text-slate-200",
17
- teal: "border-teal-600 bg-teal-600/[0.03] text-slate-200",
18
- indigo: "border-indigo-600 bg-indigo-600/[0.03] text-slate-200",
19
- emerald: "border-emerald-600 bg-emerald-600/[0.03] text-slate-200",
20
- gray: "border-gray-600 bg-gray-600/[0.03] text-slate-200",
21
- amber: "border-amber-600 bg-amber-600/[0.03] text-slate-200",
22
- violet: "border-violet-600 bg-violet-600/[0.03] text-slate-200",
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",
23
31
  "gradient-blue":
24
- "bg-linear-to-r from-blue-950/70 to-purple-950/70 backdrop-blur-xl text-slate-200",
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",
25
33
  "gradient-green":
26
- "bg-linear-to-r from-green-950/70 to-lime-950/70 backdrop-blur-xl text-slate-200",
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",
27
35
  "gradient-red":
28
- "bg-linear-to-r from-red-950/70 to-pink-950/70 backdrop-blur-xl text-slate-200",
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",
29
37
  "gradient-yellow":
30
- "bg-linear-to-r from-yellow-950/70 to-orange-950/70 backdrop-blur-xl text-slate-200",
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",
31
39
  "gradient-purple":
32
- "bg-linear-to-r from-purple-950/70 to-pink-950/70 backdrop-blur-xl text-slate-200",
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",
33
41
  "gradient-teal":
34
- "bg-linear-to-r from-teal-950/70 to-cyan-950/70 backdrop-blur-xl text-slate-200",
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",
35
43
  "gradient-indigo":
36
- "bg-linear-to-r from-indigo-950/70 to-purple-950/70 backdrop-blur-xl text-slate-200",
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",
37
45
  "gradient-pink":
38
- "bg-linear-to-r from-pink-950/70 to-rose-950/70 backdrop-blur-xl text-slate-200",
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",
39
47
  "gradient-orange":
40
- "bg-linear-to-r from-orange-950/70 to-red-950/70 backdrop-blur-xl text-slate-200",
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",
41
49
  },
42
50
  size: {
43
51
  sm: "size-8 text-xs",
@@ -56,9 +64,9 @@ export const avatarVariants = cva(
56
64
  export const avatarImageVariants = cva("aspect-square size-full object-cover");
57
65
 
58
66
  export const avatarFallbackVariants = cva(
59
- "flex size-full items-center justify-center bg-slate-800 font-medium text-slate-100",
67
+ "flex size-full items-center justify-center bg-slate-200 dark:bg-slate-800 font-medium text-slate-800 dark:text-slate-100",
60
68
  );
61
69
 
62
70
  export const avatarGroupVariants = cva(
63
- "flex items-center [&_[data-slot=avatar]]:-ml-2 [&_[data-slot=avatar]]:ring-2 [&_[data-slot=avatar]]:ring-slate-950 [&_[data-slot=avatar]]:first:ml-0",
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",
64
72
  );
@@ -5,45 +5,58 @@ import { cva } from "class-variance-authority";
5
5
  * Reused by primitives that should stay visually aligned with Button.
6
6
  */
7
7
  export const buttonLikeSolidAppearances = {
8
- default: "bg-slate-50 text-slate-950 shadow-[0_1px_2px_rgba(15,23,42,0.12)]",
9
- secondary: "bg-slate-800 text-slate-50",
10
- destructive: "bg-rose-700 text-white",
11
- outline: "border border-white/10 bg-white/5 text-slate-50",
12
- ghost: "bg-transparent text-slate-200",
13
- glass: "border border-white/15 bg-white/10 text-white backdrop-blur-md",
14
- emerald: "bg-emerald-800 text-white",
15
- indigo: "bg-indigo-600 text-white",
16
- purple: "bg-purple-600 text-white",
17
- pink: "bg-pink-600 text-white",
18
- rose: "bg-rose-700 text-white",
19
- sky: "bg-sky-700 text-white",
20
- teal: "bg-teal-700 text-white",
21
- yellow: "bg-yellow-800 text-white",
22
- orange: "bg-orange-800 text-white",
23
- "gradient-blue": "bg-linear-to-r from-blue-600 to-purple-600 text-white",
24
- "gradient-green": "bg-linear-to-r from-green-600 to-lime-600 text-white",
25
- "gradient-red": "bg-linear-to-r from-red-600 to-pink-600 text-white",
26
- "gradient-yellow": "bg-linear-to-r from-yellow-600 to-orange-600 text-white",
27
- "gradient-purple": "bg-linear-to-r from-purple-600 to-pink-600 text-white",
28
- "gradient-teal": "bg-linear-to-r from-teal-600 to-cyan-600 text-white",
29
- "gradient-indigo": "bg-linear-to-r from-indigo-600 to-purple-600 text-white",
30
- "gradient-pink": "bg-linear-to-r from-pink-600 to-rose-600 text-white",
31
- "gradient-orange": "bg-linear-to-r from-orange-600 to-red-600 text-white",
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",
32
44
  } as const;
33
45
 
34
46
  export type ButtonLikeSolidAppearance = keyof typeof buttonLikeSolidAppearances;
35
47
 
36
48
  const badgeAppearances = {
37
49
  ...buttonLikeSolidAppearances,
38
- outline: "border border-white/15 bg-transparent text-slate-200 shadow-none",
39
- ghost: "bg-transparent text-slate-300 shadow-none",
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",
40
53
  } as const;
41
54
 
42
55
  export const badgeVariants = cva(
43
56
  [
44
57
  "inline-flex max-w-full items-center justify-center gap-1 font-medium",
45
- "whitespace-nowrap ring-offset-slate-950 transition-colors",
46
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-slate-300 focus-visible:ring-offset-2",
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",
47
60
  "select-none",
48
61
  ],
49
62
  {
@@ -69,7 +82,7 @@ export const badgeVariants = cva(
69
82
  );
70
83
 
71
84
  export const badgeCloseButtonVariants = cva(
72
- "inline-flex shrink-0 items-center justify-center rounded-md p-0.5 text-current opacity-70 transition hover:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/40",
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",
73
86
  {
74
87
  variants: {
75
88
  size: {