basalt-ui 1.7.0 → 1.9.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 (77) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/agent/rules/basalt-charts.md +74 -5
  3. package/agent/skills/basalt-design/SKILL.md +5 -2
  4. package/dist/charts/hooks/useHoverSync.d.ts +18 -2
  5. package/dist/charts/hooks/useHoverSync.d.ts.map +1 -1
  6. package/dist/charts/hooks/useHoverSync.js +12 -7
  7. package/dist/charts/index.d.ts +1 -0
  8. package/dist/charts/index.d.ts.map +1 -1
  9. package/dist/charts/index.js +6 -0
  10. package/dist/charts/kinds/Bars.d.ts +2 -0
  11. package/dist/charts/kinds/Bars.d.ts.map +1 -1
  12. package/dist/charts/kinds/Bars.js +3 -1
  13. package/dist/charts/kinds/Donut.d.ts +2 -0
  14. package/dist/charts/kinds/Donut.d.ts.map +1 -1
  15. package/dist/charts/kinds/Donut.js +8 -4
  16. package/dist/charts/kinds/DualPanel.d.ts +2 -0
  17. package/dist/charts/kinds/DualPanel.d.ts.map +1 -1
  18. package/dist/charts/kinds/DualPanel.js +2 -1
  19. package/dist/charts/kinds/Heatmap.d.ts +8 -0
  20. package/dist/charts/kinds/Heatmap.d.ts.map +1 -1
  21. package/dist/charts/kinds/Heatmap.js +7 -3
  22. package/dist/charts/kinds/MultiLine.d.ts +2 -0
  23. package/dist/charts/kinds/MultiLine.d.ts.map +1 -1
  24. package/dist/charts/kinds/MultiLine.js +2 -1
  25. package/dist/charts/kinds/StackedArea.d.ts +2 -0
  26. package/dist/charts/kinds/StackedArea.d.ts.map +1 -1
  27. package/dist/charts/kinds/StackedArea.js +2 -1
  28. package/dist/charts/kinds/ZonedLine.d.ts +2 -0
  29. package/dist/charts/kinds/ZonedLine.d.ts.map +1 -1
  30. package/dist/charts/kinds/ZonedLine.js +2 -1
  31. package/dist/charts/primitives/Axes.d.ts +6 -1
  32. package/dist/charts/primitives/Axes.d.ts.map +1 -1
  33. package/dist/charts/primitives/Axes.js +3 -2
  34. package/dist/charts/primitives/ChartFrame.d.ts +8 -1
  35. package/dist/charts/primitives/ChartFrame.d.ts.map +1 -1
  36. package/dist/charts/primitives/ChartFrame.js +8 -4
  37. package/dist/charts/primitives/ChartPending.d.ts +34 -0
  38. package/dist/charts/primitives/ChartPending.d.ts.map +1 -0
  39. package/dist/charts/primitives/ChartPending.js +23 -0
  40. package/dist/charts/primitives/ChartTooltip.d.ts +5 -2
  41. package/dist/charts/primitives/ChartTooltip.d.ts.map +1 -1
  42. package/dist/charts/primitives/ChartTooltip.js +6 -1
  43. package/dist/charts/primitives/HoverOverlay.d.ts +5 -4
  44. package/dist/charts/primitives/HoverOverlay.d.ts.map +1 -1
  45. package/dist/charts/primitives/HoverOverlay.js +4 -2
  46. package/dist/cli/index.d.ts +22 -1
  47. package/dist/cli/index.d.ts.map +1 -1
  48. package/dist/cli/index.js +86 -5
  49. package/dist/dashboard/stat-card.d.ts +4 -2
  50. package/dist/dashboard/stat-card.d.ts.map +1 -1
  51. package/dist/dashboard/stat-card.js +6 -1
  52. package/dist/guard/index.d.ts.map +1 -1
  53. package/dist/guard/index.js +13 -5
  54. package/llms.txt +2 -2
  55. package/package.json +3 -5
  56. package/src/charts/hooks/useHoverSync.ts +43 -7
  57. package/src/charts/index.ts +6 -0
  58. package/src/charts/kinds/Bars.tsx +4 -0
  59. package/src/charts/kinds/Donut.tsx +10 -4
  60. package/src/charts/kinds/DualPanel.tsx +5 -1
  61. package/src/charts/kinds/Heatmap.tsx +19 -2
  62. package/src/charts/kinds/MultiLine.tsx +4 -1
  63. package/src/charts/kinds/StackedArea.tsx +4 -1
  64. package/src/charts/kinds/ZonedLine.tsx +4 -1
  65. package/src/charts/primitives/Axes.tsx +7 -1
  66. package/src/charts/primitives/ChartFrame.test.tsx +64 -0
  67. package/src/charts/primitives/ChartFrame.tsx +17 -4
  68. package/src/charts/primitives/ChartPending.tsx +59 -0
  69. package/src/charts/primitives/ChartTooltip.tsx +15 -3
  70. package/src/charts/primitives/HoverOverlay.tsx +12 -6
  71. package/src/cli/index.ts +154 -5
  72. package/src/cli/placement-engine.test.ts +104 -0
  73. package/src/dashboard/stat-card.test.tsx +81 -0
  74. package/src/dashboard/stat-card.tsx +30 -4
  75. package/src/guard/check-source.test.ts +22 -1
  76. package/src/guard/index.ts +21 -7
  77. package/src/theme/contrast.test.ts +18 -1
package/CHANGELOG.md CHANGED
@@ -1,3 +1,27 @@
1
+ # [1.9.0](https://github.com/jkrumm/basalt-ui/compare/v1.8.0...v1.9.0) (2026-08-02)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * stop seeding repo-root files into a subdirectory package ([cd2fa7e](https://github.com/jkrumm/basalt-ui/commit/cd2fa7ea851eb1c73943e6bbdad5211b2fc65200))
7
+ * stop the layout guards firing where their remedy is banned ([6851a90](https://github.com/jkrumm/basalt-ui/commit/6851a908293cb5c46dc6e7c4c01185d3ac909928))
8
+
9
+
10
+ ### Features
11
+
12
+ * capture chart hover through pointer events ([4f53f4b](https://github.com/jkrumm/basalt-ui/commit/4f53f4bd9ff2bb4ededb8db7ba9bf6049a62dc48))
13
+ * give charts a pending state ([c3a8d05](https://github.com/jkrumm/basalt-ui/commit/c3a8d05a4aac166d4264a8dc6b8afa2b45d1893b))
14
+ * let the date axis take a tick format ([5502ef5](https://github.com/jkrumm/basalt-ui/commit/5502ef5614e482a422b5f70e5701588d9612209e))
15
+ * portal the chart tooltip out of the svg namespace trap ([6e9c399](https://github.com/jkrumm/basalt-ui/commit/6e9c399d3d52c232765959386091d06379c35a98))
16
+ * resolve a sibling's hover key through a consumer seam ([c8b7c93](https://github.com/jkrumm/basalt-ui/commit/c8b7c93fb9cf0d56d940d0d466efa07a5b90508e))
17
+
18
+ # [1.8.0](https://github.com/jkrumm/basalt-ui/compare/v1.7.0...v1.8.0) (2026-08-02)
19
+
20
+
21
+ ### Features
22
+
23
+ * give the stat card's threshold rail a good tone ([49e795f](https://github.com/jkrumm/basalt-ui/commit/49e795f2f0da85334953bf6280ca108c730d532c))
24
+
1
25
  # [1.7.0](https://github.com/jkrumm/basalt-ui/compare/v1.6.0...v1.7.0) (2026-08-02)
2
26
 
3
27
 
@@ -39,20 +39,34 @@ tree to keep Mantine-free and no bridge file to own — `BasaltProvider` already
39
39
  color scheme to the `--vx-*` CSS variables charts read internally. Just compose the shipped
40
40
  primitives/kinds and pull color from `VX.*`/`alpha()` (`basalt-ui/tokens`).
41
41
 
42
+ `check-theme`'s `inline-display` and `raw-html-layout` guards don't fire inside a chart file
43
+ either — both remedies point at a Mantine layout primitive (`Flex`/`Grid`/`Group`/`Box`), which the
44
+ Mantine-free boundary above already forbids there, so the finding would be unactionable. Reach for
45
+ `ChartCenter` (below, under "Pending state") when a chart file needs to center something.
46
+
42
47
  ## Every chart has
43
48
 
44
49
  1. **ChartCard** wrapper — gives title + info-tooltip + extra slot, consistent margin.
45
50
  2. **ChartLegend** — never hand-rolled legend markup. Supports `line | bar | split | splitLine`
46
51
  shapes and optional highlight state.
47
52
  3. **ChartTooltip** + `TooltipHeader` + `TooltipRow` + `TooltipBody` — never `@visx/tooltip` directly.
53
+ Portals to `document.body` (SSR-guarded: renders nothing when `document` is undefined), so it
54
+ can be authored anywhere in the tree, including inside an `<svg>`. A plain `<div>` there used to
55
+ mount in the SVG namespace — accepting every prop, throwing nothing, typechecking, passing lint
56
+ — and never paint; one consumer shipped eight authored tooltip rows no one had ever seen. The
57
+ portal also un-breaks `position: fixed` under a transformed ancestor.
48
58
  4. **AxisLeftNumeric** / **AxisRightNumeric** + **AxisBottomDate** — never raw `<AxisLeft>`/`<AxisBottom>`/`<AxisRight>`
49
59
  (they miss theme tokens + smart ticks). Enforced by `basalt-ui check-theme` (`raw-visx-axis` guard
50
60
  fails the build on a raw axis in a `/charts/` file; escape via `theme-allow`), not just convention.
51
- 5. **HoverOverlay** for mouse capture, **HoverContext** for cross-chart crosshair sync,
52
- **useChartTooltip** for tip state, **useHoverSync** for the shared cursor. Wrap a group of
53
- date-aligned charts in **ChartHoverSync** (from `basalt-ui/charts`) to activate cross-chart sync —
54
- hovering one chart casts a ghost crosshair on all siblings; without it `useHoverSync` runs
55
- per-chart only and logs a dev warning:
61
+ `AxisBottomDate` takes an optional `tickFormat` (`TickFormatter<string>`, defaults to
62
+ `fmtAxisDate` — `DD.MM`) — the only supported exit for a sub-day window, where the default
63
+ collapses every tick to the same label and a raw `<AxisBottom>` isn't an option.
64
+ 5. **HoverOverlay** for pointer capture (mouse + touch + pen — `touch-action: pan-y` lets vertical
65
+ page scroll pass through while a horizontal drag scrubs the chart), **HoverContext** for
66
+ cross-chart crosshair sync, **useChartTooltip** for tip state, **useHoverSync** for the shared
67
+ cursor. Wrap a group of date-aligned charts in **ChartHoverSync** (from `basalt-ui/charts`) to
68
+ activate cross-chart sync — hovering one chart casts a ghost crosshair on all siblings; without
69
+ it `useHoverSync` runs per-chart only and logs a dev warning:
56
70
 
57
71
  ```tsx
58
72
  <ChartHoverSync>
@@ -61,12 +75,67 @@ primitives/kinds and pull color from `VX.*`/`alpha()` (`basalt-ui/tokens`).
61
75
  </ChartHoverSync>
62
76
  ```
63
77
 
78
+ Sync is exact string match on the broadcast key by default, so two charts share a cursor only
79
+ when they emit identical key strings. A chart that folds/downsamples its domain for a narrow
80
+ viewport stops owning most of the keys its unfolded siblings broadcast — the shared crosshair
81
+ then lands on roughly one hover in three, worse than no shared cursor at all. Pass
82
+ `useHoverSync`'s `resolveKey` to map a foreign key onto whichever of this chart's own points
83
+ swallowed it; it only affects reading a SIBLING's broadcast key, never this chart's own hover:
84
+
85
+ ```tsx
86
+ useHoverSync({
87
+ data: foldedData,
88
+ chartId: 'load-mobile',
89
+ getKey: (d) => d.bucketKey,
90
+ xScale,
91
+ marginLeft,
92
+ // ~288 daily buckets folded into ~97 columns at this width — map an unfolded sibling's key
93
+ // onto the folded bucket that swallowed it.
94
+ resolveKey: (key) => pointByKey.get(foldKey(key)) ?? null,
95
+ })
96
+ ```
97
+
64
98
  6. **Theme-aware colors** via `VX.*` tokens + `alpha()`. **Never** a raw hex literal in a chart file.
65
99
  **Never** `localStorage.getItem('theme')` — the scheme resolves via CSS vars (see Dark/light below).
66
100
 
67
101
  **Exemption:** sparklines (`LineSparkline`, `BarSparkline` — tiny inline charts with no legend/tooltip)
68
102
  don't have to compose ChartCard/ChartLegend/ChartTooltip — but still use `VX.*` tokens.
69
103
 
104
+ ## Pending state (`isPending`)
105
+
106
+ "Nothing to draw" is three states, not two: **measured-and-empty**, **measured-and-absent** (a
107
+ genuine coverage gap), and **not-asked-yet** (the query hasn't resolved). The `data ?? []` idiom
108
+ collapses the third into the second — an in-flight query renders as a fully-hatched "not measured"
109
+ window, a positive claim the series was watched and carried nothing. Pass `isPending` instead of
110
+ faking an empty array:
111
+
112
+ ```tsx
113
+ import { Bars } from 'basalt-ui/charts'
114
+ ;<Bars
115
+ data={data ?? []}
116
+ isPending={query.isPending}
117
+ chartId="load"
118
+ getX={(d) => d.date}
119
+ getY={(d) => d.load}
120
+ />
121
+ ```
122
+
123
+ All seven kinds accept `isPending` and forward it to `ChartFrame` (`Heatmap` handles it locally —
124
+ it composes no `ChartFrame`, taking `width`/`height` directly rather than measuring). `ChartFrame`
125
+ with `isPending` renders `ChartPending` over the plot rect in place of `children`, suppresses the
126
+ legend entirely (a legend naming a series with nothing yet to point at is its own small lie), and
127
+ sets `aria-busy="true"` on the outer container.
128
+
129
+ `ChartPending` reserves the plot's exact footprint and draws **nothing** that could be mistaken for
130
+ a measurement — no axes, no gridlines, no hatching, no marks, no animation (the motion doctrine
131
+ bans idle pulsing) — just a faint, static, centered label (`ChartPendingProps.label`, default
132
+ `'Loading…'`).
133
+
134
+ `ChartCenter` (also exported from `./charts`) is the centering primitive `ChartPending` is built
135
+ on — it exists only because chart files can't import Mantine's `Center`/`Flex`. Reach for it
136
+ directly in a bespoke chart file the same way; it's deliberately minimal (`width`, `height`,
137
+ `children`, nothing else), not a general layout system.
138
+
70
139
  ## Kinds — the recurring shapes
71
140
 
72
141
  basalt-ui ships these kinds (declarative props, generic over your point type via `getX`/`getY`):
@@ -133,8 +133,11 @@ structure, the accent only points.
133
133
  `mantine-shade-index` (a shade-pinned color — `c="yellow.7"` is one fixed swatch in both schemes;
134
134
  use `VX.status.*` or the bare hue name), `raw-html-layout`, `inline-spacing`, `inline-display`.
135
135
  Only the Mantine-free `src/charts/**` may use raw `<div>` (still with `VX.*` tokens).
136
- - **Reach for the shipped composite before wrapping one.** A `StatCard` past a threshold takes
137
- `tone="warn" | "bad"` (an accent rail down its leading edge); a chart goes in `ChartCard`. Wrapping
136
+ - **Reach for the shipped composite before wrapping one.** A `StatCard` carrying a threshold verdict
137
+ takes `tone="good" | "warn" | "bad"` (an accent rail down its leading edge). Omitting `tone` is not
138
+ the same as `"good"` — omitted means "fine, or nothing measured" and stays untinted, so `"good"` is
139
+ a positive assertion you opt into for a value that earned it (`0 min` downtime), never a default.
140
+ A chart goes in `ChartCard`. Wrapping
138
141
  a shipped card in a hand-positioned `Box` to add a mark it already has is how an app grows a second
139
142
  card idiom — one the guard cannot recognize as a card, and therefore cannot police. If a composite
140
143
  genuinely can't express what you need, that is a gap to report, not to route around.
@@ -12,16 +12,32 @@ type XScale = (x: string) => number | undefined;
12
12
  * closest-point loop inline — drift across 15+ charts is the exact problem
13
13
  * this hook prevents.
14
14
  */
15
- export declare function useHoverSync<T>({ data, chartId, getKey, xScale, marginLeft, }: {
15
+ export declare function useHoverSync<T>({ data, chartId, getKey, xScale, marginLeft, resolveKey, }: {
16
16
  data: T[];
17
17
  chartId: string;
18
18
  getKey: (d: T) => string;
19
19
  xScale: XScale;
20
20
  marginLeft: number;
21
+ /**
22
+ * Overrides how a SIBLING's broadcast key resolves to one of THIS chart's own points. Only
23
+ * affects reading another chart's hover — this chart's own hover (via `getKey`/`xScale`) is
24
+ * untouched.
25
+ *
26
+ * Cross-chart sync is exact string match by default (`pointByKey.get(ctx.key)`), so two charts
27
+ * share a cursor only if they emit identical key strings. A chart that downsamples/folds its
28
+ * domain to fit a narrow viewport (e.g. ~288 buckets folded into ~97 columns at 390px) no longer
29
+ * owns most of the keys its unfolded siblings broadcast — the shared crosshair then appears on
30
+ * roughly one hover in three, with no rule a reader can infer, which is worse than no shared
31
+ * cursor at all. Pass `resolveKey` to map a foreign key onto whichever of this chart's own points
32
+ * swallowed it (e.g. the folded bucket the key falls into).
33
+ *
34
+ * Omit it and behaviour is byte-identical to today.
35
+ */
36
+ resolveKey?: (key: string) => T | null;
21
37
  }): {
22
38
  tip: import("./useChartTooltip.js").TooltipState<T>;
23
39
  tooltipRef: import("react").RefObject<HTMLDivElement | null>;
24
- syncedPoint: NonNullable<T> | null;
40
+ syncedPoint: T | null;
25
41
  isDirectHover: boolean;
26
42
  handleMouse: (event: React.MouseEvent<SVGRectElement>) => void;
27
43
  handleLeave: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"useHoverSync.d.ts","sourceRoot":"","sources":["../../../src/charts/hooks/useHoverSync.ts"],"names":[],"mappings":"AAKA,KAAK,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAA;AAE/C;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,EAC9B,IAAI,EACJ,OAAO,EACP,MAAM,EACN,MAAM,EACN,UAAU,GACX,EAAE;IACD,IAAI,EAAE,CAAC,EAAE,CAAA;IACT,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAA;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;CACnB;;;;;yBAgCW,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC;;EAmD3C"}
1
+ {"version":3,"file":"useHoverSync.d.ts","sourceRoot":"","sources":["../../../src/charts/hooks/useHoverSync.ts"],"names":[],"mappings":"AAKA,KAAK,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAA;AAE/C;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,EAC9B,IAAI,EACJ,OAAO,EACP,MAAM,EACN,MAAM,EACN,UAAU,EACV,UAAU,GACX,EAAE;IACD,IAAI,EAAE,CAAC,EAAE,CAAA;IACT,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAA;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB;;;;;;;;;;;;;;OAcG;IACH,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,CAAC,GAAG,IAAI,CAAA;CACvC;;;;;yBA6CW,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC;;EAyD3C"}
@@ -7,7 +7,8 @@ function useHoverSync({
7
7
  chartId,
8
8
  getKey,
9
9
  xScale,
10
- marginLeft
10
+ marginLeft,
11
+ resolveKey
11
12
  }) {
12
13
  const ctx = useContext(HoverContext);
13
14
  const ctxRef = useRef(ctx);
@@ -20,11 +21,15 @@ function useHoverSync({
20
21
  );
21
22
  }
22
23
  const { tip, show, hide, tooltipRef, lastDateRef } = useChartTooltip();
24
+ const getKeyRef = useRef(getKey);
25
+ getKeyRef.current = getKey;
26
+ const xScaleRef = useRef(xScale);
27
+ xScaleRef.current = xScale;
23
28
  const pointByKey = useMemo(() => {
24
29
  const m = /* @__PURE__ */ new Map();
25
- for (const d of data) m.set(getKey(d), d);
30
+ for (const d of data) m.set(getKeyRef.current(d), d);
26
31
  return m;
27
- }, [data, getKey]);
32
+ }, [data]);
28
33
  const handleMouse = useCallback(
29
34
  (event) => {
30
35
  const point = localPoint(event);
@@ -33,7 +38,7 @@ function useHoverSync({
33
38
  let closest = data[0];
34
39
  let minDist = Infinity;
35
40
  for (const d of data) {
36
- const sx = xScale(getKey(d)) ?? 0;
41
+ const sx = xScaleRef.current(getKeyRef.current(d)) ?? 0;
37
42
  const dist = Math.abs(sx - px);
38
43
  if (dist < minDist) {
39
44
  minDist = dist;
@@ -41,19 +46,19 @@ function useHoverSync({
41
46
  }
42
47
  }
43
48
  show(closest, event);
44
- const key = getKey(closest);
49
+ const key = getKeyRef.current(closest);
45
50
  if (lastDateRef.current !== key) {
46
51
  lastDateRef.current = key;
47
52
  ctxRef.current.setHover(key, chartId);
48
53
  }
49
54
  },
50
- [data, xScale, getKey, chartId, marginLeft, show, lastDateRef]
55
+ [data, chartId, marginLeft, show, lastDateRef]
51
56
  );
52
57
  const handleLeave = useCallback(() => {
53
58
  hide();
54
59
  if (ctxRef.current.source === chartId) ctxRef.current.setHover(null, null);
55
60
  }, [hide, chartId]);
56
- const syncedPoint = ctx.key ? pointByKey.get(ctx.key) ?? null : tip?.data ?? null;
61
+ const syncedPoint = ctx.key ? resolveKey ? resolveKey(ctx.key) : pointByKey.get(ctx.key) ?? null : tip?.data ?? null;
57
62
  const hasProvider = ctx.setHover !== DEFAULT_NO_OP_SET_HOVER;
58
63
  const isDirectHover = hasProvider ? ctx.source === chartId : tip !== null;
59
64
  return {
@@ -17,6 +17,7 @@ export { ChartHoverSync, type ChartHoverSyncProps } from './hover-sync.js';
17
17
  export { type SeriesMark, type SeriesDash, type SeriesRole, type LegendPlacement, type ChartLegendConfig, type SeriesStyle, type ChartSeries, deriveLegend, deriveTooltipRows, } from './series.js';
18
18
  export { ResponsiveChart, type ResponsiveChartProps } from './primitives/ResponsiveChart.js';
19
19
  export { ChartFrame, type ChartFrameProps, type ChartFrameLegend } from './primitives/ChartFrame.js';
20
+ export { ChartCenter, type ChartCenterProps, ChartPending, type ChartPendingProps, } from './primitives/ChartPending.js';
20
21
  export { Crosshair, SeriesDot } from './primitives/Crosshair.js';
21
22
  export { ChartCard } from './primitives/ChartCard.js';
22
23
  export { ChartLegend, type LegendEntry } from './primitives/ChartLegend.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/charts/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/charts/index.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,10 @@ import {
15
15
  } from "./series.js";
16
16
  import { ResponsiveChart } from "./primitives/ResponsiveChart.js";
17
17
  import { ChartFrame } from "./primitives/ChartFrame.js";
18
+ import {
19
+ ChartCenter,
20
+ ChartPending
21
+ } from "./primitives/ChartPending.js";
18
22
  import { Crosshair, SeriesDot } from "./primitives/Crosshair.js";
19
23
  import { ChartCard } from "./primitives/ChartCard.js";
20
24
  import { ChartLegend } from "./primitives/ChartLegend.js";
@@ -71,9 +75,11 @@ export {
71
75
  BarStack,
72
76
  Bars,
73
77
  ChartCard,
78
+ ChartCenter,
74
79
  ChartFrame,
75
80
  ChartHoverSync,
76
81
  ChartLegend,
82
+ ChartPending,
77
83
  ChartTooltip,
78
84
  Crosshair,
79
85
  DEFAULT_NO_OP_SET_HOVER,
@@ -105,6 +105,8 @@ export type BarsProps<T> = {
105
105
  legend?: ChartLegendConfig | false;
106
106
  /** Accessible text alternative, forwarded to `ChartFrame` as `aria-label` (+ `role="img"`). */
107
107
  ariaLabel?: string;
108
+ /** Forwarded to `ChartFrame` — see `ChartPending`'s JSDoc for the three-state rationale. */
109
+ isPending?: boolean;
108
110
  };
109
111
  /**
110
112
  * Bars on a categorical x-axis with optional stacked negative series, 0–2 line
@@ -1 +1 @@
1
- {"version":3,"file":"Bars.d.ts","sourceRoot":"","sources":["../../../src/charts/kinds/Bars.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Bars.d.ts","sourceRoot":"","sources":["../../../src/charts/kinds/Bars.tsx"],"names":[],"mappings":"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"}
@@ -31,7 +31,8 @@ function BarsInner(props) {
31
31
  chartId,
32
32
  height,
33
33
  legend,
34
- ariaLabel
34
+ ariaLabel,
35
+ isPending
35
36
  } = props;
36
37
  const [highlightedKey, setHighlightedKey] = useState(null);
37
38
  const barSeries = useMemo(
@@ -70,6 +71,7 @@ function BarsInner(props) {
70
71
  chartId,
71
72
  ...height !== void 0 && { height },
72
73
  ...ariaLabel !== void 0 && { ariaLabel },
74
+ ...isPending !== void 0 && { isPending },
73
75
  legend: resolveLegend(legend, {
74
76
  highlighted: highlightedKey,
75
77
  onHighlight: setHighlightedKey
@@ -46,6 +46,8 @@ export type DonutProps<K extends string = SeriesKey> = {
46
46
  padAngle?: number;
47
47
  /** Accessible text alternative, forwarded to `ChartFrame` as `aria-label` (+ `role="img"`). */
48
48
  ariaLabel?: string;
49
+ /** Forwarded to `ChartFrame` — see `ChartPending`'s JSDoc for the three-state rationale. */
50
+ isPending?: boolean;
49
51
  };
50
52
  /**
51
53
  * Radial slice-share chart with a punched-out center label. Composes `ChartFrame` for a
@@ -1 +1 @@
1
- {"version":3,"file":"Donut.d.ts","sourceRoot":"","sources":["../../../src/charts/kinds/Donut.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAMtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE/C;;;;GAIG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,SAAS,IAAI;IAAE,GAAG,EAAE,CAAC,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAEhF,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,SAAS,IAAI;IACrD,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAA;IACrB,mFAAmF;IACnF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,CAAA;IAC/B,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;IAClC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;IACrC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,aAAa,CAAC,EAAE,SAAS,CAAA;IACzB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,+FAA+F;IAC/F,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED;;;;;;;GAOG;AACH,iBAAS,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,+BAmBrE;AAgJD;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAuB,OAAO,UAAU,CAAA"}
1
+ {"version":3,"file":"Donut.d.ts","sourceRoot":"","sources":["../../../src/charts/kinds/Donut.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAMtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE/C;;;;GAIG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,SAAS,IAAI;IAAE,GAAG,EAAE,CAAC,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAEhF,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,SAAS,IAAI;IACrD,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAA;IACrB,mFAAmF;IACnF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,CAAA;IAC/B,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;IAClC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;IACrC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,aAAa,CAAC,EAAE,SAAS,CAAA;IACzB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,+FAA+F;IAC/F,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,4FAA4F;IAC5F,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAED;;;;;;;GAOG;AACH,iBAAS,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,+BAoBrE;AAmJD;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAuB,OAAO,UAAU,CAAA"}
@@ -7,7 +7,7 @@ import { ChartFrame } from "../primitives/ChartFrame.js";
7
7
  import { useChartTooltip } from "../hooks/useChartTooltip.js";
8
8
  import { VX } from "../../tokens/index.js";
9
9
  function DonutInner(props) {
10
- const { data, height, colorForKey, seriesLabel = (k) => k, ariaLabel } = props;
10
+ const { data, height, colorForKey, seriesLabel = (k) => k, ariaLabel, isPending } = props;
11
11
  const series = data.map((d) => ({
12
12
  key: d.key,
13
13
  label: seriesLabel(d.key),
@@ -20,6 +20,7 @@ function DonutInner(props) {
20
20
  series,
21
21
  ...height !== void 0 && { height },
22
22
  ...ariaLabel !== void 0 && { ariaLabel },
23
+ ...isPending !== void 0 && { isPending },
23
24
  children: (plot) => /* @__PURE__ */ jsx(DonutPlot, { ...props, plot })
24
25
  }
25
26
  );
@@ -63,13 +64,16 @@ function DonutPlot(props) {
63
64
  return /* @__PURE__ */ jsx(
64
65
  "g",
65
66
  {
66
- onMouseEnter: (event) => {
67
+ onPointerEnter: (event) => {
67
68
  show(arc.data, event);
68
69
  },
69
- onMouseMove: (event) => {
70
+ onPointerMove: (event) => {
70
71
  show(arc.data, event);
71
72
  },
72
- onMouseLeave: () => {
73
+ onPointerLeave: () => {
74
+ hide();
75
+ },
76
+ onPointerCancel: () => {
73
77
  hide();
74
78
  },
75
79
  style: { cursor: "pointer" },
@@ -44,6 +44,8 @@ export type DualPanelProps<T> = {
44
44
  legend?: ChartLegendConfig | false;
45
45
  /** Accessible text alternative, forwarded to `ChartFrame` as `aria-label` (+ `role="img"`). */
46
46
  ariaLabel?: string;
47
+ /** Forwarded to `ChartFrame` — see `ChartPending`'s JSDoc for the three-state rationale. */
48
+ isPending?: boolean;
47
49
  };
48
50
  /**
49
51
  * Dual-pane chart: a top line pane and a bottom signed-histogram pane sharing
@@ -1 +1 @@
1
- {"version":3,"file":"DualPanel.d.ts","sourceRoot":"","sources":["../../../src/charts/kinds/DualPanel.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAGvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAe,MAAM,WAAW,CAAA;AAI5E,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;IAC9B,IAAI,EAAE,CAAC,EAAE,CAAA;IACT,mFAAmF;IACnF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAA;IACtB;8DAC0D;IAC1D,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAA;IACxB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAA;IACtC,2EAA2E;IAC3E,WAAW,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;IACxD,wGAAwG;IACxG,WAAW,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,CAAA;IAClE,oDAAoD;IACpD,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAA;IACrB,8DAA8D;IAC9D,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,GAAG,IAAI,CAAA;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,gBAAgB,EAAE,MAAM,CAAA;IACxB,gBAAgB,EAAE,MAAM,CAAA;IACxB,6DAA6D;IAC7D,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;IAChC,YAAY,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;IACnC,kEAAkE;IAClE,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;IAC/D;4CACwC;IACxC,MAAM,CAAC,EAAE,iBAAiB,GAAG,KAAK,CAAA;IAClC,+FAA+F;IAC/F,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAID;;;;;;;;;;;GAWG;AACH,iBAAS,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,+BAiClD;AA+TD;;;GAGG;AACH,eAAO,MAAM,SAAS,EAA2B,OAAO,cAAc,CAAA"}
1
+ {"version":3,"file":"DualPanel.d.ts","sourceRoot":"","sources":["../../../src/charts/kinds/DualPanel.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAGvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAe,MAAM,WAAW,CAAA;AAI5E,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;IAC9B,IAAI,EAAE,CAAC,EAAE,CAAA;IACT,mFAAmF;IACnF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAA;IACtB;8DAC0D;IAC1D,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAA;IACxB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAA;IACtC,2EAA2E;IAC3E,WAAW,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;IACxD,wGAAwG;IACxG,WAAW,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,CAAA;IAClE,oDAAoD;IACpD,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAA;IACrB,8DAA8D;IAC9D,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,GAAG,IAAI,CAAA;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,gBAAgB,EAAE,MAAM,CAAA;IACxB,gBAAgB,EAAE,MAAM,CAAA;IACxB,6DAA6D;IAC7D,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;IAChC,YAAY,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;IACnC,kEAAkE;IAClE,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;IAC/D;4CACwC;IACxC,MAAM,CAAC,EAAE,iBAAiB,GAAG,KAAK,CAAA;IAClC,+FAA+F;IAC/F,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,4FAA4F;IAC5F,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAID;;;;;;;;;;;GAWG;AACH,iBAAS,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,+BAmClD;AA+TD;;;GAGG;AACH,eAAO,MAAM,SAAS,EAA2B,OAAO,cAAc,CAAA"}
@@ -24,7 +24,7 @@ import { VX } from "../../tokens/index.js";
24
24
  import { smartTicks } from "../utils/ticks.js";
25
25
  const PANE_GAP = 12;
26
26
  function DualPanelInner(props) {
27
- const { series, chartId, height, barLabel, barColorPositive, legend, ariaLabel } = props;
27
+ const { series, chartId, height, barLabel, barColorPositive, legend, ariaLabel, isPending } = props;
28
28
  const styledSeries = useMemo(
29
29
  () => series.map((s) => ({ ...s, strokeWidth: s.strokeWidth ?? LINE_OVERLAY_STROKE_WIDTH })),
30
30
  [series]
@@ -43,6 +43,7 @@ function DualPanelInner(props) {
43
43
  chartId,
44
44
  ...height !== void 0 && { height },
45
45
  ...ariaLabel !== void 0 && { ariaLabel },
46
+ ...isPending !== void 0 && { isPending },
46
47
  legend: resolveLegend(legend),
47
48
  children: (plot) => /* @__PURE__ */ jsx(DualPanelPlot, { ...props, series: styledSeries, plot })
48
49
  }
@@ -41,6 +41,14 @@ export type HeatmapProps<T> = {
41
41
  min: string;
42
42
  max: string;
43
43
  };
44
+ /**
45
+ * The query behind this chart hasn't resolved yet. Renders `ChartPending` (see its JSDoc for the
46
+ * three-state rationale) over the full `width` × `height` box in place of the grid, suppressing
47
+ * the legend strip and every cell/label/tooltip along with it. Unlike the other six kinds,
48
+ * `Heatmap` doesn't compose `ChartFrame` (it takes `width`/`height` directly rather than
49
+ * measuring), so this is handled locally instead of forwarded.
50
+ */
51
+ isPending?: boolean;
44
52
  };
45
53
  /**
46
54
  * Category × category intensity grid. Each cell is a rounded rect filled with the base
@@ -1 +1 @@
1
- {"version":3,"file":"Heatmap.d.ts","sourceRoot":"","sources":["../../../src/charts/kinds/Heatmap.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAYtC,kFAAkF;AAClF,KAAK,WAAW,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAE9D,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI;IAC5B,IAAI,EAAE,CAAC,EAAE,CAAA;IACT,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,4DAA4D;IAC5D,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAA;IACxB,+DAA+D;IAC/D,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAA;IACxB,yCAAyC;IACzC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAA;IAC1B,+DAA+D;IAC/D,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,kEAAkE;IAClE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,2DAA2D;IAC3D,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;IAClD,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,uCAAuC;IACvC,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;IACnC,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;IAClC,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;IAClC,iEAAiE;IACjE,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,SAAS,CAAA;IAChD,2EAA2E;IAC3E,MAAM,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;CACtC,CAAA;AAgCD;;;;;;GAMG;AACH,iBAAS,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,+BAgK9C;AAED;;;GAGG;AACH,eAAO,MAAM,OAAO,EAAyB,OAAO,YAAY,CAAA"}
1
+ {"version":3,"file":"Heatmap.d.ts","sourceRoot":"","sources":["../../../src/charts/kinds/Heatmap.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAatC,kFAAkF;AAClF,KAAK,WAAW,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAE9D,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI;IAC5B,IAAI,EAAE,CAAC,EAAE,CAAA;IACT,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,4DAA4D;IAC5D,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAA;IACxB,+DAA+D;IAC/D,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAA;IACxB,yCAAyC;IACzC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAA;IAC1B,+DAA+D;IAC/D,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,kEAAkE;IAClE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,2DAA2D;IAC3D,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;IAClD,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,uCAAuC;IACvC,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;IACnC,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;IAClC,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;IAClC,iEAAiE;IACjE,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,SAAS,CAAA;IAChD,2EAA2E;IAC3E,MAAM,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;IACrC;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAgCD;;;;;;GAMG;AACH,iBAAS,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,+BAwK9C;AAED;;;GAGG;AACH,eAAO,MAAM,OAAO,EAAyB,OAAO,YAAY,CAAA"}
@@ -8,6 +8,7 @@ import {
8
8
  TooltipRow,
9
9
  useTooltipStyles
10
10
  } from "../primitives/ChartTooltip.js";
11
+ import { ChartPending } from "../primitives/ChartPending.js";
11
12
  import { useChartTooltip } from "../hooks/useChartTooltip.js";
12
13
  import { VX, alpha } from "../../tokens/index.js";
13
14
  function firstSeen(data, get) {
@@ -48,7 +49,8 @@ function HeatmapInner(props) {
48
49
  rowLabel = (r) => r,
49
50
  colLabel = (c) => c,
50
51
  renderTooltip,
51
- legend
52
+ legend,
53
+ isPending
52
54
  } = props;
53
55
  const tooltipStyles = useTooltipStyles();
54
56
  const { tip, show, hide, tooltipRef } = useChartTooltip();
@@ -64,6 +66,7 @@ function HeatmapInner(props) {
64
66
  }
65
67
  return { lookup: map, max: m };
66
68
  }, [data, getRow, getCol, getValue]);
69
+ if (isPending) return /* @__PURE__ */ jsx(ChartPending, { width, height });
67
70
  const legendH = legend ? LEGEND_H + LEGEND_LABEL_H : 0;
68
71
  const gridW = Math.max(0, width - PAD_LEFT);
69
72
  const gridH = Math.max(0, height - PAD_TOP - PAD_BOTTOM - legendH);
@@ -87,8 +90,9 @@ function HeatmapInner(props) {
87
90
  rx: cellRadius,
88
91
  fill,
89
92
  style: { cursor: has ? "pointer" : "default" },
90
- onMouseMove: (e) => has && show({ row, col, value }, e),
91
- onMouseLeave: hide
93
+ onPointerMove: (e) => has && show({ row, col, value }, e),
94
+ onPointerLeave: hide,
95
+ onPointerCancel: hide
92
96
  },
93
97
  cellKey(row, col)
94
98
  );
@@ -50,6 +50,8 @@ export type MultiLineProps<T> = {
50
50
  legend?: ChartLegendConfig | false;
51
51
  /** Accessible text alternative, forwarded to `ChartFrame` as `aria-label` (+ `role="img"`). */
52
52
  ariaLabel?: string;
53
+ /** Forwarded to `ChartFrame` — see `ChartPending`'s JSDoc for the three-state rationale. */
54
+ isPending?: boolean;
53
55
  };
54
56
  /**
55
57
  * N series sharing one y-axis, with optional zones/reference lines, per-point markers
@@ -1 +1 @@
1
- {"version":3,"file":"MultiLine.d.ts","sourceRoot":"","sources":["../../../src/charts/kinds/MultiLine.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAatC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAGvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAK/D,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;IAC9B,IAAI,EAAE,CAAC,EAAE,CAAA;IACT,mFAAmF;IACnF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,oEAAoE;IACpE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAA;IACtB;uBACmB;IACnB,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAA;IACxB,8EAA8E;IAC9E,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAA;IAClC,uDAAuD;IACvD,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;kGAC8F;IAC9F,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;+BAE2B;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,mGAAmG;IACnG,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAA;IAClB,wFAAwF;IACxF,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,CAAA;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,8CAA8C;IAC9C,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;IAClC,sEAAsE;IACtE,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;IACnC,0EAA0E;IAC1E,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;IAC/D,6DAA6D;IAC7D,sBAAsB,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,SAAS,CAAA;IAC5C,4DAA4D;IAC5D,WAAW,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAA;IAC/B;4CACwC;IACxC,MAAM,CAAC,EAAE,iBAAiB,GAAG,KAAK,CAAA;IAClC,+FAA+F;IAC/F,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAgBD;;;;;;;;;;;GAWG;AACH,iBAAS,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,+BAgClD;AAkPD;;;GAGG;AACH,eAAO,MAAM,SAAS,EAA2B,OAAO,cAAc,CAAA"}
1
+ {"version":3,"file":"MultiLine.d.ts","sourceRoot":"","sources":["../../../src/charts/kinds/MultiLine.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAatC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAGvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAK/D,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;IAC9B,IAAI,EAAE,CAAC,EAAE,CAAA;IACT,mFAAmF;IACnF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,oEAAoE;IACpE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAA;IACtB;uBACmB;IACnB,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAA;IACxB,8EAA8E;IAC9E,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAA;IAClC,uDAAuD;IACvD,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;kGAC8F;IAC9F,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;+BAE2B;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,mGAAmG;IACnG,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAA;IAClB,wFAAwF;IACxF,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,CAAA;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,8CAA8C;IAC9C,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;IAClC,sEAAsE;IACtE,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;IACnC,0EAA0E;IAC1E,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;IAC/D,6DAA6D;IAC7D,sBAAsB,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,SAAS,CAAA;IAC5C,4DAA4D;IAC5D,WAAW,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAA;IAC/B;4CACwC;IACxC,MAAM,CAAC,EAAE,iBAAiB,GAAG,KAAK,CAAA;IAClC,+FAA+F;IAC/F,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,4FAA4F;IAC5F,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAgBD;;;;;;;;;;;GAWG;AACH,iBAAS,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,+BAiClD;AAkPD;;;GAGG;AACH,eAAO,MAAM,SAAS,EAA2B,OAAO,cAAc,CAAA"}
@@ -34,7 +34,7 @@ function starPath(cx, cy, r) {
34
34
  return `M${pts.join("L")}Z`;
35
35
  }
36
36
  function MultiLineInner(props) {
37
- const { series, chartId, height, legend, ariaLabel } = props;
37
+ const { series, chartId, height, legend, ariaLabel, isPending } = props;
38
38
  const [highlightedKey, setHighlightedKey] = useState(null);
39
39
  const styledSeries = useMemo(
40
40
  () => series.map((s) => ({ ...s, strokeWidth: s.strokeWidth ?? LINE_OVERLAY_STROKE_WIDTH })),
@@ -47,6 +47,7 @@ function MultiLineInner(props) {
47
47
  chartId,
48
48
  ...height !== void 0 && { height },
49
49
  ...ariaLabel !== void 0 && { ariaLabel },
50
+ ...isPending !== void 0 && { isPending },
50
51
  legend: resolveLegend(legend, {
51
52
  highlighted: highlightedKey,
52
53
  onHighlight: setHighlightedKey
@@ -18,6 +18,8 @@ export type StackedAreaProps<T> = {
18
18
  legend?: ChartLegendConfig | false;
19
19
  /** Accessible text alternative, forwarded to `ChartFrame` as `aria-label` (+ `role="img"`). */
20
20
  ariaLabel?: string;
21
+ /** Forwarded to `ChartFrame` — see `ChartPending`'s JSDoc for the three-state rationale. */
22
+ isPending?: boolean;
21
23
  };
22
24
  /**
23
25
  * Multi-series stacked-area chart with an optional derived legend (default on) and legend-hover
@@ -1 +1 @@
1
- {"version":3,"file":"StackedArea.d.ts","sourceRoot":"","sources":["../../../src/charts/kinds/StackedArea.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAI/D,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI;IAChC,IAAI,EAAE,CAAC,EAAE,CAAA;IACT,mFAAmF;IACnF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAA;IACtB;4FACwF;IACxF,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAA;IACxB,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;IAClC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;4CACwC;IACxC,MAAM,CAAC,EAAE,iBAAiB,GAAG,KAAK,CAAA;IAClC,+FAA+F;IAC/F,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED;;;;GAIG;AACH,iBAAS,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,+BAkBtD;AAiJD;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAA6B,OAAO,gBAAgB,CAAA"}
1
+ {"version":3,"file":"StackedArea.d.ts","sourceRoot":"","sources":["../../../src/charts/kinds/StackedArea.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAI/D,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI;IAChC,IAAI,EAAE,CAAC,EAAE,CAAA;IACT,mFAAmF;IACnF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAA;IACtB;4FACwF;IACxF,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAA;IACxB,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;IAClC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;4CACwC;IACxC,MAAM,CAAC,EAAE,iBAAiB,GAAG,KAAK,CAAA;IAClC,+FAA+F;IAC/F,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,4FAA4F;IAC5F,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAED;;;;GAIG;AACH,iBAAS,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,+BAmBtD;AAiJD;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAA6B,OAAO,gBAAgB,CAAA"}
@@ -21,7 +21,7 @@ import { deriveTooltipRows } from "../series.js";
21
21
  import { VX } from "../../tokens/index.js";
22
22
  import { smartTicks, smartTicksEvery } from "../utils/ticks.js";
23
23
  function StackedAreaInner(props) {
24
- const { series, chartId, height, legend, ariaLabel } = props;
24
+ const { series, chartId, height, legend, ariaLabel, isPending } = props;
25
25
  const [highlightedKey, setHighlightedKey] = useState(null);
26
26
  return /* @__PURE__ */ jsx(
27
27
  ChartFrame,
@@ -30,6 +30,7 @@ function StackedAreaInner(props) {
30
30
  chartId,
31
31
  ...height !== void 0 && { height },
32
32
  ...ariaLabel !== void 0 && { ariaLabel },
33
+ ...isPending !== void 0 && { isPending },
33
34
  legend: resolveLegend(legend, {
34
35
  highlighted: highlightedKey,
35
36
  onHighlight: setHighlightedKey
@@ -71,6 +71,8 @@ export type ZonedLineProps<T> = {
71
71
  legend?: ChartLegendConfig | false;
72
72
  /** Accessible text alternative, forwarded to `ChartFrame` as `aria-label` (+ `role="img"`). */
73
73
  ariaLabel?: string;
74
+ /** Forwarded to `ChartFrame` — see `ChartPending`'s JSDoc for the three-state rationale. */
75
+ isPending?: boolean;
74
76
  };
75
77
  /**
76
78
  * Line chart with zone backgrounds, threshold fills, reference lines, and a
@@ -1 +1 @@
1
- {"version":3,"file":"ZonedLine.d.ts","sourceRoot":"","sources":["../../../src/charts/kinds/ZonedLine.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AActC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAGvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAK/D,4FAA4F;AAC5F,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAA;AAEpC,mFAAmF;AACnF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,OAAO,GAAG,OAAO,CAAA;IACvB,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,0EAA0E;AAC1E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,oDAAoD;IACpD,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;IAC9B,IAAI,EAAE,CAAC,EAAE,CAAA;IACT,mFAAmF;IACnF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,oEAAoE;IACpE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAA;IACtB;;wEAEoE;IACpE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAA;IACxB,qEAAqE;IACrE,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAA;IAClC;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;+BAE2B;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,aAAa,EAAE,CAAA;IACvB,UAAU,CAAC,EAAE,kBAAkB,EAAE,CAAA;IACjC,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,uFAAuF;IACvF,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,qBAAqB,GAAG,IAAI,CAAA;IACrD,uCAAuC;IACvC,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;IAClC,iEAAiE;IACjE,sBAAsB,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,SAAS,CAAA;IAC5C;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAC3B;4CACwC;IACxC,MAAM,CAAC,EAAE,iBAAiB,GAAG,KAAK,CAAA;IAClC,+FAA+F;IAC/F,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED;;;;;;;;;;;GAWG;AACH,iBAAS,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,+BAqBlD;AA2MD;;;GAGG;AACH,eAAO,MAAM,SAAS,EAA2B,OAAO,cAAc,CAAA"}
1
+ {"version":3,"file":"ZonedLine.d.ts","sourceRoot":"","sources":["../../../src/charts/kinds/ZonedLine.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AActC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAGvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAK/D,4FAA4F;AAC5F,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAA;AAEpC,mFAAmF;AACnF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,OAAO,GAAG,OAAO,CAAA;IACvB,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,0EAA0E;AAC1E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,oDAAoD;IACpD,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;IAC9B,IAAI,EAAE,CAAC,EAAE,CAAA;IACT,mFAAmF;IACnF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,oEAAoE;IACpE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAA;IACtB;;wEAEoE;IACpE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAA;IACxB,qEAAqE;IACrE,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAA;IAClC;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;+BAE2B;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,aAAa,EAAE,CAAA;IACvB,UAAU,CAAC,EAAE,kBAAkB,EAAE,CAAA;IACjC,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,uFAAuF;IACvF,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,qBAAqB,GAAG,IAAI,CAAA;IACrD,uCAAuC;IACvC,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;IAClC,iEAAiE;IACjE,sBAAsB,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,SAAS,CAAA;IAC5C;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAC3B;4CACwC;IACxC,MAAM,CAAC,EAAE,iBAAiB,GAAG,KAAK,CAAA;IAClC,+FAA+F;IAC/F,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,4FAA4F;IAC5F,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAED;;;;;;;;;;;GAWG;AACH,iBAAS,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,+BAsBlD;AA2MD;;;GAGG;AACH,eAAO,MAAM,SAAS,EAA2B,OAAO,cAAc,CAAA"}
@@ -25,7 +25,7 @@ import { VX } from "../../tokens/index.js";
25
25
  import { padAutoLower } from "../utils/domain.js";
26
26
  import { smartTicks, smartTicksEvery } from "../utils/ticks.js";
27
27
  function ZonedLineInner(props) {
28
- const { series, chartId, height, legend, ariaLabel } = props;
28
+ const { series, chartId, height, legend, ariaLabel, isPending } = props;
29
29
  const styledSeries = useMemo(
30
30
  () => series.map((s) => ({ ...s, strokeWidth: s.strokeWidth ?? LINE_OVERLAY_STROKE_WIDTH })),
31
31
  [series]
@@ -37,6 +37,7 @@ function ZonedLineInner(props) {
37
37
  chartId,
38
38
  ...height !== void 0 && { height },
39
39
  ...ariaLabel !== void 0 && { ariaLabel },
40
+ ...isPending !== void 0 && { isPending },
40
41
  legend: resolveLegend(legend),
41
42
  children: (plot) => /* @__PURE__ */ jsx(ZonedLinePlot, { ...props, series: styledSeries, plot })
42
43
  }