@krizaka/charts 0.0.0-stage → 0.1.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/LICENSE +202 -0
- package/README.md +47 -2
- package/dist/bar.d.ts +17 -0
- package/dist/bar.js +16 -0
- package/dist/bar.js.map +1 -0
- package/dist/candlestick-IG626XL4.js +13 -0
- package/dist/candlestick-IG626XL4.js.map +1 -0
- package/dist/candlestick.d.ts +42 -0
- package/dist/candlestick.js +13 -0
- package/dist/candlestick.js.map +1 -0
- package/dist/canvas-4MSYDVFO.js +14 -0
- package/dist/canvas-4MSYDVFO.js.map +1 -0
- package/dist/cartesian-BRhNQ3ib.d.ts +34 -0
- package/dist/chart.d.ts +58 -0
- package/dist/chart.js +11 -0
- package/dist/chart.js.map +1 -0
- package/dist/chunk-3CJHBJXA.js +186 -0
- package/dist/chunk-3CJHBJXA.js.map +1 -0
- package/dist/chunk-6FINSUOS.js +49 -0
- package/dist/chunk-6FINSUOS.js.map +1 -0
- package/dist/chunk-7CSAGFBW.js +166 -0
- package/dist/chunk-7CSAGFBW.js.map +1 -0
- package/dist/chunk-7TIFCK5E.js +103 -0
- package/dist/chunk-7TIFCK5E.js.map +1 -0
- package/dist/chunk-AHQXJSAQ.js +38 -0
- package/dist/chunk-AHQXJSAQ.js.map +1 -0
- package/dist/chunk-ANUCSRUN.js +43 -0
- package/dist/chunk-ANUCSRUN.js.map +1 -0
- package/dist/chunk-BISL7DYW.js +66 -0
- package/dist/chunk-BISL7DYW.js.map +1 -0
- package/dist/chunk-BZ5CQFPH.js +19 -0
- package/dist/chunk-BZ5CQFPH.js.map +1 -0
- package/dist/chunk-DWJPPEMC.js +455 -0
- package/dist/chunk-DWJPPEMC.js.map +1 -0
- package/dist/chunk-DZB6HEVO.js +73 -0
- package/dist/chunk-DZB6HEVO.js.map +1 -0
- package/dist/chunk-EK3Z647J.js +133 -0
- package/dist/chunk-EK3Z647J.js.map +1 -0
- package/dist/chunk-I5QUZVU2.js +234 -0
- package/dist/chunk-I5QUZVU2.js.map +1 -0
- package/dist/chunk-OB5EFDDH.js +118 -0
- package/dist/chunk-OB5EFDDH.js.map +1 -0
- package/dist/chunk-OER6ETT4.js +155 -0
- package/dist/chunk-OER6ETT4.js.map +1 -0
- package/dist/chunk-PTSB3H5Q.js +205 -0
- package/dist/chunk-PTSB3H5Q.js.map +1 -0
- package/dist/chunk-TPJDOB7R.js +15 -0
- package/dist/chunk-TPJDOB7R.js.map +1 -0
- package/dist/chunk-UNK4MJVG.js +378 -0
- package/dist/chunk-UNK4MJVG.js.map +1 -0
- package/dist/chunk-VKO2OYYM.js +88 -0
- package/dist/chunk-VKO2OYYM.js.map +1 -0
- package/dist/chunk-VKTZD7UT.js +107 -0
- package/dist/chunk-VKTZD7UT.js.map +1 -0
- package/dist/chunk-W5FX4TU3.js +102 -0
- package/dist/chunk-W5FX4TU3.js.map +1 -0
- package/dist/chunk-WBH2QU77.js +178 -0
- package/dist/chunk-WBH2QU77.js.map +1 -0
- package/dist/chunk-WIRCIOLH.js +145 -0
- package/dist/chunk-WIRCIOLH.js.map +1 -0
- package/dist/chunk-XAJ3KCC4.js +116 -0
- package/dist/chunk-XAJ3KCC4.js.map +1 -0
- package/dist/chunk-XC6BQ3RN.js +92 -0
- package/dist/chunk-XC6BQ3RN.js.map +1 -0
- package/dist/chunk-XLLYNNC6.js +89 -0
- package/dist/chunk-XLLYNNC6.js.map +1 -0
- package/dist/chunk-XR4ZJDOV.js +15 -0
- package/dist/chunk-XR4ZJDOV.js.map +1 -0
- package/dist/context-BgYUymEO.d.ts +163 -0
- package/dist/frame-I7_xYGy5.d.ts +45 -0
- package/dist/full-S2MBPEEP.js +11 -0
- package/dist/full-S2MBPEEP.js.map +1 -0
- package/dist/funnel-QU5ZPC52.js +13 -0
- package/dist/funnel-QU5ZPC52.js.map +1 -0
- package/dist/funnel.d.ts +26 -0
- package/dist/funnel.js +13 -0
- package/dist/funnel.js.map +1 -0
- package/dist/gauge.d.ts +38 -0
- package/dist/gauge.js +12 -0
- package/dist/gauge.js.map +1 -0
- package/dist/geo.d.ts +37 -0
- package/dist/geo.js +13 -0
- package/dist/geo.js.map +1 -0
- package/dist/globe.d.ts +36 -0
- package/dist/globe.js +12 -0
- package/dist/globe.js.map +1 -0
- package/dist/heatmap-JWQOKUGM.js +13 -0
- package/dist/heatmap-JWQOKUGM.js.map +1 -0
- package/dist/heatmap.d.ts +47 -0
- package/dist/heatmap.js +15 -0
- package/dist/heatmap.js.map +1 -0
- package/dist/host-_F8RgiIz.d.ts +15 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.js +101 -0
- package/dist/index.js.map +1 -0
- package/dist/line.d.ts +25 -0
- package/dist/line.js +18 -0
- package/dist/line.js.map +1 -0
- package/dist/native.d.ts +300 -0
- package/dist/native.js +875 -0
- package/dist/native.js.map +1 -0
- package/dist/pie.d.ts +37 -0
- package/dist/pie.js +16 -0
- package/dist/pie.js.map +1 -0
- package/dist/provider.d.ts +73 -0
- package/dist/provider.js +24 -0
- package/dist/provider.js.map +1 -0
- package/dist/radar-75GRJ2IK.js +13 -0
- package/dist/radar-75GRJ2IK.js.map +1 -0
- package/dist/radar.d.ts +22 -0
- package/dist/radar.js +13 -0
- package/dist/radar.js.map +1 -0
- package/dist/sankey-XQTX2EG6.js +13 -0
- package/dist/sankey-XQTX2EG6.js.map +1 -0
- package/dist/sankey.d.ts +28 -0
- package/dist/sankey.js +13 -0
- package/dist/sankey.js.map +1 -0
- package/dist/scatter-XSNG4OKD.js +13 -0
- package/dist/scatter-XSNG4OKD.js.map +1 -0
- package/dist/scatter.d.ts +41 -0
- package/dist/scatter.js +15 -0
- package/dist/scatter.js.map +1 -0
- package/dist/sparkline.d.ts +26 -0
- package/dist/sparkline.js +15 -0
- package/dist/sparkline.js.map +1 -0
- package/dist/svg-BJUHYX3B.js +14 -0
- package/dist/svg-BJUHYX3B.js.map +1 -0
- package/dist/treemap-OMGGGB5U.js +13 -0
- package/dist/treemap-OMGGGB5U.js.map +1 -0
- package/dist/treemap.d.ts +24 -0
- package/dist/treemap.js +14 -0
- package/dist/treemap.js.map +1 -0
- package/dist/world-110m-DVFWXS42.js +18 -0
- package/dist/world-110m-DVFWXS42.js.map +1 -0
- package/package.json +518 -3
- package/registry/area-chart.json +784 -0
- package/registry/bar-chart.json +783 -0
- package/registry/calendar-heatmap.json +459 -0
- package/registry/candlestick.json +552 -0
- package/registry/chart.json +440 -0
- package/registry/charts-provider.json +190 -0
- package/registry/examples/area-chart/credits-usage.d.ts +4 -0
- package/registry/examples/area-chart/credits-usage.js +38 -0
- package/registry/examples/area-chart/credits-usage.tsx +32 -0
- package/registry/examples/area-chart/native/credits-usage.d.ts +4 -0
- package/registry/examples/area-chart/native/credits-usage.dark.png +0 -0
- package/registry/examples/area-chart/native/credits-usage.js +33 -0
- package/registry/examples/area-chart/native/credits-usage.light.png +0 -0
- package/registry/examples/area-chart/native/credits-usage.tsx +27 -0
- package/registry/examples/area-chart/storage.d.ts +4 -0
- package/registry/examples/area-chart/storage.js +27 -0
- package/registry/examples/area-chart/storage.tsx +21 -0
- package/registry/examples/bar-chart/jobs-by-status.d.ts +4 -0
- package/registry/examples/bar-chart/jobs-by-status.js +37 -0
- package/registry/examples/bar-chart/jobs-by-status.tsx +31 -0
- package/registry/examples/bar-chart/native/jobs-by-status.d.ts +4 -0
- package/registry/examples/bar-chart/native/jobs-by-status.dark.png +0 -0
- package/registry/examples/bar-chart/native/jobs-by-status.js +32 -0
- package/registry/examples/bar-chart/native/jobs-by-status.light.png +0 -0
- package/registry/examples/bar-chart/native/jobs-by-status.tsx +26 -0
- package/registry/examples/bar-chart/plans-by-quarter.d.ts +4 -0
- package/registry/examples/bar-chart/plans-by-quarter.js +31 -0
- package/registry/examples/bar-chart/plans-by-quarter.tsx +26 -0
- package/registry/examples/bar-chart/top-supporters.d.ts +4 -0
- package/registry/examples/bar-chart/top-supporters.js +32 -0
- package/registry/examples/bar-chart/top-supporters.tsx +27 -0
- package/registry/examples/calendar-heatmap/publishing.d.ts +4 -0
- package/registry/examples/calendar-heatmap/publishing.js +28 -0
- package/registry/examples/calendar-heatmap/publishing.tsx +23 -0
- package/registry/examples/candlestick/auction-bids.d.ts +4 -0
- package/registry/examples/candlestick/auction-bids.js +37 -0
- package/registry/examples/candlestick/auction-bids.tsx +32 -0
- package/registry/examples/chart/polar-uploads.d.ts +4 -0
- package/registry/examples/chart/polar-uploads.js +34 -0
- package/registry/examples/chart/polar-uploads.tsx +30 -0
- package/registry/examples/charts-provider/french-orazaka.d.ts +4 -0
- package/registry/examples/charts-provider/french-orazaka.js +26 -0
- package/registry/examples/charts-provider/french-orazaka.tsx +22 -0
- package/registry/examples/charts-provider/native/french-orazaka.d.ts +4 -0
- package/registry/examples/charts-provider/native/french-orazaka.dark.png +0 -0
- package/registry/examples/charts-provider/native/french-orazaka.js +17 -0
- package/registry/examples/charts-provider/native/french-orazaka.light.png +0 -0
- package/registry/examples/charts-provider/native/french-orazaka.tsx +17 -0
- package/registry/examples/funnel/signup.d.ts +4 -0
- package/registry/examples/funnel/signup.js +30 -0
- package/registry/examples/funnel/signup.tsx +24 -0
- package/registry/examples/gauge/challenge-goal.d.ts +4 -0
- package/registry/examples/gauge/challenge-goal.js +24 -0
- package/registry/examples/gauge/challenge-goal.tsx +18 -0
- package/registry/examples/gauge/credits-quota.d.ts +4 -0
- package/registry/examples/gauge/credits-quota.js +26 -0
- package/registry/examples/gauge/credits-quota.tsx +19 -0
- package/registry/examples/gauge/native/credits-quota.d.ts +4 -0
- package/registry/examples/gauge/native/credits-quota.dark.png +0 -0
- package/registry/examples/gauge/native/credits-quota.js +25 -0
- package/registry/examples/gauge/native/credits-quota.light.png +0 -0
- package/registry/examples/gauge/native/credits-quota.tsx +18 -0
- package/registry/examples/geo-map/viewers.d.ts +4 -0
- package/registry/examples/geo-map/viewers.js +43 -0
- package/registry/examples/geo-map/viewers.tsx +29 -0
- package/registry/examples/globe/deployment-regions.d.ts +4 -0
- package/registry/examples/globe/deployment-regions.js +36 -0
- package/registry/examples/globe/deployment-regions.tsx +30 -0
- package/registry/examples/heatmap/upload-activity.d.ts +4 -0
- package/registry/examples/heatmap/upload-activity.js +30 -0
- package/registry/examples/heatmap/upload-activity.tsx +25 -0
- package/registry/examples/line-chart/creator-earnings.d.ts +4 -0
- package/registry/examples/line-chart/creator-earnings.js +35 -0
- package/registry/examples/line-chart/creator-earnings.tsx +30 -0
- package/registry/examples/line-chart/forecast.d.ts +4 -0
- package/registry/examples/line-chart/forecast.js +36 -0
- package/registry/examples/line-chart/forecast.tsx +30 -0
- package/registry/examples/line-chart/live-jobs.d.ts +4 -0
- package/registry/examples/line-chart/live-jobs.js +21 -0
- package/registry/examples/line-chart/live-jobs.tsx +23 -0
- package/registry/examples/line-chart/native/creator-earnings.d.ts +4 -0
- package/registry/examples/line-chart/native/creator-earnings.dark.png +0 -0
- package/registry/examples/line-chart/native/creator-earnings.js +32 -0
- package/registry/examples/line-chart/native/creator-earnings.light.png +0 -0
- package/registry/examples/line-chart/native/creator-earnings.tsx +26 -0
- package/registry/examples/line-chart/states.d.ts +4 -0
- package/registry/examples/line-chart/states.js +16 -0
- package/registry/examples/line-chart/states.tsx +13 -0
- package/registry/examples/pie-chart/credit-spend.d.ts +4 -0
- package/registry/examples/pie-chart/credit-spend.js +30 -0
- package/registry/examples/pie-chart/credit-spend.tsx +24 -0
- package/registry/examples/pie-chart/native/credit-spend.d.ts +4 -0
- package/registry/examples/pie-chart/native/credit-spend.dark.png +0 -0
- package/registry/examples/pie-chart/native/credit-spend.js +17 -0
- package/registry/examples/pie-chart/native/credit-spend.light.png +0 -0
- package/registry/examples/pie-chart/native/credit-spend.tsx +12 -0
- package/registry/examples/pie-chart/storage-by-kind.d.ts +4 -0
- package/registry/examples/pie-chart/storage-by-kind.js +31 -0
- package/registry/examples/pie-chart/storage-by-kind.tsx +26 -0
- package/registry/examples/radar-chart/model-comparison.d.ts +4 -0
- package/registry/examples/radar-chart/model-comparison.js +33 -0
- package/registry/examples/radar-chart/model-comparison.tsx +28 -0
- package/registry/examples/sankey/credit-flow.d.ts +4 -0
- package/registry/examples/sankey/credit-flow.js +37 -0
- package/registry/examples/sankey/credit-flow.tsx +32 -0
- package/registry/examples/scatter-chart/watch-time.d.ts +4 -0
- package/registry/examples/scatter-chart/watch-time.js +36 -0
- package/registry/examples/scatter-chart/watch-time.tsx +31 -0
- package/registry/examples/sparkline/bars.d.ts +4 -0
- package/registry/examples/sparkline/bars.js +12 -0
- package/registry/examples/sparkline/bars.tsx +7 -0
- package/registry/examples/sparkline/native/stat-trend.d.ts +4 -0
- package/registry/examples/sparkline/native/stat-trend.dark.png +0 -0
- package/registry/examples/sparkline/native/stat-trend.js +12 -0
- package/registry/examples/sparkline/native/stat-trend.light.png +0 -0
- package/registry/examples/sparkline/native/stat-trend.tsx +7 -0
- package/registry/examples/sparkline/stat-trend.d.ts +4 -0
- package/registry/examples/sparkline/stat-trend.js +18 -0
- package/registry/examples/sparkline/stat-trend.tsx +15 -0
- package/registry/examples/sparkline/table-rows.d.ts +4 -0
- package/registry/examples/sparkline/table-rows.js +23 -0
- package/registry/examples/sparkline/table-rows.tsx +26 -0
- package/registry/examples/treemap/storage.d.ts +4 -0
- package/registry/examples/treemap/storage.js +17 -0
- package/registry/examples/treemap/storage.tsx +13 -0
- package/registry/funnel.json +486 -0
- package/registry/gauge.json +599 -0
- package/registry/geo-map.json +483 -0
- package/registry/globe.json +468 -0
- package/registry/heatmap.json +530 -0
- package/registry/index.json +420 -0
- package/registry/line-chart.json +792 -0
- package/registry/pie-chart.json +1287 -0
- package/registry/radar-chart.json +458 -0
- package/registry/sankey.json +502 -0
- package/registry/scatter-chart.json +558 -0
- package/registry/sparkline.json +562 -0
- package/registry/treemap.json +431 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Chart } from "@krizaka/charts/chart";
|
|
2
|
+
|
|
3
|
+
const uploads = [3, 2, 1, 1, 2, 4, 9, 18, 26, 31, 34, 37, 41, 39, 36, 38, 44, 52, 58, 61, 49, 33, 17, 8];
|
|
4
|
+
const hours = uploads.map((_, h) => `${String(h).padStart(2, "0")}:00`);
|
|
5
|
+
|
|
6
|
+
// Only what the option needs: polar bars and the tooltip (not all of ECharts).
|
|
7
|
+
const modules = async () => {
|
|
8
|
+
const [{ use: register }, { BarChart }, { PolarComponent, TooltipComponent }] = await Promise.all([import("echarts/core"), import("echarts/charts"), import("echarts/components")]);
|
|
9
|
+
register([BarChart, PolarComponent, TooltipComponent]);
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export default function PolarUploads() {
|
|
13
|
+
return (
|
|
14
|
+
<Chart
|
|
15
|
+
title="Uploads by hour of the day"
|
|
16
|
+
modules={modules}
|
|
17
|
+
option={(theme) => ({
|
|
18
|
+
polar: { radius: ["18%", "80%"] },
|
|
19
|
+
angleAxis: { type: "category", data: hours, axisLabel: { color: theme.text2, interval: 2 }, axisLine: { lineStyle: { color: theme.axis } } },
|
|
20
|
+
radiusAxis: { axisLabel: { show: false }, splitLine: { lineStyle: { color: theme.grid } }, axisLine: { show: false } },
|
|
21
|
+
tooltip: { trigger: "item" },
|
|
22
|
+
series: [{ type: "bar", coordinateSystem: "polar", data: uploads, itemStyle: { color: theme.palette[0], borderRadius: 3 } }],
|
|
23
|
+
})}
|
|
24
|
+
summaryText={`Uploads by hour: quietest at 02:00 (1), busiest at 19:00 (61).`}
|
|
25
|
+
table={{ columns: ["Hour", "Uploads"], rows: hours.map((h, i) => [h, String(uploads[i])]) }}
|
|
26
|
+
items={uploads.map((u, i) => ({ seriesIndex: 0, dataIndex: i, text: `${hours[i]}: ${u}` }))}
|
|
27
|
+
height={340}
|
|
28
|
+
/>
|
|
29
|
+
);
|
|
30
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
// registry/examples/charts-provider/french-orazaka.tsx
|
|
4
|
+
import { BarChart } from "@krizaka/charts/bar";
|
|
5
|
+
import { ChartsProvider } from "@krizaka/charts/provider";
|
|
6
|
+
import { jsx } from "react/jsx-runtime";
|
|
7
|
+
var months = [
|
|
8
|
+
{ month: "2026-06", credits: 412e3 },
|
|
9
|
+
{ month: "2026-07", credits: 468500 },
|
|
10
|
+
{ month: "2026-08", credits: 391200 },
|
|
11
|
+
{ month: "2026-09", credits: 523900 }
|
|
12
|
+
];
|
|
13
|
+
function FrenchOrazaka() {
|
|
14
|
+
return /* @__PURE__ */ jsx(
|
|
15
|
+
ChartsProvider,
|
|
16
|
+
{
|
|
17
|
+
locale: "fr-FR",
|
|
18
|
+
brand: "orazaka",
|
|
19
|
+
labels: { showData: "Voir les donn\xE9es", hideData: "Masquer les donn\xE9es", empty: "Pas encore de donn\xE9es.", kinds: { bar: "Histogramme" } },
|
|
20
|
+
children: /* @__PURE__ */ jsx(BarChart, { title: "Cr\xE9dits consomm\xE9s par mois", data: months, x: "month", xLabel: "Mois", y: "credits", yLabel: "Cr\xE9dits", format: "compact" })
|
|
21
|
+
}
|
|
22
|
+
);
|
|
23
|
+
}
|
|
24
|
+
export {
|
|
25
|
+
FrenchOrazaka as default
|
|
26
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { BarChart } from "@krizaka/charts/bar";
|
|
2
|
+
import { ChartsProvider } from "@krizaka/charts/provider";
|
|
3
|
+
|
|
4
|
+
const months = [
|
|
5
|
+
{ month: "2026-06", credits: 412_000 },
|
|
6
|
+
{ month: "2026-07", credits: 468_500 },
|
|
7
|
+
{ month: "2026-08", credits: 391_200 },
|
|
8
|
+
{ month: "2026-09", credits: 523_900 },
|
|
9
|
+
];
|
|
10
|
+
|
|
11
|
+
// Once near the app's root: the locale, the brand's palette, the words from the app's catalogue.
|
|
12
|
+
export default function FrenchOrazaka() {
|
|
13
|
+
return (
|
|
14
|
+
<ChartsProvider
|
|
15
|
+
locale="fr-FR"
|
|
16
|
+
brand="orazaka"
|
|
17
|
+
labels={{ showData: "Voir les données", hideData: "Masquer les données", empty: "Pas encore de données.", kinds: { bar: "Histogramme" } }}
|
|
18
|
+
>
|
|
19
|
+
<BarChart title="Crédits consommés par mois" data={months} x="month" xLabel="Mois" y="credits" yLabel="Crédits" format="compact" />
|
|
20
|
+
</ChartsProvider>
|
|
21
|
+
);
|
|
22
|
+
}
|
|
Binary file
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
// registry/examples/charts-provider/native/french-orazaka.tsx
|
|
4
|
+
import { BarChart, ChartsProvider } from "@krizaka/charts/native";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
var months = [
|
|
7
|
+
{ month: "2026-06", credits: 412e3 },
|
|
8
|
+
{ month: "2026-07", credits: 468500 },
|
|
9
|
+
{ month: "2026-08", credits: 391200 },
|
|
10
|
+
{ month: "2026-09", credits: 523900 }
|
|
11
|
+
];
|
|
12
|
+
function FrenchOrazaka() {
|
|
13
|
+
return /* @__PURE__ */ jsx(ChartsProvider, { locale: "fr-FR", brand: "orazaka", children: /* @__PURE__ */ jsx(BarChart, { title: "Cr\xE9dits consomm\xE9s par mois", data: months, x: "month", y: "credits", yLabel: "Cr\xE9dits", format: "compact" }) });
|
|
14
|
+
}
|
|
15
|
+
export {
|
|
16
|
+
FrenchOrazaka as default
|
|
17
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { BarChart, ChartsProvider } from "@krizaka/charts/native";
|
|
2
|
+
|
|
3
|
+
const months = [
|
|
4
|
+
{ month: "2026-06", credits: 412_000 },
|
|
5
|
+
{ month: "2026-07", credits: 468_500 },
|
|
6
|
+
{ month: "2026-08", credits: 391_200 },
|
|
7
|
+
{ month: "2026-09", credits: 523_900 },
|
|
8
|
+
];
|
|
9
|
+
|
|
10
|
+
// In an app: scheme and theme from @krizaka/ui/native's useTheme(), so the charts follow its mode and brand.
|
|
11
|
+
export default function FrenchOrazaka() {
|
|
12
|
+
return (
|
|
13
|
+
<ChartsProvider locale="fr-FR" brand="orazaka">
|
|
14
|
+
<BarChart title="Crédits consommés par mois" data={months} x="month" y="credits" yLabel="Crédits" format="compact" />
|
|
15
|
+
</ChartsProvider>
|
|
16
|
+
);
|
|
17
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
// registry/examples/funnel/signup.tsx
|
|
4
|
+
import { Funnel } from "@krizaka/charts/funnel";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
var stages = [
|
|
7
|
+
{ stage: "Visited the creator page", people: 48200 },
|
|
8
|
+
{ stage: "Created an account", people: 9640 },
|
|
9
|
+
{ stage: "Verified their identity", people: 6170 },
|
|
10
|
+
{ stage: "Published a first video", people: 3210 },
|
|
11
|
+
{ stage: "Made a first sale", people: 1180 }
|
|
12
|
+
];
|
|
13
|
+
function Signup() {
|
|
14
|
+
return /* @__PURE__ */ jsx(
|
|
15
|
+
Funnel,
|
|
16
|
+
{
|
|
17
|
+
title: "Creator sign-up, September",
|
|
18
|
+
data: stages,
|
|
19
|
+
label: "stage",
|
|
20
|
+
value: "people",
|
|
21
|
+
stageLabel: "Stage",
|
|
22
|
+
valueLabel: "Creators",
|
|
23
|
+
fromFirstLabel: "% of visits",
|
|
24
|
+
fromPreviousLabel: "% of previous"
|
|
25
|
+
}
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
export {
|
|
29
|
+
Signup as default
|
|
30
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Funnel } from "@krizaka/charts/funnel";
|
|
2
|
+
|
|
3
|
+
const stages = [
|
|
4
|
+
{ stage: "Visited the creator page", people: 48_200 },
|
|
5
|
+
{ stage: "Created an account", people: 9_640 },
|
|
6
|
+
{ stage: "Verified their identity", people: 6_170 },
|
|
7
|
+
{ stage: "Published a first video", people: 3_210 },
|
|
8
|
+
{ stage: "Made a first sale", people: 1_180 },
|
|
9
|
+
];
|
|
10
|
+
|
|
11
|
+
export default function Signup() {
|
|
12
|
+
return (
|
|
13
|
+
<Funnel
|
|
14
|
+
title="Creator sign-up, September"
|
|
15
|
+
data={stages}
|
|
16
|
+
label="stage"
|
|
17
|
+
value="people"
|
|
18
|
+
stageLabel="Stage"
|
|
19
|
+
valueLabel="Creators"
|
|
20
|
+
fromFirstLabel="% of visits"
|
|
21
|
+
fromPreviousLabel="% of previous"
|
|
22
|
+
/>
|
|
23
|
+
);
|
|
24
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
// registry/examples/gauge/challenge-goal.tsx
|
|
4
|
+
import { Gauge } from "@krizaka/charts/gauge";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
function ChallengeGoal() {
|
|
7
|
+
return /* @__PURE__ */ jsx(
|
|
8
|
+
Gauge,
|
|
9
|
+
{
|
|
10
|
+
title: "\u201CShoot the sunrise from the Mont-Royal\u201D",
|
|
11
|
+
description: "Challenge in escrow \xB7 6 days left",
|
|
12
|
+
value: 186e3,
|
|
13
|
+
max: 3e5,
|
|
14
|
+
format: { style: "money", currency: "CAD" },
|
|
15
|
+
caption: "raised",
|
|
16
|
+
target: { value: 25e4, label: "Objective" },
|
|
17
|
+
tone: "accent",
|
|
18
|
+
style: { maxWidth: 320 }
|
|
19
|
+
}
|
|
20
|
+
);
|
|
21
|
+
}
|
|
22
|
+
export {
|
|
23
|
+
ChallengeGoal as default
|
|
24
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Gauge } from "@krizaka/charts/gauge";
|
|
2
|
+
|
|
3
|
+
// A challenge's escrow, in cents, against its objective.
|
|
4
|
+
export default function ChallengeGoal() {
|
|
5
|
+
return (
|
|
6
|
+
<Gauge
|
|
7
|
+
title="“Shoot the sunrise from the Mont-Royal”"
|
|
8
|
+
description="Challenge in escrow · 6 days left"
|
|
9
|
+
value={186_000}
|
|
10
|
+
max={300_000}
|
|
11
|
+
format={{ style: "money", currency: "CAD" }}
|
|
12
|
+
caption="raised"
|
|
13
|
+
target={{ value: 250_000, label: "Objective" }}
|
|
14
|
+
tone="accent"
|
|
15
|
+
style={{ maxWidth: 320 }}
|
|
16
|
+
/>
|
|
17
|
+
);
|
|
18
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
// registry/examples/gauge/credits-quota.tsx
|
|
4
|
+
import { Gauge } from "@krizaka/charts/gauge";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
function CreditsQuota() {
|
|
7
|
+
return /* @__PURE__ */ jsx(
|
|
8
|
+
Gauge,
|
|
9
|
+
{
|
|
10
|
+
title: "Credits used this month",
|
|
11
|
+
value: 41250,
|
|
12
|
+
max: 5e4,
|
|
13
|
+
format: "compact",
|
|
14
|
+
caption: "of 50K credits",
|
|
15
|
+
zones: [
|
|
16
|
+
{ to: 4e4, tone: "success", label: "Within plan" },
|
|
17
|
+
{ to: 47500, tone: "warning", label: "Nearing the limit" },
|
|
18
|
+
{ to: 5e4, tone: "danger", label: "At the limit" }
|
|
19
|
+
],
|
|
20
|
+
style: { maxWidth: 320 }
|
|
21
|
+
}
|
|
22
|
+
);
|
|
23
|
+
}
|
|
24
|
+
export {
|
|
25
|
+
CreditsQuota as default
|
|
26
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Gauge } from "@krizaka/charts/gauge";
|
|
2
|
+
|
|
3
|
+
export default function CreditsQuota() {
|
|
4
|
+
return (
|
|
5
|
+
<Gauge
|
|
6
|
+
title="Credits used this month"
|
|
7
|
+
value={41_250}
|
|
8
|
+
max={50_000}
|
|
9
|
+
format="compact"
|
|
10
|
+
caption="of 50K credits"
|
|
11
|
+
zones={[
|
|
12
|
+
{ to: 40_000, tone: "success", label: "Within plan" },
|
|
13
|
+
{ to: 47_500, tone: "warning", label: "Nearing the limit" },
|
|
14
|
+
{ to: 50_000, tone: "danger", label: "At the limit" },
|
|
15
|
+
]}
|
|
16
|
+
style={{ maxWidth: 320 }}
|
|
17
|
+
/>
|
|
18
|
+
);
|
|
19
|
+
}
|
|
Binary file
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
// registry/examples/gauge/native/credits-quota.tsx
|
|
4
|
+
import { Gauge } from "@krizaka/charts/native";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
function CreditsQuota() {
|
|
7
|
+
return /* @__PURE__ */ jsx(
|
|
8
|
+
Gauge,
|
|
9
|
+
{
|
|
10
|
+
title: "Credits used this month",
|
|
11
|
+
value: 41250,
|
|
12
|
+
max: 5e4,
|
|
13
|
+
format: "compact",
|
|
14
|
+
caption: "of 50K credits",
|
|
15
|
+
zones: [
|
|
16
|
+
{ to: 4e4, tone: "success" },
|
|
17
|
+
{ to: 47500, tone: "warning" },
|
|
18
|
+
{ to: 5e4, tone: "danger" }
|
|
19
|
+
]
|
|
20
|
+
}
|
|
21
|
+
);
|
|
22
|
+
}
|
|
23
|
+
export {
|
|
24
|
+
CreditsQuota as default
|
|
25
|
+
};
|
|
Binary file
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Gauge } from "@krizaka/charts/native";
|
|
2
|
+
|
|
3
|
+
export default function CreditsQuota() {
|
|
4
|
+
return (
|
|
5
|
+
<Gauge
|
|
6
|
+
title="Credits used this month"
|
|
7
|
+
value={41_250}
|
|
8
|
+
max={50_000}
|
|
9
|
+
format="compact"
|
|
10
|
+
caption="of 50K credits"
|
|
11
|
+
zones={[
|
|
12
|
+
{ to: 40_000, tone: "success" },
|
|
13
|
+
{ to: 47_500, tone: "warning" },
|
|
14
|
+
{ to: 50_000, tone: "danger" },
|
|
15
|
+
]}
|
|
16
|
+
/>
|
|
17
|
+
);
|
|
18
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
// registry/examples/geo-map/viewers.tsx
|
|
4
|
+
import { GeoMap } from "@krizaka/charts/geo";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
var countries = [
|
|
7
|
+
{ code: "FR", viewers: 48200 },
|
|
8
|
+
{ code: "CA", viewers: 31500 },
|
|
9
|
+
{ code: "BE", viewers: 9800 },
|
|
10
|
+
{ code: "CH", viewers: 7400 },
|
|
11
|
+
{ code: "MA", viewers: 12900 },
|
|
12
|
+
{ code: "SN", viewers: 6100 },
|
|
13
|
+
{ code: "US", viewers: 15300 },
|
|
14
|
+
{ code: "DE", viewers: 4200 },
|
|
15
|
+
{ code: "TN", viewers: 5600 },
|
|
16
|
+
{ code: "CI", viewers: 4900 },
|
|
17
|
+
{ code: "BR", viewers: 2300 },
|
|
18
|
+
{ code: "JP", viewers: 1800 }
|
|
19
|
+
];
|
|
20
|
+
var cities = [
|
|
21
|
+
{ label: "Paris", lon: 2.35, lat: 48.86, value: 21400 },
|
|
22
|
+
{ label: "Montr\xE9al", lon: -73.57, lat: 45.5, value: 17800 },
|
|
23
|
+
{ label: "Casablanca", lon: -7.59, lat: 33.57, value: 6300 },
|
|
24
|
+
{ label: "Dakar", lon: -17.45, lat: 14.69, value: 3900 }
|
|
25
|
+
];
|
|
26
|
+
function Viewers() {
|
|
27
|
+
return /* @__PURE__ */ jsx(
|
|
28
|
+
GeoMap,
|
|
29
|
+
{
|
|
30
|
+
title: "Viewers by country, last 90 days",
|
|
31
|
+
data: countries,
|
|
32
|
+
region: "code",
|
|
33
|
+
value: "viewers",
|
|
34
|
+
points: cities,
|
|
35
|
+
format: "compact",
|
|
36
|
+
regionLabel: "Country",
|
|
37
|
+
valueLabel: "Viewers"
|
|
38
|
+
}
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
export {
|
|
42
|
+
Viewers as default
|
|
43
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { GeoMap } from "@krizaka/charts/geo";
|
|
2
|
+
|
|
3
|
+
const countries = [
|
|
4
|
+
{ code: "FR", viewers: 48_200 }, { code: "CA", viewers: 31_500 }, { code: "BE", viewers: 9_800 },
|
|
5
|
+
{ code: "CH", viewers: 7_400 }, { code: "MA", viewers: 12_900 }, { code: "SN", viewers: 6_100 },
|
|
6
|
+
{ code: "US", viewers: 15_300 }, { code: "DE", viewers: 4_200 }, { code: "TN", viewers: 5_600 },
|
|
7
|
+
{ code: "CI", viewers: 4_900 }, { code: "BR", viewers: 2_300 }, { code: "JP", viewers: 1_800 },
|
|
8
|
+
];
|
|
9
|
+
const cities = [
|
|
10
|
+
{ label: "Paris", lon: 2.35, lat: 48.86, value: 21_400 },
|
|
11
|
+
{ label: "Montréal", lon: -73.57, lat: 45.5, value: 17_800 },
|
|
12
|
+
{ label: "Casablanca", lon: -7.59, lat: 33.57, value: 6_300 },
|
|
13
|
+
{ label: "Dakar", lon: -17.45, lat: 14.69, value: 3_900 },
|
|
14
|
+
];
|
|
15
|
+
|
|
16
|
+
export default function Viewers() {
|
|
17
|
+
return (
|
|
18
|
+
<GeoMap
|
|
19
|
+
title="Viewers by country, last 90 days"
|
|
20
|
+
data={countries}
|
|
21
|
+
region="code"
|
|
22
|
+
value="viewers"
|
|
23
|
+
points={cities}
|
|
24
|
+
format="compact"
|
|
25
|
+
regionLabel="Country"
|
|
26
|
+
valueLabel="Viewers"
|
|
27
|
+
/>
|
|
28
|
+
);
|
|
29
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
// registry/examples/globe/deployment-regions.tsx
|
|
4
|
+
import { Globe3D } from "@krizaka/charts/globe";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
var regions = [
|
|
7
|
+
{ label: "Paris \xB7 eu-west-3", lon: 2.35, lat: 48.86, value: 0.9998, tone: "success" },
|
|
8
|
+
{ label: "Frankfurt \xB7 eu-central-1", lon: 8.68, lat: 50.11, value: 0.9995, tone: "success" },
|
|
9
|
+
{ label: "Montr\xE9al \xB7 ca-central-1", lon: -73.57, lat: 45.5, value: 0.9991, tone: "success" },
|
|
10
|
+
{ label: "Virginia \xB7 us-east-1", lon: -77.46, lat: 38.95, value: 0.9962, tone: "warning" },
|
|
11
|
+
{ label: "Singapore \xB7 ap-southeast-1", lon: 103.82, lat: 1.35, value: 0.9997, tone: "success" }
|
|
12
|
+
];
|
|
13
|
+
function DeploymentRegions() {
|
|
14
|
+
return /* @__PURE__ */ jsx(
|
|
15
|
+
Globe3D,
|
|
16
|
+
{
|
|
17
|
+
title: "Orazaka regions",
|
|
18
|
+
description: "Availability over 30 days \xB7 replication from Paris",
|
|
19
|
+
points: regions,
|
|
20
|
+
arcs: [
|
|
21
|
+
{ from: regions[0].label, to: regions[1].label },
|
|
22
|
+
{ from: regions[0].label, to: regions[2].label },
|
|
23
|
+
{ from: regions[2].label, to: regions[3].label },
|
|
24
|
+
{ from: regions[1].label, to: regions[4].label }
|
|
25
|
+
],
|
|
26
|
+
regions: ["FR", "DE", "BE", "CH", "CA", "US", "SG"],
|
|
27
|
+
center: [-20, 40],
|
|
28
|
+
format: { style: "number", options: { style: "percent", maximumFractionDigits: 2 } },
|
|
29
|
+
pointLabel: "Region",
|
|
30
|
+
valueLabel: "Availability"
|
|
31
|
+
}
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
export {
|
|
35
|
+
DeploymentRegions as default
|
|
36
|
+
};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Globe3D } from "@krizaka/charts/globe";
|
|
2
|
+
|
|
3
|
+
const regions = [
|
|
4
|
+
{ label: "Paris · eu-west-3", lon: 2.35, lat: 48.86, value: 0.9998, tone: "success" as const },
|
|
5
|
+
{ label: "Frankfurt · eu-central-1", lon: 8.68, lat: 50.11, value: 0.9995, tone: "success" as const },
|
|
6
|
+
{ label: "Montréal · ca-central-1", lon: -73.57, lat: 45.5, value: 0.9991, tone: "success" as const },
|
|
7
|
+
{ label: "Virginia · us-east-1", lon: -77.46, lat: 38.95, value: 0.9962, tone: "warning" as const },
|
|
8
|
+
{ label: "Singapore · ap-southeast-1", lon: 103.82, lat: 1.35, value: 0.9997, tone: "success" as const },
|
|
9
|
+
];
|
|
10
|
+
|
|
11
|
+
export default function DeploymentRegions() {
|
|
12
|
+
return (
|
|
13
|
+
<Globe3D
|
|
14
|
+
title="Orazaka regions"
|
|
15
|
+
description="Availability over 30 days · replication from Paris"
|
|
16
|
+
points={regions}
|
|
17
|
+
arcs={[
|
|
18
|
+
{ from: regions[0]!.label, to: regions[1]!.label },
|
|
19
|
+
{ from: regions[0]!.label, to: regions[2]!.label },
|
|
20
|
+
{ from: regions[2]!.label, to: regions[3]!.label },
|
|
21
|
+
{ from: regions[1]!.label, to: regions[4]!.label },
|
|
22
|
+
]}
|
|
23
|
+
regions={["FR", "DE", "BE", "CH", "CA", "US", "SG"]}
|
|
24
|
+
center={[-20, 40]}
|
|
25
|
+
format={{ style: "number", options: { style: "percent", maximumFractionDigits: 2 } }}
|
|
26
|
+
pointLabel="Region"
|
|
27
|
+
valueLabel="Availability"
|
|
28
|
+
/>
|
|
29
|
+
);
|
|
30
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
// registry/examples/heatmap/upload-activity.tsx
|
|
4
|
+
import { Heatmap } from "@krizaka/charts/heatmap";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
var days = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"];
|
|
7
|
+
var hours = ["00", "03", "06", "09", "12", "15", "18", "21"];
|
|
8
|
+
var cells = days.flatMap(
|
|
9
|
+
(day, d) => hours.map((hour, h) => ({ day, hour: `${hour}:00`, uploads: Math.round((h >= 5 ? 40 : h >= 3 ? 22 : 6) * (d >= 5 ? 1.6 : 1) + (d * 7 + h * 3) % 11) }))
|
|
10
|
+
);
|
|
11
|
+
function UploadActivity() {
|
|
12
|
+
return /* @__PURE__ */ jsx(
|
|
13
|
+
Heatmap,
|
|
14
|
+
{
|
|
15
|
+
title: "Uploads by day and hour",
|
|
16
|
+
description: "Last 4 weeks, Montr\xE9al time",
|
|
17
|
+
data: cells,
|
|
18
|
+
x: "hour",
|
|
19
|
+
y: "day",
|
|
20
|
+
value: "uploads",
|
|
21
|
+
yCategories: days,
|
|
22
|
+
xLabel: "Hour",
|
|
23
|
+
yLabel: "Day",
|
|
24
|
+
format: "integer"
|
|
25
|
+
}
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
export {
|
|
29
|
+
UploadActivity as default
|
|
30
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Heatmap } from "@krizaka/charts/heatmap";
|
|
2
|
+
|
|
3
|
+
const days = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"];
|
|
4
|
+
const hours = ["00", "03", "06", "09", "12", "15", "18", "21"];
|
|
5
|
+
// A deterministic week: evenings and weekends are busier.
|
|
6
|
+
const cells = days.flatMap((day, d) =>
|
|
7
|
+
hours.map((hour, h) => ({ day, hour: `${hour}:00`, uploads: Math.round((h >= 5 ? 40 : h >= 3 ? 22 : 6) * (d >= 5 ? 1.6 : 1) + ((d * 7 + h * 3) % 11)) })),
|
|
8
|
+
);
|
|
9
|
+
|
|
10
|
+
export default function UploadActivity() {
|
|
11
|
+
return (
|
|
12
|
+
<Heatmap
|
|
13
|
+
title="Uploads by day and hour"
|
|
14
|
+
description="Last 4 weeks, Montréal time"
|
|
15
|
+
data={cells}
|
|
16
|
+
x="hour"
|
|
17
|
+
y="day"
|
|
18
|
+
value="uploads"
|
|
19
|
+
yCategories={days}
|
|
20
|
+
xLabel="Hour"
|
|
21
|
+
yLabel="Day"
|
|
22
|
+
format="integer"
|
|
23
|
+
/>
|
|
24
|
+
);
|
|
25
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
// registry/examples/line-chart/creator-earnings.tsx
|
|
4
|
+
import { LineChart } from "@krizaka/charts/line";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
var earnings = [
|
|
7
|
+
{ month: "2026-04", earnings: 182e3, tips: 21e3 },
|
|
8
|
+
{ month: "2026-05", earnings: 164e3, tips: 18500 },
|
|
9
|
+
{ month: "2026-06", earnings: 231e3, tips: 26e3 },
|
|
10
|
+
{ month: "2026-07", earnings: 298e3, tips: 31e3 },
|
|
11
|
+
{ month: "2026-08", earnings: 276e3, tips: 35500 },
|
|
12
|
+
{ month: "2026-09", earnings: 342e3, tips: 41e3 }
|
|
13
|
+
];
|
|
14
|
+
function CreatorEarnings() {
|
|
15
|
+
return /* @__PURE__ */ jsx(
|
|
16
|
+
LineChart,
|
|
17
|
+
{
|
|
18
|
+
title: "Earnings, last 6 months",
|
|
19
|
+
description: "Video sales and tips, before fees",
|
|
20
|
+
data: earnings,
|
|
21
|
+
x: "month",
|
|
22
|
+
xLabel: "Month",
|
|
23
|
+
series: [
|
|
24
|
+
{ key: "earnings", label: "Video sales" },
|
|
25
|
+
{ key: "tips", label: "Tips" }
|
|
26
|
+
],
|
|
27
|
+
format: { style: "money", currency: "EUR" },
|
|
28
|
+
thresholds: [{ value: 25e4, label: "Payout threshold", tone: "success" }],
|
|
29
|
+
exportable: true
|
|
30
|
+
}
|
|
31
|
+
);
|
|
32
|
+
}
|
|
33
|
+
export {
|
|
34
|
+
CreatorEarnings as default
|
|
35
|
+
};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { LineChart } from "@krizaka/charts/line";
|
|
2
|
+
|
|
3
|
+
// Amounts in cents, as the ledger stores them.
|
|
4
|
+
const earnings = [
|
|
5
|
+
{ month: "2026-04", earnings: 182_000, tips: 21_000 },
|
|
6
|
+
{ month: "2026-05", earnings: 164_000, tips: 18_500 },
|
|
7
|
+
{ month: "2026-06", earnings: 231_000, tips: 26_000 },
|
|
8
|
+
{ month: "2026-07", earnings: 298_000, tips: 31_000 },
|
|
9
|
+
{ month: "2026-08", earnings: 276_000, tips: 35_500 },
|
|
10
|
+
{ month: "2026-09", earnings: 342_000, tips: 41_000 },
|
|
11
|
+
];
|
|
12
|
+
|
|
13
|
+
export default function CreatorEarnings() {
|
|
14
|
+
return (
|
|
15
|
+
<LineChart
|
|
16
|
+
title="Earnings, last 6 months"
|
|
17
|
+
description="Video sales and tips, before fees"
|
|
18
|
+
data={earnings}
|
|
19
|
+
x="month"
|
|
20
|
+
xLabel="Month"
|
|
21
|
+
series={[
|
|
22
|
+
{ key: "earnings", label: "Video sales" },
|
|
23
|
+
{ key: "tips", label: "Tips" },
|
|
24
|
+
]}
|
|
25
|
+
format={{ style: "money", currency: "EUR" }}
|
|
26
|
+
thresholds={[{ value: 250_000, label: "Payout threshold", tone: "success" }]}
|
|
27
|
+
exportable
|
|
28
|
+
/>
|
|
29
|
+
);
|
|
30
|
+
}
|