minerva-design 1.1.0 → 1.3.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 (385) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/charts/canvas.d.cts +10 -0
  3. package/dist/charts/canvas.d.ts +10 -0
  4. package/dist/charts/core.cjs +1 -1
  5. package/dist/charts/core.d.cts +8 -1
  6. package/dist/charts/core.d.ts +8 -1
  7. package/dist/charts/core.js +6 -1
  8. package/dist/charts/engine/canvas.cjs +2 -0
  9. package/dist/charts/engine/canvas.cjs.map +1 -0
  10. package/dist/charts/engine/canvas.d.cts +85 -0
  11. package/dist/charts/engine/canvas.d.ts +85 -0
  12. package/dist/charts/engine/canvas.js +177 -0
  13. package/dist/charts/engine/canvas.js.map +1 -0
  14. package/dist/charts/engine/chart.cjs +1 -2
  15. package/dist/charts/engine/chart.cjs.map +1 -1
  16. package/dist/charts/engine/chart.js +450 -489
  17. package/dist/charts/engine/chart.js.map +1 -1
  18. package/dist/charts/engine/color.cjs +1 -1
  19. package/dist/charts/engine/color.cjs.map +1 -1
  20. package/dist/charts/engine/color.d.cts +27 -0
  21. package/dist/charts/engine/color.d.ts +27 -0
  22. package/dist/charts/engine/color.js +100 -4
  23. package/dist/charts/engine/color.js.map +1 -1
  24. package/dist/charts/engine/controller.cjs +3 -0
  25. package/dist/charts/engine/controller.cjs.map +1 -0
  26. package/dist/charts/engine/controller.d.cts +188 -0
  27. package/dist/charts/engine/controller.d.ts +188 -0
  28. package/dist/charts/engine/controller.js +592 -0
  29. package/dist/charts/engine/controller.js.map +1 -0
  30. package/dist/charts/engine/curve.cjs +2 -0
  31. package/dist/charts/engine/curve.cjs.map +1 -0
  32. package/dist/charts/engine/curve.d.cts +15 -0
  33. package/dist/charts/engine/curve.d.ts +15 -0
  34. package/dist/charts/engine/curve.js +56 -0
  35. package/dist/charts/engine/curve.js.map +1 -0
  36. package/dist/charts/engine/data.cjs +1 -1
  37. package/dist/charts/engine/data.cjs.map +1 -1
  38. package/dist/charts/engine/data.d.cts +15 -2
  39. package/dist/charts/engine/data.d.ts +15 -2
  40. package/dist/charts/engine/data.js +98 -38
  41. package/dist/charts/engine/data.js.map +1 -1
  42. package/dist/charts/engine/dom.cjs +1 -1
  43. package/dist/charts/engine/dom.cjs.map +1 -1
  44. package/dist/charts/engine/dom.d.cts +5 -3
  45. package/dist/charts/engine/dom.d.ts +5 -3
  46. package/dist/charts/engine/dom.js +27 -22
  47. package/dist/charts/engine/dom.js.map +1 -1
  48. package/dist/charts/engine/items.cjs +1 -1
  49. package/dist/charts/engine/items.cjs.map +1 -1
  50. package/dist/charts/engine/items.js +132 -61
  51. package/dist/charts/engine/items.js.map +1 -1
  52. package/dist/charts/engine/model.cjs +1 -1
  53. package/dist/charts/engine/model.cjs.map +1 -1
  54. package/dist/charts/engine/model.d.cts +32 -5
  55. package/dist/charts/engine/model.d.ts +32 -5
  56. package/dist/charts/engine/model.js +226 -109
  57. package/dist/charts/engine/model.js.map +1 -1
  58. package/dist/charts/engine/overlay.cjs +1 -1
  59. package/dist/charts/engine/overlay.cjs.map +1 -1
  60. package/dist/charts/engine/overlay.d.cts +19 -1
  61. package/dist/charts/engine/overlay.d.ts +19 -1
  62. package/dist/charts/engine/overlay.js +77 -63
  63. package/dist/charts/engine/overlay.js.map +1 -1
  64. package/dist/charts/engine/presets.cjs +3 -0
  65. package/dist/charts/engine/presets.cjs.map +1 -0
  66. package/dist/charts/engine/presets.d.cts +169 -0
  67. package/dist/charts/engine/presets.d.ts +169 -0
  68. package/dist/charts/engine/presets.js +240 -0
  69. package/dist/charts/engine/presets.js.map +1 -0
  70. package/dist/charts/engine/renderers/canvas2d.cjs +1 -1
  71. package/dist/charts/engine/renderers/canvas2d.cjs.map +1 -1
  72. package/dist/charts/engine/renderers/canvas2d.d.cts +17 -1
  73. package/dist/charts/engine/renderers/canvas2d.d.ts +17 -1
  74. package/dist/charts/engine/renderers/canvas2d.js +176 -101
  75. package/dist/charts/engine/renderers/canvas2d.js.map +1 -1
  76. package/dist/charts/engine/renderers/range.cjs +1 -1
  77. package/dist/charts/engine/renderers/range.cjs.map +1 -1
  78. package/dist/charts/engine/renderers/range.js +4 -4
  79. package/dist/charts/engine/renderers/range.js.map +1 -1
  80. package/dist/charts/engine/renderers/shaders.cjs +37 -19
  81. package/dist/charts/engine/renderers/shaders.cjs.map +1 -1
  82. package/dist/charts/engine/renderers/shaders.d.cts +2 -2
  83. package/dist/charts/engine/renderers/shaders.d.ts +2 -2
  84. package/dist/charts/engine/renderers/shaders.js +37 -19
  85. package/dist/charts/engine/renderers/shaders.js.map +1 -1
  86. package/dist/charts/engine/renderers/types.cjs.map +1 -1
  87. package/dist/charts/engine/renderers/types.d.cts +11 -4
  88. package/dist/charts/engine/renderers/types.d.ts +11 -4
  89. package/dist/charts/engine/renderers/types.js.map +1 -1
  90. package/dist/charts/engine/renderers/webgl2.cjs +1 -1
  91. package/dist/charts/engine/renderers/webgl2.cjs.map +1 -1
  92. package/dist/charts/engine/renderers/webgl2.js +33 -12
  93. package/dist/charts/engine/renderers/webgl2.js.map +1 -1
  94. package/dist/charts/engine/renderers/webgpu.cjs +1 -1
  95. package/dist/charts/engine/renderers/webgpu.cjs.map +1 -1
  96. package/dist/charts/engine/renderers/webgpu.js +18 -15
  97. package/dist/charts/engine/renderers/webgpu.js.map +1 -1
  98. package/dist/charts/engine/scene.cjs +2 -0
  99. package/dist/charts/engine/scene.cjs.map +1 -0
  100. package/dist/charts/engine/scene.d.cts +102 -0
  101. package/dist/charts/engine/scene.d.ts +102 -0
  102. package/dist/charts/engine/scene.js +353 -0
  103. package/dist/charts/engine/scene.js.map +1 -0
  104. package/dist/charts/engine/shapes/canvas.cjs +2 -0
  105. package/dist/charts/engine/shapes/canvas.cjs.map +1 -0
  106. package/dist/charts/engine/shapes/canvas.d.cts +58 -0
  107. package/dist/charts/engine/shapes/canvas.d.ts +58 -0
  108. package/dist/charts/engine/shapes/canvas.js +159 -0
  109. package/dist/charts/engine/shapes/canvas.js.map +1 -0
  110. package/dist/charts/engine/shapes/chart.cjs +2 -0
  111. package/dist/charts/engine/shapes/chart.cjs.map +1 -0
  112. package/dist/charts/engine/shapes/chart.d.cts +6 -0
  113. package/dist/charts/engine/shapes/chart.d.ts +6 -0
  114. package/dist/charts/engine/shapes/chart.js +273 -0
  115. package/dist/charts/engine/shapes/chart.js.map +1 -0
  116. package/dist/charts/engine/shapes/draw.cjs +2 -0
  117. package/dist/charts/engine/shapes/draw.cjs.map +1 -0
  118. package/dist/charts/engine/shapes/draw.d.cts +20 -0
  119. package/dist/charts/engine/shapes/draw.d.ts +20 -0
  120. package/dist/charts/engine/shapes/draw.js +152 -0
  121. package/dist/charts/engine/shapes/draw.js.map +1 -0
  122. package/dist/charts/engine/shapes/funnel.cjs +2 -0
  123. package/dist/charts/engine/shapes/funnel.cjs.map +1 -0
  124. package/dist/charts/engine/shapes/funnel.d.cts +6 -0
  125. package/dist/charts/engine/shapes/funnel.d.ts +6 -0
  126. package/dist/charts/engine/shapes/funnel.js +149 -0
  127. package/dist/charts/engine/shapes/funnel.js.map +1 -0
  128. package/dist/charts/engine/shapes/gauge.cjs +2 -0
  129. package/dist/charts/engine/shapes/gauge.cjs.map +1 -0
  130. package/dist/charts/engine/shapes/gauge.d.cts +7 -0
  131. package/dist/charts/engine/shapes/gauge.d.ts +7 -0
  132. package/dist/charts/engine/shapes/gauge.js +173 -0
  133. package/dist/charts/engine/shapes/gauge.js.map +1 -0
  134. package/dist/charts/engine/shapes/hit.cjs +2 -0
  135. package/dist/charts/engine/shapes/hit.cjs.map +1 -0
  136. package/dist/charts/engine/shapes/hit.d.cts +28 -0
  137. package/dist/charts/engine/shapes/hit.d.ts +28 -0
  138. package/dist/charts/engine/shapes/hit.js +124 -0
  139. package/dist/charts/engine/shapes/hit.js.map +1 -0
  140. package/dist/charts/engine/shapes/index.d.cts +9 -0
  141. package/dist/charts/engine/shapes/index.d.ts +9 -0
  142. package/dist/charts/engine/shapes/layout.cjs +3 -0
  143. package/dist/charts/engine/shapes/layout.cjs.map +1 -0
  144. package/dist/charts/engine/shapes/layout.d.cts +88 -0
  145. package/dist/charts/engine/shapes/layout.d.ts +88 -0
  146. package/dist/charts/engine/shapes/layout.js +266 -0
  147. package/dist/charts/engine/shapes/layout.js.map +1 -0
  148. package/dist/charts/engine/shapes/pie.cjs +2 -0
  149. package/dist/charts/engine/shapes/pie.cjs.map +1 -0
  150. package/dist/charts/engine/shapes/pie.d.cts +20 -0
  151. package/dist/charts/engine/shapes/pie.d.ts +20 -0
  152. package/dist/charts/engine/shapes/pie.js +302 -0
  153. package/dist/charts/engine/shapes/pie.js.map +1 -0
  154. package/dist/charts/engine/shapes/radar.cjs +2 -0
  155. package/dist/charts/engine/shapes/radar.cjs.map +1 -0
  156. package/dist/charts/engine/shapes/radar.d.cts +8 -0
  157. package/dist/charts/engine/shapes/radar.d.ts +8 -0
  158. package/dist/charts/engine/shapes/radar.js +197 -0
  159. package/dist/charts/engine/shapes/radar.js.map +1 -0
  160. package/dist/charts/engine/shapes/runtime.cjs +2 -0
  161. package/dist/charts/engine/shapes/runtime.cjs.map +1 -0
  162. package/dist/charts/engine/shapes/runtime.d.cts +29 -0
  163. package/dist/charts/engine/shapes/runtime.d.ts +29 -0
  164. package/dist/charts/engine/shapes/runtime.js +97 -0
  165. package/dist/charts/engine/shapes/runtime.js.map +1 -0
  166. package/dist/charts/engine/shapes/scene.cjs +2 -0
  167. package/dist/charts/engine/shapes/scene.cjs.map +1 -0
  168. package/dist/charts/engine/shapes/scene.d.cts +257 -0
  169. package/dist/charts/engine/shapes/scene.d.ts +257 -0
  170. package/dist/charts/engine/shapes/scene.js +123 -0
  171. package/dist/charts/engine/shapes/scene.js.map +1 -0
  172. package/dist/charts/engine/shapes/treemap.cjs +2 -0
  173. package/dist/charts/engine/shapes/treemap.cjs.map +1 -0
  174. package/dist/charts/engine/shapes/treemap.d.cts +14 -0
  175. package/dist/charts/engine/shapes/treemap.d.ts +14 -0
  176. package/dist/charts/engine/shapes/treemap.js +213 -0
  177. package/dist/charts/engine/shapes/treemap.js.map +1 -0
  178. package/dist/charts/engine/shapes/types.d.cts +292 -0
  179. package/dist/charts/engine/shapes/types.d.ts +292 -0
  180. package/dist/charts/engine/signature.cjs +2 -0
  181. package/dist/charts/engine/signature.cjs.map +1 -0
  182. package/dist/charts/engine/signature.d.cts +9 -0
  183. package/dist/charts/engine/signature.d.ts +9 -0
  184. package/dist/charts/engine/signature.js +13 -0
  185. package/dist/charts/engine/signature.js.map +1 -0
  186. package/dist/charts/engine/theme.cjs +1 -1
  187. package/dist/charts/engine/theme.cjs.map +1 -1
  188. package/dist/charts/engine/theme.d.cts +35 -2
  189. package/dist/charts/engine/theme.d.ts +35 -2
  190. package/dist/charts/engine/theme.js +66 -26
  191. package/dist/charts/engine/theme.js.map +1 -1
  192. package/dist/charts/engine/types.d.cts +139 -11
  193. package/dist/charts/engine/types.d.ts +139 -11
  194. package/dist/charts/index.cjs +1 -1
  195. package/dist/charts/index.d.cts +4 -2
  196. package/dist/charts/index.d.ts +4 -2
  197. package/dist/charts/index.js +8 -2
  198. package/dist/charts/react/Chart.cjs +1 -1
  199. package/dist/charts/react/Chart.cjs.map +1 -1
  200. package/dist/charts/react/Chart.d.cts +18 -4
  201. package/dist/charts/react/Chart.d.ts +18 -4
  202. package/dist/charts/react/Chart.js +102 -41
  203. package/dist/charts/react/Chart.js.map +1 -1
  204. package/dist/charts/react/charts.cjs +1 -1
  205. package/dist/charts/react/charts.cjs.map +1 -1
  206. package/dist/charts/react/charts.d.cts +11 -3
  207. package/dist/charts/react/charts.d.ts +11 -3
  208. package/dist/charts/react/charts.js +221 -144
  209. package/dist/charts/react/charts.js.map +1 -1
  210. package/dist/charts/react/shapes.cjs +2 -0
  211. package/dist/charts/react/shapes.cjs.map +1 -0
  212. package/dist/charts/react/shapes.d.cts +255 -0
  213. package/dist/charts/react/shapes.d.ts +255 -0
  214. package/dist/charts/react/shapes.js +242 -0
  215. package/dist/charts/react/shapes.js.map +1 -0
  216. package/dist/charts/react/types.d.cts +100 -63
  217. package/dist/charts/react/types.d.ts +100 -63
  218. package/dist/native/charts/src/canvas.cjs +1 -0
  219. package/dist/native/charts/src/canvas.js +6 -0
  220. package/dist/native/charts/src/engine/axis.cjs +2 -0
  221. package/dist/native/charts/src/engine/axis.cjs.map +1 -0
  222. package/dist/native/charts/src/engine/axis.js +38 -0
  223. package/dist/native/charts/src/engine/axis.js.map +1 -0
  224. package/dist/native/charts/src/engine/canvas.cjs +1 -0
  225. package/dist/native/charts/src/engine/canvas.js +1 -0
  226. package/dist/native/charts/src/engine/color.cjs +2 -0
  227. package/dist/native/charts/src/engine/color.cjs.map +1 -0
  228. package/dist/native/charts/src/engine/color.js +139 -0
  229. package/dist/native/charts/src/engine/color.js.map +1 -0
  230. package/dist/native/charts/src/engine/controller.cjs +3 -0
  231. package/dist/native/charts/src/engine/controller.cjs.map +1 -0
  232. package/dist/native/charts/src/engine/controller.js +592 -0
  233. package/dist/native/charts/src/engine/controller.js.map +1 -0
  234. package/dist/native/charts/src/engine/curve.cjs +2 -0
  235. package/dist/native/charts/src/engine/curve.cjs.map +1 -0
  236. package/dist/native/charts/src/engine/curve.js +56 -0
  237. package/dist/native/charts/src/engine/curve.js.map +1 -0
  238. package/dist/native/charts/src/engine/data.cjs +2 -0
  239. package/dist/native/charts/src/engine/data.cjs.map +1 -0
  240. package/dist/native/charts/src/engine/data.js +164 -0
  241. package/dist/native/charts/src/engine/data.js.map +1 -0
  242. package/dist/native/charts/src/engine/decimate.cjs +2 -0
  243. package/dist/native/charts/src/engine/decimate.cjs.map +1 -0
  244. package/dist/native/charts/src/engine/decimate.js +28 -0
  245. package/dist/native/charts/src/engine/decimate.js.map +1 -0
  246. package/dist/native/charts/src/engine/format.cjs +2 -0
  247. package/dist/native/charts/src/engine/format.cjs.map +1 -0
  248. package/dist/native/charts/src/engine/format.js +34 -0
  249. package/dist/native/charts/src/engine/format.js.map +1 -0
  250. package/dist/native/charts/src/engine/layout.cjs +2 -0
  251. package/dist/native/charts/src/engine/layout.cjs.map +1 -0
  252. package/dist/native/charts/src/engine/layout.js +26 -0
  253. package/dist/native/charts/src/engine/layout.js.map +1 -0
  254. package/dist/native/charts/src/engine/model.cjs +2 -0
  255. package/dist/native/charts/src/engine/model.cjs.map +1 -0
  256. package/dist/native/charts/src/engine/model.js +292 -0
  257. package/dist/native/charts/src/engine/model.js.map +1 -0
  258. package/dist/native/charts/src/engine/overlay.cjs +2 -0
  259. package/dist/native/charts/src/engine/overlay.cjs.map +1 -0
  260. package/dist/native/charts/src/engine/overlay.js +49 -0
  261. package/dist/native/charts/src/engine/overlay.js.map +1 -0
  262. package/dist/native/charts/src/engine/presets.cjs +3 -0
  263. package/dist/native/charts/src/engine/presets.cjs.map +1 -0
  264. package/dist/native/charts/src/engine/presets.js +154 -0
  265. package/dist/native/charts/src/engine/presets.js.map +1 -0
  266. package/dist/native/charts/src/engine/scale.cjs +2 -0
  267. package/dist/native/charts/src/engine/scale.cjs.map +1 -0
  268. package/dist/native/charts/src/engine/scale.js +37 -0
  269. package/dist/native/charts/src/engine/scale.js.map +1 -0
  270. package/dist/native/charts/src/engine/scene.cjs +2 -0
  271. package/dist/native/charts/src/engine/scene.cjs.map +1 -0
  272. package/dist/native/charts/src/engine/scene.js +353 -0
  273. package/dist/native/charts/src/engine/scene.js.map +1 -0
  274. package/dist/native/charts/src/engine/spatial.cjs +2 -0
  275. package/dist/native/charts/src/engine/spatial.cjs.map +1 -0
  276. package/dist/native/charts/src/engine/spatial.js +53 -0
  277. package/dist/native/charts/src/engine/spatial.js.map +1 -0
  278. package/dist/native/charts/src/engine/theme.cjs +2 -0
  279. package/dist/native/charts/src/engine/theme.cjs.map +1 -0
  280. package/dist/native/charts/src/engine/theme.js +62 -0
  281. package/dist/native/charts/src/engine/theme.js.map +1 -0
  282. package/dist/native/charts/src/engine/time.cjs +2 -0
  283. package/dist/native/charts/src/engine/time.cjs.map +1 -0
  284. package/dist/native/charts/src/engine/time.js +189 -0
  285. package/dist/native/charts/src/engine/time.js.map +1 -0
  286. package/dist/native/charts/src/engine/viewport.cjs +2 -0
  287. package/dist/native/charts/src/engine/viewport.cjs.map +1 -0
  288. package/dist/native/charts/src/engine/viewport.js +12 -0
  289. package/dist/native/charts/src/engine/viewport.js.map +1 -0
  290. package/dist/native/components/Chart/ChartBase.cjs +2 -0
  291. package/dist/native/components/Chart/ChartBase.cjs.map +1 -0
  292. package/dist/native/components/Chart/ChartBase.d.cts +29 -0
  293. package/dist/native/components/Chart/ChartBase.d.ts +29 -0
  294. package/dist/native/components/Chart/ChartBase.js +287 -0
  295. package/dist/native/components/Chart/ChartBase.js.map +1 -0
  296. package/dist/native/components/Chart/charts.cjs +2 -0
  297. package/dist/native/components/Chart/charts.cjs.map +1 -0
  298. package/dist/native/components/Chart/charts.d.cts +19 -0
  299. package/dist/native/components/Chart/charts.d.ts +19 -0
  300. package/dist/native/components/Chart/charts.js +173 -0
  301. package/dist/native/components/Chart/charts.js.map +1 -0
  302. package/dist/native/components/Chart/index.cjs +1 -0
  303. package/dist/native/components/Chart/index.d.cts +2 -0
  304. package/dist/native/components/Chart/index.d.ts +2 -0
  305. package/dist/native/components/Chart/index.js +2 -0
  306. package/dist/native/components/Chart/measure.cjs +2 -0
  307. package/dist/native/components/Chart/measure.cjs.map +1 -0
  308. package/dist/native/components/Chart/measure.d.cts +5 -0
  309. package/dist/native/components/Chart/measure.d.ts +5 -0
  310. package/dist/native/components/Chart/measure.js +11 -0
  311. package/dist/native/components/Chart/measure.js.map +1 -0
  312. package/dist/native/components/Chart/scene.cjs +2 -0
  313. package/dist/native/components/Chart/scene.cjs.map +1 -0
  314. package/dist/native/components/Chart/scene.d.cts +41 -0
  315. package/dist/native/components/Chart/scene.d.ts +41 -0
  316. package/dist/native/components/Chart/scene.js +431 -0
  317. package/dist/native/components/Chart/scene.js.map +1 -0
  318. package/dist/native/components/Chart/theme.cjs +2 -0
  319. package/dist/native/components/Chart/theme.cjs.map +1 -0
  320. package/dist/native/components/Chart/theme.d.cts +10 -0
  321. package/dist/native/components/Chart/theme.d.ts +10 -0
  322. package/dist/native/components/Chart/theme.js +10 -0
  323. package/dist/native/components/Chart/theme.js.map +1 -0
  324. package/dist/native/components/Chart/types.d.cts +129 -0
  325. package/dist/native/components/Chart/types.d.ts +129 -0
  326. package/dist/native/index.cjs +1 -1
  327. package/dist/native/index.d.cts +1 -0
  328. package/dist/native/index.d.ts +1 -0
  329. package/dist/native/index.js +6 -4
  330. package/dist/native/manifest.d.cts +7 -0
  331. package/dist/native/manifest.d.ts +7 -0
  332. package/dist/native/source/components/Chart/ChartBase.tsx +545 -0
  333. package/dist/native/source/components/Chart/charts.tsx +291 -0
  334. package/dist/native/source/components/Chart/index.ts +8 -0
  335. package/dist/native/source/components/Chart/measure.ts +50 -0
  336. package/dist/native/source/components/Chart/scene.tsx +1021 -0
  337. package/dist/native/source/components/Chart/theme.ts +16 -0
  338. package/dist/native/source/components/Chart/types.ts +194 -0
  339. package/dist/native/source/index.ts +1 -0
  340. package/dist/native/source/manifest.ts +14 -0
  341. package/dist/taro/charts.d.ts +144 -0
  342. package/dist/taro/index.d.ts +1 -0
  343. package/dist/taro/index.js +3544 -618
  344. package/dist/uni/BarChart.vue +75 -0
  345. package/dist/uni/BarChart.vue.d.ts +111 -0
  346. package/dist/uni/Chart.vue +68 -0
  347. package/dist/uni/Chart.vue.d.ts +100 -0
  348. package/dist/uni/LineChart.vue +75 -0
  349. package/dist/uni/LineChart.vue.d.ts +111 -0
  350. package/dist/uni/ProgressIndicator.vue.d.ts +1 -1
  351. package/dist/uni/QuadrantChart.vue +184 -0
  352. package/dist/uni/QuadrantChart.vue.d.ts +173 -0
  353. package/dist/uni/ScatterChart.vue +69 -0
  354. package/dist/uni/ScatterChart.vue.d.ts +100 -0
  355. package/dist/uni/chart-canvas.d.ts +68 -0
  356. package/dist/uni/chart-canvas.js +363 -0
  357. package/dist/uni/chart-types.d.ts +135 -0
  358. package/dist/uni/chart-types.js +84 -0
  359. package/dist/uni/charts-canvas.d.ts +1 -0
  360. package/dist/uni/charts-canvas.js +10 -0
  361. package/dist/uni/index.d.ts +6 -0
  362. package/dist/uni/index.js +6 -0
  363. package/dist/weapp/bar-chart/index.js +1 -0
  364. package/dist/weapp/bar-chart/index.json +1 -0
  365. package/dist/weapp/bar-chart/index.wxml +1 -0
  366. package/dist/weapp/bar-chart/index.wxss +1 -0
  367. package/dist/weapp/chart/index.js +1 -0
  368. package/dist/weapp/chart/index.json +1 -0
  369. package/dist/weapp/chart/index.wxml +1 -0
  370. package/dist/weapp/chart/index.wxss +1 -0
  371. package/dist/weapp/controls.js +4760 -266
  372. package/dist/weapp/line-chart/index.js +1 -0
  373. package/dist/weapp/line-chart/index.json +1 -0
  374. package/dist/weapp/line-chart/index.wxml +1 -0
  375. package/dist/weapp/line-chart/index.wxss +1 -0
  376. package/dist/weapp/quadrant-chart/index.js +1 -0
  377. package/dist/weapp/quadrant-chart/index.json +1 -0
  378. package/dist/weapp/quadrant-chart/index.wxml +1 -0
  379. package/dist/weapp/quadrant-chart/index.wxss +1 -0
  380. package/dist/weapp/scatter-chart/index.js +1 -0
  381. package/dist/weapp/scatter-chart/index.json +1 -0
  382. package/dist/weapp/scatter-chart/index.wxml +1 -0
  383. package/dist/weapp/scatter-chart/index.wxss +1 -0
  384. package/dist/weapp/types.d.ts +295 -0
  385. package/package.json +21 -1
@@ -1,13 +1,10 @@
1
1
  "use client";
2
2
  import { ChartBase as e, engineOptions as t } from "./Chart.js";
3
- import { useMemo as n } from "react";
4
- import { jsx as r } from "react/jsx-runtime";
3
+ import { areaSeries as n, barSeries as r, candlestickSeries as i, heatmapChartOptions as a, lineSeries as o, quadrantChartOptions as s, quadrantOf as c, scatterSeries as l, sparklineOptions as u } from "../engine/presets.js";
4
+ import { useMemo as d } from "react";
5
+ import { jsx as f } from "react/jsx-runtime";
5
6
  //#region src/react/charts.tsx
6
- var i = (e, t, n) => e.map((e) => ({
7
- ...e,
8
- type: e.type ?? t,
9
- ...n !== void 0 && (e.type ?? t) === "bar" ? { stack: e.stack ?? n } : {}
10
- })), a = (e) => ({
7
+ var p = (e) => ({
11
8
  height: e.height,
12
9
  width: e.width,
13
10
  className: e.className,
@@ -15,165 +12,245 @@ var i = (e, t, n) => e.map((e) => ({
15
12
  handleRef: e.ref,
16
13
  onHover: e.onHover,
17
14
  onPointClick: e.onPointClick,
15
+ onPlotClick: e.onPlotClick,
18
16
  onZoom: e.onZoom,
19
- onRendererChange: e.onRendererChange
17
+ onRendererChange: e.onRendererChange,
18
+ renderTooltip: e.renderTooltip
20
19
  });
21
- function o(o) {
22
- let { series: s, area: c = !1 } = o, l = n(() => i(s, c ? "area" : "line"), [s, c]);
23
- return /* @__PURE__ */ r(e, {
20
+ function m(n) {
21
+ let { series: r, area: i = !1, curve: a, stacked: s = !1, percent: c = !1 } = n, l = d(() => o(r, i, {
22
+ curve: a,
23
+ stacked: s || c
24
+ }), [
25
+ r,
26
+ i,
27
+ a,
28
+ s,
29
+ c
30
+ ]);
31
+ return /* @__PURE__ */ f(e, {
24
32
  options: t({
25
- ...o,
26
- series: l
33
+ ...n,
34
+ series: l,
35
+ stackMode: c ? "percent" : void 0
27
36
  }),
28
- ...a(o)
37
+ ...p(n)
29
38
  });
30
39
  }
31
- function s(o) {
32
- let { series: s, stacked: c = !1 } = o, l = n(() => i(s, "bar", c ? "stack" : void 0), [s, c]);
33
- return /* @__PURE__ */ r(e, {
40
+ function h(r) {
41
+ let { series: i, curve: a = "smooth", stacked: o = !1, percent: s = !1 } = r, c = d(() => n(i, {
42
+ curve: a,
43
+ stacked: o || s
44
+ }), [
45
+ i,
46
+ a,
47
+ o,
48
+ s
49
+ ]);
50
+ return /* @__PURE__ */ f(e, {
34
51
  options: t({
35
- ...o,
36
- series: l
52
+ ...r,
53
+ series: c,
54
+ stackMode: s ? "percent" : void 0
37
55
  }),
38
- ...a(o)
56
+ ...p(r)
39
57
  });
40
58
  }
41
- function c(o) {
42
- let { series: s } = o, c = n(() => i(s, "scatter"), [s]);
43
- return /* @__PURE__ */ r(e, {
59
+ function g(n) {
60
+ let { series: i, stacked: a = !1, percent: o = !1, labels: s = !1 } = n, c = d(() => r(i, a || o, s), [
61
+ i,
62
+ a,
63
+ o,
64
+ s
65
+ ]);
66
+ return /* @__PURE__ */ f(e, {
44
67
  options: t({
45
- ...o,
46
- series: c
68
+ ...n,
69
+ series: c,
70
+ stackMode: o ? "percent" : void 0
47
71
  }),
48
- ...a(o)
72
+ ...p(n)
49
73
  });
50
74
  }
51
- var l = {
52
- topLeft: "var(--danger-color, #ef4444)",
53
- topRight: "var(--primary-color, #4f46e5)",
54
- bottomLeft: "var(--warning-color, #f59e0b)",
55
- bottomRight: "var(--text-secondary-color, #64748b)"
56
- };
57
- function u(i) {
58
- let { points: o, xDomain: s = [0, 10], yDomain: c = [0, 10], xSplit: u, ySplit: d, quadrants: f, xLabel: p, yLabel: m, reverseX: h = !1, showLabels: g = !0, pointSize: _ = 12, name: v, onPointClick: y } = i, [b, x] = s, [S, C] = c, w = u ?? (b + x) / 2, T = d ?? (S + C) / 2, E = n(() => {
59
- let e = (e) => ({
60
- ...f?.[e],
61
- color: f?.[e]?.color ?? l[e]
62
- });
63
- return {
64
- topLeft: e("topLeft"),
65
- topRight: e("topRight"),
66
- bottomLeft: e("bottomLeft"),
67
- bottomRight: e("bottomRight")
68
- };
69
- }, [f]), D = n(() => {
70
- let e = (e, t) => {
71
- let n = h ? e < w : e >= w;
72
- return t >= T ? n ? "topRight" : "topLeft" : n ? "bottomRight" : "bottomLeft";
73
- };
74
- return [{
75
- type: "scatter",
76
- name: v ?? "",
77
- pointSize: _,
78
- showLabels: g,
79
- opacity: .9,
80
- data: o.map((t) => ({
81
- x: t.x,
82
- y: t.y,
83
- label: t.label,
84
- size: t.size,
85
- color: t.color ?? E[e(t.x, t.y)].color
86
- }))
87
- }];
88
- }, [
75
+ function _(n) {
76
+ let { series: r } = n, a = d(() => i(r), [r]);
77
+ return /* @__PURE__ */ f(e, {
78
+ options: t({
79
+ ...n,
80
+ series: a
81
+ }),
82
+ ...p(n)
83
+ });
84
+ }
85
+ function v(n) {
86
+ let { data: r, xCategories: i, yCategories: o, colorScale: s, valueRange: c, name: l, radius: u, format: m } = n, h = d(() => a({
87
+ data: r,
88
+ xCategories: i,
89
+ yCategories: o,
90
+ colorScale: s,
91
+ valueRange: c,
92
+ name: l,
93
+ radius: u,
94
+ format: m
95
+ }).series, [
96
+ r,
97
+ i,
89
98
  o,
90
- E,
91
- h,
92
- w,
93
- T,
94
- v,
95
- _,
96
- g
97
- ]), O = n(() => {
98
- let e = h ? [w, x] : [b, w], t = h ? [b, w] : [w, x], n = (e, [t, n], [r, i], a) => ({
99
- type: "rect",
100
- x0: t,
101
- x1: n,
102
- y0: r,
103
- y1: i,
104
- color: E[e].color,
105
- opacity: .07,
106
- label: E[e].label,
107
- labelPosition: a
108
- });
109
- return [
110
- n("topLeft", e, [T, C], "top-left"),
111
- n("topRight", t, [T, C], "top-right"),
112
- n("bottomLeft", e, [S, T], "bottom-left"),
113
- n("bottomRight", t, [S, T], "bottom-right"),
114
- {
115
- type: "line",
116
- axis: "x",
117
- value: w,
118
- dash: [],
119
- color: "var(--border-strong-color, var(--border-color, #cbd5e1))"
120
- },
121
- {
122
- type: "line",
123
- axis: "y",
124
- value: T,
125
- dash: [],
126
- color: "var(--border-strong-color, var(--border-color, #cbd5e1))"
127
- },
128
- ...i.annotations ?? []
129
- ];
130
- }, [
131
- E,
132
- h,
133
- b,
134
- x,
135
- S,
136
- C,
137
- w,
138
- T,
139
- i.annotations
140
- ]), k = t({
141
- ...i,
142
- series: D,
143
- annotations: O,
144
- xAxis: {
145
- min: b,
146
- max: x,
147
- title: p,
148
- reverse: h,
149
- nice: !1,
150
- grid: !1,
151
- tickCount: 4
152
- },
153
- yAxis: {
154
- min: S,
155
- max: C,
156
- title: m,
157
- nice: !1,
158
- grid: !1,
159
- tickCount: 4
99
+ s,
100
+ c,
101
+ l,
102
+ u,
103
+ m
104
+ ]), g = t({
105
+ ...n,
106
+ series: h
107
+ });
108
+ return /* @__PURE__ */ f(e, {
109
+ options: {
110
+ ...a({
111
+ data: r,
112
+ xCategories: i,
113
+ yCategories: o
114
+ }, {
115
+ ...g,
116
+ legend: n.legend,
117
+ interaction: n.interaction,
118
+ tooltip: n.tooltip
119
+ }),
120
+ series: h
160
121
  },
161
- legend: i.legend ?? !1,
162
- interaction: i.interaction ?? { zoom: !1 }
122
+ ...p(n)
163
123
  });
164
- return /* @__PURE__ */ r(e, {
165
- options: k,
166
- ...a({
167
- ...i,
168
- onPointClick: void 0
124
+ }
125
+ function y(t) {
126
+ let { data: n, type: r, color: i, curve: a, name: o, reference: s, format: c, height: l = 48, width: p, renderer: m, tooltip: h, palette: g, ariaLabel: _, className: v, style: y, ref: b, onHover: x, renderTooltip: S } = t, C = d(() => u({
127
+ data: n,
128
+ type: r,
129
+ color: i,
130
+ curve: a,
131
+ name: o,
132
+ reference: s,
133
+ format: c
134
+ }, {
135
+ renderer: m,
136
+ tooltip: h,
137
+ palette: g,
138
+ ariaLabel: _
139
+ }), [
140
+ n,
141
+ r,
142
+ i,
143
+ a,
144
+ o,
145
+ s,
146
+ c,
147
+ m,
148
+ h,
149
+ g,
150
+ _
151
+ ]);
152
+ return /* @__PURE__ */ f(e, {
153
+ options: C,
154
+ height: l,
155
+ width: p,
156
+ className: v,
157
+ style: y,
158
+ handleRef: b,
159
+ onHover: x,
160
+ renderTooltip: S
161
+ });
162
+ }
163
+ function b(n) {
164
+ let { series: r } = n, i = d(() => l(r), [r]);
165
+ return /* @__PURE__ */ f(e, {
166
+ options: t({
167
+ ...n,
168
+ series: i
169
169
  }),
170
- onPointClick: y ? (e) => {
170
+ ...p(n)
171
+ });
172
+ }
173
+ var x = [
174
+ "topLeft",
175
+ "topRight",
176
+ "bottomLeft",
177
+ "bottomRight"
178
+ ], S = (e, t, n) => {
179
+ let r = e.endsWith("Left"), i = e.startsWith("top");
180
+ return {
181
+ position: "absolute",
182
+ left: r ? 0 : n.x - t.x,
183
+ top: i ? 0 : n.y - t.y,
184
+ width: r ? n.x - t.x : t.x + t.width - n.x,
185
+ height: i ? n.y - t.y : t.y + t.height - n.y,
186
+ pointerEvents: "none"
187
+ };
188
+ };
189
+ function C(n) {
190
+ let { points: r, xDomain: i, yDomain: a, xSplit: o, ySplit: l, quadrants: u, xLabel: d, yLabel: m, axisLabels: h, showTicks: g, reverseX: _, showLabels: v, pointSize: y, name: b, draggable: C, onPointClick: w, onPointDrop: T, onQuadrantClick: E, renderTooltip: D, quadrantContent: O } = n, k = {
191
+ xDomain: i,
192
+ yDomain: a,
193
+ xSplit: o,
194
+ ySplit: l,
195
+ reverseX: _
196
+ }, A = s({
197
+ points: r,
198
+ xDomain: i,
199
+ yDomain: a,
200
+ xSplit: o,
201
+ ySplit: l,
202
+ quadrants: u,
203
+ xLabel: d,
204
+ yLabel: m,
205
+ axisLabels: h,
206
+ showTicks: g,
207
+ reverseX: _,
208
+ showLabels: v,
209
+ pointSize: y,
210
+ name: b,
211
+ draggable: C ?? !!T
212
+ }, t({
213
+ ...n,
214
+ series: []
215
+ })), j = O ? (e) => {
216
+ let [t, n] = i ?? [0, 10], [r, s] = a ?? [0, 10], c = o ?? (t + n) / 2, u = l ?? (r + s) / 2, d = (c - t) / (n - t || 1), p = (u - r) / (s - r || 1), m = {
217
+ x: e.x + e.width * (_ ? 1 - d : d),
218
+ y: e.y + e.height * (1 - p)
219
+ };
220
+ return x.map((t) => O[t] ? /* @__PURE__ */ f("div", {
221
+ className: `minerva-chart-quadrant minerva-chart-quadrant-${t}`,
222
+ style: S(t, e, m),
223
+ children: O[t]
224
+ }, t) : null);
225
+ } : void 0;
226
+ return /* @__PURE__ */ f(e, {
227
+ options: A,
228
+ ...p({
229
+ ...n,
230
+ onPointClick: void 0,
231
+ renderTooltip: void 0
232
+ }),
233
+ overlay: j,
234
+ onPointClick: w ? (e) => {
235
+ let t = e.items[0]?.index;
236
+ t !== void 0 && r[t] && w(r[t], t);
237
+ } : void 0,
238
+ onPlotClick: E ? (e) => E(c(k, e.x, e.y), e) : void 0,
239
+ onDrop: T ? (e) => {
240
+ let t = e.item.index;
241
+ r[t] && T(r[t], t, {
242
+ x: e.x,
243
+ y: e.y,
244
+ quadrant: c(k, e.x, e.y)
245
+ });
246
+ } : void 0,
247
+ renderTooltip: D ? (e) => {
171
248
  let t = e.items[0]?.index;
172
- t !== void 0 && o[t] && y(o[t], t);
249
+ return t !== void 0 && r[t] ? D(r[t], t) : null;
173
250
  } : void 0
174
251
  });
175
252
  }
176
253
  //#endregion
177
- export { s as BarChart, o as LineChart, u as QuadrantChart, c as ScatterChart };
254
+ export { h as AreaChart, g as BarChart, _ as CandlestickChart, v as HeatmapChart, m as LineChart, C as QuadrantChart, b as ScatterChart, y as Sparkline };
178
255
 
179
256
  //# sourceMappingURL=charts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"charts.js","names":["withType","series","s","type","stack","frameProps","props","LineChart","input","useMemo","area","ChartBase","engineOptions","BarChart","stacked","ScatterChart","DEFAULT_QUADRANT_COLORS","QuadrantChart","x0","x1","xDomain","y0","y1","yDomain","xs","xSplit","ys","ySplit","regions","region","quadrants","corner","cornerOf","right","reverseX","x","y","name","points","p","pointSize","showLabels","annotations","left","rect","xa","xb","ya","yb","position","options","xLabel","yLabel","onPointClick","index","event"],"sources":["../../../../charts/src/react/charts.tsx"],"sourcesContent":["import { useMemo } from \"react\";\nimport type {\n ChartAnnotation,\n ChartSeries,\n ChartSeriesType,\n} from \"../engine/types\";\nimport { ChartBase, engineOptions } from \"./Chart\";\nimport type {\n BarChartProps,\n ChartCommonProps,\n LineChartProps,\n QuadrantChartProps,\n QuadrantRegion,\n ScatterChartProps,\n} from \"./types\";\n\nconst withType = (\n series: readonly ChartSeries[],\n type: ChartSeriesType,\n stack?: string,\n): ChartSeries[] =>\n series.map((s) => ({\n ...s,\n type: s.type ?? type,\n ...(stack !== undefined && (s.type ?? type) === \"bar\"\n ? { stack: s.stack ?? stack }\n : {}),\n }));\n\nconst frameProps = (props: ChartCommonProps) => ({\n height: props.height,\n width: props.width,\n className: props.className,\n style: props.style,\n handleRef: props.ref,\n onHover: props.onHover,\n onPointClick: props.onPointClick,\n onZoom: props.onZoom,\n onRendererChange: props.onRendererChange,\n});\n\n/** Line (or area) chart; handles millions of points on the GPU */\nexport function LineChart(props: LineChartProps) {\n const { series: input, area = false } = props;\n const series = useMemo(\n () => withType(input, area ? \"area\" : \"line\"),\n [input, area],\n );\n return (\n <ChartBase\n options={engineOptions({ ...props, series })}\n {...frameProps(props)}\n />\n );\n}\n\n/** Bar chart: grouped side by side, or stacked */\nexport function BarChart(props: BarChartProps) {\n const { series: input, stacked = false } = props;\n const series = useMemo(\n () => withType(input, \"bar\", stacked ? \"stack\" : undefined),\n [input, stacked],\n );\n return (\n <ChartBase\n options={engineOptions({ ...props, series })}\n {...frameProps(props)}\n />\n );\n}\n\n/** Scatter chart: zooms on both axes, hit testing through a spatial index */\nexport function ScatterChart(props: ScatterChartProps) {\n const { series: input } = props;\n const series = useMemo(() => withType(input, \"scatter\"), [input]);\n return (\n <ChartBase\n options={engineOptions({ ...props, series })}\n {...frameProps(props)}\n />\n );\n}\n\nconst DEFAULT_QUADRANT_COLORS = {\n topLeft: \"var(--danger-color, #ef4444)\",\n topRight: \"var(--primary-color, #4f46e5)\",\n bottomLeft: \"var(--warning-color, #f59e0b)\",\n bottomRight: \"var(--text-secondary-color, #64748b)\",\n} as const;\n\ntype Corner = keyof typeof DEFAULT_QUADRANT_COLORS;\n\n/**\n * Four-quadrant matrix (priority matrix, Eisenhower, BCG, ...): tinted\n * quadrants with titles, dividers, and labelled dots placed without\n * overlapping labels.\n */\nexport function QuadrantChart(props: QuadrantChartProps) {\n const {\n points,\n xDomain = [0, 10],\n yDomain = [0, 10],\n xSplit,\n ySplit,\n quadrants,\n xLabel,\n yLabel,\n reverseX = false,\n showLabels = true,\n pointSize = 12,\n name,\n onPointClick,\n } = props;\n const [x0, x1] = xDomain;\n const [y0, y1] = yDomain;\n const xs = xSplit ?? (x0 + x1) / 2;\n const ys = ySplit ?? (y0 + y1) / 2;\n\n const regions = useMemo(() => {\n const region = (\n corner: Corner,\n ): Required<Pick<QuadrantRegion, \"color\">> & QuadrantRegion => ({\n ...quadrants?.[corner],\n color: quadrants?.[corner]?.color ?? DEFAULT_QUADRANT_COLORS[corner],\n });\n return {\n topLeft: region(\"topLeft\"),\n topRight: region(\"topRight\"),\n bottomLeft: region(\"bottomLeft\"),\n bottomRight: region(\"bottomRight\"),\n };\n }, [quadrants]);\n\n const series = useMemo((): ChartSeries[] => {\n const cornerOf = (x: number, y: number): Corner => {\n const right = reverseX ? x < xs : x >= xs;\n const top = y >= ys;\n return top\n ? right\n ? \"topRight\"\n : \"topLeft\"\n : right\n ? \"bottomRight\"\n : \"bottomLeft\";\n };\n return [\n {\n type: \"scatter\",\n name: name ?? \"\",\n pointSize,\n showLabels,\n opacity: 0.9,\n data: points.map((p) => ({\n x: p.x,\n y: p.y,\n label: p.label,\n size: p.size,\n color: p.color ?? regions[cornerOf(p.x, p.y)].color,\n })),\n },\n ];\n }, [points, regions, reverseX, xs, ys, name, pointSize, showLabels]);\n\n const annotations = useMemo((): ChartAnnotation[] => {\n // visual left / right -> data ranges\n const left: [number, number] = reverseX ? [xs, x1] : [x0, xs];\n const right: [number, number] = reverseX ? [x0, xs] : [xs, x1];\n const rect = (\n corner: Corner,\n [xa, xb]: [number, number],\n [ya, yb]: [number, number],\n position: \"top-left\" | \"top-right\" | \"bottom-left\" | \"bottom-right\",\n ): ChartAnnotation => ({\n type: \"rect\",\n x0: xa,\n x1: xb,\n y0: ya,\n y1: yb,\n color: regions[corner].color,\n opacity: 0.07,\n label: regions[corner].label,\n labelPosition: position,\n });\n return [\n rect(\"topLeft\", left, [ys, y1], \"top-left\"),\n rect(\"topRight\", right, [ys, y1], \"top-right\"),\n rect(\"bottomLeft\", left, [y0, ys], \"bottom-left\"),\n rect(\"bottomRight\", right, [y0, ys], \"bottom-right\"),\n {\n type: \"line\",\n axis: \"x\",\n value: xs,\n dash: [],\n color: \"var(--border-strong-color, var(--border-color, #cbd5e1))\",\n },\n {\n type: \"line\",\n axis: \"y\",\n value: ys,\n dash: [],\n color: \"var(--border-strong-color, var(--border-color, #cbd5e1))\",\n },\n ...(props.annotations ?? []),\n ];\n }, [regions, reverseX, x0, x1, y0, y1, xs, ys, props.annotations]);\n\n const options = engineOptions({\n ...props,\n series,\n annotations,\n xAxis: {\n min: x0,\n max: x1,\n title: xLabel,\n reverse: reverseX,\n nice: false,\n grid: false,\n tickCount: 4,\n },\n yAxis: {\n min: y0,\n max: y1,\n title: yLabel,\n nice: false,\n grid: false,\n tickCount: 4,\n },\n legend: props.legend ?? false,\n interaction: props.interaction ?? { zoom: false },\n });\n\n return (\n <ChartBase\n options={options}\n {...frameProps({ ...props, onPointClick: undefined })}\n onPointClick={\n onPointClick\n ? (event) => {\n const index = event.items[0]?.index;\n if (index !== undefined && points[index])\n onPointClick(points[index], index);\n }\n : undefined\n }\n />\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"charts.js","names":["frameProps","props","LineChart","input","series","useMemo","lineSeries","area","stacked","percent","curve","ChartBase","engineOptions","AreaChart","areaSeries","BarChart","barSeries","labels","CandlestickChart","candlestickSeries","HeatmapChart","heatmapChartOptions","data","xCategories","yCategories","colorScale","valueRange","name","radius","format","base","Sparkline","options","sparklineOptions","type","color","reference","renderer","tooltip","palette","ariaLabel","ref","ScatterChart","scatterSeries","CORNERS","cornerStyle","left","corner","top","split","plot","QuadrantChart","geometry","quadrantChartOptions","draggable","onPointDrop","overlay","quadrantContent","x0","x1","xDomain","y0","y1","yDomain","xs","xSplit","ys","ySplit","fx","fy","reverseX","onPointClick","index","event","points","onQuadrantClick","quadrantOf","at","renderTooltip"],"sources":["../../../../charts/src/react/charts.tsx"],"sourcesContent":["import { useMemo, type CSSProperties } from \"react\";\nimport {\n areaSeries,\n barSeries,\n candlestickSeries,\n heatmapChartOptions,\n lineSeries,\n quadrantChartOptions,\n quadrantOf,\n scatterSeries,\n sparklineOptions,\n type QuadrantCorner,\n} from \"../engine/presets\";\nimport type { ChartRect } from \"../engine/types\";\nimport { ChartBase, engineOptions } from \"./Chart\";\nimport type {\n AreaChartProps,\n BarChartProps,\n CandlestickChartProps,\n ChartCommonProps,\n HeatmapChartProps,\n LineChartProps,\n QuadrantChartProps,\n ScatterChartProps,\n SparklineProps,\n} from \"./types\";\n\nconst frameProps = (props: ChartCommonProps) => ({\n height: props.height,\n width: props.width,\n className: props.className,\n style: props.style,\n handleRef: props.ref,\n onHover: props.onHover,\n onPointClick: props.onPointClick,\n onPlotClick: props.onPlotClick,\n onZoom: props.onZoom,\n onRendererChange: props.onRendererChange,\n renderTooltip: props.renderTooltip,\n});\n\n/** Line (or area) chart; handles millions of points on the GPU */\nexport function LineChart(props: LineChartProps) {\n const {\n series: input,\n area = false,\n curve,\n stacked = false,\n percent = false,\n } = props;\n const series = useMemo(\n () => lineSeries(input, area, { curve, stacked: stacked || percent }),\n [input, area, curve, stacked, percent],\n );\n return (\n <ChartBase\n options={engineOptions({\n ...props,\n series,\n stackMode: percent ? \"percent\" : undefined,\n })}\n {...frameProps(props)}\n />\n );\n}\n\n/** Area chart: smooth by default, stacked or 100% stacked */\nexport function AreaChart(props: AreaChartProps) {\n const {\n series: input,\n curve = \"smooth\",\n stacked = false,\n percent = false,\n } = props;\n const series = useMemo(\n () => areaSeries(input, { curve, stacked: stacked || percent }),\n [input, curve, stacked, percent],\n );\n return (\n <ChartBase\n options={engineOptions({\n ...props,\n series,\n stackMode: percent ? \"percent\" : undefined,\n })}\n {...frameProps(props)}\n />\n );\n}\n\n/** Bar chart: grouped side by side, stacked or 100% stacked, with optional value labels */\nexport function BarChart(props: BarChartProps) {\n const {\n series: input,\n stacked = false,\n percent = false,\n labels = false,\n } = props;\n const series = useMemo(\n () => barSeries(input, stacked || percent, labels),\n [input, stacked, percent, labels],\n );\n return (\n <ChartBase\n options={engineOptions({\n ...props,\n series,\n stackMode: percent ? \"percent\" : undefined,\n })}\n {...frameProps(props)}\n />\n );\n}\n\n/** Candlestick (OHLC) chart: rising and falling candles, zoomable on the GPU */\nexport function CandlestickChart(props: CandlestickChartProps) {\n const { series: input } = props;\n const series = useMemo(() => candlestickSeries(input), [input]);\n return (\n <ChartBase\n options={engineOptions({ ...props, series })}\n {...frameProps(props)}\n />\n );\n}\n\n/** Heatmap: a grid of cells colored by value (categories or numbers on both axes) */\nexport function HeatmapChart(props: HeatmapChartProps) {\n const {\n data,\n xCategories,\n yCategories,\n colorScale,\n valueRange,\n name,\n radius,\n format,\n } = props;\n const series = useMemo(\n () =>\n heatmapChartOptions({\n data,\n xCategories,\n yCategories,\n colorScale,\n valueRange,\n name,\n radius,\n format,\n }).series,\n [\n data,\n xCategories,\n yCategories,\n colorScale,\n valueRange,\n name,\n radius,\n format,\n ],\n );\n const base = engineOptions({ ...props, series });\n return (\n <ChartBase\n options={{\n ...heatmapChartOptions(\n { data, xCategories, yCategories },\n {\n ...base,\n legend: props.legend,\n interaction: props.interaction,\n tooltip: props.tooltip,\n },\n ),\n series,\n }}\n {...frameProps(props)}\n />\n );\n}\n\n/** Word-sized chart without axes: a trend in a table cell, a KPI card, ... */\nexport function Sparkline(props: SparklineProps) {\n const {\n data,\n type,\n color,\n curve,\n name,\n reference,\n format,\n height = 48,\n width,\n renderer,\n tooltip,\n palette,\n ariaLabel,\n className,\n style,\n ref,\n onHover,\n renderTooltip,\n } = props;\n const options = useMemo(\n () =>\n sparklineOptions(\n { data, type, color, curve, name, reference, format },\n { renderer, tooltip, palette, ariaLabel },\n ),\n [\n data,\n type,\n color,\n curve,\n name,\n reference,\n format,\n renderer,\n tooltip,\n palette,\n ariaLabel,\n ],\n );\n return (\n <ChartBase\n options={options}\n height={height}\n width={width}\n className={className}\n style={style}\n handleRef={ref}\n onHover={onHover}\n renderTooltip={renderTooltip}\n />\n );\n}\n\n/** Scatter chart: zooms on both axes, hit testing through a spatial index */\nexport function ScatterChart(props: ScatterChartProps) {\n const { series: input } = props;\n const series = useMemo(() => scatterSeries(input), [input]);\n return (\n <ChartBase\n options={engineOptions({ ...props, series })}\n {...frameProps(props)}\n />\n );\n}\n\nconst CORNERS: QuadrantCorner[] = [\n \"topLeft\",\n \"topRight\",\n \"bottomLeft\",\n \"bottomRight\",\n];\n\nconst cornerStyle = (\n corner: QuadrantCorner,\n plot: ChartRect,\n split: { x: number; y: number },\n): CSSProperties => {\n const left = corner.endsWith(\"Left\");\n const top = corner.startsWith(\"top\");\n return {\n position: \"absolute\",\n left: left ? 0 : split.x - plot.x,\n top: top ? 0 : split.y - plot.y,\n width: left ? split.x - plot.x : plot.x + plot.width - split.x,\n height: top ? split.y - plot.y : plot.y + plot.height - split.y,\n pointerEvents: \"none\",\n };\n};\n\n/**\n * Four-quadrant matrix (priority matrix, Eisenhower, BCG, ...): tinted\n * quadrants with titles, dividers, and labelled dots placed without\n * overlapping labels. Dots can be dragged to another quadrant.\n */\nexport function QuadrantChart(props: QuadrantChartProps) {\n const {\n points,\n xDomain,\n yDomain,\n xSplit,\n ySplit,\n quadrants,\n xLabel,\n yLabel,\n axisLabels,\n showTicks,\n reverseX,\n showLabels,\n pointSize,\n name,\n draggable,\n onPointClick,\n onPointDrop,\n onQuadrantClick,\n renderTooltip,\n quadrantContent,\n } = props;\n const geometry = { xDomain, yDomain, xSplit, ySplit, reverseX };\n\n const options = quadrantChartOptions(\n {\n points,\n xDomain,\n yDomain,\n xSplit,\n ySplit,\n quadrants,\n xLabel,\n yLabel,\n axisLabels,\n showTicks,\n reverseX,\n showLabels,\n pointSize,\n name,\n draggable: draggable ?? !!onPointDrop,\n },\n engineOptions({ ...props, series: [] }),\n );\n\n const overlay = quadrantContent\n ? (plot: ChartRect) => {\n const [x0, x1] = xDomain ?? [0, 10];\n const [y0, y1] = yDomain ?? [0, 10];\n const xs = xSplit ?? (x0 + x1) / 2;\n const ys = ySplit ?? (y0 + y1) / 2;\n const fx = (xs - x0) / (x1 - x0 || 1);\n const fy = (ys - y0) / (y1 - y0 || 1);\n const split = {\n x: plot.x + plot.width * (reverseX ? 1 - fx : fx),\n y: plot.y + plot.height * (1 - fy),\n };\n return CORNERS.map((corner) =>\n quadrantContent[corner] ? (\n <div\n key={corner}\n className={`minerva-chart-quadrant minerva-chart-quadrant-${corner}`}\n style={cornerStyle(corner, plot, split)}\n >\n {quadrantContent[corner]}\n </div>\n ) : null,\n );\n }\n : undefined;\n\n return (\n <ChartBase\n options={options}\n {...frameProps({\n ...props,\n onPointClick: undefined,\n renderTooltip: undefined,\n })}\n overlay={overlay}\n onPointClick={\n onPointClick\n ? (event) => {\n const index = event.items[0]?.index;\n if (index !== undefined && points[index])\n onPointClick(points[index], index);\n }\n : undefined\n }\n onPlotClick={\n onQuadrantClick\n ? (at) => onQuadrantClick(quadrantOf(geometry, at.x, at.y), at)\n : undefined\n }\n onDrop={\n onPointDrop\n ? (event) => {\n const index = event.item.index;\n if (!points[index]) return;\n onPointDrop(points[index], index, {\n x: event.x,\n y: event.y,\n quadrant: quadrantOf(geometry, event.x, event.y),\n });\n }\n : undefined\n }\n renderTooltip={\n renderTooltip\n ? (event) => {\n const index = event.items[0]?.index;\n return index !== undefined && points[index]\n ? renderTooltip(points[index], index)\n : null;\n }\n : undefined\n }\n />\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use client";const e=require("../engine/shapes/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=({palette:e,legend:n,tooltip:r,format:i,percentFormat:a,hidden:o,animation:s,padding:c,ariaLabel:l})=>{let u=o?o.join(`,`):null,d=(0,t.useMemo)(()=>u===null?void 0:u?u.split(`,`).map(Number):[],[u]);return(0,t.useMemo)(()=>({palette:e,legend:n,tooltip:r,format:i,percentFormat:a,hidden:d,animation:s,padding:c,ariaLabel:l}),[e,n,r,i,a,d,s,c,l])};function o({options:a,height:o,width:s,className:c,style:l,handleRef:u,renderTooltip:d,...f}){let p=(0,t.useRef)(null),m=(0,t.useRef)(null),h=(0,t.useRef)(f),g=(0,t.useRef)(d),[_,v]=(0,t.useState)(null),y=(0,t.useMemo)(()=>typeof document>`u`?null:document.createElement(`div`),[]),b=!!d,x=(0,t.useMemo)(()=>{if(!b||!y||a.tooltip===!1)return a;let e=typeof a.tooltip==`object`?a.tooltip:{};return{...a,tooltip:{...e,render:e=>g.current?((0,n.flushSync)(()=>v(e)),y):null}}},[a,b,y]),S=(0,t.useRef)(x);return(0,t.useEffect)(()=>{h.current=f,g.current=d}),(0,t.useEffect)(()=>{let t=p.current;if(!t)return;let n=e.createShapeChart(t,S.current);m.current=n;let r=[n.on(`hover`,e=>h.current.onHover?.(e)),n.on(`click`,e=>h.current.onClick?.(e)),n.on(`toggle`,e=>h.current.onToggle?.(e))];return()=>{r.forEach(e=>e()),n.destroy(),m.current=null}},[]),(0,t.useEffect)(()=>{S.current!==x&&(S.current=x,m.current?.setOptions(x))},[x]),(0,t.useImperativeHandle)(u,()=>({getInstance:()=>m.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:p,style:{position:`absolute`,inset:0}}),y&&_&&d&&(0,n.createPortal)(d(_),y)]})}function s(e){return(0,r.jsx)(l,{...e,defaultInner:0})}function c(e){return(0,r.jsx)(l,{...e,defaultInner:.62})}function l(e){let{data:n,innerRadius:i,startAngle:o,padAngle:s,cornerRadius:c,rose:l,labels:u,labelContent:d,centerValue:f,centerLabel:p,defaultInner:h}=e,g=a(e),_=(0,t.useMemo)(()=>({...g,type:`pie`,data:n,innerRadius:i??h,startAngle:o,padAngle:s,cornerRadius:c,rose:l,labels:u,labelContent:d,centerValue:f,centerLabel:p}),[g,n,i,h,o,s,c,l,u,d,f,p]);return(0,r.jsx)(m,{props:e,options:_,defaultHeight:320})}function u(e){let{indicators:n,series:i,shape:o,levels:s,dots:c}=e,l=a(e),u=(0,t.useMemo)(()=>({...l,type:`radar`,indicators:n,series:i,shape:o,levels:s,dots:c}),[l,n,i,o,s,c]);return(0,r.jsx)(m,{props:e,options:u,defaultHeight:320})}function d(e){let{value:n,min:i,max:o,label:s,sweep:c,thickness:l,bands:u,color:d,needle:f,ticks:p}=e,h=a(e),g=(0,t.useMemo)(()=>({...h,type:`gauge`,value:n,min:i,max:o,label:s,sweep:c,thickness:l,bands:u,color:d,needle:f,ticks:p}),[h,n,i,o,s,c,l,u,d,f,p]);return(0,r.jsx)(m,{props:e,options:g,defaultHeight:240})}function f(e){let{data:n,sort:i,gap:o,conversion:s,shape:c}=e,l=a(e),u=(0,t.useMemo)(()=>({...l,type:`funnel`,data:n,sort:i,gap:o,conversion:s,shape:c}),[l,n,i,o,s,c]);return(0,r.jsx)(m,{props:e,options:u,defaultHeight:320})}function p(e){let{data:n,gap:i,headers:o}=e,s=a(e),c=(0,t.useMemo)(()=>({...s,type:`treemap`,data:n,gap:i,headers:o}),[s,n,i,o]);return(0,r.jsx)(m,{props:e,options:c,defaultHeight:320})}function m({props:e,options:t,defaultHeight:n}){return(0,r.jsx)(o,{options:t,height:e.height??n,width:e.width,className:e.className,style:e.style,handleRef:e.ref,onHover:e.onHover,onClick:e.onClick,onToggle:e.onToggle,renderTooltip:e.renderTooltip})}exports.DonutChart=c,exports.FunnelChart=f,exports.GaugeChart=d,exports.PieChart=s,exports.RadarChart=u,exports.TreemapChart=p;
2
+ //# sourceMappingURL=shapes.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shapes.cjs","names":["useMemo","useRef","useState","createShapeChart","createPortal","require_chart","react","react_dom","react_jsx_runtime","size","value","fallback","useCommonOptions","hiddenKey","hidden","stableHidden","palette","legend","tooltip","format","percentFormat","animation","padding","ariaLabel","ShapeChartBase","handlers","containerRef","chartRef","handlersRef","tooltipRef","renderTooltip","tipEvent","setTipEvent","tipHost","customTooltip","resolved","options","base","event","optionsRef","container","chart","offs","off","handleRef","width","height","style","PieChart","PieBase","props","DonutChart","common","innerRadius","defaultInner","data","startAngle","padAngle","cornerRadius","rose","labels","labelContent","centerValue","centerLabel","ShapeHost","RadarChart","indicators","series","shape","levels","dots","GaugeChart","min","max","label","sweep","thickness","bands","color","needle","ticks","FunnelChart","sort","gap","conversion","TreemapChart","headers","defaultHeight"],"sources":["../../../../charts/src/react/shapes.tsx"],"sourcesContent":["import {\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n type ReactNode,\n type Ref,\n} from \"react\";\nimport { createPortal, flushSync } from \"react-dom\";\nimport type { ChartPadding } from \"../engine/types\";\nimport { createShapeChart } from \"../engine/shapes/chart\";\nimport type {\n FunnelChartOptions,\n GaugeBand,\n GaugeChartOptions,\n PieChartOptions,\n RadarChartOptions,\n RadarIndicator,\n RadarSeries,\n ShapeChartCommonOptions,\n ShapeChartInstance,\n ShapeChartOptions,\n ShapeDatum,\n ShapeHoverEvent,\n ShapeLegendOptions,\n ShapeToggleEvent,\n ShapeTooltipOptions,\n TreemapChartOptions,\n TreemapNode,\n} from \"../engine/shapes/types\";\n\n/** Imperative handle of the shape chart components (`ref`) */\nexport interface ShapeChartHandle {\n /** The underlying engine instance (minerva-design/charts/core) */\n getInstance(): ShapeChartInstance | null;\n}\n\n/** Props shared by PieChart, DonutChart, RadarChart, GaugeChart, FunnelChart and TreemapChart */\nexport interface ShapeChartCommonProps {\n /**\n * Height of the chart (the legend included); numbers are pixels\n * @default 320 (GaugeChart: 240)\n */\n height?: number | string;\n /**\n * Width of the chart; numbers are pixels\n * @default \"100%\"\n */\n width?: number | string;\n /** Colors of the marks without `color` (defaults to the `--chart-series-1..8` CSS variables, then the theme colors) */\n palette?: readonly string[];\n /**\n * Legend; clicking an item hides / shows its slice, stage or series\n * @default shown for pie, donut, funnel and multi-series radar charts\n */\n legend?: boolean | ShapeLegendOptions;\n /**\n * Tooltip; `false` disables it\n * @default true\n */\n tooltip?: boolean | ShapeTooltipOptions;\n /**\n * Formats the values of the labels and the tooltip\n * @default compact numbers (1.2k, 3.4M)\n */\n format?: (value: number) => string;\n /**\n * Formats the shares (labels, conversion rates, tooltip); `share` is 0-1\n * @default one decimal, e.g. \"40.0%\"\n */\n percentFormat?: (share: number) => string;\n /**\n * Hidden slices / stages / radar series / top-level treemap nodes, by\n * index. Makes the visibility controlled: legend clicks then only call\n * `onToggle`, whose `hiddenIndexes` should be stored and passed back.\n * Leave undefined to let the legend hide / show entries by itself.\n */\n hidden?: readonly number[];\n /**\n * Called when a legend item is clicked (or the instance's `toggle()` is\n * called), with the toggled index and every hidden index after the toggle\n */\n onToggle?: (event: ShapeToggleEvent) => void;\n /**\n * Entry and update animations (skipped when the user prefers reduced motion)\n * @default true\n */\n animation?: boolean;\n /**\n * Space around the drawing, in pixels\n * @default 8 on every side\n */\n padding?: ChartPadding;\n /**\n * Accessible name of the chart\n * @default the chart type, e.g. \"Donut chart\"\n */\n ariaLabel?: string;\n /** Called when the hovered (or keyboard-focused) mark changes */\n onHover?: (event: ShapeHoverEvent | null) => void;\n /** Called when a mark is clicked, tapped or activated with Enter */\n onClick?: (event: ShapeHoverEvent) => void;\n /** React content of the tooltip (replaces the default content) */\n renderTooltip?: (event: ShapeHoverEvent) => ReactNode;\n /** Additional class name of the root element */\n className?: string;\n /** Inline styles of the root element */\n style?: CSSProperties;\n /** Imperative handle */\n ref?: Ref<ShapeChartHandle>;\n}\n\n/** Props of PieChart */\nexport interface PieChartProps extends ShapeChartCommonProps {\n /** Slices: a name, a value (negative values count as 0) and an optional color */\n data: readonly ShapeDatum[];\n /**\n * Inner radius as a fraction of the outer radius: 0 = pie, 0.6 = donut\n * @default 0\n */\n innerRadius?: number;\n /**\n * Angle of the first slice, degrees clockwise from 12 o'clock\n * @default 0\n */\n startAngle?: number;\n /**\n * Gap between the slices, in pixels\n * @default 1 (pie), 2 (donut)\n */\n padAngle?: number;\n /**\n * Corner radius of the slices, in pixels\n * @default 0 (pie), 4 (donut)\n */\n cornerRadius?: number;\n /**\n * Nightingale rose: the radius (instead of the angle) shows the value\n * @default false\n */\n rose?: boolean;\n /**\n * Slice labels: `outside` with leader lines, `inside` the slices, or none\n * @default \"outside\" (up to 12 slices), \"none\" otherwise\n */\n labels?: \"outside\" | \"inside\" | \"none\";\n /**\n * What a label shows: name, value, percent (combinable)\n * @default [\"name\", \"percent\"]\n */\n labelContent?: readonly (\"name\" | \"value\" | \"percent\")[];\n /** Big text in the hole of a donut (e.g. the total) */\n centerValue?: string;\n /** Small text under `centerValue` */\n centerLabel?: string;\n}\n\n/** Props of DonutChart: a PieChart with a hole */\nexport interface DonutChartProps extends PieChartProps {\n /**\n * Inner radius as a fraction of the outer radius\n * @default 0.62\n */\n innerRadius?: number;\n}\n\n/** Props of RadarChart */\nexport interface RadarChartProps extends ShapeChartCommonProps {\n /** Axes of the chart, clockwise from 12 o'clock */\n indicators: readonly RadarIndicator[];\n /** Polygons: one value per indicator */\n series: readonly RadarSeries[];\n /**\n * Grid shape\n * @default \"polygon\"\n */\n shape?: \"polygon\" | \"circle\";\n /**\n * Number of grid rings\n * @default 4\n */\n levels?: number;\n /**\n * Dots on the vertices\n * @default true\n */\n dots?: boolean;\n}\n\n/** Props of GaugeChart */\nexport interface GaugeChartProps extends ShapeChartCommonProps {\n /** Value shown by the arc (clamped to `min` - `max` for the drawing) */\n value: number;\n /**\n * Value at the start of the arc\n * @default 0\n */\n min?: number;\n /**\n * Value at the end of the arc\n * @default 100\n */\n max?: number;\n /** Caption under the value */\n label?: string;\n /**\n * Total angle of the arc, degrees\n * @default 240\n */\n sweep?: number;\n /**\n * Thickness of the arc as a fraction of the radius\n * @default 0.16\n */\n thickness?: number;\n /** Colored ranges of the track; the value arc takes the color of its band */\n bands?: readonly GaugeBand[];\n /**\n * Color of the value arc (when there are no bands)\n * @default the first palette color\n */\n color?: string;\n /**\n * Draws a needle in addition to the value arc\n * @default false\n */\n needle?: boolean;\n /**\n * Tick labels at the ends (and at the band bounds)\n * @default true\n */\n ticks?: boolean;\n}\n\n/** Props of FunnelChart */\nexport interface FunnelChartProps extends ShapeChartCommonProps {\n /** Stages: a name, a value and an optional color */\n data: readonly ShapeDatum[];\n /**\n * Order of the stages\n * @default \"none\" (data order)\n */\n sort?: \"descending\" | \"ascending\" | \"none\";\n /**\n * Vertical gap between the stages, in pixels\n * @default 4\n */\n gap?: number;\n /**\n * Shows the conversion rate from the previous stage\n * @default true\n */\n conversion?: boolean;\n /**\n * Shape of the stages: trapezoids that narrow to the next stage, or centered bars\n * @default \"trapezoid\"\n */\n shape?: \"trapezoid\" | \"bar\";\n}\n\n/** Props of TreemapChart */\nexport interface TreemapChartProps extends ShapeChartCommonProps {\n /** Nodes: leaves carry a value, parents sum their children */\n data: readonly TreemapNode[];\n /**\n * Gap between the cells, in pixels\n * @default 2\n */\n gap?: number;\n /**\n * Draws the names of the parents above their children\n * @default true\n */\n headers?: boolean;\n}\n\ninterface Handlers {\n onHover?: (event: ShapeHoverEvent | null) => void;\n onClick?: (event: ShapeHoverEvent) => void;\n onToggle?: (event: ShapeToggleEvent) => void;\n}\n\ninterface ShapeChartBaseProps extends Handlers {\n options: ShapeChartOptions;\n height: number | string;\n width?: number | string;\n className?: string;\n style?: CSSProperties;\n handleRef?: Ref<ShapeChartHandle>;\n renderTooltip?: (event: ShapeHoverEvent) => ReactNode;\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 shared by every type, stable while the props are equal */\nconst useCommonOptions = ({\n palette,\n legend,\n tooltip,\n format,\n percentFormat,\n hidden,\n animation,\n padding,\n ariaLabel,\n}: ShapeChartCommonProps): ShapeChartCommonOptions => {\n // a new array with the same indexes keeps the options (and the animation)\n const hiddenKey = hidden ? hidden.join(\",\") : null;\n const stableHidden = useMemo(\n () =>\n hiddenKey === null\n ? undefined\n : hiddenKey\n ? hiddenKey.split(\",\").map(Number)\n : [],\n [hiddenKey],\n );\n return useMemo(\n () => ({\n palette,\n legend,\n tooltip,\n format,\n percentFormat,\n hidden: stableHidden,\n animation,\n padding,\n ariaLabel,\n }),\n [\n palette,\n legend,\n tooltip,\n format,\n percentFormat,\n stableHidden,\n animation,\n padding,\n ariaLabel,\n ],\n );\n};\n\n/** Mounts the engine in a sized <div> and forwards option / handler changes */\nfunction ShapeChartBase({\n options,\n height,\n width,\n className,\n style,\n handleRef,\n renderTooltip,\n ...handlers\n}: ShapeChartBaseProps) {\n const containerRef = useRef<HTMLDivElement>(null);\n const chartRef = useRef<ShapeChartInstance | null>(null);\n const handlersRef = useRef<Handlers>(handlers);\n const tooltipRef = useRef(renderTooltip);\n const [tipEvent, setTipEvent] = useState<ShapeHoverEvent | null>(null);\n const tipHost = useMemo(\n () =>\n typeof document === \"undefined\" ? null : document.createElement(\"div\"),\n [],\n );\n const customTooltip = !!renderTooltip;\n\n const resolved = useMemo((): ShapeChartOptions => {\n if (!customTooltip || !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, customTooltip, 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 = createShapeChart(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.onClick?.(e)),\n chart.on(\"toggle\", (e) => handlersRef.current.onToggle?.(e)),\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 () => ({ getInstance: () => chartRef.current }),\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 {tipHost &&\n tipEvent &&\n renderTooltip &&\n createPortal(renderTooltip(tipEvent), tipHost)}\n </div>\n );\n}\n\n/**\n * Pie chart (or a donut with `innerRadius`, or a Nightingale rose with\n * `rose`): slices with gaps, outside labels with leader lines, legend toggles.\n */\nexport function PieChart(props: PieChartProps) {\n return <PieBase {...props} defaultInner={0} />;\n}\n\n/** Donut chart: a PieChart with a hole and optional center texts */\nexport function DonutChart(props: DonutChartProps) {\n return <PieBase {...props} defaultInner={0.62} />;\n}\n\nfunction PieBase(props: PieChartProps & { defaultInner: number }) {\n const {\n data,\n innerRadius,\n startAngle,\n padAngle,\n cornerRadius,\n rose,\n labels,\n labelContent,\n centerValue,\n centerLabel,\n defaultInner,\n } = props;\n const common = useCommonOptions(props);\n const options = useMemo(\n (): PieChartOptions => ({\n ...common,\n type: \"pie\",\n data,\n innerRadius: innerRadius ?? defaultInner,\n startAngle,\n padAngle,\n cornerRadius,\n rose,\n labels,\n labelContent,\n centerValue,\n centerLabel,\n }),\n [\n common,\n data,\n innerRadius,\n defaultInner,\n startAngle,\n padAngle,\n cornerRadius,\n rose,\n labels,\n labelContent,\n centerValue,\n centerLabel,\n ],\n );\n return <ShapeHost props={props} options={options} defaultHeight={320} />;\n}\n\n/** Radar (spider) chart comparing series over several indicators */\nexport function RadarChart(props: RadarChartProps) {\n const { indicators, series, shape, levels, dots } = props;\n const common = useCommonOptions(props);\n const options = useMemo(\n (): RadarChartOptions => ({\n ...common,\n type: \"radar\",\n indicators,\n series,\n shape,\n levels,\n dots,\n }),\n [common, indicators, series, shape, levels, dots],\n );\n return <ShapeHost props={props} options={options} defaultHeight={320} />;\n}\n\n/** Gauge (speedometer) showing one value on an arc, with colored bands */\nexport function GaugeChart(props: GaugeChartProps) {\n const {\n value,\n min,\n max,\n label,\n sweep,\n thickness,\n bands,\n color,\n needle,\n ticks,\n } = props;\n const common = useCommonOptions(props);\n const options = useMemo(\n (): GaugeChartOptions => ({\n ...common,\n type: \"gauge\",\n value,\n min,\n max,\n label,\n sweep,\n thickness,\n bands,\n color,\n needle,\n ticks,\n }),\n [\n common,\n value,\n min,\n max,\n label,\n sweep,\n thickness,\n bands,\n color,\n needle,\n ticks,\n ],\n );\n return <ShapeHost props={props} options={options} defaultHeight={240} />;\n}\n\n/** Funnel chart of the stages of a process, with conversion rates */\nexport function FunnelChart(props: FunnelChartProps) {\n const { data, sort, gap, conversion, shape } = props;\n const common = useCommonOptions(props);\n const options = useMemo(\n (): FunnelChartOptions => ({\n ...common,\n type: \"funnel\",\n data,\n sort,\n gap,\n conversion,\n shape,\n }),\n [common, data, sort, gap, conversion, shape],\n );\n return <ShapeHost props={props} options={options} defaultHeight={320} />;\n}\n\n/** Treemap: nested rectangles of areas proportional to the values */\nexport function TreemapChart(props: TreemapChartProps) {\n const { data, gap, headers } = props;\n const common = useCommonOptions(props);\n const options = useMemo(\n (): TreemapChartOptions => ({\n ...common,\n type: \"treemap\",\n data,\n gap,\n headers,\n }),\n [common, data, gap, headers],\n );\n return <ShapeHost props={props} options={options} defaultHeight={320} />;\n}\n\nfunction ShapeHost({\n props,\n options,\n defaultHeight,\n}: {\n props: ShapeChartCommonProps;\n options: ShapeChartOptions;\n defaultHeight: number;\n}) {\n return (\n <ShapeChartBase\n options={options}\n height={props.height ?? defaultHeight}\n width={props.width}\n className={props.className}\n style={props.style}\n handleRef={props.ref}\n onHover={props.onHover}\n onClick={props.onClick}\n onToggle={props.onToggle}\n renderTooltip={props.renderTooltip}\n />\n );\n}\n"],"mappings":"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"}