@rogieking/figui3 8.9.47 → 8.9.48
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/.cursor/skills/fig-lab/components.md +1 -1
- package/README.md +1 -0
- package/dist/fig-lab.css +1 -1
- package/dist/fig-lab.js +2 -2
- package/fig-lab.css +11 -4
- package/fig-lab.js +113 -40
- package/package.json +1 -1
package/fig-lab.css
CHANGED
|
@@ -2093,14 +2093,21 @@ fig-canvas-control {
|
|
|
2093
2093
|
rgba(255, 255, 255, 0.5)
|
|
2094
2094
|
);
|
|
2095
2095
|
--fig-canvas-control-radius-stroke: #0D99FF;
|
|
2096
|
-
|
|
2096
|
+
/* Deprecated compatibility alias. */
|
|
2097
|
+
--fig-canvas-control-radius-stroke-halo: rgba(255,255,255,0);
|
|
2098
|
+
--fig-canvas-control-stroke-halo: var(--fig-canvas-control-radius-stroke-halo);
|
|
2099
|
+
--fig-canvas-control-stroke-halo-hover: rgba(255,255,255,1);
|
|
2097
2100
|
--fig-canvas-control-line-stroke-hover: #0D99FF;
|
|
2098
2101
|
--fig-canvas-control-line-stroke-active: #0D99FF;
|
|
2099
2102
|
--fig-canvas-control-line-stroke-width: 1px;
|
|
2100
2103
|
--fig-canvas-control-line-stroke-width-hover: 2px;
|
|
2101
2104
|
|
|
2102
|
-
&:has(
|
|
2105
|
+
&:has(
|
|
2106
|
+
.fig-canvas-control-radius-hit:hover,
|
|
2107
|
+
.fig-canvas-control-angle-line-hit:hover
|
|
2108
|
+
) {
|
|
2103
2109
|
--fig-canvas-control-line-stroke-width: var(--fig-canvas-control-line-stroke-width-hover);
|
|
2110
|
+
--fig-canvas-control-stroke-halo: var(--fig-canvas-control-stroke-halo-hover);
|
|
2104
2111
|
}
|
|
2105
2112
|
|
|
2106
2113
|
& > fig-handle,
|
|
@@ -2164,7 +2171,7 @@ fig-canvas-control {
|
|
|
2164
2171
|
}
|
|
2165
2172
|
|
|
2166
2173
|
.fig-canvas-control-radius-halo {
|
|
2167
|
-
stroke: var(--fig-canvas-control-
|
|
2174
|
+
stroke: var(--fig-canvas-control-stroke-halo);
|
|
2168
2175
|
stroke-width: calc(var(--fig-canvas-control-line-stroke-width) + 2px);
|
|
2169
2176
|
filter: none;
|
|
2170
2177
|
}
|
|
@@ -2195,7 +2202,7 @@ fig-canvas-control {
|
|
|
2195
2202
|
}
|
|
2196
2203
|
|
|
2197
2204
|
.fig-canvas-control-angle-line-halo {
|
|
2198
|
-
stroke: var(--fig-canvas-control-
|
|
2205
|
+
stroke: var(--fig-canvas-control-stroke-halo);
|
|
2199
2206
|
stroke-width: calc(var(--fig-canvas-control-line-stroke-width) + 2px);
|
|
2200
2207
|
stroke-linecap: butt;
|
|
2201
2208
|
filter: none;
|
package/fig-lab.js
CHANGED
|
@@ -7351,6 +7351,10 @@ class PropskitWheel extends HTMLElement {
|
|
|
7351
7351
|
figLabDefineElement("propskit-wheel", PropskitWheel);
|
|
7352
7352
|
|
|
7353
7353
|
/* Canvas Control */
|
|
7354
|
+
/**
|
|
7355
|
+
* A composite spatial control built from one or more fig-handle elements.
|
|
7356
|
+
* @attr {number} precision - Decimal places for positions, radius, angle, and internal handle dragging (default 2).
|
|
7357
|
+
*/
|
|
7354
7358
|
class FigCanvasControl extends HTMLElement {
|
|
7355
7359
|
static observedAttributes = [
|
|
7356
7360
|
"type",
|
|
@@ -7361,6 +7365,7 @@ class FigCanvasControl extends HTMLElement {
|
|
|
7361
7365
|
"disabled",
|
|
7362
7366
|
"drag-surface",
|
|
7363
7367
|
"snapping",
|
|
7368
|
+
"precision",
|
|
7364
7369
|
];
|
|
7365
7370
|
|
|
7366
7371
|
#x = 50;
|
|
@@ -7429,6 +7434,31 @@ class FigCanvasControl extends HTMLElement {
|
|
|
7429
7434
|
return "false";
|
|
7430
7435
|
}
|
|
7431
7436
|
|
|
7437
|
+
get #precision() {
|
|
7438
|
+
const parsed = Number(this.getAttribute("precision") ?? 2);
|
|
7439
|
+
if (!Number.isFinite(parsed)) return 2;
|
|
7440
|
+
return Math.max(0, Math.min(8, Math.trunc(parsed)));
|
|
7441
|
+
}
|
|
7442
|
+
|
|
7443
|
+
#roundPosition(value) {
|
|
7444
|
+
const factor = 10 ** this.#precision;
|
|
7445
|
+
const rounded = Math.round(value * factor) / factor;
|
|
7446
|
+
return Object.is(rounded, -0) ? 0 : rounded;
|
|
7447
|
+
}
|
|
7448
|
+
|
|
7449
|
+
#syncHandlePrecision() {
|
|
7450
|
+
const precision = this.getAttribute("precision");
|
|
7451
|
+
for (const handle of [
|
|
7452
|
+
this.#pointHandle,
|
|
7453
|
+
this.#angleHandle,
|
|
7454
|
+
this.#secondHandle,
|
|
7455
|
+
]) {
|
|
7456
|
+
if (!handle) continue;
|
|
7457
|
+
if (precision === null) handle.removeAttribute("precision");
|
|
7458
|
+
else handle.setAttribute("precision", String(this.#precision));
|
|
7459
|
+
}
|
|
7460
|
+
}
|
|
7461
|
+
|
|
7432
7462
|
#shouldSnap(shiftKey) {
|
|
7433
7463
|
const mode = this.#snappingMode;
|
|
7434
7464
|
if (mode === "true") return true;
|
|
@@ -7442,7 +7472,7 @@ class FigCanvasControl extends HTMLElement {
|
|
|
7442
7472
|
const parts = name.split(",");
|
|
7443
7473
|
return parts[0].trim();
|
|
7444
7474
|
}
|
|
7445
|
-
return `${
|
|
7475
|
+
return `${this.#roundPosition(this.#x)}%, ${this.#roundPosition(this.#y)}%`;
|
|
7446
7476
|
}
|
|
7447
7477
|
|
|
7448
7478
|
get #secondTipText() {
|
|
@@ -7451,7 +7481,7 @@ class FigCanvasControl extends HTMLElement {
|
|
|
7451
7481
|
const parts = name.split(",");
|
|
7452
7482
|
if (parts.length > 1) return parts[1].trim();
|
|
7453
7483
|
}
|
|
7454
|
-
return `${
|
|
7484
|
+
return `${this.#roundPosition(this.#x2)}%, ${this.#roundPosition(this.#y2)}%`;
|
|
7455
7485
|
}
|
|
7456
7486
|
|
|
7457
7487
|
get #dragSurface() {
|
|
@@ -7482,8 +7512,9 @@ class FigCanvasControl extends HTMLElement {
|
|
|
7482
7512
|
}
|
|
7483
7513
|
|
|
7484
7514
|
#formatRadius() {
|
|
7485
|
-
|
|
7486
|
-
return `Radius ${
|
|
7515
|
+
const radius = this.#roundPosition(this.#radius);
|
|
7516
|
+
if (this.#radiusIsPercent) return `Radius ${radius}%`;
|
|
7517
|
+
return `Radius ${radius}`;
|
|
7487
7518
|
}
|
|
7488
7519
|
|
|
7489
7520
|
connectedCallback() {
|
|
@@ -7534,6 +7565,18 @@ class FigCanvasControl extends HTMLElement {
|
|
|
7534
7565
|
if (this.#secondHandle)
|
|
7535
7566
|
this.#secondHandle.setAttribute("drag-snapping", newVal || "false");
|
|
7536
7567
|
}
|
|
7568
|
+
if (name === "precision") {
|
|
7569
|
+
if (!this.isConnected) return;
|
|
7570
|
+
this.#syncHandlePrecision();
|
|
7571
|
+
this.#x = this.#roundPosition(this.#x);
|
|
7572
|
+
this.#y = this.#roundPosition(this.#y);
|
|
7573
|
+
this.#x2 = this.#roundPosition(this.#x2);
|
|
7574
|
+
this.#y2 = this.#roundPosition(this.#y2);
|
|
7575
|
+
this.#radius = this.#roundPosition(this.#radius);
|
|
7576
|
+
this.#angle = this.#roundPosition(this.#angle);
|
|
7577
|
+
this.#syncPositions();
|
|
7578
|
+
this.#syncValueAttribute();
|
|
7579
|
+
}
|
|
7537
7580
|
if (name === "name") {
|
|
7538
7581
|
if (this.#pointTooltip)
|
|
7539
7582
|
this.#pointTooltip.setAttribute("text", this.#pointTipText);
|
|
@@ -7547,22 +7590,23 @@ class FigCanvasControl extends HTMLElement {
|
|
|
7547
7590
|
if (!raw) return;
|
|
7548
7591
|
try {
|
|
7549
7592
|
const v = JSON.parse(raw);
|
|
7550
|
-
if (typeof v.x === "number") this.#x = v.x;
|
|
7551
|
-
if (typeof v.y === "number") this.#y = v.y;
|
|
7593
|
+
if (typeof v.x === "number") this.#x = this.#roundPosition(v.x);
|
|
7594
|
+
if (typeof v.y === "number") this.#y = this.#roundPosition(v.y);
|
|
7552
7595
|
if (v.radius !== undefined) {
|
|
7553
7596
|
const rs = String(v.radius);
|
|
7554
7597
|
if (rs.endsWith("%")) {
|
|
7555
7598
|
this.#radiusIsPercent = true;
|
|
7556
|
-
this.#radius = parseFloat(rs);
|
|
7599
|
+
this.#radius = this.#roundPosition(parseFloat(rs));
|
|
7557
7600
|
} else {
|
|
7558
7601
|
this.#radiusIsPercent = false;
|
|
7559
|
-
this.#radius = parseFloat(rs);
|
|
7602
|
+
this.#radius = this.#roundPosition(parseFloat(rs));
|
|
7560
7603
|
}
|
|
7561
7604
|
if (!Number.isFinite(this.#radius)) this.#radius = 0;
|
|
7562
7605
|
}
|
|
7563
|
-
if (typeof v.angle === "number")
|
|
7564
|
-
|
|
7565
|
-
if (typeof v.
|
|
7606
|
+
if (typeof v.angle === "number")
|
|
7607
|
+
this.#angle = this.#roundPosition(v.angle);
|
|
7608
|
+
if (typeof v.x2 === "number") this.#x2 = this.#roundPosition(v.x2);
|
|
7609
|
+
if (typeof v.y2 === "number") this.#y2 = this.#roundPosition(v.y2);
|
|
7566
7610
|
if (
|
|
7567
7611
|
this.#type === "color" &&
|
|
7568
7612
|
typeof v.color === "string" &&
|
|
@@ -7577,19 +7621,23 @@ class FigCanvasControl extends HTMLElement {
|
|
|
7577
7621
|
}
|
|
7578
7622
|
|
|
7579
7623
|
get value() {
|
|
7580
|
-
const v = {
|
|
7624
|
+
const v = {
|
|
7625
|
+
x: this.#roundPosition(this.#x),
|
|
7626
|
+
y: this.#roundPosition(this.#y),
|
|
7627
|
+
};
|
|
7581
7628
|
if (this.#type === "color") {
|
|
7582
7629
|
const color =
|
|
7583
7630
|
this.getAttribute("color") || this.#pointHandle?.getAttribute("color");
|
|
7584
7631
|
if (color) v.color = color;
|
|
7585
7632
|
}
|
|
7586
7633
|
if (this.#hasRadius) {
|
|
7587
|
-
|
|
7634
|
+
const radius = this.#roundPosition(this.#radius);
|
|
7635
|
+
v.radius = this.#radiusIsPercent ? `${radius}%` : radius;
|
|
7588
7636
|
}
|
|
7589
|
-
if (this.#hasAngle) v.angle = this.#angle;
|
|
7637
|
+
if (this.#hasAngle) v.angle = this.#roundPosition(this.#angle);
|
|
7590
7638
|
if (this.#hasSecondPoint) {
|
|
7591
|
-
v.x2 = this.#x2;
|
|
7592
|
-
v.y2 = this.#y2;
|
|
7639
|
+
v.x2 = this.#roundPosition(this.#x2);
|
|
7640
|
+
v.y2 = this.#roundPosition(this.#y2);
|
|
7593
7641
|
}
|
|
7594
7642
|
return v;
|
|
7595
7643
|
}
|
|
@@ -7627,6 +7675,9 @@ class FigCanvasControl extends HTMLElement {
|
|
|
7627
7675
|
handle.setAttribute("drag-axes", "x,y");
|
|
7628
7676
|
handle.setAttribute("drag-snapping", this.#snappingMode);
|
|
7629
7677
|
handle.setAttribute("value", `${this.#x}% ${this.#y}%`);
|
|
7678
|
+
if (this.hasAttribute("precision")) {
|
|
7679
|
+
handle.setAttribute("precision", String(this.#precision));
|
|
7680
|
+
}
|
|
7630
7681
|
if (disabled) handle.setAttribute("disabled", "");
|
|
7631
7682
|
if (type === "color") {
|
|
7632
7683
|
handle.setAttribute("type", "color");
|
|
@@ -7890,7 +7941,7 @@ class FigCanvasControl extends HTMLElement {
|
|
|
7890
7941
|
this.#wireHoverTooltip(
|
|
7891
7942
|
this.#angleHandle,
|
|
7892
7943
|
() => this.#angleTooltip,
|
|
7893
|
-
() => `Angle ${
|
|
7944
|
+
() => `Angle ${this.#roundPosition(this.#angle)}°`,
|
|
7894
7945
|
() => this.#hasActiveInteraction(),
|
|
7895
7946
|
);
|
|
7896
7947
|
}
|
|
@@ -8049,10 +8100,10 @@ class FigCanvasControl extends HTMLElement {
|
|
|
8049
8100
|
const maxDy = 100 - Math.max(y0, y20);
|
|
8050
8101
|
const dxPct = Math.max(minDx, Math.min(maxDx, dxPctRaw));
|
|
8051
8102
|
const dyPct = Math.max(minDy, Math.min(maxDy, dyPctRaw));
|
|
8052
|
-
this.#x = x0 + dxPct;
|
|
8053
|
-
this.#y = y0 + dyPct;
|
|
8054
|
-
this.#x2 = x20 + dxPct;
|
|
8055
|
-
this.#y2 = y20 + dyPct;
|
|
8103
|
+
this.#x = this.#roundPosition(x0 + dxPct);
|
|
8104
|
+
this.#y = this.#roundPosition(y0 + dyPct);
|
|
8105
|
+
this.#x2 = this.#roundPosition(x20 + dxPct);
|
|
8106
|
+
this.#y2 = this.#roundPosition(y20 + dyPct);
|
|
8056
8107
|
this.#syncPositions();
|
|
8057
8108
|
this.#emitInput();
|
|
8058
8109
|
};
|
|
@@ -8087,6 +8138,9 @@ class FigCanvasControl extends HTMLElement {
|
|
|
8087
8138
|
handle.setAttribute("size", "small");
|
|
8088
8139
|
handle.setAttribute("hit-area", "12 circle");
|
|
8089
8140
|
handle.setAttribute("hit-area-mode", "delegate");
|
|
8141
|
+
if (this.hasAttribute("precision")) {
|
|
8142
|
+
handle.setAttribute("precision", String(this.#precision));
|
|
8143
|
+
}
|
|
8090
8144
|
if (disabled) handle.setAttribute("disabled", "");
|
|
8091
8145
|
this.#angleHandle = handle;
|
|
8092
8146
|
|
|
@@ -8095,7 +8149,7 @@ class FigCanvasControl extends HTMLElement {
|
|
|
8095
8149
|
tip.setAttribute("action", "manual");
|
|
8096
8150
|
tip.setAttribute("theme", "canvas");
|
|
8097
8151
|
tip.setAttribute("pointer", "false");
|
|
8098
|
-
tip.setAttribute("text", `${
|
|
8152
|
+
tip.setAttribute("text", `${this.#roundPosition(this.#angle)}°`);
|
|
8099
8153
|
tip.appendChild(handle);
|
|
8100
8154
|
this.appendChild(tip);
|
|
8101
8155
|
this.#angleTooltip = tip;
|
|
@@ -8114,6 +8168,9 @@ class FigCanvasControl extends HTMLElement {
|
|
|
8114
8168
|
handle.setAttribute("hit-area", "12 circle");
|
|
8115
8169
|
handle.setAttribute("hit-area-mode", "delegate");
|
|
8116
8170
|
handle.setAttribute("value", `${this.#x2}% ${this.#y2}%`);
|
|
8171
|
+
if (this.hasAttribute("precision")) {
|
|
8172
|
+
handle.setAttribute("precision", String(this.#precision));
|
|
8173
|
+
}
|
|
8117
8174
|
if (disabled) handle.setAttribute("disabled", "");
|
|
8118
8175
|
this.#secondHandle = handle;
|
|
8119
8176
|
|
|
@@ -8305,8 +8362,12 @@ class FigCanvasControl extends HTMLElement {
|
|
|
8305
8362
|
this.#isDragging = true;
|
|
8306
8363
|
const px = e.detail?.px ?? this.#x / 100;
|
|
8307
8364
|
const py = e.detail?.py ?? this.#y / 100;
|
|
8308
|
-
this.#x =
|
|
8309
|
-
|
|
8365
|
+
this.#x = this.#roundPosition(
|
|
8366
|
+
Math.max(0, Math.min(100, px * 100)),
|
|
8367
|
+
);
|
|
8368
|
+
this.#y = this.#roundPosition(
|
|
8369
|
+
Math.max(0, Math.min(100, py * 100)),
|
|
8370
|
+
);
|
|
8310
8371
|
if (this.#pointTooltip) {
|
|
8311
8372
|
this.#pointTooltip.removeAttribute("show");
|
|
8312
8373
|
this.#pointTooltip.hidePopup?.();
|
|
@@ -8327,8 +8388,12 @@ class FigCanvasControl extends HTMLElement {
|
|
|
8327
8388
|
}
|
|
8328
8389
|
const px = e.detail?.px ?? this.#x / 100;
|
|
8329
8390
|
const py = e.detail?.py ?? this.#y / 100;
|
|
8330
|
-
this.#x =
|
|
8331
|
-
|
|
8391
|
+
this.#x = this.#roundPosition(
|
|
8392
|
+
Math.max(0, Math.min(100, px * 100)),
|
|
8393
|
+
);
|
|
8394
|
+
this.#y = this.#roundPosition(
|
|
8395
|
+
Math.max(0, Math.min(100, py * 100)),
|
|
8396
|
+
);
|
|
8332
8397
|
if (this.#pointTooltip) this.#pointTooltip.removeAttribute("show");
|
|
8333
8398
|
this.#syncPositions();
|
|
8334
8399
|
this.#syncValueAttribute();
|
|
@@ -8358,7 +8423,7 @@ class FigCanvasControl extends HTMLElement {
|
|
|
8358
8423
|
if (this.#shouldSnap(e.detail?.shiftKey)) {
|
|
8359
8424
|
angle = Math.round(angle / 15) * 15;
|
|
8360
8425
|
}
|
|
8361
|
-
this.#angle = angle;
|
|
8426
|
+
this.#angle = this.#roundPosition(angle);
|
|
8362
8427
|
|
|
8363
8428
|
let dist = Math.sqrt(dx * dx + dy * dy);
|
|
8364
8429
|
if (this.#shouldSnap(e.detail?.shiftKey)) {
|
|
@@ -8372,15 +8437,17 @@ class FigCanvasControl extends HTMLElement {
|
|
|
8372
8437
|
}
|
|
8373
8438
|
}
|
|
8374
8439
|
if (this.#radiusIsPercent) {
|
|
8375
|
-
this.#radius =
|
|
8440
|
+
this.#radius = this.#roundPosition(
|
|
8441
|
+
Math.max(0, (dist / rect.width) * 100),
|
|
8442
|
+
);
|
|
8376
8443
|
} else {
|
|
8377
|
-
this.#radius = Math.max(0, dist);
|
|
8444
|
+
this.#radius = this.#roundPosition(Math.max(0, dist));
|
|
8378
8445
|
}
|
|
8379
8446
|
|
|
8380
8447
|
if (this.#angleTooltip) {
|
|
8381
8448
|
this.#angleTooltip.setAttribute(
|
|
8382
8449
|
"text",
|
|
8383
|
-
`Angle ${
|
|
8450
|
+
`Angle ${this.#roundPosition(this.#angle)}°`,
|
|
8384
8451
|
);
|
|
8385
8452
|
this.#angleTooltip.setAttribute("show", "true");
|
|
8386
8453
|
this.#angleTooltip.showPopup?.();
|
|
@@ -8427,11 +8494,11 @@ class FigCanvasControl extends HTMLElement {
|
|
|
8427
8494
|
if (this.#shouldSnap(ev.shiftKey)) {
|
|
8428
8495
|
angle = Math.round(angle / 15) * 15;
|
|
8429
8496
|
}
|
|
8430
|
-
this.#angle = angle;
|
|
8497
|
+
this.#angle = this.#roundPosition(angle);
|
|
8431
8498
|
if (this.#angleTooltip)
|
|
8432
8499
|
this.#angleTooltip.setAttribute(
|
|
8433
8500
|
"text",
|
|
8434
|
-
`Angle ${
|
|
8501
|
+
`Angle ${this.#roundPosition(angle)}°`,
|
|
8435
8502
|
);
|
|
8436
8503
|
this.#syncPositions();
|
|
8437
8504
|
this.#emitInput();
|
|
@@ -8464,8 +8531,12 @@ class FigCanvasControl extends HTMLElement {
|
|
|
8464
8531
|
this.#isSecondDragging = true;
|
|
8465
8532
|
const px = e.detail?.px ?? this.#x2 / 100;
|
|
8466
8533
|
const py = e.detail?.py ?? this.#y2 / 100;
|
|
8467
|
-
this.#x2 =
|
|
8468
|
-
|
|
8534
|
+
this.#x2 = this.#roundPosition(
|
|
8535
|
+
Math.max(0, Math.min(100, px * 100)),
|
|
8536
|
+
);
|
|
8537
|
+
this.#y2 = this.#roundPosition(
|
|
8538
|
+
Math.max(0, Math.min(100, py * 100)),
|
|
8539
|
+
);
|
|
8469
8540
|
if (this.#secondTooltip) {
|
|
8470
8541
|
this.#secondTooltip.removeAttribute("show");
|
|
8471
8542
|
this.#secondTooltip.hidePopup?.();
|
|
@@ -8534,11 +8605,11 @@ class FigCanvasControl extends HTMLElement {
|
|
|
8534
8605
|
const newPctX = Math.max(0, Math.min(100, (nx / r.width) * 100));
|
|
8535
8606
|
const newPctY = Math.max(0, Math.min(100, (ny / r.height) * 100));
|
|
8536
8607
|
if (isFirst) {
|
|
8537
|
-
this.#x = newPctX;
|
|
8538
|
-
this.#y = newPctY;
|
|
8608
|
+
this.#x = this.#roundPosition(newPctX);
|
|
8609
|
+
this.#y = this.#roundPosition(newPctY);
|
|
8539
8610
|
} else {
|
|
8540
|
-
this.#x2 = newPctX;
|
|
8541
|
-
this.#y2 = newPctY;
|
|
8611
|
+
this.#x2 = this.#roundPosition(newPctX);
|
|
8612
|
+
this.#y2 = this.#roundPosition(newPctY);
|
|
8542
8613
|
}
|
|
8543
8614
|
this.#syncPositions();
|
|
8544
8615
|
this.#emitInput();
|
|
@@ -8643,9 +8714,11 @@ class FigCanvasControl extends HTMLElement {
|
|
|
8643
8714
|
}
|
|
8644
8715
|
}
|
|
8645
8716
|
if (this.#radiusIsPercent) {
|
|
8646
|
-
this.#radius =
|
|
8717
|
+
this.#radius = this.#roundPosition(
|
|
8718
|
+
Math.max(0, (dist / rect.width) * 100),
|
|
8719
|
+
);
|
|
8647
8720
|
} else {
|
|
8648
|
-
this.#radius = Math.max(0, dist);
|
|
8721
|
+
this.#radius = this.#roundPosition(Math.max(0, dist));
|
|
8649
8722
|
}
|
|
8650
8723
|
if (this.#radiusTooltip) {
|
|
8651
8724
|
this.#radiusTooltip.setAttribute("text", this.#formatRadius());
|
package/package.json
CHANGED