@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,458 @@
1
+ {
2
+ "name": "radar-chart",
3
+ "package": "@krizaka/charts",
4
+ "type": "chart",
5
+ "title": "Radar chart",
6
+ "summary": "Several measures of a few entities at once — models compared on quality, speed, cost — on axes around a centre.",
7
+ "description": "Several measures of a few entities at once — models compared on quality, speed, cost — on axes around a centre.",
8
+ "status": "beta",
9
+ "category": "charts",
10
+ "platforms": "web",
11
+ "engine": "echarts",
12
+ "whenToUse": [
13
+ "Two or three entities compared on five to eight measures of the same scale (scores out of 100)."
14
+ ],
15
+ "whenNotToUse": [
16
+ {
17
+ "when": "Measures of different units or scales.",
18
+ "use": "bar-chart"
19
+ },
20
+ {
21
+ "when": "More than three entities: the shapes overlap.",
22
+ "use": "heatmap"
23
+ }
24
+ ],
25
+ "bestPractices": [
26
+ "Normalise the measures to one scale (0–100) and say it in the description.",
27
+ "Orient every axis the same way: higher is better."
28
+ ],
29
+ "accessibility": {
30
+ "keyboard": [
31
+ {
32
+ "keys": "Tab",
33
+ "action": "Moves the focus to the plot (one tab stop), then to the data and export buttons."
34
+ },
35
+ {
36
+ "keys": "Arrow keys",
37
+ "action": "Walk the items one by one: each is announced and highlighted, its tooltip shown."
38
+ },
39
+ {
40
+ "keys": "Home / End",
41
+ "action": "Jump to the first or the last item."
42
+ },
43
+ {
44
+ "keys": "Esc",
45
+ "action": "Hides the tooltip and clears the highlight."
46
+ }
47
+ ],
48
+ "notes": [
49
+ "The plot is a group named by the title and described by a summary written from the data, read before anything else.",
50
+ "The data table is always in the page for assistive technology; “Show data” reveals it for everyone.",
51
+ "The engine (ECharts core and this one chart type) loads when the chart nears the screen; a skeleton of the same height holds its place, so nothing shifts.",
52
+ "Under reduced motion the chart is drawn without animation."
53
+ ]
54
+ },
55
+ "related": [
56
+ "bar-chart",
57
+ "heatmap",
58
+ "scatter-chart"
59
+ ],
60
+ "source": "packages/charts/src/meta/radar-chart.ts",
61
+ "install": {
62
+ "web": "npm install @krizaka/charts",
63
+ "native": "npx expo install react-native-svg\nnpm install @krizaka/charts"
64
+ },
65
+ "web": {
66
+ "entry": "@krizaka/charts/radar",
67
+ "import": "import { RadarChart } from \"@krizaka/charts/radar\";",
68
+ "props": [
69
+ {
70
+ "component": "RadarChart",
71
+ "description": "",
72
+ "props": [
73
+ {
74
+ "name": "data",
75
+ "type": "readonly T[]",
76
+ "default": null,
77
+ "description": "One row per axis (“Latency”, “Quality”…).",
78
+ "required": true
79
+ },
80
+ {
81
+ "name": "series",
82
+ "type": "readonly SeriesSpec<T>[]",
83
+ "default": null,
84
+ "description": "The entities compared, one value per axis each.",
85
+ "required": true
86
+ },
87
+ {
88
+ "name": "title",
89
+ "type": "string",
90
+ "default": null,
91
+ "description": "What the chart shows, in a few words: its accessible name, and its heading unless `hideTitle`.",
92
+ "required": true
93
+ },
94
+ {
95
+ "name": "x",
96
+ "type": "string | ((datum: T, index: number) => string)",
97
+ "default": null,
98
+ "description": "The field (or function) naming the axis.",
99
+ "required": true
100
+ },
101
+ {
102
+ "name": "brand",
103
+ "type": "BrandId",
104
+ "default": null,
105
+ "description": "The brand whose palette the charts use. Without it, a chart follows a `.brand-<id>` ancestor, else Krizaka. Set it\nwhen the app loads a brand stylesheet on `:root` (`@krizaka/tokens/brands/orazaka.css`).",
106
+ "required": false
107
+ },
108
+ {
109
+ "name": "className",
110
+ "type": "string",
111
+ "default": null,
112
+ "description": "A class on the figure (layout: margins, grid placement).",
113
+ "required": false
114
+ },
115
+ {
116
+ "name": "dataTable",
117
+ "type": "boolean",
118
+ "default": null,
119
+ "description": "The \"Show data\" button (the table is in the page for screen readers either way). Default true.",
120
+ "required": false
121
+ },
122
+ {
123
+ "name": "description",
124
+ "type": "ReactNode",
125
+ "default": null,
126
+ "description": "A sentence under the title: the period, the unit, the source.",
127
+ "required": false
128
+ },
129
+ {
130
+ "name": "empty",
131
+ "type": "ReactNode",
132
+ "default": null,
133
+ "description": "What to show when there is nothing to draw (default: the `empty` label). An `EmptyState` of\n@krizaka /ui fits.",
134
+ "required": false
135
+ },
136
+ {
137
+ "name": "error",
138
+ "type": "ReactNode",
139
+ "default": null,
140
+ "description": "The data could not be loaded: `true` says the default words, a node says yours (a retry button…).",
141
+ "required": false
142
+ },
143
+ {
144
+ "name": "exportable",
145
+ "type": "boolean | readonly ExportFormat[]",
146
+ "default": null,
147
+ "description": "Export buttons: `true` for PNG, SVG and CSV, or the formats you want.",
148
+ "required": false
149
+ },
150
+ {
151
+ "name": "format",
152
+ "type": "ValueFormat",
153
+ "default": null,
154
+ "description": "How the values are written.",
155
+ "required": false
156
+ },
157
+ {
158
+ "name": "height",
159
+ "type": "number",
160
+ "default": null,
161
+ "description": "The height of the plot in pixels. Default 280 (a sparkline: 32).",
162
+ "required": false
163
+ },
164
+ {
165
+ "name": "hideTitle",
166
+ "type": "boolean",
167
+ "default": null,
168
+ "description": "Visually hide the title (it stays the chart's accessible name): a card that already has its heading.",
169
+ "required": false
170
+ },
171
+ {
172
+ "name": "id",
173
+ "type": "string",
174
+ "default": null,
175
+ "description": "The id of the figure.",
176
+ "required": false
177
+ },
178
+ {
179
+ "name": "labels",
180
+ "type": "ChartLabelsInput",
181
+ "default": null,
182
+ "description": "The words, translated: the buttons, the states, the written summary.",
183
+ "required": false
184
+ },
185
+ {
186
+ "name": "live",
187
+ "type": "boolean",
188
+ "default": null,
189
+ "description": "Streaming data (a job queue, an auction): no entrance on updates, no announcement of every new point.",
190
+ "required": false
191
+ },
192
+ {
193
+ "name": "loading",
194
+ "type": "boolean",
195
+ "default": null,
196
+ "description": "The data is on its way: a skeleton of the chart, announced once.",
197
+ "required": false
198
+ },
199
+ {
200
+ "name": "locale",
201
+ "type": "Locale",
202
+ "default": null,
203
+ "description": "The locale of every figure and date (`\"fr-FR\"`). Default `\"en-US\"`.",
204
+ "required": false
205
+ },
206
+ {
207
+ "name": "max",
208
+ "type": "number",
209
+ "default": null,
210
+ "description": "The end of every axis. Default: the largest value, rounded up.",
211
+ "required": false
212
+ },
213
+ {
214
+ "name": "renderer",
215
+ "type": "Renderer",
216
+ "default": null,
217
+ "description": "`svg` (default): sharp, exportable as SVG. `canvas`: for tens of thousands of marks.",
218
+ "required": false
219
+ },
220
+ {
221
+ "name": "style",
222
+ "type": "CSSProperties",
223
+ "default": null,
224
+ "description": "Inline style on the figure (layout only: colours come from the tokens).",
225
+ "required": false
226
+ },
227
+ {
228
+ "name": "summary",
229
+ "type": "\"hidden\" | \"visible\"",
230
+ "default": null,
231
+ "description": "The written summary: read by screen readers only (`\"hidden\"`, default), or shown under the chart (`\"visible\"`).",
232
+ "required": false
233
+ },
234
+ {
235
+ "name": "summaryText",
236
+ "type": "string",
237
+ "default": null,
238
+ "description": "Your own summary instead of the generated one (still read first by screen readers).",
239
+ "required": false
240
+ },
241
+ {
242
+ "name": "xLabel",
243
+ "type": "string",
244
+ "default": null,
245
+ "description": "The header of the axes in the data table.",
246
+ "required": false
247
+ }
248
+ ]
249
+ }
250
+ ],
251
+ "examples": [
252
+ {
253
+ "name": "model-comparison",
254
+ "title": "Model comparison",
255
+ "description": "Two Orazaka models scored on five measures, out of 100.",
256
+ "path": "examples/radar-chart/model-comparison.tsx",
257
+ "module": "@krizaka/charts/registry/examples/radar-chart/model-comparison",
258
+ "code": "import { RadarChart } from \"@krizaka/charts/radar\";\n\n// Scores out of 100, higher is better on every axis.\nconst scores = [\n { measure: \"Quality\", large: 92, small: 78 },\n { measure: \"Speed\", large: 64, small: 91 },\n { measure: \"Cost efficiency\", large: 55, small: 88 },\n { measure: \"French\", large: 95, small: 84 },\n { measure: \"Tool use\", large: 89, small: 70 },\n];\n\nexport default function ModelComparison() {\n return (\n <RadarChart\n title=\"Two chat models compared\"\n description=\"Orazaka evaluation set, October 2026 · out of 100\"\n data={scores}\n x=\"measure\"\n xLabel=\"Measure\"\n series={[\n { key: \"large\", label: \"Mistral Large\" },\n { key: \"small\", label: \"Mistral Small\" },\n ]}\n max={100}\n format=\"integer\"\n />\n );\n}\n"
259
+ }
260
+ ]
261
+ },
262
+ "native": null,
263
+ "files": [],
264
+ "dependencies": [
265
+ "@krizaka/intl@workspace:^",
266
+ "d3-geo@^3.1.1",
267
+ "echarts@^6.1.0",
268
+ "topojson-client@^3.1.0"
269
+ ],
270
+ "registryDependencies": [],
271
+ "demo": {
272
+ "path": "examples/radar-chart/model-comparison.tsx",
273
+ "content": "import { RadarChart } from \"@krizaka/charts/radar\";\n\n// Scores out of 100, higher is better on every axis.\nconst scores = [\n { measure: \"Quality\", large: 92, small: 78 },\n { measure: \"Speed\", large: 64, small: 91 },\n { measure: \"Cost efficiency\", large: 55, small: 88 },\n { measure: \"French\", large: 95, small: 84 },\n { measure: \"Tool use\", large: 89, small: 70 },\n];\n\nexport default function ModelComparison() {\n return (\n <RadarChart\n title=\"Two chat models compared\"\n description=\"Orazaka evaluation set, October 2026 · out of 100\"\n data={scores}\n x=\"measure\"\n xLabel=\"Measure\"\n series={[\n { key: \"large\", label: \"Mistral Large\" },\n { key: \"small\", label: \"Mistral Small\" },\n ]}\n max={100}\n format=\"integer\"\n />\n );\n}\n"
274
+ },
275
+ "props": [
276
+ {
277
+ "component": "RadarChart",
278
+ "description": "",
279
+ "props": [
280
+ {
281
+ "name": "data",
282
+ "type": "readonly T[]",
283
+ "default": null,
284
+ "description": "One row per axis (“Latency”, “Quality”…).",
285
+ "required": true
286
+ },
287
+ {
288
+ "name": "series",
289
+ "type": "readonly SeriesSpec<T>[]",
290
+ "default": null,
291
+ "description": "The entities compared, one value per axis each.",
292
+ "required": true
293
+ },
294
+ {
295
+ "name": "title",
296
+ "type": "string",
297
+ "default": null,
298
+ "description": "What the chart shows, in a few words: its accessible name, and its heading unless `hideTitle`.",
299
+ "required": true
300
+ },
301
+ {
302
+ "name": "x",
303
+ "type": "string | ((datum: T, index: number) => string)",
304
+ "default": null,
305
+ "description": "The field (or function) naming the axis.",
306
+ "required": true
307
+ },
308
+ {
309
+ "name": "brand",
310
+ "type": "BrandId",
311
+ "default": null,
312
+ "description": "The brand whose palette the charts use. Without it, a chart follows a `.brand-<id>` ancestor, else Krizaka. Set it\nwhen the app loads a brand stylesheet on `:root` (`@krizaka/tokens/brands/orazaka.css`).",
313
+ "required": false
314
+ },
315
+ {
316
+ "name": "className",
317
+ "type": "string",
318
+ "default": null,
319
+ "description": "A class on the figure (layout: margins, grid placement).",
320
+ "required": false
321
+ },
322
+ {
323
+ "name": "dataTable",
324
+ "type": "boolean",
325
+ "default": null,
326
+ "description": "The \"Show data\" button (the table is in the page for screen readers either way). Default true.",
327
+ "required": false
328
+ },
329
+ {
330
+ "name": "description",
331
+ "type": "ReactNode",
332
+ "default": null,
333
+ "description": "A sentence under the title: the period, the unit, the source.",
334
+ "required": false
335
+ },
336
+ {
337
+ "name": "empty",
338
+ "type": "ReactNode",
339
+ "default": null,
340
+ "description": "What to show when there is nothing to draw (default: the `empty` label). An `EmptyState` of\n@krizaka /ui fits.",
341
+ "required": false
342
+ },
343
+ {
344
+ "name": "error",
345
+ "type": "ReactNode",
346
+ "default": null,
347
+ "description": "The data could not be loaded: `true` says the default words, a node says yours (a retry button…).",
348
+ "required": false
349
+ },
350
+ {
351
+ "name": "exportable",
352
+ "type": "boolean | readonly ExportFormat[]",
353
+ "default": null,
354
+ "description": "Export buttons: `true` for PNG, SVG and CSV, or the formats you want.",
355
+ "required": false
356
+ },
357
+ {
358
+ "name": "format",
359
+ "type": "ValueFormat",
360
+ "default": null,
361
+ "description": "How the values are written.",
362
+ "required": false
363
+ },
364
+ {
365
+ "name": "height",
366
+ "type": "number",
367
+ "default": null,
368
+ "description": "The height of the plot in pixels. Default 280 (a sparkline: 32).",
369
+ "required": false
370
+ },
371
+ {
372
+ "name": "hideTitle",
373
+ "type": "boolean",
374
+ "default": null,
375
+ "description": "Visually hide the title (it stays the chart's accessible name): a card that already has its heading.",
376
+ "required": false
377
+ },
378
+ {
379
+ "name": "id",
380
+ "type": "string",
381
+ "default": null,
382
+ "description": "The id of the figure.",
383
+ "required": false
384
+ },
385
+ {
386
+ "name": "labels",
387
+ "type": "ChartLabelsInput",
388
+ "default": null,
389
+ "description": "The words, translated: the buttons, the states, the written summary.",
390
+ "required": false
391
+ },
392
+ {
393
+ "name": "live",
394
+ "type": "boolean",
395
+ "default": null,
396
+ "description": "Streaming data (a job queue, an auction): no entrance on updates, no announcement of every new point.",
397
+ "required": false
398
+ },
399
+ {
400
+ "name": "loading",
401
+ "type": "boolean",
402
+ "default": null,
403
+ "description": "The data is on its way: a skeleton of the chart, announced once.",
404
+ "required": false
405
+ },
406
+ {
407
+ "name": "locale",
408
+ "type": "Locale",
409
+ "default": null,
410
+ "description": "The locale of every figure and date (`\"fr-FR\"`). Default `\"en-US\"`.",
411
+ "required": false
412
+ },
413
+ {
414
+ "name": "max",
415
+ "type": "number",
416
+ "default": null,
417
+ "description": "The end of every axis. Default: the largest value, rounded up.",
418
+ "required": false
419
+ },
420
+ {
421
+ "name": "renderer",
422
+ "type": "Renderer",
423
+ "default": null,
424
+ "description": "`svg` (default): sharp, exportable as SVG. `canvas`: for tens of thousands of marks.",
425
+ "required": false
426
+ },
427
+ {
428
+ "name": "style",
429
+ "type": "CSSProperties",
430
+ "default": null,
431
+ "description": "Inline style on the figure (layout only: colours come from the tokens).",
432
+ "required": false
433
+ },
434
+ {
435
+ "name": "summary",
436
+ "type": "\"hidden\" | \"visible\"",
437
+ "default": null,
438
+ "description": "The written summary: read by screen readers only (`\"hidden\"`, default), or shown under the chart (`\"visible\"`).",
439
+ "required": false
440
+ },
441
+ {
442
+ "name": "summaryText",
443
+ "type": "string",
444
+ "default": null,
445
+ "description": "Your own summary instead of the generated one (still read first by screen readers).",
446
+ "required": false
447
+ },
448
+ {
449
+ "name": "xLabel",
450
+ "type": "string",
451
+ "default": null,
452
+ "description": "The header of the axes in the data table.",
453
+ "required": false
454
+ }
455
+ ]
456
+ }
457
+ ]
458
+ }