@luxalgo/vela 0.7.6 → 0.7.7

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.
@@ -1,8 +1,8 @@
1
1
  import { O as OHLCV, V as VisibleRangePreset, a as VisibleRange, b as VelaOptions, I as InputValue, c as VelaTheme, N as NativeBackend, d as MarketSession } from './options-D1AJKsn_.cjs';
2
- import { S as SyncSetting, V as VelaStorage, C as CellState, W as WidgetHistory, R as ResolvedIndicator, a as StatuslinePart, b as RangePreset, T as TrackSizes, c as VelaShellOptions, d as SyncOptions, e as SyncKind, f as WorkspaceState } from './statusline-model-gWHrsOy3.cjs';
3
- export { g as ChartState, P as PanelsState, h as decodeState, i as encodeState, s as sanitizeState } from './statusline-model-gWHrsOy3.cjs';
2
+ import { S as SyncSetting, V as VelaStorage, C as CellState, W as WidgetHistory, R as ResolvedIndicator, a as StatuslinePart, b as RangePreset, T as TrackSizes, c as VelaShellOptions, d as SyncOptions, e as SyncKind, f as WorkspaceState } from './statusline-model-BoWJ3cWQ.cjs';
3
+ export { g as ChartState, P as PanelsState, h as decodeState, i as encodeState, s as sanitizeState } from './statusline-model-BoWJ3cWQ.cjs';
4
4
  import { K as KeymapManager } from './keymap-CGOz5F5f.cjs';
5
- import { I as IndicatorHandle, S as ScriptingEngine, W as WidgetContext, V as Vela, E as ExternalIndicatorEntry, a as ScriptRun } from './contributions-D6p1RB38.cjs';
5
+ import { I as IndicatorHandle, S as ScriptingEngine, W as WidgetContext, V as Vela, E as ExternalIndicatorEntry, a as ScriptRun } from './contributions-DF_Ea07m.cjs';
6
6
  import { M as MarketDataFeed } from './DataProvider-CGa4KHRa.cjs';
7
7
 
8
8
  /** The cells that follow `originId` under `setting` — PURE (never includes the origin). */
@@ -88,7 +88,8 @@ interface CellDeps {
88
88
  /** Where the renderer mounts its MODAL dialogs (chart/indicator settings) — the
89
89
  * workspace root, so dialogs center over the whole grid instead of one cell. */
90
90
  dialogHost: HTMLElement;
91
- /** The workspace-global display timezone (applied to every cell's renderer). */
91
+ /** The workspace-global display-timezone CHOICE — an IANA zone, or the exchange
92
+ * rule, which each cell resolves to its own market's zone ({@link ChartCell.applyTimezone}). */
92
93
  timezone(): string;
93
94
  /** Switch the workspace-global display timezone (a cell's time-axis menu). */
94
95
  setTimezone(zone: string): void;
@@ -168,6 +169,9 @@ declare class ChartCell {
168
169
  /** Latched: the symbol's extended tape wraps midnight (an overnight roll market) —
169
170
  * one extended-hours shading phase instead of the pre/post split. */
170
171
  private sessionOvernightFlag;
172
+ /** Latched: the symbol's own trading zone (`SymbolInfo.timezone`) — what the exchange
173
+ * rule resolves to on this cell. Undefined until metadata lands or when none is declared. */
174
+ private exchangeZone;
171
175
  private inner;
172
176
  /** The live app theme — seeded from deps, updated on `theme:changed` (the base the
173
177
  * plot-overlay tokens re-derive from). */
@@ -233,7 +237,23 @@ declare class ChartCell {
233
237
  get session(): MarketSession;
234
238
  /** Switch this cell's shown session in place (a reload — RTH and ETH are different bars). */
235
239
  setSession(session: MarketSession): void;
236
- private refreshSessionAvailable;
240
+ /**
241
+ * The symbol's own trading zone, once its metadata has landed — what the exchange
242
+ * rule resolves to on this cell (the workspace labels the shared bottom bar with the
243
+ * ACTIVE cell's). Undefined = unknown or undeclared (the rule then renders UTC).
244
+ */
245
+ get exchangeTimezone(): string | undefined;
246
+ /** The IANA zone this cell's axis renders in: the workspace choice, resolved. */
247
+ get displayTimezone(): string;
248
+ /**
249
+ * Push the resolved zone to the renderer — on the workspace choice changing, and on
250
+ * this cell's market zone changing under the exchange rule. Skips the write when the
251
+ * renderer already holds it (its config default is the bare `'UTC'` alias).
252
+ */
253
+ applyTimezone(): void;
254
+ /** Re-read the symbol's metadata: session posture (RTH/ETH toggle, shading) and its
255
+ * trading zone (the exchange rule). Async — the workspace re-projects when a verdict lands. */
256
+ private refreshSymbolMetadata;
237
257
  /** (Re)derive the pre/post-market shading bands for this cell's market. The bands
238
258
  * expand locally from the symbol's session vocabulary, so they paint as soon as
239
259
  * metadata is known and follow any pan depth without provider round trips. */
@@ -793,8 +813,15 @@ declare class VelaWorkspace {
793
813
  * Handlers whose restore touches chart content should be `scope: 'cell'` instead
794
814
  * (those run inside the cell's history-mute). */
795
815
  private restoreGlobalExt;
796
- /** Set the workspace-global display timezone — applied to EVERY cell. */
816
+ /**
817
+ * Set the workspace-global display timezone — applied to EVERY cell. An IANA zone,
818
+ * or `'exchange'` (the exchange rule): each cell then renders in its OWN market's
819
+ * zone (Chicago for a CME future, New York for a US equity, UTC for crypto), and the
820
+ * bottom bar follows the active cell's.
821
+ */
797
822
  setTimezone(zone: string): void;
823
+ /** Bottom bar ⇐ the stored choice + the ACTIVE cell's market zone (labels the exchange row). */
824
+ private projectTimezone;
798
825
  /**
799
826
  * Swap the workspace theme at runtime — `'dark'`, `'light'`, or a full custom theme,
800
827
  * applied to the shared chrome (topbar, panels, drawing toolbar) and EVERY cell.
@@ -1,8 +1,8 @@
1
1
  import { O as OHLCV, V as VisibleRangePreset, a as VisibleRange, b as VelaOptions, I as InputValue, c as VelaTheme, N as NativeBackend, d as MarketSession } from './options-D1AJKsn_.js';
2
- import { S as SyncSetting, V as VelaStorage, C as CellState, W as WidgetHistory, R as ResolvedIndicator, a as StatuslinePart, b as RangePreset, T as TrackSizes, c as VelaShellOptions, d as SyncOptions, e as SyncKind, f as WorkspaceState } from './statusline-model-xBiVsKoE.js';
3
- export { g as ChartState, P as PanelsState, h as decodeState, i as encodeState, s as sanitizeState } from './statusline-model-xBiVsKoE.js';
2
+ import { S as SyncSetting, V as VelaStorage, C as CellState, W as WidgetHistory, R as ResolvedIndicator, a as StatuslinePart, b as RangePreset, T as TrackSizes, c as VelaShellOptions, d as SyncOptions, e as SyncKind, f as WorkspaceState } from './statusline-model-DAFyqVmR.js';
3
+ export { g as ChartState, P as PanelsState, h as decodeState, i as encodeState, s as sanitizeState } from './statusline-model-DAFyqVmR.js';
4
4
  import { K as KeymapManager } from './keymap-CGOz5F5f.js';
5
- import { I as IndicatorHandle, S as ScriptingEngine, W as WidgetContext, V as Vela, E as ExternalIndicatorEntry, a as ScriptRun } from './contributions-C7Wsm_S9.js';
5
+ import { I as IndicatorHandle, S as ScriptingEngine, W as WidgetContext, V as Vela, E as ExternalIndicatorEntry, a as ScriptRun } from './contributions-nKOSeLy8.js';
6
6
  import { M as MarketDataFeed } from './DataProvider-CmWUtDVL.js';
7
7
 
8
8
  /** The cells that follow `originId` under `setting` — PURE (never includes the origin). */
@@ -88,7 +88,8 @@ interface CellDeps {
88
88
  /** Where the renderer mounts its MODAL dialogs (chart/indicator settings) — the
89
89
  * workspace root, so dialogs center over the whole grid instead of one cell. */
90
90
  dialogHost: HTMLElement;
91
- /** The workspace-global display timezone (applied to every cell's renderer). */
91
+ /** The workspace-global display-timezone CHOICE — an IANA zone, or the exchange
92
+ * rule, which each cell resolves to its own market's zone ({@link ChartCell.applyTimezone}). */
92
93
  timezone(): string;
93
94
  /** Switch the workspace-global display timezone (a cell's time-axis menu). */
94
95
  setTimezone(zone: string): void;
@@ -168,6 +169,9 @@ declare class ChartCell {
168
169
  /** Latched: the symbol's extended tape wraps midnight (an overnight roll market) —
169
170
  * one extended-hours shading phase instead of the pre/post split. */
170
171
  private sessionOvernightFlag;
172
+ /** Latched: the symbol's own trading zone (`SymbolInfo.timezone`) — what the exchange
173
+ * rule resolves to on this cell. Undefined until metadata lands or when none is declared. */
174
+ private exchangeZone;
171
175
  private inner;
172
176
  /** The live app theme — seeded from deps, updated on `theme:changed` (the base the
173
177
  * plot-overlay tokens re-derive from). */
@@ -233,7 +237,23 @@ declare class ChartCell {
233
237
  get session(): MarketSession;
234
238
  /** Switch this cell's shown session in place (a reload — RTH and ETH are different bars). */
235
239
  setSession(session: MarketSession): void;
236
- private refreshSessionAvailable;
240
+ /**
241
+ * The symbol's own trading zone, once its metadata has landed — what the exchange
242
+ * rule resolves to on this cell (the workspace labels the shared bottom bar with the
243
+ * ACTIVE cell's). Undefined = unknown or undeclared (the rule then renders UTC).
244
+ */
245
+ get exchangeTimezone(): string | undefined;
246
+ /** The IANA zone this cell's axis renders in: the workspace choice, resolved. */
247
+ get displayTimezone(): string;
248
+ /**
249
+ * Push the resolved zone to the renderer — on the workspace choice changing, and on
250
+ * this cell's market zone changing under the exchange rule. Skips the write when the
251
+ * renderer already holds it (its config default is the bare `'UTC'` alias).
252
+ */
253
+ applyTimezone(): void;
254
+ /** Re-read the symbol's metadata: session posture (RTH/ETH toggle, shading) and its
255
+ * trading zone (the exchange rule). Async — the workspace re-projects when a verdict lands. */
256
+ private refreshSymbolMetadata;
237
257
  /** (Re)derive the pre/post-market shading bands for this cell's market. The bands
238
258
  * expand locally from the symbol's session vocabulary, so they paint as soon as
239
259
  * metadata is known and follow any pan depth without provider round trips. */
@@ -793,8 +813,15 @@ declare class VelaWorkspace {
793
813
  * Handlers whose restore touches chart content should be `scope: 'cell'` instead
794
814
  * (those run inside the cell's history-mute). */
795
815
  private restoreGlobalExt;
796
- /** Set the workspace-global display timezone — applied to EVERY cell. */
816
+ /**
817
+ * Set the workspace-global display timezone — applied to EVERY cell. An IANA zone,
818
+ * or `'exchange'` (the exchange rule): each cell then renders in its OWN market's
819
+ * zone (Chicago for a CME future, New York for a US equity, UTC for crypto), and the
820
+ * bottom bar follows the active cell's.
821
+ */
797
822
  setTimezone(zone: string): void;
823
+ /** Bottom bar ⇐ the stored choice + the ACTIVE cell's market zone (labels the exchange row). */
824
+ private projectTimezone;
798
825
  /**
799
826
  * Swap the workspace theme at runtime — `'dark'`, `'light'`, or a full custom theme,
800
827
  * applied to the shared chrome (topbar, panels, drawing toolbar) and EVERY cell.
package/dist/workspace.js CHANGED
@@ -1,7 +1,7 @@
1
- export { ChartCell, GRID_PICKER_MAX, VelaWorkspace, activeAfterLayout, decodeState, encodeState, ensureLayout, evenTracks, gridStyles, layoutDefinition, layoutForGrid, layoutShape, layouts, memoryStorageAdapter, rangesWithin, registerBuiltinLayouts, registerLayout, resizeTracks, sanitizeState, syncTargets, trackOffsets, unregisterLayout } from './chunk-EMB53WNQ.js';
2
- import './chunk-JSVCWYBF.js';
1
+ export { ChartCell, GRID_PICKER_MAX, VelaWorkspace, activeAfterLayout, decodeState, encodeState, ensureLayout, evenTracks, gridStyles, layoutDefinition, layoutForGrid, layoutShape, layouts, memoryStorageAdapter, rangesWithin, registerBuiltinLayouts, registerLayout, resizeTracks, sanitizeState, syncTargets, trackOffsets, unregisterLayout } from './chunk-ZA2XWTGH.js';
2
+ import './chunk-RVQWJOEE.js';
3
3
  import './chunk-BFA32GOU.js';
4
- import './chunk-ZADTVRUO.js';
5
- import './chunk-BKHSQ4YM.js';
4
+ import './chunk-PVGWNF7V.js';
5
+ import './chunk-WTWGEB7K.js';
6
6
  import './chunk-CAFCLMPF.js';
7
7
  import './chunk-W4EJWLEO.js';
package/package.json CHANGED
@@ -1,7 +1,27 @@
1
1
  {
2
2
  "name": "@luxalgo/vela",
3
- "version": "0.7.6",
3
+ "version": "0.7.7",
4
4
  "description": "Open-source charting library with a native high-performance renderer, drawing tools, pluggable chart types and pluggable scripting engines.",
5
+ "keywords": [
6
+ "charting library",
7
+ "financial charts",
8
+ "trading charts",
9
+ "candlestick chart",
10
+ "stock chart",
11
+ "crypto chart",
12
+ "webgl",
13
+ "canvas",
14
+ "technical analysis",
15
+ "indicators",
16
+ "drawing tools",
17
+ "orderflow",
18
+ "pine script",
19
+ "pinets",
20
+ "lightweight-charts alternative",
21
+ "typescript",
22
+ "luxalgo",
23
+ "vela"
24
+ ],
5
25
  "license": "Apache-2.0",
6
26
  "homepage": "https://luxalgo.com/vela",
7
27
  "repository": {