@chartts/core 0.1.2 → 0.1.4

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 (563) hide show
  1. package/LICENSE +21 -0
  2. package/dist/{area-type-B3CtuIIP.d.cts → area-type-BanqpQvK.d.cts} +1 -1
  3. package/dist/{area-type-DmB6fTVf.d.ts → area-type-Bzn6ur_t.d.ts} +1 -1
  4. package/dist/area.cjs +10 -10
  5. package/dist/area.d.cts +4 -4
  6. package/dist/area.d.ts +4 -4
  7. package/dist/area.js +5 -5
  8. package/dist/{bar-type-CkI-kkrC.d.cts → bar-type-BjYOtm2e.d.cts} +1 -1
  9. package/dist/{bar-type-Bne_khsO.d.ts → bar-type-D1gkUeQ2.d.ts} +1 -1
  10. package/dist/bar.cjs +9 -9
  11. package/dist/bar.d.cts +4 -4
  12. package/dist/bar.d.ts +4 -4
  13. package/dist/bar.js +4 -4
  14. package/dist/{baseline-type-B1O4XHT3.d.ts → baseline-type-DnAv8oax.d.ts} +1 -1
  15. package/dist/{baseline-type-BAPrZJ5W.d.cts → baseline-type-DskNy6iR.d.cts} +1 -1
  16. package/dist/baseline.cjs +9 -9
  17. package/dist/baseline.d.cts +4 -4
  18. package/dist/baseline.d.ts +4 -4
  19. package/dist/baseline.js +4 -4
  20. package/dist/{boxplot-type-CEWf7p5X.d.ts → boxplot-type-Bi46NGr5.d.ts} +1 -1
  21. package/dist/{boxplot-type-Da8_smoe.d.cts → boxplot-type-Df2L92GY.d.cts} +1 -1
  22. package/dist/boxplot.cjs +9 -9
  23. package/dist/boxplot.d.cts +4 -4
  24. package/dist/boxplot.d.ts +4 -4
  25. package/dist/boxplot.js +4 -4
  26. package/dist/{bubble-type-Dxb2JCKv.d.cts → bubble-type-D2_dA-tK.d.cts} +1 -1
  27. package/dist/{bubble-type-pru5MgB7.d.ts → bubble-type-XCkdPCxY.d.ts} +1 -1
  28. package/dist/bubble.cjs +9 -9
  29. package/dist/bubble.d.cts +4 -4
  30. package/dist/bubble.d.ts +4 -4
  31. package/dist/bubble.js +4 -4
  32. package/dist/{bullet-type-CPEYkEvt.d.ts → bullet-type-CluDVdqG.d.ts} +1 -1
  33. package/dist/{bullet-type-khCmwFqH.d.cts → bullet-type-yyHFEoBR.d.cts} +1 -1
  34. package/dist/bullet.cjs +10 -10
  35. package/dist/bullet.d.cts +4 -4
  36. package/dist/bullet.d.ts +4 -4
  37. package/dist/bullet.js +5 -5
  38. package/dist/{calendar-type-yJWPY6qT.d.ts → calendar-type-BXl4jP0I.d.ts} +1 -1
  39. package/dist/{calendar-type-Br5mpdea.d.cts → calendar-type-_hW3OLW-.d.cts} +1 -1
  40. package/dist/calendar.cjs +10 -10
  41. package/dist/calendar.d.cts +4 -4
  42. package/dist/calendar.d.ts +4 -4
  43. package/dist/calendar.js +5 -5
  44. package/dist/{candlestick-type-CtLZy_uC.d.ts → candlestick-type-CAfkfMPN.d.ts} +1 -1
  45. package/dist/{candlestick-type-CazXUb77.d.cts → candlestick-type-D-fhJzmV.d.cts} +1 -1
  46. package/dist/candlestick.cjs +9 -9
  47. package/dist/candlestick.d.cts +4 -4
  48. package/dist/candlestick.d.ts +4 -4
  49. package/dist/candlestick.js +4 -4
  50. package/dist/{chord-type-ruvHboZl.d.ts → chord-type-BLjyRxsx.d.ts} +1 -1
  51. package/dist/{chord-type-ChIZaOZd.d.cts → chord-type-Dvuvx5rp.d.cts} +1 -1
  52. package/dist/chord.cjs +10 -10
  53. package/dist/chord.d.cts +4 -4
  54. package/dist/chord.d.ts +4 -4
  55. package/dist/chord.js +5 -5
  56. package/dist/{chunk-S6NGWPXC.js → chunk-24557PYN.js} +4 -4
  57. package/dist/chunk-24557PYN.js.map +1 -0
  58. package/dist/{chunk-K2EZ4SS4.js → chunk-2BUIZDOB.js} +5 -5
  59. package/dist/chunk-2BUIZDOB.js.map +1 -0
  60. package/dist/{chunk-TVPS2NJH.cjs → chunk-2IMUTDTD.cjs} +11 -11
  61. package/dist/chunk-2IMUTDTD.cjs.map +1 -0
  62. package/dist/{chunk-2KMMVJEE.cjs → chunk-2IWLOBSF.cjs} +7 -7
  63. package/dist/chunk-2IWLOBSF.cjs.map +1 -0
  64. package/dist/{chunk-MQBKLKYF.js → chunk-2JYK52HV.js} +4 -4
  65. package/dist/{chunk-MQBKLKYF.js.map → chunk-2JYK52HV.js.map} +1 -1
  66. package/dist/{chunk-KEMT7F5H.cjs → chunk-2QRCHYTZ.cjs} +9 -9
  67. package/dist/chunk-2QRCHYTZ.cjs.map +1 -0
  68. package/dist/{chunk-JT6H7G52.js → chunk-34DQGCPP.js} +5 -5
  69. package/dist/chunk-34DQGCPP.js.map +1 -0
  70. package/dist/{chunk-6WJJ26J5.js → chunk-3JB4JBBK.js} +6 -6
  71. package/dist/chunk-3JB4JBBK.js.map +1 -0
  72. package/dist/{chunk-SLJNRP7O.cjs → chunk-3NHH6C4K.cjs} +14 -24
  73. package/dist/chunk-3NHH6C4K.cjs.map +1 -0
  74. package/dist/{chunk-K7UR7GYC.cjs → chunk-3SVNEKXE.cjs} +13 -13
  75. package/dist/chunk-3SVNEKXE.cjs.map +1 -0
  76. package/dist/{chunk-S64PTNT7.cjs → chunk-4D6PVH2C.cjs} +27 -30
  77. package/dist/chunk-4D6PVH2C.cjs.map +1 -0
  78. package/dist/{chunk-N7NZQVIV.cjs → chunk-4MNVJVK3.cjs} +7 -7
  79. package/dist/chunk-4MNVJVK3.cjs.map +1 -0
  80. package/dist/{chunk-VGGKMTO6.js → chunk-4QRND2V5.js} +4 -4
  81. package/dist/chunk-4QRND2V5.js.map +1 -0
  82. package/dist/{chunk-MZQY2FTP.cjs → chunk-55ZTXQQQ.cjs} +13 -13
  83. package/dist/chunk-55ZTXQQQ.cjs.map +1 -0
  84. package/dist/{chunk-YMJQUKKX.js → chunk-56BN43J4.js} +68 -42
  85. package/dist/chunk-56BN43J4.js.map +1 -0
  86. package/dist/{chunk-QRTYX5KO.js → chunk-5E7FXDBM.js} +5 -5
  87. package/dist/chunk-5E7FXDBM.js.map +1 -0
  88. package/dist/{chunk-RLH3PS3Y.js → chunk-5HZEDCJG.js} +3 -3
  89. package/dist/{chunk-RLH3PS3Y.js.map → chunk-5HZEDCJG.js.map} +1 -1
  90. package/dist/{chunk-7JN6GXML.cjs → chunk-5QT67VYJ.cjs} +13 -11
  91. package/dist/chunk-5QT67VYJ.cjs.map +1 -0
  92. package/dist/{chunk-EYN74SQ5.js → chunk-5QVUBGM7.js} +5 -5
  93. package/dist/chunk-5QVUBGM7.js.map +1 -0
  94. package/dist/{chunk-QCR6L55R.js → chunk-62DBXI4N.js} +8 -5
  95. package/dist/chunk-62DBXI4N.js.map +1 -0
  96. package/dist/{chunk-U7GBOQXX.js → chunk-6QMV75NT.js} +5 -5
  97. package/dist/chunk-6QMV75NT.js.map +1 -0
  98. package/dist/{chunk-IAE4VRB7.cjs → chunk-754Z4OR6.cjs} +35 -10
  99. package/dist/chunk-754Z4OR6.cjs.map +1 -0
  100. package/dist/{chunk-CJEMSKW3.js → chunk-7GLCJPV5.js} +217 -57
  101. package/dist/chunk-7GLCJPV5.js.map +1 -0
  102. package/dist/{chunk-TIHVTKXS.cjs → chunk-7PHOSSLJ.cjs} +11 -11
  103. package/dist/chunk-7PHOSSLJ.cjs.map +1 -0
  104. package/dist/{chunk-EAKXLFOR.cjs → chunk-A5G32G2R.cjs} +11 -11
  105. package/dist/chunk-A5G32G2R.cjs.map +1 -0
  106. package/dist/{chunk-BMTVFAX2.js → chunk-AEQXFDL7.js} +240 -104
  107. package/dist/chunk-AEQXFDL7.js.map +1 -0
  108. package/dist/{chunk-FKAA5FNG.cjs → chunk-ATMSGQCW.cjs} +10 -10
  109. package/dist/chunk-ATMSGQCW.cjs.map +1 -0
  110. package/dist/{chunk-GI7PBJSK.js → chunk-BFBVJ6MU.js} +4 -4
  111. package/dist/chunk-BFBVJ6MU.js.map +1 -0
  112. package/dist/{chunk-IKUA7O73.cjs → chunk-BGGESAAG.cjs} +7 -7
  113. package/dist/{chunk-IKUA7O73.cjs.map → chunk-BGGESAAG.cjs.map} +1 -1
  114. package/dist/{chunk-WS2AL7GY.cjs → chunk-CA42BCSM.cjs} +34 -8
  115. package/dist/chunk-CA42BCSM.cjs.map +1 -0
  116. package/dist/{chunk-CCHMQZIB.js → chunk-CU5ZXVZQ.js} +5 -5
  117. package/dist/chunk-CU5ZXVZQ.js.map +1 -0
  118. package/dist/{chunk-B7IV2PB3.cjs → chunk-CUIPBYMG.cjs} +9 -9
  119. package/dist/chunk-CUIPBYMG.cjs.map +1 -0
  120. package/dist/{chunk-NZWFBAFQ.js → chunk-CWZADOJ6.js} +30 -4
  121. package/dist/chunk-CWZADOJ6.js.map +1 -0
  122. package/dist/{chunk-ID7GYRYL.cjs → chunk-D5QUAWF3.cjs} +11 -11
  123. package/dist/chunk-D5QUAWF3.cjs.map +1 -0
  124. package/dist/{chunk-27E6G2GT.js → chunk-DAAU5H24.js} +4 -4
  125. package/dist/chunk-DAAU5H24.js.map +1 -0
  126. package/dist/{chunk-VK72MICB.cjs → chunk-DT4GG5BF.cjs} +8 -8
  127. package/dist/{chunk-VK72MICB.cjs.map → chunk-DT4GG5BF.cjs.map} +1 -1
  128. package/dist/{chunk-7HOU6XMW.js → chunk-DX77WSIB.js} +25 -28
  129. package/dist/chunk-DX77WSIB.js.map +1 -0
  130. package/dist/{chunk-GQR7IHER.js → chunk-EPUWA3ZW.js} +6 -6
  131. package/dist/chunk-EPUWA3ZW.js.map +1 -0
  132. package/dist/{chunk-EFRBTSUO.cjs → chunk-ESJMEDLY.cjs} +4 -4
  133. package/dist/{chunk-EFRBTSUO.cjs.map → chunk-ESJMEDLY.cjs.map} +1 -1
  134. package/dist/{chunk-KHQRHTTN.js → chunk-EWVXMQRW.js} +40 -30
  135. package/dist/chunk-EWVXMQRW.js.map +1 -0
  136. package/dist/{chunk-2L46SAT7.js → chunk-FGBIJ6PL.js} +30 -5
  137. package/dist/chunk-FGBIJ6PL.js.map +1 -0
  138. package/dist/{chunk-FTKL3UAN.cjs → chunk-FGHSUT6X.cjs} +6 -6
  139. package/dist/{chunk-FTKL3UAN.cjs.map → chunk-FGHSUT6X.cjs.map} +1 -1
  140. package/dist/{chunk-2PRCN5OJ.cjs → chunk-FVLVTY5D.cjs} +6 -6
  141. package/dist/{chunk-2PRCN5OJ.cjs.map → chunk-FVLVTY5D.cjs.map} +1 -1
  142. package/dist/{chunk-ALRCYQQX.cjs → chunk-GBL4R3GH.cjs} +10 -7
  143. package/dist/chunk-GBL4R3GH.cjs.map +1 -0
  144. package/dist/{chunk-SKREYNRK.cjs → chunk-GRXHW5S3.cjs} +45 -35
  145. package/dist/chunk-GRXHW5S3.cjs.map +1 -0
  146. package/dist/{chunk-FSKUEB7P.js → chunk-HCIBBUV5.js} +3 -3
  147. package/dist/{chunk-FSKUEB7P.js.map → chunk-HCIBBUV5.js.map} +1 -1
  148. package/dist/{chunk-MGYBMQAX.cjs → chunk-HCK2VUWD.cjs} +9 -9
  149. package/dist/chunk-HCK2VUWD.cjs.map +1 -0
  150. package/dist/{chunk-NML7F34A.js → chunk-IDZTDJLH.js} +4 -4
  151. package/dist/chunk-IDZTDJLH.js.map +1 -0
  152. package/dist/{chunk-KUFDELQM.cjs → chunk-IF6RQ53Q.cjs} +10 -10
  153. package/dist/chunk-IF6RQ53Q.cjs.map +1 -0
  154. package/dist/{chunk-BMEMMYVF.js → chunk-IOV77VHP.js} +5 -5
  155. package/dist/{chunk-BMEMMYVF.js.map → chunk-IOV77VHP.js.map} +1 -1
  156. package/dist/{chunk-3TLJCGGQ.cjs → chunk-JVVGQLJQ.cjs} +240 -104
  157. package/dist/chunk-JVVGQLJQ.cjs.map +1 -0
  158. package/dist/{chunk-T6LXFMBR.cjs → chunk-JYVRX3BX.cjs} +9 -9
  159. package/dist/{chunk-T6LXFMBR.cjs.map → chunk-JYVRX3BX.cjs.map} +1 -1
  160. package/dist/{chunk-MVJKRPX7.js → chunk-KHG3G2ZX.js} +3 -3
  161. package/dist/{chunk-MVJKRPX7.js.map → chunk-KHG3G2ZX.js.map} +1 -1
  162. package/dist/{chunk-7MXBXWVD.js → chunk-KNMEXOKJ.js} +5 -5
  163. package/dist/chunk-KNMEXOKJ.js.map +1 -0
  164. package/dist/chunk-KWSVJRXX.cjs +128 -0
  165. package/dist/chunk-KWSVJRXX.cjs.map +1 -0
  166. package/dist/{chunk-XKDBNAHH.cjs → chunk-LARNENXE.cjs} +11 -11
  167. package/dist/chunk-LARNENXE.cjs.map +1 -0
  168. package/dist/chunk-LRHMLNPW.js +897 -0
  169. package/dist/chunk-LRHMLNPW.js.map +1 -0
  170. package/dist/{chunk-5LQ26P4J.cjs → chunk-LXYNL7BI.cjs} +11 -11
  171. package/dist/chunk-LXYNL7BI.cjs.map +1 -0
  172. package/dist/{chunk-ARQLGTTV.js → chunk-MEERXUZS.js} +5 -5
  173. package/dist/{chunk-ARQLGTTV.js.map → chunk-MEERXUZS.js.map} +1 -1
  174. package/dist/{chunk-VJQCHBS6.js → chunk-MJY25P44.js} +15 -5
  175. package/dist/chunk-MJY25P44.js.map +1 -0
  176. package/dist/{chunk-3YFDZGHO.cjs → chunk-MSCRIA2U.cjs} +13 -13
  177. package/dist/{chunk-3YFDZGHO.cjs.map → chunk-MSCRIA2U.cjs.map} +1 -1
  178. package/dist/{chunk-DZKYVTV3.js → chunk-N35UAFEU.js} +5 -5
  179. package/dist/{chunk-DZKYVTV3.js.map → chunk-N35UAFEU.js.map} +1 -1
  180. package/dist/{chunk-DAH76GIX.cjs → chunk-NE2W2MF3.cjs} +11 -11
  181. package/dist/chunk-NE2W2MF3.cjs.map +1 -0
  182. package/dist/{chunk-CHERQT4B.js → chunk-NQ7Y6ZKH.js} +4 -4
  183. package/dist/chunk-NQ7Y6ZKH.js.map +1 -0
  184. package/dist/{chunk-AA45U5KV.js → chunk-NRULNA5F.js} +5 -5
  185. package/dist/chunk-NRULNA5F.js.map +1 -0
  186. package/dist/{chunk-PCTMS2PX.cjs → chunk-OEGSDOJ2.cjs} +19 -9
  187. package/dist/chunk-OEGSDOJ2.cjs.map +1 -0
  188. package/dist/{chunk-M6JYSINX.cjs → chunk-OMAW52LY.cjs} +8 -8
  189. package/dist/chunk-OMAW52LY.cjs.map +1 -0
  190. package/dist/{chunk-IUYPKYOU.js → chunk-OMSHGBV3.js} +9 -5
  191. package/dist/chunk-OMSHGBV3.js.map +1 -0
  192. package/dist/{chunk-DZHP4UUE.cjs → chunk-OTXHJHXU.cjs} +16 -12
  193. package/dist/chunk-OTXHJHXU.cjs.map +1 -0
  194. package/dist/{chunk-GUVPVNPD.cjs → chunk-PCAYYCLY.cjs} +11 -11
  195. package/dist/chunk-PCAYYCLY.cjs.map +1 -0
  196. package/dist/{chunk-LCEMO7NI.js → chunk-PKXW45G4.js} +3 -3
  197. package/dist/{chunk-LCEMO7NI.js.map → chunk-PKXW45G4.js.map} +1 -1
  198. package/dist/{chunk-Y4HJCMB4.cjs → chunk-QEPMEEZC.cjs} +7 -7
  199. package/dist/chunk-QEPMEEZC.cjs.map +1 -0
  200. package/dist/{chunk-43WDYYVH.cjs → chunk-QPHUAF3R.cjs} +10 -10
  201. package/dist/chunk-QPHUAF3R.cjs.map +1 -0
  202. package/dist/{chunk-FKVYS4RB.js → chunk-QPHWRD25.js} +15 -8
  203. package/dist/chunk-QPHWRD25.js.map +1 -0
  204. package/dist/chunk-QYI7ZV3B.cjs +899 -0
  205. package/dist/chunk-QYI7ZV3B.cjs.map +1 -0
  206. package/dist/{chunk-3N447NTJ.cjs → chunk-R2W3RJFW.cjs} +14 -14
  207. package/dist/chunk-R2W3RJFW.cjs.map +1 -0
  208. package/dist/{chunk-DZW35WR2.js → chunk-SGZUUUXU.js} +5 -5
  209. package/dist/chunk-SGZUUUXU.js.map +1 -0
  210. package/dist/{chunk-GMLJDDHZ.js → chunk-T7SCCACB.js} +3 -3
  211. package/dist/{chunk-GMLJDDHZ.js.map → chunk-T7SCCACB.js.map} +1 -1
  212. package/dist/{chunk-3NWZJCWL.js → chunk-TC3H6ZED.js} +5 -5
  213. package/dist/chunk-TC3H6ZED.js.map +1 -0
  214. package/dist/{chunk-FIAKZSRR.cjs → chunk-TEZNWW3R.cjs} +19 -12
  215. package/dist/chunk-TEZNWW3R.cjs.map +1 -0
  216. package/dist/{chunk-5M624BRW.js → chunk-THHZMRFU.js} +4 -4
  217. package/dist/chunk-THHZMRFU.js.map +1 -0
  218. package/dist/{chunk-AAKS22M3.cjs → chunk-TLHQ6JCK.cjs} +12 -12
  219. package/dist/{chunk-AAKS22M3.cjs.map → chunk-TLHQ6JCK.cjs.map} +1 -1
  220. package/dist/{chunk-HOPFELRP.cjs → chunk-V5Q6UNUK.cjs} +4 -4
  221. package/dist/{chunk-HOPFELRP.cjs.map → chunk-V5Q6UNUK.cjs.map} +1 -1
  222. package/dist/{chunk-DKVRRL3F.js → chunk-VBMLJUBE.js} +6 -6
  223. package/dist/chunk-VBMLJUBE.js.map +1 -0
  224. package/dist/chunk-VGJD4F4H.js +126 -0
  225. package/dist/chunk-VGJD4F4H.js.map +1 -0
  226. package/dist/{chunk-GL3M7MAM.js → chunk-VJXUBN7J.js} +4 -4
  227. package/dist/chunk-VJXUBN7J.js.map +1 -0
  228. package/dist/{chunk-4ABM7UYD.js → chunk-VUHNBLFA.js} +4 -4
  229. package/dist/chunk-VUHNBLFA.js.map +1 -0
  230. package/dist/{chunk-D2IP3MWJ.cjs → chunk-W476ER4X.cjs} +219 -59
  231. package/dist/chunk-W476ER4X.cjs.map +1 -0
  232. package/dist/{chunk-3QXN7JBV.js → chunk-WZCES5M6.js} +7 -5
  233. package/dist/chunk-WZCES5M6.js.map +1 -0
  234. package/dist/{chunk-FEQKBVCZ.cjs → chunk-Y6CVUI6A.cjs} +14 -14
  235. package/dist/chunk-Y6CVUI6A.cjs.map +1 -0
  236. package/dist/{chunk-FQG4DRJS.cjs → chunk-YCL43UQM.cjs} +71 -45
  237. package/dist/chunk-YCL43UQM.cjs.map +1 -0
  238. package/dist/{chunk-SC5BGA2N.cjs → chunk-YZXRD6K6.cjs} +8 -8
  239. package/dist/chunk-YZXRD6K6.cjs.map +1 -0
  240. package/dist/{chunk-L37ZPX6D.js → chunk-ZFGLBJYC.js} +5 -5
  241. package/dist/chunk-ZFGLBJYC.js.map +1 -0
  242. package/dist/{chunk-COPERSVL.cjs → chunk-ZNKVOTPB.cjs} +15 -15
  243. package/dist/{chunk-COPERSVL.cjs.map → chunk-ZNKVOTPB.cjs.map} +1 -1
  244. package/dist/{chunk-IXFSJBJS.js → chunk-ZOEN3ARN.js} +4 -14
  245. package/dist/chunk-ZOEN3ARN.js.map +1 -0
  246. package/dist/{chunk-QXQSJ3FZ.js → chunk-ZYXRRVR6.js} +5 -5
  247. package/dist/chunk-ZYXRRVR6.js.map +1 -0
  248. package/dist/{combo-type-wodyLq1f.d.cts → combo-type-CCrfKcTc.d.cts} +1 -1
  249. package/dist/{combo-type-BdSohVyy.d.ts → combo-type-Drb7xHSH.d.ts} +1 -1
  250. package/dist/combo.cjs +9 -9
  251. package/dist/combo.d.cts +4 -4
  252. package/dist/combo.d.ts +4 -4
  253. package/dist/combo.js +4 -4
  254. package/dist/{custom-type-B6w1n5Ua.d.cts → custom-type-CUdaJtsU.d.cts} +1 -1
  255. package/dist/{custom-type-XFjuPwCr.d.ts → custom-type-DeCdYBIK.d.ts} +1 -1
  256. package/dist/custom.cjs +10 -10
  257. package/dist/custom.d.cts +4 -4
  258. package/dist/custom.d.ts +4 -4
  259. package/dist/custom.js +5 -5
  260. package/dist/donut.cjs +11 -10
  261. package/dist/donut.cjs.map +1 -1
  262. package/dist/donut.d.cts +4 -4
  263. package/dist/donut.d.ts +4 -4
  264. package/dist/donut.js +6 -5
  265. package/dist/donut.js.map +1 -1
  266. package/dist/{dumbbell-type-w424KzI2.d.cts → dumbbell-type--8jqwUbP.d.cts} +1 -1
  267. package/dist/{dumbbell-type-DPSE0OTg.d.ts → dumbbell-type-FrAcyybz.d.ts} +1 -1
  268. package/dist/dumbbell.cjs +10 -10
  269. package/dist/dumbbell.d.cts +4 -4
  270. package/dist/dumbbell.d.ts +4 -4
  271. package/dist/dumbbell.js +5 -5
  272. package/dist/{engine-CNukbv7k.d.ts → engine-7vdmtmTm.d.cts} +20 -0
  273. package/dist/{engine-CNukbv7k.d.cts → engine-7vdmtmTm.d.ts} +20 -0
  274. package/dist/{factory-dbngWV4d.d.cts → factory-DVmPQ-5P.d.cts} +1 -1
  275. package/dist/{factory-jRzNNxwj.d.ts → factory-DXvw-FCZ.d.ts} +1 -1
  276. package/dist/{funnel-type-CMXGQq4T.d.ts → funnel-type-BhtkYPBR.d.ts} +1 -1
  277. package/dist/{funnel-type-BeVl3ohX.d.cts → funnel-type-BqLhbGkI.d.cts} +1 -1
  278. package/dist/funnel.cjs +10 -10
  279. package/dist/funnel.d.cts +4 -4
  280. package/dist/funnel.d.ts +4 -4
  281. package/dist/funnel.js +5 -5
  282. package/dist/{gauge-type-DmjDdfsY.d.cts → gauge-type-NeAO1otO.d.cts} +1 -1
  283. package/dist/{gauge-type-BpDBwCeD.d.ts → gauge-type-h6z_4lnL.d.ts} +1 -1
  284. package/dist/gauge.cjs +10 -10
  285. package/dist/gauge.d.cts +4 -4
  286. package/dist/gauge.d.ts +4 -4
  287. package/dist/gauge.js +5 -5
  288. package/dist/geo.cjs +12 -12
  289. package/dist/geo.d.cts +4 -4
  290. package/dist/geo.d.ts +4 -4
  291. package/dist/geo.js +5 -5
  292. package/dist/graph-type-Bg04GFeS.d.ts +15 -0
  293. package/dist/graph-type-DF-vww8T.d.cts +15 -0
  294. package/dist/graph.cjs +63 -10
  295. package/dist/graph.cjs.map +1 -1
  296. package/dist/graph.d.cts +65 -5
  297. package/dist/graph.d.ts +65 -5
  298. package/dist/graph.js +58 -6
  299. package/dist/graph.js.map +1 -1
  300. package/dist/{heatmap-type-q6nNhVTr.d.ts → heatmap-type-BAxcLZ1S.d.ts} +1 -1
  301. package/dist/{heatmap-type-D0shkxK7.d.cts → heatmap-type-CkmoO1Vi.d.cts} +1 -1
  302. package/dist/heatmap.cjs +10 -10
  303. package/dist/heatmap.d.cts +4 -4
  304. package/dist/heatmap.d.ts +4 -4
  305. package/dist/heatmap.js +5 -5
  306. package/dist/{histogram-type-BWil-Rb7.d.cts → histogram-type-BMxwKNZD.d.cts} +1 -1
  307. package/dist/{histogram-type-CF593WSp.d.ts → histogram-type-Bz1r_8dr.d.ts} +1 -1
  308. package/dist/histogram.cjs +9 -9
  309. package/dist/histogram.d.cts +4 -4
  310. package/dist/histogram.d.ts +4 -4
  311. package/dist/histogram.js +4 -4
  312. package/dist/{horizontal-bar-type-0mqnyMUR.d.cts → horizontal-bar-type-CPMqObyF.d.cts} +1 -1
  313. package/dist/{horizontal-bar-type-DAlrxY0h.d.ts → horizontal-bar-type-oNPstB_X.d.ts} +1 -1
  314. package/dist/horizontal-bar.cjs +9 -9
  315. package/dist/horizontal-bar.d.cts +4 -4
  316. package/dist/horizontal-bar.d.ts +4 -4
  317. package/dist/horizontal-bar.js +4 -4
  318. package/dist/index.cjs +180 -179
  319. package/dist/index.cjs.map +1 -1
  320. package/dist/index.d.cts +51 -47
  321. package/dist/index.d.ts +51 -47
  322. package/dist/index.js +92 -91
  323. package/dist/index.js.map +1 -1
  324. package/dist/{kagi-type-Y5XUVm3h.d.ts → kagi-type-DLvdmNEs.d.ts} +1 -1
  325. package/dist/{kagi-type-aG-Q1bWk.d.cts → kagi-type-DolumABK.d.cts} +1 -1
  326. package/dist/kagi.cjs +10 -10
  327. package/dist/kagi.d.cts +4 -4
  328. package/dist/kagi.d.ts +4 -4
  329. package/dist/kagi.js +5 -5
  330. package/dist/{line-type-Diw0nXj7.d.ts → line-type-CQ_Sbwde.d.ts} +1 -1
  331. package/dist/{line-type-B8lgTFjb.d.cts → line-type-DU-iLYyU.d.cts} +1 -1
  332. package/dist/line.cjs +9 -9
  333. package/dist/line.d.cts +4 -4
  334. package/dist/line.d.ts +4 -4
  335. package/dist/line.js +4 -4
  336. package/dist/{lines-type-CGrg_mDi.d.cts → lines-type-BZF5YnFG.d.cts} +1 -1
  337. package/dist/{lines-type-V-seVNZ4.d.ts → lines-type-CkKW7kQN.d.ts} +1 -1
  338. package/dist/lines.cjs +10 -10
  339. package/dist/lines.d.cts +4 -4
  340. package/dist/lines.d.ts +4 -4
  341. package/dist/lines.js +5 -5
  342. package/dist/{lollipop-type-CoTzKLSu.d.cts → lollipop-type-BUeY0pGU.d.cts} +1 -1
  343. package/dist/{lollipop-type-Ygc4rRql.d.ts → lollipop-type-DY7z1meu.d.ts} +1 -1
  344. package/dist/lollipop.cjs +9 -9
  345. package/dist/lollipop.d.cts +4 -4
  346. package/dist/lollipop.d.ts +4 -4
  347. package/dist/lollipop.js +4 -4
  348. package/dist/{matrix-type-Crb_NwUJ.d.cts → matrix-type-DZBt3yku.d.cts} +1 -1
  349. package/dist/{matrix-type-Dag1VLCY.d.ts → matrix-type-DkaWmxKb.d.ts} +1 -1
  350. package/dist/matrix.cjs +10 -10
  351. package/dist/matrix.d.cts +4 -4
  352. package/dist/matrix.d.ts +4 -4
  353. package/dist/matrix.js +5 -5
  354. package/dist/{ohlc-type-BQBHvVJO.d.cts → ohlc-type-C6NE-Bb3.d.cts} +1 -1
  355. package/dist/{ohlc-type-CGR-vRGL.d.ts → ohlc-type-eQd0E8lm.d.ts} +1 -1
  356. package/dist/ohlc.cjs +9 -9
  357. package/dist/ohlc.d.cts +4 -4
  358. package/dist/ohlc.d.ts +4 -4
  359. package/dist/ohlc.js +4 -4
  360. package/dist/{parallel-type-D-S-EqeC.d.cts → parallel-type-Cn2B_2-r.d.cts} +1 -1
  361. package/dist/{parallel-type-6t6xyHMg.d.ts → parallel-type-D4B96-R-.d.ts} +1 -1
  362. package/dist/parallel.cjs +10 -10
  363. package/dist/parallel.d.cts +4 -4
  364. package/dist/parallel.d.ts +4 -4
  365. package/dist/parallel.js +5 -5
  366. package/dist/{pictorialbar-type-A-8mTX1N.d.ts → pictorialbar-type-CoClaroO.d.ts} +1 -1
  367. package/dist/{pictorialbar-type-CnJEH9GZ.d.cts → pictorialbar-type-jiWGSHOU.d.cts} +1 -1
  368. package/dist/pictorialbar.cjs +10 -10
  369. package/dist/pictorialbar.d.cts +4 -4
  370. package/dist/pictorialbar.d.ts +4 -4
  371. package/dist/pictorialbar.js +5 -5
  372. package/dist/{pie-type-S7kUKGRS.d.ts → pie-type-0inQl-lu.d.ts} +1 -1
  373. package/dist/{pie-type-duX5xkfQ.d.cts → pie-type-9iaid0XE.d.cts} +1 -1
  374. package/dist/pie.cjs +11 -10
  375. package/dist/pie.cjs.map +1 -1
  376. package/dist/pie.d.cts +4 -4
  377. package/dist/pie.d.ts +4 -4
  378. package/dist/pie.js +6 -5
  379. package/dist/pie.js.map +1 -1
  380. package/dist/{polar-type-CI6-I8Yg.d.cts → polar-type-BraqKI4A.d.ts} +2 -1
  381. package/dist/{polar-type-Dj21GIc9.d.ts → polar-type-DsB9FOAO.d.cts} +2 -1
  382. package/dist/polar.cjs +11 -10
  383. package/dist/polar.cjs.map +1 -1
  384. package/dist/polar.d.cts +4 -4
  385. package/dist/polar.d.ts +4 -4
  386. package/dist/polar.js +6 -5
  387. package/dist/polar.js.map +1 -1
  388. package/dist/{radar-type-CYjZHuKm.d.ts → radar-type-C0JiXn53.d.ts} +1 -1
  389. package/dist/{radar-type-Dgyr13Zd.d.cts → radar-type-DaLjHpgO.d.cts} +1 -1
  390. package/dist/radar.cjs +10 -10
  391. package/dist/radar.d.cts +4 -4
  392. package/dist/radar.d.ts +4 -4
  393. package/dist/radar.js +5 -5
  394. package/dist/{radialbar-type-CLZ8XgST.d.ts → radialbar-type-DMzib3wW.d.ts} +1 -1
  395. package/dist/{radialbar-type-C_SBXoaa.d.cts → radialbar-type-YtZDe2x4.d.cts} +1 -1
  396. package/dist/radialbar.cjs +10 -10
  397. package/dist/radialbar.d.cts +4 -4
  398. package/dist/radialbar.d.ts +4 -4
  399. package/dist/radialbar.js +5 -5
  400. package/dist/{range-type-_LbMV4tl.d.ts → range-type-RlwPvBxs.d.ts} +1 -1
  401. package/dist/{range-type-CkriEnLm.d.cts → range-type-imi4626F.d.cts} +1 -1
  402. package/dist/range.cjs +9 -9
  403. package/dist/range.d.cts +4 -4
  404. package/dist/range.d.ts +4 -4
  405. package/dist/range.js +4 -4
  406. package/dist/{renko-type-ejoXt2ro.d.ts → renko-type-Bv23hPuk.d.ts} +1 -1
  407. package/dist/{renko-type-43OXCtZ3.d.cts → renko-type-DEe4vBKT.d.cts} +1 -1
  408. package/dist/renko.cjs +10 -10
  409. package/dist/renko.d.cts +4 -4
  410. package/dist/renko.d.ts +4 -4
  411. package/dist/renko.js +5 -5
  412. package/dist/{sankey-type-DfkTUnXB.d.cts → sankey-type-B0LCLees.d.cts} +1 -1
  413. package/dist/{sankey-type-CN7PL5MQ.d.ts → sankey-type-Gr2owHtQ.d.ts} +1 -1
  414. package/dist/sankey.cjs +10 -10
  415. package/dist/sankey.d.cts +4 -4
  416. package/dist/sankey.d.ts +4 -4
  417. package/dist/sankey.js +5 -5
  418. package/dist/{scatter-type-CD7X1pZb.d.cts → scatter-type-C0vMtH11.d.cts} +1 -1
  419. package/dist/{scatter-type-D3HdPkZ6.d.ts → scatter-type-DPCIXt3X.d.ts} +1 -1
  420. package/dist/scatter.cjs +9 -9
  421. package/dist/scatter.d.cts +4 -4
  422. package/dist/scatter.d.ts +4 -4
  423. package/dist/scatter.js +4 -4
  424. package/dist/{sparkline-type-qt3yoLs7.d.cts → sparkline-type-BDDpw4DS.d.cts} +1 -1
  425. package/dist/{sparkline-type-COW3izgF.d.ts → sparkline-type-BtSsuoh4.d.ts} +1 -1
  426. package/dist/sparkline.cjs +9 -9
  427. package/dist/sparkline.d.cts +4 -4
  428. package/dist/sparkline.d.ts +4 -4
  429. package/dist/sparkline.js +4 -4
  430. package/dist/{stacked-bar-type-C-5pmb-D.d.ts → stacked-bar-type-5_GXIxLN.d.ts} +1 -1
  431. package/dist/{stacked-bar-type-Ct6HK2A0.d.cts → stacked-bar-type-BF4R1zEK.d.cts} +1 -1
  432. package/dist/stacked-bar.cjs +9 -9
  433. package/dist/stacked-bar.d.cts +4 -4
  434. package/dist/stacked-bar.d.ts +4 -4
  435. package/dist/stacked-bar.js +4 -4
  436. package/dist/{step-type-BSL-CUny.d.cts → step-type-CZJO5PE4.d.cts} +1 -1
  437. package/dist/{step-type-Cleoshov.d.ts → step-type-CoBGeRRR.d.ts} +1 -1
  438. package/dist/step.cjs +10 -10
  439. package/dist/step.d.cts +4 -4
  440. package/dist/step.d.ts +4 -4
  441. package/dist/step.js +5 -5
  442. package/dist/{sunburst-type-ZFw2w6m8.d.ts → sunburst-type-CAcFLV8s.d.ts} +1 -1
  443. package/dist/{sunburst-type-BOztb_Px.d.cts → sunburst-type-DgP1x1nn.d.cts} +1 -1
  444. package/dist/sunburst.cjs +11 -10
  445. package/dist/sunburst.cjs.map +1 -1
  446. package/dist/sunburst.d.cts +4 -4
  447. package/dist/sunburst.d.ts +4 -4
  448. package/dist/sunburst.js +6 -5
  449. package/dist/sunburst.js.map +1 -1
  450. package/dist/{themeriver-type-B5PYChcC.d.ts → themeriver-type-BxLJux1v.d.ts} +1 -1
  451. package/dist/{themeriver-type-BnRSsyal.d.cts → themeriver-type-CGn5zE2F.d.cts} +1 -1
  452. package/dist/themeriver.cjs +10 -10
  453. package/dist/themeriver.d.cts +4 -4
  454. package/dist/themeriver.d.ts +4 -4
  455. package/dist/themeriver.js +5 -5
  456. package/dist/{tree-type-B-bOSg0l.d.ts → tree-type-Dyw9F7oq.d.ts} +1 -1
  457. package/dist/{tree-type-Cz84wHnR.d.cts → tree-type-xf-pj4pG.d.cts} +1 -1
  458. package/dist/tree.cjs +10 -10
  459. package/dist/tree.d.cts +4 -4
  460. package/dist/tree.d.ts +4 -4
  461. package/dist/tree.js +5 -5
  462. package/dist/{treemap-type-DYDj-rWv.d.ts → treemap-type-B4ty-Vge.d.ts} +1 -1
  463. package/dist/{treemap-type-OBCGexiK.d.cts → treemap-type-CeLgbJFQ.d.cts} +1 -1
  464. package/dist/treemap.cjs +10 -10
  465. package/dist/treemap.d.cts +4 -4
  466. package/dist/treemap.d.ts +4 -4
  467. package/dist/treemap.js +5 -5
  468. package/dist/{volume-type-C9wRmKR6.d.ts → volume-type-2ZgLIkPV.d.ts} +1 -1
  469. package/dist/{volume-type-CfERBN5g.d.cts → volume-type-Dvnr4sC9.d.cts} +1 -1
  470. package/dist/volume.cjs +9 -9
  471. package/dist/volume.d.cts +4 -4
  472. package/dist/volume.d.ts +4 -4
  473. package/dist/volume.js +4 -4
  474. package/dist/{waterfall-type-hm5ylGgW.d.cts → waterfall-type-D_6Db7Zy.d.cts} +1 -1
  475. package/dist/{waterfall-type-CpdVtBi_.d.ts → waterfall-type-DsC5vlAP.d.ts} +1 -1
  476. package/dist/waterfall.cjs +9 -9
  477. package/dist/waterfall.d.cts +4 -4
  478. package/dist/waterfall.d.ts +4 -4
  479. package/dist/waterfall.js +4 -4
  480. package/dist/world-regions-C0JUJCGT.d.ts +25 -0
  481. package/dist/world-regions-gUFRPji8.d.cts +25 -0
  482. package/package.json +11 -7
  483. package/dist/chunk-27E6G2GT.js.map +0 -1
  484. package/dist/chunk-2KMMVJEE.cjs.map +0 -1
  485. package/dist/chunk-2L46SAT7.js.map +0 -1
  486. package/dist/chunk-3N447NTJ.cjs.map +0 -1
  487. package/dist/chunk-3NWZJCWL.js.map +0 -1
  488. package/dist/chunk-3QXN7JBV.js.map +0 -1
  489. package/dist/chunk-3TLJCGGQ.cjs.map +0 -1
  490. package/dist/chunk-43WDYYVH.cjs.map +0 -1
  491. package/dist/chunk-4ABM7UYD.js.map +0 -1
  492. package/dist/chunk-5LQ26P4J.cjs.map +0 -1
  493. package/dist/chunk-5M624BRW.js.map +0 -1
  494. package/dist/chunk-6WJJ26J5.js.map +0 -1
  495. package/dist/chunk-7HOU6XMW.js.map +0 -1
  496. package/dist/chunk-7JN6GXML.cjs.map +0 -1
  497. package/dist/chunk-7MXBXWVD.js.map +0 -1
  498. package/dist/chunk-AA45U5KV.js.map +0 -1
  499. package/dist/chunk-ALRCYQQX.cjs.map +0 -1
  500. package/dist/chunk-B7IV2PB3.cjs.map +0 -1
  501. package/dist/chunk-BMTVFAX2.js.map +0 -1
  502. package/dist/chunk-CCHMQZIB.js.map +0 -1
  503. package/dist/chunk-CHERQT4B.js.map +0 -1
  504. package/dist/chunk-CJEMSKW3.js.map +0 -1
  505. package/dist/chunk-D2IP3MWJ.cjs.map +0 -1
  506. package/dist/chunk-DAH76GIX.cjs.map +0 -1
  507. package/dist/chunk-DKVRRL3F.js.map +0 -1
  508. package/dist/chunk-DZHP4UUE.cjs.map +0 -1
  509. package/dist/chunk-DZW35WR2.js.map +0 -1
  510. package/dist/chunk-EAKXLFOR.cjs.map +0 -1
  511. package/dist/chunk-EYN74SQ5.js.map +0 -1
  512. package/dist/chunk-FEQKBVCZ.cjs.map +0 -1
  513. package/dist/chunk-FIAKZSRR.cjs.map +0 -1
  514. package/dist/chunk-FKAA5FNG.cjs.map +0 -1
  515. package/dist/chunk-FKVYS4RB.js.map +0 -1
  516. package/dist/chunk-FQG4DRJS.cjs.map +0 -1
  517. package/dist/chunk-GI7PBJSK.js.map +0 -1
  518. package/dist/chunk-GL3M7MAM.js.map +0 -1
  519. package/dist/chunk-GQR7IHER.js.map +0 -1
  520. package/dist/chunk-GUVPVNPD.cjs.map +0 -1
  521. package/dist/chunk-IAE4VRB7.cjs.map +0 -1
  522. package/dist/chunk-ID7GYRYL.cjs.map +0 -1
  523. package/dist/chunk-IUYPKYOU.js.map +0 -1
  524. package/dist/chunk-IXFSJBJS.js.map +0 -1
  525. package/dist/chunk-JT6H7G52.js.map +0 -1
  526. package/dist/chunk-K2EZ4SS4.js.map +0 -1
  527. package/dist/chunk-K7UR7GYC.cjs.map +0 -1
  528. package/dist/chunk-KEMT7F5H.cjs.map +0 -1
  529. package/dist/chunk-KHQRHTTN.js.map +0 -1
  530. package/dist/chunk-KUFDELQM.cjs.map +0 -1
  531. package/dist/chunk-L37ZPX6D.js.map +0 -1
  532. package/dist/chunk-M6JYSINX.cjs.map +0 -1
  533. package/dist/chunk-MGYBMQAX.cjs.map +0 -1
  534. package/dist/chunk-MZCKMTQE.cjs +0 -210
  535. package/dist/chunk-MZCKMTQE.cjs.map +0 -1
  536. package/dist/chunk-MZQY2FTP.cjs.map +0 -1
  537. package/dist/chunk-N7NZQVIV.cjs.map +0 -1
  538. package/dist/chunk-NML7F34A.js.map +0 -1
  539. package/dist/chunk-NQGZMWNT.js +0 -208
  540. package/dist/chunk-NQGZMWNT.js.map +0 -1
  541. package/dist/chunk-NZWFBAFQ.js.map +0 -1
  542. package/dist/chunk-PCTMS2PX.cjs.map +0 -1
  543. package/dist/chunk-QCR6L55R.js.map +0 -1
  544. package/dist/chunk-QRTYX5KO.js.map +0 -1
  545. package/dist/chunk-QXQSJ3FZ.js.map +0 -1
  546. package/dist/chunk-S64PTNT7.cjs.map +0 -1
  547. package/dist/chunk-S6NGWPXC.js.map +0 -1
  548. package/dist/chunk-SC5BGA2N.cjs.map +0 -1
  549. package/dist/chunk-SKREYNRK.cjs.map +0 -1
  550. package/dist/chunk-SLJNRP7O.cjs.map +0 -1
  551. package/dist/chunk-TIHVTKXS.cjs.map +0 -1
  552. package/dist/chunk-TVPS2NJH.cjs.map +0 -1
  553. package/dist/chunk-U7GBOQXX.js.map +0 -1
  554. package/dist/chunk-VGGKMTO6.js.map +0 -1
  555. package/dist/chunk-VJQCHBS6.js.map +0 -1
  556. package/dist/chunk-WS2AL7GY.cjs.map +0 -1
  557. package/dist/chunk-XKDBNAHH.cjs.map +0 -1
  558. package/dist/chunk-Y4HJCMB4.cjs.map +0 -1
  559. package/dist/chunk-YMJQUKKX.js.map +0 -1
  560. package/dist/graph-type-DkdAB6Vc.d.cts +0 -5
  561. package/dist/graph-type-ul9xwdf5.d.ts +0 -5
  562. package/dist/world-regions-D-TCHPZP.d.cts +0 -38
  563. package/dist/world-regions-DjMvYgFu.d.ts +0 -38
@@ -1085,17 +1085,30 @@ var CHART_CSS = (
1085
1085
  .chartts-geo-region {
1086
1086
  animation: chartts-geo-in 0.4s ease calc(var(--chartts-i, 0) * 3ms) forwards;
1087
1087
  opacity: 0;
1088
- transition: fill-opacity 0.2s ease, filter 0.15s ease;
1088
+ transition: fill-opacity 0.15s ease, filter 0.15s ease, stroke-width 0.15s ease, stroke 0.15s ease;
1089
1089
  cursor: pointer;
1090
1090
  }
1091
1091
  .chartts-geo-region:hover {
1092
- filter: brightness(1.1);
1092
+ filter: brightness(1.15) drop-shadow(0 0 2px rgba(0,0,0,0.3));
1093
1093
  fill-opacity: 0.95 !important;
1094
+ stroke: #fff !important;
1095
+ stroke-width: 1.5px !important;
1096
+ }
1097
+ .chartts-geo-label {
1098
+ pointer-events: none;
1099
+ text-shadow: 0 0 3px rgba(0,0,0,0.5), 0 0 6px rgba(0,0,0,0.3);
1094
1100
  }
1095
1101
  .chartts-geo-scatter {
1096
- transition: r 0.15s ease;
1102
+ transition: r 0.15s ease, opacity 0.15s ease;
1097
1103
  cursor: pointer;
1098
1104
  }
1105
+ .chartts-geo-scatter:hover {
1106
+ opacity: 0.9;
1107
+ filter: drop-shadow(0 0 4px currentColor);
1108
+ }
1109
+ .chartts-geo-legend text {
1110
+ user-select: none;
1111
+ }
1099
1112
 
1100
1113
  /* ---- Lines (flow) ---- */
1101
1114
  @keyframes chartts-lines-flow-in {
@@ -1280,8 +1293,9 @@ var CHART_CSS = (
1280
1293
  .chartts-skip-anim .chartts-renko-brick {
1281
1294
  animation: none !important;
1282
1295
  opacity: 1 !important;
1283
- transform: none !important;
1284
1296
  }
1297
+ .chartts-skip-anim .chartts-line,
1298
+ .chartts-skip-anim .chartts-sparkline-line,
1285
1299
  .chartts-skip-anim .chartts-gauge-fill {
1286
1300
  stroke-dashoffset: 0 !important;
1287
1301
  }
@@ -1312,8 +1326,9 @@ var CHART_CSS = (
1312
1326
  .chartts-renko-brick {
1313
1327
  animation: none !important;
1314
1328
  opacity: 1 !important;
1315
- transform: none !important;
1316
1329
  }
1330
+ .chartts-line,
1331
+ .chartts-sparkline-line,
1317
1332
  .chartts-gauge-fill {
1318
1333
  stroke-dashoffset: 0 !important;
1319
1334
  }
@@ -1467,10 +1482,16 @@ function applyAttrs(el2, attrs) {
1467
1482
  stroke: "stroke",
1468
1483
  strokeWidth: "stroke-width",
1469
1484
  strokeDasharray: "stroke-dasharray",
1485
+ strokeOpacity: "stroke-opacity",
1486
+ strokeLinecap: "stroke-linecap",
1487
+ strokeLinejoin: "stroke-linejoin",
1470
1488
  fill: "fill",
1471
1489
  fillOpacity: "fill-opacity",
1472
1490
  opacity: "opacity",
1473
1491
  transform: "transform",
1492
+ filter: "filter",
1493
+ cursor: "cursor",
1494
+ pointerEvents: "pointer-events",
1474
1495
  role: "role",
1475
1496
  ariaLabel: "aria-label",
1476
1497
  tabindex: "tabindex"
@@ -1488,17 +1509,20 @@ function applyAttrs(el2, attrs) {
1488
1509
  }
1489
1510
  }
1490
1511
  function applyEntryAnimations(svg) {
1491
- svg.querySelectorAll(".chartts-line, .chartts-sparkline-line").forEach((p) => {
1492
- try {
1493
- const existing = p.getAttribute("stroke-dasharray");
1494
- if (existing && existing.includes(",")) return;
1495
- const len = p.getTotalLength();
1496
- p.style.setProperty("--chartts-path-len", String(len));
1497
- p.setAttribute("stroke-dasharray", String(len));
1498
- p.setAttribute("stroke-dashoffset", String(len));
1499
- } catch {
1500
- }
1501
- });
1512
+ const skipAnim = svg.classList.contains("chartts-skip-anim");
1513
+ if (!skipAnim) {
1514
+ svg.querySelectorAll(".chartts-line, .chartts-sparkline-line").forEach((p) => {
1515
+ try {
1516
+ const existing = p.getAttribute("stroke-dasharray");
1517
+ if (existing && existing.includes(",")) return;
1518
+ const len = p.getTotalLength();
1519
+ p.style.setProperty("--chartts-path-len", String(len));
1520
+ p.setAttribute("stroke-dasharray", String(len));
1521
+ p.setAttribute("stroke-dashoffset", String(len));
1522
+ } catch {
1523
+ }
1524
+ });
1525
+ }
1502
1526
  const STAGGER_SELECTORS = [
1503
1527
  ".chartts-point",
1504
1528
  ".chartts-bar",
@@ -1540,27 +1564,54 @@ function applyEntryAnimations(svg) {
1540
1564
  el2.style.setProperty("--chartts-i", String(i));
1541
1565
  });
1542
1566
  }
1543
- svg.querySelectorAll(".chartts-gauge-fill").forEach((p) => {
1544
- try {
1545
- const len = p.getTotalLength();
1546
- p.style.setProperty("--chartts-path-len", String(len));
1547
- p.setAttribute("stroke-dasharray", String(len));
1548
- p.setAttribute("stroke-dashoffset", String(len));
1549
- } catch {
1550
- }
1551
- });
1567
+ if (!skipAnim) {
1568
+ svg.querySelectorAll(".chartts-gauge-fill").forEach((p) => {
1569
+ try {
1570
+ const len = p.getTotalLength();
1571
+ p.style.setProperty("--chartts-path-len", String(len));
1572
+ p.setAttribute("stroke-dasharray", String(len));
1573
+ p.setAttribute("stroke-dashoffset", String(len));
1574
+ } catch {
1575
+ }
1576
+ });
1577
+ }
1552
1578
  svg.querySelectorAll(".chartts-radar-area").forEach((el2, i) => {
1553
1579
  el2.style.setProperty("--chartts-radar-i", String(i));
1554
1580
  });
1555
1581
  }
1556
1582
 
1557
1583
  // src/render/canvas.ts
1584
+ var cssVarMap = {};
1585
+ function buildCssVarMap(theme) {
1586
+ const p = "--chartts";
1587
+ cssVarMap = {
1588
+ [`${p}-bg`]: theme.background,
1589
+ [`${p}-text`]: theme.textColor,
1590
+ [`${p}-text-muted`]: theme.textMuted,
1591
+ [`${p}-axis`]: theme.axisColor,
1592
+ [`${p}-grid`]: theme.gridColor,
1593
+ [`${p}-tooltip-bg`]: theme.tooltipBackground,
1594
+ [`${p}-tooltip-text`]: theme.tooltipText,
1595
+ [`${p}-tooltip-border`]: theme.tooltipBorder
1596
+ };
1597
+ theme.colors.forEach((c, i) => {
1598
+ cssVarMap[`${p}-color-${i + 1}`] = typeof c === "string" ? c : String(c);
1599
+ });
1600
+ }
1558
1601
  function resolveColor(value, fallback = "#000") {
1559
1602
  if (!value) return fallback;
1560
1603
  if (value === "none" || value === "transparent") return "transparent";
1561
1604
  if (value.startsWith("url(")) return value;
1562
- const match = value.match(/var\([^,]+,\s*([^)]+)\)/);
1563
- return match ? match[1].trim() : value;
1605
+ const varMatch = value.match(/var\(\s*([^,)]+)(?:,\s*([^)]+))?\)/);
1606
+ if (varMatch) {
1607
+ const token = varMatch[1].trim();
1608
+ const mapped = cssVarMap[token];
1609
+ if (mapped) {
1610
+ return resolveColor(mapped, varMatch[2]?.trim() ?? fallback);
1611
+ }
1612
+ return varMatch[2]?.trim() ?? fallback;
1613
+ }
1614
+ return value;
1564
1615
  }
1565
1616
  function hexToRgba(hex, alpha) {
1566
1617
  const h = hex.replace("#", "");
@@ -1624,9 +1675,10 @@ function mapTextBaseline(baseline) {
1624
1675
  return "alphabetic";
1625
1676
  }
1626
1677
  }
1627
- function createCanvasRenderer(theme) {
1628
- const colors = theme.colors;
1678
+ function createCanvasRenderer(getTheme) {
1679
+ const resolveTheme2 = typeof getTheme === "function" ? getTheme : () => getTheme;
1629
1680
  let clipPaths = /* @__PURE__ */ new Map();
1681
+ let currentColors = [];
1630
1682
  return {
1631
1683
  createRoot(target, width, height, attrs) {
1632
1684
  const canvas = document.createElement("canvas");
@@ -1639,7 +1691,7 @@ function createCanvasRenderer(theme) {
1639
1691
  if (attrs?.class) canvas.className = attrs.class;
1640
1692
  if (attrs?.role) canvas.setAttribute("role", attrs.role);
1641
1693
  if (attrs?.ariaLabel) canvas.setAttribute("aria-label", attrs.ariaLabel);
1642
- const ctx2d = canvas.getContext("2d", { alpha: false });
1694
+ const ctx2d = canvas.getContext("2d");
1643
1695
  ctx2d.setTransform(dpr, 0, 0, dpr, 0, 0);
1644
1696
  target.appendChild(canvas);
1645
1697
  const root = { element: canvas };
@@ -1653,16 +1705,25 @@ function createCanvasRenderer(theme) {
1653
1705
  const cr = root;
1654
1706
  const canvas = cr.element;
1655
1707
  const dpr = window.devicePixelRatio || 1;
1708
+ const theme = resolveTheme2();
1709
+ const colors = theme.colors;
1710
+ buildCssVarMap(theme);
1656
1711
  cr.width = canvas.width / dpr;
1657
1712
  cr.height = canvas.height / dpr;
1658
1713
  cr.dpr = dpr;
1659
1714
  clipPaths = /* @__PURE__ */ new Map();
1715
+ currentColors = colors;
1660
1716
  const ctx = cr.ctx;
1661
1717
  ctx.imageSmoothingEnabled = true;
1662
1718
  ctx.imageSmoothingQuality = "high";
1663
1719
  ctx.save();
1664
- ctx.fillStyle = resolveColor(theme.background, "#ffffff");
1665
- ctx.fillRect(0, 0, cr.width, cr.height);
1720
+ const bg = resolveColor(theme.background, "#ffffff");
1721
+ if (bg === "transparent") {
1722
+ ctx.clearRect(0, 0, cr.width, cr.height);
1723
+ } else {
1724
+ ctx.fillStyle = bg;
1725
+ ctx.fillRect(0, 0, cr.width, cr.height);
1726
+ }
1666
1727
  ctx.restore();
1667
1728
  collectClipPaths(nodes);
1668
1729
  drawNodes(cr.ctx, nodes, cr.width, cr.height);
@@ -1835,12 +1896,13 @@ function createCanvasRenderer(theme) {
1835
1896
  break;
1836
1897
  }
1837
1898
  case "text": {
1838
- const fill = resolveColor(node.attrs?.fill, theme.textColor);
1899
+ const t = resolveTheme2();
1900
+ const fill = resolveColor(node.attrs?.fill, t.textColor);
1839
1901
  const resolvedFill = resolveColor(fill);
1840
1902
  const opacity = node.attrs?.opacity ?? 1;
1841
1903
  const extra = node.attrs;
1842
- const fontSize = extra?.fontSize ?? theme.fontSize;
1843
- const fontFamily = extra?.fontFamily ?? theme.fontFamily;
1904
+ const fontSize = extra?.fontSize ?? t.fontSize;
1905
+ const fontFamily = extra?.fontFamily ?? t.fontFamily;
1844
1906
  const fontWeight = extra?.fontWeight ?? "normal";
1845
1907
  const textAnchor = extra?.textAnchor;
1846
1908
  const baseline = extra?.dominantBaseline;
@@ -1861,7 +1923,7 @@ function createCanvasRenderer(theme) {
1861
1923
  if (!fill) return "transparent";
1862
1924
  const urlId = parseUrlRef(fill);
1863
1925
  if (urlId) {
1864
- const grad = resolveGradientRef(urlId, colors, ctx, x, y, w, h);
1926
+ const grad = resolveGradientRef(urlId, currentColors, ctx, x, y, w, h);
1865
1927
  return grad ?? resolveColor(fill);
1866
1928
  }
1867
1929
  return resolveColor(fill);
@@ -2819,7 +2881,8 @@ function createZoomPan(config, onUpdate, interactionState) {
2819
2881
  drag: config.drag ?? true,
2820
2882
  pinch: config.pinch ?? true,
2821
2883
  minZoom: config.minZoom ?? 1,
2822
- maxZoom: config.maxZoom ?? 20
2884
+ maxZoom: config.maxZoom ?? 20,
2885
+ normalizedPan: config.normalizedPan ?? true
2823
2886
  };
2824
2887
  const state = {
2825
2888
  zoomX: 1,
@@ -2850,7 +2913,12 @@ function createZoomPan(config, onUpdate, interactionState) {
2850
2913
  state.zoomX = newZoom;
2851
2914
  }
2852
2915
  if (cfg.y) {
2853
- state.zoomY = clamp(state.zoomY * delta, cfg.minZoom, cfg.maxZoom);
2916
+ const mouseY = e.clientY - rect2.top;
2917
+ const relY = (mouseY - area.y) / area.height;
2918
+ const newZoomY = clamp(state.zoomY * delta, cfg.minZoom, cfg.maxZoom);
2919
+ const zoomRatioY = newZoomY / state.zoomY;
2920
+ state.panY = relY - (relY - state.panY) * zoomRatioY;
2921
+ state.zoomY = newZoomY;
2854
2922
  }
2855
2923
  clampPan();
2856
2924
  onUpdate();
@@ -2873,10 +2941,10 @@ function createZoomPan(config, onUpdate, interactionState) {
2873
2941
  const dx = e.clientX - dragStartX;
2874
2942
  const dy = e.clientY - dragStartY;
2875
2943
  if (cfg.x) {
2876
- state.panX = dragStartPanX + dx / (area.width * state.zoomX);
2944
+ state.panX = dragStartPanX + dx / (cfg.normalizedPan ? area.width * state.zoomX : area.width);
2877
2945
  }
2878
2946
  if (cfg.y) {
2879
- state.panY = dragStartPanY + dy / (area.height * state.zoomY);
2947
+ state.panY = dragStartPanY + dy / (cfg.normalizedPan ? area.height * state.zoomY : area.height);
2880
2948
  }
2881
2949
  clampPan();
2882
2950
  onUpdate();
@@ -2888,30 +2956,48 @@ function createZoomPan(config, onUpdate, interactionState) {
2888
2956
  el2.releasePointerCapture(e.pointerId);
2889
2957
  el2.style.cursor = "crosshair";
2890
2958
  }
2959
+ let lastPinchCenterX = 0;
2960
+ let lastPinchCenterY = 0;
2891
2961
  function onTouchStart(e) {
2892
2962
  if (!cfg.pinch || e.touches.length !== 2) return;
2893
2963
  lastPinchDist = pinchDistance(e);
2964
+ lastPinchCenterX = (e.touches[0].clientX + e.touches[1].clientX) / 2;
2965
+ lastPinchCenterY = (e.touches[0].clientY + e.touches[1].clientY) / 2;
2894
2966
  }
2895
2967
  function onTouchMove(e) {
2896
- if (!cfg.pinch || e.touches.length !== 2) return;
2968
+ if (!cfg.pinch || e.touches.length !== 2 || !getArea) return;
2897
2969
  e.preventDefault();
2970
+ const area = getArea();
2971
+ const rect2 = el2.getBoundingClientRect();
2898
2972
  const dist = pinchDistance(e);
2899
- const scale = dist / lastPinchDist;
2973
+ const scaleFactor = dist / lastPinchDist;
2900
2974
  lastPinchDist = dist;
2975
+ const cx = (lastPinchCenterX - rect2.left - area.x) / area.width;
2976
+ const cy = (lastPinchCenterY - rect2.top - area.y) / area.height;
2977
+ lastPinchCenterX = (e.touches[0].clientX + e.touches[1].clientX) / 2;
2978
+ lastPinchCenterY = (e.touches[0].clientY + e.touches[1].clientY) / 2;
2901
2979
  if (cfg.x) {
2902
- state.zoomX = clamp(state.zoomX * scale, cfg.minZoom, cfg.maxZoom);
2980
+ const newZoom = clamp(state.zoomX * scaleFactor, cfg.minZoom, cfg.maxZoom);
2981
+ const ratio = newZoom / state.zoomX;
2982
+ state.panX = cx - (cx - state.panX) * ratio;
2983
+ state.zoomX = newZoom;
2903
2984
  }
2904
2985
  if (cfg.y) {
2905
- state.zoomY = clamp(state.zoomY * scale, cfg.minZoom, cfg.maxZoom);
2986
+ const newZoom = clamp(state.zoomY * scaleFactor, cfg.minZoom, cfg.maxZoom);
2987
+ const ratio = newZoom / state.zoomY;
2988
+ state.panY = cy - (cy - state.panY) * ratio;
2989
+ state.zoomY = newZoom;
2906
2990
  }
2907
2991
  clampPan();
2908
2992
  onUpdate();
2909
2993
  }
2910
2994
  function clampPan() {
2911
- const visibleX = 1 / state.zoomX;
2912
- state.panX = clamp(state.panX, -(1 - visibleX), 0);
2913
- const visibleY = 1 / state.zoomY;
2914
- state.panY = clamp(state.panY, -(1 - visibleY), 0);
2995
+ const halfVisX = (1 - 1 / state.zoomX) / 2;
2996
+ const limitX = cfg.normalizedPan ? halfVisX : state.zoomX - 1;
2997
+ state.panX = clamp(state.panX, -limitX, limitX);
2998
+ const halfVisY = (1 - 1 / state.zoomY) / 2;
2999
+ const limitY = cfg.normalizedPan ? halfVisY : state.zoomY - 1;
3000
+ state.panY = clamp(state.panY, -limitY, limitY);
2915
3001
  }
2916
3002
  function pinchDistance(e) {
2917
3003
  const dx = e.touches[0].clientX - e.touches[1].clientX;
@@ -3766,9 +3852,61 @@ function createTooltip(config, theme) {
3766
3852
  return { show, hide, destroy };
3767
3853
  }
3768
3854
 
3855
+ // src/interaction/highlight.ts
3856
+ function defaultHighlightNodes(hit, ctx) {
3857
+ const color = resolveHighlightColor(ctx.data.series[hit.seriesIndex]?.color, ctx.theme);
3858
+ const r = ctx.theme.pointRadius;
3859
+ return [
3860
+ // Outer glow
3861
+ circle(hit.x, hit.y, r * 3, {
3862
+ class: "chartts-highlight-glow",
3863
+ fill: color,
3864
+ fillOpacity: 0.2
3865
+ }),
3866
+ // Solid dot
3867
+ circle(hit.x, hit.y, r + 1, {
3868
+ class: "chartts-highlight-dot",
3869
+ fill: color,
3870
+ stroke: ctx.theme.background === "transparent" ? "#fff" : ctx.theme.background,
3871
+ strokeWidth: 2
3872
+ })
3873
+ ];
3874
+ }
3875
+ function applyDimming(nodes, hit) {
3876
+ return nodes.map((node) => dimNode(node, hit.seriesIndex));
3877
+ }
3878
+ function dimNode(node, activeSeriesIndex) {
3879
+ if (node.type === "group") {
3880
+ const cls = node.attrs?.class ?? "";
3881
+ const seriesMatch = cls.match(/chartts-series-(\d+)/);
3882
+ if (seriesMatch) {
3883
+ const idx = parseInt(seriesMatch[1], 10);
3884
+ if (idx !== activeSeriesIndex) {
3885
+ return {
3886
+ ...node,
3887
+ attrs: { ...node.attrs, opacity: 0.3 },
3888
+ children: node.children
3889
+ };
3890
+ }
3891
+ }
3892
+ return {
3893
+ ...node,
3894
+ children: node.children.map((c) => dimNode(c, activeSeriesIndex))
3895
+ };
3896
+ }
3897
+ return node;
3898
+ }
3899
+ function resolveHighlightColor(cssVarString, theme) {
3900
+ if (!cssVarString) return theme.colors[0] ?? "#3b82f6";
3901
+ const m = cssVarString.match(/,\s*([^)]+)\)/);
3902
+ if (m) return m[1].trim();
3903
+ if (cssVarString.startsWith("#") || cssVarString.startsWith("rgb")) return cssVarString;
3904
+ return theme.colors[0] ?? "#3b82f6";
3905
+ }
3906
+
3769
3907
  // src/interaction/interaction.ts
3770
3908
  var SVG_NS = "http://www.w3.org/2000/svg";
3771
- function createInteractionLayer(chartType, getContext, getData, bus, tooltipConfig, theme, onClick, onHover, interactionState) {
3909
+ function createInteractionLayer(chartType, getContext, getData, bus, tooltipConfig, theme, onClick, onHover, interactionState, canvasHighlight) {
3772
3910
  let targetEl = null;
3773
3911
  let container = null;
3774
3912
  let tooltip = null;
@@ -3794,11 +3932,12 @@ function createInteractionLayer(chartType, getContext, getData, bus, tooltipConf
3794
3932
  }
3795
3933
  function syncOverlay() {
3796
3934
  if (!overlayEl || !targetEl) return;
3797
- const w = targetEl.clientWidth || parseInt(targetEl.style.width) || 400;
3798
- const h = targetEl.clientHeight || parseInt(targetEl.style.height) || 300;
3935
+ const canvas = targetEl;
3936
+ const w = canvas.offsetWidth || canvas.clientWidth || parseInt(canvas.style.width) || 400;
3937
+ const h = canvas.offsetHeight || canvas.clientHeight || parseInt(canvas.style.height) || 300;
3799
3938
  overlayEl.setAttribute("viewBox", `0 0 ${w} ${h}`);
3800
- overlayEl.setAttribute("width", String(w));
3801
- overlayEl.setAttribute("height", String(h));
3939
+ overlayEl.style.width = `${w}px`;
3940
+ overlayEl.style.height = `${h}px`;
3802
3941
  }
3803
3942
  function getCrosshairConfig() {
3804
3943
  try {
@@ -4076,7 +4215,7 @@ function createInteractionLayer(chartType, getContext, getData, bus, tooltipConf
4076
4215
  };
4077
4216
  if (!activePoint || activePoint.seriesIndex !== hit.seriesIndex || activePoint.pointIndex !== hit.pointIndex) {
4078
4217
  clearHighlights();
4079
- highlightPoint(hit.seriesIndex, hit.pointIndex, svgX, svgY);
4218
+ highlightPoint(hit);
4080
4219
  activePoint = { seriesIndex: hit.seriesIndex, pointIndex: hit.pointIndex };
4081
4220
  bus.emit("point:enter", { point, event: e });
4082
4221
  onHover?.(point, e);
@@ -4142,43 +4281,24 @@ function createInteractionLayer(chartType, getContext, getData, bus, tooltipConf
4142
4281
  }));
4143
4282
  linkedUnsubs.push(unsub1, unsub2);
4144
4283
  }
4145
- function highlightPoint(seriesIndex, pointIndex, hitX, hitY) {
4146
- const overlay = getOverlay();
4147
- if (!overlay) return;
4148
- if (isCanvas) {
4149
- if (hitX == null || hitY == null) return;
4150
- syncOverlay();
4151
- const pointChartTypes = /* @__PURE__ */ new Set(["line", "scatter", "bubble", "area", "sparkline", "combo", "step", "baseline", "range"]);
4152
- if (!pointChartTypes.has(chartType.type)) return;
4153
- const data = getData();
4154
- const series = data.series[seriesIndex];
4155
- if (!series) return;
4156
- const glow = document.createElementNS(SVG_NS, "circle");
4157
- glow.setAttribute("cx", String(hitX));
4158
- glow.setAttribute("cy", String(hitY));
4159
- glow.setAttribute("r", "12");
4160
- glow.setAttribute("fill", "none");
4161
- glow.setAttribute("stroke", series.color);
4162
- glow.setAttribute("stroke-width", "2");
4163
- glow.setAttribute("opacity", "0.3");
4164
- glow.setAttribute("class", "chartts-canvas-highlight");
4165
- glow.style.pointerEvents = "none";
4166
- overlay.appendChild(glow);
4167
- const dot = document.createElementNS(SVG_NS, "circle");
4168
- dot.setAttribute("cx", String(hitX));
4169
- dot.setAttribute("cy", String(hitY));
4170
- dot.setAttribute("r", "5");
4171
- dot.setAttribute("fill", series.color);
4172
- dot.setAttribute("stroke", "#fff");
4173
- dot.setAttribute("stroke-width", "2");
4174
- dot.setAttribute("class", "chartts-canvas-highlight");
4175
- dot.style.pointerEvents = "none";
4176
- overlay.appendChild(dot);
4284
+ let highlightRafId = 0;
4285
+ function highlightPoint(hit) {
4286
+ if (isCanvas && canvasHighlight) {
4287
+ if (highlightRafId) return;
4288
+ highlightRafId = requestAnimationFrame(() => {
4289
+ highlightRafId = 0;
4290
+ const ctx = getContext();
4291
+ const baseNodes = canvasHighlight.getLastNodes();
4292
+ const dimmed = applyDimming(baseNodes, hit);
4293
+ const highlight = chartType.getHighlightNodes ? chartType.getHighlightNodes(ctx, hit) : defaultHighlightNodes(hit, ctx);
4294
+ canvasHighlight.renderer.render(canvasHighlight.root, [...dimmed, ...highlight]);
4295
+ });
4177
4296
  return;
4178
4297
  }
4179
4298
  const svg = targetEl;
4299
+ if (!svg) return;
4180
4300
  const target = svg.querySelector(
4181
- `[data-series="${seriesIndex}"][data-index="${pointIndex}"]`
4301
+ `[data-series="${hit.seriesIndex}"][data-index="${hit.pointIndex}"]`
4182
4302
  );
4183
4303
  if (target?.classList.contains("chartts-point")) {
4184
4304
  target.style.transition = "r 0.15s ease, stroke-width 0.15s ease";
@@ -4194,8 +4314,12 @@ function createInteractionLayer(chartType, getContext, getData, bus, tooltipConf
4194
4314
  });
4195
4315
  }
4196
4316
  function clearHighlights() {
4197
- if (isCanvas) {
4198
- overlayEl?.querySelectorAll(".chartts-canvas-highlight").forEach((el2) => el2.remove());
4317
+ if (isCanvas && canvasHighlight) {
4318
+ if (highlightRafId) {
4319
+ cancelAnimationFrame(highlightRafId);
4320
+ highlightRafId = 0;
4321
+ }
4322
+ canvasHighlight.renderer.render(canvasHighlight.root, canvasHighlight.getLastNodes());
4199
4323
  return;
4200
4324
  }
4201
4325
  const svg = targetEl;
@@ -4217,12 +4341,11 @@ function createInteractionLayer(chartType, getContext, getData, bus, tooltipConf
4217
4341
  if (isCanvas) {
4218
4342
  containerEl.style.position = "relative";
4219
4343
  overlayEl = document.createElementNS(SVG_NS, "svg");
4220
- const w = svgEl.clientWidth || parseInt(svgEl.style.width) || 400;
4221
- const h = svgEl.clientHeight || parseInt(svgEl.style.height) || 300;
4344
+ const canvas = svgEl;
4345
+ const w = canvas.offsetWidth || canvas.clientWidth || parseInt(canvas.style.width) || 400;
4346
+ const h = canvas.offsetHeight || canvas.clientHeight || parseInt(canvas.style.height) || 300;
4222
4347
  overlayEl.setAttribute("viewBox", `0 0 ${w} ${h}`);
4223
- overlayEl.setAttribute("width", String(w));
4224
- overlayEl.setAttribute("height", String(h));
4225
- overlayEl.style.cssText = "position:absolute;top:0;left:0;pointer-events:none;overflow:visible;";
4348
+ overlayEl.style.cssText = `position:absolute;top:0;left:0;width:${w}px;height:${h}px;pointer-events:none;overflow:visible;`;
4226
4349
  containerEl.appendChild(overlayEl);
4227
4350
  }
4228
4351
  svgEl.style.cursor = "crosshair";
@@ -4373,6 +4496,7 @@ function createChart(target, chartType, data, options = {}) {
4373
4496
  let lastPrepared = null;
4374
4497
  let chartState = "ready";
4375
4498
  let stateMessage;
4499
+ let lastRenderedNodes = [];
4376
4500
  let resolvedRenderer = currentOptions.renderer;
4377
4501
  if (resolvedRenderer === "auto") {
4378
4502
  const totalPoints = data.series.reduce((sum, s) => sum + s.values.length, 0);
@@ -4380,7 +4504,7 @@ function createChart(target, chartType, data, options = {}) {
4380
4504
  }
4381
4505
  const useCanvas = resolvedRenderer === "canvas" || resolvedRenderer === "webgl";
4382
4506
  const bus = createEventBus();
4383
- const renderer = resolvedRenderer === "webgl" ? createWebGLRenderer(currentTheme) : resolvedRenderer === "canvas" ? createCanvasRenderer(currentTheme) : createSVGRenderer();
4507
+ const renderer = resolvedRenderer === "webgl" ? createWebGLRenderer(currentTheme) : resolvedRenderer === "canvas" ? createCanvasRenderer(() => currentTheme) : createSVGRenderer();
4384
4508
  const root = renderer.createRoot(container, width, height, {
4385
4509
  class: `chartts ${currentOptions.className}`.trim(),
4386
4510
  role: "img",
@@ -4402,7 +4526,8 @@ function createChart(target, chartType, data, options = {}) {
4402
4526
  currentTheme,
4403
4527
  currentOptions.onClick,
4404
4528
  currentOptions.onHover,
4405
- interactionState
4529
+ interactionState,
4530
+ useCanvas ? { renderer, root, getLastNodes: () => lastRenderedNodes } : void 0
4406
4531
  );
4407
4532
  if (useCanvas) {
4408
4533
  interaction.attach(root.element, container);
@@ -4411,13 +4536,15 @@ function createChart(target, chartType, data, options = {}) {
4411
4536
  }
4412
4537
  let zoomPan = null;
4413
4538
  if (currentOptions.zoom || currentOptions.pan) {
4539
+ const needs2DZoom = NO_AXES_TYPES.has(chartType.type);
4414
4540
  zoomPan = createZoomPan(
4415
4541
  {
4416
4542
  x: true,
4417
- y: false,
4543
+ y: needs2DZoom,
4418
4544
  wheel: currentOptions.zoom,
4419
4545
  drag: currentOptions.pan,
4420
- pinch: currentOptions.zoom
4546
+ pinch: currentOptions.zoom,
4547
+ normalizedPan: !needs2DZoom
4421
4548
  },
4422
4549
  () => {
4423
4550
  render();
@@ -4458,12 +4585,18 @@ function createChart(target, chartType, data, options = {}) {
4458
4585
  });
4459
4586
  const stopThemeWatch = currentOptions.theme === "auto" ? watchScheme(() => {
4460
4587
  currentTheme = resolveTheme("auto");
4461
- applyTheme(root.element, currentTheme);
4588
+ if (useCanvas) {
4589
+ container.style.background = currentTheme.background;
4590
+ } else {
4591
+ applyTheme(root.element, currentTheme);
4592
+ }
4462
4593
  render();
4463
4594
  }) : () => {
4464
4595
  };
4465
4596
  render();
4466
- root.element.classList.add("chartts-skip-anim");
4597
+ requestAnimationFrame(() => {
4598
+ root.element.classList.add("chartts-skip-anim");
4599
+ });
4467
4600
  function render() {
4468
4601
  if (useCanvas) {
4469
4602
  const canvas = root.element;
@@ -4485,7 +4618,8 @@ function createChart(target, chartType, data, options = {}) {
4485
4618
  renderer.render(root, renderErrorState(width, height, currentTheme, stateMessage));
4486
4619
  return;
4487
4620
  }
4488
- const isEmpty = !currentData.series.length || currentData.series.every((s) => s.values.length === 0);
4621
+ const hasRichGraphData = chartType.type === "graph" && (options.nodes || options.edges);
4622
+ const isEmpty = !hasRichGraphData && (!currentData.series.length || currentData.series.every((s) => s.values.length === 0));
4489
4623
  if (chartState === "empty" || isEmpty) {
4490
4624
  renderer.render(root, renderEmptyState(width, height, currentTheme, stateMessage));
4491
4625
  return;
@@ -4519,7 +4653,8 @@ function createChart(target, chartType, data, options = {}) {
4519
4653
  area,
4520
4654
  xScale,
4521
4655
  yScale,
4522
- theme: currentTheme
4656
+ theme: currentTheme,
4657
+ zoomPan: zoomPan ? zoomPan.getState() : void 0
4523
4658
  };
4524
4659
  lastCtx = ctx;
4525
4660
  const clipId = "chartts-clip";
@@ -4538,6 +4673,7 @@ function createChart(target, chartType, data, options = {}) {
4538
4673
  const legend = renderLegend(prepared, area, currentOptions, currentTheme);
4539
4674
  if (legend) nodes.push(legend);
4540
4675
  }
4676
+ lastRenderedNodes = nodes;
4541
4677
  renderer.render(root, nodes);
4542
4678
  if (!useCanvas) {
4543
4679
  const NS2 = "http://www.w3.org/2000/svg";
@@ -4889,5 +5025,5 @@ function computeBounds(series, options) {
4889
5025
  }
4890
5026
 
4891
5027
  export { CORPORATE_THEME, CSS_PREFIX, DARK_THEME, EDITORIAL_THEME, LIGHT_THEME, OCEAN_THEME, PALETTE, PathBuilder, SAAS_THEME, STARTUP_THEME, THEME_PRESETS, applyTheme, circle, createBrush, createCanvasRenderer, createCategoricalScale, createChart, createDebugPanel, createEventBus, createLinearScale, createSVGRenderer, createWebGLRenderer, createZoomPan, decimateData, group, line, path, prepareData, rect, renderToString, resolveTheme, text };
4892
- //# sourceMappingURL=chunk-BMTVFAX2.js.map
4893
- //# sourceMappingURL=chunk-BMTVFAX2.js.map
5028
+ //# sourceMappingURL=chunk-AEQXFDL7.js.map
5029
+ //# sourceMappingURL=chunk-AEQXFDL7.js.map