@luxalgo/vela 0.8.3 → 0.8.4

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 (44) hide show
  1. package/dist/{DataProvider-wbtJ3-Sa.d.cts → DataProvider-Bw58CjYy.d.cts} +1 -1
  2. package/dist/{DataProvider-oH78tYXL.d.ts → DataProvider-Byo8pEv0.d.ts} +1 -1
  3. package/dist/{chunk-KWI3YDBW.js → chunk-ALTGHKIM.js} +584 -25
  4. package/dist/{chunk-TO3GIK7Z.js → chunk-AUOB7A5Y.js} +2 -2
  5. package/dist/{chunk-VHGACEHO.js → chunk-I2U4NZD2.js} +7 -1
  6. package/dist/{chunk-2IPXYM4B.js → chunk-MOJ4T26N.js} +88 -5
  7. package/dist/{chunk-HMHA733L.js → chunk-UNUVPQFW.js} +1924 -734
  8. package/dist/{chunk-G7B7ZCBF.js → chunk-WY5H4S4I.js} +1 -1
  9. package/dist/{contributions-BhOBRenr.d.cts → contributions-BY3zSYiZ.d.ts} +56 -5
  10. package/dist/{contributions-HGqnNb_P.d.ts → contributions-DOm40g5-.d.cts} +56 -5
  11. package/dist/index.cjs +2583 -828
  12. package/dist/index.d.cts +9 -15
  13. package/dist/index.d.ts +9 -15
  14. package/dist/index.js +4 -4
  15. package/dist/{options-lMUwmRwh.d.cts → options-CSXbjMM5.d.cts} +64 -4
  16. package/dist/{options-lMUwmRwh.d.ts → options-CSXbjMM5.d.ts} +64 -4
  17. package/dist/{plugin-Cr2Pj8q8.d.ts → plugin-BDxUhGO3.d.ts} +3 -3
  18. package/dist/{plugin-Do5J5xuF.d.cts → plugin-CiQVyETg.d.cts} +3 -3
  19. package/dist/plugin.cjs +555 -17
  20. package/dist/plugin.d.cts +4 -4
  21. package/dist/plugin.d.ts +4 -4
  22. package/dist/plugin.js +2 -2
  23. package/dist/providers/binance.d.cts +2 -2
  24. package/dist/providers/binance.d.ts +2 -2
  25. package/dist/providers/coinbase.d.cts +2 -2
  26. package/dist/providers/coinbase.d.ts +2 -2
  27. package/dist/providers/hyperliquid.d.cts +2 -2
  28. package/dist/providers/hyperliquid.d.ts +2 -2
  29. package/dist/{statusline-model-B-2xGlB_.d.cts → statusline-model-C9tYXuux.d.ts} +19 -4
  30. package/dist/{statusline-model-CY1wzxHg.d.ts → statusline-model-DUBX6Fib.d.cts} +19 -4
  31. package/dist/ui.d.cts +1 -1
  32. package/dist/ui.d.ts +1 -1
  33. package/dist/ui.js +3 -3
  34. package/dist/vela.global.js +2590 -835
  35. package/dist/vela.global.min.js +124 -54
  36. package/dist/widget.cjs +2807 -969
  37. package/dist/widget.d.cts +6 -6
  38. package/dist/widget.d.ts +6 -6
  39. package/dist/widget.js +7 -7
  40. package/dist/workspace.cjs +2807 -969
  41. package/dist/workspace.d.cts +19 -5
  42. package/dist/workspace.d.ts +19 -5
  43. package/dist/workspace.js +6 -6
  44. package/package.json +1 -1
package/dist/index.d.cts CHANGED
@@ -1,10 +1,10 @@
1
- import { D as DrawingsDocument, d as Resolved, e as ReplayTick, f as DataControl, g as ReplayTickSource } from './contributions-BhOBRenr.cjs';
2
- export { B as BarsChangeReason, C as CellStateContext, h as CodeUpdateResult, i as ContextMenuPointer, j as ContextSelect, k as DrawingsControl, l as EngineAlert, m as EngineCapabilities, n as EngineContextSnapshot, o as EngineFactory, p as EngineWarning, q as ExecutionHandlers, r as ExecutionMarket, s as ExecutionRequest, t as ExecutionSession, E as ExternalIndicatorEntry, F as FetchSeries, u as IndicatorEventMap, I as IndicatorHandle, v as IndicatorSummary, L as LegendActionDescriptor, w as LegendCalloutContent, x as LegendCalloutDescriptor, y as LegendCalloutItem, z as LegendCalloutSpec, A as LegendIndicatorInfo, M as MarksControl, N as NativeIndicator, G as NativeIndicatorContext, H as NativeIndicatorDescriptor, J as NativeIndicatorInfo, K as NativeIndicatorOutput, O as OVERRIDABLE_TOPBAR_IDS, P as ParsedSymbol, Q as PreparedScript, T as RendererControl, a as ReplayBounds, U as ReplayControl, X as ReplayEndReason, Y as ReplayStartOptions, R as ReplayState, Z as RunIndicatorResult, _ as SceneInspection, c as ScriptRun, $ as ScriptRunCause, a0 as ScriptRunResult, S as ScriptingEngine, a1 as SidePanelButton, a2 as SidePanelDescriptor, a3 as SidePanelHandle, a4 as SidePanelHeader, a5 as StatePersistenceHandler, a6 as StrategyFill, a7 as StrategyState, a8 as StrategyTrade, a9 as SymbolRankingHook, aa as TypedEventBus, V as Vela, ab as VelaDeps, b as VelaEventMap, ac as VisibleBarRange, ad as WidgetActionDescriptor, ae as WidgetActionTarget, af as WidgetAttachment, W as WidgetContext, ag as getNativeIndicator, ah as legendActions, ai as legendCallouts, aj as nativeIndicatorDescriptors, ak as nativeIndicatorTypes, al as registerDefaultEngine, am as registerLegendAction, an as registerLegendCallout, ao as registerNativeIndicator, ap as registerSidePanel, aq as registerStatePersistence, ar as registerSymbolRanking, as as registerWidgetAction, at as registerWidgetAttachment, au as resolveEngines, av as sidePanels, aw as statePersistenceHandlers, ax as symbolRanking, ay as topbarActionOverride, az as unregisterDefaultEngine, aA as unregisterLegendAction, aB as unregisterLegendCallout, aC as unregisterNativeIndicator, aD as unregisterSidePanel, aE as unregisterStatePersistence, aF as unregisterWidgetAction, aG as unregisterWidgetAttachment, aH as widgetActions, aI as widgetAttachments } from './contributions-BhOBRenr.cjs';
3
- import { D as Drawing, S as SerializedDrawing, U as Unsubscribe, L as LineStyle, P as PriceStyle, e as IChartRenderer, R as RendererCapabilities, f as RendererDisplayOptions, g as IndicatorRenderHandle, h as IndicatorStatus, c as VelaTheme, W as WallClock, O as OHLCV, i as Pane, j as PaneAction, k as MoveTarget, l as IndicatorModel, m as ScenePatch, I as InputValue, n as SymbolPickerFn, o as LegendActionView, p as LegendCalloutView, q as InputChangeEvent, T as ThemeName, C as CrosshairEvent, r as ClickEvent, A as AxisLongPressEvent, s as TimelineMark, t as MarkGroup, u as MarkClickEvent, a as VisibleRange, v as DataWindowReadout, w as IDrawingsRendererPort, x as Millis, y as SnapMode, z as DrawingTypeKey, B as ToolbarDefinition, M as MarketConfig, E as MarketSnapshot } from './options-lMUwmRwh.cjs';
4
- export { F as AddIndicatorOptions, G as AnimationConfig, H as Background, J as BoxFontFamily, K as BoxHAlign, Q as BoxTextSize, X as BoxVAlign, Y as CandleBarColor, Z as CandleSeries, _ as CandleStyle, $ as DataWindowGroup, a0 as DataWindowOHLC, a1 as DataWindowRow, a2 as DirtyRange, a3 as DrawingBox, a4 as DrawingExtend, a5 as DrawingIntent, a6 as DrawingLabel, a7 as DrawingLine, a8 as DrawingLinefill, a9 as DrawingMode, aa as DrawingPoint, ab as DrawingPolyline, ac as DrawingSeriesBar, ad as DrawingSeriesGateway, ae as DrawingSeriesState, af as DrawingStyle, ag as DrawingTable, ah as DrawingText, ai as DrawingXLoc, aj as DrawingsOption, ak as Fill, al as FillGradientStop, am as IndicatorMeta, an as InputCondition, ao as InputSchema, ap as InputType, aq as InputWhen, ar as IntroAnimation, as as IntroConfig, at as IntroStyle, au as LabelStyle, av as LabelYLoc, aw as LineLikeKind, ax as LineLikeSeries, ay as LineLikeStyle, az as MarkContent, aA as MarkContentSource, aB as MarkGlyph, aC as MarkPanelItem, aD as MarkShape, aE as MarkerPoint, aF as MarkerSeries, aG as MarketSwitch, aH as PaneAxis, aI as PaneAxisBand, aJ as PaneHint, aK as PaneKind, aL as PolylinePoint, aM as PriceAxisOptions, aN as PriceAxisTick, aO as PriceAxisTickContext, aP as PriceAxisTicksFn, aQ as PriceLine, aR as Projector, aS as ProviderName, aT as RendererConstructor, aU as Scene, aV as SchemaPatch, aW as SecondClock, aX as SeriesDisplay, aY as SeriesKind, aZ as SeriesPoint, a_ as SeriesSpec, a$ as SeriesSurface, b0 as SeriesValueDelta, b1 as SettingsField, b2 as SettingsSchema, b3 as SettingsVisibilityPolicy, b4 as TableCell, b5 as TableMerge, b6 as TablePosition, b7 as ToolbarGroupConfig, b8 as TradeExecution, b9 as ValuePatch, b as VelaOptions, V as VisibleRangePreset, ba as buildToolbar, bb as defaultToolbar, bc as inputDeltas, bd as inputVisible, be as seriesInScale, bf as seriesShownOn } from './options-lMUwmRwh.cjs';
5
- import { S as SettingsSelectOption } from './plugin-Do5J5xuF.cjs';
6
- export { A as ACCENT, a as ACCENT_BRIGHT, B as BEARISH, b as BULLISH, c as BarTransform, d as BasePaintingModulation, C as CATEGORICAL, e as CHIP_PLATE, f as CROSSHAIR, g as ChartTypeDefinition, h as ChartTypeSettingsInstance, i as ChartTypeSettingsSection, j as ChartTypeSettingsSubsection, D as DrawingTypeMeta, H as HIGHLIGHT, I as INFO, k as INVALID, l as IdentifiableKind, M as MARKER, N as NEUTRAL, m as NormalizedSettingsRow, R as RendererLayerArgs, n as RendererLayerDefinition, o as RendererLayerInstance, p as SERIES_LINE, q as SESSION_OFF, r as SESSION_POST, s as SESSION_PRE, t as SLATE, u as SLATE_DEEP, v as SeriesDataEngine, w as SeriesDataEngineHost, x as SettingsInlineControl, y as SettingsRowCondition, z as SettingsRowDescriptor, E as SettingsRowInlineNumber, F as SettingsRowSwatch, G as SettingsRowValueKey, J as SettingsRowWhen, K as SettingsRowWidth, L as SettingsValueRow, T as TRADE_EXIT, O as TRADE_LONG, P as TRADE_SHORT, V as VALID, W as WARNING, Q as categoricalColor, U as chartType, X as chartTypes, Y as createDrawing, Z as deserializeDrawing, _ as drawingTypes, $ as getDrawingType, a0 as normalizeSettingsRow, a1 as registerChartType, a2 as registerDrawingType, a3 as registerRendererDefaults, a4 as registerRendererLayer, a5 as rendererDefaults, a6 as rendererLayers, a7 as settingsRowValueKeys, a8 as stableSeriesId, a9 as tickerModifierIds, aa as unregisterChartType, ab as unregisterRendererDefaults, ac as unregisterRendererLayer } from './plugin-Do5J5xuF.cjs';
7
- import { M as MarketDataFeed, D as DataProvider, P as ProviderInfo, a as SymbolDescriptor, S as SymbolInfo, b as ProviderCapabilities, B as BarRange } from './DataProvider-wbtJ3-Sa.cjs';
1
+ import { D as DrawingsDocument, d as Resolved, e as ReplayTick, f as DataControl, g as ReplayTickSource } from './contributions-DOm40g5-.cjs';
2
+ export { B as BarsChangeReason, C as CellStateContext, h as CodeUpdateResult, i as ContextMenuPointer, j as ContextSelect, k as DrawingsControl, l as EngineAlert, m as EngineCapabilities, n as EngineContextSnapshot, o as EngineFactory, p as EngineWarning, q as ExecutionHandlers, r as ExecutionMarket, s as ExecutionRequest, t as ExecutionSession, E as ExternalIndicatorEntry, F as FetchSeries, u as IndicatorEventMap, I as IndicatorHandle, v as IndicatorSummary, L as LegendActionDescriptor, w as LegendCalloutContent, x as LegendCalloutDescriptor, y as LegendCalloutItem, z as LegendCalloutSpec, A as LegendIndicatorInfo, M as MarksControl, N as NativeIndicator, G as NativeIndicatorContext, H as NativeIndicatorDescriptor, J as NativeIndicatorInfo, K as NativeIndicatorOutput, O as OVERRIDABLE_TOPBAR_IDS, P as ParsedSymbol, Q as PreparedScript, T as RendererControl, a as ReplayBounds, U as ReplayControl, X as ReplayEndReason, Y as ReplayStartOptions, R as ReplayState, Z as RunIndicatorResult, _ as SceneInspection, c as ScriptRun, $ as ScriptRunCause, a0 as ScriptRunResult, S as ScriptingEngine, a1 as SidePanelButton, a2 as SidePanelDescriptor, a3 as SidePanelHandle, a4 as SidePanelHeader, a5 as StatePersistenceHandler, a6 as StrategyFill, a7 as StrategyState, a8 as StrategyTrade, a9 as SymbolRankingHook, aa as TypedEventBus, V as Vela, ab as VelaDeps, b as VelaEventMap, ac as VisibleBarRange, ad as WidgetActionDescriptor, ae as WidgetActionTarget, af as WidgetAttachment, W as WidgetContext, ag as getNativeIndicator, ah as legendActions, ai as legendCallouts, aj as nativeIndicatorDescriptors, ak as nativeIndicatorTypes, al as registerDefaultEngine, am as registerLegendAction, an as registerLegendCallout, ao as registerNativeIndicator, ap as registerSidePanel, aq as registerStatePersistence, ar as registerSymbolRanking, as as registerWidgetAction, at as registerWidgetAttachment, au as resolveEngines, av as sidePanels, aw as statePersistenceHandlers, ax as symbolRanking, ay as topbarActionOverride, az as unregisterDefaultEngine, aA as unregisterLegendAction, aB as unregisterLegendCallout, aC as unregisterNativeIndicator, aD as unregisterSidePanel, aE as unregisterStatePersistence, aF as unregisterWidgetAction, aG as unregisterWidgetAttachment, aH as widgetActions, aI as widgetAttachments } from './contributions-DOm40g5-.cjs';
3
+ import { D as Drawing, S as SerializedDrawing, U as Unsubscribe, L as LineStyle, P as PriceStyle, e as IChartRenderer, R as RendererCapabilities, f as RendererDisplayOptions, g as IndicatorRenderHandle, h as IndicatorStatus, c as VelaTheme, W as WallClock, O as OHLCV, i as Pane, j as PaneAction, k as MoveTarget, l as IndicatorModel, m as ScenePatch, I as InputValue, n as SymbolPickerFn, o as LegendActionView, p as LegendCalloutView, q as InputChangeEvent, T as ThemeName, C as CrosshairEvent, r as ClickEvent, A as AxisLongPressEvent, s as TimelineMark, t as MarkGroup, u as MarkClickEvent, a as VisibleRange, v as DataWindowReadout, w as IDrawingsRendererPort, x as Millis, y as SnapMode, z as DrawingTypeKey, B as ToolbarDefinition, M as MarketConfig, E as MarketSnapshot } from './options-CSXbjMM5.cjs';
4
+ export { F as AddIndicatorOptions, G as AnimationConfig, H as Background, J as BoxFontFamily, K as BoxHAlign, Q as BoxTextSize, X as BoxVAlign, Y as CandleBarColor, Z as CandleSeries, _ as CandleStyle, $ as DataWindowGroup, a0 as DataWindowOHLC, a1 as DataWindowRow, a2 as DirtyRange, a3 as DrawingBox, a4 as DrawingExtend, a5 as DrawingIntent, a6 as DrawingLabel, a7 as DrawingLine, a8 as DrawingLinefill, a9 as DrawingMode, aa as DrawingPoint, ab as DrawingPolyline, ac as DrawingSeriesBar, ad as DrawingSeriesGateway, ae as DrawingSeriesState, af as DrawingStyle, ag as DrawingTable, ah as DrawingText, ai as DrawingXLoc, aj as DrawingsOption, ak as Fill, al as FillGradientStop, am as IndicatorMeta, an as InputCondition, ao as InputSchema, ap as InputType, aq as InputWhen, ar as IntroAnimation, as as IntroConfig, at as IntroStyle, au as LabelStyle, av as LabelYLoc, aw as LineLikeKind, ax as LineLikeSeries, ay as LineLikeStyle, az as MarkContent, aA as MarkContentSource, aB as MarkGlyph, aC as MarkPanelItem, aD as MarkShape, aE as MarkerPoint, aF as MarkerSeries, aG as MarketSwitch, aH as PaneAxis, aI as PaneAxisBand, aJ as PaneHint, aK as PaneKind, aL as PolylinePoint, aM as PriceAxisOptions, aN as PriceAxisTick, aO as PriceAxisTickContext, aP as PriceAxisTicksFn, aQ as PriceLine, aR as Projector, aS as ProviderName, aT as RendererConstructor, aU as Scene, aV as SchemaPatch, aW as SecondClock, aX as SeriesDisplay, aY as SeriesKind, aZ as SeriesPoint, a_ as SeriesSpec, a$ as SeriesSurface, b0 as SeriesValueDelta, b1 as SettingsField, b2 as SettingsSchema, b3 as SettingsVisibilityPolicy, b4 as TableCell, b5 as TableMerge, b6 as TablePosition, b7 as ToolbarGroupConfig, b8 as TradeExecution, b9 as ValuePatch, b as VelaOptions, V as VisibleRangePreset, ba as buildToolbar, bb as defaultToolbar, bc as inputDeltas, bd as inputVisible, be as seriesInScale, bf as seriesShownOn } from './options-CSXbjMM5.cjs';
5
+ import { S as SettingsSelectOption } from './plugin-CiQVyETg.cjs';
6
+ export { A as ACCENT, a as ACCENT_BRIGHT, B as BEARISH, b as BULLISH, c as BarTransform, d as BasePaintingModulation, C as CATEGORICAL, e as CHIP_PLATE, f as CROSSHAIR, g as ChartTypeDefinition, h as ChartTypeSettingsInstance, i as ChartTypeSettingsSection, j as ChartTypeSettingsSubsection, D as DrawingTypeMeta, H as HIGHLIGHT, I as INFO, k as INVALID, l as IdentifiableKind, M as MARKER, N as NEUTRAL, m as NormalizedSettingsRow, R as RendererLayerArgs, n as RendererLayerDefinition, o as RendererLayerInstance, p as SERIES_LINE, q as SESSION_OFF, r as SESSION_POST, s as SESSION_PRE, t as SLATE, u as SLATE_DEEP, v as SeriesDataEngine, w as SeriesDataEngineHost, x as SettingsInlineControl, y as SettingsRowCondition, z as SettingsRowDescriptor, E as SettingsRowInlineNumber, F as SettingsRowSwatch, G as SettingsRowValueKey, J as SettingsRowWhen, K as SettingsRowWidth, L as SettingsValueRow, T as TRADE_EXIT, O as TRADE_LONG, P as TRADE_SHORT, V as VALID, W as WARNING, Q as categoricalColor, U as chartType, X as chartTypes, Y as createDrawing, Z as deserializeDrawing, _ as drawingTypes, $ as getDrawingType, a0 as normalizeSettingsRow, a1 as registerChartType, a2 as registerDrawingType, a3 as registerRendererDefaults, a4 as registerRendererLayer, a5 as rendererDefaults, a6 as rendererLayers, a7 as settingsRowValueKeys, a8 as stableSeriesId, a9 as tickerModifierIds, aa as unregisterChartType, ab as unregisterRendererDefaults, ac as unregisterRendererLayer } from './plugin-CiQVyETg.cjs';
7
+ import { M as MarketDataFeed, D as DataProvider, P as ProviderInfo, a as SymbolDescriptor, S as SymbolInfo, b as ProviderCapabilities, B as BarRange } from './DataProvider-Bw58CjYy.cjs';
8
8
  export { C as CONTEXT_MENU_BUILTIN_ORDER, D as DEFAULT_PANEL_MAX_WIDTH, a as DEFAULT_PANEL_MIN_WIDTH, b as DEFAULT_PANEL_WIDTH, S as SidePanelOptions, c as clampPanelWidth } from './side-panel-_2UK1gSm.cjs';
9
9
  export { i as iconMarkup, r as registerIcon } from './icons-BZYbJXSV.cjs';
10
10
  export { a as KeyBindingDescriptor, R as ResolvedBinding } from './keymap-CGOz5F5f.cjs';
@@ -1408,8 +1408,6 @@ declare class MultiProviderFeed implements MarketDataFeed {
1408
1408
  private readonly cache;
1409
1409
  /** The chart symbol's resolved provider — the default for bare secondary symbols. */
1410
1410
  private primaryProvider;
1411
- /** A copy of offline history, used to synthesize ticks for the `data` path. */
1412
- private liveBars;
1413
1411
  /** Sync-accessible symbol metadata, warmed by load()/symbolInfoFor (the engine reads it synchronously). */
1414
1412
  private readonly symInfoCache;
1415
1413
  /** Requests in flight, keyed like the cache — every concurrent asker shares one round trip. */
@@ -1477,13 +1475,9 @@ declare class MultiProviderFeed implements MarketDataFeed {
1477
1475
  symbolInfo(cfg: MarketConfig): SymbolInfo | undefined;
1478
1476
  private prefetchSymbolInfo;
1479
1477
  loadRange(cfg: MarketConfig, range: BarRange): Promise<OHLCV[]>;
1478
+ /** Offline `data` has no source of ticks: the caller's bars are shown exactly as given,
1479
+ * and live updates need a registered provider that implements `subscribe`. */
1480
1480
  subscribe(cfg: MarketConfig, onBar: (bar: OHLCV) => void): Unsubscribe;
1481
- /**
1482
- * Synthesize price-relative ticks for offline `data` runs (no network), so the
1483
- * forming-candle path is exercised at any price scale. Mirrors the bundled
1484
- * provider feed's offline behavior.
1485
- */
1486
- private synthesizeTicks;
1487
1481
  }
1488
1482
 
1489
1483
  /**
package/dist/index.d.ts CHANGED
@@ -1,10 +1,10 @@
1
- import { D as DrawingsDocument, d as Resolved, e as ReplayTick, f as DataControl, g as ReplayTickSource } from './contributions-HGqnNb_P.js';
2
- export { B as BarsChangeReason, C as CellStateContext, h as CodeUpdateResult, i as ContextMenuPointer, j as ContextSelect, k as DrawingsControl, l as EngineAlert, m as EngineCapabilities, n as EngineContextSnapshot, o as EngineFactory, p as EngineWarning, q as ExecutionHandlers, r as ExecutionMarket, s as ExecutionRequest, t as ExecutionSession, E as ExternalIndicatorEntry, F as FetchSeries, u as IndicatorEventMap, I as IndicatorHandle, v as IndicatorSummary, L as LegendActionDescriptor, w as LegendCalloutContent, x as LegendCalloutDescriptor, y as LegendCalloutItem, z as LegendCalloutSpec, A as LegendIndicatorInfo, M as MarksControl, N as NativeIndicator, G as NativeIndicatorContext, H as NativeIndicatorDescriptor, J as NativeIndicatorInfo, K as NativeIndicatorOutput, O as OVERRIDABLE_TOPBAR_IDS, P as ParsedSymbol, Q as PreparedScript, T as RendererControl, a as ReplayBounds, U as ReplayControl, X as ReplayEndReason, Y as ReplayStartOptions, R as ReplayState, Z as RunIndicatorResult, _ as SceneInspection, c as ScriptRun, $ as ScriptRunCause, a0 as ScriptRunResult, S as ScriptingEngine, a1 as SidePanelButton, a2 as SidePanelDescriptor, a3 as SidePanelHandle, a4 as SidePanelHeader, a5 as StatePersistenceHandler, a6 as StrategyFill, a7 as StrategyState, a8 as StrategyTrade, a9 as SymbolRankingHook, aa as TypedEventBus, V as Vela, ab as VelaDeps, b as VelaEventMap, ac as VisibleBarRange, ad as WidgetActionDescriptor, ae as WidgetActionTarget, af as WidgetAttachment, W as WidgetContext, ag as getNativeIndicator, ah as legendActions, ai as legendCallouts, aj as nativeIndicatorDescriptors, ak as nativeIndicatorTypes, al as registerDefaultEngine, am as registerLegendAction, an as registerLegendCallout, ao as registerNativeIndicator, ap as registerSidePanel, aq as registerStatePersistence, ar as registerSymbolRanking, as as registerWidgetAction, at as registerWidgetAttachment, au as resolveEngines, av as sidePanels, aw as statePersistenceHandlers, ax as symbolRanking, ay as topbarActionOverride, az as unregisterDefaultEngine, aA as unregisterLegendAction, aB as unregisterLegendCallout, aC as unregisterNativeIndicator, aD as unregisterSidePanel, aE as unregisterStatePersistence, aF as unregisterWidgetAction, aG as unregisterWidgetAttachment, aH as widgetActions, aI as widgetAttachments } from './contributions-HGqnNb_P.js';
3
- import { D as Drawing, S as SerializedDrawing, U as Unsubscribe, L as LineStyle, P as PriceStyle, e as IChartRenderer, R as RendererCapabilities, f as RendererDisplayOptions, g as IndicatorRenderHandle, h as IndicatorStatus, c as VelaTheme, W as WallClock, O as OHLCV, i as Pane, j as PaneAction, k as MoveTarget, l as IndicatorModel, m as ScenePatch, I as InputValue, n as SymbolPickerFn, o as LegendActionView, p as LegendCalloutView, q as InputChangeEvent, T as ThemeName, C as CrosshairEvent, r as ClickEvent, A as AxisLongPressEvent, s as TimelineMark, t as MarkGroup, u as MarkClickEvent, a as VisibleRange, v as DataWindowReadout, w as IDrawingsRendererPort, x as Millis, y as SnapMode, z as DrawingTypeKey, B as ToolbarDefinition, M as MarketConfig, E as MarketSnapshot } from './options-lMUwmRwh.js';
4
- export { F as AddIndicatorOptions, G as AnimationConfig, H as Background, J as BoxFontFamily, K as BoxHAlign, Q as BoxTextSize, X as BoxVAlign, Y as CandleBarColor, Z as CandleSeries, _ as CandleStyle, $ as DataWindowGroup, a0 as DataWindowOHLC, a1 as DataWindowRow, a2 as DirtyRange, a3 as DrawingBox, a4 as DrawingExtend, a5 as DrawingIntent, a6 as DrawingLabel, a7 as DrawingLine, a8 as DrawingLinefill, a9 as DrawingMode, aa as DrawingPoint, ab as DrawingPolyline, ac as DrawingSeriesBar, ad as DrawingSeriesGateway, ae as DrawingSeriesState, af as DrawingStyle, ag as DrawingTable, ah as DrawingText, ai as DrawingXLoc, aj as DrawingsOption, ak as Fill, al as FillGradientStop, am as IndicatorMeta, an as InputCondition, ao as InputSchema, ap as InputType, aq as InputWhen, ar as IntroAnimation, as as IntroConfig, at as IntroStyle, au as LabelStyle, av as LabelYLoc, aw as LineLikeKind, ax as LineLikeSeries, ay as LineLikeStyle, az as MarkContent, aA as MarkContentSource, aB as MarkGlyph, aC as MarkPanelItem, aD as MarkShape, aE as MarkerPoint, aF as MarkerSeries, aG as MarketSwitch, aH as PaneAxis, aI as PaneAxisBand, aJ as PaneHint, aK as PaneKind, aL as PolylinePoint, aM as PriceAxisOptions, aN as PriceAxisTick, aO as PriceAxisTickContext, aP as PriceAxisTicksFn, aQ as PriceLine, aR as Projector, aS as ProviderName, aT as RendererConstructor, aU as Scene, aV as SchemaPatch, aW as SecondClock, aX as SeriesDisplay, aY as SeriesKind, aZ as SeriesPoint, a_ as SeriesSpec, a$ as SeriesSurface, b0 as SeriesValueDelta, b1 as SettingsField, b2 as SettingsSchema, b3 as SettingsVisibilityPolicy, b4 as TableCell, b5 as TableMerge, b6 as TablePosition, b7 as ToolbarGroupConfig, b8 as TradeExecution, b9 as ValuePatch, b as VelaOptions, V as VisibleRangePreset, ba as buildToolbar, bb as defaultToolbar, bc as inputDeltas, bd as inputVisible, be as seriesInScale, bf as seriesShownOn } from './options-lMUwmRwh.js';
5
- import { S as SettingsSelectOption } from './plugin-Cr2Pj8q8.js';
6
- export { A as ACCENT, a as ACCENT_BRIGHT, B as BEARISH, b as BULLISH, c as BarTransform, d as BasePaintingModulation, C as CATEGORICAL, e as CHIP_PLATE, f as CROSSHAIR, g as ChartTypeDefinition, h as ChartTypeSettingsInstance, i as ChartTypeSettingsSection, j as ChartTypeSettingsSubsection, D as DrawingTypeMeta, H as HIGHLIGHT, I as INFO, k as INVALID, l as IdentifiableKind, M as MARKER, N as NEUTRAL, m as NormalizedSettingsRow, R as RendererLayerArgs, n as RendererLayerDefinition, o as RendererLayerInstance, p as SERIES_LINE, q as SESSION_OFF, r as SESSION_POST, s as SESSION_PRE, t as SLATE, u as SLATE_DEEP, v as SeriesDataEngine, w as SeriesDataEngineHost, x as SettingsInlineControl, y as SettingsRowCondition, z as SettingsRowDescriptor, E as SettingsRowInlineNumber, F as SettingsRowSwatch, G as SettingsRowValueKey, J as SettingsRowWhen, K as SettingsRowWidth, L as SettingsValueRow, T as TRADE_EXIT, O as TRADE_LONG, P as TRADE_SHORT, V as VALID, W as WARNING, Q as categoricalColor, U as chartType, X as chartTypes, Y as createDrawing, Z as deserializeDrawing, _ as drawingTypes, $ as getDrawingType, a0 as normalizeSettingsRow, a1 as registerChartType, a2 as registerDrawingType, a3 as registerRendererDefaults, a4 as registerRendererLayer, a5 as rendererDefaults, a6 as rendererLayers, a7 as settingsRowValueKeys, a8 as stableSeriesId, a9 as tickerModifierIds, aa as unregisterChartType, ab as unregisterRendererDefaults, ac as unregisterRendererLayer } from './plugin-Cr2Pj8q8.js';
7
- import { M as MarketDataFeed, D as DataProvider, P as ProviderInfo, a as SymbolDescriptor, S as SymbolInfo, b as ProviderCapabilities, B as BarRange } from './DataProvider-oH78tYXL.js';
1
+ import { D as DrawingsDocument, d as Resolved, e as ReplayTick, f as DataControl, g as ReplayTickSource } from './contributions-BY3zSYiZ.js';
2
+ export { B as BarsChangeReason, C as CellStateContext, h as CodeUpdateResult, i as ContextMenuPointer, j as ContextSelect, k as DrawingsControl, l as EngineAlert, m as EngineCapabilities, n as EngineContextSnapshot, o as EngineFactory, p as EngineWarning, q as ExecutionHandlers, r as ExecutionMarket, s as ExecutionRequest, t as ExecutionSession, E as ExternalIndicatorEntry, F as FetchSeries, u as IndicatorEventMap, I as IndicatorHandle, v as IndicatorSummary, L as LegendActionDescriptor, w as LegendCalloutContent, x as LegendCalloutDescriptor, y as LegendCalloutItem, z as LegendCalloutSpec, A as LegendIndicatorInfo, M as MarksControl, N as NativeIndicator, G as NativeIndicatorContext, H as NativeIndicatorDescriptor, J as NativeIndicatorInfo, K as NativeIndicatorOutput, O as OVERRIDABLE_TOPBAR_IDS, P as ParsedSymbol, Q as PreparedScript, T as RendererControl, a as ReplayBounds, U as ReplayControl, X as ReplayEndReason, Y as ReplayStartOptions, R as ReplayState, Z as RunIndicatorResult, _ as SceneInspection, c as ScriptRun, $ as ScriptRunCause, a0 as ScriptRunResult, S as ScriptingEngine, a1 as SidePanelButton, a2 as SidePanelDescriptor, a3 as SidePanelHandle, a4 as SidePanelHeader, a5 as StatePersistenceHandler, a6 as StrategyFill, a7 as StrategyState, a8 as StrategyTrade, a9 as SymbolRankingHook, aa as TypedEventBus, V as Vela, ab as VelaDeps, b as VelaEventMap, ac as VisibleBarRange, ad as WidgetActionDescriptor, ae as WidgetActionTarget, af as WidgetAttachment, W as WidgetContext, ag as getNativeIndicator, ah as legendActions, ai as legendCallouts, aj as nativeIndicatorDescriptors, ak as nativeIndicatorTypes, al as registerDefaultEngine, am as registerLegendAction, an as registerLegendCallout, ao as registerNativeIndicator, ap as registerSidePanel, aq as registerStatePersistence, ar as registerSymbolRanking, as as registerWidgetAction, at as registerWidgetAttachment, au as resolveEngines, av as sidePanels, aw as statePersistenceHandlers, ax as symbolRanking, ay as topbarActionOverride, az as unregisterDefaultEngine, aA as unregisterLegendAction, aB as unregisterLegendCallout, aC as unregisterNativeIndicator, aD as unregisterSidePanel, aE as unregisterStatePersistence, aF as unregisterWidgetAction, aG as unregisterWidgetAttachment, aH as widgetActions, aI as widgetAttachments } from './contributions-BY3zSYiZ.js';
3
+ import { D as Drawing, S as SerializedDrawing, U as Unsubscribe, L as LineStyle, P as PriceStyle, e as IChartRenderer, R as RendererCapabilities, f as RendererDisplayOptions, g as IndicatorRenderHandle, h as IndicatorStatus, c as VelaTheme, W as WallClock, O as OHLCV, i as Pane, j as PaneAction, k as MoveTarget, l as IndicatorModel, m as ScenePatch, I as InputValue, n as SymbolPickerFn, o as LegendActionView, p as LegendCalloutView, q as InputChangeEvent, T as ThemeName, C as CrosshairEvent, r as ClickEvent, A as AxisLongPressEvent, s as TimelineMark, t as MarkGroup, u as MarkClickEvent, a as VisibleRange, v as DataWindowReadout, w as IDrawingsRendererPort, x as Millis, y as SnapMode, z as DrawingTypeKey, B as ToolbarDefinition, M as MarketConfig, E as MarketSnapshot } from './options-CSXbjMM5.js';
4
+ export { F as AddIndicatorOptions, G as AnimationConfig, H as Background, J as BoxFontFamily, K as BoxHAlign, Q as BoxTextSize, X as BoxVAlign, Y as CandleBarColor, Z as CandleSeries, _ as CandleStyle, $ as DataWindowGroup, a0 as DataWindowOHLC, a1 as DataWindowRow, a2 as DirtyRange, a3 as DrawingBox, a4 as DrawingExtend, a5 as DrawingIntent, a6 as DrawingLabel, a7 as DrawingLine, a8 as DrawingLinefill, a9 as DrawingMode, aa as DrawingPoint, ab as DrawingPolyline, ac as DrawingSeriesBar, ad as DrawingSeriesGateway, ae as DrawingSeriesState, af as DrawingStyle, ag as DrawingTable, ah as DrawingText, ai as DrawingXLoc, aj as DrawingsOption, ak as Fill, al as FillGradientStop, am as IndicatorMeta, an as InputCondition, ao as InputSchema, ap as InputType, aq as InputWhen, ar as IntroAnimation, as as IntroConfig, at as IntroStyle, au as LabelStyle, av as LabelYLoc, aw as LineLikeKind, ax as LineLikeSeries, ay as LineLikeStyle, az as MarkContent, aA as MarkContentSource, aB as MarkGlyph, aC as MarkPanelItem, aD as MarkShape, aE as MarkerPoint, aF as MarkerSeries, aG as MarketSwitch, aH as PaneAxis, aI as PaneAxisBand, aJ as PaneHint, aK as PaneKind, aL as PolylinePoint, aM as PriceAxisOptions, aN as PriceAxisTick, aO as PriceAxisTickContext, aP as PriceAxisTicksFn, aQ as PriceLine, aR as Projector, aS as ProviderName, aT as RendererConstructor, aU as Scene, aV as SchemaPatch, aW as SecondClock, aX as SeriesDisplay, aY as SeriesKind, aZ as SeriesPoint, a_ as SeriesSpec, a$ as SeriesSurface, b0 as SeriesValueDelta, b1 as SettingsField, b2 as SettingsSchema, b3 as SettingsVisibilityPolicy, b4 as TableCell, b5 as TableMerge, b6 as TablePosition, b7 as ToolbarGroupConfig, b8 as TradeExecution, b9 as ValuePatch, b as VelaOptions, V as VisibleRangePreset, ba as buildToolbar, bb as defaultToolbar, bc as inputDeltas, bd as inputVisible, be as seriesInScale, bf as seriesShownOn } from './options-CSXbjMM5.js';
5
+ import { S as SettingsSelectOption } from './plugin-BDxUhGO3.js';
6
+ export { A as ACCENT, a as ACCENT_BRIGHT, B as BEARISH, b as BULLISH, c as BarTransform, d as BasePaintingModulation, C as CATEGORICAL, e as CHIP_PLATE, f as CROSSHAIR, g as ChartTypeDefinition, h as ChartTypeSettingsInstance, i as ChartTypeSettingsSection, j as ChartTypeSettingsSubsection, D as DrawingTypeMeta, H as HIGHLIGHT, I as INFO, k as INVALID, l as IdentifiableKind, M as MARKER, N as NEUTRAL, m as NormalizedSettingsRow, R as RendererLayerArgs, n as RendererLayerDefinition, o as RendererLayerInstance, p as SERIES_LINE, q as SESSION_OFF, r as SESSION_POST, s as SESSION_PRE, t as SLATE, u as SLATE_DEEP, v as SeriesDataEngine, w as SeriesDataEngineHost, x as SettingsInlineControl, y as SettingsRowCondition, z as SettingsRowDescriptor, E as SettingsRowInlineNumber, F as SettingsRowSwatch, G as SettingsRowValueKey, J as SettingsRowWhen, K as SettingsRowWidth, L as SettingsValueRow, T as TRADE_EXIT, O as TRADE_LONG, P as TRADE_SHORT, V as VALID, W as WARNING, Q as categoricalColor, U as chartType, X as chartTypes, Y as createDrawing, Z as deserializeDrawing, _ as drawingTypes, $ as getDrawingType, a0 as normalizeSettingsRow, a1 as registerChartType, a2 as registerDrawingType, a3 as registerRendererDefaults, a4 as registerRendererLayer, a5 as rendererDefaults, a6 as rendererLayers, a7 as settingsRowValueKeys, a8 as stableSeriesId, a9 as tickerModifierIds, aa as unregisterChartType, ab as unregisterRendererDefaults, ac as unregisterRendererLayer } from './plugin-BDxUhGO3.js';
7
+ import { M as MarketDataFeed, D as DataProvider, P as ProviderInfo, a as SymbolDescriptor, S as SymbolInfo, b as ProviderCapabilities, B as BarRange } from './DataProvider-Byo8pEv0.js';
8
8
  export { C as CONTEXT_MENU_BUILTIN_ORDER, D as DEFAULT_PANEL_MAX_WIDTH, a as DEFAULT_PANEL_MIN_WIDTH, b as DEFAULT_PANEL_WIDTH, S as SidePanelOptions, c as clampPanelWidth } from './side-panel-_2UK1gSm.js';
9
9
  export { i as iconMarkup, r as registerIcon } from './icons-BZYbJXSV.js';
10
10
  export { a as KeyBindingDescriptor, R as ResolvedBinding } from './keymap-CGOz5F5f.js';
@@ -1408,8 +1408,6 @@ declare class MultiProviderFeed implements MarketDataFeed {
1408
1408
  private readonly cache;
1409
1409
  /** The chart symbol's resolved provider — the default for bare secondary symbols. */
1410
1410
  private primaryProvider;
1411
- /** A copy of offline history, used to synthesize ticks for the `data` path. */
1412
- private liveBars;
1413
1411
  /** Sync-accessible symbol metadata, warmed by load()/symbolInfoFor (the engine reads it synchronously). */
1414
1412
  private readonly symInfoCache;
1415
1413
  /** Requests in flight, keyed like the cache — every concurrent asker shares one round trip. */
@@ -1477,13 +1475,9 @@ declare class MultiProviderFeed implements MarketDataFeed {
1477
1475
  symbolInfo(cfg: MarketConfig): SymbolInfo | undefined;
1478
1476
  private prefetchSymbolInfo;
1479
1477
  loadRange(cfg: MarketConfig, range: BarRange): Promise<OHLCV[]>;
1478
+ /** Offline `data` has no source of ticks: the caller's bars are shown exactly as given,
1479
+ * and live updates need a registered provider that implements `subscribe`. */
1480
1480
  subscribe(cfg: MarketConfig, onBar: (bar: OHLCV) => void): Unsubscribe;
1481
- /**
1482
- * Synthesize price-relative ticks for offline `data` runs (no network), so the
1483
- * forming-candle path is exercised at any price scale. Mirrors the bundled
1484
- * provider feed's offline behavior.
1485
- */
1486
- private synthesizeTicks;
1487
1481
  }
1488
1482
 
1489
1483
  /**
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import './chunk-W5YPYZ2P.js';
2
- export { BarStore, CachingDataFeed, DARK_THEME, DataControl, DrawingStore, DrawingToolbar, DrawingsControl, LIGHT_THEME, MarksControl, MultiProviderFeed, NativeRenderer, RendererControl, ReplayControl, SecondClock, TypedEventBus, Vela, buildToolbar, defaultToolbar, resolveTheme, sharedBarStore, timeframeToMs } from './chunk-HMHA733L.js';
3
- export { CONTEXT_MENU_BUILTIN_ORDER, DEFAULT_PANEL_MAX_WIDTH, DEFAULT_PANEL_MIN_WIDTH, DEFAULT_PANEL_WIDTH, Drawing, OVERRIDABLE_TOPBAR_IDS, chartType, chartTypes, clampPanelWidth, createDrawing, deserializeDrawing, drawingTypes, getDrawingType, getNativeIndicator, inputDeltas, inputVisible, legendActions, legendCallouts, nativeIndicatorDescriptors, nativeIndicatorTypes, normalizeSettingsRow, registerChartType, registerDefaultEngine, registerDrawingType, registerLegendAction, registerLegendCallout, registerNativeIndicator, registerRendererDefaults, registerRendererLayer, registerSidePanel, registerStatePersistence, registerSymbolRanking, registerWidgetAction, registerWidgetAttachment, rendererDefaults, rendererLayers, resolveEngines, seriesInScale, seriesShownOn, settingsRowValueKeys, sidePanels, stableSeriesId, statePersistenceHandlers, symbolRanking, tickerModifierIds, topbarActionOverride, unregisterChartType, unregisterDefaultEngine, unregisterLegendAction, unregisterLegendCallout, unregisterNativeIndicator, unregisterRendererDefaults, unregisterRendererLayer, unregisterSidePanel, unregisterStatePersistence, unregisterWidgetAction, unregisterWidgetAttachment, widgetActions, widgetAttachments } from './chunk-KWI3YDBW.js';
4
- import './chunk-G7B7ZCBF.js';
5
- export { ACCENT, ACCENT_BRIGHT, BEARISH, BULLISH, CATEGORICAL, CHIP_PLATE, CROSSHAIR, HIGHLIGHT, INFO, INVALID, MARKER, NEUTRAL, SERIES_LINE, SESSION_OFF, SESSION_POST, SESSION_PRE, SLATE, SLATE_DEEP, TRADE_EXIT, TRADE_LONG, TRADE_SHORT, VALID, WARNING, categoricalColor, iconMarkup, registerIcon } from './chunk-VHGACEHO.js';
2
+ export { BarStore, CachingDataFeed, DARK_THEME, DataControl, DrawingStore, DrawingToolbar, DrawingsControl, LIGHT_THEME, MarksControl, MultiProviderFeed, NativeRenderer, RendererControl, ReplayControl, SecondClock, TypedEventBus, Vela, buildToolbar, defaultToolbar, resolveTheme, sharedBarStore, timeframeToMs } from './chunk-UNUVPQFW.js';
3
+ export { CONTEXT_MENU_BUILTIN_ORDER, DEFAULT_PANEL_MAX_WIDTH, DEFAULT_PANEL_MIN_WIDTH, DEFAULT_PANEL_WIDTH, Drawing, OVERRIDABLE_TOPBAR_IDS, chartType, chartTypes, clampPanelWidth, createDrawing, deserializeDrawing, drawingTypes, getDrawingType, getNativeIndicator, inputDeltas, inputVisible, legendActions, legendCallouts, nativeIndicatorDescriptors, nativeIndicatorTypes, normalizeSettingsRow, registerChartType, registerDefaultEngine, registerDrawingType, registerLegendAction, registerLegendCallout, registerNativeIndicator, registerRendererDefaults, registerRendererLayer, registerSidePanel, registerStatePersistence, registerSymbolRanking, registerWidgetAction, registerWidgetAttachment, rendererDefaults, rendererLayers, resolveEngines, seriesInScale, seriesShownOn, settingsRowValueKeys, sidePanels, stableSeriesId, statePersistenceHandlers, symbolRanking, tickerModifierIds, topbarActionOverride, unregisterChartType, unregisterDefaultEngine, unregisterLegendAction, unregisterLegendCallout, unregisterNativeIndicator, unregisterRendererDefaults, unregisterRendererLayer, unregisterSidePanel, unregisterStatePersistence, unregisterWidgetAction, unregisterWidgetAttachment, widgetActions, widgetAttachments } from './chunk-ALTGHKIM.js';
4
+ import './chunk-WY5H4S4I.js';
5
+ export { ACCENT, ACCENT_BRIGHT, BEARISH, BULLISH, CATEGORICAL, CHIP_PLATE, CROSSHAIR, HIGHLIGHT, INFO, INVALID, MARKER, NEUTRAL, SERIES_LINE, SESSION_OFF, SESSION_POST, SESSION_PRE, SLATE, SLATE_DEEP, TRADE_EXIT, TRADE_LONG, TRADE_SHORT, VALID, WARNING, categoricalColor, iconMarkup, registerIcon } from './chunk-I2U4NZD2.js';
6
6
 
7
7
  // src/core/replayTicks.ts
8
8
  function lowerTimeframeTicks(chart, timeframe) {
@@ -613,6 +613,12 @@ type SeriesValueDelta = {
613
613
  seriesId: string;
614
614
  kind: 'bars';
615
615
  bars: OHLCV[];
616
+ /**
617
+ * The series' per-bar colors (see `CandleSeries.barColors`), index-aligned to `bars`.
618
+ * Omitted keeps the current ones; the orchestrator always states them, `[]` included,
619
+ * so a run that emits no colors clears the previous set instead of leaving it on new bars.
620
+ */
621
+ barColors?: Array<CandleBarColor | null>;
616
622
  } | {
617
623
  seriesId: string;
618
624
  kind: 'markers';
@@ -848,6 +854,10 @@ interface DrawingStyle {
848
854
  fillOpacity?: number;
849
855
  arrowLeft?: boolean;
850
856
  arrowRight?: boolean;
857
+ /** Run the line past its first anchor to the chart edge (trend line). */
858
+ extendLeft?: boolean;
859
+ /** Run the line past its second anchor to the chart edge (trend line). */
860
+ extendRight?: boolean;
851
861
  }
852
862
  /** A drawing's editable text/annotation block. */
853
863
  interface DrawingText {
@@ -859,6 +869,10 @@ interface DrawingText {
859
869
  vAlign: 'top' | 'center' | 'bottom';
860
870
  bold?: boolean;
861
871
  italic?: boolean;
872
+ /** Where a line's label sits along it (line tools); absent = the middle. */
873
+ place?: 'start' | 'middle' | 'end';
874
+ /** Which side of the line its label sits on (line tools); absent = above. */
875
+ side?: 'above' | 'below';
862
876
  }
863
877
 
864
878
  /**
@@ -884,6 +898,12 @@ interface SettingsField {
884
898
  }>;
885
899
  /** Cosmetic grouping in the popup. */
886
900
  group?: 'line' | 'fill' | 'text' | 'behavior';
901
+ /** Only offered while another setting holds one of these values (an option that matters
902
+ * only in some modes). */
903
+ when?: {
904
+ path: string;
905
+ in: readonly unknown[];
906
+ };
887
907
  }
888
908
  interface SettingsSchema {
889
909
  fields: SettingsField[];
@@ -899,7 +919,7 @@ interface SettingsSchema {
899
919
  * The interactive user-drawing types. The lean-core set ships first; new types
900
920
  * (fibs/patterns) extend the union + register a class — no base/port change.
901
921
  */
902
- type DrawingTypeKey = 'trendline' | 'hline' | 'ray' | 'extendedline' | 'vline' | 'hray' | 'crossline' | 'infoline' | 'trendangle' | 'box' | 'text' | 'note' | 'pricenote' | 'comment' | 'pricelabel' | 'signpost' | 'parallelchannel' | 'disjointchannel' | 'flattopbottom' | 'regressionchannel' | 'anchoredvwap' | 'fixedrangevp' | 'pitchfork' | 'schiffpitchfork' | 'modifiedschiffpitchfork' | 'insidepitchfork' | 'arrow' | 'callout' | 'ellipse' | 'triangle' | 'polyline' | 'freehand' | 'highlighter' | 'circle' | 'rotatedrect' | 'path' | 'arc' | 'curve' | 'arrowmarkup' | 'arrowmarkdown' | 'flagmark' | 'iconstamp' | 'fibretracement' | 'fibextension' | 'fibextensiontrend' | 'fibfan' | 'fibtimezones' | 'fibchannel' | 'fibspeedfan' | 'trendfibtime' | 'fibcircles' | 'fibarcs' | 'fibwedge' | 'fibspiral' | 'gannfan' | 'gannbox' | 'gannsquare' | 'dedekind' | 'sonic' | 'supersonic' | 'goldensonic' | 'goldensupersonic' | 'datepricerange' | 'position' | 'magnifier' | 'xabcd' | 'abcd' | 'elliottimpulse' | 'elliottcorrection' | 'headshoulders' | 'gartley' | 'bat' | 'butterfly' | 'crab' | 'shark' | 'cypher';
922
+ type DrawingTypeKey = 'trendline' | 'hline' | 'ray' | 'extendedline' | 'vline' | 'hray' | 'crossline' | 'infoline' | 'trendangle' | 'box' | 'text' | 'note' | 'pricenote' | 'comment' | 'pricelabel' | 'signpost' | 'parallelchannel' | 'disjointchannel' | 'flattopbottom' | 'regressionchannel' | 'anchoredvwap' | 'fixedrangevp' | 'pitchfork' | 'schiffpitchfork' | 'modifiedschiffpitchfork' | 'insidepitchfork' | 'arrow' | 'callout' | 'ellipse' | 'triangle' | 'polyline' | 'freehand' | 'highlighter' | 'circle' | 'rotatedrect' | 'path' | 'arc' | 'curve' | 'arrowmarkup' | 'arrowmarkdown' | 'flagmark' | 'iconstamp' | 'fibretracement' | 'fibextension' | 'fibextensiontrend' | 'fibfan' | 'fibtimezones' | 'fibchannel' | 'fibspeedfan' | 'trendfibtime' | 'fibcircles' | 'fibarcs' | 'fibwedge' | 'fibspiral' | 'gannfan' | 'gannbox' | 'gannsquare' | 'dedekind' | 'sonic' | 'supersonic' | 'goldensonic' | 'goldensupersonic' | 'datepricerange' | 'position' | 'magnifier' | 'xabcd' | 'abcd' | 'elliottimpulse' | 'elliottcorrection' | 'headshoulders' | 'gartley' | 'bat' | 'butterfly' | 'crab' | 'shark' | 'cypher' | 'fairvaluegap' | 'orderblock' | 'liquidity';
903
923
  /** One anchor's role + which axes its handle may move along. */
904
924
  interface AnchorSlot {
905
925
  role: string;
@@ -927,6 +947,8 @@ interface SerializedDrawing {
927
947
  createdAt: number;
928
948
  /** Per-type extras (e.g. box `extend`) — keeps the base closed. */
929
949
  props?: Record<string, unknown>;
950
+ /** The timeframe bands the drawing shows on (see `TIMEFRAME_BANDS`); absent = every one. */
951
+ showOn?: string[];
930
952
  }
931
953
  /**
932
954
  * The parent of every user drawing. Owns the shared state + settings/serialization
@@ -945,6 +967,8 @@ declare abstract class Drawing {
945
967
  locked: boolean;
946
968
  visible: boolean;
947
969
  zIndex: number;
970
+ /** The timeframe bands the drawing shows on; `undefined` = every timeframe. */
971
+ showOn?: string[];
948
972
  readonly createdAt: number;
949
973
  constructor(init: Partial<SerializedDrawing> & {
950
974
  paneId: string;
@@ -1085,6 +1109,24 @@ declare function buildToolbar(option: DrawingsOption | undefined): {
1085
1109
  visible: boolean;
1086
1110
  };
1087
1111
 
1112
+ /**
1113
+ * A tool's remembered settings — what the next drawing of that type starts from. Captured
1114
+ * from the last drawing of the type the user styled: its style, its text styling (never the
1115
+ * words themselves) and its per-type settings (`props`: fib levels, position sizing, profile
1116
+ * rows…). Geometry, lock, visibility and depth are per-drawing and never carried over.
1117
+ */
1118
+ interface DrawingToolDefaults {
1119
+ style?: Partial<DrawingStyle>;
1120
+ text?: Partial<Omit<DrawingText, 'value'>>;
1121
+ props?: Record<string, unknown>;
1122
+ }
1123
+ /** A named, saved look for one tool (a "style"): applied, it sets the same settings a
1124
+ * remembered default does — style, text styling and per-type settings. */
1125
+ interface DrawingToolTemplate {
1126
+ name: string;
1127
+ settings: DrawingToolDefaults;
1128
+ }
1129
+
1088
1130
  /**
1089
1131
  * The renderer-local drawing MODES beyond an armed tool: the transient measure ruler,
1090
1132
  * the eraser, or none. Mutually exclusive with each other and with any armed tool —
@@ -1140,6 +1182,19 @@ type DrawingIntent = {
1140
1182
  kind: 'favorite';
1141
1183
  type: DrawingTypeKey;
1142
1184
  on: boolean;
1185
+ }
1186
+ /** The settings panel saved the drawing's look as a named style for its tool. */
1187
+ | {
1188
+ kind: 'template-save';
1189
+ type: DrawingTypeKey;
1190
+ name: string;
1191
+ settings: DrawingToolDefaults;
1192
+ }
1193
+ /** The settings panel deleted one of a tool's saved styles. */
1194
+ | {
1195
+ kind: 'template-remove';
1196
+ type: DrawingTypeKey;
1197
+ name: string;
1143
1198
  } | {
1144
1199
  kind: 'snap-mode';
1145
1200
  mode: SnapMode;
@@ -1188,13 +1243,18 @@ interface IDrawingsRendererPort {
1188
1243
  syncDrawings(docs: readonly SerializedDrawing[]): void;
1189
1244
  /** Arm/disarm a tool (`null` = selection/idle, pan resumes). `lastStyle` is the
1190
1245
  * tool's last-used style (if any) so the placement preview matches what will be
1191
- * committed, rather than falling back to the type default. */
1192
- setActiveTool(type: DrawingTypeKey | null, lastStyle?: SerializedDrawing['style']): void;
1246
+ * committed, rather than falling back to the type default; `defaults` carries the
1247
+ * tool's whole remembered settings (style, text styling, per-type settings) for a
1248
+ * renderer that previews more than the style. */
1249
+ setActiveTool(type: DrawingTypeKey | null, lastStyle?: SerializedDrawing['style'], defaults?: DrawingToolDefaults): void;
1193
1250
  /** Reflect which drawings are selected (drives handle painting); `[]` = none. */
1194
1251
  setSelection(ids: readonly string[]): void;
1195
1252
  /** Push the FAVORITE tool set (flyout stars + any favorites-driven UI). Optional —
1196
1253
  * favorites still work headless without a renderer reflection. */
1197
1254
  setFavorites?(types: readonly DrawingTypeKey[]): void;
1255
+ /** Push every tool's saved looks (the settings panel's style menu). Optional — the
1256
+ * styles still round-trip through the core without a renderer reflection. */
1257
+ setToolTemplates?(map: Readonly<Partial<Record<DrawingTypeKey, DrawingToolTemplate[]>>>): void;
1198
1258
  /** Push per-tool shortcut hints — PRE-FORMATTED display strings (e.g. `'Alt+T'`)
1199
1259
  * shown beside the tools in the toolbar flyouts. The host owns the keymap and the
1200
1260
  * platform formatting; the renderer only displays. Optional. */
@@ -2173,4 +2233,4 @@ interface AddIndicatorOptions {
2173
2233
  title?: string;
2174
2234
  }
2175
2235
 
2176
- export { type DataWindowGroup as $, type AxisLongPressEvent as A, type ToolbarDefinition as B, type CrosshairEvent as C, Drawing as D, type MarketSnapshot as E, type AddIndicatorOptions as F, type AnimationConfig as G, type Background as H, type InputValue as I, type BoxFontFamily as J, type BoxHAlign as K, type LineStyle as L, type MarketConfig as M, type NativeBackend as N, type OHLCV as O, type PriceStyle as P, type BoxTextSize as Q, type RendererCapabilities as R, type SerializedDrawing as S, type ThemeName as T, type Unsubscribe as U, type VisibleRangePreset as V, type WallClock as W, type BoxVAlign as X, type CandleBarColor as Y, type CandleSeries as Z, type CandleStyle as _, type VisibleRange as a, type SeriesSurface as a$, type DataWindowOHLC as a0, type DataWindowRow as a1, type DirtyRange as a2, type DrawingBox as a3, type DrawingExtend as a4, type DrawingIntent as a5, type DrawingLabel as a6, type DrawingLine as a7, type DrawingLinefill as a8, type DrawingMode as a9, type MarkContentSource as aA, type MarkGlyph as aB, type MarkPanelItem as aC, type MarkShape as aD, type MarkerPoint as aE, type MarkerSeries as aF, type MarketSwitch as aG, type PaneAxis as aH, type PaneAxisBand as aI, type PaneHint as aJ, type PaneKind as aK, type PolylinePoint as aL, type PriceAxisOptions as aM, type PriceAxisTick as aN, type PriceAxisTickContext as aO, type PriceAxisTicksFn as aP, type PriceLine as aQ, type Projector as aR, type ProviderName as aS, type RendererConstructor as aT, type Scene as aU, type SchemaPatch as aV, SecondClock as aW, type SeriesDisplay as aX, type SeriesKind as aY, type SeriesPoint as aZ, type SeriesSpec as a_, type DrawingPoint as aa, type DrawingPolyline as ab, type DrawingSeriesBar as ac, type DrawingSeriesGateway as ad, type DrawingSeriesState as ae, type DrawingStyle as af, type DrawingTable as ag, type DrawingText as ah, type DrawingXLoc as ai, type DrawingsOption as aj, type Fill as ak, type FillGradientStop as al, type IndicatorMeta as am, type InputCondition as an, type InputSchema as ao, type InputType as ap, type InputWhen as aq, type IntroAnimation as ar, type IntroConfig as as, type IntroStyle as at, type LabelStyle as au, type LabelYLoc as av, type LineLikeKind as aw, type LineLikeSeries as ax, type LineLikeStyle as ay, type MarkContent as az, type VelaOptions as b, type SeriesValueDelta as b0, type SettingsField as b1, type SettingsSchema as b2, type SettingsVisibilityPolicy as b3, type TableCell as b4, type TableMerge as b5, type TablePosition as b6, type ToolbarGroupConfig as b7, type TradeExecution as b8, type ValuePatch as b9, buildToolbar as ba, defaultToolbar as bb, inputDeltas as bc, inputVisible as bd, seriesInScale as be, seriesShownOn as bf, type PaneInfo as bg, type VelaTheme as c, type MarketSession as d, type IChartRenderer as e, type RendererDisplayOptions as f, type IndicatorRenderHandle as g, type IndicatorStatus as h, type Pane as i, type PaneAction as j, type MoveTarget as k, type IndicatorModel as l, type ScenePatch as m, type SymbolPickerFn as n, type LegendActionView as o, type LegendCalloutView as p, type InputChangeEvent as q, type ClickEvent as r, type TimelineMark as s, type MarkGroup as t, type MarkClickEvent as u, type DataWindowReadout as v, type IDrawingsRendererPort as w, type Millis as x, type SnapMode as y, type DrawingTypeKey as z };
2236
+ export { type DataWindowGroup as $, type AxisLongPressEvent as A, type ToolbarDefinition as B, type CrosshairEvent as C, Drawing as D, type MarketSnapshot as E, type AddIndicatorOptions as F, type AnimationConfig as G, type Background as H, type InputValue as I, type BoxFontFamily as J, type BoxHAlign as K, type LineStyle as L, type MarketConfig as M, type NativeBackend as N, type OHLCV as O, type PriceStyle as P, type BoxTextSize as Q, type RendererCapabilities as R, type SerializedDrawing as S, type ThemeName as T, type Unsubscribe as U, type VisibleRangePreset as V, type WallClock as W, type BoxVAlign as X, type CandleBarColor as Y, type CandleSeries as Z, type CandleStyle as _, type VisibleRange as a, type SeriesSurface as a$, type DataWindowOHLC as a0, type DataWindowRow as a1, type DirtyRange as a2, type DrawingBox as a3, type DrawingExtend as a4, type DrawingIntent as a5, type DrawingLabel as a6, type DrawingLine as a7, type DrawingLinefill as a8, type DrawingMode as a9, type MarkContentSource as aA, type MarkGlyph as aB, type MarkPanelItem as aC, type MarkShape as aD, type MarkerPoint as aE, type MarkerSeries as aF, type MarketSwitch as aG, type PaneAxis as aH, type PaneAxisBand as aI, type PaneHint as aJ, type PaneKind as aK, type PolylinePoint as aL, type PriceAxisOptions as aM, type PriceAxisTick as aN, type PriceAxisTickContext as aO, type PriceAxisTicksFn as aP, type PriceLine as aQ, type Projector as aR, type ProviderName as aS, type RendererConstructor as aT, type Scene as aU, type SchemaPatch as aV, SecondClock as aW, type SeriesDisplay as aX, type SeriesKind as aY, type SeriesPoint as aZ, type SeriesSpec as a_, type DrawingPoint as aa, type DrawingPolyline as ab, type DrawingSeriesBar as ac, type DrawingSeriesGateway as ad, type DrawingSeriesState as ae, type DrawingStyle as af, type DrawingTable as ag, type DrawingText as ah, type DrawingXLoc as ai, type DrawingsOption as aj, type Fill as ak, type FillGradientStop as al, type IndicatorMeta as am, type InputCondition as an, type InputSchema as ao, type InputType as ap, type InputWhen as aq, type IntroAnimation as ar, type IntroConfig as as, type IntroStyle as at, type LabelStyle as au, type LabelYLoc as av, type LineLikeKind as aw, type LineLikeSeries as ax, type LineLikeStyle as ay, type MarkContent as az, type VelaOptions as b, type SeriesValueDelta as b0, type SettingsField as b1, type SettingsSchema as b2, type SettingsVisibilityPolicy as b3, type TableCell as b4, type TableMerge as b5, type TablePosition as b6, type ToolbarGroupConfig as b7, type TradeExecution as b8, type ValuePatch as b9, buildToolbar as ba, defaultToolbar as bb, inputDeltas as bc, inputVisible as bd, seriesInScale as be, seriesShownOn as bf, type PaneInfo as bg, type DrawingToolDefaults as bh, type DrawingToolTemplate as bi, type VelaTheme as c, type MarketSession as d, type IChartRenderer as e, type RendererDisplayOptions as f, type IndicatorRenderHandle as g, type IndicatorStatus as h, type Pane as i, type PaneAction as j, type MoveTarget as k, type IndicatorModel as l, type ScenePatch as m, type SymbolPickerFn as n, type LegendActionView as o, type LegendCalloutView as p, type InputChangeEvent as q, type ClickEvent as r, type TimelineMark as s, type MarkGroup as t, type MarkClickEvent as u, type DataWindowReadout as v, type IDrawingsRendererPort as w, type Millis as x, type SnapMode as y, type DrawingTypeKey as z };
@@ -613,6 +613,12 @@ type SeriesValueDelta = {
613
613
  seriesId: string;
614
614
  kind: 'bars';
615
615
  bars: OHLCV[];
616
+ /**
617
+ * The series' per-bar colors (see `CandleSeries.barColors`), index-aligned to `bars`.
618
+ * Omitted keeps the current ones; the orchestrator always states them, `[]` included,
619
+ * so a run that emits no colors clears the previous set instead of leaving it on new bars.
620
+ */
621
+ barColors?: Array<CandleBarColor | null>;
616
622
  } | {
617
623
  seriesId: string;
618
624
  kind: 'markers';
@@ -848,6 +854,10 @@ interface DrawingStyle {
848
854
  fillOpacity?: number;
849
855
  arrowLeft?: boolean;
850
856
  arrowRight?: boolean;
857
+ /** Run the line past its first anchor to the chart edge (trend line). */
858
+ extendLeft?: boolean;
859
+ /** Run the line past its second anchor to the chart edge (trend line). */
860
+ extendRight?: boolean;
851
861
  }
852
862
  /** A drawing's editable text/annotation block. */
853
863
  interface DrawingText {
@@ -859,6 +869,10 @@ interface DrawingText {
859
869
  vAlign: 'top' | 'center' | 'bottom';
860
870
  bold?: boolean;
861
871
  italic?: boolean;
872
+ /** Where a line's label sits along it (line tools); absent = the middle. */
873
+ place?: 'start' | 'middle' | 'end';
874
+ /** Which side of the line its label sits on (line tools); absent = above. */
875
+ side?: 'above' | 'below';
862
876
  }
863
877
 
864
878
  /**
@@ -884,6 +898,12 @@ interface SettingsField {
884
898
  }>;
885
899
  /** Cosmetic grouping in the popup. */
886
900
  group?: 'line' | 'fill' | 'text' | 'behavior';
901
+ /** Only offered while another setting holds one of these values (an option that matters
902
+ * only in some modes). */
903
+ when?: {
904
+ path: string;
905
+ in: readonly unknown[];
906
+ };
887
907
  }
888
908
  interface SettingsSchema {
889
909
  fields: SettingsField[];
@@ -899,7 +919,7 @@ interface SettingsSchema {
899
919
  * The interactive user-drawing types. The lean-core set ships first; new types
900
920
  * (fibs/patterns) extend the union + register a class — no base/port change.
901
921
  */
902
- type DrawingTypeKey = 'trendline' | 'hline' | 'ray' | 'extendedline' | 'vline' | 'hray' | 'crossline' | 'infoline' | 'trendangle' | 'box' | 'text' | 'note' | 'pricenote' | 'comment' | 'pricelabel' | 'signpost' | 'parallelchannel' | 'disjointchannel' | 'flattopbottom' | 'regressionchannel' | 'anchoredvwap' | 'fixedrangevp' | 'pitchfork' | 'schiffpitchfork' | 'modifiedschiffpitchfork' | 'insidepitchfork' | 'arrow' | 'callout' | 'ellipse' | 'triangle' | 'polyline' | 'freehand' | 'highlighter' | 'circle' | 'rotatedrect' | 'path' | 'arc' | 'curve' | 'arrowmarkup' | 'arrowmarkdown' | 'flagmark' | 'iconstamp' | 'fibretracement' | 'fibextension' | 'fibextensiontrend' | 'fibfan' | 'fibtimezones' | 'fibchannel' | 'fibspeedfan' | 'trendfibtime' | 'fibcircles' | 'fibarcs' | 'fibwedge' | 'fibspiral' | 'gannfan' | 'gannbox' | 'gannsquare' | 'dedekind' | 'sonic' | 'supersonic' | 'goldensonic' | 'goldensupersonic' | 'datepricerange' | 'position' | 'magnifier' | 'xabcd' | 'abcd' | 'elliottimpulse' | 'elliottcorrection' | 'headshoulders' | 'gartley' | 'bat' | 'butterfly' | 'crab' | 'shark' | 'cypher';
922
+ type DrawingTypeKey = 'trendline' | 'hline' | 'ray' | 'extendedline' | 'vline' | 'hray' | 'crossline' | 'infoline' | 'trendangle' | 'box' | 'text' | 'note' | 'pricenote' | 'comment' | 'pricelabel' | 'signpost' | 'parallelchannel' | 'disjointchannel' | 'flattopbottom' | 'regressionchannel' | 'anchoredvwap' | 'fixedrangevp' | 'pitchfork' | 'schiffpitchfork' | 'modifiedschiffpitchfork' | 'insidepitchfork' | 'arrow' | 'callout' | 'ellipse' | 'triangle' | 'polyline' | 'freehand' | 'highlighter' | 'circle' | 'rotatedrect' | 'path' | 'arc' | 'curve' | 'arrowmarkup' | 'arrowmarkdown' | 'flagmark' | 'iconstamp' | 'fibretracement' | 'fibextension' | 'fibextensiontrend' | 'fibfan' | 'fibtimezones' | 'fibchannel' | 'fibspeedfan' | 'trendfibtime' | 'fibcircles' | 'fibarcs' | 'fibwedge' | 'fibspiral' | 'gannfan' | 'gannbox' | 'gannsquare' | 'dedekind' | 'sonic' | 'supersonic' | 'goldensonic' | 'goldensupersonic' | 'datepricerange' | 'position' | 'magnifier' | 'xabcd' | 'abcd' | 'elliottimpulse' | 'elliottcorrection' | 'headshoulders' | 'gartley' | 'bat' | 'butterfly' | 'crab' | 'shark' | 'cypher' | 'fairvaluegap' | 'orderblock' | 'liquidity';
903
923
  /** One anchor's role + which axes its handle may move along. */
904
924
  interface AnchorSlot {
905
925
  role: string;
@@ -927,6 +947,8 @@ interface SerializedDrawing {
927
947
  createdAt: number;
928
948
  /** Per-type extras (e.g. box `extend`) — keeps the base closed. */
929
949
  props?: Record<string, unknown>;
950
+ /** The timeframe bands the drawing shows on (see `TIMEFRAME_BANDS`); absent = every one. */
951
+ showOn?: string[];
930
952
  }
931
953
  /**
932
954
  * The parent of every user drawing. Owns the shared state + settings/serialization
@@ -945,6 +967,8 @@ declare abstract class Drawing {
945
967
  locked: boolean;
946
968
  visible: boolean;
947
969
  zIndex: number;
970
+ /** The timeframe bands the drawing shows on; `undefined` = every timeframe. */
971
+ showOn?: string[];
948
972
  readonly createdAt: number;
949
973
  constructor(init: Partial<SerializedDrawing> & {
950
974
  paneId: string;
@@ -1085,6 +1109,24 @@ declare function buildToolbar(option: DrawingsOption | undefined): {
1085
1109
  visible: boolean;
1086
1110
  };
1087
1111
 
1112
+ /**
1113
+ * A tool's remembered settings — what the next drawing of that type starts from. Captured
1114
+ * from the last drawing of the type the user styled: its style, its text styling (never the
1115
+ * words themselves) and its per-type settings (`props`: fib levels, position sizing, profile
1116
+ * rows…). Geometry, lock, visibility and depth are per-drawing and never carried over.
1117
+ */
1118
+ interface DrawingToolDefaults {
1119
+ style?: Partial<DrawingStyle>;
1120
+ text?: Partial<Omit<DrawingText, 'value'>>;
1121
+ props?: Record<string, unknown>;
1122
+ }
1123
+ /** A named, saved look for one tool (a "style"): applied, it sets the same settings a
1124
+ * remembered default does — style, text styling and per-type settings. */
1125
+ interface DrawingToolTemplate {
1126
+ name: string;
1127
+ settings: DrawingToolDefaults;
1128
+ }
1129
+
1088
1130
  /**
1089
1131
  * The renderer-local drawing MODES beyond an armed tool: the transient measure ruler,
1090
1132
  * the eraser, or none. Mutually exclusive with each other and with any armed tool —
@@ -1140,6 +1182,19 @@ type DrawingIntent = {
1140
1182
  kind: 'favorite';
1141
1183
  type: DrawingTypeKey;
1142
1184
  on: boolean;
1185
+ }
1186
+ /** The settings panel saved the drawing's look as a named style for its tool. */
1187
+ | {
1188
+ kind: 'template-save';
1189
+ type: DrawingTypeKey;
1190
+ name: string;
1191
+ settings: DrawingToolDefaults;
1192
+ }
1193
+ /** The settings panel deleted one of a tool's saved styles. */
1194
+ | {
1195
+ kind: 'template-remove';
1196
+ type: DrawingTypeKey;
1197
+ name: string;
1143
1198
  } | {
1144
1199
  kind: 'snap-mode';
1145
1200
  mode: SnapMode;
@@ -1188,13 +1243,18 @@ interface IDrawingsRendererPort {
1188
1243
  syncDrawings(docs: readonly SerializedDrawing[]): void;
1189
1244
  /** Arm/disarm a tool (`null` = selection/idle, pan resumes). `lastStyle` is the
1190
1245
  * tool's last-used style (if any) so the placement preview matches what will be
1191
- * committed, rather than falling back to the type default. */
1192
- setActiveTool(type: DrawingTypeKey | null, lastStyle?: SerializedDrawing['style']): void;
1246
+ * committed, rather than falling back to the type default; `defaults` carries the
1247
+ * tool's whole remembered settings (style, text styling, per-type settings) for a
1248
+ * renderer that previews more than the style. */
1249
+ setActiveTool(type: DrawingTypeKey | null, lastStyle?: SerializedDrawing['style'], defaults?: DrawingToolDefaults): void;
1193
1250
  /** Reflect which drawings are selected (drives handle painting); `[]` = none. */
1194
1251
  setSelection(ids: readonly string[]): void;
1195
1252
  /** Push the FAVORITE tool set (flyout stars + any favorites-driven UI). Optional —
1196
1253
  * favorites still work headless without a renderer reflection. */
1197
1254
  setFavorites?(types: readonly DrawingTypeKey[]): void;
1255
+ /** Push every tool's saved looks (the settings panel's style menu). Optional — the
1256
+ * styles still round-trip through the core without a renderer reflection. */
1257
+ setToolTemplates?(map: Readonly<Partial<Record<DrawingTypeKey, DrawingToolTemplate[]>>>): void;
1198
1258
  /** Push per-tool shortcut hints — PRE-FORMATTED display strings (e.g. `'Alt+T'`)
1199
1259
  * shown beside the tools in the toolbar flyouts. The host owns the keymap and the
1200
1260
  * platform formatting; the renderer only displays. Optional. */
@@ -2173,4 +2233,4 @@ interface AddIndicatorOptions {
2173
2233
  title?: string;
2174
2234
  }
2175
2235
 
2176
- export { type DataWindowGroup as $, type AxisLongPressEvent as A, type ToolbarDefinition as B, type CrosshairEvent as C, Drawing as D, type MarketSnapshot as E, type AddIndicatorOptions as F, type AnimationConfig as G, type Background as H, type InputValue as I, type BoxFontFamily as J, type BoxHAlign as K, type LineStyle as L, type MarketConfig as M, type NativeBackend as N, type OHLCV as O, type PriceStyle as P, type BoxTextSize as Q, type RendererCapabilities as R, type SerializedDrawing as S, type ThemeName as T, type Unsubscribe as U, type VisibleRangePreset as V, type WallClock as W, type BoxVAlign as X, type CandleBarColor as Y, type CandleSeries as Z, type CandleStyle as _, type VisibleRange as a, type SeriesSurface as a$, type DataWindowOHLC as a0, type DataWindowRow as a1, type DirtyRange as a2, type DrawingBox as a3, type DrawingExtend as a4, type DrawingIntent as a5, type DrawingLabel as a6, type DrawingLine as a7, type DrawingLinefill as a8, type DrawingMode as a9, type MarkContentSource as aA, type MarkGlyph as aB, type MarkPanelItem as aC, type MarkShape as aD, type MarkerPoint as aE, type MarkerSeries as aF, type MarketSwitch as aG, type PaneAxis as aH, type PaneAxisBand as aI, type PaneHint as aJ, type PaneKind as aK, type PolylinePoint as aL, type PriceAxisOptions as aM, type PriceAxisTick as aN, type PriceAxisTickContext as aO, type PriceAxisTicksFn as aP, type PriceLine as aQ, type Projector as aR, type ProviderName as aS, type RendererConstructor as aT, type Scene as aU, type SchemaPatch as aV, SecondClock as aW, type SeriesDisplay as aX, type SeriesKind as aY, type SeriesPoint as aZ, type SeriesSpec as a_, type DrawingPoint as aa, type DrawingPolyline as ab, type DrawingSeriesBar as ac, type DrawingSeriesGateway as ad, type DrawingSeriesState as ae, type DrawingStyle as af, type DrawingTable as ag, type DrawingText as ah, type DrawingXLoc as ai, type DrawingsOption as aj, type Fill as ak, type FillGradientStop as al, type IndicatorMeta as am, type InputCondition as an, type InputSchema as ao, type InputType as ap, type InputWhen as aq, type IntroAnimation as ar, type IntroConfig as as, type IntroStyle as at, type LabelStyle as au, type LabelYLoc as av, type LineLikeKind as aw, type LineLikeSeries as ax, type LineLikeStyle as ay, type MarkContent as az, type VelaOptions as b, type SeriesValueDelta as b0, type SettingsField as b1, type SettingsSchema as b2, type SettingsVisibilityPolicy as b3, type TableCell as b4, type TableMerge as b5, type TablePosition as b6, type ToolbarGroupConfig as b7, type TradeExecution as b8, type ValuePatch as b9, buildToolbar as ba, defaultToolbar as bb, inputDeltas as bc, inputVisible as bd, seriesInScale as be, seriesShownOn as bf, type PaneInfo as bg, type VelaTheme as c, type MarketSession as d, type IChartRenderer as e, type RendererDisplayOptions as f, type IndicatorRenderHandle as g, type IndicatorStatus as h, type Pane as i, type PaneAction as j, type MoveTarget as k, type IndicatorModel as l, type ScenePatch as m, type SymbolPickerFn as n, type LegendActionView as o, type LegendCalloutView as p, type InputChangeEvent as q, type ClickEvent as r, type TimelineMark as s, type MarkGroup as t, type MarkClickEvent as u, type DataWindowReadout as v, type IDrawingsRendererPort as w, type Millis as x, type SnapMode as y, type DrawingTypeKey as z };
2236
+ export { type DataWindowGroup as $, type AxisLongPressEvent as A, type ToolbarDefinition as B, type CrosshairEvent as C, Drawing as D, type MarketSnapshot as E, type AddIndicatorOptions as F, type AnimationConfig as G, type Background as H, type InputValue as I, type BoxFontFamily as J, type BoxHAlign as K, type LineStyle as L, type MarketConfig as M, type NativeBackend as N, type OHLCV as O, type PriceStyle as P, type BoxTextSize as Q, type RendererCapabilities as R, type SerializedDrawing as S, type ThemeName as T, type Unsubscribe as U, type VisibleRangePreset as V, type WallClock as W, type BoxVAlign as X, type CandleBarColor as Y, type CandleSeries as Z, type CandleStyle as _, type VisibleRange as a, type SeriesSurface as a$, type DataWindowOHLC as a0, type DataWindowRow as a1, type DirtyRange as a2, type DrawingBox as a3, type DrawingExtend as a4, type DrawingIntent as a5, type DrawingLabel as a6, type DrawingLine as a7, type DrawingLinefill as a8, type DrawingMode as a9, type MarkContentSource as aA, type MarkGlyph as aB, type MarkPanelItem as aC, type MarkShape as aD, type MarkerPoint as aE, type MarkerSeries as aF, type MarketSwitch as aG, type PaneAxis as aH, type PaneAxisBand as aI, type PaneHint as aJ, type PaneKind as aK, type PolylinePoint as aL, type PriceAxisOptions as aM, type PriceAxisTick as aN, type PriceAxisTickContext as aO, type PriceAxisTicksFn as aP, type PriceLine as aQ, type Projector as aR, type ProviderName as aS, type RendererConstructor as aT, type Scene as aU, type SchemaPatch as aV, SecondClock as aW, type SeriesDisplay as aX, type SeriesKind as aY, type SeriesPoint as aZ, type SeriesSpec as a_, type DrawingPoint as aa, type DrawingPolyline as ab, type DrawingSeriesBar as ac, type DrawingSeriesGateway as ad, type DrawingSeriesState as ae, type DrawingStyle as af, type DrawingTable as ag, type DrawingText as ah, type DrawingXLoc as ai, type DrawingsOption as aj, type Fill as ak, type FillGradientStop as al, type IndicatorMeta as am, type InputCondition as an, type InputSchema as ao, type InputType as ap, type InputWhen as aq, type IntroAnimation as ar, type IntroConfig as as, type IntroStyle as at, type LabelStyle as au, type LabelYLoc as av, type LineLikeKind as aw, type LineLikeSeries as ax, type LineLikeStyle as ay, type MarkContent as az, type VelaOptions as b, type SeriesValueDelta as b0, type SettingsField as b1, type SettingsSchema as b2, type SettingsVisibilityPolicy as b3, type TableCell as b4, type TableMerge as b5, type TablePosition as b6, type ToolbarGroupConfig as b7, type TradeExecution as b8, type ValuePatch as b9, buildToolbar as ba, defaultToolbar as bb, inputDeltas as bc, inputVisible as bd, seriesInScale as be, seriesShownOn as bf, type PaneInfo as bg, type DrawingToolDefaults as bh, type DrawingToolTemplate as bi, type VelaTheme as c, type MarketSession as d, type IChartRenderer as e, type RendererDisplayOptions as f, type IndicatorRenderHandle as g, type IndicatorStatus as h, type Pane as i, type PaneAction as j, type MoveTarget as k, type IndicatorModel as l, type ScenePatch as m, type SymbolPickerFn as n, type LegendActionView as o, type LegendCalloutView as p, type InputChangeEvent as q, type ClickEvent as r, type TimelineMark as s, type MarkGroup as t, type MarkClickEvent as u, type DataWindowReadout as v, type IDrawingsRendererPort as w, type Millis as x, type SnapMode as y, type DrawingTypeKey as z };
@@ -1,9 +1,9 @@
1
- import { z as DrawingTypeKey, af as DrawingStyle, S as SerializedDrawing, D as Drawing, O as OHLCV, aY as SeriesKind, c as VelaTheme } from './options-lMUwmRwh.js';
2
- import { f as DataControl } from './contributions-HGqnNb_P.js';
1
+ import { z as DrawingTypeKey, af as DrawingStyle, S as SerializedDrawing, D as Drawing, O as OHLCV, aY as SeriesKind, c as VelaTheme } from './options-CSXbjMM5.js';
2
+ import { f as DataControl } from './contributions-BY3zSYiZ.js';
3
3
  import './side-panel-_2UK1gSm.js';
4
4
  import './icons-BZYbJXSV.js';
5
5
  import './keymap-CGOz5F5f.js';
6
- import './DataProvider-oH78tYXL.js';
6
+ import './DataProvider-Byo8pEv0.js';
7
7
 
8
8
  /** What a drawing type contributes to the toolbar + factory (renderer-neutral). */
9
9
  interface DrawingTypeMeta {
@@ -1,9 +1,9 @@
1
- import { z as DrawingTypeKey, af as DrawingStyle, S as SerializedDrawing, D as Drawing, O as OHLCV, aY as SeriesKind, c as VelaTheme } from './options-lMUwmRwh.cjs';
2
- import { f as DataControl } from './contributions-BhOBRenr.cjs';
1
+ import { z as DrawingTypeKey, af as DrawingStyle, S as SerializedDrawing, D as Drawing, O as OHLCV, aY as SeriesKind, c as VelaTheme } from './options-CSXbjMM5.cjs';
2
+ import { f as DataControl } from './contributions-DOm40g5-.cjs';
3
3
  import './side-panel-_2UK1gSm.cjs';
4
4
  import './icons-BZYbJXSV.cjs';
5
5
  import './keymap-CGOz5F5f.cjs';
6
- import './DataProvider-wbtJ3-Sa.cjs';
6
+ import './DataProvider-Bw58CjYy.cjs';
7
7
 
8
8
  /** What a drawing type contributes to the toolbar + factory (renderer-neutral). */
9
9
  interface DrawingTypeMeta {