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 @@
1
+ {"version":3,"file":"clipboard.js","sources":["../../src/core/clipboard/index.ts","../../src/plugins/clipboard/index.ts"],"sourcesContent":["/**\n * Sci Plot - Clipboard Module\n * \n * Provides clipboard operations for copying chart data to various formats.\n * Supports copying selected points, visible data, or all data.\n * \n * @module clipboard\n */\n\n// ============================================\n// Types\n// ============================================\n\nexport type ClipboardFormat = 'tsv' | 'csv' | 'json' | 'markdown';\n\nexport interface ClipboardOptions {\n /** Output format (default: 'tsv' - Excel compatible) */\n format?: ClipboardFormat;\n /** Include column headers (default: true) */\n includeHeaders?: boolean;\n /** Decimal precision (default: 6) */\n precision?: number;\n /** Use scientific notation for very large/small numbers (default: true) */\n scientific?: boolean;\n /** Scientific notation threshold (default: 1e6) */\n scientificThreshold?: number;\n /** Custom column separator (overrides format default) */\n separator?: string;\n /** Custom line separator (default: '\\n') */\n lineSeparator?: string;\n /** Include series name in output (default: true for multi-series) */\n includeSeriesName?: boolean;\n /** Custom header names */\n headers?: {\n x?: string;\n y?: string;\n series?: string;\n };\n}\n\nexport interface ClipboardDataPoint {\n x: number;\n y: number;\n seriesId?: string;\n seriesName?: string;\n index?: number;\n}\n\nexport interface ClipboardResult {\n /** Whether the copy was successful */\n success: boolean;\n /** Number of points copied */\n pointCount: number;\n /** Number of series included */\n seriesCount: number;\n /** The formatted text that was copied */\n text?: string;\n /** Error message if failed */\n error?: string;\n}\n\n// ============================================\n// Format Helpers\n// ============================================\n\nconst FORMAT_CONFIGS: Record<ClipboardFormat, { separator: string; quote: boolean; extension: string }> = {\n tsv: { separator: '\\t', quote: false, extension: 'tsv' },\n csv: { separator: ',', quote: true, extension: 'csv' },\n json: { separator: '', quote: false, extension: 'json' },\n markdown: { separator: ' | ', quote: false, extension: 'md' },\n};\n\n// ============================================\n// Clipboard Manager\n// ============================================\n\nexport class ClipboardManager {\n private defaultOptions: ClipboardOptions = {\n format: 'tsv',\n includeHeaders: true,\n precision: 6,\n scientific: true,\n scientificThreshold: 1e6,\n lineSeparator: '\\n',\n includeSeriesName: false,\n };\n\n constructor(options?: Partial<ClipboardOptions>) {\n if (options) {\n this.defaultOptions = { ...this.defaultOptions, ...options };\n }\n }\n\n /**\n * Copy data points to clipboard\n */\n async copyPoints(\n points: ClipboardDataPoint[],\n options?: Partial<ClipboardOptions>\n ): Promise<ClipboardResult> {\n const opts = { ...this.defaultOptions, ...options };\n \n if (!points || points.length === 0) {\n return {\n success: false,\n pointCount: 0,\n seriesCount: 0,\n error: 'No data points to copy',\n };\n }\n\n try {\n const text = this.formatPoints(points, opts);\n await this.writeToClipboard(text);\n\n const seriesIds = new Set(points.map(p => p.seriesId).filter(Boolean));\n \n return {\n success: true,\n pointCount: points.length,\n seriesCount: seriesIds.size || 1,\n text,\n };\n } catch (error) {\n return {\n success: false,\n pointCount: 0,\n seriesCount: 0,\n error: error instanceof Error ? error.message : 'Failed to copy to clipboard',\n };\n }\n }\n\n /**\n * Copy series data to clipboard\n */\n async copySeries(\n seriesData: { id: string; name?: string; x: Float32Array | Float64Array; y: Float32Array | Float64Array }[],\n options?: Partial<ClipboardOptions>\n ): Promise<ClipboardResult> {\n const points: ClipboardDataPoint[] = [];\n \n for (const series of seriesData) {\n for (let i = 0; i < series.x.length; i++) {\n points.push({\n x: series.x[i],\n y: series.y[i],\n seriesId: series.id,\n seriesName: series.name || series.id,\n index: i,\n });\n }\n }\n\n // Enable series name if multiple series\n const opts = { ...options };\n if (seriesData.length > 1 && opts.includeSeriesName === undefined) {\n opts.includeSeriesName = true;\n }\n\n return this.copyPoints(points, opts);\n }\n\n /**\n * Format data points to string\n */\n formatPoints(points: ClipboardDataPoint[], options: ClipboardOptions): string {\n const format = options.format || 'tsv';\n \n if (format === 'json') {\n return this.formatAsJson(points, options);\n }\n \n if (format === 'markdown') {\n return this.formatAsMarkdown(points, options);\n }\n\n return this.formatAsDelimited(points, options);\n }\n\n /**\n * Format as delimited text (TSV/CSV)\n */\n private formatAsDelimited(points: ClipboardDataPoint[], options: ClipboardOptions): string {\n const format = options.format || 'tsv';\n const config = FORMAT_CONFIGS[format];\n const separator = options.separator || config.separator;\n const lineSeparator = options.lineSeparator || '\\n';\n const lines: string[] = [];\n\n // Headers\n if (options.includeHeaders) {\n const headerParts: string[] = [];\n if (options.includeSeriesName) {\n headerParts.push(options.headers?.series || 'Series');\n }\n headerParts.push(options.headers?.x || 'X');\n headerParts.push(options.headers?.y || 'Y');\n lines.push(headerParts.join(separator));\n }\n\n // Data rows\n for (const point of points) {\n const rowParts: string[] = [];\n \n if (options.includeSeriesName) {\n const seriesName = point.seriesName || point.seriesId || '';\n rowParts.push(config.quote ? `\"${seriesName}\"` : seriesName);\n }\n \n rowParts.push(this.formatNumber(point.x, options));\n rowParts.push(this.formatNumber(point.y, options));\n \n lines.push(rowParts.join(separator));\n }\n\n return lines.join(lineSeparator);\n }\n\n /**\n * Format as JSON\n */\n private formatAsJson(points: ClipboardDataPoint[], options: ClipboardOptions): string {\n const data = points.map(p => {\n const obj: Record<string, unknown> = {\n x: this.roundNumber(p.x, options.precision || 6),\n y: this.roundNumber(p.y, options.precision || 6),\n };\n if (options.includeSeriesName && p.seriesId) {\n obj.series = p.seriesName || p.seriesId;\n }\n return obj;\n });\n\n return JSON.stringify(data, null, 2);\n }\n\n /**\n * Format as Markdown table\n */\n private formatAsMarkdown(points: ClipboardDataPoint[], options: ClipboardOptions): string {\n const lines: string[] = [];\n const separator = ' | ';\n\n // Header\n const headerParts: string[] = [];\n if (options.includeSeriesName) {\n headerParts.push(options.headers?.series || 'Series');\n }\n headerParts.push(options.headers?.x || 'X');\n headerParts.push(options.headers?.y || 'Y');\n \n lines.push('| ' + headerParts.join(separator) + ' |');\n \n // Separator row\n const sepRow = headerParts.map(() => '---');\n lines.push('| ' + sepRow.join(separator) + ' |');\n\n // Data rows\n for (const point of points) {\n const rowParts: string[] = [];\n \n if (options.includeSeriesName) {\n rowParts.push(point.seriesName || point.seriesId || '');\n }\n \n rowParts.push(this.formatNumber(point.x, options));\n rowParts.push(this.formatNumber(point.y, options));\n \n lines.push('| ' + rowParts.join(separator) + ' |');\n }\n\n return lines.join('\\n');\n }\n\n /**\n * Format a number for output\n */\n private formatNumber(value: number, options: ClipboardOptions): string {\n const precision = options.precision ?? 6;\n const threshold = options.scientificThreshold ?? 1e6;\n\n if (!isFinite(value)) {\n return value.toString();\n }\n\n // Use scientific notation for very large or very small numbers\n if (options.scientific && (Math.abs(value) >= threshold || (Math.abs(value) < 1e-4 && value !== 0))) {\n return value.toExponential(precision);\n }\n\n return this.roundNumber(value, precision).toString();\n }\n\n /**\n * Round a number to specified precision\n */\n private roundNumber(value: number, precision: number): number {\n const factor = Math.pow(10, precision);\n return Math.round(value * factor) / factor;\n }\n\n /**\n * Write text to system clipboard\n */\n private async writeToClipboard(text: string): Promise<void> {\n if (navigator.clipboard && navigator.clipboard.writeText) {\n await navigator.clipboard.writeText(text);\n } else {\n // Fallback for older browsers\n this.fallbackCopyToClipboard(text);\n }\n }\n\n /**\n * Fallback clipboard copy using hidden textarea\n */\n private fallbackCopyToClipboard(text: string): void {\n const textarea = document.createElement('textarea');\n textarea.value = text;\n textarea.style.position = 'fixed';\n textarea.style.left = '-9999px';\n textarea.style.top = '-9999px';\n document.body.appendChild(textarea);\n textarea.focus();\n textarea.select();\n \n try {\n document.execCommand('copy');\n } finally {\n document.body.removeChild(textarea);\n }\n }\n\n /**\n * Read from clipboard (for paste functionality)\n */\n async readFromClipboard(): Promise<string | null> {\n if (navigator.clipboard && navigator.clipboard.readText) {\n try {\n return await navigator.clipboard.readText();\n } catch {\n return null;\n }\n }\n return null;\n }\n\n /**\n * Parse clipboard text to data points\n */\n parseClipboardData(text: string, format?: ClipboardFormat): ClipboardDataPoint[] {\n const points: ClipboardDataPoint[] = [];\n \n // Try to detect format\n const detectedFormat = format || this.detectFormat(text);\n \n if (detectedFormat === 'json') {\n return this.parseJson(text);\n }\n\n // Parse as delimited\n const lines = text.trim().split(/\\r?\\n/);\n const separator = detectedFormat === 'csv' ? ',' : detectedFormat === 'tsv' ? '\\t' : ',';\n \n // Skip header if present\n const hasHeader = lines.length > 0 && /^[a-zA-Z]/.test(lines[0].trim());\n const startIndex = hasHeader ? 1 : 0;\n\n for (let i = startIndex; i < lines.length; i++) {\n const parts = lines[i].split(separator).map(p => p.trim().replace(/^\"|\"$/g, ''));\n \n if (parts.length >= 2) {\n const x = parseFloat(parts[0]);\n const y = parseFloat(parts[1]);\n \n if (!isNaN(x) && !isNaN(y)) {\n points.push({ x, y, index: i - startIndex });\n }\n }\n }\n\n return points;\n }\n\n /**\n * Detect format from text content\n */\n private detectFormat(text: string): ClipboardFormat {\n const trimmed = text.trim();\n \n if (trimmed.startsWith('[') || trimmed.startsWith('{')) {\n return 'json';\n }\n \n if (trimmed.includes('\\t')) {\n return 'tsv';\n }\n \n if (trimmed.includes(' | ')) {\n return 'markdown';\n }\n \n return 'csv';\n }\n\n /**\n * Parse JSON data\n */\n private parseJson(text: string): ClipboardDataPoint[] {\n try {\n const data = JSON.parse(text);\n const points: ClipboardDataPoint[] = [];\n const items = Array.isArray(data) ? data : [data];\n \n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n if (typeof item.x === 'number' && typeof item.y === 'number') {\n points.push({\n x: item.x,\n y: item.y,\n seriesId: item.series || item.seriesId,\n seriesName: item.seriesName || item.series,\n index: i,\n });\n }\n }\n \n return points;\n } catch {\n return [];\n }\n }\n\n /**\n * Set default options\n */\n setDefaults(options: Partial<ClipboardOptions>): void {\n this.defaultOptions = { ...this.defaultOptions, ...options };\n }\n\n /**\n * Get current default options\n */\n getDefaults(): ClipboardOptions {\n return { ...this.defaultOptions };\n }\n}\n\n// ============================================\n// Convenience Functions\n// ============================================\n\n/** Singleton instance for global use */\nlet globalClipboardManager: ClipboardManager | null = null;\n\n/**\n * Get the global clipboard manager instance\n */\nexport function getClipboardManager(): ClipboardManager {\n if (!globalClipboardManager) {\n globalClipboardManager = new ClipboardManager();\n }\n return globalClipboardManager;\n}\n\n/**\n * Copy data points to clipboard (convenience function)\n */\nexport async function copyToClipboard(\n points: ClipboardDataPoint[],\n options?: Partial<ClipboardOptions>\n): Promise<ClipboardResult> {\n return getClipboardManager().copyPoints(points, options);\n}\n\n/**\n * Format data as delimited string (without copying)\n */\nexport function formatData(\n points: ClipboardDataPoint[],\n options?: Partial<ClipboardOptions>\n): string {\n const manager = getClipboardManager();\n return manager.formatPoints(points, { ...manager.getDefaults(), ...options });\n}\n","/**\n * SciPlot Engine - Clipboard Plugin\n * \n * Provides clipboard integration for copying chart data and images.\n * \n * @module plugins/clipboard\n */\n\nexport * from \"../../core/clipboard\";\n\nimport type { PluginManifest, ChartPlugin, PluginContext } from \"../types\";\n\nexport interface PluginClipboardConfig {\n /** Default format for copied data: 'csv' | 'json' | 'image' */\n defaultFormat?: string;\n}\n\nconst manifestClipboard: PluginManifest = {\n name: \"velo-plot-clipboard\",\n version: \"1.0.0\",\n description: \"Clipboard integration for velo-plot\",\n provides: [\"interaction\"],\n tags: [\"clipboard\", \"copy\", \"paste\", \"export\"],\n};\n\n/**\n * SciPlot Clipboard Plugin\n * \n * Adds support for copying data and screenshots to the clipboard.\n */\nexport function PluginClipboard(_config: PluginClipboardConfig = {}): ChartPlugin<PluginClipboardConfig> {\n return {\n manifest: manifestClipboard,\n\n onInit(_ctx: PluginContext) {\n },\n\n onDestroy(_ctx: PluginContext) {\n },\n\n api: {\n copyCurrentView() {\n // Implementation would call copyToClipboard with data from current view\n }\n }\n };\n}\n\nexport default PluginClipboard;\n"],"names":["FORMAT_CONFIGS","ClipboardManager","options","__publicField","points","opts","text","seriesIds","p","error","seriesData","series","i","format","_a","_b","_c","config","separator","lineSeparator","lines","headerParts","point","rowParts","seriesName","data","obj","sepRow","value","precision","threshold","factor","textarea","detectedFormat","startIndex","parts","x","y","trimmed","items","item","globalClipboardManager","getClipboardManager","copyToClipboard","formatData","manager","manifestClipboard","PluginClipboard","_config","_ctx"],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { ChartPlugin } from '../types';
2
+ import { PluginContextMenuConfig } from './types';
3
+
4
+ export * from './types';
5
+ /**
6
+ * Sci Plot Context Menu Plugin
7
+ *
8
+ * Adds a customizable context menu with built-in actions and
9
+ * extensibility for custom menu items.
10
+ */
11
+ export declare function PluginContextMenu(config?: PluginContextMenuConfig): ChartPlugin<PluginContextMenuConfig>;
12
+ export default PluginContextMenu;
@@ -0,0 +1,43 @@
1
+ import { MenuItem, MenuStyle, MenuContext, MenuState } from './types';
2
+
3
+ export declare class MenuRenderer {
4
+ private _container;
5
+ private menuElement;
6
+ private style;
7
+ private onItemClick;
8
+ private zIndex;
9
+ constructor(container: HTMLElement, style: MenuStyle | undefined, zIndex: number, onItemClick: (item: MenuItem, context: MenuContext) => void);
10
+ /**
11
+ * Show the context menu
12
+ */
13
+ show(state: MenuState): void;
14
+ /**
15
+ * Hide the context menu
16
+ */
17
+ hide(): void;
18
+ /**
19
+ * Check if menu is visible
20
+ */
21
+ isVisible(): boolean;
22
+ /**
23
+ * Destroy the renderer
24
+ */
25
+ destroy(): void;
26
+ /**
27
+ * Update styling
28
+ */
29
+ updateStyle(style: MenuStyle): void;
30
+ /**
31
+ * Get container reference
32
+ */
33
+ getContainer(): HTMLElement;
34
+ private createMenu;
35
+ private createMenuItem;
36
+ private showSubmenu;
37
+ private hideSubmenu;
38
+ private positionMenu;
39
+ private getMenuStyle;
40
+ private getItemStyle;
41
+ private handleOutsideClick;
42
+ private handleKeyDown;
43
+ }
@@ -0,0 +1,202 @@
1
+ /**
2
+ * Context Menu Plugin - Type Definitions
3
+ *
4
+ * @module plugins/context-menu/types
5
+ */
6
+ /**
7
+ * Base menu item properties
8
+ */
9
+ export interface MenuItemBase {
10
+ /** Unique identifier for the item */
11
+ id?: string;
12
+ /** Display label */
13
+ label: string;
14
+ /** Icon (emoji, SVG string, or icon class) */
15
+ icon?: string;
16
+ /** Keyboard shortcut hint */
17
+ shortcut?: string;
18
+ /** Whether the item is disabled */
19
+ disabled?: boolean;
20
+ /** Whether the item is hidden */
21
+ hidden?: boolean;
22
+ /** CSS class for styling */
23
+ className?: string;
24
+ }
25
+ /**
26
+ * Separator item
27
+ */
28
+ export interface MenuSeparator {
29
+ type: 'separator';
30
+ }
31
+ /**
32
+ * Action menu item
33
+ */
34
+ export interface MenuActionItem extends MenuItemBase {
35
+ type?: 'action';
36
+ /** Action identifier (for built-in actions) */
37
+ action?: BuiltinAction;
38
+ /** Custom click handler */
39
+ onClick?: (context: MenuContext) => void;
40
+ }
41
+ /**
42
+ * Submenu item
43
+ */
44
+ export interface MenuSubmenuItem extends MenuItemBase {
45
+ type: 'submenu';
46
+ /** Submenu items */
47
+ items: MenuItem[];
48
+ }
49
+ /**
50
+ * Checkbox menu item
51
+ */
52
+ export interface MenuCheckboxItem extends MenuItemBase {
53
+ type: 'checkbox';
54
+ /** Whether the checkbox is checked */
55
+ checked?: boolean;
56
+ /** Change handler */
57
+ onChange?: (checked: boolean, context: MenuContext) => void;
58
+ }
59
+ /**
60
+ * Radio group item
61
+ */
62
+ export interface MenuRadioItem extends MenuItemBase {
63
+ type: 'radio';
64
+ /** Radio group name */
65
+ group: string;
66
+ /** Value for this option */
67
+ value: string;
68
+ /** Whether this option is selected */
69
+ selected?: boolean;
70
+ /** Change handler */
71
+ onChange?: (value: string, context: MenuContext) => void;
72
+ }
73
+ /**
74
+ * All menu item types
75
+ */
76
+ export type MenuItem = MenuActionItem | MenuSubmenuItem | MenuCheckboxItem | MenuRadioItem | MenuSeparator;
77
+ /**
78
+ * Built-in menu actions
79
+ */
80
+ export type BuiltinAction = 'zoomToFit' | 'zoomIn' | 'zoomOut' | 'resetView' | 'panMode' | 'boxZoomMode' | 'selectMode' | 'exportCSV' | 'exportJSON' | 'exportImage' | 'copyToClipboard' | 'toggleLegend' | 'toggleGrid' | 'toggleCrosshair' | 'addHorizontalLine' | 'addVerticalLine' | 'addTextAnnotation' | 'clearAnnotations' | 'showStats';
81
+ /**
82
+ * Context passed to menu handlers
83
+ */
84
+ export interface MenuContext {
85
+ /** The chart instance */
86
+ chart: unknown;
87
+ /** Mouse event that triggered the menu */
88
+ event: MouseEvent;
89
+ /** Click position in pixels */
90
+ pixelPosition: {
91
+ x: number;
92
+ y: number;
93
+ };
94
+ /** Click position in data coordinates */
95
+ dataPosition: {
96
+ x: number;
97
+ y: number;
98
+ } | null;
99
+ /** Series ID if clicked on a series */
100
+ seriesId: string | null;
101
+ /** Annotation ID if clicked on an annotation */
102
+ annotationId: string | null;
103
+ /** Point index if clicked near a data point */
104
+ pointIndex: number | null;
105
+ /** Area where the click occurred */
106
+ area: 'plot' | 'xAxis' | 'yAxis' | 'legend' | 'title' | 'outside';
107
+ }
108
+ /**
109
+ * Position for the menu
110
+ */
111
+ export interface MenuPosition {
112
+ x: number;
113
+ y: number;
114
+ }
115
+ /**
116
+ * Menu template definition
117
+ */
118
+ export interface MenuTemplate {
119
+ /** Template name */
120
+ name: string;
121
+ /** Items in this template */
122
+ items: MenuItem[];
123
+ /** Condition to show this template */
124
+ condition?: (context: MenuContext) => boolean;
125
+ }
126
+ /**
127
+ * Menu styling options
128
+ */
129
+ export interface MenuStyle {
130
+ /** Background color */
131
+ backgroundColor?: string;
132
+ /** Text color */
133
+ textColor?: string;
134
+ /** Border color */
135
+ borderColor?: string;
136
+ /** Border radius */
137
+ borderRadius?: string;
138
+ /** Box shadow */
139
+ boxShadow?: string;
140
+ /** Font family */
141
+ fontFamily?: string;
142
+ /** Font size */
143
+ fontSize?: string;
144
+ /** Item padding */
145
+ itemPadding?: string;
146
+ /** Hover background */
147
+ hoverBackground?: string;
148
+ /** Separator color */
149
+ separatorColor?: string;
150
+ /** Disabled opacity */
151
+ disabledOpacity?: number;
152
+ /** Menu min width */
153
+ minWidth?: string;
154
+ /** Menu max width */
155
+ maxWidth?: string;
156
+ /** Animation duration */
157
+ animationDuration?: string;
158
+ }
159
+ /**
160
+ * Configuration for PluginContextMenu
161
+ */
162
+ export interface PluginContextMenuConfig {
163
+ /** Enable context menu */
164
+ enabled?: boolean;
165
+ /** Custom menu items */
166
+ items?: MenuItem[];
167
+ /** Menu templates for different contexts */
168
+ templates?: MenuTemplate[];
169
+ /** Use default menu items */
170
+ useDefaults?: boolean;
171
+ /** Custom styling */
172
+ style?: MenuStyle;
173
+ /** Prevent default browser context menu */
174
+ preventDefault?: boolean;
175
+ /** Show on right-click */
176
+ showOnRightClick?: boolean;
177
+ /** Show on long-press (touch) */
178
+ showOnLongPress?: boolean;
179
+ /** Long press duration in ms */
180
+ longPressDuration?: number;
181
+ /** Before show hook */
182
+ beforeShow?: (context: MenuContext) => MenuItem[] | false;
183
+ /** After hide hook */
184
+ afterHide?: () => void;
185
+ /** Z-index for the menu */
186
+ zIndex?: number;
187
+ }
188
+ /**
189
+ * Current menu state
190
+ */
191
+ export interface MenuState {
192
+ /** Whether the menu is visible */
193
+ visible: boolean;
194
+ /** Menu position */
195
+ position: MenuPosition;
196
+ /** Current items to display */
197
+ items: MenuItem[];
198
+ /** Active submenu path */
199
+ submenuPath: string[];
200
+ /** Current context */
201
+ context: MenuContext | null;
202
+ }
@@ -0,0 +1,3 @@
1
+ export * from './context-menu/index'
2
+ import SciPlot from './context-menu/index'
3
+ export default SciPlot