minerva-design 1.0.2 → 1.2.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 (354) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +21 -19
  3. package/dist/charts/canvas.d.cts +7 -0
  4. package/dist/charts/canvas.d.ts +7 -0
  5. package/dist/charts/core.cjs +1 -0
  6. package/dist/charts/core.d.cts +7 -0
  7. package/dist/charts/core.d.ts +7 -0
  8. package/dist/charts/core.js +6 -0
  9. package/dist/charts/engine/axis.cjs +2 -0
  10. package/dist/charts/engine/axis.cjs.map +1 -0
  11. package/dist/charts/engine/axis.d.cts +13 -0
  12. package/dist/charts/engine/axis.d.ts +13 -0
  13. package/dist/charts/engine/axis.js +38 -0
  14. package/dist/charts/engine/axis.js.map +1 -0
  15. package/dist/charts/engine/canvas.cjs +2 -0
  16. package/dist/charts/engine/canvas.cjs.map +1 -0
  17. package/dist/charts/engine/canvas.d.cts +85 -0
  18. package/dist/charts/engine/canvas.d.ts +85 -0
  19. package/dist/charts/engine/canvas.js +165 -0
  20. package/dist/charts/engine/canvas.js.map +1 -0
  21. package/dist/charts/engine/chart.cjs +3 -0
  22. package/dist/charts/engine/chart.cjs.map +1 -0
  23. package/dist/charts/engine/chart.d.cts +6 -0
  24. package/dist/charts/engine/chart.d.ts +6 -0
  25. package/dist/charts/engine/chart.js +566 -0
  26. package/dist/charts/engine/chart.js.map +1 -0
  27. package/dist/charts/engine/color.cjs +2 -0
  28. package/dist/charts/engine/color.cjs.map +1 -0
  29. package/dist/charts/engine/color.d.cts +33 -0
  30. package/dist/charts/engine/color.d.ts +33 -0
  31. package/dist/charts/engine/color.js +167 -0
  32. package/dist/charts/engine/color.js.map +1 -0
  33. package/dist/charts/engine/controller.cjs +3 -0
  34. package/dist/charts/engine/controller.cjs.map +1 -0
  35. package/dist/charts/engine/controller.d.cts +182 -0
  36. package/dist/charts/engine/controller.d.ts +182 -0
  37. package/dist/charts/engine/controller.js +528 -0
  38. package/dist/charts/engine/controller.js.map +1 -0
  39. package/dist/charts/engine/data.cjs +2 -0
  40. package/dist/charts/engine/data.cjs.map +1 -0
  41. package/dist/charts/engine/data.d.cts +29 -0
  42. package/dist/charts/engine/data.d.ts +29 -0
  43. package/dist/charts/engine/data.js +104 -0
  44. package/dist/charts/engine/data.js.map +1 -0
  45. package/dist/charts/engine/decimate.cjs +2 -0
  46. package/dist/charts/engine/decimate.cjs.map +1 -0
  47. package/dist/charts/engine/decimate.d.cts +13 -0
  48. package/dist/charts/engine/decimate.d.ts +13 -0
  49. package/dist/charts/engine/decimate.js +28 -0
  50. package/dist/charts/engine/decimate.js.map +1 -0
  51. package/dist/charts/engine/dom.cjs +2 -0
  52. package/dist/charts/engine/dom.cjs.map +1 -0
  53. package/dist/charts/engine/dom.d.cts +21 -0
  54. package/dist/charts/engine/dom.d.ts +21 -0
  55. package/dist/charts/engine/dom.js +125 -0
  56. package/dist/charts/engine/dom.js.map +1 -0
  57. package/dist/charts/engine/format.cjs +2 -0
  58. package/dist/charts/engine/format.cjs.map +1 -0
  59. package/dist/charts/engine/format.d.cts +9 -0
  60. package/dist/charts/engine/format.d.ts +9 -0
  61. package/dist/charts/engine/format.js +34 -0
  62. package/dist/charts/engine/format.js.map +1 -0
  63. package/dist/charts/engine/items.cjs +2 -0
  64. package/dist/charts/engine/items.cjs.map +1 -0
  65. package/dist/charts/engine/items.d.cts +8 -0
  66. package/dist/charts/engine/items.d.ts +8 -0
  67. package/dist/charts/engine/items.js +91 -0
  68. package/dist/charts/engine/items.js.map +1 -0
  69. package/dist/charts/engine/layout.cjs +2 -0
  70. package/dist/charts/engine/layout.cjs.map +1 -0
  71. package/dist/charts/engine/layout.d.cts +37 -0
  72. package/dist/charts/engine/layout.d.ts +37 -0
  73. package/dist/charts/engine/layout.js +26 -0
  74. package/dist/charts/engine/layout.js.map +1 -0
  75. package/dist/charts/engine/model.cjs +2 -0
  76. package/dist/charts/engine/model.cjs.map +1 -0
  77. package/dist/charts/engine/model.d.cts +74 -0
  78. package/dist/charts/engine/model.d.ts +74 -0
  79. package/dist/charts/engine/model.js +175 -0
  80. package/dist/charts/engine/model.js.map +1 -0
  81. package/dist/charts/engine/overlay.cjs +2 -0
  82. package/dist/charts/engine/overlay.cjs.map +1 -0
  83. package/dist/charts/engine/overlay.d.cts +78 -0
  84. package/dist/charts/engine/overlay.d.ts +78 -0
  85. package/dist/charts/engine/overlay.js +137 -0
  86. package/dist/charts/engine/overlay.js.map +1 -0
  87. package/dist/charts/engine/presets.cjs +3 -0
  88. package/dist/charts/engine/presets.cjs.map +1 -0
  89. package/dist/charts/engine/presets.d.cts +103 -0
  90. package/dist/charts/engine/presets.d.ts +103 -0
  91. package/dist/charts/engine/presets.js +153 -0
  92. package/dist/charts/engine/presets.js.map +1 -0
  93. package/dist/charts/engine/renderers/canvas2d.cjs +2 -0
  94. package/dist/charts/engine/renderers/canvas2d.cjs.map +1 -0
  95. package/dist/charts/engine/renderers/canvas2d.d.cts +20 -0
  96. package/dist/charts/engine/renderers/canvas2d.d.ts +20 -0
  97. package/dist/charts/engine/renderers/canvas2d.js +193 -0
  98. package/dist/charts/engine/renderers/canvas2d.js.map +1 -0
  99. package/dist/charts/engine/renderers/detect.cjs +2 -0
  100. package/dist/charts/engine/renderers/detect.cjs.map +1 -0
  101. package/dist/charts/engine/renderers/detect.d.cts +12 -0
  102. package/dist/charts/engine/renderers/detect.d.ts +12 -0
  103. package/dist/charts/engine/renderers/detect.js +33 -0
  104. package/dist/charts/engine/renderers/detect.js.map +1 -0
  105. package/dist/charts/engine/renderers/range.cjs +2 -0
  106. package/dist/charts/engine/renderers/range.cjs.map +1 -0
  107. package/dist/charts/engine/renderers/range.d.cts +5 -0
  108. package/dist/charts/engine/renderers/range.d.ts +5 -0
  109. package/dist/charts/engine/renderers/range.js +32 -0
  110. package/dist/charts/engine/renderers/range.js.map +1 -0
  111. package/dist/charts/engine/renderers/shaders.cjs +266 -0
  112. package/dist/charts/engine/renderers/shaders.cjs.map +1 -0
  113. package/dist/charts/engine/renderers/shaders.d.cts +20 -0
  114. package/dist/charts/engine/renderers/shaders.d.ts +20 -0
  115. package/dist/charts/engine/renderers/shaders.js +251 -0
  116. package/dist/charts/engine/renderers/shaders.js.map +1 -0
  117. package/dist/charts/engine/renderers/types.cjs +2 -0
  118. package/dist/charts/engine/renderers/types.cjs.map +1 -0
  119. package/dist/charts/engine/renderers/types.d.cts +83 -0
  120. package/dist/charts/engine/renderers/types.d.ts +83 -0
  121. package/dist/charts/engine/renderers/types.js +6 -0
  122. package/dist/charts/engine/renderers/types.js.map +1 -0
  123. package/dist/charts/engine/renderers/webgl2.cjs +2 -0
  124. package/dist/charts/engine/renderers/webgl2.cjs.map +1 -0
  125. package/dist/charts/engine/renderers/webgl2.d.cts +5 -0
  126. package/dist/charts/engine/renderers/webgl2.d.ts +5 -0
  127. package/dist/charts/engine/renderers/webgl2.js +134 -0
  128. package/dist/charts/engine/renderers/webgl2.js.map +1 -0
  129. package/dist/charts/engine/renderers/webgpu.cjs +2 -0
  130. package/dist/charts/engine/renderers/webgpu.cjs.map +1 -0
  131. package/dist/charts/engine/renderers/webgpu.d.cts +6 -0
  132. package/dist/charts/engine/renderers/webgpu.d.ts +6 -0
  133. package/dist/charts/engine/renderers/webgpu.js +220 -0
  134. package/dist/charts/engine/renderers/webgpu.js.map +1 -0
  135. package/dist/charts/engine/scale.cjs +2 -0
  136. package/dist/charts/engine/scale.cjs.map +1 -0
  137. package/dist/charts/engine/scale.d.cts +13 -0
  138. package/dist/charts/engine/scale.d.ts +13 -0
  139. package/dist/charts/engine/scale.js +37 -0
  140. package/dist/charts/engine/scale.js.map +1 -0
  141. package/dist/charts/engine/scene.cjs +2 -0
  142. package/dist/charts/engine/scene.cjs.map +1 -0
  143. package/dist/charts/engine/scene.d.cts +89 -0
  144. package/dist/charts/engine/scene.d.ts +89 -0
  145. package/dist/charts/engine/scene.js +241 -0
  146. package/dist/charts/engine/scene.js.map +1 -0
  147. package/dist/charts/engine/spatial.cjs +2 -0
  148. package/dist/charts/engine/spatial.cjs.map +1 -0
  149. package/dist/charts/engine/spatial.d.cts +18 -0
  150. package/dist/charts/engine/spatial.d.ts +18 -0
  151. package/dist/charts/engine/spatial.js +53 -0
  152. package/dist/charts/engine/spatial.js.map +1 -0
  153. package/dist/charts/engine/theme.cjs +2 -0
  154. package/dist/charts/engine/theme.cjs.map +1 -0
  155. package/dist/charts/engine/theme.d.cts +45 -0
  156. package/dist/charts/engine/theme.d.ts +45 -0
  157. package/dist/charts/engine/theme.js +86 -0
  158. package/dist/charts/engine/theme.js.map +1 -0
  159. package/dist/charts/engine/time.cjs +2 -0
  160. package/dist/charts/engine/time.cjs.map +1 -0
  161. package/dist/charts/engine/time.d.cts +10 -0
  162. package/dist/charts/engine/time.d.ts +10 -0
  163. package/dist/charts/engine/time.js +189 -0
  164. package/dist/charts/engine/time.js.map +1 -0
  165. package/dist/charts/engine/types.d.cts +356 -0
  166. package/dist/charts/engine/types.d.ts +356 -0
  167. package/dist/charts/engine/viewport.cjs +2 -0
  168. package/dist/charts/engine/viewport.cjs.map +1 -0
  169. package/dist/charts/engine/viewport.d.cts +12 -0
  170. package/dist/charts/engine/viewport.d.ts +12 -0
  171. package/dist/charts/engine/viewport.js +15 -0
  172. package/dist/charts/engine/viewport.js.map +1 -0
  173. package/dist/charts/index.cjs +1 -0
  174. package/dist/charts/index.d.cts +4 -0
  175. package/dist/charts/index.d.ts +4 -0
  176. package/dist/charts/index.js +10 -0
  177. package/dist/charts/react/Chart.cjs +2 -0
  178. package/dist/charts/react/Chart.cjs.map +1 -0
  179. package/dist/charts/react/Chart.d.cts +35 -0
  180. package/dist/charts/react/Chart.d.ts +35 -0
  181. package/dist/charts/react/Chart.js +117 -0
  182. package/dist/charts/react/Chart.js.map +1 -0
  183. package/dist/charts/react/charts.cjs +2 -0
  184. package/dist/charts/react/charts.cjs.map +1 -0
  185. package/dist/charts/react/charts.d.cts +13 -0
  186. package/dist/charts/react/charts.d.ts +13 -0
  187. package/dist/charts/react/charts.js +133 -0
  188. package/dist/charts/react/charts.js.map +1 -0
  189. package/dist/charts/react/types.d.cts +136 -0
  190. package/dist/charts/react/types.d.ts +136 -0
  191. package/dist/native/charts/src/canvas.cjs +1 -0
  192. package/dist/native/charts/src/canvas.js +6 -0
  193. package/dist/native/charts/src/engine/axis.cjs +2 -0
  194. package/dist/native/charts/src/engine/axis.cjs.map +1 -0
  195. package/dist/native/charts/src/engine/axis.js +38 -0
  196. package/dist/native/charts/src/engine/axis.js.map +1 -0
  197. package/dist/native/charts/src/engine/canvas.cjs +1 -0
  198. package/dist/native/charts/src/engine/canvas.js +1 -0
  199. package/dist/native/charts/src/engine/color.cjs +2 -0
  200. package/dist/native/charts/src/engine/color.cjs.map +1 -0
  201. package/dist/native/charts/src/engine/color.js +130 -0
  202. package/dist/native/charts/src/engine/color.js.map +1 -0
  203. package/dist/native/charts/src/engine/controller.cjs +3 -0
  204. package/dist/native/charts/src/engine/controller.cjs.map +1 -0
  205. package/dist/native/charts/src/engine/controller.js +528 -0
  206. package/dist/native/charts/src/engine/controller.js.map +1 -0
  207. package/dist/native/charts/src/engine/data.cjs +2 -0
  208. package/dist/native/charts/src/engine/data.cjs.map +1 -0
  209. package/dist/native/charts/src/engine/data.js +104 -0
  210. package/dist/native/charts/src/engine/data.js.map +1 -0
  211. package/dist/native/charts/src/engine/decimate.cjs +2 -0
  212. package/dist/native/charts/src/engine/decimate.cjs.map +1 -0
  213. package/dist/native/charts/src/engine/decimate.js +28 -0
  214. package/dist/native/charts/src/engine/decimate.js.map +1 -0
  215. package/dist/native/charts/src/engine/format.cjs +2 -0
  216. package/dist/native/charts/src/engine/format.cjs.map +1 -0
  217. package/dist/native/charts/src/engine/format.js +34 -0
  218. package/dist/native/charts/src/engine/format.js.map +1 -0
  219. package/dist/native/charts/src/engine/layout.cjs +2 -0
  220. package/dist/native/charts/src/engine/layout.cjs.map +1 -0
  221. package/dist/native/charts/src/engine/layout.js +26 -0
  222. package/dist/native/charts/src/engine/layout.js.map +1 -0
  223. package/dist/native/charts/src/engine/model.cjs +2 -0
  224. package/dist/native/charts/src/engine/model.cjs.map +1 -0
  225. package/dist/native/charts/src/engine/model.js +175 -0
  226. package/dist/native/charts/src/engine/model.js.map +1 -0
  227. package/dist/native/charts/src/engine/overlay.cjs +2 -0
  228. package/dist/native/charts/src/engine/overlay.cjs.map +1 -0
  229. package/dist/native/charts/src/engine/overlay.js +49 -0
  230. package/dist/native/charts/src/engine/overlay.js.map +1 -0
  231. package/dist/native/charts/src/engine/presets.cjs +3 -0
  232. package/dist/native/charts/src/engine/presets.cjs.map +1 -0
  233. package/dist/native/charts/src/engine/presets.js +147 -0
  234. package/dist/native/charts/src/engine/presets.js.map +1 -0
  235. package/dist/native/charts/src/engine/scale.cjs +2 -0
  236. package/dist/native/charts/src/engine/scale.cjs.map +1 -0
  237. package/dist/native/charts/src/engine/scale.js +37 -0
  238. package/dist/native/charts/src/engine/scale.js.map +1 -0
  239. package/dist/native/charts/src/engine/scene.cjs +2 -0
  240. package/dist/native/charts/src/engine/scene.cjs.map +1 -0
  241. package/dist/native/charts/src/engine/scene.js +241 -0
  242. package/dist/native/charts/src/engine/scene.js.map +1 -0
  243. package/dist/native/charts/src/engine/spatial.cjs +2 -0
  244. package/dist/native/charts/src/engine/spatial.cjs.map +1 -0
  245. package/dist/native/charts/src/engine/spatial.js +53 -0
  246. package/dist/native/charts/src/engine/spatial.js.map +1 -0
  247. package/dist/native/charts/src/engine/theme.cjs +2 -0
  248. package/dist/native/charts/src/engine/theme.cjs.map +1 -0
  249. package/dist/native/charts/src/engine/theme.js +62 -0
  250. package/dist/native/charts/src/engine/theme.js.map +1 -0
  251. package/dist/native/charts/src/engine/time.cjs +2 -0
  252. package/dist/native/charts/src/engine/time.cjs.map +1 -0
  253. package/dist/native/charts/src/engine/time.js +189 -0
  254. package/dist/native/charts/src/engine/time.js.map +1 -0
  255. package/dist/native/charts/src/engine/viewport.cjs +2 -0
  256. package/dist/native/charts/src/engine/viewport.cjs.map +1 -0
  257. package/dist/native/charts/src/engine/viewport.js +12 -0
  258. package/dist/native/charts/src/engine/viewport.js.map +1 -0
  259. package/dist/native/components/Chart/ChartBase.cjs +2 -0
  260. package/dist/native/components/Chart/ChartBase.cjs.map +1 -0
  261. package/dist/native/components/Chart/ChartBase.d.cts +29 -0
  262. package/dist/native/components/Chart/ChartBase.d.ts +29 -0
  263. package/dist/native/components/Chart/ChartBase.js +287 -0
  264. package/dist/native/components/Chart/ChartBase.js.map +1 -0
  265. package/dist/native/components/Chart/charts.cjs +2 -0
  266. package/dist/native/components/Chart/charts.cjs.map +1 -0
  267. package/dist/native/components/Chart/charts.d.cts +19 -0
  268. package/dist/native/components/Chart/charts.d.ts +19 -0
  269. package/dist/native/components/Chart/charts.js +173 -0
  270. package/dist/native/components/Chart/charts.js.map +1 -0
  271. package/dist/native/components/Chart/index.cjs +1 -0
  272. package/dist/native/components/Chart/index.d.cts +2 -0
  273. package/dist/native/components/Chart/index.d.ts +2 -0
  274. package/dist/native/components/Chart/index.js +2 -0
  275. package/dist/native/components/Chart/measure.cjs +2 -0
  276. package/dist/native/components/Chart/measure.cjs.map +1 -0
  277. package/dist/native/components/Chart/measure.d.cts +5 -0
  278. package/dist/native/components/Chart/measure.d.ts +5 -0
  279. package/dist/native/components/Chart/measure.js +11 -0
  280. package/dist/native/components/Chart/measure.js.map +1 -0
  281. package/dist/native/components/Chart/scene.cjs +2 -0
  282. package/dist/native/components/Chart/scene.cjs.map +1 -0
  283. package/dist/native/components/Chart/scene.d.cts +41 -0
  284. package/dist/native/components/Chart/scene.d.ts +41 -0
  285. package/dist/native/components/Chart/scene.js +419 -0
  286. package/dist/native/components/Chart/scene.js.map +1 -0
  287. package/dist/native/components/Chart/theme.cjs +2 -0
  288. package/dist/native/components/Chart/theme.cjs.map +1 -0
  289. package/dist/native/components/Chart/theme.d.cts +10 -0
  290. package/dist/native/components/Chart/theme.d.ts +10 -0
  291. package/dist/native/components/Chart/theme.js +10 -0
  292. package/dist/native/components/Chart/theme.js.map +1 -0
  293. package/dist/native/components/Chart/types.d.cts +129 -0
  294. package/dist/native/components/Chart/types.d.ts +129 -0
  295. package/dist/native/index.cjs +1 -1
  296. package/dist/native/index.d.cts +1 -0
  297. package/dist/native/index.d.ts +1 -0
  298. package/dist/native/index.js +6 -4
  299. package/dist/native/manifest.d.cts +7 -0
  300. package/dist/native/manifest.d.ts +7 -0
  301. package/dist/native/source/components/Chart/ChartBase.tsx +545 -0
  302. package/dist/native/source/components/Chart/charts.tsx +291 -0
  303. package/dist/native/source/components/Chart/index.ts +8 -0
  304. package/dist/native/source/components/Chart/measure.ts +50 -0
  305. package/dist/native/source/components/Chart/scene.tsx +987 -0
  306. package/dist/native/source/components/Chart/theme.ts +16 -0
  307. package/dist/native/source/components/Chart/types.ts +194 -0
  308. package/dist/native/source/index.ts +1 -0
  309. package/dist/native/source/manifest.ts +14 -0
  310. package/dist/taro/charts.d.ts +144 -0
  311. package/dist/taro/index.d.ts +1 -0
  312. package/dist/taro/index.js +3064 -618
  313. package/dist/uni/BarChart.vue +75 -0
  314. package/dist/uni/BarChart.vue.d.ts +111 -0
  315. package/dist/uni/Chart.vue +68 -0
  316. package/dist/uni/Chart.vue.d.ts +100 -0
  317. package/dist/uni/LineChart.vue +75 -0
  318. package/dist/uni/LineChart.vue.d.ts +111 -0
  319. package/dist/uni/ProgressIndicator.vue.d.ts +1 -1
  320. package/dist/uni/QuadrantChart.vue +184 -0
  321. package/dist/uni/QuadrantChart.vue.d.ts +173 -0
  322. package/dist/uni/ScatterChart.vue +69 -0
  323. package/dist/uni/ScatterChart.vue.d.ts +100 -0
  324. package/dist/uni/chart-canvas.d.ts +68 -0
  325. package/dist/uni/chart-canvas.js +363 -0
  326. package/dist/uni/chart-types.d.ts +135 -0
  327. package/dist/uni/chart-types.js +84 -0
  328. package/dist/uni/charts-canvas.d.ts +1 -0
  329. package/dist/uni/charts-canvas.js +8 -0
  330. package/dist/uni/index.d.ts +6 -0
  331. package/dist/uni/index.js +6 -0
  332. package/dist/weapp/bar-chart/index.js +1 -0
  333. package/dist/weapp/bar-chart/index.json +1 -0
  334. package/dist/weapp/bar-chart/index.wxml +1 -0
  335. package/dist/weapp/bar-chart/index.wxss +1 -0
  336. package/dist/weapp/chart/index.js +1 -0
  337. package/dist/weapp/chart/index.json +1 -0
  338. package/dist/weapp/chart/index.wxml +1 -0
  339. package/dist/weapp/chart/index.wxss +1 -0
  340. package/dist/weapp/controls.js +4019 -266
  341. package/dist/weapp/line-chart/index.js +1 -0
  342. package/dist/weapp/line-chart/index.json +1 -0
  343. package/dist/weapp/line-chart/index.wxml +1 -0
  344. package/dist/weapp/line-chart/index.wxss +1 -0
  345. package/dist/weapp/quadrant-chart/index.js +1 -0
  346. package/dist/weapp/quadrant-chart/index.json +1 -0
  347. package/dist/weapp/quadrant-chart/index.wxml +1 -0
  348. package/dist/weapp/quadrant-chart/index.wxss +1 -0
  349. package/dist/weapp/scatter-chart/index.js +1 -0
  350. package/dist/weapp/scatter-chart/index.json +1 -0
  351. package/dist/weapp/scatter-chart/index.wxml +1 -0
  352. package/dist/weapp/scatter-chart/index.wxss +1 -0
  353. package/dist/weapp/types.d.ts +295 -0
  354. package/package.json +48 -2
@@ -0,0 +1,16 @@
1
+ import type { ChartThemeInput } from "../../../charts/src/canvas.js";
2
+ import type { ResolvedTokens } from "../../../../core/index.js";
3
+
4
+ /**
5
+ * Theme of the chart engine from the resolved design tokens of the closest
6
+ * `MinervaProvider`: every token becomes the CSS variable the web charts
7
+ * read (`--surface-color`, `--text-color`, `--primary-color`,
8
+ * `--chart-series-1`...), so light / dark modes, palettes and overrides
9
+ * apply, and `var(--x)` colors of the options resolve.
10
+ */
11
+ export function chartThemeInput(tokens: ResolvedTokens): ChartThemeInput {
12
+ const variables: Record<string, string> = {};
13
+ for (const [name, value] of Object.entries(tokens.css))
14
+ variables[`--${name}`] = value;
15
+ return { variables };
16
+ }
@@ -0,0 +1,194 @@
1
+ import type { ReactNode, Ref } from "react";
2
+ import type { DimensionValue, StyleProp, ViewStyle } from "react-native";
3
+ import type {
4
+ ChartAnnotation,
5
+ ChartAxisOptions,
6
+ ChartController,
7
+ ChartHoverEvent,
8
+ ChartInteractionOptions,
9
+ ChartLegendOptions,
10
+ ChartPadding,
11
+ ChartPlotClickEvent,
12
+ ChartRect,
13
+ ChartSeries,
14
+ ChartTooltipOptions,
15
+ ChartView,
16
+ QuadrantConfig,
17
+ QuadrantCorner,
18
+ QuadrantPoint,
19
+ } from "../../../charts/src/canvas.js";
20
+
21
+ export type {
22
+ ChartAnnotation,
23
+ ChartAxisOptions,
24
+ ChartAxisType,
25
+ ChartColumnData,
26
+ ChartDragEvent,
27
+ ChartHoverEvent,
28
+ ChartHoverItem,
29
+ ChartInteractionOptions,
30
+ ChartLabelPosition,
31
+ ChartLegendOptions,
32
+ ChartLineAnnotation,
33
+ ChartPadding,
34
+ ChartPlotClickEvent,
35
+ ChartPointDatum,
36
+ ChartRect,
37
+ ChartRectAnnotation,
38
+ ChartSeries,
39
+ ChartSeriesData,
40
+ ChartSeriesType,
41
+ ChartTextAnnotation,
42
+ ChartTooltipOptions,
43
+ ChartView,
44
+ ChartXValue,
45
+ QuadrantAxisLabels,
46
+ QuadrantConfig,
47
+ QuadrantCorner,
48
+ QuadrantPoint,
49
+ QuadrantRegion,
50
+ QuadrantRegions,
51
+ } from "../../../charts/src/canvas.js";
52
+
53
+ /** Imperative handle of the chart components (`ref`) */
54
+ export interface ChartHandle {
55
+ /** Shows the whole data range */
56
+ resetZoom(): void;
57
+ /** Visible range */
58
+ getView(): ChartView | null;
59
+ /** Sets the visible range */
60
+ setView(view: Partial<ChartView>): void;
61
+ /** Plot area in pixels of the chart (`null` before the first layout) */
62
+ getPlotRect(): ChartRect | null;
63
+ /** The platform-free chart controller (scene, gestures, pixel <-> data) */
64
+ getController(): ChartController | null;
65
+ }
66
+
67
+ /** Props shared by every chart component */
68
+ export interface ChartCommonProps {
69
+ /**
70
+ * Height of the chart (the legend included)
71
+ * @default 320
72
+ */
73
+ height?: DimensionValue;
74
+ /**
75
+ * Width of the chart
76
+ * @default "100%"
77
+ */
78
+ width?: DimensionValue;
79
+ /** X axis */
80
+ xAxis?: ChartAxisOptions;
81
+ /** Y axis */
82
+ yAxis?: ChartAxisOptions;
83
+ /** Legend; shown by default when several series have a name (tap toggles a series) */
84
+ legend?: boolean | ChartLegendOptions;
85
+ /** Tooltip shown on tap / while scrubbing; `false` disables it */
86
+ tooltip?: boolean | ChartTooltipOptions;
87
+ /** Vertical guide line following the finger */
88
+ crosshair?: boolean;
89
+ /** Background areas, reference lines and texts */
90
+ annotations?: readonly ChartAnnotation[];
91
+ /**
92
+ * Pinch to zoom, drag to pan when zoomed, double tap to reset; `false` makes the chart static
93
+ * @default true
94
+ */
95
+ interaction?: boolean | ChartInteractionOptions;
96
+ /** Space around the plot area, in pixels */
97
+ padding?: ChartPadding;
98
+ /** Series colors (defaults to the `chart-series-1..8` tokens, then the theme colors) */
99
+ palette?: readonly string[];
100
+ /** Accessible name of the chart */
101
+ ariaLabel?: string;
102
+ /** Called when the highlighted points change */
103
+ onHover?: (event: ChartHoverEvent | null) => void;
104
+ /** Called when a point (or bar) is tapped */
105
+ onPointClick?: (event: ChartHoverEvent) => void;
106
+ /** Called when the plot area is tapped where there is no point */
107
+ onPlotClick?: (event: ChartPlotClickEvent) => void;
108
+ /** React content of the tooltip (replaces the default content) */
109
+ renderTooltip?: (event: ChartHoverEvent) => ReactNode;
110
+ /** Called when the user zooms or pans */
111
+ onZoom?: (view: ChartView) => void;
112
+ /** Styles of the root view */
113
+ style?: StyleProp<ViewStyle>;
114
+ /** Test identifier of the root view */
115
+ testID?: string;
116
+ /** Imperative handle */
117
+ ref?: Ref<ChartHandle>;
118
+ }
119
+
120
+ /** Props of Chart: any mix of line, area, bar and scatter series */
121
+ export interface ChartProps extends ChartCommonProps {
122
+ /** Data series; each sets its own `type` */
123
+ series: readonly ChartSeries[];
124
+ }
125
+
126
+ /** Props of LineChart */
127
+ export interface LineChartProps extends ChartCommonProps {
128
+ /** Series drawn as lines (or areas with `area`) unless they set a `type` */
129
+ series: readonly ChartSeries[];
130
+ /**
131
+ * Fills the area under the lines
132
+ * @default false
133
+ */
134
+ area?: boolean;
135
+ }
136
+
137
+ /** Props of BarChart */
138
+ export interface BarChartProps extends ChartCommonProps {
139
+ /** Series drawn as bars unless they set a `type` (e.g. a `line` overlay) */
140
+ series: readonly ChartSeries[];
141
+ /**
142
+ * Stacks the bars of every series (otherwise they are grouped side by side)
143
+ * @default false
144
+ */
145
+ stacked?: boolean;
146
+ }
147
+
148
+ /** Props of ScatterChart */
149
+ export interface ScatterChartProps extends ChartCommonProps {
150
+ /** Series drawn as dots unless they set a `type` */
151
+ series: readonly ChartSeries[];
152
+ }
153
+
154
+ /** Where a dragged QuadrantChart point was dropped */
155
+ export interface QuadrantDropTarget {
156
+ /** Data coordinates of the drop */
157
+ x: number;
158
+ y: number;
159
+ /** Quadrant of the drop, as seen on screen */
160
+ quadrant: QuadrantCorner;
161
+ }
162
+
163
+ /** Props of QuadrantChart */
164
+ export interface QuadrantChartProps
165
+ extends
166
+ Omit<
167
+ ChartCommonProps,
168
+ "onPointClick" | "onPlotClick" | "renderTooltip" | "xAxis" | "yAxis"
169
+ >,
170
+ QuadrantConfig {
171
+ /** Called with the tapped point and its index */
172
+ onPointClick?: (point: QuadrantPoint, index: number) => void;
173
+ /** Called when the empty area of a quadrant is tapped */
174
+ onQuadrantClick?: (
175
+ quadrant: QuadrantCorner,
176
+ position: { x: number; y: number },
177
+ ) => void;
178
+ /**
179
+ * Called when a dragged point is released; the dots become draggable
180
+ * when it is set (the chart does not move them: update `points`)
181
+ */
182
+ onPointDrop?: (
183
+ point: QuadrantPoint,
184
+ index: number,
185
+ target: QuadrantDropTarget,
186
+ ) => void;
187
+ /** React content of the tooltip of a point */
188
+ renderTooltip?: (point: QuadrantPoint, index: number) => ReactNode;
189
+ /**
190
+ * React content placed over each quadrant (e.g. an add button); the
191
+ * content receives touches, the rest of the quadrant does not
192
+ */
193
+ quadrantContent?: Partial<Record<QuadrantCorner, ReactNode>>;
194
+ }
@@ -74,3 +74,4 @@ export * from "./components/TimePicker";
74
74
 
75
75
  export * from "./components/Parts";
76
76
  export * from "./components/HtmlPreview";
77
+ export * from "./components/Chart";
@@ -234,6 +234,20 @@ export const NATIVE_COMPONENTS: readonly NativeComponent[] = [
234
234
  { name: "SelectSeparator", contract: "SelectSeparator" },
235
235
  ];
236
236
 
237
+ /**
238
+ * The chart components (@minerva/charts engine drawn with views). Not
239
+ * component contracts: the charts have no counterpart in the web contract
240
+ * matrix (minerva-design/charts is a separate entry), so they are listed
241
+ * apart and stay out of the generated contracts / support matrix.
242
+ */
243
+ export const NATIVE_CHARTS: readonly string[] = [
244
+ "Chart",
245
+ "LineChart",
246
+ "BarChart",
247
+ "ScatterChart",
248
+ "QuadrantChart",
249
+ ];
250
+
237
251
  /** Native component of a contract (by contract name) */
238
252
  export const nativeComponentOf = (
239
253
  contract: string,
@@ -0,0 +1,144 @@
1
+ import { CSSProperties } from 'react';
2
+ import { CanvasChartInstance, ChartAnnotation, ChartAxisOptions, ChartHoverEvent, ChartInteractionOptions, ChartLegendOptions, ChartPadding, ChartPlotClickEvent, ChartSeries, ChartTooltipOptions, ChartView, QuadrantConfig, QuadrantCorner, QuadrantPoint } from '../charts/core.js';
3
+ export type { CanvasChartInstance, ChartAnnotation, ChartAxisOptions, ChartDragEvent, ChartHoverEvent, ChartHoverItem, ChartInteractionOptions, ChartLegendOptions, ChartOptions, ChartPadding, ChartPlotClickEvent, ChartSeries, ChartThemeInput, ChartTooltipOptions, ChartView, QuadrantAxisLabels, QuadrantConfig, QuadrantCorner, QuadrantPoint, QuadrantRegion, QuadrantRegions, } from '../charts/core.js';
4
+ /** Imperative handle of the chart components (`ref`) */
5
+ export interface ChartHandle {
6
+ /** Shows the whole data range */
7
+ resetZoom(): void;
8
+ /** Visible range, `null` until the canvas is ready */
9
+ getView(): ChartView | null;
10
+ /** Sets the visible range */
11
+ setView(view: Partial<ChartView>): void;
12
+ /** The underlying canvas chart, `null` until the canvas is ready */
13
+ getInstance(): CanvasChartInstance | null;
14
+ /** Measures the canvas again (e.g. after it was shown in a hidden tab) */
15
+ resize(): void;
16
+ }
17
+ /** Props shared by every chart component */
18
+ export interface ChartCommonProps {
19
+ /**
20
+ * Height of the chart (the legend included); numbers are pixels
21
+ * @default 320
22
+ */
23
+ height?: number | string;
24
+ /**
25
+ * Width of the chart; numbers are pixels
26
+ * @default "100%"
27
+ */
28
+ width?: number | string;
29
+ /** X axis */
30
+ xAxis?: ChartAxisOptions;
31
+ /** Y axis */
32
+ yAxis?: ChartAxisOptions;
33
+ /** Legend; shown by default when several series have a name (tap toggles a series) */
34
+ legend?: boolean | ChartLegendOptions;
35
+ /** Tooltip; `false` disables it */
36
+ tooltip?: boolean | ChartTooltipOptions;
37
+ /** Vertical guide line following the finger */
38
+ crosshair?: boolean;
39
+ /** Background areas and reference lines */
40
+ annotations?: readonly ChartAnnotation[];
41
+ /**
42
+ * Pinch zoom, pan (drag when zoomed) and double-tap reset; `false` makes the chart static
43
+ * @default true
44
+ */
45
+ interaction?: boolean | ChartInteractionOptions;
46
+ /** Space around the plot area, in pixels */
47
+ padding?: ChartPadding;
48
+ /** Series colors (defaults to the `--chart-series-1..8` tokens, then the theme colors) */
49
+ palette?: readonly string[];
50
+ /** Accessible name of the chart */
51
+ ariaLabel?: string;
52
+ /**
53
+ * Keeps the page from scrolling while a finger moves on the chart
54
+ * (needed to pan a zoomed chart or drag points)
55
+ * @default false
56
+ */
57
+ disableScroll?: boolean;
58
+ /** Called when the touched (or hovered) points change */
59
+ onHover?: (event: ChartHoverEvent | null) => void;
60
+ /** Called when a point (or bar) is tapped */
61
+ onPointClick?: (event: ChartHoverEvent) => void;
62
+ /** Called when the plot area is tapped where there is no point */
63
+ onPlotClick?: (event: ChartPlotClickEvent) => void;
64
+ /** Called when the user zooms or pans */
65
+ onZoom?: (view: ChartView) => void;
66
+ /** Additional class name of the root element */
67
+ className?: string;
68
+ /** Inline styles of the root element */
69
+ style?: CSSProperties;
70
+ /** Id of the `<Canvas>` (generated by default) */
71
+ id?: string;
72
+ }
73
+ /** Props of Chart: any mix of line, area, bar and scatter series */
74
+ export interface ChartProps extends ChartCommonProps {
75
+ /** Data series; each sets its own `type` */
76
+ series: readonly ChartSeries[];
77
+ }
78
+ /** Props of LineChart */
79
+ export interface LineChartProps extends ChartCommonProps {
80
+ /** Series drawn as lines (or areas with `area`) unless they set a `type` */
81
+ series: readonly ChartSeries[];
82
+ /**
83
+ * Fills the area under the lines
84
+ * @default false
85
+ */
86
+ area?: boolean;
87
+ }
88
+ /** Props of BarChart */
89
+ export interface BarChartProps extends ChartCommonProps {
90
+ /** Series drawn as bars unless they set a `type` (e.g. a `line` overlay) */
91
+ series: readonly ChartSeries[];
92
+ /**
93
+ * Stacks the bars of every series (otherwise they are grouped side by side)
94
+ * @default false
95
+ */
96
+ stacked?: boolean;
97
+ }
98
+ /** Props of ScatterChart */
99
+ export interface ScatterChartProps extends ChartCommonProps {
100
+ /** Series drawn as dots unless they set a `type` */
101
+ series: readonly ChartSeries[];
102
+ }
103
+ /** Where a dragged QuadrantChart point was dropped */
104
+ export interface QuadrantDropTarget {
105
+ /** Data coordinates of the drop */
106
+ x: number;
107
+ y: number;
108
+ /** Quadrant of the drop, as seen on screen */
109
+ quadrant: QuadrantCorner;
110
+ }
111
+ /** Props of QuadrantChart */
112
+ export interface QuadrantChartProps extends Omit<ChartCommonProps, "onPointClick" | "onPlotClick" | "xAxis" | "yAxis" | "disableScroll">, QuadrantConfig {
113
+ /** Called with the tapped point and its index */
114
+ onPointClick?: (point: QuadrantPoint, index: number) => void;
115
+ /** Called when the empty area of a quadrant is tapped */
116
+ onQuadrantClick?: (quadrant: QuadrantCorner, position: {
117
+ x: number;
118
+ y: number;
119
+ }) => void;
120
+ /**
121
+ * Called when a dragged point is released; the dots become draggable
122
+ * when it is set (the chart does not move them: update `points`)
123
+ */
124
+ onPointDrop?: (point: QuadrantPoint, index: number, target: QuadrantDropTarget) => void;
125
+ /**
126
+ * Keeps the page from scrolling while a finger moves on the chart
127
+ * @default draggable
128
+ */
129
+ disableScroll?: boolean;
130
+ }
131
+ /** Chart mixing line, area, bar and scatter series (each sets its `type`) */
132
+ export declare const Chart: import('react').ForwardRefExoticComponent<ChartProps & import('react').RefAttributes<ChartHandle>>;
133
+ /** Line (or area) chart */
134
+ export declare const LineChart: import('react').ForwardRefExoticComponent<LineChartProps & import('react').RefAttributes<ChartHandle>>;
135
+ /** Bar chart: grouped side by side, or stacked */
136
+ export declare const BarChart: import('react').ForwardRefExoticComponent<BarChartProps & import('react').RefAttributes<ChartHandle>>;
137
+ /** Scatter chart: zooms on both axes */
138
+ export declare const ScatterChart: import('react').ForwardRefExoticComponent<ScatterChartProps & import('react').RefAttributes<ChartHandle>>;
139
+ /**
140
+ * Four-quadrant matrix (priority matrix, Eisenhower, BCG, ...): tinted
141
+ * quadrants with titles, dividers, and labelled dots placed without
142
+ * overlapping labels. Dots can be dragged to another quadrant.
143
+ */
144
+ export declare const QuadrantChart: import('react').ForwardRefExoticComponent<QuadrantChartProps & import('react').RefAttributes<ChartHandle>>;
@@ -6,3 +6,4 @@ export * from './display.js';
6
6
  export * from './data.js';
7
7
  export * from './theme.js';
8
8
  export * from './date-picker.js';
9
+ export * from './charts.js';