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,20 @@
1
+ /**
2
+ * Sci Plot - Core Bundle
3
+ *
4
+ * Minimal bundle containing only the essential features for 2D charts.
5
+ * Achieve ~60KB gzipped by excluding optional plugins.
6
+ */
7
+ export { createChart } from './core/Chart';
8
+ export { Series } from './core/Series';
9
+ export { EventEmitter } from './core/EventEmitter';
10
+ export type { Chart, ChartOptions, ExportOptions } from './core/Chart';
11
+ export type { AxisOptions, SeriesOptions, SeriesData, SeriesStyle, ZoomOptions, Point, Bounds, Range, ScaleType, SeriesType, } from './types';
12
+ export { LinearScale, LogScale, createScale } from './scales';
13
+ export type { Scale } from './scales';
14
+ export { NativeWebGLRenderer, parseColor, createRenderer, createNativeRenderer, } from './renderer';
15
+ export type { IWebGLRenderer, SeriesRenderData, RenderOptions } from './renderer';
16
+ export { DARK_THEME, LIGHT_THEME, DEFAULT_THEME, createTheme, getThemeByName, } from './theme';
17
+ export type { ChartTheme, GridTheme, AxisTheme } from './theme';
18
+ export { AnimationEngine, easings, DEFAULT_ANIMATION_CONFIG, getSharedAnimationEngine, } from './core/animation';
19
+ export { createPluginContext, PluginManagerImpl, getPluginRegistry, registerPlugin, definePlugin, createPlugin, createConfigurablePlugin, } from './plugins';
20
+ export type { PluginManifest, PluginContext, ChartPlugin, PluginFactory, PluginManager, } from './plugins';
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Sci Plot - High-Performance Scientific Charting
3
+ *
4
+ * A WebGL-based charting engine designed for scientific data visualization
5
+ * and high-performance rendering of large datasets.
6
+ *
7
+ * Features:
8
+ * - 10⁵–10⁶ points at 60 FPS
9
+ * - Zoom/pan via GPU uniforms (no buffer recreation)
10
+ * - Scientific precision with Float32/Float64 arrays
11
+ * - Data analysis utilities (peak detection, cycle detection, etc.)
12
+ *
13
+ * @packageDocumentation
14
+ */
15
+ export { createChart } from './core/Chart';
16
+ export { Series } from './core/Series';
17
+ export { EventEmitter } from './core/EventEmitter';
18
+ export type { Chart, ChartOptions, ExportOptions } from './core/Chart';
19
+ export { AnimationEngine, easings, DEFAULT_ANIMATION_CONFIG, mergeAnimationConfig, getSharedAnimationEngine, } from './core/animation';
20
+ export type { AnimationOptions, AnimationHandle, BoundsAnimation, ChartAnimationConfig, EasingFunction, EasingName, } from './core/animation';
21
+ export { ChartInitQueue, getChartInitQueue, queueChartInit, waitForAnimations, resetChartQueue, } from './core/ChartInitQueue';
22
+ export { AnnotationManager } from './core/annotations';
23
+ export type { Annotation, AnnotationType, HorizontalLineAnnotation, VerticalLineAnnotation, RectangleAnnotation, BandAnnotation, TextAnnotation, ArrowAnnotation, } from './core/annotations';
24
+ export type { AxisOptions, SeriesOptions, SeriesData, SeriesStyle, SeriesUpdateData, ZoomOptions, CursorOptions, ChartEventMap, Point, Bounds, Range, ScaleType, SeriesType, StepMode, ErrorBarStyle, ErrorBarDirection, ScatterSymbol, DeltaMeasurement, PeakMeasurement, PolarMode, PolarData, PolarStyle, PolarOptions, TernaryData, TernaryStyle, TernaryOptions, } from './types';
25
+ export { LinearScale, LogScale, createScale, type Scale } from './scales';
26
+ export { NativeWebGLRenderer, interleaveData, parseColor, createRenderer, createNativeRenderer, WebGPURenderer, type WebGPURendererOptions, type IWebGLRenderer, type SeriesRenderData, type RenderOptions, } from './renderer';
27
+ export { DARK_THEME, LIGHT_THEME, MIDNIGHT_THEME, ELECTROCHEM_THEME, DEFAULT_THEME, createTheme, getThemeByName, type ChartTheme, type GridTheme, type AxisTheme, type LegendTheme, type CursorTheme, } from './theme';
28
+ export { DEFAULT_LAYOUT, mergeLayoutOptions, type LayoutOptions, type LegendOptions, type CrosshairOptions, type CrosshairValueMode, type CornerPosition, type ChartTitleOptions, type AxisLayoutOptions, type ChartMargins, type PlotAreaPadding, type LegendPositionPreset, type ToolbarPositionPreset, type ToolbarPosition, } from './core/layout';
29
+ export { OverlayRenderer, } from './core/OverlayRenderer';
30
+ export { SERIALIZATION_VERSION, encodeFloat32Array, decodeFloat32Array, compressString, decompressString, stateToUrlHash, urlHashToState, validateChartState, StateHistory, type SerializedAxis, type SerializedSeries, type ChartState, type SerializeOptions, type DeserializeOptions, type StateSnapshot, } from './serialization';
31
+ export type { PlotArea, CursorState, } from './types';
32
+ export { TooltipManager, TOOLTIP_THEMES, getTooltipThemeForChartTheme, } from './plugins/tools/tooltip';
33
+ export type { TooltipData, TooltipType, TooltipTheme, TooltipOptions, TooltipTemplate, DataPointTooltip, CrosshairTooltip, HeatmapTooltip, } from './plugins/tools/tooltip';
34
+ export { lttbDownsample, minMaxDownsample, calculateTargetPoints, } from './workers/downsample';
35
+ export { formatWithPrefix, formatValue, formatScientific, getBestPrefix, detectCycles, generateCycleColors, detectPeaks, validateData, calculateStats, movingAverage, downsampleLTTB, subtractBaseline, integrate, derivative, cumulativeIntegral, calculateR2, solveLinearSystem, fft, ifft, analyzeSpectrum, powerSpectrum, dominantFrequency, analyzeComplexSpectrum, fftFromComplexInput, hanningWindow, hammingWindow, blackmanWindow, nextPowerOf2, complexToArrays, arraysToComplex, ifftFromArrays, ifftComplex, getPositiveFrequencies, lowPassFilter, highPassFilter, bandPassFilter, bandStopFilter, butterworth, exponentialMovingAverage, gaussianSmooth, savitzkyGolay, medianFilter, singleFrequencyFilter, crossCorrelation, autoCorrelation, detectAnomalies, trapezoidalIntegration, simpsonsIntegration, tTest, type CycleInfo, type Peak, type PrefixInfo, type ValidationResult, type DataStats, type FFTResult, type ComplexFFTResult, type PowerSpectrumResult, type FilterOptions, type ButterworthOptions, type SingleFrequencyFilterOptions, } from './plugins/analysis';
36
+ export { createWebSocketStream, connectStreamToChart, createMessageParser, createMockStream, type WebSocketStream, type WebSocketStreamConfig, type DataPoint, type StreamStats, type WebSocketState, } from './streaming';
37
+ export { SciPlot, useSciPlot, type SciPlotProps, type SciPlotRef, type SciPlotSeries, type UseSciPlotOptions, type UseSciPlotReturn, } from './react';
38
+ export { WebGPUBackend, WebGLBackend, GpuRenderer, createGpuRenderer, SeriesAdapter, parseColorToRGBA, PipelineCache, BaseBufferStore, BaseTextureStore, GpuBenchmark, GpuCompute, } from './gpu';
39
+ export type { GpuBackendType, RGBA, GpuViewport, GpuBackend, BufferId, TextureId, FrameUniforms, DrawKind, DrawCall, DrawList, PointSymbol, SeriesData as GpuSeriesData, Bounds as GpuBounds, GpuRenderOptions, GpuRendererOptions, BackendPreference, WebGPUBackendOptions, BenchmarkResult, BenchmarkOptions, DataStats as GpuDataStats, DataBounds as GpuDataBounds, Peak as GpuPeak, GpuComputeOptions, } from './gpu';
40
+ export { setGlobalLocale, getGlobalLocale, getLocale, registerLocale, createLocaleFormatter, LOCALE_EN_US, LOCALE_ES_ES, LOCALE_DE_DE, LOCALE_FR_FR, LOCALE_PT_BR, LOCALE_ZH_CN, LOCALE_JA_JP, type LocaleConfig, type LocaleFormatter, } from './core/locale';
41
+ export { KeyBindingManager, DEFAULT_KEY_BINDINGS, createKeyBinding, parseShortcut, type KeyAction, type KeyBinding, type KeyBindingCallbacks, type KeyBindingManagerOptions, } from './core/keybindings';
42
+ export { ClipboardManager, getClipboardManager, copyToClipboard, formatData, type ClipboardFormat, type ClipboardOptions, type ClipboardDataPoint, type ClipboardResult, } from './core/clipboard';
43
+ export { DebugOverlay, createDebugOverlay, enableDebugMode, type DebugStats, type DebugOverlayOptions, } from './core/debug';
44
+ export { LoadingIndicator, createLoadingIndicator, showLoading, showProgress, type LoadingIndicatorType, type LoadingIndicatorOptions, type LoadingState, } from './core/loading';
45
+ export { generateSineWave, generateSquareWave, generateSawtoothWave, generateTriangleWave, generateRandomData, generateCVData, generateNyquistData, benchmarkRender, assertPerformance, createSnapshot, compareSnapshots, waitForFrames, waitFor, type MockChartOptions, type WaveformOptions, type RandomDataOptions, type BenchmarkResult as TestBenchmarkResult, type BenchmarkOptions as TestBenchmarkOptions, type SnapshotOptions, type ChartSnapshot, } from './testing';
46
+ export { ChartGroup, createChartGroup, linkCharts, createMasterSlave, type SyncAxis, type SyncOptions, type ChartLike, type SyncEvent, } from './core/sync';
47
+ export { ThemeEditor, createThemeEditor, getPresetTheme, getPresetNames, THEME_PRESETS, type EditorTheme, type ThemeEditorOptions, type ThemePreset, type ColorGroup, type ColorProperty, } from './core/theme-editor';
48
+ export { BackpressureManager, CircularBuffer, createBackpressureManager, createRealtimeBackpressure, createLosslessBackpressure, type OverflowStrategy, type BackpressureConfig, type PressureStats, type BufferHealth, } from './streaming/backpressure';
49
+ export { sma, ema, wma, dema, tema, rsi, macd, stochastic, roc, momentum, bollingerBands, atr, standardDeviation, vwap, obv, adx, aroon, percentChange, cumsum, normalize, type IndicatorResult, type OHLCData, } from './plugins/analysis';
50
+ export { createPluginContext, PluginManagerImpl, getPluginRegistry, registerPlugin, definePlugin, defineAndRegister, loadPlugin, listPluginsByCategory, validateManifest, checkPluginCompatibility, createPlugin, createConfigurablePlugin, CrosshairPlugin, StatsPlugin, WatermarkPlugin, GridHighlightPlugin, DataLoggerPlugin, DirectionIndicatorPlugin, Plugin3D, PluginGpu, PluginTools, PluginAnalysis, PluginAnnotations, PluginStreaming, PluginThemeEditor, PluginI18n, PluginKeyboard, PluginClipboard, PluginSync, PluginDebug, PluginLoading, PluginDataExport, PluginContextMenu, PluginAnomalyDetection, PluginMLIntegration, PluginPatternRecognition, PluginRegression, PluginRadar, PluginSnapshot, PluginDataTransform, PluginLaTeX, PluginDragEdit, PluginCaching, PluginLazyLoad, PluginBrokenAxis, PluginVideoRecorder, PluginOffscreen, PluginVirtualization, PluginROI, PluginForecasting, BuiltinPlugins, } from './plugins';
51
+ export type { PluginVersion, PluginCapability, PluginManifest, PluginContext, RenderContext, CoordinateContext, DataContext, UIContext as PluginUIContext, EventContext as PluginEventContext, PluginStorage, PluginLogger, OverlayOptions, NotificationOptions, PickResult, BeforeRenderEvent, AfterRenderEvent, InteractionEvent, ViewChangeEvent, SeriesChangeEvent, DataUpdateEvent, ChartPlugin, PluginFactory, TypedPlugin, PluginManager, PluginRegistry, PluginRegistryEntry, ContextDependencies, CrosshairPluginConfig, StatsPluginConfig, WatermarkPluginConfig, GridHighlightConfig, DataLoggerConfig, DirectionIndicatorConfig, Plugin3DConfig, PluginGpuConfig, PluginToolsConfig, PluginAnalysisConfig, PluginAnnotationsConfig, PluginStreamingConfig, PluginThemeEditorConfig, PluginI18nConfig, PluginKeyboardConfig, PluginClipboardConfig, PluginSyncConfig, PluginDebugConfig, PluginLoadingConfig, PluginDataExportConfig, PluginContextMenuConfig, PluginAnomalyDetectionConfig, PluginMLIntegrationConfig, PluginPatternRecognitionConfig, PluginRegressionConfig, PluginRadarConfig, PluginSnapshotConfig, PluginDataTransformConfig, PluginLaTeXConfig, PluginDragEditConfig, PluginCachingConfig, PluginLazyLoadConfig, PluginBrokenAxisConfig, PluginVideoRecorderConfig, PluginOffscreenConfig, PluginVirtualizationConfig, PluginROIConfig, PluginForecastingConfig, RegressionAPI, RegressionResult, RegressionData, MLIntegrationAPI, MLModelAPI, PredictionResult, VisualizationConfig, DataTransformAPI, TransformOp, TransformType, RadarAPI, RadarSeriesData, RadarPoint, LaTeXPluginAPI, LaTeXDimensions, DragEditAPI, DragEditEvent, CachingAPI, CacheStats, LazyLoadAPI, DataProvider, OffscreenAPI, OffscreenStats, OffscreenMode, OffscreenTransferMode, OffscreenFallbackMode, VirtualizationAPI, VirtualizationStats, VirtualizationMode, VirtualizationStrategy, RoiAPI, RoiRegion, RoiPoint, RoiMaskResult, RoiTool, RoiEvent, RoiSelectedEvent, BrokenAxisAPI, AxisBreak, VideoRecorderAPI, VideoRecorderOptions, SnapshotExportAPI as SnapshotAPI, SnapshotExportOptions, SnapshotResolution, SnapshotFormat, AnomalyDetectionResult, AnomalyPoint, AnomalyMethod, PatternRecognitionAPI, PatternMatch, PatternDetectionResult, ForecastingAPI, ForecastingOptions, ForecastingResult, ForecastingParams } from './plugins';
@@ -0,0 +1,102 @@
1
+ import { Bounds } from '../types';
2
+ import { Scale } from '../scales';
3
+
4
+ export interface OverlayTheme {
5
+ /** Background color (usually transparent) */
6
+ background: string;
7
+ /** Axis line color */
8
+ axisColor: string;
9
+ /** Tick mark color */
10
+ tickColor: string;
11
+ /** Label text color */
12
+ labelColor: string;
13
+ /** Grid line color */
14
+ gridColor: string;
15
+ /** Cursor line color */
16
+ cursorColor: string;
17
+ /** Font family */
18
+ fontFamily: string;
19
+ /** Base font size */
20
+ fontSize: number;
21
+ }
22
+ export declare const DEFAULT_THEME: OverlayTheme;
23
+ export interface AxisConfig {
24
+ /** Axis label (e.g., 'E / V') */
25
+ label?: string;
26
+ /** Tick values to draw */
27
+ ticks?: number[];
28
+ /** Format function for tick labels */
29
+ tickFormat?: (value: number) => string;
30
+ /** Show grid lines */
31
+ showGrid?: boolean;
32
+ }
33
+ export interface CursorState {
34
+ /** Cursor enabled */
35
+ enabled: boolean;
36
+ /** Cursor X position in pixels */
37
+ x: number;
38
+ /** Cursor Y position in pixels */
39
+ y: number;
40
+ /** Show crosshair */
41
+ crosshair: boolean;
42
+ /** Tooltip text */
43
+ tooltip?: string;
44
+ }
45
+ /**
46
+ * Canvas Overlay manages the 2D rendering layer
47
+ */
48
+ export declare class CanvasOverlay {
49
+ private canvas;
50
+ private ctx;
51
+ private dpr;
52
+ private theme;
53
+ private readonly MARGIN;
54
+ constructor(parentElement: HTMLElement, theme?: Partial<OverlayTheme>);
55
+ /**
56
+ * Resize the overlay canvas
57
+ */
58
+ resize(): void;
59
+ /**
60
+ * Get the plot area (excluding margins)
61
+ */
62
+ getPlotArea(): {
63
+ x: number;
64
+ y: number;
65
+ width: number;
66
+ height: number;
67
+ };
68
+ /**
69
+ * Clear the overlay
70
+ */
71
+ clear(): void;
72
+ /**
73
+ * Render axes
74
+ */
75
+ renderAxes(bounds: Bounds, xAxis?: AxisConfig, yAxis?: AxisConfig, xScale?: Scale, yScale?: Scale): void;
76
+ private renderGrid;
77
+ private renderXAxis;
78
+ private renderYAxis;
79
+ private renderXAxisLabel;
80
+ private renderYAxisLabel;
81
+ /**
82
+ * Render cursor/crosshair
83
+ */
84
+ renderCursor(cursor: CursorState): void;
85
+ /**
86
+ * Render tooltip
87
+ */
88
+ renderTooltip(x: number, y: number, text: string): void;
89
+ /**
90
+ * Render FPS counter (debug)
91
+ */
92
+ renderFPS(fps: number, frameTime: number): void;
93
+ private dataToPixelX;
94
+ private dataToPixelY;
95
+ private generateTicks;
96
+ private formatNumber;
97
+ private formatScientific;
98
+ /**
99
+ * Destroy the overlay
100
+ */
101
+ destroy(): void;
102
+ }
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Overlay module exports
3
+ */
4
+ export { CanvasOverlay, DEFAULT_THEME, type OverlayTheme, type AxisConfig, type CursorState, } from './CanvasOverlay';
@@ -0,0 +1,122 @@
1
+ import { OrbitCamera, OrbitCameraOptions } from './camera/OrbitCamera';
2
+ import { OrbitControllerOptions } from './controls/OrbitController';
3
+ import { Axes3DOptions } from './Axes3D';
4
+ import { Tooltip3DOptions } from './Tooltip3D';
5
+ import { Renderer3DOptions, RenderStats3D, Renderer3DEventCallback } from './types';
6
+ import { CustomThemeOptions } from './colorThemes';
7
+
8
+ export interface AreaSeriesData {
9
+ /** X coordinates */
10
+ x: Float32Array;
11
+ /** Y coordinates (top of area) */
12
+ y: Float32Array;
13
+ /** Z coordinates */
14
+ z: Float32Array;
15
+ /** Base Y value (bottom of area, default: 0) */
16
+ baseY?: number;
17
+ /** Color per vertex (optional, RGB) */
18
+ colors?: Float32Array;
19
+ /** Single area color [r, g, b] */
20
+ color?: [number, number, number];
21
+ }
22
+ export interface Area3DRendererOptions extends Renderer3DOptions {
23
+ camera?: OrbitCameraOptions;
24
+ controls?: OrbitControllerOptions;
25
+ axes?: Axes3DOptions;
26
+ showAxes?: boolean;
27
+ /** Opacity of areas (default: 0.8) */
28
+ opacity?: number;
29
+ /** Enable tooltips (default: true) */
30
+ enableTooltip?: boolean;
31
+ tooltip?: Tooltip3DOptions;
32
+ /** Color theme options */
33
+ theme?: CustomThemeOptions;
34
+ }
35
+ export declare class Area3DRenderer {
36
+ private canvas;
37
+ private gl;
38
+ private dpr;
39
+ private programs;
40
+ private camera;
41
+ private controller;
42
+ private axes;
43
+ private vao;
44
+ private positionBuffer;
45
+ private normalBuffer;
46
+ private colorBuffer;
47
+ private indexBuffer;
48
+ private indexCount;
49
+ private backgroundColor;
50
+ private showAxes;
51
+ private opacity;
52
+ private areas;
53
+ private bounds;
54
+ private animationFrameId;
55
+ private needsRender;
56
+ private eventListeners;
57
+ private hoveredSeriesIndex;
58
+ private colorTheme;
59
+ private tooltip;
60
+ private enableTooltip;
61
+ private lastHitIndex;
62
+ private boundHandleMouseMove?;
63
+ private boundHandleMouseLeave?;
64
+ private lastFrameTime;
65
+ private frameCount;
66
+ private fps;
67
+ private lastFpsUpdate;
68
+ constructor(options: Area3DRendererOptions);
69
+ private handleMouseMove;
70
+ private handleMouseLeave;
71
+ pickAtScreen(screenX: number, screenY: number): {
72
+ seriesIndex: number;
73
+ pointIndex: number;
74
+ distance: number;
75
+ point: [number, number, number];
76
+ } | null;
77
+ private initBuffers;
78
+ private handleResize;
79
+ resize(): void;
80
+ /**
81
+ * Set area data (single area or array of areas)
82
+ */
83
+ setData(areas: AreaSeriesData | AreaSeriesData[]): void;
84
+ /**
85
+ * Add a single area
86
+ */
87
+ addArea(area: AreaSeriesData): void;
88
+ /**
89
+ * Clear all areas
90
+ */
91
+ clearAreas(): void;
92
+ private buildAreaGeometry;
93
+ private calculateBounds;
94
+ /**
95
+ * Fit camera to show all data
96
+ */
97
+ fitToData(): void;
98
+ getCanvasSize(): {
99
+ width: number;
100
+ height: number;
101
+ };
102
+ /**
103
+ * Render a single frame
104
+ */
105
+ render(): void;
106
+ startRenderLoop(): void;
107
+ stopRenderLoop(): void;
108
+ getStats(): RenderStats3D;
109
+ getCamera(): OrbitCamera;
110
+ getAxisLabels(): import('./Axes3D').AxisLabel3D[];
111
+ getViewProjectionMatrix(): Float32Array;
112
+ projectToScreen(worldPos: [number, number, number]): {
113
+ x: number;
114
+ y: number;
115
+ visible: boolean;
116
+ };
117
+ exportImage(format?: 'png' | 'jpeg' | 'webp', quality?: number, transparent?: boolean): string;
118
+ on(event: string, callback: Renderer3DEventCallback): void;
119
+ off(event: string, callback: Renderer3DEventCallback): void;
120
+ private emitEvent;
121
+ destroy(): void;
122
+ }
@@ -0,0 +1,104 @@
1
+ import { Bounds3D, Axis3DConfig } from './types';
2
+
3
+ /** Axis label info for text overlay rendering */
4
+ export interface AxisLabel3D {
5
+ text: string;
6
+ worldPosition: [number, number, number];
7
+ axis: 'x' | 'y' | 'z' | 'title';
8
+ color: [number, number, number];
9
+ }
10
+ /** Full axis configuration with defaults applied */
11
+ export interface Axes3DOptions {
12
+ /** X-axis configuration */
13
+ xAxis?: Axis3DConfig & {
14
+ label?: string;
15
+ tickFormat?: (v: number) => string;
16
+ };
17
+ /** Y-axis configuration */
18
+ yAxis?: Axis3DConfig & {
19
+ label?: string;
20
+ tickFormat?: (v: number) => string;
21
+ };
22
+ /** Z-axis configuration */
23
+ zAxis?: Axis3DConfig & {
24
+ label?: string;
25
+ tickFormat?: (v: number) => string;
26
+ };
27
+ /** Show axis lines */
28
+ showAxes?: boolean;
29
+ /** Show wall grids */
30
+ showWallGrids?: boolean;
31
+ /** Show floor grid (XZ plane) */
32
+ showFloorGrid?: boolean;
33
+ /** Grid line color */
34
+ gridColor?: [number, number, number];
35
+ /** Grid line opacity */
36
+ gridOpacity?: number;
37
+ /** Wall grid opacity (slightly more transparent) */
38
+ wallGridOpacity?: number;
39
+ /** Number of ticks per axis */
40
+ tickCount?: number;
41
+ /** Axis line width */
42
+ lineWidth?: number;
43
+ /** Box wireframe color */
44
+ boxColor?: [number, number, number];
45
+ /** Box wireframe opacity */
46
+ boxOpacity?: number;
47
+ }
48
+ export declare class Axes3D {
49
+ private gl;
50
+ private axisVAO;
51
+ private axisPositionBuffer;
52
+ private axisColorBuffer;
53
+ private gridVAO;
54
+ private gridPositionBuffer;
55
+ private gridColorBuffer;
56
+ private boxVAO;
57
+ private boxPositionBuffer;
58
+ private boxColorBuffer;
59
+ private lineProgram;
60
+ private lineUniforms;
61
+ private axisVertexCount;
62
+ private gridVertexCount;
63
+ private boxVertexCount;
64
+ private bounds;
65
+ private labels;
66
+ private options;
67
+ constructor(gl: WebGL2RenderingContext, options?: Axes3DOptions);
68
+ private initLineShader;
69
+ private initBuffers;
70
+ /**
71
+ * Update axes geometry based on data bounds
72
+ */
73
+ updateBounds(bounds: Bounds3D): void;
74
+ private buildBoxGeometry;
75
+ private buildGridGeometry;
76
+ private buildAxisGeometry;
77
+ private buildLabels;
78
+ /**
79
+ * Render axes and grid
80
+ */
81
+ render(viewProjectionMatrix: Float32Array): void;
82
+ private renderLines;
83
+ /**
84
+ * Get labels for 2D text overlay rendering.
85
+ * Returns world positions that need to be projected to screen coordinates.
86
+ */
87
+ getLabels(): AxisLabel3D[];
88
+ /**
89
+ * Project a 3D world position to 2D screen coordinates.
90
+ */
91
+ projectToScreen(worldPos: [number, number, number], viewProjectionMatrix: Float32Array, canvasWidth: number, canvasHeight: number): {
92
+ x: number;
93
+ y: number;
94
+ visible: boolean;
95
+ };
96
+ /**
97
+ * Update options
98
+ */
99
+ setOptions(options: Partial<Axes3DOptions>): void;
100
+ /**
101
+ * Cleanup resources
102
+ */
103
+ destroy(): void;
104
+ }
@@ -0,0 +1,198 @@
1
+ import { OrbitCamera, OrbitCameraOptions } from './camera/OrbitCamera';
2
+ import { OrbitController, OrbitControllerOptions } from './controls/OrbitController';
3
+ import { Axes3DOptions } from './Axes3D';
4
+ import { Ray3D, HitResult } from './Raycaster3D';
5
+ import { Bubble3DData, Bubble3DStyle, Renderer3DOptions, RenderStats3D, Renderer3DEventCallback } from './types';
6
+ import { Tooltip3DOptions, Tooltip3DData } from './Tooltip3D';
7
+ import { CustomThemeOptions } from './colorThemes';
8
+
9
+ export interface Bubble3DRendererOptions extends Renderer3DOptions {
10
+ camera?: OrbitCameraOptions;
11
+ controls?: OrbitControllerOptions;
12
+ style?: Bubble3DStyle;
13
+ autoRender?: boolean;
14
+ /** Axes configuration */
15
+ axes?: Axes3DOptions;
16
+ /** Show axes (default: true) */
17
+ showAxes?: boolean;
18
+ /** Enable tooltips on hover (default: true) */
19
+ enableTooltip?: boolean;
20
+ /** Tooltip configuration */
21
+ tooltip?: Tooltip3DOptions;
22
+ /** Custom tooltip formatter */
23
+ tooltipFormatter?: (data: Tooltip3DData) => string;
24
+ /** Color theme options */
25
+ theme?: CustomThemeOptions;
26
+ }
27
+ export declare class Bubble3DRenderer {
28
+ private canvas;
29
+ private gl;
30
+ private dpr;
31
+ private programs;
32
+ private mesh;
33
+ private camera;
34
+ private controller;
35
+ private axes;
36
+ private backgroundColor;
37
+ private style;
38
+ private showAxes;
39
+ private instanceData;
40
+ private bounds;
41
+ private animationFrameId;
42
+ private autoRender;
43
+ private needsRender;
44
+ private eventListeners;
45
+ private tooltip;
46
+ private enableTooltip;
47
+ private lastHitIndex;
48
+ private boundHandleMouseMove;
49
+ private boundHandleMouseLeave;
50
+ private lastFrameTime;
51
+ private frameCount;
52
+ private fps;
53
+ private lastFpsUpdate;
54
+ private colorTheme;
55
+ constructor(options: Bubble3DRendererOptions);
56
+ private handleMouseMove;
57
+ private handleMouseLeave;
58
+ private createGeometry;
59
+ private handleResize;
60
+ /**
61
+ * Resize canvas to match display size.
62
+ */
63
+ resize(): void;
64
+ /**
65
+ * Set bubble data for rendering.
66
+ */
67
+ setData(data: Bubble3DData): void;
68
+ private calculateBounds;
69
+ /**
70
+ * Fit camera to view all data.
71
+ */
72
+ fitToData(): void;
73
+ /**
74
+ * Render a single frame.
75
+ */
76
+ render(): void;
77
+ /**
78
+ * Start automatic render loop.
79
+ */
80
+ startRenderLoop(): void;
81
+ /**
82
+ * Stop automatic render loop.
83
+ */
84
+ stopRenderLoop(): void;
85
+ /**
86
+ * Request a render on next frame.
87
+ */
88
+ requestRender(): void;
89
+ /**
90
+ * Get render statistics.
91
+ */
92
+ getStats(): RenderStats3D;
93
+ /**
94
+ * Get camera instance for direct manipulation.
95
+ */
96
+ getCamera(): OrbitCamera;
97
+ /**
98
+ * Get controller instance for configuration.
99
+ */
100
+ getController(): OrbitController;
101
+ /**
102
+ * Update style options.
103
+ */
104
+ setStyle(style: Partial<Bubble3DStyle>): void;
105
+ /**
106
+ * Set background color.
107
+ */
108
+ setBackgroundColor(r: number, g: number, b: number, a?: number): void;
109
+ /**
110
+ * Add event listener.
111
+ */
112
+ on(event: string, callback: Renderer3DEventCallback): void;
113
+ /**
114
+ * Remove event listener.
115
+ */
116
+ off(event: string, callback: Renderer3DEventCallback): void;
117
+ private emitEvent;
118
+ /**
119
+ * Get axis labels for 2D text overlay rendering.
120
+ * Returns labels with world positions that need to be projected to screen.
121
+ */
122
+ getAxisLabels(): {
123
+ text: string;
124
+ worldPosition: [number, number, number];
125
+ axis: string;
126
+ color: [number, number, number];
127
+ }[];
128
+ /**
129
+ * Project world coordinates to screen coordinates.
130
+ * Useful for positioning 2D overlay text.
131
+ */
132
+ projectToScreen(worldPos: [number, number, number]): {
133
+ x: number;
134
+ y: number;
135
+ visible: boolean;
136
+ };
137
+ /**
138
+ * Get the current view-projection matrix.
139
+ */
140
+ getViewProjectionMatrix(): Float32Array;
141
+ /**
142
+ * Get canvas dimensions.
143
+ */
144
+ getCanvasSize(): {
145
+ width: number;
146
+ height: number;
147
+ };
148
+ /**
149
+ * Get WebGL context info.
150
+ */
151
+ getContextInfo(): Record<string, any>;
152
+ /**
153
+ * Pick a bubble at screen coordinates.
154
+ * @param screenX X coordinate relative to canvas
155
+ * @param screenY Y coordinate relative to canvas
156
+ * @returns Hit result with bubble index, or null if no hit
157
+ */
158
+ pickAtScreen(screenX: number, screenY: number): HitResult | null;
159
+ /**
160
+ * Create a ray from screen coordinates.
161
+ * Useful for custom picking logic.
162
+ */
163
+ createRay(screenX: number, screenY: number): Ray3D;
164
+ /**
165
+ * Get data for a specific bubble by index.
166
+ */
167
+ getBubbleData(index: number): {
168
+ position: [number, number, number];
169
+ color: [number, number, number];
170
+ scale: number;
171
+ } | null;
172
+ /**
173
+ * Export the current view as an image.
174
+ * @param format Image format ('png' | 'jpeg' | 'webp')
175
+ * @param quality Quality for jpeg/webp (0-1)
176
+ * @param transparent Use transparent background (only for 'png')
177
+ * @returns Data URL of the image
178
+ */
179
+ exportImage(format?: 'png' | 'jpeg' | 'webp', quality?: number, transparent?: boolean): string;
180
+ /**
181
+ * Export the current view as a Blob.
182
+ * @param format Image format ('png' | 'jpeg' | 'webp')
183
+ * @param quality Quality for jpeg/webp (0-1)
184
+ * @returns Promise that resolves to Blob
185
+ */
186
+ exportImageBlob(format?: 'png' | 'jpeg' | 'webp', quality?: number): Promise<Blob | null>;
187
+ /**
188
+ * Download the current view as an image file.
189
+ * @param filename Filename without extension
190
+ * @param format Image format
191
+ * @param quality Quality for jpeg/webp
192
+ */
193
+ downloadImage(filename?: string, format?: 'png' | 'jpeg' | 'webp', quality?: number): void;
194
+ /**
195
+ * Clean up all resources.
196
+ */
197
+ destroy(): void;
198
+ }