@luxalgo/vela 0.7.7 → 0.8.0

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 (45) hide show
  1. package/dist/{DataProvider-CGa4KHRa.d.cts → DataProvider-BrlxntPN.d.cts} +1 -1
  2. package/dist/{DataProvider-CmWUtDVL.d.ts → DataProvider-DwFIoV4r.d.ts} +1 -1
  3. package/dist/{chunk-WTWGEB7K.js → chunk-2IAETM2I.js} +260 -2
  4. package/dist/{chunk-CAFCLMPF.js → chunk-BZQM2XO7.js} +1 -0
  5. package/dist/{chunk-ZA2XWTGH.js → chunk-E3GU6AUI.js} +499 -43
  6. package/dist/{chunk-BFA32GOU.js → chunk-EZ5FWVLA.js} +5 -2
  7. package/dist/{chunk-PVGWNF7V.js → chunk-KA77UTRF.js} +2 -2
  8. package/dist/{chunk-RVQWJOEE.js → chunk-QBPUT5SU.js} +2862 -1034
  9. package/dist/{contributions-DF_Ea07m.d.cts → contributions-CtlptxR8.d.cts} +187 -5
  10. package/dist/{contributions-nKOSeLy8.d.ts → contributions-tjNExo1o.d.ts} +187 -5
  11. package/dist/index.cjs +3142 -1030
  12. package/dist/index.d.cts +40 -8
  13. package/dist/index.d.ts +40 -8
  14. package/dist/index.js +28 -4
  15. package/dist/{options-D1AJKsn_.d.ts → options-BnEPUuVV.d.cts} +1 -1
  16. package/dist/{options-D1AJKsn_.d.cts → options-BnEPUuVV.d.ts} +1 -1
  17. package/dist/{plugin-DPyVJFoA.d.cts → plugin-BWxJRKzS.d.cts} +31 -25
  18. package/dist/{plugin-0oFDnexb.d.ts → plugin-e2WUEtiI.d.ts} +31 -25
  19. package/dist/plugin.cjs +1 -0
  20. package/dist/plugin.d.cts +4 -4
  21. package/dist/plugin.d.ts +4 -4
  22. package/dist/plugin.js +2 -2
  23. package/dist/providers/binance.d.cts +2 -2
  24. package/dist/providers/binance.d.ts +2 -2
  25. package/dist/providers/coinbase.d.cts +2 -2
  26. package/dist/providers/coinbase.d.ts +2 -2
  27. package/dist/providers/hyperliquid.d.cts +2 -2
  28. package/dist/providers/hyperliquid.d.ts +2 -2
  29. package/dist/{statusline-model-DAFyqVmR.d.ts → statusline-model-DFY7tuHj.d.cts} +5 -3
  30. package/dist/{statusline-model-BoWJ3cWQ.d.cts → statusline-model-zKXtGIjj.d.ts} +5 -3
  31. package/dist/ui.cjs +263 -0
  32. package/dist/ui.d.cts +75 -2
  33. package/dist/ui.d.ts +75 -2
  34. package/dist/ui.js +3 -3
  35. package/dist/vela.global.js +3144 -1032
  36. package/dist/vela.global.min.js +78 -76
  37. package/dist/widget.cjs +3627 -1081
  38. package/dist/widget.d.cts +26 -7
  39. package/dist/widget.d.ts +26 -7
  40. package/dist/widget.js +7 -7
  41. package/dist/workspace.cjs +3630 -1081
  42. package/dist/workspace.d.cts +126 -6
  43. package/dist/workspace.d.ts +126 -6
  44. package/dist/workspace.js +6 -6
  45. package/package.json +1 -1
package/dist/widget.d.cts CHANGED
@@ -1,10 +1,10 @@
1
- import { V as Vela, W as WidgetContext, K as SidePanelButton } from './contributions-DF_Ea07m.cjs';
2
- export { C as CellStateContext, aA as DEFAULT_PANEL_ORDER, E as ExternalIndicatorEntry, O as OVERRIDABLE_TOPBAR_IDS, Q as SidePanelDescriptor, T as SidePanelHandle, X as StatePersistenceHandler, $ as SymbolRankingHook, a4 as WidgetActionDescriptor, a5 as WidgetActionTarget, a6 as WidgetAttachment, ag as registerSidePanel, ah as registerStatePersistence, ai as registerSymbolRanking, aj as registerWidgetAction, ak as registerWidgetAttachment, am as sidePanels, an as statePersistenceHandlers, ao as symbolRanking, ap as topbarActionOverride, au as unregisterSidePanel, av as unregisterStatePersistence, aw as unregisterWidgetAction, ax as unregisterWidgetAttachment, ay as widgetActions, az as widgetAttachments } from './contributions-DF_Ea07m.cjs';
3
- import { b as VelaOptions, d as MarketSession, T as ThemeName, c as VelaTheme, v as DataWindowReadout } from './options-D1AJKsn_.cjs';
4
- import { c as VelaShellOptions, W as WidgetHistory, b as RangePreset, f as WorkspaceState, j as TopbarComposition, a as StatuslinePart, P as PanelsState } from './statusline-model-BoWJ3cWQ.cjs';
5
- export { B as Bottombar, k as BottombarOptions, C as CellState, g as ChartState, I as IndicatorLoader, l as IndicatorManifest, m as IndicatorManifestEntry, n as RANGE_PRESETS, R as ResolvedIndicator, o as ResolvedTopbarComposition, p as TOPBAR_BUILTIN_IDS, q as TOPBAR_DEFAULT_LEFT, r as TOPBAR_DEFAULT_RIGHT, V as VelaStorage, t as WidgetStorage, h as decodeState, i as encodeState, u as localStorageAdapter, v as pinnedTopbarActionIds, w as resolveIndicators, x as resolveTopbarComposition, s as sanitizeState, y as topbarHas } from './statusline-model-BoWJ3cWQ.cjs';
1
+ import { V as Vela, W as WidgetContext, $ as SidePanelButton } from './contributions-CtlptxR8.cjs';
2
+ export { C as CellStateContext, aH as DEFAULT_PANEL_ORDER, E as ExternalIndicatorEntry, O as OVERRIDABLE_TOPBAR_IDS, a0 as SidePanelDescriptor, a1 as SidePanelHandle, a3 as StatePersistenceHandler, a7 as SymbolRankingHook, ab as WidgetActionDescriptor, ac as WidgetActionTarget, ad as WidgetAttachment, an as registerSidePanel, ao as registerStatePersistence, ap as registerSymbolRanking, aq as registerWidgetAction, ar as registerWidgetAttachment, at as sidePanels, au as statePersistenceHandlers, av as symbolRanking, aw as topbarActionOverride, aB as unregisterSidePanel, aC as unregisterStatePersistence, aD as unregisterWidgetAction, aE as unregisterWidgetAttachment, aF as widgetActions, aG as widgetAttachments } from './contributions-CtlptxR8.cjs';
3
+ import { b as VelaOptions, d as MarketSession, T as ThemeName, c as VelaTheme, v as DataWindowReadout } from './options-BnEPUuVV.cjs';
4
+ import { c as VelaShellOptions, W as WidgetHistory, b as RangePreset, f as WorkspaceState, j as TopbarComposition, a as StatuslinePart, P as PanelsState } from './statusline-model-DFY7tuHj.cjs';
5
+ export { B as Bottombar, k as BottombarOptions, C as CellState, g as ChartState, I as IndicatorLoader, l as IndicatorManifest, m as IndicatorManifestEntry, n as RANGE_PRESETS, R as ResolvedIndicator, o as ResolvedTopbarComposition, p as TOPBAR_BUILTIN_IDS, q as TOPBAR_DEFAULT_LEFT, r as TOPBAR_DEFAULT_RIGHT, V as VelaStorage, t as WidgetStorage, h as decodeState, i as encodeState, u as localStorageAdapter, v as pinnedTopbarActionIds, w as resolveIndicators, x as resolveTopbarComposition, s as sanitizeState, y as topbarHas } from './statusline-model-DFY7tuHj.cjs';
6
6
  import { K as KeymapManager } from './keymap-CGOz5F5f.cjs';
7
- import { a as SymbolDescriptor } from './DataProvider-CGa4KHRa.cjs';
7
+ import { a as SymbolDescriptor } from './DataProvider-BrlxntPN.cjs';
8
8
  import { d as SidePanel } from './side-panel-HF0IAzwf.cjs';
9
9
  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';
10
10
 
@@ -222,9 +222,12 @@ declare class Statusline {
222
222
  private readonly ohlcEl;
223
223
  private readonly changeEl;
224
224
  private readonly symbolEl;
225
+ /** The badge slot — the market bubble, or the replay badge while replaying. */
225
226
  private readonly marketEl;
226
- /** The badge itself — a kit callout bubble (the same element as {@link marketEl}). */
227
+ /** The market status face — a kit callout bubble. */
227
228
  private readonly marketBubble;
229
+ /** The replay face — see {@link REPLAY_BADGE_SVG}. */
230
+ private readonly replayBadge;
228
231
  private marketTip;
229
232
  /** The show-chart eye — visible only while the chart is hidden. */
230
233
  private readonly eyeEl;
@@ -232,6 +235,9 @@ declare class Statusline {
232
235
  private avatarEl;
233
236
  private metaEl;
234
237
  private readonly parts;
238
+ private marketStatus;
239
+ /** The chart replays past bars — the badge shows the replay mode (see {@link setReplaying}). */
240
+ private replaying;
235
241
  /** The right-click action menu — present once a host wires it via {@link attachMenu}. */
236
242
  private menu;
237
243
  private menuHooks;
@@ -298,6 +304,10 @@ declare class Statusline {
298
304
  /** Dress the market badge for a session state: its icon, tinted circle, and the
299
305
  * hover label. Callers with no session model leave the constructor's 'open'. */
300
306
  setMarketStatus(status: MarketStatus): void;
307
+ /** The chart entered or left a bar replay: the badge shows the replay mode meanwhile
308
+ * (the session state of a past bar says nothing about the market now). */
309
+ setReplaying(replaying: boolean): void;
310
+ private dressBadge;
301
311
  /** Show/hide one part — the settings dialog's Status line tab and the right-click
302
312
  * menu both drive these. 'name' owns the venue/timeframe meta too (see
303
313
  * {@link segmentVisibility}). */
@@ -327,15 +337,24 @@ declare class Statusline {
327
337
  declare class Watermark {
328
338
  readonly el: HTMLElement;
329
339
  private readonly text;
340
+ private readonly replayLine;
330
341
  private readonly resizeObserver;
331
342
  /** The host's visibility preference (the persisted watermark toggle). */
332
343
  private shown;
344
+ /** The host's preference for the replay line (its own persisted toggle). */
345
+ private replayShown;
346
+ /** The chart is replaying past bars. */
347
+ private replaying;
333
348
  /** A bar load is in flight with nothing painted — the loading affordance owns the
334
349
  * canvas, so the mark stays out of its way. Starts true: the FIRST `load:start`
335
350
  * fires during chart construction, before any subscriber can see it. */
336
351
  private loading;
337
352
  constructor(host: HTMLElement, symbol: string, timeframe: string);
338
353
  setVisible(visible: boolean): void;
354
+ /** Show/hide the replay line (the host's toggle); it only ever shows while replaying. */
355
+ setReplayVisible(visible: boolean): void;
356
+ /** The chart entered or left a bar replay. */
357
+ setReplaying(replaying: boolean): void;
339
358
  /** Loading and the watermark never share the canvas — hidden while a load is up. */
340
359
  setLoading(loading: boolean): void;
341
360
  private sync;
package/dist/widget.d.ts CHANGED
@@ -1,10 +1,10 @@
1
- import { V as Vela, W as WidgetContext, K as SidePanelButton } from './contributions-nKOSeLy8.js';
2
- export { C as CellStateContext, aA as DEFAULT_PANEL_ORDER, E as ExternalIndicatorEntry, O as OVERRIDABLE_TOPBAR_IDS, Q as SidePanelDescriptor, T as SidePanelHandle, X as StatePersistenceHandler, $ as SymbolRankingHook, a4 as WidgetActionDescriptor, a5 as WidgetActionTarget, a6 as WidgetAttachment, ag as registerSidePanel, ah as registerStatePersistence, ai as registerSymbolRanking, aj as registerWidgetAction, ak as registerWidgetAttachment, am as sidePanels, an as statePersistenceHandlers, ao as symbolRanking, ap as topbarActionOverride, au as unregisterSidePanel, av as unregisterStatePersistence, aw as unregisterWidgetAction, ax as unregisterWidgetAttachment, ay as widgetActions, az as widgetAttachments } from './contributions-nKOSeLy8.js';
3
- import { b as VelaOptions, d as MarketSession, T as ThemeName, c as VelaTheme, v as DataWindowReadout } from './options-D1AJKsn_.js';
4
- import { c as VelaShellOptions, W as WidgetHistory, b as RangePreset, f as WorkspaceState, j as TopbarComposition, a as StatuslinePart, P as PanelsState } from './statusline-model-DAFyqVmR.js';
5
- export { B as Bottombar, k as BottombarOptions, C as CellState, g as ChartState, I as IndicatorLoader, l as IndicatorManifest, m as IndicatorManifestEntry, n as RANGE_PRESETS, R as ResolvedIndicator, o as ResolvedTopbarComposition, p as TOPBAR_BUILTIN_IDS, q as TOPBAR_DEFAULT_LEFT, r as TOPBAR_DEFAULT_RIGHT, V as VelaStorage, t as WidgetStorage, h as decodeState, i as encodeState, u as localStorageAdapter, v as pinnedTopbarActionIds, w as resolveIndicators, x as resolveTopbarComposition, s as sanitizeState, y as topbarHas } from './statusline-model-DAFyqVmR.js';
1
+ import { V as Vela, W as WidgetContext, $ as SidePanelButton } from './contributions-tjNExo1o.js';
2
+ export { C as CellStateContext, aH as DEFAULT_PANEL_ORDER, E as ExternalIndicatorEntry, O as OVERRIDABLE_TOPBAR_IDS, a0 as SidePanelDescriptor, a1 as SidePanelHandle, a3 as StatePersistenceHandler, a7 as SymbolRankingHook, ab as WidgetActionDescriptor, ac as WidgetActionTarget, ad as WidgetAttachment, an as registerSidePanel, ao as registerStatePersistence, ap as registerSymbolRanking, aq as registerWidgetAction, ar as registerWidgetAttachment, at as sidePanels, au as statePersistenceHandlers, av as symbolRanking, aw as topbarActionOverride, aB as unregisterSidePanel, aC as unregisterStatePersistence, aD as unregisterWidgetAction, aE as unregisterWidgetAttachment, aF as widgetActions, aG as widgetAttachments } from './contributions-tjNExo1o.js';
3
+ import { b as VelaOptions, d as MarketSession, T as ThemeName, c as VelaTheme, v as DataWindowReadout } from './options-BnEPUuVV.js';
4
+ import { c as VelaShellOptions, W as WidgetHistory, b as RangePreset, f as WorkspaceState, j as TopbarComposition, a as StatuslinePart, P as PanelsState } from './statusline-model-zKXtGIjj.js';
5
+ export { B as Bottombar, k as BottombarOptions, C as CellState, g as ChartState, I as IndicatorLoader, l as IndicatorManifest, m as IndicatorManifestEntry, n as RANGE_PRESETS, R as ResolvedIndicator, o as ResolvedTopbarComposition, p as TOPBAR_BUILTIN_IDS, q as TOPBAR_DEFAULT_LEFT, r as TOPBAR_DEFAULT_RIGHT, V as VelaStorage, t as WidgetStorage, h as decodeState, i as encodeState, u as localStorageAdapter, v as pinnedTopbarActionIds, w as resolveIndicators, x as resolveTopbarComposition, s as sanitizeState, y as topbarHas } from './statusline-model-zKXtGIjj.js';
6
6
  import { K as KeymapManager } from './keymap-CGOz5F5f.js';
7
- import { a as SymbolDescriptor } from './DataProvider-CmWUtDVL.js';
7
+ import { a as SymbolDescriptor } from './DataProvider-DwFIoV4r.js';
8
8
  import { d as SidePanel } from './side-panel-HF0IAzwf.js';
9
9
  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';
10
10
 
@@ -222,9 +222,12 @@ declare class Statusline {
222
222
  private readonly ohlcEl;
223
223
  private readonly changeEl;
224
224
  private readonly symbolEl;
225
+ /** The badge slot — the market bubble, or the replay badge while replaying. */
225
226
  private readonly marketEl;
226
- /** The badge itself — a kit callout bubble (the same element as {@link marketEl}). */
227
+ /** The market status face — a kit callout bubble. */
227
228
  private readonly marketBubble;
229
+ /** The replay face — see {@link REPLAY_BADGE_SVG}. */
230
+ private readonly replayBadge;
228
231
  private marketTip;
229
232
  /** The show-chart eye — visible only while the chart is hidden. */
230
233
  private readonly eyeEl;
@@ -232,6 +235,9 @@ declare class Statusline {
232
235
  private avatarEl;
233
236
  private metaEl;
234
237
  private readonly parts;
238
+ private marketStatus;
239
+ /** The chart replays past bars — the badge shows the replay mode (see {@link setReplaying}). */
240
+ private replaying;
235
241
  /** The right-click action menu — present once a host wires it via {@link attachMenu}. */
236
242
  private menu;
237
243
  private menuHooks;
@@ -298,6 +304,10 @@ declare class Statusline {
298
304
  /** Dress the market badge for a session state: its icon, tinted circle, and the
299
305
  * hover label. Callers with no session model leave the constructor's 'open'. */
300
306
  setMarketStatus(status: MarketStatus): void;
307
+ /** The chart entered or left a bar replay: the badge shows the replay mode meanwhile
308
+ * (the session state of a past bar says nothing about the market now). */
309
+ setReplaying(replaying: boolean): void;
310
+ private dressBadge;
301
311
  /** Show/hide one part — the settings dialog's Status line tab and the right-click
302
312
  * menu both drive these. 'name' owns the venue/timeframe meta too (see
303
313
  * {@link segmentVisibility}). */
@@ -327,15 +337,24 @@ declare class Statusline {
327
337
  declare class Watermark {
328
338
  readonly el: HTMLElement;
329
339
  private readonly text;
340
+ private readonly replayLine;
330
341
  private readonly resizeObserver;
331
342
  /** The host's visibility preference (the persisted watermark toggle). */
332
343
  private shown;
344
+ /** The host's preference for the replay line (its own persisted toggle). */
345
+ private replayShown;
346
+ /** The chart is replaying past bars. */
347
+ private replaying;
333
348
  /** A bar load is in flight with nothing painted — the loading affordance owns the
334
349
  * canvas, so the mark stays out of its way. Starts true: the FIRST `load:start`
335
350
  * fires during chart construction, before any subscriber can see it. */
336
351
  private loading;
337
352
  constructor(host: HTMLElement, symbol: string, timeframe: string);
338
353
  setVisible(visible: boolean): void;
354
+ /** Show/hide the replay line (the host's toggle); it only ever shows while replaying. */
355
+ setReplayVisible(visible: boolean): void;
356
+ /** The chart entered or left a bar replay. */
357
+ setReplaying(replaying: boolean): void;
339
358
  /** Loading and the watermark never share the canvas — hidden while a load is up. */
340
359
  setLoading(loading: boolean): void;
341
360
  private sync;
package/dist/widget.js CHANGED
@@ -1,10 +1,10 @@
1
- import { VelaWorkspace } from './chunk-ZA2XWTGH.js';
2
- export { Bottombar, ChartContextMenu, DataWindow, IndicatorPicker, ObjectTree, PanelDock, RANGE_PRESETS, ShortcutsHelp, Statusline, SymbolPicker, TimeframeQuick, Topbar, Watermark, dataWindowSections, decimalsFor, decodeState, encodeState, filterSymbols, fmtChange, fmtPrice, localStorageAdapter, parseTimeframe, priceStyleLabel, resolveIndicators, sanitizeState, timeframeLabel, timeframeMs } from './chunk-ZA2XWTGH.js';
3
- export { TIMEZONES, normalizeTimezone, tzButtonLabel, tzMenuLabel, tzOffset } from './chunk-RVQWJOEE.js';
4
- export { DEFAULT_PANEL_MAX_WIDTH, DEFAULT_PANEL_MIN_WIDTH, DEFAULT_PANEL_ORDER, DEFAULT_PANEL_WIDTH, OVERRIDABLE_TOPBAR_IDS, SidePanel, TOPBAR_BUILTIN_IDS, TOPBAR_DEFAULT_LEFT, TOPBAR_DEFAULT_RIGHT, clampPanelWidth, pinnedTopbarActionIds, registerSidePanel, registerStatePersistence, registerSymbolRanking, registerWidgetAction, registerWidgetAttachment, resolveTopbarComposition, sidePanels, statePersistenceHandlers, symbolRanking, topbarActionOverride, topbarHas, unregisterSidePanel, unregisterStatePersistence, unregisterWidgetAction, unregisterWidgetAttachment, widgetActions, widgetAttachments } from './chunk-BFA32GOU.js';
5
- import './chunk-PVGWNF7V.js';
6
- import './chunk-WTWGEB7K.js';
7
- import './chunk-CAFCLMPF.js';
1
+ import { VelaWorkspace } from './chunk-E3GU6AUI.js';
2
+ export { Bottombar, ChartContextMenu, DataWindow, IndicatorPicker, ObjectTree, PanelDock, RANGE_PRESETS, ShortcutsHelp, Statusline, SymbolPicker, TimeframeQuick, Topbar, Watermark, dataWindowSections, decimalsFor, decodeState, encodeState, filterSymbols, fmtChange, fmtPrice, localStorageAdapter, parseTimeframe, priceStyleLabel, resolveIndicators, sanitizeState, timeframeLabel, timeframeMs } from './chunk-E3GU6AUI.js';
3
+ export { TIMEZONES, normalizeTimezone, tzButtonLabel, tzMenuLabel, tzOffset } from './chunk-QBPUT5SU.js';
4
+ export { DEFAULT_PANEL_MAX_WIDTH, DEFAULT_PANEL_MIN_WIDTH, DEFAULT_PANEL_ORDER, DEFAULT_PANEL_WIDTH, OVERRIDABLE_TOPBAR_IDS, SidePanel, TOPBAR_BUILTIN_IDS, TOPBAR_DEFAULT_LEFT, TOPBAR_DEFAULT_RIGHT, clampPanelWidth, pinnedTopbarActionIds, registerSidePanel, registerStatePersistence, registerSymbolRanking, registerWidgetAction, registerWidgetAttachment, resolveTopbarComposition, sidePanels, statePersistenceHandlers, symbolRanking, topbarActionOverride, topbarHas, unregisterSidePanel, unregisterStatePersistence, unregisterWidgetAction, unregisterWidgetAttachment, widgetActions, widgetAttachments } from './chunk-EZ5FWVLA.js';
5
+ import './chunk-KA77UTRF.js';
6
+ import './chunk-2IAETM2I.js';
7
+ import './chunk-BZQM2XO7.js';
8
8
  import './chunk-W4EJWLEO.js';
9
9
 
10
10
  // src/widget/VelaWidget.ts