@luxalgo/vela 0.6.16 → 0.6.17
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.
- package/README.md +4 -0
- package/dist/{DataProvider-XLdJB86x.d.ts → DataProvider-B-Jz59Rf.d.ts} +1 -1
- package/dist/{DataProvider-xH2VBcFT.d.cts → DataProvider-OfR3fXg9.d.cts} +1 -1
- package/dist/{chunk-6DPAYEGO.js → chunk-CAFCLMPF.js} +1 -0
- package/dist/{chunk-I77F2SVE.js → chunk-IFJJPXSV.js} +1 -1
- package/dist/{chunk-SEOO6YG7.js → chunk-OSZDSH7F.js} +5 -8
- package/dist/{chunk-MGU3USTP.js → chunk-T5Z5YUCF.js} +1 -1
- package/dist/{chunk-Q3TFJNJW.js → chunk-XCBJU674.js} +2 -2
- package/dist/{chunk-GIJYO4LO.js → chunk-YCD72KGK.js} +103 -40
- package/dist/{contributions-BEkxwA5F.d.cts → contributions-C3b0Sx5P.d.cts} +2 -2
- package/dist/{contributions-CoAX7_SF.d.ts → contributions-Swzz10fG.d.ts} +2 -2
- package/dist/index.cjs +99 -36
- package/dist/index.d.cts +15 -6
- package/dist/index.d.ts +15 -6
- package/dist/index.js +4 -4
- package/dist/{options-bdSAtp7y.d.ts → options-CX1lSYWA.d.cts} +12 -2
- package/dist/{options-bdSAtp7y.d.cts → options-CX1lSYWA.d.ts} +12 -2
- package/dist/{plugin-Dxyq35Zf.d.cts → plugin-BjnEE1zA.d.cts} +3 -3
- package/dist/{plugin-CNUgbRNq.d.ts → plugin-mvddudqd.d.ts} +3 -3
- package/dist/plugin.cjs +1 -0
- package/dist/plugin.d.cts +4 -4
- package/dist/plugin.d.ts +4 -4
- package/dist/plugin.js +2 -2
- package/dist/providers/binance.d.cts +2 -2
- package/dist/providers/binance.d.ts +2 -2
- package/dist/providers/coinbase.d.cts +2 -2
- package/dist/providers/coinbase.d.ts +2 -2
- package/dist/providers/hyperliquid.d.cts +2 -2
- package/dist/providers/hyperliquid.d.ts +2 -2
- package/dist/{statusline-model-CbPza-Wc.d.cts → statusline-model-D91cU2fF.d.cts} +3 -3
- package/dist/{statusline-model-D7cWkw8A.d.ts → statusline-model-IURCya0H.d.ts} +3 -3
- package/dist/ui.cjs +1 -0
- package/dist/ui.d.cts +1 -1
- package/dist/ui.d.ts +1 -1
- package/dist/ui.js +3 -3
- package/dist/vela.global.js +99 -36
- package/dist/vela.global.min.js +46 -49
- package/dist/widget.cjs +100 -39
- package/dist/widget.d.cts +6 -6
- package/dist/widget.d.ts +6 -6
- package/dist/widget.js +7 -7
- package/dist/workspace.cjs +100 -39
- package/dist/workspace.d.cts +5 -5
- package/dist/workspace.d.ts +5 -5
- package/dist/workspace.js +6 -6
- package/package.json +1 -1
package/dist/plugin.cjs
CHANGED
|
@@ -337,6 +337,7 @@ registerIcon("star-filled", S('<path d="M8 2.2l1.75 3.55 3.9.55-2.8 2.75.65 3.9L
|
|
|
337
337
|
registerIcon("grip", S('<circle cx="6" cy="3.5" r="1"/><circle cx="10" cy="3.5" r="1"/><circle cx="6" cy="8" r="1"/><circle cx="10" cy="8" r="1"/><circle cx="6" cy="12.5" r="1"/><circle cx="10" cy="12.5" r="1"/>', 'fill="currentColor" stroke="none"'));
|
|
338
338
|
registerIcon("kebab", S('<circle cx="8" cy="3.2" r="1.2"/><circle cx="8" cy="8" r="1.2"/><circle cx="8" cy="12.8" r="1.2"/>', 'fill="currentColor" stroke="none"'));
|
|
339
339
|
registerIcon("burger", S('<path d="M2.5 4.5h11M2.5 8h11M2.5 11.5h11"/>'));
|
|
340
|
+
registerIcon("info", S('<path d="M8 7.4v4.4"/><circle cx="8" cy="4.6" r="0.9" fill="currentColor" stroke="none"/>'));
|
|
340
341
|
registerIcon("reset", S('<path d="M2 8a6 6 0 1 0 6-6 6.5 6.5 0 0 0-4.5 1.83L2 5.33"/><path d="M2 2v3.33h3.33"/>'));
|
|
341
342
|
registerIcon("pane-collapse", S('<path d="M2.6 9.4h4v4M13.4 6.6h-4v-4"/><path d="m9.4 6.6 4.2-4.2M2.4 13.6l4.2-4.2"/>'));
|
|
342
343
|
registerIcon("pane-expand", S('<path d="M9.8 2.4h3.8v3.8M6.2 13.6H2.4V9.8"/><path d="m13.6 2.4-4.4 4.4M2.4 13.6l4.4-4.4"/>'));
|
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 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, S as SERIES_LINE, p as SESSION_OFF, q as SESSION_POST, r as SESSION_PRE, s as SLATE, t as SLATE_DEEP, u as SeriesDataEngine, v as SeriesDataEngineHost, w as SettingsInlineControl, x as SettingsRowCondition, y as SettingsRowDescriptor, z as SettingsRowInlineNumber, E as SettingsRowSwatch, F as SettingsRowValueKey, G as SettingsRowWhen, J as SettingsRowWidth, K as SettingsSelectOption, 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, _ as drawingTypes, $ as getDrawingType, a0 as normalizeSettingsRow, a1 as registerChartType, 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-
|
|
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 LegendCalloutContent, q as LegendCalloutDescriptor, r as LegendCalloutItem, s as LegendCalloutSpec, t as LegendIndicatorInfo, N as NativeIndicator, u as NativeIndicatorContext, v as NativeIndicatorDescriptor, w as NativeIndicatorInfo, x as NativeIndicatorOutput, O as OVERRIDABLE_TOPBAR_IDS, y as PreparedScript, a as ScriptRun, H as ScriptRunCause, J as ScriptRunResult, S as ScriptingEngine, K as SidePanelButton, M as SidePanelDescriptor, Q as SidePanelHandle, T as SidePanelHeader, U as StatePersistenceHandler, X as StrategyFill, Y as StrategyState, Z as StrategyTrade, _ as SymbolRankingHook, a2 as VisibleBarRange, a3 as WidgetActionDescriptor, a4 as WidgetActionTarget, a5 as WidgetAttachment, W as WidgetContext, a6 as getNativeIndicator, a7 as legendActions, a8 as legendCallouts, aa as nativeIndicatorTypes, ab as registerDefaultEngine, ac as registerLegendAction, ad as registerLegendCallout, ae as registerNativeIndicator, af as registerSidePanel, ag as registerStatePersistence, ah as registerSymbolRanking, ai as registerWidgetAction, aj as registerWidgetAttachment, ak as resolveEngines, al as sidePanels, am as statePersistenceHandlers, an as symbolRanking, ao as topbarActionOverride, ap as unregisterDefaultEngine, aq as unregisterLegendAction, ar as unregisterLegendCallout, as as unregisterNativeIndicator, at as unregisterSidePanel, au as unregisterStatePersistence, av as unregisterWidgetAction, aw as unregisterWidgetAttachment, ax as widgetActions, ay as widgetAttachments } from './contributions-
|
|
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 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, S as SERIES_LINE, p as SESSION_OFF, q as SESSION_POST, r as SESSION_PRE, s as SLATE, t as SLATE_DEEP, u as SeriesDataEngine, v as SeriesDataEngineHost, w as SettingsInlineControl, x as SettingsRowCondition, y as SettingsRowDescriptor, z as SettingsRowInlineNumber, E as SettingsRowSwatch, F as SettingsRowValueKey, G as SettingsRowWhen, J as SettingsRowWidth, K as SettingsSelectOption, 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, _ as drawingTypes, $ as getDrawingType, a0 as normalizeSettingsRow, a1 as registerChartType, 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-BjnEE1zA.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 LegendCalloutContent, q as LegendCalloutDescriptor, r as LegendCalloutItem, s as LegendCalloutSpec, t as LegendIndicatorInfo, N as NativeIndicator, u as NativeIndicatorContext, v as NativeIndicatorDescriptor, w as NativeIndicatorInfo, x as NativeIndicatorOutput, O as OVERRIDABLE_TOPBAR_IDS, y as PreparedScript, a as ScriptRun, H as ScriptRunCause, J as ScriptRunResult, S as ScriptingEngine, K as SidePanelButton, M as SidePanelDescriptor, Q as SidePanelHandle, T as SidePanelHeader, U as StatePersistenceHandler, X as StrategyFill, Y as StrategyState, Z as StrategyTrade, _ as SymbolRankingHook, a2 as VisibleBarRange, a3 as WidgetActionDescriptor, a4 as WidgetActionTarget, a5 as WidgetAttachment, W as WidgetContext, a6 as getNativeIndicator, a7 as legendActions, a8 as legendCallouts, aa as nativeIndicatorTypes, ab as registerDefaultEngine, ac as registerLegendAction, ad as registerLegendCallout, ae as registerNativeIndicator, af as registerSidePanel, ag as registerStatePersistence, ah as registerSymbolRanking, ai as registerWidgetAction, aj as registerWidgetAttachment, ak as resolveEngines, al as sidePanels, am as statePersistenceHandlers, an as symbolRanking, ao as topbarActionOverride, ap as unregisterDefaultEngine, aq as unregisterLegendAction, ar as unregisterLegendCallout, as as unregisterNativeIndicator, at as unregisterSidePanel, au as unregisterStatePersistence, av as unregisterWidgetAction, aw as unregisterWidgetAttachment, ax as widgetActions, ay as widgetAttachments } from './contributions-C3b0Sx5P.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-HF0IAzwf.cjs';
|
|
4
|
-
export { B as Background,
|
|
4
|
+
export { B as Background, E as BoxFontFamily, F as BoxHAlign, G as BoxTextSize, H as BoxVAlign, J as CandleBarColor, K as CandleSeries, Q as CandleStyle, Z as DirtyRange, _ as DrawingBox, $ as DrawingExtend, a1 as DrawingLabel, a2 as DrawingLine, a3 as DrawingLinefill, a6 as DrawingPolyline, ab as DrawingTable, w as DrawingTypeKey, ad as DrawingXLoc, af as Fill, ag as FillGradientStop, ah as IndicatorMeta, l as IndicatorModel, ai as InputCondition, aj as InputSchema, ak as InputType, I as InputValue, al as InputWhen, am as LabelStyle, an as LabelYLoc, ao as LineLikeKind, ap as LineLikeSeries, aq as LineLikeStyle, L as LineStyle, ar as MarkerPoint, as as MarkerSeries, u as Millis, O as OHLCV, i as Pane, av as PaneAxis, aw as PaneAxisBand, ax as PaneHint, ay as PaneKind, az as PolylinePoint, aA as PriceLine, P as PriceStyle, aE as Scene, m as ScenePatch, aF as SchemaPatch, aG as SeriesKind, aH as SeriesPoint, aI as SeriesSpec, aJ as SeriesValueDelta, aN as TableCell, aO as TableMerge, aP as TablePosition, aR as TradeExecution, aS as ValuePatch, aV as inputDeltas, aW as inputVisible } from './options-CX1lSYWA.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-
|
|
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-OfR3fXg9.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 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, S as SERIES_LINE, p as SESSION_OFF, q as SESSION_POST, r as SESSION_PRE, s as SLATE, t as SLATE_DEEP, u as SeriesDataEngine, v as SeriesDataEngineHost, w as SettingsInlineControl, x as SettingsRowCondition, y as SettingsRowDescriptor, z as SettingsRowInlineNumber, E as SettingsRowSwatch, F as SettingsRowValueKey, G as SettingsRowWhen, J as SettingsRowWidth, K as SettingsSelectOption, 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, _ as drawingTypes, $ as getDrawingType, a0 as normalizeSettingsRow, a1 as registerChartType, 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-
|
|
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 LegendCalloutContent, q as LegendCalloutDescriptor, r as LegendCalloutItem, s as LegendCalloutSpec, t as LegendIndicatorInfo, N as NativeIndicator, u as NativeIndicatorContext, v as NativeIndicatorDescriptor, w as NativeIndicatorInfo, x as NativeIndicatorOutput, O as OVERRIDABLE_TOPBAR_IDS, y as PreparedScript, a as ScriptRun, H as ScriptRunCause, J as ScriptRunResult, S as ScriptingEngine, K as SidePanelButton, M as SidePanelDescriptor, Q as SidePanelHandle, T as SidePanelHeader, U as StatePersistenceHandler, X as StrategyFill, Y as StrategyState, Z as StrategyTrade, _ as SymbolRankingHook, a2 as VisibleBarRange, a3 as WidgetActionDescriptor, a4 as WidgetActionTarget, a5 as WidgetAttachment, W as WidgetContext, a6 as getNativeIndicator, a7 as legendActions, a8 as legendCallouts, aa as nativeIndicatorTypes, ab as registerDefaultEngine, ac as registerLegendAction, ad as registerLegendCallout, ae as registerNativeIndicator, af as registerSidePanel, ag as registerStatePersistence, ah as registerSymbolRanking, ai as registerWidgetAction, aj as registerWidgetAttachment, ak as resolveEngines, al as sidePanels, am as statePersistenceHandlers, an as symbolRanking, ao as topbarActionOverride, ap as unregisterDefaultEngine, aq as unregisterLegendAction, ar as unregisterLegendCallout, as as unregisterNativeIndicator, at as unregisterSidePanel, au as unregisterStatePersistence, av as unregisterWidgetAction, aw as unregisterWidgetAttachment, ax as widgetActions, ay as widgetAttachments } from './contributions-
|
|
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 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, S as SERIES_LINE, p as SESSION_OFF, q as SESSION_POST, r as SESSION_PRE, s as SLATE, t as SLATE_DEEP, u as SeriesDataEngine, v as SeriesDataEngineHost, w as SettingsInlineControl, x as SettingsRowCondition, y as SettingsRowDescriptor, z as SettingsRowInlineNumber, E as SettingsRowSwatch, F as SettingsRowValueKey, G as SettingsRowWhen, J as SettingsRowWidth, K as SettingsSelectOption, 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, _ as drawingTypes, $ as getDrawingType, a0 as normalizeSettingsRow, a1 as registerChartType, 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-mvddudqd.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 LegendCalloutContent, q as LegendCalloutDescriptor, r as LegendCalloutItem, s as LegendCalloutSpec, t as LegendIndicatorInfo, N as NativeIndicator, u as NativeIndicatorContext, v as NativeIndicatorDescriptor, w as NativeIndicatorInfo, x as NativeIndicatorOutput, O as OVERRIDABLE_TOPBAR_IDS, y as PreparedScript, a as ScriptRun, H as ScriptRunCause, J as ScriptRunResult, S as ScriptingEngine, K as SidePanelButton, M as SidePanelDescriptor, Q as SidePanelHandle, T as SidePanelHeader, U as StatePersistenceHandler, X as StrategyFill, Y as StrategyState, Z as StrategyTrade, _ as SymbolRankingHook, a2 as VisibleBarRange, a3 as WidgetActionDescriptor, a4 as WidgetActionTarget, a5 as WidgetAttachment, W as WidgetContext, a6 as getNativeIndicator, a7 as legendActions, a8 as legendCallouts, aa as nativeIndicatorTypes, ab as registerDefaultEngine, ac as registerLegendAction, ad as registerLegendCallout, ae as registerNativeIndicator, af as registerSidePanel, ag as registerStatePersistence, ah as registerSymbolRanking, ai as registerWidgetAction, aj as registerWidgetAttachment, ak as resolveEngines, al as sidePanels, am as statePersistenceHandlers, an as symbolRanking, ao as topbarActionOverride, ap as unregisterDefaultEngine, aq as unregisterLegendAction, ar as unregisterLegendCallout, as as unregisterNativeIndicator, at as unregisterSidePanel, au as unregisterStatePersistence, av as unregisterWidgetAction, aw as unregisterWidgetAttachment, ax as widgetActions, ay as widgetAttachments } from './contributions-Swzz10fG.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-HF0IAzwf.js';
|
|
4
|
-
export { B as Background,
|
|
4
|
+
export { B as Background, E as BoxFontFamily, F as BoxHAlign, G as BoxTextSize, H as BoxVAlign, J as CandleBarColor, K as CandleSeries, Q as CandleStyle, Z as DirtyRange, _ as DrawingBox, $ as DrawingExtend, a1 as DrawingLabel, a2 as DrawingLine, a3 as DrawingLinefill, a6 as DrawingPolyline, ab as DrawingTable, w as DrawingTypeKey, ad as DrawingXLoc, af as Fill, ag as FillGradientStop, ah as IndicatorMeta, l as IndicatorModel, ai as InputCondition, aj as InputSchema, ak as InputType, I as InputValue, al as InputWhen, am as LabelStyle, an as LabelYLoc, ao as LineLikeKind, ap as LineLikeSeries, aq as LineLikeStyle, L as LineStyle, ar as MarkerPoint, as as MarkerSeries, u as Millis, O as OHLCV, i as Pane, av as PaneAxis, aw as PaneAxisBand, ax as PaneHint, ay as PaneKind, az as PolylinePoint, aA as PriceLine, P as PriceStyle, aE as Scene, m as ScenePatch, aF as SchemaPatch, aG as SeriesKind, aH as SeriesPoint, aI as SeriesSpec, aJ as SeriesValueDelta, aN as TableCell, aO as TableMerge, aP as TablePosition, aR as TradeExecution, aS as ValuePatch, aV as inputDeltas, aW as inputVisible } from './options-CX1lSYWA.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-
|
|
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-B-Jz59Rf.js';
|
package/dist/plugin.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import './chunk-FE6V2YAQ.js';
|
|
2
|
-
export { DEFAULT_PANEL_MAX_WIDTH, DEFAULT_PANEL_MIN_WIDTH, DEFAULT_PANEL_WIDTH, OVERRIDABLE_TOPBAR_IDS, chartType, chartTypes, clampPanelWidth, drawingTypes, getDrawingType, getNativeIndicator, inputDeltas, inputVisible, legendActions, legendCallouts, nativeIndicatorTypes, normalizeSettingsRow, registerChartType, registerDefaultEngine, registerLegendAction, registerLegendCallout, registerNativeIndicator, registerRendererDefaults, registerRendererLayer, registerSidePanel, registerStatePersistence, registerSymbolRanking, registerWidgetAction, registerWidgetAttachment, rendererDefaults, rendererLayers, resolveEngines, settingsRowValueKeys, sidePanels, stableSeriesId, statePersistenceHandlers, symbolRanking, tickerModifierIds, topbarActionOverride, unregisterChartType, unregisterDefaultEngine, unregisterLegendAction, unregisterLegendCallout, unregisterNativeIndicator, unregisterRendererDefaults, unregisterRendererLayer, unregisterSidePanel, unregisterStatePersistence, unregisterWidgetAction, unregisterWidgetAttachment, widgetActions, widgetAttachments } from './chunk-
|
|
3
|
-
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-
|
|
2
|
+
export { DEFAULT_PANEL_MAX_WIDTH, DEFAULT_PANEL_MIN_WIDTH, DEFAULT_PANEL_WIDTH, OVERRIDABLE_TOPBAR_IDS, chartType, chartTypes, clampPanelWidth, drawingTypes, getDrawingType, getNativeIndicator, inputDeltas, inputVisible, legendActions, legendCallouts, nativeIndicatorTypes, normalizeSettingsRow, registerChartType, registerDefaultEngine, registerLegendAction, registerLegendCallout, registerNativeIndicator, registerRendererDefaults, registerRendererLayer, registerSidePanel, registerStatePersistence, registerSymbolRanking, registerWidgetAction, registerWidgetAttachment, rendererDefaults, rendererLayers, resolveEngines, settingsRowValueKeys, sidePanels, stableSeriesId, statePersistenceHandlers, symbolRanking, tickerModifierIds, topbarActionOverride, unregisterChartType, unregisterDefaultEngine, unregisterLegendAction, unregisterLegendCallout, unregisterNativeIndicator, unregisterRendererDefaults, unregisterRendererLayer, unregisterSidePanel, unregisterStatePersistence, unregisterWidgetAction, unregisterWidgetAttachment, widgetActions, widgetAttachments } from './chunk-IFJJPXSV.js';
|
|
3
|
+
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-CAFCLMPF.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { O as OHLCV, U as Unsubscribe } from '../options-
|
|
2
|
-
import { D as DataProvider, P as ProviderInfo, B as BarRange, S as SymbolInfo, a as SymbolDescriptor } from '../DataProvider-
|
|
1
|
+
import { O as OHLCV, U as Unsubscribe } from '../options-CX1lSYWA.cjs';
|
|
2
|
+
import { D as DataProvider, P as ProviderInfo, B as BarRange, S as SymbolInfo, a as SymbolDescriptor } from '../DataProvider-OfR3fXg9.cjs';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Binance market-data provider, built from scratch on the public REST + WebSocket
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { O as OHLCV, U as Unsubscribe } from '../options-
|
|
2
|
-
import { D as DataProvider, P as ProviderInfo, B as BarRange, S as SymbolInfo, a as SymbolDescriptor } from '../DataProvider-
|
|
1
|
+
import { O as OHLCV, U as Unsubscribe } from '../options-CX1lSYWA.js';
|
|
2
|
+
import { D as DataProvider, P as ProviderInfo, B as BarRange, S as SymbolInfo, a as SymbolDescriptor } from '../DataProvider-B-Jz59Rf.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Binance market-data provider, built from scratch on the public REST + WebSocket
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { O as OHLCV, U as Unsubscribe } from '../options-
|
|
2
|
-
import { D as DataProvider, P as ProviderInfo, B as BarRange, S as SymbolInfo, a as SymbolDescriptor } from '../DataProvider-
|
|
1
|
+
import { O as OHLCV, U as Unsubscribe } from '../options-CX1lSYWA.cjs';
|
|
2
|
+
import { D as DataProvider, P as ProviderInfo, B as BarRange, S as SymbolInfo, a as SymbolDescriptor } from '../DataProvider-OfR3fXg9.cjs';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Coinbase market-data provider, built from scratch on the public Exchange REST + WebSocket APIs
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { O as OHLCV, U as Unsubscribe } from '../options-
|
|
2
|
-
import { D as DataProvider, P as ProviderInfo, B as BarRange, S as SymbolInfo, a as SymbolDescriptor } from '../DataProvider-
|
|
1
|
+
import { O as OHLCV, U as Unsubscribe } from '../options-CX1lSYWA.js';
|
|
2
|
+
import { D as DataProvider, P as ProviderInfo, B as BarRange, S as SymbolInfo, a as SymbolDescriptor } from '../DataProvider-B-Jz59Rf.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Coinbase market-data provider, built from scratch on the public Exchange REST + WebSocket APIs
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { O as OHLCV, U as Unsubscribe } from '../options-
|
|
2
|
-
import { D as DataProvider, P as ProviderInfo, B as BarRange, S as SymbolInfo, a as SymbolDescriptor } from '../DataProvider-
|
|
1
|
+
import { O as OHLCV, U as Unsubscribe } from '../options-CX1lSYWA.cjs';
|
|
2
|
+
import { D as DataProvider, P as ProviderInfo, B as BarRange, S as SymbolInfo, a as SymbolDescriptor } from '../DataProvider-OfR3fXg9.cjs';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Hyperliquid market-data provider, built from scratch on the public info API — no
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { O as OHLCV, U as Unsubscribe } from '../options-
|
|
2
|
-
import { D as DataProvider, P as ProviderInfo, B as BarRange, S as SymbolInfo, a as SymbolDescriptor } from '../DataProvider-
|
|
1
|
+
import { O as OHLCV, U as Unsubscribe } from '../options-CX1lSYWA.js';
|
|
2
|
+
import { D as DataProvider, P as ProviderInfo, B as BarRange, S as SymbolInfo, a as SymbolDescriptor } from '../DataProvider-B-Jz59Rf.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Hyperliquid market-data provider, built from scratch on the public info API — no
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { D as DataProvider } from './DataProvider-
|
|
2
|
-
import { S as ScriptingEngine, V as Vela } from './contributions-
|
|
3
|
-
import { V as VisibleRangePreset } from './options-
|
|
1
|
+
import { D as DataProvider } from './DataProvider-OfR3fXg9.cjs';
|
|
2
|
+
import { S as ScriptingEngine, V as Vela } from './contributions-C3b0Sx5P.cjs';
|
|
3
|
+
import { V as VisibleRangePreset } from './options-CX1lSYWA.cjs';
|
|
4
4
|
|
|
5
5
|
/** The linkable dimensions. `crosshair` mirrors the pointer time onto same-group
|
|
6
6
|
* cells as GHOST crosshairs (renderers without the optional `setExternalCrosshair`
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { D as DataProvider } from './DataProvider-
|
|
2
|
-
import { S as ScriptingEngine, V as Vela } from './contributions-
|
|
3
|
-
import { V as VisibleRangePreset } from './options-
|
|
1
|
+
import { D as DataProvider } from './DataProvider-B-Jz59Rf.js';
|
|
2
|
+
import { S as ScriptingEngine, V as Vela } from './contributions-Swzz10fG.js';
|
|
3
|
+
import { V as VisibleRangePreset } from './options-CX1lSYWA.js';
|
|
4
4
|
|
|
5
5
|
/** The linkable dimensions. `crosshair` mirrors the pointer time onto same-group
|
|
6
6
|
* cells as GHOST crosshairs (renderers without the optional `setExternalCrosshair`
|
package/dist/ui.cjs
CHANGED
|
@@ -337,6 +337,7 @@ registerIcon("star-filled", S('<path d="M8 2.2l1.75 3.55 3.9.55-2.8 2.75.65 3.9L
|
|
|
337
337
|
registerIcon("grip", S('<circle cx="6" cy="3.5" r="1"/><circle cx="10" cy="3.5" r="1"/><circle cx="6" cy="8" r="1"/><circle cx="10" cy="8" r="1"/><circle cx="6" cy="12.5" r="1"/><circle cx="10" cy="12.5" r="1"/>', 'fill="currentColor" stroke="none"'));
|
|
338
338
|
registerIcon("kebab", S('<circle cx="8" cy="3.2" r="1.2"/><circle cx="8" cy="8" r="1.2"/><circle cx="8" cy="12.8" r="1.2"/>', 'fill="currentColor" stroke="none"'));
|
|
339
339
|
registerIcon("burger", S('<path d="M2.5 4.5h11M2.5 8h11M2.5 11.5h11"/>'));
|
|
340
|
+
registerIcon("info", S('<path d="M8 7.4v4.4"/><circle cx="8" cy="4.6" r="0.9" fill="currentColor" stroke="none"/>'));
|
|
340
341
|
registerIcon("reset", S('<path d="M2 8a6 6 0 1 0 6-6 6.5 6.5 0 0 0-4.5 1.83L2 5.33"/><path d="M2 2v3.33h3.33"/>'));
|
|
341
342
|
registerIcon("pane-collapse", S('<path d="M2.6 9.4h4v4M13.4 6.6h-4v-4"/><path d="m9.4 6.6 4.2-4.2M2.4 13.6l4.2-4.2"/>'));
|
|
342
343
|
registerIcon("pane-expand", S('<path d="M9.8 2.4h3.8v3.8M6.2 13.6H2.4V9.8"/><path d="m13.6 2.4-4.4 4.4M2.4 13.6l4.4-4.4"/>'));
|
package/dist/ui.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { c as VelaTheme } from './options-
|
|
1
|
+
import { c as VelaTheme } from './options-CX1lSYWA.cjs';
|
|
2
2
|
import { MachineSchema, Service, Machine } from '@zag-js/core';
|
|
3
3
|
export { a as KeyBindingDescriptor, K as KeymapManager, b as KeymapOptions, R as ResolvedBinding } from './keymap-CGOz5F5f.cjs';
|
|
4
4
|
import * as tooltip from '@zag-js/tooltip';
|
package/dist/ui.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { c as VelaTheme } from './options-
|
|
1
|
+
import { c as VelaTheme } from './options-CX1lSYWA.js';
|
|
2
2
|
import { MachineSchema, Service, Machine } from '@zag-js/core';
|
|
3
3
|
export { a as KeyBindingDescriptor, K as KeymapManager, b as KeymapOptions, R as ResolvedBinding } from './keymap-CGOz5F5f.js';
|
|
4
4
|
import * as tooltip from '@zag-js/tooltip';
|
package/dist/ui.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { Drawer, KeymapManager, Tooltip, drawerController, tooltipController } from './chunk-
|
|
2
|
-
export { CALLOUT_CSS, CALLOUT_STYLE_ID, CalloutBubble, ColorField, Dialog, FIELD_GAP_PX, GlyphSelect, Menu, NumberInput, Popover, Select, Switch, TextArea, TextField, WIDTH_FIELD_OPTIONS, applyPlotOverlayTokens, applyThemeTokens, blendOver, buildColorPicker, buildFieldControl, buildPalette, calloutPanelRows, clampNumber, closeColorPopover, closeOpenPopovers, closeWidthPopover, closesPanel, colorField, colorPickerController, combineColor, decorateSelectScroll, dialogController, ensureUIHost, eventDismissedPopover, fieldGrid, fieldGridColumns, fieldRow, fieldSection, fieldSeparator, fillSelectList, glyphSelectController, hslHex, insetRect, intersectRects, isPopoverOpen, lineWidthGlyph, menuController, nextUid, normalizeProps, numberInputController, openPopoverTrigger, openSelectList, placePopover, popoverController, runMachine, selectController, snapToStep, splitColor, spreadProps, switchController, textAreaController, textFieldController, toggleSelectList, transparencyChecker, viewportRect, widthField, widthFieldOptions } from './chunk-
|
|
3
|
-
export { FIELD_FOCUS_CSS, FIELD_FOCUS_RING, iconEl, iconMarkup, injectStyles, overlayScrollbarCss, registerIcon, svg16, svg24, withAlpha } from './chunk-
|
|
1
|
+
export { Drawer, KeymapManager, Tooltip, drawerController, tooltipController } from './chunk-XCBJU674.js';
|
|
2
|
+
export { CALLOUT_CSS, CALLOUT_STYLE_ID, CalloutBubble, ColorField, Dialog, FIELD_GAP_PX, GlyphSelect, Menu, NumberInput, Popover, Select, Switch, TextArea, TextField, WIDTH_FIELD_OPTIONS, applyPlotOverlayTokens, applyThemeTokens, blendOver, buildColorPicker, buildFieldControl, buildPalette, calloutPanelRows, clampNumber, closeColorPopover, closeOpenPopovers, closeWidthPopover, closesPanel, colorField, colorPickerController, combineColor, decorateSelectScroll, dialogController, ensureUIHost, eventDismissedPopover, fieldGrid, fieldGridColumns, fieldRow, fieldSection, fieldSeparator, fillSelectList, glyphSelectController, hslHex, insetRect, intersectRects, isPopoverOpen, lineWidthGlyph, menuController, nextUid, normalizeProps, numberInputController, openPopoverTrigger, openSelectList, placePopover, popoverController, runMachine, selectController, snapToStep, splitColor, spreadProps, switchController, textAreaController, textFieldController, toggleSelectList, transparencyChecker, viewportRect, widthField, widthFieldOptions } from './chunk-T5Z5YUCF.js';
|
|
3
|
+
export { FIELD_FOCUS_CSS, FIELD_FOCUS_RING, iconEl, iconMarkup, injectStyles, overlayScrollbarCss, registerIcon, svg16, svg24, withAlpha } from './chunk-CAFCLMPF.js';
|
package/dist/vela.global.js
CHANGED
|
@@ -1,6 +1,23 @@
|
|
|
1
1
|
var Vela = (function (exports) {
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
+
// src/core/options.ts
|
|
5
|
+
var LIVE_BAR_EASE_DEFAULT_MS = 90;
|
|
6
|
+
var LIVE_BAR_EASE_MAX_MS = 1e3;
|
|
7
|
+
function resolveLiveBarEaseMs(value) {
|
|
8
|
+
if (value === true) return LIVE_BAR_EASE_DEFAULT_MS;
|
|
9
|
+
if (typeof value !== "number" || !Number.isFinite(value) || value <= 0) return 0;
|
|
10
|
+
return Math.min(value, LIVE_BAR_EASE_MAX_MS);
|
|
11
|
+
}
|
|
12
|
+
function resolveAnimations(animations) {
|
|
13
|
+
if (typeof animations === "boolean") return { animZoom: animations, animPan: animations, animLiveBar: 0 };
|
|
14
|
+
return {
|
|
15
|
+
animZoom: animations?.zoom ?? true,
|
|
16
|
+
animPan: animations?.pan ?? true,
|
|
17
|
+
animLiveBar: resolveLiveBarEaseMs(animations?.liveBar)
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
|
|
4
21
|
// src/core/model/series.ts
|
|
5
22
|
function isLineLikeSeries(spec) {
|
|
6
23
|
return spec.kind !== "candle" && spec.kind !== "bar" && spec.kind !== "markers";
|
|
@@ -551,6 +568,7 @@ var Vela = (function (exports) {
|
|
|
551
568
|
registerIcon("grip", S('<circle cx="6" cy="3.5" r="1"/><circle cx="10" cy="3.5" r="1"/><circle cx="6" cy="8" r="1"/><circle cx="10" cy="8" r="1"/><circle cx="6" cy="12.5" r="1"/><circle cx="10" cy="12.5" r="1"/>', 'fill="currentColor" stroke="none"'));
|
|
552
569
|
registerIcon("kebab", S('<circle cx="8" cy="3.2" r="1.2"/><circle cx="8" cy="8" r="1.2"/><circle cx="8" cy="12.8" r="1.2"/>', 'fill="currentColor" stroke="none"'));
|
|
553
570
|
registerIcon("burger", S('<path d="M2.5 4.5h11M2.5 8h11M2.5 11.5h11"/>'));
|
|
571
|
+
registerIcon("info", S('<path d="M8 7.4v4.4"/><circle cx="8" cy="4.6" r="0.9" fill="currentColor" stroke="none"/>'));
|
|
554
572
|
registerIcon("reset", S('<path d="M2 8a6 6 0 1 0 6-6 6.5 6.5 0 0 0-4.5 1.83L2 5.33"/><path d="M2 2v3.33h3.33"/>'));
|
|
555
573
|
registerIcon("pane-collapse", S('<path d="M2.6 9.4h4v4M13.4 6.6h-4v-4"/><path d="m9.4 6.6 4.2-4.2M2.4 13.6l4.2-4.2"/>'));
|
|
556
574
|
registerIcon("pane-expand", S('<path d="M9.8 2.4h3.8v3.8M6.2 13.6H2.4V9.8"/><path d="m13.6 2.4-4.4 4.4M2.4 13.6l4.4-4.4"/>'));
|
|
@@ -10501,6 +10519,23 @@ var Vela = (function (exports) {
|
|
|
10501
10519
|
clear();
|
|
10502
10520
|
};
|
|
10503
10521
|
}
|
|
10522
|
+
function chromeHint(text, opts) {
|
|
10523
|
+
const px = opts.size ?? 16;
|
|
10524
|
+
const el = document.createElement("span");
|
|
10525
|
+
el.className = "vela-hint";
|
|
10526
|
+
el.setAttribute("role", "img");
|
|
10527
|
+
el.setAttribute("aria-label", text);
|
|
10528
|
+
el.innerHTML = iconAt("info", px);
|
|
10529
|
+
el.style.cssText = `flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:${px}px;height:${px}px;border-radius:50%;cursor:help;user-select:none;background:var(--vela-hover);color:var(--vela-fg-muted);transition:background var(--vela-dur-fast) ease,color var(--vela-dur-fast) ease;`;
|
|
10530
|
+
const hover = (on) => {
|
|
10531
|
+
el.style.background = on ? "var(--vela-active)" : "var(--vela-hover)";
|
|
10532
|
+
el.style.color = on ? "var(--vela-fg-bright)" : "var(--vela-fg-muted)";
|
|
10533
|
+
};
|
|
10534
|
+
el.addEventListener("pointerenter", () => hover(true));
|
|
10535
|
+
el.addEventListener("pointerleave", () => hover(false));
|
|
10536
|
+
const dispose = attachChromeTooltip(el, { host: opts.host, theme: opts.theme, text: () => text, wrap: true, delayMs: 250 });
|
|
10537
|
+
return { el, dispose };
|
|
10538
|
+
}
|
|
10504
10539
|
|
|
10505
10540
|
// node_modules/@zag-js/vanilla/dist/chunk-QZ7TP4HQ.mjs
|
|
10506
10541
|
var __defProp = Object.defineProperty;
|
|
@@ -21082,14 +21117,11 @@ ${overlayScrollbarCss(".vela-dialog *")}
|
|
|
21082
21117
|
buildTextField(id, current, emit) {
|
|
21083
21118
|
return buildFieldControl({ kind: "text", id, value: current, onChange: emit }).el;
|
|
21084
21119
|
}
|
|
21085
|
-
/**
|
|
21120
|
+
/** The shared ⓘ hint carrying an input's `tooltip` (see {@link chromeHint}). */
|
|
21086
21121
|
infoButton(tooltip) {
|
|
21087
|
-
const
|
|
21088
|
-
|
|
21089
|
-
|
|
21090
|
-
b.className = "vela-ind-hint";
|
|
21091
|
-
b.style.cssText = "flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;font-weight:600;font-size:11px;font-family:inherit;line-height:1;cursor:help;user-select:none;";
|
|
21092
|
-
return b;
|
|
21122
|
+
const { el, dispose } = chromeHint(tooltip, { host: this.host.container, theme: () => this.host.theme(), size: 18 });
|
|
21123
|
+
this.dialogTips.push(dispose);
|
|
21124
|
+
return el;
|
|
21093
21125
|
}
|
|
21094
21126
|
/** A dropdown over plain string options (value === label) — a thin case of {@link selectPairs}. */
|
|
21095
21127
|
select(id, options, current, emit) {
|
|
@@ -21526,8 +21558,6 @@ ${overlayScrollbarCss(".vela-dialog *")}
|
|
|
21526
21558
|
${overlayScrollbarCss(".vela-dialog.vela-ind-dialog *", 9)}
|
|
21527
21559
|
.vela-ind-tab{font-weight:600;font-size:13px;line-height:20px;transition:color var(--vela-dur-fast) ease,border-color var(--vela-dur-fast) ease;}
|
|
21528
21560
|
.vela-ind-tab:not(.vela-ind-tab-active):hover{color:var(--vela-fg-bright);}
|
|
21529
|
-
.vela-ind-hint{background:var(--vela-hover);color:var(--vela-fg-muted);transition:background var(--vela-dur-fast) ease,color var(--vela-dur-fast) ease;}
|
|
21530
|
-
.vela-ind-hint:hover{background:var(--vela-active);color:var(--vela-fg-bright);}
|
|
21531
21561
|
.vela-ind-ctl,.vela-ind-close{background-color:transparent;color:inherit;transition:color var(--vela-dur-fast) ease,background-color var(--vela-dur-fast) ease;}
|
|
21532
21562
|
.vela-ind-ctl svg,.vela-ind-close svg{width:${LEGEND_ICON_PX}px;height:${LEGEND_ICON_PX}px;display:block;flex:none;stroke-width:1;}
|
|
21533
21563
|
.vela-ind-ctl:hover{background-color:var(--vela-hover-strong);}
|
|
@@ -23071,7 +23101,8 @@ ${overlayScrollbarCss(".vela-dialog.vela-ind-dialog *", 9)}
|
|
|
23071
23101
|
labelsVisible: isBool(ps.labelsVisible) ? ps.labelsVisible : base.priceScale.labelsVisible,
|
|
23072
23102
|
currentPriceLine: isBool(ps.currentPriceLine) ? ps.currentPriceLine : base.priceScale.currentPriceLine,
|
|
23073
23103
|
priceLabel: isBool(ps.priceLabel) ? ps.priceLabel : base.priceScale.priceLabel,
|
|
23074
|
-
countdown: isBool(ps.countdown) ? ps.countdown : base.priceScale.countdown
|
|
23104
|
+
countdown: isBool(ps.countdown) ? ps.countdown : base.priceScale.countdown,
|
|
23105
|
+
animateLastPrice: isBool(ps.animateLastPrice) ? ps.animateLastPrice : base.priceScale.animateLastPrice
|
|
23075
23106
|
},
|
|
23076
23107
|
panes: {
|
|
23077
23108
|
separatorColor: isColor(panes.separatorColor) ? panes.separatorColor : base.panes.separatorColor
|
|
@@ -27935,6 +27966,8 @@ void main() {
|
|
|
27935
27966
|
"symbol.style.baseline.fill-bottom",
|
|
27936
27967
|
"symbol.style.baseline.base-level",
|
|
27937
27968
|
"symbol.style.baseline.width",
|
|
27969
|
+
"symbol.animation",
|
|
27970
|
+
"symbol.animation.price-changes",
|
|
27938
27971
|
"symbol.timezone",
|
|
27939
27972
|
"scales",
|
|
27940
27973
|
"scales.price-scale",
|
|
@@ -28077,8 +28110,7 @@ ${overlayScrollbarCss(".vela-sd-pane")}
|
|
|
28077
28110
|
.vela-sd-mobile .vela-select-trigger,.vela-sd-mobile .vela-num input,.vela-sd-mobile .vela-width-field{height:34px;}
|
|
28078
28111
|
.vela-sd-mobile .vela-sd-close{width:40px;height:40px;}
|
|
28079
28112
|
.vela-sd-mobile .vela-sd-btn{height:38px;}
|
|
28080
|
-
.vela-sd-mobile .vela-sd-row span,.vela-sd-mobile .vela-sd-bool span,.vela-sd-mobile .vela-field-label{white-space:normal !important;}
|
|
28081
|
-
`;
|
|
28113
|
+
.vela-sd-mobile .vela-sd-row span,.vela-sd-mobile .vela-sd-bool span,.vela-sd-mobile .vela-field-label{white-space:normal !important;}`;
|
|
28082
28114
|
if (!existing) document.head.appendChild(st);
|
|
28083
28115
|
}
|
|
28084
28116
|
var SettingsDialog = class {
|
|
@@ -28099,6 +28131,8 @@ ${overlayScrollbarCss(".vela-sd-pane")}
|
|
|
28099
28131
|
this.themeControl = null;
|
|
28100
28132
|
/** The built tabs, by title — how `showSection` reaches a pane while the dialog is open. */
|
|
28101
28133
|
this.tabs = [];
|
|
28134
|
+
this.hintTips = [];
|
|
28135
|
+
// ⓘ tooltip disposers of the open build (see hint)
|
|
28102
28136
|
/** Active instance-strip tab per chart type — remembered across dialog rebuilds. */
|
|
28103
28137
|
this.typeActiveInstance = /* @__PURE__ */ new Map();
|
|
28104
28138
|
/** Active TOC group per structured pane (`<typeId>/<pane>` → group label). */
|
|
@@ -28287,6 +28321,13 @@ ${overlayScrollbarCss(".vela-sd-pane")}
|
|
|
28287
28321
|
body.append(g);
|
|
28288
28322
|
}
|
|
28289
28323
|
showActive(config.series.style);
|
|
28324
|
+
body.append(sid(this.sectionTitle("Animation"), "symbol.animation"));
|
|
28325
|
+
body.append(sid(this.boolRow(
|
|
28326
|
+
"Animate price changes",
|
|
28327
|
+
config.priceScale.animateLastPrice,
|
|
28328
|
+
(v) => this.emit({ priceScale: { animateLastPrice: v } }),
|
|
28329
|
+
this.hint("Glide the live bar to each new price instead of snapping.")
|
|
28330
|
+
), "symbol.animation.price-changes"));
|
|
28290
28331
|
body.append(sid(this.sectionTitle("Time zone"), "symbol.timezone"));
|
|
28291
28332
|
body.append(sid(this.selectRowLabeled("Time zone", normalizeTimezone(config.timeScale.timezone), timezoneOptions(config.timeScale.timezone), (v) => this.emit({ timeScale: { timezone: v } })), "symbol.timezone"));
|
|
28292
28333
|
const renderHostSections = (placement) => {
|
|
@@ -28494,6 +28535,8 @@ ${overlayScrollbarCss(".vela-sd-pane")}
|
|
|
28494
28535
|
this.ui = null;
|
|
28495
28536
|
this.root = null;
|
|
28496
28537
|
this.tabs = [];
|
|
28538
|
+
for (const dispose of this.hintTips) dispose();
|
|
28539
|
+
this.hintTips = [];
|
|
28497
28540
|
ui?.destroy();
|
|
28498
28541
|
}
|
|
28499
28542
|
destroy() {
|
|
@@ -28907,23 +28950,31 @@ ${overlayScrollbarCss(".vela-sd-pane")}
|
|
|
28907
28950
|
}).el
|
|
28908
28951
|
});
|
|
28909
28952
|
}
|
|
28910
|
-
/** A toggle row: the checkbox sits to the LEFT of its label (never in the control area).
|
|
28911
|
-
|
|
28912
|
-
|
|
28953
|
+
/** A toggle row: the checkbox sits to the LEFT of its label (never in the control area).
|
|
28954
|
+
* `info` (see {@link hint}) rides after the label. */
|
|
28955
|
+
boolRow(label, value, onChange, info) {
|
|
28956
|
+
return this.toggleRow(label, value, onChange, [], void 0, info);
|
|
28913
28957
|
}
|
|
28914
28958
|
/** An enable row: checkbox + label in the label column, dependent controls in the
|
|
28915
28959
|
* shared control column; the control group dims and ignores input while the toggle
|
|
28916
28960
|
* is off. With `get`, the row re-reads its state on a 'vela-sync' event. */
|
|
28917
|
-
toggleRow(label, value, onToggle, controls, get) {
|
|
28961
|
+
toggleRow(label, value, onToggle, controls, get, info) {
|
|
28918
28962
|
return fieldRow({
|
|
28919
28963
|
label,
|
|
28920
28964
|
labelSize: "sm",
|
|
28921
28965
|
bool: controls.length === 0,
|
|
28922
28966
|
toggle: { checked: value, onChange: onToggle, get },
|
|
28923
28967
|
control: controls,
|
|
28968
|
+
info,
|
|
28924
28969
|
className: controls.length === 0 ? "vela-sd-bool" : "vela-sd-row"
|
|
28925
28970
|
});
|
|
28926
28971
|
}
|
|
28972
|
+
/** The shared ⓘ hint after a row label (see {@link chromeHint}). Disposed with the dialog. */
|
|
28973
|
+
hint(text) {
|
|
28974
|
+
const { el, dispose } = chromeHint(text, { host: this.container, theme: () => this.theme });
|
|
28975
|
+
this.hintTips.push(dispose);
|
|
28976
|
+
return el;
|
|
28977
|
+
}
|
|
28927
28978
|
numberRow(label, value, min2, max2, step, onChange) {
|
|
28928
28979
|
return fieldRow({
|
|
28929
28980
|
label,
|
|
@@ -34936,7 +34987,6 @@ ${overlayScrollbarCss(".vela-sd-pane")}
|
|
|
34936
34987
|
var ZOOM_TAU_MS = 70;
|
|
34937
34988
|
var SCALE_TAU_MS = 80;
|
|
34938
34989
|
var FLING_TAU_MS = 110;
|
|
34939
|
-
var LIVE_BAR_TAU_MS = 90;
|
|
34940
34990
|
var SCROLL_TO_TAU_MS = 130;
|
|
34941
34991
|
var FLING_STOP_PX = 0.02;
|
|
34942
34992
|
var PRICE_SCALE_K = 4e-3;
|
|
@@ -35007,9 +35057,13 @@ ${overlayScrollbarCss(".vela-sd-pane")}
|
|
|
35007
35057
|
/** Drawings layer self-serves Ctrl+Z/Y (see the `historyChords` feature). */
|
|
35008
35058
|
this.historyChordsEnabled = true;
|
|
35009
35059
|
this.liveRegion = null;
|
|
35010
|
-
// ── animation state (eased zoom + inertial pan) ──
|
|
35060
|
+
// ── animation state (eased zoom + inertial pan + live-bar glide) ──
|
|
35011
35061
|
this.animZoom = true;
|
|
35012
35062
|
this.animPan = true;
|
|
35063
|
+
this.animLiveBarMs = 0;
|
|
35064
|
+
// forming-bar OHLC glide time-constant; 0 = each tick snaps
|
|
35065
|
+
this.animLiveBarOnMs = LIVE_BAR_EASE_DEFAULT_MS;
|
|
35066
|
+
// the duration the settings-dialog on/off toggle restores (last non-zero value configured)
|
|
35013
35067
|
// Brand default candles.
|
|
35014
35068
|
this.candleUp = BULLISH;
|
|
35015
35069
|
this.candleDown = BEARISH;
|
|
@@ -35134,7 +35188,7 @@ ${overlayScrollbarCss(".vela-sd-pane")}
|
|
|
35134
35188
|
this.moveIndicatorCbs = /* @__PURE__ */ new Set();
|
|
35135
35189
|
this.priceStyleCbs = /* @__PURE__ */ new Set();
|
|
35136
35190
|
this.name = "native";
|
|
35137
|
-
this.features = ["logScale", "currentPriceLine", "priceLabel", "countdown", "upColor", "downColor", "glow", "animZoom", "animPan", "intro", "zoomAnchor", "axisDrag", "paneResize", "candleZOrder", "candleVisible", "seriesOrder", "highlights", "sessionZones", "gridlines", "axisLabels", "scaleMode", "invertScale", "paneScales", "autoScale", "timezone", "keyboard", "historyChords", "priceStyle", "priceBaseline", "baselinePrice", "settings", "attribution", "dialogHost", "tradeMarkers", "indicatorTitles", "indicatorValues"];
|
|
35191
|
+
this.features = ["logScale", "currentPriceLine", "priceLabel", "countdown", "upColor", "downColor", "glow", "animZoom", "animPan", "animLiveBar", "intro", "zoomAnchor", "axisDrag", "paneResize", "candleZOrder", "candleVisible", "seriesOrder", "highlights", "sessionZones", "gridlines", "axisLabels", "scaleMode", "invertScale", "paneScales", "autoScale", "timezone", "keyboard", "historyChords", "priceStyle", "priceBaseline", "baselinePrice", "settings", "attribution", "dialogHost", "tradeMarkers", "indicatorTitles", "indicatorValues"];
|
|
35138
35192
|
/** Track cursor proximity to the scroll button on the plot (bubbles from the button too,
|
|
35139
35193
|
* so moving onto the button doesn't count as leaving). */
|
|
35140
35194
|
this.onScrollProximityMove = (e) => {
|
|
@@ -35168,6 +35222,7 @@ ${overlayScrollbarCss(".vela-sd-pane")}
|
|
|
35168
35222
|
this.backendMode = opts.nativeBackend;
|
|
35169
35223
|
this.animZoom = opts.animZoom;
|
|
35170
35224
|
this.animPan = opts.animPan;
|
|
35225
|
+
this.setLiveBarEase(resolveLiveBarEaseMs(opts.animLiveBar));
|
|
35171
35226
|
this.glowAmount = opts.glow;
|
|
35172
35227
|
this.candleUp = opts.upColor;
|
|
35173
35228
|
this.candleDown = opts.downColor;
|
|
@@ -35217,6 +35272,10 @@ ${overlayScrollbarCss(".vela-sd-pane")}
|
|
|
35217
35272
|
case "animPan":
|
|
35218
35273
|
this.animPan = Boolean(value);
|
|
35219
35274
|
return;
|
|
35275
|
+
case "animLiveBar":
|
|
35276
|
+
this.setLiveBarEase(resolveLiveBarEaseMs(value));
|
|
35277
|
+
return;
|
|
35278
|
+
// affects the next tick only; a glide in flight finishes at the new rate (or snaps at 0)
|
|
35220
35279
|
case "intro": {
|
|
35221
35280
|
const s = value === false || value === "none" || value === "off" || value == null ? "" : String(value);
|
|
35222
35281
|
this.introStyle = s;
|
|
@@ -35353,6 +35412,8 @@ ${overlayScrollbarCss(".vela-sd-pane")}
|
|
|
35353
35412
|
return this.animZoom;
|
|
35354
35413
|
case "animPan":
|
|
35355
35414
|
return this.animPan;
|
|
35415
|
+
case "animLiveBar":
|
|
35416
|
+
return this.animLiveBarMs;
|
|
35356
35417
|
case "intro":
|
|
35357
35418
|
return this.introStyle;
|
|
35358
35419
|
case "zoomAnchor":
|
|
@@ -35521,7 +35582,8 @@ ${overlayScrollbarCss(".vela-sd-pane")}
|
|
|
35521
35582
|
labelsVisible: this.scene.showAxisLabels,
|
|
35522
35583
|
currentPriceLine: this.scene.showPriceLine,
|
|
35523
35584
|
priceLabel: this.scene.showPriceLabel,
|
|
35524
|
-
countdown: this.scene.showCountdown
|
|
35585
|
+
countdown: this.scene.showCountdown,
|
|
35586
|
+
animateLastPrice: this.animLiveBarMs > 0
|
|
35525
35587
|
},
|
|
35526
35588
|
panes: { separatorColor: s.separatorColor ?? t.borderColor },
|
|
35527
35589
|
trades: {
|
|
@@ -35628,6 +35690,7 @@ ${overlayScrollbarCss(".vela-sd-pane")}
|
|
|
35628
35690
|
this.scene.showPriceLabel = next2.priceScale.priceLabel;
|
|
35629
35691
|
this.scene.showCountdown = next2.priceScale.countdown;
|
|
35630
35692
|
this.syncCountdownTimer();
|
|
35693
|
+
this.animLiveBarMs = next2.priceScale.animateLastPrice ? this.animLiveBarOnMs : 0;
|
|
35631
35694
|
s.separatorColor = keepInherit(s.separatorColor, next2.panes.separatorColor, prevTheme.borderColor);
|
|
35632
35695
|
this.scene.tradeMarkers = {
|
|
35633
35696
|
visible: next2.trades.visible,
|
|
@@ -36444,8 +36507,11 @@ ${overlayScrollbarCss(".vela-sd-pane")}
|
|
|
36444
36507
|
const last2 = this.bars[n - 1];
|
|
36445
36508
|
if (last2 && bar.time === last2.time) {
|
|
36446
36509
|
this.bars[n - 1] = bar;
|
|
36447
|
-
if (this.liveEaseTime !== bar.time)
|
|
36448
|
-
|
|
36510
|
+
if (this.animLiveBarMs <= 0 || this.liveEaseTime !== bar.time) {
|
|
36511
|
+
this.syncLiveEase(bar);
|
|
36512
|
+
} else {
|
|
36513
|
+
this.animator.start();
|
|
36514
|
+
}
|
|
36449
36515
|
} else if (!last2 || bar.time > last2.time) {
|
|
36450
36516
|
this.bars.push(bar);
|
|
36451
36517
|
this.syncLiveEase(bar);
|
|
@@ -36457,6 +36523,12 @@ ${overlayScrollbarCss(".vela-sd-pane")}
|
|
|
36457
36523
|
this.scene.bars = this.bars;
|
|
36458
36524
|
this.scheduler.invalidate(4 /* Full */);
|
|
36459
36525
|
}
|
|
36526
|
+
/** Set the live-bar glide duration (0 = off). A non-zero value is also remembered as
|
|
36527
|
+
* what the config's on/off toggle (`priceScale.animateLastPrice`) switches back on to. */
|
|
36528
|
+
setLiveBarEase(ms) {
|
|
36529
|
+
this.animLiveBarMs = ms;
|
|
36530
|
+
if (ms > 0) this.animLiveBarOnMs = ms;
|
|
36531
|
+
}
|
|
36460
36532
|
/** Snap the eased forming-bar state to `bar` — no glide (a fresh bar or the first tick of one). */
|
|
36461
36533
|
syncLiveEase(bar) {
|
|
36462
36534
|
this.liveEaseTime = bar.time;
|
|
@@ -36469,9 +36541,10 @@ ${overlayScrollbarCss(".vela-sd-pane")}
|
|
|
36469
36541
|
const target = this.bars[this.bars.length - 1];
|
|
36470
36542
|
if (!target || this.liveEaseTime !== target.time) return false;
|
|
36471
36543
|
const eps = Math.max(1e-9, Math.abs(target.close) * 1e-6);
|
|
36472
|
-
const
|
|
36473
|
-
const
|
|
36474
|
-
const
|
|
36544
|
+
const tau = this.animLiveBarMs;
|
|
36545
|
+
const nh = easeToward(this.liveEaseHigh, target.high, dtMs, tau);
|
|
36546
|
+
const nl = easeToward(this.liveEaseLow, target.low, dtMs, tau);
|
|
36547
|
+
const nc = easeToward(this.liveEaseClose, target.close, dtMs, tau);
|
|
36475
36548
|
const active = Math.abs(nh - target.high) > eps || Math.abs(nl - target.low) > eps || Math.abs(nc - target.close) > eps;
|
|
36476
36549
|
this.liveEaseHigh = active ? nh : target.high;
|
|
36477
36550
|
this.liveEaseLow = active ? nl : target.low;
|
|
@@ -40755,21 +40828,11 @@ ${overlayScrollbarCss(".vela-sd-pane")}
|
|
|
40755
40828
|
registerClassicIndicators();
|
|
40756
40829
|
const element = resolveElement(container);
|
|
40757
40830
|
const theme = resolveTheme(options.theme);
|
|
40758
|
-
let animZoom = true;
|
|
40759
|
-
let animPan = true;
|
|
40760
|
-
if (typeof options.animations === "boolean") {
|
|
40761
|
-
animZoom = options.animations;
|
|
40762
|
-
animPan = options.animations;
|
|
40763
|
-
} else if (options.animations) {
|
|
40764
|
-
animZoom = options.animations.zoom ?? true;
|
|
40765
|
-
animPan = options.animations.pan ?? true;
|
|
40766
|
-
}
|
|
40767
40831
|
const display = {
|
|
40768
40832
|
currentPriceLine: options.currentPriceLine ?? true,
|
|
40769
40833
|
logScale: options.logScale ?? false,
|
|
40770
40834
|
nativeBackend: options.nativeBackend ?? "auto",
|
|
40771
|
-
|
|
40772
|
-
animPan,
|
|
40835
|
+
...resolveAnimations(options.animations),
|
|
40773
40836
|
glow: options.glow ?? 0,
|
|
40774
40837
|
upColor: options.upColor ?? BULLISH,
|
|
40775
40838
|
downColor: options.downColor ?? BEARISH,
|