@stealthscale/component-charts 0.2.2 → 0.2.3
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/dist/cyclonedx/bom.json +1 -1
- package/dist/index.js +1 -14710
- package/dist/pages/area-chart/area-chart.js +1151 -0
- package/dist/pages/area-chart/area-chart.props.js +3 -0
- package/dist/pages/bar-chart/bar-chart.js +990 -0
- package/dist/pages/bar-chart/bar-chart.props.js +3 -0
- package/dist/pages/box-plot/box-plot.js +1585 -0
- package/dist/pages/box-plot/box-plot.props.js +3 -0
- package/dist/pages/bubble-chart/bubble-chart.js +938 -0
- package/dist/pages/bubble-chart/bubble-chart.props.js +3 -0
- package/dist/pages/burndown-chart/burndown-chart.js +805 -0
- package/dist/pages/burndown-chart/burndown-chart.props.js +3 -0
- package/dist/pages/candlestick-chart/candlestick-chart.js +853 -0
- package/dist/pages/candlestick-chart/candlestick-chart.props.js +3 -0
- package/dist/pages/chart/chart.js +1190 -0
- package/dist/pages/chart/chart.props.js +3 -0
- package/dist/pages/chord-diagram/chord-diagram.js +891 -0
- package/dist/pages/chord-diagram/chord-diagram.props.js +3 -0
- package/dist/pages/combo-chart/combo-chart.js +873 -0
- package/dist/pages/combo-chart/combo-chart.props.js +3 -0
- package/dist/pages/distribution-chart/distribution-chart.js +1066 -0
- package/dist/pages/distribution-chart/distribution-chart.props.js +3 -0
- package/dist/pages/donut-chart/donut-chart.js +726 -0
- package/dist/pages/donut-chart/donut-chart.props.js +3 -0
- package/dist/pages/funnel-chart/funnel-chart.js +1094 -0
- package/dist/pages/funnel-chart/funnel-chart.props.js +3 -0
- package/dist/pages/gauge-chart/gauge-chart.js +767 -0
- package/dist/pages/gauge-chart/gauge-chart.props.js +3 -0
- package/dist/pages/heatmap/heatmap.js +1967 -0
- package/dist/pages/heatmap/heatmap.props.js +3 -0
- package/dist/pages/histogram-chart/histogram-chart.js +768 -0
- package/dist/pages/histogram-chart/histogram-chart.props.js +3 -0
- package/dist/pages/horizontal-bar-chart/horizontal-bar-chart.js +701 -0
- package/dist/pages/horizontal-bar-chart/horizontal-bar-chart.props.js +3 -0
- package/dist/pages/line-chart/line-chart.js +1882 -0
- package/dist/pages/line-chart/line-chart.props.js +3 -0
- package/dist/pages/pages.json +393 -0
- package/dist/pages/pareto-chart/pareto-chart.js +669 -0
- package/dist/pages/pareto-chart/pareto-chart.props.js +3 -0
- package/dist/pages/percent-stacked-bar/percent-stacked-bar.js +662 -0
- package/dist/pages/percent-stacked-bar/percent-stacked-bar.props.js +3 -0
- package/dist/pages/pie-chart/pie-chart.js +1007 -0
- package/dist/pages/pie-chart/pie-chart.props.js +3 -0
- package/dist/pages/polar-area-chart/polar-area-chart.js +812 -0
- package/dist/pages/polar-area-chart/polar-area-chart.props.js +3 -0
- package/dist/pages/radar-chart/radar-chart.js +1101 -0
- package/dist/pages/radar-chart/radar-chart.props.js +3 -0
- package/dist/pages/radial-bar-chart/radial-bar-chart.js +766 -0
- package/dist/pages/radial-bar-chart/radial-bar-chart.props.js +3 -0
- package/dist/pages/range-chart/range-chart.js +914 -0
- package/dist/pages/range-chart/range-chart.props.js +3 -0
- package/dist/pages/regression-overlay/regression-overlay.js +494 -0
- package/dist/pages/regression-overlay/regression-overlay.props.js +3 -0
- package/dist/pages/sankey-chart/sankey-chart.js +700 -0
- package/dist/pages/sankey-chart/sankey-chart.props.js +3 -0
- package/dist/pages/scatter-plot/scatter-plot.js +1248 -0
- package/dist/pages/scatter-plot/scatter-plot.props.js +3 -0
- package/dist/pages/sparkbar/sparkbar.js +629 -0
- package/dist/pages/sparkbar/sparkbar.props.js +3 -0
- package/dist/pages/sparkline/sparkline.js +960 -0
- package/dist/pages/sparkline/sparkline.props.js +3 -0
- package/dist/pages/spend-5xQ76WSj.js +185 -0
- package/dist/pages/stacked-area-chart/stacked-area-chart.js +912 -0
- package/dist/pages/stacked-area-chart/stacked-area-chart.props.js +3 -0
- package/dist/pages/stacked-bar-chart/stacked-bar-chart.js +722 -0
- package/dist/pages/stacked-bar-chart/stacked-bar-chart.props.js +3 -0
- package/dist/pages/step-line-chart/step-line-chart.js +573 -0
- package/dist/pages/step-line-chart/step-line-chart.props.js +3 -0
- package/dist/pages/stream-graph/stream-graph.js +1662 -0
- package/dist/pages/stream-graph/stream-graph.props.js +3 -0
- package/dist/pages/sunburst-chart/sunburst-chart.js +1051 -0
- package/dist/pages/sunburst-chart/sunburst-chart.props.js +3 -0
- package/dist/pages/timeline-chart/timeline-chart.js +1124 -0
- package/dist/pages/timeline-chart/timeline-chart.props.js +3 -0
- package/dist/pages/treemap-chart/treemap-chart.js +904 -0
- package/dist/pages/treemap-chart/treemap-chart.props.js +3 -0
- package/dist/pages/violin-plot/violin-plot.js +1303 -0
- package/dist/pages/violin-plot/violin-plot.props.js +3 -0
- package/dist/pages/visitors-oFFVcbIZ.js +248 -0
- package/dist/pages/waterfall-chart/waterfall-chart.js +1195 -0
- package/dist/pages/waterfall-chart/waterfall-chart.props.js +3 -0
- package/dist/shared-DVZJ2nST.js +14711 -0
- package/dist/theme.js +1 -1
- package/locales/en/specimen/area-chart.json +56 -0
- package/locales/en/specimen/bar-chart.json +56 -0
- package/locales/en/specimen/box-plot.json +65 -0
- package/locales/en/specimen/bubble-chart.json +47 -0
- package/locales/en/specimen/burndown-chart.json +46 -0
- package/locales/en/specimen/candlestick-chart.json +42 -0
- package/locales/en/specimen/chart.json +53 -0
- package/locales/en/specimen/chord-diagram.json +69 -0
- package/locales/en/specimen/combo-chart.json +41 -0
- package/locales/en/specimen/distribution-chart.json +47 -0
- package/locales/en/specimen/donut-chart.json +63 -0
- package/locales/en/specimen/funnel-chart.json +84 -0
- package/locales/en/specimen/gauge-chart.json +68 -0
- package/locales/en/specimen/heatmap.json +187 -0
- package/locales/en/specimen/histogram-chart.json +48 -0
- package/locales/en/specimen/horizontal-bar-chart.json +54 -0
- package/locales/en/specimen/line-chart.json +106 -0
- package/locales/en/specimen/pareto-chart.json +43 -0
- package/locales/en/specimen/percent-stacked-bar.json +37 -0
- package/locales/en/specimen/pie-chart.json +80 -0
- package/locales/en/specimen/polar-area-chart.json +90 -0
- package/locales/en/specimen/radar-chart.json +82 -0
- package/locales/en/specimen/radial-bar-chart.json +62 -0
- package/locales/en/specimen/range-chart.json +42 -0
- package/locales/en/specimen/regression-overlay.json +36 -0
- package/locales/en/specimen/sankey-chart.json +89 -0
- package/locales/en/specimen/scatter-plot.json +88 -0
- package/locales/en/specimen/sparkbar.json +51 -0
- package/locales/en/specimen/sparkline.json +70 -0
- package/locales/en/specimen/stacked-area-chart.json +44 -0
- package/locales/en/specimen/stacked-bar-chart.json +34 -0
- package/locales/en/specimen/step-line-chart.json +33 -0
- package/locales/en/specimen/stream-graph.json +54 -0
- package/locales/en/specimen/sunburst-chart.json +110 -0
- package/locales/en/specimen/timeline-chart.json +77 -0
- package/locales/en/specimen/treemap-chart.json +107 -0
- package/locales/en/specimen/violin-plot.json +54 -0
- package/locales/en/specimen/waterfall-chart.json +71 -0
- package/package.json +8 -7
- /package/dist/{recipe-BbGw00ut.js → recipes-BbGw00ut.js} +0 -0
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export const dropped = {"StackedBarChartProps": {"conditions": 284, "foreign": 1039}};
|
|
2
|
+
export const parts = {"StackedBarChartProps": [{"accepts": "boolean", "fallback": "", "kind": "option", "name": "animate", "refers": [], "required": false, "says": "Whether the marks animate in, which they do only outside reduced motion."}, {"accepts": "readonly Annotation[]", "fallback": "", "kind": "option", "name": "annotations", "refers": ["kit.Annotation", "kit.ChartColor"], "required": false, "says": "Marks pinned to the data, a moment, a period or a point each, which the tooltip lists at their category. None unless stated."}, {"accepts": "ReactNode", "fallback": "", "kind": "option", "name": "caption", "refers": ["react.ReactElement", "react.ReactPortal"], "required": false, "says": "Finding the chart shows, in words, which names the figure."}, {"accepts": "Extract<keyof Row, string>", "fallback": "", "kind": "option", "name": "categoryKey", "refers": [], "required": true, "says": "Field of each row the category axis reads, such as a day or a plan."}, {"accepts": "ReactNode", "fallback": "", "kind": "option", "name": "children", "refers": ["react.ReactElement", "react.ReactPortal"], "required": false, "says": "Recharts elements rendered inside the chart after the marks, such as a `ReferenceLine`."}, {"accepts": "Row[]", "fallback": "", "kind": "option", "name": "data", "refers": ["kit.Row"], "required": true, "says": "Rows the chart plots, in order. The array passes to recharts as it is."}, {"accepts": "readonly string[]", "fallback": "", "kind": "option", "name": "defaultHiddenKeys", "refers": [], "required": false, "says": "Keys of the series hidden when the chart first renders, for the uncontrolled case."}, {"accepts": "number", "fallback": "", "kind": "option", "name": "defaultIndex", "refers": [], "required": false, "says": "Index in `data` of the row the tooltip shows when the chart first renders, until the pointer or a key moves it. No tooltip shows at first unless stated."}, {"accepts": "ReactNode", "fallback": "", "kind": "option", "name": "empty", "refers": ["react.ReactElement", "react.ReactPortal"], "required": false, "says": "Message the chart renders in the plot's place while it has no rows."}, {"accepts": "boolean", "fallback": "", "kind": "option", "name": "grid", "refers": [], "required": false, "says": "Whether lines cross the plot at the value ticks."}, {"accepts": "readonly string[]", "fallback": "", "kind": "option", "name": "hiddenKeys", "refers": [], "required": false, "says": "Keys of the series the legend hides, where the caller controls them."}, {"accepts": "string", "fallback": "", "kind": "option", "name": "label", "refers": [], "required": true, "says": "Accessible name of the chart's keyboard layer, such as \"Revenue per day\"."}, {"accepts": "DateTimeFormatOptions", "fallback": "", "kind": "option", "name": "labelOptions", "refers": [], "required": false, "says": "`Intl.DateTimeFormat` options the category ticks and the tooltip's heading are written with, for a time axis. The category as it is unless stated."}, {"accepts": "boolean", "fallback": "", "kind": "option", "name": "legend", "refers": [], "required": false, "says": "Whether the legend renders below the plot. It renders while two or more series have rows unless stated."}, {"accepts": "string", "fallback": "", "kind": "option", "name": "legendLabel", "refers": [], "required": false, "says": "Accessible name of the legend's group of buttons."}, {"accepts": "string", "fallback": "", "kind": "option", "name": "locale", "refers": [], "required": false, "says": "Locale the values are written in. The locale in scope unless stated."}, {"accepts": "((hidden: readonly string[]) => void)", "fallback": "", "kind": "option", "name": "onHiddenKeysChange", "refers": [], "required": false, "says": "Called with every key hidden after a press in the legend."}, {"accepts": "\"golden\" | \"landscape\" | \"portrait\" | \"rows\" | \"square\" | \"ultrawide\" | \"video\" | \"wide\"", "fallback": "", "kind": "variant", "name": "ratio", "refers": [], "required": false, "says": "Aspect ratio of the plot and of the empty state in its place, one of the theme's ratios, or `rows` for a plot as tall as its rows."}, {"accepts": "readonly CartesianSeries[]", "fallback": "", "kind": "option", "name": "series", "refers": ["kit.CartesianSeries", "kit.ChartColor", "react.ReactElement", "react.ReactPortal"], "required": true, "says": "Series the chart plots, in the order the legend lists them."}, {"accepts": "AxisDomain", "fallback": "", "kind": "option", "name": "valueDomain", "refers": ["recharts.AxisDomain", "recharts.AxisDomainItem", "recharts.NumberDomain"], "required": false, "says": "Domain of the value axis in recharts' terms, such as `[0, 100]`. From zero unless stated."}, {"accepts": "NumberFormatOptions", "fallback": "", "kind": "option", "name": "valueOptions", "refers": [], "required": false, "says": "`Intl.NumberFormat` options the value ticks and the tooltip's values are written with."}]};
|
|
3
|
+
export const shapes = {"kit.Annotation": [{"accepts": "string | number", "name": "at", "says": "Category the mark is at, or the category its period starts at."}, {"accepts": "ChartColor", "name": "color", "says": "Palette of the mark, such as `warning` for a flagged point. The neutral palette unless stated."}, {"accepts": "string", "name": "key", "says": "Identity of the mark, unique among the chart's annotations."}, {"accepts": "string", "name": "label", "says": "Words for the mark, written on the plot and in the tooltip at its category."}, {"accepts": "string | number", "name": "until", "says": "Category the mark's period ends at, which makes the mark a period."}, {"accepts": "number", "name": "value", "says": "Value of the point the mark rings, which makes the mark a point."}], "kit.ChartColor": [{"accepts": "", "name": "\"accent\"", "says": ""}, {"accepts": "", "name": "\"blue\"", "says": ""}, {"accepts": "", "name": "\"cyan\"", "says": ""}, {"accepts": "", "name": "\"error\"", "says": ""}, {"accepts": "", "name": "\"gray\"", "says": ""}, {"accepts": "", "name": "\"green\"", "says": ""}, {"accepts": "", "name": "\"indigo\"", "says": ""}, {"accepts": "", "name": "\"info\"", "says": ""}, {"accepts": "", "name": "\"neutral\"", "says": ""}, {"accepts": "", "name": "\"orange\"", "says": ""}, {"accepts": "", "name": "\"pink\"", "says": ""}, {"accepts": "", "name": "\"primary\"", "says": ""}, {"accepts": "", "name": "\"purple\"", "says": ""}, {"accepts": "", "name": "\"red\"", "says": ""}, {"accepts": "", "name": "\"secondary\"", "says": ""}, {"accepts": "", "name": "\"series.1\"", "says": ""}, {"accepts": "", "name": "\"series.2\"", "says": ""}, {"accepts": "", "name": "\"series.3\"", "says": ""}, {"accepts": "", "name": "\"series.4\"", "says": ""}, {"accepts": "", "name": "\"series.5\"", "says": ""}, {"accepts": "", "name": "\"series.6\"", "says": ""}, {"accepts": "", "name": "\"series.7\"", "says": ""}, {"accepts": "", "name": "\"series.8\"", "says": ""}, {"accepts": "", "name": "\"success\"", "says": ""}, {"accepts": "", "name": "\"teal\"", "says": ""}, {"accepts": "", "name": "\"warning\"", "says": ""}, {"accepts": "", "name": "\"yellow\"", "says": ""}], "react.ReactElement": [{"accepts": "string | JSXElementConstructor<any>", "name": "type", "says": ""}, {"accepts": "unknown", "name": "props", "says": ""}, {"accepts": "string | null", "name": "key", "says": ""}], "react.ReactPortal": [{"accepts": "ReactNode", "name": "children", "says": ""}, {"accepts": "string | JSXElementConstructor<any>", "name": "type", "says": ""}, {"accepts": "unknown", "name": "props", "says": ""}, {"accepts": "string | null", "name": "key", "says": ""}], "kit.CartesianSeries": [{"accepts": "ChartColor", "name": "color", "says": "Palette the series takes its color from. The theme's series color at its position unless stated."}, {"accepts": "boolean", "name": "dashed", "says": "Whether the series' line renders dashed, as a target or a projection does. A series with `previousOf` renders dashed unless stated."}, {"accepts": "string", "name": "previousOf", "says": "Key of the series this series is the earlier period of, such as last week's revenue for this week's. The series takes the neutral palette unless it states a color, and the tooltip writes the change from it after the other series' value."}, {"accepts": "number", "name": "ink", "says": "Share of the ink, `fg`, in percent, the series' color mixes in: 0 keeps the color, 100 is the ink. The mix keeps 3:1 or more against the page. None unless stated."}, {"accepts": "string", "name": "key", "says": "Field of each row the series reads, which a recharts mark takes as its `dataKey`."}, {"accepts": "ReactNode", "name": "label", "says": "Name the tooltip and the legend show. The key unless stated."}], "recharts.AxisDomain": [{"accepts": "", "name": "readonly string[]", "says": ""}, {"accepts": "", "name": "readonly number[]", "says": ""}, {"accepts": "", "name": "([dataMin, dataMax]: NumberDomain, allowDataOverflow: boolean) => NumberDomain", "says": ""}, {"accepts": "", "name": "readonly [AxisDomainItem, AxisDomainItem]", "says": ""}], "recharts.AxisDomainItem": [{"accepts": "", "name": "string", "says": ""}, {"accepts": "", "name": "number", "says": ""}, {"accepts": "", "name": "(d: number) => string | number", "says": ""}]};
|
|
@@ -0,0 +1,573 @@
|
|
|
1
|
+
import { t as __exportAll } from "../../rolldown-runtime-D7D4PA-g.js";
|
|
2
|
+
import { f as StepLineChart } from "../../shared-DVZJ2nST.js";
|
|
3
|
+
import { c } from "react/compiler-runtime";
|
|
4
|
+
import { useState } from "react";
|
|
5
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
import { Room, specimen, useWords } from "@stealthscale/specimen";
|
|
7
|
+
import { RotateCcwIcon } from "lucide-react";
|
|
8
|
+
import { Button } from "@stealthscale/component-actions";
|
|
9
|
+
import { Stack } from "@stealthscale/component-layout";
|
|
10
|
+
//#region src/step-line-chart/examples/idle.example.tsx
|
|
11
|
+
var idle_example_exports = /* @__PURE__ */ __exportAll({
|
|
12
|
+
Idle: () => Idle,
|
|
13
|
+
source: () => source$3
|
|
14
|
+
});
|
|
15
|
+
const READINGS$3 = [];
|
|
16
|
+
function Idle() {
|
|
17
|
+
const $ = c(22);
|
|
18
|
+
const { t } = useWords("step-line-chart");
|
|
19
|
+
let t0;
|
|
20
|
+
if ($[0] !== t) {
|
|
21
|
+
t0 = t("idle.caption");
|
|
22
|
+
$[0] = t;
|
|
23
|
+
$[1] = t0;
|
|
24
|
+
} else t0 = $[1];
|
|
25
|
+
let t1;
|
|
26
|
+
if ($[2] !== t) {
|
|
27
|
+
t1 = t("idle.empty");
|
|
28
|
+
$[2] = t;
|
|
29
|
+
$[3] = t1;
|
|
30
|
+
} else t1 = $[3];
|
|
31
|
+
let t2;
|
|
32
|
+
if ($[4] !== t) {
|
|
33
|
+
t2 = t("replicas.label");
|
|
34
|
+
$[4] = t;
|
|
35
|
+
$[5] = t2;
|
|
36
|
+
} else t2 = $[5];
|
|
37
|
+
let t3;
|
|
38
|
+
if ($[6] !== t) {
|
|
39
|
+
t3 = t("replicas.api");
|
|
40
|
+
$[6] = t;
|
|
41
|
+
$[7] = t3;
|
|
42
|
+
} else t3 = $[7];
|
|
43
|
+
let t4;
|
|
44
|
+
if ($[8] !== t3) {
|
|
45
|
+
t4 = {
|
|
46
|
+
key: "api",
|
|
47
|
+
label: t3
|
|
48
|
+
};
|
|
49
|
+
$[8] = t3;
|
|
50
|
+
$[9] = t4;
|
|
51
|
+
} else t4 = $[9];
|
|
52
|
+
let t5;
|
|
53
|
+
if ($[10] !== t) {
|
|
54
|
+
t5 = t("replicas.worker");
|
|
55
|
+
$[10] = t;
|
|
56
|
+
$[11] = t5;
|
|
57
|
+
} else t5 = $[11];
|
|
58
|
+
let t6;
|
|
59
|
+
if ($[12] !== t5) {
|
|
60
|
+
t6 = {
|
|
61
|
+
key: "worker",
|
|
62
|
+
label: t5
|
|
63
|
+
};
|
|
64
|
+
$[12] = t5;
|
|
65
|
+
$[13] = t6;
|
|
66
|
+
} else t6 = $[13];
|
|
67
|
+
let t7;
|
|
68
|
+
if ($[14] !== t4 || $[15] !== t6) {
|
|
69
|
+
t7 = [t4, t6];
|
|
70
|
+
$[14] = t4;
|
|
71
|
+
$[15] = t6;
|
|
72
|
+
$[16] = t7;
|
|
73
|
+
} else t7 = $[16];
|
|
74
|
+
let t8;
|
|
75
|
+
if ($[17] !== t0 || $[18] !== t1 || $[19] !== t2 || $[20] !== t7) {
|
|
76
|
+
t8 = /* @__PURE__ */ jsx(StepLineChart, {
|
|
77
|
+
caption: t0,
|
|
78
|
+
categoryKey: "at",
|
|
79
|
+
data: READINGS$3,
|
|
80
|
+
empty: t1,
|
|
81
|
+
label: t2,
|
|
82
|
+
series: t7
|
|
83
|
+
});
|
|
84
|
+
$[17] = t0;
|
|
85
|
+
$[18] = t1;
|
|
86
|
+
$[19] = t2;
|
|
87
|
+
$[20] = t7;
|
|
88
|
+
$[21] = t8;
|
|
89
|
+
} else t8 = $[21];
|
|
90
|
+
return t8;
|
|
91
|
+
}
|
|
92
|
+
const source$3 = "import { type ReactElement } from \"react\";\n\nimport { useWords } from \"@stealthscale/specimen\";\n\nimport { StepLineChart } from \"@stealthscale/component-charts\";\n\nconst READINGS: Array<{ api: number; at: string; worker: number }> = [];\n\nexport function Idle(): ReactElement {\n const { t } = useWords(\"step-line-chart\");\n\n return (\n <StepLineChart\n caption={t(\"idle.caption\")}\n categoryKey=\"at\"\n data={READINGS}\n empty={t(\"idle.empty\")}\n label={t(\"replicas.label\")}\n series={[\n { key: \"api\", label: t(\"replicas.api\") },\n { key: \"worker\", label: t(\"replicas.worker\") },\n ]}\n />\n );\n}\n";
|
|
93
|
+
//#endregion
|
|
94
|
+
//#region src/step-line-chart/examples/replay.example.tsx
|
|
95
|
+
var replay_example_exports = /* @__PURE__ */ __exportAll({
|
|
96
|
+
Replay: () => Replay,
|
|
97
|
+
source: () => source$2
|
|
98
|
+
});
|
|
99
|
+
const READINGS$2 = [
|
|
100
|
+
[3, 2],
|
|
101
|
+
[3, 2],
|
|
102
|
+
[5, 2],
|
|
103
|
+
[8, 4],
|
|
104
|
+
[8, 6],
|
|
105
|
+
[8, 6],
|
|
106
|
+
[6, 6],
|
|
107
|
+
[4, 4],
|
|
108
|
+
[4, 2],
|
|
109
|
+
[3, 2]
|
|
110
|
+
].map(([api, worker], index) => ({
|
|
111
|
+
api,
|
|
112
|
+
at: `2026-09-28T${String(12 + Math.floor(index / 6)).padStart(2, "0")}:${String(index % 6 * 10).padStart(2, "0")}:00Z`,
|
|
113
|
+
worker
|
|
114
|
+
}));
|
|
115
|
+
function Replay() {
|
|
116
|
+
const $ = c(36);
|
|
117
|
+
const { t } = useWords("step-line-chart");
|
|
118
|
+
const [run, setRun] = useState(0);
|
|
119
|
+
let t0;
|
|
120
|
+
if ($[0] !== t) {
|
|
121
|
+
t0 = t("replicas.caption");
|
|
122
|
+
$[0] = t;
|
|
123
|
+
$[1] = t0;
|
|
124
|
+
} else t0 = $[1];
|
|
125
|
+
let t1;
|
|
126
|
+
if ($[2] !== t) {
|
|
127
|
+
t1 = t("replicas.label");
|
|
128
|
+
$[2] = t;
|
|
129
|
+
$[3] = t1;
|
|
130
|
+
} else t1 = $[3];
|
|
131
|
+
let t2;
|
|
132
|
+
if ($[4] === Symbol.for("react.memo_cache_sentinel")) {
|
|
133
|
+
t2 = {
|
|
134
|
+
hour: "2-digit",
|
|
135
|
+
hourCycle: "h23",
|
|
136
|
+
minute: "2-digit",
|
|
137
|
+
timeZone: "UTC"
|
|
138
|
+
};
|
|
139
|
+
$[4] = t2;
|
|
140
|
+
} else t2 = $[4];
|
|
141
|
+
let t3;
|
|
142
|
+
if ($[5] !== t) {
|
|
143
|
+
t3 = t("series");
|
|
144
|
+
$[5] = t;
|
|
145
|
+
$[6] = t3;
|
|
146
|
+
} else t3 = $[6];
|
|
147
|
+
let t4;
|
|
148
|
+
if ($[7] !== t) {
|
|
149
|
+
t4 = t("replicas.api");
|
|
150
|
+
$[7] = t;
|
|
151
|
+
$[8] = t4;
|
|
152
|
+
} else t4 = $[8];
|
|
153
|
+
let t5;
|
|
154
|
+
if ($[9] !== t4) {
|
|
155
|
+
t5 = {
|
|
156
|
+
key: "api",
|
|
157
|
+
label: t4
|
|
158
|
+
};
|
|
159
|
+
$[9] = t4;
|
|
160
|
+
$[10] = t5;
|
|
161
|
+
} else t5 = $[10];
|
|
162
|
+
let t6;
|
|
163
|
+
if ($[11] !== t) {
|
|
164
|
+
t6 = t("replicas.worker");
|
|
165
|
+
$[11] = t;
|
|
166
|
+
$[12] = t6;
|
|
167
|
+
} else t6 = $[12];
|
|
168
|
+
let t7;
|
|
169
|
+
if ($[13] !== t6) {
|
|
170
|
+
t7 = {
|
|
171
|
+
key: "worker",
|
|
172
|
+
label: t6
|
|
173
|
+
};
|
|
174
|
+
$[13] = t6;
|
|
175
|
+
$[14] = t7;
|
|
176
|
+
} else t7 = $[14];
|
|
177
|
+
let t8;
|
|
178
|
+
if ($[15] !== t5 || $[16] !== t7) {
|
|
179
|
+
t8 = [t5, t7];
|
|
180
|
+
$[15] = t5;
|
|
181
|
+
$[16] = t7;
|
|
182
|
+
$[17] = t8;
|
|
183
|
+
} else t8 = $[17];
|
|
184
|
+
let t9;
|
|
185
|
+
if ($[18] === Symbol.for("react.memo_cache_sentinel")) {
|
|
186
|
+
t9 = { maximumFractionDigits: 0 };
|
|
187
|
+
$[18] = t9;
|
|
188
|
+
} else t9 = $[18];
|
|
189
|
+
let t10;
|
|
190
|
+
if ($[19] !== run || $[20] !== t0 || $[21] !== t1 || $[22] !== t3 || $[23] !== t8) {
|
|
191
|
+
t10 = /* @__PURE__ */ jsx(StepLineChart, {
|
|
192
|
+
animate: true,
|
|
193
|
+
caption: t0,
|
|
194
|
+
categoryKey: "at",
|
|
195
|
+
data: READINGS$2,
|
|
196
|
+
label: t1,
|
|
197
|
+
labelOptions: t2,
|
|
198
|
+
legendLabel: t3,
|
|
199
|
+
series: t8,
|
|
200
|
+
valueOptions: t9
|
|
201
|
+
}, run);
|
|
202
|
+
$[19] = run;
|
|
203
|
+
$[20] = t0;
|
|
204
|
+
$[21] = t1;
|
|
205
|
+
$[22] = t3;
|
|
206
|
+
$[23] = t8;
|
|
207
|
+
$[24] = t10;
|
|
208
|
+
} else t10 = $[24];
|
|
209
|
+
let t11;
|
|
210
|
+
if ($[25] !== run) {
|
|
211
|
+
t11 = () => {
|
|
212
|
+
setRun(run + 1);
|
|
213
|
+
};
|
|
214
|
+
$[25] = run;
|
|
215
|
+
$[26] = t11;
|
|
216
|
+
} else t11 = $[26];
|
|
217
|
+
let t12;
|
|
218
|
+
if ($[27] === Symbol.for("react.memo_cache_sentinel")) {
|
|
219
|
+
t12 = /* @__PURE__ */ jsx(RotateCcwIcon, {});
|
|
220
|
+
$[27] = t12;
|
|
221
|
+
} else t12 = $[27];
|
|
222
|
+
let t13;
|
|
223
|
+
if ($[28] !== t) {
|
|
224
|
+
t13 = t("replay.replay");
|
|
225
|
+
$[28] = t;
|
|
226
|
+
$[29] = t13;
|
|
227
|
+
} else t13 = $[29];
|
|
228
|
+
let t14;
|
|
229
|
+
if ($[30] !== t11 || $[31] !== t13) {
|
|
230
|
+
t14 = /* @__PURE__ */ jsxs(Button, {
|
|
231
|
+
onClick: t11,
|
|
232
|
+
size: "sm",
|
|
233
|
+
variant: "outline",
|
|
234
|
+
children: [t12, t13]
|
|
235
|
+
});
|
|
236
|
+
$[30] = t11;
|
|
237
|
+
$[31] = t13;
|
|
238
|
+
$[32] = t14;
|
|
239
|
+
} else t14 = $[32];
|
|
240
|
+
let t15;
|
|
241
|
+
if ($[33] !== t10 || $[34] !== t14) {
|
|
242
|
+
t15 = /* @__PURE__ */ jsxs(Stack, {
|
|
243
|
+
align: "flex-start",
|
|
244
|
+
children: [t10, t14]
|
|
245
|
+
});
|
|
246
|
+
$[33] = t10;
|
|
247
|
+
$[34] = t14;
|
|
248
|
+
$[35] = t15;
|
|
249
|
+
} else t15 = $[35];
|
|
250
|
+
return t15;
|
|
251
|
+
}
|
|
252
|
+
const source$2 = "import { type ReactElement, useState } from \"react\";\n\nimport { RotateCcwIcon } from \"lucide-react\";\n\nimport { Button } from \"@stealthscale/component-actions\";\nimport { Stack } from \"@stealthscale/component-layout\";\nimport { useWords } from \"@stealthscale/specimen\";\n\nimport { StepLineChart } from \"@stealthscale/component-charts\";\n\nconst READINGS = [\n [3, 2],\n [3, 2],\n [5, 2],\n [8, 4],\n [8, 6],\n [8, 6],\n [6, 6],\n [4, 4],\n [4, 2],\n [3, 2],\n].map(([api, worker], index) => ({\n api,\n at: `2026-09-28T${String(12 + Math.floor(index / 6)).padStart(2, \"0\")}:${String((index % 6) * 10).padStart(2, \"0\")}:00Z`,\n worker,\n}));\n\nexport function Replay(): ReactElement {\n const { t } = useWords(\"step-line-chart\");\n const [run, setRun] = useState(0);\n\n return (\n <Stack align=\"flex-start\">\n <StepLineChart\n animate\n caption={t(\"replicas.caption\")}\n categoryKey=\"at\"\n data={READINGS}\n key={run}\n label={t(\"replicas.label\")}\n labelOptions={{ hour: \"2-digit\", hourCycle: \"h23\", minute: \"2-digit\", timeZone: \"UTC\" }}\n legendLabel={t(\"series\")}\n series={[\n { key: \"api\", label: t(\"replicas.api\") },\n { key: \"worker\", label: t(\"replicas.worker\") },\n ]}\n valueOptions={{ maximumFractionDigits: 0 }}\n />\n <Button\n onClick={() => {\n setRun(run + 1);\n }}\n size=\"sm\"\n variant=\"outline\"\n >\n <RotateCcwIcon />\n {t(\"replay.replay\")}\n </Button>\n </Stack>\n );\n}\n";
|
|
253
|
+
//#endregion
|
|
254
|
+
//#region src/step-line-chart/examples/replicas.example.tsx
|
|
255
|
+
var replicas_example_exports = /* @__PURE__ */ __exportAll({
|
|
256
|
+
Replicas: () => Replicas,
|
|
257
|
+
source: () => source$1
|
|
258
|
+
});
|
|
259
|
+
const READINGS$1 = [
|
|
260
|
+
[3, 2],
|
|
261
|
+
[3, 2],
|
|
262
|
+
[5, 2],
|
|
263
|
+
[8, 4],
|
|
264
|
+
[8, 6],
|
|
265
|
+
[8, 6],
|
|
266
|
+
[6, 6],
|
|
267
|
+
[4, 4],
|
|
268
|
+
[4, 2],
|
|
269
|
+
[3, 2]
|
|
270
|
+
].map(([api, worker], index) => ({
|
|
271
|
+
api,
|
|
272
|
+
at: `2026-09-28T${String(12 + Math.floor(index / 6)).padStart(2, "0")}:${String(index % 6 * 10).padStart(2, "0")}:00Z`,
|
|
273
|
+
worker
|
|
274
|
+
}));
|
|
275
|
+
function Replicas() {
|
|
276
|
+
const $ = c(24);
|
|
277
|
+
const { t } = useWords("step-line-chart");
|
|
278
|
+
let t0;
|
|
279
|
+
if ($[0] !== t) {
|
|
280
|
+
t0 = t("replicas.caption");
|
|
281
|
+
$[0] = t;
|
|
282
|
+
$[1] = t0;
|
|
283
|
+
} else t0 = $[1];
|
|
284
|
+
let t1;
|
|
285
|
+
if ($[2] !== t) {
|
|
286
|
+
t1 = t("replicas.label");
|
|
287
|
+
$[2] = t;
|
|
288
|
+
$[3] = t1;
|
|
289
|
+
} else t1 = $[3];
|
|
290
|
+
let t2;
|
|
291
|
+
if ($[4] === Symbol.for("react.memo_cache_sentinel")) {
|
|
292
|
+
t2 = {
|
|
293
|
+
hour: "2-digit",
|
|
294
|
+
hourCycle: "h23",
|
|
295
|
+
minute: "2-digit",
|
|
296
|
+
timeZone: "UTC"
|
|
297
|
+
};
|
|
298
|
+
$[4] = t2;
|
|
299
|
+
} else t2 = $[4];
|
|
300
|
+
let t3;
|
|
301
|
+
if ($[5] !== t) {
|
|
302
|
+
t3 = t("series");
|
|
303
|
+
$[5] = t;
|
|
304
|
+
$[6] = t3;
|
|
305
|
+
} else t3 = $[6];
|
|
306
|
+
let t4;
|
|
307
|
+
if ($[7] !== t) {
|
|
308
|
+
t4 = t("replicas.api");
|
|
309
|
+
$[7] = t;
|
|
310
|
+
$[8] = t4;
|
|
311
|
+
} else t4 = $[8];
|
|
312
|
+
let t5;
|
|
313
|
+
if ($[9] !== t4) {
|
|
314
|
+
t5 = {
|
|
315
|
+
key: "api",
|
|
316
|
+
label: t4
|
|
317
|
+
};
|
|
318
|
+
$[9] = t4;
|
|
319
|
+
$[10] = t5;
|
|
320
|
+
} else t5 = $[10];
|
|
321
|
+
let t6;
|
|
322
|
+
if ($[11] !== t) {
|
|
323
|
+
t6 = t("replicas.worker");
|
|
324
|
+
$[11] = t;
|
|
325
|
+
$[12] = t6;
|
|
326
|
+
} else t6 = $[12];
|
|
327
|
+
let t7;
|
|
328
|
+
if ($[13] !== t6) {
|
|
329
|
+
t7 = {
|
|
330
|
+
key: "worker",
|
|
331
|
+
label: t6
|
|
332
|
+
};
|
|
333
|
+
$[13] = t6;
|
|
334
|
+
$[14] = t7;
|
|
335
|
+
} else t7 = $[14];
|
|
336
|
+
let t8;
|
|
337
|
+
if ($[15] !== t5 || $[16] !== t7) {
|
|
338
|
+
t8 = [t5, t7];
|
|
339
|
+
$[15] = t5;
|
|
340
|
+
$[16] = t7;
|
|
341
|
+
$[17] = t8;
|
|
342
|
+
} else t8 = $[17];
|
|
343
|
+
let t9;
|
|
344
|
+
if ($[18] === Symbol.for("react.memo_cache_sentinel")) {
|
|
345
|
+
t9 = { maximumFractionDigits: 0 };
|
|
346
|
+
$[18] = t9;
|
|
347
|
+
} else t9 = $[18];
|
|
348
|
+
let t10;
|
|
349
|
+
if ($[19] !== t0 || $[20] !== t1 || $[21] !== t3 || $[22] !== t8) {
|
|
350
|
+
t10 = /* @__PURE__ */ jsx(StepLineChart, {
|
|
351
|
+
caption: t0,
|
|
352
|
+
categoryKey: "at",
|
|
353
|
+
data: READINGS$1,
|
|
354
|
+
label: t1,
|
|
355
|
+
labelOptions: t2,
|
|
356
|
+
legendLabel: t3,
|
|
357
|
+
series: t8,
|
|
358
|
+
valueOptions: t9
|
|
359
|
+
});
|
|
360
|
+
$[19] = t0;
|
|
361
|
+
$[20] = t1;
|
|
362
|
+
$[21] = t3;
|
|
363
|
+
$[22] = t8;
|
|
364
|
+
$[23] = t10;
|
|
365
|
+
} else t10 = $[23];
|
|
366
|
+
return t10;
|
|
367
|
+
}
|
|
368
|
+
const source$1 = "import { type ReactElement } from \"react\";\n\nimport { useWords } from \"@stealthscale/specimen\";\n\nimport { StepLineChart } from \"@stealthscale/component-charts\";\n\nconst READINGS = [\n [3, 2],\n [3, 2],\n [5, 2],\n [8, 4],\n [8, 6],\n [8, 6],\n [6, 6],\n [4, 4],\n [4, 2],\n [3, 2],\n].map(([api, worker], index) => ({\n api,\n at: `2026-09-28T${String(12 + Math.floor(index / 6)).padStart(2, \"0\")}:${String((index % 6) * 10).padStart(2, \"0\")}:00Z`,\n worker,\n}));\n\nexport function Replicas(): ReactElement {\n const { t } = useWords(\"step-line-chart\");\n\n return (\n <StepLineChart\n caption={t(\"replicas.caption\")}\n categoryKey=\"at\"\n data={READINGS}\n label={t(\"replicas.label\")}\n labelOptions={{ hour: \"2-digit\", hourCycle: \"h23\", minute: \"2-digit\", timeZone: \"UTC\" }}\n legendLabel={t(\"series\")}\n series={[\n { key: \"api\", label: t(\"replicas.api\") },\n { key: \"worker\", label: t(\"replicas.worker\") },\n ]}\n valueOptions={{ maximumFractionDigits: 0 }}\n />\n );\n}\n";
|
|
369
|
+
//#endregion
|
|
370
|
+
//#region src/step-line-chart/examples/scale.example.tsx
|
|
371
|
+
var scale_example_exports = /* @__PURE__ */ __exportAll({
|
|
372
|
+
Scale: () => Scale,
|
|
373
|
+
source: () => source
|
|
374
|
+
});
|
|
375
|
+
const READINGS = [
|
|
376
|
+
[3, 2],
|
|
377
|
+
[3, 2],
|
|
378
|
+
[5, 2],
|
|
379
|
+
[8, 4],
|
|
380
|
+
[8, 6],
|
|
381
|
+
[8, 6],
|
|
382
|
+
[6, 6],
|
|
383
|
+
[4, 4],
|
|
384
|
+
[4, 2],
|
|
385
|
+
[3, 2]
|
|
386
|
+
].map(([api, worker], index) => ({
|
|
387
|
+
api,
|
|
388
|
+
at: `2026-09-28T${String(12 + Math.floor(index / 6)).padStart(2, "0")}:${String(index % 6 * 10).padStart(2, "0")}:00Z`,
|
|
389
|
+
worker
|
|
390
|
+
}));
|
|
391
|
+
function Scale() {
|
|
392
|
+
const $ = c(24);
|
|
393
|
+
const { t } = useWords("step-line-chart");
|
|
394
|
+
let t0;
|
|
395
|
+
if ($[0] !== t) {
|
|
396
|
+
t0 = t("scale.caption");
|
|
397
|
+
$[0] = t;
|
|
398
|
+
$[1] = t0;
|
|
399
|
+
} else t0 = $[1];
|
|
400
|
+
let t1;
|
|
401
|
+
if ($[2] !== t) {
|
|
402
|
+
t1 = t("replicas.label");
|
|
403
|
+
$[2] = t;
|
|
404
|
+
$[3] = t1;
|
|
405
|
+
} else t1 = $[3];
|
|
406
|
+
let t2;
|
|
407
|
+
if ($[4] === Symbol.for("react.memo_cache_sentinel")) {
|
|
408
|
+
t2 = {
|
|
409
|
+
hour: "2-digit",
|
|
410
|
+
hourCycle: "h23",
|
|
411
|
+
minute: "2-digit",
|
|
412
|
+
timeZone: "UTC"
|
|
413
|
+
};
|
|
414
|
+
$[4] = t2;
|
|
415
|
+
} else t2 = $[4];
|
|
416
|
+
let t3;
|
|
417
|
+
if ($[5] !== t) {
|
|
418
|
+
t3 = t("series");
|
|
419
|
+
$[5] = t;
|
|
420
|
+
$[6] = t3;
|
|
421
|
+
} else t3 = $[6];
|
|
422
|
+
let t4;
|
|
423
|
+
if ($[7] !== t) {
|
|
424
|
+
t4 = t("replicas.api");
|
|
425
|
+
$[7] = t;
|
|
426
|
+
$[8] = t4;
|
|
427
|
+
} else t4 = $[8];
|
|
428
|
+
let t5;
|
|
429
|
+
if ($[9] !== t4) {
|
|
430
|
+
t5 = {
|
|
431
|
+
key: "api",
|
|
432
|
+
label: t4
|
|
433
|
+
};
|
|
434
|
+
$[9] = t4;
|
|
435
|
+
$[10] = t5;
|
|
436
|
+
} else t5 = $[10];
|
|
437
|
+
let t6;
|
|
438
|
+
if ($[11] !== t) {
|
|
439
|
+
t6 = t("replicas.worker");
|
|
440
|
+
$[11] = t;
|
|
441
|
+
$[12] = t6;
|
|
442
|
+
} else t6 = $[12];
|
|
443
|
+
let t7;
|
|
444
|
+
if ($[13] !== t6) {
|
|
445
|
+
t7 = {
|
|
446
|
+
key: "worker",
|
|
447
|
+
label: t6
|
|
448
|
+
};
|
|
449
|
+
$[13] = t6;
|
|
450
|
+
$[14] = t7;
|
|
451
|
+
} else t7 = $[14];
|
|
452
|
+
let t8;
|
|
453
|
+
if ($[15] !== t5 || $[16] !== t7) {
|
|
454
|
+
t8 = [t5, t7];
|
|
455
|
+
$[15] = t5;
|
|
456
|
+
$[16] = t7;
|
|
457
|
+
$[17] = t8;
|
|
458
|
+
} else t8 = $[17];
|
|
459
|
+
let t9;
|
|
460
|
+
if ($[18] === Symbol.for("react.memo_cache_sentinel")) {
|
|
461
|
+
t9 = { maximumFractionDigits: 0 };
|
|
462
|
+
$[18] = t9;
|
|
463
|
+
} else t9 = $[18];
|
|
464
|
+
let t10;
|
|
465
|
+
if ($[19] !== t0 || $[20] !== t1 || $[21] !== t3 || $[22] !== t8) {
|
|
466
|
+
t10 = /* @__PURE__ */ jsx(StepLineChart, {
|
|
467
|
+
caption: t0,
|
|
468
|
+
categoryKey: "at",
|
|
469
|
+
data: READINGS,
|
|
470
|
+
defaultIndex: 3,
|
|
471
|
+
label: t1,
|
|
472
|
+
labelOptions: t2,
|
|
473
|
+
legendLabel: t3,
|
|
474
|
+
series: t8,
|
|
475
|
+
valueOptions: t9
|
|
476
|
+
});
|
|
477
|
+
$[19] = t0;
|
|
478
|
+
$[20] = t1;
|
|
479
|
+
$[21] = t3;
|
|
480
|
+
$[22] = t8;
|
|
481
|
+
$[23] = t10;
|
|
482
|
+
} else t10 = $[23];
|
|
483
|
+
return t10;
|
|
484
|
+
}
|
|
485
|
+
const source = "import { type ReactElement } from \"react\";\n\nimport { useWords } from \"@stealthscale/specimen\";\n\nimport { StepLineChart } from \"@stealthscale/component-charts\";\n\nconst READINGS = [\n [3, 2],\n [3, 2],\n [5, 2],\n [8, 4],\n [8, 6],\n [8, 6],\n [6, 6],\n [4, 4],\n [4, 2],\n [3, 2],\n].map(([api, worker], index) => ({\n api,\n at: `2026-09-28T${String(12 + Math.floor(index / 6)).padStart(2, \"0\")}:${String((index % 6) * 10).padStart(2, \"0\")}:00Z`,\n worker,\n}));\n\nexport function Scale(): ReactElement {\n const { t } = useWords(\"step-line-chart\");\n\n return (\n <StepLineChart\n caption={t(\"scale.caption\")}\n categoryKey=\"at\"\n data={READINGS}\n defaultIndex={3}\n label={t(\"replicas.label\")}\n labelOptions={{ hour: \"2-digit\", hourCycle: \"h23\", minute: \"2-digit\", timeZone: \"UTC\" }}\n legendLabel={t(\"series\")}\n series={[\n { key: \"api\", label: t(\"replicas.api\") },\n { key: \"worker\", label: t(\"replicas.worker\") },\n ]}\n valueOptions={{ maximumFractionDigits: 0 }}\n />\n );\n}\n";
|
|
486
|
+
//#endregion
|
|
487
|
+
//#region src/step-line-chart/step-line-chart.specimen.tsx
|
|
488
|
+
/**
|
|
489
|
+
* Catalogue page for the step line chart.
|
|
490
|
+
*
|
|
491
|
+
* @remarks
|
|
492
|
+
* The step line chart has no recipe of its own: the chart's recipe styles its figure, so every
|
|
493
|
+
* scene is hand-written. The scenes render the replicas of two services every 10 minutes, the
|
|
494
|
+
* tooltip open at the API's peak, the steps animated in with a replay, the replicas at a phone's
|
|
495
|
+
* width, and a range without readings. Every scene renders a component from `examples/` and
|
|
496
|
+
* shows that file as its source. The words are keys under `step-line-chart` in
|
|
497
|
+
* `locales/en/specimen/step-line-chart.json`.
|
|
498
|
+
*/
|
|
499
|
+
/**
|
|
500
|
+
* Hand-written scene for the replicas of two services.
|
|
501
|
+
*/
|
|
502
|
+
const steps = {
|
|
503
|
+
about: "step-line-chart.replicas.about",
|
|
504
|
+
draw: () => /* @__PURE__ */ jsx(Room, {
|
|
505
|
+
size: "lg",
|
|
506
|
+
children: /* @__PURE__ */ jsx(Replicas, {})
|
|
507
|
+
}),
|
|
508
|
+
example: replicas_example_exports,
|
|
509
|
+
title: "step-line-chart.replicas.title"
|
|
510
|
+
};
|
|
511
|
+
/**
|
|
512
|
+
* Hand-written scene for the tooltip open at a reading.
|
|
513
|
+
*/
|
|
514
|
+
const tooltip = {
|
|
515
|
+
about: "step-line-chart.scale.about",
|
|
516
|
+
draw: () => /* @__PURE__ */ jsx(Room, {
|
|
517
|
+
size: "lg",
|
|
518
|
+
children: /* @__PURE__ */ jsx(Scale, {})
|
|
519
|
+
}),
|
|
520
|
+
example: scale_example_exports,
|
|
521
|
+
title: "step-line-chart.scale.title"
|
|
522
|
+
};
|
|
523
|
+
/**
|
|
524
|
+
* Hand-written scene for the steps animated in, with a replay.
|
|
525
|
+
*/
|
|
526
|
+
const animated = {
|
|
527
|
+
about: "step-line-chart.replay.about",
|
|
528
|
+
draw: () => /* @__PURE__ */ jsx(Room, {
|
|
529
|
+
size: "lg",
|
|
530
|
+
children: /* @__PURE__ */ jsx(Replay, {})
|
|
531
|
+
}),
|
|
532
|
+
example: replay_example_exports,
|
|
533
|
+
title: "step-line-chart.replay.title"
|
|
534
|
+
};
|
|
535
|
+
/**
|
|
536
|
+
* Hand-written scene for the replicas at a phone's width.
|
|
537
|
+
*/
|
|
538
|
+
const narrow = {
|
|
539
|
+
about: "step-line-chart.narrow.about",
|
|
540
|
+
draw: () => /* @__PURE__ */ jsx(Room, {
|
|
541
|
+
size: "xs",
|
|
542
|
+
children: /* @__PURE__ */ jsx(Replicas, {})
|
|
543
|
+
}),
|
|
544
|
+
example: replicas_example_exports,
|
|
545
|
+
title: "step-line-chart.narrow.title"
|
|
546
|
+
};
|
|
547
|
+
/**
|
|
548
|
+
* Hand-written scene for a range without readings.
|
|
549
|
+
*/
|
|
550
|
+
const empty = {
|
|
551
|
+
about: "step-line-chart.idle.about",
|
|
552
|
+
draw: () => /* @__PURE__ */ jsx(Room, {
|
|
553
|
+
size: "md",
|
|
554
|
+
children: /* @__PURE__ */ jsx(Idle, {})
|
|
555
|
+
}),
|
|
556
|
+
example: idle_example_exports,
|
|
557
|
+
title: "step-line-chart.idle.title"
|
|
558
|
+
};
|
|
559
|
+
var step_line_chart_specimen_default = specimen({
|
|
560
|
+
about: "step-line-chart.about",
|
|
561
|
+
id: "components/charts/step-line-chart",
|
|
562
|
+
imports: "import { StepLineChart } from \"@stealthscale/component-charts\";",
|
|
563
|
+
scenes: [
|
|
564
|
+
steps,
|
|
565
|
+
tooltip,
|
|
566
|
+
animated,
|
|
567
|
+
narrow,
|
|
568
|
+
empty
|
|
569
|
+
],
|
|
570
|
+
title: "step-line-chart.title"
|
|
571
|
+
});
|
|
572
|
+
//#endregion
|
|
573
|
+
export { animated, step_line_chart_specimen_default as default, empty, narrow, steps, tooltip };
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export const dropped = {"StepLineChartProps": {"conditions": 284, "foreign": 1039}};
|
|
2
|
+
export const parts = {"StepLineChartProps": [{"accepts": "boolean", "fallback": "", "kind": "option", "name": "animate", "refers": [], "required": false, "says": "Whether the marks animate in, which they do only outside reduced motion."}, {"accepts": "readonly Annotation[]", "fallback": "", "kind": "option", "name": "annotations", "refers": ["kit.Annotation", "kit.ChartColor"], "required": false, "says": "Marks pinned to the data, a moment, a period or a point each, which the tooltip lists at their category. None unless stated."}, {"accepts": "ReactNode", "fallback": "", "kind": "option", "name": "caption", "refers": ["react.ReactElement", "react.ReactPortal"], "required": false, "says": "Finding the chart shows, in words, which names the figure."}, {"accepts": "Extract<keyof Row, string>", "fallback": "", "kind": "option", "name": "categoryKey", "refers": [], "required": true, "says": "Field of each row the category axis reads, such as a day or a plan."}, {"accepts": "ReactNode", "fallback": "", "kind": "option", "name": "children", "refers": ["react.ReactElement", "react.ReactPortal"], "required": false, "says": "Recharts elements rendered inside the chart after the marks, such as a `ReferenceLine`."}, {"accepts": "Row[]", "fallback": "", "kind": "option", "name": "data", "refers": ["kit.Row"], "required": true, "says": "Rows the chart plots, in order. The array passes to recharts as it is."}, {"accepts": "readonly string[]", "fallback": "", "kind": "option", "name": "defaultHiddenKeys", "refers": [], "required": false, "says": "Keys of the series hidden when the chart first renders, for the uncontrolled case."}, {"accepts": "number", "fallback": "", "kind": "option", "name": "defaultIndex", "refers": [], "required": false, "says": "Index in `data` of the row the tooltip shows when the chart first renders, until the pointer or a key moves it. No tooltip shows at first unless stated."}, {"accepts": "ReactNode", "fallback": "", "kind": "option", "name": "empty", "refers": ["react.ReactElement", "react.ReactPortal"], "required": false, "says": "Message the chart renders in the plot's place while it has no rows."}, {"accepts": "boolean", "fallback": "", "kind": "option", "name": "grid", "refers": [], "required": false, "says": "Whether lines cross the plot at the value ticks."}, {"accepts": "readonly string[]", "fallback": "", "kind": "option", "name": "hiddenKeys", "refers": [], "required": false, "says": "Keys of the series the legend hides, where the caller controls them."}, {"accepts": "string", "fallback": "", "kind": "option", "name": "label", "refers": [], "required": true, "says": "Accessible name of the chart's keyboard layer, such as \"Revenue per day\"."}, {"accepts": "DateTimeFormatOptions", "fallback": "", "kind": "option", "name": "labelOptions", "refers": [], "required": false, "says": "`Intl.DateTimeFormat` options the category ticks and the tooltip's heading are written with, for a time axis. The category as it is unless stated."}, {"accepts": "boolean", "fallback": "", "kind": "option", "name": "legend", "refers": [], "required": false, "says": "Whether the legend renders below the plot. It renders while two or more series have rows unless stated."}, {"accepts": "string", "fallback": "", "kind": "option", "name": "legendLabel", "refers": [], "required": false, "says": "Accessible name of the legend's group of buttons."}, {"accepts": "string", "fallback": "", "kind": "option", "name": "locale", "refers": [], "required": false, "says": "Locale the values are written in. The locale in scope unless stated."}, {"accepts": "((hidden: readonly string[]) => void)", "fallback": "", "kind": "option", "name": "onHiddenKeysChange", "refers": [], "required": false, "says": "Called with every key hidden after a press in the legend."}, {"accepts": "\"golden\" | \"landscape\" | \"portrait\" | \"rows\" | \"square\" | \"ultrawide\" | \"video\" | \"wide\"", "fallback": "", "kind": "variant", "name": "ratio", "refers": [], "required": false, "says": "Aspect ratio of the plot and of the empty state in its place, one of the theme's ratios, or `rows` for a plot as tall as its rows."}, {"accepts": "readonly CartesianSeries[]", "fallback": "", "kind": "option", "name": "series", "refers": ["kit.CartesianSeries", "kit.ChartColor", "react.ReactElement", "react.ReactPortal"], "required": true, "says": "Series the chart plots, in the order the legend lists them."}, {"accepts": "AxisDomain", "fallback": "", "kind": "option", "name": "valueDomain", "refers": ["recharts.AxisDomain", "recharts.AxisDomainItem", "recharts.NumberDomain"], "required": false, "says": "Domain of the value axis in recharts' terms, such as `[0, 100]`. From zero unless stated."}, {"accepts": "NumberFormatOptions", "fallback": "", "kind": "option", "name": "valueOptions", "refers": [], "required": false, "says": "`Intl.NumberFormat` options the value ticks and the tooltip's values are written with."}]};
|
|
3
|
+
export const shapes = {"kit.Annotation": [{"accepts": "string | number", "name": "at", "says": "Category the mark is at, or the category its period starts at."}, {"accepts": "ChartColor", "name": "color", "says": "Palette of the mark, such as `warning` for a flagged point. The neutral palette unless stated."}, {"accepts": "string", "name": "key", "says": "Identity of the mark, unique among the chart's annotations."}, {"accepts": "string", "name": "label", "says": "Words for the mark, written on the plot and in the tooltip at its category."}, {"accepts": "string | number", "name": "until", "says": "Category the mark's period ends at, which makes the mark a period."}, {"accepts": "number", "name": "value", "says": "Value of the point the mark rings, which makes the mark a point."}], "kit.ChartColor": [{"accepts": "", "name": "\"accent\"", "says": ""}, {"accepts": "", "name": "\"blue\"", "says": ""}, {"accepts": "", "name": "\"cyan\"", "says": ""}, {"accepts": "", "name": "\"error\"", "says": ""}, {"accepts": "", "name": "\"gray\"", "says": ""}, {"accepts": "", "name": "\"green\"", "says": ""}, {"accepts": "", "name": "\"indigo\"", "says": ""}, {"accepts": "", "name": "\"info\"", "says": ""}, {"accepts": "", "name": "\"neutral\"", "says": ""}, {"accepts": "", "name": "\"orange\"", "says": ""}, {"accepts": "", "name": "\"pink\"", "says": ""}, {"accepts": "", "name": "\"primary\"", "says": ""}, {"accepts": "", "name": "\"purple\"", "says": ""}, {"accepts": "", "name": "\"red\"", "says": ""}, {"accepts": "", "name": "\"secondary\"", "says": ""}, {"accepts": "", "name": "\"series.1\"", "says": ""}, {"accepts": "", "name": "\"series.2\"", "says": ""}, {"accepts": "", "name": "\"series.3\"", "says": ""}, {"accepts": "", "name": "\"series.4\"", "says": ""}, {"accepts": "", "name": "\"series.5\"", "says": ""}, {"accepts": "", "name": "\"series.6\"", "says": ""}, {"accepts": "", "name": "\"series.7\"", "says": ""}, {"accepts": "", "name": "\"series.8\"", "says": ""}, {"accepts": "", "name": "\"success\"", "says": ""}, {"accepts": "", "name": "\"teal\"", "says": ""}, {"accepts": "", "name": "\"warning\"", "says": ""}, {"accepts": "", "name": "\"yellow\"", "says": ""}], "react.ReactElement": [{"accepts": "string | JSXElementConstructor<any>", "name": "type", "says": ""}, {"accepts": "unknown", "name": "props", "says": ""}, {"accepts": "string | null", "name": "key", "says": ""}], "react.ReactPortal": [{"accepts": "ReactNode", "name": "children", "says": ""}, {"accepts": "string | JSXElementConstructor<any>", "name": "type", "says": ""}, {"accepts": "unknown", "name": "props", "says": ""}, {"accepts": "string | null", "name": "key", "says": ""}], "kit.CartesianSeries": [{"accepts": "ChartColor", "name": "color", "says": "Palette the series takes its color from. The theme's series color at its position unless stated."}, {"accepts": "boolean", "name": "dashed", "says": "Whether the series' line renders dashed, as a target or a projection does. A series with `previousOf` renders dashed unless stated."}, {"accepts": "string", "name": "previousOf", "says": "Key of the series this series is the earlier period of, such as last week's revenue for this week's. The series takes the neutral palette unless it states a color, and the tooltip writes the change from it after the other series' value."}, {"accepts": "number", "name": "ink", "says": "Share of the ink, `fg`, in percent, the series' color mixes in: 0 keeps the color, 100 is the ink. The mix keeps 3:1 or more against the page. None unless stated."}, {"accepts": "string", "name": "key", "says": "Field of each row the series reads, which a recharts mark takes as its `dataKey`."}, {"accepts": "ReactNode", "name": "label", "says": "Name the tooltip and the legend show. The key unless stated."}], "recharts.AxisDomain": [{"accepts": "", "name": "readonly string[]", "says": ""}, {"accepts": "", "name": "readonly number[]", "says": ""}, {"accepts": "", "name": "([dataMin, dataMax]: NumberDomain, allowDataOverflow: boolean) => NumberDomain", "says": ""}, {"accepts": "", "name": "readonly [AxisDomainItem, AxisDomainItem]", "says": ""}], "recharts.AxisDomainItem": [{"accepts": "", "name": "string", "says": ""}, {"accepts": "", "name": "number", "says": ""}, {"accepts": "", "name": "(d: number) => string | number", "says": ""}]};
|