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,499 @@
1
+ var f = Object.defineProperty;
2
+ var d = (i, e, t) => e in i ? f(i, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : i[e] = t;
3
+ var c = (i, e, t) => d(i, typeof e != "symbol" ? e + "" : e, t);
4
+ const b = [
5
+ {
6
+ label: "Background & Canvas",
7
+ description: "Chart background and canvas colors",
8
+ colors: [
9
+ { key: "backgroundColor", label: "Background", value: "", description: "Main chart background" },
10
+ { key: "plotAreaBackground", label: "Plot Area", value: "", description: "Data plotting area background" }
11
+ ]
12
+ },
13
+ {
14
+ label: "Axes",
15
+ description: "Axis lines, ticks, and labels",
16
+ colors: [
17
+ { key: "axis.color", label: "Axis Lines", value: "", description: "Axis line color" },
18
+ { key: "axis.labelColor", label: "Axis Labels", value: "", description: "Axis label text color" },
19
+ { key: "axis.titleColor", label: "Axis Titles", value: "", description: "Axis title text color" }
20
+ ]
21
+ },
22
+ {
23
+ label: "Grid",
24
+ description: "Grid lines and markers",
25
+ colors: [
26
+ { key: "grid.color", label: "Grid Lines", value: "", description: "Major grid line color" },
27
+ { key: "grid.minorColor", label: "Minor Grid", value: "", description: "Minor grid line color" }
28
+ ]
29
+ },
30
+ {
31
+ label: "Series Palette",
32
+ description: "Default colors for data series",
33
+ colors: [
34
+ { key: "seriesPalette.0", label: "Series 1", value: "", description: "First series color" },
35
+ { key: "seriesPalette.1", label: "Series 2", value: "", description: "Second series color" },
36
+ { key: "seriesPalette.2", label: "Series 3", value: "", description: "Third series color" },
37
+ { key: "seriesPalette.3", label: "Series 4", value: "", description: "Fourth series color" },
38
+ { key: "seriesPalette.4", label: "Series 5", value: "", description: "Fifth series color" },
39
+ { key: "seriesPalette.5", label: "Series 6", value: "", description: "Sixth series color" }
40
+ ]
41
+ },
42
+ {
43
+ label: "Legend",
44
+ description: "Legend styling",
45
+ colors: [
46
+ { key: "legend.backgroundColor", label: "Legend Background", value: "", description: "Legend panel background" },
47
+ { key: "legend.textColor", label: "Legend Text", value: "", description: "Legend text color" },
48
+ { key: "legend.borderColor", label: "Legend Border", value: "", description: "Legend border color" }
49
+ ]
50
+ },
51
+ {
52
+ label: "Cursor & Selection",
53
+ description: "Interactive elements",
54
+ colors: [
55
+ { key: "cursor.color", label: "Crosshair", value: "", description: "Cursor crosshair color" },
56
+ { key: "cursor.labelBackground", label: "Cursor Label BG", value: "", description: "Cursor label background" },
57
+ { key: "selection.color", label: "Selection", value: "", description: "Selection highlight color" },
58
+ { key: "selection.handleColor", label: "Selection Handles", value: "", description: "Selection handle color" }
59
+ ]
60
+ },
61
+ {
62
+ label: "Annotations",
63
+ description: "Annotation default colors",
64
+ colors: [
65
+ { key: "annotation.lineColor", label: "Line Annotations", value: "", description: "Default line annotation color" },
66
+ { key: "annotation.fillColor", label: "Fill Annotations", value: "", description: "Default fill annotation color" },
67
+ { key: "annotation.textColor", label: "Text Annotations", value: "", description: "Default text annotation color" }
68
+ ]
69
+ }
70
+ ], n = [
71
+ {
72
+ name: "Dark",
73
+ description: "Classic dark theme with cyan accents",
74
+ previewColors: ["#1a1a2e", "#00f2ff", "#4ecdc4"],
75
+ tags: ["dark", "default"],
76
+ theme: {
77
+ backgroundColor: "#1a1a2e",
78
+ plotAreaBackground: "#16213e",
79
+ axis: {
80
+ color: "#4a5568",
81
+ labelColor: "#a0aec0",
82
+ titleColor: "#e2e8f0",
83
+ labelFontSize: 11,
84
+ titleFontSize: 13
85
+ },
86
+ grid: {
87
+ color: "rgba(74, 85, 104, 0.3)",
88
+ opacity: 0.3
89
+ },
90
+ legend: {
91
+ background: "rgba(26, 26, 46, 0.9)",
92
+ textColor: "#e2e8f0",
93
+ borderColor: "rgba(255, 255, 255, 0.1)"
94
+ },
95
+ cursor: {
96
+ color: "#00f2ff",
97
+ labelBackground: "rgba(0, 242, 255, 0.9)",
98
+ labelColor: "#000000"
99
+ },
100
+ seriesPalette: ["#00f2ff", "#4ecdc4", "#ff6b6b", "#ffd93d", "#6c5ce7", "#a29bfe", "#fd79a8", "#00cec9"],
101
+ highlightColor: "#00f2ff"
102
+ }
103
+ },
104
+ {
105
+ name: "Light",
106
+ description: "Clean light theme for publications",
107
+ previewColors: ["#ffffff", "#2563eb", "#4f46e5"],
108
+ tags: ["light", "publication"],
109
+ theme: {
110
+ backgroundColor: "#ffffff",
111
+ plotAreaBackground: "#f8fafc",
112
+ axis: {
113
+ color: "#94a3b8",
114
+ labelColor: "#475569",
115
+ titleColor: "#1e293b",
116
+ labelFontSize: 11,
117
+ titleFontSize: 13
118
+ },
119
+ grid: {
120
+ color: "rgba(148, 163, 184, 0.3)",
121
+ opacity: 0.3
122
+ },
123
+ legend: {
124
+ backgroundColor: "rgba(255, 255, 255, 0.95)",
125
+ textColor: "#1e293b",
126
+ borderColor: "rgba(0, 0, 0, 0.1)"
127
+ },
128
+ cursor: {
129
+ color: "#2563eb",
130
+ labelBackground: "rgba(37, 99, 235, 0.95)",
131
+ labelColor: "#ffffff"
132
+ },
133
+ seriesPalette: ["#2563eb", "#7c3aed", "#db2777", "#ea580c", "#16a34a", "#0891b2", "#4f46e5", "#be185d"],
134
+ highlightColor: "#2563eb"
135
+ }
136
+ },
137
+ {
138
+ name: "Midnight",
139
+ description: "Deep blue dark theme",
140
+ previewColors: ["#0f172a", "#3b82f6", "#8b5cf6"],
141
+ tags: ["dark", "blue"],
142
+ theme: {
143
+ backgroundColor: "#0f172a",
144
+ plotAreaBackground: "#1e293b",
145
+ axis: {
146
+ color: "#475569",
147
+ labelColor: "#94a3b8",
148
+ titleColor: "#f1f5f9",
149
+ labelFontSize: 11,
150
+ titleFontSize: 13
151
+ },
152
+ grid: {
153
+ color: "rgba(71, 85, 105, 0.25)",
154
+ opacity: 0.25
155
+ },
156
+ legend: {
157
+ backgroundColor: "rgba(15, 23, 42, 0.95)",
158
+ textColor: "#f1f5f9",
159
+ borderColor: "rgba(255, 255, 255, 0.08)"
160
+ },
161
+ cursor: {
162
+ color: "#3b82f6",
163
+ labelBackground: "rgba(59, 130, 246, 0.95)",
164
+ labelColor: "#ffffff"
165
+ },
166
+ seriesPalette: ["#3b82f6", "#8b5cf6", "#ec4899", "#f59e0b", "#10b981", "#06b6d4", "#6366f1", "#f43f5e"],
167
+ highlightColor: "#3b82f6"
168
+ }
169
+ },
170
+ {
171
+ name: "Scientific",
172
+ description: "Clean theme for scientific publications",
173
+ previewColors: ["#fafafa", "#1f2937", "#059669"],
174
+ tags: ["light", "scientific", "publication"],
175
+ theme: {
176
+ backgroundColor: "#fafafa",
177
+ plotAreaBackground: "#ffffff",
178
+ axis: {
179
+ color: "#374151",
180
+ labelColor: "#1f2937",
181
+ titleColor: "#111827",
182
+ labelFontSize: 12,
183
+ titleFontSize: 14
184
+ },
185
+ grid: {
186
+ color: "rgba(156, 163, 175, 0.4)",
187
+ opacity: 0.4
188
+ },
189
+ legend: {
190
+ backgroundColor: "#ffffff",
191
+ textColor: "#111827",
192
+ borderColor: "#e5e7eb"
193
+ },
194
+ cursor: {
195
+ color: "#059669",
196
+ labelBackground: "#059669",
197
+ labelColor: "#ffffff"
198
+ },
199
+ seriesPalette: ["#1f2937", "#059669", "#dc2626", "#2563eb", "#7c3aed", "#ea580c", "#0891b2", "#be123c"],
200
+ highlightColor: "#059669"
201
+ }
202
+ },
203
+ {
204
+ name: "Electrochemistry",
205
+ description: "Theme optimized for electrochemical data",
206
+ previewColors: ["#0d1117", "#00f2ff", "#ff6b6b"],
207
+ tags: ["dark", "scientific", "electrochemistry"],
208
+ theme: {
209
+ backgroundColor: "#0d1117",
210
+ plotAreaBackground: "#161b22",
211
+ axis: {
212
+ color: "#30363d",
213
+ labelColor: "#8b949e",
214
+ titleColor: "#c9d1d9",
215
+ labelFontSize: 11,
216
+ titleFontSize: 13
217
+ },
218
+ grid: {
219
+ color: "rgba(48, 54, 61, 0.5)",
220
+ opacity: 0.5
221
+ },
222
+ legend: {
223
+ backgroundColor: "rgba(13, 17, 23, 0.95)",
224
+ textColor: "#c9d1d9",
225
+ borderColor: "rgba(48, 54, 61, 0.8)"
226
+ },
227
+ cursor: {
228
+ color: "#00f2ff",
229
+ labelBackground: "rgba(0, 242, 255, 0.95)",
230
+ labelColor: "#000000"
231
+ },
232
+ seriesPalette: ["#00f2ff", "#ff6b6b", "#4ecdc4", "#feca57", "#a29bfe", "#fd79a8", "#00cec9", "#e17055"],
233
+ highlightColor: "#00f2ff"
234
+ }
235
+ },
236
+ {
237
+ name: "High Contrast",
238
+ description: "Maximum visibility theme",
239
+ previewColors: ["#000000", "#ffffff", "#ffff00"],
240
+ tags: ["dark", "accessibility", "high-contrast"],
241
+ theme: {
242
+ backgroundColor: "#000000",
243
+ plotAreaBackground: "#0a0a0a",
244
+ axis: {
245
+ color: "#ffffff",
246
+ labelColor: "#ffffff",
247
+ titleColor: "#ffffff",
248
+ labelFontSize: 12,
249
+ titleFontSize: 14
250
+ },
251
+ grid: {
252
+ color: "rgba(255, 255, 255, 0.2)",
253
+ opacity: 0.2
254
+ },
255
+ legend: {
256
+ backgroundColor: "#000000",
257
+ textColor: "#ffffff",
258
+ borderColor: "#ffffff"
259
+ },
260
+ cursor: {
261
+ color: "#ffff00",
262
+ labelBackground: "#ffff00",
263
+ labelColor: "#000000"
264
+ },
265
+ seriesPalette: ["#ffff00", "#00ffff", "#ff00ff", "#00ff00", "#ff8800", "#00ff88", "#8800ff", "#ff0088"],
266
+ highlightColor: "#ffff00"
267
+ }
268
+ }
269
+ ];
270
+ class h {
271
+ constructor(e, t) {
272
+ c(this, "container");
273
+ c(this, "options");
274
+ c(this, "currentTheme");
275
+ c(this, "element", null);
276
+ this.container = e, this.options = {
277
+ baseTheme: n[0].theme,
278
+ livePreview: !0,
279
+ showAdvanced: !1,
280
+ className: "velo-plot-theme-editor",
281
+ onChange: void 0,
282
+ onExport: void 0,
283
+ ...t
284
+ }, this.currentTheme = this.resolveTheme(this.options.baseTheme), this.render();
285
+ }
286
+ /**
287
+ * Get current theme
288
+ */
289
+ getTheme() {
290
+ return { ...this.currentTheme };
291
+ }
292
+ /**
293
+ * Set theme
294
+ */
295
+ setTheme(e) {
296
+ this.currentTheme = this.resolveTheme(e), this.render(), this.notifyChange();
297
+ }
298
+ /**
299
+ * Update a specific theme property
300
+ */
301
+ updateProperty(e, t) {
302
+ this.setNestedValue(this.currentTheme, e, t), this.notifyChange();
303
+ }
304
+ /**
305
+ * Export theme as JSON
306
+ */
307
+ exportTheme() {
308
+ var t, o;
309
+ const e = JSON.stringify(this.currentTheme, null, 2);
310
+ return (o = (t = this.options).onExport) == null || o.call(t, this.currentTheme, e), e;
311
+ }
312
+ /**
313
+ * Import theme from JSON
314
+ */
315
+ importTheme(e) {
316
+ try {
317
+ const t = JSON.parse(e);
318
+ this.currentTheme = t, this.render(), this.notifyChange();
319
+ } catch (t) {
320
+ console.error("[ThemeEditor] Failed to import theme:", t);
321
+ }
322
+ }
323
+ /**
324
+ * Get theme preset by name
325
+ */
326
+ getPreset(e) {
327
+ return n.find((t) => t.name.toLowerCase() === e.toLowerCase());
328
+ }
329
+ /**
330
+ * Apply a preset
331
+ */
332
+ applyPreset(e) {
333
+ const t = this.getPreset(e);
334
+ t && (this.currentTheme = { ...t.theme }, this.render(), this.notifyChange());
335
+ }
336
+ /**
337
+ * Get all available presets
338
+ */
339
+ getPresets() {
340
+ return n;
341
+ }
342
+ /**
343
+ * Destroy the editor
344
+ */
345
+ destroy() {
346
+ this.element && this.element.parentNode && this.element.parentNode.removeChild(this.element), this.element = null;
347
+ }
348
+ // ============================================
349
+ // Private Methods
350
+ // ============================================
351
+ resolveTheme(e) {
352
+ if (typeof e == "string") {
353
+ const t = this.getPreset(e);
354
+ return t ? { ...t.theme } : { ...n[0].theme };
355
+ }
356
+ return { ...e };
357
+ }
358
+ setNestedValue(e, t, o) {
359
+ const r = t.split(".");
360
+ let l = e;
361
+ for (let a = 0; a < r.length - 1; a++) {
362
+ const s = r[a];
363
+ s in l || (l[s] = {}), l = l[s];
364
+ }
365
+ l[r[r.length - 1]] = o;
366
+ }
367
+ getNestedValue(e, t) {
368
+ const o = t.split(".");
369
+ let r = e;
370
+ for (const l of o) {
371
+ if (r == null || typeof r != "object")
372
+ return;
373
+ r = r[l];
374
+ }
375
+ return r;
376
+ }
377
+ notifyChange() {
378
+ var e, t;
379
+ this.options.livePreview && ((t = (e = this.options).onChange) == null || t.call(e, this.currentTheme));
380
+ }
381
+ render() {
382
+ this.element || (this.element = document.createElement("div"), this.element.className = this.options.className, this.container.appendChild(this.element)), this.element.innerHTML = this.generateHTML(), this.attachEventListeners();
383
+ }
384
+ generateHTML() {
385
+ const e = n.map((o) => `
386
+ <button class="preset-btn" data-preset="${o.name}" title="${o.description || o.name}">
387
+ <div class="preset-colors">
388
+ ${(o.previewColors || []).map((r) => `<span style="background:${r}"></span>`).join("")}
389
+ </div>
390
+ <span class="preset-name">${o.name}</span>
391
+ </button>
392
+ `).join(""), t = b.map((o) => {
393
+ const r = o.colors.map((l) => {
394
+ const a = this.getNestedValue(this.currentTheme, l.key) || "#000000";
395
+ return `
396
+ <div class="color-row">
397
+ <label title="${l.description || ""}">${l.label}</label>
398
+ <input type="color" data-key="${l.key}" value="${this.normalizeColor(a)}" />
399
+ <input type="text" data-key="${l.key}" value="${a}" class="color-text" />
400
+ </div>
401
+ `;
402
+ }).join("");
403
+ return `
404
+ <div class="color-group">
405
+ <h4>${o.label}</h4>
406
+ ${o.description ? `<p class="group-desc">${o.description}</p>` : ""}
407
+ ${r}
408
+ </div>
409
+ `;
410
+ }).join("");
411
+ return `
412
+ <div class="theme-editor-inner">
413
+ <div class="presets-section">
414
+ <h3>Presets</h3>
415
+ <div class="presets-grid">${e}</div>
416
+ </div>
417
+ <div class="colors-section">
418
+ <h3>Customize</h3>
419
+ ${t}
420
+ </div>
421
+ <div class="actions-section">
422
+ <button class="export-btn">Export JSON</button>
423
+ <button class="import-btn">Import JSON</button>
424
+ </div>
425
+ </div>
426
+ `;
427
+ }
428
+ normalizeColor(e) {
429
+ if (e.startsWith("rgba") || e.startsWith("rgb")) {
430
+ const t = e.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)/);
431
+ if (t) {
432
+ const o = parseInt(t[1]).toString(16).padStart(2, "0"), r = parseInt(t[2]).toString(16).padStart(2, "0"), l = parseInt(t[3]).toString(16).padStart(2, "0");
433
+ return `#${o}${r}${l}`;
434
+ }
435
+ }
436
+ return e;
437
+ }
438
+ attachEventListeners() {
439
+ var e, t;
440
+ this.element && (this.element.querySelectorAll(".preset-btn").forEach((o) => {
441
+ o.addEventListener("click", () => {
442
+ const r = o.getAttribute("data-preset");
443
+ r && this.applyPreset(r);
444
+ });
445
+ }), this.element.querySelectorAll('input[type="color"], input.color-text').forEach((o) => {
446
+ o.addEventListener("input", (r) => {
447
+ const l = r.target, a = l.getAttribute("data-key");
448
+ if (a) {
449
+ this.updateProperty(a, l.value);
450
+ const s = l.type === "color" ? l.nextElementSibling : l.previousElementSibling;
451
+ s && (s.value = l.type === "color" ? l.value : this.normalizeColor(l.value));
452
+ }
453
+ });
454
+ }), (e = this.element.querySelector(".export-btn")) == null || e.addEventListener("click", () => {
455
+ var r;
456
+ const o = this.exportTheme();
457
+ (r = navigator.clipboard) == null || r.writeText(o).then(() => {
458
+ });
459
+ }), (t = this.element.querySelector(".import-btn")) == null || t.addEventListener("click", () => {
460
+ const o = prompt("Paste theme JSON:");
461
+ o && this.importTheme(o);
462
+ }));
463
+ }
464
+ }
465
+ function p(i, e) {
466
+ return new h(i, e);
467
+ }
468
+ function m(i) {
469
+ const e = n.find((t) => t.name.toLowerCase() === i.toLowerCase());
470
+ return e ? { ...e.theme } : void 0;
471
+ }
472
+ function C() {
473
+ return n.map((i) => i.name);
474
+ }
475
+ const u = {
476
+ name: "velo-plot-theme-editor",
477
+ version: "1.0.0",
478
+ description: "Visual theme editor for velo-plot",
479
+ provides: ["ui", "theme"],
480
+ tags: ["theme", "editor", "styling", "ui"]
481
+ };
482
+ function v(i = {}) {
483
+ return {
484
+ manifest: u,
485
+ onInit(e) {
486
+ },
487
+ onDestroy(e) {
488
+ }
489
+ };
490
+ }
491
+ export {
492
+ v as P,
493
+ h as T,
494
+ C as a,
495
+ n as b,
496
+ p as c,
497
+ m as g
498
+ };
499
+ //# sourceMappingURL=index-Dag88bW4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-Dag88bW4.js","sources":["../src/core/theme-editor/index.ts","../src/plugins/theme-editor/index.ts"],"sourcesContent":["/**\n * Sci Plot - Theme Editor Module\n * \n * Provides a visual theme editor for customizing chart appearance:\n * - Color pickers for all theme elements\n * - Live preview\n * - Theme export/import\n * - Preset theme gallery\n * \n * @module theme-editor\n */\n\n// Use a flexible internal type to avoid strict EditorTheme compatibility issues\n// The editor works with partial theme configs that can be applied via createTheme()\nexport type EditorTheme = Record<string, unknown>;\n\n// ============================================\n// Types\n// ============================================\n\nexport interface ThemeEditorOptions {\n /** Base theme to start from */\n baseTheme?: EditorTheme | string;\n /** Enable live preview (default: true) */\n livePreview?: boolean;\n /** Show advanced options (default: false) */\n showAdvanced?: boolean;\n /** Custom CSS class for the editor */\n className?: string;\n /** Callback when theme changes */\n onChange?: (theme: EditorTheme) => void;\n /** Callback when export is requested */\n onExport?: (theme: EditorTheme, json: string) => void;\n}\n\nexport interface ThemePreset {\n /** Preset name */\n name: string;\n /** Description */\n description?: string;\n /** Theme configuration */\n theme: EditorTheme;\n /** Preview colors (for UI) */\n previewColors?: string[];\n /** Tags for filtering */\n tags?: string[];\n}\n\nexport interface ColorGroup {\n /** Group label */\n label: string;\n /** Group description */\n description?: string;\n /** Color properties in this group */\n colors: ColorProperty[];\n}\n\nexport interface ColorProperty {\n /** Property key path (e.g., 'background', 'axis.color') */\n key: string;\n /** Display label */\n label: string;\n /** Description/tooltip */\n description?: string;\n /** Current value */\n value: string;\n /** Default value */\n defaultValue?: string;\n}\n\n// ============================================\n// Default Theme Structure\n// ============================================\n\nconst THEME_COLOR_GROUPS: ColorGroup[] = [\n {\n label: \"Background & Canvas\",\n description: \"Chart background and canvas colors\",\n colors: [\n { key: \"backgroundColor\", label: \"Background\", value: \"\", description: \"Main chart background\" },\n { key: \"plotAreaBackground\", label: \"Plot Area\", value: \"\", description: \"Data plotting area background\" },\n ],\n },\n {\n label: \"Axes\",\n description: \"Axis lines, ticks, and labels\",\n colors: [\n { key: \"axis.color\", label: \"Axis Lines\", value: \"\", description: \"Axis line color\" },\n { key: \"axis.labelColor\", label: \"Axis Labels\", value: \"\", description: \"Axis label text color\" },\n { key: \"axis.titleColor\", label: \"Axis Titles\", value: \"\", description: \"Axis title text color\" },\n ],\n },\n {\n label: \"Grid\",\n description: \"Grid lines and markers\",\n colors: [\n { key: \"grid.color\", label: \"Grid Lines\", value: \"\", description: \"Major grid line color\" },\n { key: \"grid.minorColor\", label: \"Minor Grid\", value: \"\", description: \"Minor grid line color\" },\n ],\n },\n {\n label: \"Series Palette\",\n description: \"Default colors for data series\",\n colors: [\n { key: \"seriesPalette.0\", label: \"Series 1\", value: \"\", description: \"First series color\" },\n { key: \"seriesPalette.1\", label: \"Series 2\", value: \"\", description: \"Second series color\" },\n { key: \"seriesPalette.2\", label: \"Series 3\", value: \"\", description: \"Third series color\" },\n { key: \"seriesPalette.3\", label: \"Series 4\", value: \"\", description: \"Fourth series color\" },\n { key: \"seriesPalette.4\", label: \"Series 5\", value: \"\", description: \"Fifth series color\" },\n { key: \"seriesPalette.5\", label: \"Series 6\", value: \"\", description: \"Sixth series color\" },\n ],\n },\n {\n label: \"Legend\",\n description: \"Legend styling\",\n colors: [\n { key: \"legend.backgroundColor\", label: \"Legend Background\", value: \"\", description: \"Legend panel background\" },\n { key: \"legend.textColor\", label: \"Legend Text\", value: \"\", description: \"Legend text color\" },\n { key: \"legend.borderColor\", label: \"Legend Border\", value: \"\", description: \"Legend border color\" },\n ],\n },\n {\n label: \"Cursor & Selection\",\n description: \"Interactive elements\",\n colors: [\n { key: \"cursor.color\", label: \"Crosshair\", value: \"\", description: \"Cursor crosshair color\" },\n { key: \"cursor.labelBackground\", label: \"Cursor Label BG\", value: \"\", description: \"Cursor label background\" },\n { key: \"selection.color\", label: \"Selection\", value: \"\", description: \"Selection highlight color\" },\n { key: \"selection.handleColor\", label: \"Selection Handles\", value: \"\", description: \"Selection handle color\" },\n ],\n },\n {\n label: \"Annotations\",\n description: \"Annotation default colors\",\n colors: [\n { key: \"annotation.lineColor\", label: \"Line Annotations\", value: \"\", description: \"Default line annotation color\" },\n { key: \"annotation.fillColor\", label: \"Fill Annotations\", value: \"\", description: \"Default fill annotation color\" },\n { key: \"annotation.textColor\", label: \"Text Annotations\", value: \"\", description: \"Default text annotation color\" },\n ],\n },\n];\n\n// ============================================\n// Theme Presets\n// ============================================\n\nexport const THEME_PRESETS: ThemePreset[] = [\n {\n name: \"Dark\",\n description: \"Classic dark theme with cyan accents\",\n previewColors: [\"#1a1a2e\", \"#00f2ff\", \"#4ecdc4\"],\n tags: [\"dark\", \"default\"],\n theme: {\n backgroundColor: \"#1a1a2e\",\n plotAreaBackground: \"#16213e\",\n axis: {\n color: \"#4a5568\",\n labelColor: \"#a0aec0\",\n titleColor: \"#e2e8f0\",\n labelFontSize: 11,\n titleFontSize: 13,\n },\n grid: {\n color: \"rgba(74, 85, 104, 0.3)\",\n opacity: 0.3,\n },\n legend: {\n background: \"rgba(26, 26, 46, 0.9)\",\n textColor: \"#e2e8f0\",\n borderColor: \"rgba(255, 255, 255, 0.1)\",\n },\n cursor: {\n color: \"#00f2ff\",\n labelBackground: \"rgba(0, 242, 255, 0.9)\",\n labelColor: \"#000000\",\n },\n seriesPalette: [\"#00f2ff\", \"#4ecdc4\", \"#ff6b6b\", \"#ffd93d\", \"#6c5ce7\", \"#a29bfe\", \"#fd79a8\", \"#00cec9\"],\n highlightColor: \"#00f2ff\",\n },\n },\n {\n name: \"Light\",\n description: \"Clean light theme for publications\",\n previewColors: [\"#ffffff\", \"#2563eb\", \"#4f46e5\"],\n tags: [\"light\", \"publication\"],\n theme: {\n backgroundColor: \"#ffffff\",\n plotAreaBackground: \"#f8fafc\",\n axis: {\n color: \"#94a3b8\",\n labelColor: \"#475569\",\n titleColor: \"#1e293b\",\n labelFontSize: 11,\n titleFontSize: 13,\n },\n grid: {\n color: \"rgba(148, 163, 184, 0.3)\",\n opacity: 0.3,\n },\n legend: {\n backgroundColor: \"rgba(255, 255, 255, 0.95)\",\n textColor: \"#1e293b\",\n borderColor: \"rgba(0, 0, 0, 0.1)\",\n },\n cursor: {\n color: \"#2563eb\",\n labelBackground: \"rgba(37, 99, 235, 0.95)\",\n labelColor: \"#ffffff\",\n },\n seriesPalette: [\"#2563eb\", \"#7c3aed\", \"#db2777\", \"#ea580c\", \"#16a34a\", \"#0891b2\", \"#4f46e5\", \"#be185d\"],\n highlightColor: \"#2563eb\",\n },\n },\n {\n name: \"Midnight\",\n description: \"Deep blue dark theme\",\n previewColors: [\"#0f172a\", \"#3b82f6\", \"#8b5cf6\"],\n tags: [\"dark\", \"blue\"],\n theme: {\n backgroundColor: \"#0f172a\",\n plotAreaBackground: \"#1e293b\",\n axis: {\n color: \"#475569\",\n labelColor: \"#94a3b8\",\n titleColor: \"#f1f5f9\",\n labelFontSize: 11,\n titleFontSize: 13,\n },\n grid: {\n color: \"rgba(71, 85, 105, 0.25)\",\n opacity: 0.25,\n },\n legend: {\n backgroundColor: \"rgba(15, 23, 42, 0.95)\",\n textColor: \"#f1f5f9\",\n borderColor: \"rgba(255, 255, 255, 0.08)\",\n },\n cursor: {\n color: \"#3b82f6\",\n labelBackground: \"rgba(59, 130, 246, 0.95)\",\n labelColor: \"#ffffff\",\n },\n seriesPalette: [\"#3b82f6\", \"#8b5cf6\", \"#ec4899\", \"#f59e0b\", \"#10b981\", \"#06b6d4\", \"#6366f1\", \"#f43f5e\"],\n highlightColor: \"#3b82f6\",\n },\n },\n {\n name: \"Scientific\",\n description: \"Clean theme for scientific publications\",\n previewColors: [\"#fafafa\", \"#1f2937\", \"#059669\"],\n tags: [\"light\", \"scientific\", \"publication\"],\n theme: {\n backgroundColor: \"#fafafa\",\n plotAreaBackground: \"#ffffff\",\n axis: {\n color: \"#374151\",\n labelColor: \"#1f2937\",\n titleColor: \"#111827\",\n labelFontSize: 12,\n titleFontSize: 14,\n },\n grid: {\n color: \"rgba(156, 163, 175, 0.4)\",\n opacity: 0.4,\n },\n legend: {\n backgroundColor: \"#ffffff\",\n textColor: \"#111827\",\n borderColor: \"#e5e7eb\",\n },\n cursor: {\n color: \"#059669\",\n labelBackground: \"#059669\",\n labelColor: \"#ffffff\",\n },\n seriesPalette: [\"#1f2937\", \"#059669\", \"#dc2626\", \"#2563eb\", \"#7c3aed\", \"#ea580c\", \"#0891b2\", \"#be123c\"],\n highlightColor: \"#059669\",\n },\n },\n {\n name: \"Electrochemistry\",\n description: \"Theme optimized for electrochemical data\",\n previewColors: [\"#0d1117\", \"#00f2ff\", \"#ff6b6b\"],\n tags: [\"dark\", \"scientific\", \"electrochemistry\"],\n theme: {\n backgroundColor: \"#0d1117\",\n plotAreaBackground: \"#161b22\",\n axis: {\n color: \"#30363d\",\n labelColor: \"#8b949e\",\n titleColor: \"#c9d1d9\",\n labelFontSize: 11,\n titleFontSize: 13,\n },\n grid: {\n color: \"rgba(48, 54, 61, 0.5)\",\n opacity: 0.5,\n },\n legend: {\n backgroundColor: \"rgba(13, 17, 23, 0.95)\",\n textColor: \"#c9d1d9\",\n borderColor: \"rgba(48, 54, 61, 0.8)\",\n },\n cursor: {\n color: \"#00f2ff\",\n labelBackground: \"rgba(0, 242, 255, 0.95)\",\n labelColor: \"#000000\",\n },\n seriesPalette: [\"#00f2ff\", \"#ff6b6b\", \"#4ecdc4\", \"#feca57\", \"#a29bfe\", \"#fd79a8\", \"#00cec9\", \"#e17055\"],\n highlightColor: \"#00f2ff\",\n },\n },\n {\n name: \"High Contrast\",\n description: \"Maximum visibility theme\",\n previewColors: [\"#000000\", \"#ffffff\", \"#ffff00\"],\n tags: [\"dark\", \"accessibility\", \"high-contrast\"],\n theme: {\n backgroundColor: \"#000000\",\n plotAreaBackground: \"#0a0a0a\",\n axis: {\n color: \"#ffffff\",\n labelColor: \"#ffffff\",\n titleColor: \"#ffffff\",\n labelFontSize: 12,\n titleFontSize: 14,\n },\n grid: {\n color: \"rgba(255, 255, 255, 0.2)\",\n opacity: 0.2,\n },\n legend: {\n backgroundColor: \"#000000\",\n textColor: \"#ffffff\",\n borderColor: \"#ffffff\",\n },\n cursor: {\n color: \"#ffff00\",\n labelBackground: \"#ffff00\",\n labelColor: \"#000000\",\n },\n seriesPalette: [\"#ffff00\", \"#00ffff\", \"#ff00ff\", \"#00ff00\", \"#ff8800\", \"#00ff88\", \"#8800ff\", \"#ff0088\"],\n highlightColor: \"#ffff00\",\n },\n },\n];\n\n// ============================================\n// Theme Editor Class\n// ============================================\n\nexport class ThemeEditor {\n private container: HTMLElement;\n private options: Required<ThemeEditorOptions>;\n private currentTheme: EditorTheme;\n private element: HTMLDivElement | null = null;\n\n constructor(container: HTMLElement, options?: ThemeEditorOptions) {\n this.container = container;\n this.options = {\n baseTheme: THEME_PRESETS[0].theme,\n livePreview: true,\n showAdvanced: false,\n className: 'velo-plot-theme-editor',\n onChange: undefined,\n onExport: undefined,\n ...options,\n } as Required<ThemeEditorOptions>;\n\n this.currentTheme = this.resolveTheme(this.options.baseTheme);\n this.render();\n }\n\n /**\n * Get current theme\n */\n getTheme(): EditorTheme {\n return { ...this.currentTheme };\n }\n\n /**\n * Set theme\n */\n setTheme(theme: EditorTheme | string): void {\n this.currentTheme = this.resolveTheme(theme);\n this.render();\n this.notifyChange();\n }\n\n /**\n * Update a specific theme property\n */\n updateProperty(key: string, value: string): void {\n this.setNestedValue(this.currentTheme, key, value);\n this.notifyChange();\n }\n\n /**\n * Export theme as JSON\n */\n exportTheme(): string {\n const json = JSON.stringify(this.currentTheme, null, 2);\n this.options.onExport?.(this.currentTheme, json);\n return json;\n }\n\n /**\n * Import theme from JSON\n */\n importTheme(json: string): void {\n try {\n const theme = JSON.parse(json) as EditorTheme;\n this.currentTheme = theme;\n this.render();\n this.notifyChange();\n } catch (e) {\n console.error('[ThemeEditor] Failed to import theme:', e);\n }\n }\n\n /**\n * Get theme preset by name\n */\n getPreset(name: string): ThemePreset | undefined {\n return THEME_PRESETS.find(p => p.name.toLowerCase() === name.toLowerCase());\n }\n\n /**\n * Apply a preset\n */\n applyPreset(name: string): void {\n const preset = this.getPreset(name);\n if (preset) {\n this.currentTheme = { ...preset.theme };\n this.render();\n this.notifyChange();\n }\n }\n\n /**\n * Get all available presets\n */\n getPresets(): ThemePreset[] {\n return THEME_PRESETS;\n }\n\n /**\n * Destroy the editor\n */\n destroy(): void {\n if (this.element && this.element.parentNode) {\n this.element.parentNode.removeChild(this.element);\n }\n this.element = null;\n }\n\n // ============================================\n // Private Methods\n // ============================================\n\n private resolveTheme(theme: EditorTheme | string): EditorTheme {\n if (typeof theme === 'string') {\n const preset = this.getPreset(theme);\n return preset ? { ...preset.theme } : { ...THEME_PRESETS[0].theme };\n }\n return { ...theme };\n }\n\n private setNestedValue(obj: Record<string, unknown>, path: string, value: unknown): void {\n const keys = path.split('.');\n let current = obj;\n \n for (let i = 0; i < keys.length - 1; i++) {\n const key = keys[i];\n if (!(key in current)) {\n current[key] = {};\n }\n current = current[key] as Record<string, unknown>;\n }\n \n current[keys[keys.length - 1]] = value;\n }\n\n private getNestedValue(obj: Record<string, unknown>, path: string): unknown {\n const keys = path.split('.');\n let current: unknown = obj;\n \n for (const key of keys) {\n if (current === null || current === undefined || typeof current !== 'object') {\n return undefined;\n }\n current = (current as Record<string, unknown>)[key];\n }\n \n return current;\n }\n\n private notifyChange(): void {\n if (this.options.livePreview) {\n this.options.onChange?.(this.currentTheme);\n }\n }\n\n private render(): void {\n // This creates an HTML structure that can be styled with CSS\n // In a real implementation, this would create interactive color pickers\n if (!this.element) {\n this.element = document.createElement('div');\n this.element.className = this.options.className;\n this.container.appendChild(this.element);\n }\n\n this.element.innerHTML = this.generateHTML();\n this.attachEventListeners();\n }\n\n private generateHTML(): string {\n const presetButtons = THEME_PRESETS.map(preset => `\n <button class=\"preset-btn\" data-preset=\"${preset.name}\" title=\"${preset.description || preset.name}\">\n <div class=\"preset-colors\">\n ${(preset.previewColors || []).map(c => `<span style=\"background:${c}\"></span>`).join('')}\n </div>\n <span class=\"preset-name\">${preset.name}</span>\n </button>\n `).join('');\n\n const colorGroups = THEME_COLOR_GROUPS.map(group => {\n const colorInputs = group.colors.map(color => {\n const value = this.getNestedValue(this.currentTheme as Record<string, unknown>, color.key) as string || '#000000';\n return `\n <div class=\"color-row\">\n <label title=\"${color.description || ''}\">${color.label}</label>\n <input type=\"color\" data-key=\"${color.key}\" value=\"${this.normalizeColor(value)}\" />\n <input type=\"text\" data-key=\"${color.key}\" value=\"${value}\" class=\"color-text\" />\n </div>\n `;\n }).join('');\n\n return `\n <div class=\"color-group\">\n <h4>${group.label}</h4>\n ${group.description ? `<p class=\"group-desc\">${group.description}</p>` : ''}\n ${colorInputs}\n </div>\n `;\n }).join('');\n\n return `\n <div class=\"theme-editor-inner\">\n <div class=\"presets-section\">\n <h3>Presets</h3>\n <div class=\"presets-grid\">${presetButtons}</div>\n </div>\n <div class=\"colors-section\">\n <h3>Customize</h3>\n ${colorGroups}\n </div>\n <div class=\"actions-section\">\n <button class=\"export-btn\">Export JSON</button>\n <button class=\"import-btn\">Import JSON</button>\n </div>\n </div>\n `;\n }\n\n private normalizeColor(color: string): string {\n // Convert rgba/rgb to hex for color picker\n if (color.startsWith('rgba') || color.startsWith('rgb')) {\n const match = color.match(/rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)/);\n if (match) {\n const r = parseInt(match[1]).toString(16).padStart(2, '0');\n const g = parseInt(match[2]).toString(16).padStart(2, '0');\n const b = parseInt(match[3]).toString(16).padStart(2, '0');\n return `#${r}${g}${b}`;\n }\n }\n return color;\n }\n\n private attachEventListeners(): void {\n if (!this.element) return;\n\n // Preset buttons\n this.element.querySelectorAll('.preset-btn').forEach(btn => {\n btn.addEventListener('click', () => {\n const presetName = btn.getAttribute('data-preset');\n if (presetName) {\n this.applyPreset(presetName);\n }\n });\n });\n\n // Color inputs\n this.element.querySelectorAll('input[type=\"color\"], input.color-text').forEach(input => {\n input.addEventListener('input', (e) => {\n const target = e.target as HTMLInputElement;\n const key = target.getAttribute('data-key');\n if (key) {\n this.updateProperty(key, target.value);\n // Sync color picker and text input\n const sibling = target.type === 'color' \n ? target.nextElementSibling as HTMLInputElement\n : target.previousElementSibling as HTMLInputElement;\n if (sibling) {\n sibling.value = target.type === 'color' ? target.value : this.normalizeColor(target.value);\n }\n }\n });\n });\n\n // Export button\n this.element.querySelector('.export-btn')?.addEventListener('click', () => {\n const json = this.exportTheme();\n navigator.clipboard?.writeText(json).then(() => {\n });\n });\n\n // Import button\n this.element.querySelector('.import-btn')?.addEventListener('click', () => {\n const json = prompt('Paste theme JSON:');\n if (json) {\n this.importTheme(json);\n }\n });\n }\n}\n\n// ============================================\n// Convenience Functions\n// ============================================\n\n/**\n * Create a theme editor instance\n */\nexport function createThemeEditor(\n container: HTMLElement,\n options?: ThemeEditorOptions\n): ThemeEditor {\n return new ThemeEditor(container, options);\n}\n\n/**\n * Get a preset theme by name\n */\nexport function getPresetTheme(name: string): EditorTheme | undefined {\n const preset = THEME_PRESETS.find(p => p.name.toLowerCase() === name.toLowerCase());\n return preset ? { ...preset.theme } : undefined;\n}\n\n/**\n * Get all preset names\n */\nexport function getPresetNames(): string[] {\n return THEME_PRESETS.map(p => p.name);\n}\n","/**\n * Sci Plot - Theme Editor Plugin\n * \n * Provides a visual interface for editing chart themes in real-time.\n * \n * @module plugins/theme-editor\n */\n\nimport { ThemeEditor } from \"../../core/theme-editor\";\nimport type { EditorTheme, ThemePreset } from \"../../core/theme-editor\";\nimport type { PluginManifest, ChartPlugin, PluginContext } from \"../types\";\n\nexport interface PluginThemeEditorConfig {\n /** Initial theme to edit */\n initialTheme?: string;\n /** Position in the UI */\n position?: \"left\" | \"right\";\n}\n\nconst manifestThemeEditor: PluginManifest = {\n name: \"velo-plot-theme-editor\",\n version: \"1.0.0\",\n description: \"Visual theme editor for velo-plot\",\n provides: [\"ui\", \"theme\"],\n tags: [\"theme\", \"editor\", \"styling\", \"ui\"],\n};\n\n/**\n * SciPlot Theme Editor Plugin\n * \n * Adds a visual panel to customize chart colors and styles.\n */\nexport function PluginThemeEditor(_config: PluginThemeEditorConfig = {}): ChartPlugin<PluginThemeEditorConfig> {\n return {\n manifest: manifestThemeEditor,\n\n onInit(_ctx: PluginContext) {\n },\n\n onDestroy(_ctx: PluginContext) {\n }\n };\n}\n\nexport { ThemeEditor };\nexport type { EditorTheme, ThemePreset };\nexport default PluginThemeEditor;\n"],"names":["THEME_COLOR_GROUPS","THEME_PRESETS","ThemeEditor","container","options","__publicField","theme","key","value","_a","_b","json","e","name","p","preset","obj","path","keys","current","i","presetButtons","c","colorGroups","group","colorInputs","color","match","r","g","b","btn","presetName","input","target","sibling","createThemeEditor","getPresetTheme","getPresetNames","manifestThemeEditor","PluginThemeEditor","_config","_ctx"],"mappings":"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"}