@primeui/chart-core 0.0.1-alpha.1 → 1.0.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (248) hide show
  1. package/LICENSE.md +35 -0
  2. package/README.md +12 -0
  3. package/dist/animations/index.d.mts +1 -1
  4. package/dist/animations/index.mjs +19 -18
  5. package/dist/{annotation.utils-Bm0lOO1o.d.mts → annotation.utils-D-7ijAWO.d.mts} +22 -1
  6. package/dist/cartesian/index.d.mts +3 -2
  7. package/dist/cartesian/index.mjs +96 -93
  8. package/dist/{chunk-WPFUV7K3.mjs → chunks/chunk-2LLTN7T4.mjs} +23 -14
  9. package/dist/{chunk-RO4N6YFS.mjs → chunks/chunk-2T226WJI.mjs} +31 -14
  10. package/dist/{chunk-3FFJEX4A.mjs → chunks/chunk-3QQLETCJ.mjs} +13 -12
  11. package/dist/{chunk-JWFBOPM6.mjs → chunks/chunk-4N2XIMAB.mjs} +2 -2
  12. package/dist/{chunk-LVMDQ4OJ.mjs → chunks/chunk-4S3FOFCN.mjs} +2 -2
  13. package/dist/{chunk-XTVE4P3L.mjs → chunks/chunk-56MASQS2.mjs} +6 -2
  14. package/dist/{chunk-DTWTCFRG.mjs → chunks/chunk-5EQSFUBA.mjs} +41 -13
  15. package/dist/{chunk-KQIFO5I3.mjs → chunks/chunk-5QSTMSPW.mjs} +15 -10
  16. package/dist/{chunk-NKUYIWAP.mjs → chunks/chunk-6LUIVTNV.mjs} +6 -6
  17. package/dist/chunks/chunk-6MAO6I3E.mjs +6 -0
  18. package/dist/{chunk-DN6AXQYZ.mjs → chunks/chunk-72M66Y2U.mjs} +46 -41
  19. package/dist/{chunk-WFVOQ2QZ.mjs → chunks/chunk-77K3DEKL.mjs} +2 -2
  20. package/dist/{chunk-4C6EVJ54.mjs → chunks/chunk-7I2SAKHL.mjs} +7 -44
  21. package/dist/{chunk-6HSEJLSR.mjs → chunks/chunk-7I2SNJ2X.mjs} +35 -18
  22. package/dist/{chunk-66T4MRC5.mjs → chunks/chunk-7IKKWWRT.mjs} +4 -6
  23. package/dist/{chunk-BKP26M4K.mjs → chunks/chunk-7LZWQVTL.mjs} +43 -24
  24. package/dist/{chunk-NHRK5KU2.mjs → chunks/chunk-A5YBHYIS.mjs} +25 -17
  25. package/dist/{chunk-ZT2Z7ERM.mjs → chunks/chunk-AC5EAWIP.mjs} +12 -9
  26. package/dist/{chunk-ZTL2FQEW.mjs → chunks/chunk-AETETRB4.mjs} +24 -9
  27. package/dist/{chunk-NPDZLYIF.mjs → chunks/chunk-AJ24XDEK.mjs} +2 -2
  28. package/dist/chunks/chunk-ARVMVGWS.mjs +40 -0
  29. package/dist/{chunk-3IYSJ2U7.mjs → chunks/chunk-AYEAEAOV.mjs} +10 -7
  30. package/dist/{chunk-M7B3JF43.mjs → chunks/chunk-AZPJMIZE.mjs} +4 -3
  31. package/dist/{chunk-O2X6FF45.mjs → chunks/chunk-BDCNBS6W.mjs} +194 -168
  32. package/dist/{chunk-55Y3WI6S.mjs → chunks/chunk-BR4PSSPU.mjs} +6 -6
  33. package/dist/{chunk-TA4MVAEX.mjs → chunks/chunk-CFA2SUBF.mjs} +32 -24
  34. package/dist/{chunk-WH3C3Y7P.mjs → chunks/chunk-CKQ4DNNJ.mjs} +7 -18
  35. package/dist/chunks/chunk-DIJFKY6H.mjs +21 -0
  36. package/dist/{chunk-AUF4CHDP.mjs → chunks/chunk-DJOHDKTP.mjs} +18 -11
  37. package/dist/{chunk-3Z62EUJN.mjs → chunks/chunk-DKWZKYHF.mjs} +5 -5
  38. package/dist/{chunk-Y3L3D4GQ.mjs → chunks/chunk-DORUY7GR.mjs} +69 -34
  39. package/dist/chunks/chunk-DWBJKYLH.mjs +238 -0
  40. package/dist/{chunk-XQQCGFYB.mjs → chunks/chunk-EQLCJTM4.mjs} +1 -1
  41. package/dist/{chunk-VGLSBZDN.mjs → chunks/chunk-F2E2QCZM.mjs} +1 -1
  42. package/dist/{chunk-BZN2QHGP.mjs → chunks/chunk-F6AGZQDA.mjs} +4 -72
  43. package/dist/{chunk-ILUWFYGY.mjs → chunks/chunk-FNMLVZOA.mjs} +8 -8
  44. package/dist/{chunk-SXHVDJGF.mjs → chunks/chunk-FQAFGPW6.mjs} +6 -6
  45. package/dist/{chunk-N3TIT3OH.mjs → chunks/chunk-FSPE3M5E.mjs} +66 -43
  46. package/dist/{chunk-KNDZP446.mjs → chunks/chunk-FSWYYRPX.mjs} +5 -5
  47. package/dist/{chunk-KP2TWD4Z.mjs → chunks/chunk-FWNWV3H7.mjs} +1 -1
  48. package/dist/{chunk-WCG35U6M.mjs → chunks/chunk-FYVMRQFF.mjs} +35 -27
  49. package/dist/chunks/chunk-G3DIMENH.mjs +63 -0
  50. package/dist/{chunk-QQBXUDM4.mjs → chunks/chunk-G3DYNMWT.mjs} +20 -16
  51. package/dist/{chunk-J65DBT4R.mjs → chunks/chunk-GA6YZQYT.mjs} +3 -3
  52. package/dist/chunks/chunk-GAQLLQUM.mjs +20 -0
  53. package/dist/{chunk-TAHCOZHF.mjs → chunks/chunk-GN7VQCCH.mjs} +27 -30
  54. package/dist/{chunk-R6Y3R7EW.mjs → chunks/chunk-GOOBVFFH.mjs} +1 -1
  55. package/dist/chunks/chunk-GSW5OBEG.mjs +233 -0
  56. package/dist/{chunk-22ST6YPP.mjs → chunks/chunk-GTX6MLTG.mjs} +9 -9
  57. package/dist/{chunk-XUAASRXW.mjs → chunks/chunk-GWHRTGGC.mjs} +35 -27
  58. package/dist/{chunk-TQ6S34QZ.mjs → chunks/chunk-GXCLRRE5.mjs} +6 -6
  59. package/dist/{chunk-DP2IZNN3.mjs → chunks/chunk-HHBFQ6AI.mjs} +4 -3
  60. package/dist/{chunk-3OZLP4I4.mjs → chunks/chunk-HWT6UEYE.mjs} +14 -10
  61. package/dist/{chunk-X7T34OLW.mjs → chunks/chunk-I25SSZE3.mjs} +3 -3
  62. package/dist/{chunk-OGJ6IIBW.mjs → chunks/chunk-IFJPDARC.mjs} +21 -9
  63. package/dist/{chunk-CINXJIRR.mjs → chunks/chunk-ISU27QL2.mjs} +66 -6
  64. package/dist/{chunk-OXTFAWSK.mjs → chunks/chunk-J2WHJ73Y.mjs} +7 -2
  65. package/dist/{chunk-VN7CKCSE.mjs → chunks/chunk-JS47MSB2.mjs} +9 -1
  66. package/dist/{chunk-WYLILAOO.mjs → chunks/chunk-K44SD67H.mjs} +16 -7
  67. package/dist/{chunk-RQ3CKQOX.mjs → chunks/chunk-K7AGQTVK.mjs} +63 -3
  68. package/dist/{chunk-VVI3OBPJ.mjs → chunks/chunk-KCSMOAZO.mjs} +7 -9
  69. package/dist/{chunk-ARRGOEFX.mjs → chunks/chunk-L6GXEQOO.mjs} +7 -7
  70. package/dist/{chunk-7QQ6ETB4.mjs → chunks/chunk-LBNP5PJA.mjs} +14 -12
  71. package/dist/{chunk-AHYIS6EB.mjs → chunks/chunk-LC2ZEZWP.mjs} +7 -7
  72. package/dist/{chunk-3WEMHXZI.mjs → chunks/chunk-LTQH3LQJ.mjs} +2 -8
  73. package/dist/{chunk-OHGCZZPZ.mjs → chunks/chunk-M5PZVFY5.mjs} +57 -29
  74. package/dist/{chunk-A6ZQZFL2.mjs → chunks/chunk-NUHW3U7G.mjs} +14 -11
  75. package/dist/{chunk-QWQ6HY4I.mjs → chunks/chunk-O4BTKF5R.mjs} +9 -8
  76. package/dist/{chunk-WY4AURRE.mjs → chunks/chunk-P2Q4DYOS.mjs} +240 -83
  77. package/dist/{chunk-KVDEROP6.mjs → chunks/chunk-P563L7WL.mjs} +1 -1
  78. package/dist/{chunk-SDBPQ5CF.mjs → chunks/chunk-PJLFNUOW.mjs} +45 -30
  79. package/dist/{chunk-MTGMXRNF.mjs → chunks/chunk-PSDRVQSK.mjs} +7 -7
  80. package/dist/{chunk-6STOLMCA.mjs → chunks/chunk-QCBESCLG.mjs} +13 -12
  81. package/dist/{chunk-PRDVPOZX.mjs → chunks/chunk-QIYJUZ7I.mjs} +7 -2
  82. package/dist/{chunk-UPRXABX5.mjs → chunks/chunk-RH3OQ2VX.mjs} +6 -6
  83. package/dist/{chunk-QS76E3TD.mjs → chunks/chunk-RI32WIDX.mjs} +2 -2
  84. package/dist/{chunk-OWW3K55O.mjs → chunks/chunk-RIAPS5AW.mjs} +49 -7
  85. package/dist/{chunk-ERVQB2VZ.mjs → chunks/chunk-RJ3ZOZTS.mjs} +4 -4
  86. package/dist/{chunk-WFTX4AQJ.mjs → chunks/chunk-RKNL7UWZ.mjs} +19 -7
  87. package/dist/chunks/chunk-RLS3GMJ6.mjs +8 -0
  88. package/dist/{chunk-WRULPWHD.mjs → chunks/chunk-RVTEIKW5.mjs} +5 -5
  89. package/dist/{chunk-PLSDU3C2.mjs → chunks/chunk-RXQ22JQS.mjs} +67 -39
  90. package/dist/{chunk-FHTC2YDB.mjs → chunks/chunk-SVASYTK5.mjs} +70 -5
  91. package/dist/{chunk-ARB5T6MP.mjs → chunks/chunk-SWVOBJLG.mjs} +3 -100
  92. package/dist/{chunk-JGOVWSKH.mjs → chunks/chunk-TW3KLJVO.mjs} +37 -12
  93. package/dist/{chunk-RBLZRT5K.mjs → chunks/chunk-UF2TPGQB.mjs} +103 -15
  94. package/dist/{chunk-X4D7FKUS.mjs → chunks/chunk-UZWWYKL7.mjs} +2 -2
  95. package/dist/{chunk-LKC7MZKK.mjs → chunks/chunk-XECVYJE2.mjs} +16 -8
  96. package/dist/chunks/chunk-XMSAUIVL.mjs +1 -0
  97. package/dist/{chunk-J4RI2C2G.mjs → chunks/chunk-XPZTRMU2.mjs} +6 -6
  98. package/dist/{chunk-BABQKA6K.mjs → chunks/chunk-XXJRGDKE.mjs} +3 -3
  99. package/dist/{chunk-SALTGZFR.mjs → chunks/chunk-YVDVKLPR.mjs} +10 -9
  100. package/dist/circular/arc/index.mjs +3 -3
  101. package/dist/circular/index.d.mts +1 -1
  102. package/dist/circular/index.mjs +14 -13
  103. package/dist/controllers/index.mjs +113 -110
  104. package/dist/{datalabel.utils-CkjGeB8S.d.mts → datalabel.utils-CNRKHy7j.d.mts} +10 -1
  105. package/dist/{decimation.utils-CcvJVhI4.d.mts → decimation.utils-C0xpslz_.d.mts} +33 -2
  106. package/dist/geometry-BVWJedvw.d.mts +53 -0
  107. package/dist/index.d.mts +16 -17
  108. package/dist/index.mjs +113 -110
  109. package/dist/luminance-TvUgaQ91.d.mts +57 -0
  110. package/dist/orchestrator/index.d.mts +2 -2
  111. package/dist/orchestrator/index.mjs +36 -33
  112. package/dist/plugins/index.mjs +1 -1
  113. package/dist/{property-animations-D433wXzz.d.mts → property-animations-CI0zyp6V.d.mts} +6 -20
  114. package/dist/radial/index.mjs +40 -37
  115. package/dist/renderers/axis/index.mjs +9 -8
  116. package/dist/renderers/index.d.mts +8 -9
  117. package/dist/renderers/index.mjs +78 -75
  118. package/dist/renderers/navigator/index.d.mts +1 -1
  119. package/dist/renderers/navigator/index.mjs +10 -8
  120. package/dist/{ring.utils-DXvrxMkU.d.mts → ring.utils-aHt9Nqum.d.mts} +2 -7
  121. package/dist/{scale-KFv30jqZ.d.mts → scale-CFkPlyUe.d.mts} +2 -2
  122. package/dist/{scales-Drf8AIhL.d.mts → scales-BZzjlR4U.d.mts} +15 -1
  123. package/dist/series/bar/canvas/index.mjs +11 -10
  124. package/dist/series/bar/controller/index.d.mts +17 -0
  125. package/dist/series/bar/controller/index.mjs +47 -44
  126. package/dist/series/bar/controller-canvas/index.mjs +47 -44
  127. package/dist/series/bar/controller-svg/index.mjs +47 -44
  128. package/dist/series/bar/index.d.mts +2 -2
  129. package/dist/series/bar/index.mjs +16 -13
  130. package/dist/series/bar/svg/index.mjs +14 -11
  131. package/dist/series/candlestick/canvas/index.mjs +8 -8
  132. package/dist/series/candlestick/controller/index.d.mts +2 -0
  133. package/dist/series/candlestick/controller/index.mjs +43 -40
  134. package/dist/series/candlestick/controller-canvas/index.mjs +43 -40
  135. package/dist/series/candlestick/controller-svg/index.mjs +43 -40
  136. package/dist/series/candlestick/index.mjs +11 -10
  137. package/dist/series/candlestick/svg/index.mjs +8 -8
  138. package/dist/series/heatmap/canvas/index.mjs +9 -9
  139. package/dist/series/heatmap/controller/index.d.mts +9 -0
  140. package/dist/series/heatmap/controller/index.mjs +26 -23
  141. package/dist/series/heatmap/controller-canvas/index.mjs +26 -23
  142. package/dist/series/heatmap/controller-svg/index.mjs +26 -23
  143. package/dist/series/heatmap/index.mjs +14 -13
  144. package/dist/series/heatmap/svg/index.mjs +11 -10
  145. package/dist/series/line/canvas/index.mjs +9 -9
  146. package/dist/series/line/controller/index.d.mts +7 -0
  147. package/dist/series/line/controller/index.mjs +51 -47
  148. package/dist/series/line/controller-canvas/index.mjs +53 -49
  149. package/dist/series/line/controller-svg/index.mjs +53 -49
  150. package/dist/series/line/index.d.mts +1 -1
  151. package/dist/series/line/index.mjs +17 -13
  152. package/dist/series/line/svg/index.mjs +12 -9
  153. package/dist/series/pie/canvas/index.d.mts +12 -4
  154. package/dist/series/pie/canvas/index.mjs +15 -10
  155. package/dist/series/pie/controller/index.mjs +113 -110
  156. package/dist/series/pie/controller-canvas/index.mjs +113 -110
  157. package/dist/series/pie/controller-svg/index.mjs +113 -110
  158. package/dist/series/pie/index.d.mts +3 -56
  159. package/dist/series/pie/index.mjs +11 -15
  160. package/dist/series/pie/svg/index.d.mts +18 -4
  161. package/dist/series/pie/svg/index.mjs +10 -11
  162. package/dist/series/polar/canvas/index.mjs +7 -7
  163. package/dist/series/polar/controller/index.d.mts +9 -0
  164. package/dist/series/polar/controller/index.mjs +49 -46
  165. package/dist/series/polar/controller-canvas/index.mjs +50 -47
  166. package/dist/series/polar/controller-svg/index.mjs +50 -47
  167. package/dist/series/polar/index.d.mts +1 -1
  168. package/dist/series/polar/index.mjs +19 -16
  169. package/dist/series/polar/svg/index.mjs +11 -8
  170. package/dist/series/radar/canvas/index.mjs +8 -8
  171. package/dist/series/radar/controller/index.d.mts +11 -0
  172. package/dist/series/radar/controller/index.mjs +46 -43
  173. package/dist/series/radar/controller-canvas/index.mjs +49 -46
  174. package/dist/series/radar/controller-svg/index.mjs +49 -46
  175. package/dist/series/radar/index.d.mts +3 -3
  176. package/dist/series/radar/index.mjs +16 -13
  177. package/dist/series/radar/svg/index.mjs +12 -9
  178. package/dist/series/scatter/canvas/index.mjs +13 -11
  179. package/dist/series/scatter/controller/index.mjs +48 -44
  180. package/dist/series/scatter/controller-canvas/index.mjs +50 -46
  181. package/dist/series/scatter/controller-svg/index.mjs +50 -46
  182. package/dist/series/scatter/index.d.mts +1 -1
  183. package/dist/series/scatter/index.mjs +18 -14
  184. package/dist/series/scatter/svg/index.mjs +16 -12
  185. package/dist/series/treemap/canvas/index.mjs +10 -10
  186. package/dist/series/treemap/controller/index.mjs +23 -20
  187. package/dist/series/treemap/controller-canvas/index.mjs +23 -20
  188. package/dist/series/treemap/controller-svg/index.mjs +23 -20
  189. package/dist/series/treemap/index.d.mts +17 -9
  190. package/dist/series/treemap/index.mjs +12 -12
  191. package/dist/series/treemap/svg/index.mjs +9 -9
  192. package/dist/{stacking-CChuAcLN.d.mts → stacking-Dz1OBhzm.d.mts} +1 -1
  193. package/dist/sync/index.mjs +6 -5
  194. package/dist/{tooltip.renderer-D5wpSlBa.d.mts → tooltip.renderer-C3z-UKm4.d.mts} +4 -4
  195. package/dist/utils/color/index.d.mts +11 -53
  196. package/dist/utils/color/index.mjs +4 -4
  197. package/dist/utils/data/index.d.mts +2 -2
  198. package/dist/utils/data/index.mjs +7 -7
  199. package/dist/utils/export/index.mjs +6 -6
  200. package/dist/utils/index.d.mts +7 -7
  201. package/dist/utils/index.mjs +32 -29
  202. package/dist/utils/interaction/index.d.mts +1 -31
  203. package/dist/utils/interaction/index.mjs +12 -9
  204. package/dist/utils/layout/index.mjs +10 -10
  205. package/dist/utils/math/index.d.mts +1 -1
  206. package/dist/utils/math/index.mjs +1 -1
  207. package/dist/utils/render/index.mjs +3 -3
  208. package/dist/utils/specialized/index.d.mts +1 -1
  209. package/dist/utils/specialized/index.mjs +13 -15
  210. package/dist/utils/text/index.d.mts +1 -1
  211. package/dist/utils/text/index.mjs +9 -8
  212. package/dist/utils/theme/index.d.mts +6 -6
  213. package/dist/utils/theme/index.mjs +5 -5
  214. package/dist/utils/zoom/index.mjs +3 -3
  215. package/package.json +5 -10
  216. package/LICENSE +0 -23
  217. package/dist/canvas-D4vigq47.d.mts +0 -34
  218. package/dist/chunk-2QRS4YQ5.mjs +0 -18
  219. package/dist/chunk-53HW45JB.mjs +0 -102
  220. package/dist/chunk-B4FTADAZ.mjs +0 -561
  221. package/dist/chunk-IXOWSEHO.mjs +0 -114
  222. package/dist/chunk-VWF57TS3.mjs +0 -62
  223. package/dist/chunk-XIHBK5D3.mjs +0 -68
  224. package/dist/renderers/circular/index.d.mts +0 -13
  225. package/dist/renderers/circular/index.mjs +0 -13
  226. package/dist/{chunk-WA3OVISZ.mjs → chunks/chunk-4KQZXAHZ.mjs} +0 -0
  227. package/dist/{chunk-CHW4RKY3.mjs → chunks/chunk-576P5DBH.mjs} +0 -0
  228. package/dist/{chunk-EDAKJLNA.mjs → chunks/chunk-5WFF272M.mjs} +0 -0
  229. package/dist/{chunk-ADKLH73T.mjs → chunks/chunk-6XZ6U7GL.mjs} +0 -0
  230. package/dist/{chunk-2QK2KOBN.mjs → chunks/chunk-AOTUNMVD.mjs} +0 -0
  231. package/dist/{chunk-AGU3NG6D.mjs → chunks/chunk-AWMO5TS3.mjs} +0 -0
  232. package/dist/{chunk-SSLTFJ3U.mjs → chunks/chunk-BF7RP4A3.mjs} +132 -132
  233. /package/dist/{chunk-BETFQBM2.mjs → chunks/chunk-FML3QEEI.mjs} +0 -0
  234. /package/dist/{chunk-FFMT6OCO.mjs → chunks/chunk-FRVJH7ZG.mjs} +0 -0
  235. /package/dist/{chunk-HDFGCN2F.mjs → chunks/chunk-HBTCRORW.mjs} +0 -0
  236. /package/dist/{chunk-7CMVDIOU.mjs → chunks/chunk-HXDLOOCS.mjs} +0 -0
  237. /package/dist/{chunk-5JCI2DEB.mjs → chunks/chunk-JQVX6XFW.mjs} +0 -0
  238. /package/dist/{chunk-C36VWQ7A.mjs → chunks/chunk-KMKULH54.mjs} +0 -0
  239. /package/dist/{chunk-Q6PPVIHU.mjs → chunks/chunk-MT3OLVZC.mjs} +0 -0
  240. /package/dist/{chunk-WS64BZXT.mjs → chunks/chunk-OWVSSQZ4.mjs} +0 -0
  241. /package/dist/{chunk-EAMUNLRU.mjs → chunks/chunk-P2LG7GDM.mjs} +0 -0
  242. /package/dist/{chunk-IEGLX7VL.mjs → chunks/chunk-PXUXZADY.mjs} +0 -0
  243. /package/dist/{chunk-SANZPAJ4.mjs → chunks/chunk-SFUDXJKO.mjs} +0 -0
  244. /package/dist/{chunk-ZQFK6CAE.mjs → chunks/chunk-SJNUJM54.mjs} +0 -0
  245. /package/dist/{chunk-AP3UYWYT.mjs → chunks/chunk-SPU6BO3B.mjs} +0 -0
  246. /package/dist/{chunk-YBJ56XJS.mjs → chunks/chunk-T2UAEMHY.mjs} +0 -0
  247. /package/dist/{chunk-JO7VACY2.mjs → chunks/chunk-VADXCPQ4.mjs} +0 -0
  248. /package/dist/{chunk-FRST55HY.mjs → chunks/chunk-ZZCVDIU5.mjs} +0 -0
@@ -1,4 +1,4 @@
1
- import { raf, cancelRaf } from './chunk-EDAKJLNA.mjs';
1
+ import { raf, cancelRaf } from './chunk-5WFF272M.mjs';
2
2
 
3
3
  // src/utils/layout/resize.utils.ts
4
4
  var ResizeDebouncer = class {
@@ -1,19 +1,19 @@
1
- import { buildHeatmapFingerprint } from './chunk-SANZPAJ4.mjs';
2
- import { renderCanvasHeatmapContent } from './chunk-TQ6S34QZ.mjs';
3
- import { calculateHeatmapLayout, hitTestHeatmap } from './chunk-3Z62EUJN.mjs';
4
- import { triggerCompositorRepaint } from './chunk-Q6PPVIHU.mjs';
5
- import { renderAxisCanvas, calculateAxisLayout, calculateAxisSpace } from './chunk-ZTL2FQEW.mjs';
6
- import { AnimatedScene, resolveAnimatedProps, HEATMAP_ANIMATABLE_PROPS } from './chunk-VN7CKCSE.mjs';
7
- import { reconcileSvgChildren } from './chunk-KP2TWD4Z.mjs';
8
- import { parseAnimationConfig } from './chunk-3WEMHXZI.mjs';
9
- import { getResponsiveTier, getAdaptiveDefaults, getAdaptiveTickCount } from './chunk-YBJ56XJS.mjs';
10
- import { raf, cancelRaf } from './chunk-EDAKJLNA.mjs';
11
- import { buildAccessibilityRenderContext, generateSeriesDescription } from './chunk-OGJ6IIBW.mjs';
12
- import { collectItems } from './chunk-FFMT6OCO.mjs';
13
- import { DEFAULT_HOVER_BRIGHTNESS } from './chunk-NKUYIWAP.mjs';
14
- import { FIELD_DEFAULTS, batchResolveRequired } from './chunk-O2X6FF45.mjs';
15
- import { materializeSvgNode, setAttr } from './chunk-SSLTFJ3U.mjs';
16
- import { createBandScale } from './chunk-RQ3CKQOX.mjs';
1
+ import { buildHeatmapFingerprint } from './chunk-SFUDXJKO.mjs';
2
+ import { renderCanvasHeatmapContent } from './chunk-GXCLRRE5.mjs';
3
+ import { calculateHeatmapLayout, hitTestHeatmap } from './chunk-DKWZKYHF.mjs';
4
+ import { triggerCompositorRepaint } from './chunk-MT3OLVZC.mjs';
5
+ import { renderAxisCanvas, calculateAxisLayout, calculateAxisSpace } from './chunk-AETETRB4.mjs';
6
+ import { AnimatedScene, resolveAnimatedProps, HEATMAP_ANIMATABLE_PROPS } from './chunk-JS47MSB2.mjs';
7
+ import { reconcileSvgChildren } from './chunk-FWNWV3H7.mjs';
8
+ import { parseAnimationConfig } from './chunk-LTQH3LQJ.mjs';
9
+ import { getResponsiveTier, getAdaptiveDefaults, getAdaptiveTickCount } from './chunk-T2UAEMHY.mjs';
10
+ import { raf, cancelRaf } from './chunk-5WFF272M.mjs';
11
+ import { buildAccessibilityRenderContext, generateSeriesDescription } from './chunk-IFJPDARC.mjs';
12
+ import { collectItems } from './chunk-FRVJH7ZG.mjs';
13
+ import { DEFAULT_HOVER_BRIGHTNESS } from './chunk-6LUIVTNV.mjs';
14
+ import { FIELD_DEFAULTS, batchResolveRequired } from './chunk-BDCNBS6W.mjs';
15
+ import { materializeSvgNode, setAttr } from './chunk-BF7RP4A3.mjs';
16
+ import { createBandScale } from './chunk-K7AGQTVK.mjs';
17
17
 
18
18
  // src/series/heatmap/controller/index.ts
19
19
  function uniqueValues(values) {
@@ -99,28 +99,21 @@ var HeatmapRendererController = class {
99
99
  const sortedDatasets = Array.from(datasets.entries()).sort(([, a], [, b]) => a.order - b.order);
100
100
  this.heatmapDatasets = collectItems(sortedDatasets, datasetVisibility).heatmap;
101
101
  if (this.heatmapDatasets.length === 0) {
102
- this._cancelRaf();
103
- this._scene.reset();
104
- this._lastFingerprint = "";
105
- this._scaleResult = null;
106
- this._axisLayouts = /* @__PURE__ */ new Map();
107
- this._layoutResult = null;
108
- this.layoutCache.clear();
102
+ this._resetToEmpty();
109
103
  return;
110
104
  }
111
105
  const hd0 = this.heatmapDatasets[0];
112
- const xField = hd0.props.columnField ?? FIELD_DEFAULTS.columnField;
113
- const yField = hd0.props.rowField ?? FIELD_DEFAULTS.rowField;
114
- const xCategories = uniqueValues(batchResolveRequired(xField, hd0.props.data, "columnField"));
115
- const yCategories = uniqueValues(batchResolveRequired(yField, hd0.props.data, "rowField"));
106
+ const xField = hd0.props.categoryXField ?? FIELD_DEFAULTS.columnField;
107
+ const yField = hd0.props.categoryYField ?? FIELD_DEFAULTS.rowField;
108
+ const xCategories = uniqueValues(batchResolveRequired(xField, hd0.props.data, "categoryXField"));
109
+ const yCategories = uniqueValues(batchResolveRequired(yField, hd0.props.data, "categoryYField"));
116
110
  const { xScale, yScale, layouts: axLayouts, adjustedArea } = this.computeAxes(axes, xCategories, yCategories, chartArea, width, globalFont, locale);
117
111
  this._scaleResult = { xScale, yScale, xCategories, yCategories };
118
112
  this._axisLayouts = axLayouts;
119
113
  this._adjustedArea = adjustedArea;
120
114
  const visibleDatasets = this.heatmapDatasets.filter((d) => d.visible);
121
115
  if (visibleDatasets.length === 0) {
122
- this._layoutResult = null;
123
- this.layoutCache.clear();
116
+ this._resetToEmpty();
124
117
  return;
125
118
  }
126
119
  const cellLayouts = /* @__PURE__ */ new Map();
@@ -267,6 +260,28 @@ var HeatmapRendererController = class {
267
260
  get layouts() {
268
261
  return this.layoutCache;
269
262
  }
263
+ /**
264
+ * Reset all state to empty and clear the SVG cell group. Used when no heatmap
265
+ * datasets are registered OR all are toggled off via the legend. Emptying
266
+ * `_axisLayouts` makes the composable's renderHeatmapAxesSvg call clear the
267
+ * grid/axis groups, and resetting `_lastFingerprint` re-arms the entrance fade
268
+ * for when data returns. Mirrors the bar/scatter "returning-from-empty" reset
269
+ * so the now-ungated (always-mounted) group leaves nothing stale behind.
270
+ */
271
+ _resetToEmpty() {
272
+ this._cancelRaf();
273
+ this._scene.reset();
274
+ this._lastFingerprint = "";
275
+ this._scaleResult = null;
276
+ this._axisLayouts = /* @__PURE__ */ new Map();
277
+ this._layoutResult = null;
278
+ this.layoutCache.clear();
279
+ this.lastRenderedLayout = null;
280
+ this.lastInput?.compositor?.removeLayersByPrefix("heatmap:");
281
+ if (this.svgGroup) {
282
+ while (this.svgGroup.firstChild) this.svgGroup.removeChild(this.svgGroup.firstChild);
283
+ }
284
+ }
270
285
  destroy() {
271
286
  this._cancelRaf();
272
287
  this._scene.reset();
@@ -403,7 +418,7 @@ var HeatmapRendererController = class {
403
418
  cellIndexByDataset.set(datasetId, idx);
404
419
  }
405
420
  const cellsByDataset = /* @__PURE__ */ new Map();
406
- for (const el of this._scene.getElements()) {
421
+ for (const el of this._scene.elementValues()) {
407
422
  const s = el.current;
408
423
  const targetCell = cellIndexByDataset.get(s.datasetId)?.get(`${s.row}|${s.col}`);
409
424
  if (!targetCell) continue;
@@ -1,10 +1,10 @@
1
- import { getHeatmapLabelInfo, resolveLabelMidToAlpha } from './chunk-3Z62EUJN.mjs';
2
- import { renderAxisSvg } from './chunk-ZTL2FQEW.mjs';
3
- import { SVG_ELEMENT_CEILING_WARNING, resolveFontFamily, DEFAULT_HOVER_DIM_OPACITY, DEFAULT_HOVER_BRIGHTNESS } from './chunk-NKUYIWAP.mjs';
4
- import { getContrastColor } from './chunk-QS76E3TD.mjs';
5
- import { resolveAccessor, makeItemContext, resolveDash } from './chunk-O2X6FF45.mjs';
6
- import { createSvgGroup, adjustBrightness, createSvgRect, setAttr, appendChild, createSvgText, materializeSvgGroup } from './chunk-SSLTFJ3U.mjs';
7
- import { warnChartDevOnce } from './chunk-RQ3CKQOX.mjs';
1
+ import { getHeatmapLabelInfo, resolveLabelMidToAlpha } from './chunk-DKWZKYHF.mjs';
2
+ import { renderAxisSvg } from './chunk-AETETRB4.mjs';
3
+ import { SVG_ELEMENT_CEILING_WARNING, resolveFontFamily, DEFAULT_HOVER_DIM_OPACITY, DEFAULT_HOVER_BRIGHTNESS } from './chunk-6LUIVTNV.mjs';
4
+ import { getContrastColor } from './chunk-RI32WIDX.mjs';
5
+ import { resolveAccessor, makeItemContext, resolveDash } from './chunk-BDCNBS6W.mjs';
6
+ import { createSvgGroup, adjustBrightness, createSvgRect, setAttr, appendChild, createSvgText, materializeSvgGroup } from './chunk-BF7RP4A3.mjs';
7
+ import { warnChartDevOnce } from './chunk-K7AGQTVK.mjs';
8
8
 
9
9
  // src/series/heatmap/svg/index.ts
10
10
  function makeCellExtras(props, cell) {
@@ -1,12 +1,12 @@
1
- import { DEFAULT_MARKER_SHAPE } from './chunk-AP3UYWYT.mjs';
2
- import { isBoostActive } from './chunk-DTWTCFRG.mjs';
3
- import { MARKER_SHAPE_NAMES, buildMarkerShapePath, renderMarkerShapeSvg } from './chunk-PRDVPOZX.mjs';
4
- import { computeItemHoverState, applyHoverEffects, resolveSvgHoverFill } from './chunk-BZN2QHGP.mjs';
5
- import { formatPointDescription } from './chunk-OGJ6IIBW.mjs';
6
- import { DEFAULT_HOVER_DIM_OPACITY, SCATTER_SVG_CEILING_WARNING, DEFAULT_SCATTER_FILL_OPACITY, DEFAULT_HOVER_POINT_RADIUS_MULTIPLIER, DEFAULT_SCATTER_BORDER_WIDTH } from './chunk-NKUYIWAP.mjs';
7
- import { getPrimaryColor, makeItemContext, isGradientColor, createSvgGradientFromColor, resolveAccessor, resolveDash } from './chunk-O2X6FF45.mjs';
8
- import { createSvgGroup, createSvgDefs, svgClass, appendChild, createSvgPath, setAttr } from './chunk-SSLTFJ3U.mjs';
9
- import { warnChartDevOnce } from './chunk-RQ3CKQOX.mjs';
1
+ import { DEFAULT_MARKER_SHAPE } from './chunk-SPU6BO3B.mjs';
2
+ import { isBoostActive } from './chunk-5EQSFUBA.mjs';
3
+ import { MARKER_SHAPE_NAMES, buildMarkerShapePath, renderMarkerShapeSvg } from './chunk-QIYJUZ7I.mjs';
4
+ import { computeItemHoverState, applyHoverEffects, resolveSvgHoverFill } from './chunk-F6AGZQDA.mjs';
5
+ import { formatPointDescription } from './chunk-IFJPDARC.mjs';
6
+ import { DEFAULT_HOVER_DIM_OPACITY, SCATTER_SVG_CEILING_WARNING, DEFAULT_SCATTER_FILL_OPACITY, DEFAULT_HOVER_POINT_RADIUS_MULTIPLIER, DEFAULT_SCATTER_BORDER_WIDTH } from './chunk-6LUIVTNV.mjs';
7
+ import { getPrimaryColor, makeItemContext, isGradientColor, createSvgGradientFromColor, resolveAccessor, resolveDash } from './chunk-BDCNBS6W.mjs';
8
+ import { createSvgGroup, createSvgDefs, svgClass, appendChild, createSvgPath, setAttr } from './chunk-BF7RP4A3.mjs';
9
+ import { warnChartDevOnce } from './chunk-K7AGQTVK.mjs';
10
10
 
11
11
  // src/series/scatter/svg/index.ts
12
12
  function renderScatterSvg(props, layout, context) {
@@ -28,7 +28,8 @@ function renderScatterSvg(props, layout, context) {
28
28
  const resolveMarkerShape = (i, size, value, category) => resolveAccessor(props.markerShape, makeItemContext(scatterDataArr[i], i, { size, value, category, ...seriesExtras }), { arrayMode: "clip" }) ?? DEFAULT_MARKER_SHAPE;
29
29
  const resolvePointOpacity = (ctx) => resolveAccessor(props.opacity, ctx, { arrayMode: "clip" });
30
30
  const seriesIdx = layout.seriesIdx;
31
- const colorClassN = `p-chart-color-${seriesIdx % 10}`;
31
+ const colorIndex = layout.colorIndex;
32
+ const colorClassN = `p-chart-color-${colorIndex % 14}`;
32
33
  const hoveredIndex = boostActive ? null : props.interaction?.hoveredIndex ?? null;
33
34
  const anyHovered = hoveredIndex !== null;
34
35
  const a11y = context.accessibility;
@@ -59,7 +60,7 @@ function renderScatterSvg(props, layout, context) {
59
60
  const first = layout.visiblePoints[0];
60
61
  const seriesShape = resolveMarkerShape(first.dataIndex, first.radius, first.yValue, String(first.xValue));
61
62
  if (MARKER_SHAPE_NAMES.has(seriesShape)) {
62
- const themedSeriesColor = context.theme.series[seriesIdx % context.theme.series.length];
63
+ const themedSeriesColor = context.theme.series[colorIndex % context.theme.series.length];
63
64
  const CLASS_KEY = "__class__";
64
65
  const batches = /* @__PURE__ */ new Map();
65
66
  for (const pt of layout.visiblePoints) {
@@ -141,7 +142,7 @@ function renderScatterSvg(props, layout, context) {
141
142
  const { fill: ovFillAttr, overridden: fillOverridden } = resolveSvgHoverFill(fillAttr, isHovered, hoverBgOverride);
142
143
  fillAttr = ovFillAttr;
143
144
  const markerCls = svgClass("p-chart-marker", `p-chart-series-${seriesIdx}`, fillAttr === void 0 && colorClassN, isHovered && !fillOverridden && "p-chart-point-hover", isInactive && "p-chart-point-inactive");
144
- const themedSeriesColor = context.theme.series[seriesIdx % context.theme.series.length];
145
+ const themedSeriesColor = context.theme.series[colorIndex % context.theme.series.length];
145
146
  const strokeStr = strokeColor === void 0 ? void 0 : strokeColor;
146
147
  const useInlineStroke = fillAttr === void 0 && baseBorderColorShared !== void 0 && strokeStr !== void 0;
147
148
  const markerAttrs = {
@@ -1,4 +1,4 @@
1
- import { withCanvasState, createSvgCircle, createSvgPath, createSvgRect } from './chunk-SSLTFJ3U.mjs';
1
+ import { withCanvasState, createSvgCircle, createSvgPath, createSvgRect } from './chunk-BF7RP4A3.mjs';
2
2
 
3
3
  // src/renderers/marker.utils.ts
4
4
  var MARKER_SHAPE_NAMES = /* @__PURE__ */ new Set(["circle", "square", "triangle", "cross", "star"]);
@@ -51,7 +51,7 @@ function buildMarkerShapePath(shape, cx, cy, size) {
51
51
  }
52
52
  }
53
53
  function drawMarkerCanvas(ctx, opts) {
54
- const { x, y, size, shape, fillStyle, strokeStyle, lineStrokeWidth, opacity, fillOpacity, rotation, lineDash, lineDashOffset, lineJoin } = opts;
54
+ const { x, y, size, shape, fillStyle, strokeStyle, lineStrokeWidth, opacity, fillOpacity, rotation, lineDash, lineDashOffset, lineJoin, brightnessOverlay } = opts;
55
55
  withCanvasState(ctx, () => {
56
56
  ctx.translate(x, y);
57
57
  if (rotation) ctx.rotate(rotation * Math.PI / 180);
@@ -60,6 +60,11 @@ function drawMarkerCanvas(ctx, opts) {
60
60
  ctx.fillStyle = fillStyle;
61
61
  ctx.globalAlpha = opacity * (fillOpacity ?? 1);
62
62
  ctx.fill();
63
+ if (brightnessOverlay && brightnessOverlay > 0) {
64
+ ctx.fillStyle = "#ffffff";
65
+ ctx.globalAlpha = brightnessOverlay * opacity;
66
+ ctx.fill();
67
+ }
63
68
  if (lineStrokeWidth > 0) {
64
69
  ctx.globalAlpha = opacity;
65
70
  ctx.strokeStyle = strokeStyle;
@@ -1,9 +1,9 @@
1
- import { BASELINE_TO_CANVAS } from './chunk-66T4MRC5.mjs';
2
- import { formatDataLabelText } from './chunk-OXTFAWSK.mjs';
3
- import { svgAnchorToCanvasAlign } from './chunk-XTVE4P3L.mjs';
4
- import { DEFAULT_LABEL_SPACING } from './chunk-NKUYIWAP.mjs';
5
- import { makeItemContext, resolveAccessor } from './chunk-O2X6FF45.mjs';
6
- import { toRad } from './chunk-RQ3CKQOX.mjs';
1
+ import { BASELINE_TO_CANVAS } from './chunk-7IKKWWRT.mjs';
2
+ import { formatDataLabelText } from './chunk-J2WHJ73Y.mjs';
3
+ import { svgAnchorToCanvasAlign } from './chunk-56MASQS2.mjs';
4
+ import { DEFAULT_LABEL_SPACING } from './chunk-6LUIVTNV.mjs';
5
+ import { makeItemContext, resolveAccessor } from './chunk-BDCNBS6W.mjs';
6
+ import { toRad } from './chunk-K7AGQTVK.mjs';
7
7
 
8
8
  // src/radial/label.ts
9
9
  function resolvePolarLabels(bars, datasetTotal, center, config, data) {
@@ -1,5 +1,5 @@
1
- import { isGradientColor } from './chunk-O2X6FF45.mjs';
2
- import { parseColorToRGB, parseHexColor, parseColorToRGBA } from './chunk-SSLTFJ3U.mjs';
1
+ import { isGradientColor } from './chunk-BDCNBS6W.mjs';
2
+ import { parseColorToRGB, parseHexColor, parseColorToRGBA } from './chunk-BF7RP4A3.mjs';
3
3
 
4
4
  // src/utils/color/luminance.ts
5
5
  function calculateLuminanceFromRGB(r, g, b) {
@@ -1,4 +1,4 @@
1
- import { FIELD_DEFAULTS } from './chunk-O2X6FF45.mjs';
1
+ import { resolveCartesianAccessors } from './chunk-G3DIMENH.mjs';
2
2
 
3
3
  // src/utils/specialized/exportMenu.utils.ts
4
4
  var EXPORT_MENU_CONSTANTS = {
@@ -283,6 +283,36 @@ function decimateKMeans(xValues, yValues, targetCount) {
283
283
  }
284
284
  return result;
285
285
  }
286
+ function decimatePixelSkip(xValues, yValues, domainX, domainY, plotWidth, plotHeight, minDistance) {
287
+ const n = xValues.length;
288
+ const md = minDistance > 0 ? minDistance : 1;
289
+ const spanX = domainX.max - domainX.min || 1;
290
+ const spanY = domainY.max - domainY.min || 1;
291
+ const cellX = md * spanX / (plotWidth || md) || 1;
292
+ const cellY = md * spanY / (plotHeight || md) || 1;
293
+ const seen = /* @__PURE__ */ new Set();
294
+ const result = [];
295
+ for (let i = 0; i < n; i++) {
296
+ const cx = Math.floor(xValues[i] / cellX);
297
+ const cy = Math.floor(yValues[i] / cellY);
298
+ const key = cx + "," + cy;
299
+ if (!seen.has(key)) {
300
+ seen.add(key);
301
+ result.push(i);
302
+ }
303
+ }
304
+ return result;
305
+ }
306
+ function extentOf(values) {
307
+ if (values.length === 0) return { min: 0, max: 1 };
308
+ let min = Infinity;
309
+ let max = -Infinity;
310
+ for (let i = 0; i < values.length; i++) {
311
+ if (values[i] < min) min = values[i];
312
+ if (values[i] > max) max = values[i];
313
+ }
314
+ return { min, max };
315
+ }
286
316
  var DEFAULT_SAMPLES = 500;
287
317
  function decimate(yValues, config, xValues) {
288
318
  const samples = config.samples ?? DEFAULT_SAMPLES;
@@ -308,16 +338,20 @@ var ScatterDecimator = class {
308
338
  * Apply viewport-aware decimation to scatter datasets.
309
339
  * Returns a new array with the same shape as `datasets`, with `props.data` replaced where decimated.
310
340
  */
311
- apply(datasets, config, zoomX, zoomY) {
341
+ apply(datasets, config, zoomX, zoomY, plot) {
312
342
  const samples = config.samples ?? DEFAULT_SAMPLES;
313
343
  const threshold = config.threshold ?? samples;
344
+ const plotW = plot?.width && plot.width > 0 ? plot.width : 800;
345
+ const plotH = plot?.height && plot.height > 0 ? plot.height : 600;
346
+ const minDistance = Math.sqrt(plotW * plotH / Math.max(1, samples));
314
347
  const activeDataRefs = /* @__PURE__ */ new Set();
315
348
  const result = datasets.map((sd) => {
316
349
  const originalData = sd.props.data ?? [];
317
350
  if (originalData.length <= threshold && !zoomX && !zoomY) return sd;
318
351
  activeDataRefs.add(originalData);
319
- const xField = String(sd.props.xField ?? FIELD_DEFAULTS.xField);
320
- const yField = String(sd.props.yField ?? FIELD_DEFAULTS.yField);
352
+ const acc = resolveCartesianAccessors(sd.props);
353
+ const xField = String(acc.independentField ?? "");
354
+ const yField = String(acc.measureField ?? "");
321
355
  let visibleData = originalData;
322
356
  if (zoomX || zoomY) {
323
357
  visibleData = originalData.filter((row) => {
@@ -336,8 +370,16 @@ var ScatterDecimator = class {
336
370
  }
337
371
  const xVals = visibleData.map((r) => r[xField]);
338
372
  const yVals = visibleData.map((r) => r[yField]);
339
- const decimated = decimateKMeans(xVals, yVals, samples);
340
- const decimatedData = decimated.map((pt) => ({ [xField]: pt.x, [yField]: pt.y }));
373
+ const domainX = zoomX ?? extentOf(xVals);
374
+ const domainY = zoomY ?? extentOf(yVals);
375
+ let keep = decimatePixelSkip(xVals, yVals, domainX, domainY, plotW, plotH, minDistance);
376
+ if (keep.length > samples) {
377
+ const step = keep.length / samples;
378
+ const capped = new Array(samples);
379
+ for (let i = 0; i < samples; i++) capped[i] = keep[Math.floor(i * step)];
380
+ keep = capped;
381
+ }
382
+ const decimatedData = keep.map((i) => visibleData[i]);
341
383
  this.cache.set(originalData, { samples, viewportKey: vpKey, result: decimatedData });
342
384
  return { ...sd, props: { ...sd.props, data: decimatedData } };
343
385
  });
@@ -348,4 +390,4 @@ var ScatterDecimator = class {
348
390
  }
349
391
  };
350
392
 
351
- export { DEFAULT_EXPORT_MENU_ITEMS, DEFAULT_EXPORT_MENU_PROPS, EXPORT_MENU_CONSTANTS, EXPORT_MENU_LABELS, HAMBURGER_ICON_PATH, ScatterDecimator, decimate, decimateKMeans, decimateLTTB, decimateMinMax, estimateExportMenuHeight, filterExportMenuItems, getExportAction, isExportMenuSeparator, resolveExportMenuPlacement, resolveExportMenuProps };
393
+ export { DEFAULT_EXPORT_MENU_ITEMS, DEFAULT_EXPORT_MENU_PROPS, EXPORT_MENU_CONSTANTS, EXPORT_MENU_LABELS, HAMBURGER_ICON_PATH, ScatterDecimator, decimate, decimateKMeans, decimateLTTB, decimateMinMax, decimatePixelSkip, estimateExportMenuHeight, filterExportMenuItems, getExportAction, isExportMenuSeparator, resolveExportMenuPlacement, resolveExportMenuProps };
@@ -1,6 +1,6 @@
1
- import { drawCanvasArc } from './chunk-LVMDQ4OJ.mjs';
2
- import { getDefaultColor, createCanvasGradientFromColor } from './chunk-O2X6FF45.mjs';
3
- import { adjustBrightness, withCanvasState } from './chunk-SSLTFJ3U.mjs';
1
+ import { drawCanvasArc } from './chunk-4S3FOFCN.mjs';
2
+ import { getDefaultColor, createCanvasGradientFromColor } from './chunk-BDCNBS6W.mjs';
3
+ import { adjustBrightness, withCanvasState } from './chunk-BF7RP4A3.mjs';
4
4
 
5
5
  // src/series/polar/canvas/index.ts
6
6
  function renderPolarBarsCanvas(ctx, layout, hoverState, effectConfig, theme) {
@@ -12,7 +12,7 @@ function renderPolarBarsCanvas(ctx, layout, hoverState, effectConfig, theme) {
12
12
  const isSeriesHover = sharedAxisIdx === null && hoverState.datasetId !== null && hoverState.index == null;
13
13
  const isHovered = sharedAxisIdx !== null ? bar.categoryIndex === sharedAxisIdx : isSeriesHover ? hoverState.datasetId === bar.datasetId : hoverState.datasetId === bar.datasetId && hoverState.index === bar.categoryIndex;
14
14
  const gradColor = layout.gradientColors.get(bar.datasetId);
15
- const baseColor = bar.color ?? getDefaultColor(bar.seriesIdx, theme);
15
+ const baseColor = bar.color ?? getDefaultColor(bar.colorIndex, theme);
16
16
  let fillColor = baseColor;
17
17
  let opacity = bar.opacity ?? 1;
18
18
  if (anyHover) {
@@ -1,5 +1,7 @@
1
- import { formatTimeLabel, formatHitValue, formatCursorValue } from './chunk-DP2IZNN3.mjs';
2
- import { getColor, resolveSwatchColor, asGradient } from './chunk-O2X6FF45.mjs';
1
+ import { formatTimeLabel, formatHitValue, formatCursorValue } from './chunk-HHBFQ6AI.mjs';
2
+ import { formatTooltipValue } from './chunk-56MASQS2.mjs';
3
+ import { getColor, resolveSwatchColor, asGradient } from './chunk-BDCNBS6W.mjs';
4
+ import { resolveCartesianAccessors } from './chunk-G3DIMENH.mjs';
3
5
 
4
6
  // src/cartesian/hittest-wrappers/line.ts
5
7
  function lineHitTest(x, y, ctx) {
@@ -10,7 +12,8 @@ function lineHitTest(x, y, ctx) {
10
12
  if (hitIndex !== null) {
11
13
  const pt = lineLayout.visiblePoints.find((p) => p.dataIndex === hitIndex);
12
14
  if (!pt) continue;
13
- const color = getColor({ color: lineLayout.lineColor }, lineLayout.seriesIdx, void 0, ctx.theme);
15
+ const color = getColor({ color: lineLayout.lineColor }, lineLayout.colorIndex, void 0, ctx.theme);
16
+ const acc = resolveCartesianAccessors(props);
14
17
  const rawLabel = pt.category ?? String(hitIndex);
15
18
  const label = formatTimeLabel(String(rawLabel), ctx.layoutData);
16
19
  return {
@@ -22,7 +25,16 @@ function lineHitTest(x, y, ctx) {
22
25
  y: pt.y,
23
26
  color,
24
27
  colorGradient: asGradient(lineLayout.lineColor),
25
- swatchColor: resolveSwatchColor({ color: lineLayout.lineColor }, lineLayout.seriesIdx, void 0, ctx.theme)
28
+ swatchColor: resolveSwatchColor({ color: lineLayout.lineColor }, lineLayout.colorIndex, void 0, ctx.theme),
29
+ independentIsCategory: acc.independentIsCategory,
30
+ // Numeric-x line → xy tooltip (x/y values + axis-title labels). Category/time
31
+ // line keeps the classical category header + value (no xValue/yValue set).
32
+ ...acc.independentIsCategory ? {} : {
33
+ xValue: pt.category != null ? Number(pt.category) : hitIndex,
34
+ yValue: pt.value ?? 0,
35
+ xAxisTitle: ctx.layoutData?.xAxisLayout?.title?.text,
36
+ yAxisTitle: ctx.layoutData?.yAxisLayout?.title?.text
37
+ }
26
38
  };
27
39
  }
28
40
  }
@@ -63,14 +75,14 @@ function lineFindAllNearest(x, y, ctx) {
63
75
  }
64
76
  }
65
77
  if (!pt || nearestXDist > halfStep) continue;
66
- const color = getColor({ color: layout.lineColor }, layout.seriesIdx, void 0, ctx.theme);
78
+ const color = getColor({ color: layout.lineColor }, layout.colorIndex, void 0, ctx.theme);
67
79
  const colorGradient = asGradient(layout.lineColor);
68
- const swatchColor = resolveSwatchColor({ color: layout.lineColor }, layout.seriesIdx, void 0, ctx.theme);
80
+ const swatchColor = resolveSwatchColor({ color: layout.lineColor }, layout.colorIndex, void 0, ctx.theme);
69
81
  const value = pt.value ?? 0;
70
82
  const rawLabel = pt.category ?? String(pt.dataIndex);
71
83
  const label = formatTimeLabel(String(rawLabel), layoutData);
72
84
  const lineProps = renderPropsCache.get(datasetId);
73
- const formattedValue = lineProps ? formatHitValue(value, lineProps, "vertical", layoutData) : String(value);
85
+ const formattedValue = lineProps ? formatHitValue(value, lineProps, "vertical", layoutData) : formatTooltipValue(value);
74
86
  const cursorFormattedValue = lineProps ? formatCursorValue(x, y, lineProps, "vertical", layoutData) : formattedValue;
75
87
  const name = lineProps?.name;
76
88
  allSeries.push({ datasetId, name, label, color, colorGradient, swatchColor, value, formattedValue, cursorFormattedValue, snapPixel: pt.y });
@@ -0,0 +1,8 @@
1
+ // src/cartesian/band.utils.ts
2
+ function bandCenter(scale, category, index) {
3
+ const left = scale(category);
4
+ const bw = index != null && scale.bandwidthAt ? scale.bandwidthAt(index) : scale.bandwidth();
5
+ return left + bw / 2;
6
+ }
7
+
8
+ export { bandCenter };
@@ -1,4 +1,4 @@
1
- import { createLinearScale } from './chunk-RQ3CKQOX.mjs';
1
+ import { createLinearScale } from './chunk-K7AGQTVK.mjs';
2
2
 
3
3
  // src/utils/zoom/calculations.ts
4
4
  function resolveLimit(limit, originalValue) {
@@ -114,9 +114,9 @@ function buildZoomScales(layoutData, zoomState) {
114
114
  const isVertical = layoutData.orientation === "vertical";
115
115
  const timeScale = layoutData.sharedTimeScale;
116
116
  const firstValueScale = layoutData.valueScales.values().next().value;
117
- const scatterXScale = layoutData.scatterXScales?.values().next().value;
117
+ const valueXScale = layoutData.valueXScales?.values().next().value;
118
118
  let categoryIndexScale;
119
- if (!timeScale && !scatterXScale) {
119
+ if (!timeScale && !valueXScale) {
120
120
  const origDomain = isVertical ? layoutData.originalDomains?.x : layoutData.originalDomains?.y;
121
121
  const catRange = isVertical ? [layoutData.cartesianArea.x, layoutData.cartesianArea.x + layoutData.cartesianArea.width] : [layoutData.cartesianArea.y, layoutData.cartesianArea.y + layoutData.cartesianArea.height];
122
122
  if (origDomain) {
@@ -134,8 +134,8 @@ function buildZoomScales(layoutData, zoomState) {
134
134
  }
135
135
  }
136
136
  }
137
- const xScale = isVertical ? timeScale ?? scatterXScale ?? categoryIndexScale ?? void 0 : firstValueScale;
138
- const yScale = isVertical ? firstValueScale : timeScale ?? scatterXScale ?? categoryIndexScale ?? void 0;
137
+ const xScale = isVertical ? timeScale ?? valueXScale ?? categoryIndexScale ?? void 0 : firstValueScale;
138
+ const yScale = isVertical ? firstValueScale : timeScale ?? valueXScale ?? categoryIndexScale ?? void 0;
139
139
  return { x: xScale, y: yScale };
140
140
  }
141
141