@luxalgo/vela 0.6.14 → 0.6.16

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 (51) hide show
  1. package/NOTICE +28 -28
  2. package/README.md +9 -2
  3. package/dist/{DataProvider-DhzstpQb.d.ts → DataProvider-XLdJB86x.d.ts} +1 -1
  4. package/dist/{DataProvider-DlMtrwqM.d.cts → DataProvider-xH2VBcFT.d.cts} +1 -1
  5. package/dist/{chunk-KG4YT3TI.js → chunk-6DPAYEGO.js} +8 -1
  6. package/dist/chunk-FE6V2YAQ.js +1 -0
  7. package/dist/{chunk-N2Q5EEFH.js → chunk-GIJYO4LO.js} +2596 -242
  8. package/dist/{chunk-F4M24ANM.js → chunk-I77F2SVE.js} +80 -4
  9. package/dist/{chunk-MHY7MVXH.js → chunk-MGU3USTP.js} +29 -16
  10. package/dist/{chunk-G77Y7LK2.js → chunk-Q3TFJNJW.js} +2 -2
  11. package/dist/{chunk-64TF7JAJ.js → chunk-SEOO6YG7.js} +408 -184
  12. package/dist/{contributions-lPojhTxI.d.cts → contributions-BEkxwA5F.d.cts} +40 -13
  13. package/dist/{contributions-37nni40G.d.ts → contributions-CoAX7_SF.d.ts} +40 -13
  14. package/dist/index.cjs +2755 -380
  15. package/dist/index.d.cts +20 -12
  16. package/dist/index.d.ts +20 -12
  17. package/dist/index.js +5 -5
  18. package/dist/{options-CYS5Wmlx.d.ts → options-bdSAtp7y.d.cts} +5 -0
  19. package/dist/{options-CYS5Wmlx.d.cts → options-bdSAtp7y.d.ts} +5 -0
  20. package/dist/{plugin-DHyaoMjW.d.ts → plugin-CNUgbRNq.d.ts} +11 -8
  21. package/dist/{plugin-Cwikpz1m.d.cts → plugin-Dxyq35Zf.d.cts} +11 -8
  22. package/dist/plugin.cjs +8 -0
  23. package/dist/plugin.d.cts +5 -5
  24. package/dist/plugin.d.ts +5 -5
  25. package/dist/plugin.js +3 -3
  26. package/dist/providers/binance.d.cts +2 -2
  27. package/dist/providers/binance.d.ts +2 -2
  28. package/dist/providers/coinbase.d.cts +2 -2
  29. package/dist/providers/coinbase.d.ts +2 -2
  30. package/dist/providers/hyperliquid.d.cts +2 -2
  31. package/dist/providers/hyperliquid.d.ts +2 -2
  32. package/dist/{side-panel-CT9ZwIGz.d.cts → side-panel-HF0IAzwf.d.cts} +17 -0
  33. package/dist/{side-panel-CT9ZwIGz.d.ts → side-panel-HF0IAzwf.d.ts} +17 -0
  34. package/dist/{statusline-model-D-q_OOx9.d.ts → statusline-model-CbPza-Wc.d.cts} +6 -4
  35. package/dist/{statusline-model-CiJm-riV.d.cts → statusline-model-D7cWkw8A.d.ts} +6 -4
  36. package/dist/ui.cjs +34 -15
  37. package/dist/ui.d.cts +1 -1
  38. package/dist/ui.d.ts +1 -1
  39. package/dist/ui.js +3 -3
  40. package/dist/vela.global.js +2675 -300
  41. package/dist/vela.global.min.js +58 -52
  42. package/dist/widget.cjs +3296 -622
  43. package/dist/widget.d.cts +15 -11
  44. package/dist/widget.d.ts +15 -11
  45. package/dist/widget.js +7 -7
  46. package/dist/workspace.cjs +3296 -622
  47. package/dist/workspace.d.cts +49 -19
  48. package/dist/workspace.d.ts +49 -19
  49. package/dist/workspace.js +6 -6
  50. package/package.json +1 -1
  51. package/dist/chunk-H26BEHF4.js +0 -7
@@ -1,6 +1,6 @@
1
- import { D as DataProvider } from './DataProvider-DhzstpQb.js';
2
- import { S as ScriptingEngine, V as Vela } from './contributions-37nni40G.js';
3
- import { V as VisibleRangePreset } from './options-CYS5Wmlx.js';
1
+ import { D as DataProvider } from './DataProvider-xH2VBcFT.cjs';
2
+ import { S as ScriptingEngine, V as Vela } from './contributions-BEkxwA5F.cjs';
3
+ import { V as VisibleRangePreset } from './options-bdSAtp7y.cjs';
4
4
 
5
5
  /** The linkable dimensions. `crosshair` mirrors the pointer time onto same-group
6
6
  * cells as GHOST crosshairs (renderers without the optional `setExternalCrosshair`
@@ -35,11 +35,13 @@ interface TrackSizes {
35
35
  * The docked side panels — a SHELL-level pref (one dock serves every cell of a workspace).
36
36
  * `open` is the single panel showing (the dock is exclusive); `widths` holds only the columns
37
37
  * the user actually resized, by panel id, so a panel's declared width stays in charge until
38
- * then. Absent altogether in documents written before the dock existed.
38
+ * then; `pinned` lists the floating (overlay) panels the user pinned as columns. Absent
39
+ * altogether in documents written before the dock existed.
39
40
  */
40
41
  interface PanelsState {
41
42
  open?: string;
42
43
  widths?: Record<string, number>;
44
+ pinned?: string[];
43
45
  }
44
46
  /** Per-chart (per-cell) state: the market, the display prefs, the content documents,
45
47
  * and the indicator ledger. The widget's whole chart state is ONE of these. */
@@ -1,6 +1,6 @@
1
- import { D as DataProvider } from './DataProvider-DlMtrwqM.cjs';
2
- import { S as ScriptingEngine, V as Vela } from './contributions-lPojhTxI.cjs';
3
- import { V as VisibleRangePreset } from './options-CYS5Wmlx.cjs';
1
+ import { D as DataProvider } from './DataProvider-XLdJB86x.js';
2
+ import { S as ScriptingEngine, V as Vela } from './contributions-CoAX7_SF.js';
3
+ import { V as VisibleRangePreset } from './options-bdSAtp7y.js';
4
4
 
5
5
  /** The linkable dimensions. `crosshair` mirrors the pointer time onto same-group
6
6
  * cells as GHOST crosshairs (renderers without the optional `setExternalCrosshair`
@@ -35,11 +35,13 @@ interface TrackSizes {
35
35
  * The docked side panels — a SHELL-level pref (one dock serves every cell of a workspace).
36
36
  * `open` is the single panel showing (the dock is exclusive); `widths` holds only the columns
37
37
  * the user actually resized, by panel id, so a panel's declared width stays in charge until
38
- * then. Absent altogether in documents written before the dock existed.
38
+ * then; `pinned` lists the floating (overlay) panels the user pinned as columns. Absent
39
+ * altogether in documents written before the dock existed.
39
40
  */
40
41
  interface PanelsState {
41
42
  open?: string;
42
43
  widths?: Record<string, number>;
44
+ pinned?: string[];
43
45
  }
44
46
  /** Per-chart (per-cell) state: the market, the display prefs, the content documents,
45
47
  * and the indicator ledger. The widget's whole chart state is ONE of these. */
package/dist/ui.cjs CHANGED
@@ -193,6 +193,12 @@ ${STATIC_DECLS}
193
193
  .vela-ui *, .vela-ui-layer * { box-sizing: border-box; }
194
194
  /* Text ENTRY is the one exception: selection is part of editing. */
195
195
  .vela-ui :is(input, textarea), .vela-ui-layer :is(input, textarea) { user-select: text; -webkit-user-select: text; }
196
+ /* iOS Safari zooms the page when a focused field is under 16px, and often
197
+ keeps that zoom after the field blurs or a dialog closes. The shell's
198
+ mobile size class is the honest gate \u2014 not a media query \u2014 so an embedded
199
+ chart on a wide desktop still gets the rule when it is in the phone layout.
200
+ Scoped to the kit root so a host page's own [data-layout] is never touched. */
201
+ .vela-ui[data-layout='mobile'] :is(input, textarea, select) { font-size: 16px; }
196
202
  .vela-icon { display: inline-flex; align-items: center; flex: none; }
197
203
  .vela-icon svg { display: block; }
198
204
  `;
@@ -285,6 +291,10 @@ registerIcon(
285
291
  "market-post",
286
292
  svg24('<path d="M12 10V2"/><path d="m4.93 10.93 1.41 1.41"/><path d="M2 18h2"/><path d="M20 18h2"/><path d="m19.07 10.93-1.41 1.41"/><path d="M22 22H2"/><path d="m16 14-4 4-4-4"/><path d="M16 6a4 4 0 0 0-8 0"/>')
287
293
  );
294
+ registerIcon(
295
+ "market-extended",
296
+ svg24('<path d="M22 22H2"/><path d="M12 3a5 5 0 0 0 7.5 7.5A7.5 7.5 0 1 1 12 3Z"/>')
297
+ );
288
298
  registerIcon("market-closed", svg24('<path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z"/>'));
289
299
  registerIcon(
290
300
  "market-holiday",
@@ -298,6 +308,8 @@ registerIcon("chevrons-right", S('<path d="m4 3.5 4.5 4.5L4 12.5"/><path d="m8.5
298
308
  registerIcon("chevrons-left", S('<path d="M12 3.5 7.5 8l4.5 4.5"/><path d="M7.5 3.5 3 8l4.5 4.5"/>'));
299
309
  registerIcon("check", S('<path d="m2.8 8.4 3.4 3.4 7-7.6"/>'));
300
310
  registerIcon("close", S('<path d="m3.8 3.8 8.4 8.4M12.2 3.8l-8.4 8.4"/>'));
311
+ registerIcon("pin", S('<path d="M5.6 2.5h4.8M6.4 2.5v3.6L4.4 8.4v.9h7.2v-.9L9.6 6.1V2.5M8 9.3v4.2"/>'));
312
+ registerIcon("pin-filled", S('<path d="M5.6 2.5h4.8M6.4 2.5v3.6L4.4 8.4v.9h7.2v-.9L9.6 6.1V2.5M8 9.3v4.2"/><path d="M6.4 2.5h3.2v3.6l2 2.3v.9H4.4v-.9l2-2.3z" fill="currentColor" stroke="none"/>'));
301
313
  registerIcon("eye", S('<path d="M1.5 8s2.5-5.4 6.5-5.4S14.5 8 14.5 8 12 13.4 8 13.4 1.5 8 1.5 8z"/><circle cx="8" cy="8" r="1.8"/>'));
302
314
  registerIcon("eye-off", S('<path d="M1.5 8s2.5-5.4 6.5-5.4S14.5 8 14.5 8 12 13.4 8 13.4 1.5 8 1.5 8z" opacity="0.45"/><path d="m3 13 10-10"/>'));
303
315
  registerIcon("lock", S('<rect x="3.2" y="7" width="9.6" height="6.6" rx="1.2"/><path d="M5.6 7V5.2a2.4 2.4 0 0 1 4.8 0V7"/>'));
@@ -2641,8 +2653,21 @@ function buildColorPicker(color, theme, onChange) {
2641
2653
  };
2642
2654
  const recentRow = document.createElement("div");
2643
2655
  recentRow.style.cssText = "display:flex;align-items:center;gap:5px;flex-wrap:wrap;border-top:1px solid var(--vela-border);padding-top:9px;";
2656
+ const recentSwatches = document.createElement("div");
2657
+ recentSwatches.style.cssText = "display:contents;";
2658
+ const add = document.createElement("label");
2659
+ add.style.cssText = `width:17px;height:17px;border-radius:var(--vela-radius-sm);border:1px dashed var(--vela-border-strong);cursor:pointer;display:flex;align-items:center;justify-content:center;color:${theme.textColor};font:14px ${theme.fontFamily};position:relative;`;
2660
+ add.textContent = "+";
2661
+ const customInput = document.createElement("input");
2662
+ customInput.type = "color";
2663
+ customInput.value = curHex;
2664
+ customInput.style.cssText = "position:absolute;inset:0;opacity:0;cursor:pointer;";
2665
+ customInput.addEventListener("input", () => previewHex(customInput.value));
2666
+ customInput.addEventListener("change", () => pickHex(customInput.value, true));
2667
+ add.appendChild(customInput);
2668
+ recentRow.append(recentSwatches, add);
2644
2669
  const renderRecents = () => {
2645
- recentRow.replaceChildren();
2670
+ recentSwatches.replaceChildren();
2646
2671
  for (const c of recents) {
2647
2672
  const sw = document.createElement("button");
2648
2673
  sw.type = "button";
@@ -2651,18 +2676,8 @@ function buildColorPicker(color, theme, onChange) {
2651
2676
  e.stopPropagation();
2652
2677
  pickHex(c);
2653
2678
  });
2654
- recentRow.appendChild(sw);
2679
+ recentSwatches.appendChild(sw);
2655
2680
  }
2656
- const add = document.createElement("label");
2657
- add.style.cssText = `width:17px;height:17px;border-radius:var(--vela-radius-sm);border:1px dashed var(--vela-border-strong);cursor:pointer;display:flex;align-items:center;justify-content:center;color:${theme.textColor};font:14px ${theme.fontFamily};position:relative;`;
2658
- add.textContent = "+";
2659
- const input = document.createElement("input");
2660
- input.type = "color";
2661
- input.value = curHex;
2662
- input.style.cssText = "position:absolute;inset:0;opacity:0;cursor:pointer;";
2663
- input.addEventListener("input", () => pickHex(input.value, true));
2664
- add.appendChild(input);
2665
- recentRow.appendChild(add);
2666
2681
  };
2667
2682
  const opLabel = document.createElement("div");
2668
2683
  opLabel.textContent = "Opacity";
@@ -2702,14 +2717,18 @@ function buildColorPicker(color, theme, onChange) {
2702
2717
  function emit() {
2703
2718
  onChange(combineColor(curHex, curAlpha));
2704
2719
  }
2705
- function pickHex(hex, custom = false) {
2720
+ function previewHex(hex) {
2706
2721
  curHex = splitColor(hex).hex6;
2707
- addRecent(curHex);
2708
2722
  paintSelection();
2709
2723
  paintOpacity();
2710
- if (custom) renderRecents();
2711
2724
  emit();
2712
2725
  }
2726
+ function pickHex(hex, custom = false) {
2727
+ previewHex(hex);
2728
+ addRecent(curHex);
2729
+ customInput.value = curHex;
2730
+ if (custom) renderRecents();
2731
+ }
2713
2732
  renderRecents();
2714
2733
  paintSelection();
2715
2734
  paintOpacity();
package/dist/ui.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- import { c as VelaTheme } from './options-CYS5Wmlx.cjs';
1
+ import { c as VelaTheme } from './options-bdSAtp7y.cjs';
2
2
  import { MachineSchema, Service, Machine } from '@zag-js/core';
3
3
  export { a as KeyBindingDescriptor, K as KeymapManager, b as KeymapOptions, R as ResolvedBinding } from './keymap-CGOz5F5f.cjs';
4
4
  import * as tooltip from '@zag-js/tooltip';
package/dist/ui.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { c as VelaTheme } from './options-CYS5Wmlx.js';
1
+ import { c as VelaTheme } from './options-bdSAtp7y.js';
2
2
  import { MachineSchema, Service, Machine } from '@zag-js/core';
3
3
  export { a as KeyBindingDescriptor, K as KeymapManager, b as KeymapOptions, R as ResolvedBinding } from './keymap-CGOz5F5f.js';
4
4
  import * as tooltip from '@zag-js/tooltip';
package/dist/ui.js CHANGED
@@ -1,3 +1,3 @@
1
- export { Drawer, KeymapManager, Tooltip, drawerController, tooltipController } from './chunk-G77Y7LK2.js';
2
- export { CALLOUT_CSS, CALLOUT_STYLE_ID, CalloutBubble, ColorField, Dialog, FIELD_GAP_PX, GlyphSelect, Menu, NumberInput, Popover, Select, Switch, TextArea, TextField, WIDTH_FIELD_OPTIONS, applyPlotOverlayTokens, applyThemeTokens, blendOver, buildColorPicker, buildFieldControl, buildPalette, calloutPanelRows, clampNumber, closeColorPopover, closeOpenPopovers, closeWidthPopover, closesPanel, colorField, colorPickerController, combineColor, decorateSelectScroll, dialogController, ensureUIHost, eventDismissedPopover, fieldGrid, fieldGridColumns, fieldRow, fieldSection, fieldSeparator, fillSelectList, glyphSelectController, hslHex, insetRect, intersectRects, isPopoverOpen, lineWidthGlyph, menuController, nextUid, normalizeProps, numberInputController, openPopoverTrigger, openSelectList, placePopover, popoverController, runMachine, selectController, snapToStep, splitColor, spreadProps, switchController, textAreaController, textFieldController, toggleSelectList, transparencyChecker, viewportRect, widthField, widthFieldOptions } from './chunk-MHY7MVXH.js';
3
- export { FIELD_FOCUS_CSS, FIELD_FOCUS_RING, iconEl, iconMarkup, injectStyles, overlayScrollbarCss, registerIcon, svg16, svg24, withAlpha } from './chunk-KG4YT3TI.js';
1
+ export { Drawer, KeymapManager, Tooltip, drawerController, tooltipController } from './chunk-Q3TFJNJW.js';
2
+ export { CALLOUT_CSS, CALLOUT_STYLE_ID, CalloutBubble, ColorField, Dialog, FIELD_GAP_PX, GlyphSelect, Menu, NumberInput, Popover, Select, Switch, TextArea, TextField, WIDTH_FIELD_OPTIONS, applyPlotOverlayTokens, applyThemeTokens, blendOver, buildColorPicker, buildFieldControl, buildPalette, calloutPanelRows, clampNumber, closeColorPopover, closeOpenPopovers, closeWidthPopover, closesPanel, colorField, colorPickerController, combineColor, decorateSelectScroll, dialogController, ensureUIHost, eventDismissedPopover, fieldGrid, fieldGridColumns, fieldRow, fieldSection, fieldSeparator, fillSelectList, glyphSelectController, hslHex, insetRect, intersectRects, isPopoverOpen, lineWidthGlyph, menuController, nextUid, normalizeProps, numberInputController, openPopoverTrigger, openSelectList, placePopover, popoverController, runMachine, selectController, snapToStep, splitColor, spreadProps, switchController, textAreaController, textFieldController, toggleSelectList, transparencyChecker, viewportRect, widthField, widthFieldOptions } from './chunk-MGU3USTP.js';
3
+ export { FIELD_FOCUS_CSS, FIELD_FOCUS_RING, iconEl, iconMarkup, injectStyles, overlayScrollbarCss, registerIcon, svg16, svg24, withAlpha } from './chunk-6DPAYEGO.js';