velo-plot 1.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (370) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +119 -0
  3. package/dist/EventEmitter-DAbs2K1C.js +60 -0
  4. package/dist/EventEmitter-DAbs2K1C.js.map +1 -0
  5. package/dist/core/Chart.d.ts +15 -0
  6. package/dist/core/ChartControls.d.ts +41 -0
  7. package/dist/core/ChartInitQueue.d.ts +50 -0
  8. package/dist/core/ChartLegend.d.ts +74 -0
  9. package/dist/core/ChartStatistics.d.ts +18 -0
  10. package/dist/core/EventEmitter.d.ts +30 -0
  11. package/dist/core/InteractionManager.d.ts +96 -0
  12. package/dist/core/OverlayRenderer.d.ts +89 -0
  13. package/dist/core/Series.d.ts +4 -0
  14. package/dist/core/animation/AnimationEngine.d.ts +156 -0
  15. package/dist/core/animation/index.d.ts +6 -0
  16. package/dist/core/annotations/AnnotationManager.d.ts +61 -0
  17. package/dist/core/annotations/index.d.ts +5 -0
  18. package/dist/core/annotations/types.d.ts +159 -0
  19. package/dist/core/chart/ChartAnimatedNavigation.d.ts +53 -0
  20. package/dist/core/chart/ChartAxisManager.d.ts +61 -0
  21. package/dist/core/chart/ChartCore.d.ts +336 -0
  22. package/dist/core/chart/ChartExporter.d.ts +18 -0
  23. package/dist/core/chart/ChartNavigation.d.ts +33 -0
  24. package/dist/core/chart/ChartPluginBridge.d.ts +34 -0
  25. package/dist/core/chart/ChartRenderLoop.d.ts +100 -0
  26. package/dist/core/chart/ChartRenderer.d.ts +52 -0
  27. package/dist/core/chart/ChartScaling.d.ts +31 -0
  28. package/dist/core/chart/ChartSeries.d.ts +4 -0
  29. package/dist/core/chart/ChartSetup.d.ts +67 -0
  30. package/dist/core/chart/ChartStateManager.d.ts +54 -0
  31. package/dist/core/chart/ChartUI.d.ts +40 -0
  32. package/dist/core/chart/exporter/SVGExporter.d.ts +6 -0
  33. package/dist/core/chart/exporter/index.d.ts +5 -0
  34. package/dist/core/chart/index.d.ts +14 -0
  35. package/dist/core/chart/series/SeriesActions.d.ts +7 -0
  36. package/dist/core/chart/series/SeriesBuffer.d.ts +4 -0
  37. package/dist/core/chart/series/index.d.ts +6 -0
  38. package/dist/core/chart/series/types.d.ts +22 -0
  39. package/dist/core/chart/types.d.ts +188 -0
  40. package/dist/core/clipboard/index.d.ts +137 -0
  41. package/dist/core/debug/index.d.ts +143 -0
  42. package/dist/core/index.d.ts +17 -0
  43. package/dist/core/keybindings/index.d.ts +157 -0
  44. package/dist/core/layout/index.d.ts +12 -0
  45. package/dist/core/layout/types.d.ts +165 -0
  46. package/dist/core/loading/index.d.ts +104 -0
  47. package/dist/core/locale/index.d.ts +91 -0
  48. package/dist/core/responsive/ResponsiveManager.d.ts +133 -0
  49. package/dist/core/responsive/index.d.ts +4 -0
  50. package/dist/core/selection/SelectionManager.d.ts +165 -0
  51. package/dist/core/selection/index.d.ts +4 -0
  52. package/dist/core/series/Series.d.ts +73 -0
  53. package/dist/core/series/SeriesBounds.d.ts +3 -0
  54. package/dist/core/series/SeriesDataUtils.d.ts +7 -0
  55. package/dist/core/series/index.d.ts +6 -0
  56. package/dist/core/sync/index.d.ts +147 -0
  57. package/dist/core/theme-editor/index.d.ts +122 -0
  58. package/dist/examples/PluginDemonstration.d.ts +20 -0
  59. package/dist/examples.d.ts +25 -0
  60. package/dist/gpu/adapter/gpuRenderer.d.ts +135 -0
  61. package/dist/gpu/adapter/index.d.ts +7 -0
  62. package/dist/gpu/adapter/seriesAdapter.d.ts +88 -0
  63. package/dist/gpu/backends/webgl/WebGLBackend.d.ts +42 -0
  64. package/dist/gpu/backends/webgl/index.d.ts +5 -0
  65. package/dist/gpu/backends/webgl/programFactory.d.ts +30 -0
  66. package/dist/gpu/backends/webgl/shaders.d.ts +14 -0
  67. package/dist/gpu/backends/webgpu/MassiveDataRenderer.d.ts +111 -0
  68. package/dist/gpu/backends/webgpu/WebGPUBackend.d.ts +58 -0
  69. package/dist/gpu/backends/webgpu/pipelines/bandPipeline.d.ts +24 -0
  70. package/dist/gpu/backends/webgpu/pipelines/heatmapPipeline.d.ts +28 -0
  71. package/dist/gpu/backends/webgpu/pipelines/index.d.ts +10 -0
  72. package/dist/gpu/backends/webgpu/pipelines/instancedLinePipeline.d.ts +23 -0
  73. package/dist/gpu/backends/webgpu/pipelines/instancedPointPipeline.d.ts +25 -0
  74. package/dist/gpu/backends/webgpu/pipelines/linePipeline.d.ts +23 -0
  75. package/dist/gpu/backends/webgpu/pipelines/pointPipeline.d.ts +28 -0
  76. package/dist/gpu/backends/webgpu/pipelines/trianglePipeline.d.ts +5 -0
  77. package/dist/gpu/backends/webgpu/pipelines/triangleShader.d.ts +1 -0
  78. package/dist/gpu/backends/webgpu/shaders/heatmap.wgsl.d.ts +8 -0
  79. package/dist/gpu/backends/webgpu/shaders/index.d.ts +8 -0
  80. package/dist/gpu/backends/webgpu/shaders/instanced.wgsl.d.ts +16 -0
  81. package/dist/gpu/backends/webgpu/shaders/line.wgsl.d.ts +8 -0
  82. package/dist/gpu/backends/webgpu/shaders/point.wgsl.d.ts +9 -0
  83. package/dist/gpu/benchmark/benchmark.d.ts +74 -0
  84. package/dist/gpu/benchmark/index.d.ts +5 -0
  85. package/dist/gpu/compute/gpuCompute.d.ts +72 -0
  86. package/dist/gpu/compute/index.d.ts +6 -0
  87. package/dist/gpu/compute/shaders.d.ts +9 -0
  88. package/dist/gpu/drawList.d.ts +77 -0
  89. package/dist/gpu/examples/gallery.d.ts +20 -0
  90. package/dist/gpu/examples/index.d.ts +3 -0
  91. package/dist/gpu/examples/webgpu-line-demo.d.ts +8 -0
  92. package/dist/gpu/examples/webgpu-triangle.d.ts +1 -0
  93. package/dist/gpu/frame.d.ts +25 -0
  94. package/dist/gpu/index.d.ts +24 -0
  95. package/dist/gpu/resources/bufferStore.d.ts +40 -0
  96. package/dist/gpu/resources/index.d.ts +9 -0
  97. package/dist/gpu/resources/pipelineCache.d.ts +33 -0
  98. package/dist/gpu/resources/textureStore.d.ts +41 -0
  99. package/dist/gpu/types.d.ts +47 -0
  100. package/dist/index-BMiZoKmm.js +536 -0
  101. package/dist/index-BMiZoKmm.js.map +1 -0
  102. package/dist/index-Ce2JgkH_.js +282 -0
  103. package/dist/index-Ce2JgkH_.js.map +1 -0
  104. package/dist/index-D8ifudJH.js +2431 -0
  105. package/dist/index-D8ifudJH.js.map +1 -0
  106. package/dist/index-Dag88bW4.js +499 -0
  107. package/dist/index-Dag88bW4.js.map +1 -0
  108. package/dist/index-qhscKTDy.js +309 -0
  109. package/dist/index-qhscKTDy.js.map +1 -0
  110. package/dist/index-x4stH3jD.js +282 -0
  111. package/dist/index-x4stH3jD.js.map +1 -0
  112. package/dist/index.core-CYu3tydL.js +7252 -0
  113. package/dist/index.core-CYu3tydL.js.map +1 -0
  114. package/dist/index.core.d.ts +20 -0
  115. package/dist/index.d.ts +51 -0
  116. package/dist/overlay/CanvasOverlay.d.ts +102 -0
  117. package/dist/overlay/index.d.ts +4 -0
  118. package/dist/plugins/3d/Area3DRenderer.d.ts +122 -0
  119. package/dist/plugins/3d/Axes3D.d.ts +104 -0
  120. package/dist/plugins/3d/Bubble3DRenderer.d.ts +198 -0
  121. package/dist/plugins/3d/Impulse3DRenderer.d.ts +130 -0
  122. package/dist/plugins/3d/Line3DRenderer.d.ts +118 -0
  123. package/dist/plugins/3d/PointCloud3DRenderer.d.ts +84 -0
  124. package/dist/plugins/3d/Raycaster3D.d.ts +137 -0
  125. package/dist/plugins/3d/Ribbon3DRenderer.d.ts +83 -0
  126. package/dist/plugins/3d/SurfaceBar3DRenderer.d.ts +92 -0
  127. package/dist/plugins/3d/SurfaceMesh3DRenderer.d.ts +130 -0
  128. package/dist/plugins/3d/Tooltip3D.d.ts +71 -0
  129. package/dist/plugins/3d/VectorField3DRenderer.d.ts +86 -0
  130. package/dist/plugins/3d/Voxel3DRenderer.d.ts +89 -0
  131. package/dist/plugins/3d/Waterfall3DRenderer.d.ts +94 -0
  132. package/dist/plugins/3d/camera/OrbitCamera.d.ts +99 -0
  133. package/dist/plugins/3d/camera/index.d.ts +1 -0
  134. package/dist/plugins/3d/colorThemes.d.ts +39 -0
  135. package/dist/plugins/3d/controls/OrbitController.d.ts +69 -0
  136. package/dist/plugins/3d/controls/index.d.ts +1 -0
  137. package/dist/plugins/3d/index.d.ts +50 -0
  138. package/dist/plugins/3d/math/Mat4.d.ts +33 -0
  139. package/dist/plugins/3d/math/Vec3.d.ts +37 -0
  140. package/dist/plugins/3d/math/index.d.ts +4 -0
  141. package/dist/plugins/3d/mesh/InstancedMesh.d.ts +42 -0
  142. package/dist/plugins/3d/mesh/geometry.d.ts +34 -0
  143. package/dist/plugins/3d/mesh/index.d.ts +2 -0
  144. package/dist/plugins/3d/series/Area3D.d.ts +17 -0
  145. package/dist/plugins/3d/series/Column3D.d.ts +20 -0
  146. package/dist/plugins/3d/series/Heatmap3D.d.ts +17 -0
  147. package/dist/plugins/3d/series/Impulse3D.d.ts +16 -0
  148. package/dist/plugins/3d/series/PointLine3D.d.ts +20 -0
  149. package/dist/plugins/3d/series/Ribbon3D.d.ts +17 -0
  150. package/dist/plugins/3d/series/Scatter3D.d.ts +21 -0
  151. package/dist/plugins/3d/series/SurfaceMesh3D.d.ts +35 -0
  152. package/dist/plugins/3d/series/Waterfall3D.d.ts +38 -0
  153. package/dist/plugins/3d/series/index.d.ts +13 -0
  154. package/dist/plugins/3d/series/types.d.ts +143 -0
  155. package/dist/plugins/3d/shader/index.d.ts +2 -0
  156. package/dist/plugins/3d/shader/programs.d.ts +24 -0
  157. package/dist/plugins/3d/shader/sources.d.ts +27 -0
  158. package/dist/plugins/3d/types.d.ts +71 -0
  159. package/dist/plugins/3d.d.ts +3 -0
  160. package/dist/plugins/3d.js +5498 -0
  161. package/dist/plugins/3d.js.map +1 -0
  162. package/dist/plugins/PluginContext.d.ts +53 -0
  163. package/dist/plugins/PluginManager.d.ts +129 -0
  164. package/dist/plugins/PluginRegistry.d.ts +38 -0
  165. package/dist/plugins/analysis/SeriesFit.d.ts +3 -0
  166. package/dist/plugins/analysis/contours.d.ts +20 -0
  167. package/dist/plugins/analysis/fft.d.ts +138 -0
  168. package/dist/plugins/analysis/filters.d.ts +76 -0
  169. package/dist/plugins/analysis/fitting.d.ts +24 -0
  170. package/dist/plugins/analysis/index.d.ts +29 -0
  171. package/dist/plugins/analysis/indicators.d.ts +148 -0
  172. package/dist/plugins/analysis/math.d.ts +32 -0
  173. package/dist/plugins/analysis/statistics.d.ts +78 -0
  174. package/dist/plugins/analysis/utils.d.ts +150 -0
  175. package/dist/plugins/analysis.d.ts +3 -0
  176. package/dist/plugins/analysis.js +1202 -0
  177. package/dist/plugins/analysis.js.map +1 -0
  178. package/dist/plugins/annotations/index.d.ts +16 -0
  179. package/dist/plugins/annotations.d.ts +3 -0
  180. package/dist/plugins/annotations.js +438 -0
  181. package/dist/plugins/annotations.js.map +1 -0
  182. package/dist/plugins/anomaly-detection/algorithms.d.ts +38 -0
  183. package/dist/plugins/anomaly-detection/index.d.ts +16 -0
  184. package/dist/plugins/anomaly-detection/types.d.ts +57 -0
  185. package/dist/plugins/broken-axis/BrokenAxisScale.d.ts +24 -0
  186. package/dist/plugins/broken-axis/exports.d.ts +6 -0
  187. package/dist/plugins/broken-axis/index.d.ts +6 -0
  188. package/dist/plugins/broken-axis/types.d.ts +50 -0
  189. package/dist/plugins/builtins/crosshair/CrosshairPlugin.d.ts +40 -0
  190. package/dist/plugins/builtins/crosshair/index.d.ts +1 -0
  191. package/dist/plugins/builtins/data-logger/DataLoggerPlugin.d.ts +11 -0
  192. package/dist/plugins/builtins/data-logger/index.d.ts +1 -0
  193. package/dist/plugins/builtins/direction-indicator/DirectionIndicatorPlugin.d.ts +17 -0
  194. package/dist/plugins/builtins/direction-indicator/index.d.ts +2 -0
  195. package/dist/plugins/builtins/grid-highlight/GridHighlightPlugin.d.ts +17 -0
  196. package/dist/plugins/builtins/grid-highlight/index.d.ts +1 -0
  197. package/dist/plugins/builtins/index.d.ts +25 -0
  198. package/dist/plugins/builtins/stats/StatsPlugin.d.ts +11 -0
  199. package/dist/plugins/builtins/stats/index.d.ts +1 -0
  200. package/dist/plugins/builtins/watermark/WatermarkPlugin.d.ts +15 -0
  201. package/dist/plugins/builtins/watermark/index.d.ts +1 -0
  202. package/dist/plugins/caching/exports.d.ts +6 -0
  203. package/dist/plugins/caching/index.d.ts +6 -0
  204. package/dist/plugins/caching/types.d.ts +120 -0
  205. package/dist/plugins/clipboard/index.d.ts +20 -0
  206. package/dist/plugins/clipboard.d.ts +3 -0
  207. package/dist/plugins/clipboard.js +270 -0
  208. package/dist/plugins/clipboard.js.map +1 -0
  209. package/dist/plugins/context-menu/index.d.ts +12 -0
  210. package/dist/plugins/context-menu/renderer.d.ts +43 -0
  211. package/dist/plugins/context-menu/types.d.ts +202 -0
  212. package/dist/plugins/context-menu.d.ts +3 -0
  213. package/dist/plugins/context-menu.js +621 -0
  214. package/dist/plugins/context-menu.js.map +1 -0
  215. package/dist/plugins/data-export/formatters.d.ts +34 -0
  216. package/dist/plugins/data-export/index.d.ts +15 -0
  217. package/dist/plugins/data-export/types.d.ts +166 -0
  218. package/dist/plugins/data-export.d.ts +3 -0
  219. package/dist/plugins/data-export.js +463 -0
  220. package/dist/plugins/data-export.js.map +1 -0
  221. package/dist/plugins/data-transform/index.d.ts +6 -0
  222. package/dist/plugins/data-transform/types.d.ts +34 -0
  223. package/dist/plugins/debug/index.d.ts +24 -0
  224. package/dist/plugins/debug.d.ts +3 -0
  225. package/dist/plugins/debug.js +330 -0
  226. package/dist/plugins/debug.js.map +1 -0
  227. package/dist/plugins/drag-edit/exports.d.ts +6 -0
  228. package/dist/plugins/drag-edit/index.d.ts +6 -0
  229. package/dist/plugins/drag-edit/types.d.ts +118 -0
  230. package/dist/plugins/forecasting/algorithms.d.ts +6 -0
  231. package/dist/plugins/forecasting/exports.d.ts +3 -0
  232. package/dist/plugins/forecasting/index.d.ts +11 -0
  233. package/dist/plugins/forecasting/types.d.ts +88 -0
  234. package/dist/plugins/gpu/index.d.ts +24 -0
  235. package/dist/plugins/gpu.d.ts +3 -0
  236. package/dist/plugins/gpu.js +2430 -0
  237. package/dist/plugins/gpu.js.map +1 -0
  238. package/dist/plugins/i18n/index.d.ts +22 -0
  239. package/dist/plugins/i18n.d.ts +3 -0
  240. package/dist/plugins/i18n.js +37 -0
  241. package/dist/plugins/i18n.js.map +1 -0
  242. package/dist/plugins/index.d.ts +110 -0
  243. package/dist/plugins/keyboard/index.d.ts +15 -0
  244. package/dist/plugins/keyboard.d.ts +3 -0
  245. package/dist/plugins/keyboard.js +8 -0
  246. package/dist/plugins/keyboard.js.map +1 -0
  247. package/dist/plugins/latex/exports.d.ts +6 -0
  248. package/dist/plugins/latex/index.d.ts +8 -0
  249. package/dist/plugins/latex/parser.d.ts +6 -0
  250. package/dist/plugins/latex/renderer.d.ts +6 -0
  251. package/dist/plugins/latex/symbols.d.ts +28 -0
  252. package/dist/plugins/latex/types.d.ts +88 -0
  253. package/dist/plugins/lazy-load/exports.d.ts +6 -0
  254. package/dist/plugins/lazy-load/index.d.ts +6 -0
  255. package/dist/plugins/lazy-load/types.d.ts +121 -0
  256. package/dist/plugins/loading/index.d.ts +15 -0
  257. package/dist/plugins/loading.d.ts +3 -0
  258. package/dist/plugins/loading.js +7 -0
  259. package/dist/plugins/loading.js.map +1 -0
  260. package/dist/plugins/ml-integration/exports.d.ts +11 -0
  261. package/dist/plugins/ml-integration/index.d.ts +6 -0
  262. package/dist/plugins/ml-integration/native-algorithms.d.ts +69 -0
  263. package/dist/plugins/ml-integration/types.d.ts +74 -0
  264. package/dist/plugins/offscreen/exports.d.ts +6 -0
  265. package/dist/plugins/offscreen/index.d.ts +6 -0
  266. package/dist/plugins/offscreen/pool.d.ts +32 -0
  267. package/dist/plugins/offscreen/types.d.ts +35 -0
  268. package/dist/plugins/pattern-recognition/index.d.ts +6 -0
  269. package/dist/plugins/pattern-recognition/patterns.d.ts +3 -0
  270. package/dist/plugins/pattern-recognition/types.d.ts +245 -0
  271. package/dist/plugins/radar/index.d.ts +6 -0
  272. package/dist/plugins/radar/types.d.ts +40 -0
  273. package/dist/plugins/regression/algorithms.d.ts +6 -0
  274. package/dist/plugins/regression/index.d.ts +6 -0
  275. package/dist/plugins/regression/types.d.ts +261 -0
  276. package/dist/plugins/roi/exports.d.ts +6 -0
  277. package/dist/plugins/roi/index.d.ts +49 -0
  278. package/dist/plugins/roi/types.d.ts +60 -0
  279. package/dist/plugins/snapshot/index.d.ts +11 -0
  280. package/dist/plugins/snapshot/types.d.ts +38 -0
  281. package/dist/plugins/streaming/index.d.ts +32 -0
  282. package/dist/plugins/streaming.d.ts +3 -0
  283. package/dist/plugins/streaming.js +13 -0
  284. package/dist/plugins/streaming.js.map +1 -0
  285. package/dist/plugins/sync/index.d.ts +22 -0
  286. package/dist/plugins/sync.d.ts +3 -0
  287. package/dist/plugins/sync.js +261 -0
  288. package/dist/plugins/sync.js.map +1 -0
  289. package/dist/plugins/theme-editor/index.d.ts +18 -0
  290. package/dist/plugins/theme-editor.d.ts +3 -0
  291. package/dist/plugins/theme-editor.js +7 -0
  292. package/dist/plugins/theme-editor.js.map +1 -0
  293. package/dist/plugins/tools/delta-tool/index.d.ts +159 -0
  294. package/dist/plugins/tools/index.d.ts +21 -0
  295. package/dist/plugins/tools/peak-tool/index.d.ts +159 -0
  296. package/dist/plugins/tools/tooltip/TooltipManager.d.ts +213 -0
  297. package/dist/plugins/tools/tooltip/TooltipPositioner.d.ts +83 -0
  298. package/dist/plugins/tools/tooltip/TooltipRenderer.d.ts +64 -0
  299. package/dist/plugins/tools/tooltip/index.d.ts +18 -0
  300. package/dist/plugins/tools/tooltip/templates/AnnotationTemplate.d.ts +18 -0
  301. package/dist/plugins/tools/tooltip/templates/CrosshairTemplate.d.ts +39 -0
  302. package/dist/plugins/tools/tooltip/templates/DefaultTemplate.d.ts +30 -0
  303. package/dist/plugins/tools/tooltip/templates/HeatmapTemplate.d.ts +34 -0
  304. package/dist/plugins/tools/tooltip/templates/MinimalTemplate.d.ts +26 -0
  305. package/dist/plugins/tools/tooltip/templates/RangeTemplate.d.ts +18 -0
  306. package/dist/plugins/tools/tooltip/templates/ScientificTemplate.d.ts +34 -0
  307. package/dist/plugins/tools/tooltip/templates/index.d.ts +27 -0
  308. package/dist/plugins/tools/tooltip/themes.d.ts +48 -0
  309. package/dist/plugins/tools/tooltip/types.d.ts +396 -0
  310. package/dist/plugins/tools.d.ts +3 -0
  311. package/dist/plugins/tools.js +9 -0
  312. package/dist/plugins/tools.js.map +1 -0
  313. package/dist/plugins/types.d.ts +451 -0
  314. package/dist/plugins/video-recorder/exports.d.ts +6 -0
  315. package/dist/plugins/video-recorder/index.d.ts +6 -0
  316. package/dist/plugins/video-recorder/types.d.ts +55 -0
  317. package/dist/plugins/virtualization/exports.d.ts +6 -0
  318. package/dist/plugins/virtualization/index.d.ts +6 -0
  319. package/dist/plugins/virtualization/types.d.ts +48 -0
  320. package/dist/react/SciPlot.d.ts +60 -0
  321. package/dist/react/index.d.ts +5 -0
  322. package/dist/react/useSciPlot.d.ts +56 -0
  323. package/dist/renderer/BarRenderer.d.ts +14 -0
  324. package/dist/renderer/CandlestickRenderer.d.ts +12 -0
  325. package/dist/renderer/GaugeRenderer.d.ts +3 -0
  326. package/dist/renderer/HeatmapRenderer.d.ts +15 -0
  327. package/dist/renderer/NativeWebGLRenderer.d.ts +16 -0
  328. package/dist/renderer/PolarRenderer.d.ts +64 -0
  329. package/dist/renderer/RendererInterface.d.ts +70 -0
  330. package/dist/renderer/SankeyRenderer.d.ts +3 -0
  331. package/dist/renderer/WebGPURenderer.d.ts +16 -0
  332. package/dist/renderer/index.d.ts +13 -0
  333. package/dist/renderer/native/NativeWebGLRenderer.d.ts +31 -0
  334. package/dist/renderer/native/bufferStore.d.ts +11 -0
  335. package/dist/renderer/native/draw.d.ts +47 -0
  336. package/dist/renderer/native/programFactory.d.ts +3 -0
  337. package/dist/renderer/native/renderFrame.d.ts +3 -0
  338. package/dist/renderer/native/shaderSources.d.ts +6 -0
  339. package/dist/renderer/native/textureStore.d.ts +8 -0
  340. package/dist/renderer/native/types.d.ts +77 -0
  341. package/dist/renderer/native/utils.d.ts +31 -0
  342. package/dist/renderer/radar/RadarRenderer.d.ts +71 -0
  343. package/dist/renderer/radar/index.d.ts +10 -0
  344. package/dist/renderer/shaders.d.ts +77 -0
  345. package/dist/renderer/ternary/TernaryRenderer.d.ts +39 -0
  346. package/dist/renderer/ternary/index.d.ts +6 -0
  347. package/dist/renderer/ternary/types.d.ts +56 -0
  348. package/dist/scales/index.d.ts +54 -0
  349. package/dist/serialization/index.d.ts +153 -0
  350. package/dist/streaming/backpressure.d.ts +179 -0
  351. package/dist/streaming/index.d.ts +7 -0
  352. package/dist/streaming/mock.d.ts +12 -0
  353. package/dist/streaming/types.d.ts +57 -0
  354. package/dist/streaming/utils.d.ts +19 -0
  355. package/dist/streaming/websocket.d.ts +6 -0
  356. package/dist/testing/index.d.ts +225 -0
  357. package/dist/theme/colorSchemes.d.ts +56 -0
  358. package/dist/theme/index.d.ts +138 -0
  359. package/dist/types.d.ts +753 -0
  360. package/dist/utils-Dbro9-qM.js +254 -0
  361. package/dist/utils-Dbro9-qM.js.map +1 -0
  362. package/dist/velo-plot.d.ts +1 -0
  363. package/dist/velo-plot.full.d.ts +1 -0
  364. package/dist/velo-plot.full.js +5804 -0
  365. package/dist/velo-plot.full.js.map +1 -0
  366. package/dist/velo-plot.js +31 -0
  367. package/dist/velo-plot.js.map +1 -0
  368. package/dist/workers/downsample.d.ts +34 -0
  369. package/dist/workers/downsample.worker.d.ts +46 -0
  370. package/package.json +185 -0
@@ -0,0 +1,159 @@
1
+ import { DeltaMeasurement, Bounds } from '../../../types';
2
+ import { AnimationEngine } from '../../../core/animation';
3
+
4
+ export interface DeltaToolOptions {
5
+ /** Line color for measurement (default: '#ff6b6b') */
6
+ lineColor?: string;
7
+ /** Line width in pixels (default: 2) */
8
+ lineWidth?: number;
9
+ /** Show labels at measurement points (default: true) */
10
+ showLabels?: boolean;
11
+ /** Label font size (default: 12) */
12
+ labelFontSize?: number;
13
+ /** Label background color (default: 'rgba(0,0,0,0.8)') */
14
+ labelBackground?: string;
15
+ /** Label text color (default: '#ffffff') */
16
+ labelColor?: string;
17
+ /** Show delta values inline (default: true) */
18
+ showDelta?: boolean;
19
+ /** Number precision for values (default: 4) */
20
+ precision?: number;
21
+ /** Show slope value (default: true) */
22
+ showSlope?: boolean;
23
+ /** Show distance value (default: true) */
24
+ showDistance?: boolean;
25
+ /** Custom CSS class for overlay elements */
26
+ className?: string;
27
+ /** Point highlight size when hovering (default: 10) */
28
+ highlightSize?: number;
29
+ /** Point highlight color (default: '#00f2ff') */
30
+ highlightColor?: string;
31
+ /** Snap radius in pixels for detecting nearby points (default: 20) */
32
+ snapRadius?: number;
33
+ }
34
+ /** Data point with series information */
35
+ export interface DataPoint {
36
+ x: number;
37
+ y: number;
38
+ seriesId: string;
39
+ yAxisId?: string;
40
+ index: number;
41
+ pixelX: number;
42
+ pixelY: number;
43
+ }
44
+ export interface DeltaToolState {
45
+ /** Whether the tool is enabled */
46
+ enabled: boolean;
47
+ /** Selection state: 'idle' | 'waitingSecond' | 'complete' */
48
+ selectionState: 'idle' | 'waitingSecond' | 'complete';
49
+ /** First selected point */
50
+ point1: DataPoint | null;
51
+ /** Second selected point */
52
+ point2: DataPoint | null;
53
+ /** Currently hovered point (for highlighting) */
54
+ hoveredPoint: DataPoint | null;
55
+ /** Last completed measurement */
56
+ lastMeasurement: DeltaMeasurement | null;
57
+ }
58
+ export interface SeriesData {
59
+ id: string;
60
+ x: Float32Array | Float64Array | number[];
61
+ y: Float32Array | Float64Array | number[];
62
+ yAxisId?: string;
63
+ }
64
+ export interface DeltaToolContext {
65
+ container: HTMLElement;
66
+ getPlotArea: () => {
67
+ x: number;
68
+ y: number;
69
+ width: number;
70
+ height: number;
71
+ };
72
+ getViewBounds: () => Bounds;
73
+ getYBounds?: (yAxisId?: string) => {
74
+ yMin: number;
75
+ yMax: number;
76
+ };
77
+ requestRender: () => void;
78
+ getSeries?: () => SeriesData[];
79
+ onMeasure?: (measurement: DeltaMeasurement) => void;
80
+ animationEngine?: AnimationEngine;
81
+ }
82
+ export declare class DeltaTool {
83
+ private ctx;
84
+ private options;
85
+ private state;
86
+ private overlayCanvas;
87
+ private overlayCtx;
88
+ private labelOffset;
89
+ private isDraggingLabel;
90
+ private labelBounds;
91
+ private dragStart;
92
+ private crosshairPosition;
93
+ private boundMouseMove;
94
+ private boundClick;
95
+ private boundKeyDown;
96
+ private boundMouseDown;
97
+ private boundMouseUp;
98
+ private boundResize;
99
+ constructor(context: DeltaToolContext, options?: DeltaToolOptions);
100
+ /**
101
+ * Enable the delta measurement tool
102
+ */
103
+ enable(): void;
104
+ /**
105
+ * Disable the delta measurement tool
106
+ */
107
+ disable(): void;
108
+ /**
109
+ * Toggle the tool on/off
110
+ */
111
+ toggle(): void;
112
+ /**
113
+ * Check if tool is enabled
114
+ */
115
+ isEnabled(): boolean;
116
+ /**
117
+ * Get the current state
118
+ */
119
+ getState(): DeltaToolState;
120
+ /**
121
+ * Get the last completed measurement
122
+ */
123
+ getMeasurement(): DeltaMeasurement | null;
124
+ /**
125
+ * Clear the current measurement
126
+ */
127
+ clear(): void;
128
+ /**
129
+ * Destroy the tool and cleanup
130
+ */
131
+ destroy(): void;
132
+ /**
133
+ * Recalculate measurements (useful if data changes)
134
+ */
135
+ recalculate(): void;
136
+ private createOverlay;
137
+ private resizeOverlay;
138
+ private destroyOverlay;
139
+ private attachListeners;
140
+ private detachListeners;
141
+ private handleMouseMove;
142
+ private handleLabelMouseDown;
143
+ private handleLabelMouseUp;
144
+ private handleClick;
145
+ private handleKeyDown;
146
+ private findNearestPoint;
147
+ private calculateMeasurement;
148
+ renderOverlay(): void;
149
+ private drawPointTooltip;
150
+ private drawPointLabel;
151
+ private drawMeasurementLabel;
152
+ private drawStatusIndicator;
153
+ private roundRect;
154
+ private formatValue;
155
+ }
156
+ /**
157
+ * Create a delta tool for a chart context
158
+ */
159
+ export declare function createDeltaTool(context: DeltaToolContext, options?: DeltaToolOptions): DeltaTool;
@@ -0,0 +1,21 @@
1
+ import { DeltaTool } from './delta-tool';
2
+ import { PeakTool } from './peak-tool';
3
+ import { TooltipManager } from './tooltip';
4
+ import { ChartPlugin } from '../types';
5
+
6
+ export interface PluginToolsConfig {
7
+ /** Enable Delta measurement tool */
8
+ enableDeltaTool?: boolean;
9
+ /** Enable Peak detection tool */
10
+ enablePeakTool?: boolean;
11
+ /** Use advanced tooltip manager */
12
+ useEnhancedTooltips?: boolean;
13
+ }
14
+ /**
15
+ * SciPlot Tools Plugin
16
+ *
17
+ * Adds specialized tools for scientific data analysis and interaction.
18
+ */
19
+ export declare function PluginTools(_config?: PluginToolsConfig): ChartPlugin<PluginToolsConfig>;
20
+ export { DeltaTool, PeakTool, TooltipManager };
21
+ export default PluginTools;
@@ -0,0 +1,159 @@
1
+ import { PeakMeasurement, Bounds } from '../../../types';
2
+ import { AnimationEngine } from '../../../core/animation';
3
+
4
+ export interface PeakToolOptions {
5
+ /** Line color for measurement (default: '#ff6b6b') */
6
+ lineColor?: string;
7
+ /** Line width in pixels (default: 2) */
8
+ lineWidth?: number;
9
+ /** Show labels at measurement points (default: true) */
10
+ showLabels?: boolean;
11
+ /** Label font size (default: 12) */
12
+ labelFontSize?: number;
13
+ /** Label background color (default: 'rgba(0,0,0,0.8)') */
14
+ labelBackground?: string;
15
+ /** Label text color (default: '#ffffff') */
16
+ labelColor?: string;
17
+ /** Show peak values inline (default: true) */
18
+ showPeak?: boolean;
19
+ /** Number precision for values (default: 4) */
20
+ precision?: number;
21
+ /** Custom CSS class for overlay elements */
22
+ className?: string;
23
+ /** Number of points to use for baseline regression (default: 10) */
24
+ baselineWindow?: number;
25
+ /** Area fill color (default: 'rgba(255, 107, 107, 0.3)') */
26
+ areaFill?: string;
27
+ /** Point highlight size when hovering (default: 10) */
28
+ highlightSize?: number;
29
+ /** Point highlight color (default: '#00f2ff') */
30
+ highlightColor?: string;
31
+ /** Snap radius in pixels for detecting nearby points (default: 20) */
32
+ snapRadius?: number;
33
+ }
34
+ /** Data point with series information */
35
+ export interface DataPoint {
36
+ x: number;
37
+ y: number;
38
+ seriesId: string;
39
+ yAxisId?: string;
40
+ index: number;
41
+ pixelX: number;
42
+ pixelY: number;
43
+ }
44
+ export interface PeakToolState {
45
+ /** Whether the tool is enabled */
46
+ enabled: boolean;
47
+ /** Selection state: 'idle' | 'waitingSecond' | 'complete' */
48
+ selectionState: 'idle' | 'waitingSecond' | 'complete';
49
+ /** First selected point */
50
+ point1: DataPoint | null;
51
+ /** Second selected point */
52
+ point2: DataPoint | null;
53
+ /** Currently hovered point (for highlighting) */
54
+ hoveredPoint: DataPoint | null;
55
+ /** Last completed measurement */
56
+ lastMeasurement: PeakMeasurement | null;
57
+ }
58
+ export interface SeriesData {
59
+ id: string;
60
+ x: Float32Array | Float64Array | number[];
61
+ y: Float32Array | Float64Array | number[];
62
+ yAxisId?: string;
63
+ }
64
+ export interface PeakToolContext {
65
+ container: HTMLElement;
66
+ getPlotArea: () => {
67
+ x: number;
68
+ y: number;
69
+ width: number;
70
+ height: number;
71
+ };
72
+ getViewBounds: () => Bounds;
73
+ getYBounds?: (yAxisId?: string) => {
74
+ yMin: number;
75
+ yMax: number;
76
+ };
77
+ requestRender: () => void;
78
+ getSeries?: () => SeriesData[];
79
+ onMeasure?: (measurement: PeakMeasurement) => void;
80
+ animationEngine?: AnimationEngine;
81
+ }
82
+ export declare class PeakTool {
83
+ private ctx;
84
+ private options;
85
+ private state;
86
+ private overlayCanvas;
87
+ private overlayCtx;
88
+ private labelOffset;
89
+ private isDraggingLabel;
90
+ private labelBounds;
91
+ private dragStart;
92
+ private crosshairPosition;
93
+ private boundMouseMove;
94
+ private boundClick;
95
+ private boundKeyDown;
96
+ private boundMouseDown;
97
+ private boundMouseUp;
98
+ private boundResize;
99
+ constructor(context: PeakToolContext, options?: PeakToolOptions);
100
+ /**
101
+ * Enable the peak measurement tool
102
+ */
103
+ enable(): void;
104
+ /**
105
+ * Disable the peak measurement tool
106
+ */
107
+ disable(): void;
108
+ /**
109
+ * Toggle the tool on/off
110
+ */
111
+ toggle(): void;
112
+ /**
113
+ * Check if tool is enabled
114
+ */
115
+ isEnabled(): boolean;
116
+ /**
117
+ * Get the current state
118
+ */
119
+ getState(): PeakToolState;
120
+ /**
121
+ * Get the last completed measurement
122
+ */
123
+ getMeasurement(): PeakMeasurement | null;
124
+ /**
125
+ * Clear the current measurement
126
+ */
127
+ clear(): void;
128
+ /**
129
+ * Destroy the tool and cleanup
130
+ */
131
+ destroy(): void;
132
+ /**
133
+ * Recalculate measurements (useful if data changes)
134
+ */
135
+ recalculate(): void;
136
+ private createOverlay;
137
+ private resizeOverlay;
138
+ private destroyOverlay;
139
+ private attachListeners;
140
+ private detachListeners;
141
+ private handleMouseMove;
142
+ private handleLabelMouseDown;
143
+ private handleLabelMouseUp;
144
+ private handleClick;
145
+ private handleKeyDown;
146
+ private findNearestPoint;
147
+ private calculateMeasurement;
148
+ renderOverlay(): void;
149
+ private drawPointTooltip;
150
+ private drawPointLabel;
151
+ private drawMeasurementLabel;
152
+ private drawStatusIndicator;
153
+ private roundRect;
154
+ private formatValue;
155
+ }
156
+ /**
157
+ * Create a peak tool for a chart context
158
+ */
159
+ export declare function createPeakTool(context: PeakToolContext, options?: PeakToolOptions): PeakTool;
@@ -0,0 +1,213 @@
1
+ import { PlotArea, Bounds } from '../../../types';
2
+ import { Scale } from '../../../scales';
3
+ import { Series } from '../../../core/Series';
4
+ import { TooltipData, TooltipOptions, TooltipTheme, TooltipTemplate, ShowTooltipOptions, TooltipEventMap } from './types';
5
+ import { ChartTheme } from '../../../theme';
6
+
7
+ export interface TooltipManagerConfig {
8
+ /** Canvas 2D context for rendering */
9
+ overlayCtx: CanvasRenderingContext2D;
10
+ /** Chart theme (for auto-selecting tooltip theme) */
11
+ chartTheme: ChartTheme;
12
+ /** Function to get current plot area */
13
+ getPlotArea: () => PlotArea;
14
+ /** Function to get all series */
15
+ getSeries: () => Series[];
16
+ /** Function to convert pixel X to data X */
17
+ pixelToDataX: (px: number) => number;
18
+ /** Function to convert pixel Y to data Y */
19
+ pixelToDataY: (py: number) => number;
20
+ /** Function to get X scale */
21
+ getXScale: () => Scale;
22
+ /** Function to get Y scales */
23
+ getYScales: () => Map<string, Scale>;
24
+ /** Function to get view bounds */
25
+ getViewBounds: () => Bounds;
26
+ /** Initial options */
27
+ options?: TooltipOptions;
28
+ }
29
+ export declare class TooltipManager {
30
+ private ctx;
31
+ private getPlotArea;
32
+ private getSeries;
33
+ private pixelToDataX;
34
+ private pixelToDataY;
35
+ private getXScale;
36
+ private getYScales;
37
+ private options;
38
+ private theme;
39
+ private positioner;
40
+ private renderer;
41
+ private templates;
42
+ private events;
43
+ private activeTooltips;
44
+ private tooltipIdCounter;
45
+ private showTimeoutId;
46
+ private hideTimeoutId;
47
+ private lastCursorX;
48
+ private lastCursorY;
49
+ private hoveredSeriesId;
50
+ private hoveredDataIndex;
51
+ private cachedNearestResult;
52
+ private snapMode;
53
+ private largeDatasetThreshold;
54
+ private lastKnownDataSize;
55
+ private hysteresisRatio;
56
+ private suspended;
57
+ constructor(config: TooltipManagerConfig);
58
+ /**
59
+ * Register built-in templates
60
+ */
61
+ private registerBuiltinTemplates;
62
+ /**
63
+ * Configure tooltip options
64
+ */
65
+ configure(options: TooltipOptions): void;
66
+ /**
67
+ * Get current options
68
+ */
69
+ getOptions(): TooltipOptions;
70
+ /**
71
+ * Enable/disable tooltips
72
+ */
73
+ setEnabled(enabled: boolean): void;
74
+ /**
75
+ * Check if tooltips are enabled
76
+ */
77
+ isEnabled(): boolean;
78
+ /**
79
+ * Suspend tooltip display (used during drag operations)
80
+ * When suspended, tooltips are immediately hidden and cursor movements are ignored
81
+ */
82
+ setSuspended(suspended: boolean): void;
83
+ /**
84
+ * Check if tooltips are suspended
85
+ */
86
+ isSuspended(): boolean;
87
+ /**
88
+ * Set tooltip theme
89
+ */
90
+ setTheme(theme: TooltipTheme | string): void;
91
+ /**
92
+ * Update theme based on chart theme
93
+ */
94
+ updateChartTheme(chartTheme: ChartTheme): void;
95
+ /**
96
+ * Get current theme
97
+ */
98
+ getTheme(): TooltipTheme;
99
+ /**
100
+ * Register a custom template
101
+ */
102
+ registerTemplate<T extends TooltipData>(template: TooltipTemplate<T>): void;
103
+ /**
104
+ * Get a template by ID
105
+ */
106
+ getTemplate(id: string): TooltipTemplate<TooltipData> | undefined;
107
+ /**
108
+ * Handle cursor movement - main entry point for hover detection
109
+ * Optimized with hysteresis to prevent jumping between nearby points
110
+ */
111
+ handleCursorMove(pixelX: number, pixelY: number): void;
112
+ /**
113
+ * Handle cursor leave
114
+ */
115
+ handleCursorLeave(): void;
116
+ /**
117
+ * Get total number of data points across all visible series
118
+ */
119
+ private getTotalDataPoints;
120
+ /**
121
+ * Determine the effective snap mode based on configuration and data size
122
+ */
123
+ private getEffectiveSnapMode;
124
+ /**
125
+ * Perform tooltip update with hysteresis to prevent jumping.
126
+ * The tooltip "sticks" to the current point unless the cursor is
127
+ * significantly closer to a new point.
128
+ */
129
+ private performTooltipUpdateWithHysteresis;
130
+ /**
131
+ * Handle heatmap and crosshair tooltip types (fallback)
132
+ */
133
+ private performFallbackTooltipUpdate;
134
+ /**
135
+ * Find data point by X coordinate only (O(log n) - fastest method)
136
+ * Best for very large datasets where precision is less important than speed
137
+ */
138
+ private findDataPointByXOnly;
139
+ /**
140
+ * Optimized nearest data point finder
141
+ */
142
+ private findNearestDataPointOptimized;
143
+ /**
144
+ * Find heatmap cell under cursor
145
+ */
146
+ private findHeatmapCell;
147
+ /**
148
+ * Binary search for closest value
149
+ */
150
+ private binarySearchClosest;
151
+ /**
152
+ * Build crosshair tooltip data
153
+ */
154
+ private buildCrosshairTooltip;
155
+ /**
156
+ * Schedule showing a tooltip
157
+ */
158
+ private scheduleShow;
159
+ /**
160
+ * Schedule hiding tooltips
161
+ */
162
+ private scheduleHide;
163
+ private clearShowTimeout;
164
+ private clearHideTimeout;
165
+ /**
166
+ * Show a tooltip with the given data
167
+ */
168
+ private showTooltip;
169
+ /**
170
+ * Update tooltip position
171
+ */
172
+ private updateTooltipPosition;
173
+ /**
174
+ * Get template ID for a tooltip type
175
+ */
176
+ private getTemplateIdForType;
177
+ /**
178
+ * Show a tooltip programmatically
179
+ */
180
+ show(data: TooltipData, options?: ShowTooltipOptions): string;
181
+ /**
182
+ * Hide a specific tooltip
183
+ */
184
+ hide(tooltipId: string): void;
185
+ /**
186
+ * Hide all tooltips immediately
187
+ */
188
+ hideAll(): void;
189
+ /**
190
+ * Render all active tooltips
191
+ */
192
+ render(): void;
193
+ /**
194
+ * Check if any tooltip is currently visible
195
+ */
196
+ hasActiveTooltip(): boolean;
197
+ /**
198
+ * Subscribe to tooltip events
199
+ */
200
+ on<K extends keyof TooltipEventMap>(event: K, handler: (data: TooltipEventMap[K]) => void): void;
201
+ /**
202
+ * Unsubscribe from tooltip events
203
+ */
204
+ off<K extends keyof TooltipEventMap>(event: K, handler: (data: TooltipEventMap[K]) => void): void;
205
+ /**
206
+ * Destroy the tooltip manager
207
+ */
208
+ destroy(): void;
209
+ }
210
+ /**
211
+ * Create a tooltip manager
212
+ */
213
+ export declare function createTooltipManager(config: TooltipManagerConfig): TooltipManager;
@@ -0,0 +1,83 @@
1
+ import { PlotArea } from '../../../types';
2
+ import { TooltipPosition, TooltipMeasurement, TooltipPlacement } from './types';
3
+
4
+ export interface PositionerConfig {
5
+ /** Offset from target point */
6
+ offset: {
7
+ x: number;
8
+ y: number;
9
+ };
10
+ /** Preferred placement */
11
+ preferredPosition: TooltipPlacement;
12
+ /** Keep within plot area */
13
+ constrainToPlotArea: boolean;
14
+ /** Keep within container */
15
+ constrainToContainer: boolean;
16
+ /** Flip if not enough space */
17
+ autoFlip: boolean;
18
+ /** Show arrow pointing to target */
19
+ showArrow: boolean;
20
+ /** Arrow size */
21
+ arrowSize: number;
22
+ }
23
+ export declare const DEFAULT_POSITIONER_CONFIG: PositionerConfig;
24
+ /**
25
+ * TooltipPositioner calculates optimal tooltip positions
26
+ */
27
+ export declare class TooltipPositioner {
28
+ private config;
29
+ private containerWidth;
30
+ private containerHeight;
31
+ private plotArea;
32
+ constructor(config?: Partial<PositionerConfig>);
33
+ /**
34
+ * Update container dimensions
35
+ */
36
+ setContainerSize(width: number, height: number): void;
37
+ /**
38
+ * Update plot area bounds
39
+ */
40
+ setPlotArea(plotArea: PlotArea): void;
41
+ /**
42
+ * Update configuration
43
+ */
44
+ configure(config: Partial<PositionerConfig>): void;
45
+ /**
46
+ * Calculate optimal tooltip position
47
+ *
48
+ * @param targetX - Target X coordinate (where tooltip points to)
49
+ * @param targetY - Target Y coordinate
50
+ * @param measurement - Tooltip dimensions
51
+ * @returns Calculated position with arrow configuration
52
+ */
53
+ calculatePosition(targetX: number, targetY: number, measurement: TooltipMeasurement): TooltipPosition;
54
+ /**
55
+ * Determine best position based on available space
56
+ */
57
+ private determinePosition;
58
+ /**
59
+ * Calculate tooltip coordinates for a given position
60
+ */
61
+ private calculateCoordinates;
62
+ /**
63
+ * Get the opposite position for flipping
64
+ */
65
+ private flipPosition;
66
+ /**
67
+ * Check if tooltip fits within bounds
68
+ */
69
+ private fitsInBounds;
70
+ /**
71
+ * Constrain position to stay within bounds
72
+ */
73
+ private constrainToBounds;
74
+ /**
75
+ * Get the bounds to constrain tooltip within
76
+ */
77
+ private getConstraintBounds;
78
+ /**
79
+ * Calculate position for crosshair tooltip (follows cursor vertically)
80
+ */
81
+ calculateCrosshairPosition(cursorX: number, cursorY: number, measurement: TooltipMeasurement): TooltipPosition;
82
+ }
83
+ export declare function createTooltipPositioner(config?: Partial<PositionerConfig>): TooltipPositioner;
@@ -0,0 +1,64 @@
1
+ import { TooltipData, TooltipPosition, TooltipTheme, TooltipTemplate } from './types';
2
+
3
+ /**
4
+ * TooltipRenderer handles all Canvas 2D rendering for tooltips
5
+ */
6
+ export declare class TooltipRenderer {
7
+ private ctx;
8
+ private theme;
9
+ constructor(ctx: CanvasRenderingContext2D, theme: TooltipTheme);
10
+ /**
11
+ * Update the theme
12
+ */
13
+ setTheme(theme: TooltipTheme): void;
14
+ /**
15
+ * Render a tooltip with the given template
16
+ */
17
+ render<T extends TooltipData>(data: T, position: TooltipPosition, template: TooltipTemplate<T>): void;
18
+ /**
19
+ * Draw tooltip background with all effects
20
+ */
21
+ private drawBackground;
22
+ /**
23
+ * Draw arrow pointing to target
24
+ */
25
+ private drawArrow;
26
+ /**
27
+ * Draw a rounded rectangle path
28
+ */
29
+ private roundRect;
30
+ /**
31
+ * Draw a horizontal separator line
32
+ */
33
+ drawSeparator(x: number, y: number, width: number): void;
34
+ /**
35
+ * Draw a series color indicator (small circle or square)
36
+ */
37
+ drawSeriesIndicator(x: number, y: number, color: string): void;
38
+ /**
39
+ * Measure text width
40
+ */
41
+ measureText(text: string, fontSize: number, fontWeight?: number | string): number;
42
+ /**
43
+ * Draw text with theme styling
44
+ */
45
+ drawText(text: string, x: number, y: number, options?: {
46
+ fontSize?: number;
47
+ fontWeight?: number | string;
48
+ color?: string;
49
+ align?: CanvasTextAlign;
50
+ baseline?: CanvasTextBaseline;
51
+ }): void;
52
+ /**
53
+ * Draw a label-value pair
54
+ */
55
+ drawLabelValue(x: number, y: number, label: string, value: string, maxWidth: number): void;
56
+ /**
57
+ * Get theme for external use
58
+ */
59
+ getTheme(): TooltipTheme;
60
+ }
61
+ /**
62
+ * Create a tooltip renderer
63
+ */
64
+ export declare function createTooltipRenderer(ctx: CanvasRenderingContext2D, theme: TooltipTheme): TooltipRenderer;