@krizaka/charts 0.1.0 → 0.2.1

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 (193) hide show
  1. package/README.md +17 -5
  2. package/dist/bar.js +5 -4
  3. package/dist/candlestick.js +3 -3
  4. package/dist/chart.js +3 -3
  5. package/dist/{chunk-EK3Z647J.js → chunk-4LBXEAGC.js} +3 -3
  6. package/dist/{chunk-AHQXJSAQ.js → chunk-AA5EWWYV.js} +2 -2
  7. package/dist/{chunk-VKO2OYYM.js → chunk-ARARFMNE.js} +2 -2
  8. package/dist/{chunk-WBH2QU77.js → chunk-BV4DBGN7.js} +2 -2
  9. package/dist/{chunk-BZ5CQFPH.js → chunk-C4MFZLJM.js} +2 -2
  10. package/dist/{chunk-XAJ3KCC4.js → chunk-CSSZLFLO.js} +3 -3
  11. package/dist/{chunk-UNK4MJVG.js → chunk-CVWSMUUB.js} +8 -8
  12. package/dist/chunk-E5DKBSWX.js +2 -0
  13. package/dist/chunk-E5DKBSWX.js.map +1 -0
  14. package/dist/chunk-EEP7PS2L.js +54 -0
  15. package/dist/chunk-EEP7PS2L.js.map +1 -0
  16. package/dist/{chunk-DZB6HEVO.js → chunk-EQLC2QVN.js} +2 -2
  17. package/dist/chunk-FINOPIDN.js +2 -0
  18. package/dist/chunk-FINOPIDN.js.map +1 -0
  19. package/dist/chunk-G2KF2WL4.js +2 -0
  20. package/dist/chunk-G2KF2WL4.js.map +1 -0
  21. package/dist/{chunk-PTSB3H5Q.js → chunk-I3D7KUGN.js} +2 -2
  22. package/dist/chunk-IKQV3NSL.js +76 -0
  23. package/dist/chunk-IKQV3NSL.js.map +1 -0
  24. package/dist/{chunk-DWJPPEMC.js → chunk-JTKR7ZWP.js} +73 -60
  25. package/dist/chunk-JTKR7ZWP.js.map +1 -0
  26. package/dist/chunk-KNDHO67X.js +78 -0
  27. package/dist/chunk-KNDHO67X.js.map +1 -0
  28. package/dist/chunk-L2EKYWVI.js +94 -0
  29. package/dist/chunk-L2EKYWVI.js.map +1 -0
  30. package/dist/{chunk-XC6BQ3RN.js → chunk-MXLITIGU.js} +3 -3
  31. package/dist/{chunk-OER6ETT4.js → chunk-NCIQMRV3.js} +3 -3
  32. package/dist/chunk-OIRHLJBC.js +83 -0
  33. package/dist/chunk-OIRHLJBC.js.map +1 -0
  34. package/dist/{chunk-WIRCIOLH.js → chunk-PBQV3B6O.js} +5 -5
  35. package/dist/chunk-POQIHFAZ.js +2 -0
  36. package/dist/chunk-POQIHFAZ.js.map +1 -0
  37. package/dist/{chunk-I5QUZVU2.js → chunk-PWMMXRMC.js} +2 -2
  38. package/dist/chunk-SLEJDQ3A.js +81 -0
  39. package/dist/chunk-SLEJDQ3A.js.map +1 -0
  40. package/dist/{chunk-7TIFCK5E.js → chunk-VKZZY2QD.js} +3 -3
  41. package/dist/{chunk-VKTZD7UT.js → chunk-W5ILLSPK.js} +3 -3
  42. package/dist/chunk-WBHFVBSK.js +25 -0
  43. package/dist/chunk-WBHFVBSK.js.map +1 -0
  44. package/dist/chunk-WNUFGMS7.js +113 -0
  45. package/dist/chunk-WNUFGMS7.js.map +1 -0
  46. package/dist/{chunk-XR4ZJDOV.js → chunk-WVTIKOII.js} +2 -2
  47. package/dist/{chunk-7CSAGFBW.js → chunk-XDDALY4C.js} +3 -3
  48. package/dist/credits.d.ts +42 -0
  49. package/dist/credits.js +21 -0
  50. package/dist/credits.js.map +1 -0
  51. package/dist/earnings.d.ts +29 -0
  52. package/dist/earnings.js +22 -0
  53. package/dist/earnings.js.map +1 -0
  54. package/dist/funnel.js +3 -3
  55. package/dist/gauge.js +3 -2
  56. package/dist/geo.js +2 -2
  57. package/dist/globe.js +2 -2
  58. package/dist/goal.d.ts +26 -0
  59. package/dist/goal.js +17 -0
  60. package/dist/goal.js.map +1 -0
  61. package/dist/heatmap.js +3 -3
  62. package/dist/index.d.ts +7 -0
  63. package/dist/index.js +80 -33
  64. package/dist/labels-DE_743fQ.d.ts +72 -0
  65. package/dist/latency.d.ts +33 -0
  66. package/dist/latency.js +24 -0
  67. package/dist/latency.js.map +1 -0
  68. package/dist/line.js +5 -4
  69. package/dist/native.d.ts +195 -1
  70. package/dist/native.js +383 -14
  71. package/dist/native.js.map +1 -1
  72. package/dist/pie.js +3 -3
  73. package/dist/radar.js +3 -3
  74. package/dist/sankey.js +3 -3
  75. package/dist/scatter.js +3 -3
  76. package/dist/sparkline.js +4 -3
  77. package/dist/throughput.d.ts +37 -0
  78. package/dist/throughput.js +24 -0
  79. package/dist/throughput.js.map +1 -0
  80. package/dist/ticker.d.ts +38 -0
  81. package/dist/ticker.js +22 -0
  82. package/dist/ticker.js.map +1 -0
  83. package/dist/treemap.js +3 -3
  84. package/package.json +102 -6
  85. package/registry/area-chart.json +1 -0
  86. package/registry/bar-chart.json +1 -0
  87. package/registry/calendar-heatmap.json +1 -0
  88. package/registry/candlestick.json +1 -0
  89. package/registry/chart.json +1 -0
  90. package/registry/charts-provider.json +1 -0
  91. package/registry/credit-usage.json +473 -0
  92. package/registry/earnings-chart.json +703 -0
  93. package/registry/examples/credit-usage/monthly-credits.d.ts +4 -0
  94. package/registry/examples/credit-usage/monthly-credits.js +24 -0
  95. package/registry/examples/credit-usage/monthly-credits.tsx +19 -0
  96. package/registry/examples/credit-usage/native/monthly-credits.d.ts +4 -0
  97. package/registry/examples/credit-usage/native/monthly-credits.dark.png +0 -0
  98. package/registry/examples/credit-usage/native/monthly-credits.js +23 -0
  99. package/registry/examples/credit-usage/native/monthly-credits.light.png +0 -0
  100. package/registry/examples/credit-usage/native/monthly-credits.tsx +18 -0
  101. package/registry/examples/credit-usage/storage-plan.d.ts +4 -0
  102. package/registry/examples/credit-usage/storage-plan.js +21 -0
  103. package/registry/examples/credit-usage/storage-plan.tsx +15 -0
  104. package/registry/examples/earnings-chart/creator-month.d.ts +4 -0
  105. package/registry/examples/earnings-chart/creator-month.js +29 -0
  106. package/registry/examples/earnings-chart/creator-month.tsx +24 -0
  107. package/registry/examples/earnings-chart/gross-and-net.d.ts +4 -0
  108. package/registry/examples/earnings-chart/gross-and-net.js +29 -0
  109. package/registry/examples/earnings-chart/gross-and-net.tsx +24 -0
  110. package/registry/examples/earnings-chart/native/creator-month.d.ts +4 -0
  111. package/registry/examples/earnings-chart/native/creator-month.dark.png +0 -0
  112. package/registry/examples/earnings-chart/native/creator-month.js +29 -0
  113. package/registry/examples/earnings-chart/native/creator-month.light.png +0 -0
  114. package/registry/examples/earnings-chart/native/creator-month.tsx +24 -0
  115. package/registry/examples/goal-progress/challenge-pot.d.ts +4 -0
  116. package/registry/examples/goal-progress/challenge-pot.js +22 -0
  117. package/registry/examples/goal-progress/challenge-pot.tsx +16 -0
  118. package/registry/examples/goal-progress/goal-reached.d.ts +4 -0
  119. package/registry/examples/goal-progress/goal-reached.js +11 -0
  120. package/registry/examples/goal-progress/goal-reached.tsx +6 -0
  121. package/registry/examples/goal-progress/native/challenge-pot.d.ts +4 -0
  122. package/registry/examples/goal-progress/native/challenge-pot.dark.png +0 -0
  123. package/registry/examples/goal-progress/native/challenge-pot.js +11 -0
  124. package/registry/examples/goal-progress/native/challenge-pot.light.png +0 -0
  125. package/registry/examples/goal-progress/native/challenge-pot.tsx +6 -0
  126. package/registry/examples/job-throughput/live-hours.d.ts +4 -0
  127. package/registry/examples/job-throughput/live-hours.js +33 -0
  128. package/registry/examples/job-throughput/live-hours.tsx +28 -0
  129. package/registry/examples/job-throughput/native/week-of-jobs.d.ts +4 -0
  130. package/registry/examples/job-throughput/native/week-of-jobs.dark.png +0 -0
  131. package/registry/examples/job-throughput/native/week-of-jobs.js +20 -0
  132. package/registry/examples/job-throughput/native/week-of-jobs.light.png +0 -0
  133. package/registry/examples/job-throughput/native/week-of-jobs.tsx +16 -0
  134. package/registry/examples/job-throughput/week-of-jobs.d.ts +4 -0
  135. package/registry/examples/job-throughput/week-of-jobs.js +20 -0
  136. package/registry/examples/job-throughput/week-of-jobs.tsx +16 -0
  137. package/registry/examples/latency-chart/by-capability.d.ts +4 -0
  138. package/registry/examples/latency-chart/by-capability.js +26 -0
  139. package/registry/examples/latency-chart/by-capability.tsx +21 -0
  140. package/registry/examples/latency-chart/native/by-capability.d.ts +4 -0
  141. package/registry/examples/latency-chart/native/by-capability.dark.png +0 -0
  142. package/registry/examples/latency-chart/native/by-capability.js +17 -0
  143. package/registry/examples/latency-chart/native/by-capability.light.png +0 -0
  144. package/registry/examples/latency-chart/native/by-capability.tsx +13 -0
  145. package/registry/examples/latency-chart/time-to-result.d.ts +4 -0
  146. package/registry/examples/latency-chart/time-to-result.js +27 -0
  147. package/registry/examples/latency-chart/time-to-result.tsx +22 -0
  148. package/registry/examples/price-ticker/auction-room.d.ts +4 -0
  149. package/registry/examples/price-ticker/auction-room.js +21 -0
  150. package/registry/examples/price-ticker/auction-room.tsx +17 -0
  151. package/registry/examples/price-ticker/native/auction-room.d.ts +4 -0
  152. package/registry/examples/price-ticker/native/auction-room.dark.png +0 -0
  153. package/registry/examples/price-ticker/native/auction-room.js +19 -0
  154. package/registry/examples/price-ticker/native/auction-room.light.png +0 -0
  155. package/registry/examples/price-ticker/native/auction-room.tsx +15 -0
  156. package/registry/examples/price-ticker/no-bid-yet.d.ts +4 -0
  157. package/registry/examples/price-ticker/no-bid-yet.js +11 -0
  158. package/registry/examples/price-ticker/no-bid-yet.tsx +6 -0
  159. package/registry/funnel.json +1 -0
  160. package/registry/gauge.json +1 -0
  161. package/registry/geo-map.json +1 -0
  162. package/registry/globe.json +1 -0
  163. package/registry/goal-progress.json +520 -0
  164. package/registry/heatmap.json +1 -0
  165. package/registry/index.json +163 -1
  166. package/registry/job-throughput.json +654 -0
  167. package/registry/latency-chart.json +671 -0
  168. package/registry/line-chart.json +1 -0
  169. package/registry/pie-chart.json +1 -0
  170. package/registry/price-ticker.json +684 -0
  171. package/registry/radar-chart.json +1 -0
  172. package/registry/sankey.json +1 -0
  173. package/registry/scatter-chart.json +1 -0
  174. package/registry/sparkline.json +1 -0
  175. package/registry/treemap.json +1 -0
  176. package/dist/chunk-DWJPPEMC.js.map +0 -1
  177. /package/dist/{chunk-EK3Z647J.js.map → chunk-4LBXEAGC.js.map} +0 -0
  178. /package/dist/{chunk-AHQXJSAQ.js.map → chunk-AA5EWWYV.js.map} +0 -0
  179. /package/dist/{chunk-VKO2OYYM.js.map → chunk-ARARFMNE.js.map} +0 -0
  180. /package/dist/{chunk-WBH2QU77.js.map → chunk-BV4DBGN7.js.map} +0 -0
  181. /package/dist/{chunk-BZ5CQFPH.js.map → chunk-C4MFZLJM.js.map} +0 -0
  182. /package/dist/{chunk-XAJ3KCC4.js.map → chunk-CSSZLFLO.js.map} +0 -0
  183. /package/dist/{chunk-UNK4MJVG.js.map → chunk-CVWSMUUB.js.map} +0 -0
  184. /package/dist/{chunk-DZB6HEVO.js.map → chunk-EQLC2QVN.js.map} +0 -0
  185. /package/dist/{chunk-PTSB3H5Q.js.map → chunk-I3D7KUGN.js.map} +0 -0
  186. /package/dist/{chunk-XC6BQ3RN.js.map → chunk-MXLITIGU.js.map} +0 -0
  187. /package/dist/{chunk-OER6ETT4.js.map → chunk-NCIQMRV3.js.map} +0 -0
  188. /package/dist/{chunk-WIRCIOLH.js.map → chunk-PBQV3B6O.js.map} +0 -0
  189. /package/dist/{chunk-I5QUZVU2.js.map → chunk-PWMMXRMC.js.map} +0 -0
  190. /package/dist/{chunk-7TIFCK5E.js.map → chunk-VKZZY2QD.js.map} +0 -0
  191. /package/dist/{chunk-VKTZD7UT.js.map → chunk-W5ILLSPK.js.map} +0 -0
  192. /package/dist/{chunk-XR4ZJDOV.js.map → chunk-WVTIKOII.js.map} +0 -0
  193. /package/dist/{chunk-7CSAGFBW.js.map → chunk-XDDALY4C.js.map} +0 -0
@@ -0,0 +1,684 @@
1
+ {
2
+ "name": "price-ticker",
3
+ "package": "@krizaka/charts",
4
+ "type": "chart",
5
+ "title": "Price ticker",
6
+ "summary": "A live auction's price: the current bid in large, the change since the opening and the number of bids, the bids as steps, the reserve as a line.",
7
+ "description": "A live auction's price: the current bid in large, the change since the opening and the number of bids, the bids as steps, the reserve as a line.",
8
+ "status": "beta",
9
+ "category": "charts",
10
+ "platforms": "both",
11
+ "engine": "svg",
12
+ "tier": "ready-made",
13
+ "whenToUse": [
14
+ "Orochia's auction room, on the web and in the app: the bids as they arrive.",
15
+ "Any price that moves by discrete steps: a bid, a quote, an offer."
16
+ ],
17
+ "whenNotToUse": [
18
+ {
19
+ "when": "A price series over days with open, high, low and close.",
20
+ "use": "candlestick"
21
+ },
22
+ {
23
+ "when": "Money per period.",
24
+ "use": "earnings-chart"
25
+ }
26
+ ],
27
+ "bestPractices": [
28
+ "Pass every bid with its time; the opening price and time give the first step.",
29
+ "Keep `live` on (the default) while the auction runs: no entrance, no announcement of every bid.",
30
+ "Announce a new bid in the app's own live region (who outbid whom): the chart does not."
31
+ ],
32
+ "accessibility": {
33
+ "keyboard": [
34
+ {
35
+ "keys": "Tab",
36
+ "action": "Moves the focus to the plot, then to the data and export buttons."
37
+ },
38
+ {
39
+ "keys": "Arrow keys",
40
+ "action": "Walk the bids: each price and time is announced."
41
+ }
42
+ ],
43
+ "notes": [
44
+ "The current price and the change are written above the plot; the arrow is decorative.",
45
+ "The reserve is drawn and named until it is met."
46
+ ]
47
+ },
48
+ "related": [
49
+ "line-chart",
50
+ "goal-progress",
51
+ "sparkline"
52
+ ],
53
+ "source": "packages/charts/src/meta/price-ticker.ts",
54
+ "install": {
55
+ "web": "npm install @krizaka/charts",
56
+ "native": "npx expo install react-native-svg\nnpm install @krizaka/charts"
57
+ },
58
+ "web": {
59
+ "entry": "@krizaka/charts/ticker",
60
+ "import": "import { PriceTicker } from \"@krizaka/charts/ticker\";",
61
+ "props": [
62
+ {
63
+ "component": "PriceTicker",
64
+ "description": "A live auction's price: the current bid, the change since the opening, the steps of the bids, the reserve.",
65
+ "props": [
66
+ {
67
+ "name": "bids",
68
+ "type": "readonly Bid[]",
69
+ "default": null,
70
+ "description": "The bids, in any order: when and how much (minor units).",
71
+ "required": true
72
+ },
73
+ {
74
+ "name": "currency",
75
+ "type": "string",
76
+ "default": null,
77
+ "description": "The ISO 4217 currency.",
78
+ "required": true
79
+ },
80
+ {
81
+ "name": "opening",
82
+ "type": "number",
83
+ "default": null,
84
+ "description": "The opening price, in minor units.",
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": "brand",
96
+ "type": "BrandId",
97
+ "default": null,
98
+ "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`).",
99
+ "required": false
100
+ },
101
+ {
102
+ "name": "className",
103
+ "type": "string",
104
+ "default": null,
105
+ "description": "A class on the figure (layout: margins, grid placement).",
106
+ "required": false
107
+ },
108
+ {
109
+ "name": "dataTable",
110
+ "type": "boolean",
111
+ "default": null,
112
+ "description": "The \"Show data\" button (the table is in the page for screen readers either way). Default true.",
113
+ "required": false
114
+ },
115
+ {
116
+ "name": "description",
117
+ "type": "ReactNode",
118
+ "default": null,
119
+ "description": "A sentence under the title: the period, the unit, the source.",
120
+ "required": false
121
+ },
122
+ {
123
+ "name": "dots",
124
+ "type": "boolean",
125
+ "default": null,
126
+ "description": "A dot on every point (short series). Default false: the end of each line carries one.",
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": "endLabels",
138
+ "type": "boolean",
139
+ "default": null,
140
+ "description": "Write the last value at the end of each line (up to three series). Default true.",
141
+ "required": false
142
+ },
143
+ {
144
+ "name": "error",
145
+ "type": "ReactNode",
146
+ "default": null,
147
+ "description": "The data could not be loaded: `true` says the default words, a node says yours (a retry button…).",
148
+ "required": false
149
+ },
150
+ {
151
+ "name": "exportable",
152
+ "type": "boolean | readonly ExportFormat[]",
153
+ "default": null,
154
+ "description": "Export buttons: `true` for PNG, SVG and CSV, or the formats you want.",
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": "Partial<TickerLabels>",
181
+ "default": null,
182
+ "description": "The words, passed translated; English by default.",
183
+ "required": false
184
+ },
185
+ {
186
+ "name": "legend",
187
+ "type": "boolean",
188
+ "default": null,
189
+ "description": "Show the legend (from two series). Default true.",
190
+ "required": false
191
+ },
192
+ {
193
+ "name": "live",
194
+ "type": "boolean",
195
+ "default": "true",
196
+ "description": "Streaming data (a job queue, an auction): no entrance on updates, no announcement of every new point.",
197
+ "required": false
198
+ },
199
+ {
200
+ "name": "loading",
201
+ "type": "boolean",
202
+ "default": null,
203
+ "description": "The data is on its way: a skeleton of the chart, announced once.",
204
+ "required": false
205
+ },
206
+ {
207
+ "name": "locale",
208
+ "type": "Locale",
209
+ "default": null,
210
+ "description": "The locale of every figure and date (`\"fr-FR\"`). Default `\"en-US\"`.",
211
+ "required": false
212
+ },
213
+ {
214
+ "name": "markers",
215
+ "type": "readonly Marker[]",
216
+ "default": null,
217
+ "description": "Vertical markers at a category: a launch, an incident.",
218
+ "required": false
219
+ },
220
+ {
221
+ "name": "onSelect",
222
+ "type": "((datum: Point, index: number) => void)",
223
+ "default": null,
224
+ "description": "Called with the row when a point or a bar is clicked (or Enter is pressed on it).",
225
+ "required": false
226
+ },
227
+ {
228
+ "name": "openedAt",
229
+ "type": "string | Date",
230
+ "default": null,
231
+ "description": "When the auction opened: the first point of the line.",
232
+ "required": false
233
+ },
234
+ {
235
+ "name": "reserve",
236
+ "type": "number",
237
+ "default": null,
238
+ "description": "The reserve price, drawn as a line until it is met.",
239
+ "required": false
240
+ },
241
+ {
242
+ "name": "style",
243
+ "type": "CSSProperties",
244
+ "default": null,
245
+ "description": "Inline style on the figure (layout only: colours come from the tokens).",
246
+ "required": false
247
+ },
248
+ {
249
+ "name": "summary",
250
+ "type": "\"hidden\" | \"visible\"",
251
+ "default": null,
252
+ "description": "The written summary: read by screen readers only (`\"hidden\"`, default), or shown under the chart (`\"visible\"`).",
253
+ "required": false
254
+ },
255
+ {
256
+ "name": "summaryText",
257
+ "type": "string",
258
+ "default": null,
259
+ "description": "Your own summary instead of the generated one (still read first by screen readers).",
260
+ "required": false
261
+ },
262
+ {
263
+ "name": "timeFormat",
264
+ "type": "CategoryFormat",
265
+ "default": "time",
266
+ "description": "How the times are written. Default `\"time\"` (`14:30`); `\"datetime\"` for auctions over several days.",
267
+ "required": false
268
+ },
269
+ {
270
+ "name": "xLabel",
271
+ "type": "string",
272
+ "default": null,
273
+ "description": "The header of the categories in the data table (`Month`).",
274
+ "required": false
275
+ },
276
+ {
277
+ "name": "zero",
278
+ "type": "boolean",
279
+ "default": null,
280
+ "description": "Start the value axis at zero. Default: true for bars and areas; for lines, unless the values sit far from zero.",
281
+ "required": false
282
+ }
283
+ ]
284
+ }
285
+ ],
286
+ "examples": [
287
+ {
288
+ "name": "auction-room",
289
+ "title": "Auction room",
290
+ "description": "Eight bids in an Orochia auction, the reserve met.",
291
+ "path": "examples/price-ticker/auction-room.tsx",
292
+ "module": "@krizaka/charts/registry/examples/price-ticker/auction-room",
293
+ "code": "import { PriceTicker } from \"@krizaka/charts/ticker\";\n\n// An Orochia auction: the bids in cents, as they arrived.\nconst bids = [\n { at: \"2026-10-11T18:02:00Z\", amount: 25_00 },\n { at: \"2026-10-11T18:05:00Z\", amount: 30_00 },\n { at: \"2026-10-11T18:11:00Z\", amount: 35_00 },\n { at: \"2026-10-11T18:12:00Z\", amount: 42_00 },\n { at: \"2026-10-11T18:20:00Z\", amount: 50_00 },\n { at: \"2026-10-11T18:26:00Z\", amount: 55_00 },\n { at: \"2026-10-11T18:31:00Z\", amount: 65_00 },\n { at: \"2026-10-11T18:33:00Z\", amount: 72_00 },\n];\n\nexport default function AuctionRoom() {\n return <PriceTicker title=\"Signed first take\" bids={bids} opening={20_00} openedAt=\"2026-10-11T18:00:00Z\" currency=\"USD\" reserve={60_00} height={220} />;\n}\n"
294
+ },
295
+ {
296
+ "name": "no-bid-yet",
297
+ "title": "No bid yet",
298
+ "description": "The opening price, the reserve ahead.",
299
+ "path": "examples/price-ticker/no-bid-yet.tsx",
300
+ "module": "@krizaka/charts/registry/examples/price-ticker/no-bid-yet",
301
+ "code": "import { PriceTicker } from \"@krizaka/charts/ticker\";\n\n// The auction has just opened: the opening price, the reserve ahead.\nexport default function NoBidYet() {\n return <PriceTicker title=\"Studio session, one hour\" bids={[]} opening={40_00} openedAt=\"2026-10-11T18:00:00Z\" currency=\"USD\" reserve={90_00} height={180} />;\n}\n"
302
+ }
303
+ ]
304
+ },
305
+ "native": {
306
+ "entry": "@krizaka/charts/native",
307
+ "import": "import { PriceTicker } from \"@krizaka/charts/native\";",
308
+ "differences": [
309
+ "The current price and the change are a headline above the plot.",
310
+ "No dots on the steps; no data table or export."
311
+ ],
312
+ "props": [
313
+ {
314
+ "component": "PriceTicker",
315
+ "description": "A live auction's price (React Native): the current bid in large, the change since the opening, the steps of the bids.",
316
+ "props": [
317
+ {
318
+ "name": "bids",
319
+ "type": "readonly Bid[]",
320
+ "default": null,
321
+ "description": "The bids, in any order.",
322
+ "required": true
323
+ },
324
+ {
325
+ "name": "currency",
326
+ "type": "string",
327
+ "default": null,
328
+ "description": "The ISO 4217 currency.",
329
+ "required": true
330
+ },
331
+ {
332
+ "name": "opening",
333
+ "type": "number",
334
+ "default": null,
335
+ "description": "The opening price, in minor units.",
336
+ "required": true
337
+ },
338
+ {
339
+ "name": "title",
340
+ "type": "string",
341
+ "default": null,
342
+ "description": "What the chart shows: its heading and accessible name.",
343
+ "required": true
344
+ },
345
+ {
346
+ "name": "brand",
347
+ "type": "BrandId",
348
+ "default": null,
349
+ "description": "The brand whose palette leads. Default Krizaka.",
350
+ "required": false
351
+ },
352
+ {
353
+ "name": "empty",
354
+ "type": "ReactNode",
355
+ "default": null,
356
+ "description": "Shown instead of the plot when there is nothing to draw. Default: the `empty` label.",
357
+ "required": false
358
+ },
359
+ {
360
+ "name": "height",
361
+ "type": "number",
362
+ "default": null,
363
+ "description": "The plot's height.",
364
+ "required": false
365
+ },
366
+ {
367
+ "name": "hideTitle",
368
+ "type": "boolean",
369
+ "default": null,
370
+ "description": "Hide the heading (it stays the accessible name).",
371
+ "required": false
372
+ },
373
+ {
374
+ "name": "labels",
375
+ "type": "Partial<TickerLabels>",
376
+ "default": null,
377
+ "description": "The words, passed translated.",
378
+ "required": false
379
+ },
380
+ {
381
+ "name": "locale",
382
+ "type": "Locale",
383
+ "default": null,
384
+ "description": "The locale of every figure and date. Default `\"en-US\"`.",
385
+ "required": false
386
+ },
387
+ {
388
+ "name": "openedAt",
389
+ "type": "string | Date",
390
+ "default": null,
391
+ "description": "When the auction opened.",
392
+ "required": false
393
+ },
394
+ {
395
+ "name": "reserve",
396
+ "type": "number",
397
+ "default": null,
398
+ "description": "The reserve price, drawn as a line until it is met.",
399
+ "required": false
400
+ },
401
+ {
402
+ "name": "scheme",
403
+ "type": "Mode",
404
+ "default": null,
405
+ "description": "Dark or light. Default: the device's (pass `useTheme().scheme` of\n@krizaka /ui/native to follow the app).",
406
+ "required": false
407
+ },
408
+ {
409
+ "name": "style",
410
+ "type": "ViewStyle",
411
+ "default": null,
412
+ "description": "The style of the chart's container (layout only: colours come from the theme).",
413
+ "required": false
414
+ },
415
+ {
416
+ "name": "theme",
417
+ "type": "Partial<ChartTheme>",
418
+ "default": null,
419
+ "description": "The app's colour roles (`useTheme().theme` of\n@krizaka /ui/native): a product's brand overrides apply.",
420
+ "required": false
421
+ },
422
+ {
423
+ "name": "timeFormat",
424
+ "type": "CategoryFormat",
425
+ "default": "time",
426
+ "description": "How the times are written. Default `\"time\"`.",
427
+ "required": false
428
+ }
429
+ ]
430
+ }
431
+ ],
432
+ "examples": [
433
+ {
434
+ "name": "auction-room",
435
+ "title": "Auction room",
436
+ "description": "The auction screen of the app.",
437
+ "path": "examples/price-ticker/native/auction-room.tsx",
438
+ "module": "@krizaka/charts/registry/examples/price-ticker/native/auction-room",
439
+ "code": "import { PriceTicker } from \"@krizaka/charts/native\";\n\nconst bids = [\n { at: \"2026-10-11T18:02:00Z\", amount: 25_00 },\n { at: \"2026-10-11T18:05:00Z\", amount: 30_00 },\n { at: \"2026-10-11T18:11:00Z\", amount: 35_00 },\n { at: \"2026-10-11T18:20:00Z\", amount: 50_00 },\n { at: \"2026-10-11T18:31:00Z\", amount: 65_00 },\n { at: \"2026-10-11T18:33:00Z\", amount: 72_00 },\n];\n\n// The auction screen of the app: the current bid first.\nexport default function NativeAuctionRoom() {\n return <PriceTicker title=\"Signed first take\" bids={bids} opening={20_00} openedAt=\"2026-10-11T18:00:00Z\" currency=\"USD\" reserve={60_00} height={160} />;\n}\n",
440
+ "screenshots": {
441
+ "dark": "examples/price-ticker/native/auction-room.dark.png",
442
+ "light": "examples/price-ticker/native/auction-room.light.png"
443
+ }
444
+ }
445
+ ]
446
+ },
447
+ "files": [],
448
+ "dependencies": [
449
+ "@krizaka/intl@workspace:^",
450
+ "d3-geo@^3.1.1",
451
+ "echarts@^6.1.0",
452
+ "topojson-client@^3.1.0"
453
+ ],
454
+ "registryDependencies": [],
455
+ "demo": {
456
+ "path": "examples/price-ticker/auction-room.tsx",
457
+ "content": "import { PriceTicker } from \"@krizaka/charts/ticker\";\n\n// An Orochia auction: the bids in cents, as they arrived.\nconst bids = [\n { at: \"2026-10-11T18:02:00Z\", amount: 25_00 },\n { at: \"2026-10-11T18:05:00Z\", amount: 30_00 },\n { at: \"2026-10-11T18:11:00Z\", amount: 35_00 },\n { at: \"2026-10-11T18:12:00Z\", amount: 42_00 },\n { at: \"2026-10-11T18:20:00Z\", amount: 50_00 },\n { at: \"2026-10-11T18:26:00Z\", amount: 55_00 },\n { at: \"2026-10-11T18:31:00Z\", amount: 65_00 },\n { at: \"2026-10-11T18:33:00Z\", amount: 72_00 },\n];\n\nexport default function AuctionRoom() {\n return <PriceTicker title=\"Signed first take\" bids={bids} opening={20_00} openedAt=\"2026-10-11T18:00:00Z\" currency=\"USD\" reserve={60_00} height={220} />;\n}\n"
458
+ },
459
+ "props": [
460
+ {
461
+ "component": "PriceTicker",
462
+ "description": "A live auction's price: the current bid, the change since the opening, the steps of the bids, the reserve.",
463
+ "props": [
464
+ {
465
+ "name": "bids",
466
+ "type": "readonly Bid[]",
467
+ "default": null,
468
+ "description": "The bids, in any order: when and how much (minor units).",
469
+ "required": true
470
+ },
471
+ {
472
+ "name": "currency",
473
+ "type": "string",
474
+ "default": null,
475
+ "description": "The ISO 4217 currency.",
476
+ "required": true
477
+ },
478
+ {
479
+ "name": "opening",
480
+ "type": "number",
481
+ "default": null,
482
+ "description": "The opening price, in minor units.",
483
+ "required": true
484
+ },
485
+ {
486
+ "name": "title",
487
+ "type": "string",
488
+ "default": null,
489
+ "description": "What the chart shows, in a few words: its accessible name, and its heading unless `hideTitle`.",
490
+ "required": true
491
+ },
492
+ {
493
+ "name": "brand",
494
+ "type": "BrandId",
495
+ "default": null,
496
+ "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`).",
497
+ "required": false
498
+ },
499
+ {
500
+ "name": "className",
501
+ "type": "string",
502
+ "default": null,
503
+ "description": "A class on the figure (layout: margins, grid placement).",
504
+ "required": false
505
+ },
506
+ {
507
+ "name": "dataTable",
508
+ "type": "boolean",
509
+ "default": null,
510
+ "description": "The \"Show data\" button (the table is in the page for screen readers either way). Default true.",
511
+ "required": false
512
+ },
513
+ {
514
+ "name": "description",
515
+ "type": "ReactNode",
516
+ "default": null,
517
+ "description": "A sentence under the title: the period, the unit, the source.",
518
+ "required": false
519
+ },
520
+ {
521
+ "name": "dots",
522
+ "type": "boolean",
523
+ "default": null,
524
+ "description": "A dot on every point (short series). Default false: the end of each line carries one.",
525
+ "required": false
526
+ },
527
+ {
528
+ "name": "empty",
529
+ "type": "ReactNode",
530
+ "default": null,
531
+ "description": "What to show when there is nothing to draw (default: the `empty` label). An `EmptyState` of\n@krizaka /ui fits.",
532
+ "required": false
533
+ },
534
+ {
535
+ "name": "endLabels",
536
+ "type": "boolean",
537
+ "default": null,
538
+ "description": "Write the last value at the end of each line (up to three series). Default true.",
539
+ "required": false
540
+ },
541
+ {
542
+ "name": "error",
543
+ "type": "ReactNode",
544
+ "default": null,
545
+ "description": "The data could not be loaded: `true` says the default words, a node says yours (a retry button…).",
546
+ "required": false
547
+ },
548
+ {
549
+ "name": "exportable",
550
+ "type": "boolean | readonly ExportFormat[]",
551
+ "default": null,
552
+ "description": "Export buttons: `true` for PNG, SVG and CSV, or the formats you want.",
553
+ "required": false
554
+ },
555
+ {
556
+ "name": "height",
557
+ "type": "number",
558
+ "default": null,
559
+ "description": "The height of the plot in pixels. Default 280 (a sparkline: 32).",
560
+ "required": false
561
+ },
562
+ {
563
+ "name": "hideTitle",
564
+ "type": "boolean",
565
+ "default": null,
566
+ "description": "Visually hide the title (it stays the chart's accessible name): a card that already has its heading.",
567
+ "required": false
568
+ },
569
+ {
570
+ "name": "id",
571
+ "type": "string",
572
+ "default": null,
573
+ "description": "The id of the figure.",
574
+ "required": false
575
+ },
576
+ {
577
+ "name": "labels",
578
+ "type": "Partial<TickerLabels>",
579
+ "default": null,
580
+ "description": "The words, passed translated; English by default.",
581
+ "required": false
582
+ },
583
+ {
584
+ "name": "legend",
585
+ "type": "boolean",
586
+ "default": null,
587
+ "description": "Show the legend (from two series). Default true.",
588
+ "required": false
589
+ },
590
+ {
591
+ "name": "live",
592
+ "type": "boolean",
593
+ "default": "true",
594
+ "description": "Streaming data (a job queue, an auction): no entrance on updates, no announcement of every new point.",
595
+ "required": false
596
+ },
597
+ {
598
+ "name": "loading",
599
+ "type": "boolean",
600
+ "default": null,
601
+ "description": "The data is on its way: a skeleton of the chart, announced once.",
602
+ "required": false
603
+ },
604
+ {
605
+ "name": "locale",
606
+ "type": "Locale",
607
+ "default": null,
608
+ "description": "The locale of every figure and date (`\"fr-FR\"`). Default `\"en-US\"`.",
609
+ "required": false
610
+ },
611
+ {
612
+ "name": "markers",
613
+ "type": "readonly Marker[]",
614
+ "default": null,
615
+ "description": "Vertical markers at a category: a launch, an incident.",
616
+ "required": false
617
+ },
618
+ {
619
+ "name": "onSelect",
620
+ "type": "((datum: Point, index: number) => void)",
621
+ "default": null,
622
+ "description": "Called with the row when a point or a bar is clicked (or Enter is pressed on it).",
623
+ "required": false
624
+ },
625
+ {
626
+ "name": "openedAt",
627
+ "type": "string | Date",
628
+ "default": null,
629
+ "description": "When the auction opened: the first point of the line.",
630
+ "required": false
631
+ },
632
+ {
633
+ "name": "reserve",
634
+ "type": "number",
635
+ "default": null,
636
+ "description": "The reserve price, drawn as a line until it is met.",
637
+ "required": false
638
+ },
639
+ {
640
+ "name": "style",
641
+ "type": "CSSProperties",
642
+ "default": null,
643
+ "description": "Inline style on the figure (layout only: colours come from the tokens).",
644
+ "required": false
645
+ },
646
+ {
647
+ "name": "summary",
648
+ "type": "\"hidden\" | \"visible\"",
649
+ "default": null,
650
+ "description": "The written summary: read by screen readers only (`\"hidden\"`, default), or shown under the chart (`\"visible\"`).",
651
+ "required": false
652
+ },
653
+ {
654
+ "name": "summaryText",
655
+ "type": "string",
656
+ "default": null,
657
+ "description": "Your own summary instead of the generated one (still read first by screen readers).",
658
+ "required": false
659
+ },
660
+ {
661
+ "name": "timeFormat",
662
+ "type": "CategoryFormat",
663
+ "default": "time",
664
+ "description": "How the times are written. Default `\"time\"` (`14:30`); `\"datetime\"` for auctions over several days.",
665
+ "required": false
666
+ },
667
+ {
668
+ "name": "xLabel",
669
+ "type": "string",
670
+ "default": null,
671
+ "description": "The header of the categories in the data table (`Month`).",
672
+ "required": false
673
+ },
674
+ {
675
+ "name": "zero",
676
+ "type": "boolean",
677
+ "default": null,
678
+ "description": "Start the value axis at zero. Default: true for bars and areas; for lines, unless the values sit far from zero.",
679
+ "required": false
680
+ }
681
+ ]
682
+ }
683
+ ]
684
+ }