@forgecharts/sdk 1.2.1 → 1.2.5

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 (293) hide show
  1. package/dist/Omne-YBWT34SS.png +0 -0
  2. package/dist/Rithmic-CDB4YQEZ.png +0 -0
  3. package/dist/api/DrawingManager.d.ts +1 -1
  4. package/dist/api/DrawingManager.d.ts.map +1 -1
  5. package/dist/api/IndicatorDAG.d.ts +22 -0
  6. package/dist/api/IndicatorDAG.d.ts.map +1 -1
  7. package/dist/api/IndicatorRegistry.d.ts +6 -0
  8. package/dist/api/IndicatorRegistry.d.ts.map +1 -1
  9. package/dist/api/LayoutManager.d.ts +3 -1
  10. package/dist/api/LayoutManager.d.ts.map +1 -1
  11. package/dist/api/ReferenceAPI.d.ts +5 -0
  12. package/dist/api/ReferenceAPI.d.ts.map +1 -1
  13. package/dist/api/TChart.d.ts +69 -0
  14. package/dist/api/TChart.d.ts.map +1 -1
  15. package/dist/api/drawing tools/fib gann menu/fibChannel.d.ts +4 -0
  16. package/dist/api/drawing tools/fib gann menu/fibChannel.d.ts.map +1 -0
  17. package/dist/api/drawing tools/fib gann menu/fibCircles.d.ts +4 -0
  18. package/dist/api/drawing tools/fib gann menu/fibCircles.d.ts.map +1 -0
  19. package/dist/api/drawing tools/fib gann menu/fibRetracement.d.ts.map +1 -1
  20. package/dist/api/drawing tools/fib gann menu/fibSpeedResistanceArcs.d.ts +4 -0
  21. package/dist/api/drawing tools/fib gann menu/fibSpeedResistanceArcs.d.ts.map +1 -0
  22. package/dist/api/drawing tools/fib gann menu/fibSpeedResistanceFan.d.ts +4 -0
  23. package/dist/api/drawing tools/fib gann menu/fibSpeedResistanceFan.d.ts.map +1 -0
  24. package/dist/api/drawing tools/fib gann menu/fibSpiral.d.ts +4 -0
  25. package/dist/api/drawing tools/fib gann menu/fibSpiral.d.ts.map +1 -0
  26. package/dist/api/drawing tools/fib gann menu/fibTimeZone.d.ts +4 -0
  27. package/dist/api/drawing tools/fib gann menu/fibTimeZone.d.ts.map +1 -0
  28. package/dist/api/drawing tools/fib gann menu/fibWedge.d.ts +4 -0
  29. package/dist/api/drawing tools/fib gann menu/fibWedge.d.ts.map +1 -0
  30. package/dist/api/drawing tools/fib gann menu/gannBox.d.ts +4 -0
  31. package/dist/api/drawing tools/fib gann menu/gannBox.d.ts.map +1 -0
  32. package/dist/api/drawing tools/fib gann menu/gannFan.d.ts +4 -0
  33. package/dist/api/drawing tools/fib gann menu/gannFan.d.ts.map +1 -0
  34. package/dist/api/drawing tools/fib gann menu/gannSquare.d.ts +4 -0
  35. package/dist/api/drawing tools/fib gann menu/gannSquare.d.ts.map +1 -0
  36. package/dist/api/drawing tools/fib gann menu/gannSquareFixed.d.ts +4 -0
  37. package/dist/api/drawing tools/fib gann menu/gannSquareFixed.d.ts.map +1 -0
  38. package/dist/api/drawing tools/fib gann menu/pitchfan.d.ts +4 -0
  39. package/dist/api/drawing tools/fib gann menu/pitchfan.d.ts.map +1 -0
  40. package/dist/api/drawing tools/fib gann menu/trendBasedFibExtension.d.ts +4 -0
  41. package/dist/api/drawing tools/fib gann menu/trendBasedFibExtension.d.ts.map +1 -0
  42. package/dist/api/drawing tools/fib gann menu/trendBasedFibTime.d.ts +4 -0
  43. package/dist/api/drawing tools/fib gann menu/trendBasedFibTime.d.ts.map +1 -0
  44. package/dist/api/drawing tools/shapes menu/anchoredText.d.ts +7 -0
  45. package/dist/api/drawing tools/shapes menu/anchoredText.d.ts.map +1 -0
  46. package/dist/api/drawing tools/shapes menu/arc.d.ts +8 -0
  47. package/dist/api/drawing tools/shapes menu/arc.d.ts.map +1 -0
  48. package/dist/api/drawing tools/shapes menu/arrow.d.ts +4 -0
  49. package/dist/api/drawing tools/shapes menu/arrow.d.ts.map +1 -0
  50. package/dist/api/drawing tools/shapes menu/arrowDown.d.ts +7 -0
  51. package/dist/api/drawing tools/shapes menu/arrowDown.d.ts.map +1 -0
  52. package/dist/api/drawing tools/shapes menu/arrowUp.d.ts +7 -0
  53. package/dist/api/drawing tools/shapes menu/arrowUp.d.ts.map +1 -0
  54. package/dist/api/drawing tools/shapes menu/callout.d.ts +7 -0
  55. package/dist/api/drawing tools/shapes menu/callout.d.ts.map +1 -0
  56. package/dist/api/drawing tools/shapes menu/dateRange.d.ts +4 -0
  57. package/dist/api/drawing tools/shapes menu/dateRange.d.ts.map +1 -0
  58. package/dist/api/drawing tools/shapes menu/ellipse.d.ts +4 -0
  59. package/dist/api/drawing tools/shapes menu/ellipse.d.ts.map +1 -0
  60. package/dist/api/drawing tools/shapes menu/longPosition.d.ts +4 -0
  61. package/dist/api/drawing tools/shapes menu/longPosition.d.ts.map +1 -0
  62. package/dist/api/drawing tools/shapes menu/priceLabel.d.ts +7 -0
  63. package/dist/api/drawing tools/shapes menu/priceLabel.d.ts.map +1 -0
  64. package/dist/api/drawing tools/shapes menu/priceRange.d.ts +4 -0
  65. package/dist/api/drawing tools/shapes menu/priceRange.d.ts.map +1 -0
  66. package/dist/api/drawing tools/shapes menu/shortPosition.d.ts +4 -0
  67. package/dist/api/drawing tools/shapes menu/shortPosition.d.ts.map +1 -0
  68. package/dist/api/drawing tools/shapes menu/triangle.d.ts +4 -0
  69. package/dist/api/drawing tools/shapes menu/triangle.d.ts.map +1 -0
  70. package/dist/core/Chart.d.ts +29 -2
  71. package/dist/core/Chart.d.ts.map +1 -1
  72. package/dist/core/CoordTransform.d.ts.map +1 -1
  73. package/dist/core/Crosshair.d.ts +2 -0
  74. package/dist/core/Crosshair.d.ts.map +1 -1
  75. package/dist/core/IndicatorEngine.d.ts +15 -0
  76. package/dist/core/IndicatorEngine.d.ts.map +1 -1
  77. package/dist/core/InteractionManager.d.ts +55 -2
  78. package/dist/core/InteractionManager.d.ts.map +1 -1
  79. package/dist/core/PriceScale.d.ts +2 -0
  80. package/dist/core/PriceScale.d.ts.map +1 -1
  81. package/dist/core/Series.d.ts.map +1 -1
  82. package/dist/core/TimeScale.d.ts +52 -1
  83. package/dist/core/TimeScale.d.ts.map +1 -1
  84. package/dist/core/indicatorStyles.d.ts +37 -0
  85. package/dist/core/indicatorStyles.d.ts.map +1 -0
  86. package/dist/datafeed/DatafeedConnector.d.ts +27 -0
  87. package/dist/datafeed/DatafeedConnector.d.ts.map +1 -1
  88. package/dist/engine/CandleEngine.d.ts +2 -0
  89. package/dist/engine/CandleEngine.d.ts.map +1 -1
  90. package/dist/forgecharts.css +2029 -132
  91. package/dist/forgescript/ast.d.ts +71 -4
  92. package/dist/forgescript/ast.d.ts.map +1 -1
  93. package/dist/forgescript/builtins/collections.d.ts +56 -0
  94. package/dist/forgescript/builtins/collections.d.ts.map +1 -0
  95. package/dist/forgescript/builtins/drawing.d.ts +57 -0
  96. package/dist/forgescript/builtins/drawing.d.ts.map +1 -0
  97. package/dist/forgescript/builtins/udt.d.ts +30 -0
  98. package/dist/forgescript/builtins/udt.d.ts.map +1 -0
  99. package/dist/forgescript/conversion/index.d.ts +16 -9
  100. package/dist/forgescript/conversion/index.d.ts.map +1 -1
  101. package/dist/forgescript/conversion/types.d.ts +10 -54
  102. package/dist/forgescript/conversion/types.d.ts.map +1 -1
  103. package/dist/forgescript/conversion/validation.d.ts.map +1 -1
  104. package/dist/forgescript/datasets/DatasetStore.d.ts +65 -0
  105. package/dist/forgescript/datasets/DatasetStore.d.ts.map +1 -0
  106. package/dist/forgescript/datasets/parseDataset.d.ts +32 -0
  107. package/dist/forgescript/datasets/parseDataset.d.ts.map +1 -0
  108. package/dist/forgescript/parser.d.ts +19 -1
  109. package/dist/forgescript/parser.d.ts.map +1 -1
  110. package/dist/forgescript/runtime.d.ts +125 -104
  111. package/dist/forgescript/runtime.d.ts.map +1 -1
  112. package/dist/index.d.ts +14 -7
  113. package/dist/index.d.ts.map +1 -1
  114. package/dist/index.js +21487 -8016
  115. package/dist/index.js.map +1 -1
  116. package/dist/internal.d.ts +2 -0
  117. package/dist/internal.d.ts.map +1 -1
  118. package/dist/internal.js +19599 -6869
  119. package/dist/internal.js.map +1 -1
  120. package/dist/licensing/ChartRuntimeResolver.d.ts +134 -124
  121. package/dist/licensing/ChartRuntimeResolver.d.ts.map +1 -1
  122. package/dist/licensing/LicenseManager.d.ts.map +1 -1
  123. package/dist/licensing/__tests__/ChartRuntimeResolver.test.d.ts +2 -0
  124. package/dist/licensing/__tests__/ChartRuntimeResolver.test.d.ts.map +1 -1
  125. package/dist/licensing/licenseTypes.d.ts +56 -15
  126. package/dist/licensing/licenseTypes.d.ts.map +1 -1
  127. package/dist/node.d.ts +57 -0
  128. package/dist/node.d.ts.map +1 -0
  129. package/dist/pixi/PixiBenchmark.d.ts +56 -0
  130. package/dist/pixi/PixiBenchmark.d.ts.map +1 -0
  131. package/dist/pixi/PixiCandlestickRenderer.d.ts +19 -6
  132. package/dist/pixi/PixiCandlestickRenderer.d.ts.map +1 -1
  133. package/dist/pixi/PixiChart.d.ts +108 -2
  134. package/dist/pixi/PixiChart.d.ts.map +1 -1
  135. package/dist/pixi/PixiCrosshairRenderer.d.ts +10 -0
  136. package/dist/pixi/PixiCrosshairRenderer.d.ts.map +1 -1
  137. package/dist/pixi/PixiDrawingRenderer.d.ts +17 -5
  138. package/dist/pixi/PixiDrawingRenderer.d.ts.map +1 -1
  139. package/dist/pixi/PixiGridRenderer.d.ts +18 -2
  140. package/dist/pixi/PixiGridRenderer.d.ts.map +1 -1
  141. package/dist/pixi/PixiHistogramRenderer.d.ts +17 -0
  142. package/dist/pixi/PixiHistogramRenderer.d.ts.map +1 -0
  143. package/dist/pixi/PixiIndicatorRenderer.d.ts +35 -0
  144. package/dist/pixi/PixiIndicatorRenderer.d.ts.map +1 -0
  145. package/dist/pixi/PixiLastPriceRenderer.d.ts +33 -0
  146. package/dist/pixi/PixiLastPriceRenderer.d.ts.map +1 -0
  147. package/dist/pixi/PixiLayerManager.d.ts.map +1 -1
  148. package/dist/pixi/PixiLineRenderer.d.ts +19 -0
  149. package/dist/pixi/PixiLineRenderer.d.ts.map +1 -0
  150. package/dist/pixi/PixiTradingRenderer.d.ts +100 -0
  151. package/dist/pixi/PixiTradingRenderer.d.ts.map +1 -0
  152. package/dist/pixi/snap.d.ts +38 -0
  153. package/dist/pixi/snap.d.ts.map +1 -0
  154. package/dist/react/agent/AgentFAB.d.ts +21 -0
  155. package/dist/react/agent/AgentFAB.d.ts.map +1 -0
  156. package/dist/react/agent/AgentProvider.d.ts +15 -0
  157. package/dist/react/agent/AgentProvider.d.ts.map +1 -0
  158. package/dist/react/agent/AgentUIBus.d.ts +118 -0
  159. package/dist/react/agent/AgentUIBus.d.ts.map +1 -0
  160. package/dist/react/agent/AssistantPanel.d.ts +13 -0
  161. package/dist/react/agent/AssistantPanel.d.ts.map +1 -0
  162. package/dist/react/agent/CommandDispatcher.d.ts +81 -0
  163. package/dist/react/agent/CommandDispatcher.d.ts.map +1 -0
  164. package/dist/react/agent/VoiceInput.d.ts +36 -0
  165. package/dist/react/agent/VoiceInput.d.ts.map +1 -0
  166. package/dist/react/agent/contractUtils.d.ts +31 -0
  167. package/dist/react/agent/contractUtils.d.ts.map +1 -0
  168. package/dist/react/agent/index.d.ts +18 -0
  169. package/dist/react/agent/index.d.ts.map +1 -0
  170. package/dist/react/agent/useAgent.d.ts +81 -0
  171. package/dist/react/agent/useAgent.d.ts.map +1 -0
  172. package/dist/react/canvas/ChartCanvas.d.ts +55 -0
  173. package/dist/react/canvas/ChartCanvas.d.ts.map +1 -1
  174. package/dist/react/canvas/ChartContextMenu.d.ts +1 -1
  175. package/dist/react/canvas/ChartContextMenu.d.ts.map +1 -1
  176. package/dist/react/canvas/ChartSettingsDialog.d.ts +80 -2
  177. package/dist/react/canvas/ChartSettingsDialog.d.ts.map +1 -1
  178. package/dist/react/canvas/ContractSwitchDialog.d.ts +22 -0
  179. package/dist/react/canvas/ContractSwitchDialog.d.ts.map +1 -0
  180. package/dist/react/canvas/DrawingPropertiesDialog.d.ts +23 -0
  181. package/dist/react/canvas/DrawingPropertiesDialog.d.ts.map +1 -0
  182. package/dist/react/canvas/IndicatorLabel.d.ts +11 -3
  183. package/dist/react/canvas/IndicatorLabel.d.ts.map +1 -1
  184. package/dist/react/canvas/IndicatorPane.d.ts +1 -1
  185. package/dist/react/canvas/IndicatorPane.d.ts.map +1 -1
  186. package/dist/react/canvas/PointerOverlay.d.ts +6 -3
  187. package/dist/react/canvas/PointerOverlay.d.ts.map +1 -1
  188. package/dist/react/canvas/PositionPropertiesDialog.d.ts +22 -0
  189. package/dist/react/canvas/PositionPropertiesDialog.d.ts.map +1 -0
  190. package/dist/react/canvas/TableOverlay.d.ts +1 -1
  191. package/dist/react/canvas/TableOverlay.d.ts.map +1 -1
  192. package/dist/react/canvas/toolbars/LeftToolbar.d.ts +9 -2
  193. package/dist/react/canvas/toolbars/LeftToolbar.d.ts.map +1 -1
  194. package/dist/react/hooks/useBrokerEvents.d.ts +9 -0
  195. package/dist/react/hooks/useBrokerEvents.d.ts.map +1 -1
  196. package/dist/react/hooks/useChartCapabilities.d.ts.map +1 -1
  197. package/dist/react/hooks/usePanelDrag.d.ts +2 -0
  198. package/dist/react/hooks/usePanelDrag.d.ts.map +1 -0
  199. package/dist/react/index.d.ts +3 -0
  200. package/dist/react/index.d.ts.map +1 -1
  201. package/dist/react/index.js +25769 -10541
  202. package/dist/react/index.js.map +1 -1
  203. package/dist/react/internal.js +32838 -15641
  204. package/dist/react/internal.js.map +1 -1
  205. package/dist/react/shell/DatasetImportPanel.d.ts +14 -0
  206. package/dist/react/shell/DatasetImportPanel.d.ts.map +1 -0
  207. package/dist/react/shell/DatasetManagerDrawer.d.ts +20 -0
  208. package/dist/react/shell/DatasetManagerDrawer.d.ts.map +1 -0
  209. package/dist/react/shell/DepthOfMarketPanel.d.ts +18 -0
  210. package/dist/react/shell/DepthOfMarketPanel.d.ts.map +1 -0
  211. package/dist/react/shell/DocsEditor.d.ts +17 -0
  212. package/dist/react/shell/DocsEditor.d.ts.map +1 -0
  213. package/dist/react/shell/ManagedAppShell.d.ts +27 -0
  214. package/dist/react/shell/ManagedAppShell.d.ts.map +1 -1
  215. package/dist/react/shell/OrderEntryPanel.d.ts +21 -1
  216. package/dist/react/shell/OrderEntryPanel.d.ts.map +1 -1
  217. package/dist/react/shell/ScriptDrawer.d.ts +7 -1
  218. package/dist/react/shell/ScriptDrawer.d.ts.map +1 -1
  219. package/dist/react/shell/ScriptSettings.d.ts +26 -0
  220. package/dist/react/shell/ScriptSettings.d.ts.map +1 -0
  221. package/dist/react/shell/TradeDrawer.d.ts +8 -1
  222. package/dist/react/shell/TradeDrawer.d.ts.map +1 -1
  223. package/dist/react/shell/WatchlistDrawer.d.ts +2 -1
  224. package/dist/react/shell/WatchlistDrawer.d.ts.map +1 -1
  225. package/dist/react/shell/useDepthSubscription.d.ts +12 -0
  226. package/dist/react/shell/useDepthSubscription.d.ts.map +1 -0
  227. package/dist/react/shell/useWatchlistQuotes.d.ts +6 -0
  228. package/dist/react/shell/useWatchlistQuotes.d.ts.map +1 -1
  229. package/dist/react/workspace/BottomTradingPanel.d.ts +78 -0
  230. package/dist/react/workspace/BottomTradingPanel.d.ts.map +1 -0
  231. package/dist/react/workspace/ChartWorkspace.d.ts +64 -1
  232. package/dist/react/workspace/ChartWorkspace.d.ts.map +1 -1
  233. package/dist/react/workspace/FloatingPanel.d.ts +1 -1
  234. package/dist/react/workspace/FloatingPanel.d.ts.map +1 -1
  235. package/dist/react/workspace/GridChartContainer.d.ts +40 -0
  236. package/dist/react/workspace/GridChartContainer.d.ts.map +1 -0
  237. package/dist/react/workspace/GridSyncContext.d.ts +32 -0
  238. package/dist/react/workspace/GridSyncContext.d.ts.map +1 -0
  239. package/dist/react/workspace/GridTemplates.d.ts +16 -0
  240. package/dist/react/workspace/GridTemplates.d.ts.map +1 -0
  241. package/dist/react/workspace/IndicatorsDialog.d.ts +5 -1
  242. package/dist/react/workspace/IndicatorsDialog.d.ts.map +1 -1
  243. package/dist/react/workspace/LayoutMenu.d.ts +1 -1
  244. package/dist/react/workspace/LayoutMenu.d.ts.map +1 -1
  245. package/dist/react/workspace/LayoutTemplateSelector.d.ts +16 -0
  246. package/dist/react/workspace/LayoutTemplateSelector.d.ts.map +1 -0
  247. package/dist/react/workspace/SymbolSearchDialog.d.ts +1 -1
  248. package/dist/react/workspace/SymbolSearchDialog.d.ts.map +1 -1
  249. package/dist/react/workspace/TabBar.d.ts +4 -1
  250. package/dist/react/workspace/TabBar.d.ts.map +1 -1
  251. package/dist/react/workspace/toolbars/BottomToolbar.d.ts +7 -1
  252. package/dist/react/workspace/toolbars/BottomToolbar.d.ts.map +1 -1
  253. package/dist/react/workspace/toolbars/RightToolbar.d.ts +10 -1
  254. package/dist/react/workspace/toolbars/RightToolbar.d.ts.map +1 -1
  255. package/dist/react/workspace/toolbars/TopToolbar.d.ts +36 -2
  256. package/dist/react/workspace/toolbars/TopToolbar.d.ts.map +1 -1
  257. package/dist/renderers/CandlestickRenderer.d.ts.map +1 -1
  258. package/dist/services/BarPrefetchCache.d.ts +39 -0
  259. package/dist/services/BarPrefetchCache.d.ts.map +1 -0
  260. package/dist/theme/colors.d.ts.map +1 -1
  261. package/dist/trading/UnmanagedIngestion.d.ts +39 -12
  262. package/dist/trading/UnmanagedIngestion.d.ts.map +1 -1
  263. package/dist/trading/tradingTypes.d.ts +11 -2
  264. package/dist/trading/tradingTypes.d.ts.map +1 -1
  265. package/dist/types/ChartBackend.d.ts +67 -0
  266. package/dist/types/ChartBackend.d.ts.map +1 -0
  267. package/package.json +2 -2
  268. package/dist/forgescript/__tests__/ai-response-parser.test.d.ts +0 -2
  269. package/dist/forgescript/__tests__/ai-response-parser.test.d.ts.map +0 -1
  270. package/dist/forgescript/__tests__/orchestrator.test.d.ts +0 -2
  271. package/dist/forgescript/__tests__/orchestrator.test.d.ts.map +0 -1
  272. package/dist/forgescript/__tests__/pine-transpiler.test.d.ts +0 -2
  273. package/dist/forgescript/__tests__/pine-transpiler.test.d.ts.map +0 -1
  274. package/dist/forgescript/conversion/ai-conversion-agent.d.ts +0 -41
  275. package/dist/forgescript/conversion/ai-conversion-agent.d.ts.map +0 -1
  276. package/dist/forgescript/conversion/conversion-orchestrator.d.ts +0 -44
  277. package/dist/forgescript/conversion/conversion-orchestrator.d.ts.map +0 -1
  278. package/dist/forgescript/conversion/prompts/index.d.ts +0 -17
  279. package/dist/forgescript/conversion/prompts/index.d.ts.map +0 -1
  280. package/dist/forgescript/pine/PineCompiler.d.ts +0 -38
  281. package/dist/forgescript/pine/PineCompiler.d.ts.map +0 -1
  282. package/dist/forgescript/pine/diagnostics.d.ts +0 -20
  283. package/dist/forgescript/pine/diagnostics.d.ts.map +0 -1
  284. package/dist/forgescript/pine/index.d.ts +0 -8
  285. package/dist/forgescript/pine/index.d.ts.map +0 -1
  286. package/dist/forgescript/pine/pine-ast.d.ts +0 -190
  287. package/dist/forgescript/pine/pine-ast.d.ts.map +0 -1
  288. package/dist/forgescript/pine/pine-lexer.d.ts +0 -41
  289. package/dist/forgescript/pine/pine-lexer.d.ts.map +0 -1
  290. package/dist/forgescript/pine/pine-parser.d.ts +0 -108
  291. package/dist/forgescript/pine/pine-parser.d.ts.map +0 -1
  292. package/dist/forgescript/pine/pine-transpiler.d.ts +0 -40
  293. package/dist/forgescript/pine/pine-transpiler.d.ts.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import type { Container } from 'pixi.js';
2
- import type { OHLCV } from '@forgecharts/types';
2
+ import type { OHLCV, SeriesOptions } from '@forgecharts/types';
3
3
  import type { CoordTransform } from '../core/CoordTransform';
4
4
  /**
5
5
  * PixiCandlestickRenderer — renders OHLCV data as GPU-batched candlesticks.
@@ -9,15 +9,28 @@ import type { CoordTransform } from '../core/CoordTransform';
9
9
  * high-performance rendering of large datasets.
10
10
  */
11
11
  export declare class PixiCandlestickRenderer {
12
- private readonly _upColor;
13
- private readonly _downColor;
14
12
  private readonly _gfx;
15
- constructor(layer: Container, _upColor?: number, _downColor?: number);
16
- draw(bars: readonly OHLCV[], transform: CoordTransform): void;
13
+ constructor(layer: Container);
14
+ draw(bars: readonly OHLCV[], transform: CoordTransform, opts?: SeriesOptions): void;
15
+ /** Memo for the Heikin-Ashi transform — rebuilding the full array on every
16
+ * dirty frame allocated thousands of objects per second for a computation
17
+ * whose inputs only change when the visible window or data changes. Keyed
18
+ * by window fingerprint (first/last time, length, last close) because the
19
+ * visible-slice array has a fresh identity every frame. */
20
+ private _haCache;
17
21
  /**
18
22
  * Converts OHLCV bars to Heikin-Ashi values before drawing.
19
23
  */
20
- drawHeikinAshi(bars: readonly OHLCV[], transform: CoordTransform): void;
24
+ drawHeikinAshi(bars: readonly OHLCV[], transform: CoordTransform, opts?: SeriesOptions): void;
25
+ destroy(): void;
26
+ /**
27
+ * Per-pixel-column min/max rendering for zoomed-out views (pitch < 1 px).
28
+ * Each integer pixel column gets a single vertical line spanning the merged
29
+ * high–low of every bar landing on it, coloured by the column's net
30
+ * direction (close of the latest bar vs open of the earliest). Path-op
31
+ * count is bounded by plot width regardless of dataset size.
32
+ */
33
+ private _drawColumnLOD;
21
34
  private _toHeikinAshi;
22
35
  }
23
36
  //# sourceMappingURL=PixiCandlestickRenderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PixiCandlestickRenderer.d.ts","sourceRoot":"","sources":["../../src/pixi/PixiCandlestickRenderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAQ7D;;;;;;GAMG;AACH,qBAAa,uBAAuB;IAKhC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAL7B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAW;gBAG9B,KAAK,EAAE,SAAS,EACC,QAAQ,GAAE,MAAiB,EAC3B,UAAU,GAAE,MAAmB;IAMlD,IAAI,CACF,IAAI,EAAE,SAAS,KAAK,EAAE,EACtB,SAAS,EAAE,cAAc,GACxB,IAAI;IAkEP;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,SAAS,KAAK,EAAE,EAAE,SAAS,EAAE,cAAc,GAAG,IAAI;IAIvE,OAAO,CAAC,aAAa;CAkBtB"}
1
+ {"version":3,"file":"PixiCandlestickRenderer.d.ts","sourceRoot":"","sources":["../../src/pixi/PixiCandlestickRenderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAe7D;;;;;;GAMG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAW;gBAEpB,KAAK,EAAE,SAAS;IAK5B,IAAI,CACF,IAAI,EAAE,SAAS,KAAK,EAAE,EACtB,SAAS,EAAE,cAAc,EACzB,IAAI,CAAC,EAAE,aAAa,GACnB,IAAI;IAgKP;;;;gEAI4D;IAC5D,OAAO,CAAC,QAAQ,CAEA;IAEhB;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,SAAS,KAAK,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,IAAI;IAoB7F,OAAO,IAAI,IAAI;IAIf;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;IAuCtB,OAAO,CAAC,aAAa;CAkBtB"}
@@ -1,7 +1,12 @@
1
- import type { ChartOptions, Drawing } from '@forgecharts/types';
1
+ import type { ChartOptions, Drawing, DrawingType, OHLCV, Viewport, IndicatorInstance, PaneDescriptor } from '@forgecharts/types';
2
2
  import type { IChart, IChartPlugin } from '../types/IChart';
3
+ import type { ChartBackend } from '../types/ChartBackend';
4
+ import type { ChartOrder, ChartPosition } from '../trading/tradingTypes';
5
+ import type { DAGResult } from '../api/IndicatorDAG';
6
+ import { DrawingManager } from '../api/DrawingManager';
3
7
  import type { ISeries } from '../types/ISeries';
4
8
  import { CoordTransform } from '../core/CoordTransform';
9
+ import { PixiBenchmark } from './PixiBenchmark';
5
10
  /**
6
11
  * PixiChart — GPU-accelerated chart engine built on PixiJS v8.
7
12
  *
@@ -25,7 +30,7 @@ import { CoordTransform } from '../core/CoordTransform';
25
30
  * const { x, y } = chart.transform().toPixel(bar.time, bar.close);
26
31
  * ```
27
32
  */
28
- export declare class PixiChart implements IChart {
33
+ export declare class PixiChart implements ChartBackend {
29
34
  private readonly _app;
30
35
  private readonly _stage;
31
36
  private readonly _container;
@@ -37,15 +42,73 @@ export declare class PixiChart implements IChart {
37
42
  private readonly _layers;
38
43
  private readonly _gridRenderer;
39
44
  private readonly _candleRenderer;
45
+ private readonly _lineRenderer;
46
+ private readonly _histogramRenderer;
40
47
  private readonly _crosshairRenderer;
41
48
  private readonly _drawingRenderer;
49
+ private readonly _lastPriceRenderer;
50
+ private readonly _tradingRenderer;
51
+ private readonly _indicatorRenderer;
42
52
  private _series;
43
53
  private _drawings;
44
54
  private _plugins;
45
55
  private _resizeObserver;
56
+ private _visibilityObserver;
46
57
  private _initPromise;
47
58
  private _ready;
59
+ private _destroyed;
48
60
  private _interaction;
61
+ private readonly _drawingMgr;
62
+ private _interval;
63
+ private _crosshairEnabled;
64
+ private _magnetMode;
65
+ private _indicatorsVisible;
66
+ private _priceScaleManual;
67
+ private _tradingOrders;
68
+ private _tradingPositions;
69
+ private _paneLayout;
70
+ private _priceFraction;
71
+ private _indicatorResults;
72
+ private _indicatorInstances;
73
+ private _indicatorBars;
74
+ private _fullCanvasHeight;
75
+ /** Tracks the last axis-hover state so we only dirty Background on change. */
76
+ private _lastAxisHover;
77
+ private _orderDragId;
78
+ private _orderDragStartY;
79
+ private _drawingTool;
80
+ private _drawingState;
81
+ private _drawingP0;
82
+ private _drawingP1;
83
+ private _drawingCursorPt;
84
+ /** Performance benchmark utility — call `benchmark.start()` / `benchmark.stop()`. */
85
+ private _benchmark;
86
+ get benchmark(): PixiBenchmark | null;
87
+ /** Bound handler references for context loss events (cleaned up in destroy). */
88
+ private _onContextLost;
89
+ private _onContextRestored;
90
+ /** Called whenever a drawing is committed. */
91
+ onDrawingCommitted: ((drawing: Drawing) => void) | undefined;
92
+ /** Fired when an EXISTING drawing is modified via drag (handle or body move). */
93
+ onDrawingEdited: ((drawing: Drawing) => void) | undefined;
94
+ private _drawingEditDirty;
95
+ /** Ctrl+Z / Ctrl+Y — drawing history is owned by TChart. */
96
+ onUndoRequest: (() => void) | undefined;
97
+ onRedoRequest: (() => void) | undefined;
98
+ /** Called whenever a drawing is deleted. */
99
+ onDrawingDeleted: ((id: string) => void) | undefined;
100
+ /** Called when the user clicks a position overlay label. */
101
+ onPositionClick: ((positionId: string) => void) | undefined;
102
+ /** Called when the user finishes dragging an SL/TP order line to a new price. */
103
+ onOrderDragEnd: ((orderId: string, newPrice: number) => void) | undefined;
104
+ /** Called when the user drags a TP/SL pill off the entry line to create a bracket leg. */
105
+ onTpSlCreate: ((entryOrderId: string, kind: 'tp' | 'sl', price: number) => void) | undefined;
106
+ /** Called when the user right-clicks a drawing. */
107
+ onDrawingContextMenu: ((id: string, x: number, y: number) => void) | undefined;
108
+ /** Called when the user double-clicks a drawing. */
109
+ onDrawingDoubleClick: ((id: string, x: number, y: number) => void) | undefined;
110
+ /** Called after every pan/zoom so TChart can trigger lazy history loading. */
111
+ onViewportChanged: (() => void) | undefined;
49
112
  constructor(container: HTMLElement, options?: ChartOptions);
50
113
  addSeries(options: Parameters<IChart['addSeries']>[0]): ISeries;
51
114
  removeSeries(series: ISeries): void;
@@ -59,6 +122,11 @@ export declare class PixiChart implements IChart {
59
122
  /** @internal Used by PixiChart when DrawingManager pushes an update. */
60
123
  setDrawings(drawings: readonly Drawing[]): void;
61
124
  private _renderFrame;
125
+ /**
126
+ * Syncs bar timestamps from a series into the time scale for ordinal mapping.
127
+ * Avoids a full re-map when only the last bar changed or was appended.
128
+ */
129
+ private _syncBarTimestamps;
62
130
  private _getVisibleBars;
63
131
  private _autoFitPriceRange;
64
132
  private _markViewportDirty;
@@ -66,6 +134,44 @@ export declare class PixiChart implements IChart {
66
134
  private _handleKeyAction;
67
135
  /** Pans the viewport so the latest bar sits near the right edge. */
68
136
  private _scrollToLatestBar;
137
+ scrollToEnd(): void;
138
+ fitDefaultView(): void;
139
+ resetPriceScale(): void;
140
+ getViewport(): Viewport;
141
+ restoreViewport(v: Viewport): void;
142
+ drawingManager(): DrawingManager;
143
+ startDrawingTool(type: DrawingType): void;
144
+ cancelDrawingTool(): void;
145
+ deleteSelectedDrawing(): void;
146
+ setAllDrawingsVisible(v: boolean): void;
147
+ markDirty(): void;
148
+ setDataBoundaryTime(time: number | null): void;
149
+ setCrosshairEnabled(enabled: boolean): void;
150
+ setMagnetMode(mode: import('@forgecharts/types').MagnetMode): void;
151
+ setNativeCursorHidden(hidden: boolean): void;
152
+ snapXToBar(x: number): {
153
+ x: number;
154
+ time: number;
155
+ closeY?: number;
156
+ };
157
+ setIndicatorsVisible(v: boolean): void;
158
+ setIndicatorLines(lines: readonly {
159
+ id: string;
160
+ points: readonly {
161
+ time: number;
162
+ value: number;
163
+ }[];
164
+ }[]): void;
165
+ setTradingOrders(orders: ChartOrder[]): void;
166
+ setTradingPositions(positions: ChartPosition[]): void;
167
+ setContractSwitches(switches: import('@forgecharts/types').ContractSwitch[]): void;
168
+ setPaneLayout(panes: readonly PaneDescriptor[], priceFraction: number): void;
169
+ setIndicatorResults(results: ReadonlyMap<string, DAGResult>, indicators: readonly IndicatorInstance[], bars: readonly OHLCV[]): void;
170
+ private _handleDrawClick;
171
+ private _buildDraftPreview;
172
+ private _snapToBar;
173
+ /** Convert a Timeframe string to seconds (internal helper). */
174
+ private _tfToSeconds;
69
175
  private _resolveOptions;
70
176
  private _resolveColors;
71
177
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PixiChart.d.ts","sourceRoot":"","sources":["../../src/pixi/PixiChart.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAA0C,OAAO,EAAyB,MAAM,oBAAoB,CAAC;AAC/H,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAIhD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAWxD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,SAAU,YAAW,MAAM;IACtC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAc;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IACzC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAClD,OAAO,CAAC,OAAO,CAAc;IAE7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiB;IAE5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAmB;IACjD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA0B;IAC1D,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAwB;IAC3D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAsB;IAEvD,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,QAAQ,CAAsB;IAEtC,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,YAAY,CAAsB;gBAE9B,SAAS,EAAE,WAAW,EAAE,OAAO,GAAE,YAAiB;IA8G9D,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO;IAe/D,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAKnC,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAKrC,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAKxC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;IAiBlD,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAK7B,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAM3C,SAAS,IAAI,cAAc;IAI3B,OAAO,IAAI,IAAI;IAYf,wEAAwE;IACxE,WAAW,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI;IAO/C,OAAO,CAAC,YAAY;IAwEpB,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,gBAAgB;IAoBxB,oEAAoE;IACpE,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,cAAc;CAOvB"}
1
+ {"version":3,"file":"PixiChart.d.ts","sourceRoot":"","sources":["../../src/pixi/PixiChart.ts"],"names":[],"mappings":"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"}
@@ -23,7 +23,17 @@ export declare class PixiCrosshairRenderer {
23
23
  update(x: number, y: number): void;
24
24
  hide(): void;
25
25
  draw(transform: CoordTransform): void;
26
+ /** Optional price precision override (decimal count). */
27
+ pricePrecision: number | undefined;
26
28
  private _formatPrice;
29
+ destroy(): void;
30
+ /** Cached Intl formatters keyed by timezone. */
31
+ private _fmtCache;
32
+ private _getFormatters;
27
33
  private _formatTime;
34
+ /** Appends dashed vertical segments to the current path (no stroke). */
35
+ private _appendDashV;
36
+ /** Appends dashed horizontal segments to the current path (no stroke). */
37
+ private _appendDashH;
28
38
  }
29
39
  //# sourceMappingURL=PixiCrosshairRenderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PixiCrosshairRenderer.d.ts","sourceRoot":"","sources":["../../src/pixi/PixiCrosshairRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,SAAS,EAAmB,MAAM,SAAS,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D;;;;;;GAMG;AACH,qBAAa,qBAAqB;IAe9B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAd1B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAW;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAO;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAO;IAElC,OAAO,CAAC,EAAE,CAAuB;IACjC,OAAO,CAAC,EAAE,CAAuB;IAEjC,4EAA4E;IAC5E,QAAQ,EAAE,MAAM,CAAQ;IACxB,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,CAAS;gBAGvB,KAAK,EAAE,SAAS,EACC,OAAO,EAAE,WAAW;IAevC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAKlC,IAAI,IAAI,IAAI;IAKZ,IAAI,CAAC,SAAS,EAAE,cAAc,GAAG,IAAI;IA6DrC,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,WAAW;CAgBpB"}
1
+ {"version":3,"file":"PixiCrosshairRenderer.d.ts","sourceRoot":"","sources":["../../src/pixi/PixiCrosshairRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,SAAS,EAAmB,MAAM,SAAS,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAM7D;;;;;;GAMG;AACH,qBAAa,qBAAqB;IAe9B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAd1B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAW;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAO;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAO;IAElC,OAAO,CAAC,EAAE,CAAuB;IACjC,OAAO,CAAC,EAAE,CAAuB;IAEjC,4EAA4E;IAC5E,QAAQ,EAAE,MAAM,CAAQ;IACxB,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,CAAS;gBAGvB,KAAK,EAAE,SAAS,EACC,OAAO,EAAE,WAAW;IAevC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAKlC,IAAI,IAAI,IAAI;IAKZ,IAAI,CAAC,SAAS,EAAE,cAAc,GAAG,IAAI;IAyErC,yDAAyD;IACzD,cAAc,EAAE,MAAM,GAAG,SAAS,CAAa;IAE/C,OAAO,CAAC,YAAY;IAKpB,OAAO,IAAI,IAAI;IAMf,gDAAgD;IAChD,OAAO,CAAC,SAAS,CAAsM;IAEvN,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,WAAW;IAoBnB,wEAAwE;IACxE,OAAO,CAAC,YAAY;IAWpB,0EAA0E;IAC1E,OAAO,CAAC,YAAY;CAUrB"}
@@ -1,17 +1,29 @@
1
1
  import type { Container } from 'pixi.js';
2
- import type { Drawing } from '@forgecharts/types';
2
+ import type { Drawing, OHLCV } from '@forgecharts/types';
3
3
  import type { CoordTransform } from '../core/CoordTransform';
4
4
  /**
5
5
  * PixiDrawingRenderer — renders all drawing objects via GPU-batched Graphics.
6
6
  *
7
- * All `DrawingPoint` (time, price) pixel conversions go through
8
- * `CoordTransform`, keeping drawings perfectly aligned with the price series
9
- * across zoom/pan without requiring a full re-fetch of underlying data.
7
+ * Handles all implemented drawing types: lines, channels, pitchforks,
8
+ * fib retracement, shapes (rectangle, text), and selection handles.
9
+ * Text labels use pooled `Text` objects.
10
10
  */
11
11
  export declare class PixiDrawingRenderer {
12
12
  private readonly _gfx;
13
+ /** Separate Graphics for curve-heavy tools (ellipse, arc, fib circles/spiral/arcs)
14
+ * where sub-pixel precision prevents visible stepping on curved segments. */
15
+ private readonly _gfxCurves;
16
+ private readonly _layer;
17
+ private _labels;
13
18
  constructor(layer: Container);
14
- draw(drawings: readonly Drawing[], transform: CoordTransform): void;
19
+ /** Clean up pooled Text objects and Graphics. */
20
+ destroy(): void;
21
+ draw(drawings: readonly Drawing[], transform: CoordTransform, selectedId?: string | null, interval?: string, candles?: readonly OHLCV[]): void;
22
+ private _drawHandles;
23
+ /** Tools that use curves / many-segment approximations and need sub-pixel precision. */
24
+ private static readonly _CURVE_TOOLS;
15
25
  private _drawOne;
26
+ private _label;
27
+ drawPreview(draft: Drawing, transform: CoordTransform, interval?: string, candles?: readonly OHLCV[]): void;
16
28
  }
17
29
  //# sourceMappingURL=PixiDrawingRenderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PixiDrawingRenderer.d.ts","sourceRoot":"","sources":["../../src/pixi/PixiDrawingRenderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAM7D;;;;;;GAMG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAW;gBAEpB,KAAK,EAAE,SAAS;IAK5B,IAAI,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,EAAE,SAAS,EAAE,cAAc,GAAG,IAAI;IAQnE,OAAO,CAAC,QAAQ;CAwFjB"}
1
+ {"version":3,"file":"PixiDrawingRenderer.d.ts","sourceRoot":"","sources":["../../src/pixi/PixiDrawingRenderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AA8H7D;;;;;;GAMG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAW;IAChC;kFAC8E;IAC9E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAW;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,OAAO,CAAC,OAAO,CAAc;gBAEjB,KAAK,EAAE,SAAS;IAO5B,iDAAiD;IACjD,OAAO,IAAI,IAAI;IASf,IAAI,CACF,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,SAAS,EAAE,cAAc,EACzB,UAAU,GAAE,MAAM,GAAG,IAAW,EAChC,QAAQ,SAAO,EACf,OAAO,GAAE,SAAS,KAAK,EAAO,GAC7B,IAAI;IAsBP,OAAO,CAAC,YAAY;IAYpB,wFAAwF;IACxF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAEjC;IAEH,OAAO,CAAC,QAAQ;IAqkChB,OAAO,CAAC,MAAM;IAqBd,WAAW,CACT,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,cAAc,EACzB,QAAQ,SAAO,EACf,OAAO,GAAE,SAAS,KAAK,EAAO,GAC7B,IAAI;CAOR"}
@@ -6,7 +6,9 @@ import type { TimeScale } from '../core/TimeScale';
6
6
  * PixiGridRenderer — draws background fill, horizontal grid lines (price),
7
7
  * vertical grid lines (time), and the axis separator borders.
8
8
  *
9
- * All drawing uses PixiJS `Graphics` which is GPU-batched.
9
+ * All line segments are batched into a single path per stroke style to
10
+ * minimise GPU draw calls (previously ~60 per frame → now ~4).
11
+ * Text labels are pooled and reused to avoid texture upload churn.
10
12
  */
11
13
  export declare class PixiGridRenderer {
12
14
  private readonly _colors;
@@ -14,8 +16,22 @@ export declare class PixiGridRenderer {
14
16
  private readonly _timeLabels;
15
17
  private readonly _priceLabels;
16
18
  private readonly _timeScale;
19
+ private _priceTextPool;
20
+ private _timeTextPool;
21
+ private readonly _labelStyle;
22
+ private _switchStyleNormal;
23
+ private _switchStyleHovered;
17
24
  constructor(layer: Container, _colors: ChartColors, timeScale: TimeScale);
18
- draw(transform: CoordTransform, width: number, height: number): void;
25
+ draw(transform: CoordTransform, width: number, height: number, axisHover?: 'none' | 'price' | 'time'): void;
26
+ /** Draws ▲ / ▼ triangles near the top and bottom of the price axis strip. */
27
+ private _drawPriceAxisArrows;
28
+ /** Draws ◄ / ► triangles near the left and right of the time axis strip. */
29
+ private _drawTimeAxisArrows;
30
+ destroy(): void;
31
+ private _getOrCreatePriceText;
32
+ private _getOrCreateTimeText;
33
+ /** Optional price precision override (decimal count). */
34
+ pricePrecision: number | undefined;
19
35
  private _formatPrice;
20
36
  private _niceTimeStep;
21
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PixiGridRenderer.d.ts","sourceRoot":"","sources":["../../src/pixi/PixiGridRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,SAAS,EAAmB,MAAM,SAAS,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAG7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAInD;;;;;GAKG;AACH,qBAAa,gBAAgB;IAQzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAP1B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAW;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAY;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAY;IACzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;gBAGrC,KAAK,EAAE,SAAS,EACC,OAAO,EAAE,WAAW,EACrC,SAAS,EAAE,SAAS;IAStB,IAAI,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAiFpE,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,aAAa;CAgBtB"}
1
+ {"version":3,"file":"PixiGridRenderer.d.ts","sourceRoot":"","sources":["../../src/pixi/PixiGridRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,SAAS,EAAmB,MAAM,SAAS,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAG7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAKnD;;;;;;;GAOG;AACH,qBAAa,gBAAgB;IAmBzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAlB1B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAW;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAY;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAY;IACzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IAGvC,OAAO,CAAC,cAAc,CAAc;IACpC,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAY;IAKxC,OAAO,CAAC,kBAAkB,CAA0B;IACpD,OAAO,CAAC,mBAAmB,CAA0B;gBAGnD,KAAK,EAAE,SAAS,EACC,OAAO,EAAE,WAAW,EACrC,SAAS,EAAE,SAAS;IActB,IAAI,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAE,MAAM,GAAG,OAAO,GAAG,MAAe,GAAG,IAAI;IA2NnH,6EAA6E;IAC7E,OAAO,CAAC,oBAAoB;IAgB5B,4EAA4E;IAC5E,OAAO,CAAC,mBAAmB;IAgB3B,OAAO,IAAI,IAAI;IAYf,OAAO,CAAC,qBAAqB;IAY7B,OAAO,CAAC,oBAAoB;IAY5B,yDAAyD;IACzD,cAAc,EAAE,MAAM,GAAG,SAAS,CAAa;IAE/C,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,aAAa;CAgBtB"}
@@ -0,0 +1,17 @@
1
+ import type { Container } from 'pixi.js';
2
+ import type { OHLCV } from '@forgecharts/types';
3
+ import type { CoordTransform } from '../core/CoordTransform';
4
+ /**
5
+ * PixiHistogramRenderer — draws volume or indicator values as vertical bars.
6
+ *
7
+ * Colour-coded: green when close >= open, red otherwise (matching Canvas 2D).
8
+ * Each bar is drawn as a filled rectangle from the bottom of the plot area
9
+ * up to the mapped volume/value height.
10
+ */
11
+ export declare class PixiHistogramRenderer {
12
+ private readonly _gfx;
13
+ constructor(layer: Container);
14
+ destroy(): void;
15
+ draw(bars: readonly OHLCV[], transform: CoordTransform): void;
16
+ }
17
+ //# sourceMappingURL=PixiHistogramRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PixiHistogramRenderer.d.ts","sourceRoot":"","sources":["../../src/pixi/PixiHistogramRenderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAK7D;;;;;;GAMG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAW;gBAEpB,KAAK,EAAE,SAAS;IAK5B,OAAO,IAAI,IAAI;IAIf,IAAI,CACF,IAAI,EAAE,SAAS,KAAK,EAAE,EACtB,SAAS,EAAE,cAAc,GACxB,IAAI;CA8CR"}
@@ -0,0 +1,35 @@
1
+ import type { Container } from 'pixi.js';
2
+ import type { OHLCV, IndicatorInstance, PaneDescriptor } from '@forgecharts/types';
3
+ import type { CoordTransform } from '../core/CoordTransform';
4
+ import type { DAGResult } from '../api/IndicatorDAG';
5
+ /**
6
+ * PixiIndicatorRenderer — renders indicator sub-panes (RSI, MACD, Volume,
7
+ * generic line) below the price chart within the same PixiJS Application.
8
+ *
9
+ * Each pane gets a background, separator, axis column, and the indicator's
10
+ * visual representation. All drawing uses a single `Graphics` object that
11
+ * is cleared and redrawn every dirty frame.
12
+ */
13
+ export declare class PixiIndicatorRenderer {
14
+ private readonly _gfx;
15
+ private readonly _layer;
16
+ private _labels;
17
+ private _bgColor;
18
+ private _borderColor;
19
+ private _mutedColor;
20
+ /** Memoised time→bar map for volume colouring — rebuilding a full-history
21
+ * Map on every dirty frame (each pan tick) cost O(bars) allocation for an
22
+ * input that only changes on data updates. */
23
+ private _barMapCache;
24
+ constructor(layer: Container);
25
+ setColors(bg: string, border: string, muted: string): void;
26
+ destroy(): void;
27
+ draw(panes: readonly PaneDescriptor[], indicators: readonly IndicatorInstance[], results: ReadonlyMap<string, DAGResult>, bars: readonly OHLCV[], transform: CoordTransform, priceFraction: number, canvasWidth: number, canvasHeight: number): void;
28
+ private _drawRSI;
29
+ private _drawMACD;
30
+ private _drawVolume;
31
+ private _drawLine;
32
+ private _dashH;
33
+ private _label;
34
+ }
35
+ //# sourceMappingURL=PixiIndicatorRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PixiIndicatorRenderer.d.ts","sourceRoot":"","sources":["../../src/pixi/PixiIndicatorRenderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAqBrD;;;;;;;GAOG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAW;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,YAAY,CAAY;IAChC,OAAO,CAAC,WAAW,CAAa;IAEhC;;mDAE+C;IAC/C,OAAO,CAAC,YAAY,CAA2E;gBAEnF,KAAK,EAAE,SAAS;IAM5B,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAM1D,OAAO,IAAI,IAAI;IAMf,IAAI,CACF,KAAK,EAAE,SAAS,cAAc,EAAE,EAChC,UAAU,EAAE,SAAS,iBAAiB,EAAE,EACxC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,EACvC,IAAI,EAAE,SAAS,KAAK,EAAE,EACtB,SAAS,EAAE,cAAc,EACzB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GACnB,IAAI;IAqDP,OAAO,CAAC,QAAQ;IAuChB,OAAO,CAAC,SAAS;IA4EjB,OAAO,CAAC,WAAW;IAyDnB,OAAO,CAAC,SAAS;IAoCjB,OAAO,CAAC,MAAM;IAUd,OAAO,CAAC,MAAM;CAiBf"}
@@ -0,0 +1,33 @@
1
+ import type { Container } from 'pixi.js';
2
+ import type { Timeframe } from '@forgecharts/types';
3
+ import type { CoordTransform } from '../core/CoordTransform';
4
+ import type { Series } from '../core/Series';
5
+ /**
6
+ * PixiLastPriceRenderer — renders the live last-price dotted line, price label,
7
+ * and countdown timer on the PixiJS UIOverlay layer.
8
+ *
9
+ * Updated every ticker frame so the countdown advances each second and the
10
+ * price line tracks the latest bar's close in real-time.
11
+ */
12
+ export declare class PixiLastPriceRenderer {
13
+ private readonly _lineGfx;
14
+ private readonly _boxGfx;
15
+ private readonly _priceText;
16
+ private readonly _countdownText;
17
+ private _lastSec;
18
+ /** Optional price precision override (decimal count). */
19
+ pricePrecision: number | undefined;
20
+ /** Whether to show the countdown timer. */
21
+ showCountdown: boolean;
22
+ constructor(layer: Container);
23
+ destroy(): void;
24
+ /**
25
+ * Draw the last-price line + label + countdown.
26
+ * Returns true if any content was drawn (so caller knows to keep layer dirty
27
+ * for the next-second countdown tick).
28
+ */
29
+ draw(series: readonly Series[], transform: CoordTransform, interval: Timeframe): boolean;
30
+ /** Returns true when the second has ticked over (countdown needs redraw). */
31
+ needsRedraw(): boolean;
32
+ }
33
+ //# sourceMappingURL=PixiLastPriceRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PixiLastPriceRenderer.d.ts","sourceRoot":"","sources":["../../src/pixi/PixiLastPriceRenderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AA+B7C;;;;;;GAMG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAW;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAO;IAClC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAO;IACtC,OAAO,CAAC,QAAQ,CAAK;IACrB,yDAAyD;IACzD,cAAc,EAAE,MAAM,GAAG,SAAS,CAAa;IAC/C,2CAA2C;IAC3C,aAAa,UAAQ;gBAET,KAAK,EAAE,SAAS;IAyB5B,OAAO,IAAI,IAAI;IAOf;;;;OAIG;IACH,IAAI,CACF,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,SAAS,EAAE,cAAc,EACzB,QAAQ,EAAE,SAAS,GAClB,OAAO;IAuEV,6EAA6E;IAC7E,WAAW,IAAI,OAAO;CAIvB"}
@@ -1 +1 @@
1
- {"version":3,"file":"PixiLayerManager.d.ts","sourceRoot":"","sources":["../../src/pixi/PixiLayerManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,SAAS,EAA4B,MAAM,aAAa,CAAC;AAElE;;;;;;GAMG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,KAAK,CAAK;IAElB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAI5B,OAAO,IAAI,IAAI;IAIf,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAIlC,KAAK,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAI7B,QAAQ,IAAI,IAAI;CAGjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmC;IAC/D,QAAQ,CAAC,KAAK,aAAoB;gBAEtB,KAAK,EAAE,SAAS;IAa5B,mDAAmD;IACnD,GAAG,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS;IAMhC,iFAAiF;IACjF,KAAK,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAI7B,oDAAoD;IACpD,QAAQ,IAAI,IAAI;IAIhB,8DAA8D;IAC9D,OAAO,IAAI,IAAI;CAOhB"}
1
+ {"version":3,"file":"PixiLayerManager.d.ts","sourceRoot":"","sources":["../../src/pixi/PixiLayerManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,SAAS,EAA4B,MAAM,aAAa,CAAC;AAElE;;;;;;GAMG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,KAAK,CAAK;IAElB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAI5B,OAAO,IAAI,IAAI;IAIf,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAIlC,KAAK,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAI7B,QAAQ,IAAI,IAAI;CAGjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmC;IAC/D,QAAQ,CAAC,KAAK,aAAoB;gBAEtB,KAAK,EAAE,SAAS;IAoB5B,mDAAmD;IACnD,GAAG,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS;IAMhC,iFAAiF;IACjF,KAAK,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAI7B,oDAAoD;IACpD,QAAQ,IAAI,IAAI;IAIhB,8DAA8D;IAC9D,OAAO,IAAI,IAAI;CAOhB"}
@@ -0,0 +1,19 @@
1
+ import type { Container } from 'pixi.js';
2
+ import type { OHLCV, SeriesOptions } from '@forgecharts/types';
3
+ import type { CoordTransform } from '../core/CoordTransform';
4
+ /**
5
+ * PixiLineRenderer — draws close prices as a line or area (gradient-fill) series.
6
+ *
7
+ * Uses a single re-used `Graphics` object that is fully cleared and redrawn
8
+ * on each invalidation. For area series a vertical gradient fill is drawn
9
+ * from the line down to the bottom of the plot area.
10
+ */
11
+ export declare class PixiLineRenderer {
12
+ private readonly _gfx;
13
+ /** Cached gradient — invalidated when color or plot height changes. */
14
+ private _gradientCache;
15
+ constructor(layer: Container);
16
+ destroy(): void;
17
+ draw(bars: readonly OHLCV[], transform: CoordTransform, options: SeriesOptions): void;
18
+ }
19
+ //# sourceMappingURL=PixiLineRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PixiLineRenderer.d.ts","sourceRoot":"","sources":["../../src/pixi/PixiLineRenderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAI7D;;;;;;GAMG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAW;IAEhC,uEAAuE;IACvE,OAAO,CAAC,cAAc,CAAsE;gBAEhF,KAAK,EAAE,SAAS;IAK5B,OAAO,IAAI,IAAI;IAKf,IAAI,CACF,IAAI,EAAE,SAAS,KAAK,EAAE,EACtB,SAAS,EAAE,cAAc,EACzB,OAAO,EAAE,aAAa,GACrB,IAAI;CAkGR"}
@@ -0,0 +1,100 @@
1
+ import type { Container } from 'pixi.js';
2
+ import type { ChartOrder, ChartPosition } from '../trading/tradingTypes';
3
+ import type { CoordTransform } from '../core/CoordTransform';
4
+ /**
5
+ * Describes a TP or SL pill that can be dragged off the entry line to create
6
+ * a bracket order. Once the user drags it away and releases, the renderer
7
+ * emits `onTpSlCreate`.
8
+ */
9
+ export interface TpSlPill {
10
+ /** Which bracket leg this pill represents. */
11
+ kind: 'tp' | 'sl';
12
+ /** The parent entry order ID that this pill is attached to. */
13
+ entryOrderId: string;
14
+ /** Side of the entry order (determines default drag direction). */
15
+ entrySide: 'buy' | 'sell';
16
+ /** Current pixel position of the pill (mutated during drag). */
17
+ x: number;
18
+ y: number;
19
+ /** Width/height for hit testing. */
20
+ w: number;
21
+ h: number;
22
+ }
23
+ /**
24
+ * PixiTradingRenderer — draws order lines + position lines + label boxes
25
+ * on the TradingOverlay layer.
26
+ *
27
+ * Orders: Filters out terminal statuses (cancelled/rejected/expired/filled).
28
+ * Buy = green, Sell = red. Pending orders are dashed + 60% alpha.
29
+ * SL/TP orders are draggable — user can drag the line to modify the price.
30
+ *
31
+ * Positions: Renders a solid horizontal line at the entry price for every open
32
+ * position. Long = green, Short = red. Label shows side + qty + P&L.
33
+ * Clicking the label prompts to close the position.
34
+ *
35
+ * TP/SL pills: For single market orders (entry role, no groupId), two small
36
+ * pill labels "TP" and "SL" are drawn on the entry line. The user
37
+ * can drag a pill vertically to set a take-profit or stop-loss.
38
+ * On release, onTpSlCreate is invoked to submit the bracket leg.
39
+ */
40
+ export declare class PixiTradingRenderer {
41
+ private readonly _lineGfx;
42
+ private readonly _boxGfx;
43
+ private readonly _layer;
44
+ private _labels;
45
+ /** Position hit-zones for click detection — rebuilt on every draw(). */
46
+ private _positionHitZones;
47
+ /** Order line hit-zones for drag detection — rebuilt on every draw(). */
48
+ private _orderHitZones;
49
+ /** TP/SL pill hit-zones for drag detection — rebuilt on every draw(). */
50
+ private _pillHitZones;
51
+ /** Pill currently being dragged — null when idle. */
52
+ private _draggingPill;
53
+ /** Callback invoked when the user clicks a position label. */
54
+ onPositionClick: ((positionId: string) => void) | undefined;
55
+ /** Callback invoked when the user finishes dragging an SL/TP order to a new price. */
56
+ onOrderDragEnd: ((orderId: string, newPrice: number) => void) | undefined;
57
+ /**
58
+ * Callback invoked when the user drags a TP or SL pill off the entry line
59
+ * and releases it at a new price. The parent should create a bracket leg.
60
+ */
61
+ onTpSlCreate: ((entryOrderId: string, kind: 'tp' | 'sl', price: number) => void) | undefined;
62
+ constructor(layer: Container);
63
+ destroy(): void;
64
+ /**
65
+ * Hit-test a point against position labels.
66
+ * Returns the position ID if the point is inside a label box, or null.
67
+ */
68
+ hitTestPosition(x: number, y: number): string | null;
69
+ /**
70
+ * Hit-test a point against draggable order lines (SL/TP).
71
+ * Returns the order ID if the point is near a draggable order line, or null.
72
+ * Uses a generous vertical tolerance (6px each side) for easy grab.
73
+ */
74
+ hitTestDraggableOrder(x: number, y: number): string | null;
75
+ /**
76
+ * Hit-test a point against TP/SL pill labels on entry lines.
77
+ * Returns the pill info if hit, or null.
78
+ */
79
+ hitTestPill(x: number, y: number): TpSlPill | null;
80
+ /** Start dragging a pill. Called by the interaction layer on mouse-down. */
81
+ startPillDrag(pill: TpSlPill): void;
82
+ /** Update the dragging pill's Y position. Called on mouse-move. */
83
+ movePillDrag(y: number): void;
84
+ /** Finish the pill drag and return the pill info (caller converts Y to price). */
85
+ endPillDrag(): (TpSlPill & {
86
+ startY: number;
87
+ }) | null;
88
+ /** Whether a pill is currently being dragged. */
89
+ get isDraggingPill(): boolean;
90
+ draw(orders: readonly ChartOrder[], transform: CoordTransform, positions?: readonly ChartPosition[]): void;
91
+ /**
92
+ * Draws the drag affordance for a draggable order line: a subtle grip pad
93
+ * with an up and a down chevron, centred on the line. Signals "drag me
94
+ * vertically" the way TradingView's order-line handles do.
95
+ */
96
+ private _drawDragHandle;
97
+ /** Draws or reuses a label at the given position and returns the next label index. */
98
+ private _drawLabel;
99
+ }
100
+ //# sourceMappingURL=PixiTradingRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PixiTradingRenderer.d.ts","sourceRoot":"","sources":["../../src/pixi/PixiTradingRenderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAmD7D;;;;GAIG;AACH,MAAM,WAAW,QAAQ;IACvB,8CAA8C;IAC9C,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,+DAA+D;IAC/D,YAAY,EAAE,MAAM,CAAC;IACrB,mEAAmE;IACnE,SAAS,EAAE,KAAK,GAAG,MAAM,CAAC;IAC1B,gEAAgE;IAChE,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,oCAAoC;IACpC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAW;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,OAAO,CAAC,OAAO,CAAc;IAC7B,wEAAwE;IACxE,OAAO,CAAC,iBAAiB,CAAyE;IAClG,yEAAyE;IACzE,OAAO,CAAC,cAAc,CAAmG;IACzH,yEAAyE;IACzE,OAAO,CAAC,aAAa,CAAkB;IAEvC,qDAAqD;IACrD,OAAO,CAAC,aAAa,CAAgD;IAErE,8DAA8D;IAC9D,eAAe,EAAE,CAAC,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC5D,sFAAsF;IACtF,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC1E;;;OAGG;IACH,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;gBAEjF,KAAK,EAAE,SAAS;IAQ5B,OAAO,IAAI,IAAI;IAOf;;;OAGG;IACH,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IASpD;;;;OAIG;IACH,qBAAqB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAW1D;;;OAGG;IACH,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IASlD,4EAA4E;IAC5E,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAInC,mEAAmE;IACnE,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAM7B,kFAAkF;IAClF,WAAW,IAAI,CAAC,QAAQ,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI;IAMrD,iDAAiD;IACjD,IAAI,cAAc,IAAI,OAAO,CAE5B;IAED,IAAI,CACF,MAAM,EAAE,SAAS,UAAU,EAAE,EAC7B,SAAS,EAAE,cAAc,EACzB,SAAS,CAAC,EAAE,SAAS,aAAa,EAAE,GACnC,IAAI;IAoNP;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAoBvB,sFAAsF;IACtF,OAAO,CAAC,UAAU;CAsBnB"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Physical-pixel snapping helpers for crisp line rendering.
3
+ *
4
+ * The Pixi renderer runs at `resolution = devicePixelRatio` with logical
5
+ * (CSS px) coordinates. The classic `Math.round(v) + 0.5` crisp-line trick
6
+ * only works when dpr === 1: at fractional ratios (Windows 125% / 150%
7
+ * scaling) a "+0.5 logical" coordinate lands between device pixels and the
8
+ * GPU antialiases the stroke across 2–3 physical pixels — the blurry-line
9
+ * look. TradingView solves this by rounding in *bitmap* (device-pixel)
10
+ * space and using integer physical stroke widths; these helpers do the same
11
+ * while staying in logical coordinates so callers don't need to change
12
+ * coordinate systems.
13
+ */
14
+ /** Current device pixel ratio with SSR guard. */
15
+ export declare function currentDpr(): number;
16
+ /**
17
+ * Convert a logical line width to the nearest crisp physical width.
18
+ * Returns both the logical width to pass to `stroke()` (so the GPU draws an
19
+ * exact integer number of device pixels) and the physical pixel count
20
+ * (needed for center/boundary parity in `snapToPhysical`).
21
+ */
22
+ export declare function crispWidth(logicalWidth: number, dpr?: number): {
23
+ width: number;
24
+ phys: number;
25
+ };
26
+ /**
27
+ * Snap a logical coordinate so an axis-aligned stroke of `physWidth` device
28
+ * pixels lands exactly on the device-pixel grid: odd widths center on a
29
+ * half-pixel, even widths sit on a pixel boundary.
30
+ */
31
+ export declare function snapToPhysical(v: number, physWidth?: number, dpr?: number): number;
32
+ /**
33
+ * Round a logical coordinate to the nearest device-pixel boundary.
34
+ * Use for diagonal endpoints — keeps lines from "crawling" during pans and
35
+ * avoids fractional-pixel endpoint fuzz (diagonal bodies stay antialiased).
36
+ */
37
+ export declare function snapPoint(v: number, dpr?: number): number;
38
+ //# sourceMappingURL=snap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snap.d.ts","sourceRoot":"","sources":["../../src/pixi/snap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,iDAAiD;AACjD,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,YAAY,EAAE,MAAM,EACpB,GAAG,GAAE,MAAqB,GACzB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAGjC;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,CAAC,EAAE,MAAM,EACT,SAAS,SAAI,EACb,GAAG,GAAE,MAAqB,GACzB,MAAM,CAGR;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,GAAE,MAAqB,GAAG,MAAM,CAEvE"}
@@ -0,0 +1,21 @@
1
+ import React from 'react';
2
+ import type { ChartContextSnapshot } from '@forgecharts/types';
3
+ /**
4
+ * AgentFAB — Floating Action Button for agent interaction.
5
+ *
6
+ * Features:
7
+ * - Pulsing animation ring on idle
8
+ * - Radial menu with "Type" and "Speak" options
9
+ * - Wave animation during responding
10
+ * - Mic icon during recording
11
+ * - Error state with visual feedback
12
+ */
13
+ interface AgentFABProps {
14
+ onTypeClick?: () => void;
15
+ onSpeakClick?: () => void;
16
+ chartContext?: ChartContextSnapshot;
17
+ onOpenPanel?: () => void;
18
+ }
19
+ export declare function AgentFAB(props?: AgentFABProps): React.JSX.Element;
20
+ export {};
21
+ //# sourceMappingURL=AgentFAB.d.ts.map