@krizaka/charts 0.3.1 → 0.5.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/actions-5VG352VZ.js +53 -0
- package/dist/actions-5VG352VZ.js.map +1 -0
- package/dist/bar.d.ts +3 -3
- package/dist/bar.js +7 -6
- package/dist/candlestick.d.ts +2 -2
- package/dist/candlestick.js +6 -5
- package/dist/card.d.ts +52 -0
- package/dist/card.js +19 -0
- package/dist/card.js.map +1 -0
- package/dist/{cartesian-BRhNQ3ib.d.ts → cartesian-CEY_wwe_.d.ts} +12 -2
- package/dist/chart.d.ts +2 -2
- package/dist/chart.js +5 -4
- package/dist/{chunk-BV4DBGN7.js → chunk-7W4T255Q.js} +4 -4
- package/dist/{chunk-W5ILLSPK.js → chunk-AGSSNMK5.js} +5 -5
- package/dist/{chunk-VKZZY2QD.js → chunk-FE4LUGAE.js} +5 -5
- package/dist/{chunk-ARARFMNE.js → chunk-FIQHMJZK.js} +5 -5
- package/dist/chunk-FIQHMJZK.js.map +1 -0
- package/dist/{chunk-ANUCSRUN.js → chunk-GD7TWEN3.js} +3 -3
- package/dist/chunk-GRRFPI27.js +89 -0
- package/dist/chunk-GRRFPI27.js.map +1 -0
- package/dist/{chunk-SLEJDQ3A.js → chunk-HH65IEUV.js} +3 -3
- package/dist/{chunk-OIRHLJBC.js → chunk-IJTI6VJD.js} +3 -3
- package/dist/{chunk-WVTIKOII.js → chunk-IURCLBUQ.js} +2 -2
- package/dist/{chunk-CVWSMUUB.js → chunk-JST4HJC3.js} +33 -15
- package/dist/chunk-JST4HJC3.js.map +1 -0
- package/dist/{chunk-IKQV3NSL.js → chunk-KERGFVSN.js} +3 -3
- package/dist/{chunk-XDDALY4C.js → chunk-KMQ7RANJ.js} +5 -5
- package/dist/{chunk-NCIQMRV3.js → chunk-LLUQEK5J.js} +5 -5
- package/dist/{chunk-AA5EWWYV.js → chunk-LZPZWBBY.js} +2 -2
- package/dist/{chunk-PBQV3B6O.js → chunk-MK2ZFUWM.js} +31 -16
- package/dist/chunk-MK2ZFUWM.js.map +1 -0
- package/dist/{chunk-CSSZLFLO.js → chunk-MRGMLDNS.js} +5 -5
- package/dist/{chunk-I3D7KUGN.js → chunk-NLTZWJLV.js} +3 -3
- package/dist/{chunk-PWMMXRMC.js → chunk-NV52AKHG.js} +3 -3
- package/dist/{chunk-MXLITIGU.js → chunk-NWJ5VDN7.js} +5 -5
- package/dist/{chunk-3CJHBJXA.js → chunk-OVASCEGF.js} +12 -73
- package/dist/chunk-OVASCEGF.js.map +1 -0
- package/dist/{chunk-EQLC2QVN.js → chunk-OZOAKP5F.js} +4 -4
- package/dist/chunk-OZOAKP5F.js.map +1 -0
- package/dist/{chunk-KNDHO67X.js → chunk-P2NK5L3B.js} +3 -3
- package/dist/{chunk-JTKR7ZWP.js → chunk-P6RS2L23.js} +140 -36
- package/dist/chunk-P6RS2L23.js.map +1 -0
- package/dist/{chunk-W5FX4TU3.js → chunk-PGD6SH5I.js} +30 -2
- package/dist/chunk-PGD6SH5I.js.map +1 -0
- package/dist/{chunk-4LBXEAGC.js → chunk-PWZHIGPO.js} +5 -5
- package/dist/{chunk-L2EKYWVI.js → chunk-VEOJNMPF.js} +3 -3
- package/dist/chunk-YHQFW2PR.js +71 -0
- package/dist/chunk-YHQFW2PR.js.map +1 -0
- package/dist/{chunk-C4MFZLJM.js → chunk-Z4T3JFNU.js} +2 -2
- package/dist/{chunk-EEP7PS2L.js → chunk-ZF7LVQTR.js} +3 -3
- package/dist/{context-BgYUymEO.d.ts → context-DNW7bJYw.d.ts} +19 -0
- package/dist/credits.d.ts +1 -1
- package/dist/credits.js +7 -6
- package/dist/earnings.d.ts +3 -3
- package/dist/earnings.js +8 -7
- package/dist/{frame-I7_xYGy5.d.ts → frame-B1HDNm7c.d.ts} +9 -5
- package/dist/funnel.d.ts +2 -2
- package/dist/funnel.js +6 -5
- package/dist/gauge.d.ts +2 -2
- package/dist/gauge.js +4 -3
- package/dist/geo.d.ts +2 -2
- package/dist/geo.js +5 -4
- package/dist/globe.d.ts +2 -2
- package/dist/globe.js +4 -3
- package/dist/goal.d.ts +2 -2
- package/dist/goal.js +5 -4
- package/dist/heatmap.d.ts +2 -2
- package/dist/heatmap.js +6 -5
- package/dist/index.d.ts +5 -3
- package/dist/index.js +45 -37
- package/dist/latency.d.ts +3 -3
- package/dist/latency.js +8 -7
- package/dist/line.d.ts +3 -3
- package/dist/line.js +7 -6
- package/dist/native.d.ts +19 -0
- package/dist/native.js +13 -1
- package/dist/native.js.map +1 -1
- package/dist/pie.d.ts +2 -2
- package/dist/pie.js +6 -5
- package/dist/provider.d.ts +2 -2
- package/dist/provider.js +4 -2
- package/dist/radar.d.ts +2 -2
- package/dist/radar.js +6 -5
- package/dist/sankey.d.ts +2 -2
- package/dist/sankey.js +6 -5
- package/dist/scatter.d.ts +2 -2
- package/dist/scatter.js +6 -5
- package/dist/sparkline.d.ts +2 -2
- package/dist/sparkline.js +6 -5
- package/dist/table-sheet-CQBIAV5N.js +36 -0
- package/dist/table-sheet-CQBIAV5N.js.map +1 -0
- package/dist/throughput.d.ts +3 -3
- package/dist/throughput.js +8 -7
- package/dist/ticker.d.ts +3 -3
- package/dist/ticker.js +8 -7
- package/dist/treemap.d.ts +2 -2
- package/dist/treemap.js +7 -6
- package/package.json +292 -50
- package/registry/area-chart.json +93 -12
- package/registry/bar-chart.json +93 -12
- package/registry/calendar-heatmap.json +59 -18
- package/registry/candlestick.json +59 -18
- package/registry/chart-card.json +248 -0
- package/registry/chart.json +53 -12
- package/registry/charts-provider.json +13 -2
- package/registry/credit-usage.json +11 -0
- package/registry/earnings-chart.json +93 -12
- package/registry/examples/chart-card/before-after.d.ts +4 -0
- package/registry/examples/chart-card/before-after.js +22 -0
- package/registry/examples/chart-card/before-after.tsx +22 -0
- package/registry/examples/chart-card/jobs-activity.d.ts +4 -0
- package/registry/examples/chart-card/jobs-activity.js +20 -0
- package/registry/examples/chart-card/jobs-activity.tsx +20 -0
- package/registry/examples/chart-card/sparse-and-empty.d.ts +4 -0
- package/registry/examples/chart-card/sparse-and-empty.js +16 -0
- package/registry/examples/chart-card/sparse-and-empty.tsx +18 -0
- package/registry/examples/chart-card/usage-donut.d.ts +4 -0
- package/registry/examples/chart-card/usage-donut.js +18 -0
- package/registry/examples/chart-card/usage-donut.tsx +18 -0
- package/registry/examples/charts-provider/french-orazaka.js +1 -1
- package/registry/examples/charts-provider/french-orazaka.tsx +1 -1
- package/registry/examples/kpi-stat/dashboard-row.d.ts +4 -0
- package/registry/examples/kpi-stat/dashboard-row.js +19 -0
- package/registry/examples/kpi-stat/dashboard-row.tsx +17 -0
- package/registry/examples/kpi-stat/single.d.ts +4 -0
- package/registry/examples/kpi-stat/single.js +11 -0
- package/registry/examples/kpi-stat/single.tsx +6 -0
- package/registry/funnel.json +59 -18
- package/registry/gauge.json +53 -14
- package/registry/geo-map.json +59 -18
- package/registry/globe.json +54 -12
- package/registry/goal-progress.json +47 -8
- package/registry/heatmap.json +59 -18
- package/registry/index.json +362 -1
- package/registry/job-throughput.json +93 -12
- package/registry/kpi-stat.json +309 -0
- package/registry/latency-chart.json +93 -12
- package/registry/line-chart.json +93 -12
- package/registry/pie-chart.json +103 -36
- package/registry/price-ticker.json +93 -12
- package/registry/radar-chart.json +59 -18
- package/registry/sankey.json +59 -18
- package/registry/scatter-chart.json +59 -18
- package/registry/sparkline.json +49 -10
- package/registry/treemap.json +53 -12
- package/dist/chunk-3CJHBJXA.js.map +0 -1
- package/dist/chunk-ARARFMNE.js.map +0 -1
- package/dist/chunk-CVWSMUUB.js.map +0 -1
- package/dist/chunk-EQLC2QVN.js.map +0 -1
- package/dist/chunk-JTKR7ZWP.js.map +0 -1
- package/dist/chunk-PBQV3B6O.js.map +0 -1
- package/dist/chunk-W5FX4TU3.js.map +0 -1
- /package/dist/{chunk-BV4DBGN7.js.map → chunk-7W4T255Q.js.map} +0 -0
- /package/dist/{chunk-W5ILLSPK.js.map → chunk-AGSSNMK5.js.map} +0 -0
- /package/dist/{chunk-VKZZY2QD.js.map → chunk-FE4LUGAE.js.map} +0 -0
- /package/dist/{chunk-ANUCSRUN.js.map → chunk-GD7TWEN3.js.map} +0 -0
- /package/dist/{chunk-SLEJDQ3A.js.map → chunk-HH65IEUV.js.map} +0 -0
- /package/dist/{chunk-OIRHLJBC.js.map → chunk-IJTI6VJD.js.map} +0 -0
- /package/dist/{chunk-WVTIKOII.js.map → chunk-IURCLBUQ.js.map} +0 -0
- /package/dist/{chunk-IKQV3NSL.js.map → chunk-KERGFVSN.js.map} +0 -0
- /package/dist/{chunk-XDDALY4C.js.map → chunk-KMQ7RANJ.js.map} +0 -0
- /package/dist/{chunk-NCIQMRV3.js.map → chunk-LLUQEK5J.js.map} +0 -0
- /package/dist/{chunk-AA5EWWYV.js.map → chunk-LZPZWBBY.js.map} +0 -0
- /package/dist/{chunk-CSSZLFLO.js.map → chunk-MRGMLDNS.js.map} +0 -0
- /package/dist/{chunk-I3D7KUGN.js.map → chunk-NLTZWJLV.js.map} +0 -0
- /package/dist/{chunk-PWMMXRMC.js.map → chunk-NV52AKHG.js.map} +0 -0
- /package/dist/{chunk-MXLITIGU.js.map → chunk-NWJ5VDN7.js.map} +0 -0
- /package/dist/{chunk-KNDHO67X.js.map → chunk-P2NK5L3B.js.map} +0 -0
- /package/dist/{chunk-4LBXEAGC.js.map → chunk-PWZHIGPO.js.map} +0 -0
- /package/dist/{chunk-L2EKYWVI.js.map → chunk-VEOJNMPF.js.map} +0 -0
- /package/dist/{chunk-C4MFZLJM.js.map → chunk-Z4T3JFNU.js.map} +0 -0
- /package/dist/{chunk-EEP7PS2L.js.map → chunk-ZF7LVQTR.js.map} +0 -0
|
@@ -8,6 +8,19 @@
|
|
|
8
8
|
"status": "beta",
|
|
9
9
|
"category": "charts",
|
|
10
10
|
"platforms": "web",
|
|
11
|
+
"parity": {
|
|
12
|
+
"web": {
|
|
13
|
+
"state": "yes"
|
|
14
|
+
},
|
|
15
|
+
"native": {
|
|
16
|
+
"state": "gap",
|
|
17
|
+
"reason": "Advanced tier: no phone screen needs it yet.",
|
|
18
|
+
"issue": "krizaka/krizaka-ui#280"
|
|
19
|
+
},
|
|
20
|
+
"desktop": {
|
|
21
|
+
"state": "yes"
|
|
22
|
+
}
|
|
23
|
+
},
|
|
11
24
|
"engine": "echarts",
|
|
12
25
|
"tier": "advanced",
|
|
13
26
|
"whenToUse": [
|
|
@@ -102,13 +115,6 @@
|
|
|
102
115
|
"description": "The field of the price at the start of the period.",
|
|
103
116
|
"required": true
|
|
104
117
|
},
|
|
105
|
-
{
|
|
106
|
-
"name": "title",
|
|
107
|
-
"type": "string",
|
|
108
|
-
"default": null,
|
|
109
|
-
"description": "What the chart shows, in a few words: its accessible name, and its heading unless `hideTitle`.",
|
|
110
|
-
"required": true
|
|
111
|
-
},
|
|
112
118
|
{
|
|
113
119
|
"name": "x",
|
|
114
120
|
"type": "string | ((datum: T, index: number) => unknown)",
|
|
@@ -116,6 +122,13 @@
|
|
|
116
122
|
"description": "The field of the period (a date, an hour).",
|
|
117
123
|
"required": true
|
|
118
124
|
},
|
|
125
|
+
{
|
|
126
|
+
"name": "actionsMenu",
|
|
127
|
+
"type": "boolean",
|
|
128
|
+
"default": null,
|
|
129
|
+
"description": "The ⋯ actions menu of the kit. `false`: the former “Show data” and export buttons, drawn in line. Default true.",
|
|
130
|
+
"required": false
|
|
131
|
+
},
|
|
119
132
|
{
|
|
120
133
|
"name": "brand",
|
|
121
134
|
"type": "BrandId",
|
|
@@ -141,7 +154,7 @@
|
|
|
141
154
|
"name": "dataTable",
|
|
142
155
|
"type": "boolean",
|
|
143
156
|
"default": null,
|
|
144
|
-
"description": "
|
|
157
|
+
"description": "“View as table” in the actions menu (the table is in the page for screen readers either way). Default true.",
|
|
145
158
|
"required": false
|
|
146
159
|
},
|
|
147
160
|
{
|
|
@@ -169,7 +182,7 @@
|
|
|
169
182
|
"name": "exportable",
|
|
170
183
|
"type": "boolean | readonly ExportFormat[]",
|
|
171
184
|
"default": null,
|
|
172
|
-
"description": "
|
|
185
|
+
"description": "The downloads of the actions menu: all three by default, or the formats you want, or `false` for none.",
|
|
173
186
|
"required": false
|
|
174
187
|
},
|
|
175
188
|
{
|
|
@@ -200,6 +213,13 @@
|
|
|
200
213
|
"description": "The id of the figure.",
|
|
201
214
|
"required": false
|
|
202
215
|
},
|
|
216
|
+
{
|
|
217
|
+
"name": "insight",
|
|
218
|
+
"type": "ReactNode",
|
|
219
|
+
"default": null,
|
|
220
|
+
"description": "One line that says what the chart shows, between the title and the chart: “100 jobs · +100 % vs last week”.",
|
|
221
|
+
"required": false
|
|
222
|
+
},
|
|
203
223
|
{
|
|
204
224
|
"name": "labels",
|
|
205
225
|
"type": "ChartLabelsInput",
|
|
@@ -263,6 +283,13 @@
|
|
|
263
283
|
"description": "Horizontal lines: a reserve price, a target.",
|
|
264
284
|
"required": false
|
|
265
285
|
},
|
|
286
|
+
{
|
|
287
|
+
"name": "title",
|
|
288
|
+
"type": "string",
|
|
289
|
+
"default": null,
|
|
290
|
+
"description": "What the chart shows, in a few words: its accessible name, and its heading unless `hideTitle`. Inside a `ChartCard`, the card's title is the default.",
|
|
291
|
+
"required": false
|
|
292
|
+
},
|
|
266
293
|
{
|
|
267
294
|
"name": "volume",
|
|
268
295
|
"type": "string | ((datum: T, index: number) => number)",
|
|
@@ -358,13 +385,6 @@
|
|
|
358
385
|
"description": "The field of the price at the start of the period.",
|
|
359
386
|
"required": true
|
|
360
387
|
},
|
|
361
|
-
{
|
|
362
|
-
"name": "title",
|
|
363
|
-
"type": "string",
|
|
364
|
-
"default": null,
|
|
365
|
-
"description": "What the chart shows, in a few words: its accessible name, and its heading unless `hideTitle`.",
|
|
366
|
-
"required": true
|
|
367
|
-
},
|
|
368
388
|
{
|
|
369
389
|
"name": "x",
|
|
370
390
|
"type": "string | ((datum: T, index: number) => unknown)",
|
|
@@ -372,6 +392,13 @@
|
|
|
372
392
|
"description": "The field of the period (a date, an hour).",
|
|
373
393
|
"required": true
|
|
374
394
|
},
|
|
395
|
+
{
|
|
396
|
+
"name": "actionsMenu",
|
|
397
|
+
"type": "boolean",
|
|
398
|
+
"default": null,
|
|
399
|
+
"description": "The ⋯ actions menu of the kit. `false`: the former “Show data” and export buttons, drawn in line. Default true.",
|
|
400
|
+
"required": false
|
|
401
|
+
},
|
|
375
402
|
{
|
|
376
403
|
"name": "brand",
|
|
377
404
|
"type": "BrandId",
|
|
@@ -397,7 +424,7 @@
|
|
|
397
424
|
"name": "dataTable",
|
|
398
425
|
"type": "boolean",
|
|
399
426
|
"default": null,
|
|
400
|
-
"description": "
|
|
427
|
+
"description": "“View as table” in the actions menu (the table is in the page for screen readers either way). Default true.",
|
|
401
428
|
"required": false
|
|
402
429
|
},
|
|
403
430
|
{
|
|
@@ -425,7 +452,7 @@
|
|
|
425
452
|
"name": "exportable",
|
|
426
453
|
"type": "boolean | readonly ExportFormat[]",
|
|
427
454
|
"default": null,
|
|
428
|
-
"description": "
|
|
455
|
+
"description": "The downloads of the actions menu: all three by default, or the formats you want, or `false` for none.",
|
|
429
456
|
"required": false
|
|
430
457
|
},
|
|
431
458
|
{
|
|
@@ -456,6 +483,13 @@
|
|
|
456
483
|
"description": "The id of the figure.",
|
|
457
484
|
"required": false
|
|
458
485
|
},
|
|
486
|
+
{
|
|
487
|
+
"name": "insight",
|
|
488
|
+
"type": "ReactNode",
|
|
489
|
+
"default": null,
|
|
490
|
+
"description": "One line that says what the chart shows, between the title and the chart: “100 jobs · +100 % vs last week”.",
|
|
491
|
+
"required": false
|
|
492
|
+
},
|
|
459
493
|
{
|
|
460
494
|
"name": "labels",
|
|
461
495
|
"type": "ChartLabelsInput",
|
|
@@ -519,6 +553,13 @@
|
|
|
519
553
|
"description": "Horizontal lines: a reserve price, a target.",
|
|
520
554
|
"required": false
|
|
521
555
|
},
|
|
556
|
+
{
|
|
557
|
+
"name": "title",
|
|
558
|
+
"type": "string",
|
|
559
|
+
"default": null,
|
|
560
|
+
"description": "What the chart shows, in a few words: its accessible name, and its heading unless `hideTitle`. Inside a `ChartCard`, the card's title is the default.",
|
|
561
|
+
"required": false
|
|
562
|
+
},
|
|
522
563
|
{
|
|
523
564
|
"name": "volume",
|
|
524
565
|
"type": "string | ((datum: T, index: number) => number)",
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "chart-card",
|
|
3
|
+
"package": "@krizaka/charts",
|
|
4
|
+
"type": "chart",
|
|
5
|
+
"title": "Chart card",
|
|
6
|
+
"summary": "The frame of a chart: title, one line of insight, the chart, a footer, and the actions menu (view as table, download, copy) — used everywhere a chart is shown.",
|
|
7
|
+
"description": "The frame of a chart: title, one line of insight, the chart, a footer, and the actions menu (view as table, download, copy) — used everywhere a chart is shown.",
|
|
8
|
+
"status": "beta",
|
|
9
|
+
"category": "charts",
|
|
10
|
+
"platforms": "web",
|
|
11
|
+
"parity": {
|
|
12
|
+
"web": {
|
|
13
|
+
"state": "yes"
|
|
14
|
+
},
|
|
15
|
+
"native": {
|
|
16
|
+
"state": "gap",
|
|
17
|
+
"reason": "A phone dashboard frames its charts in a Card by hand today.",
|
|
18
|
+
"issue": "krizaka/krizaka-ui#275"
|
|
19
|
+
},
|
|
20
|
+
"desktop": {
|
|
21
|
+
"state": "yes"
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"engine": null,
|
|
25
|
+
"tier": "ready-made",
|
|
26
|
+
"whenToUse": [
|
|
27
|
+
"Every chart of a dashboard or a usage page: the same frame, the same hierarchy, the same actions.",
|
|
28
|
+
"A chart that needs a period switch or a filter beside its actions menu."
|
|
29
|
+
],
|
|
30
|
+
"whenNotToUse": [
|
|
31
|
+
{
|
|
32
|
+
"when": "A figure with its trend.",
|
|
33
|
+
"use": "kpi-stat"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"when": "A chart that sits inside running text.",
|
|
37
|
+
"use": "sparkline"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"when": "On React Native: the native charts draw their own frame."
|
|
41
|
+
}
|
|
42
|
+
],
|
|
43
|
+
"bestPractices": [
|
|
44
|
+
"Write the insight from the data, in one line: the figure first, then the change (`100 jobs · +100 % vs last week`).",
|
|
45
|
+
"Leave the chart without a title: the card hands it its own, which stays the chart's accessible name.",
|
|
46
|
+
"Zoom the time axis on the period that has data with `autoRange` rather than drawing empty days.",
|
|
47
|
+
"Keep the footer for the source and the freshness; never a second insight."
|
|
48
|
+
],
|
|
49
|
+
"accessibility": {
|
|
50
|
+
"keyboard": [],
|
|
51
|
+
"notes": [
|
|
52
|
+
"The chart keeps its data table in the page, its written summary and its keyboard walk inside the card.",
|
|
53
|
+
"The actions menu is a real menu: arrow keys, Escape, focus returned to the ⋯ button; the table opens in a sheet with a focus trap.",
|
|
54
|
+
"Legend chips are toggle buttons (`aria-pressed`); the last visible series cannot be switched off."
|
|
55
|
+
]
|
|
56
|
+
},
|
|
57
|
+
"related": [
|
|
58
|
+
"kpi-stat",
|
|
59
|
+
"line-chart",
|
|
60
|
+
"bar-chart",
|
|
61
|
+
"pie-chart",
|
|
62
|
+
"sparkline"
|
|
63
|
+
],
|
|
64
|
+
"source": "packages/charts/src/meta/chart-card.ts",
|
|
65
|
+
"install": {
|
|
66
|
+
"web": "npm install @krizaka/charts",
|
|
67
|
+
"native": "npx expo install react-native-svg\nnpm install @krizaka/charts"
|
|
68
|
+
},
|
|
69
|
+
"web": {
|
|
70
|
+
"entry": "@krizaka/charts/card",
|
|
71
|
+
"import": "import { ChartCard } from \"@krizaka/charts/card\";",
|
|
72
|
+
"props": [
|
|
73
|
+
{
|
|
74
|
+
"component": "ChartCard",
|
|
75
|
+
"description": "The frame of a chart: title, insight, actions, chart, footer — used everywhere a chart is shown.",
|
|
76
|
+
"props": [
|
|
77
|
+
{
|
|
78
|
+
"name": "children",
|
|
79
|
+
"type": "ReactNode",
|
|
80
|
+
"default": null,
|
|
81
|
+
"description": "The chart (`LineChart`, `BarChart`, `DonutChart`…), without its own title.",
|
|
82
|
+
"required": true
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"name": "title",
|
|
86
|
+
"type": "string",
|
|
87
|
+
"default": null,
|
|
88
|
+
"description": "What the chart shows, in a few words (a heading and the chart's accessible name).",
|
|
89
|
+
"required": true
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"name": "actions",
|
|
93
|
+
"type": "ReactNode",
|
|
94
|
+
"default": null,
|
|
95
|
+
"description": "Controls beside the actions menu: a period switch, a filter.",
|
|
96
|
+
"required": false
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"name": "className",
|
|
100
|
+
"type": "string",
|
|
101
|
+
"default": null,
|
|
102
|
+
"description": "A class on the card (layout: grid placement).",
|
|
103
|
+
"required": false
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"name": "description",
|
|
107
|
+
"type": "ReactNode",
|
|
108
|
+
"default": null,
|
|
109
|
+
"description": "The period, the unit, the source — under the insight.",
|
|
110
|
+
"required": false
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"name": "footer",
|
|
114
|
+
"type": "ReactNode",
|
|
115
|
+
"default": null,
|
|
116
|
+
"description": "A line under the chart: the source, the freshness, a link.",
|
|
117
|
+
"required": false
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"name": "id",
|
|
121
|
+
"type": "string",
|
|
122
|
+
"default": null,
|
|
123
|
+
"description": "The id of the card.",
|
|
124
|
+
"required": false
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
"name": "insight",
|
|
128
|
+
"type": "ReactNode",
|
|
129
|
+
"default": null,
|
|
130
|
+
"description": "One line that says what the chart shows: “100 jobs · +100 % vs last week”. Written by the app, from its data.",
|
|
131
|
+
"required": false
|
|
132
|
+
}
|
|
133
|
+
]
|
|
134
|
+
}
|
|
135
|
+
],
|
|
136
|
+
"examples": [
|
|
137
|
+
{
|
|
138
|
+
"name": "jobs-activity",
|
|
139
|
+
"title": "Jobs per day",
|
|
140
|
+
"description": "Stacked bars by outcome, an insight, a footer and the actions menu.",
|
|
141
|
+
"path": "examples/chart-card/jobs-activity.tsx",
|
|
142
|
+
"module": "@krizaka/charts/registry/examples/chart-card/jobs-activity",
|
|
143
|
+
"code": "import { BarChart } from \"@krizaka/charts/bar\";\nimport { ChartCard } from \"@krizaka/charts/card\";\n\nconst days = [\"2026-10-03\", \"2026-10-04\", \"2026-10-05\", \"2026-10-06\", \"2026-10-07\", \"2026-10-08\", \"2026-10-09\", \"2026-10-10\"];\nconst completed = [12, 18, 9, 22, 31, 27, 35, 41];\nconst failed = [1, 0, 2, 1, 3, 0, 1, 2];\nconst data = days.map((day, i) => ({ day, completed: completed[i], failed: failed[i] }));\nconst series = [\n { key: \"completed\", label: \"Completed\", color: \"accent\" },\n { key: \"failed\", label: \"Failed\", color: \"danger\" },\n] as const;\n\n// The card hands the chart its title and insight; the ⋯ menu (table, CSV, PNG, SVG, copy) comes with it.\nexport default function JobsActivity() {\n return (\n <ChartCard title=\"Jobs per day\" insight=\"195 jobs · +24 % vs the week before\" footer=\"Read from your own jobs — nothing estimated.\">\n <BarChart data={data} x=\"day\" xFormat=\"day\" xLabel=\"Day\" series={series} stacked format=\"integer\" height={220} autoRange />\n </ChartCard>\n );\n}\n"
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
"name": "usage-donut",
|
|
147
|
+
"title": "What you made",
|
|
148
|
+
"description": "A donut whose legend chips carry values and filter the ring.",
|
|
149
|
+
"path": "examples/chart-card/usage-donut.tsx",
|
|
150
|
+
"module": "@krizaka/charts/registry/examples/chart-card/usage-donut",
|
|
151
|
+
"code": "import { ChartCard } from \"@krizaka/charts/card\";\nimport { DonutChart } from \"@krizaka/charts/pie\";\n\nconst kinds = [\n { kind: \"Images\", jobs: 96 },\n { kind: \"Video\", jobs: 41 },\n { kind: \"Audio\", jobs: 33 },\n { kind: \"Text\", jobs: 25 },\n];\n\n// Legend chips carry the value and the share, and switch a part off: click “Video” and the ring re-measures.\nexport default function UsageDonut() {\n return (\n <ChartCard title=\"What you made\" insight=\"195 jobs, most of them images\" description=\"Jobs by kind, last 7 days.\">\n <DonutChart data={kinds} label=\"kind\" value=\"jobs\" labelHeader=\"Kind\" valueHeader=\"Jobs\" centerLabel=\"jobs\" format=\"integer\" height={220} />\n </ChartCard>\n );\n}\n"
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
"name": "sparse-and-empty",
|
|
155
|
+
"title": "Sparse and empty",
|
|
156
|
+
"description": "The time axis zoomed on the active period, and a calm empty state.",
|
|
157
|
+
"path": "examples/chart-card/sparse-and-empty.tsx",
|
|
158
|
+
"module": "@krizaka/charts/registry/examples/chart-card/sparse-and-empty",
|
|
159
|
+
"code": "import { BarChart } from \"@krizaka/charts/bar\";\nimport { ChartCard } from \"@krizaka/charts/card\";\n\nconst days = Array.from({ length: 30 }, (_, i) => ({ day: `2026-09-${String(i + 1).padStart(2, \"0\")}`, jobs: i === 27 ? 100 : 0 }));\n\n// 29 empty days and one bar: `autoRange` zooms on the active period and says how sparse it is. No data: a calm state.\nexport default function SparseAndEmpty() {\n return (\n <div style={{ display: \"grid\", gap: 16, gridTemplateColumns: \"repeat(auto-fit, minmax(280px, 1fr))\" }}>\n <ChartCard title=\"Jobs per day\" insight=\"100 jobs on Sep 28\">\n <BarChart data={days} x=\"day\" xFormat=\"day\" y=\"jobs\" yLabel=\"Jobs\" format=\"integer\" height={180} autoRange />\n </ChartCard>\n <ChartCard title=\"Failed jobs\" insight=\"Nothing failed yet\">\n <BarChart data={[]} x=\"day\" y=\"jobs\" yLabel=\"Jobs\" height={180} />\n </ChartCard>\n </div>\n );\n}\n"
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
"name": "before-after",
|
|
163
|
+
"title": "Before and after",
|
|
164
|
+
"description": "The same chart bare, then in a ChartCard.",
|
|
165
|
+
"path": "examples/chart-card/before-after.tsx",
|
|
166
|
+
"module": "@krizaka/charts/registry/examples/chart-card/before-after",
|
|
167
|
+
"code": "import { BarChart } from \"@krizaka/charts/bar\";\nimport { ChartCard } from \"@krizaka/charts/card\";\n\nconst data = [\"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\"].map((day, i) => ({ day, jobs: [12, 18, 9, 22, 31, 27, 35][i] }));\n\n// Before: a bare chart, “Show data” and the exports as text buttons. After: the same chart in a ChartCard.\nexport default function BeforeAfter() {\n return (\n <div style={{ display: \"grid\", gap: 16, gridTemplateColumns: \"repeat(auto-fit, minmax(280px, 1fr))\" }}>\n <div>\n <p style={{ margin: \"0 0 8px\", fontSize: 12, color: \"var(--kz-text-secondary)\" }}>Before</p>\n <BarChart title=\"Jobs per day\" data={data} x=\"day\" y=\"jobs\" yLabel=\"Jobs\" height={180} actionsMenu={false} exportable />\n </div>\n <div>\n <p style={{ margin: \"0 0 8px\", fontSize: 12, color: \"var(--kz-text-secondary)\" }}>After</p>\n <ChartCard title=\"Jobs per day\" insight=\"154 jobs · busiest on Sunday\" footer=\"Source: your own jobs.\">\n <BarChart data={data} x=\"day\" y=\"jobs\" yLabel=\"Jobs\" height={180} />\n </ChartCard>\n </div>\n </div>\n );\n}\n"
|
|
168
|
+
}
|
|
169
|
+
]
|
|
170
|
+
},
|
|
171
|
+
"native": null,
|
|
172
|
+
"files": [],
|
|
173
|
+
"dependencies": [
|
|
174
|
+
"@krizaka/intl@workspace:^",
|
|
175
|
+
"d3-geo@^3.1.1",
|
|
176
|
+
"echarts@^6.1.0",
|
|
177
|
+
"topojson-client@^3.1.0"
|
|
178
|
+
],
|
|
179
|
+
"registryDependencies": [],
|
|
180
|
+
"demo": {
|
|
181
|
+
"path": "examples/chart-card/jobs-activity.tsx",
|
|
182
|
+
"content": "import { BarChart } from \"@krizaka/charts/bar\";\nimport { ChartCard } from \"@krizaka/charts/card\";\n\nconst days = [\"2026-10-03\", \"2026-10-04\", \"2026-10-05\", \"2026-10-06\", \"2026-10-07\", \"2026-10-08\", \"2026-10-09\", \"2026-10-10\"];\nconst completed = [12, 18, 9, 22, 31, 27, 35, 41];\nconst failed = [1, 0, 2, 1, 3, 0, 1, 2];\nconst data = days.map((day, i) => ({ day, completed: completed[i], failed: failed[i] }));\nconst series = [\n { key: \"completed\", label: \"Completed\", color: \"accent\" },\n { key: \"failed\", label: \"Failed\", color: \"danger\" },\n] as const;\n\n// The card hands the chart its title and insight; the ⋯ menu (table, CSV, PNG, SVG, copy) comes with it.\nexport default function JobsActivity() {\n return (\n <ChartCard title=\"Jobs per day\" insight=\"195 jobs · +24 % vs the week before\" footer=\"Read from your own jobs — nothing estimated.\">\n <BarChart data={data} x=\"day\" xFormat=\"day\" xLabel=\"Day\" series={series} stacked format=\"integer\" height={220} autoRange />\n </ChartCard>\n );\n}\n"
|
|
183
|
+
},
|
|
184
|
+
"props": [
|
|
185
|
+
{
|
|
186
|
+
"component": "ChartCard",
|
|
187
|
+
"description": "The frame of a chart: title, insight, actions, chart, footer — used everywhere a chart is shown.",
|
|
188
|
+
"props": [
|
|
189
|
+
{
|
|
190
|
+
"name": "children",
|
|
191
|
+
"type": "ReactNode",
|
|
192
|
+
"default": null,
|
|
193
|
+
"description": "The chart (`LineChart`, `BarChart`, `DonutChart`…), without its own title.",
|
|
194
|
+
"required": true
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
"name": "title",
|
|
198
|
+
"type": "string",
|
|
199
|
+
"default": null,
|
|
200
|
+
"description": "What the chart shows, in a few words (a heading and the chart's accessible name).",
|
|
201
|
+
"required": true
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
"name": "actions",
|
|
205
|
+
"type": "ReactNode",
|
|
206
|
+
"default": null,
|
|
207
|
+
"description": "Controls beside the actions menu: a period switch, a filter.",
|
|
208
|
+
"required": false
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
"name": "className",
|
|
212
|
+
"type": "string",
|
|
213
|
+
"default": null,
|
|
214
|
+
"description": "A class on the card (layout: grid placement).",
|
|
215
|
+
"required": false
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
"name": "description",
|
|
219
|
+
"type": "ReactNode",
|
|
220
|
+
"default": null,
|
|
221
|
+
"description": "The period, the unit, the source — under the insight.",
|
|
222
|
+
"required": false
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
"name": "footer",
|
|
226
|
+
"type": "ReactNode",
|
|
227
|
+
"default": null,
|
|
228
|
+
"description": "A line under the chart: the source, the freshness, a link.",
|
|
229
|
+
"required": false
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
"name": "id",
|
|
233
|
+
"type": "string",
|
|
234
|
+
"default": null,
|
|
235
|
+
"description": "The id of the card.",
|
|
236
|
+
"required": false
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
"name": "insight",
|
|
240
|
+
"type": "ReactNode",
|
|
241
|
+
"default": null,
|
|
242
|
+
"description": "One line that says what the chart shows: “100 jobs · +100 % vs last week”. Written by the app, from its data.",
|
|
243
|
+
"required": false
|
|
244
|
+
}
|
|
245
|
+
]
|
|
246
|
+
}
|
|
247
|
+
]
|
|
248
|
+
}
|
package/registry/chart.json
CHANGED
|
@@ -8,6 +8,19 @@
|
|
|
8
8
|
"status": "beta",
|
|
9
9
|
"category": "charts",
|
|
10
10
|
"platforms": "web",
|
|
11
|
+
"parity": {
|
|
12
|
+
"web": {
|
|
13
|
+
"state": "yes"
|
|
14
|
+
},
|
|
15
|
+
"native": {
|
|
16
|
+
"state": "n/a",
|
|
17
|
+
"reason": "The ECharts escape hatch needs the DOM; a phone draws the SVG charts of the native entry.",
|
|
18
|
+
"use": "line-chart"
|
|
19
|
+
},
|
|
20
|
+
"desktop": {
|
|
21
|
+
"state": "yes"
|
|
22
|
+
}
|
|
23
|
+
},
|
|
11
24
|
"engine": "echarts",
|
|
12
25
|
"tier": "advanced",
|
|
13
26
|
"whenToUse": [
|
|
@@ -89,11 +102,11 @@
|
|
|
89
102
|
"required": true
|
|
90
103
|
},
|
|
91
104
|
{
|
|
92
|
-
"name": "
|
|
93
|
-
"type": "
|
|
105
|
+
"name": "actionsMenu",
|
|
106
|
+
"type": "boolean",
|
|
94
107
|
"default": null,
|
|
95
|
-
"description": "
|
|
96
|
-
"required":
|
|
108
|
+
"description": "The ⋯ actions menu of the kit. `false`: the former “Show data” and export buttons, drawn in line. Default true.",
|
|
109
|
+
"required": false
|
|
97
110
|
},
|
|
98
111
|
{
|
|
99
112
|
"name": "brand",
|
|
@@ -113,7 +126,7 @@
|
|
|
113
126
|
"name": "dataTable",
|
|
114
127
|
"type": "boolean",
|
|
115
128
|
"default": null,
|
|
116
|
-
"description": "
|
|
129
|
+
"description": "“View as table” in the actions menu (the table is in the page for screen readers either way). Default true.",
|
|
117
130
|
"required": false
|
|
118
131
|
},
|
|
119
132
|
{
|
|
@@ -141,7 +154,7 @@
|
|
|
141
154
|
"name": "exportable",
|
|
142
155
|
"type": "boolean | readonly ExportFormat[]",
|
|
143
156
|
"default": null,
|
|
144
|
-
"description": "
|
|
157
|
+
"description": "The downloads of the actions menu: all three by default, or the formats you want, or `false` for none.",
|
|
145
158
|
"required": false
|
|
146
159
|
},
|
|
147
160
|
{
|
|
@@ -165,6 +178,13 @@
|
|
|
165
178
|
"description": "The id of the figure.",
|
|
166
179
|
"required": false
|
|
167
180
|
},
|
|
181
|
+
{
|
|
182
|
+
"name": "insight",
|
|
183
|
+
"type": "ReactNode",
|
|
184
|
+
"default": null,
|
|
185
|
+
"description": "One line that says what the chart shows, between the title and the chart: “100 jobs · +100 % vs last week”.",
|
|
186
|
+
"required": false
|
|
187
|
+
},
|
|
168
188
|
{
|
|
169
189
|
"name": "items",
|
|
170
190
|
"type": "readonly WalkItem[]",
|
|
@@ -234,6 +254,13 @@
|
|
|
234
254
|
"default": null,
|
|
235
255
|
"description": "The written summary: read by screen readers only (`\"hidden\"`, default), or shown under the chart (`\"visible\"`).",
|
|
236
256
|
"required": false
|
|
257
|
+
},
|
|
258
|
+
{
|
|
259
|
+
"name": "title",
|
|
260
|
+
"type": "string",
|
|
261
|
+
"default": null,
|
|
262
|
+
"description": "What the chart shows, in a few words: its accessible name, and its heading unless `hideTitle`. Inside a `ChartCard`, the card's title is the default.",
|
|
263
|
+
"required": false
|
|
237
264
|
}
|
|
238
265
|
]
|
|
239
266
|
}
|
|
@@ -289,11 +316,11 @@
|
|
|
289
316
|
"required": true
|
|
290
317
|
},
|
|
291
318
|
{
|
|
292
|
-
"name": "
|
|
293
|
-
"type": "
|
|
319
|
+
"name": "actionsMenu",
|
|
320
|
+
"type": "boolean",
|
|
294
321
|
"default": null,
|
|
295
|
-
"description": "
|
|
296
|
-
"required":
|
|
322
|
+
"description": "The ⋯ actions menu of the kit. `false`: the former “Show data” and export buttons, drawn in line. Default true.",
|
|
323
|
+
"required": false
|
|
297
324
|
},
|
|
298
325
|
{
|
|
299
326
|
"name": "brand",
|
|
@@ -313,7 +340,7 @@
|
|
|
313
340
|
"name": "dataTable",
|
|
314
341
|
"type": "boolean",
|
|
315
342
|
"default": null,
|
|
316
|
-
"description": "
|
|
343
|
+
"description": "“View as table” in the actions menu (the table is in the page for screen readers either way). Default true.",
|
|
317
344
|
"required": false
|
|
318
345
|
},
|
|
319
346
|
{
|
|
@@ -341,7 +368,7 @@
|
|
|
341
368
|
"name": "exportable",
|
|
342
369
|
"type": "boolean | readonly ExportFormat[]",
|
|
343
370
|
"default": null,
|
|
344
|
-
"description": "
|
|
371
|
+
"description": "The downloads of the actions menu: all three by default, or the formats you want, or `false` for none.",
|
|
345
372
|
"required": false
|
|
346
373
|
},
|
|
347
374
|
{
|
|
@@ -365,6 +392,13 @@
|
|
|
365
392
|
"description": "The id of the figure.",
|
|
366
393
|
"required": false
|
|
367
394
|
},
|
|
395
|
+
{
|
|
396
|
+
"name": "insight",
|
|
397
|
+
"type": "ReactNode",
|
|
398
|
+
"default": null,
|
|
399
|
+
"description": "One line that says what the chart shows, between the title and the chart: “100 jobs · +100 % vs last week”.",
|
|
400
|
+
"required": false
|
|
401
|
+
},
|
|
368
402
|
{
|
|
369
403
|
"name": "items",
|
|
370
404
|
"type": "readonly WalkItem[]",
|
|
@@ -434,6 +468,13 @@
|
|
|
434
468
|
"default": null,
|
|
435
469
|
"description": "The written summary: read by screen readers only (`\"hidden\"`, default), or shown under the chart (`\"visible\"`).",
|
|
436
470
|
"required": false
|
|
471
|
+
},
|
|
472
|
+
{
|
|
473
|
+
"name": "title",
|
|
474
|
+
"type": "string",
|
|
475
|
+
"default": null,
|
|
476
|
+
"description": "What the chart shows, in a few words: its accessible name, and its heading unless `hideTitle`. Inside a `ChartCard`, the card's title is the default.",
|
|
477
|
+
"required": false
|
|
437
478
|
}
|
|
438
479
|
]
|
|
439
480
|
}
|
|
@@ -8,6 +8,17 @@
|
|
|
8
8
|
"status": "beta",
|
|
9
9
|
"category": "charts",
|
|
10
10
|
"platforms": "both",
|
|
11
|
+
"parity": {
|
|
12
|
+
"web": {
|
|
13
|
+
"state": "yes"
|
|
14
|
+
},
|
|
15
|
+
"native": {
|
|
16
|
+
"state": "yes"
|
|
17
|
+
},
|
|
18
|
+
"desktop": {
|
|
19
|
+
"state": "yes"
|
|
20
|
+
}
|
|
21
|
+
},
|
|
11
22
|
"engine": null,
|
|
12
23
|
"tier": "core",
|
|
13
24
|
"whenToUse": [
|
|
@@ -79,7 +90,7 @@
|
|
|
79
90
|
"description": "Figures and dates in French, the Orazaka palette, the words translated.",
|
|
80
91
|
"path": "examples/charts-provider/french-orazaka.tsx",
|
|
81
92
|
"module": "@krizaka/charts/registry/examples/charts-provider/french-orazaka",
|
|
82
|
-
"code": "import { BarChart } from \"@krizaka/charts/bar\";\nimport { ChartsProvider } from \"@krizaka/charts/provider\";\n\nconst months = [\n { month: \"2026-06\", credits: 412_000 },\n { month: \"2026-07\", credits: 468_500 },\n { month: \"2026-08\", credits: 391_200 },\n { month: \"2026-09\", credits: 523_900 },\n];\n\n// Once near the app's root: the locale, the brand's palette, the words from the app's catalogue.\nexport default function FrenchOrazaka() {\n return (\n <ChartsProvider\n locale=\"fr-FR\"\n brand=\"orazaka\"\n labels={{
|
|
93
|
+
"code": "import { BarChart } from \"@krizaka/charts/bar\";\nimport { ChartsProvider } from \"@krizaka/charts/provider\";\n\nconst months = [\n { month: \"2026-06\", credits: 412_000 },\n { month: \"2026-07\", credits: 468_500 },\n { month: \"2026-08\", credits: 391_200 },\n { month: \"2026-09\", credits: 523_900 },\n];\n\n// Once near the app's root: the locale, the brand's palette, the words from the app's catalogue.\nexport default function FrenchOrazaka() {\n return (\n <ChartsProvider\n locale=\"fr-FR\"\n brand=\"orazaka\"\n labels={{ actions: \"Actions du graphique\", viewTable: \"Voir en tableau\", downloadCsv: \"Télécharger le CSV\", copyData: \"Copier les données\", empty: \"Pas encore de données.\", kinds: { bar: \"Histogramme\" } }}\n >\n <BarChart title=\"Crédits consommés par mois\" data={months} x=\"month\" xLabel=\"Mois\" y=\"credits\" yLabel=\"Crédits\" format=\"compact\" />\n </ChartsProvider>\n );\n}\n"
|
|
83
94
|
}
|
|
84
95
|
]
|
|
85
96
|
},
|
|
@@ -157,7 +168,7 @@
|
|
|
157
168
|
"registryDependencies": [],
|
|
158
169
|
"demo": {
|
|
159
170
|
"path": "examples/charts-provider/french-orazaka.tsx",
|
|
160
|
-
"content": "import { BarChart } from \"@krizaka/charts/bar\";\nimport { ChartsProvider } from \"@krizaka/charts/provider\";\n\nconst months = [\n { month: \"2026-06\", credits: 412_000 },\n { month: \"2026-07\", credits: 468_500 },\n { month: \"2026-08\", credits: 391_200 },\n { month: \"2026-09\", credits: 523_900 },\n];\n\n// Once near the app's root: the locale, the brand's palette, the words from the app's catalogue.\nexport default function FrenchOrazaka() {\n return (\n <ChartsProvider\n locale=\"fr-FR\"\n brand=\"orazaka\"\n labels={{
|
|
171
|
+
"content": "import { BarChart } from \"@krizaka/charts/bar\";\nimport { ChartsProvider } from \"@krizaka/charts/provider\";\n\nconst months = [\n { month: \"2026-06\", credits: 412_000 },\n { month: \"2026-07\", credits: 468_500 },\n { month: \"2026-08\", credits: 391_200 },\n { month: \"2026-09\", credits: 523_900 },\n];\n\n// Once near the app's root: the locale, the brand's palette, the words from the app's catalogue.\nexport default function FrenchOrazaka() {\n return (\n <ChartsProvider\n locale=\"fr-FR\"\n brand=\"orazaka\"\n labels={{ actions: \"Actions du graphique\", viewTable: \"Voir en tableau\", downloadCsv: \"Télécharger le CSV\", copyData: \"Copier les données\", empty: \"Pas encore de données.\", kinds: { bar: \"Histogramme\" } }}\n >\n <BarChart title=\"Crédits consommés par mois\" data={months} x=\"month\" xLabel=\"Mois\" y=\"credits\" yLabel=\"Crédits\" format=\"compact\" />\n </ChartsProvider>\n );\n}\n"
|
|
161
172
|
},
|
|
162
173
|
"props": [
|
|
163
174
|
{
|
|
@@ -8,6 +8,17 @@
|
|
|
8
8
|
"status": "beta",
|
|
9
9
|
"category": "charts",
|
|
10
10
|
"platforms": "both",
|
|
11
|
+
"parity": {
|
|
12
|
+
"web": {
|
|
13
|
+
"state": "yes"
|
|
14
|
+
},
|
|
15
|
+
"native": {
|
|
16
|
+
"state": "yes"
|
|
17
|
+
},
|
|
18
|
+
"desktop": {
|
|
19
|
+
"state": "yes"
|
|
20
|
+
}
|
|
21
|
+
},
|
|
11
22
|
"engine": "svg",
|
|
12
23
|
"tier": "ready-made",
|
|
13
24
|
"whenToUse": [
|