@axtec/components 0.1.3 → 0.1.5

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 (64) hide show
  1. package/dist/components/PrimaryCard/PrimaryCard.d.ts +24 -0
  2. package/dist/components/PrimaryCard/index.d.ts +1 -0
  3. package/dist/components/Sidebar/Sidebar.d.ts +101 -0
  4. package/dist/components/Sidebar/index.d.ts +1 -0
  5. package/dist/components/index.d.ts +2 -0
  6. package/dist/index.css +1 -1
  7. package/dist/index.js +123 -111
  8. package/dist/index.js.map +1 -1
  9. package/dist/index3.js +2 -2
  10. package/dist/index48.js +44 -56
  11. package/dist/index48.js.map +1 -1
  12. package/dist/index49.js +56 -16
  13. package/dist/index49.js.map +1 -1
  14. package/dist/index50.js +16 -65
  15. package/dist/index50.js.map +1 -1
  16. package/dist/index51.js +62 -51
  17. package/dist/index51.js.map +1 -1
  18. package/dist/index52.js +54 -37
  19. package/dist/index52.js.map +1 -1
  20. package/dist/index53.js +37 -66
  21. package/dist/index53.js.map +1 -1
  22. package/dist/index54.js +63 -19
  23. package/dist/index54.js.map +1 -1
  24. package/dist/index55.js +19 -101
  25. package/dist/index55.js.map +1 -1
  26. package/dist/index56.js +100 -64
  27. package/dist/index56.js.map +1 -1
  28. package/dist/index57.js +206 -224
  29. package/dist/index57.js.map +1 -1
  30. package/dist/index58.js +62 -96
  31. package/dist/index58.js.map +1 -1
  32. package/dist/index59.js +233 -33
  33. package/dist/index59.js.map +1 -1
  34. package/dist/index60.js +98 -14
  35. package/dist/index60.js.map +1 -1
  36. package/dist/index61.js +35 -59
  37. package/dist/index61.js.map +1 -1
  38. package/dist/index62.js +16 -59
  39. package/dist/index62.js.map +1 -1
  40. package/dist/index63.js +57 -72
  41. package/dist/index63.js.map +1 -1
  42. package/dist/index64.js +58 -106
  43. package/dist/index64.js.map +1 -1
  44. package/dist/index65.js +70 -43
  45. package/dist/index65.js.map +1 -1
  46. package/dist/index66.js +101 -40
  47. package/dist/index66.js.map +1 -1
  48. package/dist/index67.js +44 -72
  49. package/dist/index67.js.map +1 -1
  50. package/dist/index68.js +47 -53
  51. package/dist/index68.js.map +1 -1
  52. package/dist/index69.js +70 -62
  53. package/dist/index69.js.map +1 -1
  54. package/dist/index70.js +46 -28
  55. package/dist/index70.js.map +1 -1
  56. package/dist/index71.js +67 -13
  57. package/dist/index71.js.map +1 -1
  58. package/dist/index72.js +35 -2263
  59. package/dist/index72.js.map +1 -1
  60. package/dist/index73.js +17 -0
  61. package/dist/index73.js.map +1 -0
  62. package/dist/index74.js +2267 -0
  63. package/dist/index74.js.map +1 -0
  64. package/package.json +1 -1
package/dist/index58.js CHANGED
@@ -1,105 +1,71 @@
1
- import { jsx as g, jsxs as s } from "react/jsx-runtime";
2
- import { cn as t } from "./index3.js";
3
- const i = {
4
- // Heat levels (lead scoring)
5
- hot: {
6
- color: "bg-red-500",
7
- text: "text-red-600",
8
- label: "Hot"
9
- },
10
- warm: {
11
- color: "bg-orange-500",
12
- text: "text-orange-600",
13
- label: "Warm"
14
- },
15
- neutral: {
16
- color: "bg-emerald-500",
17
- text: "text-emerald-600",
18
- label: "Neutral"
19
- },
20
- cold: {
21
- color: "bg-sky-500",
22
- text: "text-sky-600",
23
- label: "Cold"
24
- },
25
- // Confidence levels
26
- high: {
27
- color: "bg-green-500",
28
- text: "text-green-600",
29
- label: "High"
30
- },
31
- medium: {
32
- color: "bg-amber-500",
33
- text: "text-amber-600",
34
- label: "Medium"
35
- },
36
- low: {
37
- color: "bg-red-500",
38
- text: "text-red-600",
39
- label: "Low"
40
- }
41
- }, m = {
42
- sm: {
43
- dot: "w-1.5 h-1.5",
44
- text: "text-xs",
45
- gap: "gap-1.5"
46
- },
47
- md: {
48
- dot: "w-2 h-2",
49
- text: "text-sm",
50
- gap: "gap-2"
51
- }
52
- }, f = ({
53
- level: r,
54
- label: o,
55
- variant: a = "default",
56
- size: d = "sm",
57
- className: l
58
- }) => {
59
- const e = i[r], n = m[d];
60
- return a === "dot" ? /* @__PURE__ */ g(
1
+ import { jsx as t, jsxs as a } from "react/jsx-runtime";
2
+ import { cn as u } from "./index3.js";
3
+ function c({
4
+ variant: e = "text",
5
+ width: r,
6
+ height: l,
7
+ className: n
8
+ }) {
9
+ const o = {
10
+ width: typeof r == "number" ? `${r}px` : r,
11
+ height: typeof l == "number" ? `${l}px` : l
12
+ };
13
+ return /* @__PURE__ */ t(
61
14
  "div",
62
15
  {
63
- className: t("rounded-full", n.dot, e.color, l),
64
- title: o || e.label
16
+ className: u(
17
+ "animate-pulse bg-slate-200",
18
+ e === "text" && "h-4 rounded",
19
+ e === "circular" && "rounded-full",
20
+ e === "rectangular" && "rounded-lg",
21
+ !r && e === "text" && "w-full",
22
+ !r && e === "circular" && "w-10",
23
+ !l && e === "circular" && "h-10",
24
+ !r && e === "rectangular" && "w-full",
25
+ !l && e === "rectangular" && "h-20",
26
+ n
27
+ ),
28
+ style: o
65
29
  }
66
- ) : /* @__PURE__ */ s("div", { className: t("flex items-center", n.gap, l), children: [
67
- /* @__PURE__ */ g("div", { className: t("rounded-full", n.dot, e.color) }),
68
- /* @__PURE__ */ g("span", { className: t("font-medium", n.text, e.text), children: o || e.label })
69
- ] });
70
- }, x = {
71
- hot: "bg-red-100 text-red-700 ring-1 ring-red-600/20",
72
- warm: "bg-orange-100 text-orange-700 ring-1 ring-orange-600/20",
73
- neutral: "bg-emerald-100 text-emerald-700 ring-1 ring-emerald-600/20",
74
- cold: "bg-sky-100 text-sky-700 ring-1 ring-sky-600/20",
75
- high: "bg-green-100 text-green-700 ring-1 ring-green-600/20",
76
- medium: "bg-amber-100 text-amber-700 ring-1 ring-amber-600/20",
77
- low: "bg-red-100 text-red-700 ring-1 ring-red-600/20"
78
- }, c = {
79
- sm: "px-2 py-0.5 text-xs",
80
- md: "px-2.5 py-1 text-sm"
81
- }, p = ({
82
- level: r,
83
- label: o,
84
- size: a = "sm",
85
- className: d
86
- }) => {
87
- const l = i[r];
88
- return /* @__PURE__ */ g(
89
- "span",
30
+ );
31
+ }
32
+ function d({ lines: e = 3, className: r }) {
33
+ return /* @__PURE__ */ t("div", { className: u("space-y-2", r), children: Array.from({ length: e }).map((l, n) => /* @__PURE__ */ t(
34
+ c,
90
35
  {
91
- className: t(
92
- "inline-flex items-center font-medium rounded-full",
93
- x[r],
94
- c[a],
95
- d
96
- ),
97
- children: o || l.label
36
+ variant: "text",
37
+ width: n === e - 1 ? "60%" : "100%"
38
+ },
39
+ n
40
+ )) });
41
+ }
42
+ function s({ size: e = 40, className: r }) {
43
+ return /* @__PURE__ */ t(
44
+ c,
45
+ {
46
+ variant: "circular",
47
+ width: e,
48
+ height: e,
49
+ className: r
98
50
  }
99
51
  );
100
- };
52
+ }
53
+ function f({ className: e }) {
54
+ return /* @__PURE__ */ a("div", { className: u("p-4 border border-slate-200 rounded-xl", e), children: [
55
+ /* @__PURE__ */ a("div", { className: "flex items-center gap-3 mb-4", children: [
56
+ /* @__PURE__ */ t(s, {}),
57
+ /* @__PURE__ */ a("div", { className: "flex-1 space-y-2", children: [
58
+ /* @__PURE__ */ t(c, { variant: "text", width: "40%" }),
59
+ /* @__PURE__ */ t(c, { variant: "text", width: "20%" })
60
+ ] })
61
+ ] }),
62
+ /* @__PURE__ */ t(d, { lines: 3 })
63
+ ] });
64
+ }
101
65
  export {
102
- p as StatusBadge,
103
- f as StatusIndicator
66
+ c as Skeleton,
67
+ s as SkeletonAvatar,
68
+ f as SkeletonCard,
69
+ d as SkeletonText
104
70
  };
105
71
  //# sourceMappingURL=index58.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index58.js","sources":["../src/components/StatusIndicator/StatusIndicator.tsx"],"sourcesContent":["import { cn } from '@/lib/utils'\n\nexport type StatusLevel = 'hot' | 'warm' | 'neutral' | 'cold' | 'high' | 'medium' | 'low'\n\nexport interface StatusIndicatorProps {\n /** The status level */\n level: StatusLevel\n /** Optional custom label (defaults based on level) */\n label?: string\n /** Show as dot + text (default) or just dot */\n variant?: 'default' | 'dot'\n /** Size of the indicator */\n size?: 'sm' | 'md'\n className?: string\n}\n\nconst levelConfig: Record<StatusLevel, { color: string; text: string; label: string }> = {\n // Heat levels (lead scoring)\n hot: {\n color: 'bg-red-500',\n text: 'text-red-600',\n label: 'Hot',\n },\n warm: {\n color: 'bg-orange-500',\n text: 'text-orange-600',\n label: 'Warm',\n },\n neutral: {\n color: 'bg-emerald-500',\n text: 'text-emerald-600',\n label: 'Neutral',\n },\n cold: {\n color: 'bg-sky-500',\n text: 'text-sky-600',\n label: 'Cold',\n },\n // Confidence levels\n high: {\n color: 'bg-green-500',\n text: 'text-green-600',\n label: 'High',\n },\n medium: {\n color: 'bg-amber-500',\n text: 'text-amber-600',\n label: 'Medium',\n },\n low: {\n color: 'bg-red-500',\n text: 'text-red-600',\n label: 'Low',\n },\n}\n\nconst sizeStyles = {\n sm: {\n dot: 'w-1.5 h-1.5',\n text: 'text-xs',\n gap: 'gap-1.5',\n },\n md: {\n dot: 'w-2 h-2',\n text: 'text-sm',\n gap: 'gap-2',\n },\n}\n\nexport const StatusIndicator = ({\n level,\n label,\n variant = 'default',\n size = 'sm',\n className,\n}: StatusIndicatorProps) => {\n const config = levelConfig[level]\n const sizes = sizeStyles[size]\n\n if (variant === 'dot') {\n return (\n <div\n className={cn('rounded-full', sizes.dot, config.color, className)}\n title={label || config.label}\n />\n )\n }\n\n return (\n <div className={cn('flex items-center', sizes.gap, className)}>\n <div className={cn('rounded-full', sizes.dot, config.color)} />\n <span className={cn('font-medium', sizes.text, config.text)}>\n {label || config.label}\n </span>\n </div>\n )\n}\n\n/** Badge variant for use in tables/lists */\nexport interface StatusBadgeProps {\n level: StatusLevel\n label?: string\n size?: 'sm' | 'md'\n className?: string\n}\n\nconst badgeConfig: Record<StatusLevel, string> = {\n hot: 'bg-red-100 text-red-700 ring-1 ring-red-600/20',\n warm: 'bg-orange-100 text-orange-700 ring-1 ring-orange-600/20',\n neutral: 'bg-emerald-100 text-emerald-700 ring-1 ring-emerald-600/20',\n cold: 'bg-sky-100 text-sky-700 ring-1 ring-sky-600/20',\n high: 'bg-green-100 text-green-700 ring-1 ring-green-600/20',\n medium: 'bg-amber-100 text-amber-700 ring-1 ring-amber-600/20',\n low: 'bg-red-100 text-red-700 ring-1 ring-red-600/20',\n}\n\nconst badgeSizeStyles = {\n sm: 'px-2 py-0.5 text-xs',\n md: 'px-2.5 py-1 text-sm',\n}\n\nexport const StatusBadge = ({\n level,\n label,\n size = 'sm',\n className,\n}: StatusBadgeProps) => {\n const config = levelConfig[level]\n\n return (\n <span\n className={cn(\n 'inline-flex items-center font-medium rounded-full',\n badgeConfig[level],\n badgeSizeStyles[size],\n className\n )}\n >\n {label || config.label}\n </span>\n )\n}\n"],"names":["levelConfig","sizeStyles","StatusIndicator","level","label","variant","size","className","config","sizes","jsx","cn","jsxs","badgeConfig","badgeSizeStyles","StatusBadge"],"mappings":";;AAgBA,MAAMA,IAAmF;AAAA;AAAA,EAEvF,KAAK;AAAA,IACH,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,EAAA;AAAA,EAET,MAAM;AAAA,IACJ,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,EAAA;AAAA,EAET,SAAS;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,EAAA;AAAA,EAET,MAAM;AAAA,IACJ,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,EAAA;AAAA;AAAA,EAGT,MAAM;AAAA,IACJ,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,EAAA;AAAA,EAET,QAAQ;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,EAAA;AAAA,EAET,KAAK;AAAA,IACH,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,EAAA;AAEX,GAEMC,IAAa;AAAA,EACjB,IAAI;AAAA,IACF,KAAK;AAAA,IACL,MAAM;AAAA,IACN,KAAK;AAAA,EAAA;AAAA,EAEP,IAAI;AAAA,IACF,KAAK;AAAA,IACL,MAAM;AAAA,IACN,KAAK;AAAA,EAAA;AAET,GAEaC,IAAkB,CAAC;AAAA,EAC9B,OAAAC;AAAA,EACA,OAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,MAAAC,IAAO;AAAA,EACP,WAAAC;AACF,MAA4B;AAC1B,QAAMC,IAASR,EAAYG,CAAK,GAC1BM,IAAQR,EAAWK,CAAI;AAE7B,SAAID,MAAY,QAEZ,gBAAAK;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC,EAAG,gBAAgBF,EAAM,KAAKD,EAAO,OAAOD,CAAS;AAAA,MAChE,OAAOH,KAASI,EAAO;AAAA,IAAA;AAAA,EAAA,IAM3B,gBAAAI,EAAC,SAAI,WAAWD,EAAG,qBAAqBF,EAAM,KAAKF,CAAS,GAC1D,UAAA;AAAA,IAAA,gBAAAG,EAAC,OAAA,EAAI,WAAWC,EAAG,gBAAgBF,EAAM,KAAKD,EAAO,KAAK,GAAG;AAAA,IAC7D,gBAAAE,EAAC,QAAA,EAAK,WAAWC,EAAG,eAAeF,EAAM,MAAMD,EAAO,IAAI,GACvD,UAAAJ,KAASI,EAAO,MAAA,CACnB;AAAA,EAAA,GACF;AAEJ,GAUMK,IAA2C;AAAA,EAC/C,KAAK;AAAA,EACL,MAAM;AAAA,EACN,SAAS;AAAA,EACT,MAAM;AAAA,EACN,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,KAAK;AACP,GAEMC,IAAkB;AAAA,EACtB,IAAI;AAAA,EACJ,IAAI;AACN,GAEaC,IAAc,CAAC;AAAA,EAC1B,OAAAZ;AAAA,EACA,OAAAC;AAAA,EACA,MAAAE,IAAO;AAAA,EACP,WAAAC;AACF,MAAwB;AACtB,QAAMC,IAASR,EAAYG,CAAK;AAEhC,SACE,gBAAAO;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAE,EAAYV,CAAK;AAAA,QACjBW,EAAgBR,CAAI;AAAA,QACpBC;AAAA,MAAA;AAAA,MAGD,eAASC,EAAO;AAAA,IAAA;AAAA,EAAA;AAGvB;"}
1
+ {"version":3,"file":"index58.js","sources":["../src/components/Skeleton/Skeleton.tsx"],"sourcesContent":["import { cn } from '@/lib/utils'\n\nexport interface SkeletonProps {\n variant?: 'text' | 'circular' | 'rectangular'\n width?: string | number\n height?: string | number\n className?: string\n}\n\nexport function Skeleton({\n variant = 'text',\n width,\n height,\n className,\n}: SkeletonProps) {\n const style: React.CSSProperties = {\n width: typeof width === 'number' ? `${width}px` : width,\n height: typeof height === 'number' ? `${height}px` : height,\n }\n\n return (\n <div\n className={cn(\n 'animate-pulse bg-slate-200',\n variant === 'text' && 'h-4 rounded',\n variant === 'circular' && 'rounded-full',\n variant === 'rectangular' && 'rounded-lg',\n !width && variant === 'text' && 'w-full',\n !width && variant === 'circular' && 'w-10',\n !height && variant === 'circular' && 'h-10',\n !width && variant === 'rectangular' && 'w-full',\n !height && variant === 'rectangular' && 'h-20',\n className\n )}\n style={style}\n />\n )\n}\n\n// Convenience components for common skeleton patterns\nexport function SkeletonText({ lines = 3, className }: { lines?: number; className?: string }) {\n return (\n <div className={cn('space-y-2', className)}>\n {Array.from({ length: lines }).map((_, i) => (\n <Skeleton\n key={i}\n variant=\"text\"\n width={i === lines - 1 ? '60%' : '100%'}\n />\n ))}\n </div>\n )\n}\n\nexport function SkeletonAvatar({ size = 40, className }: { size?: number; className?: string }) {\n return (\n <Skeleton\n variant=\"circular\"\n width={size}\n height={size}\n className={className}\n />\n )\n}\n\nexport function SkeletonCard({ className }: { className?: string }) {\n return (\n <div className={cn('p-4 border border-slate-200 rounded-xl', className)}>\n <div className=\"flex items-center gap-3 mb-4\">\n <SkeletonAvatar />\n <div className=\"flex-1 space-y-2\">\n <Skeleton variant=\"text\" width=\"40%\" />\n <Skeleton variant=\"text\" width=\"20%\" />\n </div>\n </div>\n <SkeletonText lines={3} />\n </div>\n )\n}\n"],"names":["Skeleton","variant","width","height","className","style","jsx","cn","SkeletonText","lines","_","i","SkeletonAvatar","size","SkeletonCard","jsxs"],"mappings":";;AASO,SAASA,EAAS;AAAA,EACvB,SAAAC,IAAU;AAAA,EACV,OAAAC;AAAA,EACA,QAAAC;AAAA,EACA,WAAAC;AACF,GAAkB;AAChB,QAAMC,IAA6B;AAAA,IACjC,OAAO,OAAOH,KAAU,WAAW,GAAGA,CAAK,OAAOA;AAAA,IAClD,QAAQ,OAAOC,KAAW,WAAW,GAAGA,CAAM,OAAOA;AAAA,EAAA;AAGvD,SACE,gBAAAG;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAN,MAAY,UAAU;AAAA,QACtBA,MAAY,cAAc;AAAA,QAC1BA,MAAY,iBAAiB;AAAA,QAC7B,CAACC,KAASD,MAAY,UAAU;AAAA,QAChC,CAACC,KAASD,MAAY,cAAc;AAAA,QACpC,CAACE,KAAUF,MAAY,cAAc;AAAA,QACrC,CAACC,KAASD,MAAY,iBAAiB;AAAA,QACvC,CAACE,KAAUF,MAAY,iBAAiB;AAAA,QACxCG;AAAA,MAAA;AAAA,MAEF,OAAAC;AAAA,IAAA;AAAA,EAAA;AAGN;AAGO,SAASG,EAAa,EAAE,OAAAC,IAAQ,GAAG,WAAAL,KAAqD;AAC7F,2BACG,OAAA,EAAI,WAAWG,EAAG,aAAaH,CAAS,GACtC,UAAA,MAAM,KAAK,EAAE,QAAQK,EAAA,CAAO,EAAE,IAAI,CAACC,GAAGC,MACrC,gBAAAL;AAAA,IAACN;AAAA,IAAA;AAAA,MAEC,SAAQ;AAAA,MACR,OAAOW,MAAMF,IAAQ,IAAI,QAAQ;AAAA,IAAA;AAAA,IAF5BE;AAAA,EAAA,CAIR,GACH;AAEJ;AAEO,SAASC,EAAe,EAAE,MAAAC,IAAO,IAAI,WAAAT,KAAoD;AAC9F,SACE,gBAAAE;AAAA,IAACN;AAAA,IAAA;AAAA,MACC,SAAQ;AAAA,MACR,OAAOa;AAAA,MACP,QAAQA;AAAA,MACR,WAAAT;AAAA,IAAA;AAAA,EAAA;AAGN;AAEO,SAASU,EAAa,EAAE,WAAAV,KAAqC;AAClE,2BACG,OAAA,EAAI,WAAWG,EAAG,0CAA0CH,CAAS,GACpE,UAAA;AAAA,IAAA,gBAAAW,EAAC,OAAA,EAAI,WAAU,gCACb,UAAA;AAAA,MAAA,gBAAAT,EAACM,GAAA,EAAe;AAAA,MAChB,gBAAAG,EAAC,OAAA,EAAI,WAAU,oBACb,UAAA;AAAA,QAAA,gBAAAT,EAACN,GAAA,EAAS,SAAQ,QAAO,OAAM,OAAM;AAAA,QACrC,gBAAAM,EAACN,GAAA,EAAS,SAAQ,QAAO,OAAM,MAAA,CAAM;AAAA,MAAA,EAAA,CACvC;AAAA,IAAA,GACF;AAAA,IACA,gBAAAM,EAACE,GAAA,EAAa,OAAO,EAAA,CAAG;AAAA,EAAA,GAC1B;AAEJ;"}
package/dist/index59.js CHANGED
@@ -1,39 +1,239 @@
1
- import { jsxs as c, jsx as r } from "react/jsx-runtime";
2
- import { cn as s } from "./index3.js";
3
- import { CheckIcon as p } from "@heroicons/react/24/outline";
4
- const l = ({
5
- text: a,
6
- isCompleted: t = !1,
7
- isDisabled: e = !1,
8
- height: n = 45,
9
- className: m
10
- }) => /* @__PURE__ */ c(
11
- "div",
12
- {
13
- className: s(
14
- "flex items-center justify-between px-4 rounded-md",
15
- !e && !t && "bg-primary-50",
16
- e && "bg-transparent",
17
- t && "bg-transparent",
18
- m
19
- ),
20
- style: { height: `${n}px` },
21
- children: [
22
- /* @__PURE__ */ r(
23
- "span",
24
- {
25
- className: s(
26
- "text-sm",
27
- e ? "text-slate-500" : "text-primary-500"
1
+ import { jsxs as s, jsx as e } from "react/jsx-runtime";
2
+ import { useState as q } from "react";
3
+ import { ResponsiveContainer as M, BarChart as E, CartesianGrid as w, XAxis as y, YAxis as b, Tooltip as T, Legend as L, Bar as F, Cell as P, LineChart as J, Line as z, ComposedChart as O } from "recharts";
4
+ import { cn as i } from "./index3.js";
5
+ const Q = (a) => a >= 1e6 ? `$${(a / 1e6).toFixed(1)}M` : a >= 1e3 ? `$${(a / 1e3).toFixed(0)}K` : `$${a}`, C = ({
6
+ data: a,
7
+ type: R = "bar",
8
+ height: g = 300,
9
+ primaryColor: v = "var(--color-primary-500, #1DA061)",
10
+ primaryColorHover: j = "var(--color-primary-700, #168a52)",
11
+ secondaryColor: f = "var(--color-primary-300, #6FCF97)",
12
+ showGrid: K = !0,
13
+ showLegend: W = !1,
14
+ showXAxis: N = !0,
15
+ showYAxis: D = !0,
16
+ valueFormatter: h = Q,
17
+ title: o,
18
+ subtitle: x,
19
+ headerColor: n,
20
+ interactive: m = !1,
21
+ onHover: p,
22
+ minimal: t = !1,
23
+ emptyMessage: V = "No data available",
24
+ className: S
25
+ }) => {
26
+ const [$, A] = q(-1), l = a.map((r) => ({
27
+ name: r.label,
28
+ value: r.value,
29
+ secondary: r.secondaryValue
30
+ })), B = (r) => {
31
+ m && r && typeof r.activeTooltipIndex == "number" && r.activeTooltipIndex !== $ && (A(r.activeTooltipIndex), p == null || p(r.activeTooltipIndex, a[r.activeTooltipIndex] || null));
32
+ }, _ = () => {
33
+ m && (A(-1), p == null || p(-1, null));
34
+ }, u = {
35
+ tick: { fontSize: 11, fill: "#64748b" },
36
+ axisLine: { stroke: "#e2e8f0" },
37
+ tickLine: { stroke: "#e2e8f0" }
38
+ }, k = {
39
+ hide: !0
40
+ };
41
+ if (!a || a.length === 0)
42
+ return /* @__PURE__ */ s("div", { className: i("w-full", S), children: [
43
+ (o || n) && /* @__PURE__ */ s(
44
+ "div",
45
+ {
46
+ className: i(
47
+ "px-5 py-4 rounded-t-2xl",
48
+ n ? "text-white" : "bg-slate-100"
49
+ ),
50
+ style: n ? { backgroundColor: n } : void 0,
51
+ children: [
52
+ o && /* @__PURE__ */ e("h3", { className: "text-lg font-bold", children: o }),
53
+ x && /* @__PURE__ */ e("p", { className: i("text-xs", n ? "opacity-80" : "text-slate-500"), children: x })
54
+ ]
55
+ }
56
+ ),
57
+ /* @__PURE__ */ e(
58
+ "div",
59
+ {
60
+ className: i(
61
+ "flex items-center justify-center bg-slate-50 rounded-xl",
62
+ o || n ? "rounded-t-none" : ""
63
+ ),
64
+ style: { height: g },
65
+ children: /* @__PURE__ */ e("p", { className: "text-slate-500 text-sm", children: V })
66
+ }
67
+ )
68
+ ] });
69
+ const I = () => {
70
+ const r = t ? { top: 5, right: 5, left: 5, bottom: 5 } : { top: 20, right: 20, left: 20, bottom: N ? 60 : 20 };
71
+ return R === "bar" ? /* @__PURE__ */ s(
72
+ E,
73
+ {
74
+ data: l,
75
+ margin: r,
76
+ onMouseMove: B,
77
+ onMouseLeave: _,
78
+ children: [
79
+ K && !t && /* @__PURE__ */ e(w, { strokeDasharray: "3 3", stroke: "#f1f5f9" }),
80
+ N && !t && /* @__PURE__ */ e(
81
+ y,
82
+ {
83
+ dataKey: "name",
84
+ ...u,
85
+ angle: -45,
86
+ textAnchor: "end",
87
+ interval: 0
88
+ }
28
89
  ),
29
- children: a
90
+ t && /* @__PURE__ */ e(y, { ...k }),
91
+ D && !t && /* @__PURE__ */ e(b, { ...u, tickFormatter: h }),
92
+ t && /* @__PURE__ */ e(b, { ...k }),
93
+ !t && /* @__PURE__ */ e(
94
+ T,
95
+ {
96
+ formatter: (d) => [h(Number(d) || 0), "Value"],
97
+ contentStyle: {
98
+ backgroundColor: "white",
99
+ border: "1px solid #e2e8f0",
100
+ borderRadius: "8px",
101
+ fontSize: "12px"
102
+ }
103
+ }
104
+ ),
105
+ W && /* @__PURE__ */ e(L, {}),
106
+ /* @__PURE__ */ e(F, { dataKey: "value", radius: [4, 4, 0, 0], children: l.map((d, c) => /* @__PURE__ */ e(
107
+ P,
108
+ {
109
+ fill: m && $ === c ? j : v
110
+ },
111
+ `cell-${c}`
112
+ )) })
113
+ ]
114
+ }
115
+ ) : R === "line" ? /* @__PURE__ */ s(J, { data: l, margin: r, children: [
116
+ K && !t && /* @__PURE__ */ e(w, { strokeDasharray: "3 3", stroke: "#f1f5f9" }),
117
+ N && !t && /* @__PURE__ */ e(
118
+ y,
119
+ {
120
+ dataKey: "name",
121
+ ...u,
122
+ angle: -45,
123
+ textAnchor: "end",
124
+ interval: 0
30
125
  }
31
126
  ),
32
- t && /* @__PURE__ */ r(p, { className: "w-5 h-5 text-slate-900" })
33
- ]
34
- }
35
- );
127
+ t && /* @__PURE__ */ e(y, { ...k }),
128
+ D && !t && /* @__PURE__ */ e(b, { ...u, tickFormatter: h }),
129
+ t && /* @__PURE__ */ e(b, { ...k }),
130
+ !t && /* @__PURE__ */ e(
131
+ T,
132
+ {
133
+ formatter: (d) => [h(Number(d) || 0), "Value"],
134
+ contentStyle: {
135
+ backgroundColor: "white",
136
+ border: "1px solid #e2e8f0",
137
+ borderRadius: "8px",
138
+ fontSize: "12px"
139
+ }
140
+ }
141
+ ),
142
+ W && /* @__PURE__ */ e(L, {}),
143
+ /* @__PURE__ */ e(
144
+ z,
145
+ {
146
+ type: "monotone",
147
+ dataKey: "value",
148
+ stroke: v,
149
+ strokeWidth: 2,
150
+ dot: { fill: v, strokeWidth: 2, r: 4 },
151
+ activeDot: { r: 6, stroke: v, strokeWidth: 2, fill: "#fff" }
152
+ }
153
+ ),
154
+ l.some((d) => d.secondary !== void 0) && /* @__PURE__ */ e(
155
+ z,
156
+ {
157
+ type: "monotone",
158
+ dataKey: "secondary",
159
+ stroke: f,
160
+ strokeWidth: 2,
161
+ dot: { fill: f, strokeWidth: 2, r: 4 },
162
+ activeDot: { r: 6, stroke: f, strokeWidth: 2, fill: "#fff" }
163
+ }
164
+ )
165
+ ] }) : /* @__PURE__ */ s(O, { data: l, margin: r, children: [
166
+ K && !t && /* @__PURE__ */ e(w, { strokeDasharray: "3 3", stroke: "#f1f5f9" }),
167
+ N && !t && /* @__PURE__ */ e(
168
+ y,
169
+ {
170
+ dataKey: "name",
171
+ ...u,
172
+ angle: -45,
173
+ textAnchor: "end",
174
+ interval: 0
175
+ }
176
+ ),
177
+ t && /* @__PURE__ */ e(y, { ...k }),
178
+ D && !t && /* @__PURE__ */ e(b, { ...u, tickFormatter: h }),
179
+ t && /* @__PURE__ */ e(b, { ...k }),
180
+ !t && /* @__PURE__ */ e(
181
+ T,
182
+ {
183
+ formatter: (d, c) => [
184
+ h(Number(d)),
185
+ c === "value" ? "Primary" : "Secondary"
186
+ ],
187
+ contentStyle: {
188
+ backgroundColor: "white",
189
+ border: "1px solid #e2e8f0",
190
+ borderRadius: "8px",
191
+ fontSize: "12px"
192
+ }
193
+ }
194
+ ),
195
+ W && /* @__PURE__ */ e(L, {}),
196
+ /* @__PURE__ */ e(F, { dataKey: "value", radius: [4, 4, 0, 0], children: l.map((d, c) => /* @__PURE__ */ e(
197
+ P,
198
+ {
199
+ fill: m && $ === c ? j : v
200
+ },
201
+ `cell-${c}`
202
+ )) }),
203
+ l.some((d) => d.secondary !== void 0) && /* @__PURE__ */ e(
204
+ z,
205
+ {
206
+ type: "monotone",
207
+ dataKey: "secondary",
208
+ stroke: f,
209
+ strokeWidth: 2,
210
+ dot: { fill: f, strokeWidth: 2, r: 4 },
211
+ activeDot: { r: 6, stroke: f, strokeWidth: 2, fill: "#fff" }
212
+ }
213
+ )
214
+ ] });
215
+ };
216
+ return n ? /* @__PURE__ */ s(
217
+ "div",
218
+ {
219
+ className: i("rounded-2xl overflow-hidden border border-slate-200 shadow-sm", S),
220
+ children: [
221
+ /* @__PURE__ */ s("div", { className: "px-5 py-4", style: { backgroundColor: n }, children: [
222
+ o && /* @__PURE__ */ e("h3", { className: "text-lg font-bold text-white", children: o }),
223
+ x && /* @__PURE__ */ e("p", { className: "text-xs text-white/80", children: x })
224
+ ] }),
225
+ /* @__PURE__ */ e("div", { className: "bg-white p-5", children: /* @__PURE__ */ e("div", { style: { height: g }, children: /* @__PURE__ */ e(M, { width: "100%", height: "100%", children: I() }) }) })
226
+ ]
227
+ }
228
+ ) : o ? /* @__PURE__ */ s("div", { className: i("w-full", S), children: [
229
+ /* @__PURE__ */ s("div", { className: "mb-4", children: [
230
+ /* @__PURE__ */ e("h3", { className: "text-lg font-semibold text-slate-900", children: o }),
231
+ x && /* @__PURE__ */ e("p", { className: "text-sm text-slate-500", children: x })
232
+ ] }),
233
+ /* @__PURE__ */ e("div", { style: { height: g }, children: /* @__PURE__ */ e(M, { width: "100%", height: "100%", children: I() }) })
234
+ ] }) : /* @__PURE__ */ e("div", { className: i("w-full", S), style: { height: g }, children: /* @__PURE__ */ e(M, { width: "100%", height: "100%", children: I() }) });
235
+ };
36
236
  export {
37
- l as StepList
237
+ C as StatisticsChart
38
238
  };
39
239
  //# sourceMappingURL=index59.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index59.js","sources":["../src/components/StepList/StepList.tsx"],"sourcesContent":["import { cn } from '@/lib/utils'\nimport { CheckIcon } from '@heroicons/react/24/outline'\n\nexport interface StepListProps {\n text: string\n isCompleted?: boolean\n isDisabled?: boolean\n height?: number\n className?: string\n}\n\nexport const StepList = ({\n text,\n isCompleted = false,\n isDisabled = false,\n height = 45,\n className,\n}: StepListProps) => {\n return (\n <div\n className={cn(\n 'flex items-center justify-between px-4 rounded-md',\n !isDisabled && !isCompleted && 'bg-primary-50',\n isDisabled && 'bg-transparent',\n isCompleted && 'bg-transparent',\n className\n )}\n style={{ height: `${height}px` }}\n >\n <span\n className={cn(\n 'text-sm',\n isDisabled ? 'text-slate-500' : 'text-primary-500'\n )}\n >\n {text}\n </span>\n {isCompleted && (\n <CheckIcon className=\"w-5 h-5 text-slate-900\" />\n )}\n </div>\n )\n}\n"],"names":["StepList","text","isCompleted","isDisabled","height","className","jsxs","cn","jsx","CheckIcon"],"mappings":";;;AAWO,MAAMA,IAAW,CAAC;AAAA,EACvB,MAAAC;AAAA,EACA,aAAAC,IAAc;AAAA,EACd,YAAAC,IAAa;AAAA,EACb,QAAAC,IAAS;AAAA,EACT,WAAAC;AACF,MAEI,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAWC;AAAA,MACT;AAAA,MACA,CAACJ,KAAc,CAACD,KAAe;AAAA,MAC/BC,KAAc;AAAA,MACdD,KAAe;AAAA,MACfG;AAAA,IAAA;AAAA,IAEF,OAAO,EAAE,QAAQ,GAAGD,CAAM,KAAA;AAAA,IAE1B,UAAA;AAAA,MAAA,gBAAAI;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAWD;AAAA,YACT;AAAA,YACAJ,IAAa,mBAAmB;AAAA,UAAA;AAAA,UAGjC,UAAAF;AAAA,QAAA;AAAA,MAAA;AAAA,MAEFC,KACC,gBAAAM,EAACC,GAAA,EAAU,WAAU,yBAAA,CAAyB;AAAA,IAAA;AAAA,EAAA;AAAA;"}
1
+ {"version":3,"file":"index59.js","sources":["../src/components/StatisticsChart/StatisticsChart.tsx"],"sourcesContent":["import { useState } from 'react'\nimport {\n BarChart,\n Bar,\n LineChart,\n Line,\n ComposedChart,\n XAxis,\n YAxis,\n CartesianGrid,\n Tooltip,\n ResponsiveContainer,\n Legend,\n Cell,\n} from 'recharts'\nimport { cn } from '@/lib/utils'\n\nexport interface StatisticsChartDataPoint {\n label: string\n value: number\n secondaryValue?: number\n}\n\nexport interface StatisticsChartProps {\n data: StatisticsChartDataPoint[]\n type?: 'bar' | 'line' | 'composed'\n /** Chart height in pixels */\n height?: number\n /** Primary color for bars/lines */\n primaryColor?: string\n /** Primary color on hover (for interactive mode) */\n primaryColorHover?: string\n /** Secondary color for second data series */\n secondaryColor?: string\n /** Show grid lines */\n showGrid?: boolean\n /** Show legend */\n showLegend?: boolean\n /** Show X axis */\n showXAxis?: boolean\n /** Show Y axis */\n showYAxis?: boolean\n /** Custom value formatter for tooltips and axis */\n valueFormatter?: (value: number) => string\n /** Chart title */\n title?: string\n /** Chart subtitle */\n subtitle?: string\n /** Header background color (creates a colored header block) */\n headerColor?: string\n /** Enable interactive hover mode (highlights bars, can trigger onHover) */\n interactive?: boolean\n /** Callback when hovering over a data point */\n onHover?: (index: number, dataPoint: StatisticsChartDataPoint | null) => void\n /** Minimal mode - no axes, compact display */\n minimal?: boolean\n /** Empty state message */\n emptyMessage?: string\n className?: string\n}\n\nconst defaultFormatter = (value: number) => {\n if (value >= 1000000) {\n return `$${(value / 1000000).toFixed(1)}M`\n } else if (value >= 1000) {\n return `$${(value / 1000).toFixed(0)}K`\n }\n return `$${value}`\n}\n\nexport const StatisticsChart = ({\n data,\n type = 'bar',\n height = 300,\n primaryColor = 'var(--color-primary-500, #1DA061)',\n primaryColorHover = 'var(--color-primary-700, #168a52)',\n secondaryColor = 'var(--color-primary-300, #6FCF97)',\n showGrid = true,\n showLegend = false,\n showXAxis = true,\n showYAxis = true,\n valueFormatter = defaultFormatter,\n title,\n subtitle,\n headerColor,\n interactive = false,\n onHover,\n minimal = false,\n emptyMessage = 'No data available',\n className,\n}: StatisticsChartProps) => {\n const [hoveredIndex, setHoveredIndex] = useState(-1)\n\n const chartData = data.map((item) => ({\n name: item.label,\n value: item.value,\n secondary: item.secondaryValue,\n }))\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const handleMouseMove = (e: any) => {\n if (interactive && e && typeof e.activeTooltipIndex === 'number') {\n if (e.activeTooltipIndex !== hoveredIndex) {\n setHoveredIndex(e.activeTooltipIndex)\n onHover?.(e.activeTooltipIndex, data[e.activeTooltipIndex] || null)\n }\n }\n }\n\n const handleMouseLeave = () => {\n if (interactive) {\n setHoveredIndex(-1)\n onHover?.(-1, null)\n }\n }\n\n const commonAxisProps = {\n tick: { fontSize: 11, fill: '#64748b' },\n axisLine: { stroke: '#e2e8f0' },\n tickLine: { stroke: '#e2e8f0' },\n }\n\n const minimalAxisProps = {\n hide: true,\n }\n\n // Empty state\n if (!data || data.length === 0) {\n return (\n <div className={cn('w-full', className)}>\n {(title || headerColor) && (\n <div\n className={cn(\n 'px-5 py-4 rounded-t-2xl',\n headerColor ? 'text-white' : 'bg-slate-100'\n )}\n style={headerColor ? { backgroundColor: headerColor } : undefined}\n >\n {title && <h3 className=\"text-lg font-bold\">{title}</h3>}\n {subtitle && (\n <p className={cn('text-xs', headerColor ? 'opacity-80' : 'text-slate-500')}>\n {subtitle}\n </p>\n )}\n </div>\n )}\n <div\n className={cn(\n 'flex items-center justify-center bg-slate-50 rounded-xl',\n title || headerColor ? 'rounded-t-none' : ''\n )}\n style={{ height }}\n >\n <p className=\"text-slate-500 text-sm\">{emptyMessage}</p>\n </div>\n </div>\n )\n }\n\n const renderChart = () => {\n const margin = minimal\n ? { top: 5, right: 5, left: 5, bottom: 5 }\n : { top: 20, right: 20, left: 20, bottom: showXAxis ? 60 : 20 }\n\n if (type === 'bar') {\n return (\n <BarChart\n data={chartData}\n margin={margin}\n onMouseMove={handleMouseMove}\n onMouseLeave={handleMouseLeave}\n >\n {showGrid && !minimal && <CartesianGrid strokeDasharray=\"3 3\" stroke=\"#f1f5f9\" />}\n {showXAxis && !minimal && (\n <XAxis\n dataKey=\"name\"\n {...commonAxisProps}\n angle={-45}\n textAnchor=\"end\"\n interval={0}\n />\n )}\n {minimal && <XAxis {...minimalAxisProps} />}\n {showYAxis && !minimal && (\n <YAxis {...commonAxisProps} tickFormatter={valueFormatter} />\n )}\n {minimal && <YAxis {...minimalAxisProps} />}\n {!minimal && (\n <Tooltip\n formatter={(value) => [valueFormatter(Number(value) || 0), 'Value']}\n contentStyle={{\n backgroundColor: 'white',\n border: '1px solid #e2e8f0',\n borderRadius: '8px',\n fontSize: '12px',\n }}\n />\n )}\n {showLegend && <Legend />}\n <Bar dataKey=\"value\" radius={[4, 4, 0, 0]}>\n {chartData.map((_, index) => (\n <Cell\n key={`cell-${index}`}\n fill={interactive && hoveredIndex === index ? primaryColorHover : primaryColor}\n />\n ))}\n </Bar>\n </BarChart>\n )\n }\n\n if (type === 'line') {\n return (\n <LineChart data={chartData} margin={margin}>\n {showGrid && !minimal && <CartesianGrid strokeDasharray=\"3 3\" stroke=\"#f1f5f9\" />}\n {showXAxis && !minimal && (\n <XAxis\n dataKey=\"name\"\n {...commonAxisProps}\n angle={-45}\n textAnchor=\"end\"\n interval={0}\n />\n )}\n {minimal && <XAxis {...minimalAxisProps} />}\n {showYAxis && !minimal && (\n <YAxis {...commonAxisProps} tickFormatter={valueFormatter} />\n )}\n {minimal && <YAxis {...minimalAxisProps} />}\n {!minimal && (\n <Tooltip\n formatter={(value) => [valueFormatter(Number(value) || 0), 'Value']}\n contentStyle={{\n backgroundColor: 'white',\n border: '1px solid #e2e8f0',\n borderRadius: '8px',\n fontSize: '12px',\n }}\n />\n )}\n {showLegend && <Legend />}\n <Line\n type=\"monotone\"\n dataKey=\"value\"\n stroke={primaryColor}\n strokeWidth={2}\n dot={{ fill: primaryColor, strokeWidth: 2, r: 4 }}\n activeDot={{ r: 6, stroke: primaryColor, strokeWidth: 2, fill: '#fff' }}\n />\n {chartData.some((d) => d.secondary !== undefined) && (\n <Line\n type=\"monotone\"\n dataKey=\"secondary\"\n stroke={secondaryColor}\n strokeWidth={2}\n dot={{ fill: secondaryColor, strokeWidth: 2, r: 4 }}\n activeDot={{ r: 6, stroke: secondaryColor, strokeWidth: 2, fill: '#fff' }}\n />\n )}\n </LineChart>\n )\n }\n\n // Composed chart (bar + line)\n return (\n <ComposedChart data={chartData} margin={margin}>\n {showGrid && !minimal && <CartesianGrid strokeDasharray=\"3 3\" stroke=\"#f1f5f9\" />}\n {showXAxis && !minimal && (\n <XAxis\n dataKey=\"name\"\n {...commonAxisProps}\n angle={-45}\n textAnchor=\"end\"\n interval={0}\n />\n )}\n {minimal && <XAxis {...minimalAxisProps} />}\n {showYAxis && !minimal && (\n <YAxis {...commonAxisProps} tickFormatter={valueFormatter} />\n )}\n {minimal && <YAxis {...minimalAxisProps} />}\n {!minimal && (\n <Tooltip\n formatter={(value, name) => [\n valueFormatter(Number(value)),\n name === 'value' ? 'Primary' : 'Secondary',\n ]}\n contentStyle={{\n backgroundColor: 'white',\n border: '1px solid #e2e8f0',\n borderRadius: '8px',\n fontSize: '12px',\n }}\n />\n )}\n {showLegend && <Legend />}\n <Bar dataKey=\"value\" radius={[4, 4, 0, 0]}>\n {chartData.map((_, index) => (\n <Cell\n key={`cell-${index}`}\n fill={interactive && hoveredIndex === index ? primaryColorHover : primaryColor}\n />\n ))}\n </Bar>\n {chartData.some((d) => d.secondary !== undefined) && (\n <Line\n type=\"monotone\"\n dataKey=\"secondary\"\n stroke={secondaryColor}\n strokeWidth={2}\n dot={{ fill: secondaryColor, strokeWidth: 2, r: 4 }}\n activeDot={{ r: 6, stroke: secondaryColor, strokeWidth: 2, fill: '#fff' }}\n />\n )}\n </ComposedChart>\n )\n }\n\n // With colored header\n if (headerColor) {\n return (\n <div\n className={cn('rounded-2xl overflow-hidden border border-slate-200 shadow-sm', className)}\n >\n <div className=\"px-5 py-4\" style={{ backgroundColor: headerColor }}>\n {title && <h3 className=\"text-lg font-bold text-white\">{title}</h3>}\n {subtitle && <p className=\"text-xs text-white/80\">{subtitle}</p>}\n </div>\n <div className=\"bg-white p-5\">\n <div style={{ height }}>\n <ResponsiveContainer width=\"100%\" height=\"100%\">\n {renderChart()}\n </ResponsiveContainer>\n </div>\n </div>\n </div>\n )\n }\n\n // With title (no colored header)\n if (title) {\n return (\n <div className={cn('w-full', className)}>\n <div className=\"mb-4\">\n <h3 className=\"text-lg font-semibold text-slate-900\">{title}</h3>\n {subtitle && <p className=\"text-sm text-slate-500\">{subtitle}</p>}\n </div>\n <div style={{ height }}>\n <ResponsiveContainer width=\"100%\" height=\"100%\">\n {renderChart()}\n </ResponsiveContainer>\n </div>\n </div>\n )\n }\n\n // Basic chart only\n return (\n <div className={cn('w-full', className)} style={{ height }}>\n <ResponsiveContainer width=\"100%\" height=\"100%\">\n {renderChart()}\n </ResponsiveContainer>\n </div>\n )\n}\n"],"names":["defaultFormatter","value","StatisticsChart","data","type","height","primaryColor","primaryColorHover","secondaryColor","showGrid","showLegend","showXAxis","showYAxis","valueFormatter","title","subtitle","headerColor","interactive","onHover","minimal","emptyMessage","className","hoveredIndex","setHoveredIndex","useState","chartData","item","handleMouseMove","e","handleMouseLeave","commonAxisProps","minimalAxisProps","cn","jsxs","jsx","renderChart","margin","BarChart","CartesianGrid","XAxis","YAxis","Tooltip","Legend","Bar","_","index","Cell","LineChart","Line","ComposedChart","name","ResponsiveContainer"],"mappings":"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"}
package/dist/index60.js CHANGED
@@ -1,21 +1,105 @@
1
- import { jsx as o } from "react/jsx-runtime";
2
- import { cn as n } from "./index3.js";
3
- function m({
4
- children: t,
5
- className: e
6
- }) {
7
- return /* @__PURE__ */ o(
8
- "h3",
1
+ import { jsx as g, jsxs as s } from "react/jsx-runtime";
2
+ import { cn as t } from "./index3.js";
3
+ const i = {
4
+ // Heat levels (lead scoring)
5
+ hot: {
6
+ color: "bg-red-500",
7
+ text: "text-red-600",
8
+ label: "Hot"
9
+ },
10
+ warm: {
11
+ color: "bg-orange-500",
12
+ text: "text-orange-600",
13
+ label: "Warm"
14
+ },
15
+ neutral: {
16
+ color: "bg-emerald-500",
17
+ text: "text-emerald-600",
18
+ label: "Neutral"
19
+ },
20
+ cold: {
21
+ color: "bg-sky-500",
22
+ text: "text-sky-600",
23
+ label: "Cold"
24
+ },
25
+ // Confidence levels
26
+ high: {
27
+ color: "bg-green-500",
28
+ text: "text-green-600",
29
+ label: "High"
30
+ },
31
+ medium: {
32
+ color: "bg-amber-500",
33
+ text: "text-amber-600",
34
+ label: "Medium"
35
+ },
36
+ low: {
37
+ color: "bg-red-500",
38
+ text: "text-red-600",
39
+ label: "Low"
40
+ }
41
+ }, m = {
42
+ sm: {
43
+ dot: "w-1.5 h-1.5",
44
+ text: "text-xs",
45
+ gap: "gap-1.5"
46
+ },
47
+ md: {
48
+ dot: "w-2 h-2",
49
+ text: "text-sm",
50
+ gap: "gap-2"
51
+ }
52
+ }, f = ({
53
+ level: r,
54
+ label: o,
55
+ variant: a = "default",
56
+ size: d = "sm",
57
+ className: l
58
+ }) => {
59
+ const e = i[r], n = m[d];
60
+ return a === "dot" ? /* @__PURE__ */ g(
61
+ "div",
9
62
  {
10
- className: n(
11
- "text-lg font-semibold text-slate-900",
12
- e
63
+ className: t("rounded-full", n.dot, e.color, l),
64
+ title: o || e.label
65
+ }
66
+ ) : /* @__PURE__ */ s("div", { className: t("flex items-center", n.gap, l), children: [
67
+ /* @__PURE__ */ g("div", { className: t("rounded-full", n.dot, e.color) }),
68
+ /* @__PURE__ */ g("span", { className: t("font-medium", n.text, e.text), children: o || e.label })
69
+ ] });
70
+ }, x = {
71
+ hot: "bg-red-100 text-red-700 ring-1 ring-red-600/20",
72
+ warm: "bg-orange-100 text-orange-700 ring-1 ring-orange-600/20",
73
+ neutral: "bg-emerald-100 text-emerald-700 ring-1 ring-emerald-600/20",
74
+ cold: "bg-sky-100 text-sky-700 ring-1 ring-sky-600/20",
75
+ high: "bg-green-100 text-green-700 ring-1 ring-green-600/20",
76
+ medium: "bg-amber-100 text-amber-700 ring-1 ring-amber-600/20",
77
+ low: "bg-red-100 text-red-700 ring-1 ring-red-600/20"
78
+ }, c = {
79
+ sm: "px-2 py-0.5 text-xs",
80
+ md: "px-2.5 py-1 text-sm"
81
+ }, p = ({
82
+ level: r,
83
+ label: o,
84
+ size: a = "sm",
85
+ className: d
86
+ }) => {
87
+ const l = i[r];
88
+ return /* @__PURE__ */ g(
89
+ "span",
90
+ {
91
+ className: t(
92
+ "inline-flex items-center font-medium rounded-full",
93
+ x[r],
94
+ c[a],
95
+ d
13
96
  ),
14
- children: t
97
+ children: o || l.label
15
98
  }
16
99
  );
17
- }
100
+ };
18
101
  export {
19
- m as SubsectionHeading
102
+ p as StatusBadge,
103
+ f as StatusIndicator
20
104
  };
21
105
  //# sourceMappingURL=index60.js.map