@stealthscale/component-charts 0.2.1 → 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 +29 -13
  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 +9 -8
  123. /package/dist/{recipe-BbGw00ut.js → recipes-BbGw00ut.js} +0 -0
@@ -0,0 +1,88 @@
1
+ {
2
+ "about": "A point per thing at two measures, and a series per group of things. Both axes take a title, because neither explains itself, and the tooltip names each value by its axis' title under the point's series.",
3
+ "crowded": {
4
+ "about": "The risks in a room 20rem wide. A name that leaves the plot, or meets the name of a point earlier in the series, is hidden, so the first of two close points keeps its name. The tooltip still names every point.",
5
+ "title": "Crowded names"
6
+ },
7
+ "deals": {
8
+ "about": "Deal size against days to close for two segments. Each series takes its own points, because a scatter's series share no category. The keyboard layer's arrows walk the first series' points.",
9
+ "caption": "Mid-market deals close within 50 days, while enterprise deals take 88 to 178 days.",
10
+ "days": "Days to close",
11
+ "enterprise": "Enterprise",
12
+ "label": "Days to close by deal size",
13
+ "mid": "Mid-market",
14
+ "size": "Deal size",
15
+ "title": "Two series"
16
+ },
17
+ "narrow": {
18
+ "about": "The deals in a room 20rem wide, the column of a phone. Both axes keep their titles.",
19
+ "title": "Narrow room"
20
+ },
21
+ "orders": {
22
+ "about": "Thirty orders of one shop as small points: size sets every point's area in square pixels, 30 here against the 60 a scatter takes by default.",
23
+ "caption": "Order value rises by about €17 for each item in the order.",
24
+ "items": "Items",
25
+ "label": "Order value by items",
26
+ "orders": "Orders",
27
+ "title": "Point size",
28
+ "value": "Order value"
29
+ },
30
+ "quadrants": {
31
+ "about": "quadrants divides the plot at the middle of each axis and names each quadrant in its corner. labelKey writes each vendor's name beside its point, and xEnds and yEnds name each axis' ends in place of its ticks. The tooltip heads a point with its name and its quadrant.",
32
+ "caption": "Alder and Cedar lead on both vision and execution.",
33
+ "challengers": "Challengers",
34
+ "execution": "Execution",
35
+ "high": "High",
36
+ "label": "Vendors by vision and execution",
37
+ "leaders": "Leaders",
38
+ "low": "Low",
39
+ "niche": "Niche players",
40
+ "title": "Quadrants",
41
+ "vendors": "Vendors",
42
+ "vision": "Vision",
43
+ "visionaries": "Visionaries"
44
+ },
45
+ "quiet": {
46
+ "about": "A scatter without points renders the empty state in the plot's place, at the plot's ratio.",
47
+ "caption": "Days to close by deal size this quarter.",
48
+ "deals": "Deals",
49
+ "empty": "No deals closed this quarter.",
50
+ "title": "Empty"
51
+ },
52
+ "replay": {
53
+ "about": "animate grows each point from its centre when the chart mounts, and Replay mounts the chart again. Under reduced motion recharts renders the points at once.",
54
+ "replay": "Replay",
55
+ "title": "Animation"
56
+ },
57
+ "risks": {
58
+ "about": "spreadPoints moves the second of two risks with equal scores along a spiral until the two are 0.15 of the axes' spans apart, and never across a dividing line. The tooltip writes the moved scores, so spread points suit a chart that people read by quadrant.",
59
+ "accept": "Accept",
60
+ "act": "Act now",
61
+ "breach": "Data breach",
62
+ "caption": "A cloud outage and payment fraud are both likely and severe.",
63
+ "certain": "Certain",
64
+ "currency": "Currency swing",
65
+ "fraud": "Payment fraud",
66
+ "impact": "Impact",
67
+ "label": "Risks by likelihood and impact",
68
+ "likelihood": "Likelihood",
69
+ "minor": "Minor",
70
+ "outage": "Cloud outage",
71
+ "prepare": "Prepare",
72
+ "price": "Price war",
73
+ "rare": "Rare",
74
+ "reduce": "Reduce",
75
+ "risks": "Risks",
76
+ "severe": "Severe",
77
+ "supplier": "Supplier exit",
78
+ "title": "Spread points",
79
+ "turnover": "Staff turnover"
80
+ },
81
+ "segments": "Segments",
82
+ "slowest": {
83
+ "about": "defaultIndex opens the tooltip at a point of the first series when the chart first renders. The heading names the point's series, and each row names its value by the axis' title.",
84
+ "caption": "The slowest mid-market deal, €27K, took 49 days to close.",
85
+ "title": "Tooltip"
86
+ },
87
+ "title": "Scatter plot"
88
+ }
@@ -0,0 +1,51 @@
1
+ {
2
+ "about": "A run of counts, one bar per period, at the size of a word, without axes or a tooltip. A bar is read by its length, so the bars start at zero.",
3
+ "deploys": {
4
+ "about": "The week's deploys as a stat with a bar per day beside it. The sparkbar is hidden from assistive technology, because the stat states the figure.",
5
+ "help": "None on Sunday",
6
+ "label": "Deploys this week",
7
+ "title": "Beside a figure",
8
+ "value": "38"
9
+ },
10
+ "incidents": {
11
+ "about": "label names a run shown without a figure, as an image with that name, here in the error palette. It takes no tab stop.",
12
+ "label": "Incidents per week over the last 12 weeks, 21 in all",
13
+ "title": "Without a figure"
14
+ },
15
+ "orders": {
16
+ "about": "baseline={120} renders a dashed line at the daily target, and color takes the teal palette's chart color.",
17
+ "help": "At or above the 120 target on 4 of 7 days",
18
+ "label": "Orders per day",
19
+ "title": "Baseline",
20
+ "value": "856"
21
+ },
22
+ "outage": {
23
+ "about": "A value that is not a finite number leaves its period empty. A zero leaves it empty too, so the help text names the day without a reading.",
24
+ "help": "No reading on Thursday",
25
+ "label": "Sign-ups per day",
26
+ "title": "Missing reading",
27
+ "value": "1,373"
28
+ },
29
+ "replay": {
30
+ "about": "animate grows the bars from zero when the sparkbar mounts, and Replay mounts it again. Under reduced motion recharts renders them at once.",
31
+ "label": "Deploys per day this week",
32
+ "replay": "Replay",
33
+ "title": "Animation"
34
+ },
35
+ "seats": {
36
+ "about": "signed renders a fall in the error palette's chart color, for a change per period: seats gained or lost each day over two weeks.",
37
+ "help": "Seats lost on 4 of 14 days",
38
+ "label": "Net seats per day",
39
+ "title": "Signed",
40
+ "value": "+36"
41
+ },
42
+ "size": {
43
+ "about": "Three boxes on the grid, four times as wide as they are tall: 64 by 16 pixels at sm, 96 by 24 at md and 128 by 32 at lg.",
44
+ "title": "Sizes"
45
+ },
46
+ "stretch": {
47
+ "about": "stretch fills the width of the container at the size's height, here a room 24rem wide.",
48
+ "title": "Stretch"
49
+ },
50
+ "title": "Sparkbar"
51
+ }
@@ -0,0 +1,70 @@
1
+ {
2
+ "about": "The shape of a run of values at the size of a word, without axes or a tooltip. The line spans the run's own range, so the figure it belongs to goes beside it.",
3
+ "builds": {
4
+ "about": "label names a run shown without a figure, as an image with that name. It takes no tab stop.",
5
+ "label": "Build time over the last 15 builds, from 4.2 to 3.1 minutes",
6
+ "title": "Without a figure"
7
+ },
8
+ "errors": {
9
+ "about": "color takes a palette's chart color, here the error palette's for errors per hour.",
10
+ "help": "+11 in 12 hours",
11
+ "label": "Errors per hour",
12
+ "title": "Palette",
13
+ "value": "14"
14
+ },
15
+ "launch": {
16
+ "about": "area fills under the line with the chart's gradient. The line spans the run's own range, so a fill measures volume only for a run that starts at zero, as a count since launch does.",
17
+ "help": "+300 this month",
18
+ "label": "Customers since launch",
19
+ "title": "Area",
20
+ "value": "1,240"
21
+ },
22
+ "offline": {
23
+ "about": "A value that is not a finite number leaves a gap in the line, here two readings the sensor missed. A zero in their place would plot a fall that never happened.",
24
+ "help": "Two readings missed",
25
+ "label": "Server room",
26
+ "title": "Missing readings",
27
+ "value": "21.8 °C"
28
+ },
29
+ "replay": {
30
+ "about": "animate reveals the line from its start when the sparkline mounts, and Replay mounts it again. Under reduced motion recharts renders it at once.",
31
+ "label": "Customers since launch, from 0 to 1,240",
32
+ "replay": "Replay",
33
+ "title": "Animation"
34
+ },
35
+ "revenue": {
36
+ "about": "The week's revenue as a stat with the run of daily revenue beside it. The sparkline is hidden from assistive technology, because the stat states the figure.",
37
+ "help": "+12% on last week",
38
+ "label": "Revenue this week",
39
+ "title": "Beside a figure",
40
+ "value": "€48,120"
41
+ },
42
+ "services": {
43
+ "about": "p95 latency per service with the last 24 hours at the small size in each row. Each run spans its own range, so checkout's rise and search's fall read at a glance.",
44
+ "api": "API",
45
+ "auth": "Auth",
46
+ "caption": "p95 latency per service",
47
+ "checkout": "Checkout",
48
+ "day": "Last 24 hours",
49
+ "now": "p95 now",
50
+ "search": "Search",
51
+ "service": "Service",
52
+ "title": "In a table"
53
+ },
54
+ "size": {
55
+ "about": "Three boxes on the grid, four times as wide as they are tall: 64 by 16 pixels at sm, 96 by 24 at md and 128 by 32 at lg.",
56
+ "title": "Sizes"
57
+ },
58
+ "stretch": {
59
+ "about": "stretch fills the width of the container at the size's height, here a room 24rem wide.",
60
+ "title": "Stretch"
61
+ },
62
+ "target": {
63
+ "about": "baseline={300} renders a dashed line at the 300 ms target, and the range widens to include it.",
64
+ "help": "Above the 300 ms target at 13:00 and 14:00",
65
+ "label": "p95 latency",
66
+ "title": "Baseline",
67
+ "value": "190 ms"
68
+ },
69
+ "title": "Sparkline"
70
+ }
@@ -0,0 +1,44 @@
1
+ {
2
+ "about": "The declared series stacked into one total over a category or time axis. With percent, every point sums to 100% and the chart shows shares.",
3
+ "launch": {
4
+ "about": "defaultIndex opens the tooltip at Thursday when the chart first renders, with a row per source. The pointer or the arrow keys move it from there.",
5
+ "caption": "Referrals brought 2.6K of Thursday's 11K sessions.",
6
+ "title": "Tooltip"
7
+ },
8
+ "narrow": {
9
+ "about": "The sessions in a room 20rem wide, the column of a phone. All seven day ticks fit, and the legend keeps its three sources on one line.",
10
+ "title": "Narrow room"
11
+ },
12
+ "replay": {
13
+ "about": "animate reveals the bands from the start of the axis to its end when the chart mounts, and Replay mounts the chart again. Under reduced motion recharts renders the bands at once.",
14
+ "replay": "Replay",
15
+ "title": "Animation"
16
+ },
17
+ "series": "Sources",
18
+ "share": {
19
+ "about": "Requests per client as shares of each month's total. The value axis reads in percent, and the tooltip writes each client's own count.",
20
+ "android": "Android",
21
+ "api": "API",
22
+ "caption": "The API's share of requests grew from 12% in April to 26% in September.",
23
+ "ios": "iOS",
24
+ "label": "Requests per client per month",
25
+ "title": "Shares",
26
+ "web": "Web"
27
+ },
28
+ "title": "Stacked area chart",
29
+ "traffic": {
30
+ "about": "Sessions per source stacked into each day's total, in compact numbers.",
31
+ "caption": "Referrals rose to 2.6K on Thursday. Sessions fell from 11K on Friday to 5.6K on Sunday.",
32
+ "direct": "Direct",
33
+ "label": "Sessions per source per day",
34
+ "referral": "Referral",
35
+ "search": "Search",
36
+ "title": "Totals"
37
+ },
38
+ "untracked": {
39
+ "about": "A week without sessions renders the empty state in the plot's place, and no legend.",
40
+ "caption": "Sessions per source this week.",
41
+ "empty": "No sessions tracked this week.",
42
+ "title": "Empty"
43
+ }
44
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "about": "Each category's total as one bar, split into the declared series. The total and the bottom segment are measured from the axis.",
3
+ "narrow": {
4
+ "about": "The revenue in a room 20rem wide, the column of a phone. All six month ticks fit, and the value axis measures its widest tick, €60,000.",
5
+ "title": "Narrow room"
6
+ },
7
+ "replay": {
8
+ "about": "animate grows each segment from its base when the chart mounts, and Replay mounts the chart again. Under reduced motion recharts renders the bars at once.",
9
+ "replay": "Replay",
10
+ "title": "Animation"
11
+ },
12
+ "revenue": {
13
+ "about": "Revenue per plan per month in euros, with the largest plan at the bottom of each bar. A hairline in the panel's color parts the segments.",
14
+ "caption": "Revenue grew to €43,600 in September, €24,800 of it from Scale plans.",
15
+ "growth": "Growth",
16
+ "label": "Revenue per plan per month",
17
+ "scale": "Scale",
18
+ "starter": "Starter",
19
+ "title": "Totals by plan"
20
+ },
21
+ "series": "Plans",
22
+ "split": {
23
+ "about": "defaultIndex opens the tooltip at September when the chart first renders, with a row per plan. The pointer or the arrow keys move it from there.",
24
+ "caption": "September's €43,600 split into €24,800 from Scale, €15,800 from Growth and €3,000 from Starter.",
25
+ "title": "Tooltip"
26
+ },
27
+ "title": "Stacked bar chart",
28
+ "unbooked": {
29
+ "about": "A range without rows renders the empty state in the plot's place, and no legend.",
30
+ "caption": "Revenue per plan per month.",
31
+ "empty": "No revenue booked in this period.",
32
+ "title": "Empty"
33
+ }
34
+ }
@@ -0,0 +1,33 @@
1
+ {
2
+ "about": "A line of steps per declared series: each value is flat from its point until the next, as a replica count or a price tier is.",
3
+ "idle": {
4
+ "about": "A range without readings renders the empty state in the plot's place, and no legend.",
5
+ "caption": "Replicas per service over the last hour.",
6
+ "empty": "No readings in the last hour.",
7
+ "title": "Empty"
8
+ },
9
+ "narrow": {
10
+ "about": "The replicas in a room 20rem wide, the column of a phone. recharts shows every second time tick, so no two labels overlap.",
11
+ "title": "Narrow room"
12
+ },
13
+ "replay": {
14
+ "about": "animate reveals each line of steps from the start of the axis to its end when the chart mounts, and Replay mounts the chart again. Under reduced motion recharts renders the lines at once.",
15
+ "replay": "Replay",
16
+ "title": "Animation"
17
+ },
18
+ "replicas": {
19
+ "about": "Replicas of two services every 10 minutes. The count is constant between readings, so the lines step instead of sloping.",
20
+ "api": "API",
21
+ "caption": "The API went from 3 replicas to 8 by 12:30 and was back at 3 by 13:30.",
22
+ "label": "Replicas per service",
23
+ "title": "Replicas",
24
+ "worker": "Worker"
25
+ },
26
+ "scale": {
27
+ "about": "defaultIndex opens the tooltip at the API's first reading of 8 replicas when the chart first renders. The pointer or the arrow keys move it from there.",
28
+ "caption": "The API ran 8 replicas at 12:30, twice the worker's 4.",
29
+ "title": "Tooltip"
30
+ },
31
+ "series": "Services",
32
+ "title": "Step line chart"
33
+ }
@@ -0,0 +1,54 @@
1
+ {
2
+ "about": "Many series stacked about a moving baseline, so each band's rise and fall reads across a long span. The graph gives up the total and every band's measure for that shape, so it renders no value axis and no grid, and the stack fills the plot's height.",
3
+ "campaign": {
4
+ "about": "defaultIndex opens the tooltip at a week when the chart first renders. The tooltip writes each source's own visits in the legend's order, because no value reads off a band against an axis.",
5
+ "caption": "In the week of July 20 social brought 38K visits, a third of the week's total.",
6
+ "title": "Tooltip"
7
+ },
8
+ "listening": {
9
+ "about": "baseline=\"silhouette\" centres the stack on a straight line, so the stream is symmetric about the middle of the plot. Hours of listening per month by genre.",
10
+ "caption": "Electronic listening peaked in July, and classical peaked in December.",
11
+ "classical": "Classical",
12
+ "electronic": "Electronic",
13
+ "genres": "Genres",
14
+ "hiphop": "Hip-hop",
15
+ "jazz": "Jazz",
16
+ "label": "Listening hours per month by genre",
17
+ "pop": "Pop",
18
+ "rock": "Rock",
19
+ "title": "Centred baseline"
20
+ },
21
+ "narrow": {
22
+ "about": "The traffic graph in a room 20rem wide, the column of a phone.",
23
+ "title": "Narrow room"
24
+ },
25
+ "ordered": {
26
+ "about": "insideOut={false} stacks the bands in the series' order, the first at the bottom, for an order a reader already knows. The late email band is then inside the stack and moves every band above it.",
27
+ "caption": "Visits per source in the series' order, organic at the bottom.",
28
+ "title": "Series order"
29
+ },
30
+ "quiet": {
31
+ "about": "A range without rows renders the empty state in the plot's place, at the plot's ratio.",
32
+ "caption": "Visits per source per week.",
33
+ "empty": "No visits recorded yet.",
34
+ "title": "Empty"
35
+ },
36
+ "replay": {
37
+ "about": "animate reveals each band from the start of the axis when the chart mounts, and Replay mounts the chart again. Under reduced motion recharts renders the bands at once.",
38
+ "replay": "Replay",
39
+ "title": "Animation"
40
+ },
41
+ "title": "Stream graph",
42
+ "traffic": {
43
+ "about": "Weekly visits from five sources over sixteen weeks. The bands stack inside out: the sources whose visits arrive early are in the middle and the late ones outside, so a late source does not move the bands beneath it. Each source keeps its color and its place in the legend.",
44
+ "caption": "A July campaign lifted social visits to 38K a week before they fell back, while email grew from none to 22K a week.",
45
+ "direct": "Direct",
46
+ "email": "Email",
47
+ "label": "Visits per source per week",
48
+ "organic": "Organic",
49
+ "referral": "Referral",
50
+ "social": "Social",
51
+ "sources": "Sources",
52
+ "title": "Traffic sources"
53
+ }
54
+ }
@@ -0,0 +1,110 @@
1
+ {
2
+ "about": "A hierarchy of parts as rings around a middle, one ring per level, such as spend by team, then by service, then by resource. Each part's arc is its share of the whole and is inside its parent's arc. Each top-level part is a family of arcs in one color, each ring paler than the one inside it, and the legend lists each family with its total. The arrow keys walk the arcs, a family before its parts. A sunburst shows how a whole divides level by level, and a treemap is the better chart for comparing the sizes of many parts.",
3
+ "credit": {
4
+ "about": "The bill with a committed-use credit of −€3,000 posted to the data team. An arc cannot be negative, so the chart gives a part below zero no arc, and the data team's total counts only the parts with an arc. hierarchyLeaves returns every leaf with its value as given, and the caption lists the leaves below zero.",
5
+ "caption_one": "{{names}} is below zero and has no arc. An arc cannot be negative.",
6
+ "caption_other": "{{names}} are below zero and have no arcs. An arc cannot be negative.",
7
+ "title": "A part below zero"
8
+ },
9
+ "folders": "Folders",
10
+ "hidden": {
11
+ "about": "defaultHiddenKeys hides the platform team when the chart first renders. Only the platform team has a third level, so the outer ring leaves with it, and the two rings left share the room. Every share in the tooltip is of the teams shown. A press on the legend shows the team again.",
12
+ "caption": "With the platform team hidden, the product team is 56% of the rest.",
13
+ "title": "A hidden team"
14
+ },
15
+ "largest": {
16
+ "about": "defaultIndex opens the tooltip at the third arc of the walk, virtual machines, when the chart first renders. The walk runs depth first and largest first: the platform team, compute, then virtual machines. The tooltip writes the resource's spend and its share of the bill to two significant digits.",
17
+ "caption": "Virtual machines are the largest resource at 23% of the bill.",
18
+ "title": "Tooltip"
19
+ },
20
+ "names": {
21
+ "archive": "Archive",
22
+ "backups": "Backups",
23
+ "blobs": "Blob storage",
24
+ "brand": "Brand",
25
+ "builds": "Builds",
26
+ "compute": "Compute",
27
+ "credit": "Committed-use credit",
28
+ "cron": "Cron",
29
+ "daily": "Daily",
30
+ "data": "Data",
31
+ "design": "Design",
32
+ "dns": "DNS",
33
+ "edits": "Edits",
34
+ "flags": "Feature flags",
35
+ "footage": "Footage",
36
+ "gpus": "GPUs",
37
+ "kubernetes": "Kubernetes",
38
+ "mailer": "Mailer",
39
+ "metrics": "Metrics",
40
+ "mobile": "Mobile app",
41
+ "network": "Network",
42
+ "photos": "Photos",
43
+ "pipelines": "Pipelines",
44
+ "platform": "Platform",
45
+ "product": "Product",
46
+ "proxy": "Auth proxy",
47
+ "queue": "Queue",
48
+ "registry": "Registry",
49
+ "scanner": "Scanner",
50
+ "screens": "Screens",
51
+ "secrets": "Secrets",
52
+ "snapshots": "Snapshots",
53
+ "status": "Status page",
54
+ "storage": "Storage",
55
+ "tracing": "Tracing",
56
+ "video": "Video",
57
+ "vms": "Virtual machines",
58
+ "warehouse": "Warehouse",
59
+ "web": "Web app",
60
+ "webhooks": "Webhooks",
61
+ "weekly": "Weekly"
62
+ },
63
+ "narrow": {
64
+ "about": "The bill in a room 20rem wide, the column of a phone. The rings and the hole shrink with the plot, and the legend wraps under it.",
65
+ "title": "Narrow room"
66
+ },
67
+ "palette": {
68
+ "about": "Each team states its palette: the platform team purple, the product team orange, the data team teal. A team's arcs mix its palette's chart color over the panel, paler in each ring. values false leaves the totals out of the legend.",
69
+ "caption": "The platform team spends more than the product and data teams together.",
70
+ "title": "Palettes"
71
+ },
72
+ "quiet": {
73
+ "about": "A sunburst without nodes renders the empty state in the plot's place, at the plot's ratio, and no legend.",
74
+ "caption": "Cloud spend this month.",
75
+ "empty": "No spend in this period.",
76
+ "title": "Empty"
77
+ },
78
+ "replay": {
79
+ "about": "animate sweeps each ring's arcs in clockwise from 12 o'clock when the chart mounts, and Replay mounts the chart again. Under reduced motion recharts renders the arcs at once.",
80
+ "caption": "Cloud spend for September.",
81
+ "replay": "Replay",
82
+ "title": "Animation"
83
+ },
84
+ "share": "Of the bill",
85
+ "spend": {
86
+ "about": "September's cloud bill of €114,500 by team, then by service, then by resource. Each team is a family of arcs in one color, and each ring is paler than the ring inside it. A service without resources leaves a gap in the outer ring, so every part is inside its parent's arc. The hole writes the bill's total, and the caption states the platform team's share, which the example sums from hierarchyLeaves.",
87
+ "caption": "The platform team is {{share}}% of the bill.",
88
+ "center": "September",
89
+ "label": "Cloud spend for September by team, service and resource",
90
+ "title": "Spend by team, service and resource"
91
+ },
92
+ "storage": {
93
+ "about": "A file server's folders and subfolders. Each folder is its own family, so each takes the next series color, and a folder without subfolders leaves a gap in the outer ring. valueOptions writes the sizes in gigabytes.",
94
+ "caption": "Design and video files fill 62% of the file server.",
95
+ "label": "Storage on the file server by folder and subfolder",
96
+ "share": "Of the server",
97
+ "title": "Two levels",
98
+ "value": "Size"
99
+ },
100
+ "tail": {
101
+ "about": "The platform team's spend: Kubernetes and fourteen small services. Each small service is a sliver of the outer ring. The tooltip writes each one's name and spend, and the arrow keys walk to each.",
102
+ "caption": "Kubernetes is 86% of the platform team's spend. Fourteen small services share the rest.",
103
+ "label": "Platform team spend for September by service",
104
+ "share": "Of the team",
105
+ "title": "A long tail"
106
+ },
107
+ "teams": "Teams",
108
+ "title": "Sunburst chart",
109
+ "value": "Spend"
110
+ }
@@ -0,0 +1,77 @@
1
+ {
2
+ "about": "Moments on one time window across lanes, such as deploys and incidents per service. Moments of a lane closer than minGap of the window share a marker that counts them, and every lane shares the window, so the lanes compare.",
3
+ "burst": {
4
+ "about": "Seven alerts within two minutes share one marker in the color of its loudest moment. defaultIndex opens the tooltip at the marker: the heading names the lane and the range, and the rows list five alerts and then moreLabel's count of the rest.",
5
+ "alerts": "Alerts",
6
+ "caption": "Seven alerts in two minutes followed the deploy at 13:52 UTC.",
7
+ "changes": "Changes",
8
+ "checkout": "Checkout failures above 1%",
9
+ "deploy": "Deploy api 4.12",
10
+ "errors": "Error rate above 2%",
11
+ "label": "Changes and alerts during the incident",
12
+ "latency": "p99 latency above 800 ms",
13
+ "more_one": "{{count}} more alert",
14
+ "more_other": "{{count}} more alerts",
15
+ "queue": "Queue depth above 5,000",
16
+ "recovered": "Error rate recovered",
17
+ "rollback": "Rollback to api 4.11",
18
+ "title": "Clusters"
19
+ },
20
+ "deploys": {
21
+ "about": "Deploys and incidents of four services over one day, a lane per service in the order lanes lists them. A moment without a lane goes into the lane otherLabel names. The time axis writes five evenly spaced times in 24-hour UTC.",
22
+ "api": "API",
23
+ "backlog": "Queue backlog",
24
+ "backup": "Nightly backup",
25
+ "caption": "The api raised three alerts between 14:03 and 14:09 UTC and rolled back at 16:20.",
26
+ "cleared": "Backlog cleared",
27
+ "db": "Database",
28
+ "deploy": "Deploy {{version}}",
29
+ "errors": "Error rate alert",
30
+ "failover": "Failover drill",
31
+ "label": "Deploys and incidents on 28 September",
32
+ "latency": "Latency alert",
33
+ "notice": "Status page notice",
34
+ "other": "Other",
35
+ "rollback": "Rollback to {{version}}",
36
+ "slow": "Slow queries",
37
+ "title": "Lanes",
38
+ "web": "Web",
39
+ "worker": "Worker"
40
+ },
41
+ "narrow": {
42
+ "about": "The day's deploys in a room 20rem wide, the column of a phone. Each lane keeps its name, and the time axis leaves out a time that would meet another.",
43
+ "title": "Narrow room"
44
+ },
45
+ "quiet": {
46
+ "about": "A timeline without a moment inside its window renders the empty state in the plot's place.",
47
+ "caption": "Deploys and incidents today.",
48
+ "empty": "No deploys or incidents today.",
49
+ "label": "Deploys and incidents today",
50
+ "title": "Empty"
51
+ },
52
+ "releases": {
53
+ "about": "One lane of releases over a year. A chart of one lane renders no lane axis, and the tooltip heads a marker with its date alone. ticks sets three dates on the time axis, and labelOptions writes them in the medium date style.",
54
+ "caption": "Two of the year's nine releases needed a patch within three days.",
55
+ "label": "Releases from October 2025 to September 2026",
56
+ "patch": "Patch {{version}}",
57
+ "release": "Release {{version}}",
58
+ "title": "One lane"
59
+ },
60
+ "replay": {
61
+ "about": "animate grows each marker from its centre when the chart mounts, and Replay mounts the chart again. Under reduced motion recharts renders the markers at once.",
62
+ "caption": "The web deployed three times, and the api rolled back after its alerts.",
63
+ "label": "Deploys on 28 September",
64
+ "replay": "Replay",
65
+ "title": "Animation"
66
+ },
67
+ "select": {
68
+ "about": "onSelect receives a marker's moments on a press, or on Enter or Space while the arrow keys walk the markers. The line under the chart lists the moments of the marker selected last.",
69
+ "caption": "Press a marker to list its moments.",
70
+ "label": "Deploys and incidents of the api and the database",
71
+ "none": "No marker selected.",
72
+ "picked_one": "Selected: {{list}}",
73
+ "picked_other": "Selected {{count}} moments: {{list}}",
74
+ "title": "Selection"
75
+ },
76
+ "title": "Timeline chart"
77
+ }