@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
@@ -1087,17 +1087,30 @@ var CHART_CSS = (
1087
1087
  .chartts-geo-region {
1088
1088
  animation: chartts-geo-in 0.4s ease calc(var(--chartts-i, 0) * 3ms) forwards;
1089
1089
  opacity: 0;
1090
- transition: fill-opacity 0.2s ease, filter 0.15s ease;
1090
+ transition: fill-opacity 0.15s ease, filter 0.15s ease, stroke-width 0.15s ease, stroke 0.15s ease;
1091
1091
  cursor: pointer;
1092
1092
  }
1093
1093
  .chartts-geo-region:hover {
1094
- filter: brightness(1.1);
1094
+ filter: brightness(1.15) drop-shadow(0 0 2px rgba(0,0,0,0.3));
1095
1095
  fill-opacity: 0.95 !important;
1096
+ stroke: #fff !important;
1097
+ stroke-width: 1.5px !important;
1098
+ }
1099
+ .chartts-geo-label {
1100
+ pointer-events: none;
1101
+ text-shadow: 0 0 3px rgba(0,0,0,0.5), 0 0 6px rgba(0,0,0,0.3);
1096
1102
  }
1097
1103
  .chartts-geo-scatter {
1098
- transition: r 0.15s ease;
1104
+ transition: r 0.15s ease, opacity 0.15s ease;
1099
1105
  cursor: pointer;
1100
1106
  }
1107
+ .chartts-geo-scatter:hover {
1108
+ opacity: 0.9;
1109
+ filter: drop-shadow(0 0 4px currentColor);
1110
+ }
1111
+ .chartts-geo-legend text {
1112
+ user-select: none;
1113
+ }
1101
1114
 
1102
1115
  /* ---- Lines (flow) ---- */
1103
1116
  @keyframes chartts-lines-flow-in {
@@ -1282,8 +1295,9 @@ var CHART_CSS = (
1282
1295
  .chartts-skip-anim .chartts-renko-brick {
1283
1296
  animation: none !important;
1284
1297
  opacity: 1 !important;
1285
- transform: none !important;
1286
1298
  }
1299
+ .chartts-skip-anim .chartts-line,
1300
+ .chartts-skip-anim .chartts-sparkline-line,
1287
1301
  .chartts-skip-anim .chartts-gauge-fill {
1288
1302
  stroke-dashoffset: 0 !important;
1289
1303
  }
@@ -1314,8 +1328,9 @@ var CHART_CSS = (
1314
1328
  .chartts-renko-brick {
1315
1329
  animation: none !important;
1316
1330
  opacity: 1 !important;
1317
- transform: none !important;
1318
1331
  }
1332
+ .chartts-line,
1333
+ .chartts-sparkline-line,
1319
1334
  .chartts-gauge-fill {
1320
1335
  stroke-dashoffset: 0 !important;
1321
1336
  }
@@ -1469,10 +1484,16 @@ function applyAttrs(el2, attrs) {
1469
1484
  stroke: "stroke",
1470
1485
  strokeWidth: "stroke-width",
1471
1486
  strokeDasharray: "stroke-dasharray",
1487
+ strokeOpacity: "stroke-opacity",
1488
+ strokeLinecap: "stroke-linecap",
1489
+ strokeLinejoin: "stroke-linejoin",
1472
1490
  fill: "fill",
1473
1491
  fillOpacity: "fill-opacity",
1474
1492
  opacity: "opacity",
1475
1493
  transform: "transform",
1494
+ filter: "filter",
1495
+ cursor: "cursor",
1496
+ pointerEvents: "pointer-events",
1476
1497
  role: "role",
1477
1498
  ariaLabel: "aria-label",
1478
1499
  tabindex: "tabindex"
@@ -1490,17 +1511,20 @@ function applyAttrs(el2, attrs) {
1490
1511
  }
1491
1512
  }
1492
1513
  function applyEntryAnimations(svg) {
1493
- svg.querySelectorAll(".chartts-line, .chartts-sparkline-line").forEach((p) => {
1494
- try {
1495
- const existing = p.getAttribute("stroke-dasharray");
1496
- if (existing && existing.includes(",")) return;
1497
- const len = p.getTotalLength();
1498
- p.style.setProperty("--chartts-path-len", String(len));
1499
- p.setAttribute("stroke-dasharray", String(len));
1500
- p.setAttribute("stroke-dashoffset", String(len));
1501
- } catch {
1502
- }
1503
- });
1514
+ const skipAnim = svg.classList.contains("chartts-skip-anim");
1515
+ if (!skipAnim) {
1516
+ svg.querySelectorAll(".chartts-line, .chartts-sparkline-line").forEach((p) => {
1517
+ try {
1518
+ const existing = p.getAttribute("stroke-dasharray");
1519
+ if (existing && existing.includes(",")) return;
1520
+ const len = p.getTotalLength();
1521
+ p.style.setProperty("--chartts-path-len", String(len));
1522
+ p.setAttribute("stroke-dasharray", String(len));
1523
+ p.setAttribute("stroke-dashoffset", String(len));
1524
+ } catch {
1525
+ }
1526
+ });
1527
+ }
1504
1528
  const STAGGER_SELECTORS = [
1505
1529
  ".chartts-point",
1506
1530
  ".chartts-bar",
@@ -1542,27 +1566,54 @@ function applyEntryAnimations(svg) {
1542
1566
  el2.style.setProperty("--chartts-i", String(i));
1543
1567
  });
1544
1568
  }
1545
- svg.querySelectorAll(".chartts-gauge-fill").forEach((p) => {
1546
- try {
1547
- const len = p.getTotalLength();
1548
- p.style.setProperty("--chartts-path-len", String(len));
1549
- p.setAttribute("stroke-dasharray", String(len));
1550
- p.setAttribute("stroke-dashoffset", String(len));
1551
- } catch {
1552
- }
1553
- });
1569
+ if (!skipAnim) {
1570
+ svg.querySelectorAll(".chartts-gauge-fill").forEach((p) => {
1571
+ try {
1572
+ const len = p.getTotalLength();
1573
+ p.style.setProperty("--chartts-path-len", String(len));
1574
+ p.setAttribute("stroke-dasharray", String(len));
1575
+ p.setAttribute("stroke-dashoffset", String(len));
1576
+ } catch {
1577
+ }
1578
+ });
1579
+ }
1554
1580
  svg.querySelectorAll(".chartts-radar-area").forEach((el2, i) => {
1555
1581
  el2.style.setProperty("--chartts-radar-i", String(i));
1556
1582
  });
1557
1583
  }
1558
1584
 
1559
1585
  // src/render/canvas.ts
1586
+ var cssVarMap = {};
1587
+ function buildCssVarMap(theme) {
1588
+ const p = "--chartts";
1589
+ cssVarMap = {
1590
+ [`${p}-bg`]: theme.background,
1591
+ [`${p}-text`]: theme.textColor,
1592
+ [`${p}-text-muted`]: theme.textMuted,
1593
+ [`${p}-axis`]: theme.axisColor,
1594
+ [`${p}-grid`]: theme.gridColor,
1595
+ [`${p}-tooltip-bg`]: theme.tooltipBackground,
1596
+ [`${p}-tooltip-text`]: theme.tooltipText,
1597
+ [`${p}-tooltip-border`]: theme.tooltipBorder
1598
+ };
1599
+ theme.colors.forEach((c, i) => {
1600
+ cssVarMap[`${p}-color-${i + 1}`] = typeof c === "string" ? c : String(c);
1601
+ });
1602
+ }
1560
1603
  function resolveColor(value, fallback = "#000") {
1561
1604
  if (!value) return fallback;
1562
1605
  if (value === "none" || value === "transparent") return "transparent";
1563
1606
  if (value.startsWith("url(")) return value;
1564
- const match = value.match(/var\([^,]+,\s*([^)]+)\)/);
1565
- return match ? match[1].trim() : value;
1607
+ const varMatch = value.match(/var\(\s*([^,)]+)(?:,\s*([^)]+))?\)/);
1608
+ if (varMatch) {
1609
+ const token = varMatch[1].trim();
1610
+ const mapped = cssVarMap[token];
1611
+ if (mapped) {
1612
+ return resolveColor(mapped, varMatch[2]?.trim() ?? fallback);
1613
+ }
1614
+ return varMatch[2]?.trim() ?? fallback;
1615
+ }
1616
+ return value;
1566
1617
  }
1567
1618
  function hexToRgba(hex, alpha) {
1568
1619
  const h = hex.replace("#", "");
@@ -1626,9 +1677,10 @@ function mapTextBaseline(baseline) {
1626
1677
  return "alphabetic";
1627
1678
  }
1628
1679
  }
1629
- function createCanvasRenderer(theme) {
1630
- const colors = theme.colors;
1680
+ function createCanvasRenderer(getTheme) {
1681
+ const resolveTheme2 = typeof getTheme === "function" ? getTheme : () => getTheme;
1631
1682
  let clipPaths = /* @__PURE__ */ new Map();
1683
+ let currentColors = [];
1632
1684
  return {
1633
1685
  createRoot(target, width, height, attrs) {
1634
1686
  const canvas = document.createElement("canvas");
@@ -1641,7 +1693,7 @@ function createCanvasRenderer(theme) {
1641
1693
  if (attrs?.class) canvas.className = attrs.class;
1642
1694
  if (attrs?.role) canvas.setAttribute("role", attrs.role);
1643
1695
  if (attrs?.ariaLabel) canvas.setAttribute("aria-label", attrs.ariaLabel);
1644
- const ctx2d = canvas.getContext("2d", { alpha: false });
1696
+ const ctx2d = canvas.getContext("2d");
1645
1697
  ctx2d.setTransform(dpr, 0, 0, dpr, 0, 0);
1646
1698
  target.appendChild(canvas);
1647
1699
  const root = { element: canvas };
@@ -1655,16 +1707,25 @@ function createCanvasRenderer(theme) {
1655
1707
  const cr = root;
1656
1708
  const canvas = cr.element;
1657
1709
  const dpr = window.devicePixelRatio || 1;
1710
+ const theme = resolveTheme2();
1711
+ const colors = theme.colors;
1712
+ buildCssVarMap(theme);
1658
1713
  cr.width = canvas.width / dpr;
1659
1714
  cr.height = canvas.height / dpr;
1660
1715
  cr.dpr = dpr;
1661
1716
  clipPaths = /* @__PURE__ */ new Map();
1717
+ currentColors = colors;
1662
1718
  const ctx = cr.ctx;
1663
1719
  ctx.imageSmoothingEnabled = true;
1664
1720
  ctx.imageSmoothingQuality = "high";
1665
1721
  ctx.save();
1666
- ctx.fillStyle = resolveColor(theme.background, "#ffffff");
1667
- ctx.fillRect(0, 0, cr.width, cr.height);
1722
+ const bg = resolveColor(theme.background, "#ffffff");
1723
+ if (bg === "transparent") {
1724
+ ctx.clearRect(0, 0, cr.width, cr.height);
1725
+ } else {
1726
+ ctx.fillStyle = bg;
1727
+ ctx.fillRect(0, 0, cr.width, cr.height);
1728
+ }
1668
1729
  ctx.restore();
1669
1730
  collectClipPaths(nodes);
1670
1731
  drawNodes(cr.ctx, nodes, cr.width, cr.height);
@@ -1837,12 +1898,13 @@ function createCanvasRenderer(theme) {
1837
1898
  break;
1838
1899
  }
1839
1900
  case "text": {
1840
- const fill = resolveColor(node.attrs?.fill, theme.textColor);
1901
+ const t = resolveTheme2();
1902
+ const fill = resolveColor(node.attrs?.fill, t.textColor);
1841
1903
  const resolvedFill = resolveColor(fill);
1842
1904
  const opacity = node.attrs?.opacity ?? 1;
1843
1905
  const extra = node.attrs;
1844
- const fontSize = extra?.fontSize ?? theme.fontSize;
1845
- const fontFamily = extra?.fontFamily ?? theme.fontFamily;
1906
+ const fontSize = extra?.fontSize ?? t.fontSize;
1907
+ const fontFamily = extra?.fontFamily ?? t.fontFamily;
1846
1908
  const fontWeight = extra?.fontWeight ?? "normal";
1847
1909
  const textAnchor = extra?.textAnchor;
1848
1910
  const baseline = extra?.dominantBaseline;
@@ -1863,7 +1925,7 @@ function createCanvasRenderer(theme) {
1863
1925
  if (!fill) return "transparent";
1864
1926
  const urlId = parseUrlRef(fill);
1865
1927
  if (urlId) {
1866
- const grad = resolveGradientRef(urlId, colors, ctx, x, y, w, h);
1928
+ const grad = resolveGradientRef(urlId, currentColors, ctx, x, y, w, h);
1867
1929
  return grad ?? resolveColor(fill);
1868
1930
  }
1869
1931
  return resolveColor(fill);
@@ -2821,7 +2883,8 @@ function createZoomPan(config, onUpdate, interactionState) {
2821
2883
  drag: config.drag ?? true,
2822
2884
  pinch: config.pinch ?? true,
2823
2885
  minZoom: config.minZoom ?? 1,
2824
- maxZoom: config.maxZoom ?? 20
2886
+ maxZoom: config.maxZoom ?? 20,
2887
+ normalizedPan: config.normalizedPan ?? true
2825
2888
  };
2826
2889
  const state = {
2827
2890
  zoomX: 1,
@@ -2852,7 +2915,12 @@ function createZoomPan(config, onUpdate, interactionState) {
2852
2915
  state.zoomX = newZoom;
2853
2916
  }
2854
2917
  if (cfg.y) {
2855
- state.zoomY = clamp(state.zoomY * delta, cfg.minZoom, cfg.maxZoom);
2918
+ const mouseY = e.clientY - rect2.top;
2919
+ const relY = (mouseY - area.y) / area.height;
2920
+ const newZoomY = clamp(state.zoomY * delta, cfg.minZoom, cfg.maxZoom);
2921
+ const zoomRatioY = newZoomY / state.zoomY;
2922
+ state.panY = relY - (relY - state.panY) * zoomRatioY;
2923
+ state.zoomY = newZoomY;
2856
2924
  }
2857
2925
  clampPan();
2858
2926
  onUpdate();
@@ -2875,10 +2943,10 @@ function createZoomPan(config, onUpdate, interactionState) {
2875
2943
  const dx = e.clientX - dragStartX;
2876
2944
  const dy = e.clientY - dragStartY;
2877
2945
  if (cfg.x) {
2878
- state.panX = dragStartPanX + dx / (area.width * state.zoomX);
2946
+ state.panX = dragStartPanX + dx / (cfg.normalizedPan ? area.width * state.zoomX : area.width);
2879
2947
  }
2880
2948
  if (cfg.y) {
2881
- state.panY = dragStartPanY + dy / (area.height * state.zoomY);
2949
+ state.panY = dragStartPanY + dy / (cfg.normalizedPan ? area.height * state.zoomY : area.height);
2882
2950
  }
2883
2951
  clampPan();
2884
2952
  onUpdate();
@@ -2890,30 +2958,48 @@ function createZoomPan(config, onUpdate, interactionState) {
2890
2958
  el2.releasePointerCapture(e.pointerId);
2891
2959
  el2.style.cursor = "crosshair";
2892
2960
  }
2961
+ let lastPinchCenterX = 0;
2962
+ let lastPinchCenterY = 0;
2893
2963
  function onTouchStart(e) {
2894
2964
  if (!cfg.pinch || e.touches.length !== 2) return;
2895
2965
  lastPinchDist = pinchDistance(e);
2966
+ lastPinchCenterX = (e.touches[0].clientX + e.touches[1].clientX) / 2;
2967
+ lastPinchCenterY = (e.touches[0].clientY + e.touches[1].clientY) / 2;
2896
2968
  }
2897
2969
  function onTouchMove(e) {
2898
- if (!cfg.pinch || e.touches.length !== 2) return;
2970
+ if (!cfg.pinch || e.touches.length !== 2 || !getArea) return;
2899
2971
  e.preventDefault();
2972
+ const area = getArea();
2973
+ const rect2 = el2.getBoundingClientRect();
2900
2974
  const dist = pinchDistance(e);
2901
- const scale = dist / lastPinchDist;
2975
+ const scaleFactor = dist / lastPinchDist;
2902
2976
  lastPinchDist = dist;
2977
+ const cx = (lastPinchCenterX - rect2.left - area.x) / area.width;
2978
+ const cy = (lastPinchCenterY - rect2.top - area.y) / area.height;
2979
+ lastPinchCenterX = (e.touches[0].clientX + e.touches[1].clientX) / 2;
2980
+ lastPinchCenterY = (e.touches[0].clientY + e.touches[1].clientY) / 2;
2903
2981
  if (cfg.x) {
2904
- state.zoomX = clamp(state.zoomX * scale, cfg.minZoom, cfg.maxZoom);
2982
+ const newZoom = clamp(state.zoomX * scaleFactor, cfg.minZoom, cfg.maxZoom);
2983
+ const ratio = newZoom / state.zoomX;
2984
+ state.panX = cx - (cx - state.panX) * ratio;
2985
+ state.zoomX = newZoom;
2905
2986
  }
2906
2987
  if (cfg.y) {
2907
- state.zoomY = clamp(state.zoomY * scale, cfg.minZoom, cfg.maxZoom);
2988
+ const newZoom = clamp(state.zoomY * scaleFactor, cfg.minZoom, cfg.maxZoom);
2989
+ const ratio = newZoom / state.zoomY;
2990
+ state.panY = cy - (cy - state.panY) * ratio;
2991
+ state.zoomY = newZoom;
2908
2992
  }
2909
2993
  clampPan();
2910
2994
  onUpdate();
2911
2995
  }
2912
2996
  function clampPan() {
2913
- const visibleX = 1 / state.zoomX;
2914
- state.panX = clamp(state.panX, -(1 - visibleX), 0);
2915
- const visibleY = 1 / state.zoomY;
2916
- state.panY = clamp(state.panY, -(1 - visibleY), 0);
2997
+ const halfVisX = (1 - 1 / state.zoomX) / 2;
2998
+ const limitX = cfg.normalizedPan ? halfVisX : state.zoomX - 1;
2999
+ state.panX = clamp(state.panX, -limitX, limitX);
3000
+ const halfVisY = (1 - 1 / state.zoomY) / 2;
3001
+ const limitY = cfg.normalizedPan ? halfVisY : state.zoomY - 1;
3002
+ state.panY = clamp(state.panY, -limitY, limitY);
2917
3003
  }
2918
3004
  function pinchDistance(e) {
2919
3005
  const dx = e.touches[0].clientX - e.touches[1].clientX;
@@ -3768,9 +3854,61 @@ function createTooltip(config, theme) {
3768
3854
  return { show, hide, destroy };
3769
3855
  }
3770
3856
 
3857
+ // src/interaction/highlight.ts
3858
+ function defaultHighlightNodes(hit, ctx) {
3859
+ const color = resolveHighlightColor(ctx.data.series[hit.seriesIndex]?.color, ctx.theme);
3860
+ const r = ctx.theme.pointRadius;
3861
+ return [
3862
+ // Outer glow
3863
+ circle(hit.x, hit.y, r * 3, {
3864
+ class: "chartts-highlight-glow",
3865
+ fill: color,
3866
+ fillOpacity: 0.2
3867
+ }),
3868
+ // Solid dot
3869
+ circle(hit.x, hit.y, r + 1, {
3870
+ class: "chartts-highlight-dot",
3871
+ fill: color,
3872
+ stroke: ctx.theme.background === "transparent" ? "#fff" : ctx.theme.background,
3873
+ strokeWidth: 2
3874
+ })
3875
+ ];
3876
+ }
3877
+ function applyDimming(nodes, hit) {
3878
+ return nodes.map((node) => dimNode(node, hit.seriesIndex));
3879
+ }
3880
+ function dimNode(node, activeSeriesIndex) {
3881
+ if (node.type === "group") {
3882
+ const cls = node.attrs?.class ?? "";
3883
+ const seriesMatch = cls.match(/chartts-series-(\d+)/);
3884
+ if (seriesMatch) {
3885
+ const idx = parseInt(seriesMatch[1], 10);
3886
+ if (idx !== activeSeriesIndex) {
3887
+ return {
3888
+ ...node,
3889
+ attrs: { ...node.attrs, opacity: 0.3 },
3890
+ children: node.children
3891
+ };
3892
+ }
3893
+ }
3894
+ return {
3895
+ ...node,
3896
+ children: node.children.map((c) => dimNode(c, activeSeriesIndex))
3897
+ };
3898
+ }
3899
+ return node;
3900
+ }
3901
+ function resolveHighlightColor(cssVarString, theme) {
3902
+ if (!cssVarString) return theme.colors[0] ?? "#3b82f6";
3903
+ const m = cssVarString.match(/,\s*([^)]+)\)/);
3904
+ if (m) return m[1].trim();
3905
+ if (cssVarString.startsWith("#") || cssVarString.startsWith("rgb")) return cssVarString;
3906
+ return theme.colors[0] ?? "#3b82f6";
3907
+ }
3908
+
3771
3909
  // src/interaction/interaction.ts
3772
3910
  var SVG_NS = "http://www.w3.org/2000/svg";
3773
- function createInteractionLayer(chartType, getContext, getData, bus, tooltipConfig, theme, onClick, onHover, interactionState) {
3911
+ function createInteractionLayer(chartType, getContext, getData, bus, tooltipConfig, theme, onClick, onHover, interactionState, canvasHighlight) {
3774
3912
  let targetEl = null;
3775
3913
  let container = null;
3776
3914
  let tooltip = null;
@@ -3796,11 +3934,12 @@ function createInteractionLayer(chartType, getContext, getData, bus, tooltipConf
3796
3934
  }
3797
3935
  function syncOverlay() {
3798
3936
  if (!overlayEl || !targetEl) return;
3799
- const w = targetEl.clientWidth || parseInt(targetEl.style.width) || 400;
3800
- const h = targetEl.clientHeight || parseInt(targetEl.style.height) || 300;
3937
+ const canvas = targetEl;
3938
+ const w = canvas.offsetWidth || canvas.clientWidth || parseInt(canvas.style.width) || 400;
3939
+ const h = canvas.offsetHeight || canvas.clientHeight || parseInt(canvas.style.height) || 300;
3801
3940
  overlayEl.setAttribute("viewBox", `0 0 ${w} ${h}`);
3802
- overlayEl.setAttribute("width", String(w));
3803
- overlayEl.setAttribute("height", String(h));
3941
+ overlayEl.style.width = `${w}px`;
3942
+ overlayEl.style.height = `${h}px`;
3804
3943
  }
3805
3944
  function getCrosshairConfig() {
3806
3945
  try {
@@ -4078,7 +4217,7 @@ function createInteractionLayer(chartType, getContext, getData, bus, tooltipConf
4078
4217
  };
4079
4218
  if (!activePoint || activePoint.seriesIndex !== hit.seriesIndex || activePoint.pointIndex !== hit.pointIndex) {
4080
4219
  clearHighlights();
4081
- highlightPoint(hit.seriesIndex, hit.pointIndex, svgX, svgY);
4220
+ highlightPoint(hit);
4082
4221
  activePoint = { seriesIndex: hit.seriesIndex, pointIndex: hit.pointIndex };
4083
4222
  bus.emit("point:enter", { point, event: e });
4084
4223
  onHover?.(point, e);
@@ -4144,43 +4283,24 @@ function createInteractionLayer(chartType, getContext, getData, bus, tooltipConf
4144
4283
  }));
4145
4284
  linkedUnsubs.push(unsub1, unsub2);
4146
4285
  }
4147
- function highlightPoint(seriesIndex, pointIndex, hitX, hitY) {
4148
- const overlay = getOverlay();
4149
- if (!overlay) return;
4150
- if (isCanvas) {
4151
- if (hitX == null || hitY == null) return;
4152
- syncOverlay();
4153
- const pointChartTypes = /* @__PURE__ */ new Set(["line", "scatter", "bubble", "area", "sparkline", "combo", "step", "baseline", "range"]);
4154
- if (!pointChartTypes.has(chartType.type)) return;
4155
- const data = getData();
4156
- const series = data.series[seriesIndex];
4157
- if (!series) return;
4158
- const glow = document.createElementNS(SVG_NS, "circle");
4159
- glow.setAttribute("cx", String(hitX));
4160
- glow.setAttribute("cy", String(hitY));
4161
- glow.setAttribute("r", "12");
4162
- glow.setAttribute("fill", "none");
4163
- glow.setAttribute("stroke", series.color);
4164
- glow.setAttribute("stroke-width", "2");
4165
- glow.setAttribute("opacity", "0.3");
4166
- glow.setAttribute("class", "chartts-canvas-highlight");
4167
- glow.style.pointerEvents = "none";
4168
- overlay.appendChild(glow);
4169
- const dot = document.createElementNS(SVG_NS, "circle");
4170
- dot.setAttribute("cx", String(hitX));
4171
- dot.setAttribute("cy", String(hitY));
4172
- dot.setAttribute("r", "5");
4173
- dot.setAttribute("fill", series.color);
4174
- dot.setAttribute("stroke", "#fff");
4175
- dot.setAttribute("stroke-width", "2");
4176
- dot.setAttribute("class", "chartts-canvas-highlight");
4177
- dot.style.pointerEvents = "none";
4178
- overlay.appendChild(dot);
4286
+ let highlightRafId = 0;
4287
+ function highlightPoint(hit) {
4288
+ if (isCanvas && canvasHighlight) {
4289
+ if (highlightRafId) return;
4290
+ highlightRafId = requestAnimationFrame(() => {
4291
+ highlightRafId = 0;
4292
+ const ctx = getContext();
4293
+ const baseNodes = canvasHighlight.getLastNodes();
4294
+ const dimmed = applyDimming(baseNodes, hit);
4295
+ const highlight = chartType.getHighlightNodes ? chartType.getHighlightNodes(ctx, hit) : defaultHighlightNodes(hit, ctx);
4296
+ canvasHighlight.renderer.render(canvasHighlight.root, [...dimmed, ...highlight]);
4297
+ });
4179
4298
  return;
4180
4299
  }
4181
4300
  const svg = targetEl;
4301
+ if (!svg) return;
4182
4302
  const target = svg.querySelector(
4183
- `[data-series="${seriesIndex}"][data-index="${pointIndex}"]`
4303
+ `[data-series="${hit.seriesIndex}"][data-index="${hit.pointIndex}"]`
4184
4304
  );
4185
4305
  if (target?.classList.contains("chartts-point")) {
4186
4306
  target.style.transition = "r 0.15s ease, stroke-width 0.15s ease";
@@ -4196,8 +4316,12 @@ function createInteractionLayer(chartType, getContext, getData, bus, tooltipConf
4196
4316
  });
4197
4317
  }
4198
4318
  function clearHighlights() {
4199
- if (isCanvas) {
4200
- overlayEl?.querySelectorAll(".chartts-canvas-highlight").forEach((el2) => el2.remove());
4319
+ if (isCanvas && canvasHighlight) {
4320
+ if (highlightRafId) {
4321
+ cancelAnimationFrame(highlightRafId);
4322
+ highlightRafId = 0;
4323
+ }
4324
+ canvasHighlight.renderer.render(canvasHighlight.root, canvasHighlight.getLastNodes());
4201
4325
  return;
4202
4326
  }
4203
4327
  const svg = targetEl;
@@ -4219,12 +4343,11 @@ function createInteractionLayer(chartType, getContext, getData, bus, tooltipConf
4219
4343
  if (isCanvas) {
4220
4344
  containerEl.style.position = "relative";
4221
4345
  overlayEl = document.createElementNS(SVG_NS, "svg");
4222
- const w = svgEl.clientWidth || parseInt(svgEl.style.width) || 400;
4223
- const h = svgEl.clientHeight || parseInt(svgEl.style.height) || 300;
4346
+ const canvas = svgEl;
4347
+ const w = canvas.offsetWidth || canvas.clientWidth || parseInt(canvas.style.width) || 400;
4348
+ const h = canvas.offsetHeight || canvas.clientHeight || parseInt(canvas.style.height) || 300;
4224
4349
  overlayEl.setAttribute("viewBox", `0 0 ${w} ${h}`);
4225
- overlayEl.setAttribute("width", String(w));
4226
- overlayEl.setAttribute("height", String(h));
4227
- overlayEl.style.cssText = "position:absolute;top:0;left:0;pointer-events:none;overflow:visible;";
4350
+ overlayEl.style.cssText = `position:absolute;top:0;left:0;width:${w}px;height:${h}px;pointer-events:none;overflow:visible;`;
4228
4351
  containerEl.appendChild(overlayEl);
4229
4352
  }
4230
4353
  svgEl.style.cursor = "crosshair";
@@ -4375,6 +4498,7 @@ function createChart(target, chartType, data, options = {}) {
4375
4498
  let lastPrepared = null;
4376
4499
  let chartState = "ready";
4377
4500
  let stateMessage;
4501
+ let lastRenderedNodes = [];
4378
4502
  let resolvedRenderer = currentOptions.renderer;
4379
4503
  if (resolvedRenderer === "auto") {
4380
4504
  const totalPoints = data.series.reduce((sum, s) => sum + s.values.length, 0);
@@ -4382,7 +4506,7 @@ function createChart(target, chartType, data, options = {}) {
4382
4506
  }
4383
4507
  const useCanvas = resolvedRenderer === "canvas" || resolvedRenderer === "webgl";
4384
4508
  const bus = createEventBus();
4385
- const renderer = resolvedRenderer === "webgl" ? createWebGLRenderer(currentTheme) : resolvedRenderer === "canvas" ? createCanvasRenderer(currentTheme) : createSVGRenderer();
4509
+ const renderer = resolvedRenderer === "webgl" ? createWebGLRenderer(currentTheme) : resolvedRenderer === "canvas" ? createCanvasRenderer(() => currentTheme) : createSVGRenderer();
4386
4510
  const root = renderer.createRoot(container, width, height, {
4387
4511
  class: `chartts ${currentOptions.className}`.trim(),
4388
4512
  role: "img",
@@ -4404,7 +4528,8 @@ function createChart(target, chartType, data, options = {}) {
4404
4528
  currentTheme,
4405
4529
  currentOptions.onClick,
4406
4530
  currentOptions.onHover,
4407
- interactionState
4531
+ interactionState,
4532
+ useCanvas ? { renderer, root, getLastNodes: () => lastRenderedNodes } : void 0
4408
4533
  );
4409
4534
  if (useCanvas) {
4410
4535
  interaction.attach(root.element, container);
@@ -4413,13 +4538,15 @@ function createChart(target, chartType, data, options = {}) {
4413
4538
  }
4414
4539
  let zoomPan = null;
4415
4540
  if (currentOptions.zoom || currentOptions.pan) {
4541
+ const needs2DZoom = NO_AXES_TYPES.has(chartType.type);
4416
4542
  zoomPan = createZoomPan(
4417
4543
  {
4418
4544
  x: true,
4419
- y: false,
4545
+ y: needs2DZoom,
4420
4546
  wheel: currentOptions.zoom,
4421
4547
  drag: currentOptions.pan,
4422
- pinch: currentOptions.zoom
4548
+ pinch: currentOptions.zoom,
4549
+ normalizedPan: !needs2DZoom
4423
4550
  },
4424
4551
  () => {
4425
4552
  render();
@@ -4460,12 +4587,18 @@ function createChart(target, chartType, data, options = {}) {
4460
4587
  });
4461
4588
  const stopThemeWatch = currentOptions.theme === "auto" ? watchScheme(() => {
4462
4589
  currentTheme = resolveTheme("auto");
4463
- applyTheme(root.element, currentTheme);
4590
+ if (useCanvas) {
4591
+ container.style.background = currentTheme.background;
4592
+ } else {
4593
+ applyTheme(root.element, currentTheme);
4594
+ }
4464
4595
  render();
4465
4596
  }) : () => {
4466
4597
  };
4467
4598
  render();
4468
- root.element.classList.add("chartts-skip-anim");
4599
+ requestAnimationFrame(() => {
4600
+ root.element.classList.add("chartts-skip-anim");
4601
+ });
4469
4602
  function render() {
4470
4603
  if (useCanvas) {
4471
4604
  const canvas = root.element;
@@ -4487,7 +4620,8 @@ function createChart(target, chartType, data, options = {}) {
4487
4620
  renderer.render(root, renderErrorState(width, height, currentTheme, stateMessage));
4488
4621
  return;
4489
4622
  }
4490
- const isEmpty = !currentData.series.length || currentData.series.every((s) => s.values.length === 0);
4623
+ const hasRichGraphData = chartType.type === "graph" && (options.nodes || options.edges);
4624
+ const isEmpty = !hasRichGraphData && (!currentData.series.length || currentData.series.every((s) => s.values.length === 0));
4491
4625
  if (chartState === "empty" || isEmpty) {
4492
4626
  renderer.render(root, renderEmptyState(width, height, currentTheme, stateMessage));
4493
4627
  return;
@@ -4521,7 +4655,8 @@ function createChart(target, chartType, data, options = {}) {
4521
4655
  area,
4522
4656
  xScale,
4523
4657
  yScale,
4524
- theme: currentTheme
4658
+ theme: currentTheme,
4659
+ zoomPan: zoomPan ? zoomPan.getState() : void 0
4525
4660
  };
4526
4661
  lastCtx = ctx;
4527
4662
  const clipId = "chartts-clip";
@@ -4540,6 +4675,7 @@ function createChart(target, chartType, data, options = {}) {
4540
4675
  const legend = renderLegend(prepared, area, currentOptions, currentTheme);
4541
4676
  if (legend) nodes.push(legend);
4542
4677
  }
4678
+ lastRenderedNodes = nodes;
4543
4679
  renderer.render(root, nodes);
4544
4680
  if (!useCanvas) {
4545
4681
  const NS2 = "http://www.w3.org/2000/svg";
@@ -4922,5 +5058,5 @@ exports.rect = rect;
4922
5058
  exports.renderToString = renderToString;
4923
5059
  exports.resolveTheme = resolveTheme;
4924
5060
  exports.text = text;
4925
- //# sourceMappingURL=chunk-3TLJCGGQ.cjs.map
4926
- //# sourceMappingURL=chunk-3TLJCGGQ.cjs.map
5061
+ //# sourceMappingURL=chunk-JVVGQLJQ.cjs.map
5062
+ //# sourceMappingURL=chunk-JVVGQLJQ.cjs.map