panelui-native 0.41.0 → 0.44.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/README.md +3 -2
- package/lib/module/components/card/index.js +8 -154
- package/lib/module/components/card/index.js.map +1 -1
- package/lib/module/components/color-picker/index.js +1395 -0
- package/lib/module/components/color-picker/index.js.map +1 -0
- package/lib/module/components/combobox/index.js +87 -19
- package/lib/module/components/combobox/index.js.map +1 -1
- package/lib/module/components/kpi-chart/index.js +648 -0
- package/lib/module/components/kpi-chart/index.js.map +1 -0
- package/lib/module/components/menu/index.js +40 -10
- package/lib/module/components/menu/index.js.map +1 -1
- package/lib/module/components/radar-chart/index.js +704 -0
- package/lib/module/components/radar-chart/index.js.map +1 -0
- package/lib/module/components/section-rail/index.js +32 -7
- package/lib/module/components/section-rail/index.js.map +1 -1
- package/lib/module/components/slider/index.js +240 -39
- package/lib/module/components/slider/index.js.map +1 -1
- package/lib/module/components/tabs/index.js +194 -10
- package/lib/module/components/tabs/index.js.map +1 -1
- package/lib/module/index.js +4 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/theme/use-theme.js +1 -1
- package/lib/module/utils/chart.js +44 -0
- package/lib/module/utils/chart.js.map +1 -1
- package/lib/module/utils/color.js +268 -0
- package/lib/module/utils/color.js.map +1 -0
- package/lib/typescript/src/components/card/index.d.ts +0 -20
- package/lib/typescript/src/components/card/index.d.ts.map +1 -1
- package/lib/typescript/src/components/color-picker/index.d.ts +258 -0
- package/lib/typescript/src/components/color-picker/index.d.ts.map +1 -0
- package/lib/typescript/src/components/combobox/index.d.ts.map +1 -1
- package/lib/typescript/src/components/kpi-chart/index.d.ts +490 -0
- package/lib/typescript/src/components/kpi-chart/index.d.ts.map +1 -0
- package/lib/typescript/src/components/menu/index.d.ts.map +1 -1
- package/lib/typescript/src/components/radar-chart/index.d.ts +214 -0
- package/lib/typescript/src/components/radar-chart/index.d.ts.map +1 -0
- package/lib/typescript/src/components/section-rail/index.d.ts +8 -1
- package/lib/typescript/src/components/section-rail/index.d.ts.map +1 -1
- package/lib/typescript/src/components/slider/index.d.ts +19 -0
- package/lib/typescript/src/components/slider/index.d.ts.map +1 -1
- package/lib/typescript/src/components/tabs/index.d.ts +11 -1
- package/lib/typescript/src/components/tabs/index.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +5 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/utils/chart.d.ts +21 -0
- package/lib/typescript/src/utils/chart.d.ts.map +1 -1
- package/lib/typescript/src/utils/color.d.ts +74 -0
- package/lib/typescript/src/utils/color.d.ts.map +1 -0
- package/package.json +2 -1
- package/src/components/card/index.tsx +7 -209
- package/src/components/color-picker/index.tsx +1618 -0
- package/src/components/combobox/index.tsx +89 -19
- package/src/components/kpi-chart/index.tsx +719 -0
- package/src/components/menu/index.tsx +51 -6
- package/src/components/radar-chart/index.tsx +910 -0
- package/src/components/section-rail/index.tsx +42 -8
- package/src/components/slider/index.tsx +283 -41
- package/src/components/tabs/index.tsx +263 -8
- package/src/index.ts +61 -1
- package/src/theme/use-theme.ts +1 -1
- package/src/utils/chart.ts +52 -0
- package/src/utils/color.ts +246 -0
- package/theme.css +125 -112
|
@@ -0,0 +1,490 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* KpiChart — one number, and what it is doing.
|
|
3
|
+
*
|
|
4
|
+
* A metric card is not a chart with a caption. The number is the message and
|
|
5
|
+
* the chart is the footnote, so the parts here are sized and ordered around
|
|
6
|
+
* that: a title that stays quiet, a value that does not, a trend that says
|
|
7
|
+
* which way and by how much, and a sparkline that is allowed to be small
|
|
8
|
+
* because nobody is reading values off it.
|
|
9
|
+
*
|
|
10
|
+
* ```tsx
|
|
11
|
+
* <KpiChart>
|
|
12
|
+
* <KpiChart.Header>
|
|
13
|
+
* <KpiChart.Title>Active users</KpiChart.Title>
|
|
14
|
+
* </KpiChart.Header>
|
|
15
|
+
* <KpiChart.Content>
|
|
16
|
+
* <KpiChart.Value>12,480</KpiChart.Value>
|
|
17
|
+
* <KpiChart.Trend value={12.4} />
|
|
18
|
+
* </KpiChart.Content>
|
|
19
|
+
* <KpiChart.Chart data={week} dataKey="v" />
|
|
20
|
+
* </KpiChart>
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* The trend is given a number rather than a written string, so the component
|
|
24
|
+
* decides the direction and the colour rather than the call site remembering
|
|
25
|
+
* to keep a minus sign and a red in step. Where a rise is the bad news —
|
|
26
|
+
* churn, latency, cost — say so with `goodDirection="down"` and the colour
|
|
27
|
+
* follows the meaning instead of the sign.
|
|
28
|
+
*/
|
|
29
|
+
import { type ReactNode } from 'react';
|
|
30
|
+
import { View, type ViewProps } from 'react-native';
|
|
31
|
+
import { type VariantProps } from 'tailwind-variants';
|
|
32
|
+
import { type SeriesColorIndex } from '../../utils/chart.js';
|
|
33
|
+
import { type LineChartDatum } from '../line-chart/index.js';
|
|
34
|
+
declare const kpiVariants: import("tailwind-variants").TVReturnType<{
|
|
35
|
+
/**
|
|
36
|
+
* Which way the number moved, *after* the metric's own polarity has been
|
|
37
|
+
* applied — so `good` is green whether it went up or down.
|
|
38
|
+
*/
|
|
39
|
+
tone: {
|
|
40
|
+
good: {
|
|
41
|
+
trendLabel: string;
|
|
42
|
+
icon: string;
|
|
43
|
+
};
|
|
44
|
+
bad: {
|
|
45
|
+
trendLabel: string;
|
|
46
|
+
icon: string;
|
|
47
|
+
};
|
|
48
|
+
flat: {
|
|
49
|
+
trendLabel: string;
|
|
50
|
+
icon: string;
|
|
51
|
+
};
|
|
52
|
+
neutral: {
|
|
53
|
+
trendLabel: string;
|
|
54
|
+
icon: string;
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* How the change is drawn.
|
|
59
|
+
*
|
|
60
|
+
* `text` is the quieter of the two and the default: a line of colour under
|
|
61
|
+
* the number, which is where the eye already is. `badge` puts a pill round
|
|
62
|
+
* it for a card dense enough that a bare line of colour gets lost.
|
|
63
|
+
*/
|
|
64
|
+
trendVariant: {
|
|
65
|
+
text: {
|
|
66
|
+
trend: string;
|
|
67
|
+
trendLabel: string;
|
|
68
|
+
};
|
|
69
|
+
badge: {
|
|
70
|
+
trend: string;
|
|
71
|
+
trendLabel: string;
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
/** Where the chart sits relative to the number. */
|
|
75
|
+
layout: {
|
|
76
|
+
/** Under everything, full width. The chart is a footnote. */
|
|
77
|
+
below: {};
|
|
78
|
+
/**
|
|
79
|
+
* Beside the number: the text takes the width and the chart takes a
|
|
80
|
+
* fixed column on the end. The number is read first and the shape
|
|
81
|
+
* second, which is the order they sit in — so this is the shape a stat
|
|
82
|
+
* card wants, and `below` is for a chart big enough to be looked at.
|
|
83
|
+
*/
|
|
84
|
+
inline: {
|
|
85
|
+
content: string;
|
|
86
|
+
};
|
|
87
|
+
};
|
|
88
|
+
}, {
|
|
89
|
+
root: string;
|
|
90
|
+
header: string;
|
|
91
|
+
icon: string;
|
|
92
|
+
title: string;
|
|
93
|
+
content: string;
|
|
94
|
+
value: string;
|
|
95
|
+
/** The stacked title/value/trend block, tight enough to read as one thing. */
|
|
96
|
+
stat: string;
|
|
97
|
+
trend: string;
|
|
98
|
+
trendLabel: string;
|
|
99
|
+
footer: string;
|
|
100
|
+
separator: string;
|
|
101
|
+
group: string;
|
|
102
|
+
groupSeparator: string;
|
|
103
|
+
}, undefined, {
|
|
104
|
+
/**
|
|
105
|
+
* Which way the number moved, *after* the metric's own polarity has been
|
|
106
|
+
* applied — so `good` is green whether it went up or down.
|
|
107
|
+
*/
|
|
108
|
+
tone: {
|
|
109
|
+
good: {
|
|
110
|
+
trendLabel: string;
|
|
111
|
+
icon: string;
|
|
112
|
+
};
|
|
113
|
+
bad: {
|
|
114
|
+
trendLabel: string;
|
|
115
|
+
icon: string;
|
|
116
|
+
};
|
|
117
|
+
flat: {
|
|
118
|
+
trendLabel: string;
|
|
119
|
+
icon: string;
|
|
120
|
+
};
|
|
121
|
+
neutral: {
|
|
122
|
+
trendLabel: string;
|
|
123
|
+
icon: string;
|
|
124
|
+
};
|
|
125
|
+
};
|
|
126
|
+
/**
|
|
127
|
+
* How the change is drawn.
|
|
128
|
+
*
|
|
129
|
+
* `text` is the quieter of the two and the default: a line of colour under
|
|
130
|
+
* the number, which is where the eye already is. `badge` puts a pill round
|
|
131
|
+
* it for a card dense enough that a bare line of colour gets lost.
|
|
132
|
+
*/
|
|
133
|
+
trendVariant: {
|
|
134
|
+
text: {
|
|
135
|
+
trend: string;
|
|
136
|
+
trendLabel: string;
|
|
137
|
+
};
|
|
138
|
+
badge: {
|
|
139
|
+
trend: string;
|
|
140
|
+
trendLabel: string;
|
|
141
|
+
};
|
|
142
|
+
};
|
|
143
|
+
/** Where the chart sits relative to the number. */
|
|
144
|
+
layout: {
|
|
145
|
+
/** Under everything, full width. The chart is a footnote. */
|
|
146
|
+
below: {};
|
|
147
|
+
/**
|
|
148
|
+
* Beside the number: the text takes the width and the chart takes a
|
|
149
|
+
* fixed column on the end. The number is read first and the shape
|
|
150
|
+
* second, which is the order they sit in — so this is the shape a stat
|
|
151
|
+
* card wants, and `below` is for a chart big enough to be looked at.
|
|
152
|
+
*/
|
|
153
|
+
inline: {
|
|
154
|
+
content: string;
|
|
155
|
+
};
|
|
156
|
+
};
|
|
157
|
+
}, {
|
|
158
|
+
root: string;
|
|
159
|
+
header: string;
|
|
160
|
+
icon: string;
|
|
161
|
+
title: string;
|
|
162
|
+
content: string;
|
|
163
|
+
value: string;
|
|
164
|
+
/** The stacked title/value/trend block, tight enough to read as one thing. */
|
|
165
|
+
stat: string;
|
|
166
|
+
trend: string;
|
|
167
|
+
trendLabel: string;
|
|
168
|
+
footer: string;
|
|
169
|
+
separator: string;
|
|
170
|
+
group: string;
|
|
171
|
+
groupSeparator: string;
|
|
172
|
+
}, import("tailwind-variants").TVReturnType<{
|
|
173
|
+
/**
|
|
174
|
+
* Which way the number moved, *after* the metric's own polarity has been
|
|
175
|
+
* applied — so `good` is green whether it went up or down.
|
|
176
|
+
*/
|
|
177
|
+
tone: {
|
|
178
|
+
good: {
|
|
179
|
+
trendLabel: string;
|
|
180
|
+
icon: string;
|
|
181
|
+
};
|
|
182
|
+
bad: {
|
|
183
|
+
trendLabel: string;
|
|
184
|
+
icon: string;
|
|
185
|
+
};
|
|
186
|
+
flat: {
|
|
187
|
+
trendLabel: string;
|
|
188
|
+
icon: string;
|
|
189
|
+
};
|
|
190
|
+
neutral: {
|
|
191
|
+
trendLabel: string;
|
|
192
|
+
icon: string;
|
|
193
|
+
};
|
|
194
|
+
};
|
|
195
|
+
/**
|
|
196
|
+
* How the change is drawn.
|
|
197
|
+
*
|
|
198
|
+
* `text` is the quieter of the two and the default: a line of colour under
|
|
199
|
+
* the number, which is where the eye already is. `badge` puts a pill round
|
|
200
|
+
* it for a card dense enough that a bare line of colour gets lost.
|
|
201
|
+
*/
|
|
202
|
+
trendVariant: {
|
|
203
|
+
text: {
|
|
204
|
+
trend: string;
|
|
205
|
+
trendLabel: string;
|
|
206
|
+
};
|
|
207
|
+
badge: {
|
|
208
|
+
trend: string;
|
|
209
|
+
trendLabel: string;
|
|
210
|
+
};
|
|
211
|
+
};
|
|
212
|
+
/** Where the chart sits relative to the number. */
|
|
213
|
+
layout: {
|
|
214
|
+
/** Under everything, full width. The chart is a footnote. */
|
|
215
|
+
below: {};
|
|
216
|
+
/**
|
|
217
|
+
* Beside the number: the text takes the width and the chart takes a
|
|
218
|
+
* fixed column on the end. The number is read first and the shape
|
|
219
|
+
* second, which is the order they sit in — so this is the shape a stat
|
|
220
|
+
* card wants, and `below` is for a chart big enough to be looked at.
|
|
221
|
+
*/
|
|
222
|
+
inline: {
|
|
223
|
+
content: string;
|
|
224
|
+
};
|
|
225
|
+
};
|
|
226
|
+
}, {
|
|
227
|
+
root: string;
|
|
228
|
+
header: string;
|
|
229
|
+
icon: string;
|
|
230
|
+
title: string;
|
|
231
|
+
content: string;
|
|
232
|
+
value: string;
|
|
233
|
+
/** The stacked title/value/trend block, tight enough to read as one thing. */
|
|
234
|
+
stat: string;
|
|
235
|
+
trend: string;
|
|
236
|
+
trendLabel: string;
|
|
237
|
+
footer: string;
|
|
238
|
+
separator: string;
|
|
239
|
+
group: string;
|
|
240
|
+
groupSeparator: string;
|
|
241
|
+
}, undefined, unknown, unknown, undefined>>;
|
|
242
|
+
type KpiVariantProps = VariantProps<typeof kpiVariants>;
|
|
243
|
+
/** How a trend is coloured once the metric's polarity has been applied. */
|
|
244
|
+
export type KpiTone = NonNullable<KpiVariantProps['tone']>;
|
|
245
|
+
/** Which direction of movement is the good news for this metric. */
|
|
246
|
+
export type KpiGoodDirection = 'up' | 'down' | 'none';
|
|
247
|
+
export interface KpiChartProps extends Omit<ViewProps, 'children'> {
|
|
248
|
+
className?: string;
|
|
249
|
+
/**
|
|
250
|
+
* Which `--color-chart-*` token the sparkline and the icon take. Set on the
|
|
251
|
+
* card rather than on the chart so a row of cards can be given five
|
|
252
|
+
* different series colours without repeating the choice on every part.
|
|
253
|
+
*/
|
|
254
|
+
colorIndex?: SeriesColorIndex;
|
|
255
|
+
/**
|
|
256
|
+
* Which way is the good news. `up` for revenue and signups, `down` for churn
|
|
257
|
+
* and latency, `none` for a number that is neither — a headcount, a version.
|
|
258
|
+
* Defaults to `up`.
|
|
259
|
+
*/
|
|
260
|
+
goodDirection?: KpiGoodDirection;
|
|
261
|
+
/** Draw the card on a surface. Turn off to place it in a shell of your own. */
|
|
262
|
+
surface?: boolean;
|
|
263
|
+
children: ReactNode;
|
|
264
|
+
}
|
|
265
|
+
export interface KpiChartHeaderProps extends ViewProps {
|
|
266
|
+
className?: string;
|
|
267
|
+
children: ReactNode;
|
|
268
|
+
}
|
|
269
|
+
/** The top row: an icon, the metric's name, and anything acting on it. */
|
|
270
|
+
declare function KpiChartHeader({ className, children, ...props }: KpiChartHeaderProps): import("react").JSX.Element;
|
|
271
|
+
declare namespace KpiChartHeader {
|
|
272
|
+
var displayName: string;
|
|
273
|
+
}
|
|
274
|
+
export interface KpiChartIconProps extends ViewProps {
|
|
275
|
+
className?: string;
|
|
276
|
+
/** Overrides the tint the card's `colorIndex` would give it. */
|
|
277
|
+
tone?: KpiTone;
|
|
278
|
+
children: ReactNode;
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* A tinted square for a glyph.
|
|
282
|
+
*
|
|
283
|
+
* It takes the element rather than drawing one, because a metric's icon comes
|
|
284
|
+
* from whatever set the app already uses — and an icon from outside this
|
|
285
|
+
* library will not read an ambient colour, so pass it one.
|
|
286
|
+
*/
|
|
287
|
+
declare function KpiChartIcon({ className, tone, children, ...props }: KpiChartIconProps): import("react").JSX.Element;
|
|
288
|
+
declare namespace KpiChartIcon {
|
|
289
|
+
var displayName: string;
|
|
290
|
+
}
|
|
291
|
+
export interface KpiChartTitleProps {
|
|
292
|
+
className?: string;
|
|
293
|
+
children: ReactNode;
|
|
294
|
+
}
|
|
295
|
+
/** The metric's name. Quiet on purpose — the value is the thing being read. */
|
|
296
|
+
declare function KpiChartTitle({ className, children }: KpiChartTitleProps): import("react").JSX.Element;
|
|
297
|
+
declare namespace KpiChartTitle {
|
|
298
|
+
var displayName: string;
|
|
299
|
+
}
|
|
300
|
+
export interface KpiChartStatProps extends ViewProps {
|
|
301
|
+
className?: string;
|
|
302
|
+
children: ReactNode;
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* The stacked title / value / change block.
|
|
306
|
+
*
|
|
307
|
+
* Its own container rather than three loose children of the card, because the
|
|
308
|
+
* three belong together more tightly than they belong to whatever is above or
|
|
309
|
+
* below them — 4pt between the lines of one fact, and the card's own spacing
|
|
310
|
+
* between facts. It also takes the width in an `inline` row, leaving the chart
|
|
311
|
+
* its column on the end.
|
|
312
|
+
*/
|
|
313
|
+
declare function KpiChartStat({ className, children, ...props }: KpiChartStatProps): import("react").JSX.Element;
|
|
314
|
+
declare namespace KpiChartStat {
|
|
315
|
+
var displayName: string;
|
|
316
|
+
}
|
|
317
|
+
export interface KpiChartActionsProps extends ViewProps {
|
|
318
|
+
className?: string;
|
|
319
|
+
children: ReactNode;
|
|
320
|
+
}
|
|
321
|
+
/** The trailing end of the header — a menu trigger, a filter, a link. */
|
|
322
|
+
declare function KpiChartActions({ className, children, ...props }: KpiChartActionsProps): import("react").JSX.Element;
|
|
323
|
+
declare namespace KpiChartActions {
|
|
324
|
+
var displayName: string;
|
|
325
|
+
}
|
|
326
|
+
export interface KpiChartContentProps extends ViewProps {
|
|
327
|
+
className?: string;
|
|
328
|
+
/** `inline` puts the chart beside the value instead of under everything. */
|
|
329
|
+
layout?: NonNullable<KpiVariantProps['layout']>;
|
|
330
|
+
children: ReactNode;
|
|
331
|
+
}
|
|
332
|
+
/** The row the value and the trend share. */
|
|
333
|
+
declare function KpiChartContent({ className, layout, children, ...props }: KpiChartContentProps): import("react").JSX.Element;
|
|
334
|
+
declare namespace KpiChartContent {
|
|
335
|
+
var displayName: string;
|
|
336
|
+
}
|
|
337
|
+
export interface KpiChartValueProps {
|
|
338
|
+
className?: string;
|
|
339
|
+
children: ReactNode;
|
|
340
|
+
}
|
|
341
|
+
/**
|
|
342
|
+
* The number.
|
|
343
|
+
*
|
|
344
|
+
* Formatted by the caller, not here: thousands separators, currency symbols
|
|
345
|
+
* and units are locale decisions, and a component that guessed them would be
|
|
346
|
+
* wrong in a way that is hard to notice and impossible to override.
|
|
347
|
+
*/
|
|
348
|
+
declare function KpiChartValue({ className, children }: KpiChartValueProps): import("react").JSX.Element;
|
|
349
|
+
declare namespace KpiChartValue {
|
|
350
|
+
var displayName: string;
|
|
351
|
+
}
|
|
352
|
+
export interface KpiChartTrendProps extends Omit<ViewProps, 'children'> {
|
|
353
|
+
className?: string;
|
|
354
|
+
/**
|
|
355
|
+
* How much it moved, as a percentage. The sign carries the direction, so
|
|
356
|
+
* `-4.2` is a fall of 4.2%; there is no separate direction prop to keep in
|
|
357
|
+
* step with it.
|
|
358
|
+
*/
|
|
359
|
+
value: number;
|
|
360
|
+
/**
|
|
361
|
+
* Writes the number yourself. Receives the raw value, sign and all. The
|
|
362
|
+
* default prints one decimal place with an explicit `+` or `−`.
|
|
363
|
+
*/
|
|
364
|
+
format?: (value: number) => string;
|
|
365
|
+
/** Overrides the card's own `goodDirection` for this one figure. */
|
|
366
|
+
goodDirection?: KpiGoodDirection;
|
|
367
|
+
/**
|
|
368
|
+
* `text` is a line of colour under the number — the default, and what a
|
|
369
|
+
* stat card usually wants. `badge` puts a pill round it, with an arrow, for
|
|
370
|
+
* a card busy enough that a bare line of colour is lost in it.
|
|
371
|
+
*/
|
|
372
|
+
variant?: NonNullable<KpiVariantProps['trendVariant']>;
|
|
373
|
+
/** What it is being compared against — "last 30d", "vs last week". */
|
|
374
|
+
caption?: string;
|
|
375
|
+
/** Anything after the number, when a caption is not enough. */
|
|
376
|
+
children?: ReactNode;
|
|
377
|
+
/** Below which a movement counts as no movement. Defaults to `0`. */
|
|
378
|
+
threshold?: number;
|
|
379
|
+
}
|
|
380
|
+
/**
|
|
381
|
+
* The change.
|
|
382
|
+
*
|
|
383
|
+
* Colour comes from what the movement *means*, not from its sign: a fall in
|
|
384
|
+
* churn is good news and is drawn as good news. That is the whole reason this
|
|
385
|
+
* takes a number rather than a string — a caller writing "−4.2%" into a green
|
|
386
|
+
* label has to remember to change the colour when the metric changes, and
|
|
387
|
+
* nobody does.
|
|
388
|
+
*/
|
|
389
|
+
declare function KpiChartTrend({ className, value, format, goodDirection, variant, caption, threshold, children, ...props }: KpiChartTrendProps): import("react").JSX.Element;
|
|
390
|
+
declare namespace KpiChartTrend {
|
|
391
|
+
var displayName: string;
|
|
392
|
+
}
|
|
393
|
+
export interface KpiChartSparklineProps {
|
|
394
|
+
className?: string;
|
|
395
|
+
/** The rows. One point each, in order. */
|
|
396
|
+
data: LineChartDatum[];
|
|
397
|
+
/** Key holding the y values. */
|
|
398
|
+
dataKey: string;
|
|
399
|
+
/** Overrides the card's `colorIndex`. */
|
|
400
|
+
colorIndex?: SeriesColorIndex;
|
|
401
|
+
/**
|
|
402
|
+
* Fill under the line. Off beside the number, where the chart is a gesture
|
|
403
|
+
* and a fill would make it a second block competing with the value; on when
|
|
404
|
+
* it has the full width under everything and is being looked at properly.
|
|
405
|
+
*/
|
|
406
|
+
filled?: boolean;
|
|
407
|
+
/** Height in points. */
|
|
408
|
+
height?: number;
|
|
409
|
+
/**
|
|
410
|
+
* Put it beside the number, taking whatever width the text leaves rather
|
|
411
|
+
* than a column of its own. Pair with `layout="inline"` on the content row.
|
|
412
|
+
*/
|
|
413
|
+
inline?: boolean;
|
|
414
|
+
strokeWidth?: number;
|
|
415
|
+
}
|
|
416
|
+
/**
|
|
417
|
+
* The sparkline.
|
|
418
|
+
*
|
|
419
|
+
* A line chart with the axis padding dropped, which is what `compact` on the
|
|
420
|
+
* chart itself means — there is no grid, no axis and no crosshair here, so
|
|
421
|
+
* every point of padding is a point the shape is not using. Nobody reads a
|
|
422
|
+
* value off one of these; they read whether it is going up.
|
|
423
|
+
*/
|
|
424
|
+
declare function KpiChartSparkline({ className, data, dataKey, colorIndex, filled, height, inline, strokeWidth, }: KpiChartSparklineProps): import("react").JSX.Element;
|
|
425
|
+
declare namespace KpiChartSparkline {
|
|
426
|
+
var displayName: string;
|
|
427
|
+
}
|
|
428
|
+
export interface KpiChartProgressProps {
|
|
429
|
+
className?: string;
|
|
430
|
+
/** Where it has got to. */
|
|
431
|
+
value: number;
|
|
432
|
+
/** The value at which the bar reads as full. Defaults to `100`. */
|
|
433
|
+
maxValue?: number;
|
|
434
|
+
/** A caption above the bar. */
|
|
435
|
+
label?: string;
|
|
436
|
+
/** Print the percentage on the right of the caption row. */
|
|
437
|
+
showValueLabel?: boolean;
|
|
438
|
+
}
|
|
439
|
+
/** Progress towards a target, for a metric that has one. */
|
|
440
|
+
declare function KpiChartProgressBar({ className, value, maxValue, label, showValueLabel, }: KpiChartProgressProps): import("react").JSX.Element;
|
|
441
|
+
declare namespace KpiChartProgressBar {
|
|
442
|
+
var displayName: string;
|
|
443
|
+
}
|
|
444
|
+
export interface KpiChartFooterProps extends ViewProps {
|
|
445
|
+
className?: string;
|
|
446
|
+
children: ReactNode;
|
|
447
|
+
}
|
|
448
|
+
/** The bottom strip — a comparison period, a caveat, a link. */
|
|
449
|
+
declare function KpiChartFooter({ className, children, ...props }: KpiChartFooterProps): import("react").JSX.Element;
|
|
450
|
+
declare namespace KpiChartFooter {
|
|
451
|
+
var displayName: string;
|
|
452
|
+
}
|
|
453
|
+
export interface KpiChartSeparatorProps extends ViewProps {
|
|
454
|
+
className?: string;
|
|
455
|
+
}
|
|
456
|
+
/** A hairline across the card. */
|
|
457
|
+
declare function KpiChartSeparator({ className, ...props }: KpiChartSeparatorProps): import("react").JSX.Element;
|
|
458
|
+
declare namespace KpiChartSeparator {
|
|
459
|
+
var displayName: string;
|
|
460
|
+
}
|
|
461
|
+
export type KpiChartGroupOrientation = 'horizontal' | 'vertical';
|
|
462
|
+
export interface KpiChartGroupProps extends ViewProps {
|
|
463
|
+
className?: string;
|
|
464
|
+
/** `horizontal` splits the row between the cards; `vertical` stacks them. */
|
|
465
|
+
orientation?: KpiChartGroupOrientation;
|
|
466
|
+
/**
|
|
467
|
+
* Draw a hairline between the cards rather than spacing them apart. Several
|
|
468
|
+
* metrics separated by a rule read as one panel; several spaced apart read
|
|
469
|
+
* as several panels that happen to be adjacent.
|
|
470
|
+
*/
|
|
471
|
+
separated?: boolean;
|
|
472
|
+
children: ReactNode;
|
|
473
|
+
}
|
|
474
|
+
export declare const KpiChart: import("react").ForwardRefExoticComponent<KpiChartProps & import("react").RefAttributes<View>> & {
|
|
475
|
+
Header: typeof KpiChartHeader;
|
|
476
|
+
Icon: typeof KpiChartIcon;
|
|
477
|
+
Title: typeof KpiChartTitle;
|
|
478
|
+
Stat: typeof KpiChartStat;
|
|
479
|
+
Actions: typeof KpiChartActions;
|
|
480
|
+
Content: typeof KpiChartContent;
|
|
481
|
+
Value: typeof KpiChartValue;
|
|
482
|
+
Trend: typeof KpiChartTrend;
|
|
483
|
+
Chart: typeof KpiChartSparkline;
|
|
484
|
+
Progress: typeof KpiChartProgressBar;
|
|
485
|
+
Footer: typeof KpiChartFooter;
|
|
486
|
+
Separator: typeof KpiChartSeparator;
|
|
487
|
+
Group: import("react").ForwardRefExoticComponent<KpiChartGroupProps & import("react").RefAttributes<View>>;
|
|
488
|
+
};
|
|
489
|
+
export {};
|
|
490
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/kpi-chart/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/menu/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,OAAO,EASL,KAAK,YAAY,EACjB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAAmB,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAcpF,OAAO,EAAW,KAAK,mBAAmB,EAAE,KAAK,YAAY,EAAE,MAAM,qBAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/menu/index.tsx"],"names":[],"mappings":"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"}
|