@lilt-ui/charts 0.9.2 → 0.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.
Files changed (42) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +36 -10
  3. package/dist/cards/activity-ring-card.d.ts +7 -2
  4. package/dist/cards/calendar-heatmap-card.d.ts +18 -0
  5. package/dist/cards/cartesian-card.d.ts +10 -2
  6. package/dist/cards/chart-card.d.ts +4 -1
  7. package/dist/cards/funnel-chart-card.d.ts +7 -2
  8. package/dist/cards/heatmap-chart-card.d.ts +7 -2
  9. package/dist/cards/horizontal-bar-chart-card.d.ts +7 -2
  10. package/dist/cards/keys.d.ts +2 -0
  11. package/dist/cards/observations-card.d.ts +87 -0
  12. package/dist/cards/radar-chart-card.d.ts +7 -2
  13. package/dist/cards/radial-chart-card.d.ts +7 -2
  14. package/dist/cards/range-select.d.ts +28 -0
  15. package/dist/cards/sankey-chart-card.d.ts +7 -2
  16. package/dist/cards/scatter-chart-card.d.ts +7 -2
  17. package/dist/cards/slope-chart-card.d.ts +7 -2
  18. package/dist/cards/stat-card.d.ts +7 -2
  19. package/dist/cards/strip-chart-card.d.ts +15 -0
  20. package/dist/cards/timeline-chart-card.d.ts +18 -0
  21. package/dist/cards/treemap-chart-card.d.ts +24 -0
  22. package/dist/chart.d.ts +1 -1
  23. package/dist/engine/keyed.d.ts +19 -0
  24. package/dist/engine/lifecycle.d.ts +1 -1
  25. package/dist/engine/sankey.d.ts +16 -0
  26. package/dist/finance/cards/depth-chart-card.d.ts +7 -2
  27. package/dist/finance/order-book.d.ts +7 -2
  28. package/dist/finance.js +334 -327
  29. package/dist/index.d.ts +14 -2
  30. package/dist/index.js +3336 -2217
  31. package/dist/lifecycle/chart-empty.d.ts +29 -0
  32. package/dist/marks/contract.d.ts +0 -2
  33. package/dist/motion/use-chart-motion.d.ts +5 -0
  34. package/dist/motion/use-departing.d.ts +7 -0
  35. package/dist/motion/use-snap-bars.d.ts +27 -0
  36. package/dist/{report-context-CVNzZBRd.js → report-context-UrwaoLYZ.js} +408 -231
  37. package/dist/{skeleton-block-Ha7mwDOY.js → skeleton-block-CPaKI7op.js} +2188 -1813
  38. package/dist/styles.css +1 -1
  39. package/dist/types.d.ts +14 -0
  40. package/dist/watch/board/board-state.d.ts +0 -2
  41. package/dist/watch.js +129 -127
  42. package/package.json +11 -10
@@ -1,57 +1,64 @@
1
- import { createContext as e, useContext as t, useEffect as n, useLayoutEffect as r, useMemo as i, useRef as a, useState as o } from "react";
2
- import { Fragment as s, jsx as c, jsxs as l } from "react/jsx-runtime";
3
- import { AnimatePresence as u, animate as d, motion as f, useMotionValue as p, useMotionValueEvent as m, useReducedMotion as h, useTransform as g } from "motion/react";
4
- import { extent as _, min as v } from "d3-array";
5
- import { animate as y } from "motion";
6
- import ee from "@number-flow/react";
1
+ import { createContext as e, useContext as t, useEffect as n, useId as r, useLayoutEffect as i, useMemo as a, useRef as o, useState as s } from "react";
2
+ import { Fragment as c, jsx as l, jsxs as u } from "react/jsx-runtime";
3
+ import { AnimatePresence as d, animate as f, motion as p, useMotionValue as m, useMotionValueEvent as h, useReducedMotion as g, useTransform as _ } from "motion/react";
4
+ import { extent as v, min as y } from "d3-array";
5
+ import { animate as b } from "motion";
6
+ import x from "@number-flow/react";
7
7
  //#region src/motion/use-chart-motion.ts
8
- var b = [
8
+ var S = [
9
9
  .22,
10
10
  1,
11
11
  .36,
12
12
  1
13
13
  ];
14
- function x(e) {
15
- let [t, r] = o(!1);
14
+ function C(e) {
15
+ let [t, r] = s(!1);
16
16
  return n(() => {
17
17
  if (typeof window > "u" || !window.matchMedia) return;
18
18
  let e = window.matchMedia("(prefers-reduced-motion: reduce)"), t = () => r(e.matches);
19
19
  return t(), e.addEventListener?.("change", t), () => e.removeEventListener?.("change", t);
20
20
  }, []), e === "none" || t;
21
21
  }
22
- function S(e, t) {
23
- let [n, i] = o(e.active ? +!!t : 1), s = a(e.key), c = e.active && e.key !== s.current;
24
- return r(() => {
25
- if (s.current = e.key, !e.active || t) {
26
- i(1);
22
+ function w(e, t) {
23
+ let [n, r] = s(e.active ? +!!t : 1), a = o(e.key), c = e.active && e.key !== a.current;
24
+ return i(() => {
25
+ if (a.current = e.key, !e.active || t) {
26
+ r(1);
27
27
  return;
28
28
  }
29
- i(0);
30
- let n = y(0, 1, {
31
- duration: e.duration / 1e3,
32
- ease: b,
33
- onUpdate: (e) => i(e),
34
- onComplete: () => i(1)
29
+ r(0);
30
+ let n = b(0, 1, {
31
+ ...e.spring ? {
32
+ type: "spring",
33
+ duration: e.duration / 1e3,
34
+ bounce: .18
35
+ } : {
36
+ duration: e.duration / 1e3,
37
+ ease: S
38
+ },
39
+ onUpdate: (e) => r(e),
40
+ onComplete: () => r(1)
35
41
  });
36
42
  return () => n.stop();
37
43
  }, [
38
44
  t,
39
45
  e.active,
40
46
  e.duration,
41
- e.key
42
- ]), t ? 1 : c ? 0 : Math.max(0, Math.min(1, n));
47
+ e.key,
48
+ e.spring
49
+ ]), t ? 1 : c ? 0 : Math.max(0, e.spring ? n : Math.min(1, n));
43
50
  }
44
51
  //#endregion
45
52
  //#region src/interaction/pin-glyphs.tsx
46
- var C = "M9 4.5h6l-1 5 3 3v2H7v-2l3-3-1-5ZM12 14.5v7";
47
- function w({ release: e }) {
48
- return /* @__PURE__ */ c("svg", {
53
+ var T = "M9 4.5h6l-1 5 3 3v2H7v-2l3-3-1-5ZM12 14.5v7";
54
+ function E({ release: e }) {
55
+ return /* @__PURE__ */ l("svg", {
49
56
  className: e ? "lilt-chart__pin-glyph lilt-chart__pin-glyph--release" : "lilt-chart__pin-glyph",
50
57
  viewBox: "0 0 24 24",
51
58
  fill: "none",
52
59
  "aria-hidden": "true",
53
- children: /* @__PURE__ */ c("path", {
54
- d: e ? `${C}M4.5 5.5l15 15` : C,
60
+ children: /* @__PURE__ */ l("path", {
61
+ d: e ? `${T}M4.5 5.5l15 15` : T,
55
62
  stroke: "currentColor",
56
63
  strokeLinecap: "round",
57
64
  strokeLinejoin: "round",
@@ -59,22 +66,22 @@ function w({ release: e }) {
59
66
  })
60
67
  });
61
68
  }
62
- function T({ release: e = !1 }) {
63
- return /* @__PURE__ */ l(s, { children: [/* @__PURE__ */ c(w, {}), e ? /* @__PURE__ */ c(w, { release: !0 }) : null] });
69
+ function D({ release: e = !1 }) {
70
+ return /* @__PURE__ */ u(c, { children: [/* @__PURE__ */ l(E, {}), e ? /* @__PURE__ */ l(E, { release: !0 }) : null] });
64
71
  }
65
72
  //#endregion
66
73
  //#region src/motion/number-format.ts
67
- var E = /* @__PURE__ */ new WeakMap();
68
- function D(e) {
74
+ var O = /* @__PURE__ */ new WeakMap();
75
+ function k(e) {
69
76
  let t = (t) => e.format(t);
70
- return E.set(t, e), t;
77
+ return O.set(t, e), t;
71
78
  }
72
- function te(e) {
73
- return e instanceof Intl.NumberFormat ? e : E.get(e);
79
+ function ee(e) {
80
+ return e instanceof Intl.NumberFormat ? e : O.get(e);
74
81
  }
75
82
  //#endregion
76
83
  //#region src/motion/animated-number.tsx
77
- var O = /\p{Decimal_Number}/u, k = /* @__PURE__ */ new Set([
84
+ var A = /\p{Decimal_Number}/u, j = /* @__PURE__ */ new Set([
78
85
  "integer",
79
86
  "group",
80
87
  "decimal",
@@ -82,10 +89,10 @@ var O = /\p{Decimal_Number}/u, k = /* @__PURE__ */ new Set([
82
89
  "nan",
83
90
  "infinity"
84
91
  ]);
85
- function A(e, t) {
92
+ function te(e, t) {
86
93
  let n = [];
87
94
  if (t?.length && t.map((e) => e.value).join("") === e) {
88
- let e = t.findIndex((e) => k.has(e.type)), r = t.length - 1 - [...t].reverse().findIndex((e) => k.has(e.type)), i = t.filter((e) => e.type === "integer").reduce((e, t) => e + Array.from(t.value).length, 0), a = 0, o = /* @__PURE__ */ new Map();
95
+ let e = t.findIndex((e) => j.has(e.type)), r = t.length - 1 - [...t].reverse().findIndex((e) => j.has(e.type)), i = t.filter((e) => e.type === "integer").reduce((e, t) => e + Array.from(t.value).length, 0), a = 0, o = /* @__PURE__ */ new Map();
89
96
  t.forEach((t, s) => {
90
97
  let c = e < 0 || s < e ? "prefix" : s > r ? "suffix" : "number";
91
98
  for (let e of Array.from(t.value)) {
@@ -101,15 +108,15 @@ function A(e, t) {
101
108
  n.push({
102
109
  key: r,
103
110
  char: e,
104
- digit: O.test(e),
111
+ digit: A.test(e),
105
112
  role: c
106
113
  });
107
114
  }
108
115
  });
109
116
  } else {
110
- let t = Array.from(e), r = t.findIndex((e) => O.test(e)), i = t.length - 1 - [...t].reverse().findIndex((e) => O.test(e));
117
+ let t = Array.from(e), r = t.findIndex((e) => A.test(e)), i = t.length - 1 - [...t].reverse().findIndex((e) => A.test(e));
111
118
  t.forEach((e, a) => {
112
- let o = O.test(e);
119
+ let o = A.test(e);
113
120
  r < 0 || a < r ? n.push({
114
121
  key: `prefix-${a}`,
115
122
  char: e,
@@ -141,15 +148,15 @@ function re(e, t, n) {
141
148
  let r = ((t - e) % 10 + 10) % 10;
142
149
  return r === 0 ? e : n > 0 ? e + r : e - (10 - r);
143
150
  }
144
- var ie = 240, j = .16, M = {
151
+ var ie = 240, M = .16, N = {
145
152
  duration: .1,
146
153
  ease: "easeOut"
147
- }, N = [
154
+ }, P = [
148
155
  .16,
149
156
  1,
150
157
  .3,
151
158
  1
152
- ], P = {
159
+ ], ae = {
153
160
  type: "spring",
154
161
  stiffness: 420,
155
162
  damping: 34,
@@ -157,13 +164,13 @@ var ie = 240, j = .16, M = {
157
164
  }, F = (e) => Math.min(e, 6) * .024;
158
165
  function I({ cell: e, change: t, style: n }) {
159
166
  let r = n === "slide" ? .72 : 0;
160
- return /* @__PURE__ */ c("span", {
167
+ return /* @__PURE__ */ l("span", {
161
168
  className: "lilt-number__cell",
162
169
  "data-digit": e.digit || void 0,
163
- children: /* @__PURE__ */ c(u, {
170
+ children: /* @__PURE__ */ l(d, {
164
171
  initial: !1,
165
172
  custom: t,
166
- children: /* @__PURE__ */ c(f.span, {
173
+ children: /* @__PURE__ */ l(p.span, {
167
174
  className: "lilt-number__glyph",
168
175
  custom: t,
169
176
  variants: {
@@ -187,7 +194,7 @@ function I({ cell: e, change: t, style: n }) {
187
194
  leave: ({ direction: e, live: t }) => t ? {
188
195
  y: `${-e * r * 55}%`,
189
196
  opacity: 0,
190
- transition: M
197
+ transition: N
191
198
  } : {
192
199
  y: `${-e * r * 100}%`,
193
200
  opacity: 0,
@@ -199,14 +206,14 @@ function I({ cell: e, change: t, style: n }) {
199
206
  animate: "rest",
200
207
  exit: "leave",
201
208
  transition: t.live ? {
202
- duration: j,
203
- ease: N
209
+ duration: M,
210
+ ease: P
204
211
  } : {
205
212
  delay: F(e.place),
206
- y: P,
213
+ y: ae,
207
214
  default: {
208
215
  duration: .26,
209
- ease: N
216
+ ease: P
210
217
  }
211
218
  },
212
219
  children: e.char
@@ -215,19 +222,19 @@ function I({ cell: e, change: t, style: n }) {
215
222
  });
216
223
  }
217
224
  var L = Array.from({ length: 30 }, (e, t) => String(t % 10));
218
- function ae({ cell: e, change: t }) {
219
- let r = Number(e.char), i = p(10 + r), o = a(t);
220
- o.current = t, n(() => {
225
+ function oe({ cell: e, change: t }) {
226
+ let r = Number(e.char), i = m(10 + r), a = o(t);
227
+ a.current = t, n(() => {
221
228
  let t = i.get();
222
229
  (t < 5 || t >= 25) && (t = 10 + (t % 10 + 10) % 10, i.jump(t));
223
- let { direction: n, live: a } = o.current, s = re(t, r, n);
230
+ let { direction: n, live: o } = a.current, s = re(t, r, n);
224
231
  if (s === t) return;
225
- let c = d(i, s, {
232
+ let c = f(i, s, {
226
233
  type: "spring",
227
- stiffness: a ? 320 : 190,
228
- damping: a ? 32 : 26,
234
+ stiffness: o ? 320 : 190,
235
+ damping: o ? 32 : 26,
229
236
  mass: .9,
230
- delay: a ? 0 : F(e.place),
237
+ delay: o ? 0 : F(e.place),
231
238
  onComplete: () => i.jump(10 + r)
232
239
  });
233
240
  return () => c.stop();
@@ -236,48 +243,48 @@ function ae({ cell: e, change: t }) {
236
243
  r,
237
244
  i
238
245
  ]);
239
- let s = g(i, (e) => `${-e / L.length * 100}%`);
240
- return /* @__PURE__ */ l("span", {
246
+ let s = _(i, (e) => `${-e / L.length * 100}%`);
247
+ return /* @__PURE__ */ u("span", {
241
248
  className: "lilt-number__cell lilt-number__cell--reel",
242
249
  "data-digit": !0,
243
- children: [/* @__PURE__ */ c("span", {
250
+ children: [/* @__PURE__ */ l("span", {
244
251
  className: "lilt-number__glyph lilt-number__sizer",
245
252
  "aria-hidden": "true",
246
253
  children: e.char
247
- }), /* @__PURE__ */ c(f.span, {
254
+ }), /* @__PURE__ */ l(p.span, {
248
255
  className: "lilt-number__reel",
249
256
  style: { y: s },
250
- children: L.map((e, t) => /* @__PURE__ */ c("span", { children: e }, t))
257
+ children: L.map((e, t) => /* @__PURE__ */ l("span", { children: e }, t))
251
258
  })]
252
259
  });
253
260
  }
254
- var oe = "0123456789";
255
- function se({ cell: e, live: t }) {
256
- let [r, i] = o(null), s = a(e.char), l = a(t);
257
- return l.current = t, n(() => {
258
- if (s.current === e.char) return;
259
- s.current = e.char;
260
- let t = 0, n = l.current ? 2 : 5 + Math.min(e.place, 6), r = window.setInterval(() => {
261
- t += 1, i(t >= n ? null : oe[Math.floor(Math.random() * 10)]), t >= n && window.clearInterval(r);
261
+ var se = "0123456789";
262
+ function ce({ cell: e, live: t }) {
263
+ let [r, i] = s(null), a = o(e.char), c = o(t);
264
+ return c.current = t, n(() => {
265
+ if (a.current === e.char) return;
266
+ a.current = e.char;
267
+ let t = 0, n = c.current ? 2 : 5 + Math.min(e.place, 6), r = window.setInterval(() => {
268
+ t += 1, i(t >= n ? null : se[Math.floor(Math.random() * 10)]), t >= n && window.clearInterval(r);
262
269
  }, 36);
263
270
  return () => {
264
271
  window.clearInterval(r), i(null);
265
272
  };
266
- }, [e.char, e.place]), /* @__PURE__ */ c("span", {
273
+ }, [e.char, e.place]), /* @__PURE__ */ l("span", {
267
274
  className: "lilt-number__cell",
268
275
  "data-digit": e.digit || void 0,
269
276
  "data-scrambling": r !== null || void 0,
270
- children: /* @__PURE__ */ c("span", {
277
+ children: /* @__PURE__ */ l("span", {
271
278
  className: "lilt-number__glyph",
272
279
  children: r ?? e.char
273
280
  })
274
281
  });
275
282
  }
276
283
  function R({ cell: e }) {
277
- return /* @__PURE__ */ c("span", {
284
+ return /* @__PURE__ */ l("span", {
278
285
  className: "lilt-number__cell",
279
286
  "data-digit": e.digit || void 0,
280
- children: /* @__PURE__ */ c("span", {
287
+ children: /* @__PURE__ */ l("span", {
281
288
  className: "lilt-number__glyph",
282
289
  children: e.char
283
290
  })
@@ -288,7 +295,7 @@ var z = [
288
295
  1.45,
289
296
  .64,
290
297
  1
291
- ], ce = {
298
+ ], le = {
292
299
  enter: (e) => e ? {
293
300
  y: "16%",
294
301
  opacity: .4,
@@ -303,37 +310,37 @@ var z = [
303
310
  opacity: 1,
304
311
  filter: "blur(0px)"
305
312
  }
306
- }, le = { leave: (e) => e ? {
313
+ }, ue = { leave: (e) => e ? {
307
314
  y: "-16%",
308
315
  opacity: 0,
309
- transition: M
316
+ transition: N
310
317
  } : {
311
318
  y: "-32%",
312
319
  opacity: 0,
313
320
  filter: "blur(2px)",
314
321
  transition: {
315
322
  duration: .3,
316
- ease: N
323
+ ease: P
317
324
  }
318
325
  } };
319
- function ue({ cells: e, live: t }) {
326
+ function de({ cells: e, live: t }) {
320
327
  let n = e.map((e) => e.char).join("");
321
- return /* @__PURE__ */ c("span", {
328
+ return /* @__PURE__ */ l("span", {
322
329
  className: "lilt-number__pop-host",
323
- children: /* @__PURE__ */ c(u, {
330
+ children: /* @__PURE__ */ l(d, {
324
331
  mode: "popLayout",
325
332
  initial: !1,
326
333
  custom: t,
327
- children: /* @__PURE__ */ c(f.span, {
334
+ children: /* @__PURE__ */ l(p.span, {
328
335
  className: "lilt-number__pop",
329
- variants: le,
336
+ variants: ue,
330
337
  initial: "enter",
331
338
  animate: "visible",
332
339
  exit: "leave",
333
- children: e.map((e, n) => /* @__PURE__ */ c(f.span, {
340
+ children: e.map((e, n) => /* @__PURE__ */ l(p.span, {
334
341
  className: "lilt-number__pop-char",
335
342
  custom: t,
336
- variants: ce,
343
+ variants: le,
337
344
  transition: t ? {
338
345
  duration: .22,
339
346
  ease: z
@@ -348,18 +355,18 @@ function ue({ cells: e, live: t }) {
348
355
  })
349
356
  });
350
357
  }
351
- function de(e, t, r) {
352
- let i = p(e), s = a(r);
353
- s.current = r;
354
- let [c, l] = o(e);
355
- return m(i, "change", l), n(() => {
358
+ function fe(e, t, r) {
359
+ let i = m(e), a = o(r);
360
+ a.current = r;
361
+ let [c, l] = s(e);
362
+ return h(i, "change", l), n(() => {
356
363
  if (!t) {
357
364
  i.jump(e);
358
365
  return;
359
366
  }
360
- let n = d(i, e, {
361
- duration: s.current ? .24 : .62,
362
- ease: N
367
+ let n = f(i, e, {
368
+ duration: a.current ? .24 : .62,
369
+ ease: P
363
370
  });
364
371
  return () => n.stop();
365
372
  }, [
@@ -368,8 +375,8 @@ function de(e, t, r) {
368
375
  e
369
376
  ]), t ? ne(c, e) : e;
370
377
  }
371
- function B(e) {
372
- let [t, n] = o({
378
+ function pe(e) {
379
+ let [t, n] = s({
373
380
  value: e,
374
381
  at: 0,
375
382
  direction: 1,
@@ -389,25 +396,25 @@ function B(e) {
389
396
  live: t.live
390
397
  };
391
398
  }
392
- function V({ value: e, format: t = String, className: n, motion: r = "auto", variant: a = "count" }) {
393
- let o = !h() && r !== "none", d = te(t), p = (e) => t instanceof Intl.NumberFormat ? t.format(e) : t(e), m = (e) => A(p(e), d?.formatToParts(e)), g = a === "flow" && !d ? "slide" : a, _ = i(() => {
394
- if (!d) return;
395
- let { locale: e, ...t } = d.resolvedOptions();
399
+ function B({ value: e, format: t = String, className: n, motion: r = "auto", variant: i = "count" }) {
400
+ let o = !g() && r !== "none", s = ee(t), f = (e) => t instanceof Intl.NumberFormat ? t.format(e) : t(e), m = (e) => te(f(e), s?.formatToParts(e)), h = i === "flow" && !s ? "slide" : i, _ = a(() => {
401
+ if (!s) return;
402
+ let { locale: e, ...t } = s.resolvedOptions();
396
403
  return {
397
404
  locale: e,
398
405
  options: t
399
406
  };
400
- }, [d]), v = p(e), y = B(e), b = de(e, o && g === "count", y.live), x = ["lilt-number", n].filter(Boolean).join(" ");
401
- if (g === "flow" && _) return /* @__PURE__ */ l("span", {
402
- className: x,
407
+ }, [s]), v = f(e), y = pe(e), b = fe(e, o && h === "count", y.live), S = ["lilt-number", n].filter(Boolean).join(" ");
408
+ if (h === "flow" && _) return /* @__PURE__ */ u("span", {
409
+ className: S,
403
410
  "data-variant": "flow",
404
- children: [/* @__PURE__ */ c("span", {
411
+ children: [/* @__PURE__ */ l("span", {
405
412
  className: "lilt-chart__sr-only",
406
413
  children: v
407
- }), /* @__PURE__ */ c("span", {
414
+ }), /* @__PURE__ */ l("span", {
408
415
  "aria-hidden": "true",
409
416
  className: "lilt-number__flow",
410
- children: /* @__PURE__ */ c(ee, {
417
+ children: /* @__PURE__ */ l(x, {
411
418
  value: e,
412
419
  locales: _.locale,
413
420
  format: _.options,
@@ -416,29 +423,29 @@ function V({ value: e, format: t = String, className: n, motion: r = "auto", var
416
423
  })
417
424
  })]
418
425
  });
419
- let S = m(g === "count" ? b : e), C = (e) => o ? e.role === "number" ? g === "count" ? /* @__PURE__ */ c(R, { cell: e }) : g === "roll" ? /[0-9]/.test(e.char) ? /* @__PURE__ */ c(ae, {
426
+ let C = m(h === "count" ? b : e), w = (e) => o ? e.role === "number" ? h === "count" ? /* @__PURE__ */ l(R, { cell: e }) : h === "roll" ? /[0-9]/.test(e.char) ? /* @__PURE__ */ l(oe, {
420
427
  cell: e,
421
428
  change: y
422
- }) : /* @__PURE__ */ c(I, {
429
+ }) : /* @__PURE__ */ l(I, {
423
430
  cell: e,
424
431
  change: y,
425
432
  style: "fade"
426
- }) : g === "scramble" ? /[0-9]/.test(e.char) ? /* @__PURE__ */ c(se, {
433
+ }) : h === "scramble" ? /[0-9]/.test(e.char) ? /* @__PURE__ */ l(ce, {
427
434
  cell: e,
428
435
  live: y.live
429
- }) : /* @__PURE__ */ c(I, {
436
+ }) : /* @__PURE__ */ l(I, {
430
437
  cell: e,
431
438
  change: y,
432
439
  style: "fade"
433
- }) : /* @__PURE__ */ c(I, {
440
+ }) : /* @__PURE__ */ l(I, {
434
441
  cell: e,
435
442
  change: y,
436
443
  style: "slide"
437
- }) : /* @__PURE__ */ c(I, {
444
+ }) : /* @__PURE__ */ l(I, {
438
445
  cell: e,
439
446
  change: y,
440
447
  style: "fade"
441
- }) : /* @__PURE__ */ c(R, { cell: e }), w = (e) => /* @__PURE__ */ c(f.span, {
448
+ }) : /* @__PURE__ */ l(R, { cell: e }), T = (e) => /* @__PURE__ */ l(p.span, {
442
449
  className: "lilt-number__place",
443
450
  custom: y.live,
444
451
  initial: o ? {
@@ -454,115 +461,296 @@ function V({ value: e, format: t = String, className: n, motion: r = "auto", var
454
461
  opacity: 0
455
462
  } : void 0,
456
463
  transition: {
457
- duration: y.live ? j : .32,
458
- ease: N
464
+ duration: y.live ? M : .32,
465
+ ease: P
459
466
  },
460
- children: C(e)
461
- }, e.key), T = g === "pop" && o, E = S.filter((e) => e.role === "prefix"), D = S.filter((e) => e.role === "number"), O = S.filter((e) => e.role === "suffix");
462
- return /* @__PURE__ */ l("span", {
463
- className: x,
464
- "data-variant": a,
465
- children: [/* @__PURE__ */ c("span", {
467
+ children: w(e)
468
+ }, e.key), E = h === "pop" && o, D = C.filter((e) => e.role === "prefix"), O = C.filter((e) => e.role === "number"), k = C.filter((e) => e.role === "suffix");
469
+ return /* @__PURE__ */ u("span", {
470
+ className: S,
471
+ "data-variant": i,
472
+ children: [/* @__PURE__ */ l("span", {
466
473
  className: "lilt-chart__sr-only",
467
474
  children: v
468
- }), /* @__PURE__ */ c("span", {
475
+ }), /* @__PURE__ */ l("span", {
469
476
  "aria-hidden": "true",
470
477
  className: "lilt-number__characters",
471
- children: T ? /* @__PURE__ */ l(s, { children: [
472
- /* @__PURE__ */ c(u, {
478
+ children: E ? /* @__PURE__ */ u(c, { children: [
479
+ /* @__PURE__ */ l(d, {
473
480
  initial: !1,
474
- children: E.map(w)
481
+ children: D.map(T)
475
482
  }),
476
- /* @__PURE__ */ c(ue, {
477
- cells: D,
483
+ /* @__PURE__ */ l(de, {
484
+ cells: O,
478
485
  live: y.live
479
486
  }),
480
- /* @__PURE__ */ c(u, {
487
+ /* @__PURE__ */ l(d, {
481
488
  initial: !1,
482
- children: O.map(w)
489
+ children: k.map(T)
483
490
  })
484
- ] }) : /* @__PURE__ */ c(u, {
491
+ ] }) : /* @__PURE__ */ l(d, {
485
492
  initial: !1,
486
- children: S.map(w)
493
+ children: C.map(T)
487
494
  })
488
495
  })]
489
496
  });
490
497
  }
491
498
  //#endregion
499
+ //#region src/cards/range-select.tsx
500
+ var V = e(null);
501
+ function me({ rangeSelect: e, children: t }) {
502
+ return /* @__PURE__ */ l(V.Provider, {
503
+ value: e ?? null,
504
+ children: t
505
+ });
506
+ }
507
+ function he() {
508
+ return t(V);
509
+ }
510
+ var H = [
511
+ .23,
512
+ 1,
513
+ .32,
514
+ 1
515
+ ];
516
+ function ge({ value: e, options: t, onValueChange: i, "aria-label": a }) {
517
+ let c = r(), f = g(), [m, h] = s(!1), _ = Math.max(0, t.findIndex((t) => t.id === e)), [v, y] = s(_), b = o(null), x = o(null), S = o(null), C = t[_], w = (e = _) => {
518
+ y(e), h(!0);
519
+ }, T = (e = !0) => {
520
+ h(!1), e && x.current?.focus();
521
+ }, E = (n) => {
522
+ let r = t[n];
523
+ r && r.id !== e && i(r.id), T();
524
+ };
525
+ return n(() => {
526
+ if (!m) return;
527
+ S.current?.focus();
528
+ let e = (e) => {
529
+ b.current?.contains(e.target) || T(!1);
530
+ };
531
+ return document.addEventListener("pointerdown", e), () => document.removeEventListener("pointerdown", e);
532
+ }, [m]), /* @__PURE__ */ u("span", {
533
+ ref: b,
534
+ className: "lilt-card__range lilt-card__range--select",
535
+ "data-value": C?.id,
536
+ "data-open": m || void 0,
537
+ children: [/* @__PURE__ */ u("button", {
538
+ ref: x,
539
+ type: "button",
540
+ className: "lilt-range-select__trigger",
541
+ "aria-haspopup": "listbox",
542
+ "aria-expanded": m,
543
+ "aria-controls": m ? `${c}-list` : void 0,
544
+ "aria-label": `${a}: ${C?.label ?? ""}`,
545
+ onClick: () => m ? T() : w(),
546
+ onKeyDown: (e) => {
547
+ (e.key === "ArrowDown" || e.key === "ArrowUp") && (e.preventDefault(), w(e.key === "ArrowDown" ? Math.min(t.length - 1, _ + 1) : Math.max(0, _ - 1)));
548
+ },
549
+ children: [/* @__PURE__ */ l("span", {
550
+ className: "lilt-range-select__value",
551
+ children: /* @__PURE__ */ l(d, {
552
+ mode: "popLayout",
553
+ initial: !1,
554
+ children: /* @__PURE__ */ l(p.span, {
555
+ initial: f ? { opacity: 0 } : {
556
+ opacity: 0,
557
+ y: 4,
558
+ filter: "blur(3px)"
559
+ },
560
+ animate: {
561
+ opacity: 1,
562
+ y: 0,
563
+ filter: "blur(0px)"
564
+ },
565
+ exit: f ? { opacity: 0 } : {
566
+ opacity: 0,
567
+ y: -4,
568
+ filter: "blur(3px)"
569
+ },
570
+ transition: {
571
+ duration: .2,
572
+ ease: H
573
+ },
574
+ children: C?.label
575
+ }, C?.id)
576
+ })
577
+ }), /* @__PURE__ */ l("svg", {
578
+ "aria-hidden": "true",
579
+ viewBox: "0 0 12 12",
580
+ width: "12",
581
+ height: "12",
582
+ children: /* @__PURE__ */ l("path", {
583
+ d: "M3 4.5 6 7.5 9 4.5",
584
+ fill: "none",
585
+ stroke: "currentColor",
586
+ strokeWidth: "1.5"
587
+ })
588
+ })]
589
+ }), /* @__PURE__ */ l(d, { children: m ? /* @__PURE__ */ l(p.ul, {
590
+ ref: S,
591
+ id: `${c}-list`,
592
+ role: "listbox",
593
+ tabIndex: -1,
594
+ "aria-label": a,
595
+ "aria-activedescendant": `${c}-option-${v}`,
596
+ className: "lilt-range-select__list",
597
+ onKeyDown: (e) => {
598
+ let n = (n) => {
599
+ e.preventDefault(), y(Math.max(0, Math.min(t.length - 1, n)));
600
+ };
601
+ if (e.key === "ArrowDown") n(v + 1);
602
+ else if (e.key === "ArrowUp") n(v - 1);
603
+ else if (e.key === "Home") n(0);
604
+ else if (e.key === "End") n(t.length - 1);
605
+ else if (e.key === "Enter" || e.key === " ") e.preventDefault(), E(v);
606
+ else if (e.key === "Escape") e.preventDefault(), T();
607
+ else if (e.key === "Tab") T(!1);
608
+ else if (e.key.length === 1) {
609
+ let r = e.key.toLowerCase(), i = t.findIndex((e, t) => t > v && e.label.toLowerCase().startsWith(r)), a = i >= 0 ? i : t.findIndex((e) => e.label.toLowerCase().startsWith(r));
610
+ a >= 0 && n(a);
611
+ }
612
+ },
613
+ initial: f ? { opacity: 0 } : {
614
+ opacity: 0,
615
+ scale: .96,
616
+ y: -4,
617
+ filter: "blur(4px)"
618
+ },
619
+ animate: {
620
+ opacity: 1,
621
+ scale: 1,
622
+ y: 0,
623
+ filter: "blur(0px)"
624
+ },
625
+ exit: f ? {
626
+ opacity: 0,
627
+ transition: { duration: .1 }
628
+ } : {
629
+ opacity: 0,
630
+ scale: .97,
631
+ filter: "blur(3px)",
632
+ transition: { duration: .12 }
633
+ },
634
+ transition: {
635
+ duration: .18,
636
+ ease: H
637
+ },
638
+ children: t.map((e, t) => /* @__PURE__ */ u("li", {
639
+ id: `${c}-option-${t}`,
640
+ role: "option",
641
+ "data-value": e.id,
642
+ "aria-selected": t === _,
643
+ className: "lilt-range-select__option",
644
+ "data-active": t === v || void 0,
645
+ onPointerMove: () => y(t),
646
+ onClick: () => E(t),
647
+ children: [
648
+ t === v ? /* @__PURE__ */ l(p.span, {
649
+ layoutId: f ? void 0 : `${c}-highlight`,
650
+ className: "lilt-range-select__highlight",
651
+ transition: {
652
+ type: "spring",
653
+ duration: .3,
654
+ bounce: 0
655
+ }
656
+ }) : null,
657
+ /* @__PURE__ */ l("span", {
658
+ className: "lilt-range-select__label",
659
+ children: e.label
660
+ }),
661
+ t === _ ? /* @__PURE__ */ l("svg", {
662
+ "aria-hidden": "true",
663
+ className: "lilt-range-select__check",
664
+ viewBox: "0 0 12 12",
665
+ width: "12",
666
+ height: "12",
667
+ children: /* @__PURE__ */ l("path", {
668
+ d: "M2.5 6.5 5 9l4.5-6",
669
+ fill: "none",
670
+ stroke: "currentColor",
671
+ strokeWidth: "1.6"
672
+ })
673
+ }) : null
674
+ ]
675
+ }, e.id))
676
+ }) : null })]
677
+ });
678
+ }
679
+ //#endregion
492
680
  //#region src/cards/chart-card.tsx
493
- var H = e("count");
494
- function U(...e) {
681
+ var U = e("count");
682
+ function W(...e) {
495
683
  return e.filter(Boolean).join(" ");
496
684
  }
497
- var W = e(null);
498
- function fe({ children: e, surface: n = "elevated", palette: r, motion: i, numberStyle: a = "count", badge: o, className: s, style: u, "aria-label": d, onKeyDown: f }) {
499
- let p = t(W), m = p?.badge ?? o, h = m != null && m !== !1, g = h || p !== null, _ = {
685
+ var G = e(null);
686
+ function _e({ children: e, surface: n = "elevated", palette: r, motion: i, numberStyle: a = "count", badge: o, className: s, style: c, "aria-label": d, onKeyDown: f }) {
687
+ let p = t(G), m = p?.badge ?? o, h = m != null && m !== !1, g = h || p !== null, _ = {
500
688
  "data-lilt-chart": "",
501
689
  "data-lilt-palette": r,
502
690
  "data-motion": i === "none" ? "none" : void 0,
503
- style: u
504
- }, v = /* @__PURE__ */ c("section", {
691
+ style: c
692
+ }, v = /* @__PURE__ */ l("section", {
505
693
  ...g ? { "data-lilt-chart": "" } : _,
506
694
  "data-surface": n,
507
695
  "data-tone": p?.tone ?? void 0,
508
- className: U("lilt-card", !g && s),
696
+ className: W("lilt-card", !g && s),
509
697
  "aria-label": d,
510
698
  onKeyDown: f,
511
- children: /* @__PURE__ */ c(W.Provider, {
699
+ children: /* @__PURE__ */ l(G.Provider, {
512
700
  value: null,
513
701
  children: e
514
702
  })
515
703
  });
516
- return /* @__PURE__ */ c(H.Provider, {
704
+ return /* @__PURE__ */ l(U.Provider, {
517
705
  value: a,
518
- children: g ? /* @__PURE__ */ l("div", {
706
+ children: g ? /* @__PURE__ */ u("div", {
519
707
  ..._,
520
- className: U("lilt-card-frame", s),
708
+ className: W("lilt-card-frame", s),
521
709
  "data-tabbed": h || void 0,
522
710
  children: [
523
- h ? /* @__PURE__ */ c(G, { children: m }) : null,
711
+ h ? /* @__PURE__ */ l(K, { children: m }) : null,
524
712
  p?.handle,
525
713
  v
526
714
  ]
527
715
  }) : v
528
716
  });
529
717
  }
530
- function G({ children: e, className: t }) {
531
- return /* @__PURE__ */ c("div", {
718
+ function K({ children: e, className: t }) {
719
+ return /* @__PURE__ */ l("div", {
532
720
  "data-lilt-chart": "",
533
- className: U("lilt-card-badge", t),
721
+ className: W("lilt-card-badge", t),
534
722
  children: e
535
723
  });
536
724
  }
537
- function pe({ children: e, aside: t, className: n }) {
538
- return /* @__PURE__ */ l("header", {
539
- className: U("lilt-card__header", n),
540
- children: [/* @__PURE__ */ c("div", {
725
+ function ve({ children: e, aside: t, className: n }) {
726
+ return /* @__PURE__ */ u("header", {
727
+ className: W("lilt-card__header", n),
728
+ children: [/* @__PURE__ */ l("div", {
541
729
  className: "lilt-card__heading",
542
730
  children: e
543
- }), t ? /* @__PURE__ */ c("div", {
731
+ }), t ? /* @__PURE__ */ l("div", {
544
732
  className: "lilt-card__aside",
545
733
  children: t
546
734
  }) : null]
547
735
  });
548
736
  }
549
- function me({ children: e }) {
550
- return /* @__PURE__ */ c("p", {
737
+ function ye({ children: e }) {
738
+ return /* @__PURE__ */ l("p", {
551
739
  className: "lilt-card__title",
552
740
  children: e
553
741
  });
554
742
  }
555
- function he({ value: e, format: n, children: r, loading: i = !1, motion: a }) {
556
- let o = t(H);
557
- return /* @__PURE__ */ l("div", {
743
+ function be({ value: e, format: n, children: r, loading: i = !1, motion: a }) {
744
+ let o = t(U);
745
+ return /* @__PURE__ */ u("div", {
558
746
  className: "lilt-card__value-row",
559
- children: [/* @__PURE__ */ c("strong", {
747
+ children: [/* @__PURE__ */ l("strong", {
560
748
  className: "lilt-card__value",
561
749
  "data-loading": i || void 0,
562
- children: i ? /* @__PURE__ */ c("span", {
750
+ children: i ? /* @__PURE__ */ l("span", {
563
751
  className: "lilt-card__skeleton",
564
752
  "aria-label": "Loading"
565
- }) : e === null ? "—" : /* @__PURE__ */ c(V, {
753
+ }) : e === null ? "—" : /* @__PURE__ */ l(B, {
566
754
  value: e,
567
755
  format: n,
568
756
  variant: o,
@@ -571,71 +759,60 @@ function he({ value: e, format: n, children: r, loading: i = !1, motion: a }) {
571
759
  }), r]
572
760
  });
573
761
  }
574
- var ge = (e) => `${e >= 0 ? "+" : ""}${(e * 100).toFixed(1)}%`;
575
- function _e({ value: e, tone: t = "default", format: n = ge }) {
762
+ var xe = (e) => `${e >= 0 ? "+" : ""}${(e * 100).toFixed(1)}%`;
763
+ function Se({ value: e, tone: t = "default", format: n = xe }) {
576
764
  let r = e > 0 ? "up" : e < 0 ? "down" : "flat";
577
- return /* @__PURE__ */ c("span", {
765
+ return /* @__PURE__ */ l("span", {
578
766
  className: "lilt-card__delta",
579
767
  "data-tone": t === "neutral" || r === "flat" ? "neutral" : r === "up" == (t === "default") ? "positive" : "negative",
580
768
  children: n(e)
581
769
  });
582
770
  }
583
- function ve({ children: e }) {
584
- return /* @__PURE__ */ c("span", {
771
+ function Ce({ children: e }) {
772
+ return /* @__PURE__ */ l("span", {
585
773
  className: "lilt-card__caption",
586
774
  children: e
587
775
  });
588
776
  }
589
- function ye({ label: e, options: t, value: n, onValueChange: r }) {
590
- return !t || t.length < 2 ? /* @__PURE__ */ c("span", {
777
+ function we({ label: e, options: t, value: n, onValueChange: r }) {
778
+ let i = he();
779
+ if (!t || t.length < 2) return /* @__PURE__ */ l("span", {
591
780
  className: "lilt-card__range",
592
781
  children: e ?? t?.[0]?.label
593
- }) : /* @__PURE__ */ l("span", {
594
- className: "lilt-card__range lilt-card__range--select",
595
- children: [/* @__PURE__ */ c("select", {
596
- "aria-label": "Period",
597
- value: n,
598
- onChange: (e) => r?.(e.target.value),
599
- children: t.map((e) => /* @__PURE__ */ c("option", {
600
- value: e.id,
601
- children: e.label
602
- }, e.id))
603
- }), /* @__PURE__ */ c("svg", {
604
- "aria-hidden": "true",
605
- viewBox: "0 0 12 12",
606
- width: "12",
607
- height: "12",
608
- children: /* @__PURE__ */ c("path", {
609
- d: "M3 4.5 6 7.5 9 4.5",
610
- fill: "none",
611
- stroke: "currentColor",
612
- strokeWidth: "1.5"
613
- })
614
- })]
615
782
  });
783
+ let a = {
784
+ value: n ?? t[0].id,
785
+ options: t,
786
+ onValueChange: (e) => r?.(e),
787
+ "aria-label": "Period"
788
+ };
789
+ return i ? /* @__PURE__ */ l("span", {
790
+ className: "lilt-card__range-slot",
791
+ children: /* @__PURE__ */ l(i, { ...a })
792
+ }) : /* @__PURE__ */ l(ge, { ...a });
616
793
  }
617
794
  //#endregion
618
795
  //#region src/watch/engine/robust.ts
619
- function K(e) {
796
+ function q(e) {
620
797
  if (e.length === 0) return null;
621
798
  let t = [...e].sort((e, t) => e - t), n = t.length >> 1;
622
799
  return t.length % 2 == 1 ? t[n] : (t[n - 1] + t[n]) / 2;
623
800
  }
624
- function be(e, t) {
625
- let n = K(e.map((e) => Math.abs(e - t)));
801
+ function Te(e, t) {
802
+ let n = q(e.map((e) => Math.abs(e - t)));
626
803
  return n === null ? 0 : n * 1.4826;
627
804
  }
628
805
  //#endregion
629
806
  //#region src/watch/engine/normal.ts
630
- var q = 1440, xe = 256, Se = 12;
631
- function Ce({ data: e, x: t, value: n, normal: r }) {
807
+ var J = 1440, Ee = 256, De = 12;
808
+ function Oe({ data: e, x: t, value: n, normal: r }) {
632
809
  let i = (e, t) => {
633
810
  let n = e[t];
634
811
  return typeof n == "number" && Number.isFinite(n) ? n : null;
635
812
  }, a = e.map((e) => i(e, n));
636
813
  if (r.around !== void 0 && r.tolerance === void 0) throw Error("Lilt Charts: `normal.around` needs a `tolerance`.");
637
814
  if (r.given !== void 0 && r.learn === void 0) throw Error("Lilt Charts: `normal.given` needs `learn`.");
638
- let o = r.learn === void 0 ? null : De(r.learn), s = o ? Oe(e, t, o) : null, c = r.given === void 0 ? null : Z(r.given, e, i), l = /* @__PURE__ */ new Map(), u = [], d = Object.entries(r.rules ?? {}).map(([e, t]) => typeof t == "function" ? {
815
+ let o = r.learn === void 0 ? null : Me(r.learn), s = o ? Ne(e, t, o) : null, c = r.given === void 0 ? null : Fe(r.given, e, i), l = /* @__PURE__ */ new Map(), u = [], d = Object.entries(r.rules ?? {}).map(([e, t]) => typeof t == "function" ? {
639
816
  id: e,
640
817
  test: t
641
818
  } : {
@@ -652,36 +829,36 @@ function Ce({ data: e, x: t, value: n, normal: r }) {
652
829
  h = {
653
830
  lower: e ?? null,
654
831
  upper: t ?? null
655
- }, p && f !== null && (t !== void 0 && f > t && m.push(J("limit", "max", n, "above", t, f, Y(t))), e !== void 0 && f < e && m.push(J("limit", "min", n, "below", e, f, Y(e))));
832
+ }, p && f !== null && (t !== void 0 && f > t && m.push(Y("limit", "max", n, "above", t, f, X(t))), e !== void 0 && f < e && m.push(Y("limit", "min", n, "below", e, f, X(e))));
656
833
  }
657
834
  if (r.around !== void 0 && r.tolerance !== void 0) {
658
835
  let e = i(t, r.around);
659
836
  if (e !== null) {
660
- let t = we(r.tolerance, e), n = {
837
+ let t = ke(r.tolerance, e), n = {
661
838
  lower: e - t,
662
839
  upper: e + t
663
840
  };
664
- if (h = X(h, n), g = e, p && f !== null) {
841
+ if (h = Z(h, n), g = e, p && f !== null) {
665
842
  let e = r.aroundSeverity ?? "warning";
666
- f > n.upper ? m.push(J("around", "around", e, "above", n.upper, f, t)) : f < n.lower && m.push(J("around", "around", e, "below", n.lower, f, t));
843
+ f > n.upper ? m.push(Y("around", "around", e, "above", n.upper, f, t)) : f < n.lower && m.push(Y("around", "around", e, "below", n.lower, f, t));
667
844
  }
668
845
  }
669
846
  }
670
847
  if (o && s) {
671
- let e = Ae(s(t), c ? c(t) : ""), r = e === null ? void 0 : l.get(e), i = r?.values;
848
+ let e = Ie(s(t), c ? c(t) : ""), r = e === null ? void 0 : l.get(e), i = r?.values;
672
849
  if (r && i && i.length >= o.minSamples) {
673
- let e = K(i);
850
+ let e = q(i);
674
851
  _ = [...r.rows];
675
- let t = u.length >= Se ? K(u) * 1.4826 : 0, n = Math.max(be(i, e), Math.abs(e) * Math.max(t, .02), 1e-9) * o.width, a = {
852
+ let t = u.length >= De ? q(u) * 1.4826 : 0, n = Math.max(Te(i, e), Math.abs(e) * Math.max(t, .02), 1e-9) * o.width, a = {
676
853
  lower: e - n,
677
854
  upper: e + n
678
855
  };
679
- h = X(h, a), g = e, p && f !== null && (f > a.upper ? m.push(J("learned", "learned", o.severity, "above", a.upper, f, n)) : f < a.lower && m.push(J("learned", "learned", o.severity, "below", a.lower, f, n)));
856
+ h = Z(h, a), g = e, p && f !== null && (f > a.upper ? m.push(Y("learned", "learned", o.severity, "above", a.upper, f, n)) : f < a.lower && m.push(Y("learned", "learned", o.severity, "below", a.lower, f, n)));
680
857
  }
681
858
  if (e !== null && p && f !== null) {
682
859
  if (g !== null && i && i.length >= o.minSamples) {
683
- let e = K(i);
684
- e !== 0 && (u.push(Math.abs(f - e) / Math.abs(e)), u.length > xe && u.shift());
860
+ let e = q(i);
861
+ e !== 0 && (u.push(Math.abs(f - e) / Math.abs(e)), u.length > Ee && u.shift());
685
862
  }
686
863
  let t = l.get(e) ?? {
687
864
  values: [],
@@ -717,7 +894,7 @@ function Ce({ data: e, x: t, value: n, normal: r }) {
717
894
  };
718
895
  });
719
896
  }
720
- function J(e, t, n, r, i, a, o) {
897
+ function Y(e, t, n, r, i, a, o) {
721
898
  return {
722
899
  source: e,
723
900
  id: t,
@@ -727,19 +904,19 @@ function J(e, t, n, r, i, a, o) {
727
904
  score: 1 + Math.abs(a - i) / Math.max(o, 1e-9)
728
905
  };
729
906
  }
730
- var Y = (e) => e === 0 ? 1 : Math.abs(e) * .1;
731
- function we(e, t) {
907
+ var X = (e) => e === 0 ? 1 : Math.abs(e) * .1;
908
+ function ke(e, t) {
732
909
  return typeof e == "number" ? Math.abs(e) : Math.abs(t) * Math.abs(Number.parseFloat(e)) / 100;
733
910
  }
734
- function X(e, t) {
735
- let n = Te(e.lower, t.lower), r = Ee(e.upper, t.upper);
911
+ function Z(e, t) {
912
+ let n = Ae(e.lower, t.lower), r = je(e.upper, t.upper);
736
913
  return n !== null && r !== null && n > r ? e : {
737
914
  lower: n,
738
915
  upper: r
739
916
  };
740
917
  }
741
- var Te = (e, t) => e === null ? t : t === null ? e : Math.max(e, t), Ee = (e, t) => e === null ? t : t === null ? e : Math.min(e, t);
742
- function De(e) {
918
+ var Ae = (e, t) => e === null ? t : t === null ? e : Math.max(e, t), je = (e, t) => e === null ? t : t === null ? e : Math.min(e, t);
919
+ function Me(e) {
743
920
  return {
744
921
  width: 3,
745
922
  history: 8,
@@ -749,7 +926,7 @@ function De(e) {
749
926
  ...typeof e == "string" ? { period: e } : e
750
927
  };
751
928
  }
752
- function Oe(e, t, n) {
929
+ function Ne(e, t, n) {
753
930
  if (n.period === "all") return () => "all";
754
931
  let r = (e) => {
755
932
  let r = e[t];
@@ -757,7 +934,7 @@ function Oe(e, t, n) {
757
934
  if (typeof r == "number" && Number.isFinite(r)) return r;
758
935
  if (r == null) return null;
759
936
  throw Error(`Lilt Charts: learning by '${n.period}' needs dates or epoch milliseconds in '${t}'.`);
760
- }, i = n.slotMinutes ?? ke(e.map(r));
937
+ }, i = n.slotMinutes ?? Pe(e.map(r));
761
938
  return (e) => {
762
939
  let t = r(e);
763
940
  if (t === null) return null;
@@ -765,22 +942,22 @@ function Oe(e, t, n) {
765
942
  return n.period === "week" ? `${a.getUTCDay()}:${s}` : String(s);
766
943
  };
767
944
  }
768
- function ke(e) {
945
+ function Pe(e) {
769
946
  let t = e.filter((e) => e !== null), n = [];
770
947
  for (let e = 1; e < t.length; e += 1) {
771
948
  let r = t[e] - t[e - 1];
772
949
  r > 0 && n.push(r);
773
950
  }
774
- let r = K(n);
775
- return r === null ? q : Math.min(q, Math.max(1, Math.round(r / 6e4)));
951
+ let r = q(n);
952
+ return r === null ? J : Math.min(J, Math.max(1, Math.round(r / 6e4)));
776
953
  }
777
- function Z(e, t, n) {
954
+ function Fe(e, t, n) {
778
955
  let { key: r, step: i } = typeof e == "string" ? {
779
956
  key: e,
780
957
  step: void 0
781
958
  } : e, a = i;
782
959
  if (a === void 0) {
783
- let e = t.map((e) => n(e, r)).filter((e) => e !== null), [i, o] = _(e), s = i === void 0 || o === void 0 ? 0 : o - i;
960
+ let e = t.map((e) => n(e, r)).filter((e) => e !== null), [i, o] = v(e), s = i === void 0 || o === void 0 ? 0 : o - i;
784
961
  a = s > 0 ? s / 8 : 1;
785
962
  }
786
963
  return (e) => {
@@ -788,16 +965,16 @@ function Z(e, t, n) {
788
965
  return t === null ? null : String(Math.floor(t / a));
789
966
  };
790
967
  }
791
- function Ae(e, t) {
968
+ function Ie(e, t) {
792
969
  return e === null || t === null ? null : t === "" ? e : `${e}|${t}`;
793
970
  }
794
971
  //#endregion
795
972
  //#region src/watch/engine/status.ts
796
- function je(e, { enter: t = 2, exit: n = 3 } = {}) {
973
+ function Le(e, { enter: t = 2, exit: n = 3 } = {}) {
797
974
  let r = [], i = !1, a = null, o = null, s = [], c = 0, l = 0, u = 0, d = 0, f = [];
798
975
  for (let p of e) {
799
976
  let e = p.flags.length > 0;
800
- p.judged && (e || p.value !== null) && (e ? (d = 0, l === 0 && (u = p.index, f = []), l += 1, f.push(p), !i && l >= t ? (i = !0, o = u, a = Me(f), c = Math.max(...f.map((e) => e.score)), s = p.flags, r.push({
977
+ p.judged && (e || p.value !== null) && (e ? (d = 0, l === 0 && (u = p.index, f = []), l += 1, f.push(p), !i && l >= t ? (i = !0, o = u, a = Re(f), c = Math.max(...f.map((e) => e.score)), s = p.flags, r.push({
801
978
  type: "activated",
802
979
  index: p.index,
803
980
  severity: a,
@@ -821,10 +998,10 @@ function je(e, { enter: t = 2, exit: n = 3 } = {}) {
821
998
  events: r
822
999
  };
823
1000
  }
824
- var Me = (e) => e.some((e) => e.severity === "critical") ? "critical" : "warning";
1001
+ var Re = (e) => e.some((e) => e.severity === "critical") ? "critical" : "warning";
825
1002
  //#endregion
826
1003
  //#region src/watch/engine/describe.ts
827
- function Ne(e, { formatValue: t = String, aroundLabel: n = "reference" } = {}) {
1004
+ function ze(e, { formatValue: t = String, aroundLabel: n = "reference" } = {}) {
828
1005
  let r = e.direction === "above";
829
1006
  switch (e.source) {
830
1007
  case "limit": return `${r ? "Above max" : "Below min"} ${t(e.bound)}`;
@@ -863,11 +1040,11 @@ function Q(e, t) {
863
1040
  };
864
1041
  }
865
1042
  var $ = (e) => typeof e == "number" && Number.isFinite(e);
866
- function Pe({ data: e, points: t, indices: n, breakdown: r, fallback: i = 6 }) {
1043
+ function Be({ data: e, points: t, indices: n, breakdown: r, fallback: i = 6 }) {
867
1044
  if (!n.length) return null;
868
1045
  let a = {}, o = {}, s = (e, t, n) => {
869
1046
  e[t] !== null && (e[t] = n === null ? null : (e[t] ?? 0) + n);
870
- }, c = v(n) ?? Infinity, l = [];
1047
+ }, c = y(n) ?? Infinity, l = [];
871
1048
  for (let e = c - 1; e >= 0 && l.length < i; --e) {
872
1049
  let n = t[e];
873
1050
  n?.judged && n.value !== null && n.flags.length === 0 && l.push(e);
@@ -878,12 +1055,12 @@ function Pe({ data: e, points: t, indices: n, breakdown: r, fallback: i = 6 }) {
878
1055
  let c = r(n), u = (t[i]?.basis?.length ? t[i].basis : l).map((t) => r(e[t])), d = /* @__PURE__ */ new Set([...Object.keys(c), ...u.flatMap(Object.keys)]);
879
1056
  for (let e of d) {
880
1057
  let t = c[e];
881
- s(a, e, $(t) ? t : null), s(o, e, K(u.map((t) => t[e]).filter($)));
1058
+ s(a, e, $(t) ? t : null), s(o, e, q(u.map((t) => t[e]).filter($)));
882
1059
  }
883
1060
  }
884
1061
  return Q(a, o);
885
1062
  }
886
- function Fe(e, { lead: t = .5 } = {}) {
1063
+ function Ve(e, { lead: t = .5 } = {}) {
887
1064
  if (!e || e.delta === 0) return null;
888
1065
  let [n, r] = e.parts;
889
1066
  if (!n || n.share <= 0) return null;
@@ -892,6 +1069,6 @@ function Fe(e, { lead: t = .5 } = {}) {
892
1069
  }
893
1070
  //#endregion
894
1071
  //#region src/watch/board/report-context.ts
895
- var Ie = e(null);
1072
+ var He = e(null);
896
1073
  //#endregion
897
- export { x as S, V as _, Ne as a, b, G as c, ve as d, _e as f, he as g, me as h, Pe as i, W as l, ye as m, Fe as n, je as o, pe as p, Q as r, Ce as s, Ie as t, fe as u, D as v, S as x, T as y };
1074
+ export { C, w as S, me as _, ze as a, D as b, K as c, Ce as d, Se as f, be as g, ye as h, Be as i, G as l, we as m, Ve as n, Le as o, ve as p, Q as r, Oe as s, He as t, _e as u, B as v, S as x, k as y };