@xeonr/platform-ui 1.9.0 → 1.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/kit/ChartFrame.d.ts +86 -0
- package/dist/kit/ChartFrame.d.ts.map +1 -0
- package/dist/kit/ChartFrame.js +176 -0
- package/dist/kit/ChartFrame.js.map +1 -0
- package/dist/kit/ChartTypes.d.ts +160 -0
- package/dist/kit/ChartTypes.d.ts.map +1 -0
- package/dist/kit/ChartTypes.js +320 -0
- package/dist/kit/ChartTypes.js.map +1 -0
- package/dist/kit/Charts.d.ts +173 -65
- package/dist/kit/Charts.d.ts.map +1 -1
- package/dist/kit/Charts.js +664 -308
- package/dist/kit/Charts.js.map +1 -1
- package/dist/kit/Sparkline.d.ts +8 -1
- package/dist/kit/Sparkline.d.ts.map +1 -1
- package/dist/kit/Sparkline.js +6 -4
- package/dist/kit/Sparkline.js.map +1 -1
- package/dist/kit/chartScale.d.ts +78 -0
- package/dist/kit/chartScale.d.ts.map +1 -0
- package/dist/kit/chartScale.js +210 -0
- package/dist/kit/chartScale.js.map +1 -0
- package/dist/theme/tokens.d.ts +16 -0
- package/dist/theme/tokens.d.ts.map +1 -1
- package/dist/theme/tokens.js +49 -0
- package/dist/theme/tokens.js.map +1 -1
- package/package.json +1 -1
package/dist/kit/Charts.d.ts
CHANGED
|
@@ -1,41 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
* Oct 2026 (CON-73). Every axis was HH:MM before, so twelve monthly points
|
|
5
|
-
* labelled both ends "00:00". Local time, as the charts always were; a series
|
|
6
|
-
* bucketed in some other zone passes `formatTime`.
|
|
7
|
-
*/
|
|
8
|
-
export declare function timeTick(span: number): (t: number) => string;
|
|
9
|
-
export interface HistogramBucket {
|
|
10
|
-
/** bucket start, ms since epoch */
|
|
11
|
-
t: number;
|
|
12
|
-
/** stacked parts, in stack order */
|
|
13
|
-
parts: {
|
|
14
|
-
name: string;
|
|
15
|
-
value: number;
|
|
16
|
-
}[];
|
|
17
|
-
}
|
|
18
|
-
/** Tones a part may take; unnamed parts use the brand colour. */
|
|
19
|
-
export type ChartTone = "brand" | "ok" | "warn" | "crit" | "info" | "mut";
|
|
20
|
-
/**
|
|
21
|
-
* Histogram: a stacked bar per bucket over time, so the shape of what you are
|
|
22
|
-
* looking at is visible before you read a single row. `tones` maps a part
|
|
23
|
-
* name to its tone (e.g. error → crit) so a spike reads without a legend.
|
|
24
|
-
*
|
|
25
|
-
* `formatValue` says what a number is ("2.4 GB"); given one, the tallest bar's
|
|
26
|
-
* value is shown above the chart as its scale, and each bar's tooltip breaks
|
|
27
|
-
* its total into parts. `formatTime` overrides how the axis and tooltips read
|
|
28
|
-
* a bucket's start, which otherwise follows the span in local time.
|
|
29
|
-
*/
|
|
30
|
-
export declare function Histogram({ buckets, tones, height, label, empty, formatValue, formatTime }: {
|
|
31
|
-
buckets: HistogramBucket[];
|
|
32
|
-
tones?: Record<string, ChartTone> | undefined;
|
|
33
|
-
height?: number | undefined;
|
|
34
|
-
label?: string | undefined;
|
|
35
|
-
empty?: string | undefined;
|
|
36
|
-
formatValue?: ((v: number) => string) | undefined;
|
|
37
|
-
formatTime?: ((t: number) => string) | undefined;
|
|
38
|
-
}): import("react").JSX.Element;
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
import { timeTick, type ChartSize, type ChartTone } from "./chartScale.ts";
|
|
3
|
+
export { timeTick, type ChartTone };
|
|
39
4
|
export interface ChartSeries {
|
|
40
5
|
name: string;
|
|
41
6
|
points: {
|
|
@@ -51,8 +16,10 @@ export interface LinePoint {
|
|
|
51
16
|
export interface LineSeries {
|
|
52
17
|
name: string;
|
|
53
18
|
points: LinePoint[];
|
|
54
|
-
/** the line's colour as a tone, instead of the next
|
|
19
|
+
/** the line's colour as a tone, instead of the next step of the ramp */
|
|
55
20
|
tone?: ChartTone | undefined;
|
|
21
|
+
/** the line's colour as a token (`v.danger`), instead of the ramp; `tone` wins */
|
|
22
|
+
colour?: string | undefined;
|
|
56
23
|
/**
|
|
57
24
|
* a ceiling or target drawn beside the measured series (a budget, a capacity):
|
|
58
25
|
* dashed, never filled under, muted unless given a `tone`, and left out of the
|
|
@@ -60,28 +27,66 @@ export interface LineSeries {
|
|
|
60
27
|
* the legend's "everything hidden" reset. It still reads the value axis.
|
|
61
28
|
*/
|
|
62
29
|
reference?: boolean | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* The name of the series this one is the compare of (the same query a day
|
|
32
|
+
* earlier): drawn in its twin's hue at 45 % and dashed, hidden with it, and
|
|
33
|
+
* read in the tooltip as a delta on the twin's row.
|
|
34
|
+
*/
|
|
35
|
+
compareOf?: string | undefined;
|
|
36
|
+
/** a dashed stroke without being a compare (a second percentile, a forecast) */
|
|
37
|
+
dashed?: boolean | undefined;
|
|
38
|
+
/** in a bar chart, a line drawn over the stack instead of a segment of it */
|
|
39
|
+
overlay?: boolean | undefined;
|
|
63
40
|
}
|
|
64
41
|
/** What a LineChart's values are, so its axis and tooltip read them without a `formatValue`. `percent` is 0–100, `bytes` and `bps` are bytes and bytes per second (1024 ladder), `count` a plain number. */
|
|
65
42
|
export type ChartUnit = "percent" | "bytes" | "bps" | "count";
|
|
43
|
+
/** A moment on the time axis: a deploy, an alert transition, a note. */
|
|
44
|
+
export interface ChartMarker {
|
|
45
|
+
/** epoch ms */
|
|
46
|
+
at: number;
|
|
47
|
+
label: string;
|
|
48
|
+
/** deploy: an amber triangle on the axis; alert: a red tick; note: grey */
|
|
49
|
+
kind?: "deploy" | "alert" | "note" | undefined;
|
|
50
|
+
/** overrides the kind's colour */
|
|
51
|
+
tone?: ChartTone | undefined;
|
|
52
|
+
/** a colour token, overriding the kind's and the tone's */
|
|
53
|
+
colour?: string | undefined;
|
|
54
|
+
}
|
|
55
|
+
/** A dashed rule at a value, labelled at its right end in its tone. */
|
|
56
|
+
export interface ChartThreshold {
|
|
57
|
+
value: number;
|
|
58
|
+
/** "alert" — the value is appended; default the tone's word */
|
|
59
|
+
label?: string | undefined;
|
|
60
|
+
/** default crit */
|
|
61
|
+
tone?: ChartTone | undefined;
|
|
62
|
+
}
|
|
63
|
+
/** A shaded window: a firing window, the slice a pivot is about, data not in yet. */
|
|
64
|
+
export interface ChartBand {
|
|
65
|
+
from: number;
|
|
66
|
+
to: number;
|
|
67
|
+
/** shaded in the tone at 7 % */
|
|
68
|
+
tone?: ChartTone | undefined;
|
|
69
|
+
/** a translucent background token used as is (`v.brand12`); wins over `tone` */
|
|
70
|
+
colour?: string | undefined;
|
|
71
|
+
/** hatched rather than shaded: the part of the range not known yet */
|
|
72
|
+
hatch?: boolean | undefined;
|
|
73
|
+
label?: string | undefined;
|
|
74
|
+
}
|
|
75
|
+
/** What a click on the plot is about: one bucket, and the series nearest the pointer. */
|
|
76
|
+
export interface ChartPoint {
|
|
77
|
+
/** the bucket's start, epoch ms */
|
|
78
|
+
t: number;
|
|
79
|
+
/** the bucket's width in ms */
|
|
80
|
+
step: number;
|
|
81
|
+
/** the series nearest the pointer */
|
|
82
|
+
series?: string | undefined;
|
|
83
|
+
value?: number | undefined;
|
|
84
|
+
}
|
|
66
85
|
/** Reads a number as its unit. `compact` is the axis form (shorter, whole numbers for percent); the default is the tooltip's. */
|
|
67
86
|
export declare function formatUnit(value: number, unit: ChartUnit, compact?: boolean): string;
|
|
68
|
-
/**
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
* a drag that selects a window (`onZoom`) — the natural gesture once a spike
|
|
72
|
-
* is visible.
|
|
73
|
-
*
|
|
74
|
-
* A point whose `v` is `null`/`undefined` is a sample that was not reported
|
|
75
|
-
* (an agent too old for the metric, a node that was down): the line breaks
|
|
76
|
-
* there rather than dipping to zero, which is a real measurement.
|
|
77
|
-
*
|
|
78
|
-
* `unit` reads the value axis and the crosshair as percent, bytes, bps or
|
|
79
|
-
* count; `formatValue` overrides it ("38 ms"), `area` fills under the lines and
|
|
80
|
-
* `max` pins the top of the axis.
|
|
81
|
-
|
|
82
|
-
* `formatTime` the time axis, which otherwise follows the span in local time.
|
|
83
|
-
*/
|
|
84
|
-
export declare function LineChart({ series, onZoom, label, empty, formatValue, formatTime, unit, area, max }: {
|
|
87
|
+
/** The change from `was` to `now` as the tooltip writes it: "+72 %", "−9 %", "→" when flat. */
|
|
88
|
+
export declare function formatDelta(now: number, was: number): string;
|
|
89
|
+
export interface LineChartProps {
|
|
85
90
|
series: LineSeries[];
|
|
86
91
|
/** Given a dragged selection. Omit to leave the chart read-only. */
|
|
87
92
|
onZoom?: ((from: Date, to: Date) => void) | undefined;
|
|
@@ -92,10 +97,110 @@ export declare function LineChart({ series, onZoom, label, empty, formatValue, f
|
|
|
92
97
|
formatTime?: ((t: number) => string) | undefined;
|
|
93
98
|
/** what the values are; reads the axis and the tooltip (percent, bytes, bps, count) */
|
|
94
99
|
unit?: ChartUnit | undefined;
|
|
95
|
-
/** fill under
|
|
100
|
+
/** fill under the line at 12 % — a single series at S or M; stacked bands always fill */
|
|
96
101
|
area?: boolean | undefined;
|
|
102
|
+
/** stack the series (parts of a whole over time); the tooltip shows each part and the total */
|
|
103
|
+
stacked?: boolean | undefined;
|
|
97
104
|
/** pin the top of the value axis (100 for percentages, a capacity for bytes) */
|
|
98
105
|
max?: number | undefined;
|
|
106
|
+
/** pin the bottom of the value axis */
|
|
107
|
+
min?: number | undefined;
|
|
108
|
+
/** a log value axis */
|
|
109
|
+
log?: boolean | undefined;
|
|
110
|
+
/** s · m · l · xl: height, ticks, legend and marker labels; the frame's when omitted, else m */
|
|
111
|
+
size?: ChartSize | undefined;
|
|
112
|
+
/** a height other than the size's */
|
|
113
|
+
height?: number | undefined;
|
|
114
|
+
/** the time window drawn; the data's extent when omitted */
|
|
115
|
+
domain?: {
|
|
116
|
+
from: number;
|
|
117
|
+
to: number;
|
|
118
|
+
} | undefined;
|
|
119
|
+
markers?: ChartMarker[] | undefined;
|
|
120
|
+
thresholds?: ChartThreshold[] | undefined;
|
|
121
|
+
bands?: ChartBand[] | undefined;
|
|
122
|
+
/** a click (or right-click, or Enter) on a bucket, with the series nearest the pointer */
|
|
123
|
+
onPoint?: ((point: ChartPoint, at: {
|
|
124
|
+
clientX: number;
|
|
125
|
+
clientY: number;
|
|
126
|
+
}) => void) | undefined;
|
|
127
|
+
/** a double-click: back to the window before a zoom */
|
|
128
|
+
onReset?: (() => void) | undefined;
|
|
129
|
+
/** make the threshold rules draggable; called with the rule's index and the value under the pointer */
|
|
130
|
+
onThresholdDrag?: ((index: number, value: number) => void) | undefined;
|
|
131
|
+
/** charts sharing a key share one crosshair */
|
|
132
|
+
syncKey?: string | undefined;
|
|
133
|
+
/** legend chips under the plot; the size decides when omitted */
|
|
134
|
+
legend?: boolean | undefined;
|
|
135
|
+
/** keys after the series (a firing band, a marker kind) */
|
|
136
|
+
legendExtra?: ReactNode;
|
|
137
|
+
/** under the legend; default a drag hint at L/XL when `onZoom` is set */
|
|
138
|
+
hint?: ReactNode;
|
|
139
|
+
testId?: string | undefined;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* LineChart: n series over a shared time axis — the default timeseries, up to
|
|
143
|
+
* eight lines before the legend collapses.
|
|
144
|
+
*
|
|
145
|
+
* The axes follow board 32: 3–5 nice value ticks in the unit, the bottom line
|
|
146
|
+
* the only solid rule, hairlines above it, no vertical grid; 5–7 time ticks on
|
|
147
|
+
* a round step with a date only at a midnight crossing. Lines are 1.8 px and
|
|
148
|
+
* round-joined, with no dots at rest; a point whose `v` is `null`/`undefined`
|
|
149
|
+
* was not reported and breaks the line rather than dipping to zero.
|
|
150
|
+
*
|
|
151
|
+
* Hovering (or ← → once focused) draws a crosshair with a dot per series and
|
|
152
|
+
* one tooltip listing every series worst-first with its value and, for a
|
|
153
|
+
* series with a `compareOf` twin, the delta. The legend's chips carry each
|
|
154
|
+
* series' last value: click mutes, shift-click solos. Drag selects a window
|
|
155
|
+
* (`onZoom`); a click is a point (`onPoint`).
|
|
156
|
+
*
|
|
157
|
+
* `markers` (deploys, alert transitions, notes), `thresholds` (dashed, labelled
|
|
158
|
+
* at the right end) and `bands` (a firing window, a hatched "not in yet") are
|
|
159
|
+
* first-class. `size` sets the height and what shows; inside a `ChartFrame` it
|
|
160
|
+
* follows the frame's.
|
|
161
|
+
*/
|
|
162
|
+
export declare function LineChart({ label, empty, ...rest }: LineChartProps): import("react").JSX.Element;
|
|
163
|
+
export type BarChartProps = Omit<LineChartProps, "stacked" | "area" | "log">;
|
|
164
|
+
/**
|
|
165
|
+
* BarChart: counts per bucket, stacked by part (status class, error type) over
|
|
166
|
+
* time. Each series is a part, stacked in series order; a series with
|
|
167
|
+
* `overlay` is drawn as a line over the stack (a shifted volume), and a
|
|
168
|
+
* `compareOf` twin is a dashed line too. Everything else — axes, markers,
|
|
169
|
+
* thresholds, the tooltip, the legend — is LineChart's.
|
|
170
|
+
*/
|
|
171
|
+
export declare function BarChart({ label, empty, ...rest }: BarChartProps): import("react").JSX.Element;
|
|
172
|
+
export interface HistogramBucket {
|
|
173
|
+
/** bucket start, ms since epoch */
|
|
174
|
+
t: number;
|
|
175
|
+
/** stacked parts, in stack order */
|
|
176
|
+
parts: {
|
|
177
|
+
name: string;
|
|
178
|
+
value: number;
|
|
179
|
+
}[];
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Histogram: a stacked bar per bucket over time — BarChart's time-bucketed
|
|
183
|
+
* form, taking buckets of parts rather than series. `tones` maps a part name
|
|
184
|
+
* to its tone (e.g. error → crit) so a spike reads without a legend; untoned
|
|
185
|
+
* parts take the ramp.
|
|
186
|
+
*
|
|
187
|
+
* `formatValue` says what a number is ("2.4 GB") on the axis and in the
|
|
188
|
+
* tooltip, which breaks each bar's total into parts. `formatTime` overrides
|
|
189
|
+
* how the axis and tooltips read a bucket's start, which otherwise follows the
|
|
190
|
+
* span in local time.
|
|
191
|
+
*/
|
|
192
|
+
export declare function Histogram({ buckets, tones, height, size, label, empty, formatValue, formatTime, onZoom, markers }: {
|
|
193
|
+
buckets: HistogramBucket[];
|
|
194
|
+
tones?: Record<string, ChartTone> | undefined;
|
|
195
|
+
/** px; the size's when omitted (a strip under a list is ~84) */
|
|
196
|
+
height?: number | undefined;
|
|
197
|
+
size?: ChartSize | undefined;
|
|
198
|
+
label?: string | undefined;
|
|
199
|
+
empty?: string | undefined;
|
|
200
|
+
formatValue?: ((v: number) => string) | undefined;
|
|
201
|
+
formatTime?: ((t: number) => string) | undefined;
|
|
202
|
+
onZoom?: ((from: Date, to: Date) => void) | undefined;
|
|
203
|
+
markers?: ChartMarker[] | undefined;
|
|
99
204
|
}): import("react").JSX.Element;
|
|
100
205
|
/** One band's value at each shared instant, and what the bands add up to. */
|
|
101
206
|
export interface StackedMoment {
|
|
@@ -113,24 +218,27 @@ export declare function stackSeries(series: ChartSeries[]): StackedMoment[];
|
|
|
113
218
|
/**
|
|
114
219
|
* StackedAreaChart: n series stacked over a shared time axis, so the whole and
|
|
115
220
|
* each part's share of it read together (the cells in conformance by domain,
|
|
116
|
-
* requests by
|
|
117
|
-
*
|
|
118
|
-
*
|
|
119
|
-
*
|
|
221
|
+
* requests by version). Series are lined up on the union of their timestamps
|
|
222
|
+
* (`stackSeries`), holding a series' last value; bands take the ramp in order
|
|
223
|
+
* and the legend names them (a series called "Other" is the neutral one; fold
|
|
224
|
+
* a long tail into it rather than drawing a ninth hue).
|
|
120
225
|
*
|
|
121
226
|
* Hovering, or the arrow keys once it has focus, reads every band and the total
|
|
122
|
-
* at one instant. `max` caps the value axis (100 for percentages)
|
|
123
|
-
*
|
|
124
|
-
* LineChart. Show the values in a table too: the chart is not the only way in.
|
|
227
|
+
* at one instant. `max` caps the value axis (100 for percentages). Show the
|
|
228
|
+
* values in a table too: the chart is not the only way in.
|
|
125
229
|
*/
|
|
126
|
-
export declare function StackedAreaChart({ series, max, height, label, empty, formatValue, formatTime }: {
|
|
230
|
+
export declare function StackedAreaChart({ series, max, height, size, label, empty, formatValue, formatTime, markers, onZoom }: {
|
|
127
231
|
series: ChartSeries[];
|
|
128
232
|
/** Highest value the axis may reach. */
|
|
129
233
|
max?: number | undefined;
|
|
234
|
+
/** px; the size's when omitted */
|
|
130
235
|
height?: number | undefined;
|
|
236
|
+
size?: ChartSize | undefined;
|
|
131
237
|
label?: string | undefined;
|
|
132
238
|
empty?: string | undefined;
|
|
133
239
|
formatValue?: ((v: number) => string) | undefined;
|
|
134
240
|
formatTime?: ((t: number) => string) | undefined;
|
|
241
|
+
markers?: ChartMarker[] | undefined;
|
|
242
|
+
onZoom?: ((from: Date, to: Date) => void) | undefined;
|
|
135
243
|
}): import("react").JSX.Element;
|
|
136
244
|
//# sourceMappingURL=Charts.d.ts.map
|
package/dist/kit/Charts.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Charts.d.ts","sourceRoot":"","sources":["../../src/kit/Charts.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Charts.d.ts","sourceRoot":"","sources":["../../src/kit/Charts.tsx"],"names":[],"mappings":"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"}
|