@luxalgo/vela 0.6.6 → 0.6.8

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 (43) hide show
  1. package/dist/{DataProvider-JJq7M2it.d.ts → DataProvider-BSLlBpB9.d.ts} +10 -0
  2. package/dist/{DataProvider-DDUYw2qP.d.cts → DataProvider-BsQM2WNH.d.cts} +10 -0
  3. package/dist/{chunk-OEUGUXL7.js → chunk-L3I2CCYO.js} +49 -1
  4. package/dist/{chunk-TMXK2SJR.js → chunk-N7LGMKCE.js} +523 -142
  5. package/dist/{chunk-JQFO2WMU.js → chunk-SQETIBFU.js} +83 -9
  6. package/dist/chunk-W4EJWLEO.js +12 -0
  7. package/dist/{contributions-BqCIsbaP.d.ts → contributions-DLLdV9jD.d.ts} +59 -3
  8. package/dist/{contributions-DNMqrAuw.d.cts → contributions-Vw-Hm58R.d.cts} +59 -3
  9. package/dist/index.cjs +110 -8
  10. package/dist/index.d.cts +8 -4
  11. package/dist/index.d.ts +8 -4
  12. package/dist/index.js +2 -2
  13. package/dist/{plugin-CN8U2__Q.d.cts → plugin-BnJgjLAy.d.cts} +2 -2
  14. package/dist/{plugin-WnvNNJOp.d.ts → plugin-CC7rBrOY.d.ts} +2 -2
  15. package/dist/plugin.cjs +28 -0
  16. package/dist/plugin.d.cts +3 -3
  17. package/dist/plugin.d.ts +3 -3
  18. package/dist/plugin.js +1 -1
  19. package/dist/providers/binance.cjs +16 -0
  20. package/dist/providers/binance.d.cts +4 -1
  21. package/dist/providers/binance.d.ts +4 -1
  22. package/dist/providers/binance.js +7 -0
  23. package/dist/providers/coinbase.cjs +16 -0
  24. package/dist/providers/coinbase.d.cts +4 -1
  25. package/dist/providers/coinbase.d.ts +4 -1
  26. package/dist/providers/coinbase.js +7 -0
  27. package/dist/providers/hyperliquid.cjs +16 -0
  28. package/dist/providers/hyperliquid.d.cts +4 -1
  29. package/dist/providers/hyperliquid.d.ts +4 -1
  30. package/dist/providers/hyperliquid.js +7 -0
  31. package/dist/{bottombar-COnL2Sk4.d.ts → statusline-CGkB2EOo.d.ts} +137 -8
  32. package/dist/{bottombar-DeDXbF_K.d.cts → statusline-DqzBqy42.d.cts} +137 -8
  33. package/dist/vela.global.js +136 -8
  34. package/dist/vela.global.min.js +42 -42
  35. package/dist/widget.cjs +667 -148
  36. package/dist/widget.d.cts +50 -81
  37. package/dist/widget.d.ts +50 -81
  38. package/dist/widget.js +5 -4
  39. package/dist/workspace.cjs +613 -150
  40. package/dist/workspace.d.cts +62 -9
  41. package/dist/workspace.d.ts +62 -9
  42. package/dist/workspace.js +4 -3
  43. package/package.json +1 -1
package/dist/index.d.cts CHANGED
@@ -1,9 +1,9 @@
1
- import { D as DrawingsDocument, R as Resolved } from './contributions-DNMqrAuw.cjs';
2
- export { B as BarsChangeReason, C as CellStateContext, b as ContextSelect, c as DataControl, d as DrawingsControl, e as EngineAlert, f as EngineCapabilities, g as EngineContextSnapshot, h as EngineFactory, i as EngineWarning, j as ExecutionHandlers, k as ExecutionMarket, l as ExecutionRequest, m as ExecutionSession, E as ExternalIndicatorEntry, F as FetchSeries, n as IndicatorEventMap, I as IndicatorHandle, o as IndicatorSummary, L as LegendActionDescriptor, p as LegendIndicatorInfo, N as NativeIndicator, q as NativeIndicatorContext, r as NativeIndicatorDescriptor, s as NativeIndicatorInfo, t as NativeIndicatorOutput, P as ParsedSymbol, u as PreparedScript, v as RendererControl, w as RunIndicatorResult, x as SceneInspection, a as ScriptRun, y as ScriptRunCause, z as ScriptRunResult, S as ScriptingEngine, A as SidePanelButton, G as SidePanelDescriptor, H as SidePanelHandle, J as SidePanelHeader, K as StatePersistenceHandler, M as StrategyFill, O as StrategyState, Q as StrategyTrade, T as TypedEventBus, V as Vela, U as VelaDeps, X as VelaEventMap, Y as VisibleBarRange, Z as WidgetActionDescriptor, _ as WidgetActionTarget, $ as WidgetAttachment, W as WidgetContext, a0 as getNativeIndicator, a1 as legendActions, a2 as nativeIndicatorDescriptors, a3 as nativeIndicatorTypes, a4 as registerDefaultEngine, a5 as registerLegendAction, a6 as registerNativeIndicator, a7 as registerSidePanel, a8 as registerStatePersistence, a9 as registerWidgetAction, aa as registerWidgetAttachment, ab as resolveEngines, ac as sidePanels, ad as statePersistenceHandlers, ae as unregisterDefaultEngine, af as unregisterLegendAction, ag as unregisterNativeIndicator, ah as unregisterSidePanel, ai as unregisterStatePersistence, aj as unregisterWidgetAction, ak as unregisterWidgetAttachment, al as widgetActions, am as widgetAttachments } from './contributions-DNMqrAuw.cjs';
1
+ import { D as DrawingsDocument, R as Resolved } from './contributions-Vw-Hm58R.cjs';
2
+ export { B as BarsChangeReason, C as CellStateContext, b as ContextSelect, c as DataControl, d as DrawingsControl, e as EngineAlert, f as EngineCapabilities, g as EngineContextSnapshot, h as EngineFactory, i as EngineWarning, j as ExecutionHandlers, k as ExecutionMarket, l as ExecutionRequest, m as ExecutionSession, E as ExternalIndicatorEntry, F as FetchSeries, n as IndicatorEventMap, I as IndicatorHandle, o as IndicatorSummary, L as LegendActionDescriptor, p as LegendIndicatorInfo, N as NativeIndicator, q as NativeIndicatorContext, r as NativeIndicatorDescriptor, s as NativeIndicatorInfo, t as NativeIndicatorOutput, O as OVERRIDABLE_TOPBAR_IDS, P as ParsedSymbol, u as PreparedScript, v as RendererControl, w as RunIndicatorResult, x as SceneInspection, a as ScriptRun, y as ScriptRunCause, z as ScriptRunResult, S as ScriptingEngine, A as SidePanelButton, G as SidePanelDescriptor, H as SidePanelHandle, J as SidePanelHeader, K as StatePersistenceHandler, M as StrategyFill, Q as StrategyState, T as StrategyTrade, U as SymbolRankingHook, X as TypedEventBus, V as Vela, Y as VelaDeps, Z as VelaEventMap, _ as VisibleBarRange, $ as WidgetActionDescriptor, a0 as WidgetActionTarget, a1 as WidgetAttachment, W as WidgetContext, a2 as getNativeIndicator, a3 as legendActions, a4 as nativeIndicatorDescriptors, a5 as nativeIndicatorTypes, a6 as registerDefaultEngine, a7 as registerLegendAction, a8 as registerNativeIndicator, a9 as registerSidePanel, aa as registerStatePersistence, ab as registerSymbolRanking, ac as registerWidgetAction, ad as registerWidgetAttachment, ae as resolveEngines, af as sidePanels, ag as statePersistenceHandlers, ah as symbolRanking, ai as topbarActionOverride, aj as unregisterDefaultEngine, ak as unregisterLegendAction, al as unregisterNativeIndicator, am as unregisterSidePanel, an as unregisterStatePersistence, ao as unregisterWidgetAction, ap as unregisterWidgetAttachment, aq as widgetActions, ar as widgetAttachments } from './contributions-Vw-Hm58R.cjs';
3
3
  import { D as Drawing, S as SerializedDrawing, U as Unsubscribe, L as LineStyle, P as PriceStyle, I as IChartRenderer, R as RendererCapabilities, e as RendererDisplayOptions, f as IndicatorRenderHandle, g as IndicatorStatus, c as VelaTheme, O as OHLCV, h as Pane, i as PaneAction, j as MoveTarget, k as IndicatorModel, l as ScenePatch, m as InputValue, n as SymbolPickerFn, o as LegendActionView, p as InputChangeEvent, T as ThemeName, C as CrosshairEvent, q as ClickEvent, A as AxisLongPressEvent, a as VisibleRange, r as DataWindowReadout, s as IDrawingsRendererPort, t as Millis, u as SnapMode, v as DrawingTypeKey, w as ToolbarDefinition, M as MarketConfig } from './options-BaVTMXaO.cjs';
4
4
  export { x as AddIndicatorOptions, B as Background, y as BoxFontFamily, z as BoxHAlign, E as BoxTextSize, F as BoxVAlign, G as CandleBarColor, H as CandleSeries, J as CandleStyle, K as DataWindowGroup, Q as DataWindowOHLC, W as DataWindowRow, X as DirtyRange, Y as DrawingBox, Z as DrawingExtend, _ as DrawingIntent, $ as DrawingLabel, a0 as DrawingLine, a1 as DrawingLinefill, a2 as DrawingMode, a3 as DrawingPoint, a4 as DrawingPolyline, a5 as DrawingStyle, a6 as DrawingTable, a7 as DrawingText, a8 as DrawingXLoc, a9 as DrawingsOption, aa as Fill, ab as FillGradientStop, ac as IndicatorMeta, ad as InputCondition, ae as InputSchema, af as InputType, ag as InputWhen, ah as LabelStyle, ai as LabelYLoc, aj as LineLikeKind, ak as LineLikeSeries, al as LineLikeStyle, am as MarkerPoint, an as MarkerSeries, ao as MarketSnapshot, ap as MarketSwitch, aq as PaneAxis, ar as PaneAxisBand, as as PaneHint, at as PaneKind, au as PolylinePoint, av as PriceLine, aw as Projector, ax as ProviderName, ay as RendererConstructor, az as Scene, aA as SchemaPatch, aB as SeriesKind, aC as SeriesPoint, aD as SeriesSpec, aE as SeriesValueDelta, aF as SettingsField, aG as SettingsSchema, aH as SettingsVisibilityPolicy, aI as TableCell, aJ as TableMerge, aK as TablePosition, aL as ToolbarGroupConfig, aM as TradeExecution, aN as ValuePatch, b as VelaOptions, V as VisibleRangePreset, aO as buildToolbar, aP as defaultToolbar, aQ as inputVisible } from './options-BaVTMXaO.cjs';
5
- import { M as MarketDataFeed, D as DataProvider, P as ProviderInfo, a as SymbolDescriptor, S as SymbolInfo, b as ProviderCapabilities, B as BarRange } from './DataProvider-DDUYw2qP.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 CROSSHAIR, f as ChartTypeDefinition, g as ChartTypeSettingsInstance, h as ChartTypeSettingsSection, i as ChartTypeSettingsSubsection, D as DrawingTypeMeta, H as HIGHLIGHT, I as INFO, j as INVALID, k as IdentifiableKind, M as MARKER, N as NEUTRAL, l as NormalizedSettingsRow, R as RendererLayerArgs, m as RendererLayerDefinition, n as RendererLayerInstance, S as SERIES_LINE, o as SESSION_OFF, p as SESSION_POST, q as SESSION_PRE, r as SLATE, s as SLATE_DEEP, t as SeriesDataEngine, u as SeriesDataEngineHost, v as SettingsInlineControl, w as SettingsRowCondition, x as SettingsRowDescriptor, y as SettingsRowInlineNumber, z as SettingsRowSwatch, E as SettingsRowValueKey, F as SettingsRowWhen, G as SettingsRowWidth, J as SettingsSelectOption, K as SettingsValueRow, T as TRADE_EXIT, L as TRADE_LONG, O as TRADE_SHORT, V as VALID, W as WARNING, P as categoricalColor, Q as chartType, U as chartTypes, X as createDrawing, Y as deserializeDrawing, Z as drawingTypes, _ as getDrawingType, $ as normalizeSettingsRow, a0 as registerChartType, a1 as registerDrawingType, a2 as registerRendererDefaults, a3 as registerRendererLayer, a4 as rendererDefaults, a5 as rendererLayers, a6 as settingsRowValueKeys, a7 as stableSeriesId, a8 as tickerModifierIds, a9 as unregisterChartType, aa as unregisterRendererDefaults, ab as unregisterRendererLayer } from './plugin-CN8U2__Q.cjs';
5
+ import { M as MarketDataFeed, D as DataProvider, P as ProviderInfo, a as SymbolDescriptor, S as SymbolInfo, b as ProviderCapabilities, B as BarRange } from './DataProvider-BsQM2WNH.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 CROSSHAIR, f as ChartTypeDefinition, g as ChartTypeSettingsInstance, h as ChartTypeSettingsSection, i as ChartTypeSettingsSubsection, D as DrawingTypeMeta, H as HIGHLIGHT, I as INFO, j as INVALID, k as IdentifiableKind, M as MARKER, N as NEUTRAL, l as NormalizedSettingsRow, R as RendererLayerArgs, m as RendererLayerDefinition, n as RendererLayerInstance, S as SERIES_LINE, o as SESSION_OFF, p as SESSION_POST, q as SESSION_PRE, r as SLATE, s as SLATE_DEEP, t as SeriesDataEngine, u as SeriesDataEngineHost, v as SettingsInlineControl, w as SettingsRowCondition, x as SettingsRowDescriptor, y as SettingsRowInlineNumber, z as SettingsRowSwatch, E as SettingsRowValueKey, F as SettingsRowWhen, G as SettingsRowWidth, J as SettingsSelectOption, K as SettingsValueRow, T as TRADE_EXIT, L as TRADE_LONG, O as TRADE_SHORT, V as VALID, W as WARNING, P as categoricalColor, Q as chartType, U as chartTypes, X as createDrawing, Y as deserializeDrawing, Z as drawingTypes, _ as getDrawingType, $ as normalizeSettingsRow, a0 as registerChartType, a1 as registerDrawingType, a2 as registerRendererDefaults, a3 as registerRendererLayer, a4 as rendererDefaults, a5 as rendererLayers, a6 as settingsRowValueKeys, a7 as stableSeriesId, a8 as tickerModifierIds, a9 as unregisterChartType, aa as unregisterRendererDefaults, ab as unregisterRendererLayer } from './plugin-BnJgjLAy.cjs';
7
7
  export { 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-CT9ZwIGz.cjs';
8
8
  export { i as iconMarkup, r as registerIcon } from './icons-BZYbJXSV.cjs';
9
9
  export { a as KeyBindingDescriptor, R as ResolvedBinding } from './keymap-CGOz5F5f.cjs';
@@ -1241,6 +1241,10 @@ declare class MultiProviderFeed implements MarketDataFeed {
1241
1241
  canonicalSymbol(raw: string): string | null;
1242
1242
  /** The registered provider INSTANCE under `name` (undefined if unknown). */
1243
1243
  providerInstance(name: string): DataProvider | undefined;
1244
+ /** The icon URL for a DESCRIPTOR — its owning provider's `resolveSymbolIcon` (picker rows). */
1245
+ symbolIconOf(d: SymbolDescriptor): string | undefined;
1246
+ /** The icon URL for a raw SYMBOL string — resolve, then route (statusline, object tree). */
1247
+ symbolIcon(raw: string): string | undefined;
1244
1248
  symbols(name?: string): SymbolDescriptor[];
1245
1249
  /** Told when a symbol stays unservable by everything registered (the load is parked). */
1246
1250
  onUnresolved(cb: (info: {
package/dist/index.d.ts CHANGED
@@ -1,9 +1,9 @@
1
- import { D as DrawingsDocument, R as Resolved } from './contributions-BqCIsbaP.js';
2
- export { B as BarsChangeReason, C as CellStateContext, b as ContextSelect, c as DataControl, d as DrawingsControl, e as EngineAlert, f as EngineCapabilities, g as EngineContextSnapshot, h as EngineFactory, i as EngineWarning, j as ExecutionHandlers, k as ExecutionMarket, l as ExecutionRequest, m as ExecutionSession, E as ExternalIndicatorEntry, F as FetchSeries, n as IndicatorEventMap, I as IndicatorHandle, o as IndicatorSummary, L as LegendActionDescriptor, p as LegendIndicatorInfo, N as NativeIndicator, q as NativeIndicatorContext, r as NativeIndicatorDescriptor, s as NativeIndicatorInfo, t as NativeIndicatorOutput, P as ParsedSymbol, u as PreparedScript, v as RendererControl, w as RunIndicatorResult, x as SceneInspection, a as ScriptRun, y as ScriptRunCause, z as ScriptRunResult, S as ScriptingEngine, A as SidePanelButton, G as SidePanelDescriptor, H as SidePanelHandle, J as SidePanelHeader, K as StatePersistenceHandler, M as StrategyFill, O as StrategyState, Q as StrategyTrade, T as TypedEventBus, V as Vela, U as VelaDeps, X as VelaEventMap, Y as VisibleBarRange, Z as WidgetActionDescriptor, _ as WidgetActionTarget, $ as WidgetAttachment, W as WidgetContext, a0 as getNativeIndicator, a1 as legendActions, a2 as nativeIndicatorDescriptors, a3 as nativeIndicatorTypes, a4 as registerDefaultEngine, a5 as registerLegendAction, a6 as registerNativeIndicator, a7 as registerSidePanel, a8 as registerStatePersistence, a9 as registerWidgetAction, aa as registerWidgetAttachment, ab as resolveEngines, ac as sidePanels, ad as statePersistenceHandlers, ae as unregisterDefaultEngine, af as unregisterLegendAction, ag as unregisterNativeIndicator, ah as unregisterSidePanel, ai as unregisterStatePersistence, aj as unregisterWidgetAction, ak as unregisterWidgetAttachment, al as widgetActions, am as widgetAttachments } from './contributions-BqCIsbaP.js';
1
+ import { D as DrawingsDocument, R as Resolved } from './contributions-DLLdV9jD.js';
2
+ export { B as BarsChangeReason, C as CellStateContext, b as ContextSelect, c as DataControl, d as DrawingsControl, e as EngineAlert, f as EngineCapabilities, g as EngineContextSnapshot, h as EngineFactory, i as EngineWarning, j as ExecutionHandlers, k as ExecutionMarket, l as ExecutionRequest, m as ExecutionSession, E as ExternalIndicatorEntry, F as FetchSeries, n as IndicatorEventMap, I as IndicatorHandle, o as IndicatorSummary, L as LegendActionDescriptor, p as LegendIndicatorInfo, N as NativeIndicator, q as NativeIndicatorContext, r as NativeIndicatorDescriptor, s as NativeIndicatorInfo, t as NativeIndicatorOutput, O as OVERRIDABLE_TOPBAR_IDS, P as ParsedSymbol, u as PreparedScript, v as RendererControl, w as RunIndicatorResult, x as SceneInspection, a as ScriptRun, y as ScriptRunCause, z as ScriptRunResult, S as ScriptingEngine, A as SidePanelButton, G as SidePanelDescriptor, H as SidePanelHandle, J as SidePanelHeader, K as StatePersistenceHandler, M as StrategyFill, Q as StrategyState, T as StrategyTrade, U as SymbolRankingHook, X as TypedEventBus, V as Vela, Y as VelaDeps, Z as VelaEventMap, _ as VisibleBarRange, $ as WidgetActionDescriptor, a0 as WidgetActionTarget, a1 as WidgetAttachment, W as WidgetContext, a2 as getNativeIndicator, a3 as legendActions, a4 as nativeIndicatorDescriptors, a5 as nativeIndicatorTypes, a6 as registerDefaultEngine, a7 as registerLegendAction, a8 as registerNativeIndicator, a9 as registerSidePanel, aa as registerStatePersistence, ab as registerSymbolRanking, ac as registerWidgetAction, ad as registerWidgetAttachment, ae as resolveEngines, af as sidePanels, ag as statePersistenceHandlers, ah as symbolRanking, ai as topbarActionOverride, aj as unregisterDefaultEngine, ak as unregisterLegendAction, al as unregisterNativeIndicator, am as unregisterSidePanel, an as unregisterStatePersistence, ao as unregisterWidgetAction, ap as unregisterWidgetAttachment, aq as widgetActions, ar as widgetAttachments } from './contributions-DLLdV9jD.js';
3
3
  import { D as Drawing, S as SerializedDrawing, U as Unsubscribe, L as LineStyle, P as PriceStyle, I as IChartRenderer, R as RendererCapabilities, e as RendererDisplayOptions, f as IndicatorRenderHandle, g as IndicatorStatus, c as VelaTheme, O as OHLCV, h as Pane, i as PaneAction, j as MoveTarget, k as IndicatorModel, l as ScenePatch, m as InputValue, n as SymbolPickerFn, o as LegendActionView, p as InputChangeEvent, T as ThemeName, C as CrosshairEvent, q as ClickEvent, A as AxisLongPressEvent, a as VisibleRange, r as DataWindowReadout, s as IDrawingsRendererPort, t as Millis, u as SnapMode, v as DrawingTypeKey, w as ToolbarDefinition, M as MarketConfig } from './options-BaVTMXaO.js';
4
4
  export { x as AddIndicatorOptions, B as Background, y as BoxFontFamily, z as BoxHAlign, E as BoxTextSize, F as BoxVAlign, G as CandleBarColor, H as CandleSeries, J as CandleStyle, K as DataWindowGroup, Q as DataWindowOHLC, W as DataWindowRow, X as DirtyRange, Y as DrawingBox, Z as DrawingExtend, _ as DrawingIntent, $ as DrawingLabel, a0 as DrawingLine, a1 as DrawingLinefill, a2 as DrawingMode, a3 as DrawingPoint, a4 as DrawingPolyline, a5 as DrawingStyle, a6 as DrawingTable, a7 as DrawingText, a8 as DrawingXLoc, a9 as DrawingsOption, aa as Fill, ab as FillGradientStop, ac as IndicatorMeta, ad as InputCondition, ae as InputSchema, af as InputType, ag as InputWhen, ah as LabelStyle, ai as LabelYLoc, aj as LineLikeKind, ak as LineLikeSeries, al as LineLikeStyle, am as MarkerPoint, an as MarkerSeries, ao as MarketSnapshot, ap as MarketSwitch, aq as PaneAxis, ar as PaneAxisBand, as as PaneHint, at as PaneKind, au as PolylinePoint, av as PriceLine, aw as Projector, ax as ProviderName, ay as RendererConstructor, az as Scene, aA as SchemaPatch, aB as SeriesKind, aC as SeriesPoint, aD as SeriesSpec, aE as SeriesValueDelta, aF as SettingsField, aG as SettingsSchema, aH as SettingsVisibilityPolicy, aI as TableCell, aJ as TableMerge, aK as TablePosition, aL as ToolbarGroupConfig, aM as TradeExecution, aN as ValuePatch, b as VelaOptions, V as VisibleRangePreset, aO as buildToolbar, aP as defaultToolbar, aQ as inputVisible } from './options-BaVTMXaO.js';
5
- import { M as MarketDataFeed, D as DataProvider, P as ProviderInfo, a as SymbolDescriptor, S as SymbolInfo, b as ProviderCapabilities, B as BarRange } from './DataProvider-JJq7M2it.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 CROSSHAIR, f as ChartTypeDefinition, g as ChartTypeSettingsInstance, h as ChartTypeSettingsSection, i as ChartTypeSettingsSubsection, D as DrawingTypeMeta, H as HIGHLIGHT, I as INFO, j as INVALID, k as IdentifiableKind, M as MARKER, N as NEUTRAL, l as NormalizedSettingsRow, R as RendererLayerArgs, m as RendererLayerDefinition, n as RendererLayerInstance, S as SERIES_LINE, o as SESSION_OFF, p as SESSION_POST, q as SESSION_PRE, r as SLATE, s as SLATE_DEEP, t as SeriesDataEngine, u as SeriesDataEngineHost, v as SettingsInlineControl, w as SettingsRowCondition, x as SettingsRowDescriptor, y as SettingsRowInlineNumber, z as SettingsRowSwatch, E as SettingsRowValueKey, F as SettingsRowWhen, G as SettingsRowWidth, J as SettingsSelectOption, K as SettingsValueRow, T as TRADE_EXIT, L as TRADE_LONG, O as TRADE_SHORT, V as VALID, W as WARNING, P as categoricalColor, Q as chartType, U as chartTypes, X as createDrawing, Y as deserializeDrawing, Z as drawingTypes, _ as getDrawingType, $ as normalizeSettingsRow, a0 as registerChartType, a1 as registerDrawingType, a2 as registerRendererDefaults, a3 as registerRendererLayer, a4 as rendererDefaults, a5 as rendererLayers, a6 as settingsRowValueKeys, a7 as stableSeriesId, a8 as tickerModifierIds, a9 as unregisterChartType, aa as unregisterRendererDefaults, ab as unregisterRendererLayer } from './plugin-WnvNNJOp.js';
5
+ import { M as MarketDataFeed, D as DataProvider, P as ProviderInfo, a as SymbolDescriptor, S as SymbolInfo, b as ProviderCapabilities, B as BarRange } from './DataProvider-BSLlBpB9.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 CROSSHAIR, f as ChartTypeDefinition, g as ChartTypeSettingsInstance, h as ChartTypeSettingsSection, i as ChartTypeSettingsSubsection, D as DrawingTypeMeta, H as HIGHLIGHT, I as INFO, j as INVALID, k as IdentifiableKind, M as MARKER, N as NEUTRAL, l as NormalizedSettingsRow, R as RendererLayerArgs, m as RendererLayerDefinition, n as RendererLayerInstance, S as SERIES_LINE, o as SESSION_OFF, p as SESSION_POST, q as SESSION_PRE, r as SLATE, s as SLATE_DEEP, t as SeriesDataEngine, u as SeriesDataEngineHost, v as SettingsInlineControl, w as SettingsRowCondition, x as SettingsRowDescriptor, y as SettingsRowInlineNumber, z as SettingsRowSwatch, E as SettingsRowValueKey, F as SettingsRowWhen, G as SettingsRowWidth, J as SettingsSelectOption, K as SettingsValueRow, T as TRADE_EXIT, L as TRADE_LONG, O as TRADE_SHORT, V as VALID, W as WARNING, P as categoricalColor, Q as chartType, U as chartTypes, X as createDrawing, Y as deserializeDrawing, Z as drawingTypes, _ as getDrawingType, $ as normalizeSettingsRow, a0 as registerChartType, a1 as registerDrawingType, a2 as registerRendererDefaults, a3 as registerRendererLayer, a4 as rendererDefaults, a5 as rendererLayers, a6 as settingsRowValueKeys, a7 as stableSeriesId, a8 as tickerModifierIds, a9 as unregisterChartType, aa as unregisterRendererDefaults, ab as unregisterRendererLayer } from './plugin-CC7rBrOY.js';
7
7
  export { 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-CT9ZwIGz.js';
8
8
  export { i as iconMarkup, r as registerIcon } from './icons-BZYbJXSV.js';
9
9
  export { a as KeyBindingDescriptor, R as ResolvedBinding } from './keymap-CGOz5F5f.js';
@@ -1241,6 +1241,10 @@ declare class MultiProviderFeed implements MarketDataFeed {
1241
1241
  canonicalSymbol(raw: string): string | null;
1242
1242
  /** The registered provider INSTANCE under `name` (undefined if unknown). */
1243
1243
  providerInstance(name: string): DataProvider | undefined;
1244
+ /** The icon URL for a DESCRIPTOR — its owning provider's `resolveSymbolIcon` (picker rows). */
1245
+ symbolIconOf(d: SymbolDescriptor): string | undefined;
1246
+ /** The icon URL for a raw SYMBOL string — resolve, then route (statusline, object tree). */
1247
+ symbolIcon(raw: string): string | undefined;
1244
1248
  symbols(name?: string): SymbolDescriptor[];
1245
1249
  /** Told when a symbol stays unservable by everything registered (the load is parked). */
1246
1250
  onUnresolved(cb: (info: {
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export { stableSeriesId } from './chunk-AOGZBKUE.js';
2
- export { BarStore, CachingDataFeed, DARK_THEME, DataControl, DrawingStore, DrawingToolbar, DrawingsControl, LIGHT_THEME, MultiProviderFeed, NativeRenderer, RendererControl, TypedEventBus, Vela, buildToolbar, defaultToolbar, resolveTheme, sharedBarStore, timeframeToMs } from './chunk-JQFO2WMU.js';
3
- export { DEFAULT_PANEL_MAX_WIDTH, DEFAULT_PANEL_MIN_WIDTH, DEFAULT_PANEL_WIDTH, Drawing, chartType, chartTypes, clampPanelWidth, createDrawing, deserializeDrawing, drawingTypes, getDrawingType, getNativeIndicator, inputVisible, legendActions, nativeIndicatorDescriptors, nativeIndicatorTypes, normalizeSettingsRow, registerChartType, registerDefaultEngine, registerDrawingType, registerLegendAction, registerNativeIndicator, registerRendererDefaults, registerRendererLayer, registerSidePanel, registerStatePersistence, registerWidgetAction, registerWidgetAttachment, rendererDefaults, rendererLayers, resolveEngines, settingsRowValueKeys, sidePanels, statePersistenceHandlers, tickerModifierIds, unregisterChartType, unregisterDefaultEngine, unregisterLegendAction, unregisterNativeIndicator, unregisterRendererDefaults, unregisterRendererLayer, unregisterSidePanel, unregisterStatePersistence, unregisterWidgetAction, unregisterWidgetAttachment, widgetActions, widgetAttachments } from './chunk-OEUGUXL7.js';
2
+ export { BarStore, CachingDataFeed, DARK_THEME, DataControl, DrawingStore, DrawingToolbar, DrawingsControl, LIGHT_THEME, MultiProviderFeed, NativeRenderer, RendererControl, TypedEventBus, Vela, buildToolbar, defaultToolbar, resolveTheme, sharedBarStore, timeframeToMs } from './chunk-SQETIBFU.js';
3
+ export { DEFAULT_PANEL_MAX_WIDTH, DEFAULT_PANEL_MIN_WIDTH, DEFAULT_PANEL_WIDTH, Drawing, OVERRIDABLE_TOPBAR_IDS, chartType, chartTypes, clampPanelWidth, createDrawing, deserializeDrawing, drawingTypes, getDrawingType, getNativeIndicator, inputVisible, legendActions, nativeIndicatorDescriptors, nativeIndicatorTypes, normalizeSettingsRow, registerChartType, registerDefaultEngine, registerDrawingType, registerLegendAction, registerNativeIndicator, registerRendererDefaults, registerRendererLayer, registerSidePanel, registerStatePersistence, registerSymbolRanking, registerWidgetAction, registerWidgetAttachment, rendererDefaults, rendererLayers, resolveEngines, settingsRowValueKeys, sidePanels, statePersistenceHandlers, symbolRanking, tickerModifierIds, topbarActionOverride, unregisterChartType, unregisterDefaultEngine, unregisterLegendAction, unregisterNativeIndicator, unregisterRendererDefaults, unregisterRendererLayer, unregisterSidePanel, unregisterStatePersistence, unregisterWidgetAction, unregisterWidgetAttachment, widgetActions, widgetAttachments } from './chunk-L3I2CCYO.js';
4
4
  import './chunk-OICPLNU7.js';
5
5
  export { ACCENT, ACCENT_BRIGHT, BEARISH, BULLISH, CATEGORICAL, 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-PN5KWFZ4.js';
@@ -1,9 +1,9 @@
1
1
  import { v as DrawingTypeKey, a5 as DrawingStyle, S as SerializedDrawing, D as Drawing, aB as SeriesKind, O as OHLCV, c as VelaTheme } from './options-BaVTMXaO.cjs';
2
- import { c as DataControl } from './contributions-DNMqrAuw.cjs';
2
+ import { c as DataControl } from './contributions-Vw-Hm58R.cjs';
3
3
  import './side-panel-CT9ZwIGz.cjs';
4
4
  import './icons-BZYbJXSV.cjs';
5
5
  import './keymap-CGOz5F5f.cjs';
6
- import './DataProvider-DDUYw2qP.cjs';
6
+ import './DataProvider-BsQM2WNH.cjs';
7
7
 
8
8
  /** What a drawing type contributes to the toolbar + factory (renderer-neutral). */
9
9
  interface DrawingTypeMeta {
@@ -1,9 +1,9 @@
1
1
  import { v as DrawingTypeKey, a5 as DrawingStyle, S as SerializedDrawing, D as Drawing, aB as SeriesKind, O as OHLCV, c as VelaTheme } from './options-BaVTMXaO.js';
2
- import { c as DataControl } from './contributions-BqCIsbaP.js';
2
+ import { c as DataControl } from './contributions-DLLdV9jD.js';
3
3
  import './side-panel-CT9ZwIGz.js';
4
4
  import './icons-BZYbJXSV.js';
5
5
  import './keymap-CGOz5F5f.js';
6
- import './DataProvider-JJq7M2it.js';
6
+ import './DataProvider-BSLlBpB9.js';
7
7
 
8
8
  /** What a drawing type contributes to the toolbar + factory (renderer-neutral). */
9
9
  interface DrawingTypeMeta {
package/dist/plugin.cjs CHANGED
@@ -103,6 +103,9 @@ function rendererLayers() {
103
103
  return [...registry2.values()];
104
104
  }
105
105
 
106
+ // src/widget/topbar-composition.ts
107
+ var TOPBAR_BUILTIN_IDS = ["symbol", "timeframes", "style", "layout", "indicators", "actions", "undo-redo", "alerts", "panels", "screenshot"];
108
+
106
109
  // src/widget/contributions.ts
107
110
  var registry3 = /* @__PURE__ */ new Map();
108
111
  var attachments = /* @__PURE__ */ new Map();
@@ -132,7 +135,18 @@ function unregisterSidePanel(id) {
132
135
  function sidePanels() {
133
136
  return [...panels.values()].sort((a, b) => (a.order ?? DEFAULT_PANEL_ORDER) - (b.order ?? DEFAULT_PANEL_ORDER));
134
137
  }
138
+ var OVERRIDABLE_TOPBAR_IDS = ["indicators", "screenshot"];
139
+ var overridableSet = new Set(OVERRIDABLE_TOPBAR_IDS);
140
+ var builtinTopbarSet = new Set(TOPBAR_BUILTIN_IDS);
141
+ function topbarActionOverride(id) {
142
+ if (!overridableSet.has(id)) return void 0;
143
+ return registry3.get(id);
144
+ }
135
145
  function registerWidgetAction(desc) {
146
+ if (builtinTopbarSet.has(desc.id) && !overridableSet.has(desc.id)) {
147
+ console.warn(`[vela] widget action "${desc.id}": this built-in topbar slot is a stateful control and cannot be overridden \u2014 ignored. Overridable slots: ${OVERRIDABLE_TOPBAR_IDS.join(", ")}.`);
148
+ return () => void 0;
149
+ }
136
150
  registry3.set(desc.id, desc);
137
151
  return () => {
138
152
  if (registry3.get(desc.id) === desc) registry3.delete(desc.id);
@@ -172,6 +186,16 @@ function unregisterStatePersistence(key) {
172
186
  function statePersistenceHandlers(scope) {
173
187
  return [...stateHandlers.values()].filter((h) => h.scope === scope);
174
188
  }
189
+ var symbolRankingHook;
190
+ function registerSymbolRanking(hook) {
191
+ symbolRankingHook = hook;
192
+ return () => {
193
+ if (symbolRankingHook === hook) symbolRankingHook = void 0;
194
+ };
195
+ }
196
+ function symbolRanking() {
197
+ return symbolRankingHook;
198
+ }
175
199
  var defaultEngines = /* @__PURE__ */ new Map();
176
200
  function registerDefaultEngine(language, make) {
177
201
  defaultEngines.set(language, make);
@@ -5990,6 +6014,7 @@ exports.INFO = INFO;
5990
6014
  exports.INVALID = INVALID;
5991
6015
  exports.MARKER = MARKER;
5992
6016
  exports.NEUTRAL = NEUTRAL;
6017
+ exports.OVERRIDABLE_TOPBAR_IDS = OVERRIDABLE_TOPBAR_IDS;
5993
6018
  exports.SERIES_LINE = SERIES_LINE;
5994
6019
  exports.SESSION_OFF = SESSION_OFF;
5995
6020
  exports.SESSION_POST = SESSION_POST;
@@ -6022,6 +6047,7 @@ exports.registerRendererDefaults = registerRendererDefaults;
6022
6047
  exports.registerRendererLayer = registerRendererLayer;
6023
6048
  exports.registerSidePanel = registerSidePanel;
6024
6049
  exports.registerStatePersistence = registerStatePersistence;
6050
+ exports.registerSymbolRanking = registerSymbolRanking;
6025
6051
  exports.registerWidgetAction = registerWidgetAction;
6026
6052
  exports.registerWidgetAttachment = registerWidgetAttachment;
6027
6053
  exports.rendererDefaults = rendererDefaults;
@@ -6031,7 +6057,9 @@ exports.settingsRowValueKeys = settingsRowValueKeys;
6031
6057
  exports.sidePanels = sidePanels;
6032
6058
  exports.stableSeriesId = stableSeriesId;
6033
6059
  exports.statePersistenceHandlers = statePersistenceHandlers;
6060
+ exports.symbolRanking = symbolRanking;
6034
6061
  exports.tickerModifierIds = tickerModifierIds;
6062
+ exports.topbarActionOverride = topbarActionOverride;
6035
6063
  exports.unregisterChartType = unregisterChartType;
6036
6064
  exports.unregisterDefaultEngine = unregisterDefaultEngine;
6037
6065
  exports.unregisterLegendAction = unregisterLegendAction;
package/dist/plugin.d.cts CHANGED
@@ -1,7 +1,7 @@
1
- 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 CROSSHAIR, f as ChartTypeDefinition, g as ChartTypeSettingsInstance, h as ChartTypeSettingsSection, i as ChartTypeSettingsSubsection, D as DrawingTypeMeta, H as HIGHLIGHT, I as INFO, j as INVALID, k as IdentifiableKind, M as MARKER, N as NEUTRAL, l as NormalizedSettingsRow, R as RendererLayerArgs, m as RendererLayerDefinition, n as RendererLayerInstance, S as SERIES_LINE, o as SESSION_OFF, p as SESSION_POST, q as SESSION_PRE, r as SLATE, s as SLATE_DEEP, t as SeriesDataEngine, u as SeriesDataEngineHost, v as SettingsInlineControl, w as SettingsRowCondition, x as SettingsRowDescriptor, y as SettingsRowInlineNumber, z as SettingsRowSwatch, E as SettingsRowValueKey, F as SettingsRowWhen, G as SettingsRowWidth, J as SettingsSelectOption, K as SettingsValueRow, T as TRADE_EXIT, L as TRADE_LONG, O as TRADE_SHORT, V as VALID, W as WARNING, P as categoricalColor, Q as chartType, U as chartTypes, Z as drawingTypes, _ as getDrawingType, $ as normalizeSettingsRow, a0 as registerChartType, a2 as registerRendererDefaults, a3 as registerRendererLayer, a4 as rendererDefaults, a5 as rendererLayers, a6 as settingsRowValueKeys, a7 as stableSeriesId, a8 as tickerModifierIds, a9 as unregisterChartType, aa as unregisterRendererDefaults, ab as unregisterRendererLayer } from './plugin-CN8U2__Q.cjs';
2
- export { B as BarsChangeReason, C as CellStateContext, b as ContextSelect, e as EngineAlert, f as EngineCapabilities, g as EngineContextSnapshot, h as EngineFactory, i as EngineWarning, j as ExecutionHandlers, k as ExecutionMarket, l as ExecutionRequest, m as ExecutionSession, E as ExternalIndicatorEntry, F as FetchSeries, L as LegendActionDescriptor, p as LegendIndicatorInfo, N as NativeIndicator, q as NativeIndicatorContext, r as NativeIndicatorDescriptor, s as NativeIndicatorInfo, t as NativeIndicatorOutput, u as PreparedScript, a as ScriptRun, y as ScriptRunCause, z as ScriptRunResult, S as ScriptingEngine, A as SidePanelButton, G as SidePanelDescriptor, H as SidePanelHandle, J as SidePanelHeader, K as StatePersistenceHandler, M as StrategyFill, O as StrategyState, Q as StrategyTrade, Y as VisibleBarRange, Z as WidgetActionDescriptor, _ as WidgetActionTarget, $ as WidgetAttachment, W as WidgetContext, a0 as getNativeIndicator, a1 as legendActions, a3 as nativeIndicatorTypes, a4 as registerDefaultEngine, a5 as registerLegendAction, a6 as registerNativeIndicator, a7 as registerSidePanel, a8 as registerStatePersistence, a9 as registerWidgetAction, aa as registerWidgetAttachment, ab as resolveEngines, ac as sidePanels, ad as statePersistenceHandlers, ae as unregisterDefaultEngine, af as unregisterLegendAction, ag as unregisterNativeIndicator, ah as unregisterSidePanel, ai as unregisterStatePersistence, aj as unregisterWidgetAction, ak as unregisterWidgetAttachment, al as widgetActions, am as widgetAttachments } from './contributions-DNMqrAuw.cjs';
1
+ 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 CROSSHAIR, f as ChartTypeDefinition, g as ChartTypeSettingsInstance, h as ChartTypeSettingsSection, i as ChartTypeSettingsSubsection, D as DrawingTypeMeta, H as HIGHLIGHT, I as INFO, j as INVALID, k as IdentifiableKind, M as MARKER, N as NEUTRAL, l as NormalizedSettingsRow, R as RendererLayerArgs, m as RendererLayerDefinition, n as RendererLayerInstance, S as SERIES_LINE, o as SESSION_OFF, p as SESSION_POST, q as SESSION_PRE, r as SLATE, s as SLATE_DEEP, t as SeriesDataEngine, u as SeriesDataEngineHost, v as SettingsInlineControl, w as SettingsRowCondition, x as SettingsRowDescriptor, y as SettingsRowInlineNumber, z as SettingsRowSwatch, E as SettingsRowValueKey, F as SettingsRowWhen, G as SettingsRowWidth, J as SettingsSelectOption, K as SettingsValueRow, T as TRADE_EXIT, L as TRADE_LONG, O as TRADE_SHORT, V as VALID, W as WARNING, P as categoricalColor, Q as chartType, U as chartTypes, Z as drawingTypes, _ as getDrawingType, $ as normalizeSettingsRow, a0 as registerChartType, a2 as registerRendererDefaults, a3 as registerRendererLayer, a4 as rendererDefaults, a5 as rendererLayers, a6 as settingsRowValueKeys, a7 as stableSeriesId, a8 as tickerModifierIds, a9 as unregisterChartType, aa as unregisterRendererDefaults, ab as unregisterRendererLayer } from './plugin-BnJgjLAy.cjs';
2
+ export { B as BarsChangeReason, C as CellStateContext, b as ContextSelect, e as EngineAlert, f as EngineCapabilities, g as EngineContextSnapshot, h as EngineFactory, i as EngineWarning, j as ExecutionHandlers, k as ExecutionMarket, l as ExecutionRequest, m as ExecutionSession, E as ExternalIndicatorEntry, F as FetchSeries, L as LegendActionDescriptor, p as LegendIndicatorInfo, N as NativeIndicator, q as NativeIndicatorContext, r as NativeIndicatorDescriptor, s as NativeIndicatorInfo, t as NativeIndicatorOutput, O as OVERRIDABLE_TOPBAR_IDS, u as PreparedScript, a as ScriptRun, y as ScriptRunCause, z as ScriptRunResult, S as ScriptingEngine, A as SidePanelButton, G as SidePanelDescriptor, H as SidePanelHandle, J as SidePanelHeader, K as StatePersistenceHandler, M as StrategyFill, Q as StrategyState, T as StrategyTrade, U as SymbolRankingHook, _ as VisibleBarRange, $ as WidgetActionDescriptor, a0 as WidgetActionTarget, a1 as WidgetAttachment, W as WidgetContext, a2 as getNativeIndicator, a3 as legendActions, a5 as nativeIndicatorTypes, a6 as registerDefaultEngine, a7 as registerLegendAction, a8 as registerNativeIndicator, a9 as registerSidePanel, aa as registerStatePersistence, ab as registerSymbolRanking, ac as registerWidgetAction, ad as registerWidgetAttachment, ae as resolveEngines, af as sidePanels, ag as statePersistenceHandlers, ah as symbolRanking, ai as topbarActionOverride, aj as unregisterDefaultEngine, ak as unregisterLegendAction, al as unregisterNativeIndicator, am as unregisterSidePanel, an as unregisterStatePersistence, ao as unregisterWidgetAction, ap as unregisterWidgetAttachment, aq as widgetActions, ar as widgetAttachments } from './contributions-Vw-Hm58R.cjs';
3
3
  export { 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-CT9ZwIGz.cjs';
4
4
  export { B as Background, y as BoxFontFamily, z as BoxHAlign, E as BoxTextSize, F as BoxVAlign, G as CandleBarColor, H as CandleSeries, J as CandleStyle, X as DirtyRange, Y as DrawingBox, Z as DrawingExtend, $ as DrawingLabel, a0 as DrawingLine, a1 as DrawingLinefill, a4 as DrawingPolyline, a6 as DrawingTable, v as DrawingTypeKey, a8 as DrawingXLoc, aa as Fill, ab as FillGradientStop, ac as IndicatorMeta, k as IndicatorModel, ad as InputCondition, ae as InputSchema, af as InputType, m as InputValue, ag as InputWhen, ah as LabelStyle, ai as LabelYLoc, aj as LineLikeKind, ak as LineLikeSeries, al as LineLikeStyle, L as LineStyle, am as MarkerPoint, an as MarkerSeries, t as Millis, O as OHLCV, h as Pane, aq as PaneAxis, ar as PaneAxisBand, as as PaneHint, at as PaneKind, au as PolylinePoint, av as PriceLine, P as PriceStyle, az as Scene, l as ScenePatch, aA as SchemaPatch, aB as SeriesKind, aC as SeriesPoint, aD as SeriesSpec, aE as SeriesValueDelta, aI as TableCell, aJ as TableMerge, aK as TablePosition, aM as TradeExecution, aN as ValuePatch, aQ as inputVisible } from './options-BaVTMXaO.cjs';
5
5
  export { i as iconMarkup, r as registerIcon } from './icons-BZYbJXSV.cjs';
6
6
  export { a as KeyBindingDescriptor, R as ResolvedBinding } from './keymap-CGOz5F5f.cjs';
7
- export { B as BarRange, D as DataProvider, M as MarketDataFeed, b as ProviderCapabilities, P as ProviderInfo, a as SymbolDescriptor, S as SymbolInfo } from './DataProvider-DDUYw2qP.cjs';
7
+ export { B as BarRange, D as DataProvider, M as MarketDataFeed, b as ProviderCapabilities, P as ProviderInfo, a as SymbolDescriptor, S as SymbolInfo } from './DataProvider-BsQM2WNH.cjs';
package/dist/plugin.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- 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 CROSSHAIR, f as ChartTypeDefinition, g as ChartTypeSettingsInstance, h as ChartTypeSettingsSection, i as ChartTypeSettingsSubsection, D as DrawingTypeMeta, H as HIGHLIGHT, I as INFO, j as INVALID, k as IdentifiableKind, M as MARKER, N as NEUTRAL, l as NormalizedSettingsRow, R as RendererLayerArgs, m as RendererLayerDefinition, n as RendererLayerInstance, S as SERIES_LINE, o as SESSION_OFF, p as SESSION_POST, q as SESSION_PRE, r as SLATE, s as SLATE_DEEP, t as SeriesDataEngine, u as SeriesDataEngineHost, v as SettingsInlineControl, w as SettingsRowCondition, x as SettingsRowDescriptor, y as SettingsRowInlineNumber, z as SettingsRowSwatch, E as SettingsRowValueKey, F as SettingsRowWhen, G as SettingsRowWidth, J as SettingsSelectOption, K as SettingsValueRow, T as TRADE_EXIT, L as TRADE_LONG, O as TRADE_SHORT, V as VALID, W as WARNING, P as categoricalColor, Q as chartType, U as chartTypes, Z as drawingTypes, _ as getDrawingType, $ as normalizeSettingsRow, a0 as registerChartType, a2 as registerRendererDefaults, a3 as registerRendererLayer, a4 as rendererDefaults, a5 as rendererLayers, a6 as settingsRowValueKeys, a7 as stableSeriesId, a8 as tickerModifierIds, a9 as unregisterChartType, aa as unregisterRendererDefaults, ab as unregisterRendererLayer } from './plugin-WnvNNJOp.js';
2
- export { B as BarsChangeReason, C as CellStateContext, b as ContextSelect, e as EngineAlert, f as EngineCapabilities, g as EngineContextSnapshot, h as EngineFactory, i as EngineWarning, j as ExecutionHandlers, k as ExecutionMarket, l as ExecutionRequest, m as ExecutionSession, E as ExternalIndicatorEntry, F as FetchSeries, L as LegendActionDescriptor, p as LegendIndicatorInfo, N as NativeIndicator, q as NativeIndicatorContext, r as NativeIndicatorDescriptor, s as NativeIndicatorInfo, t as NativeIndicatorOutput, u as PreparedScript, a as ScriptRun, y as ScriptRunCause, z as ScriptRunResult, S as ScriptingEngine, A as SidePanelButton, G as SidePanelDescriptor, H as SidePanelHandle, J as SidePanelHeader, K as StatePersistenceHandler, M as StrategyFill, O as StrategyState, Q as StrategyTrade, Y as VisibleBarRange, Z as WidgetActionDescriptor, _ as WidgetActionTarget, $ as WidgetAttachment, W as WidgetContext, a0 as getNativeIndicator, a1 as legendActions, a3 as nativeIndicatorTypes, a4 as registerDefaultEngine, a5 as registerLegendAction, a6 as registerNativeIndicator, a7 as registerSidePanel, a8 as registerStatePersistence, a9 as registerWidgetAction, aa as registerWidgetAttachment, ab as resolveEngines, ac as sidePanels, ad as statePersistenceHandlers, ae as unregisterDefaultEngine, af as unregisterLegendAction, ag as unregisterNativeIndicator, ah as unregisterSidePanel, ai as unregisterStatePersistence, aj as unregisterWidgetAction, ak as unregisterWidgetAttachment, al as widgetActions, am as widgetAttachments } from './contributions-BqCIsbaP.js';
1
+ 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 CROSSHAIR, f as ChartTypeDefinition, g as ChartTypeSettingsInstance, h as ChartTypeSettingsSection, i as ChartTypeSettingsSubsection, D as DrawingTypeMeta, H as HIGHLIGHT, I as INFO, j as INVALID, k as IdentifiableKind, M as MARKER, N as NEUTRAL, l as NormalizedSettingsRow, R as RendererLayerArgs, m as RendererLayerDefinition, n as RendererLayerInstance, S as SERIES_LINE, o as SESSION_OFF, p as SESSION_POST, q as SESSION_PRE, r as SLATE, s as SLATE_DEEP, t as SeriesDataEngine, u as SeriesDataEngineHost, v as SettingsInlineControl, w as SettingsRowCondition, x as SettingsRowDescriptor, y as SettingsRowInlineNumber, z as SettingsRowSwatch, E as SettingsRowValueKey, F as SettingsRowWhen, G as SettingsRowWidth, J as SettingsSelectOption, K as SettingsValueRow, T as TRADE_EXIT, L as TRADE_LONG, O as TRADE_SHORT, V as VALID, W as WARNING, P as categoricalColor, Q as chartType, U as chartTypes, Z as drawingTypes, _ as getDrawingType, $ as normalizeSettingsRow, a0 as registerChartType, a2 as registerRendererDefaults, a3 as registerRendererLayer, a4 as rendererDefaults, a5 as rendererLayers, a6 as settingsRowValueKeys, a7 as stableSeriesId, a8 as tickerModifierIds, a9 as unregisterChartType, aa as unregisterRendererDefaults, ab as unregisterRendererLayer } from './plugin-CC7rBrOY.js';
2
+ export { B as BarsChangeReason, C as CellStateContext, b as ContextSelect, e as EngineAlert, f as EngineCapabilities, g as EngineContextSnapshot, h as EngineFactory, i as EngineWarning, j as ExecutionHandlers, k as ExecutionMarket, l as ExecutionRequest, m as ExecutionSession, E as ExternalIndicatorEntry, F as FetchSeries, L as LegendActionDescriptor, p as LegendIndicatorInfo, N as NativeIndicator, q as NativeIndicatorContext, r as NativeIndicatorDescriptor, s as NativeIndicatorInfo, t as NativeIndicatorOutput, O as OVERRIDABLE_TOPBAR_IDS, u as PreparedScript, a as ScriptRun, y as ScriptRunCause, z as ScriptRunResult, S as ScriptingEngine, A as SidePanelButton, G as SidePanelDescriptor, H as SidePanelHandle, J as SidePanelHeader, K as StatePersistenceHandler, M as StrategyFill, Q as StrategyState, T as StrategyTrade, U as SymbolRankingHook, _ as VisibleBarRange, $ as WidgetActionDescriptor, a0 as WidgetActionTarget, a1 as WidgetAttachment, W as WidgetContext, a2 as getNativeIndicator, a3 as legendActions, a5 as nativeIndicatorTypes, a6 as registerDefaultEngine, a7 as registerLegendAction, a8 as registerNativeIndicator, a9 as registerSidePanel, aa as registerStatePersistence, ab as registerSymbolRanking, ac as registerWidgetAction, ad as registerWidgetAttachment, ae as resolveEngines, af as sidePanels, ag as statePersistenceHandlers, ah as symbolRanking, ai as topbarActionOverride, aj as unregisterDefaultEngine, ak as unregisterLegendAction, al as unregisterNativeIndicator, am as unregisterSidePanel, an as unregisterStatePersistence, ao as unregisterWidgetAction, ap as unregisterWidgetAttachment, aq as widgetActions, ar as widgetAttachments } from './contributions-DLLdV9jD.js';
3
3
  export { 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-CT9ZwIGz.js';
4
4
  export { B as Background, y as BoxFontFamily, z as BoxHAlign, E as BoxTextSize, F as BoxVAlign, G as CandleBarColor, H as CandleSeries, J as CandleStyle, X as DirtyRange, Y as DrawingBox, Z as DrawingExtend, $ as DrawingLabel, a0 as DrawingLine, a1 as DrawingLinefill, a4 as DrawingPolyline, a6 as DrawingTable, v as DrawingTypeKey, a8 as DrawingXLoc, aa as Fill, ab as FillGradientStop, ac as IndicatorMeta, k as IndicatorModel, ad as InputCondition, ae as InputSchema, af as InputType, m as InputValue, ag as InputWhen, ah as LabelStyle, ai as LabelYLoc, aj as LineLikeKind, ak as LineLikeSeries, al as LineLikeStyle, L as LineStyle, am as MarkerPoint, an as MarkerSeries, t as Millis, O as OHLCV, h as Pane, aq as PaneAxis, ar as PaneAxisBand, as as PaneHint, at as PaneKind, au as PolylinePoint, av as PriceLine, P as PriceStyle, az as Scene, l as ScenePatch, aA as SchemaPatch, aB as SeriesKind, aC as SeriesPoint, aD as SeriesSpec, aE as SeriesValueDelta, aI as TableCell, aJ as TableMerge, aK as TablePosition, aM as TradeExecution, aN as ValuePatch, aQ as inputVisible } from './options-BaVTMXaO.js';
5
5
  export { i as iconMarkup, r as registerIcon } from './icons-BZYbJXSV.js';
6
6
  export { a as KeyBindingDescriptor, R as ResolvedBinding } from './keymap-CGOz5F5f.js';
7
- export { B as BarRange, D as DataProvider, M as MarketDataFeed, b as ProviderCapabilities, P as ProviderInfo, a as SymbolDescriptor, S as SymbolInfo } from './DataProvider-JJq7M2it.js';
7
+ export { B as BarRange, D as DataProvider, M as MarketDataFeed, b as ProviderCapabilities, P as ProviderInfo, a as SymbolDescriptor, S as SymbolInfo } from './DataProvider-BSLlBpB9.js';
package/dist/plugin.js CHANGED
@@ -1,3 +1,3 @@
1
1
  export { stableSeriesId } from './chunk-AOGZBKUE.js';
2
- export { DEFAULT_PANEL_MAX_WIDTH, DEFAULT_PANEL_MIN_WIDTH, DEFAULT_PANEL_WIDTH, chartType, chartTypes, clampPanelWidth, drawingTypes, getDrawingType, getNativeIndicator, inputVisible, legendActions, nativeIndicatorTypes, normalizeSettingsRow, registerChartType, registerDefaultEngine, registerLegendAction, registerNativeIndicator, registerRendererDefaults, registerRendererLayer, registerSidePanel, registerStatePersistence, registerWidgetAction, registerWidgetAttachment, rendererDefaults, rendererLayers, resolveEngines, settingsRowValueKeys, sidePanels, statePersistenceHandlers, tickerModifierIds, unregisterChartType, unregisterDefaultEngine, unregisterLegendAction, unregisterNativeIndicator, unregisterRendererDefaults, unregisterRendererLayer, unregisterSidePanel, unregisterStatePersistence, unregisterWidgetAction, unregisterWidgetAttachment, widgetActions, widgetAttachments } from './chunk-OEUGUXL7.js';
2
+ export { DEFAULT_PANEL_MAX_WIDTH, DEFAULT_PANEL_MIN_WIDTH, DEFAULT_PANEL_WIDTH, OVERRIDABLE_TOPBAR_IDS, chartType, chartTypes, clampPanelWidth, drawingTypes, getDrawingType, getNativeIndicator, inputVisible, legendActions, nativeIndicatorTypes, normalizeSettingsRow, registerChartType, registerDefaultEngine, registerLegendAction, registerNativeIndicator, registerRendererDefaults, registerRendererLayer, registerSidePanel, registerStatePersistence, registerSymbolRanking, registerWidgetAction, registerWidgetAttachment, rendererDefaults, rendererLayers, resolveEngines, settingsRowValueKeys, sidePanels, statePersistenceHandlers, symbolRanking, tickerModifierIds, topbarActionOverride, unregisterChartType, unregisterDefaultEngine, unregisterLegendAction, unregisterNativeIndicator, unregisterRendererDefaults, unregisterRendererLayer, unregisterSidePanel, unregisterStatePersistence, unregisterWidgetAction, unregisterWidgetAttachment, widgetActions, widgetAttachments } from './chunk-L3I2CCYO.js';
3
3
  export { ACCENT, ACCENT_BRIGHT, BEARISH, BULLISH, CATEGORICAL, 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-PN5KWFZ4.js';
@@ -1,5 +1,16 @@
1
1
  'use strict';
2
2
 
3
+ // src/data/symbol-base.ts
4
+ function baseOf(d) {
5
+ const fromDesc = d.description?.split("/")[0]?.trim();
6
+ if (fromDesc) return fromDesc.replace(/\s+Perpetual$/i, "");
7
+ return d.ticker.replace(/[-_/]?(USDT|USDC|USD1|USDS|BUSD|USD|EUR|PERP)$/i, "") || d.ticker;
8
+ }
9
+ function ledgerCryptoIconUrl(base) {
10
+ const key = base.trim().toUpperCase();
11
+ return key ? `https://crypto-icons.ledger.com/${encodeURIComponent(key)}.png` : void 0;
12
+ }
13
+
3
14
  // src/data/providers/binance/BinanceProvider.ts
4
15
  var SPOT_BASE = "https://api.binance.com/api/v3";
5
16
  var SPOT_BASE_US = "https://api.binance.us/api/v3";
@@ -186,6 +197,11 @@ var BinanceProvider = class {
186
197
  }
187
198
  return this.symbolsPromise;
188
199
  }
200
+ /** Predefined icon source for a crypto venue: the Ledger crypto-icon CDN, keyed by
201
+ * the BASE asset (the description's first segment, else the de-suffixed ticker). */
202
+ resolveSymbolIcon(symbol) {
203
+ return ledgerCryptoIconUrl(baseOf(symbol));
204
+ }
189
205
  subscribe(ticker, timeframe, onBar) {
190
206
  const { apiSymbol, isFutures } = parseTicker(ticker);
191
207
  const interval = TF_TO_INTERVAL[normalizeTf(timeframe)];
@@ -1,5 +1,5 @@
1
1
  import { O as OHLCV, U as Unsubscribe } from '../options-BaVTMXaO.cjs';
2
- import { D as DataProvider, P as ProviderInfo, B as BarRange, S as SymbolInfo, a as SymbolDescriptor } from '../DataProvider-DDUYw2qP.cjs';
2
+ import { D as DataProvider, P as ProviderInfo, B as BarRange, S as SymbolInfo, a as SymbolDescriptor } from '../DataProvider-BsQM2WNH.cjs';
3
3
 
4
4
  /**
5
5
  * Binance market-data provider, built from scratch on the public REST + WebSocket
@@ -23,6 +23,9 @@ declare class BinanceProvider implements DataProvider {
23
23
  getBars(ticker: string, timeframe: string, range: BarRange): Promise<OHLCV[]>;
24
24
  getSymbolInfo(ticker: string): Promise<SymbolInfo | undefined>;
25
25
  listSymbols(): Promise<SymbolDescriptor[]>;
26
+ /** Predefined icon source for a crypto venue: the Ledger crypto-icon CDN, keyed by
27
+ * the BASE asset (the description's first segment, else the de-suffixed ticker). */
28
+ resolveSymbolIcon(symbol: SymbolDescriptor): string | undefined;
26
29
  subscribe(ticker: string, timeframe: string, onBar: (bar: OHLCV) => void): Unsubscribe;
27
30
  /**
28
31
  * Open a Binance kline WebSocket (single-stream URL form — the stream is in the
@@ -1,5 +1,5 @@
1
1
  import { O as OHLCV, U as Unsubscribe } from '../options-BaVTMXaO.js';
2
- import { D as DataProvider, P as ProviderInfo, B as BarRange, S as SymbolInfo, a as SymbolDescriptor } from '../DataProvider-JJq7M2it.js';
2
+ import { D as DataProvider, P as ProviderInfo, B as BarRange, S as SymbolInfo, a as SymbolDescriptor } from '../DataProvider-BSLlBpB9.js';
3
3
 
4
4
  /**
5
5
  * Binance market-data provider, built from scratch on the public REST + WebSocket
@@ -23,6 +23,9 @@ declare class BinanceProvider implements DataProvider {
23
23
  getBars(ticker: string, timeframe: string, range: BarRange): Promise<OHLCV[]>;
24
24
  getSymbolInfo(ticker: string): Promise<SymbolInfo | undefined>;
25
25
  listSymbols(): Promise<SymbolDescriptor[]>;
26
+ /** Predefined icon source for a crypto venue: the Ledger crypto-icon CDN, keyed by
27
+ * the BASE asset (the description's first segment, else the de-suffixed ticker). */
28
+ resolveSymbolIcon(symbol: SymbolDescriptor): string | undefined;
26
29
  subscribe(ticker: string, timeframe: string, onBar: (bar: OHLCV) => void): Unsubscribe;
27
30
  /**
28
31
  * Open a Binance kline WebSocket (single-stream URL form — the stream is in the
@@ -1,3 +1,5 @@
1
+ import { ledgerCryptoIconUrl, baseOf } from '../chunk-W4EJWLEO.js';
2
+
1
3
  // src/data/providers/binance/BinanceProvider.ts
2
4
  var SPOT_BASE = "https://api.binance.com/api/v3";
3
5
  var SPOT_BASE_US = "https://api.binance.us/api/v3";
@@ -184,6 +186,11 @@ var BinanceProvider = class {
184
186
  }
185
187
  return this.symbolsPromise;
186
188
  }
189
+ /** Predefined icon source for a crypto venue: the Ledger crypto-icon CDN, keyed by
190
+ * the BASE asset (the description's first segment, else the de-suffixed ticker). */
191
+ resolveSymbolIcon(symbol) {
192
+ return ledgerCryptoIconUrl(baseOf(symbol));
193
+ }
187
194
  subscribe(ticker, timeframe, onBar) {
188
195
  const { apiSymbol, isFutures } = parseTicker(ticker);
189
196
  const interval = TF_TO_INTERVAL[normalizeTf(timeframe)];
@@ -1,5 +1,16 @@
1
1
  'use strict';
2
2
 
3
+ // src/data/symbol-base.ts
4
+ function baseOf(d) {
5
+ const fromDesc = d.description?.split("/")[0]?.trim();
6
+ if (fromDesc) return fromDesc.replace(/\s+Perpetual$/i, "");
7
+ return d.ticker.replace(/[-_/]?(USDT|USDC|USD1|USDS|BUSD|USD|EUR|PERP)$/i, "") || d.ticker;
8
+ }
9
+ function ledgerCryptoIconUrl(base) {
10
+ const key = base.trim().toUpperCase();
11
+ return key ? `https://crypto-icons.ledger.com/${encodeURIComponent(key)}.png` : void 0;
12
+ }
13
+
3
14
  // src/data/providers/coinbase/RequestGate.ts
4
15
  var REAL_CLOCK = {
5
16
  now: () => Date.now(),
@@ -234,6 +245,11 @@ var CoinbaseProvider = class {
234
245
  }
235
246
  return this.symbolsPromise;
236
247
  }
248
+ /** Predefined icon source for a crypto venue: the Ledger crypto-icon CDN, keyed by
249
+ * the BASE asset (the description's first segment, else the de-suffixed ticker). */
250
+ resolveSymbolIcon(symbol) {
251
+ return ledgerCryptoIconUrl(baseOf(symbol));
252
+ }
237
253
  subscribe(ticker, timeframe, onBar) {
238
254
  const gran = TF_TO_GRAN[normalizeTf(timeframe)];
239
255
  if (gran && typeof WebSocket !== "undefined") return this.streamTicker(ticker, timeframe, gran, onBar);
@@ -1,5 +1,5 @@
1
1
  import { O as OHLCV, U as Unsubscribe } from '../options-BaVTMXaO.cjs';
2
- import { D as DataProvider, P as ProviderInfo, B as BarRange, S as SymbolInfo, a as SymbolDescriptor } from '../DataProvider-DDUYw2qP.cjs';
2
+ import { D as DataProvider, P as ProviderInfo, B as BarRange, S as SymbolInfo, a as SymbolDescriptor } from '../DataProvider-BsQM2WNH.cjs';
3
3
 
4
4
  /**
5
5
  * Coinbase market-data provider, built from scratch on the public Exchange REST + WebSocket APIs
@@ -24,6 +24,9 @@ declare class CoinbaseProvider implements DataProvider {
24
24
  getBars(ticker: string, timeframe: string, range: BarRange): Promise<OHLCV[]>;
25
25
  getSymbolInfo(ticker: string): Promise<SymbolInfo | undefined>;
26
26
  listSymbols(): Promise<SymbolDescriptor[]>;
27
+ /** Predefined icon source for a crypto venue: the Ledger crypto-icon CDN, keyed by
28
+ * the BASE asset (the description's first segment, else the de-suffixed ticker). */
29
+ resolveSymbolIcon(symbol: SymbolDescriptor): string | undefined;
27
30
  subscribe(ticker: string, timeframe: string, onBar: (bar: OHLCV) => void): Unsubscribe;
28
31
  private fetchProducts;
29
32
  /**
@@ -1,5 +1,5 @@
1
1
  import { O as OHLCV, U as Unsubscribe } from '../options-BaVTMXaO.js';
2
- import { D as DataProvider, P as ProviderInfo, B as BarRange, S as SymbolInfo, a as SymbolDescriptor } from '../DataProvider-JJq7M2it.js';
2
+ import { D as DataProvider, P as ProviderInfo, B as BarRange, S as SymbolInfo, a as SymbolDescriptor } from '../DataProvider-BSLlBpB9.js';
3
3
 
4
4
  /**
5
5
  * Coinbase market-data provider, built from scratch on the public Exchange REST + WebSocket APIs
@@ -24,6 +24,9 @@ declare class CoinbaseProvider implements DataProvider {
24
24
  getBars(ticker: string, timeframe: string, range: BarRange): Promise<OHLCV[]>;
25
25
  getSymbolInfo(ticker: string): Promise<SymbolInfo | undefined>;
26
26
  listSymbols(): Promise<SymbolDescriptor[]>;
27
+ /** Predefined icon source for a crypto venue: the Ledger crypto-icon CDN, keyed by
28
+ * the BASE asset (the description's first segment, else the de-suffixed ticker). */
29
+ resolveSymbolIcon(symbol: SymbolDescriptor): string | undefined;
27
30
  subscribe(ticker: string, timeframe: string, onBar: (bar: OHLCV) => void): Unsubscribe;
28
31
  private fetchProducts;
29
32
  /**
@@ -1,3 +1,5 @@
1
+ import { ledgerCryptoIconUrl, baseOf } from '../chunk-W4EJWLEO.js';
2
+
1
3
  // src/data/providers/coinbase/RequestGate.ts
2
4
  var REAL_CLOCK = {
3
5
  now: () => Date.now(),
@@ -232,6 +234,11 @@ var CoinbaseProvider = class {
232
234
  }
233
235
  return this.symbolsPromise;
234
236
  }
237
+ /** Predefined icon source for a crypto venue: the Ledger crypto-icon CDN, keyed by
238
+ * the BASE asset (the description's first segment, else the de-suffixed ticker). */
239
+ resolveSymbolIcon(symbol) {
240
+ return ledgerCryptoIconUrl(baseOf(symbol));
241
+ }
235
242
  subscribe(ticker, timeframe, onBar) {
236
243
  const gran = TF_TO_GRAN[normalizeTf(timeframe)];
237
244
  if (gran && typeof WebSocket !== "undefined") return this.streamTicker(ticker, timeframe, gran, onBar);
@@ -1,5 +1,16 @@
1
1
  'use strict';
2
2
 
3
+ // src/data/symbol-base.ts
4
+ function baseOf(d) {
5
+ const fromDesc = d.description?.split("/")[0]?.trim();
6
+ if (fromDesc) return fromDesc.replace(/\s+Perpetual$/i, "");
7
+ return d.ticker.replace(/[-_/]?(USDT|USDC|USD1|USDS|BUSD|USD|EUR|PERP)$/i, "") || d.ticker;
8
+ }
9
+ function ledgerCryptoIconUrl(base) {
10
+ const key = base.trim().toUpperCase();
11
+ return key ? `https://crypto-icons.ledger.com/${encodeURIComponent(key)}.png` : void 0;
12
+ }
13
+
3
14
  // src/data/providers/hyperliquid/HyperliquidProvider.ts
4
15
  var INFO_URL = "https://api.hyperliquid.xyz/info";
5
16
  var WS_URL = "wss://api.hyperliquid.xyz/ws";
@@ -172,6 +183,11 @@ var HyperliquidProvider = class {
172
183
  }
173
184
  return this.symbolsPromise;
174
185
  }
186
+ /** Predefined icon source for a crypto venue: the Ledger crypto-icon CDN, keyed by
187
+ * the BASE asset (the description's first segment, else the de-suffixed ticker). */
188
+ resolveSymbolIcon(symbol) {
189
+ return ledgerCryptoIconUrl(baseOf(symbol));
190
+ }
175
191
  subscribe(ticker, timeframe, onBar) {
176
192
  const coin = parseCoin(ticker);
177
193
  const interval = TF_TO_INTERVAL[normalizeTf(timeframe)];
@@ -1,5 +1,5 @@
1
1
  import { O as OHLCV, U as Unsubscribe } from '../options-BaVTMXaO.cjs';
2
- import { D as DataProvider, P as ProviderInfo, B as BarRange, S as SymbolInfo, a as SymbolDescriptor } from '../DataProvider-DDUYw2qP.cjs';
2
+ import { D as DataProvider, P as ProviderInfo, B as BarRange, S as SymbolInfo, a as SymbolDescriptor } from '../DataProvider-BsQM2WNH.cjs';
3
3
 
4
4
  /**
5
5
  * Hyperliquid market-data provider, built from scratch on the public info API — no
@@ -26,6 +26,9 @@ declare class HyperliquidProvider implements DataProvider {
26
26
  getBars(ticker: string, timeframe: string, range: BarRange): Promise<OHLCV[]>;
27
27
  getSymbolInfo(ticker: string): Promise<SymbolInfo | undefined>;
28
28
  listSymbols(): Promise<SymbolDescriptor[]>;
29
+ /** Predefined icon source for a crypto venue: the Ledger crypto-icon CDN, keyed by
30
+ * the BASE asset (the description's first segment, else the de-suffixed ticker). */
31
+ resolveSymbolIcon(symbol: SymbolDescriptor): string | undefined;
29
32
  subscribe(ticker: string, timeframe: string, onBar: (bar: OHLCV) => void): Unsubscribe;
30
33
  private listPerps;
31
34
  private listSpot;
@@ -1,5 +1,5 @@
1
1
  import { O as OHLCV, U as Unsubscribe } from '../options-BaVTMXaO.js';
2
- import { D as DataProvider, P as ProviderInfo, B as BarRange, S as SymbolInfo, a as SymbolDescriptor } from '../DataProvider-JJq7M2it.js';
2
+ import { D as DataProvider, P as ProviderInfo, B as BarRange, S as SymbolInfo, a as SymbolDescriptor } from '../DataProvider-BSLlBpB9.js';
3
3
 
4
4
  /**
5
5
  * Hyperliquid market-data provider, built from scratch on the public info API — no
@@ -26,6 +26,9 @@ declare class HyperliquidProvider implements DataProvider {
26
26
  getBars(ticker: string, timeframe: string, range: BarRange): Promise<OHLCV[]>;
27
27
  getSymbolInfo(ticker: string): Promise<SymbolInfo | undefined>;
28
28
  listSymbols(): Promise<SymbolDescriptor[]>;
29
+ /** Predefined icon source for a crypto venue: the Ledger crypto-icon CDN, keyed by
30
+ * the BASE asset (the description's first segment, else the de-suffixed ticker). */
31
+ resolveSymbolIcon(symbol: SymbolDescriptor): string | undefined;
29
32
  subscribe(ticker: string, timeframe: string, onBar: (bar: OHLCV) => void): Unsubscribe;
30
33
  private listPerps;
31
34
  private listSpot;
@@ -1,3 +1,5 @@
1
+ import { ledgerCryptoIconUrl, baseOf } from '../chunk-W4EJWLEO.js';
2
+
1
3
  // src/data/providers/hyperliquid/HyperliquidProvider.ts
2
4
  var INFO_URL = "https://api.hyperliquid.xyz/info";
3
5
  var WS_URL = "wss://api.hyperliquid.xyz/ws";
@@ -170,6 +172,11 @@ var HyperliquidProvider = class {
170
172
  }
171
173
  return this.symbolsPromise;
172
174
  }
175
+ /** Predefined icon source for a crypto venue: the Ledger crypto-icon CDN, keyed by
176
+ * the BASE asset (the description's first segment, else the de-suffixed ticker). */
177
+ resolveSymbolIcon(symbol) {
178
+ return ledgerCryptoIconUrl(baseOf(symbol));
179
+ }
173
180
  subscribe(ticker, timeframe, onBar) {
174
181
  const coin = parseCoin(ticker);
175
182
  const interval = TF_TO_INTERVAL[normalizeTf(timeframe)];