@forgecharts/sdk 1.1.27 → 1.1.29

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 (356) hide show
  1. package/dist/__tests__/backwardCompatibility.test.d.ts +14 -0
  2. package/dist/__tests__/backwardCompatibility.test.d.ts.map +1 -0
  3. package/dist/__tests__/candleInvariant.test.d.ts +20 -0
  4. package/dist/__tests__/candleInvariant.test.d.ts.map +1 -0
  5. package/dist/__tests__/public-api-surface.d.ts +13 -0
  6. package/dist/__tests__/public-api-surface.d.ts.map +1 -0
  7. package/dist/__tests__/timeframeBoundary.test.d.ts +17 -0
  8. package/dist/__tests__/timeframeBoundary.test.d.ts.map +1 -0
  9. package/dist/api/DrawingManager.d.ts +20 -0
  10. package/dist/api/DrawingManager.d.ts.map +1 -0
  11. package/dist/api/EventBus.d.ts +19 -0
  12. package/dist/api/EventBus.d.ts.map +1 -0
  13. package/dist/api/IndicatorDAG.d.ts +85 -0
  14. package/dist/api/IndicatorDAG.d.ts.map +1 -0
  15. package/dist/api/IndicatorRegistry.d.ts +22 -0
  16. package/dist/api/IndicatorRegistry.d.ts.map +1 -0
  17. package/dist/api/LayoutManager.d.ts +30 -0
  18. package/dist/api/LayoutManager.d.ts.map +1 -0
  19. package/dist/api/PaneManager.d.ts +42 -0
  20. package/dist/api/PaneManager.d.ts.map +1 -0
  21. package/dist/api/ReferenceAPI.d.ts +78 -0
  22. package/dist/api/ReferenceAPI.d.ts.map +1 -0
  23. package/dist/api/TChart.d.ts +345 -0
  24. package/dist/api/TChart.d.ts.map +1 -0
  25. package/{src/api/createChart.ts → dist/api/createChart.d.ts} +2 -7
  26. package/dist/api/createChart.d.ts.map +1 -0
  27. package/dist/api/drawing tools/fib gann menu/fibRetracement.d.ts +4 -0
  28. package/dist/api/drawing tools/fib gann menu/fibRetracement.d.ts.map +1 -0
  29. package/dist/api/drawing tools/lines menu/crossLine.d.ts +4 -0
  30. package/dist/api/drawing tools/lines menu/crossLine.d.ts.map +1 -0
  31. package/dist/api/drawing tools/lines menu/disjointChannel.d.ts +17 -0
  32. package/dist/api/drawing tools/lines menu/disjointChannel.d.ts.map +1 -0
  33. package/dist/api/drawing tools/lines menu/extendedLine.d.ts +4 -0
  34. package/dist/api/drawing tools/lines menu/extendedLine.d.ts.map +1 -0
  35. package/dist/api/drawing tools/lines menu/flatTopBottom.d.ts +4 -0
  36. package/dist/api/drawing tools/lines menu/flatTopBottom.d.ts.map +1 -0
  37. package/dist/api/drawing tools/lines menu/horizontal.d.ts +4 -0
  38. package/dist/api/drawing tools/lines menu/horizontal.d.ts.map +1 -0
  39. package/dist/api/drawing tools/lines menu/horizontalRay.d.ts +4 -0
  40. package/dist/api/drawing tools/lines menu/horizontalRay.d.ts.map +1 -0
  41. package/dist/api/drawing tools/lines menu/infoLine.d.ts +4 -0
  42. package/dist/api/drawing tools/lines menu/infoLine.d.ts.map +1 -0
  43. package/dist/api/drawing tools/lines menu/insidePitchfork.d.ts +4 -0
  44. package/dist/api/drawing tools/lines menu/insidePitchfork.d.ts.map +1 -0
  45. package/dist/api/drawing tools/lines menu/modifiedSchiffPitchfork.d.ts +4 -0
  46. package/dist/api/drawing tools/lines menu/modifiedSchiffPitchfork.d.ts.map +1 -0
  47. package/dist/api/drawing tools/lines menu/parallelChannel.d.ts +4 -0
  48. package/dist/api/drawing tools/lines menu/parallelChannel.d.ts.map +1 -0
  49. package/dist/api/drawing tools/lines menu/pitchfork.d.ts +4 -0
  50. package/dist/api/drawing tools/lines menu/pitchfork.d.ts.map +1 -0
  51. package/dist/api/drawing tools/lines menu/ray.d.ts +4 -0
  52. package/dist/api/drawing tools/lines menu/ray.d.ts.map +1 -0
  53. package/dist/api/drawing tools/lines menu/regressionTrend.d.ts +4 -0
  54. package/dist/api/drawing tools/lines menu/regressionTrend.d.ts.map +1 -0
  55. package/dist/api/drawing tools/lines menu/schiffPitchfork.d.ts +4 -0
  56. package/dist/api/drawing tools/lines menu/schiffPitchfork.d.ts.map +1 -0
  57. package/dist/api/drawing tools/lines menu/trendAngle.d.ts +4 -0
  58. package/dist/api/drawing tools/lines menu/trendAngle.d.ts.map +1 -0
  59. package/dist/api/drawing tools/lines menu/trendline.d.ts +4 -0
  60. package/dist/api/drawing tools/lines menu/trendline.d.ts.map +1 -0
  61. package/dist/api/drawing tools/lines menu/vertical.d.ts +4 -0
  62. package/dist/api/drawing tools/lines menu/vertical.d.ts.map +1 -0
  63. package/{src/api/drawing tools/pointers menu/crosshair.ts → dist/api/drawing tools/pointers menu/crosshair.d.ts } +8 -9
  64. package/dist/api/drawing tools/pointers menu/crosshair.d.ts.map +1 -0
  65. package/dist/api/drawing tools/pointers menu/cursor.d.ts +15 -0
  66. package/dist/api/drawing tools/pointers menu/cursor.d.ts.map +1 -0
  67. package/{src/api/drawing tools/pointers menu/demonstration.ts → dist/api/drawing tools/pointers menu/demonstration.d.ts } +12 -17
  68. package/dist/api/drawing tools/pointers menu/demonstration.d.ts.map +1 -0
  69. package/{src/api/drawing tools/pointers menu/dot.ts → dist/api/drawing tools/pointers menu/dot.d.ts } +10 -13
  70. package/dist/api/drawing tools/pointers menu/dot.d.ts.map +1 -0
  71. package/dist/api/drawing tools/shapes menu/rectangle.d.ts +4 -0
  72. package/dist/api/drawing tools/shapes menu/rectangle.d.ts.map +1 -0
  73. package/dist/api/drawing tools/shapes menu/text.d.ts +4 -0
  74. package/dist/api/drawing tools/shapes menu/text.d.ts.map +1 -0
  75. package/dist/api/drawingUtils.d.ts +22 -0
  76. package/dist/api/drawingUtils.d.ts.map +1 -0
  77. package/dist/core/CanvasLayer.d.ts +26 -0
  78. package/dist/core/CanvasLayer.d.ts.map +1 -0
  79. package/dist/core/Chart.d.ts +164 -0
  80. package/dist/core/Chart.d.ts.map +1 -0
  81. package/dist/core/CoordTransform.d.ts +168 -0
  82. package/dist/core/CoordTransform.d.ts.map +1 -0
  83. package/dist/core/Crosshair.d.ts +30 -0
  84. package/dist/core/Crosshair.d.ts.map +1 -0
  85. package/dist/core/IndicatorEngine.d.ts +51 -0
  86. package/dist/core/IndicatorEngine.d.ts.map +1 -0
  87. package/dist/core/InteractionManager.d.ts +197 -0
  88. package/dist/core/InteractionManager.d.ts.map +1 -0
  89. package/dist/core/PriceScale.d.ts +27 -0
  90. package/dist/core/PriceScale.d.ts.map +1 -0
  91. package/dist/core/Series.d.ts +40 -0
  92. package/dist/core/Series.d.ts.map +1 -0
  93. package/dist/core/TimeScale.d.ts +43 -0
  94. package/dist/core/TimeScale.d.ts.map +1 -0
  95. package/dist/datafeed/DatafeedConnector.d.ts +89 -0
  96. package/dist/datafeed/DatafeedConnector.d.ts.map +1 -0
  97. package/dist/engine/CandleEngine.d.ts +207 -0
  98. package/dist/engine/CandleEngine.d.ts.map +1 -0
  99. package/dist/engine/__tests__/CandleEngine.test.d.ts +2 -0
  100. package/dist/engine/__tests__/CandleEngine.test.d.ts.map +1 -0
  101. package/dist/engine/candleInvariants.d.ts +66 -0
  102. package/dist/engine/candleInvariants.d.ts.map +1 -0
  103. package/{src/engine/mergeUtils.ts → dist/engine/mergeUtils.d.ts} +15 -52
  104. package/dist/engine/mergeUtils.d.ts.map +1 -0
  105. package/dist/engine/timeframeUtils.d.ts +80 -0
  106. package/dist/engine/timeframeUtils.d.ts.map +1 -0
  107. package/dist/index.d.ts +40 -0
  108. package/dist/index.d.ts.map +1 -0
  109. package/dist/index.js +8101 -0
  110. package/dist/index.js.map +1 -0
  111. package/{src/internal.ts → dist/internal.d.ts} +1 -13
  112. package/dist/internal.d.ts.map +1 -0
  113. package/dist/internal.js +8852 -0
  114. package/dist/internal.js.map +1 -0
  115. package/dist/licensing/ChartRuntimeResolver.d.ts +233 -0
  116. package/dist/licensing/ChartRuntimeResolver.d.ts.map +1 -0
  117. package/dist/licensing/LicenseManager.d.ts +55 -0
  118. package/dist/licensing/LicenseManager.d.ts.map +1 -0
  119. package/dist/licensing/__tests__/ChartRuntimeResolver.test.d.ts +13 -0
  120. package/dist/licensing/__tests__/ChartRuntimeResolver.test.d.ts.map +1 -0
  121. package/dist/licensing/__tests__/LicenseManager.test.d.ts +12 -0
  122. package/dist/licensing/__tests__/LicenseManager.test.d.ts.map +1 -0
  123. package/dist/licensing/licenseTypes.d.ts +18 -0
  124. package/dist/licensing/licenseTypes.d.ts.map +1 -0
  125. package/dist/pine/PineCompiler.d.ts +35 -0
  126. package/dist/pine/PineCompiler.d.ts.map +1 -0
  127. package/dist/pine/diagnostics.d.ts +20 -0
  128. package/dist/pine/diagnostics.d.ts.map +1 -0
  129. package/{src/pine/index.ts → dist/pine/index.d.ts} +4 -3
  130. package/dist/pine/index.d.ts.map +1 -0
  131. package/dist/pine/pine-ast.d.ts +142 -0
  132. package/dist/pine/pine-ast.d.ts.map +1 -0
  133. package/dist/pine/pine-lexer.d.ts +41 -0
  134. package/dist/pine/pine-lexer.d.ts.map +1 -0
  135. package/dist/pine/pine-parser.d.ts +51 -0
  136. package/dist/pine/pine-parser.d.ts.map +1 -0
  137. package/dist/pine/pine-transpiler.d.ts +33 -0
  138. package/dist/pine/pine-transpiler.d.ts.map +1 -0
  139. package/dist/pixi/LayerName.d.ts +18 -0
  140. package/dist/pixi/LayerName.d.ts.map +1 -0
  141. package/dist/pixi/PixiCandlestickRenderer.d.ts +23 -0
  142. package/dist/pixi/PixiCandlestickRenderer.d.ts.map +1 -0
  143. package/dist/pixi/PixiChart.d.ts +72 -0
  144. package/dist/pixi/PixiChart.d.ts.map +1 -0
  145. package/dist/pixi/PixiCrosshairRenderer.d.ts +29 -0
  146. package/dist/pixi/PixiCrosshairRenderer.d.ts.map +1 -0
  147. package/dist/pixi/PixiDrawingRenderer.d.ts +17 -0
  148. package/dist/pixi/PixiDrawingRenderer.d.ts.map +1 -0
  149. package/dist/pixi/PixiGridRenderer.d.ts +22 -0
  150. package/dist/pixi/PixiGridRenderer.d.ts.map +1 -0
  151. package/dist/pixi/PixiLayerManager.d.ts +56 -0
  152. package/dist/pixi/PixiLayerManager.d.ts.map +1 -0
  153. package/dist/react/canvas/ChartCanvas.d.ts +85 -0
  154. package/dist/react/canvas/ChartCanvas.d.ts.map +1 -0
  155. package/dist/react/canvas/ChartContextMenu.d.ts +18 -0
  156. package/dist/react/canvas/ChartContextMenu.d.ts.map +1 -0
  157. package/dist/react/canvas/ChartSettingsDialog.d.ts +25 -0
  158. package/dist/react/canvas/ChartSettingsDialog.d.ts.map +1 -0
  159. package/dist/react/canvas/IndicatorLabel.d.ts +21 -0
  160. package/dist/react/canvas/IndicatorLabel.d.ts.map +1 -0
  161. package/dist/react/canvas/IndicatorPane.d.ts +32 -0
  162. package/dist/react/canvas/IndicatorPane.d.ts.map +1 -0
  163. package/dist/react/canvas/PointerOverlay.d.ts +23 -0
  164. package/dist/react/canvas/PointerOverlay.d.ts.map +1 -0
  165. package/dist/react/canvas/toolbars/LeftToolbar.d.ts +19 -0
  166. package/dist/react/canvas/toolbars/LeftToolbar.d.ts.map +1 -0
  167. package/dist/react/hooks/useChartCapabilities.d.ts +21 -0
  168. package/dist/react/hooks/useChartCapabilities.d.ts.map +1 -0
  169. package/{src/react/index.ts → dist/react/index.d.ts} +2 -23
  170. package/dist/react/index.d.ts.map +1 -0
  171. package/dist/react/index.js +11559 -0
  172. package/dist/react/index.js.map +1 -0
  173. package/{src/react/internal.ts → dist/react/internal.d.ts} +2 -26
  174. package/dist/react/internal.d.ts.map +1 -0
  175. package/dist/react/internal.js +12148 -0
  176. package/dist/react/internal.js.map +1 -0
  177. package/dist/react/shell/ManagedAppShell.d.ts +91 -0
  178. package/dist/react/shell/ManagedAppShell.d.ts.map +1 -0
  179. package/dist/react/trading/TradingBridge.d.ts +86 -0
  180. package/dist/react/trading/TradingBridge.d.ts.map +1 -0
  181. package/dist/react/workspace/ChartWorkspace.d.ts +73 -0
  182. package/dist/react/workspace/ChartWorkspace.d.ts.map +1 -0
  183. package/dist/react/workspace/FloatingPanel.d.ts +18 -0
  184. package/dist/react/workspace/FloatingPanel.d.ts.map +1 -0
  185. package/dist/react/workspace/IndicatorsDialog.d.ts +8 -0
  186. package/dist/react/workspace/IndicatorsDialog.d.ts.map +1 -0
  187. package/dist/react/workspace/LayoutMenu.d.ts +33 -0
  188. package/dist/react/workspace/LayoutMenu.d.ts.map +1 -0
  189. package/dist/react/workspace/SymbolSearchDialog.d.ts +10 -0
  190. package/dist/react/workspace/SymbolSearchDialog.d.ts.map +1 -0
  191. package/dist/react/workspace/TabBar.d.ts +17 -0
  192. package/dist/react/workspace/TabBar.d.ts.map +1 -0
  193. package/dist/react/workspace/toolbars/BottomToolbar.d.ts +19 -0
  194. package/dist/react/workspace/toolbars/BottomToolbar.d.ts.map +1 -0
  195. package/dist/react/workspace/toolbars/RightToolbar.d.ts +8 -0
  196. package/dist/react/workspace/toolbars/RightToolbar.d.ts.map +1 -0
  197. package/dist/react/workspace/toolbars/TopToolbar.d.ts +41 -0
  198. package/dist/react/workspace/toolbars/TopToolbar.d.ts.map +1 -0
  199. package/dist/renderers/CandlestickRenderer.d.ts +13 -0
  200. package/dist/renderers/CandlestickRenderer.d.ts.map +1 -0
  201. package/dist/renderers/HistogramRenderer.d.ts +11 -0
  202. package/dist/renderers/HistogramRenderer.d.ts.map +1 -0
  203. package/dist/renderers/LineRenderer.d.ts +12 -0
  204. package/dist/renderers/LineRenderer.d.ts.map +1 -0
  205. package/dist/theme/colors.d.ts +4 -0
  206. package/dist/theme/colors.d.ts.map +1 -0
  207. package/dist/tools/barDivergenceCheck.d.ts +120 -0
  208. package/dist/tools/barDivergenceCheck.d.ts.map +1 -0
  209. package/dist/trading/TradingOverlayStore.d.ts +86 -0
  210. package/dist/trading/TradingOverlayStore.d.ts.map +1 -0
  211. package/dist/trading/UnmanagedIngestion.d.ts +91 -0
  212. package/dist/trading/UnmanagedIngestion.d.ts.map +1 -0
  213. package/dist/trading/__tests__/ManagedTradingController.test.d.ts +18 -0
  214. package/dist/trading/__tests__/ManagedTradingController.test.d.ts.map +1 -0
  215. package/dist/trading/__tests__/TradingOverlayStore.test.d.ts +16 -0
  216. package/dist/trading/__tests__/TradingOverlayStore.test.d.ts.map +1 -0
  217. package/dist/trading/__tests__/UnmanagedIngestion.test.d.ts +16 -0
  218. package/dist/trading/__tests__/UnmanagedIngestion.test.d.ts.map +1 -0
  219. package/dist/trading/managed/ManagedTradingController.d.ts +110 -0
  220. package/dist/trading/managed/ManagedTradingController.d.ts.map +1 -0
  221. package/dist/trading/managed/managedCapabilities.d.ts +45 -0
  222. package/dist/trading/managed/managedCapabilities.d.ts.map +1 -0
  223. package/dist/trading/managed/managedTypes.d.ts +122 -0
  224. package/dist/trading/managed/managedTypes.d.ts.map +1 -0
  225. package/dist/trading/tradingTypes.d.ts +89 -0
  226. package/dist/trading/tradingTypes.d.ts.map +1 -0
  227. package/dist/tscript/TScriptIndicator.d.ts +41 -0
  228. package/dist/tscript/TScriptIndicator.d.ts.map +1 -0
  229. package/dist/tscript/ast.d.ts +89 -0
  230. package/dist/tscript/ast.d.ts.map +1 -0
  231. package/dist/tscript/lexer.d.ts +36 -0
  232. package/dist/tscript/lexer.d.ts.map +1 -0
  233. package/dist/tscript/parser.d.ts +50 -0
  234. package/dist/tscript/parser.d.ts.map +1 -0
  235. package/dist/tscript/runtime.d.ts +123 -0
  236. package/dist/tscript/runtime.d.ts.map +1 -0
  237. package/dist/tscript/series.d.ts +49 -0
  238. package/dist/tscript/series.d.ts.map +1 -0
  239. package/dist/types/IChart.d.ts +48 -0
  240. package/dist/types/IChart.d.ts.map +1 -0
  241. package/{src/types/IRenderer.ts → dist/types/IRenderer.d.ts} +2 -8
  242. package/dist/types/IRenderer.d.ts.map +1 -0
  243. package/dist/types/ISeries.d.ts +26 -0
  244. package/dist/types/ISeries.d.ts.map +1 -0
  245. package/package.json +5 -1
  246. package/src/__tests__/backwardCompatibility.test.ts +0 -191
  247. package/src/__tests__/candleInvariant.test.ts +0 -500
  248. package/src/__tests__/public-api-surface.ts +0 -76
  249. package/src/__tests__/timeframeBoundary.test.ts +0 -583
  250. package/src/api/DrawingManager.ts +0 -188
  251. package/src/api/EventBus.ts +0 -53
  252. package/src/api/IndicatorDAG.ts +0 -389
  253. package/src/api/IndicatorRegistry.ts +0 -47
  254. package/src/api/LayoutManager.ts +0 -72
  255. package/src/api/PaneManager.ts +0 -129
  256. package/src/api/ReferenceAPI.ts +0 -195
  257. package/src/api/TChart.ts +0 -881
  258. package/src/api/drawing tools/fib gann menu/fibRetracement.ts +0 -27
  259. package/src/api/drawing tools/lines menu/crossLine.ts +0 -21
  260. package/src/api/drawing tools/lines menu/disjointChannel.ts +0 -74
  261. package/src/api/drawing tools/lines menu/extendedLine.ts +0 -22
  262. package/src/api/drawing tools/lines menu/flatTopBottom.ts +0 -45
  263. package/src/api/drawing tools/lines menu/horizontal.ts +0 -24
  264. package/src/api/drawing tools/lines menu/horizontalRay.ts +0 -25
  265. package/src/api/drawing tools/lines menu/infoLine.ts +0 -127
  266. package/src/api/drawing tools/lines menu/insidePitchfork.ts +0 -21
  267. package/src/api/drawing tools/lines menu/modifiedSchiffPitchfork.ts +0 -18
  268. package/src/api/drawing tools/lines menu/parallelChannel.ts +0 -47
  269. package/src/api/drawing tools/lines menu/pitchfork.ts +0 -15
  270. package/src/api/drawing tools/lines menu/ray.ts +0 -28
  271. package/src/api/drawing tools/lines menu/regressionTrend.ts +0 -157
  272. package/src/api/drawing tools/lines menu/schiffPitchfork.ts +0 -18
  273. package/src/api/drawing tools/lines menu/trendAngle.ts +0 -64
  274. package/src/api/drawing tools/lines menu/trendline.ts +0 -16
  275. package/src/api/drawing tools/lines menu/vertical.ts +0 -16
  276. package/src/api/drawing tools/pointers menu/cursor.ts +0 -16
  277. package/src/api/drawing tools/shapes menu/rectangle.ts +0 -24
  278. package/src/api/drawing tools/shapes menu/text.ts +0 -30
  279. package/src/api/drawingUtils.ts +0 -82
  280. package/src/core/CanvasLayer.ts +0 -77
  281. package/src/core/Chart.ts +0 -917
  282. package/src/core/CoordTransform.ts +0 -282
  283. package/src/core/Crosshair.ts +0 -207
  284. package/src/core/IndicatorEngine.ts +0 -216
  285. package/src/core/InteractionManager.ts +0 -899
  286. package/src/core/PriceScale.ts +0 -133
  287. package/src/core/Series.ts +0 -132
  288. package/src/core/TimeScale.ts +0 -175
  289. package/src/datafeed/DatafeedConnector.ts +0 -300
  290. package/src/engine/CandleEngine.ts +0 -458
  291. package/src/engine/__tests__/CandleEngine.test.ts +0 -402
  292. package/src/engine/candleInvariants.ts +0 -172
  293. package/src/engine/timeframeUtils.ts +0 -118
  294. package/src/index.ts +0 -190
  295. package/src/licensing/ChartRuntimeResolver.ts +0 -380
  296. package/src/licensing/LicenseManager.ts +0 -131
  297. package/src/licensing/__tests__/ChartRuntimeResolver.test.ts +0 -207
  298. package/src/licensing/__tests__/LicenseManager.test.ts +0 -180
  299. package/src/licensing/licenseTypes.ts +0 -19
  300. package/src/pine/PineCompiler.ts +0 -68
  301. package/src/pine/diagnostics.ts +0 -30
  302. package/src/pine/pine-ast.ts +0 -163
  303. package/src/pine/pine-lexer.ts +0 -265
  304. package/src/pine/pine-parser.ts +0 -439
  305. package/src/pine/pine-transpiler.ts +0 -301
  306. package/src/pixi/LayerName.ts +0 -35
  307. package/src/pixi/PixiCandlestickRenderer.ts +0 -125
  308. package/src/pixi/PixiChart.ts +0 -425
  309. package/src/pixi/PixiCrosshairRenderer.ts +0 -134
  310. package/src/pixi/PixiDrawingRenderer.ts +0 -121
  311. package/src/pixi/PixiGridRenderer.ts +0 -136
  312. package/src/pixi/PixiLayerManager.ts +0 -102
  313. package/src/react/canvas/ChartCanvas.tsx +0 -984
  314. package/src/react/canvas/ChartContextMenu.tsx +0 -60
  315. package/src/react/canvas/ChartSettingsDialog.tsx +0 -133
  316. package/src/react/canvas/IndicatorLabel.tsx +0 -347
  317. package/src/react/canvas/IndicatorPane.tsx +0 -503
  318. package/src/react/canvas/PointerOverlay.tsx +0 -126
  319. package/src/react/canvas/toolbars/LeftToolbar.tsx +0 -1096
  320. package/src/react/hooks/useChartCapabilities.ts +0 -76
  321. package/src/react/shell/ManagedAppShell.tsx +0 -699
  322. package/src/react/trading/TradingBridge.ts +0 -156
  323. package/src/react/workspace/ChartWorkspace.tsx +0 -228
  324. package/src/react/workspace/FloatingPanel.tsx +0 -131
  325. package/src/react/workspace/IndicatorsDialog.tsx +0 -246
  326. package/src/react/workspace/LayoutMenu.tsx +0 -345
  327. package/src/react/workspace/SymbolSearchDialog.tsx +0 -377
  328. package/src/react/workspace/TabBar.tsx +0 -87
  329. package/src/react/workspace/toolbars/BottomToolbar.tsx +0 -372
  330. package/src/react/workspace/toolbars/RightToolbar.tsx +0 -46
  331. package/src/react/workspace/toolbars/TopToolbar.tsx +0 -431
  332. package/src/renderers/CandlestickRenderer.ts +0 -130
  333. package/src/renderers/HistogramRenderer.ts +0 -63
  334. package/src/renderers/LineRenderer.ts +0 -77
  335. package/src/theme/colors.ts +0 -21
  336. package/src/tools/barDivergenceCheck.ts +0 -305
  337. package/src/trading/TradingOverlayStore.ts +0 -161
  338. package/src/trading/UnmanagedIngestion.ts +0 -156
  339. package/src/trading/__tests__/ManagedTradingController.test.ts +0 -338
  340. package/src/trading/__tests__/TradingOverlayStore.test.ts +0 -323
  341. package/src/trading/__tests__/UnmanagedIngestion.test.ts +0 -205
  342. package/src/trading/managed/ManagedTradingController.ts +0 -292
  343. package/src/trading/managed/managedCapabilities.ts +0 -98
  344. package/src/trading/managed/managedTypes.ts +0 -151
  345. package/src/trading/tradingTypes.ts +0 -135
  346. package/src/tscript/TScriptIndicator.ts +0 -54
  347. package/src/tscript/ast.ts +0 -105
  348. package/src/tscript/lexer.ts +0 -190
  349. package/src/tscript/parser.ts +0 -334
  350. package/src/tscript/runtime.ts +0 -525
  351. package/src/tscript/series.ts +0 -84
  352. package/src/types/IChart.ts +0 -56
  353. package/src/types/ISeries.ts +0 -30
  354. package/tsconfig.json +0 -23
  355. package/tsup.config.ts +0 -16
  356. package/vitest.config.ts +0 -25
@@ -1,60 +0,0 @@
1
- /**
2
- * ChartContextMenu — right-click context menu for the chart canvas.
3
- *
4
- * Placed at fixed (x, y) on screen. Clicking outside dismisses it via the
5
- * transparent backdrop. The parent is responsible for calling onClose.
6
- */
7
-
8
- type Props = {
9
- x: number;
10
- y: number;
11
- onClose: () => void;
12
- onSettings: () => void;
13
- onClearDrawings: () => void;
14
- onClearIndicators: () => void;
15
- onResetView: () => void;
16
- };
17
-
18
- export function ChartContextMenu({
19
- x,
20
- y,
21
- onClose,
22
- onSettings,
23
- onClearDrawings,
24
- onClearIndicators,
25
- onResetView,
26
- }: Props) {
27
- return (
28
- <>
29
- <div className="chart-ctx-backdrop" onClick={onClose} onContextMenu={(e) => { e.preventDefault(); onClose(); }} />
30
- <div className="chart-ctx-menu" style={{ left: x, top: y }}>
31
- <button
32
- className="chart-ctx-item"
33
- onClick={() => { onSettings(); onClose(); }}
34
- >
35
- Settings…
36
- </button>
37
- <div className="chart-ctx-divider" />
38
- <button
39
- className="chart-ctx-item"
40
- onClick={() => { onResetView(); onClose(); }}
41
- >
42
- Reset Chart View
43
- </button>
44
- <div className="chart-ctx-divider" />
45
- <button
46
- className="chart-ctx-item chart-ctx-item--danger"
47
- onClick={() => { onClearIndicators(); onClose(); }}
48
- >
49
- Clear Indicators
50
- </button>
51
- <button
52
- className="chart-ctx-item chart-ctx-item--danger"
53
- onClick={() => { onClearDrawings(); onClose(); }}
54
- >
55
- Clear Drawings
56
- </button>
57
- </div>
58
- </>
59
- );
60
- }
@@ -1,133 +0,0 @@
1
- /**
2
- * ChartSettingsDialog — canvas settings modal.
3
- *
4
- * Sections (sidebar nav):
5
- * • Canvas — background color, grid visibility, grid color
6
- *
7
- * Additional sections can be added by extending SECTIONS and adding a matching
8
- * content renderer in renderContent().
9
- *
10
- * The parent passes `initialSettings` and receives the final values via `onApply`.
11
- * Nothing is persisted here; persistence (localStorage / DB) lives in the parent.
12
- */
13
-
14
- import { useState } from 'react';
15
-
16
- export type CanvasSettings = {
17
- background: string;
18
- gridColor: string;
19
- gridVisible: boolean;
20
- };
21
-
22
- type Section = 'canvas';
23
-
24
- const SECTIONS: { id: Section; label: string }[] = [
25
- { id: 'canvas', label: 'Canvas' },
26
- ];
27
-
28
- type Props = {
29
- initialSettings: CanvasSettings;
30
- onApply: (settings: CanvasSettings) => void;
31
- onClose: () => void;
32
- };
33
-
34
- export function ChartSettingsDialog({ initialSettings, onApply, onClose }: Props) {
35
- const [activeSection, setActiveSection] = useState<Section>('canvas');
36
- const [settings, setSettings] = useState<CanvasSettings>(initialSettings);
37
-
38
- const update = <K extends keyof CanvasSettings>(key: K, value: CanvasSettings[K]) =>
39
- setSettings((prev) => ({ ...prev, [key]: value }));
40
-
41
- const handleApply = () => {
42
- onApply(settings);
43
- onClose();
44
- };
45
-
46
- return (
47
- <div className="csettings-backdrop" onClick={onClose}>
48
- <div className="csettings-dialog" onClick={(e) => e.stopPropagation()}>
49
-
50
- {/* ── Header ──────────────────────────────────────────────────── */}
51
- <div className="csettings-header">
52
- <span className="csettings-title">Chart Settings</span>
53
- <button className="csettings-close" onClick={onClose} aria-label="Close">✕</button>
54
- </div>
55
-
56
- <div className="csettings-body">
57
- {/* ── Sidebar ─────────────────────────────────────────────── */}
58
- <nav className="csettings-sidebar">
59
- {SECTIONS.map(({ id, label }) => (
60
- <button
61
- key={id}
62
- className={`csettings-nav-item${activeSection === id ? ' is-active' : ''}`}
63
- onClick={() => setActiveSection(id)}
64
- >
65
- {label}
66
- </button>
67
- ))}
68
- </nav>
69
-
70
- {/* ── Content ─────────────────────────────────────────────── */}
71
- <div className="csettings-content">
72
- {activeSection === 'canvas' && (
73
- <div className="csettings-section">
74
-
75
- <div className="csettings-row">
76
- <label className="csettings-label">Background</label>
77
- <div className="csettings-color-wrap">
78
- <input
79
- type="color"
80
- className="csettings-color-input"
81
- value={settings.background}
82
- onChange={(e) => update('background', e.target.value)}
83
- />
84
- <span className="csettings-color-hex">{settings.background}</span>
85
- </div>
86
- </div>
87
-
88
- <div className="csettings-row">
89
- <label className="csettings-label">Grid Lines</label>
90
- <label className="csettings-toggle">
91
- <input
92
- type="checkbox"
93
- checked={settings.gridVisible}
94
- onChange={(e) => update('gridVisible', e.target.checked)}
95
- />
96
- <span className="csettings-toggle-track" />
97
- </label>
98
- </div>
99
-
100
- {settings.gridVisible && (
101
- <div className="csettings-row">
102
- <label className="csettings-label">Grid Color</label>
103
- <div className="csettings-color-wrap">
104
- <input
105
- type="color"
106
- className="csettings-color-input"
107
- value={settings.gridColor}
108
- onChange={(e) => update('gridColor', e.target.value)}
109
- />
110
- <span className="csettings-color-hex">{settings.gridColor}</span>
111
- </div>
112
- </div>
113
- )}
114
-
115
- </div>
116
- )}
117
- </div>
118
- </div>
119
-
120
- {/* ── Footer ──────────────────────────────────────────────────── */}
121
- <div className="csettings-footer">
122
- <button className="csettings-btn csettings-btn--ghost" onClick={onClose}>
123
- Cancel
124
- </button>
125
- <button className="csettings-btn csettings-btn--primary" onClick={handleApply}>
126
- Apply
127
- </button>
128
- </div>
129
-
130
- </div>
131
- </div>
132
- );
133
- }
@@ -1,347 +0,0 @@
1
- /**
2
- * IndicatorLabel — hover-menu label rendered over a chart pane.
3
- *
4
- * Shows the indicator display name in the top-left of a pane.
5
- * On hover a gear (configure) and × (remove) button appear inline, giving the
6
- * appearance that the menu is part of the label pill.
7
- */
8
-
9
- import { useState } from 'react';
10
- import type { IndicatorConfig, IndicatorInstance } from '@forgecharts/types';
11
-
12
- // ─── Script title extractor ────────────────────────────────────────────────────
13
-
14
- function _scriptTitle(src: string): string {
15
- const m = src.match(/indicator\s*\(\s*["']([^"']+)["']/);
16
- return m ? m[1]! : 'Script';
17
- }
18
-
19
- // ─── Display name helper ──────────────────────────────────────────────────────
20
-
21
- export function indicatorDisplayName(config: IndicatorConfig): string {
22
- const p = (config.params ?? {}) as Record<string, unknown>;
23
- switch (config.type) {
24
- case 'sma': return `SMA(${p['period'] ?? 20})`;
25
- case 'ema': return `EMA(${p['period'] ?? 20})`;
26
- case 'wma': return `WMA(${p['period'] ?? 20})`;
27
- case 'rsi': return `RSI(${p['period'] ?? 14})`;
28
- case 'macd': return `MACD(${p['fast'] ?? 12},${p['slow'] ?? 26},${p['signal'] ?? 9})`;
29
- case 'bbands': return `BB(${p['period'] ?? 20},${p['multiplier'] ?? 2})`;
30
- case 'stochastic': return `Stoch(${p['k'] ?? 14},${p['d'] ?? 3})`;
31
- case 'atr': return `ATR(${p['period'] ?? 14})`;
32
- case 'obv': return 'OBV';
33
- case 'volume': return 'Volume';
34
- case 'script': return config.script ? _scriptTitle(config.script) : 'Script';
35
- default: return (config.type as string).toUpperCase();
36
- }
37
- }
38
-
39
- // ─── Param definitions for config dialog ─────────────────────────────────────
40
-
41
- type ParamDef = { key: string; label: string; min?: number; step?: number };
42
-
43
- const PARAM_DEFS: Record<string, ParamDef[]> = {
44
- sma: [{ key: 'period', label: 'Period', min: 1 }],
45
- ema: [{ key: 'period', label: 'Period', min: 1 }],
46
- wma: [{ key: 'period', label: 'Period', min: 1 }],
47
- rsi: [{ key: 'period', label: 'Period', min: 1 }],
48
- macd: [
49
- { key: 'fast', label: 'Fast', min: 1 },
50
- { key: 'slow', label: 'Slow', min: 1 },
51
- { key: 'signal', label: 'Signal', min: 1 },
52
- ],
53
- bbands: [
54
- { key: 'period', label: 'Period', min: 1 },
55
- { key: 'multiplier', label: 'Multiplier', min: 0.1, step: 0.1 },
56
- ],
57
- stochastic: [
58
- { key: 'k', label: 'K Period', min: 1 },
59
- { key: 'd', label: 'D Period', min: 1 },
60
- ],
61
- atr: [{ key: 'period', label: 'Period', min: 1 }],
62
- };
63
-
64
- // ─── IndicatorLabel ────────────────────────────────────────────────────────────
65
-
66
- export function IndicatorLabel({
67
- indicator,
68
- color,
69
- onRemove,
70
- onConfigure,
71
- }: {
72
- indicator: IndicatorInstance;
73
- color?: string;
74
- onRemove: () => void;
75
- onConfigure: () => void;
76
- }) {
77
- const [hovered, setHovered] = useState(false);
78
- const name = indicatorDisplayName(indicator.config);
79
- const hasDefs = Boolean(PARAM_DEFS[indicator.config.type]);
80
-
81
- const btnStyle: React.CSSProperties = {
82
- display: 'flex',
83
- alignItems: 'center',
84
- justifyContent: 'center',
85
- width: 18,
86
- height: '100%',
87
- border: 'none',
88
- borderLeft: '1px solid rgba(255,255,255,0.08)',
89
- background: 'transparent',
90
- color: '#787b86',
91
- cursor: 'pointer',
92
- fontSize: 10,
93
- padding: 0,
94
- lineHeight: 1,
95
- flexShrink: 0,
96
- };
97
-
98
- return (
99
- <div
100
- style={{
101
- display: 'inline-flex',
102
- alignItems: 'stretch',
103
- height: 18,
104
- borderRadius: 3,
105
- overflow: 'hidden',
106
- background: 'rgba(0,0,0,0.5)',
107
- cursor: 'default',
108
- userSelect: 'none',
109
- }}
110
- onMouseEnter={() => setHovered(true)}
111
- onMouseLeave={() => setHovered(false)}
112
- >
113
- {/* Name */}
114
- <span
115
- style={{
116
- color: color ?? '#d1d4dc',
117
- fontSize: 11,
118
- fontFamily: '-apple-system, BlinkMacSystemFont, sans-serif',
119
- fontWeight: 500,
120
- padding: '0 5px',
121
- display: 'flex',
122
- alignItems: 'center',
123
- }}
124
- >
125
- {name}
126
- </span>
127
-
128
- {/* Hover actions */}
129
- {hovered && (
130
- <>
131
- {hasDefs && (
132
- <button
133
- onClick={(e) => { e.stopPropagation(); onConfigure(); }}
134
- title="Configure"
135
- style={btnStyle}
136
- >
137
-
138
- </button>
139
- )}
140
- <button
141
- onClick={(e) => { e.stopPropagation(); onRemove(); }}
142
- title="Remove"
143
- style={{ ...btnStyle, borderRadius: '0 3px 3px 0' }}
144
- >
145
-
146
- </button>
147
- </>
148
- )}
149
- </div>
150
- );
151
- }
152
-
153
- // ─── IndicatorConfigDialog ─────────────────────────────────────────────────────
154
-
155
- export function IndicatorConfigDialog({
156
- indicator,
157
- onSave,
158
- onClose,
159
- }: {
160
- indicator: IndicatorInstance;
161
- onSave: (newConfig: IndicatorConfig) => void;
162
- onClose: () => void;
163
- }) {
164
- const defs = PARAM_DEFS[indicator.config.type] ?? [];
165
- const [values, setValues] = useState<Record<string, string>>(() => {
166
- const p = (indicator.config.params ?? {}) as Record<string, unknown>;
167
- return Object.fromEntries(defs.map((d) => [d.key, String(p[d.key] ?? '')]));
168
- });
169
-
170
- const handleSave = () => {
171
- const newParams: Record<string, number | string | boolean> = {
172
- ...(indicator.config.params ?? {}),
173
- };
174
- for (const def of defs) {
175
- const v = parseFloat(values[def.key] ?? '');
176
- if (!isNaN(v)) newParams[def.key] = v;
177
- }
178
- onSave({ ...indicator.config, params: newParams });
179
- };
180
-
181
- const name = indicatorDisplayName(indicator.config);
182
-
183
- return (
184
- <div
185
- style={{
186
- position: 'fixed',
187
- inset: 0,
188
- zIndex: 1000,
189
- display: 'flex',
190
- alignItems: 'center',
191
- justifyContent: 'center',
192
- }}
193
- >
194
- {/* Backdrop */}
195
- <div
196
- onClick={onClose}
197
- style={{ position: 'absolute', inset: 0, background: 'rgba(0,0,0,0.55)' }}
198
- />
199
-
200
- {/* Panel */}
201
- <div
202
- style={{
203
- position: 'relative',
204
- background: '#1c2030',
205
- border: '1px solid #2a2e39',
206
- borderRadius: 8,
207
- padding: '20px 24px',
208
- minWidth: 280,
209
- zIndex: 1,
210
- boxShadow: '0 8px 32px rgba(0,0,0,0.6)',
211
- }}
212
- >
213
- {/* Header */}
214
- <div
215
- style={{
216
- display: 'flex',
217
- alignItems: 'center',
218
- justifyContent: 'space-between',
219
- marginBottom: 20,
220
- }}
221
- >
222
- <span
223
- style={{
224
- color: '#d1d4dc',
225
- fontSize: 14,
226
- fontWeight: 600,
227
- fontFamily: '-apple-system, BlinkMacSystemFont, sans-serif',
228
- }}
229
- >
230
- {name}
231
- </span>
232
- <button
233
- onClick={onClose}
234
- style={{
235
- background: 'transparent',
236
- border: 'none',
237
- color: '#787b86',
238
- cursor: 'pointer',
239
- fontSize: 16,
240
- lineHeight: 1,
241
- padding: 0,
242
- }}
243
- >
244
-
245
- </button>
246
- </div>
247
-
248
- {/* Fields */}
249
- {defs.map((def) => (
250
- <div key={def.key} style={{ marginBottom: 14 }}>
251
- <label
252
- style={{
253
- display: 'block',
254
- color: '#787b86',
255
- fontSize: 11,
256
- marginBottom: 4,
257
- textTransform: 'uppercase',
258
- letterSpacing: '0.05em',
259
- fontFamily: '-apple-system, BlinkMacSystemFont, sans-serif',
260
- }}
261
- >
262
- {def.label}
263
- </label>
264
- <input
265
- type="number"
266
- value={values[def.key] ?? ''}
267
- min={def.min}
268
- step={def.step ?? 1}
269
- onChange={(e) =>
270
- setValues((v) => ({ ...v, [def.key]: e.target.value }))
271
- }
272
- style={{
273
- width: '100%',
274
- background: '#131722',
275
- border: '1px solid #2a2e39',
276
- borderRadius: 4,
277
- padding: '6px 8px',
278
- color: '#d1d4dc',
279
- fontSize: 13,
280
- outline: 'none',
281
- boxSizing: 'border-box',
282
- fontFamily: '-apple-system, BlinkMacSystemFont, sans-serif',
283
- }}
284
- />
285
- </div>
286
- ))}
287
-
288
- {defs.length === 0 && (
289
- <p
290
- style={{
291
- color: '#787b86',
292
- fontSize: 12,
293
- margin: '0 0 16px',
294
- fontFamily: '-apple-system, BlinkMacSystemFont, sans-serif',
295
- }}
296
- >
297
- No configurable parameters.
298
- </p>
299
- )}
300
-
301
- {/* Actions */}
302
- <div
303
- style={{
304
- display: 'flex',
305
- gap: 8,
306
- justifyContent: 'flex-end',
307
- marginTop: defs.length > 0 ? 8 : 0,
308
- }}
309
- >
310
- <button
311
- onClick={onClose}
312
- style={{
313
- background: 'transparent',
314
- border: '1px solid #2a2e39',
315
- borderRadius: 4,
316
- color: '#787b86',
317
- padding: '6px 16px',
318
- cursor: 'pointer',
319
- fontSize: 13,
320
- fontFamily: '-apple-system, BlinkMacSystemFont, sans-serif',
321
- }}
322
- >
323
- Cancel
324
- </button>
325
- {defs.length > 0 && (
326
- <button
327
- onClick={handleSave}
328
- style={{
329
- background: '#2962ff',
330
- border: 'none',
331
- borderRadius: 4,
332
- color: '#fff',
333
- padding: '6px 16px',
334
- cursor: 'pointer',
335
- fontSize: 13,
336
- fontWeight: 500,
337
- fontFamily: '-apple-system, BlinkMacSystemFont, sans-serif',
338
- }}
339
- >
340
- Apply
341
- </button>
342
- )}
343
- </div>
344
- </div>
345
- </div>
346
- );
347
- }