@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,552 @@
1
+ {
2
+ "name": "candlestick",
3
+ "package": "@krizaka/charts",
4
+ "type": "chart",
5
+ "title": "Candlestick",
6
+ "summary": "Open, high, low and close per period, rising candles hollow and falling ones filled, the volume in its own panel, zoom and thresholds.",
7
+ "description": "Open, high, low and close per period, rising candles hollow and falling ones filled, the volume in its own panel, zoom and thresholds.",
8
+ "status": "beta",
9
+ "category": "charts",
10
+ "platforms": "web",
11
+ "engine": "echarts",
12
+ "whenToUse": [
13
+ "A price that moves within each period: an auction's bids per hour, a credit's market price per day."
14
+ ],
15
+ "whenNotToUse": [
16
+ {
17
+ "when": "One value per period.",
18
+ "use": "line-chart"
19
+ }
20
+ ],
21
+ "bestPractices": [
22
+ "Give the reserve or the target as a threshold.",
23
+ "Past forty periods the chart zooms on the last forty; the wheel and a drag move through the rest."
24
+ ],
25
+ "accessibility": {
26
+ "keyboard": [
27
+ {
28
+ "keys": "Tab",
29
+ "action": "Moves the focus to the plot (one tab stop), then to the data and export buttons."
30
+ },
31
+ {
32
+ "keys": "Arrow keys",
33
+ "action": "Walk the items one by one: each is announced and highlighted, its tooltip shown."
34
+ },
35
+ {
36
+ "keys": "Home / End",
37
+ "action": "Jump to the first or the last item."
38
+ },
39
+ {
40
+ "keys": "Esc",
41
+ "action": "Hides the tooltip and clears the highlight."
42
+ }
43
+ ],
44
+ "notes": [
45
+ "The plot is a group named by the title and described by a summary written from the data, read before anything else.",
46
+ "The data table is always in the page for assistive technology; “Show data” reveals it for everyone.",
47
+ "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.",
48
+ "Under reduced motion the chart is drawn without animation.",
49
+ "Rising candles are hollow and falling ones filled: the shape says the direction, not only green and red."
50
+ ]
51
+ },
52
+ "related": [
53
+ "line-chart",
54
+ "bar-chart"
55
+ ],
56
+ "source": "packages/charts/src/meta/candlestick.ts",
57
+ "install": {
58
+ "web": "npm install @krizaka/charts",
59
+ "native": "npx expo install react-native-svg\nnpm install @krizaka/charts"
60
+ },
61
+ "web": {
62
+ "entry": "@krizaka/charts/candlestick",
63
+ "import": "import { Candlestick } from \"@krizaka/charts/candlestick\";",
64
+ "props": [
65
+ {
66
+ "component": "Candlestick",
67
+ "description": "",
68
+ "props": [
69
+ {
70
+ "name": "close",
71
+ "type": "string | ((datum: T, index: number) => number)",
72
+ "default": null,
73
+ "description": "The field of the price at the end of the period.",
74
+ "required": true
75
+ },
76
+ {
77
+ "name": "data",
78
+ "type": "readonly T[]",
79
+ "default": null,
80
+ "description": "One row per period, oldest first.",
81
+ "required": true
82
+ },
83
+ {
84
+ "name": "high",
85
+ "type": "string | ((datum: T, index: number) => number)",
86
+ "default": null,
87
+ "description": "The field of the highest price of the period.",
88
+ "required": true
89
+ },
90
+ {
91
+ "name": "low",
92
+ "type": "string | ((datum: T, index: number) => number)",
93
+ "default": null,
94
+ "description": "The field of the lowest price of the period.",
95
+ "required": true
96
+ },
97
+ {
98
+ "name": "open",
99
+ "type": "string | ((datum: T, index: number) => number)",
100
+ "default": null,
101
+ "description": "The field of the price at the start of the period.",
102
+ "required": true
103
+ },
104
+ {
105
+ "name": "title",
106
+ "type": "string",
107
+ "default": null,
108
+ "description": "What the chart shows, in a few words: its accessible name, and its heading unless `hideTitle`.",
109
+ "required": true
110
+ },
111
+ {
112
+ "name": "x",
113
+ "type": "string | ((datum: T, index: number) => unknown)",
114
+ "default": null,
115
+ "description": "The field of the period (a date, an hour).",
116
+ "required": true
117
+ },
118
+ {
119
+ "name": "brand",
120
+ "type": "BrandId",
121
+ "default": null,
122
+ "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`).",
123
+ "required": false
124
+ },
125
+ {
126
+ "name": "className",
127
+ "type": "string",
128
+ "default": null,
129
+ "description": "A class on the figure (layout: margins, grid placement).",
130
+ "required": false
131
+ },
132
+ {
133
+ "name": "columnLabels",
134
+ "type": "{ readonly open: string; readonly high: string; readonly low: string; readonly close: string; readonly volume: string; }",
135
+ "default": null,
136
+ "description": "The words of the table's columns and the tooltip's rows.",
137
+ "required": false
138
+ },
139
+ {
140
+ "name": "dataTable",
141
+ "type": "boolean",
142
+ "default": null,
143
+ "description": "The \"Show data\" button (the table is in the page for screen readers either way). Default true.",
144
+ "required": false
145
+ },
146
+ {
147
+ "name": "description",
148
+ "type": "ReactNode",
149
+ "default": null,
150
+ "description": "A sentence under the title: the period, the unit, the source.",
151
+ "required": false
152
+ },
153
+ {
154
+ "name": "empty",
155
+ "type": "ReactNode",
156
+ "default": null,
157
+ "description": "What to show when there is nothing to draw (default: the `empty` label). An `EmptyState` of\n@krizaka /ui fits.",
158
+ "required": false
159
+ },
160
+ {
161
+ "name": "error",
162
+ "type": "ReactNode",
163
+ "default": null,
164
+ "description": "The data could not be loaded: `true` says the default words, a node says yours (a retry button…).",
165
+ "required": false
166
+ },
167
+ {
168
+ "name": "exportable",
169
+ "type": "boolean | readonly ExportFormat[]",
170
+ "default": null,
171
+ "description": "Export buttons: `true` for PNG, SVG and CSV, or the formats you want.",
172
+ "required": false
173
+ },
174
+ {
175
+ "name": "format",
176
+ "type": "ValueFormat",
177
+ "default": null,
178
+ "description": "How the prices and the volume are written.",
179
+ "required": false
180
+ },
181
+ {
182
+ "name": "height",
183
+ "type": "number",
184
+ "default": null,
185
+ "description": "The height of the plot in pixels. Default 280 (a sparkline: 32).",
186
+ "required": false
187
+ },
188
+ {
189
+ "name": "hideTitle",
190
+ "type": "boolean",
191
+ "default": null,
192
+ "description": "Visually hide the title (it stays the chart's accessible name): a card that already has its heading.",
193
+ "required": false
194
+ },
195
+ {
196
+ "name": "id",
197
+ "type": "string",
198
+ "default": null,
199
+ "description": "The id of the figure.",
200
+ "required": false
201
+ },
202
+ {
203
+ "name": "labels",
204
+ "type": "ChartLabelsInput",
205
+ "default": null,
206
+ "description": "The words, translated: the buttons, the states, the written summary.",
207
+ "required": false
208
+ },
209
+ {
210
+ "name": "live",
211
+ "type": "boolean",
212
+ "default": null,
213
+ "description": "Streaming data (a job queue, an auction): no entrance on updates, no announcement of every new point.",
214
+ "required": false
215
+ },
216
+ {
217
+ "name": "loading",
218
+ "type": "boolean",
219
+ "default": null,
220
+ "description": "The data is on its way: a skeleton of the chart, announced once.",
221
+ "required": false
222
+ },
223
+ {
224
+ "name": "locale",
225
+ "type": "Locale",
226
+ "default": null,
227
+ "description": "The locale of every figure and date (`\"fr-FR\"`). Default `\"en-US\"`.",
228
+ "required": false
229
+ },
230
+ {
231
+ "name": "renderer",
232
+ "type": "Renderer",
233
+ "default": null,
234
+ "description": "`svg` (default): sharp, exportable as SVG. `canvas`: for tens of thousands of marks.",
235
+ "required": false
236
+ },
237
+ {
238
+ "name": "style",
239
+ "type": "CSSProperties",
240
+ "default": null,
241
+ "description": "Inline style on the figure (layout only: colours come from the tokens).",
242
+ "required": false
243
+ },
244
+ {
245
+ "name": "summary",
246
+ "type": "\"hidden\" | \"visible\"",
247
+ "default": null,
248
+ "description": "The written summary: read by screen readers only (`\"hidden\"`, default), or shown under the chart (`\"visible\"`).",
249
+ "required": false
250
+ },
251
+ {
252
+ "name": "summaryText",
253
+ "type": "string",
254
+ "default": null,
255
+ "description": "Your own summary instead of the generated one (still read first by screen readers).",
256
+ "required": false
257
+ },
258
+ {
259
+ "name": "thresholds",
260
+ "type": "readonly Threshold[]",
261
+ "default": null,
262
+ "description": "Horizontal lines: a reserve price, a target.",
263
+ "required": false
264
+ },
265
+ {
266
+ "name": "volume",
267
+ "type": "string | ((datum: T, index: number) => number)",
268
+ "default": null,
269
+ "description": "The field of the volume: drawn in its own panel under the candles.",
270
+ "required": false
271
+ },
272
+ {
273
+ "name": "volumeFormat",
274
+ "type": "ValueFormat",
275
+ "default": null,
276
+ "description": "How the volume is written. Default `\"compact\"`.",
277
+ "required": false
278
+ },
279
+ {
280
+ "name": "xFormat",
281
+ "type": "CategoryFormat",
282
+ "default": null,
283
+ "description": "How the periods are written.",
284
+ "required": false
285
+ },
286
+ {
287
+ "name": "zoom",
288
+ "type": "boolean",
289
+ "default": null,
290
+ "description": "Zoom with the wheel and drag to pan. Default true from 40 periods.",
291
+ "required": false
292
+ }
293
+ ]
294
+ }
295
+ ],
296
+ "examples": [
297
+ {
298
+ "name": "auction-bids",
299
+ "title": "Auction bids",
300
+ "description": "An Orochia auction's bids per hour, with the volume and the reserve price.",
301
+ "path": "examples/candlestick/auction-bids.tsx",
302
+ "module": "@krizaka/charts/registry/examples/candlestick/auction-bids",
303
+ "code": "import { Candlestick } from \"@krizaka/charts/candlestick\";\n\n// Bids in cents per hour on an auctioned video; a deterministic walk.\nlet price = 12_000;\nconst hours = Array.from({ length: 24 }, (_, i) => {\n const open = price;\n const close = open + ((i * 37) % 23) * 60 - 480 + (i > 15 ? 900 : 0);\n const high = Math.max(open, close) + ((i * 11) % 7) * 90;\n const low = Math.min(open, close) - ((i * 5) % 6) * 70;\n price = close;\n return { at: `2026-10-11T${String(i).padStart(2, \"0\")}:00Z`, open, high, low, close, bids: 4 + ((i * 17) % 13) };\n});\n\nexport default function AuctionBids() {\n return (\n <Candlestick\n title=\"“Northern lights over Tadoussac” — bids per hour\"\n data={hours}\n x=\"at\"\n xFormat=\"time\"\n open=\"open\"\n high=\"high\"\n low=\"low\"\n close=\"close\"\n volume=\"bids\"\n volumeFormat=\"integer\"\n format={{ style: \"money\", currency: \"CAD\" }}\n thresholds={[{ value: 15_000, label: \"Reserve price\", tone: \"warning\" }]}\n columnLabels={{ open: \"Open\", high: \"High\", low: \"Low\", close: \"Close\", volume: \"Bids\" }}\n />\n );\n}\n"
304
+ }
305
+ ]
306
+ },
307
+ "native": null,
308
+ "files": [],
309
+ "dependencies": [
310
+ "@krizaka/intl@workspace:^",
311
+ "d3-geo@^3.1.1",
312
+ "echarts@^6.1.0",
313
+ "topojson-client@^3.1.0"
314
+ ],
315
+ "registryDependencies": [],
316
+ "demo": {
317
+ "path": "examples/candlestick/auction-bids.tsx",
318
+ "content": "import { Candlestick } from \"@krizaka/charts/candlestick\";\n\n// Bids in cents per hour on an auctioned video; a deterministic walk.\nlet price = 12_000;\nconst hours = Array.from({ length: 24 }, (_, i) => {\n const open = price;\n const close = open + ((i * 37) % 23) * 60 - 480 + (i > 15 ? 900 : 0);\n const high = Math.max(open, close) + ((i * 11) % 7) * 90;\n const low = Math.min(open, close) - ((i * 5) % 6) * 70;\n price = close;\n return { at: `2026-10-11T${String(i).padStart(2, \"0\")}:00Z`, open, high, low, close, bids: 4 + ((i * 17) % 13) };\n});\n\nexport default function AuctionBids() {\n return (\n <Candlestick\n title=\"“Northern lights over Tadoussac” — bids per hour\"\n data={hours}\n x=\"at\"\n xFormat=\"time\"\n open=\"open\"\n high=\"high\"\n low=\"low\"\n close=\"close\"\n volume=\"bids\"\n volumeFormat=\"integer\"\n format={{ style: \"money\", currency: \"CAD\" }}\n thresholds={[{ value: 15_000, label: \"Reserve price\", tone: \"warning\" }]}\n columnLabels={{ open: \"Open\", high: \"High\", low: \"Low\", close: \"Close\", volume: \"Bids\" }}\n />\n );\n}\n"
319
+ },
320
+ "props": [
321
+ {
322
+ "component": "Candlestick",
323
+ "description": "",
324
+ "props": [
325
+ {
326
+ "name": "close",
327
+ "type": "string | ((datum: T, index: number) => number)",
328
+ "default": null,
329
+ "description": "The field of the price at the end of the period.",
330
+ "required": true
331
+ },
332
+ {
333
+ "name": "data",
334
+ "type": "readonly T[]",
335
+ "default": null,
336
+ "description": "One row per period, oldest first.",
337
+ "required": true
338
+ },
339
+ {
340
+ "name": "high",
341
+ "type": "string | ((datum: T, index: number) => number)",
342
+ "default": null,
343
+ "description": "The field of the highest price of the period.",
344
+ "required": true
345
+ },
346
+ {
347
+ "name": "low",
348
+ "type": "string | ((datum: T, index: number) => number)",
349
+ "default": null,
350
+ "description": "The field of the lowest price of the period.",
351
+ "required": true
352
+ },
353
+ {
354
+ "name": "open",
355
+ "type": "string | ((datum: T, index: number) => number)",
356
+ "default": null,
357
+ "description": "The field of the price at the start of the period.",
358
+ "required": true
359
+ },
360
+ {
361
+ "name": "title",
362
+ "type": "string",
363
+ "default": null,
364
+ "description": "What the chart shows, in a few words: its accessible name, and its heading unless `hideTitle`.",
365
+ "required": true
366
+ },
367
+ {
368
+ "name": "x",
369
+ "type": "string | ((datum: T, index: number) => unknown)",
370
+ "default": null,
371
+ "description": "The field of the period (a date, an hour).",
372
+ "required": true
373
+ },
374
+ {
375
+ "name": "brand",
376
+ "type": "BrandId",
377
+ "default": null,
378
+ "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`).",
379
+ "required": false
380
+ },
381
+ {
382
+ "name": "className",
383
+ "type": "string",
384
+ "default": null,
385
+ "description": "A class on the figure (layout: margins, grid placement).",
386
+ "required": false
387
+ },
388
+ {
389
+ "name": "columnLabels",
390
+ "type": "{ readonly open: string; readonly high: string; readonly low: string; readonly close: string; readonly volume: string; }",
391
+ "default": null,
392
+ "description": "The words of the table's columns and the tooltip's rows.",
393
+ "required": false
394
+ },
395
+ {
396
+ "name": "dataTable",
397
+ "type": "boolean",
398
+ "default": null,
399
+ "description": "The \"Show data\" button (the table is in the page for screen readers either way). Default true.",
400
+ "required": false
401
+ },
402
+ {
403
+ "name": "description",
404
+ "type": "ReactNode",
405
+ "default": null,
406
+ "description": "A sentence under the title: the period, the unit, the source.",
407
+ "required": false
408
+ },
409
+ {
410
+ "name": "empty",
411
+ "type": "ReactNode",
412
+ "default": null,
413
+ "description": "What to show when there is nothing to draw (default: the `empty` label). An `EmptyState` of\n@krizaka /ui fits.",
414
+ "required": false
415
+ },
416
+ {
417
+ "name": "error",
418
+ "type": "ReactNode",
419
+ "default": null,
420
+ "description": "The data could not be loaded: `true` says the default words, a node says yours (a retry button…).",
421
+ "required": false
422
+ },
423
+ {
424
+ "name": "exportable",
425
+ "type": "boolean | readonly ExportFormat[]",
426
+ "default": null,
427
+ "description": "Export buttons: `true` for PNG, SVG and CSV, or the formats you want.",
428
+ "required": false
429
+ },
430
+ {
431
+ "name": "format",
432
+ "type": "ValueFormat",
433
+ "default": null,
434
+ "description": "How the prices and the volume are written.",
435
+ "required": false
436
+ },
437
+ {
438
+ "name": "height",
439
+ "type": "number",
440
+ "default": null,
441
+ "description": "The height of the plot in pixels. Default 280 (a sparkline: 32).",
442
+ "required": false
443
+ },
444
+ {
445
+ "name": "hideTitle",
446
+ "type": "boolean",
447
+ "default": null,
448
+ "description": "Visually hide the title (it stays the chart's accessible name): a card that already has its heading.",
449
+ "required": false
450
+ },
451
+ {
452
+ "name": "id",
453
+ "type": "string",
454
+ "default": null,
455
+ "description": "The id of the figure.",
456
+ "required": false
457
+ },
458
+ {
459
+ "name": "labels",
460
+ "type": "ChartLabelsInput",
461
+ "default": null,
462
+ "description": "The words, translated: the buttons, the states, the written summary.",
463
+ "required": false
464
+ },
465
+ {
466
+ "name": "live",
467
+ "type": "boolean",
468
+ "default": null,
469
+ "description": "Streaming data (a job queue, an auction): no entrance on updates, no announcement of every new point.",
470
+ "required": false
471
+ },
472
+ {
473
+ "name": "loading",
474
+ "type": "boolean",
475
+ "default": null,
476
+ "description": "The data is on its way: a skeleton of the chart, announced once.",
477
+ "required": false
478
+ },
479
+ {
480
+ "name": "locale",
481
+ "type": "Locale",
482
+ "default": null,
483
+ "description": "The locale of every figure and date (`\"fr-FR\"`). Default `\"en-US\"`.",
484
+ "required": false
485
+ },
486
+ {
487
+ "name": "renderer",
488
+ "type": "Renderer",
489
+ "default": null,
490
+ "description": "`svg` (default): sharp, exportable as SVG. `canvas`: for tens of thousands of marks.",
491
+ "required": false
492
+ },
493
+ {
494
+ "name": "style",
495
+ "type": "CSSProperties",
496
+ "default": null,
497
+ "description": "Inline style on the figure (layout only: colours come from the tokens).",
498
+ "required": false
499
+ },
500
+ {
501
+ "name": "summary",
502
+ "type": "\"hidden\" | \"visible\"",
503
+ "default": null,
504
+ "description": "The written summary: read by screen readers only (`\"hidden\"`, default), or shown under the chart (`\"visible\"`).",
505
+ "required": false
506
+ },
507
+ {
508
+ "name": "summaryText",
509
+ "type": "string",
510
+ "default": null,
511
+ "description": "Your own summary instead of the generated one (still read first by screen readers).",
512
+ "required": false
513
+ },
514
+ {
515
+ "name": "thresholds",
516
+ "type": "readonly Threshold[]",
517
+ "default": null,
518
+ "description": "Horizontal lines: a reserve price, a target.",
519
+ "required": false
520
+ },
521
+ {
522
+ "name": "volume",
523
+ "type": "string | ((datum: T, index: number) => number)",
524
+ "default": null,
525
+ "description": "The field of the volume: drawn in its own panel under the candles.",
526
+ "required": false
527
+ },
528
+ {
529
+ "name": "volumeFormat",
530
+ "type": "ValueFormat",
531
+ "default": null,
532
+ "description": "How the volume is written. Default `\"compact\"`.",
533
+ "required": false
534
+ },
535
+ {
536
+ "name": "xFormat",
537
+ "type": "CategoryFormat",
538
+ "default": null,
539
+ "description": "How the periods are written.",
540
+ "required": false
541
+ },
542
+ {
543
+ "name": "zoom",
544
+ "type": "boolean",
545
+ "default": null,
546
+ "description": "Zoom with the wheel and drag to pan. Default true from 40 periods.",
547
+ "required": false
548
+ }
549
+ ]
550
+ }
551
+ ]
552
+ }