@luxalgo/vela 0.6.21 → 0.7.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 (41) hide show
  1. package/dist/{DataProvider-Cb-2lC5O.d.ts → DataProvider-Bu9E5Zh5.d.ts} +1 -1
  2. package/dist/{DataProvider-UtWw2CgJ.d.cts → DataProvider-Ck2qyS_9.d.cts} +1 -1
  3. package/dist/{chunk-BRPFYKTT.js → chunk-A347YL2P.js} +30 -7
  4. package/dist/{chunk-TRZQQUTR.js → chunk-A4G64KVF.js} +1442 -126
  5. package/dist/{chunk-T5Z5YUCF.js → chunk-CZRNTHD6.js} +24 -2
  6. package/dist/{chunk-XCBJU674.js → chunk-UHXG5J7C.js} +1 -1
  7. package/dist/{contributions-D8HdlKmp.d.cts → contributions-BjQ7hyIx.d.ts} +108 -3
  8. package/dist/{contributions-FqIWhN4p.d.ts → contributions-Cv2Mutvn.d.cts} +108 -3
  9. package/dist/index.cjs +1465 -125
  10. package/dist/index.d.cts +76 -20
  11. package/dist/index.d.ts +76 -20
  12. package/dist/index.js +2 -2
  13. package/dist/{options-BCRmYALw.d.cts → options-ex2_gtKp.d.cts} +200 -12
  14. package/dist/{options-BCRmYALw.d.ts → options-ex2_gtKp.d.ts} +200 -12
  15. package/dist/{plugin-B4mnNAeh.d.ts → plugin-CiyhU7pi.d.ts} +3 -3
  16. package/dist/{plugin-Ccupy_BV.d.cts → plugin-absNH7Yn.d.cts} +3 -3
  17. package/dist/plugin.d.cts +4 -4
  18. package/dist/plugin.d.ts +4 -4
  19. package/dist/providers/binance.d.cts +2 -2
  20. package/dist/providers/binance.d.ts +2 -2
  21. package/dist/providers/coinbase.d.cts +2 -2
  22. package/dist/providers/coinbase.d.ts +2 -2
  23. package/dist/providers/hyperliquid.d.cts +2 -2
  24. package/dist/providers/hyperliquid.d.ts +2 -2
  25. package/dist/{statusline-model-CCP1zm_Z.d.ts → statusline-model-BXoU4Kua.d.ts} +8 -4
  26. package/dist/{statusline-model-E7CMw5pQ.d.cts → statusline-model-cRhPBLPO.d.cts} +8 -4
  27. package/dist/ui.cjs +24 -2
  28. package/dist/ui.d.cts +9 -3
  29. package/dist/ui.d.ts +9 -3
  30. package/dist/ui.js +2 -2
  31. package/dist/vela.global.js +1465 -125
  32. package/dist/vela.global.min.js +77 -53
  33. package/dist/widget.cjs +1490 -129
  34. package/dist/widget.d.cts +6 -6
  35. package/dist/widget.d.ts +6 -6
  36. package/dist/widget.js +5 -5
  37. package/dist/workspace.cjs +1490 -129
  38. package/dist/workspace.d.cts +8 -5
  39. package/dist/workspace.d.ts +8 -5
  40. package/dist/workspace.js +4 -4
  41. package/package.json +1 -1
@@ -495,6 +495,8 @@ interface IndicatorModel {
495
495
  native?: {
496
496
  type: string;
497
497
  };
498
+ /** `false` ⇒ no legend row and no pane listing for this indicator (host-owned chrome); absent ⇒ a row. */
499
+ legend?: boolean;
498
500
  /**
499
501
  * Value-axis override for the pane this indicator OWNS — declared by content that is
500
502
  * not value-mapped (e.g. a bespoke renderer layer painting in pixel bands), where a
@@ -626,6 +628,35 @@ type ScenePatch = ValuePatch | SchemaPatch;
626
628
  /** A function that detaches a previously-registered subscription. */
627
629
  type Unsubscribe = () => void;
628
630
 
631
+ /**
632
+ * A once-per-second wall-clock pulse. Every subscriber receives the SAME `now` for a
633
+ * given second, so chrome that displays time (a bottom-bar clock, a countdown-to-bar-close
634
+ * chip) can be driven from one source and never disagrees about which second it is.
635
+ */
636
+ interface WallClock {
637
+ /** Called shortly after every wall-clock second boundary with that instant (epoch ms). */
638
+ onTick(cb: (now: number) => void): Unsubscribe;
639
+ }
640
+ /**
641
+ * A {@link WallClock} aligned to the wall clock's second boundaries. Free-running
642
+ * `setInterval(1000)` timers start at an arbitrary sub-second phase and slide against
643
+ * each other, so two of them sample different seconds part of the time; this one
644
+ * re-arms a `setTimeout` to the NEXT boundary after every tick, so it fires just past
645
+ * `hh:mm:ss.000` regardless of when it was started or how long the callback took (a
646
+ * throttled background tab simply skips seconds — it never drifts). Runs only while it
647
+ * has subscribers: zero idle timers when nothing displays time.
648
+ */
649
+ declare class SecondClock implements WallClock {
650
+ private readonly now;
651
+ private readonly subs;
652
+ private timer;
653
+ constructor(now?: () => number);
654
+ onTick(cb: (now: number) => void): Unsubscribe;
655
+ /** Milliseconds from `now` to just past the next second boundary. */
656
+ static delayToNextSecond(now: number): number;
657
+ private arm;
658
+ }
659
+
629
660
  /**
630
661
  * Async series access for data-driven drawings — the ranged, any-timeframe sibling
631
662
  * of {@link Projector.barsInRange}. Painting stays synchronous: a read either serves
@@ -1164,6 +1195,103 @@ interface IDrawingsRendererPort {
1164
1195
  onDrawingIntent(cb: (intent: DrawingIntent) => void): Unsubscribe;
1165
1196
  }
1166
1197
 
1198
+ /** The built-in glyph outlines. */
1199
+ type MarkShape = 'circle' | 'square' | 'diamond' | 'pin';
1200
+ /**
1201
+ * How a mark looks on the lane: a colored token carrying either a short letter or a
1202
+ * registered icon (`registerIcon` from `vela/ui` — an id, never inline markup, so a mark
1203
+ * payload can come from data without ever carrying SVG). `icon` wins over `letter`
1204
+ * when both are given; the symbol's ink is auto-contrasted against `color`.
1205
+ */
1206
+ interface MarkGlyph {
1207
+ /** Token outline (default `'circle'`). */
1208
+ shape?: MarkShape;
1209
+ /** Token fill — any CSS color. */
1210
+ color: string;
1211
+ /** One or two characters drawn inside the token (`'D'`, `'E'`, `'!'`). */
1212
+ letter?: string;
1213
+ /** Icon id from the icon registry, drawn inside the token. */
1214
+ icon?: string;
1215
+ }
1216
+ /** One row of a structured panel — the callout vocabulary plus a label/value field. */
1217
+ type MarkPanelItem = {
1218
+ type: 'text';
1219
+ text: string;
1220
+ } | {
1221
+ type: 'field';
1222
+ label: string;
1223
+ value: string;
1224
+ } | {
1225
+ type: 'button';
1226
+ label: string;
1227
+ /** Emphasized (selection-colored) button — the panel's main action. */
1228
+ primary?: boolean;
1229
+ /** Close the popup after `run` (default true). */
1230
+ close?: boolean;
1231
+ run(): void;
1232
+ };
1233
+ /**
1234
+ * What the popup shows for one mark: plain text (escaped), HTML (sanitized through an
1235
+ * allowlist — scripts, styles, frames, event handlers and `javascript:` URLs never
1236
+ * reach the page), or a structured panel of rows and buttons.
1237
+ */
1238
+ type MarkContent = {
1239
+ text: string;
1240
+ } | {
1241
+ html: string;
1242
+ } | {
1243
+ panel: {
1244
+ items: MarkPanelItem[];
1245
+ };
1246
+ };
1247
+ /** A content value, or a thunk resolved when the popup needs it (details fetched on click). */
1248
+ type MarkContentSource = MarkContent | (() => MarkContent | Promise<MarkContent>);
1249
+ /** One timeline mark. */
1250
+ interface TimelineMark {
1251
+ /** Stable id — re-adding an id replaces the mark. */
1252
+ id: string;
1253
+ /**
1254
+ * The moment the mark belongs to, epoch-ms. The glyph never sits at this exact pixel:
1255
+ * it centers on the bar whose span contains the time (a time falling in a gap — a
1256
+ * weekend, a closed session — goes to the first bar that follows; one past the newest
1257
+ * bar projects onto the extrapolated grid in the right whitespace).
1258
+ */
1259
+ time: Millis;
1260
+ /** Popup heading — shown above the content whatever its form. */
1261
+ title?: string;
1262
+ glyph: MarkGlyph;
1263
+ /** Hover text on the glyph. */
1264
+ tooltip?: string;
1265
+ /**
1266
+ * The visibility group the mark belongs to (`'dividends'`, `'splits'`). Marks of one
1267
+ * group that land on the same bar cluster into one glyph; groups get a checkbox each
1268
+ * in the chart settings (the Events tab). Define the display label with
1269
+ * `chart.marks.defineGroup`; an undefined group shows its capitalized id.
1270
+ */
1271
+ group?: string;
1272
+ /** Popup content. Without it a click only emits `mark:click` — the host owns the UI. */
1273
+ content?: MarkContentSource;
1274
+ }
1275
+ /** A visibility group's presentation (see {@link TimelineMark.group}). */
1276
+ interface MarkGroup {
1277
+ id: string;
1278
+ /** The settings checkbox label (`'Dividends'`). */
1279
+ label: string;
1280
+ /** Default visibility before the user toggles it (default true). A persisted choice wins. */
1281
+ visible?: boolean;
1282
+ }
1283
+ /** The `mark:click` payload — every mark under the clicked glyph (a cluster lists them all). */
1284
+ interface MarkClickEvent {
1285
+ /** The cluster's first mark (earliest time, then insertion order). */
1286
+ id: string;
1287
+ /** Every mark in the clicked cluster, in cluster order. */
1288
+ ids: string[];
1289
+ /** The first mark's time, epoch-ms. */
1290
+ time: Millis;
1291
+ /** The cluster's group, when its marks belong to one. */
1292
+ group?: string;
1293
+ }
1294
+
1167
1295
  /** What a rendering backend supports — drives graceful degradation + warnings. */
1168
1296
  interface RendererCapabilities {
1169
1297
  panes: boolean;
@@ -1194,6 +1322,10 @@ interface RendererCapabilities {
1194
1322
  * ticks on the price pane, plus the `tradeMarkers` display feature. Absent/false ⇒ the
1195
1323
  * channel is carried through mounts/patches but never painted. */
1196
1324
  trades?: boolean;
1325
+ /** Timeline marks (`chart.marks`): host events pinned to a bar, painted as glyphs on a lane
1326
+ * above the time axis with a detail popup on click. Absent/false ⇒ the model still fills
1327
+ * (`chart.marks.all()`) but nothing paints. */
1328
+ timelineMarks?: boolean;
1197
1329
  /** Whether the renderer provides the in-chart inputs/settings UI. */
1198
1330
  inputsUI: boolean;
1199
1331
  }
@@ -1398,6 +1530,15 @@ interface IChartRenderer {
1398
1530
  * layers omits it.
1399
1531
  */
1400
1532
  setNativeData?(type: string, data: unknown): void;
1533
+ /**
1534
+ * Replace the timeline marks + their group definitions (the `chart.marks` model). The
1535
+ * renderer snaps each mark onto its bar, folds same-bar/same-group marks into clusters, and
1536
+ * paints the lane above the time axis; group visibility is its own display state (the
1537
+ * `marks` feature). Present iff `capabilities.timelineMarks`.
1538
+ */
1539
+ setTimelineMarks?(marks: readonly TimelineMark[], groups: readonly MarkGroup[]): void;
1540
+ /** A timeline-mark glyph was clicked — every mark of its cluster is listed. Present iff `capabilities.timelineMarks`. */
1541
+ onMarkClick?(cb: (e: MarkClickEvent) => void): Unsubscribe;
1401
1542
  /**
1402
1543
  * Reflect an indicator's live status in its legend row: `'loading'` (a fetch is in flight —
1403
1544
  * spinner), `'live'` (live-updating — a distinct pulse), or `'idle'` (nothing). Optional.
@@ -1624,6 +1765,13 @@ interface IChartRenderer {
1624
1765
  * pointer-first one. Optional — a renderer without adaptive chrome omits it.
1625
1766
  */
1626
1767
  setLayoutMode?(mode: 'mobile' | 'desktop'): void;
1768
+ /**
1769
+ * Drive the renderer's time-of-day displays (the countdown-to-bar-close chip) from the
1770
+ * HOST's second pulse instead of the renderer's own, so they read the same second as
1771
+ * the host's clock chrome. `null` restores the renderer's own pulse. Optional — a
1772
+ * renderer without time-of-day chrome omits it.
1773
+ */
1774
+ setWallClock?(clock: WallClock | null): void;
1627
1775
  /**
1628
1776
  * Interactive user-drawings surface. Present iff `capabilities.userDrawings`.
1629
1777
  * The core `DrawingController` drives it (commands down) and listens for
@@ -1735,10 +1883,12 @@ interface VelaOptions extends MarketConfig {
1735
1883
  * or force `'canvas2d'` / `'webgl2'`. Native renderer only. */
1736
1884
  nativeBackend?: NativeBackend;
1737
1885
  /** Native-renderer animations. `true`/`false` toggles all; an object configures
1738
- * each independently. Default: eased **zoom on**, inertial **pan on but snappy**
1739
- * (short glide), live-bar glide **off**. Set `{ pan: false }` for an instant pan
1740
- * with no momentum, `{ liveBar: true }` (or a duration in ms) to make the forming
1741
- * candle slide toward each live tick instead of snapping. */
1886
+ * each motion independently on/off, or its ease duration in ms. Default: eased
1887
+ * **zoom on**, inertial **pan on but snappy** (short glide), gliding **autoscale
1888
+ * on**, first-paint **reveal on**, live-bar glide **off**. Set `{ pan: false }` for an
1889
+ * instant pan with no momentum, `{ zoom: 150 }` for a slower zoom glide,
1890
+ * `{ liveBar: true }` (or a duration in ms) to make the forming candle slide toward
1891
+ * each live tick instead of snapping, `{ intro: false }` to skip the reveal. */
1742
1892
  animations?: boolean | AnimationConfig;
1743
1893
  /** Neon glow/bloom intensity for line series (0 = off, ~0.6 = strong). WebGL2 only
1744
1894
  * — the canvas2d backend ignores it. Default 0. */
@@ -1773,12 +1923,29 @@ interface SettingsVisibilityPolicy {
1773
1923
  /** Setting ids to hide — a tab, a group, or a row; an id hides its subtree. */
1774
1924
  hidden?: readonly string[];
1775
1925
  }
1776
- /** Per-feature native-renderer animation toggles. */
1926
+ /**
1927
+ * Per-feature native-renderer animation settings. Every eased motion takes
1928
+ * `boolean | number`: `false`/`0` = off (the motion is instant), `true` = the built-in
1929
+ * duration, a number = its ease time-constant in ms — the motion covers ~63% of the
1930
+ * remaining distance per time-constant and is visually settled after about three of
1931
+ * them (clamped to {@link ANIMATION_EASE_MAX_MS}).
1932
+ */
1777
1933
  interface AnimationConfig {
1778
- /** Eased cursor-anchored wheel-zoom (+ gliding autoscale while zooming). Default true. */
1779
- zoom?: boolean;
1780
- /** Inertial/kinetic pan — a short snappy glide after a drag-release. Default true. */
1781
- pan?: boolean;
1934
+ /** Eased cursor-anchored wheel-zoom: the bar spacing glides toward each wheel notch's
1935
+ * target instead of jumping. Default `true` ({@link ZOOM_EASE_DEFAULT_MS}). */
1936
+ zoom?: boolean | number;
1937
+ /** Inertial/kinetic pan — the velocity a drag releases with decays over this
1938
+ * time-constant (a short, snappy glide by default; `false` stops dead). Default
1939
+ * `true` ({@link PAN_INERTIA_DEFAULT_MS}). */
1940
+ pan?: boolean | number;
1941
+ /** The programmatic scroll glide — the scroll-to-latest button, `chart.panBy`, the
1942
+ * keyboard pan keys — easing the view toward its target at constant zoom. Default:
1943
+ * follows `pan` on/off, at {@link SCROLL_EASE_DEFAULT_MS} when on. */
1944
+ scroll?: boolean | number;
1945
+ /** Autoscale glide: while a zoom or fling is in flight the price scale eases toward
1946
+ * its new window instead of snapping every frame. Default `true`
1947
+ * ({@link AUTOSCALE_EASE_DEFAULT_MS}). */
1948
+ autoscale?: boolean | number;
1782
1949
  /** Glide of the forming bar: on a live tick the displayed high/low/close ease toward
1783
1950
  * the new values instead of snapping (the price line and axis label follow). `true`
1784
1951
  * uses the default duration ({@link LIVE_BAR_EASE_DEFAULT_MS}); a number is the ease
@@ -1786,6 +1953,24 @@ interface AnimationConfig {
1786
1953
  * {@link LIVE_BAR_EASE_MAX_MS}); `false`/`0` snaps. A new bar always snaps. Default
1787
1954
  * `false` — the painted candle is then never behind the real data. */
1788
1955
  liveBar?: boolean | number;
1956
+ /** The first-paint reveal: candles draw themselves in, left to right, when they first
1957
+ * appear. `true` = the default `'settle'` style (an overshoot that eases back);
1958
+ * `'grow'` = a plain ease-out; `false` = no reveal; an object picks the style and/or
1959
+ * the `duration` of the whole sweep in ms (default {@link INTRO_DURATION_DEFAULT_MS};
1960
+ * clamped to {@link INTRO_DURATION_MAX_MS}). Default `true`. */
1961
+ intro?: boolean | IntroStyle | IntroConfig;
1962
+ }
1963
+ /** The first-paint reveal styles: `settle` overshoots and eases back, `grow` eases out. */
1964
+ type IntroStyle = 'settle' | 'grow';
1965
+ /** Object form of `animations.intro` — style and/or sweep duration (ms). */
1966
+ interface IntroConfig {
1967
+ style?: IntroStyle;
1968
+ duration?: number;
1969
+ }
1970
+ /** A resolved `animations.intro`: `style: false` = no reveal. */
1971
+ interface IntroAnimation {
1972
+ style: IntroStyle | false;
1973
+ duration: number;
1789
1974
  }
1790
1975
  /** Native geometry-layer backend selection. */
1791
1976
  type NativeBackend = 'auto' | 'canvas2d' | 'webgl2';
@@ -1803,9 +1988,12 @@ interface RendererDisplayOptions {
1803
1988
  currentPriceLine: boolean;
1804
1989
  logScale: boolean;
1805
1990
  nativeBackend: NativeBackend;
1806
- animZoom: boolean;
1807
- animPan: boolean;
1991
+ animZoom: number;
1992
+ animPan: number;
1993
+ animScroll: number;
1994
+ animAutoscale: number;
1808
1995
  animLiveBar: number;
1996
+ animIntro: IntroAnimation;
1809
1997
  glow: number;
1810
1998
  upColor: string;
1811
1999
  downColor: string;
@@ -1860,4 +2048,4 @@ interface AddIndicatorOptions {
1860
2048
  title?: string;
1861
2049
  }
1862
2050
 
1863
- export { type DrawingExtend as $, type AxisLongPressEvent as A, type Background as B, type CrosshairEvent as C, Drawing as D, type BoxFontFamily as E, type BoxHAlign as F, type BoxTextSize as G, type BoxVAlign as H, type InputValue as I, type CandleBarColor as J, type CandleSeries as K, type LineStyle as L, type MarketConfig as M, type NativeBackend as N, type OHLCV as O, type PriceStyle as P, type CandleStyle as Q, type RendererCapabilities as R, type SerializedDrawing as S, type ThemeName as T, type Unsubscribe as U, type VisibleRangePreset as V, type DataWindowGroup as W, type DataWindowOHLC as X, type DataWindowRow as Y, type DirtyRange as Z, type DrawingBox as _, type VisibleRange as a, type DrawingIntent as a0, type DrawingLabel as a1, type DrawingLine as a2, type DrawingLinefill as a3, type DrawingMode as a4, type DrawingPoint as a5, type DrawingPolyline as a6, type DrawingSeriesBar as a7, type DrawingSeriesGateway as a8, type DrawingSeriesState as a9, type PriceLine as aA, type Projector as aB, type ProviderName as aC, type RendererConstructor as aD, type Scene as aE, type SchemaPatch as aF, type SeriesKind as aG, type SeriesPoint as aH, type SeriesSpec as aI, type SeriesValueDelta as aJ, type SettingsField as aK, type SettingsSchema as aL, type SettingsVisibilityPolicy as aM, type TableCell as aN, type TableMerge as aO, type TablePosition as aP, type ToolbarGroupConfig as aQ, type TradeExecution as aR, type ValuePatch as aS, buildToolbar as aT, defaultToolbar as aU, inputDeltas as aV, inputVisible as aW, type PaneInfo as aX, type DrawingStyle as aa, type DrawingTable as ab, type DrawingText as ac, type DrawingXLoc as ad, type DrawingsOption as ae, type Fill as af, type FillGradientStop as ag, type IndicatorMeta as ah, type InputCondition as ai, type InputSchema as aj, type InputType as ak, type InputWhen as al, type LabelStyle as am, type LabelYLoc as an, type LineLikeKind as ao, type LineLikeSeries as ap, type LineLikeStyle as aq, type MarkerPoint as ar, type MarkerSeries as as, type MarketSnapshot as at, type MarketSwitch as au, type PaneAxis as av, type PaneAxisBand as aw, type PaneHint as ax, type PaneKind as ay, type PolylinePoint as az, type VelaOptions as b, type VelaTheme as c, type MarketSession as d, type IChartRenderer as e, type RendererDisplayOptions as f, type IndicatorRenderHandle as g, type IndicatorStatus as h, type Pane as i, type PaneAction as j, type MoveTarget as k, type IndicatorModel as l, type ScenePatch as m, type SymbolPickerFn as n, type LegendActionView as o, type LegendCalloutView as p, type InputChangeEvent as q, type ClickEvent as r, type DataWindowReadout as s, type IDrawingsRendererPort as t, type Millis as u, type SnapMode as v, type DrawingTypeKey as w, type ToolbarDefinition as x, type AddIndicatorOptions as y, type AnimationConfig as z };
2051
+ export { type DataWindowOHLC as $, type AxisLongPressEvent as A, type ToolbarDefinition as B, type CrosshairEvent as C, Drawing as D, type AddIndicatorOptions as E, type AnimationConfig as F, type Background as G, type BoxFontFamily as H, type InputValue as I, type BoxHAlign as J, type BoxTextSize as K, type LineStyle as L, type MarketConfig as M, type NativeBackend as N, type OHLCV as O, type PriceStyle as P, type BoxVAlign as Q, type RendererCapabilities as R, type SerializedDrawing as S, type ThemeName as T, type Unsubscribe as U, type VisibleRangePreset as V, type WallClock as W, type CandleBarColor as X, type CandleSeries as Y, type CandleStyle as Z, type DataWindowGroup as _, type VisibleRange as a, type TableMerge as a$, type DataWindowRow as a0, type DirtyRange as a1, type DrawingBox as a2, type DrawingExtend as a3, type DrawingIntent as a4, type DrawingLabel as a5, type DrawingLine as a6, type DrawingLinefill as a7, type DrawingMode as a8, type DrawingPoint as a9, type MarkGlyph as aA, type MarkPanelItem as aB, type MarkShape as aC, type MarkerPoint as aD, type MarkerSeries as aE, type MarketSnapshot as aF, type MarketSwitch as aG, type PaneAxis as aH, type PaneAxisBand as aI, type PaneHint as aJ, type PaneKind as aK, type PolylinePoint as aL, type PriceLine as aM, type Projector as aN, type ProviderName as aO, type RendererConstructor as aP, type Scene as aQ, type SchemaPatch as aR, SecondClock as aS, type SeriesKind as aT, type SeriesPoint as aU, type SeriesSpec as aV, type SeriesValueDelta as aW, type SettingsField as aX, type SettingsSchema as aY, type SettingsVisibilityPolicy as aZ, type TableCell as a_, type DrawingPolyline as aa, type DrawingSeriesBar as ab, type DrawingSeriesGateway as ac, type DrawingSeriesState as ad, type DrawingStyle as ae, type DrawingTable as af, type DrawingText as ag, type DrawingXLoc as ah, type DrawingsOption as ai, type Fill as aj, type FillGradientStop as ak, type IndicatorMeta as al, type InputCondition as am, type InputSchema as an, type InputType as ao, type InputWhen as ap, type IntroAnimation as aq, type IntroConfig as ar, type IntroStyle as as, type LabelStyle as at, type LabelYLoc as au, type LineLikeKind as av, type LineLikeSeries as aw, type LineLikeStyle as ax, type MarkContent as ay, type MarkContentSource as az, type VelaOptions as b, type TablePosition as b0, type ToolbarGroupConfig as b1, type TradeExecution as b2, type ValuePatch as b3, buildToolbar as b4, defaultToolbar as b5, inputDeltas as b6, inputVisible as b7, type PaneInfo as b8, type VelaTheme as c, type MarketSession as d, type IChartRenderer as e, type RendererDisplayOptions as f, type IndicatorRenderHandle as g, type IndicatorStatus as h, type Pane as i, type PaneAction as j, type MoveTarget as k, type IndicatorModel as l, type ScenePatch as m, type SymbolPickerFn as n, type LegendActionView as o, type LegendCalloutView as p, type InputChangeEvent as q, type ClickEvent as r, type TimelineMark as s, type MarkGroup as t, type MarkClickEvent as u, type DataWindowReadout as v, type IDrawingsRendererPort as w, type Millis as x, type SnapMode as y, type DrawingTypeKey as z };
@@ -495,6 +495,8 @@ interface IndicatorModel {
495
495
  native?: {
496
496
  type: string;
497
497
  };
498
+ /** `false` ⇒ no legend row and no pane listing for this indicator (host-owned chrome); absent ⇒ a row. */
499
+ legend?: boolean;
498
500
  /**
499
501
  * Value-axis override for the pane this indicator OWNS — declared by content that is
500
502
  * not value-mapped (e.g. a bespoke renderer layer painting in pixel bands), where a
@@ -626,6 +628,35 @@ type ScenePatch = ValuePatch | SchemaPatch;
626
628
  /** A function that detaches a previously-registered subscription. */
627
629
  type Unsubscribe = () => void;
628
630
 
631
+ /**
632
+ * A once-per-second wall-clock pulse. Every subscriber receives the SAME `now` for a
633
+ * given second, so chrome that displays time (a bottom-bar clock, a countdown-to-bar-close
634
+ * chip) can be driven from one source and never disagrees about which second it is.
635
+ */
636
+ interface WallClock {
637
+ /** Called shortly after every wall-clock second boundary with that instant (epoch ms). */
638
+ onTick(cb: (now: number) => void): Unsubscribe;
639
+ }
640
+ /**
641
+ * A {@link WallClock} aligned to the wall clock's second boundaries. Free-running
642
+ * `setInterval(1000)` timers start at an arbitrary sub-second phase and slide against
643
+ * each other, so two of them sample different seconds part of the time; this one
644
+ * re-arms a `setTimeout` to the NEXT boundary after every tick, so it fires just past
645
+ * `hh:mm:ss.000` regardless of when it was started or how long the callback took (a
646
+ * throttled background tab simply skips seconds — it never drifts). Runs only while it
647
+ * has subscribers: zero idle timers when nothing displays time.
648
+ */
649
+ declare class SecondClock implements WallClock {
650
+ private readonly now;
651
+ private readonly subs;
652
+ private timer;
653
+ constructor(now?: () => number);
654
+ onTick(cb: (now: number) => void): Unsubscribe;
655
+ /** Milliseconds from `now` to just past the next second boundary. */
656
+ static delayToNextSecond(now: number): number;
657
+ private arm;
658
+ }
659
+
629
660
  /**
630
661
  * Async series access for data-driven drawings — the ranged, any-timeframe sibling
631
662
  * of {@link Projector.barsInRange}. Painting stays synchronous: a read either serves
@@ -1164,6 +1195,103 @@ interface IDrawingsRendererPort {
1164
1195
  onDrawingIntent(cb: (intent: DrawingIntent) => void): Unsubscribe;
1165
1196
  }
1166
1197
 
1198
+ /** The built-in glyph outlines. */
1199
+ type MarkShape = 'circle' | 'square' | 'diamond' | 'pin';
1200
+ /**
1201
+ * How a mark looks on the lane: a colored token carrying either a short letter or a
1202
+ * registered icon (`registerIcon` from `vela/ui` — an id, never inline markup, so a mark
1203
+ * payload can come from data without ever carrying SVG). `icon` wins over `letter`
1204
+ * when both are given; the symbol's ink is auto-contrasted against `color`.
1205
+ */
1206
+ interface MarkGlyph {
1207
+ /** Token outline (default `'circle'`). */
1208
+ shape?: MarkShape;
1209
+ /** Token fill — any CSS color. */
1210
+ color: string;
1211
+ /** One or two characters drawn inside the token (`'D'`, `'E'`, `'!'`). */
1212
+ letter?: string;
1213
+ /** Icon id from the icon registry, drawn inside the token. */
1214
+ icon?: string;
1215
+ }
1216
+ /** One row of a structured panel — the callout vocabulary plus a label/value field. */
1217
+ type MarkPanelItem = {
1218
+ type: 'text';
1219
+ text: string;
1220
+ } | {
1221
+ type: 'field';
1222
+ label: string;
1223
+ value: string;
1224
+ } | {
1225
+ type: 'button';
1226
+ label: string;
1227
+ /** Emphasized (selection-colored) button — the panel's main action. */
1228
+ primary?: boolean;
1229
+ /** Close the popup after `run` (default true). */
1230
+ close?: boolean;
1231
+ run(): void;
1232
+ };
1233
+ /**
1234
+ * What the popup shows for one mark: plain text (escaped), HTML (sanitized through an
1235
+ * allowlist — scripts, styles, frames, event handlers and `javascript:` URLs never
1236
+ * reach the page), or a structured panel of rows and buttons.
1237
+ */
1238
+ type MarkContent = {
1239
+ text: string;
1240
+ } | {
1241
+ html: string;
1242
+ } | {
1243
+ panel: {
1244
+ items: MarkPanelItem[];
1245
+ };
1246
+ };
1247
+ /** A content value, or a thunk resolved when the popup needs it (details fetched on click). */
1248
+ type MarkContentSource = MarkContent | (() => MarkContent | Promise<MarkContent>);
1249
+ /** One timeline mark. */
1250
+ interface TimelineMark {
1251
+ /** Stable id — re-adding an id replaces the mark. */
1252
+ id: string;
1253
+ /**
1254
+ * The moment the mark belongs to, epoch-ms. The glyph never sits at this exact pixel:
1255
+ * it centers on the bar whose span contains the time (a time falling in a gap — a
1256
+ * weekend, a closed session — goes to the first bar that follows; one past the newest
1257
+ * bar projects onto the extrapolated grid in the right whitespace).
1258
+ */
1259
+ time: Millis;
1260
+ /** Popup heading — shown above the content whatever its form. */
1261
+ title?: string;
1262
+ glyph: MarkGlyph;
1263
+ /** Hover text on the glyph. */
1264
+ tooltip?: string;
1265
+ /**
1266
+ * The visibility group the mark belongs to (`'dividends'`, `'splits'`). Marks of one
1267
+ * group that land on the same bar cluster into one glyph; groups get a checkbox each
1268
+ * in the chart settings (the Events tab). Define the display label with
1269
+ * `chart.marks.defineGroup`; an undefined group shows its capitalized id.
1270
+ */
1271
+ group?: string;
1272
+ /** Popup content. Without it a click only emits `mark:click` — the host owns the UI. */
1273
+ content?: MarkContentSource;
1274
+ }
1275
+ /** A visibility group's presentation (see {@link TimelineMark.group}). */
1276
+ interface MarkGroup {
1277
+ id: string;
1278
+ /** The settings checkbox label (`'Dividends'`). */
1279
+ label: string;
1280
+ /** Default visibility before the user toggles it (default true). A persisted choice wins. */
1281
+ visible?: boolean;
1282
+ }
1283
+ /** The `mark:click` payload — every mark under the clicked glyph (a cluster lists them all). */
1284
+ interface MarkClickEvent {
1285
+ /** The cluster's first mark (earliest time, then insertion order). */
1286
+ id: string;
1287
+ /** Every mark in the clicked cluster, in cluster order. */
1288
+ ids: string[];
1289
+ /** The first mark's time, epoch-ms. */
1290
+ time: Millis;
1291
+ /** The cluster's group, when its marks belong to one. */
1292
+ group?: string;
1293
+ }
1294
+
1167
1295
  /** What a rendering backend supports — drives graceful degradation + warnings. */
1168
1296
  interface RendererCapabilities {
1169
1297
  panes: boolean;
@@ -1194,6 +1322,10 @@ interface RendererCapabilities {
1194
1322
  * ticks on the price pane, plus the `tradeMarkers` display feature. Absent/false ⇒ the
1195
1323
  * channel is carried through mounts/patches but never painted. */
1196
1324
  trades?: boolean;
1325
+ /** Timeline marks (`chart.marks`): host events pinned to a bar, painted as glyphs on a lane
1326
+ * above the time axis with a detail popup on click. Absent/false ⇒ the model still fills
1327
+ * (`chart.marks.all()`) but nothing paints. */
1328
+ timelineMarks?: boolean;
1197
1329
  /** Whether the renderer provides the in-chart inputs/settings UI. */
1198
1330
  inputsUI: boolean;
1199
1331
  }
@@ -1398,6 +1530,15 @@ interface IChartRenderer {
1398
1530
  * layers omits it.
1399
1531
  */
1400
1532
  setNativeData?(type: string, data: unknown): void;
1533
+ /**
1534
+ * Replace the timeline marks + their group definitions (the `chart.marks` model). The
1535
+ * renderer snaps each mark onto its bar, folds same-bar/same-group marks into clusters, and
1536
+ * paints the lane above the time axis; group visibility is its own display state (the
1537
+ * `marks` feature). Present iff `capabilities.timelineMarks`.
1538
+ */
1539
+ setTimelineMarks?(marks: readonly TimelineMark[], groups: readonly MarkGroup[]): void;
1540
+ /** A timeline-mark glyph was clicked — every mark of its cluster is listed. Present iff `capabilities.timelineMarks`. */
1541
+ onMarkClick?(cb: (e: MarkClickEvent) => void): Unsubscribe;
1401
1542
  /**
1402
1543
  * Reflect an indicator's live status in its legend row: `'loading'` (a fetch is in flight —
1403
1544
  * spinner), `'live'` (live-updating — a distinct pulse), or `'idle'` (nothing). Optional.
@@ -1624,6 +1765,13 @@ interface IChartRenderer {
1624
1765
  * pointer-first one. Optional — a renderer without adaptive chrome omits it.
1625
1766
  */
1626
1767
  setLayoutMode?(mode: 'mobile' | 'desktop'): void;
1768
+ /**
1769
+ * Drive the renderer's time-of-day displays (the countdown-to-bar-close chip) from the
1770
+ * HOST's second pulse instead of the renderer's own, so they read the same second as
1771
+ * the host's clock chrome. `null` restores the renderer's own pulse. Optional — a
1772
+ * renderer without time-of-day chrome omits it.
1773
+ */
1774
+ setWallClock?(clock: WallClock | null): void;
1627
1775
  /**
1628
1776
  * Interactive user-drawings surface. Present iff `capabilities.userDrawings`.
1629
1777
  * The core `DrawingController` drives it (commands down) and listens for
@@ -1735,10 +1883,12 @@ interface VelaOptions extends MarketConfig {
1735
1883
  * or force `'canvas2d'` / `'webgl2'`. Native renderer only. */
1736
1884
  nativeBackend?: NativeBackend;
1737
1885
  /** Native-renderer animations. `true`/`false` toggles all; an object configures
1738
- * each independently. Default: eased **zoom on**, inertial **pan on but snappy**
1739
- * (short glide), live-bar glide **off**. Set `{ pan: false }` for an instant pan
1740
- * with no momentum, `{ liveBar: true }` (or a duration in ms) to make the forming
1741
- * candle slide toward each live tick instead of snapping. */
1886
+ * each motion independently on/off, or its ease duration in ms. Default: eased
1887
+ * **zoom on**, inertial **pan on but snappy** (short glide), gliding **autoscale
1888
+ * on**, first-paint **reveal on**, live-bar glide **off**. Set `{ pan: false }` for an
1889
+ * instant pan with no momentum, `{ zoom: 150 }` for a slower zoom glide,
1890
+ * `{ liveBar: true }` (or a duration in ms) to make the forming candle slide toward
1891
+ * each live tick instead of snapping, `{ intro: false }` to skip the reveal. */
1742
1892
  animations?: boolean | AnimationConfig;
1743
1893
  /** Neon glow/bloom intensity for line series (0 = off, ~0.6 = strong). WebGL2 only
1744
1894
  * — the canvas2d backend ignores it. Default 0. */
@@ -1773,12 +1923,29 @@ interface SettingsVisibilityPolicy {
1773
1923
  /** Setting ids to hide — a tab, a group, or a row; an id hides its subtree. */
1774
1924
  hidden?: readonly string[];
1775
1925
  }
1776
- /** Per-feature native-renderer animation toggles. */
1926
+ /**
1927
+ * Per-feature native-renderer animation settings. Every eased motion takes
1928
+ * `boolean | number`: `false`/`0` = off (the motion is instant), `true` = the built-in
1929
+ * duration, a number = its ease time-constant in ms — the motion covers ~63% of the
1930
+ * remaining distance per time-constant and is visually settled after about three of
1931
+ * them (clamped to {@link ANIMATION_EASE_MAX_MS}).
1932
+ */
1777
1933
  interface AnimationConfig {
1778
- /** Eased cursor-anchored wheel-zoom (+ gliding autoscale while zooming). Default true. */
1779
- zoom?: boolean;
1780
- /** Inertial/kinetic pan — a short snappy glide after a drag-release. Default true. */
1781
- pan?: boolean;
1934
+ /** Eased cursor-anchored wheel-zoom: the bar spacing glides toward each wheel notch's
1935
+ * target instead of jumping. Default `true` ({@link ZOOM_EASE_DEFAULT_MS}). */
1936
+ zoom?: boolean | number;
1937
+ /** Inertial/kinetic pan — the velocity a drag releases with decays over this
1938
+ * time-constant (a short, snappy glide by default; `false` stops dead). Default
1939
+ * `true` ({@link PAN_INERTIA_DEFAULT_MS}). */
1940
+ pan?: boolean | number;
1941
+ /** The programmatic scroll glide — the scroll-to-latest button, `chart.panBy`, the
1942
+ * keyboard pan keys — easing the view toward its target at constant zoom. Default:
1943
+ * follows `pan` on/off, at {@link SCROLL_EASE_DEFAULT_MS} when on. */
1944
+ scroll?: boolean | number;
1945
+ /** Autoscale glide: while a zoom or fling is in flight the price scale eases toward
1946
+ * its new window instead of snapping every frame. Default `true`
1947
+ * ({@link AUTOSCALE_EASE_DEFAULT_MS}). */
1948
+ autoscale?: boolean | number;
1782
1949
  /** Glide of the forming bar: on a live tick the displayed high/low/close ease toward
1783
1950
  * the new values instead of snapping (the price line and axis label follow). `true`
1784
1951
  * uses the default duration ({@link LIVE_BAR_EASE_DEFAULT_MS}); a number is the ease
@@ -1786,6 +1953,24 @@ interface AnimationConfig {
1786
1953
  * {@link LIVE_BAR_EASE_MAX_MS}); `false`/`0` snaps. A new bar always snaps. Default
1787
1954
  * `false` — the painted candle is then never behind the real data. */
1788
1955
  liveBar?: boolean | number;
1956
+ /** The first-paint reveal: candles draw themselves in, left to right, when they first
1957
+ * appear. `true` = the default `'settle'` style (an overshoot that eases back);
1958
+ * `'grow'` = a plain ease-out; `false` = no reveal; an object picks the style and/or
1959
+ * the `duration` of the whole sweep in ms (default {@link INTRO_DURATION_DEFAULT_MS};
1960
+ * clamped to {@link INTRO_DURATION_MAX_MS}). Default `true`. */
1961
+ intro?: boolean | IntroStyle | IntroConfig;
1962
+ }
1963
+ /** The first-paint reveal styles: `settle` overshoots and eases back, `grow` eases out. */
1964
+ type IntroStyle = 'settle' | 'grow';
1965
+ /** Object form of `animations.intro` — style and/or sweep duration (ms). */
1966
+ interface IntroConfig {
1967
+ style?: IntroStyle;
1968
+ duration?: number;
1969
+ }
1970
+ /** A resolved `animations.intro`: `style: false` = no reveal. */
1971
+ interface IntroAnimation {
1972
+ style: IntroStyle | false;
1973
+ duration: number;
1789
1974
  }
1790
1975
  /** Native geometry-layer backend selection. */
1791
1976
  type NativeBackend = 'auto' | 'canvas2d' | 'webgl2';
@@ -1803,9 +1988,12 @@ interface RendererDisplayOptions {
1803
1988
  currentPriceLine: boolean;
1804
1989
  logScale: boolean;
1805
1990
  nativeBackend: NativeBackend;
1806
- animZoom: boolean;
1807
- animPan: boolean;
1991
+ animZoom: number;
1992
+ animPan: number;
1993
+ animScroll: number;
1994
+ animAutoscale: number;
1808
1995
  animLiveBar: number;
1996
+ animIntro: IntroAnimation;
1809
1997
  glow: number;
1810
1998
  upColor: string;
1811
1999
  downColor: string;
@@ -1860,4 +2048,4 @@ interface AddIndicatorOptions {
1860
2048
  title?: string;
1861
2049
  }
1862
2050
 
1863
- export { type DrawingExtend as $, type AxisLongPressEvent as A, type Background as B, type CrosshairEvent as C, Drawing as D, type BoxFontFamily as E, type BoxHAlign as F, type BoxTextSize as G, type BoxVAlign as H, type InputValue as I, type CandleBarColor as J, type CandleSeries as K, type LineStyle as L, type MarketConfig as M, type NativeBackend as N, type OHLCV as O, type PriceStyle as P, type CandleStyle as Q, type RendererCapabilities as R, type SerializedDrawing as S, type ThemeName as T, type Unsubscribe as U, type VisibleRangePreset as V, type DataWindowGroup as W, type DataWindowOHLC as X, type DataWindowRow as Y, type DirtyRange as Z, type DrawingBox as _, type VisibleRange as a, type DrawingIntent as a0, type DrawingLabel as a1, type DrawingLine as a2, type DrawingLinefill as a3, type DrawingMode as a4, type DrawingPoint as a5, type DrawingPolyline as a6, type DrawingSeriesBar as a7, type DrawingSeriesGateway as a8, type DrawingSeriesState as a9, type PriceLine as aA, type Projector as aB, type ProviderName as aC, type RendererConstructor as aD, type Scene as aE, type SchemaPatch as aF, type SeriesKind as aG, type SeriesPoint as aH, type SeriesSpec as aI, type SeriesValueDelta as aJ, type SettingsField as aK, type SettingsSchema as aL, type SettingsVisibilityPolicy as aM, type TableCell as aN, type TableMerge as aO, type TablePosition as aP, type ToolbarGroupConfig as aQ, type TradeExecution as aR, type ValuePatch as aS, buildToolbar as aT, defaultToolbar as aU, inputDeltas as aV, inputVisible as aW, type PaneInfo as aX, type DrawingStyle as aa, type DrawingTable as ab, type DrawingText as ac, type DrawingXLoc as ad, type DrawingsOption as ae, type Fill as af, type FillGradientStop as ag, type IndicatorMeta as ah, type InputCondition as ai, type InputSchema as aj, type InputType as ak, type InputWhen as al, type LabelStyle as am, type LabelYLoc as an, type LineLikeKind as ao, type LineLikeSeries as ap, type LineLikeStyle as aq, type MarkerPoint as ar, type MarkerSeries as as, type MarketSnapshot as at, type MarketSwitch as au, type PaneAxis as av, type PaneAxisBand as aw, type PaneHint as ax, type PaneKind as ay, type PolylinePoint as az, type VelaOptions as b, type VelaTheme as c, type MarketSession as d, type IChartRenderer as e, type RendererDisplayOptions as f, type IndicatorRenderHandle as g, type IndicatorStatus as h, type Pane as i, type PaneAction as j, type MoveTarget as k, type IndicatorModel as l, type ScenePatch as m, type SymbolPickerFn as n, type LegendActionView as o, type LegendCalloutView as p, type InputChangeEvent as q, type ClickEvent as r, type DataWindowReadout as s, type IDrawingsRendererPort as t, type Millis as u, type SnapMode as v, type DrawingTypeKey as w, type ToolbarDefinition as x, type AddIndicatorOptions as y, type AnimationConfig as z };
2051
+ export { type DataWindowOHLC as $, type AxisLongPressEvent as A, type ToolbarDefinition as B, type CrosshairEvent as C, Drawing as D, type AddIndicatorOptions as E, type AnimationConfig as F, type Background as G, type BoxFontFamily as H, type InputValue as I, type BoxHAlign as J, type BoxTextSize as K, type LineStyle as L, type MarketConfig as M, type NativeBackend as N, type OHLCV as O, type PriceStyle as P, type BoxVAlign as Q, type RendererCapabilities as R, type SerializedDrawing as S, type ThemeName as T, type Unsubscribe as U, type VisibleRangePreset as V, type WallClock as W, type CandleBarColor as X, type CandleSeries as Y, type CandleStyle as Z, type DataWindowGroup as _, type VisibleRange as a, type TableMerge as a$, type DataWindowRow as a0, type DirtyRange as a1, type DrawingBox as a2, type DrawingExtend as a3, type DrawingIntent as a4, type DrawingLabel as a5, type DrawingLine as a6, type DrawingLinefill as a7, type DrawingMode as a8, type DrawingPoint as a9, type MarkGlyph as aA, type MarkPanelItem as aB, type MarkShape as aC, type MarkerPoint as aD, type MarkerSeries as aE, type MarketSnapshot as aF, type MarketSwitch as aG, type PaneAxis as aH, type PaneAxisBand as aI, type PaneHint as aJ, type PaneKind as aK, type PolylinePoint as aL, type PriceLine as aM, type Projector as aN, type ProviderName as aO, type RendererConstructor as aP, type Scene as aQ, type SchemaPatch as aR, SecondClock as aS, type SeriesKind as aT, type SeriesPoint as aU, type SeriesSpec as aV, type SeriesValueDelta as aW, type SettingsField as aX, type SettingsSchema as aY, type SettingsVisibilityPolicy as aZ, type TableCell as a_, type DrawingPolyline as aa, type DrawingSeriesBar as ab, type DrawingSeriesGateway as ac, type DrawingSeriesState as ad, type DrawingStyle as ae, type DrawingTable as af, type DrawingText as ag, type DrawingXLoc as ah, type DrawingsOption as ai, type Fill as aj, type FillGradientStop as ak, type IndicatorMeta as al, type InputCondition as am, type InputSchema as an, type InputType as ao, type InputWhen as ap, type IntroAnimation as aq, type IntroConfig as ar, type IntroStyle as as, type LabelStyle as at, type LabelYLoc as au, type LineLikeKind as av, type LineLikeSeries as aw, type LineLikeStyle as ax, type MarkContent as ay, type MarkContentSource as az, type VelaOptions as b, type TablePosition as b0, type ToolbarGroupConfig as b1, type TradeExecution as b2, type ValuePatch as b3, buildToolbar as b4, defaultToolbar as b5, inputDeltas as b6, inputVisible as b7, type PaneInfo as b8, type VelaTheme as c, type MarketSession as d, type IChartRenderer as e, type RendererDisplayOptions as f, type IndicatorRenderHandle as g, type IndicatorStatus as h, type Pane as i, type PaneAction as j, type MoveTarget as k, type IndicatorModel as l, type ScenePatch as m, type SymbolPickerFn as n, type LegendActionView as o, type LegendCalloutView as p, type InputChangeEvent as q, type ClickEvent as r, type TimelineMark as s, type MarkGroup as t, type MarkClickEvent as u, type DataWindowReadout as v, type IDrawingsRendererPort as w, type Millis as x, type SnapMode as y, type DrawingTypeKey as z };
@@ -1,9 +1,9 @@
1
- import { w as DrawingTypeKey, aa as DrawingStyle, S as SerializedDrawing, D as Drawing, aG as SeriesKind, O as OHLCV, c as VelaTheme } from './options-BCRmYALw.js';
2
- import { c as DataControl } from './contributions-FqIWhN4p.js';
1
+ import { z as DrawingTypeKey, ae as DrawingStyle, S as SerializedDrawing, D as Drawing, aT as SeriesKind, O as OHLCV, c as VelaTheme } from './options-ex2_gtKp.js';
2
+ import { c as DataControl } from './contributions-BjQ7hyIx.js';
3
3
  import './side-panel-HF0IAzwf.js';
4
4
  import './icons-BZYbJXSV.js';
5
5
  import './keymap-CGOz5F5f.js';
6
- import './DataProvider-Cb-2lC5O.js';
6
+ import './DataProvider-Bu9E5Zh5.js';
7
7
 
8
8
  /** What a drawing type contributes to the toolbar + factory (renderer-neutral). */
9
9
  interface DrawingTypeMeta {
@@ -1,9 +1,9 @@
1
- import { w as DrawingTypeKey, aa as DrawingStyle, S as SerializedDrawing, D as Drawing, aG as SeriesKind, O as OHLCV, c as VelaTheme } from './options-BCRmYALw.cjs';
2
- import { c as DataControl } from './contributions-D8HdlKmp.cjs';
1
+ import { z as DrawingTypeKey, ae as DrawingStyle, S as SerializedDrawing, D as Drawing, aT as SeriesKind, O as OHLCV, c as VelaTheme } from './options-ex2_gtKp.cjs';
2
+ import { c as DataControl } from './contributions-Cv2Mutvn.cjs';
3
3
  import './side-panel-HF0IAzwf.cjs';
4
4
  import './icons-BZYbJXSV.cjs';
5
5
  import './keymap-CGOz5F5f.cjs';
6
- import './DataProvider-UtWw2CgJ.cjs';
6
+ import './DataProvider-Ck2qyS_9.cjs';
7
7
 
8
8
  /** What a drawing type contributes to the toolbar + factory (renderer-neutral). */
9
9
  interface DrawingTypeMeta {