@photon-ai/pho-ui 4.9.1 → 4.11.0

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.
@@ -0,0 +1,1402 @@
1
+ "use client";
2
+ import { t as oe } from "./cn-ChIgwEl3.js";
3
+ import { FADE_ENTRANCE as St, SPAN_SCALE as Ie, SPRING_ENTRANCE as de } from "../motion.js";
4
+ import { t as me } from "./skeleton-DwjSl4vC.js";
5
+ import { Children as Ft, Fragment as Ut, isValidElement as At, useCallback as Lt, useContext as E, useEffect as It, useId as Ge, useLayoutEffect as Kt, useMemo as A, useRef as qe, useState as Yt } from "react";
6
+ import { Fragment as $t, jsx as u, jsxs as _ } from "react/jsx-runtime";
7
+ import { useAnimate as Ht, useReducedMotion as Wt } from "motion/react";
8
+ import { AreaSeries as Rt, Axis as Ze, BarGroup as Et, BarSeries as Pt, BarStack as Bt, DataContext as O, DataProvider as Ot, Grid as zt, LineSeries as jt, TooltipContext as Xt, TooltipProvider as Vt, XYChart as Gt, buildChartTheme as qt } from "@visx/xychart";
9
+ function Je(e) {
10
+ this._context = e;
11
+ }
12
+ Je.prototype = {
13
+ areaStart: function() {
14
+ this._line = 0;
15
+ },
16
+ areaEnd: function() {
17
+ this._line = NaN;
18
+ },
19
+ lineStart: function() {
20
+ this._point = 0;
21
+ },
22
+ lineEnd: function() {
23
+ (this._line || this._line !== 0 && this._point === 1) && this._context.closePath(), this._line = 1 - this._line;
24
+ },
25
+ point: function(e, t) {
26
+ switch (e = +e, t = +t, this._point) {
27
+ case 0:
28
+ this._point = 1, this._line ? this._context.lineTo(e, t) : this._context.moveTo(e, t);
29
+ break;
30
+ case 1:
31
+ this._point = 2;
32
+ default:
33
+ this._context.lineTo(e, t);
34
+ }
35
+ }
36
+ };
37
+ function Zt(e) {
38
+ return new Je(e);
39
+ }
40
+ function Ke(e) {
41
+ return e < 0 ? -1 : 1;
42
+ }
43
+ function Ye(e, t, n) {
44
+ var o = e._x1 - e._x0, r = t - e._x1, i = (e._y1 - e._y0) / (o || r < 0 && -0), a = (n - e._y1) / (r || o < 0 && -0), s = (i * r + a * o) / (o + r);
45
+ return (Ke(i) + Ke(a)) * Math.min(Math.abs(i), Math.abs(a), 0.5 * Math.abs(s)) || 0;
46
+ }
47
+ function $e(e, t) {
48
+ var n = e._x1 - e._x0;
49
+ return n ? (3 * (e._y1 - e._y0) / n - t) / 2 : t;
50
+ }
51
+ function ge(e, t, n) {
52
+ var o = e._x0, r = e._y0, i = e._x1, a = e._y1, s = (i - o) / 3;
53
+ e._context.bezierCurveTo(o + s, r + s * t, i - s, a - s * n, i, a);
54
+ }
55
+ function ae(e) {
56
+ this._context = e;
57
+ }
58
+ ae.prototype = {
59
+ areaStart: function() {
60
+ this._line = 0;
61
+ },
62
+ areaEnd: function() {
63
+ this._line = NaN;
64
+ },
65
+ lineStart: function() {
66
+ this._x0 = this._x1 = this._y0 = this._y1 = this._t0 = NaN, this._point = 0;
67
+ },
68
+ lineEnd: function() {
69
+ switch (this._point) {
70
+ case 2:
71
+ this._context.lineTo(this._x1, this._y1);
72
+ break;
73
+ case 3:
74
+ ge(this, this._t0, $e(this, this._t0));
75
+ }
76
+ (this._line || this._line !== 0 && this._point === 1) && this._context.closePath(), this._line = 1 - this._line;
77
+ },
78
+ point: function(e, t) {
79
+ var n = NaN;
80
+ if (e = +e, t = +t, !(e === this._x1 && t === this._y1)) {
81
+ switch (this._point) {
82
+ case 0:
83
+ this._point = 1, this._line ? this._context.lineTo(e, t) : this._context.moveTo(e, t);
84
+ break;
85
+ case 1:
86
+ this._point = 2;
87
+ break;
88
+ case 2:
89
+ this._point = 3, ge(this, $e(this, n = Ye(this, e, t)), n);
90
+ break;
91
+ default:
92
+ ge(this, this._t0, n = Ye(this, e, t));
93
+ }
94
+ this._x0 = this._x1, this._x1 = e, this._y0 = this._y1, this._y1 = t, this._t0 = n;
95
+ }
96
+ }
97
+ };
98
+ function Jt(e) {
99
+ this._context = new Qe(e);
100
+ }
101
+ (Jt.prototype = Object.create(ae.prototype)).point = function(e, t) {
102
+ ae.prototype.point.call(this, t, e);
103
+ };
104
+ function Qe(e) {
105
+ this._context = e;
106
+ }
107
+ Qe.prototype = {
108
+ moveTo: function(e, t) {
109
+ this._context.moveTo(t, e);
110
+ },
111
+ closePath: function() {
112
+ this._context.closePath();
113
+ },
114
+ lineTo: function(e, t) {
115
+ this._context.lineTo(t, e);
116
+ },
117
+ bezierCurveTo: function(e, t, n, o, r, i) {
118
+ this._context.bezierCurveTo(t, e, o, n, i, r);
119
+ }
120
+ };
121
+ function Qt(e) {
122
+ return new ae(e);
123
+ }
124
+ var He = [
125
+ "chart-1",
126
+ "chart-2",
127
+ "chart-3",
128
+ "chart-4",
129
+ "chart-5",
130
+ "chart-6"
131
+ ];
132
+ function en(e, t) {
133
+ const n = e ?? He[t % He.length];
134
+ return `var(--color-pho-${n.startsWith("chart-") ? n : `chart-${n}`})`;
135
+ }
136
+ function We(e, t = !1) {
137
+ const n = new Intl.NumberFormat(e, t ? {
138
+ notation: "compact",
139
+ maximumFractionDigits: 1
140
+ } : { maximumFractionDigits: 2 });
141
+ return (o) => n.format(o);
142
+ }
143
+ function C(e, t) {
144
+ const n = e[t];
145
+ return typeof n == "number" && Number.isFinite(n) ? n : null;
146
+ }
147
+ function tn(e) {
148
+ return e.length <= 1 ? e[0] ?? "" : `${e.slice(0, -1).join(", ")} and ${e[e.length - 1]}`;
149
+ }
150
+ function nn({ data: e, series: t, valueFormat: n, timeFormat: o }) {
151
+ if (e.length === 0) return "No data to show.";
152
+ const r = e[0], i = e[e.length - 1], a = e.length > 1 ? `${o(new Date(r.x))} to ${o(new Date(i.x))}` : o(new Date(r.x)), s = [`${tn(t.map((c) => c.label))}, ${a}.`];
153
+ for (const c of t) {
154
+ let l = 0, h = 1 / 0, f = -1 / 0, g = null, p = 0;
155
+ for (const Y of e) {
156
+ const w = C(Y, c.key);
157
+ w != null && (p++, l += w, w < h && (h = w), w > f && (f = w, g = new Date(Y.x)));
158
+ }
159
+ if (p === 0) {
160
+ s.push(`${c.label}: no values.`);
161
+ continue;
162
+ }
163
+ const k = g ? `, peak ${n(f)} at ${o(g)}` : "";
164
+ s.push(c.kind === "bar" ? `${c.label}: ${n(l)} in total${k}.` : `${c.label}: from ${n(h)} to ${n(f)}${k}.`);
165
+ }
166
+ return s.join(" ");
167
+ }
168
+ function et({ color: e, kind: t = "rect", dashed: n }) {
169
+ return t === "line" ? /* @__PURE__ */ u("svg", {
170
+ "aria-hidden": !0,
171
+ width: "14",
172
+ height: "6",
173
+ className: "shrink-0",
174
+ children: /* @__PURE__ */ u("line", {
175
+ x1: "1",
176
+ x2: "13",
177
+ y1: "3",
178
+ y2: "3",
179
+ stroke: e,
180
+ strokeWidth: "2",
181
+ strokeLinecap: "round",
182
+ strokeDasharray: n ? "3 3" : void 0
183
+ })
184
+ }) : /* @__PURE__ */ u("span", {
185
+ "aria-hidden": !0,
186
+ className: "inline-block size-2 shrink-0 rounded-[2px]",
187
+ style: { background: e }
188
+ });
189
+ }
190
+ function rn({ items: e, className: t, ...n }) {
191
+ return /* @__PURE__ */ u("ul", {
192
+ className: oe("text-pho-secondary flex flex-wrap gap-x-4 gap-y-1 text-xs", t),
193
+ ...n,
194
+ children: e.map((o) => /* @__PURE__ */ _("li", {
195
+ className: "flex items-center gap-1.5",
196
+ children: [/* @__PURE__ */ u(et, {
197
+ color: o.color,
198
+ kind: o.kind,
199
+ dashed: o.dashed
200
+ }), o.label]
201
+ }, o.label))
202
+ });
203
+ }
204
+ function pe(e, t) {
205
+ return e == null || t == null ? NaN : e < t ? -1 : e > t ? 1 : e >= t ? 0 : NaN;
206
+ }
207
+ function on(e, t) {
208
+ return e == null || t == null ? NaN : t < e ? -1 : t > e ? 1 : t >= e ? 0 : NaN;
209
+ }
210
+ function an(e) {
211
+ let t, n, o;
212
+ e.length !== 2 ? (t = pe, n = (s, c) => pe(e(s), c), o = (s, c) => e(s) - c) : (t = e === pe || e === on ? e : sn, n = e, o = e);
213
+ function r(s, c, l = 0, h = s.length) {
214
+ if (l < h) {
215
+ if (t(c, c) !== 0) return h;
216
+ do {
217
+ const f = l + h >>> 1;
218
+ n(s[f], c) < 0 ? l = f + 1 : h = f;
219
+ } while (l < h);
220
+ }
221
+ return l;
222
+ }
223
+ function i(s, c, l = 0, h = s.length) {
224
+ if (l < h) {
225
+ if (t(c, c) !== 0) return h;
226
+ do {
227
+ const f = l + h >>> 1;
228
+ n(s[f], c) <= 0 ? l = f + 1 : h = f;
229
+ } while (l < h);
230
+ }
231
+ return l;
232
+ }
233
+ function a(s, c, l = 0, h = s.length) {
234
+ const f = r(s, c, l, h - 1);
235
+ return f > l && o(s[f - 1], c) > -o(s[f], c) ? f - 1 : f;
236
+ }
237
+ return {
238
+ left: r,
239
+ center: a,
240
+ right: i
241
+ };
242
+ }
243
+ function sn() {
244
+ return 0;
245
+ }
246
+ var ln = Math.sqrt(50), cn = Math.sqrt(10), un = Math.sqrt(2);
247
+ function se(e, t, n) {
248
+ const o = (t - e) / Math.max(0, n), r = Math.floor(Math.log10(o)), i = o / Math.pow(10, r), a = i >= ln ? 10 : i >= cn ? 5 : i >= un ? 2 : 1;
249
+ let s, c, l;
250
+ return r < 0 ? (l = Math.pow(10, -r) / a, s = Math.round(e * l), c = Math.round(t * l), s / l < e && ++s, c / l > t && --c, l = -l) : (l = Math.pow(10, r) * a, s = Math.round(e / l), c = Math.round(t / l), s * l < e && ++s, c * l > t && --c), c < s && 0.5 <= n && n < 2 ? se(e, t, n * 2) : [
251
+ s,
252
+ c,
253
+ l
254
+ ];
255
+ }
256
+ function hn(e, t, n) {
257
+ if (t = +t, e = +e, n = +n, !(n > 0)) return [];
258
+ if (e === t) return [e];
259
+ const o = t < e, [r, i, a] = o ? se(t, e, n) : se(e, t, n);
260
+ if (!(i >= r)) return [];
261
+ const s = i - r + 1, c = new Array(s);
262
+ if (o)
263
+ if (a < 0) for (let l = 0; l < s; ++l) c[l] = (i - l) / -a;
264
+ else for (let l = 0; l < s; ++l) c[l] = (i - l) * a;
265
+ else if (a < 0) for (let l = 0; l < s; ++l) c[l] = (r + l) / -a;
266
+ else for (let l = 0; l < s; ++l) c[l] = (r + l) * a;
267
+ return c;
268
+ }
269
+ function Re(e, t, n) {
270
+ return t = +t, e = +e, n = +n, se(e, t, n)[2];
271
+ }
272
+ function le(e, t, n) {
273
+ t = +t, e = +e, n = +n;
274
+ const o = t < e, r = o ? Re(t, e, n) : Re(e, t, n);
275
+ return (o ? -1 : 1) * (r < 0 ? 1 / -r : r);
276
+ }
277
+ var ve = /* @__PURE__ */ new Date(), ye = /* @__PURE__ */ new Date();
278
+ function T(e, t, n, o) {
279
+ function r(i) {
280
+ return e(i = arguments.length === 0 ? /* @__PURE__ */ new Date() : /* @__PURE__ */ new Date(+i)), i;
281
+ }
282
+ return r.floor = (i) => (e(i = /* @__PURE__ */ new Date(+i)), i), r.ceil = (i) => (e(i = /* @__PURE__ */ new Date(i - 1)), t(i, 1), e(i), i), r.round = (i) => {
283
+ const a = r(i), s = r.ceil(i);
284
+ return i - a < s - i ? a : s;
285
+ }, r.offset = (i, a) => (t(i = /* @__PURE__ */ new Date(+i), a == null ? 1 : Math.floor(a)), i), r.range = (i, a, s) => {
286
+ const c = [];
287
+ if (i = r.ceil(i), s = s == null ? 1 : Math.floor(s), !(i < a) || !(s > 0)) return c;
288
+ let l;
289
+ do
290
+ c.push(l = /* @__PURE__ */ new Date(+i)), t(i, s), e(i);
291
+ while (l < i && i < a);
292
+ return c;
293
+ }, r.filter = (i) => T((a) => {
294
+ if (a >= a) for (; e(a), !i(a); ) a.setTime(a - 1);
295
+ }, (a, s) => {
296
+ if (a >= a)
297
+ if (s < 0) for (; ++s <= 0; ) for (; t(a, -1), !i(a); ) ;
298
+ else for (; --s >= 0; ) for (; t(a, 1), !i(a); ) ;
299
+ }), n && (r.count = (i, a) => (ve.setTime(+i), ye.setTime(+a), e(ve), e(ye), Math.floor(n(ve, ye))), r.every = (i) => (i = Math.floor(i), !isFinite(i) || !(i > 0) ? null : i > 1 ? r.filter(o ? (a) => o(a) % i === 0 : (a) => r.count(0, a) % i === 0) : r)), r;
300
+ }
301
+ var ce = T(() => {
302
+ }, (e, t) => {
303
+ e.setTime(+e + t);
304
+ }, (e, t) => t - e);
305
+ ce.every = (e) => (e = Math.floor(e), !isFinite(e) || !(e > 0) ? null : e > 1 ? T((t) => {
306
+ t.setTime(Math.floor(t / e) * e);
307
+ }, (t, n) => {
308
+ t.setTime(+t + n * e);
309
+ }, (t, n) => (n - t) / e) : ce);
310
+ var yr = ce.range, L = 1e3, D = L * 60, I = D * 60, K = I * 24, ke = K * 7, Ee = K * 30, be = K * 365, te = T((e) => {
311
+ e.setTime(e - e.getMilliseconds());
312
+ }, (e, t) => {
313
+ e.setTime(+e + t * L);
314
+ }, (e, t) => (t - e) / L, (e) => e.getUTCSeconds()), br = te.range, tt = T((e) => {
315
+ e.setTime(e - e.getMilliseconds() - e.getSeconds() * L);
316
+ }, (e, t) => {
317
+ e.setTime(+e + t * D);
318
+ }, (e, t) => (t - e) / D, (e) => e.getMinutes()), xr = tt.range, nt = T((e) => {
319
+ e.setUTCSeconds(0, 0);
320
+ }, (e, t) => {
321
+ e.setTime(+e + t * D);
322
+ }, (e, t) => (t - e) / D, (e) => e.getUTCMinutes()), Tr = nt.range, rt = T((e) => {
323
+ e.setTime(e - e.getMilliseconds() - e.getSeconds() * L - e.getMinutes() * D);
324
+ }, (e, t) => {
325
+ e.setTime(+e + t * I);
326
+ }, (e, t) => (t - e) / I, (e) => e.getHours()), Mr = rt.range, it = T((e) => {
327
+ e.setUTCMinutes(0, 0, 0);
328
+ }, (e, t) => {
329
+ e.setTime(+e + t * I);
330
+ }, (e, t) => (t - e) / I, (e) => e.getUTCHours()), _r = it.range, q = T((e) => e.setHours(0, 0, 0, 0), (e, t) => e.setDate(e.getDate() + t), (e, t) => (t - e - (t.getTimezoneOffset() - e.getTimezoneOffset()) * D) / K, (e) => e.getDate() - 1), kr = q.range, fn = T((e) => {
331
+ e.setUTCHours(0, 0, 0, 0);
332
+ }, (e, t) => {
333
+ e.setUTCDate(e.getUTCDate() + t);
334
+ }, (e, t) => (t - e) / K, (e) => e.getUTCDate() - 1), wr = fn.range, ot = T((e) => {
335
+ e.setUTCHours(0, 0, 0, 0);
336
+ }, (e, t) => {
337
+ e.setUTCDate(e.getUTCDate() + t);
338
+ }, (e, t) => (t - e) / K, (e) => Math.floor(e / K)), Cr = ot.range;
339
+ function z(e) {
340
+ return T((t) => {
341
+ t.setDate(t.getDate() - (t.getDay() + 7 - e) % 7), t.setHours(0, 0, 0, 0);
342
+ }, (t, n) => {
343
+ t.setDate(t.getDate() + n * 7);
344
+ }, (t, n) => (n - t - (n.getTimezoneOffset() - t.getTimezoneOffset()) * D) / ke);
345
+ }
346
+ var at = z(0), dn = z(1), mn = z(2), gn = z(3), pn = z(4), vn = z(5), yn = z(6), Nr = at.range, Dr = dn.range, Sr = mn.range, Fr = gn.range, Ur = pn.range, Ar = vn.range, Lr = yn.range;
347
+ function j(e) {
348
+ return T((t) => {
349
+ t.setUTCDate(t.getUTCDate() - (t.getUTCDay() + 7 - e) % 7), t.setUTCHours(0, 0, 0, 0);
350
+ }, (t, n) => {
351
+ t.setUTCDate(t.getUTCDate() + n * 7);
352
+ }, (t, n) => (n - t) / ke);
353
+ }
354
+ var st = j(0), bn = j(1), xn = j(2), Tn = j(3), Mn = j(4), _n = j(5), kn = j(6), Ir = st.range, Kr = bn.range, Yr = xn.range, $r = Tn.range, Hr = Mn.range, Wr = _n.range, Rr = kn.range, lt = T((e) => {
355
+ e.setDate(1), e.setHours(0, 0, 0, 0);
356
+ }, (e, t) => {
357
+ e.setMonth(e.getMonth() + t);
358
+ }, (e, t) => t.getMonth() - e.getMonth() + (t.getFullYear() - e.getFullYear()) * 12, (e) => e.getMonth()), Er = lt.range, ct = T((e) => {
359
+ e.setUTCDate(1), e.setUTCHours(0, 0, 0, 0);
360
+ }, (e, t) => {
361
+ e.setUTCMonth(e.getUTCMonth() + t);
362
+ }, (e, t) => t.getUTCMonth() - e.getUTCMonth() + (t.getUTCFullYear() - e.getUTCFullYear()) * 12, (e) => e.getUTCMonth()), Pr = ct.range, ue = T((e) => {
363
+ e.setMonth(0, 1), e.setHours(0, 0, 0, 0);
364
+ }, (e, t) => {
365
+ e.setFullYear(e.getFullYear() + t);
366
+ }, (e, t) => t.getFullYear() - e.getFullYear(), (e) => e.getFullYear());
367
+ ue.every = (e) => !isFinite(e = Math.floor(e)) || !(e > 0) ? null : T((t) => {
368
+ t.setFullYear(Math.floor(t.getFullYear() / e) * e), t.setMonth(0, 1), t.setHours(0, 0, 0, 0);
369
+ }, (t, n) => {
370
+ t.setFullYear(t.getFullYear() + n * e);
371
+ });
372
+ var Br = ue.range, we = T((e) => {
373
+ e.setUTCMonth(0, 1), e.setUTCHours(0, 0, 0, 0);
374
+ }, (e, t) => {
375
+ e.setUTCFullYear(e.getUTCFullYear() + t);
376
+ }, (e, t) => t.getUTCFullYear() - e.getUTCFullYear(), (e) => e.getUTCFullYear());
377
+ we.every = (e) => !isFinite(e = Math.floor(e)) || !(e > 0) ? null : T((t) => {
378
+ t.setUTCFullYear(Math.floor(t.getUTCFullYear() / e) * e), t.setUTCMonth(0, 1), t.setUTCHours(0, 0, 0, 0);
379
+ }, (t, n) => {
380
+ t.setUTCFullYear(t.getUTCFullYear() + n * e);
381
+ });
382
+ var Or = we.range;
383
+ function ut(e, t, n, o, r, i) {
384
+ const a = [
385
+ [
386
+ te,
387
+ 1,
388
+ L
389
+ ],
390
+ [
391
+ te,
392
+ 5,
393
+ 5 * L
394
+ ],
395
+ [
396
+ te,
397
+ 15,
398
+ 15 * L
399
+ ],
400
+ [
401
+ te,
402
+ 30,
403
+ 30 * L
404
+ ],
405
+ [
406
+ i,
407
+ 1,
408
+ D
409
+ ],
410
+ [
411
+ i,
412
+ 5,
413
+ 5 * D
414
+ ],
415
+ [
416
+ i,
417
+ 15,
418
+ 15 * D
419
+ ],
420
+ [
421
+ i,
422
+ 30,
423
+ 30 * D
424
+ ],
425
+ [
426
+ r,
427
+ 1,
428
+ I
429
+ ],
430
+ [
431
+ r,
432
+ 3,
433
+ 3 * I
434
+ ],
435
+ [
436
+ r,
437
+ 6,
438
+ 6 * I
439
+ ],
440
+ [
441
+ r,
442
+ 12,
443
+ 12 * I
444
+ ],
445
+ [
446
+ o,
447
+ 1,
448
+ K
449
+ ],
450
+ [
451
+ o,
452
+ 2,
453
+ 2 * K
454
+ ],
455
+ [
456
+ n,
457
+ 1,
458
+ ke
459
+ ],
460
+ [
461
+ t,
462
+ 1,
463
+ Ee
464
+ ],
465
+ [
466
+ t,
467
+ 3,
468
+ 3 * Ee
469
+ ],
470
+ [
471
+ e,
472
+ 1,
473
+ be
474
+ ]
475
+ ];
476
+ function s(l, h, f) {
477
+ const g = h < l;
478
+ g && ([l, h] = [h, l]);
479
+ const p = f && typeof f.range == "function" ? f : c(l, h, f), k = p ? p.range(l, +h + 1) : [];
480
+ return g ? k.reverse() : k;
481
+ }
482
+ function c(l, h, f) {
483
+ const g = Math.abs(h - l) / f, p = an(([, , w]) => w).right(a, g);
484
+ if (p === a.length) return e.every(le(l / be, h / be, f));
485
+ if (p === 0) return ce.every(Math.max(le(l, h, f), 1));
486
+ const [k, Y] = a[g / a[p - 1][2] < a[p][2] / g ? p - 1 : p];
487
+ return k.every(Y);
488
+ }
489
+ return [s, c];
490
+ }
491
+ var [zr, jr] = ut(we, ct, st, ot, it, nt), [wn, Xr] = ut(ue, lt, at, q, rt, tt);
492
+ function R(e) {
493
+ return typeof e == "number" ? e : e.getTime();
494
+ }
495
+ function Cn(e, t, n) {
496
+ if (!Number.isFinite(e) || !Number.isFinite(t)) return {
497
+ domain: [0, 1],
498
+ ticks: [0, 1],
499
+ count: 1
500
+ };
501
+ e > t && ([e, t] = [t, e]);
502
+ const o = n?.integer ?? (Number.isInteger(e) && Number.isInteger(t));
503
+ if (e === t) {
504
+ if (t === 0) return o ? {
505
+ domain: [0, 1],
506
+ ticks: [0, 1],
507
+ count: 1
508
+ } : {
509
+ domain: [0, 1],
510
+ ticks: [
511
+ 0,
512
+ 0.5,
513
+ 1
514
+ ],
515
+ count: 2
516
+ };
517
+ t > 0 ? e = 0 : t = 0;
518
+ }
519
+ for (let r = 4; r >= 2; r--) {
520
+ const i = o ? Nn(e, t, r) : le(e, t, r), a = Math.floor(e / i) * i, s = Math.ceil(t / i) * i, c = o ? Dn(a, s, i) : hn(a, s, r);
521
+ if (c.length <= 5 || r === 2) return {
522
+ domain: [a, s],
523
+ ticks: c,
524
+ count: o ? Math.max(1, c.length - 1) : r
525
+ };
526
+ }
527
+ return {
528
+ domain: [e, t],
529
+ ticks: [e, t],
530
+ count: 1
531
+ };
532
+ }
533
+ function Nn(e, t, n) {
534
+ const o = le(e, t, n);
535
+ if (o <= 1) return 1;
536
+ if (Number.isInteger(o)) return o;
537
+ const r = 10 ** Math.floor(Math.log10(o)), i = o / r;
538
+ return (i <= 1 ? 1 : i <= 2 ? 2 : i <= 5 ? 5 : 10) * r;
539
+ }
540
+ function Dn(e, t, n) {
541
+ const o = [];
542
+ for (let r = e; r <= t + n / 2; r += n) o.push(r);
543
+ return o;
544
+ }
545
+ function Sn(e) {
546
+ if (e.length < 2) return 0;
547
+ const t = [];
548
+ for (let n = 1; n < e.length; n++) t.push(e[n] - e[n - 1]);
549
+ return t.sort((n, o) => n - o), t[Math.floor(t.length / 2)];
550
+ }
551
+ var Fn = 864e5;
552
+ function Un(e, t, n) {
553
+ if (t <= e || n <= 0) return [new Date(e)];
554
+ const o = Math.max(2, Math.floor(n / 96)), r = wn(new Date(e), new Date(t), o);
555
+ if (r.length > 2 && r.every((i) => An(i))) {
556
+ const i = r.slice(1).map((s, c) => q.count(r[c], s)), a = Math.max(...i);
557
+ if (a > 1 && i.some((s) => s !== a)) return q.range(r[0], new Date(t + 1), a);
558
+ }
559
+ return r;
560
+ }
561
+ function An(e) {
562
+ return q(e).getTime() === e.getTime();
563
+ }
564
+ function Ln(e) {
565
+ const t = new Intl.DateTimeFormat(e, {
566
+ hour: "numeric",
567
+ minute: "2-digit"
568
+ }), n = new Intl.DateTimeFormat(e, {
569
+ month: "short",
570
+ day: "numeric"
571
+ }), o = new Intl.DateTimeFormat(e, {
572
+ month: "short",
573
+ year: "numeric"
574
+ });
575
+ return (r) => q(r).getTime() < r.getTime() ? t.format(r) : ue(r).getTime() < r.getTime() ? n.format(r) : o.format(r);
576
+ }
577
+ function In(e, t) {
578
+ const n = new Intl.DateTimeFormat(e, t >= Fn ? {
579
+ month: "short",
580
+ day: "numeric"
581
+ } : {
582
+ month: "short",
583
+ day: "numeric",
584
+ hour: "numeric",
585
+ minute: "2-digit"
586
+ });
587
+ return (o) => n.format(o);
588
+ }
589
+ function Kn(e) {
590
+ return e.length * 6.5 + 16;
591
+ }
592
+ function Yn(e, t, n) {
593
+ if (e.length < 2) return [...e];
594
+ const o = Math.max(...e.map((a) => Kn(t(a)))), r = Math.max(1, Math.floor(n / o)), i = Math.ceil(e.length / r);
595
+ return i <= 1 ? [...e] : e.filter((a, s) => s % i === 0);
596
+ }
597
+ function ht(e, t) {
598
+ if (e.length === 0) return -1;
599
+ let n = 0, o = e.length - 1;
600
+ for (; n < o; ) {
601
+ const r = n + o >> 1;
602
+ e[r] < t ? n = r + 1 : o = r;
603
+ }
604
+ return n > 0 && t - e[n - 1] < e[n] - t ? n - 1 : n;
605
+ }
606
+ var xe = 8, Te = 8, Pe = 22;
607
+ function $n(e, t, n) {
608
+ const o = n.reduce((a, s) => Math.max(a, s.length), 0), r = Math.ceil(o * 6.5) + 10, i = t - Pe;
609
+ return {
610
+ width: e,
611
+ height: t,
612
+ left: r,
613
+ top: xe,
614
+ right: e - Te,
615
+ bottom: i,
616
+ innerWidth: Math.max(0, e - r - Te),
617
+ innerHeight: Math.max(0, i - xe),
618
+ margin: {
619
+ top: xe,
620
+ right: Te,
621
+ bottom: Pe,
622
+ left: r
623
+ }
624
+ };
625
+ }
626
+ var Hn = { "--pho-chart-surface": "var(--pho-surface, var(--background-color-pho-primary))" };
627
+ function Wn({ label: e, description: t, height: n, containerRef: o, legend: r, loading: i, empty: a, showEmpty: s, placeholder: c, className: l, children: h, ...f }) {
628
+ const g = Ge();
629
+ return /* @__PURE__ */ _("div", {
630
+ "data-chart": "",
631
+ className: oe("flex w-full min-w-0 flex-col gap-3", l),
632
+ ...f,
633
+ children: [/* @__PURE__ */ _("div", {
634
+ ref: o,
635
+ "aria-busy": i || void 0,
636
+ className: oe("relative w-full transition-opacity duration-150 ease-out", i && "opacity-50"),
637
+ style: { height: n },
638
+ children: [
639
+ /* @__PURE__ */ u("div", {
640
+ role: "img",
641
+ "aria-label": e,
642
+ "aria-describedby": g,
643
+ className: "animate-pho-chart-in relative size-full select-none [&_.visx-bar-stack_.visx-bar]:stroke-(--pho-chart-surface) [&_.visx-bar-stack_.visx-bar]:stroke-2 [&_svg]:block [&_svg]:overflow-visible",
644
+ style: Hn,
645
+ children: h
646
+ }),
647
+ /* @__PURE__ */ u("p", {
648
+ id: g,
649
+ className: "sr-only",
650
+ children: t
651
+ }),
652
+ c,
653
+ s && /* @__PURE__ */ u("div", {
654
+ className: "text-pho-description absolute inset-0 flex items-center justify-center text-xs",
655
+ children: a
656
+ })
657
+ ]
658
+ }), r]
659
+ });
660
+ }
661
+ var Rn = [
662
+ 0.42,
663
+ 0.58,
664
+ 0.5,
665
+ 0.7,
666
+ 0.62,
667
+ 0.8,
668
+ 0.66,
669
+ 0.9,
670
+ 0.72,
671
+ 0.56,
672
+ 0.76,
673
+ 0.64
674
+ ], ie = [
675
+ 0,
676
+ 1 / 3,
677
+ 2 / 3,
678
+ 1
679
+ ], En = 5;
680
+ function Pn({ layout: e }) {
681
+ const { margin: t } = e;
682
+ return /* @__PURE__ */ _("div", {
683
+ "aria-hidden": !0,
684
+ "data-chart-skeleton": "",
685
+ className: "absolute inset-0 grid",
686
+ style: {
687
+ gridTemplateColumns: `${t.left}px 1fr ${t.right}px`,
688
+ gridTemplateRows: `${t.top}px 1fr ${t.bottom}px`
689
+ },
690
+ children: [
691
+ /* @__PURE__ */ u("div", {
692
+ className: "relative col-start-1 row-start-2",
693
+ children: ie.map((n) => /* @__PURE__ */ u(me, {
694
+ "data-bone": "y",
695
+ className: "absolute right-2 h-2.5 w-4 -translate-y-1/2",
696
+ style: { top: `${n * 100}%` }
697
+ }, n))
698
+ }),
699
+ /* @__PURE__ */ _("div", {
700
+ className: "relative col-start-2 row-start-2",
701
+ children: [ie.map((n, o) => /* @__PURE__ */ u("div", {
702
+ "data-bone": o === ie.length - 1 ? "baseline" : "grid",
703
+ className: oe("absolute inset-x-0 border-t", o === ie.length - 1 ? "border-pho-chart-crosshair" : "border-pho-chart-grid"),
704
+ style: { top: `${n * 100}%` }
705
+ }, n)), /* @__PURE__ */ u("div", {
706
+ className: "absolute inset-0 flex items-end justify-between gap-2",
707
+ children: Rn.map((n, o) => /* @__PURE__ */ u(me, {
708
+ "data-bone": "bar",
709
+ className: "w-full max-w-6 rounded-t-[4px] rounded-b-none",
710
+ style: { height: `${n * 100}%` }
711
+ }, o))
712
+ })]
713
+ }),
714
+ /* @__PURE__ */ u("div", {
715
+ className: "col-start-2 row-start-3 flex items-center justify-between px-1",
716
+ children: Array.from({ length: En }, (n, o) => /* @__PURE__ */ u(me, {
717
+ "data-bone": "x",
718
+ className: "h-2.5 w-8"
719
+ }, o))
720
+ })
721
+ ]
722
+ });
723
+ }
724
+ var Be = {
725
+ fontFamily: "inherit",
726
+ fontSize: 11,
727
+ fontWeight: 400,
728
+ letterSpacing: 0,
729
+ fill: "var(--text-color-pho-description)",
730
+ style: { fontVariantNumeric: "tabular-nums" }
731
+ };
732
+ function Bn(e) {
733
+ return qt({
734
+ backgroundColor: "var(--pho-surface, var(--background-color-pho-primary))",
735
+ colors: [...e],
736
+ gridColor: "var(--color-pho-chart-grid)",
737
+ gridColorDark: "var(--color-pho-chart-crosshair)",
738
+ tickLength: 4,
739
+ svgLabelSmall: Be,
740
+ svgLabelBig: Be,
741
+ htmlLabel: {
742
+ fontFamily: "inherit",
743
+ fontSize: 11,
744
+ fontWeight: 400,
745
+ letterSpacing: 0,
746
+ color: "var(--text-color-pho-description)"
747
+ }
748
+ });
749
+ }
750
+ function On({ x: e, width: t, top: n, heading: o, rows: r, breakdown: i, breakdownTitle: a, valueFormat: s, empty: c }) {
751
+ const l = e > t / 2;
752
+ return /* @__PURE__ */ _("div", {
753
+ "aria-hidden": !0,
754
+ "data-chart-tooltip": "",
755
+ className: "bg-pho-primary shadow-pho-lg ring-pho-secondary rounded-base pointer-events-none absolute z-10 max-w-72 min-w-40 px-3 py-2 text-xs ring-1 ring-inset",
756
+ style: l ? {
757
+ right: t - e + 12,
758
+ top: n
759
+ } : {
760
+ left: e + 12,
761
+ top: n
762
+ },
763
+ children: [
764
+ /* @__PURE__ */ u("div", {
765
+ className: "text-pho-primary font-medium",
766
+ children: o
767
+ }),
768
+ r.length === 0 && c != null && /* @__PURE__ */ u("div", {
769
+ className: "text-pho-description mt-1",
770
+ children: c
771
+ }),
772
+ /* @__PURE__ */ u("ul", {
773
+ className: "mt-1 flex flex-col gap-0.5",
774
+ children: r.map((h) => /* @__PURE__ */ _("li", {
775
+ className: "flex items-center justify-between gap-4",
776
+ children: [/* @__PURE__ */ _("span", {
777
+ className: "text-pho-secondary flex min-w-0 items-center gap-1.5",
778
+ children: [/* @__PURE__ */ u(et, {
779
+ color: h.color,
780
+ kind: h.kind,
781
+ dashed: h.dashed
782
+ }), /* @__PURE__ */ u("span", {
783
+ className: "truncate",
784
+ children: h.label
785
+ })]
786
+ }), /* @__PURE__ */ u("span", {
787
+ className: "text-pho-primary font-medium tabular-nums",
788
+ children: h.value
789
+ })]
790
+ }, h.label))
791
+ }),
792
+ i != null && i.length > 0 && /* @__PURE__ */ _("div", {
793
+ className: "border-pho-secondary mt-2 border-t pt-2",
794
+ children: [a != null && /* @__PURE__ */ u("div", {
795
+ className: "text-pho-description mb-1",
796
+ children: a
797
+ }), /* @__PURE__ */ u("ul", {
798
+ className: "flex flex-col gap-0.5",
799
+ children: i.map((h) => /* @__PURE__ */ _("li", {
800
+ className: "flex items-center justify-between gap-4",
801
+ children: [/* @__PURE__ */ u("span", {
802
+ className: "text-pho-secondary truncate",
803
+ children: h.label
804
+ }), /* @__PURE__ */ u("span", {
805
+ className: "text-pho-primary tabular-nums",
806
+ children: s(h.value)
807
+ })]
808
+ }, h.label))
809
+ })]
810
+ })
811
+ ]
812
+ });
813
+ }
814
+ var ft = typeof window > "u" ? It : Kt;
815
+ function zn(e) {
816
+ const t = qe(null), [n, o] = Yt(0);
817
+ return ft(() => {
818
+ if (e != null) return;
819
+ const r = t.current;
820
+ if (r == null || (o(r.getBoundingClientRect().width), typeof ResizeObserver > "u")) return;
821
+ const i = new ResizeObserver((a) => {
822
+ const s = a[0]?.contentRect.width;
823
+ s != null && o(s);
824
+ });
825
+ return i.observe(r), () => i.disconnect();
826
+ }, [e]), [t, e ?? n];
827
+ }
828
+ var jn = 24, Xn = 4, Oe = 2, Vn = 4, Gn = 3, dt = "var(--pho-chart-surface)", qn = "var(--background-color-pho-ghost-hover)", mt = "var(--color-pho-chart-crosshair)";
829
+ function Ce(e) {
830
+ return null;
831
+ }
832
+ Ce.displayName = "Chart.Bar";
833
+ Ce.chartPart = "bar";
834
+ function Ne(e) {
835
+ return null;
836
+ }
837
+ Ne.displayName = "Chart.Line";
838
+ Ne.chartPart = "line";
839
+ function Zn(e) {
840
+ return e?.chartPart;
841
+ }
842
+ function gt(e, t = []) {
843
+ return Ft.forEach(e, (n) => {
844
+ if (!At(n)) return;
845
+ const o = Zn(n.type);
846
+ if (n.type === Ut) gt(n.props.children, t);
847
+ else if (o === "bar") {
848
+ const r = n.props;
849
+ t.push({
850
+ kind: "bar",
851
+ dataKey: r.dataKey,
852
+ label: r.label,
853
+ color: r.color,
854
+ curve: "linear"
855
+ });
856
+ } else if (o === "line") {
857
+ const r = n.props;
858
+ t.push({
859
+ kind: "line",
860
+ dataKey: r.dataKey,
861
+ label: r.label,
862
+ color: r.color,
863
+ dashed: r.dashed,
864
+ curve: r.curve ?? "linear",
865
+ area: r.area,
866
+ gaps: r.gaps ?? "break"
867
+ });
868
+ }
869
+ }), t;
870
+ }
871
+ var Me = (e) => R(e.x), ze = /* @__PURE__ */ new Map();
872
+ function Jn(e) {
873
+ let t = ze.get(e);
874
+ return t == null && (t = (n) => C(n, e) ?? 0, ze.set(e, t)), t;
875
+ }
876
+ var je = /* @__PURE__ */ new Map();
877
+ function Xe(e) {
878
+ let t = je.get(e);
879
+ return t == null && (t = (n) => C(n, e) ?? NaN, je.set(e, t)), t;
880
+ }
881
+ var Ve = /* @__PURE__ */ new Map();
882
+ function Qn(e, t) {
883
+ const n = `${e} ${t}`;
884
+ let o = Ve.get(n);
885
+ return o == null && (o = (r) => C(r, e) ? t : "transparent", Ve.set(n, o)), o;
886
+ }
887
+ function Z(e) {
888
+ const t = e, n = typeof t.bandwidth == "function" ? t.bandwidth() / 2 : 0;
889
+ return (o) => {
890
+ const r = t(o);
891
+ return typeof r == "number" && Number.isFinite(r) ? r + n : void 0;
892
+ };
893
+ }
894
+ function De(e) {
895
+ const t = e;
896
+ return (n) => {
897
+ const o = t(Number(n));
898
+ return typeof o == "number" && Number.isFinite(o) ? o : void 0;
899
+ };
900
+ }
901
+ function er(e) {
902
+ const t = e;
903
+ return typeof t.step == "function" ? t.step() : 0;
904
+ }
905
+ function tr(e, t, n, o) {
906
+ const r = t > 0 ? e / t : 0, i = r >= 6 ? 2 : r >= 3 ? 1 : 0, a = Math.max(1, Math.min(jn, r - i)), s = Math.min(2, i), c = o ? a + s : n > 1 ? a + 2 * s : a, l = Math.min(r, c), h = r > 0 ? 1 - l / r : 0, f = n > 1 && l > s ? Math.min(0.5, s * n / (l - s)) : 0;
907
+ return {
908
+ paddingInner: h,
909
+ paddingOuter: h / 2,
910
+ groupPadding: f
911
+ };
912
+ }
913
+ function _e({ children: e }) {
914
+ const { dataRegistry: t } = E(O);
915
+ return t?.entries().some((n) => n.data.length > 0) ?? !1 ? /* @__PURE__ */ u($t, { children: e }) : null;
916
+ }
917
+ function Se(e, t, n) {
918
+ const o = E(Xt);
919
+ if (!o?.tooltipOpen) return null;
920
+ if (n) {
921
+ const i = o.tooltipLeft;
922
+ if (i == null || t == null || e.length === 0) return null;
923
+ const a = Z(t), s = [];
924
+ for (const c of e) {
925
+ const l = a(R(c.x));
926
+ if (l == null) return null;
927
+ s.push(l);
928
+ }
929
+ return ht(s, i);
930
+ }
931
+ const r = o.tooltipData?.nearestDatum?.index;
932
+ return r != null && r >= 0 && r < e.length ? r : null;
933
+ }
934
+ function nr({ values: e, format: t, layout: n }) {
935
+ const { xScale: o } = E(O), r = Lt((i) => {
936
+ const a = i, s = Z(o)(a) ?? n.left, c = t(a).length * 6.5 / 2;
937
+ return { textAnchor: s - c < n.left ? "start" : s + c > n.right ? "end" : "middle" };
938
+ }, [
939
+ o,
940
+ t,
941
+ n.left,
942
+ n.right
943
+ ]);
944
+ return /* @__PURE__ */ u(Ze, {
945
+ orientation: "bottom",
946
+ tickValues: [...e],
947
+ tickFormat: (i) => t(i),
948
+ hideAxisLine: !0,
949
+ hideTicks: !0,
950
+ tickLabelProps: r
951
+ });
952
+ }
953
+ function rr({ data: e, layout: t, hasConnectedLines: n }) {
954
+ const { xScale: o } = E(O), r = Se(e, o, n);
955
+ if (r == null || o == null) return null;
956
+ const i = Z(o)(R(e[r].x)), a = er(o);
957
+ return i == null ? null : /* @__PURE__ */ u("rect", {
958
+ "data-hover-wash": "",
959
+ x: i - a / 2,
960
+ y: t.top,
961
+ width: a,
962
+ height: t.innerHeight,
963
+ fill: qn
964
+ });
965
+ }
966
+ function ir({ layout: e }) {
967
+ const { yScale: t } = E(O), n = t ? De(t)(0) : void 0;
968
+ return n == null ? null : /* @__PURE__ */ u("line", {
969
+ "data-zero": "",
970
+ x1: e.left,
971
+ x2: e.right,
972
+ y1: n,
973
+ y2: n,
974
+ stroke: mt
975
+ });
976
+ }
977
+ function or({ data: e, layout: t, lines: n, crosshair: o, hasConnectedLines: r }) {
978
+ const { xScale: i, yScale: a } = E(O), s = Se(e, i, r);
979
+ if (s == null || i == null || a == null) return null;
980
+ const c = e[s], l = Z(i)(R(c.x));
981
+ if (l == null) return null;
982
+ const h = De(a);
983
+ return /* @__PURE__ */ _("g", {
984
+ "data-hover": "",
985
+ children: [o && /* @__PURE__ */ u("line", {
986
+ x1: l,
987
+ x2: l,
988
+ y1: t.top,
989
+ y2: t.bottom,
990
+ stroke: mt
991
+ }), n.length > 0 && /* @__PURE__ */ u("g", {
992
+ "data-points": "",
993
+ children: n.map((f) => {
994
+ const g = C(c, f.dataKey), p = g == null ? void 0 : h(g);
995
+ return p == null ? null : /* @__PURE__ */ u("circle", {
996
+ cx: l,
997
+ cy: p,
998
+ r: Vn,
999
+ fill: f.color,
1000
+ stroke: dt,
1001
+ strokeWidth: 2
1002
+ }, f.dataKey);
1003
+ })
1004
+ })]
1005
+ });
1006
+ }
1007
+ function ar({ lines: e }) {
1008
+ const { xScale: t, yScale: n } = E(O);
1009
+ if (e.length === 0 || t == null || n == null) return null;
1010
+ const o = Z(t), r = De(n);
1011
+ return /* @__PURE__ */ u("g", {
1012
+ "data-lone-points": "",
1013
+ children: e.map((i) => i.points.map((a, s) => {
1014
+ const c = o(R(a.x)), l = r(a.value);
1015
+ return c == null || l == null ? null : /* @__PURE__ */ u("circle", {
1016
+ cx: c,
1017
+ cy: l,
1018
+ r: Gn,
1019
+ fill: i.color,
1020
+ stroke: dt,
1021
+ strokeWidth: 2,
1022
+ paintOrder: "stroke"
1023
+ }, `${i.dataKey} ${s}`);
1024
+ }))
1025
+ });
1026
+ }
1027
+ function sr({ data: e, range: t, layout: n, children: o }) {
1028
+ const r = Wt(), [i, a] = Ht(), s = Ge(), c = qe(null);
1029
+ ft(() => {
1030
+ const h = i.current, f = c.current;
1031
+ if (c.current = t, e.length === 0 || r || h == null) return;
1032
+ const g = { opacity: St }, p = f == null ? a(h, {
1033
+ scaleY: [0, 1],
1034
+ scaleX: 1,
1035
+ x: 0,
1036
+ opacity: [0, 1],
1037
+ originY: 1
1038
+ }, {
1039
+ scaleY: de,
1040
+ ...g
1041
+ }) : f === 0 || t === f ? a(h, {
1042
+ x: [-12, 0],
1043
+ scaleX: 1,
1044
+ scaleY: 1,
1045
+ opacity: [0, 1]
1046
+ }, {
1047
+ x: de,
1048
+ ...g
1049
+ }) : a(h, {
1050
+ scaleX: [t > f ? Ie : 1 / Ie, 1],
1051
+ scaleY: 1,
1052
+ x: 0,
1053
+ opacity: [0, 1],
1054
+ originX: 0.5
1055
+ }, {
1056
+ scaleX: de,
1057
+ ...g
1058
+ });
1059
+ return () => p.stop();
1060
+ }, [
1061
+ e,
1062
+ t,
1063
+ r
1064
+ ]);
1065
+ const l = 4;
1066
+ return /* @__PURE__ */ _("g", {
1067
+ clipPath: `url(#${s})`,
1068
+ children: [/* @__PURE__ */ u("defs", { children: /* @__PURE__ */ u("clipPath", {
1069
+ id: s,
1070
+ children: /* @__PURE__ */ u("rect", {
1071
+ x: n.left - l,
1072
+ y: n.top - l,
1073
+ width: n.innerWidth + 8,
1074
+ height: n.innerHeight + 8
1075
+ })
1076
+ }) }), /* @__PURE__ */ u("g", {
1077
+ ref: i,
1078
+ "data-marks": "",
1079
+ children: o
1080
+ })]
1081
+ });
1082
+ }
1083
+ function lr({ data: e, layout: t, parts: n, colors: o, width: r, headingFormat: i, valueFormat: a, breakdownTitle: s, emptyBucket: c, hasConnectedLines: l }) {
1084
+ const { xScale: h } = E(O), f = Se(e, h, l);
1085
+ if (f == null || h == null) return null;
1086
+ const g = e[f], p = Z(h)(R(g.x));
1087
+ return p == null ? null : /* @__PURE__ */ u(On, {
1088
+ x: p,
1089
+ width: r,
1090
+ top: t.top,
1091
+ heading: i(new Date(g.x)),
1092
+ rows: n.flatMap((k, Y) => {
1093
+ const w = C(g, k.dataKey);
1094
+ return w == null ? [] : [{
1095
+ label: k.label,
1096
+ value: a(w),
1097
+ color: o[Y],
1098
+ kind: k.kind === "bar" ? "rect" : "line",
1099
+ dashed: k.dashed
1100
+ }];
1101
+ }),
1102
+ breakdown: g.breakdown,
1103
+ breakdownTitle: s,
1104
+ valueFormat: a,
1105
+ empty: c
1106
+ });
1107
+ }
1108
+ var cr = {
1109
+ dx: "-0.35em",
1110
+ dy: "0.35em",
1111
+ width: void 0
1112
+ };
1113
+ function Fe({ data: e, children: t, label: n, description: o, height: r = 200, width: i, valueFormat: a, timeFormat: s, locale: c, legend: l, baseline: h = "zero", stacked: f = !1, breakdownTitle: g, loading: p, empty: k = "Nothing here yet.", emptyBucket: Y, className: w, ...pt }) {
1114
+ const [vt, X] = zn(i), U = A(() => gt(t), [t]), m = A(() => {
1115
+ const d = e.map((v) => R(v.x)), b = Sn(d), x = a ?? We(c, !0), y = a ?? We(c), S = s ?? In(c, b), P = U.map((v, F) => en(v.color, F)), N = U.filter((v) => v.kind === "bar"), ee = U.map((v, F) => ({
1116
+ ...v,
1117
+ color: P[F]
1118
+ })).filter((v) => v.kind === "line");
1119
+ let B = 1 / 0, G = -1 / 0;
1120
+ const ne = (v) => {
1121
+ v < B && (B = v), v > G && (G = v);
1122
+ };
1123
+ if (f && N.length > 1) for (const v of e) {
1124
+ let F = 0, W = 0;
1125
+ for (const Dt of N) {
1126
+ const re = C(v, Dt.dataKey);
1127
+ re != null && (re > 0 ? F += re : W += re);
1128
+ }
1129
+ ne(F), ne(W);
1130
+ }
1131
+ else for (const v of N) for (const F of e) {
1132
+ const W = C(F, v.dataKey);
1133
+ W != null && ne(W);
1134
+ }
1135
+ for (const v of ee) for (const F of e) {
1136
+ const W = C(F, v.dataKey);
1137
+ W != null && ne(W);
1138
+ }
1139
+ B === 1 / 0 && (B = 0, G = 0), (h === "zero" || N.length > 0) && (B = Math.min(0, B), G = Math.max(0, G));
1140
+ const Le = Cn(B, G);
1141
+ return {
1142
+ times: d,
1143
+ span: b,
1144
+ colors: P,
1145
+ bars: N,
1146
+ lines: ee,
1147
+ hasBars: N.length > 0,
1148
+ axisFormat: x,
1149
+ fullFormat: y,
1150
+ headingFormat: S,
1151
+ y: Le,
1152
+ yLabels: Le.ticks.map(x),
1153
+ described: o ?? nn({
1154
+ data: e,
1155
+ series: U.map((v) => ({
1156
+ key: v.dataKey,
1157
+ label: v.label,
1158
+ kind: v.kind
1159
+ })),
1160
+ valueFormat: y,
1161
+ timeFormat: S
1162
+ })
1163
+ };
1164
+ }, [
1165
+ e,
1166
+ U,
1167
+ f,
1168
+ h,
1169
+ a,
1170
+ s,
1171
+ c,
1172
+ o
1173
+ ]), $ = e.length, H = m.times[0] ?? 0, V = m.times[$ - 1] ?? 0, yt = $ > 0 ? V - H + m.span : 0, M = A(() => $n(X, r, m.yLabels), [
1174
+ X,
1175
+ r,
1176
+ m.yLabels
1177
+ ]), J = A(() => tr(M.innerWidth, $, m.bars.length, f), [
1178
+ M.innerWidth,
1179
+ $,
1180
+ m.bars.length,
1181
+ f
1182
+ ]), bt = A(() => m.hasBars ? {
1183
+ type: "band",
1184
+ domain: m.times,
1185
+ paddingInner: J.paddingInner,
1186
+ paddingOuter: J.paddingOuter
1187
+ } : {
1188
+ type: "time",
1189
+ domain: V > H ? [H, V] : [H - 1, H + 1]
1190
+ }, [
1191
+ m.hasBars,
1192
+ m.times,
1193
+ J.paddingInner,
1194
+ J.paddingOuter,
1195
+ H,
1196
+ V
1197
+ ]), xt = A(() => ({
1198
+ type: "linear",
1199
+ domain: m.y.domain,
1200
+ zero: !1,
1201
+ nice: !1
1202
+ }), [m.y.domain]), Tt = A(() => Bn(m.colors), [m.colors]), Ue = A(() => {
1203
+ const d = Ln(c);
1204
+ if ($ === 0 || M.innerWidth <= 0) return {
1205
+ values: [],
1206
+ format: () => ""
1207
+ };
1208
+ const b = Yn(Un(H, V, M.innerWidth), d, M.innerWidth);
1209
+ if (!m.hasBars) return {
1210
+ values: b,
1211
+ format: (y) => d(new Date(y))
1212
+ };
1213
+ const x = /* @__PURE__ */ new Map();
1214
+ for (const y of b) {
1215
+ const S = m.times[ht(m.times, y.getTime())];
1216
+ x.has(S) || x.set(S, d(y));
1217
+ }
1218
+ return {
1219
+ values: [...x.keys()],
1220
+ format: (y) => x.get(R(y)) ?? d(new Date(y))
1221
+ };
1222
+ }, [
1223
+ $,
1224
+ H,
1225
+ V,
1226
+ M.innerWidth,
1227
+ c,
1228
+ m.hasBars,
1229
+ m.times
1230
+ ]), Mt = l ?? U.length > 1, Ae = $ === 0 && !p, _t = $ === 0 && p === !0, kt = m.y.domain[0] >= 0 || m.y.domain[1] <= 0, Q = e, he = A(() => {
1231
+ const d = /* @__PURE__ */ new Map();
1232
+ for (const b of m.lines) b.gaps === "connect" && d.set(b.dataKey, Q.filter((x) => C(x, b.dataKey) != null));
1233
+ return d;
1234
+ }, [m.lines, Q]), fe = he.size > 0, wt = (() => {
1235
+ const { bars: d } = m;
1236
+ if (d.length === 0) return null;
1237
+ const b = d.length - 1, x = d.map((y, S) => {
1238
+ const P = m.colors[U.indexOf(y)], N = !f || S === b;
1239
+ return /* @__PURE__ */ u(Pt, {
1240
+ dataKey: y.dataKey,
1241
+ data: Q,
1242
+ xAccessor: Me,
1243
+ yAccessor: Jn(y.dataKey),
1244
+ colorAccessor: Qn(y.dataKey, P),
1245
+ radius: N ? Xn : void 0,
1246
+ radiusTop: N,
1247
+ "data-series": y.dataKey
1248
+ }, y.dataKey);
1249
+ });
1250
+ return d.length === 1 ? x : f ? /* @__PURE__ */ u(Bt, { children: x }) : /* @__PURE__ */ u(Et, {
1251
+ padding: J.groupPadding,
1252
+ children: x
1253
+ });
1254
+ })(), Ct = m.lines.map((d) => {
1255
+ const b = d.curve === "monotone" ? Qt : Zt, x = d.dashed ? "4 4" : void 0, y = he.get(d.dataKey) ?? Q;
1256
+ return d.area ? /* @__PURE__ */ u(Rt, {
1257
+ dataKey: d.dataKey,
1258
+ data: y,
1259
+ xAccessor: Me,
1260
+ yAccessor: Xe(d.dataKey),
1261
+ curve: b,
1262
+ fill: d.color,
1263
+ fillOpacity: 0.1,
1264
+ lineProps: {
1265
+ stroke: d.color,
1266
+ strokeWidth: Oe,
1267
+ strokeLinejoin: "round",
1268
+ strokeDasharray: x
1269
+ },
1270
+ "data-series": d.dataKey
1271
+ }, d.dataKey) : /* @__PURE__ */ u(jt, {
1272
+ dataKey: d.dataKey,
1273
+ data: y,
1274
+ xAccessor: Me,
1275
+ yAccessor: Xe(d.dataKey),
1276
+ curve: b,
1277
+ stroke: d.color,
1278
+ strokeWidth: Oe,
1279
+ strokeLinejoin: "round",
1280
+ strokeDasharray: x,
1281
+ "data-series": d.dataKey
1282
+ }, d.dataKey);
1283
+ }), Nt = m.lines.flatMap((d) => {
1284
+ const b = he.get(d.dataKey) ?? Q, x = b.flatMap((y, S) => {
1285
+ const P = C(y, d.dataKey), N = b[S - 1], ee = b[S + 1];
1286
+ return P == null || N != null && C(N, d.dataKey) != null || ee != null && C(ee, d.dataKey) != null ? [] : [{
1287
+ x: y.x,
1288
+ value: P
1289
+ }];
1290
+ });
1291
+ return x.length === 0 ? [] : [{
1292
+ dataKey: d.dataKey,
1293
+ color: d.color,
1294
+ points: x
1295
+ }];
1296
+ });
1297
+ return /* @__PURE__ */ u(Wn, {
1298
+ label: n,
1299
+ description: m.described,
1300
+ height: r,
1301
+ containerRef: vt,
1302
+ loading: p,
1303
+ empty: k,
1304
+ showEmpty: Ae,
1305
+ placeholder: _t ? /* @__PURE__ */ u(Pn, { layout: M }) : null,
1306
+ className: w,
1307
+ legend: Mt ? /* @__PURE__ */ u(rn, { items: U.map((d, b) => ({
1308
+ label: d.label,
1309
+ color: m.colors[b],
1310
+ kind: d.kind === "bar" ? "rect" : "line",
1311
+ dashed: d.dashed
1312
+ })) }) : null,
1313
+ ...pt,
1314
+ children: X > 0 && !Ae && /* @__PURE__ */ u(Ot, {
1315
+ xScale: bt,
1316
+ yScale: xt,
1317
+ theme: Tt,
1318
+ initialDimensions: {
1319
+ width: X,
1320
+ height: r,
1321
+ margin: M.margin
1322
+ },
1323
+ children: /* @__PURE__ */ _(Vt, {
1324
+ hideTooltipDebounceMs: 0,
1325
+ children: [/* @__PURE__ */ _(Gt, {
1326
+ width: X,
1327
+ height: r,
1328
+ margin: M.margin,
1329
+ accessibilityLabel: n,
1330
+ children: [
1331
+ /* @__PURE__ */ u(_e, { children: /* @__PURE__ */ u(zt, {
1332
+ rows: !0,
1333
+ columns: !1,
1334
+ numTicks: m.y.count
1335
+ }) }),
1336
+ /* @__PURE__ */ u(Ze, {
1337
+ orientation: "left",
1338
+ tickValues: m.y.ticks,
1339
+ tickFormat: (d) => m.axisFormat(Number(d)),
1340
+ hideAxisLine: !0,
1341
+ hideTicks: !0,
1342
+ tickLabelProps: cr
1343
+ }),
1344
+ /* @__PURE__ */ u(nr, {
1345
+ values: Ue.values,
1346
+ format: Ue.format,
1347
+ layout: M
1348
+ }),
1349
+ m.hasBars && /* @__PURE__ */ u(rr, {
1350
+ data: e,
1351
+ layout: M,
1352
+ hasConnectedLines: fe
1353
+ }),
1354
+ /* @__PURE__ */ _(sr, {
1355
+ data: e,
1356
+ range: yt,
1357
+ layout: M,
1358
+ children: [
1359
+ wt,
1360
+ Ct,
1361
+ /* @__PURE__ */ u(_e, { children: /* @__PURE__ */ u(ar, { lines: Nt }) })
1362
+ ]
1363
+ }),
1364
+ m.hasBars && kt && /* @__PURE__ */ u(_e, { children: /* @__PURE__ */ u(ir, { layout: M }) }),
1365
+ /* @__PURE__ */ u(or, {
1366
+ data: e,
1367
+ layout: M,
1368
+ lines: m.lines,
1369
+ crosshair: !m.hasBars,
1370
+ hasConnectedLines: fe
1371
+ })
1372
+ ]
1373
+ }), /* @__PURE__ */ u(lr, {
1374
+ data: e,
1375
+ layout: M,
1376
+ parts: U,
1377
+ colors: m.colors,
1378
+ width: X,
1379
+ headingFormat: m.headingFormat,
1380
+ valueFormat: m.fullFormat,
1381
+ breakdownTitle: g,
1382
+ emptyBucket: Y,
1383
+ hasConnectedLines: fe
1384
+ })]
1385
+ })
1386
+ })
1387
+ });
1388
+ }
1389
+ Fe.displayName = "Chart";
1390
+ Fe.Bar = Ce;
1391
+ Fe.Line = Ne;
1392
+ export {
1393
+ et as a,
1394
+ rn as i,
1395
+ Ce as n,
1396
+ He as o,
1397
+ Ne as r,
1398
+ en as s,
1399
+ Fe as t
1400
+ };
1401
+
1402
+ //# sourceMappingURL=chart-Dx3rjeFn.js.map