@luxalgo/vela 0.5.0 → 0.5.2

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-Dzd-Erlk.d.ts → DataProvider-DTOEXKTI.d.ts} +1 -1
  2. package/dist/{DataProvider-DKNDHpNv.d.cts → DataProvider-gnzv-dgc.d.cts} +1 -1
  3. package/dist/{chunk-KM6LHB3Y.js → chunk-ATPU5CI6.js} +6 -1
  4. package/dist/{chunk-7UFX5ZIG.js → chunk-B5TIKQJ5.js} +65 -7
  5. package/dist/{chunk-GYD2THPV.js → chunk-LJLZR44Y.js} +9 -2
  6. package/dist/{chunk-RHIDOUFL.js → chunk-P556H6EA.js} +329 -10
  7. package/dist/{chunk-KCCZNKH7.js → chunk-RRFGWZNJ.js} +1915 -367
  8. package/dist/{chunk-OVQKKXLZ.js → chunk-Y7TK4ZWK.js} +1810 -153
  9. package/dist/{contributions-o1GRKPI_.d.cts → contributions-Ci_i3IN2.d.cts} +77 -31
  10. package/dist/{contributions-hX3EUyjG.d.ts → contributions-b6AVrqqG.d.ts} +77 -31
  11. package/dist/{history-LJkz4-sS.d.cts → history-Cf1lVsap.d.cts} +22 -5
  12. package/dist/{history-Dzxz-MQj.d.ts → history-Ci3M0xLV.d.ts} +22 -5
  13. package/dist/index.cjs +2010 -397
  14. package/dist/index.d.cts +83 -25
  15. package/dist/index.d.ts +83 -25
  16. package/dist/index.js +4 -4
  17. package/dist/{options-Q-576hIi.d.cts → options-XTBpbx0s.d.cts} +61 -1
  18. package/dist/{options-Q-576hIi.d.ts → options-XTBpbx0s.d.ts} +61 -1
  19. package/dist/{plugin-aGUD1epn.d.ts → plugin-CnNd7cuF.d.ts} +305 -8
  20. package/dist/{plugin-D94muTV-.d.cts → plugin-DfH4Y-Om.d.cts} +305 -8
  21. package/dist/plugin.cjs +58 -7
  22. package/dist/plugin.d.cts +4 -4
  23. package/dist/plugin.d.ts +4 -4
  24. package/dist/plugin.js +2 -2
  25. package/dist/providers/binance.d.cts +2 -2
  26. package/dist/providers/binance.d.ts +2 -2
  27. package/dist/providers/coinbase.d.cts +2 -2
  28. package/dist/providers/coinbase.d.ts +2 -2
  29. package/dist/providers/hyperliquid.d.cts +2 -2
  30. package/dist/providers/hyperliquid.d.ts +2 -2
  31. package/dist/ui.cjs +342 -9
  32. package/dist/ui.d.cts +64 -2
  33. package/dist/ui.d.ts +64 -2
  34. package/dist/ui.js +3 -3
  35. package/dist/vela.global.js +2010 -397
  36. package/dist/vela.global.min.js +115 -34
  37. package/dist/widget.cjs +5987 -2242
  38. package/dist/widget.d.cts +89 -17
  39. package/dist/widget.d.ts +89 -17
  40. package/dist/widget.js +169 -18
  41. package/dist/workspace.cjs +5627 -1587
  42. package/dist/workspace.d.cts +106 -12
  43. package/dist/workspace.d.ts +106 -12
  44. package/dist/workspace.js +494 -52
  45. package/package.json +1 -1
@@ -420,7 +420,13 @@ type PaneHint = 'price' | 'new';
420
420
  interface IndicatorModel {
421
421
  /** Per-instance id (stable). */
422
422
  id: string;
423
+ /** Full display name (settings dialog, object tree, inspect). */
423
424
  title: string;
425
+ /**
426
+ * Compact legend label when the full {@link title} is too long for the chip.
427
+ * Absent ⇒ the legend uses {@link title}. Mirrors Pine `indicator(..., shorttitle=)`.
428
+ */
429
+ shorttitle?: string;
424
430
  overlay: boolean;
425
431
  paneHint: PaneHint;
426
432
  /**
@@ -885,6 +891,15 @@ type DrawingMode = 'measure' | 'eraser' | null;
885
891
  type DrawingIntent = {
886
892
  kind: 'arm';
887
893
  type: DrawingTypeKey | null;
894
+ }
895
+ /** Placement in progress: the ghost's current shape after every anchor click and
896
+ * cursor move; `null` when placement ends (finalized OR cancelled). No store
897
+ * mutation — the core only re-emits it (`drawing:draft`) so a multi-chart host
898
+ * can mirror the ghost live. Optional — a renderer that never emits it simply
899
+ * syncs at completion. */
900
+ | {
901
+ kind: 'draft';
902
+ doc: SerializedDrawing | null;
888
903
  } | {
889
904
  kind: 'create';
890
905
  doc: SerializedDrawing;
@@ -978,6 +993,11 @@ interface IDrawingsRendererPort {
978
993
  setMode?(mode: DrawingMode): void;
979
994
  /** Open a drawing's settings popup (selecting it too) — the programmatic twin of a click on it. */
980
995
  openSettings(id: string): void;
996
+ /** Display another chart's in-progress placement as a GHOST at reduced opacity
997
+ * (`null` clears it) — the drawings-sync twin of `setExternalCrosshair`. Never a
998
+ * store drawing: no selection, no hit-testing, no persistence. Optional — a
999
+ * renderer without it simply never previews remote placements. */
1000
+ setExternalGhost?(doc: SerializedDrawing | null): void;
981
1001
  /**
982
1002
  * The pane's SERIES stack in z terms, for renderers whose drawings share one draw-order
983
1003
  * space with the series (`drawingDepth`): the extremes ("bring to front" beats `front`,
@@ -1057,7 +1077,14 @@ interface CrosshairOHLC {
1057
1077
  }
1058
1078
  interface CrosshairEvent {
1059
1079
  time: Millis | null;
1080
+ /** Value at the cursor on ITS pane's scale — a price on the price pane, an
1081
+ * indicator value on a study pane (which one: see {@link paneKind}). */
1060
1082
  price: number | null;
1083
+ /** The kind of pane the cursor (and thus `price`) is on — how a consumer tells a
1084
+ * real price from a study-pane value (e.g. crosshair sync only mirrors the
1085
+ * horizontal level from the price pane). Optional and additive: a renderer that
1086
+ * doesn't track panes omits it. */
1087
+ paneKind?: 'price' | 'study' | null;
1061
1088
  /** Value at the crosshair per series, keyed by stable series id. */
1062
1089
  values: ReadonlyMap<string, number>;
1063
1090
  /** The hovered price bar's OHLCV (null when the cursor is off any bar). */
@@ -1067,6 +1094,13 @@ interface ClickEvent {
1067
1094
  time: Millis | null;
1068
1095
  price: number | null;
1069
1096
  }
1097
+ /** A touch long-press on an axis strip — the mobile substitute for a right-click menu. */
1098
+ interface AxisLongPressEvent {
1099
+ axis: 'price' | 'time';
1100
+ /** Plot-local pixel of the press (y maps a multi-pane price scale to its pane). */
1101
+ x: number;
1102
+ y: number;
1103
+ }
1070
1104
  /** One indicator plot's readout line in the data window. */
1071
1105
  interface DataWindowRow {
1072
1106
  label: string;
@@ -1238,6 +1272,22 @@ interface IChartRenderer {
1238
1272
  * renderer without it simply never shows contributed legend actions.
1239
1273
  */
1240
1274
  setLegendActions?(provider: ((indicatorId: string) => LegendActionView[]) | null): void;
1275
+ /**
1276
+ * Replace the indicator legend's fold toggle with a HOST action (or restore it with
1277
+ * null): the chip stays — a list glyph plus the indicator count — but pressing it
1278
+ * runs the action instead of unfolding the rows, which stay hidden while the
1279
+ * override is in force. Multi-chart shells route it to their indicator overview
1280
+ * (e.g. an object-tree panel), where per-indicator controls live instead. Optional —
1281
+ * a renderer without a foldable legend omits it.
1282
+ */
1283
+ setLegendOverviewAction?(action: (() => void) | null): void;
1284
+ /**
1285
+ * Open the settings dialog of one mounted indicator — the programmatic twin of the
1286
+ * legend row's gear button, for host chrome that reaches indicators outside the
1287
+ * legend (an object tree's action menu). Silent no-op for an unknown id. Optional —
1288
+ * a renderer without per-indicator settings UI omits it.
1289
+ */
1290
+ openIndicatorSettings?(indicatorId: string): void;
1241
1291
  /**
1242
1292
  * Hide (`false`) or show (`true`) a mounted indicator's visuals while keeping its legend row
1243
1293
  * (marked hidden). Optional — a renderer that can't suppress an indicator omits it (and the
@@ -1261,6 +1311,9 @@ interface IChartRenderer {
1261
1311
  onToggleIndicatorVisible?(cb: (id: string, visible: boolean) => void): Unsubscribe;
1262
1312
  onCrosshairMove(cb: (e: CrosshairEvent) => void): Unsubscribe;
1263
1313
  onClick(cb: (e: ClickEvent) => void): Unsubscribe;
1314
+ /** Touch long-press on a price or time axis strip. Optional — a renderer without
1315
+ * touch axis gestures omits it; host chrome (timezone / price-scale sheets) keys off it. */
1316
+ onAxisLongPress?(cb: (e: AxisLongPressEvent) => void): Unsubscribe;
1264
1317
  /**
1265
1318
  * Display an EXTERNAL crosshair at a data-space position — a ghost marker driven by
1266
1319
  * another chart (multi-chart crosshair sync), not by this chart's own pointer.
@@ -1348,6 +1401,13 @@ interface IChartRenderer {
1348
1401
  title: string;
1349
1402
  rows: readonly unknown[];
1350
1403
  }>): void;
1404
+ /**
1405
+ * The host shell's chrome size class. `'mobile'` asks the renderer's own chrome
1406
+ * (dialogs, toolbars, buttons) for its touch-first presentation — fullscreen
1407
+ * dialogs, no hover-gated affordances; `'desktop'` (the default) keeps the
1408
+ * pointer-first one. Optional — a renderer without adaptive chrome omits it.
1409
+ */
1410
+ setLayoutMode?(mode: 'mobile' | 'desktop'): void;
1351
1411
  /**
1352
1412
  * Interactive user-drawings surface. Present iff `capabilities.userDrawings`.
1353
1413
  * The core `DrawingController` drives it (commands down) and listens for
@@ -1542,4 +1602,4 @@ interface AddIndicatorOptions {
1542
1602
  title?: string;
1543
1603
  }
1544
1604
 
1545
- export { type DrawingLinefill as $, type AddIndicatorOptions as A, type Background as B, type CrosshairEvent as C, Drawing as D, type CandleBarColor as E, type CandleSeries as F, type CandleStyle as G, type DataWindowGroup as H, type IChartRenderer as I, type DataWindowOHLC as J, type DataWindowRow as K, type LineStyle as L, type MarketConfig as M, type NativeBackend as N, type OHLCV as O, type PriceStyle as P, type DirtyRange as Q, type RendererCapabilities as R, type SerializedDrawing as S, type ThemeName as T, type Unsubscribe as U, type VisibleRangePreset as V, type DrawingBox as W, type DrawingExtend as X, type DrawingIntent as Y, type DrawingLabel as Z, type DrawingLine as _, type VisibleRange as a, type DrawingMode as a0, type DrawingPoint as a1, type DrawingPolyline as a2, type DrawingStyle as a3, type DrawingTable as a4, type DrawingText as a5, type DrawingXLoc as a6, type DrawingsOption as a7, type Fill as a8, type FillGradientStop as a9, type SettingsSchema as aA, type TableCell as aB, type TableMerge as aC, type TablePosition as aD, type ToolbarGroupConfig as aE, type TradeExecution as aF, type ValuePatch as aG, buildToolbar as aH, defaultToolbar as aI, type PaneInfo as aJ, type IndicatorMeta as aa, type InputSchema as ab, type InputType as ac, type LabelStyle as ad, type LabelYLoc as ae, type LineLikeKind as af, type LineLikeSeries as ag, type LineLikeStyle as ah, type MarkerPoint as ai, type MarkerSeries as aj, type MarketSnapshot as ak, type MarketSwitch as al, type PaneHint as am, type PaneKind as an, type PolylinePoint as ao, type PriceLine as ap, type Projector as aq, type ProviderName as ar, type RendererConstructor as as, type Scene as at, type SchemaPatch as au, type SeriesKind as av, type SeriesPoint as aw, type SeriesSpec as ax, type SeriesValueDelta as ay, type SettingsField as az, type VelaOptions as b, type VelaTheme as c, type RendererDisplayOptions as d, type IndicatorRenderHandle as e, type IndicatorStatus as f, type Pane as g, type PaneAction as h, type MoveTarget as i, type IndicatorModel as j, type ScenePatch as k, type InputValue as l, type SymbolPickerFn as m, type LegendActionView as n, type InputChangeEvent as o, type ClickEvent as p, type DataWindowReadout as q, type IDrawingsRendererPort as r, type Millis as s, type SnapMode as t, type DrawingTypeKey as u, type ToolbarDefinition as v, type BoxFontFamily as w, type BoxHAlign as x, type BoxTextSize as y, type BoxVAlign as z };
1605
+ export { type DrawingLine as $, type AxisLongPressEvent as A, type Background as B, type CrosshairEvent as C, Drawing as D, type BoxVAlign as E, type CandleBarColor as F, type CandleSeries as G, type CandleStyle as H, type IChartRenderer as I, type DataWindowGroup as J, type DataWindowOHLC as K, type LineStyle as L, type MarketConfig as M, type NativeBackend as N, type OHLCV as O, type PriceStyle as P, type DataWindowRow as Q, type RendererCapabilities as R, type SerializedDrawing as S, type ThemeName as T, type Unsubscribe as U, type VisibleRangePreset as V, type DirtyRange as W, type DrawingBox as X, type DrawingExtend as Y, type DrawingIntent as Z, type DrawingLabel as _, type VisibleRange as a, type DrawingLinefill as a0, type DrawingMode as a1, type DrawingPoint as a2, type DrawingPolyline as a3, type DrawingStyle as a4, type DrawingTable as a5, type DrawingText as a6, type DrawingXLoc as a7, type DrawingsOption as a8, type Fill as a9, type SettingsField as aA, type SettingsSchema as aB, type TableCell as aC, type TableMerge as aD, type TablePosition as aE, type ToolbarGroupConfig as aF, type TradeExecution as aG, type ValuePatch as aH, buildToolbar as aI, defaultToolbar as aJ, type PaneInfo as aK, type FillGradientStop as aa, type IndicatorMeta as ab, type InputSchema as ac, type InputType as ad, type LabelStyle as ae, type LabelYLoc as af, type LineLikeKind as ag, type LineLikeSeries as ah, type LineLikeStyle as ai, type MarkerPoint as aj, type MarkerSeries as ak, type MarketSnapshot as al, type MarketSwitch as am, type PaneHint as an, type PaneKind as ao, type PolylinePoint as ap, type PriceLine as aq, type Projector as ar, type ProviderName as as, type RendererConstructor as at, type Scene as au, type SchemaPatch as av, type SeriesKind as aw, type SeriesPoint as ax, type SeriesSpec as ay, type SeriesValueDelta as az, type VelaOptions as b, type VelaTheme as c, type RendererDisplayOptions as d, type IndicatorRenderHandle as e, type IndicatorStatus as f, type Pane as g, type PaneAction as h, type MoveTarget as i, type IndicatorModel as j, type ScenePatch as k, type InputValue as l, type SymbolPickerFn as m, type LegendActionView as n, type InputChangeEvent as o, type ClickEvent as p, type DataWindowReadout as q, type IDrawingsRendererPort as r, type Millis as s, type SnapMode as t, type DrawingTypeKey as u, type ToolbarDefinition as v, type AddIndicatorOptions as w, type BoxFontFamily as x, type BoxHAlign as y, type BoxTextSize as z };
@@ -420,7 +420,13 @@ type PaneHint = 'price' | 'new';
420
420
  interface IndicatorModel {
421
421
  /** Per-instance id (stable). */
422
422
  id: string;
423
+ /** Full display name (settings dialog, object tree, inspect). */
423
424
  title: string;
425
+ /**
426
+ * Compact legend label when the full {@link title} is too long for the chip.
427
+ * Absent ⇒ the legend uses {@link title}. Mirrors Pine `indicator(..., shorttitle=)`.
428
+ */
429
+ shorttitle?: string;
424
430
  overlay: boolean;
425
431
  paneHint: PaneHint;
426
432
  /**
@@ -885,6 +891,15 @@ type DrawingMode = 'measure' | 'eraser' | null;
885
891
  type DrawingIntent = {
886
892
  kind: 'arm';
887
893
  type: DrawingTypeKey | null;
894
+ }
895
+ /** Placement in progress: the ghost's current shape after every anchor click and
896
+ * cursor move; `null` when placement ends (finalized OR cancelled). No store
897
+ * mutation — the core only re-emits it (`drawing:draft`) so a multi-chart host
898
+ * can mirror the ghost live. Optional — a renderer that never emits it simply
899
+ * syncs at completion. */
900
+ | {
901
+ kind: 'draft';
902
+ doc: SerializedDrawing | null;
888
903
  } | {
889
904
  kind: 'create';
890
905
  doc: SerializedDrawing;
@@ -978,6 +993,11 @@ interface IDrawingsRendererPort {
978
993
  setMode?(mode: DrawingMode): void;
979
994
  /** Open a drawing's settings popup (selecting it too) — the programmatic twin of a click on it. */
980
995
  openSettings(id: string): void;
996
+ /** Display another chart's in-progress placement as a GHOST at reduced opacity
997
+ * (`null` clears it) — the drawings-sync twin of `setExternalCrosshair`. Never a
998
+ * store drawing: no selection, no hit-testing, no persistence. Optional — a
999
+ * renderer without it simply never previews remote placements. */
1000
+ setExternalGhost?(doc: SerializedDrawing | null): void;
981
1001
  /**
982
1002
  * The pane's SERIES stack in z terms, for renderers whose drawings share one draw-order
983
1003
  * space with the series (`drawingDepth`): the extremes ("bring to front" beats `front`,
@@ -1057,7 +1077,14 @@ interface CrosshairOHLC {
1057
1077
  }
1058
1078
  interface CrosshairEvent {
1059
1079
  time: Millis | null;
1080
+ /** Value at the cursor on ITS pane's scale — a price on the price pane, an
1081
+ * indicator value on a study pane (which one: see {@link paneKind}). */
1060
1082
  price: number | null;
1083
+ /** The kind of pane the cursor (and thus `price`) is on — how a consumer tells a
1084
+ * real price from a study-pane value (e.g. crosshair sync only mirrors the
1085
+ * horizontal level from the price pane). Optional and additive: a renderer that
1086
+ * doesn't track panes omits it. */
1087
+ paneKind?: 'price' | 'study' | null;
1061
1088
  /** Value at the crosshair per series, keyed by stable series id. */
1062
1089
  values: ReadonlyMap<string, number>;
1063
1090
  /** The hovered price bar's OHLCV (null when the cursor is off any bar). */
@@ -1067,6 +1094,13 @@ interface ClickEvent {
1067
1094
  time: Millis | null;
1068
1095
  price: number | null;
1069
1096
  }
1097
+ /** A touch long-press on an axis strip — the mobile substitute for a right-click menu. */
1098
+ interface AxisLongPressEvent {
1099
+ axis: 'price' | 'time';
1100
+ /** Plot-local pixel of the press (y maps a multi-pane price scale to its pane). */
1101
+ x: number;
1102
+ y: number;
1103
+ }
1070
1104
  /** One indicator plot's readout line in the data window. */
1071
1105
  interface DataWindowRow {
1072
1106
  label: string;
@@ -1238,6 +1272,22 @@ interface IChartRenderer {
1238
1272
  * renderer without it simply never shows contributed legend actions.
1239
1273
  */
1240
1274
  setLegendActions?(provider: ((indicatorId: string) => LegendActionView[]) | null): void;
1275
+ /**
1276
+ * Replace the indicator legend's fold toggle with a HOST action (or restore it with
1277
+ * null): the chip stays — a list glyph plus the indicator count — but pressing it
1278
+ * runs the action instead of unfolding the rows, which stay hidden while the
1279
+ * override is in force. Multi-chart shells route it to their indicator overview
1280
+ * (e.g. an object-tree panel), where per-indicator controls live instead. Optional —
1281
+ * a renderer without a foldable legend omits it.
1282
+ */
1283
+ setLegendOverviewAction?(action: (() => void) | null): void;
1284
+ /**
1285
+ * Open the settings dialog of one mounted indicator — the programmatic twin of the
1286
+ * legend row's gear button, for host chrome that reaches indicators outside the
1287
+ * legend (an object tree's action menu). Silent no-op for an unknown id. Optional —
1288
+ * a renderer without per-indicator settings UI omits it.
1289
+ */
1290
+ openIndicatorSettings?(indicatorId: string): void;
1241
1291
  /**
1242
1292
  * Hide (`false`) or show (`true`) a mounted indicator's visuals while keeping its legend row
1243
1293
  * (marked hidden). Optional — a renderer that can't suppress an indicator omits it (and the
@@ -1261,6 +1311,9 @@ interface IChartRenderer {
1261
1311
  onToggleIndicatorVisible?(cb: (id: string, visible: boolean) => void): Unsubscribe;
1262
1312
  onCrosshairMove(cb: (e: CrosshairEvent) => void): Unsubscribe;
1263
1313
  onClick(cb: (e: ClickEvent) => void): Unsubscribe;
1314
+ /** Touch long-press on a price or time axis strip. Optional — a renderer without
1315
+ * touch axis gestures omits it; host chrome (timezone / price-scale sheets) keys off it. */
1316
+ onAxisLongPress?(cb: (e: AxisLongPressEvent) => void): Unsubscribe;
1264
1317
  /**
1265
1318
  * Display an EXTERNAL crosshair at a data-space position — a ghost marker driven by
1266
1319
  * another chart (multi-chart crosshair sync), not by this chart's own pointer.
@@ -1348,6 +1401,13 @@ interface IChartRenderer {
1348
1401
  title: string;
1349
1402
  rows: readonly unknown[];
1350
1403
  }>): void;
1404
+ /**
1405
+ * The host shell's chrome size class. `'mobile'` asks the renderer's own chrome
1406
+ * (dialogs, toolbars, buttons) for its touch-first presentation — fullscreen
1407
+ * dialogs, no hover-gated affordances; `'desktop'` (the default) keeps the
1408
+ * pointer-first one. Optional — a renderer without adaptive chrome omits it.
1409
+ */
1410
+ setLayoutMode?(mode: 'mobile' | 'desktop'): void;
1351
1411
  /**
1352
1412
  * Interactive user-drawings surface. Present iff `capabilities.userDrawings`.
1353
1413
  * The core `DrawingController` drives it (commands down) and listens for
@@ -1542,4 +1602,4 @@ interface AddIndicatorOptions {
1542
1602
  title?: string;
1543
1603
  }
1544
1604
 
1545
- export { type DrawingLinefill as $, type AddIndicatorOptions as A, type Background as B, type CrosshairEvent as C, Drawing as D, type CandleBarColor as E, type CandleSeries as F, type CandleStyle as G, type DataWindowGroup as H, type IChartRenderer as I, type DataWindowOHLC as J, type DataWindowRow as K, type LineStyle as L, type MarketConfig as M, type NativeBackend as N, type OHLCV as O, type PriceStyle as P, type DirtyRange as Q, type RendererCapabilities as R, type SerializedDrawing as S, type ThemeName as T, type Unsubscribe as U, type VisibleRangePreset as V, type DrawingBox as W, type DrawingExtend as X, type DrawingIntent as Y, type DrawingLabel as Z, type DrawingLine as _, type VisibleRange as a, type DrawingMode as a0, type DrawingPoint as a1, type DrawingPolyline as a2, type DrawingStyle as a3, type DrawingTable as a4, type DrawingText as a5, type DrawingXLoc as a6, type DrawingsOption as a7, type Fill as a8, type FillGradientStop as a9, type SettingsSchema as aA, type TableCell as aB, type TableMerge as aC, type TablePosition as aD, type ToolbarGroupConfig as aE, type TradeExecution as aF, type ValuePatch as aG, buildToolbar as aH, defaultToolbar as aI, type PaneInfo as aJ, type IndicatorMeta as aa, type InputSchema as ab, type InputType as ac, type LabelStyle as ad, type LabelYLoc as ae, type LineLikeKind as af, type LineLikeSeries as ag, type LineLikeStyle as ah, type MarkerPoint as ai, type MarkerSeries as aj, type MarketSnapshot as ak, type MarketSwitch as al, type PaneHint as am, type PaneKind as an, type PolylinePoint as ao, type PriceLine as ap, type Projector as aq, type ProviderName as ar, type RendererConstructor as as, type Scene as at, type SchemaPatch as au, type SeriesKind as av, type SeriesPoint as aw, type SeriesSpec as ax, type SeriesValueDelta as ay, type SettingsField as az, type VelaOptions as b, type VelaTheme as c, type RendererDisplayOptions as d, type IndicatorRenderHandle as e, type IndicatorStatus as f, type Pane as g, type PaneAction as h, type MoveTarget as i, type IndicatorModel as j, type ScenePatch as k, type InputValue as l, type SymbolPickerFn as m, type LegendActionView as n, type InputChangeEvent as o, type ClickEvent as p, type DataWindowReadout as q, type IDrawingsRendererPort as r, type Millis as s, type SnapMode as t, type DrawingTypeKey as u, type ToolbarDefinition as v, type BoxFontFamily as w, type BoxHAlign as x, type BoxTextSize as y, type BoxVAlign as z };
1605
+ export { type DrawingLine as $, type AxisLongPressEvent as A, type Background as B, type CrosshairEvent as C, Drawing as D, type BoxVAlign as E, type CandleBarColor as F, type CandleSeries as G, type CandleStyle as H, type IChartRenderer as I, type DataWindowGroup as J, type DataWindowOHLC as K, type LineStyle as L, type MarketConfig as M, type NativeBackend as N, type OHLCV as O, type PriceStyle as P, type DataWindowRow as Q, type RendererCapabilities as R, type SerializedDrawing as S, type ThemeName as T, type Unsubscribe as U, type VisibleRangePreset as V, type DirtyRange as W, type DrawingBox as X, type DrawingExtend as Y, type DrawingIntent as Z, type DrawingLabel as _, type VisibleRange as a, type DrawingLinefill as a0, type DrawingMode as a1, type DrawingPoint as a2, type DrawingPolyline as a3, type DrawingStyle as a4, type DrawingTable as a5, type DrawingText as a6, type DrawingXLoc as a7, type DrawingsOption as a8, type Fill as a9, type SettingsField as aA, type SettingsSchema as aB, type TableCell as aC, type TableMerge as aD, type TablePosition as aE, type ToolbarGroupConfig as aF, type TradeExecution as aG, type ValuePatch as aH, buildToolbar as aI, defaultToolbar as aJ, type PaneInfo as aK, type FillGradientStop as aa, type IndicatorMeta as ab, type InputSchema as ac, type InputType as ad, type LabelStyle as ae, type LabelYLoc as af, type LineLikeKind as ag, type LineLikeSeries as ah, type LineLikeStyle as ai, type MarkerPoint as aj, type MarkerSeries as ak, type MarketSnapshot as al, type MarketSwitch as am, type PaneHint as an, type PaneKind as ao, type PolylinePoint as ap, type PriceLine as aq, type Projector as ar, type ProviderName as as, type RendererConstructor as at, type Scene as au, type SchemaPatch as av, type SeriesKind as aw, type SeriesPoint as ax, type SeriesSpec as ay, type SeriesValueDelta as az, type VelaOptions as b, type VelaTheme as c, type RendererDisplayOptions as d, type IndicatorRenderHandle as e, type IndicatorStatus as f, type Pane as g, type PaneAction as h, type MoveTarget as i, type IndicatorModel as j, type ScenePatch as k, type InputValue as l, type SymbolPickerFn as m, type LegendActionView as n, type InputChangeEvent as o, type ClickEvent as p, type DataWindowReadout as q, type IDrawingsRendererPort as r, type Millis as s, type SnapMode as t, type DrawingTypeKey as u, type ToolbarDefinition as v, type AddIndicatorOptions as w, type BoxFontFamily as x, type BoxHAlign as y, type BoxTextSize as z };
@@ -1,9 +1,9 @@
1
- import { u as DrawingTypeKey, a3 as DrawingStyle, S as SerializedDrawing, D as Drawing, av as SeriesKind, O as OHLCV, c as VelaTheme } from './options-Q-576hIi.js';
2
- import { b as DataControl } from './contributions-hX3EUyjG.js';
1
+ import { u as DrawingTypeKey, a4 as DrawingStyle, S as SerializedDrawing, D as Drawing, aw as SeriesKind, O as OHLCV, c as VelaTheme } from './options-XTBpbx0s.js';
2
+ import { b as DataControl } from './contributions-b6AVrqqG.js';
3
3
  import './side-panel-CT9ZwIGz.js';
4
4
  import './icons-BZYbJXSV.js';
5
5
  import './keymap-CGOz5F5f.js';
6
- import './DataProvider-Dzd-Erlk.js';
6
+ import './DataProvider-DTOEXKTI.js';
7
7
 
8
8
  /** What a drawing type contributes to the toolbar + factory (renderer-neutral). */
9
9
  interface DrawingTypeMeta {
@@ -208,7 +208,11 @@ interface SeriesDataEngine {
208
208
  from: number;
209
209
  to: number;
210
210
  }): void;
211
- /** New settings values from the chart-settings dialog (the type's SDK section). */
211
+ /** New settings values from the chart-settings dialog (the type's SDK section).
212
+ * Also delivered once just BEFORE `start()` whenever stored values exist (a
213
+ * persisted config, a market switch recreating the engine) — an engine must
214
+ * accept a pre-start call as pure configuration, so it never fetches on
215
+ * schema defaults the user has edited away. */
212
216
  onSettings?(values: Record<string, unknown>): void;
213
217
  }
214
218
  /** One registered chart type. */
@@ -242,12 +246,175 @@ interface ChartTypeDefinition {
242
246
  */
243
247
  basePainting?: 'candles' | 'none';
244
248
  }
245
- /** One declarative settings row. To add a NEW kind, see docs/architecture/settings-rows.md. */
249
+ /**
250
+ * A declarative visibility condition on another row's CURRENT value (stored value,
251
+ * or that row's `defval` while unset). Pure data — the dialog evaluates it live as
252
+ * the user edits, so dependent rows appear/disappear without a rebuild.
253
+ * `anyOf` wins over `equals` when both are given.
254
+ */
255
+ interface SettingsRowCondition {
256
+ key: string;
257
+ equals?: boolean | string | number;
258
+ anyOf?: readonly (boolean | string | number)[];
259
+ }
260
+ /** A row's visibility gate: one condition, or several AND-ed together. */
261
+ type SettingsRowWhen = SettingsRowCondition | readonly SettingsRowCondition[];
262
+ /**
263
+ * An inline color swatch on a toggle row — the color(s) the toggle governs, edited
264
+ * right on the toggle's row (dimmed while the toggle is off) instead of a
265
+ * conditionally revealed row below. Each swatch stores under its own bag key.
266
+ */
267
+ interface SettingsRowSwatch {
268
+ key: string;
269
+ /** Names the color for the swatch's tooltip (`'Highlight color'`). */
270
+ label: string;
271
+ defval: string;
272
+ /**
273
+ * Optional visibility gate, evaluated live against the values bag exactly like a
274
+ * row's own `when` — lets one toggle row swap its swatch set as another value
275
+ * changes (a mode's two colors while it is on, its one alternative while off).
276
+ * A gated swatch is EXEMPT from the toggle-off dim: its gate already says when
277
+ * it matters, and it may exist specifically for the off state.
278
+ */
279
+ when?: SettingsRowWhen;
280
+ }
281
+ /**
282
+ * An inline LINE-WIDTH dropdown on a toggle row — sits beside the row's color
283
+ * swatches (dimmed with them while the toggle is off) and stores a px number under
284
+ * its own bag key. The control offers the classic drawing-bar weights (1–5 px),
285
+ * each option previewed as a line at that weight.
286
+ */
287
+ interface SettingsRowWidth {
288
+ key: string;
289
+ /** Names the control for its tooltip (`'Line width'`). */
290
+ label: string;
291
+ defval: number;
292
+ }
293
+ /**
294
+ * An inline NUMBER input on a toggle row — sits AHEAD of the row's color swatches
295
+ * (dimmed with them while the toggle is off) and stores a number under its own bag
296
+ * key. For the one value the toggle governs (a percent, a count) — the declarative
297
+ * alternative to a separate `number` row gated on the toggle.
298
+ */
299
+ interface SettingsRowInlineNumber {
300
+ key: string;
301
+ /** Names the input for its tooltip (`'Value area (%)'`). */
302
+ label: string;
303
+ defval: number;
304
+ min?: number;
305
+ max?: number;
306
+ step?: number;
307
+ }
308
+ /**
309
+ * A select option: a bare string (value = label) or a `[value, label]` pair when the
310
+ * stored id differs from the human-readable text (`['bidAskProfile', 'Bid × Ask Profile']`).
311
+ */
312
+ type SettingsSelectOption = string | readonly [value: string, label: string];
313
+ /**
314
+ * One INLINE CONTROL on a composite `row` — the composable unit every value row is
315
+ * made of. Each keyed control stores under its own bag key; `label` names it for the
316
+ * control's tooltip. A control may carry its own `when` gate (same shape as a row's),
317
+ * evaluated live against the values bag: a gated control appears/disappears as other
318
+ * values change, and is EXEMPT from the row's toggle-off dim — its gate already says
319
+ * when it matters, and it may exist specifically for the off state.
320
+ *
321
+ * - `number` — a compact number input. With `placeholder`, an input at the default
322
+ * value renders EMPTY showing it, and clearing the input stores the default back —
323
+ * the placeholder names the "unset" state (`'Off'` for a 0-disables bound).
324
+ * - `color` — a color swatch opening the shared color picker.
325
+ * - `width` — a line-width dropdown (the classic drawing-bar 1–5 px weights, each
326
+ * option previewed as a line at that weight), storing a px number.
327
+ * - `select` — a dropdown over {@link SettingsSelectOption}s.
328
+ * - `hint` — display-only dimmed text between controls (the `–` of a min–max pair,
329
+ * a unit); stores nothing.
330
+ */
331
+ type SettingsInlineControl = {
332
+ kind: 'number';
333
+ key: string;
334
+ label: string;
335
+ defval: number;
336
+ min?: number;
337
+ max?: number;
338
+ step?: number;
339
+ placeholder?: string;
340
+ when?: SettingsRowWhen;
341
+ } | {
342
+ kind: 'color';
343
+ key: string;
344
+ label: string;
345
+ defval: string;
346
+ when?: SettingsRowWhen;
347
+ } | {
348
+ kind: 'width';
349
+ key: string;
350
+ label: string;
351
+ defval: number;
352
+ when?: SettingsRowWhen;
353
+ } | {
354
+ kind: 'select';
355
+ key: string;
356
+ label: string;
357
+ options: readonly SettingsSelectOption[];
358
+ defval: string;
359
+ when?: SettingsRowWhen;
360
+ } | {
361
+ kind: 'hint';
362
+ text: string;
363
+ };
364
+ /**
365
+ * One declarative settings row. To add a NEW inline control kind, see
366
+ * docs/architecture/settings-rows.md.
367
+ *
368
+ * `heading` titles a GROUP of rows: the heading plus everything after it up to the next
369
+ * heading. In a flat `rows` section headings render as inline group titles; inside
370
+ * `instances`/`subsections` (or a `layout: 'grouped'` section) they become entries of
371
+ * the pane's group TOC (see {@link ChartTypeSettingsSection}).
372
+ *
373
+ * `header` is an in-pane subgroup title: same visual as a flat heading, but inside a
374
+ * structured pane it stays in the rows column (does NOT become a TOC entry). Use it to
375
+ * cluster rows inside a TOC group (e.g. Colors / Values under Display).
376
+ *
377
+ * `row` is the COMPOSITE form every value row reduces to: a label, an optional leading
378
+ * `toggle` (a checkbox storing a boolean under `toggle.key`; while off, the row's
379
+ * controls dim and ignore input), and an ordered list of {@link SettingsInlineControl}s
380
+ * in the control column. Any mix of control kinds in any order — no per-combination
381
+ * SDK surface.
382
+ *
383
+ * The remaining kinds are SUGAR over `row` (see {@link normalizeSettingsRow}):
384
+ * - `toggle` — a checkbox row; optional inline `number`, color `colors`, and `width`
385
+ * attachments render in that order.
386
+ * - `number` / `color` / `select` — one control on its own row.
387
+ * - `range` — a min–max pair (two number inputs under `minKey`/`maxKey`, both seeded
388
+ * from the shared `defval`, with `placeholder` naming the unset state).
389
+ *
390
+ * Any row may carry `when` — it is shown only while the condition holds.
391
+ */
246
392
  type SettingsRowDescriptor = {
393
+ kind: 'heading';
394
+ label: string;
395
+ when?: SettingsRowWhen;
396
+ } | {
397
+ kind: 'header';
398
+ label: string;
399
+ when?: SettingsRowWhen;
400
+ } | {
401
+ kind: 'row';
402
+ label: string;
403
+ toggle?: {
404
+ key: string;
405
+ defval: boolean;
406
+ };
407
+ controls: readonly SettingsInlineControl[];
408
+ when?: SettingsRowWhen;
409
+ } | {
247
410
  kind: 'toggle';
248
411
  key: string;
249
412
  label: string;
250
413
  defval: boolean;
414
+ number?: SettingsRowInlineNumber;
415
+ colors?: readonly SettingsRowSwatch[];
416
+ width?: SettingsRowWidth;
417
+ when?: SettingsRowWhen;
251
418
  } | {
252
419
  kind: 'number';
253
420
  key: string;
@@ -256,25 +423,127 @@ type SettingsRowDescriptor = {
256
423
  min?: number;
257
424
  max?: number;
258
425
  step?: number;
426
+ when?: SettingsRowWhen;
259
427
  } | {
260
428
  kind: 'color';
261
429
  key: string;
262
430
  label: string;
263
431
  defval: string;
432
+ when?: SettingsRowWhen;
264
433
  } | {
265
434
  kind: 'select';
266
435
  key: string;
267
436
  label: string;
268
- options: readonly string[];
437
+ options: readonly SettingsSelectOption[];
269
438
  defval: string;
439
+ when?: SettingsRowWhen;
440
+ } | {
441
+ kind: 'range';
442
+ label: string;
443
+ minKey: string;
444
+ maxKey: string;
445
+ defval: number;
446
+ min?: number;
447
+ max?: number;
448
+ step?: number;
449
+ placeholder?: string;
450
+ when?: SettingsRowWhen;
270
451
  };
452
+ /** A value-carrying row (everything except the key-less `heading`/`header` titles). */
453
+ type SettingsValueRow = Exclude<SettingsRowDescriptor, {
454
+ kind: 'heading' | 'header';
455
+ }>;
456
+ /** The canonical row shape every {@link SettingsValueRow} reduces to (the `row` kind's fields). */
457
+ interface NormalizedSettingsRow {
458
+ label: string;
459
+ toggle?: {
460
+ key: string;
461
+ defval: boolean;
462
+ };
463
+ controls: readonly SettingsInlineControl[];
464
+ when?: SettingsRowWhen;
465
+ }
466
+ /**
467
+ * Reduce a value row to the canonical composite shape — the ONE contract view layers
468
+ * render and the persistence layer enumerates. The sugar kinds map exactly onto their
469
+ * historical rendering: `toggle` attachments in number → colors → width order, `range`
470
+ * as two number controls around a `–` hint (placeholder semantics preserved).
471
+ */
472
+ declare function normalizeSettingsRow(r: SettingsValueRow): NormalizedSettingsRow;
473
+ /** One value a settings row stores: its bag key, runtime type, and registry default. */
474
+ interface SettingsRowValueKey {
475
+ key: string;
476
+ type: 'boolean' | 'number' | 'string';
477
+ defval: boolean | number | string;
478
+ }
479
+ /**
480
+ * EVERY key a row stores (toggle key + each keyed inline control), with its expected
481
+ * type and default — the single enumeration the dialog seeds from and the factory
482
+ * reset restores, so no key can fall through a kind-specific walk.
483
+ */
484
+ declare function settingsRowValueKeys(r: SettingsRowDescriptor): SettingsRowValueKey[];
485
+ /**
486
+ * One tab of a section's INSTANCE STRIP — a repeated block of settings (e.g. one of
487
+ * several overlays a style can paint). The dialog shows a tab per PRESENT instance,
488
+ * a dashed `+` that turns on the next absent one, and an `×` on the active removable
489
+ * tab that turns it off. Presence is the boolean at `enableKey` (stored in the same
490
+ * per-type bag as every other value); an instance without `enableKey` is always
491
+ * present and not removable — the base instance.
492
+ */
493
+ interface ChartTypeSettingsInstance {
494
+ label: string;
495
+ /** Boolean bag key controlling presence; omitted = always present, not removable. */
496
+ enableKey?: string;
497
+ rows: readonly SettingsRowDescriptor[];
498
+ }
499
+ /** An indented sub-entry under the section's rail tab, with its own pane of rows. */
500
+ interface ChartTypeSettingsSubsection {
501
+ title: string;
502
+ rows: readonly SettingsRowDescriptor[];
503
+ /**
504
+ * Boolean bag key that masters this pane. While it is false, every row EXCEPT the
505
+ * one whose `key` matches stays visible but grayed out (not hidden) — so users can
506
+ * still browse and preview settings with the feature off. The matching toggle is
507
+ * typically the first row of the Display group.
508
+ */
509
+ enableKey?: string;
510
+ }
511
+ /**
512
+ * A chart type's settings tab. Two forms:
513
+ *
514
+ * - **Flat**: `rows` only — rendered as one scrollable pane, `heading` rows as inline
515
+ * group titles (the historical form). `layout: 'grouped'` upgrades the same rows to
516
+ * the GROUP TOC presentation (below) without declaring an instance strip.
517
+ * - **Structured**: `instances` (and optionally `subsections`) — the pane opens with an
518
+ * instance TAB STRIP, and each instance's rows are organized by a GROUP TOC on the
519
+ * left of the pane (right of the dialog's tab rail) built from its `heading` rows
520
+ * (rows before the first heading always show above the groups; selecting a TOC entry
521
+ * shows only that group's rows). `subsections` add indented rail entries under the
522
+ * section's tab, each a pane with the same TOC treatment. A TOC entry hides itself
523
+ * while every row of its group is hidden by `when` gates.
524
+ *
525
+ * All values — every instance and subsection included — live in the ONE per-type bag
526
+ * (`config.chartTypes[<id>]`), so consumers keep receiving a single flat object.
527
+ */
271
528
  interface ChartTypeSettingsSection {
272
529
  /** Section heading in the settings dialog. */
273
530
  title: string;
274
- rows: readonly SettingsRowDescriptor[];
531
+ /** Flat form. Ignored when `instances` is declared. */
532
+ rows?: readonly SettingsRowDescriptor[];
533
+ /** How `rows` are presented: `'flat'` (default) renders headings as inline group
534
+ * titles; `'grouped'` promotes them to a group TOC beside the rows (the structured
535
+ * pane's presentation, without an instance strip). Ignored with `instances`. */
536
+ layout?: 'flat' | 'grouped';
537
+ /** Structured form: the pane's instance tab strip. */
538
+ instances?: readonly ChartTypeSettingsInstance[];
539
+ /** Indented sub-entries under this section's rail tab. */
540
+ subsections?: readonly ChartTypeSettingsSubsection[];
275
541
  /** `'active'` (default): shown only while this chart type is the active price style;
276
542
  * `'always'`: shown whenever the type is registered. */
277
543
  visibility?: 'always' | 'active';
544
+ /** Rail position: `'end'` (default, after the built-in tabs) or `'after-symbol'`
545
+ * (directly under the Symbol tab). Subsections follow their parent. */
546
+ placement?: 'after-symbol' | 'end';
278
547
  }
279
548
  /** Register (or replace) a chart type. */
280
549
  declare function registerChartType(def: ChartTypeDefinition): void;
@@ -323,6 +592,23 @@ interface RendererLayerArgs {
323
592
  priceStyle: string;
324
593
  /** Frame clock (ms) for pulses/fades; monotonic within a session. */
325
594
  nowMs: number;
595
+ /** Plot-relative pointer position, or null when the pointer is off the plot. Layers
596
+ * that hover-test set `repaintOnCursor` on their definition so pointer moves repaint
597
+ * them (only data-tier frames repaint layers otherwise). */
598
+ cursor: {
599
+ x: number;
600
+ y: number;
601
+ } | null;
602
+ }
603
+ /** How the active style's layer dims/slims the BASE painting under it (see
604
+ * {@link RendererLayerInstance.modulateBase}). Omitted fields keep their defaults. */
605
+ interface BasePaintingModulation {
606
+ /** Candle body width multiplier, (0..1] (1 = full width). */
607
+ candleBodyScale?: number;
608
+ /** Candle body-fill opacity, [0..1] (wick + border keep their own opacity). */
609
+ candleBodyAlpha?: number;
610
+ /** Gridline opacity, [0..1] (fade the grid as a reveal-under layer opens). */
611
+ gridAlpha?: number;
326
612
  }
327
613
  /** One live layer instance (per mounted renderer). */
328
614
  interface RendererLayerInstance {
@@ -332,6 +618,14 @@ interface RendererLayerInstance {
332
618
  render(args: RendererLayerArgs): void;
333
619
  /** Return true while the layer needs CONTINUOUS frames (a pulse/fade) — keeps the animator alive. */
334
620
  animating?(): boolean;
621
+ /**
622
+ * How the base painting (candles, grid) should be dimmed/slimmed under this layer for
623
+ * the CURRENT frame — a gradual counterpart of the chart type's all-or-nothing
624
+ * `basePainting: 'none'`. Called after `render`, only for the layer whose id matches
625
+ * the active price style; returning null (or omitting the method) leaves the base
626
+ * painting untouched. Values are clamped by the renderer.
627
+ */
628
+ modulateBase?(args: RendererLayerArgs): BasePaintingModulation | null;
335
629
  /** The renderer unmounted — release everything (the canvas itself is removed by the renderer). */
336
630
  destroy?(): void;
337
631
  }
@@ -342,6 +636,9 @@ interface RendererLayerDefinition {
342
636
  /** Stacking: `'below-data'` = behind the candles (reveal-under styles); `'above-data'` =
343
637
  * over the candles, under the chrome/axes. Default `'above-data'`. */
344
638
  placement?: 'below-data' | 'above-data';
639
+ /** Repaint this layer when the pointer moves (hover hit-testing UIs). Off by default:
640
+ * pointer moves normally repaint only the crosshair overlay, not the layers. */
641
+ repaintOnCursor?: boolean;
345
642
  /** Instance factory — called once per mounted renderer. */
346
643
  create(): RendererLayerInstance;
347
644
  }
@@ -402,4 +699,4 @@ declare const CATEGORICAL: readonly string[];
402
699
  /** Pick a stable categorical color for a string key (same key ⇒ same color). */
403
700
  declare function categoricalColor(key: string): string;
404
701
 
405
- export { ACCENT as A, BEARISH as B, CATEGORICAL as C, type DrawingTypeMeta as D, getDrawingType as E, registerChartType as F, registerDrawingType as G, HIGHLIGHT as H, INFO as I, registerRendererDefaults as J, registerRendererLayer as K, rendererDefaults as L, MARKER as M, NEUTRAL as N, rendererLayers as O, stableSeriesId as P, tickerModifierIds as Q, type RendererLayerArgs as R, SERIES_LINE as S, TRADE_EXIT as T, unregisterChartType as U, VALID as V, WARNING as W, unregisterRendererDefaults as X, unregisterRendererLayer as Y, ACCENT_BRIGHT as a, BULLISH as b, type BarTransform as c, CROSSHAIR as d, type ChartTypeDefinition as e, type ChartTypeSettingsSection as f, INVALID as g, type IdentifiableKind as h, type RendererLayerDefinition as i, type RendererLayerInstance as j, SESSION_OFF as k, SESSION_POST as l, SESSION_PRE as m, SLATE as n, SLATE_DEEP as o, type SeriesDataEngine as p, type SeriesDataEngineHost as q, type SettingsRowDescriptor as r, TRADE_LONG as s, TRADE_SHORT as t, categoricalColor as u, chartType as v, chartTypes as w, createDrawing as x, deserializeDrawing as y, drawingTypes as z };
702
+ export { normalizeSettingsRow as $, ACCENT as A, BEARISH as B, CATEGORICAL as C, type DrawingTypeMeta as D, type SettingsRowValueKey as E, type SettingsRowWhen as F, type SettingsRowWidth as G, HIGHLIGHT as H, INFO as I, type SettingsSelectOption as J, type SettingsValueRow as K, TRADE_LONG as L, MARKER as M, NEUTRAL as N, TRADE_SHORT as O, categoricalColor as P, chartType as Q, type RendererLayerArgs as R, SERIES_LINE as S, TRADE_EXIT as T, chartTypes as U, VALID as V, WARNING as W, createDrawing as X, deserializeDrawing as Y, drawingTypes as Z, getDrawingType as _, ACCENT_BRIGHT as a, registerChartType as a0, registerDrawingType as a1, registerRendererDefaults as a2, registerRendererLayer as a3, rendererDefaults as a4, rendererLayers as a5, settingsRowValueKeys as a6, stableSeriesId as a7, tickerModifierIds as a8, unregisterChartType as a9, unregisterRendererDefaults as aa, unregisterRendererLayer as ab, BULLISH as b, type BarTransform as c, type BasePaintingModulation as d, CROSSHAIR as e, type ChartTypeDefinition as f, type ChartTypeSettingsInstance as g, type ChartTypeSettingsSection as h, type ChartTypeSettingsSubsection as i, INVALID as j, type IdentifiableKind as k, type NormalizedSettingsRow as l, type RendererLayerDefinition as m, type RendererLayerInstance as n, SESSION_OFF as o, SESSION_POST as p, SESSION_PRE as q, SLATE as r, SLATE_DEEP as s, type SeriesDataEngine as t, type SeriesDataEngineHost as u, type SettingsInlineControl as v, type SettingsRowCondition as w, type SettingsRowDescriptor as x, type SettingsRowInlineNumber as y, type SettingsRowSwatch as z };