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,356 @@
1
+ /** GPU / CPU backend that draws the data layer */
2
+ export type ChartRendererKind = "webgpu" | "webgl2" | "canvas2d";
3
+ /**
4
+ * Requested backend: `auto` tries WebGPU, then WebGL2, then Canvas2D, and
5
+ * skips GPU backends that run in software (no hardware acceleration)
6
+ */
7
+ export type ChartRendererPreference = "auto" | ChartRendererKind;
8
+ /** Scale of an axis */
9
+ export type ChartAxisType = "linear" | "time" | "category";
10
+ /** How a series is drawn */
11
+ export type ChartSeriesType = "line" | "area" | "bar" | "scatter";
12
+ /** X value of a datum: a number, a `Date` (time axis) or a category name */
13
+ export type ChartXValue = number | Date | string;
14
+ /** One datum written as an object */
15
+ export interface ChartPointDatum {
16
+ /** X value; the datum index when omitted */
17
+ x?: ChartXValue;
18
+ /** Y value; `null` leaves a gap */
19
+ y: number | null;
20
+ /** Diameter of the dot in CSS pixels (scatter) */
21
+ size?: number;
22
+ /** Color of the dot (scatter); any CSS color */
23
+ color?: string;
24
+ /** Text drawn next to the dot (scatter with `showLabels`) and shown in the tooltip */
25
+ label?: string;
26
+ }
27
+ /** Column-oriented data: the fastest form for large data sets (typed arrays are used as is) */
28
+ export interface ChartColumnData {
29
+ /** X values; the index when omitted */
30
+ x?: ArrayLike<number> | readonly ChartXValue[];
31
+ /** Y values (`NaN` / `null` leave a gap) */
32
+ y: ArrayLike<number> | readonly (number | null)[];
33
+ /** Per-point diameters in CSS pixels (scatter) */
34
+ size?: ArrayLike<number>;
35
+ }
36
+ /**
37
+ * Data of a series: y values only (`[3, 5, 2]`, typed arrays included),
38
+ * `[x, y]` tuples, objects or columns
39
+ */
40
+ export type ChartSeriesData = ArrayLike<number> | readonly (number | null)[] | readonly (readonly [ChartXValue, number | null])[] | readonly ChartPointDatum[] | ChartColumnData;
41
+ /** A data series */
42
+ export interface ChartSeries {
43
+ /** Stable identifier (defaults to the index) */
44
+ id?: string;
45
+ /** Name shown in the legend and the tooltip */
46
+ name?: string;
47
+ /**
48
+ * How the series is drawn
49
+ * @default "line"
50
+ */
51
+ type?: ChartSeriesType;
52
+ /** Data points */
53
+ data: ChartSeriesData;
54
+ /** Series color (any CSS color, `var(--x)` included); the palette when omitted */
55
+ color?: string;
56
+ /**
57
+ * Line width in CSS pixels (line / area)
58
+ * @default 2
59
+ */
60
+ lineWidth?: number;
61
+ /**
62
+ * Dot diameter in CSS pixels (scatter)
63
+ * @default 8
64
+ */
65
+ pointSize?: number;
66
+ /** Fill opacity (area, scatter), 0-1 */
67
+ opacity?: number;
68
+ /** Bars with the same stack id are stacked */
69
+ stack?: string;
70
+ /** Hides the series (it stays in the legend) */
71
+ hidden?: boolean;
72
+ /** Draws the `label` of each point next to it (scatter) */
73
+ showLabels?: boolean;
74
+ }
75
+ /** Options of an axis */
76
+ export interface ChartAxisOptions {
77
+ /**
78
+ * Scale of the axis: `linear` numbers, `time` timestamps / dates, `category` names
79
+ * @default "linear"
80
+ */
81
+ type?: ChartAxisType;
82
+ /** Lower bound; computed from the data when omitted */
83
+ min?: number;
84
+ /** Upper bound; computed from the data when omitted */
85
+ max?: number;
86
+ /** Axis title */
87
+ title?: string;
88
+ /** Category names (`category` axis); collected from the data when omitted */
89
+ categories?: readonly string[];
90
+ /** Formats a tick / tooltip value */
91
+ format?: (value: number) => string;
92
+ /**
93
+ * Approximate number of ticks
94
+ * @default 5 (y), computed from the width (x)
95
+ */
96
+ tickCount?: number;
97
+ /**
98
+ * Draws grid lines at the ticks
99
+ * @default true for y, false for x
100
+ */
101
+ grid?: boolean;
102
+ /**
103
+ * Shows the axis line, ticks and labels
104
+ * @default true
105
+ */
106
+ visible?: boolean;
107
+ /** Keeps zero inside the automatic range (always on for bars) */
108
+ zero?: boolean;
109
+ /** Reverses the direction of the axis */
110
+ reverse?: boolean;
111
+ /** Rounds the automatic range to tick values; on by default except for category axes */
112
+ nice?: boolean;
113
+ }
114
+ /** Position of an annotation label inside its area */
115
+ export type ChartLabelPosition = "top-left" | "top-right" | "bottom-left" | "bottom-right" | "center";
116
+ /** Area annotation: a rectangle in data coordinates (omitted bounds extend to the plot edges) */
117
+ export interface ChartRectAnnotation {
118
+ type: "rect";
119
+ x0?: number;
120
+ x1?: number;
121
+ y0?: number;
122
+ y1?: number;
123
+ /** Fill color (any CSS color) */
124
+ color?: string;
125
+ /** Fill opacity, 0-1 (default 0.08) */
126
+ opacity?: number;
127
+ /** Text drawn inside the area */
128
+ label?: string;
129
+ /** Where the label goes (default `top-left`) */
130
+ labelPosition?: ChartLabelPosition;
131
+ /** Label color (defaults to `color`) */
132
+ labelColor?: string;
133
+ }
134
+ /** Reference line annotation at a value of the x or y axis */
135
+ export interface ChartLineAnnotation {
136
+ type: "line";
137
+ axis: "x" | "y";
138
+ value: number;
139
+ /** Line color (any CSS color) */
140
+ color?: string;
141
+ /** Line width in CSS pixels (default 1) */
142
+ width?: number;
143
+ /** Dash pattern, e.g. `[4, 4]` */
144
+ dash?: readonly number[];
145
+ /** Text drawn at the end of the line */
146
+ label?: string;
147
+ }
148
+ /** Text placed at a data position (omitted coordinates center it on the plot) */
149
+ export interface ChartTextAnnotation {
150
+ type: "text";
151
+ x?: number;
152
+ y?: number;
153
+ text: string;
154
+ /**
155
+ * Side of the text that touches the position: `top` hangs the text below
156
+ * it, `left` starts it there, ...; the text always stays inside the plot
157
+ * @default "center"
158
+ */
159
+ anchor?: "center" | "top" | "bottom" | "left" | "right";
160
+ /** Text color (defaults to the secondary text color) */
161
+ color?: string;
162
+ /**
163
+ * Font weight
164
+ * @default 500
165
+ */
166
+ weight?: number;
167
+ }
168
+ /** Background area, reference line or text */
169
+ export type ChartAnnotation = ChartRectAnnotation | ChartLineAnnotation | ChartTextAnnotation;
170
+ /** Zoom / pan / keyboard options */
171
+ export interface ChartInteractionOptions {
172
+ /**
173
+ * Axes that zoom and pan; `true` = x for line / area / bar charts, both for scatter charts
174
+ * @default true
175
+ */
176
+ zoom?: boolean | "x" | "y" | "xy";
177
+ /**
178
+ * Wheel zoom: only with Ctrl / ⌘ (and trackpad pinch) or always
179
+ * @default "modifier"
180
+ */
181
+ wheel?: "modifier" | "always";
182
+ /**
183
+ * Drag to pan (when zoomed)
184
+ * @default true
185
+ */
186
+ pan?: boolean;
187
+ /**
188
+ * Arrow keys move the highlight, +/- zoom, 0 resets, Esc clears
189
+ * @default true
190
+ */
191
+ keyboard?: boolean;
192
+ /**
193
+ * Scatter points can be dragged: `drag` events follow the pointer and a
194
+ * `drop` event ends the gesture (the data is not changed by the chart)
195
+ * @default false
196
+ */
197
+ dragPoints?: boolean;
198
+ }
199
+ /** Tooltip options */
200
+ export interface ChartTooltipOptions {
201
+ /**
202
+ * `nearest` shows the closest point, `axis` all the series at the closest x
203
+ * @default "axis" ("nearest" when every series is a scatter)
204
+ */
205
+ mode?: "nearest" | "axis";
206
+ /** Renders the tooltip content (a string is set as text) */
207
+ render?: (event: ChartHoverEvent) => string | Node | null;
208
+ }
209
+ /** Legend options */
210
+ export interface ChartLegendOptions {
211
+ /**
212
+ * Legend position
213
+ * @default "top"
214
+ */
215
+ position?: "top" | "bottom";
216
+ /**
217
+ * Clicking an item toggles its series
218
+ * @default true
219
+ */
220
+ toggle?: boolean;
221
+ }
222
+ /** Inner space around the plot area, in CSS pixels */
223
+ export interface ChartPadding {
224
+ top?: number;
225
+ right?: number;
226
+ bottom?: number;
227
+ left?: number;
228
+ }
229
+ /** Options of `createChart` */
230
+ export interface ChartOptions {
231
+ /** Data series */
232
+ series: readonly ChartSeries[];
233
+ /** X axis */
234
+ xAxis?: ChartAxisOptions;
235
+ /** Y axis */
236
+ yAxis?: ChartAxisOptions;
237
+ /**
238
+ * Backend of the data layer
239
+ * @default "auto"
240
+ */
241
+ renderer?: ChartRendererPreference;
242
+ /** Legend; shown by default when there are several named series */
243
+ legend?: boolean | ChartLegendOptions;
244
+ /** Tooltip; `false` disables it */
245
+ tooltip?: boolean | ChartTooltipOptions;
246
+ /** Vertical guide line following the pointer (default on for `axis` tooltips) */
247
+ crosshair?: boolean;
248
+ /** Background areas and reference lines */
249
+ annotations?: readonly ChartAnnotation[];
250
+ /** Zoom / pan / keyboard; `false` makes the chart static */
251
+ interaction?: boolean | ChartInteractionOptions;
252
+ /** Space around the plot area */
253
+ padding?: ChartPadding;
254
+ /** Colors of the series without `color` (defaults to the `--chart-series-1..8` CSS variables, then the theme colors) */
255
+ palette?: readonly string[];
256
+ /** Accessible name of the chart */
257
+ ariaLabel?: string;
258
+ }
259
+ /** A point under the pointer */
260
+ export interface ChartHoverItem {
261
+ seriesIndex: number;
262
+ seriesId: string;
263
+ seriesName: string;
264
+ /** Index of the point in the series data */
265
+ index: number;
266
+ x: number;
267
+ y: number;
268
+ /** Resolved color of the point */
269
+ color: string;
270
+ label?: string;
271
+ }
272
+ /** Hover / click payload */
273
+ export interface ChartHoverEvent {
274
+ /** Points under the pointer (several in `axis` mode) */
275
+ items: ChartHoverItem[];
276
+ /** X value of the first item */
277
+ x: number;
278
+ /** Formatted x value */
279
+ xLabel: string;
280
+ }
281
+ /** Visible range of the axes */
282
+ export interface ChartView {
283
+ x: [number, number];
284
+ y: [number, number];
285
+ }
286
+ /** Rectangle in CSS pixels, relative to the chart's container */
287
+ export interface ChartRect {
288
+ x: number;
289
+ y: number;
290
+ width: number;
291
+ height: number;
292
+ }
293
+ /** A dragged point (`drag` / `drop` events) */
294
+ export interface ChartDragEvent {
295
+ /** The point being dragged */
296
+ item: ChartHoverItem;
297
+ /** Data coordinates under the pointer */
298
+ x: number;
299
+ y: number;
300
+ }
301
+ /** A click (or tap) on the plot area outside the points */
302
+ export interface ChartPlotClickEvent {
303
+ /** Data coordinates of the click */
304
+ x: number;
305
+ y: number;
306
+ }
307
+ /** Events of a chart instance */
308
+ export interface ChartEventMap {
309
+ hover: ChartHoverEvent | null;
310
+ click: ChartHoverEvent;
311
+ /** Click on the plot area where there is no point */
312
+ plotClick: ChartPlotClickEvent;
313
+ zoom: ChartView;
314
+ renderer: ChartRendererKind;
315
+ /** The plot area moved or was resized */
316
+ layout: ChartRect;
317
+ /** A point is dragged (`interaction.dragPoints`) */
318
+ drag: ChartDragEvent;
319
+ /** A dragged point was released */
320
+ drop: ChartDragEvent;
321
+ }
322
+ /** Chart created by `createChart` */
323
+ export interface ChartInstance {
324
+ /** Replaces the options (unchanged data arrays are not processed again) */
325
+ setOptions(options: ChartOptions): void;
326
+ /** Measures the container again (a ResizeObserver does it automatically) */
327
+ resize(): void;
328
+ /** Shows the whole data range */
329
+ resetZoom(): void;
330
+ /** Visible range */
331
+ getView(): ChartView;
332
+ /** Sets the visible range */
333
+ setView(view: Partial<ChartView>): void;
334
+ /** Plot area in CSS pixels of the container (`null` before the first frame) */
335
+ getPlotRect(): ChartRect | null;
336
+ /** Data coordinates -> CSS pixels of the container (`null` before the first frame) */
337
+ toPixel(x: number, y: number): {
338
+ x: number;
339
+ y: number;
340
+ } | null;
341
+ /** CSS pixels of the container -> data coordinates (`null` before the first frame) */
342
+ fromPixel(x: number, y: number): {
343
+ x: number;
344
+ y: number;
345
+ } | null;
346
+ /** Backend in use, `null` until ready */
347
+ getRenderer(): ChartRendererKind | null;
348
+ /** Resolves with the backend once the first frame can be drawn (`null` when the browser has no canvas support) */
349
+ ready: Promise<ChartRendererKind | null>;
350
+ /** Reads the CSS variables again (theme changes on `<html>` / `<body>` are detected automatically) */
351
+ refreshTheme(): void;
352
+ /** Subscribes to an event; returns the unsubscribe function */
353
+ on<K extends keyof ChartEventMap>(type: K, listener: (event: ChartEventMap[K]) => void): () => void;
354
+ /** Removes the DOM and frees the GPU resources */
355
+ destroy(): void;
356
+ }
@@ -0,0 +1,2 @@
1
+ var e=(e,t,n)=>{let r=t[1]-t[0],i=Math.min(Math.max(e[1]-e[0],n),r),a=(e[0]+e[1])/2-i/2,o=a+i;return a<t[0]&&(a=t[0],o=a+i),o>t[1]&&(o=t[1],a=o-i),[a,o]},t=(e,t,n)=>[t-(t-e[0])*n,t+(e[1]-t)*n],n=(e,t)=>[e[0]+t,e[1]+t],r=(e,t,n=1e-9)=>{let r=Math.max(Math.abs(t[1]-t[0]),1e-300);return Math.abs(e[0]-t[0])<=r*n&&Math.abs(e[1]-t[1])<=r*n},i=(e,t,n)=>{let r=t===1?e*16:t===2?e*400:e;return Math.exp(Math.max(-1,Math.min(1,r*(n?.01:.0025))))};exports.clampRange=e,exports.panRange=n,exports.sameRange=r,exports.wheelFactor=i,exports.zoomRange=t;
2
+ //# sourceMappingURL=viewport.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewport.cjs","names":["clampRange","maxSpan","bounds","span","range","minSpan","b","zoomRange","anchor","factor","panRange","delta","sameRange","a","epsilon","wheelFactor","pixels","deltaMode","deltaY","pinch"],"sources":["../../../../charts/src/engine/viewport.ts"],"sourcesContent":["// Zoom / pan math on [min, max] ranges.\n\nexport type Range = [number, number];\n\n/**\n * Keeps a range inside `bounds` with a span between `minSpan` and the\n * span of the bounds (shifts it back instead of shrinking it).\n */\nexport const clampRange = (\n range: Range,\n bounds: Range,\n minSpan: number,\n): Range => {\n const maxSpan = bounds[1] - bounds[0];\n const span = Math.min(Math.max(range[1] - range[0], minSpan), maxSpan);\n const center = (range[0] + range[1]) / 2;\n let a = center - span / 2;\n let b = a + span;\n if (a < bounds[0]) {\n a = bounds[0];\n b = a + span;\n }\n if (b > bounds[1]) {\n b = bounds[1];\n a = b - span;\n }\n return [a, b];\n};\n\n/** Scales a range around `anchor` (factor < 1 zooms in) */\nexport const zoomRange = (\n range: Range,\n anchor: number,\n factor: number,\n): Range => [\n anchor - (anchor - range[0]) * factor,\n anchor + (range[1] - anchor) * factor,\n];\n\nexport const panRange = (range: Range, delta: number): Range => [\n range[0] + delta,\n range[1] + delta,\n];\n\nexport const sameRange = (a: Range, b: Range, epsilon = 1e-9): boolean => {\n const span = Math.max(Math.abs(b[1] - b[0]), 1e-300);\n return (\n Math.abs(a[0] - b[0]) <= span * epsilon &&\n Math.abs(a[1] - b[1]) <= span * epsilon\n );\n};\n\n/** Wheel delta -> zoom factor (trackpad pinches arrive as ctrl + small deltas) */\nexport const wheelFactor = (\n deltaY: number,\n deltaMode: number,\n pinch: boolean,\n): number => {\n const pixels =\n deltaMode === 1 ? deltaY * 16 : deltaMode === 2 ? deltaY * 400 : deltaY;\n const speed = pinch ? 0.01 : 0.0025;\n return Math.exp(Math.max(-1, Math.min(1, pixels * speed)));\n};\n"],"mappings":"AAQA,IAAaA,GACX,EACA,EACA,IACU,CACV,IAAMC,EAAUC,EAAO,GAAKA,EAAO,GAC7BC,EAAO,KAAK,IAAI,KAAK,IAAIC,EAAM,GAAKA,EAAM,GAAIC,CAAO,EAAGJ,CAAO,EAEjE,GADYG,EAAM,GAAKA,EAAM,IAAM,EACtBD,EAAO,EACpBG,EAAI,EAAIH,EASZ,OARI,EAAID,EAAO,KACb,EAAIA,EAAO,GACX,EAAI,EAAIC,GAENG,EAAIJ,EAAO,KACb,EAAIA,EAAO,GACX,EAAII,EAAIH,GAEH,CAAC,EAAGG,CAAC,CACd,EAGaC,GACX,EACA,EACA,IACU,CACVC,GAAUA,EAASJ,EAAM,IAAMK,EAC/BD,GAAUJ,EAAM,GAAKI,GAAUC,CACjC,EAEaC,GAAY,EAAc,IAAyB,CAC9DN,EAAM,GAAKO,EACXP,EAAM,GAAKO,CACb,EAEaC,GAAa,EAAU,EAAU,EAAU,OAAkB,CACxE,IAAMT,EAAO,KAAK,IAAI,KAAK,IAAIG,EAAE,GAAKA,EAAE,EAAE,EAAG,MAAM,EACnD,OACE,KAAK,IAAIO,EAAE,GAAKP,EAAE,EAAE,GAAKH,EAAOW,GAChC,KAAK,IAAID,EAAE,GAAKP,EAAE,EAAE,GAAKH,EAAOW,CAEpC,EAGaC,GACX,EACA,EACA,IACW,CACX,IAAMC,EACJC,IAAc,EAAIC,EAAS,GAAKD,IAAc,EAAIC,EAAS,IAAMA,EAEnE,OAAO,KAAK,IAAI,KAAK,IAAI,GAAI,KAAK,IAAI,EAAGF,GAD3BG,EAAQ,IAAO,MAC0B,CAAC,CAAC,CAC3D"}
@@ -0,0 +1,12 @@
1
+ export type Range = [number, number];
2
+ /**
3
+ * Keeps a range inside `bounds` with a span between `minSpan` and the
4
+ * span of the bounds (shifts it back instead of shrinking it).
5
+ */
6
+ export declare const clampRange: (range: Range, bounds: Range, minSpan: number) => Range;
7
+ /** Scales a range around `anchor` (factor < 1 zooms in) */
8
+ export declare const zoomRange: (range: Range, anchor: number, factor: number) => Range;
9
+ export declare const panRange: (range: Range, delta: number) => Range;
10
+ export declare const sameRange: (a: Range, b: Range, epsilon?: number) => boolean;
11
+ /** Wheel delta -> zoom factor (trackpad pinches arrive as ctrl + small deltas) */
12
+ export declare const wheelFactor: (deltaY: number, deltaMode: number, pinch: boolean) => number;
@@ -0,0 +1,12 @@
1
+ export type Range = [number, number];
2
+ /**
3
+ * Keeps a range inside `bounds` with a span between `minSpan` and the
4
+ * span of the bounds (shifts it back instead of shrinking it).
5
+ */
6
+ export declare const clampRange: (range: Range, bounds: Range, minSpan: number) => Range;
7
+ /** Scales a range around `anchor` (factor < 1 zooms in) */
8
+ export declare const zoomRange: (range: Range, anchor: number, factor: number) => Range;
9
+ export declare const panRange: (range: Range, delta: number) => Range;
10
+ export declare const sameRange: (a: Range, b: Range, epsilon?: number) => boolean;
11
+ /** Wheel delta -> zoom factor (trackpad pinches arrive as ctrl + small deltas) */
12
+ export declare const wheelFactor: (deltaY: number, deltaMode: number, pinch: boolean) => number;
@@ -0,0 +1,15 @@
1
+ //#region src/engine/viewport.ts
2
+ var e = (e, t, n) => {
3
+ let r = t[1] - t[0], i = Math.min(Math.max(e[1] - e[0], n), r), a = (e[0] + e[1]) / 2 - i / 2, o = a + i;
4
+ return a < t[0] && (a = t[0], o = a + i), o > t[1] && (o = t[1], a = o - i), [a, o];
5
+ }, t = (e, t, n) => [t - (t - e[0]) * n, t + (e[1] - t) * n], n = (e, t) => [e[0] + t, e[1] + t], r = (e, t, n = 1e-9) => {
6
+ let r = Math.max(Math.abs(t[1] - t[0]), 1e-300);
7
+ return Math.abs(e[0] - t[0]) <= r * n && Math.abs(e[1] - t[1]) <= r * n;
8
+ }, i = (e, t, n) => {
9
+ let r = t === 1 ? e * 16 : t === 2 ? e * 400 : e;
10
+ return Math.exp(Math.max(-1, Math.min(1, r * (n ? .01 : .0025))));
11
+ };
12
+ //#endregion
13
+ export { e as clampRange, n as panRange, r as sameRange, i as wheelFactor, t as zoomRange };
14
+
15
+ //# sourceMappingURL=viewport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewport.js","names":["clampRange","maxSpan","bounds","span","range","minSpan","b","zoomRange","anchor","factor","panRange","delta","sameRange","a","epsilon","wheelFactor","pixels","deltaMode","deltaY","pinch"],"sources":["../../../../charts/src/engine/viewport.ts"],"sourcesContent":["// Zoom / pan math on [min, max] ranges.\n\nexport type Range = [number, number];\n\n/**\n * Keeps a range inside `bounds` with a span between `minSpan` and the\n * span of the bounds (shifts it back instead of shrinking it).\n */\nexport const clampRange = (\n range: Range,\n bounds: Range,\n minSpan: number,\n): Range => {\n const maxSpan = bounds[1] - bounds[0];\n const span = Math.min(Math.max(range[1] - range[0], minSpan), maxSpan);\n const center = (range[0] + range[1]) / 2;\n let a = center - span / 2;\n let b = a + span;\n if (a < bounds[0]) {\n a = bounds[0];\n b = a + span;\n }\n if (b > bounds[1]) {\n b = bounds[1];\n a = b - span;\n }\n return [a, b];\n};\n\n/** Scales a range around `anchor` (factor < 1 zooms in) */\nexport const zoomRange = (\n range: Range,\n anchor: number,\n factor: number,\n): Range => [\n anchor - (anchor - range[0]) * factor,\n anchor + (range[1] - anchor) * factor,\n];\n\nexport const panRange = (range: Range, delta: number): Range => [\n range[0] + delta,\n range[1] + delta,\n];\n\nexport const sameRange = (a: Range, b: Range, epsilon = 1e-9): boolean => {\n const span = Math.max(Math.abs(b[1] - b[0]), 1e-300);\n return (\n Math.abs(a[0] - b[0]) <= span * epsilon &&\n Math.abs(a[1] - b[1]) <= span * epsilon\n );\n};\n\n/** Wheel delta -> zoom factor (trackpad pinches arrive as ctrl + small deltas) */\nexport const wheelFactor = (\n deltaY: number,\n deltaMode: number,\n pinch: boolean,\n): number => {\n const pixels =\n deltaMode === 1 ? deltaY * 16 : deltaMode === 2 ? deltaY * 400 : deltaY;\n const speed = pinch ? 0.01 : 0.0025;\n return Math.exp(Math.max(-1, Math.min(1, pixels * speed)));\n};\n"],"mappings":";AAQA,IAAaA,KACX,GACA,GACA,MACU;CACV,IAAMC,IAAUC,EAAO,KAAKA,EAAO,IAC7BC,IAAO,KAAK,IAAI,KAAK,IAAIC,EAAM,KAAKA,EAAM,IAAIC,CAAO,GAAGJ,CAAO,GAEjE,KADYG,EAAM,KAAKA,EAAM,MAAM,IACtBD,IAAO,GACpBG,IAAI,IAAIH;CASZ,OARI,IAAID,EAAO,OACb,IAAIA,EAAO,IACX,IAAI,IAAIC,IAENG,IAAIJ,EAAO,OACb,IAAIA,EAAO,IACX,IAAII,IAAIH,IAEH,CAAC,GAAGG,CAAC;AACd,GAGaC,KACX,GACA,GACA,MACU,CACVC,KAAUA,IAASJ,EAAM,MAAMK,GAC/BD,KAAUJ,EAAM,KAAKI,KAAUC,CACjC,GAEaC,KAAY,GAAc,MAAyB,CAC9DN,EAAM,KAAKO,GACXP,EAAM,KAAKO,CACb,GAEaC,KAAa,GAAU,GAAU,IAAU,SAAkB;CACxE,IAAMT,IAAO,KAAK,IAAI,KAAK,IAAIG,EAAE,KAAKA,EAAE,EAAE,GAAG,MAAM;CACnD,OACE,KAAK,IAAIO,EAAE,KAAKP,EAAE,EAAE,KAAKH,IAAOW,KAChC,KAAK,IAAID,EAAE,KAAKP,EAAE,EAAE,KAAKH,IAAOW;AAEpC,GAGaC,KACX,GACA,GACA,MACW;CACX,IAAMC,IACJC,MAAc,IAAIC,IAAS,KAAKD,MAAc,IAAIC,IAAS,MAAMA;CAEnE,OAAO,KAAK,IAAI,KAAK,IAAI,IAAI,KAAK,IAAI,GAAGF,KAD3BG,IAAQ,MAAO,MAC0B,CAAC,CAAC;AAC3D"}
@@ -0,0 +1 @@
1
+ "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./engine/format.cjs"),t=require("./engine/chart.cjs"),n=require("./react/Chart.cjs"),r=require("./engine/presets.cjs"),i=require("./react/charts.cjs"),a=require("./engine/controller.cjs"),o=require("./engine/canvas.cjs");require("./core.cjs"),exports.BarChart=i.BarChart,exports.Chart=n.Chart,exports.LineChart=i.LineChart,exports.QuadrantChart=i.QuadrantChart,exports.ScatterChart=i.ScatterChart,exports.createCanvasChart=o.createCanvasChart,exports.createChart=t.createChart,exports.createChartController=a.createChartController,exports.formatCompact=e.formatCompact,exports.quadrantCenter=r.quadrantCenter,exports.quadrantChartOptions=r.quadrantChartOptions,exports.quadrantOf=r.quadrantOf,exports.scenePrimitives=a.scenePrimitives;
@@ -0,0 +1,4 @@
1
+ export { Chart } from './react/Chart.cjs';
2
+ export { BarChart, LineChart, QuadrantChart, ScatterChart, } from './react/charts.cjs';
3
+ export type { BarChartProps, ChartCommonProps, ChartHandle, ChartProps, LineChartProps, QuadrantChartProps, QuadrantDropTarget, ScatterChartProps, } from './react/types.cjs';
4
+ export * from './core.cjs';
@@ -0,0 +1,4 @@
1
+ export { Chart } from './react/Chart.js';
2
+ export { BarChart, LineChart, QuadrantChart, ScatterChart, } from './react/charts.js';
3
+ export type { BarChartProps, ChartCommonProps, ChartHandle, ChartProps, LineChartProps, QuadrantChartProps, QuadrantDropTarget, ScatterChartProps, } from './react/types.js';
4
+ export * from './core.js';
@@ -0,0 +1,10 @@
1
+ "use client";
2
+ import { formatCompact as e } from "./engine/format.js";
3
+ import { createChart as t } from "./engine/chart.js";
4
+ import { Chart as n } from "./react/Chart.js";
5
+ import { quadrantCenter as r, quadrantChartOptions as i, quadrantOf as a } from "./engine/presets.js";
6
+ import { BarChart as o, LineChart as s, QuadrantChart as c, ScatterChart as l } from "./react/charts.js";
7
+ import { createChartController as u, scenePrimitives as d } from "./engine/controller.js";
8
+ import { createCanvasChart as f } from "./engine/canvas.js";
9
+ import "./core.js";
10
+ export { o as BarChart, n as Chart, s as LineChart, c as QuadrantChart, l as ScatterChart, f as createCanvasChart, t as createChart, u as createChartController, e as formatCompact, r as quadrantCenter, i as quadrantChartOptions, a as quadrantOf, d as scenePrimitives };
@@ -0,0 +1,2 @@
1
+ "use client";const e=require("../engine/chart.cjs");let t=require("react"),n=require("react-dom"),r=require("react/jsx-runtime");var i=(e,t)=>e===void 0?t:typeof e==`number`?`${e}px`:e,a=e=>({series:e.series,xAxis:e.xAxis,yAxis:e.yAxis,renderer:e.renderer,legend:e.legend,tooltip:e.tooltip,crosshair:e.crosshair,annotations:e.annotations,interaction:e.interaction,padding:e.padding,palette:e.palette,ariaLabel:e.ariaLabel});function o({options:a,height:o,width:s,className:c,style:l,handleRef:u,renderTooltip:d,overlay:f,...p}){let m=(0,t.useRef)(null),h=(0,t.useRef)(null),g=(0,t.useRef)(p),_=(0,t.useRef)(d),[v,y]=(0,t.useState)(null),[b,x]=(0,t.useState)(null),S=(0,t.useMemo)(()=>typeof document>`u`?null:document.createElement(`div`),[]),C=(0,t.useMemo)(()=>{if(!d||!S||a.tooltip===!1)return a;let e=typeof a.tooltip==`object`?a.tooltip:{};return{...a,tooltip:{...e,render:e=>_.current?((0,n.flushSync)(()=>y(e)),S):null}}},[a,d,S]),w=(0,t.useRef)(C);return(0,t.useEffect)(()=>{g.current=p,_.current=d}),(0,t.useEffect)(()=>{let t=m.current;if(!t)return;let n=e.createChart(t,w.current);h.current=n;let r=[n.on(`hover`,e=>g.current.onHover?.(e)),n.on(`click`,e=>g.current.onPointClick?.(e)),n.on(`plotClick`,e=>g.current.onPlotClick?.(e)),n.on(`zoom`,e=>g.current.onZoom?.(e)),n.on(`renderer`,e=>g.current.onRendererChange?.(e)),n.on(`drag`,e=>g.current.onDrag?.(e)),n.on(`drop`,e=>g.current.onDrop?.(e)),n.on(`layout`,e=>x(e))];return()=>{r.forEach(e=>e()),n.destroy(),h.current=null}},[]),(0,t.useEffect)(()=>{w.current!==C&&(w.current=C,h.current?.setOptions(C))},[C]),(0,t.useImperativeHandle)(u,()=>({resetZoom:()=>h.current?.resetZoom(),getView:()=>h.current?.getView()??null,setView:e=>h.current?.setView(e),getRenderer:()=>h.current?.getRenderer()??null,getInstance:()=>h.current}),[]),(0,r.jsxs)(`div`,{className:c,style:{position:`relative`,width:i(s,`100%`),height:i(o,`320px`),...l},children:[(0,r.jsx)(`div`,{ref:m,style:{position:`absolute`,inset:0}}),f&&b&&(0,r.jsx)(`div`,{className:`minerva-chart-overlay`,style:{position:`absolute`,left:b.x,top:b.y,width:b.width,height:b.height,pointerEvents:`none`},children:f(b)}),S&&v&&d&&(0,n.createPortal)(d(v),S)]})}function s(e){let{height:t,width:n,className:i,style:s,ref:c,onHover:l,onPointClick:u,onPlotClick:d,onZoom:f,onRendererChange:p,renderTooltip:m}=e;return(0,r.jsx)(o,{options:a(e),height:t,width:n,className:i,style:s,handleRef:c,onHover:l,onPointClick:u,onPlotClick:d,onZoom:f,onRendererChange:p,renderTooltip:m})}exports.Chart=s,exports.ChartBase=o,exports.engineOptions=a;
2
+ //# sourceMappingURL=Chart.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Chart.cjs","names":["useRef","useState","useMemo","createChart","createPortal","require_chart","react","react_dom","react_jsx_runtime","size","value","fallback","engineOptions","props","ChartBase","handlers","containerRef","chartRef","handlersRef","tooltipRef","renderTooltip","tipEvent","setTipEvent","plot","setPlot","tipHost","resolved","options","base","event","optionsRef","container","chart","offs","v","r","rect","off","handleRef","view","width","height","style","overlay","Chart","ref"],"sources":["../../../../charts/src/react/Chart.tsx"],"sourcesContent":["import {\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n type ReactNode,\n} from \"react\";\nimport { createPortal, flushSync } from \"react-dom\";\nimport { createChart } from \"../engine/chart\";\nimport type {\n ChartDragEvent,\n ChartHoverEvent,\n ChartInstance,\n ChartOptions,\n ChartPlotClickEvent,\n ChartRect,\n ChartRendererKind,\n ChartView,\n} from \"../engine/types\";\nimport type { ChartCommonProps, ChartProps } from \"./types\";\n\ninterface Handlers {\n onHover?: (event: ChartHoverEvent | null) => void;\n onPointClick?: (event: ChartHoverEvent) => void;\n onPlotClick?: (event: ChartPlotClickEvent) => void;\n onZoom?: (view: ChartView) => void;\n onRendererChange?: (renderer: ChartRendererKind) => void;\n onDrag?: (event: ChartDragEvent) => void;\n onDrop?: (event: ChartDragEvent) => void;\n}\n\nconst size = (value: number | string | undefined, fallback: string) =>\n value === undefined\n ? fallback\n : typeof value === \"number\"\n ? `${value}px`\n : value;\n\n/** Engine options of the common props */\nexport const engineOptions = (\n props: Pick<\n ChartCommonProps,\n | \"xAxis\"\n | \"yAxis\"\n | \"renderer\"\n | \"legend\"\n | \"tooltip\"\n | \"crosshair\"\n | \"annotations\"\n | \"interaction\"\n | \"padding\"\n | \"palette\"\n | \"ariaLabel\"\n > &\n Pick<ChartOptions, \"series\">,\n): ChartOptions => ({\n series: props.series,\n xAxis: props.xAxis,\n yAxis: props.yAxis,\n renderer: props.renderer,\n legend: props.legend,\n tooltip: props.tooltip,\n crosshair: props.crosshair,\n annotations: props.annotations,\n interaction: props.interaction,\n padding: props.padding,\n palette: props.palette,\n ariaLabel: props.ariaLabel,\n});\n\ninterface ChartBaseProps extends Handlers {\n options: ChartOptions;\n height?: number | string;\n width?: number | string;\n className?: string;\n style?: CSSProperties;\n handleRef?: ChartCommonProps[\"ref\"];\n /** React content of the tooltip (replaces the engine's content) */\n renderTooltip?: (event: ChartHoverEvent) => ReactNode;\n /** React content placed over the chart, given the plot area */\n overlay?: (plot: ChartRect) => ReactNode;\n}\n\n/** Mounts the engine in a sized <div> and forwards option / handler changes */\nexport function ChartBase({\n options,\n height,\n width,\n className,\n style,\n handleRef,\n renderTooltip,\n overlay,\n ...handlers\n}: ChartBaseProps) {\n const containerRef = useRef<HTMLDivElement>(null);\n const chartRef = useRef<ChartInstance | null>(null);\n const handlersRef = useRef<Handlers>(handlers);\n const tooltipRef = useRef(renderTooltip);\n const [tipEvent, setTipEvent] = useState<ChartHoverEvent | null>(null);\n const [plot, setPlot] = useState<ChartRect | null>(null);\n const tipHost = useMemo(\n () =>\n typeof document === \"undefined\" ? null : document.createElement(\"div\"),\n [],\n );\n\n const resolved = useMemo((): ChartOptions => {\n if (!renderTooltip || !tipHost || options.tooltip === false) return options;\n const base = typeof options.tooltip === \"object\" ? options.tooltip : {};\n return {\n ...options,\n tooltip: {\n ...base,\n render: (event) => {\n if (!tooltipRef.current) return null;\n // render synchronously so the engine measures the final size\n flushSync(() => setTipEvent(event));\n return tipHost;\n },\n },\n };\n }, [options, renderTooltip, tipHost]);\n const optionsRef = useRef(resolved);\n\n useEffect(() => {\n handlersRef.current = handlers;\n tooltipRef.current = renderTooltip;\n });\n\n useEffect(() => {\n const container = containerRef.current;\n if (!container) return;\n const chart = createChart(container, optionsRef.current);\n chartRef.current = chart;\n const offs = [\n chart.on(\"hover\", (e) => handlersRef.current.onHover?.(e)),\n chart.on(\"click\", (e) => handlersRef.current.onPointClick?.(e)),\n chart.on(\"plotClick\", (e) => handlersRef.current.onPlotClick?.(e)),\n chart.on(\"zoom\", (v) => handlersRef.current.onZoom?.(v)),\n chart.on(\"renderer\", (r) => handlersRef.current.onRendererChange?.(r)),\n chart.on(\"drag\", (e) => handlersRef.current.onDrag?.(e)),\n chart.on(\"drop\", (e) => handlersRef.current.onDrop?.(e)),\n chart.on(\"layout\", (rect) => setPlot(rect)),\n ];\n return () => {\n offs.forEach((off) => off());\n chart.destroy();\n chartRef.current = null;\n };\n }, []);\n\n useEffect(() => {\n if (optionsRef.current === resolved) return;\n optionsRef.current = resolved;\n chartRef.current?.setOptions(resolved);\n }, [resolved]);\n\n useImperativeHandle(\n handleRef,\n () => ({\n resetZoom: () => chartRef.current?.resetZoom(),\n getView: () => chartRef.current?.getView() ?? null,\n setView: (view) => chartRef.current?.setView(view),\n getRenderer: () => chartRef.current?.getRenderer() ?? null,\n getInstance: () => chartRef.current,\n }),\n [],\n );\n\n return (\n <div\n className={className}\n style={{\n position: \"relative\",\n width: size(width, \"100%\"),\n height: size(height, \"320px\"),\n ...style,\n }}\n >\n <div ref={containerRef} style={{ position: \"absolute\", inset: 0 }} />\n {overlay && plot && (\n <div\n className=\"minerva-chart-overlay\"\n style={{\n position: \"absolute\",\n left: plot.x,\n top: plot.y,\n width: plot.width,\n height: plot.height,\n pointerEvents: \"none\",\n }}\n >\n {overlay(plot)}\n </div>\n )}\n {tipHost &&\n tipEvent &&\n renderTooltip &&\n createPortal(renderTooltip(tipEvent), tipHost)}\n </div>\n );\n}\n\n/**\n * GPU chart (WebGPU, then WebGL2, then Canvas2D) mixing line, area, bar and\n * scatter series; zoomable, keyboard accessible and themed by the Minerva\n * CSS variables.\n */\nexport function Chart(props: ChartProps) {\n const {\n height,\n width,\n className,\n style,\n ref,\n onHover,\n onPointClick,\n onPlotClick,\n onZoom,\n onRendererChange,\n renderTooltip,\n } = props;\n return (\n <ChartBase\n options={engineOptions(props)}\n height={height}\n width={width}\n className={className}\n style={style}\n handleRef={ref}\n onHover={onHover}\n onPointClick={onPointClick}\n onPlotClick={onPlotClick}\n onZoom={onZoom}\n onRendererChange={onRendererChange}\n renderTooltip={renderTooltip}\n />\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import { CSSProperties, ReactNode } from 'react';
2
+ import { ChartDragEvent, ChartHoverEvent, ChartOptions, ChartPlotClickEvent, ChartRect, ChartRendererKind, ChartView } from '../engine/types.cjs';
3
+ import { ChartCommonProps, ChartProps } from './types.cjs';
4
+ interface Handlers {
5
+ onHover?: (event: ChartHoverEvent | null) => void;
6
+ onPointClick?: (event: ChartHoverEvent) => void;
7
+ onPlotClick?: (event: ChartPlotClickEvent) => void;
8
+ onZoom?: (view: ChartView) => void;
9
+ onRendererChange?: (renderer: ChartRendererKind) => void;
10
+ onDrag?: (event: ChartDragEvent) => void;
11
+ onDrop?: (event: ChartDragEvent) => void;
12
+ }
13
+ /** Engine options of the common props */
14
+ export declare const engineOptions: (props: Pick<ChartCommonProps, "xAxis" | "yAxis" | "renderer" | "legend" | "tooltip" | "crosshair" | "annotations" | "interaction" | "padding" | "palette" | "ariaLabel"> & Pick<ChartOptions, "series">) => ChartOptions;
15
+ interface ChartBaseProps extends Handlers {
16
+ options: ChartOptions;
17
+ height?: number | string;
18
+ width?: number | string;
19
+ className?: string;
20
+ style?: CSSProperties;
21
+ handleRef?: ChartCommonProps["ref"];
22
+ /** React content of the tooltip (replaces the engine's content) */
23
+ renderTooltip?: (event: ChartHoverEvent) => ReactNode;
24
+ /** React content placed over the chart, given the plot area */
25
+ overlay?: (plot: ChartRect) => ReactNode;
26
+ }
27
+ /** Mounts the engine in a sized <div> and forwards option / handler changes */
28
+ export declare function ChartBase({ options, height, width, className, style, handleRef, renderTooltip, overlay, ...handlers }: ChartBaseProps): import('react').JSX.Element;
29
+ /**
30
+ * GPU chart (WebGPU, then WebGL2, then Canvas2D) mixing line, area, bar and
31
+ * scatter series; zoomable, keyboard accessible and themed by the Minerva
32
+ * CSS variables.
33
+ */
34
+ export declare function Chart(props: ChartProps): import('react').JSX.Element;
35
+ export {};
@@ -0,0 +1,35 @@
1
+ import { CSSProperties, ReactNode } from 'react';
2
+ import { ChartDragEvent, ChartHoverEvent, ChartOptions, ChartPlotClickEvent, ChartRect, ChartRendererKind, ChartView } from '../engine/types.js';
3
+ import { ChartCommonProps, ChartProps } from './types.js';
4
+ interface Handlers {
5
+ onHover?: (event: ChartHoverEvent | null) => void;
6
+ onPointClick?: (event: ChartHoverEvent) => void;
7
+ onPlotClick?: (event: ChartPlotClickEvent) => void;
8
+ onZoom?: (view: ChartView) => void;
9
+ onRendererChange?: (renderer: ChartRendererKind) => void;
10
+ onDrag?: (event: ChartDragEvent) => void;
11
+ onDrop?: (event: ChartDragEvent) => void;
12
+ }
13
+ /** Engine options of the common props */
14
+ export declare const engineOptions: (props: Pick<ChartCommonProps, "xAxis" | "yAxis" | "renderer" | "legend" | "tooltip" | "crosshair" | "annotations" | "interaction" | "padding" | "palette" | "ariaLabel"> & Pick<ChartOptions, "series">) => ChartOptions;
15
+ interface ChartBaseProps extends Handlers {
16
+ options: ChartOptions;
17
+ height?: number | string;
18
+ width?: number | string;
19
+ className?: string;
20
+ style?: CSSProperties;
21
+ handleRef?: ChartCommonProps["ref"];
22
+ /** React content of the tooltip (replaces the engine's content) */
23
+ renderTooltip?: (event: ChartHoverEvent) => ReactNode;
24
+ /** React content placed over the chart, given the plot area */
25
+ overlay?: (plot: ChartRect) => ReactNode;
26
+ }
27
+ /** Mounts the engine in a sized <div> and forwards option / handler changes */
28
+ export declare function ChartBase({ options, height, width, className, style, handleRef, renderTooltip, overlay, ...handlers }: ChartBaseProps): import('react').JSX.Element;
29
+ /**
30
+ * GPU chart (WebGPU, then WebGL2, then Canvas2D) mixing line, area, bar and
31
+ * scatter series; zoomable, keyboard accessible and themed by the Minerva
32
+ * CSS variables.
33
+ */
34
+ export declare function Chart(props: ChartProps): import('react').JSX.Element;
35
+ export {};