@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.
Files changed (273) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +47 -2
  3. package/dist/bar.d.ts +17 -0
  4. package/dist/bar.js +16 -0
  5. package/dist/bar.js.map +1 -0
  6. package/dist/candlestick-IG626XL4.js +13 -0
  7. package/dist/candlestick-IG626XL4.js.map +1 -0
  8. package/dist/candlestick.d.ts +42 -0
  9. package/dist/candlestick.js +13 -0
  10. package/dist/candlestick.js.map +1 -0
  11. package/dist/canvas-4MSYDVFO.js +14 -0
  12. package/dist/canvas-4MSYDVFO.js.map +1 -0
  13. package/dist/cartesian-BRhNQ3ib.d.ts +34 -0
  14. package/dist/chart.d.ts +58 -0
  15. package/dist/chart.js +11 -0
  16. package/dist/chart.js.map +1 -0
  17. package/dist/chunk-3CJHBJXA.js +186 -0
  18. package/dist/chunk-3CJHBJXA.js.map +1 -0
  19. package/dist/chunk-6FINSUOS.js +49 -0
  20. package/dist/chunk-6FINSUOS.js.map +1 -0
  21. package/dist/chunk-7CSAGFBW.js +166 -0
  22. package/dist/chunk-7CSAGFBW.js.map +1 -0
  23. package/dist/chunk-7TIFCK5E.js +103 -0
  24. package/dist/chunk-7TIFCK5E.js.map +1 -0
  25. package/dist/chunk-AHQXJSAQ.js +38 -0
  26. package/dist/chunk-AHQXJSAQ.js.map +1 -0
  27. package/dist/chunk-ANUCSRUN.js +43 -0
  28. package/dist/chunk-ANUCSRUN.js.map +1 -0
  29. package/dist/chunk-BISL7DYW.js +66 -0
  30. package/dist/chunk-BISL7DYW.js.map +1 -0
  31. package/dist/chunk-BZ5CQFPH.js +19 -0
  32. package/dist/chunk-BZ5CQFPH.js.map +1 -0
  33. package/dist/chunk-DWJPPEMC.js +455 -0
  34. package/dist/chunk-DWJPPEMC.js.map +1 -0
  35. package/dist/chunk-DZB6HEVO.js +73 -0
  36. package/dist/chunk-DZB6HEVO.js.map +1 -0
  37. package/dist/chunk-EK3Z647J.js +133 -0
  38. package/dist/chunk-EK3Z647J.js.map +1 -0
  39. package/dist/chunk-I5QUZVU2.js +234 -0
  40. package/dist/chunk-I5QUZVU2.js.map +1 -0
  41. package/dist/chunk-OB5EFDDH.js +118 -0
  42. package/dist/chunk-OB5EFDDH.js.map +1 -0
  43. package/dist/chunk-OER6ETT4.js +155 -0
  44. package/dist/chunk-OER6ETT4.js.map +1 -0
  45. package/dist/chunk-PTSB3H5Q.js +205 -0
  46. package/dist/chunk-PTSB3H5Q.js.map +1 -0
  47. package/dist/chunk-TPJDOB7R.js +15 -0
  48. package/dist/chunk-TPJDOB7R.js.map +1 -0
  49. package/dist/chunk-UNK4MJVG.js +378 -0
  50. package/dist/chunk-UNK4MJVG.js.map +1 -0
  51. package/dist/chunk-VKO2OYYM.js +88 -0
  52. package/dist/chunk-VKO2OYYM.js.map +1 -0
  53. package/dist/chunk-VKTZD7UT.js +107 -0
  54. package/dist/chunk-VKTZD7UT.js.map +1 -0
  55. package/dist/chunk-W5FX4TU3.js +102 -0
  56. package/dist/chunk-W5FX4TU3.js.map +1 -0
  57. package/dist/chunk-WBH2QU77.js +178 -0
  58. package/dist/chunk-WBH2QU77.js.map +1 -0
  59. package/dist/chunk-WIRCIOLH.js +145 -0
  60. package/dist/chunk-WIRCIOLH.js.map +1 -0
  61. package/dist/chunk-XAJ3KCC4.js +116 -0
  62. package/dist/chunk-XAJ3KCC4.js.map +1 -0
  63. package/dist/chunk-XC6BQ3RN.js +92 -0
  64. package/dist/chunk-XC6BQ3RN.js.map +1 -0
  65. package/dist/chunk-XLLYNNC6.js +89 -0
  66. package/dist/chunk-XLLYNNC6.js.map +1 -0
  67. package/dist/chunk-XR4ZJDOV.js +15 -0
  68. package/dist/chunk-XR4ZJDOV.js.map +1 -0
  69. package/dist/context-BgYUymEO.d.ts +163 -0
  70. package/dist/frame-I7_xYGy5.d.ts +45 -0
  71. package/dist/full-S2MBPEEP.js +11 -0
  72. package/dist/full-S2MBPEEP.js.map +1 -0
  73. package/dist/funnel-QU5ZPC52.js +13 -0
  74. package/dist/funnel-QU5ZPC52.js.map +1 -0
  75. package/dist/funnel.d.ts +26 -0
  76. package/dist/funnel.js +13 -0
  77. package/dist/funnel.js.map +1 -0
  78. package/dist/gauge.d.ts +38 -0
  79. package/dist/gauge.js +12 -0
  80. package/dist/gauge.js.map +1 -0
  81. package/dist/geo.d.ts +37 -0
  82. package/dist/geo.js +13 -0
  83. package/dist/geo.js.map +1 -0
  84. package/dist/globe.d.ts +36 -0
  85. package/dist/globe.js +12 -0
  86. package/dist/globe.js.map +1 -0
  87. package/dist/heatmap-JWQOKUGM.js +13 -0
  88. package/dist/heatmap-JWQOKUGM.js.map +1 -0
  89. package/dist/heatmap.d.ts +47 -0
  90. package/dist/heatmap.js +15 -0
  91. package/dist/heatmap.js.map +1 -0
  92. package/dist/host-_F8RgiIz.d.ts +15 -0
  93. package/dist/index.d.ts +22 -0
  94. package/dist/index.js +101 -0
  95. package/dist/index.js.map +1 -0
  96. package/dist/line.d.ts +25 -0
  97. package/dist/line.js +18 -0
  98. package/dist/line.js.map +1 -0
  99. package/dist/native.d.ts +300 -0
  100. package/dist/native.js +875 -0
  101. package/dist/native.js.map +1 -0
  102. package/dist/pie.d.ts +37 -0
  103. package/dist/pie.js +16 -0
  104. package/dist/pie.js.map +1 -0
  105. package/dist/provider.d.ts +73 -0
  106. package/dist/provider.js +24 -0
  107. package/dist/provider.js.map +1 -0
  108. package/dist/radar-75GRJ2IK.js +13 -0
  109. package/dist/radar-75GRJ2IK.js.map +1 -0
  110. package/dist/radar.d.ts +22 -0
  111. package/dist/radar.js +13 -0
  112. package/dist/radar.js.map +1 -0
  113. package/dist/sankey-XQTX2EG6.js +13 -0
  114. package/dist/sankey-XQTX2EG6.js.map +1 -0
  115. package/dist/sankey.d.ts +28 -0
  116. package/dist/sankey.js +13 -0
  117. package/dist/sankey.js.map +1 -0
  118. package/dist/scatter-XSNG4OKD.js +13 -0
  119. package/dist/scatter-XSNG4OKD.js.map +1 -0
  120. package/dist/scatter.d.ts +41 -0
  121. package/dist/scatter.js +15 -0
  122. package/dist/scatter.js.map +1 -0
  123. package/dist/sparkline.d.ts +26 -0
  124. package/dist/sparkline.js +15 -0
  125. package/dist/sparkline.js.map +1 -0
  126. package/dist/svg-BJUHYX3B.js +14 -0
  127. package/dist/svg-BJUHYX3B.js.map +1 -0
  128. package/dist/treemap-OMGGGB5U.js +13 -0
  129. package/dist/treemap-OMGGGB5U.js.map +1 -0
  130. package/dist/treemap.d.ts +24 -0
  131. package/dist/treemap.js +14 -0
  132. package/dist/treemap.js.map +1 -0
  133. package/dist/world-110m-DVFWXS42.js +18 -0
  134. package/dist/world-110m-DVFWXS42.js.map +1 -0
  135. package/package.json +518 -3
  136. package/registry/area-chart.json +784 -0
  137. package/registry/bar-chart.json +783 -0
  138. package/registry/calendar-heatmap.json +459 -0
  139. package/registry/candlestick.json +552 -0
  140. package/registry/chart.json +440 -0
  141. package/registry/charts-provider.json +190 -0
  142. package/registry/examples/area-chart/credits-usage.d.ts +4 -0
  143. package/registry/examples/area-chart/credits-usage.js +38 -0
  144. package/registry/examples/area-chart/credits-usage.tsx +32 -0
  145. package/registry/examples/area-chart/native/credits-usage.d.ts +4 -0
  146. package/registry/examples/area-chart/native/credits-usage.dark.png +0 -0
  147. package/registry/examples/area-chart/native/credits-usage.js +33 -0
  148. package/registry/examples/area-chart/native/credits-usage.light.png +0 -0
  149. package/registry/examples/area-chart/native/credits-usage.tsx +27 -0
  150. package/registry/examples/area-chart/storage.d.ts +4 -0
  151. package/registry/examples/area-chart/storage.js +27 -0
  152. package/registry/examples/area-chart/storage.tsx +21 -0
  153. package/registry/examples/bar-chart/jobs-by-status.d.ts +4 -0
  154. package/registry/examples/bar-chart/jobs-by-status.js +37 -0
  155. package/registry/examples/bar-chart/jobs-by-status.tsx +31 -0
  156. package/registry/examples/bar-chart/native/jobs-by-status.d.ts +4 -0
  157. package/registry/examples/bar-chart/native/jobs-by-status.dark.png +0 -0
  158. package/registry/examples/bar-chart/native/jobs-by-status.js +32 -0
  159. package/registry/examples/bar-chart/native/jobs-by-status.light.png +0 -0
  160. package/registry/examples/bar-chart/native/jobs-by-status.tsx +26 -0
  161. package/registry/examples/bar-chart/plans-by-quarter.d.ts +4 -0
  162. package/registry/examples/bar-chart/plans-by-quarter.js +31 -0
  163. package/registry/examples/bar-chart/plans-by-quarter.tsx +26 -0
  164. package/registry/examples/bar-chart/top-supporters.d.ts +4 -0
  165. package/registry/examples/bar-chart/top-supporters.js +32 -0
  166. package/registry/examples/bar-chart/top-supporters.tsx +27 -0
  167. package/registry/examples/calendar-heatmap/publishing.d.ts +4 -0
  168. package/registry/examples/calendar-heatmap/publishing.js +28 -0
  169. package/registry/examples/calendar-heatmap/publishing.tsx +23 -0
  170. package/registry/examples/candlestick/auction-bids.d.ts +4 -0
  171. package/registry/examples/candlestick/auction-bids.js +37 -0
  172. package/registry/examples/candlestick/auction-bids.tsx +32 -0
  173. package/registry/examples/chart/polar-uploads.d.ts +4 -0
  174. package/registry/examples/chart/polar-uploads.js +34 -0
  175. package/registry/examples/chart/polar-uploads.tsx +30 -0
  176. package/registry/examples/charts-provider/french-orazaka.d.ts +4 -0
  177. package/registry/examples/charts-provider/french-orazaka.js +26 -0
  178. package/registry/examples/charts-provider/french-orazaka.tsx +22 -0
  179. package/registry/examples/charts-provider/native/french-orazaka.d.ts +4 -0
  180. package/registry/examples/charts-provider/native/french-orazaka.dark.png +0 -0
  181. package/registry/examples/charts-provider/native/french-orazaka.js +17 -0
  182. package/registry/examples/charts-provider/native/french-orazaka.light.png +0 -0
  183. package/registry/examples/charts-provider/native/french-orazaka.tsx +17 -0
  184. package/registry/examples/funnel/signup.d.ts +4 -0
  185. package/registry/examples/funnel/signup.js +30 -0
  186. package/registry/examples/funnel/signup.tsx +24 -0
  187. package/registry/examples/gauge/challenge-goal.d.ts +4 -0
  188. package/registry/examples/gauge/challenge-goal.js +24 -0
  189. package/registry/examples/gauge/challenge-goal.tsx +18 -0
  190. package/registry/examples/gauge/credits-quota.d.ts +4 -0
  191. package/registry/examples/gauge/credits-quota.js +26 -0
  192. package/registry/examples/gauge/credits-quota.tsx +19 -0
  193. package/registry/examples/gauge/native/credits-quota.d.ts +4 -0
  194. package/registry/examples/gauge/native/credits-quota.dark.png +0 -0
  195. package/registry/examples/gauge/native/credits-quota.js +25 -0
  196. package/registry/examples/gauge/native/credits-quota.light.png +0 -0
  197. package/registry/examples/gauge/native/credits-quota.tsx +18 -0
  198. package/registry/examples/geo-map/viewers.d.ts +4 -0
  199. package/registry/examples/geo-map/viewers.js +43 -0
  200. package/registry/examples/geo-map/viewers.tsx +29 -0
  201. package/registry/examples/globe/deployment-regions.d.ts +4 -0
  202. package/registry/examples/globe/deployment-regions.js +36 -0
  203. package/registry/examples/globe/deployment-regions.tsx +30 -0
  204. package/registry/examples/heatmap/upload-activity.d.ts +4 -0
  205. package/registry/examples/heatmap/upload-activity.js +30 -0
  206. package/registry/examples/heatmap/upload-activity.tsx +25 -0
  207. package/registry/examples/line-chart/creator-earnings.d.ts +4 -0
  208. package/registry/examples/line-chart/creator-earnings.js +35 -0
  209. package/registry/examples/line-chart/creator-earnings.tsx +30 -0
  210. package/registry/examples/line-chart/forecast.d.ts +4 -0
  211. package/registry/examples/line-chart/forecast.js +36 -0
  212. package/registry/examples/line-chart/forecast.tsx +30 -0
  213. package/registry/examples/line-chart/live-jobs.d.ts +4 -0
  214. package/registry/examples/line-chart/live-jobs.js +21 -0
  215. package/registry/examples/line-chart/live-jobs.tsx +23 -0
  216. package/registry/examples/line-chart/native/creator-earnings.d.ts +4 -0
  217. package/registry/examples/line-chart/native/creator-earnings.dark.png +0 -0
  218. package/registry/examples/line-chart/native/creator-earnings.js +32 -0
  219. package/registry/examples/line-chart/native/creator-earnings.light.png +0 -0
  220. package/registry/examples/line-chart/native/creator-earnings.tsx +26 -0
  221. package/registry/examples/line-chart/states.d.ts +4 -0
  222. package/registry/examples/line-chart/states.js +16 -0
  223. package/registry/examples/line-chart/states.tsx +13 -0
  224. package/registry/examples/pie-chart/credit-spend.d.ts +4 -0
  225. package/registry/examples/pie-chart/credit-spend.js +30 -0
  226. package/registry/examples/pie-chart/credit-spend.tsx +24 -0
  227. package/registry/examples/pie-chart/native/credit-spend.d.ts +4 -0
  228. package/registry/examples/pie-chart/native/credit-spend.dark.png +0 -0
  229. package/registry/examples/pie-chart/native/credit-spend.js +17 -0
  230. package/registry/examples/pie-chart/native/credit-spend.light.png +0 -0
  231. package/registry/examples/pie-chart/native/credit-spend.tsx +12 -0
  232. package/registry/examples/pie-chart/storage-by-kind.d.ts +4 -0
  233. package/registry/examples/pie-chart/storage-by-kind.js +31 -0
  234. package/registry/examples/pie-chart/storage-by-kind.tsx +26 -0
  235. package/registry/examples/radar-chart/model-comparison.d.ts +4 -0
  236. package/registry/examples/radar-chart/model-comparison.js +33 -0
  237. package/registry/examples/radar-chart/model-comparison.tsx +28 -0
  238. package/registry/examples/sankey/credit-flow.d.ts +4 -0
  239. package/registry/examples/sankey/credit-flow.js +37 -0
  240. package/registry/examples/sankey/credit-flow.tsx +32 -0
  241. package/registry/examples/scatter-chart/watch-time.d.ts +4 -0
  242. package/registry/examples/scatter-chart/watch-time.js +36 -0
  243. package/registry/examples/scatter-chart/watch-time.tsx +31 -0
  244. package/registry/examples/sparkline/bars.d.ts +4 -0
  245. package/registry/examples/sparkline/bars.js +12 -0
  246. package/registry/examples/sparkline/bars.tsx +7 -0
  247. package/registry/examples/sparkline/native/stat-trend.d.ts +4 -0
  248. package/registry/examples/sparkline/native/stat-trend.dark.png +0 -0
  249. package/registry/examples/sparkline/native/stat-trend.js +12 -0
  250. package/registry/examples/sparkline/native/stat-trend.light.png +0 -0
  251. package/registry/examples/sparkline/native/stat-trend.tsx +7 -0
  252. package/registry/examples/sparkline/stat-trend.d.ts +4 -0
  253. package/registry/examples/sparkline/stat-trend.js +18 -0
  254. package/registry/examples/sparkline/stat-trend.tsx +15 -0
  255. package/registry/examples/sparkline/table-rows.d.ts +4 -0
  256. package/registry/examples/sparkline/table-rows.js +23 -0
  257. package/registry/examples/sparkline/table-rows.tsx +26 -0
  258. package/registry/examples/treemap/storage.d.ts +4 -0
  259. package/registry/examples/treemap/storage.js +17 -0
  260. package/registry/examples/treemap/storage.tsx +13 -0
  261. package/registry/funnel.json +486 -0
  262. package/registry/gauge.json +599 -0
  263. package/registry/geo-map.json +483 -0
  264. package/registry/globe.json +468 -0
  265. package/registry/heatmap.json +530 -0
  266. package/registry/index.json +420 -0
  267. package/registry/line-chart.json +792 -0
  268. package/registry/pie-chart.json +1287 -0
  269. package/registry/radar-chart.json +458 -0
  270. package/registry/sankey.json +502 -0
  271. package/registry/scatter-chart.json +558 -0
  272. package/registry/sparkline.json +562 -0
  273. package/registry/treemap.json +431 -0
@@ -0,0 +1,36 @@
1
+ "use client";
2
+
3
+ // registry/examples/line-chart/forecast.tsx
4
+ import { LineChart } from "@krizaka/charts/line";
5
+ import { jsx } from "react/jsx-runtime";
6
+ var requests = [
7
+ { week: "2026-07-06", actual: 41200 },
8
+ { week: "2026-07-13", actual: 43900 },
9
+ { week: "2026-07-20", actual: 47100 },
10
+ { week: "2026-07-27", actual: 52800, forecast: 52800 },
11
+ { week: "2026-08-03", forecast: 57400 },
12
+ { week: "2026-08-10", forecast: 61e3 },
13
+ { week: "2026-08-17", forecast: 66300 }
14
+ ];
15
+ function Forecast() {
16
+ return /* @__PURE__ */ jsx(
17
+ LineChart,
18
+ {
19
+ title: "Inference requests per week",
20
+ description: "Actual, then forecast",
21
+ data: requests,
22
+ x: "week",
23
+ xFormat: "day",
24
+ series: [
25
+ { key: "actual", label: "Actual" },
26
+ { key: "forecast", label: "Forecast", color: 1, dashed: true }
27
+ ],
28
+ format: "compact",
29
+ markers: [{ x: "2026-07-27", label: "Studio launch", tone: "accent" }],
30
+ dots: true
31
+ }
32
+ );
33
+ }
34
+ export {
35
+ Forecast as default
36
+ };
@@ -0,0 +1,30 @@
1
+ import { LineChart } from "@krizaka/charts/line";
2
+
3
+ const requests = [
4
+ { week: "2026-07-06", actual: 41_200 },
5
+ { week: "2026-07-13", actual: 43_900 },
6
+ { week: "2026-07-20", actual: 47_100 },
7
+ { week: "2026-07-27", actual: 52_800, forecast: 52_800 },
8
+ { week: "2026-08-03", forecast: 57_400 },
9
+ { week: "2026-08-10", forecast: 61_000 },
10
+ { week: "2026-08-17", forecast: 66_300 },
11
+ ];
12
+
13
+ export default function Forecast() {
14
+ return (
15
+ <LineChart
16
+ title="Inference requests per week"
17
+ description="Actual, then forecast"
18
+ data={requests}
19
+ x="week"
20
+ xFormat="day"
21
+ series={[
22
+ { key: "actual", label: "Actual" },
23
+ { key: "forecast", label: "Forecast", color: 1, dashed: true },
24
+ ]}
25
+ format="compact"
26
+ markers={[{ x: "2026-07-27", label: "Studio launch", tone: "accent" }]}
27
+ dots
28
+ />
29
+ );
30
+ }
@@ -0,0 +1,4 @@
1
+ import type { ComponentType } from "react";
2
+ /** A named example of the @krizaka/charts registry. */
3
+ declare const Example: ComponentType;
4
+ export default Example;
@@ -0,0 +1,21 @@
1
+ "use client";
2
+
3
+ // registry/examples/line-chart/live-jobs.tsx
4
+ import { LineChart } from "@krizaka/charts/line";
5
+ import { useSlidingWindow } from "@krizaka/charts/provider";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+ var start = [18, 22, 19, 25, 31, 28, 26, 33, 37, 35].map((completed, i) => ({ at: `2026-10-11T14:${String(20 + i).padStart(2, "0")}Z`, completed }));
8
+ function LiveJobs() {
9
+ const { data, push } = useSlidingWindow(10, start);
10
+ const next = () => {
11
+ const last = new Date(data[data.length - 1].at);
12
+ push({ at: new Date(last.getTime() + 6e4).toISOString(), completed: 20 + data.length * 7 % 19 });
13
+ };
14
+ return /* @__PURE__ */ jsxs("div", { style: { display: "grid", gap: 8 }, children: [
15
+ /* @__PURE__ */ jsx(LineChart, { title: "Jobs completed per minute", data, x: "at", xFormat: "time", y: "completed", yLabel: "Jobs", format: "integer", live: true, dots: true }),
16
+ /* @__PURE__ */ jsx("button", { type: "button", onClick: next, style: { justifySelf: "start", padding: "4px 10px", borderRadius: 8, border: "1px solid var(--kz-border-default)", background: "var(--kz-surface-2)", color: "var(--kz-text-primary)" }, children: "Next minute" })
17
+ ] });
18
+ }
19
+ export {
20
+ LiveJobs as default
21
+ };
@@ -0,0 +1,23 @@
1
+ "use client";
2
+ import { LineChart } from "@krizaka/charts/line";
3
+ import { useSlidingWindow } from "@krizaka/charts/provider";
4
+
5
+ type Minute = { at: string; completed: number };
6
+ const start: Minute[] = [18, 22, 19, 25, 31, 28, 26, 33, 37, 35].map((completed, i) => ({ at: `2026-10-11T14:${String(20 + i).padStart(2, "0")}Z`, completed }));
7
+
8
+ export default function LiveJobs() {
9
+ // The last 10 minutes; in an app, `push` is called by a server-sent event.
10
+ const { data, push } = useSlidingWindow<Minute>(10, start);
11
+ const next = () => {
12
+ const last = new Date(data[data.length - 1]!.at);
13
+ push({ at: new Date(last.getTime() + 60_000).toISOString(), completed: 20 + ((data.length * 7) % 19) });
14
+ };
15
+ return (
16
+ <div style={{ display: "grid", gap: 8 }}>
17
+ <LineChart title="Jobs completed per minute" data={data} x="at" xFormat="time" y="completed" yLabel="Jobs" format="integer" live dots />
18
+ <button type="button" onClick={next} style={{ justifySelf: "start", padding: "4px 10px", borderRadius: 8, border: "1px solid var(--kz-border-default)", background: "var(--kz-surface-2)", color: "var(--kz-text-primary)" }}>
19
+ Next minute
20
+ </button>
21
+ </div>
22
+ );
23
+ }
@@ -0,0 +1,4 @@
1
+ import type { ComponentType } from "react";
2
+ /** A named example of the @krizaka/charts registry. */
3
+ declare const Example: ComponentType;
4
+ export default Example;
@@ -0,0 +1,32 @@
1
+ "use client";
2
+
3
+ // registry/examples/line-chart/native/creator-earnings.tsx
4
+ import { LineChart } from "@krizaka/charts/native";
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
+ data: earnings,
20
+ x: "month",
21
+ series: [
22
+ { key: "earnings", label: "Video sales" },
23
+ { key: "tips", label: "Tips" }
24
+ ],
25
+ format: { style: "money", currency: "EUR" },
26
+ thresholds: [{ value: 25e4, label: "Payout threshold", tone: "success" }]
27
+ }
28
+ );
29
+ }
30
+ export {
31
+ CreatorEarnings as default
32
+ };
@@ -0,0 +1,26 @@
1
+ import { LineChart } from "@krizaka/charts/native";
2
+
3
+ const earnings = [
4
+ { month: "2026-04", earnings: 182_000, tips: 21_000 },
5
+ { month: "2026-05", earnings: 164_000, tips: 18_500 },
6
+ { month: "2026-06", earnings: 231_000, tips: 26_000 },
7
+ { month: "2026-07", earnings: 298_000, tips: 31_000 },
8
+ { month: "2026-08", earnings: 276_000, tips: 35_500 },
9
+ { month: "2026-09", earnings: 342_000, tips: 41_000 },
10
+ ];
11
+
12
+ export default function CreatorEarnings() {
13
+ return (
14
+ <LineChart
15
+ title="Earnings, last 6 months"
16
+ data={earnings}
17
+ x="month"
18
+ series={[
19
+ { key: "earnings", label: "Video sales" },
20
+ { key: "tips", label: "Tips" },
21
+ ]}
22
+ format={{ style: "money", currency: "EUR" }}
23
+ thresholds={[{ value: 250_000, label: "Payout threshold", tone: "success" }]}
24
+ />
25
+ );
26
+ }
@@ -0,0 +1,4 @@
1
+ import type { ComponentType } from "react";
2
+ /** A named example of the @krizaka/charts registry. */
3
+ declare const Example: ComponentType;
4
+ export default Example;
@@ -0,0 +1,16 @@
1
+ "use client";
2
+
3
+ // registry/examples/line-chart/states.tsx
4
+ import { LineChart } from "@krizaka/charts/line";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ var series = [{ key: "views", label: "Views" }];
7
+ function States() {
8
+ return /* @__PURE__ */ jsxs("div", { style: { display: "grid", gap: 24 }, children: [
9
+ /* @__PURE__ */ jsx(LineChart, { title: "Views (loading)", data: [], x: "day", series, height: 140, loading: true }),
10
+ /* @__PURE__ */ jsx(LineChart, { title: "Views (no data yet)", data: [], x: "day", series, height: 140 }),
11
+ /* @__PURE__ */ jsx(LineChart, { title: "Views (failed)", data: [], x: "day", series, height: 140, error: true })
12
+ ] });
13
+ }
14
+ export {
15
+ States as default
16
+ };
@@ -0,0 +1,13 @@
1
+ import { LineChart } from "@krizaka/charts/line";
2
+
3
+ const series = [{ key: "views", label: "Views" }] as const;
4
+
5
+ export default function States() {
6
+ return (
7
+ <div style={{ display: "grid", gap: 24 }}>
8
+ <LineChart title="Views (loading)" data={[]} x="day" series={series} height={140} loading />
9
+ <LineChart title="Views (no data yet)" data={[]} x="day" series={series} height={140} />
10
+ <LineChart title="Views (failed)" data={[]} x="day" series={series} height={140} error />
11
+ </div>
12
+ );
13
+ }
@@ -0,0 +1,4 @@
1
+ import type { ComponentType } from "react";
2
+ /** A named example of the @krizaka/charts registry. */
3
+ declare const Example: ComponentType;
4
+ export default Example;
@@ -0,0 +1,30 @@
1
+ "use client";
2
+
3
+ // registry/examples/pie-chart/credit-spend.tsx
4
+ import { DonutChart } from "@krizaka/charts/pie";
5
+ import { jsx } from "react/jsx-runtime";
6
+ var spend = [
7
+ { model: "Chat \xB7 Mistral Large", credits: 18400 },
8
+ { model: "Image \xB7 Flux", credits: 9650 },
9
+ { model: "Video \xB7 Wan 2.2", credits: 7200 },
10
+ { model: "Speech \xB7 Whisper", credits: 2100 },
11
+ { model: "Embeddings", credits: 640 }
12
+ ];
13
+ function CreditSpend() {
14
+ return /* @__PURE__ */ jsx(
15
+ DonutChart,
16
+ {
17
+ title: "Credits spent in September",
18
+ data: spend,
19
+ label: "model",
20
+ value: "credits",
21
+ labelHeader: "Model",
22
+ valueHeader: "Credits",
23
+ format: "integer",
24
+ centerLabel: "credits"
25
+ }
26
+ );
27
+ }
28
+ export {
29
+ CreditSpend as default
30
+ };
@@ -0,0 +1,24 @@
1
+ import { DonutChart } from "@krizaka/charts/pie";
2
+
3
+ const spend = [
4
+ { model: "Chat · Mistral Large", credits: 18_400 },
5
+ { model: "Image · Flux", credits: 9_650 },
6
+ { model: "Video · Wan 2.2", credits: 7_200 },
7
+ { model: "Speech · Whisper", credits: 2_100 },
8
+ { model: "Embeddings", credits: 640 },
9
+ ];
10
+
11
+ export default function CreditSpend() {
12
+ return (
13
+ <DonutChart
14
+ title="Credits spent in September"
15
+ data={spend}
16
+ label="model"
17
+ value="credits"
18
+ labelHeader="Model"
19
+ valueHeader="Credits"
20
+ format="integer"
21
+ centerLabel="credits"
22
+ />
23
+ );
24
+ }
@@ -0,0 +1,4 @@
1
+ import type { ComponentType } from "react";
2
+ /** A named example of the @krizaka/charts registry. */
3
+ declare const Example: ComponentType;
4
+ export default Example;
@@ -0,0 +1,17 @@
1
+ "use client";
2
+
3
+ // registry/examples/pie-chart/native/credit-spend.tsx
4
+ import { DonutChart } from "@krizaka/charts/native";
5
+ import { jsx } from "react/jsx-runtime";
6
+ var spend = [
7
+ { model: "Chat", credits: 18400 },
8
+ { model: "Image", credits: 9650 },
9
+ { model: "Video", credits: 7200 },
10
+ { model: "Speech", credits: 2100 }
11
+ ];
12
+ function CreditSpend() {
13
+ return /* @__PURE__ */ jsx(DonutChart, { title: "Credits spent in September", data: spend, label: "model", value: "credits", format: "compact", centerLabel: "credits" });
14
+ }
15
+ export {
16
+ CreditSpend as default
17
+ };
@@ -0,0 +1,12 @@
1
+ import { DonutChart } from "@krizaka/charts/native";
2
+
3
+ const spend = [
4
+ { model: "Chat", credits: 18_400 },
5
+ { model: "Image", credits: 9_650 },
6
+ { model: "Video", credits: 7_200 },
7
+ { model: "Speech", credits: 2_100 },
8
+ ];
9
+
10
+ export default function CreditSpend() {
11
+ return <DonutChart title="Credits spent in September" data={spend} label="model" value="credits" format="compact" centerLabel="credits" />;
12
+ }
@@ -0,0 +1,4 @@
1
+ import type { ComponentType } from "react";
2
+ /** A named example of the @krizaka/charts registry. */
3
+ declare const Example: ComponentType;
4
+ export default Example;
@@ -0,0 +1,31 @@
1
+ "use client";
2
+
3
+ // registry/examples/pie-chart/storage-by-kind.tsx
4
+ import { PieChart } from "@krizaka/charts/pie";
5
+ import { jsx } from "react/jsx-runtime";
6
+ var kinds = [
7
+ { kind: "Videos", gb: 812 },
8
+ { kind: "Thumbnails", gb: 64 },
9
+ { kind: "Audio", gb: 121 },
10
+ { kind: "Subtitles", gb: 3 },
11
+ { kind: "Project files", gb: 96 },
12
+ { kind: "Exports", gb: 210 },
13
+ { kind: "Fonts", gb: 1 },
14
+ { kind: "Logs", gb: 2 }
15
+ ];
16
+ function StorageByKind() {
17
+ return /* @__PURE__ */ jsx(
18
+ PieChart,
19
+ {
20
+ title: "Storage by kind",
21
+ data: kinds,
22
+ label: "kind",
23
+ value: "gb",
24
+ format: { style: "unit", unit: "gigabyte" },
25
+ otherLabel: "Other"
26
+ }
27
+ );
28
+ }
29
+ export {
30
+ StorageByKind as default
31
+ };
@@ -0,0 +1,26 @@
1
+ import { PieChart } from "@krizaka/charts/pie";
2
+
3
+ // Gigabytes; past six slices the smallest fold into “Other”.
4
+ const kinds = [
5
+ { kind: "Videos", gb: 812 },
6
+ { kind: "Thumbnails", gb: 64 },
7
+ { kind: "Audio", gb: 121 },
8
+ { kind: "Subtitles", gb: 3 },
9
+ { kind: "Project files", gb: 96 },
10
+ { kind: "Exports", gb: 210 },
11
+ { kind: "Fonts", gb: 1 },
12
+ { kind: "Logs", gb: 2 },
13
+ ];
14
+
15
+ export default function StorageByKind() {
16
+ return (
17
+ <PieChart
18
+ title="Storage by kind"
19
+ data={kinds}
20
+ label="kind"
21
+ value="gb"
22
+ format={{ style: "unit", unit: "gigabyte" }}
23
+ otherLabel="Other"
24
+ />
25
+ );
26
+ }
@@ -0,0 +1,4 @@
1
+ import type { ComponentType } from "react";
2
+ /** A named example of the @krizaka/charts registry. */
3
+ declare const Example: ComponentType;
4
+ export default Example;
@@ -0,0 +1,33 @@
1
+ "use client";
2
+
3
+ // registry/examples/radar-chart/model-comparison.tsx
4
+ import { RadarChart } from "@krizaka/charts/radar";
5
+ import { jsx } from "react/jsx-runtime";
6
+ var scores = [
7
+ { measure: "Quality", large: 92, small: 78 },
8
+ { measure: "Speed", large: 64, small: 91 },
9
+ { measure: "Cost efficiency", large: 55, small: 88 },
10
+ { measure: "French", large: 95, small: 84 },
11
+ { measure: "Tool use", large: 89, small: 70 }
12
+ ];
13
+ function ModelComparison() {
14
+ return /* @__PURE__ */ jsx(
15
+ RadarChart,
16
+ {
17
+ title: "Two chat models compared",
18
+ description: "Orazaka evaluation set, October 2026 \xB7 out of 100",
19
+ data: scores,
20
+ x: "measure",
21
+ xLabel: "Measure",
22
+ series: [
23
+ { key: "large", label: "Mistral Large" },
24
+ { key: "small", label: "Mistral Small" }
25
+ ],
26
+ max: 100,
27
+ format: "integer"
28
+ }
29
+ );
30
+ }
31
+ export {
32
+ ModelComparison as default
33
+ };
@@ -0,0 +1,28 @@
1
+ import { RadarChart } from "@krizaka/charts/radar";
2
+
3
+ // Scores out of 100, higher is better on every axis.
4
+ const scores = [
5
+ { measure: "Quality", large: 92, small: 78 },
6
+ { measure: "Speed", large: 64, small: 91 },
7
+ { measure: "Cost efficiency", large: 55, small: 88 },
8
+ { measure: "French", large: 95, small: 84 },
9
+ { measure: "Tool use", large: 89, small: 70 },
10
+ ];
11
+
12
+ export default function ModelComparison() {
13
+ return (
14
+ <RadarChart
15
+ title="Two chat models compared"
16
+ description="Orazaka evaluation set, October 2026 · out of 100"
17
+ data={scores}
18
+ x="measure"
19
+ xLabel="Measure"
20
+ series={[
21
+ { key: "large", label: "Mistral Large" },
22
+ { key: "small", label: "Mistral Small" },
23
+ ]}
24
+ max={100}
25
+ format="integer"
26
+ />
27
+ );
28
+ }
@@ -0,0 +1,4 @@
1
+ import type { ComponentType } from "react";
2
+ /** A named example of the @krizaka/charts registry. */
3
+ declare const Example: ComponentType;
4
+ export default Example;
@@ -0,0 +1,37 @@
1
+ "use client";
2
+
3
+ // registry/examples/sankey/credit-flow.tsx
4
+ import { Sankey } from "@krizaka/charts/sankey";
5
+ import { jsx } from "react/jsx-runtime";
6
+ var flows = [
7
+ { from: "Pro plans", to: "Chat", credits: 182 },
8
+ { from: "Pro plans", to: "Image", credits: 64 },
9
+ { from: "Studio plans", to: "Video", credits: 121 },
10
+ { from: "Studio plans", to: "Image", credits: 48 },
11
+ { from: "Studio plans", to: "Chat", credits: 37 },
12
+ { from: "Chat", to: "Delivered", credits: 211 },
13
+ { from: "Chat", to: "Refunded", credits: 8 },
14
+ { from: "Image", to: "Delivered", credits: 104 },
15
+ { from: "Image", to: "Refunded", credits: 8 },
16
+ { from: "Video", to: "Delivered", credits: 109 },
17
+ { from: "Video", to: "Refunded", credits: 12 }
18
+ ];
19
+ function CreditFlow() {
20
+ return /* @__PURE__ */ jsx(
21
+ Sankey,
22
+ {
23
+ title: "Where the credits went (k)",
24
+ data: flows,
25
+ source: "from",
26
+ target: "to",
27
+ value: "credits",
28
+ format: "integer",
29
+ sourceLabel: "From",
30
+ targetLabel: "To",
31
+ valueLabel: "Credits (k)"
32
+ }
33
+ );
34
+ }
35
+ export {
36
+ CreditFlow as default
37
+ };
@@ -0,0 +1,32 @@
1
+ import { Sankey } from "@krizaka/charts/sankey";
2
+
3
+ // Thousands of credits in September.
4
+ const flows = [
5
+ { from: "Pro plans", to: "Chat", credits: 182 },
6
+ { from: "Pro plans", to: "Image", credits: 64 },
7
+ { from: "Studio plans", to: "Video", credits: 121 },
8
+ { from: "Studio plans", to: "Image", credits: 48 },
9
+ { from: "Studio plans", to: "Chat", credits: 37 },
10
+ { from: "Chat", to: "Delivered", credits: 211 },
11
+ { from: "Chat", to: "Refunded", credits: 8 },
12
+ { from: "Image", to: "Delivered", credits: 104 },
13
+ { from: "Image", to: "Refunded", credits: 8 },
14
+ { from: "Video", to: "Delivered", credits: 109 },
15
+ { from: "Video", to: "Refunded", credits: 12 },
16
+ ];
17
+
18
+ export default function CreditFlow() {
19
+ return (
20
+ <Sankey
21
+ title="Where the credits went (k)"
22
+ data={flows}
23
+ source="from"
24
+ target="to"
25
+ value="credits"
26
+ format="integer"
27
+ sourceLabel="From"
28
+ targetLabel="To"
29
+ valueLabel="Credits (k)"
30
+ />
31
+ );
32
+ }
@@ -0,0 +1,4 @@
1
+ import type { ComponentType } from "react";
2
+ /** A named example of the @krizaka/charts registry. */
3
+ declare const Example: ComponentType;
4
+ export default Example;
@@ -0,0 +1,36 @@
1
+ "use client";
2
+
3
+ // registry/examples/scatter-chart/watch-time.tsx
4
+ import { ScatterChart } from "@krizaka/charts/scatter";
5
+ import { jsx } from "react/jsx-runtime";
6
+ var formats = ["Short", "Tutorial", "Documentary"];
7
+ var videos = Array.from({ length: 36 }, (_, i) => {
8
+ const format = formats[i % 3];
9
+ const minutes = format === "Short" ? 1 + i % 4 : format === "Tutorial" ? 8 + i * 7 % 18 : 22 + i * 5 % 30;
10
+ const watched = minutes * (format === "Documentary" ? 0.62 : format === "Tutorial" ? 0.48 : 0.81) + i * 13 % 5 - 2;
11
+ return { title: `Video ${i + 1}`, format, minutes, watched: Math.max(0.5, watched), views: 800 + i * 977 % 9e3 };
12
+ });
13
+ function WatchTime() {
14
+ return /* @__PURE__ */ jsx(
15
+ ScatterChart,
16
+ {
17
+ title: "Length and watch time",
18
+ description: "Last 36 videos \xB7 bubble area = views",
19
+ data: videos,
20
+ x: "minutes",
21
+ y: "watched",
22
+ size: "views",
23
+ group: "format",
24
+ name: "title",
25
+ xLabel: "Length (min)",
26
+ yLabel: "Average watch (min)",
27
+ sizeLabel: "Views",
28
+ xFormat: "integer",
29
+ yFormat: { style: "number", options: { maximumFractionDigits: 1 } },
30
+ sizeFormat: "compact"
31
+ }
32
+ );
33
+ }
34
+ export {
35
+ WatchTime as default
36
+ };
@@ -0,0 +1,31 @@
1
+ import { ScatterChart } from "@krizaka/charts/scatter";
2
+
3
+ const formats = ["Short", "Tutorial", "Documentary"] as const;
4
+ // 36 deterministic videos: longer videos are watched longer, documentaries most.
5
+ const videos = Array.from({ length: 36 }, (_, i) => {
6
+ const format = formats[i % 3]!;
7
+ const minutes = format === "Short" ? 1 + (i % 4) : format === "Tutorial" ? 8 + ((i * 7) % 18) : 22 + ((i * 5) % 30);
8
+ const watched = minutes * (format === "Documentary" ? 0.62 : format === "Tutorial" ? 0.48 : 0.81) + ((i * 13) % 5) - 2;
9
+ return { title: `Video ${i + 1}`, format, minutes, watched: Math.max(0.5, watched), views: 800 + ((i * 977) % 9_000) };
10
+ });
11
+
12
+ export default function WatchTime() {
13
+ return (
14
+ <ScatterChart
15
+ title="Length and watch time"
16
+ description="Last 36 videos · bubble area = views"
17
+ data={videos}
18
+ x="minutes"
19
+ y="watched"
20
+ size="views"
21
+ group="format"
22
+ name="title"
23
+ xLabel="Length (min)"
24
+ yLabel="Average watch (min)"
25
+ sizeLabel="Views"
26
+ xFormat="integer"
27
+ yFormat={{ style: "number", options: { maximumFractionDigits: 1 } }}
28
+ sizeFormat="compact"
29
+ />
30
+ );
31
+ }
@@ -0,0 +1,4 @@
1
+ import type { ComponentType } from "react";
2
+ /** A named example of the @krizaka/charts registry. */
3
+ declare const Example: ComponentType;
4
+ export default Example;
@@ -0,0 +1,12 @@
1
+ "use client";
2
+
3
+ // registry/examples/sparkline/bars.tsx
4
+ import { Sparkline } from "@krizaka/charts/sparkline";
5
+ import { jsx } from "react/jsx-runtime";
6
+ var jobsPerHour = [12, 8, 5, 3, 2, 4, 9, 21, 38, 52, 61, 58, 64, 70, 66, 59, 63, 55, 47, 41, 33, 26, 19, 14];
7
+ function Bars() {
8
+ return /* @__PURE__ */ jsx(Sparkline, { title: "Jobs per hour, today", data: jobsPerHour, variant: "bar", width: 180, height: 36, format: "integer", color: 2 });
9
+ }
10
+ export {
11
+ Bars as default
12
+ };
@@ -0,0 +1,7 @@
1
+ import { Sparkline } from "@krizaka/charts/sparkline";
2
+
3
+ const jobsPerHour = [12, 8, 5, 3, 2, 4, 9, 21, 38, 52, 61, 58, 64, 70, 66, 59, 63, 55, 47, 41, 33, 26, 19, 14];
4
+
5
+ export default function Bars() {
6
+ return <Sparkline title="Jobs per hour, today" data={jobsPerHour} variant="bar" width={180} height={36} format="integer" color={2} />;
7
+ }