@luxalgo/vela 0.7.8 → 0.8.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.
- package/NOTICE +28 -28
- package/dist/{DataProvider-CGa4KHRa.d.cts → DataProvider-BrlxntPN.d.cts} +1 -1
- package/dist/{DataProvider-CmWUtDVL.d.ts → DataProvider-DwFIoV4r.d.ts} +1 -1
- package/dist/{chunk-WTWGEB7K.js → chunk-2IAETM2I.js} +260 -2
- package/dist/{chunk-CAFCLMPF.js → chunk-BZQM2XO7.js} +1 -0
- package/dist/{chunk-M6GP7DAX.js → chunk-E3GU6AUI.js} +459 -37
- package/dist/{chunk-BFA32GOU.js → chunk-EZ5FWVLA.js} +5 -2
- package/dist/{chunk-PVGWNF7V.js → chunk-KA77UTRF.js} +2 -2
- package/dist/{chunk-N4ZZYLMP.js → chunk-QBPUT5SU.js} +686 -251
- package/dist/{contributions-DF_Ea07m.d.cts → contributions-CtlptxR8.d.cts} +187 -5
- package/dist/{contributions-nKOSeLy8.d.ts → contributions-tjNExo1o.d.ts} +187 -5
- package/dist/index.cjs +966 -247
- package/dist/index.d.cts +24 -8
- package/dist/index.d.ts +24 -8
- package/dist/index.js +28 -4
- package/dist/{options-D1AJKsn_.d.ts → options-BnEPUuVV.d.cts} +1 -1
- package/dist/{options-D1AJKsn_.d.cts → options-BnEPUuVV.d.ts} +1 -1
- package/dist/{plugin-6F04gjQe.d.cts → plugin-BWxJRKzS.d.cts} +10 -4
- package/dist/{plugin-BLsNipkc.d.ts → plugin-e2WUEtiI.d.ts} +10 -4
- package/dist/plugin.cjs +1 -0
- package/dist/plugin.d.cts +4 -4
- package/dist/plugin.d.ts +4 -4
- package/dist/plugin.js +2 -2
- package/dist/providers/binance.d.cts +2 -2
- package/dist/providers/binance.d.ts +2 -2
- package/dist/providers/coinbase.d.cts +2 -2
- package/dist/providers/coinbase.d.ts +2 -2
- package/dist/providers/hyperliquid.d.cts +2 -2
- package/dist/providers/hyperliquid.d.ts +2 -2
- package/dist/{statusline-model-DAFyqVmR.d.ts → statusline-model-DFY7tuHj.d.cts} +5 -3
- package/dist/{statusline-model-BoWJ3cWQ.d.cts → statusline-model-zKXtGIjj.d.ts} +5 -3
- package/dist/ui.cjs +263 -0
- package/dist/ui.d.cts +75 -2
- package/dist/ui.d.ts +75 -2
- package/dist/ui.js +3 -3
- package/dist/vela.global.js +968 -249
- package/dist/vela.global.min.js +73 -71
- package/dist/widget.cjs +1411 -292
- package/dist/widget.d.cts +26 -7
- package/dist/widget.d.ts +26 -7
- package/dist/widget.js +7 -7
- package/dist/workspace.cjs +1414 -292
- package/dist/workspace.d.cts +124 -6
- package/dist/workspace.d.ts +124 -6
- package/dist/workspace.js +6 -6
- package/package.json +1 -1
package/NOTICE
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
Vela
|
|
2
|
-
Copyright (c) 2026 LuxAlgo
|
|
3
|
-
https://luxalgo.com/vela
|
|
4
|
-
|
|
5
|
-
This product includes the Vela charting library, developed by LuxAlgo.
|
|
6
|
-
|
|
7
|
-
ATTRIBUTION REQUIREMENT
|
|
8
|
-
|
|
9
|
-
Any product, website, or application that displays charts rendered by this
|
|
10
|
-
software must show a visible attribution to the Vela project on every page or
|
|
11
|
-
screen where such a chart is displayed.
|
|
12
|
-
|
|
13
|
-
The library satisfies this requirement automatically: it renders an attribution
|
|
14
|
-
mark (the project logomark linking to the Vela project page) on the chart
|
|
15
|
-
itself, enabled by default. You may restyle or reposition this mark to fit your
|
|
16
|
-
design.
|
|
17
|
-
|
|
18
|
-
You may disable the built-in mark (renderer feature `attribution`) ONLY if you
|
|
19
|
-
display an equivalent visible attribution — the name "Vela" together with a
|
|
20
|
-
link to the project page above — elsewhere on the same page or screen, in a
|
|
21
|
-
place available to your users.
|
|
22
|
-
|
|
23
|
-
Removing, hiding, or obscuring the attribution without providing the
|
|
24
|
-
equivalent notice described above is not permitted.
|
|
25
|
-
|
|
26
|
-
This file constitutes the NOTICE file described in Section 4(d) of the Apache
|
|
27
|
-
License, Version 2.0: redistributions of this software, in source or binary
|
|
28
|
-
form, must include a readable copy of these attribution notices.
|
|
1
|
+
Vela
|
|
2
|
+
Copyright (c) 2026 LuxAlgo
|
|
3
|
+
https://luxalgo.com/vela
|
|
4
|
+
|
|
5
|
+
This product includes the Vela charting library, developed by LuxAlgo.
|
|
6
|
+
|
|
7
|
+
ATTRIBUTION REQUIREMENT
|
|
8
|
+
|
|
9
|
+
Any product, website, or application that displays charts rendered by this
|
|
10
|
+
software must show a visible attribution to the Vela project on every page or
|
|
11
|
+
screen where such a chart is displayed.
|
|
12
|
+
|
|
13
|
+
The library satisfies this requirement automatically: it renders an attribution
|
|
14
|
+
mark (the project logomark linking to the Vela project page) on the chart
|
|
15
|
+
itself, enabled by default. You may restyle or reposition this mark to fit your
|
|
16
|
+
design.
|
|
17
|
+
|
|
18
|
+
You may disable the built-in mark (renderer feature `attribution`) ONLY if you
|
|
19
|
+
display an equivalent visible attribution — the name "Vela" together with a
|
|
20
|
+
link to the project page above — elsewhere on the same page or screen, in a
|
|
21
|
+
place available to your users.
|
|
22
|
+
|
|
23
|
+
Removing, hiding, or obscuring the attribution without providing the
|
|
24
|
+
equivalent notice described above is not permitted.
|
|
25
|
+
|
|
26
|
+
This file constitutes the NOTICE file described in Section 4(d) of the Apache
|
|
27
|
+
License, Version 2.0: redistributions of this software, in source or binary
|
|
28
|
+
form, must include a readable copy of these attribution notices.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { overlayScrollbarCss, isDarkColor, mix, HIGHLIGHT, ACCENT_BRIGHT, ACCENT, withAlpha, injectStyles, iconAt, iconEl, BULLISH, BEARISH, WARNING, NEUTRAL } from './chunk-
|
|
1
|
+
import { overlayScrollbarCss, isDarkColor, mix, HIGHLIGHT, ACCENT_BRIGHT, ACCENT, withAlpha, injectStyles, iconAt, iconEl, BULLISH, BEARISH, WARNING, NEUTRAL } from './chunk-BZQM2XO7.js';
|
|
2
2
|
import { VanillaMachine, normalizeProps, spreadProps } from '@zag-js/vanilla';
|
|
3
3
|
export { normalizeProps, spreadProps } from '@zag-js/vanilla';
|
|
4
4
|
import * as menu from '@zag-js/menu';
|
|
@@ -1505,6 +1505,264 @@ var Dialog = class {
|
|
|
1505
1505
|
}
|
|
1506
1506
|
};
|
|
1507
1507
|
|
|
1508
|
+
// src/ui/components/date-picker/controller.ts
|
|
1509
|
+
var MONTH_LABELS = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
|
|
1510
|
+
var MONTH_SHORT = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
|
|
1511
|
+
var WEEKDAY_LABELS = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"];
|
|
1512
|
+
function isoDate(d) {
|
|
1513
|
+
return `${d.getFullYear()}-${String(d.getMonth() + 1).padStart(2, "0")}-${String(d.getDate()).padStart(2, "0")}`;
|
|
1514
|
+
}
|
|
1515
|
+
function normalizeDateInput(raw) {
|
|
1516
|
+
const m = /^(\d{4})-(\d{1,2})-(\d{1,2})$/.exec(raw.trim());
|
|
1517
|
+
if (!m) return null;
|
|
1518
|
+
const y = Number(m[1]);
|
|
1519
|
+
const mo = Number(m[2]);
|
|
1520
|
+
const d = Number(m[3]);
|
|
1521
|
+
const dt = new Date(y, mo - 1, d);
|
|
1522
|
+
if (dt.getFullYear() !== y || dt.getMonth() !== mo - 1 || dt.getDate() !== d) return null;
|
|
1523
|
+
return isoDate(dt);
|
|
1524
|
+
}
|
|
1525
|
+
function parseIsoDate(raw) {
|
|
1526
|
+
const iso = raw ? normalizeDateInput(raw) : null;
|
|
1527
|
+
if (!iso) return null;
|
|
1528
|
+
const [y, mo, d] = iso.split("-").map(Number);
|
|
1529
|
+
return new Date(y, mo - 1, d);
|
|
1530
|
+
}
|
|
1531
|
+
function datePickerController(opts = {}) {
|
|
1532
|
+
const today = opts.today ?? /* @__PURE__ */ new Date();
|
|
1533
|
+
let selected = parseIsoDate(opts.value);
|
|
1534
|
+
let year = selected?.getFullYear() ?? today.getFullYear();
|
|
1535
|
+
let month = selected?.getMonth() ?? today.getMonth();
|
|
1536
|
+
let panel = "date";
|
|
1537
|
+
const decade = () => Math.floor(year / 10) * 10;
|
|
1538
|
+
return {
|
|
1539
|
+
get panel() {
|
|
1540
|
+
return panel;
|
|
1541
|
+
},
|
|
1542
|
+
get year() {
|
|
1543
|
+
return year;
|
|
1544
|
+
},
|
|
1545
|
+
get month() {
|
|
1546
|
+
return month;
|
|
1547
|
+
},
|
|
1548
|
+
get value() {
|
|
1549
|
+
return selected ? isoDate(selected) : null;
|
|
1550
|
+
},
|
|
1551
|
+
header() {
|
|
1552
|
+
return {
|
|
1553
|
+
month: MONTH_LABELS[month] ?? "",
|
|
1554
|
+
monthVisible: panel === "date",
|
|
1555
|
+
year: panel === "year" ? `${decade()}-${decade() + 9}` : String(year),
|
|
1556
|
+
yearDisabled: panel === "year"
|
|
1557
|
+
// in the decade panel the year reads as its title
|
|
1558
|
+
};
|
|
1559
|
+
},
|
|
1560
|
+
navLabels() {
|
|
1561
|
+
if (panel === "date") return { prev: "Previous month", next: "Next month" };
|
|
1562
|
+
if (panel === "month") return { prev: "Previous year", next: "Next year" };
|
|
1563
|
+
return { prev: "Previous decade", next: "Next decade" };
|
|
1564
|
+
},
|
|
1565
|
+
cells() {
|
|
1566
|
+
const out = [];
|
|
1567
|
+
if (panel === "date") {
|
|
1568
|
+
const startPad = new Date(year, month, 1).getDay();
|
|
1569
|
+
const days = new Date(year, month + 1, 0).getDate();
|
|
1570
|
+
const todayIso = isoDate(today);
|
|
1571
|
+
const selectedIso = selected ? isoDate(selected) : "";
|
|
1572
|
+
for (let i = 0; i < startPad; i++) out.push({ label: "", value: "", checked: false, today: false, blank: true });
|
|
1573
|
+
for (let day = 1; day <= days; day++) {
|
|
1574
|
+
const iso = `${year}-${String(month + 1).padStart(2, "0")}-${String(day).padStart(2, "0")}`;
|
|
1575
|
+
out.push({ label: String(day), value: iso, checked: iso === selectedIso, today: iso === todayIso });
|
|
1576
|
+
}
|
|
1577
|
+
return out;
|
|
1578
|
+
}
|
|
1579
|
+
if (panel === "month") {
|
|
1580
|
+
for (let m = 0; m < 12; m++) {
|
|
1581
|
+
out.push({
|
|
1582
|
+
label: MONTH_SHORT[m] ?? "",
|
|
1583
|
+
value: m,
|
|
1584
|
+
checked: selected?.getFullYear() === year && selected.getMonth() === m,
|
|
1585
|
+
today: today.getFullYear() === year && today.getMonth() === m
|
|
1586
|
+
});
|
|
1587
|
+
}
|
|
1588
|
+
return out;
|
|
1589
|
+
}
|
|
1590
|
+
const d = decade();
|
|
1591
|
+
for (let y = d - 1; y <= d + 10; y++) {
|
|
1592
|
+
out.push({ label: String(y), value: y, checked: selected?.getFullYear() === y, today: today.getFullYear() === y, outside: y < d || y > d + 9 });
|
|
1593
|
+
}
|
|
1594
|
+
return out;
|
|
1595
|
+
},
|
|
1596
|
+
step(dir) {
|
|
1597
|
+
if (panel === "date") {
|
|
1598
|
+
month += dir;
|
|
1599
|
+
if (month < 0) {
|
|
1600
|
+
month = 11;
|
|
1601
|
+
year -= 1;
|
|
1602
|
+
}
|
|
1603
|
+
if (month > 11) {
|
|
1604
|
+
month = 0;
|
|
1605
|
+
year += 1;
|
|
1606
|
+
}
|
|
1607
|
+
} else {
|
|
1608
|
+
year += panel === "month" ? dir : dir * 10;
|
|
1609
|
+
}
|
|
1610
|
+
},
|
|
1611
|
+
showMonths() {
|
|
1612
|
+
panel = "month";
|
|
1613
|
+
},
|
|
1614
|
+
showYears() {
|
|
1615
|
+
panel = "year";
|
|
1616
|
+
},
|
|
1617
|
+
choose(cell) {
|
|
1618
|
+
if (cell.blank) return null;
|
|
1619
|
+
if (panel === "date") {
|
|
1620
|
+
selected = parseIsoDate(String(cell.value));
|
|
1621
|
+
return selected ? isoDate(selected) : null;
|
|
1622
|
+
}
|
|
1623
|
+
if (panel === "month") {
|
|
1624
|
+
month = Number(cell.value);
|
|
1625
|
+
panel = "date";
|
|
1626
|
+
return null;
|
|
1627
|
+
}
|
|
1628
|
+
year = Number(cell.value);
|
|
1629
|
+
panel = "month";
|
|
1630
|
+
return null;
|
|
1631
|
+
},
|
|
1632
|
+
setValue(value) {
|
|
1633
|
+
selected = parseIsoDate(value);
|
|
1634
|
+
if (selected) {
|
|
1635
|
+
year = selected.getFullYear();
|
|
1636
|
+
month = selected.getMonth();
|
|
1637
|
+
}
|
|
1638
|
+
panel = "date";
|
|
1639
|
+
}
|
|
1640
|
+
};
|
|
1641
|
+
}
|
|
1642
|
+
|
|
1643
|
+
// src/ui/components/date-picker/styles.ts
|
|
1644
|
+
var DATE_PICKER_STYLE_ID = "vela-date-picker-styles";
|
|
1645
|
+
var DATE_PICKER_CSS = `
|
|
1646
|
+
.vela-date-picker{color:var(--vela-fg);font:14px var(--vela-font);user-select:none;}
|
|
1647
|
+
.vela-date-picker [hidden]{display:none !important;}
|
|
1648
|
+
.vela-date-picker-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;}
|
|
1649
|
+
.vela-date-picker-title{flex:1;display:flex;align-items:center;justify-content:center;gap:2px;min-width:0;}
|
|
1650
|
+
.vela-date-picker-switch{border:none;background:transparent;color:var(--vela-fg-bright);font:inherit;font-weight:600;font-size:14px;padding:2px 6px;border-radius:4px;cursor:pointer;}
|
|
1651
|
+
.vela-date-picker-switch:not(:disabled):hover{background:var(--vela-hover);}
|
|
1652
|
+
.vela-date-picker-switch:disabled{cursor:default;}
|
|
1653
|
+
.vela-date-picker-nav{width:24px;height:24px;border:none;background:transparent;color:var(--vela-fg-muted);border-radius:4px;padding:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:14px;}
|
|
1654
|
+
.vela-date-picker-nav:hover{background:var(--vela-hover);color:var(--vela-fg-bright);}
|
|
1655
|
+
.vela-date-picker-week,.vela-date-picker-grid{display:grid;grid-template-columns:repeat(7,28px);gap:2px;}
|
|
1656
|
+
.vela-date-picker-week{margin-bottom:4px;color:var(--vela-fg-muted);font-size:11px;text-align:center;}
|
|
1657
|
+
.vela-date-picker-week span{line-height:20px;}
|
|
1658
|
+
.vela-date-picker-blank{width:28px;height:28px;}
|
|
1659
|
+
.vela-date-picker-day{width:28px;height:28px;border:none;background:transparent;color:inherit;border-radius:4px;padding:0;cursor:pointer;font:inherit;font-size:14px;}
|
|
1660
|
+
.vela-date-picker-day:hover{background:var(--vela-hover);}
|
|
1661
|
+
.vela-date-picker-day[data-checked]{background:var(--vela-hover-strong);color:var(--vela-fg-bright);}
|
|
1662
|
+
.vela-date-picker-day[data-today]:not([data-checked]){box-shadow:inset 0 0 0 1px var(--vela-border-strong);}
|
|
1663
|
+
.vela-date-picker-cells{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;width:calc(7 * 28px + 6 * 2px);}
|
|
1664
|
+
.vela-date-picker-cell{height:36px;border:none;background:transparent;color:inherit;border-radius:4px;padding:0 4px;cursor:pointer;font:inherit;font-size:14px;}
|
|
1665
|
+
.vela-date-picker-cell:hover{background:var(--vela-hover);}
|
|
1666
|
+
.vela-date-picker-cell[data-checked]{background:var(--vela-hover-strong);color:var(--vela-fg-bright);}
|
|
1667
|
+
.vela-date-picker-cell[data-today]:not([data-checked]){box-shadow:inset 0 0 0 1px var(--vela-border-strong);}
|
|
1668
|
+
.vela-date-picker-cell[data-outside]{opacity:0.45;}
|
|
1669
|
+
`;
|
|
1670
|
+
|
|
1671
|
+
// src/ui/components/date-picker/view.ts
|
|
1672
|
+
var DatePicker = class {
|
|
1673
|
+
constructor(opts = {}) {
|
|
1674
|
+
this.opts = opts;
|
|
1675
|
+
const doc = document;
|
|
1676
|
+
injectStyles(DATE_PICKER_STYLE_ID, DATE_PICKER_CSS, doc);
|
|
1677
|
+
this.ctrl = datePickerController(opts);
|
|
1678
|
+
const button = (className) => {
|
|
1679
|
+
const b = doc.createElement("button");
|
|
1680
|
+
b.type = "button";
|
|
1681
|
+
b.className = className;
|
|
1682
|
+
return b;
|
|
1683
|
+
};
|
|
1684
|
+
this.prev = button("vela-date-picker-nav");
|
|
1685
|
+
this.prev.append(iconEl("chevron-left", doc));
|
|
1686
|
+
this.next = button("vela-date-picker-nav");
|
|
1687
|
+
this.next.append(iconEl("chevron-right", doc));
|
|
1688
|
+
this.monthBtn = button("vela-date-picker-switch");
|
|
1689
|
+
this.monthBtn.setAttribute("aria-label", "Choose month");
|
|
1690
|
+
this.yearBtn = button("vela-date-picker-switch");
|
|
1691
|
+
this.yearBtn.setAttribute("aria-label", "Choose year");
|
|
1692
|
+
const title = doc.createElement("div");
|
|
1693
|
+
title.className = "vela-date-picker-title";
|
|
1694
|
+
title.append(this.monthBtn, this.yearBtn);
|
|
1695
|
+
const head = doc.createElement("div");
|
|
1696
|
+
head.className = "vela-date-picker-head";
|
|
1697
|
+
head.append(this.prev, title, this.next);
|
|
1698
|
+
this.week = doc.createElement("div");
|
|
1699
|
+
this.week.className = "vela-date-picker-week";
|
|
1700
|
+
for (const d of WEEKDAY_LABELS) {
|
|
1701
|
+
const cell = doc.createElement("span");
|
|
1702
|
+
cell.textContent = d;
|
|
1703
|
+
this.week.appendChild(cell);
|
|
1704
|
+
}
|
|
1705
|
+
this.grid = doc.createElement("div");
|
|
1706
|
+
const on = (el, run) => el.addEventListener("click", (e) => {
|
|
1707
|
+
e.stopPropagation();
|
|
1708
|
+
run();
|
|
1709
|
+
this.paint();
|
|
1710
|
+
});
|
|
1711
|
+
on(this.prev, () => this.ctrl.step(-1));
|
|
1712
|
+
on(this.next, () => this.ctrl.step(1));
|
|
1713
|
+
on(this.monthBtn, () => this.ctrl.showMonths());
|
|
1714
|
+
on(this.yearBtn, () => this.ctrl.showYears());
|
|
1715
|
+
this.el = doc.createElement("div");
|
|
1716
|
+
this.el.className = "vela-date-picker";
|
|
1717
|
+
this.el.append(head, this.week, this.grid);
|
|
1718
|
+
this.paint();
|
|
1719
|
+
}
|
|
1720
|
+
get value() {
|
|
1721
|
+
return this.ctrl.value;
|
|
1722
|
+
}
|
|
1723
|
+
/** Rewrite the selection without emitting (the calendar opens on its month). */
|
|
1724
|
+
setValue(value) {
|
|
1725
|
+
this.ctrl.setValue(value);
|
|
1726
|
+
this.paint();
|
|
1727
|
+
}
|
|
1728
|
+
paint() {
|
|
1729
|
+
const doc = this.el.ownerDocument;
|
|
1730
|
+
const h = this.ctrl.header();
|
|
1731
|
+
this.monthBtn.hidden = !h.monthVisible;
|
|
1732
|
+
this.monthBtn.textContent = h.month;
|
|
1733
|
+
this.yearBtn.textContent = h.year;
|
|
1734
|
+
this.yearBtn.disabled = h.yearDisabled;
|
|
1735
|
+
const nav = this.ctrl.navLabels();
|
|
1736
|
+
this.prev.setAttribute("aria-label", nav.prev);
|
|
1737
|
+
this.next.setAttribute("aria-label", nav.next);
|
|
1738
|
+
const dates = this.ctrl.panel === "date";
|
|
1739
|
+
this.week.hidden = !dates;
|
|
1740
|
+
this.grid.className = dates ? "vela-date-picker-grid" : "vela-date-picker-cells";
|
|
1741
|
+
this.grid.replaceChildren(...this.ctrl.cells().map((cell) => this.cellEl(doc, cell, dates)));
|
|
1742
|
+
}
|
|
1743
|
+
cellEl(doc, cell, dates) {
|
|
1744
|
+
if (cell.blank) {
|
|
1745
|
+
const blank = doc.createElement("span");
|
|
1746
|
+
blank.className = "vela-date-picker-blank";
|
|
1747
|
+
return blank;
|
|
1748
|
+
}
|
|
1749
|
+
const b = doc.createElement("button");
|
|
1750
|
+
b.type = "button";
|
|
1751
|
+
b.className = dates ? "vela-date-picker-day" : "vela-date-picker-cell";
|
|
1752
|
+
b.textContent = cell.label;
|
|
1753
|
+
if (cell.checked) b.dataset.checked = "1";
|
|
1754
|
+
if (cell.today) b.dataset.today = "1";
|
|
1755
|
+
if (cell.outside) b.dataset.outside = "1";
|
|
1756
|
+
b.addEventListener("click", (e) => {
|
|
1757
|
+
e.stopPropagation();
|
|
1758
|
+
const picked = this.ctrl.choose(cell);
|
|
1759
|
+
if (picked) this.opts.onPick?.(picked);
|
|
1760
|
+
else this.paint();
|
|
1761
|
+
});
|
|
1762
|
+
return b;
|
|
1763
|
+
}
|
|
1764
|
+
};
|
|
1765
|
+
|
|
1508
1766
|
// src/ui/components/switch/controller.ts
|
|
1509
1767
|
function switchController(opts = {}) {
|
|
1510
1768
|
let checked = opts.checked ?? false;
|
|
@@ -2888,4 +3146,4 @@ function buildFieldControl(desc) {
|
|
|
2888
3146
|
return { el };
|
|
2889
3147
|
}
|
|
2890
3148
|
|
|
2891
|
-
export { CALLOUT_CSS, CALLOUT_STYLE_ID, CalloutBubble, ColorField, Dialog, FIELD_GAP_PX, GlyphSelect, Menu, NumberInput, Popover, STATIC_TOKENS, 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, numberInputController, openPopoverTrigger, openSelectList, placePopover, popoverController, runMachine, selectController, snapToStep, splitColor, switchController, textAreaController, textFieldController, themeTokens, toggleSelectList, transparencyChecker, viewportRect, widthField, widthFieldOptions };
|
|
3149
|
+
export { CALLOUT_CSS, CALLOUT_STYLE_ID, CalloutBubble, ColorField, DatePicker, Dialog, FIELD_GAP_PX, GlyphSelect, Menu, NumberInput, Popover, STATIC_TOKENS, Select, Switch, TextArea, TextField, WIDTH_FIELD_OPTIONS, applyPlotOverlayTokens, applyThemeTokens, blendOver, buildColorPicker, buildFieldControl, buildPalette, calloutPanelRows, clampNumber, closeColorPopover, closeOpenPopovers, closeWidthPopover, closesPanel, colorField, colorPickerController, combineColor, datePickerController, decorateSelectScroll, dialogController, ensureUIHost, eventDismissedPopover, fieldGrid, fieldGridColumns, fieldRow, fieldSection, fieldSeparator, fillSelectList, glyphSelectController, hslHex, insetRect, intersectRects, isPopoverOpen, isoDate, lineWidthGlyph, menuController, nextUid, normalizeDateInput, numberInputController, openPopoverTrigger, openSelectList, placePopover, popoverController, runMachine, selectController, snapToStep, splitColor, switchController, textAreaController, textFieldController, themeTokens, toggleSelectList, transparencyChecker, viewportRect, widthField, widthFieldOptions };
|
|
@@ -120,6 +120,7 @@ registerIcon("chevron-down", S('<path d="M3.5 6 8 10.5 12.5 6"/>'));
|
|
|
120
120
|
registerIcon("chevron-up", S('<path d="M3.5 10 8 5.5 12.5 10"/>'));
|
|
121
121
|
registerIcon("chevrons-right", S('<path d="m4 3.5 4.5 4.5L4 12.5"/><path d="m8.5 3.5 4.5 4.5-4.5 4.5"/>'));
|
|
122
122
|
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"/>'));
|
|
123
|
+
registerIcon("replay", S('<path d="M14 4.2v7.6L8.6 8z"/><path d="M7.4 4.2v7.6L2 8z"/>'));
|
|
123
124
|
registerIcon("check", S('<path d="m2.8 8.4 3.4 3.4 7-7.6"/>'));
|
|
124
125
|
registerIcon("close", S('<path d="m3.8 3.8 8.4 8.4M12.2 3.8l-8.4 8.4"/>'));
|
|
125
126
|
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"/>'));
|