basalt-ui 1.8.0 → 1.10.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.
- package/AGENTS.md +1 -0
- package/CHANGELOG.md +25 -0
- package/README.md +64 -34
- package/agent/rules/basalt-agent.md +49 -6
- package/agent/rules/basalt-charts.md +74 -5
- package/configs/oxlint-plugin.js +279 -0
- package/configs/oxlint-plugin.test.ts +216 -1
- package/configs/oxlint.json +5 -2
- package/dist/agent/use-agent-thread-runs.d.ts.map +1 -1
- package/dist/agent/use-agent-thread-runs.js +1 -0
- package/dist/agent-chat/index.d.ts +4 -3
- package/dist/agent-chat/index.d.ts.map +1 -1
- package/dist/charts/hooks/useHoverSync.d.ts +18 -2
- package/dist/charts/hooks/useHoverSync.d.ts.map +1 -1
- package/dist/charts/hooks/useHoverSync.js +12 -7
- package/dist/charts/index.d.ts +1 -0
- package/dist/charts/index.d.ts.map +1 -1
- package/dist/charts/index.js +6 -0
- package/dist/charts/kinds/Bars.d.ts +2 -0
- package/dist/charts/kinds/Bars.d.ts.map +1 -1
- package/dist/charts/kinds/Bars.js +3 -1
- package/dist/charts/kinds/Donut.d.ts +2 -0
- package/dist/charts/kinds/Donut.d.ts.map +1 -1
- package/dist/charts/kinds/Donut.js +8 -4
- package/dist/charts/kinds/DualPanel.d.ts +2 -0
- package/dist/charts/kinds/DualPanel.d.ts.map +1 -1
- package/dist/charts/kinds/DualPanel.js +2 -1
- package/dist/charts/kinds/Heatmap.d.ts +8 -0
- package/dist/charts/kinds/Heatmap.d.ts.map +1 -1
- package/dist/charts/kinds/Heatmap.js +7 -3
- package/dist/charts/kinds/MultiLine.d.ts +2 -0
- package/dist/charts/kinds/MultiLine.d.ts.map +1 -1
- package/dist/charts/kinds/MultiLine.js +2 -1
- package/dist/charts/kinds/StackedArea.d.ts +2 -0
- package/dist/charts/kinds/StackedArea.d.ts.map +1 -1
- package/dist/charts/kinds/StackedArea.js +2 -1
- package/dist/charts/kinds/ZonedLine.d.ts +2 -0
- package/dist/charts/kinds/ZonedLine.d.ts.map +1 -1
- package/dist/charts/kinds/ZonedLine.js +2 -1
- package/dist/charts/primitives/Axes.d.ts +6 -1
- package/dist/charts/primitives/Axes.d.ts.map +1 -1
- package/dist/charts/primitives/Axes.js +3 -2
- package/dist/charts/primitives/ChartFrame.d.ts +8 -1
- package/dist/charts/primitives/ChartFrame.d.ts.map +1 -1
- package/dist/charts/primitives/ChartFrame.js +8 -4
- package/dist/charts/primitives/ChartPending.d.ts +34 -0
- package/dist/charts/primitives/ChartPending.d.ts.map +1 -0
- package/dist/charts/primitives/ChartPending.js +23 -0
- package/dist/charts/primitives/ChartTooltip.d.ts +5 -2
- package/dist/charts/primitives/ChartTooltip.d.ts.map +1 -1
- package/dist/charts/primitives/ChartTooltip.js +6 -1
- package/dist/charts/primitives/HoverOverlay.d.ts +5 -4
- package/dist/charts/primitives/HoverOverlay.d.ts.map +1 -1
- package/dist/charts/primitives/HoverOverlay.js +4 -2
- package/dist/cli/index.d.ts +55 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +217 -5
- package/dist/dashboard/stat-card.d.ts.map +1 -1
- package/dist/guard/index.d.ts.map +1 -1
- package/dist/guard/index.js +13 -5
- package/dist/surfaces.d.ts +10 -0
- package/dist/surfaces.d.ts.map +1 -1
- package/dist/surfaces.js +21 -0
- package/llms.txt +9 -2
- package/package.json +8 -5
- package/src/agent/ai-sdk-transport.test.ts +269 -0
- package/src/agent/parts.test.ts +261 -0
- package/src/agent/thread.test.ts +147 -0
- package/src/agent/use-agent-stream.test.tsx +231 -0
- package/src/agent/use-agent-thread-runs.resume.test.tsx +261 -0
- package/src/agent/use-agent-thread-runs.test.tsx +398 -0
- package/src/agent/use-agent-thread-runs.ts +7 -1
- package/src/agent/use-agent-thread-runs.wedge.test.tsx +299 -0
- package/src/agent-chat/index.ts +4 -3
- package/src/charts/hooks/useHoverSync.ts +43 -7
- package/src/charts/index.ts +6 -0
- package/src/charts/kinds/Bars.tsx +4 -0
- package/src/charts/kinds/Donut.tsx +10 -4
- package/src/charts/kinds/DualPanel.tsx +5 -1
- package/src/charts/kinds/Heatmap.tsx +19 -2
- package/src/charts/kinds/MultiLine.tsx +4 -1
- package/src/charts/kinds/StackedArea.tsx +4 -1
- package/src/charts/kinds/ZonedLine.tsx +4 -1
- package/src/charts/primitives/Axes.tsx +7 -1
- package/src/charts/primitives/ChartFrame.test.tsx +67 -0
- package/src/charts/primitives/ChartFrame.tsx +17 -4
- package/src/charts/primitives/ChartPending.tsx +59 -0
- package/src/charts/primitives/ChartTooltip.tsx +15 -3
- package/src/charts/primitives/HoverOverlay.tsx +12 -6
- package/src/cli/index.ts +439 -5
- package/src/cli/placement-engine.test.ts +104 -0
- package/src/dashboard/stat-card.test.tsx +5 -3
- package/src/dashboard/stat-card.tsx +12 -0
- package/src/guard/check-source.test.ts +20 -0
- package/src/guard/index.ts +20 -9
- package/src/provider/index.test.tsx +6 -5
- package/src/surfaces.ts +22 -0
- package/src/theme/use-basalt-spacing.test.tsx +7 -4
- package/src/tokens/build-fonts-css.test.ts +3 -2
|
@@ -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(
|
|
30
|
+
for (const d of data) m.set(getKeyRef.current(d), d);
|
|
26
31
|
return m;
|
|
27
|
-
}, [data
|
|
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 =
|
|
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 =
|
|
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,
|
|
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 {
|
package/dist/charts/index.d.ts
CHANGED
|
@@ -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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"}
|
package/dist/charts/index.js
CHANGED
|
@@ -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;
|
|
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
|
-
|
|
67
|
+
onPointerEnter: (event) => {
|
|
67
68
|
show(arc.data, event);
|
|
68
69
|
},
|
|
69
|
-
|
|
70
|
+
onPointerMove: (event) => {
|
|
70
71
|
show(arc.data, event);
|
|
71
72
|
},
|
|
72
|
-
|
|
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;
|
|
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;
|
|
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
|
-
|
|
91
|
-
|
|
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;
|
|
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;
|
|
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;
|
|
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
|
}
|
|
@@ -14,9 +14,14 @@ export declare function AxisRightNumeric({ scale, left, numTicks, tickFormat, }:
|
|
|
14
14
|
tickFormat?: TickFormatter<number>;
|
|
15
15
|
}): import("react").JSX.Element;
|
|
16
16
|
/** Themed bottom date axis — baked-in smartTicks + DD.MM formatting. */
|
|
17
|
-
export declare function AxisBottomDate({ scale, top, tickValues, }: {
|
|
17
|
+
export declare function AxisBottomDate({ scale, top, tickValues, tickFormat, }: {
|
|
18
18
|
scale: AxisScale;
|
|
19
19
|
top: number;
|
|
20
20
|
tickValues: string[];
|
|
21
|
+
/**
|
|
22
|
+
* Defaults to `fmtAxisDate` (DD.MM). Override for a sub-day window, where DD.MM collapses every
|
|
23
|
+
* tick to the same label.
|
|
24
|
+
*/
|
|
25
|
+
tickFormat?: TickFormatter<string>;
|
|
21
26
|
}): import("react").JSX.Element;
|
|
22
27
|
//# sourceMappingURL=Axes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Axes.d.ts","sourceRoot":"","sources":["../../../src/charts/primitives/Axes.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAW1D,oEAAoE;AACpE,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,QAAY,EACZ,UAAU,GACX,EAAE;IACD,KAAK,EAAE,SAAS,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CACnC,+BAgBA;AAED,gFAAgF;AAChF,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,IAAI,EACJ,QAAY,EACZ,UAAU,GACX,EAAE;IACD,KAAK,EAAE,SAAS,CAAA;IAChB,iGAAiG;IACjG,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CACnC,+BAiBA;AAED,wEAAwE;AACxE,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,GAAG,EACH,UAAU,
|
|
1
|
+
{"version":3,"file":"Axes.d.ts","sourceRoot":"","sources":["../../../src/charts/primitives/Axes.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAW1D,oEAAoE;AACpE,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,QAAY,EACZ,UAAU,GACX,EAAE;IACD,KAAK,EAAE,SAAS,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CACnC,+BAgBA;AAED,gFAAgF;AAChF,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,IAAI,EACJ,QAAY,EACZ,UAAU,GACX,EAAE;IACD,KAAK,EAAE,SAAS,CAAA;IAChB,iGAAiG;IACjG,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CACnC,+BAiBA;AAED,wEAAwE;AACxE,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,GAAG,EACH,UAAU,EACV,UAAwB,GACzB,EAAE;IACD,KAAK,EAAE,SAAS,CAAA;IAChB,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB;;;OAGG;IACH,UAAU,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CACnC,+BAiBA"}
|
|
@@ -52,7 +52,8 @@ function AxisRightNumeric({
|
|
|
52
52
|
function AxisBottomDate({
|
|
53
53
|
scale,
|
|
54
54
|
top,
|
|
55
|
-
tickValues
|
|
55
|
+
tickValues,
|
|
56
|
+
tickFormat = fmtAxisDate
|
|
56
57
|
}) {
|
|
57
58
|
return /* @__PURE__ */ jsx(
|
|
58
59
|
AxisBottom,
|
|
@@ -60,7 +61,7 @@ function AxisBottomDate({
|
|
|
60
61
|
top,
|
|
61
62
|
scale,
|
|
62
63
|
tickValues,
|
|
63
|
-
tickFormat
|
|
64
|
+
tickFormat,
|
|
64
65
|
tickLabelProps: {
|
|
65
66
|
fill: VX.faint,
|
|
66
67
|
fontFamily: TICK_FONT_FAMILY,
|
|
@@ -28,6 +28,13 @@ export type ChartFrameProps = {
|
|
|
28
28
|
chartId?: string;
|
|
29
29
|
/** `false` only for the sparkline exemption — every other chart gets a legend by default. */
|
|
30
30
|
legend?: ChartFrameLegend | false;
|
|
31
|
+
/**
|
|
32
|
+
* The query behind this chart hasn't resolved yet. Renders `ChartPending` (see its JSDoc for the
|
|
33
|
+
* three-state "nothing to draw" rationale) over the full plot rect in place of `children`,
|
|
34
|
+
* suppresses the legend entirely (a legend naming a series with nothing yet to point at is its
|
|
35
|
+
* own small lie), and marks the outer container `aria-busy="true"`.
|
|
36
|
+
*/
|
|
37
|
+
isPending?: boolean;
|
|
31
38
|
/**
|
|
32
39
|
* Accessible text alternative for the chart, applied as `aria-label` (+ `role="img"`) on the
|
|
33
40
|
* outer container so screen readers announce something other than an unlabeled graphic. Every
|
|
@@ -66,5 +73,5 @@ export declare function resolveLegend(config: ChartLegendConfig | false | undefi
|
|
|
66
73
|
* Layout-only: it does not know lines from bars (that stays in the kind), so it is not a
|
|
67
74
|
* Recharts god-component. Render the child only when the resolved plot rect is non-empty.
|
|
68
75
|
*/
|
|
69
|
-
export declare function ChartFrame({ series, height, aspectRatio, fill, minWidth, chartId, legend, ariaLabel, children, }: ChartFrameProps): ReactNode;
|
|
76
|
+
export declare function ChartFrame({ series, height, aspectRatio, fill, minWidth, chartId, legend, ariaLabel, isPending, children, }: ChartFrameProps): ReactNode;
|
|
70
77
|
//# sourceMappingURL=ChartFrame.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChartFrame.d.ts","sourceRoot":"","sources":["../../../src/charts/primitives/ChartFrame.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,OAAO,CAAA;AAGrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"ChartFrame.d.ts","sourceRoot":"","sources":["../../../src/charts/primitives/ChartFrame.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,OAAO,CAAA;AAGrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAOhF;0EAC0E;AAC1E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,wBAAwB;IACxB,SAAS,CAAC,EAAE,eAAe,CAAA;IAC3B,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;CAC3C,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,uGAAuG;IACvG,MAAM,EAAE,SAAS,WAAW,EAAE,CAAA;IAC9B,8FAA8F;IAC9F,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,qFAAqF;IACrF,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,uFAAuF;IACvF,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,iGAAiG;IACjG,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,6FAA6F;IAC7F,MAAM,CAAC,EAAE,gBAAgB,GAAG,KAAK,CAAA;IACjC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,oFAAoF;IACpF,QAAQ,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,SAAS,CAAA;CACjE,CAAA;AAcD;oFACoF;AACpF,MAAM,MAAM,qBAAqB,GAAG;IAClC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;CAC1C,CAAA;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,iBAAiB,GAAG,KAAK,GAAG,SAAS,EAC7C,KAAK,CAAC,EAAE,qBAAqB,GAC5B,gBAAgB,GAAG,KAAK,CAQ1B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,MAAM,EACN,WAAW,EACX,IAAY,EACZ,QAA4B,EAC5B,OAAO,EACP,MAAW,EACX,SAAS,EACT,SAAiB,EACjB,QAAQ,GACT,EAAE,eAAe,GAAG,SAAS,CAmD7B"}
|
|
@@ -2,6 +2,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { useChartSize } from "../hooks/useChartSize.js";
|
|
3
3
|
import { deriveLegend } from "../series.js";
|
|
4
4
|
import { ChartLegend } from "./ChartLegend.js";
|
|
5
|
+
import { ChartPending } from "./ChartPending.js";
|
|
5
6
|
const DEFAULT_HEIGHT = 240;
|
|
6
7
|
const DEFAULT_MIN_WIDTH = 200;
|
|
7
8
|
const outerStyle = (fill, vertical) => ({
|
|
@@ -32,20 +33,22 @@ function ChartFrame({
|
|
|
32
33
|
chartId,
|
|
33
34
|
legend = {},
|
|
34
35
|
ariaLabel,
|
|
36
|
+
isPending = false,
|
|
35
37
|
children
|
|
36
38
|
}) {
|
|
37
39
|
const { ref: containerRef, width: containerW, height: containerH } = useChartSize();
|
|
38
40
|
const { ref: legendRef, width: legendW, height: legendH } = useChartSize();
|
|
39
41
|
const placement = legend === false ? "bottom" : legend.placement ?? "bottom";
|
|
40
42
|
const vertical = placement === "left" || placement === "right";
|
|
43
|
+
const legendVisible = legend !== false && !isPending;
|
|
41
44
|
const resolvedHeight = fill ? containerH : aspectRatio !== void 0 ? Math.round(containerW / aspectRatio) : height ?? DEFAULT_HEIGHT;
|
|
42
|
-
const sideLegendWidth =
|
|
43
|
-
const topBottomLegendHeight =
|
|
45
|
+
const sideLegendWidth = legendVisible && vertical ? legendW : 0;
|
|
46
|
+
const topBottomLegendHeight = legendVisible && !vertical ? legendH : 0;
|
|
44
47
|
const plot = {
|
|
45
48
|
width: Math.max(containerW - sideLegendWidth, minWidth),
|
|
46
49
|
height: resolvedHeight - topBottomLegendHeight
|
|
47
50
|
};
|
|
48
|
-
const legendNode = legend === false ? null : /* @__PURE__ */ jsx("div", { ref: legendRef, style: legendWrapperStyle(vertical), children: /* @__PURE__ */ jsx(
|
|
51
|
+
const legendNode = legend === false || isPending ? null : /* @__PURE__ */ jsx("div", { ref: legendRef, style: legendWrapperStyle(vertical), children: /* @__PURE__ */ jsx(
|
|
49
52
|
ChartLegend,
|
|
50
53
|
{
|
|
51
54
|
items: deriveLegend(series),
|
|
@@ -63,9 +66,10 @@ function ChartFrame({
|
|
|
63
66
|
ref: containerRef,
|
|
64
67
|
style: outerStyle(fill, vertical),
|
|
65
68
|
...ariaLabel !== void 0 && { role: "img", "aria-label": ariaLabel },
|
|
69
|
+
...isPending && { "aria-busy": "true" },
|
|
66
70
|
children: [
|
|
67
71
|
legendNode !== null && (placement === "top" || placement === "left") && legendNode,
|
|
68
|
-
plot.width > 0 && plot.height > 0 ?
|
|
72
|
+
plot.width > 0 && plot.height > 0 && (isPending ? /* @__PURE__ */ jsx(ChartPending, { width: plot.width, height: plot.height }) : children(plot)),
|
|
69
73
|
legendNode !== null && (placement === "bottom" || placement === "right") && legendNode
|
|
70
74
|
]
|
|
71
75
|
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
export type ChartCenterProps = {
|
|
3
|
+
width: number;
|
|
4
|
+
height: number;
|
|
5
|
+
children: ReactNode;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Minimal layout primitive: centers `children` inside a `width` × `height` box. Exists because
|
|
9
|
+
* `src/charts/**` cannot import Mantine's `Flex`/`Group`/`Center` (the Mantine-free boundary), so
|
|
10
|
+
* there was previously nothing to reach for when a chart file needed to center something. Not a
|
|
11
|
+
* general layout system — width, height, children, nothing else.
|
|
12
|
+
*/
|
|
13
|
+
export declare function ChartCenter({ width, height, children }: ChartCenterProps): ReactNode;
|
|
14
|
+
export type ChartPendingProps = {
|
|
15
|
+
width: number;
|
|
16
|
+
height: number;
|
|
17
|
+
/** Default `'Loading…'`. */
|
|
18
|
+
label?: string;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* The placeholder for a chart whose data hasn't arrived yet — the third "nothing to draw" state
|
|
22
|
+
* alongside measured-and-empty and measured-and-absent (a real gap in coverage). Collapsing an
|
|
23
|
+
* in-flight query into either of those (the `data ?? []` idiom) densifies it into a fully-hatched
|
|
24
|
+
* "not measured" window: a positive claim that the series WAS watched and carried nothing, when in
|
|
25
|
+
* fact it was never asked. `ChartPending` makes "not asked yet" its own rendered state instead of
|
|
26
|
+
* borrowing one of the other two.
|
|
27
|
+
*
|
|
28
|
+
* Reserves exactly the plot's footprint and draws NOTHING that could be mistaken for a
|
|
29
|
+
* measurement — no axes, no gridlines, no hatching, no data marks — just a faint, static, centered
|
|
30
|
+
* label. No animation: the package's motion doctrine bans looping/pulsing idle motion, so a static
|
|
31
|
+
* reserved box is the correct answer here, not a compromise.
|
|
32
|
+
*/
|
|
33
|
+
export declare function ChartPending({ width, height, label }: ChartPendingProps): ReactNode;
|
|
34
|
+
//# sourceMappingURL=ChartPending.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChartPending.d.ts","sourceRoot":"","sources":["../../../src/charts/primitives/ChartPending.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,OAAO,CAAA;AAGrD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,SAAS,CAAA;CACpB,CAAA;AAUD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,gBAAgB,GAAG,SAAS,CAEpF;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAOD;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAkB,EAAE,EAAE,iBAAiB,GAAG,SAAS,CAMhG"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { VX } from "../../tokens/index.js";
|
|
3
|
+
const centerStyle = (width, height) => ({
|
|
4
|
+
width,
|
|
5
|
+
height,
|
|
6
|
+
display: "flex",
|
|
7
|
+
alignItems: "center",
|
|
8
|
+
justifyContent: "center"
|
|
9
|
+
});
|
|
10
|
+
function ChartCenter({ width, height, children }) {
|
|
11
|
+
return /* @__PURE__ */ jsx("div", { style: centerStyle(width, height), children });
|
|
12
|
+
}
|
|
13
|
+
const labelStyle = {
|
|
14
|
+
color: VX.faint,
|
|
15
|
+
fontSize: VX.text.sm
|
|
16
|
+
};
|
|
17
|
+
function ChartPending({ width, height, label = "Loading\u2026" }) {
|
|
18
|
+
return /* @__PURE__ */ jsx(ChartCenter, { width, height, children: /* @__PURE__ */ jsx("span", { style: labelStyle, children: label }) });
|
|
19
|
+
}
|
|
20
|
+
export {
|
|
21
|
+
ChartCenter,
|
|
22
|
+
ChartPending
|
|
23
|
+
};
|