@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.
Files changed (123) hide show
  1. package/dist/cyclonedx/bom.json +1 -1
  2. package/dist/index.js +1 -14710
  3. package/dist/pages/area-chart/area-chart.js +1151 -0
  4. package/dist/pages/area-chart/area-chart.props.js +3 -0
  5. package/dist/pages/bar-chart/bar-chart.js +990 -0
  6. package/dist/pages/bar-chart/bar-chart.props.js +3 -0
  7. package/dist/pages/box-plot/box-plot.js +1585 -0
  8. package/dist/pages/box-plot/box-plot.props.js +3 -0
  9. package/dist/pages/bubble-chart/bubble-chart.js +938 -0
  10. package/dist/pages/bubble-chart/bubble-chart.props.js +3 -0
  11. package/dist/pages/burndown-chart/burndown-chart.js +805 -0
  12. package/dist/pages/burndown-chart/burndown-chart.props.js +3 -0
  13. package/dist/pages/candlestick-chart/candlestick-chart.js +853 -0
  14. package/dist/pages/candlestick-chart/candlestick-chart.props.js +3 -0
  15. package/dist/pages/chart/chart.js +1190 -0
  16. package/dist/pages/chart/chart.props.js +3 -0
  17. package/dist/pages/chord-diagram/chord-diagram.js +891 -0
  18. package/dist/pages/chord-diagram/chord-diagram.props.js +3 -0
  19. package/dist/pages/combo-chart/combo-chart.js +873 -0
  20. package/dist/pages/combo-chart/combo-chart.props.js +3 -0
  21. package/dist/pages/distribution-chart/distribution-chart.js +1066 -0
  22. package/dist/pages/distribution-chart/distribution-chart.props.js +3 -0
  23. package/dist/pages/donut-chart/donut-chart.js +726 -0
  24. package/dist/pages/donut-chart/donut-chart.props.js +3 -0
  25. package/dist/pages/funnel-chart/funnel-chart.js +1094 -0
  26. package/dist/pages/funnel-chart/funnel-chart.props.js +3 -0
  27. package/dist/pages/gauge-chart/gauge-chart.js +767 -0
  28. package/dist/pages/gauge-chart/gauge-chart.props.js +3 -0
  29. package/dist/pages/heatmap/heatmap.js +1967 -0
  30. package/dist/pages/heatmap/heatmap.props.js +3 -0
  31. package/dist/pages/histogram-chart/histogram-chart.js +768 -0
  32. package/dist/pages/histogram-chart/histogram-chart.props.js +3 -0
  33. package/dist/pages/horizontal-bar-chart/horizontal-bar-chart.js +701 -0
  34. package/dist/pages/horizontal-bar-chart/horizontal-bar-chart.props.js +3 -0
  35. package/dist/pages/line-chart/line-chart.js +1882 -0
  36. package/dist/pages/line-chart/line-chart.props.js +3 -0
  37. package/dist/pages/pages.json +393 -0
  38. package/dist/pages/pareto-chart/pareto-chart.js +669 -0
  39. package/dist/pages/pareto-chart/pareto-chart.props.js +3 -0
  40. package/dist/pages/percent-stacked-bar/percent-stacked-bar.js +662 -0
  41. package/dist/pages/percent-stacked-bar/percent-stacked-bar.props.js +3 -0
  42. package/dist/pages/pie-chart/pie-chart.js +1007 -0
  43. package/dist/pages/pie-chart/pie-chart.props.js +3 -0
  44. package/dist/pages/polar-area-chart/polar-area-chart.js +812 -0
  45. package/dist/pages/polar-area-chart/polar-area-chart.props.js +3 -0
  46. package/dist/pages/radar-chart/radar-chart.js +1101 -0
  47. package/dist/pages/radar-chart/radar-chart.props.js +3 -0
  48. package/dist/pages/radial-bar-chart/radial-bar-chart.js +766 -0
  49. package/dist/pages/radial-bar-chart/radial-bar-chart.props.js +3 -0
  50. package/dist/pages/range-chart/range-chart.js +914 -0
  51. package/dist/pages/range-chart/range-chart.props.js +3 -0
  52. package/dist/pages/regression-overlay/regression-overlay.js +494 -0
  53. package/dist/pages/regression-overlay/regression-overlay.props.js +3 -0
  54. package/dist/pages/sankey-chart/sankey-chart.js +700 -0
  55. package/dist/pages/sankey-chart/sankey-chart.props.js +3 -0
  56. package/dist/pages/scatter-plot/scatter-plot.js +1248 -0
  57. package/dist/pages/scatter-plot/scatter-plot.props.js +3 -0
  58. package/dist/pages/sparkbar/sparkbar.js +629 -0
  59. package/dist/pages/sparkbar/sparkbar.props.js +3 -0
  60. package/dist/pages/sparkline/sparkline.js +960 -0
  61. package/dist/pages/sparkline/sparkline.props.js +3 -0
  62. package/dist/pages/spend-5xQ76WSj.js +185 -0
  63. package/dist/pages/stacked-area-chart/stacked-area-chart.js +912 -0
  64. package/dist/pages/stacked-area-chart/stacked-area-chart.props.js +3 -0
  65. package/dist/pages/stacked-bar-chart/stacked-bar-chart.js +722 -0
  66. package/dist/pages/stacked-bar-chart/stacked-bar-chart.props.js +3 -0
  67. package/dist/pages/step-line-chart/step-line-chart.js +573 -0
  68. package/dist/pages/step-line-chart/step-line-chart.props.js +3 -0
  69. package/dist/pages/stream-graph/stream-graph.js +1662 -0
  70. package/dist/pages/stream-graph/stream-graph.props.js +3 -0
  71. package/dist/pages/sunburst-chart/sunburst-chart.js +1051 -0
  72. package/dist/pages/sunburst-chart/sunburst-chart.props.js +3 -0
  73. package/dist/pages/timeline-chart/timeline-chart.js +1124 -0
  74. package/dist/pages/timeline-chart/timeline-chart.props.js +3 -0
  75. package/dist/pages/treemap-chart/treemap-chart.js +904 -0
  76. package/dist/pages/treemap-chart/treemap-chart.props.js +3 -0
  77. package/dist/pages/violin-plot/violin-plot.js +1303 -0
  78. package/dist/pages/violin-plot/violin-plot.props.js +3 -0
  79. package/dist/pages/visitors-oFFVcbIZ.js +248 -0
  80. package/dist/pages/waterfall-chart/waterfall-chart.js +1195 -0
  81. package/dist/pages/waterfall-chart/waterfall-chart.props.js +3 -0
  82. package/dist/shared-DVZJ2nST.js +14711 -0
  83. package/dist/theme.js +1 -1
  84. package/locales/en/specimen/area-chart.json +56 -0
  85. package/locales/en/specimen/bar-chart.json +56 -0
  86. package/locales/en/specimen/box-plot.json +65 -0
  87. package/locales/en/specimen/bubble-chart.json +47 -0
  88. package/locales/en/specimen/burndown-chart.json +46 -0
  89. package/locales/en/specimen/candlestick-chart.json +42 -0
  90. package/locales/en/specimen/chart.json +53 -0
  91. package/locales/en/specimen/chord-diagram.json +69 -0
  92. package/locales/en/specimen/combo-chart.json +41 -0
  93. package/locales/en/specimen/distribution-chart.json +47 -0
  94. package/locales/en/specimen/donut-chart.json +63 -0
  95. package/locales/en/specimen/funnel-chart.json +84 -0
  96. package/locales/en/specimen/gauge-chart.json +68 -0
  97. package/locales/en/specimen/heatmap.json +187 -0
  98. package/locales/en/specimen/histogram-chart.json +48 -0
  99. package/locales/en/specimen/horizontal-bar-chart.json +54 -0
  100. package/locales/en/specimen/line-chart.json +106 -0
  101. package/locales/en/specimen/pareto-chart.json +43 -0
  102. package/locales/en/specimen/percent-stacked-bar.json +37 -0
  103. package/locales/en/specimen/pie-chart.json +80 -0
  104. package/locales/en/specimen/polar-area-chart.json +90 -0
  105. package/locales/en/specimen/radar-chart.json +82 -0
  106. package/locales/en/specimen/radial-bar-chart.json +62 -0
  107. package/locales/en/specimen/range-chart.json +42 -0
  108. package/locales/en/specimen/regression-overlay.json +36 -0
  109. package/locales/en/specimen/sankey-chart.json +89 -0
  110. package/locales/en/specimen/scatter-plot.json +88 -0
  111. package/locales/en/specimen/sparkbar.json +51 -0
  112. package/locales/en/specimen/sparkline.json +70 -0
  113. package/locales/en/specimen/stacked-area-chart.json +44 -0
  114. package/locales/en/specimen/stacked-bar-chart.json +34 -0
  115. package/locales/en/specimen/step-line-chart.json +33 -0
  116. package/locales/en/specimen/stream-graph.json +54 -0
  117. package/locales/en/specimen/sunburst-chart.json +110 -0
  118. package/locales/en/specimen/timeline-chart.json +77 -0
  119. package/locales/en/specimen/treemap-chart.json +107 -0
  120. package/locales/en/specimen/violin-plot.json +54 -0
  121. package/locales/en/specimen/waterfall-chart.json +71 -0
  122. package/package.json +8 -7
  123. /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": ""}]};