@luxalgo/vela 0.6.5 → 0.6.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/README.md +16 -16
  2. package/dist/{DataProvider-BmHkcwvJ.d.ts → DataProvider-BSLlBpB9.d.ts} +11 -1
  3. package/dist/{DataProvider-DrN7ZIou.d.cts → DataProvider-BsQM2WNH.d.cts} +11 -1
  4. package/dist/{history-BmyjaVir.d.cts → bottombar-Br4rzx_R.d.ts} +158 -129
  5. package/dist/{history-CvOtsjT5.d.ts → bottombar-Div5zibZ.d.cts} +158 -129
  6. package/dist/{chunk-FQBT4NFM.js → chunk-6WFKTAT4.js} +2797 -2527
  7. package/dist/{chunk-BEJ57HP4.js → chunk-L3I2CCYO.js} +62 -1
  8. package/dist/chunk-W4EJWLEO.js +12 -0
  9. package/dist/{chunk-N6MBJHMV.js → chunk-WVP4XV5A.js} +6050 -3402
  10. package/dist/{contributions-DatoAzMx.d.ts → contributions-Hv4_cOJo.d.cts} +152 -5
  11. package/dist/{contributions-2bEmCF9S.d.cts → contributions-Z12BrWCy.d.ts} +152 -5
  12. package/dist/index.cjs +2798 -2484
  13. package/dist/index.d.cts +44 -16
  14. package/dist/index.d.ts +44 -16
  15. package/dist/index.js +2 -2
  16. package/dist/{options-YdiaaVjt.d.cts → options-BaVTMXaO.d.cts} +48 -2
  17. package/dist/{options-YdiaaVjt.d.ts → options-BaVTMXaO.d.ts} +48 -2
  18. package/dist/{plugin-Bcone6Vh.d.ts → plugin-9koBjc5H.d.ts} +6 -4
  19. package/dist/{plugin-DO_DX0gp.d.cts → plugin-BXhDHTYn.d.cts} +6 -4
  20. package/dist/plugin.cjs +44 -0
  21. package/dist/plugin.d.cts +4 -4
  22. package/dist/plugin.d.ts +4 -4
  23. package/dist/plugin.js +1 -1
  24. package/dist/providers/binance.cjs +16 -0
  25. package/dist/providers/binance.d.cts +5 -2
  26. package/dist/providers/binance.d.ts +5 -2
  27. package/dist/providers/binance.js +7 -0
  28. package/dist/providers/coinbase.cjs +16 -0
  29. package/dist/providers/coinbase.d.cts +5 -2
  30. package/dist/providers/coinbase.d.ts +5 -2
  31. package/dist/providers/coinbase.js +7 -0
  32. package/dist/providers/hyperliquid.cjs +16 -0
  33. package/dist/providers/hyperliquid.d.cts +5 -2
  34. package/dist/providers/hyperliquid.d.ts +5 -2
  35. package/dist/providers/hyperliquid.js +7 -0
  36. package/dist/ui.d.cts +1 -1
  37. package/dist/ui.d.ts +1 -1
  38. package/dist/vela.global.js +2824 -2484
  39. package/dist/vela.global.min.js +48 -48
  40. package/dist/widget.cjs +35791 -34070
  41. package/dist/widget.d.cts +80 -275
  42. package/dist/widget.d.ts +80 -275
  43. package/dist/widget.js +61 -1313
  44. package/dist/workspace.cjs +1700 -995
  45. package/dist/workspace.d.cts +120 -15
  46. package/dist/workspace.d.ts +120 -15
  47. package/dist/workspace.js +7 -2281
  48. package/package.json +1 -1
@@ -5761,6 +5761,33 @@ function rendererLayers() {
5761
5761
  return [...registry2.values()];
5762
5762
  }
5763
5763
 
5764
+ // src/widget/topbar-composition.ts
5765
+ var TOPBAR_BUILTIN_IDS = ["symbol", "timeframes", "style", "layout", "indicators", "actions", "undo-redo", "alerts", "panels", "screenshot"];
5766
+ var TOPBAR_DEFAULT_LEFT = ["symbol", "timeframes", "style", "layout", "indicators", "actions", "undo-redo"];
5767
+ var TOPBAR_DEFAULT_RIGHT = ["actions", "alerts", "panels", "screenshot"];
5768
+ function resolveTopbarComposition(opt) {
5769
+ const seen = /* @__PURE__ */ new Set();
5770
+ const take = (list) => {
5771
+ const out = [];
5772
+ const local = /* @__PURE__ */ new Set();
5773
+ for (const id of list) {
5774
+ if (!id || local.has(id) || id !== "actions" && seen.has(id)) continue;
5775
+ local.add(id);
5776
+ seen.add(id);
5777
+ out.push(id);
5778
+ }
5779
+ return out;
5780
+ };
5781
+ return { left: take(opt?.left ?? TOPBAR_DEFAULT_LEFT), right: take(opt?.right ?? TOPBAR_DEFAULT_RIGHT) };
5782
+ }
5783
+ function topbarHas(comp, id) {
5784
+ return comp.left.includes(id) || comp.right.includes(id);
5785
+ }
5786
+ function pinnedTopbarActionIds(comp) {
5787
+ const builtin = new Set(TOPBAR_BUILTIN_IDS);
5788
+ return [...comp.left, ...comp.right].filter((id) => !builtin.has(id));
5789
+ }
5790
+
5764
5791
  // src/widget/contributions.ts
5765
5792
  var registry3 = /* @__PURE__ */ new Map();
5766
5793
  var attachments = /* @__PURE__ */ new Map();
@@ -5790,7 +5817,18 @@ function unregisterSidePanel(id) {
5790
5817
  function sidePanels() {
5791
5818
  return [...panels.values()].sort((a, b) => (a.order ?? DEFAULT_PANEL_ORDER) - (b.order ?? DEFAULT_PANEL_ORDER));
5792
5819
  }
5820
+ var OVERRIDABLE_TOPBAR_IDS = ["indicators", "screenshot"];
5821
+ var overridableSet = new Set(OVERRIDABLE_TOPBAR_IDS);
5822
+ var builtinTopbarSet = new Set(TOPBAR_BUILTIN_IDS);
5823
+ function topbarActionOverride(id) {
5824
+ if (!overridableSet.has(id)) return void 0;
5825
+ return registry3.get(id);
5826
+ }
5793
5827
  function registerWidgetAction(desc) {
5828
+ if (builtinTopbarSet.has(desc.id) && !overridableSet.has(desc.id)) {
5829
+ console.warn(`[vela] widget action "${desc.id}": this built-in topbar slot is a stateful control and cannot be overridden \u2014 ignored. Overridable slots: ${OVERRIDABLE_TOPBAR_IDS.join(", ")}.`);
5830
+ return () => void 0;
5831
+ }
5794
5832
  registry3.set(desc.id, desc);
5795
5833
  return () => {
5796
5834
  if (registry3.get(desc.id) === desc) registry3.delete(desc.id);
@@ -5825,6 +5863,29 @@ function legendActionsProviderFor(chart, context) {
5825
5863
  return legendActions().filter((d) => !d.when || d.when(info)).map((d) => ({ id: d.id, icon: d.icon, tooltip: d.tooltip, run: () => d.run(context(), info) }));
5826
5864
  };
5827
5865
  }
5866
+ var stateHandlers = /* @__PURE__ */ new Map();
5867
+ function registerStatePersistence(handler) {
5868
+ stateHandlers.set(handler.key, handler);
5869
+ return () => {
5870
+ if (stateHandlers.get(handler.key) === handler) stateHandlers.delete(handler.key);
5871
+ };
5872
+ }
5873
+ function unregisterStatePersistence(key) {
5874
+ stateHandlers.delete(key);
5875
+ }
5876
+ function statePersistenceHandlers(scope) {
5877
+ return [...stateHandlers.values()].filter((h) => h.scope === scope);
5878
+ }
5879
+ var symbolRankingHook;
5880
+ function registerSymbolRanking(hook) {
5881
+ symbolRankingHook = hook;
5882
+ return () => {
5883
+ if (symbolRankingHook === hook) symbolRankingHook = void 0;
5884
+ };
5885
+ }
5886
+ function symbolRanking() {
5887
+ return symbolRankingHook;
5888
+ }
5828
5889
  var defaultEngines = /* @__PURE__ */ new Map();
5829
5890
  function registerDefaultEngine(language, make) {
5830
5891
  defaultEngines.set(language, make);
@@ -6052,4 +6113,4 @@ var SidePanel = class {
6052
6113
  }
6053
6114
  };
6054
6115
 
6055
- export { AnchoredVwap, ArrowMark, Callout, CalloutBase, Comment, DEDEKIND_CURVATURE_OPTIONS, DEFAULT_DRAWING_COLOR, DEFAULT_PANEL_MAX_WIDTH, DEFAULT_PANEL_MIN_WIDTH, DEFAULT_PANEL_ORDER, DEFAULT_PANEL_WIDTH, DIRECTION_OPTIONS, DedekindTessellation, Drawing, FibRatios, FibSpiral, FixedRangeVolumeProfile, GANN_SQUARE_ARCS, GLYPH_OPTIONS, GannSquare, GlyphStamp, LINE_STYLE_OPTIONS, MACH_NUMBER_OPTIONS, MACH_WAVE_COUNT_OPTIONS, MachFigure, MeasureBox, Note, PatternDrawing, PositionTool, PriceLabel, PriceNote, RadialFib, RegressionChannel, STAMP_SIZE_OPTIONS, SegmentDrawing, SidePanel, Signpost, TEXT_SIZE_OPTIONS, TextLabel, chartType, chartTypes, clampPanelWidth, createDrawing, deserializeDrawing, drawingTypes, foldBaseModulation, formatDuration, getDrawingType, getNativeIndicator, inputVisible, legendActions, legendActionsProviderFor, lineSegmentIntersection, nativeIndicatorDescriptors, nativeIndicatorTypes, normalizeSettingsRow, registerChartType, registerDefaultEngine, registerDrawingType, registerLegendAction, registerNativeIndicator, registerRendererDefaults, registerRendererLayer, registerSidePanel, registerWidgetAction, registerWidgetAttachment, rendererDefaults, rendererLayers, resetDrawingSettings, resolveEngines, settingsRowValueKeys, settingsRowVisible, sidePanels, tickerModifierIds, unregisterChartType, unregisterDefaultEngine, unregisterLegendAction, unregisterNativeIndicator, unregisterRendererDefaults, unregisterRendererLayer, unregisterSidePanel, unregisterWidgetAction, unregisterWidgetAttachment, widgetActions, widgetAttachments };
6116
+ export { AnchoredVwap, ArrowMark, Callout, CalloutBase, Comment, DEDEKIND_CURVATURE_OPTIONS, DEFAULT_DRAWING_COLOR, DEFAULT_PANEL_MAX_WIDTH, DEFAULT_PANEL_MIN_WIDTH, DEFAULT_PANEL_ORDER, DEFAULT_PANEL_WIDTH, DIRECTION_OPTIONS, DedekindTessellation, Drawing, FibRatios, FibSpiral, FixedRangeVolumeProfile, GANN_SQUARE_ARCS, GLYPH_OPTIONS, GannSquare, GlyphStamp, LINE_STYLE_OPTIONS, MACH_NUMBER_OPTIONS, MACH_WAVE_COUNT_OPTIONS, MachFigure, MeasureBox, Note, OVERRIDABLE_TOPBAR_IDS, PatternDrawing, PositionTool, PriceLabel, PriceNote, RadialFib, RegressionChannel, STAMP_SIZE_OPTIONS, SegmentDrawing, SidePanel, Signpost, TEXT_SIZE_OPTIONS, TOPBAR_BUILTIN_IDS, TOPBAR_DEFAULT_LEFT, TOPBAR_DEFAULT_RIGHT, TextLabel, chartType, chartTypes, clampPanelWidth, createDrawing, deserializeDrawing, drawingTypes, foldBaseModulation, formatDuration, getDrawingType, getNativeIndicator, inputVisible, legendActions, legendActionsProviderFor, lineSegmentIntersection, nativeIndicatorDescriptors, nativeIndicatorTypes, normalizeSettingsRow, pinnedTopbarActionIds, registerChartType, registerDefaultEngine, registerDrawingType, registerLegendAction, registerNativeIndicator, registerRendererDefaults, registerRendererLayer, registerSidePanel, registerStatePersistence, registerSymbolRanking, registerWidgetAction, registerWidgetAttachment, rendererDefaults, rendererLayers, resetDrawingSettings, resolveEngines, resolveTopbarComposition, settingsRowValueKeys, settingsRowVisible, sidePanels, statePersistenceHandlers, symbolRanking, tickerModifierIds, topbarActionOverride, topbarHas, unregisterChartType, unregisterDefaultEngine, unregisterLegendAction, unregisterNativeIndicator, unregisterRendererDefaults, unregisterRendererLayer, unregisterSidePanel, unregisterStatePersistence, unregisterWidgetAction, unregisterWidgetAttachment, widgetActions, widgetAttachments };
@@ -0,0 +1,12 @@
1
+ // src/data/symbol-base.ts
2
+ function baseOf(d) {
3
+ const fromDesc = d.description?.split("/")[0]?.trim();
4
+ if (fromDesc) return fromDesc.replace(/\s+Perpetual$/i, "");
5
+ return d.ticker.replace(/[-_/]?(USDT|USDC|USD1|USDS|BUSD|USD|EUR|PERP)$/i, "") || d.ticker;
6
+ }
7
+ function ledgerCryptoIconUrl(base) {
8
+ const key = base.trim().toUpperCase();
9
+ return key ? `https://crypto-icons.ledger.com/${encodeURIComponent(key)}.png` : void 0;
10
+ }
11
+
12
+ export { baseOf, ledgerCryptoIconUrl };