@a4ui/core 0.37.1 → 0.38.1

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 (105) hide show
  1. package/README.md +8 -7
  2. package/dist/Collapse-Cr5cDqAl.js +375 -0
  3. package/dist/charts/AreaChart.d.ts +38 -0
  4. package/dist/charts/BarChart.d.ts +17 -1
  5. package/dist/charts/PieChart.d.ts +29 -0
  6. package/dist/charts/RadialBarChart.d.ts +33 -0
  7. package/dist/charts/index.d.ts +5 -0
  8. package/dist/charts/shared.d.ts +111 -0
  9. package/dist/charts.js +1493 -780
  10. package/dist/commerce.js +625 -634
  11. package/dist/elements.css +1076 -8
  12. package/dist/elements.iife.js +1 -6
  13. package/dist/elements.js +7774 -9133
  14. package/dist/full.css +1076 -8
  15. package/dist/index.d.ts +30 -3
  16. package/dist/index.js +17502 -15126
  17. package/dist/layout/Aurora.d.ts +16 -0
  18. package/dist/layout/EffectsToggle.d.ts +1 -1
  19. package/dist/layout/SpaceBackground.d.ts +1 -1
  20. package/dist/motion-CTIBwMCA.js +104 -0
  21. package/dist/styles.css +110 -3
  22. package/dist/ui/AspectRatio.d.ts +19 -0
  23. package/dist/ui/Attachment.d.ts +70 -0
  24. package/dist/ui/ButtonGroup.d.ts +37 -0
  25. package/dist/ui/ChatMarker.d.ts +20 -0
  26. package/dist/ui/ChatThread.d.ts +32 -8
  27. package/dist/ui/ContactSection.d.ts +49 -0
  28. package/dist/ui/CtaBanner.d.ts +28 -0
  29. package/dist/ui/Drawer.d.ts +5 -2
  30. package/dist/ui/Faq.d.ts +29 -0
  31. package/dist/ui/FeatureGrid.d.ts +35 -0
  32. package/dist/ui/Field.d.ts +148 -0
  33. package/dist/ui/Hero.d.ts +48 -0
  34. package/dist/ui/InputGroup.d.ts +93 -0
  35. package/dist/ui/Item.d.ts +63 -0
  36. package/dist/ui/Label.d.ts +23 -0
  37. package/dist/ui/Menubar.d.ts +83 -0
  38. package/dist/ui/Message.d.ts +51 -5
  39. package/dist/ui/Modal.d.ts +8 -2
  40. package/dist/ui/NativeSelect.d.ts +26 -0
  41. package/dist/ui/NavigationMenu.d.ts +85 -0
  42. package/dist/ui/PromptComposer.d.ts +5 -0
  43. package/dist/ui/Prose.d.ts +21 -0
  44. package/dist/ui/Questionnaire.d.ts +71 -0
  45. package/dist/ui/ScrollArea.d.ts +30 -0
  46. package/dist/ui/Sidebar.d.ts +229 -0
  47. package/dist/ui/SiteFooter.d.ts +39 -0
  48. package/dist/ui/SiteNav.d.ts +35 -0
  49. package/dist/ui/TeamGrid.d.ts +33 -0
  50. package/dist/ui/Testimonials.d.ts +37 -0
  51. package/dist/ui/internal/sectionKit.d.ts +22 -0
  52. package/dist/ui/internal/socialIcons.d.ts +9 -0
  53. package/package.json +38 -26
  54. package/preset.d.ts +23 -0
  55. package/src/charts/AreaChart.tsx +206 -0
  56. package/src/charts/BarChart.tsx +241 -5
  57. package/src/charts/DonutChart.tsx +8 -11
  58. package/src/charts/LineChart.tsx +2 -3
  59. package/src/charts/PieChart.tsx +145 -0
  60. package/src/charts/RadialBarChart.tsx +141 -0
  61. package/src/charts/index.ts +14 -0
  62. package/src/charts/shared.tsx +304 -0
  63. package/src/index.ts +192 -3
  64. package/src/layout/Aurora.tsx +36 -7
  65. package/src/layout/sceneEffects.ts +22 -3
  66. package/src/ui/AlertDialog.tsx +6 -3
  67. package/src/ui/AspectRatio.tsx +35 -0
  68. package/src/ui/Attachment.tsx +189 -0
  69. package/src/ui/ButtonGroup.tsx +89 -0
  70. package/src/ui/ChatMarker.tsx +58 -0
  71. package/src/ui/ChatThread.tsx +115 -23
  72. package/src/ui/Command.tsx +6 -3
  73. package/src/ui/ContactSection.tsx +199 -0
  74. package/src/ui/CtaBanner.tsx +62 -0
  75. package/src/ui/DateField.tsx +2 -1
  76. package/src/ui/DateRangePicker.tsx +2 -1
  77. package/src/ui/Drawer.tsx +43 -7
  78. package/src/ui/Faq.tsx +57 -0
  79. package/src/ui/FeatureGrid.tsx +77 -0
  80. package/src/ui/Field.tsx +374 -0
  81. package/src/ui/Hero.tsx +146 -0
  82. package/src/ui/Image.tsx +6 -3
  83. package/src/ui/InputGroup.tsx +219 -0
  84. package/src/ui/Item.tsx +185 -0
  85. package/src/ui/Label.tsx +50 -0
  86. package/src/ui/Menubar.tsx +212 -0
  87. package/src/ui/Message.tsx +139 -13
  88. package/src/ui/Modal.tsx +47 -8
  89. package/src/ui/MultiSelect.tsx +2 -1
  90. package/src/ui/NativeSelect.tsx +66 -0
  91. package/src/ui/NavigationMenu.tsx +262 -0
  92. package/src/ui/PromptComposer.tsx +11 -0
  93. package/src/ui/Prose.tsx +63 -0
  94. package/src/ui/Questionnaire.tsx +331 -0
  95. package/src/ui/ScrollArea.tsx +70 -0
  96. package/src/ui/Sidebar.tsx +753 -0
  97. package/src/ui/SiteFooter.tsx +112 -0
  98. package/src/ui/SiteNav.tsx +146 -0
  99. package/src/ui/TeamGrid.tsx +81 -0
  100. package/src/ui/Testimonials.tsx +103 -0
  101. package/src/ui/TimeField.tsx +2 -1
  102. package/src/ui/internal/sectionKit.tsx +72 -0
  103. package/src/ui/internal/socialIcons.tsx +41 -0
  104. package/dist/NumberInput-Bnh2u7pp.js +0 -381
  105. package/dist/motion-jYMWmZqB.js +0 -119
package/dist/charts.js CHANGED
@@ -1,787 +1,1500 @@
1
- import { insert as b, createComponent as C, effect as S, setAttribute as l, template as _, className as O, setStyleProperty as j, addEventListener as ve, memo as K, use as Ce, delegateEvents as Le } from "solid-js/web";
2
- import { Show as P, For as N, createSignal as ye, onMount as Se, createEffect as Ee, on as Te, createMemo as Y } from "solid-js";
3
- import { c as F, m as ue } from "./motion-jYMWmZqB.js";
4
- var Ae = /* @__PURE__ */ _("<svg><path stroke=none></svg>", !1, !0, !1), Pe = /* @__PURE__ */ _("<svg><polyline fill=none stroke-width=2 stroke-linecap=round stroke-linejoin=round></svg>", !1, !0, !1), Ne = /* @__PURE__ */ _("<svg preserveAspectRatio=none role=img>"), je = /* @__PURE__ */ _("<svg><circle r=2></svg>", !1, !0, !1);
5
- const de = 2;
6
- function Fe(e, t, r) {
7
- if (e.length === 0) return [];
8
- if (e.length === 1)
9
- return [{
10
- x: t / 2,
11
- y: r / 2
12
- }];
13
- const g = Math.min(...e), k = Math.max(...e) - g || 1, h = Math.max(r - de * 2, 0), x = t / (e.length - 1);
14
- return e.map((o, c) => ({
15
- x: c * x,
16
- y: de + h - (o - g) / k * h
17
- }));
18
- }
19
- function Yt(e) {
20
- const t = () => e.width ?? 120, r = () => e.height ?? 32, g = () => e.tone ?? "primary", s = () => Fe(e.data, t(), r()), k = () => s().map((x) => `${x.x},${x.y}`).join(" "), h = () => {
21
- const x = s();
22
- if (x.length === 0) return "";
23
- const o = x.map((w) => `${w.x},${w.y}`).join(" L "), c = x[0], $ = x[x.length - 1];
24
- return `M ${c.x},${r()} L ${o} L ${$.x},${r()} Z`;
25
- };
26
- return (() => {
27
- var x = Ne();
28
- return b(x, C(P, {
29
- get when() {
30
- return s().length > 0;
31
- },
32
- get children() {
33
- return [C(P, {
34
- get when() {
35
- return e.area;
36
- },
37
- get children() {
38
- var o = Ae();
39
- return S((c) => {
40
- var $ = h(), w = `hsl(var(--${g()}) / 0.15)`;
41
- return $ !== c.e && l(o, "d", c.e = $), w !== c.t && l(o, "fill", c.t = w), c;
42
- }, {
43
- e: void 0,
44
- t: void 0
45
- }), o;
46
- }
47
- }), C(P, {
48
- get when() {
49
- return s().length > 1;
50
- },
51
- get fallback() {
52
- return (() => {
53
- var o = je();
54
- return S((c) => {
55
- var n, a;
56
- var $ = (n = s()[0]) == null ? void 0 : n.x, w = (a = s()[0]) == null ? void 0 : a.y, y = `hsl(var(--${g()}))`;
57
- return $ !== c.e && l(o, "cx", c.e = $), w !== c.t && l(o, "cy", c.t = w), y !== c.a && l(o, "fill", c.a = y), c;
58
- }, {
59
- e: void 0,
60
- t: void 0,
61
- a: void 0
62
- }), o;
63
- })();
64
- },
65
- get children() {
66
- var o = Pe();
67
- return S((c) => {
68
- var $ = k(), w = `hsl(var(--${g()}))`;
69
- return $ !== c.e && l(o, "points", c.e = $), w !== c.t && l(o, "stroke", c.t = w), c;
70
- }, {
71
- e: void 0,
72
- t: void 0
73
- }), o;
74
- }
75
- })];
76
- }
77
- })), S((o) => {
78
- var c = F("overflow-visible", e.class), $ = t(), w = r(), y = `0 0 ${t()} ${r()}`;
79
- return c !== o.e && l(x, "class", o.e = c), $ !== o.t && l(x, "width", o.t = $), w !== o.a && l(x, "height", o.a = w), y !== o.o && l(x, "viewBox", o.o = y), o;
80
- }, {
81
- e: void 0,
82
- t: void 0,
83
- a: void 0,
84
- o: void 0
85
- }), x;
86
- })();
87
- }
88
- var Oe = /* @__PURE__ */ _("<div>"), Be = /* @__PURE__ */ _('<div class="flex h-full min-w-0 flex-1 flex-col items-center justify-end gap-1"><div></div><span class="w-full truncate text-center text-xs text-muted-foreground">');
89
- function Vt(e) {
90
- const t = () => e.height ?? 160, r = () => e.tone ?? "primary", g = () => Math.max(...e.data.map((k) => k.value), 0) || 1, s = () => r() === "accent" ? "bg-accent" : "bg-primary";
91
- return (() => {
92
- var k = Oe();
93
- return b(k, C(N, {
94
- get each() {
95
- return e.data;
96
- },
97
- children: (h) => (() => {
98
- var x = Be(), o = x.firstChild, c = o.nextSibling;
99
- return b(c, () => h.label), S(($) => {
100
- var w = `${h.label}: ${h.value}`, y = F("w-full rounded-t transition-all", s()), n = `${Math.max(h.value / g() * 100, 0)}%`;
101
- return w !== $.e && l(o, "title", $.e = w), y !== $.t && O(o, $.t = y), n !== $.a && j(o, "height", $.a = n), $;
102
- }, {
103
- e: void 0,
104
- t: void 0,
105
- a: void 0
106
- }), x;
107
- })()
108
- })), S((h) => {
109
- var x = F("flex w-full items-end gap-2", e.class), o = `${t()}px`;
110
- return x !== h.e && O(k, h.e = x), o !== h.t && j(k, "height", h.t = o), h;
111
- }, {
112
- e: void 0,
113
- t: void 0
114
- }), k;
115
- })();
116
- }
117
- var ze = /* @__PURE__ */ _('<div class="absolute inset-0 flex items-center justify-center text-lg font-semibold tabular-nums text-foreground">'), De = /* @__PURE__ */ _("<div><svg role=img><g><circle fill=none stroke=hsl(var(--muted))>"), Re = /* @__PURE__ */ _("<svg><circle fill=none stroke-linecap=butt><title></svg>", !1, !0, !1);
118
- const Ie = {
119
- primary: "--primary",
120
- accent: "--accent",
121
- destructive: "--destructive",
122
- emit: "--data-emit",
123
- received: "--data-received",
124
- net: "--data-net"
125
- }, he = ["--data-emit", "--data-received", "--data-net"];
126
- function Ge(e, t) {
127
- return e.tone ? Ie[e.tone] : he[t % he.length];
128
- }
129
- function Ht(e) {
130
- const t = () => e.size ?? 160, r = () => e.thickness ?? 20, g = () => e.showTotal ?? !0, s = () => t() / 2, k = () => Math.max(t() / 2 - r() / 2, 0), h = () => 2 * Math.PI * k(), x = () => e.data.reduce((c, $) => c + $.value, 0), o = () => {
131
- const c = x() || 1;
132
- let $ = 0;
133
- return e.data.map((w, y) => {
134
- const a = w.value / c * h(), f = $;
135
- return $ += a, {
136
- segment: w,
137
- index: y,
138
- arcLength: a,
139
- offset: f
140
- };
141
- });
142
- };
143
- return (() => {
144
- var c = De(), $ = c.firstChild, w = $.firstChild, y = w.firstChild;
145
- return b(w, C(N, {
146
- get each() {
147
- return o();
148
- },
149
- children: (n) => (() => {
150
- var a = Re(), f = a.firstChild;
151
- return b(f, () => `${n.segment.label}: ${n.segment.value}`), S((u) => {
152
- var i = s(), v = s(), d = k(), M = `hsl(var(${Ge(n.segment, n.index)}))`, T = r(), L = `${n.arcLength} ${Math.max(h() - n.arcLength, 0)}`, E = -n.offset;
153
- return i !== u.e && l(a, "cx", u.e = i), v !== u.t && l(a, "cy", u.t = v), d !== u.a && l(a, "r", u.a = d), M !== u.o && l(a, "stroke", u.o = M), T !== u.i && l(a, "stroke-width", u.i = T), L !== u.n && l(a, "stroke-dasharray", u.n = L), E !== u.s && l(a, "stroke-dashoffset", u.s = E), u;
154
- }, {
155
- e: void 0,
156
- t: void 0,
157
- a: void 0,
158
- o: void 0,
159
- i: void 0,
160
- n: void 0,
161
- s: void 0
162
- }), a;
163
- })()
164
- }), null), b(c, C(P, {
165
- get when() {
166
- return g();
167
- },
168
- get children() {
169
- var n = ze();
170
- return b(n, x), n;
171
- }
172
- }), null), S((n) => {
173
- var a = F("relative inline-flex items-center justify-center", e.class), f = `${t()}px`, u = `${t()}px`, i = t(), v = t(), d = `0 0 ${t()} ${t()}`, M = `rotate(-90 ${s()} ${s()})`, T = s(), L = s(), E = k(), A = r();
174
- return a !== n.e && O(c, n.e = a), f !== n.t && j(c, "width", n.t = f), u !== n.a && j(c, "height", n.a = u), i !== n.o && l($, "width", n.o = i), v !== n.i && l($, "height", n.i = v), d !== n.n && l($, "viewBox", n.n = d), M !== n.s && l(w, "transform", n.s = M), T !== n.h && l(y, "cx", n.h = T), L !== n.r && l(y, "cy", n.r = L), E !== n.d && l(y, "r", n.d = E), A !== n.l && l(y, "stroke-width", n.l = A), n;
175
- }, {
176
- e: void 0,
177
- t: void 0,
178
- a: void 0,
179
- o: void 0,
180
- i: void 0,
181
- n: void 0,
182
- s: void 0,
183
- h: void 0,
184
- r: void 0,
185
- d: void 0,
186
- l: void 0
187
- }), c;
188
- })();
189
- }
190
- var Ke = /* @__PURE__ */ _('<div class="mb-2 flex flex-wrap gap-x-3 gap-y-1">'), Ye = /* @__PURE__ */ _("<svg><line y1=0 stroke=hsl(var(--border)) stroke-width=1 vector-effect=non-scaling-stroke></svg>", !1, !0, !1), Ve = /* @__PURE__ */ _('<div class="mb-0.5 font-medium text-foreground">'), He = /* @__PURE__ */ _('<div class="pointer-events-none absolute top-0 z-10 -translate-y-1 rounded-md border border-border bg-popover px-2 py-1 text-xs text-popover-foreground shadow-md">'), Ue = /* @__PURE__ */ _('<div class="mt-1 flex w-full text-xs text-muted-foreground">'), We = /* @__PURE__ */ _('<div><div class="relative w-full"><svg class="block w-full overflow-visible"preserveAspectRatio=none role=img>'), Xe = /* @__PURE__ */ _('<span class="inline-flex items-center gap-1.5 text-xs text-muted-foreground"><span class="inline-block size-2 rounded-full">'), Ze = /* @__PURE__ */ _("<svg><path stroke=none></svg>", !1, !0, !1), qe = /* @__PURE__ */ _("<svg><polyline fill=none stroke-width=2 stroke-linecap=round stroke-linejoin=round vector-effect=non-scaling-stroke></svg>", !1, !0, !1), Je = /* @__PURE__ */ _("<svg><circle r=2.5 vector-effect=non-scaling-stroke></svg>", !1, !0, !1), Qe = /* @__PURE__ */ _('<div class="flex items-center gap-1.5"><span class="inline-block size-1.5 rounded-full"></span><span>:</span><span class="font-medium text-foreground">'), pe = /* @__PURE__ */ _('<span class="flex-1 truncate text-center">');
191
- const U = 400, fe = 4, me = ["primary", "accent", "muted"];
192
- function V(e, t) {
193
- return e.tone ?? me[t % me.length];
1
+ import { a as e, g as t } from "./motion-CTIBwMCA.js";
2
+ import { For as n, Show as r, createEffect as i, createMemo as a, createSignal as o, createUniqueId as s, on as c, onMount as l } from "solid-js";
3
+ import { addEventListener as u, className as d, createComponent as f, delegateEvents as p, effect as m, insert as h, memo as g, setAttribute as _, setStyleProperty as v, template as y, use as b } from "solid-js/web";
4
+ // src/charts/Sparkline.tsx
5
+ var x = /*#__PURE__*/ y("<svg><path stroke=none></svg>", !1, !0, !1), S = /*#__PURE__*/ y("<svg><polyline fill=none stroke-width=2 stroke-linecap=round stroke-linejoin=round></svg>", !1, !0, !1), C = /*#__PURE__*/ y("<svg preserveAspectRatio=none role=img>"), w = /*#__PURE__*/ y("<svg><circle r=2></svg>", !1, !0, !1), T = 2;
6
+ function E(e, t, n) {
7
+ if (e.length === 0) return [];
8
+ if (e.length === 1) return [{
9
+ x: t / 2,
10
+ y: n / 2
11
+ }];
12
+ let r = Math.min(...e), i = Math.max(...e) - r || 1, a = Math.max(n - 4, 0), o = t / (e.length - 1);
13
+ return e.map((e, t) => ({
14
+ x: t * o,
15
+ y: T + a - (e - r) / i * a
16
+ }));
194
17
  }
195
18
  function D(e) {
196
- return e === "foreground" ? "hsl(var(--foreground))" : `hsl(var(--${e}))`;
197
- }
198
- function et(e, t) {
199
- return `hsl(var(${e === "foreground" ? "--foreground" : `--${e}`}) / ${t})`;
200
- }
201
- function tt(e) {
202
- return Math.max(0, ...e.map((t) => t.data.length));
203
- }
204
- function nt(e) {
205
- const t = e.flatMap((s) => s.data);
206
- if (t.length === 0) return {
207
- min: 0,
208
- max: 1
209
- };
210
- const r = Math.min(...t), g = Math.max(...t);
211
- return r === g ? {
212
- min: r - 1,
213
- max: g + 1
214
- } : {
215
- min: r,
216
- max: g
217
- };
218
- }
219
- function rt(e, t, r, g) {
220
- const s = r - t || 1, k = Math.max(g - fe * 2, 0);
221
- return fe + k - (e - t) / s * k;
222
- }
223
- function W(e, t) {
224
- return t <= 1 ? U / 2 : e * (U / (t - 1));
225
- }
226
- function at(e, t, r, g, s) {
227
- return e.map((k, h) => ({
228
- x: W(h, t),
229
- y: rt(k, r, g, s)
230
- }));
19
+ let n = () => e.width ?? 120, i = () => e.height ?? 32, a = () => e.tone ?? "primary", o = () => E(e.data, n(), i()), s = () => o().map((e) => `${e.x},${e.y}`).join(" "), c = () => {
20
+ let e = o();
21
+ if (e.length === 0) return "";
22
+ let t = e.map((e) => `${e.x},${e.y}`).join(" L "), n = e[0], r = e[e.length - 1];
23
+ return `M ${n.x},${i()} L ${t} L ${r.x},${i()} Z`;
24
+ };
25
+ return (() => {
26
+ var l = C();
27
+ return h(l, f(r, {
28
+ get when() {
29
+ return o().length > 0;
30
+ },
31
+ get children() {
32
+ return [f(r, {
33
+ get when() {
34
+ return e.area;
35
+ },
36
+ get children() {
37
+ var e = x();
38
+ return m((t) => {
39
+ var n = c(), r = `hsl(var(--${a()}) / 0.15)`;
40
+ return n !== t.e && _(e, "d", t.e = n), r !== t.t && _(e, "fill", t.t = r), t;
41
+ }, {
42
+ e: void 0,
43
+ t: void 0
44
+ }), e;
45
+ }
46
+ }), f(r, {
47
+ get when() {
48
+ return o().length > 1;
49
+ },
50
+ get fallback() {
51
+ return (() => {
52
+ var e = w();
53
+ return m((t) => {
54
+ var n = o()[0]?.x, r = o()[0]?.y, i = `hsl(var(--${a()}))`;
55
+ return n !== t.e && _(e, "cx", t.e = n), r !== t.t && _(e, "cy", t.t = r), i !== t.a && _(e, "fill", t.a = i), t;
56
+ }, {
57
+ e: void 0,
58
+ t: void 0,
59
+ a: void 0
60
+ }), e;
61
+ })();
62
+ },
63
+ get children() {
64
+ var e = S();
65
+ return m((t) => {
66
+ var n = s(), r = `hsl(var(--${a()}))`;
67
+ return n !== t.e && _(e, "points", t.e = n), r !== t.t && _(e, "stroke", t.t = r), t;
68
+ }, {
69
+ e: void 0,
70
+ t: void 0
71
+ }), e;
72
+ }
73
+ })];
74
+ }
75
+ })), m((r) => {
76
+ var a = t("overflow-visible", e.class), o = n(), s = i(), c = `0 0 ${n()} ${i()}`;
77
+ return a !== r.e && _(l, "class", r.e = a), o !== r.t && _(l, "width", r.t = o), s !== r.a && _(l, "height", r.a = s), c !== r.o && _(l, "viewBox", r.o = c), r;
78
+ }, {
79
+ e: void 0,
80
+ t: void 0,
81
+ a: void 0,
82
+ o: void 0
83
+ }), l;
84
+ })();
231
85
  }
232
- function Ut(e) {
233
- const t = () => e.height ?? 200, r = () => tt(e.series), g = () => nt(e.series), s = () => e.series.filter((n) => n.name), k = () => e.series.map((n) => at(n.data, r(), g().min, g().max, t())), h = (n) => {
234
- if (n.length === 0) return "";
235
- const a = n.map((i) => `${i.x},${i.y}`).join(" L "), f = n[0], u = n[n.length - 1];
236
- return `M ${f.x},${t()} L ${a} L ${u.x},${t()} Z`;
237
- };
238
- let x;
239
- const [o, c] = ye(null), $ = (n) => {
240
- if (!x || r() === 0) return;
241
- const a = x.getBoundingClientRect(), f = a.width === 0 ? 0 : (n.clientX - a.left) / a.width, u = Math.min(1, Math.max(0, f)), i = r() <= 1 ? 0 : Math.round(u * (r() - 1));
242
- c(i);
243
- }, w = () => c(null), y = () => `Line chart with ${s().map((f) => f.name).join(", ") || `${e.series.length} series`}, ${r()} data points each`;
244
- return (() => {
245
- var n = We(), a = n.firstChild, f = a.firstChild;
246
- b(n, C(P, {
247
- get when() {
248
- return s().length >= 2;
249
- },
250
- get children() {
251
- var i = Ke();
252
- return b(i, C(N, {
253
- get each() {
254
- return e.series;
255
- },
256
- children: (v, d) => C(P, {
257
- get when() {
258
- return v.name;
259
- },
260
- get children() {
261
- var M = Xe(), T = M.firstChild;
262
- return b(M, () => v.name, null), S((L) => j(T, "background-color", D(V(v, d())))), M;
263
- }
264
- })
265
- })), i;
266
- }
267
- }), a), ve(f, "pointerleave", e.showTooltip ? w : void 0), ve(f, "pointermove", e.showTooltip ? $ : void 0, !0);
268
- var u = x;
269
- return typeof u == "function" ? Ce(u, f) : x = f, b(f, C(N, {
270
- get each() {
271
- return e.series;
272
- },
273
- children: (i, v) => {
274
- const d = () => k()[v()], M = () => V(i, v()), T = () => d().map((L) => `${L.x},${L.y}`).join(" ");
275
- return [C(P, {
276
- get when() {
277
- return i.area;
278
- },
279
- get children() {
280
- var L = Ze();
281
- return S((E) => {
282
- var A = h(d()), m = et(M(), 0.15);
283
- return A !== E.e && l(L, "d", E.e = A), m !== E.t && l(L, "fill", E.t = m), E;
284
- }, {
285
- e: void 0,
286
- t: void 0
287
- }), L;
288
- }
289
- }), (() => {
290
- var L = qe();
291
- return S((E) => {
292
- var A = T(), m = D(M());
293
- return A !== E.e && l(L, "points", E.e = A), m !== E.t && l(L, "stroke", E.t = m), E;
294
- }, {
295
- e: void 0,
296
- t: void 0
297
- }), L;
298
- })(), C(P, {
299
- get when() {
300
- return e.showDots;
301
- },
302
- get children() {
303
- return C(N, {
304
- get each() {
305
- return d();
306
- },
307
- children: (L) => (() => {
308
- var E = Je();
309
- return S((A) => {
310
- var m = L.x, B = L.y, z = D(M());
311
- return m !== A.e && l(E, "cx", A.e = m), B !== A.t && l(E, "cy", A.t = B), z !== A.a && l(E, "fill", A.a = z), A;
312
- }, {
313
- e: void 0,
314
- t: void 0,
315
- a: void 0
316
- }), E;
317
- })()
318
- });
319
- }
320
- })];
321
- }
322
- }), null), b(f, C(P, {
323
- get when() {
324
- return K(() => !!e.showTooltip)() && o() !== null;
325
- },
326
- get children() {
327
- var i = Ye();
328
- return S((v) => {
329
- var d = W(o() ?? 0, r()), M = W(o() ?? 0, r()), T = t();
330
- return d !== v.e && l(i, "x1", v.e = d), M !== v.t && l(i, "x2", v.t = M), T !== v.a && l(i, "y2", v.a = T), v;
331
- }, {
332
- e: void 0,
333
- t: void 0,
334
- a: void 0
335
- }), i;
336
- }
337
- }), null), b(a, C(P, {
338
- get when() {
339
- return K(() => !!e.showTooltip)() && o() !== null;
340
- },
341
- get children() {
342
- var i = He();
343
- return b(i, C(P, {
344
- get when() {
345
- var v;
346
- return (v = e.labels) == null ? void 0 : v[o() ?? -1];
347
- },
348
- get children() {
349
- var v = Ve();
350
- return b(v, () => {
351
- var d;
352
- return (d = e.labels) == null ? void 0 : d[o() ?? -1];
353
- }), v;
354
- }
355
- }), null), b(i, C(N, {
356
- get each() {
357
- return e.series;
358
- },
359
- children: (v, d) => C(P, {
360
- get when() {
361
- return v.data[o() ?? -1] !== void 0;
362
- },
363
- get children() {
364
- var M = Qe(), T = M.firstChild, L = T.nextSibling, E = L.firstChild, A = L.nextSibling;
365
- return b(L, () => v.name ?? `Series ${d() + 1}`, E), b(A, () => v.data[o() ?? -1]), S((m) => j(T, "background-color", D(V(v, d())))), M;
366
- }
367
- })
368
- }), null), S((v) => {
369
- var d = `${(o() ?? 0) / Math.max(r() - 1, 1) * 100}%`, M = `translateX(${(o() ?? 0) / Math.max(r() - 1, 1) > 0.8 ? "-100%" : "-8px"}) translateY(-100%)`;
370
- return d !== v.e && j(i, "left", v.e = d), M !== v.t && j(i, "transform", v.t = M), v;
371
- }, {
372
- e: void 0,
373
- t: void 0
374
- }), i;
375
- }
376
- }), null), b(n, C(P, {
377
- get when() {
378
- return K(() => !!e.labels)() && e.labels.length > 0;
379
- },
380
- get children() {
381
- var i = Ue();
382
- return b(i, C(N, {
383
- get each() {
384
- return e.labels;
385
- },
386
- children: (v) => (() => {
387
- var d = pe();
388
- return b(d, v), d;
389
- })()
390
- })), i;
391
- }
392
- }), null), S((i) => {
393
- var v = F("w-full", e.class), d = `0 0 ${U} ${t()}`, M = t(), T = y();
394
- return v !== i.e && O(n, i.e = v), d !== i.t && l(f, "viewBox", i.t = d), M !== i.a && l(f, "height", i.a = M), T !== i.o && l(f, "aria-label", i.o = T), i;
395
- }, {
396
- e: void 0,
397
- t: void 0,
398
- a: void 0,
399
- o: void 0
400
- }), n;
401
- })();
402
- }
403
- Le(["pointermove"]);
404
- var lt = /* @__PURE__ */ _('<span class="text-base font-medium">'), it = /* @__PURE__ */ _('<span class="text-xs text-muted-foreground">'), ot = /* @__PURE__ */ _('<div role=meter><svg role=img aria-hidden=true><path fill=none stroke=hsl(var(--muted)) stroke-linecap=round></path><path fill=none stroke-linecap=round></path></svg><div class="absolute inset-0 flex flex-col items-center justify-center gap-0.5 px-4 text-center"><span class="text-2xl font-semibold tabular-nums text-foreground">');
405
- const H = {
406
- primary: "--primary",
407
- accent: "--accent",
408
- destructive: "--destructive",
409
- muted: "--muted"
410
- }, ke = Math.PI / 180, _e = -135, Me = 135, st = Me - _e;
411
- function ge(e, t, r, g) {
412
- const s = g * ke;
413
- return {
414
- x: e + r * Math.sin(s),
415
- y: t - r * Math.cos(s)
416
- };
417
- }
418
- function ct(e, t, r) {
419
- const g = ge(e, t, r, _e), s = ge(e, t, r, Me);
420
- return `M ${g.x} ${g.y} A ${r} ${r} 0 1 1 ${s.x} ${s.y}`;
421
- }
422
- function vt(e, t, r) {
423
- if (!r || r.length === 0) return H[t];
424
- let g = H[t];
425
- for (const s of [...r].sort((k, h) => k.value - h.value))
426
- e >= s.value && (g = H[s.tone]);
427
- return g;
428
- }
429
- function Wt(e) {
430
- const t = () => e.size ?? 160, r = () => e.min ?? 0, g = () => e.max ?? 100, s = () => e.tone ?? "primary", k = () => t() / 8, h = () => t() / 2, x = () => Math.max(t() / 2 - k() / 2, 0), o = () => x() * (st * ke), c = () => ct(h(), h(), x()), $ = () => Math.min(Math.max(e.value, r()), g()), w = () => {
431
- const d = g() - r();
432
- return d > 0 ? ($() - r()) / d : 0;
433
- }, y = () => vt($(), s(), e.thresholds), [n, a] = ye(0);
434
- Se(() => {
435
- if (ue()) {
436
- a(w());
437
- return;
438
- }
439
- requestAnimationFrame(() => a(w()));
440
- }), Ee(Te(w, (d) => a(d), {
441
- defer: !0
442
- }));
443
- const f = () => o() * (1 - n()), u = () => ue() ? "none" : "stroke-dashoffset 700ms ease-out", i = () => Math.round($()), v = () => `${i()}${e.unit ?? ""}`;
444
- return (() => {
445
- var d = ot(), M = d.firstChild, T = M.firstChild, L = T.nextSibling, E = M.nextSibling, A = E.firstChild;
446
- return b(A, i, null), b(A, C(P, {
447
- get when() {
448
- return e.unit;
449
- },
450
- get children() {
451
- var m = lt();
452
- return b(m, () => e.unit), m;
453
- }
454
- }), null), b(E, C(P, {
455
- get when() {
456
- return e.label;
457
- },
458
- get children() {
459
- var m = it();
460
- return b(m, () => e.label), m;
461
- }
462
- }), null), S((m) => {
463
- var B = F("relative inline-flex items-center justify-center", e.class), z = `${t()}px`, X = `${t()}px`, Z = $(), q = r(), J = g(), Q = v(), p = t(), ee = t(), te = `0 0 ${t()} ${t()}`, ne = c(), re = k(), ae = c(), le = `hsl(var(${y()}))`, ie = k(), oe = `${o()} ${o()}`, se = f(), ce = u();
464
- return B !== m.e && O(d, m.e = B), z !== m.t && j(d, "width", m.t = z), X !== m.a && j(d, "height", m.a = X), Z !== m.o && l(d, "aria-valuenow", m.o = Z), q !== m.i && l(d, "aria-valuemin", m.i = q), J !== m.n && l(d, "aria-valuemax", m.n = J), Q !== m.s && l(d, "aria-label", m.s = Q), p !== m.h && l(M, "width", m.h = p), ee !== m.r && l(M, "height", m.r = ee), te !== m.d && l(M, "viewBox", m.d = te), ne !== m.l && l(T, "d", m.l = ne), re !== m.u && l(T, "stroke-width", m.u = re), ae !== m.c && l(L, "d", m.c = ae), le !== m.w && l(L, "stroke", m.w = le), ie !== m.m && l(L, "stroke-width", m.m = ie), oe !== m.f && l(L, "stroke-dasharray", m.f = oe), se !== m.y && l(L, "stroke-dashoffset", m.y = se), ce !== m.g && j(L, "transition", m.g = ce), m;
465
- }, {
466
- e: void 0,
467
- t: void 0,
468
- a: void 0,
469
- o: void 0,
470
- i: void 0,
471
- n: void 0,
472
- s: void 0,
473
- h: void 0,
474
- r: void 0,
475
- d: void 0,
476
- l: void 0,
477
- u: void 0,
478
- c: void 0,
479
- w: void 0,
480
- m: void 0,
481
- f: void 0,
482
- y: void 0,
483
- g: void 0
484
- }), d;
485
- })();
486
- }
487
- var ut = /* @__PURE__ */ _('<div class="flex flex-wrap items-center justify-center gap-x-3 gap-y-1">'), dt = /* @__PURE__ */ _("<div><svg role=img>"), ht = /* @__PURE__ */ _("<svg><polygon fill=none stroke=hsl(var(--border)) stroke-width=1></svg>", !1, !0, !1), ft = /* @__PURE__ */ _("<svg><line stroke=hsl(var(--border)) stroke-width=1></svg>", !1, !0, !1), mt = /* @__PURE__ */ _("<title>"), gt = /* @__PURE__ */ _("<svg><polygon stroke-width=2 stroke-linejoin=round></svg>", !1, !0, !1), xt = /* @__PURE__ */ _('<svg><text class="text-xs fill-muted-foreground"></svg>', !1, !0, !1), $t = /* @__PURE__ */ _('<span class="inline-flex items-center gap-1.5 text-xs text-muted-foreground"><span class="inline-block size-2 rounded-full">');
488
- const wt = {
489
- primary: "--primary",
490
- accent: "--accent"
491
- }, xe = ["--primary", "--accent"];
492
- function bt(e, t) {
493
- return e.tone ? wt[e.tone] : xe[t % xe.length];
494
- }
495
- const $e = 4, we = 14, R = 34;
496
- function I(e, t) {
497
- return -90 + 360 / t * e;
498
- }
499
- function G(e, t, r, g) {
500
- const s = g * Math.PI / 180;
501
- return {
502
- x: e + r * Math.cos(s),
503
- y: t + r * Math.sin(s)
504
- };
505
- }
506
- function yt(e, t, r, g) {
507
- return Array.from({
508
- length: g
509
- }, (s, k) => {
510
- const h = G(e, t, r, I(k, g));
511
- return `${h.x},${h.y}`;
512
- }).join(" ");
513
- }
514
- function kt(e) {
515
- const t = Math.cos(e * Math.PI / 180);
516
- return t > 0.1 ? "start" : t < -0.1 ? "end" : "middle";
517
- }
518
- function _t(e) {
519
- const t = Math.sin(e * Math.PI / 180);
520
- return t < -0.3 ? "auto" : t > 0.3 ? "hanging" : "middle";
521
- }
522
- function Xt(e) {
523
- const t = () => e.size ?? 240, r = () => t() / 2, g = () => Math.max(t() / 2 - we * 2, 0), s = () => e.axes.length, k = () => e.max ?? Math.max(1, ...e.series.flatMap((y) => y.values)), h = () => Array.from({
524
- length: $e
525
- }, (y, n) => {
526
- const a = n + 1;
527
- return yt(r(), r(), g() * (a / $e), s());
528
- }), x = () => e.axes.map((y, n) => G(r(), r(), g(), I(n, s()))), o = () => e.axes.map((y, n) => {
529
- const a = I(n, s()), f = G(r(), r(), g() + we, a);
530
- return {
531
- label: y,
532
- x: f.x,
533
- y: f.y,
534
- anchor: kt(a),
535
- baseline: _t(a)
536
- };
537
- }), c = () => {
538
- const y = k();
539
- return e.series.map((n, a) => {
540
- const f = n.values.map((u, i) => {
541
- const v = y > 0 ? Math.max(u, 0) / y : 0, d = G(r(), r(), g() * v, I(i, s()));
542
- return `${d.x},${d.y}`;
543
- }).join(" ");
544
- return {
545
- series: n,
546
- index: a,
547
- points: f,
548
- token: bt(n, a)
549
- };
550
- });
551
- }, $ = () => e.series.filter((y) => y.name), w = () => $().length >= 2;
552
- return (() => {
553
- var y = dt(), n = y.firstChild;
554
- return b(n, C(N, {
555
- get each() {
556
- return h();
557
- },
558
- children: (a) => (() => {
559
- var f = ht();
560
- return l(f, "points", a), f;
561
- })()
562
- }), null), b(n, C(N, {
563
- get each() {
564
- return x();
565
- },
566
- children: (a) => (() => {
567
- var f = ft();
568
- return S((u) => {
569
- var i = r(), v = r(), d = a.x, M = a.y;
570
- return i !== u.e && l(f, "x1", u.e = i), v !== u.t && l(f, "y1", u.t = v), d !== u.a && l(f, "x2", u.a = d), M !== u.o && l(f, "y2", u.o = M), u;
571
- }, {
572
- e: void 0,
573
- t: void 0,
574
- a: void 0,
575
- o: void 0
576
- }), f;
577
- })()
578
- }), null), b(n, C(N, {
579
- get each() {
580
- return c();
581
- },
582
- children: ({
583
- series: a,
584
- points: f,
585
- token: u
586
- }) => (() => {
587
- var i = gt();
588
- return l(i, "points", f), l(i, "fill", `hsl(var(${u}) / 0.15)`), l(i, "stroke", `hsl(var(${u}))`), b(i, C(P, {
589
- get when() {
590
- return a.name;
591
- },
592
- get children() {
593
- var v = mt();
594
- return b(v, () => a.name), v;
595
- }
596
- })), i;
597
- })()
598
- }), null), b(n, C(N, {
599
- get each() {
600
- return o();
601
- },
602
- children: (a) => (() => {
603
- var f = xt();
604
- return b(f, () => a.label), S((u) => {
605
- var i = a.x, v = a.y, d = a.anchor, M = a.baseline;
606
- return i !== u.e && l(f, "x", u.e = i), v !== u.t && l(f, "y", u.t = v), d !== u.a && l(f, "text-anchor", u.a = d), M !== u.o && l(f, "dominant-baseline", u.o = M), u;
607
- }, {
608
- e: void 0,
609
- t: void 0,
610
- a: void 0,
611
- o: void 0
612
- }), f;
613
- })()
614
- }), null), b(y, C(P, {
615
- get when() {
616
- return w();
617
- },
618
- get children() {
619
- var a = ut();
620
- return b(a, C(N, {
621
- get each() {
622
- return c();
623
- },
624
- children: ({
625
- series: f,
626
- token: u
627
- }) => C(P, {
628
- get when() {
629
- return f.name;
630
- },
631
- get children() {
632
- var i = $t(), v = i.firstChild;
633
- return j(v, "background-color", `hsl(var(${u}))`), b(i, () => f.name, null), i;
634
- }
635
- })
636
- })), a;
637
- }
638
- }), null), S((a) => {
639
- var f = F("inline-flex flex-col items-center gap-2", e.class), u = t(), i = t(), v = `${-R} ${-R} ${t() + R * 2} ${t() + R * 2}`, d = `Radar chart comparing ${e.series.length} series across ${s()} axes: ${e.axes.join(", ")}`;
640
- return f !== a.e && O(y, a.e = f), u !== a.t && l(n, "width", a.t = u), i !== a.a && l(n, "height", a.a = i), v !== a.o && l(n, "viewBox", a.o = v), d !== a.i && l(n, "aria-label", a.i = d), a;
641
- }, {
642
- e: void 0,
643
- t: void 0,
644
- a: void 0,
645
- o: void 0,
646
- i: void 0
647
- }), y;
648
- })();
649
- }
650
- var Mt = /* @__PURE__ */ _("<div>"), Ct = /* @__PURE__ */ _('<a class="relative z-10 min-w-0 flex-1 truncate px-2.5 text-sm text-foreground underline-offset-2 hover:underline">'), Lt = /* @__PURE__ */ _('<div class="relative isolate flex h-8 w-full min-w-0 items-center overflow-hidden rounded-md bg-muted/40"><div></div><span class="relative z-10 shrink-0 px-2.5 text-sm tabular-nums text-muted-foreground">'), St = /* @__PURE__ */ _('<span class="relative z-10 min-w-0 flex-1 truncate px-2.5 text-sm text-foreground">');
651
- function Zt(e) {
652
- const t = () => e.tone ?? "primary", r = () => e.valueFormat ?? ((h) => String(h)), g = () => t() === "accent" ? "bg-accent/15" : "bg-primary/15", s = () => [...e.data].sort((h, x) => x.value - h.value), k = () => Math.max(...e.data.map((h) => h.value), 0) || 1;
653
- return (() => {
654
- var h = Mt();
655
- return b(h, C(N, {
656
- get each() {
657
- return s();
658
- },
659
- children: (x) => (() => {
660
- var o = Lt(), c = o.firstChild, $ = c.nextSibling;
661
- return b(o, C(P, {
662
- get when() {
663
- return x.href;
664
- },
665
- get fallback() {
666
- return (() => {
667
- var w = St();
668
- return b(w, () => x.name), w;
669
- })();
670
- },
671
- get children() {
672
- var w = Ct();
673
- return b(w, () => x.name), S(() => l(w, "href", x.href)), w;
674
- }
675
- }), $), b($, () => r()(x.value)), S((w) => {
676
- var y = F("absolute inset-y-0 left-0 rounded-md transition-all", g()), n = `${Math.max(x.value / k() * 100, 0)}%`;
677
- return y !== w.e && O(c, w.e = y), n !== w.t && j(c, "width", w.t = n), w;
678
- }, {
679
- e: void 0,
680
- t: void 0
681
- }), o;
682
- })()
683
- })), S(() => O(h, F("flex w-full flex-col gap-1.5", e.class))), h;
684
- })();
685
- }
686
- var Et = /* @__PURE__ */ _('<span class="text-xs text-muted-foreground">'), Tt = /* @__PURE__ */ _('<div><div class="flex w-full items-stretch gap-1">'), At = /* @__PURE__ */ _("<div>");
687
- const Pt = {
688
- ok: "bg-emerald-500",
689
- degraded: "bg-amber-500",
690
- down: "bg-destructive"
691
- }, be = {
692
- ok: "Operational",
693
- degraded: "Degraded",
694
- down: "Down"
86
+ // src/charts/shared.tsx
87
+ var O = /*#__PURE__*/ y("<div class=\"mb-0.5 font-medium text-foreground\">"), k = /*#__PURE__*/ y("<div data-chart-tooltip aria-live=polite class=\"pointer-events-none absolute z-10 whitespace-nowrap rounded-md border border-border bg-popover px-2 py-1 text-xs text-popover-foreground shadow-md\">"), A = /*#__PURE__*/ y("<div class=\"flex items-center gap-1.5\"data-chart-tooltip-row><span class=\"inline-block size-1.5 rounded-full\"></span><span>:</span><span class=\"font-medium text-foreground\">"), j = /*#__PURE__*/ y("<ul data-chart-legend>"), M = /*#__PURE__*/ y("<span class=\"inline-block size-2 rounded-full\">"), N = /*#__PURE__*/ y("<span>"), P = /*#__PURE__*/ y("<button type=button class=\"inline-flex items-center gap-1.5 rounded text-xs text-muted-foreground hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\">"), ee = /*#__PURE__*/ y("<li>"), F = /*#__PURE__*/ y("<span class=\"inline-flex items-center gap-1.5 text-xs text-muted-foreground\">"), I = /*#__PURE__*/ y("<div class=\"relative mt-1 h-4 w-full text-xs text-muted-foreground\"aria-hidden=true>"), L = /*#__PURE__*/ y("<span data-x-label class=\"absolute top-0 whitespace-nowrap\">"), te = {
88
+ primary: "--primary",
89
+ accent: "--accent",
90
+ destructive: "--destructive",
91
+ muted: "--muted-foreground",
92
+ "chart-1": "--primary",
93
+ "chart-2": "--accent",
94
+ "chart-3": "--data-emit",
95
+ "chart-4": "--data-received",
96
+ "chart-5": "--data-net"
97
+ }, ne = [
98
+ "chart-1",
99
+ "chart-2",
100
+ "chart-3",
101
+ "chart-4",
102
+ "chart-5"
103
+ ];
104
+ function re(e, t) {
105
+ return te[e ?? ne[t % ne.length]];
106
+ }
107
+ function R(e, t, n) {
108
+ let r = re(e, t);
109
+ return n === void 0 ? `hsl(var(${r}))` : `hsl(var(${r}) / ${n})`;
110
+ }
111
+ function ie(e, t, n) {
112
+ let r = e?.[t];
113
+ if (r === void 0) throw Error(`Chart datum "${n}" has no value for series "${t}"`);
114
+ return r;
115
+ }
116
+ function z(e) {
117
+ let t = () => {
118
+ let t = e.anchor ?? .5;
119
+ return t > .8 ? "-100%" : t < .2 ? "0%" : "-50%";
120
+ };
121
+ return (() => {
122
+ var i = k();
123
+ return h(i, f(r, {
124
+ get when() {
125
+ return e.title;
126
+ },
127
+ get children() {
128
+ var t = O();
129
+ return h(t, () => e.title), t;
130
+ }
131
+ }), null), h(i, f(n, {
132
+ get each() {
133
+ return e.rows;
134
+ },
135
+ children: (e) => (() => {
136
+ var t = A(), n = t.firstChild, r = n.nextSibling, i = r.firstChild, a = r.nextSibling;
137
+ return h(r, () => e.label, i), h(a, () => e.value), m((t) => v(n, "background-color", e.color)), t;
138
+ })()
139
+ }), null), m((n) => {
140
+ var r = e.left, a = e.top ?? "0", o = `translate(${t()}, -100%)`;
141
+ return r !== n.e && v(i, "left", n.e = r), a !== n.t && v(i, "top", n.t = a), o !== n.a && v(i, "transform", n.a = o), n;
142
+ }, {
143
+ e: void 0,
144
+ t: void 0,
145
+ a: void 0
146
+ }), i;
147
+ })();
148
+ }
149
+ function B(e) {
150
+ return (() => {
151
+ var i = j();
152
+ return h(i, f(n, {
153
+ get each() {
154
+ return e.items;
155
+ },
156
+ children: (t) => {
157
+ let n = () => e.hidden?.has(t.key) ?? !1, i = [(() => {
158
+ var e = M();
159
+ return m((r) => {
160
+ var i = n() ? "transparent" : t.color, a = `inset 0 0 0 1px ${t.color}`;
161
+ return i !== r.e && v(e, "background-color", r.e = i), a !== r.t && v(e, "box-shadow", r.t = a), r;
162
+ }, {
163
+ e: void 0,
164
+ t: void 0
165
+ }), e;
166
+ })(), (() => {
167
+ var e = N();
168
+ return h(e, () => t.label), m(() => d(e, n() ? "line-through opacity-60" : void 0)), e;
169
+ })()];
170
+ return (() => {
171
+ var a = ee();
172
+ return h(a, f(r, {
173
+ get when() {
174
+ return e.onToggle;
175
+ },
176
+ get fallback() {
177
+ return (() => {
178
+ var e = F();
179
+ return h(e, i), e;
180
+ })();
181
+ },
182
+ get children() {
183
+ var r = P();
184
+ return r.$$click = () => e.onToggle?.(t.key), h(r, i), m((e) => {
185
+ var i = !n(), a = t.key;
186
+ return i !== e.e && _(r, "aria-pressed", e.e = i), a !== e.t && _(r, "data-series", e.t = a), e;
187
+ }, {
188
+ e: void 0,
189
+ t: void 0
190
+ }), r;
191
+ }
192
+ })), a;
193
+ })();
194
+ }
195
+ })), m(() => d(i, t("flex flex-wrap gap-x-3 gap-y-1", e.class))), i;
196
+ })();
197
+ }
198
+ function V() {
199
+ let [e, t] = o(/* @__PURE__ */ new Set());
200
+ return {
201
+ hidden: e,
202
+ toggle: (e) => t((t) => {
203
+ let n = new Set(t);
204
+ return n.has(e) ? n.delete(e) : n.add(e), n;
205
+ })
206
+ };
207
+ }
208
+ function H(e) {
209
+ let [t, n] = o(null);
210
+ return {
211
+ active: t,
212
+ setActive: n,
213
+ onKeyDown: (r) => {
214
+ let i = e();
215
+ if (i === 0) return;
216
+ let a = t(), o;
217
+ r.key === "ArrowRight" || r.key === "ArrowDown" ? o = a === null ? 0 : Math.min(a + 1, i - 1) : r.key === "ArrowLeft" || r.key === "ArrowUp" ? o = a === null ? i - 1 : Math.max(a - 1, 0) : r.key === "Home" ? o = 0 : r.key === "End" ? o = i - 1 : r.key === "Escape" && a !== null && (o = null), o !== void 0 && (r.preventDefault(), n(o));
218
+ },
219
+ onFocus: (r) => {
220
+ t() === null && e() > 0 && r.currentTarget.matches(":focus-visible") && n(0);
221
+ },
222
+ onBlur: () => n(null)
223
+ };
224
+ }
225
+ var U = "rounded outline-none focus-visible:ring-2 focus-visible:ring-ring";
226
+ function ae(e) {
227
+ let t = e.reduce((e, t) => e + t, 0) || 1, n = 0;
228
+ return e.map((e, r) => {
229
+ let i = e / t * 360, a = {
230
+ index: r,
231
+ value: e,
232
+ start: n,
233
+ angle: i
234
+ };
235
+ return n += i, a;
236
+ });
237
+ }
238
+ function W(e, t, n, r) {
239
+ let i = (r - 90) * Math.PI / 180;
240
+ return {
241
+ x: e + n * Math.cos(i),
242
+ y: t + n * Math.sin(i)
243
+ };
244
+ }
245
+ function G(e, t, n, r, i, a) {
246
+ let o = (e) => +e.toFixed(3);
247
+ if (a >= 359.999) {
248
+ let i = (n, r) => {
249
+ let i = W(e, t, n, 0), a = W(e, t, n, 180);
250
+ return `M ${o(i.x)} ${o(i.y)} A ${n} ${n} 0 1 ${+!r} ${o(a.x)} ${o(a.y)} A ${n} ${n} 0 1 ${+!r} ${o(i.x)} ${o(i.y)}`;
251
+ };
252
+ return r > 0 ? `${i(n, !1)} ${i(r, !0)} Z` : `${i(n, !1)} Z`;
253
+ }
254
+ let s = i + a, c = +(a > 180), l = W(e, t, n, i), u = W(e, t, n, s);
255
+ if (r <= 0) return `M ${o(e)} ${o(t)} L ${o(l.x)} ${o(l.y)} A ${n} ${n} 0 ${c} 1 ${o(u.x)} ${o(u.y)} Z`;
256
+ let d = W(e, t, r, i), f = W(e, t, r, s);
257
+ return `M ${o(l.x)} ${o(l.y)} A ${n} ${n} 0 ${c} 1 ${o(u.x)} ${o(u.y)} L ${o(f.x)} ${o(f.y)} A ${r} ${r} 0 ${c} 0 ${o(d.x)} ${o(d.y)} Z`;
258
+ }
259
+ function oe(e) {
260
+ let t = (t) => e.labels.length <= 1 ? .5 : t / (e.labels.length - 1), r = (t) => e.labels.length <= 1 ? "-50%" : t === 0 ? "0%" : t === e.labels.length - 1 ? "-100%" : "-50%";
261
+ return (() => {
262
+ var i = I();
263
+ return h(i, f(n, {
264
+ get each() {
265
+ return e.labels;
266
+ },
267
+ children: (e, n) => (() => {
268
+ var i = L();
269
+ return h(i, e), m((e) => {
270
+ var a = `${t(n()) * 100}%`, o = `translateX(${r(n())})`;
271
+ return a !== e.e && v(i, "left", e.e = a), o !== e.t && v(i, "transform", e.t = o), e;
272
+ }, {
273
+ e: void 0,
274
+ t: void 0
275
+ }), i;
276
+ })()
277
+ })), i;
278
+ })();
279
+ }
280
+ p(["click"]);
281
+ // src/charts/BarChart.tsx
282
+ var se = /*#__PURE__*/ y("<div>"), ce = /*#__PURE__*/ y("<div class=\"flex h-full min-w-0 flex-1 flex-col items-center justify-end gap-1\"><div></div><span class=\"w-full truncate text-center text-xs text-muted-foreground\">"), le = /*#__PURE__*/ y("<svg><rect y=0 fill=\"hsl(var(--muted) / 0.4)\"></svg>", !1, !0, !1), ue = /*#__PURE__*/ y("<div><div tabindex=0 role=img data-chart=bar><svg class=\"block w-full overflow-visible\"preserveAspectRatio=none aria-hidden=true></svg></div><div class=\"mt-1 flex w-full text-xs text-muted-foreground\">"), de = /*#__PURE__*/ y("<svg><rect data-bar rx=1></svg>", !1, !0, !1), fe = /*#__PURE__*/ y("<span class=\"min-w-0 flex-1 truncate text-center\">"), K = 400;
283
+ function pe(e) {
284
+ return f(r, {
285
+ get when() {
286
+ return (e.mode ?? "single") !== "single";
287
+ },
288
+ get fallback() {
289
+ return f(me, e);
290
+ },
291
+ get children() {
292
+ return f(he, e);
293
+ }
294
+ });
295
+ }
296
+ function me(e) {
297
+ let r = (e) => {
298
+ if (e.value === void 0) throw Error(`BarChart datum "${e.label}" needs a numeric "value" in single mode`);
299
+ return e.value;
300
+ }, i = () => e.height ?? 160, a = () => e.tone ?? "primary", o = () => Math.max(...e.data.map(r), 0) || 1, s = () => a() === "accent" ? "bg-accent" : "bg-primary";
301
+ return (() => {
302
+ var a = se();
303
+ return h(a, f(n, {
304
+ get each() {
305
+ return e.data;
306
+ },
307
+ children: (e) => (() => {
308
+ var n = ce(), i = n.firstChild, a = i.nextSibling;
309
+ return h(a, () => e.label), m((n) => {
310
+ var a = `${e.label}: ${r(e)}`, c = t("w-full rounded-t transition-all", s()), l = `${Math.max(r(e) / o() * 100, 0)}%`;
311
+ return a !== n.e && _(i, "title", n.e = a), c !== n.t && d(i, n.t = c), l !== n.a && v(i, "height", n.a = l), n;
312
+ }, {
313
+ e: void 0,
314
+ t: void 0,
315
+ a: void 0
316
+ }), n;
317
+ })()
318
+ })), m((n) => {
319
+ var r = t("flex w-full items-end gap-2", e.class), o = `${i()}px`;
320
+ return r !== n.e && d(a, n.e = r), o !== n.t && v(a, "height", n.t = o), n;
321
+ }, {
322
+ e: void 0,
323
+ t: void 0
324
+ }), a;
325
+ })();
326
+ }
327
+ function he(e) {
328
+ let i = () => e.height ?? 160, o = () => e.mode === "stacked", s = () => {
329
+ if (!e.series || e.series.length === 0) throw Error(`BarChart mode="${e.mode}" requires a non-empty "series" prop`);
330
+ return e.series;
331
+ }, { hidden: c, toggle: l } = V(), p = H(() => e.data.length), g = () => s().filter((e) => !c().has(e.key)), v = (e, t) => ie(e.values, t, e.label), y = (e) => {
332
+ let t = s().findIndex((t) => t.key === e);
333
+ return R(s()[t].color, t);
334
+ }, x = a(() => {
335
+ let t = g(), n = e.data.map((e) => o() ? t.reduce((t, n) => t + v(e, n.key), 0) : Math.max(0, ...t.map((t) => v(e, t.key))));
336
+ return Math.max(...n, 0) || 1;
337
+ }), S = a(() => {
338
+ let t = e.data.length, n = K / Math.max(t, 1), r = g(), a = r.length, s = [];
339
+ return e.data.forEach((e, t) => {
340
+ if (o()) {
341
+ let a = n * .6, o = t * n + (n - a) / 2, c = 0;
342
+ r.forEach((n) => {
343
+ let r = v(e, n.key), l = r / x() * i();
344
+ c += l, s.push({
345
+ cat: t,
346
+ key: n.key,
347
+ label: n.label,
348
+ value: r,
349
+ x: o,
350
+ y: i() - c,
351
+ w: a,
352
+ h: l,
353
+ color: y(n.key)
354
+ });
355
+ });
356
+ } else {
357
+ let o = n * .8, c = a > 0 ? (o - 2 * (a - 1)) / a : 0;
358
+ r.forEach((r, a) => {
359
+ let o = v(e, r.key), l = o / x() * i();
360
+ s.push({
361
+ cat: t,
362
+ key: r.key,
363
+ label: r.label,
364
+ value: o,
365
+ x: t * n + n * .1 + a * (c + 2),
366
+ y: i() - l,
367
+ w: c,
368
+ h: l,
369
+ color: y(r.key)
370
+ });
371
+ });
372
+ }
373
+ }), s;
374
+ }), C = () => `${e.mode === "stacked" ? "Stacked" : "Grouped"} bar chart. ` + e.data.map((e) => `${e.label}: ${s().map((t) => `${t.label} ${v(e, t.key)}`).join(", ")}`).join("; "), w, T = (t) => {
375
+ if (!w || e.data.length === 0) return;
376
+ let n = w.getBoundingClientRect(), r = n.width === 0 ? 0 : (t.clientX - n.left) / n.width;
377
+ p.setActive(Math.min(e.data.length - 1, Math.max(0, Math.floor(r * e.data.length))));
378
+ }, E = () => {
379
+ let t = p.active();
380
+ return t === null ? void 0 : e.data[t];
381
+ };
382
+ return (() => {
383
+ var a = ue(), o = a.firstChild, x = o.firstChild, D = o.nextSibling;
384
+ h(a, f(r, {
385
+ get when() {
386
+ return e.showLegend ?? !0;
387
+ },
388
+ get children() {
389
+ return f(B, {
390
+ class: "mb-2",
391
+ get hidden() {
392
+ return c();
393
+ },
394
+ onToggle: l,
395
+ get items() {
396
+ return s().map((e, t) => ({
397
+ key: e.key,
398
+ label: e.label,
399
+ color: R(e.color, t)
400
+ }));
401
+ }
402
+ });
403
+ }
404
+ }), o), u(o, "blur", p.onBlur), u(o, "focus", p.onFocus), u(o, "keydown", p.onKeyDown, !0), x.addEventListener("pointerleave", () => p.setActive(null)), x.$$pointermove = T;
405
+ var O = w;
406
+ return typeof O == "function" ? b(O, x) : w = x, h(x, f(r, {
407
+ get when() {
408
+ return p.active() !== null;
409
+ },
410
+ get children() {
411
+ var t = le();
412
+ return m((n) => {
413
+ var r = (p.active() ?? 0) * (K / e.data.length), a = K / e.data.length, o = i();
414
+ return r !== n.e && _(t, "x", n.e = r), a !== n.t && _(t, "width", n.t = a), o !== n.a && _(t, "height", n.a = o), n;
415
+ }, {
416
+ e: void 0,
417
+ t: void 0,
418
+ a: void 0
419
+ }), t;
420
+ }
421
+ }), null), h(x, f(n, {
422
+ get each() {
423
+ return S();
424
+ },
425
+ children: (t) => (() => {
426
+ var n = de();
427
+ return m((r) => {
428
+ var i = e.data[t.cat].label, a = t.key, o = t.value, s = t.x, c = t.y, l = t.w, u = t.h, d = t.color;
429
+ return i !== r.e && _(n, "data-category", r.e = i), a !== r.t && _(n, "data-series", r.t = a), o !== r.a && _(n, "data-value", r.a = o), s !== r.o && _(n, "x", r.o = s), c !== r.i && _(n, "y", r.i = c), l !== r.n && _(n, "width", r.n = l), u !== r.s && _(n, "height", r.s = u), d !== r.h && _(n, "fill", r.h = d), r;
430
+ }, {
431
+ e: void 0,
432
+ t: void 0,
433
+ a: void 0,
434
+ o: void 0,
435
+ i: void 0,
436
+ n: void 0,
437
+ s: void 0,
438
+ h: void 0
439
+ }), n;
440
+ })()
441
+ }), null), h(o, f(r, {
442
+ get when() {
443
+ return e.showTooltip ?? !0;
444
+ },
445
+ get children() {
446
+ return f(r, {
447
+ get when() {
448
+ return E();
449
+ },
450
+ children: (t) => f(z, {
451
+ get title() {
452
+ return t().label;
453
+ },
454
+ get left() {
455
+ return `${((p.active() ?? 0) + .5) / e.data.length * 100}%`;
456
+ },
457
+ get anchor() {
458
+ return ((p.active() ?? 0) + .5) / e.data.length;
459
+ },
460
+ get rows() {
461
+ return g().map((e) => ({
462
+ label: e.label,
463
+ value: v(t(), e.key),
464
+ color: y(e.key)
465
+ }));
466
+ }
467
+ })
468
+ });
469
+ }
470
+ }), null), h(D, f(n, {
471
+ get each() {
472
+ return e.data;
473
+ },
474
+ children: (e) => (() => {
475
+ var t = fe();
476
+ return h(t, () => e.label), t;
477
+ })()
478
+ })), m((n) => {
479
+ var r = t("w-full", e.class), s = t("relative w-full", U), c = C(), l = e.mode, u = `0 0 ${K} ${i()}`, f = i();
480
+ return r !== n.e && d(a, n.e = r), s !== n.t && d(o, n.t = s), c !== n.a && _(o, "aria-label", n.a = c), l !== n.o && _(o, "data-mode", n.o = l), u !== n.i && _(x, "viewBox", n.i = u), f !== n.n && _(x, "height", n.n = f), n;
481
+ }, {
482
+ e: void 0,
483
+ t: void 0,
484
+ a: void 0,
485
+ o: void 0,
486
+ i: void 0,
487
+ n: void 0
488
+ }), a;
489
+ })();
490
+ }
491
+ p(["keydown", "pointermove"]);
492
+ // src/charts/DonutChart.tsx
493
+ var ge = /*#__PURE__*/ y("<div class=\"absolute inset-0 flex items-center justify-center text-lg font-semibold tabular-nums text-foreground\">"), _e = /*#__PURE__*/ y("<div><svg role=img><g><circle fill=none stroke=hsl(var(--muted))>"), ve = /*#__PURE__*/ y("<svg><circle fill=none stroke-linecap=butt><title></svg>", !1, !0, !1), ye = {
494
+ primary: "--primary",
495
+ accent: "--accent",
496
+ destructive: "--destructive",
497
+ emit: "--data-emit",
498
+ received: "--data-received",
499
+ net: "--data-net"
500
+ }, be = [
501
+ "--data-emit",
502
+ "--data-received",
503
+ "--data-net"
504
+ ];
505
+ function xe(e, t) {
506
+ return e.tone ? ye[e.tone] : be[t % be.length];
507
+ }
508
+ function Se(e) {
509
+ let i = () => e.size ?? 160, a = () => e.thickness ?? 20, o = () => e.showTotal ?? !0, s = () => i() / 2, c = () => Math.max(i() / 2 - a() / 2, 0), l = () => 2 * Math.PI * c(), u = () => e.data.reduce((e, t) => e + t.value, 0), p = () => ae(e.data.map((e) => e.value)).map((t) => ({
510
+ segment: e.data[t.index],
511
+ index: t.index,
512
+ arcLength: t.angle / 360 * l(),
513
+ offset: t.start / 360 * l()
514
+ }));
515
+ return (() => {
516
+ var g = _e(), y = g.firstChild, b = y.firstChild, x = b.firstChild;
517
+ return h(b, f(n, {
518
+ get each() {
519
+ return p();
520
+ },
521
+ children: (e) => (() => {
522
+ var t = ve(), n = t.firstChild;
523
+ return h(n, () => `${e.segment.label}: ${e.segment.value}`), m((n) => {
524
+ var r = s(), i = s(), o = c(), u = `hsl(var(${xe(e.segment, e.index)}))`, d = a(), f = `${e.arcLength} ${Math.max(l() - e.arcLength, 0)}`, p = -e.offset;
525
+ return r !== n.e && _(t, "cx", n.e = r), i !== n.t && _(t, "cy", n.t = i), o !== n.a && _(t, "r", n.a = o), u !== n.o && _(t, "stroke", n.o = u), d !== n.i && _(t, "stroke-width", n.i = d), f !== n.n && _(t, "stroke-dasharray", n.n = f), p !== n.s && _(t, "stroke-dashoffset", n.s = p), n;
526
+ }, {
527
+ e: void 0,
528
+ t: void 0,
529
+ a: void 0,
530
+ o: void 0,
531
+ i: void 0,
532
+ n: void 0,
533
+ s: void 0
534
+ }), t;
535
+ })()
536
+ }), null), h(g, f(r, {
537
+ get when() {
538
+ return o();
539
+ },
540
+ get children() {
541
+ var e = ge();
542
+ return h(e, u), e;
543
+ }
544
+ }), null), m((n) => {
545
+ var r = t("relative inline-flex items-center justify-center", e.class), o = `${i()}px`, l = `${i()}px`, u = i(), f = i(), p = `0 0 ${i()} ${i()}`, m = `rotate(-90 ${s()} ${s()})`, h = s(), S = s(), C = c(), w = a();
546
+ return r !== n.e && d(g, n.e = r), o !== n.t && v(g, "width", n.t = o), l !== n.a && v(g, "height", n.a = l), u !== n.o && _(y, "width", n.o = u), f !== n.i && _(y, "height", n.i = f), p !== n.n && _(y, "viewBox", n.n = p), m !== n.s && _(b, "transform", n.s = m), h !== n.h && _(x, "cx", n.h = h), S !== n.r && _(x, "cy", n.r = S), C !== n.d && _(x, "r", n.d = C), w !== n.l && _(x, "stroke-width", n.l = w), n;
547
+ }, {
548
+ e: void 0,
549
+ t: void 0,
550
+ a: void 0,
551
+ o: void 0,
552
+ i: void 0,
553
+ n: void 0,
554
+ s: void 0,
555
+ h: void 0,
556
+ r: void 0,
557
+ d: void 0,
558
+ l: void 0
559
+ }), g;
560
+ })();
561
+ }
562
+ // src/charts/LineChart.tsx
563
+ var Ce = /*#__PURE__*/ y("<div class=\"mb-2 flex flex-wrap gap-x-3 gap-y-1\">"), we = /*#__PURE__*/ y("<svg><line y1=0 stroke=hsl(var(--border)) stroke-width=1 vector-effect=non-scaling-stroke></svg>", !1, !0, !1), Te = /*#__PURE__*/ y("<div class=\"mb-0.5 font-medium text-foreground\">"), Ee = /*#__PURE__*/ y("<div class=\"pointer-events-none absolute top-0 z-10 -translate-y-1 rounded-md border border-border bg-popover px-2 py-1 text-xs text-popover-foreground shadow-md\">"), De = /*#__PURE__*/ y("<div><div class=\"relative w-full\"><svg class=\"block w-full overflow-visible\"preserveAspectRatio=none role=img>"), Oe = /*#__PURE__*/ y("<span class=\"inline-flex items-center gap-1.5 text-xs text-muted-foreground\"><span class=\"inline-block size-2 rounded-full\">"), ke = /*#__PURE__*/ y("<svg><path stroke=none></svg>", !1, !0, !1), Ae = /*#__PURE__*/ y("<svg><polyline fill=none stroke-width=2 stroke-linecap=round stroke-linejoin=round vector-effect=non-scaling-stroke></svg>", !1, !0, !1), je = /*#__PURE__*/ y("<svg><circle r=2.5 vector-effect=non-scaling-stroke></svg>", !1, !0, !1), Me = /*#__PURE__*/ y("<div class=\"flex items-center gap-1.5\"><span class=\"inline-block size-1.5 rounded-full\"></span><span>:</span><span class=\"font-medium text-foreground\">"), q = 400, Ne = 4, Pe = [
564
+ "primary",
565
+ "accent",
566
+ "muted"
567
+ ];
568
+ function J(e, t) {
569
+ return e.tone ?? Pe[t % Pe.length];
570
+ }
571
+ function Y(e) {
572
+ return e === "foreground" ? "hsl(var(--foreground))" : `hsl(var(--${e}))`;
573
+ }
574
+ function Fe(e, t) {
575
+ return `hsl(var(${e === "foreground" ? "--foreground" : `--${e}`}) / ${t})`;
576
+ }
577
+ function Ie(e) {
578
+ return Math.max(0, ...e.map((e) => e.data.length));
579
+ }
580
+ function Le(e) {
581
+ let t = e.flatMap((e) => e.data);
582
+ if (t.length === 0) return {
583
+ min: 0,
584
+ max: 1
585
+ };
586
+ let n = Math.min(...t), r = Math.max(...t);
587
+ return n === r ? {
588
+ min: n - 1,
589
+ max: r + 1
590
+ } : {
591
+ min: n,
592
+ max: r
593
+ };
594
+ }
595
+ function Re(e, t, n, r) {
596
+ let i = n - t || 1, a = Math.max(r - 8, 0);
597
+ return Ne + a - (e - t) / i * a;
598
+ }
599
+ function X(e, t) {
600
+ return t <= 1 ? q / 2 : e * (q / (t - 1));
601
+ }
602
+ function ze(e, t, n, r, i) {
603
+ return e.map((e, a) => ({
604
+ x: X(a, t),
605
+ y: Re(e, n, r, i)
606
+ }));
607
+ }
608
+ function Be(e) {
609
+ let i = () => e.height ?? 200, a = () => Ie(e.series), s = () => Le(e.series), c = () => e.series.filter((e) => e.name), l = () => e.series.map((e) => ze(e.data, a(), s().min, s().max, i())), p = (e) => {
610
+ if (e.length === 0) return "";
611
+ let t = e.map((e) => `${e.x},${e.y}`).join(" L "), n = e[0], r = e[e.length - 1];
612
+ return `M ${n.x},${i()} L ${t} L ${r.x},${i()} Z`;
613
+ }, y, [x, S] = o(null), C = (e) => {
614
+ if (!y || a() === 0) return;
615
+ let t = y.getBoundingClientRect(), n = t.width === 0 ? 0 : (e.clientX - t.left) / t.width, r = Math.min(1, Math.max(0, n)), i = a() <= 1 ? 0 : Math.round(r * (a() - 1));
616
+ S(i);
617
+ }, w = () => S(null), T = () => `Line chart with ${c().map((e) => e.name).join(", ") || `${e.series.length} series`}, ${a()} data points each`;
618
+ return (() => {
619
+ var o = De(), s = o.firstChild, S = s.firstChild;
620
+ h(o, f(r, {
621
+ get when() {
622
+ return c().length >= 2;
623
+ },
624
+ get children() {
625
+ var t = Ce();
626
+ return h(t, f(n, {
627
+ get each() {
628
+ return e.series;
629
+ },
630
+ children: (e, t) => f(r, {
631
+ get when() {
632
+ return e.name;
633
+ },
634
+ get children() {
635
+ var n = Oe(), r = n.firstChild;
636
+ return h(n, () => e.name, null), m((n) => v(r, "background-color", Y(J(e, t())))), n;
637
+ }
638
+ })
639
+ })), t;
640
+ }
641
+ }), s), u(S, "pointerleave", e.showTooltip ? w : void 0), u(S, "pointermove", e.showTooltip ? C : void 0, !0);
642
+ var E = y;
643
+ return typeof E == "function" ? b(E, S) : y = S, h(S, f(n, {
644
+ get each() {
645
+ return e.series;
646
+ },
647
+ children: (t, i) => {
648
+ let a = () => l()[i()], o = () => J(t, i()), s = () => a().map((e) => `${e.x},${e.y}`).join(" ");
649
+ return [
650
+ f(r, {
651
+ get when() {
652
+ return t.area;
653
+ },
654
+ get children() {
655
+ var e = ke();
656
+ return m((t) => {
657
+ var n = p(a()), r = Fe(o(), .15);
658
+ return n !== t.e && _(e, "d", t.e = n), r !== t.t && _(e, "fill", t.t = r), t;
659
+ }, {
660
+ e: void 0,
661
+ t: void 0
662
+ }), e;
663
+ }
664
+ }),
665
+ (() => {
666
+ var e = Ae();
667
+ return m((t) => {
668
+ var n = s(), r = Y(o());
669
+ return n !== t.e && _(e, "points", t.e = n), r !== t.t && _(e, "stroke", t.t = r), t;
670
+ }, {
671
+ e: void 0,
672
+ t: void 0
673
+ }), e;
674
+ })(),
675
+ f(r, {
676
+ get when() {
677
+ return e.showDots;
678
+ },
679
+ get children() {
680
+ return f(n, {
681
+ get each() {
682
+ return a();
683
+ },
684
+ children: (e) => (() => {
685
+ var t = je();
686
+ return m((n) => {
687
+ var r = e.x, i = e.y, a = Y(o());
688
+ return r !== n.e && _(t, "cx", n.e = r), i !== n.t && _(t, "cy", n.t = i), a !== n.a && _(t, "fill", n.a = a), n;
689
+ }, {
690
+ e: void 0,
691
+ t: void 0,
692
+ a: void 0
693
+ }), t;
694
+ })()
695
+ });
696
+ }
697
+ })
698
+ ];
699
+ }
700
+ }), null), h(S, f(r, {
701
+ get when() {
702
+ return g(() => !!e.showTooltip)() && x() !== null;
703
+ },
704
+ get children() {
705
+ var e = we();
706
+ return m((t) => {
707
+ var n = X(x() ?? 0, a()), r = X(x() ?? 0, a()), o = i();
708
+ return n !== t.e && _(e, "x1", t.e = n), r !== t.t && _(e, "x2", t.t = r), o !== t.a && _(e, "y2", t.a = o), t;
709
+ }, {
710
+ e: void 0,
711
+ t: void 0,
712
+ a: void 0
713
+ }), e;
714
+ }
715
+ }), null), h(s, f(r, {
716
+ get when() {
717
+ return g(() => !!e.showTooltip)() && x() !== null;
718
+ },
719
+ get children() {
720
+ var t = Ee();
721
+ return h(t, f(r, {
722
+ get when() {
723
+ return e.labels?.[x() ?? -1];
724
+ },
725
+ get children() {
726
+ var t = Te();
727
+ return h(t, () => e.labels?.[x() ?? -1]), t;
728
+ }
729
+ }), null), h(t, f(n, {
730
+ get each() {
731
+ return e.series;
732
+ },
733
+ children: (e, t) => f(r, {
734
+ get when() {
735
+ return e.data[x() ?? -1] !== void 0;
736
+ },
737
+ get children() {
738
+ var n = Me(), r = n.firstChild, i = r.nextSibling, a = i.firstChild, o = i.nextSibling;
739
+ return h(i, () => e.name ?? `Series ${t() + 1}`, a), h(o, () => e.data[x() ?? -1]), m((n) => v(r, "background-color", Y(J(e, t())))), n;
740
+ }
741
+ })
742
+ }), null), m((e) => {
743
+ var n = `${(x() ?? 0) / Math.max(a() - 1, 1) * 100}%`, r = `translateX(${(x() ?? 0) / Math.max(a() - 1, 1) > .8 ? "-100%" : "-8px"}) translateY(-100%)`;
744
+ return n !== e.e && v(t, "left", e.e = n), r !== e.t && v(t, "transform", e.t = r), e;
745
+ }, {
746
+ e: void 0,
747
+ t: void 0
748
+ }), t;
749
+ }
750
+ }), null), h(o, f(r, {
751
+ get when() {
752
+ return g(() => !!e.labels)() && e.labels.length > 0;
753
+ },
754
+ get children() {
755
+ return f(oe, { get labels() {
756
+ return e.labels ?? [];
757
+ } });
758
+ }
759
+ }), null), m((n) => {
760
+ var r = t("w-full", e.class), a = `0 0 ${q} ${i()}`, s = i(), c = T();
761
+ return r !== n.e && d(o, n.e = r), a !== n.t && _(S, "viewBox", n.t = a), s !== n.a && _(S, "height", n.a = s), c !== n.o && _(S, "aria-label", n.o = c), n;
762
+ }, {
763
+ e: void 0,
764
+ t: void 0,
765
+ a: void 0,
766
+ o: void 0
767
+ }), o;
768
+ })();
769
+ }
770
+ p(["pointermove"]);
771
+ // src/charts/GaugeChart.tsx
772
+ var Ve = /*#__PURE__*/ y("<span class=\"text-base font-medium\">"), He = /*#__PURE__*/ y("<span class=\"text-xs text-muted-foreground\">"), Ue = /*#__PURE__*/ y("<div role=meter><svg role=img aria-hidden=true><path fill=none stroke=hsl(var(--muted)) stroke-linecap=round></path><path fill=none stroke-linecap=round></path></svg><div class=\"absolute inset-0 flex flex-col items-center justify-center gap-0.5 px-4 text-center\"><span class=\"text-2xl font-semibold tabular-nums text-foreground\">"), Z = {
773
+ primary: "--primary",
774
+ accent: "--accent",
775
+ destructive: "--destructive",
776
+ muted: "--muted"
777
+ }, We = Math.PI / 180, Ge = -135, Ke = 135, qe = 270;
778
+ function Je(e, t, n, r) {
779
+ let i = r * We;
780
+ return {
781
+ x: e + n * Math.sin(i),
782
+ y: t - n * Math.cos(i)
783
+ };
784
+ }
785
+ function Ye(e, t, n) {
786
+ let r = Je(e, t, n, Ge), i = Je(e, t, n, Ke);
787
+ return `M ${r.x} ${r.y} A ${n} ${n} 0 1 1 ${i.x} ${i.y}`;
788
+ }
789
+ function Xe(e, t, n) {
790
+ if (!n || n.length === 0) return Z[t];
791
+ let r = Z[t];
792
+ for (let t of [...n].sort((e, t) => e.value - t.value)) e >= t.value && (r = Z[t.tone]);
793
+ return r;
794
+ }
795
+ function Ze(n) {
796
+ let a = () => n.size ?? 160, s = () => n.min ?? 0, u = () => n.max ?? 100, p = () => n.tone ?? "primary", g = () => a() / 8, y = () => a() / 2, b = () => Math.max(a() / 2 - g() / 2, 0), x = () => b() * (qe * We), S = () => Ye(y(), y(), b()), C = () => Math.min(Math.max(n.value, s()), u()), w = () => {
797
+ let e = u() - s();
798
+ return e > 0 ? (C() - s()) / e : 0;
799
+ }, T = () => Xe(C(), p(), n.thresholds), [E, D] = o(0);
800
+ l(() => {
801
+ e() ? D(w()) : requestAnimationFrame(() => D(w()));
802
+ }), i(c(w, (e) => D(e), { defer: !0 }));
803
+ let O = () => x() * (1 - E()), k = () => e() ? "none" : "stroke-dashoffset 700ms ease-out", A = () => Math.round(C()), j = () => `${A()}${n.unit ?? ""}`;
804
+ return (() => {
805
+ var e = Ue(), i = e.firstChild, o = i.firstChild, c = o.nextSibling, l = i.nextSibling, p = l.firstChild;
806
+ return h(p, A, null), h(p, f(r, {
807
+ get when() {
808
+ return n.unit;
809
+ },
810
+ get children() {
811
+ var e = Ve();
812
+ return h(e, () => n.unit), e;
813
+ }
814
+ }), null), h(l, f(r, {
815
+ get when() {
816
+ return n.label;
817
+ },
818
+ get children() {
819
+ var e = He();
820
+ return h(e, () => n.label), e;
821
+ }
822
+ }), null), m((r) => {
823
+ var l = t("relative inline-flex items-center justify-center", n.class), f = `${a()}px`, p = `${a()}px`, m = C(), h = s(), y = u(), b = j(), w = a(), E = a(), D = `0 0 ${a()} ${a()}`, A = S(), M = g(), N = S(), P = `hsl(var(${T()}))`, ee = g(), F = `${x()} ${x()}`, I = O(), L = k();
824
+ return l !== r.e && d(e, r.e = l), f !== r.t && v(e, "width", r.t = f), p !== r.a && v(e, "height", r.a = p), m !== r.o && _(e, "aria-valuenow", r.o = m), h !== r.i && _(e, "aria-valuemin", r.i = h), y !== r.n && _(e, "aria-valuemax", r.n = y), b !== r.s && _(e, "aria-label", r.s = b), w !== r.h && _(i, "width", r.h = w), E !== r.r && _(i, "height", r.r = E), D !== r.d && _(i, "viewBox", r.d = D), A !== r.l && _(o, "d", r.l = A), M !== r.u && _(o, "stroke-width", r.u = M), N !== r.c && _(c, "d", r.c = N), P !== r.w && _(c, "stroke", r.w = P), ee !== r.m && _(c, "stroke-width", r.m = ee), F !== r.f && _(c, "stroke-dasharray", r.f = F), I !== r.y && _(c, "stroke-dashoffset", r.y = I), L !== r.g && v(c, "transition", r.g = L), r;
825
+ }, {
826
+ e: void 0,
827
+ t: void 0,
828
+ a: void 0,
829
+ o: void 0,
830
+ i: void 0,
831
+ n: void 0,
832
+ s: void 0,
833
+ h: void 0,
834
+ r: void 0,
835
+ d: void 0,
836
+ l: void 0,
837
+ u: void 0,
838
+ c: void 0,
839
+ w: void 0,
840
+ m: void 0,
841
+ f: void 0,
842
+ y: void 0,
843
+ g: void 0
844
+ }), e;
845
+ })();
846
+ }
847
+ // src/charts/RadarChart.tsx
848
+ var Qe = /*#__PURE__*/ y("<div class=\"flex flex-wrap items-center justify-center gap-x-3 gap-y-1\">"), $e = /*#__PURE__*/ y("<div><svg role=img>"), et = /*#__PURE__*/ y("<svg><polygon fill=none stroke=hsl(var(--border)) stroke-width=1></svg>", !1, !0, !1), tt = /*#__PURE__*/ y("<svg><line stroke=hsl(var(--border)) stroke-width=1></svg>", !1, !0, !1), nt = /*#__PURE__*/ y("<title>"), rt = /*#__PURE__*/ y("<svg><polygon stroke-width=2 stroke-linejoin=round></svg>", !1, !0, !1), it = /*#__PURE__*/ y("<svg><text class=\"text-xs fill-muted-foreground\"></svg>", !1, !0, !1), at = /*#__PURE__*/ y("<span class=\"inline-flex items-center gap-1.5 text-xs text-muted-foreground\"><span class=\"inline-block size-2 rounded-full\">"), ot = {
849
+ primary: "--primary",
850
+ accent: "--accent"
851
+ }, st = ["--primary", "--accent"];
852
+ function ct(e, t) {
853
+ return e.tone ? ot[e.tone] : st[t % st.length];
854
+ }
855
+ var lt = 4, ut = 14;
856
+ function Q(e, t) {
857
+ return -90 + 360 / t * e;
858
+ }
859
+ function $(e, t, n, r) {
860
+ let i = r * Math.PI / 180;
861
+ return {
862
+ x: e + n * Math.cos(i),
863
+ y: t + n * Math.sin(i)
864
+ };
865
+ }
866
+ function dt(e, t, n, r) {
867
+ return Array.from({ length: r }, (i, a) => {
868
+ let o = $(e, t, n, Q(a, r));
869
+ return `${o.x},${o.y}`;
870
+ }).join(" ");
871
+ }
872
+ function ft(e) {
873
+ let t = Math.cos(e * Math.PI / 180);
874
+ return t > .1 ? "start" : t < -.1 ? "end" : "middle";
875
+ }
876
+ function pt(e) {
877
+ let t = Math.sin(e * Math.PI / 180);
878
+ return t < -.3 ? "auto" : t > .3 ? "hanging" : "middle";
879
+ }
880
+ function mt(e) {
881
+ let i = () => e.size ?? 240, a = () => i() / 2, o = () => Math.max(i() / 2 - 28, 0), s = () => e.axes.length, c = () => e.max ?? Math.max(1, ...e.series.flatMap((e) => e.values)), l = () => Array.from({ length: lt }, (e, t) => {
882
+ let n = t + 1;
883
+ return dt(a(), a(), o() * (n / lt), s());
884
+ }), u = () => e.axes.map((e, t) => $(a(), a(), o(), Q(t, s()))), p = () => e.axes.map((e, t) => {
885
+ let n = Q(t, s()), r = $(a(), a(), o() + ut, n);
886
+ return {
887
+ label: e,
888
+ x: r.x,
889
+ y: r.y,
890
+ anchor: ft(n),
891
+ baseline: pt(n)
892
+ };
893
+ }), g = () => {
894
+ let t = c();
895
+ return e.series.map((e, n) => ({
896
+ series: e,
897
+ index: n,
898
+ points: e.values.map((e, n) => {
899
+ let r = t > 0 ? Math.max(e, 0) / t : 0, i = $(a(), a(), o() * r, Q(n, s()));
900
+ return `${i.x},${i.y}`;
901
+ }).join(" "),
902
+ token: ct(e, n)
903
+ }));
904
+ }, y = () => e.series.filter((e) => e.name), b = () => y().length >= 2;
905
+ return (() => {
906
+ var o = $e(), c = o.firstChild;
907
+ return h(c, f(n, {
908
+ get each() {
909
+ return l();
910
+ },
911
+ children: (e) => (() => {
912
+ var t = et();
913
+ return _(t, "points", e), t;
914
+ })()
915
+ }), null), h(c, f(n, {
916
+ get each() {
917
+ return u();
918
+ },
919
+ children: (e) => (() => {
920
+ var t = tt();
921
+ return m((n) => {
922
+ var r = a(), i = a(), o = e.x, s = e.y;
923
+ return r !== n.e && _(t, "x1", n.e = r), i !== n.t && _(t, "y1", n.t = i), o !== n.a && _(t, "x2", n.a = o), s !== n.o && _(t, "y2", n.o = s), n;
924
+ }, {
925
+ e: void 0,
926
+ t: void 0,
927
+ a: void 0,
928
+ o: void 0
929
+ }), t;
930
+ })()
931
+ }), null), h(c, f(n, {
932
+ get each() {
933
+ return g();
934
+ },
935
+ children: ({ series: e, points: t, token: n }) => (() => {
936
+ var i = rt();
937
+ return _(i, "points", t), _(i, "fill", `hsl(var(${n}) / 0.15)`), _(i, "stroke", `hsl(var(${n}))`), h(i, f(r, {
938
+ get when() {
939
+ return e.name;
940
+ },
941
+ get children() {
942
+ var t = nt();
943
+ return h(t, () => e.name), t;
944
+ }
945
+ })), i;
946
+ })()
947
+ }), null), h(c, f(n, {
948
+ get each() {
949
+ return p();
950
+ },
951
+ children: (e) => (() => {
952
+ var t = it();
953
+ return h(t, () => e.label), m((n) => {
954
+ var r = e.x, i = e.y, a = e.anchor, o = e.baseline;
955
+ return r !== n.e && _(t, "x", n.e = r), i !== n.t && _(t, "y", n.t = i), a !== n.a && _(t, "text-anchor", n.a = a), o !== n.o && _(t, "dominant-baseline", n.o = o), n;
956
+ }, {
957
+ e: void 0,
958
+ t: void 0,
959
+ a: void 0,
960
+ o: void 0
961
+ }), t;
962
+ })()
963
+ }), null), h(o, f(r, {
964
+ get when() {
965
+ return b();
966
+ },
967
+ get children() {
968
+ var e = Qe();
969
+ return h(e, f(n, {
970
+ get each() {
971
+ return g();
972
+ },
973
+ children: ({ series: e, token: t }) => f(r, {
974
+ get when() {
975
+ return e.name;
976
+ },
977
+ get children() {
978
+ var n = at(), r = n.firstChild;
979
+ return v(r, "background-color", `hsl(var(${t}))`), h(n, () => e.name, null), n;
980
+ }
981
+ })
982
+ })), e;
983
+ }
984
+ }), null), m((n) => {
985
+ var r = t("inline-flex flex-col items-center gap-2", e.class), a = i(), l = i(), u = `-34 -34 ${i() + 68} ${i() + 68}`, f = `Radar chart comparing ${e.series.length} series across ${s()} axes: ${e.axes.join(", ")}`;
986
+ return r !== n.e && d(o, n.e = r), a !== n.t && _(c, "width", n.t = a), l !== n.a && _(c, "height", n.a = l), u !== n.o && _(c, "viewBox", n.o = u), f !== n.i && _(c, "aria-label", n.i = f), n;
987
+ }, {
988
+ e: void 0,
989
+ t: void 0,
990
+ a: void 0,
991
+ o: void 0,
992
+ i: void 0
993
+ }), o;
994
+ })();
995
+ }
996
+ // src/charts/BarList.tsx
997
+ var ht = /*#__PURE__*/ y("<div>"), gt = /*#__PURE__*/ y("<a class=\"relative z-10 min-w-0 flex-1 truncate px-2.5 text-sm text-foreground underline-offset-2 hover:underline\">"), _t = /*#__PURE__*/ y("<div class=\"relative isolate flex h-8 w-full min-w-0 items-center overflow-hidden rounded-md bg-muted/40\"><div></div><span class=\"relative z-10 shrink-0 px-2.5 text-sm tabular-nums text-muted-foreground\">"), vt = /*#__PURE__*/ y("<span class=\"relative z-10 min-w-0 flex-1 truncate px-2.5 text-sm text-foreground\">");
998
+ function yt(e) {
999
+ let i = () => e.tone ?? "primary", a = () => e.valueFormat ?? ((e) => String(e)), o = () => i() === "accent" ? "bg-accent/15" : "bg-primary/15", s = () => [...e.data].sort((e, t) => t.value - e.value), c = () => Math.max(...e.data.map((e) => e.value), 0) || 1;
1000
+ return (() => {
1001
+ var i = ht();
1002
+ return h(i, f(n, {
1003
+ get each() {
1004
+ return s();
1005
+ },
1006
+ children: (e) => (() => {
1007
+ var n = _t(), i = n.firstChild, s = i.nextSibling;
1008
+ return h(n, f(r, {
1009
+ get when() {
1010
+ return e.href;
1011
+ },
1012
+ get fallback() {
1013
+ return (() => {
1014
+ var t = vt();
1015
+ return h(t, () => e.name), t;
1016
+ })();
1017
+ },
1018
+ get children() {
1019
+ var t = gt();
1020
+ return h(t, () => e.name), m(() => _(t, "href", e.href)), t;
1021
+ }
1022
+ }), s), h(s, () => a()(e.value)), m((n) => {
1023
+ var r = t("absolute inset-y-0 left-0 rounded-md transition-all", o()), a = `${Math.max(e.value / c() * 100, 0)}%`;
1024
+ return r !== n.e && d(i, n.e = r), a !== n.t && v(i, "width", n.t = a), n;
1025
+ }, {
1026
+ e: void 0,
1027
+ t: void 0
1028
+ }), n;
1029
+ })()
1030
+ })), m(() => d(i, t("flex w-full flex-col gap-1.5", e.class))), i;
1031
+ })();
1032
+ }
1033
+ // src/charts/StatusTracker.tsx
1034
+ var bt = /*#__PURE__*/ y("<span class=\"text-xs text-muted-foreground\">"), xt = /*#__PURE__*/ y("<div><div class=\"flex w-full items-stretch gap-1\">"), St = /*#__PURE__*/ y("<div>"), Ct = {
1035
+ ok: "bg-emerald-500",
1036
+ degraded: "bg-amber-500",
1037
+ down: "bg-destructive"
1038
+ }, wt = {
1039
+ ok: "Operational",
1040
+ degraded: "Degraded",
1041
+ down: "Down"
1042
+ };
1043
+ function Tt(e) {
1044
+ if (e.length !== 0) return `${(e.filter((e) => e.status === "ok").length / e.length * 100).toFixed(1)}% uptime`;
1045
+ }
1046
+ function Et(e) {
1047
+ let i = () => Tt(e.segments);
1048
+ return (() => {
1049
+ var a = xt(), o = a.firstChild;
1050
+ return h(a, f(r, {
1051
+ get when() {
1052
+ return i();
1053
+ },
1054
+ get children() {
1055
+ var e = bt();
1056
+ return h(e, i), e;
1057
+ }
1058
+ }), o), h(o, f(n, {
1059
+ get each() {
1060
+ return e.segments;
1061
+ },
1062
+ children: (e) => (() => {
1063
+ var n = St();
1064
+ return m((r) => {
1065
+ var i = e.label ? `${e.label}: ${wt[e.status]}` : wt[e.status], a = t("h-6 flex-1 rounded-sm transition-colors", Ct[e.status]);
1066
+ return i !== r.e && _(n, "title", r.e = i), a !== r.t && d(n, r.t = a), r;
1067
+ }, {
1068
+ e: void 0,
1069
+ t: void 0
1070
+ }), n;
1071
+ })()
1072
+ })), m(() => d(a, t("flex w-full flex-col gap-1.5", e.class))), a;
1073
+ })();
1074
+ }
1075
+ // src/charts/CategoryBar.tsx
1076
+ var Dt = /*#__PURE__*/ y("<div class=\"absolute -top-1.5 h-0 w-0 -translate-x-1/2 border-x-4 border-t-4 border-x-transparent border-t-foreground\"aria-hidden=true>"), Ot = /*#__PURE__*/ y("<div><div class=relative><div class=\"flex h-2.5 w-full overflow-hidden rounded-full bg-muted\"></div></div><div class=\"relative mt-1 h-4 w-full text-xs tabular-nums text-muted-foreground\">"), kt = /*#__PURE__*/ y("<div>"), At = /*#__PURE__*/ y("<span class=\"absolute -translate-x-1/2 whitespace-nowrap\">"), jt = [
1077
+ "primary",
1078
+ "accent",
1079
+ "success",
1080
+ "warning",
1081
+ "destructive"
1082
+ ], Mt = {
1083
+ primary: "bg-primary",
1084
+ accent: "bg-accent",
1085
+ success: "bg-emerald-500",
1086
+ warning: "bg-amber-500",
1087
+ destructive: "bg-destructive"
695
1088
  };
696
1089
  function Nt(e) {
697
- return e.length === 0 ? void 0 : `${(e.filter((r) => r.status === "ok").length / e.length * 100).toFixed(1)}% uptime`;
1090
+ let t = 0;
1091
+ return e.map((e) => t += e);
1092
+ }
1093
+ function Pt(e) {
1094
+ let i = a(() => e.values.reduce((e, t) => e + t, 0) || 1), o = a(() => Nt(e.values)), s = () => e.tones && e.tones.length > 0 ? e.tones : jt, c = a(() => e.marker == null ? void 0 : Math.min(Math.max(e.marker / i() * 100, 0), 100));
1095
+ return (() => {
1096
+ var a = Ot(), l = a.firstChild, u = l.firstChild, p = l.nextSibling;
1097
+ return h(l, f(r, {
1098
+ get when() {
1099
+ return c() !== void 0;
1100
+ },
1101
+ get children() {
1102
+ var e = Dt();
1103
+ return m((t) => v(e, "left", `${c()}%`)), e;
1104
+ }
1105
+ }), u), h(u, f(n, {
1106
+ get each() {
1107
+ return e.values;
1108
+ },
1109
+ children: (e, n) => (() => {
1110
+ var r = kt();
1111
+ return m((i) => {
1112
+ var a = t("h-full", Mt[s()[n() % s().length] ?? "primary"]), o = `${Math.max(e, 0)} 0 0%`;
1113
+ return a !== i.e && d(r, i.e = a), o !== i.t && v(r, "flex", i.t = o), i;
1114
+ }, {
1115
+ e: void 0,
1116
+ t: void 0
1117
+ }), r;
1118
+ })()
1119
+ })), h(p, f(n, {
1120
+ get each() {
1121
+ return o();
1122
+ },
1123
+ children: (e) => (() => {
1124
+ var t = At();
1125
+ return h(t, e), m((n) => v(t, "left", `${Math.min(Math.max(e / i() * 100, 0), 100)}%`)), t;
1126
+ })()
1127
+ })), m(() => d(a, t("w-full", e.class))), a;
1128
+ })();
698
1129
  }
1130
+ // src/charts/AreaChart.tsx
1131
+ var Ft = /*#__PURE__*/ y("<svg><line data-cursor y1=0 stroke=hsl(var(--border)) stroke-width=1 vector-effect=non-scaling-stroke></svg>", !1, !0, !1), It = /*#__PURE__*/ y("<div><div tabindex=0 role=img data-chart=area><svg class=\"block w-full overflow-visible\"preserveAspectRatio=none aria-hidden=true><defs>"), Lt = /*#__PURE__*/ y("<svg><linearGradient x1=0 y1=0 x2=0 y2=1><stop offset=0% stop-opacity=0.55></stop><stop offset=100% stop-opacity=0.05></svg>", !1, !0, !1), Rt = /*#__PURE__*/ y("<svg><g><path stroke=none data-area></path><path fill=none stroke-width=2 stroke-linejoin=round vector-effect=non-scaling-stroke></svg>", !1, !0, !1), zt = 400;
1132
+ function Bt(e) {
1133
+ let i = s(), o = () => e.height ?? 200, c = () => e.mode === "stacked", { hidden: l, toggle: p } = V(), v = H(() => e.data.length), y = (e, t) => ie(e.values, t, e.label), x = (t) => {
1134
+ let n = e.series.findIndex((e) => e.key === t);
1135
+ return R(e.series[n].color, n);
1136
+ }, S = () => e.series.filter((e) => !l().has(e.key)), C = (t) => e.data.length <= 1 ? zt / 2 : t / (e.data.length - 1) * zt, w = a(() => {
1137
+ let t = S(), n = e.data.map((e) => c() ? t.reduce((t, n) => t + y(e, n.key), 0) : Math.max(0, ...t.map((t) => y(e, t.key))));
1138
+ return Math.max(...n, 0) || 1;
1139
+ }), T = a(() => {
1140
+ let t = e.data.map(() => 0);
1141
+ return S().map((n) => {
1142
+ let r = c() ? [...t] : t.map(() => 0), i = e.data.map((e, t) => r[t] + y(e, n.key));
1143
+ c() && i.forEach((e, n) => t[n] = e);
1144
+ let a = (e) => o() - e / w() * o(), s = i.map((e, t) => `${C(t)},${a(e)}`), l = r.map((e, t) => `${C(t)},${a(e)}`).reverse();
1145
+ return {
1146
+ key: n.key,
1147
+ color: x(n.key),
1148
+ line: `M ${s.join(" L ")}`,
1149
+ area: `M ${s.join(" L ")} L ${l.join(" L ")} Z`
1150
+ };
1151
+ });
1152
+ }), E = () => `${c() ? "Stacked area" : "Area"} chart. ` + e.data.map((t) => `${t.label}: ${e.series.map((e) => `${e.label} ${y(t, e.key)}`).join(", ")}`).join("; "), D, O = (t) => {
1153
+ if (!D || e.data.length === 0) return;
1154
+ let n = D.getBoundingClientRect(), r = n.width === 0 ? 0 : (t.clientX - n.left) / n.width;
1155
+ v.setActive(e.data.length <= 1 ? 0 : Math.round(Math.min(1, Math.max(0, r)) * (e.data.length - 1)));
1156
+ }, k = () => {
1157
+ let t = v.active() ?? 0;
1158
+ return e.data.length <= 1 ? .5 : t / (e.data.length - 1);
1159
+ }, A = () => {
1160
+ let t = v.active();
1161
+ return t === null ? void 0 : e.data[t];
1162
+ };
1163
+ return (() => {
1164
+ var a = It(), s = a.firstChild, c = s.firstChild, w = c.firstChild;
1165
+ h(a, f(r, {
1166
+ get when() {
1167
+ return e.showLegend ?? !0;
1168
+ },
1169
+ get children() {
1170
+ return f(B, {
1171
+ class: "mb-2",
1172
+ get hidden() {
1173
+ return l();
1174
+ },
1175
+ onToggle: p,
1176
+ get items() {
1177
+ return e.series.map((e, t) => ({
1178
+ key: e.key,
1179
+ label: e.label,
1180
+ color: R(e.color, t)
1181
+ }));
1182
+ }
1183
+ });
1184
+ }
1185
+ }), s), u(s, "blur", v.onBlur), u(s, "focus", v.onFocus), u(s, "keydown", v.onKeyDown, !0), c.addEventListener("pointerleave", () => v.setActive(null)), c.$$pointermove = O;
1186
+ var j = D;
1187
+ return typeof j == "function" ? b(j, c) : D = c, h(w, f(n, {
1188
+ get each() {
1189
+ return e.series;
1190
+ },
1191
+ children: (e, t) => (() => {
1192
+ var n = Lt(), r = n.firstChild, a = r.nextSibling;
1193
+ return m((o) => {
1194
+ var s = `${i}-${e.key}`, c = R(e.color, t()), l = R(e.color, t());
1195
+ return s !== o.e && _(n, "id", o.e = s), c !== o.t && _(r, "stop-color", o.t = c), l !== o.a && _(a, "stop-color", o.a = l), o;
1196
+ }, {
1197
+ e: void 0,
1198
+ t: void 0,
1199
+ a: void 0
1200
+ }), n;
1201
+ })()
1202
+ })), h(c, f(n, {
1203
+ get each() {
1204
+ return T();
1205
+ },
1206
+ children: (e) => (() => {
1207
+ var t = Rt(), n = t.firstChild, r = n.nextSibling;
1208
+ return m((a) => {
1209
+ var o = e.key, s = e.area, c = `url(#${i}-${e.key})`, l = e.line, u = e.color;
1210
+ return o !== a.e && _(t, "data-series", a.e = o), s !== a.t && _(n, "d", a.t = s), c !== a.a && _(n, "fill", a.a = c), l !== a.o && _(r, "d", a.o = l), u !== a.i && _(r, "stroke", a.i = u), a;
1211
+ }, {
1212
+ e: void 0,
1213
+ t: void 0,
1214
+ a: void 0,
1215
+ o: void 0,
1216
+ i: void 0
1217
+ }), t;
1218
+ })()
1219
+ }), null), h(c, f(r, {
1220
+ get when() {
1221
+ return v.active() !== null;
1222
+ },
1223
+ get children() {
1224
+ var e = Ft();
1225
+ return m((t) => {
1226
+ var n = C(v.active() ?? 0), r = C(v.active() ?? 0), i = o();
1227
+ return n !== t.e && _(e, "x1", t.e = n), r !== t.t && _(e, "x2", t.t = r), i !== t.a && _(e, "y2", t.a = i), t;
1228
+ }, {
1229
+ e: void 0,
1230
+ t: void 0,
1231
+ a: void 0
1232
+ }), e;
1233
+ }
1234
+ }), null), h(s, f(r, {
1235
+ get when() {
1236
+ return g(() => !!(e.showTooltip ?? !0))() && A();
1237
+ },
1238
+ children: (e) => f(z, {
1239
+ get title() {
1240
+ return e().label;
1241
+ },
1242
+ get left() {
1243
+ return `${k() * 100}%`;
1244
+ },
1245
+ get anchor() {
1246
+ return k();
1247
+ },
1248
+ get rows() {
1249
+ return S().map((t) => ({
1250
+ label: t.label,
1251
+ value: y(e(), t.key),
1252
+ color: x(t.key)
1253
+ }));
1254
+ }
1255
+ })
1256
+ }), null), h(a, f(oe, { get labels() {
1257
+ return e.data.map((e) => e.label);
1258
+ } }), null), m((n) => {
1259
+ var r = t("w-full", e.class), i = t("relative w-full", U), l = E(), u = e.mode ?? "overlap", f = `0 0 ${zt} ${o()}`, p = o();
1260
+ return r !== n.e && d(a, n.e = r), i !== n.t && d(s, n.t = i), l !== n.a && _(s, "aria-label", n.a = l), u !== n.o && _(s, "data-mode", n.o = u), f !== n.i && _(c, "viewBox", n.i = f), p !== n.n && _(c, "height", n.n = p), n;
1261
+ }, {
1262
+ e: void 0,
1263
+ t: void 0,
1264
+ a: void 0,
1265
+ o: void 0,
1266
+ i: void 0,
1267
+ n: void 0
1268
+ }), a;
1269
+ })();
1270
+ }
1271
+ p(["keydown", "pointermove"]);
1272
+ // src/charts/PieChart.tsx
1273
+ var Vt = /*#__PURE__*/ y("<div><div tabindex=0 role=img data-chart=pie><svg aria-hidden=true>"), Ht = /*#__PURE__*/ y("<svg><path data-slice stroke=hsl(var(--background)) stroke-width=1.5></svg>", !1, !0, !1);
1274
+ function Ut(e) {
1275
+ let i = () => e.size ?? 200, o = () => i() / 2 - 4, { hidden: s, toggle: c } = V(), l = (t) => R(e.data[t].color, t), p = () => e.data.map((e, t) => ({
1276
+ d: e,
1277
+ i: t
1278
+ })).filter((e) => !s().has(e.d.label)), y = () => p().reduce((e, t) => e + t.d.value, 0), b = a(() => {
1279
+ let e = p();
1280
+ return ae(e.map((e) => e.d.value)).map((t) => ({
1281
+ ...t,
1282
+ datum: e[t.index].d,
1283
+ orig: e[t.index].i
1284
+ }));
1285
+ }), x = H(() => b().length), S = () => {
1286
+ let e = x.active();
1287
+ return e === null ? void 0 : b()[e];
1288
+ }, C = () => {
1289
+ let t = e.data.reduce((e, t) => e + t.value, 0) || 1;
1290
+ return `Pie chart. ${e.data.map((e) => `${e.label} ${e.value} (${Math.round(e.value / t * 100)}%)`).join(", ")}`;
1291
+ }, w = () => {
1292
+ let e = S();
1293
+ if (!e) return {
1294
+ left: "50%",
1295
+ top: "0",
1296
+ anchor: .5
1297
+ };
1298
+ let t = W(i() / 2, i() / 2, o() * .6, e.start + e.angle / 2);
1299
+ return {
1300
+ left: `${t.x / i() * 100}%`,
1301
+ top: `${t.y / i() * 100}%`,
1302
+ anchor: t.x / i()
1303
+ };
1304
+ };
1305
+ return (() => {
1306
+ var a = Vt(), p = a.firstChild, T = p.firstChild;
1307
+ return p.addEventListener("pointerleave", () => x.setActive(null)), u(p, "blur", x.onBlur), u(p, "focus", x.onFocus), u(p, "keydown", x.onKeyDown, !0), h(T, f(n, {
1308
+ get each() {
1309
+ return b();
1310
+ },
1311
+ children: (e, t) => (() => {
1312
+ var n = Ht();
1313
+ return n.addEventListener("pointerenter", () => x.setActive(t())), m((r) => {
1314
+ var a = e.datum.label, s = e.value, c = e.angle, u = G(i() / 2, i() / 2, o(), 0, e.start, e.angle), d = l(e.orig), f = x.active() === null || x.active() === t() ? 1 : .6;
1315
+ return a !== r.e && _(n, "data-label", r.e = a), s !== r.t && _(n, "data-value", r.t = s), c !== r.a && _(n, "data-angle", r.a = c), u !== r.o && _(n, "d", r.o = u), d !== r.i && _(n, "fill", r.i = d), f !== r.n && _(n, "opacity", r.n = f), r;
1316
+ }, {
1317
+ e: void 0,
1318
+ t: void 0,
1319
+ a: void 0,
1320
+ o: void 0,
1321
+ i: void 0,
1322
+ n: void 0
1323
+ }), n;
1324
+ })()
1325
+ })), h(p, f(r, {
1326
+ get when() {
1327
+ return g(() => !!(e.showTooltip ?? !0))() && S();
1328
+ },
1329
+ children: (e) => f(z, {
1330
+ get title() {
1331
+ return e().datum.label;
1332
+ },
1333
+ get left() {
1334
+ return w().left;
1335
+ },
1336
+ get top() {
1337
+ return w().top;
1338
+ },
1339
+ get anchor() {
1340
+ return w().anchor;
1341
+ },
1342
+ get rows() {
1343
+ return [{
1344
+ label: "Value",
1345
+ value: e().value,
1346
+ color: l(e().orig)
1347
+ }, {
1348
+ label: "Share",
1349
+ value: `${Math.round(e().value / (y() || 1) * 100)}%`,
1350
+ color: l(e().orig)
1351
+ }];
1352
+ }
1353
+ })
1354
+ }), null), h(a, f(r, {
1355
+ get when() {
1356
+ return e.showLegend ?? !0;
1357
+ },
1358
+ get children() {
1359
+ return f(B, {
1360
+ class: "mt-2",
1361
+ get hidden() {
1362
+ return s();
1363
+ },
1364
+ onToggle: c,
1365
+ get items() {
1366
+ return e.data.map((e, t) => ({
1367
+ key: e.label,
1368
+ label: e.label,
1369
+ color: l(t)
1370
+ }));
1371
+ }
1372
+ });
1373
+ }
1374
+ }), null), m((n) => {
1375
+ var r = t("inline-block", e.class), o = t("relative", U), s = `${i()}px`, c = `${i()}px`, l = C(), u = i(), f = i(), m = `0 0 ${i()} ${i()}`;
1376
+ return r !== n.e && d(a, n.e = r), o !== n.t && d(p, n.t = o), s !== n.a && v(p, "width", n.a = s), c !== n.o && v(p, "height", n.o = c), l !== n.i && _(p, "aria-label", n.i = l), u !== n.n && _(T, "width", n.n = u), f !== n.s && _(T, "height", n.s = f), m !== n.h && _(T, "viewBox", n.h = m), n;
1377
+ }, {
1378
+ e: void 0,
1379
+ t: void 0,
1380
+ a: void 0,
1381
+ o: void 0,
1382
+ i: void 0,
1383
+ n: void 0,
1384
+ s: void 0,
1385
+ h: void 0
1386
+ }), a;
1387
+ })();
1388
+ }
1389
+ p(["keydown"]);
1390
+ // src/charts/RadialBarChart.tsx
1391
+ var Wt = /*#__PURE__*/ y("<div><div tabindex=0 role=img data-chart=radial-bar><svg aria-hidden=true>"), Gt = /*#__PURE__*/ y("<svg><path data-ring fill-rule=evenodd></svg>", !1, !0, !1), Kt = /*#__PURE__*/ y("<svg><g><path fill=hsl(var(--muted)) fill-rule=evenodd></svg>", !1, !0, !1);
699
1392
  function qt(e) {
700
- const t = () => Nt(e.segments);
701
- return (() => {
702
- var r = Tt(), g = r.firstChild;
703
- return b(r, C(P, {
704
- get when() {
705
- return t();
706
- },
707
- get children() {
708
- var s = Et();
709
- return b(s, t), s;
710
- }
711
- }), g), b(g, C(N, {
712
- get each() {
713
- return e.segments;
714
- },
715
- children: (s) => (() => {
716
- var k = At();
717
- return S((h) => {
718
- var x = s.label ? `${s.label}: ${be[s.status]}` : be[s.status], o = F("h-6 flex-1 rounded-sm transition-colors", Pt[s.status]);
719
- return x !== h.e && l(k, "title", h.e = x), o !== h.t && O(k, h.t = o), h;
720
- }, {
721
- e: void 0,
722
- t: void 0
723
- }), k;
724
- })()
725
- })), S(() => O(r, F("flex w-full flex-col gap-1.5", e.class))), r;
726
- })();
727
- }
728
- var jt = /* @__PURE__ */ _('<div class="absolute -top-1.5 h-0 w-0 -translate-x-1/2 border-x-4 border-t-4 border-x-transparent border-t-foreground"aria-hidden=true>'), Ft = /* @__PURE__ */ _('<div><div class=relative><div class="flex h-2.5 w-full overflow-hidden rounded-full bg-muted"></div></div><div class="relative mt-1 h-4 w-full text-xs tabular-nums text-muted-foreground">'), Ot = /* @__PURE__ */ _("<div>"), Bt = /* @__PURE__ */ _('<span class="absolute -translate-x-1/2 whitespace-nowrap">');
729
- const zt = ["primary", "accent", "success", "warning", "destructive"], Dt = {
730
- primary: "bg-primary",
731
- accent: "bg-accent",
732
- success: "bg-emerald-500",
733
- warning: "bg-amber-500",
734
- destructive: "bg-destructive"
735
- };
736
- function Rt(e) {
737
- let t = 0;
738
- return e.map((r) => t += r);
739
- }
740
- function Jt(e) {
741
- const t = Y(() => e.values.reduce((k, h) => k + h, 0) || 1), r = Y(() => Rt(e.values)), g = () => e.tones && e.tones.length > 0 ? e.tones : zt, s = Y(() => e.marker == null ? void 0 : Math.min(Math.max(e.marker / t() * 100, 0), 100));
742
- return (() => {
743
- var k = Ft(), h = k.firstChild, x = h.firstChild, o = h.nextSibling;
744
- return b(h, C(P, {
745
- get when() {
746
- return s() !== void 0;
747
- },
748
- get children() {
749
- var c = jt();
750
- return S(($) => j(c, "left", `${s()}%`)), c;
751
- }
752
- }), x), b(x, C(N, {
753
- get each() {
754
- return e.values;
755
- },
756
- children: (c, $) => (() => {
757
- var w = Ot();
758
- return S((y) => {
759
- var n = F("h-full", Dt[g()[$() % g().length] ?? "primary"]), a = `${Math.max(c, 0)} 0 0%`;
760
- return n !== y.e && O(w, y.e = n), a !== y.t && j(w, "flex", y.t = a), y;
761
- }, {
762
- e: void 0,
763
- t: void 0
764
- }), w;
765
- })()
766
- })), b(o, C(N, {
767
- get each() {
768
- return r();
769
- },
770
- children: (c) => (() => {
771
- var $ = Bt();
772
- return b($, c), S((w) => j($, "left", `${Math.min(Math.max(c / t() * 100, 0), 100)}%`)), $;
773
- })()
774
- })), S(() => O(k, F("w-full", e.class))), k;
775
- })();
776
- }
777
- export {
778
- Vt as BarChart,
779
- Zt as BarList,
780
- Jt as CategoryBar,
781
- Ht as DonutChart,
782
- Wt as GaugeChart,
783
- Ut as LineChart,
784
- Xt as RadarChart,
785
- Yt as Sparkline,
786
- qt as StatusTracker
787
- };
1393
+ let i = () => e.size ?? 220, o = () => e.thickness ?? 14, { hidden: s, toggle: c } = V(), l = (t) => R(e.data[t].color, t), p = () => e.data.map((e, t) => ({
1394
+ d: e,
1395
+ i: t
1396
+ })).filter((e) => !s().has(e.d.label)), y = () => e.max ?? (Math.max(...e.data.map((e) => e.value), 0) || 1), b = a(() => p().map((e, t) => {
1397
+ let n = i() / 2 - 2 - t * (o() + 4), r = Math.min(Math.max(e.d.value / y(), 0), 1) * 360;
1398
+ return {
1399
+ datum: e.d,
1400
+ orig: e.i,
1401
+ outer: n,
1402
+ inner: n - o(),
1403
+ angle: r
1404
+ };
1405
+ })), x = H(() => b().length), S = () => {
1406
+ let e = x.active();
1407
+ return e === null ? void 0 : b()[e];
1408
+ }, C = () => `Radial bar chart. ${e.data.map((e) => `${e.label} ${e.value} of ${y()}`).join(", ")}`;
1409
+ return (() => {
1410
+ var a = Wt(), o = a.firstChild, p = o.firstChild;
1411
+ return o.addEventListener("pointerleave", () => x.setActive(null)), u(o, "blur", x.onBlur), u(o, "focus", x.onFocus), u(o, "keydown", x.onKeyDown, !0), h(p, f(n, {
1412
+ get each() {
1413
+ return b();
1414
+ },
1415
+ children: (e, t) => (() => {
1416
+ var n = Kt(), a = n.firstChild;
1417
+ return n.addEventListener("pointerenter", () => x.setActive(t())), h(n, f(r, {
1418
+ get when() {
1419
+ return e.angle > 0;
1420
+ },
1421
+ get children() {
1422
+ var t = Gt();
1423
+ return m((n) => {
1424
+ var r = e.datum.label, a = e.datum.value, o = e.angle, s = G(i() / 2, i() / 2, e.outer, e.inner, 0, e.angle), c = l(e.orig);
1425
+ return r !== n.e && _(t, "data-label", n.e = r), a !== n.t && _(t, "data-value", n.t = a), o !== n.a && _(t, "data-angle", n.a = o), s !== n.o && _(t, "d", n.o = s), c !== n.i && _(t, "fill", n.i = c), n;
1426
+ }, {
1427
+ e: void 0,
1428
+ t: void 0,
1429
+ a: void 0,
1430
+ o: void 0,
1431
+ i: void 0
1432
+ }), t;
1433
+ }
1434
+ }), null), m((r) => {
1435
+ var o = x.active() === null || x.active() === t() ? 1 : .6, s = G(i() / 2, i() / 2, e.outer, e.inner, 0, 360);
1436
+ return o !== r.e && _(n, "opacity", r.e = o), s !== r.t && _(a, "d", r.t = s), r;
1437
+ }, {
1438
+ e: void 0,
1439
+ t: void 0
1440
+ }), n;
1441
+ })()
1442
+ })), h(o, f(r, {
1443
+ get when() {
1444
+ return g(() => !!(e.showTooltip ?? !0))() && S();
1445
+ },
1446
+ children: (e) => f(z, {
1447
+ get title() {
1448
+ return e().datum.label;
1449
+ },
1450
+ left: "50%",
1451
+ top: "0",
1452
+ get rows() {
1453
+ return [{
1454
+ label: "Value",
1455
+ value: e().datum.value,
1456
+ color: l(e().orig)
1457
+ }, {
1458
+ label: "Of",
1459
+ value: y(),
1460
+ color: l(e().orig)
1461
+ }];
1462
+ }
1463
+ })
1464
+ }), null), h(a, f(r, {
1465
+ get when() {
1466
+ return e.showLegend ?? !0;
1467
+ },
1468
+ get children() {
1469
+ return f(B, {
1470
+ class: "mt-2",
1471
+ get hidden() {
1472
+ return s();
1473
+ },
1474
+ onToggle: c,
1475
+ get items() {
1476
+ return e.data.map((e, t) => ({
1477
+ key: e.label,
1478
+ label: e.label,
1479
+ color: l(t)
1480
+ }));
1481
+ }
1482
+ });
1483
+ }
1484
+ }), null), m((n) => {
1485
+ var r = t("inline-block", e.class), s = t("relative", U), c = `${i()}px`, l = `${i()}px`, u = C(), f = i(), m = i(), h = `0 0 ${i()} ${i()}`;
1486
+ return r !== n.e && d(a, n.e = r), s !== n.t && d(o, n.t = s), c !== n.a && v(o, "width", n.a = c), l !== n.o && v(o, "height", n.o = l), u !== n.i && _(o, "aria-label", n.i = u), f !== n.n && _(p, "width", n.n = f), m !== n.s && _(p, "height", n.s = m), h !== n.h && _(p, "viewBox", n.h = h), n;
1487
+ }, {
1488
+ e: void 0,
1489
+ t: void 0,
1490
+ a: void 0,
1491
+ o: void 0,
1492
+ i: void 0,
1493
+ n: void 0,
1494
+ s: void 0,
1495
+ h: void 0
1496
+ }), a;
1497
+ })();
1498
+ }
1499
+ p(["keydown"]);
1500
+ export { Bt as AreaChart, pe as BarChart, yt as BarList, Pt as CategoryBar, B as ChartLegend, z as ChartTooltip, Se as DonutChart, Ze as GaugeChart, Be as LineChart, Ut as PieChart, mt as RadarChart, qt as RadialBarChart, D as Sparkline, Et as StatusTracker };