ml-uikit 1.1.0 → 1.1.2

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 (231) hide show
  1. package/dist/components/ui/alert.d.ts +8 -2
  2. package/dist/components/ui/alert.d.ts.map +1 -1
  3. package/dist/components/ui/badge.d.ts +1 -1
  4. package/dist/components/ui/button.d.ts.map +1 -1
  5. package/dist/components/ui/checkbox.d.ts.map +1 -1
  6. package/dist/components/ui/icon-button.d.ts +9 -0
  7. package/dist/components/ui/icon-button.d.ts.map +1 -0
  8. package/dist/components/ui/input-group.d.ts.map +1 -1
  9. package/dist/components/ui/radio-group.d.ts.map +1 -1
  10. package/dist/components/ui/select.d.ts.map +1 -1
  11. package/dist/components/ui/sidebar.d.ts.map +1 -1
  12. package/dist/components/ui/slider.d.ts.map +1 -1
  13. package/dist/components/ui/switch.d.ts.map +1 -1
  14. package/dist/components/ui/tabs.d.ts.map +1 -1
  15. package/dist/index.cjs.js +1 -1
  16. package/dist/index.cjs10.js +1 -1
  17. package/dist/index.cjs10.js.map +1 -1
  18. package/dist/index.cjs11.js +1 -1
  19. package/dist/index.cjs11.js.map +1 -1
  20. package/dist/index.cjs12.js +1 -1
  21. package/dist/index.cjs12.js.map +1 -1
  22. package/dist/index.cjs13.js +1 -1
  23. package/dist/index.cjs13.js.map +1 -1
  24. package/dist/index.cjs14.js +1 -1
  25. package/dist/index.cjs14.js.map +1 -1
  26. package/dist/index.cjs15.js +1 -7
  27. package/dist/index.cjs15.js.map +1 -1
  28. package/dist/index.cjs16.js +7 -1
  29. package/dist/index.cjs16.js.map +1 -1
  30. package/dist/index.cjs17.js +1 -1
  31. package/dist/index.cjs17.js.map +1 -1
  32. package/dist/index.cjs18.js +1 -1
  33. package/dist/index.cjs18.js.map +1 -1
  34. package/dist/index.cjs19.js +1 -1
  35. package/dist/index.cjs19.js.map +1 -1
  36. package/dist/index.cjs2.js +1 -1
  37. package/dist/index.cjs20.js +1 -1
  38. package/dist/index.cjs20.js.map +1 -1
  39. package/dist/index.cjs21.js +1 -1
  40. package/dist/index.cjs21.js.map +1 -1
  41. package/dist/index.cjs22.js +1 -1
  42. package/dist/index.cjs22.js.map +1 -1
  43. package/dist/index.cjs23.js +1 -1
  44. package/dist/index.cjs23.js.map +1 -1
  45. package/dist/index.cjs24.js +1 -1
  46. package/dist/index.cjs24.js.map +1 -1
  47. package/dist/index.cjs25.js +1 -1
  48. package/dist/index.cjs25.js.map +1 -1
  49. package/dist/index.cjs26.js +1 -1
  50. package/dist/index.cjs26.js.map +1 -1
  51. package/dist/index.cjs27.js +1 -1
  52. package/dist/index.cjs27.js.map +1 -1
  53. package/dist/index.cjs28.js +1 -1
  54. package/dist/index.cjs28.js.map +1 -1
  55. package/dist/index.cjs29.js +1 -1
  56. package/dist/index.cjs29.js.map +1 -1
  57. package/dist/index.cjs3.js +1 -1
  58. package/dist/index.cjs30.js +1 -1
  59. package/dist/index.cjs30.js.map +1 -1
  60. package/dist/index.cjs31.js +1 -1
  61. package/dist/index.cjs31.js.map +1 -1
  62. package/dist/index.cjs32.js +1 -1
  63. package/dist/index.cjs32.js.map +1 -1
  64. package/dist/index.cjs33.js +1 -1
  65. package/dist/index.cjs33.js.map +1 -1
  66. package/dist/index.cjs34.js +1 -1
  67. package/dist/index.cjs34.js.map +1 -1
  68. package/dist/index.cjs35.js +1 -1
  69. package/dist/index.cjs35.js.map +1 -1
  70. package/dist/index.cjs36.js +1 -1
  71. package/dist/index.cjs36.js.map +1 -1
  72. package/dist/index.cjs37.js +1 -1
  73. package/dist/index.cjs37.js.map +1 -1
  74. package/dist/index.cjs38.js +1 -1
  75. package/dist/index.cjs38.js.map +1 -1
  76. package/dist/index.cjs39.js +1 -1
  77. package/dist/index.cjs39.js.map +1 -1
  78. package/dist/index.cjs4.js +1 -1
  79. package/dist/index.cjs4.js.map +1 -1
  80. package/dist/index.cjs40.js +1 -1
  81. package/dist/index.cjs40.js.map +1 -1
  82. package/dist/index.cjs41.js +1 -1
  83. package/dist/index.cjs41.js.map +1 -1
  84. package/dist/index.cjs42.js +1 -1
  85. package/dist/index.cjs42.js.map +1 -1
  86. package/dist/index.cjs43.js +1 -1
  87. package/dist/index.cjs43.js.map +1 -1
  88. package/dist/index.cjs44.js +1 -1
  89. package/dist/index.cjs44.js.map +1 -1
  90. package/dist/index.cjs45.js +1 -1
  91. package/dist/index.cjs45.js.map +1 -1
  92. package/dist/index.cjs46.js +1 -1
  93. package/dist/index.cjs46.js.map +1 -1
  94. package/dist/index.cjs47.js +1 -1
  95. package/dist/index.cjs47.js.map +1 -1
  96. package/dist/index.cjs48.js +1 -1
  97. package/dist/index.cjs48.js.map +1 -1
  98. package/dist/index.cjs49.js +1 -1
  99. package/dist/index.cjs49.js.map +1 -1
  100. package/dist/index.cjs5.js +1 -1
  101. package/dist/index.cjs50.js +1 -1
  102. package/dist/index.cjs50.js.map +1 -1
  103. package/dist/index.cjs51.js +1 -1
  104. package/dist/index.cjs51.js.map +1 -1
  105. package/dist/index.cjs52.js +1 -1
  106. package/dist/index.cjs52.js.map +1 -1
  107. package/dist/index.cjs53.js +1 -1
  108. package/dist/index.cjs53.js.map +1 -1
  109. package/dist/index.cjs54.js +1 -1
  110. package/dist/index.cjs54.js.map +1 -1
  111. package/dist/index.cjs55.js +1 -1
  112. package/dist/index.cjs55.js.map +1 -1
  113. package/dist/index.cjs56.js +1 -1
  114. package/dist/index.cjs56.js.map +1 -1
  115. package/dist/index.cjs57.js +1 -1
  116. package/dist/index.cjs57.js.map +1 -1
  117. package/dist/index.cjs7.js +1 -1
  118. package/dist/index.cjs8.js +1 -1
  119. package/dist/index.cjs9.js +1 -1
  120. package/dist/index.d.ts +3 -1
  121. package/dist/index.d.ts.map +1 -1
  122. package/dist/index.es.js +321 -312
  123. package/dist/index.es.js.map +1 -1
  124. package/dist/index.es10.js +27 -27
  125. package/dist/index.es10.js.map +1 -1
  126. package/dist/index.es11.js +19 -72
  127. package/dist/index.es11.js.map +1 -1
  128. package/dist/index.es12.js +62 -157
  129. package/dist/index.es12.js.map +1 -1
  130. package/dist/index.es13.js +169 -58
  131. package/dist/index.es13.js.map +1 -1
  132. package/dist/index.es14.js +55 -157
  133. package/dist/index.es14.js.map +1 -1
  134. package/dist/index.es15.js +150 -181
  135. package/dist/index.es15.js.map +1 -1
  136. package/dist/index.es16.js +188 -21
  137. package/dist/index.es16.js.map +1 -1
  138. package/dist/index.es17.js +31 -5
  139. package/dist/index.es17.js.map +1 -1
  140. package/dist/index.es18.js +5 -103
  141. package/dist/index.es18.js.map +1 -1
  142. package/dist/index.es19.js +70 -103
  143. package/dist/index.es19.js.map +1 -1
  144. package/dist/index.es2.js +1 -1
  145. package/dist/index.es20.js +108 -61
  146. package/dist/index.es20.js.map +1 -1
  147. package/dist/index.es21.js +59 -60
  148. package/dist/index.es21.js.map +1 -1
  149. package/dist/index.es22.js +69 -114
  150. package/dist/index.es22.js.map +1 -1
  151. package/dist/index.es23.js +132 -97
  152. package/dist/index.es23.js.map +1 -1
  153. package/dist/index.es24.js +49 -156
  154. package/dist/index.es24.js.map +1 -1
  155. package/dist/index.es25.js +194 -76
  156. package/dist/index.es25.js.map +1 -1
  157. package/dist/index.es26.js +89 -20
  158. package/dist/index.es26.js.map +1 -1
  159. package/dist/index.es27.js +20 -22
  160. package/dist/index.es27.js.map +1 -1
  161. package/dist/index.es28.js +17 -144
  162. package/dist/index.es28.js.map +1 -1
  163. package/dist/index.es29.js +145 -37
  164. package/dist/index.es29.js.map +1 -1
  165. package/dist/index.es3.js +1 -1
  166. package/dist/index.es30.js +37 -179
  167. package/dist/index.es30.js.map +1 -1
  168. package/dist/index.es31.js +174 -18
  169. package/dist/index.es31.js.map +1 -1
  170. package/dist/index.es32.js +29 -16
  171. package/dist/index.es32.js.map +1 -1
  172. package/dist/index.es33.js +15 -92
  173. package/dist/index.es33.js.map +1 -1
  174. package/dist/index.es34.js +91 -189
  175. package/dist/index.es34.js.map +1 -1
  176. package/dist/index.es35.js +165 -71
  177. package/dist/index.es35.js.map +1 -1
  178. package/dist/index.es36.js +85 -84
  179. package/dist/index.es36.js.map +1 -1
  180. package/dist/index.es37.js +92 -17
  181. package/dist/index.es37.js.map +1 -1
  182. package/dist/index.es38.js +19 -21
  183. package/dist/index.es38.js.map +1 -1
  184. package/dist/index.es39.js +16 -21
  185. package/dist/index.es39.js.map +1 -1
  186. package/dist/index.es4.js +65 -26
  187. package/dist/index.es4.js.map +1 -1
  188. package/dist/index.es40.js +22 -25
  189. package/dist/index.es40.js.map +1 -1
  190. package/dist/index.es41.js +25 -104
  191. package/dist/index.es41.js.map +1 -1
  192. package/dist/index.es42.js +117 -20
  193. package/dist/index.es42.js.map +1 -1
  194. package/dist/index.es43.js +19 -97
  195. package/dist/index.es43.js.map +1 -1
  196. package/dist/index.es44.js +77 -509
  197. package/dist/index.es44.js.map +1 -1
  198. package/dist/index.es45.js +552 -11
  199. package/dist/index.es45.js.map +1 -1
  200. package/dist/index.es46.js +15 -18
  201. package/dist/index.es46.js.map +1 -1
  202. package/dist/index.es47.js +44 -19
  203. package/dist/index.es47.js.map +1 -1
  204. package/dist/index.es48.js +19 -12
  205. package/dist/index.es48.js.map +1 -1
  206. package/dist/index.es49.js +13 -22
  207. package/dist/index.es49.js.map +1 -1
  208. package/dist/index.es5.js +1 -1
  209. package/dist/index.es50.js +23 -197
  210. package/dist/index.es50.js.map +1 -1
  211. package/dist/index.es51.js +191 -28
  212. package/dist/index.es51.js.map +1 -1
  213. package/dist/index.es52.js +45 -14
  214. package/dist/index.es52.js.map +1 -1
  215. package/dist/index.es53.js +12 -28
  216. package/dist/index.es53.js.map +1 -1
  217. package/dist/index.es54.js +30 -34
  218. package/dist/index.es54.js.map +1 -1
  219. package/dist/index.es55.js +37 -19
  220. package/dist/index.es55.js.map +1 -1
  221. package/dist/index.es56.js +20 -6
  222. package/dist/index.es56.js.map +1 -1
  223. package/dist/index.es57.js +5 -11
  224. package/dist/index.es57.js.map +1 -1
  225. package/dist/index.es7.js +1 -1
  226. package/dist/index.es8.js +1 -1
  227. package/dist/index.es9.js +1 -1
  228. package/dist/style.css +436 -172
  229. package/package.json +1 -1
  230. package/dist/hooks/use-mobile.d.ts +0 -2
  231. package/dist/hooks/use-mobile.d.ts.map +0 -1
@@ -1,194 +1,163 @@
1
1
  import * as e from "react";
2
- import * as C from "recharts";
3
- import { cn as i } from "./index.es56.js";
4
- const $ = { light: "", dark: ".dark" }, k = e.createContext(null);
5
- function w() {
6
- const s = e.useContext(k);
7
- if (!s)
8
- throw new Error("useChart must be used within a <ChartContainer />");
9
- return s;
2
+ import P from "embla-carousel-react";
3
+ import { ArrowLeft as S, ArrowRight as R } from "lucide-react";
4
+ import { cn as m } from "./index.es57.js";
5
+ import { Button as x } from "./index.es10.js";
6
+ const w = e.createContext(null);
7
+ function d() {
8
+ const t = e.useContext(w);
9
+ if (!t)
10
+ throw new Error("useCarousel must be used within a <Carousel />");
11
+ return t;
10
12
  }
11
- const L = e.forwardRef(({ id: s, className: t, children: o, config: r, ...l }, u) => {
12
- const c = e.useId(), a = `chart-${s || c.replace(/:/g, "")}`;
13
- return /* @__PURE__ */ e.createElement(k.Provider, { value: { config: r } }, /* @__PURE__ */ e.createElement(
14
- "div",
15
- {
16
- "data-chart": a,
17
- ref: u,
18
- className: i(
19
- "flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none",
20
- t
21
- ),
22
- ...l
23
- },
24
- /* @__PURE__ */ e.createElement(R, { id: a, config: r }),
25
- /* @__PURE__ */ e.createElement(C.ResponsiveContainer, null, o)
26
- ));
27
- });
28
- L.displayName = "Chart";
29
- const R = ({ id: s, config: t }) => {
30
- const o = Object.entries(t).filter(
31
- ([, r]) => r.theme || r.color
32
- );
33
- return o.length ? /* @__PURE__ */ e.createElement(
34
- "style",
35
- {
36
- dangerouslySetInnerHTML: {
37
- __html: Object.entries($).map(
38
- ([r, l]) => `
39
- ${l} [data-chart=${s}] {
40
- ${o.map(([u, c]) => {
41
- const a = c.theme?.[r] || c.color;
42
- return a ? ` --color-${u}: ${a};` : null;
43
- }).join(`
44
- `)}
45
- }
46
- `
47
- ).join(`
48
- `)
49
- }
50
- }
51
- ) : null;
52
- }, S = C.Tooltip, T = e.forwardRef(
13
+ const k = e.forwardRef(
53
14
  ({
54
- active: s,
55
- payload: t,
56
- className: o,
57
- indicator: r = "dot",
58
- hideLabel: l = !1,
59
- hideIndicator: u = !1,
60
- label: c,
61
- labelFormatter: a,
62
- labelClassName: f,
63
- formatter: m,
64
- color: y,
65
- nameKey: N,
66
- labelKey: p
67
- }, j) => {
68
- const { config: g } = w(), E = e.useMemo(() => {
69
- if (l || !t?.length)
70
- return null;
71
- const [n] = t, v = `${p || n?.dataKey || n?.name || "value"}`, b = x(g, n, v), d = !p && typeof c == "string" ? g[c]?.label || c : b?.label;
72
- return a ? /* @__PURE__ */ e.createElement("div", { className: i("font-medium", f) }, a(d, t)) : d ? /* @__PURE__ */ e.createElement("div", { className: i("font-medium", f) }, d) : null;
73
- }, [
74
- c,
75
- a,
76
- t,
77
- l,
78
- f,
79
- g,
80
- p
81
- ]);
82
- if (!s || !t?.length)
83
- return null;
84
- const h = t.length === 1 && r !== "dot";
85
- return /* @__PURE__ */ e.createElement(
86
- "div",
15
+ orientation: t = "horizontal",
16
+ opts: o,
17
+ setApi: l,
18
+ plugins: a,
19
+ className: n,
20
+ children: c,
21
+ ...i
22
+ }, u) => {
23
+ const [h, r] = P(
87
24
  {
88
- ref: j,
89
- className: i(
90
- "grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl",
91
- o
92
- )
25
+ ...o,
26
+ axis: t === "horizontal" ? "x" : "y"
93
27
  },
94
- h ? null : E,
95
- /* @__PURE__ */ e.createElement("div", { className: "grid gap-1.5" }, t.filter((n) => n.type !== "none").map((n, v) => {
96
- const b = `${N || n.name || n.dataKey || "value"}`, d = x(g, n, b), _ = y || n.payload.fill || n.color;
97
- return /* @__PURE__ */ e.createElement(
98
- "div",
99
- {
100
- key: n.dataKey,
101
- className: i(
102
- "flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground",
103
- r === "dot" && "items-center"
104
- )
105
- },
106
- m && n?.value !== void 0 && n.name ? m(n.value, n.name, n, v, n.payload) : /* @__PURE__ */ e.createElement(e.Fragment, null, d?.icon ? /* @__PURE__ */ e.createElement(d.icon, null) : !u && /* @__PURE__ */ e.createElement(
107
- "div",
108
- {
109
- className: i(
110
- "shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]",
111
- {
112
- "h-2.5 w-2.5": r === "dot",
113
- "w-1": r === "line",
114
- "w-0 border-[1.5px] border-dashed bg-transparent": r === "dashed",
115
- "my-0.5": h && r === "dashed"
116
- }
117
- ),
118
- style: {
119
- "--color-bg": _,
120
- "--color-border": _
121
- }
122
- }
123
- ), /* @__PURE__ */ e.createElement(
124
- "div",
125
- {
126
- className: i(
127
- "flex flex-1 justify-between leading-none",
128
- h ? "items-end" : "items-center"
129
- )
130
- },
131
- /* @__PURE__ */ e.createElement("div", { className: "grid gap-1.5" }, h ? E : null, /* @__PURE__ */ e.createElement("span", { className: "text-muted-foreground" }, d?.label || n.name)),
132
- n.value && /* @__PURE__ */ e.createElement("span", { className: "font-mono font-medium tabular-nums text-foreground" }, n.value.toLocaleString())
133
- ))
134
- );
135
- }))
28
+ a
29
+ ), [p, v] = e.useState(!1), [y, E] = e.useState(!1), f = e.useCallback((s) => {
30
+ s && (v(s.canScrollPrev()), E(s.canScrollNext()));
31
+ }, []), C = e.useCallback(() => {
32
+ r?.scrollPrev();
33
+ }, [r]), N = e.useCallback(() => {
34
+ r?.scrollNext();
35
+ }, [r]), b = e.useCallback(
36
+ (s) => {
37
+ s.key === "ArrowLeft" ? (s.preventDefault(), C()) : s.key === "ArrowRight" && (s.preventDefault(), N());
38
+ },
39
+ [C, N]
136
40
  );
137
- }
138
- );
139
- T.displayName = "ChartTooltip";
140
- const K = C.Legend, P = e.forwardRef(
141
- ({ className: s, hideIcon: t = !1, payload: o, verticalAlign: r = "bottom", nameKey: l }, u) => {
142
- const { config: c } = w();
143
- return o?.length ? /* @__PURE__ */ e.createElement(
144
- "div",
41
+ return e.useEffect(() => {
42
+ !r || !l || l(r);
43
+ }, [r, l]), e.useEffect(() => {
44
+ if (r)
45
+ return f(r), r.on("reInit", f), r.on("select", f), () => {
46
+ r?.off("select", f);
47
+ };
48
+ }, [r, f]), /* @__PURE__ */ e.createElement(
49
+ w.Provider,
145
50
  {
146
- ref: u,
147
- className: i(
148
- "flex items-center justify-center gap-4",
149
- r === "top" ? "pb-3" : "pt-3",
150
- s
151
- )
51
+ value: {
52
+ carouselRef: h,
53
+ api: r,
54
+ opts: o,
55
+ orientation: t || (o?.axis === "y" ? "vertical" : "horizontal"),
56
+ scrollPrev: C,
57
+ scrollNext: N,
58
+ canScrollPrev: p,
59
+ canScrollNext: y
60
+ }
152
61
  },
153
- o.filter((a) => a.type !== "none").map((a) => {
154
- const f = `${l || a.dataKey || "value"}`, m = x(c, a, f);
155
- return /* @__PURE__ */ e.createElement(
156
- "div",
157
- {
158
- key: a.value,
159
- className: i(
160
- "flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground"
161
- )
162
- },
163
- m?.icon && !t ? /* @__PURE__ */ e.createElement(m.icon, null) : /* @__PURE__ */ e.createElement(
164
- "div",
165
- {
166
- className: "h-2 w-2 shrink-0 rounded-[2px]",
167
- style: {
168
- backgroundColor: a.color
169
- }
170
- }
171
- ),
172
- m?.label
173
- );
174
- })
175
- ) : null;
62
+ /* @__PURE__ */ e.createElement(
63
+ "div",
64
+ {
65
+ ref: u,
66
+ onKeyDownCapture: b,
67
+ className: m("relative", n),
68
+ role: "region",
69
+ "aria-roledescription": "carousel",
70
+ ...i
71
+ },
72
+ c
73
+ )
74
+ );
176
75
  }
177
76
  );
178
- P.displayName = "ChartLegend";
179
- function x(s, t, o) {
180
- if (typeof t != "object" || t === null)
181
- return;
182
- const r = "payload" in t && typeof t.payload == "object" && t.payload !== null ? t.payload : void 0;
183
- let l = o;
184
- return o in t && typeof t[o] == "string" ? l = t[o] : r && o in r && typeof r[o] == "string" && (l = r[o]), l in s ? s[l] : s[o];
185
- }
77
+ k.displayName = "Carousel";
78
+ const z = e.forwardRef(({ className: t, ...o }, l) => {
79
+ const { carouselRef: a, orientation: n } = d();
80
+ return /* @__PURE__ */ e.createElement("div", { ref: a, className: "overflow-hidden" }, /* @__PURE__ */ e.createElement(
81
+ "div",
82
+ {
83
+ ref: l,
84
+ className: m(
85
+ "flex",
86
+ n === "horizontal" ? "-ml-4" : "-mt-4 flex-col",
87
+ t
88
+ ),
89
+ ...o
90
+ }
91
+ ));
92
+ });
93
+ z.displayName = "CarouselContent";
94
+ const g = e.forwardRef(({ className: t, ...o }, l) => {
95
+ const { orientation: a } = d();
96
+ return /* @__PURE__ */ e.createElement(
97
+ "div",
98
+ {
99
+ ref: l,
100
+ role: "group",
101
+ "aria-roledescription": "slide",
102
+ className: m(
103
+ "min-w-0 shrink-0 grow-0 basis-full",
104
+ a === "horizontal" ? "pl-4" : "pt-4",
105
+ t
106
+ ),
107
+ ...o
108
+ }
109
+ );
110
+ });
111
+ g.displayName = "CarouselItem";
112
+ const D = e.forwardRef(({ className: t, variant: o = "outline", size: l = "icon", ...a }, n) => {
113
+ const { orientation: c, scrollPrev: i, canScrollPrev: u } = d();
114
+ return /* @__PURE__ */ e.createElement(
115
+ x,
116
+ {
117
+ ref: n,
118
+ variant: o,
119
+ size: l,
120
+ className: m(
121
+ "absolute h-8 w-8 rounded-full",
122
+ c === "horizontal" ? "-left-12 top-1/2 -translate-y-1/2" : "-top-12 left-1/2 -translate-x-1/2 rotate-90",
123
+ t
124
+ ),
125
+ disabled: !u,
126
+ onClick: i,
127
+ ...a
128
+ },
129
+ /* @__PURE__ */ e.createElement(S, { className: "h-4 w-4" }),
130
+ /* @__PURE__ */ e.createElement("span", { className: "sr-only" }, "Previous slide")
131
+ );
132
+ });
133
+ D.displayName = "CarouselPrevious";
134
+ const I = e.forwardRef(({ className: t, variant: o = "outline", size: l = "icon", ...a }, n) => {
135
+ const { orientation: c, scrollNext: i, canScrollNext: u } = d();
136
+ return /* @__PURE__ */ e.createElement(
137
+ x,
138
+ {
139
+ ref: n,
140
+ variant: o,
141
+ size: l,
142
+ className: m(
143
+ "absolute h-8 w-8 rounded-full",
144
+ c === "horizontal" ? "-right-12 top-1/2 -translate-y-1/2" : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90",
145
+ t
146
+ ),
147
+ disabled: !u,
148
+ onClick: i,
149
+ ...a
150
+ },
151
+ /* @__PURE__ */ e.createElement(R, { className: "h-4 w-4" }),
152
+ /* @__PURE__ */ e.createElement("span", { className: "sr-only" }, "Next slide")
153
+ );
154
+ });
155
+ I.displayName = "CarouselNext";
186
156
  export {
187
- L as ChartContainer,
188
- K as ChartLegend,
189
- P as ChartLegendContent,
190
- R as ChartStyle,
191
- S as ChartTooltip,
192
- T as ChartTooltipContent
157
+ k as Carousel,
158
+ z as CarouselContent,
159
+ g as CarouselItem,
160
+ I as CarouselNext,
161
+ D as CarouselPrevious
193
162
  };
194
163
  //# sourceMappingURL=index.es15.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es15.js","sources":["../src/components/ui/chart.tsx"],"sourcesContent":["import * as React from \"react\"\nimport * as RechartsPrimitive from \"recharts\"\n\nimport { cn } from \"@/lib/utils\"\n\n// Format: { THEME_NAME: CSS_SELECTOR }\nconst THEMES = { light: \"\", dark: \".dark\" } as const\n\nexport type ChartConfig = {\n [k in string]: {\n label?: React.ReactNode\n icon?: React.ComponentType\n } & (\n | { color?: string; theme?: never }\n | { color?: never; theme: Record<keyof typeof THEMES, string> }\n )\n}\n\ntype ChartContextProps = {\n config: ChartConfig\n}\n\nconst ChartContext = React.createContext<ChartContextProps | null>(null)\n\nfunction useChart() {\n const context = React.useContext(ChartContext)\n\n if (!context) {\n throw new Error(\"useChart must be used within a <ChartContainer />\")\n }\n\n return context\n}\n\nconst ChartContainer = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n config: ChartConfig\n children: React.ComponentProps<\n typeof RechartsPrimitive.ResponsiveContainer\n >[\"children\"]\n }\n>(({ id, className, children, config, ...props }, ref) => {\n const uniqueId = React.useId()\n const chartId = `chart-${id || uniqueId.replace(/:/g, \"\")}`\n\n return (\n <ChartContext.Provider value={{ config }}>\n <div\n data-chart={chartId}\n ref={ref}\n className={cn(\n \"flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none\",\n className\n )}\n {...props}\n >\n <ChartStyle id={chartId} config={config} />\n <RechartsPrimitive.ResponsiveContainer>\n {children}\n </RechartsPrimitive.ResponsiveContainer>\n </div>\n </ChartContext.Provider>\n )\n})\nChartContainer.displayName = \"Chart\"\n\nconst ChartStyle = ({ id, config }: { id: string; config: ChartConfig }) => {\n const colorConfig = Object.entries(config).filter(\n ([, config]) => config.theme || config.color\n )\n\n if (!colorConfig.length) {\n return null\n }\n\n return (\n <style\n dangerouslySetInnerHTML={{\n __html: Object.entries(THEMES)\n .map(\n ([theme, prefix]) => `\n${prefix} [data-chart=${id}] {\n${colorConfig\n .map(([key, itemConfig]) => {\n const color =\n itemConfig.theme?.[theme as keyof typeof itemConfig.theme] ||\n itemConfig.color\n return color ? ` --color-${key}: ${color};` : null\n })\n .join(\"\\n\")}\n}\n`\n )\n .join(\"\\n\"),\n }}\n />\n )\n}\n\nconst ChartTooltip = RechartsPrimitive.Tooltip\n\nconst ChartTooltipContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<typeof RechartsPrimitive.Tooltip> &\n React.ComponentProps<\"div\"> & {\n hideLabel?: boolean\n hideIndicator?: boolean\n indicator?: \"line\" | \"dot\" | \"dashed\"\n nameKey?: string\n labelKey?: string\n }\n>(\n (\n {\n active,\n payload,\n className,\n indicator = \"dot\",\n hideLabel = false,\n hideIndicator = false,\n label,\n labelFormatter,\n labelClassName,\n formatter,\n color,\n nameKey,\n labelKey,\n },\n ref\n ) => {\n const { config } = useChart()\n\n const tooltipLabel = React.useMemo(() => {\n if (hideLabel || !payload?.length) {\n return null\n }\n\n const [item] = payload\n const key = `${labelKey || item?.dataKey || item?.name || \"value\"}`\n const itemConfig = getPayloadConfigFromPayload(config, item, key)\n const value =\n !labelKey && typeof label === \"string\"\n ? config[label as keyof typeof config]?.label || label\n : itemConfig?.label\n\n if (labelFormatter) {\n return (\n <div className={cn(\"font-medium\", labelClassName)}>\n {labelFormatter(value, payload)}\n </div>\n )\n }\n\n if (!value) {\n return null\n }\n\n return <div className={cn(\"font-medium\", labelClassName)}>{value}</div>\n }, [\n label,\n labelFormatter,\n payload,\n hideLabel,\n labelClassName,\n config,\n labelKey,\n ])\n\n if (!active || !payload?.length) {\n return null\n }\n\n const nestLabel = payload.length === 1 && indicator !== \"dot\"\n\n return (\n <div\n ref={ref}\n className={cn(\n \"grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl\",\n className\n )}\n >\n {!nestLabel ? tooltipLabel : null}\n <div className=\"grid gap-1.5\">\n {payload\n .filter((item) => item.type !== \"none\")\n .map((item, index) => {\n const key = `${nameKey || item.name || item.dataKey || \"value\"}`\n const itemConfig = getPayloadConfigFromPayload(config, item, key)\n const indicatorColor = color || item.payload.fill || item.color\n\n return (\n <div\n key={item.dataKey}\n className={cn(\n \"flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground\",\n indicator === \"dot\" && \"items-center\"\n )}\n >\n {formatter && item?.value !== undefined && item.name ? (\n formatter(item.value, item.name, item, index, item.payload)\n ) : (\n <>\n {itemConfig?.icon ? (\n <itemConfig.icon />\n ) : (\n !hideIndicator && (\n <div\n className={cn(\n \"shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]\",\n {\n \"h-2.5 w-2.5\": indicator === \"dot\",\n \"w-1\": indicator === \"line\",\n \"w-0 border-[1.5px] border-dashed bg-transparent\":\n indicator === \"dashed\",\n \"my-0.5\": nestLabel && indicator === \"dashed\",\n }\n )}\n style={\n {\n \"--color-bg\": indicatorColor,\n \"--color-border\": indicatorColor,\n } as React.CSSProperties\n }\n />\n )\n )}\n <div\n className={cn(\n \"flex flex-1 justify-between leading-none\",\n nestLabel ? \"items-end\" : \"items-center\"\n )}\n >\n <div className=\"grid gap-1.5\">\n {nestLabel ? tooltipLabel : null}\n <span className=\"text-muted-foreground\">\n {itemConfig?.label || item.name}\n </span>\n </div>\n {item.value && (\n <span className=\"font-mono font-medium tabular-nums text-foreground\">\n {item.value.toLocaleString()}\n </span>\n )}\n </div>\n </>\n )}\n </div>\n )\n })}\n </div>\n </div>\n )\n }\n)\nChartTooltipContent.displayName = \"ChartTooltip\"\n\nconst ChartLegend = RechartsPrimitive.Legend\n\nconst ChartLegendContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> &\n Pick<RechartsPrimitive.LegendProps, \"payload\" | \"verticalAlign\"> & {\n hideIcon?: boolean\n nameKey?: string\n }\n>(\n (\n { className, hideIcon = false, payload, verticalAlign = \"bottom\", nameKey },\n ref\n ) => {\n const { config } = useChart()\n\n if (!payload?.length) {\n return null\n }\n\n return (\n <div\n ref={ref}\n className={cn(\n \"flex items-center justify-center gap-4\",\n verticalAlign === \"top\" ? \"pb-3\" : \"pt-3\",\n className\n )}\n >\n {payload\n .filter((item) => item.type !== \"none\")\n .map((item) => {\n const key = `${nameKey || item.dataKey || \"value\"}`\n const itemConfig = getPayloadConfigFromPayload(config, item, key)\n\n return (\n <div\n key={item.value}\n className={cn(\n \"flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground\"\n )}\n >\n {itemConfig?.icon && !hideIcon ? (\n <itemConfig.icon />\n ) : (\n <div\n className=\"h-2 w-2 shrink-0 rounded-[2px]\"\n style={{\n backgroundColor: item.color,\n }}\n />\n )}\n {itemConfig?.label}\n </div>\n )\n })}\n </div>\n )\n }\n)\nChartLegendContent.displayName = \"ChartLegend\"\n\n// Helper to extract item config from a payload.\nfunction getPayloadConfigFromPayload(\n config: ChartConfig,\n payload: unknown,\n key: string\n) {\n if (typeof payload !== \"object\" || payload === null) {\n return undefined\n }\n\n const payloadPayload =\n \"payload\" in payload &&\n typeof payload.payload === \"object\" &&\n payload.payload !== null\n ? payload.payload\n : undefined\n\n let configLabelKey: string = key\n\n if (\n key in payload &&\n typeof payload[key as keyof typeof payload] === \"string\"\n ) {\n configLabelKey = payload[key as keyof typeof payload] as string\n } else if (\n payloadPayload &&\n key in payloadPayload &&\n typeof payloadPayload[key as keyof typeof payloadPayload] === \"string\"\n ) {\n configLabelKey = payloadPayload[\n key as keyof typeof payloadPayload\n ] as string\n }\n\n return configLabelKey in config\n ? config[configLabelKey]\n : config[key as keyof typeof config]\n}\n\nexport {\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n ChartLegend,\n ChartLegendContent,\n ChartStyle,\n}\n"],"names":["THEMES","ChartContext","React","useChart","context","ChartContainer","id","className","children","config","props","ref","uniqueId","chartId","cn","ChartStyle","RechartsPrimitive","colorConfig","theme","prefix","key","itemConfig","color","ChartTooltip","ChartTooltipContent","active","payload","indicator","hideLabel","hideIndicator","label","labelFormatter","labelClassName","formatter","nameKey","labelKey","tooltipLabel","item","getPayloadConfigFromPayload","value","nestLabel","index","indicatorColor","ChartLegend","ChartLegendContent","hideIcon","verticalAlign","payloadPayload","configLabelKey"],"mappings":"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"}
1
+ {"version":3,"file":"index.es15.js","sources":["../src/components/ui/carousel.tsx"],"sourcesContent":["import * as React from \"react\"\nimport useEmblaCarousel, {\n type UseEmblaCarouselType,\n} from \"embla-carousel-react\"\nimport { ArrowLeft, ArrowRight } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\n\ntype CarouselApi = UseEmblaCarouselType[1]\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>\ntype CarouselOptions = UseCarouselParameters[0]\ntype CarouselPlugin = UseCarouselParameters[1]\n\ntype CarouselProps = {\n opts?: CarouselOptions\n plugins?: CarouselPlugin\n orientation?: \"horizontal\" | \"vertical\"\n setApi?: (api: CarouselApi) => void\n}\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0]\n api: ReturnType<typeof useEmblaCarousel>[1]\n scrollPrev: () => void\n scrollNext: () => void\n canScrollPrev: boolean\n canScrollNext: boolean\n} & CarouselProps\n\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null)\n\nfunction useCarousel() {\n const context = React.useContext(CarouselContext)\n\n if (!context) {\n throw new Error(\"useCarousel must be used within a <Carousel />\")\n }\n\n return context\n}\n\nconst Carousel = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & CarouselProps\n>(\n (\n {\n orientation = \"horizontal\",\n opts,\n setApi,\n plugins,\n className,\n children,\n ...props\n },\n ref\n ) => {\n const [carouselRef, api] = useEmblaCarousel(\n {\n ...opts,\n axis: orientation === \"horizontal\" ? \"x\" : \"y\",\n },\n plugins\n )\n const [canScrollPrev, setCanScrollPrev] = React.useState(false)\n const [canScrollNext, setCanScrollNext] = React.useState(false)\n\n const onSelect = React.useCallback((api: CarouselApi) => {\n if (!api) {\n return\n }\n\n setCanScrollPrev(api.canScrollPrev())\n setCanScrollNext(api.canScrollNext())\n }, [])\n\n const scrollPrev = React.useCallback(() => {\n api?.scrollPrev()\n }, [api])\n\n const scrollNext = React.useCallback(() => {\n api?.scrollNext()\n }, [api])\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === \"ArrowLeft\") {\n event.preventDefault()\n scrollPrev()\n } else if (event.key === \"ArrowRight\") {\n event.preventDefault()\n scrollNext()\n }\n },\n [scrollPrev, scrollNext]\n )\n\n React.useEffect(() => {\n if (!api || !setApi) {\n return\n }\n\n setApi(api)\n }, [api, setApi])\n\n React.useEffect(() => {\n if (!api) {\n return\n }\n\n onSelect(api)\n api.on(\"reInit\", onSelect)\n api.on(\"select\", onSelect)\n\n return () => {\n api?.off(\"select\", onSelect)\n }\n }, [api, onSelect])\n\n return (\n <CarouselContext.Provider\n value={{\n carouselRef,\n api: api,\n opts,\n orientation:\n orientation || (opts?.axis === \"y\" ? \"vertical\" : \"horizontal\"),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div\n ref={ref}\n onKeyDownCapture={handleKeyDown}\n className={cn(\"relative\", className)}\n role=\"region\"\n aria-roledescription=\"carousel\"\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n )\n }\n)\nCarousel.displayName = \"Carousel\"\n\nconst CarouselContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n const { carouselRef, orientation } = useCarousel()\n\n return (\n <div ref={carouselRef} className=\"overflow-hidden\">\n <div\n ref={ref}\n className={cn(\n \"flex\",\n orientation === \"horizontal\" ? \"-ml-4\" : \"-mt-4 flex-col\",\n className\n )}\n {...props}\n />\n </div>\n )\n})\nCarouselContent.displayName = \"CarouselContent\"\n\nconst CarouselItem = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n const { orientation } = useCarousel()\n\n return (\n <div\n ref={ref}\n role=\"group\"\n aria-roledescription=\"slide\"\n className={cn(\n \"min-w-0 shrink-0 grow-0 basis-full\",\n orientation === \"horizontal\" ? \"pl-4\" : \"pt-4\",\n className\n )}\n {...props}\n />\n )\n})\nCarouselItem.displayName = \"CarouselItem\"\n\nconst CarouselPrevious = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<typeof Button>\n>(({ className, variant = \"outline\", size = \"icon\", ...props }, ref) => {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel()\n\n return (\n <Button\n ref={ref}\n variant={variant}\n size={size}\n className={cn(\n \"absolute h-8 w-8 rounded-full\",\n orientation === \"horizontal\"\n ? \"-left-12 top-1/2 -translate-y-1/2\"\n : \"-top-12 left-1/2 -translate-x-1/2 rotate-90\",\n className\n )}\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n {...props}\n >\n <ArrowLeft className=\"h-4 w-4\" />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n )\n})\nCarouselPrevious.displayName = \"CarouselPrevious\"\n\nconst CarouselNext = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<typeof Button>\n>(({ className, variant = \"outline\", size = \"icon\", ...props }, ref) => {\n const { orientation, scrollNext, canScrollNext } = useCarousel()\n\n return (\n <Button\n ref={ref}\n variant={variant}\n size={size}\n className={cn(\n \"absolute h-8 w-8 rounded-full\",\n orientation === \"horizontal\"\n ? \"-right-12 top-1/2 -translate-y-1/2\"\n : \"-bottom-12 left-1/2 -translate-x-1/2 rotate-90\",\n className\n )}\n disabled={!canScrollNext}\n onClick={scrollNext}\n {...props}\n >\n <ArrowRight className=\"h-4 w-4\" />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n )\n})\nCarouselNext.displayName = \"CarouselNext\"\n\nexport {\n type CarouselApi,\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselPrevious,\n CarouselNext,\n}\n"],"names":["CarouselContext","React","useCarousel","context","Carousel","orientation","opts","setApi","plugins","className","children","props","ref","carouselRef","api","useEmblaCarousel","canScrollPrev","setCanScrollPrev","canScrollNext","setCanScrollNext","onSelect","scrollPrev","scrollNext","handleKeyDown","event","cn","CarouselContent","CarouselItem","CarouselPrevious","variant","size","Button","ArrowLeft","CarouselNext","ArrowRight"],"mappings":"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"}
@@ -1,27 +1,194 @@
1
1
  import * as e from "react";
2
- import * as r from "@radix-ui/react-checkbox";
3
- import { Check as i } from "lucide-react";
4
- import { cn as t } from "./index.es56.js";
5
- const s = e.forwardRef(({ className: o, ...a }, c) => /* @__PURE__ */ e.createElement(
6
- r.Root,
7
- {
8
- ref: c,
9
- className: t(
10
- "grid place-content-center peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",
11
- o
12
- ),
13
- ...a
14
- },
15
- /* @__PURE__ */ e.createElement(
16
- r.Indicator,
2
+ import * as C from "recharts";
3
+ import { cn as i } from "./index.es57.js";
4
+ const $ = { light: "", dark: ".dark" }, k = e.createContext(null);
5
+ function w() {
6
+ const s = e.useContext(k);
7
+ if (!s)
8
+ throw new Error("useChart must be used within a <ChartContainer />");
9
+ return s;
10
+ }
11
+ const L = e.forwardRef(({ id: s, className: t, children: o, config: r, ...l }, u) => {
12
+ const c = e.useId(), a = `chart-${s || c.replace(/:/g, "")}`;
13
+ return /* @__PURE__ */ e.createElement(k.Provider, { value: { config: r } }, /* @__PURE__ */ e.createElement(
14
+ "div",
17
15
  {
18
- className: t("grid place-content-center text-current")
16
+ "data-chart": a,
17
+ ref: u,
18
+ className: i(
19
+ "flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none",
20
+ t
21
+ ),
22
+ ...l
19
23
  },
20
- /* @__PURE__ */ e.createElement(i, { className: "h-4 w-4" })
21
- )
22
- ));
23
- s.displayName = r.Root.displayName;
24
+ /* @__PURE__ */ e.createElement(R, { id: a, config: r }),
25
+ /* @__PURE__ */ e.createElement(C.ResponsiveContainer, null, o)
26
+ ));
27
+ });
28
+ L.displayName = "Chart";
29
+ const R = ({ id: s, config: t }) => {
30
+ const o = Object.entries(t).filter(
31
+ ([, r]) => r.theme || r.color
32
+ );
33
+ return o.length ? /* @__PURE__ */ e.createElement(
34
+ "style",
35
+ {
36
+ dangerouslySetInnerHTML: {
37
+ __html: Object.entries($).map(
38
+ ([r, l]) => `
39
+ ${l} [data-chart=${s}] {
40
+ ${o.map(([u, c]) => {
41
+ const a = c.theme?.[r] || c.color;
42
+ return a ? ` --color-${u}: ${a};` : null;
43
+ }).join(`
44
+ `)}
45
+ }
46
+ `
47
+ ).join(`
48
+ `)
49
+ }
50
+ }
51
+ ) : null;
52
+ }, S = C.Tooltip, T = e.forwardRef(
53
+ ({
54
+ active: s,
55
+ payload: t,
56
+ className: o,
57
+ indicator: r = "dot",
58
+ hideLabel: l = !1,
59
+ hideIndicator: u = !1,
60
+ label: c,
61
+ labelFormatter: a,
62
+ labelClassName: f,
63
+ formatter: m,
64
+ color: y,
65
+ nameKey: N,
66
+ labelKey: p
67
+ }, j) => {
68
+ const { config: g } = w(), E = e.useMemo(() => {
69
+ if (l || !t?.length)
70
+ return null;
71
+ const [n] = t, v = `${p || n?.dataKey || n?.name || "value"}`, b = x(g, n, v), d = !p && typeof c == "string" ? g[c]?.label || c : b?.label;
72
+ return a ? /* @__PURE__ */ e.createElement("div", { className: i("font-medium", f) }, a(d, t)) : d ? /* @__PURE__ */ e.createElement("div", { className: i("font-medium", f) }, d) : null;
73
+ }, [
74
+ c,
75
+ a,
76
+ t,
77
+ l,
78
+ f,
79
+ g,
80
+ p
81
+ ]);
82
+ if (!s || !t?.length)
83
+ return null;
84
+ const h = t.length === 1 && r !== "dot";
85
+ return /* @__PURE__ */ e.createElement(
86
+ "div",
87
+ {
88
+ ref: j,
89
+ className: i(
90
+ "grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl",
91
+ o
92
+ )
93
+ },
94
+ h ? null : E,
95
+ /* @__PURE__ */ e.createElement("div", { className: "grid gap-1.5" }, t.filter((n) => n.type !== "none").map((n, v) => {
96
+ const b = `${N || n.name || n.dataKey || "value"}`, d = x(g, n, b), _ = y || n.payload.fill || n.color;
97
+ return /* @__PURE__ */ e.createElement(
98
+ "div",
99
+ {
100
+ key: n.dataKey,
101
+ className: i(
102
+ "flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground",
103
+ r === "dot" && "items-center"
104
+ )
105
+ },
106
+ m && n?.value !== void 0 && n.name ? m(n.value, n.name, n, v, n.payload) : /* @__PURE__ */ e.createElement(e.Fragment, null, d?.icon ? /* @__PURE__ */ e.createElement(d.icon, null) : !u && /* @__PURE__ */ e.createElement(
107
+ "div",
108
+ {
109
+ className: i(
110
+ "shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]",
111
+ {
112
+ "h-2.5 w-2.5": r === "dot",
113
+ "w-1": r === "line",
114
+ "w-0 border-[1.5px] border-dashed bg-transparent": r === "dashed",
115
+ "my-0.5": h && r === "dashed"
116
+ }
117
+ ),
118
+ style: {
119
+ "--color-bg": _,
120
+ "--color-border": _
121
+ }
122
+ }
123
+ ), /* @__PURE__ */ e.createElement(
124
+ "div",
125
+ {
126
+ className: i(
127
+ "flex flex-1 justify-between leading-none",
128
+ h ? "items-end" : "items-center"
129
+ )
130
+ },
131
+ /* @__PURE__ */ e.createElement("div", { className: "grid gap-1.5" }, h ? E : null, /* @__PURE__ */ e.createElement("span", { className: "text-muted-foreground" }, d?.label || n.name)),
132
+ n.value && /* @__PURE__ */ e.createElement("span", { className: "font-mono font-medium tabular-nums text-foreground" }, n.value.toLocaleString())
133
+ ))
134
+ );
135
+ }))
136
+ );
137
+ }
138
+ );
139
+ T.displayName = "ChartTooltip";
140
+ const K = C.Legend, P = e.forwardRef(
141
+ ({ className: s, hideIcon: t = !1, payload: o, verticalAlign: r = "bottom", nameKey: l }, u) => {
142
+ const { config: c } = w();
143
+ return o?.length ? /* @__PURE__ */ e.createElement(
144
+ "div",
145
+ {
146
+ ref: u,
147
+ className: i(
148
+ "flex items-center justify-center gap-4",
149
+ r === "top" ? "pb-3" : "pt-3",
150
+ s
151
+ )
152
+ },
153
+ o.filter((a) => a.type !== "none").map((a) => {
154
+ const f = `${l || a.dataKey || "value"}`, m = x(c, a, f);
155
+ return /* @__PURE__ */ e.createElement(
156
+ "div",
157
+ {
158
+ key: a.value,
159
+ className: i(
160
+ "flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground"
161
+ )
162
+ },
163
+ m?.icon && !t ? /* @__PURE__ */ e.createElement(m.icon, null) : /* @__PURE__ */ e.createElement(
164
+ "div",
165
+ {
166
+ className: "h-2 w-2 shrink-0 rounded-[2px]",
167
+ style: {
168
+ backgroundColor: a.color
169
+ }
170
+ }
171
+ ),
172
+ m?.label
173
+ );
174
+ })
175
+ ) : null;
176
+ }
177
+ );
178
+ P.displayName = "ChartLegend";
179
+ function x(s, t, o) {
180
+ if (typeof t != "object" || t === null)
181
+ return;
182
+ const r = "payload" in t && typeof t.payload == "object" && t.payload !== null ? t.payload : void 0;
183
+ let l = o;
184
+ return o in t && typeof t[o] == "string" ? l = t[o] : r && o in r && typeof r[o] == "string" && (l = r[o]), l in s ? s[l] : s[o];
185
+ }
24
186
  export {
25
- s as Checkbox
187
+ L as ChartContainer,
188
+ K as ChartLegend,
189
+ P as ChartLegendContent,
190
+ R as ChartStyle,
191
+ S as ChartTooltip,
192
+ T as ChartTooltipContent
26
193
  };
27
194
  //# sourceMappingURL=index.es16.js.map