@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,14 +1,17 @@
1
- import { renderCandlestickSvg } from './chunk-CINXJIRR.mjs';
2
- import { renderCandlestickCanvas } from './chunk-FHTC2YDB.mjs';
3
- import { DEFAULT_CANDLESTICK_WICK_WIDTH } from './chunk-NKUYIWAP.mjs';
4
- import { FIELD_DEFAULTS, batchResolveAccessor, resolveAccessor, makeItemContext, resolveDash } from './chunk-O2X6FF45.mjs';
1
+ import { renderCandlestickSvg } from './chunk-ISU27QL2.mjs';
2
+ import { renderCandlestickCanvas } from './chunk-SVASYTK5.mjs';
3
+ import { DEFAULT_CANDLESTICK_WICK_WIDTH } from './chunk-6LUIVTNV.mjs';
4
+ import { FIELD_DEFAULTS, batchResolveAccessor, resolveAccessor, makeItemContext, resolveDash } from './chunk-BDCNBS6W.mjs';
5
+ import { resolveCartesianAccessors } from './chunk-G3DIMENH.mjs';
5
6
 
6
7
  // src/series/candlestick/geometry.ts
7
8
  var DEFAULT_BAR_WIDTH_RATIO = 0.7;
8
9
  function calculateCandlestickLayout(props, chartArea, config, theme) {
10
+ const acc = resolveCartesianAccessors(props);
11
+ const time = acc.independentField;
12
+ const horizontal = acc.orientation === "horizontal";
9
13
  const {
10
14
  data,
11
- timeField: time,
12
15
  openField: openAcc = FIELD_DEFAULTS.openField,
13
16
  highField: highAcc = FIELD_DEFAULTS.highField,
14
17
  lowField: lowAcc = FIELD_DEFAULTS.lowField,
@@ -80,7 +83,7 @@ function calculateCandlestickLayout(props, chartArea, config, theme) {
80
83
  const useClass = perCandleColor === void 0 && directionUserColor === void 0 && directionUserBorder === void 0 && borderColor === void 0 ? effectiveDirection : null;
81
84
  const left = cx - bodyWidth / 2;
82
85
  const right = cx + bodyWidth / 2;
83
- const visible = right >= chartArea.x && left <= chartArea.x + chartArea.width && highY <= chartArea.y + chartArea.height && lowY >= chartArea.y;
86
+ const visible = horizontal ? right >= chartArea.y && left <= chartArea.y + chartArea.height && Math.max(highY, lowY) >= chartArea.x && Math.min(highY, lowY) <= chartArea.x + chartArea.width : right >= chartArea.x && left <= chartArea.x + chartArea.width && highY <= chartArea.y + chartArea.height && lowY >= chartArea.y;
84
87
  const candleCtx = makeItemContext(data[i], i, { value: c, category: label, ...seriesExtras });
85
88
  const wickStrokeWidth = resolveAccessor(wickStrokeWidthProp, candleCtx, { arrayMode: "clip", fallback: DEFAULT_CANDLESTICK_WICK_WIDTH }) ?? DEFAULT_CANDLESTICK_WICK_WIDTH;
86
89
  const candleBorderDash = resolveDash(borderDashProp, candleCtx);
@@ -109,6 +112,7 @@ function calculateCandlestickLayout(props, chartArea, config, theme) {
109
112
  borderDash: candleBorderDash,
110
113
  borderDashOffset: candleBorderDashOffset,
111
114
  useClass,
115
+ orientation: horizontal ? "horizontal" : "vertical",
112
116
  visible
113
117
  });
114
118
  }
@@ -146,9 +150,8 @@ function calculateCandlestickLayout(props, chartArea, config, theme) {
146
150
  function hitTestCandlestick(x, y, layout) {
147
151
  for (const candle of layout.visibleCandles) {
148
152
  const halfBody = candle.bodyWidth / 2;
149
- if (Math.abs(x - candle.x) <= halfBody && y >= candle.wickTop && y <= candle.wickBottom) {
150
- return candle.dataIndex;
151
- }
153
+ const hit = candle.orientation === "horizontal" ? Math.abs(y - candle.x) <= halfBody && x >= Math.min(candle.wickTop, candle.wickBottom) && x <= Math.max(candle.wickTop, candle.wickBottom) : Math.abs(x - candle.x) <= halfBody && y >= candle.wickTop && y <= candle.wickBottom;
154
+ if (hit) return candle.dataIndex;
152
155
  }
153
156
  return null;
154
157
  }
@@ -177,7 +180,8 @@ var candlestickRenderer = {
177
180
  return hitTestCandlestick(x, y, layout);
178
181
  },
179
182
  getAxisHints(props, data) {
180
- const categoryLabels = batchResolveAccessor(props.timeField, data);
183
+ const independentField = resolveCartesianAccessors(props).independentField;
184
+ const categoryLabels = batchResolveAccessor(independentField, data);
181
185
  const highVals = batchResolveAccessor(props.highField ?? FIELD_DEFAULTS.highField, data);
182
186
  const lowVals = batchResolveAccessor(props.lowField ?? FIELD_DEFAULTS.lowField, data);
183
187
  return {
@@ -1,6 +1,6 @@
1
- import { computeBarRenderStates, traceRoundedRect, tracePartialBorder } from './chunk-AUF4CHDP.mjs';
2
- import { isGradientColor, createCanvasGradientFromColor } from './chunk-O2X6FF45.mjs';
3
- import { readCssNumber, withCanvasState } from './chunk-SSLTFJ3U.mjs';
1
+ import { computeBarRenderStates, traceRoundedRect, tracePartialBorder } from './chunk-DJOHDKTP.mjs';
2
+ import { isGradientColor, createCanvasGradientFromColor } from './chunk-BDCNBS6W.mjs';
3
+ import { readCssNumber, withCanvasState } from './chunk-BF7RP4A3.mjs';
4
4
 
5
5
  // src/series/bar/canvas/index.ts
6
6
  function createCanvasPathBuilder(ctx) {
@@ -1,4 +1,7 @@
1
- import { batchResolveAccessor, FIELD_DEFAULTS } from './chunk-O2X6FF45.mjs';
1
+ import { resolveRadialAccessors } from './chunk-6MAO6I3E.mjs';
2
+ import { safeFormat } from './chunk-DIJFKY6H.mjs';
3
+ import { batchResolveAccessor, FIELD_DEFAULTS } from './chunk-BDCNBS6W.mjs';
4
+ import { resolveCartesianAccessors } from './chunk-G3DIMENH.mjs';
2
5
 
3
6
  // src/utils/interaction/accessibility.utils.ts
4
7
  var CHART_TYPE_LABELS = {
@@ -60,7 +63,12 @@ function generatePiePointDescription(label, value, percentage) {
60
63
  return `${label}: ${value}.`;
61
64
  }
62
65
  function formatPointDescription(context, formatter) {
63
- if (formatter) return formatter(context);
66
+ if (formatter)
67
+ return safeFormat(
68
+ () => formatter(context),
69
+ () => formatPointDescription(context, void 0),
70
+ "point description"
71
+ );
64
72
  if (context.percentage !== void 0) {
65
73
  return generatePiePointDescription(context.category, context.value, context.percentage);
66
74
  }
@@ -106,8 +114,9 @@ function buildChartDataTable(datasets, maxRows = DEFAULT_DATA_TABLE_MAX_ROWS, ce
106
114
  entries.forEach((ds, i) => {
107
115
  const props = ds.props;
108
116
  const data = props.data ?? [];
109
- const xs = batchResolveAccessor(pickField(props, "xField", FIELD_DEFAULTS.xField), data);
110
- const ys = batchResolveAccessor(pickField(props, "yField", FIELD_DEFAULTS.yField), data);
117
+ const acc = resolveCartesianAccessors(props);
118
+ const xs = batchResolveAccessor(acc.independentField ?? FIELD_DEFAULTS.xField, data);
119
+ const ys = batchResolveAccessor(acc.measureField ?? FIELD_DEFAULTS.yField, data);
111
120
  data.forEach((_, r) => {
112
121
  const row = [xs[r] ?? "", ys[r] ?? ""];
113
122
  rows.push(multi ? [seriesName(props, i), ...row] : row);
@@ -118,7 +127,7 @@ function buildChartDataTable(datasets, maxRows = DEFAULT_DATA_TABLE_MAX_ROWS, ce
118
127
  caption = "Candlestick chart data";
119
128
  const props = entries[0].props;
120
129
  const data = props.data ?? [];
121
- const times = batchResolveAccessor(pickField(props, "timeField", "time"), data);
130
+ const times = batchResolveAccessor(resolveCartesianAccessors(props).independentField, data);
122
131
  const opens = batchResolveAccessor(pickField(props, "openField", FIELD_DEFAULTS.openField), data);
123
132
  const highs = batchResolveAccessor(pickField(props, "highField", FIELD_DEFAULTS.highField), data);
124
133
  const lows = batchResolveAccessor(pickField(props, "lowField", FIELD_DEFAULTS.lowField), data);
@@ -129,8 +138,8 @@ function buildChartDataTable(datasets, maxRows = DEFAULT_DATA_TABLE_MAX_ROWS, ce
129
138
  caption = "Heatmap chart data";
130
139
  const props = entries[0].props;
131
140
  const data = props.data ?? [];
132
- const ys = batchResolveAccessor(pickField(props, "yField", FIELD_DEFAULTS.yField), data);
133
- const xs = batchResolveAccessor(pickField(props, "xField", FIELD_DEFAULTS.xField), data);
141
+ const ys = batchResolveAccessor(pickField(props, "categoryYField", FIELD_DEFAULTS.rowField), data);
142
+ const xs = batchResolveAccessor(pickField(props, "categoryXField", FIELD_DEFAULTS.columnField), data);
134
143
  const vals = batchResolveAccessor(pickField(props, "valueField", FIELD_DEFAULTS.valueField), data);
135
144
  data.forEach((_, r) => rows.push([String(ys[r] ?? r), String(xs[r] ?? r), vals[r] ?? ""]));
136
145
  } else if (type === "pie") {
@@ -144,11 +153,14 @@ function buildChartDataTable(datasets, maxRows = DEFAULT_DATA_TABLE_MAX_ROWS, ce
144
153
  } else {
145
154
  columns = multi ? ["Series", "Category", "Value"] : ["Category", "Value"];
146
155
  caption = `${CHART_TYPE_LABELS[type] ?? "Chart"} chart data`;
156
+ const isRadial = type === "radar" || type === "polar";
147
157
  entries.forEach((ds, i) => {
148
158
  const props = ds.props;
149
159
  const data = props.data ?? [];
150
- const cats = batchResolveAccessor(pickField(props, "categoryField", FIELD_DEFAULTS.categoryField), data);
151
- const vals = batchResolveAccessor(pickField(props, "valueField", FIELD_DEFAULTS.valueField), data);
160
+ const catAcc = isRadial ? resolveRadialAccessors(props).angularField : resolveCartesianAccessors(props).independentField;
161
+ const valAcc = isRadial ? resolveRadialAccessors(props).radialField : resolveCartesianAccessors(props).measureField;
162
+ const cats = batchResolveAccessor(catAcc ?? FIELD_DEFAULTS.categoryField, data);
163
+ const vals = batchResolveAccessor(valAcc ?? FIELD_DEFAULTS.valueField, data);
152
164
  data.forEach((_, r) => {
153
165
  const row = [String(cats[r] ?? r), vals[r] ?? ""];
154
166
  rows.push(multi ? [seriesName(props, i), ...row] : row);
@@ -1,8 +1,8 @@
1
- import { traceRoundedRect } from './chunk-CHW4RKY3.mjs';
2
- import { resolveBorderRadius, clampRectBorderRadius, hasBorderRadius } from './chunk-VGLSBZDN.mjs';
3
- import { DEFAULT_HOVER_DIM_OPACITY } from './chunk-NKUYIWAP.mjs';
4
- import { resolveAccessor, makeItemContext } from './chunk-O2X6FF45.mjs';
5
- import { createSvgGroup, setAttr, appendChild, createSvgLine, createSvgPath, createSvgRect } from './chunk-SSLTFJ3U.mjs';
1
+ import { traceRoundedRect } from './chunk-576P5DBH.mjs';
2
+ import { clampRectBorderRadius, resolveBorderRadius, hasBorderRadius } from './chunk-F2E2QCZM.mjs';
3
+ import { DEFAULT_HOVER_DIM_OPACITY } from './chunk-6LUIVTNV.mjs';
4
+ import { resolveAccessor, makeItemContext } from './chunk-BDCNBS6W.mjs';
5
+ import { createSvgGroup, setAttr, appendChild, adjustBrightness, createSvgLine, createSvgPath, createSvgRect } from './chunk-BF7RP4A3.mjs';
6
6
 
7
7
  // src/series/candlestick/svg/index.ts
8
8
  var DEFAULT_BAR_WIDTH_RATIO = 0.7;
@@ -29,6 +29,43 @@ function renderCandleBodyAndWicksSvg(candle, wickWidth, borderStyle) {
29
29
  const borderDash = candle.borderDash ?? borderStyle.borderDash;
30
30
  const borderDashOffset = candle.borderDashOffset ?? borderStyle.borderDashOffset;
31
31
  const inset = borderAlign === "inner" ? borderWidth / 2 : 0;
32
+ if (candle.orientation === "horizontal") {
33
+ const candleClsH = candle.useClass ? `p-chart-candle-${candle.useClass}` : null;
34
+ const isHollowH = candle.bodyFill === null;
35
+ const cy = candle.x;
36
+ const halfThick = candle.bodyWidth / 2;
37
+ const bLeft = candle.bodyTop;
38
+ const bRight = candle.bodyBottom;
39
+ const wLow = Math.min(candle.wickTop, candle.wickBottom);
40
+ const wHigh = Math.max(candle.wickTop, candle.wickBottom);
41
+ const addWickH = (x1, x2) => {
42
+ const w = createSvgLine(x1, cy, x2, cy);
43
+ if (candleClsH) setAttr(w, "class", candleClsH);
44
+ setAttr(w, "stroke", candle.wickColor);
45
+ setAttr(w, "stroke-width", String(wickWidth));
46
+ appendChild(group, w);
47
+ };
48
+ if (bLeft > wLow) addWickH(wLow, bLeft);
49
+ if (wHigh > bRight) addWickH(bRight, wHigh);
50
+ const bx = bLeft + inset;
51
+ const by = cy - halfThick + inset;
52
+ const bw = Math.max(1, bRight - bLeft - inset * 2);
53
+ const bh = Math.max(0, candle.bodyWidth - inset * 2);
54
+ const clampedH = clampRectBorderRadius(resolveBorderRadius(borderRadius), bw, bh);
55
+ const bodyH = hasBorderRadius(clampedH) ? createSvgPath(buildRoundedRectPath(bx, by, bw, bh, clampedH)) : createSvgRect(bx, by, bw, bh);
56
+ if (candleClsH) setAttr(bodyH, "class", candleClsH);
57
+ if (candleClsH && isHollowH) setAttr(bodyH, "style", "fill:none");
58
+ setAttr(bodyH, "fill", candle.bodyFill ?? "none");
59
+ setAttr(bodyH, "stroke", candle.bodyStroke);
60
+ setAttr(bodyH, "stroke-width", String(borderWidth));
61
+ setAttr(bodyH, "stroke-linejoin", borderJoinStyle);
62
+ if (borderDash.length > 0) {
63
+ setAttr(bodyH, "stroke-dasharray", borderDash.join(" "));
64
+ setAttr(bodyH, "stroke-dashoffset", String(borderDashOffset));
65
+ }
66
+ appendChild(group, bodyH);
67
+ return group;
68
+ }
32
69
  const halfBody = candle.bodyWidth / 2;
33
70
  const bodyLeft = candle.x - halfBody + inset;
34
71
  const bodyTop = candle.bodyTop + inset;
@@ -75,6 +112,19 @@ function renderOhlcTicksSvg(candle, tickWidth, wickWidth) {
75
112
  setAttr(node, "stroke", candle.bodyStroke);
76
113
  setAttr(node, "stroke-width", String(wickWidth));
77
114
  };
115
+ if (candle.orientation === "horizontal") {
116
+ const cy = candle.x;
117
+ const hl = createSvgLine(Math.min(candle.wickTop, candle.wickBottom), cy, Math.max(candle.wickTop, candle.wickBottom), cy);
118
+ applyStrokeAttrs(hl);
119
+ appendChild(group, hl);
120
+ const openTickH = createSvgLine(candle.openY, cy, candle.openY, cy + tickWidth);
121
+ applyStrokeAttrs(openTickH);
122
+ appendChild(group, openTickH);
123
+ const closeTickH = createSvgLine(candle.closeY, cy - tickWidth, candle.closeY, cy);
124
+ applyStrokeAttrs(closeTickH);
125
+ appendChild(group, closeTickH);
126
+ return group;
127
+ }
78
128
  const vertLine = createSvgLine(candle.x, candle.wickTop, candle.x, candle.wickBottom);
79
129
  applyStrokeAttrs(vertLine);
80
130
  appendChild(group, vertLine);
@@ -99,7 +149,17 @@ function renderCandlestickSvg(props, layout, context) {
99
149
  const hoverBorder = isHovered ? resolveAccessor(props.hoverBorderColor, makeItemContext(dataArr?.[candle.dataIndex], candle.dataIndex, { value: candle.close, category: candle.label, ...seriesExtras }), { arrayMode: "cycle" }) : void 0;
100
150
  const hoverFillStr = hoverFill !== void 0 ? typeof hoverFill === "string" ? hoverFill : String(hoverFill) : void 0;
101
151
  const hoverBorderStr = hoverBorder !== void 0 ? typeof hoverBorder === "string" ? hoverBorder : String(hoverBorder) : void 0;
102
- const renderCandle = hoverFillStr !== void 0 || hoverBorderStr !== void 0 ? { ...candle, bodyFill: hoverFillStr ?? candle.bodyFill, bodyStroke: hoverBorderStr ?? candle.bodyStroke, wickColor: hoverFillStr ?? candle.wickColor, useClass: null } : candle;
152
+ const hoverBrightness = isHovered && props.effects ? props.effects.hoverBrightness ?? context.theme.hoverBrightness ?? 1 : 1;
153
+ const shouldBrighten = hoverBrightness !== 1;
154
+ const brightenFill = (value) => shouldBrighten && value !== null ? adjustBrightness(value, hoverBrightness) : value;
155
+ const brightenStroke = (value) => shouldBrighten ? adjustBrightness(value, hoverBrightness) : value;
156
+ const renderCandle = hoverFillStr !== void 0 || hoverBorderStr !== void 0 || shouldBrighten ? {
157
+ ...candle,
158
+ bodyFill: hoverFillStr ?? brightenFill(candle.bodyFill),
159
+ bodyStroke: hoverBorderStr ?? brightenStroke(candle.bodyStroke),
160
+ wickColor: hoverFillStr ?? brightenStroke(candle.wickColor),
161
+ useClass: null
162
+ } : candle;
103
163
  let candleNode;
104
164
  if (variant === "ohlc") {
105
165
  candleNode = renderOhlcTicksSvg(renderCandle, tickWidth, renderCandle.wickStrokeWidth);
@@ -1,4 +1,5 @@
1
- import { DEFAULT_DATA_LABEL_FONT_FAMILY, resolveFontFamily, resolveFontSize, DEFAULT_DATA_LABEL_FONT_SIZE } from './chunk-NKUYIWAP.mjs';
1
+ import { safeFormat } from './chunk-DIJFKY6H.mjs';
2
+ import { DEFAULT_DATA_LABEL_FONT_FAMILY, resolveFontFamily, resolveFontSize, DEFAULT_DATA_LABEL_FONT_SIZE } from './chunk-6LUIVTNV.mjs';
2
3
 
3
4
  // src/utils/text/datalabel.utils.ts
4
5
  function normalizeDataLabelConfig(props, adaptiveFontSize, adaptiveRotation, globalFont) {
@@ -38,7 +39,11 @@ function formatLabelValue(value) {
38
39
  }
39
40
  function formatDataLabelText(value, percentage, display, formatter, label) {
40
41
  if (formatter) {
41
- return formatter(value, percentage, label);
42
+ return safeFormat(
43
+ () => formatter(value, percentage, label),
44
+ () => formatDataLabelText(value, percentage, display, void 0, label),
45
+ "data label"
46
+ );
42
47
  }
43
48
  switch (display) {
44
49
  case "percentage":
@@ -1,4 +1,4 @@
1
- import { lerpColor } from './chunk-QS76E3TD.mjs';
1
+ import { lerpColor } from './chunk-RI32WIDX.mjs';
2
2
 
3
3
  // src/animations/animated-element.ts
4
4
  function lerpNumber(from, to, t) {
@@ -253,6 +253,14 @@ var AnimatedScene = class {
253
253
  getElements() {
254
254
  return Array.from(this.elements.values());
255
255
  }
256
+ /** Live element count without allocating an array. Prefer over `getElements().length`. */
257
+ get elementCount() {
258
+ return this.elements.size;
259
+ }
260
+ /** Allocation-free iteration over live elements. Prefer over `getElements()` on the per-frame path. */
261
+ elementValues() {
262
+ return this.elements.values();
263
+ }
256
264
  getElement(id) {
257
265
  return this.elements.get(id);
258
266
  }
@@ -1,4 +1,5 @@
1
- import { makeItemContext, resolveAccessor, getColor, asGradient, getColorValue } from './chunk-O2X6FF45.mjs';
1
+ import { resolveRadialAccessors } from './chunk-6MAO6I3E.mjs';
2
+ import { makeItemContext, resolveAccessor, buildColorIndexMap, getColor, asGradient, getColorValue } from './chunk-BDCNBS6W.mjs';
2
3
 
3
4
  // src/orchestrator/syncHandlers.ts
4
5
  function handleSyncedHighlightCartesian(event, delegate, hasCrosshair, isSharedMode, datasets) {
@@ -55,20 +56,25 @@ function handleSyncedHighlightCartesian(event, delegate, hasCrosshair, isSharedM
55
56
  };
56
57
  return { tooltip, hoverDatasetId: hit.datasetId, hoverIndex: hit.index, axisIdx, axisX };
57
58
  }
58
- function handleSyncedHighlightRadial(event, datasets, delegate, width, height) {
59
+ function handleSyncedHighlightRadial(event, datasets, delegate, width, height, datasetVisibility) {
59
60
  if (event.normalized === null || event.categoryIndex == null) {
60
61
  return { tooltip: null, hoverDatasetId: null, hoverIndex: null };
61
62
  }
62
63
  const catIdx = event.categoryIndex;
63
64
  for (const [dsId, ds] of datasets) {
64
65
  if (ds.type !== "pie" && ds.type !== "donut" && ds.type !== "radar" && ds.type !== "polar") continue;
66
+ if (datasetVisibility?.get(dsId) === false) continue;
65
67
  const props = ds.props;
66
68
  const data = props.data;
67
69
  if (!data || catIdx >= data.length) continue;
68
70
  const item = data[catIdx];
69
71
  const itemCtx = makeItemContext(item, catIdx);
70
- const label = props.categoryField ? String(resolveAccessor(props.categoryField, itemCtx)) : "";
71
- const value = props.valueField ? resolveAccessor(props.valueField, itemCtx) : 0;
72
+ const isRadial = ds.type === "radar" || ds.type === "polar";
73
+ const radial = isRadial ? resolveRadialAccessors(props) : void 0;
74
+ const categoryAccessor = radial ? radial.angularField : props.categoryField;
75
+ const valueAccessor = radial ? radial.radialField : props.valueField;
76
+ const label = categoryAccessor ? String(resolveAccessor(categoryAccessor, itemCtx)) : "";
77
+ const value = valueAccessor ? resolveAccessor(valueAccessor, itemCtx) : 0;
72
78
  let color = "";
73
79
  if (props.color != null) {
74
80
  const resolved = resolveAccessor(props.color, itemCtx);
@@ -91,13 +97,14 @@ function handleSyncedHighlightRadial(event, datasets, delegate, width, height) {
91
97
  }
92
98
  return { tooltip: null, hoverDatasetId: null, hoverIndex: null };
93
99
  }
94
- function handleSyncedHighlightRect(event, datasets, width, height) {
100
+ function handleSyncedHighlightRect(event, datasets, width, height, datasetVisibility) {
95
101
  if (event.normalized === null || event.categoryIndex == null) {
96
102
  return { tooltip: null, hoverDatasetId: null, hoverIndex: null };
97
103
  }
98
104
  const catIdx = event.categoryIndex;
99
105
  for (const [dsId, ds] of datasets) {
100
106
  if (ds.type !== "treemap" && ds.type !== "heatmap") continue;
107
+ if (datasetVisibility?.get(dsId) === false) continue;
101
108
  const dProps = ds.props;
102
109
  const data = dProps["data"];
103
110
  if (!data || catIdx >= data.length) continue;
@@ -126,16 +133,18 @@ function handleSyncedHighlightRect(event, datasets, width, height) {
126
133
  }
127
134
  function buildDatasetRegistrations(chartId, datasets, theme) {
128
135
  const infos = [];
136
+ const colorIndexById = buildColorIndexMap(datasets);
129
137
  for (const [datasetId, dataset] of datasets) {
130
138
  const props = dataset.props;
131
139
  const firstItem = props.data?.[0];
132
- const color = getColor(props, dataset.order, firstItem, theme);
140
+ const colorIndex = colorIndexById.get(datasetId) ?? dataset.order;
141
+ const color = getColor(props, colorIndex, firstItem, theme);
133
142
  infos.push({
134
143
  chartId,
135
144
  datasetId,
136
145
  label: props.name ?? datasetId,
137
146
  color,
138
- colorGradient: asGradient(getColorValue(props, dataset.order, firstItem, theme)),
147
+ colorGradient: asGradient(getColorValue(props, colorIndex, firstItem, theme)),
139
148
  type: dataset.type,
140
149
  order: dataset.order
141
150
  });
@@ -210,11 +210,12 @@ function generateNiceTicks(min, max, count = 5, exact = false) {
210
210
  const niceStep = Math.round(chosen * magnitude * 1e10) / 1e10;
211
211
  const niceMin = Math.floor(min / niceStep) * niceStep;
212
212
  const ticks = [];
213
+ const lengthCap = exact ? count + 2 : count * 2 + 2;
213
214
  for (let tick = niceMin; tick <= max + niceStep * 0.5; tick += niceStep) {
214
215
  const rounded = Math.round(tick * 1e10) / 1e10;
215
216
  if (rounded < min - niceStep * 1e-3) continue;
216
217
  ticks.push(rounded);
217
- if (ticks.length > count + 2) break;
218
+ if (ticks.length > lengthCap) break;
218
219
  }
219
220
  if (exact) {
220
221
  const onThreshold = min === 0;
@@ -389,6 +390,36 @@ function createBandScale(domainValues, rangeValues, options = {}) {
389
390
  scale.range = () => [...rangeValues];
390
391
  return scale;
391
392
  }
393
+ function createNumericBandScale(domainValues, valueXScale, options = {}) {
394
+ const { categoryGap = 0.1 } = options;
395
+ const centers = /* @__PURE__ */ new Map();
396
+ const pxList = [];
397
+ for (const c of domainValues) {
398
+ const px = valueXScale(Number(c));
399
+ centers.set(String(c), px);
400
+ if (!isNaN(px)) pxList.push(px);
401
+ }
402
+ pxList.sort((a, b) => a - b);
403
+ let step = Infinity;
404
+ for (let i = 1; i < pxList.length; i++) {
405
+ const gap = pxList[i] - pxList[i - 1];
406
+ if (gap > 0 && gap < step) step = gap;
407
+ }
408
+ if (!isFinite(step) || step <= 0) {
409
+ const range = valueXScale.range();
410
+ step = Math.abs(range[1] - range[0]) * 0.1 || 1;
411
+ }
412
+ const bandwidthValue = step * (1 - categoryGap);
413
+ const scale = ((category) => {
414
+ const center = centers.get(String(category));
415
+ return center === void 0 || isNaN(center) ? NaN : center - bandwidthValue / 2;
416
+ });
417
+ scale.bandwidth = () => bandwidthValue;
418
+ scale.step = () => step;
419
+ scale.domain = () => [...domainValues];
420
+ scale.range = () => valueXScale.range();
421
+ return scale;
422
+ }
392
423
  function createVariwideBandScale(domainValues, rangeValues, options) {
393
424
  const { chartPaddingMin = 0.05, chartPaddingMax = 0.05, categoryGap = 0.1, weights } = options;
394
425
  const n = domainValues.length;
@@ -949,7 +980,36 @@ function createOrdinalTimeScale(sortedTimestamps, rangeValues, options) {
949
980
  if (count === 0) return [];
950
981
  const pixelWidth = Math.abs(rangeSpan);
951
982
  const { ticks } = generateTimeTicks(visMinTs, visMaxTs, pixelWidth, options?.tickConfig);
952
- return ticks;
983
+ const deduped = [];
984
+ let bucketIdx = NaN;
985
+ let bucketDist = Infinity;
986
+ for (const t of ticks) {
987
+ const frac = tsToFracIdx(t);
988
+ const idx = Math.round(frac);
989
+ const dist = Math.abs(frac - idx);
990
+ if (idx === bucketIdx) {
991
+ if (dist < bucketDist) {
992
+ deduped[deduped.length - 1] = t;
993
+ bucketDist = dist;
994
+ }
995
+ continue;
996
+ }
997
+ deduped.push(t);
998
+ bucketIdx = idx;
999
+ bucketDist = dist;
1000
+ }
1001
+ const minSpacing = options?.tickConfig?.minTickSpacing ?? 80;
1002
+ const pixelFiltered = [];
1003
+ let prevPixel = -Infinity;
1004
+ for (const t of deduped) {
1005
+ const frac = tsToFracIdx(t);
1006
+ const pixel = visSpan > 0 ? rangeValues[0] + (frac - visMinIdx) / visSpan * rangeSpan : rangeValues[0];
1007
+ if (Math.abs(pixel - prevPixel) >= minSpacing) {
1008
+ pixelFiltered.push(t);
1009
+ prevPixel = pixel;
1010
+ }
1011
+ }
1012
+ return pixelFiltered;
953
1013
  };
954
1014
  scale.domain = () => [visMinTs, visMaxTs];
955
1015
  scale.range = () => [...rangeValues];
@@ -981,4 +1041,4 @@ function createOrdinalTimeBandAdapter(sortedTimestamps, ordinalScale) {
981
1041
  return scale;
982
1042
  }
983
1043
 
984
- export { DEFAULT_FORMATS, MS, TICK_INTERVALS, advanceByUnit, calculateArcBoundingBox, calculateGroupedBarLayout, calculateNiceDomain, calculateNiceLogDomain, calculateNiceTimeDomain, clamp, createBandScale, createLinearScale, createLogScale, createOrdinalTimeBandAdapter, createOrdinalTimeScale, createTimeBandAdapter, createTimeScale, createVariwideBandScale, crisp, detectTickUnit, findMax, findMin, floorToUnit, formatTimeTick, generateIntervalTicks, generateLogTicks, generateNiceTicks, generateTimeTicks, intervalSpanMs, isPeriodBoundary, normalizeAngle, normalizeAngleRelativeTo, pointOnCircle, scaleLinear, selectTickInterval, shallowEqual, toRad, toTimestamp, warnChartDevOnce, xCalc, yCalc };
1044
+ export { DEFAULT_FORMATS, MS, TICK_INTERVALS, advanceByUnit, calculateArcBoundingBox, calculateGroupedBarLayout, calculateNiceDomain, calculateNiceLogDomain, calculateNiceTimeDomain, clamp, createBandScale, createLinearScale, createLogScale, createNumericBandScale, createOrdinalTimeBandAdapter, createOrdinalTimeScale, createTimeBandAdapter, createTimeScale, createVariwideBandScale, crisp, detectTickUnit, findMax, findMin, floorToUnit, formatTimeTick, generateIntervalTicks, generateLogTicks, generateNiceTicks, generateTimeTicks, intervalSpanMs, isChartDevWarningsEnabled, isPeriodBoundary, normalizeAngle, normalizeAngleRelativeTo, pointOnCircle, scaleLinear, selectTickInterval, shallowEqual, toRad, toTimestamp, warnChartDevOnce, xCalc, yCalc };
@@ -1,10 +1,10 @@
1
- import { CHAR_WIDTH_RATIO } from './chunk-XTVE4P3L.mjs';
2
- import { DEFAULT_TREEMAP_PADDING, DEFAULT_TREEMAP_GROUP_LABEL_HEIGHT, DEFAULT_TREEMAP_GROUP_COLORS, DEFAULT_TREEMAP_CELL_COLOR, DEFAULT_TREEMAP_HEADER_BG } from './chunk-NKUYIWAP.mjs';
3
- import { resquarify, sliceDiceLayout, diceLayout, sliceLayout } from './chunk-BETFQBM2.mjs';
4
- import { resolveColorScaleRange, interpolateColor } from './chunk-QS76E3TD.mjs';
5
- import { FIELD_DEFAULTS, resolveAccessor, makeItemContext } from './chunk-O2X6FF45.mjs';
1
+ import { CHAR_WIDTH_RATIO } from './chunk-56MASQS2.mjs';
2
+ import { DEFAULT_TREEMAP_PADDING, DEFAULT_TREEMAP_GROUP_LABEL_HEIGHT, DEFAULT_TREEMAP_GROUP_COLORS, DEFAULT_TREEMAP_CELL_COLOR, DEFAULT_TREEMAP_HEADER_BG } from './chunk-6LUIVTNV.mjs';
3
+ import { resolveColorScaleRange, interpolateColor } from './chunk-RI32WIDX.mjs';
4
+ import { FIELD_DEFAULTS, resolveAccessor, makeItemContext } from './chunk-BDCNBS6W.mjs';
5
+ import { resquarify, sliceDiceLayout, diceLayout, sliceLayout } from './chunk-FML3QEEI.mjs';
6
6
 
7
- // src/series/treemap/geometry.layout.ts
7
+ // src/series/treemap/geometry.ts
8
8
  function interpolateColor2(colorScale, colorRange, value) {
9
9
  return interpolateColor(colorScale, colorRange, value, DEFAULT_TREEMAP_CELL_COLOR);
10
10
  }
@@ -458,8 +458,6 @@ function calculateTreemapLayout(props, chartArea, theme, previousLayout) {
458
458
  }
459
459
  return { cells, groupHeaders, groupBackgrounds, resolvedColorScale, resolvedColorRange, valueRange: resolvedValueRange, _squarifyRects: topLevelRects };
460
460
  }
461
-
462
- // src/series/treemap/geometry.labels.ts
463
461
  var LABEL_TIERS = [
464
462
  { minArea: 25e3, minWidth: 100, minHeight: 60, fontSize: 16, secondaryFontSize: 12, showSecondary: true },
465
463
  { minArea: 1e4, minWidth: 70, minHeight: 45, fontSize: 14, secondaryFontSize: 10, showSecondary: true },
@@ -521,4 +519,4 @@ function buildCellExtras(props, item, layout, idx) {
521
519
  };
522
520
  }
523
521
 
524
- export { buildCellExtras, calculateTreemapLayout, getCellLabelInfo };
522
+ export { buildCellExtras, calculateTreemapLayout, getCellLabelInfo, resolveField };
@@ -1,7 +1,7 @@
1
- import { resolveBackgroundColor, DARK_MODE_COLORS, LIGHT_MODE_COLORS } from './chunk-NKUYIWAP.mjs';
2
- import { calculateLuminanceFromRGB } from './chunk-QS76E3TD.mjs';
3
- import { resolveSwatchGradientStops } from './chunk-O2X6FF45.mjs';
4
- import { parseColorToRGB } from './chunk-SSLTFJ3U.mjs';
1
+ import { resolveBackgroundColor, DARK_MODE_COLORS, LIGHT_MODE_COLORS } from './chunk-6LUIVTNV.mjs';
2
+ import { calculateLuminanceFromRGB } from './chunk-RI32WIDX.mjs';
3
+ import { resolveSwatchGradientStops } from './chunk-BDCNBS6W.mjs';
4
+ import { parseColorToRGB } from './chunk-BF7RP4A3.mjs';
5
5
 
6
6
  // src/utils/export/svg-styles.ts
7
7
  function inlineComputedStyles(element, rootStyles) {
@@ -318,11 +318,11 @@ function generateSvgElementMarkup(el, containerRect, defs, idRef) {
318
318
  const rxAttr = br > 0 ? ` rx="${br}"` : "";
319
319
  if (gradientStops.length > 0) {
320
320
  const gradId = `p-chart-export-grad-${idRef.v++}`;
321
- const stopEls = gradientStops.map((s) => `<stop offset="${Math.round(s.offset * 100)}%" stop-color="${s.color}"/>`).join("");
321
+ const stopEls = gradientStops.map((s) => `<stop offset="${Math.round(s.offset * 100)}%" stop-color="${escapeXml(s.color)}"/>`).join("");
322
322
  defs.push(gradientDef.radialGradient ? `<radialGradient id="${gradId}" cx="50%" cy="50%" r="50%">${stopEls}</radialGradient>` : `<linearGradient id="${gradId}" x1="0" y1="0" x2="0" y2="1">${stopEls}</linearGradient>`);
323
323
  result += `<rect x="${x}" y="${y}" width="${w}" height="${h}" fill="url(#${gradId})"${rxAttr}${opacityAttr}/>`;
324
324
  } else if (bg && bg !== "rgba(0, 0, 0, 0)" && bg !== "transparent") {
325
- result += `<rect x="${x}" y="${y}" width="${w}" height="${h}" fill="${bg}"${rxAttr}${opacityAttr}/>`;
325
+ result += `<rect x="${x}" y="${y}" width="${w}" height="${h}" fill="${escapeXml(bg)}"${rxAttr}${opacityAttr}/>`;
326
326
  }
327
327
  if (el.childElementCount === 0) {
328
328
  const text = (el.textContent || "").trim();
@@ -354,7 +354,7 @@ function generateSvgElementMarkup(el, containerRect, defs, idRef) {
354
354
  }
355
355
  }
356
356
  const fontStyle = styles.fontStyle !== "normal" ? ` font-style="${styles.fontStyle}"` : "";
357
- result += `<text x="${textX}" y="${y + h / 2}" dy="0.32em" font-size="${fontSize}" font-weight="${styles.fontWeight}"${fontStyle} font-family="${escapeXml(styles.fontFamily)}" fill="${styles.color}" text-anchor="${anchor}"${opacityAttr}>` + escapeXml(text) + `</text>`;
357
+ result += `<text x="${textX}" y="${y + h / 2}" dy="0.32em" font-size="${fontSize}" font-weight="${styles.fontWeight}"${fontStyle} font-family="${escapeXml(styles.fontFamily)}" fill="${escapeXml(styles.color)}" text-anchor="${anchor}"${opacityAttr}>` + escapeXml(text) + `</text>`;
358
358
  }
359
359
  }
360
360
  for (const child of el.children) {
@@ -1,12 +1,13 @@
1
- import { renderBarCanvas } from './chunk-X7T34OLW.mjs';
2
- import { renderBarSvg } from './chunk-SALTGZFR.mjs';
3
- import { hitTestBar, calculateBarLayout } from './chunk-AUF4CHDP.mjs';
4
- import { DEFAULT_HOVER_OFFSET, DEFAULT_HOVER_DIM_OPACITY, DEFAULT_HOVER_BRIGHTNESS } from './chunk-NKUYIWAP.mjs';
5
- import { batchResolveAccessor, batchResolveRequired } from './chunk-O2X6FF45.mjs';
1
+ import { renderBarCanvas } from './chunk-I25SSZE3.mjs';
2
+ import { renderBarSvg } from './chunk-YVDVKLPR.mjs';
3
+ import { hitTestBar, calculateBarLayout } from './chunk-DJOHDKTP.mjs';
4
+ import { DEFAULT_HOVER_OFFSET, DEFAULT_HOVER_DIM_OPACITY, DEFAULT_HOVER_BRIGHTNESS } from './chunk-6LUIVTNV.mjs';
5
+ import { batchResolveAccessor, batchResolveRequired } from './chunk-BDCNBS6W.mjs';
6
+ import { resolveCartesianAccessors } from './chunk-G3DIMENH.mjs';
6
7
 
7
8
  // src/series/bar/geom/visual-layout.ts
8
9
  function computeBarVisualLayout(input) {
9
- const { intermediate, sharedCategoryScale, valueScales, valueDomains, cartesianArea, orientation, axisLayouts, hover, hoverConfig, theme } = input;
10
+ const { intermediate, sharedCategoryScale, valueScales, valueDomains, cartesianArea, orientation, axisLayouts, hover, hoverConfig, theme, colorIndexById } = input;
10
11
  const { barDatasets, visibleBarDatasets, mode, valuesPerDataset, stackBasesMap, groupLayout, fullGroupLayout, isVariwide, barGap, datasetAxisMap, firstValueAxisId } = intermediate;
11
12
  const categories = sharedCategoryScale.domain();
12
13
  const sharedValueScale = valueScales.get(firstValueAxisId) ?? valueScales.values().next().value;
@@ -18,11 +19,12 @@ function computeBarVisualLayout(input) {
18
19
  if (mode.isPercentStacked || mode.isWaterfall) {
19
20
  for (let dsIdx = 0; dsIdx < barDatasets.length; dsIdx++) {
20
21
  const ds = barDatasets[dsIdx];
22
+ const measureKey = resolveCartesianAccessors(ds.props).measureField;
21
23
  syntheticDataMap.set(
22
24
  ds.id,
23
25
  ds.props.data.map((item, i) => ({
24
26
  ...item,
25
- [ds.props.valueField]: valuesPerDataset[dsIdx][i]
27
+ [measureKey]: valuesPerDataset[dsIdx][i]
26
28
  }))
27
29
  );
28
30
  }
@@ -49,8 +51,6 @@ function computeBarVisualLayout(input) {
49
51
  const renderProps = {
50
52
  ...barProps,
51
53
  ...syntheticDataMap.has(ds.id) ? { data: syntheticDataMap.get(ds.id) } : {},
52
- categoryField: barProps.categoryField,
53
- valueField: barProps.valueField,
54
54
  interaction: {
55
55
  hoveredIndex: hover.datasetId === ds.id ? hover.index : null
56
56
  },
@@ -122,7 +122,7 @@ function computeBarVisualLayout(input) {
122
122
  multiConfig.categoryPositions = catPositions;
123
123
  }
124
124
  const baseLayout = calculateBarLayout(renderProps, cartesianArea, multiConfig);
125
- const layout = { ...baseLayout, datasetIndex: dsIdx };
125
+ const layout = { ...baseLayout, datasetIndex: dsIdx, colorIndex: colorIndexById.get(ds.id) ?? dsIdx };
126
126
  layouts.set(ds.id, layout);
127
127
  renderPropsMap.set(ds.id, renderProps);
128
128
  if (ds.visible) {
@@ -203,7 +203,8 @@ function computeBarVisualLayout(input) {
203
203
  function computeBarDatasetTotals(barDatasets, barRawResolved) {
204
204
  const datasetTotals = /* @__PURE__ */ new Map();
205
205
  for (let i = 0; i < barDatasets.length; i++) {
206
- const values = barRawResolved?.[i] ?? batchResolveAccessor(barDatasets[i].props.valueField, barDatasets[i].props.data);
206
+ const measureKey = resolveCartesianAccessors(barDatasets[i].props).measureField;
207
+ const values = barRawResolved?.[i] ?? batchResolveAccessor(measureKey, barDatasets[i].props.data);
207
208
  let total = 0;
208
209
  for (const v of values) total += Math.abs(v);
209
210
  datasetTotals.set(barDatasets[i].id, total);
@@ -211,7 +212,8 @@ function computeBarDatasetTotals(barDatasets, barRawResolved) {
211
212
  return datasetTotals;
212
213
  }
213
214
  function getBarAxisHints(props, data) {
214
- const categoryLabels = props.categoryField ? batchResolveRequired(props.categoryField, data, "categoryField") : void 0;
215
+ const acc = resolveCartesianAccessors(props);
216
+ const categoryLabels = acc.independentField ? batchResolveRequired(acc.independentField, data, "categoryField") : void 0;
215
217
  const categoryWeights = props.weightField ? batchResolveRequired(props.weightField, data, "weightField") : void 0;
216
218
  return { categoryLabels, categoryWeights };
217
219
  }
@@ -1,9 +1,9 @@
1
- import { DEFAULT_MARKER_SHAPE } from './chunk-AP3UYWYT.mjs';
2
- import { isBoostActive } from './chunk-DTWTCFRG.mjs';
3
- import { traceMarkerShapeCanvasAt, MARKER_SHAPE_NAMES, drawMarkerCanvas } from './chunk-PRDVPOZX.mjs';
4
- import { computeItemHoverState, applyHoverEffects } from './chunk-BZN2QHGP.mjs';
5
- import { DEFAULT_HOVER_DIM_OPACITY, DEFAULT_SCATTER_FILL_OPACITY, DEFAULT_SCATTER_BORDER_WIDTH, DEFAULT_HOVER_POINT_RADIUS_MULTIPLIER } from './chunk-NKUYIWAP.mjs';
6
- import { resolveAccessor, makeItemContext, getDefaultColor, getPrimaryColor, isGradientColor, createCanvasGradientFromColor, resolveDash } from './chunk-O2X6FF45.mjs';
1
+ import { DEFAULT_MARKER_SHAPE } from './chunk-SPU6BO3B.mjs';
2
+ import { isBoostActive } from './chunk-5EQSFUBA.mjs';
3
+ import { traceMarkerShapeCanvasAt, MARKER_SHAPE_NAMES, drawMarkerCanvas } from './chunk-QIYJUZ7I.mjs';
4
+ import { computeItemHoverState, applyHoverEffects } from './chunk-F6AGZQDA.mjs';
5
+ import { DEFAULT_HOVER_DIM_OPACITY, DEFAULT_SCATTER_FILL_OPACITY, DEFAULT_SCATTER_BORDER_WIDTH, DEFAULT_HOVER_POINT_RADIUS_MULTIPLIER } from './chunk-6LUIVTNV.mjs';
6
+ import { resolveAccessor, makeItemContext, getDefaultColor, getPrimaryColor, isGradientColor, createCanvasGradientFromColor, resolveDash } from './chunk-BDCNBS6W.mjs';
7
7
 
8
8
  // src/series/scatter/canvas/index.ts
9
9
  function renderScatterCanvas(props, layout, ctx, context) {
@@ -20,7 +20,7 @@ function renderScatterCanvas(props, layout, ctx, context) {
20
20
  }) ?? DEFAULT_MARKER_SHAPE;
21
21
  const hoveredIndex = boostActive ? null : props.interaction?.hoveredIndex ?? null;
22
22
  const anyHovered = hoveredIndex !== null;
23
- const effectiveSeriesColor = layout.seriesColor ?? getDefaultColor(layout.seriesIdx, context.theme);
23
+ const effectiveSeriesColor = layout.seriesColor ?? getDefaultColor(layout.colorIndex, context.theme);
24
24
  const baseBorderColorShared = props.pointBorderColor != null ? props.pointBorderColor : void 0;
25
25
  const borderWidthAccessor = props.pointBorderStrokeWidth;
26
26
  const dataArr = props.data;