@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,1101 @@
1
+ import { t as __exportAll } from "../../rolldown-runtime-D7D4PA-g.js";
2
+ import { T as RadarChart } 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/radar-chart/examples/scores.ts
11
+ /**
12
+ * Scores the checkout service out of 10 on five dimensions. Cost is the one score that fell, from 6
13
+ * to 4.
14
+ */
15
+ const SCORECARD = [
16
+ {
17
+ current: 8,
18
+ dimension: "latency",
19
+ previous: 6
20
+ },
21
+ {
22
+ current: 7,
23
+ dimension: "throughput",
24
+ previous: 7
25
+ },
26
+ {
27
+ current: 4,
28
+ dimension: "cost",
29
+ previous: 6
30
+ },
31
+ {
32
+ current: 9,
33
+ dimension: "reliability",
34
+ previous: 8
35
+ },
36
+ {
37
+ current: 6,
38
+ dimension: "coverage",
39
+ previous: 4
40
+ }
41
+ ];
42
+ /**
43
+ * Lists the scorecard's rows with throughput and cost swapped: the same scores in another order of
44
+ * spokes.
45
+ */
46
+ const SWAPPED = [
47
+ {
48
+ current: 8,
49
+ dimension: "latency",
50
+ previous: 6
51
+ },
52
+ {
53
+ current: 4,
54
+ dimension: "cost",
55
+ previous: 6
56
+ },
57
+ {
58
+ current: 7,
59
+ dimension: "throughput",
60
+ previous: 7
61
+ },
62
+ {
63
+ current: 9,
64
+ dimension: "reliability",
65
+ previous: 8
66
+ },
67
+ {
68
+ current: 6,
69
+ dimension: "coverage",
70
+ previous: 4
71
+ }
72
+ ];
73
+ /**
74
+ * Scores three teams out of 10 on the scorecard's dimensions. Identity leads on reliability and
75
+ * coverage, search on latency, and payments on throughput.
76
+ */
77
+ const TEAMS = [
78
+ {
79
+ dimension: "latency",
80
+ identity: 6,
81
+ payments: 7,
82
+ search: 9
83
+ },
84
+ {
85
+ dimension: "throughput",
86
+ identity: 5,
87
+ payments: 8,
88
+ search: 6
89
+ },
90
+ {
91
+ dimension: "cost",
92
+ identity: 8,
93
+ payments: 5,
94
+ search: 7
95
+ },
96
+ {
97
+ dimension: "reliability",
98
+ identity: 10,
99
+ payments: 9,
100
+ search: 7
101
+ },
102
+ {
103
+ dimension: "coverage",
104
+ identity: 9,
105
+ payments: 8,
106
+ search: 5
107
+ }
108
+ ];
109
+ /**
110
+ * Rates the platform team's skills out of 10. Backend is the strongest and design the weakest.
111
+ */
112
+ const SKILLS = [
113
+ {
114
+ level: 8,
115
+ skill: "frontend"
116
+ },
117
+ {
118
+ level: 9,
119
+ skill: "backend"
120
+ },
121
+ {
122
+ level: 5,
123
+ skill: "data"
124
+ },
125
+ {
126
+ level: 6,
127
+ skill: "security"
128
+ },
129
+ {
130
+ level: 3,
131
+ skill: "design"
132
+ },
133
+ {
134
+ level: 7,
135
+ skill: "operations"
136
+ }
137
+ ];
138
+ /**
139
+ * Lists five modules' test coverage in percent. The CLI is the one module under 60%.
140
+ */
141
+ const COVERAGE = [
142
+ {
143
+ covered: 82,
144
+ module: "api"
145
+ },
146
+ {
147
+ covered: 64,
148
+ module: "web"
149
+ },
150
+ {
151
+ covered: 71,
152
+ module: "jobs"
153
+ },
154
+ {
155
+ covered: 90,
156
+ module: "sdk"
157
+ },
158
+ {
159
+ covered: 55,
160
+ module: "cli"
161
+ }
162
+ ];
163
+ //#endregion
164
+ //#region src/radar-chart/examples/coverage.example.tsx
165
+ var coverage_example_exports = /* @__PURE__ */ __exportAll({
166
+ Coverage: () => Coverage,
167
+ source: () => source$7
168
+ });
169
+ function Coverage() {
170
+ const $ = c(17);
171
+ const { t } = useWords("radar-chart");
172
+ let t0;
173
+ if ($[0] !== t) {
174
+ t0 = COVERAGE.map((t1) => {
175
+ const { covered, module } = t1;
176
+ return {
177
+ covered,
178
+ module: t(`modules.${module}`)
179
+ };
180
+ });
181
+ $[0] = t;
182
+ $[1] = t0;
183
+ } else t0 = $[1];
184
+ const rows = t0;
185
+ let t1;
186
+ if ($[2] !== t) {
187
+ t1 = t("coverage.caption");
188
+ $[2] = t;
189
+ $[3] = t1;
190
+ } else t1 = $[3];
191
+ let t2;
192
+ if ($[4] !== t) {
193
+ t2 = t("coverage.label");
194
+ $[4] = t;
195
+ $[5] = t2;
196
+ } else t2 = $[5];
197
+ let t3;
198
+ if ($[6] !== t) {
199
+ t3 = t("coverage.covered");
200
+ $[6] = t;
201
+ $[7] = t3;
202
+ } else t3 = $[7];
203
+ let t4;
204
+ if ($[8] !== t3) {
205
+ t4 = [{
206
+ color: "green",
207
+ key: "covered",
208
+ label: t3
209
+ }];
210
+ $[8] = t3;
211
+ $[9] = t4;
212
+ } else t4 = $[9];
213
+ let t5;
214
+ let t6;
215
+ if ($[10] === Symbol.for("react.memo_cache_sentinel")) {
216
+ t5 = [0, 100];
217
+ t6 = {
218
+ style: "unit",
219
+ unit: "percent"
220
+ };
221
+ $[10] = t5;
222
+ $[11] = t6;
223
+ } else {
224
+ t5 = $[10];
225
+ t6 = $[11];
226
+ }
227
+ let t7;
228
+ if ($[12] !== rows || $[13] !== t1 || $[14] !== t2 || $[15] !== t4) {
229
+ t7 = /* @__PURE__ */ jsx(RadarChart, {
230
+ caption: t1,
231
+ categoryKey: "module",
232
+ data: rows,
233
+ label: t2,
234
+ scale: true,
235
+ series: t4,
236
+ valueDomain: t5,
237
+ valueOptions: t6
238
+ });
239
+ $[12] = rows;
240
+ $[13] = t1;
241
+ $[14] = t2;
242
+ $[15] = t4;
243
+ $[16] = t7;
244
+ } else t7 = $[16];
245
+ return t7;
246
+ }
247
+ const source$7 = "import { type ReactElement } from \"react\";\n\nimport { useWords } from \"@stealthscale/specimen\";\n\nimport { RadarChart } from \"@stealthscale/component-charts\";\n\nimport { COVERAGE } from \"./scores.ts\";\n\nexport function Coverage(): ReactElement {\n const { t } = useWords(\"radar-chart\");\n const rows = COVERAGE.map(({ covered, module }) => ({ covered, module: t(`modules.${module}`) }));\n\n return (\n <RadarChart\n caption={t(\"coverage.caption\")}\n categoryKey=\"module\"\n data={rows}\n label={t(\"coverage.label\")}\n scale\n series={[{ color: \"green\", key: \"covered\", label: t(\"coverage.covered\") }]}\n valueDomain={[0, 100]}\n valueOptions={{ style: \"unit\", unit: \"percent\" }}\n />\n );\n}\n";
248
+ //#endregion
249
+ //#region src/radar-chart/examples/drop.example.tsx
250
+ var drop_example_exports = /* @__PURE__ */ __exportAll({
251
+ Drop: () => Drop,
252
+ source: () => source$6
253
+ });
254
+ function Drop() {
255
+ const $ = c(23);
256
+ const { t } = useWords("radar-chart");
257
+ let t0;
258
+ if ($[0] !== t) {
259
+ t0 = SCORECARD.map((t1) => {
260
+ const { current, dimension, previous } = t1;
261
+ return {
262
+ current,
263
+ dimension: t(`dimensions.${dimension}`),
264
+ previous
265
+ };
266
+ });
267
+ $[0] = t;
268
+ $[1] = t0;
269
+ } else t0 = $[1];
270
+ const rows = t0;
271
+ let t1;
272
+ if ($[2] !== t) {
273
+ t1 = t("drop.caption");
274
+ $[2] = t;
275
+ $[3] = t1;
276
+ } else t1 = $[3];
277
+ let t2;
278
+ if ($[4] !== t) {
279
+ t2 = t("scorecard.label");
280
+ $[4] = t;
281
+ $[5] = t2;
282
+ } else t2 = $[5];
283
+ let t3;
284
+ if ($[6] !== t) {
285
+ t3 = t("current");
286
+ $[6] = t;
287
+ $[7] = t3;
288
+ } else t3 = $[7];
289
+ let t4;
290
+ if ($[8] !== t3) {
291
+ t4 = {
292
+ key: "current",
293
+ label: t3
294
+ };
295
+ $[8] = t3;
296
+ $[9] = t4;
297
+ } else t4 = $[9];
298
+ let t5;
299
+ if ($[10] !== t) {
300
+ t5 = t("previous");
301
+ $[10] = t;
302
+ $[11] = t5;
303
+ } else t5 = $[11];
304
+ let t6;
305
+ if ($[12] !== t5) {
306
+ t6 = {
307
+ key: "previous",
308
+ label: t5
309
+ };
310
+ $[12] = t5;
311
+ $[13] = t6;
312
+ } else t6 = $[13];
313
+ let t7;
314
+ if ($[14] !== t4 || $[15] !== t6) {
315
+ t7 = [t4, t6];
316
+ $[14] = t4;
317
+ $[15] = t6;
318
+ $[16] = t7;
319
+ } else t7 = $[16];
320
+ let t8;
321
+ if ($[17] === Symbol.for("react.memo_cache_sentinel")) {
322
+ t8 = [0, 10];
323
+ $[17] = t8;
324
+ } else t8 = $[17];
325
+ let t9;
326
+ if ($[18] !== rows || $[19] !== t1 || $[20] !== t2 || $[21] !== t7) {
327
+ t9 = /* @__PURE__ */ jsx(RadarChart, {
328
+ caption: t1,
329
+ categoryKey: "dimension",
330
+ data: rows,
331
+ defaultIndex: 2,
332
+ label: t2,
333
+ series: t7,
334
+ valueDomain: t8
335
+ });
336
+ $[18] = rows;
337
+ $[19] = t1;
338
+ $[20] = t2;
339
+ $[21] = t7;
340
+ $[22] = t9;
341
+ } else t9 = $[22];
342
+ return t9;
343
+ }
344
+ const source$6 = "import { type ReactElement } from \"react\";\n\nimport { useWords } from \"@stealthscale/specimen\";\n\nimport { RadarChart } from \"@stealthscale/component-charts\";\n\nimport { SCORECARD } from \"./scores.ts\";\n\nexport function Drop(): ReactElement {\n const { t } = useWords(\"radar-chart\");\n const rows = SCORECARD.map(({ current, dimension, previous }) => ({\n current,\n dimension: t(`dimensions.${dimension}`),\n previous,\n }));\n\n return (\n <RadarChart\n caption={t(\"drop.caption\")}\n categoryKey=\"dimension\"\n data={rows}\n defaultIndex={2}\n label={t(\"scorecard.label\")}\n series={[\n { key: \"current\", label: t(\"current\") },\n { key: \"previous\", label: t(\"previous\") },\n ]}\n valueDomain={[0, 10]}\n />\n );\n}\n";
345
+ //#endregion
346
+ //#region src/radar-chart/examples/order.example.tsx
347
+ var order_example_exports = /* @__PURE__ */ __exportAll({
348
+ Order: () => Order,
349
+ source: () => source$5
350
+ });
351
+ function Order() {
352
+ const $ = c(23);
353
+ const { t } = useWords("radar-chart");
354
+ let t0;
355
+ if ($[0] !== t) {
356
+ t0 = SWAPPED.map((t1) => {
357
+ const { current, dimension, previous } = t1;
358
+ return {
359
+ current,
360
+ dimension: t(`dimensions.${dimension}`),
361
+ previous
362
+ };
363
+ });
364
+ $[0] = t;
365
+ $[1] = t0;
366
+ } else t0 = $[1];
367
+ const rows = t0;
368
+ let t1;
369
+ if ($[2] !== t) {
370
+ t1 = t("order.caption");
371
+ $[2] = t;
372
+ $[3] = t1;
373
+ } else t1 = $[3];
374
+ let t2;
375
+ if ($[4] !== t) {
376
+ t2 = t("scorecard.label");
377
+ $[4] = t;
378
+ $[5] = t2;
379
+ } else t2 = $[5];
380
+ let t3;
381
+ if ($[6] !== t) {
382
+ t3 = t("current");
383
+ $[6] = t;
384
+ $[7] = t3;
385
+ } else t3 = $[7];
386
+ let t4;
387
+ if ($[8] !== t3) {
388
+ t4 = {
389
+ key: "current",
390
+ label: t3
391
+ };
392
+ $[8] = t3;
393
+ $[9] = t4;
394
+ } else t4 = $[9];
395
+ let t5;
396
+ if ($[10] !== t) {
397
+ t5 = t("previous");
398
+ $[10] = t;
399
+ $[11] = t5;
400
+ } else t5 = $[11];
401
+ let t6;
402
+ if ($[12] !== t5) {
403
+ t6 = {
404
+ key: "previous",
405
+ label: t5
406
+ };
407
+ $[12] = t5;
408
+ $[13] = t6;
409
+ } else t6 = $[13];
410
+ let t7;
411
+ if ($[14] !== t4 || $[15] !== t6) {
412
+ t7 = [t4, t6];
413
+ $[14] = t4;
414
+ $[15] = t6;
415
+ $[16] = t7;
416
+ } else t7 = $[16];
417
+ let t8;
418
+ if ($[17] === Symbol.for("react.memo_cache_sentinel")) {
419
+ t8 = [0, 10];
420
+ $[17] = t8;
421
+ } else t8 = $[17];
422
+ let t9;
423
+ if ($[18] !== rows || $[19] !== t1 || $[20] !== t2 || $[21] !== t7) {
424
+ t9 = /* @__PURE__ */ jsx(RadarChart, {
425
+ caption: t1,
426
+ categoryKey: "dimension",
427
+ data: rows,
428
+ label: t2,
429
+ series: t7,
430
+ valueDomain: t8
431
+ });
432
+ $[18] = rows;
433
+ $[19] = t1;
434
+ $[20] = t2;
435
+ $[21] = t7;
436
+ $[22] = t9;
437
+ } else t9 = $[22];
438
+ return t9;
439
+ }
440
+ const source$5 = "import { type ReactElement } from \"react\";\n\nimport { useWords } from \"@stealthscale/specimen\";\n\nimport { RadarChart } from \"@stealthscale/component-charts\";\n\nimport { SWAPPED } from \"./scores.ts\";\n\nexport function Order(): ReactElement {\n const { t } = useWords(\"radar-chart\");\n const rows = SWAPPED.map(({ current, dimension, previous }) => ({\n current,\n dimension: t(`dimensions.${dimension}`),\n previous,\n }));\n\n return (\n <RadarChart\n caption={t(\"order.caption\")}\n categoryKey=\"dimension\"\n data={rows}\n label={t(\"scorecard.label\")}\n series={[\n { key: \"current\", label: t(\"current\") },\n { key: \"previous\", label: t(\"previous\") },\n ]}\n valueDomain={[0, 10]}\n />\n );\n}\n";
441
+ //#endregion
442
+ //#region src/radar-chart/examples/profile.example.tsx
443
+ var profile_example_exports = /* @__PURE__ */ __exportAll({
444
+ Profile: () => Profile,
445
+ source: () => source$4
446
+ });
447
+ function Profile() {
448
+ const $ = c(16);
449
+ const { t } = useWords("radar-chart");
450
+ let t0;
451
+ if ($[0] !== t) {
452
+ t0 = SKILLS.map((t1) => {
453
+ const { level, skill } = t1;
454
+ return {
455
+ level,
456
+ skill: t(`skills.${skill}`)
457
+ };
458
+ });
459
+ $[0] = t;
460
+ $[1] = t0;
461
+ } else t0 = $[1];
462
+ const rows = t0;
463
+ let t1;
464
+ if ($[2] !== t) {
465
+ t1 = t("profile.caption");
466
+ $[2] = t;
467
+ $[3] = t1;
468
+ } else t1 = $[3];
469
+ let t2;
470
+ if ($[4] !== t) {
471
+ t2 = t("profile.label");
472
+ $[4] = t;
473
+ $[5] = t2;
474
+ } else t2 = $[5];
475
+ let t3;
476
+ if ($[6] !== t) {
477
+ t3 = t("profile.team");
478
+ $[6] = t;
479
+ $[7] = t3;
480
+ } else t3 = $[7];
481
+ let t4;
482
+ if ($[8] !== t3) {
483
+ t4 = [{
484
+ color: "teal",
485
+ key: "level",
486
+ label: t3
487
+ }];
488
+ $[8] = t3;
489
+ $[9] = t4;
490
+ } else t4 = $[9];
491
+ let t5;
492
+ if ($[10] === Symbol.for("react.memo_cache_sentinel")) {
493
+ t5 = [0, 10];
494
+ $[10] = t5;
495
+ } else t5 = $[10];
496
+ let t6;
497
+ if ($[11] !== rows || $[12] !== t1 || $[13] !== t2 || $[14] !== t4) {
498
+ t6 = /* @__PURE__ */ jsx(RadarChart, {
499
+ caption: t1,
500
+ categoryKey: "skill",
501
+ data: rows,
502
+ label: t2,
503
+ series: t4,
504
+ valueDomain: t5
505
+ });
506
+ $[11] = rows;
507
+ $[12] = t1;
508
+ $[13] = t2;
509
+ $[14] = t4;
510
+ $[15] = t6;
511
+ } else t6 = $[15];
512
+ return t6;
513
+ }
514
+ const source$4 = "import { type ReactElement } from \"react\";\n\nimport { useWords } from \"@stealthscale/specimen\";\n\nimport { RadarChart } from \"@stealthscale/component-charts\";\n\nimport { SKILLS } from \"./scores.ts\";\n\nexport function Profile(): ReactElement {\n const { t } = useWords(\"radar-chart\");\n const rows = SKILLS.map(({ level, skill }) => ({ level, skill: t(`skills.${skill}`) }));\n\n return (\n <RadarChart\n caption={t(\"profile.caption\")}\n categoryKey=\"skill\"\n data={rows}\n label={t(\"profile.label\")}\n series={[{ color: \"teal\", key: \"level\", label: t(\"profile.team\") }]}\n valueDomain={[0, 10]}\n />\n );\n}\n";
515
+ //#endregion
516
+ //#region src/radar-chart/examples/quiet.example.tsx
517
+ var quiet_example_exports = /* @__PURE__ */ __exportAll({
518
+ Quiet: () => Quiet,
519
+ source: () => source$3
520
+ });
521
+ const NONE = [];
522
+ function Quiet() {
523
+ const $ = c(23);
524
+ const { t } = useWords("radar-chart");
525
+ let t0;
526
+ if ($[0] !== t) {
527
+ t0 = t("quiet.caption");
528
+ $[0] = t;
529
+ $[1] = t0;
530
+ } else t0 = $[1];
531
+ let t1;
532
+ if ($[2] !== t) {
533
+ t1 = t("quiet.empty");
534
+ $[2] = t;
535
+ $[3] = t1;
536
+ } else t1 = $[3];
537
+ let t2;
538
+ if ($[4] !== t) {
539
+ t2 = t("scorecard.label");
540
+ $[4] = t;
541
+ $[5] = t2;
542
+ } else t2 = $[5];
543
+ let t3;
544
+ if ($[6] !== t) {
545
+ t3 = t("current");
546
+ $[6] = t;
547
+ $[7] = t3;
548
+ } else t3 = $[7];
549
+ let t4;
550
+ if ($[8] !== t3) {
551
+ t4 = {
552
+ key: "current",
553
+ label: t3
554
+ };
555
+ $[8] = t3;
556
+ $[9] = t4;
557
+ } else t4 = $[9];
558
+ let t5;
559
+ if ($[10] !== t) {
560
+ t5 = t("previous");
561
+ $[10] = t;
562
+ $[11] = t5;
563
+ } else t5 = $[11];
564
+ let t6;
565
+ if ($[12] !== t5) {
566
+ t6 = {
567
+ key: "previous",
568
+ label: t5
569
+ };
570
+ $[12] = t5;
571
+ $[13] = t6;
572
+ } else t6 = $[13];
573
+ let t7;
574
+ if ($[14] !== t4 || $[15] !== t6) {
575
+ t7 = [t4, t6];
576
+ $[14] = t4;
577
+ $[15] = t6;
578
+ $[16] = t7;
579
+ } else t7 = $[16];
580
+ let t8;
581
+ if ($[17] === Symbol.for("react.memo_cache_sentinel")) {
582
+ t8 = [0, 10];
583
+ $[17] = t8;
584
+ } else t8 = $[17];
585
+ let t9;
586
+ if ($[18] !== t0 || $[19] !== t1 || $[20] !== t2 || $[21] !== t7) {
587
+ t9 = /* @__PURE__ */ jsx(RadarChart, {
588
+ caption: t0,
589
+ categoryKey: "dimension",
590
+ data: NONE,
591
+ empty: t1,
592
+ label: t2,
593
+ series: t7,
594
+ valueDomain: t8
595
+ });
596
+ $[18] = t0;
597
+ $[19] = t1;
598
+ $[20] = t2;
599
+ $[21] = t7;
600
+ $[22] = t9;
601
+ } else t9 = $[22];
602
+ return t9;
603
+ }
604
+ const source$3 = "import { type ReactElement } from \"react\";\n\nimport { useWords } from \"@stealthscale/specimen\";\n\nimport { RadarChart } from \"@stealthscale/component-charts\";\n\nimport { type ScorecardRow } from \"./scores.ts\";\n\nconst NONE: ScorecardRow[] = [];\n\nexport function Quiet(): ReactElement {\n const { t } = useWords(\"radar-chart\");\n\n return (\n <RadarChart\n caption={t(\"quiet.caption\")}\n categoryKey=\"dimension\"\n data={NONE}\n empty={t(\"quiet.empty\")}\n label={t(\"scorecard.label\")}\n series={[\n { key: \"current\", label: t(\"current\") },\n { key: \"previous\", label: t(\"previous\") },\n ]}\n valueDomain={[0, 10]}\n />\n );\n}\n";
605
+ //#endregion
606
+ //#region src/radar-chart/examples/replay.example.tsx
607
+ var replay_example_exports = /* @__PURE__ */ __exportAll({
608
+ Replay: () => Replay,
609
+ source: () => source$2
610
+ });
611
+ function Replay() {
612
+ const $ = c(35);
613
+ const { t } = useWords("radar-chart");
614
+ const [run, setRun] = useState(0);
615
+ let t0;
616
+ if ($[0] !== t) {
617
+ t0 = SCORECARD.map((t1) => {
618
+ const { current, dimension, previous } = t1;
619
+ return {
620
+ current,
621
+ dimension: t(`dimensions.${dimension}`),
622
+ previous
623
+ };
624
+ });
625
+ $[0] = t;
626
+ $[1] = t0;
627
+ } else t0 = $[1];
628
+ const rows = t0;
629
+ let t1;
630
+ if ($[2] !== t) {
631
+ t1 = t("scorecard.caption");
632
+ $[2] = t;
633
+ $[3] = t1;
634
+ } else t1 = $[3];
635
+ let t2;
636
+ if ($[4] !== t) {
637
+ t2 = t("scorecard.label");
638
+ $[4] = t;
639
+ $[5] = t2;
640
+ } else t2 = $[5];
641
+ let t3;
642
+ if ($[6] !== t) {
643
+ t3 = t("current");
644
+ $[6] = t;
645
+ $[7] = t3;
646
+ } else t3 = $[7];
647
+ let t4;
648
+ if ($[8] !== t3) {
649
+ t4 = {
650
+ key: "current",
651
+ label: t3
652
+ };
653
+ $[8] = t3;
654
+ $[9] = t4;
655
+ } else t4 = $[9];
656
+ let t5;
657
+ if ($[10] !== t) {
658
+ t5 = t("previous");
659
+ $[10] = t;
660
+ $[11] = t5;
661
+ } else t5 = $[11];
662
+ let t6;
663
+ if ($[12] !== t5) {
664
+ t6 = {
665
+ key: "previous",
666
+ label: t5
667
+ };
668
+ $[12] = t5;
669
+ $[13] = t6;
670
+ } else t6 = $[13];
671
+ let t7;
672
+ if ($[14] !== t4 || $[15] !== t6) {
673
+ t7 = [t4, t6];
674
+ $[14] = t4;
675
+ $[15] = t6;
676
+ $[16] = t7;
677
+ } else t7 = $[16];
678
+ let t8;
679
+ if ($[17] === Symbol.for("react.memo_cache_sentinel")) {
680
+ t8 = [0, 10];
681
+ $[17] = t8;
682
+ } else t8 = $[17];
683
+ let t9;
684
+ if ($[18] !== rows || $[19] !== run || $[20] !== t1 || $[21] !== t2 || $[22] !== t7) {
685
+ t9 = /* @__PURE__ */ jsx(RadarChart, {
686
+ animate: true,
687
+ caption: t1,
688
+ categoryKey: "dimension",
689
+ data: rows,
690
+ label: t2,
691
+ series: t7,
692
+ valueDomain: t8
693
+ }, run);
694
+ $[18] = rows;
695
+ $[19] = run;
696
+ $[20] = t1;
697
+ $[21] = t2;
698
+ $[22] = t7;
699
+ $[23] = t9;
700
+ } else t9 = $[23];
701
+ let t10;
702
+ if ($[24] !== run) {
703
+ t10 = () => {
704
+ setRun(run + 1);
705
+ };
706
+ $[24] = run;
707
+ $[25] = t10;
708
+ } else t10 = $[25];
709
+ let t11;
710
+ if ($[26] === Symbol.for("react.memo_cache_sentinel")) {
711
+ t11 = /* @__PURE__ */ jsx(RotateCcwIcon, {});
712
+ $[26] = t11;
713
+ } else t11 = $[26];
714
+ let t12;
715
+ if ($[27] !== t) {
716
+ t12 = t("replay.replay");
717
+ $[27] = t;
718
+ $[28] = t12;
719
+ } else t12 = $[28];
720
+ let t13;
721
+ if ($[29] !== t10 || $[30] !== t12) {
722
+ t13 = /* @__PURE__ */ jsxs(Button, {
723
+ onClick: t10,
724
+ size: "sm",
725
+ variant: "outline",
726
+ children: [t11, t12]
727
+ });
728
+ $[29] = t10;
729
+ $[30] = t12;
730
+ $[31] = t13;
731
+ } else t13 = $[31];
732
+ let t14;
733
+ if ($[32] !== t13 || $[33] !== t9) {
734
+ t14 = /* @__PURE__ */ jsxs(Stack, {
735
+ align: "flex-start",
736
+ children: [t9, t13]
737
+ });
738
+ $[32] = t13;
739
+ $[33] = t9;
740
+ $[34] = t14;
741
+ } else t14 = $[34];
742
+ return t14;
743
+ }
744
+ 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 { RadarChart } from \"@stealthscale/component-charts\";\n\nimport { SCORECARD } from \"./scores.ts\";\n\nexport function Replay(): ReactElement {\n const { t } = useWords(\"radar-chart\");\n const [run, setRun] = useState(0);\n const rows = SCORECARD.map(({ current, dimension, previous }) => ({\n current,\n dimension: t(`dimensions.${dimension}`),\n previous,\n }));\n\n return (\n <Stack align=\"flex-start\">\n <RadarChart\n animate\n caption={t(\"scorecard.caption\")}\n categoryKey=\"dimension\"\n data={rows}\n key={run}\n label={t(\"scorecard.label\")}\n series={[\n { key: \"current\", label: t(\"current\") },\n { key: \"previous\", label: t(\"previous\") },\n ]}\n valueDomain={[0, 10]}\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";
745
+ //#endregion
746
+ //#region src/radar-chart/examples/scorecard.example.tsx
747
+ var scorecard_example_exports = /* @__PURE__ */ __exportAll({
748
+ Scorecard: () => Scorecard,
749
+ source: () => source$1
750
+ });
751
+ function Scorecard() {
752
+ const $ = c(23);
753
+ const { t } = useWords("radar-chart");
754
+ let t0;
755
+ if ($[0] !== t) {
756
+ t0 = SCORECARD.map((t1) => {
757
+ const { current, dimension, previous } = t1;
758
+ return {
759
+ current,
760
+ dimension: t(`dimensions.${dimension}`),
761
+ previous
762
+ };
763
+ });
764
+ $[0] = t;
765
+ $[1] = t0;
766
+ } else t0 = $[1];
767
+ const rows = t0;
768
+ let t1;
769
+ if ($[2] !== t) {
770
+ t1 = t("scorecard.caption");
771
+ $[2] = t;
772
+ $[3] = t1;
773
+ } else t1 = $[3];
774
+ let t2;
775
+ if ($[4] !== t) {
776
+ t2 = t("scorecard.label");
777
+ $[4] = t;
778
+ $[5] = t2;
779
+ } else t2 = $[5];
780
+ let t3;
781
+ if ($[6] !== t) {
782
+ t3 = t("current");
783
+ $[6] = t;
784
+ $[7] = t3;
785
+ } else t3 = $[7];
786
+ let t4;
787
+ if ($[8] !== t3) {
788
+ t4 = {
789
+ key: "current",
790
+ label: t3
791
+ };
792
+ $[8] = t3;
793
+ $[9] = t4;
794
+ } else t4 = $[9];
795
+ let t5;
796
+ if ($[10] !== t) {
797
+ t5 = t("previous");
798
+ $[10] = t;
799
+ $[11] = t5;
800
+ } else t5 = $[11];
801
+ let t6;
802
+ if ($[12] !== t5) {
803
+ t6 = {
804
+ key: "previous",
805
+ label: t5
806
+ };
807
+ $[12] = t5;
808
+ $[13] = t6;
809
+ } else t6 = $[13];
810
+ let t7;
811
+ if ($[14] !== t4 || $[15] !== t6) {
812
+ t7 = [t4, t6];
813
+ $[14] = t4;
814
+ $[15] = t6;
815
+ $[16] = t7;
816
+ } else t7 = $[16];
817
+ let t8;
818
+ if ($[17] === Symbol.for("react.memo_cache_sentinel")) {
819
+ t8 = [0, 10];
820
+ $[17] = t8;
821
+ } else t8 = $[17];
822
+ let t9;
823
+ if ($[18] !== rows || $[19] !== t1 || $[20] !== t2 || $[21] !== t7) {
824
+ t9 = /* @__PURE__ */ jsx(RadarChart, {
825
+ caption: t1,
826
+ categoryKey: "dimension",
827
+ data: rows,
828
+ label: t2,
829
+ series: t7,
830
+ valueDomain: t8
831
+ });
832
+ $[18] = rows;
833
+ $[19] = t1;
834
+ $[20] = t2;
835
+ $[21] = t7;
836
+ $[22] = t9;
837
+ } else t9 = $[22];
838
+ return t9;
839
+ }
840
+ const source$1 = "import { type ReactElement } from \"react\";\n\nimport { useWords } from \"@stealthscale/specimen\";\n\nimport { RadarChart } from \"@stealthscale/component-charts\";\n\nimport { SCORECARD } from \"./scores.ts\";\n\nexport function Scorecard(): ReactElement {\n const { t } = useWords(\"radar-chart\");\n const rows = SCORECARD.map(({ current, dimension, previous }) => ({\n current,\n dimension: t(`dimensions.${dimension}`),\n previous,\n }));\n\n return (\n <RadarChart\n caption={t(\"scorecard.caption\")}\n categoryKey=\"dimension\"\n data={rows}\n label={t(\"scorecard.label\")}\n series={[\n { key: \"current\", label: t(\"current\") },\n { key: \"previous\", label: t(\"previous\") },\n ]}\n valueDomain={[0, 10]}\n />\n );\n}\n";
841
+ //#endregion
842
+ //#region src/radar-chart/examples/teams.example.tsx
843
+ var teams_example_exports = /* @__PURE__ */ __exportAll({
844
+ Teams: () => Teams,
845
+ source: () => source
846
+ });
847
+ function Teams() {
848
+ const $ = c(28);
849
+ const { t } = useWords("radar-chart");
850
+ let t0;
851
+ if ($[0] !== t) {
852
+ t0 = TEAMS.map((t1) => {
853
+ const { dimension, identity, payments, search } = t1;
854
+ return {
855
+ dimension: t(`dimensions.${dimension}`),
856
+ identity,
857
+ payments,
858
+ search
859
+ };
860
+ });
861
+ $[0] = t;
862
+ $[1] = t0;
863
+ } else t0 = $[1];
864
+ const rows = t0;
865
+ let t1;
866
+ if ($[2] !== t) {
867
+ t1 = t("teams.caption");
868
+ $[2] = t;
869
+ $[3] = t1;
870
+ } else t1 = $[3];
871
+ let t2;
872
+ if ($[4] !== t) {
873
+ t2 = t("teams.label");
874
+ $[4] = t;
875
+ $[5] = t2;
876
+ } else t2 = $[5];
877
+ let t3;
878
+ if ($[6] !== t) {
879
+ t3 = t("teams.payments");
880
+ $[6] = t;
881
+ $[7] = t3;
882
+ } else t3 = $[7];
883
+ let t4;
884
+ if ($[8] !== t3) {
885
+ t4 = {
886
+ filled: false,
887
+ key: "payments",
888
+ label: t3
889
+ };
890
+ $[8] = t3;
891
+ $[9] = t4;
892
+ } else t4 = $[9];
893
+ let t5;
894
+ if ($[10] !== t) {
895
+ t5 = t("teams.search");
896
+ $[10] = t;
897
+ $[11] = t5;
898
+ } else t5 = $[11];
899
+ let t6;
900
+ if ($[12] !== t5) {
901
+ t6 = {
902
+ filled: false,
903
+ key: "search",
904
+ label: t5
905
+ };
906
+ $[12] = t5;
907
+ $[13] = t6;
908
+ } else t6 = $[13];
909
+ let t7;
910
+ if ($[14] !== t) {
911
+ t7 = t("teams.identity");
912
+ $[14] = t;
913
+ $[15] = t7;
914
+ } else t7 = $[15];
915
+ let t8;
916
+ if ($[16] !== t7) {
917
+ t8 = {
918
+ filled: false,
919
+ key: "identity",
920
+ label: t7
921
+ };
922
+ $[16] = t7;
923
+ $[17] = t8;
924
+ } else t8 = $[17];
925
+ let t9;
926
+ if ($[18] !== t4 || $[19] !== t6 || $[20] !== t8) {
927
+ t9 = [
928
+ t4,
929
+ t6,
930
+ t8
931
+ ];
932
+ $[18] = t4;
933
+ $[19] = t6;
934
+ $[20] = t8;
935
+ $[21] = t9;
936
+ } else t9 = $[21];
937
+ let t10;
938
+ if ($[22] === Symbol.for("react.memo_cache_sentinel")) {
939
+ t10 = [0, 10];
940
+ $[22] = t10;
941
+ } else t10 = $[22];
942
+ let t11;
943
+ if ($[23] !== rows || $[24] !== t1 || $[25] !== t2 || $[26] !== t9) {
944
+ t11 = /* @__PURE__ */ jsx(RadarChart, {
945
+ caption: t1,
946
+ categoryKey: "dimension",
947
+ data: rows,
948
+ label: t2,
949
+ series: t9,
950
+ valueDomain: t10
951
+ });
952
+ $[23] = rows;
953
+ $[24] = t1;
954
+ $[25] = t2;
955
+ $[26] = t9;
956
+ $[27] = t11;
957
+ } else t11 = $[27];
958
+ return t11;
959
+ }
960
+ const source = "import { type ReactElement } from \"react\";\n\nimport { useWords } from \"@stealthscale/specimen\";\n\nimport { RadarChart } from \"@stealthscale/component-charts\";\n\nimport { TEAMS } from \"./scores.ts\";\n\nexport function Teams(): ReactElement {\n const { t } = useWords(\"radar-chart\");\n const rows = TEAMS.map(({ dimension, identity, payments, search }) => ({\n dimension: t(`dimensions.${dimension}`),\n identity,\n payments,\n search,\n }));\n\n return (\n <RadarChart\n caption={t(\"teams.caption\")}\n categoryKey=\"dimension\"\n data={rows}\n label={t(\"teams.label\")}\n series={[\n { filled: false, key: \"payments\", label: t(\"teams.payments\") },\n { filled: false, key: \"search\", label: t(\"teams.search\") },\n { filled: false, key: \"identity\", label: t(\"teams.identity\") },\n ]}\n valueDomain={[0, 10]}\n />\n );\n}\n";
961
+ //#endregion
962
+ //#region src/radar-chart/radar-chart.specimen.tsx
963
+ /**
964
+ * Catalogue page for the radar chart.
965
+ *
966
+ * @remarks
967
+ * The radar chart has no recipe of its own: the chart's recipe styles its figure, so every scene
968
+ * is hand-written. The scenes render a service's scorecard over two quarters, the tooltip open at
969
+ * the score that fell, one team's profile, three teams as outlines, coverage with the scale
970
+ * written, the scorecard with two spokes swapped, the polygons animated in with a replay, the
971
+ * scorecard at a phone's width, and a quarter without scores. Every scene renders a component
972
+ * from `examples/` and shows that file as its source. The words are keys under `radar-chart` in
973
+ * `locales/en/specimen/radar-chart.json`.
974
+ */
975
+ /**
976
+ * Hand-written scene for two series on five spokes.
977
+ */
978
+ const two = {
979
+ about: "radar-chart.scorecard.about",
980
+ draw: () => /* @__PURE__ */ jsx(Room, {
981
+ size: "lg",
982
+ children: /* @__PURE__ */ jsx(Scorecard, {})
983
+ }),
984
+ example: scorecard_example_exports,
985
+ title: "radar-chart.scorecard.title"
986
+ };
987
+ /**
988
+ * Hand-written scene for the tooltip open at a spoke.
989
+ */
990
+ const tooltip = {
991
+ about: "radar-chart.drop.about",
992
+ draw: () => /* @__PURE__ */ jsx(Room, {
993
+ size: "lg",
994
+ children: /* @__PURE__ */ jsx(Drop, {})
995
+ }),
996
+ example: drop_example_exports,
997
+ title: "radar-chart.drop.title"
998
+ };
999
+ /**
1000
+ * Hand-written scene for one filled series.
1001
+ */
1002
+ const one = {
1003
+ about: "radar-chart.profile.about",
1004
+ draw: () => /* @__PURE__ */ jsx(Room, {
1005
+ size: "lg",
1006
+ children: /* @__PURE__ */ jsx(Profile, {})
1007
+ }),
1008
+ example: profile_example_exports,
1009
+ title: "radar-chart.profile.title"
1010
+ };
1011
+ /**
1012
+ * Hand-written scene for three series as outlines.
1013
+ */
1014
+ const outlines = {
1015
+ about: "radar-chart.teams.about",
1016
+ draw: () => /* @__PURE__ */ jsx(Room, {
1017
+ size: "lg",
1018
+ children: /* @__PURE__ */ jsx(Teams, {})
1019
+ }),
1020
+ example: teams_example_exports,
1021
+ title: "radar-chart.teams.title"
1022
+ };
1023
+ /**
1024
+ * Hand-written scene for the radius ticks written up the top spoke.
1025
+ */
1026
+ const scale = {
1027
+ about: "radar-chart.coverage.about",
1028
+ draw: () => /* @__PURE__ */ jsx(Room, {
1029
+ size: "lg",
1030
+ children: /* @__PURE__ */ jsx(Coverage, {})
1031
+ }),
1032
+ example: coverage_example_exports,
1033
+ title: "radar-chart.coverage.title"
1034
+ };
1035
+ /**
1036
+ * Hand-written scene for the same scores with two spokes swapped.
1037
+ */
1038
+ const swapped = {
1039
+ about: "radar-chart.order.about",
1040
+ draw: () => /* @__PURE__ */ jsx(Room, {
1041
+ size: "lg",
1042
+ children: /* @__PURE__ */ jsx(Order, {})
1043
+ }),
1044
+ example: order_example_exports,
1045
+ title: "radar-chart.order.title"
1046
+ };
1047
+ /**
1048
+ * Hand-written scene for the polygons animated in, with a replay.
1049
+ */
1050
+ const animated = {
1051
+ about: "radar-chart.replay.about",
1052
+ draw: () => /* @__PURE__ */ jsx(Room, {
1053
+ size: "lg",
1054
+ children: /* @__PURE__ */ jsx(Replay, {})
1055
+ }),
1056
+ example: replay_example_exports,
1057
+ title: "radar-chart.replay.title"
1058
+ };
1059
+ /**
1060
+ * Hand-written scene for the scorecard at a phone's width.
1061
+ */
1062
+ const narrow = {
1063
+ about: "radar-chart.narrow.about",
1064
+ draw: () => /* @__PURE__ */ jsx(Room, {
1065
+ size: "xs",
1066
+ children: /* @__PURE__ */ jsx(Scorecard, {})
1067
+ }),
1068
+ example: scorecard_example_exports,
1069
+ title: "radar-chart.narrow.title"
1070
+ };
1071
+ /**
1072
+ * Hand-written scene for a quarter without scores.
1073
+ */
1074
+ const empty = {
1075
+ about: "radar-chart.quiet.about",
1076
+ draw: () => /* @__PURE__ */ jsx(Room, {
1077
+ size: "md",
1078
+ children: /* @__PURE__ */ jsx(Quiet, {})
1079
+ }),
1080
+ example: quiet_example_exports,
1081
+ title: "radar-chart.quiet.title"
1082
+ };
1083
+ var radar_chart_specimen_default = specimen({
1084
+ about: "radar-chart.about",
1085
+ id: "components/charts/radar-chart",
1086
+ imports: "import { RadarChart } from \"@stealthscale/component-charts\";",
1087
+ scenes: [
1088
+ two,
1089
+ tooltip,
1090
+ one,
1091
+ outlines,
1092
+ scale,
1093
+ swapped,
1094
+ animated,
1095
+ narrow,
1096
+ empty
1097
+ ],
1098
+ title: "radar-chart.title"
1099
+ });
1100
+ //#endregion
1101
+ export { animated, radar_chart_specimen_default as default, empty, narrow, one, outlines, scale, swapped, tooltip, two };