@zentauri-ui/zentauri-components 1.4.63 → 1.4.70

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 (160) hide show
  1. package/README.md +97 -51
  2. package/cli/index.mjs +45 -26
  3. package/cli/registry.json +9 -1
  4. package/cli/rewrite-imports.mjs +8 -3
  5. package/dist/charts/area/Area.d.ts +6 -0
  6. package/dist/charts/area/Area.d.ts.map +1 -0
  7. package/dist/charts/area/index.d.ts +4 -0
  8. package/dist/charts/area/index.d.ts.map +1 -0
  9. package/dist/charts/area.js +119 -0
  10. package/dist/charts/area.js.map +1 -0
  11. package/dist/charts/area.mjs +106 -0
  12. package/dist/charts/area.mjs.map +1 -0
  13. package/dist/charts/bar/Bar.d.ts +6 -0
  14. package/dist/charts/bar/Bar.d.ts.map +1 -0
  15. package/dist/charts/bar/index.d.ts +4 -0
  16. package/dist/charts/bar/index.d.ts.map +1 -0
  17. package/dist/charts/bar.js +110 -0
  18. package/dist/charts/bar.js.map +1 -0
  19. package/dist/charts/bar.mjs +97 -0
  20. package/dist/charts/bar.mjs.map +1 -0
  21. package/dist/charts/bubble/Bubble.d.ts +6 -0
  22. package/dist/charts/bubble/Bubble.d.ts.map +1 -0
  23. package/dist/charts/bubble/index.d.ts +4 -0
  24. package/dist/charts/bubble/index.d.ts.map +1 -0
  25. package/dist/charts/bubble.js +122 -0
  26. package/dist/charts/bubble.js.map +1 -0
  27. package/dist/charts/bubble.mjs +109 -0
  28. package/dist/charts/bubble.mjs.map +1 -0
  29. package/dist/charts/line/Line.d.ts +6 -0
  30. package/dist/charts/line/Line.d.ts.map +1 -0
  31. package/dist/charts/line/index.d.ts +4 -0
  32. package/dist/charts/line/index.d.ts.map +1 -0
  33. package/dist/charts/line.js +113 -0
  34. package/dist/charts/line.js.map +1 -0
  35. package/dist/charts/line.mjs +100 -0
  36. package/dist/charts/line.mjs.map +1 -0
  37. package/dist/charts/shared/chart-frame.d.ts +32 -0
  38. package/dist/charts/shared/chart-frame.d.ts.map +1 -0
  39. package/dist/charts/shared/colors.d.ts +43 -0
  40. package/dist/charts/shared/colors.d.ts.map +1 -0
  41. package/dist/charts/shared/types.d.ts +43 -0
  42. package/dist/charts/shared/types.d.ts.map +1 -0
  43. package/dist/charts/shared/variants.d.ts +93 -0
  44. package/dist/charts/shared/variants.d.ts.map +1 -0
  45. package/dist/{chunk-TTYZBO4E.mjs → chunk-2BAMNRAL.mjs} +20 -20
  46. package/dist/chunk-2BAMNRAL.mjs.map +1 -0
  47. package/dist/{chunk-Z7PHKV2T.js → chunk-AD2LA3XN.js} +11 -11
  48. package/dist/chunk-AD2LA3XN.js.map +1 -0
  49. package/dist/{chunk-G3B6OHFG.js → chunk-AUGLZ3AN.js} +20 -20
  50. package/dist/chunk-AUGLZ3AN.js.map +1 -0
  51. package/dist/{chunk-LJ7AAIA3.mjs → chunk-C5L465FW.mjs} +11 -11
  52. package/dist/chunk-C5L465FW.mjs.map +1 -0
  53. package/dist/chunk-CIN5JDN4.js +174 -0
  54. package/dist/chunk-CIN5JDN4.js.map +1 -0
  55. package/dist/{chunk-H2I54QPJ.mjs → chunk-FQBMIZH2.mjs} +11 -11
  56. package/dist/{chunk-H2I54QPJ.mjs.map → chunk-FQBMIZH2.mjs.map} +1 -1
  57. package/dist/{chunk-4LT2GNJL.mjs → chunk-INMNX3HQ.mjs} +11 -11
  58. package/dist/{chunk-4LT2GNJL.mjs.map → chunk-INMNX3HQ.mjs.map} +1 -1
  59. package/dist/chunk-IQZROQNJ.mjs +165 -0
  60. package/dist/chunk-IQZROQNJ.mjs.map +1 -0
  61. package/dist/{chunk-ZIDKBEQJ.mjs → chunk-JBAUEGYD.mjs} +20 -20
  62. package/dist/chunk-JBAUEGYD.mjs.map +1 -0
  63. package/dist/{chunk-KEKNNZD3.js → chunk-OLEMP2HL.js} +11 -11
  64. package/dist/{chunk-KEKNNZD3.js.map → chunk-OLEMP2HL.js.map} +1 -1
  65. package/dist/{chunk-SKPZCISM.js → chunk-Q5B44QW7.js} +20 -20
  66. package/dist/chunk-Q5B44QW7.js.map +1 -0
  67. package/dist/{chunk-MXLRXYIX.js → chunk-S7WKFNPT.js} +11 -11
  68. package/dist/{chunk-MXLRXYIX.js.map → chunk-S7WKFNPT.js.map} +1 -1
  69. package/dist/{chunk-QEGACUFU.mjs → chunk-TINHLHCN.mjs} +11 -11
  70. package/dist/chunk-TINHLHCN.mjs.map +1 -0
  71. package/dist/{chunk-MXKGDFQH.js → chunk-Y745GQR2.js} +11 -11
  72. package/dist/chunk-Y745GQR2.js.map +1 -0
  73. package/dist/ui/accordion/animated.js +7 -7
  74. package/dist/ui/accordion/animated.mjs +2 -2
  75. package/dist/ui/accordion/variants.d.ts +2 -2
  76. package/dist/ui/accordion.js +9 -9
  77. package/dist/ui/accordion.mjs +2 -2
  78. package/dist/ui/alert/animated.js +2 -2
  79. package/dist/ui/alert/animated.mjs +1 -1
  80. package/dist/ui/alert/variants.d.ts +1 -1
  81. package/dist/ui/alert.js +10 -10
  82. package/dist/ui/alert.mjs +2 -2
  83. package/dist/ui/avatar/variants.d.ts +1 -1
  84. package/dist/ui/badge/variants.d.ts +2 -2
  85. package/dist/ui/breadcrumb/variants.d.ts +1 -1
  86. package/dist/ui/buttons/variants.d.ts +2 -2
  87. package/dist/ui/card/animated.js +7 -7
  88. package/dist/ui/card/animated.mjs +2 -2
  89. package/dist/ui/card/variants.d.ts +1 -1
  90. package/dist/ui/card.js +12 -12
  91. package/dist/ui/card.mjs +2 -2
  92. package/dist/ui/divider/variants.d.ts +2 -2
  93. package/dist/ui/drawer/animated.js +11 -11
  94. package/dist/ui/drawer/animated.mjs +2 -2
  95. package/dist/ui/drawer/variants.d.ts +3 -3
  96. package/dist/ui/drawer.js +11 -11
  97. package/dist/ui/drawer.mjs +1 -1
  98. package/dist/ui/dropdown/variants.d.ts +4 -4
  99. package/dist/ui/dropdown.js +9 -9
  100. package/dist/ui/dropdown.js.map +1 -1
  101. package/dist/ui/dropdown.mjs +9 -9
  102. package/dist/ui/dropdown.mjs.map +1 -1
  103. package/dist/ui/file-upload/variants.d.ts +1 -1
  104. package/dist/ui/inputs/variants.d.ts +2 -2
  105. package/dist/ui/modal/animated.js +4 -4
  106. package/dist/ui/modal/animated.mjs +1 -1
  107. package/dist/ui/modal/variants.d.ts +2 -2
  108. package/dist/ui/modal.js +12 -12
  109. package/dist/ui/modal.mjs +2 -2
  110. package/dist/ui/pagination/pagination.d.ts +2 -2
  111. package/dist/ui/pagination/variants.d.ts +3 -3
  112. package/dist/ui/progress/variants.d.ts +1 -1
  113. package/dist/ui/select/variants.d.ts +4 -4
  114. package/dist/ui/select.js +27 -27
  115. package/dist/ui/select.js.map +1 -1
  116. package/dist/ui/select.mjs +27 -27
  117. package/dist/ui/select.mjs.map +1 -1
  118. package/dist/ui/skeleton/variants.d.ts +2 -2
  119. package/dist/ui/slider/variants.d.ts +1 -1
  120. package/dist/ui/spinner/animated/variants.d.ts +1 -1
  121. package/dist/ui/stepper/variants.d.ts +1 -1
  122. package/dist/ui/table/variants.d.ts +3 -3
  123. package/dist/ui/tabs/variants.d.ts +1 -1
  124. package/dist/ui/toast/animated.js +7 -7
  125. package/dist/ui/toast/animated.mjs +1 -1
  126. package/dist/ui/toast/variants.d.ts +1 -1
  127. package/dist/ui/toast.js +12 -12
  128. package/dist/ui/toast.mjs +1 -1
  129. package/dist/ui/toggle/variants.d.ts +1 -1
  130. package/dist/ui/tooltip/variants.d.ts +1 -1
  131. package/dist/ui/typography/variants.d.ts +3 -3
  132. package/package.json +32 -12
  133. package/src/charts/area/Area.tsx +103 -0
  134. package/src/charts/area/index.ts +9 -0
  135. package/src/charts/bar/Bar.tsx +94 -0
  136. package/src/charts/bar/index.ts +9 -0
  137. package/src/charts/bubble/Bubble.tsx +113 -0
  138. package/src/charts/bubble/index.ts +9 -0
  139. package/src/charts/line/Line.tsx +97 -0
  140. package/src/charts/line/index.ts +9 -0
  141. package/src/charts/shared/chart-frame.tsx +107 -0
  142. package/src/charts/shared/colors.ts +31 -0
  143. package/src/charts/shared/types.ts +60 -0
  144. package/src/charts/shared/variants.ts +87 -0
  145. package/src/ui/accordion/variants.ts +9 -9
  146. package/src/ui/alert/variants.ts +9 -9
  147. package/src/ui/card/variants.ts +9 -9
  148. package/src/ui/drawer/variants.ts +18 -18
  149. package/src/ui/dropdown/variants.ts +9 -9
  150. package/src/ui/modal/variants.ts +18 -18
  151. package/src/ui/select/variants.ts +27 -27
  152. package/src/ui/toast/variants.ts +9 -9
  153. package/dist/chunk-G3B6OHFG.js.map +0 -1
  154. package/dist/chunk-LJ7AAIA3.mjs.map +0 -1
  155. package/dist/chunk-MXKGDFQH.js.map +0 -1
  156. package/dist/chunk-QEGACUFU.mjs.map +0 -1
  157. package/dist/chunk-SKPZCISM.js.map +0 -1
  158. package/dist/chunk-TTYZBO4E.mjs.map +0 -1
  159. package/dist/chunk-Z7PHKV2T.js.map +0 -1
  160. package/dist/chunk-ZIDKBEQJ.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/ui/select/variants.ts","../../src/ui/select/select.tsx"],"names":[],"mappings":";;;;;AAEO,IAAM,qBAAA,GAAwB,GAAA;AAAA,EACnC,4KAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,wCAAA;AAAA,QACT,OAAA,EAAS,0BAAA;AAAA,QACT,KAAA,EAAO,oBAAA;AAAA,QACP,GAAA,EAAK,6BAAA;AAAA,QACL,IAAA,EAAM,+BAAA;AAAA,QACN,MAAA,EAAQ,mCAAA;AAAA,QACR,IAAA,EAAM,+BAAA;AAAA,QACN,MAAA,EAAQ,mCAAA;AAAA,QACR,MAAA,EAAQ,mCAAA;AAAA,QACR,IAAA,EAAM,+BAAA;AAAA,QACN,MAAA,EAAQ,mCAAA;AAAA,QACR,OAAA,EAAS,qCAAA;AAAA,QACT,KAAA,EAAO,yDAAA;AAAA,QACP,eAAA,EACE,yHAAA;AAAA,QACF,gBAAA,EACE,uHAAA;AAAA,QACF,cAAA,EACE,mHAAA;AAAA,QACF,iBAAA,EACE,6HAAA;AAAA,QACF,iBAAA,EACE,yHAAA;AAAA,QACF,eAAA,EACE,qHAAA;AAAA,QACF,iBAAA,EACE,6HAAA;AAAA,QACF,eAAA,EACE,qHAAA;AAAA,QACF,iBAAA,EACE;AAAA,OACJ;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,mBAAA;AAAA,QACJ,EAAA,EAAI,WAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAM;AAAA;AACR;AAEJ;AAEO,IAAM,kBAAA,GAAqB,GAAA;AAAA,EAChC,0IAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,UAAA,EAAY;AAAA,QACV,OAAA,EACE,4FAAA;AAAA,QACF,KAAA,EACE,+FAAA;AAAA,QACF,OAAA,EACE,+KAAA;AAAA,QACF,KAAA,EACE,iJAAA;AAAA,QACF,GAAA,EAAK,mIAAA;AAAA,QACL,IAAA,EAAM,wIAAA;AAAA,QACN,MAAA,EACE,kJAAA;AAAA,QACF,IAAA,EAAM,wIAAA;AAAA,QACN,MAAA,EACE,kJAAA;AAAA,QACF,MAAA,EACE,kJAAA;AAAA,QACF,IAAA,EAAM,wIAAA;AAAA,QACN,MAAA,EACE,kJAAA;AAAA,QACF,OAAA,EACE,uJAAA;AAAA,QACF,eAAA,EACE,gSAAA;AAAA,QACF,gBAAA,EACE,8RAAA;AAAA,QACF,cAAA,EACE,kRAAA;AAAA,QACF,iBAAA,EACE,4SAAA;AAAA,QACF,iBAAA,EACE,oSAAA;AAAA,QACF,eAAA,EACE,wRAAA;AAAA,QACF,iBAAA,EACE,4SAAA;AAAA,QACF,eAAA,EACE,wRAAA;AAAA,QACF,iBAAA,EACE;AAAA,OACJ;AAAA,MACA,QAAA,EAAU;AAAA,QACR,IAAA,EAAM;AAAA;AACR,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,UAAA,EAAY;AAAA;AACd;AAEJ;AAEO,IAAM,qBAAA,GAAwB,GAAA;AAAA,EACnC,gEAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,UAAA,EAAY;AAAA,QACV,OAAA,EAAS,oBAAA;AAAA,QACT,KAAA,EAAO,8BAAA;AAAA,QACP,OAAA,EAAS,0BAAA;AAAA,QACT,KAAA,EAAO,oBAAA;AAAA,QACP,GAAA,EAAK,gBAAA;AAAA,QACL,IAAA,EAAM,iBAAA;AAAA,QACN,MAAA,EAAQ,mBAAA;AAAA,QACR,IAAA,EAAM,iBAAA;AAAA,QACN,MAAA,EAAQ,mBAAA;AAAA,QACR,MAAA,EAAQ,mBAAA;AAAA,QACR,IAAA,EAAM,iBAAA;AAAA,QACN,MAAA,EAAQ,mBAAA;AAAA,QACR,OAAA,EAAS,oBAAA;AAAA,QACT,eAAA,EACE,8GAAA;AAAA,QACF,gBAAA,EACE,4GAAA;AAAA,QACF,cAAA,EACE,wGAAA;AAAA,QACF,iBAAA,EACE,kHAAA;AAAA,QACF,iBAAA,EACE,8GAAA;AAAA,QACF,eAAA,EACE,0GAAA;AAAA,QACF,iBAAA,EACE,kHAAA;AAAA,QACF,eAAA,EACE,0GAAA;AAAA,QACF,iBAAA,EACE;AAAA,OACJ;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,mBAAA;AAAA,QACJ,EAAA,EAAI,WAAA;AAAA,QACJ,EAAA,EAAI;AAAA,OACN;AAAA,MACA,OAAA,EAAS;AAAA,QACP,IAAA,EAAM,WAAA;AAAA,QACN,OAAA,EAAS,WAAA;AAAA,QACT,EAAA,EAAI,WAAA;AAAA,QACJ,EAAA,EAAI,WAAA;AAAA,QACJ,EAAA,EAAI,WAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,UAAA,EAAY,SAAA;AAAA,MACZ,IAAA,EAAM,IAAA;AAAA,MACN,OAAA,EAAS;AAAA;AACX;AAEJ;AClJO,IAAM,aAAA,GAAgB,cAAwC,IAAI;AAElE,IAAM,YAAY,MAAM;AAC7B,EAAA,MAAM,GAAA,GAAM,WAAW,aAAa,CAAA;AACpC,EAAA,IAAI,CAAC,GAAA,EAAK,MAAM,IAAI,MAAM,8CAA8C,CAAA;AACxE,EAAA,OAAO,GAAA;AACT;AAEO,IAAM,SAAS,CAAC;AAAA,EACrB,QAAA;AAAA,EACA,KAAA;AAAA,EACA,eAAe,EAAC;AAAA,EAChB,QAAA;AAAA,EACA,QAAA,GAAW;AACb,CAAA,KAAmB;AACjB,EAAA,MAAM,SAAA,GAAY,CAAA,EAAG,KAAA,EAAO,CAAA,QAAA,CAAA;AAC5B,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAI,SAAmB,YAAY,CAAA;AAC/D,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAI,SAAS,KAAK,CAAA;AACtC,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,QAAA,CAAyB,EAAE,CAAA;AACzD,EAAA,MAAM,OAAA,GAAU,OAAuB,IAAI,CAAA;AAE3C,EAAA,MAAM,WAAW,KAAA,IAAS,QAAA;AAE1B,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,IAAA,EAAM;AAEX,IAAA,MAAM,iBAAA,GAAoB,CAAC,KAAA,KAAwB;AACjD,MAAA,MAAM,OAAO,OAAA,CAAQ,OAAA;AACrB,MAAA,IAAI,CAAC,IAAA,EAAM;AACX,MAAA,MAAM,SAAS,KAAA,CAAM,MAAA;AACrB,MAAA,IAAI,kBAAkB,IAAA,IAAQ,CAAC,IAAA,CAAK,QAAA,CAAS,MAAM,CAAA,EAAG;AACpD,QAAA,OAAA,CAAQ,KAAK,CAAA;AAAA,MACf;AAAA,IACF,CAAA;AAEA,IAAA,QAAA,CAAS,gBAAA,CAAiB,eAAe,iBAAiB,CAAA;AAC1D,IAAA,OAAO,MAAM,QAAA,CAAS,mBAAA,CAAoB,aAAA,EAAe,iBAAiB,CAAA;AAAA,EAC5E,CAAA,EAAG,CAAC,IAAI,CAAC,CAAA;AAET,EAAA,MAAM,WAAA,GAAc,CAAC,IAAA,KAAmB;AACtC,IAAA,IAAI,UAAU,MAAA,EAAW;AACvB,MAAA,QAAA,GAAW,IAAI,CAAA;AAAA,IACjB,CAAA,MAAO;AACL,MAAA,WAAA,CAAY,IAAI,CAAA;AAChB,MAAA,QAAA,GAAW,IAAI,CAAA;AAAA,IACjB;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,WAAA,GAAc,CAAC,GAAA,KAAgB;AACnC,IAAA,IAAI,QAAA,EAAU;AACZ,MAAA,IAAI,QAAA,CAAS,QAAA,CAAS,GAAG,CAAA,EAAG;AAC1B,QAAA,WAAA,CAAY,SAAS,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,KAAM,GAAG,CAAC,CAAA;AAAA,MAC/C,CAAA,MAAO;AACL,QAAA,WAAA,CAAY,CAAC,GAAG,QAAA,EAAU,GAAG,CAAC,CAAA;AAAA,MAChC;AAAA,IACF,CAAA,MAAO;AACL,MAAA,WAAA,CAAY,CAAC,GAAG,CAAC,CAAA;AACjB,MAAA,OAAA,CAAQ,KAAK,CAAA;AAAA,IACf;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,UAAA,GAAa,CAAC,GAAA,KAAgB,QAAA,CAAS,SAAS,GAAG,CAAA;AAEzD,EAAA,MAAM,cAAA,GAAiB,WAAA,CAAY,CAAC,GAAA,KAAsB;AACxD,IAAA,UAAA,CAAW,CAAC,IAAA,KAAS;AACnB,MAAA,IAAI,IAAA,CAAK,KAAK,CAAC,CAAA,KAAM,EAAE,KAAA,KAAU,GAAA,CAAI,KAAK,CAAA,EAAG,OAAO,IAAA;AACpD,MAAA,OAAO,CAAC,GAAG,IAAA,EAAM,GAAG,CAAA;AAAA,IACtB,CAAC,CAAA;AAAA,EACH,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,uBACE,GAAA;AAAA,IAAC,aAAA,CAAc,QAAA;AAAA,IAAd;AAAA,MACC,KAAA,EAAO;AAAA,QACL,IAAA;AAAA,QACA,OAAA;AAAA,QACA,QAAA;AAAA,QACA,WAAA;AAAA,QACA,UAAA;AAAA,QACA,cAAA;AAAA,QACA,OAAA;AAAA,QACA,QAAA;AAAA,QACA;AAAA,OACF;AAAA,MAEA,8BAAC,KAAA,EAAA,EAAI,GAAA,EAAK,OAAA,EAAS,SAAA,EAAU,mBAC1B,QAAA,EACH;AAAA;AAAA,GACF;AAEJ;AAEO,IAAM,gBAAgB,CAAC;AAAA,EAC5B,SAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA;AAAA,EACA,OAAA;AAAA,EACA,GAAG;AACL,CAAA,KAA0B;AACxB,EAAA,MAAM,EAAE,IAAA,EAAM,OAAA,EAAS,SAAA,KAAc,SAAA,EAAU;AAE/C,EAAA,uBACE,GAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,QAAA;AAAA,MACL,eAAA,EAAe,IAAA;AAAA,MACf,eAAA,EAAc,SAAA;AAAA,MACd,eAAA,EAAe,SAAA;AAAA,MACf,SAAA,EAAW,GAAG,qBAAA,CAAsB,EAAE,SAAS,IAAA,EAAM,GAAG,SAAS,CAAA;AAAA,MAChE,GAAG,KAAA;AAAA,MACJ,OAAA,EAAS,CAAC,KAAA,KAAU;AAClB,QAAA,OAAA,GAAU,KAAK,CAAA;AACf,QAAA,IAAI,CAAC,MAAM,gBAAA,EAAkB;AAC3B,UAAA,OAAA,CAAQ,CAAC,IAAI,CAAA;AAAA,QACf;AAAA,MACF;AAAA;AAAA,GACF;AAEJ;AAEO,IAAM,cAAc,CAAC;AAAA,EAC1B,WAAA,GAAc,WAAA;AAAA,EACd,SAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAwB;AACtB,EAAA,MAAM,EAAE,QAAA,EAAU,OAAA,EAAQ,GAAI,SAAA,EAAU;AAExC,EAAA,MAAM,eAAA,GAAkB,QAAQ,MAAA,CAAO,CAAC,MAAM,QAAA,CAAS,QAAA,CAAS,CAAA,CAAE,KAAK,CAAC,CAAA;AAExE,EAAA,IAAI,eAAA,CAAgB,WAAW,CAAA,EAAG;AAChC,IAAA,uBACE,GAAA,CAAC,UAAK,SAAA,EAAW,EAAA,CAAG,SAAS,CAAA,EAAI,GAAG,OACjC,QAAA,EAAA,WAAA,EACH,CAAA;AAAA,EAEJ;AAEA,EAAA,uBACE,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,SAAS,CAAA,EAAI,GAAG,KAAA,EACjC,QAAA,EAAA,eAAA,CAAgB,GAAA,CAAI,CAAC,MAAA,EAAQ,KAAA,0BAC3B,MAAA,EAAA,EACE,QAAA,EAAA;AAAA,IAAA,KAAA,GAAQ,IAAI,IAAA,GAAO,IAAA;AAAA,IACnB,MAAA,CAAO;AAAA,GAAA,EAAA,EAFC,MAAA,CAAO,KAGlB,CACD,CAAA,EACH,CAAA;AAEJ;AAEO,IAAM,gBAAgB,CAAC;AAAA,EAC5B,QAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA,GAAa,SAAA;AAAA,EACb,IAAA,GAAO,IAAA;AAAA,EACP,OAAA,GAAU,SAAA;AAAA,EACV,GAAG;AACL,CAAA,KAA0B;AACxB,EAAA,MAAM,EAAE,IAAA,EAAM,SAAA,EAAW,QAAA,KAAa,SAAA,EAAU;AAChD,EAAA,MAAM,QAAA,GAAW,OAAuB,IAAI,CAAA;AAE5C,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,IAAA,EAAM;AACT,MAAA;AAAA,IACF;AACA,IAAA,MAAM,QAAQ,QAAA,CAAS,OAAA;AACvB,IAAA,IAAI,CAAC,KAAA,EAAO;AACV,MAAA;AAAA,IACF;AACA,IAAA,MAAM,OAAO,KAAA,CAAM,IAAA;AAAA,MACjB,KAAA,CAAM,iBAA8B,iBAAiB;AAAA,KACvD,CAAE,OAAO,CAAC,EAAA,KAAO,GAAG,YAAA,CAAa,eAAe,MAAM,MAAM,CAAA;AAC5D,IAAA,qBAAA,CAAsB,MAAM,IAAA,CAAK,CAAC,CAAA,EAAG,OAAO,CAAA;AAAA,EAC9C,CAAA,EAAG,CAAC,IAAI,CAAC,CAAA;AAET,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,IAAA,EAAM;AACT,MAAA;AAAA,IACF;AACA,IAAA,MAAM,QAAQ,QAAA,CAAS,OAAA;AACvB,IAAA,IAAI,CAAC,KAAA,EAAO;AACV,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,cAAA,GAAiB,MACrB,KAAA,CAAM,IAAA,CAAK,MAAM,gBAAA,CAA8B,iBAAiB,CAAC,CAAA,CAAE,MAAA;AAAA,MACjE,CAAC,EAAA,KAAO,EAAA,CAAG,YAAA,CAAa,eAAe,CAAA,KAAM;AAAA,KAC/C;AAEF,IAAA,MAAM,aAAA,GAAgB,CAAC,KAAA,KAAyB;AAC9C,MAAA,MAAM,UAAU,cAAA,EAAe;AAC/B,MAAA,IAAI,OAAA,CAAQ,WAAW,CAAA,EAAG;AACxB,QAAA;AAAA,MACF;AAEA,MAAA,MAAM,MAAM,OAAA,CAAQ,SAAA,CAAU,CAAC,EAAA,KAAO,EAAA,KAAO,SAAS,aAAa,CAAA;AAEnE,MAAA,IAAI,KAAA,CAAM,QAAQ,WAAA,EAAa;AAC7B,QAAA,KAAA,CAAM,cAAA,EAAe;AACrB,QAAA,MAAM,IAAA,GAAO,GAAA,GAAM,CAAA,GAAI,CAAA,GAAI,IAAA,CAAK,IAAI,GAAA,GAAM,CAAA,EAAG,OAAA,CAAQ,MAAA,GAAS,CAAC,CAAA;AAC/D,QAAA,OAAA,CAAQ,IAAI,GAAG,KAAA,EAAM;AACrB,QAAA;AAAA,MACF;AAEA,MAAA,IAAI,KAAA,CAAM,QAAQ,SAAA,EAAW;AAC3B,QAAA,KAAA,CAAM,cAAA,EAAe;AACrB,QAAA,MAAM,IAAA,GAAO,GAAA,IAAO,CAAA,GAAI,OAAA,CAAQ,MAAA,GAAS,IAAI,IAAA,CAAK,GAAA,CAAI,GAAA,GAAM,CAAA,EAAG,CAAC,CAAA;AAChE,QAAA,OAAA,CAAQ,IAAI,GAAG,KAAA,EAAM;AACrB,QAAA;AAAA,MACF;AAEA,MAAA,IAAI,KAAA,CAAM,QAAQ,MAAA,EAAQ;AACxB,QAAA,KAAA,CAAM,cAAA,EAAe;AACrB,QAAA,OAAA,CAAQ,CAAC,GAAG,KAAA,EAAM;AAClB,QAAA;AAAA,MACF;AAEA,MAAA,IAAI,KAAA,CAAM,QAAQ,KAAA,EAAO;AACvB,QAAA,KAAA,CAAM,cAAA,EAAe;AACrB,QAAA,OAAA,CAAQ,OAAA,CAAQ,MAAA,GAAS,CAAC,CAAA,EAAG,KAAA,EAAM;AAAA,MACrC;AAAA,IACF,CAAA;AAEA,IAAA,KAAA,CAAM,gBAAA,CAAiB,WAAW,aAAa,CAAA;AAC/C,IAAA,OAAO,MAAM,KAAA,CAAM,mBAAA,CAAoB,SAAA,EAAW,aAAa,CAAA;AAAA,EACjE,CAAA,EAAG,CAAC,IAAI,CAAC,CAAA;AAET,EAAA,IAAI,CAAC,MAAM,OAAO,IAAA;AAElB,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA,EAAK,QAAA;AAAA,MACL,EAAA,EAAI,SAAA;AAAA,MACJ,IAAA,EAAK,SAAA;AAAA,MACL,sBAAA,EAAsB,QAAA;AAAA,MACtB,QAAA,EAAU,EAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,qBAAA,CAAsB,EAAE,UAAA,EAAY,IAAA,EAAM,SAAS,CAAA;AAAA,QACnD;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ;AAEO,IAAM,aAAa,CAAC;AAAA,EACzB,KAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA,GAAa,SAAA;AAAA,EACb,SAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAuB;AACrB,EAAA,MAAM,EAAE,WAAA,EAAa,UAAA,EAAY,cAAA,KAAmB,SAAA,EAAU;AAE9D,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,cAAA,CAAe,EAAE,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,UAAU,CAAA;AAAA,EACrD,GAAG,CAAC,QAAA,EAAU,QAAA,EAAU,cAAA,EAAgB,KAAK,CAAC,CAAA;AAE9C,EAAA,MAAM,QAAA,GAAW,WAAW,KAAK,CAAA;AAEjC,EAAA,uBACE,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,QAAA;AAAA,MACL,eAAA,EAAe,QAAA;AAAA,MACf,eAAA,EAAe,WAAW,IAAA,GAAO,MAAA;AAAA,MACjC,QAAA,EAAU,EAAA;AAAA,MACV,OAAA,EAAS,MAAM,CAAC,QAAA,IAAY,YAAY,KAAK,CAAA;AAAA,MAC7C,SAAA,EAAW,CAAC,CAAA,KAAM;AAChB,QAAA,IAAI,QAAA,EAAU;AACZ,UAAA;AAAA,QACF;AACA,QAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,OAAA,IAAW,CAAA,CAAE,QAAQ,GAAA,EAAK;AACtC,UAAA,CAAA,CAAE,cAAA,EAAe;AACjB,UAAA,WAAA,CAAY,KAAK,CAAA;AAAA,QACnB;AAAA,MACF,CAAA;AAAA,MACA,eAAA,EAAe,WAAW,MAAA,GAAS,OAAA;AAAA,MACnC,SAAA,EAAW,EAAA;AAAA,QACT,kBAAA,CAAmB;AAAA,UACjB,QAAA;AAAA,UACA;AAAA,SACD,CAAA;AAAA,QACD,sBAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,QAAA;AAAA,QACA,QAAA,oBAAY,GAAA,CAAC,MAAA,EAAA,EAAK,QAAA,EAAA,QAAA,EAAC;AAAA;AAAA;AAAA,GACtB;AAEJ","file":"select.mjs","sourcesContent":["import { cva } from \"class-variance-authority\";\n\nexport const selectTriggerVariants = cva(\n \"flex items-center justify-between rounded-md border transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-gray-400 focus-visible:ring-offset-2\",\n {\n variants: {\n variant: {\n default: \"border-gray-300 bg-white text-gray-900\",\n outline: \"border-2 border-gray-500\",\n ghost: \"border-transparent\",\n sky: \"border-sky-600 text-sky-600\",\n rose: \"border-rose-600 text-rose-600\",\n purple: \"border-purple-600 text-purple-600\",\n pink: \"border-pink-600 text-pink-600\",\n orange: \"border-orange-600 text-orange-600\",\n yellow: \"border-yellow-600 text-yellow-600\",\n teal: \"border-teal-600 text-teal-600\",\n indigo: \"border-indigo-500 text-indigo-500\",\n emerald: \"border-emerald-600 text-emerald-600\",\n glass: \"border-white/15 bg-white/10 text-white backdrop-blur-md\",\n \"gradient-blue\":\n \"bg-linear-to-r from-blue-600 to-purple-600 bg-linear-to-r from-blue-950/70 to-purple-950/70 backdrop-blur-xl text-white\",\n \"gradient-green\":\n \"bg-linear-to-r from-green-600 to-lime-600 bg-linear-to-r from-green-950/70 to-lime-950/70 backdrop-blur-xl text-white\",\n \"gradient-red\":\n \"bg-linear-to-r from-red-600 to-pink-600 bg-linear-to-r from-red-950/70 to-pink-950/70 backdrop-blur-xl text-white\",\n \"gradient-yellow\":\n \"bg-linear-to-r from-yellow-600 to-orange-600 bg-linear-to-r from-yellow-950/70 to-orange-950/70 backdrop-blur-xl text-white\",\n \"gradient-purple\":\n \"bg-linear-to-r from-purple-600 to-pink-600 bg-linear-to-r from-purple-950/70 to-pink-950/70 backdrop-blur-xl text-white\",\n \"gradient-teal\":\n \"bg-linear-to-r from-teal-600 to-cyan-600 bg-linear-to-r from-teal-950/70 to-cyan-950/70 backdrop-blur-xl text-white\",\n \"gradient-indigo\":\n \"bg-linear-to-r from-indigo-600 to-purple-600 bg-linear-to-r from-indigo-950/70 to-purple-950/70 backdrop-blur-xl text-white\",\n \"gradient-pink\":\n \"bg-linear-to-r from-pink-600 to-rose-600 bg-linear-to-r from-pink-950/70 to-rose-950/70 backdrop-blur-xl text-white\",\n \"gradient-orange\":\n \"bg-linear-to-r from-orange-600 to-red-600 bg-linear-to-r from-orange-950/70 to-red-950/70 backdrop-blur-xl text-white\",\n },\n size: {\n sm: \"px-2 py-1 text-sm\",\n md: \"px-3 py-2\",\n lg: \"px-4 py-3 text-lg\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n },\n);\n\nexport const selectItemVariants = cva(\n \"cursor-pointer px-3 py-2 rounded-md focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-gray-400 focus-visible:ring-inset\",\n {\n variants: {\n appearance: {\n default:\n \"bg-white text-gray-900 data-[selected=true]:bg-gray-200 data-[selected=true]:text-gray-900\",\n glass:\n \"bg-white/10 text-gray-100 data-[selected=true]:bg-white/10 data-[selected=true]:text-gray-100\",\n outline:\n \"border-2 border-gray-500 text-gray-900 data-[selected=true]:border-2 data-[selected=true]:border-gray-500 data-[selected=true]:bg-gray-200 data-[selected=true]:text-gray-900\",\n ghost:\n \"border-transparent text-gray-900 data-[selected=true]:border-transparent data-[selected=true]:bg-transparent data-[selected=true]:text-gray-900\",\n sky: \"border-sky-600 text-sky-800 data-[selected=true]:border-sky-600 data-[selected=true]:bg-sky-200 data-[selected=true]:text-sky-800\",\n rose: \"border-rose-600 text-rose-800 data-[selected=true]:border-rose-600 data-[selected=true]:bg-rose-200 data-[selected=true]:text-rose-800\",\n purple:\n \"border-purple-600 text-purple-800 data-[selected=true]:border-purple-600 data-[selected=true]:bg-purple-200 data-[selected=true]:text-purple-800\",\n pink: \"border-pink-600 text-pink-800 data-[selected=true]:border-pink-600 data-[selected=true]:bg-pink-200 data-[selected=true]:text-pink-800\",\n orange:\n \"border-orange-600 text-orange-800 data-[selected=true]:border-orange-600 data-[selected=true]:bg-orange-200 data-[selected=true]:text-orange-800\",\n yellow:\n \"border-yellow-600 text-yellow-800 data-[selected=true]:border-yellow-600 data-[selected=true]:bg-yellow-200 data-[selected=true]:text-yellow-800\",\n teal: \"border-teal-600 text-teal-800 data-[selected=true]:border-teal-600 data-[selected=true]:bg-teal-200 data-[selected=true]:text-teal-800\",\n indigo:\n \"border-indigo-600 text-indigo-800 data-[selected=true]:border-indigo-600 data-[selected=true]:bg-indigo-200 data-[selected=true]:text-indigo-800\",\n emerald:\n \"border-emerald-600 text-emerald-800 data-[selected=true]:border-emerald-600 data-[selected=true]:bg-emerald-200 data-[selected=true]:text-emerald-800\",\n \"gradient-blue\":\n \"bg-linear-to-r from-blue-600 to-purple-600 bg-linear-to-r from-blue-950/70 to-purple-950/70 backdrop-blur-xl text-blue-50 data-[selected=true]:bg-linear-to-r from-blue-600 to-purple-600 bg-linear-to-r from-blue-950/70 to-purple-950/70 backdrop-blur-xl data-[selected=true]:text-blue-100\",\n \"gradient-green\":\n \"bg-linear-to-r from-green-600 to-lime-600 bg-linear-to-r from-green-950/70 to-lime-950/70 backdrop-blur-xl text-green-50 data-[selected=true]:bg-linear-to-r from-green-600 to-lime-600 bg-linear-to-r from-green-950/70 to-lime-950/70 backdrop-blur-xl data-[selected=true]:text-green-100\",\n \"gradient-red\":\n \"bg-linear-to-r from-red-600 to-pink-600 bg-linear-to-r from-red-950/70 to-pink-950/70 backdrop-blur-xl text-red-50 data-[selected=true]:bg-linear-to-r from-red-600 to-pink-600 bg-linear-to-r from-red-950/70 to-pink-950/70 backdrop-blur-xl data-[selected=true]:text-red-100\",\n \"gradient-yellow\":\n \"bg-linear-to-r from-yellow-600 to-orange-600 bg-linear-to-r from-yellow-950/70 to-orange-950/70 backdrop-blur-xl text-yellow-50 data-[selected=true]:bg-linear-to-r from-yellow-600 to-orange-600 bg-linear-to-r from-yellow-950/70 to-orange-950/70 backdrop-blur-xl data-[selected=true]:text-yellow-100\",\n \"gradient-purple\":\n \"bg-linear-to-r from-purple-600 to-pink-600 bg-linear-to-r from-purple-950/70 to-pink-950/70 backdrop-blur-xl text-purple-50 data-[selected=true]:bg-linear-to-r from-purple-600 to-pink-600 bg-linear-to-r from-purple-950/70 to-pink-950/70 backdrop-blur-xl data-[selected=true]:text-purple-100\",\n \"gradient-teal\":\n \"bg-linear-to-r from-teal-600 to-cyan-600 bg-linear-to-r from-teal-950/70 to-cyan-950/70 backdrop-blur-xl text-teal-50 data-[selected=true]:bg-linear-to-r from-teal-600 to-cyan-600 bg-linear-to-r from-teal-950/70 to-cyan-950/70 backdrop-blur-xl data-[selected=true]:text-teal-100\",\n \"gradient-indigo\":\n \"bg-linear-to-r from-indigo-600 to-purple-600 bg-linear-to-r from-indigo-950/70 to-purple-950/70 backdrop-blur-xl text-indigo-50 data-[selected=true]:bg-linear-to-r from-indigo-600 to-purple-600 bg-linear-to-r from-indigo-950/70 to-purple-950/70 backdrop-blur-xl data-[selected=true]:text-indigo-100\",\n \"gradient-pink\":\n \"bg-linear-to-r from-pink-600 to-rose-600 bg-linear-to-r from-pink-950/70 to-rose-950/70 backdrop-blur-xl text-pink-50 data-[selected=true]:bg-linear-to-r from-pink-600 to-rose-600 bg-linear-to-r from-pink-950/70 to-rose-950/70 backdrop-blur-xl data-[selected=true]:text-pink-100\",\n \"gradient-orange\":\n \"bg-linear-to-r from-orange-600 to-red-600 bg-linear-to-r from-orange-950/70 to-red-950/70 backdrop-blur-xl text-orange-50 data-[selected=true]:bg-linear-to-r from-orange-600 to-red-600 bg-linear-to-r from-orange-950/70 to-red-950/70 backdrop-blur-xl data-[selected=true]:text-orange-100\",\n },\n disabled: {\n true: \"opacity-50 cursor-not-allowed\",\n },\n },\n defaultVariants: {\n appearance: \"default\",\n },\n },\n);\n\nexport const selectContentVariants = cva(\n \"absolute z-10 mt-2 w-full rounded-md border bg-white shadow-md\",\n {\n variants: {\n appearance: {\n default: \"bg-white shadow-md\",\n glass: \"bg-white/10 backdrop-blur-md\",\n outline: \"border-2 border-gray-500\",\n ghost: \"border-transparent\",\n sky: \"border-sky-600\",\n rose: \"border-rose-600\",\n purple: \"border-purple-600\",\n pink: \"border-pink-600\",\n orange: \"border-orange-600\",\n yellow: \"border-yellow-600\",\n teal: \"border-teal-600\",\n indigo: \"border-indigo-600\",\n emerald: \"border-emerald-600\",\n \"gradient-blue\":\n \"bg-linear-to-r from-blue-600 to-purple-600 bg-linear-to-r from-blue-950/70 to-purple-950/70 backdrop-blur-xl\",\n \"gradient-green\":\n \"bg-linear-to-r from-green-600 to-lime-600 bg-linear-to-r from-green-950/70 to-lime-950/70 backdrop-blur-xl\",\n \"gradient-red\":\n \"bg-linear-to-r from-red-600 to-pink-600 bg-linear-to-r from-red-950/70 to-pink-950/70 backdrop-blur-xl\",\n \"gradient-yellow\":\n \"bg-linear-to-r from-yellow-600 to-orange-600 bg-linear-to-r from-yellow-950/70 to-orange-950/70 backdrop-blur-xl\",\n \"gradient-purple\":\n \"bg-linear-to-r from-purple-600 to-pink-600 bg-linear-to-r from-purple-950/70 to-pink-950/70 backdrop-blur-xl\",\n \"gradient-teal\":\n \"bg-linear-to-r from-teal-600 to-cyan-600 bg-linear-to-r from-teal-950/70 to-cyan-950/70 backdrop-blur-xl\",\n \"gradient-indigo\":\n \"bg-linear-to-r from-indigo-600 to-purple-600 bg-linear-to-r from-indigo-950/70 to-purple-950/70 backdrop-blur-xl\",\n \"gradient-pink\":\n \"bg-linear-to-r from-pink-600 to-rose-600 bg-linear-to-r from-pink-950/70 to-rose-950/70 backdrop-blur-xl\",\n \"gradient-orange\":\n \"bg-linear-to-r from-orange-600 to-red-600 bg-linear-to-r from-orange-950/70 to-red-950/70 backdrop-blur-xl\",\n },\n size: {\n sm: \"px-2 py-1 text-sm\",\n md: \"px-3 py-2\",\n lg: \"px-4 py-3 text-lg\",\n },\n spacing: {\n none: \"space-y-0\",\n default: \"space-y-1\",\n sm: \"space-y-2\",\n md: \"space-y-3\",\n lg: \"space-y-4\",\n xl: \"space-y-5\",\n },\n },\n defaultVariants: {\n appearance: \"default\",\n size: \"md\",\n spacing: \"default\",\n },\n },\n);\n","\"use client\";\nimport { useState, useEffect, useCallback, useRef, useId } from \"react\";\nimport {\n SelectProps,\n SelectOption,\n SelectTriggerProps,\n SelectContentProps,\n SelectItemProps,\n SelectValueProps,\n} from \"./types\";\nimport { createContext, useContext } from \"react\";\nimport { SelectContextType } from \"./types\";\nimport { cn } from \"../../lib/utils\";\nimport {\n selectContentVariants,\n selectItemVariants,\n selectTriggerVariants,\n} from \"./variants\";\n\nexport const SelectContext = createContext<SelectContextType | null>(null);\n\nexport const useSelect = () => {\n const ctx = useContext(SelectContext);\n if (!ctx) throw new Error(\"Select components must be used inside Select\");\n return ctx;\n};\n\nexport const Select = ({\n children,\n value,\n defaultValue = [],\n onChange,\n multiple = true,\n}: SelectProps) => {\n const listboxId = `${useId()}-listbox`;\n const [internal, setInternal] = useState<string[]>(defaultValue);\n const [open, setOpen] = useState(false);\n const [options, setOptions] = useState<SelectOption[]>([]);\n const rootRef = useRef<HTMLDivElement>(null);\n\n const selected = value ?? internal;\n\n useEffect(() => {\n if (!open) return;\n\n const handlePointerDown = (event: PointerEvent) => {\n const root = rootRef.current;\n if (!root) return;\n const target = event.target;\n if (target instanceof Node && !root.contains(target)) {\n setOpen(false);\n }\n };\n\n document.addEventListener(\"pointerdown\", handlePointerDown);\n return () => document.removeEventListener(\"pointerdown\", handlePointerDown);\n }, [open]);\n\n const setSelected = (vals: string[]) => {\n if (value !== undefined) {\n onChange?.(vals);\n } else {\n setInternal(vals);\n onChange?.(vals);\n }\n };\n\n const toggleValue = (val: string) => {\n if (multiple) {\n if (selected.includes(val)) {\n setSelected(selected.filter((v) => v !== val));\n } else {\n setSelected([...selected, val]);\n }\n } else {\n setSelected([val]);\n setOpen(false);\n }\n };\n\n const isSelected = (val: string) => selected.includes(val);\n\n const registerOption = useCallback((opt: SelectOption) => {\n setOptions((prev) => {\n if (prev.find((o) => o.value === opt.value)) return prev;\n return [...prev, opt];\n });\n }, []);\n\n return (\n <SelectContext.Provider\n value={{\n open,\n setOpen,\n selected,\n toggleValue,\n isSelected,\n registerOption,\n options,\n multiple,\n listboxId,\n }}\n >\n <div ref={rootRef} className=\"relative w-full\">\n {children}\n </div>\n </SelectContext.Provider>\n );\n};\n\nexport const SelectTrigger = ({\n className,\n variant,\n size,\n onClick,\n ...props\n}: SelectTriggerProps) => {\n const { open, setOpen, listboxId } = useSelect();\n\n return (\n <button\n type=\"button\"\n aria-expanded={open}\n aria-haspopup=\"listbox\"\n aria-controls={listboxId}\n className={cn(selectTriggerVariants({ variant, size }), className)}\n {...props}\n onClick={(event) => {\n onClick?.(event);\n if (!event.defaultPrevented) {\n setOpen(!open);\n }\n }}\n />\n );\n};\n\nexport const SelectValue = ({\n placeholder = \"Select...\",\n className,\n ...props\n}: SelectValueProps) => {\n const { selected, options } = useSelect();\n\n const selectedOptions = options.filter((o) => selected.includes(o.value));\n\n if (selectedOptions.length === 0) {\n return (\n <span className={cn(className)} {...props}>\n {placeholder}\n </span>\n );\n }\n\n return (\n <span className={cn(className)} {...props}>\n {selectedOptions.map((option, index) => (\n <span key={option.value}>\n {index > 0 ? \", \" : null}\n {option.label}\n </span>\n ))}\n </span>\n );\n};\n\nexport const SelectContent = ({\n children,\n className,\n appearance = \"default\",\n size = \"md\",\n spacing = \"default\",\n ...props\n}: SelectContentProps) => {\n const { open, listboxId, multiple } = useSelect();\n const panelRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!open) {\n return;\n }\n const panel = panelRef.current;\n if (!panel) {\n return;\n }\n const opts = Array.from(\n panel.querySelectorAll<HTMLElement>('[role=\"option\"]'),\n ).filter((el) => el.getAttribute(\"aria-disabled\") !== \"true\");\n requestAnimationFrame(() => opts[0]?.focus());\n }, [open]);\n\n useEffect(() => {\n if (!open) {\n return;\n }\n const panel = panelRef.current;\n if (!panel) {\n return;\n }\n\n const enabledOptions = () =>\n Array.from(panel.querySelectorAll<HTMLElement>('[role=\"option\"]')).filter(\n (el) => el.getAttribute(\"aria-disabled\") !== \"true\",\n );\n\n const handleKeyDown = (event: KeyboardEvent) => {\n const options = enabledOptions();\n if (options.length === 0) {\n return;\n }\n\n const idx = options.findIndex((el) => el === document.activeElement);\n\n if (event.key === \"ArrowDown\") {\n event.preventDefault();\n const next = idx < 0 ? 0 : Math.min(idx + 1, options.length - 1);\n options[next]?.focus();\n return;\n }\n\n if (event.key === \"ArrowUp\") {\n event.preventDefault();\n const prev = idx <= 0 ? options.length - 1 : Math.max(idx - 1, 0);\n options[prev]?.focus();\n return;\n }\n\n if (event.key === \"Home\") {\n event.preventDefault();\n options[0]?.focus();\n return;\n }\n\n if (event.key === \"End\") {\n event.preventDefault();\n options[options.length - 1]?.focus();\n }\n };\n\n panel.addEventListener(\"keydown\", handleKeyDown);\n return () => panel.removeEventListener(\"keydown\", handleKeyDown);\n }, [open]);\n\n if (!open) return null;\n\n return (\n <div\n ref={panelRef}\n id={listboxId}\n role=\"listbox\"\n aria-multiselectable={multiple}\n tabIndex={-1}\n className={cn(\n selectContentVariants({ appearance, size, spacing }),\n className,\n )}\n {...props}\n >\n {children}\n </div>\n );\n};\n\nexport const SelectItem = ({\n value,\n children,\n disabled,\n appearance = \"default\",\n className,\n ...props\n}: SelectItemProps) => {\n const { toggleValue, isSelected, registerOption } = useSelect();\n\n useEffect(() => {\n registerOption({ label: children, value, disabled });\n }, [children, disabled, registerOption, value]);\n\n const isActive = isSelected(value);\n\n return (\n <div\n role=\"option\"\n aria-selected={isActive}\n aria-disabled={disabled ? true : undefined}\n tabIndex={-1}\n onClick={() => !disabled && toggleValue(value)}\n onKeyDown={(e) => {\n if (disabled) {\n return;\n }\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n toggleValue(value);\n }\n }}\n data-selected={isActive ? \"true\" : \"false\"}\n className={cn(\n selectItemVariants({\n disabled,\n appearance,\n }),\n \"flex justify-between\",\n className,\n )}\n {...props}\n >\n {children}\n {isActive && <span>✓</span>}\n </div>\n );\n};\n"]}
1
+ {"version":3,"sources":["../../src/ui/select/variants.ts","../../src/ui/select/select.tsx"],"names":[],"mappings":"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","file":"select.mjs","sourcesContent":["import { cva } from \"class-variance-authority\";\n\nexport const selectTriggerVariants = cva(\n \"flex items-center justify-between rounded-md border transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-gray-400 focus-visible:ring-offset-2\",\n {\n variants: {\n variant: {\n default: \"border-gray-300 bg-white text-gray-900\",\n outline: \"border-2 border-gray-500\",\n ghost: \"border-transparent\",\n sky: \"border-sky-600 text-sky-600\",\n rose: \"border-rose-600 text-rose-600\",\n purple: \"border-purple-600 text-purple-600\",\n pink: \"border-pink-600 text-pink-600\",\n orange: \"border-orange-600 text-orange-600\",\n yellow: \"border-yellow-600 text-yellow-600\",\n teal: \"border-teal-600 text-teal-600\",\n indigo: \"border-indigo-500 text-indigo-500\",\n emerald: \"border-emerald-600 text-emerald-600\",\n glass: \"border-white/15 bg-white/10 text-white backdrop-blur-md\",\n \"gradient-blue\":\n \"bg-linear-to-r from-blue-600 to-purple-600 backdrop-blur-xl text-white\",\n \"gradient-green\":\n \"bg-linear-to-r from-green-600 to-lime-600 backdrop-blur-xl text-white\",\n \"gradient-red\":\n \"bg-linear-to-r from-red-600 to-pink-600 backdrop-blur-xl text-white\",\n \"gradient-yellow\":\n \"bg-linear-to-r from-yellow-600 to-orange-600 backdrop-blur-xl text-white\",\n \"gradient-purple\":\n \"bg-linear-to-r from-purple-600 to-pink-600 backdrop-blur-xl text-white\",\n \"gradient-teal\":\n \"bg-linear-to-r from-teal-600 to-cyan-600 backdrop-blur-xl text-white\",\n \"gradient-indigo\":\n \"bg-linear-to-r from-indigo-600 to-purple-600 backdrop-blur-xl text-white\",\n \"gradient-pink\":\n \"bg-linear-to-r from-pink-600 to-rose-600 backdrop-blur-xl text-white\",\n \"gradient-orange\":\n \"bg-linear-to-r from-orange-600 to-red-600 backdrop-blur-xl text-white\",\n },\n size: {\n sm: \"px-2 py-1 text-sm\",\n md: \"px-3 py-2\",\n lg: \"px-4 py-3 text-lg\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n },\n);\n\nexport const selectItemVariants = cva(\n \"cursor-pointer px-3 py-2 rounded-md focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-gray-400 focus-visible:ring-inset\",\n {\n variants: {\n appearance: {\n default:\n \"bg-white text-gray-900 data-[selected=true]:bg-gray-200 data-[selected=true]:text-gray-900\",\n glass:\n \"bg-white/10 text-gray-100 data-[selected=true]:bg-white/10 data-[selected=true]:text-gray-100\",\n outline:\n \"border-2 border-gray-500 text-gray-900 data-[selected=true]:border-2 data-[selected=true]:border-gray-500 data-[selected=true]:bg-gray-200 data-[selected=true]:text-gray-900\",\n ghost:\n \"border-transparent text-gray-900 data-[selected=true]:border-transparent data-[selected=true]:bg-transparent data-[selected=true]:text-gray-900\",\n sky: \"border-sky-600 text-sky-800 data-[selected=true]:border-sky-600 data-[selected=true]:bg-sky-200 data-[selected=true]:text-sky-800\",\n rose: \"border-rose-600 text-rose-800 data-[selected=true]:border-rose-600 data-[selected=true]:bg-rose-200 data-[selected=true]:text-rose-800\",\n purple:\n \"border-purple-600 text-purple-800 data-[selected=true]:border-purple-600 data-[selected=true]:bg-purple-200 data-[selected=true]:text-purple-800\",\n pink: \"border-pink-600 text-pink-800 data-[selected=true]:border-pink-600 data-[selected=true]:bg-pink-200 data-[selected=true]:text-pink-800\",\n orange:\n \"border-orange-600 text-orange-800 data-[selected=true]:border-orange-600 data-[selected=true]:bg-orange-200 data-[selected=true]:text-orange-800\",\n yellow:\n \"border-yellow-600 text-yellow-800 data-[selected=true]:border-yellow-600 data-[selected=true]:bg-yellow-200 data-[selected=true]:text-yellow-800\",\n teal: \"border-teal-600 text-teal-800 data-[selected=true]:border-teal-600 data-[selected=true]:bg-teal-200 data-[selected=true]:text-teal-800\",\n indigo:\n \"border-indigo-600 text-indigo-800 data-[selected=true]:border-indigo-600 data-[selected=true]:bg-indigo-200 data-[selected=true]:text-indigo-800\",\n emerald:\n \"border-emerald-600 text-emerald-800 data-[selected=true]:border-emerald-600 data-[selected=true]:bg-emerald-200 data-[selected=true]:text-emerald-800\",\n \"gradient-blue\":\n \"bg-linear-to-r from-blue-950/70 to-purple-950/70 backdrop-blur-xl text-blue-50 data-[selected=true]:bg-linear-to-r data-[selected=true]:from-blue-600 data-[selected=true]:to-purple-600 data-[selected=true]:text-blue-100\",\n \"gradient-green\":\n \"bg-linear-to-r from-green-950/70 to-lime-950/70 backdrop-blur-xl text-green-50 data-[selected=true]:bg-linear-to-r data-[selected=true]:from-green-600 data-[selected=true]:to-lime-600 data-[selected=true]:text-green-100\",\n \"gradient-red\":\n \"bg-linear-to-r from-red-950/70 to-pink-950/70 backdrop-blur-xl text-red-50 data-[selected=true]:bg-linear-to-r data-[selected=true]:from-red-600 data-[selected=true]:to-pink-600 data-[selected=true]:text-red-100\",\n \"gradient-yellow\":\n \"bg-linear-to-r from-yellow-950/70 to-orange-950/70 backdrop-blur-xl text-yellow-50 data-[selected=true]:bg-linear-to-r data-[selected=true]:from-yellow-600 data-[selected=true]:to-orange-600 data-[selected=true]:text-yellow-100\",\n \"gradient-purple\":\n \"bg-linear-to-r from-purple-950/70 to-pink-950/70 backdrop-blur-xl text-purple-50 data-[selected=true]:bg-linear-to-r data-[selected=true]:from-purple-600 data-[selected=true]:to-pink-600 data-[selected=true]:text-purple-100\",\n \"gradient-teal\":\n \"bg-linear-to-r from-teal-950/70 to-cyan-950/70 backdrop-blur-xl text-teal-50 data-[selected=true]:bg-linear-to-r data-[selected=true]:from-teal-600 data-[selected=true]:to-cyan-600 data-[selected=true]:text-teal-100\",\n \"gradient-indigo\":\n \"bg-linear-to-r from-indigo-950/70 to-purple-950/70 backdrop-blur-xl text-indigo-50 data-[selected=true]:bg-linear-to-r data-[selected=true]:from-indigo-600 data-[selected=true]:to-purple-600 data-[selected=true]:text-indigo-100\",\n \"gradient-pink\":\n \"bg-linear-to-r from-pink-950/70 to-rose-950/70 backdrop-blur-xl text-pink-50 data-[selected=true]:bg-linear-to-r data-[selected=true]:from-pink-600 data-[selected=true]:to-rose-600 data-[selected=true]:text-pink-100\",\n \"gradient-orange\":\n \"bg-linear-to-r from-orange-950/70 to-red-950/70 backdrop-blur-xl text-orange-50 data-[selected=true]:bg-linear-to-r data-[selected=true]:from-orange-600 data-[selected=true]:to-red-600 data-[selected=true]:text-orange-100\",\n },\n disabled: {\n true: \"opacity-50 cursor-not-allowed\",\n },\n },\n defaultVariants: {\n appearance: \"default\",\n },\n },\n);\n\nexport const selectContentVariants = cva(\n \"absolute z-10 mt-2 w-full rounded-md border bg-white shadow-md\",\n {\n variants: {\n appearance: {\n default: \"bg-white shadow-md\",\n glass: \"bg-white/10 backdrop-blur-md\",\n outline: \"border-2 border-gray-500\",\n ghost: \"border-transparent\",\n sky: \"border-sky-600\",\n rose: \"border-rose-600\",\n purple: \"border-purple-600\",\n pink: \"border-pink-600\",\n orange: \"border-orange-600\",\n yellow: \"border-yellow-600\",\n teal: \"border-teal-600\",\n indigo: \"border-indigo-600\",\n emerald: \"border-emerald-600\",\n \"gradient-blue\":\n \"bg-linear-to-r from-blue-600 to-purple-600 backdrop-blur-xl\",\n \"gradient-green\":\n \"bg-linear-to-r from-green-600 to-lime-600 backdrop-blur-xl\",\n \"gradient-red\":\n \"bg-linear-to-r from-red-600 to-pink-600 backdrop-blur-xl\",\n \"gradient-yellow\":\n \"bg-linear-to-r from-yellow-600 to-orange-600 backdrop-blur-xl\",\n \"gradient-purple\":\n \"bg-linear-to-r from-purple-600 to-pink-600 backdrop-blur-xl\",\n \"gradient-teal\":\n \"bg-linear-to-r from-teal-600 to-cyan-600 backdrop-blur-xl\",\n \"gradient-indigo\":\n \"bg-linear-to-r from-indigo-600 to-purple-600 backdrop-blur-xl\",\n \"gradient-pink\":\n \"bg-linear-to-r from-pink-600 to-rose-600 backdrop-blur-xl\",\n \"gradient-orange\":\n \"bg-linear-to-r from-orange-600 to-red-600 backdrop-blur-xl\",\n },\n size: {\n sm: \"px-2 py-1 text-sm\",\n md: \"px-3 py-2\",\n lg: \"px-4 py-3 text-lg\",\n },\n spacing: {\n none: \"space-y-0\",\n default: \"space-y-1\",\n sm: \"space-y-2\",\n md: \"space-y-3\",\n lg: \"space-y-4\",\n xl: \"space-y-5\",\n },\n },\n defaultVariants: {\n appearance: \"default\",\n size: \"md\",\n spacing: \"default\",\n },\n },\n);\n","\"use client\";\nimport { useState, useEffect, useCallback, useRef, useId } from \"react\";\nimport {\n SelectProps,\n SelectOption,\n SelectTriggerProps,\n SelectContentProps,\n SelectItemProps,\n SelectValueProps,\n} from \"./types\";\nimport { createContext, useContext } from \"react\";\nimport { SelectContextType } from \"./types\";\nimport { cn } from \"../../lib/utils\";\nimport {\n selectContentVariants,\n selectItemVariants,\n selectTriggerVariants,\n} from \"./variants\";\n\nexport const SelectContext = createContext<SelectContextType | null>(null);\n\nexport const useSelect = () => {\n const ctx = useContext(SelectContext);\n if (!ctx) throw new Error(\"Select components must be used inside Select\");\n return ctx;\n};\n\nexport const Select = ({\n children,\n value,\n defaultValue = [],\n onChange,\n multiple = true,\n}: SelectProps) => {\n const listboxId = `${useId()}-listbox`;\n const [internal, setInternal] = useState<string[]>(defaultValue);\n const [open, setOpen] = useState(false);\n const [options, setOptions] = useState<SelectOption[]>([]);\n const rootRef = useRef<HTMLDivElement>(null);\n\n const selected = value ?? internal;\n\n useEffect(() => {\n if (!open) return;\n\n const handlePointerDown = (event: PointerEvent) => {\n const root = rootRef.current;\n if (!root) return;\n const target = event.target;\n if (target instanceof Node && !root.contains(target)) {\n setOpen(false);\n }\n };\n\n document.addEventListener(\"pointerdown\", handlePointerDown);\n return () => document.removeEventListener(\"pointerdown\", handlePointerDown);\n }, [open]);\n\n const setSelected = (vals: string[]) => {\n if (value !== undefined) {\n onChange?.(vals);\n } else {\n setInternal(vals);\n onChange?.(vals);\n }\n };\n\n const toggleValue = (val: string) => {\n if (multiple) {\n if (selected.includes(val)) {\n setSelected(selected.filter((v) => v !== val));\n } else {\n setSelected([...selected, val]);\n }\n } else {\n setSelected([val]);\n setOpen(false);\n }\n };\n\n const isSelected = (val: string) => selected.includes(val);\n\n const registerOption = useCallback((opt: SelectOption) => {\n setOptions((prev) => {\n if (prev.find((o) => o.value === opt.value)) return prev;\n return [...prev, opt];\n });\n }, []);\n\n return (\n <SelectContext.Provider\n value={{\n open,\n setOpen,\n selected,\n toggleValue,\n isSelected,\n registerOption,\n options,\n multiple,\n listboxId,\n }}\n >\n <div ref={rootRef} className=\"relative w-full\">\n {children}\n </div>\n </SelectContext.Provider>\n );\n};\n\nexport const SelectTrigger = ({\n className,\n variant,\n size,\n onClick,\n ...props\n}: SelectTriggerProps) => {\n const { open, setOpen, listboxId } = useSelect();\n\n return (\n <button\n type=\"button\"\n aria-expanded={open}\n aria-haspopup=\"listbox\"\n aria-controls={listboxId}\n className={cn(selectTriggerVariants({ variant, size }), className)}\n {...props}\n onClick={(event) => {\n onClick?.(event);\n if (!event.defaultPrevented) {\n setOpen(!open);\n }\n }}\n />\n );\n};\n\nexport const SelectValue = ({\n placeholder = \"Select...\",\n className,\n ...props\n}: SelectValueProps) => {\n const { selected, options } = useSelect();\n\n const selectedOptions = options.filter((o) => selected.includes(o.value));\n\n if (selectedOptions.length === 0) {\n return (\n <span className={cn(className)} {...props}>\n {placeholder}\n </span>\n );\n }\n\n return (\n <span className={cn(className)} {...props}>\n {selectedOptions.map((option, index) => (\n <span key={option.value}>\n {index > 0 ? \", \" : null}\n {option.label}\n </span>\n ))}\n </span>\n );\n};\n\nexport const SelectContent = ({\n children,\n className,\n appearance = \"default\",\n size = \"md\",\n spacing = \"default\",\n ...props\n}: SelectContentProps) => {\n const { open, listboxId, multiple } = useSelect();\n const panelRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!open) {\n return;\n }\n const panel = panelRef.current;\n if (!panel) {\n return;\n }\n const opts = Array.from(\n panel.querySelectorAll<HTMLElement>('[role=\"option\"]'),\n ).filter((el) => el.getAttribute(\"aria-disabled\") !== \"true\");\n requestAnimationFrame(() => opts[0]?.focus());\n }, [open]);\n\n useEffect(() => {\n if (!open) {\n return;\n }\n const panel = panelRef.current;\n if (!panel) {\n return;\n }\n\n const enabledOptions = () =>\n Array.from(panel.querySelectorAll<HTMLElement>('[role=\"option\"]')).filter(\n (el) => el.getAttribute(\"aria-disabled\") !== \"true\",\n );\n\n const handleKeyDown = (event: KeyboardEvent) => {\n const options = enabledOptions();\n if (options.length === 0) {\n return;\n }\n\n const idx = options.findIndex((el) => el === document.activeElement);\n\n if (event.key === \"ArrowDown\") {\n event.preventDefault();\n const next = idx < 0 ? 0 : Math.min(idx + 1, options.length - 1);\n options[next]?.focus();\n return;\n }\n\n if (event.key === \"ArrowUp\") {\n event.preventDefault();\n const prev = idx <= 0 ? options.length - 1 : Math.max(idx - 1, 0);\n options[prev]?.focus();\n return;\n }\n\n if (event.key === \"Home\") {\n event.preventDefault();\n options[0]?.focus();\n return;\n }\n\n if (event.key === \"End\") {\n event.preventDefault();\n options[options.length - 1]?.focus();\n }\n };\n\n panel.addEventListener(\"keydown\", handleKeyDown);\n return () => panel.removeEventListener(\"keydown\", handleKeyDown);\n }, [open]);\n\n if (!open) return null;\n\n return (\n <div\n ref={panelRef}\n id={listboxId}\n role=\"listbox\"\n aria-multiselectable={multiple}\n tabIndex={-1}\n className={cn(\n selectContentVariants({ appearance, size, spacing }),\n className,\n )}\n {...props}\n >\n {children}\n </div>\n );\n};\n\nexport const SelectItem = ({\n value,\n children,\n disabled,\n appearance = \"default\",\n className,\n ...props\n}: SelectItemProps) => {\n const { toggleValue, isSelected, registerOption } = useSelect();\n\n useEffect(() => {\n registerOption({ label: children, value, disabled });\n }, [children, disabled, registerOption, value]);\n\n const isActive = isSelected(value);\n\n return (\n <div\n role=\"option\"\n aria-selected={isActive}\n aria-disabled={disabled ? true : undefined}\n tabIndex={-1}\n onClick={() => !disabled && toggleValue(value)}\n onKeyDown={(e) => {\n if (disabled) {\n return;\n }\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n toggleValue(value);\n }\n }}\n data-selected={isActive ? \"true\" : \"false\"}\n className={cn(\n selectItemVariants({\n disabled,\n appearance,\n }),\n \"flex justify-between\",\n className,\n )}\n {...props}\n >\n {children}\n {isActive && <span>✓</span>}\n </div>\n );\n};\n"]}
@@ -26,11 +26,11 @@ export declare const skeletonShimmerGradientClasses: {
26
26
  };
27
27
  export type SkeletonShimmerTone = keyof typeof skeletonShimmerGradientClasses;
28
28
  export declare const skeletonVariants: (props?: ({
29
- appearance?: "default" | "emerald" | "indigo" | "purple" | "pink" | "rose" | "sky" | "teal" | "yellow" | "orange" | "gray" | "amber" | "violet" | "gradient-blue" | "gradient-green" | "gradient-red" | "gradient-yellow" | "gradient-purple" | "gradient-teal" | "gradient-indigo" | "gradient-pink" | "gradient-orange" | "muted" | "subtle" | null | undefined;
29
+ appearance?: "default" | "muted" | "sky" | "emerald" | "violet" | "amber" | "rose" | "gray" | "indigo" | "orange" | "pink" | "purple" | "teal" | "yellow" | "gradient-blue" | "gradient-green" | "gradient-red" | "gradient-yellow" | "gradient-purple" | "gradient-teal" | "gradient-indigo" | "gradient-pink" | "gradient-orange" | "subtle" | null | undefined;
30
30
  size?: "sm" | "md" | "lg" | null | undefined;
31
31
  rounded?: "none" | "sm" | "md" | "lg" | "full" | null | undefined;
32
32
  animation?: "none" | "shimmer" | "pulse" | null | undefined;
33
- shimmerTone?: "default" | "emerald" | "indigo" | "purple" | "pink" | "rose" | "sky" | "teal" | "yellow" | "orange" | "gray" | "amber" | "violet" | "gradient-blue" | "gradient-green" | "gradient-red" | "gradient-yellow" | "gradient-purple" | "gradient-teal" | "gradient-indigo" | "gradient-pink" | "gradient-orange" | "muted" | "subtle" | null | undefined;
33
+ shimmerTone?: "default" | "muted" | "sky" | "emerald" | "violet" | "amber" | "rose" | "gray" | "indigo" | "orange" | "pink" | "purple" | "teal" | "yellow" | "gradient-blue" | "gradient-green" | "gradient-red" | "gradient-yellow" | "gradient-purple" | "gradient-teal" | "gradient-indigo" | "gradient-pink" | "gradient-orange" | "subtle" | null | undefined;
34
34
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
35
35
  export declare const skeletonTextLineVariants: (props?: ({
36
36
  size?: "sm" | "md" | "lg" | null | undefined;
@@ -5,7 +5,7 @@ export declare const sliderTrackVariants: (props?: ({
5
5
  size?: "sm" | "md" | "lg" | null | undefined;
6
6
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
7
  export declare const sliderRangeVariants: (props?: ({
8
- appearance?: "default" | "emerald" | "indigo" | "purple" | "pink" | "rose" | "sky" | "teal" | "yellow" | "orange" | "gray" | "amber" | "violet" | "gradient-blue" | "gradient-green" | "gradient-red" | "gradient-yellow" | "gradient-purple" | "gradient-teal" | "gradient-indigo" | "gradient-pink" | "gradient-orange" | null | undefined;
8
+ appearance?: "default" | "sky" | "emerald" | "violet" | "amber" | "rose" | "gray" | "indigo" | "orange" | "pink" | "purple" | "teal" | "yellow" | "gradient-blue" | "gradient-green" | "gradient-red" | "gradient-yellow" | "gradient-purple" | "gradient-teal" | "gradient-indigo" | "gradient-pink" | "gradient-orange" | null | undefined;
9
9
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
10
10
  export declare const sliderThumbVariants: (props?: ({
11
11
  size?: "sm" | "md" | "lg" | null | undefined;
@@ -1,5 +1,5 @@
1
1
  export declare const spinnerVariants: (props?: ({
2
- appearance?: "default" | "secondary" | "destructive" | "ghost" | "emerald" | "indigo" | "purple" | "pink" | "rose" | "sky" | "teal" | "yellow" | "orange" | "gradient-blue" | "gradient-green" | "gradient-red" | "gradient-yellow" | "gradient-purple" | "gradient-teal" | "gradient-indigo" | "gradient-pink" | "gradient-orange" | null | undefined;
2
+ appearance?: "default" | "sky" | "emerald" | "rose" | "indigo" | "orange" | "pink" | "purple" | "teal" | "yellow" | "secondary" | "destructive" | "ghost" | "gradient-blue" | "gradient-green" | "gradient-red" | "gradient-yellow" | "gradient-purple" | "gradient-teal" | "gradient-indigo" | "gradient-pink" | "gradient-orange" | null | undefined;
3
3
  size?: "sm" | "md" | "lg" | "xl" | "xs" | null | undefined;
4
4
  variant?: "ring" | "pulse" | "dots" | "bars" | null | undefined;
5
5
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
@@ -5,7 +5,7 @@ export declare const stepperItemVariants: (props?: ({
5
5
  orientation?: "horizontal" | "vertical" | null | undefined;
6
6
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
7
  export declare const stepperIndicatorVariants: (props?: ({
8
- appearance?: "current" | "emerald" | "indigo" | "purple" | "pink" | "rose" | "sky" | "teal" | "yellow" | "orange" | "gray" | "violet" | "gradient-blue" | "gradient-green" | "gradient-red" | "gradient-yellow" | "gradient-purple" | "gradient-teal" | "gradient-indigo" | "gradient-pink" | "gradient-orange" | "complete" | "upcoming" | null | undefined;
8
+ appearance?: "sky" | "emerald" | "violet" | "rose" | "gray" | "indigo" | "orange" | "pink" | "purple" | "teal" | "yellow" | "current" | "gradient-blue" | "gradient-green" | "gradient-red" | "gradient-yellow" | "gradient-purple" | "gradient-teal" | "gradient-indigo" | "gradient-pink" | "gradient-orange" | "complete" | "upcoming" | null | undefined;
9
9
  size?: "sm" | "md" | "lg" | null | undefined;
10
10
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
11
11
  //# sourceMappingURL=variants.d.ts.map
@@ -1,13 +1,13 @@
1
1
  export declare const tableVariants: (props?: ({
2
- appearance?: "default" | "ghost" | "emerald" | "indigo" | "purple" | "pink" | "rose" | "sky" | "teal" | "yellow" | "orange" | "gray" | "amber" | "violet" | "striped" | "bordered" | null | undefined;
2
+ appearance?: "default" | "sky" | "emerald" | "violet" | "amber" | "rose" | "gray" | "indigo" | "orange" | "pink" | "purple" | "teal" | "yellow" | "ghost" | "striped" | "bordered" | null | undefined;
3
3
  size?: "sm" | "md" | "lg" | null | undefined;
4
4
  stickyHeader?: boolean | null | undefined;
5
5
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
6
6
  export declare const tableRowVariants: (props?: ({
7
- appearance?: "default" | "ghost" | "emerald" | "indigo" | "purple" | "pink" | "rose" | "sky" | "teal" | "yellow" | "orange" | "gray" | "amber" | "violet" | "striped" | "bordered" | null | undefined;
7
+ appearance?: "default" | "sky" | "emerald" | "violet" | "amber" | "rose" | "gray" | "indigo" | "orange" | "pink" | "purple" | "teal" | "yellow" | "ghost" | "striped" | "bordered" | null | undefined;
8
8
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
9
9
  export declare const tableCellVariants: (props?: ({
10
- appearance?: "default" | "ghost" | "emerald" | "indigo" | "purple" | "pink" | "rose" | "sky" | "teal" | "yellow" | "orange" | "gray" | "amber" | "violet" | "striped" | "bordered" | null | undefined;
10
+ appearance?: "default" | "sky" | "emerald" | "violet" | "amber" | "rose" | "gray" | "indigo" | "orange" | "pink" | "purple" | "teal" | "yellow" | "ghost" | "striped" | "bordered" | null | undefined;
11
11
  size?: "sm" | "md" | "lg" | null | undefined;
12
12
  textAlign?: "center" | "left" | "right" | null | undefined;
13
13
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
@@ -4,7 +4,7 @@ export declare const tabsListVariants: (props?: ({
4
4
  orientation?: "horizontal" | "vertical" | null | undefined;
5
5
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
6
6
  export declare const tabsTriggerVariants: (props?: ({
7
- appearance?: "default" | "emerald" | "indigo" | "purple" | "pink" | "rose" | "sky" | "teal" | "yellow" | "orange" | "gray" | "gradient-blue" | "gradient-green" | "gradient-red" | "gradient-yellow" | "gradient-purple" | "gradient-teal" | "gradient-indigo" | "gradient-pink" | "gradient-orange" | null | undefined;
7
+ appearance?: "default" | "sky" | "emerald" | "rose" | "gray" | "indigo" | "orange" | "pink" | "purple" | "teal" | "yellow" | "gradient-blue" | "gradient-green" | "gradient-red" | "gradient-yellow" | "gradient-purple" | "gradient-teal" | "gradient-indigo" | "gradient-pink" | "gradient-orange" | null | undefined;
8
8
  variant?: "default" | "underline" | "pills" | null | undefined;
9
9
  size?: "sm" | "md" | "lg" | null | undefined;
10
10
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkKEKNNZD3_js = require('../../chunk-KEKNNZD3.js');
4
+ var chunkOLEMP2HL_js = require('../../chunk-OLEMP2HL.js');
5
5
  var chunkZS5756ZC_js = require('../../chunk-ZS5756ZC.js');
6
6
  var framerMotion = require('framer-motion');
7
7
  var react = require('react');
@@ -28,7 +28,7 @@ function ToastViewportAnimated({
28
28
  position = "bottom-right",
29
29
  className
30
30
  }) {
31
- const ctx = react.useContext(chunkKEKNNZD3_js.ToastStoreContext);
31
+ const ctx = react.useContext(chunkOLEMP2HL_js.ToastStoreContext);
32
32
  if (!ctx) {
33
33
  throw new Error(
34
34
  "ToastViewportAnimated must be used within <ToastProvider>"
@@ -42,7 +42,7 @@ function ToastViewportAnimated({
42
42
  /* @__PURE__ */ jsxRuntime.jsx(
43
43
  "div",
44
44
  {
45
- className: chunkZS5756ZC_js.cn(chunkKEKNNZD3_js.toastViewportVariants({ position }), className),
45
+ className: chunkZS5756ZC_js.cn(chunkOLEMP2HL_js.toastViewportVariants({ position }), className),
46
46
  "data-slot": "toast-viewport",
47
47
  children: /* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { children: ctx.toasts.map((item) => /* @__PURE__ */ jsxRuntime.jsxs(
48
48
  ToastAnimated,
@@ -52,9 +52,9 @@ function ToastViewportAnimated({
52
52
  size: item.size,
53
53
  animation: item.animation,
54
54
  children: [
55
- /* @__PURE__ */ jsxRuntime.jsx(chunkKEKNNZD3_js.ToastTitle, { children: item.title }),
56
- item.description ? /* @__PURE__ */ jsxRuntime.jsx(chunkKEKNNZD3_js.ToastDescription, { children: item.description }) : null,
57
- /* @__PURE__ */ jsxRuntime.jsx(chunkKEKNNZD3_js.ToastClose, { onClick: () => ctx.dismiss(item.id) })
55
+ /* @__PURE__ */ jsxRuntime.jsx(chunkOLEMP2HL_js.ToastTitle, { children: item.title }),
56
+ item.description ? /* @__PURE__ */ jsxRuntime.jsx(chunkOLEMP2HL_js.ToastDescription, { children: item.description }) : null,
57
+ /* @__PURE__ */ jsxRuntime.jsx(chunkOLEMP2HL_js.ToastClose, { onClick: () => ctx.dismiss(item.id) })
58
58
  ]
59
59
  },
60
60
  item.id
@@ -85,7 +85,7 @@ function ToastAnimated({
85
85
  "aria-atomic": "true",
86
86
  className: chunkZS5756ZC_js.cn(
87
87
  "relative",
88
- chunkKEKNNZD3_js.toastRootVariants({ appearance, size }),
88
+ chunkOLEMP2HL_js.toastRootVariants({ appearance, size }),
89
89
  className
90
90
  ),
91
91
  initial: animation === "none" ? false : motionProps.initial,
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { ToastStoreContext, ToastTitle, ToastDescription, ToastClose, toastViewportVariants, toastRootVariants } from '../../chunk-4LT2GNJL.mjs';
2
+ import { ToastStoreContext, ToastTitle, ToastDescription, ToastClose, toastViewportVariants, toastRootVariants } from '../../chunk-INMNX3HQ.mjs';
3
3
  import { cn } from '../../chunk-4D54YOL6.mjs';
4
4
  import { AnimatePresence, motion } from 'framer-motion';
5
5
  import { useContext } from 'react';
@@ -2,7 +2,7 @@ export declare const toastViewportVariants: (props?: ({
2
2
  position?: "top-left" | "top-center" | "top-right" | "bottom-left" | "bottom-center" | "bottom-right" | null | undefined;
3
3
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
4
4
  export declare const toastRootVariants: (props?: ({
5
- appearance?: "error" | "default" | "ghost" | "emerald" | "indigo" | "purple" | "pink" | "teal" | "yellow" | "orange" | "gray" | "amber" | "violet" | "gradient-blue" | "gradient-green" | "gradient-red" | "gradient-yellow" | "gradient-purple" | "gradient-teal" | "gradient-indigo" | "gradient-pink" | "gradient-orange" | "success" | "warning" | "info" | null | undefined;
5
+ appearance?: "default" | "emerald" | "violet" | "amber" | "gray" | "indigo" | "orange" | "pink" | "purple" | "teal" | "yellow" | "error" | "ghost" | "gradient-blue" | "gradient-green" | "gradient-red" | "gradient-yellow" | "gradient-purple" | "gradient-teal" | "gradient-indigo" | "gradient-pink" | "gradient-orange" | "success" | "warning" | "info" | null | undefined;
6
6
  size?: "sm" | "md" | "lg" | null | undefined;
7
7
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
8
8
  //# sourceMappingURL=variants.d.ts.map
package/dist/ui/toast.js CHANGED
@@ -1,54 +1,54 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkKEKNNZD3_js = require('../chunk-KEKNNZD3.js');
4
+ var chunkOLEMP2HL_js = require('../chunk-OLEMP2HL.js');
5
5
  require('../chunk-ZS5756ZC.js');
6
6
 
7
7
 
8
8
 
9
9
  Object.defineProperty(exports, "Toast", {
10
10
  enumerable: true,
11
- get: function () { return chunkKEKNNZD3_js.Toast; }
11
+ get: function () { return chunkOLEMP2HL_js.Toast; }
12
12
  });
13
13
  Object.defineProperty(exports, "ToastAction", {
14
14
  enumerable: true,
15
- get: function () { return chunkKEKNNZD3_js.ToastAction; }
15
+ get: function () { return chunkOLEMP2HL_js.ToastAction; }
16
16
  });
17
17
  Object.defineProperty(exports, "ToastClose", {
18
18
  enumerable: true,
19
- get: function () { return chunkKEKNNZD3_js.ToastClose; }
19
+ get: function () { return chunkOLEMP2HL_js.ToastClose; }
20
20
  });
21
21
  Object.defineProperty(exports, "ToastDescription", {
22
22
  enumerable: true,
23
- get: function () { return chunkKEKNNZD3_js.ToastDescription; }
23
+ get: function () { return chunkOLEMP2HL_js.ToastDescription; }
24
24
  });
25
25
  Object.defineProperty(exports, "ToastProvider", {
26
26
  enumerable: true,
27
- get: function () { return chunkKEKNNZD3_js.ToastProvider; }
27
+ get: function () { return chunkOLEMP2HL_js.ToastProvider; }
28
28
  });
29
29
  Object.defineProperty(exports, "ToastTitle", {
30
30
  enumerable: true,
31
- get: function () { return chunkKEKNNZD3_js.ToastTitle; }
31
+ get: function () { return chunkOLEMP2HL_js.ToastTitle; }
32
32
  });
33
33
  Object.defineProperty(exports, "ToastViewport", {
34
34
  enumerable: true,
35
- get: function () { return chunkKEKNNZD3_js.ToastViewport; }
35
+ get: function () { return chunkOLEMP2HL_js.ToastViewport; }
36
36
  });
37
37
  Object.defineProperty(exports, "toast", {
38
38
  enumerable: true,
39
- get: function () { return chunkKEKNNZD3_js.toast; }
39
+ get: function () { return chunkOLEMP2HL_js.toast; }
40
40
  });
41
41
  Object.defineProperty(exports, "toastRootVariants", {
42
42
  enumerable: true,
43
- get: function () { return chunkKEKNNZD3_js.toastRootVariants; }
43
+ get: function () { return chunkOLEMP2HL_js.toastRootVariants; }
44
44
  });
45
45
  Object.defineProperty(exports, "toastViewportVariants", {
46
46
  enumerable: true,
47
- get: function () { return chunkKEKNNZD3_js.toastViewportVariants; }
47
+ get: function () { return chunkOLEMP2HL_js.toastViewportVariants; }
48
48
  });
49
49
  Object.defineProperty(exports, "useToast", {
50
50
  enumerable: true,
51
- get: function () { return chunkKEKNNZD3_js.useToast; }
51
+ get: function () { return chunkOLEMP2HL_js.useToast; }
52
52
  });
53
53
  //# sourceMappingURL=toast.js.map
54
54
  //# sourceMappingURL=toast.js.map
package/dist/ui/toast.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- export { Toast, ToastAction, ToastClose, ToastDescription, ToastProvider, ToastTitle, ToastViewport, toast, toastRootVariants, toastViewportVariants, useToast } from '../chunk-4LT2GNJL.mjs';
2
+ export { Toast, ToastAction, ToastClose, ToastDescription, ToastProvider, ToastTitle, ToastViewport, toast, toastRootVariants, toastViewportVariants, useToast } from '../chunk-INMNX3HQ.mjs';
3
3
  import '../chunk-4D54YOL6.mjs';
4
4
  //# sourceMappingURL=toast.mjs.map
5
5
  //# sourceMappingURL=toast.mjs.map
@@ -1,6 +1,6 @@
1
1
  export declare const toggleTrackVariants: (props?: ({
2
2
  size?: "sm" | "md" | "lg" | null | undefined;
3
- appearance?: "default" | "destructive" | "emerald" | "indigo" | "purple" | "pink" | "rose" | "teal" | "yellow" | "orange" | "gray" | "gradient-blue" | "gradient-green" | "gradient-red" | "gradient-yellow" | "gradient-purple" | "gradient-teal" | "gradient-indigo" | "gradient-pink" | "gradient-orange" | "success" | "cyan" | "green" | "lime" | "neutral" | "slate" | "zinc" | "stone" | null | undefined;
3
+ appearance?: "default" | "emerald" | "rose" | "slate" | "gray" | "indigo" | "cyan" | "green" | "lime" | "orange" | "pink" | "purple" | "teal" | "yellow" | "destructive" | "gradient-blue" | "gradient-green" | "gradient-red" | "gradient-yellow" | "gradient-purple" | "gradient-teal" | "gradient-indigo" | "gradient-pink" | "gradient-orange" | "success" | "neutral" | "zinc" | "stone" | null | undefined;
4
4
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
5
5
  export declare const toggleThumbVariants: (props?: ({
6
6
  size?: "sm" | "md" | "lg" | null | undefined;
@@ -1,5 +1,5 @@
1
1
  export declare const tooltipVariants: (props?: ({
2
- variant?: "default" | "outline" | "ghost" | "glass" | "emerald" | "indigo" | "purple" | "pink" | "rose" | "sky" | "teal" | "yellow" | "orange" | "gradient-blue" | "gradient-green" | "gradient-red" | "gradient-yellow" | "gradient-purple" | "gradient-teal" | "gradient-indigo" | "gradient-pink" | "gradient-orange" | "green" | null | undefined;
2
+ variant?: "default" | "outline" | "glass" | "sky" | "emerald" | "rose" | "indigo" | "green" | "orange" | "pink" | "purple" | "teal" | "yellow" | "ghost" | "gradient-blue" | "gradient-green" | "gradient-red" | "gradient-yellow" | "gradient-purple" | "gradient-teal" | "gradient-indigo" | "gradient-pink" | "gradient-orange" | null | undefined;
3
3
  size?: "sm" | "md" | "lg" | null | undefined;
4
4
  width?: "sm" | "md" | "lg" | "xl" | "2xl" | "xs" | "fit" | null | undefined;
5
5
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
@@ -1,16 +1,16 @@
1
1
  /** Semantic text colors aligned with slate/cyan/violet accents used across the kit (dark-first). */
2
2
  export declare const typographyToneVariants: (props?: ({
3
- tone?: "error" | "default" | "secondary" | "destructive" | "success" | "warning" | "info" | "muted" | "primary" | "accent" | "gradient-pink-violet" | "gradient-cyan-violet" | "gradient-cyan-blue" | "gradient-cyan-green" | "gradient-cyan-orange" | "gradient-cyan-red" | "gradient-cyan-purple" | "gradient-cyan-pink" | null | undefined;
3
+ tone?: "default" | "muted" | "gradient-cyan-violet" | "gradient-cyan-blue" | "error" | "secondary" | "destructive" | "success" | "warning" | "info" | "primary" | "accent" | "gradient-pink-violet" | "gradient-cyan-green" | "gradient-cyan-orange" | "gradient-cyan-red" | "gradient-cyan-purple" | "gradient-cyan-pink" | null | undefined;
4
4
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
5
5
  export declare const headingLevelVariants: (props?: ({
6
- level?: 1 | 2 | 3 | 4 | 6 | 5 | null | undefined;
6
+ level?: 1 | 2 | 4 | 6 | 5 | 3 | null | undefined;
7
7
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
8
8
  export declare const textSizeVariants: (props?: ({
9
9
  size?: "base" | "sm" | "lg" | null | undefined;
10
10
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
11
11
  /** Marker style for unordered lists; ignored when `ordered` is true (decimal numbering). */
12
12
  export declare const unorderedListMarkerVariants: (props?: ({
13
- marker?: "circle" | "none" | "disc" | null | undefined;
13
+ marker?: "none" | "circle" | "disc" | null | undefined;
14
14
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
15
15
  export declare const orderedListVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
16
16
  //# sourceMappingURL=variants.d.ts.map
package/package.json CHANGED
@@ -1,9 +1,16 @@
1
1
  {
2
2
  "name": "@zentauri-ui/zentauri-components",
3
- "version": "1.4.63",
4
- "description": "React + Tailwind UI kit with ESM/CJS builds, per-entry exports, and a zentauri-components / zentauri-ui CLI to vendor UI or hook source into your app",
3
+ "version": "1.4.70",
4
+ "description": "React + Tailwind UI kit with charts, ESM/CJS builds, per-entry exports, and a zentauri-components / zentauri-ui CLI to vendor UI or hook source into your app",
5
5
  "license": "MIT",
6
- "files": ["dist", "src/ui", "src/lib", "src/hooks", "cli"],
6
+ "files": [
7
+ "dist",
8
+ "src/ui",
9
+ "src/charts",
10
+ "src/lib",
11
+ "src/hooks",
12
+ "cli"
13
+ ],
7
14
  "sideEffects": false,
8
15
  "bin": {
9
16
  "zentauri-components": "cli/index.mjs",
@@ -23,6 +30,11 @@
23
30
  "import": "./dist/ui/*/animated.mjs",
24
31
  "require": "./dist/ui/*/animated.js"
25
32
  },
33
+ "./charts/*": {
34
+ "types": "./dist/charts/*/index.d.ts",
35
+ "import": "./dist/charts/*.mjs",
36
+ "require": "./dist/charts/*.js"
37
+ },
26
38
  "./hooks/utils": {
27
39
  "types": "./dist/lib/utils.d.ts",
28
40
  "import": "./dist/hooks/utils.mjs",
@@ -45,17 +57,25 @@
45
57
  "test:watch": "vitest"
46
58
  },
47
59
  "peerDependencies": {
48
- "react": ">18",
49
- "react-dom": ">18",
50
60
  "class-variance-authority": "*",
51
61
  "clsx": "*",
52
- "tailwind-merge": "*",
53
62
  "framer-motion": "*",
54
- "react-icons": "*"
63
+ "react": ">18",
64
+ "react-dom": ">18",
65
+ "react-icons": "*",
66
+ "recharts": "*",
67
+ "tailwind-merge": "*"
55
68
  },
56
69
  "peerDependenciesMeta": {
57
- "framer-motion": { "optional": true },
58
- "react-icons": { "optional": true }
70
+ "framer-motion": {
71
+ "optional": true
72
+ },
73
+ "react-icons": {
74
+ "optional": true
75
+ },
76
+ "recharts": {
77
+ "optional": true
78
+ }
59
79
  },
60
80
  "devDependencies": {
61
81
  "@repo/typescript-config": "workspace:*",
@@ -66,8 +86,8 @@
66
86
  "@types/react": "^19",
67
87
  "@types/react-dom": "^19",
68
88
  "jsdom": "^26.1.0",
89
+ "tsup": "^8.5.1",
69
90
  "typescript": "^5",
70
- "vitest": "^4.1.4",
71
- "tsup": "^8.5.1"
91
+ "vitest": "^4.1.4"
72
92
  }
73
- }
93
+ }
@@ -0,0 +1,103 @@
1
+ "use client";
2
+
3
+ import { Area, AreaChart as RechartsAreaChart, XAxis, YAxis } from "recharts";
4
+
5
+ import {
6
+ ChartDecorators,
7
+ ChartFrame,
8
+ defaultChartMargin,
9
+ } from "../shared/chart-frame";
10
+ import { getSeriesFill, resolveColor } from "../shared/colors";
11
+ import type { AreaChartProps } from "../shared/types";
12
+
13
+ export function AreaChart<
14
+ TDatum extends Record<string, number | string | null | undefined>,
15
+ >({
16
+ appearance,
17
+ className,
18
+ containerStyle,
19
+ data,
20
+ density,
21
+ emptyState = null,
22
+ height = 320,
23
+ margin = defaultChartMargin,
24
+ series,
25
+ showGrid = true,
26
+ showLegend = false,
27
+ showTooltip = true,
28
+ tooltipColor = "#0f172a",
29
+ stacked = false,
30
+ style,
31
+ syncId,
32
+ xKey,
33
+ ...props
34
+ }: AreaChartProps<TDatum>) {
35
+ const hasData = data.length > 0 && series.length > 0;
36
+ const xAxisKey = String(xKey);
37
+
38
+ return (
39
+ <ChartFrame
40
+ appearance={appearance}
41
+ className={className}
42
+ containerStyle={containerStyle}
43
+ density={density}
44
+ emptyState={emptyState}
45
+ hasData={hasData}
46
+ height={height}
47
+ style={style}
48
+ {...props}
49
+ >
50
+ <RechartsAreaChart data={data} margin={margin} syncId={syncId}>
51
+ <ChartDecorators
52
+ axis={
53
+ <>
54
+ <XAxis
55
+ dataKey={xAxisKey}
56
+ minTickGap={24}
57
+ tickLine={false}
58
+ tickMargin={10}
59
+ axisLine={false}
60
+ fontSize={12}
61
+ fill="#ffffff"
62
+ color="#ffffff"
63
+ />
64
+ <YAxis
65
+ width={40}
66
+ tickLine={false}
67
+ tickMargin={8}
68
+ axisLine={false}
69
+ fontSize={12}
70
+ fill="#ffffff"
71
+ color="#ffffff"
72
+ />
73
+ </>
74
+ }
75
+ showGrid={showGrid}
76
+ showLegend={showLegend}
77
+ showTooltip={showTooltip}
78
+ tooltipColor={tooltipColor}
79
+ />
80
+ {series.map((item, index) => {
81
+ const color = resolveColor(item.color, index);
82
+ const fill = getSeriesFill(item, index)
83
+ console.log(fill)
84
+ return (
85
+ <Area
86
+ key={item.dataKey}
87
+ type="monotone"
88
+ dataKey={item.dataKey}
89
+ name={item.name}
90
+ stackId={stacked ? (item.stackId ?? "stack") : item.stackId}
91
+ stroke={color.stroke}
92
+ fill={fill}
93
+ fillOpacity={1}
94
+ strokeWidth={2}
95
+ />
96
+ );
97
+ })}
98
+ </RechartsAreaChart>
99
+ </ChartFrame>
100
+ );
101
+ }
102
+
103
+ AreaChart.displayName = "AreaChart";
@@ -0,0 +1,9 @@
1
+ "use client";
2
+
3
+ export { AreaChart } from "./Area";
4
+ export type { AreaChartProps } from "../shared/types";
5
+ export {
6
+ chartColorValues,
7
+ chartPalette,
8
+ chartVariants,
9
+ } from "../shared/variants";