@actioneer/ads 1.0.8 → 1.0.10

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/DESIGN.md +125 -50
  2. package/README.md +31 -7
  3. package/components/answer.js +1 -1
  4. package/components/assistant-ui/composer-harness.js +14 -10
  5. package/components/body-page-header.d.ts +9 -4
  6. package/components/body-page-header.js +10 -10
  7. package/components/breadcrumbs.js +15 -15
  8. package/components/button.d.ts +16 -1
  9. package/components/button.js +7 -4
  10. package/components/card.js +18 -18
  11. package/components/chart.d.ts +40 -4
  12. package/components/chart.js +824 -628
  13. package/components/chip.d.ts +2 -1
  14. package/components/chip.js +49 -46
  15. package/components/collection-header.js +4 -4
  16. package/components/connector-card.js +30 -30
  17. package/components/date-range-picker.js +1 -1
  18. package/components/detail-list.d.ts +28 -0
  19. package/components/detail-list.js +52 -0
  20. package/components/drawer.d.ts +38 -15
  21. package/components/drawer.js +150 -86
  22. package/components/empty-state.d.ts +3 -2
  23. package/components/empty-state.js +22 -22
  24. package/components/field.d.ts +16 -0
  25. package/components/field.js +63 -42
  26. package/components/file-dropzone.d.ts +15 -4
  27. package/components/file-dropzone.js +100 -64
  28. package/components/filter-bar.d.ts +44 -0
  29. package/components/filter-bar.js +89 -0
  30. package/components/filters.d.ts +37 -0
  31. package/components/filters.js +129 -0
  32. package/components/index.d.ts +4 -0
  33. package/components/index.js +526 -510
  34. package/components/input-field.d.ts +1 -1
  35. package/components/input-field.js +24 -22
  36. package/components/modal.d.ts +2 -1
  37. package/components/modal.js +120 -106
  38. package/components/panel.js +26 -27
  39. package/components/popover.d.ts +6 -1
  40. package/components/popover.js +74 -64
  41. package/components/sidebar.d.ts +15 -0
  42. package/components/sidebar.js +166 -129
  43. package/components/sparkline.d.ts +30 -0
  44. package/components/sparkline.js +69 -0
  45. package/components/table.d.ts +8 -0
  46. package/components/table.js +357 -350
  47. package/components/tabs.d.ts +6 -1
  48. package/components/tabs.js +28 -31
  49. package/demo/components/add-to-artifact.js +6 -2
  50. package/examples/README.md +5 -2
  51. package/examples/call-logs-screen.tsx +381 -0
  52. package/examples/campaign-analysis-screen.tsx +180 -0
  53. package/examples/campaigns-screen.tsx +497 -0
  54. package/examples/guardrails-settings-screen.tsx +123 -0
  55. package/fonts/geist-variable.woff2 +0 -0
  56. package/fonts.css +12 -17
  57. package/lib/icons.js +3 -3
  58. package/llms.txt +162 -30
  59. package/manifest.json +11604 -7878
  60. package/package.json +1 -1
  61. package/styles.css +102 -59
  62. package/theme.css +81 -37
  63. package/fonts/aribau-grotesk-medium.woff2 +0 -0
  64. package/fonts/aribau-grotesk-regular.woff2 +0 -0
@@ -1,233 +1,304 @@
1
1
  "use client";
2
- import { jsxs as y, jsx as e, Fragment as ne } from "react/jsx-runtime";
3
- import * as R from "react";
4
- import { ResponsiveContainer as V, LineChart as ye, Tooltip as T, Line as ue, AreaChart as Re, Area as Me, CartesianGrid as ae, XAxis as ie, YAxis as Z, BarChart as Se, Bar as me, Cell as Q, ComposedChart as $e, ScatterChart as Le, Scatter as Oe, PieChart as Fe, Pie as ke, RadarChart as Te, PolarGrid as Ie, PolarAngleAxis as fe, PolarRadiusAxis as De, Radar as Ee, RadialBarChart as Be, RadialBar as He, Treemap as _e, ReferenceArea as ze, ReferenceLine as We, ReferenceDot as je } from "recharts";
5
- import { MotionConfig as Pe, AnimatePresence as Ge, motion as Ve } from "motion/react";
6
- import { cn as O } from "../lib/cn.js";
7
- import { floatVariants as Ue } from "../lib/motion.js";
8
- const q = (t) => `var(--color-chart-${t % 6 + 1})`, re = (t) => q(t), oe = "var(--chart-context)", J = 2.5, Ye = 0.55, B = "transition-opacity duration-150 ease-out motion-reduce:transition-none", j = (t, n, r = Ye) => n == null || n === t ? 1 : r, he = (t) => t != null && t.isTooltipActive && t.activeTooltipIndex != null ? t.activeTooltipIndex : null;
9
- function xe() {
10
- const [t, n] = R.useState(null), r = R.useMemo(
2
+ import { jsxs as A, jsx as e, Fragment as ce } from "react/jsx-runtime";
3
+ import * as C from "react";
4
+ import { ResponsiveContainer as J, ComposedChart as pe, Tooltip as j, Area as Ne, Line as we, AreaChart as Be, CartesianGrid as ue, XAxis as me, YAxis as ne, BarChart as He, Bar as Ae, LabelList as he, Cell as re, ScatterChart as _e, Scatter as ze, PieChart as ke, Pie as je, RadarChart as Ge, PolarGrid as Pe, PolarAngleAxis as Ce, PolarRadiusAxis as We, Radar as Ue, RadialBarChart as Ve, RadialBar as Ye, Treemap as Xe, ReferenceArea as Ze, ReferenceLine as Qe, ReferenceDot as qe } from "recharts";
5
+ import { MotionConfig as Je, AnimatePresence as Ke, motion as et } from "motion/react";
6
+ import { cn as I } from "../lib/cn.js";
7
+ import { floatVariants as tt } from "../lib/motion.js";
8
+ const ae = (t) => `var(--color-chart-${t % 6 + 1})`, de = (t) => ae(t), ie = "var(--chart-context)", le = 2.5, nt = /* @__PURE__ */ new Set([
9
+ "var(--color-chart-2)",
10
+ "var(--color-chart-6)",
11
+ ie
12
+ ]), Me = (t) => nt.has(t), xe = 20, rt = 0.55, z = "transition-opacity duration-150 ease-out motion-reduce:transition-none", Y = (t, n, r = rt) => n == null || n === t ? 1 : r, Se = (t) => t != null && t.isTooltipActive && t.activeTooltipIndex != null ? t.activeTooltipIndex : null;
13
+ function Re() {
14
+ const [t, n] = C.useState(null), r = C.useMemo(
11
15
  () => ({
12
- onMouseMove: (i) => n(he(i)),
16
+ onMouseMove: (i) => n(Se(i)),
13
17
  onMouseLeave: () => n(null)
14
18
  }),
15
19
  []
16
20
  );
17
21
  return { activeIndex: t, handlers: r };
18
22
  }
19
- function ve(t, n) {
20
- const r = R.useRef(null), [i, o] = R.useState(null), [a, l] = R.useState(null);
23
+ function ye(t, n) {
24
+ const r = C.useRef(null), [i, l] = C.useState(null), [a, o] = C.useState(null);
21
25
  return { frameRef: r, activeIndex: i, isDimmed: (c) => a != null && t(c) !== a, handlers: { onMouseMove: (c) => {
22
- const b = he(c);
23
- o(b);
24
- const v = c == null ? void 0 : c.chartY;
25
- if (b == null || !n || v == null || !r.current) {
26
- l(null);
26
+ const b = Se(c);
27
+ l(b);
28
+ const g = c == null ? void 0 : c.chartY;
29
+ if (b == null || !n || g == null || !r.current) {
30
+ o(null);
27
31
  return;
28
32
  }
29
- let m = null, w = 1 / 0;
33
+ let h = null, N = 1 / 0;
30
34
  r.current.querySelectorAll(`circle[data-chart-index="${b}"]`).forEach((M) => {
31
- const A = M.dataset.chartSeries, g = Number(M.getAttribute("cy"));
32
- if (A == null || Number.isNaN(g)) return;
33
- const f = Math.abs(g - v);
34
- f < w && (w = f, m = t(A));
35
- }), l(m);
35
+ const R = M.dataset.chartSeries, p = Number(M.getAttribute("cy"));
36
+ if (R == null || Number.isNaN(p)) return;
37
+ const m = Math.abs(p - g);
38
+ m < N && (N = m, h = t(R));
39
+ }), o(h);
36
40
  }, onMouseLeave: () => {
37
- o(null), l(null);
41
+ l(null), o(null);
38
42
  } } };
39
43
  }
40
- function ge(t, n) {
44
+ function Le(t, n) {
41
45
  return (r) => {
42
46
  if (!(n != null && n.includes(r))) return r;
43
- const i = t.filter((o) => !n.includes(o));
47
+ const i = t.filter((l) => !n.includes(l));
44
48
  return i[n.indexOf(r)] ?? i[0] ?? r;
45
49
  };
46
50
  }
47
- const Xe = 2.5, W = {
51
+ const at = 2.5, V = {
48
52
  primary: { ref: "var(--brand)", pill: "bg-action-primary-soft text-brand-text" },
49
53
  success: { ref: "var(--color-success-600)", pill: "bg-success-50 text-success-700" },
50
54
  warning: { ref: "var(--color-warning-500)", pill: "bg-warning-50 text-warning-700" },
51
55
  danger: { ref: "var(--color-danger-500)", pill: "bg-danger-50 text-danger-700" },
52
56
  info: { ref: "var(--color-info-500)", pill: "bg-info-50 text-info-700" }
53
- }, k = (t) => new Intl.NumberFormat("en-US", { notation: "compact", maximumFractionDigits: 1 }).format(t), be = (t, n) => {
57
+ }, k = (t) => new Intl.NumberFormat("en-US", { notation: "compact", maximumFractionDigits: 1 }).format(t), $e = (t, n) => {
54
58
  const r = [];
55
59
  for (const i of t)
56
- for (const o of Object.keys(i))
57
- o !== n && typeof i[o] == "number" && !r.includes(o) && r.push(o);
60
+ for (const l of Object.keys(i))
61
+ l !== n && typeof i[l] == "number" && !r.includes(l) && r.push(l);
58
62
  return r;
59
63
  };
60
- function H({ x: t, y: n, payload: r, anchor: i, dy: o, format: a }) {
61
- const l = (r == null ? void 0 : r.value) ?? "", x = a ? a(l) : l;
62
- return /* @__PURE__ */ e("text", { x: t, y: n, dy: o, textAnchor: i, className: "fill-tertiary text-xs tabular-nums", children: x });
64
+ function W({ x: t, y: n, payload: r, anchor: i, dy: l, format: a }) {
65
+ const o = (r == null ? void 0 : r.value) ?? "", f = a ? a(o) : o;
66
+ return /* @__PURE__ */ e("text", { x: t, y: n, dy: l, textAnchor: i, className: "fill-tertiary text-xs tabular-nums", children: f });
63
67
  }
64
- function pe({
68
+ function Oe({
65
69
  x: t,
66
70
  y: n,
67
71
  value: r,
68
- hidden: i,
69
- color: o,
70
- format: a
72
+ index: i,
73
+ hidden: l,
74
+ skip: a,
75
+ below: o,
76
+ color: f,
77
+ format: d
71
78
  }) {
72
- if (i || t == null || n == null || r == null || r === "") return null;
73
- const l = Number(r);
74
- return Number.isNaN(l) ? null : /* @__PURE__ */ e(
79
+ if (l || i != null && (a != null && a(i)) || t == null || n == null || r == null || r === "") return null;
80
+ const u = Number(r);
81
+ if (Number.isNaN(u)) return null;
82
+ const c = i != null && (o == null ? void 0 : o(i));
83
+ return /* @__PURE__ */ e(
75
84
  "text",
76
85
  {
77
86
  x: Number(t),
78
- y: Number(n) - 10,
87
+ y: c ? Number(n) + 20 : Number(n) - 10,
79
88
  textAnchor: "middle",
80
- fill: o,
81
- className: O(!o && "fill-secondary", "text-xs tabular-nums"),
82
- children: a(l)
89
+ fill: f,
90
+ className: I(!f && "fill-secondary", "text-xs tabular-nums"),
91
+ children: d(u)
83
92
  }
84
93
  );
85
94
  }
86
- function _({
95
+ function U({
87
96
  cx: t,
88
97
  cy: n,
89
98
  color: r,
90
99
  active: i = !1,
91
- seriesKey: o,
100
+ seriesKey: l,
92
101
  index: a
93
102
  }) {
94
103
  if (t == null || n == null) return null;
95
- const l = o != null && !i;
104
+ const o = l != null && !i;
96
105
  return /* @__PURE__ */ e(
97
106
  "circle",
98
107
  {
99
108
  "aria-hidden": !0,
100
- "data-chart-series": l ? o : void 0,
101
- "data-chart-index": l ? a : void 0,
109
+ "data-chart-series": o ? l : void 0,
110
+ "data-chart-index": o ? a : void 0,
102
111
  cx: t,
103
112
  cy: n,
104
113
  r: i ? 5.5 : 4,
105
114
  fill: "var(--background)",
106
115
  stroke: r,
107
- strokeWidth: i ? 3 : Xe
116
+ strokeWidth: i ? 3 : at
108
117
  }
109
118
  );
110
119
  }
111
- function Ze({
120
+ function it({
112
121
  x: t,
113
122
  y: n,
114
123
  width: r,
115
124
  height: i,
116
- value: o,
125
+ value: l,
117
126
  format: a,
118
- horizontal: l
127
+ horizontal: o
119
128
  }) {
120
- if (t == null || n == null || o == null || o === "") return null;
121
- const x = Number(o);
122
- if (Number.isNaN(x)) return null;
123
- const u = Number(t), h = Number(n), c = Number(r ?? 0), b = Number(i ?? 0);
124
- return l ? /* @__PURE__ */ e(
129
+ if (t == null || n == null || l == null || l === "") return null;
130
+ const f = Number(l);
131
+ if (Number.isNaN(f)) return null;
132
+ const d = Number(t), u = Number(n), c = Number(r ?? 0), b = Number(i ?? 0);
133
+ return o ? /* @__PURE__ */ e(
125
134
  "text",
126
135
  {
127
- x: u + c + 8,
128
- y: h + b / 2,
136
+ x: d + c + 8,
137
+ y: u + b / 2,
129
138
  dy: "0.32em",
130
139
  textAnchor: "start",
131
140
  className: "fill-secondary text-xs tabular-nums",
132
- children: a(x)
141
+ children: a(f)
133
142
  }
134
143
  ) : /* @__PURE__ */ e(
135
144
  "text",
136
145
  {
137
- x: u + c / 2,
138
- y: h - 8,
146
+ x: d + c / 2,
147
+ y: u - 8,
139
148
  textAnchor: "middle",
140
149
  className: "fill-secondary text-xs tabular-nums",
141
- children: a(x)
150
+ children: a(f)
151
+ }
152
+ );
153
+ }
154
+ function lt({
155
+ x: t,
156
+ y: n,
157
+ width: r,
158
+ height: i,
159
+ value: l,
160
+ format: a,
161
+ horizontal: o,
162
+ light: f
163
+ }) {
164
+ if (t == null || n == null || l == null || l === "") return null;
165
+ const d = Number(l);
166
+ if (Number.isNaN(d) || d === 0) return null;
167
+ const u = Number(t), c = Number(n), b = Math.abs(Number(r ?? 0)), g = Math.abs(Number(i ?? 0)), h = a(d), N = o ? Math.max(xe, h.length * 6 + 8) : xe;
168
+ return (o ? b : g) < N ? null : /* @__PURE__ */ e(
169
+ "text",
170
+ {
171
+ x: u + Number(r ?? 0) / 2,
172
+ y: c + Number(i ?? 0) / 2,
173
+ dy: "0.32em",
174
+ textAnchor: "middle",
175
+ pointerEvents: "none",
176
+ className: I("text-xs tabular-nums", f ? "fill-primary" : "fill-white"),
177
+ children: h
142
178
  }
143
179
  );
144
180
  }
145
- function I({
181
+ function ot({
182
+ x: t,
183
+ y: n,
184
+ width: r,
185
+ height: i,
186
+ index: l,
187
+ totals: a,
188
+ format: o,
189
+ horizontal: f
190
+ }) {
191
+ if (t == null || n == null || l == null) return null;
192
+ const d = a[l];
193
+ if (d == null) return null;
194
+ const u = Number(t), c = Number(n), b = Number(r ?? 0), g = Number(i ?? 0);
195
+ return f ? /* @__PURE__ */ e(
196
+ "text",
197
+ {
198
+ x: u + b + 8,
199
+ y: c + g / 2,
200
+ dy: "0.32em",
201
+ textAnchor: "start",
202
+ className: "fill-primary text-xs font-medium tabular-nums",
203
+ children: o(d)
204
+ }
205
+ ) : /* @__PURE__ */ e(
206
+ "text",
207
+ {
208
+ x: u + b / 2,
209
+ y: c - 8,
210
+ textAnchor: "middle",
211
+ className: "fill-primary text-xs font-medium tabular-nums",
212
+ children: o(d)
213
+ }
214
+ );
215
+ }
216
+ function G({
146
217
  active: t,
147
218
  payload: n,
148
219
  label: r,
149
220
  format: i,
150
- labelKey: o,
221
+ labelKey: l,
151
222
  renderer: a
152
223
  }) {
153
- var b, v;
154
- const l = (n ?? []).map((m, w) => {
155
- const M = m.payload && typeof m.payload == "object" ? m.payload : void 0;
224
+ var b, g;
225
+ const o = (n ?? []).map((h, N) => {
226
+ const M = h.payload && typeof h.payload == "object" ? h.payload : void 0;
156
227
  return {
157
- key: m.dataKey ?? w,
158
- name: m.name ?? m.dataKey ?? w,
159
- value: m.value,
160
- color: m.color,
228
+ key: h.dataKey ?? N,
229
+ name: h.name ?? h.dataKey ?? N,
230
+ value: h.value,
231
+ color: h.color,
161
232
  datum: M
162
233
  };
163
- }), x = o ? (v = (b = l[0]) == null ? void 0 : b.datum) == null ? void 0 : v[o] : void 0, u = {
234
+ }), f = l ? (g = (b = o[0]) == null ? void 0 : b.datum) == null ? void 0 : g[l] : void 0, d = {
164
235
  active: !!t,
165
- label: typeof x == "string" || typeof x == "number" ? x : r,
166
- items: l,
236
+ label: typeof f == "string" || typeof f == "number" ? f : r,
237
+ items: o,
167
238
  formatValue: i
168
239
  };
169
- if (a) return /* @__PURE__ */ e(ne, { children: a(u) });
170
- if (!u.active || !l.length) return null;
171
- const h = l.length === 1, c = u.label ?? (h ? l[0].name : void 0);
172
- return /* @__PURE__ */ y("div", { className: "rounded-md bg-foreground px-2.5 py-1.5 text-xs text-background", children: [
173
- /* @__PURE__ */ e("div", { className: O("text-xs font-normal tracking-wide uppercase text-background/60", !h && "mb-1"), children: c }),
174
- l.map((m) => /* @__PURE__ */ y("div", { className: "flex items-center gap-1.5", children: [
175
- !h && /* @__PURE__ */ y(ne, { children: [
176
- /* @__PURE__ */ e("span", { "aria-hidden": !0, className: "size-1.5 rounded-dot", style: { background: m.color } }),
177
- /* @__PURE__ */ e("span", { className: "text-background/70", children: m.name })
240
+ if (a) return /* @__PURE__ */ e(ce, { children: a(d) });
241
+ if (!d.active || !o.length) return null;
242
+ const u = o.length === 1, c = d.label ?? (u ? o[0].name : void 0);
243
+ return /* @__PURE__ */ A("div", { className: "rounded-md bg-foreground px-2.5 py-1.5 text-xs text-background", children: [
244
+ /* @__PURE__ */ e("div", { className: I("text-xs font-normal tracking-wide uppercase text-background/60", !u && "mb-1"), children: c }),
245
+ o.map((h) => /* @__PURE__ */ A("div", { className: "flex items-center gap-1.5", children: [
246
+ !u && /* @__PURE__ */ A(ce, { children: [
247
+ /* @__PURE__ */ e("span", { "aria-hidden": !0, className: "size-1.5 rounded-dot", style: { background: h.color } }),
248
+ /* @__PURE__ */ e("span", { className: "text-background/70", children: h.name })
178
249
  ] }),
179
- /* @__PURE__ */ e("span", { className: "ml-auto pl-3 font-normal tabular-nums", children: typeof m.value == "number" ? i(m.value) : String(m.value ?? "") })
180
- ] }, m.key))
250
+ /* @__PURE__ */ e("span", { className: "ml-auto pl-3 font-normal tabular-nums", children: typeof h.value == "number" ? i(h.value) : String(h.value ?? "") })
251
+ ] }, h.key))
181
252
  ] });
182
253
  }
183
- const Ne = "pointer-events-none inline-flex min-h-4 items-center rounded-full px-2 py-0.5 text-xs font-normal whitespace-nowrap";
184
- function Qe({
254
+ const Te = "pointer-events-none inline-flex min-h-4 items-center rounded-full px-2 py-0.5 text-xs font-normal whitespace-nowrap";
255
+ function st({
185
256
  viewBox: t,
186
257
  label: n,
187
258
  value: r,
188
259
  color: i,
189
- axis: o
260
+ axis: l
190
261
  }) {
191
- const a = t ?? {}, l = /* @__PURE__ */ y("span", { className: O(Ne, W[i].pill), children: [
262
+ const a = t ?? {}, o = /* @__PURE__ */ A("span", { className: I(Te, V[i].pill), children: [
192
263
  n,
193
264
  r != null && /* @__PURE__ */ e("span", { className: "ml-1 tabular-nums", children: r })
194
265
  ] });
195
- return o === "y" ? /* @__PURE__ */ e("foreignObject", { x: a.x ?? 0, y: (a.y ?? 0) - 12, width: a.width ?? 0, height: 24, className: "overflow-visible", children: /* @__PURE__ */ e("div", { className: "flex h-full items-center justify-end pr-1", children: l }) }) : /* @__PURE__ */ e("foreignObject", { x: (a.x ?? 0) - 90, y: (a.y ?? 0) - 12, width: 180, height: 24, className: "overflow-visible", children: /* @__PURE__ */ e("div", { className: "flex h-full items-center justify-center", children: l }) });
266
+ return l === "y" ? /* @__PURE__ */ e("foreignObject", { x: a.x ?? 0, y: (a.y ?? 0) - 12, width: a.width ?? 0, height: 24, className: "overflow-visible", children: /* @__PURE__ */ e("div", { className: "flex h-full items-center justify-end pr-1", children: o }) }) : /* @__PURE__ */ e("foreignObject", { x: (a.x ?? 0) - 90, y: (a.y ?? 0) - 12, width: 180, height: 24, className: "overflow-visible", children: /* @__PURE__ */ e("div", { className: "flex h-full items-center justify-center", children: o }) });
196
267
  }
197
- function qe({ viewBox: t, label: n, color: r }) {
268
+ function ct({ viewBox: t, label: n, color: r }) {
198
269
  const i = t ?? {};
199
- return /* @__PURE__ */ e("foreignObject", { x: i.x ?? 0, y: i.y ?? 0, width: i.width ?? 0, height: 28, className: "overflow-visible", children: /* @__PURE__ */ e("div", { className: "flex h-full items-center pl-1.5", children: /* @__PURE__ */ e("span", { className: O(Ne, W[r].pill), children: n }) }) });
270
+ return /* @__PURE__ */ e("foreignObject", { x: i.x ?? 0, y: i.y ?? 0, width: i.width ?? 0, height: 28, className: "overflow-visible", children: /* @__PURE__ */ e("div", { className: "flex h-full items-center pl-1.5", children: /* @__PURE__ */ e("span", { className: I(Te, V[r].pill), children: n }) }) });
200
271
  }
201
- function Je({
272
+ function dt({
202
273
  cx: t,
203
274
  cy: n,
204
275
  n: r,
205
276
  ann: i,
206
- onEnter: o,
277
+ onEnter: l,
207
278
  onLeave: a
208
279
  }) {
209
- const [l, x] = R.useState(!1);
280
+ const [o, f] = C.useState(!1);
210
281
  if (t == null || n == null || !Number.isFinite(t) || !Number.isFinite(n)) return /* @__PURE__ */ e("g", {});
211
- const u = () => o({ ann: i, n: r, cx: t, cy: n }), h = () => a();
212
- return /* @__PURE__ */ y(
282
+ const d = () => l({ ann: i, n: r, cx: t, cy: n }), u = () => a();
283
+ return /* @__PURE__ */ A(
213
284
  "g",
214
285
  {
215
286
  tabIndex: 0,
216
287
  role: "img",
217
288
  "aria-label": `Annotation ${r}: ${i.label}`,
218
289
  className: "cursor-default outline-none [transform-box:fill-box] origin-center transition-transform ease-out [transition-duration:150ms] hover:scale-110 focus-visible:scale-110 motion-reduce:transition-none motion-reduce:hover:scale-100 motion-reduce:focus-visible:scale-100",
219
- onMouseEnter: u,
220
- onMouseLeave: h,
290
+ onMouseEnter: d,
291
+ onMouseLeave: u,
221
292
  onFocus: () => {
222
- x(!0), u();
293
+ f(!0), d();
223
294
  },
224
295
  onBlur: () => {
225
- x(!1), h();
296
+ f(!1), u();
226
297
  },
227
298
  children: [
228
- l && /* @__PURE__ */ e("circle", { cx: t, cy: n, r: 12, fill: "none", stroke: "var(--ring)", strokeWidth: 2 }),
299
+ o && /* @__PURE__ */ e("circle", { cx: t, cy: n, r: 12, fill: "none", stroke: "var(--ring)", strokeWidth: 2 }),
229
300
  /* @__PURE__ */ e("circle", { cx: t, cy: n, r: 10, fill: "var(--background)" }),
230
- /* @__PURE__ */ e("circle", { cx: t, cy: n, r: 8, fill: W[i.color ?? "primary"].ref }),
301
+ /* @__PURE__ */ e("circle", { cx: t, cy: n, r: 8, fill: V[i.color ?? "primary"].ref }),
231
302
  /* @__PURE__ */ e(
232
303
  "text",
233
304
  {
@@ -243,8 +314,8 @@ function Je({
243
314
  }
244
315
  );
245
316
  }
246
- function Ke({ hovered: t, frameWidth: n, format: r }) {
247
- return /* @__PURE__ */ e(Pe, { reducedMotion: "user", children: /* @__PURE__ */ e(Ge, { children: t && /* @__PURE__ */ e(
317
+ function ut({ hovered: t, frameWidth: n, format: r }) {
318
+ return /* @__PURE__ */ e(Je, { reducedMotion: "user", children: /* @__PURE__ */ e(Ke, { children: t && /* @__PURE__ */ e(
248
319
  "div",
249
320
  {
250
321
  className: "pointer-events-none absolute z-10",
@@ -252,29 +323,29 @@ function Ke({ hovered: t, frameWidth: n, format: r }) {
252
323
  left: Math.max(96, Math.min(t.cx, Math.max(n - 96, 96))),
253
324
  top: t.cy - 16
254
325
  },
255
- children: /* @__PURE__ */ y(
256
- Ve.div,
326
+ children: /* @__PURE__ */ A(
327
+ et.div,
257
328
  {
258
- variants: Ue,
329
+ variants: tt,
259
330
  initial: "hidden",
260
331
  animate: "visible",
261
332
  exit: "hidden",
262
333
  className: "w-max max-w-60 -translate-x-1/2 -translate-y-full origin-bottom rounded-lg bg-elevated p-3",
263
334
  children: [
264
- /* @__PURE__ */ y("div", { className: "flex items-center gap-2", children: [
335
+ /* @__PURE__ */ A("div", { className: "flex items-center gap-2", children: [
265
336
  /* @__PURE__ */ e(
266
337
  "span",
267
338
  {
268
339
  "aria-hidden": !0,
269
340
  className: "flex size-4.5 shrink-0 items-center justify-center rounded-full text-s font-medium text-brand-foreground",
270
- style: { background: W[t.ann.color ?? "primary"].ref },
341
+ style: { background: V[t.ann.color ?? "primary"].ref },
271
342
  children: t.n
272
343
  }
273
344
  ),
274
345
  /* @__PURE__ */ e("span", { className: "text-xs font-normal text-foreground", children: t.ann.label })
275
346
  ] }),
276
347
  t.ann.description && /* @__PURE__ */ e("p", { className: "mt-1.5 text-xs leading-relaxed text-secondary", children: t.ann.description }),
277
- /* @__PURE__ */ y("div", { className: "mt-1.5 text-xs font-normal tracking-wide uppercase text-tertiary tabular-nums", children: [
348
+ /* @__PURE__ */ A("div", { className: "mt-1.5 text-xs font-normal tracking-wide uppercase text-tertiary tabular-nums", children: [
278
349
  t.ann.x,
279
350
  " · ",
280
351
  r(t.ann.y)
@@ -285,46 +356,46 @@ function Ke({ hovered: t, frameWidth: n, format: r }) {
285
356
  }
286
357
  ) }) });
287
358
  }
288
- function we(t, n) {
289
- const [r, i] = R.useState(null), o = R.useCallback(() => i(null), []), { back: a, front: l } = R.useMemo(() => {
290
- const x = [], u = [];
291
- let h = 0;
359
+ function Fe(t, n) {
360
+ const [r, i] = C.useState(null), l = C.useCallback(() => i(null), []), { back: a, front: o } = C.useMemo(() => {
361
+ const f = [], d = [];
362
+ let u = 0;
292
363
  return (t ?? []).forEach((c, b) => {
293
- const v = c.color ?? "primary";
364
+ const g = c.color ?? "primary";
294
365
  if (c.kind === "band") {
295
- const m = c.axis ?? "y";
296
- x.push(
366
+ const h = c.axis ?? "y";
367
+ f.push(
297
368
  /* @__PURE__ */ e(
298
- ze,
369
+ Ze,
299
370
  {
300
- ...m === "y" ? { y1: c.from, y2: c.to } : { x1: c.from, x2: c.to },
301
- fill: W[v].ref,
371
+ ...h === "y" ? { y1: c.from, y2: c.to } : { x1: c.from, x2: c.to },
372
+ fill: V[g].ref,
302
373
  fillOpacity: 0.06,
303
374
  stroke: "none",
304
- ifOverflow: m === "y" ? "extendDomain" : "visible",
305
- label: c.label ? /* @__PURE__ */ e(qe, { label: c.label, color: v }) : void 0
375
+ ifOverflow: h === "y" ? "extendDomain" : "visible",
376
+ label: c.label ? /* @__PURE__ */ e(ct, { label: c.label, color: g }) : void 0
306
377
  },
307
378
  `ann-${b}`
308
379
  )
309
380
  );
310
381
  } else if (c.kind === "line") {
311
- const m = c.axis ?? "y";
312
- u.push(
382
+ const h = c.axis ?? "y";
383
+ d.push(
313
384
  /* @__PURE__ */ e(
314
- We,
385
+ Qe,
315
386
  {
316
- ...m === "y" ? { y: c.value } : { x: c.value },
317
- stroke: W[v].ref,
387
+ ...h === "y" ? { y: c.value } : { x: c.value },
388
+ stroke: V[g].ref,
318
389
  strokeWidth: 1,
319
390
  strokeDasharray: "4 4",
320
- ifOverflow: m === "y" ? "extendDomain" : "visible",
391
+ ifOverflow: h === "y" ? "extendDomain" : "visible",
321
392
  label: c.label ? /* @__PURE__ */ e(
322
- Qe,
393
+ st,
323
394
  {
324
395
  label: c.label,
325
396
  value: typeof c.value == "number" ? n(c.value) : String(c.value),
326
- color: v,
327
- axis: m
397
+ color: g,
398
+ axis: h
328
399
  }
329
400
  ) : void 0
330
401
  },
@@ -332,45 +403,45 @@ function we(t, n) {
332
403
  )
333
404
  );
334
405
  } else {
335
- h += 1;
336
- const m = h;
337
- u.push(
406
+ u += 1;
407
+ const h = u;
408
+ d.push(
338
409
  /* @__PURE__ */ e(
339
- je,
410
+ qe,
340
411
  {
341
412
  x: c.x,
342
413
  y: c.y,
343
414
  ifOverflow: "visible",
344
- shape: (w) => /* @__PURE__ */ e(Je, { cx: w.cx, cy: w.cy, n: m, ann: c, onEnter: i, onLeave: o })
415
+ shape: (N) => /* @__PURE__ */ e(dt, { cx: N.cx, cy: N.cy, n: h, ann: c, onEnter: i, onLeave: l })
345
416
  },
346
417
  `ann-${b}`
347
418
  )
348
419
  );
349
420
  }
350
- }), { back: x, front: u };
351
- }, [t, n, o]);
352
- return { back: a, front: l, hovered: r };
421
+ }), { back: f, front: d };
422
+ }, [t, n, l]);
423
+ return { back: a, front: o, hovered: r };
353
424
  }
354
- function K({
425
+ function q({
355
426
  items: t,
356
427
  align: n = "end",
357
428
  className: r,
358
429
  onToggle: i
359
430
  }) {
360
- const o = {
431
+ const l = {
361
432
  start: "justify-start",
362
433
  center: "justify-center",
363
434
  end: "justify-end"
364
435
  }[n];
365
- return /* @__PURE__ */ e("div", { className: O("mb-3 flex flex-wrap items-center gap-x-4 gap-y-1", o, r), children: t.map(
366
- (a) => i && a.key !== void 0 ? /* @__PURE__ */ y(
436
+ return /* @__PURE__ */ e("div", { className: I("mb-3 flex flex-wrap items-center gap-x-4 gap-y-1", l, r), children: t.map(
437
+ (a) => i && a.key !== void 0 ? /* @__PURE__ */ A(
367
438
  "button",
368
439
  {
369
440
  type: "button",
370
441
  "aria-pressed": !a.hidden,
371
442
  "aria-label": `Toggle ${a.label} series`,
372
443
  onClick: () => i(a.key),
373
- className: O(
444
+ className: I(
374
445
  "inline-flex cursor-pointer items-center gap-1.5 rounded-sm text-s outline-none",
375
446
  "transition-colors duration-150 ease-out motion-reduce:transition-none",
376
447
  "focus-visible:ring-2 focus-visible:ring-ring",
@@ -381,7 +452,7 @@ function K({
381
452
  "span",
382
453
  {
383
454
  "aria-hidden": !0,
384
- className: O(
455
+ className: I(
385
456
  "size-2 rounded-dot transition-opacity duration-150 ease-out motion-reduce:transition-none",
386
457
  a.hidden && "opacity-25"
387
458
  ),
@@ -392,195 +463,283 @@ function K({
392
463
  ]
393
464
  },
394
465
  a.label
395
- ) : /* @__PURE__ */ y("span", { className: "inline-flex items-center gap-1.5 text-s text-secondary", children: [
466
+ ) : /* @__PURE__ */ A("span", { className: "inline-flex items-center gap-1.5 text-s text-secondary", children: [
396
467
  /* @__PURE__ */ e("span", { "aria-hidden": !0, className: "size-2 rounded-dot", style: { background: a.color } }),
397
468
  a.label
398
469
  ] }, a.label)
399
470
  ) });
400
471
  }
401
- const P = R.forwardRef(
402
- ({ className: t, height: n, legendItems: r, hovered: i, format: o, onLegendToggle: a, hoverRef: l, children: x, ...u }, h) => {
403
- var v;
404
- const c = R.useRef(null);
405
- return /* @__PURE__ */ y("div", { ref: (m) => {
406
- c.current = m, l && (l.current = m), typeof h == "function" ? h(m) : h && (h.current = m);
407
- }, className: O("relative w-full font-sans", t), ...u, children: [
408
- r && /* @__PURE__ */ e(K, { items: r, onToggle: a }),
409
- /* @__PURE__ */ e(V, { width: "100%", height: Math.max(n, D), children: x }),
410
- /* @__PURE__ */ e(Ke, { hovered: i, frameWidth: ((v = c.current) == null ? void 0 : v.clientWidth) ?? 0, format: o })
472
+ const X = C.forwardRef(
473
+ ({
474
+ className: t,
475
+ height: n,
476
+ legendItems: r,
477
+ title: i,
478
+ subtitle: l,
479
+ legendPlacement: a,
480
+ hovered: o,
481
+ format: f,
482
+ onLegendToggle: d,
483
+ hoverRef: u,
484
+ children: c,
485
+ ...b
486
+ }, g) => {
487
+ var m;
488
+ const h = C.useRef(null), N = (x) => {
489
+ h.current = x, u && (u.current = x), typeof g == "function" ? g(x) : g && (g.current = x);
490
+ }, M = i != null || l != null, p = (a ?? (M ? "header" : "top")) === "header" && r != null;
491
+ return /* @__PURE__ */ A("div", { ref: N, className: I("relative w-full font-sans", t), ...b, children: [
492
+ (M || p) && // The header row: title block leads, the legend trails on the same
493
+ // row. 36px separates the header block from the plot.
494
+ /* @__PURE__ */ A(
495
+ "div",
496
+ {
497
+ "data-slot": "chart-header",
498
+ className: I(
499
+ "flex flex-wrap items-start gap-x-6 gap-y-2",
500
+ M ? "justify-between" : "justify-end",
501
+ p ? "mb-9" : "mb-3"
502
+ ),
503
+ children: [
504
+ M && /* @__PURE__ */ A("div", { className: "flex min-w-0 flex-col gap-0.5", children: [
505
+ i != null && /* @__PURE__ */ e("div", { className: "font-heading text-l font-medium text-on-white-primary", children: i }),
506
+ l != null && /* @__PURE__ */ e("div", { className: "text-s text-on-white-secondary", children: l })
507
+ ] }),
508
+ p && r && /* @__PURE__ */ e(q, { items: r, onToggle: d, className: "mb-0 pt-1" })
509
+ ]
510
+ }
511
+ ),
512
+ r && !p && /* @__PURE__ */ e(q, { items: r, onToggle: d }),
513
+ /* @__PURE__ */ e(J, { width: "100%", height: Math.max(n, P), children: c }),
514
+ /* @__PURE__ */ e(ut, { hovered: o, frameWidth: ((m = h.current) == null ? void 0 : m.clientWidth) ?? 0, format: f })
411
515
  ] });
412
516
  }
413
517
  );
414
- P.displayName = "ChartFrame";
415
- function ee(t) {
518
+ X.displayName = "ChartFrame";
519
+ function oe(t) {
416
520
  const {
417
521
  data: n,
418
522
  categoryKey: r,
419
523
  series: i,
420
- seriesLabels: o,
524
+ seriesLabels: l,
421
525
  highlight: a,
422
- annotations: l,
423
- grid: x = !1,
424
- legend: u,
425
- showYAxis: h = !0,
526
+ annotations: o,
527
+ grid: f = !1,
528
+ legend: d,
529
+ showYAxis: u = !0,
426
530
  formatValue: c,
427
531
  xScale: b = "category",
428
- xDomain: v,
429
- yDomain: m,
430
- xTickFormatter: w,
532
+ xDomain: g,
533
+ yDomain: h,
534
+ xTickFormatter: N,
431
535
  yTickFormatter: M,
432
- yAxisWidth: A = 44
433
- } = t, g = R.useMemo(() => i ?? be(n, r), [i, n, r]), f = c ?? k, N = M ?? (($) => typeof $ == "number" ? f($) : $), S = we(l, f), C = ($, E) => a && g.includes(a) ? $ === a ? "var(--color-chart-1)" : oe : q(E), d = ($) => (o == null ? void 0 : o[$]) ?? $, [s, p] = R.useState(
536
+ yAxisWidth: R = 44,
537
+ title: p,
538
+ subtitle: m,
539
+ legendPlacement: x
540
+ } = t, y = { title: p, subtitle: m, legendPlacement: x }, L = C.useMemo(() => i ?? $e(n, r), [i, n, r]), $ = c ?? k, s = M ?? ((S) => typeof S == "number" ? $(S) : S), O = Fe(o, $), w = (S, H) => a && L.includes(a) ? S === a ? "var(--color-chart-1)" : ie : ae(H), F = (S) => (l == null ? void 0 : l[S]) ?? S, [T, D] = C.useState(
434
541
  () => /* @__PURE__ */ new Set()
435
- ), L = R.useCallback(($) => {
436
- p((E) => {
437
- const Y = new Set(E);
438
- return Y.has($) ? Y.delete($) : Y.add($), Y;
542
+ ), _ = C.useCallback((S) => {
543
+ D((H) => {
544
+ const B = new Set(H);
545
+ return B.has(S) ? B.delete(S) : B.add(S), B;
439
546
  });
440
- }, []), F = ($) => s.has($), G = u ?? g.length > 1 ? g.map(($, E) => ({
441
- key: $,
442
- label: d($),
443
- color: C($, E),
444
- hidden: s.has($)
547
+ }, []), E = (S) => T.has(S), Z = d ?? L.length > 1 ? L.map((S, H) => ({
548
+ key: S,
549
+ label: F(S),
550
+ color: w(S, H),
551
+ hidden: T.has(S)
445
552
  })) : null;
446
553
  return {
447
- names: g,
448
- format: f,
449
- layers: S,
450
- legendItems: G,
554
+ names: L,
555
+ format: $,
556
+ layers: O,
557
+ legendItems: Z,
558
+ header: y,
451
559
  furniture: [
452
560
  /* Gridlines one step below the border token — guides, not content. */
453
- x ? /* @__PURE__ */ e(ae, { vertical: !1, stroke: "var(--chart-grid)" }, "grid") : null,
561
+ f ? /* @__PURE__ */ e(ue, { vertical: !1, stroke: "var(--chart-grid)" }, "grid") : null,
454
562
  /* @__PURE__ */ e(
455
- ie,
563
+ me,
456
564
  {
457
565
  dataKey: r,
458
566
  type: b === "time" ? "number" : "category",
459
567
  scale: b === "time" ? "time" : "auto",
460
- domain: b === "time" ? v ?? ["dataMin", "dataMax"] : v,
461
- allowDataOverflow: !!v,
568
+ domain: b === "time" ? g ?? ["dataMin", "dataMax"] : g,
569
+ allowDataOverflow: !!g,
462
570
  axisLine: { stroke: "var(--chart-axis)" },
463
571
  tickLine: !1,
464
572
  minTickGap: 28,
465
573
  tickMargin: 24,
466
574
  padding: { left: 16, right: 16 },
467
575
  height: 40,
468
- tick: /* @__PURE__ */ e(H, { anchor: "middle", dy: 0, format: w })
576
+ tick: /* @__PURE__ */ e(W, { anchor: "middle", dy: 0, format: N })
469
577
  },
470
578
  "x"
471
579
  ),
472
- h ? /* @__PURE__ */ e(
473
- Z,
580
+ u ? /* @__PURE__ */ e(
581
+ ne,
474
582
  {
475
- width: A,
476
- domain: m,
477
- allowDataOverflow: !!m,
583
+ width: R,
584
+ domain: h,
585
+ allowDataOverflow: !!h,
478
586
  axisLine: { stroke: "var(--chart-axis)" },
479
587
  tickLine: !1,
480
588
  tickMargin: 12,
481
- tick: /* @__PURE__ */ e(H, { anchor: "end", dy: "0.32em", format: N })
589
+ tick: /* @__PURE__ */ e(W, { anchor: "end", dy: "0.32em", format: s })
482
590
  },
483
591
  "y"
484
592
  ) : null
485
593
  ],
486
- colorFor: C,
487
- labelFor: d,
488
- toggleSeries: L,
489
- isHidden: F
594
+ colorFor: w,
595
+ labelFor: F,
596
+ toggleSeries: _,
597
+ isHidden: E
490
598
  };
491
599
  }
492
- const D = 300, U = { top: 24, right: 12, bottom: 8, left: 0 };
493
- function le(t, n, r, i) {
600
+ const P = 300, K = { top: 24, right: 12, bottom: 8, left: 0 };
601
+ function fe(t, n, r, i) {
494
602
  if (i === !0) return new Set(t);
495
603
  if (i === !1) return /* @__PURE__ */ new Set();
496
604
  if (r && t.includes(r)) {
497
- const a = (n ?? []).filter((l) => l !== r);
605
+ const a = (n ?? []).filter((o) => o !== r);
498
606
  return /* @__PURE__ */ new Set([r, ...a]);
499
607
  }
500
608
  return t.filter((a) => !(n != null && n.includes(a))).length === 1 ? new Set(t) : /* @__PURE__ */ new Set();
501
609
  }
502
- function Ae(t, n, r) {
503
- return R.useCallback(
504
- (i, o) => {
505
- if (!(n != null && n.includes(i))) return r(i, o);
506
- const a = t.filter((x) => !n.includes(x)), l = a[n.indexOf(i)] ?? a[0];
507
- return l ? r(l, t.indexOf(l)) : r(i, o);
610
+ function Ie(t, n, r) {
611
+ return C.useCallback(
612
+ (i, l) => {
613
+ if (!(n != null && n.includes(i))) return r(i, l);
614
+ const a = t.filter((f) => !n.includes(f)), o = a[n.indexOf(i)] ?? a[0];
615
+ return o ? r(o, t.indexOf(o)) : r(i, l);
508
616
  },
509
617
  [t, n, r]
510
618
  );
511
619
  }
512
- const et = R.forwardRef(
620
+ const mt = C.forwardRef(
513
621
  // Straight segments by default: the house line is a solid stroke with a DOT
514
622
  // at every observation — the data points are visible, the path connects them
515
623
  // without inventing values between them.
516
624
  // A smooth curve invents values between observations; opt back in with
517
625
  // `curve="natural"` when the interpolation is the point.
518
- ({ height: t = D, curve: n = "linear", forecastKeys: r, animatedSeriesKeys: i, showValues: o, className: a, ...l }, x) => {
519
- const { names: u, format: h, layers: c, legendItems: b, furniture: v, colorFor: m, labelFor: w, toggleSeries: M, isHidden: A } = ee(l), g = Ae(u, r, m), f = le(u, r, l.highlight, o), N = ge(u, r), S = new Set(u.filter((s) => !A(s)).map(N)), C = ve(N, S.size > 1), { activeIndex: d } = C;
520
- return /* @__PURE__ */ e(P, { ref: x, className: a, height: t, legendItems: b, hovered: c.hovered, format: h, onLegendToggle: M, hoverRef: C.frameRef, children: /* @__PURE__ */ y(ye, { data: l.data, margin: U, ...C.handlers, children: [
521
- v,
522
- l.tooltip !== !1 && /* @__PURE__ */ e(
523
- T,
626
+ ({ height: t = P, curve: n = "linear", forecastKeys: r, animatedSeriesKeys: i, showValues: l = !0, gradientFill: a = !0, className: o, ...f }, d) => {
627
+ const { names: u, format: c, layers: b, legendItems: g, header: h, furniture: N, colorFor: M, labelFor: R, toggleSeries: p, isHidden: m } = oe(f), x = Ie(u, r, M), y = fe(u, r, f.highlight, l), L = C.useId().replace(/[^a-zA-Z0-9]/g, ""), $ = a ? u.filter((v) => !(r != null && r.includes(v))) : [], s = Le(u, r), O = new Set(u.filter((v) => !m(v)).map(s)), w = ye(s, O.size > 1), { activeIndex: F } = w, T = (v) => {
628
+ if (!(r != null && r.includes(v))) return;
629
+ const S = s(v);
630
+ if (S !== v)
631
+ return (H) => {
632
+ var Q;
633
+ const B = (Q = f.data[H]) == null ? void 0 : Q[S];
634
+ return B != null && B !== "" && !m(S);
635
+ };
636
+ }, D = u.filter((v) => y.has(v) && !m(v)), _ = (v, S) => {
637
+ var B;
638
+ const H = (B = f.data[v]) == null ? void 0 : B[S];
639
+ return typeof H == "number" && !Number.isNaN(H) ? H : null;
640
+ };
641
+ let E = 0;
642
+ for (let v = 0; v < f.data.length; v++)
643
+ for (const S of D) E = Math.max(E, Math.abs(_(v, S) ?? 0));
644
+ const Z = (v) => {
645
+ if (D.length < 2 || E === 0) return;
646
+ const S = D.indexOf(v);
647
+ return (H) => {
648
+ const B = _(H, v);
649
+ return B == null ? !1 : D.some((Q, Ee) => {
650
+ if (Q === v) return !1;
651
+ const ee = _(H, Q);
652
+ return ee == null ? !1 : (ee > B || ee === B && Ee < S) && (ee - B) / E < 0.1;
653
+ });
654
+ };
655
+ };
656
+ return /* @__PURE__ */ e(X, { ref: d, className: o, height: t, legendItems: g, ...h, hovered: b.hovered, format: c, onLegendToggle: p, hoverRef: w.frameRef, children: /* @__PURE__ */ A(pe, { data: f.data, margin: K, ...w.handlers, children: [
657
+ $.length > 0 && /* @__PURE__ */ e("defs", { children: $.map((v) => /* @__PURE__ */ A("linearGradient", { id: `${L}-${u.indexOf(v)}`, x1: "0", y1: "0", x2: "0", y2: "1", children: [
658
+ /* @__PURE__ */ e("stop", { offset: "0%", stopColor: x(v, u.indexOf(v)), stopOpacity: 0.2 }),
659
+ /* @__PURE__ */ e("stop", { offset: "100%", stopColor: x(v, u.indexOf(v)), stopOpacity: 0 })
660
+ ] }, v)) }),
661
+ N,
662
+ f.tooltip !== !1 && /* @__PURE__ */ e(
663
+ j,
524
664
  {
525
665
  content: /* @__PURE__ */ e(
526
- I,
666
+ G,
527
667
  {
528
- format: h,
529
- renderer: l.tooltip
668
+ format: c,
669
+ renderer: f.tooltip
530
670
  }
531
671
  ),
532
672
  cursor: !1,
533
673
  isAnimationActive: !1
534
674
  }
535
675
  ),
536
- c.back,
537
- u.map((s, p) => /* @__PURE__ */ e(
538
- ue,
676
+ b.back,
677
+ $.map((v) => /* @__PURE__ */ e(
678
+ Ne,
679
+ {
680
+ dataKey: v,
681
+ type: n,
682
+ className: I(z, w.isDimmed(v) && "opacity-30"),
683
+ stroke: "none",
684
+ fill: `url(#${L}-${u.indexOf(v)})`,
685
+ dot: !1,
686
+ activeDot: !1,
687
+ legendType: "none",
688
+ tooltipType: "none",
689
+ hide: m(v),
690
+ isAnimationActive: !1
691
+ },
692
+ `${v}-fill`
693
+ )),
694
+ u.map((v, S) => /* @__PURE__ */ e(
695
+ we,
539
696
  {
540
- dataKey: s,
541
- name: w(s),
697
+ dataKey: v,
698
+ name: R(v),
542
699
  type: n,
543
- className: O(B, C.isDimmed(s) && "opacity-30"),
544
- stroke: g(s, p),
545
- strokeWidth: J,
546
- strokeDasharray: r != null && r.includes(s) ? "6 4" : void 0,
547
- dot: /* @__PURE__ */ e(_, { color: g(s, p), seriesKey: s }),
548
- activeDot: C.isDimmed(s) ? !1 : /* @__PURE__ */ e(_, { color: g(s, p), active: !0 }),
549
- label: f.has(s) ? /* @__PURE__ */ e(
550
- pe,
700
+ className: I(z, w.isDimmed(v) && "opacity-30"),
701
+ stroke: x(v, S),
702
+ strokeWidth: le,
703
+ strokeDasharray: r != null && r.includes(v) ? "6 4" : void 0,
704
+ dot: /* @__PURE__ */ e(U, { color: x(v, S), seriesKey: v }),
705
+ activeDot: w.isDimmed(v) ? !1 : /* @__PURE__ */ e(U, { color: x(v, S), active: !0 }),
706
+ label: y.has(v) ? /* @__PURE__ */ e(
707
+ Oe,
551
708
  {
552
- color: g(s, p),
553
- format: h,
554
- hidden: d != null
709
+ color: Me(x(v, S)) ? void 0 : x(v, S),
710
+ format: c,
711
+ hidden: F != null,
712
+ skip: T(v),
713
+ below: Z(v)
555
714
  }
556
715
  ) : void 0,
557
- hide: A(s),
558
- isAnimationActive: (i == null ? void 0 : i.includes(s)) ?? !1
716
+ hide: m(v),
717
+ isAnimationActive: (i == null ? void 0 : i.includes(v)) ?? !1
559
718
  },
560
- s
719
+ v
561
720
  )),
562
- c.front
721
+ b.front
563
722
  ] }) });
564
723
  }
565
724
  );
566
- et.displayName = "LineChart";
567
- const tt = R.forwardRef(
568
- ({ height: t = D, curve: n = "linear", stacked: r = !1, forecastKeys: i, showValues: o, className: a, ...l }, x) => {
569
- const { names: u, format: h, layers: c, legendItems: b, furniture: v, colorFor: m, labelFor: w, toggleSeries: M, isHidden: A } = ee(l), g = Ae(u, i, m), f = r ? /* @__PURE__ */ new Set() : le(u, i, l.highlight, o), N = ge(u, i), S = new Set(u.filter((p) => !A(p)).map(N)), C = ve(N, S.size > 1), { activeIndex: d } = C, s = R.useId().replace(/[^a-zA-Z0-9]/g, "");
570
- return /* @__PURE__ */ e(P, { ref: x, className: a, height: t, legendItems: b, hovered: c.hovered, format: h, onLegendToggle: M, hoverRef: C.frameRef, children: /* @__PURE__ */ y(Re, { data: l.data, margin: U, ...C.handlers, children: [
571
- /* @__PURE__ */ e("defs", { children: u.map((p, L) => /* @__PURE__ */ y("linearGradient", { id: `${s}-${L}`, x1: "0", y1: "0", x2: "0", y2: "1", children: [
572
- /* @__PURE__ */ e("stop", { offset: "0%", stopColor: m(p, L), stopOpacity: 0.18 }),
573
- /* @__PURE__ */ e("stop", { offset: "100%", stopColor: m(p, L), stopOpacity: 0.02 })
574
- ] }, p)) }),
575
- v,
576
- l.tooltip !== !1 && /* @__PURE__ */ e(
577
- T,
725
+ mt.displayName = "LineChart";
726
+ const ft = C.forwardRef(
727
+ ({ height: t = P, curve: n = "linear", stacked: r = !1, forecastKeys: i, showValues: l, className: a, ...o }, f) => {
728
+ const { names: d, format: u, layers: c, legendItems: b, header: g, furniture: h, colorFor: N, labelFor: M, toggleSeries: R, isHidden: p } = oe(o), m = Ie(d, i, N), x = r ? /* @__PURE__ */ new Set() : fe(d, i, o.highlight, l), y = Le(d, i), L = new Set(d.filter((w) => !p(w)).map(y)), $ = ye(y, L.size > 1), { activeIndex: s } = $, O = C.useId().replace(/[^a-zA-Z0-9]/g, "");
729
+ return /* @__PURE__ */ e(X, { ref: f, className: a, height: t, legendItems: b, ...g, hovered: c.hovered, format: u, onLegendToggle: R, hoverRef: $.frameRef, children: /* @__PURE__ */ A(Be, { data: o.data, margin: K, ...$.handlers, children: [
730
+ /* @__PURE__ */ e("defs", { children: d.map((w, F) => /* @__PURE__ */ A("linearGradient", { id: `${O}-${F}`, x1: "0", y1: "0", x2: "0", y2: "1", children: [
731
+ /* @__PURE__ */ e("stop", { offset: "0%", stopColor: N(w, F), stopOpacity: 0.18 }),
732
+ /* @__PURE__ */ e("stop", { offset: "100%", stopColor: N(w, F), stopOpacity: 0.02 })
733
+ ] }, w)) }),
734
+ h,
735
+ o.tooltip !== !1 && /* @__PURE__ */ e(
736
+ j,
578
737
  {
579
738
  content: /* @__PURE__ */ e(
580
- I,
739
+ G,
581
740
  {
582
- format: h,
583
- renderer: l.tooltip
741
+ format: u,
742
+ renderer: o.tooltip
584
743
  }
585
744
  ),
586
745
  cursor: !1,
@@ -588,43 +747,50 @@ const tt = R.forwardRef(
588
747
  }
589
748
  ),
590
749
  c.back,
591
- u.map((p, L) => /* @__PURE__ */ e(
592
- Me,
750
+ d.map((w, F) => /* @__PURE__ */ e(
751
+ Ne,
593
752
  {
594
- dataKey: p,
595
- name: w(p),
753
+ dataKey: w,
754
+ name: M(w),
596
755
  type: n,
597
- className: O(B, C.isDimmed(p) && "opacity-30"),
756
+ className: I(z, $.isDimmed(w) && "opacity-30"),
598
757
  stackId: r ? "stack" : void 0,
599
- stroke: g(p, L),
600
- strokeWidth: J,
601
- strokeDasharray: i != null && i.includes(p) ? "6 4" : void 0,
602
- fill: `url(#${s}-${L})`,
603
- dot: /* @__PURE__ */ e(_, { color: g(p, L), seriesKey: p }),
604
- activeDot: C.isDimmed(p) ? !1 : /* @__PURE__ */ e(_, { color: g(p, L), active: !0 }),
605
- label: f.has(p) ? /* @__PURE__ */ e(pe, { color: g(p, L), format: h, hidden: d != null }) : void 0,
606
- hide: A(p),
758
+ stroke: m(w, F),
759
+ strokeWidth: le,
760
+ strokeDasharray: i != null && i.includes(w) ? "6 4" : void 0,
761
+ fill: `url(#${O}-${F})`,
762
+ dot: /* @__PURE__ */ e(U, { color: m(w, F), seriesKey: w }),
763
+ activeDot: $.isDimmed(w) ? !1 : /* @__PURE__ */ e(U, { color: m(w, F), active: !0 }),
764
+ label: x.has(w) ? /* @__PURE__ */ e(Oe, { color: m(w, F), format: u, hidden: s != null }) : void 0,
765
+ hide: p(w),
607
766
  isAnimationActive: !1
608
767
  },
609
- p
768
+ w
610
769
  )),
611
770
  c.front
612
771
  ] }) });
613
772
  }
614
773
  );
615
- tt.displayName = "AreaChart";
616
- const nt = R.forwardRef(
774
+ ft.displayName = "AreaChart";
775
+ const ht = C.forwardRef(
617
776
  ({
618
- height: t = D,
777
+ height: t = P,
619
778
  stacked: n = !1,
620
779
  layout: r = "vertical",
621
- showValues: i,
622
- className: o,
780
+ showValues: i = !0,
781
+ className: l,
623
782
  ...a
624
- }, l) => {
625
- const { names: x, format: u, layers: h, legendItems: c, furniture: b, colorFor: v, labelFor: m, toggleSeries: w, isHidden: M } = ee(a), A = r === "horizontal", g = n ? /* @__PURE__ */ new Set() : le(x, void 0, a.highlight, i), f = a.xTickFormatter ?? ((s) => typeof s == "number" ? u(s) : s), N = [
783
+ }, o) => {
784
+ const { names: f, format: d, layers: u, legendItems: c, header: b, furniture: g, colorFor: h, labelFor: N, toggleSeries: M, isHidden: R } = oe(a), p = r === "horizontal", m = n ? /* @__PURE__ */ new Set() : fe(f, void 0, a.highlight, i), x = f.filter((T) => !R(T)), y = n ? x[x.length - 1] : void 0, L = a.data.map((T) => {
785
+ let D = null;
786
+ for (const _ of x) {
787
+ const E = T[_];
788
+ typeof E == "number" && !Number.isNaN(E) && (D = (D ?? 0) + E);
789
+ }
790
+ return D;
791
+ }), $ = a.xTickFormatter ?? ((T) => typeof T == "number" ? d(T) : T), s = [
626
792
  a.grid !== !1 ? /* @__PURE__ */ e(
627
- ae,
793
+ ue,
628
794
  {
629
795
  horizontal: !1,
630
796
  vertical: !0,
@@ -633,7 +799,7 @@ const nt = R.forwardRef(
633
799
  "grid"
634
800
  ) : null,
635
801
  /* @__PURE__ */ e(
636
- ie,
802
+ me,
637
803
  {
638
804
  type: "number",
639
805
  domain: a.xDomain,
@@ -642,12 +808,12 @@ const nt = R.forwardRef(
642
808
  tickLine: !1,
643
809
  minTickGap: 28,
644
810
  tickMargin: 10,
645
- tick: /* @__PURE__ */ e(H, { anchor: "middle", dy: 0, format: f })
811
+ tick: /* @__PURE__ */ e(W, { anchor: "middle", dy: 0, format: $ })
646
812
  },
647
813
  "x"
648
814
  ),
649
815
  a.showYAxis !== !1 ? /* @__PURE__ */ e(
650
- Z,
816
+ ne,
651
817
  {
652
818
  type: "category",
653
819
  dataKey: a.categoryKey,
@@ -656,7 +822,7 @@ const nt = R.forwardRef(
656
822
  tickLine: !1,
657
823
  tickMargin: 6,
658
824
  tick: /* @__PURE__ */ e(
659
- H,
825
+ W,
660
826
  {
661
827
  anchor: "end",
662
828
  dy: "0.32em",
@@ -666,24 +832,24 @@ const nt = R.forwardRef(
666
832
  },
667
833
  "y"
668
834
  ) : null
669
- ], S = a.highlight && x.length === 1 && !x.includes(a.highlight) ? a.highlight : null, { activeIndex: C, handlers: d } = xe();
670
- return /* @__PURE__ */ e(P, { ref: l, className: o, height: t, legendItems: c, hovered: h.hovered, format: u, onLegendToggle: w, children: /* @__PURE__ */ y(
671
- Se,
835
+ ], O = a.highlight && f.length === 1 && !f.includes(a.highlight) ? a.highlight : null, { activeIndex: w, handlers: F } = Re();
836
+ return /* @__PURE__ */ e(X, { ref: o, className: l, height: t, legendItems: c, ...b, hovered: u.hovered, format: d, onLegendToggle: M, children: /* @__PURE__ */ A(
837
+ He,
672
838
  {
673
839
  data: a.data,
674
- layout: A ? "vertical" : "horizontal",
675
- margin: U,
840
+ layout: p ? "vertical" : "horizontal",
841
+ margin: K,
676
842
  barCategoryGap: "24%",
677
- ...d,
843
+ ...F,
678
844
  children: [
679
- A ? N : b,
845
+ p ? s : g,
680
846
  a.tooltip !== !1 && /* @__PURE__ */ e(
681
- T,
847
+ j,
682
848
  {
683
849
  content: /* @__PURE__ */ e(
684
- I,
850
+ G,
685
851
  {
686
- format: u,
852
+ format: d,
687
853
  renderer: a.tooltip
688
854
  }
689
855
  ),
@@ -691,61 +857,91 @@ const nt = R.forwardRef(
691
857
  isAnimationActive: !1
692
858
  }
693
859
  ),
694
- h.back,
695
- x.map((s, p) => {
696
- const L = n ? p === x.length - 1 : !0, F = A ? [0, 4, 4, 0] : [4, 4, 0, 0];
697
- return /* @__PURE__ */ e(
698
- me,
860
+ u.back,
861
+ f.map((T, D) => {
862
+ const _ = n ? T === y : !0, E = p ? [0, 4, 4, 0] : [4, 4, 0, 0];
863
+ return /* @__PURE__ */ A(
864
+ Ae,
699
865
  {
700
- dataKey: s,
701
- name: m(s),
866
+ dataKey: T,
867
+ name: N(T),
702
868
  stackId: n ? "stack" : void 0,
703
- fill: v(s, p),
704
- radius: L ? F : 0,
869
+ fill: h(T, D),
870
+ radius: _ ? E : 0,
705
871
  maxBarSize: 48,
706
- label: g.has(s) ? /* @__PURE__ */ e(Ze, { format: u, horizontal: A }) : void 0,
707
- hide: M(s),
872
+ label: m.has(T) ? /* @__PURE__ */ e(it, { format: d, horizontal: p }) : void 0,
873
+ hide: R(T),
708
874
  isAnimationActive: !1,
709
- children: a.data.map((G, z) => /* @__PURE__ */ e(
710
- Q,
711
- {
712
- fill: S ? G[a.categoryKey] === S ? "var(--color-chart-1)" : oe : v(s, p),
713
- className: B,
714
- opacity: j(z, C)
715
- },
716
- z
717
- ))
875
+ children: [
876
+ n && i && /* @__PURE__ */ e(
877
+ he,
878
+ {
879
+ dataKey: T,
880
+ content: /* @__PURE__ */ e(
881
+ lt,
882
+ {
883
+ format: d,
884
+ horizontal: p,
885
+ light: Me(h(T, D))
886
+ }
887
+ )
888
+ }
889
+ ),
890
+ n && i && T === y && /* @__PURE__ */ e(
891
+ he,
892
+ {
893
+ dataKey: T,
894
+ content: /* @__PURE__ */ e(
895
+ ot,
896
+ {
897
+ totals: L,
898
+ format: d,
899
+ horizontal: p
900
+ }
901
+ )
902
+ }
903
+ ),
904
+ a.data.map((Z, v) => /* @__PURE__ */ e(
905
+ re,
906
+ {
907
+ fill: O ? Z[a.categoryKey] === O ? "var(--color-chart-1)" : ie : h(T, D),
908
+ className: z,
909
+ opacity: Y(v, w)
910
+ },
911
+ v
912
+ ))
913
+ ]
718
914
  },
719
- s
915
+ T
720
916
  );
721
917
  }),
722
- h.front
918
+ u.front
723
919
  ]
724
920
  }
725
921
  ) });
726
922
  }
727
923
  );
728
- nt.displayName = "BarChart";
729
- const Ce = R.forwardRef(
730
- ({ height: t = D, lineKeys: n, dualAxis: r = !1, stacked: i = !1, forecastKeys: o, className: a, ...l }, x) => {
731
- const { names: u, format: h, layers: c, furniture: b, colorFor: v, labelFor: m, toggleSeries: w, isHidden: M } = ee(l), A = u.filter((d) => !n.includes(d)), g = (d, s) => n.length ? "var(--chart-axis)" : v(d, s), f = (d, s) => n.length ? "var(--color-chart-1)" : v(d, s), N = u.length > 1 ? [
732
- ...A.map((d) => ({
733
- key: d,
734
- label: m(d),
735
- color: g(d, u.indexOf(d)),
736
- hidden: M(d)
924
+ ht.displayName = "BarChart";
925
+ const De = C.forwardRef(
926
+ ({ height: t = P, lineKeys: n, dualAxis: r = !1, stacked: i = !1, forecastKeys: l, className: a, ...o }, f) => {
927
+ const { names: d, format: u, layers: c, header: b, furniture: g, colorFor: h, labelFor: N, toggleSeries: M, isHidden: R } = oe(o), p = d.filter((s) => !n.includes(s)), m = (s, O) => n.length ? "var(--chart-axis)" : h(s, O), x = (s, O) => n.length ? "var(--color-chart-1)" : h(s, O), y = d.length > 1 ? [
928
+ ...p.map((s) => ({
929
+ key: s,
930
+ label: N(s),
931
+ color: m(s, d.indexOf(s)),
932
+ hidden: R(s)
737
933
  })),
738
- ...n.map((d) => ({
739
- key: d,
740
- label: m(d),
741
- color: f(d, u.indexOf(d)),
742
- hidden: M(d)
934
+ ...n.map((s) => ({
935
+ key: s,
936
+ label: N(s),
937
+ color: x(s, d.indexOf(s)),
938
+ hidden: R(s)
743
939
  }))
744
- ] : null, { activeIndex: S, handlers: C } = xe();
745
- return /* @__PURE__ */ e(P, { ref: x, className: a, height: t, legendItems: N, hovered: c.hovered, format: h, onLegendToggle: w, children: /* @__PURE__ */ y($e, { data: l.data, margin: U, barCategoryGap: "24%", ...C, children: [
746
- b,
940
+ ] : null, { activeIndex: L, handlers: $ } = Re();
941
+ return /* @__PURE__ */ e(X, { ref: f, className: a, height: t, legendItems: y, ...b, hovered: c.hovered, format: u, onLegendToggle: M, children: /* @__PURE__ */ A(pe, { data: o.data, margin: K, barCategoryGap: "24%", ...$, children: [
942
+ g,
747
943
  r && /* @__PURE__ */ e(
748
- Z,
944
+ ne,
749
945
  {
750
946
  yAxisId: "right",
751
947
  orientation: "right",
@@ -754,23 +950,23 @@ const Ce = R.forwardRef(
754
950
  tickLine: !1,
755
951
  tickMargin: 6,
756
952
  tick: /* @__PURE__ */ e(
757
- H,
953
+ W,
758
954
  {
759
955
  anchor: "start",
760
956
  dy: "0.32em",
761
- format: (d) => typeof d == "number" ? h(d) : d
957
+ format: (s) => typeof s == "number" ? u(s) : s
762
958
  }
763
959
  )
764
960
  }
765
961
  ),
766
- l.tooltip !== !1 && /* @__PURE__ */ e(
767
- T,
962
+ o.tooltip !== !1 && /* @__PURE__ */ e(
963
+ j,
768
964
  {
769
965
  content: /* @__PURE__ */ e(
770
- I,
966
+ G,
771
967
  {
772
- format: h,
773
- renderer: l.tooltip
968
+ format: u,
969
+ renderer: o.tooltip
774
970
  }
775
971
  ),
776
972
  cursor: !1,
@@ -778,120 +974,120 @@ const Ce = R.forwardRef(
778
974
  }
779
975
  ),
780
976
  c.back,
781
- A.map((d) => {
782
- const s = u.indexOf(d), p = i ? d === A[A.length - 1] : !0;
977
+ p.map((s) => {
978
+ const O = d.indexOf(s), w = i ? s === p[p.length - 1] : !0;
783
979
  return /* @__PURE__ */ e(
784
- me,
980
+ Ae,
785
981
  {
786
- dataKey: d,
787
- name: m(d),
982
+ dataKey: s,
983
+ name: N(s),
788
984
  stackId: i ? "stack" : void 0,
789
- fill: g(d, s),
790
- radius: p ? [4, 4, 0, 0] : 0,
985
+ fill: m(s, O),
986
+ radius: w ? [4, 4, 0, 0] : 0,
791
987
  maxBarSize: 48,
792
- hide: M(d),
988
+ hide: R(s),
793
989
  isAnimationActive: !1,
794
- children: l.data.map((L, F) => /* @__PURE__ */ e(
795
- Q,
990
+ children: o.data.map((F, T) => /* @__PURE__ */ e(
991
+ re,
796
992
  {
797
- fill: g(d, s),
798
- className: B,
799
- opacity: j(F, S)
993
+ fill: m(s, O),
994
+ className: z,
995
+ opacity: Y(T, L)
800
996
  },
801
- F
997
+ T
802
998
  ))
803
999
  },
804
- d
1000
+ s
805
1001
  );
806
1002
  }),
807
- n.map((d) => {
808
- const s = u.indexOf(d);
1003
+ n.map((s) => {
1004
+ const O = d.indexOf(s);
809
1005
  return /* @__PURE__ */ e(
810
- ue,
1006
+ we,
811
1007
  {
812
- dataKey: d,
813
- name: m(d),
1008
+ dataKey: s,
1009
+ name: N(s),
814
1010
  yAxisId: r ? "right" : void 0,
815
1011
  type: "linear",
816
- stroke: f(d, s),
817
- strokeWidth: J,
818
- strokeDasharray: o != null && o.includes(d) ? "6 4" : void 0,
819
- dot: /* @__PURE__ */ e(_, { color: f(d, s) }),
820
- activeDot: /* @__PURE__ */ e(_, { color: f(d, s), active: !0 }),
821
- hide: M(d),
1012
+ stroke: x(s, O),
1013
+ strokeWidth: le,
1014
+ strokeDasharray: l != null && l.includes(s) ? "6 4" : void 0,
1015
+ dot: /* @__PURE__ */ e(U, { color: x(s, O) }),
1016
+ activeDot: /* @__PURE__ */ e(U, { color: x(s, O), active: !0 }),
1017
+ hide: R(s),
822
1018
  isAnimationActive: !1
823
1019
  },
824
- d
1020
+ s
825
1021
  );
826
1022
  }),
827
1023
  c.front
828
1024
  ] }) });
829
1025
  }
830
1026
  );
831
- Ce.displayName = "ComboChart";
832
- const rt = R.forwardRef(
833
- (t, n) => /* @__PURE__ */ e(Ce, { ref: n, ...t })
1027
+ De.displayName = "ComboChart";
1028
+ const xt = C.forwardRef(
1029
+ (t, n) => /* @__PURE__ */ e(De, { ref: n, ...t })
834
1030
  );
835
- rt.displayName = "ComposedChart";
836
- const at = R.forwardRef(
1031
+ xt.displayName = "ComposedChart";
1032
+ const vt = C.forwardRef(
837
1033
  ({
838
1034
  data: t,
839
1035
  xKey: n,
840
1036
  yKey: r,
841
1037
  labelKey: i,
842
- annotations: o,
843
- height: a = D,
844
- grid: l = !1,
845
- showYAxis: x = !0,
846
- formatValue: u,
847
- xScale: h = "number",
1038
+ annotations: l,
1039
+ height: a = P,
1040
+ grid: o = !1,
1041
+ showYAxis: f = !0,
1042
+ formatValue: d,
1043
+ xScale: u = "number",
848
1044
  xDomain: c,
849
1045
  yDomain: b,
850
- xTickFormatter: v,
851
- yTickFormatter: m,
852
- yAxisWidth: w = 44,
1046
+ xTickFormatter: g,
1047
+ yTickFormatter: h,
1048
+ yAxisWidth: N = 44,
853
1049
  tooltip: M,
854
- className: A
855
- }, g) => {
856
- const f = u ?? k, N = v ?? ((d) => typeof d == "number" ? k(d) : d), S = m ?? ((d) => typeof d == "number" ? f(d) : d), C = we(o, f);
857
- return /* @__PURE__ */ e(P, { ref: g, className: A, height: a, legendItems: null, hovered: C.hovered, format: f, children: /* @__PURE__ */ y(Le, { margin: U, children: [
858
- l && /* @__PURE__ */ e(ae, { vertical: !1, stroke: "var(--chart-grid)" }),
1050
+ className: R
1051
+ }, p) => {
1052
+ const m = d ?? k, x = g ?? (($) => typeof $ == "number" ? k($) : $), y = h ?? (($) => typeof $ == "number" ? m($) : $), L = Fe(l, m);
1053
+ return /* @__PURE__ */ e(X, { ref: p, className: R, height: a, legendItems: null, hovered: L.hovered, format: m, children: /* @__PURE__ */ A(_e, { margin: K, children: [
1054
+ o && /* @__PURE__ */ e(ue, { vertical: !1, stroke: "var(--chart-grid)" }),
859
1055
  /* @__PURE__ */ e(
860
- ie,
1056
+ me,
861
1057
  {
862
1058
  type: "number",
863
1059
  dataKey: n,
864
- scale: h === "time" ? "time" : "auto",
865
- domain: c ?? (h === "time" ? ["dataMin", "dataMax"] : ["auto", "auto"]),
1060
+ scale: u === "time" ? "time" : "auto",
1061
+ domain: c ?? (u === "time" ? ["dataMin", "dataMax"] : ["auto", "auto"]),
866
1062
  allowDataOverflow: !!c,
867
1063
  axisLine: !1,
868
1064
  tickLine: !1,
869
1065
  minTickGap: 28,
870
1066
  tickMargin: 10,
871
- tick: /* @__PURE__ */ e(H, { anchor: "middle", dy: 0, format: N })
1067
+ tick: /* @__PURE__ */ e(W, { anchor: "middle", dy: 0, format: x })
872
1068
  }
873
1069
  ),
874
- x && /* @__PURE__ */ e(
875
- Z,
1070
+ f && /* @__PURE__ */ e(
1071
+ ne,
876
1072
  {
877
1073
  type: "number",
878
1074
  dataKey: r,
879
- width: w,
1075
+ width: N,
880
1076
  domain: b,
881
1077
  allowDataOverflow: !!b,
882
1078
  axisLine: !1,
883
1079
  tickLine: !1,
884
1080
  tickMargin: 6,
885
- tick: /* @__PURE__ */ e(H, { anchor: "end", dy: "0.32em", format: S })
1081
+ tick: /* @__PURE__ */ e(W, { anchor: "end", dy: "0.32em", format: y })
886
1082
  }
887
1083
  ),
888
1084
  M !== !1 && /* @__PURE__ */ e(
889
- T,
1085
+ j,
890
1086
  {
891
1087
  content: /* @__PURE__ */ e(
892
- I,
1088
+ G,
893
1089
  {
894
- format: f,
1090
+ format: m,
895
1091
  labelKey: i,
896
1092
  renderer: M
897
1093
  }
@@ -900,58 +1096,58 @@ const at = R.forwardRef(
900
1096
  isAnimationActive: !1
901
1097
  }
902
1098
  ),
903
- C.back,
1099
+ L.back,
904
1100
  /* @__PURE__ */ e(
905
- Oe,
1101
+ ze,
906
1102
  {
907
1103
  data: t,
908
1104
  fill: "var(--color-chart-1)",
909
- shape: (d) => /* @__PURE__ */ e("circle", { cx: d.cx, cy: d.cy, r: 4.5, fill: "var(--color-chart-1)", fillOpacity: 0.75 }),
1105
+ shape: ($) => /* @__PURE__ */ e("circle", { cx: $.cx, cy: $.cy, r: 4.5, fill: "var(--color-chart-1)", fillOpacity: 0.75 }),
910
1106
  isAnimationActive: !1
911
1107
  }
912
1108
  ),
913
- C.front
1109
+ L.front
914
1110
  ] }) });
915
1111
  }
916
1112
  );
917
- at.displayName = "ScatterChart";
918
- const it = R.forwardRef(
1113
+ vt.displayName = "ScatterChart";
1114
+ const bt = C.forwardRef(
919
1115
  ({
920
1116
  data: t,
921
1117
  nameKey: n,
922
1118
  valueKey: r,
923
1119
  donut: i = !0,
924
- centerLabel: o,
1120
+ centerLabel: l,
925
1121
  highlight: a,
926
- height: l = 260,
927
- legend: x = !0,
928
- formatValue: u,
929
- tooltip: h,
1122
+ height: o = 260,
1123
+ legend: f = !0,
1124
+ formatValue: d,
1125
+ tooltip: u,
930
1126
  className: c
931
1127
  }, b) => {
932
- const v = u ?? k, m = t.reduce((N, S) => N + (typeof S[r] == "number" ? S[r] : 0), 0), w = (N, S) => q(S), M = (N) => a && N !== a ? 0.3 : 1, [A, g] = R.useState(null), f = x ? t.map((N, S) => ({
933
- label: `${N[n]} · ${m ? Math.round(Number(N[r]) / m * 100) : 0}%`,
934
- color: w(String(N[n]), S)
1128
+ const g = d ?? k, h = t.reduce((x, y) => x + (typeof y[r] == "number" ? y[r] : 0), 0), N = (x, y) => ae(y), M = (x) => a && x !== a ? 0.3 : 1, [R, p] = C.useState(null), m = f ? t.map((x, y) => ({
1129
+ label: `${x[n]} · ${h ? Math.round(Number(x[r]) / h * 100) : 0}%`,
1130
+ color: N(String(x[n]), y)
935
1131
  })) : null;
936
- return /* @__PURE__ */ y("div", { ref: b, className: O("relative w-full font-sans", c), children: [
937
- f && /* @__PURE__ */ e(K, { items: f }),
938
- /* @__PURE__ */ y("div", { className: "relative", children: [
939
- /* @__PURE__ */ e(V, { width: "100%", height: l, children: /* @__PURE__ */ y(Fe, { margin: { top: 8, right: 8, bottom: 8, left: 8 }, children: [
940
- h !== !1 && /* @__PURE__ */ e(
941
- T,
1132
+ return /* @__PURE__ */ A("div", { ref: b, className: I("relative w-full font-sans", c), children: [
1133
+ m && /* @__PURE__ */ e(q, { items: m }),
1134
+ /* @__PURE__ */ A("div", { className: "relative", children: [
1135
+ /* @__PURE__ */ e(J, { width: "100%", height: o, children: /* @__PURE__ */ A(ke, { margin: { top: 8, right: 8, bottom: 8, left: 8 }, children: [
1136
+ u !== !1 && /* @__PURE__ */ e(
1137
+ j,
942
1138
  {
943
1139
  content: /* @__PURE__ */ e(
944
- I,
1140
+ G,
945
1141
  {
946
- format: v,
947
- renderer: h
1142
+ format: g,
1143
+ renderer: u
948
1144
  }
949
1145
  ),
950
1146
  isAnimationActive: !1
951
1147
  }
952
1148
  ),
953
1149
  /* @__PURE__ */ e(
954
- ke,
1150
+ je,
955
1151
  {
956
1152
  data: t,
957
1153
  dataKey: r,
@@ -962,61 +1158,61 @@ const it = R.forwardRef(
962
1158
  cornerRadius: i ? 4 : 2,
963
1159
  stroke: "none",
964
1160
  isAnimationActive: !1,
965
- onMouseEnter: (N, S) => g(S),
966
- onMouseLeave: () => g(null),
967
- children: t.map((N, S) => /* @__PURE__ */ e(
968
- Q,
1161
+ onMouseEnter: (x, y) => p(y),
1162
+ onMouseLeave: () => p(null),
1163
+ children: t.map((x, y) => /* @__PURE__ */ e(
1164
+ re,
969
1165
  {
970
1166
  role: "presentation",
971
1167
  "aria-hidden": "true",
972
- className: B,
973
- fill: w(String(N[n]), S),
974
- fillOpacity: M(String(N[n])),
975
- opacity: j(S, A)
1168
+ className: z,
1169
+ fill: N(String(x[n]), y),
1170
+ fillOpacity: M(String(x[n])),
1171
+ opacity: Y(y, R)
976
1172
  },
977
- String(N[n])
1173
+ String(x[n])
978
1174
  ))
979
1175
  }
980
1176
  )
981
1177
  ] }) }),
982
- i && /* @__PURE__ */ y("div", { className: "pointer-events-none absolute inset-0 flex flex-col items-center justify-center", children: [
983
- /* @__PURE__ */ e("div", { className: "text-xl font-medium text-foreground tabular-nums", children: v(m) }),
984
- o && /* @__PURE__ */ e("div", { className: "mt-0.5 text-xs font-normal tracking-wide uppercase text-tertiary", children: o })
1178
+ i && /* @__PURE__ */ A("div", { className: "pointer-events-none absolute inset-0 flex flex-col items-center justify-center", children: [
1179
+ /* @__PURE__ */ e("div", { className: "text-xl font-medium text-foreground tabular-nums", children: g(h) }),
1180
+ l && /* @__PURE__ */ e("div", { className: "mt-0.5 text-xs font-normal tracking-wide uppercase text-tertiary", children: l })
985
1181
  ] })
986
1182
  ] })
987
1183
  ] });
988
1184
  }
989
1185
  );
990
- it.displayName = "PieChart";
991
- const ot = R.forwardRef(
1186
+ bt.displayName = "PieChart";
1187
+ const gt = C.forwardRef(
992
1188
  ({
993
1189
  data: t,
994
1190
  categoryKey: n,
995
1191
  series: r,
996
1192
  seriesLabels: i,
997
- highlight: o,
1193
+ highlight: l,
998
1194
  maxValue: a,
999
- height: l = 300,
1000
- legend: x,
1001
- formatValue: u,
1002
- tooltip: h,
1195
+ height: o = 300,
1196
+ legend: f,
1197
+ formatValue: d,
1198
+ tooltip: u,
1003
1199
  className: c
1004
1200
  }, b) => {
1005
- const v = R.useMemo(
1006
- () => r ?? be(t, n),
1201
+ const g = C.useMemo(
1202
+ () => r ?? $e(t, n),
1007
1203
  [n, t, r]
1008
- ), m = u ?? k, w = a ?? Math.max(
1204
+ ), h = d ?? k, N = a ?? Math.max(
1009
1205
  1,
1010
1206
  ...t.flatMap(
1011
- (f) => v.map(
1012
- (N) => typeof f[N] == "number" ? f[N] : 0
1207
+ (m) => g.map(
1208
+ (x) => typeof m[x] == "number" ? m[x] : 0
1013
1209
  )
1014
1210
  )
1015
- ), M = (f) => (i == null ? void 0 : i[f]) ?? f, A = (f, N) => o && v.includes(o) ? f === o ? "var(--color-chart-1)" : oe : q(N), g = x ?? v.length > 1 ? v.map((f, N) => ({ label: M(f), color: A(f, N) })) : null;
1016
- return /* @__PURE__ */ y("div", { ref: b, className: O("relative w-full font-sans", c), children: [
1017
- g && /* @__PURE__ */ e(K, { items: g, align: "center" }),
1018
- /* @__PURE__ */ e("div", { className: "mx-auto w-full max-w-[520px]", children: /* @__PURE__ */ e(V, { width: "100%", height: l, children: /* @__PURE__ */ y(
1019
- Te,
1211
+ ), M = (m) => (i == null ? void 0 : i[m]) ?? m, R = (m, x) => l && g.includes(l) ? m === l ? "var(--color-chart-1)" : ie : ae(x), p = f ?? g.length > 1 ? g.map((m, x) => ({ label: M(m), color: R(m, x) })) : null;
1212
+ return /* @__PURE__ */ A("div", { ref: b, className: I("relative w-full font-sans", c), children: [
1213
+ p && /* @__PURE__ */ e(q, { items: p, align: "center" }),
1214
+ /* @__PURE__ */ e("div", { className: "mx-auto w-full max-w-[520px]", children: /* @__PURE__ */ e(J, { width: "100%", height: o, children: /* @__PURE__ */ A(
1215
+ Ge,
1020
1216
  {
1021
1217
  data: t,
1022
1218
  cx: "50%",
@@ -1024,50 +1220,50 @@ const ot = R.forwardRef(
1024
1220
  outerRadius: "68%",
1025
1221
  margin: { top: 10, right: 56, bottom: 16, left: 56 },
1026
1222
  children: [
1027
- /* @__PURE__ */ e(Ie, { stroke: "var(--border)", radialLines: !0 }),
1223
+ /* @__PURE__ */ e(Pe, { stroke: "var(--border)", radialLines: !0 }),
1028
1224
  /* @__PURE__ */ e(
1029
- fe,
1225
+ Ce,
1030
1226
  {
1031
1227
  dataKey: n,
1032
1228
  tick: { fill: "var(--text-secondary)", fontSize: "var(--text-s)", fontWeight: 500 }
1033
1229
  }
1034
1230
  ),
1035
1231
  /* @__PURE__ */ e(
1036
- De,
1232
+ We,
1037
1233
  {
1038
1234
  angle: 90,
1039
- domain: [0, w],
1235
+ domain: [0, N],
1040
1236
  tick: !1,
1041
1237
  axisLine: !1,
1042
1238
  tickLine: !1
1043
1239
  }
1044
1240
  ),
1045
- h !== !1 && /* @__PURE__ */ e(
1046
- T,
1241
+ u !== !1 && /* @__PURE__ */ e(
1242
+ j,
1047
1243
  {
1048
1244
  content: /* @__PURE__ */ e(
1049
- I,
1245
+ G,
1050
1246
  {
1051
- format: m,
1052
- renderer: h
1247
+ format: h,
1248
+ renderer: u
1053
1249
  }
1054
1250
  ),
1055
1251
  isAnimationActive: !1
1056
1252
  }
1057
1253
  ),
1058
- v.map((f, N) => /* @__PURE__ */ e(
1059
- Ee,
1254
+ g.map((m, x) => /* @__PURE__ */ e(
1255
+ Ue,
1060
1256
  {
1061
- dataKey: f,
1062
- name: M(f),
1063
- stroke: A(f, N),
1064
- fill: A(f, N),
1065
- fillOpacity: o ? f === o ? 0.16 : 0.05 : 0.1,
1066
- strokeWidth: J,
1067
- dot: /* @__PURE__ */ e(_, { color: A(f, N) }),
1257
+ dataKey: m,
1258
+ name: M(m),
1259
+ stroke: R(m, x),
1260
+ fill: R(m, x),
1261
+ fillOpacity: l ? m === l ? 0.16 : 0.05 : 0.1,
1262
+ strokeWidth: le,
1263
+ dot: /* @__PURE__ */ e(U, { color: R(m, x) }),
1068
1264
  isAnimationActive: !1
1069
1265
  },
1070
- f
1266
+ m
1071
1267
  ))
1072
1268
  ]
1073
1269
  }
@@ -1075,106 +1271,106 @@ const ot = R.forwardRef(
1075
1271
  ] });
1076
1272
  }
1077
1273
  );
1078
- ot.displayName = "RadarChart";
1079
- const lt = R.forwardRef(
1274
+ gt.displayName = "RadarChart";
1275
+ const pt = C.forwardRef(
1080
1276
  ({
1081
1277
  data: t,
1082
1278
  nameKey: n,
1083
1279
  valueKey: r,
1084
1280
  maxValue: i = 100,
1085
- centerLabel: o,
1086
- height: a = D,
1087
- legend: l = !0,
1088
- formatValue: x,
1089
- tooltip: u,
1090
- className: h
1281
+ centerLabel: l,
1282
+ height: a = P,
1283
+ legend: o = !0,
1284
+ formatValue: f,
1285
+ tooltip: d,
1286
+ className: u
1091
1287
  }, c) => {
1092
- const b = x ?? k, [v, m] = R.useState(null), w = t.map((g, f) => ({
1093
- ...g,
1094
- name: String(g[n]),
1095
- fill: re(f)
1096
- })), M = w.length ? w.reduce(
1097
- (g, f) => g + (typeof f[r] == "number" ? f[r] : 0),
1288
+ const b = f ?? k, [g, h] = C.useState(null), N = t.map((p, m) => ({
1289
+ ...p,
1290
+ name: String(p[n]),
1291
+ fill: de(m)
1292
+ })), M = N.length ? N.reduce(
1293
+ (p, m) => p + (typeof m[r] == "number" ? m[r] : 0),
1098
1294
  0
1099
- ) / w.length : 0, A = l ? w.map((g, f) => ({
1100
- label: String(g[n]),
1101
- color: re(f)
1295
+ ) / N.length : 0, R = o ? N.map((p, m) => ({
1296
+ label: String(p[n]),
1297
+ color: de(m)
1102
1298
  })) : null;
1103
- return /* @__PURE__ */ y("div", { ref: c, className: O("relative w-full font-sans", h), children: [
1104
- /* @__PURE__ */ y("div", { className: "relative mx-auto w-full max-w-[420px]", children: [
1105
- /* @__PURE__ */ e(V, { width: "100%", height: a, children: /* @__PURE__ */ y(
1106
- Be,
1299
+ return /* @__PURE__ */ A("div", { ref: c, className: I("relative w-full font-sans", u), children: [
1300
+ /* @__PURE__ */ A("div", { className: "relative mx-auto w-full max-w-[420px]", children: [
1301
+ /* @__PURE__ */ e(J, { width: "100%", height: a, children: /* @__PURE__ */ A(
1302
+ Ve,
1107
1303
  {
1108
- data: w,
1304
+ data: N,
1109
1305
  innerRadius: "48%",
1110
1306
  outerRadius: "82%",
1111
1307
  startAngle: 90,
1112
1308
  endAngle: -270,
1113
1309
  margin: { top: 6, right: 6, bottom: 6, left: 6 },
1114
1310
  children: [
1115
- /* @__PURE__ */ e(fe, { type: "number", domain: [0, i], tick: !1 }),
1116
- u !== !1 && /* @__PURE__ */ e(
1117
- T,
1311
+ /* @__PURE__ */ e(Ce, { type: "number", domain: [0, i], tick: !1 }),
1312
+ d !== !1 && /* @__PURE__ */ e(
1313
+ j,
1118
1314
  {
1119
1315
  content: /* @__PURE__ */ e(
1120
- I,
1316
+ G,
1121
1317
  {
1122
1318
  format: b,
1123
- renderer: u
1319
+ renderer: d
1124
1320
  }
1125
1321
  ),
1126
1322
  isAnimationActive: !1
1127
1323
  }
1128
1324
  ),
1129
1325
  /* @__PURE__ */ e(
1130
- He,
1326
+ Ye,
1131
1327
  {
1132
1328
  dataKey: r,
1133
1329
  background: { fill: "var(--muted)" },
1134
1330
  cornerRadius: 999,
1135
1331
  maxBarSize: 18,
1136
1332
  isAnimationActive: !1,
1137
- onMouseEnter: (g, f) => m(f),
1138
- onMouseLeave: () => m(null),
1139
- children: w.map((g, f) => /* @__PURE__ */ e(
1140
- Q,
1333
+ onMouseEnter: (p, m) => h(m),
1334
+ onMouseLeave: () => h(null),
1335
+ children: N.map((p, m) => /* @__PURE__ */ e(
1336
+ re,
1141
1337
  {
1142
- fill: g.fill,
1143
- className: B,
1144
- opacity: j(f, v)
1338
+ fill: p.fill,
1339
+ className: z,
1340
+ opacity: Y(m, g)
1145
1341
  },
1146
- `${g.name}-${f}`
1342
+ `${p.name}-${m}`
1147
1343
  ))
1148
1344
  }
1149
1345
  )
1150
1346
  ]
1151
1347
  }
1152
1348
  ) }),
1153
- /* @__PURE__ */ y("div", { className: "pointer-events-none absolute inset-0 flex flex-col items-center justify-center", children: [
1349
+ /* @__PURE__ */ A("div", { className: "pointer-events-none absolute inset-0 flex flex-col items-center justify-center", children: [
1154
1350
  /* @__PURE__ */ e("div", { className: "text-xl font-medium text-foreground tabular-nums", children: b(Math.round(M)) }),
1155
- o && /* @__PURE__ */ e("div", { className: "mt-0.5 text-xs font-normal tracking-wide uppercase text-tertiary", children: o })
1351
+ l && /* @__PURE__ */ e("div", { className: "mt-0.5 text-xs font-normal tracking-wide uppercase text-tertiary", children: l })
1156
1352
  ] })
1157
1353
  ] }),
1158
- A && /* @__PURE__ */ e(K, { items: A, align: "center", className: "mb-0 mt-3" })
1354
+ R && /* @__PURE__ */ e(q, { items: R, align: "center", className: "mb-0 mt-3" })
1159
1355
  ] });
1160
1356
  }
1161
1357
  );
1162
- lt.displayName = "RadialBarChart";
1163
- function st({
1358
+ pt.displayName = "RadialBarChart";
1359
+ function Nt({
1164
1360
  x: t = 0,
1165
1361
  y: n = 0,
1166
1362
  width: r = 0,
1167
1363
  height: i = 0,
1168
- depth: o = 0,
1364
+ depth: l = 0,
1169
1365
  index: a = 0,
1170
- name: l,
1171
- value: x,
1172
- format: u = k,
1173
- activeIndex: h = null
1366
+ name: o,
1367
+ value: f,
1368
+ format: d = k,
1369
+ activeIndex: u = null
1174
1370
  }) {
1175
- if (o === 0) return /* @__PURE__ */ e("g", {});
1176
- const c = o === 0 ? "transparent" : re(a), b = o > 0 && a < 4, v = r > 72 && i > 38;
1177
- return /* @__PURE__ */ y("g", { className: B, opacity: j(a, h), children: [
1371
+ if (l === 0) return /* @__PURE__ */ e("g", {});
1372
+ const c = l === 0 ? "transparent" : de(a), b = l > 0 && a < 4, g = r > 72 && i > 38;
1373
+ return /* @__PURE__ */ A("g", { className: z, opacity: Y(a, u), children: [
1178
1374
  /* @__PURE__ */ e(
1179
1375
  "rect",
1180
1376
  {
@@ -1189,7 +1385,7 @@ function st({
1189
1385
  strokeWidth: 4
1190
1386
  }
1191
1387
  ),
1192
- v && /* @__PURE__ */ e(
1388
+ g && /* @__PURE__ */ e(
1193
1389
  "foreignObject",
1194
1390
  {
1195
1391
  x: t + 8,
@@ -1197,25 +1393,25 @@ function st({
1197
1393
  width: Math.max(0, r - 16),
1198
1394
  height: Math.max(0, i - 16),
1199
1395
  className: "pointer-events-none overflow-hidden",
1200
- children: /* @__PURE__ */ y("div", { className: "flex h-full flex-col justify-between", children: [
1396
+ children: /* @__PURE__ */ A("div", { className: "flex h-full flex-col justify-between", children: [
1201
1397
  /* @__PURE__ */ e(
1202
1398
  "p",
1203
1399
  {
1204
- className: O(
1400
+ className: I(
1205
1401
  "truncate text-xs font-medium",
1206
1402
  b ? "text-background" : "text-foreground"
1207
1403
  ),
1208
- children: l
1404
+ children: o
1209
1405
  }
1210
1406
  ),
1211
- typeof x == "number" && i > 58 && /* @__PURE__ */ e(
1407
+ typeof f == "number" && i > 58 && /* @__PURE__ */ e(
1212
1408
  "p",
1213
1409
  {
1214
- className: O(
1410
+ className: I(
1215
1411
  "text-xs tabular-nums",
1216
1412
  b ? "text-background/70" : "text-tertiary"
1217
1413
  ),
1218
- children: u(x)
1414
+ children: d(f)
1219
1415
  }
1220
1416
  )
1221
1417
  ] })
@@ -1223,11 +1419,11 @@ function st({
1223
1419
  )
1224
1420
  ] });
1225
1421
  }
1226
- function ct(t, n, r) {
1227
- const i = [], o = (a) => {
1228
- const l = Array.isArray(a.children) ? a.children : void 0;
1229
- if (l != null && l.length) {
1230
- l.forEach(o);
1422
+ function wt(t, n, r) {
1423
+ const i = [], l = (a) => {
1424
+ const o = Array.isArray(a.children) ? a.children : void 0;
1425
+ if (o != null && o.length) {
1426
+ o.forEach(l);
1231
1427
  return;
1232
1428
  }
1233
1429
  typeof a[r] == "number" && i.push({
@@ -1236,41 +1432,41 @@ function ct(t, n, r) {
1236
1432
  value: a[r]
1237
1433
  });
1238
1434
  };
1239
- return t.forEach(o), i.length ? i : t;
1435
+ return t.forEach(l), i.length ? i : t;
1240
1436
  }
1241
- const dt = R.forwardRef(
1437
+ const At = C.forwardRef(
1242
1438
  ({
1243
1439
  data: t,
1244
1440
  nameKey: n,
1245
1441
  valueKey: r,
1246
- height: i = D,
1247
- formatValue: o,
1442
+ height: i = P,
1443
+ formatValue: l,
1248
1444
  tooltip: a,
1249
- className: l
1250
- }, x) => {
1251
- const u = o ?? k, h = R.useMemo(
1252
- () => ct(t, n, r),
1445
+ className: o
1446
+ }, f) => {
1447
+ const d = l ?? k, u = C.useMemo(
1448
+ () => wt(t, n, r),
1253
1449
  [t, n, r]
1254
- ), [c, b] = R.useState(null);
1255
- return /* @__PURE__ */ e("div", { ref: x, className: O("relative w-full font-sans", l), children: /* @__PURE__ */ e(V, { width: "100%", height: i, children: /* @__PURE__ */ e(
1256
- _e,
1450
+ ), [c, b] = C.useState(null);
1451
+ return /* @__PURE__ */ e("div", { ref: f, className: I("relative w-full font-sans", o), children: /* @__PURE__ */ e(J, { width: "100%", height: i, children: /* @__PURE__ */ e(
1452
+ Xe,
1257
1453
  {
1258
- data: h,
1454
+ data: u,
1259
1455
  nameKey: n,
1260
1456
  dataKey: r,
1261
1457
  type: "flat",
1262
1458
  aspectRatio: 1.6,
1263
- content: /* @__PURE__ */ e(st, { format: u, activeIndex: c }),
1459
+ content: /* @__PURE__ */ e(Nt, { format: d, activeIndex: c }),
1264
1460
  isAnimationActive: !1,
1265
- onMouseEnter: (v) => b(v.depth ? v.index ?? null : null),
1461
+ onMouseEnter: (g) => b(g.depth ? g.index ?? null : null),
1266
1462
  onMouseLeave: () => b(null),
1267
1463
  children: a !== !1 && /* @__PURE__ */ e(
1268
- T,
1464
+ j,
1269
1465
  {
1270
1466
  content: /* @__PURE__ */ e(
1271
- I,
1467
+ G,
1272
1468
  {
1273
- format: u,
1469
+ format: d,
1274
1470
  renderer: a
1275
1471
  }
1276
1472
  ),
@@ -1281,92 +1477,92 @@ const dt = R.forwardRef(
1281
1477
  ) }) });
1282
1478
  }
1283
1479
  );
1284
- dt.displayName = "TreemapChart";
1285
- const te = "var(--color-chart-1)", ut = "var(--chart-track)", X = 24, mt = 44, se = 0.55, ce = 4, de = (t, n, r, i, o) => {
1286
- const a = Math.min(o, r / 2, i);
1480
+ At.displayName = "TreemapChart";
1481
+ const se = "var(--color-chart-1)", Ct = "var(--chart-track)", te = 24, Mt = 44, ve = 0.55, be = 4, ge = (t, n, r, i, l) => {
1482
+ const a = Math.min(l, r / 2, i);
1287
1483
  return `M ${t},${n + i} L ${t},${n + a} Q ${t},${n} ${t + a},${n} L ${t + r - a},${n} Q ${t + r},${n} ${t + r},${n + a} L ${t + r},${n + i} Z`;
1288
1484
  };
1289
- function ft() {
1290
- const t = R.useRef(null), [n, r] = R.useState(0);
1291
- return R.useLayoutEffect(() => {
1485
+ function St() {
1486
+ const t = C.useRef(null), [n, r] = C.useState(0);
1487
+ return C.useLayoutEffect(() => {
1292
1488
  const i = t.current;
1293
1489
  if (!i) return;
1294
1490
  r(i.getBoundingClientRect().width);
1295
- const o = new ResizeObserver((a) => {
1296
- var x;
1297
- const l = ((x = a[0]) == null ? void 0 : x.contentRect.width) ?? 0;
1298
- r((u) => Math.abs(u - l) > 0.5 ? l : u);
1491
+ const l = new ResizeObserver((a) => {
1492
+ var f;
1493
+ const o = ((f = a[0]) == null ? void 0 : f.contentRect.width) ?? 0;
1494
+ r((d) => Math.abs(d - o) > 0.5 ? o : d);
1299
1495
  });
1300
- return o.observe(i), () => o.disconnect();
1496
+ return l.observe(i), () => l.disconnect();
1301
1497
  }, []), { ref: t, width: n };
1302
1498
  }
1303
- const ht = R.forwardRef(
1499
+ const Rt = C.forwardRef(
1304
1500
  ({
1305
1501
  data: t,
1306
1502
  nameKey: n,
1307
1503
  valueKey: r,
1308
- height: i = D,
1309
- formatValue: o,
1504
+ height: i = P,
1505
+ formatValue: l,
1310
1506
  label: a,
1311
- tooltip: l,
1312
- className: x
1313
- }, u) => {
1314
- var d;
1315
- const h = o ?? k, { ref: c, width: b } = ft(), [v, m] = R.useState(null), w = Number(((d = t[0]) == null ? void 0 : d[r]) ?? 0), M = t.length, A = Math.max(0, i - X - mt), g = X + A, f = M > 0 ? b / (M + (M - 1) * se) : 0, N = f * se, S = t.map((s, p) => {
1507
+ tooltip: o,
1508
+ className: f
1509
+ }, d) => {
1510
+ var $;
1511
+ const u = l ?? k, { ref: c, width: b } = St(), [g, h] = C.useState(null), N = Number((($ = t[0]) == null ? void 0 : $[r]) ?? 0), M = t.length, R = Math.max(0, i - te - Mt), p = te + R, m = M > 0 ? b / (M + (M - 1) * ve) : 0, x = m * ve, y = t.map((s, O) => {
1316
1512
  var E;
1317
- const L = Number(s[r]), F = Number(((E = t[p - 1]) == null ? void 0 : E[r]) ?? L), G = w ? L / w * 100 : 0, z = F ? L / F * 100 : 0, $ = w && L > 0 ? Math.max(2, L / w * A) : 0;
1513
+ const w = Number(s[r]), F = Number(((E = t[O - 1]) == null ? void 0 : E[r]) ?? w), T = N ? w / N * 100 : 0, D = F ? w / F * 100 : 0, _ = N && w > 0 ? Math.max(2, w / N * R) : 0;
1318
1514
  return {
1319
1515
  datum: s,
1320
- index: p,
1516
+ index: O,
1321
1517
  name: String(s[n]),
1322
- value: L,
1323
- conversionFromFirst: G,
1324
- conversionFromPrevious: z,
1325
- dropOffFromPrevious: p === 0 ? 0 : 100 - z,
1326
- x: p * (f + N),
1327
- y: g - $,
1328
- width: f,
1329
- height: $,
1330
- formatValue: h
1518
+ value: w,
1519
+ conversionFromFirst: T,
1520
+ conversionFromPrevious: D,
1521
+ dropOffFromPrevious: O === 0 ? 0 : 100 - D,
1522
+ x: O * (m + x),
1523
+ y: p - _,
1524
+ width: m,
1525
+ height: _,
1526
+ formatValue: u
1331
1527
  };
1332
- }), C = v != null ? S[v] : void 0;
1333
- return /* @__PURE__ */ e("div", { ref: u, className: O("relative w-full font-sans", x), children: /* @__PURE__ */ y("div", { ref: c, className: "relative w-full", style: { height: i }, children: [
1334
- b > 0 && M > 0 && /* @__PURE__ */ y("svg", { width: b, height: i, className: "block", children: [
1335
- S.slice(1).map((s) => {
1336
- const p = S[s.index - 1];
1528
+ }), L = g != null ? y[g] : void 0;
1529
+ return /* @__PURE__ */ e("div", { ref: d, className: I("relative w-full font-sans", f), children: /* @__PURE__ */ A("div", { ref: c, className: "relative w-full", style: { height: i }, children: [
1530
+ b > 0 && M > 0 && /* @__PURE__ */ A("svg", { width: b, height: i, className: "block", children: [
1531
+ y.slice(1).map((s) => {
1532
+ const O = y[s.index - 1];
1337
1533
  return /* @__PURE__ */ e(
1338
1534
  "path",
1339
1535
  {
1340
- d: `M ${p.x + p.width},${p.y} L ${s.x},${s.y} L ${s.x},${g} L ${p.x + p.width},${g} Z`,
1341
- fill: te,
1536
+ d: `M ${O.x + O.width},${O.y} L ${s.x},${s.y} L ${s.x},${p} L ${O.x + O.width},${p} Z`,
1537
+ fill: se,
1342
1538
  opacity: 0.14
1343
1539
  },
1344
1540
  `connector-${s.index}`
1345
1541
  );
1346
1542
  }),
1347
- S.map((s) => /* @__PURE__ */ y(
1543
+ y.map((s) => /* @__PURE__ */ A(
1348
1544
  "g",
1349
1545
  {
1350
1546
  role: "img",
1351
- "aria-label": `${s.name}: ${h(s.value)} (${Math.round(s.conversionFromFirst)}% of ${S[0].name})`,
1547
+ "aria-label": `${s.name}: ${u(s.value)} (${Math.round(s.conversionFromFirst)}% of ${y[0].name})`,
1352
1548
  children: [
1353
1549
  /* @__PURE__ */ e(
1354
1550
  "path",
1355
1551
  {
1356
- d: de(s.x, X, s.width, A, ce),
1357
- fill: ut
1552
+ d: ge(s.x, te, s.width, R, be),
1553
+ fill: Ct
1358
1554
  }
1359
1555
  ),
1360
1556
  s.height > 0 && /* @__PURE__ */ e(
1361
1557
  "path",
1362
1558
  {
1363
- d: de(s.x, s.y, s.width, s.height, ce),
1364
- fill: te,
1365
- className: B,
1366
- opacity: j(s.index, v)
1559
+ d: ge(s.x, s.y, s.width, s.height, be),
1560
+ fill: se,
1561
+ className: z,
1562
+ opacity: Y(s.index, g)
1367
1563
  }
1368
1564
  ),
1369
- a !== !1 && (a ? a(s) : /* @__PURE__ */ y(
1565
+ a !== !1 && (a ? a(s) : /* @__PURE__ */ A(
1370
1566
  "text",
1371
1567
  {
1372
1568
  x: s.x,
@@ -1383,7 +1579,7 @@ const ht = R.forwardRef(
1383
1579
  "text",
1384
1580
  {
1385
1581
  x: s.x,
1386
- y: g + 18,
1582
+ y: p + 18,
1387
1583
  textAnchor: "start",
1388
1584
  className: "fill-primary text-xs font-normal",
1389
1585
  children: s.name
@@ -1393,22 +1589,22 @@ const ht = R.forwardRef(
1393
1589
  "text",
1394
1590
  {
1395
1591
  x: s.x,
1396
- y: g + 34,
1592
+ y: p + 34,
1397
1593
  textAnchor: "start",
1398
1594
  className: "fill-tertiary text-xs tabular-nums",
1399
- children: h(s.value)
1595
+ children: u(s.value)
1400
1596
  }
1401
1597
  ),
1402
1598
  /* @__PURE__ */ e(
1403
1599
  "rect",
1404
1600
  {
1405
1601
  x: s.x,
1406
- y: X,
1407
- width: s.index === M - 1 ? f : f + N,
1408
- height: A,
1602
+ y: te,
1603
+ width: s.index === M - 1 ? m : m + x,
1604
+ height: R,
1409
1605
  fill: "transparent",
1410
- onMouseEnter: () => m(s.index),
1411
- onMouseLeave: () => m(null)
1606
+ onMouseEnter: () => h(s.index),
1607
+ onMouseLeave: () => h(null)
1412
1608
  }
1413
1609
  )
1414
1610
  ]
@@ -1416,34 +1612,34 @@ const ht = R.forwardRef(
1416
1612
  `${s.name}-${s.index}`
1417
1613
  ))
1418
1614
  ] }),
1419
- l !== !1 && C && /* @__PURE__ */ e(
1615
+ o !== !1 && L && /* @__PURE__ */ e(
1420
1616
  "div",
1421
1617
  {
1422
1618
  className: "pointer-events-none absolute z-10 -translate-x-1/2 -translate-y-full",
1423
- style: { left: C.x + C.width / 2, top: C.y - 10 },
1424
- children: l ? l({
1619
+ style: { left: L.x + L.width / 2, top: L.y - 10 },
1620
+ children: o ? o({
1425
1621
  active: !0,
1426
- label: C.name,
1622
+ label: L.name,
1427
1623
  items: [
1428
1624
  {
1429
- key: C.name,
1430
- name: C.name,
1431
- value: C.value,
1432
- color: te,
1433
- datum: C.datum
1625
+ key: L.name,
1626
+ name: L.name,
1627
+ value: L.value,
1628
+ color: se,
1629
+ datum: L.datum
1434
1630
  }
1435
1631
  ],
1436
- formatValue: h
1437
- }) : /* @__PURE__ */ y("div", { className: "rounded-md bg-foreground px-2.5 py-1.5 text-xs whitespace-nowrap text-background", children: [
1438
- /* @__PURE__ */ e("div", { className: "text-xs font-normal tracking-wide uppercase text-background/60", children: C.name }),
1439
- /* @__PURE__ */ e("div", { className: "font-normal tabular-nums", children: h(C.value) }),
1440
- /* @__PURE__ */ y("div", { className: "text-background/70 tabular-nums", children: [
1441
- Math.round(C.conversionFromFirst),
1632
+ formatValue: u
1633
+ }) : /* @__PURE__ */ A("div", { className: "rounded-md bg-foreground px-2.5 py-1.5 text-xs whitespace-nowrap text-background", children: [
1634
+ /* @__PURE__ */ e("div", { className: "text-xs font-normal tracking-wide uppercase text-background/60", children: L.name }),
1635
+ /* @__PURE__ */ e("div", { className: "font-normal tabular-nums", children: u(L.value) }),
1636
+ /* @__PURE__ */ A("div", { className: "text-background/70 tabular-nums", children: [
1637
+ Math.round(L.conversionFromFirst),
1442
1638
  "% of ",
1443
- S[0].name,
1444
- C.index > 0 && /* @__PURE__ */ y(ne, { children: [
1639
+ y[0].name,
1640
+ L.index > 0 && /* @__PURE__ */ A(ce, { children: [
1445
1641
  " · −",
1446
- Math.round(C.dropOffFromPrevious),
1642
+ Math.round(L.dropOffFromPrevious),
1447
1643
  "% step"
1448
1644
  ] })
1449
1645
  ] })
@@ -1453,18 +1649,18 @@ const ht = R.forwardRef(
1453
1649
  ] }) });
1454
1650
  }
1455
1651
  );
1456
- ht.displayName = "FunnelChart";
1652
+ Rt.displayName = "FunnelChart";
1457
1653
  export {
1458
- tt as AreaChart,
1459
- nt as BarChart,
1460
- Ce as ComboChart,
1461
- rt as ComposedChart,
1462
- ht as FunnelChart,
1463
- et as LineChart,
1464
- D as MIN_HEIGHT,
1465
- it as PieChart,
1466
- ot as RadarChart,
1467
- lt as RadialBarChart,
1468
- at as ScatterChart,
1469
- dt as TreemapChart
1654
+ ft as AreaChart,
1655
+ ht as BarChart,
1656
+ De as ComboChart,
1657
+ xt as ComposedChart,
1658
+ Rt as FunnelChart,
1659
+ mt as LineChart,
1660
+ P as MIN_HEIGHT,
1661
+ bt as PieChart,
1662
+ gt as RadarChart,
1663
+ pt as RadialBarChart,
1664
+ vt as ScatterChart,
1665
+ At as TreemapChart
1470
1666
  };